am f93c5cda: am 89cd9391: Updated JB-MR2 features 	modified:   FeatureSummaryActivity.java

* commit 'f93c5cda6d78c40f1ad7780f2e5a7a003bf03071':
  Updated JB-MR2 features 	modified:   FeatureSummaryActivity.java
diff --git a/Android.mk b/Android.mk
index 4251262..dbcc97b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -14,6 +14,7 @@
 # limitations under the License.
 #
 
+include cts/suite/pts/PtsBenchmarkingList.mk
 include cts/CtsBuild.mk
 include cts/CtsCoverage.mk
 include $(call all-subdir-makefiles)
diff --git a/CtsCoverage.mk b/CtsCoverage.mk
index 4689bae..8e5d2af 100644
--- a/CtsCoverage.mk
+++ b/CtsCoverage.mk
@@ -35,19 +35,28 @@
 cts-verifier-coverage-report := $(coverage_out)/verifier-coverage.html
 cts-combined-coverage-report := $(coverage_out)/combined-coverage.html
 
-cts_api_coverage_dependencies := $(cts_api_coverage_exe) $(dexdeps_exe) $(api_xml_description) $(ACP)
+cts_api_coverage_dependencies := $(cts_api_coverage_exe) $(dexdeps_exe) $(api_xml_description)
 
-$(cts-test-coverage-report) : $(CTS_COVERAGE_TEST_CASE_LIST) $(cts_api_coverage_dependencies)
+cts_coverage_test_cases_dependencies := $(foreach c, $(CTS_COVERAGE_TEST_CASE_LIST), $(call intermediates-dir-for,APPS,$(c))/package.apk)
+$(cts-test-coverage-report) : PRIVATE_TEST_CASES_APKS := $(cts_coverage_test_cases_dependencies)
+$(cts-test-coverage-report) : $(cts_coverage_test_cases_dependencies) $(cts_api_coverage_dependencies) | $(ACP)
 	$(call generate-coverage-report,"CTS Tests API Coverage Report",\
-			$(CTS_COVERAGE_TEST_CASE_LIST),cts-test-apks,html,test-coverage.html)
+			$(PRIVATE_TEST_CASES_APKS),html,test-coverage.html)
 
-$(cts-verifier-coverage-report) : CtsVerifier $(cts_api_coverage_dependencies)
+cts_coverage_test_cases_dependencies := $(call intermediates-dir-for,APPS,CtsVerifier)/package.apk
+$(cts-test-coverage-report) : PRIVATE_TEST_CASES_APKS := $(cts_coverage_test_cases_dependencies)
+$(cts-verifier-coverage-report) : $(cts_coverage_test_cases_dependencies) $(cts_api_coverage_dependencies) | $(ACP)
 	$(call generate-coverage-report,"CTS Verifier API Coverage Report",\
-			CtsVerifier,cts-verifier-apks,html,verifier-coverage.html)
+			$(PRIVATE_TEST_CASES_APKS),html,verifier-coverage.html)
 
-$(cts-combined-coverage-report) : CtsVerifier $(cts_api_coverage_dependencies) $(CTS_COVERAGE_TEST_CASE_LIST) $(cts_api_coverage_dependencies)
+cts_coverage_test_cases_dependencies := $(foreach c, $(CTS_COVERAGE_TEST_CASE_LIST) CtsVerifier, $(call intermediates-dir-for,APPS,$(c))/package.apk)
+$(cts-test-coverage-report) : PRIVATE_TEST_CASES_APKS := $(cts_coverage_test_cases_dependencies)
+$(cts-combined-coverage-report) : $(cts_coverage_test_cases_dependencies) $(cts_api_coverage_dependencies) | $(ACP)
 	$(call generate-coverage-report,"CTS Combined API Coverage Report",\
-			$(CTS_COVERAGE_TEST_CASE_LIST) CtsVerifier,cts-combined-apks,html,combined-coverage.html)
+			$(PRIVATE_TEST_CASES_APKS),html,combined-coverage.html)
+
+cts_api_coverage_dependencies :=
+cts_coverage_test_cases_dependencies :=
 
 .PHONY: cts-test-coverage
 cts-test-coverage : $(cts-test-coverage-report)
@@ -67,17 +76,11 @@
 
 # Arguments;
 #  1 - Name of the report printed out on the screen
-#  2 - Name of APK packages that will be scanned to generate the report
-#  3 - Name of variable to hold the calculated paths of the APKs
-#  4 - Format of the report
-#  5 - Output file name of the report
+#  2 - List of apk files that will be scanned to generate the report
+#  3 - Format of the report
+#  4 - Output file name of the report
 define generate-coverage-report
-	$(foreach testcase,$(2),$(eval $(call add-testcase-apk,$(3),$(testcase))))
 	$(hide) mkdir -p $(coverage_out)
-	$(hide) $(cts_api_coverage_exe) -d $(dexdeps_exe) -a $(api_xml_description) -f $(4) -o $(coverage_out)/$(5) $($(3))
-	$(hide) echo $(1): file://$(ANDROID_BUILD_TOP)/$(coverage_out)/$(5)
-endef
-
-define add-testcase-apk
-	$(1) += $(call intermediates-dir-for,APPS,$(2))/package.apk
+	$(hide) $(cts_api_coverage_exe) -d $(dexdeps_exe) -a $(api_xml_description) -f $(3) -o $(coverage_out)/$(4) $(2)
+	@ echo $(1): file://$(ANDROID_BUILD_TOP)/$(coverage_out)/$(4)
 endef
diff --git a/CtsTestCaseList.mk b/CtsTestCaseList.mk
index 4d56ccd..cdb9e9d 100644
--- a/CtsTestCaseList.mk
+++ b/CtsTestCaseList.mk
@@ -29,6 +29,7 @@
 	CtsMultiUserStorageApp
 
 cts_support_packages := \
+	$(PTS_SUPPORT_PACKAGES) \
 	CtsAccelerationTestStubs \
 	CtsDeviceAdmin \
 	CtsMonkeyApp \
@@ -51,6 +52,7 @@
 
 # Test packages that require an associated test package XML.
 cts_test_packages := \
+	$(PTS_TEST_PACKAGES) \
 	CtsAccelerationTestCases \
 	CtsAccountManagerTestCases \
 	CtsAccessibilityServiceTestCases \
@@ -111,6 +113,7 @@
 
 # Host side only tests
 cts_host_libraries := \
+	$(PTS_HOST_CASES) \
 	CtsAdbTests \
 	CtsAppSecurityTests \
 	CtsMonkeyTestCases
@@ -122,14 +125,15 @@
 	NativeMediaTest_XA
 
 cts_ui_tests := \
-        CtsUiAutomatorTests
+	CtsUiAutomatorTests
 
 # All the files that will end up under the repository/testcases
 # directory of the final CTS distribution.
 CTS_TEST_CASES := $(call cts-get-lib-paths,$(cts_host_libraries)) \
 		$(call cts-get-package-paths,$(cts_test_packages)) \
 		$(call cts-get-native-paths,$(cts_native_exes)) \
-		$(call cts-get-ui-lib-paths,$(cts_ui_tests))
+		$(call cts-get-ui-lib-paths,$(cts_ui_tests)) \
+		$(call cts-get-ui-lib-paths,$(pts_device_lib_tests))
 
 # All the XMLs that will end up under the repository/testcases
 # and that need to be created before making the final CTS distribution.
diff --git a/apps/CtsVerifier/AndroidManifest.xml b/apps/CtsVerifier/AndroidManifest.xml
index 88c5069..d3068bd 100644
--- a/apps/CtsVerifier/AndroidManifest.xml
+++ b/apps/CtsVerifier/AndroidManifest.xml
@@ -18,7 +18,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="com.android.cts.verifier"
       android:versionCode="1"
-      android:versionName="4.3_r1">
+      android:versionName="1337">
 
     <!-- Using 10 for more complete NFC support... -->
     <uses-sdk android:minSdkVersion="11"></uses-sdk>
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/nfc/NfcTestActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/nfc/NfcTestActivity.java
old mode 100755
new mode 100644
diff --git a/build/test_uiautomator.mk b/build/test_uiautomator.mk
index 255f70b..c17f12b 100644
--- a/build/test_uiautomator.mk
+++ b/build/test_uiautomator.mk
@@ -17,6 +17,8 @@
 # package XML needed by CTS.
 #
 
+LOCAL_DEX_PREOPT := false
+
 include $(BUILD_JAVA_LIBRARY)
 
 cts_library_xml := $(CTS_TESTCASES_OUT)/$(LOCAL_MODULE).xml 
diff --git a/libs/testserver/src/android/webkit/cts/CtsTestServer.java b/libs/testserver/src/android/webkit/cts/CtsTestServer.java
old mode 100755
new mode 100644
diff --git a/suite/audio_quality/Android.mk b/suite/audio_quality/Android.mk
index 21d8fb8..65abd23 100644
--- a/suite/audio_quality/Android.mk
+++ b/suite/audio_quality/Android.mk
@@ -22,18 +22,24 @@
 CTS_AUDIO_INSTALL_DIR := $(HOST_OUT)/cts-audio-quality/android-cts-audio-quality
 CTS_AUDIO_QUALITY_ZIP := $(HOST_OUT)/cts-audio-quality/android-cts-audio-quality.zip
 
-$(CTS_AUDIO_QUALITY_ZIP): cts_audio_quality_test cts_audio_quality \
-  CtsAudioClient $(CTS_AUDIO_TOP)/test_description
-	$(hide) mkdir -p $(CTS_AUDIO_INSTALL_DIR)
+cts_audio_quality_client_apk := $(TARGET_OUT_DATA_APPS)/CtsAudioClient.apk
+cts_audio_quality_host_bins := $(HOST_OUT)/bin/cts_audio_quality_test $(HOST_OUT)/bin/cts_audio_quality
+$(CTS_AUDIO_QUALITY_ZIP): PRIVATE_CLIENT_APK := $(cts_audio_quality_client_apk)
+$(CTS_AUDIO_QUALITY_ZIP): PRIVATE_HOST_BINS := $(cts_audio_quality_host_bins)
+$(CTS_AUDIO_QUALITY_ZIP): PRIVATE_TEST_DESC := $(CTS_AUDIO_TOP)/test_description
+$(CTS_AUDIO_QUALITY_ZIP): $(cts_audio_quality_client_apk) $(cts_audio_quality_host_bins) \
+    $(CTS_AUDIO_TOP)/test_description | $(ACP)
 	$(hide) mkdir -p $(CTS_AUDIO_INSTALL_DIR)/client
-	$(hide) $(ACP) -fp $(PRODUCT_OUT)/data/app/CtsAudioClient.apk \
+	$(hide) $(ACP) -fp $(PRIVATE_CLIENT_APK) \
         $(CTS_AUDIO_INSTALL_DIR)/client
-	$(hide) $(ACP) -fp $(HOST_OUT)/bin/cts_audio_quality_test $(CTS_AUDIO_INSTALL_DIR)
-	$(hide) $(ACP) -fp $(HOST_OUT)/bin/cts_audio_quality $(CTS_AUDIO_INSTALL_DIR)
-	$(hide) $(ACP) -fr $(CTS_AUDIO_TOP)/test_description $(CTS_AUDIO_INSTALL_DIR)
+	$(hide) $(ACP) -fp $(PRIVATE_HOST_BINS) $(CTS_AUDIO_INSTALL_DIR)
+	$(hide) $(ACP) -fr $(PRIVATE_TEST_DESC) $(CTS_AUDIO_INSTALL_DIR)
 	$(hide) echo "Package cts_audio: $@"
-	$(hide) cd $(HOST_OUT)/cts-audio-quality && \
-        zip -rq android-cts-audio-quality.zip android-cts-audio-quality -x android-cts-audio-quality/reports/\*
+	$(hide) cd $(dir $@) && \
+        zip -rq $(notdir $@) android-cts-audio-quality -x android-cts-audio-quality/reports/\*
+
+cts_audio_quality_client_apk :=
+cts_audio_quality_host_bins :=
 
 # target to build only this package
 .PHONY: cts_audio_quality_package
diff --git a/suite/pts/Android.mk b/suite/pts/Android.mk
new file mode 100644
index 0000000..c141484
--- /dev/null
+++ b/suite/pts/Android.mk
@@ -0,0 +1,17 @@
+#
+# 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.
+#
+
+include $(call all-subdir-makefiles)
diff --git a/suite/pts/PtsBenchmarkingList.mk b/suite/pts/PtsBenchmarkingList.mk
new file mode 100644
index 0000000..4a59c4f
--- /dev/null
+++ b/suite/pts/PtsBenchmarkingList.mk
@@ -0,0 +1,41 @@
+#
+# 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.
+#
+
+# package definitions for PTS
+
+# New packages should be added here
+PTS_TEST_PACKAGES := \
+    PtsDeviceFilePerf \
+    PtsDeviceUi \
+    PtsDeviceDram \
+    PtsDeviceSimpleCpu \
+    PtsDeviceBrowserBench \
+    PtsDeviceVideoPerf \
+    PtsDeviceOpenGl
+
+PTS_SUPPORT_PACKAGES := \
+    PtsDeviceTaskswitchingAppA \
+    PtsDeviceTaskswitchingAppB \
+    PtsDeviceTaskswitchingControl \
+    PtsDeviceOpenGl
+
+PTS_HOST_CASES := \
+    PtsHostBootup \
+    PtsHostUi \
+    PtsHostJankOpenGl
+
+pts_device_lib_tests := \
+    PtsDeviceJankOpenGl
\ No newline at end of file
diff --git a/suite/pts/deviceTests/Android.mk b/suite/pts/deviceTests/Android.mk
new file mode 100644
index 0000000..c141484
--- /dev/null
+++ b/suite/pts/deviceTests/Android.mk
@@ -0,0 +1,17 @@
+#
+# 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.
+#
+
+include $(call all-subdir-makefiles)
diff --git a/suite/pts/deviceTests/browserbench/Android.mk b/suite/pts/deviceTests/browserbench/Android.mk
new file mode 100644
index 0000000..1ce0e49
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/Android.mk
@@ -0,0 +1,33 @@
+# 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)
+include $(CLEAR_VARS)
+
+# don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner ctstestserver
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := PtsDeviceBrowserBench
+
+LOCAL_SDK_VERSION := 16
+
+include $(BUILD_CTS_PACKAGE)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/suite/pts/deviceTests/browserbench/AndroidManifest.xml b/suite/pts/deviceTests/browserbench/AndroidManifest.xml
new file mode 100644
index 0000000..1950c84
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.pts.browser">
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+    </application>
+    <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
+            android:targetPackage="com.android.pts.browser" />
+</manifest>
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/base.js b/suite/pts/deviceTests/browserbench/assets/octane/base.js
new file mode 100644
index 0000000..8801f2d
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/base.js
@@ -0,0 +1,289 @@
+// Copyright 2012 the V8 project authors. 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.
+//     * Neither the name of Google Inc. 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 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.
+
+
+// Simple framework for running the benchmark suites and
+// computing a score based on the timing measurements.
+
+
+// A benchmark has a name (string) and a function that will be run to
+// do the performance measurement. The optional setup and tearDown
+// arguments are functions that will be invoked before and after
+// running the benchmark, but the running time of these functions will
+// not be accounted for in the benchmark score.
+function Benchmark(name, run, setup, tearDown, minIterations) {
+  this.name = name;
+  this.run = run;
+  this.Setup = setup ? setup : function() { };
+  this.TearDown = tearDown ? tearDown : function() { };
+  this.minIterations = minIterations ? minIterations : 32;
+}
+
+
+// Benchmark results hold the benchmark and the measured time used to
+// run the benchmark. The benchmark score is computed later once a
+// full benchmark suite has run to completion.
+function BenchmarkResult(benchmark, time) {
+  this.benchmark = benchmark;
+  this.time = time;
+}
+
+
+// Automatically convert results to numbers. Used by the geometric
+// mean computation.
+BenchmarkResult.prototype.valueOf = function() {
+  return this.time;
+}
+
+
+// Suites of benchmarks consist of a name and the set of benchmarks in
+// addition to the reference timing that the final score will be based
+// on. This way, all scores are relative to a reference run and higher
+// scores implies better performance.
+function BenchmarkSuite(name, reference, benchmarks) {
+  this.name = name;
+  this.reference = reference;
+  this.benchmarks = benchmarks;
+  BenchmarkSuite.suites.push(this);
+}
+
+
+// Keep track of all declared benchmark suites.
+BenchmarkSuite.suites = [];
+
+
+// Scores are not comparable across versions. Bump the version if
+// you're making changes that will affect that scores, e.g. if you add
+// a new benchmark or change an existing one.
+BenchmarkSuite.version = '8';
+
+// Override the alert function to throw an exception instead.
+alert = function(s) {
+  throw "Alert called with argument: " + s;
+};
+
+// To make the benchmark results predictable, we replace Math.random
+// with a 100% deterministic alternative.
+Math.random = (function() {
+  var seed = 49734321;
+  return function() {
+    // Robert Jenkins' 32 bit integer hash function.
+    seed = ((seed + 0x7ed55d16) + (seed << 12))  & 0xffffffff;
+    seed = ((seed ^ 0xc761c23c) ^ (seed >>> 19)) & 0xffffffff;
+    seed = ((seed + 0x165667b1) + (seed << 5))   & 0xffffffff;
+    seed = ((seed + 0xd3a2646c) ^ (seed << 9))   & 0xffffffff;
+    seed = ((seed + 0xfd7046c5) + (seed << 3))   & 0xffffffff;
+    seed = ((seed ^ 0xb55a4f09) ^ (seed >>> 16)) & 0xffffffff;
+    return (seed & 0xfffffff) / 0x10000000;
+  };
+})();
+
+
+// Runs all registered benchmark suites and optionally yields between
+// each individual benchmark to avoid running for too long in the
+// context of browsers. Once done, the final score is reported to the
+// runner.
+BenchmarkSuite.RunSuites = function(runner) {
+  var continuation = null;
+  var suites = BenchmarkSuite.suites;
+  var length = suites.length;
+  BenchmarkSuite.scores = [];
+  var index = 0;
+  function RunStep() {
+    while (continuation || index < length) {
+      if (continuation) {
+        continuation = continuation();
+      } else {
+        var suite = suites[index++];
+        if (runner.NotifyStart) runner.NotifyStart(suite.name);
+        continuation = suite.RunStep(runner);
+      }
+      if (continuation && typeof window != 'undefined' && window.setTimeout) {
+        window.setTimeout(RunStep, 25);
+        return;
+      }
+    }
+    if (runner.NotifyScore) {
+      var score = BenchmarkSuite.GeometricMean(BenchmarkSuite.scores);
+      var formatted = BenchmarkSuite.FormatScore(100 * score);
+      runner.NotifyScore(formatted);
+    }
+  }
+  RunStep();
+}
+
+
+// Counts the total number of registered benchmarks. Useful for
+// showing progress as a percentage.
+BenchmarkSuite.CountBenchmarks = function() {
+  var result = 0;
+  var suites = BenchmarkSuite.suites;
+  for (var i = 0; i < suites.length; i++) {
+    result += suites[i].benchmarks.length;
+  }
+  return result;
+}
+
+
+// Computes the geometric mean of a set of numbers.
+BenchmarkSuite.GeometricMean = function(numbers) {
+  var log = 0;
+  for (var i = 0; i < numbers.length; i++) {
+    log += Math.log(numbers[i]);
+  }
+  return Math.pow(Math.E, log / numbers.length);
+}
+
+
+// Converts a score value to a string with at least three significant
+// digits.
+BenchmarkSuite.FormatScore = function(value) {
+  if (value > 100) {
+    return value.toFixed(0);
+  } else {
+    return value.toPrecision(3);
+  }
+}
+
+// Notifies the runner that we're done running a single benchmark in
+// the benchmark suite. This can be useful to report progress.
+BenchmarkSuite.prototype.NotifyStep = function(result) {
+  this.results.push(result);
+  if (this.runner.NotifyStep) this.runner.NotifyStep(result.benchmark.name);
+}
+
+
+// Notifies the runner that we're done with running a suite and that
+// we have a result which can be reported to the user if needed.
+BenchmarkSuite.prototype.NotifyResult = function() {
+  var mean = BenchmarkSuite.GeometricMean(this.results);
+  var score = this.reference / mean;
+  BenchmarkSuite.scores.push(score);
+  if (this.runner.NotifyResult) {
+    var formatted = BenchmarkSuite.FormatScore(100 * score);
+    this.runner.NotifyResult(this.name, formatted);
+  }
+}
+
+
+// Notifies the runner that running a benchmark resulted in an error.
+BenchmarkSuite.prototype.NotifyError = function(error) {
+  if (this.runner.NotifyError) {
+    this.runner.NotifyError(this.name, error);
+  }
+  if (this.runner.NotifyStep) {
+    this.runner.NotifyStep(this.name);
+  }
+}
+
+
+// Runs a single benchmark for at least a second and computes the
+// average time it takes to run a single iteration.
+BenchmarkSuite.prototype.RunSingleBenchmark = function(benchmark, data) {
+  function Measure(data) {
+    var elapsed = 0;
+    var start = new Date();
+    for (var n = 0; elapsed < 1000; n++) {
+      benchmark.run();
+      elapsed = new Date() - start;
+    }
+    if (data != null) {
+      data.runs += n;
+      data.elapsed += elapsed;
+    }
+  }
+
+  if (data == null) {
+    // Measure the benchmark once for warm up and throw the result
+    // away. Return a fresh data object.
+    Measure(null);
+    return { runs: 0, elapsed: 0 };
+  } else {
+    Measure(data);
+    // If we've run too few iterations, we continue for another second.
+    if (data.runs < benchmark.minIterations) return data;
+    var usec = (data.elapsed * 1000) / data.runs;
+    this.NotifyStep(new BenchmarkResult(benchmark, usec));
+    return null;
+  }
+}
+
+
+// This function starts running a suite, but stops between each
+// individual benchmark in the suite and returns a continuation
+// function which can be invoked to run the next benchmark. Once the
+// last benchmark has been executed, null is returned.
+BenchmarkSuite.prototype.RunStep = function(runner) {
+  this.results = [];
+  this.runner = runner;
+  var length = this.benchmarks.length;
+  var index = 0;
+  var suite = this;
+  var data;
+
+  // Run the setup, the actual benchmark, and the tear down in three
+  // separate steps to allow the framework to yield between any of the
+  // steps.
+
+  function RunNextSetup() {
+    if (index < length) {
+      try {
+        suite.benchmarks[index].Setup();
+      } catch (e) {
+        suite.NotifyError(e);
+        return null;
+      }
+      return RunNextBenchmark;
+    }
+    suite.NotifyResult();
+    return null;
+  }
+
+  function RunNextBenchmark() {
+    try {
+      data = suite.RunSingleBenchmark(suite.benchmarks[index], data);
+    } catch (e) {
+      suite.NotifyError(e);
+      return null;
+    }
+    // If data is null, we're done with this benchmark.
+    return (data == null) ? RunNextTearDown : RunNextBenchmark();
+  }
+
+  function RunNextTearDown() {
+    try {
+      suite.benchmarks[index++].TearDown();
+    } catch (e) {
+      suite.NotifyError(e);
+      return null;
+    }
+    return RunNextSetup;
+  }
+
+  // Start out running the setup.
+  return RunNextSetup();
+}
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/box2d.js b/suite/pts/deviceTests/browserbench/assets/octane/box2d.js
new file mode 100644
index 0000000..d6352e9
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/box2d.js
@@ -0,0 +1,562 @@
+// Portions copyright 2012 Google, Inc
+
+/*
+* Copyright (c) 2006-2007 Erin Catto http://www.gphysics.com
+*
+* This software is provided 'as-is', without any express or implied
+* warranty.  In no event will the authors be held liable for any damages
+* arising from the use of this software.
+* Permission is granted to anyone to use this software for any purpose,
+* including commercial applications, and to alter it and redistribute it
+* freely, subject to the following restrictions:
+* 1. The origin of this software must not be misrepresented; you must not
+* claim that you wrote the original software. If you use this software
+* in a product, an acknowledgment in the product documentation would be
+* appreciated but is not required.
+* 2. Altered source versions must be plainly marked as such, and must not be
+* misrepresented as being the original software.
+* 3. This notice may not be removed or altered from any source distribution.
+*/
+
+var Box2D={};
+(function(F,G){function K(){}if(!(Object.defineProperty instanceof Function)&&Object.prototype.__defineGetter__ instanceof Function&&Object.prototype.__defineSetter__ instanceof Function)Object.defineProperty=function(y,w,A){A.get instanceof Function&&y.__defineGetter__(w,A.get);A.set instanceof Function&&y.__defineSetter__(w,A.set)};F.inherit=function(y,w){K.prototype=w.prototype;y.prototype=new K;y.prototype.constructor=y};F.generateCallback=function(y,w){return function(){w.apply(y,arguments)}};
+F.NVector=function(y){if(y===G)y=0;for(var w=Array(y||0),A=0;A<y;++A)w[A]=0;return w};F.is=function(y,w){if(y===null)return false;if(w instanceof Function&&y instanceof w)return true;if(y.constructor.__implements!=G&&y.constructor.__implements[w])return true;return false};F.parseUInt=function(y){return Math.abs(parseInt(y))}})(Box2D);var Vector=Array,Vector_a2j_Number=Box2D.NVector;if(typeof Box2D==="undefined")Box2D={};if(typeof Box2D.Collision==="undefined")Box2D.Collision={};
+if(typeof Box2D.Collision.Shapes==="undefined")Box2D.Collision.Shapes={};if(typeof Box2D.Common==="undefined")Box2D.Common={};if(typeof Box2D.Common.Math==="undefined")Box2D.Common.Math={};if(typeof Box2D.Dynamics==="undefined")Box2D.Dynamics={};if(typeof Box2D.Dynamics.Contacts==="undefined")Box2D.Dynamics.Contacts={};if(typeof Box2D.Dynamics.Controllers==="undefined")Box2D.Dynamics.Controllers={};if(typeof Box2D.Dynamics.Joints==="undefined")Box2D.Dynamics.Joints={};
+(function(){function F(){F.b2AABB.apply(this,arguments)}function G(){G.b2Bound.apply(this,arguments)}function K(){K.b2BoundValues.apply(this,arguments);this.constructor===K&&this.b2BoundValues.apply(this,arguments)}function y(){y.b2Collision.apply(this,arguments)}function w(){w.b2ContactID.apply(this,arguments);this.constructor===w&&this.b2ContactID.apply(this,arguments)}function A(){A.b2ContactPoint.apply(this,arguments)}function U(){U.b2Distance.apply(this,arguments)}function p(){p.b2DistanceInput.apply(this,
+arguments)}function B(){B.b2DistanceOutput.apply(this,arguments)}function Q(){Q.b2DistanceProxy.apply(this,arguments)}function V(){V.b2DynamicTree.apply(this,arguments);this.constructor===V&&this.b2DynamicTree.apply(this,arguments)}function M(){M.b2DynamicTreeBroadPhase.apply(this,arguments)}function L(){L.b2DynamicTreeNode.apply(this,arguments)}function I(){I.b2DynamicTreePair.apply(this,arguments)}function W(){W.b2Manifold.apply(this,arguments);this.constructor===W&&this.b2Manifold.apply(this,arguments)}
+function Y(){Y.b2ManifoldPoint.apply(this,arguments);this.constructor===Y&&this.b2ManifoldPoint.apply(this,arguments)}function k(){k.b2Point.apply(this,arguments)}function z(){z.b2RayCastInput.apply(this,arguments);this.constructor===z&&this.b2RayCastInput.apply(this,arguments)}function u(){u.b2RayCastOutput.apply(this,arguments)}function D(){D.b2Segment.apply(this,arguments)}function H(){H.b2SeparationFunction.apply(this,arguments)}function O(){O.b2Simplex.apply(this,arguments);this.constructor===
+O&&this.b2Simplex.apply(this,arguments)}function E(){E.b2SimplexCache.apply(this,arguments)}function R(){R.b2SimplexVertex.apply(this,arguments)}function N(){N.b2TimeOfImpact.apply(this,arguments)}function S(){S.b2TOIInput.apply(this,arguments)}function aa(){aa.b2WorldManifold.apply(this,arguments);this.constructor===aa&&this.b2WorldManifold.apply(this,arguments)}function Z(){Z.ClipVertex.apply(this,arguments)}function d(){d.Features.apply(this,arguments)}function h(){h.b2CircleShape.apply(this,arguments);
+this.constructor===h&&this.b2CircleShape.apply(this,arguments)}function l(){l.b2EdgeChainDef.apply(this,arguments);this.constructor===l&&this.b2EdgeChainDef.apply(this,arguments)}function j(){j.b2EdgeShape.apply(this,arguments);this.constructor===j&&this.b2EdgeShape.apply(this,arguments)}function o(){o.b2MassData.apply(this,arguments)}function q(){q.b2PolygonShape.apply(this,arguments);this.constructor===q&&this.b2PolygonShape.apply(this,arguments)}function n(){n.b2Shape.apply(this,arguments);this.constructor===
+n&&this.b2Shape.apply(this,arguments)}function a(){a.b2Color.apply(this,arguments);this.constructor===a&&this.b2Color.apply(this,arguments)}function c(){c.b2Settings.apply(this,arguments)}function g(){g.b2Mat22.apply(this,arguments);this.constructor===g&&this.b2Mat22.apply(this,arguments)}function b(){b.b2Mat33.apply(this,arguments);this.constructor===b&&this.b2Mat33.apply(this,arguments)}function e(){e.b2Math.apply(this,arguments)}function f(){f.b2Sweep.apply(this,arguments)}function m(){m.b2Transform.apply(this,
+arguments);this.constructor===m&&this.b2Transform.apply(this,arguments)}function r(){r.b2Vec2.apply(this,arguments);this.constructor===r&&this.b2Vec2.apply(this,arguments)}function s(){s.b2Vec3.apply(this,arguments);this.constructor===s&&this.b2Vec3.apply(this,arguments)}function v(){v.b2Body.apply(this,arguments);this.constructor===v&&this.b2Body.apply(this,arguments)}function t(){t.b2BodyDef.apply(this,arguments);this.constructor===t&&this.b2BodyDef.apply(this,arguments)}function x(){x.b2ContactFilter.apply(this,
+arguments)}function C(){C.b2ContactImpulse.apply(this,arguments)}function J(){J.b2ContactListener.apply(this,arguments)}function T(){T.b2ContactManager.apply(this,arguments);this.constructor===T&&this.b2ContactManager.apply(this,arguments)}function P(){P.b2DebugDraw.apply(this,arguments);this.constructor===P&&this.b2DebugDraw.apply(this,arguments)}function X(){X.b2DestructionListener.apply(this,arguments)}function $(){$.b2FilterData.apply(this,arguments)}function ba(){ba.b2Fixture.apply(this,arguments);
+this.constructor===ba&&this.b2Fixture.apply(this,arguments)}function ca(){ca.b2FixtureDef.apply(this,arguments);this.constructor===ca&&this.b2FixtureDef.apply(this,arguments)}function da(){da.b2Island.apply(this,arguments);this.constructor===da&&this.b2Island.apply(this,arguments)}function Fa(){Fa.b2TimeStep.apply(this,arguments)}function ea(){ea.b2World.apply(this,arguments);this.constructor===ea&&this.b2World.apply(this,arguments)}function Ga(){Ga.b2CircleContact.apply(this,arguments)}function fa(){fa.b2Contact.apply(this,
+arguments);this.constructor===fa&&this.b2Contact.apply(this,arguments)}function ga(){ga.b2ContactConstraint.apply(this,arguments);this.constructor===ga&&this.b2ContactConstraint.apply(this,arguments)}function Ha(){Ha.b2ContactConstraintPoint.apply(this,arguments)}function Ia(){Ia.b2ContactEdge.apply(this,arguments)}function ha(){ha.b2ContactFactory.apply(this,arguments);this.constructor===ha&&this.b2ContactFactory.apply(this,arguments)}function Ja(){Ja.b2ContactRegister.apply(this,arguments)}function Ka(){Ka.b2ContactResult.apply(this,
+arguments)}function ia(){ia.b2ContactSolver.apply(this,arguments);this.constructor===ia&&this.b2ContactSolver.apply(this,arguments)}function La(){La.b2EdgeAndCircleContact.apply(this,arguments)}function ja(){ja.b2NullContact.apply(this,arguments);this.constructor===ja&&this.b2NullContact.apply(this,arguments)}function Ma(){Ma.b2PolyAndCircleContact.apply(this,arguments)}function Na(){Na.b2PolyAndEdgeContact.apply(this,arguments)}function Oa(){Oa.b2PolygonContact.apply(this,arguments)}function ka(){ka.b2PositionSolverManifold.apply(this,
+arguments);this.constructor===ka&&this.b2PositionSolverManifold.apply(this,arguments)}function Pa(){Pa.b2BuoyancyController.apply(this,arguments)}function Qa(){Qa.b2ConstantAccelController.apply(this,arguments)}function Ra(){Ra.b2ConstantForceController.apply(this,arguments)}function Sa(){Sa.b2Controller.apply(this,arguments)}function Ta(){Ta.b2ControllerEdge.apply(this,arguments)}function Ua(){Ua.b2GravityController.apply(this,arguments)}function Va(){Va.b2TensorDampingController.apply(this,arguments)}
+function la(){la.b2DistanceJoint.apply(this,arguments);this.constructor===la&&this.b2DistanceJoint.apply(this,arguments)}function ma(){ma.b2DistanceJointDef.apply(this,arguments);this.constructor===ma&&this.b2DistanceJointDef.apply(this,arguments)}function na(){na.b2FrictionJoint.apply(this,arguments);this.constructor===na&&this.b2FrictionJoint.apply(this,arguments)}function oa(){oa.b2FrictionJointDef.apply(this,arguments);this.constructor===oa&&this.b2FrictionJointDef.apply(this,arguments)}function pa(){pa.b2GearJoint.apply(this,
+arguments);this.constructor===pa&&this.b2GearJoint.apply(this,arguments)}function qa(){qa.b2GearJointDef.apply(this,arguments);this.constructor===qa&&this.b2GearJointDef.apply(this,arguments)}function Wa(){Wa.b2Jacobian.apply(this,arguments)}function ra(){ra.b2Joint.apply(this,arguments);this.constructor===ra&&this.b2Joint.apply(this,arguments)}function sa(){sa.b2JointDef.apply(this,arguments);this.constructor===sa&&this.b2JointDef.apply(this,arguments)}function Xa(){Xa.b2JointEdge.apply(this,arguments)}
+function ta(){ta.b2LineJoint.apply(this,arguments);this.constructor===ta&&this.b2LineJoint.apply(this,arguments)}function ua(){ua.b2LineJointDef.apply(this,arguments);this.constructor===ua&&this.b2LineJointDef.apply(this,arguments)}function va(){va.b2MouseJoint.apply(this,arguments);this.constructor===va&&this.b2MouseJoint.apply(this,arguments)}function wa(){wa.b2MouseJointDef.apply(this,arguments);this.constructor===wa&&this.b2MouseJointDef.apply(this,arguments)}function xa(){xa.b2PrismaticJoint.apply(this,
+arguments);this.constructor===xa&&this.b2PrismaticJoint.apply(this,arguments)}function ya(){ya.b2PrismaticJointDef.apply(this,arguments);this.constructor===ya&&this.b2PrismaticJointDef.apply(this,arguments)}function za(){za.b2PulleyJoint.apply(this,arguments);this.constructor===za&&this.b2PulleyJoint.apply(this,arguments)}function Aa(){Aa.b2PulleyJointDef.apply(this,arguments);this.constructor===Aa&&this.b2PulleyJointDef.apply(this,arguments)}function Ba(){Ba.b2RevoluteJoint.apply(this,arguments);
+this.constructor===Ba&&this.b2RevoluteJoint.apply(this,arguments)}function Ca(){Ca.b2RevoluteJointDef.apply(this,arguments);this.constructor===Ca&&this.b2RevoluteJointDef.apply(this,arguments)}function Da(){Da.b2WeldJoint.apply(this,arguments);this.constructor===Da&&this.b2WeldJoint.apply(this,arguments)}function Ea(){Ea.b2WeldJointDef.apply(this,arguments);this.constructor===Ea&&this.b2WeldJointDef.apply(this,arguments)}Box2D.Collision.IBroadPhase="Box2D.Collision.IBroadPhase";Box2D.Collision.b2AABB=
+F;Box2D.Collision.b2Bound=G;Box2D.Collision.b2BoundValues=K;Box2D.Collision.b2Collision=y;Box2D.Collision.b2ContactID=w;Box2D.Collision.b2ContactPoint=A;Box2D.Collision.b2Distance=U;Box2D.Collision.b2DistanceInput=p;Box2D.Collision.b2DistanceOutput=B;Box2D.Collision.b2DistanceProxy=Q;Box2D.Collision.b2DynamicTree=V;Box2D.Collision.b2DynamicTreeBroadPhase=M;Box2D.Collision.b2DynamicTreeNode=L;Box2D.Collision.b2DynamicTreePair=I;Box2D.Collision.b2Manifold=W;Box2D.Collision.b2ManifoldPoint=Y;Box2D.Collision.b2Point=
+k;Box2D.Collision.b2RayCastInput=z;Box2D.Collision.b2RayCastOutput=u;Box2D.Collision.b2Segment=D;Box2D.Collision.b2SeparationFunction=H;Box2D.Collision.b2Simplex=O;Box2D.Collision.b2SimplexCache=E;Box2D.Collision.b2SimplexVertex=R;Box2D.Collision.b2TimeOfImpact=N;Box2D.Collision.b2TOIInput=S;Box2D.Collision.b2WorldManifold=aa;Box2D.Collision.ClipVertex=Z;Box2D.Collision.Features=d;Box2D.Collision.Shapes.b2CircleShape=h;Box2D.Collision.Shapes.b2EdgeChainDef=l;Box2D.Collision.Shapes.b2EdgeShape=j;Box2D.Collision.Shapes.b2MassData=
+o;Box2D.Collision.Shapes.b2PolygonShape=q;Box2D.Collision.Shapes.b2Shape=n;Box2D.Common.b2internal="Box2D.Common.b2internal";Box2D.Common.b2Color=a;Box2D.Common.b2Settings=c;Box2D.Common.Math.b2Mat22=g;Box2D.Common.Math.b2Mat33=b;Box2D.Common.Math.b2Math=e;Box2D.Common.Math.b2Sweep=f;Box2D.Common.Math.b2Transform=m;Box2D.Common.Math.b2Vec2=r;Box2D.Common.Math.b2Vec3=s;Box2D.Dynamics.b2Body=v;Box2D.Dynamics.b2BodyDef=t;Box2D.Dynamics.b2ContactFilter=x;Box2D.Dynamics.b2ContactImpulse=C;Box2D.Dynamics.b2ContactListener=
+J;Box2D.Dynamics.b2ContactManager=T;Box2D.Dynamics.b2DebugDraw=P;Box2D.Dynamics.b2DestructionListener=X;Box2D.Dynamics.b2FilterData=$;Box2D.Dynamics.b2Fixture=ba;Box2D.Dynamics.b2FixtureDef=ca;Box2D.Dynamics.b2Island=da;Box2D.Dynamics.b2TimeStep=Fa;Box2D.Dynamics.b2World=ea;Box2D.Dynamics.Contacts.b2CircleContact=Ga;Box2D.Dynamics.Contacts.b2Contact=fa;Box2D.Dynamics.Contacts.b2ContactConstraint=ga;Box2D.Dynamics.Contacts.b2ContactConstraintPoint=Ha;Box2D.Dynamics.Contacts.b2ContactEdge=Ia;Box2D.Dynamics.Contacts.b2ContactFactory=
+ha;Box2D.Dynamics.Contacts.b2ContactRegister=Ja;Box2D.Dynamics.Contacts.b2ContactResult=Ka;Box2D.Dynamics.Contacts.b2ContactSolver=ia;Box2D.Dynamics.Contacts.b2EdgeAndCircleContact=La;Box2D.Dynamics.Contacts.b2NullContact=ja;Box2D.Dynamics.Contacts.b2PolyAndCircleContact=Ma;Box2D.Dynamics.Contacts.b2PolyAndEdgeContact=Na;Box2D.Dynamics.Contacts.b2PolygonContact=Oa;Box2D.Dynamics.Contacts.b2PositionSolverManifold=ka;Box2D.Dynamics.Controllers.b2BuoyancyController=Pa;Box2D.Dynamics.Controllers.b2ConstantAccelController=
+Qa;Box2D.Dynamics.Controllers.b2ConstantForceController=Ra;Box2D.Dynamics.Controllers.b2Controller=Sa;Box2D.Dynamics.Controllers.b2ControllerEdge=Ta;Box2D.Dynamics.Controllers.b2GravityController=Ua;Box2D.Dynamics.Controllers.b2TensorDampingController=Va;Box2D.Dynamics.Joints.b2DistanceJoint=la;Box2D.Dynamics.Joints.b2DistanceJointDef=ma;Box2D.Dynamics.Joints.b2FrictionJoint=na;Box2D.Dynamics.Joints.b2FrictionJointDef=oa;Box2D.Dynamics.Joints.b2GearJoint=pa;Box2D.Dynamics.Joints.b2GearJointDef=qa;
+Box2D.Dynamics.Joints.b2Jacobian=Wa;Box2D.Dynamics.Joints.b2Joint=ra;Box2D.Dynamics.Joints.b2JointDef=sa;Box2D.Dynamics.Joints.b2JointEdge=Xa;Box2D.Dynamics.Joints.b2LineJoint=ta;Box2D.Dynamics.Joints.b2LineJointDef=ua;Box2D.Dynamics.Joints.b2MouseJoint=va;Box2D.Dynamics.Joints.b2MouseJointDef=wa;Box2D.Dynamics.Joints.b2PrismaticJoint=xa;Box2D.Dynamics.Joints.b2PrismaticJointDef=ya;Box2D.Dynamics.Joints.b2PulleyJoint=za;Box2D.Dynamics.Joints.b2PulleyJointDef=Aa;Box2D.Dynamics.Joints.b2RevoluteJoint=
+Ba;Box2D.Dynamics.Joints.b2RevoluteJointDef=Ca;Box2D.Dynamics.Joints.b2WeldJoint=Da;Box2D.Dynamics.Joints.b2WeldJointDef=Ea})();Box2D.postDefs=[];
+(function(){var F=Box2D.Collision.Shapes.b2CircleShape,G=Box2D.Collision.Shapes.b2PolygonShape,K=Box2D.Collision.Shapes.b2Shape,y=Box2D.Common.b2Settings,w=Box2D.Common.Math.b2Math,A=Box2D.Common.Math.b2Sweep,U=Box2D.Common.Math.b2Transform,p=Box2D.Common.Math.b2Vec2,B=Box2D.Collision.b2AABB,Q=Box2D.Collision.b2Bound,V=Box2D.Collision.b2BoundValues,M=Box2D.Collision.b2Collision,L=Box2D.Collision.b2ContactID,I=Box2D.Collision.b2ContactPoint,W=Box2D.Collision.b2Distance,Y=Box2D.Collision.b2DistanceInput,
+k=Box2D.Collision.b2DistanceOutput,z=Box2D.Collision.b2DistanceProxy,u=Box2D.Collision.b2DynamicTree,D=Box2D.Collision.b2DynamicTreeBroadPhase,H=Box2D.Collision.b2DynamicTreeNode,O=Box2D.Collision.b2DynamicTreePair,E=Box2D.Collision.b2Manifold,R=Box2D.Collision.b2ManifoldPoint,N=Box2D.Collision.b2Point,S=Box2D.Collision.b2RayCastInput,aa=Box2D.Collision.b2RayCastOutput,Z=Box2D.Collision.b2Segment,d=Box2D.Collision.b2SeparationFunction,h=Box2D.Collision.b2Simplex,l=Box2D.Collision.b2SimplexCache,j=
+Box2D.Collision.b2SimplexVertex,o=Box2D.Collision.b2TimeOfImpact,q=Box2D.Collision.b2TOIInput,n=Box2D.Collision.b2WorldManifold,a=Box2D.Collision.ClipVertex,c=Box2D.Collision.Features,g=Box2D.Collision.IBroadPhase;B.b2AABB=function(){this.lowerBound=new p;this.upperBound=new p};B.prototype.IsValid=function(){var b=this.upperBound.y-this.lowerBound.y;return b=(b=this.upperBound.x-this.lowerBound.x>=0&&b>=0)&&this.lowerBound.IsValid()&&this.upperBound.IsValid()};B.prototype.GetCenter=function(){return new p((this.lowerBound.x+
+this.upperBound.x)/2,(this.lowerBound.y+this.upperBound.y)/2)};B.prototype.GetExtents=function(){return new p((this.upperBound.x-this.lowerBound.x)/2,(this.upperBound.y-this.lowerBound.y)/2)};B.prototype.Contains=function(b){var e=true;return e=(e=(e=(e=e&&this.lowerBound.x<=b.lowerBound.x)&&this.lowerBound.y<=b.lowerBound.y)&&b.upperBound.x<=this.upperBound.x)&&b.upperBound.y<=this.upperBound.y};B.prototype.RayCast=function(b,e){var f=-Number.MAX_VALUE,m=Number.MAX_VALUE,r=e.p1.x,s=e.p1.y,v=e.p2.x-
+e.p1.x,t=e.p2.y-e.p1.y,x=Math.abs(t),C=b.normal,J=0,T=0,P=J=0;P=0;if(Math.abs(v)<Number.MIN_VALUE){if(r<this.lowerBound.x||this.upperBound.x<r)return false}else{J=1/v;T=(this.lowerBound.x-r)*J;J=(this.upperBound.x-r)*J;P=-1;if(T>J){P=T;T=J;J=P;P=1}if(T>f){C.x=P;C.y=0;f=T}m=Math.min(m,J);if(f>m)return false}if(x<Number.MIN_VALUE){if(s<this.lowerBound.y||this.upperBound.y<s)return false}else{J=1/t;T=(this.lowerBound.y-s)*J;J=(this.upperBound.y-s)*J;P=-1;if(T>J){P=T;T=J;J=P;P=1}if(T>f){C.y=P;C.x=0;f=
+T}m=Math.min(m,J);if(f>m)return false}b.fraction=f;return true};B.prototype.TestOverlap=function(b){var e=b.lowerBound.y-this.upperBound.y,f=this.lowerBound.y-b.upperBound.y;if(b.lowerBound.x-this.upperBound.x>0||e>0)return false;if(this.lowerBound.x-b.upperBound.x>0||f>0)return false;return true};B.Combine=function(b,e){var f=new B;f.Combine(b,e);return f};B.prototype.Combine=function(b,e){this.lowerBound.x=Math.min(b.lowerBound.x,e.lowerBound.x);this.lowerBound.y=Math.min(b.lowerBound.y,e.lowerBound.y);
+this.upperBound.x=Math.max(b.upperBound.x,e.upperBound.x);this.upperBound.y=Math.max(b.upperBound.y,e.upperBound.y)};Q.b2Bound=function(){};Q.prototype.IsLower=function(){return(this.value&1)==0};Q.prototype.IsUpper=function(){return(this.value&1)==1};Q.prototype.Swap=function(b){var e=this.value,f=this.proxy,m=this.stabbingCount;this.value=b.value;this.proxy=b.proxy;this.stabbingCount=b.stabbingCount;b.value=e;b.proxy=f;b.stabbingCount=m};V.b2BoundValues=function(){};V.prototype.b2BoundValues=function(){this.lowerValues=
+new Vector_a2j_Number;this.lowerValues[0]=0;this.lowerValues[1]=0;this.upperValues=new Vector_a2j_Number;this.upperValues[0]=0;this.upperValues[1]=0};M.b2Collision=function(){};M.ClipSegmentToLine=function(b,e,f,m){if(m===undefined)m=0;var r,s=0;r=e[0];var v=r.v;r=e[1];var t=r.v,x=f.x*v.x+f.y*v.y-m;r=f.x*t.x+f.y*t.y-m;x<=0&&b[s++].Set(e[0]);r<=0&&b[s++].Set(e[1]);if(x*r<0){f=x/(x-r);r=b[s];r=r.v;r.x=v.x+f*(t.x-v.x);r.y=v.y+f*(t.y-v.y);r=b[s];r.id=(x>0?e[0]:e[1]).id;++s}return s};M.EdgeSeparation=
+function(b,e,f,m,r){if(f===undefined)f=0;parseInt(b.m_vertexCount);var s=b.m_vertices;b=b.m_normals;var v=parseInt(m.m_vertexCount),t=m.m_vertices,x,C;x=e.R;C=b[f];b=x.col1.x*C.x+x.col2.x*C.y;m=x.col1.y*C.x+x.col2.y*C.y;x=r.R;var J=x.col1.x*b+x.col1.y*m;x=x.col2.x*b+x.col2.y*m;for(var T=0,P=Number.MAX_VALUE,X=0;X<v;++X){C=t[X];C=C.x*J+C.y*x;if(C<P){P=C;T=X}}C=s[f];x=e.R;f=e.position.x+(x.col1.x*C.x+x.col2.x*C.y);e=e.position.y+(x.col1.y*C.x+x.col2.y*C.y);C=t[T];x=r.R;s=r.position.x+(x.col1.x*C.x+
+x.col2.x*C.y);r=r.position.y+(x.col1.y*C.x+x.col2.y*C.y);s-=f;r-=e;return s*b+r*m};M.FindMaxSeparation=function(b,e,f,m,r){var s=parseInt(e.m_vertexCount),v=e.m_normals,t,x;x=r.R;t=m.m_centroid;var C=r.position.x+(x.col1.x*t.x+x.col2.x*t.y),J=r.position.y+(x.col1.y*t.x+x.col2.y*t.y);x=f.R;t=e.m_centroid;C-=f.position.x+(x.col1.x*t.x+x.col2.x*t.y);J-=f.position.y+(x.col1.y*t.x+x.col2.y*t.y);x=C*f.R.col1.x+J*f.R.col1.y;J=C*f.R.col2.x+J*f.R.col2.y;C=0;for(var T=-Number.MAX_VALUE,P=0;P<s;++P){t=v[P];
+t=t.x*x+t.y*J;if(t>T){T=t;C=P}}v=M.EdgeSeparation(e,f,C,m,r);t=parseInt(C-1>=0?C-1:s-1);x=M.EdgeSeparation(e,f,t,m,r);J=parseInt(C+1<s?C+1:0);T=M.EdgeSeparation(e,f,J,m,r);var X=P=0,$=0;if(x>v&&x>T){$=-1;P=t;X=x}else if(T>v){$=1;P=J;X=T}else{b[0]=C;return v}for(;;){C=$==-1?P-1>=0?P-1:s-1:P+1<s?P+1:0;v=M.EdgeSeparation(e,f,C,m,r);if(v>X){P=C;X=v}else break}b[0]=P;return X};M.FindIncidentEdge=function(b,e,f,m,r,s){if(m===undefined)m=0;parseInt(e.m_vertexCount);var v=e.m_normals,t=parseInt(r.m_vertexCount);
+e=r.m_vertices;r=r.m_normals;var x;x=f.R;f=v[m];v=x.col1.x*f.x+x.col2.x*f.y;var C=x.col1.y*f.x+x.col2.y*f.y;x=s.R;f=x.col1.x*v+x.col1.y*C;C=x.col2.x*v+x.col2.y*C;v=f;x=0;for(var J=Number.MAX_VALUE,T=0;T<t;++T){f=r[T];f=v*f.x+C*f.y;if(f<J){J=f;x=T}}r=parseInt(x);v=parseInt(r+1<t?r+1:0);t=b[0];f=e[r];x=s.R;t.v.x=s.position.x+(x.col1.x*f.x+x.col2.x*f.y);t.v.y=s.position.y+(x.col1.y*f.x+x.col2.y*f.y);t.id.features.referenceEdge=m;t.id.features.incidentEdge=r;t.id.features.incidentVertex=0;t=b[1];f=e[v];
+x=s.R;t.v.x=s.position.x+(x.col1.x*f.x+x.col2.x*f.y);t.v.y=s.position.y+(x.col1.y*f.x+x.col2.y*f.y);t.id.features.referenceEdge=m;t.id.features.incidentEdge=v;t.id.features.incidentVertex=1};M.MakeClipPointVector=function(){var b=new Vector(2);b[0]=new a;b[1]=new a;return b};M.CollidePolygons=function(b,e,f,m,r){var s;b.m_pointCount=0;var v=e.m_radius+m.m_radius;s=0;M.s_edgeAO[0]=s;var t=M.FindMaxSeparation(M.s_edgeAO,e,f,m,r);s=M.s_edgeAO[0];if(!(t>v)){var x=0;M.s_edgeBO[0]=x;var C=M.FindMaxSeparation(M.s_edgeBO,
+m,r,e,f);x=M.s_edgeBO[0];if(!(C>v)){var J=0,T=0;if(C>0.98*t+0.0010){t=m;m=e;e=r;f=f;J=x;b.m_type=E.e_faceB;T=1}else{t=e;m=m;e=f;f=r;J=s;b.m_type=E.e_faceA;T=0}s=M.s_incidentEdge;M.FindIncidentEdge(s,t,e,J,m,f);x=parseInt(t.m_vertexCount);r=t.m_vertices;t=r[J];var P;P=J+1<x?r[parseInt(J+1)]:r[0];J=M.s_localTangent;J.Set(P.x-t.x,P.y-t.y);J.Normalize();r=M.s_localNormal;r.x=J.y;r.y=-J.x;m=M.s_planePoint;m.Set(0.5*(t.x+P.x),0.5*(t.y+P.y));C=M.s_tangent;x=e.R;C.x=x.col1.x*J.x+x.col2.x*J.y;C.y=x.col1.y*
+J.x+x.col2.y*J.y;var X=M.s_tangent2;X.x=-C.x;X.y=-C.y;J=M.s_normal;J.x=C.y;J.y=-C.x;var $=M.s_v11,ba=M.s_v12;$.x=e.position.x+(x.col1.x*t.x+x.col2.x*t.y);$.y=e.position.y+(x.col1.y*t.x+x.col2.y*t.y);ba.x=e.position.x+(x.col1.x*P.x+x.col2.x*P.y);ba.y=e.position.y+(x.col1.y*P.x+x.col2.y*P.y);e=J.x*$.x+J.y*$.y;x=C.x*ba.x+C.y*ba.y+v;P=M.s_clipPoints1;t=M.s_clipPoints2;ba=0;ba=M.ClipSegmentToLine(P,s,X,-C.x*$.x-C.y*$.y+v);if(!(ba<2)){ba=M.ClipSegmentToLine(t,P,C,x);if(!(ba<2)){b.m_localPlaneNormal.SetV(r);
+b.m_localPoint.SetV(m);for(m=r=0;m<y.b2_maxManifoldPoints;++m){s=t[m];if(J.x*s.v.x+J.y*s.v.y-e<=v){C=b.m_points[r];x=f.R;X=s.v.x-f.position.x;$=s.v.y-f.position.y;C.m_localPoint.x=X*x.col1.x+$*x.col1.y;C.m_localPoint.y=X*x.col2.x+$*x.col2.y;C.m_id.Set(s.id);C.m_id.features.flip=T;++r}}b.m_pointCount=r}}}}};M.CollideCircles=function(b,e,f,m,r){b.m_pointCount=0;var s,v;s=f.R;v=e.m_p;var t=f.position.x+(s.col1.x*v.x+s.col2.x*v.y);f=f.position.y+(s.col1.y*v.x+s.col2.y*v.y);s=r.R;v=m.m_p;t=r.position.x+
+(s.col1.x*v.x+s.col2.x*v.y)-t;r=r.position.y+(s.col1.y*v.x+s.col2.y*v.y)-f;s=e.m_radius+m.m_radius;if(!(t*t+r*r>s*s)){b.m_type=E.e_circles;b.m_localPoint.SetV(e.m_p);b.m_localPlaneNormal.SetZero();b.m_pointCount=1;b.m_points[0].m_localPoint.SetV(m.m_p);b.m_points[0].m_id.key=0}};M.CollidePolygonAndCircle=function(b,e,f,m,r){var s=b.m_pointCount=0,v=0,t,x;x=r.R;t=m.m_p;var C=r.position.y+(x.col1.y*t.x+x.col2.y*t.y);s=r.position.x+(x.col1.x*t.x+x.col2.x*t.y)-f.position.x;v=C-f.position.y;x=f.R;f=s*
+x.col1.x+v*x.col1.y;x=s*x.col2.x+v*x.col2.y;var J=0;C=-Number.MAX_VALUE;r=e.m_radius+m.m_radius;var T=parseInt(e.m_vertexCount),P=e.m_vertices;e=e.m_normals;for(var X=0;X<T;++X){t=P[X];s=f-t.x;v=x-t.y;t=e[X];s=t.x*s+t.y*v;if(s>r)return;if(s>C){C=s;J=X}}s=parseInt(J);v=parseInt(s+1<T?s+1:0);t=P[s];P=P[v];if(C<Number.MIN_VALUE){b.m_pointCount=1;b.m_type=E.e_faceA;b.m_localPlaneNormal.SetV(e[J]);b.m_localPoint.x=0.5*(t.x+P.x);b.m_localPoint.y=0.5*(t.y+P.y)}else{C=(f-P.x)*(t.x-P.x)+(x-P.y)*(t.y-P.y);
+if((f-t.x)*(P.x-t.x)+(x-t.y)*(P.y-t.y)<=0){if((f-t.x)*(f-t.x)+(x-t.y)*(x-t.y)>r*r)return;b.m_pointCount=1;b.m_type=E.e_faceA;b.m_localPlaneNormal.x=f-t.x;b.m_localPlaneNormal.y=x-t.y;b.m_localPlaneNormal.Normalize();b.m_localPoint.SetV(t)}else if(C<=0){if((f-P.x)*(f-P.x)+(x-P.y)*(x-P.y)>r*r)return;b.m_pointCount=1;b.m_type=E.e_faceA;b.m_localPlaneNormal.x=f-P.x;b.m_localPlaneNormal.y=x-P.y;b.m_localPlaneNormal.Normalize();b.m_localPoint.SetV(P)}else{J=0.5*(t.x+P.x);t=0.5*(t.y+P.y);C=(f-J)*e[s].x+
+(x-t)*e[s].y;if(C>r)return;b.m_pointCount=1;b.m_type=E.e_faceA;b.m_localPlaneNormal.x=e[s].x;b.m_localPlaneNormal.y=e[s].y;b.m_localPlaneNormal.Normalize();b.m_localPoint.Set(J,t)}}b.m_points[0].m_localPoint.SetV(m.m_p);b.m_points[0].m_id.key=0};M.TestOverlap=function(b,e){var f=e.lowerBound,m=b.upperBound,r=f.x-m.x,s=f.y-m.y;f=b.lowerBound;m=e.upperBound;var v=f.y-m.y;if(r>0||s>0)return false;if(f.x-m.x>0||v>0)return false;return true};Box2D.postDefs.push(function(){Box2D.Collision.b2Collision.s_incidentEdge=
+M.MakeClipPointVector();Box2D.Collision.b2Collision.s_clipPoints1=M.MakeClipPointVector();Box2D.Collision.b2Collision.s_clipPoints2=M.MakeClipPointVector();Box2D.Collision.b2Collision.s_edgeAO=new Vector_a2j_Number(1);Box2D.Collision.b2Collision.s_edgeBO=new Vector_a2j_Number(1);Box2D.Collision.b2Collision.s_localTangent=new p;Box2D.Collision.b2Collision.s_localNormal=new p;Box2D.Collision.b2Collision.s_planePoint=new p;Box2D.Collision.b2Collision.s_normal=new p;Box2D.Collision.b2Collision.s_tangent=
+new p;Box2D.Collision.b2Collision.s_tangent2=new p;Box2D.Collision.b2Collision.s_v11=new p;Box2D.Collision.b2Collision.s_v12=new p;Box2D.Collision.b2Collision.b2CollidePolyTempVec=new p;Box2D.Collision.b2Collision.b2_nullFeature=255});L.b2ContactID=function(){this.features=new c};L.prototype.b2ContactID=function(){this.features._m_id=this};L.prototype.Set=function(b){this.key=b._key};L.prototype.Copy=function(){var b=new L;b.key=this.key;return b};Object.defineProperty(L.prototype,"key",{enumerable:false,
+configurable:true,get:function(){return this._key}});Object.defineProperty(L.prototype,"key",{enumerable:false,configurable:true,set:function(b){if(b===undefined)b=0;this._key=b;this.features._referenceEdge=this._key&255;this.features._incidentEdge=(this._key&65280)>>8&255;this.features._incidentVertex=(this._key&16711680)>>16&255;this.features._flip=(this._key&4278190080)>>24&255}});I.b2ContactPoint=function(){this.position=new p;this.velocity=new p;this.normal=new p;this.id=new L};W.b2Distance=
+function(){};W.Distance=function(b,e,f){++W.b2_gjkCalls;var m=f.proxyA,r=f.proxyB,s=f.transformA,v=f.transformB,t=W.s_simplex;t.ReadCache(e,m,s,r,v);var x=t.m_vertices,C=W.s_saveA,J=W.s_saveB,T=0;t.GetClosestPoint().LengthSquared();for(var P=0,X,$=0;$<20;){T=t.m_count;for(P=0;P<T;P++){C[P]=x[P].indexA;J[P]=x[P].indexB}switch(t.m_count){case 1:break;case 2:t.Solve2();break;case 3:t.Solve3();break;default:y.b2Assert(false)}if(t.m_count==3)break;X=t.GetClosestPoint();X.LengthSquared();P=t.GetSearchDirection();
+if(P.LengthSquared()<Number.MIN_VALUE*Number.MIN_VALUE)break;X=x[t.m_count];X.indexA=m.GetSupport(w.MulTMV(s.R,P.GetNegative()));X.wA=w.MulX(s,m.GetVertex(X.indexA));X.indexB=r.GetSupport(w.MulTMV(v.R,P));X.wB=w.MulX(v,r.GetVertex(X.indexB));X.w=w.SubtractVV(X.wB,X.wA);++$;++W.b2_gjkIters;var ba=false;for(P=0;P<T;P++)if(X.indexA==C[P]&&X.indexB==J[P]){ba=true;break}if(ba)break;++t.m_count}W.b2_gjkMaxIters=w.Max(W.b2_gjkMaxIters,$);t.GetWitnessPoints(b.pointA,b.pointB);b.distance=w.SubtractVV(b.pointA,
+b.pointB).Length();b.iterations=$;t.WriteCache(e);if(f.useRadii){e=m.m_radius;r=r.m_radius;if(b.distance>e+r&&b.distance>Number.MIN_VALUE){b.distance-=e+r;f=w.SubtractVV(b.pointB,b.pointA);f.Normalize();b.pointA.x+=e*f.x;b.pointA.y+=e*f.y;b.pointB.x-=r*f.x;b.pointB.y-=r*f.y}else{X=new p;X.x=0.5*(b.pointA.x+b.pointB.x);X.y=0.5*(b.pointA.y+b.pointB.y);b.pointA.x=b.pointB.x=X.x;b.pointA.y=b.pointB.y=X.y;b.distance=0}}};Box2D.postDefs.push(function(){Box2D.Collision.b2Distance.s_simplex=new h;Box2D.Collision.b2Distance.s_saveA=
+new Vector_a2j_Number(3);Box2D.Collision.b2Distance.s_saveB=new Vector_a2j_Number(3)});Y.b2DistanceInput=function(){};k.b2DistanceOutput=function(){this.pointA=new p;this.pointB=new p};z.b2DistanceProxy=function(){};z.prototype.Set=function(b){switch(b.GetType()){case K.e_circleShape:b=b instanceof F?b:null;this.m_vertices=new Vector(1,true);this.m_vertices[0]=b.m_p;this.m_count=1;this.m_radius=b.m_radius;break;case K.e_polygonShape:b=b instanceof G?b:null;this.m_vertices=b.m_vertices;this.m_count=
+b.m_vertexCount;this.m_radius=b.m_radius;break;default:y.b2Assert(false)}};z.prototype.GetSupport=function(b){for(var e=0,f=this.m_vertices[0].x*b.x+this.m_vertices[0].y*b.y,m=1;m<this.m_count;++m){var r=this.m_vertices[m].x*b.x+this.m_vertices[m].y*b.y;if(r>f){e=m;f=r}}return e};z.prototype.GetSupportVertex=function(b){for(var e=0,f=this.m_vertices[0].x*b.x+this.m_vertices[0].y*b.y,m=1;m<this.m_count;++m){var r=this.m_vertices[m].x*b.x+this.m_vertices[m].y*b.y;if(r>f){e=m;f=r}}return this.m_vertices[e]};
+z.prototype.GetVertexCount=function(){return this.m_count};z.prototype.GetVertex=function(b){if(b===undefined)b=0;y.b2Assert(0<=b&&b<this.m_count);return this.m_vertices[b]};u.b2DynamicTree=function(){};u.prototype.b2DynamicTree=function(){this.m_freeList=this.m_root=null;this.m_insertionCount=this.m_path=0};u.prototype.CreateProxy=function(b,e){var f=this.AllocateNode(),m=y.b2_aabbExtension,r=y.b2_aabbExtension;f.aabb.lowerBound.x=b.lowerBound.x-m;f.aabb.lowerBound.y=b.lowerBound.y-r;f.aabb.upperBound.x=
+b.upperBound.x+m;f.aabb.upperBound.y=b.upperBound.y+r;f.userData=e;this.InsertLeaf(f);return f};u.prototype.DestroyProxy=function(b){this.RemoveLeaf(b);this.FreeNode(b)};u.prototype.MoveProxy=function(b,e,f){y.b2Assert(b.IsLeaf());if(b.aabb.Contains(e))return false;this.RemoveLeaf(b);var m=y.b2_aabbExtension+y.b2_aabbMultiplier*(f.x>0?f.x:-f.x);f=y.b2_aabbExtension+y.b2_aabbMultiplier*(f.y>0?f.y:-f.y);b.aabb.lowerBound.x=e.lowerBound.x-m;b.aabb.lowerBound.y=e.lowerBound.y-f;b.aabb.upperBound.x=e.upperBound.x+
+m;b.aabb.upperBound.y=e.upperBound.y+f;this.InsertLeaf(b);return true};u.prototype.Rebalance=function(b){if(b===undefined)b=0;if(this.m_root!=null)for(var e=0;e<b;e++){for(var f=this.m_root,m=0;f.IsLeaf()==false;){f=this.m_path>>m&1?f.child2:f.child1;m=m+1&31}++this.m_path;this.RemoveLeaf(f);this.InsertLeaf(f)}};u.prototype.GetFatAABB=function(b){return b.aabb};u.prototype.GetUserData=function(b){return b.userData};u.prototype.Query=function(b,e){if(this.m_root!=null){var f=new Vector,m=0;for(f[m++]=
+this.m_root;m>0;){var r=f[--m];if(r.aabb.TestOverlap(e))if(r.IsLeaf()){if(!b(r))break}else{f[m++]=r.child1;f[m++]=r.child2}}}};u.prototype.RayCast=function(b,e){if(this.m_root!=null){var f=e.p1,m=e.p2,r=w.SubtractVV(f,m);r.Normalize();r=w.CrossFV(1,r);var s=w.AbsV(r),v=e.maxFraction,t=new B,x=0,C=0;x=f.x+v*(m.x-f.x);C=f.y+v*(m.y-f.y);t.lowerBound.x=Math.min(f.x,x);t.lowerBound.y=Math.min(f.y,C);t.upperBound.x=Math.max(f.x,x);t.upperBound.y=Math.max(f.y,C);var J=new Vector,T=0;for(J[T++]=this.m_root;T>
+0;){v=J[--T];if(v.aabb.TestOverlap(t)!=false){x=v.aabb.GetCenter();C=v.aabb.GetExtents();if(!(Math.abs(r.x*(f.x-x.x)+r.y*(f.y-x.y))-s.x*C.x-s.y*C.y>0))if(v.IsLeaf()){x=new S;x.p1=e.p1;x.p2=e.p2;x.maxFraction=e.maxFraction;v=b(x,v);if(v==0)break;if(v>0){x=f.x+v*(m.x-f.x);C=f.y+v*(m.y-f.y);t.lowerBound.x=Math.min(f.x,x);t.lowerBound.y=Math.min(f.y,C);t.upperBound.x=Math.max(f.x,x);t.upperBound.y=Math.max(f.y,C)}}else{J[T++]=v.child1;J[T++]=v.child2}}}}};u.prototype.AllocateNode=function(){if(this.m_freeList){var b=
+this.m_freeList;this.m_freeList=b.parent;b.parent=null;b.child1=null;b.child2=null;return b}return new H};u.prototype.FreeNode=function(b){b.parent=this.m_freeList;this.m_freeList=b};u.prototype.InsertLeaf=function(b){++this.m_insertionCount;if(this.m_root==null){this.m_root=b;this.m_root.parent=null}else{var e=b.aabb.GetCenter(),f=this.m_root;if(f.IsLeaf()==false){do{var m=f.child1;f=f.child2;f=Math.abs((m.aabb.lowerBound.x+m.aabb.upperBound.x)/2-e.x)+Math.abs((m.aabb.lowerBound.y+m.aabb.upperBound.y)/
+2-e.y)<Math.abs((f.aabb.lowerBound.x+f.aabb.upperBound.x)/2-e.x)+Math.abs((f.aabb.lowerBound.y+f.aabb.upperBound.y)/2-e.y)?m:f}while(f.IsLeaf()==false)}e=f.parent;m=this.AllocateNode();m.parent=e;m.userData=null;m.aabb.Combine(b.aabb,f.aabb);if(e){if(f.parent.child1==f)e.child1=m;else e.child2=m;m.child1=f;m.child2=b;f.parent=m;b.parent=m;do{if(e.aabb.Contains(m.aabb))break;e.aabb.Combine(e.child1.aabb,e.child2.aabb);m=e;e=e.parent}while(e)}else{m.child1=f;m.child2=b;f.parent=m;this.m_root=b.parent=
+m}}};u.prototype.RemoveLeaf=function(b){if(b==this.m_root)this.m_root=null;else{var e=b.parent,f=e.parent;b=e.child1==b?e.child2:e.child1;if(f){if(f.child1==e)f.child1=b;else f.child2=b;b.parent=f;for(this.FreeNode(e);f;){e=f.aabb;f.aabb=B.Combine(f.child1.aabb,f.child2.aabb);if(e.Contains(f.aabb))break;f=f.parent}}else{this.m_root=b;b.parent=null;this.FreeNode(e)}}};D.b2DynamicTreeBroadPhase=function(){this.m_tree=new u;this.m_moveBuffer=new Vector;this.m_pairBuffer=new Vector;this.m_pairCount=0};
+D.prototype.CreateProxy=function(b,e){var f=this.m_tree.CreateProxy(b,e);++this.m_proxyCount;this.BufferMove(f);return f};D.prototype.DestroyProxy=function(b){this.UnBufferMove(b);--this.m_proxyCount;this.m_tree.DestroyProxy(b)};D.prototype.MoveProxy=function(b,e,f){this.m_tree.MoveProxy(b,e,f)&&this.BufferMove(b)};D.prototype.TestOverlap=function(b,e){var f=this.m_tree.GetFatAABB(b),m=this.m_tree.GetFatAABB(e);return f.TestOverlap(m)};D.prototype.GetUserData=function(b){return this.m_tree.GetUserData(b)};
+D.prototype.GetFatAABB=function(b){return this.m_tree.GetFatAABB(b)};D.prototype.GetProxyCount=function(){return this.m_proxyCount};D.prototype.UpdatePairs=function(b){var e=this;var f=e.m_pairCount=0,m;for(f=0;f<e.m_moveBuffer.length;++f){m=e.m_moveBuffer[f];var r=e.m_tree.GetFatAABB(m);e.m_tree.Query(function(t){if(t==m)return true;if(e.m_pairCount==e.m_pairBuffer.length)e.m_pairBuffer[e.m_pairCount]=new O;var x=e.m_pairBuffer[e.m_pairCount];x.proxyA=t<m?t:m;x.proxyB=t>=m?t:m;++e.m_pairCount;return true},
+r)}for(f=e.m_moveBuffer.length=0;f<e.m_pairCount;){r=e.m_pairBuffer[f];var s=e.m_tree.GetUserData(r.proxyA),v=e.m_tree.GetUserData(r.proxyB);b(s,v);for(++f;f<e.m_pairCount;){s=e.m_pairBuffer[f];if(s.proxyA!=r.proxyA||s.proxyB!=r.proxyB)break;++f}}};D.prototype.Query=function(b,e){this.m_tree.Query(b,e)};D.prototype.RayCast=function(b,e){this.m_tree.RayCast(b,e)};D.prototype.Validate=function(){};D.prototype.Rebalance=function(b){if(b===undefined)b=0;this.m_tree.Rebalance(b)};D.prototype.BufferMove=
+function(b){this.m_moveBuffer[this.m_moveBuffer.length]=b};D.prototype.UnBufferMove=function(b){this.m_moveBuffer.splice(parseInt(this.m_moveBuffer.indexOf(b)),1)};D.prototype.ComparePairs=function(){return 0};D.__implements={};D.__implements[g]=true;H.b2DynamicTreeNode=function(){this.aabb=new B};H.prototype.IsLeaf=function(){return this.child1==null};O.b2DynamicTreePair=function(){};E.b2Manifold=function(){this.m_pointCount=0};E.prototype.b2Manifold=function(){this.m_points=new Vector(y.b2_maxManifoldPoints);
+for(var b=0;b<y.b2_maxManifoldPoints;b++)this.m_points[b]=new R;this.m_localPlaneNormal=new p;this.m_localPoint=new p};E.prototype.Reset=function(){for(var b=0;b<y.b2_maxManifoldPoints;b++)(this.m_points[b]instanceof R?this.m_points[b]:null).Reset();this.m_localPlaneNormal.SetZero();this.m_localPoint.SetZero();this.m_pointCount=this.m_type=0};E.prototype.Set=function(b){this.m_pointCount=b.m_pointCount;for(var e=0;e<y.b2_maxManifoldPoints;e++)(this.m_points[e]instanceof R?this.m_points[e]:null).Set(b.m_points[e]);
+this.m_localPlaneNormal.SetV(b.m_localPlaneNormal);this.m_localPoint.SetV(b.m_localPoint);this.m_type=b.m_type};E.prototype.Copy=function(){var b=new E;b.Set(this);return b};Box2D.postDefs.push(function(){Box2D.Collision.b2Manifold.e_circles=1;Box2D.Collision.b2Manifold.e_faceA=2;Box2D.Collision.b2Manifold.e_faceB=4});R.b2ManifoldPoint=function(){this.m_localPoint=new p;this.m_id=new L};R.prototype.b2ManifoldPoint=function(){this.Reset()};R.prototype.Reset=function(){this.m_localPoint.SetZero();this.m_tangentImpulse=
+this.m_normalImpulse=0;this.m_id.key=0};R.prototype.Set=function(b){this.m_localPoint.SetV(b.m_localPoint);this.m_normalImpulse=b.m_normalImpulse;this.m_tangentImpulse=b.m_tangentImpulse;this.m_id.Set(b.m_id)};N.b2Point=function(){this.p=new p};N.prototype.Support=function(){return this.p};N.prototype.GetFirstVertex=function(){return this.p};S.b2RayCastInput=function(){this.p1=new p;this.p2=new p};S.prototype.b2RayCastInput=function(b,e,f){if(b===undefined)b=null;if(e===undefined)e=null;if(f===undefined)f=
+1;b&&this.p1.SetV(b);e&&this.p2.SetV(e);this.maxFraction=f};aa.b2RayCastOutput=function(){this.normal=new p};Z.b2Segment=function(){this.p1=new p;this.p2=new p};Z.prototype.TestSegment=function(b,e,f,m){if(m===undefined)m=0;var r=f.p1,s=f.p2.x-r.x,v=f.p2.y-r.y;f=this.p2.y-this.p1.y;var t=-(this.p2.x-this.p1.x),x=100*Number.MIN_VALUE,C=-(s*f+v*t);if(C>x){var J=r.x-this.p1.x,T=r.y-this.p1.y;r=J*f+T*t;if(0<=r&&r<=m*C){m=-s*T+v*J;if(-x*C<=m&&m<=C*(1+x)){r/=C;m=Math.sqrt(f*f+t*t);f/=m;t/=m;b[0]=r;e.Set(f,
+t);return true}}}return false};Z.prototype.Extend=function(b){this.ExtendForward(b);this.ExtendBackward(b)};Z.prototype.ExtendForward=function(b){var e=this.p2.x-this.p1.x,f=this.p2.y-this.p1.y;b=Math.min(e>0?(b.upperBound.x-this.p1.x)/e:e<0?(b.lowerBound.x-this.p1.x)/e:Number.POSITIVE_INFINITY,f>0?(b.upperBound.y-this.p1.y)/f:f<0?(b.lowerBound.y-this.p1.y)/f:Number.POSITIVE_INFINITY);this.p2.x=this.p1.x+e*b;this.p2.y=this.p1.y+f*b};Z.prototype.ExtendBackward=function(b){var e=-this.p2.x+this.p1.x,
+f=-this.p2.y+this.p1.y;b=Math.min(e>0?(b.upperBound.x-this.p2.x)/e:e<0?(b.lowerBound.x-this.p2.x)/e:Number.POSITIVE_INFINITY,f>0?(b.upperBound.y-this.p2.y)/f:f<0?(b.lowerBound.y-this.p2.y)/f:Number.POSITIVE_INFINITY);this.p1.x=this.p2.x+e*b;this.p1.y=this.p2.y+f*b};d.b2SeparationFunction=function(){this.m_localPoint=new p;this.m_axis=new p};d.prototype.Initialize=function(b,e,f,m,r){this.m_proxyA=e;this.m_proxyB=m;var s=parseInt(b.count);y.b2Assert(0<s&&s<3);var v,t,x,C,J=C=x=m=e=0,T=0;J=0;if(s==
+1){this.m_type=d.e_points;v=this.m_proxyA.GetVertex(b.indexA[0]);t=this.m_proxyB.GetVertex(b.indexB[0]);s=v;b=f.R;e=f.position.x+(b.col1.x*s.x+b.col2.x*s.y);m=f.position.y+(b.col1.y*s.x+b.col2.y*s.y);s=t;b=r.R;x=r.position.x+(b.col1.x*s.x+b.col2.x*s.y);C=r.position.y+(b.col1.y*s.x+b.col2.y*s.y);this.m_axis.x=x-e;this.m_axis.y=C-m;this.m_axis.Normalize()}else{if(b.indexB[0]==b.indexB[1]){this.m_type=d.e_faceA;e=this.m_proxyA.GetVertex(b.indexA[0]);m=this.m_proxyA.GetVertex(b.indexA[1]);t=this.m_proxyB.GetVertex(b.indexB[0]);
+this.m_localPoint.x=0.5*(e.x+m.x);this.m_localPoint.y=0.5*(e.y+m.y);this.m_axis=w.CrossVF(w.SubtractVV(m,e),1);this.m_axis.Normalize();s=this.m_axis;b=f.R;J=b.col1.x*s.x+b.col2.x*s.y;T=b.col1.y*s.x+b.col2.y*s.y;s=this.m_localPoint;b=f.R;e=f.position.x+(b.col1.x*s.x+b.col2.x*s.y);m=f.position.y+(b.col1.y*s.x+b.col2.y*s.y);s=t;b=r.R;x=r.position.x+(b.col1.x*s.x+b.col2.x*s.y);C=r.position.y+(b.col1.y*s.x+b.col2.y*s.y);J=(x-e)*J+(C-m)*T}else if(b.indexA[0]==b.indexA[0]){this.m_type=d.e_faceB;x=this.m_proxyB.GetVertex(b.indexB[0]);
+C=this.m_proxyB.GetVertex(b.indexB[1]);v=this.m_proxyA.GetVertex(b.indexA[0]);this.m_localPoint.x=0.5*(x.x+C.x);this.m_localPoint.y=0.5*(x.y+C.y);this.m_axis=w.CrossVF(w.SubtractVV(C,x),1);this.m_axis.Normalize();s=this.m_axis;b=r.R;J=b.col1.x*s.x+b.col2.x*s.y;T=b.col1.y*s.x+b.col2.y*s.y;s=this.m_localPoint;b=r.R;x=r.position.x+(b.col1.x*s.x+b.col2.x*s.y);C=r.position.y+(b.col1.y*s.x+b.col2.y*s.y);s=v;b=f.R;e=f.position.x+(b.col1.x*s.x+b.col2.x*s.y);m=f.position.y+(b.col1.y*s.x+b.col2.y*s.y);J=(e-
+x)*J+(m-C)*T}else{e=this.m_proxyA.GetVertex(b.indexA[0]);m=this.m_proxyA.GetVertex(b.indexA[1]);x=this.m_proxyB.GetVertex(b.indexB[0]);C=this.m_proxyB.GetVertex(b.indexB[1]);w.MulX(f,v);v=w.MulMV(f.R,w.SubtractVV(m,e));w.MulX(r,t);J=w.MulMV(r.R,w.SubtractVV(C,x));r=v.x*v.x+v.y*v.y;t=J.x*J.x+J.y*J.y;b=w.SubtractVV(J,v);f=v.x*b.x+v.y*b.y;b=J.x*b.x+J.y*b.y;v=v.x*J.x+v.y*J.y;T=r*t-v*v;J=0;if(T!=0)J=w.Clamp((v*b-f*t)/T,0,1);if((v*J+b)/t<0)J=w.Clamp((v-f)/r,0,1);v=new p;v.x=e.x+J*(m.x-e.x);v.y=e.y+J*(m.y-
+e.y);t=new p;t.x=x.x+J*(C.x-x.x);t.y=x.y+J*(C.y-x.y);if(J==0||J==1){this.m_type=d.e_faceB;this.m_axis=w.CrossVF(w.SubtractVV(C,x),1);this.m_axis.Normalize();this.m_localPoint=t}else{this.m_type=d.e_faceA;this.m_axis=w.CrossVF(w.SubtractVV(m,e),1);this.m_localPoint=v}}J<0&&this.m_axis.NegativeSelf()}};d.prototype.Evaluate=function(b,e){var f,m,r=0;switch(this.m_type){case d.e_points:f=w.MulTMV(b.R,this.m_axis);m=w.MulTMV(e.R,this.m_axis.GetNegative());f=this.m_proxyA.GetSupportVertex(f);m=this.m_proxyB.GetSupportVertex(m);
+f=w.MulX(b,f);m=w.MulX(e,m);return r=(m.x-f.x)*this.m_axis.x+(m.y-f.y)*this.m_axis.y;case d.e_faceA:r=w.MulMV(b.R,this.m_axis);f=w.MulX(b,this.m_localPoint);m=w.MulTMV(e.R,r.GetNegative());m=this.m_proxyB.GetSupportVertex(m);m=w.MulX(e,m);return r=(m.x-f.x)*r.x+(m.y-f.y)*r.y;case d.e_faceB:r=w.MulMV(e.R,this.m_axis);m=w.MulX(e,this.m_localPoint);f=w.MulTMV(b.R,r.GetNegative());f=this.m_proxyA.GetSupportVertex(f);f=w.MulX(b,f);return r=(f.x-m.x)*r.x+(f.y-m.y)*r.y;default:y.b2Assert(false);return 0}};
+Box2D.postDefs.push(function(){Box2D.Collision.b2SeparationFunction.e_points=1;Box2D.Collision.b2SeparationFunction.e_faceA=2;Box2D.Collision.b2SeparationFunction.e_faceB=4});h.b2Simplex=function(){this.m_v1=new j;this.m_v2=new j;this.m_v3=new j;this.m_vertices=new Vector(3)};h.prototype.b2Simplex=function(){this.m_vertices[0]=this.m_v1;this.m_vertices[1]=this.m_v2;this.m_vertices[2]=this.m_v3};h.prototype.ReadCache=function(b,e,f,m,r){y.b2Assert(0<=b.count&&b.count<=3);var s,v;this.m_count=b.count;
+for(var t=this.m_vertices,x=0;x<this.m_count;x++){var C=t[x];C.indexA=b.indexA[x];C.indexB=b.indexB[x];s=e.GetVertex(C.indexA);v=m.GetVertex(C.indexB);C.wA=w.MulX(f,s);C.wB=w.MulX(r,v);C.w=w.SubtractVV(C.wB,C.wA);C.a=0}if(this.m_count>1){b=b.metric;s=this.GetMetric();if(s<0.5*b||2*b<s||s<Number.MIN_VALUE)this.m_count=0}if(this.m_count==0){C=t[0];C.indexA=0;C.indexB=0;s=e.GetVertex(0);v=m.GetVertex(0);C.wA=w.MulX(f,s);C.wB=w.MulX(r,v);C.w=w.SubtractVV(C.wB,C.wA);this.m_count=1}};h.prototype.WriteCache=
+function(b){b.metric=this.GetMetric();b.count=Box2D.parseUInt(this.m_count);for(var e=this.m_vertices,f=0;f<this.m_count;f++){b.indexA[f]=Box2D.parseUInt(e[f].indexA);b.indexB[f]=Box2D.parseUInt(e[f].indexB)}};h.prototype.GetSearchDirection=function(){switch(this.m_count){case 1:return this.m_v1.w.GetNegative();case 2:var b=w.SubtractVV(this.m_v2.w,this.m_v1.w);return w.CrossVV(b,this.m_v1.w.GetNegative())>0?w.CrossFV(1,b):w.CrossVF(b,1);default:y.b2Assert(false);return new p}};h.prototype.GetClosestPoint=
+function(){switch(this.m_count){case 0:y.b2Assert(false);return new p;case 1:return this.m_v1.w;case 2:return new p(this.m_v1.a*this.m_v1.w.x+this.m_v2.a*this.m_v2.w.x,this.m_v1.a*this.m_v1.w.y+this.m_v2.a*this.m_v2.w.y);default:y.b2Assert(false);return new p}};h.prototype.GetWitnessPoints=function(b,e){switch(this.m_count){case 0:y.b2Assert(false);break;case 1:b.SetV(this.m_v1.wA);e.SetV(this.m_v1.wB);break;case 2:b.x=this.m_v1.a*this.m_v1.wA.x+this.m_v2.a*this.m_v2.wA.x;b.y=this.m_v1.a*this.m_v1.wA.y+
+this.m_v2.a*this.m_v2.wA.y;e.x=this.m_v1.a*this.m_v1.wB.x+this.m_v2.a*this.m_v2.wB.x;e.y=this.m_v1.a*this.m_v1.wB.y+this.m_v2.a*this.m_v2.wB.y;break;case 3:e.x=b.x=this.m_v1.a*this.m_v1.wA.x+this.m_v2.a*this.m_v2.wA.x+this.m_v3.a*this.m_v3.wA.x;e.y=b.y=this.m_v1.a*this.m_v1.wA.y+this.m_v2.a*this.m_v2.wA.y+this.m_v3.a*this.m_v3.wA.y;break;default:y.b2Assert(false)}};h.prototype.GetMetric=function(){switch(this.m_count){case 0:y.b2Assert(false);return 0;case 1:return 0;case 2:return w.SubtractVV(this.m_v1.w,
+this.m_v2.w).Length();case 3:return w.CrossVV(w.SubtractVV(this.m_v2.w,this.m_v1.w),w.SubtractVV(this.m_v3.w,this.m_v1.w));default:y.b2Assert(false);return 0}};h.prototype.Solve2=function(){var b=this.m_v1.w,e=this.m_v2.w,f=w.SubtractVV(e,b);b=-(b.x*f.x+b.y*f.y);if(b<=0)this.m_count=this.m_v1.a=1;else{e=e.x*f.x+e.y*f.y;if(e<=0){this.m_count=this.m_v2.a=1;this.m_v1.Set(this.m_v2)}else{f=1/(e+b);this.m_v1.a=e*f;this.m_v2.a=b*f;this.m_count=2}}};h.prototype.Solve3=function(){var b=this.m_v1.w,e=this.m_v2.w,
+f=this.m_v3.w,m=w.SubtractVV(e,b),r=w.Dot(b,m),s=w.Dot(e,m);r=-r;var v=w.SubtractVV(f,b),t=w.Dot(b,v),x=w.Dot(f,v);t=-t;var C=w.SubtractVV(f,e),J=w.Dot(e,C);C=w.Dot(f,C);J=-J;v=w.CrossVV(m,v);m=v*w.CrossVV(e,f);f=v*w.CrossVV(f,b);b=v*w.CrossVV(b,e);if(r<=0&&t<=0)this.m_count=this.m_v1.a=1;else if(s>0&&r>0&&b<=0){x=1/(s+r);this.m_v1.a=s*x;this.m_v2.a=r*x;this.m_count=2}else if(x>0&&t>0&&f<=0){s=1/(x+t);this.m_v1.a=x*s;this.m_v3.a=t*s;this.m_count=2;this.m_v2.Set(this.m_v3)}else if(s<=0&&J<=0){this.m_count=
+this.m_v2.a=1;this.m_v1.Set(this.m_v2)}else if(x<=0&&C<=0){this.m_count=this.m_v3.a=1;this.m_v1.Set(this.m_v3)}else if(C>0&&J>0&&m<=0){s=1/(C+J);this.m_v2.a=C*s;this.m_v3.a=J*s;this.m_count=2;this.m_v1.Set(this.m_v3)}else{s=1/(m+f+b);this.m_v1.a=m*s;this.m_v2.a=f*s;this.m_v3.a=b*s;this.m_count=3}};l.b2SimplexCache=function(){this.indexA=new Vector_a2j_Number(3);this.indexB=new Vector_a2j_Number(3)};j.b2SimplexVertex=function(){};j.prototype.Set=function(b){this.wA.SetV(b.wA);this.wB.SetV(b.wB);this.w.SetV(b.w);
+this.a=b.a;this.indexA=b.indexA;this.indexB=b.indexB};o.b2TimeOfImpact=function(){};o.TimeOfImpact=function(b){++o.b2_toiCalls;var e=b.proxyA,f=b.proxyB,m=b.sweepA,r=b.sweepB;y.b2Assert(m.t0==r.t0);y.b2Assert(1-m.t0>Number.MIN_VALUE);var s=e.m_radius+f.m_radius;b=b.tolerance;var v=0,t=0,x=0;o.s_cache.count=0;for(o.s_distanceInput.useRadii=false;;){m.GetTransform(o.s_xfA,v);r.GetTransform(o.s_xfB,v);o.s_distanceInput.proxyA=e;o.s_distanceInput.proxyB=f;o.s_distanceInput.transformA=o.s_xfA;o.s_distanceInput.transformB=
+o.s_xfB;W.Distance(o.s_distanceOutput,o.s_cache,o.s_distanceInput);if(o.s_distanceOutput.distance<=0){v=1;break}o.s_fcn.Initialize(o.s_cache,e,o.s_xfA,f,o.s_xfB);var C=o.s_fcn.Evaluate(o.s_xfA,o.s_xfB);if(C<=0){v=1;break}if(t==0)x=C>s?w.Max(s-b,0.75*s):w.Max(C-b,0.02*s);if(C-x<0.5*b){if(t==0){v=1;break}break}var J=v,T=v,P=1;C=C;m.GetTransform(o.s_xfA,P);r.GetTransform(o.s_xfB,P);var X=o.s_fcn.Evaluate(o.s_xfA,o.s_xfB);if(X>=x){v=1;break}for(var $=0;;){var ba=0;ba=$&1?T+(x-C)*(P-T)/(X-C):0.5*(T+P);
+m.GetTransform(o.s_xfA,ba);r.GetTransform(o.s_xfB,ba);var ca=o.s_fcn.Evaluate(o.s_xfA,o.s_xfB);if(w.Abs(ca-x)<0.025*b){J=ba;break}if(ca>x){T=ba;C=ca}else{P=ba;X=ca}++$;++o.b2_toiRootIters;if($==50)break}o.b2_toiMaxRootIters=w.Max(o.b2_toiMaxRootIters,$);if(J<(1+100*Number.MIN_VALUE)*v)break;v=J;t++;++o.b2_toiIters;if(t==1E3)break}o.b2_toiMaxIters=w.Max(o.b2_toiMaxIters,t);return v};Box2D.postDefs.push(function(){Box2D.Collision.b2TimeOfImpact.b2_toiCalls=0;Box2D.Collision.b2TimeOfImpact.b2_toiIters=
+0;Box2D.Collision.b2TimeOfImpact.b2_toiMaxIters=0;Box2D.Collision.b2TimeOfImpact.b2_toiRootIters=0;Box2D.Collision.b2TimeOfImpact.b2_toiMaxRootIters=0;Box2D.Collision.b2TimeOfImpact.s_cache=new l;Box2D.Collision.b2TimeOfImpact.s_distanceInput=new Y;Box2D.Collision.b2TimeOfImpact.s_xfA=new U;Box2D.Collision.b2TimeOfImpact.s_xfB=new U;Box2D.Collision.b2TimeOfImpact.s_fcn=new d;Box2D.Collision.b2TimeOfImpact.s_distanceOutput=new k});q.b2TOIInput=function(){this.proxyA=new z;this.proxyB=new z;this.sweepA=
+new A;this.sweepB=new A};n.b2WorldManifold=function(){this.m_normal=new p};n.prototype.b2WorldManifold=function(){this.m_points=new Vector(y.b2_maxManifoldPoints);for(var b=0;b<y.b2_maxManifoldPoints;b++)this.m_points[b]=new p};n.prototype.Initialize=function(b,e,f,m,r){if(f===undefined)f=0;if(r===undefined)r=0;if(b.m_pointCount!=0){var s=0,v,t,x=0,C=0,J=0,T=0,P=0;v=0;switch(b.m_type){case E.e_circles:t=e.R;v=b.m_localPoint;s=e.position.x+t.col1.x*v.x+t.col2.x*v.y;e=e.position.y+t.col1.y*v.x+t.col2.y*
+v.y;t=m.R;v=b.m_points[0].m_localPoint;b=m.position.x+t.col1.x*v.x+t.col2.x*v.y;m=m.position.y+t.col1.y*v.x+t.col2.y*v.y;v=b-s;t=m-e;x=v*v+t*t;if(x>Number.MIN_VALUE*Number.MIN_VALUE){x=Math.sqrt(x);this.m_normal.x=v/x;this.m_normal.y=t/x}else{this.m_normal.x=1;this.m_normal.y=0}v=e+f*this.m_normal.y;m=m-r*this.m_normal.y;this.m_points[0].x=0.5*(s+f*this.m_normal.x+(b-r*this.m_normal.x));this.m_points[0].y=0.5*(v+m);break;case E.e_faceA:t=e.R;v=b.m_localPlaneNormal;x=t.col1.x*v.x+t.col2.x*v.y;C=t.col1.y*
+v.x+t.col2.y*v.y;t=e.R;v=b.m_localPoint;J=e.position.x+t.col1.x*v.x+t.col2.x*v.y;T=e.position.y+t.col1.y*v.x+t.col2.y*v.y;this.m_normal.x=x;this.m_normal.y=C;for(s=0;s<b.m_pointCount;s++){t=m.R;v=b.m_points[s].m_localPoint;P=m.position.x+t.col1.x*v.x+t.col2.x*v.y;v=m.position.y+t.col1.y*v.x+t.col2.y*v.y;this.m_points[s].x=P+0.5*(f-(P-J)*x-(v-T)*C-r)*x;this.m_points[s].y=v+0.5*(f-(P-J)*x-(v-T)*C-r)*C}break;case E.e_faceB:t=m.R;v=b.m_localPlaneNormal;x=t.col1.x*v.x+t.col2.x*v.y;C=t.col1.y*v.x+t.col2.y*
+v.y;t=m.R;v=b.m_localPoint;J=m.position.x+t.col1.x*v.x+t.col2.x*v.y;T=m.position.y+t.col1.y*v.x+t.col2.y*v.y;this.m_normal.x=-x;this.m_normal.y=-C;for(s=0;s<b.m_pointCount;s++){t=e.R;v=b.m_points[s].m_localPoint;P=e.position.x+t.col1.x*v.x+t.col2.x*v.y;v=e.position.y+t.col1.y*v.x+t.col2.y*v.y;this.m_points[s].x=P+0.5*(r-(P-J)*x-(v-T)*C-f)*x;this.m_points[s].y=v+0.5*(r-(P-J)*x-(v-T)*C-f)*C}}}};a.ClipVertex=function(){this.v=new p;this.id=new L};a.prototype.Set=function(b){this.v.SetV(b.v);this.id.Set(b.id)};
+c.Features=function(){};Object.defineProperty(c.prototype,"referenceEdge",{enumerable:false,configurable:true,get:function(){return this._referenceEdge}});Object.defineProperty(c.prototype,"referenceEdge",{enumerable:false,configurable:true,set:function(b){if(b===undefined)b=0;this._referenceEdge=b;this._m_id._key=this._m_id._key&4294967040|this._referenceEdge&255}});Object.defineProperty(c.prototype,"incidentEdge",{enumerable:false,configurable:true,get:function(){return this._incidentEdge}});Object.defineProperty(c.prototype,
+"incidentEdge",{enumerable:false,configurable:true,set:function(b){if(b===undefined)b=0;this._incidentEdge=b;this._m_id._key=this._m_id._key&4294902015|this._incidentEdge<<8&65280}});Object.defineProperty(c.prototype,"incidentVertex",{enumerable:false,configurable:true,get:function(){return this._incidentVertex}});Object.defineProperty(c.prototype,"incidentVertex",{enumerable:false,configurable:true,set:function(b){if(b===undefined)b=0;this._incidentVertex=b;this._m_id._key=this._m_id._key&4278255615|
+this._incidentVertex<<16&16711680}});Object.defineProperty(c.prototype,"flip",{enumerable:false,configurable:true,get:function(){return this._flip}});Object.defineProperty(c.prototype,"flip",{enumerable:false,configurable:true,set:function(b){if(b===undefined)b=0;this._flip=b;this._m_id._key=this._m_id._key&16777215|this._flip<<24&4278190080}})})();
+(function(){var F=Box2D.Common.b2Settings,G=Box2D.Collision.Shapes.b2CircleShape,K=Box2D.Collision.Shapes.b2EdgeChainDef,y=Box2D.Collision.Shapes.b2EdgeShape,w=Box2D.Collision.Shapes.b2MassData,A=Box2D.Collision.Shapes.b2PolygonShape,U=Box2D.Collision.Shapes.b2Shape,p=Box2D.Common.Math.b2Mat22,B=Box2D.Common.Math.b2Math,Q=Box2D.Common.Math.b2Transform,V=Box2D.Common.Math.b2Vec2,M=Box2D.Collision.b2Distance,L=Box2D.Collision.b2DistanceInput,I=Box2D.Collision.b2DistanceOutput,W=Box2D.Collision.b2DistanceProxy,
+Y=Box2D.Collision.b2SimplexCache;Box2D.inherit(G,Box2D.Collision.Shapes.b2Shape);G.prototype.__super=Box2D.Collision.Shapes.b2Shape.prototype;G.b2CircleShape=function(){Box2D.Collision.Shapes.b2Shape.b2Shape.apply(this,arguments);this.m_p=new V};G.prototype.Copy=function(){var k=new G;k.Set(this);return k};G.prototype.Set=function(k){this.__super.Set.call(this,k);if(Box2D.is(k,G))this.m_p.SetV((k instanceof G?k:null).m_p)};G.prototype.TestPoint=function(k,z){var u=k.R,D=k.position.x+(u.col1.x*this.m_p.x+
+u.col2.x*this.m_p.y);u=k.position.y+(u.col1.y*this.m_p.x+u.col2.y*this.m_p.y);D=z.x-D;u=z.y-u;return D*D+u*u<=this.m_radius*this.m_radius};G.prototype.RayCast=function(k,z,u){var D=u.R,H=z.p1.x-(u.position.x+(D.col1.x*this.m_p.x+D.col2.x*this.m_p.y));u=z.p1.y-(u.position.y+(D.col1.y*this.m_p.x+D.col2.y*this.m_p.y));D=z.p2.x-z.p1.x;var O=z.p2.y-z.p1.y,E=H*D+u*O,R=D*D+O*O,N=E*E-R*(H*H+u*u-this.m_radius*this.m_radius);if(N<0||R<Number.MIN_VALUE)return false;E=-(E+Math.sqrt(N));if(0<=E&&E<=z.maxFraction*
+R){E/=R;k.fraction=E;k.normal.x=H+E*D;k.normal.y=u+E*O;k.normal.Normalize();return true}return false};G.prototype.ComputeAABB=function(k,z){var u=z.R,D=z.position.x+(u.col1.x*this.m_p.x+u.col2.x*this.m_p.y);u=z.position.y+(u.col1.y*this.m_p.x+u.col2.y*this.m_p.y);k.lowerBound.Set(D-this.m_radius,u-this.m_radius);k.upperBound.Set(D+this.m_radius,u+this.m_radius)};G.prototype.ComputeMass=function(k,z){if(z===undefined)z=0;k.mass=z*F.b2_pi*this.m_radius*this.m_radius;k.center.SetV(this.m_p);k.I=k.mass*
+(0.5*this.m_radius*this.m_radius+(this.m_p.x*this.m_p.x+this.m_p.y*this.m_p.y))};G.prototype.ComputeSubmergedArea=function(k,z,u,D){if(z===undefined)z=0;u=B.MulX(u,this.m_p);var H=-(B.Dot(k,u)-z);if(H<-this.m_radius+Number.MIN_VALUE)return 0;if(H>this.m_radius){D.SetV(u);return Math.PI*this.m_radius*this.m_radius}z=this.m_radius*this.m_radius;var O=H*H;H=z*(Math.asin(H/this.m_radius)+Math.PI/2)+H*Math.sqrt(z-O);z=-2/3*Math.pow(z-O,1.5)/H;D.x=u.x+k.x*z;D.y=u.y+k.y*z;return H};G.prototype.GetLocalPosition=
+function(){return this.m_p};G.prototype.SetLocalPosition=function(k){this.m_p.SetV(k)};G.prototype.GetRadius=function(){return this.m_radius};G.prototype.SetRadius=function(k){if(k===undefined)k=0;this.m_radius=k};G.prototype.b2CircleShape=function(k){if(k===undefined)k=0;this.__super.b2Shape.call(this);this.m_type=U.e_circleShape;this.m_radius=k};K.b2EdgeChainDef=function(){};K.prototype.b2EdgeChainDef=function(){this.vertexCount=0;this.isALoop=true;this.vertices=[]};Box2D.inherit(y,Box2D.Collision.Shapes.b2Shape);
+y.prototype.__super=Box2D.Collision.Shapes.b2Shape.prototype;y.b2EdgeShape=function(){Box2D.Collision.Shapes.b2Shape.b2Shape.apply(this,arguments);this.s_supportVec=new V;this.m_v1=new V;this.m_v2=new V;this.m_coreV1=new V;this.m_coreV2=new V;this.m_normal=new V;this.m_direction=new V;this.m_cornerDir1=new V;this.m_cornerDir2=new V};y.prototype.TestPoint=function(){return false};y.prototype.RayCast=function(k,z,u){var D,H=z.p2.x-z.p1.x,O=z.p2.y-z.p1.y;D=u.R;var E=u.position.x+(D.col1.x*this.m_v1.x+
+D.col2.x*this.m_v1.y),R=u.position.y+(D.col1.y*this.m_v1.x+D.col2.y*this.m_v1.y),N=u.position.y+(D.col1.y*this.m_v2.x+D.col2.y*this.m_v2.y)-R;u=-(u.position.x+(D.col1.x*this.m_v2.x+D.col2.x*this.m_v2.y)-E);D=100*Number.MIN_VALUE;var S=-(H*N+O*u);if(S>D){E=z.p1.x-E;var aa=z.p1.y-R;R=E*N+aa*u;if(0<=R&&R<=z.maxFraction*S){z=-H*aa+O*E;if(-D*S<=z&&z<=S*(1+D)){R/=S;k.fraction=R;z=Math.sqrt(N*N+u*u);k.normal.x=N/z;k.normal.y=u/z;return true}}}return false};y.prototype.ComputeAABB=function(k,z){var u=z.R,
+D=z.position.x+(u.col1.x*this.m_v1.x+u.col2.x*this.m_v1.y),H=z.position.y+(u.col1.y*this.m_v1.x+u.col2.y*this.m_v1.y),O=z.position.x+(u.col1.x*this.m_v2.x+u.col2.x*this.m_v2.y);u=z.position.y+(u.col1.y*this.m_v2.x+u.col2.y*this.m_v2.y);if(D<O){k.lowerBound.x=D;k.upperBound.x=O}else{k.lowerBound.x=O;k.upperBound.x=D}if(H<u){k.lowerBound.y=H;k.upperBound.y=u}else{k.lowerBound.y=u;k.upperBound.y=H}};y.prototype.ComputeMass=function(k){k.mass=0;k.center.SetV(this.m_v1);k.I=0};y.prototype.ComputeSubmergedArea=
+function(k,z,u,D){if(z===undefined)z=0;var H=new V(k.x*z,k.y*z),O=B.MulX(u,this.m_v1);u=B.MulX(u,this.m_v2);var E=B.Dot(k,O)-z;k=B.Dot(k,u)-z;if(E>0)if(k>0)return 0;else{O.x=-k/(E-k)*O.x+E/(E-k)*u.x;O.y=-k/(E-k)*O.y+E/(E-k)*u.y}else if(k>0){u.x=-k/(E-k)*O.x+E/(E-k)*u.x;u.y=-k/(E-k)*O.y+E/(E-k)*u.y}D.x=(H.x+O.x+u.x)/3;D.y=(H.y+O.y+u.y)/3;return 0.5*((O.x-H.x)*(u.y-H.y)-(O.y-H.y)*(u.x-H.x))};y.prototype.GetLength=function(){return this.m_length};y.prototype.GetVertex1=function(){return this.m_v1};y.prototype.GetVertex2=
+function(){return this.m_v2};y.prototype.GetCoreVertex1=function(){return this.m_coreV1};y.prototype.GetCoreVertex2=function(){return this.m_coreV2};y.prototype.GetNormalVector=function(){return this.m_normal};y.prototype.GetDirectionVector=function(){return this.m_direction};y.prototype.GetCorner1Vector=function(){return this.m_cornerDir1};y.prototype.GetCorner2Vector=function(){return this.m_cornerDir2};y.prototype.Corner1IsConvex=function(){return this.m_cornerConvex1};y.prototype.Corner2IsConvex=
+function(){return this.m_cornerConvex2};y.prototype.GetFirstVertex=function(k){var z=k.R;return new V(k.position.x+(z.col1.x*this.m_coreV1.x+z.col2.x*this.m_coreV1.y),k.position.y+(z.col1.y*this.m_coreV1.x+z.col2.y*this.m_coreV1.y))};y.prototype.GetNextEdge=function(){return this.m_nextEdge};y.prototype.GetPrevEdge=function(){return this.m_prevEdge};y.prototype.Support=function(k,z,u){if(z===undefined)z=0;if(u===undefined)u=0;var D=k.R,H=k.position.x+(D.col1.x*this.m_coreV1.x+D.col2.x*this.m_coreV1.y),
+O=k.position.y+(D.col1.y*this.m_coreV1.x+D.col2.y*this.m_coreV1.y),E=k.position.x+(D.col1.x*this.m_coreV2.x+D.col2.x*this.m_coreV2.y);k=k.position.y+(D.col1.y*this.m_coreV2.x+D.col2.y*this.m_coreV2.y);if(H*z+O*u>E*z+k*u){this.s_supportVec.x=H;this.s_supportVec.y=O}else{this.s_supportVec.x=E;this.s_supportVec.y=k}return this.s_supportVec};y.prototype.b2EdgeShape=function(k,z){this.__super.b2Shape.call(this);this.m_type=U.e_edgeShape;this.m_nextEdge=this.m_prevEdge=null;this.m_v1=k;this.m_v2=z;this.m_direction.Set(this.m_v2.x-
+this.m_v1.x,this.m_v2.y-this.m_v1.y);this.m_length=this.m_direction.Normalize();this.m_normal.Set(this.m_direction.y,-this.m_direction.x);this.m_coreV1.Set(-F.b2_toiSlop*(this.m_normal.x-this.m_direction.x)+this.m_v1.x,-F.b2_toiSlop*(this.m_normal.y-this.m_direction.y)+this.m_v1.y);this.m_coreV2.Set(-F.b2_toiSlop*(this.m_normal.x+this.m_direction.x)+this.m_v2.x,-F.b2_toiSlop*(this.m_normal.y+this.m_direction.y)+this.m_v2.y);this.m_cornerDir1=this.m_normal;this.m_cornerDir2.Set(-this.m_normal.x,-this.m_normal.y)};
+y.prototype.SetPrevEdge=function(k,z,u,D){this.m_prevEdge=k;this.m_coreV1=z;this.m_cornerDir1=u;this.m_cornerConvex1=D};y.prototype.SetNextEdge=function(k,z,u,D){this.m_nextEdge=k;this.m_coreV2=z;this.m_cornerDir2=u;this.m_cornerConvex2=D};w.b2MassData=function(){this.mass=0;this.center=new V(0,0);this.I=0};Box2D.inherit(A,Box2D.Collision.Shapes.b2Shape);A.prototype.__super=Box2D.Collision.Shapes.b2Shape.prototype;A.b2PolygonShape=function(){Box2D.Collision.Shapes.b2Shape.b2Shape.apply(this,arguments)};
+A.prototype.Copy=function(){var k=new A;k.Set(this);return k};A.prototype.Set=function(k){this.__super.Set.call(this,k);if(Box2D.is(k,A)){k=k instanceof A?k:null;this.m_centroid.SetV(k.m_centroid);this.m_vertexCount=k.m_vertexCount;this.Reserve(this.m_vertexCount);for(var z=0;z<this.m_vertexCount;z++){this.m_vertices[z].SetV(k.m_vertices[z]);this.m_normals[z].SetV(k.m_normals[z])}}};A.prototype.SetAsArray=function(k,z){if(z===undefined)z=0;var u=new Vector,D=0,H;for(D=0;D<k.length;++D){H=k[D];u.push(H)}this.SetAsVector(u,
+z)};A.AsArray=function(k,z){if(z===undefined)z=0;var u=new A;u.SetAsArray(k,z);return u};A.prototype.SetAsVector=function(k,z){if(z===undefined)z=0;if(z==0)z=k.length;F.b2Assert(2<=z);this.m_vertexCount=z;this.Reserve(z);var u=0;for(u=0;u<this.m_vertexCount;u++)this.m_vertices[u].SetV(k[u]);for(u=0;u<this.m_vertexCount;++u){var D=parseInt(u),H=parseInt(u+1<this.m_vertexCount?u+1:0);D=B.SubtractVV(this.m_vertices[H],this.m_vertices[D]);F.b2Assert(D.LengthSquared()>Number.MIN_VALUE);this.m_normals[u].SetV(B.CrossVF(D,
+1));this.m_normals[u].Normalize()}this.m_centroid=A.ComputeCentroid(this.m_vertices,this.m_vertexCount)};A.AsVector=function(k,z){if(z===undefined)z=0;var u=new A;u.SetAsVector(k,z);return u};A.prototype.SetAsBox=function(k,z){if(k===undefined)k=0;if(z===undefined)z=0;this.m_vertexCount=4;this.Reserve(4);this.m_vertices[0].Set(-k,-z);this.m_vertices[1].Set(k,-z);this.m_vertices[2].Set(k,z);this.m_vertices[3].Set(-k,z);this.m_normals[0].Set(0,-1);this.m_normals[1].Set(1,0);this.m_normals[2].Set(0,
+1);this.m_normals[3].Set(-1,0);this.m_centroid.SetZero()};A.AsBox=function(k,z){if(k===undefined)k=0;if(z===undefined)z=0;var u=new A;u.SetAsBox(k,z);return u};A.prototype.SetAsOrientedBox=function(k,z,u,D){if(k===undefined)k=0;if(z===undefined)z=0;if(u===undefined)u=null;if(D===undefined)D=0;this.m_vertexCount=4;this.Reserve(4);this.m_vertices[0].Set(-k,-z);this.m_vertices[1].Set(k,-z);this.m_vertices[2].Set(k,z);this.m_vertices[3].Set(-k,z);this.m_normals[0].Set(0,-1);this.m_normals[1].Set(1,0);
+this.m_normals[2].Set(0,1);this.m_normals[3].Set(-1,0);this.m_centroid=u;k=new Q;k.position=u;k.R.Set(D);for(u=0;u<this.m_vertexCount;++u){this.m_vertices[u]=B.MulX(k,this.m_vertices[u]);this.m_normals[u]=B.MulMV(k.R,this.m_normals[u])}};A.AsOrientedBox=function(k,z,u,D){if(k===undefined)k=0;if(z===undefined)z=0;if(u===undefined)u=null;if(D===undefined)D=0;var H=new A;H.SetAsOrientedBox(k,z,u,D);return H};A.prototype.SetAsEdge=function(k,z){this.m_vertexCount=2;this.Reserve(2);this.m_vertices[0].SetV(k);
+this.m_vertices[1].SetV(z);this.m_centroid.x=0.5*(k.x+z.x);this.m_centroid.y=0.5*(k.y+z.y);this.m_normals[0]=B.CrossVF(B.SubtractVV(z,k),1);this.m_normals[0].Normalize();this.m_normals[1].x=-this.m_normals[0].x;this.m_normals[1].y=-this.m_normals[0].y};A.AsEdge=function(k,z){var u=new A;u.SetAsEdge(k,z);return u};A.prototype.TestPoint=function(k,z){var u;u=k.R;for(var D=z.x-k.position.x,H=z.y-k.position.y,O=D*u.col1.x+H*u.col1.y,E=D*u.col2.x+H*u.col2.y,R=0;R<this.m_vertexCount;++R){u=this.m_vertices[R];
+D=O-u.x;H=E-u.y;u=this.m_normals[R];if(u.x*D+u.y*H>0)return false}return true};A.prototype.RayCast=function(k,z,u){var D=0,H=z.maxFraction,O=0,E=0,R,N;O=z.p1.x-u.position.x;E=z.p1.y-u.position.y;R=u.R;var S=O*R.col1.x+E*R.col1.y,aa=O*R.col2.x+E*R.col2.y;O=z.p2.x-u.position.x;E=z.p2.y-u.position.y;R=u.R;z=O*R.col1.x+E*R.col1.y-S;R=O*R.col2.x+E*R.col2.y-aa;for(var Z=parseInt(-1),d=0;d<this.m_vertexCount;++d){N=this.m_vertices[d];O=N.x-S;E=N.y-aa;N=this.m_normals[d];O=N.x*O+N.y*E;E=N.x*z+N.y*R;if(E==
+0){if(O<0)return false}else if(E<0&&O<D*E){D=O/E;Z=d}else if(E>0&&O<H*E)H=O/E;if(H<D-Number.MIN_VALUE)return false}if(Z>=0){k.fraction=D;R=u.R;N=this.m_normals[Z];k.normal.x=R.col1.x*N.x+R.col2.x*N.y;k.normal.y=R.col1.y*N.x+R.col2.y*N.y;return true}return false};A.prototype.ComputeAABB=function(k,z){for(var u=z.R,D=this.m_vertices[0],H=z.position.x+(u.col1.x*D.x+u.col2.x*D.y),O=z.position.y+(u.col1.y*D.x+u.col2.y*D.y),E=H,R=O,N=1;N<this.m_vertexCount;++N){D=this.m_vertices[N];var S=z.position.x+(u.col1.x*
+D.x+u.col2.x*D.y);D=z.position.y+(u.col1.y*D.x+u.col2.y*D.y);H=H<S?H:S;O=O<D?O:D;E=E>S?E:S;R=R>D?R:D}k.lowerBound.x=H-this.m_radius;k.lowerBound.y=O-this.m_radius;k.upperBound.x=E+this.m_radius;k.upperBound.y=R+this.m_radius};A.prototype.ComputeMass=function(k,z){if(z===undefined)z=0;if(this.m_vertexCount==2){k.center.x=0.5*(this.m_vertices[0].x+this.m_vertices[1].x);k.center.y=0.5*(this.m_vertices[0].y+this.m_vertices[1].y);k.mass=0;k.I=0}else{for(var u=0,D=0,H=0,O=0,E=1/3,R=0;R<this.m_vertexCount;++R){var N=
+this.m_vertices[R],S=R+1<this.m_vertexCount?this.m_vertices[parseInt(R+1)]:this.m_vertices[0],aa=N.x-0,Z=N.y-0,d=S.x-0,h=S.y-0,l=aa*h-Z*d,j=0.5*l;H+=j;u+=j*E*(0+N.x+S.x);D+=j*E*(0+N.y+S.y);N=aa;Z=Z;d=d;h=h;O+=l*(E*(0.25*(N*N+d*N+d*d)+(0*N+0*d))+0+(E*(0.25*(Z*Z+h*Z+h*h)+(0*Z+0*h))+0))}k.mass=z*H;u*=1/H;D*=1/H;k.center.Set(u,D);k.I=z*O}};A.prototype.ComputeSubmergedArea=function(k,z,u,D){if(z===undefined)z=0;var H=B.MulTMV(u.R,k),O=z-B.Dot(k,u.position),E=new Vector_a2j_Number,R=0,N=parseInt(-1);z=
+parseInt(-1);var S=false;for(k=k=0;k<this.m_vertexCount;++k){E[k]=B.Dot(H,this.m_vertices[k])-O;var aa=E[k]<-Number.MIN_VALUE;if(k>0)if(aa){if(!S){N=k-1;R++}}else if(S){z=k-1;R++}S=aa}switch(R){case 0:if(S){k=new w;this.ComputeMass(k,1);D.SetV(B.MulX(u,k.center));return k.mass}else return 0;case 1:if(N==-1)N=this.m_vertexCount-1;else z=this.m_vertexCount-1}k=parseInt((N+1)%this.m_vertexCount);H=parseInt((z+1)%this.m_vertexCount);O=(0-E[N])/(E[k]-E[N]);E=(0-E[z])/(E[H]-E[z]);N=new V(this.m_vertices[N].x*
+(1-O)+this.m_vertices[k].x*O,this.m_vertices[N].y*(1-O)+this.m_vertices[k].y*O);z=new V(this.m_vertices[z].x*(1-E)+this.m_vertices[H].x*E,this.m_vertices[z].y*(1-E)+this.m_vertices[H].y*E);E=0;O=new V;R=this.m_vertices[k];for(k=k;k!=H;){k=(k+1)%this.m_vertexCount;S=k==H?z:this.m_vertices[k];aa=0.5*((R.x-N.x)*(S.y-N.y)-(R.y-N.y)*(S.x-N.x));E+=aa;O.x+=aa*(N.x+R.x+S.x)/3;O.y+=aa*(N.y+R.y+S.y)/3;R=S}O.Multiply(1/E);D.SetV(B.MulX(u,O));return E};A.prototype.GetVertexCount=function(){return this.m_vertexCount};
+A.prototype.GetVertices=function(){return this.m_vertices};A.prototype.GetNormals=function(){return this.m_normals};A.prototype.GetSupport=function(k){for(var z=0,u=this.m_vertices[0].x*k.x+this.m_vertices[0].y*k.y,D=1;D<this.m_vertexCount;++D){var H=this.m_vertices[D].x*k.x+this.m_vertices[D].y*k.y;if(H>u){z=D;u=H}}return z};A.prototype.GetSupportVertex=function(k){for(var z=0,u=this.m_vertices[0].x*k.x+this.m_vertices[0].y*k.y,D=1;D<this.m_vertexCount;++D){var H=this.m_vertices[D].x*k.x+this.m_vertices[D].y*
+k.y;if(H>u){z=D;u=H}}return this.m_vertices[z]};A.prototype.Validate=function(){return false};A.prototype.b2PolygonShape=function(){this.__super.b2Shape.call(this);this.m_type=U.e_polygonShape;this.m_centroid=new V;this.m_vertices=new Vector;this.m_normals=new Vector};A.prototype.Reserve=function(k){if(k===undefined)k=0;for(var z=parseInt(this.m_vertices.length);z<k;z++){this.m_vertices[z]=new V;this.m_normals[z]=new V}};A.ComputeCentroid=function(k,z){if(z===undefined)z=0;for(var u=new V,D=0,H=1/
+3,O=0;O<z;++O){var E=k[O],R=O+1<z?k[parseInt(O+1)]:k[0],N=0.5*((E.x-0)*(R.y-0)-(E.y-0)*(R.x-0));D+=N;u.x+=N*H*(0+E.x+R.x);u.y+=N*H*(0+E.y+R.y)}u.x*=1/D;u.y*=1/D;return u};A.ComputeOBB=function(k,z,u){if(u===undefined)u=0;var D=0,H=new Vector(u+1);for(D=0;D<u;++D)H[D]=z[D];H[u]=H[0];z=Number.MAX_VALUE;for(D=1;D<=u;++D){var O=H[parseInt(D-1)],E=H[D].x-O.x,R=H[D].y-O.y,N=Math.sqrt(E*E+R*R);E/=N;R/=N;for(var S=-R,aa=E,Z=N=Number.MAX_VALUE,d=-Number.MAX_VALUE,h=-Number.MAX_VALUE,l=0;l<u;++l){var j=H[l].x-
+O.x,o=H[l].y-O.y,q=E*j+R*o;j=S*j+aa*o;if(q<N)N=q;if(j<Z)Z=j;if(q>d)d=q;if(j>h)h=j}l=(d-N)*(h-Z);if(l<0.95*z){z=l;k.R.col1.x=E;k.R.col1.y=R;k.R.col2.x=S;k.R.col2.y=aa;E=0.5*(N+d);R=0.5*(Z+h);S=k.R;k.center.x=O.x+(S.col1.x*E+S.col2.x*R);k.center.y=O.y+(S.col1.y*E+S.col2.y*R);k.extents.x=0.5*(d-N);k.extents.y=0.5*(h-Z)}}};Box2D.postDefs.push(function(){Box2D.Collision.Shapes.b2PolygonShape.s_mat=new p});U.b2Shape=function(){};U.prototype.Copy=function(){return null};U.prototype.Set=function(k){this.m_radius=
+k.m_radius};U.prototype.GetType=function(){return this.m_type};U.prototype.TestPoint=function(){return false};U.prototype.RayCast=function(){return false};U.prototype.ComputeAABB=function(){};U.prototype.ComputeMass=function(){};U.prototype.ComputeSubmergedArea=function(){return 0};U.TestOverlap=function(k,z,u,D){var H=new L;H.proxyA=new W;H.proxyA.Set(k);H.proxyB=new W;H.proxyB.Set(u);H.transformA=z;H.transformB=D;H.useRadii=true;k=new Y;k.count=0;z=new I;M.Distance(z,k,H);return z.distance<10*Number.MIN_VALUE};
+U.prototype.b2Shape=function(){this.m_type=U.e_unknownShape;this.m_radius=F.b2_linearSlop};Box2D.postDefs.push(function(){Box2D.Collision.Shapes.b2Shape.e_unknownShape=parseInt(-1);Box2D.Collision.Shapes.b2Shape.e_circleShape=0;Box2D.Collision.Shapes.b2Shape.e_polygonShape=1;Box2D.Collision.Shapes.b2Shape.e_edgeShape=2;Box2D.Collision.Shapes.b2Shape.e_shapeTypeCount=3;Box2D.Collision.Shapes.b2Shape.e_hitCollide=1;Box2D.Collision.Shapes.b2Shape.e_missCollide=0;Box2D.Collision.Shapes.b2Shape.e_startsInsideCollide=
+parseInt(-1)})})();
+(function(){var F=Box2D.Common.b2Color,G=Box2D.Common.b2Settings,K=Box2D.Common.Math.b2Math;F.b2Color=function(){this._b=this._g=this._r=0};F.prototype.b2Color=function(y,w,A){if(y===undefined)y=0;if(w===undefined)w=0;if(A===undefined)A=0;this._r=Box2D.parseUInt(255*K.Clamp(y,0,1));this._g=Box2D.parseUInt(255*K.Clamp(w,0,1));this._b=Box2D.parseUInt(255*K.Clamp(A,0,1))};F.prototype.Set=function(y,w,A){if(y===undefined)y=0;if(w===undefined)w=0;if(A===undefined)A=0;this._r=Box2D.parseUInt(255*K.Clamp(y,
+0,1));this._g=Box2D.parseUInt(255*K.Clamp(w,0,1));this._b=Box2D.parseUInt(255*K.Clamp(A,0,1))};Object.defineProperty(F.prototype,"r",{enumerable:false,configurable:true,set:function(y){if(y===undefined)y=0;this._r=Box2D.parseUInt(255*K.Clamp(y,0,1))}});Object.defineProperty(F.prototype,"g",{enumerable:false,configurable:true,set:function(y){if(y===undefined)y=0;this._g=Box2D.parseUInt(255*K.Clamp(y,0,1))}});Object.defineProperty(F.prototype,"b",{enumerable:false,configurable:true,set:function(y){if(y===
+undefined)y=0;this._b=Box2D.parseUInt(255*K.Clamp(y,0,1))}});Object.defineProperty(F.prototype,"color",{enumerable:false,configurable:true,get:function(){return this._r<<16|this._g<<8|this._b}});G.b2Settings=function(){};G.b2MixFriction=function(y,w){if(y===undefined)y=0;if(w===undefined)w=0;return Math.sqrt(y*w)};G.b2MixRestitution=function(y,w){if(y===undefined)y=0;if(w===undefined)w=0;return y>w?y:w};G.b2Assert=function(y){if(!y)throw"Assertion Failed";};Box2D.postDefs.push(function(){Box2D.Common.b2Settings.VERSION=
+"2.1alpha";Box2D.Common.b2Settings.USHRT_MAX=65535;Box2D.Common.b2Settings.b2_pi=Math.PI;Box2D.Common.b2Settings.b2_maxManifoldPoints=2;Box2D.Common.b2Settings.b2_aabbExtension=0.1;Box2D.Common.b2Settings.b2_aabbMultiplier=2;Box2D.Common.b2Settings.b2_polygonRadius=2*G.b2_linearSlop;Box2D.Common.b2Settings.b2_linearSlop=0.0050;Box2D.Common.b2Settings.b2_angularSlop=2/180*G.b2_pi;Box2D.Common.b2Settings.b2_toiSlop=8*G.b2_linearSlop;Box2D.Common.b2Settings.b2_maxTOIContactsPerIsland=32;Box2D.Common.b2Settings.b2_maxTOIJointsPerIsland=
+32;Box2D.Common.b2Settings.b2_velocityThreshold=1;Box2D.Common.b2Settings.b2_maxLinearCorrection=0.2;Box2D.Common.b2Settings.b2_maxAngularCorrection=8/180*G.b2_pi;Box2D.Common.b2Settings.b2_maxTranslation=2;Box2D.Common.b2Settings.b2_maxTranslationSquared=G.b2_maxTranslation*G.b2_maxTranslation;Box2D.Common.b2Settings.b2_maxRotation=0.5*G.b2_pi;Box2D.Common.b2Settings.b2_maxRotationSquared=G.b2_maxRotation*G.b2_maxRotation;Box2D.Common.b2Settings.b2_contactBaumgarte=0.2;Box2D.Common.b2Settings.b2_timeToSleep=
+0.5;Box2D.Common.b2Settings.b2_linearSleepTolerance=0.01;Box2D.Common.b2Settings.b2_angularSleepTolerance=2/180*G.b2_pi})})();
+(function(){var F=Box2D.Common.Math.b2Mat22,G=Box2D.Common.Math.b2Mat33,K=Box2D.Common.Math.b2Math,y=Box2D.Common.Math.b2Sweep,w=Box2D.Common.Math.b2Transform,A=Box2D.Common.Math.b2Vec2,U=Box2D.Common.Math.b2Vec3;F.b2Mat22=function(){this.col1=new A;this.col2=new A};F.prototype.b2Mat22=function(){this.SetIdentity()};F.FromAngle=function(p){if(p===undefined)p=0;var B=new F;B.Set(p);return B};F.FromVV=function(p,B){var Q=new F;Q.SetVV(p,B);return Q};F.prototype.Set=function(p){if(p===undefined)p=0;
+var B=Math.cos(p);p=Math.sin(p);this.col1.x=B;this.col2.x=-p;this.col1.y=p;this.col2.y=B};F.prototype.SetVV=function(p,B){this.col1.SetV(p);this.col2.SetV(B)};F.prototype.Copy=function(){var p=new F;p.SetM(this);return p};F.prototype.SetM=function(p){this.col1.SetV(p.col1);this.col2.SetV(p.col2)};F.prototype.AddM=function(p){this.col1.x+=p.col1.x;this.col1.y+=p.col1.y;this.col2.x+=p.col2.x;this.col2.y+=p.col2.y};F.prototype.SetIdentity=function(){this.col1.x=1;this.col2.x=0;this.col1.y=0;this.col2.y=
+1};F.prototype.SetZero=function(){this.col1.x=0;this.col2.x=0;this.col1.y=0;this.col2.y=0};F.prototype.GetAngle=function(){return Math.atan2(this.col1.y,this.col1.x)};F.prototype.GetInverse=function(p){var B=this.col1.x,Q=this.col2.x,V=this.col1.y,M=this.col2.y,L=B*M-Q*V;if(L!=0)L=1/L;p.col1.x=L*M;p.col2.x=-L*Q;p.col1.y=-L*V;p.col2.y=L*B;return p};F.prototype.Solve=function(p,B,Q){if(B===undefined)B=0;if(Q===undefined)Q=0;var V=this.col1.x,M=this.col2.x,L=this.col1.y,I=this.col2.y,W=V*I-M*L;if(W!=
+0)W=1/W;p.x=W*(I*B-M*Q);p.y=W*(V*Q-L*B);return p};F.prototype.Abs=function(){this.col1.Abs();this.col2.Abs()};G.b2Mat33=function(){this.col1=new U;this.col2=new U;this.col3=new U};G.prototype.b2Mat33=function(p,B,Q){if(p===undefined)p=null;if(B===undefined)B=null;if(Q===undefined)Q=null;if(!p&&!B&&!Q){this.col1.SetZero();this.col2.SetZero();this.col3.SetZero()}else{this.col1.SetV(p);this.col2.SetV(B);this.col3.SetV(Q)}};G.prototype.SetVVV=function(p,B,Q){this.col1.SetV(p);this.col2.SetV(B);this.col3.SetV(Q)};
+G.prototype.Copy=function(){return new G(this.col1,this.col2,this.col3)};G.prototype.SetM=function(p){this.col1.SetV(p.col1);this.col2.SetV(p.col2);this.col3.SetV(p.col3)};G.prototype.AddM=function(p){this.col1.x+=p.col1.x;this.col1.y+=p.col1.y;this.col1.z+=p.col1.z;this.col2.x+=p.col2.x;this.col2.y+=p.col2.y;this.col2.z+=p.col2.z;this.col3.x+=p.col3.x;this.col3.y+=p.col3.y;this.col3.z+=p.col3.z};G.prototype.SetIdentity=function(){this.col1.x=1;this.col2.x=0;this.col3.x=0;this.col1.y=0;this.col2.y=
+1;this.col3.y=0;this.col1.z=0;this.col2.z=0;this.col3.z=1};G.prototype.SetZero=function(){this.col1.x=0;this.col2.x=0;this.col3.x=0;this.col1.y=0;this.col2.y=0;this.col3.y=0;this.col1.z=0;this.col2.z=0;this.col3.z=0};G.prototype.Solve22=function(p,B,Q){if(B===undefined)B=0;if(Q===undefined)Q=0;var V=this.col1.x,M=this.col2.x,L=this.col1.y,I=this.col2.y,W=V*I-M*L;if(W!=0)W=1/W;p.x=W*(I*B-M*Q);p.y=W*(V*Q-L*B);return p};G.prototype.Solve33=function(p,B,Q,V){if(B===undefined)B=0;if(Q===undefined)Q=0;
+if(V===undefined)V=0;var M=this.col1.x,L=this.col1.y,I=this.col1.z,W=this.col2.x,Y=this.col2.y,k=this.col2.z,z=this.col3.x,u=this.col3.y,D=this.col3.z,H=M*(Y*D-k*u)+L*(k*z-W*D)+I*(W*u-Y*z);if(H!=0)H=1/H;p.x=H*(B*(Y*D-k*u)+Q*(k*z-W*D)+V*(W*u-Y*z));p.y=H*(M*(Q*D-V*u)+L*(V*z-B*D)+I*(B*u-Q*z));p.z=H*(M*(Y*V-k*Q)+L*(k*B-W*V)+I*(W*Q-Y*B));return p};K.b2Math=function(){};K.IsValid=function(p){if(p===undefined)p=0;return isFinite(p)};K.Dot=function(p,B){return p.x*B.x+p.y*B.y};K.CrossVV=function(p,B){return p.x*
+B.y-p.y*B.x};K.CrossVF=function(p,B){if(B===undefined)B=0;return new A(B*p.y,-B*p.x)};K.CrossFV=function(p,B){if(p===undefined)p=0;return new A(-p*B.y,p*B.x)};K.MulMV=function(p,B){return new A(p.col1.x*B.x+p.col2.x*B.y,p.col1.y*B.x+p.col2.y*B.y)};K.MulTMV=function(p,B){return new A(K.Dot(B,p.col1),K.Dot(B,p.col2))};K.MulX=function(p,B){var Q=K.MulMV(p.R,B);Q.x+=p.position.x;Q.y+=p.position.y;return Q};K.MulXT=function(p,B){var Q=K.SubtractVV(B,p.position),V=Q.x*p.R.col1.x+Q.y*p.R.col1.y;Q.y=Q.x*
+p.R.col2.x+Q.y*p.R.col2.y;Q.x=V;return Q};K.AddVV=function(p,B){return new A(p.x+B.x,p.y+B.y)};K.SubtractVV=function(p,B){return new A(p.x-B.x,p.y-B.y)};K.Distance=function(p,B){var Q=p.x-B.x,V=p.y-B.y;return Math.sqrt(Q*Q+V*V)};K.DistanceSquared=function(p,B){var Q=p.x-B.x,V=p.y-B.y;return Q*Q+V*V};K.MulFV=function(p,B){if(p===undefined)p=0;return new A(p*B.x,p*B.y)};K.AddMM=function(p,B){return F.FromVV(K.AddVV(p.col1,B.col1),K.AddVV(p.col2,B.col2))};K.MulMM=function(p,B){return F.FromVV(K.MulMV(p,
+B.col1),K.MulMV(p,B.col2))};K.MulTMM=function(p,B){var Q=new A(K.Dot(p.col1,B.col1),K.Dot(p.col2,B.col1)),V=new A(K.Dot(p.col1,B.col2),K.Dot(p.col2,B.col2));return F.FromVV(Q,V)};K.Abs=function(p){if(p===undefined)p=0;return p>0?p:-p};K.AbsV=function(p){return new A(K.Abs(p.x),K.Abs(p.y))};K.AbsM=function(p){return F.FromVV(K.AbsV(p.col1),K.AbsV(p.col2))};K.Min=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;return p<B?p:B};K.MinV=function(p,B){return new A(K.Min(p.x,B.x),K.Min(p.y,B.y))};
+K.Max=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;return p>B?p:B};K.MaxV=function(p,B){return new A(K.Max(p.x,B.x),K.Max(p.y,B.y))};K.Clamp=function(p,B,Q){if(p===undefined)p=0;if(B===undefined)B=0;if(Q===undefined)Q=0;return p<B?B:p>Q?Q:p};K.ClampV=function(p,B,Q){return K.MaxV(B,K.MinV(p,Q))};K.Swap=function(p,B){var Q=p[0];p[0]=B[0];B[0]=Q};K.Random=function(){return Math.random()*2-1};K.RandomRange=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;var Q=Math.random();return Q=
+(B-p)*Q+p};K.NextPowerOfTwo=function(p){if(p===undefined)p=0;p|=p>>1&2147483647;p|=p>>2&1073741823;p|=p>>4&268435455;p|=p>>8&16777215;p|=p>>16&65535;return p+1};K.IsPowerOfTwo=function(p){if(p===undefined)p=0;return p>0&&(p&p-1)==0};Box2D.postDefs.push(function(){Box2D.Common.Math.b2Math.b2Vec2_zero=new A(0,0);Box2D.Common.Math.b2Math.b2Mat22_identity=F.FromVV(new A(1,0),new A(0,1));Box2D.Common.Math.b2Math.b2Transform_identity=new w(K.b2Vec2_zero,K.b2Mat22_identity)});y.b2Sweep=function(){this.localCenter=
+new A;this.c0=new A;this.c=new A};y.prototype.Set=function(p){this.localCenter.SetV(p.localCenter);this.c0.SetV(p.c0);this.c.SetV(p.c);this.a0=p.a0;this.a=p.a;this.t0=p.t0};y.prototype.Copy=function(){var p=new y;p.localCenter.SetV(this.localCenter);p.c0.SetV(this.c0);p.c.SetV(this.c);p.a0=this.a0;p.a=this.a;p.t0=this.t0;return p};y.prototype.GetTransform=function(p,B){if(B===undefined)B=0;p.position.x=(1-B)*this.c0.x+B*this.c.x;p.position.y=(1-B)*this.c0.y+B*this.c.y;p.R.Set((1-B)*this.a0+B*this.a);
+var Q=p.R;p.position.x-=Q.col1.x*this.localCenter.x+Q.col2.x*this.localCenter.y;p.position.y-=Q.col1.y*this.localCenter.x+Q.col2.y*this.localCenter.y};y.prototype.Advance=function(p){if(p===undefined)p=0;if(this.t0<p&&1-this.t0>Number.MIN_VALUE){var B=(p-this.t0)/(1-this.t0);this.c0.x=(1-B)*this.c0.x+B*this.c.x;this.c0.y=(1-B)*this.c0.y+B*this.c.y;this.a0=(1-B)*this.a0+B*this.a;this.t0=p}};w.b2Transform=function(){this.position=new A;this.R=new F};w.prototype.b2Transform=function(p,B){if(p===undefined)p=
+null;if(B===undefined)B=null;if(p){this.position.SetV(p);this.R.SetM(B)}};w.prototype.Initialize=function(p,B){this.position.SetV(p);this.R.SetM(B)};w.prototype.SetIdentity=function(){this.position.SetZero();this.R.SetIdentity()};w.prototype.Set=function(p){this.position.SetV(p.position);this.R.SetM(p.R)};w.prototype.GetAngle=function(){return Math.atan2(this.R.col1.y,this.R.col1.x)};A.b2Vec2=function(){};A.prototype.b2Vec2=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;this.x=p;this.y=B};
+A.prototype.SetZero=function(){this.y=this.x=0};A.prototype.Set=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;this.x=p;this.y=B};A.prototype.SetV=function(p){this.x=p.x;this.y=p.y};A.prototype.GetNegative=function(){return new A(-this.x,-this.y)};A.prototype.NegativeSelf=function(){this.x=-this.x;this.y=-this.y};A.Make=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;return new A(p,B)};A.prototype.Copy=function(){return new A(this.x,this.y)};A.prototype.Add=function(p){this.x+=p.x;
+this.y+=p.y};A.prototype.Subtract=function(p){this.x-=p.x;this.y-=p.y};A.prototype.Multiply=function(p){if(p===undefined)p=0;this.x*=p;this.y*=p};A.prototype.MulM=function(p){var B=this.x;this.x=p.col1.x*B+p.col2.x*this.y;this.y=p.col1.y*B+p.col2.y*this.y};A.prototype.MulTM=function(p){var B=K.Dot(this,p.col1);this.y=K.Dot(this,p.col2);this.x=B};A.prototype.CrossVF=function(p){if(p===undefined)p=0;var B=this.x;this.x=p*this.y;this.y=-p*B};A.prototype.CrossFV=function(p){if(p===undefined)p=0;var B=
+this.x;this.x=-p*this.y;this.y=p*B};A.prototype.MinV=function(p){this.x=this.x<p.x?this.x:p.x;this.y=this.y<p.y?this.y:p.y};A.prototype.MaxV=function(p){this.x=this.x>p.x?this.x:p.x;this.y=this.y>p.y?this.y:p.y};A.prototype.Abs=function(){if(this.x<0)this.x=-this.x;if(this.y<0)this.y=-this.y};A.prototype.Length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)};A.prototype.LengthSquared=function(){return this.x*this.x+this.y*this.y};A.prototype.Normalize=function(){var p=Math.sqrt(this.x*this.x+
+this.y*this.y);if(p<Number.MIN_VALUE)return 0;var B=1/p;this.x*=B;this.y*=B;return p};A.prototype.IsValid=function(){return K.IsValid(this.x)&&K.IsValid(this.y)};U.b2Vec3=function(){};U.prototype.b2Vec3=function(p,B,Q){if(p===undefined)p=0;if(B===undefined)B=0;if(Q===undefined)Q=0;this.x=p;this.y=B;this.z=Q};U.prototype.SetZero=function(){this.x=this.y=this.z=0};U.prototype.Set=function(p,B,Q){if(p===undefined)p=0;if(B===undefined)B=0;if(Q===undefined)Q=0;this.x=p;this.y=B;this.z=Q};U.prototype.SetV=
+function(p){this.x=p.x;this.y=p.y;this.z=p.z};U.prototype.GetNegative=function(){return new U(-this.x,-this.y,-this.z)};U.prototype.NegativeSelf=function(){this.x=-this.x;this.y=-this.y;this.z=-this.z};U.prototype.Copy=function(){return new U(this.x,this.y,this.z)};U.prototype.Add=function(p){this.x+=p.x;this.y+=p.y;this.z+=p.z};U.prototype.Subtract=function(p){this.x-=p.x;this.y-=p.y;this.z-=p.z};U.prototype.Multiply=function(p){if(p===undefined)p=0;this.x*=p;this.y*=p;this.z*=p}})();
+(function(){var F=Box2D.Common.Math.b2Math,G=Box2D.Common.Math.b2Sweep,K=Box2D.Common.Math.b2Transform,y=Box2D.Common.Math.b2Vec2,w=Box2D.Common.b2Color,A=Box2D.Common.b2Settings,U=Box2D.Collision.b2AABB,p=Box2D.Collision.b2ContactPoint,B=Box2D.Collision.b2DynamicTreeBroadPhase,Q=Box2D.Collision.b2RayCastInput,V=Box2D.Collision.b2RayCastOutput,M=Box2D.Collision.Shapes.b2CircleShape,L=Box2D.Collision.Shapes.b2EdgeShape,I=Box2D.Collision.Shapes.b2MassData,W=Box2D.Collision.Shapes.b2PolygonShape,Y=Box2D.Collision.Shapes.b2Shape,
+k=Box2D.Dynamics.b2Body,z=Box2D.Dynamics.b2BodyDef,u=Box2D.Dynamics.b2ContactFilter,D=Box2D.Dynamics.b2ContactImpulse,H=Box2D.Dynamics.b2ContactListener,O=Box2D.Dynamics.b2ContactManager,E=Box2D.Dynamics.b2DebugDraw,R=Box2D.Dynamics.b2DestructionListener,N=Box2D.Dynamics.b2FilterData,S=Box2D.Dynamics.b2Fixture,aa=Box2D.Dynamics.b2FixtureDef,Z=Box2D.Dynamics.b2Island,d=Box2D.Dynamics.b2TimeStep,h=Box2D.Dynamics.b2World,l=Box2D.Dynamics.Contacts.b2Contact,j=Box2D.Dynamics.Contacts.b2ContactFactory,
+o=Box2D.Dynamics.Contacts.b2ContactSolver,q=Box2D.Dynamics.Joints.b2Joint,n=Box2D.Dynamics.Joints.b2PulleyJoint;k.b2Body=function(){this.m_xf=new K;this.m_sweep=new G;this.m_linearVelocity=new y;this.m_force=new y};k.prototype.connectEdges=function(a,c,g){if(g===undefined)g=0;var b=Math.atan2(c.GetDirectionVector().y,c.GetDirectionVector().x);g=F.MulFV(Math.tan((b-g)*0.5),c.GetDirectionVector());g=F.SubtractVV(g,c.GetNormalVector());g=F.MulFV(A.b2_toiSlop,g);g=F.AddVV(g,c.GetVertex1());var e=F.AddVV(a.GetDirectionVector(),
+c.GetDirectionVector());e.Normalize();var f=F.Dot(a.GetDirectionVector(),c.GetNormalVector())>0;a.SetNextEdge(c,g,e,f);c.SetPrevEdge(a,g,e,f);return b};k.prototype.CreateFixture=function(a){if(this.m_world.IsLocked()==true)return null;var c=new S;c.Create(this,this.m_xf,a);this.m_flags&k.e_activeFlag&&c.CreateProxy(this.m_world.m_contactManager.m_broadPhase,this.m_xf);c.m_next=this.m_fixtureList;this.m_fixtureList=c;++this.m_fixtureCount;c.m_body=this;c.m_density>0&&this.ResetMassData();this.m_world.m_flags|=
+h.e_newFixture;return c};k.prototype.CreateFixture2=function(a,c){if(c===undefined)c=0;var g=new aa;g.shape=a;g.density=c;return this.CreateFixture(g)};k.prototype.DestroyFixture=function(a){if(this.m_world.IsLocked()!=true){for(var c=this.m_fixtureList,g=null;c!=null;){if(c==a){if(g)g.m_next=a.m_next;else this.m_fixtureList=a.m_next;break}g=c;c=c.m_next}for(c=this.m_contactList;c;){g=c.contact;c=c.next;var b=g.GetFixtureA(),e=g.GetFixtureB();if(a==b||a==e)this.m_world.m_contactManager.Destroy(g)}this.m_flags&
+k.e_activeFlag&&a.DestroyProxy(this.m_world.m_contactManager.m_broadPhase);a.Destroy();a.m_body=null;a.m_next=null;--this.m_fixtureCount;this.ResetMassData()}};k.prototype.SetPositionAndAngle=function(a,c){if(c===undefined)c=0;var g;if(this.m_world.IsLocked()!=true){this.m_xf.R.Set(c);this.m_xf.position.SetV(a);g=this.m_xf.R;var b=this.m_sweep.localCenter;this.m_sweep.c.x=g.col1.x*b.x+g.col2.x*b.y;this.m_sweep.c.y=g.col1.y*b.x+g.col2.y*b.y;this.m_sweep.c.x+=this.m_xf.position.x;this.m_sweep.c.y+=
+this.m_xf.position.y;this.m_sweep.c0.SetV(this.m_sweep.c);this.m_sweep.a0=this.m_sweep.a=c;b=this.m_world.m_contactManager.m_broadPhase;for(g=this.m_fixtureList;g;g=g.m_next)g.Synchronize(b,this.m_xf,this.m_xf);this.m_world.m_contactManager.FindNewContacts()}};k.prototype.SetTransform=function(a){this.SetPositionAndAngle(a.position,a.GetAngle())};k.prototype.GetTransform=function(){return this.m_xf};k.prototype.GetPosition=function(){return this.m_xf.position};k.prototype.SetPosition=function(a){this.SetPositionAndAngle(a,
+this.GetAngle())};k.prototype.GetAngle=function(){return this.m_sweep.a};k.prototype.SetAngle=function(a){if(a===undefined)a=0;this.SetPositionAndAngle(this.GetPosition(),a)};k.prototype.GetWorldCenter=function(){return this.m_sweep.c};k.prototype.GetLocalCenter=function(){return this.m_sweep.localCenter};k.prototype.SetLinearVelocity=function(a){this.m_type!=k.b2_staticBody&&this.m_linearVelocity.SetV(a)};k.prototype.GetLinearVelocity=function(){return this.m_linearVelocity};k.prototype.SetAngularVelocity=
+function(a){if(a===undefined)a=0;if(this.m_type!=k.b2_staticBody)this.m_angularVelocity=a};k.prototype.GetAngularVelocity=function(){return this.m_angularVelocity};k.prototype.GetDefinition=function(){var a=new z;a.type=this.GetType();a.allowSleep=(this.m_flags&k.e_allowSleepFlag)==k.e_allowSleepFlag;a.angle=this.GetAngle();a.angularDamping=this.m_angularDamping;a.angularVelocity=this.m_angularVelocity;a.fixedRotation=(this.m_flags&k.e_fixedRotationFlag)==k.e_fixedRotationFlag;a.bullet=(this.m_flags&
+k.e_bulletFlag)==k.e_bulletFlag;a.awake=(this.m_flags&k.e_awakeFlag)==k.e_awakeFlag;a.linearDamping=this.m_linearDamping;a.linearVelocity.SetV(this.GetLinearVelocity());a.position=this.GetPosition();a.userData=this.GetUserData();return a};k.prototype.ApplyForce=function(a,c){if(this.m_type==k.b2_dynamicBody){this.IsAwake()==false&&this.SetAwake(true);this.m_force.x+=a.x;this.m_force.y+=a.y;this.m_torque+=(c.x-this.m_sweep.c.x)*a.y-(c.y-this.m_sweep.c.y)*a.x}};k.prototype.ApplyTorque=function(a){if(a===
+undefined)a=0;if(this.m_type==k.b2_dynamicBody){this.IsAwake()==false&&this.SetAwake(true);this.m_torque+=a}};k.prototype.ApplyImpulse=function(a,c){if(this.m_type==k.b2_dynamicBody){this.IsAwake()==false&&this.SetAwake(true);this.m_linearVelocity.x+=this.m_invMass*a.x;this.m_linearVelocity.y+=this.m_invMass*a.y;this.m_angularVelocity+=this.m_invI*((c.x-this.m_sweep.c.x)*a.y-(c.y-this.m_sweep.c.y)*a.x)}};k.prototype.Split=function(a){for(var c=this.GetLinearVelocity().Copy(),g=this.GetAngularVelocity(),
+b=this.GetWorldCenter(),e=this.m_world.CreateBody(this.GetDefinition()),f,m=this.m_fixtureList;m;)if(a(m)){var r=m.m_next;if(f)f.m_next=r;else this.m_fixtureList=r;this.m_fixtureCount--;m.m_next=e.m_fixtureList;e.m_fixtureList=m;e.m_fixtureCount++;m.m_body=e;m=r}else{f=m;m=m.m_next}this.ResetMassData();e.ResetMassData();f=this.GetWorldCenter();a=e.GetWorldCenter();f=F.AddVV(c,F.CrossFV(g,F.SubtractVV(f,b)));c=F.AddVV(c,F.CrossFV(g,F.SubtractVV(a,b)));this.SetLinearVelocity(f);e.SetLinearVelocity(c);
+this.SetAngularVelocity(g);e.SetAngularVelocity(g);this.SynchronizeFixtures();e.SynchronizeFixtures();return e};k.prototype.Merge=function(a){var c;for(c=a.m_fixtureList;c;){var g=c.m_next;a.m_fixtureCount--;c.m_next=this.m_fixtureList;this.m_fixtureList=c;this.m_fixtureCount++;c.m_body=e;c=g}b.m_fixtureCount=0;var b=this,e=a;b.GetWorldCenter();e.GetWorldCenter();b.GetLinearVelocity().Copy();e.GetLinearVelocity().Copy();b.GetAngularVelocity();e.GetAngularVelocity();b.ResetMassData();this.SynchronizeFixtures()};
+k.prototype.GetMass=function(){return this.m_mass};k.prototype.GetInertia=function(){return this.m_I};k.prototype.GetMassData=function(a){a.mass=this.m_mass;a.I=this.m_I;a.center.SetV(this.m_sweep.localCenter)};k.prototype.SetMassData=function(a){A.b2Assert(this.m_world.IsLocked()==false);if(this.m_world.IsLocked()!=true)if(this.m_type==k.b2_dynamicBody){this.m_invI=this.m_I=this.m_invMass=0;this.m_mass=a.mass;if(this.m_mass<=0)this.m_mass=1;this.m_invMass=1/this.m_mass;if(a.I>0&&(this.m_flags&k.e_fixedRotationFlag)==
+0){this.m_I=a.I-this.m_mass*(a.center.x*a.center.x+a.center.y*a.center.y);this.m_invI=1/this.m_I}var c=this.m_sweep.c.Copy();this.m_sweep.localCenter.SetV(a.center);this.m_sweep.c0.SetV(F.MulX(this.m_xf,this.m_sweep.localCenter));this.m_sweep.c.SetV(this.m_sweep.c0);this.m_linearVelocity.x+=this.m_angularVelocity*-(this.m_sweep.c.y-c.y);this.m_linearVelocity.y+=this.m_angularVelocity*+(this.m_sweep.c.x-c.x)}};k.prototype.ResetMassData=function(){this.m_invI=this.m_I=this.m_invMass=this.m_mass=0;this.m_sweep.localCenter.SetZero();
+if(!(this.m_type==k.b2_staticBody||this.m_type==k.b2_kinematicBody)){for(var a=y.Make(0,0),c=this.m_fixtureList;c;c=c.m_next)if(c.m_density!=0){var g=c.GetMassData();this.m_mass+=g.mass;a.x+=g.center.x*g.mass;a.y+=g.center.y*g.mass;this.m_I+=g.I}if(this.m_mass>0){this.m_invMass=1/this.m_mass;a.x*=this.m_invMass;a.y*=this.m_invMass}else this.m_invMass=this.m_mass=1;if(this.m_I>0&&(this.m_flags&k.e_fixedRotationFlag)==0){this.m_I-=this.m_mass*(a.x*a.x+a.y*a.y);this.m_I*=this.m_inertiaScale;A.b2Assert(this.m_I>
+0);this.m_invI=1/this.m_I}else this.m_invI=this.m_I=0;c=this.m_sweep.c.Copy();this.m_sweep.localCenter.SetV(a);this.m_sweep.c0.SetV(F.MulX(this.m_xf,this.m_sweep.localCenter));this.m_sweep.c.SetV(this.m_sweep.c0);this.m_linearVelocity.x+=this.m_angularVelocity*-(this.m_sweep.c.y-c.y);this.m_linearVelocity.y+=this.m_angularVelocity*+(this.m_sweep.c.x-c.x)}};k.prototype.GetWorldPoint=function(a){var c=this.m_xf.R;a=new y(c.col1.x*a.x+c.col2.x*a.y,c.col1.y*a.x+c.col2.y*a.y);a.x+=this.m_xf.position.x;
+a.y+=this.m_xf.position.y;return a};k.prototype.GetWorldVector=function(a){return F.MulMV(this.m_xf.R,a)};k.prototype.GetLocalPoint=function(a){return F.MulXT(this.m_xf,a)};k.prototype.GetLocalVector=function(a){return F.MulTMV(this.m_xf.R,a)};k.prototype.GetLinearVelocityFromWorldPoint=function(a){return new y(this.m_linearVelocity.x-this.m_angularVelocity*(a.y-this.m_sweep.c.y),this.m_linearVelocity.y+this.m_angularVelocity*(a.x-this.m_sweep.c.x))};k.prototype.GetLinearVelocityFromLocalPoint=function(a){var c=
+this.m_xf.R;a=new y(c.col1.x*a.x+c.col2.x*a.y,c.col1.y*a.x+c.col2.y*a.y);a.x+=this.m_xf.position.x;a.y+=this.m_xf.position.y;return new y(this.m_linearVelocity.x-this.m_angularVelocity*(a.y-this.m_sweep.c.y),this.m_linearVelocity.y+this.m_angularVelocity*(a.x-this.m_sweep.c.x))};k.prototype.GetLinearDamping=function(){return this.m_linearDamping};k.prototype.SetLinearDamping=function(a){if(a===undefined)a=0;this.m_linearDamping=a};k.prototype.GetAngularDamping=function(){return this.m_angularDamping};
+k.prototype.SetAngularDamping=function(a){if(a===undefined)a=0;this.m_angularDamping=a};k.prototype.SetType=function(a){if(a===undefined)a=0;if(this.m_type!=a){this.m_type=a;this.ResetMassData();if(this.m_type==k.b2_staticBody){this.m_linearVelocity.SetZero();this.m_angularVelocity=0}this.SetAwake(true);this.m_force.SetZero();this.m_torque=0;for(a=this.m_contactList;a;a=a.next)a.contact.FlagForFiltering()}};k.prototype.GetType=function(){return this.m_type};k.prototype.SetBullet=function(a){if(a)this.m_flags|=
+k.e_bulletFlag;else this.m_flags&=~k.e_bulletFlag};k.prototype.IsBullet=function(){return(this.m_flags&k.e_bulletFlag)==k.e_bulletFlag};k.prototype.SetSleepingAllowed=function(a){if(a)this.m_flags|=k.e_allowSleepFlag;else{this.m_flags&=~k.e_allowSleepFlag;this.SetAwake(true)}};k.prototype.SetAwake=function(a){if(a){this.m_flags|=k.e_awakeFlag;this.m_sleepTime=0}else{this.m_flags&=~k.e_awakeFlag;this.m_sleepTime=0;this.m_linearVelocity.SetZero();this.m_angularVelocity=0;this.m_force.SetZero();this.m_torque=
+0}};k.prototype.IsAwake=function(){return(this.m_flags&k.e_awakeFlag)==k.e_awakeFlag};k.prototype.SetFixedRotation=function(a){if(a)this.m_flags|=k.e_fixedRotationFlag;else this.m_flags&=~k.e_fixedRotationFlag;this.ResetMassData()};k.prototype.IsFixedRotation=function(){return(this.m_flags&k.e_fixedRotationFlag)==k.e_fixedRotationFlag};k.prototype.SetActive=function(a){if(a!=this.IsActive()){var c;if(a){this.m_flags|=k.e_activeFlag;a=this.m_world.m_contactManager.m_broadPhase;for(c=this.m_fixtureList;c;c=
+c.m_next)c.CreateProxy(a,this.m_xf)}else{this.m_flags&=~k.e_activeFlag;a=this.m_world.m_contactManager.m_broadPhase;for(c=this.m_fixtureList;c;c=c.m_next)c.DestroyProxy(a);for(a=this.m_contactList;a;){c=a;a=a.next;this.m_world.m_contactManager.Destroy(c.contact)}this.m_contactList=null}}};k.prototype.IsActive=function(){return(this.m_flags&k.e_activeFlag)==k.e_activeFlag};k.prototype.IsSleepingAllowed=function(){return(this.m_flags&k.e_allowSleepFlag)==k.e_allowSleepFlag};k.prototype.GetFixtureList=
+function(){return this.m_fixtureList};k.prototype.GetJointList=function(){return this.m_jointList};k.prototype.GetControllerList=function(){return this.m_controllerList};k.prototype.GetContactList=function(){return this.m_contactList};k.prototype.GetNext=function(){return this.m_next};k.prototype.GetUserData=function(){return this.m_userData};k.prototype.SetUserData=function(a){this.m_userData=a};k.prototype.GetWorld=function(){return this.m_world};k.prototype.b2Body=function(a,c){this.m_flags=0;
+if(a.bullet)this.m_flags|=k.e_bulletFlag;if(a.fixedRotation)this.m_flags|=k.e_fixedRotationFlag;if(a.allowSleep)this.m_flags|=k.e_allowSleepFlag;if(a.awake)this.m_flags|=k.e_awakeFlag;if(a.active)this.m_flags|=k.e_activeFlag;this.m_world=c;this.m_xf.position.SetV(a.position);this.m_xf.R.Set(a.angle);this.m_sweep.localCenter.SetZero();this.m_sweep.t0=1;this.m_sweep.a0=this.m_sweep.a=a.angle;var g=this.m_xf.R,b=this.m_sweep.localCenter;this.m_sweep.c.x=g.col1.x*b.x+g.col2.x*b.y;this.m_sweep.c.y=g.col1.y*
+b.x+g.col2.y*b.y;this.m_sweep.c.x+=this.m_xf.position.x;this.m_sweep.c.y+=this.m_xf.position.y;this.m_sweep.c0.SetV(this.m_sweep.c);this.m_contactList=this.m_controllerList=this.m_jointList=null;this.m_controllerCount=0;this.m_next=this.m_prev=null;this.m_linearVelocity.SetV(a.linearVelocity);this.m_angularVelocity=a.angularVelocity;this.m_linearDamping=a.linearDamping;this.m_angularDamping=a.angularDamping;this.m_force.Set(0,0);this.m_sleepTime=this.m_torque=0;this.m_type=a.type;if(this.m_type==
+k.b2_dynamicBody)this.m_invMass=this.m_mass=1;else this.m_invMass=this.m_mass=0;this.m_invI=this.m_I=0;this.m_inertiaScale=a.inertiaScale;this.m_userData=a.userData;this.m_fixtureList=null;this.m_fixtureCount=0};k.prototype.SynchronizeFixtures=function(){var a=k.s_xf1;a.R.Set(this.m_sweep.a0);var c=a.R,g=this.m_sweep.localCenter;a.position.x=this.m_sweep.c0.x-(c.col1.x*g.x+c.col2.x*g.y);a.position.y=this.m_sweep.c0.y-(c.col1.y*g.x+c.col2.y*g.y);g=this.m_world.m_contactManager.m_broadPhase;for(c=this.m_fixtureList;c;c=
+c.m_next)c.Synchronize(g,a,this.m_xf)};k.prototype.SynchronizeTransform=function(){this.m_xf.R.Set(this.m_sweep.a);var a=this.m_xf.R,c=this.m_sweep.localCenter;this.m_xf.position.x=this.m_sweep.c.x-(a.col1.x*c.x+a.col2.x*c.y);this.m_xf.position.y=this.m_sweep.c.y-(a.col1.y*c.x+a.col2.y*c.y)};k.prototype.ShouldCollide=function(a){if(this.m_type!=k.b2_dynamicBody&&a.m_type!=k.b2_dynamicBody)return false;for(var c=this.m_jointList;c;c=c.next)if(c.other==a)if(c.joint.m_collideConnected==false)return false;
+return true};k.prototype.Advance=function(a){if(a===undefined)a=0;this.m_sweep.Advance(a);this.m_sweep.c.SetV(this.m_sweep.c0);this.m_sweep.a=this.m_sweep.a0;this.SynchronizeTransform()};Box2D.postDefs.push(function(){Box2D.Dynamics.b2Body.s_xf1=new K;Box2D.Dynamics.b2Body.e_islandFlag=1;Box2D.Dynamics.b2Body.e_awakeFlag=2;Box2D.Dynamics.b2Body.e_allowSleepFlag=4;Box2D.Dynamics.b2Body.e_bulletFlag=8;Box2D.Dynamics.b2Body.e_fixedRotationFlag=16;Box2D.Dynamics.b2Body.e_activeFlag=32;Box2D.Dynamics.b2Body.b2_staticBody=
+0;Box2D.Dynamics.b2Body.b2_kinematicBody=1;Box2D.Dynamics.b2Body.b2_dynamicBody=2});z.b2BodyDef=function(){this.position=new y;this.linearVelocity=new y};z.prototype.b2BodyDef=function(){this.userData=null;this.position.Set(0,0);this.angle=0;this.linearVelocity.Set(0,0);this.angularDamping=this.linearDamping=this.angularVelocity=0;this.awake=this.allowSleep=true;this.bullet=this.fixedRotation=false;this.type=k.b2_staticBody;this.active=true;this.inertiaScale=1};u.b2ContactFilter=function(){};u.prototype.ShouldCollide=
+function(a,c){var g=a.GetFilterData(),b=c.GetFilterData();if(g.groupIndex==b.groupIndex&&g.groupIndex!=0)return g.groupIndex>0;return(g.maskBits&b.categoryBits)!=0&&(g.categoryBits&b.maskBits)!=0};u.prototype.RayCollide=function(a,c){if(!a)return true;return this.ShouldCollide(a instanceof S?a:null,c)};Box2D.postDefs.push(function(){Box2D.Dynamics.b2ContactFilter.b2_defaultFilter=new u});D.b2ContactImpulse=function(){this.normalImpulses=new Vector_a2j_Number(A.b2_maxManifoldPoints);this.tangentImpulses=
+new Vector_a2j_Number(A.b2_maxManifoldPoints)};H.b2ContactListener=function(){};H.prototype.BeginContact=function(){};H.prototype.EndContact=function(){};H.prototype.PreSolve=function(){};H.prototype.PostSolve=function(){};Box2D.postDefs.push(function(){Box2D.Dynamics.b2ContactListener.b2_defaultListener=new H});O.b2ContactManager=function(){};O.prototype.b2ContactManager=function(){this.m_world=null;this.m_contactCount=0;this.m_contactFilter=u.b2_defaultFilter;this.m_contactListener=H.b2_defaultListener;
+this.m_contactFactory=new j(this.m_allocator);this.m_broadPhase=new B};O.prototype.AddPair=function(a,c){var g=a instanceof S?a:null,b=c instanceof S?c:null,e=g.GetBody(),f=b.GetBody();if(e!=f){for(var m=f.GetContactList();m;){if(m.other==e){var r=m.contact.GetFixtureA(),s=m.contact.GetFixtureB();if(r==g&&s==b)return;if(r==b&&s==g)return}m=m.next}if(f.ShouldCollide(e)!=false)if(this.m_contactFilter.ShouldCollide(g,b)!=false){m=this.m_contactFactory.Create(g,b);g=m.GetFixtureA();b=m.GetFixtureB();
+e=g.m_body;f=b.m_body;m.m_prev=null;m.m_next=this.m_world.m_contactList;if(this.m_world.m_contactList!=null)this.m_world.m_contactList.m_prev=m;this.m_world.m_contactList=m;m.m_nodeA.contact=m;m.m_nodeA.other=f;m.m_nodeA.prev=null;m.m_nodeA.next=e.m_contactList;if(e.m_contactList!=null)e.m_contactList.prev=m.m_nodeA;e.m_contactList=m.m_nodeA;m.m_nodeB.contact=m;m.m_nodeB.other=e;m.m_nodeB.prev=null;m.m_nodeB.next=f.m_contactList;if(f.m_contactList!=null)f.m_contactList.prev=m.m_nodeB;f.m_contactList=
+m.m_nodeB;++this.m_world.m_contactCount}}};O.prototype.FindNewContacts=function(){this.m_broadPhase.UpdatePairs(Box2D.generateCallback(this,this.AddPair))};O.prototype.Destroy=function(a){var c=a.GetFixtureA(),g=a.GetFixtureB();c=c.GetBody();g=g.GetBody();a.IsTouching()&&this.m_contactListener.EndContact(a);if(a.m_prev)a.m_prev.m_next=a.m_next;if(a.m_next)a.m_next.m_prev=a.m_prev;if(a==this.m_world.m_contactList)this.m_world.m_contactList=a.m_next;if(a.m_nodeA.prev)a.m_nodeA.prev.next=a.m_nodeA.next;
+if(a.m_nodeA.next)a.m_nodeA.next.prev=a.m_nodeA.prev;if(a.m_nodeA==c.m_contactList)c.m_contactList=a.m_nodeA.next;if(a.m_nodeB.prev)a.m_nodeB.prev.next=a.m_nodeB.next;if(a.m_nodeB.next)a.m_nodeB.next.prev=a.m_nodeB.prev;if(a.m_nodeB==g.m_contactList)g.m_contactList=a.m_nodeB.next;this.m_contactFactory.Destroy(a);--this.m_contactCount};O.prototype.Collide=function(){for(var a=this.m_world.m_contactList;a;){var c=a.GetFixtureA(),g=a.GetFixtureB(),b=c.GetBody(),e=g.GetBody();if(b.IsAwake()==false&&e.IsAwake()==
+false)a=a.GetNext();else{if(a.m_flags&l.e_filterFlag){if(e.ShouldCollide(b)==false){c=a;a=c.GetNext();this.Destroy(c);continue}if(this.m_contactFilter.ShouldCollide(c,g)==false){c=a;a=c.GetNext();this.Destroy(c);continue}a.m_flags&=~l.e_filterFlag}if(this.m_broadPhase.TestOverlap(c.m_proxy,g.m_proxy)==false){c=a;a=c.GetNext();this.Destroy(c)}else{a.Update(this.m_contactListener);a=a.GetNext()}}}};Box2D.postDefs.push(function(){Box2D.Dynamics.b2ContactManager.s_evalCP=new p});E.b2DebugDraw=function(){};
+E.prototype.b2DebugDraw=function(){};E.prototype.SetFlags=function(){};E.prototype.GetFlags=function(){};E.prototype.AppendFlags=function(){};E.prototype.ClearFlags=function(){};E.prototype.SetSprite=function(){};E.prototype.GetSprite=function(){};E.prototype.SetDrawScale=function(){};E.prototype.GetDrawScale=function(){};E.prototype.SetLineThickness=function(){};E.prototype.GetLineThickness=function(){};E.prototype.SetAlpha=function(){};E.prototype.GetAlpha=function(){};E.prototype.SetFillAlpha=
+function(){};E.prototype.GetFillAlpha=function(){};E.prototype.SetXFormScale=function(){};E.prototype.GetXFormScale=function(){};E.prototype.DrawPolygon=function(){};E.prototype.DrawSolidPolygon=function(){};E.prototype.DrawCircle=function(){};E.prototype.DrawSolidCircle=function(){};E.prototype.DrawSegment=function(){};E.prototype.DrawTransform=function(){};Box2D.postDefs.push(function(){Box2D.Dynamics.b2DebugDraw.e_shapeBit=1;Box2D.Dynamics.b2DebugDraw.e_jointBit=2;Box2D.Dynamics.b2DebugDraw.e_aabbBit=
+4;Box2D.Dynamics.b2DebugDraw.e_pairBit=8;Box2D.Dynamics.b2DebugDraw.e_centerOfMassBit=16;Box2D.Dynamics.b2DebugDraw.e_controllerBit=32});R.b2DestructionListener=function(){};R.prototype.SayGoodbyeJoint=function(){};R.prototype.SayGoodbyeFixture=function(){};N.b2FilterData=function(){this.categoryBits=1;this.maskBits=65535;this.groupIndex=0};N.prototype.Copy=function(){var a=new N;a.categoryBits=this.categoryBits;a.maskBits=this.maskBits;a.groupIndex=this.groupIndex;return a};S.b2Fixture=function(){this.m_filter=
+new N};S.prototype.GetType=function(){return this.m_shape.GetType()};S.prototype.GetShape=function(){return this.m_shape};S.prototype.SetSensor=function(a){if(this.m_isSensor!=a){this.m_isSensor=a;if(this.m_body!=null)for(a=this.m_body.GetContactList();a;){var c=a.contact,g=c.GetFixtureA(),b=c.GetFixtureB();if(g==this||b==this)c.SetSensor(g.IsSensor()||b.IsSensor());a=a.next}}};S.prototype.IsSensor=function(){return this.m_isSensor};S.prototype.SetFilterData=function(a){this.m_filter=a.Copy();if(!this.m_body)for(a=
+this.m_body.GetContactList();a;){var c=a.contact,g=c.GetFixtureA(),b=c.GetFixtureB();if(g==this||b==this)c.FlagForFiltering();a=a.next}};S.prototype.GetFilterData=function(){return this.m_filter.Copy()};S.prototype.GetBody=function(){return this.m_body};S.prototype.GetNext=function(){return this.m_next};S.prototype.GetUserData=function(){return this.m_userData};S.prototype.SetUserData=function(a){this.m_userData=a};S.prototype.TestPoint=function(a){return this.m_shape.TestPoint(this.m_body.GetTransform(),
+a)};S.prototype.RayCast=function(a,c){return this.m_shape.RayCast(a,c,this.m_body.GetTransform())};S.prototype.GetMassData=function(a){if(a===undefined)a=null;if(a==null)a=new I;this.m_shape.ComputeMass(a,this.m_density);return a};S.prototype.SetDensity=function(a){if(a===undefined)a=0;this.m_density=a};S.prototype.GetDensity=function(){return this.m_density};S.prototype.GetFriction=function(){return this.m_friction};S.prototype.SetFriction=function(a){if(a===undefined)a=0;this.m_friction=a};S.prototype.GetRestitution=
+function(){return this.m_restitution};S.prototype.SetRestitution=function(a){if(a===undefined)a=0;this.m_restitution=a};S.prototype.GetAABB=function(){return this.m_aabb};S.prototype.b2Fixture=function(){this.m_aabb=new U;this.m_shape=this.m_next=this.m_body=this.m_userData=null;this.m_restitution=this.m_friction=this.m_density=0};S.prototype.Create=function(a,c,g){this.m_userData=g.userData;this.m_friction=g.friction;this.m_restitution=g.restitution;this.m_body=a;this.m_next=null;this.m_filter=g.filter.Copy();
+this.m_isSensor=g.isSensor;this.m_shape=g.shape.Copy();this.m_density=g.density};S.prototype.Destroy=function(){this.m_shape=null};S.prototype.CreateProxy=function(a,c){this.m_shape.ComputeAABB(this.m_aabb,c);this.m_proxy=a.CreateProxy(this.m_aabb,this)};S.prototype.DestroyProxy=function(a){if(this.m_proxy!=null){a.DestroyProxy(this.m_proxy);this.m_proxy=null}};S.prototype.Synchronize=function(a,c,g){if(this.m_proxy){var b=new U,e=new U;this.m_shape.ComputeAABB(b,c);this.m_shape.ComputeAABB(e,g);
+this.m_aabb.Combine(b,e);c=F.SubtractVV(g.position,c.position);a.MoveProxy(this.m_proxy,this.m_aabb,c)}};aa.b2FixtureDef=function(){this.filter=new N};aa.prototype.b2FixtureDef=function(){this.userData=this.shape=null;this.friction=0.2;this.density=this.restitution=0;this.filter.categoryBits=1;this.filter.maskBits=65535;this.filter.groupIndex=0;this.isSensor=false};Z.b2Island=function(){};Z.prototype.b2Island=function(){this.m_bodies=new Vector;this.m_contacts=new Vector;this.m_joints=new Vector};
+Z.prototype.Initialize=function(a,c,g,b,e,f){if(a===undefined)a=0;if(c===undefined)c=0;if(g===undefined)g=0;var m=0;this.m_bodyCapacity=a;this.m_contactCapacity=c;this.m_jointCapacity=g;this.m_jointCount=this.m_contactCount=this.m_bodyCount=0;this.m_allocator=b;this.m_listener=e;this.m_contactSolver=f;for(m=this.m_bodies.length;m<a;m++)this.m_bodies[m]=null;for(m=this.m_contacts.length;m<c;m++)this.m_contacts[m]=null;for(m=this.m_joints.length;m<g;m++)this.m_joints[m]=null};Z.prototype.Clear=function(){this.m_jointCount=
+this.m_contactCount=this.m_bodyCount=0};Z.prototype.Solve=function(a,c,g){var b=0,e=0,f;for(b=0;b<this.m_bodyCount;++b){e=this.m_bodies[b];if(e.GetType()==k.b2_dynamicBody){e.m_linearVelocity.x+=a.dt*(c.x+e.m_invMass*e.m_force.x);e.m_linearVelocity.y+=a.dt*(c.y+e.m_invMass*e.m_force.y);e.m_angularVelocity+=a.dt*e.m_invI*e.m_torque;e.m_linearVelocity.Multiply(F.Clamp(1-a.dt*e.m_linearDamping,0,1));e.m_angularVelocity*=F.Clamp(1-a.dt*e.m_angularDamping,0,1)}}this.m_contactSolver.Initialize(a,this.m_contacts,
+this.m_contactCount,this.m_allocator);c=this.m_contactSolver;c.InitVelocityConstraints(a);for(b=0;b<this.m_jointCount;++b){f=this.m_joints[b];f.InitVelocityConstraints(a)}for(b=0;b<a.velocityIterations;++b){for(e=0;e<this.m_jointCount;++e){f=this.m_joints[e];f.SolveVelocityConstraints(a)}c.SolveVelocityConstraints()}for(b=0;b<this.m_jointCount;++b){f=this.m_joints[b];f.FinalizeVelocityConstraints()}c.FinalizeVelocityConstraints();for(b=0;b<this.m_bodyCount;++b){e=this.m_bodies[b];if(e.GetType()!=
+k.b2_staticBody){var m=a.dt*e.m_linearVelocity.x,r=a.dt*e.m_linearVelocity.y;if(m*m+r*r>A.b2_maxTranslationSquared){e.m_linearVelocity.Normalize();e.m_linearVelocity.x*=A.b2_maxTranslation*a.inv_dt;e.m_linearVelocity.y*=A.b2_maxTranslation*a.inv_dt}m=a.dt*e.m_angularVelocity;if(m*m>A.b2_maxRotationSquared)e.m_angularVelocity=e.m_angularVelocity<0?-A.b2_maxRotation*a.inv_dt:A.b2_maxRotation*a.inv_dt;e.m_sweep.c0.SetV(e.m_sweep.c);e.m_sweep.a0=e.m_sweep.a;e.m_sweep.c.x+=a.dt*e.m_linearVelocity.x;e.m_sweep.c.y+=
+a.dt*e.m_linearVelocity.y;e.m_sweep.a+=a.dt*e.m_angularVelocity;e.SynchronizeTransform()}}for(b=0;b<a.positionIterations;++b){m=c.SolvePositionConstraints(A.b2_contactBaumgarte);r=true;for(e=0;e<this.m_jointCount;++e){f=this.m_joints[e];f=f.SolvePositionConstraints(A.b2_contactBaumgarte);r=r&&f}if(m&&r)break}this.Report(c.m_constraints);if(g){g=Number.MAX_VALUE;c=A.b2_linearSleepTolerance*A.b2_linearSleepTolerance;m=A.b2_angularSleepTolerance*A.b2_angularSleepTolerance;for(b=0;b<this.m_bodyCount;++b){e=
+this.m_bodies[b];if(e.GetType()!=k.b2_staticBody){if((e.m_flags&k.e_allowSleepFlag)==0)g=e.m_sleepTime=0;if((e.m_flags&k.e_allowSleepFlag)==0||e.m_angularVelocity*e.m_angularVelocity>m||F.Dot(e.m_linearVelocity,e.m_linearVelocity)>c)g=e.m_sleepTime=0;else{e.m_sleepTime+=a.dt;g=F.Min(g,e.m_sleepTime)}}}if(g>=A.b2_timeToSleep)for(b=0;b<this.m_bodyCount;++b){e=this.m_bodies[b];e.SetAwake(false)}}};Z.prototype.SolveTOI=function(a){var c=0,g=0;this.m_contactSolver.Initialize(a,this.m_contacts,this.m_contactCount,
+this.m_allocator);var b=this.m_contactSolver;for(c=0;c<this.m_jointCount;++c)this.m_joints[c].InitVelocityConstraints(a);for(c=0;c<a.velocityIterations;++c){b.SolveVelocityConstraints();for(g=0;g<this.m_jointCount;++g)this.m_joints[g].SolveVelocityConstraints(a)}for(c=0;c<this.m_bodyCount;++c){g=this.m_bodies[c];if(g.GetType()!=k.b2_staticBody){var e=a.dt*g.m_linearVelocity.x,f=a.dt*g.m_linearVelocity.y;if(e*e+f*f>A.b2_maxTranslationSquared){g.m_linearVelocity.Normalize();g.m_linearVelocity.x*=A.b2_maxTranslation*
+a.inv_dt;g.m_linearVelocity.y*=A.b2_maxTranslation*a.inv_dt}e=a.dt*g.m_angularVelocity;if(e*e>A.b2_maxRotationSquared)g.m_angularVelocity=g.m_angularVelocity<0?-A.b2_maxRotation*a.inv_dt:A.b2_maxRotation*a.inv_dt;g.m_sweep.c0.SetV(g.m_sweep.c);g.m_sweep.a0=g.m_sweep.a;g.m_sweep.c.x+=a.dt*g.m_linearVelocity.x;g.m_sweep.c.y+=a.dt*g.m_linearVelocity.y;g.m_sweep.a+=a.dt*g.m_angularVelocity;g.SynchronizeTransform()}}for(c=0;c<a.positionIterations;++c){e=b.SolvePositionConstraints(0.75);f=true;for(g=0;g<
+this.m_jointCount;++g){var m=this.m_joints[g].SolvePositionConstraints(A.b2_contactBaumgarte);f=f&&m}if(e&&f)break}this.Report(b.m_constraints)};Z.prototype.Report=function(a){if(this.m_listener!=null)for(var c=0;c<this.m_contactCount;++c){for(var g=this.m_contacts[c],b=a[c],e=0;e<b.pointCount;++e){Z.s_impulse.normalImpulses[e]=b.points[e].normalImpulse;Z.s_impulse.tangentImpulses[e]=b.points[e].tangentImpulse}this.m_listener.PostSolve(g,Z.s_impulse)}};Z.prototype.AddBody=function(a){a.m_islandIndex=
+this.m_bodyCount;this.m_bodies[this.m_bodyCount++]=a};Z.prototype.AddContact=function(a){this.m_contacts[this.m_contactCount++]=a};Z.prototype.AddJoint=function(a){this.m_joints[this.m_jointCount++]=a};Box2D.postDefs.push(function(){Box2D.Dynamics.b2Island.s_impulse=new D});d.b2TimeStep=function(){};d.prototype.Set=function(a){this.dt=a.dt;this.inv_dt=a.inv_dt;this.positionIterations=a.positionIterations;this.velocityIterations=a.velocityIterations;this.warmStarting=a.warmStarting};h.b2World=function(){this.s_stack=
+new Vector;this.m_contactManager=new O;this.m_contactSolver=new o;this.m_island=new Z};h.prototype.b2World=function(a,c){this.m_controllerList=this.m_jointList=this.m_contactList=this.m_bodyList=this.m_debugDraw=this.m_destructionListener=null;this.m_controllerCount=this.m_jointCount=this.m_contactCount=this.m_bodyCount=0;h.m_warmStarting=true;h.m_continuousPhysics=true;this.m_allowSleep=c;this.m_gravity=a;this.m_inv_dt0=0;this.m_contactManager.m_world=this;this.m_groundBody=this.CreateBody(new z)};
+h.prototype.SetDestructionListener=function(a){this.m_destructionListener=a};h.prototype.SetContactFilter=function(a){this.m_contactManager.m_contactFilter=a};h.prototype.SetContactListener=function(a){this.m_contactManager.m_contactListener=a};h.prototype.SetDebugDraw=function(a){this.m_debugDraw=a};h.prototype.SetBroadPhase=function(a){var c=this.m_contactManager.m_broadPhase;this.m_contactManager.m_broadPhase=a;for(var g=this.m_bodyList;g;g=g.m_next)for(var b=g.m_fixtureList;b;b=b.m_next)b.m_proxy=
+a.CreateProxy(c.GetFatAABB(b.m_proxy),b)};h.prototype.Validate=function(){this.m_contactManager.m_broadPhase.Validate()};h.prototype.GetProxyCount=function(){return this.m_contactManager.m_broadPhase.GetProxyCount()};h.prototype.CreateBody=function(a){if(this.IsLocked()==true)return null;a=new k(a,this);a.m_prev=null;if(a.m_next=this.m_bodyList)this.m_bodyList.m_prev=a;this.m_bodyList=a;++this.m_bodyCount;return a};h.prototype.DestroyBody=function(a){if(this.IsLocked()!=true){for(var c=a.m_jointList;c;){var g=
+c;c=c.next;this.m_destructionListener&&this.m_destructionListener.SayGoodbyeJoint(g.joint);this.DestroyJoint(g.joint)}for(c=a.m_controllerList;c;){g=c;c=c.nextController;g.controller.RemoveBody(a)}for(c=a.m_contactList;c;){g=c;c=c.next;this.m_contactManager.Destroy(g.contact)}a.m_contactList=null;for(c=a.m_fixtureList;c;){g=c;c=c.m_next;this.m_destructionListener&&this.m_destructionListener.SayGoodbyeFixture(g);g.DestroyProxy(this.m_contactManager.m_broadPhase);g.Destroy()}a.m_fixtureList=null;a.m_fixtureCount=
+0;if(a.m_prev)a.m_prev.m_next=a.m_next;if(a.m_next)a.m_next.m_prev=a.m_prev;if(a==this.m_bodyList)this.m_bodyList=a.m_next;--this.m_bodyCount}};h.prototype.CreateJoint=function(a){var c=q.Create(a,null);c.m_prev=null;if(c.m_next=this.m_jointList)this.m_jointList.m_prev=c;this.m_jointList=c;++this.m_jointCount;c.m_edgeA.joint=c;c.m_edgeA.other=c.m_bodyB;c.m_edgeA.prev=null;if(c.m_edgeA.next=c.m_bodyA.m_jointList)c.m_bodyA.m_jointList.prev=c.m_edgeA;c.m_bodyA.m_jointList=c.m_edgeA;c.m_edgeB.joint=c;
+c.m_edgeB.other=c.m_bodyA;c.m_edgeB.prev=null;if(c.m_edgeB.next=c.m_bodyB.m_jointList)c.m_bodyB.m_jointList.prev=c.m_edgeB;c.m_bodyB.m_jointList=c.m_edgeB;var g=a.bodyA,b=a.bodyB;if(a.collideConnected==false)for(a=b.GetContactList();a;){a.other==g&&a.contact.FlagForFiltering();a=a.next}return c};h.prototype.DestroyJoint=function(a){var c=a.m_collideConnected;if(a.m_prev)a.m_prev.m_next=a.m_next;if(a.m_next)a.m_next.m_prev=a.m_prev;if(a==this.m_jointList)this.m_jointList=a.m_next;var g=a.m_bodyA,b=
+a.m_bodyB;g.SetAwake(true);b.SetAwake(true);if(a.m_edgeA.prev)a.m_edgeA.prev.next=a.m_edgeA.next;if(a.m_edgeA.next)a.m_edgeA.next.prev=a.m_edgeA.prev;if(a.m_edgeA==g.m_jointList)g.m_jointList=a.m_edgeA.next;a.m_edgeA.prev=null;a.m_edgeA.next=null;if(a.m_edgeB.prev)a.m_edgeB.prev.next=a.m_edgeB.next;if(a.m_edgeB.next)a.m_edgeB.next.prev=a.m_edgeB.prev;if(a.m_edgeB==b.m_jointList)b.m_jointList=a.m_edgeB.next;a.m_edgeB.prev=null;a.m_edgeB.next=null;q.Destroy(a,null);--this.m_jointCount;if(c==false)for(a=
+b.GetContactList();a;){a.other==g&&a.contact.FlagForFiltering();a=a.next}};h.prototype.AddController=function(a){a.m_next=this.m_controllerList;a.m_prev=null;this.m_controllerList=a;a.m_world=this;this.m_controllerCount++;return a};h.prototype.RemoveController=function(a){if(a.m_prev)a.m_prev.m_next=a.m_next;if(a.m_next)a.m_next.m_prev=a.m_prev;if(this.m_controllerList==a)this.m_controllerList=a.m_next;this.m_controllerCount--};h.prototype.CreateController=function(a){if(a.m_world!=this)throw Error("Controller can only be a member of one world");
+a.m_next=this.m_controllerList;a.m_prev=null;if(this.m_controllerList)this.m_controllerList.m_prev=a;this.m_controllerList=a;++this.m_controllerCount;a.m_world=this;return a};h.prototype.DestroyController=function(a){a.Clear();if(a.m_next)a.m_next.m_prev=a.m_prev;if(a.m_prev)a.m_prev.m_next=a.m_next;if(a==this.m_controllerList)this.m_controllerList=a.m_next;--this.m_controllerCount};h.prototype.SetWarmStarting=function(a){h.m_warmStarting=a};h.prototype.SetContinuousPhysics=function(a){h.m_continuousPhysics=
+a};h.prototype.GetBodyCount=function(){return this.m_bodyCount};h.prototype.GetJointCount=function(){return this.m_jointCount};h.prototype.GetContactCount=function(){return this.m_contactCount};h.prototype.SetGravity=function(a){this.m_gravity=a};h.prototype.GetGravity=function(){return this.m_gravity};h.prototype.GetGroundBody=function(){return this.m_groundBody};h.prototype.Step=function(a,c,g){if(a===undefined)a=0;if(c===undefined)c=0;if(g===undefined)g=0;if(this.m_flags&h.e_newFixture){this.m_contactManager.FindNewContacts();
+this.m_flags&=~h.e_newFixture}this.m_flags|=h.e_locked;var b=h.s_timestep2;b.dt=a;b.velocityIterations=c;b.positionIterations=g;b.inv_dt=a>0?1/a:0;b.dtRatio=this.m_inv_dt0*a;b.warmStarting=h.m_warmStarting;this.m_contactManager.Collide();b.dt>0&&this.Solve(b);h.m_continuousPhysics&&b.dt>0&&this.SolveTOI(b);if(b.dt>0)this.m_inv_dt0=b.inv_dt;this.m_flags&=~h.e_locked};h.prototype.ClearForces=function(){for(var a=this.m_bodyList;a;a=a.m_next){a.m_force.SetZero();a.m_torque=0}};h.prototype.DrawDebugData=
+function(){if(this.m_debugDraw!=null){this.m_debugDraw.m_sprite.graphics.clear();var a=this.m_debugDraw.GetFlags(),c,g,b;new y;new y;new y;var e;new U;new U;e=[new y,new y,new y,new y];var f=new w(0,0,0);if(a&E.e_shapeBit)for(c=this.m_bodyList;c;c=c.m_next){e=c.m_xf;for(g=c.GetFixtureList();g;g=g.m_next){b=g.GetShape();if(c.IsActive()==false)f.Set(0.5,0.5,0.3);else if(c.GetType()==k.b2_staticBody)f.Set(0.5,0.9,0.5);else if(c.GetType()==k.b2_kinematicBody)f.Set(0.5,0.5,0.9);else c.IsAwake()==false?
+f.Set(0.6,0.6,0.6):f.Set(0.9,0.7,0.7);this.DrawShape(b,e,f)}}if(a&E.e_jointBit)for(c=this.m_jointList;c;c=c.m_next)this.DrawJoint(c);if(a&E.e_controllerBit)for(c=this.m_controllerList;c;c=c.m_next)c.Draw(this.m_debugDraw);if(a&E.e_pairBit){f.Set(0.3,0.9,0.9);for(c=this.m_contactManager.m_contactList;c;c=c.GetNext()){b=c.GetFixtureA();g=c.GetFixtureB();b=b.GetAABB().GetCenter();g=g.GetAABB().GetCenter();this.m_debugDraw.DrawSegment(b,g,f)}}if(a&E.e_aabbBit){b=this.m_contactManager.m_broadPhase;e=[new y,
+new y,new y,new y];for(c=this.m_bodyList;c;c=c.GetNext())if(c.IsActive()!=false)for(g=c.GetFixtureList();g;g=g.GetNext()){var m=b.GetFatAABB(g.m_proxy);e[0].Set(m.lowerBound.x,m.lowerBound.y);e[1].Set(m.upperBound.x,m.lowerBound.y);e[2].Set(m.upperBound.x,m.upperBound.y);e[3].Set(m.lowerBound.x,m.upperBound.y);this.m_debugDraw.DrawPolygon(e,4,f)}}if(a&E.e_centerOfMassBit)for(c=this.m_bodyList;c;c=c.m_next){e=h.s_xf;e.R=c.m_xf.R;e.position=c.GetWorldCenter();this.m_debugDraw.DrawTransform(e)}}};h.prototype.QueryAABB=
+function(a,c){var g=this.m_contactManager.m_broadPhase;g.Query(function(b){return a(g.GetUserData(b))},c)};h.prototype.QueryShape=function(a,c,g){if(g===undefined)g=null;if(g==null){g=new K;g.SetIdentity()}var b=this.m_contactManager.m_broadPhase,e=new U;c.ComputeAABB(e,g);b.Query(function(f){f=b.GetUserData(f)instanceof S?b.GetUserData(f):null;if(Y.TestOverlap(c,g,f.GetShape(),f.GetBody().GetTransform()))return a(f);return true},e)};h.prototype.QueryPoint=function(a,c){var g=this.m_contactManager.m_broadPhase,
+b=new U;b.lowerBound.Set(c.x-A.b2_linearSlop,c.y-A.b2_linearSlop);b.upperBound.Set(c.x+A.b2_linearSlop,c.y+A.b2_linearSlop);g.Query(function(e){e=g.GetUserData(e)instanceof S?g.GetUserData(e):null;if(e.TestPoint(c))return a(e);return true},b)};h.prototype.RayCast=function(a,c,g){var b=this.m_contactManager.m_broadPhase,e=new V,f=new Q(c,g);b.RayCast(function(m,r){var s=b.GetUserData(r);s=s instanceof S?s:null;if(s.RayCast(e,m)){var v=e.fraction,t=new y((1-v)*c.x+v*g.x,(1-v)*c.y+v*g.y);return a(s,
+t,e.normal,v)}return m.maxFraction},f)};h.prototype.RayCastOne=function(a,c){var g;this.RayCast(function(b,e,f,m){if(m===undefined)m=0;g=b;return m},a,c);return g};h.prototype.RayCastAll=function(a,c){var g=new Vector;this.RayCast(function(b){g[g.length]=b;return 1},a,c);return g};h.prototype.GetBodyList=function(){return this.m_bodyList};h.prototype.GetJointList=function(){return this.m_jointList};h.prototype.GetContactList=function(){return this.m_contactList};h.prototype.IsLocked=function(){return(this.m_flags&
+h.e_locked)>0};h.prototype.Solve=function(a){for(var c,g=this.m_controllerList;g;g=g.m_next)g.Step(a);g=this.m_island;g.Initialize(this.m_bodyCount,this.m_contactCount,this.m_jointCount,null,this.m_contactManager.m_contactListener,this.m_contactSolver);for(c=this.m_bodyList;c;c=c.m_next)c.m_flags&=~k.e_islandFlag;for(var b=this.m_contactList;b;b=b.m_next)b.m_flags&=~l.e_islandFlag;for(b=this.m_jointList;b;b=b.m_next)b.m_islandFlag=false;parseInt(this.m_bodyCount);b=this.s_stack;for(var e=this.m_bodyList;e;e=
+e.m_next)if(!(e.m_flags&k.e_islandFlag))if(!(e.IsAwake()==false||e.IsActive()==false))if(e.GetType()!=k.b2_staticBody){g.Clear();var f=0;b[f++]=e;for(e.m_flags|=k.e_islandFlag;f>0;){c=b[--f];g.AddBody(c);c.IsAwake()==false&&c.SetAwake(true);if(c.GetType()!=k.b2_staticBody){for(var m,r=c.m_contactList;r;r=r.next)if(!(r.contact.m_flags&l.e_islandFlag))if(!(r.contact.IsSensor()==true||r.contact.IsEnabled()==false||r.contact.IsTouching()==false)){g.AddContact(r.contact);r.contact.m_flags|=l.e_islandFlag;
+m=r.other;if(!(m.m_flags&k.e_islandFlag)){b[f++]=m;m.m_flags|=k.e_islandFlag}}for(c=c.m_jointList;c;c=c.next)if(c.joint.m_islandFlag!=true){m=c.other;if(m.IsActive()!=false){g.AddJoint(c.joint);c.joint.m_islandFlag=true;if(!(m.m_flags&k.e_islandFlag)){b[f++]=m;m.m_flags|=k.e_islandFlag}}}}}g.Solve(a,this.m_gravity,this.m_allowSleep);for(f=0;f<g.m_bodyCount;++f){c=g.m_bodies[f];if(c.GetType()==k.b2_staticBody)c.m_flags&=~k.e_islandFlag}}for(f=0;f<b.length;++f){if(!b[f])break;b[f]=null}for(c=this.m_bodyList;c;c=
+c.m_next)c.IsAwake()==false||c.IsActive()==false||c.GetType()!=k.b2_staticBody&&c.SynchronizeFixtures();this.m_contactManager.FindNewContacts()};h.prototype.SolveTOI=function(a){var c,g,b,e=this.m_island;e.Initialize(this.m_bodyCount,A.b2_maxTOIContactsPerIsland,A.b2_maxTOIJointsPerIsland,null,this.m_contactManager.m_contactListener,this.m_contactSolver);var f=h.s_queue;for(c=this.m_bodyList;c;c=c.m_next){c.m_flags&=~k.e_islandFlag;c.m_sweep.t0=0}for(b=this.m_contactList;b;b=b.m_next)b.m_flags&=~(l.e_toiFlag|
+l.e_islandFlag);for(b=this.m_jointList;b;b=b.m_next)b.m_islandFlag=false;for(;;){var m=null,r=1;for(b=this.m_contactList;b;b=b.m_next)if(!(b.IsSensor()==true||b.IsEnabled()==false||b.IsContinuous()==false)){c=1;if(b.m_flags&l.e_toiFlag)c=b.m_toi;else{c=b.m_fixtureA;g=b.m_fixtureB;c=c.m_body;g=g.m_body;if((c.GetType()!=k.b2_dynamicBody||c.IsAwake()==false)&&(g.GetType()!=k.b2_dynamicBody||g.IsAwake()==false))continue;var s=c.m_sweep.t0;if(c.m_sweep.t0<g.m_sweep.t0){s=g.m_sweep.t0;c.m_sweep.Advance(s)}else if(g.m_sweep.t0<
+c.m_sweep.t0){s=c.m_sweep.t0;g.m_sweep.Advance(s)}c=b.ComputeTOI(c.m_sweep,g.m_sweep);A.b2Assert(0<=c&&c<=1);if(c>0&&c<1){c=(1-c)*s+c;if(c>1)c=1}b.m_toi=c;b.m_flags|=l.e_toiFlag}if(Number.MIN_VALUE<c&&c<r){m=b;r=c}}if(m==null||1-100*Number.MIN_VALUE<r)break;c=m.m_fixtureA;g=m.m_fixtureB;c=c.m_body;g=g.m_body;h.s_backupA.Set(c.m_sweep);h.s_backupB.Set(g.m_sweep);c.Advance(r);g.Advance(r);m.Update(this.m_contactManager.m_contactListener);m.m_flags&=~l.e_toiFlag;if(m.IsSensor()==true||m.IsEnabled()==
+false){c.m_sweep.Set(h.s_backupA);g.m_sweep.Set(h.s_backupB);c.SynchronizeTransform();g.SynchronizeTransform()}else if(m.IsTouching()!=false){c=c;if(c.GetType()!=k.b2_dynamicBody)c=g;e.Clear();m=b=0;f[b+m++]=c;for(c.m_flags|=k.e_islandFlag;m>0;){c=f[b++];--m;e.AddBody(c);c.IsAwake()==false&&c.SetAwake(true);if(c.GetType()==k.b2_dynamicBody){for(g=c.m_contactList;g;g=g.next){if(e.m_contactCount==e.m_contactCapacity)break;if(!(g.contact.m_flags&l.e_islandFlag))if(!(g.contact.IsSensor()==true||g.contact.IsEnabled()==
+false||g.contact.IsTouching()==false)){e.AddContact(g.contact);g.contact.m_flags|=l.e_islandFlag;s=g.other;if(!(s.m_flags&k.e_islandFlag)){if(s.GetType()!=k.b2_staticBody){s.Advance(r);s.SetAwake(true)}f[b+m]=s;++m;s.m_flags|=k.e_islandFlag}}}for(c=c.m_jointList;c;c=c.next)if(e.m_jointCount!=e.m_jointCapacity)if(c.joint.m_islandFlag!=true){s=c.other;if(s.IsActive()!=false){e.AddJoint(c.joint);c.joint.m_islandFlag=true;if(!(s.m_flags&k.e_islandFlag)){if(s.GetType()!=k.b2_staticBody){s.Advance(r);s.SetAwake(true)}f[b+
+m]=s;++m;s.m_flags|=k.e_islandFlag}}}}}b=h.s_timestep;b.warmStarting=false;b.dt=(1-r)*a.dt;b.inv_dt=1/b.dt;b.dtRatio=0;b.velocityIterations=a.velocityIterations;b.positionIterations=a.positionIterations;e.SolveTOI(b);for(r=r=0;r<e.m_bodyCount;++r){c=e.m_bodies[r];c.m_flags&=~k.e_islandFlag;if(c.IsAwake()!=false)if(c.GetType()==k.b2_dynamicBody){c.SynchronizeFixtures();for(g=c.m_contactList;g;g=g.next)g.contact.m_flags&=~l.e_toiFlag}}for(r=0;r<e.m_contactCount;++r){b=e.m_contacts[r];b.m_flags&=~(l.e_toiFlag|
+l.e_islandFlag)}for(r=0;r<e.m_jointCount;++r){b=e.m_joints[r];b.m_islandFlag=false}this.m_contactManager.FindNewContacts()}}};h.prototype.DrawJoint=function(a){var c=a.GetBodyA(),g=a.GetBodyB(),b=c.m_xf.position,e=g.m_xf.position,f=a.GetAnchorA(),m=a.GetAnchorB(),r=h.s_jointColor;switch(a.m_type){case q.e_distanceJoint:this.m_debugDraw.DrawSegment(f,m,r);break;case q.e_pulleyJoint:c=a instanceof n?a:null;a=c.GetGroundAnchorA();c=c.GetGroundAnchorB();this.m_debugDraw.DrawSegment(a,f,r);this.m_debugDraw.DrawSegment(c,
+m,r);this.m_debugDraw.DrawSegment(a,c,r);break;case q.e_mouseJoint:this.m_debugDraw.DrawSegment(f,m,r);break;default:c!=this.m_groundBody&&this.m_debugDraw.DrawSegment(b,f,r);this.m_debugDraw.DrawSegment(f,m,r);g!=this.m_groundBody&&this.m_debugDraw.DrawSegment(e,m,r)}};h.prototype.DrawShape=function(a,c,g){switch(a.m_type){case Y.e_circleShape:var b=a instanceof M?a:null;this.m_debugDraw.DrawSolidCircle(F.MulX(c,b.m_p),b.m_radius,c.R.col1,g);break;case Y.e_polygonShape:b=0;b=a instanceof W?a:null;
+a=parseInt(b.GetVertexCount());var e=b.GetVertices(),f=new Vector(a);for(b=0;b<a;++b)f[b]=F.MulX(c,e[b]);this.m_debugDraw.DrawSolidPolygon(f,a,g);break;case Y.e_edgeShape:b=a instanceof L?a:null;this.m_debugDraw.DrawSegment(F.MulX(c,b.GetVertex1()),F.MulX(c,b.GetVertex2()),g)}};Box2D.postDefs.push(function(){Box2D.Dynamics.b2World.s_timestep2=new d;Box2D.Dynamics.b2World.s_xf=new K;Box2D.Dynamics.b2World.s_backupA=new G;Box2D.Dynamics.b2World.s_backupB=new G;Box2D.Dynamics.b2World.s_timestep=new d;
+Box2D.Dynamics.b2World.s_queue=new Vector;Box2D.Dynamics.b2World.s_jointColor=new w(0.5,0.8,0.8);Box2D.Dynamics.b2World.e_newFixture=1;Box2D.Dynamics.b2World.e_locked=2})})();
+(function(){var F=Box2D.Collision.Shapes.b2CircleShape,G=Box2D.Collision.Shapes.b2EdgeShape,K=Box2D.Collision.Shapes.b2PolygonShape,y=Box2D.Collision.Shapes.b2Shape,w=Box2D.Dynamics.Contacts.b2CircleContact,A=Box2D.Dynamics.Contacts.b2Contact,U=Box2D.Dynamics.Contacts.b2ContactConstraint,p=Box2D.Dynamics.Contacts.b2ContactConstraintPoint,B=Box2D.Dynamics.Contacts.b2ContactEdge,Q=Box2D.Dynamics.Contacts.b2ContactFactory,V=Box2D.Dynamics.Contacts.b2ContactRegister,M=Box2D.Dynamics.Contacts.b2ContactResult,
+L=Box2D.Dynamics.Contacts.b2ContactSolver,I=Box2D.Dynamics.Contacts.b2EdgeAndCircleContact,W=Box2D.Dynamics.Contacts.b2NullContact,Y=Box2D.Dynamics.Contacts.b2PolyAndCircleContact,k=Box2D.Dynamics.Contacts.b2PolyAndEdgeContact,z=Box2D.Dynamics.Contacts.b2PolygonContact,u=Box2D.Dynamics.Contacts.b2PositionSolverManifold,D=Box2D.Dynamics.b2Body,H=Box2D.Dynamics.b2TimeStep,O=Box2D.Common.b2Settings,E=Box2D.Common.Math.b2Mat22,R=Box2D.Common.Math.b2Math,N=Box2D.Common.Math.b2Vec2,S=Box2D.Collision.b2Collision,
+aa=Box2D.Collision.b2ContactID,Z=Box2D.Collision.b2Manifold,d=Box2D.Collision.b2TimeOfImpact,h=Box2D.Collision.b2TOIInput,l=Box2D.Collision.b2WorldManifold;Box2D.inherit(w,Box2D.Dynamics.Contacts.b2Contact);w.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;w.b2CircleContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};w.Create=function(){return new w};w.Destroy=function(){};w.prototype.Reset=function(j,o){this.__super.Reset.call(this,j,o)};w.prototype.Evaluate=
+function(){var j=this.m_fixtureA.GetBody(),o=this.m_fixtureB.GetBody();S.CollideCircles(this.m_manifold,this.m_fixtureA.GetShape()instanceof F?this.m_fixtureA.GetShape():null,j.m_xf,this.m_fixtureB.GetShape()instanceof F?this.m_fixtureB.GetShape():null,o.m_xf)};A.b2Contact=function(){this.m_nodeA=new B;this.m_nodeB=new B;this.m_manifold=new Z;this.m_oldManifold=new Z};A.prototype.GetManifold=function(){return this.m_manifold};A.prototype.GetWorldManifold=function(j){var o=this.m_fixtureA.GetBody(),
+q=this.m_fixtureB.GetBody(),n=this.m_fixtureA.GetShape(),a=this.m_fixtureB.GetShape();j.Initialize(this.m_manifold,o.GetTransform(),n.m_radius,q.GetTransform(),a.m_radius)};A.prototype.IsTouching=function(){return(this.m_flags&A.e_touchingFlag)==A.e_touchingFlag};A.prototype.IsContinuous=function(){return(this.m_flags&A.e_continuousFlag)==A.e_continuousFlag};A.prototype.SetSensor=function(j){if(j)this.m_flags|=A.e_sensorFlag;else this.m_flags&=~A.e_sensorFlag};A.prototype.IsSensor=function(){return(this.m_flags&
+A.e_sensorFlag)==A.e_sensorFlag};A.prototype.SetEnabled=function(j){if(j)this.m_flags|=A.e_enabledFlag;else this.m_flags&=~A.e_enabledFlag};A.prototype.IsEnabled=function(){return(this.m_flags&A.e_enabledFlag)==A.e_enabledFlag};A.prototype.GetNext=function(){return this.m_next};A.prototype.GetFixtureA=function(){return this.m_fixtureA};A.prototype.GetFixtureB=function(){return this.m_fixtureB};A.prototype.FlagForFiltering=function(){this.m_flags|=A.e_filterFlag};A.prototype.b2Contact=function(){};
+A.prototype.Reset=function(j,o){if(j===undefined)j=null;if(o===undefined)o=null;this.m_flags=A.e_enabledFlag;if(!j||!o)this.m_fixtureB=this.m_fixtureA=null;else{if(j.IsSensor()||o.IsSensor())this.m_flags|=A.e_sensorFlag;var q=j.GetBody(),n=o.GetBody();if(q.GetType()!=D.b2_dynamicBody||q.IsBullet()||n.GetType()!=D.b2_dynamicBody||n.IsBullet())this.m_flags|=A.e_continuousFlag;this.m_fixtureA=j;this.m_fixtureB=o;this.m_manifold.m_pointCount=0;this.m_next=this.m_prev=null;this.m_nodeA.contact=null;this.m_nodeA.prev=
+null;this.m_nodeA.next=null;this.m_nodeA.other=null;this.m_nodeB.contact=null;this.m_nodeB.prev=null;this.m_nodeB.next=null;this.m_nodeB.other=null}};A.prototype.Update=function(j){var o=this.m_oldManifold;this.m_oldManifold=this.m_manifold;this.m_manifold=o;this.m_flags|=A.e_enabledFlag;var q=false;o=(this.m_flags&A.e_touchingFlag)==A.e_touchingFlag;var n=this.m_fixtureA.m_body,a=this.m_fixtureB.m_body,c=this.m_fixtureA.m_aabb.TestOverlap(this.m_fixtureB.m_aabb);if(this.m_flags&A.e_sensorFlag){if(c){q=
+this.m_fixtureA.GetShape();c=this.m_fixtureB.GetShape();n=n.GetTransform();a=a.GetTransform();q=y.TestOverlap(q,n,c,a)}this.m_manifold.m_pointCount=0}else{if(n.GetType()!=D.b2_dynamicBody||n.IsBullet()||a.GetType()!=D.b2_dynamicBody||a.IsBullet())this.m_flags|=A.e_continuousFlag;else this.m_flags&=~A.e_continuousFlag;if(c){this.Evaluate();q=this.m_manifold.m_pointCount>0;for(c=0;c<this.m_manifold.m_pointCount;++c){var g=this.m_manifold.m_points[c];g.m_normalImpulse=0;g.m_tangentImpulse=0;for(var b=
+g.m_id,e=0;e<this.m_oldManifold.m_pointCount;++e){var f=this.m_oldManifold.m_points[e];if(f.m_id.key==b.key){g.m_normalImpulse=f.m_normalImpulse;g.m_tangentImpulse=f.m_tangentImpulse;break}}}}else this.m_manifold.m_pointCount=0;if(q!=o){n.SetAwake(true);a.SetAwake(true)}}if(q)this.m_flags|=A.e_touchingFlag;else this.m_flags&=~A.e_touchingFlag;o==false&&q==true&&j.BeginContact(this);o==true&&q==false&&j.EndContact(this);(this.m_flags&A.e_sensorFlag)==0&&j.PreSolve(this,this.m_oldManifold)};A.prototype.Evaluate=
+function(){};A.prototype.ComputeTOI=function(j,o){A.s_input.proxyA.Set(this.m_fixtureA.GetShape());A.s_input.proxyB.Set(this.m_fixtureB.GetShape());A.s_input.sweepA=j;A.s_input.sweepB=o;A.s_input.tolerance=O.b2_linearSlop;return d.TimeOfImpact(A.s_input)};Box2D.postDefs.push(function(){Box2D.Dynamics.Contacts.b2Contact.e_sensorFlag=1;Box2D.Dynamics.Contacts.b2Contact.e_continuousFlag=2;Box2D.Dynamics.Contacts.b2Contact.e_islandFlag=4;Box2D.Dynamics.Contacts.b2Contact.e_toiFlag=8;Box2D.Dynamics.Contacts.b2Contact.e_touchingFlag=
+16;Box2D.Dynamics.Contacts.b2Contact.e_enabledFlag=32;Box2D.Dynamics.Contacts.b2Contact.e_filterFlag=64;Box2D.Dynamics.Contacts.b2Contact.s_input=new h});U.b2ContactConstraint=function(){this.localPlaneNormal=new N;this.localPoint=new N;this.normal=new N;this.normalMass=new E;this.K=new E};U.prototype.b2ContactConstraint=function(){this.points=new Vector(O.b2_maxManifoldPoints);for(var j=0;j<O.b2_maxManifoldPoints;j++)this.points[j]=new p};p.b2ContactConstraintPoint=function(){this.localPoint=new N;
+this.rA=new N;this.rB=new N};B.b2ContactEdge=function(){};Q.b2ContactFactory=function(){};Q.prototype.b2ContactFactory=function(j){this.m_allocator=j;this.InitializeRegisters()};Q.prototype.AddType=function(j,o,q,n){if(q===undefined)q=0;if(n===undefined)n=0;this.m_registers[q][n].createFcn=j;this.m_registers[q][n].destroyFcn=o;this.m_registers[q][n].primary=true;if(q!=n){this.m_registers[n][q].createFcn=j;this.m_registers[n][q].destroyFcn=o;this.m_registers[n][q].primary=false}};Q.prototype.InitializeRegisters=
+function(){this.m_registers=new Vector(y.e_shapeTypeCount);for(var j=0;j<y.e_shapeTypeCount;j++){this.m_registers[j]=new Vector(y.e_shapeTypeCount);for(var o=0;o<y.e_shapeTypeCount;o++)this.m_registers[j][o]=new V}this.AddType(w.Create,w.Destroy,y.e_circleShape,y.e_circleShape);this.AddType(Y.Create,Y.Destroy,y.e_polygonShape,y.e_circleShape);this.AddType(z.Create,z.Destroy,y.e_polygonShape,y.e_polygonShape);this.AddType(I.Create,I.Destroy,y.e_edgeShape,y.e_circleShape);this.AddType(k.Create,k.Destroy,
+y.e_polygonShape,y.e_edgeShape)};Q.prototype.Create=function(j,o){var q=parseInt(j.GetType()),n=parseInt(o.GetType());q=this.m_registers[q][n];if(q.pool){n=q.pool;q.pool=n.m_next;q.poolCount--;n.Reset(j,o);return n}n=q.createFcn;if(n!=null){if(q.primary){n=n(this.m_allocator);n.Reset(j,o)}else{n=n(this.m_allocator);n.Reset(o,j)}return n}else return null};Q.prototype.Destroy=function(j){if(j.m_manifold.m_pointCount>0){j.m_fixtureA.m_body.SetAwake(true);j.m_fixtureB.m_body.SetAwake(true)}var o=parseInt(j.m_fixtureA.GetType()),
+q=parseInt(j.m_fixtureB.GetType());o=this.m_registers[o][q];o.poolCount++;j.m_next=o.pool;o.pool=j;o=o.destroyFcn;o(j,this.m_allocator)};V.b2ContactRegister=function(){};M.b2ContactResult=function(){this.position=new N;this.normal=new N;this.id=new aa};L.b2ContactSolver=function(){this.m_step=new H;this.m_constraints=new Vector};L.prototype.b2ContactSolver=function(){};L.prototype.Initialize=function(j,o,q,n){if(q===undefined)q=0;var a;this.m_step.Set(j);this.m_allocator=n;j=0;for(this.m_constraintCount=
+q;this.m_constraints.length<this.m_constraintCount;)this.m_constraints[this.m_constraints.length]=new U;for(j=0;j<q;++j){a=o[j];n=a.m_fixtureA;var c=a.m_fixtureB,g=n.m_shape.m_radius,b=c.m_shape.m_radius,e=n.m_body,f=c.m_body,m=a.GetManifold(),r=O.b2MixFriction(n.GetFriction(),c.GetFriction()),s=O.b2MixRestitution(n.GetRestitution(),c.GetRestitution()),v=e.m_linearVelocity.x,t=e.m_linearVelocity.y,x=f.m_linearVelocity.x,C=f.m_linearVelocity.y,J=e.m_angularVelocity,T=f.m_angularVelocity;O.b2Assert(m.m_pointCount>
+0);L.s_worldManifold.Initialize(m,e.m_xf,g,f.m_xf,b);c=L.s_worldManifold.m_normal.x;a=L.s_worldManifold.m_normal.y;n=this.m_constraints[j];n.bodyA=e;n.bodyB=f;n.manifold=m;n.normal.x=c;n.normal.y=a;n.pointCount=m.m_pointCount;n.friction=r;n.restitution=s;n.localPlaneNormal.x=m.m_localPlaneNormal.x;n.localPlaneNormal.y=m.m_localPlaneNormal.y;n.localPoint.x=m.m_localPoint.x;n.localPoint.y=m.m_localPoint.y;n.radius=g+b;n.type=m.m_type;for(g=0;g<n.pointCount;++g){r=m.m_points[g];b=n.points[g];b.normalImpulse=
+r.m_normalImpulse;b.tangentImpulse=r.m_tangentImpulse;b.localPoint.SetV(r.m_localPoint);r=b.rA.x=L.s_worldManifold.m_points[g].x-e.m_sweep.c.x;s=b.rA.y=L.s_worldManifold.m_points[g].y-e.m_sweep.c.y;var P=b.rB.x=L.s_worldManifold.m_points[g].x-f.m_sweep.c.x,X=b.rB.y=L.s_worldManifold.m_points[g].y-f.m_sweep.c.y,$=r*a-s*c,ba=P*a-X*c;$*=$;ba*=ba;b.normalMass=1/(e.m_invMass+f.m_invMass+e.m_invI*$+f.m_invI*ba);var ca=e.m_mass*e.m_invMass+f.m_mass*f.m_invMass;ca+=e.m_mass*e.m_invI*$+f.m_mass*f.m_invI*ba;
+b.equalizedMass=1/ca;ba=a;ca=-c;$=r*ca-s*ba;ba=P*ca-X*ba;$*=$;ba*=ba;b.tangentMass=1/(e.m_invMass+f.m_invMass+e.m_invI*$+f.m_invI*ba);b.velocityBias=0;r=n.normal.x*(x+-T*X-v- -J*s)+n.normal.y*(C+T*P-t-J*r);if(r<-O.b2_velocityThreshold)b.velocityBias+=-n.restitution*r}if(n.pointCount==2){C=n.points[0];x=n.points[1];m=e.m_invMass;e=e.m_invI;v=f.m_invMass;f=f.m_invI;t=C.rA.x*a-C.rA.y*c;C=C.rB.x*a-C.rB.y*c;J=x.rA.x*a-x.rA.y*c;x=x.rB.x*a-x.rB.y*c;c=m+v+e*t*t+f*C*C;a=m+v+e*J*J+f*x*x;f=m+v+e*t*J+f*C*x;if(c*
+c<100*(c*a-f*f)){n.K.col1.Set(c,f);n.K.col2.Set(f,a);n.K.GetInverse(n.normalMass)}else n.pointCount=1}}};L.prototype.InitVelocityConstraints=function(j){for(var o=0;o<this.m_constraintCount;++o){var q=this.m_constraints[o],n=q.bodyA,a=q.bodyB,c=n.m_invMass,g=n.m_invI,b=a.m_invMass,e=a.m_invI,f=q.normal.x,m=q.normal.y,r=m,s=-f,v=0,t=0;if(j.warmStarting){t=q.pointCount;for(v=0;v<t;++v){var x=q.points[v];x.normalImpulse*=j.dtRatio;x.tangentImpulse*=j.dtRatio;var C=x.normalImpulse*f+x.tangentImpulse*
+r,J=x.normalImpulse*m+x.tangentImpulse*s;n.m_angularVelocity-=g*(x.rA.x*J-x.rA.y*C);n.m_linearVelocity.x-=c*C;n.m_linearVelocity.y-=c*J;a.m_angularVelocity+=e*(x.rB.x*J-x.rB.y*C);a.m_linearVelocity.x+=b*C;a.m_linearVelocity.y+=b*J}}else{t=q.pointCount;for(v=0;v<t;++v){n=q.points[v];n.normalImpulse=0;n.tangentImpulse=0}}}};L.prototype.SolveVelocityConstraints=function(){for(var j=0,o,q=0,n=0,a=0,c=n=n=q=q=0,g=q=q=0,b=q=a=0,e=0,f,m=0;m<this.m_constraintCount;++m){a=this.m_constraints[m];var r=a.bodyA,
+s=a.bodyB,v=r.m_angularVelocity,t=s.m_angularVelocity,x=r.m_linearVelocity,C=s.m_linearVelocity,J=r.m_invMass,T=r.m_invI,P=s.m_invMass,X=s.m_invI;b=a.normal.x;var $=e=a.normal.y;f=-b;g=a.friction;for(j=0;j<a.pointCount;j++){o=a.points[j];q=C.x-t*o.rB.y-x.x+v*o.rA.y;n=C.y+t*o.rB.x-x.y-v*o.rA.x;q=q*$+n*f;q=o.tangentMass*-q;n=g*o.normalImpulse;n=R.Clamp(o.tangentImpulse+q,-n,n);q=n-o.tangentImpulse;c=q*$;q=q*f;x.x-=J*c;x.y-=J*q;v-=T*(o.rA.x*q-o.rA.y*c);C.x+=P*c;C.y+=P*q;t+=X*(o.rB.x*q-o.rB.y*c);o.tangentImpulse=
+n}parseInt(a.pointCount);if(a.pointCount==1){o=a.points[0];q=C.x+-t*o.rB.y-x.x- -v*o.rA.y;n=C.y+t*o.rB.x-x.y-v*o.rA.x;a=q*b+n*e;q=-o.normalMass*(a-o.velocityBias);n=o.normalImpulse+q;n=n>0?n:0;q=n-o.normalImpulse;c=q*b;q=q*e;x.x-=J*c;x.y-=J*q;v-=T*(o.rA.x*q-o.rA.y*c);C.x+=P*c;C.y+=P*q;t+=X*(o.rB.x*q-o.rB.y*c);o.normalImpulse=n}else{o=a.points[0];j=a.points[1];q=o.normalImpulse;g=j.normalImpulse;var ba=(C.x-t*o.rB.y-x.x+v*o.rA.y)*b+(C.y+t*o.rB.x-x.y-v*o.rA.x)*e,ca=(C.x-t*j.rB.y-x.x+v*j.rA.y)*b+(C.y+
+t*j.rB.x-x.y-v*j.rA.x)*e;n=ba-o.velocityBias;c=ca-j.velocityBias;f=a.K;n-=f.col1.x*q+f.col2.x*g;for(c-=f.col1.y*q+f.col2.y*g;;){f=a.normalMass;$=-(f.col1.x*n+f.col2.x*c);f=-(f.col1.y*n+f.col2.y*c);if($>=0&&f>=0){q=$-q;g=f-g;a=q*b;q=q*e;b=g*b;e=g*e;x.x-=J*(a+b);x.y-=J*(q+e);v-=T*(o.rA.x*q-o.rA.y*a+j.rA.x*e-j.rA.y*b);C.x+=P*(a+b);C.y+=P*(q+e);t+=X*(o.rB.x*q-o.rB.y*a+j.rB.x*e-j.rB.y*b);o.normalImpulse=$;j.normalImpulse=f;break}$=-o.normalMass*n;f=0;ca=a.K.col1.y*$+c;if($>=0&&ca>=0){q=$-q;g=f-g;a=q*b;
+q=q*e;b=g*b;e=g*e;x.x-=J*(a+b);x.y-=J*(q+e);v-=T*(o.rA.x*q-o.rA.y*a+j.rA.x*e-j.rA.y*b);C.x+=P*(a+b);C.y+=P*(q+e);t+=X*(o.rB.x*q-o.rB.y*a+j.rB.x*e-j.rB.y*b);o.normalImpulse=$;j.normalImpulse=f;break}$=0;f=-j.normalMass*c;ba=a.K.col2.x*f+n;if(f>=0&&ba>=0){q=$-q;g=f-g;a=q*b;q=q*e;b=g*b;e=g*e;x.x-=J*(a+b);x.y-=J*(q+e);v-=T*(o.rA.x*q-o.rA.y*a+j.rA.x*e-j.rA.y*b);C.x+=P*(a+b);C.y+=P*(q+e);t+=X*(o.rB.x*q-o.rB.y*a+j.rB.x*e-j.rB.y*b);o.normalImpulse=$;j.normalImpulse=f;break}f=$=0;ba=n;ca=c;if(ba>=0&&ca>=0){q=
+$-q;g=f-g;a=q*b;q=q*e;b=g*b;e=g*e;x.x-=J*(a+b);x.y-=J*(q+e);v-=T*(o.rA.x*q-o.rA.y*a+j.rA.x*e-j.rA.y*b);C.x+=P*(a+b);C.y+=P*(q+e);t+=X*(o.rB.x*q-o.rB.y*a+j.rB.x*e-j.rB.y*b);o.normalImpulse=$;j.normalImpulse=f;break}break}}r.m_angularVelocity=v;s.m_angularVelocity=t}};L.prototype.FinalizeVelocityConstraints=function(){for(var j=0;j<this.m_constraintCount;++j)for(var o=this.m_constraints[j],q=o.manifold,n=0;n<o.pointCount;++n){var a=q.m_points[n],c=o.points[n];a.m_normalImpulse=c.normalImpulse;a.m_tangentImpulse=
+c.tangentImpulse}};L.prototype.SolvePositionConstraints=function(j){if(j===undefined)j=0;for(var o=0,q=0;q<this.m_constraintCount;q++){var n=this.m_constraints[q],a=n.bodyA,c=n.bodyB,g=a.m_mass*a.m_invMass,b=a.m_mass*a.m_invI,e=c.m_mass*c.m_invMass,f=c.m_mass*c.m_invI;L.s_psm.Initialize(n);for(var m=L.s_psm.m_normal,r=0;r<n.pointCount;r++){var s=n.points[r],v=L.s_psm.m_points[r],t=L.s_psm.m_separations[r],x=v.x-a.m_sweep.c.x,C=v.y-a.m_sweep.c.y,J=v.x-c.m_sweep.c.x;v=v.y-c.m_sweep.c.y;o=o<t?o:t;t=
+R.Clamp(j*(t+O.b2_linearSlop),-O.b2_maxLinearCorrection,0);t=-s.equalizedMass*t;s=t*m.x;t=t*m.y;a.m_sweep.c.x-=g*s;a.m_sweep.c.y-=g*t;a.m_sweep.a-=b*(x*t-C*s);a.SynchronizeTransform();c.m_sweep.c.x+=e*s;c.m_sweep.c.y+=e*t;c.m_sweep.a+=f*(J*t-v*s);c.SynchronizeTransform()}}return o>-1.5*O.b2_linearSlop};Box2D.postDefs.push(function(){Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold=new l;Box2D.Dynamics.Contacts.b2ContactSolver.s_psm=new u});Box2D.inherit(I,Box2D.Dynamics.Contacts.b2Contact);
+I.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;I.b2EdgeAndCircleContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};I.Create=function(){return new I};I.Destroy=function(){};I.prototype.Reset=function(j,o){this.__super.Reset.call(this,j,o)};I.prototype.Evaluate=function(){var j=this.m_fixtureA.GetBody(),o=this.m_fixtureB.GetBody();this.b2CollideEdgeAndCircle(this.m_manifold,this.m_fixtureA.GetShape()instanceof G?this.m_fixtureA.GetShape():null,j.m_xf,
+this.m_fixtureB.GetShape()instanceof F?this.m_fixtureB.GetShape():null,o.m_xf)};I.prototype.b2CollideEdgeAndCircle=function(){};Box2D.inherit(W,Box2D.Dynamics.Contacts.b2Contact);W.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;W.b2NullContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};W.prototype.b2NullContact=function(){this.__super.b2Contact.call(this)};W.prototype.Evaluate=function(){};Box2D.inherit(Y,Box2D.Dynamics.Contacts.b2Contact);Y.prototype.__super=
+Box2D.Dynamics.Contacts.b2Contact.prototype;Y.b2PolyAndCircleContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};Y.Create=function(){return new Y};Y.Destroy=function(){};Y.prototype.Reset=function(j,o){this.__super.Reset.call(this,j,o);O.b2Assert(j.GetType()==y.e_polygonShape);O.b2Assert(o.GetType()==y.e_circleShape)};Y.prototype.Evaluate=function(){var j=this.m_fixtureA.m_body,o=this.m_fixtureB.m_body;S.CollidePolygonAndCircle(this.m_manifold,this.m_fixtureA.GetShape()instanceof
+K?this.m_fixtureA.GetShape():null,j.m_xf,this.m_fixtureB.GetShape()instanceof F?this.m_fixtureB.GetShape():null,o.m_xf)};Box2D.inherit(k,Box2D.Dynamics.Contacts.b2Contact);k.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;k.b2PolyAndEdgeContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};k.Create=function(){return new k};k.Destroy=function(){};k.prototype.Reset=function(j,o){this.__super.Reset.call(this,j,o);O.b2Assert(j.GetType()==y.e_polygonShape);
+O.b2Assert(o.GetType()==y.e_edgeShape)};k.prototype.Evaluate=function(){var j=this.m_fixtureA.GetBody(),o=this.m_fixtureB.GetBody();this.b2CollidePolyAndEdge(this.m_manifold,this.m_fixtureA.GetShape()instanceof K?this.m_fixtureA.GetShape():null,j.m_xf,this.m_fixtureB.GetShape()instanceof G?this.m_fixtureB.GetShape():null,o.m_xf)};k.prototype.b2CollidePolyAndEdge=function(){};Box2D.inherit(z,Box2D.Dynamics.Contacts.b2Contact);z.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;z.b2PolygonContact=
+function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};z.Create=function(){return new z};z.Destroy=function(){};z.prototype.Reset=function(j,o){this.__super.Reset.call(this,j,o)};z.prototype.Evaluate=function(){var j=this.m_fixtureA.GetBody(),o=this.m_fixtureB.GetBody();S.CollidePolygons(this.m_manifold,this.m_fixtureA.GetShape()instanceof K?this.m_fixtureA.GetShape():null,j.m_xf,this.m_fixtureB.GetShape()instanceof K?this.m_fixtureB.GetShape():null,o.m_xf)};u.b2PositionSolverManifold=
+function(){};u.prototype.b2PositionSolverManifold=function(){this.m_normal=new N;this.m_separations=new Vector_a2j_Number(O.b2_maxManifoldPoints);this.m_points=new Vector(O.b2_maxManifoldPoints);for(var j=0;j<O.b2_maxManifoldPoints;j++)this.m_points[j]=new N};u.prototype.Initialize=function(j){O.b2Assert(j.pointCount>0);var o=0,q=0,n=0,a,c=0,g=0;switch(j.type){case Z.e_circles:a=j.bodyA.m_xf.R;n=j.localPoint;o=j.bodyA.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);q=j.bodyA.m_xf.position.y+(a.col1.y*
+n.x+a.col2.y*n.y);a=j.bodyB.m_xf.R;n=j.points[0].localPoint;c=j.bodyB.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);a=j.bodyB.m_xf.position.y+(a.col1.y*n.x+a.col2.y*n.y);n=c-o;g=a-q;var b=n*n+g*g;if(b>Number.MIN_VALUE*Number.MIN_VALUE){b=Math.sqrt(b);this.m_normal.x=n/b;this.m_normal.y=g/b}else{this.m_normal.x=1;this.m_normal.y=0}this.m_points[0].x=0.5*(o+c);this.m_points[0].y=0.5*(q+a);this.m_separations[0]=n*this.m_normal.x+g*this.m_normal.y-j.radius;break;case Z.e_faceA:a=j.bodyA.m_xf.R;n=j.localPlaneNormal;
+this.m_normal.x=a.col1.x*n.x+a.col2.x*n.y;this.m_normal.y=a.col1.y*n.x+a.col2.y*n.y;a=j.bodyA.m_xf.R;n=j.localPoint;c=j.bodyA.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);g=j.bodyA.m_xf.position.y+(a.col1.y*n.x+a.col2.y*n.y);a=j.bodyB.m_xf.R;for(o=0;o<j.pointCount;++o){n=j.points[o].localPoint;q=j.bodyB.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);n=j.bodyB.m_xf.position.y+(a.col1.y*n.x+a.col2.y*n.y);this.m_separations[o]=(q-c)*this.m_normal.x+(n-g)*this.m_normal.y-j.radius;this.m_points[o].x=q;this.m_points[o].y=
+n}break;case Z.e_faceB:a=j.bodyB.m_xf.R;n=j.localPlaneNormal;this.m_normal.x=a.col1.x*n.x+a.col2.x*n.y;this.m_normal.y=a.col1.y*n.x+a.col2.y*n.y;a=j.bodyB.m_xf.R;n=j.localPoint;c=j.bodyB.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);g=j.bodyB.m_xf.position.y+(a.col1.y*n.x+a.col2.y*n.y);a=j.bodyA.m_xf.R;for(o=0;o<j.pointCount;++o){n=j.points[o].localPoint;q=j.bodyA.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);n=j.bodyA.m_xf.position.y+(a.col1.y*n.x+a.col2.y*n.y);this.m_separations[o]=(q-c)*this.m_normal.x+
+(n-g)*this.m_normal.y-j.radius;this.m_points[o].Set(q,n)}this.m_normal.x*=-1;this.m_normal.y*=-1}};Box2D.postDefs.push(function(){Box2D.Dynamics.Contacts.b2PositionSolverManifold.circlePointA=new N;Box2D.Dynamics.Contacts.b2PositionSolverManifold.circlePointB=new N})})();
+(function(){var F=Box2D.Common.Math.b2Mat22,G=Box2D.Common.Math.b2Math,K=Box2D.Common.Math.b2Vec2,y=Box2D.Common.b2Color,w=Box2D.Dynamics.Controllers.b2BuoyancyController,A=Box2D.Dynamics.Controllers.b2ConstantAccelController,U=Box2D.Dynamics.Controllers.b2ConstantForceController,p=Box2D.Dynamics.Controllers.b2Controller,B=Box2D.Dynamics.Controllers.b2ControllerEdge,Q=Box2D.Dynamics.Controllers.b2GravityController,V=Box2D.Dynamics.Controllers.b2TensorDampingController;Box2D.inherit(w,Box2D.Dynamics.Controllers.b2Controller);
+w.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;w.b2BuoyancyController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.normal=new K(0,-1);this.density=this.offset=0;this.velocity=new K(0,0);this.linearDrag=2;this.angularDrag=1;this.useDensity=false;this.useWorldGravity=true;this.gravity=null};w.prototype.Step=function(){if(this.m_bodyList){if(this.useWorldGravity)this.gravity=this.GetWorld().GetGravity().Copy();for(var M=this.m_bodyList;M;M=
+M.nextBody){var L=M.body;if(L.IsAwake()!=false){for(var I=new K,W=new K,Y=0,k=0,z=L.GetFixtureList();z;z=z.GetNext()){var u=new K,D=z.GetShape().ComputeSubmergedArea(this.normal,this.offset,L.GetTransform(),u);Y+=D;I.x+=D*u.x;I.y+=D*u.y;var H=0;H=1;k+=D*H;W.x+=D*u.x*H;W.y+=D*u.y*H}I.x/=Y;I.y/=Y;W.x/=k;W.y/=k;if(!(Y<Number.MIN_VALUE)){k=this.gravity.GetNegative();k.Multiply(this.density*Y);L.ApplyForce(k,W);W=L.GetLinearVelocityFromWorldPoint(I);W.Subtract(this.velocity);W.Multiply(-this.linearDrag*
+Y);L.ApplyForce(W,I);L.ApplyTorque(-L.GetInertia()/L.GetMass()*Y*L.GetAngularVelocity()*this.angularDrag)}}}}};w.prototype.Draw=function(M){var L=new K,I=new K;L.x=this.normal.x*this.offset+this.normal.y*1E3;L.y=this.normal.y*this.offset-this.normal.x*1E3;I.x=this.normal.x*this.offset-this.normal.y*1E3;I.y=this.normal.y*this.offset+this.normal.x*1E3;var W=new y(0,0,1);M.DrawSegment(L,I,W)};Box2D.inherit(A,Box2D.Dynamics.Controllers.b2Controller);A.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;
+A.b2ConstantAccelController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.A=new K(0,0)};A.prototype.Step=function(M){M=new K(this.A.x*M.dt,this.A.y*M.dt);for(var L=this.m_bodyList;L;L=L.nextBody){var I=L.body;I.IsAwake()&&I.SetLinearVelocity(new K(I.GetLinearVelocity().x+M.x,I.GetLinearVelocity().y+M.y))}};Box2D.inherit(U,Box2D.Dynamics.Controllers.b2Controller);U.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;U.b2ConstantForceController=
+function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.F=new K(0,0)};U.prototype.Step=function(){for(var M=this.m_bodyList;M;M=M.nextBody){var L=M.body;L.IsAwake()&&L.ApplyForce(this.F,L.GetWorldCenter())}};p.b2Controller=function(){};p.prototype.Step=function(){};p.prototype.Draw=function(){};p.prototype.AddBody=function(M){var L=new B;L.controller=this;L.body=M;L.nextBody=this.m_bodyList;L.prevBody=null;this.m_bodyList=L;if(L.nextBody)L.nextBody.prevBody=L;this.m_bodyCount++;
+L.nextController=M.m_controllerList;L.prevController=null;M.m_controllerList=L;if(L.nextController)L.nextController.prevController=L;M.m_controllerCount++};p.prototype.RemoveBody=function(M){for(var L=M.m_controllerList;L&&L.controller!=this;)L=L.nextController;if(L.prevBody)L.prevBody.nextBody=L.nextBody;if(L.nextBody)L.nextBody.prevBody=L.prevBody;if(L.nextController)L.nextController.prevController=L.prevController;if(L.prevController)L.prevController.nextController=L.nextController;if(this.m_bodyList==
+L)this.m_bodyList=L.nextBody;if(M.m_controllerList==L)M.m_controllerList=L.nextController;M.m_controllerCount--;this.m_bodyCount--};p.prototype.Clear=function(){for(;this.m_bodyList;)this.RemoveBody(this.m_bodyList.body)};p.prototype.GetNext=function(){return this.m_next};p.prototype.GetWorld=function(){return this.m_world};p.prototype.GetBodyList=function(){return this.m_bodyList};B.b2ControllerEdge=function(){};Box2D.inherit(Q,Box2D.Dynamics.Controllers.b2Controller);Q.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;
+Q.b2GravityController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.G=1;this.invSqr=true};Q.prototype.Step=function(){var M=null,L=null,I=null,W=0,Y=null,k=null,z=null,u=0,D=0,H=0;u=null;if(this.invSqr)for(M=this.m_bodyList;M;M=M.nextBody){L=M.body;I=L.GetWorldCenter();W=L.GetMass();for(Y=this.m_bodyList;Y!=M;Y=Y.nextBody){k=Y.body;z=k.GetWorldCenter();u=z.x-I.x;D=z.y-I.y;H=u*u+D*D;if(!(H<Number.MIN_VALUE)){u=new K(u,D);u.Multiply(this.G/H/Math.sqrt(H)*
+W*k.GetMass());L.IsAwake()&&L.ApplyForce(u,I);u.Multiply(-1);k.IsAwake()&&k.ApplyForce(u,z)}}}else for(M=this.m_bodyList;M;M=M.nextBody){L=M.body;I=L.GetWorldCenter();W=L.GetMass();for(Y=this.m_bodyList;Y!=M;Y=Y.nextBody){k=Y.body;z=k.GetWorldCenter();u=z.x-I.x;D=z.y-I.y;H=u*u+D*D;if(!(H<Number.MIN_VALUE)){u=new K(u,D);u.Multiply(this.G/H*W*k.GetMass());L.IsAwake()&&L.ApplyForce(u,I);u.Multiply(-1);k.IsAwake()&&k.ApplyForce(u,z)}}}};Box2D.inherit(V,Box2D.Dynamics.Controllers.b2Controller);V.prototype.__super=
+Box2D.Dynamics.Controllers.b2Controller.prototype;V.b2TensorDampingController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.T=new F;this.maxTimestep=0};V.prototype.SetAxisAligned=function(M,L){if(M===undefined)M=0;if(L===undefined)L=0;this.T.col1.x=-M;this.T.col1.y=0;this.T.col2.x=0;this.T.col2.y=-L;this.maxTimestep=M>0||L>0?1/Math.max(M,L):0};V.prototype.Step=function(M){M=M.dt;if(!(M<=Number.MIN_VALUE)){if(M>this.maxTimestep&&this.maxTimestep>0)M=this.maxTimestep;
+for(var L=this.m_bodyList;L;L=L.nextBody){var I=L.body;if(I.IsAwake()){var W=I.GetWorldVector(G.MulMV(this.T,I.GetLocalVector(I.GetLinearVelocity())));I.SetLinearVelocity(new K(I.GetLinearVelocity().x+W.x*M,I.GetLinearVelocity().y+W.y*M))}}}}})();
+(function(){var F=Box2D.Common.b2Settings,G=Box2D.Common.Math.b2Mat22,K=Box2D.Common.Math.b2Mat33,y=Box2D.Common.Math.b2Math,w=Box2D.Common.Math.b2Vec2,A=Box2D.Common.Math.b2Vec3,U=Box2D.Dynamics.Joints.b2DistanceJoint,p=Box2D.Dynamics.Joints.b2DistanceJointDef,B=Box2D.Dynamics.Joints.b2FrictionJoint,Q=Box2D.Dynamics.Joints.b2FrictionJointDef,V=Box2D.Dynamics.Joints.b2GearJoint,M=Box2D.Dynamics.Joints.b2GearJointDef,L=Box2D.Dynamics.Joints.b2Jacobian,I=Box2D.Dynamics.Joints.b2Joint,W=Box2D.Dynamics.Joints.b2JointDef,
+Y=Box2D.Dynamics.Joints.b2JointEdge,k=Box2D.Dynamics.Joints.b2LineJoint,z=Box2D.Dynamics.Joints.b2LineJointDef,u=Box2D.Dynamics.Joints.b2MouseJoint,D=Box2D.Dynamics.Joints.b2MouseJointDef,H=Box2D.Dynamics.Joints.b2PrismaticJoint,O=Box2D.Dynamics.Joints.b2PrismaticJointDef,E=Box2D.Dynamics.Joints.b2PulleyJoint,R=Box2D.Dynamics.Joints.b2PulleyJointDef,N=Box2D.Dynamics.Joints.b2RevoluteJoint,S=Box2D.Dynamics.Joints.b2RevoluteJointDef,aa=Box2D.Dynamics.Joints.b2WeldJoint,Z=Box2D.Dynamics.Joints.b2WeldJointDef;
+Box2D.inherit(U,Box2D.Dynamics.Joints.b2Joint);U.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;U.b2DistanceJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchor1=new w;this.m_localAnchor2=new w;this.m_u=new w};U.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};U.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};U.prototype.GetReactionForce=function(d){if(d===undefined)d=
+0;return new w(d*this.m_impulse*this.m_u.x,d*this.m_impulse*this.m_u.y)};U.prototype.GetReactionTorque=function(){return 0};U.prototype.GetLength=function(){return this.m_length};U.prototype.SetLength=function(d){if(d===undefined)d=0;this.m_length=d};U.prototype.GetFrequency=function(){return this.m_frequencyHz};U.prototype.SetFrequency=function(d){if(d===undefined)d=0;this.m_frequencyHz=d};U.prototype.GetDampingRatio=function(){return this.m_dampingRatio};U.prototype.SetDampingRatio=function(d){if(d===
+undefined)d=0;this.m_dampingRatio=d};U.prototype.b2DistanceJoint=function(d){this.__super.b2Joint.call(this,d);this.m_localAnchor1.SetV(d.localAnchorA);this.m_localAnchor2.SetV(d.localAnchorB);this.m_length=d.length;this.m_frequencyHz=d.frequencyHz;this.m_dampingRatio=d.dampingRatio;this.m_bias=this.m_gamma=this.m_impulse=0};U.prototype.InitVelocityConstraints=function(d){var h,l=0,j=this.m_bodyA,o=this.m_bodyB;h=j.m_xf.R;var q=this.m_localAnchor1.x-j.m_sweep.localCenter.x,n=this.m_localAnchor1.y-
+j.m_sweep.localCenter.y;l=h.col1.x*q+h.col2.x*n;n=h.col1.y*q+h.col2.y*n;q=l;h=o.m_xf.R;var a=this.m_localAnchor2.x-o.m_sweep.localCenter.x,c=this.m_localAnchor2.y-o.m_sweep.localCenter.y;l=h.col1.x*a+h.col2.x*c;c=h.col1.y*a+h.col2.y*c;a=l;this.m_u.x=o.m_sweep.c.x+a-j.m_sweep.c.x-q;this.m_u.y=o.m_sweep.c.y+c-j.m_sweep.c.y-n;l=Math.sqrt(this.m_u.x*this.m_u.x+this.m_u.y*this.m_u.y);l>F.b2_linearSlop?this.m_u.Multiply(1/l):this.m_u.SetZero();h=q*this.m_u.y-n*this.m_u.x;var g=a*this.m_u.y-c*this.m_u.x;
+h=j.m_invMass+j.m_invI*h*h+o.m_invMass+o.m_invI*g*g;this.m_mass=h!=0?1/h:0;if(this.m_frequencyHz>0){l=l-this.m_length;g=2*Math.PI*this.m_frequencyHz;var b=this.m_mass*g*g;this.m_gamma=d.dt*(2*this.m_mass*this.m_dampingRatio*g+d.dt*b);this.m_gamma=this.m_gamma!=0?1/this.m_gamma:0;this.m_bias=l*d.dt*b*this.m_gamma;this.m_mass=h+this.m_gamma;this.m_mass=this.m_mass!=0?1/this.m_mass:0}if(d.warmStarting){this.m_impulse*=d.dtRatio;d=this.m_impulse*this.m_u.x;h=this.m_impulse*this.m_u.y;j.m_linearVelocity.x-=
+j.m_invMass*d;j.m_linearVelocity.y-=j.m_invMass*h;j.m_angularVelocity-=j.m_invI*(q*h-n*d);o.m_linearVelocity.x+=o.m_invMass*d;o.m_linearVelocity.y+=o.m_invMass*h;o.m_angularVelocity+=o.m_invI*(a*h-c*d)}else this.m_impulse=0};U.prototype.SolveVelocityConstraints=function(){var d,h=this.m_bodyA,l=this.m_bodyB;d=h.m_xf.R;var j=this.m_localAnchor1.x-h.m_sweep.localCenter.x,o=this.m_localAnchor1.y-h.m_sweep.localCenter.y,q=d.col1.x*j+d.col2.x*o;o=d.col1.y*j+d.col2.y*o;j=q;d=l.m_xf.R;var n=this.m_localAnchor2.x-
+l.m_sweep.localCenter.x,a=this.m_localAnchor2.y-l.m_sweep.localCenter.y;q=d.col1.x*n+d.col2.x*a;a=d.col1.y*n+d.col2.y*a;n=q;q=-this.m_mass*(this.m_u.x*(l.m_linearVelocity.x+-l.m_angularVelocity*a-(h.m_linearVelocity.x+-h.m_angularVelocity*o))+this.m_u.y*(l.m_linearVelocity.y+l.m_angularVelocity*n-(h.m_linearVelocity.y+h.m_angularVelocity*j))+this.m_bias+this.m_gamma*this.m_impulse);this.m_impulse+=q;d=q*this.m_u.x;q=q*this.m_u.y;h.m_linearVelocity.x-=h.m_invMass*d;h.m_linearVelocity.y-=h.m_invMass*
+q;h.m_angularVelocity-=h.m_invI*(j*q-o*d);l.m_linearVelocity.x+=l.m_invMass*d;l.m_linearVelocity.y+=l.m_invMass*q;l.m_angularVelocity+=l.m_invI*(n*q-a*d)};U.prototype.SolvePositionConstraints=function(){var d;if(this.m_frequencyHz>0)return true;var h=this.m_bodyA,l=this.m_bodyB;d=h.m_xf.R;var j=this.m_localAnchor1.x-h.m_sweep.localCenter.x,o=this.m_localAnchor1.y-h.m_sweep.localCenter.y,q=d.col1.x*j+d.col2.x*o;o=d.col1.y*j+d.col2.y*o;j=q;d=l.m_xf.R;var n=this.m_localAnchor2.x-l.m_sweep.localCenter.x,
+a=this.m_localAnchor2.y-l.m_sweep.localCenter.y;q=d.col1.x*n+d.col2.x*a;a=d.col1.y*n+d.col2.y*a;n=q;q=l.m_sweep.c.x+n-h.m_sweep.c.x-j;var c=l.m_sweep.c.y+a-h.m_sweep.c.y-o;d=Math.sqrt(q*q+c*c);q/=d;c/=d;d=d-this.m_length;d=y.Clamp(d,-F.b2_maxLinearCorrection,F.b2_maxLinearCorrection);var g=-this.m_mass*d;this.m_u.Set(q,c);q=g*this.m_u.x;c=g*this.m_u.y;h.m_sweep.c.x-=h.m_invMass*q;h.m_sweep.c.y-=h.m_invMass*c;h.m_sweep.a-=h.m_invI*(j*c-o*q);l.m_sweep.c.x+=l.m_invMass*q;l.m_sweep.c.y+=l.m_invMass*c;
+l.m_sweep.a+=l.m_invI*(n*c-a*q);h.SynchronizeTransform();l.SynchronizeTransform();return y.Abs(d)<F.b2_linearSlop};Box2D.inherit(p,Box2D.Dynamics.Joints.b2JointDef);p.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;p.b2DistanceJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new w;this.localAnchorB=new w};p.prototype.b2DistanceJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_distanceJoint;this.length=1;this.dampingRatio=
+this.frequencyHz=0};p.prototype.Initialize=function(d,h,l,j){this.bodyA=d;this.bodyB=h;this.localAnchorA.SetV(this.bodyA.GetLocalPoint(l));this.localAnchorB.SetV(this.bodyB.GetLocalPoint(j));d=j.x-l.x;l=j.y-l.y;this.length=Math.sqrt(d*d+l*l);this.dampingRatio=this.frequencyHz=0};Box2D.inherit(B,Box2D.Dynamics.Joints.b2Joint);B.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;B.b2FrictionJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchorA=new w;
+this.m_localAnchorB=new w;this.m_linearMass=new G;this.m_linearImpulse=new w};B.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA)};B.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB)};B.prototype.GetReactionForce=function(d){if(d===undefined)d=0;return new w(d*this.m_linearImpulse.x,d*this.m_linearImpulse.y)};B.prototype.GetReactionTorque=function(d){if(d===undefined)d=0;return d*this.m_angularImpulse};B.prototype.SetMaxForce=
+function(d){if(d===undefined)d=0;this.m_maxForce=d};B.prototype.GetMaxForce=function(){return this.m_maxForce};B.prototype.SetMaxTorque=function(d){if(d===undefined)d=0;this.m_maxTorque=d};B.prototype.GetMaxTorque=function(){return this.m_maxTorque};B.prototype.b2FrictionJoint=function(d){this.__super.b2Joint.call(this,d);this.m_localAnchorA.SetV(d.localAnchorA);this.m_localAnchorB.SetV(d.localAnchorB);this.m_linearMass.SetZero();this.m_angularMass=0;this.m_linearImpulse.SetZero();this.m_angularImpulse=
+0;this.m_maxForce=d.maxForce;this.m_maxTorque=d.maxTorque};B.prototype.InitVelocityConstraints=function(d){var h,l=0,j=this.m_bodyA,o=this.m_bodyB;h=j.m_xf.R;var q=this.m_localAnchorA.x-j.m_sweep.localCenter.x,n=this.m_localAnchorA.y-j.m_sweep.localCenter.y;l=h.col1.x*q+h.col2.x*n;n=h.col1.y*q+h.col2.y*n;q=l;h=o.m_xf.R;var a=this.m_localAnchorB.x-o.m_sweep.localCenter.x,c=this.m_localAnchorB.y-o.m_sweep.localCenter.y;l=h.col1.x*a+h.col2.x*c;c=h.col1.y*a+h.col2.y*c;a=l;h=j.m_invMass;l=o.m_invMass;
+var g=j.m_invI,b=o.m_invI,e=new G;e.col1.x=h+l;e.col2.x=0;e.col1.y=0;e.col2.y=h+l;e.col1.x+=g*n*n;e.col2.x+=-g*q*n;e.col1.y+=-g*q*n;e.col2.y+=g*q*q;e.col1.x+=b*c*c;e.col2.x+=-b*a*c;e.col1.y+=-b*a*c;e.col2.y+=b*a*a;e.GetInverse(this.m_linearMass);this.m_angularMass=g+b;if(this.m_angularMass>0)this.m_angularMass=1/this.m_angularMass;if(d.warmStarting){this.m_linearImpulse.x*=d.dtRatio;this.m_linearImpulse.y*=d.dtRatio;this.m_angularImpulse*=d.dtRatio;d=this.m_linearImpulse;j.m_linearVelocity.x-=h*d.x;
+j.m_linearVelocity.y-=h*d.y;j.m_angularVelocity-=g*(q*d.y-n*d.x+this.m_angularImpulse);o.m_linearVelocity.x+=l*d.x;o.m_linearVelocity.y+=l*d.y;o.m_angularVelocity+=b*(a*d.y-c*d.x+this.m_angularImpulse)}else{this.m_linearImpulse.SetZero();this.m_angularImpulse=0}};B.prototype.SolveVelocityConstraints=function(d){var h,l=0,j=this.m_bodyA,o=this.m_bodyB,q=j.m_linearVelocity,n=j.m_angularVelocity,a=o.m_linearVelocity,c=o.m_angularVelocity,g=j.m_invMass,b=o.m_invMass,e=j.m_invI,f=o.m_invI;h=j.m_xf.R;var m=
+this.m_localAnchorA.x-j.m_sweep.localCenter.x,r=this.m_localAnchorA.y-j.m_sweep.localCenter.y;l=h.col1.x*m+h.col2.x*r;r=h.col1.y*m+h.col2.y*r;m=l;h=o.m_xf.R;var s=this.m_localAnchorB.x-o.m_sweep.localCenter.x,v=this.m_localAnchorB.y-o.m_sweep.localCenter.y;l=h.col1.x*s+h.col2.x*v;v=h.col1.y*s+h.col2.y*v;s=l;h=0;l=-this.m_angularMass*(c-n);var t=this.m_angularImpulse;h=d.dt*this.m_maxTorque;this.m_angularImpulse=y.Clamp(this.m_angularImpulse+l,-h,h);l=this.m_angularImpulse-t;n-=e*l;c+=f*l;h=y.MulMV(this.m_linearMass,
+new w(-(a.x-c*v-q.x+n*r),-(a.y+c*s-q.y-n*m)));l=this.m_linearImpulse.Copy();this.m_linearImpulse.Add(h);h=d.dt*this.m_maxForce;if(this.m_linearImpulse.LengthSquared()>h*h){this.m_linearImpulse.Normalize();this.m_linearImpulse.Multiply(h)}h=y.SubtractVV(this.m_linearImpulse,l);q.x-=g*h.x;q.y-=g*h.y;n-=e*(m*h.y-r*h.x);a.x+=b*h.x;a.y+=b*h.y;c+=f*(s*h.y-v*h.x);j.m_angularVelocity=n;o.m_angularVelocity=c};B.prototype.SolvePositionConstraints=function(){return true};Box2D.inherit(Q,Box2D.Dynamics.Joints.b2JointDef);
+Q.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;Q.b2FrictionJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new w;this.localAnchorB=new w};Q.prototype.b2FrictionJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_frictionJoint;this.maxTorque=this.maxForce=0};Q.prototype.Initialize=function(d,h,l){this.bodyA=d;this.bodyB=h;this.localAnchorA.SetV(this.bodyA.GetLocalPoint(l));this.localAnchorB.SetV(this.bodyB.GetLocalPoint(l))};
+Box2D.inherit(V,Box2D.Dynamics.Joints.b2Joint);V.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;V.b2GearJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_groundAnchor1=new w;this.m_groundAnchor2=new w;this.m_localAnchor1=new w;this.m_localAnchor2=new w;this.m_J=new L};V.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};V.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};V.prototype.GetReactionForce=
+function(d){if(d===undefined)d=0;return new w(d*this.m_impulse*this.m_J.linearB.x,d*this.m_impulse*this.m_J.linearB.y)};V.prototype.GetReactionTorque=function(d){if(d===undefined)d=0;var h=this.m_bodyB.m_xf.R,l=this.m_localAnchor1.x-this.m_bodyB.m_sweep.localCenter.x,j=this.m_localAnchor1.y-this.m_bodyB.m_sweep.localCenter.y,o=h.col1.x*l+h.col2.x*j;j=h.col1.y*l+h.col2.y*j;l=o;return d*(this.m_impulse*this.m_J.angularB-l*this.m_impulse*this.m_J.linearB.y+j*this.m_impulse*this.m_J.linearB.x)};V.prototype.GetRatio=
+function(){return this.m_ratio};V.prototype.SetRatio=function(d){if(d===undefined)d=0;this.m_ratio=d};V.prototype.b2GearJoint=function(d){this.__super.b2Joint.call(this,d);var h=parseInt(d.joint1.m_type),l=parseInt(d.joint2.m_type);this.m_prismatic2=this.m_revolute2=this.m_prismatic1=this.m_revolute1=null;var j=0,o=0;this.m_ground1=d.joint1.GetBodyA();this.m_bodyA=d.joint1.GetBodyB();if(h==I.e_revoluteJoint){this.m_revolute1=d.joint1 instanceof N?d.joint1:null;this.m_groundAnchor1.SetV(this.m_revolute1.m_localAnchor1);
+this.m_localAnchor1.SetV(this.m_revolute1.m_localAnchor2);j=this.m_revolute1.GetJointAngle()}else{this.m_prismatic1=d.joint1 instanceof H?d.joint1:null;this.m_groundAnchor1.SetV(this.m_prismatic1.m_localAnchor1);this.m_localAnchor1.SetV(this.m_prismatic1.m_localAnchor2);j=this.m_prismatic1.GetJointTranslation()}this.m_ground2=d.joint2.GetBodyA();this.m_bodyB=d.joint2.GetBodyB();if(l==I.e_revoluteJoint){this.m_revolute2=d.joint2 instanceof N?d.joint2:null;this.m_groundAnchor2.SetV(this.m_revolute2.m_localAnchor1);
+this.m_localAnchor2.SetV(this.m_revolute2.m_localAnchor2);o=this.m_revolute2.GetJointAngle()}else{this.m_prismatic2=d.joint2 instanceof H?d.joint2:null;this.m_groundAnchor2.SetV(this.m_prismatic2.m_localAnchor1);this.m_localAnchor2.SetV(this.m_prismatic2.m_localAnchor2);o=this.m_prismatic2.GetJointTranslation()}this.m_ratio=d.ratio;this.m_constant=j+this.m_ratio*o;this.m_impulse=0};V.prototype.InitVelocityConstraints=function(d){var h=this.m_ground1,l=this.m_ground2,j=this.m_bodyA,o=this.m_bodyB,
+q=0,n=0,a=0,c=0,g=a=0,b=0;this.m_J.SetZero();if(this.m_revolute1){this.m_J.angularA=-1;b+=j.m_invI}else{h=h.m_xf.R;n=this.m_prismatic1.m_localXAxis1;q=h.col1.x*n.x+h.col2.x*n.y;n=h.col1.y*n.x+h.col2.y*n.y;h=j.m_xf.R;a=this.m_localAnchor1.x-j.m_sweep.localCenter.x;c=this.m_localAnchor1.y-j.m_sweep.localCenter.y;g=h.col1.x*a+h.col2.x*c;c=h.col1.y*a+h.col2.y*c;a=g;a=a*n-c*q;this.m_J.linearA.Set(-q,-n);this.m_J.angularA=-a;b+=j.m_invMass+j.m_invI*a*a}if(this.m_revolute2){this.m_J.angularB=-this.m_ratio;
+b+=this.m_ratio*this.m_ratio*o.m_invI}else{h=l.m_xf.R;n=this.m_prismatic2.m_localXAxis1;q=h.col1.x*n.x+h.col2.x*n.y;n=h.col1.y*n.x+h.col2.y*n.y;h=o.m_xf.R;a=this.m_localAnchor2.x-o.m_sweep.localCenter.x;c=this.m_localAnchor2.y-o.m_sweep.localCenter.y;g=h.col1.x*a+h.col2.x*c;c=h.col1.y*a+h.col2.y*c;a=g;a=a*n-c*q;this.m_J.linearB.Set(-this.m_ratio*q,-this.m_ratio*n);this.m_J.angularB=-this.m_ratio*a;b+=this.m_ratio*this.m_ratio*(o.m_invMass+o.m_invI*a*a)}this.m_mass=b>0?1/b:0;if(d.warmStarting){j.m_linearVelocity.x+=
+j.m_invMass*this.m_impulse*this.m_J.linearA.x;j.m_linearVelocity.y+=j.m_invMass*this.m_impulse*this.m_J.linearA.y;j.m_angularVelocity+=j.m_invI*this.m_impulse*this.m_J.angularA;o.m_linearVelocity.x+=o.m_invMass*this.m_impulse*this.m_J.linearB.x;o.m_linearVelocity.y+=o.m_invMass*this.m_impulse*this.m_J.linearB.y;o.m_angularVelocity+=o.m_invI*this.m_impulse*this.m_J.angularB}else this.m_impulse=0};V.prototype.SolveVelocityConstraints=function(){var d=this.m_bodyA,h=this.m_bodyB,l=-this.m_mass*this.m_J.Compute(d.m_linearVelocity,
+d.m_angularVelocity,h.m_linearVelocity,h.m_angularVelocity);this.m_impulse+=l;d.m_linearVelocity.x+=d.m_invMass*l*this.m_J.linearA.x;d.m_linearVelocity.y+=d.m_invMass*l*this.m_J.linearA.y;d.m_angularVelocity+=d.m_invI*l*this.m_J.angularA;h.m_linearVelocity.x+=h.m_invMass*l*this.m_J.linearB.x;h.m_linearVelocity.y+=h.m_invMass*l*this.m_J.linearB.y;h.m_angularVelocity+=h.m_invI*l*this.m_J.angularB};V.prototype.SolvePositionConstraints=function(){var d=this.m_bodyA,h=this.m_bodyB,l=0,j=0;l=this.m_revolute1?
+this.m_revolute1.GetJointAngle():this.m_prismatic1.GetJointTranslation();j=this.m_revolute2?this.m_revolute2.GetJointAngle():this.m_prismatic2.GetJointTranslation();l=-this.m_mass*(this.m_constant-(l+this.m_ratio*j));d.m_sweep.c.x+=d.m_invMass*l*this.m_J.linearA.x;d.m_sweep.c.y+=d.m_invMass*l*this.m_J.linearA.y;d.m_sweep.a+=d.m_invI*l*this.m_J.angularA;h.m_sweep.c.x+=h.m_invMass*l*this.m_J.linearB.x;h.m_sweep.c.y+=h.m_invMass*l*this.m_J.linearB.y;h.m_sweep.a+=h.m_invI*l*this.m_J.angularB;d.SynchronizeTransform();
+h.SynchronizeTransform();return 0<F.b2_linearSlop};Box2D.inherit(M,Box2D.Dynamics.Joints.b2JointDef);M.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;M.b2GearJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments)};M.prototype.b2GearJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_gearJoint;this.joint2=this.joint1=null;this.ratio=1};L.b2Jacobian=function(){this.linearA=new w;this.linearB=new w};L.prototype.SetZero=function(){this.linearA.SetZero();
+this.angularA=0;this.linearB.SetZero();this.angularB=0};L.prototype.Set=function(d,h,l,j){if(h===undefined)h=0;if(j===undefined)j=0;this.linearA.SetV(d);this.angularA=h;this.linearB.SetV(l);this.angularB=j};L.prototype.Compute=function(d,h,l,j){if(h===undefined)h=0;if(j===undefined)j=0;return this.linearA.x*d.x+this.linearA.y*d.y+this.angularA*h+(this.linearB.x*l.x+this.linearB.y*l.y)+this.angularB*j};I.b2Joint=function(){this.m_edgeA=new Y;this.m_edgeB=new Y;this.m_localCenterA=new w;this.m_localCenterB=
+new w};I.prototype.GetType=function(){return this.m_type};I.prototype.GetAnchorA=function(){return null};I.prototype.GetAnchorB=function(){return null};I.prototype.GetReactionForce=function(){return null};I.prototype.GetReactionTorque=function(){return 0};I.prototype.GetBodyA=function(){return this.m_bodyA};I.prototype.GetBodyB=function(){return this.m_bodyB};I.prototype.GetNext=function(){return this.m_next};I.prototype.GetUserData=function(){return this.m_userData};I.prototype.SetUserData=function(d){this.m_userData=
+d};I.prototype.IsActive=function(){return this.m_bodyA.IsActive()&&this.m_bodyB.IsActive()};I.Create=function(d){var h=null;switch(d.type){case I.e_distanceJoint:h=new U(d instanceof p?d:null);break;case I.e_mouseJoint:h=new u(d instanceof D?d:null);break;case I.e_prismaticJoint:h=new H(d instanceof O?d:null);break;case I.e_revoluteJoint:h=new N(d instanceof S?d:null);break;case I.e_pulleyJoint:h=new E(d instanceof R?d:null);break;case I.e_gearJoint:h=new V(d instanceof M?d:null);break;case I.e_lineJoint:h=
+new k(d instanceof z?d:null);break;case I.e_weldJoint:h=new aa(d instanceof Z?d:null);break;case I.e_frictionJoint:h=new B(d instanceof Q?d:null)}return h};I.Destroy=function(){};I.prototype.b2Joint=function(d){F.b2Assert(d.bodyA!=d.bodyB);this.m_type=d.type;this.m_next=this.m_prev=null;this.m_bodyA=d.bodyA;this.m_bodyB=d.bodyB;this.m_collideConnected=d.collideConnected;this.m_islandFlag=false;this.m_userData=d.userData};I.prototype.InitVelocityConstraints=function(){};I.prototype.SolveVelocityConstraints=
+function(){};I.prototype.FinalizeVelocityConstraints=function(){};I.prototype.SolvePositionConstraints=function(){return false};Box2D.postDefs.push(function(){Box2D.Dynamics.Joints.b2Joint.e_unknownJoint=0;Box2D.Dynamics.Joints.b2Joint.e_revoluteJoint=1;Box2D.Dynamics.Joints.b2Joint.e_prismaticJoint=2;Box2D.Dynamics.Joints.b2Joint.e_distanceJoint=3;Box2D.Dynamics.Joints.b2Joint.e_pulleyJoint=4;Box2D.Dynamics.Joints.b2Joint.e_mouseJoint=5;Box2D.Dynamics.Joints.b2Joint.e_gearJoint=6;Box2D.Dynamics.Joints.b2Joint.e_lineJoint=
+7;Box2D.Dynamics.Joints.b2Joint.e_weldJoint=8;Box2D.Dynamics.Joints.b2Joint.e_frictionJoint=9;Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit=0;Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit=1;Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit=2;Box2D.Dynamics.Joints.b2Joint.e_equalLimits=3});W.b2JointDef=function(){};W.prototype.b2JointDef=function(){this.type=I.e_unknownJoint;this.bodyB=this.bodyA=this.userData=null;this.collideConnected=false};Y.b2JointEdge=function(){};Box2D.inherit(k,Box2D.Dynamics.Joints.b2Joint);
+k.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;k.b2LineJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchor1=new w;this.m_localAnchor2=new w;this.m_localXAxis1=new w;this.m_localYAxis1=new w;this.m_axis=new w;this.m_perp=new w;this.m_K=new G;this.m_impulse=new w};k.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};k.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};k.prototype.GetReactionForce=
+function(d){if(d===undefined)d=0;return new w(d*(this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+this.m_impulse.y)*this.m_axis.x),d*(this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.y)*this.m_axis.y))};k.prototype.GetReactionTorque=function(d){if(d===undefined)d=0;return d*this.m_impulse.y};k.prototype.GetJointTranslation=function(){var d=this.m_bodyA,h=this.m_bodyB,l=d.GetWorldPoint(this.m_localAnchor1),j=h.GetWorldPoint(this.m_localAnchor2);h=j.x-l.x;l=j.y-l.y;d=d.GetWorldVector(this.m_localXAxis1);
+return d.x*h+d.y*l};k.prototype.GetJointSpeed=function(){var d=this.m_bodyA,h=this.m_bodyB,l;l=d.m_xf.R;var j=this.m_localAnchor1.x-d.m_sweep.localCenter.x,o=this.m_localAnchor1.y-d.m_sweep.localCenter.y,q=l.col1.x*j+l.col2.x*o;o=l.col1.y*j+l.col2.y*o;j=q;l=h.m_xf.R;var n=this.m_localAnchor2.x-h.m_sweep.localCenter.x,a=this.m_localAnchor2.y-h.m_sweep.localCenter.y;q=l.col1.x*n+l.col2.x*a;a=l.col1.y*n+l.col2.y*a;n=q;l=h.m_sweep.c.x+n-(d.m_sweep.c.x+j);q=h.m_sweep.c.y+a-(d.m_sweep.c.y+o);var c=d.GetWorldVector(this.m_localXAxis1),
+g=d.m_linearVelocity,b=h.m_linearVelocity;d=d.m_angularVelocity;h=h.m_angularVelocity;return l*-d*c.y+q*d*c.x+(c.x*(b.x+-h*a-g.x- -d*o)+c.y*(b.y+h*n-g.y-d*j))};k.prototype.IsLimitEnabled=function(){return this.m_enableLimit};k.prototype.EnableLimit=function(d){this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_enableLimit=d};k.prototype.GetLowerLimit=function(){return this.m_lowerTranslation};k.prototype.GetUpperLimit=function(){return this.m_upperTranslation};k.prototype.SetLimits=function(d,
+h){if(d===undefined)d=0;if(h===undefined)h=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_lowerTranslation=d;this.m_upperTranslation=h};k.prototype.IsMotorEnabled=function(){return this.m_enableMotor};k.prototype.EnableMotor=function(d){this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_enableMotor=d};k.prototype.SetMotorSpeed=function(d){if(d===undefined)d=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_motorSpeed=d};k.prototype.GetMotorSpeed=function(){return this.m_motorSpeed};
+k.prototype.SetMaxMotorForce=function(d){if(d===undefined)d=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_maxMotorForce=d};k.prototype.GetMaxMotorForce=function(){return this.m_maxMotorForce};k.prototype.GetMotorForce=function(){return this.m_motorImpulse};k.prototype.b2LineJoint=function(d){this.__super.b2Joint.call(this,d);this.m_localAnchor1.SetV(d.localAnchorA);this.m_localAnchor2.SetV(d.localAnchorB);this.m_localXAxis1.SetV(d.localAxisA);this.m_localYAxis1.x=-this.m_localXAxis1.y;
+this.m_localYAxis1.y=this.m_localXAxis1.x;this.m_impulse.SetZero();this.m_motorImpulse=this.m_motorMass=0;this.m_lowerTranslation=d.lowerTranslation;this.m_upperTranslation=d.upperTranslation;this.m_maxMotorForce=d.maxMotorForce;this.m_motorSpeed=d.motorSpeed;this.m_enableLimit=d.enableLimit;this.m_enableMotor=d.enableMotor;this.m_limitState=I.e_inactiveLimit;this.m_axis.SetZero();this.m_perp.SetZero()};k.prototype.InitVelocityConstraints=function(d){var h=this.m_bodyA,l=this.m_bodyB,j,o=0;this.m_localCenterA.SetV(h.GetLocalCenter());
+this.m_localCenterB.SetV(l.GetLocalCenter());var q=h.GetTransform();l.GetTransform();j=h.m_xf.R;var n=this.m_localAnchor1.x-this.m_localCenterA.x,a=this.m_localAnchor1.y-this.m_localCenterA.y;o=j.col1.x*n+j.col2.x*a;a=j.col1.y*n+j.col2.y*a;n=o;j=l.m_xf.R;var c=this.m_localAnchor2.x-this.m_localCenterB.x,g=this.m_localAnchor2.y-this.m_localCenterB.y;o=j.col1.x*c+j.col2.x*g;g=j.col1.y*c+j.col2.y*g;c=o;j=l.m_sweep.c.x+c-h.m_sweep.c.x-n;o=l.m_sweep.c.y+g-h.m_sweep.c.y-a;this.m_invMassA=h.m_invMass;this.m_invMassB=
+l.m_invMass;this.m_invIA=h.m_invI;this.m_invIB=l.m_invI;this.m_axis.SetV(y.MulMV(q.R,this.m_localXAxis1));this.m_a1=(j+n)*this.m_axis.y-(o+a)*this.m_axis.x;this.m_a2=c*this.m_axis.y-g*this.m_axis.x;this.m_motorMass=this.m_invMassA+this.m_invMassB+this.m_invIA*this.m_a1*this.m_a1+this.m_invIB*this.m_a2*this.m_a2;this.m_motorMass=this.m_motorMass>Number.MIN_VALUE?1/this.m_motorMass:0;this.m_perp.SetV(y.MulMV(q.R,this.m_localYAxis1));this.m_s1=(j+n)*this.m_perp.y-(o+a)*this.m_perp.x;this.m_s2=c*this.m_perp.y-
+g*this.m_perp.x;q=this.m_invMassA;n=this.m_invMassB;a=this.m_invIA;c=this.m_invIB;this.m_K.col1.x=q+n+a*this.m_s1*this.m_s1+c*this.m_s2*this.m_s2;this.m_K.col1.y=a*this.m_s1*this.m_a1+c*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=q+n+a*this.m_a1*this.m_a1+c*this.m_a2*this.m_a2;if(this.m_enableLimit){j=this.m_axis.x*j+this.m_axis.y*o;if(y.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*F.b2_linearSlop)this.m_limitState=I.e_equalLimits;else if(j<=this.m_lowerTranslation){if(this.m_limitState!=
+I.e_atLowerLimit){this.m_limitState=I.e_atLowerLimit;this.m_impulse.y=0}}else if(j>=this.m_upperTranslation){if(this.m_limitState!=I.e_atUpperLimit){this.m_limitState=I.e_atUpperLimit;this.m_impulse.y=0}}else{this.m_limitState=I.e_inactiveLimit;this.m_impulse.y=0}}else this.m_limitState=I.e_inactiveLimit;if(this.m_enableMotor==false)this.m_motorImpulse=0;if(d.warmStarting){this.m_impulse.x*=d.dtRatio;this.m_impulse.y*=d.dtRatio;this.m_motorImpulse*=d.dtRatio;d=this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+
+this.m_impulse.y)*this.m_axis.x;j=this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.y)*this.m_axis.y;o=this.m_impulse.x*this.m_s1+(this.m_motorImpulse+this.m_impulse.y)*this.m_a1;q=this.m_impulse.x*this.m_s2+(this.m_motorImpulse+this.m_impulse.y)*this.m_a2;h.m_linearVelocity.x-=this.m_invMassA*d;h.m_linearVelocity.y-=this.m_invMassA*j;h.m_angularVelocity-=this.m_invIA*o;l.m_linearVelocity.x+=this.m_invMassB*d;l.m_linearVelocity.y+=this.m_invMassB*j;l.m_angularVelocity+=this.m_invIB*
+q}else{this.m_impulse.SetZero();this.m_motorImpulse=0}};k.prototype.SolveVelocityConstraints=function(d){var h=this.m_bodyA,l=this.m_bodyB,j=h.m_linearVelocity,o=h.m_angularVelocity,q=l.m_linearVelocity,n=l.m_angularVelocity,a=0,c=0,g=0,b=0;if(this.m_enableMotor&&this.m_limitState!=I.e_equalLimits){b=this.m_motorMass*(this.m_motorSpeed-(this.m_axis.x*(q.x-j.x)+this.m_axis.y*(q.y-j.y)+this.m_a2*n-this.m_a1*o));a=this.m_motorImpulse;c=d.dt*this.m_maxMotorForce;this.m_motorImpulse=y.Clamp(this.m_motorImpulse+
+b,-c,c);b=this.m_motorImpulse-a;a=b*this.m_axis.x;c=b*this.m_axis.y;g=b*this.m_a1;b=b*this.m_a2;j.x-=this.m_invMassA*a;j.y-=this.m_invMassA*c;o-=this.m_invIA*g;q.x+=this.m_invMassB*a;q.y+=this.m_invMassB*c;n+=this.m_invIB*b}c=this.m_perp.x*(q.x-j.x)+this.m_perp.y*(q.y-j.y)+this.m_s2*n-this.m_s1*o;if(this.m_enableLimit&&this.m_limitState!=I.e_inactiveLimit){g=this.m_axis.x*(q.x-j.x)+this.m_axis.y*(q.y-j.y)+this.m_a2*n-this.m_a1*o;a=this.m_impulse.Copy();d=this.m_K.Solve(new w,-c,-g);this.m_impulse.Add(d);
+if(this.m_limitState==I.e_atLowerLimit)this.m_impulse.y=y.Max(this.m_impulse.y,0);else if(this.m_limitState==I.e_atUpperLimit)this.m_impulse.y=y.Min(this.m_impulse.y,0);c=-c-(this.m_impulse.y-a.y)*this.m_K.col2.x;g=0;g=this.m_K.col1.x!=0?c/this.m_K.col1.x+a.x:a.x;this.m_impulse.x=g;d.x=this.m_impulse.x-a.x;d.y=this.m_impulse.y-a.y;a=d.x*this.m_perp.x+d.y*this.m_axis.x;c=d.x*this.m_perp.y+d.y*this.m_axis.y;g=d.x*this.m_s1+d.y*this.m_a1;b=d.x*this.m_s2+d.y*this.m_a2}else{d=0;d=this.m_K.col1.x!=0?-c/
+this.m_K.col1.x:0;this.m_impulse.x+=d;a=d*this.m_perp.x;c=d*this.m_perp.y;g=d*this.m_s1;b=d*this.m_s2}j.x-=this.m_invMassA*a;j.y-=this.m_invMassA*c;o-=this.m_invIA*g;q.x+=this.m_invMassB*a;q.y+=this.m_invMassB*c;n+=this.m_invIB*b;h.m_linearVelocity.SetV(j);h.m_angularVelocity=o;l.m_linearVelocity.SetV(q);l.m_angularVelocity=n};k.prototype.SolvePositionConstraints=function(){var d=this.m_bodyA,h=this.m_bodyB,l=d.m_sweep.c,j=d.m_sweep.a,o=h.m_sweep.c,q=h.m_sweep.a,n,a=0,c=0,g=0,b=0,e=n=0,f=0;c=false;
+var m=0,r=G.FromAngle(j);g=G.FromAngle(q);n=r;f=this.m_localAnchor1.x-this.m_localCenterA.x;var s=this.m_localAnchor1.y-this.m_localCenterA.y;a=n.col1.x*f+n.col2.x*s;s=n.col1.y*f+n.col2.y*s;f=a;n=g;g=this.m_localAnchor2.x-this.m_localCenterB.x;b=this.m_localAnchor2.y-this.m_localCenterB.y;a=n.col1.x*g+n.col2.x*b;b=n.col1.y*g+n.col2.y*b;g=a;n=o.x+g-l.x-f;a=o.y+b-l.y-s;if(this.m_enableLimit){this.m_axis=y.MulMV(r,this.m_localXAxis1);this.m_a1=(n+f)*this.m_axis.y-(a+s)*this.m_axis.x;this.m_a2=g*this.m_axis.y-
+b*this.m_axis.x;var v=this.m_axis.x*n+this.m_axis.y*a;if(y.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*F.b2_linearSlop){m=y.Clamp(v,-F.b2_maxLinearCorrection,F.b2_maxLinearCorrection);e=y.Abs(v);c=true}else if(v<=this.m_lowerTranslation){m=y.Clamp(v-this.m_lowerTranslation+F.b2_linearSlop,-F.b2_maxLinearCorrection,0);e=this.m_lowerTranslation-v;c=true}else if(v>=this.m_upperTranslation){m=y.Clamp(v-this.m_upperTranslation+F.b2_linearSlop,0,F.b2_maxLinearCorrection);e=v-this.m_upperTranslation;
+c=true}}this.m_perp=y.MulMV(r,this.m_localYAxis1);this.m_s1=(n+f)*this.m_perp.y-(a+s)*this.m_perp.x;this.m_s2=g*this.m_perp.y-b*this.m_perp.x;r=new w;s=this.m_perp.x*n+this.m_perp.y*a;e=y.Max(e,y.Abs(s));f=0;if(c){c=this.m_invMassA;g=this.m_invMassB;b=this.m_invIA;n=this.m_invIB;this.m_K.col1.x=c+g+b*this.m_s1*this.m_s1+n*this.m_s2*this.m_s2;this.m_K.col1.y=b*this.m_s1*this.m_a1+n*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=c+g+b*this.m_a1*this.m_a1+n*this.m_a2*this.m_a2;this.m_K.Solve(r,
+-s,-m)}else{c=this.m_invMassA;g=this.m_invMassB;b=this.m_invIA;n=this.m_invIB;m=c+g+b*this.m_s1*this.m_s1+n*this.m_s2*this.m_s2;c=0;c=m!=0?-s/m:0;r.x=c;r.y=0}m=r.x*this.m_perp.x+r.y*this.m_axis.x;c=r.x*this.m_perp.y+r.y*this.m_axis.y;s=r.x*this.m_s1+r.y*this.m_a1;r=r.x*this.m_s2+r.y*this.m_a2;l.x-=this.m_invMassA*m;l.y-=this.m_invMassA*c;j-=this.m_invIA*s;o.x+=this.m_invMassB*m;o.y+=this.m_invMassB*c;q+=this.m_invIB*r;d.m_sweep.a=j;h.m_sweep.a=q;d.SynchronizeTransform();h.SynchronizeTransform();return e<=
+F.b2_linearSlop&&f<=F.b2_angularSlop};Box2D.inherit(z,Box2D.Dynamics.Joints.b2JointDef);z.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;z.b2LineJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new w;this.localAnchorB=new w;this.localAxisA=new w};z.prototype.b2LineJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_lineJoint;this.localAxisA.Set(1,0);this.enableLimit=false;this.upperTranslation=this.lowerTranslation=
+0;this.enableMotor=false;this.motorSpeed=this.maxMotorForce=0};z.prototype.Initialize=function(d,h,l,j){this.bodyA=d;this.bodyB=h;this.localAnchorA=this.bodyA.GetLocalPoint(l);this.localAnchorB=this.bodyB.GetLocalPoint(l);this.localAxisA=this.bodyA.GetLocalVector(j)};Box2D.inherit(u,Box2D.Dynamics.Joints.b2Joint);u.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;u.b2MouseJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.K=new G;this.K1=new G;this.K2=new G;
+this.m_localAnchor=new w;this.m_target=new w;this.m_impulse=new w;this.m_mass=new G;this.m_C=new w};u.prototype.GetAnchorA=function(){return this.m_target};u.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor)};u.prototype.GetReactionForce=function(d){if(d===undefined)d=0;return new w(d*this.m_impulse.x,d*this.m_impulse.y)};u.prototype.GetReactionTorque=function(){return 0};u.prototype.GetTarget=function(){return this.m_target};u.prototype.SetTarget=function(d){this.m_bodyB.IsAwake()==
+false&&this.m_bodyB.SetAwake(true);this.m_target=d};u.prototype.GetMaxForce=function(){return this.m_maxForce};u.prototype.SetMaxForce=function(d){if(d===undefined)d=0;this.m_maxForce=d};u.prototype.GetFrequency=function(){return this.m_frequencyHz};u.prototype.SetFrequency=function(d){if(d===undefined)d=0;this.m_frequencyHz=d};u.prototype.GetDampingRatio=function(){return this.m_dampingRatio};u.prototype.SetDampingRatio=function(d){if(d===undefined)d=0;this.m_dampingRatio=d};u.prototype.b2MouseJoint=
+function(d){this.__super.b2Joint.call(this,d);this.m_target.SetV(d.target);var h=this.m_target.x-this.m_bodyB.m_xf.position.x,l=this.m_target.y-this.m_bodyB.m_xf.position.y,j=this.m_bodyB.m_xf.R;this.m_localAnchor.x=h*j.col1.x+l*j.col1.y;this.m_localAnchor.y=h*j.col2.x+l*j.col2.y;this.m_maxForce=d.maxForce;this.m_impulse.SetZero();this.m_frequencyHz=d.frequencyHz;this.m_dampingRatio=d.dampingRatio;this.m_gamma=this.m_beta=0};u.prototype.InitVelocityConstraints=function(d){var h=this.m_bodyB,l=h.GetMass(),
+j=2*Math.PI*this.m_frequencyHz,o=l*j*j;this.m_gamma=d.dt*(2*l*this.m_dampingRatio*j+d.dt*o);this.m_gamma=this.m_gamma!=0?1/this.m_gamma:0;this.m_beta=d.dt*o*this.m_gamma;o=h.m_xf.R;l=this.m_localAnchor.x-h.m_sweep.localCenter.x;j=this.m_localAnchor.y-h.m_sweep.localCenter.y;var q=o.col1.x*l+o.col2.x*j;j=o.col1.y*l+o.col2.y*j;l=q;o=h.m_invMass;q=h.m_invI;this.K1.col1.x=o;this.K1.col2.x=0;this.K1.col1.y=0;this.K1.col2.y=o;this.K2.col1.x=q*j*j;this.K2.col2.x=-q*l*j;this.K2.col1.y=-q*l*j;this.K2.col2.y=
+q*l*l;this.K.SetM(this.K1);this.K.AddM(this.K2);this.K.col1.x+=this.m_gamma;this.K.col2.y+=this.m_gamma;this.K.GetInverse(this.m_mass);this.m_C.x=h.m_sweep.c.x+l-this.m_target.x;this.m_C.y=h.m_sweep.c.y+j-this.m_target.y;h.m_angularVelocity*=0.98;this.m_impulse.x*=d.dtRatio;this.m_impulse.y*=d.dtRatio;h.m_linearVelocity.x+=o*this.m_impulse.x;h.m_linearVelocity.y+=o*this.m_impulse.y;h.m_angularVelocity+=q*(l*this.m_impulse.y-j*this.m_impulse.x)};u.prototype.SolveVelocityConstraints=function(d){var h=
+this.m_bodyB,l,j=0,o=0;l=h.m_xf.R;var q=this.m_localAnchor.x-h.m_sweep.localCenter.x,n=this.m_localAnchor.y-h.m_sweep.localCenter.y;j=l.col1.x*q+l.col2.x*n;n=l.col1.y*q+l.col2.y*n;q=j;j=h.m_linearVelocity.x+-h.m_angularVelocity*n;var a=h.m_linearVelocity.y+h.m_angularVelocity*q;l=this.m_mass;j=j+this.m_beta*this.m_C.x+this.m_gamma*this.m_impulse.x;o=a+this.m_beta*this.m_C.y+this.m_gamma*this.m_impulse.y;a=-(l.col1.x*j+l.col2.x*o);o=-(l.col1.y*j+l.col2.y*o);l=this.m_impulse.x;j=this.m_impulse.y;this.m_impulse.x+=
+a;this.m_impulse.y+=o;d=d.dt*this.m_maxForce;this.m_impulse.LengthSquared()>d*d&&this.m_impulse.Multiply(d/this.m_impulse.Length());a=this.m_impulse.x-l;o=this.m_impulse.y-j;h.m_linearVelocity.x+=h.m_invMass*a;h.m_linearVelocity.y+=h.m_invMass*o;h.m_angularVelocity+=h.m_invI*(q*o-n*a)};u.prototype.SolvePositionConstraints=function(){return true};Box2D.inherit(D,Box2D.Dynamics.Joints.b2JointDef);D.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;D.b2MouseJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,
+arguments);this.target=new w};D.prototype.b2MouseJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_mouseJoint;this.maxForce=0;this.frequencyHz=5;this.dampingRatio=0.7};Box2D.inherit(H,Box2D.Dynamics.Joints.b2Joint);H.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;H.b2PrismaticJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchor1=new w;this.m_localAnchor2=new w;this.m_localXAxis1=new w;this.m_localYAxis1=new w;this.m_axis=new w;
+this.m_perp=new w;this.m_K=new K;this.m_impulse=new A};H.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};H.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};H.prototype.GetReactionForce=function(d){if(d===undefined)d=0;return new w(d*(this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.x),d*(this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.y))};H.prototype.GetReactionTorque=
+function(d){if(d===undefined)d=0;return d*this.m_impulse.y};H.prototype.GetJointTranslation=function(){var d=this.m_bodyA,h=this.m_bodyB,l=d.GetWorldPoint(this.m_localAnchor1),j=h.GetWorldPoint(this.m_localAnchor2);h=j.x-l.x;l=j.y-l.y;d=d.GetWorldVector(this.m_localXAxis1);return d.x*h+d.y*l};H.prototype.GetJointSpeed=function(){var d=this.m_bodyA,h=this.m_bodyB,l;l=d.m_xf.R;var j=this.m_localAnchor1.x-d.m_sweep.localCenter.x,o=this.m_localAnchor1.y-d.m_sweep.localCenter.y,q=l.col1.x*j+l.col2.x*o;
+o=l.col1.y*j+l.col2.y*o;j=q;l=h.m_xf.R;var n=this.m_localAnchor2.x-h.m_sweep.localCenter.x,a=this.m_localAnchor2.y-h.m_sweep.localCenter.y;q=l.col1.x*n+l.col2.x*a;a=l.col1.y*n+l.col2.y*a;n=q;l=h.m_sweep.c.x+n-(d.m_sweep.c.x+j);q=h.m_sweep.c.y+a-(d.m_sweep.c.y+o);var c=d.GetWorldVector(this.m_localXAxis1),g=d.m_linearVelocity,b=h.m_linearVelocity;d=d.m_angularVelocity;h=h.m_angularVelocity;return l*-d*c.y+q*d*c.x+(c.x*(b.x+-h*a-g.x- -d*o)+c.y*(b.y+h*n-g.y-d*j))};H.prototype.IsLimitEnabled=function(){return this.m_enableLimit};
+H.prototype.EnableLimit=function(d){this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_enableLimit=d};H.prototype.GetLowerLimit=function(){return this.m_lowerTranslation};H.prototype.GetUpperLimit=function(){return this.m_upperTranslation};H.prototype.SetLimits=function(d,h){if(d===undefined)d=0;if(h===undefined)h=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_lowerTranslation=d;this.m_upperTranslation=h};H.prototype.IsMotorEnabled=function(){return this.m_enableMotor};
+H.prototype.EnableMotor=function(d){this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_enableMotor=d};H.prototype.SetMotorSpeed=function(d){if(d===undefined)d=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_motorSpeed=d};H.prototype.GetMotorSpeed=function(){return this.m_motorSpeed};H.prototype.SetMaxMotorForce=function(d){if(d===undefined)d=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_maxMotorForce=d};H.prototype.GetMotorForce=function(){return this.m_motorImpulse};
+H.prototype.b2PrismaticJoint=function(d){this.__super.b2Joint.call(this,d);this.m_localAnchor1.SetV(d.localAnchorA);this.m_localAnchor2.SetV(d.localAnchorB);this.m_localXAxis1.SetV(d.localAxisA);this.m_localYAxis1.x=-this.m_localXAxis1.y;this.m_localYAxis1.y=this.m_localXAxis1.x;this.m_refAngle=d.referenceAngle;this.m_impulse.SetZero();this.m_motorImpulse=this.m_motorMass=0;this.m_lowerTranslation=d.lowerTranslation;this.m_upperTranslation=d.upperTranslation;this.m_maxMotorForce=d.maxMotorForce;this.m_motorSpeed=
+d.motorSpeed;this.m_enableLimit=d.enableLimit;this.m_enableMotor=d.enableMotor;this.m_limitState=I.e_inactiveLimit;this.m_axis.SetZero();this.m_perp.SetZero()};H.prototype.InitVelocityConstraints=function(d){var h=this.m_bodyA,l=this.m_bodyB,j,o=0;this.m_localCenterA.SetV(h.GetLocalCenter());this.m_localCenterB.SetV(l.GetLocalCenter());var q=h.GetTransform();l.GetTransform();j=h.m_xf.R;var n=this.m_localAnchor1.x-this.m_localCenterA.x,a=this.m_localAnchor1.y-this.m_localCenterA.y;o=j.col1.x*n+j.col2.x*
+a;a=j.col1.y*n+j.col2.y*a;n=o;j=l.m_xf.R;var c=this.m_localAnchor2.x-this.m_localCenterB.x,g=this.m_localAnchor2.y-this.m_localCenterB.y;o=j.col1.x*c+j.col2.x*g;g=j.col1.y*c+j.col2.y*g;c=o;j=l.m_sweep.c.x+c-h.m_sweep.c.x-n;o=l.m_sweep.c.y+g-h.m_sweep.c.y-a;this.m_invMassA=h.m_invMass;this.m_invMassB=l.m_invMass;this.m_invIA=h.m_invI;this.m_invIB=l.m_invI;this.m_axis.SetV(y.MulMV(q.R,this.m_localXAxis1));this.m_a1=(j+n)*this.m_axis.y-(o+a)*this.m_axis.x;this.m_a2=c*this.m_axis.y-g*this.m_axis.x;this.m_motorMass=
+this.m_invMassA+this.m_invMassB+this.m_invIA*this.m_a1*this.m_a1+this.m_invIB*this.m_a2*this.m_a2;if(this.m_motorMass>Number.MIN_VALUE)this.m_motorMass=1/this.m_motorMass;this.m_perp.SetV(y.MulMV(q.R,this.m_localYAxis1));this.m_s1=(j+n)*this.m_perp.y-(o+a)*this.m_perp.x;this.m_s2=c*this.m_perp.y-g*this.m_perp.x;q=this.m_invMassA;n=this.m_invMassB;a=this.m_invIA;c=this.m_invIB;this.m_K.col1.x=q+n+a*this.m_s1*this.m_s1+c*this.m_s2*this.m_s2;this.m_K.col1.y=a*this.m_s1+c*this.m_s2;this.m_K.col1.z=a*
+this.m_s1*this.m_a1+c*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=a+c;this.m_K.col2.z=a*this.m_a1+c*this.m_a2;this.m_K.col3.x=this.m_K.col1.z;this.m_K.col3.y=this.m_K.col2.z;this.m_K.col3.z=q+n+a*this.m_a1*this.m_a1+c*this.m_a2*this.m_a2;if(this.m_enableLimit){j=this.m_axis.x*j+this.m_axis.y*o;if(y.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*F.b2_linearSlop)this.m_limitState=I.e_equalLimits;else if(j<=this.m_lowerTranslation){if(this.m_limitState!=I.e_atLowerLimit){this.m_limitState=
+I.e_atLowerLimit;this.m_impulse.z=0}}else if(j>=this.m_upperTranslation){if(this.m_limitState!=I.e_atUpperLimit){this.m_limitState=I.e_atUpperLimit;this.m_impulse.z=0}}else{this.m_limitState=I.e_inactiveLimit;this.m_impulse.z=0}}else this.m_limitState=I.e_inactiveLimit;if(this.m_enableMotor==false)this.m_motorImpulse=0;if(d.warmStarting){this.m_impulse.x*=d.dtRatio;this.m_impulse.y*=d.dtRatio;this.m_motorImpulse*=d.dtRatio;d=this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.x;
+j=this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.y;o=this.m_impulse.x*this.m_s1+this.m_impulse.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_a1;q=this.m_impulse.x*this.m_s2+this.m_impulse.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_a2;h.m_linearVelocity.x-=this.m_invMassA*d;h.m_linearVelocity.y-=this.m_invMassA*j;h.m_angularVelocity-=this.m_invIA*o;l.m_linearVelocity.x+=this.m_invMassB*d;l.m_linearVelocity.y+=this.m_invMassB*j;l.m_angularVelocity+=this.m_invIB*
+q}else{this.m_impulse.SetZero();this.m_motorImpulse=0}};H.prototype.SolveVelocityConstraints=function(d){var h=this.m_bodyA,l=this.m_bodyB,j=h.m_linearVelocity,o=h.m_angularVelocity,q=l.m_linearVelocity,n=l.m_angularVelocity,a=0,c=0,g=0,b=0;if(this.m_enableMotor&&this.m_limitState!=I.e_equalLimits){b=this.m_motorMass*(this.m_motorSpeed-(this.m_axis.x*(q.x-j.x)+this.m_axis.y*(q.y-j.y)+this.m_a2*n-this.m_a1*o));a=this.m_motorImpulse;d=d.dt*this.m_maxMotorForce;this.m_motorImpulse=y.Clamp(this.m_motorImpulse+
+b,-d,d);b=this.m_motorImpulse-a;a=b*this.m_axis.x;c=b*this.m_axis.y;g=b*this.m_a1;b=b*this.m_a2;j.x-=this.m_invMassA*a;j.y-=this.m_invMassA*c;o-=this.m_invIA*g;q.x+=this.m_invMassB*a;q.y+=this.m_invMassB*c;n+=this.m_invIB*b}g=this.m_perp.x*(q.x-j.x)+this.m_perp.y*(q.y-j.y)+this.m_s2*n-this.m_s1*o;c=n-o;if(this.m_enableLimit&&this.m_limitState!=I.e_inactiveLimit){d=this.m_axis.x*(q.x-j.x)+this.m_axis.y*(q.y-j.y)+this.m_a2*n-this.m_a1*o;a=this.m_impulse.Copy();d=this.m_K.Solve33(new A,-g,-c,-d);this.m_impulse.Add(d);
+if(this.m_limitState==I.e_atLowerLimit)this.m_impulse.z=y.Max(this.m_impulse.z,0);else if(this.m_limitState==I.e_atUpperLimit)this.m_impulse.z=y.Min(this.m_impulse.z,0);g=-g-(this.m_impulse.z-a.z)*this.m_K.col3.x;c=-c-(this.m_impulse.z-a.z)*this.m_K.col3.y;c=this.m_K.Solve22(new w,g,c);c.x+=a.x;c.y+=a.y;this.m_impulse.x=c.x;this.m_impulse.y=c.y;d.x=this.m_impulse.x-a.x;d.y=this.m_impulse.y-a.y;d.z=this.m_impulse.z-a.z;a=d.x*this.m_perp.x+d.z*this.m_axis.x;c=d.x*this.m_perp.y+d.z*this.m_axis.y;g=d.x*
+this.m_s1+d.y+d.z*this.m_a1;b=d.x*this.m_s2+d.y+d.z*this.m_a2}else{d=this.m_K.Solve22(new w,-g,-c);this.m_impulse.x+=d.x;this.m_impulse.y+=d.y;a=d.x*this.m_perp.x;c=d.x*this.m_perp.y;g=d.x*this.m_s1+d.y;b=d.x*this.m_s2+d.y}j.x-=this.m_invMassA*a;j.y-=this.m_invMassA*c;o-=this.m_invIA*g;q.x+=this.m_invMassB*a;q.y+=this.m_invMassB*c;n+=this.m_invIB*b;h.m_linearVelocity.SetV(j);h.m_angularVelocity=o;l.m_linearVelocity.SetV(q);l.m_angularVelocity=n};H.prototype.SolvePositionConstraints=function(){var d=
+this.m_bodyA,h=this.m_bodyB,l=d.m_sweep.c,j=d.m_sweep.a,o=h.m_sweep.c,q=h.m_sweep.a,n,a=0,c=0,g=0,b=a=n=0,e=0;c=false;var f=0,m=G.FromAngle(j),r=G.FromAngle(q);n=m;e=this.m_localAnchor1.x-this.m_localCenterA.x;var s=this.m_localAnchor1.y-this.m_localCenterA.y;a=n.col1.x*e+n.col2.x*s;s=n.col1.y*e+n.col2.y*s;e=a;n=r;r=this.m_localAnchor2.x-this.m_localCenterB.x;g=this.m_localAnchor2.y-this.m_localCenterB.y;a=n.col1.x*r+n.col2.x*g;g=n.col1.y*r+n.col2.y*g;r=a;n=o.x+r-l.x-e;a=o.y+g-l.y-s;if(this.m_enableLimit){this.m_axis=
+y.MulMV(m,this.m_localXAxis1);this.m_a1=(n+e)*this.m_axis.y-(a+s)*this.m_axis.x;this.m_a2=r*this.m_axis.y-g*this.m_axis.x;var v=this.m_axis.x*n+this.m_axis.y*a;if(y.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*F.b2_linearSlop){f=y.Clamp(v,-F.b2_maxLinearCorrection,F.b2_maxLinearCorrection);b=y.Abs(v);c=true}else if(v<=this.m_lowerTranslation){f=y.Clamp(v-this.m_lowerTranslation+F.b2_linearSlop,-F.b2_maxLinearCorrection,0);b=this.m_lowerTranslation-v;c=true}else if(v>=this.m_upperTranslation){f=
+y.Clamp(v-this.m_upperTranslation+F.b2_linearSlop,0,F.b2_maxLinearCorrection);b=v-this.m_upperTranslation;c=true}}this.m_perp=y.MulMV(m,this.m_localYAxis1);this.m_s1=(n+e)*this.m_perp.y-(a+s)*this.m_perp.x;this.m_s2=r*this.m_perp.y-g*this.m_perp.x;m=new A;s=this.m_perp.x*n+this.m_perp.y*a;r=q-j-this.m_refAngle;b=y.Max(b,y.Abs(s));e=y.Abs(r);if(c){c=this.m_invMassA;g=this.m_invMassB;n=this.m_invIA;a=this.m_invIB;this.m_K.col1.x=c+g+n*this.m_s1*this.m_s1+a*this.m_s2*this.m_s2;this.m_K.col1.y=n*this.m_s1+
+a*this.m_s2;this.m_K.col1.z=n*this.m_s1*this.m_a1+a*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=n+a;this.m_K.col2.z=n*this.m_a1+a*this.m_a2;this.m_K.col3.x=this.m_K.col1.z;this.m_K.col3.y=this.m_K.col2.z;this.m_K.col3.z=c+g+n*this.m_a1*this.m_a1+a*this.m_a2*this.m_a2;this.m_K.Solve33(m,-s,-r,-f)}else{c=this.m_invMassA;g=this.m_invMassB;n=this.m_invIA;a=this.m_invIB;f=n*this.m_s1+a*this.m_s2;v=n+a;this.m_K.col1.Set(c+g+n*this.m_s1*this.m_s1+a*this.m_s2*this.m_s2,f,0);this.m_K.col2.Set(f,
+v,0);f=this.m_K.Solve22(new w,-s,-r);m.x=f.x;m.y=f.y;m.z=0}f=m.x*this.m_perp.x+m.z*this.m_axis.x;c=m.x*this.m_perp.y+m.z*this.m_axis.y;s=m.x*this.m_s1+m.y+m.z*this.m_a1;m=m.x*this.m_s2+m.y+m.z*this.m_a2;l.x-=this.m_invMassA*f;l.y-=this.m_invMassA*c;j-=this.m_invIA*s;o.x+=this.m_invMassB*f;o.y+=this.m_invMassB*c;q+=this.m_invIB*m;d.m_sweep.a=j;h.m_sweep.a=q;d.SynchronizeTransform();h.SynchronizeTransform();return b<=F.b2_linearSlop&&e<=F.b2_angularSlop};Box2D.inherit(O,Box2D.Dynamics.Joints.b2JointDef);
+O.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;O.b2PrismaticJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new w;this.localAnchorB=new w;this.localAxisA=new w};O.prototype.b2PrismaticJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_prismaticJoint;this.localAxisA.Set(1,0);this.referenceAngle=0;this.enableLimit=false;this.upperTranslation=this.lowerTranslation=0;this.enableMotor=false;this.motorSpeed=this.maxMotorForce=
+0};O.prototype.Initialize=function(d,h,l,j){this.bodyA=d;this.bodyB=h;this.localAnchorA=this.bodyA.GetLocalPoint(l);this.localAnchorB=this.bodyB.GetLocalPoint(l);this.localAxisA=this.bodyA.GetLocalVector(j);this.referenceAngle=this.bodyB.GetAngle()-this.bodyA.GetAngle()};Box2D.inherit(E,Box2D.Dynamics.Joints.b2Joint);E.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;E.b2PulleyJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_groundAnchor1=new w;this.m_groundAnchor2=
+new w;this.m_localAnchor1=new w;this.m_localAnchor2=new w;this.m_u1=new w;this.m_u2=new w};E.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};E.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};E.prototype.GetReactionForce=function(d){if(d===undefined)d=0;return new w(d*this.m_impulse*this.m_u2.x,d*this.m_impulse*this.m_u2.y)};E.prototype.GetReactionTorque=function(){return 0};E.prototype.GetGroundAnchorA=function(){var d=
+this.m_ground.m_xf.position.Copy();d.Add(this.m_groundAnchor1);return d};E.prototype.GetGroundAnchorB=function(){var d=this.m_ground.m_xf.position.Copy();d.Add(this.m_groundAnchor2);return d};E.prototype.GetLength1=function(){var d=this.m_bodyA.GetWorldPoint(this.m_localAnchor1),h=d.x-(this.m_ground.m_xf.position.x+this.m_groundAnchor1.x);d=d.y-(this.m_ground.m_xf.position.y+this.m_groundAnchor1.y);return Math.sqrt(h*h+d*d)};E.prototype.GetLength2=function(){var d=this.m_bodyB.GetWorldPoint(this.m_localAnchor2),
+h=d.x-(this.m_ground.m_xf.position.x+this.m_groundAnchor2.x);d=d.y-(this.m_ground.m_xf.position.y+this.m_groundAnchor2.y);return Math.sqrt(h*h+d*d)};E.prototype.GetRatio=function(){return this.m_ratio};E.prototype.b2PulleyJoint=function(d){this.__super.b2Joint.call(this,d);this.m_ground=this.m_bodyA.m_world.m_groundBody;this.m_groundAnchor1.x=d.groundAnchorA.x-this.m_ground.m_xf.position.x;this.m_groundAnchor1.y=d.groundAnchorA.y-this.m_ground.m_xf.position.y;this.m_groundAnchor2.x=d.groundAnchorB.x-
+this.m_ground.m_xf.position.x;this.m_groundAnchor2.y=d.groundAnchorB.y-this.m_ground.m_xf.position.y;this.m_localAnchor1.SetV(d.localAnchorA);this.m_localAnchor2.SetV(d.localAnchorB);this.m_ratio=d.ratio;this.m_constant=d.lengthA+this.m_ratio*d.lengthB;this.m_maxLength1=y.Min(d.maxLengthA,this.m_constant-this.m_ratio*E.b2_minPulleyLength);this.m_maxLength2=y.Min(d.maxLengthB,(this.m_constant-E.b2_minPulleyLength)/this.m_ratio);this.m_limitImpulse2=this.m_limitImpulse1=this.m_impulse=0};E.prototype.InitVelocityConstraints=
+function(d){var h=this.m_bodyA,l=this.m_bodyB,j;j=h.m_xf.R;var o=this.m_localAnchor1.x-h.m_sweep.localCenter.x,q=this.m_localAnchor1.y-h.m_sweep.localCenter.y,n=j.col1.x*o+j.col2.x*q;q=j.col1.y*o+j.col2.y*q;o=n;j=l.m_xf.R;var a=this.m_localAnchor2.x-l.m_sweep.localCenter.x,c=this.m_localAnchor2.y-l.m_sweep.localCenter.y;n=j.col1.x*a+j.col2.x*c;c=j.col1.y*a+j.col2.y*c;a=n;j=l.m_sweep.c.x+a;n=l.m_sweep.c.y+c;var g=this.m_ground.m_xf.position.x+this.m_groundAnchor2.x,b=this.m_ground.m_xf.position.y+
+this.m_groundAnchor2.y;this.m_u1.Set(h.m_sweep.c.x+o-(this.m_ground.m_xf.position.x+this.m_groundAnchor1.x),h.m_sweep.c.y+q-(this.m_ground.m_xf.position.y+this.m_groundAnchor1.y));this.m_u2.Set(j-g,n-b);j=this.m_u1.Length();n=this.m_u2.Length();j>F.b2_linearSlop?this.m_u1.Multiply(1/j):this.m_u1.SetZero();n>F.b2_linearSlop?this.m_u2.Multiply(1/n):this.m_u2.SetZero();if(this.m_constant-j-this.m_ratio*n>0){this.m_state=I.e_inactiveLimit;this.m_impulse=0}else this.m_state=I.e_atUpperLimit;if(j<this.m_maxLength1){this.m_limitState1=
+I.e_inactiveLimit;this.m_limitImpulse1=0}else this.m_limitState1=I.e_atUpperLimit;if(n<this.m_maxLength2){this.m_limitState2=I.e_inactiveLimit;this.m_limitImpulse2=0}else this.m_limitState2=I.e_atUpperLimit;j=o*this.m_u1.y-q*this.m_u1.x;n=a*this.m_u2.y-c*this.m_u2.x;this.m_limitMass1=h.m_invMass+h.m_invI*j*j;this.m_limitMass2=l.m_invMass+l.m_invI*n*n;this.m_pulleyMass=this.m_limitMass1+this.m_ratio*this.m_ratio*this.m_limitMass2;this.m_limitMass1=1/this.m_limitMass1;this.m_limitMass2=1/this.m_limitMass2;
+this.m_pulleyMass=1/this.m_pulleyMass;if(d.warmStarting){this.m_impulse*=d.dtRatio;this.m_limitImpulse1*=d.dtRatio;this.m_limitImpulse2*=d.dtRatio;d=(-this.m_impulse-this.m_limitImpulse1)*this.m_u1.x;j=(-this.m_impulse-this.m_limitImpulse1)*this.m_u1.y;n=(-this.m_ratio*this.m_impulse-this.m_limitImpulse2)*this.m_u2.x;g=(-this.m_ratio*this.m_impulse-this.m_limitImpulse2)*this.m_u2.y;h.m_linearVelocity.x+=h.m_invMass*d;h.m_linearVelocity.y+=h.m_invMass*j;h.m_angularVelocity+=h.m_invI*(o*j-q*d);l.m_linearVelocity.x+=
+l.m_invMass*n;l.m_linearVelocity.y+=l.m_invMass*g;l.m_angularVelocity+=l.m_invI*(a*g-c*n)}else this.m_limitImpulse2=this.m_limitImpulse1=this.m_impulse=0};E.prototype.SolveVelocityConstraints=function(){var d=this.m_bodyA,h=this.m_bodyB,l;l=d.m_xf.R;var j=this.m_localAnchor1.x-d.m_sweep.localCenter.x,o=this.m_localAnchor1.y-d.m_sweep.localCenter.y,q=l.col1.x*j+l.col2.x*o;o=l.col1.y*j+l.col2.y*o;j=q;l=h.m_xf.R;var n=this.m_localAnchor2.x-h.m_sweep.localCenter.x,a=this.m_localAnchor2.y-h.m_sweep.localCenter.y;
+q=l.col1.x*n+l.col2.x*a;a=l.col1.y*n+l.col2.y*a;n=q;var c=q=l=0,g=0;l=g=l=g=c=q=l=0;if(this.m_state==I.e_atUpperLimit){l=d.m_linearVelocity.x+-d.m_angularVelocity*o;q=d.m_linearVelocity.y+d.m_angularVelocity*j;c=h.m_linearVelocity.x+-h.m_angularVelocity*a;g=h.m_linearVelocity.y+h.m_angularVelocity*n;l=-(this.m_u1.x*l+this.m_u1.y*q)-this.m_ratio*(this.m_u2.x*c+this.m_u2.y*g);g=this.m_pulleyMass*-l;l=this.m_impulse;this.m_impulse=y.Max(0,this.m_impulse+g);g=this.m_impulse-l;l=-g*this.m_u1.x;q=-g*this.m_u1.y;
+c=-this.m_ratio*g*this.m_u2.x;g=-this.m_ratio*g*this.m_u2.y;d.m_linearVelocity.x+=d.m_invMass*l;d.m_linearVelocity.y+=d.m_invMass*q;d.m_angularVelocity+=d.m_invI*(j*q-o*l);h.m_linearVelocity.x+=h.m_invMass*c;h.m_linearVelocity.y+=h.m_invMass*g;h.m_angularVelocity+=h.m_invI*(n*g-a*c)}if(this.m_limitState1==I.e_atUpperLimit){l=d.m_linearVelocity.x+-d.m_angularVelocity*o;q=d.m_linearVelocity.y+d.m_angularVelocity*j;l=-(this.m_u1.x*l+this.m_u1.y*q);g=-this.m_limitMass1*l;l=this.m_limitImpulse1;this.m_limitImpulse1=
+y.Max(0,this.m_limitImpulse1+g);g=this.m_limitImpulse1-l;l=-g*this.m_u1.x;q=-g*this.m_u1.y;d.m_linearVelocity.x+=d.m_invMass*l;d.m_linearVelocity.y+=d.m_invMass*q;d.m_angularVelocity+=d.m_invI*(j*q-o*l)}if(this.m_limitState2==I.e_atUpperLimit){c=h.m_linearVelocity.x+-h.m_angularVelocity*a;g=h.m_linearVelocity.y+h.m_angularVelocity*n;l=-(this.m_u2.x*c+this.m_u2.y*g);g=-this.m_limitMass2*l;l=this.m_limitImpulse2;this.m_limitImpulse2=y.Max(0,this.m_limitImpulse2+g);g=this.m_limitImpulse2-l;c=-g*this.m_u2.x;
+g=-g*this.m_u2.y;h.m_linearVelocity.x+=h.m_invMass*c;h.m_linearVelocity.y+=h.m_invMass*g;h.m_angularVelocity+=h.m_invI*(n*g-a*c)}};E.prototype.SolvePositionConstraints=function(){var d=this.m_bodyA,h=this.m_bodyB,l,j=this.m_ground.m_xf.position.x+this.m_groundAnchor1.x,o=this.m_ground.m_xf.position.y+this.m_groundAnchor1.y,q=this.m_ground.m_xf.position.x+this.m_groundAnchor2.x,n=this.m_ground.m_xf.position.y+this.m_groundAnchor2.y,a=0,c=0,g=0,b=0,e=l=0,f=0,m=0,r=e=m=l=e=l=0;if(this.m_state==I.e_atUpperLimit){l=
+d.m_xf.R;a=this.m_localAnchor1.x-d.m_sweep.localCenter.x;c=this.m_localAnchor1.y-d.m_sweep.localCenter.y;e=l.col1.x*a+l.col2.x*c;c=l.col1.y*a+l.col2.y*c;a=e;l=h.m_xf.R;g=this.m_localAnchor2.x-h.m_sweep.localCenter.x;b=this.m_localAnchor2.y-h.m_sweep.localCenter.y;e=l.col1.x*g+l.col2.x*b;b=l.col1.y*g+l.col2.y*b;g=e;l=d.m_sweep.c.x+a;e=d.m_sweep.c.y+c;f=h.m_sweep.c.x+g;m=h.m_sweep.c.y+b;this.m_u1.Set(l-j,e-o);this.m_u2.Set(f-q,m-n);l=this.m_u1.Length();e=this.m_u2.Length();l>F.b2_linearSlop?this.m_u1.Multiply(1/
+l):this.m_u1.SetZero();e>F.b2_linearSlop?this.m_u2.Multiply(1/e):this.m_u2.SetZero();l=this.m_constant-l-this.m_ratio*e;r=y.Max(r,-l);l=y.Clamp(l+F.b2_linearSlop,-F.b2_maxLinearCorrection,0);m=-this.m_pulleyMass*l;l=-m*this.m_u1.x;e=-m*this.m_u1.y;f=-this.m_ratio*m*this.m_u2.x;m=-this.m_ratio*m*this.m_u2.y;d.m_sweep.c.x+=d.m_invMass*l;d.m_sweep.c.y+=d.m_invMass*e;d.m_sweep.a+=d.m_invI*(a*e-c*l);h.m_sweep.c.x+=h.m_invMass*f;h.m_sweep.c.y+=h.m_invMass*m;h.m_sweep.a+=h.m_invI*(g*m-b*f);d.SynchronizeTransform();
+h.SynchronizeTransform()}if(this.m_limitState1==I.e_atUpperLimit){l=d.m_xf.R;a=this.m_localAnchor1.x-d.m_sweep.localCenter.x;c=this.m_localAnchor1.y-d.m_sweep.localCenter.y;e=l.col1.x*a+l.col2.x*c;c=l.col1.y*a+l.col2.y*c;a=e;l=d.m_sweep.c.x+a;e=d.m_sweep.c.y+c;this.m_u1.Set(l-j,e-o);l=this.m_u1.Length();if(l>F.b2_linearSlop){this.m_u1.x*=1/l;this.m_u1.y*=1/l}else this.m_u1.SetZero();l=this.m_maxLength1-l;r=y.Max(r,-l);l=y.Clamp(l+F.b2_linearSlop,-F.b2_maxLinearCorrection,0);m=-this.m_limitMass1*l;
+l=-m*this.m_u1.x;e=-m*this.m_u1.y;d.m_sweep.c.x+=d.m_invMass*l;d.m_sweep.c.y+=d.m_invMass*e;d.m_sweep.a+=d.m_invI*(a*e-c*l);d.SynchronizeTransform()}if(this.m_limitState2==I.e_atUpperLimit){l=h.m_xf.R;g=this.m_localAnchor2.x-h.m_sweep.localCenter.x;b=this.m_localAnchor2.y-h.m_sweep.localCenter.y;e=l.col1.x*g+l.col2.x*b;b=l.col1.y*g+l.col2.y*b;g=e;f=h.m_sweep.c.x+g;m=h.m_sweep.c.y+b;this.m_u2.Set(f-q,m-n);e=this.m_u2.Length();if(e>F.b2_linearSlop){this.m_u2.x*=1/e;this.m_u2.y*=1/e}else this.m_u2.SetZero();
+l=this.m_maxLength2-e;r=y.Max(r,-l);l=y.Clamp(l+F.b2_linearSlop,-F.b2_maxLinearCorrection,0);m=-this.m_limitMass2*l;f=-m*this.m_u2.x;m=-m*this.m_u2.y;h.m_sweep.c.x+=h.m_invMass*f;h.m_sweep.c.y+=h.m_invMass*m;h.m_sweep.a+=h.m_invI*(g*m-b*f);h.SynchronizeTransform()}return r<F.b2_linearSlop};Box2D.postDefs.push(function(){Box2D.Dynamics.Joints.b2PulleyJoint.b2_minPulleyLength=2});Box2D.inherit(R,Box2D.Dynamics.Joints.b2JointDef);R.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;R.b2PulleyJointDef=
+function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.groundAnchorA=new w;this.groundAnchorB=new w;this.localAnchorA=new w;this.localAnchorB=new w};R.prototype.b2PulleyJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_pulleyJoint;this.groundAnchorA.Set(-1,1);this.groundAnchorB.Set(1,1);this.localAnchorA.Set(-1,0);this.localAnchorB.Set(1,0);this.maxLengthB=this.lengthB=this.maxLengthA=this.lengthA=0;this.ratio=1;this.collideConnected=true};R.prototype.Initialize=
+function(d,h,l,j,o,q,n){if(n===undefined)n=0;this.bodyA=d;this.bodyB=h;this.groundAnchorA.SetV(l);this.groundAnchorB.SetV(j);this.localAnchorA=this.bodyA.GetLocalPoint(o);this.localAnchorB=this.bodyB.GetLocalPoint(q);d=o.x-l.x;l=o.y-l.y;this.lengthA=Math.sqrt(d*d+l*l);l=q.x-j.x;j=q.y-j.y;this.lengthB=Math.sqrt(l*l+j*j);this.ratio=n;n=this.lengthA+this.ratio*this.lengthB;this.maxLengthA=n-this.ratio*E.b2_minPulleyLength;this.maxLengthB=(n-E.b2_minPulleyLength)/this.ratio};Box2D.inherit(N,Box2D.Dynamics.Joints.b2Joint);
+N.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;N.b2RevoluteJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.K=new G;this.K1=new G;this.K2=new G;this.K3=new G;this.impulse3=new A;this.impulse2=new w;this.reduced=new w;this.m_localAnchor1=new w;this.m_localAnchor2=new w;this.m_impulse=new A;this.m_mass=new K};N.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};N.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};
+N.prototype.GetReactionForce=function(d){if(d===undefined)d=0;return new w(d*this.m_impulse.x,d*this.m_impulse.y)};N.prototype.GetReactionTorque=function(d){if(d===undefined)d=0;return d*this.m_impulse.z};N.prototype.GetJointAngle=function(){return this.m_bodyB.m_sweep.a-this.m_bodyA.m_sweep.a-this.m_referenceAngle};N.prototype.GetJointSpeed=function(){return this.m_bodyB.m_angularVelocity-this.m_bodyA.m_angularVelocity};N.prototype.IsLimitEnabled=function(){return this.m_enableLimit};N.prototype.EnableLimit=
+function(d){this.m_enableLimit=d};N.prototype.GetLowerLimit=function(){return this.m_lowerAngle};N.prototype.GetUpperLimit=function(){return this.m_upperAngle};N.prototype.SetLimits=function(d,h){if(d===undefined)d=0;if(h===undefined)h=0;this.m_lowerAngle=d;this.m_upperAngle=h};N.prototype.IsMotorEnabled=function(){this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);return this.m_enableMotor};N.prototype.EnableMotor=function(d){this.m_enableMotor=d};N.prototype.SetMotorSpeed=function(d){if(d===
+undefined)d=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_motorSpeed=d};N.prototype.GetMotorSpeed=function(){return this.m_motorSpeed};N.prototype.SetMaxMotorTorque=function(d){if(d===undefined)d=0;this.m_maxMotorTorque=d};N.prototype.GetMotorTorque=function(){return this.m_maxMotorTorque};N.prototype.b2RevoluteJoint=function(d){this.__super.b2Joint.call(this,d);this.m_localAnchor1.SetV(d.localAnchorA);this.m_localAnchor2.SetV(d.localAnchorB);this.m_referenceAngle=d.referenceAngle;
+this.m_impulse.SetZero();this.m_motorImpulse=0;this.m_lowerAngle=d.lowerAngle;this.m_upperAngle=d.upperAngle;this.m_maxMotorTorque=d.maxMotorTorque;this.m_motorSpeed=d.motorSpeed;this.m_enableLimit=d.enableLimit;this.m_enableMotor=d.enableMotor;this.m_limitState=I.e_inactiveLimit};N.prototype.InitVelocityConstraints=function(d){var h=this.m_bodyA,l=this.m_bodyB,j,o=0;j=h.m_xf.R;var q=this.m_localAnchor1.x-h.m_sweep.localCenter.x,n=this.m_localAnchor1.y-h.m_sweep.localCenter.y;o=j.col1.x*q+j.col2.x*
+n;n=j.col1.y*q+j.col2.y*n;q=o;j=l.m_xf.R;var a=this.m_localAnchor2.x-l.m_sweep.localCenter.x,c=this.m_localAnchor2.y-l.m_sweep.localCenter.y;o=j.col1.x*a+j.col2.x*c;c=j.col1.y*a+j.col2.y*c;a=o;j=h.m_invMass;o=l.m_invMass;var g=h.m_invI,b=l.m_invI;this.m_mass.col1.x=j+o+n*n*g+c*c*b;this.m_mass.col2.x=-n*q*g-c*a*b;this.m_mass.col3.x=-n*g-c*b;this.m_mass.col1.y=this.m_mass.col2.x;this.m_mass.col2.y=j+o+q*q*g+a*a*b;this.m_mass.col3.y=q*g+a*b;this.m_mass.col1.z=this.m_mass.col3.x;this.m_mass.col2.z=this.m_mass.col3.y;
+this.m_mass.col3.z=g+b;this.m_motorMass=1/(g+b);if(this.m_enableMotor==false)this.m_motorImpulse=0;if(this.m_enableLimit){var e=l.m_sweep.a-h.m_sweep.a-this.m_referenceAngle;if(y.Abs(this.m_upperAngle-this.m_lowerAngle)<2*F.b2_angularSlop)this.m_limitState=I.e_equalLimits;else if(e<=this.m_lowerAngle){if(this.m_limitState!=I.e_atLowerLimit)this.m_impulse.z=0;this.m_limitState=I.e_atLowerLimit}else if(e>=this.m_upperAngle){if(this.m_limitState!=I.e_atUpperLimit)this.m_impulse.z=0;this.m_limitState=
+I.e_atUpperLimit}else{this.m_limitState=I.e_inactiveLimit;this.m_impulse.z=0}}else this.m_limitState=I.e_inactiveLimit;if(d.warmStarting){this.m_impulse.x*=d.dtRatio;this.m_impulse.y*=d.dtRatio;this.m_motorImpulse*=d.dtRatio;d=this.m_impulse.x;e=this.m_impulse.y;h.m_linearVelocity.x-=j*d;h.m_linearVelocity.y-=j*e;h.m_angularVelocity-=g*(q*e-n*d+this.m_motorImpulse+this.m_impulse.z);l.m_linearVelocity.x+=o*d;l.m_linearVelocity.y+=o*e;l.m_angularVelocity+=b*(a*e-c*d+this.m_motorImpulse+this.m_impulse.z)}else{this.m_impulse.SetZero();
+this.m_motorImpulse=0}};N.prototype.SolveVelocityConstraints=function(d){var h=this.m_bodyA,l=this.m_bodyB,j=0,o=j=0,q=0,n=0,a=0,c=h.m_linearVelocity,g=h.m_angularVelocity,b=l.m_linearVelocity,e=l.m_angularVelocity,f=h.m_invMass,m=l.m_invMass,r=h.m_invI,s=l.m_invI;if(this.m_enableMotor&&this.m_limitState!=I.e_equalLimits){o=this.m_motorMass*-(e-g-this.m_motorSpeed);q=this.m_motorImpulse;n=d.dt*this.m_maxMotorTorque;this.m_motorImpulse=y.Clamp(this.m_motorImpulse+o,-n,n);o=this.m_motorImpulse-q;g-=
+r*o;e+=s*o}if(this.m_enableLimit&&this.m_limitState!=I.e_inactiveLimit){d=h.m_xf.R;o=this.m_localAnchor1.x-h.m_sweep.localCenter.x;q=this.m_localAnchor1.y-h.m_sweep.localCenter.y;j=d.col1.x*o+d.col2.x*q;q=d.col1.y*o+d.col2.y*q;o=j;d=l.m_xf.R;n=this.m_localAnchor2.x-l.m_sweep.localCenter.x;a=this.m_localAnchor2.y-l.m_sweep.localCenter.y;j=d.col1.x*n+d.col2.x*a;a=d.col1.y*n+d.col2.y*a;n=j;d=b.x+-e*a-c.x- -g*q;var v=b.y+e*n-c.y-g*o;this.m_mass.Solve33(this.impulse3,-d,-v,-(e-g));if(this.m_limitState==
+I.e_equalLimits)this.m_impulse.Add(this.impulse3);else if(this.m_limitState==I.e_atLowerLimit){j=this.m_impulse.z+this.impulse3.z;if(j<0){this.m_mass.Solve22(this.reduced,-d,-v);this.impulse3.x=this.reduced.x;this.impulse3.y=this.reduced.y;this.impulse3.z=-this.m_impulse.z;this.m_impulse.x+=this.reduced.x;this.m_impulse.y+=this.reduced.y;this.m_impulse.z=0}}else if(this.m_limitState==I.e_atUpperLimit){j=this.m_impulse.z+this.impulse3.z;if(j>0){this.m_mass.Solve22(this.reduced,-d,-v);this.impulse3.x=
+this.reduced.x;this.impulse3.y=this.reduced.y;this.impulse3.z=-this.m_impulse.z;this.m_impulse.x+=this.reduced.x;this.m_impulse.y+=this.reduced.y;this.m_impulse.z=0}}c.x-=f*this.impulse3.x;c.y-=f*this.impulse3.y;g-=r*(o*this.impulse3.y-q*this.impulse3.x+this.impulse3.z);b.x+=m*this.impulse3.x;b.y+=m*this.impulse3.y;e+=s*(n*this.impulse3.y-a*this.impulse3.x+this.impulse3.z)}else{d=h.m_xf.R;o=this.m_localAnchor1.x-h.m_sweep.localCenter.x;q=this.m_localAnchor1.y-h.m_sweep.localCenter.y;j=d.col1.x*o+
+d.col2.x*q;q=d.col1.y*o+d.col2.y*q;o=j;d=l.m_xf.R;n=this.m_localAnchor2.x-l.m_sweep.localCenter.x;a=this.m_localAnchor2.y-l.m_sweep.localCenter.y;j=d.col1.x*n+d.col2.x*a;a=d.col1.y*n+d.col2.y*a;n=j;this.m_mass.Solve22(this.impulse2,-(b.x+-e*a-c.x- -g*q),-(b.y+e*n-c.y-g*o));this.m_impulse.x+=this.impulse2.x;this.m_impulse.y+=this.impulse2.y;c.x-=f*this.impulse2.x;c.y-=f*this.impulse2.y;g-=r*(o*this.impulse2.y-q*this.impulse2.x);b.x+=m*this.impulse2.x;b.y+=m*this.impulse2.y;e+=s*(n*this.impulse2.y-
+a*this.impulse2.x)}h.m_linearVelocity.SetV(c);h.m_angularVelocity=g;l.m_linearVelocity.SetV(b);l.m_angularVelocity=e};N.prototype.SolvePositionConstraints=function(){var d=0,h,l=this.m_bodyA,j=this.m_bodyB,o=0,q=h=0,n=0,a=0;if(this.m_enableLimit&&this.m_limitState!=I.e_inactiveLimit){d=j.m_sweep.a-l.m_sweep.a-this.m_referenceAngle;var c=0;if(this.m_limitState==I.e_equalLimits){d=y.Clamp(d-this.m_lowerAngle,-F.b2_maxAngularCorrection,F.b2_maxAngularCorrection);c=-this.m_motorMass*d;o=y.Abs(d)}else if(this.m_limitState==
+I.e_atLowerLimit){d=d-this.m_lowerAngle;o=-d;d=y.Clamp(d+F.b2_angularSlop,-F.b2_maxAngularCorrection,0);c=-this.m_motorMass*d}else if(this.m_limitState==I.e_atUpperLimit){o=d=d-this.m_upperAngle;d=y.Clamp(d-F.b2_angularSlop,0,F.b2_maxAngularCorrection);c=-this.m_motorMass*d}l.m_sweep.a-=l.m_invI*c;j.m_sweep.a+=j.m_invI*c;l.SynchronizeTransform();j.SynchronizeTransform()}h=l.m_xf.R;c=this.m_localAnchor1.x-l.m_sweep.localCenter.x;d=this.m_localAnchor1.y-l.m_sweep.localCenter.y;q=h.col1.x*c+h.col2.x*
+d;d=h.col1.y*c+h.col2.y*d;c=q;h=j.m_xf.R;var g=this.m_localAnchor2.x-j.m_sweep.localCenter.x,b=this.m_localAnchor2.y-j.m_sweep.localCenter.y;q=h.col1.x*g+h.col2.x*b;b=h.col1.y*g+h.col2.y*b;g=q;n=j.m_sweep.c.x+g-l.m_sweep.c.x-c;a=j.m_sweep.c.y+b-l.m_sweep.c.y-d;var e=n*n+a*a;h=Math.sqrt(e);q=l.m_invMass;var f=j.m_invMass,m=l.m_invI,r=j.m_invI,s=10*F.b2_linearSlop;if(e>s*s){e=1/(q+f);n=e*-n;a=e*-a;l.m_sweep.c.x-=0.5*q*n;l.m_sweep.c.y-=0.5*q*a;j.m_sweep.c.x+=0.5*f*n;j.m_sweep.c.y+=0.5*f*a;n=j.m_sweep.c.x+
+g-l.m_sweep.c.x-c;a=j.m_sweep.c.y+b-l.m_sweep.c.y-d}this.K1.col1.x=q+f;this.K1.col2.x=0;this.K1.col1.y=0;this.K1.col2.y=q+f;this.K2.col1.x=m*d*d;this.K2.col2.x=-m*c*d;this.K2.col1.y=-m*c*d;this.K2.col2.y=m*c*c;this.K3.col1.x=r*b*b;this.K3.col2.x=-r*g*b;this.K3.col1.y=-r*g*b;this.K3.col2.y=r*g*g;this.K.SetM(this.K1);this.K.AddM(this.K2);this.K.AddM(this.K3);this.K.Solve(N.tImpulse,-n,-a);n=N.tImpulse.x;a=N.tImpulse.y;l.m_sweep.c.x-=l.m_invMass*n;l.m_sweep.c.y-=l.m_invMass*a;l.m_sweep.a-=l.m_invI*(c*
+a-d*n);j.m_sweep.c.x+=j.m_invMass*n;j.m_sweep.c.y+=j.m_invMass*a;j.m_sweep.a+=j.m_invI*(g*a-b*n);l.SynchronizeTransform();j.SynchronizeTransform();return h<=F.b2_linearSlop&&o<=F.b2_angularSlop};Box2D.postDefs.push(function(){Box2D.Dynamics.Joints.b2RevoluteJoint.tImpulse=new w});Box2D.inherit(S,Box2D.Dynamics.Joints.b2JointDef);S.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;S.b2RevoluteJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=
+new w;this.localAnchorB=new w};S.prototype.b2RevoluteJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_revoluteJoint;this.localAnchorA.Set(0,0);this.localAnchorB.Set(0,0);this.motorSpeed=this.maxMotorTorque=this.upperAngle=this.lowerAngle=this.referenceAngle=0;this.enableMotor=this.enableLimit=false};S.prototype.Initialize=function(d,h,l){this.bodyA=d;this.bodyB=h;this.localAnchorA=this.bodyA.GetLocalPoint(l);this.localAnchorB=this.bodyB.GetLocalPoint(l);this.referenceAngle=this.bodyB.GetAngle()-
+this.bodyA.GetAngle()};Box2D.inherit(aa,Box2D.Dynamics.Joints.b2Joint);aa.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;aa.b2WeldJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchorA=new w;this.m_localAnchorB=new w;this.m_impulse=new A;this.m_mass=new K};aa.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA)};aa.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB)};aa.prototype.GetReactionForce=
+function(d){if(d===undefined)d=0;return new w(d*this.m_impulse.x,d*this.m_impulse.y)};aa.prototype.GetReactionTorque=function(d){if(d===undefined)d=0;return d*this.m_impulse.z};aa.prototype.b2WeldJoint=function(d){this.__super.b2Joint.call(this,d);this.m_localAnchorA.SetV(d.localAnchorA);this.m_localAnchorB.SetV(d.localAnchorB);this.m_referenceAngle=d.referenceAngle;this.m_impulse.SetZero();this.m_mass=new K};aa.prototype.InitVelocityConstraints=function(d){var h,l=0,j=this.m_bodyA,o=this.m_bodyB;
+h=j.m_xf.R;var q=this.m_localAnchorA.x-j.m_sweep.localCenter.x,n=this.m_localAnchorA.y-j.m_sweep.localCenter.y;l=h.col1.x*q+h.col2.x*n;n=h.col1.y*q+h.col2.y*n;q=l;h=o.m_xf.R;var a=this.m_localAnchorB.x-o.m_sweep.localCenter.x,c=this.m_localAnchorB.y-o.m_sweep.localCenter.y;l=h.col1.x*a+h.col2.x*c;c=h.col1.y*a+h.col2.y*c;a=l;h=j.m_invMass;l=o.m_invMass;var g=j.m_invI,b=o.m_invI;this.m_mass.col1.x=h+l+n*n*g+c*c*b;this.m_mass.col2.x=-n*q*g-c*a*b;this.m_mass.col3.x=-n*g-c*b;this.m_mass.col1.y=this.m_mass.col2.x;
+this.m_mass.col2.y=h+l+q*q*g+a*a*b;this.m_mass.col3.y=q*g+a*b;this.m_mass.col1.z=this.m_mass.col3.x;this.m_mass.col2.z=this.m_mass.col3.y;this.m_mass.col3.z=g+b;if(d.warmStarting){this.m_impulse.x*=d.dtRatio;this.m_impulse.y*=d.dtRatio;this.m_impulse.z*=d.dtRatio;j.m_linearVelocity.x-=h*this.m_impulse.x;j.m_linearVelocity.y-=h*this.m_impulse.y;j.m_angularVelocity-=g*(q*this.m_impulse.y-n*this.m_impulse.x+this.m_impulse.z);o.m_linearVelocity.x+=l*this.m_impulse.x;o.m_linearVelocity.y+=l*this.m_impulse.y;
+o.m_angularVelocity+=b*(a*this.m_impulse.y-c*this.m_impulse.x+this.m_impulse.z)}else this.m_impulse.SetZero()};aa.prototype.SolveVelocityConstraints=function(){var d,h=0,l=this.m_bodyA,j=this.m_bodyB,o=l.m_linearVelocity,q=l.m_angularVelocity,n=j.m_linearVelocity,a=j.m_angularVelocity,c=l.m_invMass,g=j.m_invMass,b=l.m_invI,e=j.m_invI;d=l.m_xf.R;var f=this.m_localAnchorA.x-l.m_sweep.localCenter.x,m=this.m_localAnchorA.y-l.m_sweep.localCenter.y;h=d.col1.x*f+d.col2.x*m;m=d.col1.y*f+d.col2.y*m;f=h;d=
+j.m_xf.R;var r=this.m_localAnchorB.x-j.m_sweep.localCenter.x,s=this.m_localAnchorB.y-j.m_sweep.localCenter.y;h=d.col1.x*r+d.col2.x*s;s=d.col1.y*r+d.col2.y*s;r=h;d=n.x-a*s-o.x+q*m;h=n.y+a*r-o.y-q*f;var v=a-q,t=new A;this.m_mass.Solve33(t,-d,-h,-v);this.m_impulse.Add(t);o.x-=c*t.x;o.y-=c*t.y;q-=b*(f*t.y-m*t.x+t.z);n.x+=g*t.x;n.y+=g*t.y;a+=e*(r*t.y-s*t.x+t.z);l.m_angularVelocity=q;j.m_angularVelocity=a};aa.prototype.SolvePositionConstraints=function(){var d,h=0,l=this.m_bodyA,j=this.m_bodyB;d=l.m_xf.R;
+var o=this.m_localAnchorA.x-l.m_sweep.localCenter.x,q=this.m_localAnchorA.y-l.m_sweep.localCenter.y;h=d.col1.x*o+d.col2.x*q;q=d.col1.y*o+d.col2.y*q;o=h;d=j.m_xf.R;var n=this.m_localAnchorB.x-j.m_sweep.localCenter.x,a=this.m_localAnchorB.y-j.m_sweep.localCenter.y;h=d.col1.x*n+d.col2.x*a;a=d.col1.y*n+d.col2.y*a;n=h;d=l.m_invMass;h=j.m_invMass;var c=l.m_invI,g=j.m_invI,b=j.m_sweep.c.x+n-l.m_sweep.c.x-o,e=j.m_sweep.c.y+a-l.m_sweep.c.y-q,f=j.m_sweep.a-l.m_sweep.a-this.m_referenceAngle,m=10*F.b2_linearSlop,
+r=Math.sqrt(b*b+e*e),s=y.Abs(f);if(r>m){c*=1;g*=1}this.m_mass.col1.x=d+h+q*q*c+a*a*g;this.m_mass.col2.x=-q*o*c-a*n*g;this.m_mass.col3.x=-q*c-a*g;this.m_mass.col1.y=this.m_mass.col2.x;this.m_mass.col2.y=d+h+o*o*c+n*n*g;this.m_mass.col3.y=o*c+n*g;this.m_mass.col1.z=this.m_mass.col3.x;this.m_mass.col2.z=this.m_mass.col3.y;this.m_mass.col3.z=c+g;m=new A;this.m_mass.Solve33(m,-b,-e,-f);l.m_sweep.c.x-=d*m.x;l.m_sweep.c.y-=d*m.y;l.m_sweep.a-=c*(o*m.y-q*m.x+m.z);j.m_sweep.c.x+=h*m.x;j.m_sweep.c.y+=h*m.y;
+j.m_sweep.a+=g*(n*m.y-a*m.x+m.z);l.SynchronizeTransform();j.SynchronizeTransform();return r<=F.b2_linearSlop&&s<=F.b2_angularSlop};Box2D.inherit(Z,Box2D.Dynamics.Joints.b2JointDef);Z.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;Z.b2WeldJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new w;this.localAnchorB=new w};Z.prototype.b2WeldJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_weldJoint;this.referenceAngle=
+0};Z.prototype.Initialize=function(d,h,l){this.bodyA=d;this.bodyB=h;this.localAnchorA.SetV(this.bodyA.GetLocalPoint(l));this.localAnchorB.SetV(this.bodyB.GetLocalPoint(l));this.referenceAngle=this.bodyB.GetAngle()-this.bodyA.GetAngle()}})();
+(function(){var F=Box2D.Dynamics.b2DebugDraw;F.b2DebugDraw=function(){this.m_xformScale=this.m_fillAlpha=this.m_alpha=this.m_lineThickness=this.m_drawScale=1;var G=this;this.m_sprite={graphics:{clear:function(){G.m_ctx.clearRect(0,0,G.m_ctx.canvas.width,G.m_ctx.canvas.height)}}}};F.prototype._color=function(G,K){return"rgba("+((G&16711680)>>16)+","+((G&65280)>>8)+","+(G&255)+","+K+")"};F.prototype.b2DebugDraw=function(){this.m_drawFlags=0};F.prototype.SetFlags=function(G){if(G===undefined)G=0;this.m_drawFlags=
+G};F.prototype.GetFlags=function(){return this.m_drawFlags};F.prototype.AppendFlags=function(G){if(G===undefined)G=0;this.m_drawFlags|=G};F.prototype.ClearFlags=function(G){if(G===undefined)G=0;this.m_drawFlags&=~G};F.prototype.SetSprite=function(G){this.m_ctx=G};F.prototype.GetSprite=function(){return this.m_ctx};F.prototype.SetDrawScale=function(G){if(G===undefined)G=0;this.m_drawScale=G};F.prototype.GetDrawScale=function(){return this.m_drawScale};F.prototype.SetLineThickness=function(G){if(G===
+undefined)G=0;this.m_lineThickness=G;this.m_ctx.strokeWidth=G};F.prototype.GetLineThickness=function(){return this.m_lineThickness};F.prototype.SetAlpha=function(G){if(G===undefined)G=0;this.m_alpha=G};F.prototype.GetAlpha=function(){return this.m_alpha};F.prototype.SetFillAlpha=function(G){if(G===undefined)G=0;this.m_fillAlpha=G};F.prototype.GetFillAlpha=function(){return this.m_fillAlpha};F.prototype.SetXFormScale=function(G){if(G===undefined)G=0;this.m_xformScale=G};F.prototype.GetXFormScale=function(){return this.m_xformScale};
+F.prototype.DrawPolygon=function(G,K,y){if(K){var w=this.m_ctx,A=this.m_drawScale;w.beginPath();w.strokeStyle=this._color(y.color,this.m_alpha);w.moveTo(G[0].x*A,G[0].y*A);for(y=1;y<K;y++)w.lineTo(G[y].x*A,G[y].y*A);w.lineTo(G[0].x*A,G[0].y*A);w.closePath();w.stroke()}};F.prototype.DrawSolidPolygon=function(G,K,y){if(K){var w=this.m_ctx,A=this.m_drawScale;w.beginPath();w.strokeStyle=this._color(y.color,this.m_alpha);w.fillStyle=this._color(y.color,this.m_fillAlpha);w.moveTo(G[0].x*A,G[0].y*A);for(y=
+1;y<K;y++)w.lineTo(G[y].x*A,G[y].y*A);w.lineTo(G[0].x*A,G[0].y*A);w.closePath();w.fill();w.stroke()}};F.prototype.DrawCircle=function(G,K,y){if(K){var w=this.m_ctx,A=this.m_drawScale;w.beginPath();w.strokeStyle=this._color(y.color,this.m_alpha);w.arc(G.x*A,G.y*A,K*A,0,Math.PI*2,true);w.closePath();w.stroke()}};F.prototype.DrawSolidCircle=function(G,K,y,w){if(K){var A=this.m_ctx,U=this.m_drawScale,p=G.x*U,B=G.y*U;A.moveTo(0,0);A.beginPath();A.strokeStyle=this._color(w.color,this.m_alpha);A.fillStyle=
+this._color(w.color,this.m_fillAlpha);A.arc(p,B,K*U,0,Math.PI*2,true);A.moveTo(p,B);A.lineTo((G.x+y.x*K)*U,(G.y+y.y*K)*U);A.closePath();A.fill();A.stroke()}};F.prototype.DrawSegment=function(G,K,y){var w=this.m_ctx,A=this.m_drawScale;w.strokeStyle=this._color(y.color,this.m_alpha);w.beginPath();w.moveTo(G.x*A,G.y*A);w.lineTo(K.x*A,K.y*A);w.closePath();w.stroke()};F.prototype.DrawTransform=function(G){var K=this.m_ctx,y=this.m_drawScale;K.beginPath();K.strokeStyle=this._color(16711680,this.m_alpha);
+K.moveTo(G.position.x*y,G.position.y*y);K.lineTo((G.position.x+this.m_xformScale*G.R.col1.x)*y,(G.position.y+this.m_xformScale*G.R.col1.y)*y);K.strokeStyle=this._color(65280,this.m_alpha);K.moveTo(G.position.x*y,G.position.y*y);K.lineTo((G.position.x+this.m_xformScale*G.R.col2.x)*y,(G.position.y+this.m_xformScale*G.R.col2.y)*y);K.closePath();K.stroke()}})();var i;for(i=0;i<Box2D.postDefs.length;++i)Box2D.postDefs[i]();delete Box2D.postDefs;
+
+// Copyright 2012 the V8 project authors. All rights reserved.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+function MakeNewWorld () {
+  var Vec2 = Box2D.Common.Math.b2Vec2,
+      BodyDef = Box2D.Dynamics.b2BodyDef,
+      Body = Box2D.Dynamics.b2Body,
+      FixtureDef = Box2D.Dynamics.b2FixtureDef,
+      Fixture = Box2D.Dynamics.b2Fixture,
+      World = Box2D.Dynamics.b2World,
+      MassData = Box2D.Collision.Shapes.b2MassData,
+      PolygonShape = Box2D.Collision.Shapes.b2PolygonShape,
+      CircleShape = Box2D.Collision.Shapes.b2CircleShape;
+
+  var gravity = new Vec2(0, -10);
+  var world = new World(gravity, true);
+
+  var shape = new PolygonShape();
+  shape.SetAsEdge(new Vec2(-40.0, 0), new Vec2(40.0, 0));
+
+  var fd = new FixtureDef();
+  fd.density = 0.0;
+  fd.shape = shape;
+  var bd = new BodyDef();
+  var ground = world.CreateBody(bd);
+  ground.CreateFixture(fd);
+
+  var a = .5;
+  var shape = new PolygonShape();
+  shape.SetAsBox(a, a);
+
+  var x = new Vec2(-7.0, 0.75);
+  var y = new Vec2();
+  var deltaX = new Vec2(0.5625, 1);
+  var deltaY = new Vec2(1.125, 0.0);
+
+  for (var i = 0; i < 10; ++i) {
+    y.Set(x.x, x.y);
+
+    for (var j = 0; j < 5; ++j) {
+      var fd = new FixtureDef();
+      fd.density = 5.0;
+      fd.shape = shape;
+
+      var bd = new BodyDef();
+      bd.type = Body.b2_dynamicBody;
+      bd.position.Set(y.x, y.y);
+      var body = world.CreateBody(bd);
+      body.CreateFixture(fd);
+      y.Add(deltaY);
+    }
+
+    x.Add(deltaX);
+  }
+
+  return world;
+}
+
+var world = null;
+
+var Box2DBenchmark = new BenchmarkSuite('Box2D', 4559000,
+                                        [new Benchmark('Box2D',
+                                                       runBox2D,
+                                                       setupBox2D,
+                                                       tearDownBox2D,
+                                                       8)]);
+
+function runBox2D() {
+  var world = MakeNewWorld();
+  for (var i = 0; i < 20; i++) {
+    world.Step(1 / 60, 10, 3);
+  }
+}
+
+function setupBox2D() {
+}
+
+function tearDownBox2D() {
+  world = null;
+  Box2D = null;
+}
+
+
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/code-load.js b/suite/pts/deviceTests/browserbench/assets/octane/code-load.js
new file mode 100644
index 0000000..24d7df1
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/code-load.js
@@ -0,0 +1,1531 @@
+// Copyright 2012 the Octane Benchmark project authors. 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.
+//     * Neither the name of Google Inc. 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 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.
+
+
+// The code in BASE_JS below:
+// Copyright 2012 The Closure Library Authors. All Rights Reserved.
+//
+// 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.
+
+
+// The code in JQUERY_JS below:
+// Copyright (c) 2012 John Resig, http://jquery.com/
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+var CodeLoad = new BenchmarkSuite('CodeLoad', 450000, [
+  new Benchmark('CodeLoadClosure',
+                runCodeLoadClosure,
+                setupCodeLoad,
+                tearDownCodeLoad,
+                16),
+  new Benchmark('CodeLoadJQuery',
+                runCodeLoadJQuery,
+                setupCodeLoad,
+                tearDownCodeLoad,
+                16)
+]);
+
+var salt;
+var indirectEval;
+
+function setupCodeLoad() {
+  salt = 0;
+  indirectEval = eval;
+}
+
+function tearDownCodeLoad() {
+  salt = null;
+  indirectEval = null;
+}
+
+function runCodeLoadClosure() {
+  runClosure();
+  salt++;
+}
+
+function runCodeLoadJQuery() {
+  runJQuery();
+  salt++;
+}
+
+/*
+ * BASE_JS is a compiled and formatted version of:
+ * http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/base.js
+ * JQUERY_JS is a formatted copy of:
+ * http://code.jquery.com/jquery.min.js
+ * The following Python script generates both variables:
+
+#!/usr/bin/env python
+
+import urllib
+import urllib2
+
+def escape_and_format(data, varname):
+  data = data.replace("\n", " ").replace("; ", ";")
+  data = data.replace("\\", "\\\\").replace("\"", "\\\"")
+  data = "var " + varname + " = \"" + data + "\""
+  while len(data) > 0:
+    cutoff = min(79, len(data))
+    while data[cutoff-1] == '\\':
+      cutoff -= 1
+    line = data[0:cutoff]
+    data = data[cutoff:]
+    if len(data) > 0:
+      line += '\\'
+    print line
+
+url = "http://closure-compiler.appspot.com/compile"
+request_params = {"output_format": "text",
+                  "compilation_level": "SIMPLE_OPTIMIZATIONS",
+                  "use_closure_library": "true",
+                  "js_code": "",
+                  "output_info": "compiled_code"}
+result = urllib2.urlopen(url, urllib.urlencode(request_params))
+escape_and_format(result.read(), "BASE_JS")
+
+print "\n\n"
+
+url = "http://code.jquery.com/jquery.min.js"
+result = urllib2.urlopen(url)
+escape_and_format(result.read(), "JQUERY_JS")
+
+*/
+var BASE_JS = "var COMPILED=!0,goog=goog||{};goog.global=this;goog.DEBUG=!0;goo\
+g.LOCALE=\"en\";goog.provide=function(a){if(!COMPILED){if(goog.isProvided_(a))t\
+hrow Error('Namespace \"'+a+'\" already declared.');delete goog.implicitNamespa\
+ces_[a];for(var b=a;(b=b.substring(0,b.lastIndexOf(\".\")))&&!goog.getObjectByN\
+ame(b);)goog.implicitNamespaces_[b]=!0}goog.exportPath_(a)};goog.setTestOnly=fu\
+nction(a){if(COMPILED&&!goog.DEBUG)throw a=a||\"\",Error(\"Importing test-only \
+code into non-debug environment\"+a?\": \"+a:\".\");};COMPILED||(goog.isProvide\
+d_=function(a){return!goog.implicitNamespaces_[a]&&!!goog.getObjectByName(a)},g\
+oog.implicitNamespaces_={});goog.exportPath_=function(a,b,c){a=a.split(\".\");c\
+=c||goog.global;!(a[0]in c)&&c.execScript&&c.execScript(\"var \"+a[0]);for(var \
+d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]?c[d]:c[d]={}}\
+;goog.getObjectByName=function(a,b){for(var c=a.split(\".\"),d=b||goog.global,e\
+;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};g\
+oog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]};goog.a\
+ddDependency=function(a,b,c){if(!COMPILED){for(var d,a=a.replace(/\\\\/g,\"/\")\
+,e=goog.dependencies_,g=0;d=b[g];g++){e.nameToPath[d]=a;a in e.pathToNames||(e.\
+pathToNames[a]={});e.pathToNames[a][d]=true}for(d=0;b=c[d];d++){a in e.requires\
+||(e.requires[a]={});e.requires[a][b]=true}}};goog.ENABLE_DEBUG_LOADER=!0;goog.\
+require=function(a){if(!COMPILED&&!goog.isProvided_(a)){if(goog.ENABLE_DEBUG_LO\
+ADER){var b=goog.getPathFromDeps_(a);if(b){goog.included_[b]=true;goog.writeScr\
+ipts_();return}}a=\"goog.require could not find: \"+a;goog.global.console&&goog\
+.global.console.error(a);throw Error(a);}};goog.basePath=\"\";goog.nullFunction\
+=function(){};goog.identityFunction=function(a){return a};goog.abstractMethod=f\
+unction(){throw Error(\"unimplemented abstract method\");};goog.addSingletonGet\
+ter=function(a){a.getInstance=function(){return a.instance_||(a.instance_=new a\
+)}};!COMPILED&&goog.ENABLE_DEBUG_LOADER&&(goog.included_={},goog.dependencies_=\
+{pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDoc\
+ument_=function(){var a=goog.global.document;return typeof a!=\"undefined\"&&\"\
+write\"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goo\
+g.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var\
+ a=goog.global.document.getElementsByTagName(\"script\"),b=a.length-1;b>=0;--b)\
+{var c=a[b].src,d=c.lastIndexOf(\"?\"), d=d==-1?c.length:d;if(c.substr(d-7,7)==\
+\"base.js\"){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function\
+(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.depende\
+ncies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=true)},goog.writeScript\
+Tag_=function(a){if(goog.inHtmlDocument_()){goog.global.document.write('<script\
+ type=\"text/javascript\" src=\"'+a+'\"><\\/script>');return true}return false}\
+,goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.\
+visited)){d.visited[e]=true;if(e in d.requires)for(var f in d.requires[e])if(!g\
+oog.isProvided_(f))if(f in d.nameToPath)a(d.nameToPath[f]);else throw Error(\"U\
+ndefined nameToPath for \"+f);}if(!(e in c)){c[e]=true;b.push(e)}}}var b=[],c={\
+},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e<b\
+.length;e++)if(b[e])goog.importScript_(goog.basePath+b[e]);else throw Error(\"U\
+ndefined script input\");},goog.getPathFromDeps_=function(a){return a in goog.d\
+ependencies_.nameToPath?goog.dependencies_.nameToPath[a]: null},goog.findBasePa\
+th_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+\"deps.js\"\
+));goog.typeOf=function(a){var b=typeof a;if(b==\"object\")if(a){if(a instanceo\
+f Array)return\"array\";if(a instanceof Object)return b;var c=Object.prototype.\
+toString.call(a);if(c==\"[object Window]\")return\"object\";if(c==\"[object Arr\
+ay]\"||typeof a.length==\"number\"&&typeof a.splice!=\"undefined\"&&typeof a.pr\
+opertyIsEnumerable!=\"undefined\"&&!a.propertyIsEnumerable(\"splice\"))return\"\
+array\";if(c==\"[object Function]\"||typeof a.call!=\"undefined\"&&typeof a.pro\
+pertyIsEnumerable!=\"undefined\"&&!a.propertyIsEnumerable(\"call\"))return\"fun\
+ction\"}else return\"null\";else if(b==\"function\"&&typeof a.call==\"undefined\
+\")return\"object\";return b};goog.isDef=function(a){return a!==void 0};goog.is\
+Null=function(a){return a===null};goog.isDefAndNotNull=function(a){return a!=nu\
+ll};goog.isArray=function(a){return goog.typeOf(a)==\"array\"};goog.isArrayLike\
+=function(a){var b=goog.typeOf(a);return b==\"array\"||b==\"object\"&&typeof a.\
+length==\"number\"};goog.isDateLike=function(a){return goog.isObject(a)&&typeof\
+ a.getFullYear==\"function\"};goog.isString=function(a){return typeof a==\"stri\
+ng\"};goog.isBoolean=function(a){return typeof a==\"boolean\"};goog.isNumber=fu\
+nction(a){return typeof a==\"number\"};goog.isFunction=function(a){return goog.\
+typeOf(a)==\"function\"};goog.isObject=function(a){var b=typeof a;return b==\"o\
+bject\"&&a!=null||b==\"function\"};goog.getUid=function(a){return a[goog.UID_PR\
+OPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.removeUid=function(a\
+){\"removeAttribute\"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[g\
+oog.UID_PROPERTY_]}catch(b){}};goog.UID_PROPERTY_=\"closure_uid_\"+Math.floor(2\
+147483648*Math.random()).toString(36);goog.uidCounter_=0;goog.getHashCode=goog.\
+getUid;goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=go\
+og.typeOf(a);if(b==\"object\"||b==\"array\"){if(a.clone)return a.clone();var b=\
+b==\"array\"?[]:{},c;for(c in a)b[c]=goog.cloneObject(a[c]);return b}return a};\
+goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};goog.bi\
+ndJs_=function(a,b,c){if(!a)throw Error();if(arguments.length>2){var d=Array.pr\
+ototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.c\
+all(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return f\
+unction(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){goog.bind=Fun\
+ction.prototype.bind&&Function.prototype.bind.toString().indexOf(\"native code\
+\")!=-1?goog.bindNative_:goog.bindJs_;return goog.bind.apply(null,arguments)};g\
+oog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return \
+function(){var b=Array.prototype.slice.call(arguments);b.unshift.apply(b,c);ret\
+urn a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.n\
+ow=Date.now||function(){return+new Date};goog.globalEval=function(a){if(goog.gl\
+obal.execScript)goog.global.execScript(a,\"JavaScript\");else if(goog.global.ev\
+al){if(goog.evalWorksForGlobals_==null){goog.global.eval(\"var _et_ = 1;\");if(\
+typeof goog.global._et_!=\"undefined\"){delete goog.global._et_;goog.evalWorksF\
+orGlobals_=true}else goog.evalWorksForGlobals_=false}if(goog.evalWorksForGlobal\
+s_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement(\"scri\
+pt\");c.type=\"text/javascript\";c.defer=false;c.appendChild(b.createTextNode(a\
+));b.body.appendChild(c);b.body.removeChild(c)}}else throw Error(\"goog.globalE\
+val not available\");};goog.evalWorksForGlobals_=null;goog.getCssName=function(\
+a,b){var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){for(var\
+ a=a.split(\"-\"),b=[],d=0;d<a.length;d++)b.push(c(a[d]));return b.join(\"-\")}\
+,d=goog.cssNameMapping_?goog.cssNameMappingStyle_==\"BY_WHOLE\"?c:d:function(a)\
+{return a};return b?a+\"-\"+d(b):d(a)};goog.setCssNameMapping=function(a,b){goo\
+g.cssNameMapping_=a;goog.cssNameMappingStyle_=b};!COMPILED&&goog.global.CLOSURE\
+_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING);\
+goog.getMsg=function(a,b){var c=b||{},d;for(d in c)var e=(\"\"+c[d]).replace(/\
+\\$/g,\"$$$$\"),a=a.replace(RegExp(\"\\\\{\\\\$\"+d+\"\\\\}\",\"gi\"),e);return\
+ a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};goog.exportPrope\
+rty=function(a,b,c){a[b]=c};goog.inherits=function(a,b){function c(){}c.prototy\
+pe=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.construc\
+tor=a};goog.base=function(a,b,c){var d=arguments.callee.caller;if(d.superClass_\
+)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,\
+1));for(var e=Array.prototype.slice.call(arguments,2),g=false,f=a.constructor;f\
+;f=f.superClass_&&f.superClass_.constructor)if(f.prototype[b]===d)g=true;else i\
+f(g)return f.prototype[b].apply(a,e);if(a[b]===d)return a.constructor.prototype\
+[b].apply(a,e);throw Error(\"goog.base called from a method of one name to a me\
+thod of a different name\");};goog.scope=function(a){a.call(goog.global)};"
+
+var JQUERY_JS = "/*! jQuery v1.7.2 jquery.com | jquery.org/license */ (function\
+(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.par\
+entWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f(\"<\"+a+\">\").appendTo\
+(b),e=d.css(\"display\");d.remove();if(e===\"none\"||e===\"\"){ck||(ck=c.create\
+Element(\"iframe\"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!\
+cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.wri\
+te((f.support.boxModel?\"<!doctype html>\":\"\")+\"<html><body>\"),cl.close();d\
+=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,\"display\"),b.removeChil\
+d(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],\
+cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr()\
+{setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObjec\
+t(\"Microsoft.XMLHTTP\")}catch(b){}}function ch(){try{return new a.XMLHttpReque\
+st}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var\
+ d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1\
+)for(h in a.converters)typeof h==\"string\"&&(e[h.toLowerCase()]=a.converters[h\
+]);l=k,k=d[g];if(k===\"*\")k=l;else if(l!==\"*\"&&l!==k){m=l+\" \"+k,n=e[m]||e[\
+\"* \"+k];if(!n){p=b;for(o in e){j=o.split(\" \");if(j[0]===l||j[0]===\"*\"){p=\
+e[j[1]+\" \"+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error(\
+\"No conversion from \"+m.replace(\" \",\" to \")),n!==!0&&(c=n?n(c):p(o(c)))}}\
+return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h\
+,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]===\"*\")f.shift(),h===b&&(h\
+=a.mimeType||c.getResponseHeader(\"content-type\"));if(h)for(i in e)if(e[i]&&e[\
+i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.\
+converters[i+\" \"+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j\
+);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||b\
+D.test(a)?d(a,e):b_(a+\"[\"+(typeof e==\"object\"?b:\"\")+\"]\",e,c,d)});else i\
+f(!c&&f.type(b)===\"object\")for(var e in b)b_(a+\"[\"+e+\"]\",b[e],c,d);else d\
+(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]\
+!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g)\
+{f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;f\
+or(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==\"string\"&&(!k||g[l]?l=b:(c.dataT\
+ypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g[\"*\"]&&(l=bZ(a,c,d,e,\"*\",g))\
+;return l}function bY(a){return function(b,c){typeof b!=\"string\"&&(c=b,b=\"*\
+\");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;fo\
+r(;e<g;e++)h=d[e],j=/^\\+/.test(h),j&&(h=h.substr(1)||\"*\"),i=a[h]=a[h]||[],i[\
+j?\"unshift\":\"push\"](c)}}}function bB(a,b,c){var d=b===\"width\"?a.offsetWid\
+th:a.offsetHeight,e=b===\"width\"?1:0,g=4;if(d>0){if(c!==\"border\")for(;e<g;e+\
+=2)c||(d-=parseFloat(f.css(a,\"padding\"+bx[e]))||0),c===\"margin\"?d+=parseFlo\
+at(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,\"border\"+bx[e]+\"Width\"))||0;r\
+eturn d+\"px\"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=\
+parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,\"padding\"+bx[e]))||\
+0,c!==\"padding\"&&(d+=parseFloat(f.css(a,\"border\"+bx[e]+\"Width\"))||0),c===\
+\"margin\"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+\"px\"}function bo(a)\
+{var b=c.createElement(\"div\");bh.appendChild(b),b.innerHTML=a.outerHTML;retur\
+n b.firstChild}function bn(a){var b=(a.nodeName||\"\").toLowerCase();b===\"inpu\
+t\"?bm(a):b!==\"script\"&&typeof a.getElementsByTagName!=\"undefined\"&&f.grep(\
+a.getElementsByTagName(\"input\"),bm)}function bm(a){if(a.type===\"checkbox\"||\
+a.type===\"radio\")a.defaultChecked=a.checked}function bl(a){return typeof a.ge\
+tElementsByTagName!=\"undefined\"?a.getElementsByTagName(\"*\"):typeof a.queryS\
+electorAll!=\"undefined\"?a.querySelectorAll(\"*\"):[]}function bk(a,b){var c;b\
+.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mer\
+geAttributes(a),c=b.nodeName.toLowerCase(),c===\"object\"?b.outerHTML=a.outerHT\
+ML:c!==\"input\"||a.type!==\"checkbox\"&&a.type!==\"radio\"?c===\"option\"?b.se\
+lected=a.defaultSelected:c===\"input\"||c===\"textarea\"?b.defaultValue=a.defau\
+ltValue:c===\"script\"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.default\
+Checked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttr\
+ibute(f.expando),b.removeAttribute(\"_submit_attached\"),b.removeAttribute(\"_c\
+hange_attached\"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,\
+e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(\
+c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f\
+.extend({},h.data))}}function bi(a,b){return f.nodeName(a,\"table\")?a.getEleme\
+ntsByTagName(\"tbody\")[0]||a.appendChild(a.ownerDocument.createElement(\"tbody\
+\")):a}function U(a){var b=V.split(\"|\"),c=a.createDocumentFragment();if(c.cre\
+ateElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b\
+=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);re\
+turn e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(\
+typeof b==\"string\"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.t\
+est(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){re\
+turn f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNod\
+e.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){v\
+ar d=b+\"defer\",e=b+\"queue\",g=b+\"mark\",h=f._data(a,d);h&&(c===\"queue\"||!\
+f._data(a,e))&&(c===\"mark\"||!f._data(a,g))&&setTimeout(function(){!f._data(a,\
+e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b \
+in a){if(b===\"data\"&&f.isEmptyObject(a[b]))continue;if(b!==\"toJSON\")return!\
+1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e=\"data-\"+c.replac\
+e(k,\"-$1\").toLowerCase();d=a.getAttribute(e);if(typeof d==\"string\"){try{d=d\
+===\"true\"?!0:d===\"false\"?!1:d===\"null\"?null:f.isNumeric(d)?+d:j.test(d)?f\
+.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g\
+[a]={},c,d;a=a.split(/\\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var\
+ c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isRead\
+y){try{c.documentElement.doScroll(\"left\")}catch(a){setTimeout(J,1);return}e.r\
+eady()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/\
+^(?:[^#<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]*)$)/,j=/\\S/,k=/^\\s+/,l=/\\s+$/,m=/^<\
+(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,n=/^[\\],:{}\\s]*$/,o=/\\\\(?:[\"\\\\\\/bfnrt]|u\
+[0-9a-fA-F]{4})/g,p=/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:\
+[eE][+\\-]?\\d+)?/g,q=/(?:^|:|,)(?:\\s*\\[)+/g,r=/(webkit)[ \\/]([\\w.]+)/,s=/(\
+opera)(?:.*version)?[ \\/]([\\w.]+)/,t=/(msie) ([\\w.]+)/,u=/(mozilla)(?:.*? rv\
+:([\\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+\"\").toU\
+pperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.\
+hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototyp\
+e.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:func\
+tion(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a\
+,this.length=1;return this}if(a===\"body\"&&!d&&c.body){this.context=c,this[0]=\
+c.body,this.selector=a,this.length=1;return this}if(typeof a==\"string\"){a.cha\
+rAt(0)!==\"<\"||a.charAt(a.length-1)!==\">\"||a.length<3?g=i.exec(a):g=[null,a,\
+null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d\
+:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a\
+,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable\
+?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElem\
+entById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1\
+,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f)\
+.find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.sel\
+ector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray\
+(a,this)},selector:\"\",jquery:\"1.7.2\",length:0,size:function(){return this.l\
+ength},toArray:function(){return F.call(this,0)},get:function(a){return a==null\
+?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var \
+d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d\
+.context=this.context,b===\"find\"?d.selector=this.selector+(this.selector?\" \
+\":\"\")+c:b&&(d.selector=this.selector+\".\"+b+\"(\"+c+\")\");return d},each:f\
+unction(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);\
+return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)}\
+,first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:\
+function(){return this.pushStack(F.apply(this,arguments),\"slice\",F.call(argum\
+ents).join(\",\"))},map:function(a){return this.pushStack(e.map(this,function(b\
+,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constr\
+uctor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.e\
+xtend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments\
+.length,l=!1;typeof i==\"boolean\"&&(l=i,i=arguments[1]||{},j=2),typeof i!=\"ob\
+ject\"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=argumen\
+ts[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject\
+(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)\
+?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:func\
+tion(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,rea\
+dyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){i\
+f(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.re\
+ady,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.tr\
+igger&&e(c).trigger(\"ready\").off(\"ready\")}},bindReady:function(){if(!A){A=e\
+.Callbacks(\"once memory\");if(c.readyState===\"complete\")return setTimeout(e.\
+ready,1);if(c.addEventListener)c.addEventListener(\"DOMContentLoaded\",B,!1),a.\
+addEventListener(\"load\",e.ready,!1);else if(c.attachEvent){c.attachEvent(\"on\
+readystatechange\",B),a.attachEvent(\"onload\",e.ready);var b=!1;try{b=a.frameE\
+lement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:functio\
+n(a){return e.type(a)===\"function\"},isArray:Array.isArray||function(a){return\
+ e.type(a)===\"array\"},isWindow:function(a){return a!=null&&a==a.window},isNum\
+eric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){ret\
+urn a==null?String(a):I[C.call(a)]||\"object\"},isPlainObject:function(a){if(!a\
+||e.type(a)!==\"object\"||a.nodeType||e.isWindow(a))return!1;try{if(a.construct\
+or&&!D.call(a,\"constructor\")&&!D.call(a.constructor.prototype,\"isPrototypeOf\
+\"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isE\
+mptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){thro\
+w new Error(a)},parseJSON:function(b){if(typeof b!=\"string\"||!b)return null;b\
+=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o\
+,\"@\").replace(p,\"]\").replace(q,\"\")))return(new Function(\"return \"+b))()\
+;e.error(\"Invalid JSON: \"+b)},parseXML:function(c){if(typeof c!=\"string\"||!\
+c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,\"\
+text/xml\")):(d=new ActiveXObject(\"Microsoft.XMLDOM\"),d.async=\"false\",d.loa\
+dXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName(\"parsere\
+rror\").length)&&e.error(\"Invalid XML: \"+c);return d},noop:function(){},globa\
+lEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b\
+)},camelCase:function(a){return a.replace(w,\"ms-\").replace(v,x)},nodeName:fun\
+ction(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:\
+function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f\
+ in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)br\
+eak}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c\
+.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?\"\
+\":G.call(a)}:function(a){return a==null?\"\":(a+\"\").replace(k,\"\").replace(\
+l,\"\")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.leng\
+th==null||d===\"string\"||d===\"function\"||d===\"regexp\"||e.isWindow(a)?E.cal\
+l(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H\
+.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c\
+]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.len\
+gth==\"number\")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d+\
++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=\
+0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a\
+,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j==\"number\"\
+&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=n\
+ull&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);ret\
+urn h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c==\"string\"){v\
+ar d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=func\
+tion(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.g\
+uid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.\
+length;if(d&&typeof d==\"object\"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}el\
+se if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.cal\
+l(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(\
+a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(n\
+ew Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.ex\
+ec(a)||t.exec(a)||a.indexOf(\"compatible\")<0&&u.exec(a)||[];return{browser:b[1\
+]||\"\",version:b[2]||\"0\"}},sub:function(){function a(b,c){return new a.fn.in\
+it(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.cons\
+tructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanc\
+eof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;va\
+r b=a(c);return a},browser:{}}),e.each(\"Boolean Number String Function Array D\
+ate RegExp Object\".split(\" \"),function(a,b){I[\"[object \"+b+\"]\"]=b.toLowe\
+rCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=\
+z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(\" \")&&(k=/^[\\s\\x\
+A0]+/,l=/[\\s\\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventLis\
+tener(\"DOMContentLoaded\",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.read\
+yState===\"complete\"&&(c.detachEvent(\"onreadystatechange\",B),e.ready())});re\
+turn e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,\
+l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h\
+===\"array\"?n(g):h===\"function\"&&(!a.unique||!p.has(g))&&c.push(g)},o=functi\
+on(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;\
+m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p\
+.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:funct\
+ion(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1\
+]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<\
+e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.spl\
+ice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.le\
+ngth;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return t\
+his},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock\
+:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return\
+!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));r\
+eturn this},fire:function(){p.fireWith(this,arguments);return this},fired:funct\
+ion(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b\
+=f.Callbacks(\"once memory\"),c=f.Callbacks(\"once memory\"),d=f.Callbacks(\"me\
+mory\"),e=\"pending\",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,\
+progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired\
+,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:functio\
+n(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:functio\
+n(a,b,c){return f.Deferred(function(d){f.each({done:[a,\"resolve\"],fail:[b,\"r\
+eject\"],progress:[c,\"notify\"]},function(a,b){var c=b[0],e=b[1],g;f.isFunctio\
+n(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.pro\
+mise().then(d.resolve,d.reject,d.notify):d[e+\"With\"](this===i?d:this,[g])}):i\
+[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h\
+)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+\"With\"]\
+=g[j].fireWith;i.done(function(){e=\"resolved\"},c.disable,d.lock).fail(functio\
+n(){e=\"rejected\"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a)\
+{function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b\
+,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.\
+call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.\
+length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j\
+.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?\
+b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j\
+.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l\
+,m,n,o,p=c.createElement(\"div\"),q=c.documentElement;p.setAttribute(\"classNam\
+e\",\"t\"),p.innerHTML=\"   <link/><table></table><a href='/a' style='top:1px;f\
+loat:left;opacity:.55;'>a</a><input type='checkbox'/>\",d=p.getElementsByTagNam\
+e(\"*\"),e=p.getElementsByTagName(\"a\")[0];if(!d||!d.length||!e)return{};g=c.c\
+reateElement(\"select\"),h=g.appendChild(c.createElement(\"option\")),i=p.getEl\
+ementsByTagName(\"input\")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tb\
+ody:!p.getElementsByTagName(\"tbody\").length,htmlSerialize:!!p.getElementsByTa\
+gName(\"link\").length,style:/top/.test(e.getAttribute(\"style\")),hrefNormaliz\
+ed:e.getAttribute(\"href\")===\"/a\",opacity:/^0.55/.test(e.style.opacity),cssF\
+loat:!!e.style.cssFloat,checkOn:i.value===\"on\",optSelected:h.selected,getSetA\
+ttribute:p.className!==\"t\",enctype:!!c.createElement(\"form\").enctype,html5C\
+lone:c.createElement(\"nav\").cloneNode(!0).outerHTML!==\"<:nav></:nav>\",submi\
+tBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0\
+,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMarg\
+in:!0},f.boxModel=b.boxModel=c.compatMode===\"CSS1Compat\",i.checked=!0,b.noClo\
+neChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{d\
+elete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.\
+fireEvent&&(p.attachEvent(\"onclick\",function(){b.noCloneEvent=!1}),p.cloneNod\
+e(!0).fireEvent(\"onclick\")),i=c.createElement(\"input\"),i.value=\"t\",i.setA\
+ttribute(\"type\",\"radio\"),b.radioValue=i.value===\"t\",i.setAttribute(\"chec\
+ked\",\"checked\"),i.setAttribute(\"name\",\"t\"),p.appendChild(i),j=c.createDo\
+cumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneN\
+ode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendCh\
+ild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m=\"on\"+n,o=m in\
+ p,o||(p.setAttribute(m,\"return;\"),o=typeof p[m]==\"function\"),b[n+\"Bubbles\
+\"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,\
+t,u=c.getElementsByTagName(\"body\")[0];!u||(m=1,t=\"padding:0;margin:0;border:\
+\",r=\"position:absolute;top:0;left:0;width:1px;height:1px;\",s=t+\"0;visibilit\
+y:hidden;\",n=\"style='\"+r+t+\"5px solid #000;\",q=\"<div \"+n+\"display:block\
+;'><div style='\"+t+\"0;display:block;overflow:hidden;'></div></div>\"+\"<table\
+ \"+n+\"' cellpadding='0' cellspacing='0'>\"+\"<tr><td></td></tr></table>\",d=c\
+.createElement(\"div\"),d.style.cssText=s+\"width:0;height:0;position:static;to\
+p:0;margin-top:\"+m+\"px\",u.insertBefore(d,u.firstChild),p=c.createElement(\"d\
+iv\"),d.appendChild(p),p.innerHTML=\"<table><tr><td style='\"+t+\"0;display:non\
+e'></td><td>t</td></tr></table>\",k=p.getElementsByTagName(\"td\"),o=k[0].offse\
+tHeight===0,k[0].style.display=\"\",k[1].style.display=\"none\",b.reliableHidde\
+nOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML=\"\",l=c.cre\
+ateElement(\"div\"),l.style.width=\"0\",l.style.marginRight=\"0\",p.style.width\
+=\"2px\",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l\
+,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!=\"undefi\
+ned\"&&(p.innerHTML=\"\",p.style.width=p.style.padding=\"1px\",p.style.border=0\
+,p.style.overflow=\"hidden\",p.style.display=\"inline\",p.style.zoom=1,b.inline\
+BlockNeedsLayout=p.offsetWidth===3,p.style.display=\"block\",p.style.overflow=\
+\"visible\",p.innerHTML=\"<div style='width:5px;'></div>\",b.shrinkWrapBlocks=p\
+.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChi\
+ld,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,do\
+esAddBorderForTableAndCells:i.offsetTop===5},g.style.position=\"fixed\",g.style\
+.top=\"20px\",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.positi\
+on=g.style.top=\"\",e.style.overflow=\"hidden\",e.style.position=\"relative\",j\
+.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginIn\
+BodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop=\"1%\",b.pixe\
+lMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!==\"1%\"),typeof \
+d.style.zoom!=\"undefined\"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.ext\
+end(b,j))});return b}();var j=/^(?:\\{.*\\}|\\[.*\\])$/,k=/([A-Z])/g;f.extend({\
+cache:{},uuid:0,expando:\"jQuery\"+(f.fn.jquery+Math.random()).replace(/\\D/g,\
+\"\"),noData:{embed:!0,object:\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\",ap\
+plet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];re\
+turn!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expa\
+ndo,k=typeof c==\"string\",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c===\"\
+events\";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.u\
+uid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c==\"object\"||typeo\
+f c==\"function\")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m\
+[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])\
+return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},remove\
+Data:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j\
+=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArra\
+y(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(\" \")));for(e=0,g\
+=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){de\
+lete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delet\
+e j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.re\
+moveAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},ac\
+ceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if\
+(b)return b!==!0&&a.getAttribute(\"classid\")===b}return!0}}),f.fn.extend({data\
+:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f\
+.data(j);if(j.nodeType===1&&!f._data(j,\"parsedAttrs\")){g=j.attributes;for(i=g\
+.length;k<i;k++)h=g[k].name,h.indexOf(\"data-\")===0&&(h=f.camelCase(h.substrin\
+g(5)),l(j,h,m[h]));f._data(j,\"parsedAttrs\",!0)}}return m}if(typeof a==\"objec\
+t\")return this.each(function(){f.data(this,a)});d=a.split(\".\",2),d[1]=d[1]?\
+\".\"+d[1]:\"\",e=d[1]+\"!\";return f.access(this,function(c){if(c===b){m=this.\
+triggerHandler(\"getData\"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));retur\
+n m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.tri\
+ggerHandler(\"setData\"+e,d),f.data(this,a,c),b.triggerHandler(\"changeData\"+e\
+,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.e\
+ach(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b\
+||\"fx\")+\"mark\",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a\
+!==!0&&(c=b,b=a,a=!1);if(b){c=c||\"fx\";var d=c+\"mark\",e=a?0:(f._data(b,d)||1\
+)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,\"mark\"))}},queue:function(a,\
+b,c){var d;if(a){b=(b||\"fx\")+\"queue\",d=f._data(a,b),c&&(!d||f.isArray(c)?d=\
+f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b\
+||\"fx\";var c=f.queue(a,b),d=c.shift(),e={};d===\"inprogress\"&&(d=c.shift()),\
+d&&(b===\"fx\"&&c.unshift(\"inprogress\"),f._data(a,b+\".run\",e),d.call(a,func\
+tion(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+\"queue \"+b+\".run\",!0\
+),n(a,b,\"queue\"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!=\"str\
+ing\"&&(c=a,a=\"fx\",d--);if(arguments.length<d)return f.queue(this[0],a);retur\
+n c===b?this:this.each(function(){var b=f.queue(this,a,c);a===\"fx\"&&b[0]!==\"\
+inprogress\"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(functio\
+n(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||\"\
+fx\";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){\
+clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||\"fx\",[])},pro\
+mise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!=\"string\"&\
+&(c=a,a=b),a=a||\"fx\";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+\"defer\",j\
+=a+\"queue\",k=a+\"mark\",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,\
+b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks(\"once memory\"),!0))h++\
+,l.add(m);m();return d.promise(c)}});var o=/[\\n\\t\\r]/g,p=/\\s+/,q=/\\r/g,r=/\
+^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea\
+)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|lo\
+op|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttrib\
+ute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,argum\
+ents.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr\
+(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length\
+>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{t\
+his[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if\
+(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,th\
+is.className))});if(a&&typeof a==\"string\"){b=a.split(p);for(c=0,d=this.length\
+;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className\
+=a;else{g=\" \"+e.className+\" \";for(h=0,i=b.length;h<i;h++)~g.indexOf(\" \"+b\
+[h]+\" \")||(g+=b[h]+\" \");e.className=f.trim(g)}}}return this},removeClass:fu\
+nction(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(t\
+his).removeClass(a.call(this,b,this.className))});if(a&&typeof a==\"string\"||a\
+===b){c=(a||\"\").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeTy\
+pe===1&&g.className)if(a){h=(\" \"+g.className+\" \").replace(o,\" \");for(i=0,\
+j=c.length;i<j;i++)h=h.replace(\" \"+c[i]+\" \",\" \");g.className=f.trim(h)}el\
+se g.className=\"\"}}return this},toggleClass:function(a,b){var c=typeof a,d=ty\
+peof b==\"boolean\";if(f.isFunction(a))return this.each(function(c){f(this).tog\
+gleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c=\
+==\"string\"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasC\
+lass(e),h[i?\"addClass\":\"removeClass\"](e)}else if(c===\"undefined\"||c===\"b\
+oolean\")this.className&&f._data(this,\"__className__\",this.className),this.cl\
+assName=this.className||a===!1?\"\":f._data(this,\"__className__\")||\"\"})},ha\
+sClass:function(a){var b=\" \"+a+\" \",c=0,d=this.length;for(;c<d;c++)if(this[c\
+].nodeType===1&&(\" \"+this[c].className+\" \").replace(o,\" \").indexOf(b)>-1)\
+return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){\
+e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType\
+===1){e?h=a.call(this,d,g.val()):h=a,h==null?h=\"\":typeof h==\"number\"?h+=\"\
+\":f.isArray(h)&&(h=f.map(h,function(a){return a==null?\"\":a+\"\"})),c=f.valHo\
+oks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!(\"set\"in c)||\
+c.set(this,h,\"value\")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHo\
+oks[g.nodeName.toLowerCase()];if(c&&\"get\"in c&&(d=c.get(g,\"value\"))!==b)ret\
+urn d;d=g.value;return typeof d==\"string\"?d.replace(q,\"\"):d==null?\"\":d}}}\
+}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!\
+b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selecte\
+dIndex,h=[],i=a.options,j=a.type===\"select-one\";if(g<0)return null;c=j?g:0,d=\
+j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.di\
+sabled:e.getAttribute(\"disabled\")===null)&&(!e.parentNode.disabled||!f.nodeNa\
+me(e.parentNode,\"optgroup\"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.\
+length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeA\
+rray(b);f(a).find(\"option\").each(function(){this.selected=f.inArray(f(this).v\
+al(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,h\
+tml:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var\
+ g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a\
+)[c](d);if(typeof a.getAttribute==\"undefined\")return f.prop(a,c,d);i=j!==1||!\
+f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b\
+){if(d===null){f.removeAttr(a,c);return}if(h&&\"set\"in h&&i&&(g=h.set(a,d,c))!\
+==b)return g;a.setAttribute(c,\"\"+d);return d}if(h&&\"get\"in h&&i&&(g=h.get(a\
+,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:funct\
+ion(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d\
+.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,\"\
+\"),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:funct\
+ion(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error(\"type property can't be c\
+hanged\");else if(!f.support.radioValue&&b===\"radio\"&&f.nodeName(a,\"input\")\
+){var c=a.value;a.setAttribute(\"type\",b),c&&(a.value=c);return b}}},value:{ge\
+t:function(a,b){if(w&&f.nodeName(a,\"button\"))return w.get(a,b);return b in a?\
+a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,\"button\"))return w.set(a\
+,b,c);a.value=b}}},propFix:{tabindex:\"tabIndex\",readonly:\"readOnly\",\"for\"\
+:\"htmlFor\",\"class\":\"className\",maxlength:\"maxLength\",cellspacing:\"cell\
+Spacing\",cellpadding:\"cellPadding\",rowspan:\"rowSpan\",colspan:\"colSpan\",u\
+semap:\"useMap\",frameborder:\"frameBorder\",contenteditable:\"contentEditable\
+\"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=\
+i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&\
+\"set\"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&\"get\"in g&&(e=g.get(a,c))!==nul\
+l?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode(\"tabi\
+ndex\");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a\
+.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:fu\
+nction(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!=\"boolean\"&&(d=a.getA\
+ttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d\
+;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c\
+,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.butt\
+on={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue\
+!==\"\":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNod\
+e(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+\"\
+\"}},f.attrHooks.tabindex.set=w.set,f.each([\"width\",\"height\"],function(a,b)\
+{f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===\"\"){a.setAt\
+tribute(b,\"auto\");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:f\
+unction(a,b,c){b===\"\"&&(b=\"false\"),w.set(a,b,c)}}),f.support.hrefNormalized\
+||f.each([\"href\",\"src\",\"width\",\"height\"],function(a,c){f.attrHooks[c]=f\
+.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===nu\
+ll?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style\
+.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=\"\"+b}}),f\
+.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:\
+function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.s\
+electedIndex);return null}})),f.support.enctype||(f.propFix.enctype=\"encoding\
+\"),f.support.checkOn||f.each([\"radio\",\"checkbox\"],function(){f.valHooks[th\
+is]={get:function(a){return a.getAttribute(\"value\")===null?\"on\":a.value}}})\
+,f.each([\"radio\",\"checkbox\"],function(){f.valHooks[this]=f.extend(f.valHook\
+s[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(\
+),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\\.]*)?(?:\\.(.+))?$/,\
+B=/(?:^|\\s)hover(\\.\\S+)?\\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(\
+?:focusinfocus|focusoutblur)$/,F=/^(\\w*)(?:#([\\w\\-]+))?(?:\\.([\\w\\-]+))?$/\
+,G=function( a){var b=F.exec(a);b&&(b[1]=(b[1]||\"\").toLowerCase(),b[3]=b[3]&&\
+new RegExp(\"(?:^|\\\\s)\"+b[3]+\"(?:\\\\s|$)\"));return b},H=function(a,b){var\
+ c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.\
+id||{}).value===b[2])&&(!b[3]||b[3].test((c[\"class\"]||{}).value))},I=function\
+(a){return f.event.special.hover?a:a.replace(B,\"mouseenter$1 mouseleave$1\")};\
+f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===\
+3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.se\
+lector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(\
+h.handle=i=function(a){return typeof f!=\"undefined\"&&(!a||f.event.triggered!=\
+=a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).s\
+plit(\" \");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||\"\").sp\
+lit(\".\").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s\
+=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:\
+d.guid,selector:g,quick:g&&G(g),namespace:n.join(\".\")},p),r=j[m];if(!r){r=j[m\
+]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListen\
+er?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent(\"on\"+m,i)}s.add&&(\
+s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateC\
+ount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a\
+,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g\
+.events)){b=f.trim(I(b||\"\")).split(\" \");for(h=0;h<b.length;h++){i=A.exec(b[\
+h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);conti\
+nue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.\
+length,l=l?new RegExp(\"(^|\\\\.)\"+l.split(\".\").sort().join(\"\\\\.(?:.*\
+\\\\.)?\")+\"(\\\\.|$)\"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType\
+)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d===\
+\"**\"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p\
+.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a\
+,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.ha\
+ndle,q&&(q.elem=null),f.removeData(a,[\"events\",\"handle\"],!0))}},customEvent\
+:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeT\
+ype!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f\
+.event.triggered))return;h.indexOf(\"!\")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(\
+\".\")>=0&&(i=h.split(\".\"),h=i.shift(),i.sort());if((!e||f.event.customEvent[\
+h])&&!f.event.global[h])return;c=typeof c==\"object\"?c[f.expando]?c:new f.Even\
+t(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join(\
+\".\"),c.namespace_re=c.namespace?new RegExp(\"(^|\\\\.)\"+i.join(\"\\\\.(?:.*\
+\\\\.)?\")+\"(\\\\.|$)\"):null,o=h.indexOf(\":\")<0?\"on\"+h:\"\";if(!e){j=f.ca\
+che;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.ele\
+m,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.un\
+shift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)retur\
+n;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h\
+,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&\
+&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.\
+length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,\"e\
+vents\")||{})[c.type]&&f._data(m,\"handle\"),q&&q.apply(m,d),q=o&&m[o],q&&f.acc\
+eptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrev\
+ented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!==\"click\
+\"||!f.nodeName(e,\"a\"))&&f.acceptData(e)&&o&&e[h]&&(h!==\"focus\"&&h!==\"blur\
+\"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.t\
+riggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:f\
+unction(c){c=f.event.fix(c||a.event);var d=(f._data(this,\"events\")||{})[c.typ\
+e]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namesp\
+ace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateT\
+arget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button\
+||c.type!==\"click\")){n=f(this),n.context=this.ownerDocument||this;for(m=c.tar\
+get;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k\
+<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&\
+r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,m\
+atches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c\
+.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStop\
+ped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.n\
+amespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s\
+.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(\
+c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(t\
+his,c);return c.result}},props:\"attrChange attrName relatedNode srcElement alt\
+Key bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget s\
+hiftKey target timeStamp view which\".split(\" \"),fixHooks:{},keyHooks:{props:\
+\"char charCode key keyCode\".split(\" \"),filter:function(a,b){a.which==null&&\
+(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:\"\
+button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX \
+screenY toElement\".split(\" \"),filter:function(a,d){var e,f,g,h=d.button,i=d.\
+fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.do\
+cumentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-\
+(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.s\
+crollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relat\
+edTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?\
+2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.\
+fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(\
+g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.\
+target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a\
+.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},l\
+oad:{noBubble:!0},focus:{delegateType:\"focusin\"},blur:{delegateType:\"focusou\
+t\"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload\
+=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)\
+}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated\
+:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e\
+.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.r\
+emoveEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.remov\
+eEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent(\"on\"+b,c\
+)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);\
+a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defa\
+ultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:\
+J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[\
+f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPreve\
+nted=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.retu\
+rnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.\
+originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},s\
+topImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.st\
+opPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropaga\
+tionStopped:J},f.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\"},functi\
+on(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=\
+this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c\
+,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f\
+.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName\
+(this,\"form\"))return!1;f.event.add(this,\"click._submit keypress._submit\",fu\
+nction(a){var c=a.target,d=f.nodeName(c,\"input\")||f.nodeName(c,\"button\")?c.\
+form:b;d&&!d._submit_attached&&(f.event.add(d,\"submit._submit\",function(a){a.\
+_submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submi\
+t_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simul\
+ate(\"submit\",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,\
+\"form\"))return!1;f.event.remove(this,\"._submit\")}}),f.support.changeBubbles\
+||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.t\
+ype===\"checkbox\"||this.type===\"radio\")f.event.add(this,\"propertychange._ch\
+ange\",function(a){a.originalEvent.propertyName===\"checked\"&&(this._just_chan\
+ged=!0)}),f.event.add(this,\"click._change\",function(a){this._just_changed&&!a\
+.isTrigger&&(this._just_changed=!1,f.event.simulate(\"change\",this,a,!0))});re\
+turn!1}f.event.add(this,\"beforeactivate._change\",function(a){var b=a.target;z\
+.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,\"change._change\",funct\
+ion(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate(\"change\
+\",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a\
+.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!==\"radio\"&&b.type!==\
+\"checkbox\")return a.handleObj.handler.apply(this,arguments)},teardown:functio\
+n(){f.event.remove(this,\"._change\");return z.test(this.nodeName)}}),f.support\
+.focusinBubbles||f.each({focus:\"focusin\",blur:\"focusout\"},function(a,b){var\
+ d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.spec\
+ial[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function\
+(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,\
+g){var h,i;if(typeof a==\"object\"){typeof c!=\"string\"&&(d=d||c,c=b);for(i in\
+ a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typ\
+eof c==\"string\"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this\
+;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.\
+guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)}\
+)},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a\
+.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.names\
+pace?e.origType+\".\"+e.namespace:e.origType,e.selector,e.handler);return this}\
+if(typeof a==\"object\"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!\
+1||typeof c==\"function\")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.e\
+vent.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unb\
+ind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.contex\
+t).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a\
+,this.selector||\"**\",b);return this},delegate:function(a,b,c,d){return this.o\
+n(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,\"\
+**\"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.even\
+t.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.t\
+rigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d\
+=0,e=function(c){var e=(f._data(this,\"lastToggle\"+a.guid)||0)%d;f._data(this,\
+\"lastToggle\"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)\
+||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:funct\
+ion(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each(\"blur focus focu\
+sin focusout load resize scroll unload click dblclick mousedown mouseup mousemo\
+ve mouseover mouseout mouseenter mouseleave change select submit keydown keypre\
+ss keyup error contextmenu\".split(\" \"),function(a,b){f.fn[b]=function(a,c){c\
+==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger\
+(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHook\
+s),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(\
+a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];w\
+hile(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset\
+=h);if(typeof b!=\"string\"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).leng\
+th>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length\
+;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];\
+break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){\
+k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\
+\\[\\]]*\\]|['\"][^'\"]*['\"]|[^\\[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~\
+])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,d=\"sizcache\"+(Math.random()+\"\").replace(\"\
+.\",\"\"),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\\\/g,k=/\\r\\n/g,l=/\
+\\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d|\
+|c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=\"string\
+\")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(\"\"),i=a.\
+exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>\
+1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.rela\
+tive[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.s\
+hift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0\
+])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter\
+(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.\
+length===1&&(w[0]===\"~\"||w[0]===\"+\")&&d.parentNode?d.parentNode:d,v),j=n.ex\
+pr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop()\
+,r=q,o.relative[q]?r=w.pop():q=\"\",r==null&&(r=d),o.relative[q](k,r,v)}else k=\
+w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)===\"[object Array]\")if(!u)e.push.a\
+pply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[\
+t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)\
+k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e\
+));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.\
+length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){ret\
+urn m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a])\
+.length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.or\
+der.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1\
+,1);if(i.substr(i.length-1)!==\"\\\\\"){g[1]=(g[1]||\"\").replace(j,\"\"),d=o.f\
+ind[h](g,b,c);if(d!=null){a=a.replace(o.match[h],\"\");break}}}}d||(d=typeof b.\
+getElementsByTagName!=\"undefined\"?b.getElementsByTagName(\"*\"):[]);return{se\
+t:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&\
+&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].\
+exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.len\
+gth-1)===\"\\\\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,\
+s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++\
+)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b\
+){d||(s=r),a=a.replace(o.match[h],\"\");if(!g)return[];break}}if(a===q)if(g==nu\
+ll)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error(\"Sy\
+ntax error, unrecognized expression: \"+a)};var n=m.getText=function(a){var b,c\
+,d=a.nodeType,e=\"\";if(d){if(d===1||d===9||d===11){if(typeof a.textContent==\"\
+string\")return a.textContent;if(typeof a.innerText==\"string\")return a.innerT\
+ext.replace(k,\"\");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3|\
+|d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));ret\
+urn e},o=m.selectors={order:[\"ID\",\"NAME\",\"TAG\"],match:{ID:/#((?:[\\w\\u00\
+c0-\\uFFFF\\-]|\\\\.)+)/,CLASS:/\\.((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/,NAME:/\
+\\[name=['\"]*((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)['\"]*\\]/,ATTR:/\\[\\s*((?:[\
+\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)\\s*(?:(\\S?=)\\s*(?:(['\"])(.*?)\\3|(#?(?:[\\w\
+\\u00c0-\\uFFFF\\-]|\\\\.)*)|)|)\\s*\\]/,TAG:/^((?:[\\w\\u00c0-\\uFFFF\\*\\-]|\
+\\\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\\(\\s*(even|odd|(?:[+\\-]?\\d+\
+|(?:[+\\-]?\\d*)?n\\s*(?:[+\\-]\\s*\\d+)?))\\s*\\))?/,POS:/:(nth|eq|gt|lt|first\
+|last|even|odd)(?:\\((\\d*)\\))?(?=[^\\-]|$)/,PSEUDO:/:((?:[\\w\\u00c0-\\uFFFF\
+\\-]|\\\\.)+)(?:\\((['\"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/},leftMatch:\
+{},attrMap:{\"class\":\"className\",\"for\":\"htmlFor\"},attrHandle:{href:funct\
+ion(a){return a.getAttribute(\"href\")},type:function(a){return a.getAttribute(\
+\"type\")}},relative:{\"+\":function(a,b){var c=typeof b==\"string\",d=c&&!l.te\
+st(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]\
+){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCas\
+e()===b?h||!1:h===b}e&&m.filter(b,a,!0)},\">\":function(a,b){var c,d=typeof b==\
+\"string\",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a\
+[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(\
+;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}}\
+,\"\":function(a,b,c){var d,f=e++,g=x;typeof b==\"string\"&&!l.test(b)&&(b=b.to\
+LowerCase(),d=b,g=w),g(\"parentNode\",b,f,a,d,c)},\"~\":function(a,b,c){var d,f\
+=e++,g=x;typeof b==\"string\"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g(\"prev\
+iousSibling\",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!\
+=\"undefined\"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}\
+},NAME:function(a,b){if(typeof b.getElementsByName!=\"undefined\"){var c=[],d=b\
+.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute(\"nam\
+e\")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typ\
+eof b.getElementsByTagName!=\"undefined\")return b.getElementsByTagName(a[1])}}\
+,preFilter:{CLASS:function(a,b,c,d,e,f){a=\" \"+a[1].replace(j,\"\")+\" \";if(f\
+)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(\" \"+h.classNa\
+me+\" \").replace(/[\\t\\n\\r]/g,\" \").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1\
+));return!1},ID:function(a){return a[1].replace(j,\"\")},TAG:function(a,b){retu\
+rn a[1].replace(j,\"\").toLowerCase()},CHILD:function(a){if(a[1]===\"nth\"){a[2\
+]||m.error(a[0]),a[2]=a[2].replace(/^\\+|\\s*/g,\"\");var b=/(-?)(\\d*)(?:n([+\
+\\-]?\\d*))?/.exec(a[2]===\"even\"&&\"2n\"||a[2]===\"odd\"&&\"2n+1\"||!/\\D/.te\
+st(a[2])&&\"0n+\"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.er\
+ror(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace\
+(j,\"\");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||\"\").replace(\
+j,\"\"),a[2]===\"~=\"&&(a[4]=\" \"+a[4]+\" \");return a},PSEUDO:function(b,c,d,\
+e,f){if(b[1]===\"not\")if((a.exec(b[3])||\"\").length>1||/^\\w/.test(b[3]))b[3]\
+=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);re\
+turn!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return\
+ b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){retur\
+n a.disabled===!1&&a.type!==\"hidden\"},disabled:function(a){return a.disabled=\
+==!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentN\
+ode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){retu\
+rn!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){re\
+turn!!m(c[3],a).length},header:function(a){return/h\\d/i.test(a.nodeName)},text\
+:function(a){var b=a.getAttribute(\"type\"),c=a.type;return a.nodeName.toLowerC\
+ase()===\"input\"&&\"text\"===c&&(b===c||b===null)},radio:function(a){return a.\
+nodeName.toLowerCase()===\"input\"&&\"radio\"===a.type},checkbox:function(a){re\
+turn a.nodeName.toLowerCase()===\"input\"&&\"checkbox\"===a.type},file:function\
+(a){return a.nodeName.toLowerCase()===\"input\"&&\"file\"===a.type},password:fu\
+nction(a){return a.nodeName.toLowerCase()===\"input\"&&\"password\"===a.type},s\
+ubmit:function(a){var b=a.nodeName.toLowerCase();return(b===\"input\"||b===\"bu\
+tton\")&&\"submit\"===a.type},image:function(a){return a.nodeName.toLowerCase()\
+===\"input\"&&\"image\"===a.type},reset:function(a){var b=a.nodeName.toLowerCas\
+e();return(b===\"input\"||b===\"button\")&&\"reset\"===a.type},button:function(\
+a){var b=a.nodeName.toLowerCase();return b===\"input\"&&\"button\"===a.type||b=\
+==\"button\"},input:function(a){return/input|select|textarea|button/i.test(a.no\
+deName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilter\
+s:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length\
+-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:fun\
+ction(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(\
+a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO\
+:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e===\"co\
+ntains\")return(a.textContent||a.innerText||n([a])||\"\").indexOf(b[3])>=0;if(e\
+===\"not\"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;retu\
+rn!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){cas\
+e\"only\":case\"first\":while(l=l.previousSibling)if(l.nodeType===1)return!1;if\
+(k===\"first\")return!0;l=a;case\"last\":while(l=l.nextSibling)if(l.nodeType===\
+1)return!1;return!0;case\"nth\":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g\
+=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.next\
+Sibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j\
+===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute(\
+\"id\")===b},TAG:function(a,b){return b===\"*\"&&a.nodeType===1||!!a.nodeName&&\
+a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(\" \"+(a.className||a.\
+getAttribute(\"class\"))+\" \").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=\
+m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttr\
+ibute(c),e=d+\"\",f=b[2],g=b[4];return d==null?f===\"!=\":!f&&m.attr?d!=null:f=\
+==\"=\"?e===g:f===\"*=\"?e.indexOf(g)>=0:f===\"~=\"?(\" \"+e+\" \").indexOf(g)>\
+=0:g?f===\"!=\"?e!==g:f===\"^=\"?e.indexOf(g)===0:f===\"$=\"?e.substr(e.length-\
+g.length)===g:f===\"|=\"?e===g||e.substr(0,g.length+1)===g+\"-\":!1:e&&d!==!1},\
+POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=\
+o.match.POS,q=function(a,b){return\"\\\\\"+(b-0+1)};for(var r in o.match)o.matc\
+h[r]=new RegExp(o.match[r].source+/(?![^\\[]*\\])(?![^\\(]*\\))/.source),o.left\
+Match[r]=new RegExp(/(^(?:.|\\r|\\n)*?)/.source+o.match[r].source.replace(/\
+\\\\(\\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slic\
+e.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slic\
+e.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var\
+ c=0,d=b||[];if(g.call(a)===\"[object Array]\")Array.prototype.push.apply(d,a);\
+else if(typeof a.length==\"number\")for(var e=a.length;c<e;c++)d.push(a[c]);els\
+e for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumen\
+tPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition\
+||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.com\
+pareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.s\
+ourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],\
+g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)r\
+eturn 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parent\
+Node;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k\
+],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)retur\
+n c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),f\
+unction(){var a=c.createElement(\"div\"),d=\"script\"+(new Date).getTime(),e=c.\
+documentElement;a.innerHTML=\"<a name='\"+d+\"'/>\",e.insertBefore(a,e.firstChi\
+ld),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!\
+=\"undefined\"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e\
+.getAttributeNode!=\"undefined\"&&e.getAttributeNode(\"id\").nodeValue===a[1]?[\
+e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=\"undefine\
+d\"&&a.getAttributeNode(\"id\");return a.nodeType===1&&c&&c.nodeValue===b}),e.r\
+emoveChild(a),e=a=null}(),function(){var a=c.createElement(\"div\");a.appendChi\
+ld(c.createComment(\"\")),a.getElementsByTagName(\"*\").length>0&&(o.find.TAG=f\
+unction(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]===\"*\"){var d=[];for(v\
+ar e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=\"<a\
+ href='#'></a>\",a.firstChild&&typeof a.firstChild.getAttribute!=\"undefined\"&\
+&a.firstChild.getAttribute(\"href\")!==\"#\"&&(o.attrHandle.href=function(a){re\
+turn a.getAttribute(\"href\",2)}),a=null}(),c.querySelectorAll&&function(){var \
+a=m,b=c.createElement(\"div\"),d=\"__sizzle__\";b.innerHTML=\"<p class='TEST'><\
+/p>\";if(!b.querySelectorAll||b.querySelectorAll(\".TEST\").length!==0){m=funct\
+ion(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\\w+$)|^\\.([\\w\\-]+$)|^#([\
+\\w\\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.\
+getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)retu\
+rn s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b===\"body\"&&e.bo\
+dy)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.pare\
+ntNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelect\
+orAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!==\"obj\
+ect\"){var k=e,l=e.getAttribute(\"id\"),n=l||d,p=e.parentNode,q=/^\\s*[+~]/.tes\
+t(b);l?n=n.replace(/'/g,\"\\\\$&\"):e.setAttribute(\"id\",n),q&&p&&(e=e.parentN\
+ode);try{if(!q||p)return s(e.querySelectorAll(\"[id='\"+n+\"'] \"+b),f)}catch(r\
+){}finally{l||k.removeAttribute(\"id\")}}}return a(b,e,f,g)};for(var e in a)m[e\
+]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.moz\
+MatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.ca\
+ll(c.createElement(\"div\"),\"div\"),e=!1;try{b.call(c.documentElement,\"[test!\
+='']:sizzle\")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\\=\
+\\s*([^'\"\\]]*)\\s*\\]/g,\"='$1']\");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.\
+test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.node\
+Type!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(\
+){var a=c.createElement(\"div\");a.innerHTML=\"<div class='test e'></div><div c\
+lass='test'></div>\";if(!!a.getElementsByClassName&&a.getElementsByClassName(\"\
+e\").length!==0){a.lastChild.className=\"e\";if(a.getElementsByClassName(\"e\")\
+.length===1)return;o.order.splice(1,0,\"CLASS\"),o.find.CLASS=function(a,b,c){i\
+f(typeof b.getElementsByClassName!=\"undefined\"&&!c)return b.getElementsByClas\
+sName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){ret\
+urn a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosi\
+tion?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.cont\
+ains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).do\
+cumentElement;return b?b.nodeName!==\"HTML\":!1};var y=function(a,b,c){var d,e=\
+[],f=\"\",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace\
+(o.match.PSEUDO,\"\");a=o.relative[a]?a+\"*\":a;for(var h=0,i=g.length;h<i;h++)\
+m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find\
+=m,f.expr=m.selectors,f.expr[\":\"]=f.expr.filters,f.unique=m.uniqueSort,f.text\
+=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:pa\
+rents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\\[\\.,]*$/,P=Array.prototype.slice,Q=\
+f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend(\
+{find:function(a){var b=this,c,d;if(typeof a!=\"string\")return f(a).filter(fun\
+ction(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=th\
+is.pushStack(\"\",\"find\",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f\
+.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]\
+){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filte\
+r(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})\
+},not:function(a){return this.pushStack(T(this,a,!1),\"not\",a)},filter:functio\
+n(a){return this.pushStack(T(this,a,!0),\"filter\",a)},is:function(a){return!!a\
+&&(typeof a==\"string\"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(\
+a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g\
+=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.\
+length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode\
+,h++}return c}var i=Q.test(a)||typeof a!=\"string\"?f(a,b||this.context):0;for(\
+d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matches\
+Selector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g\
+.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,\"clos\
+est\",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevA\
+ll().length:-1;if(typeof a==\"string\")return f.inArray(this[0],f(a));return f.\
+inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==\"string\"?f(a\
+,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushSt\
+ack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.pr\
+evObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType\
+!==11?b:null},parents:function(a){return f.dir(a,\"parentNode\")},parentsUntil:\
+function(a,b,c){return f.dir(a,\"parentNode\",c)},next:function(a){return f.nth\
+(a,2,\"nextSibling\")},prev:function(a){return f.nth(a,2,\"previousSibling\")},\
+nextAll:function(a){return f.dir(a,\"nextSibling\")},prevAll:function(a){return\
+ f.dir(a,\"previousSibling\")},nextUntil:function(a,b,c){return f.dir(a,\"nextS\
+ibling\",c)},prevUntil:function(a,b,c){return f.dir(a,\"previousSibling\",c)},s\
+iblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children\
+:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.node\
+Name(a,\"iframe\")?a.contentDocument||a.contentWindow.document:f.makeArray(a.ch\
+ildNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)\
+||(d=c),d&&typeof d==\"string\"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.uni\
+que(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pus\
+hStack(e,a,P.call(arguments).join(\",\"))}}),f.extend({filter:function(a,b,c){c\
+&&(a=\":not(\"+a+\")\");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0\
+]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeT\
+ype!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];\
+return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&\
+&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)\
+a.nodeType===1&&a!==b&&c.push(a);return c}});var V=\"abbr|article|aside|audio|b\
+di|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|met\
+er|nav|output|progress|section|summary|time|video\",W=/ jQuery\\d+=\"(?:\\d+|nu\
+ll)\"/g,X=/^\\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:\
+]+)[^>]*)\\/>/ig,Z=/<([\\w:]+)/,$=/<tbody/i,_=/<|&#?\\w+;/,ba=/<(?:script|style\
+)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp(\"<(?:\"+V+\")[\
+\\\\s/>]\",\"i\"),bd=/checked\\s*(?:[^=]|=\\s*.checked.)/i,be=/\\/(java|ecma)sc\
+ript/i,bf=/^\\s*<!(?:\\[CDATA\\[|\\-\\-)/,bg={option:[1,\"<select multiple='mul\
+tiple'>\",\"</select>\"],legend:[1,\"<fieldset>\",\"</fieldset>\"],thead:[1,\"<\
+table>\",\"</table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<\
+table><tbody><tr>\",\"</tr></tbody></table>\"],col:[2,\"<table><tbody></tbody><\
+colgroup>\",\"</colgroup></table>\"],area:[1,\"<map>\",\"</map>\"],_default:[0,\
+\"\",\"\"]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.capt\
+ion=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,\"div<div>\",\
+\"</div>\"]),f.fn.extend({text:function(a){return f.access(this,function(a){ret\
+urn a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).\
+createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFuncti\
+on(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]\
+){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insert\
+Before(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.no\
+deType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:functi\
+on(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(\
+this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.\
+wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.ea\
+ch(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return \
+this.parent().each(function(){f.nodeName(this,\"body\")||f(this).replaceWith(th\
+is.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,fun\
+ction(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return th\
+is.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,thi\
+s.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.d\
+omManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(argu\
+ments.length){var a=f .clean(arguments);a.push.apply(a,this.toArray());return t\
+his.pushStack(a,\"before\",arguments)}},after:function(){if(this[0]&&this[0].pa\
+rentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBe\
+fore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,\"aft\
+er\",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a\
+,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nod\
+eType===1&&(f.cleanData(d.getElementsByTagName(\"*\")),f.cleanData([d])),d.pare\
+ntNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b\
+;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName(\"*\
+\"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function\
+(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(th\
+is,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},\
+d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,\"\"):nu\
+ll;if(typeof a==\"string\"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(\
+a))&&!bg[(Z.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(Y,\"<$1></$2>\
+\");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(f.cleanData(c.getElementsBy\
+TagName(\"*\")),c.innerHTML=a);c=0}catch(g){}}c&&this.empty().append(a)},null,a\
+,arguments.length)},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(\
+f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replace\
+With(a.call(this,b,d))});typeof a!=\"string\"&&(a=f(a).detach());return this.ea\
+ch(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).\
+before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?\
+a():a),\"replaceWith\",a):this},detach:function(a){return this.remove(a,!0)},do\
+mManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&argume\
+nts.length===3&&typeof j==\"string\"&&bd.test(j))return this.each(function(){f(\
+this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var \
+g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&\
+&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===t\
+his.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes\
+.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,\"tr\");for\
+(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable\
+||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,function(a,b){b.src?f.ajax({t\
+ype:\"GET\",global:!1,url:b.src,async:!1,dataType:\"script\"}):f.globalEval((b.\
+text||b.textContent||b.innerHTML||\"\").replace(bf,\"/*$0*/\")),b.parentNode&&b\
+.parentNode.removeChild(b)})}return this}}),f.buildFragment=function(a,b,d){var\
+ e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment|\
+|(i=c),a.length===1&&typeof j==\"string\"&&j.length<512&&i===c&&j.charAt(0)===\
+\"<\"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone|\
+|!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFr\
+agment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheabl\
+e:g}},f.fragments={},f.each({appendTo:\"append\",prependTo:\"prepend\",insertBe\
+fore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b)\
+{f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g\
+&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return \
+this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[\
+h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clon\
+e:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test(\"<\
+\"+a.nodeName+\">\")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.supp\
+ort.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h)\
+,d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(\
+a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,\
+b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement==\"undefined\"&&(b=b.ownerD\
+ocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof \
+l==\"number\"&&(l+=\"\");if(!l)continue;if(typeof l==\"string\")if(!_.test(l))l\
+=b.createTextNode(l);else{l=l.replace(Y,\"<$1></$2>\");var m=(Z.exec(l)||[\"\",\
+\"\"])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement(\"div\"),\
+q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+\
+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m===\"tab\
+le\"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===\"<table>\"&&!s?p.childNo\
+des:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],\"tbody\")&&!t[i].childNodes.l\
+ength&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l\
+)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p\
+&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.\
+parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (\
+u=l.length)==\"number\")for(i=0;i<u;i++)bn(l[i]);else bn(l);l.nodeType?j.push(l\
+):j=f.merge(j,l)}if(d){g=function(a){return!a.type||be.test(a.type)};for(k=0;j[\
+k];k++){h=j[k];if(e&&f.nodeName(h,\"script\")&&(!h.type||be.test(h.type)))e.pus\
+h(h.parentNode?h.parentNode.removeChild(h):h);else{if(h.nodeType===1){var v=f.g\
+rep(h.getElementsByTagName(\"script\"),g);j.splice.apply(j,[k+1,0].concat(v))}d\
+.appendChild(h)}}}return j},cleanData:function(a){var b,c,d=f.cache,e=f.event.s\
+pecial,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeNam\
+e&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b\
+&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.\
+handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&\
+&i.removeAttribute(f.expando),delete d[c]}}}});var bp=/alpha\\([^)]*\\)/i,bq=/o\
+pacity=([^)]*)/,br=/([A-Z]|^ms)/g,bs=/^[\\-+]?(?:\\d*\\.)?\\d+$/i,bt=/^-?(?:\\d\
+*\\.)?\\d+(?!px)[^\\d\\s]+$/i,bu=/^([\\-+])=([\\-+.\\de]+)/,bv=/^margin/,bw={po\
+sition:\"absolute\",visibility:\"hidden\",display:\"block\"},bx=[\"Top\",\"Righ\
+t\",\"Bottom\",\"Left\"],by,bz,bA;f.fn.css=function(a,c){return f.access(this,f\
+unction(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)},a,c,arguments.length>1)}\
+,f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,\"opacity\");r\
+eturn c===\"\"?\"1\":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,font\
+Weight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssP\
+rops:{\"float\":f.support.cssFloat?\"cssFloat\":\"styleFloat\"},style:function(\
+a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCa\
+se(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&\"get\"in k&\
+&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h===\"string\"&&(g=bu.ex\
+ec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h=\"number\");if(d==null||h==\
+=\"number\"&&isNaN(d))return;h===\"number\"&&!f.cssNumber[i]&&(d+=\"px\");if(!k\
+||!(\"set\"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d\
+){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c===\"cssFloat\"&\
+&(c=\"float\");if(g&&\"get\"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return b\
+y(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]\
+=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defau\
+ltView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style\
+;b=b.replace(br,\"-$1\").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.ge\
+tComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===\"\"&&!f.contains(a.owner\
+Document.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.te\
+st(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.docum\
+entElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.curren\
+tStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runti\
+meStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.lef\
+t=b===\"fontSize\"?\"1em\":f,f=g.pixelLeft+\"px\",g.left=c,d&&(a.runtimeStyle.l\
+eft=d));return f===\"\"?\"auto\":f}),by=bz||bA,f.each([\"height\",\"width\"],fu\
+nction(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB\
+(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.\
+test(b)?b+\"px\":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b\
+){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||\"\"\
+)?parseFloat(RegExp.$1)/100+\"\":b?\"1\":\"\"},set:function(a,b){var c=a.style,\
+d=a.currentStyle,e=f.isNumeric(b)?\"alpha(opacity=\"+b*100+\")\":\"\",g=d&&d.fi\
+lter||c.filter||\"\";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,\"\"))===\"\"){c.rem\
+oveAttribute(\"filter\");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(b\
+p,e):g+\" \"+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.margi\
+nRight={get:function(a,b){return f.swap(a,{display:\"inline-block\"},function()\
+{return b?by(a,\"margin-right\"):a.style.marginRight})}})}),f.expr&&f.expr.filt\
+ers&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;re\
+turn b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display|\
+|f.css(a,\"display\"))===\"none\"},f.expr.filters.visible=function(a){return!f.\
+expr.filters.hidden(a)}),f.each({margin:\"\",padding:\"\",border:\"Width\"},fun\
+ction(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c==\"string\"?c.s\
+plit(\" \"):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}\
+});var bC=/%20/g,bD=/\\[\\]$/,bE=/\\r?\\n/g,bF=/#.*$/,bG=/^(.*?):[ \\t]*([^\\r\
+\\n]*)\\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|nu\
+mber|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\\-s\
+torage|.+\\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\\/\\//,bL=/\
+\\?/,bM=/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,bN=/^(?:select\
+|textarea)/i,bO=/\\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\\w\\+\\.\\-]+:)(?:\\/\\/([^\
+\\/?#:]*)(?::(\\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=[\"*/\"]+[\"*\"];try\
+{bU=e.href}catch(bX){bU=c.createElement(\"a\"),bU.href=\"\",bU=bU.href}bV=bQ.ex\
+ec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!=\"strin\
+g\"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.ind\
+exOf(\" \");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h=\"GET\";c&&\
+(f.isFunction(c)?(d=c,c=b):typeof c==\"object\"&&(c=f.param(c,f.ajaxSettings.tr\
+aditional),h=\"POST\"));var i=this;f.ajax({url:a,type:h,dataType:\"html\",data:\
+c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a)\
+{c=a}),i.html(g?f(\"<div>\").append(c.replace(bM,\"\")).find(g):c)),d&&i.each(d\
+,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArr\
+ay())},serializeArray:function(){return this.map(function(){return this.element\
+s?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.d\
+isabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(funct\
+ion(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(\
+a,c){return{name:b.name,value:a.replace(bE,\"\\r\\n\")}}):{name:b.name,value:c.\
+replace(bE,\"\\r\\n\")}}).get()}}),f.each(\"ajaxStart ajaxStop ajaxComplete aja\
+xError ajaxSuccess ajaxSend\".split(\" \"),function(a,b){f.fn[b]=function(a){re\
+turn this.on(b,a)}}),f.each([\"get\",\"post\"],function(a,c){f[c]=function(a,d,\
+e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,succe\
+ss:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,\"scr\
+ipt\")},getJSON:function(a,b,c){return f.get(a,b,c,\"json\")},ajaxSetup:functio\
+n(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSett\
+ings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:\"GET\",contentType:\"applic\
+ation/x-www-form-urlencoded;charset=UTF-8\",processData:!0,async:!0,accepts:{xm\
+l:\"application/xml, text/xml\",html:\"text/html\",text:\"text/plain\",json:\"a\
+pplication/json, text/javascript\",\"*\":bW},contents:{xml:/xml/,html:/html/,js\
+on:/json/},responseFields:{xml:\"responseXML\",text:\"responseText\"},converter\
+s:{\"* text\":a.String,\"text html\":!0,\"text json\":f.parseJSON,\"text xml\":\
+f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport\
+:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q)\
+,p=b,n=m||\"\",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200\
+&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader(\"Last-Modified\"))\
+f.lastModified[k]=y;if(z=v.getResponseHeader(\"Etag\"))f.etag[k]=z}if(a===304)w\
+=\"notmodified\",o=!0;else try{r=cb(d,x),w=\"success\",o=!0}catch(A){w=\"parser\
+error\",u=A}}else{u=w;if(!w||a)w=\"error\",a<0&&(a=0)}v.status=a,v.statusText=\
+\"\"+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),\
+j=b,t&&g.trigger(\"ajax\"+(o?\"Success\":\"Error\"),[v,d,o?r:u]),i.fireWith(e,[\
+v,w]),t&&(g.trigger(\"ajaxComplete\",[v,d]),--f.active||f.event.trigger(\"ajaxS\
+top\"))}}typeof a==\"object\"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.co\
+ntext||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.\
+Callbacks(\"once memory\"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={\
+readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]\
+=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:nu\
+ll},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n\
+))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},override\
+MimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||\"ab\
+ort\",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=\
+v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)\
+j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+\
+\"\").replace(bF,\"\").replace(bK,bV[1]+\"//\"),d.dataTypes=f.trim(d.dataType||\
+\"*\").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCas\
+e()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]===\"http:\"?80:\
+443))==(bV[3]||(bV[1]===\"http:\"?80:443)))),d.data&&d.processData&&typeof d.da\
+ta!=\"string\"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)re\
+turn!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&\
+f.active++===0&&f.event.trigger(\"ajaxStart\");if(!d.hasContent){d.data&&(d.url\
++=(bL.test(d.url)?\"&\":\"?\")+d.data,delete d.data),k=d.url;if(d.cache===!1){v\
+ar x=f.now(),y=d.url.replace(bP,\"$1_=\"+x);d.url=y+(y===d.url?(bL.test(d.url)?\
+\"&\":\"?\")+\"_=\"+x:\"\")}}(d.data&&d.hasContent&&d.contentType!==!1||c.conte\
+ntType)&&v.setRequestHeader(\"Content-Type\",d.contentType),d.ifModified&&(k=k|\
+|d.url,f.lastModified[k]&&v.setRequestHeader(\"If-Modified-Since\",f.lastModifi\
+ed[k]),f.etag[k]&&v.setRequestHeader(\"If-None-Match\",f.etag[k])),v.setRequest\
+Header(\"Accept\",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTyp\
+es[0]]+(d.dataTypes[0]!==\"*\"?\", \"+bW+\";q=0.01\":\"\"):d.accepts[\"*\"]);fo\
+r(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeS\
+end.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,com\
+plete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,\"No Transport\");else{v.readySta\
+te=1,t&&g.trigger(\"ajaxSend\",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(funct\
+ion(){v.abort(\"timeout\")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-\
+1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.i\
+sFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+\"=\"+encodeURIComponent(b\
+)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainO\
+bject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g\
+,a[g],c,e);return d.join(\"&\").replace(bC,\"+\")}}),f.extend({active:0,lastMod\
+ified:{},etag:{}});var cc=f.now(),cd=/(\\=)\\?(&|$)|\\?\\?/i;f.ajaxSetup({jsonp\
+:\"callback\",jsonpCallback:function(){return f.expando+\"_\"+cc++}}),f.ajaxPre\
+filter(\"json jsonp\",function(b,c,d){var e=typeof b.data==\"string\"&&/^applic\
+ation\\/x\\-www\\-form\\-urlencoded/.test(b.contentType);if(b.dataTypes[0]===\"\
+jsonp\"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCal\
+lback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=\
+b.url,k=b.data,l=\"$1\"+h+\"$2\";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e\
+&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\\?/.test(j)?\"&\":\"?\")+b.jsonp+\"=\"\
++h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.\
+isFunction(i)&&a[h](g[0])}),b.converters[\"script json\"]=function(){g||f.error\
+(h+\" was not called\");return g[0]},b.dataTypes[0]=\"json\";return\"script\"}}\
+),f.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, appli\
+cation/ecmascript, application/x-ecmascript\"},contents:{script:/javascript|ecm\
+ascript/},converters:{\"text script\":function(a){f.globalEval(a);return a}}}),\
+f.ajaxPrefilter(\"script\",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&\
+&(a.type=\"GET\",a.global=!1)}),f.ajaxTransport(\"script\",function(a){if(a.cro\
+ssDomain){var d,e=c.head||c.getElementsByTagName(\"head\")[0]||c.documentElemen\
+t;return{send:function(f,g){d=c.createElement(\"script\"),d.async=\"async\",a.s\
+criptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatech\
+ange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.\
+onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200\
+,\"success\")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1\
+)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg\
+;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}\
+:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&\"withCredentials\"in a}\
+)}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.cros\
+sDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.us\
+ername?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c\
+.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.o\
+verrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e[\"X-Requeste\
+d-With\"]&&(e[\"X-Requested-With\"]=\"XMLHttpRequest\");try{for(j in e)h.setReq\
+uestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e)\
+{var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.\
+noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.get\
+AllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m\
+.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=\"\"}!j&&c.isLocal\
+&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(\
+j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce\
+)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},\
+ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\\-]=)?([\\d+.\\-]+)([a-z%]*)$/i,co,c\
+p=[[\"height\",\"marginTop\",\"marginBottom\",\"paddingTop\",\"paddingBottom\"]\
+,[\"width\",\"marginLeft\",\"marginRight\",\"paddingLeft\",\"paddingRight\"],[\
+\"opacity\"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return t\
+his.animate(ct(\"show\",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d\
+.style&&(e=d.style.display,!f._data(d,\"olddisplay\")&&e===\"none\"&&(e=d.style\
+.display=\"\"),(e===\"\"&&f.css(d,\"display\")===\"none\"||!f.contains(d.ownerD\
+ocument.documentElement,d))&&f._data(d,\"olddisplay\",cu(d.nodeName)));for(g=0;\
+g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===\"\"||e===\"none\")d.st\
+yle.display=f._data(d,\"olddisplay\")||\"\"}}return this},hide:function(a,b,c){\
+if(a||a===0)return this.animate(ct(\"hide\",3),a,b,c);var d,e,g=0,h=this.length\
+;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,\"display\"),e!==\"none\"&&!f._data\
+(d,\"olddisplay\")&&f._data(d,\"olddisplay\",e));for(g=0;g<h;g++)this[g].style&\
+&(this[g].style.display=\"none\");return this},_toggle:f.fn.toggle,toggle:funct\
+ion(a,b,c){var d=typeof a==\"boolean\";f.isFunction(a)&&f.isFunction(b)?this._t\
+oggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).i\
+s(\":hidden\");f(this)[b?\"show\":\"hide\"]()}):this.animate(ct(\"toggle\",3),a\
+,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(\":hidden\").css\
+(\"opacity\",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c\
+,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeTy\
+pe===1,d=c&&f(this).is(\":hidden\"),g,h,i,j,k,l,m,n,o,p,q;b.animatedProperties=\
+{};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]);if((k=f.cssHooks\
+[g])&&\"expand\"in k){l=k.expand(a[g]),delete a[g];for(i in l)i in a||(a[i]=l[i\
+])}}for(g in a){h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):\
+b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||\"swing\
+\";if(h===\"hide\"&&d||h===\"show\"&&!d)return b.complete.call(this);c&&(g===\"\
+height\"||g===\"width\")&&(b.overflow=[this.style.overflow,this.style.overflowX\
+,this.style.overflowY],f.css(this,\"display\")===\"inline\"&&f.css(this,\"float\
+\")===\"none\"&&(!f.support.inlineBlockNeedsLayout||cu(this.nodeName)===\"inlin\
+e\"?this.style.display=\"inline-block\":this.style.zoom=1))}b.overflow!=null&&(\
+this.style.overflow=\"hidden\");for(i in a)j=new f.fx(this,b,i),h=a[i],cm.test(\
+h)?(q=f._data(this,\"toggle\"+i)||(h===\"toggle\"?d?\"show\":\"hide\":0),q?(f._\
+data(this,\"toggle\"+i,q===\"show\"?\"hide\":\"show\"),j[q]()):j[h]()):(m=cn.ex\
+ec(h),n=j.cur(),m?(o=parseFloat(m[2]),p=m[3]||(f.cssNumber[i]?\"\":\"px\"),p!==\
+\"px\"&&(f.style(this,i,(o||1)+p),n=(o||1)/j.cur()*n,f.style(this,i,n+p)),m[1]&\
+&(o=(m[1]===\"-=\"?-1:1)*o+n),j.custom(n,o,p)):j.custom(n,h,\"\"));return!0}var\
+ e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.e\
+xtend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:functi\
+on(a,c,d){typeof a!=\"string\"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||\"fx\",[\
+]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0\
+),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==n\
+ull)for(b in g)g[b]&&g[b].stop&&b.indexOf(\".run\")===b.length-4&&h(this,g,b);e\
+lse g[b=a+\".run\"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===thi\
+s&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));\
+(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:ct(\"show\",1),slideUp:ct(\"\
+hide\",1),slideToggle:ct(\"toggle\",1),fadeIn:{opacity:\"show\"},fadeOut:{opaci\
+ty:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(a,b){f.fn[a]=function(a,\
+c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&t\
+ypeof a==\"object\"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,durat\
+ion:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.durat\
+ion==\"number\"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.\
+fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue=\"fx\";d.old=d.comple\
+te,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.deque\
+ue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a){\
+return a},swing:function(a){return-Math.cos(a*Math.PI)/2+.5}},timers:[],fx:func\
+tion(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.pr\
+ototype={update:function(){this.options.step&&this.options.step.call(this.elem,\
+this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function()\
+{if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==\
+null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isN\
+aN(a=parseFloat(b))?!b||b===\"auto\"?0:b:a},custom:function(a,c,d){function h(a\
+){return e.step(a)}var e=this,g=f.fx;this.startTime=cq||cr(),this.end=c,this.no\
+w=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.\
+prop]?\"\":\"px\"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=func\
+tion(){f._data(e.elem,\"fxshow\"+e.prop)===b&&(e.options.hide?f._data(e.elem,\"\
+fxshow\"+e.prop,e.start):e.options.show&&f._data(e.elem,\"fxshow\"+e.prop,e.end\
+))},h()&&f.timers.push(h)&&!co&&(co=setInterval(g.tick,g.interval))},show:funct\
+ion(){var a=f._data(this.elem,\"fxshow\"+this.prop);this.options.orig[this.prop\
+]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.c\
+ur(),a):this.custom(this.prop===\"width\"||this.prop===\"height\"?1:0,this.cur(\
+)),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(th\
+is.elem,\"fxshow\"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!\
+0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cq||cr(),g=!0,h=this.\
+elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.\
+pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.an\
+imatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!\
+f.support.shrinkWrapBlocks&&f.each([\"\",\"X\",\"Y\"],function(a,b){h.style[\"o\
+verflow\"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.a\
+nimatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,\"fxshow\"+b,!0),f.remo\
+veData(h,\"toggle\"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.\
+duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.\
+pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this\
+.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.exte\
+nd(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&\
+b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){cl\
+earInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:\
+function(a){f.style(a.elem,\"opacity\",a.now)},_default:function(a){a.elem.styl\
+e&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=\
+a.now}}}),f.each(cp.concat.apply([],cp),function(a,b){b.indexOf(\"margin\")&&(f\
+.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)})}),f.expr&&\
+f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,fun\
+ction(b){return a===b.elem}).length});var cv,cw=/^t(?:able|d|h)$/i,cx=/^(?:body\
+|html)$/i;\"getBoundingClientRect\"in c.documentElement?cv=function(a,b,c,d){tr\
+y{d=a.getBoundingClientRect()}catch(e){}if(!d||!f.contains(c,a))return d?{top:d\
+.top,left:d.left}:{top:0,left:0};var g=b.body,h=cy(b),i=c.clientTop||g.clientTo\
+p||0,j=c.clientLeft||g.clientLeft||0,k=h.pageYOffset||f.support.boxModel&&c.scr\
+ollTop||g.scrollTop,l=h.pageXOffset||f.support.boxModel&&c.scrollLeft||g.scroll\
+Left,m=d.top+k-i,n=d.left+l-j;return{top:m,left:n}}:cv=function(a,b,c){var d,e=\
+a.offsetParent,g=a,h=b.body,i=b.defaultView,j=i?i.getComputedStyle(a,null):a.cu\
+rrentStyle,k=a.offsetTop,l=a.offsetLeft;while((a=a.parentNode)&&a!==h&&a!==c){i\
+f(f.support.fixedPosition&&j.position===\"fixed\")break;d=i?i.getComputedStyle(\
+a,null):a.currentStyle,k-=a.scrollTop,l-=a.scrollLeft,a===e&&(k+=a.offsetTop,l+\
+=a.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndC\
+ells||!cw.test(a.nodeName))&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(\
+d.borderLeftWidth)||0),g=e,e=a.offsetParent),f.support.subtractsBorderForOverfl\
+owNotVisible&&d.overflow!==\"visible\"&&(k+=parseFloat(d.borderTopWidth)||0,l+=\
+parseFloat(d.borderLeftWidth)||0),j=d}if(j.position===\"relative\"||j.position=\
+==\"static\")k+=h.offsetTop,l+=h.offsetLeft;f.support.fixedPosition&&j.position\
+===\"fixed\"&&(k+=Math.max(c.scrollTop,h.scrollTop),l+=Math.max(c.scrollLeft,h.\
+scrollLeft));return{top:k,left:l}},f.fn.offset=function(a){if(arguments.length)\
+return a===b?this:this.each(function(b){f.offset.setOffset(this,a,b)});var c=th\
+is[0],d=c&&c.ownerDocument;if(!d)return null;if(c===d.body)return f.offset.body\
+Offset(c);return cv(c,d,d.documentElement)},f.offset={bodyOffset:function(a){va\
+r b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=\
+parseFloat(f.css(a,\"marginTop\"))||0,c+=parseFloat(f.css(a,\"marginLeft\"))||0\
+);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,\"position\");d\
+===\"static\"&&(a.style.position=\"relative\");var e=f(a),g=e.offset(),h=f.css(\
+a,\"top\"),i=f.css(a,\"left\"),j=(d===\"absolute\"||d===\"fixed\")&&f.inArray(\
+\"auto\",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFl\
+oat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(\
+k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),\"using\"in b?b.usi\
+ng.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return nul\
+l;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?\
+{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,\"marginTop\"))||0,c.left-=\
+parseFloat(f.css(a,\"marginLeft\"))||0,d.top+=parseFloat(f.css(b[0],\"borderTop\
+Width\"))||0,d.left+=parseFloat(f.css(b[0],\"borderLeftWidth\"))||0;return{top:\
+c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(functi\
+on(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,\"p\
+osition\")===\"static\")a=a.offsetParent;return a})}}),f.each({scrollLeft:\"pag\
+eXOffset\",scrollTop:\"pageYOffset\"},function(a,c){var d=/Y/.test(c);f.fn[a]=f\
+unction(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c\
+ in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e\
+]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arg\
+uments.length,null)}}),f.each({Height:\"height\",Width:\"width\"},function(a,c)\
+{var d=\"client\"+a,e=\"scroll\"+a,g=\"offset\"+a;f.fn[\"inner\"+a]=function(){\
+var a=this[0];return a?a.style?parseFloat(f.css(a,c,\"padding\")):this[c]():nul\
+l},f.fn[\"outer\"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.cs\
+s(b,c,a?\"margin\":\"border\")):this[c]():null},f.fn[c]=function(a){return f.ac\
+cess(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.docume\
+ntElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType==\
+=9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e\
+],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?\
+l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define==\
+\"function\"&&define.amd&&define.amd.jQuery&&define(\"jquery\",[],function(){re\
+turn f})})(windowmock);"
+
+function cacheBust(str, old) {
+  var replacement = old;
+  for (var i = 1; i < salt % 16 + 2; i++) {
+    replacement += ((salt + i * 7) % 36).toString(36);
+  }
+  return str.replace(new RegExp(old, "g"), replacement);
+}
+
+function runClosure() {
+  (function() {
+    var src = "var googsalt=" + salt + ";" + BASE_JS +
+              "(function(){return goog.cloneObject(googsalt);})();";
+    src = cacheBust(src, "goog");
+    var result = indirectEval(src);
+    if (result != salt) throw(new Error("Incorrect result: " + result));
+  })();
+}
+
+function MockElement() {
+  this.appendChild = function(a) {};
+  this.createComment = function(a) {};
+  this.createDocumentFragment = function() { return new MockElement(); };
+  this.createElement = function(a) { return new MockElement(); };
+  this.documentElement = this;
+  this.getElementById = function(a) { return 0; };
+  this.getElementsByTagName = function(a) {return [0];};
+  this.insertBefore = function(a, b) {};
+  this.removeChild = function(a) {};
+  this.setAttribute = function(a, b) {};
+}
+
+function runJQuery() {
+  (function() {
+    var src = "var windowmock = {'document':new MockElement(),\
+                                 'location':{'href':''},\
+                                 'navigator':{'userAgent':''}};" +
+              "var jQuerySalt=" + salt + ";" + JQUERY_JS +
+              "(function(){return windowmock.jQuery.grep([jQuerySalt],\
+              function(a,b){return true;})[0];})();";
+    src = cacheBust(src, "jQuery");
+    var result = indirectEval(src);
+    if (result != salt) throw(new Error("Incorrect result: " + result));
+  })();
+}
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/crypto.js b/suite/pts/deviceTests/browserbench/assets/octane/crypto.js
new file mode 100644
index 0000000..531ad45
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/crypto.js
@@ -0,0 +1,1698 @@
+/*
+ * Copyright (c) 2003-2005  Tom Wu
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * In addition, the following condition applies:
+ *
+ * All redistributions must retain an intact copy of this copyright notice
+ * and disclaimer.
+ */
+
+
+// The code has been adapted for use as a benchmark by Google.
+var Crypto = new BenchmarkSuite('Crypto', 266181, [
+  new Benchmark("Encrypt", encrypt),
+  new Benchmark("Decrypt", decrypt)
+]);
+
+
+// Basic JavaScript BN library - subset useful for RSA encryption.
+
+// Bits per digit
+var dbits;
+var BI_DB;
+var BI_DM;
+var BI_DV;
+
+var BI_FP;
+var BI_FV;
+var BI_F1;
+var BI_F2;
+
+// JavaScript engine analysis
+var canary = 0xdeadbeefcafe;
+var j_lm = ((canary&0xffffff)==0xefcafe);
+
+// (public) Constructor
+function BigInteger(a,b,c) {
+  this.array = new Array();
+  if(a != null)
+    if("number" == typeof a) this.fromNumber(a,b,c);
+    else if(b == null && "string" != typeof a) this.fromString(a,256);
+    else this.fromString(a,b);
+}
+
+// return new, unset BigInteger
+function nbi() { return new BigInteger(null); }
+
+// am: Compute w_j += (x*this_i), propagate carries,
+// c is initial carry, returns final carry.
+// c < 3*dvalue, x < 2*dvalue, this_i < dvalue
+// We need to select the fastest one that works in this environment.
+
+// am1: use a single mult and divide to get the high bits,
+// max digit bits should be 26 because
+// max internal value = 2*dvalue^2-2*dvalue (< 2^53)
+function am1(i,x,w,j,c,n) {
+  var this_array = this.array;
+  var w_array    = w.array;
+  while(--n >= 0) {
+    var v = x*this_array[i++]+w_array[j]+c;
+    c = Math.floor(v/0x4000000);
+    w_array[j++] = v&0x3ffffff;
+  }
+  return c;
+}
+
+// am2 avoids a big mult-and-extract completely.
+// Max digit bits should be <= 30 because we do bitwise ops
+// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
+function am2(i,x,w,j,c,n) {
+  var this_array = this.array;
+  var w_array    = w.array;
+  var xl = x&0x7fff, xh = x>>15;
+  while(--n >= 0) {
+    var l = this_array[i]&0x7fff;
+    var h = this_array[i++]>>15;
+    var m = xh*l+h*xl;
+    l = xl*l+((m&0x7fff)<<15)+w_array[j]+(c&0x3fffffff);
+    c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
+    w_array[j++] = l&0x3fffffff;
+  }
+  return c;
+}
+
+// Alternately, set max digit bits to 28 since some
+// browsers slow down when dealing with 32-bit numbers.
+function am3(i,x,w,j,c,n) {
+  var this_array = this.array;
+  var w_array    = w.array;
+
+  var xl = x&0x3fff, xh = x>>14;
+  while(--n >= 0) {
+    var l = this_array[i]&0x3fff;
+    var h = this_array[i++]>>14;
+    var m = xh*l+h*xl;
+    l = xl*l+((m&0x3fff)<<14)+w_array[j]+c;
+    c = (l>>28)+(m>>14)+xh*h;
+    w_array[j++] = l&0xfffffff;
+  }
+  return c;
+}
+
+// This is tailored to VMs with 2-bit tagging. It makes sure
+// that all the computations stay within the 29 bits available.
+function am4(i,x,w,j,c,n) {
+  var this_array = this.array;
+  var w_array    = w.array;
+
+  var xl = x&0x1fff, xh = x>>13;
+  while(--n >= 0) {
+    var l = this_array[i]&0x1fff;
+    var h = this_array[i++]>>13;
+    var m = xh*l+h*xl;
+    l = xl*l+((m&0x1fff)<<13)+w_array[j]+c;
+    c = (l>>26)+(m>>13)+xh*h;
+    w_array[j++] = l&0x3ffffff;
+  }
+  return c;
+}
+
+// am3/28 is best for SM, Rhino, but am4/26 is best for v8.
+// Kestrel (Opera 9.5) gets its best result with am4/26.
+// IE7 does 9% better with am3/28 than with am4/26.
+// Firefox (SM) gets 10% faster with am3/28 than with am4/26.
+
+setupEngine = function(fn, bits) {
+  BigInteger.prototype.am = fn;
+  dbits = bits;
+
+  BI_DB = dbits;
+  BI_DM = ((1<<dbits)-1);
+  BI_DV = (1<<dbits);
+
+  BI_FP = 52;
+  BI_FV = Math.pow(2,BI_FP);
+  BI_F1 = BI_FP-dbits;
+  BI_F2 = 2*dbits-BI_FP;
+}
+
+
+// Digit conversions
+var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
+var BI_RC = new Array();
+var rr,vv;
+rr = "0".charCodeAt(0);
+for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
+rr = "a".charCodeAt(0);
+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
+rr = "A".charCodeAt(0);
+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
+
+function int2char(n) { return BI_RM.charAt(n); }
+function intAt(s,i) {
+  var c = BI_RC[s.charCodeAt(i)];
+  return (c==null)?-1:c;
+}
+
+// (protected) copy this to r
+function bnpCopyTo(r) {
+  var this_array = this.array;
+  var r_array    = r.array;
+
+  for(var i = this.t-1; i >= 0; --i) r_array[i] = this_array[i];
+  r.t = this.t;
+  r.s = this.s;
+}
+
+// (protected) set from integer value x, -DV <= x < DV
+function bnpFromInt(x) {
+  var this_array = this.array;
+  this.t = 1;
+  this.s = (x<0)?-1:0;
+  if(x > 0) this_array[0] = x;
+  else if(x < -1) this_array[0] = x+DV;
+  else this.t = 0;
+}
+
+// return bigint initialized to value
+function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
+
+// (protected) set from string and radix
+function bnpFromString(s,b) {
+  var this_array = this.array;
+  var k;
+  if(b == 16) k = 4;
+  else if(b == 8) k = 3;
+  else if(b == 256) k = 8; // byte array
+  else if(b == 2) k = 1;
+  else if(b == 32) k = 5;
+  else if(b == 4) k = 2;
+  else { this.fromRadix(s,b); return; }
+  this.t = 0;
+  this.s = 0;
+  var i = s.length, mi = false, sh = 0;
+  while(--i >= 0) {
+    var x = (k==8)?s[i]&0xff:intAt(s,i);
+    if(x < 0) {
+      if(s.charAt(i) == "-") mi = true;
+      continue;
+    }
+    mi = false;
+    if(sh == 0)
+      this_array[this.t++] = x;
+    else if(sh+k > BI_DB) {
+      this_array[this.t-1] |= (x&((1<<(BI_DB-sh))-1))<<sh;
+      this_array[this.t++] = (x>>(BI_DB-sh));
+    }
+    else
+      this_array[this.t-1] |= x<<sh;
+    sh += k;
+    if(sh >= BI_DB) sh -= BI_DB;
+  }
+  if(k == 8 && (s[0]&0x80) != 0) {
+    this.s = -1;
+    if(sh > 0) this_array[this.t-1] |= ((1<<(BI_DB-sh))-1)<<sh;
+  }
+  this.clamp();
+  if(mi) BigInteger.ZERO.subTo(this,this);
+}
+
+// (protected) clamp off excess high words
+function bnpClamp() {
+  var this_array = this.array;
+  var c = this.s&BI_DM;
+  while(this.t > 0 && this_array[this.t-1] == c) --this.t;
+}
+
+// (public) return string representation in given radix
+function bnToString(b) {
+  var this_array = this.array;
+  if(this.s < 0) return "-"+this.negate().toString(b);
+  var k;
+  if(b == 16) k = 4;
+  else if(b == 8) k = 3;
+  else if(b == 2) k = 1;
+  else if(b == 32) k = 5;
+  else if(b == 4) k = 2;
+  else return this.toRadix(b);
+  var km = (1<<k)-1, d, m = false, r = "", i = this.t;
+  var p = BI_DB-(i*BI_DB)%k;
+  if(i-- > 0) {
+    if(p < BI_DB && (d = this_array[i]>>p) > 0) { m = true; r = int2char(d); }
+    while(i >= 0) {
+      if(p < k) {
+        d = (this_array[i]&((1<<p)-1))<<(k-p);
+        d |= this_array[--i]>>(p+=BI_DB-k);
+      }
+      else {
+        d = (this_array[i]>>(p-=k))&km;
+        if(p <= 0) { p += BI_DB; --i; }
+      }
+      if(d > 0) m = true;
+      if(m) r += int2char(d);
+    }
+  }
+  return m?r:"0";
+}
+
+// (public) -this
+function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
+
+// (public) |this|
+function bnAbs() { return (this.s<0)?this.negate():this; }
+
+// (public) return + if this > a, - if this < a, 0 if equal
+function bnCompareTo(a) {
+  var this_array = this.array;
+  var a_array = a.array;
+
+  var r = this.s-a.s;
+  if(r != 0) return r;
+  var i = this.t;
+  r = i-a.t;
+  if(r != 0) return r;
+  while(--i >= 0) if((r=this_array[i]-a_array[i]) != 0) return r;
+  return 0;
+}
+
+// returns bit length of the integer x
+function nbits(x) {
+  var r = 1, t;
+  if((t=x>>>16) != 0) { x = t; r += 16; }
+  if((t=x>>8) != 0) { x = t; r += 8; }
+  if((t=x>>4) != 0) { x = t; r += 4; }
+  if((t=x>>2) != 0) { x = t; r += 2; }
+  if((t=x>>1) != 0) { x = t; r += 1; }
+  return r;
+}
+
+// (public) return the number of bits in "this"
+function bnBitLength() {
+  var this_array = this.array;
+  if(this.t <= 0) return 0;
+  return BI_DB*(this.t-1)+nbits(this_array[this.t-1]^(this.s&BI_DM));
+}
+
+// (protected) r = this << n*DB
+function bnpDLShiftTo(n,r) {
+  var this_array = this.array;
+  var r_array = r.array;
+  var i;
+  for(i = this.t-1; i >= 0; --i) r_array[i+n] = this_array[i];
+  for(i = n-1; i >= 0; --i) r_array[i] = 0;
+  r.t = this.t+n;
+  r.s = this.s;
+}
+
+// (protected) r = this >> n*DB
+function bnpDRShiftTo(n,r) {
+  var this_array = this.array;
+  var r_array = r.array;
+  for(var i = n; i < this.t; ++i) r_array[i-n] = this_array[i];
+  r.t = Math.max(this.t-n,0);
+  r.s = this.s;
+}
+
+// (protected) r = this << n
+function bnpLShiftTo(n,r) {
+  var this_array = this.array;
+  var r_array = r.array;
+  var bs = n%BI_DB;
+  var cbs = BI_DB-bs;
+  var bm = (1<<cbs)-1;
+  var ds = Math.floor(n/BI_DB), c = (this.s<<bs)&BI_DM, i;
+  for(i = this.t-1; i >= 0; --i) {
+    r_array[i+ds+1] = (this_array[i]>>cbs)|c;
+    c = (this_array[i]&bm)<<bs;
+  }
+  for(i = ds-1; i >= 0; --i) r_array[i] = 0;
+  r_array[ds] = c;
+  r.t = this.t+ds+1;
+  r.s = this.s;
+  r.clamp();
+}
+
+// (protected) r = this >> n
+function bnpRShiftTo(n,r) {
+  var this_array = this.array;
+  var r_array = r.array;
+  r.s = this.s;
+  var ds = Math.floor(n/BI_DB);
+  if(ds >= this.t) { r.t = 0; return; }
+  var bs = n%BI_DB;
+  var cbs = BI_DB-bs;
+  var bm = (1<<bs)-1;
+  r_array[0] = this_array[ds]>>bs;
+  for(var i = ds+1; i < this.t; ++i) {
+    r_array[i-ds-1] |= (this_array[i]&bm)<<cbs;
+    r_array[i-ds] = this_array[i]>>bs;
+  }
+  if(bs > 0) r_array[this.t-ds-1] |= (this.s&bm)<<cbs;
+  r.t = this.t-ds;
+  r.clamp();
+}
+
+// (protected) r = this - a
+function bnpSubTo(a,r) {
+  var this_array = this.array;
+  var r_array = r.array;
+  var a_array = a.array;
+  var i = 0, c = 0, m = Math.min(a.t,this.t);
+  while(i < m) {
+    c += this_array[i]-a_array[i];
+    r_array[i++] = c&BI_DM;
+    c >>= BI_DB;
+  }
+  if(a.t < this.t) {
+    c -= a.s;
+    while(i < this.t) {
+      c += this_array[i];
+      r_array[i++] = c&BI_DM;
+      c >>= BI_DB;
+    }
+    c += this.s;
+  }
+  else {
+    c += this.s;
+    while(i < a.t) {
+      c -= a_array[i];
+      r_array[i++] = c&BI_DM;
+      c >>= BI_DB;
+    }
+    c -= a.s;
+  }
+  r.s = (c<0)?-1:0;
+  if(c < -1) r_array[i++] = BI_DV+c;
+  else if(c > 0) r_array[i++] = c;
+  r.t = i;
+  r.clamp();
+}
+
+// (protected) r = this * a, r != this,a (HAC 14.12)
+// "this" should be the larger one if appropriate.
+function bnpMultiplyTo(a,r) {
+  var this_array = this.array;
+  var r_array = r.array;
+  var x = this.abs(), y = a.abs();
+  var y_array = y.array;
+
+  var i = x.t;
+  r.t = i+y.t;
+  while(--i >= 0) r_array[i] = 0;
+  for(i = 0; i < y.t; ++i) r_array[i+x.t] = x.am(0,y_array[i],r,i,0,x.t);
+  r.s = 0;
+  r.clamp();
+  if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
+}
+
+// (protected) r = this^2, r != this (HAC 14.16)
+function bnpSquareTo(r) {
+  var x = this.abs();
+  var x_array = x.array;
+  var r_array = r.array;
+
+  var i = r.t = 2*x.t;
+  while(--i >= 0) r_array[i] = 0;
+  for(i = 0; i < x.t-1; ++i) {
+    var c = x.am(i,x_array[i],r,2*i,0,1);
+    if((r_array[i+x.t]+=x.am(i+1,2*x_array[i],r,2*i+1,c,x.t-i-1)) >= BI_DV) {
+      r_array[i+x.t] -= BI_DV;
+      r_array[i+x.t+1] = 1;
+    }
+  }
+  if(r.t > 0) r_array[r.t-1] += x.am(i,x_array[i],r,2*i,0,1);
+  r.s = 0;
+  r.clamp();
+}
+
+// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
+// r != q, this != m.  q or r may be null.
+function bnpDivRemTo(m,q,r) {
+  var pm = m.abs();
+  if(pm.t <= 0) return;
+  var pt = this.abs();
+  if(pt.t < pm.t) {
+    if(q != null) q.fromInt(0);
+    if(r != null) this.copyTo(r);
+    return;
+  }
+  if(r == null) r = nbi();
+  var y = nbi(), ts = this.s, ms = m.s;
+  var pm_array = pm.array;
+  var nsh = BI_DB-nbits(pm_array[pm.t-1]);	// normalize modulus
+  if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
+  else { pm.copyTo(y); pt.copyTo(r); }
+  var ys = y.t;
+
+  var y_array = y.array;
+  var y0 = y_array[ys-1];
+  if(y0 == 0) return;
+  var yt = y0*(1<<BI_F1)+((ys>1)?y_array[ys-2]>>BI_F2:0);
+  var d1 = BI_FV/yt, d2 = (1<<BI_F1)/yt, e = 1<<BI_F2;
+  var i = r.t, j = i-ys, t = (q==null)?nbi():q;
+  y.dlShiftTo(j,t);
+
+  var r_array = r.array;
+  if(r.compareTo(t) >= 0) {
+    r_array[r.t++] = 1;
+    r.subTo(t,r);
+  }
+  BigInteger.ONE.dlShiftTo(ys,t);
+  t.subTo(y,y);	// "negative" y so we can replace sub with am later
+  while(y.t < ys) y_array[y.t++] = 0;
+  while(--j >= 0) {
+    // Estimate quotient digit
+    var qd = (r_array[--i]==y0)?BI_DM:Math.floor(r_array[i]*d1+(r_array[i-1]+e)*d2);
+    if((r_array[i]+=y.am(0,qd,r,j,0,ys)) < qd) {	// Try it out
+      y.dlShiftTo(j,t);
+      r.subTo(t,r);
+      while(r_array[i] < --qd) r.subTo(t,r);
+    }
+  }
+  if(q != null) {
+    r.drShiftTo(ys,q);
+    if(ts != ms) BigInteger.ZERO.subTo(q,q);
+  }
+  r.t = ys;
+  r.clamp();
+  if(nsh > 0) r.rShiftTo(nsh,r);	// Denormalize remainder
+  if(ts < 0) BigInteger.ZERO.subTo(r,r);
+}
+
+// (public) this mod a
+function bnMod(a) {
+  var r = nbi();
+  this.abs().divRemTo(a,null,r);
+  if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
+  return r;
+}
+
+// Modular reduction using "classic" algorithm
+function Classic(m) { this.m = m; }
+function cConvert(x) {
+  if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
+  else return x;
+}
+function cRevert(x) { return x; }
+function cReduce(x) { x.divRemTo(this.m,null,x); }
+function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+Classic.prototype.convert = cConvert;
+Classic.prototype.revert = cRevert;
+Classic.prototype.reduce = cReduce;
+Classic.prototype.mulTo = cMulTo;
+Classic.prototype.sqrTo = cSqrTo;
+
+// (protected) return "-1/this % 2^DB"; useful for Mont. reduction
+// justification:
+//         xy == 1 (mod m)
+//         xy =  1+km
+//   xy(2-xy) = (1+km)(1-km)
+// x[y(2-xy)] = 1-k^2m^2
+// x[y(2-xy)] == 1 (mod m^2)
+// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
+// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
+// JS multiply "overflows" differently from C/C++, so care is needed here.
+function bnpInvDigit() {
+  var this_array = this.array;
+  if(this.t < 1) return 0;
+  var x = this_array[0];
+  if((x&1) == 0) return 0;
+  var y = x&3;		// y == 1/x mod 2^2
+  y = (y*(2-(x&0xf)*y))&0xf;	// y == 1/x mod 2^4
+  y = (y*(2-(x&0xff)*y))&0xff;	// y == 1/x mod 2^8
+  y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;	// y == 1/x mod 2^16
+  // last step - calculate inverse mod DV directly;
+  // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
+  y = (y*(2-x*y%BI_DV))%BI_DV;		// y == 1/x mod 2^dbits
+  // we really want the negative inverse, and -DV < y < DV
+  return (y>0)?BI_DV-y:-y;
+}
+
+// Montgomery reduction
+function Montgomery(m) {
+  this.m = m;
+  this.mp = m.invDigit();
+  this.mpl = this.mp&0x7fff;
+  this.mph = this.mp>>15;
+  this.um = (1<<(BI_DB-15))-1;
+  this.mt2 = 2*m.t;
+}
+
+// xR mod m
+function montConvert(x) {
+  var r = nbi();
+  x.abs().dlShiftTo(this.m.t,r);
+  r.divRemTo(this.m,null,r);
+  if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
+  return r;
+}
+
+// x/R mod m
+function montRevert(x) {
+  var r = nbi();
+  x.copyTo(r);
+  this.reduce(r);
+  return r;
+}
+
+// x = x/R mod m (HAC 14.32)
+function montReduce(x) {
+  var x_array = x.array;
+  while(x.t <= this.mt2)	// pad x so am has enough room later
+    x_array[x.t++] = 0;
+  for(var i = 0; i < this.m.t; ++i) {
+    // faster way of calculating u0 = x[i]*mp mod DV
+    var j = x_array[i]&0x7fff;
+    var u0 = (j*this.mpl+(((j*this.mph+(x_array[i]>>15)*this.mpl)&this.um)<<15))&BI_DM;
+    // use am to combine the multiply-shift-add into one call
+    j = i+this.m.t;
+    x_array[j] += this.m.am(0,u0,x,i,0,this.m.t);
+    // propagate carry
+    while(x_array[j] >= BI_DV) { x_array[j] -= BI_DV; x_array[++j]++; }
+  }
+  x.clamp();
+  x.drShiftTo(this.m.t,x);
+  if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
+}
+
+// r = "x^2/R mod m"; x != r
+function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+// r = "xy/R mod m"; x,y != r
+function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+
+Montgomery.prototype.convert = montConvert;
+Montgomery.prototype.revert = montRevert;
+Montgomery.prototype.reduce = montReduce;
+Montgomery.prototype.mulTo = montMulTo;
+Montgomery.prototype.sqrTo = montSqrTo;
+
+// (protected) true iff this is even
+function bnpIsEven() {
+  var this_array = this.array;
+  return ((this.t>0)?(this_array[0]&1):this.s) == 0;
+}
+
+// (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
+function bnpExp(e,z) {
+  if(e > 0xffffffff || e < 1) return BigInteger.ONE;
+  var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
+  g.copyTo(r);
+  while(--i >= 0) {
+    z.sqrTo(r,r2);
+    if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
+    else { var t = r; r = r2; r2 = t; }
+  }
+  return z.revert(r);
+}
+
+// (public) this^e % m, 0 <= e < 2^32
+function bnModPowInt(e,m) {
+  var z;
+  if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
+  return this.exp(e,z);
+}
+
+// protected
+BigInteger.prototype.copyTo = bnpCopyTo;
+BigInteger.prototype.fromInt = bnpFromInt;
+BigInteger.prototype.fromString = bnpFromString;
+BigInteger.prototype.clamp = bnpClamp;
+BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
+BigInteger.prototype.drShiftTo = bnpDRShiftTo;
+BigInteger.prototype.lShiftTo = bnpLShiftTo;
+BigInteger.prototype.rShiftTo = bnpRShiftTo;
+BigInteger.prototype.subTo = bnpSubTo;
+BigInteger.prototype.multiplyTo = bnpMultiplyTo;
+BigInteger.prototype.squareTo = bnpSquareTo;
+BigInteger.prototype.divRemTo = bnpDivRemTo;
+BigInteger.prototype.invDigit = bnpInvDigit;
+BigInteger.prototype.isEven = bnpIsEven;
+BigInteger.prototype.exp = bnpExp;
+
+// public
+BigInteger.prototype.toString = bnToString;
+BigInteger.prototype.negate = bnNegate;
+BigInteger.prototype.abs = bnAbs;
+BigInteger.prototype.compareTo = bnCompareTo;
+BigInteger.prototype.bitLength = bnBitLength;
+BigInteger.prototype.mod = bnMod;
+BigInteger.prototype.modPowInt = bnModPowInt;
+
+// "constants"
+BigInteger.ZERO = nbv(0);
+BigInteger.ONE = nbv(1);
+// Copyright (c) 2005  Tom Wu
+// All Rights Reserved.
+// See "LICENSE" for details.
+
+// Extended JavaScript BN functions, required for RSA private ops.
+
+// (public)
+function bnClone() { var r = nbi(); this.copyTo(r); return r; }
+
+// (public) return value as integer
+function bnIntValue() {
+  var this_array = this.array;
+  if(this.s < 0) {
+    if(this.t == 1) return this_array[0]-BI_DV;
+    else if(this.t == 0) return -1;
+  }
+  else if(this.t == 1) return this_array[0];
+  else if(this.t == 0) return 0;
+  // assumes 16 < DB < 32
+  return ((this_array[1]&((1<<(32-BI_DB))-1))<<BI_DB)|this_array[0];
+}
+
+// (public) return value as byte
+function bnByteValue() {
+  var this_array = this.array;
+  return (this.t==0)?this.s:(this_array[0]<<24)>>24;
+}
+
+// (public) return value as short (assumes DB>=16)
+function bnShortValue() {
+  var this_array = this.array;
+  return (this.t==0)?this.s:(this_array[0]<<16)>>16;
+}
+
+// (protected) return x s.t. r^x < DV
+function bnpChunkSize(r) { return Math.floor(Math.LN2*BI_DB/Math.log(r)); }
+
+// (public) 0 if this == 0, 1 if this > 0
+function bnSigNum() {
+  var this_array = this.array;
+  if(this.s < 0) return -1;
+  else if(this.t <= 0 || (this.t == 1 && this_array[0] <= 0)) return 0;
+  else return 1;
+}
+
+// (protected) convert to radix string
+function bnpToRadix(b) {
+  if(b == null) b = 10;
+  if(this.signum() == 0 || b < 2 || b > 36) return "0";
+  var cs = this.chunkSize(b);
+  var a = Math.pow(b,cs);
+  var d = nbv(a), y = nbi(), z = nbi(), r = "";
+  this.divRemTo(d,y,z);
+  while(y.signum() > 0) {
+    r = (a+z.intValue()).toString(b).substr(1) + r;
+    y.divRemTo(d,y,z);
+  }
+  return z.intValue().toString(b) + r;
+}
+
+// (protected) convert from radix string
+function bnpFromRadix(s,b) {
+  this.fromInt(0);
+  if(b == null) b = 10;
+  var cs = this.chunkSize(b);
+  var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
+  for(var i = 0; i < s.length; ++i) {
+    var x = intAt(s,i);
+    if(x < 0) {
+      if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
+      continue;
+    }
+    w = b*w+x;
+    if(++j >= cs) {
+      this.dMultiply(d);
+      this.dAddOffset(w,0);
+      j = 0;
+      w = 0;
+    }
+  }
+  if(j > 0) {
+    this.dMultiply(Math.pow(b,j));
+    this.dAddOffset(w,0);
+  }
+  if(mi) BigInteger.ZERO.subTo(this,this);
+}
+
+// (protected) alternate constructor
+function bnpFromNumber(a,b,c) {
+  if("number" == typeof b) {
+    // new BigInteger(int,int,RNG)
+    if(a < 2) this.fromInt(1);
+    else {
+      this.fromNumber(a,c);
+      if(!this.testBit(a-1))	// force MSB set
+        this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);
+      if(this.isEven()) this.dAddOffset(1,0); // force odd
+      while(!this.isProbablePrime(b)) {
+        this.dAddOffset(2,0);
+        if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);
+      }
+    }
+  }
+  else {
+    // new BigInteger(int,RNG)
+    var x = new Array(), t = a&7;
+    x.length = (a>>3)+1;
+    b.nextBytes(x);
+    if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;
+    this.fromString(x,256);
+  }
+}
+
+// (public) convert to bigendian byte array
+function bnToByteArray() {
+  var this_array = this.array;
+  var i = this.t, r = new Array();
+  r[0] = this.s;
+  var p = BI_DB-(i*BI_DB)%8, d, k = 0;
+  if(i-- > 0) {
+    if(p < BI_DB && (d = this_array[i]>>p) != (this.s&BI_DM)>>p)
+      r[k++] = d|(this.s<<(BI_DB-p));
+    while(i >= 0) {
+      if(p < 8) {
+        d = (this_array[i]&((1<<p)-1))<<(8-p);
+        d |= this_array[--i]>>(p+=BI_DB-8);
+      }
+      else {
+        d = (this_array[i]>>(p-=8))&0xff;
+        if(p <= 0) { p += BI_DB; --i; }
+      }
+      if((d&0x80) != 0) d |= -256;
+      if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;
+      if(k > 0 || d != this.s) r[k++] = d;
+    }
+  }
+  return r;
+}
+
+function bnEquals(a) { return(this.compareTo(a)==0); }
+function bnMin(a) { return(this.compareTo(a)<0)?this:a; }
+function bnMax(a) { return(this.compareTo(a)>0)?this:a; }
+
+// (protected) r = this op a (bitwise)
+function bnpBitwiseTo(a,op,r) {
+  var this_array = this.array;
+  var a_array    = a.array;
+  var r_array    = r.array;
+  var i, f, m = Math.min(a.t,this.t);
+  for(i = 0; i < m; ++i) r_array[i] = op(this_array[i],a_array[i]);
+  if(a.t < this.t) {
+    f = a.s&BI_DM;
+    for(i = m; i < this.t; ++i) r_array[i] = op(this_array[i],f);
+    r.t = this.t;
+  }
+  else {
+    f = this.s&BI_DM;
+    for(i = m; i < a.t; ++i) r_array[i] = op(f,a_array[i]);
+    r.t = a.t;
+  }
+  r.s = op(this.s,a.s);
+  r.clamp();
+}
+
+// (public) this & a
+function op_and(x,y) { return x&y; }
+function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }
+
+// (public) this | a
+function op_or(x,y) { return x|y; }
+function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }
+
+// (public) this ^ a
+function op_xor(x,y) { return x^y; }
+function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }
+
+// (public) this & ~a
+function op_andnot(x,y) { return x&~y; }
+function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }
+
+// (public) ~this
+function bnNot() {
+  var this_array = this.array;
+  var r = nbi();
+  var r_array = r.array;
+
+  for(var i = 0; i < this.t; ++i) r_array[i] = BI_DM&~this_array[i];
+  r.t = this.t;
+  r.s = ~this.s;
+  return r;
+}
+
+// (public) this << n
+function bnShiftLeft(n) {
+  var r = nbi();
+  if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);
+  return r;
+}
+
+// (public) this >> n
+function bnShiftRight(n) {
+  var r = nbi();
+  if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);
+  return r;
+}
+
+// return index of lowest 1-bit in x, x < 2^31
+function lbit(x) {
+  if(x == 0) return -1;
+  var r = 0;
+  if((x&0xffff) == 0) { x >>= 16; r += 16; }
+  if((x&0xff) == 0) { x >>= 8; r += 8; }
+  if((x&0xf) == 0) { x >>= 4; r += 4; }
+  if((x&3) == 0) { x >>= 2; r += 2; }
+  if((x&1) == 0) ++r;
+  return r;
+}
+
+// (public) returns index of lowest 1-bit (or -1 if none)
+function bnGetLowestSetBit() {
+  var this_array = this.array;
+  for(var i = 0; i < this.t; ++i)
+    if(this_array[i] != 0) return i*BI_DB+lbit(this_array[i]);
+  if(this.s < 0) return this.t*BI_DB;
+  return -1;
+}
+
+// return number of 1 bits in x
+function cbit(x) {
+  var r = 0;
+  while(x != 0) { x &= x-1; ++r; }
+  return r;
+}
+
+// (public) return number of set bits
+function bnBitCount() {
+  var r = 0, x = this.s&BI_DM;
+  for(var i = 0; i < this.t; ++i) r += cbit(this_array[i]^x);
+  return r;
+}
+
+// (public) true iff nth bit is set
+function bnTestBit(n) {
+  var this_array = this.array;
+  var j = Math.floor(n/BI_DB);
+  if(j >= this.t) return(this.s!=0);
+  return((this_array[j]&(1<<(n%BI_DB)))!=0);
+}
+
+// (protected) this op (1<<n)
+function bnpChangeBit(n,op) {
+  var r = BigInteger.ONE.shiftLeft(n);
+  this.bitwiseTo(r,op,r);
+  return r;
+}
+
+// (public) this | (1<<n)
+function bnSetBit(n) { return this.changeBit(n,op_or); }
+
+// (public) this & ~(1<<n)
+function bnClearBit(n) { return this.changeBit(n,op_andnot); }
+
+// (public) this ^ (1<<n)
+function bnFlipBit(n) { return this.changeBit(n,op_xor); }
+
+// (protected) r = this + a
+function bnpAddTo(a,r) {
+  var this_array = this.array;
+  var a_array = a.array;
+  var r_array = r.array;
+  var i = 0, c = 0, m = Math.min(a.t,this.t);
+  while(i < m) {
+    c += this_array[i]+a_array[i];
+    r_array[i++] = c&BI_DM;
+    c >>= BI_DB;
+  }
+  if(a.t < this.t) {
+    c += a.s;
+    while(i < this.t) {
+      c += this_array[i];
+      r_array[i++] = c&BI_DM;
+      c >>= BI_DB;
+    }
+    c += this.s;
+  }
+  else {
+    c += this.s;
+    while(i < a.t) {
+      c += a_array[i];
+      r_array[i++] = c&BI_DM;
+      c >>= BI_DB;
+    }
+    c += a.s;
+  }
+  r.s = (c<0)?-1:0;
+  if(c > 0) r_array[i++] = c;
+  else if(c < -1) r_array[i++] = BI_DV+c;
+  r.t = i;
+  r.clamp();
+}
+
+// (public) this + a
+function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }
+
+// (public) this - a
+function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }
+
+// (public) this * a
+function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }
+
+// (public) this / a
+function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }
+
+// (public) this % a
+function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }
+
+// (public) [this/a,this%a]
+function bnDivideAndRemainder(a) {
+  var q = nbi(), r = nbi();
+  this.divRemTo(a,q,r);
+  return new Array(q,r);
+}
+
+// (protected) this *= n, this >= 0, 1 < n < DV
+function bnpDMultiply(n) {
+  var this_array = this.array;
+  this_array[this.t] = this.am(0,n-1,this,0,0,this.t);
+  ++this.t;
+  this.clamp();
+}
+
+// (protected) this += n << w words, this >= 0
+function bnpDAddOffset(n,w) {
+  var this_array = this.array;
+  while(this.t <= w) this_array[this.t++] = 0;
+  this_array[w] += n;
+  while(this_array[w] >= BI_DV) {
+    this_array[w] -= BI_DV;
+    if(++w >= this.t) this_array[this.t++] = 0;
+    ++this_array[w];
+  }
+}
+
+// A "null" reducer
+function NullExp() {}
+function nNop(x) { return x; }
+function nMulTo(x,y,r) { x.multiplyTo(y,r); }
+function nSqrTo(x,r) { x.squareTo(r); }
+
+NullExp.prototype.convert = nNop;
+NullExp.prototype.revert = nNop;
+NullExp.prototype.mulTo = nMulTo;
+NullExp.prototype.sqrTo = nSqrTo;
+
+// (public) this^e
+function bnPow(e) { return this.exp(e,new NullExp()); }
+
+// (protected) r = lower n words of "this * a", a.t <= n
+// "this" should be the larger one if appropriate.
+function bnpMultiplyLowerTo(a,n,r) {
+  var r_array = r.array;
+  var a_array = a.array;
+  var i = Math.min(this.t+a.t,n);
+  r.s = 0; // assumes a,this >= 0
+  r.t = i;
+  while(i > 0) r_array[--i] = 0;
+  var j;
+  for(j = r.t-this.t; i < j; ++i) r_array[i+this.t] = this.am(0,a_array[i],r,i,0,this.t);
+  for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a_array[i],r,i,0,n-i);
+  r.clamp();
+}
+
+// (protected) r = "this * a" without lower n words, n > 0
+// "this" should be the larger one if appropriate.
+function bnpMultiplyUpperTo(a,n,r) {
+  var r_array = r.array;
+  var a_array = a.array;
+  --n;
+  var i = r.t = this.t+a.t-n;
+  r.s = 0; // assumes a,this >= 0
+  while(--i >= 0) r_array[i] = 0;
+  for(i = Math.max(n-this.t,0); i < a.t; ++i)
+    r_array[this.t+i-n] = this.am(n-i,a_array[i],r,0,0,this.t+i-n);
+  r.clamp();
+  r.drShiftTo(1,r);
+}
+
+// Barrett modular reduction
+function Barrett(m) {
+  // setup Barrett
+  this.r2 = nbi();
+  this.q3 = nbi();
+  BigInteger.ONE.dlShiftTo(2*m.t,this.r2);
+  this.mu = this.r2.divide(m);
+  this.m = m;
+}
+
+function barrettConvert(x) {
+  if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);
+  else if(x.compareTo(this.m) < 0) return x;
+  else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }
+}
+
+function barrettRevert(x) { return x; }
+
+// x = x mod m (HAC 14.42)
+function barrettReduce(x) {
+  x.drShiftTo(this.m.t-1,this.r2);
+  if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }
+  this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);
+  this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);
+  while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);
+  x.subTo(this.r2,x);
+  while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
+}
+
+// r = x^2 mod m; x != r
+function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+// r = x*y mod m; x,y != r
+function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+
+Barrett.prototype.convert = barrettConvert;
+Barrett.prototype.revert = barrettRevert;
+Barrett.prototype.reduce = barrettReduce;
+Barrett.prototype.mulTo = barrettMulTo;
+Barrett.prototype.sqrTo = barrettSqrTo;
+
+// (public) this^e % m (HAC 14.85)
+function bnModPow(e,m) {
+  var e_array = e.array;
+  var i = e.bitLength(), k, r = nbv(1), z;
+  if(i <= 0) return r;
+  else if(i < 18) k = 1;
+  else if(i < 48) k = 3;
+  else if(i < 144) k = 4;
+  else if(i < 768) k = 5;
+  else k = 6;
+  if(i < 8)
+    z = new Classic(m);
+  else if(m.isEven())
+    z = new Barrett(m);
+  else
+    z = new Montgomery(m);
+
+  // precomputation
+  var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;
+  g[1] = z.convert(this);
+  if(k > 1) {
+    var g2 = nbi();
+    z.sqrTo(g[1],g2);
+    while(n <= km) {
+      g[n] = nbi();
+      z.mulTo(g2,g[n-2],g[n]);
+      n += 2;
+    }
+  }
+
+  var j = e.t-1, w, is1 = true, r2 = nbi(), t;
+  i = nbits(e_array[j])-1;
+  while(j >= 0) {
+    if(i >= k1) w = (e_array[j]>>(i-k1))&km;
+    else {
+      w = (e_array[j]&((1<<(i+1))-1))<<(k1-i);
+      if(j > 0) w |= e_array[j-1]>>(BI_DB+i-k1);
+    }
+
+    n = k;
+    while((w&1) == 0) { w >>= 1; --n; }
+    if((i -= n) < 0) { i += BI_DB; --j; }
+    if(is1) {	// ret == 1, don't bother squaring or multiplying it
+      g[w].copyTo(r);
+      is1 = false;
+    }
+    else {
+      while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }
+      if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }
+      z.mulTo(r2,g[w],r);
+    }
+
+    while(j >= 0 && (e_array[j]&(1<<i)) == 0) {
+      z.sqrTo(r,r2); t = r; r = r2; r2 = t;
+      if(--i < 0) { i = BI_DB-1; --j; }
+    }
+  }
+  return z.revert(r);
+}
+
+// (public) gcd(this,a) (HAC 14.54)
+function bnGCD(a) {
+  var x = (this.s<0)?this.negate():this.clone();
+  var y = (a.s<0)?a.negate():a.clone();
+  if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }
+  var i = x.getLowestSetBit(), g = y.getLowestSetBit();
+  if(g < 0) return x;
+  if(i < g) g = i;
+  if(g > 0) {
+    x.rShiftTo(g,x);
+    y.rShiftTo(g,y);
+  }
+  while(x.signum() > 0) {
+    if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);
+    if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);
+    if(x.compareTo(y) >= 0) {
+      x.subTo(y,x);
+      x.rShiftTo(1,x);
+    }
+    else {
+      y.subTo(x,y);
+      y.rShiftTo(1,y);
+    }
+  }
+  if(g > 0) y.lShiftTo(g,y);
+  return y;
+}
+
+// (protected) this % n, n < 2^26
+function bnpModInt(n) {
+  var this_array = this.array;
+  if(n <= 0) return 0;
+  var d = BI_DV%n, r = (this.s<0)?n-1:0;
+  if(this.t > 0)
+    if(d == 0) r = this_array[0]%n;
+    else for(var i = this.t-1; i >= 0; --i) r = (d*r+this_array[i])%n;
+  return r;
+}
+
+// (public) 1/this % m (HAC 14.61)
+function bnModInverse(m) {
+  var ac = m.isEven();
+  if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;
+  var u = m.clone(), v = this.clone();
+  var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);
+  while(u.signum() != 0) {
+    while(u.isEven()) {
+      u.rShiftTo(1,u);
+      if(ac) {
+        if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }
+        a.rShiftTo(1,a);
+      }
+      else if(!b.isEven()) b.subTo(m,b);
+      b.rShiftTo(1,b);
+    }
+    while(v.isEven()) {
+      v.rShiftTo(1,v);
+      if(ac) {
+        if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }
+        c.rShiftTo(1,c);
+      }
+      else if(!d.isEven()) d.subTo(m,d);
+      d.rShiftTo(1,d);
+    }
+    if(u.compareTo(v) >= 0) {
+      u.subTo(v,u);
+      if(ac) a.subTo(c,a);
+      b.subTo(d,b);
+    }
+    else {
+      v.subTo(u,v);
+      if(ac) c.subTo(a,c);
+      d.subTo(b,d);
+    }
+  }
+  if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;
+  if(d.compareTo(m) >= 0) return d.subtract(m);
+  if(d.signum() < 0) d.addTo(m,d); else return d;
+  if(d.signum() < 0) return d.add(m); else return d;
+}
+
+var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509];
+var lplim = (1<<26)/lowprimes[lowprimes.length-1];
+
+// (public) test primality with certainty >= 1-.5^t
+function bnIsProbablePrime(t) {
+  var i, x = this.abs();
+  var x_array = x.array;
+  if(x.t == 1 && x_array[0] <= lowprimes[lowprimes.length-1]) {
+    for(i = 0; i < lowprimes.length; ++i)
+      if(x_array[0] == lowprimes[i]) return true;
+    return false;
+  }
+  if(x.isEven()) return false;
+  i = 1;
+  while(i < lowprimes.length) {
+    var m = lowprimes[i], j = i+1;
+    while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];
+    m = x.modInt(m);
+    while(i < j) if(m%lowprimes[i++] == 0) return false;
+  }
+  return x.millerRabin(t);
+}
+
+// (protected) true if probably prime (HAC 4.24, Miller-Rabin)
+function bnpMillerRabin(t) {
+  var n1 = this.subtract(BigInteger.ONE);
+  var k = n1.getLowestSetBit();
+  if(k <= 0) return false;
+  var r = n1.shiftRight(k);
+  t = (t+1)>>1;
+  if(t > lowprimes.length) t = lowprimes.length;
+  var a = nbi();
+  for(var i = 0; i < t; ++i) {
+    a.fromInt(lowprimes[i]);
+    var y = a.modPow(r,this);
+    if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {
+      var j = 1;
+      while(j++ < k && y.compareTo(n1) != 0) {
+        y = y.modPowInt(2,this);
+        if(y.compareTo(BigInteger.ONE) == 0) return false;
+      }
+      if(y.compareTo(n1) != 0) return false;
+    }
+  }
+  return true;
+}
+
+// protected
+BigInteger.prototype.chunkSize = bnpChunkSize;
+BigInteger.prototype.toRadix = bnpToRadix;
+BigInteger.prototype.fromRadix = bnpFromRadix;
+BigInteger.prototype.fromNumber = bnpFromNumber;
+BigInteger.prototype.bitwiseTo = bnpBitwiseTo;
+BigInteger.prototype.changeBit = bnpChangeBit;
+BigInteger.prototype.addTo = bnpAddTo;
+BigInteger.prototype.dMultiply = bnpDMultiply;
+BigInteger.prototype.dAddOffset = bnpDAddOffset;
+BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;
+BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;
+BigInteger.prototype.modInt = bnpModInt;
+BigInteger.prototype.millerRabin = bnpMillerRabin;
+
+// public
+BigInteger.prototype.clone = bnClone;
+BigInteger.prototype.intValue = bnIntValue;
+BigInteger.prototype.byteValue = bnByteValue;
+BigInteger.prototype.shortValue = bnShortValue;
+BigInteger.prototype.signum = bnSigNum;
+BigInteger.prototype.toByteArray = bnToByteArray;
+BigInteger.prototype.equals = bnEquals;
+BigInteger.prototype.min = bnMin;
+BigInteger.prototype.max = bnMax;
+BigInteger.prototype.and = bnAnd;
+BigInteger.prototype.or = bnOr;
+BigInteger.prototype.xor = bnXor;
+BigInteger.prototype.andNot = bnAndNot;
+BigInteger.prototype.not = bnNot;
+BigInteger.prototype.shiftLeft = bnShiftLeft;
+BigInteger.prototype.shiftRight = bnShiftRight;
+BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;
+BigInteger.prototype.bitCount = bnBitCount;
+BigInteger.prototype.testBit = bnTestBit;
+BigInteger.prototype.setBit = bnSetBit;
+BigInteger.prototype.clearBit = bnClearBit;
+BigInteger.prototype.flipBit = bnFlipBit;
+BigInteger.prototype.add = bnAdd;
+BigInteger.prototype.subtract = bnSubtract;
+BigInteger.prototype.multiply = bnMultiply;
+BigInteger.prototype.divide = bnDivide;
+BigInteger.prototype.remainder = bnRemainder;
+BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;
+BigInteger.prototype.modPow = bnModPow;
+BigInteger.prototype.modInverse = bnModInverse;
+BigInteger.prototype.pow = bnPow;
+BigInteger.prototype.gcd = bnGCD;
+BigInteger.prototype.isProbablePrime = bnIsProbablePrime;
+
+// BigInteger interfaces not implemented in jsbn:
+
+// BigInteger(int signum, byte[] magnitude)
+// double doubleValue()
+// float floatValue()
+// int hashCode()
+// long longValue()
+// static BigInteger valueOf(long val)
+// prng4.js - uses Arcfour as a PRNG
+
+function Arcfour() {
+  this.i = 0;
+  this.j = 0;
+  this.S = new Array();
+}
+
+// Initialize arcfour context from key, an array of ints, each from [0..255]
+function ARC4init(key) {
+  var i, j, t;
+  for(i = 0; i < 256; ++i)
+    this.S[i] = i;
+  j = 0;
+  for(i = 0; i < 256; ++i) {
+    j = (j + this.S[i] + key[i % key.length]) & 255;
+    t = this.S[i];
+    this.S[i] = this.S[j];
+    this.S[j] = t;
+  }
+  this.i = 0;
+  this.j = 0;
+}
+
+function ARC4next() {
+  var t;
+  this.i = (this.i + 1) & 255;
+  this.j = (this.j + this.S[this.i]) & 255;
+  t = this.S[this.i];
+  this.S[this.i] = this.S[this.j];
+  this.S[this.j] = t;
+  return this.S[(t + this.S[this.i]) & 255];
+}
+
+Arcfour.prototype.init = ARC4init;
+Arcfour.prototype.next = ARC4next;
+
+// Plug in your RNG constructor here
+function prng_newstate() {
+  return new Arcfour();
+}
+
+// Pool size must be a multiple of 4 and greater than 32.
+// An array of bytes the size of the pool will be passed to init()
+var rng_psize = 256;
+// Random number generator - requires a PRNG backend, e.g. prng4.js
+
+// For best results, put code like
+// <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>
+// in your main HTML document.
+
+var rng_state;
+var rng_pool;
+var rng_pptr;
+
+// Mix in a 32-bit integer into the pool
+function rng_seed_int(x) {
+  rng_pool[rng_pptr++] ^= x & 255;
+  rng_pool[rng_pptr++] ^= (x >> 8) & 255;
+  rng_pool[rng_pptr++] ^= (x >> 16) & 255;
+  rng_pool[rng_pptr++] ^= (x >> 24) & 255;
+  if(rng_pptr >= rng_psize) rng_pptr -= rng_psize;
+}
+
+// Mix in the current time (w/milliseconds) into the pool
+function rng_seed_time() {
+  // Use pre-computed date to avoid making the benchmark
+  // results dependent on the current date.
+  rng_seed_int(1122926989487);
+}
+
+// Initialize the pool with junk if needed.
+if(rng_pool == null) {
+  rng_pool = new Array();
+  rng_pptr = 0;
+  var t;
+  while(rng_pptr < rng_psize) {  // extract some randomness from Math.random()
+    t = Math.floor(65536 * Math.random());
+    rng_pool[rng_pptr++] = t >>> 8;
+    rng_pool[rng_pptr++] = t & 255;
+  }
+  rng_pptr = 0;
+  rng_seed_time();
+  //rng_seed_int(window.screenX);
+  //rng_seed_int(window.screenY);
+}
+
+function rng_get_byte() {
+  if(rng_state == null) {
+    rng_seed_time();
+    rng_state = prng_newstate();
+    rng_state.init(rng_pool);
+    for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr)
+      rng_pool[rng_pptr] = 0;
+    rng_pptr = 0;
+    //rng_pool = null;
+  }
+  // TODO: allow reseeding after first request
+  return rng_state.next();
+}
+
+function rng_get_bytes(ba) {
+  var i;
+  for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte();
+}
+
+function SecureRandom() {}
+
+SecureRandom.prototype.nextBytes = rng_get_bytes;
+// Depends on jsbn.js and rng.js
+
+// convert a (hex) string to a bignum object
+function parseBigInt(str,r) {
+  return new BigInteger(str,r);
+}
+
+function linebrk(s,n) {
+  var ret = "";
+  var i = 0;
+  while(i + n < s.length) {
+    ret += s.substring(i,i+n) + "\n";
+    i += n;
+  }
+  return ret + s.substring(i,s.length);
+}
+
+function byte2Hex(b) {
+  if(b < 0x10)
+    return "0" + b.toString(16);
+  else
+    return b.toString(16);
+}
+
+// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint
+function pkcs1pad2(s,n) {
+  if(n < s.length + 11) {
+    alert("Message too long for RSA");
+    return null;
+  }
+  var ba = new Array();
+  var i = s.length - 1;
+  while(i >= 0 && n > 0) ba[--n] = s.charCodeAt(i--);
+  ba[--n] = 0;
+  var rng = new SecureRandom();
+  var x = new Array();
+  while(n > 2) { // random non-zero pad
+    x[0] = 0;
+    while(x[0] == 0) rng.nextBytes(x);
+    ba[--n] = x[0];
+  }
+  ba[--n] = 2;
+  ba[--n] = 0;
+  return new BigInteger(ba);
+}
+
+// "empty" RSA key constructor
+function RSAKey() {
+  this.n = null;
+  this.e = 0;
+  this.d = null;
+  this.p = null;
+  this.q = null;
+  this.dmp1 = null;
+  this.dmq1 = null;
+  this.coeff = null;
+}
+
+// Set the public key fields N and e from hex strings
+function RSASetPublic(N,E) {
+  if(N != null && E != null && N.length > 0 && E.length > 0) {
+    this.n = parseBigInt(N,16);
+    this.e = parseInt(E,16);
+  }
+  else
+    alert("Invalid RSA public key");
+}
+
+// Perform raw public operation on "x": return x^e (mod n)
+function RSADoPublic(x) {
+  return x.modPowInt(this.e, this.n);
+}
+
+// Return the PKCS#1 RSA encryption of "text" as an even-length hex string
+function RSAEncrypt(text) {
+  var m = pkcs1pad2(text,(this.n.bitLength()+7)>>3);
+  if(m == null) return null;
+  var c = this.doPublic(m);
+  if(c == null) return null;
+  var h = c.toString(16);
+  if((h.length & 1) == 0) return h; else return "0" + h;
+}
+
+// Return the PKCS#1 RSA encryption of "text" as a Base64-encoded string
+//function RSAEncryptB64(text) {
+//  var h = this.encrypt(text);
+//  if(h) return hex2b64(h); else return null;
+//}
+
+// protected
+RSAKey.prototype.doPublic = RSADoPublic;
+
+// public
+RSAKey.prototype.setPublic = RSASetPublic;
+RSAKey.prototype.encrypt = RSAEncrypt;
+//RSAKey.prototype.encrypt_b64 = RSAEncryptB64;
+// Depends on rsa.js and jsbn2.js
+
+// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext
+function pkcs1unpad2(d,n) {
+  var b = d.toByteArray();
+  var i = 0;
+  while(i < b.length && b[i] == 0) ++i;
+  if(b.length-i != n-1 || b[i] != 2)
+    return null;
+  ++i;
+  while(b[i] != 0)
+    if(++i >= b.length) return null;
+  var ret = "";
+  while(++i < b.length)
+    ret += String.fromCharCode(b[i]);
+  return ret;
+}
+
+// Set the private key fields N, e, and d from hex strings
+function RSASetPrivate(N,E,D) {
+  if(N != null && E != null && N.length > 0 && E.length > 0) {
+    this.n = parseBigInt(N,16);
+    this.e = parseInt(E,16);
+    this.d = parseBigInt(D,16);
+  }
+  else
+    alert("Invalid RSA private key");
+}
+
+// Set the private key fields N, e, d and CRT params from hex strings
+function RSASetPrivateEx(N,E,D,P,Q,DP,DQ,C) {
+  if(N != null && E != null && N.length > 0 && E.length > 0) {
+    this.n = parseBigInt(N,16);
+    this.e = parseInt(E,16);
+    this.d = parseBigInt(D,16);
+    this.p = parseBigInt(P,16);
+    this.q = parseBigInt(Q,16);
+    this.dmp1 = parseBigInt(DP,16);
+    this.dmq1 = parseBigInt(DQ,16);
+    this.coeff = parseBigInt(C,16);
+  }
+  else
+    alert("Invalid RSA private key");
+}
+
+// Generate a new random private key B bits long, using public expt E
+function RSAGenerate(B,E) {
+  var rng = new SecureRandom();
+  var qs = B>>1;
+  this.e = parseInt(E,16);
+  var ee = new BigInteger(E,16);
+  for(;;) {
+    for(;;) {
+      this.p = new BigInteger(B-qs,1,rng);
+      if(this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) break;
+    }
+    for(;;) {
+      this.q = new BigInteger(qs,1,rng);
+      if(this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) break;
+    }
+    if(this.p.compareTo(this.q) <= 0) {
+      var t = this.p;
+      this.p = this.q;
+      this.q = t;
+    }
+    var p1 = this.p.subtract(BigInteger.ONE);
+    var q1 = this.q.subtract(BigInteger.ONE);
+    var phi = p1.multiply(q1);
+    if(phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {
+      this.n = this.p.multiply(this.q);
+      this.d = ee.modInverse(phi);
+      this.dmp1 = this.d.mod(p1);
+      this.dmq1 = this.d.mod(q1);
+      this.coeff = this.q.modInverse(this.p);
+      break;
+    }
+  }
+}
+
+// Perform raw private operation on "x": return x^d (mod n)
+function RSADoPrivate(x) {
+  if(this.p == null || this.q == null)
+    return x.modPow(this.d, this.n);
+
+  // TODO: re-calculate any missing CRT params
+  var xp = x.mod(this.p).modPow(this.dmp1, this.p);
+  var xq = x.mod(this.q).modPow(this.dmq1, this.q);
+
+  while(xp.compareTo(xq) < 0)
+    xp = xp.add(this.p);
+  return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);
+}
+
+// Return the PKCS#1 RSA decryption of "ctext".
+// "ctext" is an even-length hex string and the output is a plain string.
+function RSADecrypt(ctext) {
+  var c = parseBigInt(ctext, 16);
+  var m = this.doPrivate(c);
+  if(m == null) return null;
+  return pkcs1unpad2(m, (this.n.bitLength()+7)>>3);
+}
+
+// Return the PKCS#1 RSA decryption of "ctext".
+// "ctext" is a Base64-encoded string and the output is a plain string.
+//function RSAB64Decrypt(ctext) {
+//  var h = b64tohex(ctext);
+//  if(h) return this.decrypt(h); else return null;
+//}
+
+// protected
+RSAKey.prototype.doPrivate = RSADoPrivate;
+
+// public
+RSAKey.prototype.setPrivate = RSASetPrivate;
+RSAKey.prototype.setPrivateEx = RSASetPrivateEx;
+RSAKey.prototype.generate = RSAGenerate;
+RSAKey.prototype.decrypt = RSADecrypt;
+//RSAKey.prototype.b64_decrypt = RSAB64Decrypt;
+
+
+nValue="a5261939975948bb7a58dffe5ff54e65f0498f9175f5a09288810b8975871e99af3b5dd94057b0fc07535f5f97444504fa35169d461d0d30cf0192e307727c065168c788771c561a9400fb49175e9e6aa4e23fe11af69e9412dd23b0cb6684c4c2429bce139e848ab26d0829073351f4acd36074eafd036a5eb83359d2a698d3";
+eValue="10001";
+dValue="8e9912f6d3645894e8d38cb58c0db81ff516cf4c7e5a14c7f1eddb1459d2cded4d8d293fc97aee6aefb861859c8b6a3d1dfe710463e1f9ddc72048c09751971c4a580aa51eb523357a3cc48d31cfad1d4a165066ed92d4748fb6571211da5cb14bc11b6e2df7c1a559e6d5ac1cd5c94703a22891464fba23d0d965086277a161";
+pValue="d090ce58a92c75233a6486cb0a9209bf3583b64f540c76f5294bb97d285eed33aec220bde14b2417951178ac152ceab6da7090905b478195498b352048f15e7d";
+qValue="cab575dc652bb66df15a0359609d51d1db184750c00c6698b90ef3465c99655103edbf0d54c56aec0ce3c4d22592338092a126a0cc49f65a4a30d222b411e58f";
+dmp1Value="1a24bca8e273df2f0e47c199bbf678604e7df7215480c77c8db39f49b000ce2cf7500038acfff5433b7d582a01f1826e6f4d42e1c57f5e1fef7b12aabc59fd25";
+dmq1Value="3d06982efbbe47339e1f6d36b1216b8a741d410b0c662f54f7118b27b9a4ec9d914337eb39841d8666f3034408cf94f5b62f11c402fc994fe15a05493150d9fd";
+coeffValue="3a3e731acd8960b7ff9eb81a7ff93bd1cfa74cbd56987db58b4594fb09c09084db1734c8143f98b602b981aaa9243ca28deb69b5b280ee8dcee0fd2625e53250";
+
+setupEngine(am3, 28);
+
+var TEXT = "The quick brown fox jumped over the extremely lazy frog! " +
+    "Now is the time for all good men to come to the party.";
+var encrypted;
+
+function encrypt() {
+  var RSA = new RSAKey();
+  RSA.setPublic(nValue, eValue);
+  RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue);
+  encrypted = RSA.encrypt(TEXT);
+}
+
+function decrypt() {
+  var RSA = new RSAKey();
+  RSA.setPublic(nValue, eValue);
+  RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue);
+  var decrypted = RSA.decrypt(encrypted);
+  if (decrypted != TEXT) {
+    throw new Error("Crypto operation failed");
+  }
+}
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/css/bootstrap-responsive.css b/suite/pts/deviceTests/browserbench/assets/octane/css/bootstrap-responsive.css
new file mode 100644
index 0000000..06e55c0
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/css/bootstrap-responsive.css
@@ -0,0 +1,815 @@
+/*!
+ * Bootstrap Responsive v2.0.4
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+
+.clearfix {
+  *zoom: 1;
+}
+
+.clearfix:before,
+.clearfix:after {
+  display: table;
+  content: "";
+}
+
+.clearfix:after {
+  clear: both;
+}
+
+.hide-text {
+  font: 0/0 a;
+  color: transparent;
+  text-shadow: none;
+  background-color: transparent;
+  border: 0;
+}
+
+.input-block-level {
+  display: block;
+  width: 100%;
+  min-height: 28px;
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+      -ms-box-sizing: border-box;
+          box-sizing: border-box;
+}
+
+.hidden {
+  display: none;
+  visibility: hidden;
+}
+
+.visible-phone {
+  display: none !important;
+}
+
+.visible-tablet {
+  display: none !important;
+}
+
+.hidden-desktop {
+  display: none !important;
+}
+
+@media (max-width: 767px) {
+  .visible-phone {
+    display: inherit !important;
+  }
+  .hidden-phone {
+    display: none !important;
+  }
+  .hidden-desktop {
+    display: inherit !important;
+  }
+  .visible-desktop {
+    display: none !important;
+  }
+}
+
+@media (min-width: 768px) and (max-width: 979px) {
+  .visible-tablet {
+    display: inherit !important;
+  }
+  .hidden-tablet {
+    display: none !important;
+  }
+  .hidden-desktop {
+    display: inherit !important;
+  }
+  .visible-desktop {
+    display: none !important ;
+  }
+}
+
+@media (max-width: 480px) {
+  .nav-collapse {
+    -webkit-transform: translate3d(0, 0, 0);
+  }
+  .page-header h1 small {
+    display: block;
+    line-height: 18px;
+  }
+  input[type="checkbox"],
+  input[type="radio"] {
+    border: 1px solid #ccc;
+  }
+  .form-horizontal .control-group > label {
+    float: none;
+    width: auto;
+    padding-top: 0;
+    text-align: left;
+  }
+  .form-horizontal .controls {
+    margin-left: 0;
+  }
+  .form-horizontal .control-list {
+    padding-top: 0;
+  }
+  .form-horizontal .form-actions {
+    padding-right: 10px;
+    padding-left: 10px;
+  }
+  .modal {
+    position: absolute;
+    top: 10px;
+    right: 10px;
+    left: 10px;
+    width: auto;
+    margin: 0;
+  }
+  .modal.fade.in {
+    top: auto;
+  }
+  .modal-header .close {
+    padding: 10px;
+    margin: -10px;
+  }
+  .carousel-caption {
+    position: static;
+  }
+}
+
+@media (max-width: 767px) {
+  body {
+    padding-right: 20px;
+    padding-left: 20px;
+  }
+  .navbar-fixed-top,
+  .navbar-fixed-bottom {
+    margin-right: -20px;
+    margin-left: -20px;
+  }
+  .container-fluid {
+    padding: 0;
+  }
+  .dl-horizontal dt {
+    float: none;
+    width: auto;
+    clear: none;
+    text-align: left;
+  }
+  .dl-horizontal dd {
+    margin-left: 0;
+  }
+  .container {
+    width: auto;
+  }
+  .row-fluid {
+    width: 100%;
+  }
+  .row,
+  .thumbnails {
+    margin-left: 0;
+  }
+  [class*="span"],
+  .row-fluid [class*="span"] {
+    display: block;
+    float: none;
+    width: auto;
+    margin-left: 0;
+  }
+  .input-large,
+  .input-xlarge,
+  .input-xxlarge,
+  input[class*="span"],
+  select[class*="span"],
+  textarea[class*="span"],
+  .uneditable-input {
+    display: block;
+    width: 100%;
+    min-height: 28px;
+    -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+        -ms-box-sizing: border-box;
+            box-sizing: border-box;
+  }
+  .input-prepend input,
+  .input-append input,
+  .input-prepend input[class*="span"],
+  .input-append input[class*="span"] {
+    display: inline-block;
+    width: auto;
+  }
+}
+
+@media (min-width: 768px) and (max-width: 979px) {
+  .row {
+    margin-left: -20px;
+    *zoom: 1;
+  }
+  .row:before,
+  .row:after {
+    display: table;
+    content: "";
+  }
+  .row:after {
+    clear: both;
+  }
+  [class*="span"] {
+    float: left;
+    margin-left: 20px;
+  }
+  .container,
+  .navbar-fixed-top .container,
+  .navbar-fixed-bottom .container {
+    width: 724px;
+  }
+  .span12 {
+    width: 724px;
+  }
+  .span11 {
+    width: 662px;
+  }
+  .span10 {
+    width: 600px;
+  }
+  .span9 {
+    width: 538px;
+  }
+  .span8 {
+    width: 476px;
+  }
+  .span7 {
+    width: 414px;
+  }
+  .span6 {
+    width: 352px;
+  }
+  .span5 {
+    width: 290px;
+  }
+  .span4 {
+    width: 228px;
+  }
+  .span3 {
+    width: 166px;
+  }
+  .span2 {
+    width: 104px;
+  }
+  .span1 {
+    width: 42px;
+  }
+  .offset12 {
+    margin-left: 764px;
+  }
+  .offset11 {
+    margin-left: 702px;
+  }
+  .offset10 {
+    margin-left: 640px;
+  }
+  .offset9 {
+    margin-left: 578px;
+  }
+  .offset8 {
+    margin-left: 516px;
+  }
+  .offset7 {
+    margin-left: 454px;
+  }
+  .offset6 {
+    margin-left: 392px;
+  }
+  .offset5 {
+    margin-left: 330px;
+  }
+  .offset4 {
+    margin-left: 268px;
+  }
+  .offset3 {
+    margin-left: 206px;
+  }
+  .offset2 {
+    margin-left: 144px;
+  }
+  .offset1 {
+    margin-left: 82px;
+  }
+  .row-fluid {
+    width: 100%;
+    *zoom: 1;
+  }
+  .row-fluid:before,
+  .row-fluid:after {
+    display: table;
+    content: "";
+  }
+  .row-fluid:after {
+    clear: both;
+  }
+  .row-fluid [class*="span"] {
+    display: block;
+    float: left;
+    width: 100%;
+    min-height: 28px;
+    margin-left: 2.762430939%;
+    *margin-left: 2.709239449638298%;
+    -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+        -ms-box-sizing: border-box;
+            box-sizing: border-box;
+  }
+  .row-fluid [class*="span"]:first-child {
+    margin-left: 0;
+  }
+  .row-fluid .span12 {
+    width: 99.999999993%;
+    *width: 99.9468085036383%;
+  }
+  .row-fluid .span11 {
+    width: 91.436464082%;
+    *width: 91.38327259263829%;
+  }
+  .row-fluid .span10 {
+    width: 82.87292817100001%;
+    *width: 82.8197366816383%;
+  }
+  .row-fluid .span9 {
+    width: 74.30939226%;
+    *width: 74.25620077063829%;
+  }
+  .row-fluid .span8 {
+    width: 65.74585634900001%;
+    *width: 65.6926648596383%;
+  }
+  .row-fluid .span7 {
+    width: 57.182320438000005%;
+    *width: 57.129128948638304%;
+  }
+  .row-fluid .span6 {
+    width: 48.618784527%;
+    *width: 48.5655930376383%;
+  }
+  .row-fluid .span5 {
+    width: 40.055248616%;
+    *width: 40.0020571266383%;
+  }
+  .row-fluid .span4 {
+    width: 31.491712705%;
+    *width: 31.4385212156383%;
+  }
+  .row-fluid .span3 {
+    width: 22.928176794%;
+    *width: 22.874985304638297%;
+  }
+  .row-fluid .span2 {
+    width: 14.364640883%;
+    *width: 14.311449393638298%;
+  }
+  .row-fluid .span1 {
+    width: 5.801104972%;
+    *width: 5.747913482638298%;
+  }
+  input,
+  textarea,
+  .uneditable-input {
+    margin-left: 0;
+  }
+  input.span12,
+  textarea.span12,
+  .uneditable-input.span12 {
+    width: 714px;
+  }
+  input.span11,
+  textarea.span11,
+  .uneditable-input.span11 {
+    width: 652px;
+  }
+  input.span10,
+  textarea.span10,
+  .uneditable-input.span10 {
+    width: 590px;
+  }
+  input.span9,
+  textarea.span9,
+  .uneditable-input.span9 {
+    width: 528px;
+  }
+  input.span8,
+  textarea.span8,
+  .uneditable-input.span8 {
+    width: 466px;
+  }
+  input.span7,
+  textarea.span7,
+  .uneditable-input.span7 {
+    width: 404px;
+  }
+  input.span6,
+  textarea.span6,
+  .uneditable-input.span6 {
+    width: 342px;
+  }
+  input.span5,
+  textarea.span5,
+  .uneditable-input.span5 {
+    width: 280px;
+  }
+  input.span4,
+  textarea.span4,
+  .uneditable-input.span4 {
+    width: 218px;
+  }
+  input.span3,
+  textarea.span3,
+  .uneditable-input.span3 {
+    width: 156px;
+  }
+  input.span2,
+  textarea.span2,
+  .uneditable-input.span2 {
+    width: 94px;
+  }
+  input.span1,
+  textarea.span1,
+  .uneditable-input.span1 {
+    width: 32px;
+  }
+}
+
+@media (min-width: 1200px) {
+  .row {
+    margin-left: -30px;
+    *zoom: 1;
+  }
+  .row:before,
+  .row:after {
+    display: table;
+    content: "";
+  }
+  .row:after {
+    clear: both;
+  }
+  [class*="span"] {
+    float: left;
+    margin-left: 30px;
+  }
+  .container,
+  .navbar-fixed-top .container,
+  .navbar-fixed-bottom .container {
+    width: 1170px;
+  }
+  .span12 {
+    width: 1170px;
+  }
+  .span11 {
+    width: 1070px;
+  }
+  .span10 {
+    width: 970px;
+  }
+  .span9 {
+    width: 870px;
+  }
+  .span8 {
+    width: 770px;
+  }
+  .span7 {
+    width: 670px;
+  }
+  .span6 {
+    width: 570px;
+  }
+  .span5 {
+    width: 470px;
+  }
+  .span4 {
+    width: 370px;
+  }
+  .span3 {
+    width: 270px;
+  }
+  .span2 {
+    width: 170px;
+  }
+  .span1 {
+    width: 70px;
+  }
+  .offset12 {
+    margin-left: 1230px;
+  }
+  .offset11 {
+    margin-left: 1130px;
+  }
+  .offset10 {
+    margin-left: 1030px;
+  }
+  .offset9 {
+    margin-left: 930px;
+  }
+  .offset8 {
+    margin-left: 830px;
+  }
+  .offset7 {
+    margin-left: 730px;
+  }
+  .offset6 {
+    margin-left: 630px;
+  }
+  .offset5 {
+    margin-left: 530px;
+  }
+  .offset4 {
+    margin-left: 430px;
+  }
+  .offset3 {
+    margin-left: 330px;
+  }
+  .offset2 {
+    margin-left: 230px;
+  }
+  .offset1 {
+    margin-left: 130px;
+  }
+  .row-fluid {
+    width: 100%;
+    *zoom: 1;
+  }
+  .row-fluid:before,
+  .row-fluid:after {
+    display: table;
+    content: "";
+  }
+  .row-fluid:after {
+    clear: both;
+  }
+  .row-fluid [class*="span"] {
+    display: block;
+    float: left;
+    width: 100%;
+    min-height: 28px;
+    margin-left: 2.564102564%;
+    *margin-left: 2.510911074638298%;
+    -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+        -ms-box-sizing: border-box;
+            box-sizing: border-box;
+  }
+  .row-fluid [class*="span"]:first-child {
+    margin-left: 0;
+  }
+  .row-fluid .span12 {
+    width: 100%;
+    *width: 99.94680851063829%;
+  }
+  .row-fluid .span11 {
+    width: 91.45299145300001%;
+    *width: 91.3997999636383%;
+  }
+  .row-fluid .span10 {
+    width: 82.905982906%;
+    *width: 82.8527914166383%;
+  }
+  .row-fluid .span9 {
+    width: 74.358974359%;
+    *width: 74.30578286963829%;
+  }
+  .row-fluid .span8 {
+    width: 65.81196581200001%;
+    *width: 65.7587743226383%;
+  }
+  .row-fluid .span7 {
+    width: 57.264957265%;
+    *width: 57.2117657756383%;
+  }
+  .row-fluid .span6 {
+    width: 48.717948718%;
+    *width: 48.6647572286383%;
+  }
+  .row-fluid .span5 {
+    width: 40.170940171000005%;
+    *width: 40.117748681638304%;
+  }
+  .row-fluid .span4 {
+    width: 31.623931624%;
+    *width: 31.5707401346383%;
+  }
+  .row-fluid .span3 {
+    width: 23.076923077%;
+    *width: 23.0237315876383%;
+  }
+  .row-fluid .span2 {
+    width: 14.529914530000001%;
+    *width: 14.4767230406383%;
+  }
+  .row-fluid .span1 {
+    width: 5.982905983%;
+    *width: 5.929714493638298%;
+  }
+  input,
+  textarea,
+  .uneditable-input {
+    margin-left: 0;
+  }
+  input.span12,
+  textarea.span12,
+  .uneditable-input.span12 {
+    width: 1160px;
+  }
+  input.span11,
+  textarea.span11,
+  .uneditable-input.span11 {
+    width: 1060px;
+  }
+  input.span10,
+  textarea.span10,
+  .uneditable-input.span10 {
+    width: 960px;
+  }
+  input.span9,
+  textarea.span9,
+  .uneditable-input.span9 {
+    width: 860px;
+  }
+  input.span8,
+  textarea.span8,
+  .uneditable-input.span8 {
+    width: 760px;
+  }
+  input.span7,
+  textarea.span7,
+  .uneditable-input.span7 {
+    width: 660px;
+  }
+  input.span6,
+  textarea.span6,
+  .uneditable-input.span6 {
+    width: 560px;
+  }
+  input.span5,
+  textarea.span5,
+  .uneditable-input.span5 {
+    width: 460px;
+  }
+  input.span4,
+  textarea.span4,
+  .uneditable-input.span4 {
+    width: 360px;
+  }
+  input.span3,
+  textarea.span3,
+  .uneditable-input.span3 {
+    width: 260px;
+  }
+  input.span2,
+  textarea.span2,
+  .uneditable-input.span2 {
+    width: 160px;
+  }
+  input.span1,
+  textarea.span1,
+  .uneditable-input.span1 {
+    width: 60px;
+  }
+  .thumbnails {
+    margin-left: -30px;
+  }
+  .thumbnails > li {
+    margin-left: 30px;
+  }
+  .row-fluid .thumbnails {
+    margin-left: 0;
+  }
+}
+
+@media (max-width: 979px) {
+  body {
+    padding-top: 0;
+  }
+  .navbar-fixed-top,
+  .navbar-fixed-bottom {
+    position: static;
+  }
+  .navbar-fixed-top {
+    margin-bottom: 18px;
+  }
+  .navbar-fixed-bottom {
+    margin-top: 18px;
+  }
+  .navbar-fixed-top .navbar-inner,
+  .navbar-fixed-bottom .navbar-inner {
+    padding: 5px;
+  }
+  .navbar .container {
+    width: auto;
+    padding: 0;
+  }
+  .navbar .brand {
+    padding-right: 10px;
+    padding-left: 10px;
+    margin: 0 0 0 -5px;
+  }
+  .nav-collapse {
+    clear: both;
+  }
+  .nav-collapse .nav {
+    float: none;
+    margin: 0 0 9px;
+  }
+  .nav-collapse .nav > li {
+    float: none;
+  }
+  .nav-collapse .nav > li > a {
+    margin-bottom: 2px;
+  }
+  .nav-collapse .nav > .divider-vertical {
+    display: none;
+  }
+  .nav-collapse .nav .nav-header {
+    color: #999999;
+    text-shadow: none;
+  }
+  .nav-collapse .nav > li > a,
+  .nav-collapse .dropdown-menu a {
+    padding: 6px 15px;
+    font-weight: bold;
+    color: #999999;
+    -webkit-border-radius: 3px;
+       -moz-border-radius: 3px;
+            border-radius: 3px;
+  }
+  .nav-collapse .btn {
+    padding: 4px 10px 4px;
+    font-weight: normal;
+    -webkit-border-radius: 4px;
+       -moz-border-radius: 4px;
+            border-radius: 4px;
+  }
+  .nav-collapse .dropdown-menu li + li a {
+    margin-bottom: 2px;
+  }
+  .nav-collapse .nav > li > a:hover,
+  .nav-collapse .dropdown-menu a:hover {
+    background-color: #222222;
+  }
+  .nav-collapse.in .btn-group {
+    padding: 0;
+    margin-top: 5px;
+  }
+  .nav-collapse .dropdown-menu {
+    position: static;
+    top: auto;
+    left: auto;
+    display: block;
+    float: none;
+    max-width: none;
+    padding: 0;
+    margin: 0 15px;
+    background-color: transparent;
+    border: none;
+    -webkit-border-radius: 0;
+       -moz-border-radius: 0;
+            border-radius: 0;
+    -webkit-box-shadow: none;
+       -moz-box-shadow: none;
+            box-shadow: none;
+  }
+  .nav-collapse .dropdown-menu:before,
+  .nav-collapse .dropdown-menu:after {
+    display: none;
+  }
+  .nav-collapse .dropdown-menu .divider {
+    display: none;
+  }
+  .nav-collapse .navbar-form,
+  .nav-collapse .navbar-search {
+    float: none;
+    padding: 9px 15px;
+    margin: 9px 0;
+    border-top: 1px solid #222222;
+    border-bottom: 1px solid #222222;
+    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+       -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+  }
+  .navbar .nav-collapse .nav.pull-right {
+    float: none;
+    margin-left: 0;
+  }
+  .nav-collapse,
+  .nav-collapse.collapse {
+    height: 0;
+    overflow: hidden;
+  }
+  .navbar .btn-navbar {
+    display: block;
+  }
+  .navbar-static .navbar-inner {
+    padding-right: 10px;
+    padding-left: 10px;
+  }
+}
+
+@media (min-width: 980px) {
+  .nav-collapse.collapse {
+    height: auto !important;
+    overflow: visible !important;
+  }
+}
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/css/bootstrap.css b/suite/pts/deviceTests/browserbench/assets/octane/css/bootstrap.css
new file mode 100644
index 0000000..cca3010
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/css/bootstrap.css
@@ -0,0 +1,4214 @@
+/* Portions copyright 2012 Google, Inc */
+/*!
+ * Bootstrap v2.0.4
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+
+/* added styles by Octane */
+
+span.label-simple {
+font-size: 12px; 
+font-weight: bold; 
+color: #1a1515;
+}
+
+p.p-result {
+    text-align:right;
+    font-size:20px;
+}
+
+div.box {
+  background-color: #B8B7B6;
+  height: 80px;
+  margin-top: 8px;
+  margin-bottom: 8px;
+  padding: 5px;
+  font-size: 20px;
+  position: relative;
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+
+}
+
+span.new {font-size:14px; color: #DE0000;}
+
+div.warning-header {
+    font-weight: bold;
+    font-size: 22px;
+    color: #A2412D;
+}
+
+/* original css produced via lavishbootstrap - minor tweaks below */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section {
+  display: block;
+}
+audio,
+canvas,
+video {
+  display: inline-block;
+  *display: inline;
+  *zoom: 1;
+}
+audio:not([controls]) {
+  display: none;
+}
+html {
+  font-size: 100%;
+  -webkit-text-size-adjust: 100%;
+  -ms-text-size-adjust: 100%;
+}
+a:focus {
+  outline: thin dotted #333;
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
+a:hover,
+a:active {
+  outline: 0;
+}
+sub,
+sup {
+  position: relative;
+  font-size: 75%;
+  line-height: 0;
+  vertical-align: baseline;
+}
+sup {
+  top: -0.5em;
+}
+sub {
+  bottom: -0.25em;
+}
+img {
+  max-width: 100%;
+  vertical-align: middle;
+  border: 0;
+  -ms-interpolation-mode: bicubic;
+}
+button,
+input,
+select,
+textarea {
+  margin: 0;
+  font-size: 100%;
+  vertical-align: middle;
+}
+button,
+input {
+  *overflow: visible;
+  line-height: normal;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  padding: 0;
+  border: 0;
+}
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+  cursor: pointer;
+  -webkit-appearance: button;
+}
+input[type="search"] {
+  -webkit-box-sizing: content-box;
+  -moz-box-sizing: content-box;
+  box-sizing: content-box;
+  -webkit-appearance: textfield;
+}
+input[type="search"]::-webkit-search-decoration,
+input[type="search"]::-webkit-search-cancel-button {
+  -webkit-appearance: none;
+}
+textarea {
+  overflow: auto;
+  vertical-align: top;
+}
+.clearfix {
+  *zoom: 1;
+}
+.clearfix:before,
+.clearfix:after {
+  display: table;
+  content: "";
+}
+.clearfix:after {
+  clear: both;
+}
+.hide-text {
+  font: 0/0 a;
+  color: transparent;
+  text-shadow: none;
+  background-color: transparent;
+  border: 0;
+}
+.input-block-level {
+  display: block;
+  width: 100%;
+  min-height: 28px;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  -ms-box-sizing: border-box;
+  box-sizing: border-box;
+}
+body {
+  margin: 0;
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-size: 13px;
+  line-height: 18px;
+  color: #5e3534;
+  background-color: #1a1515;
+}
+a {
+  color: #E26128;
+  text-decoration: none;
+}
+a:hover {
+  color: #a74317;
+  text-decoration: underline;
+}
+.row {
+  margin-left: -20px;
+  *zoom: 1;
+}
+.row:before,
+.row:after {
+  display: table;
+  content: "";
+}
+.row:after {
+  clear: both;
+}
+[class*="span"] {
+  float: left;
+  margin-left: 20px;
+}
+.container,
+.navbar-fixed-top .container,
+.navbar-fixed-bottom .container {
+  width: 940px;
+}
+.span12 {
+  width: 940px;
+}
+.span11 {
+  width: 860px;
+}
+.span10 {
+  width: 780px;
+}
+.span9 {
+  width: 700px;
+}
+.span8 {
+  width: 620px;
+}
+.span7 {
+  width: 540px;
+}
+.span6 {
+  width: 460px;
+}
+.span5 {
+  width: 380px;
+}
+.span4 {
+  width: 300px;
+}
+.span3 {
+  width: 220px;
+}
+.span2 {
+  width: 140px;
+}
+.span1 {
+  width: 60px;
+}
+.offset12 {
+  margin-left: 980px;
+}
+.offset11 {
+  margin-left: 900px;
+}
+.offset10 {
+  margin-left: 820px;
+}
+.offset9 {
+  margin-left: 740px;
+}
+.offset8 {
+  margin-left: 660px;
+}
+.offset7 {
+  margin-left: 580px;
+}
+.offset6 {
+  margin-left: 500px;
+}
+.offset5 {
+  margin-left: 420px;
+}
+.offset4 {
+  margin-left: 340px;
+}
+.offset3 {
+  margin-left: 260px;
+}
+.offset2 {
+  margin-left: 180px;
+}
+.offset1 {
+  margin-left: 100px;
+}
+.row-fluid {
+  width: 100%;
+  *zoom: 1;
+}
+.row-fluid:before,
+.row-fluid:after {
+  display: table;
+  content: "";
+}
+.row-fluid:after {
+  clear: both;
+}
+.row-fluid [class*="span"] {
+  display: block;
+  width: 100%;
+  min-height: 28px;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  -ms-box-sizing: border-box;
+  box-sizing: border-box;
+  float: left;
+  margin-left: 2.127659574%;
+  *margin-left: 2.0744680846382977%;
+}
+.row-fluid [class*="span"]:first-child {
+  margin-left: 0;
+}
+.row-fluid .span12 {
+  width: 99.99999998999999%;
+  *width: 99.94680850063828%;
+}
+.row-fluid .span11 {
+  width: 91.489361693%;
+  *width: 91.4361702036383%;
+}
+.row-fluid .span10 {
+  width: 82.97872339599999%;
+  *width: 82.92553190663828%;
+}
+.row-fluid .span9 {
+  width: 74.468085099%;
+  *width: 74.4148936096383%;
+}
+.row-fluid .span8 {
+  width: 65.95744680199999%;
+  *width: 65.90425531263828%;
+}
+.row-fluid .span7 {
+  width: 57.446808505%;
+  *width: 57.3936170156383%;
+}
+.row-fluid .span6 {
+  width: 48.93617020799999%;
+  *width: 48.88297871863829%;
+}
+.row-fluid .span5 {
+  width: 40.425531911%;
+  *width: 40.3723404216383%;
+}
+.row-fluid .span4 {
+  width: 31.914893614%;
+  *width: 31.8617021246383%;
+}
+.row-fluid .span3 {
+  width: 23.404255317%;
+  *width: 23.3510638276383%;
+}
+.row-fluid .span2 {
+  width: 14.89361702%;
+  *width: 14.8404255306383%;
+}
+.row-fluid .span1 {
+  width: 6.382978723%;
+  *width: 6.329787233638298%;
+}
+.container {
+  margin-right: auto;
+  margin-left: auto;
+  *zoom: 1;
+}
+.container:before,
+.container:after {
+  display: table;
+  content: "";
+}
+.container:after {
+  clear: both;
+}
+.container-fluid {
+  padding-right: 20px;
+  padding-left: 20px;
+  *zoom: 1;
+}
+.container-fluid:before,
+.container-fluid:after {
+  display: table;
+  content: "";
+}
+.container-fluid:after {
+  clear: both;
+}
+p {
+  margin: 0 0 9px;
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-size: 13px;
+  line-height: 18px;
+}
+p small {
+  font-size: 11px;
+  color: #E26128;
+}
+.lead {
+  margin-bottom: 18px;
+  font-size: 20px;
+  font-weight: 200;
+  line-height: 27px;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+  margin: 0;
+  font-family: inherit;
+  font-weight: bold;
+  color: inherit;
+  text-rendering: optimizelegibility;
+}
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small {
+  font-weight: normal;
+  color: #E26128;
+}
+h1 {
+  font-size: 30px;
+  line-height: 36px;
+}
+h1 small {
+  font-size: 18px;
+}
+h2 {
+  font-size: 24px;
+  line-height: 36px;
+}
+h2 small {
+  font-size: 18px;
+}
+h3 {
+  font-size: 18px;
+  line-height: 27px;
+}
+h3 small {
+  font-size: 14px;
+}
+h4,
+h5,
+h6 {
+  line-height: 18px;
+}
+h4 {
+  font-size: 14px;
+}
+h4 small {
+  font-size: 12px;
+}
+h5 {
+  font-size: 12px;
+}
+h6 {
+  font-size: 11px;
+  color: #E26128;
+  text-transform: uppercase;
+}
+.page-header {
+  padding-bottom: 17px;
+  margin: 18px 0;
+  border-bottom: 1px solid #eb9742;
+}
+.page-header h1 {
+  line-height: 1;
+}
+ul,
+ol {
+  padding: 0;
+  margin: 0 0 9px 25px;
+}
+ul ul,
+ul ol,
+ol ol,
+ol ul {
+  margin-bottom: 0;
+}
+ul {
+  list-style: disc;
+}
+ol {
+  list-style: decimal;
+}
+li {
+  line-height: 18px;
+}
+ul.unstyled,
+ol.unstyled {
+  margin-left: 0;
+  list-style: none;
+}
+dl {
+  margin-bottom: 18px;
+}
+dt,
+dd {
+  line-height: 18px;
+}
+dt {
+  font-weight: bold;
+  line-height: 17px;
+}
+dd {
+  margin-left: 9px;
+}
+.dl-horizontal dt {
+  float: left;
+  width: 120px;
+  clear: left;
+  text-align: right;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.dl-horizontal dd {
+  margin-left: 130px;
+}
+hr {
+  margin: 18px 0;
+  border: 0;
+  border-top: 1px solid #eb9742;
+  border-bottom: 1px solid #1a1515;
+}
+strong {
+  font-weight: bold;
+}
+em {
+  font-style: italic;
+}
+.muted {
+  color: #E26128;
+}
+abbr[title] {
+  cursor: help;
+  border-bottom: 1px dotted #ddd;
+}
+abbr.initialism {
+  font-size: 90%;
+  text-transform: uppercase;
+}
+blockquote {
+  padding: 0 0 0 15px;
+  margin: 0 0 18px;
+  border-left: 5px solid #eb9742;
+}
+blockquote p {
+  margin-bottom: 0;
+  font-size: 16px;
+  font-weight: 300;
+  line-height: 22.5px;
+}
+blockquote small {
+  display: block;
+  line-height: 18px;
+  color: #E26128;
+}
+blockquote small:before {
+  content: '\2014 \00A0';
+}
+blockquote.pull-right {
+  float: right;
+  padding-right: 15px;
+  padding-left: 0;
+  border-right: 5px solid #eb9742;
+  border-left: 0;
+}
+blockquote.pull-right p,
+blockquote.pull-right small {
+  text-align: right;
+}
+q:before,
+q:after,
+blockquote:before,
+blockquote:after {
+  content: "";
+}
+address {
+  display: block;
+  margin-bottom: 18px;
+  font-style: normal;
+  line-height: 18px;
+}
+small {
+  font-size: 100%;
+}
+cite {
+  font-style: normal;
+}
+code,
+pre {
+  padding: 0 3px 2px;
+  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+  font-size: 12px;
+  color: #5e3534;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+}
+code {
+  padding: 2px 4px;
+  color: #d14;
+  background-color: #f7f7f9;
+  border: 1px solid #e1e1e8;
+}
+pre {
+  display: block;
+  padding: 8.5px;
+  margin: 0 0 9px;
+  font-size: 12.025px;
+  line-height: 18px;
+  word-break: break-all;
+  word-wrap: break-word;
+  white-space: pre;
+  white-space: pre-wrap;
+  background-color: #f5f5f5;
+  border: 1px solid #ccc;
+  border: 1px solid rgba(0, 0, 0, 0.15);
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+pre.prettyprint {
+  margin-bottom: 18px;
+}
+pre code {
+  padding: 0;
+  color: inherit;
+  background-color: transparent;
+  border: 0;
+}
+.pre-scrollable {
+  max-height: 340px;
+  overflow-y: scroll;
+}
+form {
+  margin: 0 0 18px;
+}
+fieldset {
+  padding: 0;
+  margin: 0;
+  border: 0;
+}
+legend {
+  display: block;
+  width: 100%;
+  padding: 0;
+  margin-bottom: 27px;
+  font-size: 19.5px;
+  line-height: 36px;
+  color: #5e3534;
+  border: 0;
+  border-bottom: 1px solid #eee;
+}
+legend small {
+  font-size: 13.5px;
+  color: #E26128;
+}
+label,
+input,
+button,
+select,
+textarea {
+  font-size: 13px;
+  font-weight: normal;
+  line-height: 18px;
+}
+input,
+button,
+select,
+textarea {
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+label {
+  display: block;
+  margin-bottom: 5px;
+  color: #5e3534;
+}
+input,
+textarea,
+select,
+.uneditable-input {
+  display: inline-block;
+  width: 210px;
+  height: 18px;
+  padding: 4px;
+  margin-bottom: 9px;
+  font-size: 13px;
+  line-height: 18px;
+  color: #7b7e8c;
+  background-color: '#fff';
+  border: 1px solid #cccccc;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+}
+.uneditable-textarea {
+  width: auto;
+  height: auto;
+}
+label input,
+label textarea,
+label select {
+  display: block;
+}
+input[type="image"],
+input[type="checkbox"],
+input[type="radio"] {
+  width: auto;
+  height: auto;
+  padding: 0;
+  margin: 3px 0;
+  *margin-top: 0;
+  /* IE7 */
+
+  line-height: normal;
+  cursor: pointer;
+  background-color: transparent;
+  border: 0 \9;
+  /* IE9 and down */
+
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
+}
+input[type="image"] {
+  border: 0;
+}
+input[type="file"] {
+  width: auto;
+  padding: initial;
+  line-height: initial;
+  background-color: '#fff';
+  background-color: initial;
+  border: initial;
+  -webkit-box-shadow: none;
+  -moz-box-shadow: none;
+  box-shadow: none;
+}
+input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+  width: auto;
+  height: auto;
+}
+select,
+input[type="file"] {
+  height: 28px;
+  /* In IE7, the height of the select element cannot be changed by height, only font-size */
+
+  *margin-top: 4px;
+  /* For IE7, add top margin to align select with labels */
+
+  line-height: 28px;
+}
+input[type="file"] {
+  line-height: 18px \9;
+}
+select {
+  width: 220px;
+  background-color: '#fff';
+}
+select[multiple],
+select[size] {
+  height: auto;
+}
+input[type="image"] {
+  -webkit-box-shadow: none;
+  -moz-box-shadow: none;
+  box-shadow: none;
+}
+textarea {
+  height: auto;
+}
+input[type="hidden"] {
+  display: none;
+}
+.radio,
+.checkbox {
+  min-height: 18px;
+  padding-left: 18px;
+}
+.radio input[type="radio"],
+.checkbox input[type="checkbox"] {
+  float: left;
+  margin-left: -18px;
+}
+.controls > .radio:first-child,
+.controls > .checkbox:first-child {
+  padding-top: 5px;
+}
+.radio.inline,
+.checkbox.inline {
+  display: inline-block;
+  padding-top: 5px;
+  margin-bottom: 0;
+  vertical-align: middle;
+}
+.radio.inline + .radio.inline,
+.checkbox.inline + .checkbox.inline {
+  margin-left: 10px;
+}
+input,
+textarea {
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
+  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
+  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;
+  -o-transition: border linear 0.2s, box-shadow linear 0.2s;
+  transition: border linear 0.2s, box-shadow linear 0.2s;
+}
+input:focus,
+textarea:focus {
+  border-color: rgba(82, 168, 236, 0.8);
+  outline: 0;
+  outline: thin dotted \9;
+  /* IE6-9 */
+
+  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
+  -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
+  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
+}
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus,
+select:focus {
+  outline: thin dotted #333;
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+  -webkit-box-shadow: none;
+  -moz-box-shadow: none;
+  box-shadow: none;
+}
+.input-mini {
+  width: 60px;
+}
+.input-small {
+  width: 90px;
+}
+.input-medium {
+  width: 150px;
+}
+.input-large {
+  width: 210px;
+}
+.input-xlarge {
+  width: 270px;
+}
+.input-xxlarge {
+  width: 530px;
+}
+input[class*="span"],
+select[class*="span"],
+textarea[class*="span"],
+.uneditable-input[class*="span"],
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"] {
+  float: none;
+  margin-left: 0;
+}
+input,
+textarea,
+.uneditable-input {
+  margin-left: 0;
+}
+input.span12, textarea.span12, .uneditable-input.span12 {
+  width: 930px;
+}
+input.span11, textarea.span11, .uneditable-input.span11 {
+  width: 850px;
+}
+input.span10, textarea.span10, .uneditable-input.span10 {
+  width: 770px;
+}
+input.span9, textarea.span9, .uneditable-input.span9 {
+  width: 690px;
+}
+input.span8, textarea.span8, .uneditable-input.span8 {
+  width: 610px;
+}
+input.span7, textarea.span7, .uneditable-input.span7 {
+  width: 530px;
+}
+input.span6, textarea.span6, .uneditable-input.span6 {
+  width: 450px;
+}
+input.span5, textarea.span5, .uneditable-input.span5 {
+  width: 370px;
+}
+input.span4, textarea.span4, .uneditable-input.span4 {
+  width: 290px;
+}
+input.span3, textarea.span3, .uneditable-input.span3 {
+  width: 210px;
+}
+input.span2, textarea.span2, .uneditable-input.span2 {
+  width: 130px;
+}
+input.span1, textarea.span1, .uneditable-input.span1 {
+  width: 50px;
+}
+input[disabled],
+select[disabled],
+textarea[disabled],
+input[readonly],
+select[readonly],
+textarea[readonly] {
+  cursor: not-allowed;
+  background-color: #eb9742;
+  border-color: #ddd;
+}
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"][readonly],
+input[type="checkbox"][readonly] {
+  background-color: transparent;
+}
+.control-group.warning > label,
+.control-group.warning .help-block,
+.control-group.warning .help-inline {
+  color: #c09853;
+}
+.control-group.warning input,
+.control-group.warning select,
+.control-group.warning textarea {
+  color: #c09853;
+  border-color: #c09853;
+}
+.control-group.warning input:focus,
+.control-group.warning select:focus,
+.control-group.warning textarea:focus {
+  border-color: #a47e3c;
+  -webkit-box-shadow: 0 0 6px #dbc59e;
+  -moz-box-shadow: 0 0 6px #dbc59e;
+  box-shadow: 0 0 6px #dbc59e;
+}
+.control-group.warning .input-prepend .add-on,
+.control-group.warning .input-append .add-on {
+  color: #c09853;
+  background-color: #fcf8e3;
+  border-color: #c09853;
+}
+.control-group.error > label,
+.control-group.error .help-block,
+.control-group.error .help-inline {
+  color: #b94a48;
+}
+.control-group.error input,
+.control-group.error select,
+.control-group.error textarea {
+  color: #b94a48;
+  border-color: #b94a48;
+}
+.control-group.error input:focus,
+.control-group.error select:focus,
+.control-group.error textarea:focus {
+  border-color: #953b39;
+  -webkit-box-shadow: 0 0 6px #d59392;
+  -moz-box-shadow: 0 0 6px #d59392;
+  box-shadow: 0 0 6px #d59392;
+}
+.control-group.error .input-prepend .add-on,
+.control-group.error .input-append .add-on {
+  color: #b94a48;
+  background-color: #f2dede;
+  border-color: #b94a48;
+}
+.control-group.success > label,
+.control-group.success .help-block,
+.control-group.success .help-inline {
+  color: #468847;
+}
+.control-group.success input,
+.control-group.success select,
+.control-group.success textarea {
+  color: #468847;
+  border-color: #468847;
+}
+.control-group.success input:focus,
+.control-group.success select:focus,
+.control-group.success textarea:focus {
+  border-color: #356635;
+  -webkit-box-shadow: 0 0 6px #7aba7b;
+  -moz-box-shadow: 0 0 6px #7aba7b;
+  box-shadow: 0 0 6px #7aba7b;
+}
+.control-group.success .input-prepend .add-on,
+.control-group.success .input-append .add-on {
+  color: #468847;
+  background-color: #dff0d8;
+  border-color: #468847;
+}
+input:focus:required:invalid,
+textarea:focus:required:invalid,
+select:focus:required:invalid {
+  color: #b94a48;
+  border-color: #ee5f5b;
+}
+input:focus:required:invalid:focus,
+textarea:focus:required:invalid:focus,
+select:focus:required:invalid:focus {
+  border-color: #e9322d;
+  -webkit-box-shadow: 0 0 6px #f8b9b7;
+  -moz-box-shadow: 0 0 6px #f8b9b7;
+  box-shadow: 0 0 6px #f8b9b7;
+}
+.form-actions {
+  padding: 17px 20px 18px;
+  margin-top: 18px;
+  margin-bottom: 18px;
+  background-color: #f5f5f5;
+  border-top: 1px solid #ddd;
+  *zoom: 1;
+}
+.form-actions:before,
+.form-actions:after {
+  display: table;
+  content: "";
+}
+.form-actions:after {
+  clear: both;
+}
+.uneditable-input {
+  overflow: hidden;
+  white-space: nowrap;
+  cursor: not-allowed;
+  background-color: '#fff';
+  border-color: #eee;
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
+}
+:-moz-placeholder {
+  color: #E26128;
+}
+::-webkit-input-placeholder {
+  color: #E26128;
+}
+.help-block,
+.help-inline {
+  color: #7b7e8c;
+}
+.help-block {
+  display: block;
+  margin-bottom: 9px;
+}
+.help-inline {
+  display: inline-block;
+  *display: inline;
+  /* IE7 inline-block hack */
+
+  *zoom: 1;
+  vertical-align: middle;
+  padding-left: 5px;
+}
+.input-prepend,
+.input-append {
+  margin-bottom: 5px;
+}
+.input-prepend input,
+.input-append input,
+.input-prepend select,
+.input-append select,
+.input-prepend .uneditable-input,
+.input-append .uneditable-input {
+  position: relative;
+  margin-bottom: 0;
+  *margin-left: 0;
+  vertical-align: middle;
+  -webkit-border-radius: 0 3px 3px 0;
+  -moz-border-radius: 0 3px 3px 0;
+  border-radius: 0 3px 3px 0;
+}
+.input-prepend input:focus,
+.input-append input:focus,
+.input-prepend select:focus,
+.input-append select:focus,
+.input-prepend .uneditable-input:focus,
+.input-append .uneditable-input:focus {
+  z-index: 2;
+}
+.input-prepend .uneditable-input,
+.input-append .uneditable-input {
+  border-left-color: #ccc;
+}
+.input-prepend .add-on,
+.input-append .add-on {
+  display: inline-block;
+  width: auto;
+  height: 18px;
+  min-width: 16px;
+  padding: 4px 5px;
+  font-weight: normal;
+  line-height: 18px;
+  text-align: center;
+  text-shadow: 0 1px 0 #1a1515;
+  vertical-align: middle;
+  background-color: #eb9742;
+  border: 1px solid #ccc;
+}
+.input-prepend .add-on,
+.input-append .add-on,
+.input-prepend .btn,
+.input-append .btn {
+  margin-left: -1px;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
+}
+.input-prepend .active,
+.input-append .active {
+  background-color: #a9dba9;
+  border-color: #46a546;
+}
+.input-prepend .add-on,
+.input-prepend .btn {
+  margin-right: -1px;
+}
+.input-prepend .add-on:first-child,
+.input-prepend .btn:first-child {
+  -webkit-border-radius: 3px 0 0 3px;
+  -moz-border-radius: 3px 0 0 3px;
+  border-radius: 3px 0 0 3px;
+}
+.input-append input,
+.input-append select,
+.input-append .uneditable-input {
+  -webkit-border-radius: 3px 0 0 3px;
+  -moz-border-radius: 3px 0 0 3px;
+  border-radius: 3px 0 0 3px;
+}
+.input-append .uneditable-input {
+  border-right-color: #ccc;
+  border-left-color: #eee;
+}
+.input-append .add-on:last-child,
+.input-append .btn:last-child {
+  -webkit-border-radius: 0 3px 3px 0;
+  -moz-border-radius: 0 3px 3px 0;
+  border-radius: 0 3px 3px 0;
+}
+.input-prepend.input-append input,
+.input-prepend.input-append select,
+.input-prepend.input-append .uneditable-input {
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
+}
+.input-prepend.input-append .add-on:first-child,
+.input-prepend.input-append .btn:first-child {
+  margin-right: -1px;
+  -webkit-border-radius: 3px 0 0 3px;
+  -moz-border-radius: 3px 0 0 3px;
+  border-radius: 3px 0 0 3px;
+}
+.input-prepend.input-append .add-on:last-child,
+.input-prepend.input-append .btn:last-child {
+  margin-left: -1px;
+  -webkit-border-radius: 0 3px 3px 0;
+  -moz-border-radius: 0 3px 3px 0;
+  border-radius: 0 3px 3px 0;
+}
+.search-query {
+  padding-right: 14px;
+  padding-right: 4px \9;
+  padding-left: 14px;
+  padding-left: 4px \9;
+  /* IE7-8 doesn't have border-radius, so don't indent the padding */
+
+  margin-bottom: 0;
+  -webkit-border-radius: 14px;
+  -moz-border-radius: 14px;
+  border-radius: 14px;
+}
+.form-search input,
+.form-inline input,
+.form-horizontal input,
+.form-search textarea,
+.form-inline textarea,
+.form-horizontal textarea,
+.form-search select,
+.form-inline select,
+.form-horizontal select,
+.form-search .help-inline,
+.form-inline .help-inline,
+.form-horizontal .help-inline,
+.form-search .uneditable-input,
+.form-inline .uneditable-input,
+.form-horizontal .uneditable-input,
+.form-search .input-prepend,
+.form-inline .input-prepend,
+.form-horizontal .input-prepend,
+.form-search .input-append,
+.form-inline .input-append,
+.form-horizontal .input-append {
+  display: inline-block;
+  *display: inline;
+  /* IE7 inline-block hack */
+
+  *zoom: 1;
+  margin-bottom: 0;
+}
+.form-search .hide,
+.form-inline .hide,
+.form-horizontal .hide {
+  display: none;
+}
+.form-search label,
+.form-inline label {
+  display: inline-block;
+}
+.form-search .input-append,
+.form-inline .input-append,
+.form-search .input-prepend,
+.form-inline .input-prepend {
+  margin-bottom: 0;
+}
+.form-search .radio,
+.form-search .checkbox,
+.form-inline .radio,
+.form-inline .checkbox {
+  padding-left: 0;
+  margin-bottom: 0;
+  vertical-align: middle;
+}
+.form-search .radio input[type="radio"],
+.form-search .checkbox input[type="checkbox"],
+.form-inline .radio input[type="radio"],
+.form-inline .checkbox input[type="checkbox"] {
+  float: left;
+  margin-right: 3px;
+  margin-left: 0;
+}
+.control-group {
+  margin-bottom: 9px;
+}
+legend + .control-group {
+  margin-top: 18px;
+  -webkit-margin-top-collapse: separate;
+}
+.form-horizontal .control-group {
+  margin-bottom: 18px;
+  *zoom: 1;
+}
+.form-horizontal .control-group:before,
+.form-horizontal .control-group:after {
+  display: table;
+  content: "";
+}
+.form-horizontal .control-group:after {
+  clear: both;
+}
+.form-horizontal .control-label {
+  float: left;
+  width: 140px;
+  padding-top: 5px;
+  text-align: right;
+}
+.form-horizontal .controls {
+  *display: inline-block;
+  *padding-left: 20px;
+  margin-left: 160px;
+  *margin-left: 0;
+}
+.form-horizontal .controls:first-child {
+  *padding-left: 160px;
+}
+.form-horizontal .help-block {
+  margin-top: 9px;
+  margin-bottom: 0;
+}
+.form-horizontal .form-actions {
+  padding-left: 160px;
+}
+table {
+  max-width: 100%;
+  background-color: transparent;
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+.table {
+  width: 100%;
+  margin-bottom: 18px;
+}
+.table th,
+.table td {
+  padding: 8px;
+  line-height: 18px;
+  text-align: left;
+  vertical-align: top;
+  border-top: 1px solid #dddddd;
+}
+.table th {
+  font-weight: bold;
+}
+.table thead th {
+  vertical-align: bottom;
+}
+.table caption + thead tr:first-child th,
+.table caption + thead tr:first-child td,
+.table colgroup + thead tr:first-child th,
+.table colgroup + thead tr:first-child td,
+.table thead:first-child tr:first-child th,
+.table thead:first-child tr:first-child td {
+  border-top: 0;
+}
+.table tbody + tbody {
+  border-top: 2px solid #dddddd;
+}
+.table-condensed th,
+.table-condensed td {
+  padding: 4px 5px;
+}
+.table-bordered {
+  border: 1px solid #dddddd;
+  border-collapse: separate;
+  *border-collapse: collapsed;
+  border-left: 0;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.table-bordered th,
+.table-bordered td {
+  border-left: 1px solid #dddddd;
+}
+.table-bordered caption + thead tr:first-child th,
+.table-bordered caption + tbody tr:first-child th,
+.table-bordered caption + tbody tr:first-child td,
+.table-bordered colgroup + thead tr:first-child th,
+.table-bordered colgroup + tbody tr:first-child th,
+.table-bordered colgroup + tbody tr:first-child td,
+.table-bordered thead:first-child tr:first-child th,
+.table-bordered tbody:first-child tr:first-child th,
+.table-bordered tbody:first-child tr:first-child td {
+  border-top: 0;
+}
+.table-bordered thead:first-child tr:first-child th:first-child,
+.table-bordered tbody:first-child tr:first-child td:first-child {
+  -webkit-border-top-left-radius: 4px;
+  border-top-left-radius: 4px;
+  -moz-border-radius-topleft: 4px;
+}
+.table-bordered thead:first-child tr:first-child th:last-child,
+.table-bordered tbody:first-child tr:first-child td:last-child {
+  -webkit-border-top-right-radius: 4px;
+  border-top-right-radius: 4px;
+  -moz-border-radius-topright: 4px;
+}
+.table-bordered thead:last-child tr:last-child th:first-child,
+.table-bordered tbody:last-child tr:last-child td:first-child {
+  -webkit-border-radius: 0 0 0 4px;
+  -moz-border-radius: 0 0 0 4px;
+  border-radius: 0 0 0 4px;
+  -webkit-border-bottom-left-radius: 4px;
+  border-bottom-left-radius: 4px;
+  -moz-border-radius-bottomleft: 4px;
+}
+.table-bordered thead:last-child tr:last-child th:last-child,
+.table-bordered tbody:last-child tr:last-child td:last-child {
+  -webkit-border-bottom-right-radius: 4px;
+  border-bottom-right-radius: 4px;
+  -moz-border-radius-bottomright: 4px;
+}
+.table-striped tbody tr:nth-child(odd) td,
+.table-striped tbody tr:nth-child(odd) th {
+  background-color: #f9f9f9;
+}
+.table tbody tr:hover td,
+.table tbody tr:hover th {
+  background-color: #f5f5f5;
+}
+table .span1 {
+  float: none;
+  width: 44px;
+  margin-left: 0;
+}
+table .span2 {
+  float: none;
+  width: 124px;
+  margin-left: 0;
+}
+table .span3 {
+  float: none;
+  width: 204px;
+  margin-left: 0;
+}
+table .span4 {
+  float: none;
+  width: 284px;
+  margin-left: 0;
+}
+table .span5 {
+  float: none;
+  width: 364px;
+  margin-left: 0;
+}
+table .span6 {
+  float: none;
+  width: 444px;
+  margin-left: 0;
+}
+table .span7 {
+  float: none;
+  width: 524px;
+  margin-left: 0;
+}
+table .span8 {
+  float: none;
+  width: 604px;
+  margin-left: 0;
+}
+table .span9 {
+  float: none;
+  width: 684px;
+  margin-left: 0;
+}
+table .span10 {
+  float: none;
+  width: 764px;
+  margin-left: 0;
+}
+table .span11 {
+  float: none;
+  width: 844px;
+  margin-left: 0;
+}
+table .span12 {
+  float: none;
+  width: 924px;
+  margin-left: 0;
+}
+table .span13 {
+  float: none;
+  width: 1004px;
+  margin-left: 0;
+}
+table .span14 {
+  float: none;
+  width: 1084px;
+  margin-left: 0;
+}
+table .span15 {
+  float: none;
+  width: 1164px;
+  margin-left: 0;
+}
+table .span16 {
+  float: none;
+  width: 1244px;
+  margin-left: 0;
+}
+table .span17 {
+  float: none;
+  width: 1324px;
+  margin-left: 0;
+}
+table .span18 {
+  float: none;
+  width: 1404px;
+  margin-left: 0;
+}
+table .span19 {
+  float: none;
+  width: 1484px;
+  margin-left: 0;
+}
+table .span20 {
+  float: none;
+  width: 1564px;
+  margin-left: 0;
+}
+table .span21 {
+  float: none;
+  width: 1644px;
+  margin-left: 0;
+}
+table .span22 {
+  float: none;
+  width: 1724px;
+  margin-left: 0;
+}
+table .span23 {
+  float: none;
+  width: 1804px;
+  margin-left: 0;
+}
+table .span24 {
+  float: none;
+  width: 1884px;
+  margin-left: 0;
+}
+[class^="icon-"],
+[class*=" icon-"] {
+  display: inline-block;
+  width: 14px;
+  height: 14px;
+  *margin-right: .3em;
+  line-height: 14px;
+  vertical-align: text-top;
+  background-image: url("../img/glyphicons-halflings.png");
+  background-position: 14px 14px;
+  background-repeat: no-repeat;
+}
+[class^="icon-"]:last-child,
+[class*=" icon-"]:last-child {
+  *margin-left: 0;
+}
+.icon-white {
+  background-image: url("../img/glyphicons-halflings-white.png");
+}
+.icon-glass {
+  background-position: 0      0;
+}
+.icon-music {
+  background-position: -24px 0;
+}
+.icon-search {
+  background-position: -48px 0;
+}
+.icon-envelope {
+  background-position: -72px 0;
+}
+.icon-heart {
+  background-position: -96px 0;
+}
+.icon-star {
+  background-position: -120px 0;
+}
+.icon-star-empty {
+  background-position: -144px 0;
+}
+.icon-user {
+  background-position: -168px 0;
+}
+.icon-film {
+  background-position: -192px 0;
+}
+.icon-th-large {
+  background-position: -216px 0;
+}
+.icon-th {
+  background-position: -240px 0;
+}
+.icon-th-list {
+  background-position: -264px 0;
+}
+.icon-ok {
+  background-position: -288px 0;
+}
+.icon-remove {
+  background-position: -312px 0;
+}
+.icon-zoom-in {
+  background-position: -336px 0;
+}
+.icon-zoom-out {
+  background-position: -360px 0;
+}
+.icon-off {
+  background-position: -384px 0;
+}
+.icon-signal {
+  background-position: -408px 0;
+}
+.icon-cog {
+  background-position: -432px 0;
+}
+.icon-trash {
+  background-position: -456px 0;
+}
+.icon-home {
+  background-position: 0 -24px;
+}
+.icon-file {
+  background-position: -24px -24px;
+}
+.icon-time {
+  background-position: -48px -24px;
+}
+.icon-road {
+  background-position: -72px -24px;
+}
+.icon-download-alt {
+  background-position: -96px -24px;
+}
+.icon-download {
+  background-position: -120px -24px;
+}
+.icon-upload {
+  background-position: -144px -24px;
+}
+.icon-inbox {
+  background-position: -168px -24px;
+}
+.icon-play-circle {
+  background-position: -192px -24px;
+}
+.icon-repeat {
+  background-position: -216px -24px;
+}
+.icon-refresh {
+  background-position: -240px -24px;
+}
+.icon-list-alt {
+  background-position: -264px -24px;
+}
+.icon-lock {
+  background-position: -287px -24px;
+}
+.icon-flag {
+  background-position: -312px -24px;
+}
+.icon-headphones {
+  background-position: -336px -24px;
+}
+.icon-volume-off {
+  background-position: -360px -24px;
+}
+.icon-volume-down {
+  background-position: -384px -24px;
+}
+.icon-volume-up {
+  background-position: -408px -24px;
+}
+.icon-qrcode {
+  background-position: -432px -24px;
+}
+.icon-barcode {
+  background-position: -456px -24px;
+}
+.icon-tag {
+  background-position: 0 -48px;
+}
+.icon-tags {
+  background-position: -25px -48px;
+}
+.icon-book {
+  background-position: -48px -48px;
+}
+.icon-bookmark {
+  background-position: -72px -48px;
+}
+.icon-print {
+  background-position: -96px -48px;
+}
+.icon-camera {
+  background-position: -120px -48px;
+}
+.icon-font {
+  background-position: -144px -48px;
+}
+.icon-bold {
+  background-position: -167px -48px;
+}
+.icon-italic {
+  background-position: -192px -48px;
+}
+.icon-text-height {
+  background-position: -216px -48px;
+}
+.icon-text-width {
+  background-position: -240px -48px;
+}
+.icon-align-left {
+  background-position: -264px -48px;
+}
+.icon-align-center {
+  background-position: -288px -48px;
+}
+.icon-align-right {
+  background-position: -312px -48px;
+}
+.icon-align-justify {
+  background-position: -336px -48px;
+}
+.icon-list {
+  background-position: -360px -48px;
+}
+.icon-indent-left {
+  background-position: -384px -48px;
+}
+.icon-indent-right {
+  background-position: -408px -48px;
+}
+.icon-facetime-video {
+  background-position: -432px -48px;
+}
+.icon-picture {
+  background-position: -456px -48px;
+}
+.icon-pencil {
+  background-position: 0 -72px;
+}
+.icon-map-marker {
+  background-position: -24px -72px;
+}
+.icon-adjust {
+  background-position: -48px -72px;
+}
+.icon-tint {
+  background-position: -72px -72px;
+}
+.icon-edit {
+  background-position: -96px -72px;
+}
+.icon-share {
+  background-position: -120px -72px;
+}
+.icon-check {
+  background-position: -144px -72px;
+}
+.icon-move {
+  background-position: -168px -72px;
+}
+.icon-step-backward {
+  background-position: -192px -72px;
+}
+.icon-fast-backward {
+  background-position: -216px -72px;
+}
+.icon-backward {
+  background-position: -240px -72px;
+}
+.icon-play {
+  background-position: -264px -72px;
+}
+.icon-pause {
+  background-position: -288px -72px;
+}
+.icon-stop {
+  background-position: -312px -72px;
+}
+.icon-forward {
+  background-position: -336px -72px;
+}
+.icon-fast-forward {
+  background-position: -360px -72px;
+}
+.icon-step-forward {
+  background-position: -384px -72px;
+}
+.icon-eject {
+  background-position: -408px -72px;
+}
+.icon-chevron-left {
+  background-position: -432px -72px;
+}
+.icon-chevron-right {
+  background-position: -456px -72px;
+}
+.icon-plus-sign {
+  background-position: 0 -96px;
+}
+.icon-minus-sign {
+  background-position: -24px -96px;
+}
+.icon-remove-sign {
+  background-position: -48px -96px;
+}
+.icon-ok-sign {
+  background-position: -72px -96px;
+}
+.icon-question-sign {
+  background-position: -96px -96px;
+}
+.icon-info-sign {
+  background-position: -120px -96px;
+}
+.icon-screenshot {
+  background-position: -144px -96px;
+}
+.icon-remove-circle {
+  background-position: -168px -96px;
+}
+.icon-ok-circle {
+  background-position: -192px -96px;
+}
+.icon-ban-circle {
+  background-position: -216px -96px;
+}
+.icon-arrow-left {
+  background-position: -240px -96px;
+}
+.icon-arrow-right {
+  background-position: -264px -96px;
+}
+.icon-arrow-up {
+  background-position: -289px -96px;
+}
+.icon-arrow-down {
+  background-position: -312px -96px;
+}
+.icon-share-alt {
+  background-position: -336px -96px;
+}
+.icon-resize-full {
+  background-position: -360px -96px;
+}
+.icon-resize-small {
+  background-position: -384px -96px;
+}
+.icon-plus {
+  background-position: -408px -96px;
+}
+.icon-minus {
+  background-position: -433px -96px;
+}
+.icon-asterisk {
+  background-position: -456px -96px;
+}
+.icon-exclamation-sign {
+  background-position: 0 -120px;
+}
+.icon-gift {
+  background-position: -24px -120px;
+}
+.icon-leaf {
+  background-position: -48px -120px;
+}
+.icon-fire {
+  background-position: -72px -120px;
+}
+.icon-eye-open {
+  background-position: -96px -120px;
+}
+.icon-eye-close {
+  background-position: -120px -120px;
+}
+.icon-warning-sign {
+  background-position: -144px -120px;
+}
+.icon-plane {
+  background-position: -168px -120px;
+}
+.icon-calendar {
+  background-position: -192px -120px;
+}
+.icon-random {
+  background-position: -216px -120px;
+}
+.icon-comment {
+  background-position: -240px -120px;
+}
+.icon-magnet {
+  background-position: -264px -120px;
+}
+.icon-chevron-up {
+  background-position: -288px -120px;
+}
+.icon-chevron-down {
+  background-position: -313px -119px;
+}
+.icon-retweet {
+  background-position: -336px -120px;
+}
+.icon-shopping-cart {
+  background-position: -360px -120px;
+}
+.icon-folder-close {
+  background-position: -384px -120px;
+}
+.icon-folder-open {
+  background-position: -408px -120px;
+}
+.icon-resize-vertical {
+  background-position: -432px -119px;
+}
+.icon-resize-horizontal {
+  background-position: -456px -118px;
+}
+.icon-hdd {
+  background-position: 0 -144px;
+}
+.icon-bullhorn {
+  background-position: -24px -144px;
+}
+.icon-bell {
+  background-position: -48px -144px;
+}
+.icon-certificate {
+  background-position: -72px -144px;
+}
+.icon-thumbs-up {
+  background-position: -96px -144px;
+}
+.icon-thumbs-down {
+  background-position: -120px -144px;
+}
+.icon-hand-right {
+  background-position: -144px -144px;
+}
+.icon-hand-left {
+  background-position: -168px -144px;
+}
+.icon-hand-up {
+  background-position: -192px -144px;
+}
+.icon-hand-down {
+  background-position: -216px -144px;
+}
+.icon-circle-arrow-right {
+  background-position: -240px -144px;
+}
+.icon-circle-arrow-left {
+  background-position: -264px -144px;
+}
+.icon-circle-arrow-up {
+  background-position: -288px -144px;
+}
+.icon-circle-arrow-down {
+  background-position: -312px -144px;
+}
+.icon-globe {
+  background-position: -336px -144px;
+}
+.icon-wrench {
+  background-position: -360px -144px;
+}
+.icon-tasks {
+  background-position: -384px -144px;
+}
+.icon-filter {
+  background-position: -408px -144px;
+}
+.icon-briefcase {
+  background-position: -432px -144px;
+}
+.icon-fullscreen {
+  background-position: -456px -144px;
+}
+.dropup,
+.dropdown {
+  position: relative;
+}
+.dropdown-toggle {
+  *margin-bottom: -3px;
+}
+.dropdown-toggle:active,
+.open .dropdown-toggle {
+  outline: 0;
+}
+.caret {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  vertical-align: top;
+  border-top: 4px solid #1a1515;
+  border-right: 4px solid transparent;
+  border-left: 4px solid transparent;
+  content: "";
+  opacity: 0.3;
+  filter: alpha(opacity=30);
+}
+.dropdown .caret {
+  margin-top: 8px;
+  margin-left: 2px;
+}
+.dropdown:hover .caret,
+.open .caret {
+  opacity: 1;
+  filter: alpha(opacity=100);
+}
+.dropdown-menu {
+  position: absolute;
+  top: 100%;
+  left: 0;
+  z-index: 1000;
+  display: none;
+  float: left;
+  min-width: 160px;
+  padding: 4px 0;
+  margin: 1px 0 0;
+  list-style: none;
+  background-color: #1a1515;
+  border: 1px solid #ccc;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  *border-right-width: 2px;
+  *border-bottom-width: 2px;
+  -webkit-border-radius: 5px;
+  -moz-border-radius: 5px;
+  border-radius: 5px;
+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+  -webkit-background-clip: padding-box;
+  -moz-background-clip: padding;
+  background-clip: padding-box;
+}
+.dropdown-menu.pull-right {
+  right: 0;
+  left: auto;
+}
+.dropdown-menu .divider {
+  *width: 100%;
+  height: 1px;
+  margin: 8px 1px;
+  *margin: -5px 0 5px;
+  overflow: hidden;
+  background-color: #e5e5e5;
+  border-bottom: 1px solid #1a1515;
+}
+.dropdown-menu a {
+  display: block;
+  padding: 3px 15px;
+  clear: both;
+  font-weight: normal;
+  line-height: 18px;
+  color: #5e3534;
+  white-space: nowrap;
+}
+.dropdown-menu li > a:hover,
+.dropdown-menu .active > a,
+.dropdown-menu .active > a:hover {
+  color: #1a1515;
+  text-decoration: none;
+  background-color: #E26128;
+}
+.open {
+  *z-index: 1000;
+}
+.open .dropdown-menu {
+  display: block;
+}
+.pull-right .dropdown-menu {
+  right: 0;
+  left: auto;
+}
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+  border-top: 0;
+  border-bottom: 4px solid #1a1515;
+  content: "\2191";
+}
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+  top: auto;
+  bottom: 100%;
+  margin-bottom: 1px;
+}
+.typeahead {
+  margin-top: 2px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.well {
+  min-height: 20px;
+  padding: 19px;
+  margin-bottom: 20px;
+  background-color: #f5f5f5;
+  border: 1px solid #eee;
+  border: 1px solid rgba(0, 0, 0, 0.05);
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.well blockquote {
+  border-color: #ddd;
+  border-color: rgba(0, 0, 0, 0.15);
+}
+.well-large {
+  padding: 24px;
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+}
+.well-small {
+  padding: 9px;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+}
+.fade {
+  opacity: 0;
+  filter: alpha(opacity=0);
+  -webkit-transition: opacity 0.15s linear;
+  -moz-transition: opacity 0.15s linear;
+  -ms-transition: opacity 0.15s linear;
+  -o-transition: opacity 0.15s linear;
+  transition: opacity 0.15s linear;
+}
+.fade.in {
+  opacity: 1;
+  filter: alpha(opacity=100);
+}
+.collapse {
+  position: relative;
+  height: 0;
+  overflow: hidden;
+  -webkit-transition: height 0.35s ease;
+  -moz-transition: height 0.35s ease;
+  -ms-transition: height 0.35s ease;
+  -o-transition: height 0.35s ease;
+  transition: height 0.35s ease;
+}
+.collapse.in {
+  height: auto;
+}
+.close {
+  float: right;
+  font-size: 20px;
+  font-weight: bold;
+  line-height: 18px;
+  color: #1a1515;
+  text-shadow: 0 1px 0 #ffffff;
+  opacity: 0.2;
+  filter: alpha(opacity=20);
+}
+.close:hover {
+  color: #1a1515;
+  text-decoration: none;
+  cursor: pointer;
+  opacity: 0.4;
+  filter: alpha(opacity=40);
+}
+button.close {
+  padding: 0;
+  cursor: pointer;
+  background: transparent;
+  border: 0;
+  -webkit-appearance: none;
+}
+.btn {
+  display: inline-block;
+  *display: inline;
+  /* IE7 inline-block hack */
+
+  *zoom: 1;
+  padding: 4px 10px 4px;
+  margin-bottom: 0;
+  font-size: 13px;
+  line-height: 18px;
+  *line-height: 20px;
+  color: #5e3534;
+  text-align: center;
+  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
+  vertical-align: middle;
+  cursor: pointer;
+  background-color: #100d0d;
+  background-image: -moz-linear-gradient(top, #1a1515, #000000);
+  background-image: -ms-linear-gradient(top, #1a1515, #000000);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#1a1515), to(#000000));
+  background-image: -webkit-linear-gradient(top, #1a1515, #000000);
+  background-image: -o-linear-gradient(top, #1a1515, #000000);
+  background-image: linear-gradient(top, #1a1515, #000000);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1a1515', endColorstr='#000000', GradientType=0);
+  border-color: #000000 #000000 #000000;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  *background-color: #000000;
+  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  border: 1px solid #cccccc;
+  *border: 0;
+  border-bottom-color: #b3b3b3;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  *margin-left: .3em;
+  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
+  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
+  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
+}
+.btn:hover,
+.btn:active,
+.btn.active,
+.btn.disabled,
+.btn[disabled] {
+  background-color: #000000;
+  *background-color: #000000;
+}
+.btn:active,
+.btn.active {
+  background-color: #000000 \9;
+}
+.btn:first-child {
+  *margin-left: 0;
+}
+.btn:hover {
+  color: #5e3534;
+  text-decoration: none;
+  background-color: #000000;
+  *background-color: #000000;
+  /* Buttons in IE7 don't get borders, so darken on hover */
+
+  background-position: 0 -15px;
+  -webkit-transition: background-position 0.1s linear;
+  -moz-transition: background-position 0.1s linear;
+  -ms-transition: background-position 0.1s linear;
+  -o-transition: background-position 0.1s linear;
+  transition: background-position 0.1s linear;
+}
+.btn:focus {
+  outline: thin dotted #333;
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
+.btn.active,
+.btn:active {
+  background-color: #000000;
+  background-color: #000000 \9;
+  background-image: none;
+  outline: 0;
+  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
+  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
+  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
+}
+.btn.disabled,
+.btn[disabled] {
+  cursor: default;
+  background-color: #000000;
+  background-image: none;
+  opacity: 0.65;
+  filter: alpha(opacity=65);
+  -webkit-box-shadow: none;
+  -moz-box-shadow: none;
+  box-shadow: none;
+}
+.btn-large {
+  padding: 9px 14px;
+  font-size: 15px;
+  line-height: normal;
+  -webkit-border-radius: 5px;
+  -moz-border-radius: 5px;
+  border-radius: 5px;
+}
+.btn-large [class^="icon-"] {
+  margin-top: 1px;
+}
+.btn-small {
+  padding: 5px 9px;
+  font-size: 11px;
+  line-height: 16px;
+}
+.btn-small [class^="icon-"] {
+  margin-top: -1px;
+}
+.btn-mini {
+  padding: 2px 6px;
+  font-size: 11px;
+  line-height: 14px;
+}
+.btn-primary,
+.btn-primary:hover,
+.btn-warning,
+.btn-warning:hover,
+.btn-danger,
+.btn-danger:hover,
+.btn-success,
+.btn-success:hover,
+.btn-info,
+.btn-info:hover,
+.btn-inverse,
+.btn-inverse:hover {
+  color: #1a1515;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.btn-primary.active,
+.btn-warning.active,
+.btn-danger.active,
+.btn-success.active,
+.btn-info.active,
+.btn-inverse.active {
+  color: rgba(255, 255, 255, 0.75);
+}
+.btn {
+  border-color: #ccc;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+}
+.btn-primary {
+  background-color: #e27428;
+  background-image: -moz-linear-gradient(top, #E26128, #e29028);
+  background-image: -ms-linear-gradient(top, #E26128, #e29028);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#E26128), to(#e29028));
+  background-image: -webkit-linear-gradient(top, #E26128, #e29028);
+  background-image: -o-linear-gradient(top, #E26128, #e29028);
+  background-image: linear-gradient(top, #E26128, #e29028);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#E26128', endColorstr='#e29028', GradientType=0);
+  border-color: #e29028 #e29028 #a76717;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  *background-color: #e29028;
+  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
+.btn-primary:hover,
+.btn-primary:active,
+.btn-primary.active,
+.btn-primary.disabled,
+.btn-primary[disabled] {
+  background-color: #e29028;
+  *background-color: #d4831d;
+}
+.btn-primary:active,
+.btn-primary.active {
+  background-color: #bd751a \9;
+}
+.btn-warning {
+  background-color: #faa732;
+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
+  background-image: -o-linear-gradient(top, #fbb450, #f89406);
+  background-image: linear-gradient(top, #fbb450, #f89406);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
+  border-color: #f89406 #f89406 #ad6704;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  *background-color: #f89406;
+  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
+.btn-warning:hover,
+.btn-warning:active,
+.btn-warning.active,
+.btn-warning.disabled,
+.btn-warning[disabled] {
+  background-color: #f89406;
+  *background-color: #df8505;
+}
+.btn-warning:active,
+.btn-warning.active {
+  background-color: #c67605 \9;
+}
+.btn-danger {
+  background-color: #da4f49;
+  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
+  background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
+  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
+  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
+  background-image: linear-gradient(top, #ee5f5b, #bd362f);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);
+  border-color: #bd362f #bd362f #802420;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  *background-color: #bd362f;
+  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
+.btn-danger:hover,
+.btn-danger:active,
+.btn-danger.active,
+.btn-danger.disabled,
+.btn-danger[disabled] {
+  background-color: #bd362f;
+  *background-color: #a9302a;
+}
+.btn-danger:active,
+.btn-danger.active {
+  background-color: #942a25 \9;
+}
+.btn-success {
+  background-color: #5bb75b;
+  background-image: -moz-linear-gradient(top, #62c462, #51a351);
+  background-image: -ms-linear-gradient(top, #62c462, #51a351);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
+  background-image: -webkit-linear-gradient(top, #62c462, #51a351);
+  background-image: -o-linear-gradient(top, #62c462, #51a351);
+  background-image: linear-gradient(top, #62c462, #51a351);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);
+  border-color: #51a351 #51a351 #387038;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  *background-color: #51a351;
+  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
+.btn-success:hover,
+.btn-success:active,
+.btn-success.active,
+.btn-success.disabled,
+.btn-success[disabled] {
+  background-color: #51a351;
+  *background-color: #499249;
+}
+.btn-success:active,
+.btn-success.active {
+  background-color: #408140 \9;
+}
+.btn-info {
+  background-color: #49afcd;
+  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
+  background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
+  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
+  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
+  background-image: linear-gradient(top, #5bc0de, #2f96b4);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
+  border-color: #2f96b4 #2f96b4 #1f6377;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  *background-color: #2f96b4;
+  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
+.btn-info:hover,
+.btn-info:active,
+.btn-info.active,
+.btn-info.disabled,
+.btn-info[disabled] {
+  background-color: #2f96b4;
+  *background-color: #2a85a0;
+}
+.btn-info:active,
+.btn-info.active {
+  background-color: #24748c \9;
+}
+.btn-inverse {
+  background-color: #625962;
+  background-image: -moz-linear-gradient(top, #7b7e8c, #3d2222);
+  background-image: -ms-linear-gradient(top, #7b7e8c, #3d2222);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#7b7e8c), to(#3d2222));
+  background-image: -webkit-linear-gradient(top, #7b7e8c, #3d2222);
+  background-image: -o-linear-gradient(top, #7b7e8c, #3d2222);
+  background-image: linear-gradient(top, #7b7e8c, #3d2222);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7b7e8c', endColorstr='#3d2222', GradientType=0);
+  border-color: #3d2222 #3d2222 #0c0707;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  *background-color: #3d2222;
+  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
+.btn-inverse:hover,
+.btn-inverse:active,
+.btn-inverse.active,
+.btn-inverse.disabled,
+.btn-inverse[disabled] {
+  background-color: #3d2222;
+  *background-color: #2d1919;
+}
+.btn-inverse:active,
+.btn-inverse.active {
+  background-color: #1c1010 \9;
+}
+button.btn,
+input[type="submit"].btn {
+  *padding-top: 2px;
+  *padding-bottom: 2px;
+}
+button.btn::-moz-focus-inner,
+input[type="submit"].btn::-moz-focus-inner {
+  padding: 0;
+  border: 0;
+}
+button.btn.btn-large,
+input[type="submit"].btn.btn-large {
+  *padding-top: 7px;
+  *padding-bottom: 7px;
+}
+button.btn.btn-small,
+input[type="submit"].btn.btn-small {
+  *padding-top: 3px;
+  *padding-bottom: 3px;
+}
+button.btn.btn-mini,
+input[type="submit"].btn.btn-mini {
+  *padding-top: 1px;
+  *padding-bottom: 1px;
+}
+.btn-group {
+  position: relative;
+  *zoom: 1;
+  *margin-left: .3em;
+}
+.btn-group:before,
+.btn-group:after {
+  display: table;
+  content: "";
+}
+.btn-group:after {
+  clear: both;
+}
+.btn-group:first-child {
+  *margin-left: 0;
+}
+.btn-group + .btn-group {
+  margin-left: 5px;
+}
+.btn-toolbar {
+  margin-top: 9px;
+  margin-bottom: 9px;
+}
+.btn-toolbar .btn-group {
+  display: inline-block;
+  *display: inline;
+  /* IE7 inline-block hack */
+
+  *zoom: 1;
+}
+.btn-group > .btn {
+  position: relative;
+  float: left;
+  margin-left: -1px;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
+}
+.btn-group > .btn:first-child {
+  margin-left: 0;
+  -webkit-border-top-left-radius: 4px;
+  -moz-border-radius-topleft: 4px;
+  border-top-left-radius: 4px;
+  -webkit-border-bottom-left-radius: 4px;
+  -moz-border-radius-bottomleft: 4px;
+  border-bottom-left-radius: 4px;
+}
+.btn-group > .btn:last-child,
+.btn-group > .dropdown-toggle {
+  -webkit-border-top-right-radius: 4px;
+  -moz-border-radius-topright: 4px;
+  border-top-right-radius: 4px;
+  -webkit-border-bottom-right-radius: 4px;
+  -moz-border-radius-bottomright: 4px;
+  border-bottom-right-radius: 4px;
+}
+.btn-group > .btn.large:first-child {
+  margin-left: 0;
+  -webkit-border-top-left-radius: 6px;
+  -moz-border-radius-topleft: 6px;
+  border-top-left-radius: 6px;
+  -webkit-border-bottom-left-radius: 6px;
+  -moz-border-radius-bottomleft: 6px;
+  border-bottom-left-radius: 6px;
+}
+.btn-group > .btn.large:last-child,
+.btn-group > .large.dropdown-toggle {
+  -webkit-border-top-right-radius: 6px;
+  -moz-border-radius-topright: 6px;
+  border-top-right-radius: 6px;
+  -webkit-border-bottom-right-radius: 6px;
+  -moz-border-radius-bottomright: 6px;
+  border-bottom-right-radius: 6px;
+}
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active {
+  z-index: 2;
+}
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+  outline: 0;
+}
+.btn-group > .dropdown-toggle {
+  padding-left: 8px;
+  padding-right: 8px;
+  -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
+  -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
+  box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
+  *padding-top: 4px;
+  *padding-bottom: 4px;
+}
+.btn-group > .btn-mini.dropdown-toggle {
+  padding-left: 5px;
+  padding-right: 5px;
+}
+.btn-group > .btn-small.dropdown-toggle {
+  *padding-top: 4px;
+  *padding-bottom: 4px;
+}
+.btn-group > .btn-large.dropdown-toggle {
+  padding-left: 12px;
+  padding-right: 12px;
+}
+.btn-group.open .dropdown-toggle {
+  background-image: none;
+  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
+  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
+  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
+}
+.btn-group.open .btn.dropdown-toggle {
+  background-color: #000000;
+}
+.btn-group.open .btn-primary.dropdown-toggle {
+  background-color: #e29028;
+}
+.btn-group.open .btn-warning.dropdown-toggle {
+  background-color: #f89406;
+}
+.btn-group.open .btn-danger.dropdown-toggle {
+  background-color: #bd362f;
+}
+.btn-group.open .btn-success.dropdown-toggle {
+  background-color: #51a351;
+}
+.btn-group.open .btn-info.dropdown-toggle {
+  background-color: #2f96b4;
+}
+.btn-group.open .btn-inverse.dropdown-toggle {
+  background-color: #3d2222;
+}
+.btn .caret {
+  margin-top: 7px;
+  margin-left: 0;
+}
+.btn:hover .caret,
+.open.btn-group .caret {
+  opacity: 1;
+  filter: alpha(opacity=100);
+}
+.btn-mini .caret {
+  margin-top: 5px;
+}
+.btn-small .caret {
+  margin-top: 6px;
+}
+.btn-large .caret {
+  margin-top: 6px;
+  border-left-width: 5px;
+  border-right-width: 5px;
+  border-top-width: 5px;
+}
+.dropup .btn-large .caret {
+  border-bottom: 5px solid #1a1515;
+  border-top: 0;
+}
+.btn-primary .caret,
+.btn-warning .caret,
+.btn-danger .caret,
+.btn-info .caret,
+.btn-success .caret,
+.btn-inverse .caret {
+  border-top-color: #1a1515;
+  border-bottom-color: #1a1515;
+  opacity: 0.75;
+  filter: alpha(opacity=75);
+}
+.alert {
+  padding: 8px 35px 8px 14px;
+  margin-bottom: 18px;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+  background-color: #fcf8e3;
+  border: 1px solid #fbeed5;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  color: #c09853;
+}
+.alert-heading {
+  color: inherit;
+}
+.alert .close {
+  position: relative;
+  top: -2px;
+  right: -21px;
+  line-height: 18px;
+}
+.alert-success {
+  background-color: #dff0d8;
+  border-color: #d6e9c6;
+  color: #468847;
+}
+.alert-danger,
+.alert-error {
+  background-color: #f2dede;
+  border-color: #eed3d7;
+  color: #b94a48;
+}
+.alert-info {
+  background-color: #d9edf7;
+  border-color: #bce8f1;
+  color: #3a87ad;
+}
+.alert-block {
+  padding-top: 14px;
+  padding-bottom: 14px;
+}
+.alert-block > p,
+.alert-block > ul {
+  margin-bottom: 0;
+}
+.alert-block p + p {
+  margin-top: 5px;
+}
+.nav {
+  margin-left: 0;
+  margin-bottom: 18px;
+  list-style: none;
+}
+.nav > li > a {
+  display: block;
+}
+.nav > li > a:hover {
+  text-decoration: none;
+  background-color: #eb9742;
+}
+.nav > .pull-right {
+  float: right;
+}
+.nav .nav-header {
+  display: block;
+  padding: 3px 15px;
+  font-size: 11px;
+  font-weight: bold;
+  line-height: 18px;
+  color: #E26128;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+  text-transform: uppercase;
+}
+.nav li + .nav-header {
+  margin-top: 9px;
+}
+.nav-list {
+  padding-left: 15px;
+  padding-right: 15px;
+  margin-bottom: 0;
+}
+.nav-list > li > a,
+.nav-list .nav-header {
+  margin-left: -15px;
+  margin-right: -15px;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+}
+.nav-list > li > a {
+  padding: 3px 15px;
+}
+.nav-list > .active > a,
+.nav-list > .active > a:hover {
+  color: #1a1515;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
+  background-color: #E26128;
+}
+.nav-list [class^="icon-"] {
+  margin-right: 2px;
+}
+.nav-list .divider {
+  *width: 100%;
+  height: 1px;
+  margin: 8px 1px;
+  *margin: -5px 0 5px;
+  overflow: hidden;
+  background-color: #e5e5e5;
+  border-bottom: 1px solid #1a1515;
+}
+.nav-tabs,
+.nav-pills {
+  *zoom: 1;
+}
+.nav-tabs:before,
+.nav-pills:before,
+.nav-tabs:after,
+.nav-pills:after {
+  display: table;
+  content: "";
+}
+.nav-tabs:after,
+.nav-pills:after {
+  clear: both;
+}
+.nav-tabs > li,
+.nav-pills > li {
+  float: left;
+}
+.nav-tabs > li > a,
+.nav-pills > li > a {
+  padding-right: 12px;
+  padding-left: 12px;
+  margin-right: 2px;
+  line-height: 14px;
+}
+.nav-tabs {
+  border-bottom: 1px solid #ddd;
+}
+.nav-tabs > li {
+  margin-bottom: -1px;
+}
+.nav-tabs > li > a {
+  padding-top: 8px;
+  padding-bottom: 8px;
+  line-height: 18px;
+  border: 1px solid transparent;
+  -webkit-border-radius: 4px 4px 0 0;
+  -moz-border-radius: 4px 4px 0 0;
+  border-radius: 4px 4px 0 0;
+}
+.nav-tabs > li > a:hover {
+  border-color: #eb9742 #eb9742 #dddddd;
+}
+.nav-tabs > .active > a,
+.nav-tabs > .active > a:hover {
+  color: #7b7e8c;
+  background-color: #1a1515;
+  border: 1px solid #ddd;
+  border-bottom-color: transparent;
+  cursor: default;
+}
+.nav-pills > li > a {
+  padding-top: 8px;
+  padding-bottom: 8px;
+  margin-top: 2px;
+  margin-bottom: 2px;
+  -webkit-border-radius: 5px;
+  -moz-border-radius: 5px;
+  border-radius: 5px;
+}
+.nav-pills > .active > a,
+.nav-pills > .active > a:hover {
+  color: #1a1515;
+  background-color: #E26128;
+}
+.nav-stacked > li {
+  float: none;
+}
+.nav-stacked > li > a {
+  margin-right: 0;
+}
+.nav-tabs.nav-stacked {
+  border-bottom: 0;
+}
+.nav-tabs.nav-stacked > li > a {
+  border: 1px solid #ddd;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
+}
+.nav-tabs.nav-stacked > li:first-child > a {
+  -webkit-border-radius: 4px 4px 0 0;
+  -moz-border-radius: 4px 4px 0 0;
+  border-radius: 4px 4px 0 0;
+}
+.nav-tabs.nav-stacked > li:last-child > a {
+  -webkit-border-radius: 0 0 4px 4px;
+  -moz-border-radius: 0 0 4px 4px;
+  border-radius: 0 0 4px 4px;
+}
+.nav-tabs.nav-stacked > li > a:hover {
+  border-color: #ddd;
+  z-index: 2;
+}
+.nav-pills.nav-stacked > li > a {
+  margin-bottom: 3px;
+}
+.nav-pills.nav-stacked > li:last-child > a {
+  margin-bottom: 1px;
+}
+.nav-tabs .dropdown-menu {
+  -webkit-border-radius: 0 0 5px 5px;
+  -moz-border-radius: 0 0 5px 5px;
+  border-radius: 0 0 5px 5px;
+}
+.nav-pills .dropdown-menu {
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.nav-tabs .dropdown-toggle .caret,
+.nav-pills .dropdown-toggle .caret {
+  border-top-color: #E26128;
+  border-bottom-color: #E26128;
+  margin-top: 6px;
+}
+.nav-tabs .dropdown-toggle:hover .caret,
+.nav-pills .dropdown-toggle:hover .caret {
+  border-top-color: #a74317;
+  border-bottom-color: #a74317;
+}
+.nav-tabs .active .dropdown-toggle .caret,
+.nav-pills .active .dropdown-toggle .caret {
+  border-top-color: #5e3534;
+  border-bottom-color: #5e3534;
+}
+.nav > .dropdown.active > a:hover {
+  color: #1a1515;
+  cursor: pointer;
+}
+.nav-tabs .open .dropdown-toggle,
+.nav-pills .open .dropdown-toggle,
+.nav > li.dropdown.open.active > a:hover {
+  color: #1a1515;
+  background-color: #E26128;
+  border-color: #E26128;
+}
+.nav li.dropdown.open .caret,
+.nav li.dropdown.open.active .caret,
+.nav li.dropdown.open a:hover .caret {
+  border-top-color: #1a1515;
+  border-bottom-color: #1a1515;
+  opacity: 1;
+  filter: alpha(opacity=100);
+}
+.tabs-stacked .open > a:hover {
+  border-color: #E26128;
+}
+.tabbable {
+  *zoom: 1;
+}
+.tabbable:before,
+.tabbable:after {
+  display: table;
+  content: "";
+}
+.tabbable:after {
+  clear: both;
+}
+.tab-content {
+  overflow: auto;
+}
+.tabs-below > .nav-tabs,
+.tabs-right > .nav-tabs,
+.tabs-left > .nav-tabs {
+  border-bottom: 0;
+}
+.tab-content > .tab-pane,
+.pill-content > .pill-pane {
+  display: none;
+}
+.tab-content > .active,
+.pill-content > .active {
+  display: block;
+}
+.tabs-below > .nav-tabs {
+  border-top: 1px solid #ddd;
+}
+.tabs-below > .nav-tabs > li {
+  margin-top: -1px;
+  margin-bottom: 0;
+}
+.tabs-below > .nav-tabs > li > a {
+  -webkit-border-radius: 0 0 4px 4px;
+  -moz-border-radius: 0 0 4px 4px;
+  border-radius: 0 0 4px 4px;
+}
+.tabs-below > .nav-tabs > li > a:hover {
+  border-bottom-color: transparent;
+  border-top-color: #ddd;
+}
+.tabs-below > .nav-tabs > .active > a,
+.tabs-below > .nav-tabs > .active > a:hover {
+  border-color: transparent #ddd #ddd #ddd;
+}
+.tabs-left > .nav-tabs > li,
+.tabs-right > .nav-tabs > li {
+  float: none;
+}
+.tabs-left > .nav-tabs > li > a,
+.tabs-right > .nav-tabs > li > a {
+  min-width: 74px;
+  margin-right: 0;
+  margin-bottom: 3px;
+}
+.tabs-left > .nav-tabs {
+  float: left;
+  margin-right: 19px;
+  border-right: 1px solid #ddd;
+}
+.tabs-left > .nav-tabs > li > a {
+  margin-right: -1px;
+  -webkit-border-radius: 4px 0 0 4px;
+  -moz-border-radius: 4px 0 0 4px;
+  border-radius: 4px 0 0 4px;
+}
+.tabs-left > .nav-tabs > li > a:hover {
+  border-color: #eb9742 #dddddd #eb9742 #eb9742;
+}
+.tabs-left > .nav-tabs .active > a,
+.tabs-left > .nav-tabs .active > a:hover {
+  border-color: #ddd transparent #ddd #ddd;
+  *border-right-color: #1a1515;
+}
+.tabs-right > .nav-tabs {
+  float: right;
+  margin-left: 19px;
+  border-left: 1px solid #ddd;
+}
+.tabs-right > .nav-tabs > li > a {
+  margin-left: -1px;
+  -webkit-border-radius: 0 4px 4px 0;
+  -moz-border-radius: 0 4px 4px 0;
+  border-radius: 0 4px 4px 0;
+}
+.tabs-right > .nav-tabs > li > a:hover {
+  border-color: #eb9742 #eb9742 #eb9742 #dddddd;
+}
+.tabs-right > .nav-tabs .active > a,
+.tabs-right > .nav-tabs .active > a:hover {
+  border-color: #ddd #ddd #ddd transparent;
+  *border-left-color: #1a1515;
+}
+.navbar {
+  *position: relative;
+  *z-index: 2;
+  overflow: visible;
+  margin-bottom: 18px;
+}
+.navbar-inner {
+  min-height: 40px;
+  padding-left: 20px;
+  padding-right: 20px;
+  background-color: #512e2d;
+  background-image: -moz-linear-gradient(top, #5e3534, #3d2222);
+  background-image: -ms-linear-gradient(top, #5e3534, #3d2222);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5e3534), to(#3d2222));
+  background-image: -webkit-linear-gradient(top, #5e3534, #3d2222);
+  background-image: -o-linear-gradient(top, #5e3534, #3d2222);
+  background-image: linear-gradient(top, #5e3534, #3d2222);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e3534', endColorstr='#3d2222', GradientType=0);
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
+  -moz-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
+  box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
+}
+.navbar .container {
+  width: auto;
+}
+.nav-collapse.collapse {
+  height: auto;
+}
+.navbar {
+  color: #E26128;
+}
+.navbar .brand:hover {
+  text-decoration: none;
+}
+.navbar .brand {
+  float: left;
+  display: block;
+  padding: 8px 20px 12px;
+  margin-left: -20px;
+  font-size: 20px;
+  font-weight: 200;
+  line-height: 1;
+  color: #E26128;
+}
+.navbar .navbar-text {
+  margin-bottom: 0;
+  line-height: 40px;
+}
+.navbar .navbar-link {
+  color: #E26128;
+}
+.navbar .navbar-link:hover {
+  color: #1a1515;
+}
+.navbar .btn,
+.navbar .btn-group {
+  margin-top: 5px;
+}
+.navbar .btn-group .btn {
+  margin: 0;
+}
+.navbar-form {
+  margin-bottom: 0;
+  *zoom: 1;
+}
+.navbar-form:before,
+.navbar-form:after {
+  display: table;
+  content: "";
+}
+.navbar-form:after {
+  clear: both;
+}
+.navbar-form input,
+.navbar-form select,
+.navbar-form .radio,
+.navbar-form .checkbox {
+  margin-top: 5px;
+}
+.navbar-form input,
+.navbar-form select {
+  display: inline-block;
+  margin-bottom: 0;
+}
+.navbar-form input[type="image"],
+.navbar-form input[type="checkbox"],
+.navbar-form input[type="radio"] {
+  margin-top: 3px;
+}
+.navbar-form .input-append,
+.navbar-form .input-prepend {
+  margin-top: 6px;
+  white-space: nowrap;
+}
+.navbar-form .input-append input,
+.navbar-form .input-prepend input {
+  margin-top: 0;
+}
+.navbar-search {
+  position: relative;
+  float: left;
+  margin-top: 6px;
+  margin-bottom: 0;
+}
+.navbar-search .search-query {
+  padding: 4px 9px;
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-size: 13px;
+  font-weight: normal;
+  line-height: 1;
+  color: #1a1515;
+  background-color: #8f514f;
+  border: 1px solid #2d1919;
+  -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
+  -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
+  box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
+  -webkit-transition: none;
+  -moz-transition: none;
+  -ms-transition: none;
+  -o-transition: none;
+  transition: none;
+}
+.navbar-search .search-query:-moz-placeholder {
+  color: #cccccc;
+}
+.navbar-search .search-query::-webkit-input-placeholder {
+  color: #cccccc;
+}
+.navbar-search .search-query:focus,
+.navbar-search .search-query.focused {
+  padding: 5px 10px;
+  color: #5e3534;
+  text-shadow: 0 1px 0 #1a1515;
+  background-color: #1a1515;
+  border: 0;
+  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
+  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
+  box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
+  outline: 0;
+}
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  position: fixed;
+  right: 0;
+  left: 0;
+  z-index: 1030;
+  margin-bottom: 0;
+}
+.navbar-fixed-top .navbar-inner,
+.navbar-fixed-bottom .navbar-inner {
+  padding-left: 0;
+  padding-right: 0;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
+}
+.navbar-fixed-top .container,
+.navbar-fixed-bottom .container {
+  width: 940px;
+}
+.navbar-fixed-top {
+  top: 0;
+}
+.navbar-fixed-bottom {
+  bottom: 0;
+}
+.navbar .nav {
+  position: relative;
+  left: 0;
+  display: block;
+  float: left;
+  margin: 0 10px 0 0;
+}
+.navbar .nav.pull-right {
+  float: right;
+}
+.navbar .nav > li {
+  display: block;
+  float: left;
+}
+.navbar .nav > li > a {
+  float: none;
+  padding: 9px 10px 11px;
+  line-height: 19px;
+  color: #E26128;
+  text-decoration: none;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.navbar .btn {
+  display: inline-block;
+  padding: 4px 10px 4px;
+  margin: 5px 5px 6px;
+  line-height: 18px;
+}
+.navbar .btn-group {
+  margin: 0;
+  padding: 5px 5px 6px;
+}
+.navbar .nav > li > a:hover {
+  background-color: transparent;
+  color: #B8B7B6;
+  text-decoration: none;
+}
+.navbar .nav .active > a,
+.navbar .nav .active > a:hover {
+  color: #1a1515;
+  text-decoration: none;
+  background-color: #3d2222;
+}
+.navbar .divider-vertical {
+  height: 40px;
+  width: 1px;
+  margin: 0 9px;
+  overflow: hidden;
+  background-color: #3d2222;
+  border-right: 1px solid #5e3534;
+}
+.navbar .nav.pull-right {
+  margin-left: 10px;
+  margin-right: 0;
+}
+.navbar .btn-navbar {
+  display: none;
+  float: right;
+  padding: 7px 10px;
+  margin-left: 5px;
+  margin-right: 5px;
+  background-color: #512e2d;
+  background-image: -moz-linear-gradient(top, #5e3534, #3d2222);
+  background-image: -ms-linear-gradient(top, #5e3534, #3d2222);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5e3534), to(#3d2222));
+  background-image: -webkit-linear-gradient(top, #5e3534, #3d2222);
+  background-image: -o-linear-gradient(top, #5e3534, #3d2222);
+  background-image: linear-gradient(top, #5e3534, #3d2222);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e3534', endColorstr='#3d2222', GradientType=0);
+  border-color: #3d2222 #3d2222 #0c0707;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  *background-color: #3d2222;
+  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
+  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
+  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
+}
+.navbar .btn-navbar:hover,
+.navbar .btn-navbar:active,
+.navbar .btn-navbar.active,
+.navbar .btn-navbar.disabled,
+.navbar .btn-navbar[disabled] {
+  background-color: #3d2222;
+  *background-color: #2d1919;
+}
+.navbar .btn-navbar:active,
+.navbar .btn-navbar.active {
+  background-color: #1c1010 \9;
+}
+.navbar .btn-navbar .icon-bar {
+  display: block;
+  width: 18px;
+  height: 2px;
+  background-color: #f5f5f5;
+  -webkit-border-radius: 1px;
+  -moz-border-radius: 1px;
+  border-radius: 1px;
+  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+}
+.btn-navbar .icon-bar + .icon-bar {
+  margin-top: 3px;
+}
+.navbar .dropdown-menu:before {
+  content: '';
+  display: inline-block;
+  border-left: 7px solid transparent;
+  border-right: 7px solid transparent;
+  border-bottom: 7px solid #ccc;
+  border-bottom-color: rgba(0, 0, 0, 0.2);
+  position: absolute;
+  top: -7px;
+  left: 9px;
+}
+.navbar .dropdown-menu:after {
+  content: '';
+  display: inline-block;
+  border-left: 6px solid transparent;
+  border-right: 6px solid transparent;
+  border-bottom: 6px solid #1a1515;
+  position: absolute;
+  top: -6px;
+  left: 10px;
+}
+.navbar-fixed-bottom .dropdown-menu:before {
+  border-top: 7px solid #ccc;
+  border-top-color: rgba(0, 0, 0, 0.2);
+  border-bottom: 0;
+  bottom: -7px;
+  top: auto;
+}
+.navbar-fixed-bottom .dropdown-menu:after {
+  border-top: 6px solid #1a1515;
+  border-bottom: 0;
+  bottom: -6px;
+  top: auto;
+}
+.navbar .nav li.dropdown .dropdown-toggle .caret,
+.navbar .nav li.dropdown.open .caret {
+  border-top-color: #1a1515;
+  border-bottom-color: #1a1515;
+}
+.navbar .nav li.dropdown.active .caret {
+  opacity: 1;
+  filter: alpha(opacity=100);
+}
+.navbar .nav li.dropdown.open > .dropdown-toggle,
+.navbar .nav li.dropdown.active > .dropdown-toggle,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle {
+  background-color: transparent;
+}
+.navbar .nav li.dropdown.active > .dropdown-toggle:hover {
+  color: #1a1515;
+}
+.navbar .pull-right .dropdown-menu,
+.navbar .dropdown-menu.pull-right {
+  left: auto;
+  right: 0;
+}
+.navbar .pull-right .dropdown-menu:before,
+.navbar .dropdown-menu.pull-right:before {
+  left: auto;
+  right: 12px;
+}
+.navbar .pull-right .dropdown-menu:after,
+.navbar .dropdown-menu.pull-right:after {
+  left: auto;
+  right: 13px;
+}
+.breadcrumb {
+  padding: 7px 14px;
+  margin: 0 0 18px;
+  list-style: none;
+  background-color: #726f6f;
+  background-image: -moz-linear-gradient(top, #1a1515, #f5f5f5);
+  background-image: -ms-linear-gradient(top, #1a1515, #f5f5f5);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#1a1515), to(#f5f5f5));
+  background-image: -webkit-linear-gradient(top, #1a1515, #f5f5f5);
+  background-image: -o-linear-gradient(top, #1a1515, #f5f5f5);
+  background-image: linear-gradient(top, #1a1515, #f5f5f5);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1a1515', endColorstr='#f5f5f5', GradientType=0);
+  border: 1px solid #ddd;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+  -webkit-box-shadow: inset 0 1px 0 #1a1515;
+  -moz-box-shadow: inset 0 1px 0 #1a1515;
+  box-shadow: inset 0 1px 0 #1a1515;
+}
+.breadcrumb li {
+  display: inline-block;
+  *display: inline;
+  /* IE7 inline-block hack */
+
+  *zoom: 1;
+  text-shadow: 0 1px 0 #1a1515;
+}
+.breadcrumb .divider {
+  padding: 0 5px;
+  color: #E26128;
+}
+.breadcrumb .active a {
+  color: #5e3534;
+}
+.pagination {
+  height: 36px;
+  margin: 18px 0;
+}
+.pagination ul {
+  display: inline-block;
+  *display: inline;
+  /* IE7 inline-block hack */
+
+  *zoom: 1;
+  margin-left: 0;
+  margin-bottom: 0;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+.pagination li {
+  display: inline;
+}
+.pagination a {
+  float: left;
+  padding: 0 14px;
+  line-height: 34px;
+  text-decoration: none;
+  border: 1px solid #ddd;
+  border-left-width: 0;
+}
+.pagination a:hover,
+.pagination .active a {
+  background-color: #f5f5f5;
+}
+.pagination .active a {
+  color: #E26128;
+  cursor: default;
+}
+.pagination .disabled span,
+.pagination .disabled a,
+.pagination .disabled a:hover {
+  color: #E26128;
+  background-color: transparent;
+  cursor: default;
+}
+.pagination li:first-child a {
+  border-left-width: 1px;
+  -webkit-border-radius: 3px 0 0 3px;
+  -moz-border-radius: 3px 0 0 3px;
+  border-radius: 3px 0 0 3px;
+}
+.pagination li:last-child a {
+  -webkit-border-radius: 0 3px 3px 0;
+  -moz-border-radius: 0 3px 3px 0;
+  border-radius: 0 3px 3px 0;
+}
+.pagination-centered {
+  text-align: center;
+}
+.pagination-right {
+  text-align: right;
+}
+.pager {
+  margin-left: 0;
+  margin-bottom: 18px;
+  list-style: none;
+  text-align: center;
+  *zoom: 1;
+}
+.pager:before,
+.pager:after {
+  display: table;
+  content: "";
+}
+.pager:after {
+  clear: both;
+}
+.pager li {
+  display: inline;
+}
+.pager a {
+  display: inline-block;
+  padding: 5px 14px;
+  background-color: #fff;
+  border: 1px solid #ddd;
+  -webkit-border-radius: 15px;
+  -moz-border-radius: 15px;
+  border-radius: 15px;
+}
+.pager a:hover {
+  text-decoration: none;
+  background-color: #f5f5f5;
+}
+.pager .next a {
+  float: right;
+}
+.pager .previous a {
+  float: left;
+}
+.pager .disabled a,
+.pager .disabled a:hover {
+  color: #E26128;
+  background-color: #fff;
+  cursor: default;
+}
+.modal-open .dropdown-menu {
+  z-index: 2050;
+}
+.modal-open .dropdown.open {
+  *z-index: 2050;
+}
+.modal-open .popover {
+  z-index: 2060;
+}
+.modal-open .tooltip {
+  z-index: 2070;
+}
+.modal-backdrop {
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1040;
+  background-color: #1a1515;
+}
+.modal-backdrop.fade {
+  opacity: 0;
+}
+.modal-backdrop,
+.modal-backdrop.fade.in {
+  opacity: 0.8;
+  filter: alpha(opacity=80);
+}
+.modal {
+  position: fixed;
+  top: 50%;
+  left: 50%;
+  z-index: 1050;
+  overflow: auto;
+  width: 560px;
+  margin: -250px 0 0 -280px;
+  background-color: #1a1515;
+  border: 1px solid #999;
+  border: 1px solid rgba(0, 0, 0, 0.3);
+  *border: 1px solid #999;
+  /* IE6-7 */
+
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  -webkit-background-clip: padding-box;
+  -moz-background-clip: padding-box;
+  background-clip: padding-box;
+}
+.modal.fade {
+  -webkit-transition: opacity .3s linear, top .3s ease-out;
+  -moz-transition: opacity .3s linear, top .3s ease-out;
+  -ms-transition: opacity .3s linear, top .3s ease-out;
+  -o-transition: opacity .3s linear, top .3s ease-out;
+  transition: opacity .3s linear, top .3s ease-out;
+  top: -25%;
+}
+.modal.fade.in {
+  top: 50%;
+}
+.modal-header {
+  padding: 9px 15px;
+  border-bottom: 1px solid #eee;
+}
+.modal-header .close {
+  margin-top: 2px;
+}
+.modal-body {
+  overflow-y: auto;
+  max-height: 400px;
+  padding: 15px;
+}
+.modal-form {
+  margin-bottom: 0;
+}
+.modal-footer {
+  padding: 14px 15px 15px;
+  margin-bottom: 0;
+  text-align: right;
+  background-color: #f5f5f5;
+  border-top: 1px solid #ddd;
+  -webkit-border-radius: 0 0 6px 6px;
+  -moz-border-radius: 0 0 6px 6px;
+  border-radius: 0 0 6px 6px;
+  -webkit-box-shadow: inset 0 1px 0 #1a1515;
+  -moz-box-shadow: inset 0 1px 0 #1a1515;
+  box-shadow: inset 0 1px 0 #1a1515;
+  *zoom: 1;
+}
+.modal-footer:before,
+.modal-footer:after {
+  display: table;
+  content: "";
+}
+.modal-footer:after {
+  clear: both;
+}
+.modal-footer .btn + .btn {
+  margin-left: 5px;
+  margin-bottom: 0;
+}
+.modal-footer .btn-group .btn + .btn {
+  margin-left: -1px;
+}
+.tooltip {
+  position: absolute;
+  z-index: 1020;
+  display: block;
+  visibility: visible;
+  padding: 5px;
+  font-size: 11px;
+  opacity: 0;
+  filter: alpha(opacity=0);
+}
+.tooltip.in {
+  opacity: 0.8;
+  filter: alpha(opacity=80);
+}
+.tooltip.top {
+  margin-top: -2px;
+}
+.tooltip.right {
+  margin-left: 2px;
+}
+.tooltip.bottom {
+  margin-top: 2px;
+}
+.tooltip.left {
+  margin-left: -2px;
+}
+.tooltip.top .tooltip-arrow {
+  bottom: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-top: 5px solid #1a1515;
+}
+.tooltip.left .tooltip-arrow {
+  top: 50%;
+  right: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-left: 5px solid #1a1515;
+}
+.tooltip.bottom .tooltip-arrow {
+  top: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-bottom: 5px solid #1a1515;
+}
+.tooltip.right .tooltip-arrow {
+  top: 50%;
+  left: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-right: 5px solid #1a1515;
+}
+.tooltip-inner {
+  max-width: 200px;
+  padding: 3px 8px;
+  color: #1a1515;
+  text-align: center;
+  text-decoration: none;
+  background-color: #1a1515;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.tooltip-arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+}
+.popover {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 1010;
+  display: none;
+  padding: 5px;
+}
+.popover.top {
+  margin-top: -5px;
+}
+.popover.right {
+  margin-left: 5px;
+}
+.popover.bottom {
+  margin-top: 5px;
+}
+.popover.left {
+  margin-left: -5px;
+}
+.popover.top .arrow {
+  bottom: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-top: 5px solid #1a1515;
+}
+.popover.right .arrow {
+  top: 50%;
+  left: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-right: 5px solid #1a1515;
+}
+.popover.bottom .arrow {
+  top: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-bottom: 5px solid #1a1515;
+}
+.popover.left .arrow {
+  top: 50%;
+  right: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-left: 5px solid #1a1515;
+}
+.popover .arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+}
+.popover-inner {
+  padding: 3px;
+  width: 280px;
+  overflow: hidden;
+  background: #1a1515;
+  background: rgba(0, 0, 0, 0.8);
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+}
+.popover-title {
+  padding: 9px 15px;
+  line-height: 1;
+  background-color: #f5f5f5;
+  border-bottom: 1px solid #eee;
+  -webkit-border-radius: 3px 3px 0 0;
+  -moz-border-radius: 3px 3px 0 0;
+  border-radius: 3px 3px 0 0;
+}
+.popover-content {
+  padding: 14px;
+  background-color: #1a1515;
+  -webkit-border-radius: 0 0 3px 3px;
+  -moz-border-radius: 0 0 3px 3px;
+  border-radius: 0 0 3px 3px;
+  -webkit-background-clip: padding-box;
+  -moz-background-clip: padding-box;
+  background-clip: padding-box;
+}
+.popover-content p,
+.popover-content ul,
+.popover-content ol {
+  margin-bottom: 0;
+}
+.thumbnails {
+  margin-left: -20px;
+  list-style: none;
+  *zoom: 1;
+}
+.thumbnails:before,
+.thumbnails:after {
+  display: table;
+  content: "";
+}
+.thumbnails:after {
+  clear: both;
+}
+.row-fluid .thumbnails {
+  margin-left: 0;
+}
+.thumbnails > li {
+  float: left;
+  margin-bottom: 18px;
+  margin-left: 20px;
+}
+.thumbnail {
+  display: block;
+  padding: 4px;
+  line-height: 1;
+  border: 1px solid #ddd;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
+  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+a.thumbnail:hover {
+  border-color: #E26128;
+  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+  -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+  box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+}
+.thumbnail > img {
+  display: block;
+  max-width: 100%;
+  margin-left: auto;
+  margin-right: auto;
+}
+.thumbnail .caption {
+  padding: 9px;
+}
+.label,
+.badge {
+  font-size: 10.998px;
+  font-weight: bold;
+  line-height: 14px;
+  color: #1a1515;
+  vertical-align: baseline;
+  white-space: nowrap;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  background-color: #E26128;
+}
+.label {
+  padding: 1px 4px 2px;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+}
+.badge {
+  padding: 1px 9px 2px;
+  -webkit-border-radius: 9px;
+  -moz-border-radius: 9px;
+  border-radius: 9px;
+}
+a.label:hover,
+a.badge:hover {
+  color: #1a1515;
+  text-decoration: none;
+  cursor: pointer;
+}
+.label-important,
+.badge-important {
+  background-color: #b94a48;
+}
+.label-important[href],
+.badge-important[href] {
+  background-color: #953b39;
+}
+.label-warning,
+.badge-warning {
+  background-color: #f89406;
+}
+.label-warning[href],
+.badge-warning[href] {
+  background-color: #c67605;
+}
+.label-success,
+.badge-success {
+  background-color: #468847;
+}
+.label-success[href],
+.badge-success[href] {
+  background-color: #356635;
+}
+.label-info,
+.badge-info {
+  background-color: #7B7E8C; /* STE #3a87ad; */
+}
+.label-info[href],
+.badge-info[href] {
+  background-color: #2d6987;
+}
+.label-inverse,
+.badge-inverse {
+  background-color: #5e3534;
+}
+.label-inverse[href],
+.badge-inverse[href] {
+  background-color: #3d2222;
+}
+@-webkit-keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+@-moz-keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+@-ms-keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+@-o-keyframes progress-bar-stripes {
+  from {
+    background-position: 0 0;
+  }
+  to {
+    background-position: 40px 0;
+  }
+}
+@keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+.progress {
+  overflow: hidden;
+  height: 18px;
+  margin-bottom: 18px;
+  background-color: #f7f7f7;
+  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
+  background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
+  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
+  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
+  background-image: linear-gradient(top, #f5f5f5, #f9f9f9);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.progress .bar {
+  width: 0%;
+  height: 18px;
+  color: #1a1515;
+  font-size: 12px;
+  text-align: center;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  background-color: #0e90d2;
+  background-image: -moz-linear-gradient(top, #149bdf, #0480be);
+  background-image: -ms-linear-gradient(top, #149bdf, #0480be);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
+  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
+  background-image: -o-linear-gradient(top, #149bdf, #0480be);
+  background-image: linear-gradient(top, #149bdf, #0480be);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);
+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  -ms-box-sizing: border-box;
+  box-sizing: border-box;
+/*  -webkit-transition: width 0.6s ease;
+  -moz-transition: width 0.6s ease;
+  -ms-transition: width 0.6s ease;
+  -o-transition: width 0.6s ease;
+  transition: width 0.6s ease;  STE removed transition*/
+}
+.progress-striped .bar {
+  background-color: #A2412D; /* STE #149bdf */;
+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  -webkit-background-size: 40px 40px;
+  -moz-background-size: 40px 40px;
+  -o-background-size: 40px 40px;
+  background-size: 40px 40px;
+}
+.progress.active .bar {
+  -webkit-animation: progress-bar-stripes 2s linear infinite;
+  -moz-animation: progress-bar-stripes 2s linear infinite;
+  -ms-animation: progress-bar-stripes 2s linear infinite;
+  -o-animation: progress-bar-stripes 2s linear infinite;
+  animation: progress-bar-stripes 2s linear infinite;
+}
+.progress-danger .bar {
+  background-color: #dd514c;
+  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
+  background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
+  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
+  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
+  background-image: linear-gradient(top, #ee5f5b, #c43c35);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
+}
+.progress-danger.progress-striped .bar {
+  background-color: #ee5f5b;
+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.progress-success .bar {
+  background-color: #5eb95e;
+  background-image: -moz-linear-gradient(top, #62c462, #57a957);
+  background-image: -ms-linear-gradient(top, #62c462, #57a957);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
+  background-image: -webkit-linear-gradient(top, #62c462, #57a957);
+  background-image: -o-linear-gradient(top, #62c462, #57a957);
+  background-image: linear-gradient(top, #62c462, #57a957);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
+}
+.progress-success.progress-striped .bar {
+  background-color: #62c462;
+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.progress-info .bar {
+  background-color: #4bb1cf;
+  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
+  background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
+  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
+  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
+  background-image: linear-gradient(top, #5bc0de, #339bb9);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
+}
+.progress-info.progress-striped .bar {
+  background-color: #5bc0de;
+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.progress-warning .bar {
+  background-color: #faa732;
+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
+  background-image: -o-linear-gradient(top, #fbb450, #f89406);
+  background-image: linear-gradient(top, #fbb450, #f89406);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
+}
+.progress-warning.progress-striped .bar {
+  background-color: #fbb450;
+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.accordion {
+  margin-bottom: 18px;
+}
+.accordion-group {
+  margin-bottom: 2px;
+  border: 1px solid #e5e5e5;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.accordion-heading {
+  border-bottom: 0;
+}
+.accordion-heading .accordion-toggle {
+  display: block;
+  padding: 8px 15px;
+}
+.accordion-toggle {
+  cursor: pointer;
+}
+.accordion-inner {
+  padding: 9px 15px;
+  border-top: 1px solid #e5e5e5;
+}
+.carousel {
+  position: relative;
+  margin-bottom: 18px;
+  line-height: 1;
+}
+.carousel-inner {
+  overflow: hidden;
+  width: 100%;
+  position: relative;
+}
+.carousel .item {
+  display: none;
+  position: relative;
+  -webkit-transition: 0.6s ease-in-out left;
+  -moz-transition: 0.6s ease-in-out left;
+  -ms-transition: 0.6s ease-in-out left;
+  -o-transition: 0.6s ease-in-out left;
+  transition: 0.6s ease-in-out left;
+}
+.carousel .item > img {
+  display: block;
+  line-height: 1;
+}
+.carousel .active,
+.carousel .next,
+.carousel .prev {
+  display: block;
+}
+.carousel .active {
+  left: 0;
+}
+.carousel .next,
+.carousel .prev {
+  position: absolute;
+  top: 0;
+  width: 100%;
+}
+.carousel .next {
+  left: 100%;
+}
+.carousel .prev {
+  left: -100%;
+}
+.carousel .next.left,
+.carousel .prev.right {
+  left: 0;
+}
+.carousel .active.left {
+  left: -100%;
+}
+.carousel .active.right {
+  left: 100%;
+}
+.carousel-control {
+  position: absolute;
+  top: 40%;
+  left: 15px;
+  width: 40px;
+  height: 40px;
+  margin-top: -20px;
+  font-size: 60px;
+  font-weight: 100;
+  line-height: 30px;
+  color: #1a1515;
+  text-align: center;
+  background: #3d2222;
+  border: 3px solid #1a1515;
+  -webkit-border-radius: 23px;
+  -moz-border-radius: 23px;
+  border-radius: 23px;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+}
+.carousel-control.right {
+  left: auto;
+  right: 15px;
+}
+.carousel-control:hover {
+  color: #1a1515;
+  text-decoration: none;
+  opacity: 0.9;
+  filter: alpha(opacity=90);
+}
+.carousel-caption {
+  position: absolute;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  padding: 10px 15px 5px;
+  background: #5e3534;
+  background: rgba(0, 0, 0, 0.75);
+}
+.carousel-caption h4,
+.carousel-caption p {
+  color: #1a1515;
+}
+.hero-unit {
+  padding: 30px; /* STE */
+  margin-bottom: 30px;
+  background-color: #eb9742;
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+}
+.hero-unit h1 {
+  margin-bottom: 0;
+  font-size: 60px;
+  line-height: 1;
+  color: inherit;
+  letter-spacing: -1px;
+}
+.hero-unit p {
+  font-size: 18px;
+  font-weight: 200;
+  line-height: 27px;
+  color: inherit;
+}
+.pull-right {
+  float: right;
+}
+.pull-left {
+  float: left;
+}
+.hide {
+  display: none;
+}
+.show {
+  display: block;
+}
+.invisible {
+  visibility: hidden;
+}
+
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/css/docs.css b/suite/pts/deviceTests/browserbench/assets/octane/css/docs.css
new file mode 100644
index 0000000..92a4ec8
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/css/docs.css
@@ -0,0 +1,846 @@
+/* Add additional stylesheets below
+-------------------------------------------------- */
+/*
+  Bootstrap's documentation styles
+  Special styles for presenting Bootstrap's documentation and examples
+*/
+
+
+/* Body and structure
+-------------------------------------------------- */
+body {
+  position: relative;
+  padding-top: 90px;
+  background-color: #fff;
+  background-image: url(../img/grid-18px-masked.png);
+  background-repeat: repeat-x;
+  background-position: 0 40px;
+}
+
+
+/* Tweak navbar brand link to be super sleek
+-------------------------------------------------- */
+.navbar-fixed-top .brand {
+  padding-right: 0;
+  padding-left: 0;
+  margin-left: 20px;
+  float: right;
+  font-weight: bold;
+  color: #000;
+  text-shadow: 0 1px 0 rgba(255,255,255,.1), 0 0 30px rgba(255,255,255,.125);
+  -webkit-transition: all .2s linear;
+     -moz-transition: all .2s linear;
+          transition: all .2s linear;
+}
+.navbar-fixed-top .brand:hover {
+  text-decoration: none;
+}
+
+
+/* Space out sub-sections more
+-------------------------------------------------- */
+section {
+  padding-top: 60px;
+}
+
+/* Faded out hr */
+hr.soften {
+  height: 1px;
+  margin: 54px 0;
+  background-image: -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
+  background-image:    -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
+  background-image:     -ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
+  background-image:      -o-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
+  border: 0;
+}
+
+
+/* Jumbotrons
+-------------------------------------------------- */
+.jumbotron {
+  position: relative;
+}
+.jumbotron h1 {
+  margin-bottom: 9px;
+  font-size: 81px;
+  font-weight: bold;
+  letter-spacing: -1px;
+  line-height: 1;
+}
+.jumbotron p {
+  margin-bottom: 18px;
+  font-weight: 300;
+}
+.jumbotron .btn-large {
+  font-size: 20px;
+  font-weight: normal;
+  padding: 14px 24px;
+  margin-right: 10px;
+  -webkit-border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
+}
+.jumbotron .btn-large small {
+  font-size: 14px;
+}
+
+/* Masthead (docs home) */
+.masthead {
+  padding-top: 36px;
+  margin-bottom: 72px;
+}
+.masthead h1,
+.masthead p {
+  text-align: center;
+}
+.masthead h1 {
+  margin-bottom: 18px;
+}
+.masthead p {
+  margin-left: 5%;
+  margin-right: 5%;
+  font-size: 30px;
+  line-height: 36px;
+}
+
+
+/* Specific jumbotrons
+------------------------- */
+/* supporting docs pages */
+.subhead {
+  padding-bottom: 0;
+  margin-bottom: 9px;
+}
+.subhead h1 {
+  font-size: 54px;
+}
+
+/* Subnav */
+.subnav {
+  width: 100%;
+  height: 36px;
+  background-color: #eeeeee; /* Old browsers */
+  background-repeat: repeat-x; /* Repeat the gradient */
+  background-image: -moz-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%); /* FF3.6+ */
+  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(100%,#eeeeee)); /* Chrome,Safari4+ */
+  background-image: -webkit-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Chrome 10+,Safari 5.1+ */
+  background-image: -ms-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* IE10+ */
+  background-image: -o-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Opera 11.10+ */
+  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 ); /* IE6-9 */
+  background-image: linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* W3C */
+  border: 1px solid #e5e5e5;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+}
+.subnav .nav {
+  margin-bottom: 0;
+}
+.subnav .nav > li > a {
+  margin: 0;
+  padding-top:    11px;
+  padding-bottom: 11px;
+  border-left: 1px solid #f5f5f5;
+  border-right: 1px solid #e5e5e5;
+  -webkit-border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
+}
+.subnav .nav > .active > a,
+.subnav .nav > .active > a:hover {
+  padding-left: 13px;
+  color: #777;
+  background-color: #e9e9e9;
+  border-right-color: #ddd;
+  border-left: 0;
+  -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
+     -moz-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
+          box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
+}
+.subnav .nav > .active > a .caret,
+.subnav .nav > .active > a:hover .caret {
+  border-top-color: #777;
+}
+.subnav .nav > li:first-child > a,
+.subnav .nav > li:first-child > a:hover {
+  border-left: 0;
+  padding-left: 12px;
+  -webkit-border-radius: 4px 0 0 4px;
+     -moz-border-radius: 4px 0 0 4px;
+          border-radius: 4px 0 0 4px;
+}
+.subnav .nav > li:last-child > a {
+  border-right: 0;
+}
+.subnav .dropdown-menu {
+  -webkit-border-radius: 0 0 4px 4px;
+     -moz-border-radius: 0 0 4px 4px;
+          border-radius: 0 0 4px 4px;
+}
+
+/* Fixed subnav on scroll, but only for 980px and up (sorry IE!) */
+@media (min-width: 980px) {
+  .subnav-fixed {
+    position: fixed;
+    top: 40px;
+    left: 0;
+    right: 0;
+    z-index: 1020; /* 10 less than .navbar-fixed to prevent any overlap */
+    border-color: #d5d5d5;
+    border-width: 0 0 1px; /* drop the border on the fixed edges */
+    -webkit-border-radius: 0;
+       -moz-border-radius: 0;
+            border-radius: 0;
+    -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
+       -moz-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
+            box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
+    filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); /* IE6-9 */
+  }
+  .subnav-fixed .nav {
+    width: 938px;
+    margin: 0 auto;
+    padding: 0 1px;
+  }
+  .subnav .nav > li:first-child > a,
+  .subnav .nav > li:first-child > a:hover {
+    -webkit-border-radius: 0;
+       -moz-border-radius: 0;
+            border-radius: 0;
+  }
+}
+
+
+/* Quick links
+-------------------------------------------------- */
+.bs-links {
+  margin: 36px 0;
+}
+.quick-links {
+  min-height: 30px;
+  margin: 0;
+  padding: 5px 20px;
+  list-style: none;
+  text-align: center;
+  overflow: hidden;
+}
+.quick-links:first-child {
+  min-height: 0;
+}
+.quick-links li {
+  display: inline;
+  margin: 0 8px;
+  color: #999;
+}
+.quick-links .github-btn,
+.quick-links .tweet-btn,
+.quick-links .follow-btn {
+  position: relative;
+  top: 5px;
+}
+
+
+/* Marketing section of Overview
+-------------------------------------------------- */
+.marketing .row {
+  margin-bottom: 9px;
+}
+.marketing h1 {
+  margin: 36px 0 27px;
+  font-size: 40px;
+  font-weight: 300;
+  text-align: center;
+}
+.marketing h2,
+.marketing h3 {
+  font-weight: 300;
+}
+.marketing h2 {
+  font-size: 22px;
+}
+.marketing p {
+  margin-right: 10px;
+}
+.marketing .bs-icon {
+  float: left;
+  margin: 7px 10px 0 0;
+  opacity: .8;
+}
+.marketing .small-bs-icon {
+  float: left;
+  margin: 4px 5px 0 0;
+}
+
+
+
+/* Footer
+-------------------------------------------------- */
+.footer {
+  margin-top: 45px;
+  padding: 35px 0 36px;
+  border-top: 1px solid #e5e5e5;
+}
+.footer p {
+  margin-bottom: 0;
+  color: #555;
+}
+
+
+
+/* Special grid styles
+-------------------------------------------------- */
+.show-grid {
+  margin-top: 10px;
+  margin-bottom: 20px;
+}
+.show-grid [class*="span"] {
+  background-color: #eee;
+  text-align: center;
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
+  min-height: 30px;
+  line-height: 30px;
+}
+.show-grid:hover [class*="span"] {
+  background: #ddd;
+}
+.show-grid .show-grid {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+.show-grid .show-grid [class*="span"] {
+  background-color: #ccc;
+}
+
+
+/* Render mini layout previews
+-------------------------------------------------- */
+.mini-layout {
+  border: 1px solid #ddd;
+  -webkit-border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
+  -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.075);
+     -moz-box-shadow: 0 1px 2px rgba(0,0,0,.075);
+          box-shadow: 0 1px 2px rgba(0,0,0,.075);
+}
+.mini-layout {
+  height: 240px;
+  margin-bottom: 20px;
+  padding: 9px;
+}
+.mini-layout div {
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
+}
+.mini-layout .mini-layout-body {
+  background-color: #dceaf4;
+  margin: 0 auto;
+  width: 70%;
+  height: 240px;
+}
+.mini-layout.fluid .mini-layout-sidebar,
+.mini-layout.fluid .mini-layout-header,
+.mini-layout.fluid .mini-layout-body {
+  float: left;
+}
+.mini-layout.fluid .mini-layout-sidebar {
+  background-color: #bbd8e9;
+  width: 20%;
+  height: 240px;
+}
+.mini-layout.fluid .mini-layout-body {
+  width: 77.5%;
+  margin-left: 2.5%;
+}
+
+
+/* Popover docs
+-------------------------------------------------- */
+.popover-well {
+  min-height: 160px;
+}
+.popover-well .popover {
+  display: block;
+}
+.popover-well .popover-wrapper {
+  width: 50%;
+  height: 160px;
+  float: left;
+  margin-left: 55px;
+  position: relative;
+}
+.popover-well .popover-menu-wrapper {
+  height: 80px;
+}
+.large-bird {
+  margin: 5px 0 0 310px;
+  opacity: .1;
+}
+
+
+/* Download page
+-------------------------------------------------- */
+.download .page-header {
+  margin-top: 36px;
+}
+.page-header .toggle-all {
+  margin-top: 5px;
+}
+
+/* Space out h3s when following a section */
+.download h3 {
+  margin-bottom: 5px;
+}
+.download-builder input + h3,
+.download-builder .checkbox + h3 {
+  margin-top: 9px;
+}
+
+/* Fields for variables */
+.download-builder input[type=text] {
+  margin-bottom: 9px;
+  font-family: Menlo, Monaco, "Courier New", monospace;
+  font-size: 12px;
+  color: #d14;
+}
+.download-builder input[type=text]:focus {
+  background-color: #fff;
+}
+
+/* Custom, larger checkbox labels */
+.download .checkbox {
+  padding: 6px 10px 6px 25px;
+  color: #555;
+  background-color: #f9f9f9;
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
+  cursor: pointer;
+}
+.download .checkbox:hover {
+  color: #333;
+  background-color: #f5f5f5;
+}
+.download .checkbox small {
+  font-size: 12px;
+  color: #777;
+}
+
+/* Variables section */
+#variables label {
+  margin-bottom: 0;
+}
+
+/* Giant download button */
+.download-btn {
+  margin: 36px 0 108px;
+}
+#download p,
+#download h4 {
+  max-width: 50%;
+  margin: 0 auto;
+  color: #999;
+  text-align: center;
+}
+#download h4 {
+  margin-bottom: 0;
+}
+#download p {
+  margin-bottom: 18px;
+}
+.download-btn .btn {
+  display: block;
+  width: auto;
+  padding: 19px 24px;
+  margin-bottom: 27px;
+  font-size: 30px;
+  line-height: 1;
+  text-align: center;
+  -webkit-border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
+}
+
+
+
+/* Color swatches on LESS docs page
+-------------------------------------------------- */
+/* Sets the width of the td */
+.swatch-col {
+  width: 30px;
+}
+/* Le swatch */
+.swatch {
+  display: inline-block;
+  width: 30px;
+  height: 20px;
+  margin: -6px 0;
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
+}
+/* For white swatches, give a border */
+.swatch-bordered {
+  width: 28px;
+  height: 18px;
+  border: 1px solid #eee;
+}
+
+
+/* Misc
+-------------------------------------------------- */
+
+/* Make tables spaced out a bit more */
+h2 + table,
+h3 + table,
+h4 + table,
+h2 + .row {
+  margin-top: 5px;
+}
+
+/* Example sites showcase */
+.example-sites img {
+  max-width: 100%;
+  margin: 0 auto;
+}
+.marketing-byline {
+  margin: -18px 0 27px;
+  font-size: 18px;
+  font-weight: 300;
+  line-height: 24px;
+  color: #999;
+  text-align: center;
+}
+
+.scrollspy-example {
+  height: 200px;
+  overflow: auto;
+  position: relative;
+}
+
+/* Remove bottom margin on example forms in wells */
+form.well {
+  padding: 14px;
+}
+
+/* Tighten up spacing */
+.well hr {
+  margin: 18px 0;
+}
+
+/* Fake the :focus state to demo it */
+.focused {
+  border-color: rgba(82,168,236,.8);
+  -webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
+     -moz-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
+          box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
+  outline: 0;
+}
+
+/* For input sizes, make them display block */
+.docs-input-sizes select,
+.docs-input-sizes input[type=text] {
+  display: block;
+  margin-bottom: 9px;
+}
+
+/* Icons
+------------------------- */
+.the-icons {
+  margin-left: 0;
+  list-style: none;
+}
+.the-icons i:hover {
+  background-color: rgba(255,0,0,.25);
+}
+
+/* Eaxmples page
+------------------------- */
+.bootstrap-examples .thumbnail {
+  margin-bottom: 9px;
+  background-color: #fff;
+}
+
+/* Responsive table
+------------------------- */
+.responsive-utilities th small {
+  display: block;
+  font-weight: normal;
+  color: #999;
+}
+.responsive-utilities tbody th {
+  font-weight: normal;
+}
+.responsive-utilities td {
+  text-align: center;
+}
+.responsive-utilities td.is-visible {
+  color: #468847;
+  background-color: #dff0d8 !important;
+}
+.responsive-utilities td.is-hidden {
+  color: #ccc;
+  background-color: #f9f9f9 !important;
+}
+
+/* Responsive tests
+------------------------- */
+.responsive-utilities-test {
+  margin-top: 5px;
+  margin-left: 0;
+  list-style: none;
+  overflow: hidden; /* clear floats */
+}
+.responsive-utilities-test li {
+  position: relative;
+  float: left;
+  width: 25%;
+  height: 43px;
+  font-size: 14px;
+  font-weight: bold;
+  line-height: 43px;
+  color: #999;
+  text-align: center;
+  border: 1px solid #ddd;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+}
+.responsive-utilities-test li + li {
+  margin-left: 10px;
+}
+.responsive-utilities-test span {
+  position: absolute;
+  top:    -1px;
+  left:   -1px;
+  right:  -1px;
+  bottom: -1px;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+}
+.responsive-utilities-test span {
+  color: #468847;
+  background-color: #dff0d8;
+  border: 1px solid #d6e9c6;
+}
+
+
+/* Responsive Docs
+-------------------------------------------------- */
+@media (max-width: 480px) {
+
+  /* Reduce padding above jumbotron */
+  body {
+    padding-top: 70px;
+  }
+
+  /* Change up some type stuff */
+  h2 {
+    margin-top: 27px;
+  }
+  h2 small {
+    display: block;
+    line-height: 18px;
+  }
+  h3 {
+    margin-top: 18px;
+  }
+
+  /* icons */
+  .marketing .bs-icon {
+    margin: 0;
+  }
+
+  /* Adjust the jumbotron */
+  .jumbotron h1,
+  .jumbotron p {
+    text-align: center;
+    margin-right: 0;
+  }
+  .jumbotron h1 {
+    font-size: 45px;
+    margin-right: 0;
+  }
+  .jumbotron p {
+    margin-right: 0;
+    margin-left: 0;
+    font-size: 18px;
+    line-height: 24px;
+  }
+  .jumbotron .btn {
+    display: block;
+    font-size: 18px;
+    padding: 10px 14px;
+    margin: 0 auto 10px;
+  }
+  /* Masthead (home page jumbotron) */
+  .masthead {
+    padding-top: 0;
+  }
+
+  /* Don't space out quick links so much */
+  .quick-links {
+    margin: 40px 0 0;
+  }
+  /* hide the bullets on mobile since our horizontal space is limited */
+  .quick-links .divider {
+    display: none;
+  }
+
+  /* center example sites */
+  .example-sites {
+    margin-left: 0;
+  }
+  .example-sites > li {
+    float: none;
+    display: block;
+    max-width: 280px;
+    margin: 0 auto 18px;
+    text-align: center;
+  }
+  .example-sites .thumbnail > img {
+    max-width: 270px;
+  }
+
+  table code {
+    white-space: normal;
+    word-wrap: break-word;
+    word-break: break-all;
+  }
+
+  /* Modal example */
+  .modal-example .modal {
+    position: relative;
+    top: auto;
+    right: auto;
+    bottom: auto;
+    left: auto;
+  }
+
+}
+
+
+@media (max-width: 768px) {
+
+  /* Remove any padding from the body */
+  body {
+    padding-top: 0;
+  }
+
+  /* Jumbotron buttons */
+  .jumbotron .btn {
+    margin-bottom: 10px;
+  }
+
+  /* Subnav */
+  .subnav {
+    position: static;
+    top: auto;
+    z-index: auto;
+    width: auto;
+    height: auto;
+    background: #fff; /* whole background property since we use a background-image for gradient */
+    -webkit-box-shadow: none;
+       -moz-box-shadow: none;
+            box-shadow: none;
+  }
+  .subnav .nav > li {
+    float: none;
+  }
+  .subnav .nav > li > a {
+    border: 0;
+  }
+  .subnav .nav > li + li > a {
+    border-top: 1px solid #e5e5e5;
+  }
+  .subnav .nav > li:first-child > a,
+  .subnav .nav > li:first-child > a:hover {
+      -webkit-border-radius: 4px 4px 0 0;
+         -moz-border-radius: 4px 4px 0 0;
+              border-radius: 4px 4px 0 0;
+  }
+
+  /* Popovers */
+  .large-bird {
+    display: none;
+  }
+  .popover-well .popover-wrapper {
+    margin-left: 0;
+  }
+
+  /* Space out the show-grid examples */
+  .show-grid [class*="span"] {
+    margin-bottom: 5px;
+  }
+
+  /* Unfloat the back to top link in footer */
+  .footer .pull-right {
+    float: none;
+  }
+  .footer p {
+    margin-bottom: 9px;
+  }
+
+}
+
+
+@media (min-width: 480px) and (max-width: 768px) {
+
+  /* Scale down the jumbotron content */
+  .jumbotron h1 {
+    font-size: 54px;
+  }
+  .jumbotron p {
+    margin-right: 0;
+    margin-left: 0;
+  }
+
+}
+
+
+@media (min-width: 768px) and (max-width: 980px) {
+
+  /* Remove any padding from the body */
+  body {
+    padding-top: 0;
+  }
+
+  /* Scale down the jumbotron content */
+  .jumbotron h1 {
+    font-size: 72px;
+  }
+
+}
+
+
+@media (max-width: 980px) {
+
+  /* Unfloat brand */
+  .navbar-fixed-top .brand {
+    float: left;
+    margin-left: 0;
+    padding-left: 10px;
+    padding-right: 10px;
+  }
+
+  /* Inline-block quick links for more spacing */
+  .quick-links li {
+    display: inline-block;
+    margin: 5px;
+  }
+
+}
+
+
+/* LARGE DESKTOP SCREENS */
+@media (min-width: 1210px) {
+
+  /* Update subnav container */
+  .subnav-fixed .nav {
+    width: 1168px; /* 2px less to account for left/right borders being removed when in fixed mode */
+  }
+
+}
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/deltablue.js b/suite/pts/deviceTests/browserbench/assets/octane/deltablue.js
new file mode 100644
index 0000000..70d3b01
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/deltablue.js
@@ -0,0 +1,883 @@
+// Copyright 2008 the V8 project authors. All rights reserved.
+// Copyright 1996 John Maloney and Mario Wolczko.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+// This implementation of the DeltaBlue benchmark is derived
+// from the Smalltalk implementation by John Maloney and Mario
+// Wolczko. Some parts have been translated directly, whereas
+// others have been modified more aggresively to make it feel
+// more like a JavaScript program.
+
+
+var DeltaBlue = new BenchmarkSuite('DeltaBlue', 66118, [
+  new Benchmark('DeltaBlue', deltaBlue)
+]);
+
+
+/**
+ * A JavaScript implementation of the DeltaBlue constraint-solving
+ * algorithm, as described in:
+ *
+ * "The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver"
+ *   Bjorn N. Freeman-Benson and John Maloney
+ *   January 1990 Communications of the ACM,
+ *   also available as University of Washington TR 89-08-06.
+ *
+ * Beware: this benchmark is written in a grotesque style where
+ * the constraint model is built by side-effects from constructors.
+ * I've kept it this way to avoid deviating too much from the original
+ * implementation.
+ */
+
+
+/* --- O b j e c t   M o d e l --- */
+
+Object.defineProperty(Object.prototype, "inheritsFrom", {
+  
+  value: function (shuper) {
+    function Inheriter() { }
+    Inheriter.prototype = shuper.prototype;
+    this.prototype = new Inheriter();
+    this.superConstructor = shuper;
+  }
+});
+
+function OrderedCollection() {
+  this.elms = new Array();
+}
+
+OrderedCollection.prototype.add = function (elm) {
+  this.elms.push(elm);
+}
+
+OrderedCollection.prototype.at = function (index) {
+  return this.elms[index];
+}
+
+OrderedCollection.prototype.size = function () {
+  return this.elms.length;
+}
+
+OrderedCollection.prototype.removeFirst = function () {
+  return this.elms.pop();
+}
+
+OrderedCollection.prototype.remove = function (elm) {
+  var index = 0, skipped = 0;
+  for (var i = 0; i < this.elms.length; i++) {
+    var value = this.elms[i];
+    if (value != elm) {
+      this.elms[index] = value;
+      index++;
+    } else {
+      skipped++;
+    }
+  }
+  for (var i = 0; i < skipped; i++)
+    this.elms.pop();
+}
+
+/* --- *
+ * S t r e n g t h
+ * --- */
+
+/**
+ * Strengths are used to measure the relative importance of constraints.
+ * New strengths may be inserted in the strength hierarchy without
+ * disrupting current constraints.  Strengths cannot be created outside
+ * this class, so pointer comparison can be used for value comparison.
+ */
+function Strength(strengthValue, name) {
+  this.strengthValue = strengthValue;
+  this.name = name;
+}
+
+Strength.stronger = function (s1, s2) {
+  return s1.strengthValue < s2.strengthValue;
+}
+
+Strength.weaker = function (s1, s2) {
+  return s1.strengthValue > s2.strengthValue;
+}
+
+Strength.weakestOf = function (s1, s2) {
+  return this.weaker(s1, s2) ? s1 : s2;
+}
+
+Strength.strongest = function (s1, s2) {
+  return this.stronger(s1, s2) ? s1 : s2;
+}
+
+Strength.prototype.nextWeaker = function () {
+  switch (this.strengthValue) {
+    case 0: return Strength.WEAKEST;
+    case 1: return Strength.WEAK_DEFAULT;
+    case 2: return Strength.NORMAL;
+    case 3: return Strength.STRONG_DEFAULT;
+    case 4: return Strength.PREFERRED;
+    case 5: return Strength.REQUIRED;
+  }
+}
+
+// Strength constants.
+Strength.REQUIRED        = new Strength(0, "required");
+Strength.STONG_PREFERRED = new Strength(1, "strongPreferred");
+Strength.PREFERRED       = new Strength(2, "preferred");
+Strength.STRONG_DEFAULT  = new Strength(3, "strongDefault");
+Strength.NORMAL          = new Strength(4, "normal");
+Strength.WEAK_DEFAULT    = new Strength(5, "weakDefault");
+Strength.WEAKEST         = new Strength(6, "weakest");
+
+/* --- *
+ * C o n s t r a i n t
+ * --- */
+
+/**
+ * An abstract class representing a system-maintainable relationship
+ * (or "constraint") between a set of variables. A constraint supplies
+ * a strength instance variable; concrete subclasses provide a means
+ * of storing the constrained variables and other information required
+ * to represent a constraint.
+ */
+function Constraint(strength) {
+  this.strength = strength;
+}
+
+/**
+ * Activate this constraint and attempt to satisfy it.
+ */
+Constraint.prototype.addConstraint = function () {
+  this.addToGraph();
+  planner.incrementalAdd(this);
+}
+
+/**
+ * Attempt to find a way to enforce this constraint. If successful,
+ * record the solution, perhaps modifying the current dataflow
+ * graph. Answer the constraint that this constraint overrides, if
+ * there is one, or nil, if there isn't.
+ * Assume: I am not already satisfied.
+ */
+Constraint.prototype.satisfy = function (mark) {
+  this.chooseMethod(mark);
+  if (!this.isSatisfied()) {
+    if (this.strength == Strength.REQUIRED)
+      alert("Could not satisfy a required constraint!");
+    return null;
+  }
+  this.markInputs(mark);
+  var out = this.output();
+  var overridden = out.determinedBy;
+  if (overridden != null) overridden.markUnsatisfied();
+  out.determinedBy = this;
+  if (!planner.addPropagate(this, mark))
+    alert("Cycle encountered");
+  out.mark = mark;
+  return overridden;
+}
+
+Constraint.prototype.destroyConstraint = function () {
+  if (this.isSatisfied()) planner.incrementalRemove(this);
+  else this.removeFromGraph();
+}
+
+/**
+ * Normal constraints are not input constraints.  An input constraint
+ * is one that depends on external state, such as the mouse, the
+ * keybord, a clock, or some arbitraty piece of imperative code.
+ */
+Constraint.prototype.isInput = function () {
+  return false;
+}
+
+/* --- *
+ * U n a r y   C o n s t r a i n t
+ * --- */
+
+/**
+ * Abstract superclass for constraints having a single possible output
+ * variable.
+ */
+function UnaryConstraint(v, strength) {
+  UnaryConstraint.superConstructor.call(this, strength);
+  this.myOutput = v;
+  this.satisfied = false;
+  this.addConstraint();
+}
+
+UnaryConstraint.inheritsFrom(Constraint);
+
+/**
+ * Adds this constraint to the constraint graph
+ */
+UnaryConstraint.prototype.addToGraph = function () {
+  this.myOutput.addConstraint(this);
+  this.satisfied = false;
+}
+
+/**
+ * Decides if this constraint can be satisfied and records that
+ * decision.
+ */
+UnaryConstraint.prototype.chooseMethod = function (mark) {
+  this.satisfied = (this.myOutput.mark != mark)
+    && Strength.stronger(this.strength, this.myOutput.walkStrength);
+}
+
+/**
+ * Returns true if this constraint is satisfied in the current solution.
+ */
+UnaryConstraint.prototype.isSatisfied = function () {
+  return this.satisfied;
+}
+
+UnaryConstraint.prototype.markInputs = function (mark) {
+  // has no inputs
+}
+
+/**
+ * Returns the current output variable.
+ */
+UnaryConstraint.prototype.output = function () {
+  return this.myOutput;
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this constraint. Assume
+ * this constraint is satisfied.
+ */
+UnaryConstraint.prototype.recalculate = function () {
+  this.myOutput.walkStrength = this.strength;
+  this.myOutput.stay = !this.isInput();
+  if (this.myOutput.stay) this.execute(); // Stay optimization
+}
+
+/**
+ * Records that this constraint is unsatisfied
+ */
+UnaryConstraint.prototype.markUnsatisfied = function () {
+  this.satisfied = false;
+}
+
+UnaryConstraint.prototype.inputsKnown = function () {
+  return true;
+}
+
+UnaryConstraint.prototype.removeFromGraph = function () {
+  if (this.myOutput != null) this.myOutput.removeConstraint(this);
+  this.satisfied = false;
+}
+
+/* --- *
+ * S t a y   C o n s t r a i n t
+ * --- */
+
+/**
+ * Variables that should, with some level of preference, stay the same.
+ * Planners may exploit the fact that instances, if satisfied, will not
+ * change their output during plan execution.  This is called "stay
+ * optimization".
+ */
+function StayConstraint(v, str) {
+  StayConstraint.superConstructor.call(this, v, str);
+}
+
+StayConstraint.inheritsFrom(UnaryConstraint);
+
+StayConstraint.prototype.execute = function () {
+  // Stay constraints do nothing
+}
+
+/* --- *
+ * E d i t   C o n s t r a i n t
+ * --- */
+
+/**
+ * A unary input constraint used to mark a variable that the client
+ * wishes to change.
+ */
+function EditConstraint(v, str) {
+  EditConstraint.superConstructor.call(this, v, str);
+}
+
+EditConstraint.inheritsFrom(UnaryConstraint);
+
+/**
+ * Edits indicate that a variable is to be changed by imperative code.
+ */
+EditConstraint.prototype.isInput = function () {
+  return true;
+}
+
+EditConstraint.prototype.execute = function () {
+  // Edit constraints do nothing
+}
+
+/* --- *
+ * B i n a r y   C o n s t r a i n t
+ * --- */
+
+var Direction = new Object();
+Direction.NONE     = 0;
+Direction.FORWARD  = 1;
+Direction.BACKWARD = -1;
+
+/**
+ * Abstract superclass for constraints having two possible output
+ * variables.
+ */
+function BinaryConstraint(var1, var2, strength) {
+  BinaryConstraint.superConstructor.call(this, strength);
+  this.v1 = var1;
+  this.v2 = var2;
+  this.direction = Direction.NONE;
+  this.addConstraint();
+}
+
+BinaryConstraint.inheritsFrom(Constraint);
+
+/**
+ * Decides if this constraint can be satisfied and which way it
+ * should flow based on the relative strength of the variables related,
+ * and record that decision.
+ */
+BinaryConstraint.prototype.chooseMethod = function (mark) {
+  if (this.v1.mark == mark) {
+    this.direction = (this.v2.mark != mark && Strength.stronger(this.strength, this.v2.walkStrength))
+      ? Direction.FORWARD
+      : Direction.NONE;
+  }
+  if (this.v2.mark == mark) {
+    this.direction = (this.v1.mark != mark && Strength.stronger(this.strength, this.v1.walkStrength))
+      ? Direction.BACKWARD
+      : Direction.NONE;
+  }
+  if (Strength.weaker(this.v1.walkStrength, this.v2.walkStrength)) {
+    this.direction = Strength.stronger(this.strength, this.v1.walkStrength)
+      ? Direction.BACKWARD
+      : Direction.NONE;
+  } else {
+    this.direction = Strength.stronger(this.strength, this.v2.walkStrength)
+      ? Direction.FORWARD
+      : Direction.BACKWARD
+  }
+}
+
+/**
+ * Add this constraint to the constraint graph
+ */
+BinaryConstraint.prototype.addToGraph = function () {
+  this.v1.addConstraint(this);
+  this.v2.addConstraint(this);
+  this.direction = Direction.NONE;
+}
+
+/**
+ * Answer true if this constraint is satisfied in the current solution.
+ */
+BinaryConstraint.prototype.isSatisfied = function () {
+  return this.direction != Direction.NONE;
+}
+
+/**
+ * Mark the input variable with the given mark.
+ */
+BinaryConstraint.prototype.markInputs = function (mark) {
+  this.input().mark = mark;
+}
+
+/**
+ * Returns the current input variable
+ */
+BinaryConstraint.prototype.input = function () {
+  return (this.direction == Direction.FORWARD) ? this.v1 : this.v2;
+}
+
+/**
+ * Returns the current output variable
+ */
+BinaryConstraint.prototype.output = function () {
+  return (this.direction == Direction.FORWARD) ? this.v2 : this.v1;
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this
+ * constraint. Assume this constraint is satisfied.
+ */
+BinaryConstraint.prototype.recalculate = function () {
+  var ihn = this.input(), out = this.output();
+  out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength);
+  out.stay = ihn.stay;
+  if (out.stay) this.execute();
+}
+
+/**
+ * Record the fact that this constraint is unsatisfied.
+ */
+BinaryConstraint.prototype.markUnsatisfied = function () {
+  this.direction = Direction.NONE;
+}
+
+BinaryConstraint.prototype.inputsKnown = function (mark) {
+  var i = this.input();
+  return i.mark == mark || i.stay || i.determinedBy == null;
+}
+
+BinaryConstraint.prototype.removeFromGraph = function () {
+  if (this.v1 != null) this.v1.removeConstraint(this);
+  if (this.v2 != null) this.v2.removeConstraint(this);
+  this.direction = Direction.NONE;
+}
+
+/* --- *
+ * S c a l e   C o n s t r a i n t
+ * --- */
+
+/**
+ * Relates two variables by the linear scaling relationship: "v2 =
+ * (v1 * scale) + offset". Either v1 or v2 may be changed to maintain
+ * this relationship but the scale factor and offset are considered
+ * read-only.
+ */
+function ScaleConstraint(src, scale, offset, dest, strength) {
+  this.direction = Direction.NONE;
+  this.scale = scale;
+  this.offset = offset;
+  ScaleConstraint.superConstructor.call(this, src, dest, strength);
+}
+
+ScaleConstraint.inheritsFrom(BinaryConstraint);
+
+/**
+ * Adds this constraint to the constraint graph.
+ */
+ScaleConstraint.prototype.addToGraph = function () {
+  ScaleConstraint.superConstructor.prototype.addToGraph.call(this);
+  this.scale.addConstraint(this);
+  this.offset.addConstraint(this);
+}
+
+ScaleConstraint.prototype.removeFromGraph = function () {
+  ScaleConstraint.superConstructor.prototype.removeFromGraph.call(this);
+  if (this.scale != null) this.scale.removeConstraint(this);
+  if (this.offset != null) this.offset.removeConstraint(this);
+}
+
+ScaleConstraint.prototype.markInputs = function (mark) {
+  ScaleConstraint.superConstructor.prototype.markInputs.call(this, mark);
+  this.scale.mark = this.offset.mark = mark;
+}
+
+/**
+ * Enforce this constraint. Assume that it is satisfied.
+ */
+ScaleConstraint.prototype.execute = function () {
+  if (this.direction == Direction.FORWARD) {
+    this.v2.value = this.v1.value * this.scale.value + this.offset.value;
+  } else {
+    this.v1.value = (this.v2.value - this.offset.value) / this.scale.value;
+  }
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this constraint. Assume
+ * this constraint is satisfied.
+ */
+ScaleConstraint.prototype.recalculate = function () {
+  var ihn = this.input(), out = this.output();
+  out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength);
+  out.stay = ihn.stay && this.scale.stay && this.offset.stay;
+  if (out.stay) this.execute();
+}
+
+/* --- *
+ * E q u a l i t  y   C o n s t r a i n t
+ * --- */
+
+/**
+ * Constrains two variables to have the same value.
+ */
+function EqualityConstraint(var1, var2, strength) {
+  EqualityConstraint.superConstructor.call(this, var1, var2, strength);
+}
+
+EqualityConstraint.inheritsFrom(BinaryConstraint);
+
+/**
+ * Enforce this constraint. Assume that it is satisfied.
+ */
+EqualityConstraint.prototype.execute = function () {
+  this.output().value = this.input().value;
+}
+
+/* --- *
+ * V a r i a b l e
+ * --- */
+
+/**
+ * A constrained variable. In addition to its value, it maintain the
+ * structure of the constraint graph, the current dataflow graph, and
+ * various parameters of interest to the DeltaBlue incremental
+ * constraint solver.
+ **/
+function Variable(name, initialValue) {
+  this.value = initialValue || 0;
+  this.constraints = new OrderedCollection();
+  this.determinedBy = null;
+  this.mark = 0;
+  this.walkStrength = Strength.WEAKEST;
+  this.stay = true;
+  this.name = name;
+}
+
+/**
+ * Add the given constraint to the set of all constraints that refer
+ * this variable.
+ */
+Variable.prototype.addConstraint = function (c) {
+  this.constraints.add(c);
+}
+
+/**
+ * Removes all traces of c from this variable.
+ */
+Variable.prototype.removeConstraint = function (c) {
+  this.constraints.remove(c);
+  if (this.determinedBy == c) this.determinedBy = null;
+}
+
+/* --- *
+ * P l a n n e r
+ * --- */
+
+/**
+ * The DeltaBlue planner
+ */
+function Planner() {
+  this.currentMark = 0;
+}
+
+/**
+ * Attempt to satisfy the given constraint and, if successful,
+ * incrementally update the dataflow graph.  Details: If satifying
+ * the constraint is successful, it may override a weaker constraint
+ * on its output. The algorithm attempts to resatisfy that
+ * constraint using some other method. This process is repeated
+ * until either a) it reaches a variable that was not previously
+ * determined by any constraint or b) it reaches a constraint that
+ * is too weak to be satisfied using any of its methods. The
+ * variables of constraints that have been processed are marked with
+ * a unique mark value so that we know where we've been. This allows
+ * the algorithm to avoid getting into an infinite loop even if the
+ * constraint graph has an inadvertent cycle.
+ */
+Planner.prototype.incrementalAdd = function (c) {
+  var mark = this.newMark();
+  var overridden = c.satisfy(mark);
+  while (overridden != null)
+    overridden = overridden.satisfy(mark);
+}
+
+/**
+ * Entry point for retracting a constraint. Remove the given
+ * constraint and incrementally update the dataflow graph.
+ * Details: Retracting the given constraint may allow some currently
+ * unsatisfiable downstream constraint to be satisfied. We therefore collect
+ * a list of unsatisfied downstream constraints and attempt to
+ * satisfy each one in turn. This list is traversed by constraint
+ * strength, strongest first, as a heuristic for avoiding
+ * unnecessarily adding and then overriding weak constraints.
+ * Assume: c is satisfied.
+ */
+Planner.prototype.incrementalRemove = function (c) {
+  var out = c.output();
+  c.markUnsatisfied();
+  c.removeFromGraph();
+  var unsatisfied = this.removePropagateFrom(out);
+  var strength = Strength.REQUIRED;
+  do {
+    for (var i = 0; i < unsatisfied.size(); i++) {
+      var u = unsatisfied.at(i);
+      if (u.strength == strength)
+        this.incrementalAdd(u);
+    }
+    strength = strength.nextWeaker();
+  } while (strength != Strength.WEAKEST);
+}
+
+/**
+ * Select a previously unused mark value.
+ */
+Planner.prototype.newMark = function () {
+  return ++this.currentMark;
+}
+
+/**
+ * Extract a plan for resatisfaction starting from the given source
+ * constraints, usually a set of input constraints. This method
+ * assumes that stay optimization is desired; the plan will contain
+ * only constraints whose output variables are not stay. Constraints
+ * that do no computation, such as stay and edit constraints, are
+ * not included in the plan.
+ * Details: The outputs of a constraint are marked when it is added
+ * to the plan under construction. A constraint may be appended to
+ * the plan when all its input variables are known. A variable is
+ * known if either a) the variable is marked (indicating that has
+ * been computed by a constraint appearing earlier in the plan), b)
+ * the variable is 'stay' (i.e. it is a constant at plan execution
+ * time), or c) the variable is not determined by any
+ * constraint. The last provision is for past states of history
+ * variables, which are not stay but which are also not computed by
+ * any constraint.
+ * Assume: sources are all satisfied.
+ */
+Planner.prototype.makePlan = function (sources) {
+  var mark = this.newMark();
+  var plan = new Plan();
+  var todo = sources;
+  while (todo.size() > 0) {
+    var c = todo.removeFirst();
+    if (c.output().mark != mark && c.inputsKnown(mark)) {
+      plan.addConstraint(c);
+      c.output().mark = mark;
+      this.addConstraintsConsumingTo(c.output(), todo);
+    }
+  }
+  return plan;
+}
+
+/**
+ * Extract a plan for resatisfying starting from the output of the
+ * given constraints, usually a set of input constraints.
+ */
+Planner.prototype.extractPlanFromConstraints = function (constraints) {
+  var sources = new OrderedCollection();
+  for (var i = 0; i < constraints.size(); i++) {
+    var c = constraints.at(i);
+    if (c.isInput() && c.isSatisfied())
+      // not in plan already and eligible for inclusion
+      sources.add(c);
+  }
+  return this.makePlan(sources);
+}
+
+/**
+ * Recompute the walkabout strengths and stay flags of all variables
+ * downstream of the given constraint and recompute the actual
+ * values of all variables whose stay flag is true. If a cycle is
+ * detected, remove the given constraint and answer
+ * false. Otherwise, answer true.
+ * Details: Cycles are detected when a marked variable is
+ * encountered downstream of the given constraint. The sender is
+ * assumed to have marked the inputs of the given constraint with
+ * the given mark. Thus, encountering a marked node downstream of
+ * the output constraint means that there is a path from the
+ * constraint's output to one of its inputs.
+ */
+Planner.prototype.addPropagate = function (c, mark) {
+  var todo = new OrderedCollection();
+  todo.add(c);
+  while (todo.size() > 0) {
+    var d = todo.removeFirst();
+    if (d.output().mark == mark) {
+      this.incrementalRemove(c);
+      return false;
+    }
+    d.recalculate();
+    this.addConstraintsConsumingTo(d.output(), todo);
+  }
+  return true;
+}
+
+
+/**
+ * Update the walkabout strengths and stay flags of all variables
+ * downstream of the given constraint. Answer a collection of
+ * unsatisfied constraints sorted in order of decreasing strength.
+ */
+Planner.prototype.removePropagateFrom = function (out) {
+  out.determinedBy = null;
+  out.walkStrength = Strength.WEAKEST;
+  out.stay = true;
+  var unsatisfied = new OrderedCollection();
+  var todo = new OrderedCollection();
+  todo.add(out);
+  while (todo.size() > 0) {
+    var v = todo.removeFirst();
+    for (var i = 0; i < v.constraints.size(); i++) {
+      var c = v.constraints.at(i);
+      if (!c.isSatisfied())
+        unsatisfied.add(c);
+    }
+    var determining = v.determinedBy;
+    for (var i = 0; i < v.constraints.size(); i++) {
+      var next = v.constraints.at(i);
+      if (next != determining && next.isSatisfied()) {
+        next.recalculate();
+        todo.add(next.output());
+      }
+    }
+  }
+  return unsatisfied;
+}
+
+Planner.prototype.addConstraintsConsumingTo = function (v, coll) {
+  var determining = v.determinedBy;
+  var cc = v.constraints;
+  for (var i = 0; i < cc.size(); i++) {
+    var c = cc.at(i);
+    if (c != determining && c.isSatisfied())
+      coll.add(c);
+  }
+}
+
+/* --- *
+ * P l a n
+ * --- */
+
+/**
+ * A Plan is an ordered list of constraints to be executed in sequence
+ * to resatisfy all currently satisfiable constraints in the face of
+ * one or more changing inputs.
+ */
+function Plan() {
+  this.v = new OrderedCollection();
+}
+
+Plan.prototype.addConstraint = function (c) {
+  this.v.add(c);
+}
+
+Plan.prototype.size = function () {
+  return this.v.size();
+}
+
+Plan.prototype.constraintAt = function (index) {
+  return this.v.at(index);
+}
+
+Plan.prototype.execute = function () {
+  for (var i = 0; i < this.size(); i++) {
+    var c = this.constraintAt(i);
+    c.execute();
+  }
+}
+
+/* --- *
+ * M a i n
+ * --- */
+
+/**
+ * This is the standard DeltaBlue benchmark. A long chain of equality
+ * constraints is constructed with a stay constraint on one end. An
+ * edit constraint is then added to the opposite end and the time is
+ * measured for adding and removing this constraint, and extracting
+ * and executing a constraint satisfaction plan. There are two cases.
+ * In case 1, the added constraint is stronger than the stay
+ * constraint and values must propagate down the entire length of the
+ * chain. In case 2, the added constraint is weaker than the stay
+ * constraint so it cannot be accomodated. The cost in this case is,
+ * of course, very low. Typical situations lie somewhere between these
+ * two extremes.
+ */
+function chainTest(n) {
+  planner = new Planner();
+  var prev = null, first = null, last = null;
+
+  // Build chain of n equality constraints
+  for (var i = 0; i <= n; i++) {
+    var name = "v" + i;
+    var v = new Variable(name);
+    if (prev != null)
+      new EqualityConstraint(prev, v, Strength.REQUIRED);
+    if (i == 0) first = v;
+    if (i == n) last = v;
+    prev = v;
+  }
+
+  new StayConstraint(last, Strength.STRONG_DEFAULT);
+  var edit = new EditConstraint(first, Strength.PREFERRED);
+  var edits = new OrderedCollection();
+  edits.add(edit);
+  var plan = planner.extractPlanFromConstraints(edits);
+  for (var i = 0; i < 100; i++) {
+    first.value = i;
+    plan.execute();
+    if (last.value != i)
+      alert("Chain test failed.");
+  }
+}
+
+/**
+ * This test constructs a two sets of variables related to each
+ * other by a simple linear transformation (scale and offset). The
+ * time is measured to change a variable on either side of the
+ * mapping and to change the scale and offset factors.
+ */
+function projectionTest(n) {
+  planner = new Planner();
+  var scale = new Variable("scale", 10);
+  var offset = new Variable("offset", 1000);
+  var src = null, dst = null;
+
+  var dests = new OrderedCollection();
+  for (var i = 0; i < n; i++) {
+    src = new Variable("src" + i, i);
+    dst = new Variable("dst" + i, i);
+    dests.add(dst);
+    new StayConstraint(src, Strength.NORMAL);
+    new ScaleConstraint(src, scale, offset, dst, Strength.REQUIRED);
+  }
+
+  change(src, 17);
+  if (dst.value != 1170) alert("Projection 1 failed");
+  change(dst, 1050);
+  if (src.value != 5) alert("Projection 2 failed");
+  change(scale, 5);
+  for (var i = 0; i < n - 1; i++) {
+    if (dests.at(i).value != i * 5 + 1000)
+      alert("Projection 3 failed");
+  }
+  change(offset, 2000);
+  for (var i = 0; i < n - 1; i++) {
+    if (dests.at(i).value != i * 5 + 2000)
+      alert("Projection 4 failed");
+  }
+}
+
+function change(v, newValue) {
+  var edit = new EditConstraint(v, Strength.PREFERRED);
+  var edits = new OrderedCollection();
+  edits.add(edit);
+  var plan = planner.extractPlanFromConstraints(edits);
+  for (var i = 0; i < 10; i++) {
+    v.value = newValue;
+    plan.execute();
+  }
+  edit.destroyConstraint();
+}
+
+// Global variable holding the current planner.
+var planner = null;
+
+function deltaBlue() {
+  chainTest(100);
+  projectionTest(100);
+}
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/earley-boyer.js b/suite/pts/deviceTests/browserbench/assets/octane/earley-boyer.js
new file mode 100644
index 0000000..b2328d6
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/earley-boyer.js
@@ -0,0 +1,4684 @@
+// This file is automatically generated by scheme2js, except for the
+// benchmark harness code at the beginning and end of the file.
+
+var EarleyBoyer = new BenchmarkSuite('EarleyBoyer', 666463, [
+  new Benchmark("Earley", function () { BgL_earleyzd2benchmarkzd2(); }),
+  new Benchmark("Boyer", function () { BgL_nboyerzd2benchmarkzd2(); })
+]);
+
+
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/*
+ * To use write/prints/... the default-output port has to be set first.
+ * Simply setting SC_DEFAULT_OUT and SC_ERROR_OUT to the desired values
+ * should do the trick.
+ * In the following example the std-out and error-port are redirected to
+ * a DIV.
+function initRuntime() {
+    function escapeHTML(s) {
+	var tmp = s;
+	tmp = tmp.replace(/&/g, "&amp;");
+	tmp = tmp.replace(/</g, "&lt;");
+	tmp = tmp.replace(/>/g, "&gt;");
+	tmp = tmp.replace(/ /g, "&nbsp;");
+	tmp = tmp.replace(/\n/g, "<br />");
+	tmp = tmp.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp");
+	return tmp;
+	
+    }
+
+    document.write("<div id='stdout'></div>");
+    SC_DEFAULT_OUT = new sc_GenericOutputPort(
+	function(s) {
+	    var stdout = document.getElementById('stdout');
+	    stdout.innerHTML = stdout.innerHTML + escapeHTML(s);
+	});
+    SC_ERROR_OUT = SC_DEFAULT_OUT;
+}
+*/
+
+
+function sc_print_debug() {
+    sc_print.apply(null, arguments);
+}
+/*** META ((export *js*)) */
+var sc_JS_GLOBALS = this;
+
+var __sc_LINE=-1;
+var __sc_FILE="";
+
+/*** META ((export #t)) */
+function sc_alert() {
+   var len = arguments.length;
+   var s = "";
+   var i;
+
+   for( i = 0; i < len; i++ ) {
+       s += sc_toDisplayString(arguments[ i ]);
+   }
+
+   return alert( s );
+}
+
+/*** META ((export #t)) */
+function sc_typeof( x ) {
+   return typeof x;
+}
+
+/*** META ((export #t)) */
+function sc_error() {
+    var a = [sc_jsstring2symbol("*error*")];
+    for (var i = 0; i < arguments.length; i++) {
+	a[i+1] = arguments[i];
+    }
+    throw a;
+}
+
+/*** META ((export #t)
+           (peephole (prefix "throw ")))
+*/
+function sc_raise(obj) {
+    throw obj;
+}
+
+/*** META ((export with-handler-lambda)) */
+function sc_withHandlerLambda(handler, body) {
+    try {
+	return body();
+    } catch(e) {
+	if (!e._internalException)
+	    return handler(e);
+	else
+	    throw e;
+    }
+}
+
+var sc_properties = new Object();
+
+/*** META ((export #t)) */
+function sc_putpropBang(sym, key, val) {
+    var ht = sc_properties[sym];
+    if (!ht) {
+	ht = new Object();
+	sc_properties[sym] = ht;
+    }
+    ht[key] = val;
+}
+
+/*** META ((export #t)) */
+function sc_getprop(sym, key) {
+    var ht = sc_properties[sym];
+    if (ht) {
+	if (key in ht)
+	    return ht[key];
+	else
+	    return false;
+    } else
+	return false;
+}
+
+/*** META ((export #t)) */
+function sc_rempropBang(sym, key) {
+    var ht = sc_properties[sym];
+    if (ht)
+	delete ht[key];
+}
+
+/*** META ((export #t)) */
+function sc_any2String(o) {
+    return jsstring2string(sc_toDisplayString(o));
+}
+
+/*** META ((export #t)
+           (peephole (infix 2 2 "==="))
+           (type bool))
+*/
+function sc_isEqv(o1, o2) {
+    return (o1 === o2);
+}
+
+/*** META ((export #t)
+           (peephole (infix 2 2 "==="))
+           (type bool))
+*/
+function sc_isEq(o1, o2) {
+    return (o1 === o2);
+}
+
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isNumber(n) {
+    return (typeof n === "number");
+}
+
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isComplex(n) {
+    return sc_isNumber(n);
+}
+
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isReal(n) {
+    return sc_isNumber(n);
+}
+
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isRational(n) {
+    return sc_isReal(n);
+}
+
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isInteger(n) {
+    return (parseInt(n) === n);
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix ", false")))
+*/
+// we don't have exact numbers...
+function sc_isExact(n) {
+    return false;
+}
+
+/*** META ((export #t)
+           (peephole (postfix ", true"))
+	   (type bool))
+*/
+function sc_isInexact(n) {
+    return true;
+}
+
+/*** META ((export = =fx =fl)
+           (type bool)
+           (peephole (infix 2 2 "===")))
+*/
+function sc_equal(x) {
+    for (var i = 1; i < arguments.length; i++)
+	if (x !== arguments[i])
+	    return false;
+    return true;
+}
+
+/*** META ((export < <fx <fl)
+           (type bool)
+           (peephole (infix 2 2 "<")))
+*/
+function sc_less(x) {
+    for (var i = 1; i < arguments.length; i++) {
+	if (x >= arguments[i])
+	    return false;
+	x = arguments[i];
+    }
+    return true;
+}
+
+/*** META ((export > >fx >fl)
+           (type bool)
+           (peephole (infix 2 2 ">")))
+*/
+function sc_greater(x, y) {
+    for (var i = 1; i < arguments.length; i++) {
+	if (x <= arguments[i])
+	    return false;
+	x = arguments[i];
+    }
+    return true;
+}
+
+/*** META ((export <= <=fx <=fl)
+           (type bool)
+           (peephole (infix 2 2 "<=")))
+*/
+function sc_lessEqual(x, y) {
+    for (var i = 1; i < arguments.length; i++) {
+	if (x > arguments[i])
+	    return false;
+	x = arguments[i];
+    }
+    return true;
+}
+
+/*** META ((export >= >=fl >=fx)
+           (type bool)
+           (peephole (infix 2 2 ">=")))
+*/
+function sc_greaterEqual(x, y) {
+    for (var i = 1; i < arguments.length; i++) {
+	if (x < arguments[i])
+	    return false;
+	x = arguments[i];
+    }
+    return true;
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix "=== 0")))
+*/
+function sc_isZero(x) {
+    return (x === 0);
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix "> 0")))
+*/
+function sc_isPositive(x) {
+    return (x > 0);
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix "< 0")))
+*/
+function sc_isNegative(x) {
+    return (x < 0);
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix "%2===1")))
+*/
+function sc_isOdd(x) {
+    return (x % 2 === 1);
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix "%2===0")))
+*/
+function sc_isEven(x) {
+    return (x % 2 === 0);
+}
+
+/*** META ((export #t)) */
+var sc_max = Math.max;
+/*** META ((export #t)) */
+var sc_min = Math.min;
+
+/*** META ((export + +fx +fl)
+           (peephole (infix 0 #f "+" "0")))
+*/
+function sc_plus() {
+    var sum = 0;
+    for (var i = 0; i < arguments.length; i++)
+	sum += arguments[i];
+    return sum;
+}
+
+/*** META ((export * *fx *fl)
+           (peephole (infix 0 #f "*" "1")))
+*/
+function sc_multi() {
+    var product = 1;
+    for (var i = 0; i < arguments.length; i++)
+	product *= arguments[i];
+    return product;
+}
+
+/*** META ((export - -fx -fl)
+           (peephole (minus)))
+*/
+function sc_minus(x) {
+    if (arguments.length === 1)
+	return -x;
+    else {
+	var res = x;
+	for (var i = 1; i < arguments.length; i++)
+	    res -= arguments[i];
+	return res;
+    }
+}
+
+/*** META ((export / /fl)
+           (peephole (div)))
+*/
+function sc_div(x) {
+    if (arguments.length === 1)
+	return 1/x;
+    else {
+	var res = x;
+	for (var i = 1; i < arguments.length; i++)
+	    res /= arguments[i];
+	return res;
+    }
+}
+
+/*** META ((export #t)) */
+var sc_abs = Math.abs;
+
+/*** META ((export quotient /fx)
+           (peephole (hole 2 "parseInt(" x "/" y ")")))
+*/
+function sc_quotient(x, y) {
+    return parseInt(x / y);
+}
+
+/*** META ((export #t)
+           (peephole (infix 2 2 "%")))
+*/
+function sc_remainder(x, y) {
+    return x % y;
+}
+
+/*** META ((export #t)
+           (peephole (modulo)))
+*/
+function sc_modulo(x, y) {
+    var remainder = x % y;
+    // if they don't have the same sign
+    if ((remainder * y) < 0)
+	return remainder + y;
+    else
+	return remainder;
+}
+
+function sc_euclid_gcd(a, b) {
+    var temp;
+    if (a === 0) return b;
+    if (b === 0) return a;
+    if (a < 0) {a = -a;};
+    if (b < 0) {b = -b;};
+    if (b > a) {temp = a; a = b; b = temp;};
+    while (true) {
+	a %= b;
+	if(a === 0) {return b;};
+	b %= a;
+	if(b === 0) {return a;};
+    };
+    return b;
+}
+
+/*** META ((export #t)) */
+function sc_gcd() {
+    var gcd = 0;
+    for (var i = 0; i < arguments.length; i++)
+	gcd = sc_euclid_gcd(gcd, arguments[i]);
+    return gcd;
+}
+
+/*** META ((export #t)) */
+function sc_lcm() {
+    var lcm = 1;
+    for (var i = 0; i < arguments.length; i++) {
+	var f = Math.round(arguments[i] / sc_euclid_gcd(arguments[i], lcm));
+	lcm *= Math.abs(f);
+    }
+    return lcm;
+}
+
+// LIMITATION: numerator and denominator don't make sense in floating point world.
+//var SC_MAX_DECIMALS = 1000000
+//
+// function sc_numerator(x) {
+//     var rounded = Math.round(x * SC_MAX_DECIMALS);
+//     return Math.round(rounded / sc_euclid_gcd(rounded, SC_MAX_DECIMALS));
+// }
+
+// function sc_denominator(x) {
+//     var rounded = Math.round(x * SC_MAX_DECIMALS);
+//     return Math.round(SC_MAX_DECIMALS / sc_euclid_gcd(rounded, SC_MAX_DECIMALS));
+// }
+
+/*** META ((export #t)) */
+var sc_floor = Math.floor;
+/*** META ((export #t)) */
+var sc_ceiling = Math.ceil;
+/*** META ((export #t)) */
+var sc_truncate = parseInt;
+/*** META ((export #t)) */
+var sc_round = Math.round;
+
+// LIMITATION: sc_rationalize doesn't make sense in a floating point world.
+
+/*** META ((export #t)) */
+var sc_exp = Math.exp;
+/*** META ((export #t)) */
+var sc_log = Math.log;
+/*** META ((export #t)) */
+var sc_sin = Math.sin;
+/*** META ((export #t)) */
+var sc_cos = Math.cos;
+/*** META ((export #t)) */
+var sc_tan = Math.tan;
+/*** META ((export #t)) */
+var sc_asin = Math.asin;
+/*** META ((export #t)) */
+var sc_acos = Math.acos;
+/*** META ((export #t)) */
+var sc_atan = Math.atan;
+
+/*** META ((export #t)) */
+var sc_sqrt = Math.sqrt;
+/*** META ((export #t)) */
+var sc_expt = Math.pow;
+
+// LIMITATION: we don't have complex numbers.
+// LIMITATION: the following functions are hence not implemented.
+// LIMITATION: make-rectangular, make-polar, real-part, imag-part, magnitude, angle
+// LIMITATION: 2 argument atan
+
+/*** META ((export #t)
+           (peephole (id)))
+*/
+function sc_exact2inexact(x) {
+    return x;
+}
+
+/*** META ((export #t)
+           (peephole (id)))
+*/
+function sc_inexact2exact(x) {
+    return x;
+}
+
+function sc_number2jsstring(x, radix) {
+    if (radix)
+	return x.toString(radix);
+    else
+	return x.toString();
+}
+
+function sc_jsstring2number(s, radix) {
+    if (s === "") return false;
+
+    if (radix) {
+	var t = parseInt(s, radix);
+	if (!t && t !== 0) return false;
+	// verify that each char is in range. (parseInt ignores leading
+	// white and trailing chars)
+	var allowedChars = "01234567890abcdefghijklmnopqrstuvwxyz".substring(0, radix+1);
+	if ((new RegExp("^["+allowedChars+"]*$", "i")).test(s))
+	    return t;
+	else return false;
+    } else {
+	var t = +s; // does not ignore trailing chars.
+	if (!t && t !== 0) return false;
+	// simply verify that first char is not whitespace.
+	var c = s.charAt(0);
+	// if +c is 0, but the char is not "0", then we have a whitespace.
+	if (+c === 0 && c !== "0") return false;
+	return t;
+    }
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (not)))
+*/
+function sc_not(b) {
+    return b === false;
+}
+
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isBoolean(b) {
+    return (b === true) || (b === false);
+}
+
+function sc_Pair(car, cdr) {
+    this.car = car;
+    this.cdr = cdr;
+}
+
+sc_Pair.prototype.toString = function() {
+    return sc_toDisplayString(this);
+};
+sc_Pair.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) {
+    var current = this;
+
+    var res = "(";
+
+    while(true) {
+	res += writeOrDisplay(current.car);
+	if (sc_isPair(current.cdr)) {
+	    res += " ";
+	    current = current.cdr;
+	} else if (current.cdr !== null) {
+	    res += " . " + writeOrDisplay(current.cdr);
+	    break;
+	} else // current.cdr == null
+	    break;
+    }
+	
+    res += ")";
+
+    return res;
+};
+sc_Pair.prototype.sc_toDisplayString = function() {
+    return this.sc_toWriteOrDisplayString(sc_toDisplayString);
+};
+sc_Pair.prototype.sc_toWriteString = function() {
+    return this.sc_toWriteOrDisplayString(sc_toWriteString);
+};
+// sc_Pair.prototype.sc_toWriteCircleString in IO.js
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix " instanceof sc_Pair")))
+*/
+function sc_isPair(p) {
+    return (p instanceof sc_Pair);
+}
+
+function sc_isPairEqual(p1, p2, comp) {
+    return (comp(p1.car, p2.car) && comp(p1.cdr, p2.cdr));
+}
+
+/*** META ((export #t)
+           (peephole (hole 2 "new sc_Pair(" car ", " cdr ")")))
+*/
+function sc_cons(car, cdr) {
+    return new sc_Pair(car, cdr);
+}
+
+/*** META ((export cons*)) */
+function sc_consStar() {
+    var res = arguments[arguments.length - 1];
+    for (var i = arguments.length-2; i >= 0; i--)
+	res = new sc_Pair(arguments[i], res);
+    return res;
+}
+
+/*** META ((export #t)
+           (peephole (postfix ".car")))
+*/
+function sc_car(p) {
+    return p.car;
+}
+
+/*** META ((export #t)
+           (peephole (postfix ".cdr")))
+*/
+function sc_cdr(p) {
+    return p.cdr;
+}
+
+/*** META ((export #t)
+           (peephole (hole 2 p ".car = " val)))
+*/
+function sc_setCarBang(p, val) {
+    p.car = val;
+}
+
+/*** META ((export #t)
+           (peephole (hole 2 p ".cdr = " val)))
+*/
+function sc_setCdrBang(p, val) {
+    p.cdr = val;
+}
+
+/*** META ((export #t)
+           (peephole (postfix ".car.car")))
+*/
+function sc_caar(p) { return p.car.car; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.car")))
+*/
+function sc_cadr(p) { return p.cdr.car; }
+/*** META ((export #t)
+           (peephole (postfix ".car.cdr")))
+*/
+function sc_cdar(p) { return p.car.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.cdr")))
+*/
+function sc_cddr(p) { return p.cdr.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".car.car.car")))
+*/
+function sc_caaar(p) { return p.car.car.car; }
+/*** META ((export #t)
+           (peephole (postfix ".car.cdr.car")))
+*/
+function sc_cadar(p) { return p.car.cdr.car; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.car.car")))
+*/
+function sc_caadr(p) { return p.cdr.car.car; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.cdr.car")))
+*/
+function sc_caddr(p) { return p.cdr.cdr.car; }
+/*** META ((export #t)
+           (peephole (postfix ".car.car.cdr")))
+*/
+function sc_cdaar(p) { return p.car.car.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.car.cdr")))
+*/
+function sc_cdadr(p) { return p.cdr.car.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".car.cdr.cdr")))
+*/
+function sc_cddar(p) { return p.car.cdr.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.cdr.cdr")))
+*/
+function sc_cdddr(p) { return p.cdr.cdr.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".car.car.car.car")))
+*/
+function sc_caaaar(p) { return p.car.car.car.car; }
+/*** META ((export #t)
+           (peephole (postfix ".car.cdr.car.car")))
+*/
+function sc_caadar(p) { return p.car.cdr.car.car; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.car.car.car")))
+*/
+function sc_caaadr(p) { return p.cdr.car.car.car; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.cdr.car.car")))
+*/
+function sc_caaddr(p) { return p.cdr.cdr.car.car; }
+/*** META ((export #t)
+           (peephole (postfix ".car.car.car.cdr")))
+*/
+function sc_cdaaar(p) { return p.car.car.car.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".car.cdr.car.cdr")))
+*/
+function sc_cdadar(p) { return p.car.cdr.car.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.car.car.cdr")))
+*/
+function sc_cdaadr(p) { return p.cdr.car.car.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.cdr.car.cdr")))
+*/
+function sc_cdaddr(p) { return p.cdr.cdr.car.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".car.car.cdr.car")))
+*/
+function sc_cadaar(p) { return p.car.car.cdr.car; }
+/*** META ((export #t)
+           (peephole (postfix ".car.cdr.cdr.car")))
+*/
+function sc_caddar(p) { return p.car.cdr.cdr.car; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.car.cdr.car")))
+*/
+function sc_cadadr(p) { return p.cdr.car.cdr.car; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.cdr.cdr.car")))
+*/
+function sc_cadddr(p) { return p.cdr.cdr.cdr.car; }
+/*** META ((export #t)
+           (peephole (postfix ".car.car.cdr.cdr")))
+*/
+function sc_cddaar(p) { return p.car.car.cdr.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".car.cdr.cdr.cdr")))
+*/
+function sc_cdddar(p) { return p.car.cdr.cdr.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.car.cdr.cdr")))
+*/
+function sc_cddadr(p) { return p.cdr.car.cdr.cdr; }
+/*** META ((export #t)
+           (peephole (postfix ".cdr.cdr.cdr.cdr")))
+*/
+function sc_cddddr(p) { return p.cdr.cdr.cdr.cdr; }
+
+/*** META ((export #t)) */
+function sc_lastPair(l) {
+    if (!sc_isPair(l)) sc_error("sc_lastPair: pair expected");
+    var res = l;
+    var cdr = l.cdr;
+    while (sc_isPair(cdr)) {
+	res = cdr;
+	cdr = res.cdr;
+    }
+    return res;
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix " === null")))
+*/
+function sc_isNull(o) {
+    return (o === null);
+}
+
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isList(o) {
+    var rabbit;
+    var turtle;
+
+    var rabbit = o;
+    var turtle = o;
+    while (true) {
+	if (rabbit === null ||
+	    (rabbit instanceof sc_Pair && rabbit.cdr === null))
+	    return true;  // end of list
+	else if ((rabbit instanceof sc_Pair) &&
+		 (rabbit.cdr instanceof sc_Pair)) {
+	    rabbit = rabbit.cdr.cdr;
+	    turtle = turtle.cdr;
+	    if (rabbit === turtle) return false; // cycle
+	} else
+	    return false; // not pair
+    }
+}
+
+/*** META ((export #t)) */
+function sc_list() {
+    var res = null;
+    var a = arguments;
+    for (var i = a.length-1; i >= 0; i--)
+	res = new sc_Pair(a[i], res);
+    return res;
+}
+
+/*** META ((export #t)) */
+function sc_iota(num, init) {
+   var res = null;
+   if (!init) init = 0;
+   for (var i = num - 1; i >= 0; i--)
+      res = new sc_Pair(i + init, res);
+   return res;
+}
+
+/*** META ((export #t)) */
+function sc_makeList(nbEls, fill) {
+    var res = null;
+    for (var i = 0; i < nbEls; i++)
+	res = new sc_Pair(fill, res);
+    return res;
+}
+
+/*** META ((export #t)) */
+function sc_length(l) {
+    var res = 0;
+    while (l !== null) {
+	res++;
+	l = l.cdr;
+    }
+    return res;
+}
+
+/*** META ((export #t)) */
+function sc_remq(o, l) {
+    var dummy = { cdr : null };
+    var tail = dummy;
+    while (l !== null) {
+	if (l.car !== o) {
+	    tail.cdr = sc_cons(l.car, null);
+	    tail = tail.cdr;
+	}
+	l = l.cdr;
+    }
+    return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_remqBang(o, l) {
+    var dummy = { cdr : null };
+    var tail = dummy;
+    var needsAssig = true;
+    while (l !== null) {
+	if (l.car === o) {
+	    needsAssig = true;
+	} else {
+	    if (needsAssig) {
+		tail.cdr = l;
+		needsAssig = false;
+	    }
+	    tail = l;
+	}
+	l = l.cdr;
+    }
+    tail.cdr = null;
+    return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_delete(o, l) {
+    var dummy = { cdr : null };
+    var tail = dummy;
+    while (l !== null) {
+	if (!sc_isEqual(l.car, o)) {
+	    tail.cdr = sc_cons(l.car, null);
+	    tail = tail.cdr;
+	}
+	l = l.cdr;
+    }
+    return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_deleteBang(o, l) {
+    var dummy = { cdr : null };
+    var tail = dummy;
+    var needsAssig = true;
+    while (l !== null) {
+	if (sc_isEqual(l.car, o)) {
+	    needsAssig = true;
+	} else {
+	    if (needsAssig) {
+		tail.cdr = l;
+		needsAssig = false;
+	    }
+	    tail = l;
+	}
+	l = l.cdr;
+    }
+    tail.cdr = null;
+    return dummy.cdr;
+}
+
+function sc_reverseAppendBang(l1, l2) {
+    var res = l2;
+    while (l1 !== null) {
+	var tmp = res;
+	res = l1;
+	l1 = l1.cdr;
+	res.cdr = tmp;
+    }
+    return res;
+}
+	
+function sc_dualAppend(l1, l2) {
+    if (l1 === null) return l2;
+    if (l2 === null) return l1;
+    var rev = sc_reverse(l1);
+    return sc_reverseAppendBang(rev, l2);
+}
+
+/*** META ((export #t)) */
+function sc_append() {
+    if (arguments.length === 0)
+	return null;
+    var res = arguments[arguments.length - 1];
+    for (var i = arguments.length - 2; i >= 0; i--)
+	res = sc_dualAppend(arguments[i], res);
+    return res;
+}
+
+function sc_dualAppendBang(l1, l2) {
+    if (l1 === null) return l2;
+    if (l2 === null) return l1;
+    var tmp = l1;
+    while (tmp.cdr !== null) tmp=tmp.cdr;
+    tmp.cdr = l2;
+    return l1;
+}
+
+/*** META ((export #t)) */
+function sc_appendBang() {
+    var res = null;
+    for (var i = 0; i < arguments.length; i++)
+	res = sc_dualAppendBang(res, arguments[i]);
+    return res;
+}
+
+/*** META ((export #t)) */
+function sc_reverse(l1) {
+    var res = null;
+    while (l1 !== null) {
+	res = sc_cons(l1.car, res);
+	l1 = l1.cdr;
+    }
+    return res;
+}
+
+/*** META ((export #t)) */
+function sc_reverseBang(l) {
+    return sc_reverseAppendBang(l, null);
+}
+
+/*** META ((export #t)) */
+function sc_listTail(l, k) {
+    var res = l;
+    for (var i = 0; i < k; i++) {
+	res = res.cdr;
+    }
+    return res;
+}
+
+/*** META ((export #t)) */
+function sc_listRef(l, k) {
+    return sc_listTail(l, k).car;
+}
+
+/* // unoptimized generic versions
+function sc_memX(o, l, comp) {
+    while (l != null) {
+	if (comp(l.car, o))
+	    return l;
+	l = l.cdr;
+    }
+    return false;
+}
+function sc_memq(o, l) { return sc_memX(o, l, sc_isEq); }
+function sc_memv(o, l) { return sc_memX(o, l, sc_isEqv); }
+function sc_member(o, l) { return sc_memX(o, l, sc_isEqual); }
+*/
+
+/* optimized versions */
+/*** META ((export #t)) */
+function sc_memq(o, l) {
+    while (l !== null) {
+	if (l.car === o)
+	    return l;
+	l = l.cdr;
+    }
+    return false;
+}
+/*** META ((export #t)) */
+function sc_memv(o, l) {
+    while (l !== null) {
+	if (l.car === o)
+	    return l;
+	l = l.cdr;
+    }
+    return false;
+}
+/*** META ((export #t)) */
+function sc_member(o, l) {
+    while (l !== null) {
+	if (sc_isEqual(l.car,o))
+	    return l;
+	l = l.cdr;
+    }
+    return false;
+}
+
+/* // generic unoptimized versions
+function sc_assX(o, al, comp) {
+    while (al != null) {
+	if (comp(al.car.car, o))
+	    return al.car;
+	al = al.cdr;
+    }
+    return false;
+}
+function sc_assq(o, al) { return sc_assX(o, al, sc_isEq); }
+function sc_assv(o, al) { return sc_assX(o, al, sc_isEqv); }
+function sc_assoc(o, al) { return sc_assX(o, al, sc_isEqual); }
+*/
+// optimized versions
+/*** META ((export #t)) */
+function sc_assq(o, al) {
+    while (al !== null) {
+	if (al.car.car === o)
+	    return al.car;
+	al = al.cdr;
+    }
+    return false;
+}
+/*** META ((export #t)) */
+function sc_assv(o, al) {
+    while (al !== null) {
+	if (al.car.car === o)
+	    return al.car;
+	al = al.cdr;
+    }
+    return false;
+}
+/*** META ((export #t)) */
+function sc_assoc(o, al) {
+    while (al !== null) {
+	if (sc_isEqual(al.car.car, o))
+	    return al.car;
+	al = al.cdr;
+    }
+    return false;
+}
+
+/* can be used for mutable strings and characters */
+function sc_isCharStringEqual(cs1, cs2) { return cs1.val === cs2.val; }
+function sc_isCharStringLess(cs1, cs2) { return cs1.val < cs2.val; }
+function sc_isCharStringGreater(cs1, cs2) { return cs1.val > cs2.val; }
+function sc_isCharStringLessEqual(cs1, cs2) { return cs1.val <= cs2.val; }
+function sc_isCharStringGreaterEqual(cs1, cs2) { return cs1.val >= cs2.val; }
+function sc_isCharStringCIEqual(cs1, cs2)
+    { return cs1.val.toLowerCase() === cs2.val.toLowerCase(); }
+function sc_isCharStringCILess(cs1, cs2)
+    { return cs1.val.toLowerCase() < cs2.val.toLowerCase(); }
+function sc_isCharStringCIGreater(cs1, cs2)
+    { return cs1.val.toLowerCase() > cs2.val.toLowerCase(); }
+function sc_isCharStringCILessEqual(cs1, cs2)
+    { return cs1.val.toLowerCase() <= cs2.val.toLowerCase(); }
+function sc_isCharStringCIGreaterEqual(cs1, cs2)
+    { return cs1.val.toLowerCase() >= cs2.val.toLowerCase(); }
+
+
+
+
+function sc_Char(c) {
+    var cached = sc_Char.lazy[c];
+    if (cached)
+	return cached;
+    this.val = c;
+    sc_Char.lazy[c] = this;
+    // add return, so FF does not complain.
+    return undefined;
+}
+sc_Char.lazy = new Object();
+// thanks to Eric
+sc_Char.char2readable = {
+    "\000": "#\\null",
+    "\007": "#\\bell",
+    "\010": "#\\backspace",
+    "\011": "#\\tab",
+    "\012": "#\\newline",
+    "\014": "#\\page",
+    "\015": "#\\return",
+    "\033": "#\\escape",
+    "\040": "#\\space",
+    "\177": "#\\delete",
+
+  /* poeticless names */
+    "\001": "#\\soh",
+    "\002": "#\\stx",
+    "\003": "#\\etx",
+    "\004": "#\\eot",
+    "\005": "#\\enq",
+    "\006": "#\\ack",
+
+    "\013": "#\\vt",
+    "\016": "#\\so",
+    "\017": "#\\si",
+
+    "\020": "#\\dle",
+    "\021": "#\\dc1",
+    "\022": "#\\dc2",
+    "\023": "#\\dc3",
+    "\024": "#\\dc4",
+    "\025": "#\\nak",
+    "\026": "#\\syn",
+    "\027": "#\\etb",
+
+    "\030": "#\\can",
+    "\031": "#\\em",
+    "\032": "#\\sub",
+    "\033": "#\\esc",
+    "\034": "#\\fs",
+    "\035": "#\\gs",
+    "\036": "#\\rs",
+    "\037": "#\\us"};
+
+sc_Char.readable2char = {
+    "null": "\000",
+    "bell": "\007",
+    "backspace": "\010",
+    "tab": "\011",
+    "newline": "\012",
+    "page": "\014",
+    "return": "\015",
+    "escape": "\033",
+    "space": "\040",
+    "delete": "\000",
+    "soh": "\001",
+    "stx": "\002",
+    "etx": "\003",
+    "eot": "\004",
+    "enq": "\005",
+    "ack": "\006",
+    "bel": "\007",
+    "bs": "\010",
+    "ht": "\011",
+    "nl": "\012",
+    "vt": "\013",
+    "np": "\014",
+    "cr": "\015",
+    "so": "\016",
+    "si": "\017",
+    "dle": "\020",
+    "dc1": "\021",
+    "dc2": "\022",
+    "dc3": "\023",
+    "dc4": "\024",
+    "nak": "\025",
+    "syn": "\026",
+    "etb": "\027",
+    "can": "\030",
+    "em": "\031",
+    "sub": "\032",
+    "esc": "\033",
+    "fs": "\034",
+    "gs": "\035",
+    "rs": "\036",
+    "us": "\037",
+    "sp": "\040",
+    "del": "\177"};
+
+sc_Char.prototype.toString = function() {
+    return this.val;
+};
+// sc_toDisplayString == toString
+sc_Char.prototype.sc_toWriteString = function() {
+    var entry = sc_Char.char2readable[this.val];
+    if (entry)
+	return entry;
+    else
+	return "#\\" + this.val;
+};
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix "instanceof sc_Char")))
+*/
+function sc_isChar(c) {
+    return (c instanceof sc_Char);
+}
+
+/*** META ((export char=?)
+           (type bool)
+           (peephole (hole 2 c1 ".val === " c2 ".val")))
+*/
+var sc_isCharEqual = sc_isCharStringEqual;
+/*** META ((export char<?)
+           (type bool)
+           (peephole (hole 2 c1 ".val < " c2 ".val")))
+*/
+var sc_isCharLess = sc_isCharStringLess;
+/*** META ((export char>?)
+           (type bool)
+           (peephole (hole 2 c1 ".val > " c2 ".val")))
+*/
+var sc_isCharGreater = sc_isCharStringGreater;
+/*** META ((export char<=?)
+           (type bool)
+           (peephole (hole 2 c1 ".val <= " c2 ".val")))
+*/
+var sc_isCharLessEqual = sc_isCharStringLessEqual;
+/*** META ((export char>=?)
+           (type bool)
+           (peephole (hole 2 c1 ".val >= " c2 ".val")))
+*/
+var sc_isCharGreaterEqual = sc_isCharStringGreaterEqual;
+/*** META ((export char-ci=?)
+           (type bool)
+           (peephole (hole 2 c1 ".val.toLowerCase() === " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIEqual = sc_isCharStringCIEqual;
+/*** META ((export char-ci<?)
+           (type bool)
+           (peephole (hole 2 c1 ".val.toLowerCase() < " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCILess = sc_isCharStringCILess;
+/*** META ((export char-ci>?)
+           (type bool)
+           (peephole (hole 2 c1 ".val.toLowerCase() > " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIGreater = sc_isCharStringCIGreater;
+/*** META ((export char-ci<=?)
+           (type bool)
+           (peephole (hole 2 c1 ".val.toLowerCase() <= " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCILessEqual = sc_isCharStringCILessEqual;
+/*** META ((export char-ci>=?)
+           (type bool)
+           (peephole (hole 2 c1 ".val.toLowerCase() >= " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIGreaterEqual = sc_isCharStringCIGreaterEqual;
+
+var SC_NUMBER_CLASS = "0123456789";
+var SC_WHITESPACE_CLASS = ' \r\n\t\f';
+var SC_LOWER_CLASS = 'abcdefghijklmnopqrstuvwxyz';
+var SC_UPPER_CLASS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+
+function sc_isCharOfClass(c, cl) { return (cl.indexOf(c) != -1); }
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isCharAlphabetic(c)
+    { return sc_isCharOfClass(c.val, SC_LOWER_CLASS) ||
+	  sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
+/*** META ((export #t)
+           (type bool)
+           (peephole (hole 1 "SC_NUMBER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharNumeric(c)
+    { return sc_isCharOfClass(c.val, SC_NUMBER_CLASS); }
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isCharWhitespace(c) {
+    var tmp = c.val;
+    return tmp === " " || tmp === "\r" || tmp === "\n" || tmp === "\t" || tmp === "\f";
+}
+/*** META ((export #t)
+           (type bool)
+           (peephole (hole 1 "SC_UPPER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharUpperCase(c)
+    { return sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
+/*** META ((export #t)
+           (type bool)
+           (peephole (hole 1 "SC_LOWER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharLowerCase(c)
+    { return sc_isCharOfClass(c.val, SC_LOWER_CLASS); }
+
+/*** META ((export #t)
+           (peephole (postfix ".val.charCodeAt(0)")))
+*/
+function sc_char2integer(c)
+    { return c.val.charCodeAt(0); }
+/*** META ((export #t)
+           (peephole (hole 1 "new sc_Char(String.fromCharCode(" n "))")))
+*/
+function sc_integer2char(n)
+    { return new sc_Char(String.fromCharCode(n)); }
+
+/*** META ((export #t)
+           (peephole (hole 1 "new sc_Char(" c ".val.toUpperCase())")))
+*/
+function sc_charUpcase(c)
+    { return new sc_Char(c.val.toUpperCase()); }
+/*** META ((export #t)
+           (peephole (hole 1 "new sc_Char(" c ".val.toLowerCase())")))
+*/
+function sc_charDowncase(c)
+    { return new sc_Char(c.val.toLowerCase()); }
+
+function sc_makeJSStringOfLength(k, c) {
+    var fill;
+    if (c === undefined)
+	fill = " ";
+    else
+	fill = c;
+    var res = "";
+    var len = 1;
+    // every round doubles the size of fill.
+    while (k >= len) {
+	if (k & len)
+	    res = res.concat(fill);
+	fill = fill.concat(fill);
+	len *= 2;
+    }
+    return res;
+}
+
+function sc_makejsString(k, c) {
+    var fill;
+    if (c)
+	fill = c.val;
+    else
+	fill = " ";
+    return sc_makeJSStringOfLength(k, fill);
+}
+
+function sc_jsstring2list(s) {
+    var res = null;
+    for (var i = s.length - 1; i >= 0; i--)
+	res = sc_cons(new sc_Char(s.charAt(i)), res);
+    return res;
+}
+
+function sc_list2jsstring(l) {
+    var a = new Array();
+    while(l !== null) {
+	a.push(l.car.val);
+	l = l.cdr;
+    }
+    return "".concat.apply("", a);
+}
+
+var sc_Vector = Array;
+
+sc_Vector.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) {
+    if (this.length === 0) return "#()";
+
+    var res = "#(" + writeOrDisplay(this[0]);
+    for (var i = 1; i < this.length; i++)
+	res += " " + writeOrDisplay(this[i]);
+    res += ")";
+    return res;
+};
+sc_Vector.prototype.sc_toDisplayString = function() {
+    return this.sc_toWriteOrDisplayString(sc_toDisplayString);
+};
+sc_Vector.prototype.sc_toWriteString = function() {
+    return this.sc_toWriteOrDisplayString(sc_toWriteString);
+};
+
+/*** META ((export vector? array?)
+           (type bool)
+           (peephole (postfix " instanceof sc_Vector")))
+*/
+function sc_isVector(v) {
+    return (v instanceof sc_Vector);
+}
+
+// only applies to vectors
+function sc_isVectorEqual(v1, v2, comp) {
+    if (v1.length !== v2.length) return false;
+    for (var i = 0; i < v1.length; i++)
+	if (!comp(v1[i], v2[i])) return false;
+    return true;
+}
+
+/*** META ((export make-vector make-array)) */
+function sc_makeVector(size, fill) {
+    var a = new sc_Vector(size);
+    if (fill !== undefined)
+	sc_vectorFillBang(a, fill);
+    return a;
+}
+
+/*** META ((export vector array)
+           (peephole (vector)))
+*/
+function sc_vector() {
+    var a = new sc_Vector();
+    for (var i = 0; i < arguments.length; i++)
+	a.push(arguments[i]);
+    return a;
+}
+
+/*** META ((export vector-length array-length)
+           (peephole (postfix ".length")))
+*/
+function sc_vectorLength(v) {
+    return v.length;
+}
+
+/*** META ((export vector-ref array-ref)
+           (peephole (hole 2 v "[" pos "]")))
+*/
+function sc_vectorRef(v, pos) {
+    return v[pos];
+}
+
+/*** META ((export vector-set! array-set!)
+           (peephole (hole 3 v "[" pos "] = " val)))
+*/
+function sc_vectorSetBang(v, pos, val) {
+    v[pos] = val;
+}
+
+/*** META ((export vector->list array->list)) */
+function sc_vector2list(a) {
+    var res = null;
+    for (var i = a.length-1; i >= 0; i--)
+	res = sc_cons(a[i], res);
+    return res;
+}
+
+/*** META ((export list->vector list->array)) */
+function sc_list2vector(l) {
+    var a = new sc_Vector();
+    while(l !== null) {
+	a.push(l.car);
+	l = l.cdr;
+    }
+    return a;
+}
+
+/*** META ((export vector-fill! array-fill!)) */
+function sc_vectorFillBang(a, fill) {
+    for (var i = 0; i < a.length; i++)
+	a[i] = fill;
+}
+
+
+/*** META ((export #t)) */
+function sc_copyVector(a, len) {
+    if (len <= a.length)
+	return a.slice(0, len);
+    else {
+	var tmp = a.concat();
+	tmp.length = len;
+	return tmp;
+    }
+}
+
+/*** META ((export #t)
+           (peephole (hole 3 a ".slice(" start "," end ")")))
+*/
+function sc_vectorCopy(a, start, end) {
+    return a.slice(start, end);
+}
+
+/*** META ((export #t)) */
+function sc_vectorCopyBang(target, tstart, source, sstart, send) {
+    if (!sstart) sstart = 0;
+    if (!send) send = source.length;
+
+    // if target == source we don't want to overwrite not yet copied elements.
+    if (tstart <= sstart) {
+	for (var i = tstart, j = sstart; j < send; i++, j++) {
+	    target[i] = source[j];
+	}
+    } else {
+	var diff = send - sstart;
+	for (var i = tstart + diff - 1, j = send - 1;
+	     j >= sstart;
+	     i--, j--) {
+	    target[i] = source[j];
+	}
+    }
+    return target;
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (hole 1 "typeof " o " === 'function'")))
+*/
+function sc_isProcedure(o) {
+    return (typeof o === "function");
+}
+
+/*** META ((export #t)) */
+function sc_apply(proc) {
+    var args = new Array();
+    // first part of arguments are not in list-form.
+    for (var i = 1; i < arguments.length - 1; i++)
+	args.push(arguments[i]);
+    var l = arguments[arguments.length - 1];
+    while (l !== null) {
+	args.push(l.car);
+	l = l.cdr;
+    }
+    return proc.apply(null, args);
+}
+
+/*** META ((export #t)) */
+function sc_map(proc, l1) {
+    if (l1 === undefined)
+	return null;
+    // else
+    var nbApplyArgs = arguments.length - 1;
+    var applyArgs = new Array(nbApplyArgs);
+    var revres = null;
+    while (l1 !== null) {
+	for (var i = 0; i < nbApplyArgs; i++) {
+	    applyArgs[i] = arguments[i + 1].car;
+	    arguments[i + 1] = arguments[i + 1].cdr;
+	}
+	revres = sc_cons(proc.apply(null, applyArgs), revres);
+    }
+    return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_mapBang(proc, l1) {
+    if (l1 === undefined)
+	return null;
+    // else
+    var l1_orig = l1;
+    var nbApplyArgs = arguments.length - 1;
+    var applyArgs = new Array(nbApplyArgs);
+    while (l1 !== null) {
+	var tmp = l1;
+	for (var i = 0; i < nbApplyArgs; i++) {
+	    applyArgs[i] = arguments[i + 1].car;
+	    arguments[i + 1] = arguments[i + 1].cdr;
+	}
+	tmp.car = proc.apply(null, applyArgs);
+    }
+    return l1_orig;
+}
+
+/*** META ((export #t)) */
+function sc_forEach(proc, l1) {
+    if (l1 === undefined)
+	return undefined;
+    // else
+    var nbApplyArgs = arguments.length - 1;
+    var applyArgs = new Array(nbApplyArgs);
+    while (l1 !== null) {
+	for (var i = 0; i < nbApplyArgs; i++) {
+	    applyArgs[i] = arguments[i + 1].car;
+	    arguments[i + 1] = arguments[i + 1].cdr;
+	}
+	proc.apply(null, applyArgs);
+    }
+    // add return so FF does not complain.
+    return undefined;
+}
+
+/*** META ((export #t)) */
+function sc_filter(proc, l1) {
+    var dummy = { cdr : null };
+    var tail = dummy;
+    while (l1 !== null) {
+	if (proc(l1.car) !== false) {
+	    tail.cdr = sc_cons(l1.car, null);
+	    tail = tail.cdr;
+	}
+	l1 = l1.cdr;
+    }
+    return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_filterBang(proc, l1) {
+    var head = sc_cons("dummy", l1);
+    var it = head;
+    var next = l1;
+    while (next !== null) {
+        if (proc(next.car) !== false) {
+	    it.cdr = next
+	    it = next;
+	}
+	next = next.cdr;
+    }
+    it.cdr = null;
+    return head.cdr;
+}
+
+function sc_filterMap1(proc, l1) {
+    var revres = null;
+    while (l1 !== null) {
+        var tmp = proc(l1.car)
+        if (tmp !== false) revres = sc_cons(tmp, revres);
+        l1 = l1.cdr;
+    }
+    return sc_reverseAppendBang(revres, null);
+}
+function sc_filterMap2(proc, l1, l2) {
+    var revres = null;
+    while (l1 !== null) {
+        var tmp = proc(l1.car, l2.car);
+        if(tmp !== false) revres = sc_cons(tmp, revres);
+	l1 = l1.cdr;
+	l2 = l2.cdr
+    }
+    return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_filterMap(proc, l1, l2, l3) {
+    if (l2 === undefined)
+	return sc_filterMap1(proc, l1);
+    else if (l3 === undefined)
+	return sc_filterMap2(proc, l1, l2);
+    // else
+    var nbApplyArgs = arguments.length - 1;
+    var applyArgs = new Array(nbApplyArgs);
+    var revres = null;
+    while (l1 !== null) {
+	for (var i = 0; i < nbApplyArgs; i++) {
+	    applyArgs[i] = arguments[i + 1].car;
+	    arguments[i + 1] = arguments[i + 1].cdr;
+	}
+	var tmp = proc.apply(null, applyArgs);
+	if(tmp !== false) revres = sc_cons(tmp, revres);
+    }
+    return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_any(proc, l) {
+    var revres = null;
+    while (l !== null) {
+        var tmp = proc(l.car);
+        if(tmp !== false) return tmp;
+	l = l.cdr;
+    }
+    return false;
+}
+
+/*** META ((export any?)
+           (peephole (hole 2 "sc_any(" proc "," l ") !== false")))
+*/
+function sc_anyPred(proc, l) {
+    return sc_any(proc, l)!== false;
+}
+
+/*** META ((export #t)) */
+function sc_every(proc, l) {
+    var revres = null;
+    var tmp = true;
+    while (l !== null) {
+        tmp = proc(l.car);
+        if (tmp === false) return false;
+	l = l.cdr;
+    }
+    return tmp;
+}
+
+/*** META ((export every?)
+           (peephole (hole 2 "sc_every(" proc "," l ") !== false")))
+*/
+function sc_everyPred(proc, l) {
+    var tmp = sc_every(proc, l);
+    if (tmp !== false) return true;
+    return false;
+}
+
+/*** META ((export #t)
+           (peephole (postfix "()")))
+*/
+function sc_force(o) {
+    return o();
+}
+
+/*** META ((export #t)) */
+function sc_makePromise(proc) {
+    var isResultReady = false;
+    var result = undefined;
+    return function() {
+	if (!isResultReady) {
+	    var tmp = proc();
+	    if (!isResultReady) {
+		isResultReady = true;
+		result = tmp;
+	    }
+	}
+	return result;
+    };
+}
+
+function sc_Values(values) {
+    this.values = values;
+}
+
+/*** META ((export #t)
+           (peephole (values)))
+*/
+function sc_values() {
+    if (arguments.length === 1)
+	return arguments[0];
+    else
+	return new sc_Values(arguments);
+}
+
+/*** META ((export #t)) */
+function sc_callWithValues(producer, consumer) {
+    var produced = producer();
+    if (produced instanceof sc_Values)
+	return consumer.apply(null, produced.values);
+    else
+	return consumer(produced);
+}
+
+/*** META ((export #t)) */
+function sc_dynamicWind(before, thunk, after) {
+    before();
+    try {
+	var res = thunk();
+	return res;
+    } finally {
+	after();
+    }
+}
+
+
+// TODO: eval/scheme-report-environment/null-environment/interaction-environment
+
+// LIMITATION: 'load' doesn't exist without files.
+// LIMITATION: transcript-on/transcript-off doesn't exist without files.
+
+
+function sc_Struct(name) {
+    this.name = name;
+}
+sc_Struct.prototype.sc_toDisplayString = function() {
+    return "#<struct" + sc_hash(this) + ">";
+};
+sc_Struct.prototype.sc_toWriteString = sc_Struct.prototype.sc_toDisplayString;
+
+/*** META ((export #t)
+           (peephole (hole 1 "new sc_Struct(" name ")")))
+*/
+function sc_makeStruct(name) {
+    return new sc_Struct(name);
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix " instanceof sc_Struct")))
+*/
+function sc_isStruct(o) {
+    return (o instanceof sc_Struct);
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (hole 2 "(" 1 " instanceof sc_Struct) && ( " 1 ".name === " 0 ")")))
+*/
+function sc_isStructNamed(name, s) {
+    return ((s instanceof sc_Struct) && (s.name === name));
+}
+
+/*** META ((export struct-field)
+           (peephole (hole 3 0 "[" 2 "]")))
+*/
+function sc_getStructField(s, name, field) {
+    return s[field];
+}
+
+/*** META ((export struct-field-set!)
+           (peephole (hole 4 0 "[" 2 "] = " 3)))
+*/
+function sc_setStructFieldBang(s, name, field, val) {
+    s[field] = val;
+}
+
+/*** META ((export #t)
+           (peephole (prefix "~")))
+*/
+function sc_bitNot(x) {
+    return ~x;
+}
+
+/*** META ((export #t)
+           (peephole (infix 2 2 "&")))
+*/
+function sc_bitAnd(x, y) {
+    return x & y;
+}
+
+/*** META ((export #t)
+           (peephole (infix 2 2 "|")))
+*/
+function sc_bitOr(x, y) {
+    return x | y;
+}
+
+/*** META ((export #t)
+           (peephole (infix 2 2 "^")))
+*/
+function sc_bitXor(x, y) {
+    return x ^ y;
+}
+
+/*** META ((export #t)
+           (peephole (infix 2 2 "<<")))
+*/
+function sc_bitLsh(x, y) {
+    return x << y;
+}
+
+/*** META ((export #t)
+           (peephole (infix 2 2 ">>")))
+*/
+function sc_bitRsh(x, y) {
+    return x >> y;
+}
+
+/*** META ((export #t)
+           (peephole (infix 2 2 ">>>")))
+*/
+function sc_bitUrsh(x, y) {
+    return x >>> y;
+}
+
+/*** META ((export js-field js-property)
+           (peephole (hole 2 o "[" field "]")))
+*/
+function sc_jsField(o, field) {
+    return o[field];
+}
+
+/*** META ((export js-field-set! js-property-set!)
+           (peephole (hole 3 o "[" field "] = " val)))
+*/
+function sc_setJsFieldBang(o, field, val) {
+    return o[field] = val;
+}
+
+/*** META ((export js-field-delete! js-property-delete!)
+           (peephole (hole 2 "delete" o "[" field "]")))
+*/
+function sc_deleteJsFieldBang(o, field) {
+    delete o[field];
+}
+
+/*** META ((export #t)
+           (peephole (jsCall)))
+*/
+function sc_jsCall(o, fun) {
+    var args = new Array();
+    for (var i = 2; i < arguments.length; i++)
+	args[i-2] = arguments[i];
+    return fun.apply(o, args);
+}
+
+/*** META ((export #t)
+           (peephole (jsMethodCall)))
+*/
+function sc_jsMethodCall(o, field) {
+    var args = new Array();
+    for (var i = 2; i < arguments.length; i++)
+	args[i-2] = arguments[i];
+    return o[field].apply(o, args);
+}
+
+/*** META ((export new js-new)
+           (peephole (jsNew)))
+*/
+function sc_jsNew(c) {
+    var evalStr = "new c(";
+    evalStr +=arguments.length > 1? "arguments[1]": "";
+    for (var i = 2; i < arguments.length; i++)
+	evalStr += ", arguments[" + i + "]";
+    evalStr +=")";
+    return eval(evalStr);
+}
+
+// ======================== RegExp ====================
+/*** META ((export #t)) */
+function sc_pregexp(re) {
+    return new RegExp(sc_string2jsstring(re));
+}
+
+/*** META ((export #t)) */
+function sc_pregexpMatch(re, s) {
+    var reg = (re instanceof RegExp) ? re : sc_pregexp(re);
+    var tmp = reg.exec(sc_string2jsstring(s));
+
+    if (tmp == null) return false;
+
+    var res = null;
+    for (var i = tmp.length-1; i >= 0; i--) {
+	if (tmp[i] !== null) {
+	    res = sc_cons(sc_jsstring2string(tmp[i]), res);
+	} else {
+	    res = sc_cons(false, res);
+	}
+    }
+    return res;
+}
+
+/*** META ((export #t)) */
+function sc_pregexpReplace(re, s1, s2) {
+   var reg;
+   var jss1 = sc_string2jsstring(s1);
+   var jss2 = sc_string2jsstring(s2);
+
+   if (re instanceof RegExp) {
+       if (re.global)
+	   reg = re;
+       else
+	   reg = new RegExp(re.source);
+   } else {
+       reg = new RegExp(sc_string2jsstring(re));
+   }
+
+   return jss1.replace(reg, jss2);
+}
+
+/*** META ((export pregexp-replace*)) */
+function sc_pregexpReplaceAll(re, s1, s2) {
+   var reg;
+   var jss1 = sc_string2jsstring(s1);
+   var jss2 = sc_string2jsstring(s2);
+
+   if (re instanceof RegExp) {
+      if (re.global)
+	  reg = re;
+      else
+	  reg = new RegExp(re.source, "g");
+   } else {
+       reg = new RegExp(sc_string2jsstring(re), "g");
+   }
+
+   return jss1.replace(reg, jss2);
+}
+
+/*** META ((export #t)) */
+function sc_pregexpSplit(re, s) {
+   var reg = ((re instanceof RegExp) ?
+	      re :
+	      new RegExp(sc_string2jsstring(re)));
+   var jss = sc_string2jsstring(s);
+   var tmp = jss.split(reg);
+
+   if (tmp == null) return false;
+
+   return sc_vector2list(tmp);
+}
+
+
+/* =========================================================================== */
+/* Other library stuff */
+/* =========================================================================== */
+
+/*** META ((export #t)
+           (peephole (hole 1 "Math.floor(Math.random()*" 'n ")")))
+*/
+function sc_random(n) {
+    return Math.floor(Math.random()*n);
+}
+
+/*** META ((export current-date)
+           (peephole (hole 0 "new Date()")))
+*/
+function sc_currentDate() {
+   return new Date();
+}
+
+function sc_Hashtable() {
+}
+sc_Hashtable.prototype.toString = function() {
+    return "#{%hashtable}";
+};
+// sc_toWriteString == sc_toDisplayString == toString
+
+function sc_HashtableElement(key, val) {
+    this.key = key;
+    this.val = val;
+}
+
+/*** META ((export #t)
+           (peephole (hole 0 "new sc_Hashtable()")))
+*/
+function sc_makeHashtable() {
+    return new sc_Hashtable();
+}
+
+/*** META ((export #t)) */
+function sc_hashtablePutBang(ht, key, val) {
+    var hash = sc_hash(key);
+    ht[hash] = new sc_HashtableElement(key, val);
+}
+
+/*** META ((export #t)) */
+function sc_hashtableGet(ht, key) {
+    var hash = sc_hash(key);
+    if (hash in ht)
+	return ht[hash].val;
+    else
+	return false;
+}
+
+/*** META ((export #t)) */
+function sc_hashtableForEach(ht, f) {
+    for (var v in ht) {
+	if (ht[v] instanceof sc_HashtableElement)
+	    f(ht[v].key, ht[v].val);
+    }
+}
+
+/*** META ((export hashtable-contains?)
+           (peephole (hole 2 "sc_hash(" 1 ") in " 0)))
+*/
+function sc_hashtableContains(ht, key) {
+    var hash = sc_hash(key);
+    if (hash in ht)
+	return true;
+    else
+	return false;
+}
+
+var SC_HASH_COUNTER = 0;
+
+function sc_hash(o) {
+    if (o === null)
+	return "null";
+    else if (o === undefined)
+	return "undefined";
+    else if (o === true)
+	return "true";
+    else if (o === false)
+	return "false";
+    else if (typeof o === "number")
+	return "num-" + o;
+    else if (typeof o === "string")
+	return "jsstr-" + o;
+    else if (o.sc_getHash)
+	return o.sc_getHash();
+    else
+	return sc_counterHash.call(o);
+}
+function sc_counterHash() {
+    if (!this.sc_hash) {
+	this.sc_hash = "hash-" + SC_HASH_COUNTER;
+	SC_HASH_COUNTER++;
+    }
+    return this.sc_hash;
+}
+
+function sc_Trampoline(args, maxTailCalls) {
+    this['__trampoline return__'] = true;
+    this.args = args;
+    this.MAX_TAIL_CALLs = maxTailCalls;
+}
+// TODO: call/cc stuff
+sc_Trampoline.prototype.restart = function() {
+    var o = this;
+    while (true) {
+	// set both globals.
+	SC_TAIL_OBJECT.calls = o.MAX_TAIL_CALLs-1;
+	var fun = o.args.callee;
+	var res = fun.apply(SC_TAIL_OBJECT, o.args);
+	if (res instanceof sc_Trampoline)
+	    o = res;
+	else
+	    return res;
+    }
+}
+
+/*** META ((export bind-exit-lambda)) */
+function sc_bindExitLambda(proc) {
+    var escape_obj = new sc_BindExitException();
+    var escape = function(res) {
+	escape_obj.res = res;
+	throw escape_obj;
+    };
+    try {
+	return proc(escape);
+    } catch(e) {
+	if (e === escape_obj) {
+	    return e.res;
+	}
+	throw e;
+    }
+}
+function sc_BindExitException() {
+    this._internalException = true;
+}
+
+var SC_SCM2JS_GLOBALS = new Object();
+
+// default tail-call depth.
+// normally the program should set it again. but just in case...
+var SC_TAIL_OBJECT = new Object();
+SC_SCM2JS_GLOBALS.TAIL_OBJECT = SC_TAIL_OBJECT;
+// ======================== I/O =======================
+
+/*------------------------------------------------------------------*/
+
+function sc_EOF() {
+}
+var SC_EOF_OBJECT = new sc_EOF();
+
+function sc_Port() {
+}
+
+/* --------------- Input ports -------------------------------------*/
+
+function sc_InputPort() {
+}
+sc_InputPort.prototype = new sc_Port();
+
+sc_InputPort.prototype.peekChar = function() {
+    if (!("peeked" in this))
+	this.peeked = this.getNextChar();
+    return this.peeked;
+}
+sc_InputPort.prototype.readChar = function() {
+    var tmp = this.peekChar();
+    delete this.peeked;
+    return tmp;
+}
+sc_InputPort.prototype.isCharReady = function() {
+    return true;
+}
+sc_InputPort.prototype.close = function() {
+    // do nothing
+}
+
+/* .............. String port ..........................*/
+function sc_ErrorInputPort() {
+};
+sc_ErrorInputPort.prototype = new sc_InputPort();
+sc_ErrorInputPort.prototype.getNextChar = function() {
+    throw "can't read from error-port.";
+};
+sc_ErrorInputPort.prototype.isCharReady = function() {
+    return false;
+};
+
+
+/* .............. String port ..........................*/
+
+function sc_StringInputPort(jsStr) {
+    // we are going to do some charAts on the str.
+    // instead of recreating all the time a String-object, we
+    // create one in the beginning. (not sure, if this is really an optim)
+    this.str = new String(jsStr);
+    this.pos = 0;
+}
+sc_StringInputPort.prototype = new sc_InputPort();
+sc_StringInputPort.prototype.getNextChar = function() {
+    if (this.pos >= this.str.length)
+	return SC_EOF_OBJECT;
+    return this.str.charAt(this.pos++);
+};
+
+/* ------------- Read and other lib-funs  -------------------------------*/
+function sc_Token(type, val, pos) {
+    this.type = type;
+    this.val = val;
+    this.pos = pos;
+}
+sc_Token.EOF = 0/*EOF*/;
+sc_Token.OPEN_PAR = 1/*OPEN_PAR*/;
+sc_Token.CLOSE_PAR = 2/*CLOSE_PAR*/;
+sc_Token.OPEN_BRACE = 3/*OPEN_BRACE*/;
+sc_Token.CLOSE_BRACE = 4/*CLOSE_BRACE*/;
+sc_Token.OPEN_BRACKET = 5/*OPEN_BRACKET*/;
+sc_Token.CLOSE_BRACKET = 6/*CLOSE_BRACKET*/;
+sc_Token.WHITESPACE = 7/*WHITESPACE*/;
+sc_Token.QUOTE = 8/*QUOTE*/;
+sc_Token.ID = 9/*ID*/;
+sc_Token.DOT = 10/*DOT*/;
+sc_Token.STRING = 11/*STRING*/;
+sc_Token.NUMBER = 12/*NUMBER*/;
+sc_Token.ERROR = 13/*ERROR*/;
+sc_Token.VECTOR_BEGIN = 14/*VECTOR_BEGIN*/;
+sc_Token.TRUE = 15/*TRUE*/;
+sc_Token.FALSE = 16/*FALSE*/;
+sc_Token.UNSPECIFIED = 17/*UNSPECIFIED*/;
+sc_Token.REFERENCE = 18/*REFERENCE*/;
+sc_Token.STORE = 19/*STORE*/;
+sc_Token.CHAR = 20/*CHAR*/;
+
+var SC_ID_CLASS = SC_LOWER_CLASS + SC_UPPER_CLASS + "!$%*+-./:<=>?@^_~";
+function sc_Tokenizer(port) {
+    this.port = port;
+}
+sc_Tokenizer.prototype.peekToken = function() {
+    if (this.peeked)
+	return this.peeked;
+    var newToken = this.nextToken();
+    this.peeked = newToken;
+    return newToken;
+};
+sc_Tokenizer.prototype.readToken = function() {
+    var tmp = this.peekToken();
+    delete this.peeked;
+    return tmp;
+};
+sc_Tokenizer.prototype.nextToken = function() {
+    var port = this.port;
+
+    function isNumberChar(c) {
+	return (c >= "0" && c <= "9");
+    };
+    function isIdOrNumberChar(c) {
+	return SC_ID_CLASS.indexOf(c) != -1 || // ID-char
+	    (c >= "0" && c <= "9");
+    }
+    function isWhitespace(c) {
+	return c === " " || c === "\r" || c === "\n" || c === "\t" || c === "\f";
+    };
+    function isWhitespaceOrEOF(c) {
+	return isWhitespace(c) || c === SC_EOF_OBJECT;
+    };
+
+    function readString() {
+	res = "";
+	while (true) {
+	    var c = port.readChar();
+	    switch (c) {
+	    case '"':
+		return new sc_Token(11/*STRING*/, res);
+	    case "\\":
+		var tmp = port.readChar();
+		switch (tmp) {
+		case '0': res += "\0"; break;
+		case 'a': res += "\a"; break;
+		case 'b': res += "\b"; break;
+		case 'f': res += "\f"; break;
+		case 'n': res += "\n"; break;
+		case 'r': res += "\r"; break;
+		case 't': res += "\t"; break;
+		case 'v': res += "\v"; break;
+		case '"': res += '"'; break;
+		case '\\': res += '\\'; break;
+		case 'x':
+		    /* hexa-number */
+		    var nb = 0;
+		    while (true) {
+			var hexC = port.peekChar();
+			if (hexC >= '0' && hexC <= '9') {
+			    port.readChar();
+			    nb = nb * 16 + hexC.charCodeAt(0) - '0'.charCodeAt(0);
+			} else if (hexC >= 'a' && hexC <= 'f') {
+			    port.readChar();
+			    nb = nb * 16 + hexC.charCodeAt(0) - 'a'.charCodeAt(0);
+			} else if (hexC >= 'A' && hexC <= 'F') {
+			    port.readChar();
+			    nb = nb * 16 + hexC.charCodeAt(0) - 'A'.charCodeAt(0);
+			} else {
+			    // next char isn't part of hex.
+			    res += String.fromCharCode(nb);
+			    break;
+			}
+		    }
+		    break;
+		default:
+		    if (tmp === SC_EOF_OBJECT) {
+			return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res);
+		    }
+		    res += tmp;
+		}
+		break;
+	    default:
+		if (c === SC_EOF_OBJECT) {
+		    return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res);
+		}
+		res += c;
+	    }
+	}
+    };
+    function readIdOrNumber(firstChar) {
+	var res = firstChar;
+	while (isIdOrNumberChar(port.peekChar()))
+	    res += port.readChar();
+	if (isNaN(res))
+	    return new sc_Token(9/*ID*/, res);
+	else
+	    return new sc_Token(12/*NUMBER*/, res - 0);
+    };
+
+    function skipWhitespaceAndComments() {
+	var done = false;
+	while (!done) {
+	    done = true;
+	    while (isWhitespace(port.peekChar()))
+		port.readChar();
+	    if (port.peekChar() === ';') {
+		port.readChar();
+		done = false;
+		while (true) {
+		    curChar = port.readChar();
+		    if (curChar === SC_EOF_OBJECT ||
+			curChar === '\n')
+			break;
+		}
+	    }
+	}
+    };
+
+    function readDot() {
+	if (isWhitespace(port.peekChar()))
+	    return new sc_Token(10/*DOT*/);
+	else
+	    return readIdOrNumber(".");
+    };
+
+    function readSharp() {
+	var c = port.readChar();
+	if (isWhitespace(c))
+	    return new sc_Token(13/*ERROR*/, "bad #-pattern0.");
+
+	// reference
+	if (isNumberChar(c)) {
+	    var nb = c - 0;
+	    while (isNumberChar(port.peekChar()))
+		nb = nb*10 + (port.readChar() - 0);
+	    switch (port.readChar()) {
+	    case '#':
+		return new sc_Token(18/*REFERENCE*/, nb);
+	    case '=':
+		return new sc_Token(19/*STORE*/, nb);
+	    default:
+		return new sc_Token(13/*ERROR*/, "bad #-pattern1." + nb);
+	    }
+	}
+
+	if (c === "(")
+	    return new sc_Token(14/*VECTOR_BEGIN*/);
+	
+	if (c === "\\") { // character
+	    var tmp = ""
+	    while (!isWhitespaceOrEOF(port.peekChar()))
+		tmp += port.readChar();
+	    switch (tmp.length) {
+	    case 0: // it's escaping a whitespace char:
+		if (sc_isEOFObject(port.peekChar))
+		    return new sc_Token(13/*ERROR*/, "bad #-pattern2.");
+		else
+		    return new sc_Token(20/*CHAR*/, port.readChar());
+	    case 1:
+		return new sc_Token(20/*CHAR*/, tmp);
+	    default:
+		var entry = sc_Char.readable2char[tmp.toLowerCase()];
+		if (entry)
+		    return new sc_Token(20/*CHAR*/, entry);
+		else
+		    return new sc_Token(13/*ERROR*/, "unknown character description: #\\" + tmp);
+	    }
+	}
+
+	// some constants (#t, #f, #unspecified)
+	var res;
+	var needing;
+	switch (c) {
+	case 't': res = new sc_Token(15/*TRUE*/, true); needing = ""; break;
+	case 'f': res = new sc_Token(16/*FALSE*/, false); needing = ""; break;
+	case 'u': res = new sc_Token(17/*UNSPECIFIED*/, undefined); needing = "nspecified"; break;
+	default:
+	    return new sc_Token(13/*ERROR*/, "bad #-pattern3: " + c);
+	}
+	while(true) {
+	    c = port.peekChar();
+	    if ((isWhitespaceOrEOF(c) || c === ')') &&
+		needing == "")
+		return res;
+	    else if (isWhitespace(c) || needing == "")
+		return new sc_Token(13/*ERROR*/, "bad #-pattern4 " + c + " " + needing);
+	    else if (needing.charAt(0) == c) {
+		port.readChar(); // consume
+		needing = needing.slice(1);
+	    } else
+		return new sc_Token(13/*ERROR*/, "bad #-pattern5");
+	}
+	
+    };
+
+    skipWhitespaceAndComments();
+    var curChar = port.readChar();
+    if (curChar === SC_EOF_OBJECT)
+	return new sc_Token(0/*EOF*/, curChar);
+    switch (curChar)
+    {
+    case " ":
+    case "\n":
+    case "\t":
+	return readWhitespace();
+    case "(":
+	return new sc_Token(1/*OPEN_PAR*/);
+    case ")":
+	return new sc_Token(2/*CLOSE_PAR*/);
+    case "{":
+	return new sc_Token(3/*OPEN_BRACE*/);
+    case "}":
+	return new sc_Token(4/*CLOSE_BRACE*/);
+    case "[":
+	return new sc_Token(5/*OPEN_BRACKET*/);
+    case "]":
+	return new sc_Token(6/*CLOSE_BRACKET*/);
+    case "'":
+	return new sc_Token(8/*QUOTE*/);
+    case "#":
+	return readSharp();
+    case ".":
+	return readDot();
+    case '"':
+	return readString();
+    default:
+	if (isIdOrNumberChar(curChar))
+	    return readIdOrNumber(curChar);
+	throw "unexpected character: " + curChar;
+    }
+};
+
+function sc_Reader(tokenizer) {
+    this.tokenizer = tokenizer;
+    this.backref = new Array();
+}
+sc_Reader.prototype.read = function() {
+    function readList(listBeginType) {
+	function matchesPeer(open, close) {
+	    return open === 1/*OPEN_PAR*/ && close === 2/*CLOSE_PAR*/
+	    	|| open === 3/*OPEN_BRACE*/ && close === 4/*CLOSE_BRACE*/
+		|| open === 5/*OPEN_BRACKET*/ && close === 6/*CLOSE_BRACKET*/;
+	};
+	var res = null;
+
+	while (true) {
+	    var token = tokenizer.peekToken();
+
+	    switch (token.type) {
+	    case 2/*CLOSE_PAR*/:
+	    case 4/*CLOSE_BRACE*/:
+	    case 6/*CLOSE_BRACKET*/:
+		if (matchesPeer(listBeginType, token.type)) {
+		    tokenizer.readToken(); // consume token
+		    return sc_reverseBang(res);
+		} else
+		    throw "closing par doesn't match: " + listBeginType
+			+ " " + listEndType;
+
+	    case 0/*EOF*/:
+		throw "unexpected end of file";
+
+	    case 10/*DOT*/:
+		tokenizer.readToken(); // consume token
+		var cdr = this.read();
+		var par = tokenizer.readToken();
+		if (!matchesPeer(listBeginType, par.type))
+		    throw "closing par doesn't match: " + listBeginType
+			+ " " + par.type;
+		else
+		    return sc_reverseAppendBang(res, cdr);
+		
+
+	    default:
+		res = sc_cons(this.read(), res);
+	    }
+	}
+    };
+    function readQuote() {
+	return sc_cons("quote", sc_cons(this.read(), null));
+    };
+    function readVector() {
+	// opening-parenthesis is already consumed
+	var a = new Array();
+	while (true) {
+	    var token = tokenizer.peekToken();
+	    switch (token.type) {
+	    case 2/*CLOSE_PAR*/:
+		tokenizer.readToken();
+		return a;
+		
+	    default:
+		a.push(this.read());
+	    }
+	}
+    };
+
+    function storeRefence(nb) {
+	var tmp = this.read();
+	this.backref[nb] = tmp;
+	return tmp;
+    };
+	
+    function readReference(nb) {
+	if (nb in this.backref)
+	    return this.backref[nb];
+	else
+	    throw "bad reference: " + nb;
+    };
+
+    var tokenizer = this.tokenizer;
+
+    var token = tokenizer.readToken();
+
+    // handle error
+    if (token.type === 13/*ERROR*/)
+	throw token.val;
+
+    switch (token.type) {
+    case 1/*OPEN_PAR*/:
+    case 3/*OPEN_BRACE*/:
+    case 5/*OPEN_BRACKET*/:
+	return readList.call(this, token.type);
+    case 8/*QUOTE*/:
+	return readQuote.call(this);
+    case 11/*STRING*/:
+	return sc_jsstring2string(token.val);
+    case 20/*CHAR*/:
+	return new sc_Char(token.val);
+    case 14/*VECTOR_BEGIN*/:
+	return readVector.call(this);
+    case 18/*REFERENCE*/:
+	return readReference.call(this, token.val);
+    case 19/*STORE*/:
+	return storeRefence.call(this, token.val);
+    case 9/*ID*/:
+	return sc_jsstring2symbol(token.val);
+    case 0/*EOF*/:
+    case 12/*NUMBER*/:
+    case 15/*TRUE*/:
+    case 16/*FALSE*/:
+    case 17/*UNSPECIFIED*/:
+	return token.val;
+    default:
+	throw "unexpected token " + token.type + " " + token.val;
+    }
+};
+
+/*** META ((export #t)) */
+function sc_read(port) {
+    if (port === undefined) // we assume the port hasn't been given.
+	port = SC_DEFAULT_IN; // THREAD: shared var...
+    var reader = new sc_Reader(new sc_Tokenizer(port));
+    return reader.read();
+}
+/*** META ((export #t)) */
+function sc_readChar(port) {
+    if (port === undefined) // we assume the port hasn't been given.
+	port = SC_DEFAULT_IN; // THREAD: shared var...
+    var t = port.readChar();
+    return t === SC_EOF_OBJECT? t: new sc_Char(t);
+}
+/*** META ((export #t)) */
+function sc_peekChar(port) {
+    if (port === undefined) // we assume the port hasn't been given.
+	port = SC_DEFAULT_IN; // THREAD: shared var...
+    var t = port.peekChar();
+    return t === SC_EOF_OBJECT? t: new sc_Char(t);
+}
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isCharReady(port) {
+    if (port === undefined) // we assume the port hasn't been given.
+	port = SC_DEFAULT_IN; // THREAD: shared var...
+    return port.isCharReady();
+}
+/*** META ((export #t)
+           (peephole (postfix ".close()")))
+*/
+function sc_closeInputPort(p) {
+    return p.close();
+}
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix " instanceof sc_InputPort")))
+*/
+function sc_isInputPort(o) {
+    return (o instanceof sc_InputPort);
+}
+
+/*** META ((export eof-object?)
+           (type bool)
+           (peephole (postfix " === SC_EOF_OBJECT")))
+*/
+function sc_isEOFObject(o) {
+    return o === SC_EOF_OBJECT;
+}
+
+/*** META ((export #t)
+           (peephole (hole 0 "SC_DEFAULT_IN")))
+*/
+function sc_currentInputPort() {
+    return SC_DEFAULT_IN;
+}
+
+/* ------------ file operations are not supported -----------*/
+/*** META ((export #t)) */
+function sc_callWithInputFile(s, proc) {
+    throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_callWithOutputFile(s, proc) {
+    throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_withInputFromFile(s, thunk) {
+    throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToFile(s, thunk) {
+    throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_openInputFile(s) {
+    throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_openOutputFile(s) {
+    throw "can't open " + s;
+}
+
+/* ----------------------------------------------------------------------------*/
+/*** META ((export #t)) */
+function sc_basename(p) {
+   var i = p.lastIndexOf('/');
+
+   if(i >= 0)
+      return p.substring(i + 1, p.length);
+   else
+      return '';
+}
+
+/*** META ((export #t)) */
+function sc_dirname(p) {
+   var i = p.lastIndexOf('/');
+
+   if(i >= 0)
+      return p.substring(0, i);
+   else
+      return '';
+}
+
+/* ----------------------------------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_withInputFromPort(p, thunk) {
+    try {
+	var tmp = SC_DEFAULT_IN; // THREAD: shared var.
+	SC_DEFAULT_IN = p;
+	return thunk();
+    } finally {
+	SC_DEFAULT_IN = tmp;
+    }
+}
+
+/*** META ((export #t)) */
+function sc_withInputFromString(s, thunk) {
+    return sc_withInputFromPort(new sc_StringInputPort(sc_string2jsstring(s)), thunk);
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToPort(p, thunk) {
+    try {
+	var tmp = SC_DEFAULT_OUT; // THREAD: shared var.
+	SC_DEFAULT_OUT = p;
+	return thunk();
+    } finally {
+	SC_DEFAULT_OUT = tmp;
+    }
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToString(thunk) {
+    var p = new sc_StringOutputPort();
+    sc_withOutputToPort(p, thunk);
+    return p.close();
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToProcedure(proc, thunk) {
+    var t = function(s) { proc(sc_jsstring2string(s)); };
+    return sc_withOutputToPort(new sc_GenericOutputPort(t), thunk);
+}
+
+/*** META ((export #t)
+           (peephole (hole 0 "new sc_StringOutputPort()")))
+*/
+function sc_openOutputString() {
+    return new sc_StringOutputPort();
+}
+
+/*** META ((export #t)) */
+function sc_openInputString(str) {
+    return new sc_StringInputPort(sc_string2jsstring(str));
+}
+
+/* ----------------------------------------------------------------------------*/
+
+function sc_OutputPort() {
+}
+sc_OutputPort.prototype = new sc_Port();
+sc_OutputPort.prototype.appendJSString = function(obj) {
+    /* do nothing */
+}
+sc_OutputPort.prototype.close = function() {
+    /* do nothing */
+}
+
+function sc_StringOutputPort() {
+    this.res = "";
+}
+sc_StringOutputPort.prototype = new sc_OutputPort();
+sc_StringOutputPort.prototype.appendJSString = function(s) {
+    this.res += s;
+}
+sc_StringOutputPort.prototype.close = function() {
+    return sc_jsstring2string(this.res);
+}
+
+/*** META ((export #t)) */
+function sc_getOutputString(sp) {
+    return sc_jsstring2string(sp.res);
+}
+
+
+function sc_ErrorOutputPort() {
+}
+sc_ErrorOutputPort.prototype = new sc_OutputPort();
+sc_ErrorOutputPort.prototype.appendJSString = function(s) {
+    throw "don't write on ErrorPort!";
+}
+sc_ErrorOutputPort.prototype.close = function() {
+    /* do nothing */
+}
+
+function sc_GenericOutputPort(appendJSString, close) {
+    this.appendJSString = appendJSString;
+    if (close)
+	this.close = close;
+}
+sc_GenericOutputPort.prototype = new sc_OutputPort();
+
+/*** META ((export #t)
+           (type bool)
+           (peephole (postfix " instanceof sc_OutputPort")))
+*/
+function sc_isOutputPort(o) {
+    return (o instanceof sc_OutputPort);
+}
+
+/*** META ((export #t)
+           (peephole (postfix ".close()")))
+*/
+function sc_closeOutputPort(p) {
+    return p.close();
+}
+
+/* ------------------ write ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_write(o, p) {
+    if (p === undefined) // we assume not given
+	p = SC_DEFAULT_OUT;
+    p.appendJSString(sc_toWriteString(o));
+}
+
+function sc_toWriteString(o) {
+    if (o === null)
+	return "()";
+    else if (o === true)
+	return "#t";
+    else if (o === false)
+	return "#f";
+    else if (o === undefined)
+	return "#unspecified";
+    else if (typeof o === 'function')
+	return "#<procedure " + sc_hash(o) + ">";
+    else if (o.sc_toWriteString)
+	return o.sc_toWriteString();
+    else
+	return o.toString();
+}
+
+function sc_escapeWriteString(s) {
+    var res = "";
+    var j = 0;
+    for (i = 0; i < s.length; i++) {
+	switch (s.charAt(i)) {
+	case "\0": res += s.substring(j, i) + "\\0"; j = i + 1; break;
+	case "\b": res += s.substring(j, i) + "\\b"; j = i + 1; break;
+	case "\f": res += s.substring(j, i) + "\\f"; j = i + 1; break;
+	case "\n": res += s.substring(j, i) + "\\n"; j = i + 1; break;
+	case "\r": res += s.substring(j, i) + "\\r"; j = i + 1; break;
+	case "\t": res += s.substring(j, i) + "\\t"; j = i + 1; break;
+	case "\v": res += s.substring(j, i) + "\\v"; j = i + 1; break;
+	case '"': res += s.substring(j, i) + '\\"'; j = i + 1; break;
+	case "\\": res += s.substring(j, i) + "\\\\"; j = i + 1; break;
+	default:
+	    var c = s.charAt(i);
+	    if ("\a" !== "a" && c == "\a") {
+		res += s.substring(j, i) + "\\a"; j = i + 1; continue;
+	    }
+	    if ("\v" !== "v" && c == "\v") {
+		res += s.substring(j, i) + "\\v"; j = i + 1; continue;
+	    }
+	    //if (s.charAt(i) < ' ' || s.charCodeAt(i) > 127) {
+	    // CARE: Manuel is this OK with HOP?
+	    if (s.charAt(i) < ' ') {
+		/* non printable character and special chars */
+		res += s.substring(j, i) + "\\x" + s.charCodeAt(i).toString(16);
+		j = i + 1;
+	    }
+	    // else just let i increase...
+	}
+    }
+    res += s.substring(j, i);
+    return res;
+}
+
+/* ------------------ display ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_display(o, p) {
+    if (p === undefined) // we assume not given
+	p = SC_DEFAULT_OUT;
+    p.appendJSString(sc_toDisplayString(o));
+}
+
+function sc_toDisplayString(o) {
+    if (o === null)
+	return "()";
+    else if (o === true)
+	return "#t";
+    else if (o === false)
+	return "#f";
+    else if (o === undefined)
+	return "#unspecified";
+    else if (typeof o === 'function')
+	return "#<procedure " + sc_hash(o) + ">";
+    else if (o.sc_toDisplayString)
+	return o.sc_toDisplayString();
+    else
+	return o.toString();
+}
+
+/* ------------------ newline ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_newline(p) {
+    if (p === undefined) // we assume not given
+	p = SC_DEFAULT_OUT;
+    p.appendJSString("\n");
+}
+
+/* ------------------ write-char ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_writeChar(c, p) {
+    if (p === undefined) // we assume not given
+	p = SC_DEFAULT_OUT;
+    p.appendJSString(c.val);
+}
+
+/* ------------------ write-circle ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_writeCircle(o, p) {
+    if (p === undefined) // we assume not given
+	p = SC_DEFAULT_OUT;
+    p.appendJSString(sc_toWriteCircleString(o));
+}
+
+function sc_toWriteCircleString(o) {
+    var symb = sc_gensym("writeCircle");
+    var nbPointer = new Object();
+    nbPointer.nb = 0;
+    sc_prepWriteCircle(o, symb, nbPointer);
+    return sc_genToWriteCircleString(o, symb);
+}
+
+function sc_prepWriteCircle(o, symb, nbPointer) {
+    // TODO sc_Struct
+    if (o instanceof sc_Pair ||
+	o instanceof sc_Vector) {
+	if (o[symb] !== undefined) {
+	    // not the first visit.
+	    o[symb]++;
+	    // unless there is already a number, assign one.
+	    if (!o[symb + "nb"]) o[symb + "nb"] = nbPointer.nb++;
+	    return;
+	}
+	o[symb] = 0;
+	if (o instanceof sc_Pair) {
+	    sc_prepWriteCircle(o.car, symb, nbPointer);
+	    sc_prepWriteCircle(o.cdr, symb, nbPointer);
+	} else {
+	    for (var i = 0; i < o.length; i++)
+		sc_prepWriteCircle(o[i], symb, nbPointer);
+	}
+    }
+}
+
+function sc_genToWriteCircleString(o, symb) {
+    if (!(o instanceof sc_Pair ||
+	  o instanceof sc_Vector))
+	return sc_toWriteString(o);
+    return o.sc_toWriteCircleString(symb);
+}
+sc_Pair.prototype.sc_toWriteCircleString = function(symb, inList) {
+    if (this[symb + "use"]) { // use-flag is set. Just use it.
+	var nb = this[symb + "nb"];
+	if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+	    delete this[symb];
+	    delete this[symb + "nb"];
+	    delete this[symb + "use"];
+	}
+	if (inList)
+	    return '. #' + nb + '#';
+	else
+	    return '#' + nb + '#';
+    }
+    if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+	delete this[symb];
+	delete this[symb + "nb"];
+	delete this[symb + "use"];
+    }
+
+    var res = "";
+
+    if (this[symb] !== undefined) { // implies > 0
+	this[symb + "use"] = true;
+	if (inList)
+	    res += '. #' + this[symb + "nb"] + '=';
+	else
+	    res += '#' + this[symb + "nb"] + '=';
+	inList = false;
+    }
+
+    if (!inList)
+	res += "(";
+
+    // print car
+    res += sc_genToWriteCircleString(this.car, symb);
+
+    if (sc_isPair(this.cdr)) {
+	res += " " + this.cdr.sc_toWriteCircleString(symb, true);
+    } else if (this.cdr !== null) {
+	res += " . " + sc_genToWriteCircleString(this.cdr, symb);
+    }
+    if (!inList)
+	res += ")";
+    return res;
+};
+sc_Vector.prototype.sc_toWriteCircleString = function(symb) {
+    if (this[symb + "use"]) { // use-flag is set. Just use it.
+	var nb = this[symb + "nb"];
+	if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+	    delete this[symb];
+	    delete this[symb + "nb"];
+	    delete this[symb + "use"];
+	}
+	return '#' + nb + '#';
+    }
+    if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+	delete this[symb];
+	delete this[symb + "nb"];
+	delete this[symb + "use"];
+    }
+
+    var res = "";
+    if (this[symb] !== undefined) { // implies > 0
+	this[symb + "use"] = true;
+	res += '#' + this[symb + "nb"] + '=';
+    }
+    res += "#(";
+    for (var i = 0; i < this.length; i++) {
+	res += sc_genToWriteCircleString(this[i], symb);
+	if (i < this.length - 1) res += " ";
+    }
+    res += ")";
+    return res;
+};
+
+
+/* ------------------ print ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_print(s) {
+    if (arguments.length === 1) {
+	sc_display(s);
+	sc_newline();
+    }
+    else {
+	for (var i = 0; i < arguments.length; i++)
+	    sc_display(arguments[i]);
+	sc_newline();
+    }
+}
+
+/* ------------------ format ---------------------------------------------------*/
+/*** META ((export #t)) */
+function sc_format(s, args) {
+   var len = s.length;
+   var p = new sc_StringOutputPort();
+   var i = 0, j = 1;
+
+   while( i < len ) {
+      var i2 = s.indexOf("~", i);
+
+      if (i2 == -1) {
+	  p.appendJSString( s.substring( i, len ) );
+	  return p.close();
+      } else {
+	 if (i2 > i) {
+	    if (i2 == (len - 1)) {
+		p.appendJSString(s.substring(i, len));
+		return p.close();
+	    } else {
+	       p.appendJSString(s.substring(i, i2));
+	       i = i2;
+	    }
+	 }
+
+	 switch(s.charCodeAt(i2 + 1)) {
+	    case 65:
+	    case 97:
+	       // a
+	       sc_display(arguments[j], p);
+	       i += 2; j++;
+	       break;
+
+	    case 83:
+	    case 115:
+	       // s
+	       sc_write(arguments[j], p);
+	       i += 2; j++;
+	       break;
+
+	    case 86:
+	    case 118:
+	       // v
+	       sc_display(arguments[j], p);
+	       p.appendJSString("\n");
+	       i += 2; j++;
+	       break;
+
+	    case 67:
+	    case 99:
+	       // c
+	       p.appendJSString(String.fromCharCode(arguments[j]));
+	       i += 2; j++;
+	       break;
+
+	    case 88:
+	    case 120:
+	       // x
+	       p.appendJSString(arguments[j].toString(6));
+	       i += 2; j++;
+	       break;
+
+	    case 79:
+	    case 111:
+	       // o
+	       p.appendJSString(arguments[j].toString(8));
+	       i += 2; j++;
+	       break;
+
+	    case 66:
+	    case 98:
+	       // b
+	       p.appendJSString(arguments[j].toString(2));
+	       i += 2; j++;
+	       break;
+
+	    case 37:
+	    case 110:
+	       // %, n
+	       p.appendJSString("\n");
+	       i += 2; break;
+
+	    case 114:
+	       // r
+	       p.appendJSString("\r");
+	       i += 2; break;
+
+	    case 126:
+	       // ~
+	       p.appendJSString("~");
+	       i += 2; break;
+
+	    default:
+	       sc_error( "format: illegal ~"
+			 + String.fromCharCode(s.charCodeAt(i2 + 1))
+			 + " sequence" );
+	       return "";
+	 }
+      }
+   }
+
+   return p.close();
+}
+
+/* ------------------ global ports ---------------------------------------------------*/
+
+var SC_DEFAULT_IN = new sc_ErrorInputPort();
+var SC_DEFAULT_OUT = new sc_ErrorOutputPort();
+var SC_ERROR_OUT = new sc_ErrorOutputPort();
+
+var sc_SYMBOL_PREFIX = "\u1E9C";
+var sc_KEYWORD_PREFIX = "\u1E9D";
+
+/*** META ((export #t)
+           (peephole (id))) */
+function sc_jsstring2string(s) {
+    return s;
+}
+
+/*** META ((export #t)
+           (peephole (prefix "'\\u1E9C' +")))
+*/
+function sc_jsstring2symbol(s) {
+    return sc_SYMBOL_PREFIX + s;
+}
+
+/*** META ((export #t)
+           (peephole (id)))
+*/
+function sc_string2jsstring(s) {
+    return s;
+}
+
+/*** META ((export #t)
+           (peephole (symbol2jsstring_immutable)))
+*/
+function sc_symbol2jsstring(s) {
+    return s.slice(1);
+}
+
+/*** META ((export #t)
+           (peephole (postfix ".slice(1)")))
+*/
+function sc_keyword2jsstring(k) {
+    return k.slice(1);
+}
+
+/*** META ((export #t)
+           (peephole (prefix "'\\u1E9D' +")))
+*/
+function sc_jsstring2keyword(s) {
+    return sc_KEYWORD_PREFIX + s;
+}
+
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isKeyword(s) {
+    return (typeof s === "string") &&
+	(s.charAt(0) === sc_KEYWORD_PREFIX);
+}
+
+
+/*** META ((export #t)) */
+var sc_gensym = function() {
+    var counter = 1000;
+    return function(sym) {
+	counter++;
+	if (!sym) sym = sc_SYMBOL_PREFIX;
+	return sym + "s" + counter + "~" + "^sC-GeNsYm ";
+    };
+}();
+
+
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isEqual(o1, o2) {
+    return ((o1 === o2) ||
+	    (sc_isPair(o1) && sc_isPair(o2)
+	     && sc_isPairEqual(o1, o2, sc_isEqual)) ||
+	    (sc_isVector(o1) && sc_isVector(o2)
+	     && sc_isVectorEqual(o1, o2, sc_isEqual)));
+}
+
+/*** META ((export number->symbol integer->symbol)) */
+function sc_number2symbol(x, radix) {
+    return sc_SYMBOL_PREFIX + sc_number2jsstring(x, radix);
+}
+
+/*** META ((export number->string integer->string)) */
+var sc_number2string = sc_number2jsstring;
+
+/*** META ((export #t)) */
+function sc_symbol2number(s, radix) {
+    return sc_jsstring2number(s.slice(1), radix);
+}
+
+/*** META ((export #t)) */
+var sc_string2number = sc_jsstring2number;
+
+/*** META ((export #t)
+           (peephole (prefix "+" s)))
+           ;; peephole will only apply if no radix is given.
+*/
+function sc_string2integer(s, radix) {
+    if (!radix) return +s;
+    return parseInt(s, radix);
+}
+
+/*** META ((export #t)
+           (peephole (prefix "+")))
+*/
+function sc_string2real(s) {
+    return +s;
+}
+
+
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isSymbol(s) {
+    return (typeof s === "string") &&
+	(s.charAt(0) === sc_SYMBOL_PREFIX);
+}
+
+/*** META ((export #t)
+           (peephole (symbol2string_immutable)))
+*/
+function sc_symbol2string(s) {
+    return s.slice(1);
+}
+
+/*** META ((export #t)
+           (peephole (prefix "'\\u1E9C' +")))
+*/
+function sc_string2symbol(s) {
+    return sc_SYMBOL_PREFIX + s;
+}
+
+/*** META ((export symbol-append)
+           (peephole (symbolAppend_immutable)))
+*/
+function sc_symbolAppend() {
+    var res = sc_SYMBOL_PREFIX;
+    for (var i = 0; i < arguments.length; i++)
+	res += arguments[i].slice(1);
+    return res;
+}
+
+/*** META ((export #t)
+           (peephole (postfix ".val")))
+*/
+function sc_char2string(c) { return c.val; }
+
+/*** META ((export #t)
+           (peephole (hole 1 "'\\u1E9C' + " c ".val")))
+*/
+function sc_char2symbol(c) { return sc_SYMBOL_PREFIX + c.val; }
+
+/*** META ((export #t)
+           (type bool))
+*/
+function sc_isString(s) {
+    return (typeof s === "string") &&
+	(s.charAt(0) !== sc_SYMBOL_PREFIX);
+}
+
+/*** META ((export #t)) */
+var sc_makeString = sc_makejsString;
+
+
+/*** META ((export #t)) */
+function sc_string() {
+    for (var i = 0; i < arguments.length; i++)
+	arguments[i] = arguments[i].val;
+    return "".concat.apply("", arguments);
+}
+
+/*** META ((export #t)
+           (peephole (postfix ".length")))
+*/
+function sc_stringLength(s) { return s.length; }
+
+/*** META ((export #t)) */
+function sc_stringRef(s, k) {
+    return new sc_Char(s.charAt(k));
+}
+
+/* there's no stringSet in the immutable version
+function sc_stringSet(s, k, c)
+*/
+
+
+/*** META ((export string=?)
+	   (type bool)
+           (peephole (hole 2 str1 " === " str2)))
+*/
+function sc_isStringEqual(s1, s2) {
+    return s1 === s2;
+}
+/*** META ((export string<?)
+	   (type bool)
+           (peephole (hole 2 str1 " < " str2)))
+*/
+function sc_isStringLess(s1, s2) {
+    return s1 < s2;
+}
+/*** META ((export string>?)
+	   (type bool)
+           (peephole (hole 2 str1 " > " str2)))
+*/
+function sc_isStringGreater(s1, s2) {
+    return s1 > s2;
+}
+/*** META ((export string<=?)
+	   (type bool)
+           (peephole (hole 2 str1 " <= " str2)))
+*/
+function sc_isStringLessEqual(s1, s2) {
+    return s1 <= s2;
+}
+/*** META ((export string>=?)
+	   (type bool)
+           (peephole (hole 2 str1 " >= " str2)))
+*/
+function sc_isStringGreaterEqual(s1, s2) {
+    return s1 >= s2;
+}
+/*** META ((export string-ci=?)
+	   (type bool)
+           (peephole (hole 2 str1 ".toLowerCase() === " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIEqual(s1, s2) {
+    return s1.toLowerCase() === s2.toLowerCase();
+}
+/*** META ((export string-ci<?)
+	   (type bool)
+           (peephole (hole 2 str1 ".toLowerCase() < " str2 ".toLowerCase()")))
+*/
+function sc_isStringCILess(s1, s2) {
+    return s1.toLowerCase() < s2.toLowerCase();
+}
+/*** META ((export string-ci>?)
+	   (type bool)
+           (peephole (hole 2 str1 ".toLowerCase() > " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIGreater(s1, s2) {
+    return s1.toLowerCase() > s2.toLowerCase();
+}
+/*** META ((export string-ci<=?)
+	   (type bool)
+           (peephole (hole 2 str1 ".toLowerCase() <= " str2 ".toLowerCase()")))
+*/
+function sc_isStringCILessEqual(s1, s2) {
+    return s1.toLowerCase() <= s2.toLowerCase();
+}
+/*** META ((export string-ci>=?)
+	   (type bool)
+           (peephole (hole 2 str1 ".toLowerCase() >= " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIGreaterEqual(s1, s2) {
+    return s1.toLowerCase() >= s2.toLowerCase();
+}
+
+/*** META ((export #t)
+           (peephole (hole 3 s ".substring(" start ", " end ")")))
+*/
+function sc_substring(s, start, end) {
+    return s.substring(start, end);
+}
+
+/*** META ((export #t))
+*/
+function sc_isSubstring_at(s1, s2, i) {
+    return s2 == s1.substring(i, i+ s2.length);
+}
+
+/*** META ((export #t)
+           (peephole (infix 0 #f "+" "''")))
+*/
+function sc_stringAppend() {
+    return "".concat.apply("", arguments);
+}
+
+/*** META ((export #t)) */
+var sc_string2list = sc_jsstring2list;
+
+/*** META ((export #t)) */
+var sc_list2string = sc_list2jsstring;
+
+/*** META ((export #t)
+           (peephole (id)))
+*/
+function sc_stringCopy(s) {
+    return s;
+}
+
+/* there's no string-fill in the immutable version
+function sc_stringFill(s, c)
+*/
+
+/*** META ((export #t)
+           (peephole (postfix ".slice(1)")))
+*/
+function sc_keyword2string(o) {
+    return o.slice(1);
+}
+
+/*** META ((export #t)
+           (peephole (prefix "'\\u1E9D' +")))
+*/
+function sc_string2keyword(o) {
+    return sc_KEYWORD_PREFIX + o;
+}
+
+String.prototype.sc_toDisplayString = function() {
+    if (this.charAt(0) === sc_SYMBOL_PREFIX)
+	// TODO: care for symbols with spaces (escape-chars symbols).
+	return this.slice(1);
+    else if (this.charAt(0) === sc_KEYWORD_PREFIX)
+	return ":" + this.slice(1);
+    else
+	return this.toString();
+};
+
+String.prototype.sc_toWriteString = function() {
+    if (this.charAt(0) === sc_SYMBOL_PREFIX)
+	// TODO: care for symbols with spaces (escape-chars symbols).
+	return this.slice(1);
+    else if (this.charAt(0) === sc_KEYWORD_PREFIX)
+	return ":" + this.slice(1);
+    else
+	return '"' + sc_escapeWriteString(this) + '"';
+};
+/* Exported Variables */
+var BgL_testzd2boyerzd2;
+var BgL_nboyerzd2benchmarkzd2;
+var BgL_setupzd2boyerzd2;
+/* End Exports */
+
+var translate_term_nboyer;
+var translate_args_nboyer;
+var untranslate_term_nboyer;
+var BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer;
+var BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer;
+var translate_alist_nboyer;
+var apply_subst_nboyer;
+var apply_subst_lst_nboyer;
+var tautologyp_nboyer;
+var if_constructor_nboyer;
+var rewrite_count_nboyer;
+var rewrite_nboyer;
+var rewrite_args_nboyer;
+var unify_subst_nboyer;
+var one_way_unify1_nboyer;
+var false_term_nboyer;
+var true_term_nboyer;
+var trans_of_implies1_nboyer;
+var is_term_equal_nboyer;
+var is_term_member_nboyer;
+var const_nboyer;
+var sc_const_3_nboyer;
+var sc_const_4_nboyer;
+{
+    (sc_const_4_nboyer = (new sc_Pair("\u1E9Cimplies",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cu",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cw",null)))))),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cw",null)))))),null)))))));
+    (sc_const_3_nboyer = sc_list((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccompile",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Ccodegen",(new sc_Pair((new sc_Pair("\u1E9Coptimize",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreaterp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clesseqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cboolean",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ciff",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceven1",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Codd",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccountps-",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccountps-loop",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfact-",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfact-loop",(new sc_Pair("\u1E9Ci",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdivides",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-true",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-false",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctautology-checker",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctautologyp",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfalsify",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfalsify1",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime1",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair("\u1E9Cp",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))))),(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cc",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cplus-fringe",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair("\u1E9Cenvrn",null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmc-flatten",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cintersect",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Ck",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ck",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Csort-lp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus1",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Ci",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cbase",null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cj",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cj",(new sc_Pair((1),null)))))),null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Ci",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cw",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cz",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnlistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csamefringe",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cz",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cw",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair(sc_list("\u1E9Cand", (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Ca",null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cb",null)))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cl",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cl",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdsort",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx1",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx2",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx3",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx4",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx5",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx6",(new sc_Pair("\u1E9Cx7",null)))))),null)))))),null)))))),null)))))),null)))))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((6),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx7",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cy",(new sc_Pair((2),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csigma",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Ci",null)))),null)))))),(new sc_Pair((2),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cz",null)))),null)))))),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Ca",null)))),null)))),(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Cb",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair("\u1E9Cz",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cassignedp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair((new sc_Pair("\u1E9Cset",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cval",(new sc_Pair("\u1E9Cmem",null)))))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair("\u1E9Cval",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cmem",null)))))),null)))))))),null))))))));
+    (const_nboyer = (new sc_Pair((new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))))),null)))))))))));
+    BgL_nboyerzd2benchmarkzd2 = function() {
+        var args = null;
+        for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) {
+            args = sc_cons(arguments[sc_tmp], args);
+        }
+        var n;
+        return ((n = ((args === null)?(0):(args.car))), (BgL_setupzd2boyerzd2()), (BgL_runzd2benchmarkzd2(("nboyer"+(sc_number2string(n))), (1), function() {
+            return (BgL_testzd2boyerzd2(n));
+        }, function(rewrites) {
+            if ((sc_isNumber(rewrites)))
+                switch (n) {
+                case (0):
+                    return (rewrites===(95024));
+                    break;
+                case (1):
+                    return (rewrites===(591777));
+                    break;
+                case (2):
+                    return (rewrites===(1813975));
+                    break;
+                case (3):
+                    return (rewrites===(5375678));
+                    break;
+                case (4):
+                    return (rewrites===(16445406));
+                    break;
+                case (5):
+                    return (rewrites===(51507739));
+                    break;
+                default:
+                    return true;
+                    break;
+                }
+            else
+                return false;
+        })));
+    };
+    BgL_setupzd2boyerzd2 = function() {
+        return true;
+    };
+    BgL_testzd2boyerzd2 = function() {
+        return true;
+    };
+    translate_term_nboyer = function(term) {
+        var lst;
+        return (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((translate_term_nboyer((lst.car))), (translate_args_nboyer((lst.cdr))))))))));
+    };
+    translate_args_nboyer = function(lst) {
+        var sc_lst_5;
+        var term;
+        return ((lst === null)?null:(new sc_Pair(((term = (lst.car)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))), ((sc_lst_5 = (lst.cdr)), ((sc_lst_5 === null)?null:(new sc_Pair((translate_term_nboyer((sc_lst_5.car))), (translate_args_nboyer((sc_lst_5.cdr))))))))));
+    };
+    untranslate_term_nboyer = function(term) {
+        var optrOpnd;
+        var tail1131;
+        var L1127;
+        var falseHead1130;
+        var symbol_record;
+        if (!(term instanceof sc_Pair))
+            return term;
+        else
+            {
+                (falseHead1130 = (new sc_Pair(null, null)));
+                (L1127 = (term.cdr));
+                (tail1131 = falseHead1130);
+                while (!(L1127 === null)) {
+                    {
+                        (tail1131.cdr = (new sc_Pair((untranslate_term_nboyer((L1127.car))), null)));
+                        (tail1131 = (tail1131.cdr));
+                        (L1127 = (L1127.cdr));
+                    }
+                }
+                (optrOpnd = (falseHead1130.cdr));
+                return (new sc_Pair(((symbol_record = (term.car)), (symbol_record[(0)])), optrOpnd));
+            }
+    };
+    BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer = function(sym) {
+        var r;
+        var x;
+        return ((x = (sc_assq(sym, BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), ((x!== false)?(x.cdr):((r = [sym, null]), (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = (new sc_Pair((new sc_Pair(sym, r)), BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), r)));
+    };
+    (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null);
+    translate_alist_nboyer = function(alist) {
+        var sc_alist_6;
+        var term;
+        return ((alist === null)?null:(new sc_Pair((new sc_Pair((alist.car.car), ((term = (alist.car.cdr)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))))), ((sc_alist_6 = (alist.cdr)), ((sc_alist_6 === null)?null:(new sc_Pair((new sc_Pair((sc_alist_6.car.car), (translate_term_nboyer((sc_alist_6.car.cdr))))), (translate_alist_nboyer((sc_alist_6.cdr))))))))));
+    };
+    apply_subst_nboyer = function(alist, term) {
+        var lst;
+        var temp_temp;
+        return (!(term instanceof sc_Pair)?((temp_temp = (sc_assq(term, alist))), ((temp_temp!== false)?(temp_temp.cdr):term)):(new sc_Pair((term.car), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), (apply_subst_lst_nboyer(alist, (lst.cdr))))))))));
+    };
+    apply_subst_lst_nboyer = function(alist, lst) {
+        var sc_lst_7;
+        return ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), ((sc_lst_7 = (lst.cdr)), ((sc_lst_7 === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (sc_lst_7.car))), (apply_subst_lst_nboyer(alist, (sc_lst_7.cdr))))))))));
+    };
+    tautologyp_nboyer = function(sc_x_11, true_lst, false_lst) {
+        var tmp1125;
+        var x;
+        var tmp1126;
+        var sc_x_8;
+        var sc_tmp1125_9;
+        var sc_tmp1126_10;
+        var sc_x_11;
+        var true_lst;
+        var false_lst;
+        while (true) {
+            if ((((sc_tmp1126_10 = (is_term_equal_nboyer(sc_x_11, true_term_nboyer))), ((sc_tmp1126_10!== false)?sc_tmp1126_10:(is_term_member_nboyer(sc_x_11, true_lst))))!== false))
+                return true;
+            else
+                if ((((sc_tmp1125_9 = (is_term_equal_nboyer(sc_x_11, false_term_nboyer))), ((sc_tmp1125_9!== false)?sc_tmp1125_9:(is_term_member_nboyer(sc_x_11, false_lst))))!== false))
+                    return false;
+                else
+                    if (!(sc_x_11 instanceof sc_Pair))
+                        return false;
+                    else
+                        if (((sc_x_11.car)===if_constructor_nboyer))
+                            if ((((sc_x_8 = (sc_x_11.cdr.car)), (tmp1126 = (is_term_equal_nboyer(sc_x_8, true_term_nboyer))), ((tmp1126!== false)?tmp1126:(is_term_member_nboyer(sc_x_8, true_lst))))!== false))
+                                (sc_x_11 = (sc_x_11.cdr.cdr.car));
+                            else
+                                if ((((x = (sc_x_11.cdr.car)), (tmp1125 = (is_term_equal_nboyer(x, false_term_nboyer))), ((tmp1125!== false)?tmp1125:(is_term_member_nboyer(x, false_lst))))!== false))
+                                    (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car));
+                                else
+                                    if (((tautologyp_nboyer((sc_x_11.cdr.cdr.car), (new sc_Pair((sc_x_11.cdr.car), true_lst)), false_lst))!== false))
+                                        {
+                                            (false_lst = (new sc_Pair((sc_x_11.cdr.car), false_lst)));
+                                            (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car));
+                                        }
+                                    else
+                                        return false;
+                        else
+                            return false;
+        }
+    };
+    (if_constructor_nboyer = "\u1E9C*");
+    (rewrite_count_nboyer = (0));
+    rewrite_nboyer = function(term) {
+        var term2;
+        var sc_term_12;
+        var lst;
+        var symbol_record;
+        var sc_lst_13;
+        {
+            (++rewrite_count_nboyer);
+            if (!(term instanceof sc_Pair))
+                return term;
+            else
+                {
+                    (sc_term_12 = (new sc_Pair((term.car), ((sc_lst_13 = (term.cdr)), ((sc_lst_13 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_13.car))), (rewrite_args_nboyer((sc_lst_13.cdr))))))))));
+                    (lst = ((symbol_record = (term.car)), (symbol_record[(1)])));
+                    while (true) {
+                        if ((lst === null))
+                            return sc_term_12;
+                        else
+                            if ((((term2 = ((lst.car).cdr.car)), (unify_subst_nboyer = null), (one_way_unify1_nboyer(sc_term_12, term2)))!== false))
+                                return (rewrite_nboyer((apply_subst_nboyer(unify_subst_nboyer, ((lst.car).cdr.cdr.car)))));
+                            else
+                                (lst = (lst.cdr));
+                    }
+                }
+        }
+    };
+    rewrite_args_nboyer = function(lst) {
+        var sc_lst_14;
+        return ((lst === null)?null:(new sc_Pair((rewrite_nboyer((lst.car))), ((sc_lst_14 = (lst.cdr)), ((sc_lst_14 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_14.car))), (rewrite_args_nboyer((sc_lst_14.cdr))))))))));
+    };
+    (unify_subst_nboyer = "\u1E9C*");
+    one_way_unify1_nboyer = function(term1, term2) {
+        var lst1;
+        var lst2;
+        var temp_temp;
+        if (!(term2 instanceof sc_Pair))
+            {
+                (temp_temp = (sc_assq(term2, unify_subst_nboyer)));
+                if ((temp_temp!== false))
+                    return (is_term_equal_nboyer(term1, (temp_temp.cdr)));
+                else
+                    if ((sc_isNumber(term2)))
+                        return (sc_isEqual(term1, term2));
+                    else
+                        {
+                            (unify_subst_nboyer = (new sc_Pair((new sc_Pair(term2, term1)), unify_subst_nboyer)));
+                            return true;
+                        }
+            }
+        else
+            if (!(term1 instanceof sc_Pair))
+                return false;
+            else
+                if (((term1.car)===(term2.car)))
+                    {
+                        (lst1 = (term1.cdr));
+                        (lst2 = (term2.cdr));
+                        while (true) {
+                            if ((lst1 === null))
+                                return (lst2 === null);
+                            else
+                                if ((lst2 === null))
+                                    return false;
+                                else
+                                    if (((one_way_unify1_nboyer((lst1.car), (lst2.car)))!== false))
+                                        {
+                                            (lst1 = (lst1.cdr));
+                                            (lst2 = (lst2.cdr));
+                                        }
+                                    else
+                                        return false;
+                        }
+                    }
+                else
+                    return false;
+    };
+    (false_term_nboyer = "\u1E9C*");
+    (true_term_nboyer = "\u1E9C*");
+    trans_of_implies1_nboyer = function(n) {
+        var sc_n_15;
+        return ((sc_isEqual(n, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (n-(1)), n)), ((sc_n_15 = (n-(1))), ((sc_isEqual(sc_n_15, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (sc_n_15-(1)), sc_n_15)), (trans_of_implies1_nboyer((sc_n_15-(1)))))))))));
+    };
+    is_term_equal_nboyer = function(x, y) {
+        var lst1;
+        var lst2;
+        var r2;
+        var r1;
+        if ((x instanceof sc_Pair))
+            if ((y instanceof sc_Pair))
+                if ((((r1 = (x.car)), (r2 = (y.car)), (r1===r2))!== false))
+                    {
+                        (lst1 = (x.cdr));
+                        (lst2 = (y.cdr));
+                        while (true) {
+                            if ((lst1 === null))
+                                return (lst2 === null);
+                            else
+                                if ((lst2 === null))
+                                    return false;
+                                else
+                                    if (((is_term_equal_nboyer((lst1.car), (lst2.car)))!== false))
+                                        {
+                                            (lst1 = (lst1.cdr));
+                                            (lst2 = (lst2.cdr));
+                                        }
+                                    else
+                                        return false;
+                        }
+                    }
+                else
+                    return false;
+            else
+                return false;
+        else
+            return (sc_isEqual(x, y));
+    };
+    is_term_member_nboyer = function(x, lst) {
+        var x;
+        var lst;
+        while (true) {
+            if ((lst === null))
+                return false;
+            else
+                if (((is_term_equal_nboyer(x, (lst.car)))!== false))
+                    return true;
+                else
+                    (lst = (lst.cdr));
+        }
+    };
+    BgL_setupzd2boyerzd2 = function() {
+        var symbol_record;
+        var value;
+        var BgL_sc_symbolzd2record_16zd2;
+        var sym;
+        var sc_sym_17;
+        var term;
+        var lst;
+        var sc_term_18;
+        var sc_term_19;
+        {
+            (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null);
+            (if_constructor_nboyer = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer("\u1E9Cif")));
+            (false_term_nboyer = ((sc_term_19 = (new sc_Pair("\u1E9Cf",null))), (!(sc_term_19 instanceof sc_Pair)?sc_term_19:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_19.car))), (translate_args_nboyer((sc_term_19.cdr))))))));
+            (true_term_nboyer = ((sc_term_18 = (new sc_Pair("\u1E9Ct",null))), (!(sc_term_18 instanceof sc_Pair)?sc_term_18:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_18.car))), (translate_args_nboyer((sc_term_18.cdr))))))));
+            (lst = sc_const_3_nboyer);
+            while (!(lst === null)) {
+                {
+                    (term = (lst.car));
+                    if (((term instanceof sc_Pair)&&(((term.car)==="\u1E9Cequal")&&((term.cdr.car) instanceof sc_Pair))))
+                        {
+                            (sc_sym_17 = ((term.cdr.car).car));
+                            (value = (new sc_Pair((!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr)))))), ((sym = ((term.cdr.car).car)), (BgL_sc_symbolzd2record_16zd2 = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sym))), (BgL_sc_symbolzd2record_16zd2[(1)])))));
+                            (symbol_record = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sc_sym_17)));
+                            (symbol_record[(1)] = value);
+                        }
+                    else
+                        (sc_error("ADD-LEMMA did not like term:  ", term));
+                    (lst = (lst.cdr));
+                }
+            }
+            return true;
+        }
+    };
+    BgL_testzd2boyerzd2 = function(n) {
+        var optrOpnd;
+        var term;
+        var sc_n_20;
+        var answer;
+        var sc_term_21;
+        var sc_term_22;
+        {
+            (rewrite_count_nboyer = (0));
+            (term = sc_const_4_nboyer);
+            (sc_n_20 = n);
+            while (!(sc_n_20=== 0)) {
+                {
+                    (term = (sc_list("\u1E9Cor", term, (new sc_Pair("\u1E9Cf",null)))));
+                    (--sc_n_20);
+                }
+            }
+            (sc_term_22 = term);
+            if (!(sc_term_22 instanceof sc_Pair))
+                (optrOpnd = sc_term_22);
+            else
+                (optrOpnd = (new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_22.car))), (translate_args_nboyer((sc_term_22.cdr))))));
+            (sc_term_21 = (apply_subst_nboyer(((const_nboyer === null)?null:(new sc_Pair((new sc_Pair((const_nboyer.car.car), (translate_term_nboyer((const_nboyer.car.cdr))))), (translate_alist_nboyer((const_nboyer.cdr)))))), optrOpnd)));
+            (answer = (tautologyp_nboyer((rewrite_nboyer(sc_term_21)), null, null)));
+            (sc_write(rewrite_count_nboyer));
+            (sc_display(" rewrites"));
+            (sc_newline());
+            if ((answer!== false))
+                return rewrite_count_nboyer;
+            else
+                return false;
+        }
+    };
+}
+/* Exported Variables */
+var BgL_parsezd2ze3nbzd2treesze3;
+var BgL_earleyzd2benchmarkzd2;
+var BgL_parsezd2ze3parsedzf3zc2;
+var test;
+var BgL_parsezd2ze3treesz31;
+var BgL_makezd2parserzd2;
+/* End Exports */
+
+var const_earley;
+{
+    (const_earley = (new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair((new sc_Pair("\u1E9Ca",null)),(new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair("\u1E9Cs",null)))),null)))))),null)));
+    BgL_makezd2parserzd2 = function(grammar, lexer) {
+        var i;
+        var parser_descr;
+        var def_loop;
+        var nb_nts;
+        var names;
+        var steps;
+        var predictors;
+        var enders;
+        var starters;
+        var nts;
+        var sc_names_1;
+        var sc_steps_2;
+        var sc_predictors_3;
+        var sc_enders_4;
+        var sc_starters_5;
+        var nb_confs;
+        var BgL_sc_defzd2loop_6zd2;
+        var BgL_sc_nbzd2nts_7zd2;
+        var sc_nts_8;
+        var BgL_sc_defzd2loop_9zd2;
+        var ind;
+        {
+            ind = function(nt, sc_nts_10) {
+                var i;
+                {
+                    (i = ((sc_nts_10.length)-(1)));
+                    while (true) {
+                        if ((i>=(0)))
+                            if ((sc_isEqual((sc_nts_10[i]), nt)))
+                                return i;
+                            else
+                                (--i);
+                        else
+                            return false;
+                    }
+                }
+            };
+            (sc_nts_8 = ((BgL_sc_defzd2loop_9zd2 = function(defs, sc_nts_11) {
+                var rule_loop;
+                var head;
+                var def;
+                return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, sc_nts_12) {
+                    var nt;
+                    var l;
+                    var sc_nts_13;
+                    var rule;
+                    if ((rules instanceof sc_Pair))
+                        {
+                            (rule = (rules.car));
+                            (l = rule);
+                            (sc_nts_13 = sc_nts_12);
+                            while ((l instanceof sc_Pair)) {
+                                {
+                                    (nt = (l.car));
+                                    (l = (l.cdr));
+                                    (sc_nts_13 = (((sc_member(nt, sc_nts_13))!== false)?sc_nts_13:(new sc_Pair(nt, sc_nts_13))));
+                                }
+                            }
+                            return (rule_loop((rules.cdr), sc_nts_13));
+                        }
+                    else
+                        return (BgL_sc_defzd2loop_9zd2((defs.cdr), sc_nts_12));
+                }), (rule_loop((def.cdr), (((sc_member(head, sc_nts_11))!== false)?sc_nts_11:(new sc_Pair(head, sc_nts_11)))))):(sc_list2vector((sc_reverse(sc_nts_11)))));
+            }), (BgL_sc_defzd2loop_9zd2(grammar, null))));
+            (BgL_sc_nbzd2nts_7zd2 = (sc_nts_8.length));
+            (nb_confs = (((BgL_sc_defzd2loop_6zd2 = function(defs, BgL_sc_nbzd2confs_14zd2) {
+                var rule_loop;
+                var def;
+                return ((defs instanceof sc_Pair)?((def = (defs.car)), (rule_loop = function(rules, BgL_sc_nbzd2confs_15zd2) {
+                    var l;
+                    var BgL_sc_nbzd2confs_16zd2;
+                    var rule;
+                    if ((rules instanceof sc_Pair))
+                        {
+                            (rule = (rules.car));
+                            (l = rule);
+                            (BgL_sc_nbzd2confs_16zd2 = BgL_sc_nbzd2confs_15zd2);
+                            while ((l instanceof sc_Pair)) {
+                                {
+                                    (l = (l.cdr));
+                                    (++BgL_sc_nbzd2confs_16zd2);
+                                }
+                            }
+                            return (rule_loop((rules.cdr), (BgL_sc_nbzd2confs_16zd2+(1))));
+                        }
+                    else
+                        return (BgL_sc_defzd2loop_6zd2((defs.cdr), BgL_sc_nbzd2confs_15zd2));
+                }), (rule_loop((def.cdr), BgL_sc_nbzd2confs_14zd2))):BgL_sc_nbzd2confs_14zd2);
+            }), (BgL_sc_defzd2loop_6zd2(grammar, (0))))+BgL_sc_nbzd2nts_7zd2));
+            (sc_starters_5 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+            (sc_enders_4 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+            (sc_predictors_3 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+            (sc_steps_2 = (sc_makeVector(nb_confs, false)));
+            (sc_names_1 = (sc_makeVector(nb_confs, false)));
+            (nts = sc_nts_8);
+            (starters = sc_starters_5);
+            (enders = sc_enders_4);
+            (predictors = sc_predictors_3);
+            (steps = sc_steps_2);
+            (names = sc_names_1);
+            (nb_nts = (sc_nts_8.length));
+            (i = (nb_nts-(1)));
+            while ((i>=(0))) {
+                {
+                    (sc_steps_2[i] = (i-nb_nts));
+                    (sc_names_1[i] = (sc_list((sc_nts_8[i]), (0))));
+                    (sc_enders_4[i] = (sc_list(i)));
+                    (--i);
+                }
+            }
+            def_loop = function(defs, conf) {
+                var rule_loop;
+                var head;
+                var def;
+                return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, conf, rule_num) {
+                    var i;
+                    var sc_i_17;
+                    var nt;
+                    var l;
+                    var sc_conf_18;
+                    var sc_i_19;
+                    var rule;
+                    if ((rules instanceof sc_Pair))
+                        {
+                            (rule = (rules.car));
+                            (names[conf] = (sc_list(head, rule_num)));
+                            (sc_i_19 = (ind(head, nts)));
+                            (starters[sc_i_19] = (new sc_Pair(conf, (starters[sc_i_19]))));
+                            (l = rule);
+                            (sc_conf_18 = conf);
+                            while ((l instanceof sc_Pair)) {
+                                {
+                                    (nt = (l.car));
+                                    (steps[sc_conf_18] = (ind(nt, nts)));
+                                    (sc_i_17 = (ind(nt, nts)));
+                                    (predictors[sc_i_17] = (new sc_Pair(sc_conf_18, (predictors[sc_i_17]))));
+                                    (l = (l.cdr));
+                                    (++sc_conf_18);
+                                }
+                            }
+                            (steps[sc_conf_18] = ((ind(head, nts))-nb_nts));
+                            (i = (ind(head, nts)));
+                            (enders[i] = (new sc_Pair(sc_conf_18, (enders[i]))));
+                            return (rule_loop((rules.cdr), (sc_conf_18+(1)), (rule_num+(1))));
+                        }
+                    else
+                        return (def_loop((defs.cdr), conf));
+                }), (rule_loop((def.cdr), conf, (1)))):undefined);
+            };
+            (def_loop(grammar, (sc_nts_8.length)));
+            (parser_descr = [lexer, sc_nts_8, sc_starters_5, sc_enders_4, sc_predictors_3, sc_steps_2, sc_names_1]);
+            return function(input) {
+                var optrOpnd;
+                var sc_optrOpnd_20;
+                var sc_optrOpnd_21;
+                var sc_optrOpnd_22;
+                var loop1;
+                var BgL_sc_stateza2_23za2;
+                var toks;
+                var BgL_sc_nbzd2nts_24zd2;
+                var sc_steps_25;
+                var sc_enders_26;
+                var state_num;
+                var BgL_sc_statesza2_27za2;
+                var states;
+                var i;
+                var conf;
+                var l;
+                var tok_nts;
+                var sc_i_28;
+                var sc_i_29;
+                var l1;
+                var l2;
+                var tok;
+                var tail1129;
+                var L1125;
+                var goal_enders;
+                var BgL_sc_statesza2_30za2;
+                var BgL_sc_nbzd2nts_31zd2;
+                var BgL_sc_nbzd2confs_32zd2;
+                var nb_toks;
+                var goal_starters;
+                var sc_states_33;
+                var BgL_sc_nbzd2confs_34zd2;
+                var BgL_sc_nbzd2toks_35zd2;
+                var sc_toks_36;
+                var falseHead1128;
+                var sc_names_37;
+                var sc_steps_38;
+                var sc_predictors_39;
+                var sc_enders_40;
+                var sc_starters_41;
+                var sc_nts_42;
+                var lexer;
+                var sc_ind_43;
+                var make_states;
+                var BgL_sc_confzd2setzd2getza2_44za2;
+                var conf_set_merge_new_bang;
+                var conf_set_adjoin;
+                var BgL_sc_confzd2setzd2adjoinza2_45za2;
+                var BgL_sc_confzd2setzd2adjoinza2za2_46z00;
+                var conf_set_union;
+                var forw;
+                var is_parsed;
+                var deriv_trees;
+                var BgL_sc_derivzd2treesza2_47z70;
+                var nb_deriv_trees;
+                var BgL_sc_nbzd2derivzd2treesza2_48za2;
+                {
+                    sc_ind_43 = function(nt, sc_nts_49) {
+                        var i;
+                        {
+                            (i = ((sc_nts_49.length)-(1)));
+                            while (true) {
+                                if ((i>=(0)))
+                                    if ((sc_isEqual((sc_nts_49[i]), nt)))
+                                        return i;
+                                    else
+                                        (--i);
+                                else
+                                    return false;
+                            }
+                        }
+                    };
+                    make_states = function(BgL_sc_nbzd2toks_50zd2, BgL_sc_nbzd2confs_51zd2) {
+                        var v;
+                        var i;
+                        var sc_states_52;
+                        {
+                            (sc_states_52 = (sc_makeVector((BgL_sc_nbzd2toks_50zd2+(1)), false)));
+                            (i = BgL_sc_nbzd2toks_50zd2);
+                            while ((i>=(0))) {
+                                {
+                                    (v = (sc_makeVector((BgL_sc_nbzd2confs_51zd2+(1)), false)));
+                                    (v[(0)] = (-1));
+                                    (sc_states_52[i] = v);
+                                    (--i);
+                                }
+                            }
+                            return sc_states_52;
+                        }
+                    };
+                    BgL_sc_confzd2setzd2getza2_44za2 = function(state, BgL_sc_statezd2num_53zd2, sc_conf_54) {
+                        var conf_set;
+                        var BgL_sc_confzd2set_55zd2;
+                        return ((BgL_sc_confzd2set_55zd2 = (state[(sc_conf_54+(1))])), ((BgL_sc_confzd2set_55zd2!== false)?BgL_sc_confzd2set_55zd2:((conf_set = (sc_makeVector((BgL_sc_statezd2num_53zd2+(6)), false))), (conf_set[(1)] = (-3)), (conf_set[(2)] = (-1)), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1)), (state[(sc_conf_54+(1))] = conf_set), conf_set)));
+                    };
+                    conf_set_merge_new_bang = function(conf_set) {
+                        return ((conf_set[((conf_set[(1)])+(5))] = (conf_set[(4)])), (conf_set[(1)] = (conf_set[(3)])), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1)));
+                    };
+                    conf_set_adjoin = function(state, conf_set, sc_conf_56, i) {
+                        var tail;
+                        return ((tail = (conf_set[(3)])), (conf_set[(i+(5))] = (-1)), (conf_set[(tail+(5))] = i), (conf_set[(3)] = i), ((tail<(0))?((conf_set[(0)] = (state[(0)])), (state[(0)] = sc_conf_56)):undefined));
+                    };
+                    BgL_sc_confzd2setzd2adjoinza2_45za2 = function(sc_states_57, BgL_sc_statezd2num_58zd2, l, i) {
+                        var conf_set;
+                        var sc_conf_59;
+                        var l1;
+                        var state;
+                        {
+                            (state = (sc_states_57[BgL_sc_statezd2num_58zd2]));
+                            (l1 = l);
+                            while ((l1 instanceof sc_Pair)) {
+                                {
+                                    (sc_conf_59 = (l1.car));
+                                    (conf_set = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_58zd2, sc_conf_59)));
+                                    if (((conf_set[(i+(5))])=== false))
+                                        {
+                                            (conf_set_adjoin(state, conf_set, sc_conf_59, i));
+                                            (l1 = (l1.cdr));
+                                        }
+                                    else
+                                        (l1 = (l1.cdr));
+                                }
+                            }
+                            return undefined;
+                        }
+                    };
+                    BgL_sc_confzd2setzd2adjoinza2za2_46z00 = function(sc_states_60, BgL_sc_statesza2_61za2, BgL_sc_statezd2num_62zd2, sc_conf_63, i) {
+                        var BgL_sc_confzd2setza2_64z70;
+                        var BgL_sc_stateza2_65za2;
+                        var conf_set;
+                        var state;
+                        return ((state = (sc_states_60[BgL_sc_statezd2num_62zd2])), ((((conf_set = (state[(sc_conf_63+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)?((BgL_sc_stateza2_65za2 = (BgL_sc_statesza2_61za2[BgL_sc_statezd2num_62zd2])), (BgL_sc_confzd2setza2_64z70 = (BgL_sc_confzd2setzd2getza2_44za2(BgL_sc_stateza2_65za2, BgL_sc_statezd2num_62zd2, sc_conf_63))), (((BgL_sc_confzd2setza2_64z70[(i+(5))])=== false)?(conf_set_adjoin(BgL_sc_stateza2_65za2, BgL_sc_confzd2setza2_64z70, sc_conf_63, i)):undefined), true):false));
+                    };
+                    conf_set_union = function(state, conf_set, sc_conf_66, other_set) {
+                        var i;
+                        {
+                            (i = (other_set[(2)]));
+                            while ((i>=(0))) {
+                                if (((conf_set[(i+(5))])=== false))
+                                    {
+                                        (conf_set_adjoin(state, conf_set, sc_conf_66, i));
+                                        (i = (other_set[(i+(5))]));
+                                    }
+                                else
+                                    (i = (other_set[(i+(5))]));
+                            }
+                            return undefined;
+                        }
+                    };
+                    forw = function(sc_states_67, BgL_sc_statezd2num_68zd2, sc_starters_69, sc_enders_70, sc_predictors_71, sc_steps_72, sc_nts_73) {
+                        var next_set;
+                        var next;
+                        var conf_set;
+                        var ender;
+                        var l;
+                        var starter_set;
+                        var starter;
+                        var sc_l_74;
+                        var sc_loop1_75;
+                        var head;
+                        var BgL_sc_confzd2set_76zd2;
+                        var BgL_sc_statezd2num_77zd2;
+                        var state;
+                        var sc_states_78;
+                        var preds;
+                        var BgL_sc_confzd2set_79zd2;
+                        var step;
+                        var sc_conf_80;
+                        var BgL_sc_nbzd2nts_81zd2;
+                        var sc_state_82;
+                        {
+                            (sc_state_82 = (sc_states_67[BgL_sc_statezd2num_68zd2]));
+                            (BgL_sc_nbzd2nts_81zd2 = (sc_nts_73.length));
+                            while (true) {
+                                {
+                                    (sc_conf_80 = (sc_state_82[(0)]));
+                                    if ((sc_conf_80>=(0)))
+                                        {
+                                            (step = (sc_steps_72[sc_conf_80]));
+                                            (BgL_sc_confzd2set_79zd2 = (sc_state_82[(sc_conf_80+(1))]));
+                                            (head = (BgL_sc_confzd2set_79zd2[(4)]));
+                                            (sc_state_82[(0)] = (BgL_sc_confzd2set_79zd2[(0)]));
+                                            (conf_set_merge_new_bang(BgL_sc_confzd2set_79zd2));
+                                            if ((step>=(0)))
+                                                {
+                                                    (sc_l_74 = (sc_starters_69[step]));
+                                                    while ((sc_l_74 instanceof sc_Pair)) {
+                                                        {
+                                                            (starter = (sc_l_74.car));
+                                                            (starter_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, starter)));
+                                                            if (((starter_set[(BgL_sc_statezd2num_68zd2+(5))])=== false))
+                                                                {
+                                                                    (conf_set_adjoin(sc_state_82, starter_set, starter, BgL_sc_statezd2num_68zd2));
+                                                                    (sc_l_74 = (sc_l_74.cdr));
+                                                                }
+                                                            else
+                                                                (sc_l_74 = (sc_l_74.cdr));
+                                                        }
+                                                    }
+                                                    (l = (sc_enders_70[step]));
+                                                    while ((l instanceof sc_Pair)) {
+                                                        {
+                                                            (ender = (l.car));
+                                                            if ((((conf_set = (sc_state_82[(ender+(1))])), ((conf_set!== false)?(conf_set[(BgL_sc_statezd2num_68zd2+(5))]):false))!== false))
+                                                                {
+                                                                    (next = (sc_conf_80+(1)));
+                                                                    (next_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, next)));
+                                                                    (conf_set_union(sc_state_82, next_set, next, BgL_sc_confzd2set_79zd2));
+                                                                    (l = (l.cdr));
+                                                                }
+                                                            else
+                                                                (l = (l.cdr));
+                                                        }
+                                                    }
+                                                }
+                                            else
+                                                {
+                                                    (preds = (sc_predictors_71[(step+BgL_sc_nbzd2nts_81zd2)]));
+                                                    (sc_states_78 = sc_states_67);
+                                                    (state = sc_state_82);
+                                                    (BgL_sc_statezd2num_77zd2 = BgL_sc_statezd2num_68zd2);
+                                                    (BgL_sc_confzd2set_76zd2 = BgL_sc_confzd2set_79zd2);
+                                                    sc_loop1_75 = function(l) {
+                                                        var sc_state_83;
+                                                        var BgL_sc_nextzd2set_84zd2;
+                                                        var sc_next_85;
+                                                        var pred_set;
+                                                        var i;
+                                                        var pred;
+                                                        if ((l instanceof sc_Pair))
+                                                            {
+                                                                (pred = (l.car));
+                                                                (i = head);
+                                                                while ((i>=(0))) {
+                                                                    {
+                                                                        (pred_set = ((sc_state_83 = (sc_states_78[i])), (sc_state_83[(pred+(1))])));
+                                                                        if ((pred_set!== false))
+                                                                            {
+                                                                                (sc_next_85 = (pred+(1)));
+                                                                                (BgL_sc_nextzd2set_84zd2 = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_77zd2, sc_next_85)));
+                                                                                (conf_set_union(state, BgL_sc_nextzd2set_84zd2, sc_next_85, pred_set));
+                                                                            }
+                                                                        (i = (BgL_sc_confzd2set_76zd2[(i+(5))]));
+                                                                    }
+                                                                }
+                                                                return (sc_loop1_75((l.cdr)));
+                                                            }
+                                                        else
+                                                            return undefined;
+                                                    };
+                                                    (sc_loop1_75(preds));
+                                                }
+                                        }
+                                    else
+                                        return undefined;
+                                }
+                            }
+                        }
+                    };
+                    is_parsed = function(nt, i, j, sc_nts_86, sc_enders_87, sc_states_88) {
+                        var conf_set;
+                        var state;
+                        var sc_conf_89;
+                        var l;
+                        var BgL_sc_ntza2_90za2;
+                        {
+                            (BgL_sc_ntza2_90za2 = (sc_ind_43(nt, sc_nts_86)));
+                            if ((BgL_sc_ntza2_90za2!== false))
+                                {
+                                    (sc_nts_86.length);
+                                    (l = (sc_enders_87[BgL_sc_ntza2_90za2]));
+                                    while (true) {
+                                        if ((l instanceof sc_Pair))
+                                            {
+                                                (sc_conf_89 = (l.car));
+                                                if ((((state = (sc_states_88[j])), (conf_set = (state[(sc_conf_89+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+                                                    return true;
+                                                else
+                                                    (l = (l.cdr));
+                                            }
+                                        else
+                                            return false;
+                                    }
+                                }
+                            else
+                                return false;
+                        }
+                    };
+                    deriv_trees = function(sc_conf_91, i, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2) {
+                        var sc_loop1_98;
+                        var prev;
+                        var name;
+                        return ((name = (sc_names_94[sc_conf_91])), ((name!== false)?((sc_conf_91<BgL_sc_nbzd2nts_97zd2)?(sc_list((sc_list(name, ((sc_toks_95[i]).car))))):(sc_list((sc_list(name))))):((prev = (sc_conf_91-(1))), (sc_loop1_98 = function(l1, l2) {
+                            var loop2;
+                            var ender_set;
+                            var state;
+                            var ender;
+                            var l1;
+                            var l2;
+                            while (true) {
+                                if ((l1 instanceof sc_Pair))
+                                    {
+                                        (ender = (l1.car));
+                                        (ender_set = ((state = (sc_states_96[j])), (state[(ender+(1))])));
+                                        if ((ender_set!== false))
+                                            {
+                                                loop2 = function(k, l2) {
+                                                    var loop3;
+                                                    var ender_trees;
+                                                    var prev_trees;
+                                                    var conf_set;
+                                                    var sc_state_99;
+                                                    var k;
+                                                    var l2;
+                                                    while (true) {
+                                                        if ((k>=(0)))
+                                                            if (((k>=i)&&(((sc_state_99 = (sc_states_96[k])), (conf_set = (sc_state_99[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)))
+                                                                {
+                                                                    (prev_trees = (deriv_trees(prev, i, k, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2)));
+                                                                    (ender_trees = (deriv_trees(ender, k, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2)));
+                                                                    loop3 = function(l3, l2) {
+                                                                        var l4;
+                                                                        var sc_l2_100;
+                                                                        var ender_tree;
+                                                                        if ((l3 instanceof sc_Pair))
+                                                                            {
+                                                                                (ender_tree = (sc_list((l3.car))));
+                                                                                (l4 = prev_trees);
+                                                                                (sc_l2_100 = l2);
+                                                                                while ((l4 instanceof sc_Pair)) {
+                                                                                    {
+                                                                                        (sc_l2_100 = (new sc_Pair((sc_append((l4.car), ender_tree)), sc_l2_100)));
+                                                                                        (l4 = (l4.cdr));
+                                                                                    }
+                                                                                }
+                                                                                return (loop3((l3.cdr), sc_l2_100));
+                                                                            }
+                                                                        else
+                                                                            return (loop2((ender_set[(k+(5))]), l2));
+                                                                    };
+                                                                    return (loop3(ender_trees, l2));
+                                                                }
+                                                            else
+                                                                (k = (ender_set[(k+(5))]));
+                                                        else
+                                                            return (sc_loop1_98((l1.cdr), l2));
+                                                    }
+                                                };
+                                                return (loop2((ender_set[(2)]), l2));
+                                            }
+                                        else
+                                            (l1 = (l1.cdr));
+                                    }
+                                else
+                                    return l2;
+                            }
+                        }), (sc_loop1_98((sc_enders_92[(sc_steps_93[prev])]), null)))));
+                    };
+                    BgL_sc_derivzd2treesza2_47z70 = function(nt, i, j, sc_nts_101, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106) {
+                        var conf_set;
+                        var state;
+                        var sc_conf_107;
+                        var l;
+                        var trees;
+                        var BgL_sc_nbzd2nts_108zd2;
+                        var BgL_sc_ntza2_109za2;
+                        {
+                            (BgL_sc_ntza2_109za2 = (sc_ind_43(nt, sc_nts_101)));
+                            if ((BgL_sc_ntza2_109za2!== false))
+                                {
+                                    (BgL_sc_nbzd2nts_108zd2 = (sc_nts_101.length));
+                                    (l = (sc_enders_102[BgL_sc_ntza2_109za2]));
+                                    (trees = null);
+                                    while ((l instanceof sc_Pair)) {
+                                        {
+                                            (sc_conf_107 = (l.car));
+                                            if ((((state = (sc_states_106[j])), (conf_set = (state[(sc_conf_107+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+                                                {
+                                                    (l = (l.cdr));
+                                                    (trees = (sc_append((deriv_trees(sc_conf_107, i, j, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106, BgL_sc_nbzd2nts_108zd2)), trees)));
+                                                }
+                                            else
+                                                (l = (l.cdr));
+                                        }
+                                    }
+                                    return trees;
+                                }
+                            else
+                                return false;
+                        }
+                    };
+                    nb_deriv_trees = function(sc_conf_110, i, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2) {
+                        var sc_loop1_116;
+                        var tmp1124;
+                        var prev;
+                        return ((prev = (sc_conf_110-(1))), ((((tmp1124 = (sc_conf_110<BgL_sc_nbzd2nts_115zd2)), ((tmp1124!== false)?tmp1124:((sc_steps_112[prev])<(0))))!== false)?(1):((sc_loop1_116 = function(l, sc_n_118) {
+                            var nb_ender_trees;
+                            var nb_prev_trees;
+                            var conf_set;
+                            var state;
+                            var k;
+                            var n;
+                            var ender_set;
+                            var sc_state_117;
+                            var ender;
+                            var l;
+                            var sc_n_118;
+                            while (true) {
+                                if ((l instanceof sc_Pair))
+                                    {
+                                        (ender = (l.car));
+                                        (ender_set = ((sc_state_117 = (sc_states_114[j])), (sc_state_117[(ender+(1))])));
+                                        if ((ender_set!== false))
+                                            {
+                                                (k = (ender_set[(2)]));
+                                                (n = sc_n_118);
+                                                while ((k>=(0))) {
+                                                    if (((k>=i)&&(((state = (sc_states_114[k])), (conf_set = (state[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)))
+                                                        {
+                                                            (nb_prev_trees = (nb_deriv_trees(prev, i, k, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2)));
+                                                            (nb_ender_trees = (nb_deriv_trees(ender, k, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2)));
+                                                            (k = (ender_set[(k+(5))]));
+                                                            (n +=(nb_prev_trees*nb_ender_trees));
+                                                        }
+                                                    else
+                                                        (k = (ender_set[(k+(5))]));
+                                                }
+                                                return (sc_loop1_116((l.cdr), n));
+                                            }
+                                        else
+                                            (l = (l.cdr));
+                                    }
+                                else
+                                    return sc_n_118;
+                            }
+                        }), (sc_loop1_116((sc_enders_111[(sc_steps_112[prev])]), (0))))));
+                    };
+                    BgL_sc_nbzd2derivzd2treesza2_48za2 = function(nt, i, j, sc_nts_119, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123) {
+                        var conf_set;
+                        var state;
+                        var sc_conf_124;
+                        var l;
+                        var nb_trees;
+                        var BgL_sc_nbzd2nts_125zd2;
+                        var BgL_sc_ntza2_126za2;
+                        {
+                            (BgL_sc_ntza2_126za2 = (sc_ind_43(nt, sc_nts_119)));
+                            if ((BgL_sc_ntza2_126za2!== false))
+                                {
+                                    (BgL_sc_nbzd2nts_125zd2 = (sc_nts_119.length));
+                                    (l = (sc_enders_120[BgL_sc_ntza2_126za2]));
+                                    (nb_trees = (0));
+                                    while ((l instanceof sc_Pair)) {
+                                        {
+                                            (sc_conf_124 = (l.car));
+                                            if ((((state = (sc_states_123[j])), (conf_set = (state[(sc_conf_124+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+                                                {
+                                                    (l = (l.cdr));
+                                                    (nb_trees = ((nb_deriv_trees(sc_conf_124, i, j, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123, BgL_sc_nbzd2nts_125zd2))+nb_trees));
+                                                }
+                                            else
+                                                (l = (l.cdr));
+                                        }
+                                    }
+                                    return nb_trees;
+                                }
+                            else
+                                return false;
+                        }
+                    };
+                    (lexer = (parser_descr[(0)]));
+                    (sc_nts_42 = (parser_descr[(1)]));
+                    (sc_starters_41 = (parser_descr[(2)]));
+                    (sc_enders_40 = (parser_descr[(3)]));
+                    (sc_predictors_39 = (parser_descr[(4)]));
+                    (sc_steps_38 = (parser_descr[(5)]));
+                    (sc_names_37 = (parser_descr[(6)]));
+                    (falseHead1128 = (new sc_Pair(null, null)));
+                    (L1125 = (lexer(input)));
+                    (tail1129 = falseHead1128);
+                    while (!(L1125 === null)) {
+                        {
+                            (tok = (L1125.car));
+                            (l1 = (tok.cdr));
+                            (l2 = null);
+                            while ((l1 instanceof sc_Pair)) {
+                                {
+                                    (sc_i_29 = (sc_ind_43((l1.car), sc_nts_42)));
+                                    if ((sc_i_29!== false))
+                                        {
+                                            (l1 = (l1.cdr));
+                                            (l2 = (new sc_Pair(sc_i_29, l2)));
+                                        }
+                                    else
+                                        (l1 = (l1.cdr));
+                                }
+                            }
+                            (sc_optrOpnd_22 = (new sc_Pair((tok.car), (sc_reverse(l2)))));
+                            (sc_optrOpnd_21 = (new sc_Pair(sc_optrOpnd_22, null)));
+                            (tail1129.cdr = sc_optrOpnd_21);
+                            (tail1129 = (tail1129.cdr));
+                            (L1125 = (L1125.cdr));
+                        }
+                    }
+                    (sc_optrOpnd_20 = (falseHead1128.cdr));
+                    (sc_toks_36 = (sc_list2vector(sc_optrOpnd_20)));
+                    (BgL_sc_nbzd2toks_35zd2 = (sc_toks_36.length));
+                    (BgL_sc_nbzd2confs_34zd2 = (sc_steps_38.length));
+                    (sc_states_33 = (make_states(BgL_sc_nbzd2toks_35zd2, BgL_sc_nbzd2confs_34zd2)));
+                    (goal_starters = (sc_starters_41[(0)]));
+                    (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (0), goal_starters, (0)));
+                    (forw(sc_states_33, (0), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42));
+                    (sc_i_28 = (0));
+                    while ((sc_i_28<BgL_sc_nbzd2toks_35zd2)) {
+                        {
+                            (tok_nts = ((sc_toks_36[sc_i_28]).cdr));
+                            (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (sc_i_28+(1)), tok_nts, sc_i_28));
+                            (forw(sc_states_33, (sc_i_28+(1)), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42));
+                            (++sc_i_28);
+                        }
+                    }
+                    (nb_toks = (sc_toks_36.length));
+                    (BgL_sc_nbzd2confs_32zd2 = (sc_steps_38.length));
+                    (BgL_sc_nbzd2nts_31zd2 = (sc_nts_42.length));
+                    (BgL_sc_statesza2_30za2 = (make_states(nb_toks, BgL_sc_nbzd2confs_32zd2)));
+                    (goal_enders = (sc_enders_40[(0)]));
+                    (l = goal_enders);
+                    while ((l instanceof sc_Pair)) {
+                        {
+                            (conf = (l.car));
+                            (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_33, BgL_sc_statesza2_30za2, nb_toks, conf, (0)));
+                            (l = (l.cdr));
+                        }
+                    }
+                    (i = nb_toks);
+                    while ((i>=(0))) {
+                        {
+                            (states = sc_states_33);
+                            (BgL_sc_statesza2_27za2 = BgL_sc_statesza2_30za2);
+                            (state_num = i);
+                            (sc_enders_26 = sc_enders_40);
+                            (sc_steps_25 = sc_steps_38);
+                            (BgL_sc_nbzd2nts_24zd2 = BgL_sc_nbzd2nts_31zd2);
+                            (toks = sc_toks_36);
+                            (BgL_sc_stateza2_23za2 = (BgL_sc_statesza2_30za2[i]));
+                            loop1 = function() {
+                                var sc_loop1_127;
+                                var prev;
+                                var BgL_sc_statesza2_128za2;
+                                var sc_states_129;
+                                var j;
+                                var i;
+                                var sc_i_130;
+                                var head;
+                                var conf_set;
+                                var sc_conf_131;
+                                {
+                                    (sc_conf_131 = (BgL_sc_stateza2_23za2[(0)]));
+                                    if ((sc_conf_131>=(0)))
+                                        {
+                                            (conf_set = (BgL_sc_stateza2_23za2[(sc_conf_131+(1))]));
+                                            (head = (conf_set[(4)]));
+                                            (BgL_sc_stateza2_23za2[(0)] = (conf_set[(0)]));
+                                            (conf_set_merge_new_bang(conf_set));
+                                            (sc_i_130 = head);
+                                            while ((sc_i_130>=(0))) {
+                                                {
+                                                    (i = sc_i_130);
+                                                    (j = state_num);
+                                                    (sc_states_129 = states);
+                                                    (BgL_sc_statesza2_128za2 = BgL_sc_statesza2_27za2);
+                                                    (prev = (sc_conf_131-(1)));
+                                                    if (((sc_conf_131>=BgL_sc_nbzd2nts_24zd2)&&((sc_steps_25[prev])>=(0))))
+                                                        {
+                                                            sc_loop1_127 = function(l) {
+                                                                var k;
+                                                                var ender_set;
+                                                                var state;
+                                                                var ender;
+                                                                var l;
+                                                                while (true) {
+                                                                    if ((l instanceof sc_Pair))
+                                                                        {
+                                                                            (ender = (l.car));
+                                                                            (ender_set = ((state = (sc_states_129[j])), (state[(ender+(1))])));
+                                                                            if ((ender_set!== false))
+                                                                                {
+                                                                                    (k = (ender_set[(2)]));
+                                                                                    while ((k>=(0))) {
+                                                                                        {
+                                                                                            if ((k>=i))
+                                                                                                if (((BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, k, prev, i))!== false))
+                                                                                                    (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, j, ender, k));
+                                                                                            (k = (ender_set[(k+(5))]));
+                                                                                        }
+                                                                                    }
+                                                                                    return (sc_loop1_127((l.cdr)));
+                                                                                }
+                                                                            else
+                                                                                (l = (l.cdr));
+                                                                        }
+                                                                    else
+                                                                        return undefined;
+                                                                }
+                                                            };
+                                                            (sc_loop1_127((sc_enders_26[(sc_steps_25[prev])])));
+                                                        }
+                                                    (sc_i_130 = (conf_set[(sc_i_130+(5))]));
+                                                }
+                                            }
+                                            return (loop1());
+                                        }
+                                    else
+                                        return undefined;
+                                }
+                            };
+                            (loop1());
+                            (--i);
+                        }
+                    }
+                    (optrOpnd = BgL_sc_statesza2_30za2);
+                    return [sc_nts_42, sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_names_37, sc_toks_36, optrOpnd, is_parsed, BgL_sc_derivzd2treesza2_47z70, BgL_sc_nbzd2derivzd2treesza2_48za2];
+                }
+            };
+        }
+    };
+    BgL_parsezd2ze3parsedzf3zc2 = function(parse, nt, i, j) {
+        var is_parsed;
+        var states;
+        var enders;
+        var nts;
+        return ((nts = (parse[(0)])), (enders = (parse[(2)])), (states = (parse[(7)])), (is_parsed = (parse[(8)])), (is_parsed(nt, i, j, nts, enders, states)));
+    };
+    BgL_parsezd2ze3treesz31 = function(parse, nt, i, j) {
+        var BgL_sc_derivzd2treesza2_132z70;
+        var states;
+        var toks;
+        var names;
+        var steps;
+        var enders;
+        var nts;
+        return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (names = (parse[(5)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_derivzd2treesza2_132z70 = (parse[(9)])), (BgL_sc_derivzd2treesza2_132z70(nt, i, j, nts, enders, steps, names, toks, states)));
+    };
+    BgL_parsezd2ze3nbzd2treesze3 = function(parse, nt, i, j) {
+        var BgL_sc_nbzd2derivzd2treesza2_133za2;
+        var states;
+        var toks;
+        var steps;
+        var enders;
+        var nts;
+        return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_nbzd2derivzd2treesza2_133za2 = (parse[(10)])), (BgL_sc_nbzd2derivzd2treesza2_133za2(nt, i, j, nts, enders, steps, toks, states)));
+    };
+    test = function(k) {
+        var x;
+        var p;
+        return ((p = (BgL_makezd2parserzd2(const_earley, function(l) {
+            var sc_x_134;
+            var tail1134;
+            var L1130;
+            var falseHead1133;
+            {
+                (falseHead1133 = (new sc_Pair(null, null)));
+                (tail1134 = falseHead1133);
+                (L1130 = l);
+                while (!(L1130 === null)) {
+                    {
+                        (tail1134.cdr = (new sc_Pair(((sc_x_134 = (L1130.car)), (sc_list(sc_x_134, sc_x_134))), null)));
+                        (tail1134 = (tail1134.cdr));
+                        (L1130 = (L1130.cdr));
+                    }
+                }
+                return (falseHead1133.cdr);
+            }
+        }))), (x = (p((sc_vector2list((sc_makeVector(k, "\u1E9Ca"))))))), (sc_length((BgL_parsezd2ze3treesz31(x, "\u1E9Cs", (0), k)))));
+    };
+    BgL_earleyzd2benchmarkzd2 = function() {
+        var args = null;
+        for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) {
+            args = sc_cons(arguments[sc_tmp], args);
+        }
+        var k;
+        return ((k = ((args === null)?(7):(args.car))), (BgL_runzd2benchmarkzd2("earley", (1), function() {
+            return (test(k));
+        }, function(result) {
+            return ((sc_display(result)), (sc_newline()), result == 132);
+        })));
+    };
+}
+
+
+/************* END OF GENERATED CODE *************/
+// Invoke this function to run a benchmark.
+// The first argument is a string identifying the benchmark.
+// The second argument is the number of times to run the benchmark.
+// The third argument is a function that runs the benchmark.
+// The fourth argument is a unary function that warns if the result
+// returned by the benchmark is incorrect.
+//
+// Example:
+// RunBenchmark("new Array()",
+//              1,
+//              function () { new Array(1000000); }
+//              function (v) {
+//                return (v instanceof Array) && (v.length == 1000000);
+//              });
+
+SC_DEFAULT_OUT = new sc_GenericOutputPort(function(s) {});
+SC_ERROR_OUT = SC_DEFAULT_OUT;
+
+function RunBenchmark(name, count, run, warn) {
+  for (var n = 0; n < count; ++n) {
+    result = run();
+    if (!warn(result)) {
+      throw new Error("Earley or Boyer did incorrect number of rewrites");
+    }
+  }
+}
+
+var BgL_runzd2benchmarkzd2 = RunBenchmark;
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/gbemu.js b/suite/pts/deviceTests/browserbench/assets/octane/gbemu.js
new file mode 100644
index 0000000..5e98592
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/gbemu.js
@@ -0,0 +1,11108 @@
+// Portions copyright 2012 Google, Inc
+
+// Copyright (C) 2010 - 2012 Grant Galitz
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2 as
+// published by the Free Software Foundation.
+// The full license is available at http://www.gnu.org/licenses/gpl.html
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU General Public License for more details.
+
+// The code has been adapted for use as a benchmark by Google.
+
+var GameboyBenchmark = new BenchmarkSuite('Gameboy', 18000000,
+                                          [new Benchmark('Gameboy',
+                                                         runGameboy,
+                                                         setupGameboy,
+                                                         tearDownGameboy,
+                                                         4)]);
+
+var decoded_gameboy_rom = null;
+
+function setupGameboy() {
+
+  // Check if all the types required by the code are supported.
+  // If not, throw exception and quit.
+  if (!(typeof Uint8Array != "undefined" &&
+      typeof Int8Array != "undefined" &&
+      typeof Float32Array != "undefined" &&
+      typeof Int32Array != "undefined") ) {
+    throw "TypedArrayUnsupported";
+  }
+  decoded_gameboy_rom = base64_decode(gameboy_rom);
+  rom = null;
+}
+
+function runGameboy() {
+  start(new GameBoyCanvas(), decoded_gameboy_rom);
+
+  gameboy.instructions = 0;
+  gameboy.totalInstructions = 250000;
+
+  while (gameboy.instructions <= gameboy.totalInstructions) {
+    gameboy.run();
+    GameBoyAudioNode.run();
+  }
+
+  resetGlobalVariables();
+}
+
+function tearDownGameboy() {
+  decoded_gameboy_rom = null;
+  expectedGameboyStateStr = null;
+}
+
+var expectedGameboyStateStr =
+  '{"registerA":160,"registerB":255,"registerC":255,"registerE":11,' +
+  '"registersHL":51600,"programCounter":24309,"stackPointer":49706,' +
+  '"sumROM":10171578,"sumMemory":3435856,"sumMBCRam":234598,"sumVRam":0}';
+
+// Start of browser emulation.
+
+GameBoyWindow = { };
+
+function GameBoyContext() {
+  this.createBuffer = function() {
+    return new Buffer();
+  }
+  this.createImageData = function (w, h) {
+    var result = {};
+    result.data = new Uint8Array(w * h);
+    return result;
+  }
+  this.putImageData = function (buffer, x, y) {
+    var sum = 0;
+    for (var i = 0; i < buffer.data.length; i++) {
+      sum += i * buffer.data[i];
+      sum = sum % 1000;
+    }
+  }
+  this.drawImage = function () { }
+};
+
+function GameBoyCanvas() {
+  this.getContext = function() {
+    return new GameBoyContext();
+  }
+  this.width = 160;
+  this.height = 144;
+  this.style = { visibility: "visibile" };
+}
+
+function cout(message, colorIndex) {
+}
+
+function clear_terminal() {
+}
+
+var GameBoyAudioNode = {
+  bufferSize : 0,
+  onaudioprocess : null ,
+  connect : function () {},
+  run: function() {
+    var event = {outputBuffer : this.outputBuffer};
+    this.onaudioprocess(event);
+  }
+};
+
+function GameBoyAudioContext () {
+  this.createBufferSource = function() {
+    return { noteOn : function () {}, connect : function() {}};
+  }
+  this.sampleRate = 48000;
+  this.destination = {}
+  this.createBuffer = function (channels, len, sampleRate) {
+    return { gain : 1,
+             numberOfChannels : 1,
+             length : 1,
+             duration : 0.000020833333110203966,
+             sampleRate : 48000}
+  }
+  this.createJavaScriptNode = function (bufferSize, inputChannels, outputChannels) {
+    GameBoyAudioNode.bufferSize = bufferSize;
+    GameBoyAudioNode.outputBuffer = {
+        getChannelData : function (i) {return this.channelData[i];},
+        channelData    : []
+    };
+    for (var i = 0; i < outputChannels; i++) {
+      GameBoyAudioNode.outputBuffer.channelData[i] = new Float32Array(bufferSize);
+    }
+    return GameBoyAudioNode;
+  }
+}
+
+var mock_date_time_counter = 0;
+
+function new_Date() {
+  return {
+    getTime: function() {
+      mock_date_time_counter += 16;
+      return mock_date_time_counter;
+    }
+  };
+}
+
+// End of browser emulation.
+
+// Start of helper functions.
+
+function checkFinalState() {
+  function sum(a) {
+    var result = 0;
+    for (var i = 0; i < a.length; i++) {
+      result += a[i];
+    }
+    return result;
+  }
+  var state = {
+    registerA: gameboy.registerA,
+    registerB: gameboy.registerB,
+    registerC: gameboy.registerC,
+    registerE: gameboy.registerE,
+    registerF: gameboy.registerF,
+    registersHL: gameboy.registersHL,
+    programCounter: gameboy.programCounter,
+    stackPointer: gameboy.stackPointer,
+    sumROM : sum(gameboy.fromTypedArray(gameboy.ROM)),
+    sumMemory: sum(gameboy.fromTypedArray(gameboy.memory)),
+    sumMBCRam: sum(gameboy.fromTypedArray(gameboy.MBCRam)),
+    sumVRam: sum(gameboy.fromTypedArray(gameboy.VRam))
+  }
+  var stateStr = JSON.stringify(state);
+  if (typeof expectedGameboyStateStr != "undefined") {
+    if (stateStr != expectedGameboyStateStr) {
+      alert("Incorrect final state of processor:\n" +
+            " actual   " + stateStr + "\n" +
+            " expected " + expectedGameboyStateStr);
+    }
+  } else {
+    alert(stateStr);
+  }
+}
+
+
+function resetGlobalVariables () {
+  //Audio API Event Handler:
+  audioContextHandle = null;
+  audioNode = null;
+  audioSource = null;
+  launchedContext = false;
+  audioContextSampleBuffer = [];
+  resampled = [];
+  webAudioMinBufferSize = 15000;
+  webAudioMaxBufferSize = 25000;
+  webAudioActualSampleRate = 44100;
+  XAudioJSSampleRate = 0;
+  webAudioMono = false;
+  XAudioJSVolume = 1;
+  resampleControl = null;
+  audioBufferSize = 0;
+  resampleBufferStart = 0;
+  resampleBufferEnd = 0;
+  resampleBufferSize = 2;
+
+  gameboy = null;           //GameBoyCore object.
+  gbRunInterval = null;       //GameBoyCore Timer
+}
+
+
+// End of helper functions.
+
+// Original code from Grant Galitz follows.
+// Modifications by Google are marked in comments.
+
+// Start of js/other/base64.js file.
+
+var toBase64 = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
+  "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
+  "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+" , "/", "="];
+var fromBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+function base64(data) {
+  try {
+    // The following line was modified for benchmarking:
+    var base64 = GameBoyWindow.btoa(data);  //Use this native function when it's available, as it's a magnitude faster than the non-native code below.
+  }
+  catch (error) {
+    //Defaulting to non-native base64 encoding...
+    var base64 = "";
+    var dataLength = data.length;
+    if (dataLength > 0) {
+      var bytes = [0, 0, 0];
+      var index = 0;
+      var remainder = dataLength % 3;
+      while (data.length % 3 > 0) {
+        //Make sure we don't do fuzzy math in the next loop...
+        data[data.length] = " ";
+      }
+      while (index < dataLength) {
+        //Keep this loop small for speed.
+        bytes = [data.charCodeAt(index++) & 0xFF, data.charCodeAt(index++) & 0xFF, data.charCodeAt(index++) & 0xFF];
+        base64 += toBase64[bytes[0] >> 2] + toBase64[((bytes[0] & 0x3) << 4) | (bytes[1] >> 4)] + toBase64[((bytes[1] & 0xF) << 2) | (bytes[2] >> 6)] + toBase64[bytes[2] & 0x3F];
+      }
+      if (remainder > 0) {
+        //Fill in the padding and recalulate the trailing six-bit group...
+        base64[base64.length - 1] = "=";
+        if (remainder == 2) {
+          base64[base64.length - 2] = "=";
+          base64[base64.length - 3] = toBase64[(bytes[0] & 0x3) << 4];
+        }
+        else {
+          base64[base64.length - 2] = toBase64[(bytes[1] & 0xF) << 2];
+        }
+      }
+    }
+  }
+  return base64;
+}
+function base64_decode(data) {
+  try {
+    // The following line was modified for benchmarking:
+    var decode64 = GameBoyWindow.atob(data);  //Use this native function when it's available, as it's a magnitude faster than the non-native code below.
+  }
+  catch (error) {
+    //Defaulting to non-native base64 decoding...
+    var decode64 = "";
+    var dataLength = data.length;
+    if (dataLength > 3 && dataLength % 4 == 0) {
+      var sixbits = [0, 0, 0, 0];  //Declare this out of the loop, to speed up the ops.
+      var index = 0;
+      while (index < dataLength) {
+        //Keep this loop small for speed.
+        sixbits = [fromBase64.indexOf(data.charAt(index++)), fromBase64.indexOf(data.charAt(index++)), fromBase64.indexOf(data.charAt(index++)), fromBase64.indexOf(data.charAt(index++))];
+        decode64 += String.fromCharCode((sixbits[0] << 2) | (sixbits[1] >> 4)) + String.fromCharCode(((sixbits[1] & 0x0F) << 4) | (sixbits[2] >> 2)) + String.fromCharCode(((sixbits[2] & 0x03) << 6) | sixbits[3]);
+      }
+      //Check for the '=' character after the loop, so we don't hose it up.
+      if (sixbits[3] >= 0x40) {
+        decode64.length -= 1;
+        if (sixbits[2] >= 0x40) {
+          decode64.length -= 1;
+        }
+      }
+    }
+  }
+  return decode64;
+}
+function to_little_endian_dword(str) {
+  return to_little_endian_word(str) + String.fromCharCode((str >> 16) & 0xFF, (str >> 24) & 0xFF);
+}
+function to_little_endian_word(str) {
+  return to_byte(str) + String.fromCharCode((str >> 8) & 0xFF);
+}
+function to_byte(str) {
+  return String.fromCharCode(str & 0xFF);
+}
+function arrayToBase64(arrayIn) {
+  var binString = "";
+  var length = arrayIn.length;
+  for (var index = 0; index < length; ++index) {
+    if (typeof arrayIn[index] == "number") {
+      binString += String.fromCharCode(arrayIn[index]);
+    }
+  }
+  return base64(binString);
+}
+function base64ToArray(b64String) {
+  var binString = base64_decode(b64String);
+  var outArray = [];
+  var length = binString.length;
+  for (var index = 0; index < length;) {
+    outArray.push(binString.charCodeAt(index++) & 0xFF);
+  }
+  return outArray;
+}
+
+// End of js/other/base64.js file.
+
+// Start of js/other/resampler.js file.
+
+//JavaScript Audio Resampler (c) 2011 - Grant Galitz
+function Resampler(fromSampleRate, toSampleRate, channels, outputBufferSize, noReturn) {
+  this.fromSampleRate = fromSampleRate;
+  this.toSampleRate = toSampleRate;
+  this.channels = channels | 0;
+  this.outputBufferSize = outputBufferSize;
+  this.noReturn = !!noReturn;
+  this.initialize();
+}
+Resampler.prototype.initialize = function () {
+  //Perform some checks:
+  if (this.fromSampleRate > 0 && this.toSampleRate > 0 && this.channels > 0) {
+    if (this.fromSampleRate == this.toSampleRate) {
+      //Setup a resampler bypass:
+      this.resampler = this.bypassResampler;    //Resampler just returns what was passed through.
+      this.ratioWeight = 1;
+    }
+    else {
+      //Setup the interpolation resampler:
+      this.compileInterpolationFunction();
+      this.resampler = this.interpolate;      //Resampler is a custom quality interpolation algorithm.
+      this.ratioWeight = this.fromSampleRate / this.toSampleRate;
+      this.tailExists = false;
+      this.lastWeight = 0;
+      this.initializeBuffers();
+    }
+  }
+  else {
+    throw(new Error("Invalid settings specified for the resampler."));
+  }
+}
+Resampler.prototype.compileInterpolationFunction = function () {
+  var toCompile = "var bufferLength = Math.min(buffer.length, this.outputBufferSize);\
+  if ((bufferLength % " + this.channels + ") == 0) {\
+    if (bufferLength > 0) {\
+      var ratioWeight = this.ratioWeight;\
+      var weight = 0;";
+  for (var channel = 0; channel < this.channels; ++channel) {
+    toCompile += "var output" + channel + " = 0;"
+  }
+  toCompile += "var actualPosition = 0;\
+      var amountToNext = 0;\
+      var alreadyProcessedTail = !this.tailExists;\
+      this.tailExists = false;\
+      var outputBuffer = this.outputBuffer;\
+      var outputOffset = 0;\
+      var currentPosition = 0;\
+      do {\
+        if (alreadyProcessedTail) {\
+          weight = ratioWeight;";
+  for (channel = 0; channel < this.channels; ++channel) {
+    toCompile += "output" + channel + " = 0;"
+  }
+  toCompile += "}\
+        else {\
+          weight = this.lastWeight;";
+  for (channel = 0; channel < this.channels; ++channel) {
+    toCompile += "output" + channel + " = this.lastOutput[" + channel + "];"
+  }
+  toCompile += "alreadyProcessedTail = true;\
+        }\
+        while (weight > 0 && actualPosition < bufferLength) {\
+          amountToNext = 1 + actualPosition - currentPosition;\
+          if (weight >= amountToNext) {";
+  for (channel = 0; channel < this.channels; ++channel) {
+    toCompile += "output" + channel + " += buffer[actualPosition++] * amountToNext;"
+  }
+  toCompile += "currentPosition = actualPosition;\
+            weight -= amountToNext;\
+          }\
+          else {";
+  for (channel = 0; channel < this.channels; ++channel) {
+    toCompile += "output" + channel + " += buffer[actualPosition" + ((channel > 0) ? (" + " + channel) : "") + "] * weight;"
+  }
+  toCompile += "currentPosition += weight;\
+            weight = 0;\
+            break;\
+          }\
+        }\
+        if (weight == 0) {";
+  for (channel = 0; channel < this.channels; ++channel) {
+    toCompile += "outputBuffer[outputOffset++] = output" + channel + " / ratioWeight;"
+  }
+  toCompile += "}\
+        else {\
+          this.lastWeight = weight;";
+  for (channel = 0; channel < this.channels; ++channel) {
+    toCompile += "this.lastOutput[" + channel + "] = output" + channel + ";"
+  }
+  toCompile += "this.tailExists = true;\
+          break;\
+        }\
+      } while (actualPosition < bufferLength);\
+      return this.bufferSlice(outputOffset);\
+    }\
+    else {\
+      return (this.noReturn) ? 0 : [];\
+    }\
+  }\
+  else {\
+    throw(new Error(\"Buffer was of incorrect sample length.\"));\
+  }";
+  this.interpolate = Function("buffer", toCompile);
+}
+Resampler.prototype.bypassResampler = function (buffer) {
+  if (this.noReturn) {
+    //Set the buffer passed as our own, as we don't need to resample it:
+    this.outputBuffer = buffer;
+    return buffer.length;
+  }
+  else {
+    //Just return the buffer passsed:
+    return buffer;
+  }
+}
+Resampler.prototype.bufferSlice = function (sliceAmount) {
+  if (this.noReturn) {
+    //If we're going to access the properties directly from this object:
+    return sliceAmount;
+  }
+  else {
+    //Typed array and normal array buffer section referencing:
+    try {
+      return this.outputBuffer.subarray(0, sliceAmount);
+    }
+    catch (error) {
+      try {
+        //Regular array pass:
+        this.outputBuffer.length = sliceAmount;
+        return this.outputBuffer;
+      }
+      catch (error) {
+        //Nightly Firefox 4 used to have the subarray function named as slice:
+        return this.outputBuffer.slice(0, sliceAmount);
+      }
+    }
+  }
+}
+Resampler.prototype.initializeBuffers = function () {
+  //Initialize the internal buffer:
+  try {
+    this.outputBuffer = new Float32Array(this.outputBufferSize);
+    this.lastOutput = new Float32Array(this.channels);
+  }
+  catch (error) {
+    this.outputBuffer = [];
+    this.lastOutput = [];
+  }
+}
+
+// End of js/other/resampler.js file.
+
+// Start of js/other/XAudioServer.js file.
+
+/*Initialize here first:
+  Example:
+    Stereo audio with a sample rate of 70 khz, a minimum buffer of 15000 samples total, a maximum buffer of 25000 samples total and a starting volume level of 1.
+      var parentObj = this;
+      this.audioHandle = new XAudioServer(2, 70000, 15000, 25000, function (sampleCount) {
+        return parentObj.audioUnderRun(sampleCount);
+      }, 1);
+
+  The callback is passed the number of samples requested, while it can return any number of samples it wants back.
+*/
+function XAudioServer(channels, sampleRate, minBufferSize, maxBufferSize, underRunCallback, volume) {
+  this.audioChannels = (channels == 2) ? 2 : 1;
+  webAudioMono = (this.audioChannels == 1);
+  XAudioJSSampleRate = (sampleRate > 0 && sampleRate <= 0xFFFFFF) ? sampleRate : 44100;
+  webAudioMinBufferSize = (minBufferSize >= (samplesPerCallback << 1) && minBufferSize < maxBufferSize) ? (minBufferSize & ((webAudioMono) ? 0xFFFFFFFF : 0xFFFFFFFE)) : (samplesPerCallback << 1);
+  webAudioMaxBufferSize = (Math.floor(maxBufferSize) > webAudioMinBufferSize + this.audioChannels) ? (maxBufferSize & ((webAudioMono) ? 0xFFFFFFFF : 0xFFFFFFFE)) : (minBufferSize << 1);
+  this.underRunCallback = (typeof underRunCallback == "function") ? underRunCallback : function () {};
+  XAudioJSVolume = (volume >= 0 && volume <= 1) ? volume : 1;
+  this.audioType = -1;
+  this.mozAudioTail = [];
+  this.audioHandleMoz = null;
+  this.audioHandleFlash = null;
+  this.flashInitialized = false;
+  this.mozAudioFound = false;
+  this.initializeAudio();
+}
+XAudioServer.prototype.MOZWriteAudio = function (buffer) {
+  //mozAudio:
+  this.MOZWriteAudioNoCallback(buffer);
+  this.MOZExecuteCallback();
+}
+XAudioServer.prototype.MOZWriteAudioNoCallback = function (buffer) {
+  //mozAudio:
+  this.writeMozAudio(buffer);
+}
+XAudioServer.prototype.callbackBasedWriteAudio = function (buffer) {
+  //Callback-centered audio APIs:
+  this.callbackBasedWriteAudioNoCallback(buffer);
+  this.callbackBasedExecuteCallback();
+}
+XAudioServer.prototype.callbackBasedWriteAudioNoCallback = function (buffer) {
+  //Callback-centered audio APIs:
+  var length = buffer.length;
+  for (var bufferCounter = 0; bufferCounter < length && audioBufferSize < webAudioMaxBufferSize;) {
+    audioContextSampleBuffer[audioBufferSize++] = buffer[bufferCounter++];
+  }
+}
+/*Pass your samples into here!
+Pack your samples as a one-dimenional array
+With the channel samplea packed uniformly.
+examples:
+    mono - [left, left, left, left]
+    stereo - [left, right, left, right, left, right, left, right]
+*/
+XAudioServer.prototype.writeAudio = function (buffer) {
+  if (this.audioType == 0) {
+    this.MOZWriteAudio(buffer);
+  }
+  else if (this.audioType == 1) {
+    this.callbackBasedWriteAudio(buffer);
+  }
+  else if (this.audioType == 2) {
+    if (this.checkFlashInit() || launchedContext) {
+      this.callbackBasedWriteAudio(buffer);
+    }
+    else if (this.mozAudioFound) {
+      this.MOZWriteAudio(buffer);
+    }
+  }
+}
+/*Pass your samples into here if you don't want automatic callback calling:
+Pack your samples as a one-dimenional array
+With the channel samplea packed uniformly.
+examples:
+    mono - [left, left, left, left]
+    stereo - [left, right, left, right, left, right, left, right]
+Useful in preventing infinite recursion issues with calling writeAudio inside your callback.
+*/
+XAudioServer.prototype.writeAudioNoCallback = function (buffer) {
+  if (this.audioType == 0) {
+    this.MOZWriteAudioNoCallback(buffer);
+  }
+  else if (this.audioType == 1) {
+    this.callbackBasedWriteAudioNoCallback(buffer);
+  }
+  else if (this.audioType == 2) {
+    if (this.checkFlashInit() || launchedContext) {
+      this.callbackBasedWriteAudioNoCallback(buffer);
+    }
+    else if (this.mozAudioFound) {
+      this.MOZWriteAudioNoCallback(buffer);
+    }
+  }
+}
+//Developer can use this to see how many samples to write (example: minimum buffer allotment minus remaining samples left returned from this function to make sure maximum buffering is done...)
+//If -1 is returned, then that means metric could not be done.
+XAudioServer.prototype.remainingBuffer = function () {
+  if (this.audioType == 0) {
+    //mozAudio:
+    return this.samplesAlreadyWritten - this.audioHandleMoz.mozCurrentSampleOffset();
+  }
+  else if (this.audioType == 1) {
+    //WebKit Audio:
+    return (((resampledSamplesLeft() * resampleControl.ratioWeight) >> (this.audioChannels - 1)) << (this.audioChannels - 1)) + audioBufferSize;
+  }
+  else if (this.audioType == 2) {
+    if (this.checkFlashInit() || launchedContext) {
+      //Webkit Audio / Flash Plugin Audio:
+      return (((resampledSamplesLeft() * resampleControl.ratioWeight) >> (this.audioChannels - 1)) << (this.audioChannels - 1)) + audioBufferSize;
+    }
+    else if (this.mozAudioFound) {
+      //mozAudio:
+      return this.samplesAlreadyWritten - this.audioHandleMoz.mozCurrentSampleOffset();
+    }
+  }
+  //Default return:
+  return 0;
+}
+XAudioServer.prototype.MOZExecuteCallback = function () {
+  //mozAudio:
+  var samplesRequested = webAudioMinBufferSize - this.remainingBuffer();
+  if (samplesRequested > 0) {
+    this.writeMozAudio(this.underRunCallback(samplesRequested));
+  }
+}
+XAudioServer.prototype.callbackBasedExecuteCallback = function () {
+  //WebKit /Flash Audio:
+  var samplesRequested = webAudioMinBufferSize - this.remainingBuffer();
+  if (samplesRequested > 0) {
+    this.callbackBasedWriteAudioNoCallback(this.underRunCallback(samplesRequested));
+  }
+}
+//If you just want your callback called for any possible refill (Execution of callback is still conditional):
+XAudioServer.prototype.executeCallback = function () {
+  if (this.audioType == 0) {
+    this.MOZExecuteCallback();
+  }
+  else if (this.audioType == 1) {
+    this.callbackBasedExecuteCallback();
+  }
+  else if (this.audioType == 2) {
+    if (this.checkFlashInit() || launchedContext) {
+      this.callbackBasedExecuteCallback();
+    }
+    else if (this.mozAudioFound) {
+      this.MOZExecuteCallback();
+    }
+  }
+}
+//DO NOT CALL THIS, the lib calls this internally!
+XAudioServer.prototype.initializeAudio = function () {
+  try {
+    throw (new Error("Select initializeWebAudio case"));  // Line added for benchmarking.
+    this.preInitializeMozAudio();
+    if (navigator.platform == "Linux i686") {
+      //Block out mozaudio usage for Linux Firefox due to moz bugs:
+      throw(new Error(""));
+    }
+    this.initializeMozAudio();
+  }
+  catch (error) {
+    try {
+      this.initializeWebAudio();
+    }
+    catch (error) {
+      try {
+        this.initializeFlashAudio();
+      }
+      catch (error) {
+        throw(new Error("Browser does not support real time audio output."));
+      }
+    }
+  }
+}
+XAudioServer.prototype.preInitializeMozAudio = function () {
+  //mozAudio - Synchronous Audio API
+  this.audioHandleMoz = new Audio();
+  this.audioHandleMoz.mozSetup(this.audioChannels, XAudioJSSampleRate);
+  this.samplesAlreadyWritten = 0;
+  var emptySampleFrame = (this.audioChannels == 2) ? [0, 0] : [0];
+  var prebufferAmount = 0;
+  if (navigator.platform != "MacIntel" && navigator.platform != "MacPPC") {  //Mac OS X doesn't experience this moz-bug!
+    while (this.audioHandleMoz.mozCurrentSampleOffset() == 0) {
+      //Mozilla Audio Bugginess Workaround (Firefox freaks out if we don't give it a prebuffer under certain OSes):
+      prebufferAmount += this.audioHandleMoz.mozWriteAudio(emptySampleFrame);
+    }
+    var samplesToDoubleBuffer = prebufferAmount / this.audioChannels;
+    //Double the prebuffering for windows:
+    for (var index = 0; index < samplesToDoubleBuffer; index++) {
+      this.samplesAlreadyWritten += this.audioHandleMoz.mozWriteAudio(emptySampleFrame);
+    }
+  }
+  this.samplesAlreadyWritten += prebufferAmount;
+  webAudioMinBufferSize += this.samplesAlreadyWritten;
+  this.mozAudioFound = true;
+}
+XAudioServer.prototype.initializeMozAudio = function () {
+  //Fill in our own buffering up to the minimum specified:
+  this.writeMozAudio(getFloat32(webAudioMinBufferSize));
+  this.audioType = 0;
+}
+XAudioServer.prototype.initializeWebAudio = function () {
+  if (launchedContext) {
+    resetCallbackAPIAudioBuffer(webAudioActualSampleRate, samplesPerCallback);
+    this.audioType = 1;
+  }
+  else {
+    throw(new Error(""));
+  }
+}
+XAudioServer.prototype.initializeFlashAudio = function () {
+  var existingFlashload = document.getElementById("XAudioJS");
+  if (existingFlashload == null) {
+    var thisObj = this;
+    var mainContainerNode = document.createElement("div");
+    mainContainerNode.setAttribute("style", "position: fixed; bottom: 0px; right: 0px; margin: 0px; padding: 0px; border: none; width: 8px; height: 8px; overflow: hidden; z-index: -1000; ");
+    var containerNode = document.createElement("div");
+    containerNode.setAttribute("style", "position: static; border: none; width: 0px; height: 0px; visibility: hidden; margin: 8px; padding: 0px;");
+    containerNode.setAttribute("id", "XAudioJS");
+    mainContainerNode.appendChild(containerNode);
+    document.getElementsByTagName("body")[0].appendChild(mainContainerNode);
+    swfobject.embedSWF(
+      "XAudioJS.swf",
+      "XAudioJS",
+      "8",
+      "8",
+      "9.0.0",
+      "",
+      {},
+      {"allowscriptaccess":"always"},
+      {"style":"position: static; visibility: hidden; margin: 8px; padding: 0px; border: none"},
+      function (event) {
+        if (event.success) {
+          thisObj.audioHandleFlash = event.ref;
+        }
+        else {
+          thisObj.audioType = 1;
+        }
+      }
+    );
+  }
+  else {
+    this.audioHandleFlash = existingFlashload;
+  }
+  this.audioType = 2;
+}
+XAudioServer.prototype.changeVolume = function (newVolume) {
+  if (newVolume >= 0 && newVolume <= 1) {
+    XAudioJSVolume = newVolume;
+    if (this.checkFlashInit()) {
+      this.audioHandleFlash.changeVolume(XAudioJSVolume);
+    }
+    if (this.mozAudioFound) {
+      this.audioHandleMoz.volume = XAudioJSVolume;
+    }
+  }
+}
+//Moz Audio Buffer Writing Handler:
+XAudioServer.prototype.writeMozAudio = function (buffer) {
+  var length = this.mozAudioTail.length;
+  if (length > 0) {
+    var samplesAccepted = this.audioHandleMoz.mozWriteAudio(this.mozAudioTail);
+    this.samplesAlreadyWritten += samplesAccepted;
+    this.mozAudioTail.splice(0, samplesAccepted);
+  }
+  length = Math.min(buffer.length, webAudioMaxBufferSize - this.samplesAlreadyWritten + this.audioHandleMoz.mozCurrentSampleOffset());
+  var samplesAccepted = this.audioHandleMoz.mozWriteAudio(buffer);
+  this.samplesAlreadyWritten += samplesAccepted;
+  for (var index = 0; length > samplesAccepted; --length) {
+    //Moz Audio wants us saving the tail:
+    this.mozAudioTail.push(buffer[index++]);
+  }
+}
+//Checks to see if the NPAPI Adobe Flash bridge is ready yet:
+XAudioServer.prototype.checkFlashInit = function () {
+  if (!this.flashInitialized && this.audioHandleFlash && this.audioHandleFlash.initialize) {
+    this.flashInitialized = true;
+    this.audioHandleFlash.initialize(this.audioChannels, XAudioJSVolume);
+    resetCallbackAPIAudioBuffer(44100, samplesPerCallback);
+  }
+  return this.flashInitialized;
+}
+/////////END LIB
+function getFloat32(size) {
+  try {
+    return new Float32Array(size);
+  }
+  catch (error) {
+    return new Array(size);
+  }
+}
+function getFloat32Flat(size) {
+  try {
+    var newBuffer = new Float32Array(size);
+  }
+  catch (error) {
+    var newBuffer = new Array(size);
+    var audioSampleIndice = 0;
+    do {
+      newBuffer[audioSampleIndice] = 0;
+    } while (++audioSampleIndice < size);
+  }
+  return newBuffer;
+}
+//Flash NPAPI Event Handler:
+var samplesPerCallback = 2048;      //Has to be between 2048 and 4096 (If over, then samples are ignored, if under then silence is added).
+var outputConvert = null;
+function audioOutputFlashEvent() {    //The callback that flash calls...
+  resampleRefill();
+  return outputConvert();
+}
+function generateFlashStereoString() {  //Convert the arrays to one long string for speed.
+  var copyBinaryStringLeft = "";
+  var copyBinaryStringRight = "";
+  for (var index = 0; index < samplesPerCallback && resampleBufferStart != resampleBufferEnd; ++index) {
+    //Sanitize the buffer:
+    copyBinaryStringLeft += String.fromCharCode(((Math.min(Math.max(resampled[resampleBufferStart++] + 1, 0), 2) * 0x3FFF) | 0) + 0x3000);
+    copyBinaryStringRight += String.fromCharCode(((Math.min(Math.max(resampled[resampleBufferStart++] + 1, 0), 2) * 0x3FFF) | 0) + 0x3000);
+    if (resampleBufferStart == resampleBufferSize) {
+      resampleBufferStart = 0;
+    }
+  }
+  return copyBinaryStringLeft + copyBinaryStringRight;
+}
+function generateFlashMonoString() {  //Convert the array to one long string for speed.
+  var copyBinaryString = "";
+  for (var index = 0; index < samplesPerCallback && resampleBufferStart != resampleBufferEnd; ++index) {
+    //Sanitize the buffer:
+    copyBinaryString += String.fromCharCode(((Math.min(Math.max(resampled[resampleBufferStart++] + 1, 0), 2) * 0x3FFF) | 0) + 0x3000);
+    if (resampleBufferStart == resampleBufferSize) {
+      resampleBufferStart = 0;
+    }
+  }
+  return copyBinaryString;
+}
+//Audio API Event Handler:
+var audioContextHandle = null;
+var audioNode = null;
+var audioSource = null;
+var launchedContext = false;
+var audioContextSampleBuffer = [];
+var resampled = [];
+var webAudioMinBufferSize = 15000;
+var webAudioMaxBufferSize = 25000;
+var webAudioActualSampleRate = 44100;
+var XAudioJSSampleRate = 0;
+var webAudioMono = false;
+var XAudioJSVolume = 1;
+var resampleControl = null;
+var audioBufferSize = 0;
+var resampleBufferStart = 0;
+var resampleBufferEnd = 0;
+var resampleBufferSize = 2;
+function audioOutputEvent(event) {    //Web Audio API callback...
+  var index = 0;
+  var buffer1 = event.outputBuffer.getChannelData(0);
+  var buffer2 = event.outputBuffer.getChannelData(1);
+  resampleRefill();
+  if (!webAudioMono) {
+    //STEREO:
+    while (index < samplesPerCallback && resampleBufferStart != resampleBufferEnd) {
+      buffer1[index] = resampled[resampleBufferStart++] * XAudioJSVolume;
+      buffer2[index++] = resampled[resampleBufferStart++] * XAudioJSVolume;
+      if (resampleBufferStart == resampleBufferSize) {
+        resampleBufferStart = 0;
+      }
+    }
+  }
+  else {
+    //MONO:
+    while (index < samplesPerCallback && resampleBufferStart != resampleBufferEnd) {
+      buffer2[index] = buffer1[index] = resampled[resampleBufferStart++] * XAudioJSVolume;
+      ++index;
+      if (resampleBufferStart == resampleBufferSize) {
+        resampleBufferStart = 0;
+      }
+    }
+  }
+  //Pad with silence if we're underrunning:
+  while (index < samplesPerCallback) {
+    buffer2[index] = buffer1[index] = 0;
+    ++index;
+  }
+}
+function resampleRefill() {
+  if (audioBufferSize > 0) {
+    //Resample a chunk of audio:
+    var resampleLength = resampleControl.resampler(getBufferSamples());
+    var resampledResult = resampleControl.outputBuffer;
+    for (var index2 = 0; index2 < resampleLength; ++index2) {
+      resampled[resampleBufferEnd++] = resampledResult[index2];
+      if (resampleBufferEnd == resampleBufferSize) {
+        resampleBufferEnd = 0;
+      }
+      if (resampleBufferStart == resampleBufferEnd) {
+        ++resampleBufferStart;
+        if (resampleBufferStart == resampleBufferSize) {
+          resampleBufferStart = 0;
+        }
+      }
+    }
+    audioBufferSize = 0;
+  }
+}
+function resampledSamplesLeft() {
+  return ((resampleBufferStart <= resampleBufferEnd) ? 0 : resampleBufferSize) + resampleBufferEnd - resampleBufferStart;
+}
+function getBufferSamples() {
+  //Typed array and normal array buffer section referencing:
+  try {
+    return audioContextSampleBuffer.subarray(0, audioBufferSize);
+  }
+  catch (error) {
+    try {
+      //Regular array pass:
+      audioContextSampleBuffer.length = audioBufferSize;
+      return audioContextSampleBuffer;
+    }
+    catch (error) {
+      //Nightly Firefox 4 used to have the subarray function named as slice:
+      return audioContextSampleBuffer.slice(0, audioBufferSize);
+    }
+  }
+}
+//Initialize WebKit Audio /Flash Audio Buffer:
+function resetCallbackAPIAudioBuffer(APISampleRate, bufferAlloc) {
+  audioContextSampleBuffer = getFloat32(webAudioMaxBufferSize);
+  audioBufferSize = webAudioMaxBufferSize;
+  resampleBufferStart = 0;
+  resampleBufferEnd = 0;
+  resampleBufferSize = Math.max(webAudioMaxBufferSize * Math.ceil(XAudioJSSampleRate / APISampleRate), samplesPerCallback) << 1;
+  if (webAudioMono) {
+    //MONO Handling:
+    resampled = getFloat32Flat(resampleBufferSize);
+    resampleControl = new Resampler(XAudioJSSampleRate, APISampleRate, 1, resampleBufferSize, true);
+    outputConvert = generateFlashMonoString;
+  }
+  else {
+    //STEREO Handling:
+    resampleBufferSize  <<= 1;
+    resampled = getFloat32Flat(resampleBufferSize);
+    resampleControl = new Resampler(XAudioJSSampleRate, APISampleRate, 2, resampleBufferSize, true);
+    outputConvert = generateFlashStereoString;
+  }
+}
+//Initialize WebKit Audio:
+(function () {
+  if (!launchedContext) {
+    try {
+      // The following line was modified for benchmarking:
+      audioContextHandle = new GameBoyAudioContext();              //Create a system audio context.
+    }
+    catch (error) {
+      try {
+        audioContextHandle = new AudioContext();                //Create a system audio context.
+      }
+      catch (error) {
+        return;
+      }
+    }
+    try {
+      audioSource = audioContextHandle.createBufferSource();            //We need to create a false input to get the chain started.
+      audioSource.loop = false;  //Keep this alive forever (Event handler will know when to ouput.)
+      XAudioJSSampleRate = webAudioActualSampleRate = audioContextHandle.sampleRate;
+      audioSource.buffer = audioContextHandle.createBuffer(1, 1, webAudioActualSampleRate);  //Create a zero'd input buffer for the input to be valid.
+      audioNode = audioContextHandle.createJavaScriptNode(samplesPerCallback, 1, 2);      //Create 2 outputs and ignore the input buffer (Just copy buffer 1 over if mono)
+      audioNode.onaudioprocess = audioOutputEvent;                //Connect the audio processing event to a handling function so we can manipulate output
+      audioSource.connect(audioNode);                        //Send and chain the input to the audio manipulation.
+      audioNode.connect(audioContextHandle.destination);              //Send and chain the output of the audio manipulation to the system audio output.
+      audioSource.noteOn(0);                            //Start the loop!
+    }
+    catch (error) {
+      return;
+    }
+    launchedContext = true;
+  }
+})();
+
+// End of js/other/XAudioServer.js file.
+
+// Start of js/other/resize.js file.
+
+//JavaScript Image Resizer (c) 2012 - Grant Galitz
+function Resize(widthOriginal, heightOriginal, targetWidth, targetHeight, blendAlpha, interpolationPass) {
+  this.widthOriginal = Math.abs(parseInt(widthOriginal) || 0);
+  this.heightOriginal = Math.abs(parseInt(heightOriginal) || 0);
+  this.targetWidth = Math.abs(parseInt(targetWidth) || 0);
+  this.targetHeight = Math.abs(parseInt(targetHeight) || 0);
+  this.colorChannels = (!!blendAlpha) ? 4 : 3;
+  this.interpolationPass = !!interpolationPass;
+  this.targetWidthMultipliedByChannels = this.targetWidth * this.colorChannels;
+  this.originalWidthMultipliedByChannels = this.widthOriginal * this.colorChannels;
+  this.originalHeightMultipliedByChannels = this.heightOriginal * this.colorChannels;
+  this.widthPassResultSize = this.targetWidthMultipliedByChannels * this.heightOriginal;
+  this.finalResultSize = this.targetWidthMultipliedByChannels * this.targetHeight;
+  this.initialize();
+}
+Resize.prototype.initialize = function () {
+  //Perform some checks:
+  if (this.widthOriginal > 0 && this.heightOriginal > 0 && this.targetWidth > 0 && this.targetHeight > 0) {
+    if (this.widthOriginal == this.targetWidth) {
+      //Bypass the width resizer pass:
+      this.resizeWidth = this.bypassResizer;
+    }
+    else {
+      //Setup the width resizer pass:
+      this.ratioWeightWidthPass = this.widthOriginal / this.targetWidth;
+      if (this.ratioWeightWidthPass < 1 && this.interpolationPass) {
+        this.initializeFirstPassBuffers(true);
+        this.resizeWidth = (this.colorChannels == 4) ? this.resizeWidthInterpolatedRGBA : this.resizeWidthInterpolatedRGB;
+      }
+      else {
+        this.initializeFirstPassBuffers(false);
+        this.resizeWidth = (this.colorChannels == 4) ? this.resizeWidthRGBA : this.resizeWidthRGB;
+      }
+    }
+    if (this.heightOriginal == this.targetHeight) {
+      //Bypass the height resizer pass:
+      this.resizeHeight = this.bypassResizer;
+    }
+    else {
+      //Setup the height resizer pass:
+      this.ratioWeightHeightPass = this.heightOriginal / this.targetHeight;
+      if (this.ratioWeightHeightPass < 1 && this.interpolationPass) {
+        this.initializeSecondPassBuffers(true);
+        this.resizeHeight = this.resizeHeightInterpolated;
+      }
+      else {
+        this.initializeSecondPassBuffers(false);
+        this.resizeHeight = (this.colorChannels == 4) ? this.resizeHeightRGBA : this.resizeHeightRGB;
+      }
+    }
+  }
+  else {
+    throw(new Error("Invalid settings specified for the resizer."));
+  }
+}
+Resize.prototype.resizeWidthRGB = function (buffer) {
+  var ratioWeight = this.ratioWeightWidthPass;
+  var weight = 0;
+  var amountToNext = 0;
+  var actualPosition = 0;
+  var currentPosition = 0;
+  var line = 0;
+  var pixelOffset = 0;
+  var outputOffset = 0;
+  var nextLineOffsetOriginalWidth = this.originalWidthMultipliedByChannels - 2;
+  var nextLineOffsetTargetWidth = this.targetWidthMultipliedByChannels - 2;
+  var output = this.outputWidthWorkBench;
+  var outputBuffer = this.widthBuffer;
+  do {
+    for (line = 0; line < this.originalHeightMultipliedByChannels;) {
+      output[line++] = 0;
+      output[line++] = 0;
+      output[line++] = 0;
+    }
+    weight = ratioWeight;
+    do {
+      amountToNext = 1 + actualPosition - currentPosition;
+      if (weight >= amountToNext) {
+        for (line = 0, pixelOffset = actualPosition; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetOriginalWidth) {
+          output[line++] += buffer[pixelOffset++] * amountToNext;
+          output[line++] += buffer[pixelOffset++] * amountToNext;
+          output[line++] += buffer[pixelOffset] * amountToNext;
+        }
+        currentPosition = actualPosition = actualPosition + 3;
+        weight -= amountToNext;
+      }
+      else {
+        for (line = 0, pixelOffset = actualPosition; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetOriginalWidth) {
+          output[line++] += buffer[pixelOffset++] * weight;
+          output[line++] += buffer[pixelOffset++] * weight;
+          output[line++] += buffer[pixelOffset] * weight;
+        }
+        currentPosition += weight;
+        break;
+      }
+    } while (weight > 0 && actualPosition < this.originalWidthMultipliedByChannels);
+    for (line = 0, pixelOffset = outputOffset; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetTargetWidth) {
+      outputBuffer[pixelOffset++] = output[line++] / ratioWeight;
+      outputBuffer[pixelOffset++] = output[line++] / ratioWeight;
+      outputBuffer[pixelOffset] = output[line++] / ratioWeight;
+    }
+    outputOffset += 3;
+  } while (outputOffset < this.targetWidthMultipliedByChannels);
+  return outputBuffer;
+}
+Resize.prototype.resizeWidthInterpolatedRGB = function (buffer) {
+  var ratioWeight = (this.widthOriginal - 1) / this.targetWidth;
+  var weight = 0;
+  var finalOffset = 0;
+  var pixelOffset = 0;
+  var outputBuffer = this.widthBuffer;
+  for (var targetPosition = 0; targetPosition < this.targetWidthMultipliedByChannels; targetPosition += 3, weight += ratioWeight) {
+    //Calculate weightings:
+    secondWeight = weight % 1;
+    firstWeight = 1 - secondWeight;
+    //Interpolate:
+    for (finalOffset = targetPosition, pixelOffset = Math.floor(weight) * 3; finalOffset < this.widthPassResultSize; pixelOffset += this.originalWidthMultipliedByChannels, finalOffset += this.targetWidthMultipliedByChannels) {
+      outputBuffer[finalOffset] = (buffer[pixelOffset] * firstWeight) + (buffer[pixelOffset + 3] * secondWeight);
+      outputBuffer[finalOffset + 1] = (buffer[pixelOffset + 1] * firstWeight) + (buffer[pixelOffset + 4] * secondWeight);
+      outputBuffer[finalOffset + 2] = (buffer[pixelOffset + 2] * firstWeight) + (buffer[pixelOffset + 5] * secondWeight);
+    }
+  }
+  return outputBuffer;
+}
+Resize.prototype.resizeWidthRGBA = function (buffer) {
+  var ratioWeight = this.ratioWeightWidthPass;
+  var weight = 0;
+  var amountToNext = 0;
+  var actualPosition = 0;
+  var currentPosition = 0;
+  var line = 0;
+  var pixelOffset = 0;
+  var outputOffset = 0;
+  var nextLineOffsetOriginalWidth = this.originalWidthMultipliedByChannels - 3;
+  var nextLineOffsetTargetWidth = this.targetWidthMultipliedByChannels - 3;
+  var output = this.outputWidthWorkBench;
+  var outputBuffer = this.widthBuffer;
+  do {
+    for (line = 0; line < this.originalHeightMultipliedByChannels;) {
+      output[line++] = 0;
+      output[line++] = 0;
+      output[line++] = 0;
+      output[line++] = 0;
+    }
+    weight = ratioWeight;
+    do {
+      amountToNext = 1 + actualPosition - currentPosition;
+      if (weight >= amountToNext) {
+        for (line = 0, pixelOffset = actualPosition; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetOriginalWidth) {
+          output[line++] += buffer[pixelOffset++] * amountToNext;
+          output[line++] += buffer[pixelOffset++] * amountToNext;
+          output[line++] += buffer[pixelOffset++] * amountToNext;
+          output[line++] += buffer[pixelOffset] * amountToNext;
+        }
+        currentPosition = actualPosition = actualPosition + 4;
+        weight -= amountToNext;
+      }
+      else {
+        for (line = 0, pixelOffset = actualPosition; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetOriginalWidth) {
+          output[line++] += buffer[pixelOffset++] * weight;
+          output[line++] += buffer[pixelOffset++] * weight;
+          output[line++] += buffer[pixelOffset++] * weight;
+          output[line++] += buffer[pixelOffset] * weight;
+        }
+        currentPosition += weight;
+        break;
+      }
+    } while (weight > 0 && actualPosition < this.originalWidthMultipliedByChannels);
+    for (line = 0, pixelOffset = outputOffset; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetTargetWidth) {
+      outputBuffer[pixelOffset++] = output[line++] / ratioWeight;
+      outputBuffer[pixelOffset++] = output[line++] / ratioWeight;
+      outputBuffer[pixelOffset++] = output[line++] / ratioWeight;
+      outputBuffer[pixelOffset] = output[line++] / ratioWeight;
+    }
+    outputOffset += 4;
+  } while (outputOffset < this.targetWidthMultipliedByChannels);
+  return outputBuffer;
+}
+Resize.prototype.resizeWidthInterpolatedRGBA = function (buffer) {
+  var ratioWeight = (this.widthOriginal - 1) / this.targetWidth;
+  var weight = 0;
+  var finalOffset = 0;
+  var pixelOffset = 0;
+  var outputBuffer = this.widthBuffer;
+  for (var targetPosition = 0; targetPosition < this.targetWidthMultipliedByChannels; targetPosition += 4, weight += ratioWeight) {
+    //Calculate weightings:
+    secondWeight = weight % 1;
+    firstWeight = 1 - secondWeight;
+    //Interpolate:
+    for (finalOffset = targetPosition, pixelOffset = Math.floor(weight) * 4; finalOffset < this.widthPassResultSize; pixelOffset += this.originalWidthMultipliedByChannels, finalOffset += this.targetWidthMultipliedByChannels) {
+      outputBuffer[finalOffset] = (buffer[pixelOffset] * firstWeight) + (buffer[pixelOffset + 4] * secondWeight);
+      outputBuffer[finalOffset + 1] = (buffer[pixelOffset + 1] * firstWeight) + (buffer[pixelOffset + 5] * secondWeight);
+      outputBuffer[finalOffset + 2] = (buffer[pixelOffset + 2] * firstWeight) + (buffer[pixelOffset + 6] * secondWeight);
+      outputBuffer[finalOffset + 3] = (buffer[pixelOffset + 3] * firstWeight) + (buffer[pixelOffset + 7] * secondWeight);
+    }
+  }
+  return outputBuffer;
+}
+Resize.prototype.resizeHeightRGB = function (buffer) {
+  var ratioWeight = this.ratioWeightHeightPass;
+  var weight = 0;
+  var amountToNext = 0;
+  var actualPosition = 0;
+  var currentPosition = 0;
+  var pixelOffset = 0;
+  var outputOffset = 0;
+  var output = this.outputHeightWorkBench;
+  var outputBuffer = this.heightBuffer;
+  do {
+    for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) {
+      output[pixelOffset++] = 0;
+      output[pixelOffset++] = 0;
+      output[pixelOffset++] = 0;
+    }
+    weight = ratioWeight;
+    do {
+      amountToNext = 1 + actualPosition - currentPosition;
+      if (weight >= amountToNext) {
+        for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) {
+          output[pixelOffset++] += buffer[actualPosition++] * amountToNext;
+          output[pixelOffset++] += buffer[actualPosition++] * amountToNext;
+          output[pixelOffset++] += buffer[actualPosition++] * amountToNext;
+        }
+        currentPosition = actualPosition;
+        weight -= amountToNext;
+      }
+      else {
+        for (pixelOffset = 0, amountToNext = actualPosition; pixelOffset < this.targetWidthMultipliedByChannels;) {
+          output[pixelOffset++] += buffer[amountToNext++] * weight;
+          output[pixelOffset++] += buffer[amountToNext++] * weight;
+          output[pixelOffset++] += buffer[amountToNext++] * weight;
+        }
+        currentPosition += weight;
+        break;
+      }
+    } while (weight > 0 && actualPosition < this.widthPassResultSize);
+    for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) {
+      outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight);
+      outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight);
+      outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight);
+    }
+  } while (outputOffset < this.finalResultSize);
+  return outputBuffer;
+}
+Resize.prototype.resizeHeightInterpolated = function (buffer) {
+  var ratioWeight = (this.heightOriginal - 1) / this.targetHeight;
+  var weight = 0;
+  var finalOffset = 0;
+  var pixelOffset = 0;
+  var pixelOffsetAccumulated = 0;
+  var pixelOffsetAccumulated2 = 0;
+  var outputBuffer = this.heightBuffer;
+  do {
+    //Calculate weightings:
+    secondWeight = weight % 1;
+    firstWeight = 1 - secondWeight;
+    //Interpolate:
+    pixelOffsetAccumulated = Math.floor(weight) * this.targetWidthMultipliedByChannels;
+    pixelOffsetAccumulated2 = pixelOffsetAccumulated + this.targetWidthMultipliedByChannels;
+    for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels; ++pixelOffset) {
+      outputBuffer[finalOffset++] = (buffer[pixelOffsetAccumulated + pixelOffset] * firstWeight) + (buffer[pixelOffsetAccumulated2 + pixelOffset] * secondWeight);
+    }
+    weight += ratioWeight;
+  } while (finalOffset < this.finalResultSize);
+  return outputBuffer;
+}
+Resize.prototype.resizeHeightRGBA = function (buffer) {
+  var ratioWeight = this.ratioWeightHeightPass;
+  var weight = 0;
+  var amountToNext = 0;
+  var actualPosition = 0;
+  var currentPosition = 0;
+  var pixelOffset = 0;
+  var outputOffset = 0;
+  var output = this.outputHeightWorkBench;
+  var outputBuffer = this.heightBuffer;
+  do {
+    for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) {
+      output[pixelOffset++] = 0;
+      output[pixelOffset++] = 0;
+      output[pixelOffset++] = 0;
+      output[pixelOffset++] = 0;
+    }
+    weight = ratioWeight;
+    do {
+      amountToNext = 1 + actualPosition - currentPosition;
+      if (weight >= amountToNext) {
+        for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) {
+          output[pixelOffset++] += buffer[actualPosition++] * amountToNext;
+          output[pixelOffset++] += buffer[actualPosition++] * amountToNext;
+          output[pixelOffset++] += buffer[actualPosition++] * amountToNext;
+          output[pixelOffset++] += buffer[actualPosition++] * amountToNext;
+        }
+        currentPosition = actualPosition;
+        weight -= amountToNext;
+      }
+      else {
+        for (pixelOffset = 0, amountToNext = actualPosition; pixelOffset < this.targetWidthMultipliedByChannels;) {
+          output[pixelOffset++] += buffer[amountToNext++] * weight;
+          output[pixelOffset++] += buffer[amountToNext++] * weight;
+          output[pixelOffset++] += buffer[amountToNext++] * weight;
+          output[pixelOffset++] += buffer[amountToNext++] * weight;
+        }
+        currentPosition += weight;
+        break;
+      }
+    } while (weight > 0 && actualPosition < this.widthPassResultSize);
+    for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) {
+      outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight);
+      outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight);
+      outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight);
+      outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight);
+    }
+  } while (outputOffset < this.finalResultSize);
+  return outputBuffer;
+}
+Resize.prototype.resizeHeightInterpolatedRGBA = function (buffer) {
+  var ratioWeight = (this.heightOriginal - 1) / this.targetHeight;
+  var weight = 0;
+  var finalOffset = 0;
+  var pixelOffset = 0;
+  var outputBuffer = this.heightBuffer;
+  while (pixelOffset < this.finalResultSize) {
+    //Calculate weightings:
+    secondWeight = weight % 1;
+    firstWeight = 1 - secondWeight;
+    //Interpolate:
+    for (pixelOffset = Math.floor(weight) * 4; pixelOffset < this.targetWidthMultipliedByChannels; pixelOffset += 4) {
+      outputBuffer[finalOffset++] = (buffer[pixelOffset] * firstWeight) + (buffer[pixelOffset + 4] * secondWeight);
+      outputBuffer[finalOffset++] = (buffer[pixelOffset + 1] * firstWeight) + (buffer[pixelOffset + 5] * secondWeight);
+      outputBuffer[finalOffset++] = (buffer[pixelOffset + 2] * firstWeight) + (buffer[pixelOffset + 6] * secondWeight);
+      outputBuffer[finalOffset++] = (buffer[pixelOffset + 3] * firstWeight) + (buffer[pixelOffset + 7] * secondWeight);
+    }
+    weight += ratioWeight;
+  }
+  return outputBuffer;
+}
+Resize.prototype.resize = function (buffer) {
+  return this.resizeHeight(this.resizeWidth(buffer));
+}
+Resize.prototype.bypassResizer = function (buffer) {
+  //Just return the buffer passsed:
+  return buffer;
+}
+Resize.prototype.initializeFirstPassBuffers = function (BILINEARAlgo) {
+  //Initialize the internal width pass buffers:
+  this.widthBuffer = this.generateFloatBuffer(this.widthPassResultSize);
+  if (!BILINEARAlgo) {
+    this.outputWidthWorkBench = this.generateFloatBuffer(this.originalHeightMultipliedByChannels);
+  }
+}
+Resize.prototype.initializeSecondPassBuffers = function (BILINEARAlgo) {
+  //Initialize the internal height pass buffers:
+  this.heightBuffer = this.generateUint8Buffer(this.finalResultSize);
+  if (!BILINEARAlgo) {
+    this.outputHeightWorkBench = this.generateFloatBuffer(this.targetWidthMultipliedByChannels);
+  }
+}
+Resize.prototype.generateFloatBuffer = function (bufferLength) {
+  //Generate a float32 typed array buffer:
+  try {
+    return new Float32Array(bufferLength);
+  }
+  catch (error) {
+    return [];
+  }
+}
+Resize.prototype.generateUint8Buffer = function (bufferLength) {
+  //Generate a uint8 typed array buffer:
+  try {
+    return this.checkForOperaMathBug(new Uint8Array(bufferLength));
+  }
+  catch (error) {
+    return [];
+  }
+}
+Resize.prototype.checkForOperaMathBug = function (typedArray) {
+  typedArray[0] = -1;
+  typedArray[0] >>= 0;
+  if (typedArray[0] != 0xFF) {
+    return [];
+  }
+  else {
+    return typedArray;
+  }
+}
+
+// End of js/other/resize.js file.
+
+// Start of js/GameBoyCore.js file.
+
+"use strict";
+/*
+ * JavaScript GameBoy Color Emulator
+ * Copyright (C) 2010 - 2012 Grant Galitz
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ * The full license is available at http://www.gnu.org/licenses/gpl.html
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+function GameBoyCore(canvas, ROMImage) {
+  //Params, etc...
+  this.canvas = canvas;            //Canvas DOM object for drawing out the graphics to.
+  this.drawContext = null;          // LCD Context
+  this.ROMImage = ROMImage;          //The game's ROM.
+  //CPU Registers and Flags:
+  this.registerA = 0x01;             //Register A (Accumulator)
+  this.FZero = true;               //Register F  - Result was zero
+  this.FSubtract = false;            //Register F  - Subtraction was executed
+  this.FHalfCarry = true;            //Register F  - Half carry or half borrow
+  this.FCarry = true;              //Register F  - Carry or borrow
+  this.registerB = 0x00;            //Register B
+  this.registerC = 0x13;            //Register C
+  this.registerD = 0x00;            //Register D
+  this.registerE = 0xD8;            //Register E
+  this.registersHL = 0x014D;          //Registers H and L combined
+  this.stackPointer = 0xFFFE;          //Stack Pointer
+  this.programCounter = 0x0100;        //Program Counter
+  //Some CPU Emulation State Variables:
+  this.CPUCyclesTotal = 0;          //Relative CPU clocking to speed set, rounded appropriately.
+  this.CPUCyclesTotalBase = 0;        //Relative CPU clocking to speed set base.
+  this.CPUCyclesTotalCurrent = 0;        //Relative CPU clocking to speed set, the directly used value.
+  this.CPUCyclesTotalRoundoff = 0;      //Clocking per iteration rounding catch.
+  this.baseCPUCyclesPerIteration = 0;    //CPU clocks per iteration at 1x speed.
+  this.remainingClocks = 0;          //HALT clocking overrun carry over.
+  this.inBootstrap = true;          //Whether we're in the GBC boot ROM.
+  this.usedBootROM = false;          //Updated upon ROM loading...
+  this.usedGBCBootROM = false;        //Did we boot to the GBC boot ROM?
+  this.halt = false;              //Has the CPU been suspended until the next interrupt?
+  this.skipPCIncrement = false;        //Did we trip the DMG Halt bug?
+  this.stopEmulator = 3;            //Has the emulation been paused or a frame has ended?
+  this.IME = true;              //Are interrupts enabled?
+  this.IRQLineMatched = 0;          //CPU IRQ assertion.
+  this.interruptsRequested = 0;        //IF Register
+  this.interruptsEnabled = 0;          //IE Register
+  this.hdmaRunning = false;          //HDMA Transfer Flag - GBC only
+  this.CPUTicks = 0;              //The number of clock cycles emulated.
+  this.doubleSpeedShifter = 0;        //GBC double speed clocking shifter.
+  this.JoyPad = 0xFF;              //Joypad State (two four-bit states actually)
+  this.CPUStopped = false;          //CPU STOP status.
+  //Main RAM, MBC RAM, GBC Main RAM, VRAM, etc.
+  this.memoryReader = [];            //Array of functions mapped to read back memory
+  this.memoryWriter = [];            //Array of functions mapped to write to memory
+  this.memoryHighReader = [];          //Array of functions mapped to read back 0xFFXX memory
+  this.memoryHighWriter = [];          //Array of functions mapped to write to 0xFFXX memory
+  this.ROM = [];                //The full ROM file dumped to an array.
+  this.memory = [];              //Main Core Memory
+  this.MBCRam = [];              //Switchable RAM (Used by games for more RAM) for the main memory range 0xA000 - 0xC000.
+  this.VRAM = [];                //Extra VRAM bank for GBC.
+  this.GBCMemory = [];            //GBC main RAM Banks
+  this.MBC1Mode = false;            //MBC1 Type (4/32, 16/8)
+  this.MBCRAMBanksEnabled = false;      //MBC RAM Access Control.
+  this.currMBCRAMBank = 0;          //MBC Currently Indexed RAM Bank
+  this.currMBCRAMBankPosition = -0xA000;    //MBC Position Adder;
+  this.cGBC = false;              //GameBoy Color detection.
+  this.gbcRamBank = 1;            //Currently Switched GameBoy Color ram bank
+  this.gbcRamBankPosition = -0xD000;      //GBC RAM offset from address start.
+  this.gbcRamBankPositionECHO = -0xF000;    //GBC RAM (ECHO mirroring) offset from address start.
+  this.RAMBanks = [0, 1, 2, 4, 16];      //Used to map the RAM banks to maximum size the MBC used can do.
+  this.ROMBank1offs = 0;            //Offset of the ROM bank switching.
+  this.currentROMBank = 0;          //The parsed current ROM bank selection.
+  this.cartridgeType = 0;            //Cartridge Type
+  this.name = "";                //Name of the game
+  this.gameCode = "";              //Game code (Suffix for older games)
+  this.fromSaveState = false;          //A boolean to see if this was loaded in as a save state.
+  this.savedStateFileName = "";        //When loaded in as a save state, this will not be empty.
+  this.STATTracker = 0;            //Tracker for STAT triggering.
+  this.modeSTAT = 0;              //The scan line mode (for lines 1-144 it's 2-3-0, for 145-154 it's 1)
+  this.spriteCount = 252;            //Mode 3 extra clocking counter (Depends on how many sprites are on the current line.).
+  this.LYCMatchTriggerSTAT = false;      //Should we trigger an interrupt if LY==LYC?
+  this.mode2TriggerSTAT = false;        //Should we trigger an interrupt if in mode 2?
+  this.mode1TriggerSTAT = false;        //Should we trigger an interrupt if in mode 1?
+  this.mode0TriggerSTAT = false;        //Should we trigger an interrupt if in mode 0?
+  this.LCDisOn = false;            //Is the emulated LCD controller on?
+  this.LINECONTROL = [];            //Array of functions to handle each scan line we do (onscreen + offscreen)
+  this.DISPLAYOFFCONTROL = [function (parentObj) {
+    //Array of line 0 function to handle the LCD controller when it's off (Do nothing!).
+  }];
+  this.LCDCONTROL = null;            //Pointer to either LINECONTROL or DISPLAYOFFCONTROL.
+  this.initializeLCDController();        //Compile the LCD controller functions.
+  //RTC (Real Time Clock for MBC3):
+  this.RTCisLatched = false;
+  this.latchedSeconds = 0;          //RTC latched seconds.
+  this.latchedMinutes = 0;          //RTC latched minutes.
+  this.latchedHours = 0;            //RTC latched hours.
+  this.latchedLDays = 0;            //RTC latched lower 8-bits of the day counter.
+  this.latchedHDays = 0;            //RTC latched high-bit of the day counter.
+  this.RTCSeconds = 0;            //RTC seconds counter.
+  this.RTCMinutes = 0;            //RTC minutes counter.
+  this.RTCHours = 0;              //RTC hours counter.
+  this.RTCDays = 0;              //RTC days counter.
+  this.RTCDayOverFlow = false;        //Did the RTC overflow and wrap the day counter?
+  this.RTCHALT = false;            //Is the RTC allowed to clock up?
+  //Gyro:
+  this.highX = 127;
+  this.lowX = 127;
+  this.highY = 127;
+  this.lowY = 127;
+  //Sound variables:
+  this.audioHandle = null;            //XAudioJS handle
+  this.numSamplesTotal = 0;            //Length of the sound buffers.
+  this.sampleSize = 0;              //Length of the sound buffer for one channel.
+  this.dutyLookup = [                //Map the duty values given to ones we can work with.
+    [false, false, false, false, false, false, false, true],
+    [true, false, false, false, false, false, false, true],
+    [true, false, false, false, false, true, true, true],
+    [false, true, true, true, true, true, true, false]
+  ];
+  this.currentBuffer = [];            //The audio buffer we're working on.
+  this.bufferContainAmount = 0;          //Buffer maintenance metric.
+  this.LSFR15Table = null;
+  this.LSFR7Table = null;
+  this.noiseSampleTable = null;
+  this.initializeAudioStartState();
+  this.soundMasterEnabled = false;      //As its name implies
+  this.channel3PCM = null;          //Channel 3 adjusted sample buffer.
+  //Vin Shit:
+  this.VinLeftChannelMasterVolume = 8;    //Computed post-mixing volume.
+  this.VinRightChannelMasterVolume = 8;    //Computed post-mixing volume.
+  //Channel paths enabled:
+  this.leftChannel1 = false;
+  this.leftChannel2 = false;
+  this.leftChannel3 = false;
+  this.leftChannel4 = false;
+  this.rightChannel1 = false;
+  this.rightChannel2 = false;
+  this.rightChannel3 = false;
+  this.rightChannel4 = false;
+  //Channel output level caches:
+  this.channel1currentSampleLeft = 0;
+  this.channel1currentSampleRight = 0;
+  this.channel2currentSampleLeft = 0;
+  this.channel2currentSampleRight = 0;
+  this.channel3currentSampleLeft = 0;
+  this.channel3currentSampleRight = 0;
+  this.channel4currentSampleLeft = 0;
+  this.channel4currentSampleRight = 0;
+  this.channel1currentSampleLeftSecondary = 0;
+  this.channel1currentSampleRightSecondary = 0;
+  this.channel2currentSampleLeftSecondary = 0;
+  this.channel2currentSampleRightSecondary = 0;
+  this.channel3currentSampleLeftSecondary = 0;
+  this.channel3currentSampleRightSecondary = 0;
+  this.channel4currentSampleLeftSecondary = 0;
+  this.channel4currentSampleRightSecondary = 0;
+  this.channel1currentSampleLeftTrimary = 0;
+  this.channel1currentSampleRightTrimary = 0;
+  this.channel2currentSampleLeftTrimary = 0;
+  this.channel2currentSampleRightTrimary = 0;
+  this.mixerOutputCache = 0;
+  //Pre-multipliers to cache some calculations:
+  this.initializeTiming();
+  this.machineOut = 0;        //Premultiplier for audio samples per instruction.
+  //Audio generation counters:
+  this.audioTicks = 0;        //Used to sample the audio system every x CPU instructions.
+  this.audioIndex = 0;        //Used to keep alignment on audio generation.
+  this.rollover = 0;          //Used to keep alignment on the number of samples to output (Realign from counter alias).
+  //Timing Variables
+  this.emulatorTicks = 0;        //Times for how many instructions to execute before ending the loop.
+  this.DIVTicks = 56;          //DIV Ticks Counter (Invisible lower 8-bit)
+  this.LCDTicks = 60;          //Counter for how many instructions have been executed on a scanline so far.
+  this.timerTicks = 0;        //Counter for the TIMA timer.
+  this.TIMAEnabled = false;      //Is TIMA enabled?
+  this.TACClocker = 1024;        //Timer Max Ticks
+  this.serialTimer = 0;        //Serial IRQ Timer
+  this.serialShiftTimer = 0;      //Serial Transfer Shift Timer
+  this.serialShiftTimerAllocated = 0;  //Serial Transfer Shift Timer Refill
+  this.IRQEnableDelay = 0;      //Are the interrupts on queue to be enabled?
+  var dateVar = new_Date();     // The line is changed for benchmarking.
+  this.lastIteration = dateVar.getTime();//The last time we iterated the main loop.
+  dateVar = new_Date();         // The line is changed for benchmarking.
+  this.firstIteration = dateVar.getTime();
+  this.iterations = 0;
+  this.actualScanLine = 0;      //Actual scan line...
+  this.lastUnrenderedLine = 0;    //Last rendered scan line...
+  this.queuedScanLines = 0;
+  this.totalLinesPassed = 0;
+  this.haltPostClocks = 0;      //Post-Halt clocking.
+  //ROM Cartridge Components:
+  this.cMBC1 = false;          //Does the cartridge use MBC1?
+  this.cMBC2 = false;          //Does the cartridge use MBC2?
+  this.cMBC3 = false;          //Does the cartridge use MBC3?
+  this.cMBC5 = false;          //Does the cartridge use MBC5?
+  this.cMBC7 = false;          //Does the cartridge use MBC7?
+  this.cSRAM = false;          //Does the cartridge use save RAM?
+  this.cMMMO1 = false;        //...
+  this.cRUMBLE = false;        //Does the cartridge use the RUMBLE addressing (modified MBC5)?
+  this.cCamera = false;        //Is the cartridge actually a GameBoy Camera?
+  this.cTAMA5 = false;        //Does the cartridge use TAMA5? (Tamagotchi Cartridge)
+  this.cHuC3 = false;          //Does the cartridge use HuC3 (Hudson Soft / modified MBC3)?
+  this.cHuC1 = false;          //Does the cartridge use HuC1 (Hudson Soft / modified MBC1)?
+  this.cTIMER = false;        //Does the cartridge have an RTC?
+  this.ROMBanks = [          // 1 Bank = 16 KBytes = 256 Kbits
+    2, 4, 8, 16, 32, 64, 128, 256, 512
+  ];
+  this.ROMBanks[0x52] = 72;
+  this.ROMBanks[0x53] = 80;
+  this.ROMBanks[0x54] = 96;
+  this.numRAMBanks = 0;          //How many RAM banks were actually allocated?
+  ////Graphics Variables
+  this.currVRAMBank = 0;          //Current VRAM bank for GBC.
+  this.backgroundX = 0;          //Register SCX (X-Scroll)
+  this.backgroundY = 0;          //Register SCY (Y-Scroll)
+  this.gfxWindowDisplay = false;      //Is the windows enabled?
+  this.gfxSpriteShow = false;        //Are sprites enabled?
+  this.gfxSpriteNormalHeight = true;    //Are we doing 8x8 or 8x16 sprites?
+  this.bgEnabled = true;          //Is the BG enabled?
+  this.BGPriorityEnabled = true;      //Can we flag the BG for priority over sprites?
+  this.gfxWindowCHRBankPosition = 0;    //The current bank of the character map the window uses.
+  this.gfxBackgroundCHRBankPosition = 0;  //The current bank of the character map the BG uses.
+  this.gfxBackgroundBankOffset = 0x80;  //Fast mapping of the tile numbering/
+  this.windowY = 0;            //Current Y offset of the window.
+  this.windowX = 0;            //Current X offset of the window.
+  this.drewBlank = 0;            //To prevent the repeating of drawing a blank screen.
+  this.drewFrame = false;          //Throttle how many draws we can do to once per iteration.
+  this.midScanlineOffset = -1;      //mid-scanline rendering offset.
+  this.pixelEnd = 0;            //track the x-coord limit for line rendering (mid-scanline usage).
+  this.currentX = 0;            //The x-coord we left off at for mid-scanline rendering.
+  //BG Tile Pointer Caches:
+  this.BGCHRBank1 = null;
+  this.BGCHRBank2 = null;
+  this.BGCHRCurrentBank = null;
+  //Tile Data Cache:
+  this.tileCache = null;
+  //Palettes:
+  this.colors = [0xEFFFDE, 0xADD794, 0x529273, 0x183442];      //"Classic" GameBoy palette colors.
+  this.OBJPalette = null;
+  this.BGPalette = null;
+  this.gbcOBJRawPalette = null;
+  this.gbcBGRawPalette = null;
+  this.gbOBJPalette = null;
+  this.gbBGPalette = null;
+  this.gbcOBJPalette = null;
+  this.gbcBGPalette = null;
+  this.gbBGColorizedPalette = null;
+  this.gbOBJColorizedPalette = null;
+  this.cachedBGPaletteConversion = null;
+  this.cachedOBJPaletteConversion = null;
+  this.updateGBBGPalette = this.updateGBRegularBGPalette;
+  this.updateGBOBJPalette = this.updateGBRegularOBJPalette;
+  this.colorizedGBPalettes = false;
+  this.BGLayerRender = null;      //Reference to the BG rendering function.
+  this.WindowLayerRender = null;    //Reference to the window rendering function.
+  this.SpriteLayerRender = null;    //Reference to the OAM rendering function.
+  this.frameBuffer = [];        //The internal frame-buffer.
+  this.swizzledFrame = null;      //The secondary gfx buffer that holds the converted RGBA values.
+  this.canvasBuffer = null;      //imageData handle
+  this.pixelStart = 0;        //Temp variable for holding the current working framebuffer offset.
+  //Variables used for scaling in JS:
+  this.onscreenWidth = this.offscreenWidth = 160;
+  this.onscreenHeight = this.offScreenheight = 144;
+  this.offscreenRGBCount = this.onscreenWidth * this.onscreenHeight * 4;
+  //Initialize the white noise cache tables ahead of time:
+  this.intializeWhiteNoise();
+}
+
+// Start of code changed for benchmarking (removed ROM):
+GameBoyCore.prototype.GBBOOTROM = [];
+GameBoyCore.prototype.GBCBOOTROM = [];
+// End of code changed for benchmarking.
+
+GameBoyCore.prototype.ffxxDump = [  //Dump of the post-BOOT I/O register state (From gambatte):
+  0x0F, 0x00, 0x7C, 0xFF, 0x00, 0x00, 0x00, 0xF8,   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
+  0x80, 0xBF, 0xF3, 0xFF, 0xBF, 0xFF, 0x3F, 0x00,   0xFF, 0xBF, 0x7F, 0xFF, 0x9F, 0xFF, 0xBF, 0xFF,
+  0xFF, 0x00, 0x00, 0xBF, 0x77, 0xF3, 0xF1, 0xFF,   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+  0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF,   0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF,
+  0x91, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,   0x00, 0x00, 0x00, 0x00, 0xFF, 0x7E, 0xFF, 0xFE,
+  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0xFF,   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,   0xC0, 0xFF, 0xC1, 0x00, 0xFE, 0xFF, 0xFF, 0xFF,
+  0xF8, 0xFF, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00,   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+  0xCE, 0xED, 0x66, 0x66, 0xCC, 0x0D, 0x00, 0x0B,   0x03, 0x73, 0x00, 0x83, 0x00, 0x0C, 0x00, 0x0D,
+  0x00, 0x08, 0x11, 0x1F, 0x88, 0x89, 0x00, 0x0E,   0xDC, 0xCC, 0x6E, 0xE6, 0xDD, 0xDD, 0xD9, 0x99,
+  0xBB, 0xBB, 0x67, 0x63, 0x6E, 0x0E, 0xEC, 0xCC,   0xDD, 0xDC, 0x99, 0x9F, 0xBB, 0xB9, 0x33, 0x3E,
+  0x45, 0xEC, 0x52, 0xFA, 0x08, 0xB7, 0x07, 0x5D,   0x01, 0xFD, 0xC0, 0xFF, 0x08, 0xFC, 0x00, 0xE5,
+  0x0B, 0xF8, 0xC2, 0xCE, 0xF4, 0xF9, 0x0F, 0x7F,   0x45, 0x6D, 0x3D, 0xFE, 0x46, 0x97, 0x33, 0x5E,
+  0x08, 0xEF, 0xF1, 0xFF, 0x86, 0x83, 0x24, 0x74,   0x12, 0xFC, 0x00, 0x9F, 0xB4, 0xB7, 0x06, 0xD5,
+  0xD0, 0x7A, 0x00, 0x9E, 0x04, 0x5F, 0x41, 0x2F,   0x1D, 0x77, 0x36, 0x75, 0x81, 0xAA, 0x70, 0x3A,
+  0x98, 0xD1, 0x71, 0x02, 0x4D, 0x01, 0xC1, 0xFF,   0x0D, 0x00, 0xD3, 0x05, 0xF9, 0x00, 0x0B, 0x00
+];
+GameBoyCore.prototype.OPCODE = [
+  //NOP
+  //#0x00:
+  function (parentObj) {
+    //Do Nothing...
+  },
+  //LD BC, nn
+  //#0x01:
+  function (parentObj) {
+    parentObj.registerC = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.registerB = parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF);
+    parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+  },
+  //LD (BC), A
+  //#0x02:
+  function (parentObj) {
+    parentObj.memoryWrite((parentObj.registerB << 8) | parentObj.registerC, parentObj.registerA);
+  },
+  //INC BC
+  //#0x03:
+  function (parentObj) {
+    var temp_var = ((parentObj.registerB << 8) | parentObj.registerC) + 1;
+    parentObj.registerB = (temp_var >> 8) & 0xFF;
+    parentObj.registerC = temp_var & 0xFF;
+  },
+  //INC B
+  //#0x04:
+  function (parentObj) {
+    parentObj.registerB = (parentObj.registerB + 1) & 0xFF;
+    parentObj.FZero = (parentObj.registerB == 0);
+    parentObj.FHalfCarry = ((parentObj.registerB & 0xF) == 0);
+    parentObj.FSubtract = false;
+  },
+  //DEC B
+  //#0x05:
+  function (parentObj) {
+    parentObj.registerB = (parentObj.registerB - 1) & 0xFF;
+    parentObj.FZero = (parentObj.registerB == 0);
+    parentObj.FHalfCarry = ((parentObj.registerB & 0xF) == 0xF);
+    parentObj.FSubtract = true;
+  },
+  //LD B, n
+  //#0x06:
+  function (parentObj) {
+    parentObj.registerB = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+  },
+  //RLCA
+  //#0x07:
+  function (parentObj) {
+    parentObj.FCarry = (parentObj.registerA > 0x7F);
+    parentObj.registerA = ((parentObj.registerA << 1) & 0xFF) | (parentObj.registerA >> 7);
+    parentObj.FZero = parentObj.FSubtract = parentObj.FHalfCarry = false;
+  },
+  //LD (nn), SP
+  //#0x08:
+  function (parentObj) {
+    var temp_var = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+    parentObj.memoryWrite(temp_var, parentObj.stackPointer & 0xFF);
+    parentObj.memoryWrite((temp_var + 1) & 0xFFFF, parentObj.stackPointer >> 8);
+  },
+  //ADD HL, BC
+  //#0x09:
+  function (parentObj) {
+    var dirtySum = parentObj.registersHL + ((parentObj.registerB << 8) | parentObj.registerC);
+    parentObj.FHalfCarry = ((parentObj.registersHL & 0xFFF) > (dirtySum & 0xFFF));
+    parentObj.FCarry = (dirtySum > 0xFFFF);
+    parentObj.registersHL = dirtySum & 0xFFFF;
+    parentObj.FSubtract = false;
+  },
+  //LD A, (BC)
+  //#0x0A:
+  function (parentObj) {
+    parentObj.registerA = parentObj.memoryRead((parentObj.registerB << 8) | parentObj.registerC);
+  },
+  //DEC BC
+  //#0x0B:
+  function (parentObj) {
+    var temp_var = (((parentObj.registerB << 8) | parentObj.registerC) - 1) & 0xFFFF;
+    parentObj.registerB = temp_var >> 8;
+    parentObj.registerC = temp_var & 0xFF;
+  },
+  //INC C
+  //#0x0C:
+  function (parentObj) {
+    parentObj.registerC = (parentObj.registerC + 1) & 0xFF;
+    parentObj.FZero = (parentObj.registerC == 0);
+    parentObj.FHalfCarry = ((parentObj.registerC & 0xF) == 0);
+    parentObj.FSubtract = false;
+  },
+  //DEC C
+  //#0x0D:
+  function (parentObj) {
+    parentObj.registerC = (parentObj.registerC - 1) & 0xFF;
+    parentObj.FZero = (parentObj.registerC == 0);
+    parentObj.FHalfCarry = ((parentObj.registerC & 0xF) == 0xF);
+    parentObj.FSubtract = true;
+  },
+  //LD C, n
+  //#0x0E:
+  function (parentObj) {
+    parentObj.registerC = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+  },
+  //RRCA
+  //#0x0F:
+  function (parentObj) {
+    parentObj.registerA = (parentObj.registerA >> 1) | ((parentObj.registerA & 1) << 7);
+    parentObj.FCarry = (parentObj.registerA > 0x7F);
+    parentObj.FZero = parentObj.FSubtract = parentObj.FHalfCarry = false;
+  },
+  //STOP
+  //#0x10:
+  function (parentObj) {
+    if (parentObj.cGBC) {
+      if ((parentObj.memory[0xFF4D] & 0x01) == 0x01) {    //Speed change requested.
+        if (parentObj.memory[0xFF4D] > 0x7F) {        //Go back to single speed mode.
+          cout("Going into single clock speed mode.", 0);
+          parentObj.doubleSpeedShifter = 0;
+          parentObj.memory[0xFF4D] &= 0x7F;        //Clear the double speed mode flag.
+        }
+        else {                        //Go to double speed mode.
+          cout("Going into double clock speed mode.", 0);
+          parentObj.doubleSpeedShifter = 1;
+          parentObj.memory[0xFF4D] |= 0x80;        //Set the double speed mode flag.
+        }
+        parentObj.memory[0xFF4D] &= 0xFE;          //Reset the request bit.
+      }
+      else {
+        parentObj.handleSTOP();
+      }
+    }
+    else {
+      parentObj.handleSTOP();
+    }
+  },
+  //LD DE, nn
+  //#0x11:
+  function (parentObj) {
+    parentObj.registerE = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.registerD = parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF);
+    parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+  },
+  //LD (DE), A
+  //#0x12:
+  function (parentObj) {
+    parentObj.memoryWrite((parentObj.registerD << 8) | parentObj.registerE, parentObj.registerA);
+  },
+  //INC DE
+  //#0x13:
+  function (parentObj) {
+    var temp_var = ((parentObj.registerD << 8) | parentObj.registerE) + 1;
+    parentObj.registerD = (temp_var >> 8) & 0xFF;
+    parentObj.registerE = temp_var & 0xFF;
+  },
+  //INC D
+  //#0x14:
+  function (parentObj) {
+    parentObj.registerD = (parentObj.registerD + 1) & 0xFF;
+    parentObj.FZero = (parentObj.registerD == 0);
+    parentObj.FHalfCarry = ((parentObj.registerD & 0xF) == 0);
+    parentObj.FSubtract = false;
+  },
+  //DEC D
+  //#0x15:
+  function (parentObj) {
+    parentObj.registerD = (parentObj.registerD - 1) & 0xFF;
+    parentObj.FZero = (parentObj.registerD == 0);
+    parentObj.FHalfCarry = ((parentObj.registerD & 0xF) == 0xF);
+    parentObj.FSubtract = true;
+  },
+  //LD D, n
+  //#0x16:
+  function (parentObj) {
+    parentObj.registerD = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+  },
+  //RLA
+  //#0x17:
+  function (parentObj) {
+    var carry_flag = (parentObj.FCarry) ? 1 : 0;
+    parentObj.FCarry = (parentObj.registerA > 0x7F);
+    parentObj.registerA = ((parentObj.registerA << 1) & 0xFF) | carry_flag;
+    parentObj.FZero = parentObj.FSubtract = parentObj.FHalfCarry = false;
+  },
+  //JR n
+  //#0x18:
+  function (parentObj) {
+    parentObj.programCounter = (parentObj.programCounter + ((parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24) + 1) & 0xFFFF;
+  },
+  //ADD HL, DE
+  //#0x19:
+  function (parentObj) {
+    var dirtySum = parentObj.registersHL + ((parentObj.registerD << 8) | parentObj.registerE);
+    parentObj.FHalfCarry = ((parentObj.registersHL & 0xFFF) > (dirtySum & 0xFFF));
+    parentObj.FCarry = (dirtySum > 0xFFFF);
+    parentObj.registersHL = dirtySum & 0xFFFF;
+    parentObj.FSubtract = false;
+  },
+  //LD A, (DE)
+  //#0x1A:
+  function (parentObj) {
+    parentObj.registerA = parentObj.memoryRead((parentObj.registerD << 8) | parentObj.registerE);
+  },
+  //DEC DE
+  //#0x1B:
+  function (parentObj) {
+    var temp_var = (((parentObj.registerD << 8) | parentObj.registerE) - 1) & 0xFFFF;
+    parentObj.registerD = temp_var >> 8;
+    parentObj.registerE = temp_var & 0xFF;
+  },
+  //INC E
+  //#0x1C:
+  function (parentObj) {
+    parentObj.registerE = (parentObj.registerE + 1) & 0xFF;
+    parentObj.FZero = (parentObj.registerE == 0);
+    parentObj.FHalfCarry = ((parentObj.registerE & 0xF) == 0);
+    parentObj.FSubtract = false;
+  },
+  //DEC E
+  //#0x1D:
+  function (parentObj) {
+    parentObj.registerE = (parentObj.registerE - 1) & 0xFF;
+    parentObj.FZero = (parentObj.registerE == 0);
+    parentObj.FHalfCarry = ((parentObj.registerE & 0xF) == 0xF);
+    parentObj.FSubtract = true;
+  },
+  //LD E, n
+  //#0x1E:
+  function (parentObj) {
+    parentObj.registerE = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+  },
+  //RRA
+  //#0x1F:
+  function (parentObj) {
+    var carry_flag = (parentObj.FCarry) ? 0x80 : 0;
+    parentObj.FCarry = ((parentObj.registerA & 1) == 1);
+    parentObj.registerA = (parentObj.registerA >> 1) | carry_flag;
+    parentObj.FZero = parentObj.FSubtract = parentObj.FHalfCarry = false;
+  },
+  //JR NZ, n
+  //#0x20:
+  function (parentObj) {
+    if (!parentObj.FZero) {
+      parentObj.programCounter = (parentObj.programCounter + ((parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24) + 1) & 0xFFFF;
+      parentObj.CPUTicks += 4;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    }
+  },
+  //LD HL, nn
+  //#0x21:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+  },
+  //LDI (HL), A
+  //#0x22:
+  function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerA);
+    parentObj.registersHL = (parentObj.registersHL + 1) & 0xFFFF;
+  },
+  //INC HL
+  //#0x23:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL + 1) & 0xFFFF;
+  },
+  //INC H
+  //#0x24:
+  function (parentObj) {
+    var H = ((parentObj.registersHL >> 8) + 1) & 0xFF;
+    parentObj.FZero = (H == 0);
+    parentObj.FHalfCarry = ((H & 0xF) == 0);
+    parentObj.FSubtract = false;
+    parentObj.registersHL = (H << 8) | (parentObj.registersHL & 0xFF);
+  },
+  //DEC H
+  //#0x25:
+  function (parentObj) {
+    var H = ((parentObj.registersHL >> 8) - 1) & 0xFF;
+    parentObj.FZero = (H == 0);
+    parentObj.FHalfCarry = ((H & 0xF) == 0xF);
+    parentObj.FSubtract = true;
+    parentObj.registersHL = (H << 8) | (parentObj.registersHL & 0xFF);
+  },
+  //LD H, n
+  //#0x26:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 8) | (parentObj.registersHL & 0xFF);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+  },
+  //DAA
+  //#0x27:
+  function (parentObj) {
+    if (!parentObj.FSubtract) {
+      if (parentObj.FCarry || parentObj.registerA > 0x99) {
+        parentObj.registerA = (parentObj.registerA + 0x60) & 0xFF;
+        parentObj.FCarry = true;
+      }
+      if (parentObj.FHalfCarry || (parentObj.registerA & 0xF) > 0x9) {
+        parentObj.registerA = (parentObj.registerA + 0x06) & 0xFF;
+        parentObj.FHalfCarry = false;
+      }
+    }
+    else if (parentObj.FCarry && parentObj.FHalfCarry) {
+      parentObj.registerA = (parentObj.registerA + 0x9A) & 0xFF;
+      parentObj.FHalfCarry = false;
+    }
+    else if (parentObj.FCarry) {
+      parentObj.registerA = (parentObj.registerA + 0xA0) & 0xFF;
+    }
+    else if (parentObj.FHalfCarry) {
+      parentObj.registerA = (parentObj.registerA + 0xFA) & 0xFF;
+      parentObj.FHalfCarry = false;
+    }
+    parentObj.FZero = (parentObj.registerA == 0);
+  },
+  //JR Z, n
+  //#0x28:
+  function (parentObj) {
+    if (parentObj.FZero) {
+      parentObj.programCounter = (parentObj.programCounter + ((parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24) + 1) & 0xFFFF;
+      parentObj.CPUTicks += 4;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    }
+  },
+  //ADD HL, HL
+  //#0x29:
+  function (parentObj) {
+    parentObj.FHalfCarry = ((parentObj.registersHL & 0xFFF) > 0x7FF);
+    parentObj.FCarry = (parentObj.registersHL > 0x7FFF);
+    parentObj.registersHL = (parentObj.registersHL << 1) & 0xFFFF;
+    parentObj.FSubtract = false;
+  },
+  //LDI A, (HL)
+  //#0x2A:
+  function (parentObj) {
+    parentObj.registerA = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.registersHL = (parentObj.registersHL + 1) & 0xFFFF;
+  },
+  //DEC HL
+  //#0x2B:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL - 1) & 0xFFFF;
+  },
+  //INC L
+  //#0x2C:
+  function (parentObj) {
+    var L = (parentObj.registersHL + 1) & 0xFF;
+    parentObj.FZero = (L == 0);
+    parentObj.FHalfCarry = ((L & 0xF) == 0);
+    parentObj.FSubtract = false;
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | L;
+  },
+  //DEC L
+  //#0x2D:
+  function (parentObj) {
+    var L = (parentObj.registersHL - 1) & 0xFF;
+    parentObj.FZero = (L == 0);
+    parentObj.FHalfCarry = ((L & 0xF) == 0xF);
+    parentObj.FSubtract = true;
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | L;
+  },
+  //LD L, n
+  //#0x2E:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+  },
+  //CPL
+  //#0x2F:
+  function (parentObj) {
+    parentObj.registerA ^= 0xFF;
+    parentObj.FSubtract = parentObj.FHalfCarry = true;
+  },
+  //JR NC, n
+  //#0x30:
+  function (parentObj) {
+    if (!parentObj.FCarry) {
+      parentObj.programCounter = (parentObj.programCounter + ((parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24) + 1) & 0xFFFF;
+      parentObj.CPUTicks += 4;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    }
+  },
+  //LD SP, nn
+  //#0x31:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+  },
+  //LDD (HL), A
+  //#0x32:
+  function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerA);
+    parentObj.registersHL = (parentObj.registersHL - 1) & 0xFFFF;
+  },
+  //INC SP
+  //#0x33:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer + 1) & 0xFFFF;
+  },
+  //INC (HL)
+  //#0x34:
+  function (parentObj) {
+    var temp_var = (parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) + 1) & 0xFF;
+    parentObj.FZero = (temp_var == 0);
+    parentObj.FHalfCarry = ((temp_var & 0xF) == 0);
+    parentObj.FSubtract = false;
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var);
+  },
+  //DEC (HL)
+  //#0x35:
+  function (parentObj) {
+    var temp_var = (parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) - 1) & 0xFF;
+    parentObj.FZero = (temp_var == 0);
+    parentObj.FHalfCarry = ((temp_var & 0xF) == 0xF);
+    parentObj.FSubtract = true;
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var);
+  },
+  //LD (HL), n
+  //#0x36:
+  function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter));
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+  },
+  //SCF
+  //#0x37:
+  function (parentObj) {
+    parentObj.FCarry = true;
+    parentObj.FSubtract = parentObj.FHalfCarry = false;
+  },
+  //JR C, n
+  //#0x38:
+  function (parentObj) {
+    if (parentObj.FCarry) {
+      parentObj.programCounter = (parentObj.programCounter + ((parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24) + 1) & 0xFFFF;
+      parentObj.CPUTicks += 4;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    }
+  },
+  //ADD HL, SP
+  //#0x39:
+  function (parentObj) {
+    var dirtySum = parentObj.registersHL + parentObj.stackPointer;
+    parentObj.FHalfCarry = ((parentObj.registersHL & 0xFFF) > (dirtySum & 0xFFF));
+    parentObj.FCarry = (dirtySum > 0xFFFF);
+    parentObj.registersHL = dirtySum & 0xFFFF;
+    parentObj.FSubtract = false;
+  },
+  //LDD A, (HL)
+  //#0x3A:
+  function (parentObj) {
+    parentObj.registerA = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.registersHL = (parentObj.registersHL - 1) & 0xFFFF;
+  },
+  //DEC SP
+  //#0x3B:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+  },
+  //INC A
+  //#0x3C:
+  function (parentObj) {
+    parentObj.registerA = (parentObj.registerA + 1) & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) == 0);
+    parentObj.FSubtract = false;
+  },
+  //DEC A
+  //#0x3D:
+  function (parentObj) {
+    parentObj.registerA = (parentObj.registerA - 1) & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) == 0xF);
+    parentObj.FSubtract = true;
+  },
+  //LD A, n
+  //#0x3E:
+  function (parentObj) {
+    parentObj.registerA = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+  },
+  //CCF
+  //#0x3F:
+  function (parentObj) {
+    parentObj.FCarry = !parentObj.FCarry;
+    parentObj.FSubtract = parentObj.FHalfCarry = false;
+  },
+  //LD B, B
+  //#0x40:
+  function (parentObj) {
+    //Do nothing...
+  },
+  //LD B, C
+  //#0x41:
+  function (parentObj) {
+    parentObj.registerB = parentObj.registerC;
+  },
+  //LD B, D
+  //#0x42:
+  function (parentObj) {
+    parentObj.registerB = parentObj.registerD;
+  },
+  //LD B, E
+  //#0x43:
+  function (parentObj) {
+    parentObj.registerB = parentObj.registerE;
+  },
+  //LD B, H
+  //#0x44:
+  function (parentObj) {
+    parentObj.registerB = parentObj.registersHL >> 8;
+  },
+  //LD B, L
+  //#0x45:
+  function (parentObj) {
+    parentObj.registerB = parentObj.registersHL & 0xFF;
+  },
+  //LD B, (HL)
+  //#0x46:
+  function (parentObj) {
+    parentObj.registerB = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+  },
+  //LD B, A
+  //#0x47:
+  function (parentObj) {
+    parentObj.registerB = parentObj.registerA;
+  },
+  //LD C, B
+  //#0x48:
+  function (parentObj) {
+    parentObj.registerC = parentObj.registerB;
+  },
+  //LD C, C
+  //#0x49:
+  function (parentObj) {
+    //Do nothing...
+  },
+  //LD C, D
+  //#0x4A:
+  function (parentObj) {
+    parentObj.registerC = parentObj.registerD;
+  },
+  //LD C, E
+  //#0x4B:
+  function (parentObj) {
+    parentObj.registerC = parentObj.registerE;
+  },
+  //LD C, H
+  //#0x4C:
+  function (parentObj) {
+    parentObj.registerC = parentObj.registersHL >> 8;
+  },
+  //LD C, L
+  //#0x4D:
+  function (parentObj) {
+    parentObj.registerC = parentObj.registersHL & 0xFF;
+  },
+  //LD C, (HL)
+  //#0x4E:
+  function (parentObj) {
+    parentObj.registerC = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+  },
+  //LD C, A
+  //#0x4F:
+  function (parentObj) {
+    parentObj.registerC = parentObj.registerA;
+  },
+  //LD D, B
+  //#0x50:
+  function (parentObj) {
+    parentObj.registerD = parentObj.registerB;
+  },
+  //LD D, C
+  //#0x51:
+  function (parentObj) {
+    parentObj.registerD = parentObj.registerC;
+  },
+  //LD D, D
+  //#0x52:
+  function (parentObj) {
+    //Do nothing...
+  },
+  //LD D, E
+  //#0x53:
+  function (parentObj) {
+    parentObj.registerD = parentObj.registerE;
+  },
+  //LD D, H
+  //#0x54:
+  function (parentObj) {
+    parentObj.registerD = parentObj.registersHL >> 8;
+  },
+  //LD D, L
+  //#0x55:
+  function (parentObj) {
+    parentObj.registerD = parentObj.registersHL & 0xFF;
+  },
+  //LD D, (HL)
+  //#0x56:
+  function (parentObj) {
+    parentObj.registerD = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+  },
+  //LD D, A
+  //#0x57:
+  function (parentObj) {
+    parentObj.registerD = parentObj.registerA;
+  },
+  //LD E, B
+  //#0x58:
+  function (parentObj) {
+    parentObj.registerE = parentObj.registerB;
+  },
+  //LD E, C
+  //#0x59:
+  function (parentObj) {
+    parentObj.registerE = parentObj.registerC;
+  },
+  //LD E, D
+  //#0x5A:
+  function (parentObj) {
+    parentObj.registerE = parentObj.registerD;
+  },
+  //LD E, E
+  //#0x5B:
+  function (parentObj) {
+    //Do nothing...
+  },
+  //LD E, H
+  //#0x5C:
+  function (parentObj) {
+    parentObj.registerE = parentObj.registersHL >> 8;
+  },
+  //LD E, L
+  //#0x5D:
+  function (parentObj) {
+    parentObj.registerE = parentObj.registersHL & 0xFF;
+  },
+  //LD E, (HL)
+  //#0x5E:
+  function (parentObj) {
+    parentObj.registerE = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+  },
+  //LD E, A
+  //#0x5F:
+  function (parentObj) {
+    parentObj.registerE = parentObj.registerA;
+  },
+  //LD H, B
+  //#0x60:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registerB << 8) | (parentObj.registersHL & 0xFF);
+  },
+  //LD H, C
+  //#0x61:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registerC << 8) | (parentObj.registersHL & 0xFF);
+  },
+  //LD H, D
+  //#0x62:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registerD << 8) | (parentObj.registersHL & 0xFF);
+  },
+  //LD H, E
+  //#0x63:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registerE << 8) | (parentObj.registersHL & 0xFF);
+  },
+  //LD H, H
+  //#0x64:
+  function (parentObj) {
+    //Do nothing...
+  },
+  //LD H, L
+  //#0x65:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL & 0xFF) * 0x101;
+  },
+  //LD H, (HL)
+  //#0x66:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) << 8) | (parentObj.registersHL & 0xFF);
+  },
+  //LD H, A
+  //#0x67:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registerA << 8) | (parentObj.registersHL & 0xFF);
+  },
+  //LD L, B
+  //#0x68:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.registerB;
+  },
+  //LD L, C
+  //#0x69:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.registerC;
+  },
+  //LD L, D
+  //#0x6A:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.registerD;
+  },
+  //LD L, E
+  //#0x6B:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.registerE;
+  },
+  //LD L, H
+  //#0x6C:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | (parentObj.registersHL >> 8);
+  },
+  //LD L, L
+  //#0x6D:
+  function (parentObj) {
+    //Do nothing...
+  },
+  //LD L, (HL)
+  //#0x6E:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+  },
+  //LD L, A
+  //#0x6F:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.registerA;
+  },
+  //LD (HL), B
+  //#0x70:
+  function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerB);
+  },
+  //LD (HL), C
+  //#0x71:
+  function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerC);
+  },
+  //LD (HL), D
+  //#0x72:
+  function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerD);
+  },
+  //LD (HL), E
+  //#0x73:
+  function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerE);
+  },
+  //LD (HL), H
+  //#0x74:
+  function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registersHL >> 8);
+  },
+  //LD (HL), L
+  //#0x75:
+  function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registersHL & 0xFF);
+  },
+  //HALT
+  //#0x76:
+  function (parentObj) {
+    //See if there's already an IRQ match:
+    if ((parentObj.interruptsEnabled & parentObj.interruptsRequested & 0x1F) > 0) {
+      if (!parentObj.cGBC && !parentObj.usedBootROM) {
+        //HALT bug in the DMG CPU model (Program Counter fails to increment for one instruction after HALT):
+        parentObj.skipPCIncrement = true;
+      }
+      else {
+        //CGB gets around the HALT PC bug by doubling the hidden NOP.
+        parentObj.CPUTicks += 4;
+      }
+    }
+    else {
+      //CPU is stalled until the next IRQ match:
+      parentObj.calculateHALTPeriod();
+    }
+  },
+  //LD (HL), A
+  //#0x77:
+  function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerA);
+  },
+  //LD A, B
+  //#0x78:
+  function (parentObj) {
+    parentObj.registerA = parentObj.registerB;
+  },
+  //LD A, C
+  //#0x79:
+  function (parentObj) {
+    parentObj.registerA = parentObj.registerC;
+  },
+  //LD A, D
+  //#0x7A:
+  function (parentObj) {
+    parentObj.registerA = parentObj.registerD;
+  },
+  //LD A, E
+  //#0x7B:
+  function (parentObj) {
+    parentObj.registerA = parentObj.registerE;
+  },
+  //LD A, H
+  //#0x7C:
+  function (parentObj) {
+    parentObj.registerA = parentObj.registersHL >> 8;
+  },
+  //LD A, L
+  //#0x7D:
+  function (parentObj) {
+    parentObj.registerA = parentObj.registersHL & 0xFF;
+  },
+  //LD, A, (HL)
+  //#0x7E:
+  function (parentObj) {
+    parentObj.registerA = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+  },
+  //LD A, A
+  //#0x7F:
+  function (parentObj) {
+    //Do Nothing...
+  },
+  //ADD A, B
+  //#0x80:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + parentObj.registerB;
+    parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADD A, C
+  //#0x81:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + parentObj.registerC;
+    parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADD A, D
+  //#0x82:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + parentObj.registerD;
+    parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADD A, E
+  //#0x83:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + parentObj.registerE;
+    parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADD A, H
+  //#0x84:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + (parentObj.registersHL >> 8);
+    parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADD A, L
+  //#0x85:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + (parentObj.registersHL & 0xFF);
+    parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADD A, (HL)
+  //#0x86:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADD A, A
+  //#0x87:
+  function (parentObj) {
+    parentObj.FHalfCarry = ((parentObj.registerA & 0x8) == 0x8);
+    parentObj.FCarry = (parentObj.registerA > 0x7F);
+    parentObj.registerA = (parentObj.registerA << 1) & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADC A, B
+  //#0x88:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + parentObj.registerB + ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (parentObj.registerB & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF);
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADC A, C
+  //#0x89:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + parentObj.registerC + ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (parentObj.registerC & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF);
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADC A, D
+  //#0x8A:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + parentObj.registerD + ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (parentObj.registerD & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF);
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADC A, E
+  //#0x8B:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + parentObj.registerE + ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (parentObj.registerE & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF);
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADC A, H
+  //#0x8C:
+  function (parentObj) {
+    var tempValue = (parentObj.registersHL >> 8);
+    var dirtySum = parentObj.registerA + tempValue + ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (tempValue & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF);
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADC A, L
+  //#0x8D:
+  function (parentObj) {
+    var tempValue = (parentObj.registersHL & 0xFF);
+    var dirtySum = parentObj.registerA + tempValue + ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (tempValue & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF);
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADC A, (HL)
+  //#0x8E:
+  function (parentObj) {
+    var tempValue = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    var dirtySum = parentObj.registerA + tempValue + ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (tempValue & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF);
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //ADC A, A
+  //#0x8F:
+  function (parentObj) {
+    //shift left register A one bit for some ops here as an optimization:
+    var dirtySum = (parentObj.registerA << 1) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((((parentObj.registerA << 1) & 0x1E) | ((parentObj.FCarry) ? 1 : 0)) > 0xF);
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //SUB A, B
+  //#0x90:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerB;
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //SUB A, C
+  //#0x91:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerC;
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //SUB A, D
+  //#0x92:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerD;
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //SUB A, E
+  //#0x93:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerE;
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //SUB A, H
+  //#0x94:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - (parentObj.registersHL >> 8);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //SUB A, L
+  //#0x95:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - (parentObj.registersHL & 0xFF);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //SUB A, (HL)
+  //#0x96:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //SUB A, A
+  //#0x97:
+  function (parentObj) {
+    //number - same number == 0
+    parentObj.registerA = 0;
+    parentObj.FHalfCarry = parentObj.FCarry = false;
+    parentObj.FZero = parentObj.FSubtract = true;
+  },
+  //SBC A, B
+  //#0x98:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerB - ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (parentObj.registerB & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0);
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = true;
+  },
+  //SBC A, C
+  //#0x99:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerC - ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (parentObj.registerC & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0);
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = true;
+  },
+  //SBC A, D
+  //#0x9A:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerD - ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (parentObj.registerD & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0);
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = true;
+  },
+  //SBC A, E
+  //#0x9B:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerE - ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (parentObj.registerE & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0);
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = true;
+  },
+  //SBC A, H
+  //#0x9C:
+  function (parentObj) {
+    var temp_var = parentObj.registersHL >> 8;
+    var dirtySum = parentObj.registerA - temp_var - ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (temp_var & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0);
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = true;
+  },
+  //SBC A, L
+  //#0x9D:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - (parentObj.registersHL & 0xFF) - ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (parentObj.registersHL & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0);
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = true;
+  },
+  //SBC A, (HL)
+  //#0x9E:
+  function (parentObj) {
+    var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    var dirtySum = parentObj.registerA - temp_var - ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (temp_var & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0);
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = true;
+  },
+  //SBC A, A
+  //#0x9F:
+  function (parentObj) {
+    //Optimized SBC A:
+    if (parentObj.FCarry) {
+      parentObj.FZero = false;
+      parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = true;
+      parentObj.registerA = 0xFF;
+    }
+    else {
+      parentObj.FHalfCarry = parentObj.FCarry = false;
+      parentObj.FSubtract = parentObj.FZero = true;
+      parentObj.registerA = 0;
+    }
+  },
+  //AND B
+  //#0xA0:
+  function (parentObj) {
+    parentObj.registerA &= parentObj.registerB;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = parentObj.FCarry = false;
+  },
+  //AND C
+  //#0xA1:
+  function (parentObj) {
+    parentObj.registerA &= parentObj.registerC;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = parentObj.FCarry = false;
+  },
+  //AND D
+  //#0xA2:
+  function (parentObj) {
+    parentObj.registerA &= parentObj.registerD;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = parentObj.FCarry = false;
+  },
+  //AND E
+  //#0xA3:
+  function (parentObj) {
+    parentObj.registerA &= parentObj.registerE;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = parentObj.FCarry = false;
+  },
+  //AND H
+  //#0xA4:
+  function (parentObj) {
+    parentObj.registerA &= (parentObj.registersHL >> 8);
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = parentObj.FCarry = false;
+  },
+  //AND L
+  //#0xA5:
+  function (parentObj) {
+    parentObj.registerA &= parentObj.registersHL;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = parentObj.FCarry = false;
+  },
+  //AND (HL)
+  //#0xA6:
+  function (parentObj) {
+    parentObj.registerA &= parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = parentObj.FCarry = false;
+  },
+  //AND A
+  //#0xA7:
+  function (parentObj) {
+    //number & same number = same number
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = parentObj.FCarry = false;
+  },
+  //XOR B
+  //#0xA8:
+  function (parentObj) {
+    parentObj.registerA ^= parentObj.registerB;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false;
+  },
+  //XOR C
+  //#0xA9:
+  function (parentObj) {
+    parentObj.registerA ^= parentObj.registerC;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false;
+  },
+  //XOR D
+  //#0xAA:
+  function (parentObj) {
+    parentObj.registerA ^= parentObj.registerD;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false;
+  },
+  //XOR E
+  //#0xAB:
+  function (parentObj) {
+    parentObj.registerA ^= parentObj.registerE;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false;
+  },
+  //XOR H
+  //#0xAC:
+  function (parentObj) {
+    parentObj.registerA ^= (parentObj.registersHL >> 8);
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false;
+  },
+  //XOR L
+  //#0xAD:
+  function (parentObj) {
+    parentObj.registerA ^= (parentObj.registersHL & 0xFF);
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false;
+  },
+  //XOR (HL)
+  //#0xAE:
+  function (parentObj) {
+    parentObj.registerA ^= parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false;
+  },
+  //XOR A
+  //#0xAF:
+  function (parentObj) {
+    //number ^ same number == 0
+    parentObj.registerA = 0;
+    parentObj.FZero = true;
+    parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false;
+  },
+  //OR B
+  //#0xB0:
+  function (parentObj) {
+    parentObj.registerA |= parentObj.registerB;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false;
+  },
+  //OR C
+  //#0xB1:
+  function (parentObj) {
+    parentObj.registerA |= parentObj.registerC;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false;
+  },
+  //OR D
+  //#0xB2:
+  function (parentObj) {
+    parentObj.registerA |= parentObj.registerD;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false;
+  },
+  //OR E
+  //#0xB3:
+  function (parentObj) {
+    parentObj.registerA |= parentObj.registerE;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false;
+  },
+  //OR H
+  //#0xB4:
+  function (parentObj) {
+    parentObj.registerA |= (parentObj.registersHL >> 8);
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false;
+  },
+  //OR L
+  //#0xB5:
+  function (parentObj) {
+    parentObj.registerA |= (parentObj.registersHL & 0xFF);
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false;
+  },
+  //OR (HL)
+  //#0xB6:
+  function (parentObj) {
+    parentObj.registerA |= parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false;
+  },
+  //OR A
+  //#0xB7:
+  function (parentObj) {
+    //number | same number == same number
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false;
+  },
+  //CP B
+  //#0xB8:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerB;
+    parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //CP C
+  //#0xB9:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerC;
+    parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //CP D
+  //#0xBA:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerD;
+    parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //CP E
+  //#0xBB:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.registerE;
+    parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //CP H
+  //#0xBC:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - (parentObj.registersHL >> 8);
+    parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //CP L
+  //#0xBD:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - (parentObj.registersHL & 0xFF);
+    parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //CP (HL)
+  //#0xBE:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //CP A
+  //#0xBF:
+  function (parentObj) {
+    parentObj.FHalfCarry = parentObj.FCarry = false;
+    parentObj.FZero = parentObj.FSubtract = true;
+  },
+  //RET !FZ
+  //#0xC0:
+  function (parentObj) {
+    if (!parentObj.FZero) {
+      parentObj.programCounter = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer);
+      parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF;
+      parentObj.CPUTicks += 12;
+    }
+  },
+  //POP BC
+  //#0xC1:
+  function (parentObj) {
+    parentObj.registerC = parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer);
+    parentObj.registerB = parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF);
+    parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF;
+  },
+  //JP !FZ, nn
+  //#0xC2:
+  function (parentObj) {
+    if (!parentObj.FZero) {
+      parentObj.programCounter = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+      parentObj.CPUTicks += 4;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+    }
+  },
+  //JP nn
+  //#0xC3:
+  function (parentObj) {
+    parentObj.programCounter = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+  },
+  //CALL !FZ, nn
+  //#0xC4:
+  function (parentObj) {
+    if (!parentObj.FZero) {
+      var temp_pc = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+      parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+      parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+      parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+      parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+      parentObj.programCounter = temp_pc;
+      parentObj.CPUTicks += 12;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+    }
+  },
+  //PUSH BC
+  //#0xC5:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registerB);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registerC);
+  },
+  //ADD, n
+  //#0xC6:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA + parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //RST 0
+  //#0xC7:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+    parentObj.programCounter = 0;
+  },
+  //RET FZ
+  //#0xC8:
+  function (parentObj) {
+    if (parentObj.FZero) {
+      parentObj.programCounter = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer);
+      parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF;
+      parentObj.CPUTicks += 12;
+    }
+  },
+  //RET
+  //#0xC9:
+  function (parentObj) {
+    parentObj.programCounter =  (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer);
+    parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF;
+  },
+  //JP FZ, nn
+  //#0xCA:
+  function (parentObj) {
+    if (parentObj.FZero) {
+      parentObj.programCounter = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+      parentObj.CPUTicks += 4;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+    }
+  },
+  //Secondary OP Code Set:
+  //#0xCB:
+  function (parentObj) {
+    var opcode = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    //Increment the program counter to the next instruction:
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    //Get how many CPU cycles the current 0xCBXX op code counts for:
+    parentObj.CPUTicks += parentObj.SecondaryTICKTable[opcode];
+    //Execute secondary OP codes for the 0xCB OP code call.
+    parentObj.CBOPCODE[opcode](parentObj);
+  },
+  //CALL FZ, nn
+  //#0xCC:
+  function (parentObj) {
+    if (parentObj.FZero) {
+      var temp_pc = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+      parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+      parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+      parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+      parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+      parentObj.programCounter = temp_pc;
+      parentObj.CPUTicks += 12;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+    }
+  },
+  //CALL nn
+  //#0xCD:
+  function (parentObj) {
+    var temp_pc = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+    parentObj.programCounter = temp_pc;
+  },
+  //ADC A, n
+  //#0xCE:
+  function (parentObj) {
+    var tempValue = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    var dirtySum = parentObj.registerA + tempValue + ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (tempValue & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF);
+    parentObj.FCarry = (dirtySum > 0xFF);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = false;
+  },
+  //RST 0x8
+  //#0xCF:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+    parentObj.programCounter = 0x8;
+  },
+  //RET !FC
+  //#0xD0:
+  function (parentObj) {
+    if (!parentObj.FCarry) {
+      parentObj.programCounter = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer);
+      parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF;
+      parentObj.CPUTicks += 12;
+    }
+  },
+  //POP DE
+  //#0xD1:
+  function (parentObj) {
+    parentObj.registerE = parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer);
+    parentObj.registerD = parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF);
+    parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF;
+  },
+  //JP !FC, nn
+  //#0xD2:
+  function (parentObj) {
+    if (!parentObj.FCarry) {
+      parentObj.programCounter = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+      parentObj.CPUTicks += 4;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+    }
+  },
+  //0xD3 - Illegal
+  //#0xD3:
+  function (parentObj) {
+    cout("Illegal op code 0xD3 called, pausing emulation.", 2);
+    pause();
+  },
+  //CALL !FC, nn
+  //#0xD4:
+  function (parentObj) {
+    if (!parentObj.FCarry) {
+      var temp_pc = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+      parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+      parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+      parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+      parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+      parentObj.programCounter = temp_pc;
+      parentObj.CPUTicks += 12;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+    }
+  },
+  //PUSH DE
+  //#0xD5:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registerD);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registerE);
+  },
+  //SUB A, n
+  //#0xD6:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //RST 0x10
+  //#0xD7:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+    parentObj.programCounter = 0x10;
+  },
+  //RET FC
+  //#0xD8:
+  function (parentObj) {
+    if (parentObj.FCarry) {
+      parentObj.programCounter = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer);
+      parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF;
+      parentObj.CPUTicks += 12;
+    }
+  },
+  //RETI
+  //#0xD9:
+  function (parentObj) {
+    parentObj.programCounter = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer);
+    parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF;
+    //Immediate for HALT:
+    parentObj.IRQEnableDelay = (parentObj.IRQEnableDelay == 2 || parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) == 0x76) ? 1 : 2;
+  },
+  //JP FC, nn
+  //#0xDA:
+  function (parentObj) {
+    if (parentObj.FCarry) {
+      parentObj.programCounter = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+      parentObj.CPUTicks += 4;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+    }
+  },
+  //0xDB - Illegal
+  //#0xDB:
+  function (parentObj) {
+    cout("Illegal op code 0xDB called, pausing emulation.", 2);
+    pause();
+  },
+  //CALL FC, nn
+  //#0xDC:
+  function (parentObj) {
+    if (parentObj.FCarry) {
+      var temp_pc = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+      parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+      parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+      parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+      parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+      parentObj.programCounter = temp_pc;
+      parentObj.CPUTicks += 12;
+    }
+    else {
+      parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+    }
+  },
+  //0xDD - Illegal
+  //#0xDD:
+  function (parentObj) {
+    cout("Illegal op code 0xDD called, pausing emulation.", 2);
+    pause();
+  },
+  //SBC A, n
+  //#0xDE:
+  function (parentObj) {
+    var temp_var = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    var dirtySum = parentObj.registerA - temp_var - ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (temp_var & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0);
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.registerA = dirtySum & 0xFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = true;
+  },
+  //RST 0x18
+  //#0xDF:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+    parentObj.programCounter = 0x18;
+  },
+  //LDH (n), A
+  //#0xE0:
+  function (parentObj) {
+    parentObj.memoryHighWrite(parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter), parentObj.registerA);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+  },
+  //POP HL
+  //#0xE1:
+  function (parentObj) {
+    parentObj.registersHL = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer);
+    parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF;
+  },
+  //LD (0xFF00 + C), A
+  //#0xE2:
+  function (parentObj) {
+    parentObj.memoryHighWriter[parentObj.registerC](parentObj, parentObj.registerC, parentObj.registerA);
+  },
+  //0xE3 - Illegal
+  //#0xE3:
+  function (parentObj) {
+    cout("Illegal op code 0xE3 called, pausing emulation.", 2);
+    pause();
+  },
+  //0xE4 - Illegal
+  //#0xE4:
+  function (parentObj) {
+    cout("Illegal op code 0xE4 called, pausing emulation.", 2);
+    pause();
+  },
+  //PUSH HL
+  //#0xE5:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registersHL >> 8);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registersHL & 0xFF);
+  },
+  //AND n
+  //#0xE6:
+  function (parentObj) {
+    parentObj.registerA &= parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = parentObj.FCarry = false;
+  },
+  //RST 0x20
+  //#0xE7:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+    parentObj.programCounter = 0x20;
+  },
+  //ADD SP, n
+  //#0xE8:
+  function (parentObj) {
+    var temp_value2 = (parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24;
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    var temp_value = (parentObj.stackPointer + temp_value2) & 0xFFFF;
+    temp_value2 = parentObj.stackPointer ^ temp_value2 ^ temp_value;
+    parentObj.stackPointer = temp_value;
+    parentObj.FCarry = ((temp_value2 & 0x100) == 0x100);
+    parentObj.FHalfCarry = ((temp_value2 & 0x10) == 0x10);
+    parentObj.FZero = parentObj.FSubtract = false;
+  },
+  //JP, (HL)
+  //#0xE9:
+  function (parentObj) {
+    parentObj.programCounter = parentObj.registersHL;
+  },
+  //LD n, A
+  //#0xEA:
+  function (parentObj) {
+    parentObj.memoryWrite((parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter), parentObj.registerA);
+    parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+  },
+  //0xEB - Illegal
+  //#0xEB:
+  function (parentObj) {
+    cout("Illegal op code 0xEB called, pausing emulation.", 2);
+    pause();
+  },
+  //0xEC - Illegal
+  //#0xEC:
+  function (parentObj) {
+    cout("Illegal op code 0xEC called, pausing emulation.", 2);
+    pause();
+  },
+  //0xED - Illegal
+  //#0xED:
+  function (parentObj) {
+    cout("Illegal op code 0xED called, pausing emulation.", 2);
+    pause();
+  },
+  //XOR n
+  //#0xEE:
+  function (parentObj) {
+    parentObj.registerA ^= parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false;
+  },
+  //RST 0x28
+  //#0xEF:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+    parentObj.programCounter = 0x28;
+  },
+  //LDH A, (n)
+  //#0xF0:
+  function (parentObj) {
+    parentObj.registerA = parentObj.memoryHighRead(parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter));
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+  },
+  //POP AF
+  //#0xF1:
+  function (parentObj) {
+    var temp_var = parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer);
+    parentObj.FZero = (temp_var > 0x7F);
+    parentObj.FSubtract = ((temp_var & 0x40) == 0x40);
+    parentObj.FHalfCarry = ((temp_var & 0x20) == 0x20);
+    parentObj.FCarry = ((temp_var & 0x10) == 0x10);
+    parentObj.registerA = parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF);
+    parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF;
+  },
+  //LD A, (0xFF00 + C)
+  //#0xF2:
+  function (parentObj) {
+    parentObj.registerA = parentObj.memoryHighReader[parentObj.registerC](parentObj, parentObj.registerC);
+  },
+  //DI
+  //#0xF3:
+  function (parentObj) {
+    parentObj.IME = false;
+    parentObj.IRQEnableDelay = 0;
+  },
+  //0xF4 - Illegal
+  //#0xF4:
+  function (parentObj) {
+    cout("Illegal op code 0xF4 called, pausing emulation.", 2);
+    pause();
+  },
+  //PUSH AF
+  //#0xF5:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registerA);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, ((parentObj.FZero) ? 0x80 : 0) | ((parentObj.FSubtract) ? 0x40 : 0) | ((parentObj.FHalfCarry) ? 0x20 : 0) | ((parentObj.FCarry) ? 0x10 : 0));
+  },
+  //OR n
+  //#0xF6:
+  function (parentObj) {
+    parentObj.registerA |= parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false;
+  },
+  //RST 0x30
+  //#0xF7:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+    parentObj.programCounter = 0x30;
+  },
+  //LDHL SP, n
+  //#0xF8:
+  function (parentObj) {
+    var temp_var = (parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24;
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    parentObj.registersHL = (parentObj.stackPointer + temp_var) & 0xFFFF;
+    temp_var = parentObj.stackPointer ^ temp_var ^ parentObj.registersHL;
+    parentObj.FCarry = ((temp_var & 0x100) == 0x100);
+    parentObj.FHalfCarry = ((temp_var & 0x10) == 0x10);
+    parentObj.FZero = parentObj.FSubtract = false;
+  },
+  //LD SP, HL
+  //#0xF9:
+  function (parentObj) {
+    parentObj.stackPointer = parentObj.registersHL;
+  },
+  //LD A, (nn)
+  //#0xFA:
+  function (parentObj) {
+    parentObj.registerA = parentObj.memoryRead((parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter));
+    parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF;
+  },
+  //EI
+  //#0xFB:
+  function (parentObj) {
+    //Immediate for HALT:
+    parentObj.IRQEnableDelay = (parentObj.IRQEnableDelay == 2 || parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) == 0x76) ? 1 : 2;
+  },
+  //0xFC - Illegal
+  //#0xFC:
+  function (parentObj) {
+    cout("Illegal op code 0xFC called, pausing emulation.", 2);
+    pause();
+  },
+  //0xFD - Illegal
+  //#0xFD:
+  function (parentObj) {
+    cout("Illegal op code 0xFD called, pausing emulation.", 2);
+    pause();
+  },
+  //CP n
+  //#0xFE:
+  function (parentObj) {
+    var dirtySum = parentObj.registerA - parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter);
+    parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF;
+    parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF));
+    parentObj.FCarry = (dirtySum < 0);
+    parentObj.FZero = (dirtySum == 0);
+    parentObj.FSubtract = true;
+  },
+  //RST 0x38
+  //#0xFF:
+  function (parentObj) {
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8);
+    parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF;
+    parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF);
+    parentObj.programCounter = 0x38;
+  }
+];
+GameBoyCore.prototype.CBOPCODE = [
+  //RLC B
+  //#0x00:
+  function (parentObj) {
+    parentObj.FCarry = (parentObj.registerB > 0x7F);
+    parentObj.registerB = ((parentObj.registerB << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerB == 0);
+  }
+  //RLC C
+  //#0x01:
+  ,function (parentObj) {
+    parentObj.FCarry = (parentObj.registerC > 0x7F);
+    parentObj.registerC = ((parentObj.registerC << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerC == 0);
+  }
+  //RLC D
+  //#0x02:
+  ,function (parentObj) {
+    parentObj.FCarry = (parentObj.registerD > 0x7F);
+    parentObj.registerD = ((parentObj.registerD << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerD == 0);
+  }
+  //RLC E
+  //#0x03:
+  ,function (parentObj) {
+    parentObj.FCarry = (parentObj.registerE > 0x7F);
+    parentObj.registerE = ((parentObj.registerE << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerE == 0);
+  }
+  //RLC H
+  //#0x04:
+  ,function (parentObj) {
+    parentObj.FCarry = (parentObj.registersHL > 0x7FFF);
+    parentObj.registersHL = ((parentObj.registersHL << 1) & 0xFE00) | ((parentObj.FCarry) ? 0x100 : 0) | (parentObj.registersHL & 0xFF);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registersHL < 0x100);
+  }
+  //RLC L
+  //#0x05:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registersHL & 0x80) == 0x80);
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.registersHL << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0);
+  }
+  //RLC (HL)
+  //#0x06:
+  ,function (parentObj) {
+    var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.FCarry = (temp_var > 0x7F);
+    temp_var = ((temp_var << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (temp_var == 0);
+  }
+  //RLC A
+  //#0x07:
+  ,function (parentObj) {
+    parentObj.FCarry = (parentObj.registerA > 0x7F);
+    parentObj.registerA = ((parentObj.registerA << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerA == 0);
+  }
+  //RRC B
+  //#0x08:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerB & 0x01) == 0x01);
+    parentObj.registerB = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerB >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerB == 0);
+  }
+  //RRC C
+  //#0x09:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerC & 0x01) == 0x01);
+    parentObj.registerC = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerC >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerC == 0);
+  }
+  //RRC D
+  //#0x0A:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerD & 0x01) == 0x01);
+    parentObj.registerD = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerD >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerD == 0);
+  }
+  //RRC E
+  //#0x0B:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerE & 0x01) == 0x01);
+    parentObj.registerE = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerE >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerE == 0);
+  }
+  //RRC H
+  //#0x0C:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registersHL & 0x0100) == 0x0100);
+    parentObj.registersHL = ((parentObj.FCarry) ? 0x8000 : 0) | ((parentObj.registersHL >> 1) & 0xFF00) | (parentObj.registersHL & 0xFF);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registersHL < 0x100);
+  }
+  //RRC L
+  //#0x0D:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registersHL & 0x01) == 0x01);
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.FCarry) ? 0x80 : 0) | ((parentObj.registersHL & 0xFF) >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0);
+  }
+  //RRC (HL)
+  //#0x0E:
+  ,function (parentObj) {
+    var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.FCarry = ((temp_var & 0x01) == 0x01);
+    temp_var = ((parentObj.FCarry) ? 0x80 : 0) | (temp_var >> 1);
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (temp_var == 0);
+  }
+  //RRC A
+  //#0x0F:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerA & 0x01) == 0x01);
+    parentObj.registerA = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerA >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerA == 0);
+  }
+  //RL B
+  //#0x10:
+  ,function (parentObj) {
+    var newFCarry = (parentObj.registerB > 0x7F);
+    parentObj.registerB = ((parentObj.registerB << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerB == 0);
+  }
+  //RL C
+  //#0x11:
+  ,function (parentObj) {
+    var newFCarry = (parentObj.registerC > 0x7F);
+    parentObj.registerC = ((parentObj.registerC << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerC == 0);
+  }
+  //RL D
+  //#0x12:
+  ,function (parentObj) {
+    var newFCarry = (parentObj.registerD > 0x7F);
+    parentObj.registerD = ((parentObj.registerD << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerD == 0);
+  }
+  //RL E
+  //#0x13:
+  ,function (parentObj) {
+    var newFCarry = (parentObj.registerE > 0x7F);
+    parentObj.registerE = ((parentObj.registerE << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerE == 0);
+  }
+  //RL H
+  //#0x14:
+  ,function (parentObj) {
+    var newFCarry = (parentObj.registersHL > 0x7FFF);
+    parentObj.registersHL = ((parentObj.registersHL << 1) & 0xFE00) | ((parentObj.FCarry) ? 0x100 : 0) | (parentObj.registersHL & 0xFF);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registersHL < 0x100);
+  }
+  //RL L
+  //#0x15:
+  ,function (parentObj) {
+    var newFCarry = ((parentObj.registersHL & 0x80) == 0x80);
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.registersHL << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0);
+  }
+  //RL (HL)
+  //#0x16:
+  ,function (parentObj) {
+    var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    var newFCarry = (temp_var > 0x7F);
+    temp_var = ((temp_var << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FCarry = newFCarry;
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (temp_var == 0);
+  }
+  //RL A
+  //#0x17:
+  ,function (parentObj) {
+    var newFCarry = (parentObj.registerA > 0x7F);
+    parentObj.registerA = ((parentObj.registerA << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerA == 0);
+  }
+  //RR B
+  //#0x18:
+  ,function (parentObj) {
+    var newFCarry = ((parentObj.registerB & 0x01) == 0x01);
+    parentObj.registerB = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerB >> 1);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerB == 0);
+  }
+  //RR C
+  //#0x19:
+  ,function (parentObj) {
+    var newFCarry = ((parentObj.registerC & 0x01) == 0x01);
+    parentObj.registerC = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerC >> 1);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerC == 0);
+  }
+  //RR D
+  //#0x1A:
+  ,function (parentObj) {
+    var newFCarry = ((parentObj.registerD & 0x01) == 0x01);
+    parentObj.registerD = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerD >> 1);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerD == 0);
+  }
+  //RR E
+  //#0x1B:
+  ,function (parentObj) {
+    var newFCarry = ((parentObj.registerE & 0x01) == 0x01);
+    parentObj.registerE = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerE >> 1);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerE == 0);
+  }
+  //RR H
+  //#0x1C:
+  ,function (parentObj) {
+    var newFCarry = ((parentObj.registersHL & 0x0100) == 0x0100);
+    parentObj.registersHL = ((parentObj.FCarry) ? 0x8000 : 0) | ((parentObj.registersHL >> 1) & 0xFF00) | (parentObj.registersHL & 0xFF);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registersHL < 0x100);
+  }
+  //RR L
+  //#0x1D:
+  ,function (parentObj) {
+    var newFCarry = ((parentObj.registersHL & 0x01) == 0x01);
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.FCarry) ? 0x80 : 0) | ((parentObj.registersHL & 0xFF) >> 1);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0);
+  }
+  //RR (HL)
+  //#0x1E:
+  ,function (parentObj) {
+    var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    var newFCarry = ((temp_var & 0x01) == 0x01);
+    temp_var = ((parentObj.FCarry) ? 0x80 : 0) | (temp_var >> 1);
+    parentObj.FCarry = newFCarry;
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (temp_var == 0);
+  }
+  //RR A
+  //#0x1F:
+  ,function (parentObj) {
+    var newFCarry = ((parentObj.registerA & 0x01) == 0x01);
+    parentObj.registerA = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerA >> 1);
+    parentObj.FCarry = newFCarry;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerA == 0);
+  }
+  //SLA B
+  //#0x20:
+  ,function (parentObj) {
+    parentObj.FCarry = (parentObj.registerB > 0x7F);
+    parentObj.registerB = (parentObj.registerB << 1) & 0xFF;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerB == 0);
+  }
+  //SLA C
+  //#0x21:
+  ,function (parentObj) {
+    parentObj.FCarry = (parentObj.registerC > 0x7F);
+    parentObj.registerC = (parentObj.registerC << 1) & 0xFF;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerC == 0);
+  }
+  //SLA D
+  //#0x22:
+  ,function (parentObj) {
+    parentObj.FCarry = (parentObj.registerD > 0x7F);
+    parentObj.registerD = (parentObj.registerD << 1) & 0xFF;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerD == 0);
+  }
+  //SLA E
+  //#0x23:
+  ,function (parentObj) {
+    parentObj.FCarry = (parentObj.registerE > 0x7F);
+    parentObj.registerE = (parentObj.registerE << 1) & 0xFF;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerE == 0);
+  }
+  //SLA H
+  //#0x24:
+  ,function (parentObj) {
+    parentObj.FCarry = (parentObj.registersHL > 0x7FFF);
+    parentObj.registersHL = ((parentObj.registersHL << 1) & 0xFE00) | (parentObj.registersHL & 0xFF);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registersHL < 0x100);
+  }
+  //SLA L
+  //#0x25:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registersHL & 0x0080) == 0x0080);
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.registersHL << 1) & 0xFF);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0);
+  }
+  //SLA (HL)
+  //#0x26:
+  ,function (parentObj) {
+    var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.FCarry = (temp_var > 0x7F);
+    temp_var = (temp_var << 1) & 0xFF;
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (temp_var == 0);
+  }
+  //SLA A
+  //#0x27:
+  ,function (parentObj) {
+    parentObj.FCarry = (parentObj.registerA > 0x7F);
+    parentObj.registerA = (parentObj.registerA << 1) & 0xFF;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerA == 0);
+  }
+  //SRA B
+  //#0x28:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerB & 0x01) == 0x01);
+    parentObj.registerB = (parentObj.registerB & 0x80) | (parentObj.registerB >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerB == 0);
+  }
+  //SRA C
+  //#0x29:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerC & 0x01) == 0x01);
+    parentObj.registerC = (parentObj.registerC & 0x80) | (parentObj.registerC >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerC == 0);
+  }
+  //SRA D
+  //#0x2A:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerD & 0x01) == 0x01);
+    parentObj.registerD = (parentObj.registerD & 0x80) | (parentObj.registerD >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerD == 0);
+  }
+  //SRA E
+  //#0x2B:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerE & 0x01) == 0x01);
+    parentObj.registerE = (parentObj.registerE & 0x80) | (parentObj.registerE >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerE == 0);
+  }
+  //SRA H
+  //#0x2C:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registersHL & 0x0100) == 0x0100);
+    parentObj.registersHL = ((parentObj.registersHL >> 1) & 0xFF00) | (parentObj.registersHL & 0x80FF);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registersHL < 0x100);
+  }
+  //SRA L
+  //#0x2D:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registersHL & 0x0001) == 0x0001);
+    parentObj.registersHL = (parentObj.registersHL & 0xFF80) | ((parentObj.registersHL & 0xFF) >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0);
+  }
+  //SRA (HL)
+  //#0x2E:
+  ,function (parentObj) {
+    var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.FCarry = ((temp_var & 0x01) == 0x01);
+    temp_var = (temp_var & 0x80) | (temp_var >> 1);
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (temp_var == 0);
+  }
+  //SRA A
+  //#0x2F:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerA & 0x01) == 0x01);
+    parentObj.registerA = (parentObj.registerA & 0x80) | (parentObj.registerA >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerA == 0);
+  }
+  //SWAP B
+  //#0x30:
+  ,function (parentObj) {
+    parentObj.registerB = ((parentObj.registerB & 0xF) << 4) | (parentObj.registerB >> 4);
+    parentObj.FZero = (parentObj.registerB == 0);
+    parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false;
+  }
+  //SWAP C
+  //#0x31:
+  ,function (parentObj) {
+    parentObj.registerC = ((parentObj.registerC & 0xF) << 4) | (parentObj.registerC >> 4);
+    parentObj.FZero = (parentObj.registerC == 0);
+    parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false;
+  }
+  //SWAP D
+  //#0x32:
+  ,function (parentObj) {
+    parentObj.registerD = ((parentObj.registerD & 0xF) << 4) | (parentObj.registerD >> 4);
+    parentObj.FZero = (parentObj.registerD == 0);
+    parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false;
+  }
+  //SWAP E
+  //#0x33:
+  ,function (parentObj) {
+    parentObj.registerE = ((parentObj.registerE & 0xF) << 4) | (parentObj.registerE >> 4);
+    parentObj.FZero = (parentObj.registerE == 0);
+    parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false;
+  }
+  //SWAP H
+  //#0x34:
+  ,function (parentObj) {
+    parentObj.registersHL = ((parentObj.registersHL & 0xF00) << 4) | ((parentObj.registersHL & 0xF000) >> 4) | (parentObj.registersHL & 0xFF);
+    parentObj.FZero = (parentObj.registersHL < 0x100);
+    parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false;
+  }
+  //SWAP L
+  //#0x35:
+  ,function (parentObj) {
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.registersHL & 0xF) << 4) | ((parentObj.registersHL & 0xF0) >> 4);
+    parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0);
+    parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false;
+  }
+  //SWAP (HL)
+  //#0x36:
+  ,function (parentObj) {
+    var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    temp_var = ((temp_var & 0xF) << 4) | (temp_var >> 4);
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var);
+    parentObj.FZero = (temp_var == 0);
+    parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false;
+  }
+  //SWAP A
+  //#0x37:
+  ,function (parentObj) {
+    parentObj.registerA = ((parentObj.registerA & 0xF) << 4) | (parentObj.registerA >> 4);
+    parentObj.FZero = (parentObj.registerA == 0);
+    parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false;
+  }
+  //SRL B
+  //#0x38:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerB & 0x01) == 0x01);
+    parentObj.registerB >>= 1;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerB == 0);
+  }
+  //SRL C
+  //#0x39:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerC & 0x01) == 0x01);
+    parentObj.registerC >>= 1;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerC == 0);
+  }
+  //SRL D
+  //#0x3A:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerD & 0x01) == 0x01);
+    parentObj.registerD >>= 1;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerD == 0);
+  }
+  //SRL E
+  //#0x3B:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerE & 0x01) == 0x01);
+    parentObj.registerE >>= 1;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerE == 0);
+  }
+  //SRL H
+  //#0x3C:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registersHL & 0x0100) == 0x0100);
+    parentObj.registersHL = ((parentObj.registersHL >> 1) & 0xFF00) | (parentObj.registersHL & 0xFF);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registersHL < 0x100);
+  }
+  //SRL L
+  //#0x3D:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registersHL & 0x0001) == 0x0001);
+    parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.registersHL & 0xFF) >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0);
+  }
+  //SRL (HL)
+  //#0x3E:
+  ,function (parentObj) {
+    var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL);
+    parentObj.FCarry = ((temp_var & 0x01) == 0x01);
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var >> 1);
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (temp_var < 2);
+  }
+  //SRL A
+  //#0x3F:
+  ,function (parentObj) {
+    parentObj.FCarry = ((parentObj.registerA & 0x01) == 0x01);
+    parentObj.registerA >>= 1;
+    parentObj.FHalfCarry = parentObj.FSubtract = false;
+    parentObj.FZero = (parentObj.registerA == 0);
+  }
+  //BIT 0, B
+  //#0x40:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerB & 0x01) == 0);
+  }
+  //BIT 0, C
+  //#0x41:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerC & 0x01) == 0);
+  }
+  //BIT 0, D
+  //#0x42:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerD & 0x01) == 0);
+  }
+  //BIT 0, E
+  //#0x43:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerE & 0x01) == 0);
+  }
+  //BIT 0, H
+  //#0x44:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0100) == 0);
+  }
+  //BIT 0, L
+  //#0x45:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0001) == 0);
+  }
+  //BIT 0, (HL)
+  //#0x46:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x01) == 0);
+  }
+  //BIT 0, A
+  //#0x47:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerA & 0x01) == 0);
+  }
+  //BIT 1, B
+  //#0x48:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerB & 0x02) == 0);
+  }
+  //BIT 1, C
+  //#0x49:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerC & 0x02) == 0);
+  }
+  //BIT 1, D
+  //#0x4A:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerD & 0x02) == 0);
+  }
+  //BIT 1, E
+  //#0x4B:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerE & 0x02) == 0);
+  }
+  //BIT 1, H
+  //#0x4C:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0200) == 0);
+  }
+  //BIT 1, L
+  //#0x4D:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0002) == 0);
+  }
+  //BIT 1, (HL)
+  //#0x4E:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x02) == 0);
+  }
+  //BIT 1, A
+  //#0x4F:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerA & 0x02) == 0);
+  }
+  //BIT 2, B
+  //#0x50:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerB & 0x04) == 0);
+  }
+  //BIT 2, C
+  //#0x51:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerC & 0x04) == 0);
+  }
+  //BIT 2, D
+  //#0x52:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerD & 0x04) == 0);
+  }
+  //BIT 2, E
+  //#0x53:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerE & 0x04) == 0);
+  }
+  //BIT 2, H
+  //#0x54:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0400) == 0);
+  }
+  //BIT 2, L
+  //#0x55:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0004) == 0);
+  }
+  //BIT 2, (HL)
+  //#0x56:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x04) == 0);
+  }
+  //BIT 2, A
+  //#0x57:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerA & 0x04) == 0);
+  }
+  //BIT 3, B
+  //#0x58:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerB & 0x08) == 0);
+  }
+  //BIT 3, C
+  //#0x59:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerC & 0x08) == 0);
+  }
+  //BIT 3, D
+  //#0x5A:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerD & 0x08) == 0);
+  }
+  //BIT 3, E
+  //#0x5B:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerE & 0x08) == 0);
+  }
+  //BIT 3, H
+  //#0x5C:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0800) == 0);
+  }
+  //BIT 3, L
+  //#0x5D:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0008) == 0);
+  }
+  //BIT 3, (HL)
+  //#0x5E:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x08) == 0);
+  }
+  //BIT 3, A
+  //#0x5F:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerA & 0x08) == 0);
+  }
+  //BIT 4, B
+  //#0x60:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerB & 0x10) == 0);
+  }
+  //BIT 4, C
+  //#0x61:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerC & 0x10) == 0);
+  }
+  //BIT 4, D
+  //#0x62:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerD & 0x10) == 0);
+  }
+  //BIT 4, E
+  //#0x63:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerE & 0x10) == 0);
+  }
+  //BIT 4, H
+  //#0x64:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x1000) == 0);
+  }
+  //BIT 4, L
+  //#0x65:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0010) == 0);
+  }
+  //BIT 4, (HL)
+  //#0x66:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x10) == 0);
+  }
+  //BIT 4, A
+  //#0x67:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerA & 0x10) == 0);
+  }
+  //BIT 5, B
+  //#0x68:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerB & 0x20) == 0);
+  }
+  //BIT 5, C
+  //#0x69:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerC & 0x20) == 0);
+  }
+  //BIT 5, D
+  //#0x6A:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerD & 0x20) == 0);
+  }
+  //BIT 5, E
+  //#0x6B:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerE & 0x20) == 0);
+  }
+  //BIT 5, H
+  //#0x6C:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x2000) == 0);
+  }
+  //BIT 5, L
+  //#0x6D:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0020) == 0);
+  }
+  //BIT 5, (HL)
+  //#0x6E:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x20) == 0);
+  }
+  //BIT 5, A
+  //#0x6F:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerA & 0x20) == 0);
+  }
+  //BIT 6, B
+  //#0x70:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerB & 0x40) == 0);
+  }
+  //BIT 6, C
+  //#0x71:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerC & 0x40) == 0);
+  }
+  //BIT 6, D
+  //#0x72:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerD & 0x40) == 0);
+  }
+  //BIT 6, E
+  //#0x73:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerE & 0x40) == 0);
+  }
+  //BIT 6, H
+  //#0x74:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x4000) == 0);
+  }
+  //BIT 6, L
+  //#0x75:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0040) == 0);
+  }
+  //BIT 6, (HL)
+  //#0x76:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x40) == 0);
+  }
+  //BIT 6, A
+  //#0x77:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerA & 0x40) == 0);
+  }
+  //BIT 7, B
+  //#0x78:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerB & 0x80) == 0);
+  }
+  //BIT 7, C
+  //#0x79:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerC & 0x80) == 0);
+  }
+  //BIT 7, D
+  //#0x7A:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerD & 0x80) == 0);
+  }
+  //BIT 7, E
+  //#0x7B:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerE & 0x80) == 0);
+  }
+  //BIT 7, H
+  //#0x7C:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x8000) == 0);
+  }
+  //BIT 7, L
+  //#0x7D:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registersHL & 0x0080) == 0);
+  }
+  //BIT 7, (HL)
+  //#0x7E:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x80) == 0);
+  }
+  //BIT 7, A
+  //#0x7F:
+  ,function (parentObj) {
+    parentObj.FHalfCarry = true;
+    parentObj.FSubtract = false;
+    parentObj.FZero = ((parentObj.registerA & 0x80) == 0);
+  }
+  //RES 0, B
+  //#0x80:
+  ,function (parentObj) {
+    parentObj.registerB &= 0xFE;
+  }
+  //RES 0, C
+  //#0x81:
+  ,function (parentObj) {
+    parentObj.registerC &= 0xFE;
+  }
+  //RES 0, D
+  //#0x82:
+  ,function (parentObj) {
+    parentObj.registerD &= 0xFE;
+  }
+  //RES 0, E
+  //#0x83:
+  ,function (parentObj) {
+    parentObj.registerE &= 0xFE;
+  }
+  //RES 0, H
+  //#0x84:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xFEFF;
+  }
+  //RES 0, L
+  //#0x85:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xFFFE;
+  }
+  //RES 0, (HL)
+  //#0x86:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xFE);
+  }
+  //RES 0, A
+  //#0x87:
+  ,function (parentObj) {
+    parentObj.registerA &= 0xFE;
+  }
+  //RES 1, B
+  //#0x88:
+  ,function (parentObj) {
+    parentObj.registerB &= 0xFD;
+  }
+  //RES 1, C
+  //#0x89:
+  ,function (parentObj) {
+    parentObj.registerC &= 0xFD;
+  }
+  //RES 1, D
+  //#0x8A:
+  ,function (parentObj) {
+    parentObj.registerD &= 0xFD;
+  }
+  //RES 1, E
+  //#0x8B:
+  ,function (parentObj) {
+    parentObj.registerE &= 0xFD;
+  }
+  //RES 1, H
+  //#0x8C:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xFDFF;
+  }
+  //RES 1, L
+  //#0x8D:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xFFFD;
+  }
+  //RES 1, (HL)
+  //#0x8E:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xFD);
+  }
+  //RES 1, A
+  //#0x8F:
+  ,function (parentObj) {
+    parentObj.registerA &= 0xFD;
+  }
+  //RES 2, B
+  //#0x90:
+  ,function (parentObj) {
+    parentObj.registerB &= 0xFB;
+  }
+  //RES 2, C
+  //#0x91:
+  ,function (parentObj) {
+    parentObj.registerC &= 0xFB;
+  }
+  //RES 2, D
+  //#0x92:
+  ,function (parentObj) {
+    parentObj.registerD &= 0xFB;
+  }
+  //RES 2, E
+  //#0x93:
+  ,function (parentObj) {
+    parentObj.registerE &= 0xFB;
+  }
+  //RES 2, H
+  //#0x94:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xFBFF;
+  }
+  //RES 2, L
+  //#0x95:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xFFFB;
+  }
+  //RES 2, (HL)
+  //#0x96:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xFB);
+  }
+  //RES 2, A
+  //#0x97:
+  ,function (parentObj) {
+    parentObj.registerA &= 0xFB;
+  }
+  //RES 3, B
+  //#0x98:
+  ,function (parentObj) {
+    parentObj.registerB &= 0xF7;
+  }
+  //RES 3, C
+  //#0x99:
+  ,function (parentObj) {
+    parentObj.registerC &= 0xF7;
+  }
+  //RES 3, D
+  //#0x9A:
+  ,function (parentObj) {
+    parentObj.registerD &= 0xF7;
+  }
+  //RES 3, E
+  //#0x9B:
+  ,function (parentObj) {
+    parentObj.registerE &= 0xF7;
+  }
+  //RES 3, H
+  //#0x9C:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xF7FF;
+  }
+  //RES 3, L
+  //#0x9D:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xFFF7;
+  }
+  //RES 3, (HL)
+  //#0x9E:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xF7);
+  }
+  //RES 3, A
+  //#0x9F:
+  ,function (parentObj) {
+    parentObj.registerA &= 0xF7;
+  }
+  //RES 3, B
+  //#0xA0:
+  ,function (parentObj) {
+    parentObj.registerB &= 0xEF;
+  }
+  //RES 4, C
+  //#0xA1:
+  ,function (parentObj) {
+    parentObj.registerC &= 0xEF;
+  }
+  //RES 4, D
+  //#0xA2:
+  ,function (parentObj) {
+    parentObj.registerD &= 0xEF;
+  }
+  //RES 4, E
+  //#0xA3:
+  ,function (parentObj) {
+    parentObj.registerE &= 0xEF;
+  }
+  //RES 4, H
+  //#0xA4:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xEFFF;
+  }
+  //RES 4, L
+  //#0xA5:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xFFEF;
+  }
+  //RES 4, (HL)
+  //#0xA6:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xEF);
+  }
+  //RES 4, A
+  //#0xA7:
+  ,function (parentObj) {
+    parentObj.registerA &= 0xEF;
+  }
+  //RES 5, B
+  //#0xA8:
+  ,function (parentObj) {
+    parentObj.registerB &= 0xDF;
+  }
+  //RES 5, C
+  //#0xA9:
+  ,function (parentObj) {
+    parentObj.registerC &= 0xDF;
+  }
+  //RES 5, D
+  //#0xAA:
+  ,function (parentObj) {
+    parentObj.registerD &= 0xDF;
+  }
+  //RES 5, E
+  //#0xAB:
+  ,function (parentObj) {
+    parentObj.registerE &= 0xDF;
+  }
+  //RES 5, H
+  //#0xAC:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xDFFF;
+  }
+  //RES 5, L
+  //#0xAD:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xFFDF;
+  }
+  //RES 5, (HL)
+  //#0xAE:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xDF);
+  }
+  //RES 5, A
+  //#0xAF:
+  ,function (parentObj) {
+    parentObj.registerA &= 0xDF;
+  }
+  //RES 6, B
+  //#0xB0:
+  ,function (parentObj) {
+    parentObj.registerB &= 0xBF;
+  }
+  //RES 6, C
+  //#0xB1:
+  ,function (parentObj) {
+    parentObj.registerC &= 0xBF;
+  }
+  //RES 6, D
+  //#0xB2:
+  ,function (parentObj) {
+    parentObj.registerD &= 0xBF;
+  }
+  //RES 6, E
+  //#0xB3:
+  ,function (parentObj) {
+    parentObj.registerE &= 0xBF;
+  }
+  //RES 6, H
+  //#0xB4:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xBFFF;
+  }
+  //RES 6, L
+  //#0xB5:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xFFBF;
+  }
+  //RES 6, (HL)
+  //#0xB6:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xBF);
+  }
+  //RES 6, A
+  //#0xB7:
+  ,function (parentObj) {
+    parentObj.registerA &= 0xBF;
+  }
+  //RES 7, B
+  //#0xB8:
+  ,function (parentObj) {
+    parentObj.registerB &= 0x7F;
+  }
+  //RES 7, C
+  //#0xB9:
+  ,function (parentObj) {
+    parentObj.registerC &= 0x7F;
+  }
+  //RES 7, D
+  //#0xBA:
+  ,function (parentObj) {
+    parentObj.registerD &= 0x7F;
+  }
+  //RES 7, E
+  //#0xBB:
+  ,function (parentObj) {
+    parentObj.registerE &= 0x7F;
+  }
+  //RES 7, H
+  //#0xBC:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0x7FFF;
+  }
+  //RES 7, L
+  //#0xBD:
+  ,function (parentObj) {
+    parentObj.registersHL &= 0xFF7F;
+  }
+  //RES 7, (HL)
+  //#0xBE:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x7F);
+  }
+  //RES 7, A
+  //#0xBF:
+  ,function (parentObj) {
+    parentObj.registerA &= 0x7F;
+  }
+  //SET 0, B
+  //#0xC0:
+  ,function (parentObj) {
+    parentObj.registerB |= 0x01;
+  }
+  //SET 0, C
+  //#0xC1:
+  ,function (parentObj) {
+    parentObj.registerC |= 0x01;
+  }
+  //SET 0, D
+  //#0xC2:
+  ,function (parentObj) {
+    parentObj.registerD |= 0x01;
+  }
+  //SET 0, E
+  //#0xC3:
+  ,function (parentObj) {
+    parentObj.registerE |= 0x01;
+  }
+  //SET 0, H
+  //#0xC4:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x0100;
+  }
+  //SET 0, L
+  //#0xC5:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x01;
+  }
+  //SET 0, (HL)
+  //#0xC6:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x01);
+  }
+  //SET 0, A
+  //#0xC7:
+  ,function (parentObj) {
+    parentObj.registerA |= 0x01;
+  }
+  //SET 1, B
+  //#0xC8:
+  ,function (parentObj) {
+    parentObj.registerB |= 0x02;
+  }
+  //SET 1, C
+  //#0xC9:
+  ,function (parentObj) {
+    parentObj.registerC |= 0x02;
+  }
+  //SET 1, D
+  //#0xCA:
+  ,function (parentObj) {
+    parentObj.registerD |= 0x02;
+  }
+  //SET 1, E
+  //#0xCB:
+  ,function (parentObj) {
+    parentObj.registerE |= 0x02;
+  }
+  //SET 1, H
+  //#0xCC:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x0200;
+  }
+  //SET 1, L
+  //#0xCD:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x02;
+  }
+  //SET 1, (HL)
+  //#0xCE:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x02);
+  }
+  //SET 1, A
+  //#0xCF:
+  ,function (parentObj) {
+    parentObj.registerA |= 0x02;
+  }
+  //SET 2, B
+  //#0xD0:
+  ,function (parentObj) {
+    parentObj.registerB |= 0x04;
+  }
+  //SET 2, C
+  //#0xD1:
+  ,function (parentObj) {
+    parentObj.registerC |= 0x04;
+  }
+  //SET 2, D
+  //#0xD2:
+  ,function (parentObj) {
+    parentObj.registerD |= 0x04;
+  }
+  //SET 2, E
+  //#0xD3:
+  ,function (parentObj) {
+    parentObj.registerE |= 0x04;
+  }
+  //SET 2, H
+  //#0xD4:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x0400;
+  }
+  //SET 2, L
+  //#0xD5:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x04;
+  }
+  //SET 2, (HL)
+  //#0xD6:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x04);
+  }
+  //SET 2, A
+  //#0xD7:
+  ,function (parentObj) {
+    parentObj.registerA |= 0x04;
+  }
+  //SET 3, B
+  //#0xD8:
+  ,function (parentObj) {
+    parentObj.registerB |= 0x08;
+  }
+  //SET 3, C
+  //#0xD9:
+  ,function (parentObj) {
+    parentObj.registerC |= 0x08;
+  }
+  //SET 3, D
+  //#0xDA:
+  ,function (parentObj) {
+    parentObj.registerD |= 0x08;
+  }
+  //SET 3, E
+  //#0xDB:
+  ,function (parentObj) {
+    parentObj.registerE |= 0x08;
+  }
+  //SET 3, H
+  //#0xDC:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x0800;
+  }
+  //SET 3, L
+  //#0xDD:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x08;
+  }
+  //SET 3, (HL)
+  //#0xDE:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x08);
+  }
+  //SET 3, A
+  //#0xDF:
+  ,function (parentObj) {
+    parentObj.registerA |= 0x08;
+  }
+  //SET 4, B
+  //#0xE0:
+  ,function (parentObj) {
+    parentObj.registerB |= 0x10;
+  }
+  //SET 4, C
+  //#0xE1:
+  ,function (parentObj) {
+    parentObj.registerC |= 0x10;
+  }
+  //SET 4, D
+  //#0xE2:
+  ,function (parentObj) {
+    parentObj.registerD |= 0x10;
+  }
+  //SET 4, E
+  //#0xE3:
+  ,function (parentObj) {
+    parentObj.registerE |= 0x10;
+  }
+  //SET 4, H
+  //#0xE4:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x1000;
+  }
+  //SET 4, L
+  //#0xE5:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x10;
+  }
+  //SET 4, (HL)
+  //#0xE6:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x10);
+  }
+  //SET 4, A
+  //#0xE7:
+  ,function (parentObj) {
+    parentObj.registerA |= 0x10;
+  }
+  //SET 5, B
+  //#0xE8:
+  ,function (parentObj) {
+    parentObj.registerB |= 0x20;
+  }
+  //SET 5, C
+  //#0xE9:
+  ,function (parentObj) {
+    parentObj.registerC |= 0x20;
+  }
+  //SET 5, D
+  //#0xEA:
+  ,function (parentObj) {
+    parentObj.registerD |= 0x20;
+  }
+  //SET 5, E
+  //#0xEB:
+  ,function (parentObj) {
+    parentObj.registerE |= 0x20;
+  }
+  //SET 5, H
+  //#0xEC:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x2000;
+  }
+  //SET 5, L
+  //#0xED:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x20;
+  }
+  //SET 5, (HL)
+  //#0xEE:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x20);
+  }
+  //SET 5, A
+  //#0xEF:
+  ,function (parentObj) {
+    parentObj.registerA |= 0x20;
+  }
+  //SET 6, B
+  //#0xF0:
+  ,function (parentObj) {
+    parentObj.registerB |= 0x40;
+  }
+  //SET 6, C
+  //#0xF1:
+  ,function (parentObj) {
+    parentObj.registerC |= 0x40;
+  }
+  //SET 6, D
+  //#0xF2:
+  ,function (parentObj) {
+    parentObj.registerD |= 0x40;
+  }
+  //SET 6, E
+  //#0xF3:
+  ,function (parentObj) {
+    parentObj.registerE |= 0x40;
+  }
+  //SET 6, H
+  //#0xF4:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x4000;
+  }
+  //SET 6, L
+  //#0xF5:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x40;
+  }
+  //SET 6, (HL)
+  //#0xF6:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x40);
+  }
+  //SET 6, A
+  //#0xF7:
+  ,function (parentObj) {
+    parentObj.registerA |= 0x40;
+  }
+  //SET 7, B
+  //#0xF8:
+  ,function (parentObj) {
+    parentObj.registerB |= 0x80;
+  }
+  //SET 7, C
+  //#0xF9:
+  ,function (parentObj) {
+    parentObj.registerC |= 0x80;
+  }
+  //SET 7, D
+  //#0xFA:
+  ,function (parentObj) {
+    parentObj.registerD |= 0x80;
+  }
+  //SET 7, E
+  //#0xFB:
+  ,function (parentObj) {
+    parentObj.registerE |= 0x80;
+  }
+  //SET 7, H
+  //#0xFC:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x8000;
+  }
+  //SET 7, L
+  //#0xFD:
+  ,function (parentObj) {
+    parentObj.registersHL |= 0x80;
+  }
+  //SET 7, (HL)
+  //#0xFE:
+  ,function (parentObj) {
+    parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x80);
+  }
+  //SET 7, A
+  //#0xFF:
+  ,function (parentObj) {
+    parentObj.registerA |= 0x80;
+  }
+];
+GameBoyCore.prototype.TICKTable = [    //Number of machine cycles for each instruction:
+/*   0,  1,  2,  3,  4,  5,  6,  7,      8,  9,  A, B,  C,  D, E,  F*/
+     4, 12,  8,  8,  4,  4,  8,  4,     20,  8,  8, 8,  4,  4, 8,  4,  //0
+     4, 12,  8,  8,  4,  4,  8,  4,     12,  8,  8, 8,  4,  4, 8,  4,  //1
+     8, 12,  8,  8,  4,  4,  8,  4,      8,  8,  8, 8,  4,  4, 8,  4,  //2
+     8, 12,  8,  8, 12, 12, 12,  4,      8,  8,  8, 8,  4,  4, 8,  4,  //3
+
+     4,  4,  4,  4,  4,  4,  8,  4,      4,  4,  4, 4,  4,  4, 8,  4,  //4
+     4,  4,  4,  4,  4,  4,  8,  4,      4,  4,  4, 4,  4,  4, 8,  4,  //5
+     4,  4,  4,  4,  4,  4,  8,  4,      4,  4,  4, 4,  4,  4, 8,  4,  //6
+     8,  8,  8,  8,  8,  8,  4,  8,      4,  4,  4, 4,  4,  4, 8,  4,  //7
+
+     4,  4,  4,  4,  4,  4,  8,  4,      4,  4,  4, 4,  4,  4, 8,  4,  //8
+     4,  4,  4,  4,  4,  4,  8,  4,      4,  4,  4, 4,  4,  4, 8,  4,  //9
+     4,  4,  4,  4,  4,  4,  8,  4,      4,  4,  4, 4,  4,  4, 8,  4,  //A
+     4,  4,  4,  4,  4,  4,  8,  4,      4,  4,  4, 4,  4,  4, 8,  4,  //B
+
+     8, 12, 12, 16, 12, 16,  8, 16,      8, 16, 12, 0, 12, 24, 8, 16,  //C
+     8, 12, 12,  4, 12, 16,  8, 16,      8, 16, 12, 4, 12,  4, 8, 16,  //D
+    12, 12,  8,  4,  4, 16,  8, 16,     16,  4, 16, 4,  4,  4, 8, 16,  //E
+    12, 12,  8,  4,  4, 16,  8, 16,     12,  8, 16, 4,  0,  4, 8, 16   //F
+];
+GameBoyCore.prototype.SecondaryTICKTable = [  //Number of machine cycles for each 0xCBXX instruction:
+/*  0, 1, 2, 3, 4, 5,  6, 7,        8, 9, A, B, C, D,  E, F*/
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8,  //0
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8,  //1
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8,  //2
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8,  //3
+
+    8, 8, 8, 8, 8, 8, 12, 8,        8, 8, 8, 8, 8, 8, 12, 8,  //4
+    8, 8, 8, 8, 8, 8, 12, 8,        8, 8, 8, 8, 8, 8, 12, 8,  //5
+    8, 8, 8, 8, 8, 8, 12, 8,        8, 8, 8, 8, 8, 8, 12, 8,  //6
+    8, 8, 8, 8, 8, 8, 12, 8,        8, 8, 8, 8, 8, 8, 12, 8,  //7
+
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8,  //8
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8,  //9
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8,  //A
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8,  //B
+
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8,  //C
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8,  //D
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8,  //E
+    8, 8, 8, 8, 8, 8, 16, 8,        8, 8, 8, 8, 8, 8, 16, 8   //F
+];
+GameBoyCore.prototype.saveSRAMState = function () {
+  if (!this.cBATT || this.MBCRam.length == 0) {
+    //No battery backup...
+    return [];
+  }
+  else {
+    //Return the MBC RAM for backup...
+    return this.fromTypedArray(this.MBCRam);
+  }
+}
+GameBoyCore.prototype.saveRTCState = function () {
+  if (!this.cTIMER) {
+    //No battery backup...
+    return [];
+  }
+  else {
+    //Return the MBC RAM for backup...
+    return [
+      this.lastIteration,
+      this.RTCisLatched,
+      this.latchedSeconds,
+      this.latchedMinutes,
+      this.latchedHours,
+      this.latchedLDays,
+      this.latchedHDays,
+      this.RTCSeconds,
+      this.RTCMinutes,
+      this.RTCHours,
+      this.RTCDays,
+      this.RTCDayOverFlow,
+      this.RTCHALT
+    ];
+  }
+}
+GameBoyCore.prototype.saveState = function () {
+  return [
+    this.fromTypedArray(this.ROM),
+    this.inBootstrap,
+    this.registerA,
+    this.FZero,
+    this.FSubtract,
+    this.FHalfCarry,
+    this.FCarry,
+    this.registerB,
+    this.registerC,
+    this.registerD,
+    this.registerE,
+    this.registersHL,
+    this.stackPointer,
+    this.programCounter,
+    this.halt,
+    this.IME,
+    this.hdmaRunning,
+    this.CPUTicks,
+    this.doubleSpeedShifter,
+    this.fromTypedArray(this.memory),
+    this.fromTypedArray(this.MBCRam),
+    this.fromTypedArray(this.VRAM),
+    this.currVRAMBank,
+    this.fromTypedArray(this.GBCMemory),
+    this.MBC1Mode,
+    this.MBCRAMBanksEnabled,
+    this.currMBCRAMBank,
+    this.currMBCRAMBankPosition,
+    this.cGBC,
+    this.gbcRamBank,
+    this.gbcRamBankPosition,
+    this.ROMBank1offs,
+    this.currentROMBank,
+    this.cartridgeType,
+    this.name,
+    this.gameCode,
+    this.modeSTAT,
+    this.LYCMatchTriggerSTAT,
+    this.mode2TriggerSTAT,
+    this.mode1TriggerSTAT,
+    this.mode0TriggerSTAT,
+    this.LCDisOn,
+    this.gfxWindowCHRBankPosition,
+    this.gfxWindowDisplay,
+    this.gfxSpriteShow,
+    this.gfxSpriteNormalHeight,
+    this.gfxBackgroundCHRBankPosition,
+    this.gfxBackgroundBankOffset,
+    this.TIMAEnabled,
+    this.DIVTicks,
+    this.LCDTicks,
+    this.timerTicks,
+    this.TACClocker,
+    this.serialTimer,
+    this.serialShiftTimer,
+    this.serialShiftTimerAllocated,
+    this.IRQEnableDelay,
+    this.lastIteration,
+    this.cMBC1,
+    this.cMBC2,
+    this.cMBC3,
+    this.cMBC5,
+    this.cMBC7,
+    this.cSRAM,
+    this.cMMMO1,
+    this.cRUMBLE,
+    this.cCamera,
+    this.cTAMA5,
+    this.cHuC3,
+    this.cHuC1,
+    this.drewBlank,
+    this.fromTypedArray(this.frameBuffer),
+    this.bgEnabled,
+    this.BGPriorityEnabled,
+    this.channel1FrequencyTracker,
+    this.channel1FrequencyCounter,
+    this.channel1totalLength,
+    this.channel1envelopeVolume,
+    this.channel1envelopeType,
+    this.channel1envelopeSweeps,
+    this.channel1envelopeSweepsLast,
+    this.channel1consecutive,
+    this.channel1frequency,
+    this.channel1SweepFault,
+    this.channel1ShadowFrequency,
+    this.channel1timeSweep,
+    this.channel1lastTimeSweep,
+    this.channel1numSweep,
+    this.channel1frequencySweepDivider,
+    this.channel1decreaseSweep,
+    this.channel2FrequencyTracker,
+    this.channel2FrequencyCounter,
+    this.channel2totalLength,
+    this.channel2envelopeVolume,
+    this.channel2envelopeType,
+    this.channel2envelopeSweeps,
+    this.channel2envelopeSweepsLast,
+    this.channel2consecutive,
+    this.channel2frequency,
+    this.channel3canPlay,
+    this.channel3totalLength,
+    this.channel3patternType,
+    this.channel3frequency,
+    this.channel3consecutive,
+    this.fromTypedArray(this.channel3PCM),
+    this.channel4FrequencyPeriod,
+    this.channel4lastSampleLookup,
+    this.channel4totalLength,
+    this.channel4envelopeVolume,
+    this.channel4currentVolume,
+    this.channel4envelopeType,
+    this.channel4envelopeSweeps,
+    this.channel4envelopeSweepsLast,
+    this.channel4consecutive,
+    this.channel4BitRange,
+    this.soundMasterEnabled,
+    this.VinLeftChannelMasterVolume,
+    this.VinRightChannelMasterVolume,
+    this.leftChannel1,
+    this.leftChannel2,
+    this.leftChannel3,
+    this.leftChannel4,
+    this.rightChannel1,
+    this.rightChannel2,
+    this.rightChannel3,
+    this.rightChannel4,
+    this.channel1currentSampleLeft,
+    this.channel1currentSampleRight,
+    this.channel2currentSampleLeft,
+    this.channel2currentSampleRight,
+    this.channel3currentSampleLeft,
+    this.channel3currentSampleRight,
+    this.channel4currentSampleLeft,
+    this.channel4currentSampleRight,
+    this.channel1currentSampleLeftSecondary,
+    this.channel1currentSampleRightSecondary,
+    this.channel2currentSampleLeftSecondary,
+    this.channel2currentSampleRightSecondary,
+    this.channel3currentSampleLeftSecondary,
+    this.channel3currentSampleRightSecondary,
+    this.channel4currentSampleLeftSecondary,
+    this.channel4currentSampleRightSecondary,
+    this.channel1currentSampleLeftTrimary,
+    this.channel1currentSampleRightTrimary,
+    this.channel2currentSampleLeftTrimary,
+    this.channel2currentSampleRightTrimary,
+    this.mixerOutputCache,
+    this.channel1DutyTracker,
+    this.channel1CachedDuty,
+    this.channel2DutyTracker,
+    this.channel2CachedDuty,
+    this.channel1Enabled,
+    this.channel2Enabled,
+    this.channel3Enabled,
+    this.channel4Enabled,
+    this.sequencerClocks,
+    this.sequencePosition,
+    this.channel3Counter,
+    this.channel4Counter,
+    this.cachedChannel3Sample,
+    this.cachedChannel4Sample,
+    this.channel3FrequencyPeriod,
+    this.channel3lastSampleLookup,
+    this.actualScanLine,
+    this.lastUnrenderedLine,
+    this.queuedScanLines,
+    this.RTCisLatched,
+    this.latchedSeconds,
+    this.latchedMinutes,
+    this.latchedHours,
+    this.latchedLDays,
+    this.latchedHDays,
+    this.RTCSeconds,
+    this.RTCMinutes,
+    this.RTCHours,
+    this.RTCDays,
+    this.RTCDayOverFlow,
+    this.RTCHALT,
+    this.usedBootROM,
+    this.skipPCIncrement,
+    this.STATTracker,
+    this.gbcRamBankPositionECHO,
+    this.numRAMBanks,
+    this.windowY,
+    this.windowX,
+    this.fromTypedArray(this.gbcOBJRawPalette),
+    this.fromTypedArray(this.gbcBGRawPalette),
+    this.fromTypedArray(this.gbOBJPalette),
+    this.fromTypedArray(this.gbBGPalette),
+    this.fromTypedArray(this.gbcOBJPalette),
+    this.fromTypedArray(this.gbcBGPalette),
+    this.fromTypedArray(this.gbBGColorizedPalette),
+    this.fromTypedArray(this.gbOBJColorizedPalette),
+    this.fromTypedArray(this.cachedBGPaletteConversion),
+    this.fromTypedArray(this.cachedOBJPaletteConversion),
+    this.fromTypedArray(this.BGCHRBank1),
+    this.fromTypedArray(this.BGCHRBank2),
+    this.haltPostClocks,
+    this.interruptsRequested,
+    this.interruptsEnabled,
+    this.remainingClocks,
+    this.colorizedGBPalettes,
+    this.backgroundY,
+    this.backgroundX,
+    this.CPUStopped
+  ];
+}
+GameBoyCore.prototype.returnFromState = function (returnedFrom) {
+  var index = 0;
+  var state = returnedFrom.slice(0);
+  this.ROM = this.toTypedArray(state[index++], "uint8");
+  this.ROMBankEdge = Math.floor(this.ROM.length / 0x4000);
+  this.inBootstrap = state[index++];
+  this.registerA = state[index++];
+  this.FZero = state[index++];
+  this.FSubtract = state[index++];
+  this.FHalfCarry = state[index++];
+  this.FCarry = state[index++];
+  this.registerB = state[index++];
+  this.registerC = state[index++];
+  this.registerD = state[index++];
+  this.registerE = state[index++];
+  this.registersHL = state[index++];
+  this.stackPointer = state[index++];
+  this.programCounter = state[index++];
+  this.halt = state[index++];
+  this.IME = state[index++];
+  this.hdmaRunning = state[index++];
+  this.CPUTicks = state[index++];
+  this.doubleSpeedShifter = state[index++];
+  this.memory = this.toTypedArray(state[index++], "uint8");
+  this.MBCRam = this.toTypedArray(state[index++], "uint8");
+  this.VRAM = this.toTypedArray(state[index++], "uint8");
+  this.currVRAMBank = state[index++];
+  this.GBCMemory = this.toTypedArray(state[index++], "uint8");
+  this.MBC1Mode = state[index++];
+  this.MBCRAMBanksEnabled = state[index++];
+  this.currMBCRAMBank = state[index++];
+  this.currMBCRAMBankPosition = state[index++];
+  this.cGBC = state[index++];
+  this.gbcRamBank = state[index++];
+  this.gbcRamBankPosition = state[index++];
+  this.ROMBank1offs = state[index++];
+  this.currentROMBank = state[index++];
+  this.cartridgeType = state[index++];
+  this.name = state[index++];
+  this.gameCode = state[index++];
+  this.modeSTAT = state[index++];
+  this.LYCMatchTriggerSTAT = state[index++];
+  this.mode2TriggerSTAT = state[index++];
+  this.mode1TriggerSTAT = state[index++];
+  this.mode0TriggerSTAT = state[index++];
+  this.LCDisOn = state[index++];
+  this.gfxWindowCHRBankPosition = state[index++];
+  this.gfxWindowDisplay = state[index++];
+  this.gfxSpriteShow = state[index++];
+  this.gfxSpriteNormalHeight = state[index++];
+  this.gfxBackgroundCHRBankPosition = state[index++];
+  this.gfxBackgroundBankOffset = state[index++];
+  this.TIMAEnabled = state[index++];
+  this.DIVTicks = state[index++];
+  this.LCDTicks = state[index++];
+  this.timerTicks = state[index++];
+  this.TACClocker = state[index++];
+  this.serialTimer = state[index++];
+  this.serialShiftTimer = state[index++];
+  this.serialShiftTimerAllocated = state[index++];
+  this.IRQEnableDelay = state[index++];
+  this.lastIteration = state[index++];
+  this.cMBC1 = state[index++];
+  this.cMBC2 = state[index++];
+  this.cMBC3 = state[index++];
+  this.cMBC5 = state[index++];
+  this.cMBC7 = state[index++];
+  this.cSRAM = state[index++];
+  this.cMMMO1 = state[index++];
+  this.cRUMBLE = state[index++];
+  this.cCamera = state[index++];
+  this.cTAMA5 = state[index++];
+  this.cHuC3 = state[index++];
+  this.cHuC1 = state[index++];
+  this.drewBlank = state[index++];
+  this.frameBuffer = this.toTypedArray(state[index++], "int32");
+  this.bgEnabled = state[index++];
+  this.BGPriorityEnabled = state[index++];
+  this.channel1FrequencyTracker = state[index++];
+  this.channel1FrequencyCounter = state[index++];
+  this.channel1totalLength = state[index++];
+  this.channel1envelopeVolume = state[index++];
+  this.channel1envelopeType = state[index++];
+  this.channel1envelopeSweeps = state[index++];
+  this.channel1envelopeSweepsLast = state[index++];
+  this.channel1consecutive = state[index++];
+  this.channel1frequency = state[index++];
+  this.channel1SweepFault = state[index++];
+  this.channel1ShadowFrequency = state[index++];
+  this.channel1timeSweep = state[index++];
+  this.channel1lastTimeSweep = state[index++];
+  this.channel1numSweep = state[index++];
+  this.channel1frequencySweepDivider = state[index++];
+  this.channel1decreaseSweep = state[index++];
+  this.channel2FrequencyTracker = state[index++];
+  this.channel2FrequencyCounter = state[index++];
+  this.channel2totalLength = state[index++];
+  this.channel2envelopeVolume = state[index++];
+  this.channel2envelopeType = state[index++];
+  this.channel2envelopeSweeps = state[index++];
+  this.channel2envelopeSweepsLast = state[index++];
+  this.channel2consecutive = state[index++];
+  this.channel2frequency = state[index++];
+  this.channel3canPlay = state[index++];
+  this.channel3totalLength = state[index++];
+  this.channel3patternType = state[index++];
+  this.channel3frequency = state[index++];
+  this.channel3consecutive = state[index++];
+  this.channel3PCM = this.toTypedArray(state[index++], "int8");
+  this.channel4FrequencyPeriod = state[index++];
+  this.channel4lastSampleLookup = state[index++];
+  this.channel4totalLength = state[index++];
+  this.channel4envelopeVolume = state[index++];
+  this.channel4currentVolume = state[index++];
+  this.channel4envelopeType = state[index++];
+  this.channel4envelopeSweeps = state[index++];
+  this.channel4envelopeSweepsLast = state[index++];
+  this.channel4consecutive = state[index++];
+  this.channel4BitRange = state[index++];
+  this.soundMasterEnabled = state[index++];
+  this.VinLeftChannelMasterVolume = state[index++];
+  this.VinRightChannelMasterVolume = state[index++];
+  this.leftChannel1 = state[index++];
+  this.leftChannel2 = state[index++];
+  this.leftChannel3 = state[index++];
+  this.leftChannel4 = state[index++];
+  this.rightChannel1 = state[index++];
+  this.rightChannel2 = state[index++];
+  this.rightChannel3 = state[index++];
+  this.rightChannel4 = state[index++];
+  this.channel1currentSampleLeft = state[index++];
+  this.channel1currentSampleRight = state[index++];
+  this.channel2currentSampleLeft = state[index++];
+  this.channel2currentSampleRight = state[index++];
+  this.channel3currentSampleLeft = state[index++];
+  this.channel3currentSampleRight = state[index++];
+  this.channel4currentSampleLeft = state[index++];
+  this.channel4currentSampleRight = state[index++];
+  this.channel1currentSampleLeftSecondary = state[index++];
+  this.channel1currentSampleRightSecondary = state[index++];
+  this.channel2currentSampleLeftSecondary = state[index++];
+  this.channel2currentSampleRightSecondary = state[index++];
+  this.channel3currentSampleLeftSecondary = state[index++];
+  this.channel3currentSampleRightSecondary = state[index++];
+  this.channel4currentSampleLeftSecondary = state[index++];
+  this.channel4currentSampleRightSecondary = state[index++];
+  this.channel1currentSampleLeftTrimary = state[index++];
+  this.channel1currentSampleRightTrimary = state[index++];
+  this.channel2currentSampleLeftTrimary = state[index++];
+  this.channel2currentSampleRightTrimary = state[index++];
+  this.mixerOutputCache = state[index++];
+  this.channel1DutyTracker = state[index++];
+  this.channel1CachedDuty = state[index++];
+  this.channel2DutyTracker = state[index++];
+  this.channel2CachedDuty = state[index++];
+  this.channel1Enabled = state[index++];
+  this.channel2Enabled = state[index++];
+  this.channel3Enabled = state[index++];
+  this.channel4Enabled = state[index++];
+  this.sequencerClocks = state[index++];
+  this.sequencePosition = state[index++];
+  this.channel3Counter = state[index++];
+  this.channel4Counter = state[index++];
+  this.cachedChannel3Sample = state[index++];
+  this.cachedChannel4Sample = state[index++];
+  this.channel3FrequencyPeriod = state[index++];
+  this.channel3lastSampleLookup = state[index++];
+  this.actualScanLine = state[index++];
+  this.lastUnrenderedLine = state[index++];
+  this.queuedScanLines = state[index++];
+  this.RTCisLatched = state[index++];
+  this.latchedSeconds = state[index++];
+  this.latchedMinutes = state[index++];
+  this.latchedHours = state[index++];
+  this.latchedLDays = state[index++];
+  this.latchedHDays = state[index++];
+  this.RTCSeconds = state[index++];
+  this.RTCMinutes = state[index++];
+  this.RTCHours = state[index++];
+  this.RTCDays = state[index++];
+  this.RTCDayOverFlow = state[index++];
+  this.RTCHALT = state[index++];
+  this.usedBootROM = state[index++];
+  this.skipPCIncrement = state[index++];
+  this.STATTracker = state[index++];
+  this.gbcRamBankPositionECHO = state[index++];
+  this.numRAMBanks = state[index++];
+  this.windowY = state[index++];
+  this.windowX = state[index++];
+  this.gbcOBJRawPalette = this.toTypedArray(state[index++], "uint8");
+  this.gbcBGRawPalette = this.toTypedArray(state[index++], "uint8");
+  this.gbOBJPalette = this.toTypedArray(state[index++], "int32");
+  this.gbBGPalette = this.toTypedArray(state[index++], "int32");
+  this.gbcOBJPalette = this.toTypedArray(state[index++], "int32");
+  this.gbcBGPalette = this.toTypedArray(state[index++], "int32");
+  this.gbBGColorizedPalette = this.toTypedArray(state[index++], "int32");
+  this.gbOBJColorizedPalette = this.toTypedArray(state[index++], "int32");
+  this.cachedBGPaletteConversion = this.toTypedArray(state[index++], "int32");
+  this.cachedOBJPaletteConversion = this.toTypedArray(state[index++], "int32");
+  this.BGCHRBank1 = this.toTypedArray(state[index++], "uint8");
+  this.BGCHRBank2 = this.toTypedArray(state[index++], "uint8");
+  this.haltPostClocks = state[index++];
+  this.interruptsRequested = state[index++];
+  this.interruptsEnabled = state[index++];
+  this.checkIRQMatching();
+  this.remainingClocks = state[index++];
+  this.colorizedGBPalettes = state[index++];
+  this.backgroundY = state[index++];
+  this.backgroundX = state[index++];
+  this.CPUStopped = state[index];
+  this.fromSaveState = true;
+  this.TICKTable = this.toTypedArray(this.TICKTable, "uint8");
+  this.SecondaryTICKTable = this.toTypedArray(this.SecondaryTICKTable, "uint8");
+  this.initializeReferencesFromSaveState();
+  this.memoryReadJumpCompile();
+  this.memoryWriteJumpCompile();
+  this.initLCD();
+  this.initSound();
+  this.noiseSampleTable = (this.channel4BitRange == 0x7FFF) ? this.LSFR15Table : this.LSFR7Table;
+  this.channel4VolumeShifter = (this.channel4BitRange == 0x7FFF) ? 15 : 7;
+}
+GameBoyCore.prototype.returnFromRTCState = function () {
+  if (typeof this.openRTC == "function" && this.cTIMER) {
+    var rtcData = this.openRTC(this.name);
+    var index = 0;
+    this.lastIteration = rtcData[index++];
+    this.RTCisLatched = rtcData[index++];
+    this.latchedSeconds = rtcData[index++];
+    this.latchedMinutes = rtcData[index++];
+    this.latchedHours = rtcData[index++];
+    this.latchedLDays = rtcData[index++];
+    this.latchedHDays = rtcData[index++];
+    this.RTCSeconds = rtcData[index++];
+    this.RTCMinutes = rtcData[index++];
+    this.RTCHours = rtcData[index++];
+    this.RTCDays = rtcData[index++];
+    this.RTCDayOverFlow = rtcData[index++];
+    this.RTCHALT = rtcData[index];
+  }
+}
+
+GameBoyCore.prototype.start = function () {
+  this.initMemory();  //Write the startup memory.
+  this.ROMLoad();    //Load the ROM into memory and get cartridge information from it.
+  this.initLCD();    //Initialize the graphics.
+  this.initSound();  //Sound object initialization.
+  this.run();      //Start the emulation.
+}
+GameBoyCore.prototype.initMemory = function () {
+  //Initialize the RAM:
+  this.memory = this.getTypedArray(0x10000, 0, "uint8");
+  this.frameBuffer = this.getTypedArray(23040, 0xF8F8F8, "int32");
+  this.BGCHRBank1 = this.getTypedArray(0x800, 0, "uint8");
+  this.TICKTable = this.toTypedArray(this.TICKTable, "uint8");
+  this.SecondaryTICKTable = this.toTypedArray(this.SecondaryTICKTable, "uint8");
+  this.channel3PCM = this.getTypedArray(0x20, 0, "int8");
+}
+GameBoyCore.prototype.generateCacheArray = function (tileAmount) {
+  var tileArray = [];
+  var tileNumber = 0;
+  while (tileNumber < tileAmount) {
+    tileArray[tileNumber++] = this.getTypedArray(64, 0, "uint8");
+  }
+  return tileArray;
+}
+GameBoyCore.prototype.initSkipBootstrap = function () {
+  //Fill in the boot ROM set register values
+  //Default values to the GB boot ROM values, then fill in the GBC boot ROM values after ROM loading
+  var index = 0xFF;
+  while (index >= 0) {
+    if (index >= 0x30 && index < 0x40) {
+      this.memoryWrite(0xFF00 | index, this.ffxxDump[index]);
+    }
+    else {
+      switch (index) {
+        case 0x00:
+        case 0x01:
+        case 0x02:
+        case 0x05:
+        case 0x07:
+        case 0x0F:
+        case 0xFF:
+          this.memoryWrite(0xFF00 | index, this.ffxxDump[index]);
+          break;
+        default:
+          this.memory[0xFF00 | index] = this.ffxxDump[index];
+      }
+    }
+    --index;
+  }
+  if (this.cGBC) {
+    this.memory[0xFF6C] = 0xFE;
+    this.memory[0xFF74] = 0xFE;
+  }
+  else {
+    this.memory[0xFF48] = 0xFF;
+    this.memory[0xFF49] = 0xFF;
+    this.memory[0xFF6C] = 0xFF;
+    this.memory[0xFF74] = 0xFF;
+  }
+  //Start as an unset device:
+  cout("Starting without the GBC boot ROM.", 0);
+  this.registerA = (this.cGBC) ? 0x11 : 0x1;
+  this.registerB = 0;
+  this.registerC = 0x13;
+  this.registerD = 0;
+  this.registerE = 0xD8;
+  this.FZero = true;
+  this.FSubtract = false;
+  this.FHalfCarry = true;
+  this.FCarry = true;
+  this.registersHL = 0x014D;
+  this.LCDCONTROL = this.LINECONTROL;
+  this.IME = false;
+  this.IRQLineMatched = 0;
+  this.interruptsRequested = 225;
+  this.interruptsEnabled = 0;
+  this.hdmaRunning = false;
+  this.CPUTicks = 12;
+  this.STATTracker = 0;
+  this.modeSTAT = 1;
+  this.spriteCount = 252;
+  this.LYCMatchTriggerSTAT = false;
+  this.mode2TriggerSTAT = false;
+  this.mode1TriggerSTAT = false;
+  this.mode0TriggerSTAT = false;
+  this.LCDisOn = true;
+  this.channel1FrequencyTracker = 0x2000;
+  this.channel1DutyTracker = 0;
+  this.channel1CachedDuty = this.dutyLookup[2];
+  this.channel1totalLength = 0;
+  this.channel1envelopeVolume = 0;
+  this.channel1envelopeType = false;
+  this.channel1envelopeSweeps = 0;
+  this.channel1envelopeSweepsLast = 0;
+  this.channel1consecutive = true;
+  this.channel1frequency = 1985;
+  this.channel1SweepFault = true;
+  this.channel1ShadowFrequency = 1985;
+  this.channel1timeSweep = 1;
+  this.channel1lastTimeSweep = 0;
+  this.channel1numSweep = 0;
+  this.channel1frequencySweepDivider = 0;
+  this.channel1decreaseSweep = false;
+  this.channel2FrequencyTracker = 0x2000;
+  this.channel2DutyTracker = 0;
+  this.channel2CachedDuty = this.dutyLookup[2];
+  this.channel2totalLength = 0;
+  this.channel2envelopeVolume = 0;
+  this.channel2envelopeType = false;
+  this.channel2envelopeSweeps = 0;
+  this.channel2envelopeSweepsLast = 0;
+  this.channel2consecutive = true;
+  this.channel2frequency = 0;
+  this.channel3canPlay = false;
+  this.channel3totalLength = 0;
+  this.channel3patternType = 4;
+  this.channel3frequency = 0;
+  this.channel3consecutive = true;
+  this.channel3Counter = 0x418;
+  this.channel4FrequencyPeriod = 8;
+  this.channel4totalLength = 0;
+  this.channel4envelopeVolume = 0;
+  this.channel4currentVolume = 0;
+  this.channel4envelopeType = false;
+  this.channel4envelopeSweeps = 0;
+  this.channel4envelopeSweepsLast = 0;
+  this.channel4consecutive = true;
+  this.channel4BitRange = 0x7FFF;
+  this.channel4VolumeShifter = 15;
+  this.channel1FrequencyCounter = 0x200;
+  this.channel2FrequencyCounter = 0x200;
+  this.channel3Counter = 0x800;
+  this.channel3FrequencyPeriod = 0x800;
+  this.channel3lastSampleLookup = 0;
+  this.channel4lastSampleLookup = 0;
+  this.VinLeftChannelMasterVolume = 1;
+  this.VinRightChannelMasterVolume = 1;
+  this.soundMasterEnabled = true;
+  this.leftChannel1 = true;
+  this.leftChannel2 = true;
+  this.leftChannel3 = true;
+  this.leftChannel4 = true;
+  this.rightChannel1 = true;
+  this.rightChannel2 = true;
+  this.rightChannel3 = false;
+  this.rightChannel4 = false;
+  this.DIVTicks = 27044;
+  this.LCDTicks = 160;
+  this.timerTicks = 0;
+  this.TIMAEnabled = false;
+  this.TACClocker = 1024;
+  this.serialTimer = 0;
+  this.serialShiftTimer = 0;
+  this.serialShiftTimerAllocated = 0;
+  this.IRQEnableDelay = 0;
+  this.actualScanLine = 144;
+  this.lastUnrenderedLine = 0;
+  this.gfxWindowDisplay = false;
+  this.gfxSpriteShow = false;
+  this.gfxSpriteNormalHeight = true;
+  this.bgEnabled = true;
+  this.BGPriorityEnabled = true;
+  this.gfxWindowCHRBankPosition = 0;
+  this.gfxBackgroundCHRBankPosition = 0;
+  this.gfxBackgroundBankOffset = 0;
+  this.windowY = 0;
+  this.windowX = 0;
+  this.drewBlank = 0;
+  this.midScanlineOffset = -1;
+  this.currentX = 0;
+}
+GameBoyCore.prototype.initBootstrap = function () {
+  //Start as an unset device:
+  cout("Starting the selected boot ROM.", 0);
+  this.programCounter = 0;
+  this.stackPointer = 0;
+  this.IME = false;
+  this.LCDTicks = 0;
+  this.DIVTicks = 0;
+  this.registerA = 0;
+  this.registerB = 0;
+  this.registerC = 0;
+  this.registerD = 0;
+  this.registerE = 0;
+  this.FZero = this.FSubtract = this.FHalfCarry = this.FCarry = false;
+  this.registersHL = 0;
+  this.leftChannel1 = false;
+  this.leftChannel2 = false;
+  this.leftChannel3 = false;
+  this.leftChannel4 = false;
+  this.rightChannel1 = false;
+  this.rightChannel2 = false;
+  this.rightChannel3 = false;
+  this.rightChannel4 = false;
+  this.channel2frequency = this.channel1frequency = 0;
+  this.channel4consecutive = this.channel2consecutive = this.channel1consecutive = false;
+  this.VinLeftChannelMasterVolume = 8;
+  this.VinRightChannelMasterVolume = 8;
+  this.memory[0xFF00] = 0xF;  //Set the joypad state.
+}
+GameBoyCore.prototype.ROMLoad = function () {
+  //Load the first two ROM banks (0x0000 - 0x7FFF) into regular gameboy memory:
+  this.ROM = [];
+  this.usedBootROM = settings[1];
+  var maxLength = this.ROMImage.length;
+  if (maxLength < 0x4000) {
+    throw(new Error("ROM image size too small."));
+  }
+  this.ROM = this.getTypedArray(maxLength, 0, "uint8");
+  var romIndex = 0;
+  if (this.usedBootROM) {
+    if (!settings[11]) {
+      //Patch in the GBC boot ROM into the memory map:
+      for (; romIndex < 0x100; ++romIndex) {
+        this.memory[romIndex] = this.GBCBOOTROM[romIndex];                      //Load in the GameBoy Color BOOT ROM.
+        this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF);              //Decode the ROM binary for the switch out.
+      }
+      for (; romIndex < 0x200; ++romIndex) {
+        this.memory[romIndex] = this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF);  //Load in the game ROM.
+      }
+      for (; romIndex < 0x900; ++romIndex) {
+        this.memory[romIndex] = this.GBCBOOTROM[romIndex - 0x100];                  //Load in the GameBoy Color BOOT ROM.
+        this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF);              //Decode the ROM binary for the switch out.
+      }
+      this.usedGBCBootROM = true;
+    }
+    else {
+      //Patch in the GBC boot ROM into the memory map:
+      for (; romIndex < 0x100; ++romIndex) {
+        this.memory[romIndex] = this.GBBOOTROM[romIndex];                      //Load in the GameBoy Color BOOT ROM.
+        this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF);              //Decode the ROM binary for the switch out.
+      }
+    }
+    for (; romIndex < 0x4000; ++romIndex) {
+      this.memory[romIndex] = this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF);  //Load in the game ROM.
+    }
+  }
+  else {
+    //Don't load in the boot ROM:
+    for (; romIndex < 0x4000; ++romIndex) {
+      this.memory[romIndex] = this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF);  //Load in the game ROM.
+    }
+  }
+  //Finish the decoding of the ROM binary:
+  for (; romIndex < maxLength; ++romIndex) {
+    this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF);
+  }
+  this.ROMBankEdge = Math.floor(this.ROM.length / 0x4000);
+  //Set up the emulator for the cartidge specifics:
+  this.interpretCartridge();
+  //Check for IRQ matching upon initialization:
+  this.checkIRQMatching();
+}
+GameBoyCore.prototype.getROMImage = function () {
+  //Return the binary version of the ROM image currently running:
+  if (this.ROMImage.length > 0) {
+    return this.ROMImage.length;
+  }
+  var length = this.ROM.length;
+  for (var index = 0; index < length; index++) {
+    this.ROMImage += String.fromCharCode(this.ROM[index]);
+  }
+  return this.ROMImage;
+}
+GameBoyCore.prototype.interpretCartridge = function () {
+  // ROM name
+  for (var index = 0x134; index < 0x13F; index++) {
+    if (this.ROMImage.charCodeAt(index) > 0) {
+      this.name += this.ROMImage[index];
+    }
+  }
+  // ROM game code (for newer games)
+  for (var index = 0x13F; index < 0x143; index++) {
+    if (this.ROMImage.charCodeAt(index) > 0) {
+      this.gameCode += this.ROMImage[index];
+    }
+  }
+  cout("Game Title: " + this.name + "[" + this.gameCode + "][" + this.ROMImage[0x143] + "]", 0);
+  cout("Game Code: " + this.gameCode, 0);
+  // Cartridge type
+  this.cartridgeType = this.ROM[0x147];
+  cout("Cartridge type #" + this.cartridgeType, 0);
+  //Map out ROM cartridge sub-types.
+  var MBCType = "";
+  switch (this.cartridgeType) {
+    case 0x00:
+      //ROM w/o bank switching
+      if (!settings[9]) {
+        MBCType = "ROM";
+        break;
+      }
+    case 0x01:
+      this.cMBC1 = true;
+      MBCType = "MBC1";
+      break;
+    case 0x02:
+      this.cMBC1 = true;
+      this.cSRAM = true;
+      MBCType = "MBC1 + SRAM";
+      break;
+    case 0x03:
+      this.cMBC1 = true;
+      this.cSRAM = true;
+      this.cBATT = true;
+      MBCType = "MBC1 + SRAM + BATT";
+      break;
+    case 0x05:
+      this.cMBC2 = true;
+      MBCType = "MBC2";
+      break;
+    case 0x06:
+      this.cMBC2 = true;
+      this.cBATT = true;
+      MBCType = "MBC2 + BATT";
+      break;
+    case 0x08:
+      this.cSRAM = true;
+      MBCType = "ROM + SRAM";
+      break;
+    case 0x09:
+      this.cSRAM = true;
+      this.cBATT = true;
+      MBCType = "ROM + SRAM + BATT";
+      break;
+    case 0x0B:
+      this.cMMMO1 = true;
+      MBCType = "MMMO1";
+      break;
+    case 0x0C:
+      this.cMMMO1 = true;
+      this.cSRAM = true;
+      MBCType = "MMMO1 + SRAM";
+      break;
+    case 0x0D:
+      this.cMMMO1 = true;
+      this.cSRAM = true;
+      this.cBATT = true;
+      MBCType = "MMMO1 + SRAM + BATT";
+      break;
+    case 0x0F:
+      this.cMBC3 = true;
+      this.cTIMER = true;
+      this.cBATT = true;
+      MBCType = "MBC3 + TIMER + BATT";
+      break;
+    case 0x10:
+      this.cMBC3 = true;
+      this.cTIMER = true;
+      this.cBATT = true;
+      this.cSRAM = true;
+      MBCType = "MBC3 + TIMER + BATT + SRAM";
+      break;
+    case 0x11:
+      this.cMBC3 = true;
+      MBCType = "MBC3";
+      break;
+    case 0x12:
+      this.cMBC3 = true;
+      this.cSRAM = true;
+      MBCType = "MBC3 + SRAM";
+      break;
+    case 0x13:
+      this.cMBC3 = true;
+      this.cSRAM = true;
+      this.cBATT = true;
+      MBCType = "MBC3 + SRAM + BATT";
+      break;
+    case 0x19:
+      this.cMBC5 = true;
+      MBCType = "MBC5";
+      break;
+    case 0x1A:
+      this.cMBC5 = true;
+      this.cSRAM = true;
+      MBCType = "MBC5 + SRAM";
+      break;
+    case 0x1B:
+      this.cMBC5 = true;
+      this.cSRAM = true;
+      this.cBATT = true;
+      MBCType = "MBC5 + SRAM + BATT";
+      break;
+    case 0x1C:
+      this.cRUMBLE = true;
+      MBCType = "RUMBLE";
+      break;
+    case 0x1D:
+      this.cRUMBLE = true;
+      this.cSRAM = true;
+      MBCType = "RUMBLE + SRAM";
+      break;
+    case 0x1E:
+      this.cRUMBLE = true;
+      this.cSRAM = true;
+      this.cBATT = true;
+      MBCType = "RUMBLE + SRAM + BATT";
+      break;
+    case 0x1F:
+      this.cCamera = true;
+      MBCType = "GameBoy Camera";
+      break;
+    case 0x22:
+      this.cMBC7 = true;
+      this.cSRAM = true;
+      this.cBATT = true;
+      MBCType = "MBC7 + SRAM + BATT";
+      break;
+    case 0xFD:
+      this.cTAMA5 = true;
+      MBCType = "TAMA5";
+      break;
+    case 0xFE:
+      this.cHuC3 = true;
+      MBCType = "HuC3";
+      break;
+    case 0xFF:
+      this.cHuC1 = true;
+      MBCType = "HuC1";
+      break;
+    default:
+      MBCType = "Unknown";
+      cout("Cartridge type is unknown.", 2);
+      pause();
+  }
+  cout("Cartridge Type: " + MBCType + ".", 0);
+  // ROM and RAM banks
+  this.numROMBanks = this.ROMBanks[this.ROM[0x148]];
+  cout(this.numROMBanks + " ROM banks.", 0);
+  switch (this.RAMBanks[this.ROM[0x149]]) {
+    case 0:
+      cout("No RAM banking requested for allocation or MBC is of type 2.", 0);
+      break;
+    case 2:
+      cout("1 RAM bank requested for allocation.", 0);
+      break;
+    case 3:
+      cout("4 RAM banks requested for allocation.", 0);
+      break;
+    case 4:
+      cout("16 RAM banks requested for allocation.", 0);
+      break;
+    default:
+      cout("RAM bank amount requested is unknown, will use maximum allowed by specified MBC type.", 0);
+  }
+  //Check the GB/GBC mode byte:
+  if (!this.usedBootROM) {
+    switch (this.ROM[0x143]) {
+      case 0x00:  //Only GB mode
+        this.cGBC = false;
+        cout("Only GB mode detected.", 0);
+        break;
+      case 0x32:  //Exception to the GBC identifying code:
+        if (!settings[2] && this.name + this.gameCode + this.ROM[0x143] == "Game and Watch 50") {
+          this.cGBC = true;
+          cout("Created a boot exception for Game and Watch Gallery 2 (GBC ID byte is wrong on the cartridge).", 1);
+        }
+        else {
+          this.cGBC = false;
+        }
+        break;
+      case 0x80:  //Both GB + GBC modes
+        this.cGBC = !settings[2];
+        cout("GB and GBC mode detected.", 0);
+        break;
+      case 0xC0:  //Only GBC mode
+        this.cGBC = true;
+        cout("Only GBC mode detected.", 0);
+        break;
+      default:
+        this.cGBC = false;
+        cout("Unknown GameBoy game type code #" + this.ROM[0x143] + ", defaulting to GB mode (Old games don't have a type code).", 1);
+    }
+    this.inBootstrap = false;
+    this.setupRAM();  //CPU/(V)RAM initialization.
+    this.initSkipBootstrap();
+    this.initializeAudioStartState(); // Line added for benchmarking.
+  }
+  else {
+    this.cGBC = this.usedGBCBootROM;  //Allow the GBC boot ROM to run in GBC mode...
+    this.setupRAM();  //CPU/(V)RAM initialization.
+    this.initBootstrap();
+  }
+  this.initializeModeSpecificArrays();
+  //License Code Lookup:
+  var cOldLicense = this.ROM[0x14B];
+  var cNewLicense = (this.ROM[0x144] & 0xFF00) | (this.ROM[0x145] & 0xFF);
+  if (cOldLicense != 0x33) {
+    //Old Style License Header
+    cout("Old style license code: " + cOldLicense, 0);
+  }
+  else {
+    //New Style License Header
+    cout("New style license code: " + cNewLicense, 0);
+  }
+  this.ROMImage = "";  //Memory consumption reduction.
+}
+GameBoyCore.prototype.disableBootROM = function () {
+  //Remove any traces of the boot ROM from ROM memory.
+  for (var index = 0; index < 0x100; ++index) {
+    this.memory[index] = this.ROM[index];  //Replace the GameBoy or GameBoy Color boot ROM with the game ROM.
+  }
+  if (this.usedGBCBootROM) {
+    //Remove any traces of the boot ROM from ROM memory.
+    for (index = 0x200; index < 0x900; ++index) {
+      this.memory[index] = this.ROM[index];  //Replace the GameBoy Color boot ROM with the game ROM.
+    }
+    if (!this.cGBC) {
+      //Clean up the post-boot (GB mode only) state:
+      this.GBCtoGBModeAdjust();
+    }
+    else {
+      this.recompileBootIOWriteHandling();
+    }
+  }
+  else {
+    this.recompileBootIOWriteHandling();
+  }
+}
+GameBoyCore.prototype.initializeTiming = function () {
+  //Emulator Timing:
+  this.baseCPUCyclesPerIteration = 0x80000 / 0x7D * settings[6];
+  this.CPUCyclesTotalRoundoff = this.baseCPUCyclesPerIteration % 4;
+  this.CPUCyclesTotalBase = this.CPUCyclesTotal = (this.baseCPUCyclesPerIteration - this.CPUCyclesTotalRoundoff) | 0;
+  this.CPUCyclesTotalCurrent = 0;
+}
+GameBoyCore.prototype.setupRAM = function () {
+  //Setup the auxilliary/switchable RAM:
+  if (this.cMBC2) {
+    this.numRAMBanks = 1 / 16;
+  }
+  else if (this.cMBC1 || this.cRUMBLE || this.cMBC3 || this.cHuC3) {
+    this.numRAMBanks = 4;
+  }
+  else if (this.cMBC5) {
+    this.numRAMBanks = 16;
+  }
+  else if (this.cSRAM) {
+    this.numRAMBanks = 1;
+  }
+  if (this.numRAMBanks > 0) {
+    if (!this.MBCRAMUtilized()) {
+      //For ROM and unknown MBC cartridges using the external RAM:
+      this.MBCRAMBanksEnabled = true;
+    }
+    //Switched RAM Used
+    var MBCRam = (typeof this.openMBC == "function") ? this.openMBC(this.name) : [];
+    if (MBCRam.length > 0) {
+      //Flash the SRAM into memory:
+      this.MBCRam = this.toTypedArray(MBCRam, "uint8");
+    }
+    else {
+      this.MBCRam = this.getTypedArray(this.numRAMBanks * 0x2000, 0, "uint8");
+    }
+  }
+  cout("Actual bytes of MBC RAM allocated: " + (this.numRAMBanks * 0x2000), 0);
+  this.returnFromRTCState();
+  //Setup the RAM for GBC mode.
+  if (this.cGBC) {
+    this.VRAM = this.getTypedArray(0x2000, 0, "uint8");
+    this.GBCMemory = this.getTypedArray(0x7000, 0, "uint8");
+  }
+  this.memoryReadJumpCompile();
+  this.memoryWriteJumpCompile();
+}
+GameBoyCore.prototype.MBCRAMUtilized = function () {
+  return this.cMBC1 || this.cMBC2 || this.cMBC3 || this.cMBC5 || this.cMBC7 || this.cRUMBLE;
+}
+GameBoyCore.prototype.recomputeDimension = function () {
+  initNewCanvas();
+  //Cache some dimension info:
+  this.onscreenWidth = this.canvas.width;
+  this.onscreenHeight = this.canvas.height;
+  // The following line was modified for benchmarking:
+  if (GameBoyWindow && GameBoyWindow.mozRequestAnimationFrame) {
+    //Firefox slowness hack:
+    this.canvas.width = this.onscreenWidth = (!settings[12]) ? 160 : this.canvas.width;
+    this.canvas.height = this.onscreenHeight = (!settings[12]) ? 144 : this.canvas.height;
+  }
+  else {
+    this.onscreenWidth = this.canvas.width;
+    this.onscreenHeight = this.canvas.height;
+  }
+  this.offscreenWidth = (!settings[12]) ? 160 : this.canvas.width;
+  this.offscreenHeight = (!settings[12]) ? 144 : this.canvas.height;
+  this.offscreenRGBCount = this.offscreenWidth * this.offscreenHeight * 4;
+}
+GameBoyCore.prototype.initLCD = function () {
+  this.recomputeDimension();
+  if (this.offscreenRGBCount != 92160) {
+    //Only create the resizer handle if we need it:
+    this.compileResizeFrameBufferFunction();
+  }
+  else {
+    //Resizer not needed:
+    this.resizer = null;
+  }
+  try {
+    this.canvasOffscreen = new GameBoyCanvas();  // Line modified for benchmarking.
+    this.canvasOffscreen.width = this.offscreenWidth;
+    this.canvasOffscreen.height = this.offscreenHeight;
+    this.drawContextOffscreen = this.canvasOffscreen.getContext("2d");
+    this.drawContextOnscreen = this.canvas.getContext("2d");
+    //Get a CanvasPixelArray buffer:
+    try {
+      this.canvasBuffer = this.drawContextOffscreen.createImageData(this.offscreenWidth, this.offscreenHeight);
+    }
+    catch (error) {
+      cout("Falling back to the getImageData initialization (Error \"" + error.message + "\").", 1);
+      this.canvasBuffer = this.drawContextOffscreen.getImageData(0, 0, this.offscreenWidth, this.offscreenHeight);
+    }
+    var index = this.offscreenRGBCount;
+    while (index > 0) {
+      this.canvasBuffer.data[index -= 4] = 0xF8;
+      this.canvasBuffer.data[index + 1] = 0xF8;
+      this.canvasBuffer.data[index + 2] = 0xF8;
+      this.canvasBuffer.data[index + 3] = 0xFF;
+    }
+    this.graphicsBlit();
+    this.canvas.style.visibility = "visible";
+    if (this.swizzledFrame == null) {
+      this.swizzledFrame = this.getTypedArray(69120, 0xFF, "uint8");
+    }
+    //Test the draw system and browser vblank latching:
+    this.drewFrame = true;                    //Copy the latest graphics to buffer.
+    this.requestDraw();
+  }
+  catch (error) {
+    throw(new Error("HTML5 Canvas support required: " + error.message + "file: " + error.fileName + ", line: " + error.lineNumber));
+  }
+}
+GameBoyCore.prototype.graphicsBlit = function () {
+  if (this.offscreenWidth == this.onscreenWidth && this.offscreenHeight == this.onscreenHeight) {
+    this.drawContextOnscreen.putImageData(this.canvasBuffer, 0, 0);
+  }
+  else {
+    this.drawContextOffscreen.putImageData(this.canvasBuffer, 0, 0);
+    this.drawContextOnscreen.drawImage(this.canvasOffscreen, 0, 0, this.onscreenWidth, this.onscreenHeight);
+  }
+}
+GameBoyCore.prototype.JoyPadEvent = function (key, down) {
+  if (down) {
+    this.JoyPad &= 0xFF ^ (1 << key);
+    if (!this.cGBC && (!this.usedBootROM || !this.usedGBCBootROM)) {
+      this.interruptsRequested |= 0x10;  //A real GBC doesn't set this!
+      this.remainingClocks = 0;
+      this.checkIRQMatching();
+    }
+  }
+  else {
+    this.JoyPad |= (1 << key);
+  }
+  this.memory[0xFF00] = (this.memory[0xFF00] & 0x30) + ((((this.memory[0xFF00] & 0x20) == 0) ? (this.JoyPad >> 4) : 0xF) & (((this.memory[0xFF00] & 0x10) == 0) ? (this.JoyPad & 0xF) : 0xF));
+  this.CPUStopped = false;
+}
+GameBoyCore.prototype.GyroEvent = function (x, y) {
+  x *= -100;
+  x += 2047;
+  this.highX = x >> 8;
+  this.lowX = x & 0xFF;
+  y *= -100;
+  y += 2047;
+  this.highY = y >> 8;
+  this.lowY = y & 0xFF;
+}
+GameBoyCore.prototype.initSound = function () {
+  this.sampleSize = 0x400000 / 1000 * settings[6];
+  this.machineOut = settings[13];
+  if (settings[0]) {
+    try {
+      var parentObj = this;
+      this.audioHandle = new XAudioServer(2, 0x400000 / settings[13], 0, Math.max(this.sampleSize * settings[8] / settings[13], 8192) << 1, null, settings[14]);
+      this.initAudioBuffer();
+    }
+    catch (error) {
+      cout("Audio system cannot run: " + error.message, 2);
+      settings[0] = false;
+    }
+  }
+  else if (this.audioHandle) {
+    //Mute the audio output, as it has an immediate silencing effect:
+    try {
+      this.audioHandle.changeVolume(0);
+    }
+    catch (error) { }
+  }
+}
+GameBoyCore.prototype.changeVolume = function () {
+  if (settings[0] && this.audioHandle) {
+    try {
+      this.audioHandle.changeVolume(settings[14]);
+    }
+    catch (error) { }
+  }
+}
+GameBoyCore.prototype.initAudioBuffer = function () {
+  this.audioIndex = 0;
+  this.bufferContainAmount = Math.max(this.sampleSize * settings[7] / settings[13], 4096) << 1;
+  this.numSamplesTotal = (this.sampleSize - (this.sampleSize % settings[13])) | 0;
+  this.currentBuffer = this.getTypedArray(this.numSamplesTotal, 0xF0F0, "int32");
+  this.secondaryBuffer = this.getTypedArray((this.numSamplesTotal << 1) / settings[13], 0, "float32");
+}
+GameBoyCore.prototype.intializeWhiteNoise = function () {
+  //Noise Sample Tables:
+  var randomFactor = 1;
+  //15-bit LSFR Cache Generation:
+  this.LSFR15Table = this.getTypedArray(0x80000, 0, "int8");
+  var LSFR = 0x7FFF;  //Seed value has all its bits set.
+  var LSFRShifted = 0x3FFF;
+  for (var index = 0; index < 0x8000; ++index) {
+    //Normalize the last LSFR value for usage:
+    randomFactor = 1 - (LSFR & 1);  //Docs say it's the inverse.
+    //Cache the different volume level results:
+    this.LSFR15Table[0x08000 | index] = randomFactor;
+    this.LSFR15Table[0x10000 | index] = randomFactor * 0x2;
+    this.LSFR15Table[0x18000 | index] = randomFactor * 0x3;
+    this.LSFR15Table[0x20000 | index] = randomFactor * 0x4;
+    this.LSFR15Table[0x28000 | index] = randomFactor * 0x5;
+    this.LSFR15Table[0x30000 | index] = randomFactor * 0x6;
+    this.LSFR15Table[0x38000 | index] = randomFactor * 0x7;
+    this.LSFR15Table[0x40000 | index] = randomFactor * 0x8;
+    this.LSFR15Table[0x48000 | index] = randomFactor * 0x9;
+    this.LSFR15Table[0x50000 | index] = randomFactor * 0xA;
+    this.LSFR15Table[0x58000 | index] = randomFactor * 0xB;
+    this.LSFR15Table[0x60000 | index] = randomFactor * 0xC;
+    this.LSFR15Table[0x68000 | index] = randomFactor * 0xD;
+    this.LSFR15Table[0x70000 | index] = randomFactor * 0xE;
+    this.LSFR15Table[0x78000 | index] = randomFactor * 0xF;
+    //Recompute the LSFR algorithm:
+    LSFRShifted = LSFR >> 1;
+    LSFR = LSFRShifted | (((LSFRShifted ^ LSFR) & 0x1) << 14);
+  }
+  //7-bit LSFR Cache Generation:
+  this.LSFR7Table = this.getTypedArray(0x800, 0, "int8");
+  LSFR = 0x7F;  //Seed value has all its bits set.
+  for (index = 0; index < 0x80; ++index) {
+    //Normalize the last LSFR value for usage:
+    randomFactor = 1 - (LSFR & 1);  //Docs say it's the inverse.
+    //Cache the different volume level results:
+    this.LSFR7Table[0x080 | index] = randomFactor;
+    this.LSFR7Table[0x100 | index] = randomFactor * 0x2;
+    this.LSFR7Table[0x180 | index] = randomFactor * 0x3;
+    this.LSFR7Table[0x200 | index] = randomFactor * 0x4;
+    this.LSFR7Table[0x280 | index] = randomFactor * 0x5;
+    this.LSFR7Table[0x300 | index] = randomFactor * 0x6;
+    this.LSFR7Table[0x380 | index] = randomFactor * 0x7;
+    this.LSFR7Table[0x400 | index] = randomFactor * 0x8;
+    this.LSFR7Table[0x480 | index] = randomFactor * 0x9;
+    this.LSFR7Table[0x500 | index] = randomFactor * 0xA;
+    this.LSFR7Table[0x580 | index] = randomFactor * 0xB;
+    this.LSFR7Table[0x600 | index] = randomFactor * 0xC;
+    this.LSFR7Table[0x680 | index] = randomFactor * 0xD;
+    this.LSFR7Table[0x700 | index] = randomFactor * 0xE;
+    this.LSFR7Table[0x780 | index] = randomFactor * 0xF;
+    //Recompute the LSFR algorithm:
+    LSFRShifted = LSFR >> 1;
+    LSFR = LSFRShifted | (((LSFRShifted ^ LSFR) & 0x1) << 6);
+  }
+  if (!this.noiseSampleTable && this.memory.length == 0x10000) {
+    //If enabling audio for the first time after a game is already running, set up the internal table reference:
+    this.noiseSampleTable = ((this.memory[0xFF22] & 0x8) == 0x8) ? this.LSFR7Table : this.LSFR15Table;
+  }
+}
+GameBoyCore.prototype.audioUnderrunAdjustment = function () {
+  if (settings[0]) {
+    var underrunAmount = this.bufferContainAmount - this.audioHandle.remainingBuffer();
+    if (underrunAmount > 0) {
+      this.CPUCyclesTotalCurrent += (underrunAmount >> 1) * this.machineOut;
+      this.recalculateIterationClockLimit();
+    }
+  }
+}
+GameBoyCore.prototype.initializeAudioStartState = function () {
+  this.channel1FrequencyTracker = 0x2000;
+  this.channel1DutyTracker = 0;
+  this.channel1CachedDuty = this.dutyLookup[2];
+  this.channel1totalLength = 0;
+  this.channel1envelopeVolume = 0;
+  this.channel1envelopeType = false;
+  this.channel1envelopeSweeps = 0;
+  this.channel1envelopeSweepsLast = 0;
+  this.channel1consecutive = true;
+  this.channel1frequency = 0;
+  this.channel1SweepFault = false;
+  this.channel1ShadowFrequency = 0;
+  this.channel1timeSweep = 1;
+  this.channel1lastTimeSweep = 0;
+  this.channel1numSweep = 0;
+  this.channel1frequencySweepDivider = 0;
+  this.channel1decreaseSweep = false;
+  this.channel2FrequencyTracker = 0x2000;
+  this.channel2DutyTracker = 0;
+  this.channel2CachedDuty = this.dutyLookup[2];
+  this.channel2totalLength = 0;
+  this.channel2envelopeVolume = 0;
+  this.channel2envelopeType = false;
+  this.channel2envelopeSweeps = 0;
+  this.channel2envelopeSweepsLast = 0;
+  this.channel2consecutive = true;
+  this.channel2frequency = 0;
+  this.channel3canPlay = false;
+  this.channel3totalLength = 0;
+  this.channel3patternType = 4;
+  this.channel3frequency = 0;
+  this.channel3consecutive = true;
+  this.channel3Counter = 0x800;
+  this.channel4FrequencyPeriod = 8;
+  this.channel4totalLength = 0;
+  this.channel4envelopeVolume = 0;
+  this.channel4currentVolume = 0;
+  this.channel4envelopeType = false;
+  this.channel4envelopeSweeps = 0;
+  this.channel4envelopeSweepsLast = 0;
+  this.channel4consecutive = true;
+  this.channel4BitRange = 0x7FFF;
+  this.noiseSampleTable = this.LSFR15Table;
+  this.channel4VolumeShifter = 15;
+  this.channel1FrequencyCounter = 0x2000;
+  this.channel2FrequencyCounter = 0x2000;
+  this.channel3Counter = 0x800;
+  this.channel3FrequencyPeriod = 0x800;
+  this.channel3lastSampleLookup = 0;
+  this.channel4lastSampleLookup = 0;
+  this.VinLeftChannelMasterVolume = 8;
+  this.VinRightChannelMasterVolume = 8;
+  this.mixerOutputCache = 0;
+  this.sequencerClocks = 0x2000;
+  this.sequencePosition = 0;
+  this.channel4FrequencyPeriod = 8;
+  this.channel4Counter = 8;
+  this.cachedChannel3Sample = 0;
+  this.cachedChannel4Sample = 0;
+  this.channel1Enabled = false;
+  this.channel2Enabled = false;
+  this.channel3Enabled = false;
+  this.channel4Enabled = false;
+  this.channel1canPlay = false;
+  this.channel2canPlay = false;
+  this.channel4canPlay = false;
+  this.channel1OutputLevelCache();
+  this.channel2OutputLevelCache();
+  this.channel3OutputLevelCache();
+  this.channel4OutputLevelCache();
+}
+GameBoyCore.prototype.outputAudio = function () {
+  var sampleFactor = 0;
+  var dirtySample = 0;
+  var averageL = 0;
+  var averageR = 0;
+  var destinationPosition = 0;
+  var divisor1 = settings[13];
+  var divisor2 = divisor1 * 0xF0;
+  for (var sourcePosition = 0; sourcePosition < this.numSamplesTotal;) {
+    for (sampleFactor = averageL = averageR = 0; sampleFactor < divisor1; ++sampleFactor) {
+      dirtySample = this.currentBuffer[sourcePosition++];
+      averageL += dirtySample >> 9;
+      averageR += dirtySample & 0x1FF;
+    }
+    this.secondaryBuffer[destinationPosition++] = averageL / divisor2 - 1;
+    this.secondaryBuffer[destinationPosition++] = averageR / divisor2 - 1;
+  }
+  this.audioHandle.writeAudioNoCallback(this.secondaryBuffer);
+}
+//Below are the audio generation functions timed against the CPU:
+GameBoyCore.prototype.generateAudio = function (numSamples) {
+  if (this.soundMasterEnabled && !this.CPUStopped) {
+    for (var samplesToGenerate = 0; numSamples > 0;) {
+      samplesToGenerate = (numSamples < this.sequencerClocks) ? numSamples : this.sequencerClocks;
+      this.sequencerClocks -= samplesToGenerate;
+      numSamples -= samplesToGenerate;
+      while (--samplesToGenerate > -1) {
+        this.computeAudioChannels();
+        this.currentBuffer[this.audioIndex++] = this.mixerOutputCache;
+        if (this.audioIndex == this.numSamplesTotal) {
+          this.audioIndex = 0;
+          this.outputAudio();
+        }
+      }
+      if (this.sequencerClocks == 0) {
+        this.audioComputeSequencer();
+        this.sequencerClocks = 0x2000;
+      }
+    }
+  }
+  else {
+    //SILENT OUTPUT:
+    while (--numSamples > -1) {
+      this.currentBuffer[this.audioIndex++] = 0xF0F0;
+      if (this.audioIndex == this.numSamplesTotal) {
+        this.audioIndex = 0;
+        this.outputAudio();
+      }
+    }
+  }
+}
+//Generate audio, but don't actually output it (Used for when sound is disabled by user/browser):
+GameBoyCore.prototype.generateAudioFake = function (numSamples) {
+  if (this.soundMasterEnabled && !this.CPUStopped) {
+    while (--numSamples > -1) {
+      this.computeAudioChannels();
+      if (--this.sequencerClocks == 0) {
+        this.audioComputeSequencer();
+        this.sequencerClocks = 0x2000;
+      }
+    }
+  }
+}
+GameBoyCore.prototype.audioJIT = function () {
+  //Audio Sample Generation Timing:
+  if (settings[0]) {
+    this.generateAudio(this.audioTicks);
+  }
+  else {
+    this.generateAudioFake(this.audioTicks);
+  }
+  this.audioTicks = 0;
+}
+GameBoyCore.prototype.audioComputeSequencer = function () {
+  switch (this.sequencePosition++) {
+    case 0:
+      this.clockAudioLength();
+      break;
+    case 2:
+      this.clockAudioLength();
+      this.clockAudioSweep();
+      break;
+    case 4:
+      this.clockAudioLength();
+      break;
+    case 6:
+      this.clockAudioLength();
+      this.clockAudioSweep();
+      break;
+    case 7:
+      this.clockAudioEnvelope();
+      this.sequencePosition = 0;
+  }
+}
+GameBoyCore.prototype.clockAudioLength = function () {
+  //Channel 1:
+  if (this.channel1totalLength > 1) {
+    --this.channel1totalLength;
+  }
+  else if (this.channel1totalLength == 1) {
+    this.channel1totalLength = 0;
+    this.channel1EnableCheck();
+    this.memory[0xFF26] &= 0xFE;  //Channel #1 On Flag Off
+  }
+  //Channel 2:
+  if (this.channel2totalLength > 1) {
+    --this.channel2totalLength;
+  }
+  else if (this.channel2totalLength == 1) {
+    this.channel2totalLength = 0;
+    this.channel2EnableCheck();
+    this.memory[0xFF26] &= 0xFD;  //Channel #2 On Flag Off
+  }
+  //Channel 3:
+  if (this.channel3totalLength > 1) {
+    --this.channel3totalLength;
+  }
+  else if (this.channel3totalLength == 1) {
+    this.channel3totalLength = 0;
+    this.channel3EnableCheck();
+    this.memory[0xFF26] &= 0xFB;  //Channel #3 On Flag Off
+  }
+  //Channel 4:
+  if (this.channel4totalLength > 1) {
+    --this.channel4totalLength;
+  }
+  else if (this.channel4totalLength == 1) {
+    this.channel4totalLength = 0;
+    this.channel4EnableCheck();
+    this.memory[0xFF26] &= 0xF7;  //Channel #4 On Flag Off
+  }
+}
+GameBoyCore.prototype.clockAudioSweep = function () {
+  //Channel 1:
+  if (!this.channel1SweepFault && this.channel1timeSweep > 0) {
+    if (--this.channel1timeSweep == 0) {
+      this.runAudioSweep();
+    }
+  }
+}
+GameBoyCore.prototype.runAudioSweep = function () {
+  //Channel 1:
+  if (this.channel1lastTimeSweep > 0) {
+    if (this.channel1frequencySweepDivider > 0) {
+      if (this.channel1numSweep > 0) {
+        --this.channel1numSweep;
+        if (this.channel1decreaseSweep) {
+          this.channel1ShadowFrequency -= this.channel1ShadowFrequency >> this.channel1frequencySweepDivider;
+          this.channel1frequency = this.channel1ShadowFrequency & 0x7FF;
+          this.channel1FrequencyTracker = (0x800 - this.channel1frequency) << 2;
+        }
+        else {
+          this.channel1ShadowFrequency += this.channel1ShadowFrequency >> this.channel1frequencySweepDivider;
+          this.channel1frequency = this.channel1ShadowFrequency;
+          if (this.channel1ShadowFrequency <= 0x7FF) {
+            this.channel1FrequencyTracker = (0x800 - this.channel1frequency) << 2;
+            //Run overflow check twice:
+            if ((this.channel1ShadowFrequency + (this.channel1ShadowFrequency >> this.channel1frequencySweepDivider)) > 0x7FF) {
+              this.channel1SweepFault = true;
+              this.channel1EnableCheck();
+              this.memory[0xFF26] &= 0xFE;  //Channel #1 On Flag Off
+            }
+          }
+          else {
+            this.channel1frequency &= 0x7FF;
+            this.channel1SweepFault = true;
+            this.channel1EnableCheck();
+            this.memory[0xFF26] &= 0xFE;  //Channel #1 On Flag Off
+          }
+        }
+      }
+      this.channel1timeSweep = this.channel1lastTimeSweep;
+    }
+    else {
+      //Channel has sweep disabled and timer becomes a length counter:
+      this.channel1SweepFault = true;
+      this.channel1EnableCheck();
+    }
+  }
+}
+GameBoyCore.prototype.clockAudioEnvelope = function () {
+  //Channel 1:
+  if (this.channel1envelopeSweepsLast > -1) {
+    if (this.channel1envelopeSweeps > 0) {
+      --this.channel1envelopeSweeps;
+    }
+    else {
+      if (!this.channel1envelopeType) {
+        if (this.channel1envelopeVolume > 0) {
+          --this.channel1envelopeVolume;
+          this.channel1envelopeSweeps = this.channel1envelopeSweepsLast;
+          this.channel1OutputLevelCache();
+        }
+        else {
+          this.channel1envelopeSweepsLast = -1;
+        }
+      }
+      else if (this.channel1envelopeVolume < 0xF) {
+        ++this.channel1envelopeVolume;
+        this.channel1envelopeSweeps = this.channel1envelopeSweepsLast;
+        this.channel1OutputLevelCache();
+      }
+      else {
+        this.channel1envelopeSweepsLast = -1;
+      }
+    }
+  }
+  //Channel 2:
+  if (this.channel2envelopeSweepsLast > -1) {
+    if (this.channel2envelopeSweeps > 0) {
+      --this.channel2envelopeSweeps;
+    }
+    else {
+      if (!this.channel2envelopeType) {
+        if (this.channel2envelopeVolume > 0) {
+          --this.channel2envelopeVolume;
+          this.channel2envelopeSweeps = this.channel2envelopeSweepsLast;
+          this.channel2OutputLevelCache();
+        }
+        else {
+          this.channel2envelopeSweepsLast = -1;
+        }
+      }
+      else if (this.channel2envelopeVolume < 0xF) {
+        ++this.channel2envelopeVolume;
+        this.channel2envelopeSweeps = this.channel2envelopeSweepsLast;
+        this.channel2OutputLevelCache();
+      }
+      else {
+        this.channel2envelopeSweepsLast = -1;
+      }
+    }
+  }
+  //Channel 4:
+  if (this.channel4envelopeSweepsLast > -1) {
+    if (this.channel4envelopeSweeps > 0) {
+      --this.channel4envelopeSweeps;
+    }
+    else {
+      if (!this.channel4envelopeType) {
+        if (this.channel4envelopeVolume > 0) {
+          this.channel4currentVolume = --this.channel4envelopeVolume << this.channel4VolumeShifter;
+          this.channel4envelopeSweeps = this.channel4envelopeSweepsLast;
+          this.channel4UpdateCache();
+        }
+        else {
+          this.channel4envelopeSweepsLast = -1;
+        }
+      }
+      else if (this.channel4envelopeVolume < 0xF) {
+        this.channel4currentVolume = ++this.channel4envelopeVolume << this.channel4VolumeShifter;
+        this.channel4envelopeSweeps = this.channel4envelopeSweepsLast;
+        this.channel4UpdateCache();
+      }
+      else {
+        this.channel4envelopeSweepsLast = -1;
+      }
+    }
+  }
+}
+GameBoyCore.prototype.computeAudioChannels = function () {
+  //Channel 1 counter:
+  if (--this.channel1FrequencyCounter == 0) {
+    this.channel1FrequencyCounter = this.channel1FrequencyTracker;
+    this.channel1DutyTracker = (this.channel1DutyTracker + 1) & 0x7;
+    this.channel1OutputLevelTrimaryCache();
+  }
+  //Channel 2 counter:
+  if (--this.channel2FrequencyCounter == 0) {
+    this.channel2FrequencyCounter = this.channel2FrequencyTracker;
+    this.channel2DutyTracker = (this.channel2DutyTracker + 1) & 0x7;
+    this.channel2OutputLevelTrimaryCache();
+  }
+  //Channel 3 counter:
+  if (--this.channel3Counter == 0) {
+    if (this.channel3canPlay) {
+      this.channel3lastSampleLookup = (this.channel3lastSampleLookup + 1) & 0x1F;
+    }
+    this.channel3Counter = this.channel3FrequencyPeriod;
+    this.channel3UpdateCache();
+  }
+  //Channel 4 counter:
+  if (--this.channel4Counter == 0) {
+    this.channel4lastSampleLookup = (this.channel4lastSampleLookup + 1) & this.channel4BitRange;
+    this.channel4Counter = this.channel4FrequencyPeriod;
+    this.channel4UpdateCache();
+  }
+}
+GameBoyCore.prototype.channel1EnableCheck = function () {
+  this.channel1Enabled = ((this.channel1consecutive || this.channel1totalLength > 0) && !this.channel1SweepFault && this.channel1canPlay);
+  this.channel1OutputLevelSecondaryCache();
+}
+GameBoyCore.prototype.channel1VolumeEnableCheck = function () {
+  this.channel1canPlay = (this.memory[0xFF12] > 7);
+  this.channel1EnableCheck();
+  this.channel1OutputLevelSecondaryCache();
+}
+GameBoyCore.prototype.channel1OutputLevelCache = function () {
+  this.channel1currentSampleLeft = (this.leftChannel1) ? this.channel1envelopeVolume : 0;
+  this.channel1currentSampleRight = (this.rightChannel1) ? this.channel1envelopeVolume : 0;
+  this.channel1OutputLevelSecondaryCache();
+}
+GameBoyCore.prototype.channel1OutputLevelSecondaryCache = function () {
+  if (this.channel1Enabled) {
+    this.channel1currentSampleLeftSecondary = this.channel1currentSampleLeft;
+    this.channel1currentSampleRightSecondary = this.channel1currentSampleRight;
+  }
+  else {
+    this.channel1currentSampleLeftSecondary = 0;
+    this.channel1currentSampleRightSecondary = 0;
+  }
+  this.channel1OutputLevelTrimaryCache();
+}
+GameBoyCore.prototype.channel1OutputLevelTrimaryCache = function () {
+  if (this.channel1CachedDuty[this.channel1DutyTracker]) {
+    this.channel1currentSampleLeftTrimary = this.channel1currentSampleLeftSecondary;
+    this.channel1currentSampleRightTrimary = this.channel1currentSampleRightSecondary;
+  }
+  else {
+    this.channel1currentSampleLeftTrimary = 0;
+    this.channel1currentSampleRightTrimary = 0;
+  }
+  this.mixerOutputLevelCache();
+}
+GameBoyCore.prototype.channel2EnableCheck = function () {
+  this.channel2Enabled = ((this.channel2consecutive || this.channel2totalLength > 0) && this.channel2canPlay);
+  this.channel2OutputLevelSecondaryCache();
+}
+GameBoyCore.prototype.channel2VolumeEnableCheck = function () {
+  this.channel2canPlay = (this.memory[0xFF17] > 7);
+  this.channel2EnableCheck();
+  this.channel2OutputLevelSecondaryCache();
+}
+GameBoyCore.prototype.channel2OutputLevelCache = function () {
+  this.channel2currentSampleLeft = (this.leftChannel2) ? this.channel2envelopeVolume : 0;
+  this.channel2currentSampleRight = (this.rightChannel2) ? this.channel2envelopeVolume : 0;
+  this.channel2OutputLevelSecondaryCache();
+}
+GameBoyCore.prototype.channel2OutputLevelSecondaryCache = function () {
+  if (this.channel2Enabled) {
+    this.channel2currentSampleLeftSecondary = this.channel2currentSampleLeft;
+    this.channel2currentSampleRightSecondary = this.channel2currentSampleRight;
+  }
+  else {
+    this.channel2currentSampleLeftSecondary = 0;
+    this.channel2currentSampleRightSecondary = 0;
+  }
+  this.channel2OutputLevelTrimaryCache();
+}
+GameBoyCore.prototype.channel2OutputLevelTrimaryCache = function () {
+  if (this.channel2CachedDuty[this.channel2DutyTracker]) {
+    this.channel2currentSampleLeftTrimary = this.channel2currentSampleLeftSecondary;
+    this.channel2currentSampleRightTrimary = this.channel2currentSampleRightSecondary;
+  }
+  else {
+    this.channel2currentSampleLeftTrimary = 0;
+    this.channel2currentSampleRightTrimary = 0;
+  }
+  this.mixerOutputLevelCache();
+}
+GameBoyCore.prototype.channel3EnableCheck = function () {
+  this.channel3Enabled = (/*this.channel3canPlay && */(this.channel3consecutive || this.channel3totalLength > 0));
+  this.channel3OutputLevelSecondaryCache();
+}
+GameBoyCore.prototype.channel3OutputLevelCache = function () {
+  this.channel3currentSampleLeft = (this.leftChannel3) ? this.cachedChannel3Sample : 0;
+  this.channel3currentSampleRight = (this.rightChannel3) ? this.cachedChannel3Sample : 0;
+  this.channel3OutputLevelSecondaryCache();
+}
+GameBoyCore.prototype.channel3OutputLevelSecondaryCache = function () {
+  if (this.channel3Enabled) {
+    this.channel3currentSampleLeftSecondary = this.channel3currentSampleLeft;
+    this.channel3currentSampleRightSecondary = this.channel3currentSampleRight;
+  }
+  else {
+    this.channel3currentSampleLeftSecondary = 0;
+    this.channel3currentSampleRightSecondary = 0;
+  }
+  this.mixerOutputLevelCache();
+}
+GameBoyCore.prototype.channel4EnableCheck = function () {
+  this.channel4Enabled = ((this.channel4consecutive || this.channel4totalLength > 0) && this.channel4canPlay);
+  this.channel4OutputLevelSecondaryCache();
+}
+GameBoyCore.prototype.channel4VolumeEnableCheck = function () {
+  this.channel4canPlay = (this.memory[0xFF21] > 7);
+  this.channel4EnableCheck();
+  this.channel4OutputLevelSecondaryCache();
+}
+GameBoyCore.prototype.channel4OutputLevelCache = function () {
+  this.channel4currentSampleLeft = (this.leftChannel4) ? this.cachedChannel4Sample : 0;
+  this.channel4currentSampleRight = (this.rightChannel4) ? this.cachedChannel4Sample : 0;
+  this.channel4OutputLevelSecondaryCache();
+}
+GameBoyCore.prototype.channel4OutputLevelSecondaryCache = function () {
+  if (this.channel4Enabled) {
+    this.channel4currentSampleLeftSecondary = this.channel4currentSampleLeft;
+    this.channel4currentSampleRightSecondary = this.channel4currentSampleRight;
+  }
+  else {
+    this.channel4currentSampleLeftSecondary = 0;
+    this.channel4currentSampleRightSecondary = 0;
+  }
+  this.mixerOutputLevelCache();
+}
+GameBoyCore.prototype.mixerOutputLevelCache = function () {
+  this.mixerOutputCache = ((((this.channel1currentSampleLeftTrimary + this.channel2currentSampleLeftTrimary + this.channel3currentSampleLeftSecondary + this.channel4currentSampleLeftSecondary) * this.VinLeftChannelMasterVolume) << 9) +
+  ((this.channel1currentSampleRightTrimary + this.channel2currentSampleRightTrimary + this.channel3currentSampleRightSecondary + this.channel4currentSampleRightSecondary) * this.VinRightChannelMasterVolume));
+}
+GameBoyCore.prototype.channel3UpdateCache = function () {
+  this.cachedChannel3Sample = this.channel3PCM[this.channel3lastSampleLookup] >> this.channel3patternType;
+  this.channel3OutputLevelCache();
+}
+GameBoyCore.prototype.channel3WriteRAM = function (address, data) {
+  if (this.channel3canPlay) {
+    this.audioJIT();
+    //address = this.channel3lastSampleLookup >> 1;
+  }
+  this.memory[0xFF30 | address] = data;
+  address <<= 1;
+  this.channel3PCM[address] = data >> 4;
+  this.channel3PCM[address | 1] = data & 0xF;
+}
+GameBoyCore.prototype.channel4UpdateCache = function () {
+  this.cachedChannel4Sample = this.noiseSampleTable[this.channel4currentVolume | this.channel4lastSampleLookup];
+  this.channel4OutputLevelCache();
+}
+GameBoyCore.prototype.run = function () {
+  //The preprocessing before the actual iteration loop:
+  if ((this.stopEmulator & 2) == 0) {
+    if ((this.stopEmulator & 1) == 1) {
+      if (!this.CPUStopped) {
+        this.stopEmulator = 0;
+        this.drewFrame = false;
+        this.audioUnderrunAdjustment();
+        this.clockUpdate();      //RTC clocking.
+        if (!this.halt) {
+          this.executeIteration();
+        }
+        else {            //Finish the HALT rundown execution.
+          this.CPUTicks = 0;
+          this.calculateHALTPeriod();
+          if (this.halt) {
+            this.updateCoreFull();
+          }
+          else {
+            this.executeIteration();
+          }
+        }
+        //Request the graphics target to be updated:
+        this.requestDraw();
+      }
+      else {
+        this.audioUnderrunAdjustment();
+        this.audioTicks += this.CPUCyclesTotal;
+        this.audioJIT();
+        this.stopEmulator |= 1;      //End current loop.
+      }
+    }
+    else {    //We can only get here if there was an internal error, but the loop was restarted.
+      cout("Iterator restarted a faulted core.", 2);
+      pause();
+    }
+  }
+}
+
+GameBoyCore.prototype.executeIteration = function () {
+  //Iterate the interpreter loop:
+  var opcodeToExecute = 0;
+  var timedTicks = 0;
+  while (this.stopEmulator == 0) {
+    //Interrupt Arming:
+    switch (this.IRQEnableDelay) {
+      case 1:
+        this.IME = true;
+        this.checkIRQMatching();
+      case 2:
+        --this.IRQEnableDelay;
+    }
+    //Is an IRQ set to fire?:
+    if (this.IRQLineMatched > 0) {
+      //IME is true and and interrupt was matched:
+      this.launchIRQ();
+    }
+    //Fetch the current opcode:
+    opcodeToExecute = this.memoryReader[this.programCounter](this, this.programCounter);
+    //Increment the program counter to the next instruction:
+    this.programCounter = (this.programCounter + 1) & 0xFFFF;
+    //Check for the program counter quirk:
+    if (this.skipPCIncrement) {
+      this.programCounter = (this.programCounter - 1) & 0xFFFF;
+      this.skipPCIncrement = false;
+    }
+    //Get how many CPU cycles the current instruction counts for:
+    this.CPUTicks = this.TICKTable[opcodeToExecute];
+    //Execute the current instruction:
+    this.OPCODE[opcodeToExecute](this);
+    //Update the state (Inlined updateCoreFull manually here):
+    //Update the clocking for the LCD emulation:
+    this.LCDTicks += this.CPUTicks >> this.doubleSpeedShifter;  //LCD Timing
+    this.LCDCONTROL[this.actualScanLine](this);          //Scan Line and STAT Mode Control
+    //Single-speed relative timing for A/V emulation:
+    timedTicks = this.CPUTicks >> this.doubleSpeedShifter;    //CPU clocking can be updated from the LCD handling.
+    this.audioTicks += timedTicks;                //Audio Timing
+    this.emulatorTicks += timedTicks;              //Emulator Timing
+    //CPU Timers:
+    this.DIVTicks += this.CPUTicks;                //DIV Timing
+    if (this.TIMAEnabled) {                    //TIMA Timing
+      this.timerTicks += this.CPUTicks;
+      while (this.timerTicks >= this.TACClocker) {
+        this.timerTicks -= this.TACClocker;
+        if (++this.memory[0xFF05] == 0x100) {
+          this.memory[0xFF05] = this.memory[0xFF06];
+          this.interruptsRequested |= 0x4;
+          this.checkIRQMatching();
+        }
+      }
+    }
+    if (this.serialTimer > 0) {                    //Serial Timing
+      //IRQ Counter:
+      this.serialTimer -= this.CPUTicks;
+      if (this.serialTimer <= 0) {
+        this.interruptsRequested |= 0x8;
+        this.checkIRQMatching();
+      }
+      //Bit Shit Counter:
+      this.serialShiftTimer -= this.CPUTicks;
+      if (this.serialShiftTimer <= 0) {
+        this.serialShiftTimer = this.serialShiftTimerAllocated;
+        this.memory[0xFF01] = ((this.memory[0xFF01] << 1) & 0xFE) | 0x01;  //We could shift in actual link data here if we were to implement such!!!
+      }
+    }
+    //End of iteration routine:
+    if (this.emulatorTicks >= this.CPUCyclesTotal) {
+      this.iterationEndRoutine();
+    }
+    // Start of code added for benchmarking:
+    this.instructions += 1;
+    if (this.instructions > this.totalInstructions) {
+      this.iterationEndRoutine();
+      this.stopEmulator |= 2;
+      checkFinalState();
+    }
+    // End of code added for benchmarking.
+  }
+}
+GameBoyCore.prototype.iterationEndRoutine = function () {
+  if ((this.stopEmulator & 0x1) == 0) {
+    this.audioJIT();  //Make sure we at least output once per iteration.
+    //Update DIV Alignment (Integer overflow safety):
+    this.memory[0xFF04] = (this.memory[0xFF04] + (this.DIVTicks >> 8)) & 0xFF;
+    this.DIVTicks &= 0xFF;
+    //Update emulator flags:
+    this.stopEmulator |= 1;      //End current loop.
+    this.emulatorTicks -= this.CPUCyclesTotal;
+    this.CPUCyclesTotalCurrent += this.CPUCyclesTotalRoundoff;
+    this.recalculateIterationClockLimit();
+  }
+}
+GameBoyCore.prototype.handleSTOP = function () {
+  this.CPUStopped = true;            //Stop CPU until joypad input changes.
+  this.iterationEndRoutine();
+  if (this.emulatorTicks < 0) {
+    this.audioTicks -= this.emulatorTicks;
+    this.audioJIT();
+  }
+}
+GameBoyCore.prototype.recalculateIterationClockLimit = function () {
+  var endModulus = this.CPUCyclesTotalCurrent % 4;
+  this.CPUCyclesTotal = this.CPUCyclesTotalBase + this.CPUCyclesTotalCurrent - endModulus;
+  this.CPUCyclesTotalCurrent = endModulus;
+}
+GameBoyCore.prototype.scanLineMode2 = function () {  //OAM Search Period
+  if (this.STATTracker != 1) {
+    if (this.mode2TriggerSTAT) {
+      this.interruptsRequested |= 0x2;
+      this.checkIRQMatching();
+    }
+    this.STATTracker = 1;
+    this.modeSTAT = 2;
+  }
+}
+GameBoyCore.prototype.scanLineMode3 = function () {  //Scan Line Drawing Period
+  if (this.modeSTAT != 3) {
+    if (this.STATTracker == 0 && this.mode2TriggerSTAT) {
+      this.interruptsRequested |= 0x2;
+      this.checkIRQMatching();
+    }
+    this.STATTracker = 1;
+    this.modeSTAT = 3;
+  }
+}
+GameBoyCore.prototype.scanLineMode0 = function () {  //Horizontal Blanking Period
+  if (this.modeSTAT != 0) {
+    if (this.STATTracker != 2) {
+      if (this.STATTracker == 0) {
+        if (this.mode2TriggerSTAT) {
+          this.interruptsRequested |= 0x2;
+          this.checkIRQMatching();
+        }
+        this.modeSTAT = 3;
+      }
+      this.incrementScanLineQueue();
+      this.updateSpriteCount(this.actualScanLine);
+      this.STATTracker = 2;
+    }
+    if (this.LCDTicks >= this.spriteCount) {
+      if (this.hdmaRunning) {
+        this.executeHDMA();
+      }
+      if (this.mode0TriggerSTAT) {
+        this.interruptsRequested |= 0x2;
+        this.checkIRQMatching();
+      }
+      this.STATTracker = 3;
+      this.modeSTAT = 0;
+    }
+  }
+}
+GameBoyCore.prototype.clocksUntilLYCMatch = function () {
+  if (this.memory[0xFF45] != 0) {
+    if (this.memory[0xFF45] > this.actualScanLine) {
+      return 456 * (this.memory[0xFF45] - this.actualScanLine);
+    }
+    return 456 * (154 - this.actualScanLine + this.memory[0xFF45]);
+  }
+  return (456 * ((this.actualScanLine == 153 && this.memory[0xFF44] == 0) ? 154 : (153 - this.actualScanLine))) + 8;
+}
+GameBoyCore.prototype.clocksUntilMode0 = function () {
+  switch (this.modeSTAT) {
+    case 0:
+      if (this.actualScanLine == 143) {
+        this.updateSpriteCount(0);
+        return this.spriteCount + 5016;
+      }
+      this.updateSpriteCount(this.actualScanLine + 1);
+      return this.spriteCount + 456;
+    case 2:
+    case 3:
+      this.updateSpriteCount(this.actualScanLine);
+      return this.spriteCount;
+    case 1:
+      this.updateSpriteCount(0);
+      return this.spriteCount + (456 * (154 - this.actualScanLine));
+  }
+}
+GameBoyCore.prototype.updateSpriteCount = function (line) {
+  this.spriteCount = 252;
+  if (this.cGBC && this.gfxSpriteShow) {                    //Is the window enabled and are we in CGB mode?
+    var lineAdjusted = line + 0x10;
+    var yoffset = 0;
+    var yCap = (this.gfxSpriteNormalHeight) ? 0x8 : 0x10;
+    for (var OAMAddress = 0xFE00; OAMAddress < 0xFEA0 && this.spriteCount < 312; OAMAddress += 4) {
+      yoffset = lineAdjusted - this.memory[OAMAddress];
+      if (yoffset > -1 && yoffset < yCap) {
+        this.spriteCount += 6;
+      }
+    }
+  }
+}
+GameBoyCore.prototype.matchLYC = function () {  //LYC Register Compare
+  if (this.memory[0xFF44] == this.memory[0xFF45]) {
+    this.memory[0xFF41] |= 0x04;
+    if (this.LYCMatchTriggerSTAT) {
+      this.interruptsRequested |= 0x2;
+      this.checkIRQMatching();
+    }
+  }
+  else {
+    this.memory[0xFF41] &= 0x7B;
+  }
+}
+GameBoyCore.prototype.updateCore = function () {
+  //Update the clocking for the LCD emulation:
+  this.LCDTicks += this.CPUTicks >> this.doubleSpeedShifter;  //LCD Timing
+  this.LCDCONTROL[this.actualScanLine](this);          //Scan Line and STAT Mode Control
+  //Single-speed relative timing for A/V emulation:
+  var timedTicks = this.CPUTicks >> this.doubleSpeedShifter;  //CPU clocking can be updated from the LCD handling.
+  this.audioTicks += timedTicks;                //Audio Timing
+  this.emulatorTicks += timedTicks;              //Emulator Timing
+  //CPU Timers:
+  this.DIVTicks += this.CPUTicks;                //DIV Timing
+  if (this.TIMAEnabled) {                    //TIMA Timing
+    this.timerTicks += this.CPUTicks;
+    while (this.timerTicks >= this.TACClocker) {
+      this.timerTicks -= this.TACClocker;
+      if (++this.memory[0xFF05] == 0x100) {
+        this.memory[0xFF05] = this.memory[0xFF06];
+        this.interruptsRequested |= 0x4;
+        this.checkIRQMatching();
+      }
+    }
+  }
+  if (this.serialTimer > 0) {                    //Serial Timing
+    //IRQ Counter:
+    this.serialTimer -= this.CPUTicks;
+    if (this.serialTimer <= 0) {
+      this.interruptsRequested |= 0x8;
+      this.checkIRQMatching();
+    }
+    //Bit Shit Counter:
+    this.serialShiftTimer -= this.CPUTicks;
+    if (this.serialShiftTimer <= 0) {
+      this.serialShiftTimer = this.serialShiftTimerAllocated;
+      this.memory[0xFF01] = ((this.memory[0xFF01] << 1) & 0xFE) | 0x01;  //We could shift in actual link data here if we were to implement such!!!
+    }
+  }
+}
+GameBoyCore.prototype.updateCoreFull = function () {
+  //Update the state machine:
+  this.updateCore();
+  //End of iteration routine:
+  if (this.emulatorTicks >= this.CPUCyclesTotal) {
+    this.iterationEndRoutine();
+  }
+}
+GameBoyCore.prototype.initializeLCDController = function () {
+  //Display on hanlding:
+  var line = 0;
+  while (line < 154) {
+    if (line < 143) {
+      //We're on a normal scan line:
+      this.LINECONTROL[line] = function (parentObj) {
+        if (parentObj.LCDTicks < 80) {
+          parentObj.scanLineMode2();
+        }
+        else if (parentObj.LCDTicks < 252) {
+          parentObj.scanLineMode3();
+        }
+        else if (parentObj.LCDTicks < 456) {
+          parentObj.scanLineMode0();
+        }
+        else {
+          //We're on a new scan line:
+          parentObj.LCDTicks -= 456;
+          if (parentObj.STATTracker != 3) {
+            //Make sure the mode 0 handler was run at least once per scan line:
+            if (parentObj.STATTracker != 2) {
+              if (parentObj.STATTracker == 0 && parentObj.mode2TriggerSTAT) {
+                parentObj.interruptsRequested |= 0x2;
+              }
+              parentObj.incrementScanLineQueue();
+            }
+            if (parentObj.hdmaRunning) {
+              parentObj.executeHDMA();
+            }
+            if (parentObj.mode0TriggerSTAT) {
+              parentObj.interruptsRequested |= 0x2;
+            }
+          }
+          //Update the scanline registers and assert the LYC counter:
+          parentObj.actualScanLine = ++parentObj.memory[0xFF44];
+          //Perform a LYC counter assert:
+          if (parentObj.actualScanLine == parentObj.memory[0xFF45]) {
+            parentObj.memory[0xFF41] |= 0x04;
+            if (parentObj.LYCMatchTriggerSTAT) {
+              parentObj.interruptsRequested |= 0x2;
+            }
+          }
+          else {
+            parentObj.memory[0xFF41] &= 0x7B;
+          }
+          parentObj.checkIRQMatching();
+          //Reset our mode contingency variables:
+          parentObj.STATTracker = 0;
+          parentObj.modeSTAT = 2;
+          parentObj.LINECONTROL[parentObj.actualScanLine](parentObj);  //Scan Line and STAT Mode Control.
+        }
+      }
+    }
+    else if (line == 143) {
+      //We're on the last visible scan line of the LCD screen:
+      this.LINECONTROL[143] = function (parentObj) {
+        if (parentObj.LCDTicks < 80) {
+          parentObj.scanLineMode2();
+        }
+        else if (parentObj.LCDTicks < 252) {
+          parentObj.scanLineMode3();
+        }
+        else if (parentObj.LCDTicks < 456) {
+          parentObj.scanLineMode0();
+        }
+        else {
+          //Starting V-Blank:
+          //Just finished the last visible scan line:
+          parentObj.LCDTicks -= 456;
+          if (parentObj.STATTracker != 3) {
+            //Make sure the mode 0 handler was run at least once per scan line:
+            if (parentObj.STATTracker != 2) {
+              if (parentObj.STATTracker == 0 && parentObj.mode2TriggerSTAT) {
+                parentObj.interruptsRequested |= 0x2;
+              }
+              parentObj.incrementScanLineQueue();
+            }
+            if (parentObj.hdmaRunning) {
+              parentObj.executeHDMA();
+            }
+            if (parentObj.mode0TriggerSTAT) {
+              parentObj.interruptsRequested |= 0x2;
+            }
+          }
+          //Update the scanline registers and assert the LYC counter:
+          parentObj.actualScanLine = parentObj.memory[0xFF44] = 144;
+          //Perform a LYC counter assert:
+          if (parentObj.memory[0xFF45] == 144) {
+            parentObj.memory[0xFF41] |= 0x04;
+            if (parentObj.LYCMatchTriggerSTAT) {
+              parentObj.interruptsRequested |= 0x2;
+            }
+          }
+          else {
+            parentObj.memory[0xFF41] &= 0x7B;
+          }
+          //Reset our mode contingency variables:
+          parentObj.STATTracker = 0;
+          //Update our state for v-blank:
+          parentObj.modeSTAT = 1;
+          parentObj.interruptsRequested |= (parentObj.mode1TriggerSTAT) ? 0x3 : 0x1;
+          parentObj.checkIRQMatching();
+          //Attempt to blit out to our canvas:
+          if (parentObj.drewBlank == 0) {
+            //Ensure JIT framing alignment:
+            if (parentObj.totalLinesPassed < 144 || (parentObj.totalLinesPassed == 144 && parentObj.midScanlineOffset > -1)) {
+              //Make sure our gfx are up-to-date:
+              parentObj.graphicsJITVBlank();
+              //Draw the frame:
+              parentObj.prepareFrame();
+            }
+          }
+          else {
+            //LCD off takes at least 2 frames:
+            --parentObj.drewBlank;
+          }
+          parentObj.LINECONTROL[144](parentObj);  //Scan Line and STAT Mode Control.
+        }
+      }
+    }
+    else if (line < 153) {
+      //In VBlank
+      this.LINECONTROL[line] = function (parentObj) {
+        if (parentObj.LCDTicks >= 456) {
+          //We're on a new scan line:
+          parentObj.LCDTicks -= 456;
+          parentObj.actualScanLine = ++parentObj.memory[0xFF44];
+          //Perform a LYC counter assert:
+          if (parentObj.actualScanLine == parentObj.memory[0xFF45]) {
+            parentObj.memory[0xFF41] |= 0x04;
+            if (parentObj.LYCMatchTriggerSTAT) {
+              parentObj.interruptsRequested |= 0x2;
+              parentObj.checkIRQMatching();
+            }
+          }
+          else {
+            parentObj.memory[0xFF41] &= 0x7B;
+          }
+          parentObj.LINECONTROL[parentObj.actualScanLine](parentObj);  //Scan Line and STAT Mode Control.
+        }
+      }
+    }
+    else {
+      //VBlank Ending (We're on the last actual scan line)
+      this.LINECONTROL[153] = function (parentObj) {
+        if (parentObj.LCDTicks >= 8) {
+          if (parentObj.STATTracker != 4 && parentObj.memory[0xFF44] == 153) {
+            parentObj.memory[0xFF44] = 0;  //LY register resets to 0 early.
+            //Perform a LYC counter assert:
+            if (parentObj.memory[0xFF45] == 0) {
+              parentObj.memory[0xFF41] |= 0x04;
+              if (parentObj.LYCMatchTriggerSTAT) {
+                parentObj.interruptsRequested |= 0x2;
+                parentObj.checkIRQMatching();
+              }
+            }
+            else {
+              parentObj.memory[0xFF41] &= 0x7B;
+            }
+            parentObj.STATTracker = 4;
+          }
+          if (parentObj.LCDTicks >= 456) {
+            //We reset back to the beginning:
+            parentObj.LCDTicks -= 456;
+            parentObj.STATTracker = parentObj.actualScanLine = 0;
+            parentObj.LINECONTROL[0](parentObj);  //Scan Line and STAT Mode Control.
+          }
+        }
+      }
+    }
+    ++line;
+  }
+}
+GameBoyCore.prototype.DisplayShowOff = function () {
+  if (this.drewBlank == 0) {
+    //Output a blank screen to the output framebuffer:
+    this.clearFrameBuffer();
+    this.drewFrame = true;
+  }
+  this.drewBlank = 2;
+}
+GameBoyCore.prototype.executeHDMA = function () {
+  this.DMAWrite(1);
+  if (this.halt) {
+    if ((this.LCDTicks - this.spriteCount) < ((4 >> this.doubleSpeedShifter) | 0x20)) {
+      //HALT clocking correction:
+      this.CPUTicks = 4 + ((0x20 + this.spriteCount) << this.doubleSpeedShifter);
+      this.LCDTicks = this.spriteCount + ((4 >> this.doubleSpeedShifter) | 0x20);
+    }
+  }
+  else {
+    this.LCDTicks += (4 >> this.doubleSpeedShifter) | 0x20;      //LCD Timing Update For HDMA.
+  }
+  if (this.memory[0xFF55] == 0) {
+    this.hdmaRunning = false;
+    this.memory[0xFF55] = 0xFF;  //Transfer completed ("Hidden last step," since some ROMs don't imply this, but most do).
+  }
+  else {
+    --this.memory[0xFF55];
+  }
+}
+GameBoyCore.prototype.clockUpdate = function () {
+  if (this.cTIMER) {
+    var dateObj = new_Date(); // The line is changed for benchmarking.
+    var newTime = dateObj.getTime();
+    var timeElapsed = newTime - this.lastIteration;  //Get the numnber of milliseconds since this last executed.
+    this.lastIteration = newTime;
+    if (this.cTIMER && !this.RTCHALT) {
+      //Update the MBC3 RTC:
+      this.RTCSeconds += timeElapsed / 1000;
+      while (this.RTCSeconds >= 60) {  //System can stutter, so the seconds difference can get large, thus the "while".
+        this.RTCSeconds -= 60;
+        ++this.RTCMinutes;
+        if (this.RTCMinutes >= 60) {
+          this.RTCMinutes -= 60;
+          ++this.RTCHours;
+          if (this.RTCHours >= 24) {
+            this.RTCHours -= 24
+            ++this.RTCDays;
+            if (this.RTCDays >= 512) {
+              this.RTCDays -= 512;
+              this.RTCDayOverFlow = true;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+GameBoyCore.prototype.prepareFrame = function () {
+  //Copy the internal frame buffer to the output buffer:
+  this.swizzleFrameBuffer();
+  this.drewFrame = true;
+}
+GameBoyCore.prototype.requestDraw = function () {
+  if (this.drewFrame) {
+    this.dispatchDraw();
+  }
+}
+GameBoyCore.prototype.dispatchDraw = function () {
+  var canvasRGBALength = this.offscreenRGBCount;
+  if (canvasRGBALength > 0) {
+    //We actually updated the graphics internally, so copy out:
+    var frameBuffer = (canvasRGBALength == 92160) ? this.swizzledFrame : this.resizeFrameBuffer();
+    var canvasData = this.canvasBuffer.data;
+    var bufferIndex = 0;
+    for (var canvasIndex = 0; canvasIndex < canvasRGBALength; ++canvasIndex) {
+      canvasData[canvasIndex++] = frameBuffer[bufferIndex++];
+      canvasData[canvasIndex++] = frameBuffer[bufferIndex++];
+      canvasData[canvasIndex++] = frameBuffer[bufferIndex++];
+    }
+    this.graphicsBlit();
+  }
+}
+GameBoyCore.prototype.swizzleFrameBuffer = function () {
+  //Convert our dirty 24-bit (24-bit, with internal render flags above it) framebuffer to an 8-bit buffer with separate indices for the RGB channels:
+  var frameBuffer = this.frameBuffer;
+  var swizzledFrame = this.swizzledFrame;
+  var bufferIndex = 0;
+  for (var canvasIndex = 0; canvasIndex < 69120;) {
+    swizzledFrame[canvasIndex++] = (frameBuffer[bufferIndex] >> 16) & 0xFF;    //Red
+    swizzledFrame[canvasIndex++] = (frameBuffer[bufferIndex] >> 8) & 0xFF;    //Green
+    swizzledFrame[canvasIndex++] = frameBuffer[bufferIndex++] & 0xFF;      //Blue
+  }
+}
+GameBoyCore.prototype.clearFrameBuffer = function () {
+  var bufferIndex = 0;
+  var frameBuffer = this.swizzledFrame;
+  if (this.cGBC || this.colorizedGBPalettes) {
+    while (bufferIndex < 69120) {
+      frameBuffer[bufferIndex++] = 248;
+    }
+  }
+  else {
+    while (bufferIndex < 69120) {
+      frameBuffer[bufferIndex++] = 239;
+      frameBuffer[bufferIndex++] = 255;
+      frameBuffer[bufferIndex++] = 222;
+    }
+  }
+}
+GameBoyCore.prototype.resizeFrameBuffer = function () {
+  //Return a reference to the generated resized framebuffer:
+  return this.resizer.resize(this.swizzledFrame);
+}
+GameBoyCore.prototype.compileResizeFrameBufferFunction = function () {
+  if (this.offscreenRGBCount > 0) {
+    this.resizer = new Resize(160, 144, this.offscreenWidth, this.offscreenHeight, false, true);
+  }
+}
+GameBoyCore.prototype.renderScanLine = function (scanlineToRender) {
+  this.pixelStart = scanlineToRender * 160;
+  if (this.bgEnabled) {
+    this.pixelEnd = 160;
+    this.BGLayerRender(scanlineToRender);
+    this.WindowLayerRender(scanlineToRender);
+  }
+  else {
+    var pixelLine = (scanlineToRender + 1) * 160;
+    var defaultColor = (this.cGBC || this.colorizedGBPalettes) ? 0xF8F8F8 : 0xEFFFDE;
+    for (var pixelPosition = (scanlineToRender * 160) + this.currentX; pixelPosition < pixelLine; pixelPosition++) {
+      this.frameBuffer[pixelPosition] = defaultColor;
+    }
+  }
+  this.SpriteLayerRender(scanlineToRender);
+  this.currentX = 0;
+  this.midScanlineOffset = -1;
+}
+GameBoyCore.prototype.renderMidScanLine = function () {
+  if (this.actualScanLine < 144 && this.modeSTAT == 3) {
+    //TODO: Get this accurate:
+    if (this.midScanlineOffset == -1) {
+      this.midScanlineOffset = this.backgroundX & 0x7;
+    }
+    if (this.LCDTicks >= 82) {
+      this.pixelEnd = this.LCDTicks - 74;
+      this.pixelEnd = Math.min(this.pixelEnd - this.midScanlineOffset - (this.pixelEnd % 0x8), 160);
+      if (this.bgEnabled) {
+        this.pixelStart = this.lastUnrenderedLine * 160;
+        this.BGLayerRender(this.lastUnrenderedLine);
+        this.WindowLayerRender(this.lastUnrenderedLine);
+        //TODO: Do midscanline JIT for sprites...
+      }
+      else {
+        var pixelLine = (this.lastUnrenderedLine * 160) + this.pixelEnd;
+        var defaultColor = (this.cGBC || this.colorizedGBPalettes) ? 0xF8F8F8 : 0xEFFFDE;
+        for (var pixelPosition = (this.lastUnrenderedLine * 160) + this.currentX; pixelPosition < pixelLine; pixelPosition++) {
+          this.frameBuffer[pixelPosition] = defaultColor;
+        }
+      }
+      this.currentX = this.pixelEnd;
+    }
+  }
+}
+GameBoyCore.prototype.initializeModeSpecificArrays = function () {
+  this.LCDCONTROL = (this.LCDisOn) ? this.LINECONTROL : this.DISPLAYOFFCONTROL;
+  if (this.cGBC) {
+    this.gbcOBJRawPalette = this.getTypedArray(0x40, 0, "uint8");
+    this.gbcBGRawPalette = this.getTypedArray(0x40, 0, "uint8");
+    this.gbcOBJPalette = this.getTypedArray(0x20, 0x1000000, "int32");
+    this.gbcBGPalette = this.getTypedArray(0x40, 0, "int32");
+    this.BGCHRBank2 = this.getTypedArray(0x800, 0, "uint8");
+    this.BGCHRCurrentBank = (this.currVRAMBank > 0) ? this.BGCHRBank2 : this.BGCHRBank1;
+    this.tileCache = this.generateCacheArray(0xF80);
+  }
+  else {
+    this.gbOBJPalette = this.getTypedArray(8, 0, "int32");
+    this.gbBGPalette = this.getTypedArray(4, 0, "int32");
+    this.BGPalette = this.gbBGPalette;
+    this.OBJPalette = this.gbOBJPalette;
+    this.tileCache = this.generateCacheArray(0x700);
+    this.sortBuffer = this.getTypedArray(0x100, 0, "uint8");
+    this.OAMAddressCache = this.getTypedArray(10, 0, "int32");
+  }
+  this.renderPathBuild();
+}
+GameBoyCore.prototype.GBCtoGBModeAdjust = function () {
+  cout("Stepping down from GBC mode.", 0);
+  this.VRAM = this.GBCMemory = this.BGCHRCurrentBank = this.BGCHRBank2 = null;
+  this.tileCache.length = 0x700;
+  if (settings[4]) {
+    this.gbBGColorizedPalette = this.getTypedArray(4, 0, "int32");
+    this.gbOBJColorizedPalette = this.getTypedArray(8, 0, "int32");
+    this.cachedBGPaletteConversion = this.getTypedArray(4, 0, "int32");
+    this.cachedOBJPaletteConversion = this.getTypedArray(8, 0, "int32");
+    this.BGPalette = this.gbBGColorizedPalette;
+    this.OBJPalette = this.gbOBJColorizedPalette;
+    this.gbOBJPalette = this.gbBGPalette = null;
+    this.getGBCColor();
+  }
+  else {
+    this.gbOBJPalette = this.getTypedArray(8, 0, "int32");
+    this.gbBGPalette = this.getTypedArray(4, 0, "int32");
+    this.BGPalette = this.gbBGPalette;
+    this.OBJPalette = this.gbOBJPalette;
+  }
+  this.sortBuffer = this.getTypedArray(0x100, 0, "uint8");
+  this.OAMAddressCache = this.getTypedArray(10, 0, "int32");
+  this.renderPathBuild();
+  this.memoryReadJumpCompile();
+  this.memoryWriteJumpCompile();
+}
+GameBoyCore.prototype.renderPathBuild = function () {
+  if (!this.cGBC) {
+    this.BGLayerRender = this.BGGBLayerRender;
+    this.WindowLayerRender = this.WindowGBLayerRender;
+    this.SpriteLayerRender = this.SpriteGBLayerRender;
+  }
+  else {
+    this.priorityFlaggingPathRebuild();
+    this.SpriteLayerRender = this.SpriteGBCLayerRender;
+  }
+}
+GameBoyCore.prototype.priorityFlaggingPathRebuild = function () {
+  if (this.BGPriorityEnabled) {
+    this.BGLayerRender = this.BGGBCLayerRender;
+    this.WindowLayerRender = this.WindowGBCLayerRender;
+  }
+  else {
+    this.BGLayerRender = this.BGGBCLayerRenderNoPriorityFlagging;
+    this.WindowLayerRender = this.WindowGBCLayerRenderNoPriorityFlagging;
+  }
+}
+GameBoyCore.prototype.initializeReferencesFromSaveState = function () {
+  this.LCDCONTROL = (this.LCDisOn) ? this.LINECONTROL : this.DISPLAYOFFCONTROL;
+  var tileIndex = 0;
+  if (!this.cGBC) {
+    if (this.colorizedGBPalettes) {
+      this.BGPalette = this.gbBGColorizedPalette;
+      this.OBJPalette = this.gbOBJColorizedPalette;
+      this.updateGBBGPalette = this.updateGBColorizedBGPalette;
+      this.updateGBOBJPalette = this.updateGBColorizedOBJPalette;
+
+    }
+    else {
+      this.BGPalette = this.gbBGPalette;
+      this.OBJPalette = this.gbOBJPalette;
+    }
+    this.tileCache = this.generateCacheArray(0x700);
+    for (tileIndex = 0x8000; tileIndex < 0x9000; tileIndex += 2) {
+      this.generateGBOAMTileLine(tileIndex);
+    }
+    for (tileIndex = 0x9000; tileIndex < 0x9800; tileIndex += 2) {
+      this.generateGBTileLine(tileIndex);
+    }
+    this.sortBuffer = this.getTypedArray(0x100, 0, "uint8");
+    this.OAMAddressCache = this.getTypedArray(10, 0, "int32");
+  }
+  else {
+    this.BGCHRCurrentBank = (this.currVRAMBank > 0) ? this.BGCHRBank2 : this.BGCHRBank1;
+    this.tileCache = this.generateCacheArray(0xF80);
+    for (; tileIndex < 0x1800; tileIndex += 0x10) {
+      this.generateGBCTileBank1(tileIndex);
+      this.generateGBCTileBank2(tileIndex);
+    }
+  }
+  this.renderPathBuild();
+}
+GameBoyCore.prototype.RGBTint = function (value) {
+  //Adjustment for the GBC's tinting (According to Gambatte):
+  var r = value & 0x1F;
+  var g = (value >> 5) & 0x1F;
+  var b = (value >> 10) & 0x1F;
+  return ((r * 13 + g * 2 + b) >> 1) << 16 | (g * 3 + b) << 9 | (r * 3 + g * 2 + b * 11) >> 1;
+}
+GameBoyCore.prototype.getGBCColor = function () {
+  //GBC Colorization of DMG ROMs:
+  //BG
+  for (var counter = 0; counter < 4; counter++) {
+    var adjustedIndex = counter << 1;
+    //BG
+    this.cachedBGPaletteConversion[counter] = this.RGBTint((this.gbcBGRawPalette[adjustedIndex | 1] << 8) | this.gbcBGRawPalette[adjustedIndex]);
+    //OBJ 1
+    this.cachedOBJPaletteConversion[counter] = this.RGBTint((this.gbcOBJRawPalette[adjustedIndex | 1] << 8) | this.gbcOBJRawPalette[adjustedIndex]);
+  }
+  //OBJ 2
+  for (counter = 4; counter < 8; counter++) {
+    adjustedIndex = counter << 1;
+    this.cachedOBJPaletteConversion[counter] = this.RGBTint((this.gbcOBJRawPalette[adjustedIndex | 1] << 8) | this.gbcOBJRawPalette[adjustedIndex]);
+  }
+  //Update the palette entries:
+  this.updateGBBGPalette = this.updateGBColorizedBGPalette;
+  this.updateGBOBJPalette = this.updateGBColorizedOBJPalette;
+  this.updateGBBGPalette(this.memory[0xFF47]);
+  this.updateGBOBJPalette(0, this.memory[0xFF48]);
+  this.updateGBOBJPalette(1, this.memory[0xFF49]);
+  this.colorizedGBPalettes = true;
+}
+GameBoyCore.prototype.updateGBRegularBGPalette = function (data) {
+  this.gbBGPalette[0] = this.colors[data & 0x03] | 0x2000000;
+  this.gbBGPalette[1] = this.colors[(data >> 2) & 0x03];
+  this.gbBGPalette[2] = this.colors[(data >> 4) & 0x03];
+  this.gbBGPalette[3] = this.colors[data >> 6];
+}
+GameBoyCore.prototype.updateGBColorizedBGPalette = function (data) {
+  //GB colorization:
+  this.gbBGColorizedPalette[0] = this.cachedBGPaletteConversion[data & 0x03] | 0x2000000;
+  this.gbBGColorizedPalette[1] = this.cachedBGPaletteConversion[(data >> 2) & 0x03];
+  this.gbBGColorizedPalette[2] = this.cachedBGPaletteConversion[(data >> 4) & 0x03];
+  this.gbBGColorizedPalette[3] = this.cachedBGPaletteConversion[data >> 6];
+}
+GameBoyCore.prototype.updateGBRegularOBJPalette = function (index, data) {
+  this.gbOBJPalette[index | 1] = this.colors[(data >> 2) & 0x03];
+  this.gbOBJPalette[index | 2] = this.colors[(data >> 4) & 0x03];
+  this.gbOBJPalette[index | 3] = this.colors[data >> 6];
+}
+GameBoyCore.prototype.updateGBColorizedOBJPalette = function (index, data) {
+  //GB colorization:
+  this.gbOBJColorizedPalette[index | 1] = this.cachedOBJPaletteConversion[index | ((data >> 2) & 0x03)];
+  this.gbOBJColorizedPalette[index | 2] = this.cachedOBJPaletteConversion[index | ((data >> 4) & 0x03)];
+  this.gbOBJColorizedPalette[index | 3] = this.cachedOBJPaletteConversion[index | (data >> 6)];
+}
+GameBoyCore.prototype.updateGBCBGPalette = function (index, data) {
+  if (this.gbcBGRawPalette[index] != data) {
+    this.midScanLineJIT();
+    //Update the color palette for BG tiles since it changed:
+    this.gbcBGRawPalette[index] = data;
+    if ((index & 0x06) == 0) {
+      //Palette 0 (Special tile Priority stuff)
+      data = 0x2000000 | this.RGBTint((this.gbcBGRawPalette[index | 1] << 8) | this.gbcBGRawPalette[index & 0x3E]);
+      index >>= 1;
+      this.gbcBGPalette[index] = data;
+      this.gbcBGPalette[0x20 | index] = 0x1000000 | data;
+    }
+    else {
+      //Regular Palettes (No special crap)
+      data = this.RGBTint((this.gbcBGRawPalette[index | 1] << 8) | this.gbcBGRawPalette[index & 0x3E]);
+      index >>= 1;
+      this.gbcBGPalette[index] = data;
+      this.gbcBGPalette[0x20 | index] = 0x1000000 | data;
+    }
+  }
+}
+GameBoyCore.prototype.updateGBCOBJPalette = function (index, data) {
+  if (this.gbcOBJRawPalette[index] != data) {
+    //Update the color palette for OBJ tiles since it changed:
+    this.gbcOBJRawPalette[index] = data;
+    if ((index & 0x06) > 0) {
+      //Regular Palettes (No special crap)
+      this.midScanLineJIT();
+      this.gbcOBJPalette[index >> 1] = 0x1000000 | this.RGBTint((this.gbcOBJRawPalette[index | 1] << 8) | this.gbcOBJRawPalette[index & 0x3E]);
+    }
+  }
+}
+GameBoyCore.prototype.BGGBLayerRender = function (scanlineToRender) {
+  var scrollYAdjusted = (this.backgroundY + scanlineToRender) & 0xFF;            //The line of the BG we're at.
+  var tileYLine = (scrollYAdjusted & 7) << 3;
+  var tileYDown = this.gfxBackgroundCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2);  //The row of cached tiles we're fetching from.
+  var scrollXAdjusted = (this.backgroundX + this.currentX) & 0xFF;            //The scroll amount of the BG.
+  var pixelPosition = this.pixelStart + this.currentX;                  //Current pixel we're working on.
+  var pixelPositionEnd = this.pixelStart + ((this.gfxWindowDisplay && (scanlineToRender - this.windowY) >= 0) ? Math.min(Math.max(this.windowX, 0) + this.currentX, this.pixelEnd) : this.pixelEnd);  //Make sure we do at most 160 pixels a scanline.
+  var tileNumber = tileYDown + (scrollXAdjusted >> 3);
+  var chrCode = this.BGCHRBank1[tileNumber];
+  if (chrCode < this.gfxBackgroundBankOffset) {
+    chrCode |= 0x100;
+  }
+  var tile = this.tileCache[chrCode];
+  for (var texel = (scrollXAdjusted & 0x7); texel < 8 && pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) {
+    this.frameBuffer[pixelPosition++] = this.BGPalette[tile[tileYLine | texel++]];
+  }
+  var scrollXAdjustedAligned = Math.min(pixelPositionEnd - pixelPosition, 0x100 - scrollXAdjusted) >> 3;
+  scrollXAdjusted += scrollXAdjustedAligned << 3;
+  scrollXAdjustedAligned += tileNumber;
+  while (tileNumber < scrollXAdjustedAligned) {
+    chrCode = this.BGCHRBank1[++tileNumber];
+    if (chrCode < this.gfxBackgroundBankOffset) {
+      chrCode |= 0x100;
+    }
+    tile = this.tileCache[chrCode];
+    texel = tileYLine;
+    this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel]];
+  }
+  if (pixelPosition < pixelPositionEnd) {
+    if (scrollXAdjusted < 0x100) {
+      chrCode = this.BGCHRBank1[++tileNumber];
+      if (chrCode < this.gfxBackgroundBankOffset) {
+        chrCode |= 0x100;
+      }
+      tile = this.tileCache[chrCode];
+      for (texel = tileYLine - 1; pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) {
+        this.frameBuffer[pixelPosition++] = this.BGPalette[tile[++texel]];
+      }
+    }
+    scrollXAdjustedAligned = ((pixelPositionEnd - pixelPosition) >> 3) + tileYDown;
+    while (tileYDown < scrollXAdjustedAligned) {
+      chrCode = this.BGCHRBank1[tileYDown++];
+      if (chrCode < this.gfxBackgroundBankOffset) {
+        chrCode |= 0x100;
+      }
+      tile = this.tileCache[chrCode];
+      texel = tileYLine;
+      this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel]];
+    }
+    if (pixelPosition < pixelPositionEnd) {
+      chrCode = this.BGCHRBank1[tileYDown];
+      if (chrCode < this.gfxBackgroundBankOffset) {
+        chrCode |= 0x100;
+      }
+      tile = this.tileCache[chrCode];
+      switch (pixelPositionEnd - pixelPosition) {
+        case 7:
+          this.frameBuffer[pixelPosition + 6] = this.BGPalette[tile[tileYLine | 6]];
+        case 6:
+          this.frameBuffer[pixelPosition + 5] = this.BGPalette[tile[tileYLine | 5]];
+        case 5:
+          this.frameBuffer[pixelPosition + 4] = this.BGPalette[tile[tileYLine | 4]];
+        case 4:
+          this.frameBuffer[pixelPosition + 3] = this.BGPalette[tile[tileYLine | 3]];
+        case 3:
+          this.frameBuffer[pixelPosition + 2] = this.BGPalette[tile[tileYLine | 2]];
+        case 2:
+          this.frameBuffer[pixelPosition + 1] = this.BGPalette[tile[tileYLine | 1]];
+        case 1:
+          this.frameBuffer[pixelPosition] = this.BGPalette[tile[tileYLine]];
+      }
+    }
+  }
+}
+GameBoyCore.prototype.BGGBCLayerRender = function (scanlineToRender) {
+  var scrollYAdjusted = (this.backgroundY + scanlineToRender) & 0xFF;            //The line of the BG we're at.
+  var tileYLine = (scrollYAdjusted & 7) << 3;
+  var tileYDown = this.gfxBackgroundCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2);  //The row of cached tiles we're fetching from.
+  var scrollXAdjusted = (this.backgroundX + this.currentX) & 0xFF;            //The scroll amount of the BG.
+  var pixelPosition = this.pixelStart + this.currentX;                  //Current pixel we're working on.
+  var pixelPositionEnd = this.pixelStart + ((this.gfxWindowDisplay && (scanlineToRender - this.windowY) >= 0) ? Math.min(Math.max(this.windowX, 0) + this.currentX, this.pixelEnd) : this.pixelEnd);  //Make sure we do at most 160 pixels a scanline.
+  var tileNumber = tileYDown + (scrollXAdjusted >> 3);
+  var chrCode = this.BGCHRBank1[tileNumber];
+  if (chrCode < this.gfxBackgroundBankOffset) {
+    chrCode |= 0x100;
+  }
+  var attrCode = this.BGCHRBank2[tileNumber];
+  var tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+  var palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2);
+  for (var texel = (scrollXAdjusted & 0x7); texel < 8 && pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) {
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[tileYLine | texel++]];
+  }
+  var scrollXAdjustedAligned = Math.min(pixelPositionEnd - pixelPosition, 0x100 - scrollXAdjusted) >> 3;
+  scrollXAdjusted += scrollXAdjustedAligned << 3;
+  scrollXAdjustedAligned += tileNumber;
+  while (tileNumber < scrollXAdjustedAligned) {
+    chrCode = this.BGCHRBank1[++tileNumber];
+    if (chrCode < this.gfxBackgroundBankOffset) {
+      chrCode |= 0x100;
+    }
+    attrCode = this.BGCHRBank2[tileNumber];
+    tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+    palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2);
+    texel = tileYLine;
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]];
+  }
+  if (pixelPosition < pixelPositionEnd) {
+    if (scrollXAdjusted < 0x100) {
+      chrCode = this.BGCHRBank1[++tileNumber];
+      if (chrCode < this.gfxBackgroundBankOffset) {
+        chrCode |= 0x100;
+      }
+      attrCode = this.BGCHRBank2[tileNumber];
+      tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+      palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2);
+      for (texel = tileYLine - 1; pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) {
+        this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[++texel]];
+      }
+    }
+    scrollXAdjustedAligned = ((pixelPositionEnd - pixelPosition) >> 3) + tileYDown;
+    while (tileYDown < scrollXAdjustedAligned) {
+      chrCode = this.BGCHRBank1[tileYDown];
+      if (chrCode < this.gfxBackgroundBankOffset) {
+        chrCode |= 0x100;
+      }
+      attrCode = this.BGCHRBank2[tileYDown++];
+      tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+      palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2);
+      texel = tileYLine;
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]];
+    }
+    if (pixelPosition < pixelPositionEnd) {
+      chrCode = this.BGCHRBank1[tileYDown];
+      if (chrCode < this.gfxBackgroundBankOffset) {
+        chrCode |= 0x100;
+      }
+      attrCode = this.BGCHRBank2[tileYDown];
+      tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+      palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2);
+      switch (pixelPositionEnd - pixelPosition) {
+        case 7:
+          this.frameBuffer[pixelPosition + 6] = this.gbcBGPalette[palette | tile[tileYLine | 6]];
+        case 6:
+          this.frameBuffer[pixelPosition + 5] = this.gbcBGPalette[palette | tile[tileYLine | 5]];
+        case 5:
+          this.frameBuffer[pixelPosition + 4] = this.gbcBGPalette[palette | tile[tileYLine | 4]];
+        case 4:
+          this.frameBuffer[pixelPosition + 3] = this.gbcBGPalette[palette | tile[tileYLine | 3]];
+        case 3:
+          this.frameBuffer[pixelPosition + 2] = this.gbcBGPalette[palette | tile[tileYLine | 2]];
+        case 2:
+          this.frameBuffer[pixelPosition + 1] = this.gbcBGPalette[palette | tile[tileYLine | 1]];
+        case 1:
+          this.frameBuffer[pixelPosition] = this.gbcBGPalette[palette | tile[tileYLine]];
+      }
+    }
+  }
+}
+GameBoyCore.prototype.BGGBCLayerRenderNoPriorityFlagging = function (scanlineToRender) {
+  var scrollYAdjusted = (this.backgroundY + scanlineToRender) & 0xFF;            //The line of the BG we're at.
+  var tileYLine = (scrollYAdjusted & 7) << 3;
+  var tileYDown = this.gfxBackgroundCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2);  //The row of cached tiles we're fetching from.
+  var scrollXAdjusted = (this.backgroundX + this.currentX) & 0xFF;            //The scroll amount of the BG.
+  var pixelPosition = this.pixelStart + this.currentX;                  //Current pixel we're working on.
+  var pixelPositionEnd = this.pixelStart + ((this.gfxWindowDisplay && (scanlineToRender - this.windowY) >= 0) ? Math.min(Math.max(this.windowX, 0) + this.currentX, this.pixelEnd) : this.pixelEnd);  //Make sure we do at most 160 pixels a scanline.
+  var tileNumber = tileYDown + (scrollXAdjusted >> 3);
+  var chrCode = this.BGCHRBank1[tileNumber];
+  if (chrCode < this.gfxBackgroundBankOffset) {
+    chrCode |= 0x100;
+  }
+  var attrCode = this.BGCHRBank2[tileNumber];
+  var tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+  var palette = (attrCode & 0x7) << 2;
+  for (var texel = (scrollXAdjusted & 0x7); texel < 8 && pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) {
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[tileYLine | texel++]];
+  }
+  var scrollXAdjustedAligned = Math.min(pixelPositionEnd - pixelPosition, 0x100 - scrollXAdjusted) >> 3;
+  scrollXAdjusted += scrollXAdjustedAligned << 3;
+  scrollXAdjustedAligned += tileNumber;
+  while (tileNumber < scrollXAdjustedAligned) {
+    chrCode = this.BGCHRBank1[++tileNumber];
+    if (chrCode < this.gfxBackgroundBankOffset) {
+      chrCode |= 0x100;
+    }
+    attrCode = this.BGCHRBank2[tileNumber];
+    tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+    palette = (attrCode & 0x7) << 2;
+    texel = tileYLine;
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+    this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]];
+  }
+  if (pixelPosition < pixelPositionEnd) {
+    if (scrollXAdjusted < 0x100) {
+      chrCode = this.BGCHRBank1[++tileNumber];
+      if (chrCode < this.gfxBackgroundBankOffset) {
+        chrCode |= 0x100;
+      }
+      attrCode = this.BGCHRBank2[tileNumber];
+      tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+      palette = (attrCode & 0x7) << 2;
+      for (texel = tileYLine - 1; pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) {
+        this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[++texel]];
+      }
+    }
+    scrollXAdjustedAligned = ((pixelPositionEnd - pixelPosition) >> 3) + tileYDown;
+    while (tileYDown < scrollXAdjustedAligned) {
+      chrCode = this.BGCHRBank1[tileYDown];
+      if (chrCode < this.gfxBackgroundBankOffset) {
+        chrCode |= 0x100;
+      }
+      attrCode = this.BGCHRBank2[tileYDown++];
+      tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+      palette = (attrCode & 0x7) << 2;
+      texel = tileYLine;
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+      this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]];
+    }
+    if (pixelPosition < pixelPositionEnd) {
+      chrCode = this.BGCHRBank1[tileYDown];
+      if (chrCode < this.gfxBackgroundBankOffset) {
+        chrCode |= 0x100;
+      }
+      attrCode = this.BGCHRBank2[tileYDown];
+      tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+      palette = (attrCode & 0x7) << 2;
+      switch (pixelPositionEnd - pixelPosition) {
+        case 7:
+          this.frameBuffer[pixelPosition + 6] = this.gbcBGPalette[palette | tile[tileYLine | 6]];
+        case 6:
+          this.frameBuffer[pixelPosition + 5] = this.gbcBGPalette[palette | tile[tileYLine | 5]];
+        case 5:
+          this.frameBuffer[pixelPosition + 4] = this.gbcBGPalette[palette | tile[tileYLine | 4]];
+        case 4:
+          this.frameBuffer[pixelPosition + 3] = this.gbcBGPalette[palette | tile[tileYLine | 3]];
+        case 3:
+          this.frameBuffer[pixelPosition + 2] = this.gbcBGPalette[palette | tile[tileYLine | 2]];
+        case 2:
+          this.frameBuffer[pixelPosition + 1] = this.gbcBGPalette[palette | tile[tileYLine | 1]];
+        case 1:
+          this.frameBuffer[pixelPosition] = this.gbcBGPalette[palette | tile[tileYLine]];
+      }
+    }
+  }
+}
+GameBoyCore.prototype.WindowGBLayerRender = function (scanlineToRender) {
+  if (this.gfxWindowDisplay) {                  //Is the window enabled?
+    var scrollYAdjusted = scanlineToRender - this.windowY;    //The line of the BG we're at.
+    if (scrollYAdjusted >= 0) {
+      var scrollXRangeAdjusted = (this.windowX > 0) ? (this.windowX + this.currentX) : this.currentX;
+      var pixelPosition = this.pixelStart + scrollXRangeAdjusted;
+      var pixelPositionEnd = this.pixelStart + this.pixelEnd;
+      if (pixelPosition < pixelPositionEnd) {
+        var tileYLine = (scrollYAdjusted & 0x7) << 3;
+        var tileNumber = (this.gfxWindowCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2)) + (this.currentX >> 3);
+        var chrCode = this.BGCHRBank1[tileNumber];
+        if (chrCode < this.gfxBackgroundBankOffset) {
+          chrCode |= 0x100;
+        }
+        var tile = this.tileCache[chrCode];
+        var texel = (scrollXRangeAdjusted - this.windowX) & 0x7;
+        scrollXRangeAdjusted = Math.min(8, texel + pixelPositionEnd - pixelPosition);
+        while (texel < scrollXRangeAdjusted) {
+          this.frameBuffer[pixelPosition++] = this.BGPalette[tile[tileYLine | texel++]];
+        }
+        scrollXRangeAdjusted = tileNumber + ((pixelPositionEnd - pixelPosition) >> 3);
+        while (tileNumber < scrollXRangeAdjusted) {
+          chrCode = this.BGCHRBank1[++tileNumber];
+          if (chrCode < this.gfxBackgroundBankOffset) {
+            chrCode |= 0x100;
+          }
+          tile = this.tileCache[chrCode];
+          texel = tileYLine;
+          this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel]];
+        }
+        if (pixelPosition < pixelPositionEnd) {
+          chrCode = this.BGCHRBank1[++tileNumber];
+          if (chrCode < this.gfxBackgroundBankOffset) {
+            chrCode |= 0x100;
+          }
+          tile = this.tileCache[chrCode];
+          switch (pixelPositionEnd - pixelPosition) {
+            case 7:
+              this.frameBuffer[pixelPosition + 6] = this.BGPalette[tile[tileYLine | 6]];
+            case 6:
+              this.frameBuffer[pixelPosition + 5] = this.BGPalette[tile[tileYLine | 5]];
+            case 5:
+              this.frameBuffer[pixelPosition + 4] = this.BGPalette[tile[tileYLine | 4]];
+            case 4:
+              this.frameBuffer[pixelPosition + 3] = this.BGPalette[tile[tileYLine | 3]];
+            case 3:
+              this.frameBuffer[pixelPosition + 2] = this.BGPalette[tile[tileYLine | 2]];
+            case 2:
+              this.frameBuffer[pixelPosition + 1] = this.BGPalette[tile[tileYLine | 1]];
+            case 1:
+              this.frameBuffer[pixelPosition] = this.BGPalette[tile[tileYLine]];
+          }
+        }
+      }
+    }
+  }
+}
+GameBoyCore.prototype.WindowGBCLayerRender = function (scanlineToRender) {
+  if (this.gfxWindowDisplay) {                  //Is the window enabled?
+    var scrollYAdjusted = scanlineToRender - this.windowY;    //The line of the BG we're at.
+    if (scrollYAdjusted >= 0) {
+      var scrollXRangeAdjusted = (this.windowX > 0) ? (this.windowX + this.currentX) : this.currentX;
+      var pixelPosition = this.pixelStart + scrollXRangeAdjusted;
+      var pixelPositionEnd = this.pixelStart + this.pixelEnd;
+      if (pixelPosition < pixelPositionEnd) {
+        var tileYLine = (scrollYAdjusted & 0x7) << 3;
+        var tileNumber = (this.gfxWindowCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2)) + (this.currentX >> 3);
+        var chrCode = this.BGCHRBank1[tileNumber];
+        if (chrCode < this.gfxBackgroundBankOffset) {
+          chrCode |= 0x100;
+        }
+        var attrCode = this.BGCHRBank2[tileNumber];
+        var tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+        var palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2);
+        var texel = (scrollXRangeAdjusted - this.windowX) & 0x7;
+        scrollXRangeAdjusted = Math.min(8, texel + pixelPositionEnd - pixelPosition);
+        while (texel < scrollXRangeAdjusted) {
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[tileYLine | texel++]];
+        }
+        scrollXRangeAdjusted = tileNumber + ((pixelPositionEnd - pixelPosition) >> 3);
+        while (tileNumber < scrollXRangeAdjusted) {
+          chrCode = this.BGCHRBank1[++tileNumber];
+          if (chrCode < this.gfxBackgroundBankOffset) {
+            chrCode |= 0x100;
+          }
+          attrCode = this.BGCHRBank2[tileNumber];
+          tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+          palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2);
+          texel = tileYLine;
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]];
+        }
+        if (pixelPosition < pixelPositionEnd) {
+          chrCode = this.BGCHRBank1[++tileNumber];
+          if (chrCode < this.gfxBackgroundBankOffset) {
+            chrCode |= 0x100;
+          }
+          attrCode = this.BGCHRBank2[tileNumber];
+          tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+          palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2);
+          switch (pixelPositionEnd - pixelPosition) {
+            case 7:
+              this.frameBuffer[pixelPosition + 6] = this.gbcBGPalette[palette | tile[tileYLine | 6]];
+            case 6:
+              this.frameBuffer[pixelPosition + 5] = this.gbcBGPalette[palette | tile[tileYLine | 5]];
+            case 5:
+              this.frameBuffer[pixelPosition + 4] = this.gbcBGPalette[palette | tile[tileYLine | 4]];
+            case 4:
+              this.frameBuffer[pixelPosition + 3] = this.gbcBGPalette[palette | tile[tileYLine | 3]];
+            case 3:
+              this.frameBuffer[pixelPosition + 2] = this.gbcBGPalette[palette | tile[tileYLine | 2]];
+            case 2:
+              this.frameBuffer[pixelPosition + 1] = this.gbcBGPalette[palette | tile[tileYLine | 1]];
+            case 1:
+              this.frameBuffer[pixelPosition] = this.gbcBGPalette[palette | tile[tileYLine]];
+          }
+        }
+      }
+    }
+  }
+}
+GameBoyCore.prototype.WindowGBCLayerRenderNoPriorityFlagging = function (scanlineToRender) {
+  if (this.gfxWindowDisplay) {                  //Is the window enabled?
+    var scrollYAdjusted = scanlineToRender - this.windowY;    //The line of the BG we're at.
+    if (scrollYAdjusted >= 0) {
+      var scrollXRangeAdjusted = (this.windowX > 0) ? (this.windowX + this.currentX) : this.currentX;
+      var pixelPosition = this.pixelStart + scrollXRangeAdjusted;
+      var pixelPositionEnd = this.pixelStart + this.pixelEnd;
+      if (pixelPosition < pixelPositionEnd) {
+        var tileYLine = (scrollYAdjusted & 0x7) << 3;
+        var tileNumber = (this.gfxWindowCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2)) + (this.currentX >> 3);
+        var chrCode = this.BGCHRBank1[tileNumber];
+        if (chrCode < this.gfxBackgroundBankOffset) {
+          chrCode |= 0x100;
+        }
+        var attrCode = this.BGCHRBank2[tileNumber];
+        var tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+        var palette = (attrCode & 0x7) << 2;
+        var texel = (scrollXRangeAdjusted - this.windowX) & 0x7;
+        scrollXRangeAdjusted = Math.min(8, texel + pixelPositionEnd - pixelPosition);
+        while (texel < scrollXRangeAdjusted) {
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[tileYLine | texel++]];
+        }
+        scrollXRangeAdjusted = tileNumber + ((pixelPositionEnd - pixelPosition) >> 3);
+        while (tileNumber < scrollXRangeAdjusted) {
+          chrCode = this.BGCHRBank1[++tileNumber];
+          if (chrCode < this.gfxBackgroundBankOffset) {
+            chrCode |= 0x100;
+          }
+          attrCode = this.BGCHRBank2[tileNumber];
+          tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+          palette = (attrCode & 0x7) << 2;
+          texel = tileYLine;
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]];
+          this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]];
+        }
+        if (pixelPosition < pixelPositionEnd) {
+          chrCode = this.BGCHRBank1[++tileNumber];
+          if (chrCode < this.gfxBackgroundBankOffset) {
+            chrCode |= 0x100;
+          }
+          attrCode = this.BGCHRBank2[tileNumber];
+          tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode];
+          palette = (attrCode & 0x7) << 2;
+          switch (pixelPositionEnd - pixelPosition) {
+            case 7:
+              this.frameBuffer[pixelPosition + 6] = this.gbcBGPalette[palette | tile[tileYLine | 6]];
+            case 6:
+              this.frameBuffer[pixelPosition + 5] = this.gbcBGPalette[palette | tile[tileYLine | 5]];
+            case 5:
+              this.frameBuffer[pixelPosition + 4] = this.gbcBGPalette[palette | tile[tileYLine | 4]];
+            case 4:
+              this.frameBuffer[pixelPosition + 3] = this.gbcBGPalette[palette | tile[tileYLine | 3]];
+            case 3:
+              this.frameBuffer[pixelPosition + 2] = this.gbcBGPalette[palette | tile[tileYLine | 2]];
+            case 2:
+              this.frameBuffer[pixelPosition + 1] = this.gbcBGPalette[palette | tile[tileYLine | 1]];
+            case 1:
+              this.frameBuffer[pixelPosition] = this.gbcBGPalette[palette | tile[tileYLine]];
+          }
+        }
+      }
+    }
+  }
+}
+GameBoyCore.prototype.SpriteGBLayerRender = function (scanlineToRender) {
+  if (this.gfxSpriteShow) {                    //Are sprites enabled?
+    var lineAdjusted = scanlineToRender + 0x10;
+    var OAMAddress = 0xFE00;
+    var yoffset = 0;
+    var xcoord = 1;
+    var xCoordStart = 0;
+    var xCoordEnd = 0;
+    var attrCode = 0;
+    var palette = 0;
+    var tile = null;
+    var data = 0;
+    var spriteCount = 0;
+    var length = 0;
+    var currentPixel = 0;
+    var linePixel = 0;
+    //Clear our x-coord sort buffer:
+    while (xcoord < 168) {
+      this.sortBuffer[xcoord++] = 0xFF;
+    }
+    if (this.gfxSpriteNormalHeight) {
+      //Draw the visible sprites:
+      for (var length = this.findLowestSpriteDrawable(lineAdjusted, 0x7); spriteCount < length; ++spriteCount) {
+        OAMAddress = this.OAMAddressCache[spriteCount];
+        yoffset = (lineAdjusted - this.memory[OAMAddress]) << 3;
+        attrCode = this.memory[OAMAddress | 3];
+        palette = (attrCode & 0x10) >> 2;
+        tile = this.tileCache[((attrCode & 0x60) << 4) | this.memory[OAMAddress | 0x2]];
+        linePixel = xCoordStart = this.memory[OAMAddress | 1];
+        xCoordEnd = Math.min(168 - linePixel, 8);
+        xcoord = (linePixel > 7) ? 0 : (8 - linePixel);
+        for (currentPixel = this.pixelStart + ((linePixel > 8) ? (linePixel - 8) : 0); xcoord < xCoordEnd; ++xcoord, ++currentPixel, ++linePixel) {
+          if (this.sortBuffer[linePixel] > xCoordStart) {
+            if (this.frameBuffer[currentPixel] >= 0x2000000) {
+              data = tile[yoffset | xcoord];
+              if (data > 0) {
+                this.frameBuffer[currentPixel] = this.OBJPalette[palette | data];
+                this.sortBuffer[linePixel] = xCoordStart;
+              }
+            }
+            else if (this.frameBuffer[currentPixel] < 0x1000000) {
+              data = tile[yoffset | xcoord];
+              if (data > 0 && attrCode < 0x80) {
+                this.frameBuffer[currentPixel] = this.OBJPalette[palette | data];
+                this.sortBuffer[linePixel] = xCoordStart;
+              }
+            }
+          }
+        }
+      }
+    }
+    else {
+      //Draw the visible sprites:
+      for (var length = this.findLowestSpriteDrawable(lineAdjusted, 0xF); spriteCount < length; ++spriteCount) {
+        OAMAddress = this.OAMAddressCache[spriteCount];
+        yoffset = (lineAdjusted - this.memory[OAMAddress]) << 3;
+        attrCode = this.memory[OAMAddress | 3];
+        palette = (attrCode & 0x10) >> 2;
+        if ((attrCode & 0x40) == (0x40 & yoffset)) {
+          tile = this.tileCache[((attrCode & 0x60) << 4) | (this.memory[OAMAddress | 0x2] & 0xFE)];
+        }
+        else {
+          tile = this.tileCache[((attrCode & 0x60) << 4) | this.memory[OAMAddress | 0x2] | 1];
+        }
+        yoffset &= 0x3F;
+        linePixel = xCoordStart = this.memory[OAMAddress | 1];
+        xCoordEnd = Math.min(168 - linePixel, 8);
+        xcoord = (linePixel > 7) ? 0 : (8 - linePixel);
+        for (currentPixel = this.pixelStart + ((linePixel > 8) ? (linePixel - 8) : 0); xcoord < xCoordEnd; ++xcoord, ++currentPixel, ++linePixel) {
+          if (this.sortBuffer[linePixel] > xCoordStart) {
+            if (this.frameBuffer[currentPixel] >= 0x2000000) {
+              data = tile[yoffset | xcoord];
+              if (data > 0) {
+                this.frameBuffer[currentPixel] = this.OBJPalette[palette | data];
+                this.sortBuffer[linePixel] = xCoordStart;
+              }
+            }
+            else if (this.frameBuffer[currentPixel] < 0x1000000) {
+              data = tile[yoffset | xcoord];
+              if (data > 0 && attrCode < 0x80) {
+                this.frameBuffer[currentPixel] = this.OBJPalette[palette | data];
+                this.sortBuffer[linePixel] = xCoordStart;
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+GameBoyCore.prototype.findLowestSpriteDrawable = function (scanlineToRender, drawableRange) {
+  var address = 0xFE00;
+  var spriteCount = 0;
+  var diff = 0;
+  while (address < 0xFEA0 && spriteCount < 10) {
+    diff = scanlineToRender - this.memory[address];
+    if ((diff & drawableRange) == diff) {
+      this.OAMAddressCache[spriteCount++] = address;
+    }
+    address += 4;
+  }
+  return spriteCount;
+}
+GameBoyCore.prototype.SpriteGBCLayerRender = function (scanlineToRender) {
+  if (this.gfxSpriteShow) {                    //Are sprites enabled?
+    var OAMAddress = 0xFE00;
+    var lineAdjusted = scanlineToRender + 0x10;
+    var yoffset = 0;
+    var xcoord = 0;
+    var endX = 0;
+    var xCounter = 0;
+    var attrCode = 0;
+    var palette = 0;
+    var tile = null;
+    var data = 0;
+    var currentPixel = 0;
+    var spriteCount = 0;
+    if (this.gfxSpriteNormalHeight) {
+      for (; OAMAddress < 0xFEA0 && spriteCount < 10; OAMAddress += 4) {
+        yoffset = lineAdjusted - this.memory[OAMAddress];
+        if ((yoffset & 0x7) == yoffset) {
+          xcoord = this.memory[OAMAddress | 1] - 8;
+          endX = Math.min(160, xcoord + 8);
+          attrCode = this.memory[OAMAddress | 3];
+          palette = (attrCode & 7) << 2;
+          tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | this.memory[OAMAddress | 2]];
+          xCounter = (xcoord > 0) ? xcoord : 0;
+          xcoord -= yoffset << 3;
+          for (currentPixel = this.pixelStart + xCounter; xCounter < endX; ++xCounter, ++currentPixel) {
+            if (this.frameBuffer[currentPixel] >= 0x2000000) {
+              data = tile[xCounter - xcoord];
+              if (data > 0) {
+                this.frameBuffer[currentPixel] = this.gbcOBJPalette[palette | data];
+              }
+            }
+            else if (this.frameBuffer[currentPixel] < 0x1000000) {
+              data = tile[xCounter - xcoord];
+              if (data > 0 && attrCode < 0x80) {    //Don't optimize for attrCode, as LICM-capable JITs should optimize its checks.
+                this.frameBuffer[currentPixel] = this.gbcOBJPalette[palette | data];
+              }
+            }
+          }
+          ++spriteCount;
+        }
+      }
+    }
+    else {
+      for (; OAMAddress < 0xFEA0 && spriteCount < 10; OAMAddress += 4) {
+        yoffset = lineAdjusted - this.memory[OAMAddress];
+        if ((yoffset & 0xF) == yoffset) {
+          xcoord = this.memory[OAMAddress | 1] - 8;
+          endX = Math.min(160, xcoord + 8);
+          attrCode = this.memory[OAMAddress | 3];
+          palette = (attrCode & 7) << 2;
+          if ((attrCode & 0x40) == (0x40 & (yoffset << 3))) {
+            tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | (this.memory[OAMAddress | 0x2] & 0xFE)];
+          }
+          else {
+            tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | this.memory[OAMAddress | 0x2] | 1];
+          }
+          xCounter = (xcoord > 0) ? xcoord : 0;
+          xcoord -= (yoffset & 0x7) << 3;
+          for (currentPixel = this.pixelStart + xCounter; xCounter < endX; ++xCounter, ++currentPixel) {
+            if (this.frameBuffer[currentPixel] >= 0x2000000) {
+              data = tile[xCounter - xcoord];
+              if (data > 0) {
+                this.frameBuffer[currentPixel] = this.gbcOBJPalette[palette | data];
+              }
+            }
+            else if (this.frameBuffer[currentPixel] < 0x1000000) {
+              data = tile[xCounter - xcoord];
+              if (data > 0 && attrCode < 0x80) {    //Don't optimize for attrCode, as LICM-capable JITs should optimize its checks.
+                this.frameBuffer[currentPixel] = this.gbcOBJPalette[palette | data];
+              }
+            }
+          }
+          ++spriteCount;
+        }
+      }
+    }
+  }
+}
+//Generate only a single tile line for the GB tile cache mode:
+GameBoyCore.prototype.generateGBTileLine = function (address) {
+  var lineCopy = (this.memory[0x1 | address] << 8) | this.memory[0x9FFE & address];
+  var tileBlock = this.tileCache[(address & 0x1FF0) >> 4];
+  address = (address & 0xE) << 2;
+  tileBlock[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1);
+  tileBlock[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1);
+  tileBlock[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2);
+  tileBlock[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3);
+  tileBlock[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4);
+  tileBlock[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5);
+  tileBlock[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6);
+  tileBlock[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7);
+}
+//Generate only a single tile line for the GBC tile cache mode (Bank 1):
+GameBoyCore.prototype.generateGBCTileLineBank1 = function (address) {
+  var lineCopy = (this.memory[0x1 | address] << 8) | this.memory[0x9FFE & address];
+  address &= 0x1FFE;
+  var tileBlock1 = this.tileCache[address >> 4];
+  var tileBlock2 = this.tileCache[0x200 | (address >> 4)];
+  var tileBlock3 = this.tileCache[0x400 | (address >> 4)];
+  var tileBlock4 = this.tileCache[0x600 | (address >> 4)];
+  address = (address & 0xE) << 2;
+  var addressFlipped = 0x38 - address;
+  tileBlock4[addressFlipped] = tileBlock2[address] = tileBlock3[addressFlipped | 7] = tileBlock1[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1);
+  tileBlock4[addressFlipped | 1] = tileBlock2[address | 1] = tileBlock3[addressFlipped | 6] = tileBlock1[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1);
+  tileBlock4[addressFlipped | 2] = tileBlock2[address | 2] = tileBlock3[addressFlipped | 5] = tileBlock1[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2);
+  tileBlock4[addressFlipped | 3] = tileBlock2[address | 3] = tileBlock3[addressFlipped | 4] = tileBlock1[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3);
+  tileBlock4[addressFlipped | 4] = tileBlock2[address | 4] = tileBlock3[addressFlipped | 3] = tileBlock1[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4);
+  tileBlock4[addressFlipped | 5] = tileBlock2[address | 5] = tileBlock3[addressFlipped | 2] = tileBlock1[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5);
+  tileBlock4[addressFlipped | 6] = tileBlock2[address | 6] = tileBlock3[addressFlipped | 1] = tileBlock1[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6);
+  tileBlock4[addressFlipped | 7] = tileBlock2[address | 7] = tileBlock3[addressFlipped] = tileBlock1[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7);
+}
+//Generate all the flip combinations for a full GBC VRAM bank 1 tile:
+GameBoyCore.prototype.generateGBCTileBank1 = function (vramAddress) {
+  var address = vramAddress >> 4;
+  var tileBlock1 = this.tileCache[address];
+  var tileBlock2 = this.tileCache[0x200 | address];
+  var tileBlock3 = this.tileCache[0x400 | address];
+  var tileBlock4 = this.tileCache[0x600 | address];
+  var lineCopy = 0;
+  vramAddress |= 0x8000;
+  address = 0;
+  var addressFlipped = 56;
+  do {
+    lineCopy = (this.memory[0x1 | vramAddress] << 8) | this.memory[vramAddress];
+    tileBlock4[addressFlipped] = tileBlock2[address] = tileBlock3[addressFlipped | 7] = tileBlock1[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1);
+    tileBlock4[addressFlipped | 1] = tileBlock2[address | 1] = tileBlock3[addressFlipped | 6] = tileBlock1[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1);
+    tileBlock4[addressFlipped | 2] = tileBlock2[address | 2] = tileBlock3[addressFlipped | 5] = tileBlock1[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2);
+    tileBlock4[addressFlipped | 3] = tileBlock2[address | 3] = tileBlock3[addressFlipped | 4] = tileBlock1[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3);
+    tileBlock4[addressFlipped | 4] = tileBlock2[address | 4] = tileBlock3[addressFlipped | 3] = tileBlock1[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4);
+    tileBlock4[addressFlipped | 5] = tileBlock2[address | 5] = tileBlock3[addressFlipped | 2] = tileBlock1[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5);
+    tileBlock4[addressFlipped | 6] = tileBlock2[address | 6] = tileBlock3[addressFlipped | 1] = tileBlock1[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6);
+    tileBlock4[addressFlipped | 7] = tileBlock2[address | 7] = tileBlock3[addressFlipped] = tileBlock1[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7);
+    address += 8;
+    addressFlipped -= 8;
+    vramAddress += 2;
+  } while (addressFlipped > -1);
+}
+//Generate only a single tile line for the GBC tile cache mode (Bank 2):
+GameBoyCore.prototype.generateGBCTileLineBank2 = function (address) {
+  var lineCopy = (this.VRAM[0x1 | address] << 8) | this.VRAM[0x1FFE & address];
+  var tileBlock1 = this.tileCache[0x800 | (address >> 4)];
+  var tileBlock2 = this.tileCache[0xA00 | (address >> 4)];
+  var tileBlock3 = this.tileCache[0xC00 | (address >> 4)];
+  var tileBlock4 = this.tileCache[0xE00 | (address >> 4)];
+  address = (address & 0xE) << 2;
+  var addressFlipped = 0x38 - address;
+  tileBlock4[addressFlipped] = tileBlock2[address] = tileBlock3[addressFlipped | 7] = tileBlock1[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1);
+  tileBlock4[addressFlipped | 1] = tileBlock2[address | 1] = tileBlock3[addressFlipped | 6] = tileBlock1[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1);
+  tileBlock4[addressFlipped | 2] = tileBlock2[address | 2] = tileBlock3[addressFlipped | 5] = tileBlock1[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2);
+  tileBlock4[addressFlipped | 3] = tileBlock2[address | 3] = tileBlock3[addressFlipped | 4] = tileBlock1[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3);
+  tileBlock4[addressFlipped | 4] = tileBlock2[address | 4] = tileBlock3[addressFlipped | 3] = tileBlock1[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4);
+  tileBlock4[addressFlipped | 5] = tileBlock2[address | 5] = tileBlock3[addressFlipped | 2] = tileBlock1[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5);
+  tileBlock4[addressFlipped | 6] = tileBlock2[address | 6] = tileBlock3[addressFlipped | 1] = tileBlock1[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6);
+  tileBlock4[addressFlipped | 7] = tileBlock2[address | 7] = tileBlock3[addressFlipped] = tileBlock1[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7);
+}
+//Generate all the flip combinations for a full GBC VRAM bank 2 tile:
+GameBoyCore.prototype.generateGBCTileBank2 = function (vramAddress) {
+  var address = vramAddress >> 4;
+  var tileBlock1 = this.tileCache[0x800 | address];
+  var tileBlock2 = this.tileCache[0xA00 | address];
+  var tileBlock3 = this.tileCache[0xC00 | address];
+  var tileBlock4 = this.tileCache[0xE00 | address];
+  var lineCopy = 0;
+  address = 0;
+  var addressFlipped = 56;
+  do {
+    lineCopy = (this.VRAM[0x1 | vramAddress] << 8) | this.VRAM[vramAddress];
+    tileBlock4[addressFlipped] = tileBlock2[address] = tileBlock3[addressFlipped | 7] = tileBlock1[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1);
+    tileBlock4[addressFlipped | 1] = tileBlock2[address | 1] = tileBlock3[addressFlipped | 6] = tileBlock1[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1);
+    tileBlock4[addressFlipped | 2] = tileBlock2[address | 2] = tileBlock3[addressFlipped | 5] = tileBlock1[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2);
+    tileBlock4[addressFlipped | 3] = tileBlock2[address | 3] = tileBlock3[addressFlipped | 4] = tileBlock1[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3);
+    tileBlock4[addressFlipped | 4] = tileBlock2[address | 4] = tileBlock3[addressFlipped | 3] = tileBlock1[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4);
+    tileBlock4[addressFlipped | 5] = tileBlock2[address | 5] = tileBlock3[addressFlipped | 2] = tileBlock1[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5);
+    tileBlock4[addressFlipped | 6] = tileBlock2[address | 6] = tileBlock3[addressFlipped | 1] = tileBlock1[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6);
+    tileBlock4[addressFlipped | 7] = tileBlock2[address | 7] = tileBlock3[addressFlipped] = tileBlock1[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7);
+    address += 8;
+    addressFlipped -= 8;
+    vramAddress += 2;
+  } while (addressFlipped > -1);
+}
+//Generate only a single tile line for the GB tile cache mode (OAM accessible range):
+GameBoyCore.prototype.generateGBOAMTileLine = function (address) {
+  var lineCopy = (this.memory[0x1 | address] << 8) | this.memory[0x9FFE & address];
+  address &= 0x1FFE;
+  var tileBlock1 = this.tileCache[address >> 4];
+  var tileBlock2 = this.tileCache[0x200 | (address >> 4)];
+  var tileBlock3 = this.tileCache[0x400 | (address >> 4)];
+  var tileBlock4 = this.tileCache[0x600 | (address >> 4)];
+  address = (address & 0xE) << 2;
+  var addressFlipped = 0x38 - address;
+  tileBlock4[addressFlipped] = tileBlock2[address] = tileBlock3[addressFlipped | 7] = tileBlock1[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1);
+  tileBlock4[addressFlipped | 1] = tileBlock2[address | 1] = tileBlock3[addressFlipped | 6] = tileBlock1[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1);
+  tileBlock4[addressFlipped | 2] = tileBlock2[address | 2] = tileBlock3[addressFlipped | 5] = tileBlock1[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2);
+  tileBlock4[addressFlipped | 3] = tileBlock2[address | 3] = tileBlock3[addressFlipped | 4] = tileBlock1[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3);
+  tileBlock4[addressFlipped | 4] = tileBlock2[address | 4] = tileBlock3[addressFlipped | 3] = tileBlock1[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4);
+  tileBlock4[addressFlipped | 5] = tileBlock2[address | 5] = tileBlock3[addressFlipped | 2] = tileBlock1[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5);
+  tileBlock4[addressFlipped | 6] = tileBlock2[address | 6] = tileBlock3[addressFlipped | 1] = tileBlock1[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6);
+  tileBlock4[addressFlipped | 7] = tileBlock2[address | 7] = tileBlock3[addressFlipped] = tileBlock1[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7);
+}
+GameBoyCore.prototype.graphicsJIT = function () {
+  if (this.LCDisOn) {
+    this.totalLinesPassed = 0;      //Mark frame for ensuring a JIT pass for the next framebuffer output.
+    this.graphicsJITScanlineGroup();
+  }
+}
+GameBoyCore.prototype.graphicsJITVBlank = function () {
+  //JIT the graphics to v-blank framing:
+  this.totalLinesPassed += this.queuedScanLines;
+  this.graphicsJITScanlineGroup();
+}
+GameBoyCore.prototype.graphicsJITScanlineGroup = function () {
+  //Normal rendering JIT, where we try to do groups of scanlines at once:
+  while (this.queuedScanLines > 0) {
+    this.renderScanLine(this.lastUnrenderedLine);
+    if (this.lastUnrenderedLine < 143) {
+      ++this.lastUnrenderedLine;
+    }
+    else {
+      this.lastUnrenderedLine = 0;
+    }
+    --this.queuedScanLines;
+  }
+}
+GameBoyCore.prototype.incrementScanLineQueue = function () {
+  if (this.queuedScanLines < 144) {
+    ++this.queuedScanLines;
+  }
+  else {
+    this.currentX = 0;
+    this.midScanlineOffset = -1;
+    if (this.lastUnrenderedLine < 143) {
+      ++this.lastUnrenderedLine;
+    }
+    else {
+      this.lastUnrenderedLine = 0;
+    }
+  }
+}
+GameBoyCore.prototype.midScanLineJIT = function () {
+  this.graphicsJIT();
+  this.renderMidScanLine();
+}
+//Check for the highest priority IRQ to fire:
+GameBoyCore.prototype.launchIRQ = function () {
+  var bitShift = 0;
+  var testbit = 1;
+  do {
+    //Check to see if an interrupt is enabled AND requested.
+    if ((testbit & this.IRQLineMatched) == testbit) {
+      this.IME = false;            //Reset the interrupt enabling.
+      this.interruptsRequested -= testbit;  //Reset the interrupt request.
+      this.IRQLineMatched = 0;        //Reset the IRQ assertion.
+      //Interrupts have a certain clock cycle length:
+      this.CPUTicks = 20;
+      //Set the stack pointer to the current program counter value:
+      this.stackPointer = (this.stackPointer - 1) & 0xFFFF;
+      this.memoryWriter[this.stackPointer](this, this.stackPointer, this.programCounter >> 8);
+      this.stackPointer = (this.stackPointer - 1) & 0xFFFF;
+      this.memoryWriter[this.stackPointer](this, this.stackPointer, this.programCounter & 0xFF);
+      //Set the program counter to the interrupt's address:
+      this.programCounter = 0x40 | (bitShift << 3);
+      //Clock the core for mid-instruction updates:
+      this.updateCore();
+      return;                  //We only want the highest priority interrupt.
+    }
+    testbit = 1 << ++bitShift;
+  } while (bitShift < 5);
+}
+/*
+  Check for IRQs to be fired while not in HALT:
+*/
+GameBoyCore.prototype.checkIRQMatching = function () {
+  if (this.IME) {
+    this.IRQLineMatched = this.interruptsEnabled & this.interruptsRequested & 0x1F;
+  }
+}
+/*
+  Handle the HALT opcode by predicting all IRQ cases correctly,
+  then selecting the next closest IRQ firing from the prediction to
+  clock up to. This prevents hacky looping that doesn't predict, but
+  instead just clocks through the core update procedure by one which
+  is very slow. Not many emulators do this because they have to cover
+  all the IRQ prediction cases and they usually get them wrong.
+*/
+GameBoyCore.prototype.calculateHALTPeriod = function () {
+  //Initialize our variables and start our prediction:
+  if (!this.halt) {
+    this.halt = true;
+    var currentClocks = -1;
+    var temp_var = 0;
+    if (this.LCDisOn) {
+      //If the LCD is enabled, then predict the LCD IRQs enabled:
+      if ((this.interruptsEnabled & 0x1) == 0x1) {
+        currentClocks = ((456 * (((this.modeSTAT == 1) ? 298 : 144) - this.actualScanLine)) - this.LCDTicks) << this.doubleSpeedShifter;
+      }
+      if ((this.interruptsEnabled & 0x2) == 0x2) {
+        if (this.mode0TriggerSTAT) {
+          temp_var = (this.clocksUntilMode0() - this.LCDTicks) << this.doubleSpeedShifter;
+          if (temp_var <= currentClocks || currentClocks == -1) {
+            currentClocks = temp_var;
+          }
+        }
+        if (this.mode1TriggerSTAT && (this.interruptsEnabled & 0x1) == 0) {
+          temp_var = ((456 * (((this.modeSTAT == 1) ? 298 : 144) - this.actualScanLine)) - this.LCDTicks) << this.doubleSpeedShifter;
+          if (temp_var <= currentClocks || currentClocks == -1) {
+            currentClocks = temp_var;
+          }
+        }
+        if (this.mode2TriggerSTAT) {
+          temp_var = (((this.actualScanLine >= 143) ? (456 * (154 - this.actualScanLine)) : 456) - this.LCDTicks) << this.doubleSpeedShifter;
+          if (temp_var <= currentClocks || currentClocks == -1) {
+            currentClocks = temp_var;
+          }
+        }
+        if (this.LYCMatchTriggerSTAT && this.memory[0xFF45] <= 153) {
+          temp_var = (this.clocksUntilLYCMatch() - this.LCDTicks) << this.doubleSpeedShifter;
+          if (temp_var <= currentClocks || currentClocks == -1) {
+            currentClocks = temp_var;
+          }
+        }
+      }
+    }
+    if (this.TIMAEnabled && (this.interruptsEnabled & 0x4) == 0x4) {
+      //CPU timer IRQ prediction:
+      temp_var = ((0x100 - this.memory[0xFF05]) * this.TACClocker) - this.timerTicks;
+      if (temp_var <= currentClocks || currentClocks == -1) {
+        currentClocks = temp_var;
+      }
+    }
+    if (this.serialTimer > 0 && (this.interruptsEnabled & 0x8) == 0x8) {
+      //Serial IRQ prediction:
+      if (this.serialTimer <= currentClocks || currentClocks == -1) {
+        currentClocks = this.serialTimer;
+      }
+    }
+  }
+  else {
+    var currentClocks = this.remainingClocks;
+  }
+  var maxClocks = (this.CPUCyclesTotal - this.emulatorTicks) << this.doubleSpeedShifter;
+  if (currentClocks >= 0) {
+    if (currentClocks <= maxClocks) {
+      //Exit out of HALT normally:
+      this.CPUTicks = Math.max(currentClocks, this.CPUTicks);
+      this.updateCoreFull();
+      this.halt = false;
+      this.CPUTicks = 0;
+    }
+    else {
+      //Still in HALT, clock only up to the clocks specified per iteration:
+      this.CPUTicks = Math.max(maxClocks, this.CPUTicks);
+      this.remainingClocks = currentClocks - this.CPUTicks;
+    }
+  }
+  else {
+    //Still in HALT, clock only up to the clocks specified per iteration:
+    //Will stay in HALT forever (Stuck in HALT forever), but the APU and LCD are still clocked, so don't pause:
+    this.CPUTicks += maxClocks;
+  }
+}
+//Memory Reading:
+GameBoyCore.prototype.memoryRead = function (address) {
+  //Act as a wrapper for reading the returns from the compiled jumps to memory.
+  return this.memoryReader[address](this, address);  //This seems to be faster than the usual if/else.
+}
+GameBoyCore.prototype.memoryHighRead = function (address) {
+  //Act as a wrapper for reading the returns from the compiled jumps to memory.
+  return this.memoryHighReader[address](this, address);  //This seems to be faster than the usual if/else.
+}
+GameBoyCore.prototype.memoryReadJumpCompile = function () {
+  //Faster in some browsers, since we are doing less conditionals overall by implementing them in advance.
+  for (var index = 0x0000; index <= 0xFFFF; index++) {
+    if (index < 0x4000) {
+      this.memoryReader[index] = this.memoryReadNormal;
+    }
+    else if (index < 0x8000) {
+      this.memoryReader[index] = this.memoryReadROM;
+    }
+    else if (index < 0x9800) {
+      this.memoryReader[index] = (this.cGBC) ? this.VRAMDATAReadCGBCPU : this.VRAMDATAReadDMGCPU;
+    }
+    else if (index < 0xA000) {
+      this.memoryReader[index] = (this.cGBC) ? this.VRAMCHRReadCGBCPU : this.VRAMCHRReadDMGCPU;
+    }
+    else if (index >= 0xA000 && index < 0xC000) {
+      if ((this.numRAMBanks == 1 / 16 && index < 0xA200) || this.numRAMBanks >= 1) {
+        if (this.cMBC7) {
+          this.memoryReader[index] = this.memoryReadMBC7;
+        }
+        else if (!this.cMBC3) {
+          this.memoryReader[index] = this.memoryReadMBC;
+        }
+        else {
+          //MBC3 RTC + RAM:
+          this.memoryReader[index] = this.memoryReadMBC3;
+        }
+      }
+      else {
+        this.memoryReader[index] = this.memoryReadBAD;
+      }
+    }
+    else if (index >= 0xC000 && index < 0xE000) {
+      if (!this.cGBC || index < 0xD000) {
+        this.memoryReader[index] = this.memoryReadNormal;
+      }
+      else {
+        this.memoryReader[index] = this.memoryReadGBCMemory;
+      }
+    }
+    else if (index >= 0xE000 && index < 0xFE00) {
+      if (!this.cGBC || index < 0xF000) {
+        this.memoryReader[index] = this.memoryReadECHONormal;
+      }
+      else {
+        this.memoryReader[index] = this.memoryReadECHOGBCMemory;
+      }
+    }
+    else if (index < 0xFEA0) {
+      this.memoryReader[index] = this.memoryReadOAM;
+    }
+    else if (this.cGBC && index >= 0xFEA0 && index < 0xFF00) {
+      this.memoryReader[index] = this.memoryReadNormal;
+    }
+    else if (index >= 0xFF00) {
+      switch (index) {
+        case 0xFF00:
+          //JOYPAD:
+          this.memoryHighReader[0] = this.memoryReader[0xFF00] = function (parentObj, address) {
+            return 0xC0 | parentObj.memory[0xFF00];  //Top nibble returns as set.
+          }
+          break;
+        case 0xFF01:
+          //SB
+          this.memoryHighReader[0x01] = this.memoryReader[0xFF01] = function (parentObj, address) {
+            return (parentObj.memory[0xFF02] < 0x80) ? parentObj.memory[0xFF01] : 0xFF;
+          }
+          break;
+        case 0xFF02:
+          //SC
+          if (this.cGBC) {
+            this.memoryHighReader[0x02] = this.memoryReader[0xFF02] = function (parentObj, address) {
+              return ((parentObj.serialTimer <= 0) ? 0x7C : 0xFC) | parentObj.memory[0xFF02];
+            }
+          }
+          else {
+            this.memoryHighReader[0x02] = this.memoryReader[0xFF02] = function (parentObj, address) {
+              return ((parentObj.serialTimer <= 0) ? 0x7E : 0xFE) | parentObj.memory[0xFF02];
+            }
+          }
+          break;
+        case 0xFF04:
+          //DIV
+          this.memoryHighReader[0x04] = this.memoryReader[0xFF04] = function (parentObj, address) {
+            parentObj.memory[0xFF04] = (parentObj.memory[0xFF04] + (parentObj.DIVTicks >> 8)) & 0xFF;
+            parentObj.DIVTicks &= 0xFF;
+            return parentObj.memory[0xFF04];
+
+          }
+          break;
+        case 0xFF07:
+          this.memoryHighReader[0x07] = this.memoryReader[0xFF07] = function (parentObj, address) {
+            return 0xF8 | parentObj.memory[0xFF07];
+          }
+          break;
+        case 0xFF0F:
+          //IF
+          this.memoryHighReader[0x0F] = this.memoryReader[0xFF0F] = function (parentObj, address) {
+            return 0xE0 | parentObj.interruptsRequested;
+          }
+          break;
+        case 0xFF10:
+          this.memoryHighReader[0x10] = this.memoryReader[0xFF10] = function (parentObj, address) {
+            return 0x80 | parentObj.memory[0xFF10];
+          }
+          break;
+        case 0xFF11:
+          this.memoryHighReader[0x11] = this.memoryReader[0xFF11] = function (parentObj, address) {
+            return 0x3F | parentObj.memory[0xFF11];
+          }
+          break;
+        case 0xFF13:
+          this.memoryHighReader[0x13] = this.memoryReader[0xFF13] = this.memoryReadBAD;
+          break;
+        case 0xFF14:
+          this.memoryHighReader[0x14] = this.memoryReader[0xFF14] = function (parentObj, address) {
+            return 0xBF | parentObj.memory[0xFF14];
+          }
+          break;
+        case 0xFF16:
+          this.memoryHighReader[0x16] = this.memoryReader[0xFF16] = function (parentObj, address) {
+            return 0x3F | parentObj.memory[0xFF16];
+          }
+          break;
+        case 0xFF18:
+          this.memoryHighReader[0x18] = this.memoryReader[0xFF18] = this.memoryReadBAD;
+          break;
+        case 0xFF19:
+          this.memoryHighReader[0x19] = this.memoryReader[0xFF19] = function (parentObj, address) {
+            return 0xBF | parentObj.memory[0xFF19];
+          }
+          break;
+        case 0xFF1A:
+          this.memoryHighReader[0x1A] = this.memoryReader[0xFF1A] = function (parentObj, address) {
+            return 0x7F | parentObj.memory[0xFF1A];
+          }
+          break;
+        case 0xFF1B:
+          this.memoryHighReader[0x1B] = this.memoryReader[0xFF1B] = this.memoryReadBAD;
+          break;
+        case 0xFF1C:
+          this.memoryHighReader[0x1C] = this.memoryReader[0xFF1C] = function (parentObj, address) {
+            return 0x9F | parentObj.memory[0xFF1C];
+          }
+          break;
+        case 0xFF1D:
+          this.memoryHighReader[0x1D] = this.memoryReader[0xFF1D] = function (parentObj, address) {
+            return 0xFF;
+          }
+          break;
+        case 0xFF1E:
+          this.memoryHighReader[0x1E] = this.memoryReader[0xFF1E] = function (parentObj, address) {
+            return 0xBF | parentObj.memory[0xFF1E];
+          }
+          break;
+        case 0xFF1F:
+        case 0xFF20:
+          this.memoryHighReader[index & 0xFF] = this.memoryReader[index] = this.memoryReadBAD;
+          break;
+        case 0xFF23:
+          this.memoryHighReader[0x23] = this.memoryReader[0xFF23] = function (parentObj, address) {
+            return 0xBF | parentObj.memory[0xFF23];
+          }
+          break;
+        case 0xFF26:
+          this.memoryHighReader[0x26] = this.memoryReader[0xFF26] = function (parentObj, address) {
+            parentObj.audioJIT();
+            return 0x70 | parentObj.memory[0xFF26];
+          }
+          break;
+        case 0xFF27:
+        case 0xFF28:
+        case 0xFF29:
+        case 0xFF2A:
+        case 0xFF2B:
+        case 0xFF2C:
+        case 0xFF2D:
+        case 0xFF2E:
+        case 0xFF2F:
+          this.memoryHighReader[index & 0xFF] = this.memoryReader[index] = this.memoryReadBAD;
+          break;
+        case 0xFF30:
+        case 0xFF31:
+        case 0xFF32:
+        case 0xFF33:
+        case 0xFF34:
+        case 0xFF35:
+        case 0xFF36:
+        case 0xFF37:
+        case 0xFF38:
+        case 0xFF39:
+        case 0xFF3A:
+        case 0xFF3B:
+        case 0xFF3C:
+        case 0xFF3D:
+        case 0xFF3E:
+        case 0xFF3F:
+          this.memoryReader[index] = function (parentObj, address) {
+            return (parentObj.channel3canPlay) ? parentObj.memory[0xFF00 | (parentObj.channel3lastSampleLookup >> 1)] : parentObj.memory[address];
+          }
+          this.memoryHighReader[index & 0xFF] = function (parentObj, address) {
+            return (parentObj.channel3canPlay) ? parentObj.memory[0xFF00 | (parentObj.channel3lastSampleLookup >> 1)] : parentObj.memory[0xFF00 | address];
+          }
+          break;
+        case 0xFF41:
+          this.memoryHighReader[0x41] = this.memoryReader[0xFF41] = function (parentObj, address) {
+            return 0x80 | parentObj.memory[0xFF41] | parentObj.modeSTAT;
+          }
+          break;
+        case 0xFF42:
+          this.memoryHighReader[0x42] = this.memoryReader[0xFF42] = function (parentObj, address) {
+            return parentObj.backgroundY;
+          }
+          break;
+        case 0xFF43:
+          this.memoryHighReader[0x43] = this.memoryReader[0xFF43] = function (parentObj, address) {
+            return parentObj.backgroundX;
+          }
+          break;
+        case 0xFF44:
+          this.memoryHighReader[0x44] = this.memoryReader[0xFF44] = function (parentObj, address) {
+            return ((parentObj.LCDisOn) ? parentObj.memory[0xFF44] : 0);
+          }
+          break;
+        case 0xFF4A:
+          //WY
+          this.memoryHighReader[0x4A] = this.memoryReader[0xFF4A] = function (parentObj, address) {
+            return parentObj.windowY;
+          }
+          break;
+        case 0xFF4F:
+          this.memoryHighReader[0x4F] = this.memoryReader[0xFF4F] = function (parentObj, address) {
+            return parentObj.currVRAMBank;
+          }
+          break;
+        case 0xFF55:
+          if (this.cGBC) {
+            this.memoryHighReader[0x55] = this.memoryReader[0xFF55] = function (parentObj, address) {
+              if (!parentObj.LCDisOn && parentObj.hdmaRunning) {  //Undocumented behavior alert: HDMA becomes GDMA when LCD is off (Worms Armageddon Fix).
+                //DMA
+                parentObj.DMAWrite((parentObj.memory[0xFF55] & 0x7F) + 1);
+                parentObj.memory[0xFF55] = 0xFF;  //Transfer completed.
+                parentObj.hdmaRunning = false;
+              }
+              return parentObj.memory[0xFF55];
+            }
+          }
+          else {
+            this.memoryReader[0xFF55] = this.memoryReadNormal;
+            this.memoryHighReader[0x55] = this.memoryHighReadNormal;
+          }
+          break;
+        case 0xFF56:
+          if (this.cGBC) {
+            this.memoryHighReader[0x56] = this.memoryReader[0xFF56] = function (parentObj, address) {
+              //Return IR "not connected" status:
+              return 0x3C | ((parentObj.memory[0xFF56] >= 0xC0) ? (0x2 | (parentObj.memory[0xFF56] & 0xC1)) : (parentObj.memory[0xFF56] & 0xC3));
+            }
+          }
+          else {
+            this.memoryReader[0xFF56] = this.memoryReadNormal;
+            this.memoryHighReader[0x56] = this.memoryHighReadNormal;
+          }
+          break;
+        case 0xFF6C:
+          if (this.cGBC) {
+            this.memoryHighReader[0x6C] = this.memoryReader[0xFF6C] = function (parentObj, address) {
+              return 0xFE | parentObj.memory[0xFF6C];
+            }
+          }
+          else {
+            this.memoryHighReader[0x6C] = this.memoryReader[0xFF6C] = this.memoryReadBAD;
+          }
+          break;
+        case 0xFF70:
+          if (this.cGBC) {
+            //SVBK
+            this.memoryHighReader[0x70] = this.memoryReader[0xFF70] = function (parentObj, address) {
+              return 0x40 | parentObj.memory[0xFF70];
+            }
+          }
+          else {
+            this.memoryHighReader[0x70] = this.memoryReader[0xFF70] = this.memoryReadBAD;
+          }
+          break;
+        case 0xFF75:
+          this.memoryHighReader[0x75] = this.memoryReader[0xFF75] = function (parentObj, address) {
+            return 0x8F | parentObj.memory[0xFF75];
+          }
+          break;
+        case 0xFF76:
+        case 0xFF77:
+          this.memoryHighReader[index & 0xFF] = this.memoryReader[index] = function (parentObj, address) {
+            return 0;
+          }
+          break;
+        case 0xFFFF:
+          //IE
+          this.memoryHighReader[0xFF] = this.memoryReader[0xFFFF] = function (parentObj, address) {
+            return parentObj.interruptsEnabled;
+          }
+          break;
+        default:
+          this.memoryReader[index] = this.memoryReadNormal;
+          this.memoryHighReader[index & 0xFF] = this.memoryHighReadNormal;
+      }
+    }
+    else {
+      this.memoryReader[index] = this.memoryReadBAD;
+    }
+  }
+}
+GameBoyCore.prototype.memoryReadNormal = function (parentObj, address) {
+  return parentObj.memory[address];
+}
+GameBoyCore.prototype.memoryHighReadNormal = function (parentObj, address) {
+  return parentObj.memory[0xFF00 | address];
+}
+GameBoyCore.prototype.memoryReadROM = function (parentObj, address) {
+  return parentObj.ROM[parentObj.currentROMBank + address];
+}
+GameBoyCore.prototype.memoryReadMBC = function (parentObj, address) {
+  //Switchable RAM
+  if (parentObj.MBCRAMBanksEnabled || settings[10]) {
+    return parentObj.MBCRam[address + parentObj.currMBCRAMBankPosition];
+  }
+  //cout("Reading from disabled RAM.", 1);
+  return 0xFF;
+}
+GameBoyCore.prototype.memoryReadMBC7 = function (parentObj, address) {
+  //Switchable RAM
+  if (parentObj.MBCRAMBanksEnabled || settings[10]) {
+    switch (address) {
+      case 0xA000:
+      case 0xA060:
+      case 0xA070:
+        return 0;
+      case 0xA080:
+        //TODO: Gyro Control Register
+        return 0;
+      case 0xA050:
+        //Y High Byte
+        return parentObj.highY;
+      case 0xA040:
+        //Y Low Byte
+        return parentObj.lowY;
+      case 0xA030:
+        //X High Byte
+        return parentObj.highX;
+      case 0xA020:
+        //X Low Byte:
+        return parentObj.lowX;
+      default:
+        return parentObj.MBCRam[address + parentObj.currMBCRAMBankPosition];
+    }
+  }
+  //cout("Reading from disabled RAM.", 1);
+  return 0xFF;
+}
+GameBoyCore.prototype.memoryReadMBC3 = function (parentObj, address) {
+  //Switchable RAM
+  if (parentObj.MBCRAMBanksEnabled || settings[10]) {
+    switch (parentObj.currMBCRAMBank) {
+      case 0x00:
+      case 0x01:
+      case 0x02:
+      case 0x03:
+        return parentObj.MBCRam[address + parentObj.currMBCRAMBankPosition];
+        break;
+      case 0x08:
+        return parentObj.latchedSeconds;
+        break;
+      case 0x09:
+        return parentObj.latchedMinutes;
+        break;
+      case 0x0A:
+        return parentObj.latchedHours;
+        break;
+      case 0x0B:
+        return parentObj.latchedLDays;
+        break;
+      case 0x0C:
+        return (((parentObj.RTCDayOverFlow) ? 0x80 : 0) + ((parentObj.RTCHALT) ? 0x40 : 0)) + parentObj.latchedHDays;
+    }
+  }
+  //cout("Reading from invalid or disabled RAM.", 1);
+  return 0xFF;
+}
+GameBoyCore.prototype.memoryReadGBCMemory = function (parentObj, address) {
+  return parentObj.GBCMemory[address + parentObj.gbcRamBankPosition];
+}
+GameBoyCore.prototype.memoryReadOAM = function (parentObj, address) {
+  return (parentObj.modeSTAT > 1) ?  0xFF : parentObj.memory[address];
+}
+GameBoyCore.prototype.memoryReadECHOGBCMemory = function (parentObj, address) {
+  return parentObj.GBCMemory[address + parentObj.gbcRamBankPositionECHO];
+}
+GameBoyCore.prototype.memoryReadECHONormal = function (parentObj, address) {
+  return parentObj.memory[address - 0x2000];
+}
+GameBoyCore.prototype.memoryReadBAD = function (parentObj, address) {
+  return 0xFF;
+}
+GameBoyCore.prototype.VRAMDATAReadCGBCPU = function (parentObj, address) {
+  //CPU Side Reading The VRAM (Optimized for GameBoy Color)
+  return (parentObj.modeSTAT > 2) ? 0xFF : ((parentObj.currVRAMBank == 0) ? parentObj.memory[address] : parentObj.VRAM[address & 0x1FFF]);
+}
+GameBoyCore.prototype.VRAMDATAReadDMGCPU = function (parentObj, address) {
+  //CPU Side Reading The VRAM (Optimized for classic GameBoy)
+  return (parentObj.modeSTAT > 2) ? 0xFF : parentObj.memory[address];
+}
+GameBoyCore.prototype.VRAMCHRReadCGBCPU = function (parentObj, address) {
+  //CPU Side Reading the Character Data Map:
+  return (parentObj.modeSTAT > 2) ? 0xFF : parentObj.BGCHRCurrentBank[address & 0x7FF];
+}
+GameBoyCore.prototype.VRAMCHRReadDMGCPU = function (parentObj, address) {
+  //CPU Side Reading the Character Data Map:
+  return (parentObj.modeSTAT > 2) ? 0xFF : parentObj.BGCHRBank1[address & 0x7FF];
+}
+GameBoyCore.prototype.setCurrentMBC1ROMBank = function () {
+  //Read the cartridge ROM data from RAM memory:
+  switch (this.ROMBank1offs) {
+    case 0x00:
+    case 0x20:
+    case 0x40:
+    case 0x60:
+      //Bank calls for 0x00, 0x20, 0x40, and 0x60 are really for 0x01, 0x21, 0x41, and 0x61.
+      this.currentROMBank = (this.ROMBank1offs % this.ROMBankEdge) << 14;
+      break;
+    default:
+      this.currentROMBank = ((this.ROMBank1offs % this.ROMBankEdge) - 1) << 14;
+  }
+}
+GameBoyCore.prototype.setCurrentMBC2AND3ROMBank = function () {
+  //Read the cartridge ROM data from RAM memory:
+  //Only map bank 0 to bank 1 here (MBC2 is like MBC1, but can only do 16 banks, so only the bank 0 quirk appears for MBC2):
+  this.currentROMBank = Math.max((this.ROMBank1offs % this.ROMBankEdge) - 1, 0) << 14;
+}
+GameBoyCore.prototype.setCurrentMBC5ROMBank = function () {
+  //Read the cartridge ROM data from RAM memory:
+  this.currentROMBank = ((this.ROMBank1offs % this.ROMBankEdge) - 1) << 14;
+}
+//Memory Writing:
+GameBoyCore.prototype.memoryWrite = function (address, data) {
+  //Act as a wrapper for writing by compiled jumps to specific memory writing functions.
+  this.memoryWriter[address](this, address, data);
+}
+//0xFFXX fast path:
+GameBoyCore.prototype.memoryHighWrite = function (address, data) {
+  //Act as a wrapper for writing by compiled jumps to specific memory writing functions.
+  this.memoryHighWriter[address](this, address, data);
+}
+GameBoyCore.prototype.memoryWriteJumpCompile = function () {
+  //Faster in some browsers, since we are doing less conditionals overall by implementing them in advance.
+  for (var index = 0x0000; index <= 0xFFFF; index++) {
+    if (index < 0x8000) {
+      if (this.cMBC1) {
+        if (index < 0x2000) {
+          this.memoryWriter[index] = this.MBCWriteEnable;
+        }
+        else if (index < 0x4000) {
+          this.memoryWriter[index] = this.MBC1WriteROMBank;
+        }
+        else if (index < 0x6000) {
+          this.memoryWriter[index] = this.MBC1WriteRAMBank;
+        }
+        else {
+          this.memoryWriter[index] = this.MBC1WriteType;
+        }
+      }
+      else if (this.cMBC2) {
+        if (index < 0x1000) {
+          this.memoryWriter[index] = this.MBCWriteEnable;
+        }
+        else if (index >= 0x2100 && index < 0x2200) {
+          this.memoryWriter[index] = this.MBC2WriteROMBank;
+        }
+        else {
+          this.memoryWriter[index] = this.cartIgnoreWrite;
+        }
+      }
+      else if (this.cMBC3) {
+        if (index < 0x2000) {
+          this.memoryWriter[index] = this.MBCWriteEnable;
+        }
+        else if (index < 0x4000) {
+          this.memoryWriter[index] = this.MBC3WriteROMBank;
+        }
+        else if (index < 0x6000) {
+          this.memoryWriter[index] = this.MBC3WriteRAMBank;
+        }
+        else {
+          this.memoryWriter[index] = this.MBC3WriteRTCLatch;
+        }
+      }
+      else if (this.cMBC5 || this.cRUMBLE || this.cMBC7) {
+        if (index < 0x2000) {
+          this.memoryWriter[index] = this.MBCWriteEnable;
+        }
+        else if (index < 0x3000) {
+          this.memoryWriter[index] = this.MBC5WriteROMBankLow;
+        }
+        else if (index < 0x4000) {
+          this.memoryWriter[index] = this.MBC5WriteROMBankHigh;
+        }
+        else if (index < 0x6000) {
+          this.memoryWriter[index] = (this.cRUMBLE) ? this.RUMBLEWriteRAMBank : this.MBC5WriteRAMBank;
+        }
+        else {
+          this.memoryWriter[index] = this.cartIgnoreWrite;
+        }
+      }
+      else if (this.cHuC3) {
+        if (index < 0x2000) {
+          this.memoryWriter[index] = this.MBCWriteEnable;
+        }
+        else if (index < 0x4000) {
+          this.memoryWriter[index] = this.MBC3WriteROMBank;
+        }
+        else if (index < 0x6000) {
+          this.memoryWriter[index] = this.HuC3WriteRAMBank;
+        }
+        else {
+          this.memoryWriter[index] = this.cartIgnoreWrite;
+        }
+      }
+      else {
+        this.memoryWriter[index] = this.cartIgnoreWrite;
+      }
+    }
+    else if (index < 0x9000) {
+      this.memoryWriter[index] = (this.cGBC) ? this.VRAMGBCDATAWrite : this.VRAMGBDATAWrite;
+    }
+    else if (index < 0x9800) {
+      this.memoryWriter[index] = (this.cGBC) ? this.VRAMGBCDATAWrite : this.VRAMGBDATAUpperWrite;
+    }
+    else if (index < 0xA000) {
+      this.memoryWriter[index] = (this.cGBC) ? this.VRAMGBCCHRMAPWrite : this.VRAMGBCHRMAPWrite;
+    }
+    else if (index < 0xC000) {
+      if ((this.numRAMBanks == 1 / 16 && index < 0xA200) || this.numRAMBanks >= 1) {
+        if (!this.cMBC3) {
+          this.memoryWriter[index] = this.memoryWriteMBCRAM;
+        }
+        else {
+          //MBC3 RTC + RAM:
+          this.memoryWriter[index] = this.memoryWriteMBC3RAM;
+        }
+      }
+      else {
+        this.memoryWriter[index] = this.cartIgnoreWrite;
+      }
+    }
+    else if (index < 0xE000) {
+      if (this.cGBC && index >= 0xD000) {
+        this.memoryWriter[index] = this.memoryWriteGBCRAM;
+      }
+      else {
+        this.memoryWriter[index] = this.memoryWriteNormal;
+      }
+    }
+    else if (index < 0xFE00) {
+      if (this.cGBC && index >= 0xF000) {
+        this.memoryWriter[index] = this.memoryWriteECHOGBCRAM;
+      }
+      else {
+        this.memoryWriter[index] = this.memoryWriteECHONormal;
+      }
+    }
+    else if (index <= 0xFEA0) {
+      this.memoryWriter[index] = this.memoryWriteOAMRAM;
+    }
+    else if (index < 0xFF00) {
+      if (this.cGBC) {                      //Only GBC has access to this RAM.
+        this.memoryWriter[index] = this.memoryWriteNormal;
+      }
+      else {
+        this.memoryWriter[index] = this.cartIgnoreWrite;
+      }
+    }
+    else {
+      //Start the I/O initialization by filling in the slots as normal memory:
+      this.memoryWriter[index] = this.memoryWriteNormal;
+      this.memoryHighWriter[index & 0xFF] = this.memoryHighWriteNormal;
+    }
+  }
+  this.registerWriteJumpCompile();        //Compile the I/O write functions separately...
+}
+GameBoyCore.prototype.MBCWriteEnable = function (parentObj, address, data) {
+  //MBC RAM Bank Enable/Disable:
+  parentObj.MBCRAMBanksEnabled = ((data & 0x0F) == 0x0A);  //If lower nibble is 0x0A, then enable, otherwise disable.
+}
+GameBoyCore.prototype.MBC1WriteROMBank = function (parentObj, address, data) {
+  //MBC1 ROM bank switching:
+  parentObj.ROMBank1offs = (parentObj.ROMBank1offs & 0x60) | (data & 0x1F);
+  parentObj.setCurrentMBC1ROMBank();
+}
+GameBoyCore.prototype.MBC1WriteRAMBank = function (parentObj, address, data) {
+  //MBC1 RAM bank switching
+  if (parentObj.MBC1Mode) {
+    //4/32 Mode
+    parentObj.currMBCRAMBank = data & 0x03;
+    parentObj.currMBCRAMBankPosition = (parentObj.currMBCRAMBank << 13) - 0xA000;
+  }
+  else {
+    //16/8 Mode
+    parentObj.ROMBank1offs = ((data & 0x03) << 5) | (parentObj.ROMBank1offs & 0x1F);
+    parentObj.setCurrentMBC1ROMBank();
+  }
+}
+GameBoyCore.prototype.MBC1WriteType = function (parentObj, address, data) {
+  //MBC1 mode setting:
+  parentObj.MBC1Mode = ((data & 0x1) == 0x1);
+  if (parentObj.MBC1Mode) {
+    parentObj.ROMBank1offs &= 0x1F;
+    parentObj.setCurrentMBC1ROMBank();
+  }
+  else {
+    parentObj.currMBCRAMBank = 0;
+    parentObj.currMBCRAMBankPosition = -0xA000;
+  }
+}
+GameBoyCore.prototype.MBC2WriteROMBank = function (parentObj, address, data) {
+  //MBC2 ROM bank switching:
+  parentObj.ROMBank1offs = data & 0x0F;
+  parentObj.setCurrentMBC2AND3ROMBank();
+}
+GameBoyCore.prototype.MBC3WriteROMBank = function (parentObj, address, data) {
+  //MBC3 ROM bank switching:
+  parentObj.ROMBank1offs = data & 0x7F;
+  parentObj.setCurrentMBC2AND3ROMBank();
+}
+GameBoyCore.prototype.MBC3WriteRAMBank = function (parentObj, address, data) {
+  parentObj.currMBCRAMBank = data;
+  if (data < 4) {
+    //MBC3 RAM bank switching
+    parentObj.currMBCRAMBankPosition = (parentObj.currMBCRAMBank << 13) - 0xA000;
+  }
+}
+GameBoyCore.prototype.MBC3WriteRTCLatch = function (parentObj, address, data) {
+  if (data == 0) {
+    parentObj.RTCisLatched = false;
+  }
+  else if (!parentObj.RTCisLatched) {
+    //Copy over the current RTC time for reading.
+    parentObj.RTCisLatched = true;
+    parentObj.latchedSeconds = parentObj.RTCSeconds | 0;
+    parentObj.latchedMinutes = parentObj.RTCMinutes;
+    parentObj.latchedHours = parentObj.RTCHours;
+    parentObj.latchedLDays = (parentObj.RTCDays & 0xFF);
+    parentObj.latchedHDays = parentObj.RTCDays >> 8;
+  }
+}
+GameBoyCore.prototype.MBC5WriteROMBankLow = function (parentObj, address, data) {
+  //MBC5 ROM bank switching:
+  parentObj.ROMBank1offs = (parentObj.ROMBank1offs & 0x100) | data;
+  parentObj.setCurrentMBC5ROMBank();
+}
+GameBoyCore.prototype.MBC5WriteROMBankHigh = function (parentObj, address, data) {
+  //MBC5 ROM bank switching (by least significant bit):
+  parentObj.ROMBank1offs  = ((data & 0x01) << 8) | (parentObj.ROMBank1offs & 0xFF);
+  parentObj.setCurrentMBC5ROMBank();
+}
+GameBoyCore.prototype.MBC5WriteRAMBank = function (parentObj, address, data) {
+  //MBC5 RAM bank switching
+  parentObj.currMBCRAMBank = data & 0xF;
+  parentObj.currMBCRAMBankPosition = (parentObj.currMBCRAMBank << 13) - 0xA000;
+}
+GameBoyCore.prototype.RUMBLEWriteRAMBank = function (parentObj, address, data) {
+  //MBC5 RAM bank switching
+  //Like MBC5, but bit 3 of the lower nibble is used for rumbling and bit 2 is ignored.
+  parentObj.currMBCRAMBank = data & 0x03;
+  parentObj.currMBCRAMBankPosition = (parentObj.currMBCRAMBank << 13) - 0xA000;
+}
+GameBoyCore.prototype.HuC3WriteRAMBank = function (parentObj, address, data) {
+  //HuC3 RAM bank switching
+  parentObj.currMBCRAMBank = data & 0x03;
+  parentObj.currMBCRAMBankPosition = (parentObj.currMBCRAMBank << 13) - 0xA000;
+}
+GameBoyCore.prototype.cartIgnoreWrite = function (parentObj, address, data) {
+  //We might have encountered illegal RAM writing or such, so just do nothing...
+}
+GameBoyCore.prototype.memoryWriteNormal = function (parentObj, address, data) {
+  parentObj.memory[address] = data;
+}
+GameBoyCore.prototype.memoryHighWriteNormal = function (parentObj, address, data) {
+  parentObj.memory[0xFF00 | address] = data;
+}
+GameBoyCore.prototype.memoryWriteMBCRAM = function (parentObj, address, data) {
+  if (parentObj.MBCRAMBanksEnabled || settings[10]) {
+    parentObj.MBCRam[address + parentObj.currMBCRAMBankPosition] = data;
+  }
+}
+GameBoyCore.prototype.memoryWriteMBC3RAM = function (parentObj, address, data) {
+  if (parentObj.MBCRAMBanksEnabled || settings[10]) {
+    switch (parentObj.currMBCRAMBank) {
+      case 0x00:
+      case 0x01:
+      case 0x02:
+      case 0x03:
+        parentObj.MBCRam[address + parentObj.currMBCRAMBankPosition] = data;
+        break;
+      case 0x08:
+        if (data < 60) {
+          parentObj.RTCSeconds = data;
+        }
+        else {
+          cout("(Bank #" + parentObj.currMBCRAMBank + ") RTC write out of range: " + data, 1);
+        }
+        break;
+      case 0x09:
+        if (data < 60) {
+          parentObj.RTCMinutes = data;
+        }
+        else {
+          cout("(Bank #" + parentObj.currMBCRAMBank + ") RTC write out of range: " + data, 1);
+        }
+        break;
+      case 0x0A:
+        if (data < 24) {
+          parentObj.RTCHours = data;
+        }
+        else {
+          cout("(Bank #" + parentObj.currMBCRAMBank + ") RTC write out of range: " + data, 1);
+        }
+        break;
+      case 0x0B:
+        parentObj.RTCDays = (data & 0xFF) | (parentObj.RTCDays & 0x100);
+        break;
+      case 0x0C:
+        parentObj.RTCDayOverFlow = (data > 0x7F);
+        parentObj.RTCHalt = (data & 0x40) == 0x40;
+        parentObj.RTCDays = ((data & 0x1) << 8) | (parentObj.RTCDays & 0xFF);
+        break;
+      default:
+        cout("Invalid MBC3 bank address selected: " + parentObj.currMBCRAMBank, 0);
+    }
+  }
+}
+GameBoyCore.prototype.memoryWriteGBCRAM = function (parentObj, address, data) {
+  parentObj.GBCMemory[address + parentObj.gbcRamBankPosition] = data;
+}
+GameBoyCore.prototype.memoryWriteOAMRAM = function (parentObj, address, data) {
+  if (parentObj.modeSTAT < 2) {    //OAM RAM cannot be written to in mode 2 & 3
+    if (parentObj.memory[address] != data) {
+      parentObj.graphicsJIT();
+      parentObj.memory[address] = data;
+    }
+  }
+}
+GameBoyCore.prototype.memoryWriteECHOGBCRAM = function (parentObj, address, data) {
+  parentObj.GBCMemory[address + parentObj.gbcRamBankPositionECHO] = data;
+}
+GameBoyCore.prototype.memoryWriteECHONormal = function (parentObj, address, data) {
+  parentObj.memory[address - 0x2000] = data;
+}
+GameBoyCore.prototype.VRAMGBDATAWrite = function (parentObj, address, data) {
+  if (parentObj.modeSTAT < 3) {  //VRAM cannot be written to during mode 3
+    if (parentObj.memory[address] != data) {
+      //JIT the graphics render queue:
+      parentObj.graphicsJIT();
+      parentObj.memory[address] = data;
+      parentObj.generateGBOAMTileLine(address);
+    }
+  }
+}
+GameBoyCore.prototype.VRAMGBDATAUpperWrite = function (parentObj, address, data) {
+  if (parentObj.modeSTAT < 3) {  //VRAM cannot be written to during mode 3
+    if (parentObj.memory[address] != data) {
+      //JIT the graphics render queue:
+      parentObj.graphicsJIT();
+      parentObj.memory[address] = data;
+      parentObj.generateGBTileLine(address);
+    }
+  }
+}
+GameBoyCore.prototype.VRAMGBCDATAWrite = function (parentObj, address, data) {
+  if (parentObj.modeSTAT < 3) {  //VRAM cannot be written to during mode 3
+    if (parentObj.currVRAMBank == 0) {
+      if (parentObj.memory[address] != data) {
+        //JIT the graphics render queue:
+        parentObj.graphicsJIT();
+        parentObj.memory[address] = data;
+        parentObj.generateGBCTileLineBank1(address);
+      }
+    }
+    else {
+      address &= 0x1FFF;
+      if (parentObj.VRAM[address] != data) {
+        //JIT the graphics render queue:
+        parentObj.graphicsJIT();
+        parentObj.VRAM[address] = data;
+        parentObj.generateGBCTileLineBank2(address);
+      }
+    }
+  }
+}
+GameBoyCore.prototype.VRAMGBCHRMAPWrite = function (parentObj, address, data) {
+  if (parentObj.modeSTAT < 3) {  //VRAM cannot be written to during mode 3
+    address &= 0x7FF;
+    if (parentObj.BGCHRBank1[address] != data) {
+      //JIT the graphics render queue:
+      parentObj.graphicsJIT();
+      parentObj.BGCHRBank1[address] = data;
+    }
+  }
+}
+GameBoyCore.prototype.VRAMGBCCHRMAPWrite = function (parentObj, address, data) {
+  if (parentObj.modeSTAT < 3) {  //VRAM cannot be written to during mode 3
+    address &= 0x7FF;
+    if (parentObj.BGCHRCurrentBank[address] != data) {
+      //JIT the graphics render queue:
+      parentObj.graphicsJIT();
+      parentObj.BGCHRCurrentBank[address] = data;
+    }
+  }
+}
+GameBoyCore.prototype.DMAWrite = function (tilesToTransfer) {
+  if (!this.halt) {
+    //Clock the CPU for the DMA transfer (CPU is halted during the transfer):
+    this.CPUTicks += 4 | ((tilesToTransfer << 5) << this.doubleSpeedShifter);
+  }
+  //Source address of the transfer:
+  var source = (this.memory[0xFF51] << 8) | this.memory[0xFF52];
+  //Destination address in the VRAM memory range:
+  var destination = (this.memory[0xFF53] << 8) | this.memory[0xFF54];
+  //Creating some references:
+  var memoryReader = this.memoryReader;
+  //JIT the graphics render queue:
+  this.graphicsJIT();
+  var memory = this.memory;
+  //Determining which bank we're working on so we can optimize:
+  if (this.currVRAMBank == 0) {
+    //DMA transfer for VRAM bank 0:
+    do {
+      if (destination < 0x1800) {
+        memory[0x8000 | destination] = memoryReader[source](this, source++);
+        memory[0x8001 | destination] = memoryReader[source](this, source++);
+        memory[0x8002 | destination] = memoryReader[source](this, source++);
+        memory[0x8003 | destination] = memoryReader[source](this, source++);
+        memory[0x8004 | destination] = memoryReader[source](this, source++);
+        memory[0x8005 | destination] = memoryReader[source](this, source++);
+        memory[0x8006 | destination] = memoryReader[source](this, source++);
+        memory[0x8007 | destination] = memoryReader[source](this, source++);
+        memory[0x8008 | destination] = memoryReader[source](this, source++);
+        memory[0x8009 | destination] = memoryReader[source](this, source++);
+        memory[0x800A | destination] = memoryReader[source](this, source++);
+        memory[0x800B | destination] = memoryReader[source](this, source++);
+        memory[0x800C | destination] = memoryReader[source](this, source++);
+        memory[0x800D | destination] = memoryReader[source](this, source++);
+        memory[0x800E | destination] = memoryReader[source](this, source++);
+        memory[0x800F | destination] = memoryReader[source](this, source++);
+        this.generateGBCTileBank1(destination);
+        destination += 0x10;
+      }
+      else {
+        destination &= 0x7F0;
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank1[destination++] = memoryReader[source](this, source++);
+        destination = (destination + 0x1800) & 0x1FF0;
+      }
+      source &= 0xFFF0;
+      --tilesToTransfer;
+    } while (tilesToTransfer > 0);
+  }
+  else {
+    var VRAM = this.VRAM;
+    //DMA transfer for VRAM bank 1:
+    do {
+      if (destination < 0x1800) {
+        VRAM[destination] = memoryReader[source](this, source++);
+        VRAM[destination | 0x1] = memoryReader[source](this, source++);
+        VRAM[destination | 0x2] = memoryReader[source](this, source++);
+        VRAM[destination | 0x3] = memoryReader[source](this, source++);
+        VRAM[destination | 0x4] = memoryReader[source](this, source++);
+        VRAM[destination | 0x5] = memoryReader[source](this, source++);
+        VRAM[destination | 0x6] = memoryReader[source](this, source++);
+        VRAM[destination | 0x7] = memoryReader[source](this, source++);
+        VRAM[destination | 0x8] = memoryReader[source](this, source++);
+        VRAM[destination | 0x9] = memoryReader[source](this, source++);
+        VRAM[destination | 0xA] = memoryReader[source](this, source++);
+        VRAM[destination | 0xB] = memoryReader[source](this, source++);
+        VRAM[destination | 0xC] = memoryReader[source](this, source++);
+        VRAM[destination | 0xD] = memoryReader[source](this, source++);
+        VRAM[destination | 0xE] = memoryReader[source](this, source++);
+        VRAM[destination | 0xF] = memoryReader[source](this, source++);
+        this.generateGBCTileBank2(destination);
+        destination += 0x10;
+      }
+      else {
+        destination &= 0x7F0;
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        this.BGCHRBank2[destination++] = memoryReader[source](this, source++);
+        destination = (destination + 0x1800) & 0x1FF0;
+      }
+      source &= 0xFFF0;
+      --tilesToTransfer;
+    } while (tilesToTransfer > 0);
+  }
+  //Update the HDMA registers to their next addresses:
+  memory[0xFF51] = source >> 8;
+  memory[0xFF52] = source & 0xF0;
+  memory[0xFF53] = destination >> 8;
+  memory[0xFF54] = destination & 0xF0;
+}
+GameBoyCore.prototype.registerWriteJumpCompile = function () {
+  //I/O Registers (GB + GBC):
+  //JoyPad
+  this.memoryHighWriter[0] = this.memoryWriter[0xFF00] = function (parentObj, address, data) {
+    parentObj.memory[0xFF00] = (data & 0x30) | ((((data & 0x20) == 0) ? (parentObj.JoyPad >> 4) : 0xF) & (((data & 0x10) == 0) ? (parentObj.JoyPad & 0xF) : 0xF));
+  }
+  //SB (Serial Transfer Data)
+  this.memoryHighWriter[0x1] = this.memoryWriter[0xFF01] = function (parentObj, address, data) {
+    if (parentObj.memory[0xFF02] < 0x80) {  //Cannot write while a serial transfer is active.
+      parentObj.memory[0xFF01] = data;
+    }
+  }
+  //DIV
+  this.memoryHighWriter[0x4] = this.memoryWriter[0xFF04] = function (parentObj, address, data) {
+    parentObj.DIVTicks &= 0xFF;  //Update DIV for realignment.
+    parentObj.memory[0xFF04] = 0;
+  }
+  //TIMA
+  this.memoryHighWriter[0x5] = this.memoryWriter[0xFF05] = function (parentObj, address, data) {
+    parentObj.memory[0xFF05] = data;
+  }
+  //TMA
+  this.memoryHighWriter[0x6] = this.memoryWriter[0xFF06] = function (parentObj, address, data) {
+    parentObj.memory[0xFF06] = data;
+  }
+  //TAC
+  this.memoryHighWriter[0x7] = this.memoryWriter[0xFF07] = function (parentObj, address, data) {
+    parentObj.memory[0xFF07] = data & 0x07;
+    parentObj.TIMAEnabled = (data & 0x04) == 0x04;
+    parentObj.TACClocker = Math.pow(4, ((data & 0x3) != 0) ? (data & 0x3) : 4) << 2;  //TODO: Find a way to not make a conditional in here...
+  }
+  //IF (Interrupt Request)
+  this.memoryHighWriter[0xF] = this.memoryWriter[0xFF0F] = function (parentObj, address, data) {
+    parentObj.interruptsRequested = data;
+    parentObj.checkIRQMatching();
+  }
+  this.memoryHighWriter[0x10] = this.memoryWriter[0xFF10] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      if (parentObj.channel1decreaseSweep && (data & 0x08) == 0) {
+        if (parentObj.channel1numSweep != parentObj.channel1frequencySweepDivider) {
+          parentObj.channel1SweepFault = true;
+        }
+      }
+      parentObj.channel1lastTimeSweep = (data & 0x70) >> 4;
+      parentObj.channel1frequencySweepDivider = data & 0x07;
+      parentObj.channel1decreaseSweep = ((data & 0x08) == 0x08);
+      parentObj.memory[0xFF10] = data;
+      parentObj.channel1EnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x11] = this.memoryWriter[0xFF11] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled || !parentObj.cGBC) {
+      if (parentObj.soundMasterEnabled) {
+        parentObj.audioJIT();
+      }
+      else {
+        data &= 0x3F;
+      }
+      parentObj.channel1CachedDuty = parentObj.dutyLookup[data >> 6];
+      parentObj.channel1totalLength = 0x40 - (data & 0x3F);
+      parentObj.memory[0xFF11] = data & 0xC0;
+      parentObj.channel1EnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x12] = this.memoryWriter[0xFF12] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      if (parentObj.channel1Enabled && parentObj.channel1envelopeSweeps == 0) {
+        //Zombie Volume PAPU Bug:
+        if (((parentObj.memory[0xFF12] ^ data) & 0x8) == 0x8) {
+          if ((parentObj.memory[0xFF12] & 0x8) == 0) {
+            if ((parentObj.memory[0xFF12] & 0x7) == 0x7) {
+              parentObj.channel1envelopeVolume += 2;
+            }
+            else {
+              ++parentObj.channel1envelopeVolume;
+            }
+          }
+          parentObj.channel1envelopeVolume = (16 - parentObj.channel1envelopeVolume) & 0xF;
+        }
+        else if ((parentObj.memory[0xFF12] & 0xF) == 0x8) {
+          parentObj.channel1envelopeVolume = (1 + parentObj.channel1envelopeVolume) & 0xF;
+        }
+        parentObj.channel1OutputLevelCache();
+      }
+      parentObj.channel1envelopeType = ((data & 0x08) == 0x08);
+      parentObj.memory[0xFF12] = data;
+      parentObj.channel1VolumeEnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x13] = this.memoryWriter[0xFF13] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      parentObj.channel1frequency = (parentObj.channel1frequency & 0x700) | data;
+      parentObj.channel1FrequencyTracker = (0x800 - parentObj.channel1frequency) << 2;
+      parentObj.memory[0xFF13] = data;
+    }
+  }
+  this.memoryHighWriter[0x14] = this.memoryWriter[0xFF14] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      parentObj.channel1consecutive = ((data & 0x40) == 0x0);
+      parentObj.channel1frequency = ((data & 0x7) << 8) | (parentObj.channel1frequency & 0xFF);
+      parentObj.channel1FrequencyTracker = (0x800 - parentObj.channel1frequency) << 2;
+      if (data > 0x7F) {
+        //Reload 0xFF10:
+        parentObj.channel1timeSweep = parentObj.channel1lastTimeSweep;
+        parentObj.channel1numSweep = parentObj.channel1frequencySweepDivider;
+        //Reload 0xFF12:
+        var nr12 = parentObj.memory[0xFF12];
+        parentObj.channel1envelopeVolume = nr12 >> 4;
+        parentObj.channel1OutputLevelCache();
+        parentObj.channel1envelopeSweepsLast = (nr12 & 0x7) - 1;
+        if (parentObj.channel1totalLength == 0) {
+          parentObj.channel1totalLength = 0x40;
+        }
+        if (parentObj.channel1lastTimeSweep > 0 || parentObj.channel1frequencySweepDivider > 0) {
+          parentObj.memory[0xFF26] |= 0x1;
+        }
+        else {
+          parentObj.memory[0xFF26] &= 0xFE;
+        }
+        if ((data & 0x40) == 0x40) {
+          parentObj.memory[0xFF26] |= 0x1;
+        }
+        parentObj.channel1ShadowFrequency = parentObj.channel1frequency;
+        //Reset frequency overflow check + frequency sweep type check:
+        parentObj.channel1SweepFault = false;
+        //Supposed to run immediately:
+        parentObj.runAudioSweep();
+      }
+      parentObj.channel1EnableCheck();
+      parentObj.memory[0xFF14] = data & 0x40;
+    }
+  }
+  this.memoryHighWriter[0x16] = this.memoryWriter[0xFF16] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled || !parentObj.cGBC) {
+      if (parentObj.soundMasterEnabled) {
+        parentObj.audioJIT();
+      }
+      else {
+        data &= 0x3F;
+      }
+      parentObj.channel2CachedDuty = parentObj.dutyLookup[data >> 6];
+      parentObj.channel2totalLength = 0x40 - (data & 0x3F);
+      parentObj.memory[0xFF16] = data & 0xC0;
+      parentObj.channel2EnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x17] = this.memoryWriter[0xFF17] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      if (parentObj.channel2Enabled && parentObj.channel2envelopeSweeps == 0) {
+        //Zombie Volume PAPU Bug:
+        if (((parentObj.memory[0xFF17] ^ data) & 0x8) == 0x8) {
+          if ((parentObj.memory[0xFF17] & 0x8) == 0) {
+            if ((parentObj.memory[0xFF17] & 0x7) == 0x7) {
+              parentObj.channel2envelopeVolume += 2;
+            }
+            else {
+              ++parentObj.channel2envelopeVolume;
+            }
+          }
+          parentObj.channel2envelopeVolume = (16 - parentObj.channel2envelopeVolume) & 0xF;
+        }
+        else if ((parentObj.memory[0xFF17] & 0xF) == 0x8) {
+          parentObj.channel2envelopeVolume = (1 + parentObj.channel2envelopeVolume) & 0xF;
+        }
+        parentObj.channel2OutputLevelCache();
+      }
+      parentObj.channel2envelopeType = ((data & 0x08) == 0x08);
+      parentObj.memory[0xFF17] = data;
+      parentObj.channel2VolumeEnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x18] = this.memoryWriter[0xFF18] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      parentObj.channel2frequency = (parentObj.channel2frequency & 0x700) | data;
+      parentObj.channel2FrequencyTracker = (0x800 - parentObj.channel2frequency) << 2;
+      parentObj.memory[0xFF18] = data;
+    }
+  }
+  this.memoryHighWriter[0x19] = this.memoryWriter[0xFF19] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      if (data > 0x7F) {
+        //Reload 0xFF17:
+        var nr22 = parentObj.memory[0xFF17];
+        parentObj.channel2envelopeVolume = nr22 >> 4;
+        parentObj.channel2OutputLevelCache();
+        parentObj.channel2envelopeSweepsLast = (nr22 & 0x7) - 1;
+        if (parentObj.channel2totalLength == 0) {
+          parentObj.channel2totalLength = 0x40;
+        }
+        if ((data & 0x40) == 0x40) {
+          parentObj.memory[0xFF26] |= 0x2;
+        }
+      }
+      parentObj.channel2consecutive = ((data & 0x40) == 0x0);
+      parentObj.channel2frequency = ((data & 0x7) << 8) | (parentObj.channel2frequency & 0xFF);
+      parentObj.channel2FrequencyTracker = (0x800 - parentObj.channel2frequency) << 2;
+      parentObj.memory[0xFF19] = data & 0x40;
+      parentObj.channel2EnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x1A] = this.memoryWriter[0xFF1A] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      if (!parentObj.channel3canPlay && data >= 0x80) {
+        parentObj.channel3lastSampleLookup = 0;
+        parentObj.channel3UpdateCache();
+      }
+      parentObj.channel3canPlay = (data > 0x7F);
+      if (parentObj.channel3canPlay && parentObj.memory[0xFF1A] > 0x7F && !parentObj.channel3consecutive) {
+        parentObj.memory[0xFF26] |= 0x4;
+      }
+      parentObj.memory[0xFF1A] = data & 0x80;
+      //parentObj.channel3EnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x1B] = this.memoryWriter[0xFF1B] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled || !parentObj.cGBC) {
+      if (parentObj.soundMasterEnabled) {
+        parentObj.audioJIT();
+      }
+      parentObj.channel3totalLength = 0x100 - data;
+      parentObj.memory[0xFF1B] = data;
+      parentObj.channel3EnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x1C] = this.memoryWriter[0xFF1C] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      data &= 0x60;
+      parentObj.memory[0xFF1C] = data;
+      parentObj.channel3patternType = (data == 0) ? 4 : ((data >> 5) - 1);
+    }
+  }
+  this.memoryHighWriter[0x1D] = this.memoryWriter[0xFF1D] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      parentObj.channel3frequency = (parentObj.channel3frequency & 0x700) | data;
+      parentObj.channel3FrequencyPeriod = (0x800 - parentObj.channel3frequency) << 1;
+      parentObj.memory[0xFF1D] = data;
+    }
+  }
+  this.memoryHighWriter[0x1E] = this.memoryWriter[0xFF1E] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      if (data > 0x7F) {
+        if (parentObj.channel3totalLength == 0) {
+          parentObj.channel3totalLength = 0x100;
+        }
+        parentObj.channel3lastSampleLookup = 0;
+        if ((data & 0x40) == 0x40) {
+          parentObj.memory[0xFF26] |= 0x4;
+        }
+      }
+      parentObj.channel3consecutive = ((data & 0x40) == 0x0);
+      parentObj.channel3frequency = ((data & 0x7) << 8) | (parentObj.channel3frequency & 0xFF);
+      parentObj.channel3FrequencyPeriod = (0x800 - parentObj.channel3frequency) << 1;
+      parentObj.memory[0xFF1E] = data & 0x40;
+      parentObj.channel3EnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x20] = this.memoryWriter[0xFF20] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled || !parentObj.cGBC) {
+      if (parentObj.soundMasterEnabled) {
+        parentObj.audioJIT();
+      }
+      parentObj.channel4totalLength = 0x40 - (data & 0x3F);
+      parentObj.memory[0xFF20] = data | 0xC0;
+      parentObj.channel4EnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x21] = this.memoryWriter[0xFF21] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      if (parentObj.channel4Enabled && parentObj.channel4envelopeSweeps == 0) {
+        //Zombie Volume PAPU Bug:
+        if (((parentObj.memory[0xFF21] ^ data) & 0x8) == 0x8) {
+          if ((parentObj.memory[0xFF21] & 0x8) == 0) {
+            if ((parentObj.memory[0xFF21] & 0x7) == 0x7) {
+              parentObj.channel4envelopeVolume += 2;
+            }
+            else {
+              ++parentObj.channel4envelopeVolume;
+            }
+          }
+          parentObj.channel4envelopeVolume = (16 - parentObj.channel4envelopeVolume) & 0xF;
+        }
+        else if ((parentObj.memory[0xFF21] & 0xF) == 0x8) {
+          parentObj.channel4envelopeVolume = (1 + parentObj.channel4envelopeVolume) & 0xF;
+        }
+        parentObj.channel4currentVolume = parentObj.channel4envelopeVolume << parentObj.channel4VolumeShifter;
+      }
+      parentObj.channel4envelopeType = ((data & 0x08) == 0x08);
+      parentObj.memory[0xFF21] = data;
+      parentObj.channel4UpdateCache();
+      parentObj.channel4VolumeEnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x22] = this.memoryWriter[0xFF22] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      parentObj.channel4FrequencyPeriod = Math.max((data & 0x7) << 4, 8) << (data >> 4);
+      var bitWidth = (data & 0x8);
+      if ((bitWidth == 0x8 && parentObj.channel4BitRange == 0x7FFF) || (bitWidth == 0 && parentObj.channel4BitRange == 0x7F)) {
+        parentObj.channel4lastSampleLookup = 0;
+        parentObj.channel4BitRange = (bitWidth == 0x8) ? 0x7F : 0x7FFF;
+        parentObj.channel4VolumeShifter = (bitWidth == 0x8) ? 7 : 15;
+        parentObj.channel4currentVolume = parentObj.channel4envelopeVolume << parentObj.channel4VolumeShifter;
+        parentObj.noiseSampleTable = (bitWidth == 0x8) ? parentObj.LSFR7Table : parentObj.LSFR15Table;
+      }
+      parentObj.memory[0xFF22] = data;
+      parentObj.channel4UpdateCache();
+    }
+  }
+  this.memoryHighWriter[0x23] = this.memoryWriter[0xFF23] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled) {
+      parentObj.audioJIT();
+      parentObj.memory[0xFF23] = data;
+      parentObj.channel4consecutive = ((data & 0x40) == 0x0);
+      if (data > 0x7F) {
+        var nr42 = parentObj.memory[0xFF21];
+        parentObj.channel4envelopeVolume = nr42 >> 4;
+        parentObj.channel4currentVolume = parentObj.channel4envelopeVolume << parentObj.channel4VolumeShifter;
+        parentObj.channel4envelopeSweepsLast = (nr42 & 0x7) - 1;
+        if (parentObj.channel4totalLength == 0) {
+          parentObj.channel4totalLength = 0x40;
+        }
+        if ((data & 0x40) == 0x40) {
+          parentObj.memory[0xFF26] |= 0x8;
+        }
+      }
+      parentObj.channel4EnableCheck();
+    }
+  }
+  this.memoryHighWriter[0x24] = this.memoryWriter[0xFF24] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled && parentObj.memory[0xFF24] != data) {
+      parentObj.audioJIT();
+      parentObj.memory[0xFF24] = data;
+      parentObj.VinLeftChannelMasterVolume = ((data >> 4) & 0x07) + 1;
+      parentObj.VinRightChannelMasterVolume = (data & 0x07) + 1;
+      parentObj.mixerOutputLevelCache();
+    }
+  }
+  this.memoryHighWriter[0x25] = this.memoryWriter[0xFF25] = function (parentObj, address, data) {
+    if (parentObj.soundMasterEnabled && parentObj.memory[0xFF25] != data) {
+      parentObj.audioJIT();
+      parentObj.memory[0xFF25] = data;
+      parentObj.rightChannel1 = ((data & 0x01) == 0x01);
+      parentObj.rightChannel2 = ((data & 0x02) == 0x02);
+      parentObj.rightChannel3 = ((data & 0x04) == 0x04);
+      parentObj.rightChannel4 = ((data & 0x08) == 0x08);
+      parentObj.leftChannel1 = ((data & 0x10) == 0x10);
+      parentObj.leftChannel2 = ((data & 0x20) == 0x20);
+      parentObj.leftChannel3 = ((data & 0x40) == 0x40);
+      parentObj.leftChannel4 = (data > 0x7F);
+      parentObj.channel1OutputLevelCache();
+      parentObj.channel2OutputLevelCache();
+      parentObj.channel3OutputLevelCache();
+      parentObj.channel4OutputLevelCache();
+    }
+  }
+  this.memoryHighWriter[0x26] = this.memoryWriter[0xFF26] = function (parentObj, address, data) {
+    parentObj.audioJIT();
+    if (!parentObj.soundMasterEnabled && data > 0x7F) {
+      parentObj.memory[0xFF26] = 0x80;
+      parentObj.soundMasterEnabled = true;
+      parentObj.initializeAudioStartState();
+    }
+    else if (parentObj.soundMasterEnabled && data < 0x80) {
+      parentObj.memory[0xFF26] = 0;
+      parentObj.soundMasterEnabled = false;
+      //GBDev wiki says the registers are written with zeros on power off:
+      for (var index = 0xFF10; index < 0xFF26; index++) {
+        parentObj.memoryWriter[index](parentObj, index, 0);
+      }
+    }
+  }
+  //0xFF27 to 0xFF2F don't do anything...
+  this.memoryHighWriter[0x27] = this.memoryWriter[0xFF27] = this.cartIgnoreWrite;
+  this.memoryHighWriter[0x28] = this.memoryWriter[0xFF28] = this.cartIgnoreWrite;
+  this.memoryHighWriter[0x29] = this.memoryWriter[0xFF29] = this.cartIgnoreWrite;
+  this.memoryHighWriter[0x2A] = this.memoryWriter[0xFF2A] = this.cartIgnoreWrite;
+  this.memoryHighWriter[0x2B] = this.memoryWriter[0xFF2B] = this.cartIgnoreWrite;
+  this.memoryHighWriter[0x2C] = this.memoryWriter[0xFF2C] = this.cartIgnoreWrite;
+  this.memoryHighWriter[0x2D] = this.memoryWriter[0xFF2D] = this.cartIgnoreWrite;
+  this.memoryHighWriter[0x2E] = this.memoryWriter[0xFF2E] = this.cartIgnoreWrite;
+  this.memoryHighWriter[0x2F] = this.memoryWriter[0xFF2F] = this.cartIgnoreWrite;
+  //WAVE PCM RAM:
+  this.memoryHighWriter[0x30] = this.memoryWriter[0xFF30] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0, data);
+  }
+  this.memoryHighWriter[0x31] = this.memoryWriter[0xFF31] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0x1, data);
+  }
+  this.memoryHighWriter[0x32] = this.memoryWriter[0xFF32] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0x2, data);
+  }
+  this.memoryHighWriter[0x33] = this.memoryWriter[0xFF33] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0x3, data);
+  }
+  this.memoryHighWriter[0x34] = this.memoryWriter[0xFF34] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0x4, data);
+  }
+  this.memoryHighWriter[0x35] = this.memoryWriter[0xFF35] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0x5, data);
+  }
+  this.memoryHighWriter[0x36] = this.memoryWriter[0xFF36] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0x6, data);
+  }
+  this.memoryHighWriter[0x37] = this.memoryWriter[0xFF37] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0x7, data);
+  }
+  this.memoryHighWriter[0x38] = this.memoryWriter[0xFF38] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0x8, data);
+  }
+  this.memoryHighWriter[0x39] = this.memoryWriter[0xFF39] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0x9, data);
+  }
+  this.memoryHighWriter[0x3A] = this.memoryWriter[0xFF3A] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0xA, data);
+  }
+  this.memoryHighWriter[0x3B] = this.memoryWriter[0xFF3B] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0xB, data);
+  }
+  this.memoryHighWriter[0x3C] = this.memoryWriter[0xFF3C] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0xC, data);
+  }
+  this.memoryHighWriter[0x3D] = this.memoryWriter[0xFF3D] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0xD, data);
+  }
+  this.memoryHighWriter[0x3E] = this.memoryWriter[0xFF3E] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0xE, data);
+  }
+  this.memoryHighWriter[0x3F] = this.memoryWriter[0xFF3F] = function (parentObj, address, data) {
+    parentObj.channel3WriteRAM(0xF, data);
+  }
+  //SCY
+  this.memoryHighWriter[0x42] = this.memoryWriter[0xFF42] = function (parentObj, address, data) {
+    if (parentObj.backgroundY != data) {
+      parentObj.midScanLineJIT();
+      parentObj.backgroundY = data;
+    }
+  }
+  //SCX
+  this.memoryHighWriter[0x43] = this.memoryWriter[0xFF43] = function (parentObj, address, data) {
+    if (parentObj.backgroundX != data) {
+      parentObj.midScanLineJIT();
+      parentObj.backgroundX = data;
+    }
+  }
+  //LY
+  this.memoryHighWriter[0x44] = this.memoryWriter[0xFF44] = function (parentObj, address, data) {
+    //Read Only:
+    if (parentObj.LCDisOn) {
+      //Gambatte says to do this:
+      parentObj.modeSTAT = 2;
+      parentObj.midScanlineOffset = -1;
+      parentObj.totalLinesPassed = parentObj.currentX = parentObj.queuedScanLines = parentObj.lastUnrenderedLine = parentObj.LCDTicks = parentObj.STATTracker = parentObj.actualScanLine = parentObj.memory[0xFF44] = 0;
+    }
+  }
+  //LYC
+  this.memoryHighWriter[0x45] = this.memoryWriter[0xFF45] = function (parentObj, address, data) {
+    if (parentObj.memory[0xFF45] != data) {
+      parentObj.memory[0xFF45] = data;
+      if (parentObj.LCDisOn) {
+        parentObj.matchLYC();  //Get the compare of the first scan line.
+      }
+    }
+  }
+  //WY
+  this.memoryHighWriter[0x4A] = this.memoryWriter[0xFF4A] = function (parentObj, address, data) {
+    if (parentObj.windowY != data) {
+      parentObj.midScanLineJIT();
+      parentObj.windowY = data;
+    }
+  }
+  //WX
+  this.memoryHighWriter[0x4B] = this.memoryWriter[0xFF4B] = function (parentObj, address, data) {
+    if (parentObj.memory[0xFF4B] != data) {
+      parentObj.midScanLineJIT();
+      parentObj.memory[0xFF4B] = data;
+      parentObj.windowX = data - 7;
+    }
+  }
+  this.memoryHighWriter[0x72] = this.memoryWriter[0xFF72] = function (parentObj, address, data) {
+    parentObj.memory[0xFF72] = data;
+  }
+  this.memoryHighWriter[0x73] = this.memoryWriter[0xFF73] = function (parentObj, address, data) {
+    parentObj.memory[0xFF73] = data;
+  }
+  this.memoryHighWriter[0x75] = this.memoryWriter[0xFF75] = function (parentObj, address, data) {
+    parentObj.memory[0xFF75] = data;
+  }
+  this.memoryHighWriter[0x76] = this.memoryWriter[0xFF76] = this.cartIgnoreWrite;
+  this.memoryHighWriter[0x77] = this.memoryWriter[0xFF77] = this.cartIgnoreWrite;
+  //IE (Interrupt Enable)
+  this.memoryHighWriter[0xFF] = this.memoryWriter[0xFFFF] = function (parentObj, address, data) {
+    parentObj.interruptsEnabled = data;
+    parentObj.checkIRQMatching();
+  }
+  this.recompileModelSpecificIOWriteHandling();
+  this.recompileBootIOWriteHandling();
+}
+GameBoyCore.prototype.recompileModelSpecificIOWriteHandling = function () {
+  if (this.cGBC) {
+    //GameBoy Color Specific I/O:
+    //SC (Serial Transfer Control Register)
+    this.memoryHighWriter[0x2] = this.memoryWriter[0xFF02] = function (parentObj, address, data) {
+      if (((data & 0x1) == 0x1)) {
+        //Internal clock:
+        parentObj.memory[0xFF02] = (data & 0x7F);
+        parentObj.serialTimer = ((data & 0x2) == 0) ? 4096 : 128;  //Set the Serial IRQ counter.
+        parentObj.serialShiftTimer = parentObj.serialShiftTimerAllocated = ((data & 0x2) == 0) ? 512 : 16;  //Set the transfer data shift counter.
+      }
+      else {
+        //External clock:
+        parentObj.memory[0xFF02] = data;
+        parentObj.serialShiftTimer = parentObj.serialShiftTimerAllocated = parentObj.serialTimer = 0;  //Zero the timers, since we're emulating as if nothing is connected.
+      }
+    }
+    this.memoryHighWriter[0x40] = this.memoryWriter[0xFF40] = function (parentObj, address, data) {
+      if (parentObj.memory[0xFF40] != data) {
+        parentObj.midScanLineJIT();
+        var temp_var = (data > 0x7F);
+        if (temp_var != parentObj.LCDisOn) {
+          //When the display mode changes...
+          parentObj.LCDisOn = temp_var;
+          parentObj.memory[0xFF41] &= 0x78;
+          parentObj.midScanlineOffset = -1;
+          parentObj.totalLinesPassed = parentObj.currentX = parentObj.queuedScanLines = parentObj.lastUnrenderedLine = parentObj.STATTracker = parentObj.LCDTicks = parentObj.actualScanLine = parentObj.memory[0xFF44] = 0;
+          if (parentObj.LCDisOn) {
+            parentObj.modeSTAT = 2;
+            parentObj.matchLYC();  //Get the compare of the first scan line.
+            parentObj.LCDCONTROL = parentObj.LINECONTROL;
+          }
+          else {
+            parentObj.modeSTAT = 0;
+            parentObj.LCDCONTROL = parentObj.DISPLAYOFFCONTROL;
+            parentObj.DisplayShowOff();
+          }
+          parentObj.interruptsRequested &= 0xFD;
+        }
+        parentObj.gfxWindowCHRBankPosition = ((data & 0x40) == 0x40) ? 0x400 : 0;
+        parentObj.gfxWindowDisplay = ((data & 0x20) == 0x20);
+        parentObj.gfxBackgroundBankOffset = ((data & 0x10) == 0x10) ? 0 : 0x80;
+        parentObj.gfxBackgroundCHRBankPosition = ((data & 0x08) == 0x08) ? 0x400 : 0;
+        parentObj.gfxSpriteNormalHeight = ((data & 0x04) == 0);
+        parentObj.gfxSpriteShow = ((data & 0x02) == 0x02);
+        parentObj.BGPriorityEnabled = ((data & 0x01) == 0x01);
+        parentObj.priorityFlaggingPathRebuild();  //Special case the priority flagging as an optimization.
+        parentObj.memory[0xFF40] = data;
+      }
+    }
+    this.memoryHighWriter[0x41] = this.memoryWriter[0xFF41] = function (parentObj, address, data) {
+      parentObj.LYCMatchTriggerSTAT = ((data & 0x40) == 0x40);
+      parentObj.mode2TriggerSTAT = ((data & 0x20) == 0x20);
+      parentObj.mode1TriggerSTAT = ((data & 0x10) == 0x10);
+      parentObj.mode0TriggerSTAT = ((data & 0x08) == 0x08);
+      parentObj.memory[0xFF41] = data & 0x78;
+    }
+    this.memoryHighWriter[0x46] = this.memoryWriter[0xFF46] = function (parentObj, address, data) {
+      parentObj.memory[0xFF46] = data;
+      if (data < 0xE0) {
+        data <<= 8;
+        address = 0xFE00;
+        var stat = parentObj.modeSTAT;
+        parentObj.modeSTAT = 0;
+        var newData = 0;
+        do {
+          newData = parentObj.memoryReader[data](parentObj, data++);
+          if (newData != parentObj.memory[address]) {
+            //JIT the graphics render queue:
+            parentObj.modeSTAT = stat;
+            parentObj.graphicsJIT();
+            parentObj.modeSTAT = 0;
+            parentObj.memory[address++] = newData;
+            break;
+          }
+        } while (++address < 0xFEA0);
+        if (address < 0xFEA0) {
+          do {
+            parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++);
+            parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++);
+            parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++);
+            parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++);
+          } while (address < 0xFEA0);
+        }
+        parentObj.modeSTAT = stat;
+      }
+    }
+    //KEY1
+    this.memoryHighWriter[0x4D] = this.memoryWriter[0xFF4D] = function (parentObj, address, data) {
+      parentObj.memory[0xFF4D] = (data & 0x7F) | (parentObj.memory[0xFF4D] & 0x80);
+    }
+    this.memoryHighWriter[0x4F] = this.memoryWriter[0xFF4F] = function (parentObj, address, data) {
+      parentObj.currVRAMBank = data & 0x01;
+      if (parentObj.currVRAMBank > 0) {
+        parentObj.BGCHRCurrentBank = parentObj.BGCHRBank2;
+      }
+      else {
+        parentObj.BGCHRCurrentBank = parentObj.BGCHRBank1;
+      }
+      //Only writable by GBC.
+    }
+    this.memoryHighWriter[0x51] = this.memoryWriter[0xFF51] = function (parentObj, address, data) {
+      if (!parentObj.hdmaRunning) {
+        parentObj.memory[0xFF51] = data;
+      }
+    }
+    this.memoryHighWriter[0x52] = this.memoryWriter[0xFF52] = function (parentObj, address, data) {
+      if (!parentObj.hdmaRunning) {
+        parentObj.memory[0xFF52] = data & 0xF0;
+      }
+    }
+    this.memoryHighWriter[0x53] = this.memoryWriter[0xFF53] = function (parentObj, address, data) {
+      if (!parentObj.hdmaRunning) {
+        parentObj.memory[0xFF53] = data & 0x1F;
+      }
+    }
+    this.memoryHighWriter[0x54] = this.memoryWriter[0xFF54] = function (parentObj, address, data) {
+      if (!parentObj.hdmaRunning) {
+        parentObj.memory[0xFF54] = data & 0xF0;
+      }
+    }
+    this.memoryHighWriter[0x55] = this.memoryWriter[0xFF55] = function (parentObj, address, data) {
+      if (!parentObj.hdmaRunning) {
+        if ((data & 0x80) == 0) {
+          //DMA
+          parentObj.DMAWrite((data & 0x7F) + 1);
+          parentObj.memory[0xFF55] = 0xFF;  //Transfer completed.
+        }
+        else {
+          //H-Blank DMA
+          parentObj.hdmaRunning = true;
+          parentObj.memory[0xFF55] = data & 0x7F;
+        }
+      }
+      else if ((data & 0x80) == 0) {
+        //Stop H-Blank DMA
+        parentObj.hdmaRunning = false;
+        parentObj.memory[0xFF55] |= 0x80;
+      }
+      else {
+        parentObj.memory[0xFF55] = data & 0x7F;
+      }
+    }
+    this.memoryHighWriter[0x68] = this.memoryWriter[0xFF68] = function (parentObj, address, data) {
+      parentObj.memory[0xFF69] = parentObj.gbcBGRawPalette[data & 0x3F];
+      parentObj.memory[0xFF68] = data;
+    }
+    this.memoryHighWriter[0x69] = this.memoryWriter[0xFF69] = function (parentObj, address, data) {
+      parentObj.updateGBCBGPalette(parentObj.memory[0xFF68] & 0x3F, data);
+      if (parentObj.memory[0xFF68] > 0x7F) { // high bit = autoincrement
+        var next = ((parentObj.memory[0xFF68] + 1) & 0x3F);
+        parentObj.memory[0xFF68] = (next | 0x80);
+        parentObj.memory[0xFF69] = parentObj.gbcBGRawPalette[next];
+      }
+      else {
+        parentObj.memory[0xFF69] = data;
+      }
+    }
+    this.memoryHighWriter[0x6A] = this.memoryWriter[0xFF6A] = function (parentObj, address, data) {
+      parentObj.memory[0xFF6B] = parentObj.gbcOBJRawPalette[data & 0x3F];
+      parentObj.memory[0xFF6A] = data;
+    }
+    this.memoryHighWriter[0x6B] = this.memoryWriter[0xFF6B] = function (parentObj, address, data) {
+      parentObj.updateGBCOBJPalette(parentObj.memory[0xFF6A] & 0x3F, data);
+      if (parentObj.memory[0xFF6A] > 0x7F) { // high bit = autoincrement
+        var next = ((parentObj.memory[0xFF6A] + 1) & 0x3F);
+        parentObj.memory[0xFF6A] = (next | 0x80);
+        parentObj.memory[0xFF6B] = parentObj.gbcOBJRawPalette[next];
+      }
+      else {
+        parentObj.memory[0xFF6B] = data;
+      }
+    }
+    //SVBK
+    this.memoryHighWriter[0x70] = this.memoryWriter[0xFF70] = function (parentObj, address, data) {
+      var addressCheck = (parentObj.memory[0xFF51] << 8) | parentObj.memory[0xFF52];  //Cannot change the RAM bank while WRAM is the source of a running HDMA.
+      if (!parentObj.hdmaRunning || addressCheck < 0xD000 || addressCheck >= 0xE000) {
+        parentObj.gbcRamBank = Math.max(data & 0x07, 1);  //Bank range is from 1-7
+        parentObj.gbcRamBankPosition = ((parentObj.gbcRamBank - 1) << 12) - 0xD000;
+        parentObj.gbcRamBankPositionECHO = parentObj.gbcRamBankPosition - 0x2000;
+      }
+      parentObj.memory[0xFF70] = data;  //Bit 6 cannot be written to.
+    }
+    this.memoryHighWriter[0x74] = this.memoryWriter[0xFF74] = function (parentObj, address, data) {
+      parentObj.memory[0xFF74] = data;
+    }
+  }
+  else {
+    //Fill in the GameBoy Color I/O registers as normal RAM for GameBoy compatibility:
+    //SC (Serial Transfer Control Register)
+    this.memoryHighWriter[0x2] = this.memoryWriter[0xFF02] = function (parentObj, address, data) {
+      if (((data & 0x1) == 0x1)) {
+        //Internal clock:
+        parentObj.memory[0xFF02] = (data & 0x7F);
+        parentObj.serialTimer = 4096;  //Set the Serial IRQ counter.
+        parentObj.serialShiftTimer = parentObj.serialShiftTimerAllocated = 512;  //Set the transfer data shift counter.
+      }
+      else {
+        //External clock:
+        parentObj.memory[0xFF02] = data;
+        parentObj.serialShiftTimer = parentObj.serialShiftTimerAllocated = parentObj.serialTimer = 0;  //Zero the timers, since we're emulating as if nothing is connected.
+      }
+    }
+    this.memoryHighWriter[0x40] = this.memoryWriter[0xFF40] = function (parentObj, address, data) {
+      if (parentObj.memory[0xFF40] != data) {
+        parentObj.midScanLineJIT();
+        var temp_var = (data > 0x7F);
+        if (temp_var != parentObj.LCDisOn) {
+          //When the display mode changes...
+          parentObj.LCDisOn = temp_var;
+          parentObj.memory[0xFF41] &= 0x78;
+          parentObj.midScanlineOffset = -1;
+          parentObj.totalLinesPassed = parentObj.currentX = parentObj.queuedScanLines = parentObj.lastUnrenderedLine = parentObj.STATTracker = parentObj.LCDTicks = parentObj.actualScanLine = parentObj.memory[0xFF44] = 0;
+          if (parentObj.LCDisOn) {
+            parentObj.modeSTAT = 2;
+            parentObj.matchLYC();  //Get the compare of the first scan line.
+            parentObj.LCDCONTROL = parentObj.LINECONTROL;
+          }
+          else {
+            parentObj.modeSTAT = 0;
+            parentObj.LCDCONTROL = parentObj.DISPLAYOFFCONTROL;
+            parentObj.DisplayShowOff();
+          }
+          parentObj.interruptsRequested &= 0xFD;
+        }
+        parentObj.gfxWindowCHRBankPosition = ((data & 0x40) == 0x40) ? 0x400 : 0;
+        parentObj.gfxWindowDisplay = (data & 0x20) == 0x20;
+        parentObj.gfxBackgroundBankOffset = ((data & 0x10) == 0x10) ? 0 : 0x80;
+        parentObj.gfxBackgroundCHRBankPosition = ((data & 0x08) == 0x08) ? 0x400 : 0;
+        parentObj.gfxSpriteNormalHeight = ((data & 0x04) == 0);
+        parentObj.gfxSpriteShow = (data & 0x02) == 0x02;
+        parentObj.bgEnabled = ((data & 0x01) == 0x01);
+        parentObj.memory[0xFF40] = data;
+      }
+    }
+    this.memoryHighWriter[0x41] = this.memoryWriter[0xFF41] = function (parentObj, address, data) {
+      parentObj.LYCMatchTriggerSTAT = ((data & 0x40) == 0x40);
+      parentObj.mode2TriggerSTAT = ((data & 0x20) == 0x20);
+      parentObj.mode1TriggerSTAT = ((data & 0x10) == 0x10);
+      parentObj.mode0TriggerSTAT = ((data & 0x08) == 0x08);
+      parentObj.memory[0xFF41] = data & 0x78;
+      if ((!parentObj.usedBootROM || !parentObj.usedGBCBootROM) && parentObj.LCDisOn && parentObj.modeSTAT < 2) {
+        parentObj.interruptsRequested |= 0x2;
+        parentObj.checkIRQMatching();
+      }
+    }
+    this.memoryHighWriter[0x46] = this.memoryWriter[0xFF46] = function (parentObj, address, data) {
+      parentObj.memory[0xFF46] = data;
+      if (data > 0x7F && data < 0xE0) {  //DMG cannot DMA from the ROM banks.
+        data <<= 8;
+        address = 0xFE00;
+        var stat = parentObj.modeSTAT;
+        parentObj.modeSTAT = 0;
+        var newData = 0;
+        do {
+          newData = parentObj.memoryReader[data](parentObj, data++);
+          if (newData != parentObj.memory[address]) {
+            //JIT the graphics render queue:
+            parentObj.modeSTAT = stat;
+            parentObj.graphicsJIT();
+            parentObj.modeSTAT = 0;
+            parentObj.memory[address++] = newData;
+            break;
+          }
+        } while (++address < 0xFEA0);
+        if (address < 0xFEA0) {
+          do {
+            parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++);
+            parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++);
+            parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++);
+            parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++);
+          } while (address < 0xFEA0);
+        }
+        parentObj.modeSTAT = stat;
+      }
+    }
+    this.memoryHighWriter[0x47] = this.memoryWriter[0xFF47] = function (parentObj, address, data) {
+      if (parentObj.memory[0xFF47] != data) {
+        parentObj.midScanLineJIT();
+        parentObj.updateGBBGPalette(data);
+        parentObj.memory[0xFF47] = data;
+      }
+    }
+    this.memoryHighWriter[0x48] = this.memoryWriter[0xFF48] = function (parentObj, address, data) {
+      if (parentObj.memory[0xFF48] != data) {
+        parentObj.midScanLineJIT();
+        parentObj.updateGBOBJPalette(0, data);
+        parentObj.memory[0xFF48] = data;
+      }
+    }
+    this.memoryHighWriter[0x49] = this.memoryWriter[0xFF49] = function (parentObj, address, data) {
+      if (parentObj.memory[0xFF49] != data) {
+        parentObj.midScanLineJIT();
+        parentObj.updateGBOBJPalette(4, data);
+        parentObj.memory[0xFF49] = data;
+      }
+    }
+    this.memoryHighWriter[0x4D] = this.memoryWriter[0xFF4D] = function (parentObj, address, data) {
+      parentObj.memory[0xFF4D] = data;
+    }
+    this.memoryHighWriter[0x4F] = this.memoryWriter[0xFF4F] = this.cartIgnoreWrite;  //Not writable in DMG mode.
+    this.memoryHighWriter[0x55] = this.memoryWriter[0xFF55] = this.cartIgnoreWrite;
+    this.memoryHighWriter[0x68] = this.memoryWriter[0xFF68] = this.cartIgnoreWrite;
+    this.memoryHighWriter[0x69] = this.memoryWriter[0xFF69] = this.cartIgnoreWrite;
+    this.memoryHighWriter[0x6A] = this.memoryWriter[0xFF6A] = this.cartIgnoreWrite;
+    this.memoryHighWriter[0x6B] = this.memoryWriter[0xFF6B] = this.cartIgnoreWrite;
+    this.memoryHighWriter[0x6C] = this.memoryWriter[0xFF6C] = this.cartIgnoreWrite;
+    this.memoryHighWriter[0x70] = this.memoryWriter[0xFF70] = this.cartIgnoreWrite;
+    this.memoryHighWriter[0x74] = this.memoryWriter[0xFF74] = this.cartIgnoreWrite;
+  }
+}
+GameBoyCore.prototype.recompileBootIOWriteHandling = function () {
+  //Boot I/O Registers:
+  if (this.inBootstrap) {
+    this.memoryHighWriter[0x50] = this.memoryWriter[0xFF50] = function (parentObj, address, data) {
+      cout("Boot ROM reads blocked: Bootstrap process has ended.", 0);
+      parentObj.inBootstrap = false;
+      parentObj.disableBootROM();      //Fill in the boot ROM ranges with ROM  bank 0 ROM ranges
+      parentObj.memory[0xFF50] = data;  //Bits are sustained in memory?
+    }
+    if (this.cGBC) {
+      this.memoryHighWriter[0x6C] = this.memoryWriter[0xFF6C] = function (parentObj, address, data) {
+        if (parentObj.inBootstrap) {
+          parentObj.cGBC = ((data & 0x1) == 0);
+          //Exception to the GBC identifying code:
+          if (parentObj.name + parentObj.gameCode + parentObj.ROM[0x143] == "Game and Watch 50") {
+            parentObj.cGBC = true;
+            cout("Created a boot exception for Game and Watch Gallery 2 (GBC ID byte is wrong on the cartridge).", 1);
+          }
+          cout("Booted to GBC Mode: " + parentObj.cGBC, 0);
+        }
+        parentObj.memory[0xFF6C] = data;
+      }
+    }
+  }
+  else {
+    //Lockout the ROMs from accessing the BOOT ROM control register:
+    this.memoryHighWriter[0x50] = this.memoryWriter[0xFF50] = this.cartIgnoreWrite;
+  }
+}
+//Helper Functions
+GameBoyCore.prototype.toTypedArray = function (baseArray, memtype) {
+  try {
+    // The following line was modified for benchmarking:
+    if (settings[5] || (memtype != "float32" && GameBoyWindow.opera && this.checkForOperaMathBug())) {
+      return baseArray;
+    }
+    if (!baseArray || !baseArray.length) {
+      return [];
+    }
+    var length = baseArray.length;
+    switch (memtype) {
+      case "uint8":
+        var typedArrayTemp = new Uint8Array(length);
+        break;
+      case "int8":
+        var typedArrayTemp = new Int8Array(length);
+        break;
+      case "int32":
+        var typedArrayTemp = new Int32Array(length);
+        break;
+      case "float32":
+        var typedArrayTemp = new Float32Array(length);
+    }
+    for (var index = 0; index < length; index++) {
+      typedArrayTemp[index] = baseArray[index];
+    }
+    return typedArrayTemp;
+  }
+  catch (error) {
+    cout("Could not convert an array to a typed array: " + error.message, 1);
+    return baseArray;
+  }
+}
+GameBoyCore.prototype.fromTypedArray = function (baseArray) {
+  try {
+    if (!baseArray || !baseArray.length) {
+      return [];
+    }
+    var arrayTemp = [];
+    for (var index = 0; index < baseArray.length; ++index) {
+      arrayTemp[index] = baseArray[index];
+    }
+    return arrayTemp;
+  }
+  catch (error) {
+    cout("Conversion from a typed array failed: " + error.message, 1);
+    return baseArray;
+  }
+}
+GameBoyCore.prototype.getTypedArray = function (length, defaultValue, numberType) {
+  try {
+    if (settings[5]) {
+      throw(new Error(""));
+    }
+    // The following line was modified for benchmarking:
+    if (numberType != "float32" && GameBoyWindow.opera && this.checkForOperaMathBug()) {
+      //Caught Opera breaking typed array math:
+      throw(new Error(""));
+    }
+    switch (numberType) {
+      case "int8":
+        var arrayHandle = new Int8Array(length);
+        break;
+      case "uint8":
+        var arrayHandle = new Uint8Array(length);
+        break;
+      case "int32":
+        var arrayHandle = new Int32Array(length);
+        break;
+      case "float32":
+        var arrayHandle = new Float32Array(length);
+    }
+    if (defaultValue != 0) {
+      var index = 0;
+      while (index < length) {
+        arrayHandle[index++] = defaultValue;
+      }
+    }
+  }
+  catch (error) {
+    cout("Could not convert an array to a typed array: " + error.message, 1);
+    var arrayHandle = [];
+    var index = 0;
+    while (index < length) {
+      arrayHandle[index++] = defaultValue;
+    }
+  }
+  return arrayHandle;
+}
+GameBoyCore.prototype.checkForOperaMathBug = function () {
+  var testTypedArray = new Uint8Array(1);
+  testTypedArray[0] = -1;
+  testTypedArray[0] >>= 0;
+  if (testTypedArray[0] != 0xFF) {
+    cout("Detected faulty math by your browser.", 2);
+    return true;
+  }
+  else {
+    return false;
+  }
+}
+
+// End of js/GameBoyCore.js file.
+
+// Start of js/GameBoyIO.js file.
+
+"use strict";
+var gameboy = null;            //GameBoyCore object.
+var gbRunInterval = null;        //GameBoyCore Timer
+var settings = [            //Some settings.
+  true,                 //Turn on sound.
+  false,                //Boot with boot ROM first? (set to false for benchmarking)
+  false,                //Give priority to GameBoy mode
+  [39, 37, 38, 40, 88, 90, 16, 13],  //Keyboard button map.
+  true,                //Colorize GB mode?
+  false,                //Disallow typed arrays?
+  4,                  //Interval for the emulator loop.
+  15,                  //Audio buffer minimum span amount over x interpreter iterations.
+  30,                  //Audio buffer maximum span amount over x interpreter iterations.
+  false,                //Override to allow for MBC1 instead of ROM only (compatibility for broken 3rd-party cartridges).
+  false,                //Override MBC RAM disabling and always allow reading and writing to the banks.
+  false,                //Use the GameBoy boot ROM instead of the GameBoy Color boot ROM.
+  false,                //Scale the canvas in JS, or let the browser scale the canvas?
+  0x10,                //Internal audio buffer pre-interpolation factor.
+  1                  //Volume level set.
+];
+function start(canvas, ROM) {
+  clearLastEmulation();
+  autoSave();  //If we are about to load a new game, then save the last one...
+  gameboy = new GameBoyCore(canvas, ROM);
+  gameboy.openMBC = openSRAM;
+  gameboy.openRTC = openRTC;
+  gameboy.start();
+  run();
+}
+function run() {
+  if (GameBoyEmulatorInitialized()) {
+    if (!GameBoyEmulatorPlaying()) {
+      gameboy.stopEmulator &= 1;
+      cout("Starting the iterator.", 0);
+      var dateObj = new_Date();  // The line is changed for benchmarking.
+      gameboy.firstIteration = dateObj.getTime();
+      gameboy.iterations = 0;
+      // The following lines are commented out for benchmarking.
+      // gbRunInterval = setInterval(function () {
+      //  if (!document.hidden && !document.msHidden && !document.mozHidden && !document.webkitHidden) {
+      //    gameboy.run();
+      // }
+      // }, settings[6]);
+    }
+    else {
+      cout("The GameBoy core is already running.", 1);
+    }
+  }
+  else {
+    cout("GameBoy core cannot run while it has not been initialized.", 1);
+  }
+}
+function pause() {
+  if (GameBoyEmulatorInitialized()) {
+    if (GameBoyEmulatorPlaying()) {
+      clearLastEmulation();
+    }
+    else {
+      cout("GameBoy core has already been paused.", 1);
+    }
+  }
+  else {
+    cout("GameBoy core cannot be paused while it has not been initialized.", 1);
+  }
+}
+function clearLastEmulation() {
+  if (GameBoyEmulatorInitialized() && GameBoyEmulatorPlaying()) {
+    clearInterval(gbRunInterval);
+    gameboy.stopEmulator |= 2;
+    cout("The previous emulation has been cleared.", 0);
+  }
+  else {
+    cout("No previous emulation was found to be cleared.", 0);
+  }
+}
+function save() {
+  if (GameBoyEmulatorInitialized()) {
+    try {
+      var state_suffix = 0;
+      while (findValue("FREEZE_" + gameboy.name + "_" + state_suffix) != null) {
+        state_suffix++;
+      }
+      setValue("FREEZE_" + gameboy.name + "_" + state_suffix, gameboy.saveState());
+      cout("Saved the current state as: FREEZE_" + gameboy.name + "_" + state_suffix, 0);
+    }
+    catch (error) {
+      cout("Could not save the current emulation state(\"" + error.message + "\").", 2);
+    }
+  }
+  else {
+    cout("GameBoy core cannot be saved while it has not been initialized.", 1);
+  }
+}
+function saveSRAM() {
+  if (GameBoyEmulatorInitialized()) {
+    if (gameboy.cBATT) {
+      try {
+        var sram = gameboy.saveSRAMState();
+        if (sram.length > 0) {
+          cout("Saving the SRAM...", 0);
+          if (findValue("SRAM_" + gameboy.name) != null) {
+            //Remove the outdated storage format save:
+            cout("Deleting the old SRAM save due to outdated format.", 0);
+            deleteValue("SRAM_" + gameboy.name);
+          }
+          setValue("B64_SRAM_" + gameboy.name, arrayToBase64(sram));
+        }
+        else {
+          cout("SRAM could not be saved because it was empty.", 1);
+        }
+      }
+      catch (error) {
+        cout("Could not save the current emulation state(\"" + error.message + "\").", 2);
+      }
+    }
+    else {
+      cout("Cannot save a game that does not have battery backed SRAM specified.", 1);
+    }
+    saveRTC();
+  }
+  else {
+    cout("GameBoy core cannot be saved while it has not been initialized.", 1);
+  }
+}
+function saveRTC() {  //Execute this when SRAM is being saved as well.
+  if (GameBoyEmulatorInitialized()) {
+    if (gameboy.cTIMER) {
+      try {
+        cout("Saving the RTC...", 0);
+        setValue("RTC_" + gameboy.name, gameboy.saveRTCState());
+      }
+      catch (error) {
+        cout("Could not save the RTC of the current emulation state(\"" + error.message + "\").", 2);
+      }
+    }
+  }
+  else {
+    cout("GameBoy core cannot be saved while it has not been initialized.", 1);
+  }
+}
+function autoSave() {
+  if (GameBoyEmulatorInitialized()) {
+    cout("Automatically saving the SRAM.", 0);
+    saveSRAM();
+    saveRTC();
+  }
+}
+function openSRAM(filename) {
+  try {
+    if (findValue("B64_SRAM_" + filename) != null) {
+      cout("Found a previous SRAM state (Will attempt to load).", 0);
+      return base64ToArray(findValue("B64_SRAM_" + filename));
+    }
+    else if (findValue("SRAM_" + filename) != null) {
+      cout("Found a previous SRAM state (Will attempt to load).", 0);
+      return findValue("SRAM_" + filename);
+    }
+    else {
+      cout("Could not find any previous SRAM copy for the current ROM.", 0);
+    }
+  }
+  catch (error) {
+    cout("Could not open the  SRAM of the saved emulation state.", 2);
+  }
+  return [];
+}
+function openRTC(filename) {
+  try {
+    if (findValue("RTC_" + filename) != null) {
+      cout("Found a previous RTC state (Will attempt to load).", 0);
+      return findValue("RTC_" + filename);
+    }
+    else {
+      cout("Could not find any previous RTC copy for the current ROM.", 0);
+    }
+  }
+  catch (error) {
+    cout("Could not open the RTC data of the saved emulation state.", 2);
+  }
+  return [];
+}
+function openState(filename, canvas) {
+  try {
+    if (findValue(filename) != null) {
+      try {
+        clearLastEmulation();
+        cout("Attempting to run a saved emulation state.", 0);
+        gameboy = new GameBoyCore(canvas, "");
+        gameboy.savedStateFileName = filename;
+        gameboy.returnFromState(findValue(filename));
+        run();
+      }
+      catch (error) {
+        alert(error.message + " file: " + error.fileName + " line: " + error.lineNumber);
+      }
+    }
+    else {
+      cout("Could not find the save state " + filename + "\".", 2);
+    }
+  }
+  catch (error) {
+    cout("Could not open the saved emulation state.", 2);
+  }
+}
+function import_save(blobData) {
+  blobData = decodeBlob(blobData);
+  if (blobData && blobData.blobs) {
+    if (blobData.blobs.length > 0) {
+      for (var index = 0; index < blobData.blobs.length; ++index) {
+        cout("Importing blob \"" + blobData.blobs[index].blobID + "\"", 0);
+        if (blobData.blobs[index].blobContent) {
+          if (blobData.blobs[index].blobID.substring(0, 5) == "SRAM_") {
+            setValue("B64_" + blobData.blobs[index].blobID, base64(blobData.blobs[index].blobContent));
+          }
+          else {
+            setValue(blobData.blobs[index].blobID, JSON.parse(blobData.blobs[index].blobContent));
+          }
+        }
+        else if (blobData.blobs[index].blobID) {
+          cout("Save file imported had blob \"" + blobData.blobs[index].blobID + "\" with no blob data interpretable.", 2);
+        }
+        else {
+          cout("Blob chunk information missing completely.", 2);
+        }
+      }
+    }
+    else {
+      cout("Could not decode the imported file.", 2);
+    }
+  }
+  else {
+    cout("Could not decode the imported file.", 2);
+  }
+}
+function generateBlob(keyName, encodedData) {
+  //Append the file format prefix:
+  var saveString = "EMULATOR_DATA";
+  var consoleID = "GameBoy";
+  //Figure out the length:
+  var totalLength = (saveString.length + 4 + (1 + consoleID.length)) + ((1 + keyName.length) + (4 + encodedData.length));
+  //Append the total length in bytes:
+  saveString += to_little_endian_dword(totalLength);
+  //Append the console ID text's length:
+  saveString += to_byte(consoleID.length);
+  //Append the console ID text:
+  saveString += consoleID;
+  //Append the blob ID:
+  saveString += to_byte(keyName.length);
+  saveString += keyName;
+  //Now append the save data:
+  saveString += to_little_endian_dword(encodedData.length);
+  saveString += encodedData;
+  return saveString;
+}
+function generateMultiBlob(blobPairs) {
+  var consoleID = "GameBoy";
+  //Figure out the initial length:
+  var totalLength = 13 + 4 + 1 + consoleID.length;
+  //Append the console ID text's length:
+  var saveString = to_byte(consoleID.length);
+  //Append the console ID text:
+  saveString += consoleID;
+  var keyName = "";
+  var encodedData = "";
+  //Now append all the blobs:
+  for (var index = 0; index < blobPairs.length; ++index) {
+    keyName = blobPairs[index][0];
+    encodedData = blobPairs[index][1];
+    //Append the blob ID:
+    saveString += to_byte(keyName.length);
+    saveString += keyName;
+    //Now append the save data:
+    saveString += to_little_endian_dword(encodedData.length);
+    saveString += encodedData;
+    //Update the total length:
+    totalLength += 1 + keyName.length + 4 + encodedData.length;
+  }
+  //Now add the prefix:
+  saveString = "EMULATOR_DATA" + to_little_endian_dword(totalLength) + saveString;
+  return saveString;
+}
+function decodeBlob(blobData) {
+  /*Format is as follows:
+    - 13 byte string "EMULATOR_DATA"
+    - 4 byte total size (including these 4 bytes).
+    - 1 byte Console type ID length
+    - Console type ID text of 8 bit size
+    blobs {
+      - 1 byte blob ID length
+      - blob ID text (Used to say what the data is (SRAM/freeze state/etc...))
+      - 4 byte blob length
+      - blob length of 32 bit size
+    }
+  */
+  var length = blobData.length;
+  var blobProperties = {};
+  blobProperties.consoleID = null;
+  var blobsCount = -1;
+  blobProperties.blobs = [];
+  if (length > 17) {
+    if (blobData.substring(0, 13) == "EMULATOR_DATA") {
+      var length = Math.min(((blobData.charCodeAt(16) & 0xFF) << 24) | ((blobData.charCodeAt(15) & 0xFF) << 16) | ((blobData.charCodeAt(14) & 0xFF) << 8) | (blobData.charCodeAt(13) & 0xFF), length);
+      var consoleIDLength = blobData.charCodeAt(17) & 0xFF;
+      if (length > 17 + consoleIDLength) {
+        blobProperties.consoleID = blobData.substring(18, 18 + consoleIDLength);
+        var blobIDLength = 0;
+        var blobLength = 0;
+        for (var index = 18 + consoleIDLength; index < length;) {
+          blobIDLength = blobData.charCodeAt(index++) & 0xFF;
+          if (index + blobIDLength < length) {
+            blobProperties.blobs[++blobsCount] = {};
+            blobProperties.blobs[blobsCount].blobID = blobData.substring(index, index + blobIDLength);
+            index += blobIDLength;
+            if (index + 4 < length) {
+              blobLength = ((blobData.charCodeAt(index + 3) & 0xFF) << 24) | ((blobData.charCodeAt(index + 2) & 0xFF) << 16) | ((blobData.charCodeAt(index + 1) & 0xFF) << 8) | (blobData.charCodeAt(index) & 0xFF);
+              index += 4;
+              if (index + blobLength <= length) {
+                blobProperties.blobs[blobsCount].blobContent =  blobData.substring(index, index + blobLength);
+                index += blobLength;
+              }
+              else {
+                cout("Blob length check failed, blob determined to be incomplete.", 2);
+                break;
+              }
+            }
+            else {
+              cout("Blob was incomplete, bailing out.", 2);
+              break;
+            }
+          }
+          else {
+            cout("Blob was incomplete, bailing out.", 2);
+            break;
+          }
+        }
+      }
+    }
+  }
+  return blobProperties;
+}
+function matchKey(key) {  //Maps a keyboard key to a gameboy key.
+  //Order: Right, Left, Up, Down, A, B, Select, Start
+  for (var index = 0; index < settings[3].length; index++) {
+    if (settings[3][index] == key) {
+      return index;
+    }
+  }
+  return -1;
+}
+function GameBoyEmulatorInitialized() {
+  return (typeof gameboy == "object" && gameboy != null);
+}
+function GameBoyEmulatorPlaying() {
+  return ((gameboy.stopEmulator & 2) == 0);
+}
+function GameBoyKeyDown(e) {
+  if (GameBoyEmulatorInitialized() && GameBoyEmulatorPlaying()) {
+    var keycode = matchKey(e.keyCode);
+    if (keycode >= 0 && keycode < 8) {
+      gameboy.JoyPadEvent(keycode, true);
+      try {
+        e.preventDefault();
+      }
+      catch (error) { }
+    }
+  }
+}
+function GameBoyKeyUp(e) {
+  if (GameBoyEmulatorInitialized() && GameBoyEmulatorPlaying()) {
+    var keycode = matchKey(e.keyCode);
+    if (keycode >= 0 && keycode < 8) {
+      gameboy.JoyPadEvent(keycode, false);
+      try {
+        e.preventDefault();
+      }
+      catch (error) { }
+    }
+  }
+}
+function GameBoyGyroSignalHandler(e) {
+  if (GameBoyEmulatorInitialized() && GameBoyEmulatorPlaying()) {
+    if (e.gamma || e.beta) {
+      gameboy.GyroEvent(e.gamma * Math.PI / 180, e.beta * Math.PI / 180);
+    }
+    else {
+      gameboy.GyroEvent(e.x, e.y);
+    }
+    try {
+      e.preventDefault();
+    }
+    catch (error) { }
+  }
+}
+//The emulator will call this to sort out the canvas properties for (re)initialization.
+function initNewCanvas() {
+  if (GameBoyEmulatorInitialized()) {
+    gameboy.canvas.width = gameboy.canvas.clientWidth;
+    gameboy.canvas.height = gameboy.canvas.clientHeight;
+  }
+}
+//Call this when resizing the canvas:
+function initNewCanvasSize() {
+  if (GameBoyEmulatorInitialized()) {
+    if (!settings[12]) {
+      if (gameboy.onscreenWidth != 160 || gameboy.onscreenHeight != 144) {
+        gameboy.initLCD();
+      }
+    }
+    else {
+      if (gameboy.onscreenWidth != gameboy.canvas.clientWidth || gameboy.onscreenHeight != gameboy.canvas.clientHeight) {
+        gameboy.initLCD();
+      }
+    }
+  }
+}
+
+// End of js/GameBoyIO.js file.
+
+// Start of realtime.js file.
+// ROM code from Public Domain LPC2000 Demo "realtime" by AGO.
+
+gameboy_rom='r+BPyZiEZwA+AeBPySAobeEq6gAgKlYj5WJv6SRmZjjhKuXqACDJ/////////////////////////////////xgHZwCYhGcA2fX6/3/1xdXlIRPKNgHN9f/h0cHx6gAg+hLKtyAC8cnwgLcoF/CC7hjgUT6Q4FOv4FLgVOCAPv/gVfHZ8IG3IALx2fBA7gjgQA8PD+YB7gHgT/CC4FHuEOCCPojgU6/gUuBU4IE+/uBV4ID6NMs86jTL8dkKCgoKbWFkZSBieSBhZ28uIGVtYWlsOmdvYnV6b3ZAeWFob28uY29tCnVybDogc3BlY2N5LmRhLnJ1CgoKCv///////wDDSgnO7WZmzA0ACwNzAIMADAANAAgRH4iJAA7czG7m3d3Zmbu7Z2NuDuzM3dyZn7u5Mz5BR08nUyBSRUFMVElNRSCAAAAAAgEDADMBSTQeIUD/y37I8P/1y4fg//BE/pEg+su+8eD/yT7A4EY+KD0g/cnF1eWvEQPK1RITEhMGAyEAyuXFTgYAIWAMCQkqEhMqEhPB4SMFIOrhrwYIzYsU4dHByf////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAgMFBggJCwwOEBETFBYXGBobHR4fISIjJSYnKSorLC0uLzAxMjM0NTY3ODg5Ojo7PDw9PT4+Pj8/Pz9AQEBAQEBAQEBAPz8/Pz4+PT08PDs7Ojk5ODc2NTU0MzIxMC8uLCsqKSgmJSQjISAfHRwaGRcWFRMSEA8NCwoIBwUEAgH//fz6+ff29PPx8O7t6+ro5+Xk4uHg3t3c2tnY19bU09LR0M/OzczLysnJyMfGxsXFxMPDw8LCwcHBwcDAwMDAwMDAwMDBwcHBwsLDw8PExcXGxsfIycnKy8zNzs/Q0dLT1NXX2Nna3N3e4OHi5OXn6Onr7O7v8fL09vf5+vz9AAEECRAZJDFAUWR5kKnE4QAhRGmQueQRQHGk2RBJhMEAQYTJEFmk8UCR5DmQ6UShAGHEKZD5ZNFAsSSZEIkEgQCBBIkQmSSxQNFk+ZApxGEAoUTpkDnkkUDxpFkQyYRBAMGESRDZpHFAEeS5kGlEIQDhxKmQeWRRQDEkGRAJBAEAAQQJEBkkMUBRZHmQqcThACFEaZC55BFAcaTZEEmEwQBBhMkQWaTxQJHkOZDpRKEAYcQpkPlk0UCxJJkQiQSBAIEEiRCZJLFA0WT5kCnEYQChROmQOeSRQPGkWRDJhEEAwYRJENmkcUAR5LmQaUQhAOHEqZB5ZFFAMSQZEAkEAQAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAgICAgIDAwMDBAQEBAUFBQUGBgYHBwcICAkJCQoKCgsLDAwNDQ4ODw8QEBEREhITExQUFRUWFxcYGRkaGhscHB0eHh8gISEiIyQkJSYnJygpKisrLC0uLzAxMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1FSU1RVVldZWltcXV9gYWJkZWZnaWprbG5vcHJzdHZ3eXp7fX5/gYKEhYeIiouNjpCRk5SWl5manJ2foKKkpaepqqytr7GytLa3ubu9vsDCxMXHycvMztDS1NXX2dvd3+Hi5Obo6uzu8PL09vj6/P4A//z38Ofcz8CvnIdwVzwfAN+8l3BHHO/Aj1wn8Ld8PwC/fDfwp1wPwG8cx3AXvF8AnzzXcAecL8BP3Gfwd/x/AH/8d/Bn3E/AL5wHcNc8nwBfvBdwxxxvwA9cp/A3fL8AP3y38Cdcj8DvHEdwl7zfAB88V3CHnK/Az9zn8Pf8/wD//Pfw59zPwK+ch3BXPB8A37yXcEcc78CPXCfwt3w/AL98N/CnXA/AbxzHcBe8XwCfPNdwB5wvwE/cZ/B3/H8Af/x38GfcT8AvnAdw1zyfAF+8F3DHHG/AD1yn8Dd8vwA/fLfwJ1yPwO8cR3CXvN8AHzxXcIecr8DP3Ofw9/z/AP/////////////////////+/v7+/v79/f39/fz8/Pz8+/v7+vr6+vn5+fj4+Pf39/b29fX19PTz8/Ly8fHw8PDv7u7t7ezs6+vq6uno6Ofn5uXl5OPj4uHh4N/e3t3c3Nva2djY19bV1NTT0tHQz8/OzczLysnIx8bFxMPCwcDAvr28u7q5uLe2tbSzsrGwr62sq6qpqKalpKOioJ+enZyamZiWlZSTkZCPjYyLiYiHhYSCgYB+fXt6eHd1dHJxcG5sa2loZmVjYmBfXVtaWFdVU1JQTk1LSUhGREJBPz08Ojg2NDMxLy0rKigmJCIgHx0bGRcVExEPDQsJBwUDAf9/Px8PBwMBgEAgEAgEAgEAAQEBAQEBAQEBAQEA//////////////+AEAcAAQABAAEBAAEBAAEA/wD//wD//wD/AP+AKwcBAAEAAQD/AP8A/wD/AP8A/wABAAEAAQCARgcBAQEBAQD//////////////wABAQEBAQGAYQf///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AwODw+Pz+/xEAwAGxwj4E9cU+BfUKbwMKZ37+gCALI34LAiN+AwILGOsahhIDHBwcHPE9IN7BIRAAGVRdPgX1Cm8DCmcalhIjfAILfQIDAx0dHR3xPSDnIRgAGVRd8T0grskRAcAB6cI+BPUKbwMKZ37+gCALI34LAiN+AwILGOs+CvUahhIcHBwc8T0g9CN8Agt9AgMD8T0g0MkgIEZJTExFRCAgIFBPTFlHT05TIEhFTElDT1BURVJJTiBBQ1RJT04gIQDADgpwLHQsGhPWICI2ACwNIPE+oOoQyngBCQDlYmsJVF3hDMYKR3AsdCwaG9YgIjYALA0g8a/qEcrJ+hDK/jDI1gTqEMpHPqCQ/lA4Aj5QDgAM1ggw+3ghAcARBAB3xggZDSD5+hHKg+oRykf+UDgCPlAOAAzWCDD7eC4td9YIGQ0g+ckh9grzMf/PzVABr+Am4P/gD+BD4EL2SOBFPkDgQT4E4AfN9RM+CuoAAA4HeeBwJqCvIstsKPsNIPIh/v8yy30g+wEKABH1/yFpAc3kE+cCAVYAEQDBIVt2zeQTrwYYIWsOzYsUIYsOzaQUxwGwAxEAgCGhF8XlzeQT4cERAIjN5BMhAJgRAwABYMDHcc9yIwUg+BQdIPHN9RMhuxUGAc2WE82JEz5E4EGv4EU+A+D/+z4B6hLK4E0QAAB4zccTBSD6zZATxwEACFkhAIhzIwt4sSD5IQDHPv9FdyRwJCJ3JXclcCwg8x5/IQCYx3PPNgDL1DYIx3PLlCPLVCjuPoABDxARIAAhIpjF5XfL1HfLlDwZDSD1POEswQUg7D486jPLr+o0yz3qL8s+oOCCPgLqG8vNiRM+ROBBr+BFPgPg/68+ACEXyyI+CiI+IHev6h7L4ITgluodyz4B6h/L6g/D6g3KBlARnAjNxAjNcwsBLAHFzTsLzQAJwQt4sSDzzZATxwEACFkhAIhzIwt4sSD5zfUTeQYQIYMOzYsUPv/qKcsGgBGwCM3ECM2JEwEsAcXNbAzNAAnBC3ixIPOv6hLKzZATPpDgU/PHAbADEQCIIaEXzeQTzfUTIQIWBgHNlhPNiRM+ROBBr+BFPgPg//sY/j4D6gAgzcRGBgMhF8t+gCJ+gDwifoB3zckP+jDLb/oxy2fNtgs+AeCB8IG3IPv6Dcq3KAPNcwHJ+h3LBgARTg2Hb2AZKmZvTgkq4ItfKjzgjD1PKuCNe4eHg0cRAMUqEhwFIPp5h4eBRxEAxCoSHAUg+n3qMMt86jHLyfCL4I7wjOCP8I3gkBEAw9XlzcoQ4dHwpeaAEhwBAwAJ8JA94JAg6CEAxQYPKk+gXxq3IB95yzegXxq3IBYqT6BfGrcgD3nLN6BfGrcgBiwsLBhHLOXNyhDwlrcoKwYB8KXGP0/LfygBBcXwpMY/Vx4AzZMOe8H18KPGP1ceAM2TDsHhJCJwGAzhJPCjxj8i8KTGPyIsJRbDBg/wjj3gjsLiCz4C6gAgw1JhfBjcHwAL7mpIYL9vBgMhF8t+gCJ+gDwifoB3zckPIcsNEQDGzf4MI+U+A+oAICEgy83+DPocy9YIb+ocy82vYAYDESDLIWIOxeXVzcoQ4fCjxhQi8KQiNg8jVF3hIyMjwQUg5M3ERsE+AeoAIAr+/ygiEQDGbyYAKRnlAwoDbyYAKRleI1bhKmZvxc0xHMwAQMEY2T4B4IHwgbcg+8l+PMjl1c3KEAYB8KVPy38oAQXF8KTLf/UoAi88Vx4AzZMO8XsgAi88xn/B9fCjy3/1KAIvPFceAM2TDvF7KAIvPMZ/wdESE3gSE+EjIyMYsFANAgAIDAYCRCgoFANEKAAUE0QAABQSRAAoFAJVKCjsA1UoAOwTVQAA7BJVACjsAAAEBQAAAAEFAAEBAwIGAQEDBwYCAgAHAwICAAcEAwMBAgYDAwEFBgQEAAECBAQAAwIFBQQFBgUFBAcGMgAAzgAAADIAAM4AAAAyAADOKAAAHhEAChEAAAAACu8AHu8AFAAKFAD2FAAPCgAF6AAC4gAQ3gAQ4gD+CgD74g4C3Q4C4QAC4vIC3fIC4AAM4PsM4PsQ4/sJ3fsJ/wABAQICAwMEBAUFAAAGAQYCBgMGBAYFBgAHAQcCBwMHBAcFBwYICQoKCwsMDA0NDgoPDxAQEQoSEhMTERQVFRYVFxUYCBkIGggb/yAAD/AbD/DlD/9//3+XEQAAAGD/f5cRAAAYAP9/lxEAAIB8lxH/f/9/QHz/f18IAADLI8sSeC9HeS9PAyEAAH2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEssoyxkJ0BPJ+hfLJgJvfuCcLzzgnn3GQG9+4Jvgn6/gmOCZ4JrgneChPkDgl/oYy29OfcZAb0bFeOCgeeCizdMQ8KPgpvCk4KnwpeCsr+Cg4KI+QOChzdMQ8KPgp/Ck4KrwpeCtwXkvPOCgr+CheOCizdMQ8KPgmfCk4JzwpeCf8Kbgl/Cp4JrwrOCd8KfgmPCq4JvwreCe+hnLJgJvTn3GQG9GxXjgoHkvPOChr+CizdMQ8KPgpvCk4KnwpeCswXngoHjgoa/gos3TEPCj4KfwpOCq8KXgra/goOChPkDgos3TEPCj4JnwpOCc8KXgn/Cm4JfwqeCa8KzgnfCn4JjwquCb8K3gnskq4KAq4KEq4KLwl1/woCYGV8t6ICDLe3soJy88X3qTMAIvPG96g1YlXiVvfiVuZxl8LzwYH3ovPFfLeyjhey88X5IwAi88b3qDViVeJW9+JW5nGXxH8Jhf8KEmBlfLeiAgy3t7KCcvPF96kzACLzxveoNWJV4lb34lbmcZfC88GB96LzxXy3so4XsvPF+SMAIvPG96g1YlXiVvfiVuZxl8T/CZX/CiJgZXy3ogIMt7eygnLzxfepMwAi88b3qDViVeJW9+JW5nGXwvPBgfei88V8t7KOF7LzxfkjACLzxveoNWJV4lb34lbmcZfICB4KPwml/woCYGV8t6ICDLe3soJy88X3qTMAIvPG96g1YlXiVvfiVuZxl8LzwYH3ovPFfLeyjhey88X5IwAi88b3qDViVeJW9+JW5nGXxH8Jtf8KEmBlfLeiAgy3t7KCcvPF96kzACLzxveoNWJV4lb34lbmcZfC88GB96LzxXy3so4XsvPF+SMAIvPG96g1YlXiVvfiVuZxl8T/CcX/CiJgZXy3ogIMt7eygnLzxfepMwAi88b3qDViVeJW9+JW5nGXwvPBgfei88V8t7KOF7LzxfkjACLzxveoNWJV4lb34lbmcZfICB4KTwnV/woCYGV8t6ICDLe3soJy88X3qTMAIvPG96g1YlXiVvfiVuZxl8LzwYH3ovPFfLeyjhey88X5IwAi88b3qDViVeJW9+JW5nGXxH8J5f8KEmBlfLeiAgy3t7KCcvPF96kzACLzxveoNWJV4lb34lbmcZfC88GB96LzxXy3so4XsvPF+SMAIvPG96g1YlXiVvfiVuZxl8T/CfX/CiJgZXy3ogIMt7eygnLzxfepMwAi88b3qDViVeJW9+JW5nGXwvPBgfei88V8t7KOF7LzxfkjACLzxveoNWJV4lb34lbmcZfICB4KXJ9T6D4EDxyfWv4EDxyfXF1eXHKv7/KFD+FiAaTiMqh4eHVF1vJgApKXgGmAlHelRne11vGNzGYBLPeBIcGNN2ACETyjQ1KPc1yfvFBmR2AAUg+8HJ+3YABSD7yfXF1eUqEhMLeLEg+OHRwfHJxeUBAKAhAMDNAxThwcnF5XEjBSD74cHJxdXlAQCAIZXKzQMU4dHBycXV5a/qFcuwIAwaEyIaEzIEDXjqFcvlxRq+EyAPIxq+IAkTIw0gCMHhGBkrGyMjBSDmecFPBBoTIhoTIiEVyzThDSDS+hXL4dHBydVfzXIUuzD60cnF9cH6FMrLD6mAR/CLkR+AR/AFqOoUysHJ9cXltxcXF/aA4Ggq4GkFIPo+5OBH4cHxyfXF5bcXFxf2gOBqKuBrBSD6PuTgSOBJ4cHxyT4Q4ADwAC/LN+bwRz4g4ADwAC/mD7DqFsvJzyEAgK8GIE8+CCINIPwFIPnHIQCABiBPIg0g/AUg+cnFzQMVSs0eFcHJxc0RFUjNGRVLzSMVwcnFBgHNKxXBycUGABj2xQYDGPHFBgLNKxXByfXlh4eAJsBvceHxyfXlh4cmwG9GI04jXiNW4fHJ9cXV5eCDKjzK8BPWIF/wg835FF95xghPezwY6PXF1eXF1c13FdHBex4FIS3LGNUBKssR8NjNlRURGPzNlRURnP/NlRUR9v/NlRUR//8+LzwZOPwCA3ovV3svXxMZyTAwRlBT/zAwUE5UU/8wMExJTkVT/xYFB1dFTENPTUUgVE8WBQgtUkVBTFRJTUUtFgAJREVNTyBNQURFIEVTUEVDSUFMTFkWAQpGT1IgTENQJzIwMDAgUEFSVFn/FgAAR1JFRVRJTlg6ICAgICAgICAgICAWAAFEU0MsUEFOLFNBQixGQVRBTElUWRYAAkpFRkYgRlJPSFdFSU4sSUNBUlVTFgADRE9YLFFVQU5HLEFCWVNTICAgICAWAAQgICAgICAgICAgICAgICAgICAgIBYABUNSRURJVFM6ICAgICAgICAgICAgFgAGQUxMIEdGWCZDT0RFIEJZIEFHTyAWAAdIRUxJQ09QVEVSIDNEIE1PREVMIBYACENSRUFURUQgQlkgQlVTWSAgICAgFgAJICAgICAgICAgICAgICAgICAgICAWAApVU0VEIFNPRlRXQVJFOiAgICAgIBYAC1JHQkRTLE5PJENBU0gsRkFSICAgFgAMICAgICAgICAgICAgICAgICAgICAWAA1DT05UQUNUOiAgICAgICAgICAgIBYADkdPQlVaT1ZAWUFIT08uQ09NICAgFgAPSFRUUDovL1NQRUNDWS5EQS5SVSAWABAgICAgICAgICAgICAgICAgICAgIBYAEVNFRSBZT1UgT04gR0JERVYyMDAw/wAAAAAAAAAAAAAAAAAAAAAICBwUHBQ4KDgoMDBwUCAgKCh8VHxUKCgAAAAAAAAAABQUPip/QT4qfFT+gnxUKCgICDw0fkL8rP6Cfmr8hHhYJCR+Wn5SPCR4SPyU/LRISBgYPCR+Wjwkflr8tH5KNDQQEDgocFAgIAAAAAAAAAAABAQOChwUOCg4KDgoHBQICBAQOCgcFBwUHBQ4KHBQICAAABQUPio8NH5CPCx8VCgoAAAICBwUPDR+QjwsOCgQEAAAAAAAAAAAEBA4KHBQcFAAAAAAAAB8fP6CfHwAAAAAAAAAAAAAAAAwMHhIeEgwMAQEDgoeEjwkeEjwkOCgQEAYGDwkflr+qv6q/LR4SDAwGBg8JHxUPDQ4KHxs/oJ8fBwcPiJ+Wjw0eEj8vP6CfHwcHD4iflo8NE5K/LR4SDAwJCR+Wn5afFT8tP6CfGwQEBwcPiJ8XPyEfnr8tHhIMDAYGDwkeFj8pP66/LR4SDAwPDx+Qv66XFQ4KHBQcFAgIBwcPiJ+Wjwkflr8tPiIcHAcHD4iflr+sn5KfHT4iHBwAAAAAAgIHBQICBAQOCgQEAAACAgcFAgIEBA4KDgocFAAAAAAHBQ4KHBQcFA4KAAAAAAAADw8fkJ8fPyEeHgAAAAAAAA4KBwUHBQ4KHBQAAAYGDwkflr8tHhoEBA4KBAQHBw+In5a/rL8pPi4+IhwcBwcPiJ+Wv66/oL+uvy0SEg4OHxEflr8pP6a/LT4iHBwHBw+In5a5qbgoP6y/IxwcDAweEh8VH5a7qr+uvyEeHgcHD4ifFx8RHhY/Lz+gnx8HBw+Inxc/IT4uOCg4KBAQBwcPiJ+Wvy8/qL+uvyEeHgkJH5a/rr+gv66/LT8tEhIPDx+QjwsOChwUHhY/IR4eDw8fkI+Og4KXFT8tHhIMDAkJH5afFR+Qv66/LT8tEhIICBwUHBQ4KDkpP66fEQ4OCgofFR+Qv6q/rr8tPy0SEgkJH5a/pr+qv6y7qr8tEhIHBw+In5a7qruqvy0+IhwcBwcPiJ+Wv66/IT4uOCgQEAcHD4iflr+uv6q/LT+inZ2HBw+In5a/LT4iPy0/LRISBwcPiJ8XP6Cfnr8tPiIcHB8fP6CfGw4KHBQcFBwUCAgJCR+Wn5a7qruqvy0eEgwMERE7qruqnxUfFR4SHBQICAkJH5aflr+uv6q/KR8VCgoJCR+WnxUOCg8JH5a/LRISCQkflr8tPy0eEhwUHBQICA8PH5C/LT46Dwsflr8hHh4HBw+IjwsOChwUHhYfEQ4OEBA4KDwkHhIPCQeEg4KBAQ4OHxEPDQcFDgoeGj4iHBwGBg8JH5a7qpERAAAAAAAAAAAAAAAAAAAAAB8fP6CfHx81rdPfJJne5X1MAIvPEevyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxnLEcsXlDABhMsRyxeUMAGEyxHLF5QwAYTLEcsXlDABhMsRyxeUMAGEyxHLF5QwAYTLEcsXlDABhMsRyxeUMAGEeRcvT/F5MAIvPIVvJrcBAAA+t7zLEbrLED6/vcsRu8sQPj+8P8sRuj/LEL0/yxG7P8sQeLHIeKHAebcgB3xiV31rX3jLH9L/HD5AlU97lW96lPUwAi88R6/LGTABgB/LGTABgB/LGTABgB/LGTABgB/LGTABgB/LGTABgB/LGTABgB/LGTABgB/LGcsRyxeVMAGFyxHLF5UwAYXLEcsXlTABhcsRyxeVMAGFyxHLF5UwAYXLEcsXlTABhcsRyxeVMAGFyxHLF5UwAYV5Fy9P8XkwAi88hGcuQMMxHMsf0pcdPkCUT3qUZ3uV9TACLzxHr8sZMAGAH8sZMAGAH8sZMAGAH8sZMAGAH8sZMAGAH8sZMAGAH8sZMAGAH8sZMAGAH8sZyxHLF5QwAYTLEcsXlDABhMsRyxeUMAGEyxHLF5QwAYTLEcsXlDABhMsRyxeUMAGEyxHLF5QwAYTLEcsXlDABhHkXL0/xeTACLzyFbyZAwzEcyx/SoRt91r9PfZNvepT1MAIvPEevyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxnLEcsXlTABhcsRyxeVMAGFyxHLF5UwAYXLEcsXlTABhcsRyxeVMAGFyxHLF5UwAYXLEcsXlTABhcsRyxeVMAGFeRcvT/F5MAIvPIRnLr/DMRz//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3q8MAVUZ3tdb3u90pdAfZNPepRfkTA+V3nLPy88g+CDPn+R5YdPbyYARCkpKQkBkVIJweV41kAXb3nWQB8fH+YPZ/CChGd55gcGB/YITwpP8INHLMl5S1+RV3nLPy88g+CDPneR5YdPbyYARCkpKQkBklsJweV41kAXb3nWQB8fH+YPZ/CChGd55gcGB/YITwpP8INHLMmVT3qUX5EwPld5yz8vPIPggz5/keWHT28mAEQpKSkJAR9BCcHleNZAF2951kAfHx/mD2fwgoRneeYHBgf2CE8KT/CDRyzJeUtfkVd5yz8vPIPggz53keWHT28mAEQpKSkJASBKCcHleNZAF2951kAfHx/mD2fwgoRneeYHBgf2CE8KT/CDRyzJfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkyX6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALMl+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASXJfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsyf///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wHRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyIxDsrh+eEWwxgNIf3Er+oLyuoMyiwsLPCPPcjgj14sGrcqKPDGeeCT+g3Ktygm+gvKPP4DIAI+AeoLyiAH+gzKPOoMyvoMyl8WyvCT1nkSe8bH4JMqTypHKuUmxl+Hh4M8PG8qX1Z5h4eBPDxveE4sh4eARjw8bypmb3y6OAViV31rX3y4OAVgR31pT3q4OAVQR3tZT3iU4JR8h+CV5dXFr+CSzUpifeCS0eHVzUpi0eE+AeCSzUpi8JRfPniTZy5Hr8sdMAGEH8sdMAGEH8sdMAGEH8sdMAGEH8sdMAGEH8sdMAGEH8sdMAGEH8sdMAGEH8sdxkBnCA7KMQDC5fCVb8l7vTBVfZNPepRfkTAkV3nLPy88Rz5/kU3Fh09vJgBEKSkJAfdiCcHlJsLwkm94BoDJeUtfkVd5yz8vPEc+d5FNxYdPbyYARCkpCQH4ZwnB5SbC8JJveAaAyZVPepRfkTAkV3nLPy88Rz5/kU3Fh09vJgBEKSkJAalsCcHlJsLwkm94BoDJeUtfkVd5yz8vPEc+d5FNxYdPbyYARCkpCQGqcQnB5SbC8JJveAaAyYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNyXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDcmDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDMlxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggzJxg+Hh+oawXovpl96obMiei+mX3qgszIkeRgAInAtJCJwLSQicC0kInAtJCJwLSQicC0kInAtJCJwLSQicC0kInAtJCJwLSQicC0kInAtJCJwLSQW/8n///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+qqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVACEzDDPAABIAEjPAMwwAIQAhMwwzwAASABIzwDMMACEAITMMM8AAEgASM8AzDAAhACEzDDPAABIAEjPAMwwAIQAhMwwzwAASABIzwDMMACEAITMMM8AAEgASM8AzDAAhACEzDDPAABIAEjPAMwwAIQAhMwwzwAASABIzwDMMACEAITMMM8AAEgASM8AzDAAhACEzDDPAABIAEjPAMwwAIQAhMwwzwAASABIzwDMMACEAITMMM8AAEgASM8AzDAAhACEzDDPAABIAEjPAMwwAIQAhMwwzwAASABIzwDMMACEAITMMM8AAEgASM8AzDAAhACEzDDPAABIAEjPAMwwAIQj8GH4y/WT7wO+B50CzINkI/Bh+Mv1k+8DvgedAsyDZCPwYfjL9ZPvA74HnQLMg2Qj8GH4y/WT7wO+B50CzINkI/Bh+Mv1k+8DvgedAsyDZCPwYfjL9ZPvA74HnQLMg2Qj8GH4y/WT7wO+B50CzINkI/Bh+Mv1k+8DvgedAsyDZCPwYfjL9ZPvA74HnQLMg2Qj8GH4y/WT7wO+B50CzINkI/Bh+Mv1k+8DvgedAsyDZCPwYfjL9ZPvA74HnQLMg2Qj8GH4y/WT7wO+B50CzINkI/Bh+Mv1k+8DvgedAsyDZCPwYfjL9ZPvA74HnQLMg2Qj8GH4y/WT7wO+B50CzINnMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDPHxAQEBAQEBHx8QEBAQEBDx8QEBAQEBAR8fEBAQEBAQ8fEBAQEBAQEfHxAQEBAQEPHxAQEBAQEBHx8QEBAQEBDx8QEBAQEBAR8fEBAQEBAQ8fEBAQEBAQEfHxAQEBAQEPHxAQEBAQEBHx8QEBAQEBDx8QEBAQEBAR8fEBAQEBAQ8fEBAQEBAQEfHxAQEBAQEPHxAQEBAQEBHx8QEBAQEBDx8QEBAQEBAR8fEBAQEBAQ8fEBAQEBAQEfHxAQEBAQEPHxAQEBAQEBHx8QEBAQEBDx8QEBAQEBAR8fEBAQEBAQ8fEBAQEBAQEfHxAQEBAQEPHxAQEBAQEBHx8QEBAQEBCqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlUC4XIscAl7InAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJLCwly2XIJGjJycnJyeEicAlyLHAJeyJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSwsJctlyCRoycnJycnhInAJInAJcixwCXsicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCXLZcgkaMnJycnJ4SJwCSJwCSJwCXIscAl7InAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJLCwly2XIJGjJycnJyeEicAkicAkicAkicAlyLHAJeyJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSwsJctlyCRoycnJycnhInAJInAJInAJInAJInAJcixwCXsicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCXLZcgkaMnJycnJ4SJwCSJwCSJwCSJwCSJwCSJwCXIscAl7InAJInAJInAJInAJInAJInAJInAJInAJInAJLCwly2XIJGjJycnJyeEicAkicAkicAkicAkicAkicAkicAlyLHAJeyJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSwsJctlyCRoycnJycnhInAJInAJInAJInAJInAJInAJInAJInAJcixwCXsicAkicAkicAkicAkicAkicAkicAksLCXLZcgkaMnJycnJ4SJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCXIscAl7InAJInAJInAJInAJInAJInAJLCwly2XIJGjJycnJyeEicAkicAkicAkicAkicAkicAkicAkicAkicAkicAlyLHAJeyJwCSJwCSJwCSJwCSJwCSwsJctlyCRoycnJycnhInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJcixwCXsicAkicAkicAkicAksLCXLZcgkaMnJycnJ4SJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCXIscAl7InAJInAJInAJLCwly2XIJGjJycnJyeEicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAlyLHAJeyJwCSJwCSwsJctlyCRoycnJycnhInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJcixwCXsicAksLCXLZcgkaMnJycnJ4SJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCXIscAl7LCwly2XIJGjJycnJydE+t5LI4IXmB8RSRPCFHx8focjlzTJE4XkicCwicCwicCwicCwicCwicCwicCwicCzJ+ABUXWhHeZAfyx1nATNZCfCCMQCv/qAoAzEAvwH/AOlHPgeQVF1HDjOvyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxlHIbRXCeViaz7/AQ8Ayfoay2/6G8uFZ/4UIAU+/y0YBtbsIAU8LOoby3zqGsvNr2AhlEbNyhDwpMagV/Cjxn9f1SGXRs3KEPCkxqBn8KPGf2/RzTEcKAsf2hhZH9oYWcPERny6OAViV31rX+XNmkbh1Xu90sxFe9ZA4Ih9k0884Il6lF/ghjzgij2RMGvgh3nLPy88g+CF8IIBDwBvVHzWQBfLN6GFZ3rmBxdvGAjwij3KAETgivCJX/CGV/CFGASCHSgLy38g+Ffwh4LghR3NYkUY2nvgifCIg1/l5gf2CG8mB1Z7aB8fHx/LHR/LHeYDxkBnrx7/6XnghpPgh3vLPy88geCF8IIBDwBvVHzWQBfLN6GFZ3rmBxdv8Ilf8IZX8IXLfyAHV/CHgh0YAYLghc1iRfCKPcoAROCKGN171kDgiHuVTzzgiXqUX+CGPOCKPZEwa+CHecs/LzyD4IXwggEPAG9UfNZAF8s3oYVneuYHF28YCPCKPcoAROCK8Ilf8IZX8IUYBIIdKAvLfyD4V/CHguCFHc0qRhjae+CJ8IiTX+XmB/YQbyYHVntoHx8fH8sdH8sd5gPGQGc+/1jpeeCGk+CHe8s/LzyB4IXwggEPAG9UfNZAF8s3oYVneuYHF2/wiV/whlfwhct/IAdX8IeCHRgBguCFzSpG8Io9ygBE4IoY3UYAALoAAHzWQMhPHx8f5h9HeeYHKAsE/gUwBvUhylblBT4PkCHJRoRn5fCCZ69vyfCCZ69vIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIsnxAQ8APcqEVz0odj0oOj0idwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwksLCXLZSgCJGgidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwksLCXLZSgCJGgidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwksLCXLZSgCJGgidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkid8kicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAloyfgAVF3wgjEAr/6gKAMxAL8B/wDFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcVia/nJJgJ+4JovPOCYfcZAb37gl+Cbr+CZ4JzgneCePkDgn8n/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Aw==';
+
+// End of realtime.js file.
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-114-precomposed.png b/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-114-precomposed.png
new file mode 100644
index 0000000..1cf1cbd
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-114-precomposed.png
Binary files differ
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-144-precomposed.png b/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-144-precomposed.png
new file mode 100644
index 0000000..b791e90
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-144-precomposed.png
Binary files differ
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-57-precomposed.png b/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-57-precomposed.png
new file mode 100644
index 0000000..af5458b
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-57-precomposed.png
Binary files differ
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-72-precomposed.png b/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-72-precomposed.png
new file mode 100644
index 0000000..e5529b9
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/ico/apple-touch-icon-72-precomposed.png
Binary files differ
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/ico/favicon.ico b/suite/pts/deviceTests/browserbench/assets/octane/ico/favicon.ico
new file mode 100644
index 0000000..8a05c14
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/ico/favicon.ico
Binary files differ
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/index.html b/suite/pts/deviceTests/browserbench/assets/octane/index.html
new file mode 100644
index 0000000..9c072d6
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/index.html
@@ -0,0 +1,392 @@
+<!DOCTYPE html>
+<!-- Copyright 2012 the Octane project authors. Scroll to the end for full license -->
+<html lang="en">
+<head>
+<meta http-equiv="X-UA-Compatible" value="IE=edge"/>
+<meta charset="utf-8"/>
+<title>Octane JavaScript Benchmark</title>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta http-equiv="Content-Script-Type" content="text/javascript">
+<meta name="description"
+  content="Octane JavaScript Benchmark - the Javascript benchmark for the modern web">
+<meta name="author" content="Octane Team Google">
+<!-- twitter bootstrap code -->
+<script src="js/jquery.js"></script>
+<script src="js/bootstrap-transition.js"></script>
+<script src="js/bootstrap-collapse.js"></script>
+<!-- Octane benchmark code -->
+<!-- PTS -->
+<script type="text/javascript" src="pts_report.js"></script>
+<script type="text/javascript" src="base.js"></script>
+<script type="text/javascript" src="richards.js"></script>
+<script type="text/javascript" src="deltablue.js"></script>
+<script type="text/javascript" src="crypto.js"></script>
+<script type="text/javascript" src="raytrace.js"></script>
+<script type="text/javascript" src="earley-boyer.js"></script>
+<script type="text/javascript" src="regexp.js"></script>
+<script type="text/javascript" src="splay.js"></script>
+<script type="text/javascript" src="navier-stokes.js"></script>
+<script type="text/javascript" src="pdfjs.js"></script>
+<script type="text/javascript" src="mandreel.js"></script>
+<script type="text/javascript" src="gbemu.js"></script>
+<script type="text/javascript" src="code-load.js"></script>
+<script type="text/javascript" src="box2d.js"></script>
+
+<script type="text/javascript">
+  var completed = 0;
+  var benchmarks = BenchmarkSuite.CountBenchmarks();
+  var success = true;
+
+  function ShowBox(name) {
+    var box = document.getElementById("Box-" + name);
+    box.style.visibility = 'visible';
+    var bar = document.getElementById("progress-bar").style.width = ""
+        + ((++completed) / benchmarks) * 100 + "%";
+  }
+
+  function AddResult(name, result) {
+    //PTS
+    PtsReport(name, result, false);
+    var box = document.getElementById("Result-" + name);
+    box.innerHTML = result;
+  }
+
+  function AddError(name, error) {
+    console.log(error);
+    if (error == "TypedArrayUnsupported") {
+      AddResult(name, '<b>Unsupported<\/b>');
+    } else {
+      AddResult(name, '<b>Error</b>');
+    }
+    success = false;
+  }
+
+  function AddScore(score) {
+    var status = document.getElementById("main-banner");
+    if (success) {
+      status.innerHTML = "Octane Score: " + score;
+    } else {
+      status.innerHTML = "Octane Score (incomplete): " + score;
+    }
+    //PTS
+    PtsReport("Octane Score" + (success ? " " : "(incomplete)"), score, true);
+    document.getElementById("progress-bar-container").style.visibility = 'hidden';
+    document.getElementById("bottom-text").style.visibility = 'visible';
+    document.getElementById("inside-anchor").removeChild(document.getElementById("bar-appendix"));
+  }
+
+  function Run() {
+    document.getElementById("main-banner").innerHTML = "Running Octane...";
+    // append the progress bar elements..
+    document.getElementById("bar-appendix").innerHTML = "<br/><div class=\"progress progress-striped\" id=\"progress-bar-container\" style=\"visibility:hidden\"><div class=\"bar\"style=\"width: 0%;\" id=\"progress-bar\"></div></div>";
+    var anchor = document.getElementById("run-octane");
+    var parent = document.getElementById("main-container");
+    parent.appendChild(document.getElementById("inside-anchor"));
+    parent.removeChild(anchor);
+
+    document.getElementById("startup-text").innerHTML="";
+
+    document.getElementById("progress-bar-container").style.visibility = 'visible';
+
+    BenchmarkSuite.RunSuites({
+      NotifyStart : ShowBox,
+      NotifyError : AddError,
+      NotifyResult : AddResult,
+      NotifyScore : AddScore
+    });
+  }
+
+  function CheckCompatibility() {
+    // If no Typed Arrays support, show warning label.
+    var hasTypedArrays = typeof Uint8Array != "undefined"
+        && typeof Float64Array != "undefined"
+        && typeof (new Uint8Array(0)).subarray != "undefined";
+
+    if (!hasTypedArrays) {
+      console.log("Typed Arrays not supported");
+      document.getElementById("alertbox").style.display="block";
+    }
+    if (window.document.URL.indexOf('auto=1') >= 0)
+      Run();
+  }
+
+  function Load() {
+    setTimeout(CheckCompatibility, 200);
+  }
+</script>
+<!-- end Octane benchmark code -->
+
+<!-- Le styles -->
+<link href="css/bootstrap.css" rel="stylesheet">
+<style>
+body {
+  padding-top: 60px;
+  /* 60px to make the container go all the way to the bottom of the topbar */
+}
+</style>
+<link href="css/bootstrap-responsive.css" rel="stylesheet">
+
+<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
+<!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+<![endif]-->
+
+<!-- Le fav and touch icons -->
+<!-- TODO update icons -->
+<link rel="shortcut icon" href="ico/favicon.ico">
+<link rel="apple-touch-icon-precomposed" sizes="144x144"
+  href="ico/apple-touch-icon-144-precomposed.png">
+<link rel="apple-touch-icon-precomposed" sizes="114x114"
+  href="ico/apple-touch-icon-114-precomposed.png">
+<link rel="apple-touch-icon-precomposed" sizes="72x72"
+  href="ico/apple-touch-icon-72-precomposed.png">
+<link rel="apple-touch-icon-precomposed"
+  href="ico/apple-touch-icon-57-precomposed.png">
+</head>
+
+<body onLoad="Load()">
+
+  <div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+
+      <div class="container">
+
+        <a class="brand" href="#">Octane v1</a>
+       
+        <!--/.nav-collapse -->
+      </div>
+
+    </div>
+  </div>
+
+  <div class="container">
+    <div class="alert" style="display:none" id="alertbox">
+       <strong>Warning</strong> This JavaScript engine does not support Typed Arrays. You might want to run the <a href="http://v8.googlecode.com/svn/data/benchmarks/v7/run.html">V8 benchmark v7</a> instead.
+    </div>
+    <div id="main-container">
+    <a id="run-octane" href="javascript:Run()">
+      <div class="hero-unit" id="inside-anchor">
+        <h1 align="center" id="main-banner">Start Octane</h1>
+        <div id="bar-appendix"></div>
+      </div>
+    </a>
+    </div>
+
+    <div id="startup-text" style="color:white;" align="center">
+      Welcome to Octane, a JavaScript benchmark for the modern web. For more accurate results, <a href="http://developers.google.com/octane/benchmark">start the browser anew</a> before running the test. Refer to the <a href="http://developers.google.com/octane">documentation</a> for more information on Octane.
+    </div>
+
+    <div class="header"></div>
+
+    <div class="content">
+      <div class="row">
+        <div class="span3">
+          <!-- TODO STE change all links from staging to devsite -->
+          <div class="box" id="Box-Richards" style="visibility: hidden;">
+            <a href="http://developers.google.com/octane/benchmark#richards"
+              target="_blank" style="float:left; color:#994520">Richards</a>
+   
+            <span class="p-result" id="Result-Richards" style="float:right">...</span>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Core
+              language features</span>
+          </div>
+
+        </div>
+        <div class="span3">
+          <div class="box" id="Box-DeltaBlue" style="visibility: hidden;">
+            <a href="http://developers.google.com/octane/benchmark#deltablue"
+              target="_blank" style="float:left; color:#994520">Deltablue</a>
+           
+            <p class="p-result" id="Result-DeltaBlue" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Core
+              language features</span>
+          </div>
+        </div>
+        <div class="span3">
+          <div class="box" id="Box-Crypto" style="visibility: hidden;">
+            <a href="http://developers.google.com/octane/benchmark#crypto"
+              target="_blank" style="float:left; color:#994520">Crypto</a>
+           
+            <p class="p-result" id="Result-Crypto" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Bit &
+              Math operations</span>
+          </div>
+        </div>
+        <div class="span3">
+          <div class="box" id="Box-RayTrace" style="visibility: hidden;">
+            <a href="http://developers.google.com/octane/benchmark#raytrace"
+              target="_blank" style="float:left; color:#994520">Raytrace</a>
+   
+            <p class="p-result" id="Result-RayTrace" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Core
+              language features</span>
+          </div>
+        </div>
+
+      </div>
+      <!-- /row -->
+
+      <div class="row">
+
+        <div class="span3">
+          <div class="box" id="Box-EarleyBoyer" style="visibility: hidden;">
+            <a
+              href="http://developers.google.com/octane/benchmark#earleyboyer"
+              target="_blank" style="float:left; color:#994520">EarleyBoyer</a>
+           
+            <p class="p-result" id="Result-EarleyBoyer" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Memory
+              & GC</span>
+          </div>
+        </div>
+        <div class="span3">
+          <div class="box" id="Box-RegExp" style="visibility: hidden;">
+            <a href="http://developers.google.com/octane/benchmark#regexp"
+              target="_blank" style="float:left; color:#994520">Regexp</a>
+           
+            <p class="p-result" id="Result-RegExp" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Strings
+              & arrays</span>
+          </div>
+        </div>
+        <div class="span3">
+          <div class="box" id="Box-Splay" style="visibility: hidden;">
+            <a href="http://developers.google.com/octane/benchmark#splay"
+              target="_blank" style="float:left; color:#994520">Splay</a>
+           
+            <p class="p-result" id="Result-Splay" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Memory
+              & GC</span>
+          </div>
+        </div>
+        <div class="span3">
+          <div class="box" id="Box-NavierStokes" style="visibility: hidden;">
+            <a
+              href="http://developers.google.com/octane/benchmark#navierstokes"
+              target="_blank" style="float:left; color:#994520">NavierStokes</a>
+           
+            <p class="p-result" id="Result-NavierStokes" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Strings
+              & arrays</span>
+          </div>
+        </div>
+
+      </div>
+      <!-- /row -->
+
+      <div class="row">
+        <div class="span3">
+          <div class="box" id="Box-PdfJS" style="visibility: hidden;">
+            <a href="http://developers.google.com/octane/benchmark#pdfjs"
+              target="_blank" style="float:left; color:#994520">pdf.js</a>
+           
+            <p class="p-result" id="Result-PdfJS" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Strings
+              & arrays</span>
+          </div>
+        </div>
+        <div class="span3">
+          <div class="box" id="Box-Mandreel" style="visibility: hidden;">
+            <a href="http://developers.google.com/octane/benchmark#mandreel"
+              target="_blank" style="float:left; color:#994520">Mandreel</a>
+           
+            <p class="p-result" id="Result-Mandreel" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Virtual
+              machine</span>
+          </div>
+        </div>
+        <div class="span3">
+          <div class="box" id="Box-Gameboy" style="visibility: hidden;">
+            <a
+              href="http://developers.google.com/octane/benchmark#gameboyemulator"
+              target="_blank" style="float:left; color:#994520">GB Emulator</a>
+           
+            <p class="p-result" id="Result-Gameboy" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Virtual
+              machine</span>
+          </div>
+        </div>
+        <div class="span3">
+          <div class="box" id="Box-CodeLoad" style="visibility: hidden;">
+            <a href="http://developers.google.com/octane/benchmark#codeload"
+              target="_blank" style="float:left; color:#994520">CodeLoad</a>
+           
+            <p class="p-result" id="Result-CodeLoad" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Loading
+              & Parsing</span>
+          </div>
+        </div>
+
+      </div>
+      <!-- /row -->
+
+      <div class="row">
+        <div class="span3">
+          <div class="box" id="Box-Box2D" style="visibility: hidden;">
+            <a href="http://developers.google.com/octane/benchmark#box2d"
+              target="_blank" style="float:left; color:#994520">Box2DWeb</a>
+           
+            <p class="p-result" id="Result-Box2D" style="float:right">...</p>
+            <span class="label-simple"
+              style="position: absolute; bottom: 3px; left: 3px;">Bit &
+              Math operations</span>
+          </div>
+        </div>
+
+      </div>
+      <!-- /row -->
+
+    </div>
+    <!-- /content -->
+
+    <div id="bottom-text" style="color:white; visibility:hidden" align="center">
+      <br></br>
+       The final score is the <a href="http://en.wikipedia.org/wiki/Geometric_mean#Properties">geometric mean</a> of the single scores. We suggest to restart the browser before repeating the test.
+    </div>
+
+  </div>
+  <!-- /container -->
+
+</body>
+</html>
+
+<!--
+// Copyright 2012 the Octane project authors. 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.
+//     * Neither the name of Google Inc. 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 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.
+-->
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/js/bootstrap-collapse.js b/suite/pts/deviceTests/browserbench/assets/octane/js/bootstrap-collapse.js
new file mode 100644
index 0000000..fbc915b
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/js/bootstrap-collapse.js
@@ -0,0 +1,157 @@
+/* =============================================================
+ * bootstrap-collapse.js v2.0.4
+ * http://twitter.github.com/bootstrap/javascript.html#collapse
+ * =============================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ============================================================ */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* COLLAPSE PUBLIC CLASS DEFINITION
+  * ================================ */
+
+  var Collapse = function (element, options) {
+    this.$element = $(element)
+    this.options = $.extend({}, $.fn.collapse.defaults, options)
+
+    if (this.options.parent) {
+      this.$parent = $(this.options.parent)
+    }
+
+    this.options.toggle && this.toggle()
+  }
+
+  Collapse.prototype = {
+
+    constructor: Collapse
+
+  , dimension: function () {
+      var hasWidth = this.$element.hasClass('width')
+      return hasWidth ? 'width' : 'height'
+    }
+
+  , show: function () {
+      var dimension
+        , scroll
+        , actives
+        , hasData
+
+      if (this.transitioning) return
+
+      dimension = this.dimension()
+      scroll = $.camelCase(['scroll', dimension].join('-'))
+      actives = this.$parent && this.$parent.find('> .accordion-group > .in')
+
+      if (actives && actives.length) {
+        hasData = actives.data('collapse')
+        if (hasData && hasData.transitioning) return
+        actives.collapse('hide')
+        hasData || actives.data('collapse', null)
+      }
+
+      this.$element[dimension](0)
+      this.transition('addClass', $.Event('show'), 'shown')
+      this.$element[dimension](this.$element[0][scroll])
+    }
+
+  , hide: function () {
+      var dimension
+      if (this.transitioning) return
+      dimension = this.dimension()
+      this.reset(this.$element[dimension]())
+      this.transition('removeClass', $.Event('hide'), 'hidden')
+      this.$element[dimension](0)
+    }
+
+  , reset: function (size) {
+      var dimension = this.dimension()
+
+      this.$element
+        .removeClass('collapse')
+        [dimension](size || 'auto')
+        [0].offsetWidth
+
+      this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
+
+      return this
+    }
+
+  , transition: function (method, startEvent, completeEvent) {
+      var that = this
+        , complete = function () {
+            if (startEvent.type == 'show') that.reset()
+            that.transitioning = 0
+            that.$element.trigger(completeEvent)
+          }
+
+      this.$element.trigger(startEvent)
+
+      if (startEvent.isDefaultPrevented()) return
+
+      this.transitioning = 1
+
+      this.$element[method]('in')
+
+      $.support.transition && this.$element.hasClass('collapse') ?
+        this.$element.one($.support.transition.end, complete) :
+        complete()
+    }
+
+  , toggle: function () {
+      this[this.$element.hasClass('in') ? 'hide' : 'show']()
+    }
+
+  }
+
+
+ /* COLLAPSIBLE PLUGIN DEFINITION
+  * ============================== */
+
+  $.fn.collapse = function (option) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('collapse')
+        , options = typeof option == 'object' && option
+      if (!data) $this.data('collapse', (data = new Collapse(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  $.fn.collapse.defaults = {
+    toggle: true
+  }
+
+  $.fn.collapse.Constructor = Collapse
+
+
+ /* COLLAPSIBLE DATA-API
+  * ==================== */
+
+  $(function () {
+    $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) {
+      var $this = $(this), href
+        , target = $this.attr('data-target')
+          || e.preventDefault()
+          || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
+        , option = $(target).data('collapse') ? 'toggle' : $this.data()
+      $(target).collapse(option)
+    })
+  })
+
+}(window.jQuery);
\ No newline at end of file
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/js/bootstrap-transition.js b/suite/pts/deviceTests/browserbench/assets/octane/js/bootstrap-transition.js
new file mode 100644
index 0000000..5341826
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/js/bootstrap-transition.js
@@ -0,0 +1,61 @@
+/* ===================================================
+ * bootstrap-transition.js v2.0.4
+ * http://twitter.github.com/bootstrap/javascript.html#transitions
+ * ===================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ========================================================== */
+
+
+!function ($) {
+
+  $(function () {
+
+    "use strict"; // jshint ;_;
+
+
+    /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
+     * ======================================================= */
+
+    $.support.transition = (function () {
+
+      var transitionEnd = (function () {
+
+        var el = document.createElement('bootstrap')
+          , transEndEventNames = {
+               'WebkitTransition' : 'webkitTransitionEnd'
+            ,  'MozTransition'    : 'transitionend'
+            ,  'OTransition'      : 'oTransitionEnd'
+            ,  'msTransition'     : 'MSTransitionEnd'
+            ,  'transition'       : 'transitionend'
+            }
+          , name
+
+        for (name in transEndEventNames){
+          if (el.style[name] !== undefined) {
+            return transEndEventNames[name]
+          }
+        }
+
+      }())
+
+      return transitionEnd && {
+        end: transitionEnd
+      }
+
+    })()
+
+  })
+
+}(window.jQuery);
\ No newline at end of file
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/js/jquery.js b/suite/pts/deviceTests/browserbench/assets/octane/js/jquery.js
new file mode 100644
index 0000000..00c4e23
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/js/jquery.js
@@ -0,0 +1,9252 @@
+/*! jQuery v1.7.1 jquery.com | jquery.org/license */
+(function( window, undefined ) {
+
+// Use the correct document accordingly with window argument (sandbox)
+var document = window.document,
+	navigator = window.navigator,
+	location = window.location;
+var jQuery = (function() {
+
+// Define a local copy of jQuery
+var jQuery = function( selector, context ) {
+		// The jQuery object is actually just the init constructor 'enhanced'
+		return new jQuery.fn.init( selector, context, rootjQuery );
+	},
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$,
+
+	// A central reference to the root jQuery(document)
+	rootjQuery,
+
+	// A simple way to check for HTML strings or ID strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
+
+	// Check if a string has a non-whitespace character in it
+	rnotwhite = /\S/,
+
+	// Used for trimming whitespace
+	trimLeft = /^\s+/,
+	trimRight = /\s+$/,
+
+	// Match a standalone tag
+	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+
+	// JSON RegExp
+	rvalidchars = /^[\],:{}\s]*$/,
+	rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+	rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+
+	// Useragent RegExp
+	rwebkit = /(webkit)[ \/]([\w.]+)/,
+	ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
+	rmsie = /(msie) ([\w.]+)/,
+	rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
+
+	// Matches dashed string for camelizing
+	rdashAlpha = /-([a-z]|[0-9])/ig,
+	rmsPrefix = /^-ms-/,
+
+	// Used by jQuery.camelCase as callback to replace()
+	fcamelCase = function( all, letter ) {
+		return ( letter + "" ).toUpperCase();
+	},
+
+	// Keep a UserAgent string for use with jQuery.browser
+	userAgent = navigator.userAgent,
+
+	// For matching the engine and version of the browser
+	browserMatch,
+
+	// The deferred used on DOM ready
+	readyList,
+
+	// The ready event handler
+	DOMContentLoaded,
+
+	// Save a reference to some core methods
+	toString = Object.prototype.toString,
+	hasOwn = Object.prototype.hasOwnProperty,
+	push = Array.prototype.push,
+	slice = Array.prototype.slice,
+	trim = String.prototype.trim,
+	indexOf = Array.prototype.indexOf,
+
+	// [[Class]] -> type pairs
+	class2type = {};
+
+jQuery.fn = jQuery.prototype = {
+	constructor: jQuery,
+	init: function( selector, context, rootjQuery ) {
+		var match, elem, ret, doc;
+
+		// Handle $(""), $(null), or $(undefined)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Handle $(DOMElement)
+		if ( selector.nodeType ) {
+			this.context = this[0] = selector;
+			this.length = 1;
+			return this;
+		}
+
+		// The body element only exists once, optimize finding it
+		if ( selector === "body" && !context && document.body ) {
+			this.context = document;
+			this[0] = document.body;
+			this.selector = selector;
+			this.length = 1;
+			return this;
+		}
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			// Are we dealing with HTML string or an ID?
+			if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = quickExpr.exec( selector );
+			}
+
+			// Verify a match, and that no context was specified for #id
+			if ( match && (match[1] || !context) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[1] ) {
+					context = context instanceof jQuery ? context[0] : context;
+					doc = ( context ? context.ownerDocument || context : document );
+
+					// If a single string is passed in and it's a single tag
+					// just do a createElement and skip the rest
+					ret = rsingleTag.exec( selector );
+
+					if ( ret ) {
+						if ( jQuery.isPlainObject( context ) ) {
+							selector = [ document.createElement( ret[1] ) ];
+							jQuery.fn.attr.call( selector, context, true );
+
+						} else {
+							selector = [ doc.createElement( ret[1] ) ];
+						}
+
+					} else {
+						ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
+						selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes;
+					}
+
+					return jQuery.merge( this, selector );
+
+				// HANDLE: $("#id")
+				} else {
+					elem = document.getElementById( match[2] );
+
+					// Check parentNode to catch when Blackberry 4.6 returns
+					// nodes that are no longer in the document #6963
+					if ( elem && elem.parentNode ) {
+						// Handle the case where IE and Opera return items
+						// by name instead of ID
+						if ( elem.id !== match[2] ) {
+							return rootjQuery.find( selector );
+						}
+
+						// Otherwise, we inject the element directly into the jQuery object
+						this.length = 1;
+						this[0] = elem;
+					}
+
+					this.context = document;
+					this.selector = selector;
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || rootjQuery ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( jQuery.isFunction( selector ) ) {
+			return rootjQuery.ready( selector );
+		}
+
+		if ( selector.selector !== undefined ) {
+			this.selector = selector.selector;
+			this.context = selector.context;
+		}
+
+		return jQuery.makeArray( selector, this );
+	},
+
+	// Start with an empty selector
+	selector: "",
+
+	// The current version of jQuery being used
+	jquery: "1.7.1",
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	// The number of elements contained in the matched element set
+	size: function() {
+		return this.length;
+	},
+
+	toArray: function() {
+		return slice.call( this, 0 );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+		return num == null ?
+
+			// Return a 'clean' array
+			this.toArray() :
+
+			// Return just the object
+			( num < 0 ? this[ this.length + num ] : this[ num ] );
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems, name, selector ) {
+		// Build a new jQuery matched element set
+		var ret = this.constructor();
+
+		if ( jQuery.isArray( elems ) ) {
+			push.apply( ret, elems );
+
+		} else {
+			jQuery.merge( ret, elems );
+		}
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		ret.context = this.context;
+
+		if ( name === "find" ) {
+			ret.selector = this.selector + ( this.selector ? " " : "" ) + selector;
+		} else if ( name ) {
+			ret.selector = this.selector + "." + name + "(" + selector + ")";
+		}
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	// (You can seed the arguments with an array of args, but this is
+	// only used internally.)
+	each: function( callback, args ) {
+		return jQuery.each( this, callback, args );
+	},
+
+	ready: function( fn ) {
+		// Attach the listeners
+		jQuery.bindReady();
+
+		// Add the callback
+		readyList.add( fn );
+
+		return this;
+	},
+
+	eq: function( i ) {
+		i = +i;
+		return i === -1 ?
+			this.slice( i ) :
+			this.slice( i, i + 1 );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ),
+			"slice", slice.call(arguments).join(",") );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map(this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		}));
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor(null);
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: [].sort,
+	splice: [].splice
+};
+
+// Give the init function the jQuery prototype for later instantiation
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[0] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+		target = arguments[1] || {};
+		// skip the boolean and the target
+		i = 2;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
+		target = {};
+	}
+
+	// extend jQuery itself if only one argument is passed
+	if ( length === i ) {
+		target = this;
+		--i;
+	}
+
+	for ( ; i < length; i++ ) {
+		// Only deal with non-null/undefined values
+		if ( (options = arguments[ i ]) != null ) {
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && jQuery.isArray(src) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject(src) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend({
+	noConflict: function( deep ) {
+		if ( window.$ === jQuery ) {
+			window.$ = _$;
+		}
+
+		if ( deep && window.jQuery === jQuery ) {
+			window.jQuery = _jQuery;
+		}
+
+		return jQuery;
+	},
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Hold (or release) the ready event
+	holdReady: function( hold ) {
+		if ( hold ) {
+			jQuery.readyWait++;
+		} else {
+			jQuery.ready( true );
+		}
+	},
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+		// Either a released hold or an DOMready/load event and not yet ready
+		if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
+			// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+			if ( !document.body ) {
+				return setTimeout( jQuery.ready, 1 );
+			}
+
+			// Remember that the DOM is ready
+			jQuery.isReady = true;
+
+			// If a normal DOM Ready event fired, decrement, and wait if need be
+			if ( wait !== true && --jQuery.readyWait > 0 ) {
+				return;
+			}
+
+			// If there are functions bound, to execute
+			readyList.fireWith( document, [ jQuery ] );
+
+			// Trigger any bound ready events
+			if ( jQuery.fn.trigger ) {
+				jQuery( document ).trigger( "ready" ).off( "ready" );
+			}
+		}
+	},
+
+	bindReady: function() {
+		if ( readyList ) {
+			return;
+		}
+
+		readyList = jQuery.Callbacks( "once memory" );
+
+		// Catch cases where $(document).ready() is called after the
+		// browser event has already occurred.
+		if ( document.readyState === "complete" ) {
+			// Handle it asynchronously to allow scripts the opportunity to delay ready
+			return setTimeout( jQuery.ready, 1 );
+		}
+
+		// Mozilla, Opera and webkit nightlies currently support this event
+		if ( document.addEventListener ) {
+			// Use the handy event callback
+			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+
+			// A fallback to window.onload, that will always work
+			window.addEventListener( "load", jQuery.ready, false );
+
+		// If IE event model is used
+		} else if ( document.attachEvent ) {
+			// ensure firing before onload,
+			// maybe late but safe also for iframes
+			document.attachEvent( "onreadystatechange", DOMContentLoaded );
+
+			// A fallback to window.onload, that will always work
+			window.attachEvent( "onload", jQuery.ready );
+
+			// If IE and not a frame
+			// continually check to see if the document is ready
+			var toplevel = false;
+
+			try {
+				toplevel = window.frameElement == null;
+			} catch(e) {}
+
+			if ( document.documentElement.doScroll && toplevel ) {
+				doScrollCheck();
+			}
+		}
+	},
+
+	// See test/unit/core.js for details concerning isFunction.
+	// Since version 1.3, DOM methods and functions like alert
+	// aren't supported. They return false on IE (#2968).
+	isFunction: function( obj ) {
+		return jQuery.type(obj) === "function";
+	},
+
+	isArray: Array.isArray || function( obj ) {
+		return jQuery.type(obj) === "array";
+	},
+
+	// A crude way of determining if an object is a window
+	isWindow: function( obj ) {
+		return obj && typeof obj === "object" && "setInterval" in obj;
+	},
+
+	isNumeric: function( obj ) {
+		return !isNaN( parseFloat(obj) ) && isFinite( obj );
+	},
+
+	type: function( obj ) {
+		return obj == null ?
+			String( obj ) :
+			class2type[ toString.call(obj) ] || "object";
+	},
+
+	isPlainObject: function( obj ) {
+		// Must be an Object.
+		// Because of IE, we also have to check the presence of the constructor property.
+		// Make sure that DOM nodes and window objects don't pass through, as well
+		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+			return false;
+		}
+
+		try {
+			// Not own constructor property must be Object
+			if ( obj.constructor &&
+				!hasOwn.call(obj, "constructor") &&
+				!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
+				return false;
+			}
+		} catch ( e ) {
+			// IE8,9 Will throw exceptions on certain host objects #9897
+			return false;
+		}
+
+		// Own properties are enumerated firstly, so to speed up,
+		// if last one is own, then all properties are own.
+
+		var key;
+		for ( key in obj ) {}
+
+		return key === undefined || hasOwn.call( obj, key );
+	},
+
+	isEmptyObject: function( obj ) {
+		for ( var name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	parseJSON: function( data ) {
+		if ( typeof data !== "string" || !data ) {
+			return null;
+		}
+
+		// Make sure leading/trailing whitespace is removed (IE can't handle it)
+		data = jQuery.trim( data );
+
+		// Attempt to parse using the native JSON parser first
+		if ( window.JSON && window.JSON.parse ) {
+			return window.JSON.parse( data );
+		}
+
+		// Make sure the incoming data is actual JSON
+		// Logic borrowed from http://json.org/json2.js
+		if ( rvalidchars.test( data.replace( rvalidescape, "@" )
+			.replace( rvalidtokens, "]" )
+			.replace( rvalidbraces, "")) ) {
+
+			return ( new Function( "return " + data ) )();
+
+		}
+		jQuery.error( "Invalid JSON: " + data );
+	},
+
+	// Cross-browser xml parsing
+	parseXML: function( data ) {
+		var xml, tmp;
+		try {
+			if ( window.DOMParser ) { // Standard
+				tmp = new DOMParser();
+				xml = tmp.parseFromString( data , "text/xml" );
+			} else { // IE
+				xml = new ActiveXObject( "Microsoft.XMLDOM" );
+				xml.async = "false";
+				xml.loadXML( data );
+			}
+		} catch( e ) {
+			xml = undefined;
+		}
+		if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
+			jQuery.error( "Invalid XML: " + data );
+		}
+		return xml;
+	},
+
+	noop: function() {},
+
+	// Evaluates a script in a global context
+	// Workarounds based on findings by Jim Driscoll
+	// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
+	globalEval: function( data ) {
+		if ( data && rnotwhite.test( data ) ) {
+			// We use execScript on Internet Explorer
+			// We use an anonymous function so that context is window
+			// rather than jQuery in Firefox
+			( window.execScript || function( data ) {
+				window[ "eval" ].call( window, data );
+			} )( data );
+		}
+	},
+
+	// Convert dashed to camelCase; used by the css and data modules
+	// Microsoft forgot to hump their vendor prefix (#9572)
+	camelCase: function( string ) {
+		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+	},
+
+	nodeName: function( elem, name ) {
+		return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
+	},
+
+	// args is for internal usage only
+	each: function( object, callback, args ) {
+		var name, i = 0,
+			length = object.length,
+			isObj = length === undefined || jQuery.isFunction( object );
+
+		if ( args ) {
+			if ( isObj ) {
+				for ( name in object ) {
+					if ( callback.apply( object[ name ], args ) === false ) {
+						break;
+					}
+				}
+			} else {
+				for ( ; i < length; ) {
+					if ( callback.apply( object[ i++ ], args ) === false ) {
+						break;
+					}
+				}
+			}
+
+		// A special, fast, case for the most common use of each
+		} else {
+			if ( isObj ) {
+				for ( name in object ) {
+					if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
+						break;
+					}
+				}
+			} else {
+				for ( ; i < length; ) {
+					if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
+						break;
+					}
+				}
+			}
+		}
+
+		return object;
+	},
+
+	// Use native String.trim function wherever possible
+	trim: trim ?
+		function( text ) {
+			return text == null ?
+				"" :
+				trim.call( text );
+		} :
+
+		// Otherwise use our own trimming functionality
+		function( text ) {
+			return text == null ?
+				"" :
+				text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
+		},
+
+	// results is for internal usage only
+	makeArray: function( array, results ) {
+		var ret = results || [];
+
+		if ( array != null ) {
+			// The window, strings (and functions) also have 'length'
+			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
+			var type = jQuery.type( array );
+
+			if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
+				push.call( ret, array );
+			} else {
+				jQuery.merge( ret, array );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, array, i ) {
+		var len;
+
+		if ( array ) {
+			if ( indexOf ) {
+				return indexOf.call( array, elem, i );
+			}
+
+			len = array.length;
+			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
+
+			for ( ; i < len; i++ ) {
+				// Skip accessing in sparse arrays
+				if ( i in array && array[ i ] === elem ) {
+					return i;
+				}
+			}
+		}
+
+		return -1;
+	},
+
+	merge: function( first, second ) {
+		var i = first.length,
+			j = 0;
+
+		if ( typeof second.length === "number" ) {
+			for ( var l = second.length; j < l; j++ ) {
+				first[ i++ ] = second[ j ];
+			}
+
+		} else {
+			while ( second[j] !== undefined ) {
+				first[ i++ ] = second[ j++ ];
+			}
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, inv ) {
+		var ret = [], retVal;
+		inv = !!inv;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( var i = 0, length = elems.length; i < length; i++ ) {
+			retVal = !!callback( elems[ i ], i );
+			if ( inv !== retVal ) {
+				ret.push( elems[ i ] );
+			}
+		}
+
+		return ret;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var value, key, ret = [],
+			i = 0,
+			length = elems.length,
+			// jquery objects are treated as arrays
+			isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
+
+		// Go through the array, translating each of the items to their
+		if ( isArray ) {
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret[ ret.length ] = value;
+				}
+			}
+
+		// Go through every key on the object
+		} else {
+			for ( key in elems ) {
+				value = callback( elems[ key ], key, arg );
+
+				if ( value != null ) {
+					ret[ ret.length ] = value;
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return ret.concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// Bind a function to a context, optionally partially applying any
+	// arguments.
+	proxy: function( fn, context ) {
+		if ( typeof context === "string" ) {
+			var tmp = fn[ context ];
+			context = fn;
+			fn = tmp;
+		}
+
+		// Quick check to determine if target is callable, in the spec
+		// this throws a TypeError, but we will just return undefined.
+		if ( !jQuery.isFunction( fn ) ) {
+			return undefined;
+		}
+
+		// Simulated bind
+		var args = slice.call( arguments, 2 ),
+			proxy = function() {
+				return fn.apply( context, args.concat( slice.call( arguments ) ) );
+			};
+
+		// Set the guid of unique handler to the same of original handler, so it can be removed
+		proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+
+		return proxy;
+	},
+
+	// Mutifunctional method to get and set values to a collection
+	// The value/s can optionally be executed if it's a function
+	access: function( elems, key, value, exec, fn, pass ) {
+		var length = elems.length;
+
+		// Setting many attributes
+		if ( typeof key === "object" ) {
+			for ( var k in key ) {
+				jQuery.access( elems, k, key[k], exec, fn, value );
+			}
+			return elems;
+		}
+
+		// Setting one attribute
+		if ( value !== undefined ) {
+			// Optionally, function values get executed if exec is true
+			exec = !pass && exec && jQuery.isFunction(value);
+
+			for ( var i = 0; i < length; i++ ) {
+				fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
+			}
+
+			return elems;
+		}
+
+		// Getting an attribute
+		return length ? fn( elems[0], key ) : undefined;
+	},
+
+	now: function() {
+		return ( new Date() ).getTime();
+	},
+
+	// Use of jQuery.browser is frowned upon.
+	// More details: http://docs.jquery.com/Utilities/jQuery.browser
+	uaMatch: function( ua ) {
+		ua = ua.toLowerCase();
+
+		var match = rwebkit.exec( ua ) ||
+			ropera.exec( ua ) ||
+			rmsie.exec( ua ) ||
+			ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
+			[];
+
+		return { browser: match[1] || "", version: match[2] || "0" };
+	},
+
+	sub: function() {
+		function jQuerySub( selector, context ) {
+			return new jQuerySub.fn.init( selector, context );
+		}
+		jQuery.extend( true, jQuerySub, this );
+		jQuerySub.superclass = this;
+		jQuerySub.fn = jQuerySub.prototype = this();
+		jQuerySub.fn.constructor = jQuerySub;
+		jQuerySub.sub = this.sub;
+		jQuerySub.fn.init = function init( selector, context ) {
+			if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
+				context = jQuerySub( context );
+			}
+
+			return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
+		};
+		jQuerySub.fn.init.prototype = jQuerySub.fn;
+		var rootjQuerySub = jQuerySub(document);
+		return jQuerySub;
+	},
+
+	browser: {}
+});
+
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
+
+browserMatch = jQuery.uaMatch( userAgent );
+if ( browserMatch.browser ) {
+	jQuery.browser[ browserMatch.browser ] = true;
+	jQuery.browser.version = browserMatch.version;
+}
+
+// Deprecated, use jQuery.browser.webkit instead
+if ( jQuery.browser.webkit ) {
+	jQuery.browser.safari = true;
+}
+
+// IE doesn't match non-breaking spaces with \s
+if ( rnotwhite.test( "\xA0" ) ) {
+	trimLeft = /^[\s\xA0]+/;
+	trimRight = /[\s\xA0]+$/;
+}
+
+// All jQuery objects should point back to these
+rootjQuery = jQuery(document);
+
+// Cleanup functions for the document ready method
+if ( document.addEventListener ) {
+	DOMContentLoaded = function() {
+		document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+		jQuery.ready();
+	};
+
+} else if ( document.attachEvent ) {
+	DOMContentLoaded = function() {
+		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+		if ( document.readyState === "complete" ) {
+			document.detachEvent( "onreadystatechange", DOMContentLoaded );
+			jQuery.ready();
+		}
+	};
+}
+
+// The DOM ready check for Internet Explorer
+function doScrollCheck() {
+	if ( jQuery.isReady ) {
+		return;
+	}
+
+	try {
+		// If IE is used, use the trick by Diego Perini
+		// http://javascript.nwbox.com/IEContentLoaded/
+		document.documentElement.doScroll("left");
+	} catch(e) {
+		setTimeout( doScrollCheck, 1 );
+		return;
+	}
+
+	// and execute any waiting functions
+	jQuery.ready();
+}
+
+return jQuery;
+
+})();
+
+
+// String to Object flags format cache
+var flagsCache = {};
+
+// Convert String-formatted flags into Object-formatted ones and store in cache
+function createFlags( flags ) {
+	var object = flagsCache[ flags ] = {},
+		i, length;
+	flags = flags.split( /\s+/ );
+	for ( i = 0, length = flags.length; i < length; i++ ) {
+		object[ flags[i] ] = true;
+	}
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	flags:	an optional list of space-separated flags that will change how
+ *			the callback list behaves
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible flags:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( flags ) {
+
+	// Convert flags from String-formatted to Object-formatted
+	// (we check in cache first)
+	flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {};
+
+	var // Actual callback list
+		list = [],
+		// Stack of fire calls for repeatable lists
+		stack = [],
+		// Last fire value (for non-forgettable lists)
+		memory,
+		// Flag to know if list is currently firing
+		firing,
+		// First callback to fire (used internally by add and fireWith)
+		firingStart,
+		// End of the loop when firing
+		firingLength,
+		// Index of currently firing callback (modified by remove if needed)
+		firingIndex,
+		// Add one or several callbacks to the list
+		add = function( args ) {
+			var i,
+				length,
+				elem,
+				type,
+				actual;
+			for ( i = 0, length = args.length; i < length; i++ ) {
+				elem = args[ i ];
+				type = jQuery.type( elem );
+				if ( type === "array" ) {
+					// Inspect recursively
+					add( elem );
+				} else if ( type === "function" ) {
+					// Add if not in unique mode and callback is not in
+					if ( !flags.unique || !self.has( elem ) ) {
+						list.push( elem );
+					}
+				}
+			}
+		},
+		// Fire callbacks
+		fire = function( context, args ) {
+			args = args || [];
+			memory = !flags.memory || [ context, args ];
+			firing = true;
+			firingIndex = firingStart || 0;
+			firingStart = 0;
+			firingLength = list.length;
+			for ( ; list && firingIndex < firingLength; firingIndex++ ) {
+				if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {
+					memory = true; // Mark as halted
+					break;
+				}
+			}
+			firing = false;
+			if ( list ) {
+				if ( !flags.once ) {
+					if ( stack && stack.length ) {
+						memory = stack.shift();
+						self.fireWith( memory[ 0 ], memory[ 1 ] );
+					}
+				} else if ( memory === true ) {
+					self.disable();
+				} else {
+					list = [];
+				}
+			}
+		},
+		// Actual Callbacks object
+		self = {
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+					var length = list.length;
+					add( arguments );
+					// Do we need to add the callbacks to the
+					// current firing batch?
+					if ( firing ) {
+						firingLength = list.length;
+					// With memory, if we're not firing then
+					// we should call right away, unless previous
+					// firing was halted (stopOnFalse)
+					} else if ( memory && memory !== true ) {
+						firingStart = length;
+						fire( memory[ 0 ], memory[ 1 ] );
+					}
+				}
+				return this;
+			},
+			// Remove a callback from the list
+			remove: function() {
+				if ( list ) {
+					var args = arguments,
+						argIndex = 0,
+						argLength = args.length;
+					for ( ; argIndex < argLength ; argIndex++ ) {
+						for ( var i = 0; i < list.length; i++ ) {
+							if ( args[ argIndex ] === list[ i ] ) {
+								// Handle firingIndex and firingLength
+								if ( firing ) {
+									if ( i <= firingLength ) {
+										firingLength--;
+										if ( i <= firingIndex ) {
+											firingIndex--;
+										}
+									}
+								}
+								// Remove the element
+								list.splice( i--, 1 );
+								// If we have some unicity property then
+								// we only need to do this once
+								if ( flags.unique ) {
+									break;
+								}
+							}
+						}
+					}
+				}
+				return this;
+			},
+			// Control if a given callback is in the list
+			has: function( fn ) {
+				if ( list ) {
+					var i = 0,
+						length = list.length;
+					for ( ; i < length; i++ ) {
+						if ( fn === list[ i ] ) {
+							return true;
+						}
+					}
+				}
+				return false;
+			},
+			// Remove all callbacks from the list
+			empty: function() {
+				list = [];
+				return this;
+			},
+			// Have the list do nothing anymore
+			disable: function() {
+				list = stack = memory = undefined;
+				return this;
+			},
+			// Is it disabled?
+			disabled: function() {
+				return !list;
+			},
+			// Lock the list in its current state
+			lock: function() {
+				stack = undefined;
+				if ( !memory || memory === true ) {
+					self.disable();
+				}
+				return this;
+			},
+			// Is it locked?
+			locked: function() {
+				return !stack;
+			},
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( stack ) {
+					if ( firing ) {
+						if ( !flags.once ) {
+							stack.push( [ context, args ] );
+						}
+					} else if ( !( flags.once && memory ) ) {
+						fire( context, args );
+					}
+				}
+				return this;
+			},
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!memory;
+			}
+		};
+
+	return self;
+};
+
+
+
+
+var // Static reference to slice
+	sliceDeferred = [].slice;
+
+jQuery.extend({
+
+	Deferred: function( func ) {
+		var doneList = jQuery.Callbacks( "once memory" ),
+			failList = jQuery.Callbacks( "once memory" ),
+			progressList = jQuery.Callbacks( "memory" ),
+			state = "pending",
+			lists = {
+				resolve: doneList,
+				reject: failList,
+				notify: progressList
+			},
+			promise = {
+				done: doneList.add,
+				fail: failList.add,
+				progress: progressList.add,
+
+				state: function() {
+					return state;
+				},
+
+				// Deprecated
+				isResolved: doneList.fired,
+				isRejected: failList.fired,
+
+				then: function( doneCallbacks, failCallbacks, progressCallbacks ) {
+					deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks );
+					return this;
+				},
+				always: function() {
+					deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
+					return this;
+				},
+				pipe: function( fnDone, fnFail, fnProgress ) {
+					return jQuery.Deferred(function( newDefer ) {
+						jQuery.each( {
+							done: [ fnDone, "resolve" ],
+							fail: [ fnFail, "reject" ],
+							progress: [ fnProgress, "notify" ]
+						}, function( handler, data ) {
+							var fn = data[ 0 ],
+								action = data[ 1 ],
+								returned;
+							if ( jQuery.isFunction( fn ) ) {
+								deferred[ handler ](function() {
+									returned = fn.apply( this, arguments );
+									if ( returned && jQuery.isFunction( returned.promise ) ) {
+										returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify );
+									} else {
+										newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
+									}
+								});
+							} else {
+								deferred[ handler ]( newDefer[ action ] );
+							}
+						});
+					}).promise();
+				},
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					if ( obj == null ) {
+						obj = promise;
+					} else {
+						for ( var key in promise ) {
+							obj[ key ] = promise[ key ];
+						}
+					}
+					return obj;
+				}
+			},
+			deferred = promise.promise({}),
+			key;
+
+		for ( key in lists ) {
+			deferred[ key ] = lists[ key ].fire;
+			deferred[ key + "With" ] = lists[ key ].fireWith;
+		}
+
+		// Handle state
+		deferred.done( function() {
+			state = "resolved";
+		}, failList.disable, progressList.lock ).fail( function() {
+			state = "rejected";
+		}, doneList.disable, progressList.lock );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( firstParam ) {
+		var args = sliceDeferred.call( arguments, 0 ),
+			i = 0,
+			length = args.length,
+			pValues = new Array( length ),
+			count = length,
+			pCount = length,
+			deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
+				firstParam :
+				jQuery.Deferred(),
+			promise = deferred.promise();
+		function resolveFunc( i ) {
+			return function( value ) {
+				args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+				if ( !( --count ) ) {
+					deferred.resolveWith( deferred, args );
+				}
+			};
+		}
+		function progressFunc( i ) {
+			return function( value ) {
+				pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+				deferred.notifyWith( promise, pValues );
+			};
+		}
+		if ( length > 1 ) {
+			for ( ; i < length; i++ ) {
+				if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) {
+					args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) );
+				} else {
+					--count;
+				}
+			}
+			if ( !count ) {
+				deferred.resolveWith( deferred, args );
+			}
+		} else if ( deferred !== firstParam ) {
+			deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
+		}
+		return promise;
+	}
+});
+
+
+
+
+jQuery.support = (function() {
+
+	var support,
+		all,
+		a,
+		select,
+		opt,
+		input,
+		marginDiv,
+		fragment,
+		tds,
+		events,
+		eventName,
+		i,
+		isSupported,
+		div = document.createElement( "div" ),
+		documentElement = document.documentElement;
+
+	// Preliminary tests
+	div.setAttribute("className", "t");
+	div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
+
+	all = div.getElementsByTagName( "*" );
+	a = div.getElementsByTagName( "a" )[ 0 ];
+
+	// Can't get basic test support
+	if ( !all || !all.length || !a ) {
+		return {};
+	}
+
+	// First batch of supports tests
+	select = document.createElement( "select" );
+	opt = select.appendChild( document.createElement("option") );
+	input = div.getElementsByTagName( "input" )[ 0 ];
+
+	support = {
+		// IE strips leading whitespace when .innerHTML is used
+		leadingWhitespace: ( div.firstChild.nodeType === 3 ),
+
+		// Make sure that tbody elements aren't automatically inserted
+		// IE will insert them into empty tables
+		tbody: !div.getElementsByTagName("tbody").length,
+
+		// Make sure that link elements get serialized correctly by innerHTML
+		// This requires a wrapper element in IE
+		htmlSerialize: !!div.getElementsByTagName("link").length,
+
+		// Get the style information from getAttribute
+		// (IE uses .cssText instead)
+		style: /top/.test( a.getAttribute("style") ),
+
+		// Make sure that URLs aren't manipulated
+		// (IE normalizes it by default)
+		hrefNormalized: ( a.getAttribute("href") === "/a" ),
+
+		// Make sure that element opacity exists
+		// (IE uses filter instead)
+		// Use a regex to work around a WebKit issue. See #5145
+		opacity: /^0.55/.test( a.style.opacity ),
+
+		// Verify style float existence
+		// (IE uses styleFloat instead of cssFloat)
+		cssFloat: !!a.style.cssFloat,
+
+		// Make sure that if no value is specified for a checkbox
+		// that it defaults to "on".
+		// (WebKit defaults to "" instead)
+		checkOn: ( input.value === "on" ),
+
+		// Make sure that a selected-by-default option has a working selected property.
+		// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+		optSelected: opt.selected,
+
+		// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
+		getSetAttribute: div.className !== "t",
+
+		// Tests for enctype support on a form(#6743)
+		enctype: !!document.createElement("form").enctype,
+
+		// Makes sure cloning an html5 element does not cause problems
+		// Where outerHTML is undefined, this still works
+		html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>",
+
+		// Will be defined later
+		submitBubbles: true,
+		changeBubbles: true,
+		focusinBubbles: false,
+		deleteExpando: true,
+		noCloneEvent: true,
+		inlineBlockNeedsLayout: false,
+		shrinkWrapBlocks: false,
+		reliableMarginRight: true
+	};
+
+	// Make sure checked status is properly cloned
+	input.checked = true;
+	support.noCloneChecked = input.cloneNode( true ).checked;
+
+	// Make sure that the options inside disabled selects aren't marked as disabled
+	// (WebKit marks them as disabled)
+	select.disabled = true;
+	support.optDisabled = !opt.disabled;
+
+	// Test to see if it's possible to delete an expando from an element
+	// Fails in Internet Explorer
+	try {
+		delete div.test;
+	} catch( e ) {
+		support.deleteExpando = false;
+	}
+
+	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
+		div.attachEvent( "onclick", function() {
+			// Cloning a node shouldn't copy over any
+			// bound event handlers (IE does this)
+			support.noCloneEvent = false;
+		});
+		div.cloneNode( true ).fireEvent( "onclick" );
+	}
+
+	// Check if a radio maintains its value
+	// after being appended to the DOM
+	input = document.createElement("input");
+	input.value = "t";
+	input.setAttribute("type", "radio");
+	support.radioValue = input.value === "t";
+
+	input.setAttribute("checked", "checked");
+	div.appendChild( input );
+	fragment = document.createDocumentFragment();
+	fragment.appendChild( div.lastChild );
+
+	// WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Check if a disconnected checkbox will retain its checked
+	// value of true after appended to the DOM (IE6/7)
+	support.appendChecked = input.checked;
+
+	fragment.removeChild( input );
+	fragment.appendChild( div );
+
+	div.innerHTML = "";
+
+	// Check if div with explicit width and no margin-right incorrectly
+	// gets computed margin-right based on width of container. For more
+	// info see bug #3333
+	// Fails in WebKit before Feb 2011 nightlies
+	// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+	if ( window.getComputedStyle ) {
+		marginDiv = document.createElement( "div" );
+		marginDiv.style.width = "0";
+		marginDiv.style.marginRight = "0";
+		div.style.width = "2px";
+		div.appendChild( marginDiv );
+		support.reliableMarginRight =
+			( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
+	}
+
+	// Technique from Juriy Zaytsev
+	// http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
+	// We only care about the case where non-standard event systems
+	// are used, namely in IE. Short-circuiting here helps us to
+	// avoid an eval call (in setAttribute) which can cause CSP
+	// to go haywire. See: https://developer.mozilla.org/en/Security/CSP
+	if ( div.attachEvent ) {
+		for( i in {
+			submit: 1,
+			change: 1,
+			focusin: 1
+		}) {
+			eventName = "on" + i;
+			isSupported = ( eventName in div );
+			if ( !isSupported ) {
+				div.setAttribute( eventName, "return;" );
+				isSupported = ( typeof div[ eventName ] === "function" );
+			}
+			support[ i + "Bubbles" ] = isSupported;
+		}
+	}
+
+	fragment.removeChild( div );
+
+	// Null elements to avoid leaks in IE
+	fragment = select = opt = marginDiv = div = input = null;
+
+	// Run tests that need a body at doc ready
+	jQuery(function() {
+		var container, outer, inner, table, td, offsetSupport,
+			conMarginTop, ptlm, vb, style, html,
+			body = document.getElementsByTagName("body")[0];
+
+		if ( !body ) {
+			// Return for frameset docs that don't have a body
+			return;
+		}
+
+		conMarginTop = 1;
+		ptlm = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";
+		vb = "visibility:hidden;border:0;";
+		style = "style='" + ptlm + "border:5px solid #000;padding:0;'";
+		html = "<div " + style + "><div></div></div>" +
+			"<table " + style + " cellpadding='0' cellspacing='0'>" +
+			"<tr><td></td></tr></table>";
+
+		container = document.createElement("div");
+		container.style.cssText = vb + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px";
+		body.insertBefore( container, body.firstChild );
+
+		// Construct the test element
+		div = document.createElement("div");
+		container.appendChild( div );
+
+		// Check if table cells still have offsetWidth/Height when they are set
+		// to display:none and there are still other visible table cells in a
+		// table row; if so, offsetWidth/Height are not reliable for use when
+		// determining if an element has been hidden directly using
+		// display:none (it is still safe to use offsets if a parent element is
+		// hidden; don safety goggles and see bug #4512 for more information).
+		// (only IE 8 fails this test)
+		div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
+		tds = div.getElementsByTagName( "td" );
+		isSupported = ( tds[ 0 ].offsetHeight === 0 );
+
+		tds[ 0 ].style.display = "";
+		tds[ 1 ].style.display = "none";
+
+		// Check if empty table cells still have offsetWidth/Height
+		// (IE <= 8 fail this test)
+		support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
+
+		// Figure out if the W3C box model works as expected
+		div.innerHTML = "";
+		div.style.width = div.style.paddingLeft = "1px";
+		jQuery.boxModel = support.boxModel = div.offsetWidth === 2;
+
+		if ( typeof div.style.zoom !== "undefined" ) {
+			// Check if natively block-level elements act like inline-block
+			// elements when setting their display to 'inline' and giving
+			// them layout
+			// (IE < 8 does this)
+			div.style.display = "inline";
+			div.style.zoom = 1;
+			support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 );
+
+			// Check if elements with layout shrink-wrap their children
+			// (IE 6 does this)
+			div.style.display = "";
+			div.innerHTML = "<div style='width:4px;'></div>";
+			support.shrinkWrapBlocks = ( div.offsetWidth !== 2 );
+		}
+
+		div.style.cssText = ptlm + vb;
+		div.innerHTML = html;
+
+		outer = div.firstChild;
+		inner = outer.firstChild;
+		td = outer.nextSibling.firstChild.firstChild;
+
+		offsetSupport = {
+			doesNotAddBorder: ( inner.offsetTop !== 5 ),
+			doesAddBorderForTableAndCells: ( td.offsetTop === 5 )
+		};
+
+		inner.style.position = "fixed";
+		inner.style.top = "20px";
+
+		// safari subtracts parent border width here which is 5px
+		offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 );
+		inner.style.position = inner.style.top = "";
+
+		outer.style.overflow = "hidden";
+		outer.style.position = "relative";
+
+		offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 );
+		offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop );
+
+		body.removeChild( container );
+		div  = container = null;
+
+		jQuery.extend( support, offsetSupport );
+	});
+
+	return support;
+})();
+
+
+
+
+var rbrace = /^(?:\{.*\}|\[.*\])$/,
+	rmultiDash = /([A-Z])/g;
+
+jQuery.extend({
+	cache: {},
+
+	// Please use with caution
+	uuid: 0,
+
+	// Unique for each copy of jQuery on the page
+	// Non-digits removed to match rinlinejQuery
+	expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
+
+	// The following elements throw uncatchable exceptions if you
+	// attempt to add expando properties to them.
+	noData: {
+		"embed": true,
+		// Ban all objects except for Flash (which handle expandos)
+		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
+		"applet": true
+	},
+
+	hasData: function( elem ) {
+		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
+		return !!elem && !isEmptyDataObject( elem );
+	},
+
+	data: function( elem, name, data, pvt /* Internal Use Only */ ) {
+		if ( !jQuery.acceptData( elem ) ) {
+			return;
+		}
+
+		var privateCache, thisCache, ret,
+			internalKey = jQuery.expando,
+			getByName = typeof name === "string",
+
+			// We have to handle DOM nodes and JS objects differently because IE6-7
+			// can't GC object references properly across the DOM-JS boundary
+			isNode = elem.nodeType,
+
+			// Only DOM nodes need the global jQuery cache; JS object data is
+			// attached directly to the object so GC can occur automatically
+			cache = isNode ? jQuery.cache : elem,
+
+			// Only defining an ID for JS objects if its cache already exists allows
+			// the code to shortcut on the same path as a DOM node with no cache
+			id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey,
+			isEvents = name === "events";
+
+		// Avoid doing any more work than we need to when trying to get data on an
+		// object that has no data at all
+		if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) {
+			return;
+		}
+
+		if ( !id ) {
+			// Only DOM nodes need a new unique ID for each element since their data
+			// ends up in the global cache
+			if ( isNode ) {
+				elem[ internalKey ] = id = ++jQuery.uuid;
+			} else {
+				id = internalKey;
+			}
+		}
+
+		if ( !cache[ id ] ) {
+			cache[ id ] = {};
+
+			// Avoids exposing jQuery metadata on plain JS objects when the object
+			// is serialized using JSON.stringify
+			if ( !isNode ) {
+				cache[ id ].toJSON = jQuery.noop;
+			}
+		}
+
+		// An object can be passed to jQuery.data instead of a key/value pair; this gets
+		// shallow copied over onto the existing cache
+		if ( typeof name === "object" || typeof name === "function" ) {
+			if ( pvt ) {
+				cache[ id ] = jQuery.extend( cache[ id ], name );
+			} else {
+				cache[ id ].data = jQuery.extend( cache[ id ].data, name );
+			}
+		}
+
+		privateCache = thisCache = cache[ id ];
+
+		// jQuery data() is stored in a separate object inside the object's internal data
+		// cache in order to avoid key collisions between internal data and user-defined
+		// data.
+		if ( !pvt ) {
+			if ( !thisCache.data ) {
+				thisCache.data = {};
+			}
+
+			thisCache = thisCache.data;
+		}
+
+		if ( data !== undefined ) {
+			thisCache[ jQuery.camelCase( name ) ] = data;
+		}
+
+		// Users should not attempt to inspect the internal events object using jQuery.data,
+		// it is undocumented and subject to change. But does anyone listen? No.
+		if ( isEvents && !thisCache[ name ] ) {
+			return privateCache.events;
+		}
+
+		// Check for both converted-to-camel and non-converted data property names
+		// If a data property was specified
+		if ( getByName ) {
+
+			// First Try to find as-is property data
+			ret = thisCache[ name ];
+
+			// Test for null|undefined property data
+			if ( ret == null ) {
+
+				// Try to find the camelCased property
+				ret = thisCache[ jQuery.camelCase( name ) ];
+			}
+		} else {
+			ret = thisCache;
+		}
+
+		return ret;
+	},
+
+	removeData: function( elem, name, pvt /* Internal Use Only */ ) {
+		if ( !jQuery.acceptData( elem ) ) {
+			return;
+		}
+
+		var thisCache, i, l,
+
+			// Reference to internal data cache key
+			internalKey = jQuery.expando,
+
+			isNode = elem.nodeType,
+
+			// See jQuery.data for more information
+			cache = isNode ? jQuery.cache : elem,
+
+			// See jQuery.data for more information
+			id = isNode ? elem[ internalKey ] : internalKey;
+
+		// If there is already no cache entry for this object, there is no
+		// purpose in continuing
+		if ( !cache[ id ] ) {
+			return;
+		}
+
+		if ( name ) {
+
+			thisCache = pvt ? cache[ id ] : cache[ id ].data;
+
+			if ( thisCache ) {
+
+				// Support array or space separated string names for data keys
+				if ( !jQuery.isArray( name ) ) {
+
+					// try the string as a key before any manipulation
+					if ( name in thisCache ) {
+						name = [ name ];
+					} else {
+
+						// split the camel cased version by spaces unless a key with the spaces exists
+						name = jQuery.camelCase( name );
+						if ( name in thisCache ) {
+							name = [ name ];
+						} else {
+							name = name.split( " " );
+						}
+					}
+				}
+
+				for ( i = 0, l = name.length; i < l; i++ ) {
+					delete thisCache[ name[i] ];
+				}
+
+				// If there is no data left in the cache, we want to continue
+				// and let the cache object itself get destroyed
+				if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {
+					return;
+				}
+			}
+		}
+
+		// See jQuery.data for more information
+		if ( !pvt ) {
+			delete cache[ id ].data;
+
+			// Don't destroy the parent cache unless the internal data object
+			// had been the only thing left in it
+			if ( !isEmptyDataObject(cache[ id ]) ) {
+				return;
+			}
+		}
+
+		// Browsers that fail expando deletion also refuse to delete expandos on
+		// the window, but it will allow it on all other JS objects; other browsers
+		// don't care
+		// Ensure that `cache` is not a window object #10080
+		if ( jQuery.support.deleteExpando || !cache.setInterval ) {
+			delete cache[ id ];
+		} else {
+			cache[ id ] = null;
+		}
+
+		// We destroyed the cache and need to eliminate the expando on the node to avoid
+		// false lookups in the cache for entries that no longer exist
+		if ( isNode ) {
+			// IE does not allow us to delete expando properties from nodes,
+			// nor does it have a removeAttribute function on Document nodes;
+			// we must handle all of these cases
+			if ( jQuery.support.deleteExpando ) {
+				delete elem[ internalKey ];
+			} else if ( elem.removeAttribute ) {
+				elem.removeAttribute( internalKey );
+			} else {
+				elem[ internalKey ] = null;
+			}
+		}
+	},
+
+	// For internal use only.
+	_data: function( elem, name, data ) {
+		return jQuery.data( elem, name, data, true );
+	},
+
+	// A method for determining if a DOM node can handle the data expando
+	acceptData: function( elem ) {
+		if ( elem.nodeName ) {
+			var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
+
+			if ( match ) {
+				return !(match === true || elem.getAttribute("classid") !== match);
+			}
+		}
+
+		return true;
+	}
+});
+
+jQuery.fn.extend({
+	data: function( key, value ) {
+		var parts, attr, name,
+			data = null;
+
+		if ( typeof key === "undefined" ) {
+			if ( this.length ) {
+				data = jQuery.data( this[0] );
+
+				if ( this[0].nodeType === 1 && !jQuery._data( this[0], "parsedAttrs" ) ) {
+					attr = this[0].attributes;
+					for ( var i = 0, l = attr.length; i < l; i++ ) {
+						name = attr[i].name;
+
+						if ( name.indexOf( "data-" ) === 0 ) {
+							name = jQuery.camelCase( name.substring(5) );
+
+							dataAttr( this[0], name, data[ name ] );
+						}
+					}
+					jQuery._data( this[0], "parsedAttrs", true );
+				}
+			}
+
+			return data;
+
+		} else if ( typeof key === "object" ) {
+			return this.each(function() {
+				jQuery.data( this, key );
+			});
+		}
+
+		parts = key.split(".");
+		parts[1] = parts[1] ? "." + parts[1] : "";
+
+		if ( value === undefined ) {
+			data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+
+			// Try to fetch any internally stored data first
+			if ( data === undefined && this.length ) {
+				data = jQuery.data( this[0], key );
+				data = dataAttr( this[0], key, data );
+			}
+
+			return data === undefined && parts[1] ?
+				this.data( parts[0] ) :
+				data;
+
+		} else {
+			return this.each(function() {
+				var self = jQuery( this ),
+					args = [ parts[0], value ];
+
+				self.triggerHandler( "setData" + parts[1] + "!", args );
+				jQuery.data( this, key, value );
+				self.triggerHandler( "changeData" + parts[1] + "!", args );
+			});
+		}
+	},
+
+	removeData: function( key ) {
+		return this.each(function() {
+			jQuery.removeData( this, key );
+		});
+	}
+});
+
+function dataAttr( elem, key, data ) {
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+
+		var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = data === "true" ? true :
+				data === "false" ? false :
+				data === "null" ? null :
+				jQuery.isNumeric( data ) ? parseFloat( data ) :
+					rbrace.test( data ) ? jQuery.parseJSON( data ) :
+					data;
+			} catch( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			jQuery.data( elem, key, data );
+
+		} else {
+			data = undefined;
+		}
+	}
+
+	return data;
+}
+
+// checks a cache object for emptiness
+function isEmptyDataObject( obj ) {
+	for ( var name in obj ) {
+
+		// if the public data object is empty, the private is still empty
+		if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
+			continue;
+		}
+		if ( name !== "toJSON" ) {
+			return false;
+		}
+	}
+
+	return true;
+}
+
+
+
+
+function handleQueueMarkDefer( elem, type, src ) {
+	var deferDataKey = type + "defer",
+		queueDataKey = type + "queue",
+		markDataKey = type + "mark",
+		defer = jQuery._data( elem, deferDataKey );
+	if ( defer &&
+		( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&
+		( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {
+		// Give room for hard-coded callbacks to fire first
+		// and eventually mark/queue something else on the element
+		setTimeout( function() {
+			if ( !jQuery._data( elem, queueDataKey ) &&
+				!jQuery._data( elem, markDataKey ) ) {
+				jQuery.removeData( elem, deferDataKey, true );
+				defer.fire();
+			}
+		}, 0 );
+	}
+}
+
+jQuery.extend({
+
+	_mark: function( elem, type ) {
+		if ( elem ) {
+			type = ( type || "fx" ) + "mark";
+			jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 );
+		}
+	},
+
+	_unmark: function( force, elem, type ) {
+		if ( force !== true ) {
+			type = elem;
+			elem = force;
+			force = false;
+		}
+		if ( elem ) {
+			type = type || "fx";
+			var key = type + "mark",
+				count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 );
+			if ( count ) {
+				jQuery._data( elem, key, count );
+			} else {
+				jQuery.removeData( elem, key, true );
+				handleQueueMarkDefer( elem, type, "mark" );
+			}
+		}
+	},
+
+	queue: function( elem, type, data ) {
+		var q;
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			q = jQuery._data( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !q || jQuery.isArray(data) ) {
+					q = jQuery._data( elem, type, jQuery.makeArray(data) );
+				} else {
+					q.push( data );
+				}
+			}
+			return q || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			fn = queue.shift(),
+			hooks = {};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+		}
+
+		if ( fn ) {
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			jQuery._data( elem, type + ".run", hooks );
+			fn.call( elem, function() {
+				jQuery.dequeue( elem, type );
+			}, hooks );
+		}
+
+		if ( !queue.length ) {
+			jQuery.removeData( elem, type + "queue " + type + ".run", true );
+			handleQueueMarkDefer( elem, type, "queue" );
+		}
+	}
+});
+
+jQuery.fn.extend({
+	queue: function( type, data ) {
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+		}
+
+		if ( data === undefined ) {
+			return jQuery.queue( this[0], type );
+		}
+		return this.each(function() {
+			var queue = jQuery.queue( this, type, data );
+
+			if ( type === "fx" && queue[0] !== "inprogress" ) {
+				jQuery.dequeue( this, type );
+			}
+		});
+	},
+	dequeue: function( type ) {
+		return this.each(function() {
+			jQuery.dequeue( this, type );
+		});
+	},
+	// Based off of the plugin by Clint Helfers, with permission.
+	// http://blindsignals.com/index.php/2009/07/jquery-delay/
+	delay: function( time, type ) {
+		time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+		type = type || "fx";
+
+		return this.queue( type, function( next, hooks ) {
+			var timeout = setTimeout( next, time );
+			hooks.stop = function() {
+				clearTimeout( timeout );
+			};
+		});
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, object ) {
+		if ( typeof type !== "string" ) {
+			object = type;
+			type = undefined;
+		}
+		type = type || "fx";
+		var defer = jQuery.Deferred(),
+			elements = this,
+			i = elements.length,
+			count = 1,
+			deferDataKey = type + "defer",
+			queueDataKey = type + "queue",
+			markDataKey = type + "mark",
+			tmp;
+		function resolve() {
+			if ( !( --count ) ) {
+				defer.resolveWith( elements, [ elements ] );
+			}
+		}
+		while( i-- ) {
+			if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
+					( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
+						jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
+					jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {
+				count++;
+				tmp.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise();
+	}
+});
+
+
+
+
+var rclass = /[\n\t\r]/g,
+	rspace = /\s+/,
+	rreturn = /\r/g,
+	rtype = /^(?:button|input)$/i,
+	rfocusable = /^(?:button|input|object|select|textarea)$/i,
+	rclickable = /^a(?:rea)?$/i,
+	rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
+	getSetAttribute = jQuery.support.getSetAttribute,
+	nodeHook, boolHook, fixSpecified;
+
+jQuery.fn.extend({
+	attr: function( name, value ) {
+		return jQuery.access( this, name, value, true, jQuery.attr );
+	},
+
+	removeAttr: function( name ) {
+		return this.each(function() {
+			jQuery.removeAttr( this, name );
+		});
+	},
+
+	prop: function( name, value ) {
+		return jQuery.access( this, name, value, true, jQuery.prop );
+	},
+
+	removeProp: function( name ) {
+		name = jQuery.propFix[ name ] || name;
+		return this.each(function() {
+			// try/catch handles cases where IE balks (such as removing a property on window)
+			try {
+				this[ name ] = undefined;
+				delete this[ name ];
+			} catch( e ) {}
+		});
+	},
+
+	addClass: function( value ) {
+		var classNames, i, l, elem,
+			setClass, c, cl;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( j ) {
+				jQuery( this ).addClass( value.call(this, j, this.className) );
+			});
+		}
+
+		if ( value && typeof value === "string" ) {
+			classNames = value.split( rspace );
+
+			for ( i = 0, l = this.length; i < l; i++ ) {
+				elem = this[ i ];
+
+				if ( elem.nodeType === 1 ) {
+					if ( !elem.className && classNames.length === 1 ) {
+						elem.className = value;
+
+					} else {
+						setClass = " " + elem.className + " ";
+
+						for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+							if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
+								setClass += classNames[ c ] + " ";
+							}
+						}
+						elem.className = jQuery.trim( setClass );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classNames, i, l, elem, className, c, cl;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( j ) {
+				jQuery( this ).removeClass( value.call(this, j, this.className) );
+			});
+		}
+
+		if ( (value && typeof value === "string") || value === undefined ) {
+			classNames = ( value || "" ).split( rspace );
+
+			for ( i = 0, l = this.length; i < l; i++ ) {
+				elem = this[ i ];
+
+				if ( elem.nodeType === 1 && elem.className ) {
+					if ( value ) {
+						className = (" " + elem.className + " ").replace( rclass, " " );
+						for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+							className = className.replace(" " + classNames[ c ] + " ", " ");
+						}
+						elem.className = jQuery.trim( className );
+
+					} else {
+						elem.className = "";
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value,
+			isBool = typeof stateVal === "boolean";
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( i ) {
+				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
+			});
+		}
+
+		return this.each(function() {
+			if ( type === "string" ) {
+				// toggle individual class names
+				var className,
+					i = 0,
+					self = jQuery( this ),
+					state = stateVal,
+					classNames = value.split( rspace );
+
+				while ( (className = classNames[ i++ ]) ) {
+					// check each className given, space seperated list
+					state = isBool ? state : !self.hasClass( className );
+					self[ state ? "addClass" : "removeClass" ]( className );
+				}
+
+			} else if ( type === "undefined" || type === "boolean" ) {
+				if ( this.className ) {
+					// store className if set
+					jQuery._data( this, "__className__", this.className );
+				}
+
+				// toggle whole className
+				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
+			}
+		});
+	},
+
+	hasClass: function( selector ) {
+		var className = " " + selector + " ",
+			i = 0,
+			l = this.length;
+		for ( ; i < l; i++ ) {
+			if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
+				return true;
+			}
+		}
+
+		return false;
+	},
+
+	val: function( value ) {
+		var hooks, ret, isFunction,
+			elem = this[0];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];
+
+				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				return typeof ret === "string" ?
+					// handle most common string cases
+					ret.replace(rreturn, "") :
+					// handle cases where value is null/undef or number
+					ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		isFunction = jQuery.isFunction( value );
+
+		return this.each(function( i ) {
+			var self = jQuery(this), val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( isFunction ) {
+				val = value.call( this, i, self.val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+			} else if ( typeof val === "number" ) {
+				val += "";
+			} else if ( jQuery.isArray( val ) ) {
+				val = jQuery.map(val, function ( value ) {
+					return value == null ? "" : value + "";
+				});
+			}
+
+			hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		});
+	}
+});
+
+jQuery.extend({
+	valHooks: {
+		option: {
+			get: function( elem ) {
+				// attributes.value is undefined in Blackberry 4.7 but
+				// uses .value. See #6932
+				var val = elem.attributes.value;
+				return !val || val.specified ? elem.value : elem.text;
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, i, max, option,
+					index = elem.selectedIndex,
+					values = [],
+					options = elem.options,
+					one = elem.type === "select-one";
+
+				// Nothing was selected
+				if ( index < 0 ) {
+					return null;
+				}
+
+				// Loop through all the selected options
+				i = one ? index : 0;
+				max = one ? index + 1 : options.length;
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Don't return options that are disabled or in a disabled optgroup
+					if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
+							(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				// Fixes Bug #2551 -- select.val() broken in IE after form.reset()
+				if ( one && !values.length && options.length ) {
+					return jQuery( options[ index ] ).val();
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var values = jQuery.makeArray( value );
+
+				jQuery(elem).find("option").each(function() {
+					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
+				});
+
+				if ( !values.length ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	},
+
+	attrFn: {
+		val: true,
+		css: true,
+		html: true,
+		text: true,
+		data: true,
+		width: true,
+		height: true,
+		offset: true
+	},
+
+	attr: function( elem, name, value, pass ) {
+		var ret, hooks, notxml,
+			nType = elem.nodeType;
+
+		// don't get/set attributes on text, comment and attribute nodes
+		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( pass && name in jQuery.attrFn ) {
+			return jQuery( elem )[ name ]( value );
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+		// All attributes are lowercase
+		// Grab necessary hook if one is defined
+		if ( notxml ) {
+			name = name.toLowerCase();
+			hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );
+		}
+
+		if ( value !== undefined ) {
+
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+
+			} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
+				return ret;
+
+			} else {
+				elem.setAttribute( name, "" + value );
+				return value;
+			}
+
+		} else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
+			return ret;
+
+		} else {
+
+			ret = elem.getAttribute( name );
+
+			// Non-existent attributes return null, we normalize to undefined
+			return ret === null ?
+				undefined :
+				ret;
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var propName, attrNames, name, l,
+			i = 0;
+
+		if ( value && elem.nodeType === 1 ) {
+			attrNames = value.toLowerCase().split( rspace );
+			l = attrNames.length;
+
+			for ( ; i < l; i++ ) {
+				name = attrNames[ i ];
+
+				if ( name ) {
+					propName = jQuery.propFix[ name ] || name;
+
+					// See #9699 for explanation of this approach (setting first, then removal)
+					jQuery.attr( elem, name, "" );
+					elem.removeAttribute( getSetAttribute ? name : propName );
+
+					// Set corresponding property to false for boolean attributes
+					if ( rboolean.test( name ) && propName in elem ) {
+						elem[ propName ] = false;
+					}
+				}
+			}
+		}
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				// We can't allow the type property to be changed (since it causes problems in IE)
+				if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
+					jQuery.error( "type property can't be changed" );
+				} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
+					// Setting the type on a radio button after the value resets the value in IE6-9
+					// Reset value to it's default in case type is set after value
+					// This is for element creation
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		},
+		// Use the value property for back compat
+		// Use the nodeHook for button elements in IE6/7 (#1954)
+		value: {
+			get: function( elem, name ) {
+				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+					return nodeHook.get( elem, name );
+				}
+				return name in elem ?
+					elem.value :
+					null;
+			},
+			set: function( elem, value, name ) {
+				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+					return nodeHook.set( elem, value, name );
+				}
+				// Does not return so that setAttribute is also used
+				elem.value = value;
+			}
+		}
+	},
+
+	propFix: {
+		tabindex: "tabIndex",
+		readonly: "readOnly",
+		"for": "htmlFor",
+		"class": "className",
+		maxlength: "maxLength",
+		cellspacing: "cellSpacing",
+		cellpadding: "cellPadding",
+		rowspan: "rowSpan",
+		colspan: "colSpan",
+		usemap: "useMap",
+		frameborder: "frameBorder",
+		contenteditable: "contentEditable"
+	},
+
+	prop: function( elem, name, value ) {
+		var ret, hooks, notxml,
+			nType = elem.nodeType;
+
+		// don't get/set properties on text, comment and attribute nodes
+		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+		if ( notxml ) {
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
+				return ret;
+
+			} else {
+				return ( elem[ name ] = value );
+			}
+
+		} else {
+			if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
+				return ret;
+
+			} else {
+				return elem[ name ];
+			}
+		}
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				var attributeNode = elem.getAttributeNode("tabindex");
+
+				return attributeNode && attributeNode.specified ?
+					parseInt( attributeNode.value, 10 ) :
+					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
+						0 :
+						undefined;
+			}
+		}
+	}
+});
+
+// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional)
+jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex;
+
+// Hook for boolean attributes
+boolHook = {
+	get: function( elem, name ) {
+		// Align boolean attributes with corresponding properties
+		// Fall back to attribute presence where some booleans are not supported
+		var attrNode,
+			property = jQuery.prop( elem, name );
+		return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
+			name.toLowerCase() :
+			undefined;
+	},
+	set: function( elem, value, name ) {
+		var propName;
+		if ( value === false ) {
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			// value is true since we know at this point it's type boolean and not false
+			// Set boolean attributes to the same name and set the DOM property
+			propName = jQuery.propFix[ name ] || name;
+			if ( propName in elem ) {
+				// Only set the IDL specifically if it already exists on the element
+				elem[ propName ] = true;
+			}
+
+			elem.setAttribute( name, name.toLowerCase() );
+		}
+		return name;
+	}
+};
+
+// IE6/7 do not support getting/setting some attributes with get/setAttribute
+if ( !getSetAttribute ) {
+
+	fixSpecified = {
+		name: true,
+		id: true
+	};
+
+	// Use this for any attribute in IE6/7
+	// This fixes almost every IE6/7 issue
+	nodeHook = jQuery.valHooks.button = {
+		get: function( elem, name ) {
+			var ret;
+			ret = elem.getAttributeNode( name );
+			return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ?
+				ret.nodeValue :
+				undefined;
+		},
+		set: function( elem, value, name ) {
+			// Set the existing or create a new attribute node
+			var ret = elem.getAttributeNode( name );
+			if ( !ret ) {
+				ret = document.createAttribute( name );
+				elem.setAttributeNode( ret );
+			}
+			return ( ret.nodeValue = value + "" );
+		}
+	};
+
+	// Apply the nodeHook to tabindex
+	jQuery.attrHooks.tabindex.set = nodeHook.set;
+
+	// Set width and height to auto instead of 0 on empty string( Bug #8150 )
+	// This is for removals
+	jQuery.each([ "width", "height" ], function( i, name ) {
+		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+			set: function( elem, value ) {
+				if ( value === "" ) {
+					elem.setAttribute( name, "auto" );
+					return value;
+				}
+			}
+		});
+	});
+
+	// Set contenteditable to false on removals(#10429)
+	// Setting to empty string throws an error as an invalid value
+	jQuery.attrHooks.contenteditable = {
+		get: nodeHook.get,
+		set: function( elem, value, name ) {
+			if ( value === "" ) {
+				value = "false";
+			}
+			nodeHook.set( elem, value, name );
+		}
+	};
+}
+
+
+// Some attributes require a special call on IE
+if ( !jQuery.support.hrefNormalized ) {
+	jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
+		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+			get: function( elem ) {
+				var ret = elem.getAttribute( name, 2 );
+				return ret === null ? undefined : ret;
+			}
+		});
+	});
+}
+
+if ( !jQuery.support.style ) {
+	jQuery.attrHooks.style = {
+		get: function( elem ) {
+			// Return undefined in the case of empty string
+			// Normalize to lowercase since IE uppercases css property names
+			return elem.style.cssText.toLowerCase() || undefined;
+		},
+		set: function( elem, value ) {
+			return ( elem.style.cssText = "" + value );
+		}
+	};
+}
+
+// Safari mis-reports the default selected property of an option
+// Accessing the parent's selectedIndex property fixes it
+if ( !jQuery.support.optSelected ) {
+	jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
+		get: function( elem ) {
+			var parent = elem.parentNode;
+
+			if ( parent ) {
+				parent.selectedIndex;
+
+				// Make sure that it also works with optgroups, see #5701
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+			return null;
+		}
+	});
+}
+
+// IE6/7 call enctype encoding
+if ( !jQuery.support.enctype ) {
+	jQuery.propFix.enctype = "encoding";
+}
+
+// Radios and checkboxes getter/setter
+if ( !jQuery.support.checkOn ) {
+	jQuery.each([ "radio", "checkbox" ], function() {
+		jQuery.valHooks[ this ] = {
+			get: function( elem ) {
+				// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
+				return elem.getAttribute("value") === null ? "on" : elem.value;
+			}
+		};
+	});
+}
+jQuery.each([ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
+		set: function( elem, value ) {
+			if ( jQuery.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
+			}
+		}
+	});
+});
+
+
+
+
+var rformElems = /^(?:textarea|input|select)$/i,
+	rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/,
+	rhoverHack = /\bhover(\.\S+)?\b/,
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|contextmenu)|click/,
+	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,
+	quickParse = function( selector ) {
+		var quick = rquickIs.exec( selector );
+		if ( quick ) {
+			//   0  1    2   3
+			// [ _, tag, id, class ]
+			quick[1] = ( quick[1] || "" ).toLowerCase();
+			quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" );
+		}
+		return quick;
+	},
+	quickIs = function( elem, m ) {
+		var attrs = elem.attributes || {};
+		return (
+			(!m[1] || elem.nodeName.toLowerCase() === m[1]) &&
+			(!m[2] || (attrs.id || {}).value === m[2]) &&
+			(!m[3] || m[3].test( (attrs[ "class" ] || {}).value ))
+		);
+	},
+	hoverHack = function( events ) {
+		return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
+	};
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var elemData, eventHandle, events,
+			t, tns, type, namespaces, handleObj,
+			handleObjIn, quick, handlers, special;
+
+		// Don't attach events to noData or text/comment nodes (allow plain objects tho)
+		if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		events = elemData.events;
+		if ( !events ) {
+			elemData.events = events = {};
+		}
+		eventHandle = elemData.handle;
+		if ( !eventHandle ) {
+			elemData.handle = eventHandle = function( e ) {
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
+					jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
+					undefined;
+			};
+			// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
+			eventHandle.elem = elem;
+		}
+
+		// Handle multiple events separated by a space
+		// jQuery(...).bind("mouseover mouseout", fn);
+		types = jQuery.trim( hoverHack(types) ).split( " " );
+		for ( t = 0; t < types.length; t++ ) {
+
+			tns = rtypenamespace.exec( types[t] ) || [];
+			type = tns[1];
+			namespaces = ( tns[2] || "" ).split( "." ).sort();
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend({
+				type: type,
+				origType: tns[1],
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				quick: quickParse( selector ),
+				namespace: namespaces.join(".")
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			handlers = events[ type ];
+			if ( !handlers ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener/attachEvent if the special events handler returns false
+				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+					// Bind the global event handler to the element
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle, false );
+
+					} else if ( elem.attachEvent ) {
+						elem.attachEvent( "on" + type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+		// Nullify elem to prevent memory leaks in IE
+		elem = null;
+	},
+
+	global: {},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
+			t, tns, type, origType, namespaces, origCount,
+			j, events, special, handle, eventType, handleObj;
+
+		if ( !elemData || !(events = elemData.events) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = jQuery.trim( hoverHack( types || "" ) ).split(" ");
+		for ( t = 0; t < types.length; t++ ) {
+			tns = rtypenamespace.exec( types[t] ) || [];
+			type = origType = tns[1];
+			namespaces = tns[2];
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector? special.delegateType : special.bindType ) || type;
+			eventType = events[ type ] || [];
+			origCount = eventType.length;
+			namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
+
+			// Remove matching events
+			for ( j = 0; j < eventType.length; j++ ) {
+				handleObj = eventType[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					 ( !handler || handler.guid === handleObj.guid ) &&
+					 ( !namespaces || namespaces.test( handleObj.namespace ) ) &&
+					 ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
+					eventType.splice( j--, 1 );
+
+					if ( handleObj.selector ) {
+						eventType.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( eventType.length === 0 && origCount !== eventType.length ) {
+				if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			handle = elemData.handle;
+			if ( handle ) {
+				handle.elem = null;
+			}
+
+			// removeData also checks for emptiness and clears the expando if empty
+			// so use it instead of delete
+			jQuery.removeData( elem, [ "events", "handle" ], true );
+		}
+	},
+
+	// Events that are safe to short-circuit if no handlers are attached.
+	// Native DOM events should not be added, they may have inline handlers.
+	customEvent: {
+		"getData": true,
+		"setData": true,
+		"changeData": true
+	},
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+		// Don't do events on text and comment nodes
+		if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {
+			return;
+		}
+
+		// Event object or event type
+		var type = event.type || event,
+			namespaces = [],
+			cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType;
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "!" ) >= 0 ) {
+			// Exclusive events trigger only for the exact event (no namespaces)
+			type = type.slice(0, -1);
+			exclusive = true;
+		}
+
+		if ( type.indexOf( "." ) >= 0 ) {
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split(".");
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+
+		if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
+			// No jQuery handlers for this event type, and it can't have inline handlers
+			return;
+		}
+
+		// Caller can pass in an Event, Object, or just an event type string
+		event = typeof event === "object" ?
+			// jQuery.Event object
+			event[ jQuery.expando ] ? event :
+			// Object literal
+			new jQuery.Event( type, event ) :
+			// Just the event type (string)
+			new jQuery.Event( type );
+
+		event.type = type;
+		event.isTrigger = true;
+		event.exclusive = exclusive;
+		event.namespace = namespaces.join( "." );
+		event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
+		ontype = type.indexOf( ":" ) < 0 ? "on" + type : "";
+
+		// Handle a global trigger
+		if ( !elem ) {
+
+			// TODO: Stop taunting the data cache; remove global events and always attach to document
+			cache = jQuery.cache;
+			for ( i in cache ) {
+				if ( cache[ i ].events && cache[ i ].events[ type ] ) {
+					jQuery.event.trigger( event, data, cache[ i ].handle.elem, true );
+				}
+			}
+			return;
+		}
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data != null ? jQuery.makeArray( data ) : [];
+		data.unshift( event );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		eventPath = [[ elem, special.bindType || type ]];
+		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode;
+			old = null;
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push([ cur, bubbleType ]);
+				old = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( old && old === elem.ownerDocument ) {
+				eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);
+			}
+		}
+
+		// Fire handlers on the event path
+		for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) {
+
+			cur = eventPath[i][0];
+			event.type = eventPath[i][1];
+
+			handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+			// Note that this is a bare JS function and not a jQuery handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) {
+				event.preventDefault();
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) &&
+				!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name name as the event.
+				// Can't use an .isFunction() check here because IE6/7 fails that test.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				// IE<9 dies on focus/blur to hidden element (#1486)
+				if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					old = elem[ ontype ];
+
+					if ( old ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+					elem[ type ]();
+					jQuery.event.triggered = undefined;
+
+					if ( old ) {
+						elem[ ontype ] = old;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	dispatch: function( event ) {
+
+		// Make a writable jQuery.Event from the native event object
+		event = jQuery.event.fix( event || window.event );
+
+		var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []),
+			delegateCount = handlers.delegateCount,
+			args = [].slice.call( arguments, 0 ),
+			run_all = !event.exclusive && !event.namespace,
+			handlerQueue = [],
+			i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related;
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[0] = event;
+		event.delegateTarget = this;
+
+		// Determine handlers that should run if there are delegated events
+		// Avoid disabled elements in IE (#6911) and non-left-click bubbling in Firefox (#3861)
+		if ( delegateCount && !event.target.disabled && !(event.button && event.type === "click") ) {
+
+			// Pregenerate a single jQuery object for reuse with .is()
+			jqcur = jQuery(this);
+			jqcur.context = this.ownerDocument || this;
+
+			for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {
+				selMatch = {};
+				matches = [];
+				jqcur[0] = cur;
+				for ( i = 0; i < delegateCount; i++ ) {
+					handleObj = handlers[ i ];
+					sel = handleObj.selector;
+
+					if ( selMatch[ sel ] === undefined ) {
+						selMatch[ sel ] = (
+							handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel )
+						);
+					}
+					if ( selMatch[ sel ] ) {
+						matches.push( handleObj );
+					}
+				}
+				if ( matches.length ) {
+					handlerQueue.push({ elem: cur, matches: matches });
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		if ( handlers.length > delegateCount ) {
+			handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) });
+		}
+
+		// Run delegates first; they may want to stop propagation beneath us
+		for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) {
+			matched = handlerQueue[ i ];
+			event.currentTarget = matched.elem;
+
+			for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) {
+				handleObj = matched.matches[ j ];
+
+				// Triggered event must either 1) be non-exclusive and have no namespace, or
+				// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
+				if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {
+
+					event.data = handleObj.data;
+					event.handleObj = handleObj;
+
+					ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
+							.apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						event.result = ret;
+						if ( ret === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Includes some event props shared by KeyEvent and MouseEvent
+	// *** attrChange attrName relatedNode srcElement  are not normalized, non-W3C, deprecated, will be removed in 1.8 ***
+	props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
+
+	fixHooks: {},
+
+	keyHooks: {
+		props: "char charCode key keyCode".split(" "),
+		filter: function( event, original ) {
+
+			// Add which for key events
+			if ( event.which == null ) {
+				event.which = original.charCode != null ? original.charCode : original.keyCode;
+			}
+
+			return event;
+		}
+	},
+
+	mouseHooks: {
+		props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
+		filter: function( event, original ) {
+			var eventDoc, doc, body,
+				button = original.button,
+				fromElement = original.fromElement;
+
+			// Calculate pageX/Y if missing and clientX/Y available
+			if ( event.pageX == null && original.clientX != null ) {
+				eventDoc = event.target.ownerDocument || document;
+				doc = eventDoc.documentElement;
+				body = eventDoc.body;
+
+				event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
+				event.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );
+			}
+
+			// Add relatedTarget, if necessary
+			if ( !event.relatedTarget && fromElement ) {
+				event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
+			}
+
+			// Add which for click: 1 === left; 2 === middle; 3 === right
+			// Note: button is not normalized, so don't use it
+			if ( !event.which && button !== undefined ) {
+				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+			}
+
+			return event;
+		}
+	},
+
+	fix: function( event ) {
+		if ( event[ jQuery.expando ] ) {
+			return event;
+		}
+
+		// Create a writable copy of the event object and normalize some properties
+		var i, prop,
+			originalEvent = event,
+			fixHook = jQuery.event.fixHooks[ event.type ] || {},
+			copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+		event = jQuery.Event( originalEvent );
+
+		for ( i = copy.length; i; ) {
+			prop = copy[ --i ];
+			event[ prop ] = originalEvent[ prop ];
+		}
+
+		// Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)
+		if ( !event.target ) {
+			event.target = originalEvent.srcElement || document;
+		}
+
+		// Target should not be a text node (#504, Safari)
+		if ( event.target.nodeType === 3 ) {
+			event.target = event.target.parentNode;
+		}
+
+		// For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8)
+		if ( event.metaKey === undefined ) {
+			event.metaKey = event.ctrlKey;
+		}
+
+		return fixHook.filter? fixHook.filter( event, originalEvent ) : event;
+	},
+
+	special: {
+		ready: {
+			// Make sure the ready event is setup
+			setup: jQuery.bindReady
+		},
+
+		load: {
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+
+		focus: {
+			delegateType: "focusin"
+		},
+		blur: {
+			delegateType: "focusout"
+		},
+
+		beforeunload: {
+			setup: function( data, namespaces, eventHandle ) {
+				// We only want to do this special case on windows
+				if ( jQuery.isWindow( this ) ) {
+					this.onbeforeunload = eventHandle;
+				}
+			},
+
+			teardown: function( namespaces, eventHandle ) {
+				if ( this.onbeforeunload === eventHandle ) {
+					this.onbeforeunload = null;
+				}
+			}
+		}
+	},
+
+	simulate: function( type, elem, event, bubble ) {
+		// Piggyback on a donor event to simulate a different one.
+		// Fake originalEvent to avoid donor's stopPropagation, but if the
+		// simulated event prevents default then we do the same on the donor.
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{ type: type,
+				isSimulated: true,
+				originalEvent: {}
+			}
+		);
+		if ( bubble ) {
+			jQuery.event.trigger( e, null, elem );
+		} else {
+			jQuery.event.dispatch.call( elem, e );
+		}
+		if ( e.isDefaultPrevented() ) {
+			event.preventDefault();
+		}
+	}
+};
+
+// Some plugins are using, but it's undocumented/deprecated and will be removed.
+// The 1.7 special event interface should provide all the hooks needed now.
+jQuery.event.handle = jQuery.event.dispatch;
+
+jQuery.removeEvent = document.removeEventListener ?
+	function( elem, type, handle ) {
+		if ( elem.removeEventListener ) {
+			elem.removeEventListener( type, handle, false );
+		}
+	} :
+	function( elem, type, handle ) {
+		if ( elem.detachEvent ) {
+			elem.detachEvent( "on" + type, handle );
+		}
+	};
+
+jQuery.Event = function( src, props ) {
+	// Allow instantiation without the 'new' keyword
+	if ( !(this instanceof jQuery.Event) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
+			src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || jQuery.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+function returnFalse() {
+	return false;
+}
+function returnTrue() {
+	return true;
+}
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	preventDefault: function() {
+		this.isDefaultPrevented = returnTrue;
+
+		var e = this.originalEvent;
+		if ( !e ) {
+			return;
+		}
+
+		// if preventDefault exists run it on the original event
+		if ( e.preventDefault ) {
+			e.preventDefault();
+
+		// otherwise set the returnValue property of the original event to false (IE)
+		} else {
+			e.returnValue = false;
+		}
+	},
+	stopPropagation: function() {
+		this.isPropagationStopped = returnTrue;
+
+		var e = this.originalEvent;
+		if ( !e ) {
+			return;
+		}
+		// if stopPropagation exists run it on the original event
+		if ( e.stopPropagation ) {
+			e.stopPropagation();
+		}
+		// otherwise set the cancelBubble property of the original event to true (IE)
+		e.cancelBubble = true;
+	},
+	stopImmediatePropagation: function() {
+		this.isImmediatePropagationStopped = returnTrue;
+		this.stopPropagation();
+	},
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse
+};
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+jQuery.each({
+	mouseenter: "mouseover",
+	mouseleave: "mouseout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj,
+				selector = handleObj.selector,
+				ret;
+
+			// For mousenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+});
+
+// IE submit delegation
+if ( !jQuery.support.submitBubbles ) {
+
+	jQuery.event.special.submit = {
+		setup: function() {
+			// Only need this for delegated form submit events
+			if ( jQuery.nodeName( this, "form" ) ) {
+				return false;
+			}
+
+			// Lazy-add a submit handler when a descendant form may potentially be submitted
+			jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
+				// Node name check avoids a VML-related crash in IE (#9807)
+				var elem = e.target,
+					form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
+				if ( form && !form._submit_attached ) {
+					jQuery.event.add( form, "submit._submit", function( event ) {
+						// If form was submitted by the user, bubble the event up the tree
+						if ( this.parentNode && !event.isTrigger ) {
+							jQuery.event.simulate( "submit", this.parentNode, event, true );
+						}
+					});
+					form._submit_attached = true;
+				}
+			});
+			// return undefined since we don't need an event listener
+		},
+
+		teardown: function() {
+			// Only need this for delegated form submit events
+			if ( jQuery.nodeName( this, "form" ) ) {
+				return false;
+			}
+
+			// Remove delegated handlers; cleanData eventually reaps submit handlers attached above
+			jQuery.event.remove( this, "._submit" );
+		}
+	};
+}
+
+// IE change delegation and checkbox/radio fix
+if ( !jQuery.support.changeBubbles ) {
+
+	jQuery.event.special.change = {
+
+		setup: function() {
+
+			if ( rformElems.test( this.nodeName ) ) {
+				// IE doesn't fire change on a check/radio until blur; trigger it on click
+				// after a propertychange. Eat the blur-change in special.change.handle.
+				// This still fires onchange a second time for check/radio after blur.
+				if ( this.type === "checkbox" || this.type === "radio" ) {
+					jQuery.event.add( this, "propertychange._change", function( event ) {
+						if ( event.originalEvent.propertyName === "checked" ) {
+							this._just_changed = true;
+						}
+					});
+					jQuery.event.add( this, "click._change", function( event ) {
+						if ( this._just_changed && !event.isTrigger ) {
+							this._just_changed = false;
+							jQuery.event.simulate( "change", this, event, true );
+						}
+					});
+				}
+				return false;
+			}
+			// Delegated event; lazy-add a change handler on descendant inputs
+			jQuery.event.add( this, "beforeactivate._change", function( e ) {
+				var elem = e.target;
+
+				if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) {
+					jQuery.event.add( elem, "change._change", function( event ) {
+						if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
+							jQuery.event.simulate( "change", this.parentNode, event, true );
+						}
+					});
+					elem._change_attached = true;
+				}
+			});
+		},
+
+		handle: function( event ) {
+			var elem = event.target;
+
+			// Swallow native change events from checkbox/radio, we already triggered them above
+			if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
+				return event.handleObj.handler.apply( this, arguments );
+			}
+		},
+
+		teardown: function() {
+			jQuery.event.remove( this, "._change" );
+
+			return rformElems.test( this.nodeName );
+		}
+	};
+}
+
+// Create "bubbling" focus and blur events
+if ( !jQuery.support.focusinBubbles ) {
+	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler while someone wants focusin/focusout
+		var attaches = 0,
+			handler = function( event ) {
+				jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
+			};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				if ( attaches++ === 0 ) {
+					document.addEventListener( orig, handler, true );
+				}
+			},
+			teardown: function() {
+				if ( --attaches === 0 ) {
+					document.removeEventListener( orig, handler, true );
+				}
+			}
+		};
+	});
+}
+
+jQuery.fn.extend({
+
+	on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
+		var origFn, type;
+
+		// Types can be a map of types/handlers
+		if ( typeof types === "object" ) {
+			// ( types-Object, selector, data )
+			if ( typeof selector !== "string" ) {
+				// ( types-Object, data )
+				data = selector;
+				selector = undefined;
+			}
+			for ( type in types ) {
+				this.on( type, selector, data, types[ type ], one );
+			}
+			return this;
+		}
+
+		if ( data == null && fn == null ) {
+			// ( types, fn )
+			fn = selector;
+			data = selector = undefined;
+		} else if ( fn == null ) {
+			if ( typeof selector === "string" ) {
+				// ( types, selector, fn )
+				fn = data;
+				data = undefined;
+			} else {
+				// ( types, data, fn )
+				fn = data;
+				data = selector;
+				selector = undefined;
+			}
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		} else if ( !fn ) {
+			return this;
+		}
+
+		if ( one === 1 ) {
+			origFn = fn;
+			fn = function( event ) {
+				// Can use an empty set, since event contains the info
+				jQuery().off( event );
+				return origFn.apply( this, arguments );
+			};
+			// Use same guid so caller can remove using origFn
+			fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+		}
+		return this.each( function() {
+			jQuery.event.add( this, types, fn, data, selector );
+		});
+	},
+	one: function( types, selector, data, fn ) {
+		return this.on.call( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		if ( types && types.preventDefault && types.handleObj ) {
+			// ( event )  dispatched jQuery.Event
+			var handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace? handleObj.type + "." + handleObj.namespace : handleObj.type,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+			// ( types-object [, selector] )
+			for ( var type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each(function() {
+			jQuery.event.remove( this, types, fn, selector );
+		});
+	},
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	live: function( types, data, fn ) {
+		jQuery( this.context ).on( types, this.selector, data, fn );
+		return this;
+	},
+	die: function( types, fn ) {
+		jQuery( this.context ).off( types, this.selector || "**", fn );
+		return this;
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn );
+	},
+
+	trigger: function( type, data ) {
+		return this.each(function() {
+			jQuery.event.trigger( type, data, this );
+		});
+	},
+	triggerHandler: function( type, data ) {
+		if ( this[0] ) {
+			return jQuery.event.trigger( type, data, this[0], true );
+		}
+	},
+
+	toggle: function( fn ) {
+		// Save reference to arguments for access in closure
+		var args = arguments,
+			guid = fn.guid || jQuery.guid++,
+			i = 0,
+			toggler = function( event ) {
+				// Figure out which function to execute
+				var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
+				jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
+
+				// Make sure that clicks stop
+				event.preventDefault();
+
+				// and execute the function
+				return args[ lastToggle ].apply( this, arguments ) || false;
+			};
+
+		// link all the functions, so any of them can unbind this click handler
+		toggler.guid = guid;
+		while ( i < args.length ) {
+			args[ i++ ].guid = guid;
+		}
+
+		return this.click( toggler );
+	},
+
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+});
+
+jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		if ( fn == null ) {
+			fn = data;
+			data = null;
+		}
+
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+
+	if ( jQuery.attrFn ) {
+		jQuery.attrFn[ name ] = true;
+	}
+
+	if ( rkeyEvent.test( name ) ) {
+		jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
+	}
+
+	if ( rmouseEvent.test( name ) ) {
+		jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
+	}
+});
+
+
+
+/*!
+ * Sizzle CSS Selector Engine
+ *  Copyright 2012, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+	expando = "sizcache" + (Math.random() + '').replace('.', ''),
+	done = 0,
+	toString = Object.prototype.toString,
+	hasDuplicate = false,
+	baseHasDuplicate = true,
+	rBackslash = /\\/g,
+	rReturn = /\r\n/g,
+	rNonWord = /\W/;
+
+// Here we check if the JavaScript engine is using some sort of
+// optimization where it does not always call our comparision
+// function. If that is the case, discard the hasDuplicate value.
+//   Thus far that includes Google Chrome.
+[0, 0].sort(function() {
+	baseHasDuplicate = false;
+	return 0;
+});
+
+var Sizzle = function( selector, context, results, seed ) {
+	results = results || [];
+	context = context || document;
+
+	var origContext = context;
+
+	if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
+		return [];
+	}
+
+	if ( !selector || typeof selector !== "string" ) {
+		return results;
+	}
+
+	var m, set, checkSet, extra, ret, cur, pop, i,
+		prune = true,
+		contextXML = Sizzle.isXML( context ),
+		parts = [],
+		soFar = selector;
+
+	// Reset the position of the chunker regexp (start from head)
+	do {
+		chunker.exec( "" );
+		m = chunker.exec( soFar );
+
+		if ( m ) {
+			soFar = m[3];
+
+			parts.push( m[1] );
+
+			if ( m[2] ) {
+				extra = m[3];
+				break;
+			}
+		}
+	} while ( m );
+
+	if ( parts.length > 1 && origPOS.exec( selector ) ) {
+
+		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+			set = posProcess( parts[0] + parts[1], context, seed );
+
+		} else {
+			set = Expr.relative[ parts[0] ] ?
+				[ context ] :
+				Sizzle( parts.shift(), context );
+
+			while ( parts.length ) {
+				selector = parts.shift();
+
+				if ( Expr.relative[ selector ] ) {
+					selector += parts.shift();
+				}
+
+				set = posProcess( selector, set, seed );
+			}
+		}
+
+	} else {
+		// Take a shortcut and set the context if the root selector is an ID
+		// (but not if it'll be faster if the inner selector is an ID)
+		if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+				Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
+
+			ret = Sizzle.find( parts.shift(), context, contextXML );
+			context = ret.expr ?
+				Sizzle.filter( ret.expr, ret.set )[0] :
+				ret.set[0];
+		}
+
+		if ( context ) {
+			ret = seed ?
+				{ expr: parts.pop(), set: makeArray(seed) } :
+				Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+
+			set = ret.expr ?
+				Sizzle.filter( ret.expr, ret.set ) :
+				ret.set;
+
+			if ( parts.length > 0 ) {
+				checkSet = makeArray( set );
+
+			} else {
+				prune = false;
+			}
+
+			while ( parts.length ) {
+				cur = parts.pop();
+				pop = cur;
+
+				if ( !Expr.relative[ cur ] ) {
+					cur = "";
+				} else {
+					pop = parts.pop();
+				}
+
+				if ( pop == null ) {
+					pop = context;
+				}
+
+				Expr.relative[ cur ]( checkSet, pop, contextXML );
+			}
+
+		} else {
+			checkSet = parts = [];
+		}
+	}
+
+	if ( !checkSet ) {
+		checkSet = set;
+	}
+
+	if ( !checkSet ) {
+		Sizzle.error( cur || selector );
+	}
+
+	if ( toString.call(checkSet) === "[object Array]" ) {
+		if ( !prune ) {
+			results.push.apply( results, checkSet );
+
+		} else if ( context && context.nodeType === 1 ) {
+			for ( i = 0; checkSet[i] != null; i++ ) {
+				if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
+					results.push( set[i] );
+				}
+			}
+
+		} else {
+			for ( i = 0; checkSet[i] != null; i++ ) {
+				if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+					results.push( set[i] );
+				}
+			}
+		}
+
+	} else {
+		makeArray( checkSet, results );
+	}
+
+	if ( extra ) {
+		Sizzle( extra, origContext, results, seed );
+		Sizzle.uniqueSort( results );
+	}
+
+	return results;
+};
+
+Sizzle.uniqueSort = function( results ) {
+	if ( sortOrder ) {
+		hasDuplicate = baseHasDuplicate;
+		results.sort( sortOrder );
+
+		if ( hasDuplicate ) {
+			for ( var i = 1; i < results.length; i++ ) {
+				if ( results[i] === results[ i - 1 ] ) {
+					results.splice( i--, 1 );
+				}
+			}
+		}
+	}
+
+	return results;
+};
+
+Sizzle.matches = function( expr, set ) {
+	return Sizzle( expr, null, null, set );
+};
+
+Sizzle.matchesSelector = function( node, expr ) {
+	return Sizzle( expr, null, null, [node] ).length > 0;
+};
+
+Sizzle.find = function( expr, context, isXML ) {
+	var set, i, len, match, type, left;
+
+	if ( !expr ) {
+		return [];
+	}
+
+	for ( i = 0, len = Expr.order.length; i < len; i++ ) {
+		type = Expr.order[i];
+
+		if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
+			left = match[1];
+			match.splice( 1, 1 );
+
+			if ( left.substr( left.length - 1 ) !== "\\" ) {
+				match[1] = (match[1] || "").replace( rBackslash, "" );
+				set = Expr.find[ type ]( match, context, isXML );
+
+				if ( set != null ) {
+					expr = expr.replace( Expr.match[ type ], "" );
+					break;
+				}
+			}
+		}
+	}
+
+	if ( !set ) {
+		set = typeof context.getElementsByTagName !== "undefined" ?
+			context.getElementsByTagName( "*" ) :
+			[];
+	}
+
+	return { set: set, expr: expr };
+};
+
+Sizzle.filter = function( expr, set, inplace, not ) {
+	var match, anyFound,
+		type, found, item, filter, left,
+		i, pass,
+		old = expr,
+		result = [],
+		curLoop = set,
+		isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
+
+	while ( expr && set.length ) {
+		for ( type in Expr.filter ) {
+			if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
+				filter = Expr.filter[ type ];
+				left = match[1];
+
+				anyFound = false;
+
+				match.splice(1,1);
+
+				if ( left.substr( left.length - 1 ) === "\\" ) {
+					continue;
+				}
+
+				if ( curLoop === result ) {
+					result = [];
+				}
+
+				if ( Expr.preFilter[ type ] ) {
+					match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+					if ( !match ) {
+						anyFound = found = true;
+
+					} else if ( match === true ) {
+						continue;
+					}
+				}
+
+				if ( match ) {
+					for ( i = 0; (item = curLoop[i]) != null; i++ ) {
+						if ( item ) {
+							found = filter( item, match, i, curLoop );
+							pass = not ^ found;
+
+							if ( inplace && found != null ) {
+								if ( pass ) {
+									anyFound = true;
+
+								} else {
+									curLoop[i] = false;
+								}
+
+							} else if ( pass ) {
+								result.push( item );
+								anyFound = true;
+							}
+						}
+					}
+				}
+
+				if ( found !== undefined ) {
+					if ( !inplace ) {
+						curLoop = result;
+					}
+
+					expr = expr.replace( Expr.match[ type ], "" );
+
+					if ( !anyFound ) {
+						return [];
+					}
+
+					break;
+				}
+			}
+		}
+
+		// Improper expression
+		if ( expr === old ) {
+			if ( anyFound == null ) {
+				Sizzle.error( expr );
+
+			} else {
+				break;
+			}
+		}
+
+		old = expr;
+	}
+
+	return curLoop;
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Utility function for retreiving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+var getText = Sizzle.getText = function( elem ) {
+    var i, node,
+		nodeType = elem.nodeType,
+		ret = "";
+
+	if ( nodeType ) {
+		if ( nodeType === 1 || nodeType === 9 ) {
+			// Use textContent || innerText for elements
+			if ( typeof elem.textContent === 'string' ) {
+				return elem.textContent;
+			} else if ( typeof elem.innerText === 'string' ) {
+				// Replace IE's carriage returns
+				return elem.innerText.replace( rReturn, '' );
+			} else {
+				// Traverse it's children
+				for ( elem = elem.firstChild; elem; elem = elem.nextSibling) {
+					ret += getText( elem );
+				}
+			}
+		} else if ( nodeType === 3 || nodeType === 4 ) {
+			return elem.nodeValue;
+		}
+	} else {
+
+		// If no nodeType, this is expected to be an array
+		for ( i = 0; (node = elem[i]); i++ ) {
+			// Do not traverse comment nodes
+			if ( node.nodeType !== 8 ) {
+				ret += getText( node );
+			}
+		}
+	}
+	return ret;
+};
+
+var Expr = Sizzle.selectors = {
+	order: [ "ID", "NAME", "TAG" ],
+
+	match: {
+		ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+		CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+		NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
+		ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
+		TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
+		CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
+		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
+		PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+	},
+
+	leftMatch: {},
+
+	attrMap: {
+		"class": "className",
+		"for": "htmlFor"
+	},
+
+	attrHandle: {
+		href: function( elem ) {
+			return elem.getAttribute( "href" );
+		},
+		type: function( elem ) {
+			return elem.getAttribute( "type" );
+		}
+	},
+
+	relative: {
+		"+": function(checkSet, part){
+			var isPartStr = typeof part === "string",
+				isTag = isPartStr && !rNonWord.test( part ),
+				isPartStrNotTag = isPartStr && !isTag;
+
+			if ( isTag ) {
+				part = part.toLowerCase();
+			}
+
+			for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+				if ( (elem = checkSet[i]) ) {
+					while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+					checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
+						elem || false :
+						elem === part;
+				}
+			}
+
+			if ( isPartStrNotTag ) {
+				Sizzle.filter( part, checkSet, true );
+			}
+		},
+
+		">": function( checkSet, part ) {
+			var elem,
+				isPartStr = typeof part === "string",
+				i = 0,
+				l = checkSet.length;
+
+			if ( isPartStr && !rNonWord.test( part ) ) {
+				part = part.toLowerCase();
+
+				for ( ; i < l; i++ ) {
+					elem = checkSet[i];
+
+					if ( elem ) {
+						var parent = elem.parentNode;
+						checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
+					}
+				}
+
+			} else {
+				for ( ; i < l; i++ ) {
+					elem = checkSet[i];
+
+					if ( elem ) {
+						checkSet[i] = isPartStr ?
+							elem.parentNode :
+							elem.parentNode === part;
+					}
+				}
+
+				if ( isPartStr ) {
+					Sizzle.filter( part, checkSet, true );
+				}
+			}
+		},
+
+		"": function(checkSet, part, isXML){
+			var nodeCheck,
+				doneName = done++,
+				checkFn = dirCheck;
+
+			if ( typeof part === "string" && !rNonWord.test( part ) ) {
+				part = part.toLowerCase();
+				nodeCheck = part;
+				checkFn = dirNodeCheck;
+			}
+
+			checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
+		},
+
+		"~": function( checkSet, part, isXML ) {
+			var nodeCheck,
+				doneName = done++,
+				checkFn = dirCheck;
+
+			if ( typeof part === "string" && !rNonWord.test( part ) ) {
+				part = part.toLowerCase();
+				nodeCheck = part;
+				checkFn = dirNodeCheck;
+			}
+
+			checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
+		}
+	},
+
+	find: {
+		ID: function( match, context, isXML ) {
+			if ( typeof context.getElementById !== "undefined" && !isXML ) {
+				var m = context.getElementById(match[1]);
+				// Check parentNode to catch when Blackberry 4.6 returns
+				// nodes that are no longer in the document #6963
+				return m && m.parentNode ? [m] : [];
+			}
+		},
+
+		NAME: function( match, context ) {
+			if ( typeof context.getElementsByName !== "undefined" ) {
+				var ret = [],
+					results = context.getElementsByName( match[1] );
+
+				for ( var i = 0, l = results.length; i < l; i++ ) {
+					if ( results[i].getAttribute("name") === match[1] ) {
+						ret.push( results[i] );
+					}
+				}
+
+				return ret.length === 0 ? null : ret;
+			}
+		},
+
+		TAG: function( match, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( match[1] );
+			}
+		}
+	},
+	preFilter: {
+		CLASS: function( match, curLoop, inplace, result, not, isXML ) {
+			match = " " + match[1].replace( rBackslash, "" ) + " ";
+
+			if ( isXML ) {
+				return match;
+			}
+
+			for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+				if ( elem ) {
+					if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
+						if ( !inplace ) {
+							result.push( elem );
+						}
+
+					} else if ( inplace ) {
+						curLoop[i] = false;
+					}
+				}
+			}
+
+			return false;
+		},
+
+		ID: function( match ) {
+			return match[1].replace( rBackslash, "" );
+		},
+
+		TAG: function( match, curLoop ) {
+			return match[1].replace( rBackslash, "" ).toLowerCase();
+		},
+
+		CHILD: function( match ) {
+			if ( match[1] === "nth" ) {
+				if ( !match[2] ) {
+					Sizzle.error( match[0] );
+				}
+
+				match[2] = match[2].replace(/^\+|\s*/g, '');
+
+				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+				var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
+					match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
+					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+				// calculate the numbers (first)n+(last) including if they are negative
+				match[2] = (test[1] + (test[2] || 1)) - 0;
+				match[3] = test[3] - 0;
+			}
+			else if ( match[2] ) {
+				Sizzle.error( match[0] );
+			}
+
+			// TODO: Move to normal caching system
+			match[0] = done++;
+
+			return match;
+		},
+
+		ATTR: function( match, curLoop, inplace, result, not, isXML ) {
+			var name = match[1] = match[1].replace( rBackslash, "" );
+
+			if ( !isXML && Expr.attrMap[name] ) {
+				match[1] = Expr.attrMap[name];
+			}
+
+			// Handle if an un-quoted value was used
+			match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
+
+			if ( match[2] === "~=" ) {
+				match[4] = " " + match[4] + " ";
+			}
+
+			return match;
+		},
+
+		PSEUDO: function( match, curLoop, inplace, result, not ) {
+			if ( match[1] === "not" ) {
+				// If we're dealing with a complex expression, or a simple one
+				if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
+					match[3] = Sizzle(match[3], null, null, curLoop);
+
+				} else {
+					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+
+					if ( !inplace ) {
+						result.push.apply( result, ret );
+					}
+
+					return false;
+				}
+
+			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+				return true;
+			}
+
+			return match;
+		},
+
+		POS: function( match ) {
+			match.unshift( true );
+
+			return match;
+		}
+	},
+
+	filters: {
+		enabled: function( elem ) {
+			return elem.disabled === false && elem.type !== "hidden";
+		},
+
+		disabled: function( elem ) {
+			return elem.disabled === true;
+		},
+
+		checked: function( elem ) {
+			return elem.checked === true;
+		},
+
+		selected: function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		parent: function( elem ) {
+			return !!elem.firstChild;
+		},
+
+		empty: function( elem ) {
+			return !elem.firstChild;
+		},
+
+		has: function( elem, i, match ) {
+			return !!Sizzle( match[3], elem ).length;
+		},
+
+		header: function( elem ) {
+			return (/h\d/i).test( elem.nodeName );
+		},
+
+		text: function( elem ) {
+			var attr = elem.getAttribute( "type" ), type = elem.type;
+			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
+			// use getAttribute instead to test this case
+			return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
+		},
+
+		radio: function( elem ) {
+			return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
+		},
+
+		checkbox: function( elem ) {
+			return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
+		},
+
+		file: function( elem ) {
+			return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
+		},
+
+		password: function( elem ) {
+			return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
+		},
+
+		submit: function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return (name === "input" || name === "button") && "submit" === elem.type;
+		},
+
+		image: function( elem ) {
+			return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
+		},
+
+		reset: function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return (name === "input" || name === "button") && "reset" === elem.type;
+		},
+
+		button: function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && "button" === elem.type || name === "button";
+		},
+
+		input: function( elem ) {
+			return (/input|select|textarea|button/i).test( elem.nodeName );
+		},
+
+		focus: function( elem ) {
+			return elem === elem.ownerDocument.activeElement;
+		}
+	},
+	setFilters: {
+		first: function( elem, i ) {
+			return i === 0;
+		},
+
+		last: function( elem, i, match, array ) {
+			return i === array.length - 1;
+		},
+
+		even: function( elem, i ) {
+			return i % 2 === 0;
+		},
+
+		odd: function( elem, i ) {
+			return i % 2 === 1;
+		},
+
+		lt: function( elem, i, match ) {
+			return i < match[3] - 0;
+		},
+
+		gt: function( elem, i, match ) {
+			return i > match[3] - 0;
+		},
+
+		nth: function( elem, i, match ) {
+			return match[3] - 0 === i;
+		},
+
+		eq: function( elem, i, match ) {
+			return match[3] - 0 === i;
+		}
+	},
+	filter: {
+		PSEUDO: function( elem, match, i, array ) {
+			var name = match[1],
+				filter = Expr.filters[ name ];
+
+			if ( filter ) {
+				return filter( elem, i, match, array );
+
+			} else if ( name === "contains" ) {
+				return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0;
+
+			} else if ( name === "not" ) {
+				var not = match[3];
+
+				for ( var j = 0, l = not.length; j < l; j++ ) {
+					if ( not[j] === elem ) {
+						return false;
+					}
+				}
+
+				return true;
+
+			} else {
+				Sizzle.error( name );
+			}
+		},
+
+		CHILD: function( elem, match ) {
+			var first, last,
+				doneName, parent, cache,
+				count, diff,
+				type = match[1],
+				node = elem;
+
+			switch ( type ) {
+				case "only":
+				case "first":
+					while ( (node = node.previousSibling) )	 {
+						if ( node.nodeType === 1 ) {
+							return false;
+						}
+					}
+
+					if ( type === "first" ) {
+						return true;
+					}
+
+					node = elem;
+
+				case "last":
+					while ( (node = node.nextSibling) )	 {
+						if ( node.nodeType === 1 ) {
+							return false;
+						}
+					}
+
+					return true;
+
+				case "nth":
+					first = match[2];
+					last = match[3];
+
+					if ( first === 1 && last === 0 ) {
+						return true;
+					}
+
+					doneName = match[0];
+					parent = elem.parentNode;
+
+					if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) {
+						count = 0;
+
+						for ( node = parent.firstChild; node; node = node.nextSibling ) {
+							if ( node.nodeType === 1 ) {
+								node.nodeIndex = ++count;
+							}
+						}
+
+						parent[ expando ] = doneName;
+					}
+
+					diff = elem.nodeIndex - last;
+
+					if ( first === 0 ) {
+						return diff === 0;
+
+					} else {
+						return ( diff % first === 0 && diff / first >= 0 );
+					}
+			}
+		},
+
+		ID: function( elem, match ) {
+			return elem.nodeType === 1 && elem.getAttribute("id") === match;
+		},
+
+		TAG: function( elem, match ) {
+			return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match;
+		},
+
+		CLASS: function( elem, match ) {
+			return (" " + (elem.className || elem.getAttribute("class")) + " ")
+				.indexOf( match ) > -1;
+		},
+
+		ATTR: function( elem, match ) {
+			var name = match[1],
+				result = Sizzle.attr ?
+					Sizzle.attr( elem, name ) :
+					Expr.attrHandle[ name ] ?
+					Expr.attrHandle[ name ]( elem ) :
+					elem[ name ] != null ?
+						elem[ name ] :
+						elem.getAttribute( name ),
+				value = result + "",
+				type = match[2],
+				check = match[4];
+
+			return result == null ?
+				type === "!=" :
+				!type && Sizzle.attr ?
+				result != null :
+				type === "=" ?
+				value === check :
+				type === "*=" ?
+				value.indexOf(check) >= 0 :
+				type === "~=" ?
+				(" " + value + " ").indexOf(check) >= 0 :
+				!check ?
+				value && result !== false :
+				type === "!=" ?
+				value !== check :
+				type === "^=" ?
+				value.indexOf(check) === 0 :
+				type === "$=" ?
+				value.substr(value.length - check.length) === check :
+				type === "|=" ?
+				value === check || value.substr(0, check.length + 1) === check + "-" :
+				false;
+		},
+
+		POS: function( elem, match, i, array ) {
+			var name = match[2],
+				filter = Expr.setFilters[ name ];
+
+			if ( filter ) {
+				return filter( elem, i, match, array );
+			}
+		}
+	}
+};
+
+var origPOS = Expr.match.POS,
+	fescape = function(all, num){
+		return "\\" + (num - 0 + 1);
+	};
+
+for ( var type in Expr.match ) {
+	Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
+	Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
+}
+
+var makeArray = function( array, results ) {
+	array = Array.prototype.slice.call( array, 0 );
+
+	if ( results ) {
+		results.push.apply( results, array );
+		return results;
+	}
+
+	return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+// Also verifies that the returned array holds DOM nodes
+// (which is not the case in the Blackberry browser)
+try {
+	Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
+
+// Provide a fallback method if it does not work
+} catch( e ) {
+	makeArray = function( array, results ) {
+		var i = 0,
+			ret = results || [];
+
+		if ( toString.call(array) === "[object Array]" ) {
+			Array.prototype.push.apply( ret, array );
+
+		} else {
+			if ( typeof array.length === "number" ) {
+				for ( var l = array.length; i < l; i++ ) {
+					ret.push( array[i] );
+				}
+
+			} else {
+				for ( ; array[i]; i++ ) {
+					ret.push( array[i] );
+				}
+			}
+		}
+
+		return ret;
+	};
+}
+
+var sortOrder, siblingCheck;
+
+if ( document.documentElement.compareDocumentPosition ) {
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+			return a.compareDocumentPosition ? -1 : 1;
+		}
+
+		return a.compareDocumentPosition(b) & 4 ? -1 : 1;
+	};
+
+} else {
+	sortOrder = function( a, b ) {
+		// The nodes are identical, we can exit early
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+
+		// Fallback to using sourceIndex (in IE) if it's available on both nodes
+		} else if ( a.sourceIndex && b.sourceIndex ) {
+			return a.sourceIndex - b.sourceIndex;
+		}
+
+		var al, bl,
+			ap = [],
+			bp = [],
+			aup = a.parentNode,
+			bup = b.parentNode,
+			cur = aup;
+
+		// If the nodes are siblings (or identical) we can do a quick check
+		if ( aup === bup ) {
+			return siblingCheck( a, b );
+
+		// If no parents were found then the nodes are disconnected
+		} else if ( !aup ) {
+			return -1;
+
+		} else if ( !bup ) {
+			return 1;
+		}
+
+		// Otherwise they're somewhere else in the tree so we need
+		// to build up a full list of the parentNodes for comparison
+		while ( cur ) {
+			ap.unshift( cur );
+			cur = cur.parentNode;
+		}
+
+		cur = bup;
+
+		while ( cur ) {
+			bp.unshift( cur );
+			cur = cur.parentNode;
+		}
+
+		al = ap.length;
+		bl = bp.length;
+
+		// Start walking down the tree looking for a discrepancy
+		for ( var i = 0; i < al && i < bl; i++ ) {
+			if ( ap[i] !== bp[i] ) {
+				return siblingCheck( ap[i], bp[i] );
+			}
+		}
+
+		// We ended someplace up the tree so do a sibling check
+		return i === al ?
+			siblingCheck( a, bp[i], -1 ) :
+			siblingCheck( ap[i], b, 1 );
+	};
+
+	siblingCheck = function( a, b, ret ) {
+		if ( a === b ) {
+			return ret;
+
+		var cur = a.nextSibling;
+		}
+
+		while ( cur ) {
+			if ( cur === b ) {
+				return -1;
+			}
+
+			cur = cur.nextSibling;
+		}
+
+		return 1;
+	};
+}
+
+// Check to see if the browser returns elements by name when
+// querying by getElementById (and provide a workaround)
+(function(){
+	// We're going to inject a fake input element with a specified name
+	var form = document.createElement("div"),
+		id = "script" + (new Date()).getTime(),
+		root = document.documentElement;
+
+	form.innerHTML = "<a name='" + id + "'/>";
+
+	// Inject it into the root element, check its status, and remove it quickly
+	root.insertBefore( form, root.firstChild );
+
+	// The workaround has to do additional checks after a getElementById
+	// Which slows things down for other browsers (hence the branching)
+	if ( document.getElementById( id ) ) {
+		Expr.find.ID = function( match, context, isXML ) {
+			if ( typeof context.getElementById !== "undefined" && !isXML ) {
+				var m = context.getElementById(match[1]);
+
+				return m ?
+					m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
+						[m] :
+						undefined :
+					[];
+			}
+		};
+
+		Expr.filter.ID = function( elem, match ) {
+			var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+
+			return elem.nodeType === 1 && node && node.nodeValue === match;
+		};
+	}
+
+	root.removeChild( form );
+
+	// release memory in IE
+	root = form = null;
+})();
+
+(function(){
+	// Check to see if the browser returns only elements
+	// when doing getElementsByTagName("*")
+
+	// Create a fake element
+	var div = document.createElement("div");
+	div.appendChild( document.createComment("") );
+
+	// Make sure no comments are found
+	if ( div.getElementsByTagName("*").length > 0 ) {
+		Expr.find.TAG = function( match, context ) {
+			var results = context.getElementsByTagName( match[1] );
+
+			// Filter out possible comments
+			if ( match[1] === "*" ) {
+				var tmp = [];
+
+				for ( var i = 0; results[i]; i++ ) {
+					if ( results[i].nodeType === 1 ) {
+						tmp.push( results[i] );
+					}
+				}
+
+				results = tmp;
+			}
+
+			return results;
+		};
+	}
+
+	// Check to see if an attribute returns normalized href attributes
+	div.innerHTML = "<a href='#'></a>";
+
+	if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+			div.firstChild.getAttribute("href") !== "#" ) {
+
+		Expr.attrHandle.href = function( elem ) {
+			return elem.getAttribute( "href", 2 );
+		};
+	}
+
+	// release memory in IE
+	div = null;
+})();
+
+if ( document.querySelectorAll ) {
+	(function(){
+		var oldSizzle = Sizzle,
+			div = document.createElement("div"),
+			id = "__sizzle__";
+
+		div.innerHTML = "<p class='TEST'></p>";
+
+		// Safari can't handle uppercase or unicode characters when
+		// in quirks mode.
+		if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+			return;
+		}
+
+		Sizzle = function( query, context, extra, seed ) {
+			context = context || document;
+
+			// Only use querySelectorAll on non-XML documents
+			// (ID selectors don't work in non-HTML documents)
+			if ( !seed && !Sizzle.isXML(context) ) {
+				// See if we find a selector to speed up
+				var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
+
+				if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
+					// Speed-up: Sizzle("TAG")
+					if ( match[1] ) {
+						return makeArray( context.getElementsByTagName( query ), extra );
+
+					// Speed-up: Sizzle(".CLASS")
+					} else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
+						return makeArray( context.getElementsByClassName( match[2] ), extra );
+					}
+				}
+
+				if ( context.nodeType === 9 ) {
+					// Speed-up: Sizzle("body")
+					// The body element only exists once, optimize finding it
+					if ( query === "body" && context.body ) {
+						return makeArray( [ context.body ], extra );
+
+					// Speed-up: Sizzle("#ID")
+					} else if ( match && match[3] ) {
+						var elem = context.getElementById( match[3] );
+
+						// Check parentNode to catch when Blackberry 4.6 returns
+						// nodes that are no longer in the document #6963
+						if ( elem && elem.parentNode ) {
+							// Handle the case where IE and Opera return items
+							// by name instead of ID
+							if ( elem.id === match[3] ) {
+								return makeArray( [ elem ], extra );
+							}
+
+						} else {
+							return makeArray( [], extra );
+						}
+					}
+
+					try {
+						return makeArray( context.querySelectorAll(query), extra );
+					} catch(qsaError) {}
+
+				// qSA works strangely on Element-rooted queries
+				// We can work around this by specifying an extra ID on the root
+				// and working up from there (Thanks to Andrew Dupont for the technique)
+				// IE 8 doesn't work on object elements
+				} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+					var oldContext = context,
+						old = context.getAttribute( "id" ),
+						nid = old || id,
+						hasParent = context.parentNode,
+						relativeHierarchySelector = /^\s*[+~]/.test( query );
+
+					if ( !old ) {
+						context.setAttribute( "id", nid );
+					} else {
+						nid = nid.replace( /'/g, "\\$&" );
+					}
+					if ( relativeHierarchySelector && hasParent ) {
+						context = context.parentNode;
+					}
+
+					try {
+						if ( !relativeHierarchySelector || hasParent ) {
+							return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
+						}
+
+					} catch(pseudoError) {
+					} finally {
+						if ( !old ) {
+							oldContext.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+
+			return oldSizzle(query, context, extra, seed);
+		};
+
+		for ( var prop in oldSizzle ) {
+			Sizzle[ prop ] = oldSizzle[ prop ];
+		}
+
+		// release memory in IE
+		div = null;
+	})();
+}
+
+(function(){
+	var html = document.documentElement,
+		matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
+
+	if ( matches ) {
+		// Check to see if it's possible to do matchesSelector
+		// on a disconnected node (IE 9 fails this)
+		var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
+			pseudoWorks = false;
+
+		try {
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( document.documentElement, "[test!='']:sizzle" );
+
+		} catch( pseudoError ) {
+			pseudoWorks = true;
+		}
+
+		Sizzle.matchesSelector = function( node, expr ) {
+			// Make sure that attribute selectors are quoted
+			expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+
+			if ( !Sizzle.isXML( node ) ) {
+				try {
+					if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
+						var ret = matches.call( node, expr );
+
+						// IE 9's matchesSelector returns false on disconnected nodes
+						if ( ret || !disconnectedMatch ||
+								// As well, disconnected nodes are said to be in a document
+								// fragment in IE 9, so check for that
+								node.document && node.document.nodeType !== 11 ) {
+							return ret;
+						}
+					}
+				} catch(e) {}
+			}
+
+			return Sizzle(expr, null, null, [node]).length > 0;
+		};
+	}
+})();
+
+(function(){
+	var div = document.createElement("div");
+
+	div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+	// Opera can't find a second classname (in 9.6)
+	// Also, make sure that getElementsByClassName actually exists
+	if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
+		return;
+	}
+
+	// Safari caches class attributes, doesn't catch changes (in 3.2)
+	div.lastChild.className = "e";
+
+	if ( div.getElementsByClassName("e").length === 1 ) {
+		return;
+	}
+
+	Expr.order.splice(1, 0, "CLASS");
+	Expr.find.CLASS = function( match, context, isXML ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+			return context.getElementsByClassName(match[1]);
+		}
+	};
+
+	// release memory in IE
+	div = null;
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+		var elem = checkSet[i];
+
+		if ( elem ) {
+			var match = false;
+
+			elem = elem[dir];
+
+			while ( elem ) {
+				if ( elem[ expando ] === doneName ) {
+					match = checkSet[elem.sizset];
+					break;
+				}
+
+				if ( elem.nodeType === 1 && !isXML ){
+					elem[ expando ] = doneName;
+					elem.sizset = i;
+				}
+
+				if ( elem.nodeName.toLowerCase() === cur ) {
+					match = elem;
+					break;
+				}
+
+				elem = elem[dir];
+			}
+
+			checkSet[i] = match;
+		}
+	}
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+		var elem = checkSet[i];
+
+		if ( elem ) {
+			var match = false;
+
+			elem = elem[dir];
+
+			while ( elem ) {
+				if ( elem[ expando ] === doneName ) {
+					match = checkSet[elem.sizset];
+					break;
+				}
+
+				if ( elem.nodeType === 1 ) {
+					if ( !isXML ) {
+						elem[ expando ] = doneName;
+						elem.sizset = i;
+					}
+
+					if ( typeof cur !== "string" ) {
+						if ( elem === cur ) {
+							match = true;
+							break;
+						}
+
+					} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+						match = elem;
+						break;
+					}
+				}
+
+				elem = elem[dir];
+			}
+
+			checkSet[i] = match;
+		}
+	}
+}
+
+if ( document.documentElement.contains ) {
+	Sizzle.contains = function( a, b ) {
+		return a !== b && (a.contains ? a.contains(b) : true);
+	};
+
+} else if ( document.documentElement.compareDocumentPosition ) {
+	Sizzle.contains = function( a, b ) {
+		return !!(a.compareDocumentPosition(b) & 16);
+	};
+
+} else {
+	Sizzle.contains = function() {
+		return false;
+	};
+}
+
+Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+var posProcess = function( selector, context, seed ) {
+	var match,
+		tmpSet = [],
+		later = "",
+		root = context.nodeType ? [context] : context;
+
+	// Position selectors must be done after the filter
+	// And so must :not(positional) so we move all PSEUDOs to the end
+	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+		later += match[0];
+		selector = selector.replace( Expr.match.PSEUDO, "" );
+	}
+
+	selector = Expr.relative[selector] ? selector + "*" : selector;
+
+	for ( var i = 0, l = root.length; i < l; i++ ) {
+		Sizzle( selector, root[i], tmpSet, seed );
+	}
+
+	return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+// Override sizzle attribute retrieval
+Sizzle.attr = jQuery.attr;
+Sizzle.selectors.attrMap = {};
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.filters;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+})();
+
+
+var runtil = /Until$/,
+	rparentsprev = /^(?:parents|prevUntil|prevAll)/,
+	// Note: This RegExp should be improved, or likely pulled from Sizzle
+	rmultiselector = /,/,
+	isSimple = /^.[^:#\[\.,]*$/,
+	slice = Array.prototype.slice,
+	POS = jQuery.expr.match.POS,
+	// methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend({
+	find: function( selector ) {
+		var self = this,
+			i, l;
+
+		if ( typeof selector !== "string" ) {
+			return jQuery( selector ).filter(function() {
+				for ( i = 0, l = self.length; i < l; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			});
+		}
+
+		var ret = this.pushStack( "", "find", selector ),
+			length, n, r;
+
+		for ( i = 0, l = this.length; i < l; i++ ) {
+			length = ret.length;
+			jQuery.find( selector, this[i], ret );
+
+			if ( i > 0 ) {
+				// Make sure that the results are unique
+				for ( n = length; n < ret.length; n++ ) {
+					for ( r = 0; r < length; r++ ) {
+						if ( ret[r] === ret[n] ) {
+							ret.splice(n--, 1);
+							break;
+						}
+					}
+				}
+			}
+		}
+
+		return ret;
+	},
+
+	has: function( target ) {
+		var targets = jQuery( target );
+		return this.filter(function() {
+			for ( var i = 0, l = targets.length; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[i] ) ) {
+					return true;
+				}
+			}
+		});
+	},
+
+	not: function( selector ) {
+		return this.pushStack( winnow(this, selector, false), "not", selector);
+	},
+
+	filter: function( selector ) {
+		return this.pushStack( winnow(this, selector, true), "filter", selector );
+	},
+
+	is: function( selector ) {
+		return !!selector && (
+			typeof selector === "string" ?
+				// If this is a positional selector, check membership in the returned set
+				// so $("p:first").is("p:last") won't return true for a doc with two "p".
+				POS.test( selector ) ?
+					jQuery( selector, this.context ).index( this[0] ) >= 0 :
+					jQuery.filter( selector, this ).length > 0 :
+				this.filter( selector ).length > 0 );
+	},
+
+	closest: function( selectors, context ) {
+		var ret = [], i, l, cur = this[0];
+
+		// Array (deprecated as of jQuery 1.7)
+		if ( jQuery.isArray( selectors ) ) {
+			var level = 1;
+
+			while ( cur && cur.ownerDocument && cur !== context ) {
+				for ( i = 0; i < selectors.length; i++ ) {
+
+					if ( jQuery( cur ).is( selectors[ i ] ) ) {
+						ret.push({ selector: selectors[ i ], elem: cur, level: level });
+					}
+				}
+
+				cur = cur.parentNode;
+				level++;
+			}
+
+			return ret;
+		}
+
+		// String
+		var pos = POS.test( selectors ) || typeof selectors !== "string" ?
+				jQuery( selectors, context || this.context ) :
+				0;
+
+		for ( i = 0, l = this.length; i < l; i++ ) {
+			cur = this[i];
+
+			while ( cur ) {
+				if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
+					ret.push( cur );
+					break;
+
+				} else {
+					cur = cur.parentNode;
+					if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
+						break;
+					}
+				}
+			}
+		}
+
+		ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
+
+		return this.pushStack( ret, "closest", selectors );
+	},
+
+	// Determine the position of an element within
+	// the matched set of elements
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
+		}
+
+		// index in selector
+		if ( typeof elem === "string" ) {
+			return jQuery.inArray( this[0], jQuery( elem ) );
+		}
+
+		// Locate the position of the desired element
+		return jQuery.inArray(
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[0] : elem, this );
+	},
+
+	add: function( selector, context ) {
+		var set = typeof selector === "string" ?
+				jQuery( selector, context ) :
+				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
+			all = jQuery.merge( this.get(), set );
+
+		return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
+			all :
+			jQuery.unique( all ) );
+	},
+
+	andSelf: function() {
+		return this.add( this.prevObject );
+	}
+});
+
+// A painfully simple check to see if an element is disconnected
+// from a document (should be improved, where feasible).
+function isDisconnected( node ) {
+	return !node || !node.parentNode || node.parentNode.nodeType === 11;
+}
+
+jQuery.each({
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return jQuery.dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return jQuery.nth( elem, 2, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return jQuery.nth( elem, 2, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return jQuery.dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return jQuery.dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return jQuery.sibling( elem.parentNode.firstChild, elem );
+	},
+	children: function( elem ) {
+		return jQuery.sibling( elem.firstChild );
+	},
+	contents: function( elem ) {
+		return jQuery.nodeName( elem, "iframe" ) ?
+			elem.contentDocument || elem.contentWindow.document :
+			jQuery.makeArray( elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var ret = jQuery.map( this, fn, until );
+
+		if ( !runtil.test( name ) ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			ret = jQuery.filter( selector, ret );
+		}
+
+		ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
+
+		if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
+			ret = ret.reverse();
+		}
+
+		return this.pushStack( ret, name, slice.call( arguments ).join(",") );
+	};
+});
+
+jQuery.extend({
+	filter: function( expr, elems, not ) {
+		if ( not ) {
+			expr = ":not(" + expr + ")";
+		}
+
+		return elems.length === 1 ?
+			jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
+			jQuery.find.matches(expr, elems);
+	},
+
+	dir: function( elem, dir, until ) {
+		var matched = [],
+			cur = elem[ dir ];
+
+		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
+			if ( cur.nodeType === 1 ) {
+				matched.push( cur );
+			}
+			cur = cur[dir];
+		}
+		return matched;
+	},
+
+	nth: function( cur, result, dir, elem ) {
+		result = result || 1;
+		var num = 0;
+
+		for ( ; cur; cur = cur[dir] ) {
+			if ( cur.nodeType === 1 && ++num === result ) {
+				break;
+			}
+		}
+
+		return cur;
+	},
+
+	sibling: function( n, elem ) {
+		var r = [];
+
+		for ( ; n; n = n.nextSibling ) {
+			if ( n.nodeType === 1 && n !== elem ) {
+				r.push( n );
+			}
+		}
+
+		return r;
+	}
+});
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, keep ) {
+
+	// Can't pass null or undefined to indexOf in Firefox 4
+	// Set to 0 to skip string check
+	qualifier = qualifier || 0;
+
+	if ( jQuery.isFunction( qualifier ) ) {
+		return jQuery.grep(elements, function( elem, i ) {
+			var retVal = !!qualifier.call( elem, i, elem );
+			return retVal === keep;
+		});
+
+	} else if ( qualifier.nodeType ) {
+		return jQuery.grep(elements, function( elem, i ) {
+			return ( elem === qualifier ) === keep;
+		});
+
+	} else if ( typeof qualifier === "string" ) {
+		var filtered = jQuery.grep(elements, function( elem ) {
+			return elem.nodeType === 1;
+		});
+
+		if ( isSimple.test( qualifier ) ) {
+			return jQuery.filter(qualifier, filtered, !keep);
+		} else {
+			qualifier = jQuery.filter( qualifier, filtered );
+		}
+	}
+
+	return jQuery.grep(elements, function( elem, i ) {
+		return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;
+	});
+}
+
+
+
+
+function createSafeFragment( document ) {
+	var list = nodeNames.split( "|" ),
+	safeFrag = document.createDocumentFragment();
+
+	if ( safeFrag.createElement ) {
+		while ( list.length ) {
+			safeFrag.createElement(
+				list.pop()
+			);
+		}
+	}
+	return safeFrag;
+}
+
+var nodeNames = "abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|" +
+		"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
+	rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
+	rleadingWhitespace = /^\s+/,
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
+	rtagName = /<([\w:]+)/,
+	rtbody = /<tbody/i,
+	rhtml = /<|&#?\w+;/,
+	rnoInnerhtml = /<(?:script|style)/i,
+	rnocache = /<(?:script|object|embed|option|style)/i,
+	rnoshimcache = new RegExp("<(?:" + nodeNames + ")", "i"),
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rscriptType = /\/(java|ecma)script/i,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
+	wrapMap = {
+		option: [ 1, "<select multiple='multiple'>", "</select>" ],
+		legend: [ 1, "<fieldset>", "</fieldset>" ],
+		thead: [ 1, "<table>", "</table>" ],
+		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+		area: [ 1, "<map>", "</map>" ],
+		_default: [ 0, "", "" ]
+	},
+	safeFragment = createSafeFragment( document );
+
+wrapMap.optgroup = wrapMap.option;
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+// IE can't serialize <link> and <script> tags normally
+if ( !jQuery.support.htmlSerialize ) {
+	wrapMap._default = [ 1, "div<div>", "</div>" ];
+}
+
+jQuery.fn.extend({
+	text: function( text ) {
+		if ( jQuery.isFunction(text) ) {
+			return this.each(function(i) {
+				var self = jQuery( this );
+
+				self.text( text.call(this, i, self.text()) );
+			});
+		}
+
+		if ( typeof text !== "object" && text !== undefined ) {
+			return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
+		}
+
+		return jQuery.text( this );
+	},
+
+	wrapAll: function( html ) {
+		if ( jQuery.isFunction( html ) ) {
+			return this.each(function(i) {
+				jQuery(this).wrapAll( html.call(this, i) );
+			});
+		}
+
+		if ( this[0] ) {
+			// The elements to wrap the target around
+			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
+
+			if ( this[0].parentNode ) {
+				wrap.insertBefore( this[0] );
+			}
+
+			wrap.map(function() {
+				var elem = this;
+
+				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
+					elem = elem.firstChild;
+				}
+
+				return elem;
+			}).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( jQuery.isFunction( html ) ) {
+			return this.each(function(i) {
+				jQuery(this).wrapInner( html.call(this, i) );
+			});
+		}
+
+		return this.each(function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		});
+	},
+
+	wrap: function( html ) {
+		var isFunction = jQuery.isFunction( html );
+
+		return this.each(function(i) {
+			jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
+		});
+	},
+
+	unwrap: function() {
+		return this.parent().each(function() {
+			if ( !jQuery.nodeName( this, "body" ) ) {
+				jQuery( this ).replaceWith( this.childNodes );
+			}
+		}).end();
+	},
+
+	append: function() {
+		return this.domManip(arguments, true, function( elem ) {
+			if ( this.nodeType === 1 ) {
+				this.appendChild( elem );
+			}
+		});
+	},
+
+	prepend: function() {
+		return this.domManip(arguments, true, function( elem ) {
+			if ( this.nodeType === 1 ) {
+				this.insertBefore( elem, this.firstChild );
+			}
+		});
+	},
+
+	before: function() {
+		if ( this[0] && this[0].parentNode ) {
+			return this.domManip(arguments, false, function( elem ) {
+				this.parentNode.insertBefore( elem, this );
+			});
+		} else if ( arguments.length ) {
+			var set = jQuery.clean( arguments );
+			set.push.apply( set, this.toArray() );
+			return this.pushStack( set, "before", arguments );
+		}
+	},
+
+	after: function() {
+		if ( this[0] && this[0].parentNode ) {
+			return this.domManip(arguments, false, function( elem ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			});
+		} else if ( arguments.length ) {
+			var set = this.pushStack( this, "after", arguments );
+			set.push.apply( set, jQuery.clean(arguments) );
+			return set;
+		}
+	},
+
+	// keepData is for internal use only--do not document
+	remove: function( selector, keepData ) {
+		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+			if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
+				if ( !keepData && elem.nodeType === 1 ) {
+					jQuery.cleanData( elem.getElementsByTagName("*") );
+					jQuery.cleanData( [ elem ] );
+				}
+
+				if ( elem.parentNode ) {
+					elem.parentNode.removeChild( elem );
+				}
+			}
+		}
+
+		return this;
+	},
+
+	empty: function() {
+		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+			// Remove element nodes and prevent memory leaks
+			if ( elem.nodeType === 1 ) {
+				jQuery.cleanData( elem.getElementsByTagName("*") );
+			}
+
+			// Remove any remaining nodes
+			while ( elem.firstChild ) {
+				elem.removeChild( elem.firstChild );
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function () {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		});
+	},
+
+	html: function( value ) {
+		if ( value === undefined ) {
+			return this[0] && this[0].nodeType === 1 ?
+				this[0].innerHTML.replace(rinlinejQuery, "") :
+				null;
+
+		// See if we can take a shortcut and just use innerHTML
+		} else if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+			(jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
+			!wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
+
+			value = value.replace(rxhtmlTag, "<$1></$2>");
+
+			try {
+				for ( var i = 0, l = this.length; i < l; i++ ) {
+					// Remove element nodes and prevent memory leaks
+					if ( this[i].nodeType === 1 ) {
+						jQuery.cleanData( this[i].getElementsByTagName("*") );
+						this[i].innerHTML = value;
+					}
+				}
+
+			// If using innerHTML throws an exception, use the fallback method
+			} catch(e) {
+				this.empty().append( value );
+			}
+
+		} else if ( jQuery.isFunction( value ) ) {
+			this.each(function(i){
+				var self = jQuery( this );
+
+				self.html( value.call(this, i, self.html()) );
+			});
+
+		} else {
+			this.empty().append( value );
+		}
+
+		return this;
+	},
+
+	replaceWith: function( value ) {
+		if ( this[0] && this[0].parentNode ) {
+			// Make sure that the elements are removed from the DOM before they are inserted
+			// this can help fix replacing a parent with child elements
+			if ( jQuery.isFunction( value ) ) {
+				return this.each(function(i) {
+					var self = jQuery(this), old = self.html();
+					self.replaceWith( value.call( this, i, old ) );
+				});
+			}
+
+			if ( typeof value !== "string" ) {
+				value = jQuery( value ).detach();
+			}
+
+			return this.each(function() {
+				var next = this.nextSibling,
+					parent = this.parentNode;
+
+				jQuery( this ).remove();
+
+				if ( next ) {
+					jQuery(next).before( value );
+				} else {
+					jQuery(parent).append( value );
+				}
+			});
+		} else {
+			return this.length ?
+				this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
+				this;
+		}
+	},
+
+	detach: function( selector ) {
+		return this.remove( selector, true );
+	},
+
+	domManip: function( args, table, callback ) {
+		var results, first, fragment, parent,
+			value = args[0],
+			scripts = [];
+
+		// We can't cloneNode fragments that contain checked, in WebKit
+		if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
+			return this.each(function() {
+				jQuery(this).domManip( args, table, callback, true );
+			});
+		}
+
+		if ( jQuery.isFunction(value) ) {
+			return this.each(function(i) {
+				var self = jQuery(this);
+				args[0] = value.call(this, i, table ? self.html() : undefined);
+				self.domManip( args, table, callback );
+			});
+		}
+
+		if ( this[0] ) {
+			parent = value && value.parentNode;
+
+			// If we're in a fragment, just use that instead of building a new one
+			if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
+				results = { fragment: parent };
+
+			} else {
+				results = jQuery.buildFragment( args, this, scripts );
+			}
+
+			fragment = results.fragment;
+
+			if ( fragment.childNodes.length === 1 ) {
+				first = fragment = fragment.firstChild;
+			} else {
+				first = fragment.firstChild;
+			}
+
+			if ( first ) {
+				table = table && jQuery.nodeName( first, "tr" );
+
+				for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
+					callback.call(
+						table ?
+							root(this[i], first) :
+							this[i],
+						// Make sure that we do not leak memory by inadvertently discarding
+						// the original fragment (which might have attached data) instead of
+						// using it; in addition, use the original fragment object for the last
+						// item instead of first because it can end up being emptied incorrectly
+						// in certain situations (Bug #8070).
+						// Fragments from the fragment cache must always be cloned and never used
+						// in place.
+						results.cacheable || ( l > 1 && i < lastIndex ) ?
+							jQuery.clone( fragment, true, true ) :
+							fragment
+					);
+				}
+			}
+
+			if ( scripts.length ) {
+				jQuery.each( scripts, evalScript );
+			}
+		}
+
+		return this;
+	}
+});
+
+function root( elem, cur ) {
+	return jQuery.nodeName(elem, "table") ?
+		(elem.getElementsByTagName("tbody")[0] ||
+		elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
+		elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+
+	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
+		return;
+	}
+
+	var type, i, l,
+		oldData = jQuery._data( src ),
+		curData = jQuery._data( dest, oldData ),
+		events = oldData.events;
+
+	if ( events ) {
+		delete curData.handle;
+		curData.events = {};
+
+		for ( type in events ) {
+			for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+				jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );
+			}
+		}
+	}
+
+	// make the cloned public data object a copy from the original
+	if ( curData.data ) {
+		curData.data = jQuery.extend( {}, curData.data );
+	}
+}
+
+function cloneFixAttributes( src, dest ) {
+	var nodeName;
+
+	// We do not need to do anything for non-Elements
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// clearAttributes removes the attributes, which we don't want,
+	// but also removes the attachEvent events, which we *do* want
+	if ( dest.clearAttributes ) {
+		dest.clearAttributes();
+	}
+
+	// mergeAttributes, in contrast, only merges back on the
+	// original attributes, not the events
+	if ( dest.mergeAttributes ) {
+		dest.mergeAttributes( src );
+	}
+
+	nodeName = dest.nodeName.toLowerCase();
+
+	// IE6-8 fail to clone children inside object elements that use
+	// the proprietary classid attribute value (rather than the type
+	// attribute) to identify the type of content to display
+	if ( nodeName === "object" ) {
+		dest.outerHTML = src.outerHTML;
+
+	} else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
+		// IE6-8 fails to persist the checked state of a cloned checkbox
+		// or radio button. Worse, IE6-7 fail to give the cloned element
+		// a checked appearance if the defaultChecked value isn't also set
+		if ( src.checked ) {
+			dest.defaultChecked = dest.checked = src.checked;
+		}
+
+		// IE6-7 get confused and end up setting the value of a cloned
+		// checkbox/radio button to an empty string instead of "on"
+		if ( dest.value !== src.value ) {
+			dest.value = src.value;
+		}
+
+	// IE6-8 fails to return the selected option to the default selected
+	// state when cloning options
+	} else if ( nodeName === "option" ) {
+		dest.selected = src.defaultSelected;
+
+	// IE6-8 fails to set the defaultValue to the correct value when
+	// cloning other types of input fields
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+
+	// Event data gets referenced instead of copied if the expando
+	// gets copied too
+	dest.removeAttribute( jQuery.expando );
+}
+
+jQuery.buildFragment = function( args, nodes, scripts ) {
+	var fragment, cacheable, cacheresults, doc,
+	first = args[ 0 ];
+
+	// nodes may contain either an explicit document object,
+	// a jQuery collection or context object.
+	// If nodes[0] contains a valid object to assign to doc
+	if ( nodes && nodes[0] ) {
+		doc = nodes[0].ownerDocument || nodes[0];
+	}
+
+	// Ensure that an attr object doesn't incorrectly stand in as a document object
+	// Chrome and Firefox seem to allow this to occur and will throw exception
+	// Fixes #8950
+	if ( !doc.createDocumentFragment ) {
+		doc = document;
+	}
+
+	// Only cache "small" (1/2 KB) HTML strings that are associated with the main document
+	// Cloning options loses the selected state, so don't cache them
+	// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
+	// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
+	// Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501
+	if ( args.length === 1 && typeof first === "string" && first.length < 512 && doc === document &&
+		first.charAt(0) === "<" && !rnocache.test( first ) &&
+		(jQuery.support.checkClone || !rchecked.test( first )) &&
+		(jQuery.support.html5Clone || !rnoshimcache.test( first )) ) {
+
+		cacheable = true;
+
+		cacheresults = jQuery.fragments[ first ];
+		if ( cacheresults && cacheresults !== 1 ) {
+			fragment = cacheresults;
+		}
+	}
+
+	if ( !fragment ) {
+		fragment = doc.createDocumentFragment();
+		jQuery.clean( args, doc, fragment, scripts );
+	}
+
+	if ( cacheable ) {
+		jQuery.fragments[ first ] = cacheresults ? fragment : 1;
+	}
+
+	return { fragment: fragment, cacheable: cacheable };
+};
+
+jQuery.fragments = {};
+
+jQuery.each({
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var ret = [],
+			insert = jQuery( selector ),
+			parent = this.length === 1 && this[0].parentNode;
+
+		if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
+			insert[ original ]( this[0] );
+			return this;
+
+		} else {
+			for ( var i = 0, l = insert.length; i < l; i++ ) {
+				var elems = ( i > 0 ? this.clone(true) : this ).get();
+				jQuery( insert[i] )[ original ]( elems );
+				ret = ret.concat( elems );
+			}
+
+			return this.pushStack( ret, name, insert.selector );
+		}
+	};
+});
+
+function getAll( elem ) {
+	if ( typeof elem.getElementsByTagName !== "undefined" ) {
+		return elem.getElementsByTagName( "*" );
+
+	} else if ( typeof elem.querySelectorAll !== "undefined" ) {
+		return elem.querySelectorAll( "*" );
+
+	} else {
+		return [];
+	}
+}
+
+// Used in clean, fixes the defaultChecked property
+function fixDefaultChecked( elem ) {
+	if ( elem.type === "checkbox" || elem.type === "radio" ) {
+		elem.defaultChecked = elem.checked;
+	}
+}
+// Finds all inputs and passes them to fixDefaultChecked
+function findInputs( elem ) {
+	var nodeName = ( elem.nodeName || "" ).toLowerCase();
+	if ( nodeName === "input" ) {
+		fixDefaultChecked( elem );
+	// Skip scripts, get other children
+	} else if ( nodeName !== "script" && typeof elem.getElementsByTagName !== "undefined" ) {
+		jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
+	}
+}
+
+// Derived From: http://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js
+function shimCloneNode( elem ) {
+	var div = document.createElement( "div" );
+	safeFragment.appendChild( div );
+
+	div.innerHTML = elem.outerHTML;
+	return div.firstChild;
+}
+
+jQuery.extend({
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var srcElements,
+			destElements,
+			i,
+			// IE<=8 does not properly clone detached, unknown element nodes
+			clone = jQuery.support.html5Clone || !rnoshimcache.test( "<" + elem.nodeName ) ?
+				elem.cloneNode( true ) :
+				shimCloneNode( elem );
+
+		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
+				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
+			// IE copies events bound via attachEvent when using cloneNode.
+			// Calling detachEvent on the clone will also remove the events
+			// from the original. In order to get around this, we use some
+			// proprietary methods to clear the events. Thanks to MooTools
+			// guys for this hotness.
+
+			cloneFixAttributes( elem, clone );
+
+			// Using Sizzle here is crazy slow, so we use getElementsByTagName instead
+			srcElements = getAll( elem );
+			destElements = getAll( clone );
+
+			// Weird iteration because IE will replace the length property
+			// with an element if you are cloning the body and one of the
+			// elements on the page has a name or id of "length"
+			for ( i = 0; srcElements[i]; ++i ) {
+				// Ensure that the destination node is not null; Fixes #9587
+				if ( destElements[i] ) {
+					cloneFixAttributes( srcElements[i], destElements[i] );
+				}
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			cloneCopyEvent( elem, clone );
+
+			if ( deepDataAndEvents ) {
+				srcElements = getAll( elem );
+				destElements = getAll( clone );
+
+				for ( i = 0; srcElements[i]; ++i ) {
+					cloneCopyEvent( srcElements[i], destElements[i] );
+				}
+			}
+		}
+
+		srcElements = destElements = null;
+
+		// Return the cloned set
+		return clone;
+	},
+
+	clean: function( elems, context, fragment, scripts ) {
+		var checkScriptType;
+
+		context = context || document;
+
+		// !context.createElement fails in IE with an error but returns typeof 'object'
+		if ( typeof context.createElement === "undefined" ) {
+			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
+		}
+
+		var ret = [], j;
+
+		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+			if ( typeof elem === "number" ) {
+				elem += "";
+			}
+
+			if ( !elem ) {
+				continue;
+			}
+
+			// Convert html string into DOM nodes
+			if ( typeof elem === "string" ) {
+				if ( !rhtml.test( elem ) ) {
+					elem = context.createTextNode( elem );
+				} else {
+					// Fix "XHTML"-style tags in all browsers
+					elem = elem.replace(rxhtmlTag, "<$1></$2>");
+
+					// Trim whitespace, otherwise indexOf won't work as expected
+					var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(),
+						wrap = wrapMap[ tag ] || wrapMap._default,
+						depth = wrap[0],
+						div = context.createElement("div");
+
+					// Append wrapper element to unknown element safe doc fragment
+					if ( context === document ) {
+						// Use the fragment we've already created for this document
+						safeFragment.appendChild( div );
+					} else {
+						// Use a fragment created with the owner document
+						createSafeFragment( context ).appendChild( div );
+					}
+
+					// Go to html and back, then peel off extra wrappers
+					div.innerHTML = wrap[1] + elem + wrap[2];
+
+					// Move to the right depth
+					while ( depth-- ) {
+						div = div.lastChild;
+					}
+
+					// Remove IE's autoinserted <tbody> from table fragments
+					if ( !jQuery.support.tbody ) {
+
+						// String was a <table>, *may* have spurious <tbody>
+						var hasBody = rtbody.test(elem),
+							tbody = tag === "table" && !hasBody ?
+								div.firstChild && div.firstChild.childNodes :
+
+								// String was a bare <thead> or <tfoot>
+								wrap[1] === "<table>" && !hasBody ?
+									div.childNodes :
+									[];
+
+						for ( j = tbody.length - 1; j >= 0 ; --j ) {
+							if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
+								tbody[ j ].parentNode.removeChild( tbody[ j ] );
+							}
+						}
+					}
+
+					// IE completely kills leading whitespace when innerHTML is used
+					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
+						div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
+					}
+
+					elem = div.childNodes;
+				}
+			}
+
+			// Resets defaultChecked for any radios and checkboxes
+			// about to be appended to the DOM in IE 6/7 (#8060)
+			var len;
+			if ( !jQuery.support.appendChecked ) {
+				if ( elem[0] && typeof (len = elem.length) === "number" ) {
+					for ( j = 0; j < len; j++ ) {
+						findInputs( elem[j] );
+					}
+				} else {
+					findInputs( elem );
+				}
+			}
+
+			if ( elem.nodeType ) {
+				ret.push( elem );
+			} else {
+				ret = jQuery.merge( ret, elem );
+			}
+		}
+
+		if ( fragment ) {
+			checkScriptType = function( elem ) {
+				return !elem.type || rscriptType.test( elem.type );
+			};
+			for ( i = 0; ret[i]; i++ ) {
+				if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
+					scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
+
+				} else {
+					if ( ret[i].nodeType === 1 ) {
+						var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType );
+
+						ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
+					}
+					fragment.appendChild( ret[i] );
+				}
+			}
+		}
+
+		return ret;
+	},
+
+	cleanData: function( elems ) {
+		var data, id,
+			cache = jQuery.cache,
+			special = jQuery.event.special,
+			deleteExpando = jQuery.support.deleteExpando;
+
+		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+			if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
+				continue;
+			}
+
+			id = elem[ jQuery.expando ];
+
+			if ( id ) {
+				data = cache[ id ];
+
+				if ( data && data.events ) {
+					for ( var type in data.events ) {
+						if ( special[ type ] ) {
+							jQuery.event.remove( elem, type );
+
+						// This is a shortcut to avoid jQuery.event.remove's overhead
+						} else {
+							jQuery.removeEvent( elem, type, data.handle );
+						}
+					}
+
+					// Null the DOM reference to avoid IE6/7/8 leak (#7054)
+					if ( data.handle ) {
+						data.handle.elem = null;
+					}
+				}
+
+				if ( deleteExpando ) {
+					delete elem[ jQuery.expando ];
+
+				} else if ( elem.removeAttribute ) {
+					elem.removeAttribute( jQuery.expando );
+				}
+
+				delete cache[ id ];
+			}
+		}
+	}
+});
+
+function evalScript( i, elem ) {
+	if ( elem.src ) {
+		jQuery.ajax({
+			url: elem.src,
+			async: false,
+			dataType: "script"
+		});
+	} else {
+		jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
+	}
+
+	if ( elem.parentNode ) {
+		elem.parentNode.removeChild( elem );
+	}
+}
+
+
+
+
+var ralpha = /alpha\([^)]*\)/i,
+	ropacity = /opacity=([^)]*)/,
+	// fixed for IE9, see #8346
+	rupper = /([A-Z]|^ms)/g,
+	rnumpx = /^-?\d+(?:px)?$/i,
+	rnum = /^-?\d/,
+	rrelNum = /^([\-+])=([\-+.\de]+)/,
+
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssWidth = [ "Left", "Right" ],
+	cssHeight = [ "Top", "Bottom" ],
+	curCSS,
+
+	getComputedStyle,
+	currentStyle;
+
+jQuery.fn.css = function( name, value ) {
+	// Setting 'undefined' is a no-op
+	if ( arguments.length === 2 && value === undefined ) {
+		return this;
+	}
+
+	return jQuery.access( this, name, value, true, function( elem, name, value ) {
+		return value !== undefined ?
+			jQuery.style( elem, name, value ) :
+			jQuery.css( elem, name );
+	});
+};
+
+jQuery.extend({
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity", "opacity" );
+					return ret === "" ? "1" : ret;
+
+				} else {
+					return elem.style.opacity;
+				}
+			}
+		}
+	},
+
+	// Exclude the following css properties to add px
+	cssNumber: {
+		"fillOpacity": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {
+		// normalize float css property
+		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
+	},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, origName = jQuery.camelCase( name ),
+			style = elem.style, hooks = jQuery.cssHooks[ origName ];
+
+		name = jQuery.cssProps[ origName ] || origName;
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// convert relative number strings (+= or -=) to relative numbers. #7345
+			if ( type === "string" && (ret = rrelNum.exec( value )) ) {
+				value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) );
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that NaN and null values aren't set. See: #7116
+			if ( value == null || type === "number" && isNaN( value ) ) {
+				return;
+			}
+
+			// If a number was passed in, add 'px' to the (except for certain CSS properties)
+			if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
+				value += "px";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
+				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
+				// Fixes bug #5509
+				try {
+					style[ name ] = value;
+				} catch(e) {}
+			}
+
+		} else {
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra ) {
+		var ret, hooks;
+
+		// Make sure that we're working with the right name
+		name = jQuery.camelCase( name );
+		hooks = jQuery.cssHooks[ name ];
+		name = jQuery.cssProps[ name ] || name;
+
+		// cssFloat needs a special treatment
+		if ( name === "cssFloat" ) {
+			name = "float";
+		}
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
+			return ret;
+
+		// Otherwise, if a way to get the computed value exists, use that
+		} else if ( curCSS ) {
+			return curCSS( elem, name );
+		}
+	},
+
+	// A method for quickly swapping in/out CSS properties to get correct calculations
+	swap: function( elem, options, callback ) {
+		var old = {};
+
+		// Remember the old values, and insert the new ones
+		for ( var name in options ) {
+			old[ name ] = elem.style[ name ];
+			elem.style[ name ] = options[ name ];
+		}
+
+		callback.call( elem );
+
+		// Revert the old values
+		for ( name in options ) {
+			elem.style[ name ] = old[ name ];
+		}
+	}
+});
+
+// DEPRECATED, Use jQuery.css() instead
+jQuery.curCSS = jQuery.css;
+
+jQuery.each(["height", "width"], function( i, name ) {
+	jQuery.cssHooks[ name ] = {
+		get: function( elem, computed, extra ) {
+			var val;
+
+			if ( computed ) {
+				if ( elem.offsetWidth !== 0 ) {
+					return getWH( elem, name, extra );
+				} else {
+					jQuery.swap( elem, cssShow, function() {
+						val = getWH( elem, name, extra );
+					});
+				}
+
+				return val;
+			}
+		},
+
+		set: function( elem, value ) {
+			if ( rnumpx.test( value ) ) {
+				// ignore negative width and height values #1599
+				value = parseFloat( value );
+
+				if ( value >= 0 ) {
+					return value + "px";
+				}
+
+			} else {
+				return value;
+			}
+		}
+	};
+});
+
+if ( !jQuery.support.opacity ) {
+	jQuery.cssHooks.opacity = {
+		get: function( elem, computed ) {
+			// IE uses filters for opacity
+			return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
+				( parseFloat( RegExp.$1 ) / 100 ) + "" :
+				computed ? "1" : "";
+		},
+
+		set: function( elem, value ) {
+			var style = elem.style,
+				currentStyle = elem.currentStyle,
+				opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
+				filter = currentStyle && currentStyle.filter || style.filter || "";
+
+			// IE has trouble with opacity if it does not have layout
+			// Force it by setting the zoom level
+			style.zoom = 1;
+
+			// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
+			if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
+
+				// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
+				// if "filter:" is present at all, clearType is disabled, we want to avoid this
+				// style.removeAttribute is IE Only, but so apparently is this code path...
+				style.removeAttribute( "filter" );
+
+				// if there there is no filter style applied in a css rule, we are done
+				if ( currentStyle && !currentStyle.filter ) {
+					return;
+				}
+			}
+
+			// otherwise, set new filter values
+			style.filter = ralpha.test( filter ) ?
+				filter.replace( ralpha, opacity ) :
+				filter + " " + opacity;
+		}
+	};
+}
+
+jQuery(function() {
+	// This hook cannot be added until DOM ready because the support test
+	// for it is not run until after DOM ready
+	if ( !jQuery.support.reliableMarginRight ) {
+		jQuery.cssHooks.marginRight = {
+			get: function( elem, computed ) {
+				// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+				// Work around by temporarily setting element display to inline-block
+				var ret;
+				jQuery.swap( elem, { "display": "inline-block" }, function() {
+					if ( computed ) {
+						ret = curCSS( elem, "margin-right", "marginRight" );
+					} else {
+						ret = elem.style.marginRight;
+					}
+				});
+				return ret;
+			}
+		};
+	}
+});
+
+if ( document.defaultView && document.defaultView.getComputedStyle ) {
+	getComputedStyle = function( elem, name ) {
+		var ret, defaultView, computedStyle;
+
+		name = name.replace( rupper, "-$1" ).toLowerCase();
+
+		if ( (defaultView = elem.ownerDocument.defaultView) &&
+				(computedStyle = defaultView.getComputedStyle( elem, null )) ) {
+			ret = computedStyle.getPropertyValue( name );
+			if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
+				ret = jQuery.style( elem, name );
+			}
+		}
+
+		return ret;
+	};
+}
+
+if ( document.documentElement.currentStyle ) {
+	currentStyle = function( elem, name ) {
+		var left, rsLeft, uncomputed,
+			ret = elem.currentStyle && elem.currentStyle[ name ],
+			style = elem.style;
+
+		// Avoid setting ret to empty string here
+		// so we don't default to auto
+		if ( ret === null && style && (uncomputed = style[ name ]) ) {
+			ret = uncomputed;
+		}
+
+		// From the awesome hack by Dean Edwards
+		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+		// If we're not dealing with a regular pixel number
+		// but a number that has a weird ending, we need to convert it to pixels
+		if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
+
+			// Remember the original values
+			left = style.left;
+			rsLeft = elem.runtimeStyle && elem.runtimeStyle.left;
+
+			// Put in the new values to get a computed value out
+			if ( rsLeft ) {
+				elem.runtimeStyle.left = elem.currentStyle.left;
+			}
+			style.left = name === "fontSize" ? "1em" : ( ret || 0 );
+			ret = style.pixelLeft + "px";
+
+			// Revert the changed values
+			style.left = left;
+			if ( rsLeft ) {
+				elem.runtimeStyle.left = rsLeft;
+			}
+		}
+
+		return ret === "" ? "auto" : ret;
+	};
+}
+
+curCSS = getComputedStyle || currentStyle;
+
+function getWH( elem, name, extra ) {
+
+	// Start with offset property
+	var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+		which = name === "width" ? cssWidth : cssHeight,
+		i = 0,
+		len = which.length;
+
+	if ( val > 0 ) {
+		if ( extra !== "border" ) {
+			for ( ; i < len; i++ ) {
+				if ( !extra ) {
+					val -= parseFloat( jQuery.css( elem, "padding" + which[ i ] ) ) || 0;
+				}
+				if ( extra === "margin" ) {
+					val += parseFloat( jQuery.css( elem, extra + which[ i ] ) ) || 0;
+				} else {
+					val -= parseFloat( jQuery.css( elem, "border" + which[ i ] + "Width" ) ) || 0;
+				}
+			}
+		}
+
+		return val + "px";
+	}
+
+	// Fall back to computed then uncomputed css if necessary
+	val = curCSS( elem, name, name );
+	if ( val < 0 || val == null ) {
+		val = elem.style[ name ] || 0;
+	}
+	// Normalize "", auto, and prepare for extra
+	val = parseFloat( val ) || 0;
+
+	// Add padding, border, margin
+	if ( extra ) {
+		for ( ; i < len; i++ ) {
+			val += parseFloat( jQuery.css( elem, "padding" + which[ i ] ) ) || 0;
+			if ( extra !== "padding" ) {
+				val += parseFloat( jQuery.css( elem, "border" + which[ i ] + "Width" ) ) || 0;
+			}
+			if ( extra === "margin" ) {
+				val += parseFloat( jQuery.css( elem, extra + which[ i ] ) ) || 0;
+			}
+		}
+	}
+
+	return val + "px";
+}
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+	jQuery.expr.filters.hidden = function( elem ) {
+		var width = elem.offsetWidth,
+			height = elem.offsetHeight;
+
+		return ( width === 0 && height === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
+	};
+
+	jQuery.expr.filters.visible = function( elem ) {
+		return !jQuery.expr.filters.hidden( elem );
+	};
+}
+
+
+
+
+var r20 = /%20/g,
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rhash = /#.*$/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
+	rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+	rquery = /\?/,
+	rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+	rselectTextarea = /^(?:select|textarea)/i,
+	rspacesAjax = /\s+/,
+	rts = /([?&])_=[^&]*/,
+	rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
+
+	// Keep a copy of the old load method
+	_load = jQuery.fn.load,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Document location
+	ajaxLocation,
+
+	// Document location segments
+	ajaxLocParts,
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = ["*/"] + ["*"];
+
+// #8138, IE may throw an exception when accessing
+// a field from window.location if document.domain has been set
+try {
+	ajaxLocation = location.href;
+} catch( e ) {
+	// Use the href attribute of an A element
+	// since IE will modify it given document.location
+	ajaxLocation = document.createElement( "a" );
+	ajaxLocation.href = "";
+	ajaxLocation = ajaxLocation.href;
+}
+
+// Segment location into parts
+ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		if ( jQuery.isFunction( func ) ) {
+			var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
+				i = 0,
+				length = dataTypes.length,
+				dataType,
+				list,
+				placeBefore;
+
+			// For each dataType in the dataTypeExpression
+			for ( ; i < length; i++ ) {
+				dataType = dataTypes[ i ];
+				// We control if we're asked to add before
+				// any existing element
+				placeBefore = /^\+/.test( dataType );
+				if ( placeBefore ) {
+					dataType = dataType.substr( 1 ) || "*";
+				}
+				list = structure[ dataType ] = structure[ dataType ] || [];
+				// then we add to the structure accordingly
+				list[ placeBefore ? "unshift" : "push" ]( func );
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
+		dataType /* internal */, inspected /* internal */ ) {
+
+	dataType = dataType || options.dataTypes[ 0 ];
+	inspected = inspected || {};
+
+	inspected[ dataType ] = true;
+
+	var list = structure[ dataType ],
+		i = 0,
+		length = list ? list.length : 0,
+		executeOnly = ( structure === prefilters ),
+		selection;
+
+	for ( ; i < length && ( executeOnly || !selection ); i++ ) {
+		selection = list[ i ]( options, originalOptions, jqXHR );
+		// If we got redirected to another dataType
+		// we try there if executing only and not done already
+		if ( typeof selection === "string" ) {
+			if ( !executeOnly || inspected[ selection ] ) {
+				selection = undefined;
+			} else {
+				options.dataTypes.unshift( selection );
+				selection = inspectPrefiltersOrTransports(
+						structure, options, originalOptions, jqXHR, selection, inspected );
+			}
+		}
+	}
+	// If we're only executing or nothing was selected
+	// we try the catchall dataType if not done already
+	if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
+		selection = inspectPrefiltersOrTransports(
+				structure, options, originalOptions, jqXHR, "*", inspected );
+	}
+	// unnecessary when only executing (prefilters)
+	// but it'll be ignored by the caller in that case
+	return selection;
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+}
+
+jQuery.fn.extend({
+	load: function( url, params, callback ) {
+		if ( typeof url !== "string" && _load ) {
+			return _load.apply( this, arguments );
+
+		// Don't do a request if no elements are being requested
+		} else if ( !this.length ) {
+			return this;
+		}
+
+		var off = url.indexOf( " " );
+		if ( off >= 0 ) {
+			var selector = url.slice( off, url.length );
+			url = url.slice( 0, off );
+		}
+
+		// Default to a GET request
+		var type = "GET";
+
+		// If the second parameter was provided
+		if ( params ) {
+			// If it's a function
+			if ( jQuery.isFunction( params ) ) {
+				// We assume that it's the callback
+				callback = params;
+				params = undefined;
+
+			// Otherwise, build a param string
+			} else if ( typeof params === "object" ) {
+				params = jQuery.param( params, jQuery.ajaxSettings.traditional );
+				type = "POST";
+			}
+		}
+
+		var self = this;
+
+		// Request the remote document
+		jQuery.ajax({
+			url: url,
+			type: type,
+			dataType: "html",
+			data: params,
+			// Complete callback (responseText is used internally)
+			complete: function( jqXHR, status, responseText ) {
+				// Store the response as specified by the jqXHR object
+				responseText = jqXHR.responseText;
+				// If successful, inject the HTML into all the matched elements
+				if ( jqXHR.isResolved() ) {
+					// #4825: Get the actual response in case
+					// a dataFilter is present in ajaxSettings
+					jqXHR.done(function( r ) {
+						responseText = r;
+					});
+					// See if a selector was specified
+					self.html( selector ?
+						// Create a dummy div to hold the results
+						jQuery("<div>")
+							// inject the contents of the document in, removing the scripts
+							// to avoid any 'Permission Denied' errors in IE
+							.append(responseText.replace(rscript, ""))
+
+							// Locate the specified elements
+							.find(selector) :
+
+						// If not, just inject the full result
+						responseText );
+				}
+
+				if ( callback ) {
+					self.each( callback, [ responseText, status, jqXHR ] );
+				}
+			}
+		});
+
+		return this;
+	},
+
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+
+	serializeArray: function() {
+		return this.map(function(){
+			return this.elements ? jQuery.makeArray( this.elements ) : this;
+		})
+		.filter(function(){
+			return this.name && !this.disabled &&
+				( this.checked || rselectTextarea.test( this.nodeName ) ||
+					rinput.test( this.type ) );
+		})
+		.map(function( i, elem ){
+			var val = jQuery( this ).val();
+
+			return val == null ?
+				null :
+				jQuery.isArray( val ) ?
+					jQuery.map( val, function( val, i ){
+						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+					}) :
+					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		}).get();
+	}
+});
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
+	jQuery.fn[ o ] = function( f ){
+		return this.on( o, f );
+	};
+});
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+		// shift arguments if data argument was omitted
+		if ( jQuery.isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		return jQuery.ajax({
+			type: method,
+			url: url,
+			data: data,
+			success: callback,
+			dataType: type
+		});
+	};
+});
+
+jQuery.extend({
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		if ( settings ) {
+			// Building a settings object
+			ajaxExtend( target, jQuery.ajaxSettings );
+		} else {
+			// Extending ajaxSettings
+			settings = target;
+			target = jQuery.ajaxSettings;
+		}
+		ajaxExtend( target, settings );
+		return target;
+	},
+
+	ajaxSettings: {
+		url: ajaxLocation,
+		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+		global: true,
+		type: "GET",
+		contentType: "application/x-www-form-urlencoded",
+		processData: true,
+		async: true,
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			xml: "application/xml, text/xml",
+			html: "text/html",
+			text: "text/plain",
+			json: "application/json, text/javascript",
+			"*": allTypes
+		},
+
+		contents: {
+			xml: /xml/,
+			html: /html/,
+			json: /json/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText"
+		},
+
+		// List of data converters
+		// 1) key format is "source_type destination_type" (a single space in-between)
+		// 2) the catchall symbol "*" can be used for source_type
+		converters: {
+
+			// Convert anything to text
+			"* text": window.String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": jQuery.parseJSON,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			context: true,
+			url: true
+		}
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var // Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+			// Callbacks context
+			callbackContext = s.context || s,
+			// Context for global events
+			// It's the callbackContext if one was provided in the options
+			// and if it's a DOM node or a jQuery collection
+			globalEventContext = callbackContext !== s &&
+				( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
+						jQuery( callbackContext ) : jQuery.event,
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+			// ifModified key
+			ifModifiedKey,
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+			// transport
+			transport,
+			// timeout handle
+			timeoutTimer,
+			// Cross-domain detection vars
+			parts,
+			// The jqXHR state
+			state = 0,
+			// To know if global events are to be dispatched
+			fireGlobals,
+			// Loop variable
+			i,
+			// Fake xhr
+			jqXHR = {
+
+				readyState: 0,
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					if ( !state ) {
+						var lname = name.toLowerCase();
+						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return state === 2 ? responseHeadersString : null;
+				},
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( state === 2 ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match === undefined ? null : match;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( !state ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					statusText = statusText || "abort";
+					if ( transport ) {
+						transport.abort( statusText );
+					}
+					done( 0, statusText );
+					return this;
+				}
+			};
+
+		// Callback for when everything is done
+		// It is defined here because jslint complains if it is declared
+		// at the end of the function (which would be more logical and readable)
+		function done( status, nativeStatusText, responses, headers ) {
+
+			// Called once
+			if ( state === 2 ) {
+				return;
+			}
+
+			// State is "done" now
+			state = 2;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			var isSuccess,
+				success,
+				error,
+				statusText = nativeStatusText,
+				response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
+				lastModified,
+				etag;
+
+			// If successful, handle type chaining
+			if ( status >= 200 && status < 300 || status === 304 ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+
+					if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
+						jQuery.lastModified[ ifModifiedKey ] = lastModified;
+					}
+					if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
+						jQuery.etag[ ifModifiedKey ] = etag;
+					}
+				}
+
+				// If not modified
+				if ( status === 304 ) {
+
+					statusText = "notmodified";
+					isSuccess = true;
+
+				// If we have data
+				} else {
+
+					try {
+						success = ajaxConvert( s, response );
+						statusText = "success";
+						isSuccess = true;
+					} catch(e) {
+						// We have a parsererror
+						statusText = "parsererror";
+						error = e;
+					}
+				}
+			} else {
+				// We extract error from statusText
+				// then normalize statusText and status for non-aborts
+				error = statusText;
+				if ( !statusText || status ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = "" + ( nativeStatusText || statusText );
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
+						[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		// Attach deferreds
+		deferred.promise( jqXHR );
+		jqXHR.success = jqXHR.done;
+		jqXHR.error = jqXHR.fail;
+		jqXHR.complete = completeDeferred.add;
+
+		// Status-dependent callbacks
+		jqXHR.statusCode = function( map ) {
+			if ( map ) {
+				var tmp;
+				if ( state < 2 ) {
+					for ( tmp in map ) {
+						statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
+					}
+				} else {
+					tmp = map[ jqXHR.status ];
+					jqXHR.then( tmp, tmp );
+				}
+			}
+			return this;
+		};
+
+		// Remove hash character (#7531: and string promotion)
+		// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+		// Extract dataTypes list
+		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
+
+		// Determine if a cross-domain request is in order
+		if ( s.crossDomain == null ) {
+			parts = rurl.exec( s.url.toLowerCase() );
+			s.crossDomain = !!( parts &&
+				( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
+					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
+						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
+			);
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefiler, stop there
+		if ( state === 2 ) {
+			return false;
+		}
+
+		// We can fire global events as of now if asked to
+		fireGlobals = s.global;
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// If data is available, append data to url
+			if ( s.data ) {
+				s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Get ifModifiedKey before adding the anti-cache parameter
+			ifModifiedKey = s.url;
+
+			// Add anti-cache in url if needed
+			if ( s.cache === false ) {
+
+				var ts = jQuery.now(),
+					// try replacing _= if it is there
+					ret = s.url.replace( rts, "$1_=" + ts );
+
+				// if nothing was replaced, add timestamp to the end
+				s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			ifModifiedKey = ifModifiedKey || s.url;
+			if ( jQuery.lastModified[ ifModifiedKey ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );
+			}
+			if ( jQuery.etag[ ifModifiedKey ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );
+			}
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+				// Abort if not done already
+				jqXHR.abort();
+				return false;
+
+		}
+
+		// Install callbacks on deferreds
+		for ( i in { success: 1, error: 1, complete: 1 } ) {
+			jqXHR[ i ]( s[ i ] );
+		}
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = setTimeout( function(){
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				state = 1;
+				transport.send( requestHeaders, done );
+			} catch (e) {
+				// Propagate exception as error if not done
+				if ( state < 2 ) {
+					done( -1, e );
+				// Simply rethrow otherwise
+				} else {
+					throw e;
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	// Serialize an array of form elements or a set of
+	// key/values into a query string
+	param: function( a, traditional ) {
+		var s = [],
+			add = function( key, value ) {
+				// If value is a function, invoke it and return its value
+				value = jQuery.isFunction( value ) ? value() : value;
+				s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+			};
+
+		// Set traditional to true for jQuery <= 1.3.2 behavior.
+		if ( traditional === undefined ) {
+			traditional = jQuery.ajaxSettings.traditional;
+		}
+
+		// If an array was passed in, assume that it is an array of form elements.
+		if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+			// Serialize the form elements
+			jQuery.each( a, function() {
+				add( this.name, this.value );
+			});
+
+		} else {
+			// If traditional, encode the "old" way (the way 1.3.2 or older
+			// did it), otherwise encode params recursively.
+			for ( var prefix in a ) {
+				buildParams( prefix, a[ prefix ], traditional, add );
+			}
+		}
+
+		// Return the resulting serialization
+		return s.join( "&" ).replace( r20, "+" );
+	}
+});
+
+function buildParams( prefix, obj, traditional, add ) {
+	if ( jQuery.isArray( obj ) ) {
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+				// If array item is non-scalar (array or object), encode its
+				// numeric index to resolve deserialization ambiguity issues.
+				// Note that rack (as of 1.0.0) can't currently deserialize
+				// nested arrays properly, and attempting to do so may cause
+				// a server error. Possible fixes are to modify rack's
+				// deserialization algorithm or to provide an option or flag
+				// to force array serialization to be shallow.
+				buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
+			}
+		});
+
+	} else if ( !traditional && obj != null && typeof obj === "object" ) {
+		// Serialize object item.
+		for ( var name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// This is still on the jQuery object... for now
+// Want to move this to jQuery.ajax some day
+jQuery.extend({
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {}
+
+});
+
+/* Handles responses to an ajax request:
+ * - sets all responseXXX fields accordingly
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var contents = s.contents,
+		dataTypes = s.dataTypes,
+		responseFields = s.responseFields,
+		ct,
+		type,
+		finalDataType,
+		firstDataType;
+
+	// Fill responseXXX fields
+	for ( type in responseFields ) {
+		if ( type in responses ) {
+			jqXHR[ responseFields[type] ] = responses[ type ];
+		}
+	}
+
+	// Remove auto dataType and get content-type in the process
+	while( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+// Chain conversions given the request and the original response
+function ajaxConvert( s, response ) {
+
+	// Apply the dataFilter if provided
+	if ( s.dataFilter ) {
+		response = s.dataFilter( response, s.dataType );
+	}
+
+	var dataTypes = s.dataTypes,
+		converters = {},
+		i,
+		key,
+		length = dataTypes.length,
+		tmp,
+		// Current and previous dataTypes
+		current = dataTypes[ 0 ],
+		prev,
+		// Conversion expression
+		conversion,
+		// Conversion function
+		conv,
+		// Conversion functions (transitive conversion)
+		conv1,
+		conv2;
+
+	// For each dataType in the chain
+	for ( i = 1; i < length; i++ ) {
+
+		// Create converters map
+		// with lowercased keys
+		if ( i === 1 ) {
+			for ( key in s.converters ) {
+				if ( typeof key === "string" ) {
+					converters[ key.toLowerCase() ] = s.converters[ key ];
+				}
+			}
+		}
+
+		// Get the dataTypes
+		prev = current;
+		current = dataTypes[ i ];
+
+		// If current is auto dataType, update it to prev
+		if ( current === "*" ) {
+			current = prev;
+		// If no auto and dataTypes are actually different
+		} else if ( prev !== "*" && prev !== current ) {
+
+			// Get the converter
+			conversion = prev + " " + current;
+			conv = converters[ conversion ] || converters[ "* " + current ];
+
+			// If there is no direct converter, search transitively
+			if ( !conv ) {
+				conv2 = undefined;
+				for ( conv1 in converters ) {
+					tmp = conv1.split( " " );
+					if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
+						conv2 = converters[ tmp[1] + " " + current ];
+						if ( conv2 ) {
+							conv1 = converters[ conv1 ];
+							if ( conv1 === true ) {
+								conv = conv2;
+							} else if ( conv2 === true ) {
+								conv = conv1;
+							}
+							break;
+						}
+					}
+				}
+			}
+			// If we found no converter, dispatch an error
+			if ( !( conv || conv2 ) ) {
+				jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
+			}
+			// If found converter is not an equivalence
+			if ( conv !== true ) {
+				// Convert with 1 or 2 converters accordingly
+				response = conv ? conv( response ) : conv2( conv1(response) );
+			}
+		}
+	}
+	return response;
+}
+
+
+
+
+var jsc = jQuery.now(),
+	jsre = /(\=)\?(&|$)|\?\?/i;
+
+// Default jsonp settings
+jQuery.ajaxSetup({
+	jsonp: "callback",
+	jsonpCallback: function() {
+		return jQuery.expando + "_" + ( jsc++ );
+	}
+});
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
+		( typeof s.data === "string" );
+
+	if ( s.dataTypes[ 0 ] === "jsonp" ||
+		s.jsonp !== false && ( jsre.test( s.url ) ||
+				inspectData && jsre.test( s.data ) ) ) {
+
+		var responseContainer,
+			jsonpCallback = s.jsonpCallback =
+				jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
+			previous = window[ jsonpCallback ],
+			url = s.url,
+			data = s.data,
+			replace = "$1" + jsonpCallback + "$2";
+
+		if ( s.jsonp !== false ) {
+			url = url.replace( jsre, replace );
+			if ( s.url === url ) {
+				if ( inspectData ) {
+					data = data.replace( jsre, replace );
+				}
+				if ( s.data === data ) {
+					// Add callback manually
+					url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
+				}
+			}
+		}
+
+		s.url = url;
+		s.data = data;
+
+		// Install callback
+		window[ jsonpCallback ] = function( response ) {
+			responseContainer = [ response ];
+		};
+
+		// Clean-up function
+		jqXHR.always(function() {
+			// Set callback back to previous value
+			window[ jsonpCallback ] = previous;
+			// Call if it was a function and we have a response
+			if ( responseContainer && jQuery.isFunction( previous ) ) {
+				window[ jsonpCallback ]( responseContainer[ 0 ] );
+			}
+		});
+
+		// Use data converter to retrieve json after script execution
+		s.converters["script json"] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( jsonpCallback + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Delegate to script
+		return "script";
+	}
+});
+
+
+
+
+// Install script dataType
+jQuery.ajaxSetup({
+	accepts: {
+		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /javascript|ecmascript/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+});
+
+// Handle cache's special case and global
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+		s.global = false;
+	}
+});
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function(s) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+
+		var script,
+			head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
+
+		return {
+
+			send: function( _, callback ) {
+
+				script = document.createElement( "script" );
+
+				script.async = "async";
+
+				if ( s.scriptCharset ) {
+					script.charset = s.scriptCharset;
+				}
+
+				script.src = s.url;
+
+				// Attach handlers for all browsers
+				script.onload = script.onreadystatechange = function( _, isAbort ) {
+
+					if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
+
+						// Handle memory leak in IE
+						script.onload = script.onreadystatechange = null;
+
+						// Remove the script
+						if ( head && script.parentNode ) {
+							head.removeChild( script );
+						}
+
+						// Dereference the script
+						script = undefined;
+
+						// Callback if not abort
+						if ( !isAbort ) {
+							callback( 200, "success" );
+						}
+					}
+				};
+				// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
+				// This arises when a base node is used (#2709 and #4378).
+				head.insertBefore( script, head.firstChild );
+			},
+
+			abort: function() {
+				if ( script ) {
+					script.onload( 0, 1 );
+				}
+			}
+		};
+	}
+});
+
+
+
+
+var // #5280: Internet Explorer will keep connections alive if we don't abort on unload
+	xhrOnUnloadAbort = window.ActiveXObject ? function() {
+		// Abort all pending requests
+		for ( var key in xhrCallbacks ) {
+			xhrCallbacks[ key ]( 0, 1 );
+		}
+	} : false,
+	xhrId = 0,
+	xhrCallbacks;
+
+// Functions to create xhrs
+function createStandardXHR() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch( e ) {}
+}
+
+function createActiveXHR() {
+	try {
+		return new window.ActiveXObject( "Microsoft.XMLHTTP" );
+	} catch( e ) {}
+}
+
+// Create the request object
+// (This is still attached to ajaxSettings for backward compatibility)
+jQuery.ajaxSettings.xhr = window.ActiveXObject ?
+	/* Microsoft failed to properly
+	 * implement the XMLHttpRequest in IE7 (can't request local files),
+	 * so we use the ActiveXObject when it is available
+	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+	 * we need a fallback.
+	 */
+	function() {
+		return !this.isLocal && createStandardXHR() || createActiveXHR();
+	} :
+	// For all other browsers, use the standard XMLHttpRequest object
+	createStandardXHR;
+
+// Determine support properties
+(function( xhr ) {
+	jQuery.extend( jQuery.support, {
+		ajax: !!xhr,
+		cors: !!xhr && ( "withCredentials" in xhr )
+	});
+})( jQuery.ajaxSettings.xhr() );
+
+// Create transport if the browser can provide an xhr
+if ( jQuery.support.ajax ) {
+
+	jQuery.ajaxTransport(function( s ) {
+		// Cross domain only allowed if supported through XMLHttpRequest
+		if ( !s.crossDomain || jQuery.support.cors ) {
+
+			var callback;
+
+			return {
+				send: function( headers, complete ) {
+
+					// Get a new xhr
+					var xhr = s.xhr(),
+						handle,
+						i;
+
+					// Open the socket
+					// Passing null username, generates a login popup on Opera (#2865)
+					if ( s.username ) {
+						xhr.open( s.type, s.url, s.async, s.username, s.password );
+					} else {
+						xhr.open( s.type, s.url, s.async );
+					}
+
+					// Apply custom fields if provided
+					if ( s.xhrFields ) {
+						for ( i in s.xhrFields ) {
+							xhr[ i ] = s.xhrFields[ i ];
+						}
+					}
+
+					// Override mime type if needed
+					if ( s.mimeType && xhr.overrideMimeType ) {
+						xhr.overrideMimeType( s.mimeType );
+					}
+
+					// X-Requested-With header
+					// For cross-domain requests, seeing as conditions for a preflight are
+					// akin to a jigsaw puzzle, we simply never set it to be sure.
+					// (it can always be set on a per-request basis or even using ajaxSetup)
+					// For same-domain requests, won't change header if already provided.
+					if ( !s.crossDomain && !headers["X-Requested-With"] ) {
+						headers[ "X-Requested-With" ] = "XMLHttpRequest";
+					}
+
+					// Need an extra try/catch for cross domain requests in Firefox 3
+					try {
+						for ( i in headers ) {
+							xhr.setRequestHeader( i, headers[ i ] );
+						}
+					} catch( _ ) {}
+
+					// Do send the request
+					// This may raise an exception which is actually
+					// handled in jQuery.ajax (so no try/catch here)
+					xhr.send( ( s.hasContent && s.data ) || null );
+
+					// Listener
+					callback = function( _, isAbort ) {
+
+						var status,
+							statusText,
+							responseHeaders,
+							responses,
+							xml;
+
+						// Firefox throws exceptions when accessing properties
+						// of an xhr when a network error occured
+						// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
+						try {
+
+							// Was never called and is aborted or complete
+							if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+								// Only called once
+								callback = undefined;
+
+								// Do not keep as active anymore
+								if ( handle ) {
+									xhr.onreadystatechange = jQuery.noop;
+									if ( xhrOnUnloadAbort ) {
+										delete xhrCallbacks[ handle ];
+									}
+								}
+
+								// If it's an abort
+								if ( isAbort ) {
+									// Abort it manually if needed
+									if ( xhr.readyState !== 4 ) {
+										xhr.abort();
+									}
+								} else {
+									status = xhr.status;
+									responseHeaders = xhr.getAllResponseHeaders();
+									responses = {};
+									xml = xhr.responseXML;
+
+									// Construct response list
+									if ( xml && xml.documentElement /* #4958 */ ) {
+										responses.xml = xml;
+									}
+									responses.text = xhr.responseText;
+
+									// Firefox throws an exception when accessing
+									// statusText for faulty cross-domain requests
+									try {
+										statusText = xhr.statusText;
+									} catch( e ) {
+										// We normalize with Webkit giving an empty statusText
+										statusText = "";
+									}
+
+									// Filter status for non standard behaviors
+
+									// If the request is local and we have data: assume a success
+									// (success with no data won't get notified, that's the best we
+									// can do given current implementations)
+									if ( !status && s.isLocal && !s.crossDomain ) {
+										status = responses.text ? 200 : 404;
+									// IE - #1450: sometimes returns 1223 when it should be 204
+									} else if ( status === 1223 ) {
+										status = 204;
+									}
+								}
+							}
+						} catch( firefoxAccessException ) {
+							if ( !isAbort ) {
+								complete( -1, firefoxAccessException );
+							}
+						}
+
+						// Call complete if needed
+						if ( responses ) {
+							complete( status, statusText, responses, responseHeaders );
+						}
+					};
+
+					// if we're in sync mode or it's in cache
+					// and has been retrieved directly (IE6 & IE7)
+					// we need to manually fire the callback
+					if ( !s.async || xhr.readyState === 4 ) {
+						callback();
+					} else {
+						handle = ++xhrId;
+						if ( xhrOnUnloadAbort ) {
+							// Create the active xhrs callbacks list if needed
+							// and attach the unload handler
+							if ( !xhrCallbacks ) {
+								xhrCallbacks = {};
+								jQuery( window ).unload( xhrOnUnloadAbort );
+							}
+							// Add to list of active xhrs callbacks
+							xhrCallbacks[ handle ] = callback;
+						}
+						xhr.onreadystatechange = callback;
+					}
+				},
+
+				abort: function() {
+					if ( callback ) {
+						callback(0,1);
+					}
+				}
+			};
+		}
+	});
+}
+
+
+
+
+var elemdisplay = {},
+	iframe, iframeDoc,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
+	timerId,
+	fxAttrs = [
+		// height animations
+		[ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
+		// width animations
+		[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
+		// opacity animations
+		[ "opacity" ]
+	],
+	fxNow;
+
+jQuery.fn.extend({
+	show: function( speed, easing, callback ) {
+		var elem, display;
+
+		if ( speed || speed === 0 ) {
+			return this.animate( genFx("show", 3), speed, easing, callback );
+
+		} else {
+			for ( var i = 0, j = this.length; i < j; i++ ) {
+				elem = this[ i ];
+
+				if ( elem.style ) {
+					display = elem.style.display;
+
+					// Reset the inline display of this element to learn if it is
+					// being hidden by cascaded rules or not
+					if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
+						display = elem.style.display = "";
+					}
+
+					// Set elements which have been overridden with display: none
+					// in a stylesheet to whatever the default browser style is
+					// for such an element
+					if ( display === "" && jQuery.css(elem, "display") === "none" ) {
+						jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
+					}
+				}
+			}
+
+			// Set the display of most of the elements in a second loop
+			// to avoid the constant reflow
+			for ( i = 0; i < j; i++ ) {
+				elem = this[ i ];
+
+				if ( elem.style ) {
+					display = elem.style.display;
+
+					if ( display === "" || display === "none" ) {
+						elem.style.display = jQuery._data( elem, "olddisplay" ) || "";
+					}
+				}
+			}
+
+			return this;
+		}
+	},
+
+	hide: function( speed, easing, callback ) {
+		if ( speed || speed === 0 ) {
+			return this.animate( genFx("hide", 3), speed, easing, callback);
+
+		} else {
+			var elem, display,
+				i = 0,
+				j = this.length;
+
+			for ( ; i < j; i++ ) {
+				elem = this[i];
+				if ( elem.style ) {
+					display = jQuery.css( elem, "display" );
+
+					if ( display !== "none" && !jQuery._data( elem, "olddisplay" ) ) {
+						jQuery._data( elem, "olddisplay", display );
+					}
+				}
+			}
+
+			// Set the display of the elements in a second loop
+			// to avoid the constant reflow
+			for ( i = 0; i < j; i++ ) {
+				if ( this[i].style ) {
+					this[i].style.display = "none";
+				}
+			}
+
+			return this;
+		}
+	},
+
+	// Save the old toggle function
+	_toggle: jQuery.fn.toggle,
+
+	toggle: function( fn, fn2, callback ) {
+		var bool = typeof fn === "boolean";
+
+		if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
+			this._toggle.apply( this, arguments );
+
+		} else if ( fn == null || bool ) {
+			this.each(function() {
+				var state = bool ? fn : jQuery(this).is(":hidden");
+				jQuery(this)[ state ? "show" : "hide" ]();
+			});
+
+		} else {
+			this.animate(genFx("toggle", 3), fn, fn2, callback);
+		}
+
+		return this;
+	},
+
+	fadeTo: function( speed, to, easing, callback ) {
+		return this.filter(":hidden").css("opacity", 0).show().end()
+					.animate({opacity: to}, speed, easing, callback);
+	},
+
+	animate: function( prop, speed, easing, callback ) {
+		var optall = jQuery.speed( speed, easing, callback );
+
+		if ( jQuery.isEmptyObject( prop ) ) {
+			return this.each( optall.complete, [ false ] );
+		}
+
+		// Do not change referenced properties as per-property easing will be lost
+		prop = jQuery.extend( {}, prop );
+
+		function doAnimation() {
+			// XXX 'this' does not always have a nodeName when running the
+			// test suite
+
+			if ( optall.queue === false ) {
+				jQuery._mark( this );
+			}
+
+			var opt = jQuery.extend( {}, optall ),
+				isElement = this.nodeType === 1,
+				hidden = isElement && jQuery(this).is(":hidden"),
+				name, val, p, e,
+				parts, start, end, unit,
+				method;
+
+			// will store per property easing and be used to determine when an animation is complete
+			opt.animatedProperties = {};
+
+			for ( p in prop ) {
+
+				// property name normalization
+				name = jQuery.camelCase( p );
+				if ( p !== name ) {
+					prop[ name ] = prop[ p ];
+					delete prop[ p ];
+				}
+
+				val = prop[ name ];
+
+				// easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
+				if ( jQuery.isArray( val ) ) {
+					opt.animatedProperties[ name ] = val[ 1 ];
+					val = prop[ name ] = val[ 0 ];
+				} else {
+					opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing';
+				}
+
+				if ( val === "hide" && hidden || val === "show" && !hidden ) {
+					return opt.complete.call( this );
+				}
+
+				if ( isElement && ( name === "height" || name === "width" ) ) {
+					// Make sure that nothing sneaks out
+					// Record all 3 overflow attributes because IE does not
+					// change the overflow attribute when overflowX and
+					// overflowY are set to the same value
+					opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
+
+					// Set display property to inline-block for height/width
+					// animations on inline elements that are having width/height animated
+					if ( jQuery.css( this, "display" ) === "inline" &&
+							jQuery.css( this, "float" ) === "none" ) {
+
+						// inline-level elements accept inline-block;
+						// block-level elements need to be inline with layout
+						if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) {
+							this.style.display = "inline-block";
+
+						} else {
+							this.style.zoom = 1;
+						}
+					}
+				}
+			}
+
+			if ( opt.overflow != null ) {
+				this.style.overflow = "hidden";
+			}
+
+			for ( p in prop ) {
+				e = new jQuery.fx( this, opt, p );
+				val = prop[ p ];
+
+				if ( rfxtypes.test( val ) ) {
+
+					// Tracks whether to show or hide based on private
+					// data attached to the element
+					method = jQuery._data( this, "toggle" + p ) || ( val === "toggle" ? hidden ? "show" : "hide" : 0 );
+					if ( method ) {
+						jQuery._data( this, "toggle" + p, method === "show" ? "hide" : "show" );
+						e[ method ]();
+					} else {
+						e[ val ]();
+					}
+
+				} else {
+					parts = rfxnum.exec( val );
+					start = e.cur();
+
+					if ( parts ) {
+						end = parseFloat( parts[2] );
+						unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );
+
+						// We need to compute starting value
+						if ( unit !== "px" ) {
+							jQuery.style( this, p, (end || 1) + unit);
+							start = ( (end || 1) / e.cur() ) * start;
+							jQuery.style( this, p, start + unit);
+						}
+
+						// If a +=/-= token was provided, we're doing a relative animation
+						if ( parts[1] ) {
+							end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start;
+						}
+
+						e.custom( start, end, unit );
+
+					} else {
+						e.custom( start, val, "" );
+					}
+				}
+			}
+
+			// For JS strict compliance
+			return true;
+		}
+
+		return optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+
+	stop: function( type, clearQueue, gotoEnd ) {
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each(function() {
+			var index,
+				hadTimers = false,
+				timers = jQuery.timers,
+				data = jQuery._data( this );
+
+			// clear marker counters if we know they won't be
+			if ( !gotoEnd ) {
+				jQuery._unmark( true, this );
+			}
+
+			function stopQueue( elem, data, index ) {
+				var hooks = data[ index ];
+				jQuery.removeData( elem, index, true );
+				hooks.stop( gotoEnd );
+			}
+
+			if ( type == null ) {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && index.indexOf(".run") === index.length - 4 ) {
+						stopQueue( this, data, index );
+					}
+				}
+			} else if ( data[ index = type + ".run" ] && data[ index ].stop ){
+				stopQueue( this, data, index );
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
+					if ( gotoEnd ) {
+
+						// force the next step to be the last
+						timers[ index ]( true );
+					} else {
+						timers[ index ].saveState();
+					}
+					hadTimers = true;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// start the next in the queue if the last step wasn't forced
+			// timers currently will call their complete callbacks, which will dequeue
+			// but only if they were gotoEnd
+			if ( !( gotoEnd && hadTimers ) ) {
+				jQuery.dequeue( this, type );
+			}
+		});
+	}
+
+});
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	setTimeout( clearFxNow, 0 );
+	return ( fxNow = jQuery.now() );
+}
+
+function clearFxNow() {
+	fxNow = undefined;
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, num ) {
+	var obj = {};
+
+	jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice( 0, num )), function() {
+		obj[ this ] = type;
+	});
+
+	return obj;
+}
+
+// Generate shortcuts for custom animations
+jQuery.each({
+	slideDown: genFx( "show", 1 ),
+	slideUp: genFx( "hide", 1 ),
+	slideToggle: genFx( "toggle", 1 ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+});
+
+jQuery.extend({
+	speed: function( speed, easing, fn ) {
+		var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+			complete: fn || !fn && easing ||
+				jQuery.isFunction( speed ) && speed,
+			duration: speed,
+			easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+		};
+
+		opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+			opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
+
+		// normalize opt.queue - true/undefined/null -> "fx"
+		if ( opt.queue == null || opt.queue === true ) {
+			opt.queue = "fx";
+		}
+
+		// Queueing
+		opt.old = opt.complete;
+
+		opt.complete = function( noUnmark ) {
+			if ( jQuery.isFunction( opt.old ) ) {
+				opt.old.call( this );
+			}
+
+			if ( opt.queue ) {
+				jQuery.dequeue( this, opt.queue );
+			} else if ( noUnmark !== false ) {
+				jQuery._unmark( this );
+			}
+		};
+
+		return opt;
+	},
+
+	easing: {
+		linear: function( p, n, firstNum, diff ) {
+			return firstNum + diff * p;
+		},
+		swing: function( p, n, firstNum, diff ) {
+			return ( ( -Math.cos( p*Math.PI ) / 2 ) + 0.5 ) * diff + firstNum;
+		}
+	},
+
+	timers: [],
+
+	fx: function( elem, options, prop ) {
+		this.options = options;
+		this.elem = elem;
+		this.prop = prop;
+
+		options.orig = options.orig || {};
+	}
+
+});
+
+jQuery.fx.prototype = {
+	// Simple function for setting a style value
+	update: function() {
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		( jQuery.fx.step[ this.prop ] || jQuery.fx.step._default )( this );
+	},
+
+	// Get the current size
+	cur: function() {
+		if ( this.elem[ this.prop ] != null && (!this.elem.style || this.elem.style[ this.prop ] == null) ) {
+			return this.elem[ this.prop ];
+		}
+
+		var parsed,
+			r = jQuery.css( this.elem, this.prop );
+		// Empty strings, null, undefined and "auto" are converted to 0,
+		// complex values such as "rotate(1rad)" are returned as is,
+		// simple values such as "10px" are parsed to Float.
+		return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
+	},
+
+	// Start an animation from one number to another
+	custom: function( from, to, unit ) {
+		var self = this,
+			fx = jQuery.fx;
+
+		this.startTime = fxNow || createFxNow();
+		this.end = to;
+		this.now = this.start = from;
+		this.pos = this.state = 0;
+		this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
+
+		function t( gotoEnd ) {
+			return self.step( gotoEnd );
+		}
+
+		t.queue = this.options.queue;
+		t.elem = this.elem;
+		t.saveState = function() {
+			if ( self.options.hide && jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) {
+				jQuery._data( self.elem, "fxshow" + self.prop, self.start );
+			}
+		};
+
+		if ( t() && jQuery.timers.push(t) && !timerId ) {
+			timerId = setInterval( fx.tick, fx.interval );
+		}
+	},
+
+	// Simple 'show' function
+	show: function() {
+		var dataShow = jQuery._data( this.elem, "fxshow" + this.prop );
+
+		// Remember where we started, so that we can go back to it later
+		this.options.orig[ this.prop ] = dataShow || jQuery.style( this.elem, this.prop );
+		this.options.show = true;
+
+		// Begin the animation
+		// Make sure that we start at a small width/height to avoid any flash of content
+		if ( dataShow !== undefined ) {
+			// This show is picking up where a previous hide or show left off
+			this.custom( this.cur(), dataShow );
+		} else {
+			this.custom( this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur() );
+		}
+
+		// Start by showing the element
+		jQuery( this.elem ).show();
+	},
+
+	// Simple 'hide' function
+	hide: function() {
+		// Remember where we started, so that we can go back to it later
+		this.options.orig[ this.prop ] = jQuery._data( this.elem, "fxshow" + this.prop ) || jQuery.style( this.elem, this.prop );
+		this.options.hide = true;
+
+		// Begin the animation
+		this.custom( this.cur(), 0 );
+	},
+
+	// Each step of an animation
+	step: function( gotoEnd ) {
+		var p, n, complete,
+			t = fxNow || createFxNow(),
+			done = true,
+			elem = this.elem,
+			options = this.options;
+
+		if ( gotoEnd || t >= options.duration + this.startTime ) {
+			this.now = this.end;
+			this.pos = this.state = 1;
+			this.update();
+
+			options.animatedProperties[ this.prop ] = true;
+
+			for ( p in options.animatedProperties ) {
+				if ( options.animatedProperties[ p ] !== true ) {
+					done = false;
+				}
+			}
+
+			if ( done ) {
+				// Reset the overflow
+				if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
+
+					jQuery.each( [ "", "X", "Y" ], function( index, value ) {
+						elem.style[ "overflow" + value ] = options.overflow[ index ];
+					});
+				}
+
+				// Hide the element if the "hide" operation was done
+				if ( options.hide ) {
+					jQuery( elem ).hide();
+				}
+
+				// Reset the properties, if the item has been hidden or shown
+				if ( options.hide || options.show ) {
+					for ( p in options.animatedProperties ) {
+						jQuery.style( elem, p, options.orig[ p ] );
+						jQuery.removeData( elem, "fxshow" + p, true );
+						// Toggle data is no longer needed
+						jQuery.removeData( elem, "toggle" + p, true );
+					}
+				}
+
+				// Execute the complete function
+				// in the event that the complete function throws an exception
+				// we must ensure it won't be called twice. #5684
+
+				complete = options.complete;
+				if ( complete ) {
+
+					options.complete = false;
+					complete.call( elem );
+				}
+			}
+
+			return false;
+
+		} else {
+			// classical easing cannot be used with an Infinity duration
+			if ( options.duration == Infinity ) {
+				this.now = t;
+			} else {
+				n = t - this.startTime;
+				this.state = n / options.duration;
+
+				// Perform the easing function, defaults to swing
+				this.pos = jQuery.easing[ options.animatedProperties[this.prop] ]( this.state, n, 0, 1, options.duration );
+				this.now = this.start + ( (this.end - this.start) * this.pos );
+			}
+			// Perform the next step of the animation
+			this.update();
+		}
+
+		return true;
+	}
+};
+
+jQuery.extend( jQuery.fx, {
+	tick: function() {
+		var timer,
+			timers = jQuery.timers,
+			i = 0;
+
+		for ( ; i < timers.length; i++ ) {
+			timer = timers[ i ];
+			// Checks the timer has not already been removed
+			if ( !timer() && timers[ i ] === timer ) {
+				timers.splice( i--, 1 );
+			}
+		}
+
+		if ( !timers.length ) {
+			jQuery.fx.stop();
+		}
+	},
+
+	interval: 13,
+
+	stop: function() {
+		clearInterval( timerId );
+		timerId = null;
+	},
+
+	speeds: {
+		slow: 600,
+		fast: 200,
+		// Default speed
+		_default: 400
+	},
+
+	step: {
+		opacity: function( fx ) {
+			jQuery.style( fx.elem, "opacity", fx.now );
+		},
+
+		_default: function( fx ) {
+			if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
+				fx.elem.style[ fx.prop ] = fx.now + fx.unit;
+			} else {
+				fx.elem[ fx.prop ] = fx.now;
+			}
+		}
+	}
+});
+
+// Adds width/height step functions
+// Do not set anything below 0
+jQuery.each([ "width", "height" ], function( i, prop ) {
+	jQuery.fx.step[ prop ] = function( fx ) {
+		jQuery.style( fx.elem, prop, Math.max(0, fx.now) + fx.unit );
+	};
+});
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+	jQuery.expr.filters.animated = function( elem ) {
+		return jQuery.grep(jQuery.timers, function( fn ) {
+			return elem === fn.elem;
+		}).length;
+	};
+}
+
+// Try to restore the default display value of an element
+function defaultDisplay( nodeName ) {
+
+	if ( !elemdisplay[ nodeName ] ) {
+
+		var body = document.body,
+			elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
+			display = elem.css( "display" );
+		elem.remove();
+
+		// If the simple way fails,
+		// get element's real default display by attaching it to a temp iframe
+		if ( display === "none" || display === "" ) {
+			// No iframe to use yet, so create it
+			if ( !iframe ) {
+				iframe = document.createElement( "iframe" );
+				iframe.frameBorder = iframe.width = iframe.height = 0;
+			}
+
+			body.appendChild( iframe );
+
+			// Create a cacheable copy of the iframe document on first call.
+			// IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
+			// document to it; WebKit & Firefox won't allow reusing the iframe document.
+			if ( !iframeDoc || !iframe.createElement ) {
+				iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
+				iframeDoc.write( ( document.compatMode === "CSS1Compat" ? "<!doctype html>" : "" ) + "<html><body>" );
+				iframeDoc.close();
+			}
+
+			elem = iframeDoc.createElement( nodeName );
+
+			iframeDoc.body.appendChild( elem );
+
+			display = jQuery.css( elem, "display" );
+			body.removeChild( iframe );
+		}
+
+		// Store the correct default display
+		elemdisplay[ nodeName ] = display;
+	}
+
+	return elemdisplay[ nodeName ];
+}
+
+
+
+
+var rtable = /^t(?:able|d|h)$/i,
+	rroot = /^(?:body|html)$/i;
+
+if ( "getBoundingClientRect" in document.documentElement ) {
+	jQuery.fn.offset = function( options ) {
+		var elem = this[0], box;
+
+		if ( options ) {
+			return this.each(function( i ) {
+				jQuery.offset.setOffset( this, options, i );
+			});
+		}
+
+		if ( !elem || !elem.ownerDocument ) {
+			return null;
+		}
+
+		if ( elem === elem.ownerDocument.body ) {
+			return jQuery.offset.bodyOffset( elem );
+		}
+
+		try {
+			box = elem.getBoundingClientRect();
+		} catch(e) {}
+
+		var doc = elem.ownerDocument,
+			docElem = doc.documentElement;
+
+		// Make sure we're not dealing with a disconnected DOM node
+		if ( !box || !jQuery.contains( docElem, elem ) ) {
+			return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
+		}
+
+		var body = doc.body,
+			win = getWindow(doc),
+			clientTop  = docElem.clientTop  || body.clientTop  || 0,
+			clientLeft = docElem.clientLeft || body.clientLeft || 0,
+			scrollTop  = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop  || body.scrollTop,
+			scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
+			top  = box.top  + scrollTop  - clientTop,
+			left = box.left + scrollLeft - clientLeft;
+
+		return { top: top, left: left };
+	};
+
+} else {
+	jQuery.fn.offset = function( options ) {
+		var elem = this[0];
+
+		if ( options ) {
+			return this.each(function( i ) {
+				jQuery.offset.setOffset( this, options, i );
+			});
+		}
+
+		if ( !elem || !elem.ownerDocument ) {
+			return null;
+		}
+
+		if ( elem === elem.ownerDocument.body ) {
+			return jQuery.offset.bodyOffset( elem );
+		}
+
+		var computedStyle,
+			offsetParent = elem.offsetParent,
+			prevOffsetParent = elem,
+			doc = elem.ownerDocument,
+			docElem = doc.documentElement,
+			body = doc.body,
+			defaultView = doc.defaultView,
+			prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
+			top = elem.offsetTop,
+			left = elem.offsetLeft;
+
+		while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
+			if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
+				break;
+			}
+
+			computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
+			top  -= elem.scrollTop;
+			left -= elem.scrollLeft;
+
+			if ( elem === offsetParent ) {
+				top  += elem.offsetTop;
+				left += elem.offsetLeft;
+
+				if ( jQuery.support.doesNotAddBorder && !(jQuery.support.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
+					top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
+					left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+				}
+
+				prevOffsetParent = offsetParent;
+				offsetParent = elem.offsetParent;
+			}
+
+			if ( jQuery.support.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
+				top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
+				left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+			}
+
+			prevComputedStyle = computedStyle;
+		}
+
+		if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
+			top  += body.offsetTop;
+			left += body.offsetLeft;
+		}
+
+		if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
+			top  += Math.max( docElem.scrollTop, body.scrollTop );
+			left += Math.max( docElem.scrollLeft, body.scrollLeft );
+		}
+
+		return { top: top, left: left };
+	};
+}
+
+jQuery.offset = {
+
+	bodyOffset: function( body ) {
+		var top = body.offsetTop,
+			left = body.offsetLeft;
+
+		if ( jQuery.support.doesNotIncludeMarginInBodyOffset ) {
+			top  += parseFloat( jQuery.css(body, "marginTop") ) || 0;
+			left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
+		}
+
+		return { top: top, left: left };
+	},
+
+	setOffset: function( elem, options, i ) {
+		var position = jQuery.css( elem, "position" );
+
+		// set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		var curElem = jQuery( elem ),
+			curOffset = curElem.offset(),
+			curCSSTop = jQuery.css( elem, "top" ),
+			curCSSLeft = jQuery.css( elem, "left" ),
+			calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
+			props = {}, curPosition = {}, curTop, curLeft;
+
+		// need to be able to calculate position if either top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( jQuery.isFunction( options ) ) {
+			options = options.call( elem, i, curOffset );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+
+jQuery.fn.extend({
+
+	position: function() {
+		if ( !this[0] ) {
+			return null;
+		}
+
+		var elem = this[0],
+
+		// Get *real* offsetParent
+		offsetParent = this.offsetParent(),
+
+		// Get correct offsets
+		offset       = this.offset(),
+		parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
+
+		// Subtract element margins
+		// note: when an element has margin: auto the offsetLeft and marginLeft
+		// are the same in Safari causing offset.left to incorrectly be 0
+		offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
+		offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
+
+		// Add offsetParent borders
+		parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
+		parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
+
+		// Subtract the two offsets
+		return {
+			top:  offset.top  - parentOffset.top,
+			left: offset.left - parentOffset.left
+		};
+	},
+
+	offsetParent: function() {
+		return this.map(function() {
+			var offsetParent = this.offsetParent || document.body;
+			while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+			return offsetParent;
+		});
+	}
+});
+
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( ["Left", "Top"], function( i, name ) {
+	var method = "scroll" + name;
+
+	jQuery.fn[ method ] = function( val ) {
+		var elem, win;
+
+		if ( val === undefined ) {
+			elem = this[ 0 ];
+
+			if ( !elem ) {
+				return null;
+			}
+
+			win = getWindow( elem );
+
+			// Return the scroll offset
+			return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
+				jQuery.support.boxModel && win.document.documentElement[ method ] ||
+					win.document.body[ method ] :
+				elem[ method ];
+		}
+
+		// Set the scroll offset
+		return this.each(function() {
+			win = getWindow( this );
+
+			if ( win ) {
+				win.scrollTo(
+					!i ? val : jQuery( win ).scrollLeft(),
+					 i ? val : jQuery( win ).scrollTop()
+				);
+
+			} else {
+				this[ method ] = val;
+			}
+		});
+	};
+});
+
+function getWindow( elem ) {
+	return jQuery.isWindow( elem ) ?
+		elem :
+		elem.nodeType === 9 ?
+			elem.defaultView || elem.parentWindow :
+			false;
+}
+
+
+
+
+// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
+jQuery.each([ "Height", "Width" ], function( i, name ) {
+
+	var type = name.toLowerCase();
+
+	// innerHeight and innerWidth
+	jQuery.fn[ "inner" + name ] = function() {
+		var elem = this[0];
+		return elem ?
+			elem.style ?
+			parseFloat( jQuery.css( elem, type, "padding" ) ) :
+			this[ type ]() :
+			null;
+	};
+
+	// outerHeight and outerWidth
+	jQuery.fn[ "outer" + name ] = function( margin ) {
+		var elem = this[0];
+		return elem ?
+			elem.style ?
+			parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
+			this[ type ]() :
+			null;
+	};
+
+	jQuery.fn[ type ] = function( size ) {
+		// Get window width or height
+		var elem = this[0];
+		if ( !elem ) {
+			return size == null ? null : this;
+		}
+
+		if ( jQuery.isFunction( size ) ) {
+			return this.each(function( i ) {
+				var self = jQuery( this );
+				self[ type ]( size.call( this, i, self[ type ]() ) );
+			});
+		}
+
+		if ( jQuery.isWindow( elem ) ) {
+			// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
+			// 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
+			var docElemProp = elem.document.documentElement[ "client" + name ],
+				body = elem.document.body;
+			return elem.document.compatMode === "CSS1Compat" && docElemProp ||
+				body && body[ "client" + name ] || docElemProp;
+
+		// Get document width or height
+		} else if ( elem.nodeType === 9 ) {
+			// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
+			return Math.max(
+				elem.documentElement["client" + name],
+				elem.body["scroll" + name], elem.documentElement["scroll" + name],
+				elem.body["offset" + name], elem.documentElement["offset" + name]
+			);
+
+		// Get or set width or height on the element
+		} else if ( size === undefined ) {
+			var orig = jQuery.css( elem, type ),
+				ret = parseFloat( orig );
+
+			return jQuery.isNumeric( ret ) ? ret : orig;
+
+		// Set the width or height on the element (default to pixels if value is unitless)
+		} else {
+			return this.css( type, typeof size === "string" ? size : size + "px" );
+		}
+	};
+
+});
+
+
+
+
+// Expose jQuery to the global object
+window.jQuery = window.$ = jQuery;
+
+// Expose jQuery as an AMD module, but only for AMD loaders that
+// understand the issues with loading multiple versions of jQuery
+// in a page that all might call define(). The loader will indicate
+// they have special allowances for multiple jQuery versions by
+// specifying define.amd.jQuery = true. Register as a named module,
+// since jQuery can be concatenated with other files that may use define,
+// but not use a proper concatenation script that understands anonymous
+// AMD modules. A named AMD is safest and most robust way to register.
+// Lowercase jquery is used because AMD module names are derived from
+// file names, and jQuery is normally delivered in a lowercase file name.
+// Do this after creating the global so that if an AMD module wants to call
+// noConflict to hide this version of jQuery, it will work.
+if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
+	define( "jquery", [], function () { return jQuery; } );
+}
+
+
+
+})( window );
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/mandreel.js b/suite/pts/deviceTests/browserbench/assets/octane/mandreel.js
new file mode 100644
index 0000000..b5f3d05
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/mandreel.js
@@ -0,0 +1,277377 @@
+// Portions copyright 2012 Google, Inc.
+// Copyright 2012 Onan Games. 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.
+//     * Neither the name of Google Inc. 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 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.
+
+
+var MandreelBenchmark = new BenchmarkSuite('Mandreel', 14000000,
+                                            [new Benchmark('Mandreel',
+                                                           runMandreel,
+                                                           setupMandreel,
+                                                           tearDownMandreel,
+                                                           4)]);
+
+function setupMandreel() {
+
+  // Check for Typed Arrays support, throw error if not.
+  if (!(typeof Uint8Array != "undefined" &&
+    typeof Float64Array != "undefined" &&
+    typeof (new Uint8Array(0)).subarray != "undefined")) {
+      throw "TypedArrayUnsupported";
+  }
+
+  my_old_constructors = mandreel_call_constructors;
+  mandreel_call_constructors = my_mandreel_call_constructors;
+  startApp();
+  _mandreelAppAudioReady();
+}
+
+function runMandreel() {
+  Mandreel_currentTime = 0;
+  var sp = g_stack_pointer+800*1024;
+  for (var i=0;i<mandreel_total_memory/4;i++) {
+    heap32[i] = my_heap32[i];
+  }
+  tlsf_ptr = 0;
+  heapNewPos = my_heapNewPos;
+  my_old_constructors(llvm_2E_global_ctors,5,sp);
+  heapU32[sp>>2] = 640;
+  heapU32[(sp+4)>>2] = 480;
+  __mandreel_internal_SetResolution(sp);
+  __mandreel_internal_init(g_stack_pointer+800*1024);
+  __init(g_stack_pointer+800*1024);
+  for (var i = 0; i < 20; i++) {
+    render();
+    Mandreel_flushTimeouts();
+  }
+  Mandreel_checkState();
+}
+
+function tearDownMandreel() {
+  my_old_constructors = null;
+  my_heap = null;
+  my_heap8 = null;
+  my_heap32 = null;
+
+  heap = null;
+  heap8 = null;
+  heapU8 = null;
+  heap16 = null;
+  heapU16 = null;
+  heap32 = null;
+  heapU32 = null;
+  heapFloat = null;
+  heapDouble = null;
+  mandreelAppUsePackAsyncTexture = null;
+}
+
+// Mocks for browser functions.
+
+function Mandreel_setTimeout(cmd, delay) {
+  timeouts.push(cmd);
+}
+
+function Mandreel_flushTimeouts() {
+  while (Mandreel_timeouts.length != 0) {
+    var next = Mandreel_timeouts.pop();
+    eval(next);
+  }
+}
+
+Mandreel_timeouts = new Array();
+
+Mandreel_XMLHttpRequest = function() {
+  this.open = function(type, url, some_bool) {
+    this.url = url;
+  }
+  this.overrideMimeType = function() {
+  }
+  this.send = function() {
+    this.response = null;
+    this.readyState = 4;
+    this.status = 0;
+    this.onreadystatechange();
+  }
+};
+
+function Mandreel_Element(type) {
+  this.element_type = type;
+  this.insertBefore = function() {
+  }
+}
+
+
+function Mandreel_Context() {
+}
+
+function Mandreel_Canvas() {
+}
+
+function Mandreel_CanvasDiv() {
+}
+
+Mandreel_document = {
+  createElement : function(element_type) {
+    var element = new Mandreel_Element(element_type);
+    element.parentNode = new Mandreel_Element("dummy_parent");
+    return element;
+  },
+  getElementById : function(name) {
+    if (name === "canvas") {
+      return new Mandreel_Canvas();
+    } else if (name === "canvasDiv") {
+      return new Mandreel_CanvasDiv();
+    } else {
+      return undefined;
+    }
+  },
+  getElementsByTagName : function(element) {
+    if (element === "script") {
+      return new Array(new this.createElement(element));
+    }
+  }
+
+};
+
+Mandreel_window = {
+  WebGLRenderingContext: {},
+  Float64Array: Float64Array,
+  Float32Array: Float32Array,
+  Int32Array: Int32Array,
+  Uint32Array: Uint32Array,
+  Int16Array: Int16Array,
+  Uint16Array: Uint16Array,
+  Int8Array: Int8Array,
+  Uint8Array: Uint8Array,
+  setTimeout: Mandreel_setTimeout,
+  addEventListener : function () {},
+  document: Mandreel_document
+};
+
+function dump(x) { }
+
+alert = typeof alert != "undefined" ? alert : function(x) {
+  print(x);
+}
+
+var my_old_constructors;
+var my_heap;
+var my_heap8;
+var my_heap32;
+var my_heapNewPos;
+
+function my_mandreel_call_constructors(_ptr, size,stackPos) {
+  my_heapNewPos = heapNewPos;
+  my_heap = new ArrayBuffer(mandreel_total_memory);
+  my_heap8 = new Int8Array(my_heap);
+  my_heap32 = new Int32Array(my_heap);
+  for (var i=0;i<mandreel_total_memory/4;i++) {
+    my_heap32[i] = heap32[i];
+  }
+  my_old_constructors(_ptr,size,stackPos);
+}
+
+
+var Mandreel_currentTime = 0;
+
+function Date_now() {
+   Mandreel_currentTime += 16;
+   return Mandreel_currentTime;
+}
+
+function Mandreel_checkState() {
+  var sum = 0;
+  for (var i = 0; i < heap32.length; i += 100) {
+    sum = (sum * 3 + heap32[i]) & 0xFFFFFF;
+  }
+  if (sum != 8001026) {
+    alert("Check sum mismatch: expected ???, actual " + sum);
+  }
+}
+
+// Original Mandreel code follows.
+// Modifications for benchmarking are marked in comments.
+
+// Start of js/main.js file:
+
+////////////////////////////////////////////
+function startApp(_platform)
+{
+	// Start mandreel
+	var params =
+	{
+		platform : _platform,
+		width : 1024,
+		height : 768,
+		webglCanvas : "canvas",
+		flashCanvas : "FlashDiv",
+		workingFolderFlash : "data/as3/",
+		workingFolderWebgl : "data/js/",
+		swfFlash : "mandreel.swf",
+		log : true
+	};
+	mandreelAppStart(appStartState,params);
+}
+
+////////////////////////////////////////////
+function appStartState(state,param)
+{
+	// mandreel.js program is been loaded
+	if ( state == "loadingScript" )
+	{
+	}
+
+	// mandreel.js program has been loaded
+	if ( state == "scriptLoaded" )
+	{
+	}
+
+	// loading pack data file
+	if (state == "loadingData")
+	{
+		// param bytes loaded
+	}
+
+	// Audio system is been started
+	if ( state == "loadingAudio" )
+	{
+	}
+
+	// Audio system is ready and the default audio preloading has been done
+	if ( state == "audioLoaded" )
+	{
+	}
+
+
+
+	// Mandreel has been started, render will start automatically
+	if ( state == "ready" )
+	{
+		// Hide loading image
+		var canvasElement = Mandreel_document.getElementById('loading');
+		if ( canvasElement != null )
+			canvasElement.style.visibility = "hidden";
+	}
+
+	// An error has been produced during the start process and the app must quit
+	if ( state == "error" )
+	{
+		if ( param == "webgl_not_found" )
+		{
+			window.location = "http://get.webgl.org";
+			return;
+		}
+		alert(param);
+	}
+}
+
+// End of js/main.js file.
+
+// Start of js/mandreelapp.js file.
+
+var mandreelAppMandreelJs = "mandreel.js";
+var mandreelAppMandreelJsCompressed = false;
+var mandreelAppWorkingFolder = "data/js/";
+var mandreelAppLog = false;
+var mandreelAppLocalHost = "http://localhost";
+var mandreelAppReadDataFromLocalHost = false;
+var mandreelAppReadMandreelJsFromLocalHost = false;
+var mandreelAppHostedAudioServer = null;
+var mandreelAppHostedAudioUrl = null;
+var mandrelCurrentFatVersion = "1.4";
+var mandreelAppPlatform = "webgl";
+var mandreelAppCanvasWidth = 1024;
+var mandreelAppCanvasHeight = 768;
+var mandreelAppWidthSrc = 1024;
+var mandreelAppHeightSrc = 768;
+var mandreelAppCanvasName = "canvas";
+var mandreelAppCanvasDiv = "canvasDiv";
+var mandreelAppUseFlashSockets = false;
+var mandreelAppUsePackAsyncTexture = new Array();
+//var mandreelBufferPackAsyncTexture = null;
+var mandreelAppForceFocus = true;
+var _imandreel_pause_game = false;
+
+/* The following code was removed for benchmarking:
+navigator.pointer = navigator.pointer || navigator.webkitPointer || navigator.mozPointer || null;*/
+
+/* The following code was removed for benchmarking:
+ if (!Date_now) {
+   Date_now = function() {
+     return +new Date();
+   };
+ };*/
+
+////////////////////////////////////////////
+
+if (Mandreel_window["console"])
+{
+	if (!Mandreel_window["dump"]) Mandreel_window["dump"] = function dump(str){ if ( mandreelAppLog ) console.log(str) };
+}
+else
+{
+	if (!Mandreel_window["dump"]) Mandreel_window["dump"] = function dump(str){ };
+}
+
+/* The following code is removed for benchmarking:
+var mandreel_BrowserDetect = {
+	init: function () {
+		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
+		this.version = this.searchVersion(navigator.userAgent)
+			|| this.searchVersion(navigator.appVersion)
+			|| "an unknown version";
+		this.OS = this.searchString(this.dataOS) || "an unknown OS";
+	},
+	searchString: function (data) {
+		for (var i=0;i<data.length;i++)	{
+			var dataString = data[i].string;
+			var dataProp = data[i].prop;
+			this.versionSearchString = data[i].versionSearch || data[i].identity;
+			if (dataString) {
+				if (dataString.indexOf(data[i].subString) != -1)
+					return data[i].identity;
+			}
+			else if (dataProp)
+				return data[i].identity;
+		}
+	},
+	searchVersion: function (dataString) {
+		var index = dataString.indexOf(this.versionSearchString);
+		if (index == -1) return;
+		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
+	},
+	dataBrowser: [
+		{
+			string: navigator.userAgent,
+			subString: "Chrome",
+			identity: "Chrome"
+		},
+		{ 	string: navigator.userAgent,
+			subString: "OmniWeb",
+			versionSearch: "OmniWeb/",
+			identity: "OmniWeb"
+		},
+		{
+			string: navigator.vendor,
+			subString: "Apple",
+			identity: "Safari",
+			versionSearch: "Version"
+		},
+		{
+			prop: window.opera,
+			identity: "Opera",
+			versionSearch: "Version"
+		},
+		{
+			string: navigator.vendor,
+			subString: "iCab",
+			identity: "iCab"
+		},
+		{
+			string: navigator.vendor,
+			subString: "KDE",
+			identity: "Konqueror"
+		},
+		{
+			string: navigator.userAgent,
+			subString: "Firefox",
+			identity: "Firefox"
+		},
+		{
+			string: navigator.vendor,
+			subString: "Camino",
+			identity: "Camino"
+		},
+		{		// for newer Netscapes (6+)
+			string: navigator.userAgent,
+			subString: "Netscape",
+			identity: "Netscape"
+		},
+		{
+			string: navigator.userAgent,
+			subString: "MSIE",
+			identity: "Explorer",
+			versionSearch: "MSIE"
+		},
+		{
+			string: navigator.userAgent,
+			subString: "Gecko",
+			identity: "Mozilla",
+			versionSearch: "rv"
+		},
+		{ 		// for older Netscapes (4-)
+			string: navigator.userAgent,
+			subString: "Mozilla",
+			identity: "Netscape",
+			versionSearch: "Mozilla"
+		}
+	],
+	dataOS : [
+		{
+			string: navigator.platform,
+			subString: "Win",
+			identity: "Windows"
+		},
+		{
+			string: navigator.platform,
+			subString: "Mac",
+			identity: "Mac"
+		},
+		{
+			   string: navigator.userAgent,
+			   subString: "iPhone",
+			   identity: "iPhone/iPod"
+	    },
+		{
+			string: navigator.platform,
+			subString: "Linux",
+			identity: "Linux"
+		}
+	]
+
+};
+mandreel_BrowserDetect.init(); */
+
+////////////////////////////////////////////
+var mandreel_packfiledata_name = null;
+var mandreel_packfiledata_compressed = false;
+var mandreel_packfiledata_size = 0;
+var mandreel_total_packtexture_size = 0;
+var mandreel_total_pogfile_size = 0;
+var mandreel_loaded_packtexture_size = 0;
+var mandreel_jslzma_size = 0;
+var mandreel_swf_size = 0;
+
+var mandreelJsScriptLoaded_loaded = false;
+
+var mandreel_swf_last_total_size = 0;
+function mandreel_swf_size_updated(str)
+{
+	var params = str.split(',');
+	if ( mandreel_swf_size == 0 )
+	{
+		mandreel_swf_last_loaded_size = 0;
+	}
+	mandreel_swf_size = parseInt(params[0]);
+	var loaded = parseInt(params[1]);
+	var delta_size = loaded - mandreel_swf_last_loaded_size;
+	mandreel_swf_last_loaded_size = loaded;
+
+	var percentage = ((100*loaded)/mandreel_swf_size)|0;
+	if (percentage>100)
+		percentage = 100;
+
+	if ( mandreelAppStartStateFunc )
+		mandreelAppStartStateFunc("loadingScriptUpdate",percentage);
+
+	imandreel_update_load(delta_size,0);
+}
+
+function mandreel_swf_size_loaded(str)
+{
+	if ( mandreelAppStartStateFunc )
+		mandreelAppStartStateFunc("scriptLoaded","");
+}
+
+function mandreelNextDecompress(mandreel_result_lzma)
+{
+
+	if ( mandreelAppStartStateFunc )
+	{
+		var totalBytesLeft = mandreel_result_lzma.totalSize - mandreel_result_lzma.remainingBytes;
+
+		var percentage;
+
+		if (totalBytesLeft == 0)
+			percentage = 0;
+		else
+			percentage = ((100*totalBytesLeft)/mandreel_result_lzma.totalSize)|0;
+
+		mandreelAppStartStateFunc("uncompressingDataUpdate",percentage);
+	}
+
+	var old_result = mandreel_result_lzma;
+	mandreel_result_lzma = LZMA.decompress2(mandreel_result_lzma.inStream,mandreel_result_lzma.inStream,mandreel_result_lzma.outStream,mandreel_result_lzma);
+
+	if (mandreel_result_lzma == null)
+	{
+		//setTimeout(mandreelLoadScript,10,old_result.my_outStream.data);
+
+		//mandreel_fs_saveFile('data.bin', old_result.my_outStream.arrayBuffer);
+		//callback(old_result.my_outStream.arrayBuffer);
+		//alert('done');
+		mandreelLoadPackData(old_result.my_outStream.arrayBuffer,true);
+	}
+	else
+	{
+		Mandreel_setTimeout(mandreelNextDecompress,10,mandreel_result_lzma);
+	}
+
+
+}
+
+function mandreel_load_packfile(array_buffer)
+{
+	if (array_buffer)
+	{
+		mandreelLoadPackData(array_buffer,false);
+		return;
+	}
+
+	var working_folder = mandreelAppWorkingFolder;
+	if ( mandreelAppReadDataFromLocalHost )
+		working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
+	var packdata_request = new XMLHttpRequest();
+	var url = working_folder+mandreel_packfiledata_name;
+
+	packdata_request.open("GET", url, true);
+
+	if("responseType" in packdata_request)
+		packdata_request.responseType="arraybuffer";
+	else
+		packdata_request.overrideMimeType('text/plain; charset=x-user-defined');
+
+	var last_loaded_size = 0;
+
+	packdata_request.onreadystatechange = function()
+	{
+		if (packdata_request.readyState != 4) return;
+
+		if (packdata_request.status == 200)
+		{
+			var buffer;
+			if (packdata_request.responseType=="arraybuffer")
+				buffer=packdata_request.response;
+			else if (packdata_request.mozResponseArrayBuffer != null)
+				buffer = packdata_request.mozResponseArrayBuffer;
+			else
+				buffer=packdata_request.response;
+
+			if (mandreel_packfiledata_compressed)
+			{
+				var inStream = {
+				  data: new Uint8Array(buffer),
+				  offset: 0,
+				  readByte: function(){
+					return this.data[this.offset ++];
+				  }
+				};
+
+				var outStream = {
+				  data: null,
+				  offset: 0,
+				  binary_mode : true,
+				  writeByte: function(value){
+					this.data[this.offset ++] = value;
+				  }
+				};
+
+
+				var result = LZMA.decompress2(inStream,inStream,outStream,null);
+
+				if (result == null)
+					mandreelLoadPackData(outStream.arrayBuffer,true);
+				else
+					Mandreel_setTimeout(mandreelNextDecompress,10,result);
+			}
+			else
+				mandreelLoadPackData(buffer,true);
+		}
+		else
+		{
+			if ( mandreelAppStartStateFunc )
+				mandreelAppStartStateFunc("error","can't load packfile data");
+		}
+	}
+	packdata_request.onprogress = function(e)
+	{
+		var delta_size = e.loaded - last_loaded_size;
+		last_loaded_size = e.loaded;
+		var percentage = ((100*e.loaded)/mandreel_packfiledata_size)|0;
+
+
+		imandreel_update_load(delta_size,0);
+
+		if (percentage>100)
+			percentage = 100;
+
+		if ( mandreelAppStartStateFunc )
+			mandreelAppStartStateFunc("loadingData",percentage);
+	}
+
+	packdata_request.send();
+}
+
+function mandreelJsScriptLoaded()
+{
+	if (mandreelJsScriptLoaded_loaded)
+		return;
+
+	if (typeof(mandreel_cache_files)=="undefined")
+	{
+		Mandreel_setTimeout(mandreelJsScriptLoaded,10);
+		return;
+	}
+
+	mandreelJsScriptLoaded_loaded = true;
+
+	if ( mandreelAppStartStateFunc )
+		mandreelAppStartStateFunc("scriptLoaded","");
+
+	if (mandreel_packfiledata_name)
+	{
+
+		mandreel_fs_load_binary(mandreel_packfiledata_name, mandreel_load_packfile);
+
+
+	}
+	else
+	{
+		mandreelCacheMandreelFat();
+		imandreelJsScriptLoaded();
+	}
+}
+
+function imandreelLoadAudio()
+{
+	g_mandreel_working_folder = mandreelAppWorkingFolder;
+	if ( mandreelAppReadDataFromLocalHost )
+		g_mandreel_working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
+
+	// load audio
+	if ( mandreelAppStartStateFunc )
+		mandreelAppStartStateFunc("loadingAudio","");
+	mandreel_start_audio(mandreelAppHostedAudioServer,mandreelAppHostedAudioUrl,_mandreelAppAudioReady);
+}
+
+var _mandreel_currentPackTexture = '';
+
+function imandreel_packasynctexture_loaded(buffer,save_file)
+{
+	if (save_file)
+		mandreel_fs_saveFile(_mandreel_currentPackTexture,buffer);
+
+	//mandreelBufferPackAsyncTexture = buffer;
+	Mandreel_TextureAsync_PackBufferData[_mandreel_currentPackTexture] = buffer;
+
+	imandreelLoadNextTexturePack();
+}
+
+var mandreel_update_total_size = 0;
+
+function imandreel_update_load(size, total)
+{
+	if (total == 0)
+		total = mandreel_packfiledata_size + mandreel_total_packtexture_size + mandreel_total_pogfile_size + mandreel_jslzma_size + mandreel_swf_size;
+
+
+	mandreel_update_total_size+=size;
+
+	var percentage = ((100*mandreel_update_total_size)/total)|0;
+
+	if (percentage>100)
+		percentage = 100;
+	if (mandreelAppStartStateFunc)
+		mandreelAppStartStateFunc("loadingProgress",percentage);
+
+}
+
+
+function imandreel_packasynctexture_load(array_buffer)
+{
+	if (array_buffer)
+	{
+		imandreel_packasynctexture_loaded(array_buffer, false);
+		return;
+	}
+
+
+	var working_folder = mandreelAppWorkingFolder;
+	if ( mandreelAppReadDataFromLocalHost )
+		working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
+	var packdata_request = new XMLHttpRequest();
+	var url = working_folder+_mandreel_currentPackTexture;
+
+	packdata_request.open("GET", url, true);
+
+	if("responseType" in packdata_request)
+		packdata_request.responseType="arraybuffer";
+	else
+		packdata_request.overrideMimeType('text/plain; charset=x-user-defined');
+
+	var last_loaded_size = 0;
+
+	packdata_request.onreadystatechange = function()
+	{
+		if (packdata_request.readyState != 4) return;
+
+		if (packdata_request.status == 200)
+		{
+			var buffer;
+			if (packdata_request.responseType=="arraybuffer")
+				buffer=packdata_request.response;
+			else if (packdata_request.mozResponseArrayBuffer != null)
+				buffer = packdata_request.mozResponseArrayBuffer;
+			else
+				buffer=packdata_request.response;
+
+			imandreel_packasynctexture_loaded(buffer, true);
+		}
+		else
+		{
+			if ( mandreelAppStartStateFunc )
+				mandreelAppStartStateFunc("error","can't load textureasync pack data");
+		}
+	}
+	packdata_request.onprogress = function(e)
+	{
+		var delta_size = e.loaded - last_loaded_size;
+		last_loaded_size = e.loaded;
+		mandreel_loaded_packtexture_size+=delta_size;
+
+		imandreel_update_load(delta_size,0);
+
+		var percentage = ((100*mandreel_loaded_packtexture_size)/mandreel_total_packtexture_size)|0;
+
+		if (percentage>100)
+			percentage = 100;
+
+		if ( mandreelAppStartStateFunc )
+			mandreelAppStartStateFunc("loadingTextureAsyncPack",percentage);
+	}
+
+	packdata_request.send();
+
+}
+
+function imandreelLoadNextTexturePack()
+{
+	if (mandreelAppUsePackAsyncTexture.length)
+	{
+		_mandreel_currentPackTexture = mandreelAppUsePackAsyncTexture.pop();
+		mandreel_fs_load_binary(_mandreel_currentPackTexture, imandreel_packasynctexture_load);
+	}
+	else
+		imandreelLoadAudio();
+}
+
+function imandreelJsScriptLoaded()
+{
+	imandreelLoadNextTexturePack();
+}
+
+////////////////////////////////////////////
+
+function mandreelDecompressJSReady(code, save_file)
+{
+	if (save_file)
+		mandreel_fs_saveFile(mandreelAppMandreelJs + ".lzma", code);
+
+	var ga = Mandreel_document.createElement('script');
+	ga.type = "text/javascript";
+	ga.text = code;
+	var s = Mandreel_document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+	s.parentNode.removeChild(ga);
+	mandreelJsScriptLoaded();
+}
+
+function mandreelNextDecompressJS(mandreel_result_lzma)
+{
+
+	if ( mandreelAppStartStateFunc )
+	{
+		var totalBytesLeft = mandreel_result_lzma.totalSize - mandreel_result_lzma.remainingBytes;
+
+		var percentage;
+
+		if (totalBytesLeft == 0)
+			percentage = 0;
+		else
+			percentage = ((100*totalBytesLeft)/mandreel_result_lzma.totalSize)|0;
+
+		mandreelAppStartStateFunc("uncompressingScriptUpdate",percentage);
+	}
+
+	var old_result = mandreel_result_lzma;
+	mandreel_result_lzma = LZMA.decompress2(mandreel_result_lzma.inStream,mandreel_result_lzma.inStream,mandreel_result_lzma.outStream,mandreel_result_lzma);
+
+	if (mandreel_result_lzma == null)
+	{
+		mandreelDecompressJSReady(old_result.my_outStream.data,true);
+	}
+	else
+	{
+		Mandreel_setTimeout(mandreelNextDecompressJS,10,mandreel_result_lzma);
+	}
+
+
+}
+
+function mandreel_load_compressed_js(code_js)
+{
+	if (code_js)
+	{
+		mandreelDecompressJSReady(code_js,false);
+		return;
+	}
+	 var xmlhttp_get = new XMLHttpRequest();
+
+	 var url = mandreelAppMandreelJs + ".lzma";
+	 if ( mandreelAppReadMandreelJsFromLocalHost )
+		url = mandreelAppLocalHost+"/"+url;
+
+	 xmlhttp_get.open('GET',url);
+
+
+	if("responseType" in xmlhttp_get)
+		xmlhttp_get.responseType="arraybuffer";
+	else
+		xmlhttp_get.overrideMimeType('text/plain; charset=x-user-defined');
+
+	var last_loaded_size = 0;
+
+	xmlhttp_get.onreadystatechange = function()
+	{
+		if (xmlhttp_get.readyState==4)
+		{
+			if (xmlhttp_get.status==200 || xmlhttp_get.status==0)
+			{
+
+				var inStream = {
+				  data: new Uint8Array(xmlhttp_get.response),
+				  offset: 0,
+				  readByte: function(){
+					return this.data[this.offset ++];
+				  }
+				};
+
+				var outStream = {
+				  data: new String(""),
+				  offset: 0,
+				  binary_mode : false,
+				  writeByte: function(value){
+					this.data+=String.fromCharCode(value);
+				  }
+				};
+
+
+				var result = LZMA.decompress2(inStream,inStream,outStream,null);
+				if (result == null)
+					mandreelDecompressJSReady(outStream.data,true);
+				else
+					Mandreel_setTimeout(mandreelNextDecompressJS,10,result);
+			}
+			else
+			{
+				alert('error ' + xmlhttp_get.status);
+			}
+		}
+
+	}
+
+	xmlhttp_get.onprogress = function(e)
+	{
+		var delta_size = e.loaded - last_loaded_size;
+		last_loaded_size = e.loaded;
+
+		var percentage = ((100*e.loaded)/e.total)|0;
+
+		mandreel_jslzma_size = e.total;
+
+		imandreel_update_load(delta_size,0);
+
+		if (percentage>100)
+			percentage = 100;
+
+		if ( mandreelAppStartStateFunc )
+			mandreelAppStartStateFunc("loadingScriptUpdate",percentage);
+	}
+
+	xmlhttp_get.send();
+
+}
+
+function mandreelLoadMandreelJsScript()
+{
+	if (mandreelAppMandreelJsCompressed)
+	{
+		mandreel_fs_load_text(mandreelAppMandreelJs + ".lzma", mandreel_load_compressed_js);
+
+	}
+	else
+	{
+		var ga = Mandreel_document.createElement('script');
+		ga.type = 'text/javascript';
+		ga.async = true;
+		ga.onload = ga.onreadystatechange = mandreelJsScriptLoaded;
+		var url = mandreelAppMandreelJs;
+		if ( mandreelAppReadMandreelJsFromLocalHost )
+			ga.src = mandreelAppLocalHost+"/"+url;
+		else
+			ga.src = url;
+		var s = Mandreel_document.getElementsByTagName('script')[0];
+		if ( mandreelAppStartStateFunc )
+			mandreelAppStartStateFunc("loadingScript","");
+		s.parentNode.insertBefore(ga, s);
+	}
+}
+
+////////////////////////////////////////////
+function mandreelFatLoaded()
+{
+	if ( mandreelAppPlatform == "nacl" )
+	{
+		g_mandreel_working_folder = mandreelAppWorkingFolder;
+		if ( mandreelAppReadDataFromLocalHost )
+			g_mandreel_working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
+
+		// load audio
+		if ( mandreelAppStartStateFunc )
+			mandreelAppStartStateFunc("loadingAudio","");
+		_mandreelAppAudioReady();
+	}
+	else
+		mandreelLoadMandreelJsScript();
+}
+
+var mandreelFatData = "";
+var mandreelFatPreloadRequest = 0;
+////////////////////////////////////////////
+
+function mandreel_chanka_fixfile(fileName)
+{
+	var fileNameNoExt = fileName.toLowerCase();
+	fileNameNoExt = fileNameNoExt.replace(/\\/g,"/");
+
+	fileNameNoExt =  fileNameNoExt.substr(1);
+
+	var new_fileName = '';
+
+	for(var j = 0; j < fileNameNoExt.length; j++)
+	{
+		var data = fileNameNoExt.charCodeAt(j);
+
+		if (data != 13)
+		{
+			 var t = String.fromCharCode(data);
+			 new_fileName+=t;
+		}
+	}
+
+	return 	new_fileName;
+}
+
+function mandreel_removecr(my_string)
+{
+	var new_string = '';
+	for(var j = 0; j < my_string.length; j++)
+	{
+		var data = my_string.charCodeAt(j);
+
+		if (data != 13)
+		{
+			 var t = String.fromCharCode(data);
+			 new_string+=t;
+		}
+	}
+
+	return 	new_string;
+}
+
+function mandreelCacheMandreelFat()
+{
+	var array_mandreel_fat = new ArrayBuffer(mandreelFatData.length+1);
+
+
+	{
+		var j;
+		var len = mandreelFatData.length;
+		var data_char;
+
+		var my_bytes = new Uint8Array(array_mandreel_fat);
+
+		for(j = 0; j < len; j++)
+		{
+			data_char = mandreelFatData.charCodeAt(j);
+
+			my_bytes[j] = data_char;
+		}
+		my_bytes[j] = 0;
+	}
+
+
+	mandreel_cache_files['mandreel.fat'] = array_mandreel_fat;
+}
+
+function mandreelLoadPackData(data, save_pack)
+{
+	var files = mandreelFatData.split('\n');
+
+	var current_dir = '';
+	var current_offset = 0;
+
+	if (save_pack)
+		mandreel_fs_saveFile(mandreel_packfiledata_name,data);
+
+
+	for (var i=0;i<files.length;++i)
+	{
+		var file_data = files[i].split(',');
+
+		if (file_data[0] == 'dir')
+		{
+			current_dir = file_data[1];
+			//current_dir = current_dir.substr(0,current_dir.lengh-1);
+		}
+		else if (file_data[0] == 'file')
+		{
+			var file_name = current_dir + file_data[1];
+			file_name = mandreel_chanka_fixfile(file_name) ;
+			//dump('new file ' + file_name + ' ' + current_offset);
+			//dump(file_name);
+			var file_size = parseInt(file_data[2]);
+
+			var my_array = new ArrayBuffer(file_size);
+
+			var my_bytes = new Uint8Array(my_array);
+
+			var data_bytes = new Uint8Array(data,current_offset,file_size);
+
+			my_bytes.set(data_bytes);
+
+			mandreel_cache_files[file_name] = my_array;
+
+
+			current_offset+=file_size;
+
+
+		}
+	}
+
+
+
+	g_mandreel_datafiles_sufix = '';
+	mandreelCacheMandreelFat();
+
+	imandreelJsScriptLoaded();
+}
+
+var preCreatedWebAudioContext = null;
+
+function mandreelLoadFat()
+{
+	mandreelFatPreloadRequest = new Mandreel_XMLHttpRequest();
+	var working_folder = mandreelAppWorkingFolder;
+	if ( mandreelAppReadDataFromLocalHost )
+		working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
+	var url = working_folder+"mandreel.fat.dat";
+	if ( mandreelAppPlatform == "nacl" )
+		url = working_folder+"mandreel.fat";
+	mandreelFatPreloadRequest.open("GET", url, true);
+	mandreelFatPreloadRequest.onreadystatechange = function()
+	{
+		if (mandreelFatPreloadRequest.readyState != 4) return;
+		if ( mandreelFatPreloadRequest.status != 404 && mandreelFatPreloadRequest.response != null )
+		{
+			mandreelFatData = mandreelFatPreloadRequest.response;
+		}
+		if ( mandreelFatData == "" )
+		{
+			dump("error loading mandreel.fat file, Maybe the working folder is not correctly set???");
+		}
+
+		var packfiledata = null;
+		var compressed = false;
+		var packfiledata_size = 0;
+		var total_packtexture_size = 0;
+		var pogsize = 0;
+
+		// Check version
+		var FatLines = mandreelFatData.split('\n');
+		for ( var i=0;i<FatLines.length;++i )
+		{
+			var line = mandreel_removecr(FatLines[i]);
+			var params = line.split(',');
+			if ( params[0] == "version" )
+			{
+				if ( params[1] != mandrelCurrentFatVersion )
+					dump("warning: mandreel.fat version number is ("+params[1]+") and it should be ("+mandrelCurrentFatVersion+")");
+
+			}
+			else if ( params[0] == "platform" && params[1] != "js" && (mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas")  )
+				dump("warning: mandreel.fat platform is ("+params[1]+") and it should be (js)");
+			else if ( params[0] == "platform" && params[1] != "nacl" && mandreelAppPlatform == "nacl"  )
+				dump("warning: mandreel.fat platform is ("+params[1]+") and it should be (nacl)");
+			else if (params[0] == 'packdata')
+			{
+				packfiledata = params[1];
+				compressed = params[2].charAt(0) == '1';
+				packfiledata_size =  parseInt(params[3], 10);
+			}
+			else if (params[0] == 'flashsockets')
+			{
+				mandreelAppUseFlashSockets = true;
+			}
+			else if (params[0] == 'packtexture')
+			{
+				var filename = params[1];
+				var size_packtexture = parseInt(params[3], 10);
+				total_packtexture_size+=size_packtexture;
+				mandreelAppUsePackAsyncTexture.push(filename);
+			}
+			else if (params[0] == 'audiopreloadfile')
+			{
+				pogsize = parseInt(params[2],10);
+			}
+			else if (params[0] == 'audiodriver' && params[1] == 'webaudio')
+			{
+				try	{ preCreatedWebAudioContext = new webkitAudioContext(); } catch(err) { preCreatedWebAudioContext = null; }
+			}
+		}
+
+		if ( preCreatedWebAudioContext != null )
+			mandreel_total_pogfile_size = pogsize;
+		mandreel_packfiledata_name = packfiledata;
+		mandreel_packfiledata_compressed = compressed;
+		mandreel_packfiledata_size = packfiledata_size;
+		mandreel_total_packtexture_size = total_packtexture_size;
+		mandreelFatLoaded();
+	}
+	mandreelFatPreloadRequest.send();
+}
+
+var mandreelAppStartStateFunc = 0;
+var mandreelDisableSpaceKey = true;
+////////////////////////////////////////////
+function mandreelAppStart(startStateFunc,params)
+{
+	mandreelAppStartStateFunc = startStateFunc;
+
+
+
+
+	if ( typeof(params.log) != 'undefined' )
+		mandreelAppLog = params.log;
+
+	if ( typeof(params.platform) != 'undefined' )
+		mandreelAppPlatform = params.platform;
+
+	if (typeof(params.mandreelJSCompressed) != 'undefined' )
+		mandreelAppMandreelJsCompressed = params.mandreelJSCompressed;
+
+
+/*	 The following code is removed for benchmarking:
+	if ((mandreel_BrowserDetect.browser == 'Chrome' || mandreel_BrowserDetect.browser == 'Safari') && mandreel_BrowserDetect.OS == 'Mac' && mandreelAppPlatform == "flash")
+		mandreelDisableSpaceKey = false; */
+
+	if ( mandreelAppPlatform != "webgl" && mandreelAppPlatform != "flash" && mandreelAppPlatform != "nacl" && mandreelAppPlatform != "canvas" && mandreelAppPlatform != "plugin")
+	{
+		mandreelAppStartStateFunc("error",'platform ('+mandreelAppPlatform+') not supported');
+		return;
+	}
+
+	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
+	{
+		mandreelAppWorkingFolder = "data/js/";
+		if ( typeof(params.workingFolderWebgl) != 'undefined' )
+			mandreelAppWorkingFolder = params.workingFolderWebgl;
+		// Check Float64Array availability
+		if ( !Mandreel_window["Float64Array"] )
+		{
+			mandreelAppStartStateFunc("error",'Browser unsupported: Float64Array not available');
+			return;
+		}
+
+		var flashElement = Mandreel_document.getElementById('FlashWrapper');
+		if ( flashElement != null )
+		{
+			flashElement.style.visibility = "hidden";
+			flashElement.style.width = "0px";
+			flashElement.style.height = "0px";
+		}
+		var flashElement = Mandreel_document.getElementById('FlashDiv');
+		if ( flashElement != null )
+		{
+			flashElement.style.visibility = "hidden";
+			flashElement.style.width = "0px";
+			flashElement.style.height = "0px";
+		}
+
+		// Setup WebGL
+		if ( typeof(params.webglCanvas) == 'undefined' )
+		{
+			mandreelAppStartStateFunc("error",'canvas parameter not found');
+			return;
+		}
+		var canvas = Mandreel_document.getElementById(params.webglCanvas);
+		if ( canvas == null )
+		{
+			mandreelAppStartStateFunc("error",'canvas object ('+params.webglCanvas+') not found');
+			return;
+		}
+		if ( params.width != null )
+		{
+			canvas.width = params.width;
+			mandreelAppWidthSrc = params.width;
+		}
+		if ( params.height != null )
+		{
+			canvas.height = params.height;
+			mandreelAppHeightSrc = params.height;
+		}
+		if ( mandreelAppPlatform == "webgl" )
+		{
+			// The following code is removed for benchmarking:
+			// imandreel_gl = WebGLUtils.setupWebGL(canvas,{premultipliedAlpha:false,alpha:false});
+			// if (imandreel_gl == null)
+			// {
+			//	mandreelAppStartStateFunc("error","webgl_not_found");
+			//	return;
+			// }
+		}
+
+		if ( mandreelAppPlatform == "canvas" )
+		{
+			imandreel_ctx_canvas = canvas.getContext('2d');
+			if ( imandreel_ctx_canvas == null )
+			{
+				mandreelAppStartStateFunc("error","canvas context 2d not found");
+				return;
+			}
+		}
+
+		if (params.cache != null)
+		{
+			//alert( params.cache.size + params.cache.url);
+			mandreel_fs_init(function() { if ( mandreelAppStartStateFunc )
+				mandreelAppStartStateFunc("loadingFat","");
+			mandreelLoadFat();}, params.cache.size,params.cache.url);
+		}
+		else
+		{
+			// load Fat
+			if ( mandreelAppStartStateFunc )
+				mandreelAppStartStateFunc("loadingFat","");
+			mandreelLoadFat();
+		}
+	}
+
+	if ( mandreelAppPlatform == "flash" )
+	{
+		mandreelAppWorkingFolder = "data/as3/";
+		if ( typeof(params.workingFolderFlash) != 'undefined' )
+			mandreelAppWorkingFolder = params.workingFolderFlash;
+		if (!swfobject.hasFlashPlayerVersion('11.2.0'))
+		{
+			mandreelAppStartStateFunc("error","flash 11 not found");
+			return;
+		}
+
+		if ( typeof(params.flashCanvas) == 'undefined' )
+		{
+			mandreelAppStartStateFunc("error",'canvas parameter not found');
+			return;
+		}
+
+		if ( true ) // hide webgl canvas
+		{
+			var canvas = Mandreel_document.getElementById(mandreelAppCanvasDiv);
+			if ( canvas != null )
+			{
+				canvas.style.visibility = "hidden";
+				canvas.style.width = "0px";
+				canvas.style.height = "0px";
+			}
+		}
+
+		if ( params.width != null )
+		{
+			mandreelAppCanvasWidth = params.width;
+		}
+		if ( params.height != null )
+		{
+			mandreelAppCanvasHeight = params.height;
+		}
+
+		mandreelAppCanvasDiv = params.flashCanvas;
+
+		try
+		{
+			var mandreelSocketsSwf = "mandreel.swf";
+			if ( typeof(params.swfFlash) != 'undefined' )
+				mandreelSocketsSwf = params.swfFlash;
+
+			var my_flashvars = "workingFolder=" + encodeURIComponent(mandreelAppWorkingFolder);
+			if ( typeof(params.log) != 'undefined' && params.log == true)
+			  my_flashvars += "&log=true"
+			my_flashvars += "&width=" + params.width;
+			my_flashvars += "&height=" + params.height;
+			my_flashvars += "&swfloader=" + mandreelSocketsSwf;
+
+			if (typeof(params.restore_context) != 'undefined' && params.restore_context == true)
+				my_flashvars += "&restore_context=1";
+
+			if (typeof(params.antialiasing) != 'undefined')
+				my_flashvars += "&antialiasing=" + params.antialiasing;
+
+			if (typeof(params.right_click_enable) != 'undefined' && params.right_click_enable == true)
+				my_flashvars += "&right_click=1";
+
+			if (typeof(params.disable_depth) != 'undefined' && params.disable_depth == true)
+				my_flashvars += "&disable_depth=1";
+
+			var swfname = "mandreelloader.swf";
+			if ( typeof(params.swfPreloader) != 'undefined' && params.swfPreloader == false)
+				swfname = mandreelSocketsSwf;
+
+			var swf = swfobject.createSWF({ data:swfname, width:"100%", height:"100%" }, { menu:"false",allowScriptAccess:"always",allowFullScreen:"true",wmode:"direct",scale:"noscale",salign :"tl",bgcolor:"#000000",flashvars:my_flashvars}, params.flashCanvas);
+			if ( !swf )
+			{
+				mandreelAppStartStateFunc("error","error loading " + swfname);
+				return;
+			}
+			else
+			{
+				if ( mandreelAppStartStateFunc )
+					mandreelAppStartStateFunc("loadingScript","");
+			}
+		}
+		catch(err)
+		{
+			mandreelAppStartStateFunc("error","exception " + err + " while loading " + mandreelSocketsSwf);
+			return;
+		}
+
+		appStartState('loadingScript');
+	}
+
+	if ( mandreelAppPlatform == "nacl" )
+	{
+		mandreelAppWorkingFolder = "data/nacl/";
+
+		// load Fat
+		if ( mandreelAppStartStateFunc )
+			mandreelAppStartStateFunc("loadingFat","");
+		mandreelLoadFat();
+
+	}
+
+	if ( mandreelAppPlatform == "plugin" )
+	{
+		mandreelInitPluginPlatform(params);
+	}
+}
+
+
+////////////////////////////////////////////
+function MandreelAudioStartedNacl()
+{
+	var helloWorldModule = null;
+	helloWorldModule = Mandreel_document.getElementById('hello_world');
+	helloWorldModule.postMessage('init');
+	var flashElement = Mandreel_document.getElementById('FlashWrapper');
+	if ( flashElement != null )
+		flashElement.style.visibility = "hidden";
+	mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight);
+}
+
+////////////////////////////////////////////
+function _mandreelAppStartReady()
+{
+	if ( mandreelAppPlatform == "nacl" )
+	{
+		wa_initWebAudio();
+		mandreel_webAudio_PreloadAssets();
+	}
+	else
+	{
+		if ( mandreelAppStartStateFunc )
+		{
+			mandreelAppStartRenderWebGL();
+			mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight);
+		}
+	}
+}
+////////////////////////////////////////////
+function _mandreelAppAudioReady()
+{
+	if ( mandreelAppStartStateFunc )
+		mandreelAppStartStateFunc("audioLoaded","");
+
+	if ( mandreelAppUseFlashSockets )
+		mandreel_flash_sockets_load_flash(_mandreelAppStartReady);
+	else
+		_mandreelAppStartReady();
+}
+
+////////////////////////////////////////////
+function mandreelAppInit()
+{
+	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
+	{
+		global_init(g_stack_pointer+800*1024);
+
+		//Mandreel_TextureAsync_PackBufferData[_mandreel_currentPackTexture] = mandreelBufferPackAsyncTexture;
+		//mandreelBufferPackAsyncTexture = null;
+		var sp = g_stack_pointer+800*1024;
+		heapU32[sp>>2] = mandreelAppCanvasWidth;
+		heapU32[(sp+4)>>2] = mandreelAppCanvasHeight;
+		__mandreel_internal_SetResolution(sp);
+		__mandreel_internal_init(g_stack_pointer+800*1024);
+		__init(g_stack_pointer+800*1024);
+	}
+}
+
+////////////////////////////////////////////
+function mandreelAppDraw(elapsed)
+{
+	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
+	{
+		if ( mandreelAppPlatform == "canvas" && imandreel_ctx_canvas != null )
+		{
+			var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
+			imandreel_ctx_canvas.clearRect(0,0,canvas.width,canvas.height);
+		}
+		var sp = g_stack_pointer+800*1024;
+		__mandreel_internal_preupdate(sp);
+		heapU32[sp>>2] = elapsed;
+		__draw(sp);
+		__mandreel_internal_update(sp);
+		__mandreel_process_async_calls();
+	}
+}
+
+////////////////////////////////////////////
+function mandreelAppMouseWheel(delta)
+{
+	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
+	{
+		var i7 = MandreelLockFrame();
+		heap32[(i7+0)>>2] = delta;
+		__mouseWheelDelta(i7);
+		MandreelUnlockFrame();
+	}
+}
+
+////////////////////////////////////////////
+function mandreelAppMouseMove(x,y)
+{
+	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
+	{
+		var i7 = MandreelLockFrame();
+		heap32[(i7+0)>>2] = x;
+		heap32[(i7+4)>>2] = y;
+		__mouseMove(i7);
+		MandreelUnlockFrame();
+	}
+}
+
+////////////////////////////////////////////
+function mandreelAppResize(x,y)
+{
+	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
+	{
+		var i7 = MandreelLockFrame();
+		heap32[(i7+0)>>2] = x;
+		heap32[(i7+4)>>2] = y;
+		__resize(i7);
+		heap32[(i7+0)>>2] = x;
+		heap32[(i7+4)>>2] = y;
+		__mandreel_internal_SetResolution(i7);
+		MandreelUnlockFrame();
+	}
+}
+
+////////////////////////////////////////////
+function mandreelAppMouseButton(down,x,y)
+{
+	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
+	{
+		var i7 = MandreelLockFrame();
+		heap32[(i7+0)>>2] = down;
+		heap32[(i7+4)>>2] = x;
+		heap32[(i7+8)>>2] = y;
+		__mouseButton(i7);
+		MandreelUnlockFrame();
+	}
+}
+
+////////////////////////////////////////////
+function mandreelAppMouseDblClick(x,y)
+{
+	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
+	{
+		var i7 = MandreelLockFrame();
+		heap32[(i7+0)>>2] = x;
+		heap32[(i7+4)>>2] = y;
+		__mouseDoubleClick(i7);
+		MandreelUnlockFrame();
+	}
+}
+
+////////////////////////////////////////////
+function mandreelAppKeyEvent(down,keyId)
+{
+	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
+	{
+		var i7 = MandreelLockFrame();
+		heap32[(i7+0)>>2] = down;
+		heap32[(i7+4)>>2] = keyId;
+		__keyEvent(i7);
+		MandreelUnlockFrame();
+	}
+}
+
+////////////////////////////////////////////
+function mandreelAppGetPlatform()
+{
+	return mandreelAppPlatform;
+}
+
+////////////////////////////////////////////
+function mandreelAppGetElementAbsolutePos(elementName)
+{
+	var element = Mandreel_document.getElementById(elementName);
+	var res = new Object();
+	res.x = 0; res.y = 0;
+	if (element !== null)
+	{
+		if (element.getBoundingClientRect)
+		{
+			var viewportElement = Mandreel_document.documentElement;
+			var box = element.getBoundingClientRect();
+			var scrollLeft = viewportElement.scrollLeft;
+			var scrollTop = viewportElement.scrollTop;
+			res.x = box.left + scrollLeft;
+			res.y = box.top + scrollTop;
+		}
+		else
+		{ //for old browsers
+			res.x = element.offsetLeft;
+			res.y = element.offsetTop;
+			var parentNode = element.parentNode;
+			var borderWidth = null;
+			while (offsetParent != null)
+			{
+				res.x += offsetParent.offsetLeft;
+				res.y += offsetParent.offsetTop;
+				var parentTagName = offsetParent.tagName.toLowerCase();
+				if ((__isIEOld && parentTagName != "table") ||
+					((__isFireFoxNew || __isChrome) &&
+						parentTagName == "td"))
+				{
+					borderWidth = kGetBorderWidth(offsetParent);
+					res.x += borderWidth.left;
+					res.y += borderWidth.top;
+				}
+
+				if (offsetParent != Mandreel_document.body &&
+				offsetParent != Mandreel_document.documentElement)
+				{
+					res.x -= offsetParent.scrollLeft;
+					res.y -= offsetParent.scrollTop;
+				}
+
+				//next lines are necessary to fix the problem
+				//with offsetParent
+				if (!__isIE && !__isOperaOld || __isIENew)
+				{
+					while (offsetParent != parentNode &&
+						parentNode !== null) {
+						res.x -= parentNode.scrollLeft;
+						res.y -= parentNode.scrollTop;
+						if (__isFireFoxOld || __isWebKit)
+						{
+						    borderWidth =
+						     kGetBorderWidth(parentNode);
+						    res.x += borderWidth.left;
+						    res.y += borderWidth.top;
+						}
+						parentNode = parentNode.parentNode;
+					}
+				}
+
+				parentNode = offsetParent.parentNode;
+				offsetParent = offsetParent.offsetParent;
+			}
+		}
+	}
+	return res;
+}
+function __getIEVersion()
+{
+	var rv = -1; // Return value assumes failure.
+	if (navigator.appName == 'Microsoft Internet Explorer')
+	{
+		var ua = navigator.userAgent;
+		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
+		if (re.exec(ua) != null)
+			rv = parseFloat(RegExp.$1);
+	}
+	return rv;
+}
+function __getOperaVersion()
+{
+	var rv = 0; // Default value
+	if (Mandreel_window.opera)
+	{
+		var sver = Mandreel_window.opera.version();
+		rv = parseFloat(sver);
+	}
+	return rv;
+}
+/* The following code was removed for benchmarking:
+var __userAgent = navigator.userAgent;
+var __isIE =  navigator.appVersion.match(/MSIE/) != null;
+var __IEVersion = __getIEVersion();
+var __isIENew = __isIE && __IEVersion >= 8;
+var __isIEOld = __isIE && !__isIENew;
+var __isFireFox = __userAgent.match(/firefox/i) != null;
+var __isFireFoxOld = __isFireFox && ((__userAgent.match(/firefox\/2./i) != null) || (__userAgent.match(/firefox\/1./i) != null));
+var __isFireFoxNew = __isFireFox && !__isFireFoxOld;
+var __isWebKit =  navigator.appVersion.match(/WebKit/) != null;
+var __isChrome =  navigator.appVersion.match(/Chrome/) != null;
+var __isOpera =  Mandreel_window.opera != null;
+var __operaVersion = __getOperaVersion();
+var __isOperaOld = __isOpera && (__operaVersion < 10); */
+function __parseBorderWidth(width)
+{
+	var res = 0;
+	if (typeof(width) == "string" && width != null && width != "" )
+	{
+		var p = width.indexOf("px");
+		if (p >= 0)
+		{
+			res = parseInt(width.substring(0, p));
+		}
+		else
+		{
+			//do not know how to calculate other values (such as 0.5em or 0.1cm) correctly now so just set the width to 1 pixel
+			res = 1;
+		}
+	}
+	return res;
+}
+function __getBorderWidth(element)
+{
+	var res = new Object();
+	res.left = 0; res.top = 0; res.right = 0; res.bottom = 0;
+	if (Mandreel_window.getComputedStyle)
+	{
+		//for Firefox
+		var elStyle = Mandreel_window.getComputedStyle(element, null);
+		res.left = parseInt(elStyle.borderLeftWidth.slice(0, -2));
+		res.top = parseInt(elStyle.borderTopWidth.slice(0, -2));
+		res.right = parseInt(elStyle.borderRightWidth.slice(0, -2));
+		res.bottom = parseInt(elStyle.borderBottomWidth.slice(0, -2));
+	}
+	else
+	{
+		//for other browsers
+		res.left = __parseBorderWidth(element.style.borderLeftWidth);
+		res.top = __parseBorderWidth(element.style.borderTopWidth);
+		res.right = __parseBorderWidth(element.style.borderRightWidth);
+		res.bottom = __parseBorderWidth(element.style.borderBottomWidth);
+	}
+	return res;
+}
+
+
+////////////////////////////////////////////
+// WebGL
+////////////////////////////////////////////
+	var imandreel_gl = null;
+	var imandreel_ctx_canvas = null;
+	var imandreel_is_ready = 0;
+	var imandreel_oldTime = Date_now();
+
+	function mandreel_wheel(event) { imandreel_onMouseWheel(event);event.preventDefault(); event.returnValue=false; }
+
+	////////////////////////////////////////////
+	function mandreelAppStartRenderWebGL()
+	{
+/* The following code was removed for benchmarking:
+		var canvas = document.getElementById(mandreelAppCanvasName);
+
+		mandreelAppCanvasWidth = canvas.width;
+		mandreelAppCanvasHeight = canvas.height;
+
+		// Register event handlers
+		if(window.addEventListener){ window.addEventListener('DOMMouseScroll',mandreel_wheel,false); }  window.onmousewheel=document.onmousewheel=mandreel_wheel;
+
+		window.addEventListener('mousedown',imandreel_onMouseDown,false);
+		window.addEventListener('mouseup',imandreel_onMouseUp,false);
+		window.addEventListener('mousemove',imandreel_onMouseMove,false);
+		window.addEventListener('dblclick',imandreel_onMouseDblClick,false);
+
+		document.body.oncontextmenu = function() { return false;};
+
+		var canvasDiv = document.getElementById(mandreelAppCanvasDiv);
+		canvasDiv.addEventListener('keydown',imandreel_onKeyDown,false);
+		canvasDiv.addEventListener('keyup',imandreel_onKeyUp,false);
+		canvasDiv.focus();*/
+
+		// Call mandreel app init funtion (__init())
+		mandreelAppInit();
+
+		// Start rendering
+		imandreel_is_ready = 1;
+		//imandreel_render();
+	}
+
+	////////////////////////////////////////////
+	function imandreel_render()
+	{
+		if( ABORT )
+			return;
+
+		var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
+		WebGLUtils.requestAnimationFrame(canvas, imandreel_render);
+
+
+		// Reshape
+		if (canvas.clientWidth != mandreelAppCanvasWidth || canvas.clientHeight != mandreelAppCanvasHeight)
+		{
+			mandreelAppCanvasWidth = canvas.clientWidth;
+			mandreelAppCanvasHeight = canvas.clientHeight;
+			imandreel_gl.viewport(0, 0, mandreelAppCanvasWidth, mandreelAppCanvasHeight);
+		}
+
+		// Set the focus to the canvas div
+		if (mandreelAppForceFocus)
+		{
+			var canvasDiv = Mandreel_document.getElementById(mandreelAppCanvasDiv);
+			canvasDiv.focus();
+		}
+
+		// Call mandreel app draw funtion (__draw())
+		var nowTime = Date_now();
+		if (!g_mandreel_frame_locked)
+		{
+			g_mandreel_frame_inframe = true;
+			if (!_imandreel_pause_game)
+				mandreelAppDraw(nowTime-imandreel_oldTime);
+			g_mandreel_frame_inframe = false;
+		}
+		imandreel_oldTime = nowTime;
+	}
+
+	function render()
+	{
+		// Call mandreel app draw funtion (__draw())
+		var nowTime = Date_now();
+		if (!g_mandreel_frame_locked)
+		{
+			g_mandreel_frame_inframe = true;
+			if (!_imandreel_pause_game)
+				mandreelAppDraw(nowTime-imandreel_oldTime);
+			g_mandreel_frame_inframe = false;
+		}
+		imandreel_oldTime = nowTime;
+	}
+
+	var imandreel_last_movex = 0;
+	var imandreel_last_movey = 0;
+
+	////////////////////////////////////////////
+	function imandreel_onMouseMove(e)
+	{
+		if (!imandreel_is_ready)
+			return;
+
+		if (_imandreel_pause_game)
+			return;
+
+		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
+		var setX = e.clientX - pos.x;
+		var setY = e.clientY - pos.y;
+
+		  if(navigator.pointer && navigator.pointer.isLocked) {
+            var deltaX = event.movementX || event.webkitMovementX || event.mozMovementX || 0;
+            var deltaY = event.movementY || event.webkitMovementY || event.mozMovementX || 0;
+
+			setX = imandreel_last_movex+deltaX;
+			setY = imandreel_last_movey+deltaY;
+			}
+
+
+		imandreel_last_movex = setX;
+		imandreel_last_movey = setY;
+		mandreelAppMouseMove(setX,setY);
+	}
+
+	////////////////////////////////////////////
+	function imandreel_onMouseDblClick(e)
+	{
+		if (!imandreel_is_ready)
+			return;
+
+		if (_imandreel_pause_game)
+			return;
+
+		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
+		var setX = e.clientX - pos.x;
+		var setY = e.clientY - pos.y;
+		mandreelAppMouseDblClick(setX,setY);
+	}
+
+	////////////////////////////////////////////
+	var mandreel_mouse_down = false;
+	var mandreel_rmouse_down = false;
+	function imandreel_onMouseDown(e)
+	{
+		if (!imandreel_is_ready)
+			return;
+
+		if (_imandreel_pause_game)
+			return;
+
+		var rightclick;
+		if (!e) var e = Mandreel_window.event;
+		if (e.which) rightclick = (e.which == 3);
+		else if (e.button) rightclick = (e.button == 2);
+
+		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
+		var setX = e.clientX - pos.x;
+		var setY = e.clientY - pos.y;
+
+		if (!rightclick)
+		{
+			if (mandreel_mouse_down)
+				return;
+
+			mandreel_mouse_down = true;
+			mandreelAppMouseButton(1,setX,setY);
+		}
+		else
+		{
+			if (mandreel_rmouse_down)
+				return;
+
+			mandreel_rmouse_down = true;
+			mandreelAppMouseButton(3,setX,setY);
+		}
+	}
+
+	////////////////////////////////////////////
+	function imandreel_onMouseUp(e)
+	{
+		if (!imandreel_is_ready)
+			return;
+
+		if (_imandreel_pause_game)
+			return;
+
+		var rightclick;
+		if (!e) var e = Mandreel_window.event;
+		if (e.which) rightclick = (e.which == 3);
+		else if (e.button) rightclick = (e.button == 2);
+
+		var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName);
+		var setX = e.clientX - pos.x;
+		var setY = e.clientY - pos.y;
+
+
+		if (!rightclick)
+		{
+			if (mandreel_mouse_down == false)
+				return;
+
+			mandreel_mouse_down = false;
+			mandreelAppMouseButton(0,setX,setY);
+		}
+		else
+		{
+			if (mandreel_rmouse_down == false)
+				return;
+
+			mandreel_rmouse_down = false;
+			mandreelAppMouseButton(2,setX,setY);
+		}
+	}
+
+	////////////////////////////////////////////
+	function imandreel_onMouseWheel(e)
+	{
+		if (!imandreel_is_ready)
+			return;
+
+		if (_imandreel_pause_game)
+			return;
+
+		mandreelAppMouseWheel(e.wheelDelta);
+	}
+
+	////////////////////////////////////////////
+	function imandreel_onKeyUp(e)
+	{
+		if (!imandreel_is_ready)
+			return;
+
+		if (_imandreel_pause_game)
+			return;
+
+		var KeyID = e.keyCode;
+		mandreelAppKeyEvent(0,KeyID);
+	}
+
+	////////////////////////////////////////////
+	Mandreel_window.onkeydown = function(e)
+	{
+		if (mandreelDisableSpaceKey == false && e.keyCode == 32)
+			return;
+		return !(e.keyCode == 32 || e.keyCode == 9);
+	};
+
+	////////////////////////////////////////////
+	function imandreel_onKeyDown(e)
+	{
+		if (e.which === 8) // disable back button on browser
+        {
+	        e.preventDefault();
+	    }
+		if (!imandreel_is_ready)
+			return;
+
+		if (_imandreel_pause_game)
+			return;
+
+		var KeyID = e.keyCode;
+		mandreelAppKeyEvent(1,KeyID);
+	}
+
+
+////////////////////////////////////////////
+// Flash
+////////////////////////////////////////////
+
+(function(){
+		try {
+			// Disabling SWFObject's Autohide feature
+			if (typeof swfobject.switchOffAutoHideShow === "function") {
+				swfobject.switchOffAutoHideShow();
+			}
+		} catch(e) {}
+	})();
+
+var imandreel_flash_global_sp = 0;
+var imandreel_flash_global_sp2 = 0;
+var imandreel_flash_current_sp = 0;
+
+function MandreelInterSwfLoaded2()
+{
+}
+function MandreelInterSwfLoaded()
+{
+	appStartState('scriptLoaded');
+	var flashMovie = swfobject.getObjectById(mandreelAppCanvasDiv)
+	dump(flashMovie.width);
+	flashMovie.MandreelInit();
+
+	imandreel_flash_global_sp = MandreelInterGetSWF().MandreelInterGetGlobalStack();
+	imandreel_flash_global_sp2 = MandreelInterGetSWF().MandreelInterGetGlobalStack2();
+	if ( mandreelAppStartStateFunc )
+		mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight);
+}
+
+
+
+var g_mandreel_swf = null;
+
+function MandreelInterGetSWF()
+{
+	if (g_mandreel_swf)
+		return g_mandreel_swf;
+
+	g_mandreel_swf = swfobject.getObjectById(mandreelAppCanvasDiv)
+	return g_mandreel_swf;
+}
+
+function MandreelInterWriteInt(ptr, value)
+{
+	MandreelInterGetSWF().MandreelInterWriteInt(ptr,value);
+}
+
+function MandreelInterWriteFloat(ptr, value)
+{
+	MandreelInterGetSWF().MandreelInterWriteFloat(ptr,value);
+}
+
+function MandreelInterWriteString(ptr, value)
+{
+	MandreelInterGetSWF().MandreelInterWriteString(ptr,value);
+}
+
+function MandreelInterWriteWString(ptr, value)
+{
+	MandreelInterGetSWF().MandreelInterWriteWString(ptr,value);
+}
+
+function MandreelInterCallFunctionRaw(sp, func_name, returnType)
+{
+	return MandreelInterGetSWF().MandreelInterCallFunctionRaw(sp,func_name,returnType);
+}
+
+
+function assert(condition, _text) {
+//console.assert(condition, _text);
+    if (!condition) {
+      var text = "Assertion failed: " + _text;
+      alert(text + ':\n' + (new Error).stack);
+      ABORT = true;
+      throw "Assertion: " + text;
+    }
+  }
+
+
+
+function MandreelLockFrame()
+{
+	MandreelInterGetSWF().MandreelLockFrame();
+
+	imandreel_flash_current_sp += 300*1024;
+
+	assert(imandreel_flash_current_sp<1024*1024);
+
+	return imandreel_flash_current_sp;
+}
+
+function MandreelPause()
+{
+	MandreelInterGetSWF().MandreelPause();
+}
+
+function MandreelResume()
+{
+	MandreelInterGetSWF().MandreelResume();
+}
+
+
+function MandreelUnlockFrame()
+{
+	imandreel_flash_current_sp -= 300*1024;
+	MandreelInterGetSWF().MandreelUnlockFrame();
+}
+
+
+
+function MandreelInterCallFunctionAsync(func_name,param)
+{
+	return MandreelInterGetSWF().MandreelInterCallFunctionAsync(func_name, param);
+}
+
+
+function MandreelInterCallFunction(returnType,func_name)
+{
+	var size_params = 0;
+
+	var i;
+	var num_params = (arguments.length-2)/2;
+	num_params|=0;
+	for (i=2;i<num_params*2+2;i+=2)
+	{
+		var type = arguments[i];
+
+		var size_arg = 0;
+		switch(type)
+		{
+			case 'int':
+				size_arg = 4;
+				break;
+			case 'float':
+				size_arg = 4;
+				break;
+			case 'string':
+				size_arg = 4;
+				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
+				break;
+			case 'wstring':
+				size_arg = 4;
+				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
+				break;
+			default:
+				assert(false);
+		}
+
+		size_params += size_arg;
+	}
+
+	// stack always 8 byte aligned
+	size_params=((size_params+7)& 0xfffffff8);
+
+	var sp = 0;
+
+	if (i<(arguments.length))
+		sp = arguments[i];
+	else
+	{
+		assert(false);
+	}
+
+
+	sp-=size_params;
+
+	MandreelLockFrame();
+
+	var offset = 0;
+	var ptr_data = num_params*4+sp;
+    for (i=2;i<num_params*2+2;i+=2)
+	{
+		var type = arguments[i];
+
+
+		var size_arg = 0;
+		switch(type)
+		{
+			case 'int':
+				MandreelInterWriteInt((sp+offset),arguments[i+1]);
+				break;
+			case 'float':
+				MandreelInterWriteFloat((sp+offset),arguments[i+1]);
+				break;
+			case 'string':
+				{
+					MandreelInterWriteInt((sp+offset),ptr_data);
+					var string = arguments[i+1];
+					MandreelInterWriteString(ptr_data,string);
+
+					ptr_data += ((string.length + 4) & 0xfffffffc);
+				}
+				break;
+			case 'wstring':
+				{
+					MandreelInterWriteInt((sp+offset),ptr_data);
+					var string = arguments[i+1];
+					MandreelInterWriteWString(ptr_data,string);
+
+					ptr_data += ((string.length*2 + 4) & 0xfffffffc);
+				}
+				break;
+			default:
+				assert(false);
+		}
+		offset+=4;
+	}
+
+	return_value = MandreelInterCallFunctionRaw(sp, func_name, returnType);
+
+	MandreelUnlockFrame();
+
+	if (returnType == 'int')
+		return parseInt(return_value);
+	else if (returnType == 'float')
+		return parseFloat(return_value);
+
+	return;
+}
+
+
+
+// file system
+
+var g_mandreel_timestamp_fs = 0;
+var g_mandreel_fs = null;
+
+function onMandreelQuotaOk(fs)
+{
+	g_mandreel_fs = fs;
+	dump('onMandreelQuotaOk');
+}
+
+
+function MandreelFsErrorHandler(e) {
+  var msg = '';
+
+  switch (e.code) {
+    case FileError.QUOTA_EXCEEDED_ERR:
+      msg = 'QUOTA_EXCEEDED_ERR';
+      break;
+    case FileError.NOT_FOUND_ERR:
+      msg = 'NOT_FOUND_ERR';
+      break;
+    case FileError.SECURITY_ERR:
+      msg = 'SECURITY_ERR';
+      break;
+    case FileError.INVALID_MODIFICATION_ERR:
+      msg = 'INVALID_MODIFICATION_ERR';
+      break;
+    case FileError.INVALID_STATE_ERR:
+      msg = 'INVALID_STATE_ERR';
+      break;
+    default:
+      msg = 'Unknown Error';
+      break;
+  };
+
+  dump('Error: ' + msg);
+  dump(e);
+}
+
+var indexedDB = Mandreel_window.indexedDB || Mandreel_window.webkitIndexedDB ||
+                Mandreel_window.mozIndexedDB;
+
+if ('webkitIndexedDB' in Mandreel_window) {
+  Mandreel_window.IDBTransaction = Mandreel_window.webkitIDBTransaction;
+  Mandreel_window.IDBKeyRange = Mandreel_window.webkitIDBKeyRange;
+}
+
+
+var mandreel_indexedDB = {};
+mandreel_indexedDB.db = null;
+mandreel_indexedDB.callback_init = false;
+
+mandreel_indexedDB.onerror = function(e) {
+  dump(e);
+};
+
+mandreel_indexedDB.init = function(callback)
+{
+ try {
+	var request = indexedDB.open('my_cache', 2);
+
+	request.onerror = function(event) {
+		callback(false);
+		};
+	request.onupgradeneeded = function(event) {
+	dump('onupgradeneeded\n');
+	mandreel_indexedDB.db = event.target.result;
+    var db = mandreel_indexedDB.db;
+	var objectStore = db.createObjectStore("cache",{keyPath: "fileName"});
+	}
+
+  request.onsuccess = function(event) {
+  dump('onsuccess\n');
+    mandreel_indexedDB.db = event.target.result;
+    	callback(true);
+
+  };
+  }
+  catch(e)
+  {
+	callback(false);
+  }
+
+}
+
+function mandreel_fs_init(callback, size_bytes, url_time)
+{
+
+	g_mandreel_timestamp_fs = 99999999999999;
+
+
+
+
+	var aux = null;
+	try	{ aux = webkitStorageInfo; } catch(err) { aux = null; }
+	if (aux == null)
+	{
+		//callback(false);
+
+		var time_request = new XMLHttpRequest();
+	time_request.open('GET',url_time);
+	time_request.onreadystatechange = function()
+	{
+		if (time_request.readyState==4)
+		{
+			if (time_request.status==200 || time_request.status==0)
+			{
+
+				if (time_request.responseText)
+				{
+					g_mandreel_timestamp_fs = parseFloat(time_request.responseText);
+					dump('mandreel_init_fs time ' + g_mandreel_timestamp_fs);
+				}
+			}
+
+			mandreel_indexedDB.init(callback);
+		}
+	}
+	time_request.send();
+
+
+		return;
+	}
+
+	webkitStorageInfo.requestQuota(
+		webkitStorageInfo.PERSISTENT ,   // or PERSISTENT
+		size_bytes,
+		function(bytes) {  dump('request quota succeed');},
+		function () { dump('request quota failed');} );
+
+
+//	g_mandreel_timestamp_fs =0;
+
+	var time_request = new XMLHttpRequest();
+	time_request.open('GET',url_time);
+	time_request.onreadystatechange = function()
+	{
+		if (time_request.readyState==4)
+		{
+			if (time_request.status==200 || time_request.status==0)
+			{
+
+				if (time_request.responseText)
+				{
+					g_mandreel_timestamp_fs = parseFloat(time_request.responseText);
+					dump('mandreel_init_fs time ' + g_mandreel_timestamp_fs);
+				}
+			}
+
+			var my_requestFileSystem  = Mandreel_window.requestFileSystem || Mandreel_window.webkitRequestFileSystem;
+
+			my_requestFileSystem(Mandreel_window.PERSISTENT, size_bytes,
+				function(result)
+				{
+					onMandreelQuotaOk(result);
+
+
+					if (callback)
+						Mandreel_setTimeout(callback, 100, true);
+				} , function(e) { MandreelFsErrorHandler(e); if (callback) callback(false); } );
+		}
+	}
+	time_request.send();
+}
+
+
+mandreel_indexedDB.load = function(file_name, callback)
+{
+	var db = mandreel_indexedDB.db;
+	var trans = db.transaction(["cache"]);
+	var store = trans.objectStore("cache");
+
+	var key = file_name;
+
+	 var getReq = store.get(key);
+	   getReq.onsuccess = function (ev) {
+			if (getReq.result)
+	{
+	dump('chanka ' + g_mandreel_timestamp_fs + ' ' + getReq.result.timeStamp + '\n');
+				if (getReq.result.timeStamp>=g_mandreel_timestamp_fs)
+					callback(getReq.result.data);
+				else
+					callback(null);
+			}
+			else
+				callback(null);
+	   }
+	   getReq.onerror = function (ev) {
+		   console.log("index.get failed. Error: " + ev.message);
+	   }
+}
+
+function mandreel_fs_get_url(file_name, callback)
+{
+	if (mandreel_indexedDB.db)
+	{
+		callback(null);
+		return;
+	}
+
+
+	if (g_mandreel_fs == null)
+	{
+		callback(null);
+		return;
+	}
+
+	g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) {
+
+	fileEntry.getMetadata(function(metaData){
+	var my_seconds = metaData.modificationTime.getTime()/1000;
+
+	if (g_mandreel_timestamp_fs>my_seconds)
+	{
+		callback(null);
+	}
+	else
+	{
+		//alert('mandreel_fscachefile2');
+
+
+		if (Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null)
+			callback(fileEntry.toURL());
+		else
+			callback(null);
+
+	}
+
+
+		}, MandreelFsErrorHandler);
+
+
+  }, function(error) {callback(null);});
+
+	 return;
+
+}
+
+function mandreel_fs_load_binary(file_name, callback)
+ {
+	if (mandreel_indexedDB.db)
+	{
+		mandreel_indexedDB.load(file_name,callback);
+		return;
+	}
+
+
+	if (g_mandreel_fs == null)
+	{
+		callback(null);
+		return;
+	}
+
+
+	g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) {
+
+	fileEntry.getMetadata(function(metaData){
+	var my_seconds = metaData.modificationTime.getTime()/1000;
+
+	if (g_mandreel_timestamp_fs>my_seconds)
+	{
+		dump('mandreel_fscachefile1');
+		Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(file_name));
+		fileEntry.remove(function() {
+				callback(null);
+			}, MandreelFsErrorHandler);
+
+	}
+	else
+	{
+		//alert('mandreel_fscachefile2');
+		dump('mandreel_fscachefile2 ' + my_seconds);
+
+		fileEntry.file(function(file) {
+
+				var reader = new FileReader();
+
+
+			   reader.onloadend = function(e) {
+
+				   if (this.result.byteLength && Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null)
+				   {
+						dump('mandreel_fs_loadFile ' + file_name);
+						callback(this.result);
+					}
+					else
+						callback(null);
+
+			   };
+
+
+				 reader.readAsArrayBuffer(file);
+
+
+			}, MandreelFsErrorHandler);
+
+	}
+
+
+		}, MandreelFsErrorHandler);
+
+
+  }, function(error) {dump('mandreel_fscachefile3');	callback(null);});
+
+	 return;
+ }
+
+
+ mandreel_indexedDB.save = function(file_name, data)
+{
+	var db = mandreel_indexedDB.db;
+
+
+  var trans = db.transaction(["cache"], IDBTransaction.READ_WRITE);
+  var store = trans.objectStore("cache");
+  var request = store.put({
+    "data": data,
+	"timeStamp" : Date_now()/1000,
+    "fileName" : file_name
+  });
+
+  request.onsuccess = function(e) {
+    // Re-render all the todo's
+   // html5rocks.indexedDB.getAllTodoItems();
+   dump('mandreel_indexedDB.save ok ');
+  };
+
+  request.onerror = function(e) {
+    dump('mandreel_indexedDB.save onerror ' + file_name);
+	dump(e);
+  };
+}
+
+function mandreel_fs_get_key(name)
+{
+	return 'mandreel_fs_' + name;
+}
+
+function mandreel_is_filesystem()
+{
+	if (mandreel_indexedDB.db)
+		return false;
+
+	if (!g_mandreel_fs)
+		return false;
+
+	return true;
+}
+
+function mandreel_is_indexeddb()
+{
+	if (mandreel_indexedDB.db)
+		return true;
+
+	return false;
+}
+
+ function mandreel_fs_saveFile(name, my_arrayBuffer)
+{
+	if (mandreel_indexedDB.db)
+	{
+		mandreel_indexedDB.save(name,my_arrayBuffer);
+		return;
+	}
+
+	if (!g_mandreel_fs)
+		return;
+
+	Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(name));
+	g_mandreel_fs.root.getFile(name, {create: true}, function(fileEntry) {
+
+    // Create a FileWriter object for our FileEntry (log.txt).
+    fileEntry.createWriter(function(fileWriter) {
+
+      fileWriter.onwriteend = function(e) {
+		Mandreel_window.localStorage.setItem(mandreel_fs_get_key(name),'valid');
+        dump('Write completed.');
+      };
+
+      fileWriter.onerror = function(e) {
+        dump('Write failed: ' + e.toString());
+      };
+
+	  var my_BlobBuilder = Mandreel_window.MozBlobBuilder || Mandreel_window.WebKitBlobBuilder || Mandreel_window.BlobBuilder;
+
+	  var bb = new my_BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
+      bb.append(my_arrayBuffer);
+      fileWriter.write(bb.getBlob('text/plain'));
+
+
+
+    }, MandreelFsErrorHandler);
+
+  }, MandreelFsErrorHandler);
+}
+
+
+function mandreel_fs_load_text(file_name, callback)
+ {
+
+	if (mandreel_indexedDB.db)
+	{
+		mandreel_indexedDB.load(file_name,callback);
+		return;
+	}
+
+	if (g_mandreel_fs == null)
+	{
+		callback(null);
+		return;
+	}
+
+
+	g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) {
+
+	fileEntry.getMetadata(function(metaData){
+	var my_seconds = metaData.modificationTime.getTime()/1000;
+
+	if (g_mandreel_timestamp_fs>my_seconds)
+	{
+		dump('mandreel_fscachefile1');
+		Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(file_name));
+		fileEntry.remove(function() {
+				callback(null);
+			}, MandreelFsErrorHandler);
+
+	}
+	else
+	{
+		//alert('mandreel_fscachefile2');
+		dump('mandreel_fscachefile2 ' + my_seconds);
+
+		fileEntry.file(function(file) {
+
+				var reader = new FileReader();
+
+
+			   reader.onloadend = function(e) {
+
+
+				   if (this.result.length && Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null)
+				   {
+						dump('mandreel_fs_loadFile ' + file_name);
+						callback(this.result);
+					}
+					else
+						callback(null);
+
+			   };
+
+
+				 reader.readAsText(file);
+
+
+			}, MandreelFsErrorHandler);
+
+	}
+
+
+		}, MandreelFsErrorHandler);
+
+
+  }, function(error) {dump('mandreel_fscachefile3');	callback(null);});
+
+	 return;
+ }
+
+
+ // full screen
+
+
+/* The following code was removed for benchmarking:
+ var __screen = screen; */
+
+	try
+	{
+	(function(global) {
+    "use strict";
+	var elementPrototype = (global.HTMLElement || global.Element)["prototype"];
+
+	 // document.isFullScreen
+    if(!Mandreel_document.hasOwnProperty("fullscreenEnabled")) {
+        var getter = (function() {
+            // These are the functions that match the spec, and should be preferred
+            if("webkitIsFullScreen" in Mandreel_document) {
+                return function() { return Mandreel_document.webkitIsFullScreen; }
+            }
+            if("mozFullScreen" in Mandreel_document) {
+                return function() { return Mandreel_document.mozFullScreen; }
+            }
+            return function() { return false }; // not supported, never fullscreen
+        })();
+
+        Object.defineProperty(Mandreel_document, "fullscreenEnabled", {
+            enumerable: true, configurable: false, writeable: false,
+            get: getter
+        });
+    }
+
+    if(!Mandreel_document.hasOwnProperty("fullscreenElement")) {
+        var getter = (function() {
+            // These are the functions that match the spec, and should be preferred
+            if("webkitFullscreenElement" in Mandreel_document) {
+                return function() { return Mandreel_document.webkitFullscreenElement; }
+            }
+            if("mozFullscreenElemen" in Mandreel_document) {
+                return function() { return Mandreel_document.mozFullscreenElemen; }
+            }
+            return function() { return null }; // not supported
+        })();
+
+        Object.defineProperty(Mandreel_document, "fullscreenElement", {
+            enumerable: true, configurable: false, writeable: false,
+            get: getter
+        });
+    }
+
+    // Document event: fullscreenchange
+    function fullscreenchange(oldEvent) {
+        var newEvent = Mandreel_document.createEvent("CustomEvent");
+        newEvent.initCustomEvent("fullscreenchange", true, false, null);
+        // TODO: Any need for variable copy?
+        Mandreel_document.dispatchEvent(newEvent);
+    }
+    Mandreel_document.addEventListener("webkitfullscreenchange", fullscreenchange, false);
+    Mandreel_document.addEventListener("mozfullscreenchange", fullscreenchange, false);
+
+    // Document event: fullscreenerror
+    function fullscreenerror(oldEvent) {
+        var newEvent = Mandreel_document.createEvent("CustomEvent");
+        newEvent.initCustomEvent("fullscreenerror", true, false, null);
+        // TODO: Any need for variable copy?
+        Mandreel_document.dispatchEvent(newEvent);
+    }
+    Mandreel_document.addEventListener("webkitfullscreenerror", fullscreenerror, false);
+    Mandreel_document.addEventListener("mozfullscreenerror", fullscreenerror, false);
+
+    // element.requestFullScreen
+    if(!elementPrototype.requestFullScreen) {
+        elementPrototype.requestFullScreen = (function() {
+            if(elementPrototype.webkitRequestFullScreen) {
+                return function() {
+                    this.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
+                }
+            }
+
+            return  elementPrototype.mozRequestFullScreen    ||
+                    function(){ /* unsupported, fail silently */ };
+        })();
+    }
+
+    // document.cancelFullscreen
+    if(!Mandreel_document.cancelFullScreen) {
+        Mandreel_document.cancelFullScreen = (function() {
+            return  Mandreel_document.webkitCancelFullScreen ||
+                    Mandreel_document.mozCancelFullScreen ||
+                    function(){ /* unsupported, fail silently */ };
+        })();
+    }
+	})((typeof(exports) != 'undefined') ? global : Mandreel_window);
+	}
+	catch(e)
+	{
+	}
+
+
+try
+	{
+var __onErrorFullscreen = function() {
+  dump("Mouse lock was not successful.");
+};
+
+Mandreel_document.addEventListener('fullscreenchange', function(e) {
+
+var width;
+var height;
+ var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
+ if(Mandreel_document.fullscreenEnabled) {
+
+
+            width = __screen.width;
+            height = __screen.height;
+
+        } else {
+            width = mandreelAppWidthSrc;
+            height = mandreelAppHeightSrc;
+        }
+
+		canvas.width = width;
+		canvas.height = height;
+		mandreelAppResize(width, height);
+
+  if (Mandreel_document.fullscreenEnabled && navigator.pointer) {
+    navigator.pointer.lock(Mandreel_document.body, function() {
+      // Locked and ready to play.
+    }, __onErrorFullscreen);
+  }
+}, false);
+
+}
+catch(e)
+{
+}
+
+
+
+function mandreelAppFullscreen(enable)
+{
+	var canvas = Mandreel_document.getElementById(mandreelAppCanvasName);
+	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
+	{
+		if (canvas)
+		{
+			if (enable)
+				canvas.requestFullScreen();
+			else
+				Mandreel_document.cancelFullScreen();
+		}
+	}
+}
+
+
+function mandreelAppDisableForceFocus()
+{
+	mandreelAppForceFocus = false;
+}
+
+function mandreelAppEnableForceFocus()
+{
+	mandreelAppForceFocus = true;
+}
+
+var imandreel_base64 = {};
+imandreel_base64.PADCHAR = '=';
+imandreel_base64.ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+
+imandreel_base64.makeDOMException = function() {
+    // sadly in FF,Safari,Chrome you can't make a DOMException
+    var e, tmp;
+
+    try {
+        return new DOMException(DOMException.INVALID_CHARACTER_ERR);
+    } catch (tmp) {
+        // not available, just passback a duck-typed equiv
+        // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error
+        // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/prototype
+        var ex = new Error("DOM Exception 5");
+
+        // ex.number and ex.description is IE-specific.
+        ex.code = ex.number = 5;
+        ex.name = ex.description = "INVALID_CHARACTER_ERR";
+
+        // Safari/Chrome output format
+        ex.toString = function() { return 'Error: ' + ex.name + ': ' + ex.message; };
+        return ex;
+    }
+}
+
+imandreel_base64.getbyte64 = function(s,i) {
+    // This is oddly fast, except on Chrome/V8.
+    //  Minimal or no improvement in performance by using a
+    //   object with properties mapping chars to value (eg. 'A': 0)
+    var idx = imandreel_base64.ALPHA.indexOf(s.charAt(i));
+    if (idx === -1) {
+        throw imandreel_base64.makeDOMException();
+    }
+    return idx;
+}
+
+imandreel_base64.decode = function(s) {
+    // convert to string
+    s = '' + s;
+    var getbyte64 = imandreel_base64.getbyte64;
+    var pads, i, b10;
+    var imax = s.length
+    if (imax === 0) {
+        return s;
+    }
+
+    if (imax % 4 !== 0) {
+        throw imandreel_base64.makeDOMException();
+    }
+
+    pads = 0
+    if (s.charAt(imax - 1) === imandreel_base64.PADCHAR) {
+        pads = 1;
+        if (s.charAt(imax - 2) === imandreel_base64.PADCHAR) {
+            pads = 2;
+        }
+        // either way, we want to ignore this last block
+        imax -= 4;
+    }
+
+    var x = [];
+    for (i = 0; i < imax; i += 4) {
+        b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12) |
+            (getbyte64(s,i+2) << 6) | getbyte64(s,i+3);
+        x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 0xff, b10 & 0xff));
+    }
+
+    switch (pads) {
+    case 1:
+        b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12) | (getbyte64(s,i+2) << 6);
+        x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 0xff));
+        break;
+    case 2:
+        b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12);
+        x.push(String.fromCharCode(b10 >> 16));
+        break;
+    }
+    return x.join('');
+}
+
+if (!Mandreel_window.atob) {
+Mandreel_window.atob = function(a) { return  imandreel_base64.decode(a); }
+}
+
+
+function imandreel_interop_callbridge(new_method, sp)
+{
+
+	var n = new Array();
+
+	for( var i = 2; i < arguments.length; i++ )
+	{
+
+		if (typeof arguments[i] == 'string')
+			n.push(atob(arguments[i]));
+		else
+			n.push(arguments[i]);
+	}
+
+	var total_args = arguments.length-2;
+
+	switch(total_args)
+	{
+		case 0:
+			return Mandreel_window[new_method](sp);
+		case 1:
+			return Mandreel_window[new_method](sp, n[0]);
+		case 2:
+			return Mandreel_window[new_method](sp, n[0], n[1]);
+		case 3:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2]);
+		case 4:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3]);
+		case 5:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4]);
+		case 6:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5]);
+		case 7:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6]);
+		case 8:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7]);
+		case 9:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8]);
+		case 10:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9]);
+		case 11:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10]);
+		case 12:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11]);
+		case 13:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12]);
+		case 14:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13]);
+		case 15:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13], n[14]);
+		case 16:
+			return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13], n[14], n[15]);
+		break;
+	}
+
+}
+function imandreel_as3_dump(param)
+{
+	dump(atob(param));
+}
+
+
+var mandreel_embed_plugin;
+
+function PluginMandreelInterWriteInt(ptr, value)
+{
+	mandreel_embed_plugin.MandreelInterCalls("WriteInt", ptr,value);
+}
+
+function PluginMandreelInterWriteFloat(ptr, value)
+{
+	mandreel_embed_plugin.MandreelInterCalls("WriteFloat", ptr,value);
+}
+
+function PluginMandreelInterWriteString(ptr, value)
+{
+	mandreel_embed_plugin.MandreelInterCalls("WriteString", ptr,value);
+}
+
+function PluginMandreelInterWriteWString(ptr, value)
+{
+	mandreel_embed_plugin.MandreelInterCalls("WriteWString", ptr,value);
+}
+
+var mandreel_plugin_current_sp = 0;
+
+function PluginMandreelLockFrame()
+{
+	var result = mandreel_embed_plugin.MandreelInterCalls("LockFrame");
+
+	mandreel_plugin_current_sp+=300*1024;
+
+	assert(mandreel_plugin_current_sp<1024*1024);
+
+	return result+mandreel_plugin_current_sp;
+}
+
+function PluginMandreelPause()
+{
+	mandreel_embed_plugin.MandreelInterCalls("Pause");
+}
+
+function PluginMandreelResume()
+{
+	mandreel_embed_plugin.MandreelInterCalls("Resume");
+}
+
+
+function PluginMandreelUnlockFrame()
+{
+	mandreel_embed_plugin.MandreelInterCalls("UnlockFrame");
+
+	mandreel_plugin_current_sp-=300*1024;
+}
+
+function PluginMandreelInterCallFunction()
+{
+	var total_args = arguments.length;
+
+	switch(total_args)
+	{
+		case 0:
+			return mandreel_embed_plugin.MandreelInterCallFunction();
+		case 1:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0]);
+		case 2:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1]);
+		case 3:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2]);
+		case 4:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3]);
+		case 5:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);
+		case 6:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
+		case 7:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]);
+		case 8:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7]);
+		case 9:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8]);
+		case 10:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9]);
+		case 11:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10]);
+		case 12:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11]);
+		case 13:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12]);
+		case 14:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13]);
+		case 15:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13], arguments[14]);
+		case 16:
+			return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13], arguments[14], arguments[15]);
+		break;
+	}
+}
+
+function mandreel_plugin_draw()
+{
+	var canvas = Mandreel_document.getElementById('canvasDiv');
+	WebGLUtils.requestAnimationFrame(canvas, mandreel_plugin_draw);
+	mandreel_embed_plugin.MandreelInterCalls("AppDraw");
+
+}
+
+function mandreelInitPluginPlatform(params)
+{
+
+	if ( params.width != null )
+		mandreelAppWidthSrc = params.width;
+
+	if ( params.height != null )
+		mandreelAppHeightSrc = params.height;
+
+
+	mandreel_embed_plugin = Mandreel_document.createElement('embed');
+	mandreel_embed_plugin.setAttribute('width',mandreelAppWidthSrc);
+	mandreel_embed_plugin.setAttribute('height',mandreelAppHeightSrc);
+	mandreel_embed_plugin.setAttribute('type',"application/halfbrick-npruntime-scriptable-plugin");
+
+	var div = Mandreel_document.getElementById('canvasDiv');
+
+
+	var oChild=div.firstChild;
+
+	div.replaceChild(mandreel_embed_plugin, oChild);
+
+	var flashElement = Mandreel_document.getElementById('FlashWrapper');
+	if ( flashElement != null )
+	{
+		flashElement.style.visibility = "hidden";
+		flashElement.style.width = "0px";
+		flashElement.style.height = "0px";
+	}
+
+
+
+
+
+	Mandreel_window.MandreelInterWriteInt     = PluginMandreelInterWriteInt;
+	Mandreel_window.MandreelInterWriteFloat   = PluginMandreelInterWriteInt;
+	Mandreel_window.MandreelInterWriteString  = PluginMandreelInterWriteString;
+	Mandreel_window.MandreelInterWriteWString = PluginMandreelInterWriteWString;
+	Mandreel_window.MandreelLockFrame         = PluginMandreelLockFrame;
+	Mandreel_window.MandreelUnlockFrame       = PluginMandreelUnlockFrame;
+	Mandreel_window.MandreelInterCallFunction = PluginMandreelInterCallFunction;
+	Mandreel_window.MandreelPause 			 = PluginMandreelPause;
+	Mandreel_window.MandreelResume 			 = PluginMandreelResume;
+
+	Mandreel_setTimeout(function () {
+
+	if ( typeof(params.pluginSolutionName) != 'undefined' )
+		mandreel_embed_plugin.init(params.pluginDLL, params.pluginWorkingFolder,params.pluginSolutionName);
+	else
+		mandreel_embed_plugin.init(params.pluginDLL, params.pluginWorkingFolder);
+
+
+	mandreelAppStartStateFunc("ready",mandreelAppWidthSrc,mandreelAppHeightSrc);
+
+	Mandreel_setTimeout("mandreel_plugin_draw()", 16);
+	}, 100);
+
+}
+
+
+function MandreelInterSwfProgress(mode, percentage, bytes, totalbytes)
+{
+	imandreel_update_load(bytes, totalbytes);
+	if (mode == 'files')
+	{
+		if ( mandreelAppStartStateFunc )
+			mandreelAppStartStateFunc("loadingData",percentage);
+	}
+	else if (mode == 'audio')
+	{
+		if ( mandreelAppStartStateFunc )
+			mandreelAppStartStateFunc("loadingAudioUpdate",percentage);
+	}
+	else if (mode == 'textureasync')
+	{
+		if ( mandreelAppStartStateFunc )
+			mandreelAppStartStateFunc("loadingTextureAsyncPack",percentage);
+	}
+
+}
+
+function MandreelInterSwfCheckMethod(method)
+{
+	if (typeof(Mandreel_window[method])=="undefined")
+		return 0;
+	else
+		return 1;
+}
+
+// End of js/mandreelapp.js file.
+
+// Start of mandreel.js file.
+
+var mandreel_total_memory = 15908864;
+var mandreel_stack_memory = 1048576;
+var mandreel_heap_memory = 13591752; //init_memory = 744248
+/////////////////////////////////////////////
+// Heap
+/////////////////////////////////////////////
+var heap;
+var heap8;
+var heapU8;
+var heap16;
+var heapU16;
+var heap32;
+var heapU32;
+var heapFloat;
+var heapDouble;
+var heapNewPos = 512;
+
+var ABORT = false;
+
+var g_mandreel_cache_files = false;
+
+
+var g_mandreel_frame_locked = false;
+var g_mandreel_frame_inframe = false;
+
+var mandreel_cache_files = [];
+var g_mandreel_working_folder = 'DataPC/';
+var g_mandreel_datafiles_sufix = '.dat';
+var __FUNCTION_TABLE__ = [];
+var mandreel_pos_function_table = 1;
+function register_delegate(ptr_func)
+{
+	var functionId = mandreel_pos_function_table;
+	__FUNCTION_TABLE__[functionId] = ptr_func;
+
+	mandreel_pos_function_table++;
+	return functionId*4;
+}
+
+
+var g_addr_emit = 0;
+function emit_start(addr)
+{
+	g_addr_emit = addr;
+}
+
+function emit_8(data)
+{
+	heapU8[g_addr_emit] = data;
+	g_addr_emit++;
+}
+
+function emit_16(data)
+{
+	heapU16[g_addr_emit>>1] = data;
+	g_addr_emit+=2;
+}
+
+function emit_32(data)
+{
+	heapU32[g_addr_emit>>2] = data;
+	g_addr_emit+=4;
+}
+
+function emit_fill(data, size)
+{
+	var j;
+	for (j=0;j<size;j++)
+	{
+		heapU8[g_addr_emit] = data;
+		g_addr_emit++;
+	}
+}
+
+function emit_string(v)
+{
+	var j;
+	var len = v.length;
+	var data;
+
+	for(j = 0; j < len; j++)
+	{
+		data = v.charCodeAt(j);
+
+		heapU8[g_addr_emit] = data;
+		g_addr_emit++;
+	}
+}
+
+
+
+
+
+var g_stack_pointer = Malloc(mandreel_stack_memory);
+
+function assert_unalign()
+{
+	dump("fatal error: unaligned memory access detected!!!!");
+	assert(false);
+}
+
+function _assert(sp)
+{
+	var p0 = heap32[sp>>2];sp+=4;
+  var p1 = heap32[sp>>2];sp+=4;
+  var line = heap32[sp>>2];sp+=4;
+	var name = get_string_from_ptr(p0);
+	var file = get_string_from_ptr(p1);
+	assert(false, name + file + ' ' + line);
+}
+__cxa_pure_virtual.__index__ = 0;
+function __cxa_pure_virtual()
+{
+	assert(0);
+}
+
+// operator delete[]
+function _ZdaPv(sp)
+{
+	free(sp);
+}
+
+// operator delete
+function _ZdlPv(sp)
+{
+	free(sp);
+}
+
+// operator new[](unsigned int)
+function _Znaj(sp)
+{
+	malloc(sp);
+}
+// operator new[](unsigned int)
+function _Znwj(sp)
+{
+	malloc(sp);
+}
+
+function abort(sp)
+{
+	assert(0);
+}
+
+var r_g0 = 0;
+var r_g1 = 0;
+var f_g0 = 0;
+
+//isFinite(aux)
+//isNaN(aux)
+
+var tlsf_ptr = 0;
+
+
+function initHeap()
+{
+	heap = new ArrayBuffer(mandreel_total_memory);
+	heap8 = new Int8Array(heap);
+	heapU8 = new Uint8Array(heap);
+	heap16 = new Int16Array(heap);
+	heapU16 = new Uint16Array(heap);
+	heap32 = new Int32Array(heap);
+	heapU32 = new Uint32Array(heap);
+	heapFloat = new Float32Array(heap);
+	heapDouble = new Float64Array(heap);
+
+
+	for (var i=0;i<mandreel_total_memory/4;i++)
+	{
+		heapU32[i] = 0;
+	}
+}
+
+function Malloc(bytes)
+{
+	if ( heap == undefined )
+	{
+		//initHeap();
+	}
+	var newOffset = heapNewPos;
+	// Always 32 bit aligned
+	heapNewPos += ((bytes + 3) & 0xfffffffc);
+
+	if (heapNewPos>mandreel_total_memory)
+	{
+		assert(false);
+	}
+
+	return newOffset;
+}
+
+function assert(condition, _text) {
+//console.assert(condition, _text);
+    if (!condition) {
+      var text = "Assertion failed: " + _text;
+      alert(text + ':\n' + (new Error).stack);
+      ABORT = true;
+      throw "Assertion: " + text;
+    }
+  }
+
+  function my_assert(sp)
+  {
+	var p0 = heap32[sp>>2];sp+=4;
+  var p1 = heap32[sp>>2];sp+=4;
+	//var name = get_string_from_ptr(p1);
+
+	assert(false, 'hola');
+  }
+
+  function WriteHeapDouble(addr, value)
+  {
+  //assert((addr&7)==0);
+	heapDouble[addr>>3] = value;
+  }
+
+    function WriteHeapU64(addr, value)
+  {
+	heap32[addr>>2] = value.l;
+	heap32[(addr>>2)+1] = value.h;
+  }
+
+
+var arg_test_local = Malloc(8);
+function my_arg_test(sp)
+{
+	var ptr = heapU32[sp>>2];
+	var size = heapU32[(sp+4)>>2];
+
+	var arg = heapU32[ptr>>2];
+
+
+	if (size == 4)
+	{
+	heap32[ptr>>2] = arg+4;
+
+	arg = heap32[arg>>2];
+
+	heap32[arg_test_local>>2] = arg;
+
+	//dump('my_arg_test ' + arg + ' ' + ptr + '\n');
+
+	}
+	else
+	{
+		arg = (arg+7) & ~7;
+
+		heap32[ptr>>2] = arg+8;
+
+	//assert((arg&7)==0);
+	var value0 = heap32[arg>>2];
+	var value1 = heap32[(arg+4)>>2];
+	//arg = llvm_readDouble(arg);
+
+	//assert((arg_test_local&7)==0);
+
+	heap32[arg_test_local>>2] = value0;
+	heap32[(arg_test_local+4)>>2] = value1;
+
+	//llvm_writeDouble(arg_test_local,arg);
+
+	//dump('my_arg_test ' + arg + ' ' + ptr + '\n');
+
+
+	}
+
+
+
+
+	r_g0 = arg_test_local;
+}
+
+
+
+
+
+
+function uint(value) {
+    if (value >= 0) return value;
+    return 4294967296 + value;
+  }
+
+
+
+function puts(sp)
+{
+	var addr = heapU32[sp>>2];
+
+	var name = get_string_from_ptr(addr);
+
+	name+='\n';
+
+	dump(name);
+
+}
+
+function _Z11print_valued(_stack_pos, value)
+{
+	dump(value);
+	dump('\n');
+}
+
+function _Z11print_labelPKc(_stack_pos, addr)
+{
+	puts(_stack_pos,addr);
+	dump('\n');
+}
+
+
+
+
+function gettimeofday(sp)
+  {
+  var ptr = heap32[sp>>2];
+  var time_ms = Date_now();
+	heap32[ptr>>2] = time_ms/1000;
+	heap32[(ptr>>2)+1] = (time_ms%1000)*1000;
+	r_g0 = 0;
+  }
+
+
+  function free(sp)
+  {
+	var ptr = heapU32[sp>>2];
+  	sp-=8;
+
+	heap32[(sp)>>2] = tlsf_ptr;
+	heap32[(sp+4)>>2] = ptr;
+	tlsf_free(sp);
+  }
+
+  function malloc_size(sp)
+  {
+  var ptr = heapU32[sp>>2];
+
+	sp-=4;
+
+	heap32[(sp)>>2] = ptr;
+	tlsf_block_size(sp);
+  }
+
+
+  function realloc(sp)
+  {
+	var ptr = heapU32[sp>>2];
+	var size = heapU32[(sp+4)>>2];
+
+	//assert(ptr == 0);
+
+	sp-=12;
+
+	//dump('realloc ' + sp + ' ' + ptr + ' ' + size + '\n');
+
+	heap32[(sp)>>2] = tlsf_ptr;
+	heap32[(sp+4)>>2] = ptr;
+	heap32[(sp+8)>>2] = size;
+	tlsf_realloc(sp);
+
+	//dump('return ' + r_g0 + '\n');
+  }
+
+  var llvm_double_addr = Malloc(8);
+
+  function llvm_writeDouble(addr,src)
+  {
+  //assert((llvm_double_addr&7)==0);
+	heapDouble[llvm_double_addr>>3] = src;
+
+	//assert((addr&7)==0);
+
+	var val0 = heap32[(llvm_double_addr)>>2];
+	var val1 = heap32[(llvm_double_addr+4)>>2];
+
+	heap32[(addr)>>2] = val0;
+	heap32[(addr+4)>>2] = val1;
+  }
+
+  function llvm_readDouble(addr)
+  {
+  	//assert((addr&7)==0);
+
+	var val0 = heap32[(addr)>>2];
+	var val1 = heap32[(addr+4)>>2];
+
+	heap32[(llvm_double_addr)>>2] = val0;
+	heap32[(llvm_double_addr+4)>>2] = val1;
+
+
+//	assert((llvm_double_addr&7)==0);
+	var result = heapDouble[llvm_double_addr>>3];
+
+
+	return result;
+
+  }
+
+  function llvm_move_double(addr_dst, addr_src)
+  {
+
+	var val0 = heapU32[(addr_src)>>2];
+	var val1 = heapU32[(addr_src+4)>>2];
+
+	heapU32[(addr_dst)>>2] = val0;
+	heapU32[(addr_dst+4)>>2] = val1;
+
+  }
+
+  function llvm_move_float(addr_dst, addr_src)
+  {
+	heapU32[(addr_dst)] = heapU32[(addr_src)];
+  }
+
+  function malloc(sp)
+  {
+	var size = heapU32[sp>>2];
+
+	if (size == 0)
+	{
+		size = 4;
+	}
+
+
+	if (tlsf_ptr == 0)
+	{
+		var addr = Malloc(mandreel_heap_memory);
+
+		sp-=8;
+		heap32[(sp)>>2] = addr;
+		heap32[(sp+4)>>2] = mandreel_heap_memory;
+		tlsf_create(sp);
+		tlsf_ptr = r_g0;
+	}
+
+	sp-=8;
+
+	heap32[(sp)>>2] = tlsf_ptr;
+	heap32[(sp+4)>>2] = size;
+	tlsf_malloc(sp);
+
+	if (r_g0 == 0)
+	{
+		dump('malloc failed ' + size + '\n');
+		assert(false);
+	}
+  }
+
+
+   function log10f(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.log(value)/Math.LN10;
+  }
+
+   function log10(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.log(value)/Math.LN10;
+  }
+
+function logf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.log(value);
+  }
+
+  function log(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.log(value);
+  }
+
+
+
+  function cosf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.cos(value);
+	//assert (isNaN(f_g0) == false);
+  }
+
+  function acosf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.acos(value);
+  }
+
+  function asinf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.asin(value);
+  }
+
+  function asin(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.asin(value);
+  }
+
+  function acos(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.acos(value);
+  }
+
+  function floor(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.floor(value);
+  }
+
+  function floorf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.floor(value);
+  }
+
+  function round(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.round(value);
+  }
+
+  function roundf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.round(value);
+  }
+
+  function ceilf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.ceil(value);
+  }
+
+  function ceil(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.ceil(value);
+  }
+
+
+  function exp2(sp)
+  {
+  var value = heapDouble[sp>>3];
+
+	f_g0 = Math.pow(2,value);
+  }
+
+  function exp2f(sp)
+  {
+  var value = heapFloat[sp>>2];
+
+	f_g0 = Math.pow(2,value);
+  }
+
+
+
+  function pow(sp)
+  {
+  var value = heapDouble[sp>>3];
+  var value2 = heapDouble[(sp+8)>>3];
+	f_g0 = Math.pow(value,value2);
+  }
+
+  function powf(sp)
+  {
+  var value = heapFloat[sp>>2];
+  var value2 = heapFloat[(sp+4)>>2];
+	f_g0 = Math.pow(value,value2);
+  }
+
+  function cos(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.cos(value);
+	//assert (isNaN(f_g0) == false);
+  }
+
+  function tan(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.tan(value);
+	//assert (isNaN(f_g0) == false);
+  }
+
+   function sinf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.sin(value);
+
+	//assert (isNaN(f_g0) == false);
+  }
+
+  function expf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.exp(value);
+  }
+
+  function exp(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.exp(value);
+  }
+
+  function tanf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.tan(value);
+  }
+
+ function atanf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.atan(value);
+  }
+
+  function atan(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.atan(value);
+  }
+
+  function abs(sp)
+  {
+  var value = heap32[sp>>2];
+  if (value<0)
+  r_g0 = -value;
+  else
+  r_g0 = value;
+  }
+
+  function sin(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.sin(value);
+  }
+
+  function sqrtf(sp)
+  {
+  var value = heapFloat[sp>>2];
+	f_g0 = Math.sqrt(value);
+  }
+
+  function sqrt(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.sqrt(value);
+  }
+
+  function fmod(sp)
+  {
+  var value = heapDouble[sp>>3];sp+=8;
+  var value2 = heapDouble[sp>>3];
+	f_g0 = value % value2;
+  }
+
+   function fmodf(sp)
+  {
+  var value = heapFloat[sp>>2];sp+=4;
+  var value2 = heapFloat[sp>>2];
+	f_g0 = value % value2;
+  }
+
+
+  function atan2f(sp)
+  {
+  var x = heapFloat[sp>>2];sp+=4;
+  var y = heapFloat[sp>>2];
+	f_g0 = Math.atan2(x,y);
+  }
+
+  function atan2(sp)
+  {
+  var x = heapDouble[sp>>3];
+  var y = heapDouble[(sp+8)>>3];
+	f_g0 = Math.atan2(x,y);
+  }
+
+  function fabs(sp)
+  {
+  var value = heapDouble[sp>>3];
+	f_g0 = Math.abs(value);
+  }
+
+
+  function _Z18OutputDebugStringAPKc(sp)
+  {
+  puts(sp);
+
+  }
+
+
+  function getenv(sp)
+  {
+  r_g0 = 0;
+  }
+
+
+  function mandreel_fcmp_ord(X, Y)
+  {
+	return (X == X && Y == Y);
+  }
+
+  function mandreel_fcmp_uno(X, Y)
+{
+
+        return (X != X || Y != Y);
+}
+
+var llvm_errno = Malloc(4);
+function _errno(sp)
+{
+	r_g0 = llvm_errno;
+}
+
+
+
+
+if (!Mandreel_window["dump"])
+	Mandreel_window["dump"] = function dump(str){console.log(str)} ;
+
+
+
+
+  function get_string_from_ptr(ptr)
+  {
+	var ret = "";
+
+	if (ptr == 0)
+		return ret;
+
+	var i = 0;
+	while (1) {
+  //    if ((ptr.pos + i) >= ptr.slab.length) { return "<< Invalid read: " + (ptr.pos+i) + " : " + ptr.slab.length + " >>"; } else {}
+	if (heapU8[ptr + i] == 0)
+		break;
+
+      var t = String.fromCharCode(heapU8[ptr + i]);
+      ret += t;
+      i += 1;
+    }
+
+	return ret;
+  }
+
+  function fill_ptr_from_string(ptr, v)
+  {
+	var j;
+	var len = v.length;
+	var data;
+
+  	for(j = 0; j < len; j++)
+	{
+		data = v.charCodeAt(j);
+
+		heapU8[ptr] = data;
+		ptr++;
+	}
+		heapU8[ptr] = 0;
+	}
+
+  var file_ids = [];
+  var current_file_id = 20;
+
+  function create_file_id(buffer)
+  {
+	this.buffer = buffer;
+	this.offset = 0;
+	this.byteArray = new Uint8Array(buffer);
+  }
+
+  function mandreel_rewind(sp)
+  {
+  var file_id = heap32[sp>>2];sp+=4;
+
+  file_ids[file_id].offset = 0;
+
+	r_g0 = 0;
+
+	//return 0;
+  }
+
+
+  function mandreel_fseek(sp)
+  {
+  var file_id = heap32[sp>>2];sp+=4;
+  var pos = heap32[sp>>2];sp+=4;
+  var type = heap32[sp>>2];sp+=4;
+
+	if (type == 2)
+	{
+		file_ids[file_id].offset = file_ids[file_id].buffer.byteLength + pos;
+	}
+	else if (type == 1)
+	{
+		file_ids[file_id].offset = file_ids[file_id].offset + pos;
+
+	}
+	else if (type == 0)
+	{
+		file_ids[file_id].offset = pos;
+
+	}
+
+	r_g0 = 0;
+
+	//return 0;
+  }
+
+  function mandreel_fclose(sp)
+  {
+  var file_id = heap32[sp>>2];sp+=4;
+
+	file_ids[file_id] = null;
+	r_g0 = 0;
+	//return 0;
+  }
+
+
+
+  function mandreel_feof(sp)
+  {
+  var file_id = heap32[sp>>2];sp+=4;
+
+  var offset = file_ids[file_id].offset;
+  var total = file_ids[file_id].buffer.byteLength;
+
+  if (offset>=total)
+  r_g0 = 1;
+  else
+  r_g0 = 0;
+
+  }
+
+  function mandreel_getc(sp)
+  {
+  var file_id = heap32[sp>>2];sp+=4;
+
+
+  var offset = file_ids[file_id].offset;
+
+
+	var buffer = file_ids[file_id].buffer;
+
+	var byteArray = file_ids[file_id].byteArray;
+
+	var total = 1;
+
+	var result;
+
+	if ((offset+total)>buffer.byteLength)
+	{
+		result = -1;
+	}
+	else
+	{
+		result = byteArray[offset];
+		file_ids[file_id].offset+=total;
+	}
+
+	r_g0 = result;
+  }
+
+
+
+  function mandreel_fread(sp)
+  {
+  var ptr = heap32[sp>>2];sp+=4;
+  var size = heap32[sp>>2];sp+=4;
+  var count = heap32[sp>>2];sp+=4;
+  var file_id = heap32[sp>>2];sp+=4;
+
+  var offset = file_ids[file_id].offset;
+
+  //dump('fread ' + ptr + ' ' + size + ' ' + count + ' ' + file_id + ' ' + offset + '\n');
+
+	var buffer = file_ids[file_id].buffer;
+
+	var total = size*count;
+
+	if ((offset+total)>buffer.byteLength)
+		total = buffer.byteLength-offset;
+
+	var byteArray = file_ids[file_id].byteArray;
+
+
+	var sub_array = byteArray.subarray(offset, offset+total);
+
+	heapU8.set(sub_array,ptr);
+
+
+	//heapU8.set(byteArray, ptr);
+	//for (var i=0;i<total;++i)
+	//{
+//		heapU8[ptr+i] = byteArray[i+offset];
+//	}
+
+
+	file_ids[file_id].offset+=total;
+
+	r_g0 = total/size;
+	//return total;
+  }
+
+  function mandreel_ftell(sp)
+  {
+  var file_id = heap32[sp>>2];sp+=4;
+
+	var value = file_ids[file_id].offset;
+	//dump('offset ftell ' + value + '\n');
+	r_g0 = value;
+	//return value;
+  }
+
+  function _Z30mandreel_fopen_enable_checkfatb(sp)
+  {
+  }
+
+  function mandreel_ungetc(sp)
+  {
+	var my_char = heap32[sp>>2];sp+=4;
+	var file_id = heap32[sp>>2];sp+=4;
+
+	var offset = file_ids[file_id].offset-1;
+
+	var byteArray = file_ids[file_id].byteArray;
+
+	assert(byteArray[offset] == my_char);
+
+	file_ids[file_id].offset = offset;
+
+	return my_char;
+  }
+  function mandreel_fopen(sp)
+  {
+  var ptr_name = heap32[sp>>2];sp+=4;
+  var ptr_flags = heap32[sp>>2];sp+=4;
+
+
+	var name = get_string_from_ptr(ptr_name);
+	var flags = get_string_from_ptr(ptr_flags);
+	//dump('fopen\n');
+	//dump(name);
+	//dump('\n');
+	//dump(flags);
+	//dump('\n');
+
+	var buffer;
+
+	var full_name;
+
+	name = name.toLowerCase();
+
+	name = name.replace(/\\/g,"/");
+
+	full_name	= g_mandreel_working_folder + name + g_mandreel_datafiles_sufix;
+
+
+	buffer =mandreel_cache_files[name];
+
+	if (buffer == null)
+	{
+	r_g0 = 0;
+	return;
+	}
+
+
+
+	//dump('\nopening file ' + full_name + ' ' + buffer.byteLength + '\n');
+
+
+	file_ids[current_file_id] = new create_file_id(buffer);
+
+	var old_id = current_file_id;
+	current_file_id++;
+
+	r_g0 = old_id;
+	//return old_id;
+  }
+
+  function llvm_store_unalign32_float(addr, value)
+  {
+	heapFloat[0] = value;
+	var data = heap32[0];
+	heap8[addr] = data&0xff;
+	heap8[addr+1] = (data>>>8)&0xff;
+	heap8[addr+2] = (data>>>16)&0xff;
+	heap8[addr+3] = (data>>>24)&0xff;
+  }
+  function llvm_store_unalign32(addr, value)
+  {
+	heap8[addr] = value&0xff;
+	heap8[addr+1] = (value>>>8)&0xff;
+	heap8[addr+2] = (value>>>16)&0xff;
+	heap8[addr+3] = (value>>>24)&0xff;
+  }
+
+  function llvm_read_unalign32(addr)
+  {
+	var value;
+	value = heapU8[addr];
+	value |= heapU8[addr+1]<<8;
+	value |= heapU8[addr+2]<<16;
+	value |= heapU8[addr+3]<<24;
+	return value;
+  }
+
+  function llvm_read_unalign32_float(addr)
+  {
+	var value;
+	value = heapU8[addr];
+	value |= heapU8[addr+1]<<8;
+	value |= heapU8[addr+2]<<16;
+	value |= heapU8[addr+3]<<24;
+
+	heap32[0] = value;
+	return  heapFloat[0];
+  }
+
+  function mandreel_getlocalstorage()
+  {
+	return Mandreel_window.localStorage;
+	//return Mandreel_window.sessionStorage;
+  }
+
+  function mandreel_openls(sp)
+  {
+	var ptr_name = heap32[sp>>2];sp+=4;
+
+	var key = get_string_from_ptr(ptr_name);
+
+	var my_localStorage = mandreel_getlocalstorage();
+
+	var value = my_localStorage.getItem(key);
+
+	if (value == null)
+	{
+		r_g0 = -1;
+		return;
+	}
+
+
+	var length = my_localStorage.getItem(key + '_size');
+
+	if (length == null)
+	{
+		r_g0 = -1;
+		return;
+	}
+
+
+
+
+	dump('mandreel_openls ' + key + ' return ' + length);
+
+
+	r_g0 = parseInt(length);
+
+
+
+	return;
+
+  }
+
+  function mandreel_readls(sp)
+  {
+	var ptr_name = heap32[sp>>2];sp+=4;
+	var data_dst = heap32[sp>>2];sp+=4;
+	var data_len = heap32[sp>>2];sp+=4;
+
+	var key = get_string_from_ptr(ptr_name);
+
+	var my_localStorage = mandreel_getlocalstorage();
+
+	var value = my_localStorage.getItem(key);
+
+	var data = JSON.parse(value);
+
+
+	for (var i=0;i<data_len;++i)
+	{
+		heapU8[data_dst+i] = data[i];
+	}
+
+	r_g0 =  data_len;
+	return;
+
+}
+
+function mandreel_removels(sp)
+ {
+ var ptr_name_a = heap32[sp>>2];sp+=4;
+ var key_a = get_string_from_ptr(ptr_name_a);
+
+ var my_localStorage = mandreel_getlocalstorage();
+
+	my_localStorage.removeItem(key_a);
+	my_localStorage.removeItem(key_a + '_size');
+	r_g0 = 0;
+
+ }
+
+
+function mandreel_renamels(sp)
+ {
+ var ptr_name_a = heap32[sp>>2];sp+=4;
+  var ptr_name_b = heap32[sp>>2];sp+=4;
+
+  var key_a = get_string_from_ptr(ptr_name_a);
+  var key_b = get_string_from_ptr(ptr_name_b);
+
+  var my_localStorage = mandreel_getlocalstorage();
+
+
+  var value = my_localStorage.getItem(key_a);
+  var value2 = my_localStorage.getItem(key_a + '_size');
+
+  if (value != null && value2 != null)
+  {
+	my_localStorage.setItem(key_b, value);
+	my_localStorage.setItem(key_b + '_size', value2);
+
+	my_localStorage.removeItem(key_a);
+	my_localStorage.removeItem(key_a + '_size');
+
+
+	r_g0 = 0;
+}
+else
+ r_g0 = -1;
+ }
+
+function mandreel_writels(sp)
+  {
+	var ptr_name = heap32[sp>>2];sp+=4;
+	var data_src = heap32[sp>>2];sp+=4;
+	var data_len = heap32[sp>>2];sp+=4;
+
+	var key = get_string_from_ptr(ptr_name);
+
+
+
+	var data = new Uint8Array(heap,data_src,data_len);
+
+	var value = JSON.stringify(data);
+
+	var my_localStorage = mandreel_getlocalstorage();
+
+	try
+	{
+		my_localStorage.setItem(key, value);
+	} catch(e)
+	{
+		dump('error saving ' + key);
+		dump(e.message);
+		r_g0 =  0;
+		return;
+	}
+
+	try
+	{
+		my_localStorage.setItem(key + '_size', data_len);
+	} catch(e)
+	{
+		dump('error saving ' + key);
+		dump(e.message);
+		r_g0 =  0;
+		return;
+	}
+
+
+	r_g0 =  data_len;
+	return;
+
+}
+
+function mandreel_call_constructors(_ptr, size,stackPos)
+{
+var ptr = _ptr;
+
+ptr = ptr >> 2;
+
+for (var i=0;i<size;++i)
+{
+
+
+var tag = heap32[ptr];
+var ptr_id = heap32[ptr+1];
+
+__FUNCTION_TABLE__[(ptr_id)>>2](stackPos);
+
+ptr+=2;
+
+}
+}
+
+function get_string_from_wptr(ptr)
+  {
+	var ret = "";
+
+	if (ptr == 0)
+		return ret;
+
+	assert((ptr&1)==0);
+	ptr>>=1;
+	var i = 0;
+	while (1) {
+  //    if ((ptr.pos + i) >= ptr.slab.length) { return "<< Invalid read: " + (ptr.pos+i) + " : " + ptr.slab.length + " >>"; } else {}
+	if (heapU16[ptr + i] == 0)
+		break;
+
+      var t = String.fromCharCode(heapU16[ptr + i]);
+     // if (t == "\0") { break; } else {}
+      ret += t;
+      i += 1;
+    }
+
+	return ret;
+  }
+
+  function fill_wptr_from_string(ptr, v)
+  {
+	var j;
+	var len = v.length;
+	var data;
+
+	assert((ptr&1)==0);
+	ptr>>=1;
+
+  	for(j = 0; j < len; j++)
+	{
+		data = v.charCodeAt(j);
+
+		heapU16[ptr] = data;
+		ptr++;
+	}
+		heapU16[ptr] = 0;
+	}
+
+function mandreelInterGetParams(sp)
+{
+	var params = [];
+
+	var offset = 0;
+	for (i=1;i<arguments.length;++i)
+	{
+		var type = arguments[i];
+
+		switch(type)
+		{
+			case 'int':
+				params[i-1] = heap32[(sp+offset)>>2];
+				break;
+			case 'float':
+				params[i-1] = heapFloat[(sp+offset)>>2];
+				break;
+			case 'string':
+				params[i-1] = get_string_from_ptr(heap32[(sp+offset)>>2]);
+				break;
+			default:
+				assert(false);
+		}
+		offset+=4;
+	}
+
+	return params;
+}
+
+function mandreelInterRetParam(type, value)
+{
+	switch(type)
+	{
+		case 'int':
+			r_g0 = value;
+			break;
+		case 'float':
+			f_g0 = value;
+			break;
+		default:
+			assert(false);
+	}
+
+	return 0;
+}
+
+function MandreelInterGetFunctionPtr(value)
+{
+	return __FUNCTION_TABLE__[value >> 2];
+}
+
+
+function MandreelInterCallFunction(returnType,func_name)
+{
+	var size_params = 0;
+
+	var i;
+	var num_params = (arguments.length-2)/2;
+	num_params|=0;
+	for (i=2;i<num_params*2+2;i+=2)
+	{
+		var type = arguments[i];
+
+		var size_arg = 0;
+		switch(type)
+		{
+			case 'int':
+				size_arg = 4;
+				break;
+			case 'float':
+				size_arg = 4;
+				break;
+			case 'string':
+				size_arg = 4;
+				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
+				break;
+			case 'wstring':
+				size_arg = 4;
+				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
+				break;
+			default:
+				assert(false);
+		}
+
+		size_params += size_arg;
+	}
+
+	// stack always 8 byte aligned
+	size_params=((size_params+7)& 0xfffffff8);
+
+	var sp = 0;
+
+	if (i<(arguments.length))
+		sp = arguments[i];
+	else
+	{
+		assert(false,"MandreelInterCallFunction missing stack pointer paramenter");
+		//assert(g_mandreel_frame_locked == true);
+		//sp = g_stack_pointer+800*1024;
+	}
+
+	sp-=size_params;
+
+	var offset = 0;
+	var ptr_data = num_params*4+sp;
+    for (i=2;i<num_params*2+2;i+=2)
+	{
+		var type = arguments[i];
+
+		var size_arg = 0;
+		switch(type)
+		{
+			case 'int':
+				heap32[(sp+offset)>>2] = arguments[i+1];
+				break;
+			case 'float':
+				heapFloat[(sp+offset)>>2] = arguments[i+1];
+				break;
+			case 'string':
+				{
+					heap32[(sp+offset)>>2] = ptr_data;
+					var string = arguments[i+1];
+					fill_ptr_from_string(ptr_data,string);
+
+					ptr_data += ((string.length + 4) & 0xfffffffc);
+				}
+				break;
+			case 'wstring':
+				{
+					MandreelInterWriteInt((sp+offset),ptr_data);
+					var string = arguments[i+1];
+					MandreelInterWriteWString(ptr_data,string);
+
+					ptr_data += ((string.length*2 + 4) & 0xfffffffc);
+				}
+				break;
+			default:
+				assert(false);
+		}
+		offset+=4;
+	}
+
+	Mandreel_window[func_name](sp);
+
+	if (returnType == 'int')
+		return r_g0;
+	else if (returnType == 'float')
+		return f_g0;
+	else
+	{
+		assert(returnType == 'void');
+		return;
+	}
+}
+
+
+function MandreelInterCallFunctionPtr(returnType,func_ptr)
+{
+	var size_params = 0;
+
+	var i;
+	var num_params = (arguments.length-2)/2;
+	num_params|=0;
+	for (i=2;i<num_params*2+2;i+=2)
+	{
+		var type = arguments[i];
+
+		var size_arg = 0;
+		switch(type)
+		{
+			case 'int':
+				size_arg = 4;
+				break;
+			case 'float':
+				size_arg = 4;
+				break;
+			case 'string':
+				size_arg = 4;
+				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
+				break;
+			case 'wstring':
+				size_arg = 4;
+				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
+				break;
+			default:
+				assert(false);
+		}
+
+		size_params += size_arg;
+	}
+
+	// stack always 8 byte aligned
+	size_params=((size_params+7)& 0xfffffff8);
+
+	var sp = 0;
+
+	if (i<(arguments.length))
+		sp = arguments[i];
+	else
+	{
+		assert(false);
+		//assert(g_mandreel_frame_locked == true);
+		//sp = g_stack_pointer+800*1024;
+	}
+
+	sp-=size_params;
+
+	var offset = 0;
+	var ptr_data = num_params*4+sp;
+    for (i=2;i<num_params*2+2;i+=2)
+	{
+		var type = arguments[i];
+
+		var size_arg = 0;
+		switch(type)
+		{
+			case 'int':
+				heap32[(sp+offset)>>2] = arguments[i+1];
+				break;
+			case 'float':
+				heapFloat[(sp+offset)>>2] = arguments[i+1];
+				break;
+			case 'string':
+				{
+					heap32[(sp+offset)>>2] = ptr_data;
+					var string = arguments[i+1];
+					fill_ptr_from_string(ptr_data,string);
+
+					ptr_data += ((string.length + 4) & 0xfffffffc);
+				}
+				break;
+			case 'wstring':
+				{
+					MandreelInterWriteInt((sp+offset),ptr_data);
+					var string = arguments[i+1];
+					MandreelInterWriteWString(ptr_data,string);
+
+					ptr_data += ((string.length*2 + 4) & 0xfffffffc);
+				}
+				break;
+			default:
+				assert(false);
+		}
+		offset+=4;
+	}
+
+	__FUNCTION_TABLE__[(func_ptr)>>2](sp);
+
+	if (returnType == 'int')
+		return r_g0;
+	else if (returnType == 'float')
+		return f_g0;
+	else
+	{
+		assert(returnType == 'void');
+		return;
+	}
+}
+
+
+var MANDREEL_HTTP_REQUEST_MODE_GET = 0;
+var MANDREEL_HTTP_REQUEST_MODE_POST = 1;
+var MANDREEL_HTTP_REQUEST_MODE_PUT = 2;
+
+var MANDREEL_HTTP_REQUEST_STATUS_ERROR = 0;
+var MANDREEL_HTTP_REQUEST_STATUS_BUSY = 1;
+var MANDREEL_HTTP_REQUEST_STATUS_FINISHED = 2;
+var MANDREEL_HTTP_REQUEST_STATUS_INIT = 3;
+
+
+var mandreel_js_mapping_ids = [];
+var mandreel_js_mapping_ids_free = [];
+
+
+function Mandreel_HttpRequest_Create(sp)
+{
+	var ptr_url = heap32[sp>>2];sp+=4;
+	var type = heap32[sp>>2];sp+=4;
+
+
+	var url = get_string_from_ptr(ptr_url);
+
+
+	var str_type = 'GET';
+	if (type == MANDREEL_HTTP_REQUEST_MODE_GET)
+		str_type = 'GET';
+	else if (type == MANDREEL_HTTP_REQUEST_MODE_PUT)
+		str_type = 'PUT';
+	else if (type == MANDREEL_HTTP_REQUEST_MODE_POST)
+		str_type = 'POST';
+
+	var xmlhttp_get = new XMLHttpRequest();
+	xmlhttp_get.open(str_type,url);
+
+	if("responseType" in xmlhttp_get)
+		xmlhttp_get.responseType="arraybuffer";
+    else
+	{
+		xmlhttp_get.overrideMimeType('text/plain; charset=x-user-defined');
+	}
+
+	if (mandreel_js_mapping_ids_free.length == 0)
+		mandreel_js_mapping_ids_free.push(mandreel_js_mapping_ids.length);
+
+	var new_id = mandreel_js_mapping_ids_free.pop();
+
+	var my_state = {
+	buffer : null,
+	httpRequest : xmlhttp_get,
+	status : MANDREEL_HTTP_REQUEST_STATUS_INIT,
+	offset_read : 0
+  };
+
+
+
+	mandreel_js_mapping_ids[new_id] = my_state;
+
+	r_g0 = new_id+1;
+}
+
+function Mandreel_HttpRequest_Send(sp)
+{
+	var _id = heap32[sp>>2];sp+=4;
+	var ptr_data = heap32[sp>>2];sp+=4;
+	var id = _id-1;
+
+	var data;
+
+	if (ptr_data)
+		data = get_string_from_ptr(ptr_data);
+	else
+		data = null;
+
+	var my_state = mandreel_js_mapping_ids[id];
+
+
+	my_state.status = MANDREEL_HTTP_REQUEST_STATUS_BUSY;
+
+	my_state.httpRequest.onreadystatechange = function()
+	{
+		if (my_state.httpRequest.readyState==4)
+		{
+			if (my_state.httpRequest.status==200)
+			{
+				var buffer;
+
+				if (my_state.httpRequest.responseType=="arraybuffer")
+					buffer=my_state.httpRequest.response;
+				else if (my_state.httpRequest.mozResponseArrayBuffer != null)
+					buffer = my_state.httpRequest.mozResponseArrayBuffer;
+				else
+					buffer=my_state.httpRequest.response;
+
+				my_state.status = MANDREEL_HTTP_REQUEST_STATUS_FINISHED;
+				my_state.buffer =  new Uint8Array(buffer);
+				//alert(my_state.buffer.length);
+
+				//alert(mandreel_js_mapping_ids[id].buffer);
+
+			}
+			else
+				my_state.status = MANDREEL_HTTP_REQUEST_STATUS_ERROR;
+		}
+	}
+
+	my_state.httpRequest.send(data);
+}
+
+
+function Mandreel_HttpRequest_Status(sp)
+{
+	var _id = heap32[sp>>2];sp+=4;
+	var id = _id-1;
+
+
+	r_g0 = mandreel_js_mapping_ids[id].status;
+}
+
+function Mandreel_HttpRequest_Read(sp)
+{
+	var _id = heap32[sp>>2];sp+=4;
+	var ptr = heap32[sp>>2];sp+=4;
+	var size = heap32[sp>>2];sp+=4;
+	var id = _id-1;
+
+	var remaining_bytes =  mandreel_js_mapping_ids[id].buffer.length - mandreel_js_mapping_ids[id].offset_read;
+
+	if (size>remaining_bytes)
+		size = remaining_bytes;
+
+	var sub_array = mandreel_js_mapping_ids[id].buffer.subarray(mandreel_js_mapping_ids[id].offset_read, mandreel_js_mapping_ids[id].offset_read+size);
+	heapU8.set(sub_array,ptr);
+
+	mandreel_js_mapping_ids[id].offset_read+=size;
+
+	r_g0 = size;
+}
+
+function Mandreel_HttpRequest_BytesAvalable(sp)
+{
+	var _id = heap32[sp>>2];sp+=4;
+	var id = _id-1;
+
+
+	if (mandreel_js_mapping_ids[id].buffer)
+		r_g0 = mandreel_js_mapping_ids[id].buffer.length - mandreel_js_mapping_ids[id].offset_read;
+	else
+		r_g0 = 0;
+}
+
+function Mandreel_HttpRequest_Close(sp)
+{
+	var _id = heap32[sp>>2];sp+=4;
+	var id = _id-1;
+
+	mandreel_js_mapping_ids[id] = null;
+	mandreel_js_mapping_ids_free.push(id);
+}
+
+function Mandreel_HttpRequest_SetRequestHeader(sp)
+{
+	var _id = heap32[sp>>2];sp+=4;
+	var ptr_a = heap32[sp>>2];sp+=4;
+	var ptr_b = heap32[sp>>2];sp+=4;
+	var id = _id-1;
+
+	var str_a = get_string_from_ptr(ptr_a);
+	var str_b = get_string_from_ptr(ptr_b);
+
+	var my_state = mandreel_js_mapping_ids[id];
+
+	my_state.httpRequest.setRequestHeader(str_a, str_b);
+}
+
+
+var Mandreel_TextureAsync_textures = 0;
+var Mandreel_TextureAsync_textures_loaded = 0;
+
+var Mandreel_TextureAsync_PackBufferData = new Array();
+
+function Mandreel_TextureAsync_SetData(sp)
+{
+	var texture_id = heap32[sp>>2];sp+=4;
+
+	var tex = array_ids_ogl[texture_id];
+
+	if ( mandreelAppPlatform != "canvas" )
+	{
+		imandreel_gl.texImage2D(imandreel_gl.TEXTURE_2D, 0, imandreel_gl.RGBA, imandreel_gl.RGBA, imandreel_gl.UNSIGNED_BYTE, tex.image);
+		tex.image = null;
+	}
+}
+
+function Mandreel_TextureAsync_CheckPending(sp)
+{
+	r_g0 = Mandreel_TextureAsync_textures - Mandreel_TextureAsync_textures_loaded;
+}
+
+function Mandreel_TextureAsync_GetProperties(sp)
+{
+	var texture_id = heap32[sp>>2];sp+=4;
+	var ptr_width = heap32[sp>>2];sp+=4;
+	var ptr_height = heap32[sp>>2];sp+=4;
+
+	var tex = array_ids_ogl[texture_id];
+
+	if (tex == null || tex.mandreel_width == undefined)
+		r_g0 = 0;
+	else
+	{
+		heap32[ptr_width>>2] = tex.mandreel_width;
+		heap32[ptr_height>>2] = tex.mandreel_height;
+		r_g0 = 1;
+	}
+}
+
+function mandreel_arrayBufferDataUri(offset, size, buffer) {
+var bytes = new Uint8Array(buffer,offset,size)
+   var ascii = '';
+   for (var i=0; i<bytes.length; i++)
+     ascii += String.fromCharCode(bytes[i]);
+   var base64 = btoa(ascii);
+
+  if (/^\x89PNG/.test(ascii))
+    return 'data:image/png;base64,'+base64;
+  else
+    return 'data:image/jpeg;base64,'+base64;
+  }
+
+ function mandreel_texture_async_fix_name(name)
+{
+	var ascii = '';
+
+	var j;
+	var len = name.length;
+
+
+	for(j = 0; j < len; j++)
+	{
+		var my_char = name[j];
+
+		if (my_char == '/')
+			my_char = '_';
+
+		ascii+=my_char;
+
+	}
+
+   return ascii;
+}
+
+
+
+function Mandreel_TextureAsync_Load(sp)
+{
+	var ptr_name = heap32[sp>>2];sp+=4;
+	var texture_id = heap32[sp>>2];sp+=4;
+
+	var name = get_string_from_ptr(ptr_name);
+
+	var nameSrc = name;
+
+	name = name.toLowerCase();
+
+
+	var full_name	= g_mandreel_working_folder + name;
+
+	var image  = new Image();
+
+
+	Mandreel_TextureAsync_textures++;
+
+	var imgURL = null;
+
+
+
+
+	image.onerror = function() {
+          dump('error loading texture ' + image.src + '\n');
+		  Mandreel_TextureAsync_textures_loaded++;
+      }
+	image.onload = function()
+	{
+		if (imgURL)
+		{
+			var URL = Mandreel_window.URL || Mandreel_window.webkitURL;
+			URL.revokeObjectURL(imgURL);
+		}
+		if ( mandreelAppPlatform == "canvas" )
+		{
+			array_ids_ogl[texture_id] = image;
+			Mandreel_TextureAsync_textures_loaded++;
+		}
+		else
+		{
+			var tex = array_ids_ogl[texture_id];
+			if (tex)
+			{
+				tex.image = image;
+				tex.mandreel_width = image.width;
+				tex.mandreel_height = image.height;
+				Mandreel_TextureAsync_textures_loaded++;
+
+				var sp = MandreelLockFrame();
+				MandreelInterCallFunction('void',"Mandreel_TextureAsync_Loaded",'int',texture_id,'int',image.width,'int',image.height, sp);
+				MandreelUnlockFrame();
+		}
+			else
+			{
+				dump('texture not valid ' + texture_id + ' ' + name + '\n');
+				Mandreel_TextureAsync_textures_loaded++;
+			}
+		}
+
+
+	}
+
+	var new_sp = sp-4096;
+
+	var packfile = new_sp + 2048;
+	var offset_ptr = new_sp + 2048+1024;
+	var size_ptr = new_sp + 2048+1024+4;
+
+	fill_ptr_from_string(new_sp + 1024,name);
+
+	heap32[(new_sp)>>2] = new_sp + 1024;
+	heap32[(new_sp+4)>>2] = offset_ptr;
+	heap32[(new_sp+8)>>2] = size_ptr;
+	heap32[(new_sp+12)>>2] = packfile;
+	iMandreel_TextureAsync_GetPackOffset(new_sp);
+
+
+	var image_src;
+
+	var image_src_valid = true;
+
+	if (r_g0)
+	{
+		var packfilename = get_string_from_ptr(packfile);
+		image_src = mandreel_arrayBufferDataUri(heap32[offset_ptr>>2],heap32[size_ptr>>2],Mandreel_TextureAsync_PackBufferData[packfilename]);
+	}
+	else
+	{
+
+		if (nameSrc.search('http:') != -1 || nameSrc.search('https:') != -1)
+		{
+			image.crossOrigin = 'anonymous'; // no credentials flag. Same as
+			image_src = nameSrc;
+		}
+		else
+		{
+			if (mandreel_is_filesystem())
+			{
+				image_src_valid = false;
+
+				var new_name = mandreel_texture_async_fix_name(full_name);
+				mandreel_fs_get_url(new_name, function Mandreel_TextureAsync_Load_FS(data) {
+					if (data)
+					{
+						image.src = data;
+					}
+					else
+					{
+						var packdata_request = new XMLHttpRequest();
+
+						packdata_request.open("GET", full_name, true);
+
+						if("responseType" in packdata_request)
+							packdata_request.responseType="arraybuffer";
+						else
+							packdata_request.overrideMimeType('text/plain; charset=x-user-defined');
+
+						packdata_request.onreadystatechange = function()
+						{
+							if (packdata_request.readyState != 4) return;
+
+							if (packdata_request.status == 200)
+							{
+								var buffer;
+								if (packdata_request.responseType=="arraybuffer")
+									buffer=packdata_request.response;
+								else if (packdata_request.mozResponseArrayBuffer != null)
+									buffer = packdata_request.mozResponseArrayBuffer;
+								else
+									buffer=packdata_request.response;
+
+								mandreel_fs_saveFile(new_name, buffer);
+
+								var uri = mandreel_arrayBufferDataUri(0,buffer.byteLength,buffer);
+
+								image.src = uri;
+
+							}
+							else
+							{
+
+								Mandreel_TextureAsync_textures_loaded++;
+
+							}
+						}
+
+						packdata_request.send();
+
+					}
+				}
+				);
+			}
+			else if (mandreel_is_indexeddb())
+			{
+				image_src_valid = false;
+
+				var new_name = mandreel_texture_async_fix_name(full_name);
+				mandreel_indexedDB.load(new_name,function Mandreel_TextureAsync_Load_IDB(data) {
+					if (data)
+					{
+						 var URL = Mandreel_window.URL || Mandreel_window.webkitURL;
+
+
+						// Create and revoke ObjectURL
+						imgURL = URL.createObjectURL(data);
+
+						image.src = imgURL;
+					}
+					else
+					{
+						var packdata_request = new XMLHttpRequest();
+
+						packdata_request.open("GET", full_name, true);
+
+						 packdata_request.responseType = "blob";
+
+
+
+						packdata_request.onreadystatechange = function()
+						{
+							if (packdata_request.readyState != 4) return;
+
+							if (packdata_request.status == 200)
+							{
+								var buffer=packdata_request.response;
+
+								 var URL = Mandreel_window.URL || Mandreel_window.webkitURL;
+
+								// Create and revoke ObjectURL
+								imgURL = URL.createObjectURL(buffer);
+
+								image.src = imgURL;
+
+								mandreel_fs_saveFile(new_name, buffer);
+
+							}
+							else
+							{
+
+								Mandreel_TextureAsync_textures_loaded++;
+
+							}
+						}
+
+						packdata_request.send();
+					}
+
+				}
+				);
+			}
+			else
+				image_src = full_name;
+		}
+	}
+
+
+	if (image_src_valid)
+	{
+		setTimeout( function Mandreel_TextureAsync_Load_callback() {
+						image.src = image_src;
+					}, 1);
+	}
+}
+
+
+
+function __sandbox_OutputDebugString(sp)
+{
+	puts(sp);
+}
+
+
+
+
+var MANDREELCALLJS_TYPE_RETURN_VOID = 0;
+var MANDREELCALLJS_TYPE_INT = 1;
+var MANDREELCALLJS_TYPE_FLOAT =  2;
+var MANDREELCALLJS_TYPE_STRING =  3;
+var MANDREELCALLJS_TYPE_RETURN_INT =  4;
+var MANDREELCALLJS_TYPE_RETURN_FLOAT =  5;
+
+function MandreelInterWriteString(ptr, value)
+{
+	fill_ptr_from_string(ptr,value);
+}
+
+function MandreelInterWriteWString(ptr, value)
+{
+	fill_wptr_from_string(ptr, value);
+}
+
+function MandreelInterWriteFloat(ptr, value)
+{
+	heapFloat[ptr>>2] = value;
+}
+
+function MandreelPause()
+{
+	_imandreel_pause_game = true;
+}
+
+function MandreelResume()
+{
+	_imandreel_pause_game = false;
+}
+
+
+function MandreelLockFrame()
+{
+	assert(g_mandreel_frame_inframe == false, "calling lockframe during render frame");
+	assert(g_mandreel_frame_locked == false, "calling lockframe twice");
+	g_mandreel_frame_locked = true;
+
+	return g_stack_pointer+800*1024;
+}
+
+function MandreelUnlockFrame()
+{
+	assert(g_mandreel_frame_inframe == false);
+	g_mandreel_frame_locked = false;
+}
+
+
+function MandreelInterWriteInt(ptr, value)
+{
+	heap32[ptr>>2] = value;
+}
+
+function MandreelInterStringFromWPtr(ptr)
+{
+	return get_string_from_wptr(ptr);
+}
+
+function MandreelInterStringFromPtr(ptr)
+{
+	return get_string_from_ptr(ptr);
+}
+
+function mandreel_my_call_external_array(method, params)
+{
+	var result
+	var resultString;
+	try
+	{
+		switch(params.length)
+		{
+			case 1:
+				resultString = Mandreel_window[method](params[0]);
+				break;
+			case 2:
+				resultString = Mandreel_window[method](params[0],params[1]);
+				break;
+			case 3:
+				resultString = Mandreel_window[method](params[0],params[1],params[2]);
+				break;
+			case 4:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3]);
+				break;
+			case 5:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4]);
+				break;
+			case 6:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5]);
+				break;
+			case 7:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
+				break;
+			case 8:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7]);
+				break;
+			case 9:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8]);
+				break;
+			case 10:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9]);
+				break;
+			case 11:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10]);
+				break;
+			case 12:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11]);
+				break;
+			case 13:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12]);
+				break;
+			case 14:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13]);
+				break;
+			case 15:
+				resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14]);
+				break;
+			default:
+				assert(false);
+		}
+		result = 0;
+	} catch(e) { dump('error calling ' + method + '\n'); dump(e); result = 1;}
+
+	return [result,resultString];
+}
+
+
+function Mandreel_InterJS_Call(sp)
+{
+	var new_sp = sp;
+	var method_ptr = heap32[sp>>2];sp+=4;
+	var method = get_string_from_ptr(method_ptr);
+
+	var params = new Array();
+
+
+	params.push(new_sp);
+
+	var var_int;
+	var var_string;
+	var var_double;
+
+	var return_type;
+	var return_ptr;
+	while (true)
+	{
+		var my_type = heap32[sp>>2];sp+=4;
+
+
+		if (my_type == MANDREELCALLJS_TYPE_RETURN_VOID)
+		{
+			return_type = my_type;
+			break;
+		}
+		else if (my_type == MANDREELCALLJS_TYPE_INT)
+		{
+			var_int = heap32[sp>>2];
+
+			params.push(var_int);
+			sp+=4;
+		}
+		else if (my_type == MANDREELCALLJS_TYPE_FLOAT)
+		{
+			sp = (sp+7) & ~7;
+
+			var_double = llvm_readDouble(sp);
+
+			params.push(var_double);
+			sp+=8;
+		}
+		else if (my_type == MANDREELCALLJS_TYPE_STRING)
+		{
+			var_int = heap32[sp>>2];
+			var_string = get_string_from_ptr(var_int);
+
+			params.push(var_string);
+			sp+=4;
+		}
+		else if (my_type == MANDREELCALLJS_TYPE_RETURN_INT)
+		{
+			return_type = my_type;
+			return_ptr = heap32[sp>>2];
+			break;
+		}
+		else if (my_type == MANDREELCALLJS_TYPE_RETURN_FLOAT)
+		{
+			return_type = my_type;
+			return_ptr = heap32[sp>>2];
+			break;
+		}
+		else
+		{
+			assert(false, "invalid arguments calling Mandreel_InterJS_Call");
+		}
+	}
+
+	var result = mandreel_my_call_external_array(method,params);
+
+	r_g0 = result[0];
+
+
+	if (r_g0 == 0)
+	{
+		if (return_type == MANDREELCALLJS_TYPE_RETURN_INT)
+		{
+			heap32[return_ptr>>2] = result[1];
+		}
+		else if (return_type == MANDREELCALLJS_TYPE_RETURN_FLOAT)
+		{
+			heapFloat[return_ptr>>2] = result[1];
+		}
+
+	}
+}
+
+function iMandreelRegisterExternalCallback()
+{
+}
+
+function __mandreel_internal_CreateWindow()
+{
+}
+
+var __mandreel_async_calls_mandreel = [];
+var __mandreel_async_calls_js = [];
+
+
+function Mandreel_InterJS_AsyncCall(sp)
+{
+	var method_ptr = heap32[sp>>2];sp+=4;
+	var _func_name = get_string_from_ptr(method_ptr);
+	var param_ptr = heap32[sp>>2];sp+=4;
+	var _param = get_string_from_ptr(param_ptr);
+
+	__mandreel_async_calls_js.push({func_name:_func_name,param:_param});
+}
+
+
+
+
+function MandreelInterCallFunctionAsync(_func_name, _param)
+{
+	__mandreel_async_calls_mandreel.push({func_name:_func_name,param:_param});
+
+
+}
+
+function __mandreel_process_async_calls()
+{
+	if (__mandreel_async_calls_mandreel.length)
+	{
+		var temp_list = __mandreel_async_calls_mandreel.slice(0);
+
+		__mandreel_async_calls_mandreel = [];
+
+		for (var i=0;i<temp_list.length;++i)
+		{
+			var param = temp_list[i].param;
+			var func_name = temp_list[i].func_name;
+
+			var size = ((param.length + 1)+7)&0xFFFFFFF8;
+
+			var sp = g_stack_pointer+800*1024;
+
+			var str_ptr = sp - size;
+			fill_ptr_from_string(str_ptr,param);
+
+			sp = str_ptr - 4;
+			heap32[sp>>2] = str_ptr;
+
+			Mandreel_window[func_name](sp);
+		}
+	}
+
+	if (__mandreel_async_calls_js.length)
+	{
+		var temp_list = __mandreel_async_calls_js.slice(0);
+
+		__mandreel_async_calls_js = [];
+
+		for (var i=0;i<temp_list.length;++i)
+		{
+			var param = temp_list[i].param;
+			var func_name = temp_list[i].func_name;
+
+			Mandreel_window[func_name](param);
+
+		}
+	}
+}
+
+function mandreel_internal_isCanvas(sp)
+{
+	if ( mandreelAppPlatform == "canvas" )
+		r_g0 = 1;
+	else
+		r_g0 = 0;
+}
+
+function Mandreel_Device_SetFullScreen(sp)
+{
+	var enable = heap32[sp>>2];sp+=4;
+	mandreelAppFullscreen(enable);
+}
+
+var array_ids_ogl = [];
+
+var max_ogl_id = 8192;
+
+var array_ids_ogl_enable = [];
+var g_current_program_id = 0;
+
+
+var uniformArrays2 = [];
+var uniformArrays3 = [];
+var uniformArrays4 = [];
+var uniformArraysCreated = 0;
+var mandreel_draw_enable = true;
+
+
+if (typeof imandreel_gl=="undefined")
+{
+	alert('using old template, update code');
+}
+
+function myglCreateUniformArrays()
+{
+	if ( uniformArraysCreated == 0 )
+	{
+		for(var i=0; i<256;i++ )
+		{
+			uniformArrays2[i] = new Float32Array(i*2);
+			uniformArrays3[i] = new Float32Array(i*3);
+			uniformArrays4[i] = new Float32Array(i*4);
+		}
+		uniformArraysCreated = 1;
+	}
+}
+
+var my_super_id = 1;
+function myglNewSlot()
+{
+	//var id = array_ids_ogl_enable.pop();
+	var id = my_super_id;
+	my_super_id++;
+	return id;
+}
+
+function myglFreeSlot(id)
+{
+	//array_ids_ogl_enable.push(id);
+}
+
+
+function myglCreateProgram(sp)
+{
+	var id = myglNewSlot();
+	var program = imandreel_gl.createProgram();
+
+	program.uniform_locations_current_id = 0;
+	program.array_uniform_locations = [];
+
+	array_ids_ogl[id] = program;
+
+
+	r_g0 = id;
+}
+
+function myglCreateShader(sp)
+{
+	var type = heap32[sp>>2];sp+=4;
+	var id = myglNewSlot();
+
+	array_ids_ogl[id] = imandreel_gl.createShader(type);
+
+	r_g0 = id;
+}
+
+function myglAttachShader(sp)
+{
+	var program_id = heap32[sp>>2];sp+=4;
+	var shader_id = heap32[sp>>2];sp+=4;
+
+	imandreel_gl.attachShader(array_ids_ogl[program_id], array_ids_ogl[shader_id]);
+}
+
+function myglBindAttribLocation(sp)
+{
+	var program_id = heap32[sp>>2];sp+=4;
+	var index = heap32[sp>>2];sp+=4;
+	var ptr_string = heap32[sp>>2];sp+=4;
+
+	var string = get_string_from_ptr(ptr_string);
+
+	imandreel_gl.bindAttribLocation(array_ids_ogl[program_id], index, string);
+}
+
+function myglLinkProgram(sp)
+{
+	var program_id = heap32[sp>>2];sp+=4;
+
+	imandreel_gl.linkProgram(array_ids_ogl[program_id]);
+}
+
+function myglShaderSource(sp)
+{
+	var id = heap32[sp>>2];sp+=4;
+	var ptr_string = heap32[sp>>2];sp+=4;
+
+	var shader = array_ids_ogl[id];
+
+	var shader_code = get_string_from_ptr(ptr_string);
+
+	//dump(shader_code);
+
+
+	imandreel_gl.shaderSource(shader, shader_code);
+}
+
+
+function myglDrawArrays(sp)
+{
+	var mode = heap32[sp>>2];sp+=4;
+	var first = heap32[sp>>2];sp+=4;
+	var count = heap32[sp>>2];sp+=4;
+
+	if (mandreel_draw_enable)
+		imandreel_gl.drawArrays(mode, first, count);
+
+
+	//dump('draw arrays ' + mode + ' ' + first + ' ' + count + '\n');
+ }
+
+function myglDrawElements(sp)
+{
+	var mode = heapU32[sp>>2]; sp+=4;
+	var count = heapU32[sp>>2]; sp+=4;
+	var type = heapU32[sp>>2]; sp+=4;
+	var offset = heapU32[sp>>2]; sp+=4;
+
+
+	if (mandreel_draw_enable)
+		imandreel_gl.drawElements(mode, count, type, offset);
+
+
+
+}
+
+function myglCreateTexture(sp)
+{
+	var id = myglNewSlot();
+	array_ids_ogl[id] = imandreel_gl.createTexture();
+
+	r_g0 = id;
+}
+
+function myglCreateRenderBuffer(sp) {
+	var id = myglNewSlot();
+    array_ids_ogl[id] = imandreel_gl.createRenderbuffer();
+
+    r_g0 = id;
+}
+
+function myglCreateFrameBuffer(sp) {
+	var id = myglNewSlot();
+    array_ids_ogl[id] = imandreel_gl.createFramebuffer();
+
+    r_g0 = id;
+}
+
+function myglBindFramebuffer(sp)
+{
+    var target = heap32[sp >> 2]; sp += 4;
+    var framebuffer_id = heap32[sp >> 2]; sp += 4;
+
+	if (framebuffer_id != 0)
+	{
+		var framebuffer = array_ids_ogl[framebuffer_id];
+		imandreel_gl.bindFramebuffer(target,framebuffer);
+	}
+	else
+		imandreel_gl.bindFramebuffer(target,null);
+
+}
+
+function myglBindRenderbuffer(sp)
+{
+    var target = heap32[sp >> 2]; sp += 4;
+    var renderbuffer_id = heap32[sp >> 2]; sp += 4;
+
+    var renderbuffer = array_ids_ogl[renderbuffer_id];
+
+    imandreel_gl.bindRenderbuffer(target,renderbuffer);
+
+}
+
+
+function myglRenderbufferStorage(sp) {
+    var target = heap32[sp >> 2]; sp += 4;
+    var internalformat = heap32[sp >> 2]; sp += 4;
+    var witdth = heap32[sp >> 2]; sp += 4;
+    var height = heap32[sp >> 2]; sp += 4;
+
+    imandreel_gl.renderbufferStorage(target, internalformat, witdth, height);
+
+}
+
+function myglFramebufferRenderbuffer (sp)
+{
+  var target = heap32[sp>>2];sp+=4;
+  var attachment = heap32[sp>>2];sp+=4;
+  var renderbuffertarget = heap32[sp>>2];sp+=4;
+  var renderbuffer_id = heap32[sp>>2];sp+=4;
+
+    var renderbuffer = array_ids_ogl[renderbuffer_id];
+
+    imandreel_gl.framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+
+}
+
+function myglFramebufferTexture2D (sp)
+{
+  var target = heap32[sp>>2];sp+=4;
+  var attachment = heap32[sp>>2];sp+=4;
+  var textarget = heap32[sp>>2];sp+=4;
+  var texture_id = heap32[sp>>2];sp+=4;
+  var level = heap32[sp>>2];sp+=4;
+
+  var texture = array_ids_ogl[texture_id];
+
+  imandreel_gl.framebufferTexture2D(target, attachment, textarget, texture, level);
+
+
+}
+
+function myglTexImage2D(sp)
+ {
+  var target = heap32[sp>>2];sp+=4;
+  var level = heap32[sp>>2];sp+=4;
+  var internalFormat = heap32[sp>>2];sp+=4;
+  var width = heap32[sp>>2];sp+=4;
+  var height = heap32[sp>>2];sp+=4;
+  var border = heap32[sp>>2];sp+=4;
+  var format = heap32[sp>>2];sp+=4;
+  var type = heap32[sp>>2];sp+=4;
+  var data = heap32[sp>>2];sp+=4;
+
+  if (level>0 && target==imandreel_gl.TEXTURE_2D)
+	return;
+
+   if (data == 0)
+  {
+	//imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, null);
+	var buffer;
+	var bufferView;
+
+	if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1)
+    {
+		buffer = new ArrayBuffer(width*height*2);
+		bufferView = new Uint16Array(buffer);
+	}
+	else
+	{
+		var size;
+		if (format == imandreel_gl.LUMINANCE)
+			size = width*height;
+		else if (format == imandreel_gl.RGB)
+			size = width*height*3;
+		else if (format == imandreel_gl.RGBA)
+			size = width*height*4;
+		else if (format == imandreel_gl.ALPHA)
+			size = width*height;
+		else if (format == imandreel_gl.LUMINANCE_ALPHA)
+			size = width*height*2;
+
+		buffer = new ArrayBuffer(size);
+		bufferView = new Uint8Array(buffer);
+	}
+
+	imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, bufferView);
+	return;
+  }
+
+
+  	var bufferView;
+   if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1)
+   {
+		bufferView = new Uint16Array(heap,data,width*height);
+	}
+	else if (type == imandreel_gl.UNSIGNED_BYTE)
+	{
+		if (format == imandreel_gl.LUMINANCE)
+			bufferView = new Uint8Array(heap,data,width*height);
+		else if (format == imandreel_gl.RGB)
+			bufferView = new Uint8Array(heap,data,width*height*3);
+		else if (format == imandreel_gl.RGBA)
+			bufferView = new Uint8Array(heap,data,width*height*4);
+		else if (format == imandreel_gl.ALPHA)
+			bufferView = new Uint8Array(heap,data,width*height);
+		else if (format == imandreel_gl.LUMINANCE_ALPHA)
+			bufferView = new Uint8Array(heap,data,width*height*2);
+		else
+		{
+			dump('format unknown ' + format + '\n');
+			assert(false);
+		}
+	}
+	else
+	{
+	dump('type unknown ' + type + '\n');
+		assert(false);
+	}
+
+  imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, bufferView);
+  if ((width&(width-1))==0 && (height&(height-1))==0)
+  {
+    if (target==imandreel_gl.TEXTURE_2D)
+	imandreel_gl.generateMipmap(target);
+}
+ }
+  function myglStencilFunc(sp)
+  {
+  var func = heap32[sp>>2];sp+=4;
+  var ref = heap32[sp>>2];sp+=4;
+  var mask = heap32[sp>>2];sp+=4;
+
+  imandreel_gl.stencilFunc(func, ref, mask);
+  }
+
+  function myglStencilFuncSeparate(sp)
+  {
+  var face = heap32[sp>>2];sp+=4;
+  var func = heap32[sp>>2];sp+=4;
+  var ref = heap32[sp>>2];sp+=4;
+  var mask = heap32[sp>>2];sp+=4;
+
+  imandreel_gl.stencilFuncSeparate(face,func,ref,mask);
+  }
+
+  function myglStencilMaskSeparate(sp)
+  {
+  var face = heap32[sp>>2];sp+=4;
+   var mask = heap32[sp>>2];sp+=4;
+
+   imandreel_gl.stencilMaskSeparate(face,mask);
+  }
+
+  function myglStencilMask(sp)
+  {
+   var mask = heap32[sp>>2];sp+=4;
+
+   imandreel_gl.stencilMask(mask);
+  }
+  function myglStencilOp (sp)
+  {
+   var fail = heap32[sp>>2];sp+=4;
+  var zfail = heap32[sp>>2];sp+=4;
+   var zpass = heap32[sp>>2];sp+=4;
+
+  imandreel_gl.stencilOp(fail, zfail, zpass);
+  }
+
+  function myglStencilOpSeparate (sp)
+  {
+  var face = heap32[sp>>2];sp+=4;
+   var fail = heap32[sp>>2];sp+=4;
+  var zfail = heap32[sp>>2];sp+=4;
+   var zpass = heap32[sp>>2];sp+=4;
+
+  imandreel_gl.stencilOpSeparate(face, fail, zfail, zpass);
+  }
+
+ function myglTexSubImage2D(sp)
+ {
+  var target = heap32[sp>>2];sp+=4;
+  var level = heap32[sp>>2];sp+=4;
+  var xoffset = heap32[sp>>2];sp+=4;
+  var yoffset = heap32[sp>>2];sp+=4;
+  var width = heap32[sp>>2];sp+=4;
+  var height = heap32[sp>>2];sp+=4;
+  var format = heap32[sp>>2];sp+=4;
+  var type = heap32[sp>>2];sp+=4;
+  var data = heap32[sp>>2];sp+=4;
+
+
+
+  	var bufferView;
+   if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1)
+   {
+		bufferView = new Uint16Array(heap,data,width*height);
+	}
+	else if (type == imandreel_gl.UNSIGNED_BYTE)
+	{
+		if (format == imandreel_gl.LUMINANCE)
+			bufferView = new Uint8Array(heap,data,width*height);
+		else if (format == imandreel_gl.RGB)
+			bufferView = new Uint8Array(heap,data,width*height*3);
+		else if (format == imandreel_gl.RGBA)
+			bufferView = new Uint8Array(heap,data,width*height*4);
+		else if (format == imandreel_gl.ALPHA)
+			bufferView = new Uint8Array(heap,data,width*height);
+	}
+
+  imandreel_gl.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, bufferView);
+ }
+
+
+  function myglCreateBuffer(sp)
+{
+	var id = myglNewSlot();
+	array_ids_ogl[id] = imandreel_gl.createBuffer();
+
+	r_g0 = id;
+}
+
+var glBufferDataArray = [];
+
+function myglBufferData(sp)
+{
+	var target = heapU32[sp>>2]; sp+=4;
+	var size = heapU32[sp>>2]; sp+=4;
+	var data = heapU32[sp>>2]; sp+=4;
+	var usage = heapU32[sp>>2]; sp+=4;
+
+	if (data == 0)
+		imandreel_gl.bufferData(target, size, usage);
+	else
+	{
+		if (usage == imandreel_gl.STATIC_DRAW || true)
+		{
+			var buffer_data = new Int8Array(heap, data, size);
+			imandreel_gl.bufferData(target, buffer_data, usage);
+		}
+		else
+		{
+			var new_size = size/4;
+			var buffer_data = glBufferDataArray[new_size];
+
+			if (buffer_data == null)
+			{
+				buffer_data =  new Int32Array(new_size);
+				glBufferDataArray[new_size] = buffer_data;
+			}
+
+			var new_data = data>>2;
+
+			for ( var i = 0 ; i < new_size ; ++i )
+			{
+				buffer_data[i] = heap32[new_data+i];
+			}
+
+			imandreel_gl.bufferData(target, buffer_data, usage);
+		}
+	}
+}
+
+function myglBufferSubData(sp)
+{
+	var target = heapU32[sp>>2]; sp+=4;
+	var offset = heapU32[sp>>2]; sp+=4;
+	var size = heapU32[sp>>2]; sp+=4;
+	var data = heapU32[sp>>2]; sp+=4;
+
+
+	var buffer_data = new Int8Array(heap, data, size);
+	imandreel_gl.bufferSubData(target, offset, buffer_data);
+
+//	dump('buffer sub data ' + offset + ' ' + size + ' ' + data + '\n')
+
+}
+
+
+function myglBindBuffer(sp)
+{
+	var target = heapU32[sp>>2]; sp+=4;
+	var id = heapU32[sp>>2]; sp+=4;
+
+	imandreel_gl.bindBuffer(target, array_ids_ogl[id]);
+}
+
+
+function myglUseProgram(sp)
+{
+	var program_id = heap32[sp>>2];sp+=4;
+
+	g_current_program_id = program_id;
+
+	imandreel_gl.useProgram(array_ids_ogl[program_id]);
+
+}
+
+function myglDisableVertexAttribArray(sp)
+{
+	var idx = heapU32[sp>>2];sp+=4;
+	imandreel_gl.disableVertexAttribArray(idx);
+}
+function myglEnableVertexAttribArray(sp)
+{
+	var idx = heapU32[sp>>2];sp+=4;
+	imandreel_gl.enableVertexAttribArray(idx);
+}
+
+function myglVertexAttribPointer(sp)
+{
+	var idx = heapU32[sp>>2];sp+=4;
+	var size = heapU32[sp>>2];sp+=4;
+	var type = heapU32[sp>>2];sp+=4;
+	var normalized = heapU32[sp>>2];sp+=4;
+	var stride = heapU32[sp>>2];sp+=4;
+	var ptr = heapU32[sp>>2];sp+=4;
+
+	//dump(idx + ' ' + size + ' ' + type + ' ' + normalized + ' ' + stride + ' ' + ptr + '\n');
+
+
+	imandreel_gl.vertexAttribPointer(idx, size, type, normalized, stride, ptr);
+}
+
+function myglPolygonOffset(sp)
+{
+	var factor = heapFloat[sp>>2]; sp+=4;
+	var units = heapFloat[sp>>2]; sp+=4;
+	imandreel_gl.polygonOffset(factor, units);
+}
+
+function myglEnable(sp)
+ {
+	var value = heap32[sp>>2];sp+=4;
+
+	imandreel_gl.enable(value);
+  }
+
+function myglDisable(sp)
+ {
+	var value = heap32[sp>>2];sp+=4;
+
+	imandreel_gl.disable(value);
+  }
+
+  function myglDepthFunc(sp)
+  {
+	var func = heapU32[sp>>2];sp+=4;
+
+	imandreel_gl.depthFunc(func);
+
+  }
+
+  function myglGenerateMipmap(sp)
+  {
+	var texture_type = heap32[sp>>2];sp+=4;
+	imandreel_gl.generateMipmap(texture_type);
+  }
+
+  function myglPixelStorei (sp)
+  {
+	var pname = heap32[sp>>2];sp+=4;
+	var param = heap32[sp>>2];sp+=4;
+	imandreel_gl.pixelStorei(pname,param);
+  }
+
+
+  function myglBindTexture(sp)
+  {
+  var texture_type = heap32[sp>>2];sp+=4;
+  var texture_id = heap32[sp>>2];sp+=4;
+
+if (texture_id == 0)
+{
+	imandreel_gl.bindTexture(texture_type, null);
+}
+else
+{
+	var tex = array_ids_ogl[texture_id];
+	imandreel_gl.bindTexture(texture_type, tex);
+	}
+
+  }
+
+  function myglActiveTexture(sp)
+{
+	var param = heapU32[sp>>2];sp+=4;
+	imandreel_gl.activeTexture(param);
+}
+
+function myglCompileShader(sp)
+{
+	var id = heap32[sp>>2];sp+=4;
+
+	var shader = array_ids_ogl[id];
+
+	imandreel_gl.compileShader(shader);
+}
+
+function myglGetUniformLocation(sp)
+{
+	var program_id = heap32[sp>>2];sp+=4;
+	var ptr_string = heap32[sp>>2];sp+=4;
+
+	var string = get_string_from_ptr(ptr_string);
+	var program = array_ids_ogl[program_id];
+	var result = imandreel_gl.getUniformLocation(program, string);
+
+	if (result != null)
+	{
+		program.array_uniform_locations[program.uniform_locations_current_id] = result;
+		r_g0 = program.uniform_locations_current_id;
+		program.uniform_locations_current_id++;
+	}
+	else
+		r_g0 = -1;
+}
+
+function myglIsEnabled(sp)
+{
+	var cap = heap32[sp>>2];sp+=4;
+
+	r_g0 = imandreel_gl.isEnabled(cap);
+}
+
+
+function myglUniform1i(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var value = heap32[sp>>2];sp+=4;
+
+	var program = array_ids_ogl[g_current_program_id];
+
+	var uniform_value = program.array_uniform_locations[index];
+
+	imandreel_gl.uniform1i(uniform_value, value);
+}
+
+function myglUniform2i(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var x = heap32[sp>>2];sp+=4;
+	var y = heap32[sp>>2];sp+=4;
+
+	var program = array_ids_ogl[g_current_program_id];
+
+	var uniform_value = program.array_uniform_locations[index];
+
+	imandreel_gl.uniform2i(uniform_value, x,y);
+}
+
+function myglUniform3i(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var x = heap32[sp>>2];sp+=4;
+	var y = heap32[sp>>2];sp+=4;
+	var z = heap32[sp>>2];sp+=4;
+
+	var program = array_ids_ogl[g_current_program_id];
+
+	var uniform_value = program.array_uniform_locations[index];
+
+	imandreel_gl.uniform3i(uniform_value, x,y,z);
+}
+
+function myglUniform4i(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var x = heap32[sp>>2];sp+=4;
+	var y = heap32[sp>>2];sp+=4;
+	var z = heap32[sp>>2];sp+=4;
+	var w = heap32[sp>>2];sp+=4;
+
+	var program = array_ids_ogl[g_current_program_id];
+
+	var uniform_value = program.array_uniform_locations[index];
+
+	imandreel_gl.uniform4i(uniform_value, x,y,z,w);
+}
+
+function myglUniform1f(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var value = heapFloat[sp>>2];sp+=4;
+
+	var program = array_ids_ogl[g_current_program_id];
+
+	var uniform_value = program.array_uniform_locations[index];
+
+	imandreel_gl.uniform1f(uniform_value, value);
+}
+
+function myglUniform3f(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var x = heapFloat[sp>>2];sp+=4;
+	var y = heapFloat[sp>>2];sp+=4;
+	var z = heapFloat[sp>>2];sp+=4;
+
+	var program = array_ids_ogl[g_current_program_id];
+
+	var uniform_value = program.array_uniform_locations[index];
+
+	imandreel_gl.uniform3f(uniform_value, x,y,z);
+}
+
+function myglUniform2f(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var x = heapFloat[sp>>2];sp+=4;
+	var y = heapFloat[sp>>2];sp+=4;
+
+	var program = array_ids_ogl[g_current_program_id];
+
+	var uniform_value = program.array_uniform_locations[index];
+
+	imandreel_gl.uniform2f(uniform_value, x,y);
+}
+
+
+function myglUniform4f(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var x = heapFloat[sp>>2];sp+=4;
+	var y = heapFloat[sp>>2];sp+=4;
+	var z = heapFloat[sp>>2];sp+=4;
+	var w = heapFloat[sp>>2];sp+=4;
+
+	var program = array_ids_ogl[g_current_program_id];
+	var uniform_value = program.array_uniform_locations[index];
+
+	imandreel_gl.uniform4f(uniform_value, x,y,z,w);
+}
+
+function myglUniform1fv(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var count = heap32[sp>>2];sp+=4;
+	var data = heap32[sp>>2];sp+=4;
+
+	var new_data = data>>2;
+	var new_count = count;
+	var bufferView = new Float32Array(new_count);
+
+	for ( var i = 0 ; i < new_count ; ++i )
+	{
+		bufferView[i] = heapFloat[new_data+i];
+	}
+
+	var program = array_ids_ogl[g_current_program_id];
+	var uniform_value = program.array_uniform_locations[index];
+	imandreel_gl.uniform1fv(uniform_value, bufferView);
+
+
+}
+
+function myglUniform1iv(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var count = heap32[sp>>2];sp+=4;
+	var data = heap32[sp>>2];sp+=4;
+
+	var new_data = data>>2;
+	var new_count = count;
+	var bufferView = new Int32Array(new_count);
+
+	for ( var i = 0 ; i < new_count ; ++i )
+	{
+		bufferView[i] = heap32[new_data+i];
+	}
+
+	var program = array_ids_ogl[g_current_program_id];
+	var uniform_value = program.array_uniform_locations[index];
+	imandreel_gl.uniform1iv(uniform_value, bufferView);
+}
+
+function myglUniform2iv(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var count = heap32[sp>>2];sp+=4;
+	var data = heap32[sp>>2];sp+=4;
+
+	var new_data = data>>2;
+	var new_count = count*2;
+	var bufferView = new Int32Array(new_count);
+
+	for ( var i = 0 ; i < new_count ; ++i )
+	{
+		bufferView[i] = heap32[new_data+i];
+	}
+
+	var program = array_ids_ogl[g_current_program_id];
+	var uniform_value = program.array_uniform_locations[index];
+	imandreel_gl.uniform2iv(uniform_value, bufferView);
+}
+
+function myglUniform3iv(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var count = heap32[sp>>2];sp+=4;
+	var data = heap32[sp>>2];sp+=4;
+
+	var new_data = data>>2;
+	var new_count = count*3;
+	var bufferView = new Int32Array(new_count);
+
+	for ( var i = 0 ; i < new_count ; ++i )
+	{
+		bufferView[i] = heap32[new_data+i];
+	}
+
+	var program = array_ids_ogl[g_current_program_id];
+	var uniform_value = program.array_uniform_locations[index];
+	imandreel_gl.uniform3iv(uniform_value, bufferView);
+}
+
+function myglUniform4iv(sp)
+{
+	var index = heap32[sp>>2];sp+=4;
+	var count = heap32[sp>>2];sp+=4;
+	var data = heap32[sp>>2];sp+=4;
+
+	var new_data = data>>2;
+	var new_count = count*4;
+	var bufferView = new Int32Array(new_count);
+
+	for ( var i = 0 ; i < new_count ; ++i )
+	{
+		bufferView[i] = heap32[new_data+i];
+	}
+
+	var program = array_ids_ogl[g_current_program_id];
+	var uniform_value = program.array_uniform_locations[index];
+	imandreel_gl.uniform4iv(uniform_value, bufferView);
+}
+
+
+
+function myglUniform3fv(sp)
+{
+	myglCreateUniformArrays();
+
+	var index = heap32[sp>>2];sp+=4;
+	var count = heap32[sp>>2];sp+=4;
+	var data = heap32[sp>>2];sp+=4;
+
+	var new_data = data>>2;
+	var new_count = count*3;
+	var bufferView = uniformArrays3[count];
+
+	for ( var i = 0 ; i < new_count ; ++i )
+	{
+		bufferView[i] = heapFloat[new_data+i];
+	}
+
+	var program = array_ids_ogl[g_current_program_id];
+	var uniform_value = program.array_uniform_locations[index];
+	imandreel_gl.uniform3fv(uniform_value, bufferView);
+}
+
+function myglUniform2fv(sp)
+{
+	myglCreateUniformArrays();
+
+    var index = heap32[sp >> 2]; sp += 4;
+    var count = heap32[sp >> 2]; sp += 4;
+    var data = heap32[sp >> 2]; sp += 4;
+
+	var new_data = data>>2;
+	var new_count = count*2;
+	var bufferView = uniformArrays2[count];
+
+	for ( var i = 0 ; i < new_count ; ++i )
+	{
+		bufferView[i] = heapFloat[new_data+i];
+	}
+
+
+	var program = array_ids_ogl[g_current_program_id];
+    var uniform_value = program.array_uniform_locations[index];
+    imandreel_gl.uniform2fv(uniform_value, bufferView);
+}
+
+
+function myglUniform4fv(sp)
+{
+	myglCreateUniformArrays();
+
+	var index = heap32[sp>>2];sp+=4;
+	var count = heap32[sp>>2];sp+=4;
+	var data = heap32[sp>>2];sp+=4;
+
+
+	var new_data = data>>2;
+	var new_count = count*4;
+	var bufferView = uniformArrays4[count];
+
+	for ( var i = 0 ; i < new_count ; ++i )
+	{
+		bufferView[i] = heapFloat[new_data+i];
+	}
+
+
+	var program = array_ids_ogl[g_current_program_id];
+	var uniform_value = program.array_uniform_locations[index];
+	imandreel_gl.uniform4fv(uniform_value, bufferView);
+}
+
+
+function myglUniformMatrix4fv(sp)
+{
+	myglCreateUniformArrays();
+
+	var index = heap32[sp>>2];sp+=4;
+	var count = heap32[sp>>2];sp+=4;
+	var transpose = heap32[sp>>2];sp+=4;
+	var ptr = heap32[sp>>2];sp+=4;
+
+	var program = array_ids_ogl[g_current_program_id];
+	var uniform_value = program.array_uniform_locations[index];
+
+	//var buffer_data = new Float32Array(heap, ptr, count*16);
+	for ( var i = 0 ; i < count*16 ; ++i )
+	{
+		uniformArrays4[count*4][i] = heapFloat[(ptr>>2)+i];
+	}
+
+	//imandreel_gl.uniformMatrix4fv(uniform_value, transpose, buffer_data);
+	//imandreel_gl.uniformMatrix4fv(uniform_value, transpose, heapFloat.subarray(ptr/4,(ptr/4)+(count*16)));
+	imandreel_gl.uniformMatrix4fv(uniform_value, transpose, uniformArrays4[count*4]);
+}
+
+function myglUniformMatrix3fv(sp)
+{
+	myglCreateUniformArrays();
+
+	var index = heap32[sp>>2];sp+=4;
+	var count = heap32[sp>>2];sp+=4;
+	var transpose = heap32[sp>>2];sp+=4;
+	var ptr = heap32[sp>>2];sp+=4;
+
+	var program = array_ids_ogl[g_current_program_id];
+	var uniform_value = program.array_uniform_locations[index];
+
+	//var buffer_data = new Float32Array(heap, ptr, count*9);
+	for ( var i = 0 ; i < count*9 ; ++i )
+	{
+		uniformArrays3[count*3][i] = heapFloat[(ptr>>2)+i];
+	}
+
+	//imandreel_gl.uniformMatrix3fv(uniform_value, transpose, buffer_data);
+	//imandreel_gl.uniformMatrix3fv(uniform_value, transpose, heapFloat.subarray(ptr/4,(ptr/4)+(count*9)));
+	imandreel_gl.uniformMatrix3fv(uniform_value, transpose, uniformArrays3[count*3]);
+}
+
+
+
+function myglValidateProgram(sp)
+{
+	var program_id = heap32[sp>>2];sp+=4;
+
+	imandreel_gl.validateProgram(array_ids_ogl[program_id]);
+}
+
+function myglGetAttribLocation(sp)
+{
+	var program_id = heap32[sp>>2];sp+=4;
+	var ptr_string = heap32[sp>>2];sp+=4;
+
+	var string = get_string_from_ptr(ptr_string);
+	var result = imandreel_gl.getAttribLocation(array_ids_ogl[program_id], string);
+
+	r_g0 = result;
+}
+
+function myglGetProgramInfoLogLength(sp)
+{
+	var program_id = heap32[sp>>2];sp+=4;
+
+	var info_log = imandreel_gl.getProgramInfoLog(array_ids_ogl[program_id]);
+
+	if (info_log)
+		r_g0 = info_log.length+1;
+	else
+		r_g0 = 0;
+}
+
+
+function myglGetProgramInfoLog(sp)
+{
+	var program_id = heap32[sp>>2];sp+=4;
+	var ptr_string = heap32[sp>>2];sp+=4;
+
+	var info_log = imandreel_gl.getProgramInfoLog(array_ids_ogl[program_id]);
+
+	fill_ptr_from_string(ptr_string, info_log);
+}
+
+function myglGetShaderInfoLogLength(sp)
+{
+	var program_id = heap32[sp>>2];sp+=4;
+
+	var info_log = imandreel_gl.getShaderInfoLog(array_ids_ogl[program_id]);
+
+	if (info_log)
+		r_g0 = info_log.length+1;
+	else
+		r_g0 = 0;
+}
+
+function myglGetShaderInfoLog(sp)
+{
+	var program_id = heap32[sp>>2];sp+=4;
+	var ptr_string = heap32[sp>>2];sp+=4;
+
+	var info_log = imandreel_gl.getShaderInfoLog(array_ids_ogl[program_id]);
+
+	fill_ptr_from_string(ptr_string, info_log);
+}
+
+function myglViewport(sp) {
+    var x = heap32[sp >> 2]; sp += 4;
+    var y = heap32[sp >> 2]; sp += 4;
+    var width = heap32[sp >> 2]; sp += 4;
+    var height = heap32[sp >> 2]; sp += 4;
+
+    imandreel_gl.viewport(x,y,width,height);
+
+}
+
+function myglScissor(sp)
+{
+    var x = heap32[sp >> 2]; sp += 4;
+    var y = heap32[sp >> 2]; sp += 4;
+    var width = heap32[sp >> 2]; sp += 4;
+    var height = heap32[sp >> 2]; sp += 4;
+
+    imandreel_gl.scissor(x,y,width,height);
+}
+
+
+
+function myglClearColor(sp)
+{
+  var r = heapFloat[sp>>2];sp+=4;
+  var g = heapFloat[sp>>2];sp+=4;
+  var b = heapFloat[sp>>2];sp+=4;
+  var a = heapFloat[sp>>2];sp+=4;
+
+  imandreel_gl.clearColor(r,g,b,a);
+
+
+}
+
+function myglClearStencil(sp)
+{
+	var stencil = heap32[sp>>2];sp+=4;
+	imandreel_gl.clearStencil(stencil);
+}
+
+
+function myglClearDepthf(sp)
+{
+	var depth = heapFloat[sp>>2];sp+=4;
+	imandreel_gl.clearDepth(depth);
+}
+
+function myglClear(sp)
+  {
+  var mask = heap32[sp>>2];sp+=4;
+
+
+  //dump('clear ' + mask + '\n');
+	if (mandreel_draw_enable)
+		imandreel_gl.clear(mask);
+  }
+
+  function myglGetError(sp)
+  {
+//	r_g0 = imandreel_gl.getError();
+	r_g0 = 0;
+  }
+
+  function myglGetProgramParameter(sp)
+  {
+	var program_id = heap32[sp>>2];sp+=4;
+	var pname = heap32[sp>>2];sp+=4;
+
+	r_g0 = imandreel_gl.getProgramParameter(array_ids_ogl[program_id], pname);
+  }
+
+  function myglGetActiveAttrib (sp)
+  {
+	var program_id = heap32[sp>>2];sp+=4;
+	var index = heap32[sp>>2];sp+=4;
+	var ptr = heap32[sp>>2];sp+=4;
+
+	 var result = imandreel_gl.getActiveAttrib(array_ids_ogl[program_id], index);
+
+	 if (result != null)
+	 {
+		heap32[(ptr)>>2] = result.size;
+		heap32[(ptr+4)>>2] = result.type;
+		fill_ptr_from_string(ptr+8, result.name);
+		r_g0 = 0;
+	}
+	else
+	   r_g0 = 1;
+  }
+
+    function myglGetActiveUniform (sp)
+  {
+	var program_id = heap32[sp>>2];sp+=4;
+	var index = heap32[sp>>2];sp+=4;
+	var ptr = heap32[sp>>2];sp+=4;
+
+	 var result = imandreel_gl.getActiveUniform(array_ids_ogl[program_id], index);
+
+	 if (result != null)
+	 {
+		heap32[(ptr)>>2] = result.size;
+		heap32[(ptr+4)>>2] = result.type;
+		fill_ptr_from_string(ptr+8, result.name);
+		r_g0 = 0;
+	}
+	else
+	   r_g0 = 1;
+  }
+
+  function myglTexParameterf (sp)
+  {
+	var target = heap32[sp>>2];sp+=4;
+	var pname = heap32[sp>>2];sp+=4;
+	var value = heapFloat[sp>>2];sp+=4;
+
+	imandreel_gl.texParameterf(target,pname,value);
+}
+
+function myglTexParameteri (sp)
+  {
+	var target = heap32[sp>>2];sp+=4;
+	var pname = heap32[sp>>2];sp+=4;
+	var value = heap32[sp>>2];sp+=4;
+
+	imandreel_gl.texParameteri(target,pname,value);
+}
+
+function myglCullFace (sp)
+ {
+	var mode = heap32[sp>>2];sp+=4;
+	imandreel_gl.cullFace(mode);
+ }
+
+ function myglDepthMask (sp)
+ {
+	var flag = heap32[sp>>2];sp+=4;
+	imandreel_gl.depthMask(flag);
+ }
+
+ function myglDepthRangef (sp)
+ {
+	var zNear = heapFloat[sp>>2];sp+=4;
+	var zFar = heapFloat[sp>>2];sp+=4;
+	imandreel_gl.depthRange(zNear, zFar);
+ }
+
+function myglFrontFace (sp)
+ {
+	var mode = heap32[sp>>2];sp+=4;
+	imandreel_gl.frontFace(mode);
+ }
+
+ function myglBlendFunc (sp)
+ {
+	var sfactor = heap32[sp>>2];sp+=4;
+	var dfactor = heap32[sp>>2];sp+=4;
+	imandreel_gl.blendFunc(sfactor,dfactor);
+ }
+
+ function myglBlendColor(sp)
+ {
+	var red = heapFloat[sp>>2];sp+=4;
+	var green = heapFloat[sp>>2];sp+=4;
+	var blue = heapFloat[sp>>2];sp+=4;
+	var alpha = heapFloat[sp>>2];sp+=4;
+	imandreel_gl.blendColor(red,green,blue,alpha);
+ }
+
+ function myglBlendEquation(sp)
+ {
+	var mode = heap32[sp>>2];sp+=4;
+	imandreel_gl.blendEquation(mode);
+ }
+
+ function myglBlendEquationSeparate(sp)
+ {
+	var modeRGB = heap32[sp>>2];sp+=4;
+	var modeAlpha = heap32[sp>>2];sp+=4;
+	imandreel_gl.blendEquationSeparate(modeRGB,modeAlpha);
+ }
+
+ function myglBlendFuncSeparate(sp)
+ {
+	var srcRGB = heap32[sp>>2];sp+=4;
+	var dstRGB = heap32[sp>>2];sp+=4;
+	var srcAlpha = heap32[sp>>2];sp+=4;
+	var dstAlpha = heap32[sp>>2];sp+=4;
+
+	imandreel_gl.blendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha);
+ }
+
+
+ function myglColorMask (sp)
+ {
+	var red = heap32[sp>>2];sp+=4;
+	var green = heap32[sp>>2];sp+=4;
+	var blue = heap32[sp>>2];sp+=4;
+	var alpha = heap32[sp>>2];sp+=4;
+	imandreel_gl.colorMask(red,green,blue,alpha);
+ }
+
+ function removeByElement(arrayName,arrayElement)
+ {
+    for(var i=0; i<arrayName.length;i++ )
+     {
+        if(arrayName[i]==arrayElement)
+		{
+            arrayName.splice(i,1);
+			return;
+		}
+      }
+  }
+
+
+ function mygetParameter(sp)
+ {
+	var pname = heap32[sp>>2];sp+=4;
+	r_g0 = imandreel_gl.getParameter(pname);
+ }
+
+
+ function mygetProgramParameter(sp)
+ {
+ 	var program_id = heap32[sp>>2];sp+=4;
+	var pname = heap32[sp>>2];sp+=4;
+	r_g0 = imandreel_gl.getProgramParameter(array_ids_ogl[program_id], pname);
+ }
+
+ function mygetShaderParameter(sp)
+ {
+ 	var shader_id = heap32[sp>>2];sp+=4;
+	var pname = heap32[sp>>2];sp+=4;
+	r_g0 = imandreel_gl.getShaderParameter(array_ids_ogl[shader_id], pname);
+ }
+
+ function myglVertexAttrib1f(sp)
+ {
+	var index = heap32[sp>>2];sp+=4;
+	var x = heapFloat[sp>>2];sp+=4;
+	imandreel_gl.vertexAttrib1f(index,x);
+ }
+
+  function myglVertexAttrib2f(sp)
+ {
+	var index = heap32[sp>>2];sp+=4;
+	var x = heapFloat[sp>>2];sp+=4;
+	var y = heapFloat[sp>>2];sp+=4;
+	imandreel_gl.vertexAttrib2f(index,x,y);
+ }
+
+  function myglVertexAttrib3f(sp)
+ {
+	var index = heap32[sp>>2];sp+=4;
+	var x = heapFloat[sp>>2];sp+=4;
+	var y = heapFloat[sp>>2];sp+=4;
+	var z = heapFloat[sp>>2];sp+=4;
+	imandreel_gl.vertexAttrib3f(index,x,y,z);
+ }
+
+  function myglVertexAttrib4f(sp)
+ {
+	var index = heap32[sp>>2];sp+=4;
+	var x = heapFloat[sp>>2];sp+=4;
+	var y = heapFloat[sp>>2];sp+=4;
+	var z = heapFloat[sp>>2];sp+=4;
+	var w = heapFloat[sp>>2];sp+=4;
+	imandreel_gl.vertexAttrib4f(index,x,y,z,w);
+ }
+
+ function myglVertexAttrib1fv(sp)
+ {
+	var index = heap32[sp>>2];sp+=4;
+	var ptr = heap32[sp>>2];sp+=4;
+	var x = heap32[ptr>>2];ptr+=4;
+	imandreel_gl.vertexAttrib1f(index,x);
+ }
+
+ function myglVertexAttrib2fv(sp)
+ {
+	var index = heap32[sp>>2];sp+=4;
+	var ptr = heap32[sp>>2];sp+=4;
+	var x = heap32[ptr>>2];ptr+=4;
+	var y = heap32[ptr>>2];ptr+=4;
+
+	imandreel_gl.vertexAttrib2f(index,x,y);
+ }
+
+ function myglVertexAttrib3fv(sp)
+ {
+	var index = heap32[sp>>2];sp+=4;
+	var ptr = heap32[sp>>2];sp+=4;
+	var x = heap32[ptr>>2];ptr+=4;
+	var y = heap32[ptr>>2];ptr+=4;
+	var z = heap32[ptr>>2];ptr+=4;
+
+	imandreel_gl.vertexAttrib3f(index,x,y,z);
+ }
+
+ function myglVertexAttrib4fv(sp)
+ {
+	var index = heap32[sp>>2];sp+=4;
+	var ptr = heap32[sp>>2];sp+=4;
+	var x = heap32[ptr>>2];ptr+=4;
+	var y = heap32[ptr>>2];ptr+=4;
+	var z = heap32[ptr>>2];ptr+=4;
+	var w = heap32[ptr>>2];ptr+=4;
+
+	imandreel_gl.vertexAttrib4f(index,x,y,z,w);
+ }
+
+
+ function myglDeleteTexture (sp)
+ {
+
+	var texture_id = heap32[sp>>2];sp+=4;
+
+	var texture = array_ids_ogl[texture_id];
+
+	imandreel_gl.deleteTexture(texture);
+
+	array_ids_ogl[texture_id] = null;
+
+	myglFreeSlot(texture_id);
+ }
+
+ function myglDeleteBuffer (sp)
+ {
+
+	var buffer_id = heap32[sp>>2];sp+=4;
+
+	var buffer = array_ids_ogl[buffer_id];
+
+	imandreel_gl.deleteBuffer(buffer);
+
+	array_ids_ogl[buffer_id] = null;
+
+	myglFreeSlot(buffer_id);
+ }
+
+ function myglDeleteFrameBuffer (sp)
+ {
+	var framebuffer_id = heap32[sp>>2];sp+=4;
+
+	var framebuffer = array_ids_ogl[framebuffer_id];
+
+	imandreel_gl.deleteFramebuffer(framebuffer);
+
+	array_ids_ogl[framebuffer_id] = null;
+
+	myglFreeSlot(framebuffer_id);
+ }
+
+
+ function myglDeleteProgram (sp)
+ {
+	var program_id = heap32[sp>>2];sp+=4;
+
+	var program = array_ids_ogl[program_id];
+
+	imandreel_gl.deleteProgram(program);
+
+	array_ids_ogl[program_id] = null;
+
+	myglFreeSlot(program_id);
+ }
+
+ function myglDeleteRenderBuffer (sp)
+ {
+	var renderbuffer_id = heap32[sp>>2];sp+=4;
+
+	var renderbuffer = array_ids_ogl[renderbuffer_id];
+
+	imandreel_gl.deleteRenderbuffer(renderbuffer);
+
+	array_ids_ogl[renderbuffer_id] = null;
+
+	myglFreeSlot(renderbuffer_id);
+ }
+
+ function myglDeleteShader (sp)
+ {
+	var shader_id = heap32[sp>>2];sp+=4;
+
+	var shader = array_ids_ogl[shader_id];
+
+	imandreel_gl.deleteShader(shader);
+
+	array_ids_ogl[shader_id] = null;
+
+	myglFreeSlot(shader_id);
+ }
+
+ function myglInit(sp)
+ {
+
+	for (var i=0;i<max_ogl_id;++i)
+	{
+		array_ids_ogl_enable.push(i+1);
+	}
+ }
+
+ function myglReadPixels(sp)
+ {
+  var x = heap32[sp>>2];sp+=4;
+  var y = heap32[sp>>2];sp+=4;
+  var width = heap32[sp>>2];sp+=4;
+  var height = heap32[sp>>2];sp+=4;
+  var format = heap32[sp>>2];sp+=4;
+  var type = heap32[sp>>2];sp+=4;
+  var pixels = heap32[sp>>2];sp+=4;
+
+	var bufferView = new Uint8Array(heap,pixels,width*height*4);
+  imandreel_gl.readPixels(x,y,width,height,format,type,bufferView);
+}
+
+function mandreel_internal_DrawSprite(sp)
+{
+	if ( imandreel_ctx_canvas == null )
+	{
+		console.log("Mandreel_2D_DrawSprite error: canvas context is null");
+		return;
+	}
+
+	var hw_id = heap32[sp>>2]; sp+=4;
+	var u0 = heapFloat[sp>>2]; sp+=4;
+	var u1 = heapFloat[sp>>2]; sp+=4;
+	var v0 = heapFloat[sp>>2]; sp+=4;
+	var v1 = heapFloat[sp>>2]; sp+=4;
+	//var x = heapFloat[sp>>2]; sp+=4;
+	//var y = heapFloat[sp>>2]; sp+=4;
+	var sx = heapFloat[sp>>2]; sp+=4;
+	var sy = heapFloat[sp>>2]; sp+=4;
+	//var rot = heapFloat[sp>>2]; sp+=4;
+	var m11 = heapFloat[sp>>2]; sp+=4;
+	var m12 = heapFloat[sp>>2]; sp+=4;
+	var m21 = heapFloat[sp>>2]; sp+=4;
+	var m22 = heapFloat[sp>>2]; sp+=4;
+	var tx = heapFloat[sp>>2]; sp+=4;
+	var ty = heapFloat[sp>>2]; sp+=4;
+	var color = heap32[sp>>2]; sp+=4;
+
+	//ctx_canvas.fillStyle="#FF0000";
+	//ctx_canvas.fillRect(tx,ty,sx,sy);
+	var texture = array_ids_ogl[hw_id];
+
+	if ( texture == null )
+	{
+		console.log("Mandreel_2D_DrawSprite error: texture invalid ("+hw_id+") or loading yet...");
+		return;
+	}
+
+	var width = (u1-u0)*texture.width;
+	var height = (v1-v0)*texture.height;
+
+	if (width == 0)
+		return;
+	if (height == 0)
+		return;
+
+	var x_offset = u0*texture.width;
+	var y_offset = v0*texture.height;
+
+	//dump(x_offset + ' ' + y_offset + ' ' + texture.width + ' ' + texture.height + ' ' + x + ' ' +y + ' ' + width + ' ' + height + '\n');
+
+	x_offset = x_offset % texture.width;
+	y_offset = y_offset % texture.height;
+
+	var scale_x, scale_y;
+	if (sx<0)
+		scale_x = -1;
+	else
+		scale_x = 1;
+	if (sy<0)
+		scale_y = -1;
+	else
+		scale_y = 1;
+
+	var simple_draw = false;//scale_x == 1 && scale_y == 1 && rot == 0;
+	var x_pos = (0.5*sx + tx/* + 240*/);
+	var y_pos = (/*320*/ + ((0.5*sy + ty) /*+ 160*/));
+	var new_sx = sx;
+	var new_sy = sy;
+
+	imandreel_ctx_canvas.globalAlpha = (color>>>24)/255;
+
+	if (!simple_draw)
+	{
+		imandreel_ctx_canvas.save()
+		/*ctx_canvas.translate(x_pos + new_sx/2, y_pos + new_sy/2)
+		ctx_canvas.rotate(-rot*Math.PI/180);
+		ctx_canvas.scale(scale_x, scale_y);
+		ctx_canvas.translate(-(x_pos + new_sx/2), -(y_pos + new_sy/2))*/
+		imandreel_ctx_canvas.setTransform(m11,m12,m21,m22,tx,ty);
+	}
+
+	/*if (x_offset<0 || y_offset<0 || (x_offset+width)>texture.width || (y_offset+height)>texture.height)
+	{
+		dump(x_offset + ' ' + y_offset + ' ' + texture.width + ' ' + texture.height + ' ' + x + ' ' +y + ' ' + width + ' ' + height + '\n');
+	}*/
+
+	if (new_sx<0)
+	{
+		x_pos += new_sx;
+		new_sx = -new_sx;
+	}
+	if (new_sy<0)
+	{
+		y_pos += new_sy;
+		new_sy = -new_sy;
+	}
+
+	//ctx_canvas.drawImage(texture,x_offset,y_offset, width, height, x_pos, y_pos , new_sx, new_sy);
+	imandreel_ctx_canvas.drawImage(texture,x_offset,y_offset, width, height, 0,0, 1,1);
+
+	if (!simple_draw)
+		imandreel_ctx_canvas.restore()
+}
+
+function mandreel_internal_UpdateTexture(sp)
+{
+	if ( imandreel_ctx_canvas == null )
+	{
+		console.log("Mandreel_2D_UpdateTexture error: canvas context is null");
+		return;
+	}
+
+	var hw_id = heap32[sp>>2]; sp+=4;
+	var dataptr = heap32[sp>>2]; sp+=4;
+	var width = heap32[sp>>2]; sp+=4;
+	var height = heap32[sp>>2]; sp+=4;
+
+	var imageData = imandreel_ctx_canvas.getImageData(0,0,width,height);
+	var data = imageData.data;
+	for (var y = 0; y < (height*width*4); ++y)
+	{
+		data[y] = heapU8[dataptr + y];
+	}
+	imandreel_ctx_canvas.putImageData(imageData,0,0);
+
+	var dataurl = imandreel_ctx_canvas.canvas.toDataURL();
+
+	var image = new Image();
+	image.onerror = function()
+	{
+		dump('error updating texture '+hw_id+'\n');
+    }
+	image.onload = function()
+	{
+		//dump('texture '+hw_id+' updated\n'+'width '+image.width+' height '+image.height);
+		array_ids_ogl[hw_id] = image;
+	}
+	image.src = dataurl;
+}
+
+function mandreel_internal_WriteFramebuffer(sp)
+{
+	if ( imandreel_ctx_canvas == null )
+	{
+		console.log("Mandreel_2D_UpdateTexture error: canvas context is null");
+		return;
+	}
+
+	var dataptr = heap32[sp>>2]; sp+=4;
+	var width = heap32[sp>>2]; sp+=4;
+	var height = heap32[sp>>2]; sp+=4;
+
+	var imageData = imandreel_ctx_canvas.getImageData(0,0,width,height);
+	if ( imageData != null )
+	{
+		var data = imageData.data;
+		if ( data != null )
+		{
+			var size = (height*width*4);
+			if ( typeof imageData.data.set != "undefined" )
+			{
+				var sub = heapU8.subarray(dataptr,dataptr+size);
+				imageData.data.set(sub);
+			}
+			else
+			{
+				for (var y = 0; y < size; ++y)
+				{
+					data[y] = heapU8[dataptr + y];
+				}
+			}
+
+			imandreel_ctx_canvas.putImageData(imageData,0,0);
+		}
+		else
+		{
+			dump("WriteFramebuffer canvas data null");
+		}
+	}
+	else
+	{
+		dump("WriteFramebuffer canvas imageData null");
+	}
+}
+var mandreel_audio_init = null_mandreel_audio;
+var mandreel_audio_end = null_mandreel_audio;
+var mandreel_audio_update = null_mandreel_audio;
+var mandreel_audio_createBuffer = null_mandreel_audio;
+var mandreel_audio_playChannel = null_mandreel_audio;
+var mandreel_audio_stopChannel = null_mandreel_audio;
+var mandreel_audio_setChannelVolume = null_mandreel_audio;
+var mandreel_audio_setChannelPan = null_mandreel_audio;
+var mandreel_audio_setChannelPitch = null_mandreel_audio;
+var mandreel_audio_playMusic = null_mandreel_audio;
+var mandreel_audio_stopMusic = null_mandreel_audio;
+var mandreel_audio_useMusicFunctions = _mandreel_audio_useMusicFunctions;
+var mandreel_audio_checkBuffersPending = null_mandreel_audio;
+var mandreel_audio_setMusicVol = null_mandreel_audio;
+
+var mandreel_audio_startedFunction = 0;
+
+var MandreelAudioDriver = "null";
+
+function mandreel_start_audio(audioServer, audioUrl,startedFunction)
+{
+	mandreel_audio_startedFunction = startedFunction;
+
+	// Check audio driver data availability
+	var webAudioDataAvailable = false;
+	var flashAudioDataAvailable = false;
+	var flashLiteAudioDataAvailable = false;
+	var audiotagsDataAvailable = false;
+	var FatLines = mandreelFatData.split('\n');
+	for ( var i=0;i<FatLines.length;++i )
+	{
+		var params = FatLines[i].split(',');
+		if ( params[0] == "audiodriver" )
+		{
+			var data = params[1];
+			data = data.replace('\r','');
+			if ( data == "webaudio" )
+				webAudioDataAvailable = true;
+			else if ( data == "flash" )
+				flashAudioDataAvailable = true;
+			else if ( data == "flashlite" )
+				flashLiteAudioDataAvailable = true;
+			else if ( data == "audiotag" )
+				audiotagsDataAvailable = true;
+		}
+	}
+
+
+	// Init audio driver
+	{
+		// webaudio
+		if ( webAudioDataAvailable && MandreelAudioDriver == "null" )
+		{
+			try	{ webAudioContext = new webkitAudioContext(); } catch(err) { webAudioContext = 0; }
+			if ( webAudioContext )
+			{
+				wa_MainAudioDriver();
+				MandreelAudioDriver = "webAudio";
+			}
+		}
+		// flash
+		if ( flashAudioDataAvailable && MandreelAudioDriver == "null" )
+		{
+			MandreelAudioDriver = "flash";
+			if ( audioServer == null )
+			{
+				audioServer = "";
+				audioUrl = "";
+			}
+			fl_MainAudioDriver(audioServer,audioUrl);
+		}
+		// flashlite
+		if ( flashLiteAudioDataAvailable && MandreelAudioDriver == "null" )
+		{
+			MandreelAudioDriver = "flashlite";
+			mandreel_flashaudio_lite = true;
+			fl_MainAudioDriver("","");
+		}
+		// audiotags
+		if ( audiotagsDataAvailable && MandreelAudioDriver == "null" )
+		{
+			MandreelAudioDriver = "audiotag";
+			at_MainAudioDriver();
+		}
+		// null
+		if ( MandreelAudioDriver == "null" )
+		{
+			null_MainAudioDriver();
+		}
+	}
+	dump("AudioDriver ("+MandreelAudioDriver+")");
+}
+
+function mandreel_audio_isLogEnabled(sp)
+{
+	r_g0 = 0;
+}
+
+function _mandreel_audio_useMusicFunctions(sp)
+{
+	r_g0 = 0;
+}
+
+function MandreelAudioStarted()
+{
+	setTimeout(mandreel_audio_startedFunction, 10);
+}
+
+
+function mandreel_audio_getAudioDriverName(sp)
+{
+	var name_ptr = heap32[sp>>2];sp+=4;
+	fill_ptr_from_string(name_ptr, MandreelAudioDriver);
+}
+var webAudioUseMusicFunctions = true;
+
+function wa_mandreel_audio_init(sp)
+{
+}
+
+function wa_mandreel_audio_end(sp)
+{
+}
+
+function wa_mandreel_audio_update(sp)
+{
+}
+
+function wa_mandreel_audio_checkBuffersPending(sp)
+{
+	r_g0 = wa_imp_mandreel_audio_checkBuffersPending();
+}
+
+function wa_mandreel_audio_createBuffer(sp)
+{
+	var ptr_fileName = heap32[sp>>2];sp+=4;
+	var maxChannels = heap32[sp>>2];sp+=4;
+	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
+	wa_imp_mandreel_audio_createBuffer(fileName);
+
+	r_g0 = 0;
+}
+
+function wa_mandreel_audio_playChannel(sp)
+{
+	var ptr_fileName = heap32[sp>>2];sp+=4;
+	var channel = heap32[sp>>2];sp+=4;
+	var vol = heapFloat[sp>>2];sp+=4;
+	var loop = heap32[sp>>2];sp+=4;
+	var pitch = heapFloat[sp>>2];sp+=4;
+	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
+	wa_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch);
+	r_g0 = 0;
+}
+
+function wa_mandreel_audio_stopChannel(sp)
+{
+	var ptr_fileName = heap32[sp>>2];sp+=4;
+	var channel = heap32[sp>>2];sp+=4;
+	var index = heapFloat[sp>>2];sp+=4;
+	wa_imp_mandreel_audio_stopChannel(channel);
+}
+
+function wa_mandreel_audio_setChannelVolume(sp)
+{
+	var channel = heap32[sp>>2];sp+=4;
+	var vol = heapFloat[sp>>2];sp+=4;
+	wa_imp_mandreel_audio_setChannelVolume(channel,vol);
+}
+
+function wa_mandreel_audio_setChannelPan(sp)
+{
+	var channel = heap32[sp>>2];sp+=4;
+	var pan = heapFloat[sp>>2];sp+=4;
+	wa_imp_mandreel_audio_setChannelPan(channel,pan);
+}
+
+function wa_mandreel_audio_setChannelPitch(sp)
+{
+	var channel = heap32[sp>>2];sp+=4;
+	var pitch = heapFloat[sp>>2];sp+=4;
+	wa_imp_mandreel_audio_setChannelPitch(channel,pitch);
+}
+
+function wa_mandreel_audio_useMusicFunctions(sp)
+{
+	r_g0 = webAudioUseMusicFunctions ? 1 : 0;
+}
+
+function wa_mandreel_audio_playMusic(sp)
+{
+	var ptr_fileName = heap32[sp>>2];sp+=4;
+	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
+	wa_imp_mandreel_audio_playMusic(fileName);
+}
+
+function wa_mandreel_audio_stopMusic(sp)
+{
+	wa_imp_mandreel_audio_stopMusic();
+}
+
+function wa_mandreel_audio_setMusicVol(sp)
+{
+	var vol = heapFloat[sp>>2];sp+=4;
+	wa_imp_mandreel_audio_setMusicVol(vol);
+}
+
+function wa_MainAudioDriver()
+{
+	mandreel_audio_init = wa_mandreel_audio_init;
+	mandreel_audio_end = wa_mandreel_audio_end;
+	mandreel_audio_update = wa_mandreel_audio_update;
+	mandreel_audio_createBuffer = wa_mandreel_audio_createBuffer;
+	mandreel_audio_playChannel = wa_mandreel_audio_playChannel;
+	mandreel_audio_stopChannel = wa_mandreel_audio_stopChannel;
+	mandreel_audio_setChannelVolume = wa_mandreel_audio_setChannelVolume;
+	mandreel_audio_setChannelPan = wa_mandreel_audio_setChannelPan;
+	mandreel_audio_setChannelPitch = wa_mandreel_audio_setChannelPitch;
+	mandreel_audio_useMusicFunctions = wa_mandreel_audio_useMusicFunctions;
+	mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
+	mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
+	mandreel_audio_checkBuffersPending = wa_mandreel_audio_checkBuffersPending;
+	mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;
+
+	setTimeout("mandreel_webAudio_PreloadAssets()", 10);
+}
+
+
+var webAudioBuffers = new Array();
+var webAudioChannels = new Array(32);
+var webAudioGain = new Array(32);
+var webAudioContext = 0;
+
+
+function wa_initWebAudio()
+{
+	if ( preCreatedWebAudioContext != null )
+	{
+		webAudioContext = preCreatedWebAudioContext;
+	}
+	else
+	{
+		try	{ webAudioContext = new webkitAudioContext(); } catch(err) { webAudioContext = 0; }
+	}
+}
+
+function wa_imp_callfunction(params)
+{
+	if ( params[0] == "#MandreelAudio" )
+	{
+		if ( params[1] == "playChannel" )
+			wa_imp_mandreel_audio_playChannel(params[2],params[3],params[4],params[5],params[6],params[7]);
+		else if ( params[1] == "stopChannel" )
+			wa_imp_mandreel_audio_stopChannel(params[2]);
+		else if ( params[1] == "setChannelVol" )
+			wa_imp_mandreel_audio_setChannelVol(params[2],params[3]);
+		else if ( params[1] == "setChannelPan" )
+			wa_imp_mandreel_audio_setChannelPan(params[2],params[3]);
+		else if ( params[1] == "playMusic" )
+			wa_imp_mandreel_audio_playMusic(params[2]);
+		else if ( params[1] == "stopMusic" )
+			wa_imp_mandreel_audio_stopMusic(params[2]);
+		else if ( params[1] == "setMusicVol" )
+			wa_imp_mandreel_audio_setMusicVol(params[2]);
+
+		return true;
+	}
+	return false;
+}
+
+function wa_getFileNameNoExt(fileName)
+{
+	var fileNameNoExt = fileName.toLowerCase();
+	var indexDot = fileNameNoExt.lastIndexOf('.');
+	if ( indexDot != -1 )
+		fileNameNoExt = fileNameNoExt.substr(0,indexDot);
+	fileNameNoExt = fileNameNoExt.replace(/\\/g,"/");
+	if ( fileNameNoExt.length > 0 )
+	{
+		if ( fileNameNoExt.charAt(0) == "/" )
+		{
+			if (fileNameNoExt.length > 1 )
+				fileNameNoExt = fileNameNoExt.substr(1,fileNameNoExt.length-1);
+			else
+				fileNameNoExt = "";
+		}
+	}
+	return fileNameNoExt;
+}
+
+var wa_mandreel_cache_audio_files = false;
+var wa_mandreel_cache_audio_files_path = '';
+
+function mandreel_webAudio_reloadfile(fileName,callback)
+{
+	var fileNameNoExt = wa_getFileNameNoExt(fileName);
+	var url = wa_mandreel_cache_audio_files_path+fileNameNoExt+".ogg";
+	dump("webAudio: loading buffer ("+fileName+") url("+url+")");
+	var request = new XMLHttpRequest();
+	request.open("GET", url, true);
+	request.responseType = "arraybuffer";
+	request.onreadystatechange = function()
+	{
+		if (request.readyState == 4)
+		{
+
+			if (request.status == 404) callback(null);
+
+			callback(request.response);
+
+		}
+	}
+	request.send();
+}
+
+Mandreel_window.BlobBuilder = Mandreel_window.MozBlobBuilder || Mandreel_window.WebKitBlobBuilder || Mandreel_window.BlobBuilder;
+
+function mandreel_webaudio_saveFile(name, my_arrayBuffer)
+{
+	dump('mandreel_webaudio_saveFile ' + name);
+	g_mandreel_fs.root.getFile(name, {create: true}, function(fileEntry) {
+
+    // Create a FileWriter object for our FileEntry (log.txt).
+    fileEntry.createWriter(function(fileWriter) {
+
+      fileWriter.onwriteend = function(e) {
+        dump('Write completed.');
+      };
+
+      fileWriter.onerror = function(e) {
+        dump('Write failed: ' + e.toString());
+      };
+
+	  var bb = new Mandreel_window.BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
+      bb.append(my_arrayBuffer);
+      fileWriter.write(bb.getBlob('text/plain'));
+
+
+
+    }, function(e) { dump('error 1 mandreel_webaudio_saveFile ' + name);MandreelFsErrorHandler(e) });
+
+  }, function(e) { dump('error 2 mandreel_webaudio_saveFile ' + name);MandreelFsErrorHandler(e) });
+}
+
+function mandreel_webaudio_loadFile(name, callback, callback2)
+{
+	g_mandreel_fs.root.getFile(name, {}, function(fileEntry) {
+
+	fileEntry.file(function(file) {
+
+		var reader = new FileReader();
+
+
+       reader.onloadend = function(e) {
+
+	   dump('mandreel_fs_loadFile ' + name);
+	   if (this.result.byteLength)
+		callback(this.result);
+	   else
+	   callback2(this.result);
+
+       };
+
+
+	   	reader.readAsArrayBuffer(file);
+
+
+
+	}, function(e) { dump('error 1 webaudio_loadFile ' + name);MandreelFsErrorHandler(e) } );
+
+  }, function(e) { dump('error 2 webaudio_loadFile ' + name);MandreelFsErrorHandler(e) } );
+}
+
+
+function mandreel_webAudio_cacheFile(fileName, callback)
+{
+	if (!g_mandreel_fs)
+	{
+		mandreel_webAudio_reloadfile(fileName, callback);
+
+		return;
+	}
+	fileName = fileName.toLowerCase();
+
+	fileName = fileName.replace(/\\/g,"/");
+
+	if (fileName[0] == '/')
+		fileName = fileName.substring(1);
+
+	dump('chanka name ' + fileName);
+
+	g_mandreel_fs.root.getFile(fileName, {}, function(fileEntry) {
+
+	fileEntry.getMetadata(function(metaData){
+	var my_seconds = metaData.modificationTime.getTime()/1000;
+
+	if (g_mandreel_timestamp_fs>my_seconds)
+	{
+		dump('mandreel_webAudio_cacheFile1 ');
+		fileEntry.remove(function() {
+				mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } );
+			}, function(e) { dump('error 1 mandreel_webAudio_cacheFile ' + fileName);MandreelFsErrorHandler(e); mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } );});
+
+	}
+	else
+	{
+		//alert('mandreel_fscachefile2');
+		dump('mandreel_webAudio_cacheFile2');
+		mandreel_webaudio_loadFile(fileName, function(response) { callback(response);  } ,
+		function() {
+				mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } );
+			}
+		);
+
+
+
+	}
+
+
+		}, function(e) { dump('error 2 mandreel_webAudio_cacheFile ' + fileName);MandreelFsErrorHandler(e) });
+
+
+  }, function(error) {dump('mandreel_webAudio_cacheFile3');	mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); });});
+}
+
+function mandreel_webAudio_queueLoadBuffer(fileName, callback)
+{
+	//dump("mandreel_webAudio_queueLoadBuffer "+fileName);
+	if ( webAudioContext )
+	{
+		var fileNameNoExt = wa_getFileNameNoExt(fileName);
+		var buffer = webAudioBuffers[fileNameNoExt];
+		if ( buffer == null && buffer != "invalid" )
+		{
+			if ( fileNameNoExt != "" )
+			{
+				if (wa_mandreel_cache_audio_files == true)
+				{
+					webAudioBuffers[fileNameNoExt] = "invalid";
+
+					mandreel_webAudio_cacheFile(fileName, function(response) {
+
+						if (callback != null)
+							callback();
+
+						if ( response != null )
+							webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(response, false);
+						else
+							webAudioBuffers[fileNameNoExt] = "invalid";
+					} );
+					return;
+				}
+
+				var url = g_mandreel_working_folder+fileNameNoExt+".ogg";
+				dump("webAudio: loading buffer ("+fileName+") url("+url+")");
+				webAudioBuffers[fileNameNoExt] = "invalid";
+				var request = new XMLHttpRequest();
+				request.open("GET", url, true);
+				request.responseType = "arraybuffer";
+				request.onreadystatechange = function()
+				{
+					if (request.readyState == 4)
+					{
+						if (callback != null)
+							callback();
+
+						if (request.status == 404) return;
+						//dump("webAudio: loaded buffer "+request.status);
+						if ( request.response != null )
+							webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(request.response, false);
+						else
+							webAudioBuffers[fileNameNoExt] = "invalid";
+					}
+				}
+				request.send();
+			}
+			else
+				webAudioBuffers[fileNameNoExt] = "invalid";
+		}
+	}
+}
+
+var webAudioPreloadAudioFiles = new Array();
+var webAudioPreloadBytes = null;
+var webAudioPreloadCurrentFile = 0;
+var webAudioPreloadAsync = false;
+
+function webAudioParsePreloadFile(response)
+{
+	var pos = 4;
+	var bytes = new Uint8Array(response);
+	var i = 0;
+	if ( webAudioPreloadAsync )
+		webAudioPreloadBytes = bytes;
+	while ( pos < bytes.byteLength )
+	{
+		// filename
+		var fileName = "";
+		while ( bytes[pos] != 0 )
+		{
+			fileName += String.fromCharCode(bytes[pos]);
+			pos++;
+		}
+		pos++;
+		// filesize
+		var filesize = bytes[pos] | (bytes[pos+1]<<8) | (bytes[pos+2]<<16) | (bytes[pos+3]<<24);
+		pos += 4;
+
+		// contents
+		var fileNameNoExt = wa_getFileNameNoExt(fileName);
+		if ( webAudioPreloadAsync )
+		{
+			var audioFile =
+			{
+				fileName : fileNameNoExt,
+				fileSize : filesize,
+				position : pos
+			};
+			webAudioPreloadAudioFiles[i] = audioFile;
+		}
+		else
+		{
+			var bufferdata = new Uint8Array(filesize);
+			bufferdata.set(bytes.subarray(pos,pos+filesize));
+			webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(bufferdata.buffer, false);
+			dump("preload audio file ("+fileName+")");
+		}
+
+		pos += filesize;
+		i++;
+	}
+	if ( webAudioPreloadAsync )
+	{
+		dump("started preloading audio files async");
+		setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
+	}
+}
+
+function mandreel_webAudio_preloadNextAudioFile()
+{
+	if ( webAudioPreloadAudioFiles.length > webAudioPreloadCurrentFile )
+	{
+		var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile];
+		if ( audioFile.fileName == null )
+		{
+			webAudioPreloadCurrentFile++;
+			setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
+		}
+		else
+		{
+			var bufferdata = new Uint8Array(audioFile.fileSize);
+			bufferdata.set(webAudioPreloadBytes.subarray(audioFile.position,audioFile.position+audioFile.fileSize));
+			dump("async preload audio file ("+audioFile.fileName+")");
+			webAudioContext.decodeAudioData(bufferdata.buffer,mandreel_webAudio_preloadNextAudioFileOK,mandreel_webAudio_preloadNextAudioFileError);
+		}
+	}
+	else
+	{
+		webAudioPreloadAudioFiles = null;
+		webAudioPreloadBytes = null;
+		dump("finished preloading audio files async");
+	}
+}
+
+function mandreel_webAudio_preloadNextAudioFileOK(audioBuffer)
+{
+	var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile];
+	webAudioPreloadCurrentFile++;
+	if ( audioFile.fileName != null )
+	{
+		webAudioBuffers[audioFile.fileName] = audioBuffer;
+		setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
+	}
+}
+
+function mandreel_webAudio_preloadNextAudioFileError()
+{
+	var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile];
+	webAudioPreloadCurrentFile++;
+	if ( audioFile.fileName != null )
+		dump("FAILED async preload audio file ("+audioFile.fileName+")");
+	setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
+}
+
+function mandreel_webAudio_queueLoadPackedBuffers(fileName, callback)
+{
+	if ( webAudioContext )
+	{
+		// TODO
+		/*if (wa_mandreel_cache_audio_files == true)
+		{
+			webAudioBuffers[fileNameNoExt] = "invalid";
+
+			mandreel_webAudio_cacheFile(fileName, function(response) {
+
+				if (callback != null)
+					callback();
+
+				if ( response != null )
+					webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(response, true);
+				else
+					webAudioBuffers[fileNameNoExt] = "invalid";
+			} );
+			return;
+		}*/
+
+		mandreel_fs_load_binary(fileName, function mandreel_webAudio_queueLoadPackedBuffers_cb(data){
+
+		if (data)
+		{
+			if (callback != null)
+				callback();
+			webAudioParsePreloadFile(data);
+		}
+		else
+		{
+			var url = g_mandreel_working_folder+fileName;
+			dump("webAudio: loading preload buffers ("+fileName+") url("+url+")");
+			var request = new XMLHttpRequest();
+			request.open("GET", url, true);
+			request.responseType = "arraybuffer";
+			var last_loaded_size = 0;
+			request.onreadystatechange = function()
+			{
+				if (request.readyState == 4)
+				{
+					if (callback != null)
+						callback();
+
+					if (request.status == 404)
+						return;
+					if ( request.response != null )
+					{
+						mandreel_fs_saveFile(fileName, request.response);
+						webAudioParsePreloadFile(request.response);
+					}
+				}
+			}
+			request.onprogress = function(e)
+			{
+				var delta_size = e.loaded - last_loaded_size;
+				last_loaded_size = e.loaded;
+
+				imandreel_update_load(delta_size,0);
+
+				var percentage = ((100*e.loaded)/mandreel_total_pogfile_size)|0;
+
+				if (percentage>100)
+					percentage = 100;
+
+				if ( mandreelAppStartStateFunc )
+					mandreelAppStartStateFunc("loadingAudioUpdate",percentage);
+			}
+			request.send();
+		}
+		});
+	}
+}
+
+
+
+var wa_mandreel_audio_buffers_num = 0;
+var wa_mandreel_audio_buffers_loaded = 0;
+
+function wa_imp_mandreel_audio_checkBuffersPending()
+{
+	return wa_mandreel_audio_buffers_num - wa_mandreel_audio_buffers_loaded;
+}
+
+function wa_imp_mandreel_audio_createBuffer(fileName)
+{
+	if ( webAudioContext )
+	{
+		var fileNameNoExt = wa_getFileNameNoExt(fileName);
+		var buffer = webAudioBuffers[fileNameNoExt];
+		if ( buffer == null && buffer != "invalid" )
+		{
+			wa_mandreel_audio_buffers_num++;
+			mandreel_webAudio_queueLoadBuffer(fileName, function () {wa_mandreel_audio_buffers_loaded++;});
+		}
+	}
+}
+
+function wa_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch)
+{
+	if ( webAudioContext )
+	{
+		var fileNameNoExt = wa_getFileNameNoExt(fileName);
+		var buffer = webAudioBuffers[fileNameNoExt];
+		if ( buffer == null || buffer == "invalid" )
+		{
+			if ( webAudioPreloadAudioFiles != null )
+			{
+				var i = 0;
+				while ( i < webAudioPreloadAudioFiles.length )
+				{
+					var audioFile = webAudioPreloadAudioFiles[i];
+					if ( audioFile.fileName == fileNameNoExt )
+					{
+						var bufferdata = new Uint8Array(audioFile.fileSize);
+						bufferdata.set(webAudioPreloadBytes.subarray(audioFile.position,audioFile.position+audioFile.fileSize));
+						webAudioBuffers[audioFile.fileName] = webAudioContext.createBuffer(bufferdata.buffer, false);
+						dump("**** preload audio file ("+audioFile.fileName+"), forced by playChannel");
+						audioFile.fileName = null;
+						i = webAudioPreloadAudioFiles.length;
+					}
+					else
+					{
+						++i;
+					}
+				}
+			}
+		}
+		if ( buffer == null || buffer == "invalid" )
+		{
+			mandreel_webAudio_queueLoadBuffer(fileName);
+			buffer = webAudioBuffers[fileNameNoExt];
+		}
+		if ( buffer != null && buffer != "invalid" )
+		{
+			var chn = webAudioContext.createBufferSource();
+			var gain = webAudioContext.createGainNode();
+			if ( chn && gain )
+			{
+				webAudioChannels[channel] = chn;
+				webAudioGain[channel] = gain;
+				chn.buffer = buffer;
+				chn.connect(gain);
+				gain.connect(webAudioContext.destination);
+				var bLoop = loop != 0;
+				chn.loop = bLoop;
+				gain.gain.value = vol;
+				chn.playbackRate.value = pitch;
+				chn.noteOn(0);
+				//dump("webAudio: PlayChannel "+channel+" "+fileName+" "+vol+" "+bLoop+" "+pitch);
+			}
+		}
+	}
+}
+
+function wa_imp_mandreel_audio_stopChannel(channel)
+{
+	if ( webAudioContext )
+	{
+		var chn = webAudioChannels[channel];
+		if ( chn != null )
+		{
+			//dump("webAudio: StopChannel "+channel);
+			chn.noteOff(0);
+			webAudioChannels[channel] = null;
+			webAudioGain[channel] = null;
+		}
+	}
+}
+
+function wa_imp_mandreel_audio_setChannelVolume(channel,vol)
+{
+	if ( webAudioContext )
+	{
+		var gain = webAudioGain[channel];
+		if ( gain != null )
+			gain.gain.value = vol;
+	}
+}
+
+function wa_imp_mandreel_audio_setChannelPan(channel,pan)
+{
+	if ( webAudioContext )
+	{
+	}
+}
+
+function wa_imp_mandreel_audio_setChannelPitch(channel,pitch)
+{
+	if ( webAudioContext )
+	{
+		var chn = webAudioChannels[channel];
+		if ( chn != null )
+		{
+			chn.playbackRate.value = pitch;
+		}
+	}
+}
+
+var mwebAudioPreloadState = "start";
+//var mwebAudioPreloadRequest = 0;
+var mwebAudioPreloadAssets = 0;
+var mwebAudioCurrentPreloadAsset = 0;
+var mwebAudioAsyncFiles = '';
+var mwebListAudioAsyncFiles ='';
+var mwebListAudioAsyncFilesPos = 0;
+var mwebTotalPreloadingFiles = 0;
+var mwebCurrentPreloadingFiles = 0;
+function mwebCallbackAsync()
+{
+	mwebListAudioAsyncFilesPos++;
+	if ( mwebListAudioAsyncFilesPos >= mwebListAudioAsyncFiles.length )
+	{
+		mwebListAudioAsyncFiles = null;
+		mwebAudioAsyncFiles = null;
+		return;
+	}
+
+	setTimeout("mandreel_webAudio_queueLoadBuffer(mwebListAudioAsyncFiles[mwebListAudioAsyncFilesPos], mwebCallbackAsync);",10);
+}
+
+function mwebCallbackAsyncPreload()
+{
+	mwebCurrentPreloadingFiles++;
+}
+
+function mandreel_webAudio_PreloadAssets()
+{
+	/*if ( mwebAudioPreloadState == "start" )
+	{
+		//dump("webaudio start");
+			mwebAudioPreloadRequest = new XMLHttpRequest();
+			var url = g_mandreel_working_folder+"mandreel.fat.dat";
+			mwebAudioPreloadRequest.open("GET", url, true);
+			mwebAudioPreloadRequest.onreadystatechange = function()
+			{
+				if (mwebAudioPreloadRequest.readyState != 4) return;
+				if ( mwebAudioPreloadRequest.status != 404 && mwebAudioPreloadRequest.response != null )
+					mwebAudioPreloadState = "parseFat";
+				else
+				{
+					mwebAudioPreloadState = "done";
+					dump("error pre-loading audio assets, status("+mwebAudioPreloadRequest.status+")");
+				}
+			}
+			mwebAudioPreloadState = "loadingFat";
+			mwebAudioPreloadRequest.send();
+	}
+	else if ( mwebAudioPreloadState == "parseFat" )*/
+	if ( mwebAudioPreloadState == "start" )
+	{
+		//mwebAudioPreloadAssets = mwebAudioPreloadRequest.response.split('\n');
+		//mwebAudioPreloadRequest = 0;
+		mwebAudioPreloadAssets = mandreelFatData.split('\n');
+		mwebAudioCurrentPreloadAsset = 0;
+		mwebAudioPreloadState = "preloading";
+	}
+	else if ( mwebAudioPreloadState == "preloading" )
+	{
+		//dump("webaudio preloading");
+		var queued = false;
+		while ( !queued && mwebAudioPreloadState != "done" )
+		{
+			if ( mwebAudioCurrentPreloadAsset < mwebAudioPreloadAssets.length )
+			{
+				var params = mwebAudioPreloadAssets[mwebAudioCurrentPreloadAsset].split(',');
+				if ( params[0] == "audiofile" && params[1])
+				{
+					var sync_load = true;
+					if (params[2] && (params[2]&1) == 0)
+						sync_load = false;
+
+					if (sync_load)
+					{
+						mandreel_webAudio_queueLoadBuffer(params[1],mwebCallbackAsyncPreload);
+						mwebTotalPreloadingFiles++;
+						queued = true;
+					}
+
+				}
+				else if ( params[0] == "audiopreloadfile" )
+				{
+					mandreel_webAudio_queueLoadPackedBuffers(params[1],mwebCallbackAsyncPreload);
+					var size_pog_file = parseInt(params[2], 10);
+					mandreel_total_pogfile_size = size_pog_file;
+					mwebTotalPreloadingFiles++;
+					queued = true;
+				}
+				else if ( params[0] == "audiopreloadasync" )
+				{
+					webAudioPreloadAsync = true;
+				}
+				mwebAudioCurrentPreloadAsset++;
+			}
+			else
+				queued = true;
+
+			if ( mwebAudioCurrentPreloadAsset >= mwebAudioPreloadAssets.length )
+			{
+				if (mwebCurrentPreloadingFiles == mwebTotalPreloadingFiles)
+				{
+					mwebAudioPreloadState = "done";
+					mwebAudioPreloadAssets = 0;
+				}
+			}
+		}
+	}
+
+	if ( mwebAudioPreloadState == "done" )
+	{
+		if ( mandreelAppPlatform == "nacl" )
+			setTimeout("MandreelAudioStartedNacl()", 10);
+		else
+			setTimeout("MandreelAudioStarted()", 10);
+	}
+	else
+		setTimeout("mandreel_webAudio_PreloadAssets()", 10);
+}
+
+var wa_mandreelMusicElement = null;
+var wa_mandreelMusicElementFilename = "";
+var wa_mandreelMusicElementVolume = 1.0;
+function wa_imp_mandreel_audio_playMusic(fileName)
+{
+	var fileNameNoExt = wa_getFileNameNoExt(fileName);
+	var fileNameFull = g_mandreel_working_folder + fileNameNoExt + ".ogg";
+
+	if ( wa_mandreelMusicElementFilename != fileNameFull )
+	{
+		wa_imp_mandreel_audio_stopMusic(0);
+		var audio = document.createElement("audio");
+		var type = fileNameFull.slice(fileNameFull.lastIndexOf(".")+1);
+		switch(type){
+			case "mp3" : type = "mpeg"; break;
+			case "ogg" : type = "ogg"; break;
+			case "wav" : type = "wav"; break;
+			default : throw("'" + fileNameFull + "' is not a recognized audio file");
+		}
+
+		// set correct id for lookup, loading method and data types
+		audio.setAttribute("type", "audio/" + type);
+		var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
+		if ( is_chrome )
+			audio.setAttribute("loop", "loop");
+		else
+			audio.addEventListener('ended', function(){this.currentTime = 0;}, false);
+		audio.volume = wa_mandreelMusicElementVolume;
+		audio.setAttribute("autoplay", "true");
+		audio.setAttribute("src", fileNameFull);
+
+
+		// include into list and document
+		document.body.appendChild(audio);
+		wa_mandreelMusicElement = audio;
+		wa_mandreelMusicElementFilename = fileNameFull;
+	}
+}
+
+function wa_imp_mandreel_audio_stopMusic()
+{
+	if ( wa_mandreelMusicElement != null )
+	{
+		document.body.removeChild(wa_mandreelMusicElement);
+		wa_mandreelMusicElement = null;
+		wa_mandreelMusicElementFilename = "";
+	}
+}
+
+function wa_imp_mandreel_audio_setMusicVol(vol)
+{
+	wa_mandreelMusicElementVolume = vol;
+	if ( wa_mandreelMusicElement != null )
+	{
+		wa_mandreelMusicElement.volume = wa_mandreelMusicElementVolume;
+	}
+}
+
+var mandreel_audio_stream_func_ptr = 0;
+function mandreel_audio_stream_process(e)
+{
+	var l = e.outputBuffer.getChannelData(0);
+	var l2 = e.outputBuffer.getChannelData(1);
+	var n = e.outputBuffer.length;
+
+	var offset2 = 0;
+	var inc = 44.1 / 48.0;
+	while ( n > 0 )
+	{
+		var n2 = ((n*inc)|0)/4;
+		if ( n2 > 1024 )
+			n2 = 1024;
+
+		var sp = g_stack_pointer+100*1024;
+		var ptr = g_stack_pointer+200*1024;
+		var _sp = sp>>2;
+		heap32[_sp]=ptr;
+		heap32[_sp+1]=n2*4;
+		__FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp);
+
+		var offset = ptr>>2;
+		var size = n2*4;
+		/*for (var i=0;i<size;++i)
+		{
+			l[i+offset2] = heapFloat[offset+(i*2)];
+			l2[i+offset2] = heapFloat[offset+(i*2)+1];
+		}*/
+		var i = 0;
+		var j = 0;
+		while ( i < size )
+		{
+			l[j+offset2] = heapFloat[offset+((i|0)*2)];
+			l2[j+offset2] = heapFloat[offset+((i|0)*2)+1];
+			i += inc;
+			j++;
+		}
+
+		//offset2 += n2*4;
+		//n -= n2*4;
+		offset2 += j;
+		n -= j;
+	}
+}
+
+function mandreel_Audio_requestSoundData(soundData)
+{
+	var n = soundData.length/2;
+	var offset2 = 0;
+	while ( n > 0 )
+	{
+		var n2 = n;
+		if ( n2 > 1024 )
+			n2 = 1024;
+		var sp = g_stack_pointer+100*1024;
+		var ptr = g_stack_pointer+200*1024;
+		var _sp = sp>>2;
+		heap32[_sp]=ptr;
+		heap32[_sp+1]=n2;
+		__FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp);
+
+		var offset = ptr>>2;
+		var size = n2*2;
+		var buf = heapFloat.subarray(offset,offset+size);
+		soundData.set(buf,offset2);
+		/*for (var i=0; i<size; i++)
+		  soundData[i+offset2] = heapFloat[offset+i];*/
+		offset2 += n2*2;
+		n -= n2;
+	}
+ }
+
+var __Mandreel_Audio_CreateStream_created = false;
+function Mandreel_Audio_CreateStream(sp)
+{
+	if ( !__Mandreel_Audio_CreateStream_created )
+	{
+		if (webAudioContext)
+		{
+			mandreel_audio_stream_func_ptr = heap32[sp>>2];
+			var source =  webAudioContext.createJavaScriptNode(1024*4, 0, 2);
+			source.connect(webAudioContext.destination);
+			source.onaudioprocess = mandreel_audio_stream_process;
+		}
+		else
+		{
+			mandreel_audio_stream_func_ptr = heap32[sp>>2];
+			AudioDataDestination(44100,mandreel_Audio_requestSoundData);
+		}
+		__Mandreel_Audio_CreateStream_created = true;
+	}
+}
+function mandreel_webAudio_dummyStream()
+{
+	var sp = g_stack_pointer+100*1024;
+	var ptr = g_stack_pointer+200*1024;
+	var _sp = sp>>2;
+	heap32[_sp]=ptr;
+	heap32[_sp+1]=4096;
+	__FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp);
+	setTimeout("mandreel_webAudio_dummyStream()",10);
+}
+
+function AudioDataDestination(sampleRate, readFn)
+{
+	// Initialize the audio output.
+	var audio = new Audio();
+	if ( audio.mozSetup == null )
+	{
+		setTimeout("mandreel_webAudio_dummyStream()",10);
+		return;
+	}
+	audio.mozSetup(2, sampleRate);
+
+	var currentWritePosition = 0;
+	var prebufferSize = sampleRate / 2; // buffer 500ms
+	var tail = null, tailPosition;
+
+	// The function called with regular interval to populate
+	// the audio output buffer.
+	setInterval(function() {
+	  var written;
+	  // Check if some data was not written in previous attempts.
+	  if(tail) {
+		written = audio.mozWriteAudio(tail.subarray(tailPosition));
+		currentWritePosition += written;
+		tailPosition += written;
+		if(tailPosition < tail.length) {
+		  // Not all the data was written, saving the tail...
+		  return; // ... and exit the function.
+		}
+		tail = null;
+	  }
+
+	  // Check if we need add some data to the audio output.
+	  var currentPosition = audio.mozCurrentSampleOffset();
+	  var available = currentPosition + prebufferSize - currentWritePosition;
+	  if(available > 0) {
+		// Request some sound data from the callback function.
+		var soundData = new Float32Array(available);
+		readFn(soundData);
+
+		// Writting the data.
+		written = audio.mozWriteAudio(soundData);
+		if(written < soundData.length) {
+		  // Not all the data was written, saving the tail.
+		  tail = soundData;
+		  tailPosition = written;
+		}
+		currentWritePosition += written;
+	  }
+	}, 100);
+}
+var mandreel_flashaudio_server = "";
+var mandreel_flashaudio_lite = false;
+var mandreel_flashaudio_musicaudiotag = true;
+
+function as3Error(str)
+{
+	var params = str.split(' ');
+	if ( params[0] == "createdBuffer" )
+		mandreel_audio_flash_lastBufferCreatedSwf = parseInt(params[1]);
+	dump("as3Log: "+str);
+}
+
+function mandreel_audio_getFlashMovieObject(movieName)
+{
+	if (Mandreel_window.document[movieName])
+	{
+		return Mandreel_window.document[movieName];
+	}
+	if (navigator.appName.indexOf("Microsoft Internet")==-1)
+	{
+		if (document.embeds && document.embeds[movieName])
+			return document.embeds[movieName];
+	}
+	else
+	{
+		return document.getElementById(movieName);
+	}
+}
+
+function mandreel_sendmsg_flash(msg)
+{
+	if ( mandreel_flashaudio_server != "" )
+	{
+		var iframeWin = document.getElementById("ninja-iframe").contentWindow;
+		iframeWin.postMessage(msg,mandreel_flashaudio_server);
+	}
+	else
+	{
+		var flashMovie=mandreel_audio_getFlashMovieObject("FlashDivAudio");
+		if ( flashMovie != null )
+			flashMovie.receiveMessage(msg);
+		else
+			dump("error: flashMovie not found");
+	}
+}
+
+function fl_mandreel_audio_init(sp)
+{
+	mandreel_sendmsg_flash("init "+g_mandreel_working_folder);
+}
+
+function fl_mandreel_audio_end(sp)
+{
+}
+
+function fl_mandreel_audio_update(sp)
+{
+}
+
+function mandreel_flashaudiolite_createBuffer(fileName)
+{
+	mandreel_audio_flash_lastBufferCreated++;
+	mandreel_sendmsg_flash("createBuffer "+wa_getFileNameNoExt(fileName)+" "+mandreel_audio_flash_lastBufferCreated);
+}
+
+var mandreel_audio_flash_lastBufferCreated = 0;
+function fl_mandreel_audio_createBuffer(sp)
+{
+	var ptr_fileName = heap32[sp>>2];sp+=4;
+	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
+	mandreel_flashaudiolite_createBuffer(fileName);
+}
+
+function fl_internal_mandreel_audio_checkBuffersPending()
+{
+	return mandreel_flashaudio_lite && (mandreel_audio_flash_lastBufferCreatedSwf != mandreel_audio_flash_lastBufferCreated);
+}
+
+var mandreel_audio_flash_lastBufferCreatedSwf = 0;
+function fl_mandreel_audio_checkBuffersPending(sp)
+{
+	r_g0 = 0;
+	if ( fl_internal_mandreel_audio_checkBuffersPending() )
+		r_g0 = 1;
+	dump("fl_mandreel_audio_checkBuffersPending ("+r_g0+") ("+mandreel_audio_flash_lastBufferCreatedSwf+") ("+mandreel_audio_flash_lastBufferCreated+")");
+}
+
+
+function fl_mandreel_audio_playChannel(sp)
+{
+	var ptr_fileName = heap32[sp>>2];sp+=4;
+	var channel = heap32[sp>>2];sp+=4;
+	var vol = heapFloat[sp>>2];sp+=4;
+	var loop = heap32[sp>>2];sp+=4;
+	var pitch = heapFloat[sp>>2];sp+=4;
+	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
+	mandreel_sendmsg_flash("playChannel "+fileName+" "+channel+" "+loop+" "+vol+" "+pitch);
+	r_g0 = 0;
+}
+
+function fl_mandreel_audio_stopChannel(sp)
+{
+	var ptr_fileName = heap32[sp>>2];sp+=4;
+	var channel = heap32[sp>>2];sp+=4;
+	var index = heapFloat[sp>>2];sp+=4;
+
+	mandreel_sendmsg_flash("stopChannel "+channel);
+}
+
+function fl_mandreel_audio_setChannelVolume(sp)
+{
+	var channel = heap32[sp>>2];sp+=4;
+	var vol = heapFloat[sp>>2];sp+=4;
+
+	mandreel_sendmsg_flash("setChannelVolume "+channel+" "+vol);
+}
+
+function fl_mandreel_audio_setChannelPan(sp)
+{
+	var channel = heap32[sp>>2];sp+=4;
+	var pan = heapFloat[sp>>2];sp+=4;
+	mandreel_sendmsg_flash("setChannelPan "+channel+" "+pan);
+}
+
+function fl_mandreel_audio_setChannelPitch(sp)
+{
+	var channel = heap32[sp>>2];sp+=4;
+	var pitch = heapFloat[sp>>2];sp+=4;
+	mandreel_sendmsg_flash("setChannelPitch "+channel+" "+pitch);
+}
+
+
+function mandreel_audio_load_flash()
+{
+	var failed = "";
+
+
+	try
+	{
+		var mandreelAudioSwf = g_mandreel_working_folder+"mandreelaudio.swf";
+		if ( mandreel_flashaudio_lite )
+			mandreelAudioSwf = g_mandreel_working_folder+"mandreelaudiolite.swf";
+		var swf = swfobject.createSWF({ data:mandreelAudioSwf, width:"0", height:"0", allowScriptAccess:"always" }, { menu:"false" }, "FlashDivAudio");
+		if ( !swf )
+			failed  = "swfobject.js not avaiable or Unable to open "+mandreelAudioSwf;
+	}
+	catch(err)
+	{
+		failed  = err;
+	}
+
+	if (failed == "" && !swfobject.hasFlashPlayerVersion("9.0.0"))
+		failed = "flash player not found";
+
+	if ( failed != "" )
+	{
+		dump("Failed to create flash audio driver ("+failed+"). Null driver will be used.");
+		MandreelAudioDriver = "null";
+		null_MainAudioDriver();
+	}
+}
+
+function fl_MainAudioDriver(audioServer, audioUrl)
+{
+	mandreel_flashaudio_server = audioServer;
+	if ( mandreel_flashaudio_lite )
+		mandreel_flashaudio_server = "";
+	if ( mandreel_flashaudio_server != "" )
+	{
+		Mandreel_window.addEventListener("message", receiveMessage2, false);
+		var el = document.createElement("iframe");
+		el.setAttribute('id', 'ninja-iframe');
+		el.setAttribute('width', '0');
+		el.setAttribute('height', '0');
+		el.setAttribute('frameborder', '0');
+		document.body.appendChild(el);
+		el.onerror = function(message) { alert(message); };
+		el.setAttribute('src', audioServer+audioUrl+"/MandreelAudio.html");
+		setTimeout("CheckNinjaFrameReady()", 1000);
+	}
+	else
+	{
+		setTimeout("mandreel_audio_load_flash()", 10);
+	}
+}
+var ninjaLoaded = false;
+function CheckNinjaFrameReady()
+{
+	try
+	{
+		mandreel_sendmsg_flash("loadFlash");
+	}
+	catch(err)
+	{
+	}
+	if ( !ninjaLoaded )
+		setTimeout("CheckNinjaFrameReady()", 1000);
+}
+
+function fl_map_mandreel_audio_functions()
+{
+	mandreel_audio_init = fl_mandreel_audio_init;
+	mandreel_audio_end = fl_mandreel_audio_end;
+	mandreel_audio_update = fl_mandreel_audio_update;
+	mandreel_audio_createBuffer = fl_mandreel_audio_createBuffer;
+	mandreel_audio_playChannel = fl_mandreel_audio_playChannel;
+	mandreel_audio_stopChannel = fl_mandreel_audio_stopChannel;
+	mandreel_audio_setChannelVolume = fl_mandreel_audio_setChannelVolume;
+	mandreel_audio_setChannelPan = fl_mandreel_audio_setChannelPan;
+	mandreel_audio_setChannelPitch = fl_mandreel_audio_setChannelPitch;
+	if ( mandreel_flashaudio_musicaudiotag )
+	{
+		mandreel_audio_useMusicFunctions = wa_mandreel_audio_useMusicFunctions;
+		mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
+		mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
+		mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;
+	}
+	else
+		dump("WARNING: flash music functions not supported");
+	mandreel_audio_checkBuffersPending = fl_mandreel_audio_checkBuffersPending;
+}
+
+function receiveMessage2(event)
+{
+	ninjaLoaded = true;
+	fl_map_mandreel_audio_functions();
+	setTimeout("MandreelAudioStarted()", 10);
+}
+
+function mandreel_flashlite_checkPreloadFinished()
+{
+	if ( !fl_internal_mandreel_audio_checkBuffersPending() )
+		MandreelAudioStarted();
+	else
+		setTimeout("mandreel_flashlite_checkPreloadFinished()", 10);
+}
+
+function mandreel_flashlite_startPreload()
+{
+	mandreel_sendmsg_flash("init "+g_mandreel_working_folder);
+	// preload sounds
+	var FatLines = mandreelFatData.split('\n');
+	for ( var i=0;i<FatLines.length;++i )
+	{
+		var params = FatLines[i].replace('\r','').split(',');
+		if ( params[0] == "audiofile" && params[1] )
+		{
+			var sync_load = true;
+			if (params[2] && (params[2]&1) == 0)
+				sync_load = false;
+
+			if (sync_load)
+			{
+
+				mandreel_flashaudiolite_createBuffer(params[1]);
+			}
+		}
+	}
+	setTimeout("mandreel_flashlite_checkPreloadFinished()", 10);
+}
+
+function flashReady()
+{
+	fl_map_mandreel_audio_functions();
+	setTimeout("mandreel_flashlite_startPreload()",10);
+}
+
+function null_mandreel_audio(sp)
+{
+	r_g0 = 0;
+}
+
+function null_MainAudioDriver()
+{
+	mandreel_audio_init = null_mandreel_audio;
+	mandreel_audio_end = null_mandreel_audio;
+	mandreel_audio_update = null_mandreel_audio;
+	mandreel_audio_createBuffer = null_mandreel_audio;
+	mandreel_audio_playChannel = null_mandreel_audio;
+	mandreel_audio_stopChannel = null_mandreel_audio;
+	mandreel_audio_setChannelVolume = null_mandreel_audio;
+	mandreel_audio_setChannelPan = null_mandreel_audio;
+	mandreel_audio_setChannelPitch = null_mandreel_audio;
+	mandreel_audio_useMusicFunctions = wa_mandreel_audio_useMusicFunctions;
+	mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
+	mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
+	mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;
+	setTimeout("MandreelAudioStarted()", 10);
+}
+function at_mandreel_audio_init(sp)
+{
+}
+
+function at_mandreel_audio_end(sp)
+{
+}
+
+function at_mandreel_audio_update(sp)
+{
+	for ( i = 0 ; i < 32 ; ++i )
+	{
+		var end = maudioChannelEnd[i];
+		if ( end != null )
+		{
+			var sound = maudiotagChannels[i];
+			if ( sound != null )
+			{
+				if ( sound.currentTime > end )
+				{
+					sound.pause();
+					maudioChannelEnd[i] = null;
+				}
+			}
+		}
+	}
+}
+
+function at_mandreel_audio_checkBuffersPending(sp)
+{
+	r_g0 = 0;//wa_imp_mandreel_audio_checkBuffersPending();
+}
+
+function at_mandreel_audio_createBuffer(sp)
+{
+	var ptr_fileName = heap32[sp>>2];sp+=4;
+	var maxChannels = heap32[sp>>2];sp+=4;
+	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
+	//wa_imp_mandreel_audio_createBuffer(fileName);
+
+	r_g0 = 0;
+}
+
+function at_mandreel_audio_playChannel(sp)
+{
+	var ptr_fileName = heap32[sp>>2];sp+=4;
+	var channel = heap32[sp>>2];sp+=4;
+	var vol = heapFloat[sp>>2];sp+=4;
+	var loop = heap32[sp>>2];sp+=4;
+	var pitch = heapFloat[sp>>2];sp+=4;
+	var fileName = get_string_from_ptr(ptr_fileName).toLowerCase();
+	at_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch);
+	r_g0 = 0;
+}
+
+function at_mandreel_audio_stopChannel(sp)
+{
+	var ptr_fileName = heap32[sp>>2];sp+=4;
+	var channel = heap32[sp>>2];sp+=4;
+	var index = heapFloat[sp>>2];sp+=4;
+	at_imp_mandreel_audio_stopChannel(channel);
+}
+
+function at_mandreel_audio_setChannelVolume(sp)
+{
+	var channel = heap32[sp>>2];sp+=4;
+	var vol = heapFloat[sp>>2];sp+=4;
+	//wa_imp_mandreel_audio_setChannelVolume(channel,vol);
+}
+
+function at_mandreel_audio_setChannelPan(sp)
+{
+	var channel = heap32[sp>>2];sp+=4;
+	var pan = heapFloat[sp>>2];sp+=4;
+	//wa_imp_mandreel_audio_setChannelPan(channel,pan);
+}
+
+function at_mandreel_audio_setChannelPitch(sp)
+{
+	var channel = heap32[sp>>2];sp+=4;
+	var pitch = heapFloat[sp>>2];sp+=4;
+	//wa_imp_mandreel_audio_setChannelPitch(channel,pitch);
+}
+
+function at_mandreel_audio_useMusicFunctions(sp)
+{
+	r_g0 = 1;
+}
+
+function at_MainAudioDriver()
+{
+	mandreel_audio_init = at_mandreel_audio_init;
+	mandreel_audio_end = at_mandreel_audio_end;
+	mandreel_audio_update = at_mandreel_audio_update;
+	mandreel_audio_createBuffer = at_mandreel_audio_createBuffer;
+	mandreel_audio_playChannel = at_mandreel_audio_playChannel;
+	mandreel_audio_stopChannel = at_mandreel_audio_stopChannel;
+	mandreel_audio_setChannelVolume = at_mandreel_audio_setChannelVolume;
+	mandreel_audio_setChannelPan = at_mandreel_audio_setChannelPan;
+	mandreel_audio_setChannelPitch = at_mandreel_audio_setChannelPitch;
+	mandreel_audio_useMusicFunctions = at_mandreel_audio_useMusicFunctions;
+	mandreel_audio_playMusic = wa_mandreel_audio_playMusic;
+	mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic;
+	mandreel_audio_checkBuffersPending = at_mandreel_audio_checkBuffersPending;
+	mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol;
+
+	setTimeout("mandreel_audiotag_PreloadAssets()", 10);
+}
+
+var maudiotagPreloadState = "start";
+var maudiotagPreloadAssets = 0;
+var maudiotagCurrentPreloadAsset = 0;
+var maudiotagPreloadAsync = false;
+var maudiotagDurations = Array();
+var maudiotagChannelsCreated = 0;
+var maudiotagChannels = Array();
+var maudiotagChannelsLoaded = Array();
+var maudiotagAudioSpriteFound = false;
+var maudiotagAvailableChannels = new Array();
+var maudioSecondsPos = new Array();
+var maudioChannelEnd = new Array();
+
+function mandreel_audiotag_PreloadAssets()
+{
+	if ( maudiotagPreloadState == "start" )
+	{
+		maudiotagPreloadAssets = mandreelFatData.split('\n');
+		maudiotagCurrentPreloadAsset = 0;
+		maudiotagPreloadState = "preloading";
+	}
+	else if ( maudiotagPreloadState == "preloading" )
+	{
+		var queued = false;
+		while ( !queued && maudiotagPreloadState != "done" )
+		{
+			if ( maudiotagCurrentPreloadAsset < maudiotagPreloadAssets.length )
+			{
+				var params = maudiotagPreloadAssets[maudiotagCurrentPreloadAsset].split(',');
+				if ( params[0] == "audiofile" && params[1])
+				{
+					var duration = params[3];
+					var fileNameNoExt = wa_getFileNameNoExt(params[1]);
+					maudiotagDurations[fileNameNoExt] = duration|0;
+					dump("audiotag duration ("+params[1]+") "+duration);
+				}
+				else if ( params[0] == "audiotagfile" )
+				{
+					var type = params[1];
+					var filesize = params[3];
+					var numsounds = params[4];
+					var at = new Audio();
+					if ( !maudiotagAudioSpriteFound && at.canPlayType && at.canPlayType("audio/"+type) != "" )
+					{
+						maudiotagLoadPackFile(params[2],filesize,numsounds,type);
+						maudiotagAudioSpriteFound = true;
+						queued = true;
+					}
+				}
+				else if ( params[0] == "audiopreloadasync" )
+				{
+					maudiotagPreloadAsync = true;
+				}
+				maudiotagCurrentPreloadAsset++;
+			}
+			else
+				queued = true;
+
+			if ( maudiotagCurrentPreloadAsset >= maudiotagPreloadAssets.length )
+			{
+				maudiotagPreloadState = "done";
+				maudiotagPreloadAssets = 0;
+			}
+		}
+	}
+
+	if ( maudiotagPreloadState == "done" )
+	{
+		setTimeout("MandreelAudioStarted()", 10);
+	}
+	else
+		setTimeout("mandreel_audiotag_PreloadAssets()", 10);
+}
+
+function maudiotagLoadPackFile(filename,filesize,numsounds,atype)
+{
+	dump("audiotag packfile ("+filename+") ("+filesize+") ("+numsounds+")");
+	var url = g_mandreel_working_folder+filename;
+	dump("audiotag: loading packed data ("+filename+") url("+url+")");
+	var request = new XMLHttpRequest();
+	request.open("GET", url, true);
+	request.responseType = "arraybuffer";
+	request.onreadystatechange = function()
+	{
+		if (request.readyState == 4)
+		{
+			if (request.status == 404)
+				return;
+			if ( request.response != null )
+				audiotagParsePreloadFile(request.response,numsounds,atype);
+		}
+	}
+	request.send();
+}
+
+function audiotagParsePreloadFile(response,numsounds,atype)
+{
+	var pos = 0;
+	var bytes = new Uint8Array(response);
+	var i = 0;
+	if ( webAudioPreloadAsync )
+		webAudioPreloadBytes = bytes;
+	var secondsPos = 0.0;
+	while ( pos < bytes.byteLength && i < numsounds)
+	{
+		// filename
+		var fileName = "";
+		while ( bytes[pos] != 0 )
+		{
+			fileName += String.fromCharCode(bytes[pos]);
+			pos++;
+		}
+		pos++;
+		// filesize
+		var filesize = bytes[pos] | (bytes[pos+1]<<8) | (bytes[pos+2]<<16) | (bytes[pos+3]<<24);
+		pos += 4;
+		var fileNameNoExt = wa_getFileNameNoExt(fileName);
+		var duration = maudiotagDurations[fileNameNoExt];
+		dump("afile ("+fileName+") duration("+duration+") posseconds("+secondsPos+")");
+		maudioSecondsPos[fileNameNoExt] = secondsPos;
+		secondsPos += duration / 1000.0;
+		secondsPos += 0.25;
+		dump("second "+i+" "+secondsPos);
+
+		i++;
+	}
+
+	// contents
+	var contentSize = bytes.byteLength - pos;
+	var bufferdata = new Uint8Array(contentSize);
+	bufferdata.set(bytes.subarray(pos,pos+contentSize));
+	var ascii = '';
+	for (var i=0; i<bufferdata.length; i++)
+		ascii += String.fromCharCode(bufferdata[i]);
+	var base64 = btoa(ascii);
+	audiotagAudioSprite = "data:audio/"+atype+";base64," + base64;
+
+	if ( webAudioPreloadAsync )
+	{
+		dump("started preloading audio files async");
+		setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
+	}
+
+	audiotagCreateChannel(0);
+}
+
+function audiotagCreateChannel(index)
+{
+	console.log("audiotagCreateChannel "+index);
+	var sound = new Audio();
+	sound.addEventListener("canplaythrough",function()
+	{
+		if ( maudiotagChannelsLoaded[index] == null )
+		{
+			maudiotagChannelsLoaded[index] = sound;
+			maudiotagAvailableChannels.push(sound);
+			console.log("************** loaded channel "+index);
+			if ( index < 8 )
+				setTimeout("audiotagCreateChannel("+index+"+1)", 10);
+		}
+	}, false);
+	sound.addEventListener("error",function()
+	{
+		console.log("************** error loading channel "+index);
+	}, false);
+	//sound.src = "data:audio/mp3;base64,//uQxAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAABFAAA0igAHDBERFhsbHyIiJioqLTE1NTk8PEBEREpPT1JWWlpeYmJmaWltcXF1eXl8gISEh4yMj5OTl5qanqGlpamsrK+ysra5ub3AwMTHysrN0NDU19fa3t7h5Ofn6+7u8vX1+fv7/f8AAAA5TEFNRTMuOThyAqUAAAAALjQAABRAJAXKQgAAQAAANIqLReuqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//uAxAAACgjJYRQhAAN1ru+3N6ADNAEAASM2QkOAABKvqQjEIQjSE+pyEJ/5znoc5znP//QgAAEachCN85/oQDB9QIAg8oCEHAQcXfKBjEAIS4IAgclAQBA5BAMZQEHfgmD4fwf5HQ6HQ6HY7HQ7GQrDQPvZToNx37zcYsbgZnqEkTWnZsm+DxpKLDUMfs3A4zHKdzz8+wAWXmmL1KaHf35z0oOjnISA5pYpJmW9w/woDIDpmTxpDRYGwmDH/rUv97+xaWZ9eZkqAiZl+xsj8pszk1ZtY73/+UhDNvTHmxgMROhU0DBzwRq/MQ1Jbn///l4FEGHFFYIElBkORAUcAEZYRjfrSuiv1rWf6/e///Z8mnLXAgFiMOwakw0OepsaDVS5RdrxqT///////8hys3t58nrFS3lWt6/uXec73+46u0oA4ZEXCYUYY+p6C4/B89FZVEYXJqaW+eGCSYJfJOnpq7WadTtuzhoUjsP/+2DEFQOPrW1oPYMAAecorQmDIaE0qGThDsZRhGCCZyF03ZkXKRPVQEMTdeftOw84ncZ4XR/ZoO3JoyPFVtHePkemlrf5f740VGbMspMynd2NrG/h8//u58dsf2jWLnygUiASkXwFfQAw7MEGiSdlDDj7wJCnkpYu+0iqRU2SIo3RAkznFnYGqMYXMtXGhsYWLKMZzg4NSb1Jepcx7ohTx6PUlnSLHuY4vRK3VtWOymoix0TSesWjbseTdsYnvHf0v/Ks8NI0+O+Ge/Z4xkpZ/1rQS4QMHvMPSieYYfONUp/9VQBOCRaIS9okqeKzDCwz2wA0pok7D0mlEAxaelsP1uRm4hT/+2DEEQOQ5XtkLCRz2h00bImEjjlpio6TEqIL4ikSEeJRY1GhlJzTySOlrtqTXhIeh5vmvJqpiXFikoyd4tXBbGHzyo6hae6OHIxuoRjkJWu+okBoZoEDZvFrFN5LiAyxW9TEnnbyz/H/erAb3Ok2y9BVcOnGOv1kzQEgZxr0spQBWdNNJtvXQak+7mL2yf92oalcRhf0oCLJoWidC+awoNrOuFDy2UYNkk+X1a3VBuuTU604pNtS082afizat2f7nunbfdAnawhbPRmEEk5BKECSI7QPXcneTeHfYcEeUrhB0ReamhSlihEAA2DNS+LCVT8zyyPk7m1ml9iLJT5RfWoABPT/+2DEAYAO0V9oTBhvSckr7ejzDaFQT7CIuu6UuevrnRqQWnrosaeHIHIghzTLiApnBWKBykEGRpeaek5WfbQUGm4HvmEc0Z1cNji/jZ03yrg3dGpBRMPChoDGxkHJHP7VZTvlNkkJWY4SOeaqpKaEcrGeaOZFjmOK2LrMLo3/rolzs58SeHt/wAEwAASk5VsmKoQpfyl60V7xyRN9YRKhDS5djhmMfOuYFuxqX1zVE5QQourDCCMeGIHAIIUbK7yOTsRCQZHMruhiQ6ubRh3gIpxYGwfA+/SXh1Viy23s9cxzoKluDQyU+GSomumKPZMdvcKttEc5lxwsFgJAEElytfKhnMr/+2DEBQANdX9u7CRnyay0L7TDDHyX4Oe3pdCccMm/2jMqn6UihdVNPrGTu/Bj9Q3PQETiWC9S8qqOeSsLMp8BQQRIyZGPw2Ps9eVdSt+n+adikmCZSatTjtnZVhEcMzIoiCjdUztJftuGf+IcKZ/6jZjP+wMK6AwjI62203Lw5K7jYUcvoY0QuV6WVTGpKZEs2rKAmBHBArQ8zhvcKbPnoh/+ikScXJArWnwz0dRH02ADU83GEKXl9LQihFi4CPca2wmlvSyLvlVzdBi6p7pDrF7FQmbwjrv8MptOSnNYpWYKAQQQS3MVRtHIskSAIxmUqsMDbMzsMz+Ni4Ffzvr5Q9yTSQj/+0DEEYAKzMty55higVaSr3RgjgSW/8JJAbI8zlbL/t2+fNvGY4PAb3QOFQvSZoLuDsswgQShTAEXHWaY4JEgipiC1WKKOXUAMGOMtMpJOa0oG2pD4UpRq0awhk4dx07DMuCOEpePVSlwuybfziMR1YtHAB8NLRSswL0EVQk9rzoiPCrQbW4qJDYFc6RPsaskKrp1KS90BHdklWipyRV/jqVF0xGGVFm2s3wcwJl9iheX1CGxlP/7QMQMAAqVAYEklG6xVp4syYMNoFoBztJLiJErk7s7/ft/L6IUjCstJlNDOLTdacOt8LO8N/PmVLTiVF8UbwKJnIRTZHo6OsibDzCcv5F7U1AADT5grCxWpvZNskfeQ3o/g3KD5kMyRY7D1zEBZmvbnG7attnJEJGyJAw8pOUUioM3JxtTvZQhc/Sp7L9/Tzm/5+qHPmMKA6WFTryqnsjHP3SP6HWFqgIAAJJSTcH0nhFugclK//tAxAcBCsyvdUWEsNlDDO1M8wzgFJ121UStsnY5UgwO1jgVbsqChv1zojMpnddXBB27nidTTezt9utjvF2+1xUPI/Ey0X9uwe7XVbfR//+tI+W1Jwmcz9Qs/3b/gABKdodQEmZN1hwSr4WFFECvsmmpI4e5kjZKXVCXwRegXNTUxg4dDjow9OCc3JvDgsMvc5wGhRx59hDPA/QUNrr2R7C9am9r3ukxrJGc7Kal1QAAVJQIJCz/+1DEA4OKwPVoZ6RowUoWbIWGGOqbqsvVUvK6OV7AWklGA+pJ7Gw4ca1RiBPhqRr2HF4D8OjfMtXi5wtOwoXW1rfSEe+r2FCXH82z8zbufoKMwSD5wMGb6nuVm6fP3veVEYrpOCSJeL3jTiPov2HAJG0MZ0b1+4SW3YGG/HkPnllc8HPrdH/9CoZM1r6snzmMxGn6WfXz7ua/X/p9JtRzBsA0rFiibYj1jRSHKg0LOGxUkzv/+PUAAaCx0Aa2HcdVkRWwH1qaQeNn33jQOkWL//tAxAyACrRrZEwwxRFULG2o9JQowvUkzUH+pKox7BX+mE4aMztJ5bLGCZsBgpkiCyRSLBsXDzhAVJLP8zWOEbC735yposneBlNZ5LLMkvt4oAECgJJbu59jTGmHsHaGFNsY/kD7qQjkS5Gs6CBju7XoJK5N3I+7I9OyWVevVHnuOyt1S7dEWR1f+nCLyvIrIdWtQyk0zNejsiWIm2nv0sUa5tj/R1IAEAykii7wAQbhWMVBhxz/+0DEB4AKiG1xRhkAIVcULqTEDGaoGHbV4Xj9pl06dhBFNDriPVZrtHz0y7DhFQmfLAYTGL0HQyhOswFXtn4uJA0TFjbU3vCWHzJNQ6H16rRhY0SNUMvu8KuBRVYWUXCpwnvmKF2V6OCa+4xBi0yfQTXPjLrjfR0XhWBi97JhmvImhlbC3oFngKAZUnElyw0xaUOlzDQQNKBQEQKJGr4dULSJux1q3SRR5mjQH5vA6AEVG2q3I//7UMQDAAqw7YejDE/xTKzvKICLFmnKCn338dXIS04/UQUr/QREYmhCdS0v0iFGhKVEZ56wzPlYRdGK2OxfeuP+zpfdW22X7AwcQH4kFEGy4pdFRj1vNAYRUsESwpLqeBfSnyiAgeqKSJBUBUChJdReku5OStSYuNo3r4iXjboq+YVCuxmhyugjzIlbR6QrpXYXZidV9tqm7bWshCyl2O0zOo+/W/6nptP/7vkzAxrGqYAj+moJOJUFyRySySSOTP0NVxWTey+N2SzvTNz0b8b/+0DEDAAKpPWLowR4cVYiLA2DCbBMcCju992OtVI9P6eYSAVCsPDMOS5/qYpE9HLWGXKebH+uZ/qVBgDDRMNeAQyHBVr7t5hjP6QggRIZ7KcSgAEByF7QCVC1nTXajAXjiGcennLpq54XiiEz19DZx1Plm59L+9rmLfLsxPH7KyXRLuw70Itl/VV2X2foqUR/7XMDU2bUrM3EkDIaOYSKBpTP9ZV//1oAkoCCii5hbhGVWlD7qv/7QMQHAAp1NWtHmEbhOxEsTYSIcHonOiRI/atyhLVmNyqKuPt1Oz76Gal6mWZLiyqnoyNq6Kyu6m1WNuQtqzU6cHFHHKrWDqOjtVddjI/fcLaKfwPFTlN1P1AAFJ2gZJIAs3QJCIrgqJmVig/PNUabt5iyI7shRZgA2H7nc3WVv28thQLlVHCwcuCwFpIhfBNpEyTFVwKbJGzYGkYJM7aECVhL7+o+v/1VAQWYVUbGsl033UaF//tQxAYAixlpcSeMR/FeoexNgwkoEPUwTQlyR7yAARPpSHdyD7JYvBIX0z5UI4YgUFsxWYLzbIiaWa97AyuqJ3S3MO0EIaRilYMioZz1pQhL2mBIyKqshdPulW7ikY3q9aU7uD6oiLejkTgeBpfEaUzIuBnKdXuupcw1NdVCWDPaqb4oh20tXdlkZzXn3dpqsWqrWnroR3vdt7pYyoU45TujlTUUbFaALO3tGLpHzqYmKHCZ87y+yJ3KFD+tJtNOUPnhqUpmVk5ZLRt1j3VhEf/7UMQLAA0JaXlGFG8xoy2t6PMVfk0plEVrRyKjwmm6mKsc0HjnlzGO26EwoVnz0+DmCE21DBxd288LT+w9kdX5V6sDyc2ACBDmp5a1PPdkKhxnyHT73kWrcrrRTigOCjXE4vPR7YeAAWcpIkJQiWt3EpIu7t+a4ce3hRyEvn5xl2TU3YlPLMumKKmM1+Ue06Z3pPGLRhA97OqlEzOVmuwwY8lkbdGPs8utGrUYjkKgwxzOUJHVjiSNrVyvInZEsW3TTVdZGDxRxRRiGyQ5nBv/+2DEAAAOXT9vRiTB8aAs65z0jSgUKtyU0inA/MQ3azBbVKY6QFrPSI1gRdH+4JpZLwkcrK5e58ry6+5Vr35Vq3KoYZRwHtHxzrhGj7mKqzQJrO940WkVMc7wb1LfZz5t6/QzLHPnnzkv7J539vpaVN0Gd0LnaCNB8AsJhYRpvDoSZMpx/QwaAEApN3csIrwaRwHqziRqYl5/MmxEGjceGpD8J3rAwG663CuwpeQ6RhwitkVBK0D75hB7BQOuctyvacP4ouiEi0WZ5E3wZq3ND3NqUUgLRdqvod6DM6X+MnV+UtmIz//+TL+wh7tDfyUAoEKWgEAlAn5a9EkjnLaTPoQFZqr/+2DECoMM+WlcbBkJ4bUiak2UjbiCpVzs2UqxZsbtdrKOUzO+3TPbip6yaP+rhdbH1RFT3E/XeQ6FqhHE33jY+4Z/nnhuP6oIlea+tZaraCO6uri7ipifRUSe0/+q5hv3slTrEfmPoAAALsILTzDf5hsOOwFh2FCEZ6cIqrO0+OJNACEo3Fd0mAMhMja9FGVyBAZ65P6pJN+yykaj53njcXnoUlJIOKPkOExjtkvDIKHVGQ5iz8wyLXaedY5NjHJzhqxgnJWlE6yTnZFI0PVZQHvDKRUJpWOOuSSOWnFDZ9CgfJfVaB+mbSzG9zPSRrNQ+GHqlRLcoDRCoUBq2RX6Zcc2hsf/+0DEGAAMVTF/pIzVsYImq52EmGSh3MGANrxh2JPvBC5sZAlp6+a3yRAZ6gyVeI/u81hNX2Zu+mtTb+UtIbS0qwDhpm63/0AhCJJLgCl0Dk9lNxQXBGzJl1CO06ZcjHWy2XTa2VlRUlpI3906cx2aNZo1859dr/s4hWpy7crXzMb7O3219Zvl3mu2/czfv3t9IApxJKW8k/md5RTZ3/fuzu7dmXgdi3WqCcdktstsku1KCrwzUf/7UMQGgAsVN4WjGGPxXyautGGb1qsjAsRbKxruCj80UsQ2vLwAE/ChFSsEHY/nwb/woievMiDEf6u9p0s+nhXRxZF95k2ZmQAGYJu+Yy0hieg3lP+lsXyAhlELzHYBuKglOJuNNtJOAAgBJ0FqQBBGEZnnUgkZvVdmZ/mtHP3ePxvL1SX78ZTtvaf8ycvXiw+/H/w3/LfI/py9K00o5K38yhcchUr6XtJVvdxWdzlp9yZ1qDAcTfPVAABYlJJShiJO2M+XUsVH7VyKNTqmLbb/+0DEC4AKmRNjR5ip0Vam7ajDDD5SgUhRxz0rlIvk/e6R6E0Uotm86XdXUVI+5sg5LyjVsm1lP9dP++owHGkGM7KJIgprGuIsYdQGQUEQfO7IBBFbtJIoqAVBKAVHxBsmxHR6qtFK1b4MXJFbQDQ4LZHyK7RQhAsvzjn+vST6XmbFHVAcQX2WTIR1GUPI3/uxGRuC9Vzpsdmfhy/nSAz6P0yE1zz+gWJKACQSU7gfMF8E82sstv/7UMQGgAtlEVbsJGlBYCet6PQNvlNDDKiT/KlFBJExEihdVd9MTRpLhH6s87wdkbKQlM28sHkacu3mfDiFOajGakZ+QRzMicfZgRlkSqeZBBZg0U/VmJ/cGakUnlh2BHr9d4qNXpppJQEUlnCE0XgS3vnsSV6F130dxidKq6RmM6LPVbt44+5OmbRZyQpXSFOTN+b7GeVcly3kM7WwWiAIQCEjFHRiL9vbuXDlrfSbv/8hqrsARYQ3jxFVBGFtqZsCJVrjiaHnOoMt+qtrLzP/+0DECgALCTNpJ5ir8V+mbGTxlnble8QU2f4Dx3ELd6Qc/zfelQ7X1HNVCIZTrLoitiREMUhSse7K2VRIyFKrbVJlERwSDgyxkYcVF0Exd5MpNUezRV7WeggAVmVRwFcBuQ9qvZdWcrSeDNet64p6b+GsvQK4CiCzB61ygzo1wfPW3gcfy5FCCj3DQw9PN/KjE9LWPmr4ilvYy37gdms+dlTRDKjd4qisrxgfEods5gwqATVZVf/7UMQCAArVM2MnjQ/xR6KspJMM/0oHAjWLLFAQ20HWojbW+aM8U4RHBRBGuCYEhYW1KqeU8YjpXyrZd65FISloCTdGGNn/d/2n/bXPd3Wk/9nBUPnHDKWDR8XbFDCDGlb59o+IgepAASLNSliMDI+GG1SaZ2gAcLQrXXievH5yMsnu3Ik50kkcUhMXghfnIcMGe28D9HPXuwUjp51Ppl/H7x34+Ween+4IUB5tmcBXmzCCbmuMvfgDujAEaSSSKgMwZRKOosc1VCDiRTVCTjP/+0DECwAKuTVnR6RgcWAmbSjDIC9RxP1zFDgLtAyubnkky6n32yLh1xYcJVBVZQyFL0EwY3POBCBJMs+VEO+6f+oci9uERfeBf//44B6ow4lBHxWwCZaym0jICsLCgVacE7XsCYuylheYelWUq9cbGk+qio0bo9lBmYhm5TlMslXcgek3umWtw1ObxdIiXGvf2Puf+fib+ix4S72eNLT4vYWENmGTeMbjn/KlmgRVWKlbAZJuQP/7UMQEgArJNWEnjLPxXKYtKMMgH4s8efDDaDBg/5ixrX3bP1BFh1WwsL4cPy4hkNbwNLh4Vy+wnoCCQ7nTgLpH1FJTM+KGMlK0cZmHh5TCn2BwdxhdnLvuoTRVWmrN1MEqgVdrTbSTgFQzLhDQzlUli4YLjWSnWoxJvUnDi8VrjersRj7xm2Zpxc8jRNb90ww+/bh7FemTmSF4/vmuKdJitV47iObYqCw4SXqma4t5qm2nle4qOcjTdQBpraSSMgFhLI9fbfq/FWNjHv2O/bb/+0DECwAKkTVpRgjT8VQia6WHoAauT4wqpQEAO4x0IZnM6F2qrVfqVvorC1VqMEAlu7FCkIrU6/Oqt9CN8yQwySviU0aXkywrCkZdn3w8t5pHEIABAJWUkHlh0ClYwQs0aZAhjXH3Ewhsz3KFy8JAioUZcNNRjBl38ySc+l3i8U1Q4+vadnehptJc8TpMa8Tj7rhc2u/2u655JHEsrO9+PnsZiLRIXt6VBumtJtJOApdJWJR7B//7QMQGgApFNWdHmGf5YaItNJMh3yRBqMIEkn2PnrJ+pTdQ/kHnUBnJoUsaIECnzp3rvHZKWc1Wgm35Dxh8i/sLTgYh4SkV6ZEWTZOTNsRLfOi0+z8iks1Bc4BDSacabbUgBvAy9tvbJQEtFJrkrgzsa7wogFI10HGHWhX35BtPMztJnPFJvf42YLJ6uYiwl1Xn9rf+2kiedZNqI7/q1rlFCAOj1MRJmkdLnERET+n7nYClAIQw//tQxAGCCsD3UqwlAvFNompFgyE2ok/uTNcYJjqYVQWKUYoiUHAJixBU35R60nOVU30P6IHIsJ3BL1xcx47+3gsoypi+zhWuElBWB9ot/xVFNh04/ZoX04uqaBMcbJsiMDjWHz4nn+k1jVAoqXJUmxSUPnGb0D0hqgfHWTnG1oleTupqraymueBuVr7mrTom/Ymvvs9z1n61luazDhU8jimhKd+LgiKGb19wWzdWNCi1T1Pc6Q0IHp1vXWoAIKck/BvmgTNb0aTrd5pESpabkf/7QMQKAApo8U7sjK2BU6KsaMGifloZiaHCgT40DAzGcKDp4xBcol7HrcSuseyahzshlcBrysSgk2r1KKnKhJ2u+6uqKvsZeqACB1g6FUHRUMO+6oEar0201GAaAeP2DJ+1aZD6w29u+y78e05Irjw1fx+B2IwQAEKbwGLvKXc6TeKIfh2FNaoM5g2MC3V5GbN4w5Bsv5y39KAEFxdDu1jPT5xKLO8gW8fVAAAJJQQEMtWdnL9W//tAxAYCCpUVUS0gT/ldnmkNthjZIlUnaeG7nI5LsqtWtaHI+6DYc2ySpJaXWuKp2Fj2xxtVrXMqRNXTKUFzChi2W5QdvBNVM9u115kHBvt2RnuhQoN0ehiP9XBq2AknMAYpNGTEqmjkNhSShhMYrAdLR8E3NmSAtLrTvKM3GY9RIVW19f2lnd4c4gpnfv/A3/L1zGm+74/Lbdm7ZbTN79nG/azzqr78/q6be+BBRaFXvv/ACgD/+1DEAIIKrRVZLCTBsVqiqI2jIeAFbqqcBCVjQkcjOrIiOScUCilTHDohtN0QHOJ+cwxXpNe7EMY9xc9Sc43/ukd+us1WKhnk6GFbPxRp7z2f8xzJ+v91Ctjv/9rP7s0lBu/PLS396xlBFpOgAoAddoMDpM/TdKZUxMAqxl6YnZduGYxGbPL7GIhQ47jnxMUDZJJVXkWhM1NLosebvPCdF078LF32K91tAiLEJxt7dVCr8f/dzU/QUmu+P26+6NUFEN4AU0OFgLmoSXiZTNNT//tAxAgACqEVQmykq4Ffoquo8yG2UUnmkTQFnx2QaBBJEbUJmF0ibG9QwWSWr7Tr6WK7YwQYzr2FbFdHRbI/oPLIx0LFipXk6IVFf0xY7rwUejPJLlalxx0qAC6tONtMA5SYqCDSXMeDqFBRhbmkxCzao7Hu55svitIPsIq6ZxaBo8u9MHB578tRZHtDQYXI2XurwANttRRimz5DwTd28ZNK1pH31stKOMVVuV+av9hhsCSTJwD/+1DEAgAKwPlEbI0zyV2f6eWRmX/3+N2lSKRzBZIxd321pZRXfu1D9apailmks5b1ShnSqzwItoZCqAcOkh0UPJ/rqW/Pift8AjypDgJidTe2ijk0HKGhF2lPIgYIbfrE5Fl5r0H7ABQYWZgNqMQmwRInJlfYjFpdHLRAgMGESxPSDOihxuNClBk1M6a5Wiv69nlsPaWZZSMI1tO/hDwRgoJlx1MiRnah8yuv3jpx9ztWPJdDH1v2NqLGcDVklQAFeKTSUAMoEoHOjJwgifjN//tAxAiCCp0VV0wZA/lsImgNpiD1oGOg0/5u0NSk4bGfKww+44Ni2Ksme+W+T7i5JO9pOg85ut9omqW4qlTrv5RvkbWPt1+EU6Y0lh5kWlprCXeciBE0vEQBRKgB6F4CviUJWpe6kVBXEDR85N2TZEceHjZFRttt67HVe/zzBsUlaKQMqZhpqBG6MiZGWfV1DzY6n2jqTLRZmLV6mLpKn7i4F6rRuJeVjrMBcnKz8c/c48dMABD/+1DEAQAK+QFPLCTF+U6WZ02zDdgcqqwI3s0Ij3oIkDBjS6NpSSuaS1s8q2lhORoZPl/P1ZJrhqan8tZi8ufn/W37aUfasyHkvkNvaxsZU5jatqnuVS2SQxf/3rjtsoCzHp75cwgqmyuncAJUlAOKNzFCoWTBZaRUL/MUjCBsanoadBypuanXHJpjUjGBRRJZp0ZBROVV+tRgYVS9YnMuNIXzNhA08paZkJrwhQuljJgJPWKB4fjxWJRCE+utFQAirKB3rFoigBi72KKtfZpE//tAxAiCChjVQsykafFTFeaNt40xLD4th43M00oYihvyUQvarZHVz1Q4VajV5XPMwiwh/1gslMJgzDoXcF0HTZDhsENvLXfDJwUYxriUDmT5l/RYSABlwAOYmQqkmBg4GNAsGp5Bgo3QLBqbxdyUhij+cj9UROV2wQ2PbDdhIY/jYi0S3g3gmYvajI0KeN+Dm15fh5BFRSVc63fIgGPuLKHZalYCO6mdoOUAILbsABu5RnOhd5T/+0DEBgIJhL8+7TBnUVgWZk3MoDjJn9di0NpwKnBWE84SXWHyQ/r72XO0HAXmVfhAjjbmAggFVjHMoS4ARmJQ4Rm+X4mHvMcSEQTscUEcB9CEOsI0AF3YAGXLeYcP52RiSCNQGRECSOsuUOas7SmqlzPGav/BXXjik+H+HIKbD2Q9VVFCBAFcY8NjM27S6Pvs2lrs3i0uFSLh+1Oi/VZpFGNMrBLOZ5RcyMQqACdAAOmWPPlOwv/7QMQFAgpssyxtMG8JUZhmHaSOSPMwXJrgiDExM0J0wYIkApfpETKRTCV9p0QOAVUWBKsHIlkAwQCGY3jJ6gqwwRJfznXamZZmAlb7qh3yI8ODfriPk+o2F2CpfH4BALnoAPx+OmzMszX0HKhpiYQUBh7E2QL8V63JcixJlH51HfizXX1tU08o4IoH1E4KKH07z2Kkjlc4cOHVIAcpul38j/3IqRhgZiDCQviBnPQdOu+mADmo//tAxAGCCmSzLm2kbsE1GGddphiyAMZZDhbFkgOPlPpZJzDQOu0RgaBbWW5l7kFFTKONniRoiiekINBkxLRcsHyx1HKANVnEIcHfUU5d6WvmAw4ZvtkVzLWmwURB3MUeeqxM+7SUFOWAA3bs9AIt4BQLIlvC4Mi2VlDrZILKmR+VG4jX1qR5C0dB2pdFVpQva76xTvT9Cu9osfq8qYb0yezuu/uMdNinvnx8udsDwI+zxNUFXfD/+0DEAYMJYLMybbBswUSX5c22DagAFyBpY+mWrxhZaVc6ETFGl08UXKwCYYXjEVhXYrvfEdI/id4YQVhMEHvcEdRfAm6eCN2EthmzVlVKtuh+OUXYMLGGsKzUYq0BS+AA/0vNjNTLWJLwaAEqgEDEwHIC9kCOShyQUYkOQVjiOyYyJ1CbQpQYdoncXQyzfupf2VOnQ5Hgx5m0W0TGX+SyGvqpEj0gMPbacMEQdRQqBU/AAPecDf/7QMQDgwoIwS5tsG1JNhdljbYJ4WiYwJECDkEBSJAOHZMttPttX7Z7DLExSAIceNVzBW7YTrMNFKL22U97QPxLJYctbHIwNkpTw5fDaaBw1BG9qDJoRIIYkdVqQTFBUmAAOzhykiM1Lh5ISgSHMTCQMJpPrdZ1D69m8h2EqOvuO4LvSSbpROIqb2IH4Ngeu3W9KJPwiAnuw6GBBUaQtjPJs6tXfOyQdkoC4lIG8AOU/jTEI5IN//tAxAUDCTCVLE2kbxk2j6TNzCRxKqHHkeUBay2JJBvczBWyIpiQKpGLBkhLmQ8bgHxaC62xOroEcYnmviTdvunWHvSygnmXowvYGZxUAmga3cu/MAOQAA4KxTFjMEjSCicisanG1Js66oWOytu8BJ7I4v5FmgtycZXk5YoOCA3bQoPitEmeapQobr0+v9qPdv+1eVFpOqTkquvtbv31+GOu1QCnAADtRVMUOUzcBDI44AZZm8r/+zDECYIKJHckbmUDyRwVpx2mGN9QESCJIGKcVSwiBToIjZpcCF7CaVqMxTxeQp2ALALFKeEoaB4RRhiBid24ZS+dPefJzydMzFU++nhJxJP+iayXGwADllB5qRG1RJArgXyvwWGK59GkQHUxMTMLhcJsZUastOC/Tf/4s8cQ001DMzBIXkogTl+E61/M5qcan2y/JsyOWMajKgD/+zDEAIBISIVLrCTH+QuP5c28GC0BDE3JdaAATILYttbu1srFrEJrscMAWhxKoTZ6cqSVbGSSCjdn2k2uSwhFVmsjjGTMTeBliVv9gkXAGRMu1f/Lg4KWnLoIk1gtAsFgyVygwUQ6bM4/FKZ1m4iAgMAgUwMVJEmmz6xfMJM3ZF+Ufz3m1WZDybpeWMT4j2+u+OvuxmLvml1VADj/+0DEAQMI/FEibmUhyVETY83cIHnAANoYoylIgxU63lOmfm0wNcBQwAnJoLBlvGKKDOe5S75toLYZlsoBgFAkaKG0S9KKyRvdqMOhesadwNNJthPrUPvR3922AZEAAY5TaCEFM6CjMQw3AwBBhENOEueONAUltI1AYScTDK7J3oYQ0V3nQ3A6nIfBwHAYCEVD84MOUNCsSNg/Raq49bFSGqWds2aeqWDqgY8VDsz9qgLAA2jh4//7QMQDAwnsfxxO6MXJMI/kDcygeDgV0zfBUeGsMBcwpC44zYUBBmUVLNuJKxoQoKgSi7DmR3ptX7sOVHKdmKkJa3sfukVjao3gZRmsDPNRmsV/pB87MX8nkRV03pugKRgAH1h2ZLFA0vjBIdHlhFSxtEcwBEP23ayrVHVBGnMrhiTtdl9PFZTkqqCKFHiQaOKIIpBg5e9jpfqHheIH2xrHgcYcAgrgvrVc+gAAgSYnLGAAB4mY//swxAWACLCHO6ywxfkbjuSNthkZg0ZUi97wVRnpCHOJhJEh1drR1ynUKpEZ0Zl140f8MpMZhsyhplPZ6NuMXemWbckcNLwSazA8CH69/6Be1AANwLD9kAvAJAqw6dKV6XaaiM4KGYDxOHFoNDcsCGWF5E4EJI6CXtwmNnyQr8xXyMmMWNZ1mI82VXLka2IqQhbfsfvSlQuQA8k7//tAxAKDCaRrGE5lg4k2kONJ3SQ4xLxGoBOZ8AI6CZkJtnCZ5MSPIMvSLByAqQgpfjTwqqwKxNzgUXLScHpmc8XmUXv+xp+/l4Gf5qGN263hpQHkRj5VH7/39f79g/ABz2yxhiHJs+pqDCNqS4BDmRIN+VQMaXOgLR1EIB4FkIfylMpl73guFQRA8M4SkM3EkoQ8Qr1s+3ubl2xcPCoyq8l3txvDqXhQc+mpACEs0AAeSDoGyJn/+0DEBYJI+IUi7jzHaSuQ4oncsGiMTCMQoDkRS25fIkQGA/TkGw8W1EX9HM7KkJGDuJ0kbK1AkXn16CFo28ckVHdu3vpQlGOUed6Wa9PbLudsHT2FWzSQFzNUCAMCxzan+4YQqRyZQJNRdWQMGkwBeBR1RB0SUIo4llgXiITxgOKeGB012Djjj5621dg/tr0GW3bUm+1tm45acStaAGpdGAAaxfERmd0POoow4vyxAHRIfLI0Av/7MMQMgggQaybt4YChMw1iidykeGPlkNAbghZYZejZ22cx2bq9tnustgtbsn6NecCJ54eCciNSaoenToBoADU6HzWkdDLQNgAIxuDl1RQ8BSC9BokMSKwUEpKEGKP8wpl6OFG20acKWPe86GaNNAmOyWz2tLXwzGalng/pCBM2Bi8rE9YiJ+xyKhuQA/acDBIZMkjEw6IgG6dJiv/7MMQJAwjEbRZOZSOBHo0iid0wKKpmEGgEOEozxcucx4axkjCWhQK0x1nzWNiEkWYe1K5N5F9ptw93mS2t7muLBWKwBnXir/UPgAHChzGsyMG8OHjmjV0HbSKSZ4YW1HBCA6HEvUGELB/OggEQCyglFgrkgYnLBbVtxKObddmC1/rHzP7bGng2DATW8iE//6YGAAM/c7MXT/GgIP/7QMQFg0nwaxBO5SPBLAuiSdwYeMGhOFUDH/EiCdEILDGZ1QwKtAUYEAl3UqUi0x3XSwlsFzz0OEIUAaaISAI04xKKcq9vqV577sOmp8PERD+39//7f/2eoGTbGTDAoojEkHgEJZ5MWAlsAyh1SXaglkxQADCSTaGxhdynUMxV7I1EJVI/I5a6l0Zdl/KaekIhwqMQEBoqwZL3Pb/////////+6h9AA8Mdkw3Kow2JMxDEwwBA//swxAiCSMBrEk7lg0EMDSLZ3LAshwC0GtCGBiIFNRNNIouq/SwDVVWkcJFSxoOLauKmQ3XT/xduRbamR413s2fiGgUJNJD9lWkK+HKorGF5mhTEAxkRpqhGIdbe9Vagla1YvGD0SFwUFM3RoR1el1l2pSGsLNWsSTvy99vot+i8kOB0gRiwT1YtbfsoAAAAAgkjAAB6LNGViYcf//swxAeCSRxrF65lIYkxDWHF3CRypEkRRCSBjpIqO6u91WYMuXyt1gELiYCkjMcjAHBEKiQ0CMY6nCKOsS7ZSnRnOEWOVkBz0w3UufZH0mMa5zM5VkMTCPMeRSMpQxhq8Nfh5dC74gFAreCKLxZq/DgQ5doGBVombOHRdEpCcqq5wdls+8hvx0hdoImT7CSqtfxF9P9nb/q///XV//tAxAACychPDk7pIcENCeHV3Jg4GgADkOnDHgMj/STUCRUABVBiBRn2RMaSLgoLgy1zDSIKyh2mIsrfeJwkgGlVzPYacxO24WicCgwRg2NKCHRNJ/Rvd8q51H7rv/6v/+n6QnnSng52T5HAI4skQMroBZSF6mDS00gYC1sMBpG71HmkLV9880ACsutaMVeQmZATUmxwqwUQl5ER3f/////9GBf9fvUAAAl4AA7XJw03CAy6Daf/+zDEB4JIrF8PLuUhgRkNYdnMIHDUCLkgIIOnJji7zYWYqTYUv2Lwa7TZkBlD4noHhNEgMG4EMVc+XP+T+k8sFiYSZCbA2Hr9aaEhPg9RlDI5JFAsEJQLeHFAoIt9CJmLYJIlyz+HZNTuZAkzDtPJlAMzDQ/pOT5NkdVe6LvD7kjD6FSRL//////q/r6f/1eQaj5AAKymYkEocAn/+0DEBQNI6F0OTukhQSoMIYnMmHCaJWLQC14oDARtHJXz7MwWd79MCADQKhQEVGloiD6y+SVtw3wI5VHHtvYSKixCTsFBdSX////7//935X9zR0PR9Y1sNwNBSgYHEMIhQASDk3LUNQNfdHBZbOY3YfGBJdFsQAD0QdGdcqNNfzPZTRvLsBigw4kc15f9Hu42i/9fV/t7f/d7uzhGYA5QTcwJB85PTGAHlTseEbaOKnTxLvn2TP/7MMQMg0k0Zwou5MHRKg0hSd0YMEgbeOJp/pPD9Hwmfg+BZb0ZeXs7CzrpmZ20+VXcnvei7vpFv9qf/sv+izWxCvo/20roPgWZBlUbhQHyFKIoQDWYNxLmuS3rMLKeLbvC7IWE4tEyiCFz3fliL+ZT/Phu6QpCQSC6bI1Hr/09FFKLLuP/1I+zq6T73X9Py9UALUgAe82GmSZiyv/7QMQFgklIOQzN5MGBN4bhSbykKKHOyWlTfAwkbUqg94Iu4bLIw8DbD4CUmq7GnicEAWFmpDkChMOjzo4GSA1gu0WYBjikft/6un/1/o39F77e+hZDZj04wLPMEchCPl6sjAgBQEwN+YmvBxaUBRsUIKFdZuqsh954WLlV3gdhkXfHrF1Jj1u1uusFiiU1/kndSW3fWnr2nEWbEI6b61MFdKoAbUAAfChHevBsG8wYpeURSQbZ//swxAmCyIA1DM3hIMELi2FBvIw4wFlROygCwYM5SPVrpkCmwyokZIiQ0YQwksiJmqc9i1zH4p6vXPf0dHu/Zb7NlXq2aDzCoxVVMTY9TSIllKvChxlT1xrUESW9JZu/Zj/cMFA3VR5mRL0sGw20aBlmwMgghALv7Gt/9m7/ovq2Xf1r+28ZZ9MZAANHxTDlIWCKHUPCxVWF7ToJ//tAxAmDSmwrCE3h4IEkDeEJvBQoRI0DLViebmFUs7a8Ax4iZBfAhEakAkyQ0qDzWGCQaYm1pmKSTsa2voFd7C59NNcczoUxl5lLmr6YpbQ2S9iGLUUhr9QauLniwHGoOhwWQoK5kFwBLYYktdsPBAVTVDKuTfO53YjXIl3S4vUhqS9XPX2JurasU+6pl70i3jmHEPSjc30+a9F9Y3JqZQADlG0x5LQAI4KrssSoQEgyQGgaGxD/+zDEC4NJdHMITaRnARULYMmmDOCspDmloyhzQ96zWWlQYjM3TnlHhQGGWlZQoh0pOXsnUUInfQ+UehNbVrFn6l00UXs7/5zqWSh9TokeIliKCgaerGHvGRPNX0nrMs8is9cjVle7tElMOJwdWi0jlg6IwMaLB4KAdpJpze3wJVK7CUbW0xv//V/0Ju/o2xjEFiqXKIb6K8SGkYT/+0DEBoNKDEEEDTBmwS2QIIW3oFBKb6J5fNIW6VBhKX6CzIEBxABBQ8aBIc4mYEYaHBNUcYFgCGRY4liwHGKSlAVl3rbIkaEE7uw9Zc+511r2rQunR7WdXjcJtliCroK5IIohxDn+YDymsKmmsZF7vWN6i3OlxUebCPUWrTVZeYl1mPFmLPrLARTj1sLNUYW7ih+XsNDWvucCB1v91nZdt/0/oUAOdeC0iQMDN0XvDSVzr1ZoFf/7QMQJAko0ZwItmGiBMJRgWaYYSCKSNP5JQWsYWlWoCXEPj+muEUWOCAwMlYjWWEQ8cTEjECQxMvSfLJ1HWHjTklUy4Xfimp86QbwlI4vvs09er1hak+0kRExoGsriy+LyBJg5wk2DZlVWbi7EeCzabvJ5IV0q1I3T9fIedIn4Rfy3MTTwxvt1refeGI0WaRdS9+V2Jo2fFF7P0v3Zj9mlOKkBQ9mzuCLZAF5iibnjhBTIWkIS//tAxAqDygx0/g0wwwEyCd9BlhiQiTSyC9cimcnE0SbtiDvMvOu23layJQHRC8JqRCRsBzKxjAdHUiyBIfONSWqKtlkVbV7RSjT23apX6m3DZCZqAtNRi8GFV4shUW3oHESCqLCZxVwTKgwk0kkdj6mAwqyChgMJOkQMfEJ5oTOPlCKhaksNBO0e/ELiiJYclNa9+y7b3V7OtPb/1CAMMEooCVMbJgMgk4dPkoVYIUQpk9zS01v/+yDEDINJzG74LCRjwIIE3ISTGBUFVVlJloCUOOVnmMHEC0sgwEBwcJRw41CjQVFSoSSxgNXLKqktCjSpo09t6NvUmxTa/+/o/awKlCaC0SQKKAiaC1JInGlgaoMShu//qmWCagxYJKX/+0xBTUUzLjk4LjJVVVVVVVVVVVVVVVVV//sQxAuDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xDENQPAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==";
+	sound.src = audiotagAudioSprite;
+	sound.load();
+	console.log("--audiotagCreateChannel "+index);
+}
+
+function at_imp_mandreel_audio_playChannel(filename,channel,vol,loop,pitch)
+{
+	at_imp_mandreel_audio_stopChannel(channel);
+	var fileNameNoExt = wa_getFileNameNoExt(filename);
+	var time = maudioSecondsPos[fileNameNoExt];
+	if ( time != null )
+	{
+		console.log("play "+fileNameNoExt+" "+time);
+		if ( maudiotagAvailableChannels.length > 0 )
+		{
+			var sound = maudiotagAvailableChannels.pop();
+			var duration = maudiotagDurations[fileNameNoExt];
+			sound.currentTime = time;
+			console.log("OK "+sound.currentTime);
+			sound.play();
+			maudiotagChannels[channel] = sound;
+			maudioChannelEnd[channel] = time+(duration/1000.0);
+		}
+	}
+	else
+	{
+		console.log("not found play "+fileNameNoExt);
+	}
+}
+
+function at_imp_mandreel_audio_stopChannel(channel)
+{
+	var sound = maudiotagChannels[channel];
+	if ( sound != null )
+	{
+		sound.pause();
+		maudiotagAvailableChannels.push(sound);
+		maudiotagChannels[channel] = null;
+	}
+}
+
+var mandreel_flash_socket_callback = null
+
+function mandreel_flash_sockets_load_flash(callback)
+{
+	mandreel_flash_socket_callback = callback;
+	var failed = "";
+	try
+	{
+		var mandreelSocketsSwf = g_mandreel_working_folder+"mandreelflashsockets.swf";
+		var swf = swfobject.createSWF({ data:mandreelSocketsSwf, width:"0", height:"0", allowScriptAccess:"always" }, { menu:"false" }, "FlashDivSockets");
+		if ( !swf )
+			failed  = "Unable to open MandreelFlashSockets.swf";
+	}
+	catch(err)
+	{
+		failed  = err;
+	}
+}
+
+var js_mandreel_flash_socket_swf_loaded = false;
+
+function js_mandreel_flash_socket_ready()
+{
+	js_mandreel_flash_socket_swf_loaded = true;
+	if (mandreel_flash_socket_callback)
+		mandreel_flash_socket_callback();
+}
+
+
+function Mandreel_Socket_InitLibrary(sp)
+{
+	//mandreel_flash_sockets_load_flash();
+}
+
+
+function mandreel_flash_sockets_getFlashMovieObject(movieName)
+{
+	if (Mandreel_window.document[movieName])
+	{
+		return Mandreel_window.document[movieName];
+	}
+	if (navigator.appName.indexOf("Microsoft Internet")==-1)
+	{
+		if (document.embeds && document.embeds[movieName])
+			return document.embeds[movieName];
+	}
+	else
+	{
+		return document.getElementById(movieName);
+	}
+}
+
+function js_mandreel_flash_socket_onError(message)
+{
+	var id = parseInt(message);
+
+	var sp = g_stack_pointer+512*1024;
+
+	dump('on error ' + id);
+
+	heap32[sp>>2] = id;
+	mandreel_flash_tcp_onError(sp);
+
+}
+function js_mandreel_flash_socket_onConnect(message)
+{
+	var id = parseInt(message);
+
+	var sp = g_stack_pointer+512*1024;
+
+	dump('connected ' + id);
+
+	heap32[sp>>2] = id;
+	mandreel_flash_tcp_onConnect(sp);
+}
+
+function js_mandreel_flash_tcp_receive_callbak(message)
+{
+	var strings = message.split(' ');
+
+	var id = parseInt(strings[0]);
+	var data = strings[1];
+
+	var sp = g_stack_pointer+512*1024;
+
+	var data_ptr = sp + 1024;
+	fill_ptr_from_string(data_ptr,data);
+
+	heap32[sp>>2] = id;
+	heap32[(sp+4)>>2] = data_ptr;
+	mandreel_flash_tcp_receive_callbak(sp);
+}
+
+function js_mandreel_flash_tcp_update(sp)
+{
+	var id = heap32[sp>>2];sp+=4;
+	var size = heap32[sp>>2];sp+=4;
+
+	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
+	flashMovie.receiveMessage("receive " + id + " " + size);
+}
+
+function js_mandreel_flash_tcp_create(sp)
+{
+	var id = heap32[sp>>2];sp+=4;
+
+	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
+	flashMovie.receiveMessage("create " + id);
+}
+
+function js_mandreel_flash_tcp_connectTo(sp)
+{
+	var id = heap32[sp>>2];sp+=4;
+	var ptr_string = heap32[sp>>2];sp+=4;
+	var port = heap32[sp>>2];sp+=4;
+
+	var server_name = get_string_from_ptr(ptr_string);
+
+	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
+	flashMovie.receiveMessage("connect " + id + " " + server_name + " " + port);
+}
+
+function js_mandreel_flash_tcp_close(sp)
+{
+	var id = heap32[sp>>2];sp+=4;
+
+
+	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
+	flashMovie.receiveMessage("close " + id);
+	dump("js_mandreel_flash_tcp_close " + id);
+}
+function js_mandreel_flash_tcp_write(sp)
+{
+	var id = heap32[sp>>2];sp+=4;
+	var ptr = heap32[sp>>2];sp+=4;
+
+	var message = get_string_from_ptr(ptr);
+
+	dump('js_mandreel_flash_tcp_write ' + message);
+
+	var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets");
+	r_g0 = flashMovie.receiveMessage("send " + id + " " + message);
+}
+
+
+
+function js_mandreel_flash_tcp_dump(msg)
+{
+	dump(msg);
+}
+
+function _GLOBAL__I_Landscape02Vtx(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = _ZL10raycastBar;
+	heap32[(g0)] = 8;
+	r0 = r0 >> 2;
+	_Znwj(i7);
+	heap32[(r0+10006)] = r_g0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = 0;
+	gettimeofday(i7);
+	heap32[(r0+10001)] = 0;
+	heap32[(r0+10005)] = 0;
+	heap32[(r0+10004)] = 9999;
+	heap32[(r0+10003)] = 0;
+	heap32[(r0+10002)] = 0;
+	return;
+}
+
+function _GLOBAL__D_Landscape02Vtx(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = _ZL10raycastBar;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+10006)];
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN15DemoApplication6myinitEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN15DemoApplication16getDynamicsWorldEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heapU16[(r0+14)>>1];
+	r3 = heapU16[(r1+4)>>1];
+	r2 = r2 & r3;
+	r2 = r2 & 65535;
+	if(r2 ==0) //_LBB4_2
+{
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+else{
+	r1 = heapU16[(r1+6)>>1];
+	r0 = heapU16[(r0+12)>>1];
+	r0 = r1 & r0;
+	r0 = r0 & 65535;
+	r1 = 0;
+	r0 = r0 != r1;
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp)];
+	f0 = heapFloat[(r0+6)];
+	r1 = r1 >> 2;
+	f1 = heapFloat[(r1+1)];
+	if(f0 <=f1) //_LBB7_2
+{
+	r2 = heap32[(fp+2)];
+	heapFloat[(r1+1)] = f0;
+	r3 = heap32[(r0)];
+	heap32[(r1+2)] = r3;
+	if(r2 ==0) //_LBB7_4
+{
+	r2 = r3 >> 2;
+	f0 = heapFloat[(r0+2)];
+	f1 = heapFloat[(r2+1)];
+	f2 = heapFloat[(r0+3)];
+	f3 = heapFloat[(r2+2)];
+	f4 = heapFloat[(r2+5)];
+	f5 = heapFloat[(r2+6)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r0+4)];
+	f7 = heapFloat[(r2+3)];
+	f8 = heapFloat[(r2+9)];
+	f9 = heapFloat[(r2+10)];
+	f10 = heapFloat[(r2+11)];
+	f11 = heapFloat[(r2+7)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f11*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	f2 = f10*f6;
+	f3 = f4+f5;
+	heapFloat[(r1+13)] = f1;
+	f0 = f0+f2;
+	heapFloat[(r1+14)] = f3;
+	heapFloat[(r1+15)] = f0;
+	heap32[(r1+16)] = 0;
+}
+else{
+	heap32[(r1+13)] = heap32[(r0+2)];
+	heap32[(r1+14)] = heap32[(r0+3)];
+	heap32[(r1+15)] = heap32[(r0+4)];
+	heap32[(r1+16)] = heap32[(r0+5)];
+}
+	f0 =                         1;
+	f1 = heapFloat[(r0+6)];
+	f2 = heapFloat[(r1+9)];
+	f3 = heapFloat[(r1+5)];
+	f0 = f0-f1;
+	f3 = f3*f0;
+	f2 = f2*f1;
+	f2 = f3+f2;
+	heapFloat[(r1+17)] = f2;
+	f2 = heapFloat[(r1+6)];
+	f3 = heapFloat[(r1+10)];
+	f2 = f2*f0;
+	f3 = f3*f1;
+	f2 = f2+f3;
+	heapFloat[(r1+18)] = f2;
+	f2 = heapFloat[(r1+7)];
+	f3 = heapFloat[(r1+11)];
+	f0 = f2*f0;
+	f1 = f3*f1;
+	f0 = f0+f1;
+	heapFloat[(r1+19)] = f0;
+	f0 = heapFloat[(r0+6)];
+	f_g0 = f0;
+	return;
+}
+else{
+	r0 = _2E_str3;
+	r1 = _2E_str4;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 250;
+	_assert(i7);
+}
+}
+
+function _ZN20btDefaultMotionStateD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV20btDefaultMotionState;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN20btDefaultMotionStateD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV20btDefaultMotionState;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZNK20btDefaultMotionState17getWorldTransformER11btTransform(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+17)];
+	f1 = heapFloat[(r0+1)];
+	f2 = heapFloat[(r0+21)];
+	f3 = heapFloat[(r0+5)];
+	f4 = heapFloat[(r0+2)];
+	f5 = heapFloat[(r0+6)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r0+25)];
+	f9 = heapFloat[(r0+9)];
+	f10 = heapFloat[(r0+18)];
+	f11 = heapFloat[(r0+22)];
+	f12 = heapFloat[(r0+19)];
+	f13 = heapFloat[(r0+13)];
+	f14 = heapFloat[(r0+3)];
+	f15 = heapFloat[(r0+23)];
+	f16 = heapFloat[(r0+30)];
+	f17 = heapFloat[(r0+14)];
+	f18 = heapFloat[(r0+7)];
+	r1 = heap32[(fp+1)];
+	f19 = heapFloat[(r0+26)];
+	f20 = heapFloat[(r0+31)];
+	f21 = heapFloat[(r0+27)];
+	f22 = heapFloat[(r0+15)];
+	f23 = heapFloat[(r0+11)];
+	f24 = heapFloat[(r0+10)];
+	f25 = heapFloat[(r0+29)];
+	f26 = f4*f0;
+	f27 = f5*f2;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	r0 = r1 >> 2;
+	f28 = f14*f0;
+	f29 = f18*f2;
+	f26 = f26+f27;
+	f27 = f24*f8;
+	f6 = f6+f7;
+	f7 = f28+f29;
+	f28 = f23*f8;
+	f26 = f26+f27;
+	heapFloat[(r0)] = f6;
+	f6 = f1*f10;
+	f27 = f3*f11;
+	f7 = f7+f28;
+	heapFloat[(r0+1)] = f26;
+	heapFloat[(r0+2)] = f7;
+	f7 = f4*f10;
+	f26 = f5*f11;
+	f6 = f6+f27;
+	f27 = f9*f19;
+	f28 = f14*f10;
+	f29 = f18*f11;
+	f7 = f7+f26;
+	f26 = f24*f19;
+	f6 = f6+f27;
+	heap32[(r0+3)] = 0;
+	f27 = f28+f29;
+	f28 = f23*f19;
+	f7 = f7+f26;
+	heapFloat[(r0+4)] = f6;
+	f1 = f1*f12;
+	f3 = f3*f15;
+	f6 = f27+f28;
+	heapFloat[(r0+5)] = f7;
+	heapFloat[(r0+6)] = f6;
+	f4 = f4*f12;
+	f5 = f5*f15;
+	f1 = f1+f3;
+	f3 = f9*f21;
+	f6 = -f25;
+	f7 = f14*f12;
+	f9 = f18*f15;
+	f4 = f4+f5;
+	f5 = f24*f21;
+	f1 = f1+f3;
+	heap32[(r0+7)] = 0;
+	f3 = f0*f13;
+	f14 = f2*f17;
+	f0 = f0*f6;
+	f2 = f2*f16;
+	f7 = f7+f9;
+	f9 = f23*f21;
+	f4 = f4+f5;
+	heapFloat[(r0+8)] = f1;
+	f1 = f10*f13;
+	f5 = f11*f17;
+	f10 = f10*f6;
+	f11 = f11*f16;
+	f3 = f3+f14;
+	f14 = f8*f22;
+	f0 = f0-f2;
+	f2 = f8*f20;
+	f7 = f7+f9;
+	heapFloat[(r0+9)] = f4;
+	heapFloat[(r0+10)] = f7;
+	f4 = f12*f13;
+	f7 = f15*f17;
+	f6 = f12*f6;
+	f8 = f15*f16;
+	f1 = f1+f5;
+	f5 = f19*f22;
+	f9 = f10-f11;
+	f10 = f19*f20;
+	f3 = f3+f14;
+	f0 = f0-f2;
+	f2 = f4+f7;
+	f4 = f21*f22;
+	f6 = f6-f8;
+	f7 = f21*f20;
+	f1 = f1+f5;
+	f5 = f9-f10;
+	f0 = f3+f0;
+	heap32[(r0+11)] = 0;
+	f2 = f2+f4;
+	f3 = f6-f7;
+	f1 = f1+f5;
+	heapFloat[(r0+12)] = f0;
+	f0 = f2+f3;
+	heapFloat[(r0+13)] = f1;
+	heapFloat[(r0+14)] = f0;
+	heap32[(r0+15)] = 0;
+	return;
+}
+
+function _ZN20btDefaultMotionState17setWorldTransformERK11btTransform(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r0+17)];
+	f2 = heapFloat[(r1+1)];
+	f3 = heapFloat[(r0+21)];
+	f4 = heapFloat[(r0+18)];
+	f5 = heapFloat[(r0+22)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r1+2)];
+	f9 = heapFloat[(r0+25)];
+	f10 = heapFloat[(r1+8)];
+	f11 = heapFloat[(r0+29)];
+	f12 = heapFloat[(r1+4)];
+	f13 = heapFloat[(r0+19)];
+	f14 = heapFloat[(r1+9)];
+	f15 = heapFloat[(r0+30)];
+	f16 = heapFloat[(r1+5)];
+	f17 = heapFloat[(r0+23)];
+	f18 = heapFloat[(r1+10)];
+	f19 = heapFloat[(r0+31)];
+	f20 = heapFloat[(r1+6)];
+	f21 = heapFloat[(r0+27)];
+	f22 = heapFloat[(r0+26)];
+	f23 = f4*f0;
+	f24 = f5*f2;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	f25 = heapFloat[(r1+14)];
+	f26 = heapFloat[(r1+13)];
+	f27 = heapFloat[(r1+12)];
+	f28 = f13*f0;
+	f29 = f17*f2;
+	f23 = f23+f24;
+	f24 = f22*f8;
+	f6 = f6+f7;
+	f7 = f28+f29;
+	f28 = f21*f8;
+	f23 = f23+f24;
+	heapFloat[(r0+1)] = f6;
+	f6 = f1*f12;
+	f24 = f3*f16;
+	f7 = f7+f28;
+	heapFloat[(r0+2)] = f23;
+	heapFloat[(r0+3)] = f7;
+	f7 = f4*f12;
+	f23 = f5*f16;
+	f6 = f6+f24;
+	f24 = f9*f20;
+	f28 = f13*f12;
+	f29 = f17*f16;
+	f7 = f7+f23;
+	f23 = f22*f20;
+	f6 = f6+f24;
+	heap32[(r0+4)] = 0;
+	f24 = f28+f29;
+	f28 = f21*f20;
+	f7 = f7+f23;
+	heapFloat[(r0+5)] = f6;
+	f1 = f1*f10;
+	f3 = f3*f14;
+	f6 = f24+f28;
+	heapFloat[(r0+6)] = f7;
+	heapFloat[(r0+7)] = f6;
+	f4 = f4*f10;
+	f5 = f5*f14;
+	f1 = f1+f3;
+	f3 = f9*f18;
+	f6 = f13*f10;
+	f7 = f17*f14;
+	f4 = f4+f5;
+	f5 = f22*f18;
+	f1 = f1+f3;
+	heap32[(r0+8)] = 0;
+	f0 = f0*f11;
+	f2 = f2*f15;
+	f3 = f6+f7;
+	f6 = f21*f18;
+	f4 = f4+f5;
+	heapFloat[(r0+9)] = f1;
+	f1 = f12*f11;
+	f5 = f16*f15;
+	f0 = f0+f2;
+	f2 = f8*f19;
+	f3 = f3+f6;
+	heapFloat[(r0+10)] = f4;
+	f0 = f0+f2;
+	heapFloat[(r0+11)] = f3;
+	f2 = f10*f11;
+	f3 = f14*f15;
+	f1 = f1+f5;
+	f4 = f20*f19;
+	f1 = f1+f4;
+	f2 = f2+f3;
+	f3 = f18*f19;
+	f0 = f0+f27;
+	heap32[(r0+12)] = 0;
+	f2 = f2+f3;
+	f1 = f1+f26;
+	heapFloat[(r0+13)] = f0;
+	f0 = f2+f25;
+	heapFloat[(r0+14)] = f1;
+	heapFloat[(r0+15)] = f0;
+	heap32[(r0+16)] = 0;
+	return;
+}
+
+function _ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN13BenchmarkDemo15displayCallbackEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN13BenchmarkDemo11exitPhysicsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+9)];
+if(!(r1 <1)) //_LBB15_5
+{
+	r1 = 0;
+_3: while(true){
+	r2 = heap32[(r0+11)];
+	r3 = r1 << 2;
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+if(!(r2 ==0)) //_LBB15_4
+{
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+1)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+	r1 = (r1 + 1)|0;
+	r2 = heap32[(r0+9)];
+	if(r2 >r1) //_LBB15_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r1 = heap32[(r0+1)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2+2)];
+	r3 = (r2 + -1)|0;
+_9: do {
+if(!(r3 <0)) //_LBB15_16
+{
+	r3 = 1;
+	r2 = (r3 - r2)|0;
+_11: while(true){
+	r3 = r1 >> 2;
+	r3 = heap32[(r3+4)];
+	r4 = r2 << 2;
+	r3 = (r3 - r4)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r4 = heapU8[r3+232];
+	r4 = r4 & 2;
+if(!(r4 ==0)) //_LBB15_9
+{
+	if(r3 !=0) //_LBB15_10
+{
+	r4 = r3 >> 2;
+	r4 = heap32[(r4+118)];
+if(!(r4 ==0)) //_LBB15_9
+{
+	r1 = r4 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+1)];
+	heap32[(g0)] = r4;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r1 = heap32[(r0+1)];
+}
+}
+}
+	r4 = r1 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+9)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	if(r3 !=0) //_LBB15_15
+{
+	r1 = r3 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+2)];
+	heap32[(g0)] = r3;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+	if(r2 ==0) //_LBB15_16
+{
+break _9;
+}
+else{
+	r2 = (r2 + 1)|0;
+	r1 = heap32[(r0+1)];
+continue _11;
+}
+}
+}
+} while(0);
+	r1 = heap32[(r0+4)];
+_23: do {
+if(!(r1 <1)) //_LBB15_21
+{
+	r1 = 0;
+_25: while(true){
+	r2 = heap32[(r0+6)];
+	r3 = r1 << 2;
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+if(!(r2 ==0)) //_LBB15_20
+{
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+1)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+	r1 = (r1 + 1)|0;
+	r2 = heap32[(r0+4)];
+	if(r2 >r1) //_LBB15_18
+{
+continue _25;
+}
+else{
+break _23;
+}
+}
+}
+} while(0);
+	r1 = heap32[(r0+1)];
+if(!(r1 ==0)) //_LBB15_23
+{
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+1)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+	r1 = heap32[(r0+15)];
+if(!(r1 ==0)) //_LBB15_25
+{
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+1)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+	r1 = heap32[(r0+13)];
+if(!(r1 ==0)) //_LBB15_27
+{
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+1)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+	r1 = heap32[(r0+14)];
+if(!(r1 ==0)) //_LBB15_29
+{
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+1)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+	r0 = heap32[(r0+16)];
+if(!(r0 ==0)) //_LBB15_31
+{
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+	return;
+}
+
+function _ZN7RagDollD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV7RagDoll;
+	r2 = 0;
+	r3 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r3)] = r1;
+	r1 = r2;
+_1: while(true){
+	r4 = heap32[(r3+1)];
+	r5 = r1 << 2;
+	r6 = r4 >> 2;
+	r5 = (r0 - r5)|0;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r5 = r5 >> 2;
+	r6 = heap32[(r6+14)];
+	r7 = heap32[(r5+24)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r7;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r4 = heap32[(r5+24)];
+if(!(r4 ==0)) //_LBB16_3
+{
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+1)];
+	heap32[(g0)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+	r4 = (r2 - r1)|0;
+	r4 = r4 << 2;
+	r4 = (r0 + r4)|0;
+	r1 = (r1 + -1)|0;
+	r4 = r4 >> 2;
+	heap32[(r4+24)] = 0;
+	if(r1 !=-10) //_LBB16_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+	r1 = 2;
+_7: while(true){
+	r2 = heap32[(r3+1)];
+	r4 = r2 >> 2;
+	r5 = r1 << 2;
+	r4 = heap32[(r4)];
+	r5 = (r0 + r5)|0;
+	r4 = r4 >> 2;
+	r5 = r5 >> 2;
+	r4 = heap32[(r4+21)];
+	r6 = heap32[(r5+11)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r2 = heap32[(r5+11)];
+	r4 = r2 >> 2;
+	r4 = heap32[(r4+118)];
+	if(r4 !=0) //_LBB16_7
+{
+	r2 = r4 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+1)];
+	heap32[(g0)] = r4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = heap32[(r5+11)];
+}
+if(!(r2 ==0)) //_LBB16_10
+{
+	r4 = r2 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+	heap32[(r5+11)] = 0;
+	r2 = heap32[(r5)];
+if(!(r2 ==0)) //_LBB16_12
+{
+	r4 = r2 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+1)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+	r1 = (r1 + 1)|0;
+	heap32[(r5)] = 0;
+	if(r1 !=13) //_LBB16_5
+{
+continue _7;
+}
+else{
+break _7;
+}
+}
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN7RagDollD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV7RagDoll;
+	r2 = 0;
+	r3 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r3)] = r1;
+	r1 = r2;
+_1: while(true){
+	r4 = heap32[(r3+1)];
+	r5 = r1 << 2;
+	r6 = r4 >> 2;
+	r5 = (r0 - r5)|0;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r5 = r5 >> 2;
+	r6 = heap32[(r6+14)];
+	r7 = heap32[(r5+24)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r7;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r4 = heap32[(r5+24)];
+if(!(r4 ==0)) //_LBB17_3
+{
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+1)];
+	heap32[(g0)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+	r4 = (r2 - r1)|0;
+	r4 = r4 << 2;
+	r4 = (r0 + r4)|0;
+	r1 = (r1 + -1)|0;
+	r4 = r4 >> 2;
+	heap32[(r4+24)] = 0;
+	if(r1 !=-10) //_LBB17_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+	r1 = 2;
+_7: while(true){
+	r2 = heap32[(r3+1)];
+	r4 = r2 >> 2;
+	r5 = r1 << 2;
+	r4 = heap32[(r4)];
+	r5 = (r0 + r5)|0;
+	r4 = r4 >> 2;
+	r5 = r5 >> 2;
+	r4 = heap32[(r4+21)];
+	r6 = heap32[(r5+11)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r2 = heap32[(r5+11)];
+	r4 = r2 >> 2;
+	r4 = heap32[(r4+118)];
+	if(r4 !=0) //_LBB17_7
+{
+	r2 = r4 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+1)];
+	heap32[(g0)] = r4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = heap32[(r5+11)];
+}
+if(!(r2 ==0)) //_LBB17_10
+{
+	r4 = r2 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+	heap32[(r5+11)] = 0;
+	r2 = heap32[(r5)];
+if(!(r2 ==0)) //_LBB17_12
+{
+	r4 = r2 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+1)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+	r1 = (r1 + 1)|0;
+	heap32[(r5)] = 0;
+	if(r1 !=13) //_LBB17_5
+{
+continue _7;
+}
+else{
+break _7;
+}
+}
+	return;
+}
+
+function _ZN13BenchmarkDemoD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13BenchmarkDemo;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
+	r1 = heap32[(r2+11)];
+if(!(r1 ==0)) //_LBB18_4
+{
+	r3 = heapU8[r0+48];
+if(!(r3 ==0)) //_LBB18_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+11)] = 0;
+}
+	r1 = 1;
+	heap8[r0+48] = r1;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 0;
+	r3 = heap32[(r2+6)];
+if(!(r3 ==0)) //_LBB18_8
+{
+	r4 = heapU8[r0+28];
+if(!(r4 ==0)) //_LBB18_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+6)] = 0;
+}
+	heap8[r0+28] = r1;
+	heap32[(r2+6)] = 0;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+5)] = 0;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -168;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+3)];
+if(!(r0 ==0)) //_LBB19_3
+{
+	r1 = r0 >> 2;
+	r1 = heap32[(r1+1)];
+if(!(r1 !=35)) //_LBB19_3
+{
+	r0 = _2E_str5;
+	r1 = _2E_str6;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 1297;
+	_assert(i7);
+}
+}
+	f0 = heapFloat[(fp+1)];
+	r1 = sp + -152;
+	r2 = r1 >> 2;
+	heap32[(fp+-38)] = 0;
+	heap32[(r2+1)] = 0;
+	heap32[(r2+2)] = 0;
+	f1 =                         0;
+	heap32[(r2+3)] = 0;
+if(!(f0 ==f1)) //_LBB19_5
+{
+	r3 = r0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+8)];
+	heap32[(g0)] = r0;
+	heapFloat[(g0+1)] = f0;
+	heap32[(g0+2)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+	r1 = heap32[(fp)];
+	r3 = heap32[(fp+2)];
+	r4 = gNumAlignedAllocs;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	heap32[(r4)] = r5;
+	heap32[(g0)] = 627;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB19_7
+{
+	r5 = 0;
+	r6 = (r4 + 4)|0;
+	r5 = (r5 - r6)|0;
+	r5 = r5 & 15;
+	r5 = (r4 + r5)|0;
+	r6 = (r5 + 4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r4;
+	r4 = r6;
+}
+	r5 = r4 >> 2;
+	heap32[(r5+41)] = 1065353216;
+	heap32[(r5+42)] = 1065353216;
+	heap32[(r5+43)] = 1065353216;
+	heap32[(r5+44)] = 0;
+	heap32[(r5+45)] = 0;
+	heap32[(r5+46)] = 1566444395;
+	heap32[(r5+47)] = 0;
+	heap32[(r5+48)] = 0;
+	heap32[(r5+49)] = 0;
+	heap32[(r5+50)] = 0;
+	heap32[(r5+51)] = 1;
+	heap32[(r5+52)] = -1;
+	heap32[(r5+53)] = -1;
+	heap32[(r5+54)] = 1;
+	heap32[(r5+55)] = 0;
+	heap32[(r5+56)] = 1056964608;
+	heap32[(r5+57)] = 0;
+	heap32[(r5+58)] = 1;
+	heap32[(r5+59)] = 0;
+	heap32[(r5+60)] = 1065353216;
+	heap32[(r5+61)] = 0;
+	heap32[(r5+62)] = 0;
+	heap32[(r5+63)] = 0;
+	heap32[(r5+1)] = 1065353216;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+	heap32[(r5+4)] = 0;
+	heap32[(r5+5)] = 0;
+	heap32[(r5+6)] = 1065353216;
+	heap32[(r5+7)] = 0;
+	heap32[(r5+8)] = 0;
+	heap32[(r5+9)] = 0;
+	heap32[(r5+10)] = 0;
+	heap32[(r5+11)] = 1065353216;
+	heap32[(r5+12)] = 0;
+	heap32[(r5+13)] = 0;
+	heap32[(r5+14)] = 0;
+	r6 = _ZTV11btRigidBody;
+	heap32[(r5+15)] = 0;
+	r6 = (r6 + 8)|0;
+	heap32[(r5+16)] = 0;
+	r7 = 1;
+	heap32[(r5)] = r6;
+	heap8[r4+492] = r7;
+	heap32[(r5+122)] = 0;
+	heap32[(r5+120)] = 0;
+	r6 = sp + -136;
+	heap32[(r5+121)] = 0;
+	r7 = r6 >> 2;
+	heapFloat[(fp+-34)] = f0;
+	heap32[(r7+1)] = 0;
+	heap32[(r7+18)] = r0;
+	heap32[(r7+19)] = heap32[(fp+-38)];
+	heap32[(r7+20)] = heap32[(r2+1)];
+	heap32[(r7+21)] = heap32[(r2+2)];
+	heap32[(r7+22)] = heap32[(r2+3)];
+	heap32[(r7+23)] = 0;
+	heap32[(r7+24)] = 0;
+	heap32[(r7+25)] = 1056964608;
+	heap32[(r7+26)] = 0;
+	heap32[(r7+27)] = 1061997773;
+	r0 = 0;
+	heap32[(r7+28)] = 1065353216;
+	heap8[sp+-20] = r0;
+	heap32[(r7+30)] = 1000593162;
+	heap32[(r7+31)] = 1008981770;
+	heap32[(r7+32)] = 1008981770;
+	heap32[(r7+33)] = 1008981770;
+	heap32[(r7+2)] = 1065353216;
+	heap32[(r7+3)] = 0;
+	heap32[(r7+4)] = 0;
+	heap32[(r7+5)] = 0;
+	heap32[(r7+6)] = 0;
+	heap32[(r7+7)] = 1065353216;
+	heap32[(r7+8)] = 0;
+	heap32[(r7+9)] = 0;
+	heap32[(r7+10)] = 0;
+	heap32[(r7+11)] = 0;
+	heap32[(r7+12)] = 1065353216;
+	heap32[(r7+13)] = 0;
+	heap32[(r7+14)] = 0;
+	heap32[(r7+15)] = 0;
+	heap32[(r7+16)] = 0;
+	heap32[(r7+17)] = 0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r6;
+	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
+	r0 = r3 >> 2;
+	heap32[(r5+1)] = heap32[(r0)];
+	heap32[(r5+2)] = heap32[(r0+1)];
+	heap32[(r5+3)] = heap32[(r0+2)];
+	heap32[(r5+4)] = heap32[(r0+3)];
+	heap32[(r5+5)] = heap32[(r0+4)];
+	heap32[(r5+6)] = heap32[(r0+5)];
+	heap32[(r5+7)] = heap32[(r0+6)];
+	heap32[(r5+8)] = heap32[(r0+7)];
+	heap32[(r5+9)] = heap32[(r0+8)];
+	heap32[(r5+10)] = heap32[(r0+9)];
+	heap32[(r5+11)] = heap32[(r0+10)];
+	heap32[(r5+12)] = heap32[(r0+11)];
+	heap32[(r5+13)] = heap32[(r0+12)];
+	heap32[(r5+14)] = heap32[(r0+13)];
+	heap32[(r5+15)] = heap32[(r0+14)];
+	r1 = r1 >> 2;
+	heap32[(r5+16)] = heap32[(r0+15)];
+	heap32[(r5+46)] = heap32[(r1+2)];
+	r0 = heap32[(r1+1)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+20)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r_g0 = r4;
+	return;
+}
+
+function _ZN13BenchmarkDemoD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13BenchmarkDemo;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
+	r1 = heap32[(r2+11)];
+if(!(r1 ==0)) //_LBB20_4
+{
+	r3 = heapU8[r0+48];
+if(!(r3 ==0)) //_LBB20_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+11)] = 0;
+}
+	r1 = 1;
+	heap8[r0+48] = r1;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 0;
+	r3 = heap32[(r2+6)];
+if(!(r3 ==0)) //_LBB20_8
+{
+	r4 = heapU8[r0+28];
+if(!(r4 ==0)) //_LBB20_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+6)] = 0;
+}
+	heap8[r0+28] = r1;
+	heap32[(r2+6)] = 0;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+5)] = 0;
+	return;
+}
+
+function _ZN13BenchmarkDemo20clientMoveAndDisplayEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -128;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+1)];
+if(!(r1 ==0)) //_LBB21_2
+{
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 1015580809;
+	heap32[(g0+2)] = 1;
+	heap32[(g0+3)] = 1015580809;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = heap32[(r0+1)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+5)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+	r1 = heap32[(r0+17)];
+if(!(r1 !=7)) //_LBB21_10
+{
+	r1 = _ZL10raycastBar;
+	r2 = r1 >> 2;
+	r0 = heap32[(r0+1)];
+	r3 = heap32[(r2+10006)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 0;
+	r3 = 0;
+	gettimeofday(i7);
+_6: while(true){
+	r4 = sp + -96;
+	r5 = r4 >> 2;
+	heap32[(r5+1)] = 1065353216;
+	r6 = 1;
+	heap32[(r5+2)] = 0;
+	r7 = -1;
+	heap16[(sp+-84)>>1] = r6;
+	r6 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE;
+	heap16[(sp+-82)>>1] = r7;
+	r7 = (r1 + r3)|0;
+	r6 = (r6 + 8)|0;
+	heap32[(r5+4)] = 0;
+	r8 = r7 >> 2;
+	heap32[(fp+-24)] = r6;
+	heap32[(r5+5)] = heap32[(r8)];
+	heap32[(r5+6)] = heap32[(r8+1)];
+	heap32[(r5+7)] = heap32[(r8+2)];
+	heap32[(r5+8)] = heap32[(r8+3)];
+	heap32[(r5+9)] = heap32[(r8+2000)];
+	heap32[(r5+10)] = heap32[(r8+2001)];
+	heap32[(r5+11)] = heap32[(r8+2002)];
+	r9 = r0 >> 2;
+	heap32[(r5+12)] = heap32[(r8+2003)];
+	r9 = heap32[(r9)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+7)];
+	r10 = (r7 + 8000)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r4 = heap32[(r5+2)];
+	if(r4 ==0) //_LBB21_6
+{
+	r4 = r7 >> 2;
+	r5 = r7 >> 2;
+	r9 = r7 >> 2;
+	r10 = r7 >> 2;
+	heap32[(r4+6000)] = heap32[(r5+2000)];
+	r4 = r7 >> 2;
+	r5 = r7 >> 2;
+	heap32[(r9+6001)] = heap32[(r10+2001)];
+	r9 = r7 >> 2;
+	r10 = r7 >> 2;
+	heap32[(r4+6002)] = heap32[(r5+2002)];
+	r4 = r7 >> 2;
+	heap32[(r9+6003)] = heap32[(r10+2003)];
+	r5 = r7 >> 2;
+	heap32[(r4+8000)] = 1065353216;
+	r4 = r7 >> 2;
+	heap32[(r5+8001)] = 0;
+	heap32[(r4+8002)] = 0;
+	heap32[(r8+8003)] = 0;
+}
+else{
+	r4 = r7 >> 2;
+	r9 = r7 >> 2;
+	heap32[(r4+6000)] = heap32[(r5+17)];
+	r4 = r7 >> 2;
+	heap32[(r9+6001)] = heap32[(r5+18)];
+	r9 = r7 >> 2;
+	heap32[(r4+6002)] = heap32[(r5+19)];
+	heap32[(r9+6003)] = heap32[(r5+20)];
+	f0 = heapFloat[(r5+13)];
+	r4 = r7 >> 2;
+	heapFloat[(r4+8000)] = f0;
+	f1 = heapFloat[(r5+14)];
+	r9 = r7 >> 2;
+	heapFloat[(r9+8001)] = f1;
+	f2 = heapFloat[(r5+15)];
+	r7 = r7 >> 2;
+	f0 = f0*f0;
+	f1 = f1*f1;
+	heapFloat[(r7+8002)] = f2;
+	heap32[(r8+8003)] = heap32[(r5+16)];
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f1 =                         1;
+	f0 = f1/f_g0;
+	f1 = heapFloat[(r4+8000)];
+	f1 = f1*f0;
+	heapFloat[(r4+8000)] = f1;
+	f1 = heapFloat[(r9+8001)];
+	f1 = f1*f0;
+	heapFloat[(r9+8001)] = f1;
+	f1 = heapFloat[(r7+8002)];
+	f0 = f1*f0;
+	heapFloat[(r7+8002)] = f0;
+}
+	r3 = (r3 + 16)|0;
+	heap32[(fp+-24)] = r6;
+if(!(r3 !=8000)) //_LBB21_4
+{
+break _6;
+}
+}
+	r0 = heap32[(r2+10001)];
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	gettimeofday(i7);
+	r3 = heap32[(r2+10006)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 - r5)|0;
+	r1 = (r1 / 1000)|0;
+	r3 = (r3 * 1000)|0;
+	r1 = (r1 + r3)|0;
+	r0 = (r1 + r0)|0;
+	heap32[(r2+10001)] = r0;
+	r1 = heap32[(r2+10000)];
+	r1 = (r1 + 1)|0;
+	heap32[(r2+10000)] = r1;
+if(!(r1 <51)) //_LBB21_10
+{
+	r3 = heap32[(r2+10004)];
+	r3 = r0 < r3 ? r0 : r3;
+	heap32[(r2+10004)] = r3;
+	r4 = heap32[(r2+10005)];
+	r4 = r0 > r4 ? r0 : r4;
+	heap32[(r2+10005)] = r4;
+	r5 = heap32[(r2+10002)];
+	r5 = (r0 + r5)|0;
+	heap32[(r2+10002)] = r5;
+	r6 = heap32[(r2+10003)];
+	r6 = (r6 + 1)|0;
+	f0 = r5; //fitos r5, f0
+	f1 = r6; //fitos r6, f1
+	f0 = f0/f1;
+	heap32[(r2+10003)] = r6;
+	r5 = _2E_str7;
+	r1 = (r1 * 500)|0;
+	f0 = f0; //fstod f0, f0
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r4;
+	llvm_writeDouble((i7+24),f0);
+	printf(i7);
+	heap32[(r2+10001)] = 0;
+	heap32[(r2+10000)] = 0;
+}
+}
+	return;
+}
+
+function _ZN13BenchmarkDemo10createWallERK9btVector3iS2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+var __label__ = 0;
+	i7 = sp + -96;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = gNumAlignedAllocs;
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+	f0 = heapFloat[(r0+2)];
+	f1 = heapFloat[(r0+1)];
+	f2 = heapFloat[(r0)];
+	r2 = (r2 + 1)|0;
+	heap32[(r1)] = r2;
+	heap32[(g0)] = 71;
+	malloc(i7);
+	r1 = r_g0;
+	r2 = heap32[(fp)];
+	if(r1 !=0) //_LBB22_2
+{
+	r3 = 0;
+	r4 = (r1 + 4)|0;
+	r3 = (r3 - r4)|0;
+	r3 = r3 & 15;
+	r3 = (r1 + r3)|0;
+	r4 = (r3 + 4)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = r1;
+	r1 = r4;
+}
+	r3 = r1 >> 2;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 1065353216;
+	heap32[(r3+4)] = 1065353216;
+	heap32[(r3+5)] = 1065353216;
+	r4 = _ZTV10btBoxShape;
+	heap32[(r3+6)] = 0;
+	r4 = (r4 + 8)|0;
+	heap32[(r3+11)] = 1025758986;
+	heap32[(r3)] = r4;
+	f3 =     -0.039999999105930328;
+	f2 = f2+f3;
+	heap32[(r3+1)] = 0;
+	f1 = f1+f3;
+	heapFloat[(r3+7)] = f2;
+	f0 = f0+f3;
+	heapFloat[(r3+8)] = f1;
+	heapFloat[(r3+9)] = f0;
+	r4 = sp + -16;
+	heap32[(r3+10)] = 0;
+	r3 = r4 >> 2;
+	heap32[(fp+-4)] = 0;
+	heap32[(r3+1)] = 0;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 1065353216;
+	heap32[(g0+2)] = r4;
+	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
+	f4 = heapFloat[(r0+1)];
+	f0 = heapFloat[(r0+2)];
+	r0 = sp + -80;
+	r3 = r0 >> 2;
+	heap32[(fp+-20)] = 1065353216;
+	heap32[(r3+1)] = 0;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 0;
+	heap32[(r3+4)] = 0;
+	heap32[(r3+5)] = 1065353216;
+	heap32[(r3+6)] = 0;
+	heap32[(r3+7)] = 0;
+	heap32[(r3+8)] = 0;
+	heap32[(r3+9)] = 0;
+	heap32[(r3+10)] = 1065353216;
+	heap32[(r3+11)] = 0;
+	f1 = f0+f0;
+	f2 =                       -12;
+	heap32[(r3+12)] = 0;
+	heap32[(r3+13)] = 0;
+	f2 = f1*f2;
+	f3 =                       0.5;
+	f3 = f2*f3;
+	f2 = f4+f4;
+	r5 = 12;
+	heap32[(r3+14)] = 0;
+	heap32[(r3+15)] = 0;
+_4: while(true){
+if(!(r5 <1)) //_LBB22_4
+{
+	r4 = 0;
+_8: while(true){
+	r6 = r2 >> 2;
+	f5 = r4; //fitos r4, f5
+	f6 =                         0;
+	f7 = heapFloat[(r6)];
+	f8 = heapFloat[(r6+2)];
+	f9 = heapFloat[(r6+1)];
+	f5 = f5*f1;
+	f6 = f7+f6;
+	f5 = f5+f3;
+	f7 = f9+f4;
+	heapFloat[(r3+12)] = f6;
+	f5 = f8+f5;
+	heapFloat[(r3+13)] = f7;
+	r6 = _ZL14benchmarkDemo4;
+	heapFloat[(r3+14)] = f5;
+	r7 = r6 >> 2;
+	heap32[(r3+15)] = 0;
+	r7 = heap32[(r7)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+2)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = 1065353216;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r1;
+	r4 = (r4 + 1)|0;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	if(r5 !=r4) //_LBB22_3
+{
+continue _8;
+}
+else{
+break _8;
+}
+}
+}
+	r5 = (r5 + -1)|0;
+	f4 = f4+f2;
+	f3 = f3+f0;
+	if(r5 ==0) //_LBB22_8
+{
+break _4;
+}
+else{
+continue _4;
+}
+}
+	return;
+}
+
+function _ZN13BenchmarkDemo19createLargeMeshBodyEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+var __label__ = 0;
+	i7 = sp + -80;var g0 = i7>>2; // save stack
+	r0 = sp + -64;
+	r1 = r0 >> 2;
+	heap32[(fp+-16)] = 1065353216;
+	heap32[(r1+1)] = 0;
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = 0;
+	heap32[(r1+4)] = 0;
+	heap32[(r1+5)] = 1065353216;
+	heap32[(r1+6)] = 0;
+	heap32[(r1+7)] = 0;
+	heap32[(r1+8)] = 0;
+	heap32[(r1+9)] = 0;
+	heap32[(r1+10)] = 1065353216;
+	heap32[(r1+11)] = 0;
+	heap32[(r1+12)] = 0;
+	heap32[(r1+13)] = 0;
+	r2 = 0;
+	heap32[(r1+14)] = 0;
+	heap32[(r1+15)] = 0;
+_1: while(true){
+	r3 = gNumAlignedAllocs;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r5 = (r4 + 1)|0;
+	heap32[(r3)] = r5;
+	heap32[(g0)] = 103;
+	malloc(i7);
+	r5 = r_g0;
+	if(r5 !=0) //_LBB23_3
+{
+	r6 = 0;
+	r7 = (r5 + 4)|0;
+	r6 = (r6 - r7)|0;
+	r6 = r6 & 15;
+	r6 = (r5 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r5;
+	r5 = r7;
+}
+	r6 = r5 >> 2;
+	heap32[(r6+1)] = 1065353216;
+	heap32[(r6+2)] = 1065353216;
+	r7 = _ZTV26btTriangleIndexVertexArray;
+	heap32[(r6+3)] = 1065353216;
+	r7 = (r7 + 8)|0;
+	heap32[(r6+4)] = 0;
+	r8 = 1;
+	heap32[(r6)] = r7;
+	heap8[r5+36] = r8;
+	heap32[(r6+8)] = 0;
+	heap32[(r6+6)] = 0;
+	r7 = LandscapeVtx;
+	r9 = r2 << 2;
+	r10 = LandscapeVtxCount;
+	r11 = LandscapeIdx;
+	r12 = LandscapeIdxCount;
+	r7 = (r7 + r9)|0;
+	r10 = (r10 + r9)|0;
+	r11 = (r11 + r9)|0;
+	r9 = (r12 + r9)|0;
+	heap32[(r6+7)] = 0;
+	r7 = r7 >> 2;
+	heap32[(r6+12)] = 0;
+	r10 = r10 >> 2;
+	r11 = r11 >> 2;
+	r9 = r9 >> 2;
+	r7 = heap32[(r7)];
+	r10 = heap32[(r10)];
+	r11 = heap32[(r11)];
+	r9 = heap32[(r9)];
+	r12 = (r4 + 2)|0;
+	heap32[(r3)] = r12;
+	heap32[(g0)] = 51;
+	malloc(i7);
+	r12 = r_g0;
+	r9 = (r9 / 3)|0;
+	if(r12 !=0) //_LBB23_6
+{
+	r13 = 0;
+	r14 = (r12 + 4)|0;
+	r13 = (r13 - r14)|0;
+	r13 = r13 & 15;
+	r13 = (r12 + r13)|0;
+	r14 = (r13 + 4)|0;
+	r13 = r13 >> 2;
+	heap32[(r13)] = r12;
+	r12 = r14;
+}
+	heap8[r5+36] = r8;
+	heap32[(r6+8)] = r12;
+	heap32[(r6+7)] = 1;
+	r13 = heap32[(r6+6)];
+	r13 = r13 << 5;
+	r12 = (r12 + r13)|0;
+	r12 = r12 >> 2;
+	heap32[(r12)] = r9;
+	heap32[(r12+1)] = r11;
+	heap32[(r12+2)] = 6;
+	heap32[(r12+3)] = r10;
+	heap32[(r12+4)] = r7;
+	heap32[(r12+5)] = 12;
+	heap32[(r12+6)] = 3;
+	heap32[(r12+7)] = 0;
+	r7 = heap32[(r6+6)];
+	r9 = (r7 + 1)|0;
+	heap32[(r6+6)] = r9;
+	r7 = r7 << 5;
+	r9 = heap32[(r6+8)];
+	r7 = (r9 + r7)|0;
+	r7 = r7 >> 2;
+	r4 = (r4 + 3)|0;
+	heap32[(r7+6)] = 3;
+	heap32[(r3)] = r4;
+	heap32[(g0)] = 95;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB23_9
+{
+	r4 = 0;
+	r7 = (r3 + 4)|0;
+	r4 = (r4 - r7)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r7 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r7;
+}
+	r4 = r3 >> 2;
+	r7 = _ZTV19btTriangleMeshShape;
+	heap32[(r4+2)] = 0;
+	r7 = (r7 + 8)|0;
+	heap32[(r4+3)] = 0;
+	heap32[(r4)] = r7;
+	heap32[(r4+12)] = r5;
+	heap32[(r4+1)] = 21;
+	r7 = heap32[(r6)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+10)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r7 = r_g0;
+	if(r7 ==0) //_LBB23_12
+{
+	heap32[(g0)] = r3;
+	_ZN19btTriangleMeshShape15recalcLocalAabbEv(i7);
+}
+else{
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+12)];
+	r7 = (r3 + 16)|0;
+	r9 = (r3 + 32)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r9;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+}
+	r5 = _ZTV22btBvhTriangleMeshShape;
+	r5 = (r5 + 8)|0;
+	heap32[(r4)] = r5;
+	heap32[(r4+13)] = 0;
+	heap32[(r4+14)] = 0;
+	r5 = 0;
+	heap8[r3+60] = r8;
+	heap8[r3+61] = r5;
+	heap32[(r4+1)] = 21;
+	heap32[(g0)] = r3;
+	_ZN22btBvhTriangleMeshShape17buildOptimizedBvhEv(i7);
+	heap32[(r1+12)] = 0;
+	heap32[(r1+13)] = -1043857408;
+	r4 = _ZL14benchmarkDemo4;
+	heap32[(r1+14)] = 0;
+	r5 = r4 >> 2;
+	heap32[(r1+15)] = 0;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+2)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r3;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r2 = (r2 + 1)|0;
+	r3 = r_g0 >> 2;
+	heap32[(r3+56)] = 1063675494;
+	if(r2 !=8) //_LBB23_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+	return;
+}
+
+function _ZN13BenchmarkDemo11createTest6Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+var __label__ = 0;
+	i7 = sp + -112;var g0 = i7>>2; // save stack
+	r0 = gNumAlignedAllocs;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	heap32[(g0)] = 127;
+	malloc(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB24_2
+{
+	r1 = 0;
+	r2 = (r0 + 4)|0;
+	r1 = (r1 - r2)|0;
+	r1 = r1 & 15;
+	r1 = (r0 + r1)|0;
+	r2 = (r1 + 4)|0;
+	r1 = r1 >> 2;
+	heap32[(r1)] = r0;
+	r0 = r2;
+}
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 0;
+	r1 = 0;
+	_ZN17btConvexHullShapeC1EPKfii(i7);
+_4: while(true){
+	r2 = (r1 * -3)|0;
+	r3 = _ZL7TaruVtx;
+	r2 = r2 << 2;
+	r2 = (r3 + r2)|0;
+	r3 = sp + -96;
+	r2 = r2 >> 2;
+	r4 = r3 >> 2;
+	heap32[(fp+-24)] = heap32[(r2)];
+	heap32[(r4+1)] = heap32[(r2+1)];
+	heap32[(r4+2)] = heap32[(r2+2)];
+	heap32[(r4+3)] = 0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	r1 = (r1 + -1)|0;
+	_ZN17btConvexHullShape8addPointERK9btVector3(i7);
+	if(r1 ==-43) //_LBB24_10
+{
+break _4;
+}
+else{
+continue _4;
+}
+}
+	r1 = sp + -64;
+	r2 = r1 >> 2;
+	heap32[(fp+-16)] = 1065353216;
+	heap32[(r2+1)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+5)] = 1065353216;
+	heap32[(r2+6)] = 0;
+	heap32[(r2+7)] = 0;
+	heap32[(r2+8)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 1065353216;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+12)] = 0;
+	heap32[(r2+13)] = 0;
+	heap32[(r2+14)] = 0;
+	r3 = sp + -80;
+	heap32[(r2+15)] = 0;
+	r4 = r3 >> 2;
+	heap32[(fp+-20)] = 0;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+	r5 = r0 >> 2;
+	heap32[(r4+3)] = 0;
+	r4 = heap32[(r5)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+8)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 1065353216;
+	heap32[(g0+2)] = r3;
+	r3 = 10;
+	f0 =                        20;
+	f1 =                         2;
+	f2 =                       -25;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r7 = _ZL14benchmarkDemo4;
+_7: while(true){
+	f3 =                         3;
+	f4 =                        25;
+	f5 = f1+f3;
+	f4 = f0+f4;
+	r4 = 0;
+	r5 = r4;
+_9: while(true){
+	f6 = r5; //fitos r5, f6
+	f6 = f6*f5;
+	f6 = f6+f2;
+	f7 =                         5;
+	f6 = f6*f7;
+	f8 =                         0;
+	f6 = f6+f8;
+	r6 = r4;
+_11: while(true){
+	f9 = r6; //fitos r6, f9
+	f9 = f9*f5;
+	f9 = f9+f2;
+	f9 = f9*f7;
+	f9 = f9+f8;
+	heapFloat[(r2+12)] = f9;
+	heapFloat[(r2+13)] = f4;
+	heapFloat[(r2+14)] = f6;
+	r8 = r7 >> 2;
+	heap32[(r2+15)] = 0;
+	r8 = heap32[(r8)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = 1065353216;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r0;
+	r6 = (r6 + 1)|0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	if(r6 !=10) //_LBB24_7
+{
+continue _11;
+}
+else{
+break _11;
+}
+}
+	r5 = (r5 + 1)|0;
+	if(r5 !=10) //_LBB24_6
+{
+continue _9;
+}
+else{
+break _9;
+}
+}
+	f4 =        1.1000000238418579;
+	f5 =      -0.05000000074505806;
+	f4 = f1*f4;
+	f1 = f1*f5;
+	f5 =                         9;
+	f3 = f4+f3;
+	f1 = f1*f5;
+	r3 = (r3 + -1)|0;
+	f0 = f0+f3;
+	f2 = f1+f2;
+	f1 = f4;
+	if(r3 ==0) //_LBB24_11
+{
+break _7;
+}
+else{
+continue _7;
+}
+}
+	_ZN13BenchmarkDemo19createLargeMeshBodyEv(i7);
+	return;
+}
+
+function _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -168;var g0 = i7>>2; // save stack
+	r0 = sp + -16;
+	r1 = r0 >> 2;
+	heap32[(fp+-4)] = 0;
+	heap32[(r1+1)] = 0;
+	r2 = heap32[(fp+2)];
+	heap32[(r1+2)] = 0;
+	r3 = r2 >> 2;
+	heap32[(r1+3)] = 0;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+8)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = 1065353216;
+	heap32[(g0+2)] = r0;
+	r0 = _ZGVZN11btTransform11getIdentityEvE17identityTransform;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = heapU8[r0];
+if(!(r3 !=0)) //_LBB25_4
+{
+	r3 = _ZGVZN11btMatrix3x311getIdentityEvE14identityMatrix;
+	r4 = heapU8[r3];
+if(!(r4 !=0)) //_LBB25_3
+{
+	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
+	r5 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
+	r4 = r4 >> 2;
+	r6 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
+	r5 = r5 >> 2;
+	heap32[(r4)] = 1065353216;
+	r4 = r6 >> 2;
+	heap32[(r5)] = 1065353216;
+	r5 = 1;
+	heap32[(r4)] = 1065353216;
+	heap8[r3] = r5;
+}
+	r3 = _ZZN11btTransform11getIdentityEvE17identityTransform;
+	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
+	r3 = r3 >> 2;
+	r4 = r4 >> 2;
+	heap32[(r3)] = heap32[(r4)];
+	heap32[(r3+1)] = 0;
+	heap32[(r3+2)] = 0;
+	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
+	heap32[(r3+3)] = 0;
+	r4 = r4 >> 2;
+	heap32[(r3+4)] = 0;
+	heap32[(r3+5)] = heap32[(r4)];
+	heap32[(r3+6)] = 0;
+	heap32[(r3+7)] = 0;
+	r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
+	heap32[(r3+8)] = 0;
+	r4 = r4 >> 2;
+	heap32[(r3+9)] = 0;
+	heap32[(r3+10)] = heap32[(r4)];
+	heap32[(r3+11)] = 0;
+	heap32[(r3+12)] = 0;
+	heap32[(r3+13)] = 0;
+	heap32[(r3+14)] = 0;
+	r4 = 1;
+	heap32[(r3+15)] = 0;
+	heap8[r0] = r4;
+}
+	r0 = heap32[(fp)];
+	r3 = heap32[(fp+1)];
+	heap32[(g0)] = 200;
+	r4 = _ZTV20btDefaultMotionState;
+	_Znwj(i7);
+	r6 = r_g0 >> 2;
+	r4 = (r4 + 8)|0;
+	r3 = r3 >> 2;
+	heap32[(r6)] = r4;
+	heap32[(r6+1)] = heap32[(r3)];
+	heap32[(r6+2)] = heap32[(r3+1)];
+	heap32[(r6+3)] = heap32[(r3+2)];
+	heap32[(r6+4)] = heap32[(r3+3)];
+	heap32[(r6+5)] = heap32[(r3+4)];
+	heap32[(r6+6)] = heap32[(r3+5)];
+	heap32[(r6+7)] = heap32[(r3+6)];
+	heap32[(r6+8)] = heap32[(r3+7)];
+	heap32[(r6+9)] = heap32[(r3+8)];
+	heap32[(r6+10)] = heap32[(r3+9)];
+	heap32[(r6+11)] = heap32[(r3+10)];
+	heap32[(r6+12)] = heap32[(r3+11)];
+	heap32[(r6+13)] = heap32[(r3+12)];
+	heap32[(r6+14)] = heap32[(r3+13)];
+	r4 = _ZZN11btTransform11getIdentityEvE17identityTransform;
+	heap32[(r6+15)] = heap32[(r3+14)];
+	r4 = r4 >> 2;
+	heap32[(r6+16)] = heap32[(r3+15)];
+	heap32[(r6+17)] = heap32[(r4)];
+	heap32[(r6+18)] = heap32[(r4+1)];
+	heap32[(r6+19)] = heap32[(r4+2)];
+	heap32[(r6+20)] = heap32[(r4+3)];
+	heap32[(r6+21)] = heap32[(r4+4)];
+	heap32[(r6+22)] = heap32[(r4+5)];
+	heap32[(r6+23)] = heap32[(r4+6)];
+	heap32[(r6+24)] = heap32[(r4+7)];
+	heap32[(r6+25)] = heap32[(r4+8)];
+	heap32[(r6+26)] = heap32[(r4+9)];
+	heap32[(r6+27)] = heap32[(r4+10)];
+	heap32[(r6+28)] = heap32[(r4+11)];
+	heap32[(r6+29)] = heap32[(r4+12)];
+	heap32[(r6+30)] = heap32[(r4+13)];
+	heap32[(r6+31)] = heap32[(r4+14)];
+	heap32[(r6+32)] = heap32[(r4+15)];
+	heap32[(r6+33)] = heap32[(r3)];
+	heap32[(r6+34)] = heap32[(r3+1)];
+	heap32[(r6+35)] = heap32[(r3+2)];
+	heap32[(r6+36)] = heap32[(r3+3)];
+	heap32[(r6+37)] = heap32[(r3+4)];
+	heap32[(r6+38)] = heap32[(r3+5)];
+	heap32[(r6+39)] = heap32[(r3+6)];
+	heap32[(r6+40)] = heap32[(r3+7)];
+	heap32[(r6+41)] = heap32[(r3+8)];
+	heap32[(r6+42)] = heap32[(r3+9)];
+	heap32[(r6+43)] = heap32[(r3+10)];
+	heap32[(r6+44)] = heap32[(r3+11)];
+	heap32[(r6+45)] = heap32[(r3+12)];
+	heap32[(r6+46)] = heap32[(r3+13)];
+	heap32[(r6+47)] = heap32[(r3+14)];
+	heap32[(r6+48)] = heap32[(r3+15)];
+	r3 = sp + -152;
+	heap32[(r6+49)] = 0;
+	r4 = r3 >> 2;
+	heap32[(fp+-38)] = 1065353216;
+	heap32[(r4+1)] = r_g0;
+	heap32[(r4+18)] = r2;
+	heap32[(r4+19)] = heap32[(fp+-4)];
+	heap32[(r4+20)] = heap32[(r1+1)];
+	heap32[(r4+21)] = heap32[(r1+2)];
+	heap32[(r4+22)] = heap32[(r1+3)];
+	heap32[(r4+23)] = 0;
+	heap32[(r4+24)] = 0;
+	heap32[(r4+25)] = 1056964608;
+	heap32[(r4+26)] = 0;
+	heap32[(r4+27)] = 1061997773;
+	r1 = 0;
+	heap32[(r4+28)] = 1065353216;
+	heap8[sp+-36] = r1;
+	heap32[(r4+30)] = 1000593162;
+	heap32[(r4+31)] = 1008981770;
+	heap32[(r4+32)] = 1008981770;
+	heap32[(r4+33)] = 1008981770;
+	heap32[(r4+2)] = 1065353216;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+4)] = 0;
+	heap32[(r4+5)] = 0;
+	heap32[(r4+6)] = 0;
+	heap32[(r4+7)] = 1065353216;
+	heap32[(r4+8)] = 0;
+	heap32[(r4+9)] = 0;
+	heap32[(r4+10)] = 0;
+	heap32[(r4+11)] = 0;
+	heap32[(r4+12)] = 1065353216;
+	heap32[(r4+13)] = 0;
+	heap32[(r4+14)] = 0;
+	heap32[(r4+15)] = 0;
+	r2 = gNumAlignedAllocs;
+	heap32[(r4+16)] = 0;
+	r2 = r2 >> 2;
+	heap32[(r4+17)] = 0;
+	r4 = heap32[(r2)];
+	r4 = (r4 + 1)|0;
+	heap32[(r2)] = r4;
+	heap32[(g0)] = 627;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB25_6
+{
+	r4 = (r2 + 4)|0;
+	r1 = (r1 - r4)|0;
+	r1 = r1 & 15;
+	r1 = (r2 + r1)|0;
+	r4 = (r1 + 4)|0;
+	r1 = r1 >> 2;
+	heap32[(r1)] = r2;
+	r2 = r4;
+}
+	r1 = r2 >> 2;
+	heap32[(r1+41)] = 1065353216;
+	heap32[(r1+42)] = 1065353216;
+	heap32[(r1+43)] = 1065353216;
+	heap32[(r1+44)] = 0;
+	heap32[(r1+45)] = 0;
+	heap32[(r1+46)] = 1566444395;
+	heap32[(r1+47)] = 0;
+	heap32[(r1+48)] = 0;
+	heap32[(r1+49)] = 0;
+	heap32[(r1+50)] = 0;
+	heap32[(r1+51)] = 1;
+	heap32[(r1+52)] = -1;
+	heap32[(r1+53)] = -1;
+	heap32[(r1+54)] = 1;
+	heap32[(r1+55)] = 0;
+	heap32[(r1+56)] = 1056964608;
+	heap32[(r1+57)] = 0;
+	heap32[(r1+58)] = 1;
+	heap32[(r1+59)] = 0;
+	heap32[(r1+60)] = 1065353216;
+	heap32[(r1+61)] = 0;
+	heap32[(r1+62)] = 0;
+	heap32[(r1+63)] = 0;
+	heap32[(r1+1)] = 1065353216;
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = 0;
+	heap32[(r1+4)] = 0;
+	heap32[(r1+5)] = 0;
+	heap32[(r1+6)] = 1065353216;
+	heap32[(r1+7)] = 0;
+	heap32[(r1+8)] = 0;
+	heap32[(r1+9)] = 0;
+	heap32[(r1+10)] = 0;
+	heap32[(r1+11)] = 1065353216;
+	heap32[(r1+12)] = 0;
+	heap32[(r1+13)] = 0;
+	heap32[(r1+14)] = 0;
+	r4 = _ZTV11btRigidBody;
+	heap32[(r1+15)] = 0;
+	r4 = (r4 + 8)|0;
+	heap32[(r1+16)] = 0;
+	r5 = 1;
+	heap32[(r1)] = r4;
+	heap8[r2+492] = r5;
+	heap32[(r1+122)] = 0;
+	heap32[(r1+120)] = 0;
+	heap32[(r1+121)] = 0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+20)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r_g0 = r2;
+	return;
+}
+
+function _ZN13BenchmarkDemo11initPhysicsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+var __label__ = 0;
+	i7 = sp + -41432;var g0 = i7>>2; // save stack
+	heap32[(g0)] = 88;
+	_Znwj(i7);
+	r0 = r_g0;
+	r1 = _ZTV31btDefaultCollisionConfiguration;
+	r2 = gNumAlignedAllocs;
+	r3 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	r2 = r2 >> 2;
+	heap32[(r3)] = r1;
+	r1 = heap32[(r2)];
+	r3 = (r1 + 1)|0;
+	heap32[(r2)] = r3;
+	heap32[(g0)] = 379;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_2
+{
+	r4 = 0;
+	r5 = (r3 + 4)|0;
+	r4 = (r4 - r5)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r5 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r5;
+}
+	r4 = r3 >> 2;
+	heap32[(r4+77)] = 953267991;
+	r4 = heapU8[r3+332];
+	r4 = r4 & 240;
+	r5 = r0 >> 2;
+	heap8[r3+332] = r4;
+	r4 = (r1 + 2)|0;
+	heap32[(r5+8)] = r3;
+	heap32[(r2)] = r4;
+	heap32[(g0)] = 23;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_5
+{
+	r4 = 0;
+	r6 = (r3 + 4)|0;
+	r4 = (r4 - r6)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r6 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r6;
+}
+	r4 = _ZTV30btGjkEpaPenetrationDepthSolver;
+	r6 = r3 >> 2;
+	r4 = (r4 + 8)|0;
+	heap32[(r6)] = r4;
+	r4 = (r1 + 3)|0;
+	heap32[(r5+9)] = r3;
+	heap32[(r2)] = r4;
+	heap32[(g0)] = 43;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB26_8
+{
+	r3 = 0;
+	r6 = (r4 + 4)|0;
+	r3 = (r3 - r6)|0;
+	r3 = r3 & 15;
+	r3 = (r4 + r3)|0;
+	r6 = r3 >> 2;
+	heap32[(r6)] = r4;
+	r4 = (r3 + 4)|0;
+	r3 = heap32[(r5+9)];
+}
+	r6 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE;
+	r7 = heap32[(r5+8)];
+	r8 = 0;
+	r9 = r4 >> 2;
+	r6 = (r6 + 8)|0;
+	heap8[r4+4] = r8;
+	heap32[(r9)] = r6;
+	heap32[(r9+4)] = 0;
+	heap32[(r9+5)] = 3;
+	heap32[(r9+3)] = r7;
+	heap32[(r9+2)] = r3;
+	r3 = (r1 + 4)|0;
+	heap32[(r5+10)] = r4;
+	heap32[(r2)] = r3;
+	heap32[(g0)] = 27;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_11
+{
+	r4 = (r3 + 4)|0;
+	r4 = (r8 - r4)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r6 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r6;
+}
+	r4 = _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE;
+	r6 = r3 >> 2;
+	r4 = (r4 + 8)|0;
+	heap8[r3+4] = r8;
+	heap32[(r6)] = r4;
+	r4 = (r1 + 5)|0;
+	heap32[(r5+11)] = r3;
+	heap32[(r2)] = r4;
+	heap32[(g0)] = 27;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_14
+{
+	r4 = (r3 + 4)|0;
+	r4 = (r8 - r4)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r6 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r6;
+}
+	r4 = _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE;
+	r6 = r3 >> 2;
+	r4 = (r4 + 8)|0;
+	heap8[r3+4] = r8;
+	heap32[(r6)] = r4;
+	r4 = (r1 + 6)|0;
+	heap32[(r5+12)] = r3;
+	heap32[(r2)] = r4;
+	heap32[(g0)] = 27;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_17
+{
+	r4 = (r3 + 4)|0;
+	r4 = (r8 - r4)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r6 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r6;
+}
+	r4 = _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE;
+	r6 = r3 >> 2;
+	r4 = (r4 + 8)|0;
+	heap8[r3+4] = r8;
+	heap32[(r6)] = r4;
+	r4 = (r1 + 7)|0;
+	heap32[(r5+13)] = r3;
+	heap32[(r2)] = r4;
+	heap32[(g0)] = 27;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_20
+{
+	r4 = (r3 + 4)|0;
+	r4 = (r8 - r4)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r6 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r6;
+}
+	r4 = _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE;
+	r6 = r3 >> 2;
+	r4 = (r4 + 8)|0;
+	heap8[r3+4] = r8;
+	heap32[(r6)] = r4;
+	r4 = (r1 + 8)|0;
+	heap32[(r5+14)] = r3;
+	heap32[(r2)] = r4;
+	heap32[(g0)] = 27;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_23
+{
+	r4 = (r3 + 4)|0;
+	r4 = (r8 - r4)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r6 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r6;
+}
+	r4 = _ZTVN16btEmptyAlgorithm10CreateFuncE;
+	r6 = r3 >> 2;
+	r4 = (r4 + 8)|0;
+	heap8[r3+4] = r8;
+	heap32[(r6)] = r4;
+	r4 = (r1 + 9)|0;
+	heap32[(r5+15)] = r3;
+	heap32[(r2)] = r4;
+	heap32[(g0)] = 27;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_26
+{
+	r4 = (r3 + 4)|0;
+	r4 = (r8 - r4)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r6 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r6;
+}
+	r4 = _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE;
+	r6 = r3 >> 2;
+	r4 = (r4 + 8)|0;
+	heap8[r3+4] = r8;
+	heap32[(r6)] = r4;
+	r4 = (r1 + 10)|0;
+	heap32[(r5+16)] = r3;
+	heap32[(r2)] = r4;
+	heap32[(g0)] = 27;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_29
+{
+	r4 = (r3 + 4)|0;
+	r4 = (r8 - r4)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r6 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r6;
+}
+	r4 = _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE;
+	r6 = r3 >> 2;
+	r4 = (r4 + 8)|0;
+	heap8[r3+4] = r8;
+	heap32[(r6)] = r4;
+	r6 = (r1 + 11)|0;
+	heap32[(r5+18)] = r3;
+	heap32[(r2)] = r6;
+	heap32[(g0)] = 27;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_32
+{
+	r6 = (r3 + 4)|0;
+	r6 = (r8 - r6)|0;
+	r6 = r6 & 15;
+	r6 = (r3 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r3;
+	r3 = r7;
+}
+	r6 = r3 >> 2;
+	heap8[r3+4] = r8;
+	heap32[(r6)] = r4;
+	r4 = 1;
+	heap32[(r5+19)] = r3;
+	r6 = (r1 + 12)|0;
+	heap8[r3+4] = r4;
+	heap32[(r2)] = r6;
+	heap32[(g0)] = 27;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_35
+{
+	r6 = (r3 + 4)|0;
+	r6 = (r8 - r6)|0;
+	r6 = r6 & 15;
+	r6 = (r3 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r3;
+	r3 = r7;
+}
+	r6 = _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE;
+	r7 = r3 >> 2;
+	r6 = (r6 + 8)|0;
+	heap8[r3+4] = r8;
+	heap32[(r7)] = r6;
+	r6 = (r1 + 13)|0;
+	heap32[(r5+17)] = r3;
+	heap32[(r2)] = r6;
+	heap32[(g0)] = 35;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_38
+{
+	r6 = (r3 + 4)|0;
+	r6 = (r8 - r6)|0;
+	r6 = r6 & 15;
+	r6 = (r3 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r3;
+	r3 = r7;
+}
+	r6 = _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE;
+	r7 = r3 >> 2;
+	r6 = (r6 + 8)|0;
+	heap8[r3+4] = r8;
+	heap32[(r7)] = r6;
+	heap32[(r7+2)] = 1;
+	heap32[(r7+3)] = 1;
+	r7 = (r1 + 14)|0;
+	heap32[(r5+21)] = r3;
+	heap32[(r2)] = r7;
+	heap32[(g0)] = 35;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_41
+{
+	r7 = (r3 + 4)|0;
+	r7 = (r8 - r7)|0;
+	r7 = r7 & 15;
+	r7 = (r3 + r7)|0;
+	r9 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r3;
+	r3 = r9;
+}
+	r7 = r3 >> 2;
+	heap8[r3+4] = r8;
+	heap32[(r7)] = r6;
+	heap32[(r7+2)] = 1;
+	heap32[(r7+3)] = 1;
+	heap32[(r5+20)] = r3;
+	heap8[r3+4] = r4;
+	r3 = (r1 + 15)|0;
+	heap8[r0+12] = r4;
+	heap32[(r2)] = r3;
+	heap32[(g0)] = 39;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_44
+{
+	r6 = (r3 + 4)|0;
+	r6 = (r8 - r6)|0;
+	r6 = r6 & 15;
+	r6 = (r3 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r3;
+	r3 = r7;
+}
+	r6 = r3 >> 2;
+	heap32[(r6+1)] = 0;
+	heap32[(r6+3)] = 0;
+	heap8[r3+16] = r8;
+	heap32[(r6)] = 0;
+	r7 = (r1 + 16)|0;
+	heap32[(r6+2)] = 0;
+	heap32[(r2)] = r7;
+	heap32[(g0)] = 19;
+	malloc(i7);
+	r7 = r_g0;
+	if(r7 !=0) //_LBB26_47
+{
+	r9 = (r7 + 4)|0;
+	r9 = (r8 - r9)|0;
+	r9 = r9 & 15;
+	r9 = (r7 + r9)|0;
+	r10 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r7;
+	r7 = r10;
+}
+	heap32[(r6)] = r7;
+	heap32[(r6+1)] = 0;
+	heap32[(r5+2)] = r3;
+	r3 = (r1 + 17)|0;
+	heap8[r0+20] = r4;
+	heap32[(r2)] = r3;
+	heap32[(g0)] = 39;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_50
+{
+	r6 = (r3 + 4)|0;
+	r6 = (r8 - r6)|0;
+	r6 = r6 & 15;
+	r6 = (r3 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r3;
+	r3 = r7;
+}
+	r6 = r3 >> 2;
+	heap32[(r6)] = 1140;
+	r7 = (r1 + 18)|0;
+	heap32[(r6+1)] = 4096;
+	heap32[(r2)] = r7;
+	heap32[(g0)] = 4669459;
+	malloc(i7);
+	r7 = r_g0;
+	if(r7 !=0) //_LBB26_53
+{
+	r9 = (r7 + 4)|0;
+	r9 = (r8 - r9)|0;
+	r9 = r9 & 15;
+	r9 = (r7 + r9)|0;
+	r10 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r7;
+	r7 = r10;
+}
+	heap32[(r6+4)] = r7;
+	r9 = 4095;
+	r10 = 1140;
+	heap32[(r6+3)] = r7;
+	heap32[(r6+2)] = 4096;
+	r11 = r7;
+_55: while(true){
+	r7 = r7 >> 2;
+	r10 = (r11 + r10)|0;
+	heap32[(r7)] = r10;
+	r10 = heap32[(r6)];
+	r7 = (r11 + r10)|0;
+	r9 = (r9 + -1)|0;
+	r11 = r7;
+	if(r9 !=0) //_LBB26_55
+{
+continue _55;
+}
+else{
+break _55;
+}
+}
+	r6 = r7 >> 2;
+	heap32[(r6)] = 0;
+	heap32[(r5+4)] = r3;
+	r3 = (r1 + 19)|0;
+	heap8[r0+28] = r4;
+	heap32[(r2)] = r3;
+	heap32[(g0)] = 39;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_58
+{
+	r6 = (r3 + 4)|0;
+	r6 = (r8 - r6)|0;
+	r6 = r6 & 15;
+	r6 = (r3 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r3;
+	r3 = r7;
+}
+	r6 = r3 >> 2;
+	heap32[(r6)] = 80;
+	r1 = (r1 + 20)|0;
+	heap32[(r6+1)] = 4096;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = 327699;
+	malloc(i7);
+	r1 = r_g0;
+	if(r1 !=0) //_LBB26_61
+{
+	r7 = (r1 + 4)|0;
+	r7 = (r8 - r7)|0;
+	r7 = r7 & 15;
+	r7 = (r1 + r7)|0;
+	r9 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r1;
+	r1 = r9;
+}
+	heap32[(r6+4)] = r1;
+	r7 = 4095;
+	r9 = 80;
+	heap32[(r6+3)] = r1;
+	heap32[(r6+2)] = 4096;
+	r10 = r1;
+_64: while(true){
+	r1 = r1 >> 2;
+	r9 = (r10 + r9)|0;
+	heap32[(r1)] = r9;
+	r9 = heap32[(r6)];
+	r1 = (r10 + r9)|0;
+	r7 = (r7 + -1)|0;
+	r10 = r1;
+	if(r7 !=0) //_LBB26_63
+{
+continue _64;
+}
+else{
+break _64;
+}
+}
+	r1 = r1 >> 2;
+	r6 = _ZL14benchmarkDemo4;
+	heap32[(r1)] = 0;
+	r1 = r6 >> 2;
+	heap32[(r5+6)] = r3;
+	heap32[(r1+16)] = r0;
+	heap32[(g0)] = 5388;
+	_Znwj(i7);
+	r0 = r_g0;
+	r3 = _ZTV21btCollisionDispatcher;
+	r5 = heap32[(r1+16)];
+	r3 = (r3 + 8)|0;
+	r7 = r0 >> 2;
+	heap32[(r7)] = r3;
+	heap32[(r7+1)] = 2;
+	heap8[r0+24] = r4;
+	heap32[(r7+5)] = 0;
+	r3 = _ZTV16btManifoldResult;
+	heap32[(r7+3)] = 0;
+	r3 = (r3 + 8)|0;
+	heap32[(r7+4)] = 0;
+	heap32[(r7+7)] = r3;
+	r3 = _ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo__index__;
+	heap32[(r7+1346)] = r5;
+	heap32[(r7+47)] = r3;
+	r3 = r5 >> 2;
+	r9 = heap32[(r3)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+3)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	heap32[(r7+48)] = r_g0;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+2)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r5 = (r0 + 200)|0;
+	heap32[(r7+49)] = r_g0;
+_67: while(true){
+	if(r8 >35) //_LBB26_72
+{
+__label__ = 52;
+break _67;
+}
+else{
+	r3 = 0;
+_70: while(true){
+	if(r3 <36) //_LBB26_65
+{
+	r7 = r0 >> 2;
+	r7 = heap32[(r7+1346)];
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+5)];
+	r10 = r3 << 2;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r3;
+	r7 = (r5 + r10)|0;
+	r7 = r7 >> 2;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r9 = r_g0;
+	heap32[(r7)] = r9;
+	if(r9 !=0) //_LBB26_67
+{
+	r3 = (r3 + 1)|0;
+}
+else{
+__label__ = 46;
+break _67;
+}
+}
+else{
+break _70;
+}
+}
+	r8 = (r8 + 1)|0;
+	r5 = (r5 + 144)|0;
+continue _67;
+}
+}
+switch(__label__ ){//multiple entries
+case 52:
+	heap32[(r1+14)] = r0;
+	heap32[(g0)] = 76;
+	_Znwj(i7);
+	r0 = r_g0;
+	heap32[(g0)] = r0;
+	_ZN28btHashedOverlappingPairCacheC1Ev(i7);
+	r3 = heap32[(r2)];
+	r5 = (r3 + 1)|0;
+	heap32[(r2)] = r5;
+	heap32[(g0)] = 135;
+	malloc(i7);
+	r7 = r_g0;
+	if(r7 !=0) //_LBB26_74
+{
+	r8 = 0;
+	r9 = (r7 + 4)|0;
+	r8 = (r8 - r9)|0;
+	r8 = r8 & 15;
+	r8 = (r7 + r8)|0;
+	r9 = (r8 + 4)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = r7;
+	r7 = r9;
+}
+	r8 = _ZTV20btAxisSweep3InternalItE;
+	r9 = r7 >> 2;
+	r8 = (r8 + 8)|0;
+	r10 = -2;
+	heap32[(r9)] = r8;
+	r8 = -1;
+	heap16[(r7+4)>>1] = r10;
+	heap16[(r7+6)>>1] = r8;
+	heap32[(r9+23)] = r0;
+	r8 = 0;
+	heap32[(r9+24)] = 0;
+	heap8[r7+100] = r8;
+	heap32[(r9+26)] = 0;
+	heap32[(r9+27)] = 0;
+	if(r0 ==0) //_LBB26_77
+{
+	r5 = (r3 + 2)|0;
+	heap32[(r2)] = r5;
+	heap32[(g0)] = 95;
+	malloc(i7);
+	r5 = r_g0;
+	if(r5 !=0) //_LBB26_79
+{
+	r0 = 0;
+	r3 = (r5 + 4)|0;
+	r0 = (r0 - r3)|0;
+	r0 = r0 & 15;
+	r0 = (r5 + r0)|0;
+	r3 = (r0 + 4)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r5;
+	r5 = r3;
+}
+	heap32[(g0)] = r5;
+	_ZN28btHashedOverlappingPairCacheC1Ev(i7);
+	heap32[(r9+23)] = r5;
+	heap8[r7+100] = r4;
+	r5 = heap32[(r2)];
+}
+	r0 = (r5 + 1)|0;
+	heap32[(r2)] = r0;
+	heap32[(g0)] = 43;
+	malloc(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB26_83
+{
+	r3 = (r0 + 4)|0;
+	r3 = (r8 - r3)|0;
+	r3 = r3 & 15;
+	r3 = (r0 + r3)|0;
+	r10 = (r3 + 4)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = r0;
+	r0 = r10;
+}
+	r3 = _ZTV15btNullPairCache;
+	r10 = r0 >> 2;
+	r3 = (r3 + 8)|0;
+	heap32[(r10)] = r3;
+	heap8[r0+20] = r4;
+	heap32[(r10+4)] = 0;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	r3 = (r5 + 2)|0;
+	heap32[(r9+28)] = r0;
+	heap32[(r2)] = r3;
+	heap32[(g0)] = 175;
+	malloc(i7);
+	r10 = r_g0;
+	if(r10 !=0) //_LBB26_86
+{
+	r11 = (r10 + 4)|0;
+	r11 = (r8 - r11)|0;
+	r11 = r11 & 15;
+	r11 = (r10 + r11)|0;
+	r12 = (r11 + 4)|0;
+	r11 = r11 >> 2;
+	heap32[(r11)] = r10;
+	r10 = r12;
+}
+	r11 = _ZTV16btDbvtBroadphase;
+	r12 = r10 >> 2;
+	r11 = (r11 + 8)|0;
+	heap32[(r12)] = r11;
+_92: while(true){
+	r11 = (r10 + r8)|0;
+	r13 = r11 >> 2;
+	heap8[r11+40] = r4;
+	heap32[(r13+9)] = 0;
+	heap32[(r13+7)] = 0;
+	heap32[(r13+8)] = 0;
+	heap32[(r13+1)] = 0;
+	heap32[(r13+2)] = 0;
+	heap32[(r13+3)] = -1;
+	r8 = (r8 + 40)|0;
+	heap32[(r13+4)] = 0;
+	heap32[(r13+5)] = 0;
+	if(r8 !=80) //_LBB26_88
+{
+continue _92;
+}
+else{
+break _92;
+}
+}
+	r8 = 0;
+	r11 = r0 == r8;
+	heap8[r10+153] = r8;
+	r11 = r11 & 1;
+	heap8[r10+154] = r4;
+	heap8[r10+152] = r11;
+	heap32[(r12+25)] = 0;
+	heap32[(r12+26)] = 0;
+	heap32[(r12+31)] = 0;
+	heap32[(r12+27)] = 1;
+	heap32[(r12+28)] = 0;
+	heap32[(r12+29)] = 10;
+	heap32[(r12+30)] = 1;
+	heap32[(r12+32)] = 0;
+	heap32[(r12+33)] = 0;
+	heap32[(r12+34)] = 0;
+	if(r0 ==0) //_LBB26_91
+{
+	r0 = (r5 + 3)|0;
+	heap32[(r2)] = r0;
+	heap32[(g0)] = 95;
+	malloc(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB26_93
+{
+	r3 = 0;
+	r5 = (r0 + 4)|0;
+	r3 = (r3 - r5)|0;
+	r3 = r3 & 15;
+	r3 = (r0 + r3)|0;
+	r5 = (r3 + 4)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = r0;
+	r0 = r5;
+}
+	heap32[(g0)] = r0;
+	_ZN28btHashedOverlappingPairCacheC1Ev(i7);
+	r3 = heap32[(r2)];
+}
+	heap32[(r12+24)] = r0;
+	heap32[(r12+37)] = 0;
+	heap32[(r12+35)] = 0;
+	heap32[(r12+36)] = 0;
+	heap32[(r12+21)] = 0;
+	heap32[(r12+22)] = 0;
+	heap32[(r12+23)] = 0;
+	heap32[(r9+27)] = r10;
+	heap8[r10+153] = r4;
+	heap32[(r9+2)] = -998637568;
+	heap32[(r9+3)] = -998637568;
+	heap32[(r9+4)] = -998637568;
+	heap32[(r9+5)] = 0;
+	heap32[(r9+6)] = 1148846080;
+	heap32[(r9+7)] = 1148846080;
+	heap32[(r9+8)] = 1148846080;
+	heap32[(r9+9)] = 0;
+	r0 = heapU16[(r7+6)>>1];
+	f0 = uint(r0); //fuitos r0, f0
+	f1 =                      2000;
+	f0 = f0/f1;
+	heapFloat[(r9+10)] = f0;
+	heapFloat[(r9+11)] = f0;
+	heapFloat[(r9+12)] = f0;
+	r0 = (r3 + 1)|0;
+	heap32[(r9+13)] = 0;
+	heap32[(r2)] = r0;
+	heap32[(g0)] = 224083;
+	malloc(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB26_97
+{
+	r5 = (r0 + 4)|0;
+	r5 = (r8 - r5)|0;
+	r5 = r5 & 15;
+	r5 = (r0 + r5)|0;
+	r10 = (r5 + 4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r0;
+	r0 = r10;
+}
+_103: while(true){
+	r5 = r8 << 6;
+	r5 = (r0 - r5)|0;
+	r5 = r5 >> 2;
+	r8 = (r8 + -1)|0;
+	heap32[(r5)] = 0;
+	heap32[(r5+2)] = 0;
+	if(r8 !=-3501) //_LBB26_98
+{
+continue _103;
+}
+else{
+break _103;
+}
+}
+	r5 = 3501;
+	heap32[(r9+15)] = r0;
+	r8 = 0;
+	heap16[(r7+58)>>1] = r5;
+	r5 = -112;
+	r10 = 2;
+	heap16[(r7+56)>>1] = r8;
+	heap16[(r7+64)>>1] = r4;
+_106: while(true){
+	r0 = (r0 - r5)|0;
+	heap16[(r0)>>1] = r10;
+	r5 = (r5 + -64)|0;
+	r0 = heap32[(r9+15)];
+	r10 = (r10 + 1)|0;
+	if(r5 !=-224112) //_LBB26_100
+{
+continue _106;
+}
+else{
+break _106;
+}
+}
+	r3 = (r3 + 2)|0;
+	heap16[(r0+224048)>>1] = r8;
+_109: while(true){
+	r0 = (r3 + r8)|0;
+	heap32[(r2)] = r0;
+	heap32[(g0)] = 28027;
+	malloc(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB26_104
+{
+	r5 = 0;
+	r10 = (r0 + 4)|0;
+	r5 = (r5 - r10)|0;
+	r5 = r5 & 15;
+	r5 = (r0 + r5)|0;
+	r10 = (r5 + 4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r0;
+	r0 = r10;
+}
+	r5 = r8 << 2;
+	r5 = (r7 + r5)|0;
+	r5 = r5 >> 2;
+	r8 = (r8 + 1)|0;
+	heap32[(r5+20)] = r0;
+	heap32[(r5+17)] = r0;
+	if(r8 !=3) //_LBB26_102
+{
+continue _109;
+}
+else{
+break _109;
+}
+}
+	r0 = heap32[(r9+15)];
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+	r0 = heap32[(r9+15)];
+	r3 = 0;
+	heap16[(r0+48)>>1] = r3;
+	r0 = heap32[(r9+15)];
+	heap16[(r0+54)>>1] = r4;
+	r0 = heap32[(r9+17)];
+	heap16[(r0)>>1] = r3;
+	r0 = heap32[(r9+17)];
+	heap16[(r0+2)>>1] = r3;
+	r0 = heap32[(r9+17)];
+	r5 = heapU16[(r7+6)>>1];
+	heap16[(r0+4)>>1] = r5;
+	r0 = heap32[(r9+17)];
+	heap16[(r0+6)>>1] = r3;
+	r0 = heap32[(r9+15)];
+	heap16[(r0+50)>>1] = r3;
+	r0 = heap32[(r9+15)];
+	heap16[(r0+56)>>1] = r4;
+	r0 = heap32[(r9+18)];
+	heap16[(r0)>>1] = r3;
+	r0 = heap32[(r9+18)];
+	heap16[(r0+2)>>1] = r3;
+	r0 = heap32[(r9+18)];
+	r5 = heapU16[(r7+6)>>1];
+	heap16[(r0+4)>>1] = r5;
+	r0 = heap32[(r9+18)];
+	heap16[(r0+6)>>1] = r3;
+	r0 = heap32[(r9+15)];
+	heap16[(r0+52)>>1] = r3;
+	r0 = heap32[(r9+15)];
+	heap16[(r0+58)>>1] = r4;
+	r0 = heap32[(r9+19)];
+	heap16[(r0)>>1] = r3;
+	r0 = heap32[(r9+19)];
+	heap16[(r0+2)>>1] = r3;
+	r0 = heap32[(r9+19)];
+	r5 = heapU16[(r7+6)>>1];
+	heap16[(r0+4)>>1] = r5;
+	r0 = heap32[(r9+19)];
+	r5 = _ZTV12btAxisSweep3;
+	r5 = (r5 + 8)|0;
+	heap16[(r0+6)>>1] = r3;
+	heap32[(r9)] = r5;
+	heap32[(r1+13)] = r7;
+	heap32[(g0)] = 128;
+	r0 = _ZTV35btSequentialImpulseConstraintSolver;
+	_Znwj(i7);
+	r7 = r_g0 >> 2;
+	r0 = (r0 + 8)|0;
+	heap32[(r7)] = r0;
+	heap8[r_g0+20] = r4;
+	heap32[(r7+4)] = 0;
+	heap32[(r7+2)] = 0;
+	heap32[(r7+3)] = 0;
+	heap8[r_g0+40] = r4;
+	heap32[(r7+9)] = 0;
+	heap32[(r7+7)] = 0;
+	heap32[(r7+8)] = 0;
+	heap8[r_g0+60] = r4;
+	heap32[(r7+14)] = 0;
+	heap32[(r7+12)] = 0;
+	heap32[(r7+13)] = 0;
+	heap8[r_g0+80] = r4;
+	heap32[(r7+19)] = 0;
+	heap32[(r7+17)] = 0;
+	heap32[(r7+18)] = 0;
+	heap8[r_g0+100] = r4;
+	heap32[(r7+24)] = 0;
+	heap32[(r7+22)] = 0;
+	heap32[(r7+23)] = 0;
+	heap8[r_g0+120] = r4;
+	heap32[(r7+29)] = 0;
+	heap32[(r7+27)] = 0;
+	heap32[(r7+28)] = 0;
+	heap32[(r7+31)] = 0;
+	heap32[(r1+15)] = r_g0;
+	heap32[(g0)] = 272;
+	_Znwj(i7);
+	r5 = r_g0;
+	r7 = heap32[(r1+16)];
+	r8 = _ZTV16btCollisionWorld;
+	r9 = heap32[(r1+15)];
+	r10 = heap32[(r1+13)];
+	r11 = heap32[(r1+14)];
+	r8 = (r8 + 8)|0;
+	r12 = r5 >> 2;
+	heap32[(r12)] = r8;
+	heap8[r5+20] = r4;
+	heap32[(r12+4)] = 0;
+	heap32[(r12+2)] = 0;
+	heap32[(r12+3)] = 0;
+	heap32[(r12+6)] = r11;
+	heap32[(r12+7)] = 0;
+	heap32[(r12+8)] = 0;
+	heap32[(r12+9)] = 1;
+	heap32[(r12+10)] = 1065353216;
+	heap8[r5+44] = r3;
+	heap32[(r12+12)] = 0;
+	heap8[r5+52] = r3;
+	heap8[r5+53] = r4;
+	heap8[r5+54] = r4;
+	heap32[(r12+14)] = 1025758986;
+	heap8[r5+60] = r3;
+	heap32[(r12+16)] = 0;
+	heap8[r5+68] = r3;
+	heap32[(r12+18)] = 0;
+	heap32[(r12+20)] = r10;
+	heap32[(r12+21)] = 0;
+	r8 = r7 >> 2;
+	heap8[r5+88] = r4;
+	r8 = heap32[(r8)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r7;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	heap32[(r12+19)] = r_g0;
+	heap32[(r12+18)] = r_g0;
+	heap32[(r12+23)] = 0;
+	heap32[(r12+24)] = 0;
+	heap32[(r12+25)] = 0;
+	heap32[(r12+26)] = 1058642330;
+	heap32[(r12+27)] = 1065353216;
+	heap32[(r12+28)] = 1050253722;
+	heap32[(r12+30)] = 0;
+	heap32[(r12+32)] = 1101004800;
+	heap32[(r12+31)] = 10;
+	heap32[(r12+34)] = 1045220557;
+	heap32[(r12+35)] = 1036831949;
+	heap32[(r12+36)] = 0;
+	heap32[(r12+33)] = 1065353216;
+	heap32[(r12+37)] = 0;
+	heap32[(r12+38)] = -1130113270;
+	heap32[(r12+39)] = 0;
+	heap32[(r12+40)] = 1062836634;
+	heap32[(r12+41)] = 260;
+	r7 = _ZTV23btDiscreteDynamicsWorld;
+	heap32[(r12+42)] = 2;
+	r7 = (r7 + 8)|0;
+	heap32[(r12+43)] = 128;
+	heap32[(r12)] = r7;
+	heap32[(r12+44)] = r9;
+	heap8[r5+200] = r4;
+	heap32[(r12+49)] = 0;
+	heap32[(r12+47)] = 0;
+	heap32[(r12+48)] = 0;
+	heap8[r5+220] = r4;
+	heap32[(r12+54)] = 0;
+	heap32[(r12+52)] = 0;
+	heap32[(r12+53)] = 0;
+	heap32[(r12+56)] = 0;
+	heap32[(r12+57)] = -1054867456;
+	heap32[(r12+58)] = 0;
+	heap32[(r12+59)] = 0;
+	heap32[(r12+60)] = 0;
+	heap8[r5+246] = r3;
+	heap8[r5+264] = r4;
+	heap32[(r12+65)] = 0;
+	heap32[(r12+63)] = 0;
+	heap32[(r12+64)] = 0;
+	heap32[(r12+67)] = 0;
+	if(r9 !=0) //_LBB26_111
+{
+	heap8[r5+245] = r3;
+	r7 = heap32[(r2)];
+}
+else{
+	r7 = heap32[(r2)];
+	r7 = (r7 + 1)|0;
+	heap32[(r2)] = r7;
+	heap32[(g0)] = 147;
+	malloc(i7);
+	r8 = r_g0;
+	if(r8 !=0) //_LBB26_109
+{
+	r9 = 0;
+	r10 = (r8 + 4)|0;
+	r9 = (r9 - r10)|0;
+	r9 = r9 & 15;
+	r9 = (r8 + r9)|0;
+	r10 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r8;
+	r8 = r10;
+}
+	r9 = r8 >> 2;
+	heap32[(r9)] = r0;
+	heap8[r8+20] = r4;
+	heap32[(r9+4)] = 0;
+	heap32[(r9+2)] = 0;
+	heap32[(r9+3)] = 0;
+	heap8[r8+40] = r4;
+	heap32[(r9+9)] = 0;
+	heap32[(r9+7)] = 0;
+	heap32[(r9+8)] = 0;
+	heap8[r8+60] = r4;
+	heap32[(r9+14)] = 0;
+	heap32[(r9+12)] = 0;
+	heap32[(r9+13)] = 0;
+	heap8[r8+80] = r4;
+	heap32[(r9+19)] = 0;
+	heap32[(r9+17)] = 0;
+	heap32[(r9+18)] = 0;
+	heap8[r8+100] = r4;
+	heap32[(r9+24)] = 0;
+	heap32[(r9+22)] = 0;
+	heap32[(r9+23)] = 0;
+	heap8[r8+120] = r4;
+	heap32[(r9+29)] = 0;
+	heap32[(r9+27)] = 0;
+	heap32[(r9+28)] = 0;
+	r0 = r5 >> 2;
+	heap32[(r9+31)] = 0;
+	heap32[(r0+44)] = r8;
+	heap8[r5+245] = r4;
+}
+	r0 = (r7 + 1)|0;
+	heap32[(r2)] = r0;
+	heap32[(g0)] = 87;
+	malloc(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB26_114
+{
+	r7 = (r0 + 4)|0;
+	r7 = (r3 - r7)|0;
+	r7 = r7 & 15;
+	r7 = (r0 + r7)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r0;
+	r0 = r8;
+}
+	r7 = _ZTV25btSimulationIslandManager;
+	r8 = r0 >> 2;
+	r7 = (r7 + 8)|0;
+	heap32[(r8)] = r7;
+	heap8[r0+20] = r4;
+	heap32[(r8+4)] = 0;
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = 0;
+	heap8[r0+40] = r4;
+	heap32[(r8+9)] = 0;
+	heap32[(r8+7)] = 0;
+	heap32[(r8+8)] = 0;
+	heap8[r0+60] = r4;
+	heap32[(r8+14)] = 0;
+	heap32[(r8+12)] = 0;
+	heap32[(r8+13)] = 0;
+	r7 = r5 >> 2;
+	heap8[r0+64] = r4;
+	heap32[(r7+45)] = r0;
+	heap8[r5+244] = r4;
+	heap32[(r1+1)] = r5;
+	r0 = heap32[(r7+41)];
+	r0 = r0 | 32;
+	heap32[(r7+41)] = r0;
+	heap32[(r7+31)] = 5;
+	heap32[(r1+2)] = 0;
+	r0 = heap32[(r1+1)];
+	r5 = r0 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+17)];
+	r7 = sp + -41280;
+	r8 = r7 >> 2;
+	heap32[(fp+-10320)] = 0;
+	heap32[(r8+1)] = -1054867456;
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = 0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r0 = heap32[(r1+17)];
+	if(r0 <5) //_LBB26_117
+{
+	r0 = heap32[(r2)];
+	r5 = (r0 + 1)|0;
+	heap32[(r2)] = r5;
+	heap32[(g0)] = 71;
+	malloc(i7);
+	r5 = r_g0;
+	if(r5 !=0) //_LBB26_119
+{
+	r7 = 0;
+	r8 = (r5 + 4)|0;
+	r7 = (r7 - r8)|0;
+	r7 = r7 & 15;
+	r7 = (r5 + r7)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r5;
+	r5 = r8;
+}
+	r7 = r5 >> 2;
+	heap32[(r7+2)] = 0;
+	heap32[(r7+3)] = 1065353216;
+	heap32[(r7+4)] = 1065353216;
+	heap32[(r7+5)] = 1065353216;
+	r8 = _ZTV10btBoxShape;
+	heap32[(r7+6)] = 0;
+	r8 = (r8 + 8)|0;
+	heap32[(r7+11)] = 1025758986;
+	heap32[(r7)] = r8;
+	heap32[(r7+1)] = 0;
+	heap32[(r7+7)] = 1132066243;
+	heap32[(r7+8)] = 1112004362;
+	heap32[(r7+9)] = 1132066243;
+	heap32[(r7+10)] = 0;
+	r7 = heap32[(r1+5)];
+	r8 = heap32[(r1+4)];
+	if(r7 ==r8) //_LBB26_122
+{
+	r9 = r8 << 1;
+	r9 = r8 == 0 ? r4 : r9;
+if(!(r7 >=r9)) //_LBB26_121
+{
+	if(r9 !=0) //_LBB26_125
+{
+	r7 = r9 << 2;
+	r0 = (r0 + 2)|0;
+	r7 = r7 | 3;
+	heap32[(r2)] = r0;
+	r0 = (r7 + 16)|0;
+	heap32[(g0)] = r0;
+	malloc(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB26_127
+{
+	r7 = 0;
+	r10 = (r0 + 4)|0;
+	r7 = (r7 - r10)|0;
+	r7 = r7 & 15;
+	r7 = (r0 + r7)|0;
+	r10 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r0;
+	r0 = r10;
+}
+}
+else{
+	r0 = 0;
+}
+_138: do {
+	if(r8 <1) //_LBB26_130
+{
+	r10 = heap32[(r1+6)];
+}
+else{
+	r7 = 0;
+_141: while(true){
+	r10 = heap32[(r1+6)];
+	r11 = r7 << 2;
+	r12 = (r10 + r11)|0;
+	r12 = r12 >> 2;
+	r11 = (r0 + r11)|0;
+	r12 = heap32[(r12)];
+	r7 = (r7 + 1)|0;
+	r11 = r11 >> 2;
+	heap32[(r11)] = r12;
+if(!(r8 !=r7)) //_LBB26_131
+{
+break _138;
+}
+}
+}
+} while(0);
+	if(r10 !=0) //_LBB26_134
+{
+	r7 = heapU8[r6+28];
+	if(r7 !=0) //_LBB26_136
+{
+	r8 = gNumAlignedFree;
+	r8 = r8 >> 2;
+	r7 = heap32[(r8)];
+	r7 = (r7 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r8)] = r7;
+	r8 = heap32[(r10+-1)];
+	heap32[(g0)] = r8;
+	free(i7);
+	r8 = heap32[(r1+4)];
+}
+	heap32[(r1+6)] = 0;
+}
+	heap8[r6+28] = r4;
+	heap32[(r1+6)] = r0;
+	heap32[(r1+5)] = r9;
+}
+}
+	r0 = r8 << 2;
+	r7 = heap32[(r1+6)];
+	r0 = (r7 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r5;
+	r0 = heap32[(r1+4)];
+	r0 = (r0 + 1)|0;
+	r7 = _ZGVZN11btTransform11getIdentityEvE17identityTransform;
+	heap32[(r1+4)] = r0;
+	r0 = heapU8[r7];
+if(!(r0 !=0)) //_LBB26_143
+{
+	r0 = _ZGVZN11btMatrix3x311getIdentityEvE14identityMatrix;
+	r8 = heapU8[r0];
+if(!(r8 !=0)) //_LBB26_142
+{
+	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
+	r9 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
+	r8 = r8 >> 2;
+	r10 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
+	r9 = r9 >> 2;
+	heap32[(r8)] = 1065353216;
+	r8 = r10 >> 2;
+	heap32[(r9)] = 1065353216;
+	heap32[(r8)] = 1065353216;
+	heap8[r0] = r4;
+}
+	r0 = _ZZN11btTransform11getIdentityEvE17identityTransform;
+	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0;
+	r0 = r0 >> 2;
+	r8 = r8 >> 2;
+	heap32[(r0)] = heap32[(r8)];
+	heap32[(r0+1)] = 0;
+	heap32[(r0+2)] = 0;
+	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1;
+	heap32[(r0+3)] = 0;
+	r8 = r8 >> 2;
+	heap32[(r0+4)] = 0;
+	heap32[(r0+5)] = heap32[(r8)];
+	heap32[(r0+6)] = 0;
+	heap32[(r0+7)] = 0;
+	r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2;
+	heap32[(r0+8)] = 0;
+	r8 = r8 >> 2;
+	heap32[(r0+9)] = 0;
+	heap32[(r0+10)] = heap32[(r8)];
+	heap32[(r0+11)] = 0;
+	heap32[(r0+12)] = 0;
+	heap32[(r0+13)] = 0;
+	heap32[(r0+14)] = 0;
+	heap32[(r0+15)] = 0;
+	heap8[r7] = r4;
+}
+	heap32[(g0)] = 200;
+	r0 = _ZTV20btDefaultMotionState;
+	_Znwj(i7);
+	r8 = r_g0 >> 2;
+	r0 = (r0 + 8)|0;
+	heap32[(r8)] = r0;
+	heap32[(r8+1)] = 1065353216;
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = 0;
+	heap32[(r8+4)] = 0;
+	heap32[(r8+5)] = 0;
+	heap32[(r8+6)] = 1065353216;
+	heap32[(r8+7)] = 0;
+	heap32[(r8+8)] = 0;
+	heap32[(r8+9)] = 0;
+	heap32[(r8+10)] = 0;
+	heap32[(r8+11)] = 1065353216;
+	heap32[(r8+12)] = 0;
+	heap32[(r8+13)] = 0;
+	heap32[(r8+14)] = -1035468800;
+	r0 = _ZZN11btTransform11getIdentityEvE17identityTransform;
+	heap32[(r8+15)] = 0;
+	r0 = r0 >> 2;
+	heap32[(r8+16)] = 0;
+	heap32[(r8+17)] = heap32[(r0)];
+	heap32[(r8+18)] = heap32[(r0+1)];
+	heap32[(r8+19)] = heap32[(r0+2)];
+	heap32[(r8+20)] = heap32[(r0+3)];
+	heap32[(r8+21)] = heap32[(r0+4)];
+	heap32[(r8+22)] = heap32[(r0+5)];
+	heap32[(r8+23)] = heap32[(r0+6)];
+	heap32[(r8+24)] = heap32[(r0+7)];
+	heap32[(r8+25)] = heap32[(r0+8)];
+	heap32[(r8+26)] = heap32[(r0+9)];
+	heap32[(r8+27)] = heap32[(r0+10)];
+	heap32[(r8+28)] = heap32[(r0+11)];
+	heap32[(r8+29)] = heap32[(r0+12)];
+	heap32[(r8+30)] = heap32[(r0+13)];
+	heap32[(r8+31)] = heap32[(r0+14)];
+	heap32[(r8+32)] = heap32[(r0+15)];
+	heap32[(r8+33)] = 1065353216;
+	heap32[(r8+34)] = 0;
+	heap32[(r8+35)] = 0;
+	heap32[(r8+36)] = 0;
+	heap32[(r8+37)] = 0;
+	heap32[(r8+38)] = 1065353216;
+	heap32[(r8+39)] = 0;
+	heap32[(r8+40)] = 0;
+	heap32[(r8+41)] = 0;
+	heap32[(r8+42)] = 0;
+	heap32[(r8+43)] = 1065353216;
+	heap32[(r8+44)] = 0;
+	heap32[(r8+45)] = 0;
+	heap32[(r8+46)] = -1035468800;
+	heap32[(r8+47)] = 0;
+	heap32[(r8+48)] = 0;
+	r0 = sp + -41416;
+	heap32[(r8+49)] = 0;
+	r8 = r0 >> 2;
+	heap32[(fp+-10354)] = 0;
+	heap32[(r8+1)] = r_g0;
+	heap32[(r8+18)] = r5;
+	heap32[(r8+19)] = 0;
+	heap32[(r8+20)] = 0;
+	heap32[(r8+21)] = 0;
+	heap32[(r8+22)] = 0;
+	heap32[(r8+23)] = 0;
+	heap32[(r8+24)] = 0;
+	heap32[(r8+25)] = 1056964608;
+	heap32[(r8+26)] = 0;
+	heap32[(r8+27)] = 1061997773;
+	r5 = 0;
+	heap32[(r8+28)] = 1065353216;
+	heap8[sp+-41300] = r5;
+	heap32[(r8+30)] = 1000593162;
+	heap32[(r8+31)] = 1008981770;
+	heap32[(r8+32)] = 1008981770;
+	heap32[(r8+33)] = 1008981770;
+	heap32[(r8+2)] = 1065353216;
+	heap32[(r8+3)] = 0;
+	heap32[(r8+4)] = 0;
+	heap32[(r8+5)] = 0;
+	heap32[(r8+6)] = 0;
+	heap32[(r8+7)] = 1065353216;
+	heap32[(r8+8)] = 0;
+	heap32[(r8+9)] = 0;
+	heap32[(r8+10)] = 0;
+	heap32[(r8+11)] = 0;
+	heap32[(r8+12)] = 1065353216;
+	heap32[(r8+13)] = 0;
+	heap32[(r8+14)] = 0;
+	heap32[(r8+15)] = 0;
+	heap32[(r8+16)] = 0;
+	heap32[(r8+17)] = 0;
+	r7 = heap32[(r2)];
+	r7 = (r7 + 1)|0;
+	heap32[(r2)] = r7;
+	heap32[(g0)] = 627;
+	malloc(i7);
+	r7 = r_g0;
+	if(r7 !=0) //_LBB26_145
+{
+	r8 = (r7 + 4)|0;
+	r5 = (r5 - r8)|0;
+	r5 = r5 & 15;
+	r5 = (r7 + r5)|0;
+	r8 = (r5 + 4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r7;
+	r7 = r8;
+}
+	r5 = r7 >> 2;
+	heap32[(r5+41)] = 1065353216;
+	heap32[(r5+42)] = 1065353216;
+	heap32[(r5+43)] = 1065353216;
+	heap32[(r5+44)] = 0;
+	heap32[(r5+45)] = 0;
+	heap32[(r5+46)] = 1566444395;
+	heap32[(r5+47)] = 0;
+	heap32[(r5+48)] = 0;
+	heap32[(r5+49)] = 0;
+	heap32[(r5+50)] = 0;
+	heap32[(r5+51)] = 1;
+	heap32[(r5+52)] = -1;
+	heap32[(r5+53)] = -1;
+	heap32[(r5+54)] = 1;
+	heap32[(r5+55)] = 0;
+	heap32[(r5+56)] = 1056964608;
+	heap32[(r5+57)] = 0;
+	heap32[(r5+58)] = 1;
+	heap32[(r5+59)] = 0;
+	heap32[(r5+60)] = 1065353216;
+	heap32[(r5+61)] = 0;
+	heap32[(r5+62)] = 0;
+	heap32[(r5+63)] = 0;
+	heap32[(r5+1)] = 1065353216;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+	heap32[(r5+4)] = 0;
+	heap32[(r5+5)] = 0;
+	heap32[(r5+6)] = 1065353216;
+	heap32[(r5+7)] = 0;
+	heap32[(r5+8)] = 0;
+	heap32[(r5+9)] = 0;
+	heap32[(r5+10)] = 0;
+	heap32[(r5+11)] = 1065353216;
+	heap32[(r5+12)] = 0;
+	heap32[(r5+13)] = 0;
+	heap32[(r5+14)] = 0;
+	r8 = _ZTV11btRigidBody;
+	heap32[(r5+15)] = 0;
+	r8 = (r8 + 8)|0;
+	heap32[(r5+16)] = 0;
+	heap32[(r5)] = r8;
+	heap8[r7+492] = r4;
+	heap32[(r5+122)] = 0;
+	heap32[(r5+120)] = 0;
+	heap32[(r5+121)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r0;
+	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
+	r0 = heap32[(r1+1)];
+	r5 = r0 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+20)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r0 = heap32[(r1+17)];
+}
+_161: do {
+	if(r0 >3) //_LBB26_151
+{
+	if(r0 >5) //_LBB26_154
+{
+	if(r0 ==6) //_LBB26_325
+{
+	_ZN13BenchmarkDemo11createTest6Ev(i7);
+	return;
+}
+else{
+	if(r0 ==7) //_LBB26_326
+{
+	_ZN13BenchmarkDemo11createTest6Ev(i7);
+	r0 = sp + -41264;
+	heap32[(g0)] = 8;
+	r1 = r0 >> 2;
+	_Znwj(i7);
+	heap32[(r1+10006)] = r_g0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = 0;
+	gettimeofday(i7);
+	heap32[(r1+10000)] = 0;
+	heap32[(r1+10001)] = 0;
+	heap32[(r1+10005)] = 0;
+	heap32[(r1+10004)] = 9999;
+	heap32[(r1+10003)] = 0;
+	heap32[(r1+10002)] = 0;
+	heap32[(r1+10007)] = 1092616192;
+	heap32[(r1+10008)] = 0;
+	heap32[(r1+10009)] = 0;
+	heap32[(r1+10010)] = 1112014848;
+	heap32[(r1+10011)] = 1065353216;
+	f3 =                         0;
+_169: while(true){
+	f0 = r3; //fitos r3, f0
+	f1 =      0.025132741779088974;
+	f0 = f0*f1;
+	f1 =                       0.5;
+	f0 = f0*f1;
+	heapFloat[(g0)] = f0;
+	sinf(i7);
+	f2 =                         1;
+	f1 = f_g0/f2;
+	f2 = f1*f3;
+	heapFloat[(g0)] = f0;
+	cosf(i7);
+	f4 = -f2;
+	f5 = f_g0*f3;
+	f6 = f2*f3;
+	f7 = f4-f2;
+	f8 = f_g0+f2;
+	f8 = f8-f6;
+	f7 = f7-f6;
+	f9 = f5+f2;
+	f9 = f9-f6;
+	f5 = f5+f6;
+	f6 = f7*f4;
+	f10 = f8*f_g0;
+	f5 = f5-f1;
+	f11 = f9*f_g0;
+	f7 = f7*f1;
+	f10 = f6+f10;
+	f4 = f9*f4;
+	r2 = r3 << 4;
+	f0 = f5*f_g0;
+	f7 = f11-f7;
+	f9 = f5*f2;
+	f10 = f10+f4;
+	f5 = f5*f1;
+	r2 = (r0 + r2)|0;
+	f0 = f6+f0;
+	f1 = f8*f1;
+	f6 = f7-f9;
+	f2 = f8*f2;
+	f5 = f10+f5;
+	f7 =                      2500;
+	f0 = f0-f1;
+	f1 = f6+f2;
+	r2 = r2 >> 2;
+	f2 = f5*f7;
+	f0 = f0-f4;
+	f1 = f1*f7;
+	heapFloat[(r2+4000)] = f2;
+	f0 = f0*f7;
+	heapFloat[(r2+4001)] = f1;
+	heapFloat[(r2+4002)] = f0;
+	heap32[(r2+4003)] = 0;
+	f1 = heapFloat[(r1+10008)];
+	heapFloat[(r2)] = f1;
+	heap32[(r2+1)] = 1112014848;
+	heap32[(r2+2)] = 0;
+	f1 = f1+f2;
+	heap32[(r2+3)] = 0;
+	f0 = f0+f3;
+	heapFloat[(r2+2000)] = f1;
+	heapFloat[(r2+2002)] = f0;
+	heap32[(r2+2003)] = 0;
+	heap32[(r2+2001)] = -998637568;
+	heap32[(r2+8000)] = 1065353216;
+	heap32[(r2+8001)] = 0;
+	r3 = (r3 + 1)|0;
+	heap32[(r2+8002)] = 0;
+	heap32[(r2+8003)] = 0;
+if(!(r3 !=500)) //_LBB26_327
+{
+break _169;
+}
+}
+	r2 = _ZL10raycastBar;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 8000;
+	memcpy(i7);
+	r3 = (r2 + 8000)|0;
+	r4 = (r0 + 8000)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = 8000;
+	memcpy(i7);
+	r3 = (r2 + 16000)|0;
+	r4 = (r0 + 16000)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = 8000;
+	memcpy(i7);
+	r3 = (r2 + 24000)|0;
+	r4 = (r0 + 24000)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = 8000;
+	memcpy(i7);
+	r3 = (r2 + 32000)|0;
+	r0 = (r0 + 32000)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 8000;
+	memcpy(i7);
+	r0 = r2 >> 2;
+	r2 = heap32[(r1+10000)];
+	heap32[(r0+10000)] = r2;
+	r2 = heap32[(r1+10001)];
+	heap32[(r0+10001)] = r2;
+	r2 = heap32[(r1+10002)];
+	heap32[(r0+10002)] = r2;
+	r2 = heap32[(r1+10003)];
+	heap32[(r0+10003)] = r2;
+	r2 = heap32[(r1+10004)];
+	heap32[(r0+10004)] = r2;
+	r2 = heap32[(r1+10005)];
+	heap32[(r0+10005)] = r2;
+	r2 = heap32[(r1+10006)];
+	r2 = r2 >> 2;
+	r3 = heap32[(r0+10006)];
+	r4 = heap32[(r2+1)];
+	r2 = heap32[(r2)];
+	r3 = r3 >> 2;
+	heap32[(r3)] = r2;
+	heap32[(r3+1)] = r4;
+	heap32[(r0+10007)] = heap32[(r1+10007)];
+	heap32[(r0+10008)] = heap32[(r1+10008)];
+	heap32[(r0+10009)] = heap32[(r1+10009)];
+	heap32[(r0+10010)] = heap32[(r1+10010)];
+	heap32[(r0+10011)] = heap32[(r1+10011)];
+	r0 = heap32[(r1+10006)];
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+else{
+break _161;
+}
+}
+}
+else{
+	if(r0 ==4) //_LBB26_291
+{
+	r3 = heap32[(r2)];
+	r3 = (r3 + 1)|0;
+	heap32[(r2)] = r3;
+	heap32[(g0)] = 127;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB26_293
+{
+	r3 = 0;
+	r4 = (r2 + 4)|0;
+	r3 = (r3 - r4)|0;
+	r3 = r3 & 15;
+	r3 = (r2 + r3)|0;
+	r4 = (r3 + 4)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = r2;
+	r2 = r4;
+}
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 0;
+	r3 = r2 >> 2;
+	_ZN17btConvexHullShapeC1EPKfii(i7);
+	r4 = heap32[(r3)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+6)];
+	r0 = sp + -96;
+	r5 = r0 >> 2;
+	heap32[(fp+-24)] = 1065353216;
+	heap32[(r5+1)] = 1065353216;
+	heap32[(r5+2)] = 1065353216;
+	heap32[(r5+3)] = 0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	r0 = 0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+_178: while(true){
+	r4 = (r0 * -3)|0;
+	r5 = _ZL7TaruVtx;
+	r4 = r4 << 2;
+	r4 = (r5 + r4)|0;
+	r5 = sp + -80;
+	r4 = r4 >> 2;
+	r7 = r5 >> 2;
+	heap32[(fp+-20)] = heap32[(r4)];
+	heap32[(r7+1)] = heap32[(r4+1)];
+	heap32[(r7+2)] = heap32[(r4+2)];
+	heap32[(r7+3)] = 0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r5;
+	r0 = (r0 + -1)|0;
+	_ZN17btConvexHullShape8addPointERK9btVector3(i7);
+	if(r0 ==-43) //_LBB26_301
+{
+break _178;
+}
+}
+	r4 = sp + -160;
+	r0 = r4 >> 2;
+	heap32[(fp+-40)] = 1065353216;
+	heap32[(r0+1)] = 0;
+	heap32[(r0+2)] = 0;
+	heap32[(r0+3)] = 0;
+	heap32[(r0+4)] = 0;
+	heap32[(r0+5)] = 1065353216;
+	heap32[(r0+6)] = 0;
+	heap32[(r0+7)] = 0;
+	heap32[(r0+8)] = 0;
+	heap32[(r0+9)] = 0;
+	heap32[(r0+10)] = 1065353216;
+	heap32[(r0+11)] = 0;
+	heap32[(r0+12)] = 0;
+	heap32[(r0+13)] = 0;
+	heap32[(r0+14)] = 0;
+	r5 = sp + -176;
+	heap32[(r0+15)] = 0;
+	r7 = r5 >> 2;
+	heap32[(fp+-44)] = 0;
+	heap32[(r7+1)] = 0;
+	heap32[(r7+2)] = 0;
+	heap32[(r7+3)] = 0;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r7 = heap32[(r3+8)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = 1065353216;
+	heap32[(g0+2)] = r5;
+	r3 = 15;
+	f0 =                         3;
+	f2 =                       -18;
+	f3 =                       1.5;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	f1 = f0;
+_181: while(true){
+	f4 = f3+f0;
+	r5 = 0;
+	r7 = r5;
+_183: while(true){
+	f5 = r7; //fitos r7, f5
+	f5 = f5*f4;
+	f5 = f5+f2;
+	r8 = r5;
+_185: while(true){
+	f6 = r8; //fitos r8, f6
+	f6 = f6*f4;
+	f6 = f6+f2;
+	heapFloat[(r0+12)] = f6;
+	heapFloat[(r0+13)] = f1;
+	heapFloat[(r0+14)] = f5;
+	heap32[(r0+15)] = 0;
+	r9 = heap32[(r1)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+2)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = 1065353216;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r2;
+	r8 = (r8 + 1)|0;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+if(!(r8 !=8)) //_LBB26_298
+{
+break _185;
+}
+}
+	r7 = (r7 + 1)|0;
+if(!(r7 !=8)) //_LBB26_297
+{
+break _183;
+}
+}
+	f4 =        1.0099999904632568;
+	f5 =      -0.05000000074505806;
+	f4 = f3*f4;
+	f6 =                         3;
+	f3 = f3*f5;
+	f5 =                         7;
+	f6 = f4+f6;
+	f3 = f3*f5;
+	r3 = (r3 + -1)|0;
+	f1 = f1+f6;
+	f2 = f3+f2;
+	f3 = f4;
+	if(r3 ==0) //_LBB26_165
+{
+break _161;
+}
+else{
+continue _181;
+}
+}
+}
+else{
+	if(r0 ==5) //_LBB26_302
+{
+	r3 = 10;
+	f0 =                        20;
+	f1 =                         2;
+	f2 =                       -25;
+_191: while(true){
+	f3 =                         3;
+	f4 =                        25;
+	f5 = f1+f3;
+	f4 = f0+f4;
+	r0 = 0;
+	r5 = r0;
+_193: while(true){
+	f6 = r5; //fitos r5, f6
+	f6 = f6*f5;
+	f6 = f6+f2;
+	f7 =                         5;
+	f6 = f6*f7;
+	f8 =                         0;
+	f6 = f6+f8;
+	r7 = r0;
+_195: while(true){
+	r8 = _ZL8nextRand;
+	r8 = r8 >> 2;
+	r9 = heap32[(r8)];
+	r9 = (r9 * 214013)|0;
+	r9 = (r9 + 2531011)|0;
+	r10 = sp + -64;
+	heap32[(r8)] = r9;
+	r8 = r10 >> 2;
+	heap32[(fp+-16)] = 1065353216;
+	heap32[(r8+1)] = 0;
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = 0;
+	heap32[(r8+4)] = 0;
+	heap32[(r8+5)] = 1065353216;
+	heap32[(r8+6)] = 0;
+	heap32[(r8+7)] = 0;
+	f9 = r7; //fitos r7, f9
+	heap32[(r8+8)] = 0;
+	f9 = f9*f5;
+	heap32[(r8+9)] = 0;
+	f9 = f9+f2;
+	heap32[(r8+10)] = 1065353216;
+	f9 = f9*f7;
+	f9 = f9+f8;
+	heap32[(r8+11)] = 0;
+	r9 = r9 >>> 16;
+	heapFloat[(r8+12)] = f9;
+	r9 = r9 & 32767;
+	heapFloat[(r8+13)] = f4;
+	r9 = Math.floor(uint(r9) % uint(9));
+	heapFloat[(r8+14)] = f6;
+	heap32[(r8+15)] = 0;
+if(!(uint(r9) >uint(8))) //_LBB26_321
+{
+	r8 = r4 << r9;
+	r11 = r8 & 7;
+	if(r11 !=0) //_LBB26_309
+{
+	r8 = heap32[(r2)];
+	r8 = (r8 + 1)|0;
+	heap32[(r2)] = r8;
+	r9 = (r9 + 1)|0;
+	f9 = r9; //fitos r9, f9
+	f10 =                       0.5;
+	heap32[(g0)] = 71;
+	f9 = f9*f10;
+	f10 =                       1.5;
+	malloc(i7);
+	r9 = r_g0;
+	f10 = f9*f10;
+	if(r9 !=0) //_LBB26_311
+{
+	r8 = 0;
+	r11 = (r9 + 4)|0;
+	r8 = (r8 - r11)|0;
+	r8 = r8 & 15;
+	r8 = (r9 + r8)|0;
+	r11 = (r8 + 4)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = r9;
+	r9 = r11;
+}
+	r8 = r9 >> 2;
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = 1065353216;
+	heap32[(r8+4)] = 1065353216;
+	heap32[(r8+5)] = 1065353216;
+	r11 = _ZTV10btBoxShape;
+	heap32[(r8+6)] = 0;
+	r11 = (r11 + 8)|0;
+	heap32[(r8+11)] = 1025758986;
+	heap32[(r8)] = r11;
+	f11 =     -0.039999999105930328;
+	f10 = f10+f11;
+	heap32[(r8+1)] = 0;
+	heapFloat[(r8+7)] = f10;
+	heapFloat[(r8+8)] = f10;
+	heapFloat[(r8+9)] = f10;
+	heap32[(r8+10)] = 0;
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	heap32[(g0)] = r6;
+	heapFloat[(g0+1)] = f9;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r9;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+}
+else{
+	r11 = r8 & 56;
+	if(r11 !=0) //_LBB26_313
+{
+	r8 = heap32[(r2)];
+	r8 = (r8 + 1)|0;
+	heap32[(r2)] = r8;
+	r9 = (r9 + -2)|0;
+	heap32[(g0)] = 71;
+	f9 = r9; //fitos r9, f9
+	f10 =                       0.5;
+	malloc(i7);
+	r9 = r_g0;
+	f9 = f9*f10;
+	if(r9 !=0) //_LBB26_315
+{
+	r8 = 0;
+	r11 = (r9 + 4)|0;
+	r8 = (r8 - r11)|0;
+	r8 = r8 & 15;
+	r8 = (r9 + r8)|0;
+	r11 = (r8 + 4)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = r9;
+	r9 = r11;
+}
+	r8 = r9 >> 2;
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = 1065353216;
+	heap32[(r8+4)] = 1065353216;
+	r11 = _ZTV13btSphereShape;
+	heap32[(r8+5)] = 1065353216;
+	r11 = (r11 + 8)|0;
+	heap32[(r8+6)] = 0;
+	heap32[(r8)] = r11;
+	f10 =                       1.5;
+	f10 = f9*f10;
+	heap32[(r8+1)] = 8;
+	heapFloat[(r8+7)] = f10;
+	heapFloat[(r8+11)] = f10;
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	heap32[(g0)] = r6;
+	heapFloat[(g0+1)] = f9;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r9;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+}
+else{
+	r8 = r8 & 448;
+	if(r8 !=0) //_LBB26_317
+{
+	r8 = heap32[(r2)];
+	r8 = (r8 + 1)|0;
+	heap32[(r2)] = r8;
+	r8 = (r9 + -5)|0;
+	heap32[(g0)] = 75;
+	f9 = r8; //fitos r8, f9
+	f10 =                       0.5;
+	malloc(i7);
+	r8 = r_g0;
+	f9 = f9*f10;
+	if(r8 !=0) //_LBB26_319
+{
+	r9 = 0;
+	r11 = (r8 + 4)|0;
+	r9 = (r9 - r11)|0;
+	r9 = r9 & 15;
+	r9 = (r8 + r9)|0;
+	r11 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r8;
+	r8 = r11;
+}
+	r9 = r8 >> 2;
+	heap32[(r9+2)] = 0;
+	heap32[(r9+3)] = 1065353216;
+	heap32[(r9+4)] = 1065353216;
+	heap32[(r9+5)] = 1065353216;
+	r11 = _ZTV14btCapsuleShape;
+	heap32[(r9+6)] = 0;
+	r11 = (r11 + 8)|0;
+	heap32[(r9+11)] = 1025758986;
+	heap32[(r9)] = r11;
+	heap32[(r9+1)] = 10;
+	heap32[(r9+13)] = 1;
+	f11 = f9+f9;
+	f10 = f11*f10;
+	heapFloat[(r9+7)] = f9;
+	heapFloat[(r9+8)] = f10;
+	heapFloat[(r9+9)] = f9;
+	heap32[(r9+10)] = 0;
+	r9 = heap32[(r1)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+2)];
+	heap32[(g0)] = r6;
+	heapFloat[(g0+1)] = f9;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r8;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+}
+}
+}
+}
+	r7 = (r7 + 1)|0;
+if(!(r7 !=10)) //_LBB26_305
+{
+break _195;
+}
+}
+	r5 = (r5 + 1)|0;
+if(!(r5 !=10)) //_LBB26_304
+{
+break _193;
+}
+}
+	f4 =        1.1000000238418579;
+	f5 =      -0.05000000074505806;
+	f4 = f1*f4;
+	f1 = f1*f5;
+	f5 =                         9;
+	f3 = f4+f3;
+	f1 = f1*f5;
+	r3 = (r3 + -1)|0;
+	f0 = f0+f3;
+	f2 = f1+f2;
+	f1 = f4;
+if(!(r3 !=0)) //_LBB26_303
+{
+break _191;
+}
+}
+	_ZN13BenchmarkDemo19createLargeMeshBodyEv(i7);
+	return;
+}
+else{
+break _161;
+}
+}
+}
+}
+else{
+	if(r0 ==1) //_LBB26_156
+{
+	r3 = heap32[(r2)];
+	r3 = (r3 + 1)|0;
+	heap32[(r2)] = r3;
+	heap32[(g0)] = 71;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB26_158
+{
+	r3 = 0;
+	r4 = (r2 + 4)|0;
+	r3 = (r3 - r4)|0;
+	r3 = r3 & 15;
+	r3 = (r2 + r3)|0;
+	r4 = (r3 + 4)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = r2;
+	r2 = r4;
+}
+	r3 = r2 >> 2;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 1065353216;
+	heap32[(r3+4)] = 1065353216;
+	heap32[(r3+5)] = 1065353216;
+	r4 = _ZTV10btBoxShape;
+	heap32[(r3+6)] = 0;
+	r4 = (r4 + 8)|0;
+	heap32[(r3+11)] = 1025758986;
+	heap32[(r3)] = r4;
+	heap32[(r3+1)] = 0;
+	heap32[(r3+7)] = 1064682127;
+	heap32[(r3+8)] = 1064682127;
+	heap32[(r3+9)] = 1064682127;
+	r4 = sp + -1152;
+	heap32[(r3+10)] = 0;
+	r3 = r4 >> 2;
+	heap32[(fp+-288)] = 0;
+	heap32[(r3+1)] = 0;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = 1073741824;
+	heap32[(g0+2)] = r4;
+	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
+	r3 = sp + -1216;
+	r4 = r3 >> 2;
+	heap32[(fp+-304)] = 1065353216;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+4)] = 0;
+	heap32[(r4+5)] = 1065353216;
+	heap32[(r4+6)] = 0;
+	heap32[(r4+7)] = 0;
+	heap32[(r4+8)] = 0;
+	heap32[(r4+9)] = 0;
+	heap32[(r4+10)] = 1065353216;
+	heap32[(r4+11)] = 0;
+	heap32[(r4+12)] = 0;
+	heap32[(r4+13)] = 0;
+	r0 = 47;
+	f0 =                       -12;
+	f1 =                         2;
+	heap32[(r4+14)] = 0;
+	heap32[(r4+15)] = 0;
+_225: while(true){
+	r5 = 0;
+	r7 = r5;
+_227: while(true){
+	f2 = r7; //fitos r7, f2
+	f3 =                         3;
+	f2 = f2*f3;
+	f2 = f2+f0;
+	r8 = r5;
+_229: while(true){
+	f4 = r8; //fitos r8, f4
+	f4 = f4*f3;
+	f4 = f4+f0;
+	heapFloat[(r4+12)] = f4;
+	heapFloat[(r4+13)] = f1;
+	heapFloat[(r4+14)] = f2;
+	heap32[(r4+15)] = 0;
+	r9 = heap32[(r1)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+2)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = 1073741824;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r2;
+	r8 = (r8 + 1)|0;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+if(!(r8 !=8)) //_LBB26_161
+{
+break _229;
+}
+}
+	r7 = (r7 + 1)|0;
+if(!(r7 !=8)) //_LBB26_160
+{
+break _227;
+}
+}
+	f2 =      -0.34999999403953552;
+	r0 = (r0 + -1)|0;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	if(r0 ==0) //_LBB26_165
+{
+break _161;
+}
+else{
+continue _225;
+}
+}
+}
+else{
+	if(r0 ==2) //_LBB26_166
+{
+	r3 = heap32[(r2)];
+	r3 = (r3 + 1)|0;
+	heap32[(r2)] = r3;
+	heap32[(g0)] = 71;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB26_168
+{
+	r4 = 0;
+	r0 = (r3 + 4)|0;
+	r4 = (r4 - r0)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r0 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r0;
+}
+	r4 = r3 >> 2;
+	heap32[(r4+2)] = 0;
+	heap32[(r4+3)] = 1065353216;
+	heap32[(r4+4)] = 1065353216;
+	heap32[(r4+5)] = 1065353216;
+	r0 = _ZTV10btBoxShape;
+	heap32[(r4+6)] = 0;
+	r0 = (r0 + 8)|0;
+	heap32[(r4+11)] = 1025758986;
+	heap32[(r4)] = r0;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+7)] = 1064682127;
+	heap32[(r4+8)] = 1064682127;
+	heap32[(r4+9)] = 1064682127;
+	r5 = sp + -1024;
+	heap32[(r4+10)] = 0;
+	r4 = r5 >> 2;
+	heap32[(fp+-256)] = 1065353216;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+4)] = 0;
+	heap32[(r4+5)] = 1065353216;
+	heap32[(r4+6)] = 0;
+	heap32[(r4+7)] = 0;
+	heap32[(r4+8)] = 0;
+	heap32[(r4+9)] = 0;
+	heap32[(r4+10)] = 1065353216;
+	heap32[(r4+11)] = 0;
+	heap32[(r4+12)] = 0;
+	heap32[(r4+13)] = 0;
+	heap32[(r4+14)] = 0;
+	r7 = sp + -1040;
+	heap32[(r4+15)] = 0;
+	r8 = r7 >> 2;
+	heap32[(fp+-260)] = 0;
+	heap32[(r8+1)] = 0;
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = 0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 1065353216;
+	heap32[(g0+2)] = r7;
+	r7 = 12;
+	f0 =       -12.240598678588867;
+	f1 =                         1;
+	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
+	f2 = f0;
+	f8 =                       -20;
+_239: while(true){
+if(!(r7 <1)) //_LBB26_173
+{
+	f4 =                         0;
+	f3 = f1+f4;
+	r8 = 0;
+	r9 = r8;
+_243: while(true){
+	f5 = r9; //fitos r9, f5
+	f6 =        2.0400998592376709;
+	f5 = f5*f6;
+	f5 = f5+f0;
+	f5 = f5+f4;
+	r10 = r8;
+_245: while(true){
+	f7 = r10; //fitos r10, f7
+	f7 = f7*f6;
+	f7 = f7+f2;
+	f7 = f7+f8;
+	heapFloat[(r4+12)] = f7;
+	heapFloat[(r4+13)] = f3;
+	heapFloat[(r4+14)] = f5;
+	heap32[(r4+15)] = 0;
+	r11 = heap32[(r1)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+2)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = 1065353216;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r3;
+	r10 = (r10 + 1)|0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+if(!(r7 !=r10)) //_LBB26_171
+{
+break _245;
+}
+}
+	r9 = (r9 + 1)|0;
+if(!(r7 !=r9)) //_LBB26_170
+{
+break _243;
+}
+}
+}
+	f3 =        2.0400998592376709;
+	f4 =        1.0199999809265137;
+	r7 = (r7 + -1)|0;
+	f1 = f1+f3;
+	f0 = f0+f4;
+	f2 = f2+f4;
+	if(r7 ==0) //_LBB26_176
+{
+break _239;
+}
+}
+	r3 = sp + -1136;
+	r4 = r3 >> 2;
+	heap32[(fp+-284)] = 1065353216;
+	heap32[(r4+1)] = 1065353216;
+	heap32[(r4+2)] = 1065353216;
+	r5 = sp + -1120;
+	heap32[(r4+3)] = 0;
+	r4 = r5 >> 2;
+	heap32[(fp+-280)] = -1073741824;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+	heap32[(r4+3)] = 0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r3;
+	r3 = sp + -1104;
+	_ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7);
+	r4 = r3 >> 2;
+	heap32[(fp+-276)] = 1065353216;
+	heap32[(r4+1)] = 1065353216;
+	heap32[(r4+2)] = 1065353216;
+	r5 = sp + -1088;
+	heap32[(r4+3)] = 0;
+	r4 = r5 >> 2;
+	heap32[(fp+-272)] = 1082130432;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+	heap32[(r4+3)] = 0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r3;
+	r3 = sp + -1072;
+	_ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7);
+	r4 = r3 >> 2;
+	heap32[(fp+-268)] = 1065353216;
+	heap32[(r4+1)] = 1065353216;
+	heap32[(r4+2)] = 1065353216;
+	r5 = sp + -1056;
+	heap32[(r4+3)] = 0;
+	r4 = r5 >> 2;
+	heap32[(fp+-264)] = 1092616192;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+	heap32[(r4+3)] = 0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r3;
+	_ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7);
+	r3 = heap32[(r2)];
+	r3 = (r3 + 1)|0;
+	heap32[(r2)] = r3;
+	heap32[(g0)] = 71;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB26_178
+{
+	r3 = 0;
+	r4 = (r2 + 4)|0;
+	r3 = (r3 - r4)|0;
+	r3 = r3 & 15;
+	r3 = (r2 + r3)|0;
+	r4 = (r3 + 4)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = r2;
+	r2 = r4;
+}
+	r3 = r2 >> 2;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 1065353216;
+	heap32[(r3+4)] = 1065353216;
+	heap32[(r3+5)] = 1065353216;
+	heap32[(r3+6)] = 0;
+	heap32[(r3+11)] = 1025758986;
+	heap32[(r3)] = r0;
+	heap32[(r3+1)] = 0;
+	heap32[(r3+7)] = 1064682127;
+	heap32[(r3+8)] = 1064682127;
+	heap32[(r3+9)] = 1064682127;
+	r4 = sp + -944;
+	heap32[(r3+10)] = 0;
+	r3 = r4 >> 2;
+	heap32[(fp+-236)] = 1065353216;
+	heap32[(r3+1)] = 0;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 0;
+	heap32[(r3+4)] = 0;
+	heap32[(r3+5)] = 1065353216;
+	heap32[(r3+6)] = 0;
+	heap32[(r3+7)] = 0;
+	heap32[(r3+8)] = 0;
+	heap32[(r3+9)] = 0;
+	heap32[(r3+10)] = 1065353216;
+	heap32[(r3+11)] = 0;
+	heap32[(r3+12)] = 0;
+	heap32[(r3+13)] = 0;
+	heap32[(r3+14)] = 0;
+	r0 = sp + -960;
+	heap32[(r3+15)] = 0;
+	r5 = r0 >> 2;
+	heap32[(fp+-240)] = 0;
+	heap32[(r5+1)] = 0;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = 1065353216;
+	heap32[(g0+2)] = r0;
+	r0 = 8;
+	f0 =                         1;
+	f1 =                         0;
+	_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7);
+	f2 = f1;
+	f3 = f0;
+	f4 = f1;
+_253: while(true){
+	r5 = 24;
+_255: while(true){
+	f5 =        9.9312677383422852;
+	f6 =                         0;
+	f7 = f3*f0;
+	f8 = f4*f6;
+	f9 = f3*f5;
+	f10 = f1*f6;
+	f7 = f8+f7;
+	f11 = f2*f5;
+	f9 = f10+f9;
+	f12 = f2*f0;
+	f13 = f1*f0;
+	f14 = f2*f6;
+	f7 = f7+f11;
+	f9 = f9-f12;
+	f11 = f13+f14;
+	f12 = f4*f5;
+	f5 = f1*f5;
+	f13 = f4*f0;
+	f11 = f11-f12;
+	f12 = f4*f4;
+	f15 = f3*f3;
+	f16 = f4*f7;
+	f17 = f1*f9;
+	f5 = f5+f13;
+	f13 = f3*f6;
+	f5 = f5-f13;
+	f12 = f12+f15;
+	f15 = f2*f2;
+	f18 = f3*f7;
+	f19 = f1*f11;
+	f16 = f16+f17;
+	f17 = f2*f11;
+	f12 = f12+f15;
+	f15 = f1*f1;
+	f7 = f2*f7;
+	f20 = f1*f5;
+	f18 = f18+f19;
+	f19 = f4*f5;
+	f16 = f16-f17;
+	f5 = f3*f5;
+	f17 =                         2;
+	f12 = f12+f15;
+	f7 = f7+f20;
+	f15 = f3*f9;
+	f18 = f18-f19;
+	f9 = f2*f9;
+	f5 = f16+f5;
+	f16 =                        25;
+	f12 = f17/f12;
+	f9 = f18+f9;
+	f5 = f5+f16;
+	f7 = f7-f15;
+	f11 = f4*f11;
+	f15 = f2*f12;
+	f16 = f3*f12;
+	f7 = f7+f11;
+	f9 = f9+f6;
+	heapFloat[(r3+12)] = f5;
+	f5 = f3*f16;
+	f11 = f2*f15;
+	f7 = f7+f6;
+	heapFloat[(r3+13)] = f9;
+	heapFloat[(r3+14)] = f7;
+	f7 =                         1;
+	f9 = f5+f11;
+	f18 = f4*f16;
+	f19 = f1*f15;
+	f9 = f7-f9;
+	heap32[(r3+15)] = 0;
+	f20 = f4*f15;
+	f16 = f1*f16;
+	f21 = f18-f19;
+	heapFloat[(fp+-236)] = f9;
+	f9 = f4*f12;
+	f12 = f20+f16;
+	heapFloat[(r3+1)] = f21;
+	f21 = f4*f9;
+	heapFloat[(r3+2)] = f12;
+	f11 = f21+f11;
+	f12 = f18+f19;
+	heap32[(r3+3)] = 0;
+	f15 = f3*f15;
+	f9 = f1*f9;
+	f11 = f7-f11;
+	heapFloat[(r3+4)] = f12;
+	f12 = f15-f9;
+	heapFloat[(r3+5)] = f11;
+	heapFloat[(r3+6)] = f12;
+	f11 = f20-f16;
+	heap32[(r3+7)] = 0;
+	f5 = f21+f5;
+	f9 = f15+f9;
+	heapFloat[(r3+8)] = f11;
+	f5 = f7-f5;
+	heapFloat[(r3+9)] = f9;
+	heapFloat[(r3+10)] = f5;
+	heap32[(r3+11)] = 0;
+	r7 = heap32[(r1)];
+	r7 = r7 >> 2;
+	f5 =       0.99144488573074341;
+	f7 =       0.13052619993686676;
+	r7 = heap32[(r7+2)];
+	f9 = f1*f5;
+	f11 = f2*f5;
+	f12 = f4*f5;
+	f1 = f1*f7;
+	f5 = f3*f5;
+	f1 = f1+f5;
+	f5 = f10+f12;
+	f9 = f9-f8;
+	f3 = f3*f7;
+	f10 = f10+f11;
+	f4 = f4*f7;
+	f3 = f9-f3;
+	f4 = f10+f4;
+	f9 = f1+f14;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = 1065353216;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r2;
+	f5 = f5+f13;
+	f7 = f2*f7;
+	r5 = (r5 + -1)|0;
+	f1 = f3-f14;
+	f2 = f4-f13;
+	f3 = f9-f8;
+	f4 = f5-f7;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+if(!(r5 !=0)) //_LBB26_180
+{
+break _255;
+}
+}
+	f5 =       0.99785894155502319;
+	f7 =      0.065403133630752563;
+	f8 = f4*f5;
+	f9 = f1*f6;
+	f10 = f2*f5;
+	f11 = f1*f7;
+	f12 = f3*f5;
+	f1 = f1*f5;
+	f5 = f4*f6;
+	f8 = f9+f8;
+	f13 = f3*f6;
+	f11 = f11+f12;
+	f6 = f2*f6;
+	f9 = f9+f10;
+	f4 = f4*f7;
+	f1 = f1-f5;
+	f3 = f3*f7;
+	f10 = f11+f6;
+	f9 = f9+f4;
+	f1 = f1-f3;
+	f3 = f8+f13;
+	f2 = f2*f7;
+	r0 = (r0 + -1)|0;
+	f4 = f3-f2;
+	f3 = f10-f5;
+	f2 = f9-f13;
+	f1 = f1-f6;
+	f0 = f0+f17;
+	if(r0 ==0) //_LBB26_165
+{
+break _161;
+}
+else{
+continue _253;
+}
+}
+}
+else{
+	if(r0 ==3) //_LBB26_183
+{
+	r3 = -16;
+	r0 = 16;
+	f0 =                         0;
+	f1 =                         1;
+	f2 = f0;
+_260: while(true){
+	f3 = r3; //fitos r3, f3
+	f4 =                         6;
+	f3 = f3*f4;
+	f5 =                       0.5;
+	f6 =                       3.5;
+	f7 =        4.2000002861022949;
+	f8 =        5.5999999046325684;
+	f9 =        2.2749998569488525;
+	f10 =       0.69999998807907104;
+	f11 =        5.0750002861022949;
+	f3 = f3*f5;
+	f5 = f2+f0;
+	f6 = f1+f6;
+	f7 = f1+f7;
+	f8 = f1+f8;
+	f9 = f1+f9;
+	f10 = f1+f10;
+	f11 = f1+f11;
+	r5 = 0;
+_262: while(true){
+	heap32[(g0)] = 136;
+	_Znwj(i7);
+	r7 = r_g0;
+	r8 = _ZTV7RagDoll;
+	r9 = r7 >> 2;
+	r10 = heap32[(r1+1)];
+	r8 = (r8 + 8)|0;
+	heap32[(r9)] = r8;
+	heap32[(r9+1)] = r10;
+	r8 = heap32[(r2)];
+	r9 = (r8 + 1)|0;
+	heap32[(r2)] = r9;
+	f12 = r5; //fitos r5, f12
+	heap32[(g0)] = 75;
+	f12 = f12*f4;
+	malloc(i7);
+	r9 = r_g0;
+	f12 = f12+f3;
+	if(r9 !=0) //_LBB26_187
+{
+	r10 = 0;
+	r11 = (r9 + 4)|0;
+	r10 = (r10 - r11)|0;
+	r10 = r10 & 15;
+	r10 = (r9 + r10)|0;
+	r11 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r9;
+	r9 = r11;
+}
+	r10 = r9 >> 2;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = 1065353216;
+	r11 = _ZTV14btCapsuleShape;
+	heap32[(r10+6)] = 0;
+	r11 = (r11 + 8)|0;
+	heap32[(r10+11)] = 1025758986;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = 10;
+	heap32[(r10+13)] = 1;
+	heap32[(r10+7)] = 1057384039;
+	heap32[(r10+8)] = 1051931443;
+	heap32[(r10+9)] = 1057384039;
+	r12 = r7 >> 2;
+	heap32[(r10+10)] = 0;
+	r10 = (r8 + 2)|0;
+	heap32[(r12+2)] = r9;
+	heap32[(r2)] = r10;
+	heap32[(g0)] = 75;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB26_190
+{
+	r10 = 0;
+	r13 = (r9 + 4)|0;
+	r10 = (r10 - r13)|0;
+	r10 = r10 & 15;
+	r10 = (r9 + r10)|0;
+	r13 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r9;
+	r9 = r13;
+}
+	r10 = r9 >> 2;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+11)] = 1025758986;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = 10;
+	heap32[(r10+13)] = 1;
+	heap32[(r10+7)] = 1057384039;
+	heap32[(r10+8)] = 1056629064;
+	heap32[(r10+9)] = 1057384039;
+	heap32[(r10+10)] = 0;
+	r10 = (r8 + 3)|0;
+	heap32[(r12+3)] = r9;
+	heap32[(r2)] = r10;
+	heap32[(g0)] = 75;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB26_193
+{
+	r10 = 0;
+	r13 = (r9 + 4)|0;
+	r10 = (r10 - r13)|0;
+	r10 = r10 & 15;
+	r10 = (r9 + r10)|0;
+	r13 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r9;
+	r9 = r13;
+}
+	r10 = r9 >> 2;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+11)] = 1025758986;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = 10;
+	heap32[(r10+13)] = 1;
+	heap32[(r10+7)] = 1051931443;
+	heap32[(r10+8)] = 1035154227;
+	heap32[(r10+9)] = 1051931443;
+	heap32[(r10+10)] = 0;
+	r10 = (r8 + 4)|0;
+	heap32[(r12+4)] = r9;
+	heap32[(r2)] = r10;
+	heap32[(g0)] = 75;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB26_196
+{
+	r10 = 0;
+	r13 = (r9 + 4)|0;
+	r10 = (r10 - r13)|0;
+	r10 = r10 & 15;
+	r10 = (r9 + r10)|0;
+	r13 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r9;
+	r9 = r13;
+}
+	r10 = r9 >> 2;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+11)] = 1025758986;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = 10;
+	heap32[(r10+13)] = 1;
+	heap32[(r10+7)] = 1048240456;
+	heap32[(r10+8)] = 1061788057;
+	heap32[(r10+9)] = 1048240456;
+	heap32[(r10+10)] = 0;
+	r10 = (r8 + 5)|0;
+	heap32[(r12+5)] = r9;
+	heap32[(r2)] = r10;
+	heap32[(g0)] = 75;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB26_199
+{
+	r10 = 0;
+	r13 = (r9 + 4)|0;
+	r10 = (r10 - r13)|0;
+	r10 = r10 & 15;
+	r10 = (r9 + r10)|0;
+	r13 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r9;
+	r9 = r13;
+}
+	r10 = r9 >> 2;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+11)] = 1025758986;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = 10;
+	heap32[(r10+13)] = 1;
+	heap32[(r10+7)] = 1043542835;
+	heap32[(r10+8)] = 1059439248;
+	heap32[(r10+9)] = 1043542835;
+	heap32[(r10+10)] = 0;
+	r10 = (r8 + 6)|0;
+	heap32[(r12+6)] = r9;
+	heap32[(r2)] = r10;
+	heap32[(g0)] = 75;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB26_202
+{
+	r10 = 0;
+	r13 = (r9 + 4)|0;
+	r10 = (r10 - r13)|0;
+	r10 = r10 & 15;
+	r10 = (r9 + r10)|0;
+	r13 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r9;
+	r9 = r13;
+}
+	r10 = r9 >> 2;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+11)] = 1025758986;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = 10;
+	heap32[(r10+13)] = 1;
+	heap32[(r10+7)] = 1048240456;
+	heap32[(r10+8)] = 1061788057;
+	heap32[(r10+9)] = 1048240456;
+	heap32[(r10+10)] = 0;
+	r10 = (r8 + 7)|0;
+	heap32[(r12+7)] = r9;
+	heap32[(r2)] = r10;
+	heap32[(g0)] = 75;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB26_205
+{
+	r10 = 0;
+	r13 = (r9 + 4)|0;
+	r10 = (r10 - r13)|0;
+	r10 = r10 & 15;
+	r10 = (r9 + r10)|0;
+	r13 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r9;
+	r9 = r13;
+}
+	r10 = r9 >> 2;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+11)] = 1025758986;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = 10;
+	heap32[(r10+13)] = 1;
+	heap32[(r10+7)] = 1043542835;
+	heap32[(r10+8)] = 1059439248;
+	heap32[(r10+9)] = 1043542835;
+	heap32[(r10+10)] = 0;
+	r10 = (r8 + 8)|0;
+	heap32[(r12+8)] = r9;
+	heap32[(r2)] = r10;
+	heap32[(g0)] = 75;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB26_208
+{
+	r10 = 0;
+	r13 = (r9 + 4)|0;
+	r10 = (r10 - r13)|0;
+	r10 = r10 & 15;
+	r10 = (r9 + r10)|0;
+	r13 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r9;
+	r9 = r13;
+}
+	r10 = r9 >> 2;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+11)] = 1025758986;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = 10;
+	heap32[(r10+13)] = 1;
+	heap32[(r10+7)] = 1043542835;
+	heap32[(r10+8)] = 1058264843;
+	heap32[(r10+9)] = 1043542835;
+	heap32[(r10+10)] = 0;
+	r10 = (r8 + 9)|0;
+	heap32[(r12+9)] = r9;
+	heap32[(r2)] = r10;
+	heap32[(g0)] = 75;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB26_211
+{
+	r10 = 0;
+	r13 = (r9 + 4)|0;
+	r10 = (r10 - r13)|0;
+	r10 = r10 & 15;
+	r10 = (r9 + r10)|0;
+	r13 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r9;
+	r9 = r13;
+}
+	r10 = r9 >> 2;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+11)] = 1025758986;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = 10;
+	heap32[(r10+13)] = 1;
+	heap32[(r10+7)] = 1041194025;
+	heap32[(r10+8)] = 1054867456;
+	heap32[(r10+9)] = 1041194025;
+	heap32[(r10+10)] = 0;
+	r10 = (r8 + 10)|0;
+	heap32[(r12+10)] = r9;
+	heap32[(r2)] = r10;
+	heap32[(g0)] = 75;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB26_214
+{
+	r10 = 0;
+	r13 = (r9 + 4)|0;
+	r10 = (r10 - r13)|0;
+	r10 = r10 & 15;
+	r10 = (r9 + r10)|0;
+	r13 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r9;
+	r9 = r13;
+}
+	r10 = r9 >> 2;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+11)] = 1025758986;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = 10;
+	heap32[(r10+13)] = 1;
+	heap32[(r10+7)] = 1043542835;
+	heap32[(r10+8)] = 1058264843;
+	heap32[(r10+9)] = 1043542835;
+	heap32[(r10+10)] = 0;
+	r8 = (r8 + 11)|0;
+	heap32[(r12+11)] = r9;
+	heap32[(r2)] = r8;
+	heap32[(g0)] = 75;
+	malloc(i7);
+	r8 = r_g0;
+	if(r8 !=0) //_LBB26_217
+{
+	r9 = 0;
+	r10 = (r8 + 4)|0;
+	r9 = (r9 - r10)|0;
+	r9 = r9 & 15;
+	r9 = (r8 + r9)|0;
+	r10 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r8;
+	r8 = r10;
+}
+	r9 = r8 >> 2;
+	heap32[(r9+2)] = 0;
+	heap32[(r9+3)] = 1065353216;
+	heap32[(r9+4)] = 1065353216;
+	heap32[(r9+5)] = 1065353216;
+	heap32[(r9+6)] = 0;
+	heap32[(r9+11)] = 1025758986;
+	heap32[(r9)] = r11;
+	heap32[(r9+1)] = 10;
+	heap32[(r9+13)] = 1;
+	heap32[(r9+7)] = 1041194025;
+	heap32[(r9+8)] = 1054867456;
+	heap32[(r9+9)] = 1041194025;
+	heap32[(r9+10)] = 0;
+	heap32[(r12+12)] = r8;
+	r8 = heap32[(r12+2)];
+	r9 = sp + -880;
+	r10 = r9 >> 2;
+	heap32[(fp+-220)] = 1065353216;
+	heap32[(r10+1)] = 0;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = 0;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = 0;
+	heap32[(r10+9)] = 0;
+	heap32[(r10+10)] = 1065353216;
+	f13 =                         0;
+	f13 = f12+f13;
+	heap32[(r10+11)] = 0;
+	heapFloat[(r10+12)] = f13;
+	heapFloat[(r10+13)] = f6;
+	heapFloat[(r10+14)] = f5;
+	heap32[(r10+15)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
+	heap32[(r12+13)] = r_g0;
+	r8 = heap32[(r12+3)];
+	r9 = sp + -816;
+	r10 = r9 >> 2;
+	heap32[(fp+-204)] = 1065353216;
+	heap32[(r10+1)] = 0;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = 0;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = 0;
+	heap32[(r10+9)] = 0;
+	heap32[(r10+10)] = 1065353216;
+	heap32[(r10+11)] = 0;
+	heapFloat[(r10+12)] = f13;
+	heapFloat[(r10+13)] = f7;
+	heapFloat[(r10+14)] = f5;
+	heap32[(r10+15)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
+	heap32[(r12+14)] = r_g0;
+	r8 = heap32[(r12+4)];
+	r9 = sp + -752;
+	r10 = r9 >> 2;
+	heap32[(fp+-188)] = 1065353216;
+	heap32[(r10+1)] = 0;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = 0;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = 0;
+	heap32[(r10+9)] = 0;
+	heap32[(r10+10)] = 1065353216;
+	heap32[(r10+11)] = 0;
+	heapFloat[(r10+12)] = f13;
+	heapFloat[(r10+13)] = f8;
+	heapFloat[(r10+14)] = f5;
+	heap32[(r10+15)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
+	heap32[(r12+15)] = r_g0;
+	r8 = heap32[(r12+5)];
+	r9 = sp + -688;
+	r10 = r9 >> 2;
+	heap32[(fp+-172)] = 1065353216;
+	heap32[(r10+1)] = 0;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = 0;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = 0;
+	heap32[(r10+9)] = 0;
+	f13 =      -0.62999999523162842;
+	heap32[(r10+10)] = 1065353216;
+	f13 = f12+f13;
+	heap32[(r10+11)] = 0;
+	heapFloat[(r10+12)] = f13;
+	heapFloat[(r10+13)] = f9;
+	heapFloat[(r10+14)] = f5;
+	heap32[(r10+15)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
+	heap32[(r12+16)] = r_g0;
+	r8 = heap32[(r12+6)];
+	r9 = sp + -624;
+	r10 = r9 >> 2;
+	heap32[(fp+-156)] = 1065353216;
+	heap32[(r10+1)] = 0;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = 0;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = 0;
+	heap32[(r10+9)] = 0;
+	heap32[(r10+10)] = 1065353216;
+	heap32[(r10+11)] = 0;
+	heapFloat[(r10+12)] = f13;
+	heapFloat[(r10+13)] = f10;
+	heapFloat[(r10+14)] = f5;
+	heap32[(r10+15)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
+	heap32[(r12+17)] = r_g0;
+	r8 = heap32[(r12+7)];
+	r9 = sp + -560;
+	r10 = r9 >> 2;
+	heap32[(fp+-140)] = 1065353216;
+	heap32[(r10+1)] = 0;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = 0;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = 0;
+	heap32[(r10+9)] = 0;
+	f13 =       0.62999999523162842;
+	heap32[(r10+10)] = 1065353216;
+	f13 = f12+f13;
+	heap32[(r10+11)] = 0;
+	heapFloat[(r10+12)] = f13;
+	heapFloat[(r10+13)] = f9;
+	heapFloat[(r10+14)] = f5;
+	heap32[(r10+15)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
+	heap32[(r12+18)] = r_g0;
+	r8 = heap32[(r12+8)];
+	r9 = sp + -496;
+	r10 = r9 >> 2;
+	heap32[(fp+-124)] = 1065353216;
+	heap32[(r10+1)] = 0;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = 0;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = 0;
+	heap32[(r10+9)] = 0;
+	heap32[(r10+10)] = 1065353216;
+	heap32[(r10+11)] = 0;
+	heapFloat[(r10+12)] = f13;
+	heapFloat[(r10+13)] = f10;
+	heapFloat[(r10+14)] = f5;
+	heap32[(r10+15)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
+	heap32[(r12+19)] = r_g0;
+	r8 = heap32[(r12+9)];
+	r9 = sp + -432;
+	r10 = r9 >> 2;
+	heap32[(fp+-108)] = -1287930578;
+	heap32[(r10+1)] = -1082130432;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = -1287930578;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = 0;
+	heap32[(r10+9)] = 0;
+	f13 =       -1.2250000238418579;
+	heap32[(r10+10)] = 1065353216;
+	f13 = f12+f13;
+	heap32[(r10+11)] = 0;
+	heapFloat[(r10+12)] = f13;
+	heapFloat[(r10+13)] = f11;
+	heapFloat[(r10+14)] = f5;
+	heap32[(r10+15)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
+	heap32[(r12+20)] = r_g0;
+	r8 = heap32[(r12+10)];
+	r9 = sp + -368;
+	r10 = r9 >> 2;
+	heap32[(fp+-92)] = -1287930578;
+	heap32[(r10+1)] = -1082130432;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = -1287930578;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = 0;
+	heap32[(r10+9)] = 0;
+	f13 =       -2.4500000476837158;
+	heap32[(r10+10)] = 1065353216;
+	f13 = f12+f13;
+	heap32[(r10+11)] = 0;
+	heapFloat[(r10+12)] = f13;
+	heapFloat[(r10+13)] = f11;
+	heapFloat[(r10+14)] = f5;
+	heap32[(r10+15)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
+	heap32[(r12+21)] = r_g0;
+	r8 = heap32[(r12+11)];
+	r9 = sp + -304;
+	r10 = r9 >> 2;
+	heap32[(fp+-76)] = -1287930578;
+	heap32[(r10+1)] = 1065353216;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = -1082130432;
+	heap32[(r10+5)] = -1287930578;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = -2147483648;
+	heap32[(r10+9)] = 0;
+	f13 =        1.2250000238418579;
+	heap32[(r10+10)] = 1065353216;
+	f13 = f12+f13;
+	heap32[(r10+11)] = 0;
+	heapFloat[(r10+12)] = f13;
+	heapFloat[(r10+13)] = f11;
+	heapFloat[(r10+14)] = f5;
+	heap32[(r10+15)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
+	heap32[(r12+22)] = r_g0;
+	r8 = heap32[(r12+12)];
+	r9 = sp + -240;
+	r10 = r9 >> 2;
+	heap32[(fp+-60)] = -1287930578;
+	heap32[(r10+1)] = 1065353216;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = -1082130432;
+	heap32[(r10+5)] = -1287930578;
+	heap32[(r10+6)] = 0;
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = -2147483648;
+	heap32[(r10+9)] = 0;
+	f13 =        2.4500000476837158;
+	heap32[(r10+10)] = 1065353216;
+	f12 = f12+f13;
+	heap32[(r10+11)] = 0;
+	heapFloat[(r10+12)] = f12;
+	heapFloat[(r10+13)] = f11;
+	heapFloat[(r10+14)] = f5;
+	heap32[(r10+15)] = 0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	_ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7);
+	r9 = 0;
+	heap32[(r12+23)] = r_g0;
+_297: while(true){
+	r8 = r9 << 2;
+	r8 = (r7 - r8)|0;
+	r8 = r8 >> 2;
+	r10 = heap32[(r8+13)];
+	r10 = r10 >> 2;
+	heap32[(r10+109)] = 1028443341;
+	heap32[(r10+110)] = 1062836634;
+	r10 = heap32[(r8+13)];
+	r10 = r10 >> 2;
+	heap32[(r10+55)] = 1061997773;
+	r8 = heap32[(r8+13)];
+	r8 = r8 >> 2;
+	r9 = (r9 + -1)|0;
+	heap32[(r8+116)] = 1070386381;
+	heap32[(r8+117)] = 1075838976;
+if(!(r9 !=-11)) //_LBB26_219
+{
+break _297;
+}
+}
+	heap32[(g0)] = 748;
+	_Znwj(i7);
+	r8 = r_g0;
+	r9 = heap32[(r12+14)];
+	r10 = heap32[(r12+13)];
+	r11 = r8 >> 2;
+	heap32[(r11+1)] = 4;
+	heap32[(r11+2)] = -1;
+	r13 = 0;
+	heap32[(r11+3)] = -1;
+	heap8[r8+16] = r13;
+	heap32[(r11+5)] = r10;
+	heap32[(r11+6)] = r9;
+	r9 = _ZTV17btHingeConstraint;
+	heap32[(r11+7)] = 0;
+	r9 = (r9 + 8)|0;
+	heap32[(r11+8)] = 1050253722;
+	heap32[(r11)] = r9;
+	heap32[(r11+135)] = -1287930578;
+	heap32[(r11+136)] = 0;
+	heap32[(r11+137)] = 1065353216;
+	heap32[(r11+138)] = 0;
+	heap32[(r11+139)] = -2147483648;
+	heap32[(r11+140)] = 1065353216;
+	heap32[(r11+141)] = 0;
+	heap32[(r11+142)] = 0;
+	heap32[(r11+143)] = -1082130432;
+	heap32[(r11+144)] = -2147483648;
+	heap32[(r11+145)] = -1287930578;
+	heap32[(r11+146)] = 0;
+	heap32[(r11+147)] = 0;
+	heap32[(r11+148)] = 1057384039;
+	heap32[(r11+149)] = 0;
+	heap32[(r11+150)] = 0;
+	heap32[(r11+151)] = -1287930578;
+	heap32[(r11+152)] = 0;
+	heap32[(r11+153)] = 1065353216;
+	heap32[(r11+154)] = 0;
+	heap32[(r11+155)] = -2147483648;
+	heap32[(r11+156)] = 1065353216;
+	heap32[(r11+157)] = 0;
+	heap32[(r11+158)] = 0;
+	heap32[(r11+159)] = -1082130432;
+	heap32[(r11+160)] = -2147483648;
+	heap32[(r11+161)] = -1287930578;
+	heap32[(r11+162)] = 0;
+	heap32[(r11+163)] = 0;
+	heap32[(r11+164)] = -1090099609;
+	heap32[(r11+165)] = 0;
+	heap32[(r11+166)] = 0;
+	heap8[r8+720] = r13;
+	heap8[r8+721] = r13;
+	heap8[r8+723] = r13;
+	heap8[r8+724] = r4;
+	heap8[r8+725] = r13;
+	heap32[(r11+183)] = 0;
+	heap32[(r11+172)] = 1065353216;
+	heap32[(r11+173)] = -1082130432;
+	heap32[(r11+170)] = 1050253722;
+	heap32[(r11+171)] = 1065353216;
+	heap32[(r11+169)] = 1063675494;
+	heap8[r8+722] = r13;
+	heap32[(r11+179)] = 1065353216;
+	heap32[(g0)] = -1085730853;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f12 = f_g0;
+	f13 =       -3.1415927410125732;
+	if(f12 >=f13) //_LBB26_222
+{
+	f14 =        3.1415927410125732;
+	if(f12 >f14) //_LBB26_224
+{
+	f14 =       -6.2831854820251465;
+	f12 = f12+f14;
+}
+}
+else{
+	f14 =        6.2831854820251465;
+	f12 = f12+f14;
+}
+	r10 = r8 >> 2;
+	heapFloat[(r10+172)] = f12;
+	heap32[(g0)] = 1070141403;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f12 = f_g0;
+	if(f12 >=f13) //_LBB26_227
+{
+	f14 =        3.1415927410125732;
+	if(f12 >f14) //_LBB26_229
+{
+	f14 =       -6.2831854820251465;
+	f12 = f12+f14;
+}
+}
+else{
+	f14 =        6.2831854820251465;
+	f12 = f12+f14;
+}
+	heapFloat[(r10+173)] = f12;
+	heap32[(r10+169)] = 1063675494;
+	heap32[(r10+170)] = 1050253722;
+	heap32[(r10+171)] = 1065353216;
+	heap32[(r12+24)] = r8;
+	r10 = heap32[(r12+1)];
+	r11 = r10 >> 2;
+	r11 = heap32[(r11)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+13)];
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	heap32[(g0)] = 596;
+	_Znwj(i7);
+	r10 = heap32[(r12+15)];
+	r11 = heap32[(r12+14)];
+	r14 = r_g0 >> 2;
+	heap32[(r14+1)] = 5;
+	heap32[(r14+2)] = -1;
+	heap32[(r14+3)] = -1;
+	heap8[r_g0+16] = r13;
+	heap32[(r14+5)] = r11;
+	heap32[(r14+6)] = r10;
+	heap32[(r14+7)] = 0;
+	r10 = _ZTV21btConeTwistConstraint;
+	heap32[(r14+8)] = 1050253722;
+	r10 = (r10 + 8)|0;
+	heap32[(r14)] = r10;
+	heap32[(r14+72)] = -1287930578;
+	heap32[(r14+73)] = -1082130432;
+	heap32[(r14+74)] = 0;
+	heap32[(r14+75)] = 0;
+	heap32[(r14+76)] = 1065353216;
+	heap32[(r14+77)] = -1287930578;
+	heap32[(r14+78)] = 0;
+	heap32[(r14+79)] = 0;
+	heap32[(r14+80)] = -2147483648;
+	heap32[(r14+81)] = 0;
+	heap32[(r14+82)] = 1065353216;
+	heap32[(r14+83)] = 0;
+	heap32[(r14+84)] = 0;
+	heap32[(r14+85)] = 1065772647;
+	heap32[(r14+86)] = 0;
+	heap32[(r14+87)] = 0;
+	heap32[(r14+88)] = -1287930578;
+	heap32[(r14+89)] = -1082130432;
+	heap32[(r14+90)] = 0;
+	heap32[(r14+91)] = 0;
+	heap32[(r14+92)] = 1065353216;
+	heap32[(r14+93)] = -1287930578;
+	heap32[(r14+94)] = 0;
+	heap32[(r14+95)] = 0;
+	heap32[(r14+96)] = -2147483648;
+	heap32[(r14+97)] = 0;
+	heap32[(r14+98)] = 1065353216;
+	heap32[(r14+99)] = 0;
+	heap32[(r14+100)] = 0;
+	heap32[(r14+101)] = -1090854584;
+	heap32[(r14+102)] = 0;
+	heap32[(r14+103)] = 0;
+	heap8[r_g0+540] = r13;
+	heap32[(r14+128)] = 0;
+	heap32[(r14+140)] = -1082130432;
+	heap32[(r14+107)] = 1008981770;
+	heap32[(r14+111)] = 1028443341;
+	heap32[(r14+145)] = 0;
+	heap32[(r14+146)] = 0;
+	heap32[(r14+147)] = 1060320051;
+	heap32[(r14+148)] = 0;
+	heap32[(r14+108)] = 1061752795;
+	heap32[(r14+109)] = 1061752795;
+	heap32[(r14+110)] = 1070141403;
+	heap32[(r14+104)] = 1065353216;
+	heap32[(r14+105)] = 1050253722;
+	heap32[(r14+106)] = 1065353216;
+	heap32[(r12+25)] = r_g0;
+	r11 = heap32[(r12+1)];
+	r14 = r11 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+13)];
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+	heap32[(g0)] = 596;
+	_Znwj(i7);
+	r11 = heap32[(r12+16)];
+	r14 = heap32[(r12+13)];
+	r15 = r_g0 >> 2;
+	heap32[(r15+1)] = 5;
+	heap32[(r15+2)] = -1;
+	heap32[(r15+3)] = -1;
+	heap8[r_g0+16] = r13;
+	heap32[(r15+5)] = r14;
+	heap32[(r15+6)] = r11;
+	heap32[(r15+7)] = 0;
+	heap32[(r15+8)] = 1050253722;
+	heap32[(r15)] = r10;
+	heap32[(r15+72)] = -1087044364;
+	heap32[(r15+73)] = -1087044366;
+	heap32[(r15+74)] = 0;
+	heap32[(r15+75)] = 0;
+	heap32[(r15+76)] = 1060439282;
+	heap32[(r15+77)] = -1087044364;
+	heap32[(r15+78)] = 0;
+	heap32[(r15+79)] = 0;
+	heap32[(r15+80)] = -2147483648;
+	heap32[(r15+81)] = 0;
+	heap32[(r15+82)] = 1065353216;
+	heap32[(r15+83)] = 0;
+	heap32[(r15+84)] = -1088338002;
+	heap32[(r15+85)] = -1095552205;
+	heap32[(r15+86)] = 0;
+	heap32[(r15+87)] = 0;
+	heap32[(r15+88)] = -1087044364;
+	heap32[(r15+89)] = -1087044366;
+	heap32[(r15+90)] = 0;
+	heap32[(r15+91)] = 0;
+	heap32[(r15+92)] = 1060439282;
+	heap32[(r15+93)] = -1087044364;
+	heap32[(r15+94)] = 0;
+	heap32[(r15+95)] = 0;
+	heap32[(r15+96)] = -2147483648;
+	heap32[(r15+97)] = 0;
+	heap32[(r15+98)] = 1065353216;
+	heap32[(r15+99)] = 0;
+	heap32[(r15+100)] = 0;
+	heap32[(r15+101)] = 1061788057;
+	heap32[(r15+102)] = 0;
+	heap32[(r15+103)] = 0;
+	heap8[r_g0+540] = r13;
+	heap32[(r15+128)] = 0;
+	heap32[(r15+140)] = -1082130432;
+	heap32[(r15+107)] = 1008981770;
+	heap32[(r15+111)] = 1028443341;
+	heap32[(r15+145)] = 0;
+	heap32[(r15+146)] = 0;
+	heap32[(r15+147)] = 1060320051;
+	heap32[(r15+148)] = 0;
+	heap32[(r15+108)] = 1061752795;
+	heap32[(r15+109)] = 1061752795;
+	heap32[(r15+110)] = 0;
+	heap32[(r15+104)] = 1065353216;
+	heap32[(r15+105)] = 1050253722;
+	heap32[(r15+106)] = 1065353216;
+	heap32[(r12+26)] = r_g0;
+	r11 = heap32[(r12+1)];
+	r14 = r11 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+13)];
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+	heap32[(g0)] = 748;
+	_Znwj(i7);
+	r8 = r_g0;
+	r11 = heap32[(r12+17)];
+	r14 = heap32[(r12+16)];
+	r15 = r8 >> 2;
+	heap32[(r15+1)] = 4;
+	heap32[(r15+2)] = -1;
+	heap32[(r15+3)] = -1;
+	heap8[r8+16] = r13;
+	heap32[(r15+5)] = r14;
+	heap32[(r15+6)] = r11;
+	heap32[(r15+7)] = 0;
+	heap32[(r15+8)] = 1050253722;
+	heap32[(r15)] = r9;
+	heap32[(r15+135)] = -1287930578;
+	heap32[(r15+136)] = 0;
+	heap32[(r15+137)] = 1065353216;
+	heap32[(r15+138)] = 0;
+	heap32[(r15+139)] = -2147483648;
+	heap32[(r15+140)] = 1065353216;
+	heap32[(r15+141)] = 0;
+	heap32[(r15+142)] = 0;
+	heap32[(r15+143)] = -1082130432;
+	heap32[(r15+144)] = -2147483648;
+	heap32[(r15+145)] = -1287930578;
+	heap32[(r15+146)] = 0;
+	heap32[(r15+147)] = 0;
+	heap32[(r15+148)] = -1085695591;
+	heap32[(r15+149)] = 0;
+	heap32[(r15+150)] = 0;
+	heap32[(r15+151)] = -1287930578;
+	heap32[(r15+152)] = 0;
+	heap32[(r15+153)] = 1065353216;
+	heap32[(r15+154)] = 0;
+	heap32[(r15+155)] = -2147483648;
+	heap32[(r15+156)] = 1065353216;
+	heap32[(r15+157)] = 0;
+	heap32[(r15+158)] = 0;
+	heap32[(r15+159)] = -1082130432;
+	heap32[(r15+160)] = -2147483648;
+	heap32[(r15+161)] = -1287930578;
+	heap32[(r15+162)] = 0;
+	heap32[(r15+163)] = 0;
+	heap32[(r15+164)] = 1059439248;
+	heap32[(r15+165)] = 0;
+	heap32[(r15+166)] = 0;
+	heap8[r8+720] = r13;
+	heap8[r8+721] = r13;
+	heap8[r8+723] = r13;
+	heap8[r8+724] = r4;
+	heap8[r8+725] = r13;
+	heap32[(r15+183)] = 0;
+	heap32[(r15+172)] = 1065353216;
+	heap32[(r15+173)] = -1082130432;
+	heap32[(r15+170)] = 1050253722;
+	heap32[(r15+171)] = 1065353216;
+	heap32[(r15+169)] = 1063675494;
+	heap8[r8+722] = r13;
+	heap32[(r15+179)] = 1065353216;
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f12 = f_g0;
+	if(f12 >=f13) //_LBB26_232
+{
+	f14 =        3.1415927410125732;
+	if(f12 >f14) //_LBB26_234
+{
+	f14 =       -6.2831854820251465;
+	f12 = f12+f14;
+}
+}
+else{
+	f14 =        6.2831854820251465;
+	f12 = f12+f14;
+}
+	r11 = r8 >> 2;
+	heapFloat[(r11+172)] = f12;
+	heap32[(g0)] = 1070141403;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f12 = f_g0;
+	if(f12 >=f13) //_LBB26_237
+{
+	f14 =        3.1415927410125732;
+	if(f12 >f14) //_LBB26_239
+{
+	f14 =       -6.2831854820251465;
+	f12 = f12+f14;
+}
+}
+else{
+	f14 =        6.2831854820251465;
+	f12 = f12+f14;
+}
+	heapFloat[(r11+173)] = f12;
+	heap32[(r11+169)] = 1063675494;
+	heap32[(r11+170)] = 1050253722;
+	heap32[(r11+171)] = 1065353216;
+	heap32[(r12+27)] = r8;
+	r11 = heap32[(r12+1)];
+	r14 = r11 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+13)];
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+	heap32[(g0)] = 596;
+	_Znwj(i7);
+	r11 = heap32[(r12+18)];
+	r14 = heap32[(r12+13)];
+	r15 = r_g0 >> 2;
+	heap32[(r15+1)] = 5;
+	heap32[(r15+2)] = -1;
+	heap32[(r15+3)] = -1;
+	heap8[r_g0+16] = r13;
+	heap32[(r15+5)] = r14;
+	heap32[(r15+6)] = r11;
+	heap32[(r15+7)] = 0;
+	heap32[(r15+8)] = 1050253722;
+	heap32[(r15)] = r10;
+	heap32[(r15+72)] = 1060439283;
+	heap32[(r15+73)] = -1087044365;
+	heap32[(r15+74)] = 0;
+	heap32[(r15+75)] = 0;
+	heap32[(r15+76)] = 1060439283;
+	heap32[(r15+77)] = 1060439283;
+	heap32[(r15+78)] = 0;
+	heap32[(r15+79)] = 0;
+	heap32[(r15+80)] = -2147483648;
+	heap32[(r15+81)] = 0;
+	heap32[(r15+82)] = 1065353216;
+	heap32[(r15+83)] = 0;
+	heap32[(r15+84)] = 1059145646;
+	heap32[(r15+85)] = -1095552205;
+	heap32[(r15+86)] = 0;
+	heap32[(r15+87)] = 0;
+	heap32[(r15+88)] = 1060439283;
+	heap32[(r15+89)] = -1087044365;
+	heap32[(r15+90)] = 0;
+	heap32[(r15+91)] = 0;
+	heap32[(r15+92)] = 1060439283;
+	heap32[(r15+93)] = 1060439283;
+	heap32[(r15+94)] = 0;
+	heap32[(r15+95)] = 0;
+	heap32[(r15+96)] = -2147483648;
+	heap32[(r15+97)] = 0;
+	heap32[(r15+98)] = 1065353216;
+	heap32[(r15+99)] = 0;
+	heap32[(r15+100)] = 0;
+	heap32[(r15+101)] = 1061788057;
+	heap32[(r15+102)] = 0;
+	heap32[(r15+103)] = 0;
+	heap8[r_g0+540] = r13;
+	heap32[(r15+128)] = 0;
+	heap32[(r15+140)] = -1082130432;
+	heap32[(r15+107)] = 1008981770;
+	heap32[(r15+111)] = 1028443341;
+	heap32[(r15+145)] = 0;
+	heap32[(r15+146)] = 0;
+	heap32[(r15+147)] = 1060320051;
+	heap32[(r15+148)] = 0;
+	heap32[(r15+108)] = 1061752795;
+	heap32[(r15+109)] = 1061752795;
+	heap32[(r15+110)] = 0;
+	heap32[(r15+104)] = 1065353216;
+	heap32[(r15+105)] = 1050253722;
+	heap32[(r15+106)] = 1065353216;
+	heap32[(r12+28)] = r_g0;
+	r11 = heap32[(r12+1)];
+	r14 = r11 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+13)];
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+	heap32[(g0)] = 748;
+	_Znwj(i7);
+	r8 = r_g0;
+	r11 = heap32[(r12+19)];
+	r14 = heap32[(r12+18)];
+	r15 = r8 >> 2;
+	heap32[(r15+1)] = 4;
+	heap32[(r15+2)] = -1;
+	heap32[(r15+3)] = -1;
+	heap8[r8+16] = r13;
+	heap32[(r15+5)] = r14;
+	heap32[(r15+6)] = r11;
+	heap32[(r15+7)] = 0;
+	heap32[(r15+8)] = 1050253722;
+	heap32[(r15)] = r9;
+	heap32[(r15+135)] = -1287930578;
+	heap32[(r15+136)] = 0;
+	heap32[(r15+137)] = 1065353216;
+	heap32[(r15+138)] = 0;
+	heap32[(r15+139)] = -2147483648;
+	heap32[(r15+140)] = 1065353216;
+	heap32[(r15+141)] = 0;
+	heap32[(r15+142)] = 0;
+	heap32[(r15+143)] = -1082130432;
+	heap32[(r15+144)] = -2147483648;
+	heap32[(r15+145)] = -1287930578;
+	heap32[(r15+146)] = 0;
+	heap32[(r15+147)] = 0;
+	heap32[(r15+148)] = -1085695591;
+	heap32[(r15+149)] = 0;
+	heap32[(r15+150)] = 0;
+	heap32[(r15+151)] = -1287930578;
+	heap32[(r15+152)] = 0;
+	heap32[(r15+153)] = 1065353216;
+	heap32[(r15+154)] = 0;
+	heap32[(r15+155)] = -2147483648;
+	heap32[(r15+156)] = 1065353216;
+	heap32[(r15+157)] = 0;
+	heap32[(r15+158)] = 0;
+	heap32[(r15+159)] = -1082130432;
+	heap32[(r15+160)] = -2147483648;
+	heap32[(r15+161)] = -1287930578;
+	heap32[(r15+162)] = 0;
+	heap32[(r15+163)] = 0;
+	heap32[(r15+164)] = 1059439248;
+	heap32[(r15+165)] = 0;
+	heap32[(r15+166)] = 0;
+	heap8[r8+720] = r13;
+	heap8[r8+721] = r13;
+	heap8[r8+723] = r13;
+	heap8[r8+724] = r4;
+	heap8[r8+725] = r13;
+	heap32[(r15+183)] = 0;
+	heap32[(r15+172)] = 1065353216;
+	heap32[(r15+173)] = -1082130432;
+	heap32[(r15+170)] = 1050253722;
+	heap32[(r15+171)] = 1065353216;
+	heap32[(r15+169)] = 1063675494;
+	heap8[r8+722] = r13;
+	heap32[(r15+179)] = 1065353216;
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f12 = f_g0;
+	if(f12 >=f13) //_LBB26_242
+{
+	f14 =        3.1415927410125732;
+	if(f12 >f14) //_LBB26_244
+{
+	f14 =       -6.2831854820251465;
+	f12 = f12+f14;
+}
+}
+else{
+	f14 =        6.2831854820251465;
+	f12 = f12+f14;
+}
+	r11 = r8 >> 2;
+	heapFloat[(r11+172)] = f12;
+	heap32[(g0)] = 1070141403;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f12 = f_g0;
+	if(f12 >=f13) //_LBB26_247
+{
+	f14 =        3.1415927410125732;
+	if(f12 >f14) //_LBB26_249
+{
+	f14 =       -6.2831854820251465;
+	f12 = f12+f14;
+}
+}
+else{
+	f14 =        6.2831854820251465;
+	f12 = f12+f14;
+}
+	heapFloat[(r11+173)] = f12;
+	heap32[(r11+169)] = 1063675494;
+	heap32[(r11+170)] = 1050253722;
+	heap32[(r11+171)] = 1065353216;
+	heap32[(r12+29)] = r8;
+	r11 = heap32[(r12+1)];
+	r14 = r11 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+13)];
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+	heap32[(g0)] = 596;
+	_Znwj(i7);
+	r11 = heap32[(r12+20)];
+	r14 = heap32[(r12+14)];
+	r15 = r_g0 >> 2;
+	heap32[(r15+1)] = 5;
+	heap32[(r15+2)] = -1;
+	heap32[(r15+3)] = -1;
+	heap8[r_g0+16] = r13;
+	heap32[(r15+5)] = r14;
+	heap32[(r15+6)] = r11;
+	heap32[(r15+7)] = 0;
+	heap32[(r15+8)] = 1050253722;
+	heap32[(r15)] = r10;
+	heap32[(r15+72)] = -1082130432;
+	heap32[(r15+73)] = 867941678;
+	heap32[(r15+74)] = -2147483648;
+	heap32[(r15+75)] = 0;
+	heap32[(r15+76)] = -1279541970;
+	heap32[(r15+77)] = -1082130432;
+	heap32[(r15+78)] = 0;
+	heap32[(r15+79)] = 0;
+	heap32[(r15+80)] = -2147483648;
+	heap32[(r15+81)] = 0;
+	heap32[(r15+82)] = 1065353216;
+	heap32[(r15+83)] = 0;
+	heap32[(r15+84)] = -1087163597;
+	heap32[(r15+85)] = 1057384039;
+	heap32[(r15+86)] = 0;
+	heap32[(r15+87)] = 0;
+	heap32[(r15+88)] = -1287930578;
+	heap32[(r15+89)] = -1082130432;
+	heap32[(r15+90)] = 0;
+	heap32[(r15+91)] = 0;
+	heap32[(r15+92)] = 1065353216;
+	heap32[(r15+93)] = -1287930578;
+	heap32[(r15+94)] = 0;
+	heap32[(r15+95)] = 0;
+	heap32[(r15+96)] = -2147483648;
+	heap32[(r15+97)] = 0;
+	heap32[(r15+98)] = 1065353216;
+	heap32[(r15+99)] = 0;
+	heap32[(r15+100)] = 0;
+	heap32[(r15+101)] = -1088338002;
+	heap32[(r15+102)] = 0;
+	heap32[(r15+103)] = 0;
+	heap8[r_g0+540] = r13;
+	heap32[(r15+128)] = 0;
+	heap32[(r15+140)] = -1082130432;
+	heap32[(r15+107)] = 1008981770;
+	heap32[(r15+111)] = 1028443341;
+	heap32[(r15+145)] = 0;
+	heap32[(r15+146)] = 0;
+	heap32[(r15+147)] = 1060320051;
+	heap32[(r15+148)] = 0;
+	heap32[(r15+108)] = 1070141403;
+	heap32[(r15+109)] = 1070141403;
+	heap32[(r15+110)] = 0;
+	heap32[(r15+104)] = 1065353216;
+	heap32[(r15+105)] = 1050253722;
+	heap32[(r15+106)] = 1065353216;
+	heap32[(r12+30)] = r_g0;
+	r11 = heap32[(r12+1)];
+	r14 = r11 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+13)];
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+	heap32[(g0)] = 748;
+	_Znwj(i7);
+	r8 = r_g0;
+	r11 = heap32[(r12+21)];
+	r14 = heap32[(r12+20)];
+	r15 = r8 >> 2;
+	heap32[(r15+1)] = 4;
+	heap32[(r15+2)] = -1;
+	heap32[(r15+3)] = -1;
+	heap8[r8+16] = r13;
+	heap32[(r15+5)] = r14;
+	heap32[(r15+6)] = r11;
+	heap32[(r15+7)] = 0;
+	heap32[(r15+8)] = 1050253722;
+	heap32[(r15)] = r9;
+	heap32[(r15+135)] = -1287930578;
+	heap32[(r15+136)] = 0;
+	heap32[(r15+137)] = 1065353216;
+	heap32[(r15+138)] = 0;
+	heap32[(r15+139)] = -2147483648;
+	heap32[(r15+140)] = 1065353216;
+	heap32[(r15+141)] = 0;
+	heap32[(r15+142)] = 0;
+	heap32[(r15+143)] = -1082130432;
+	heap32[(r15+144)] = -2147483648;
+	heap32[(r15+145)] = -1287930578;
+	heap32[(r15+146)] = 0;
+	heap32[(r15+147)] = 0;
+	heap32[(r15+148)] = 1059145646;
+	heap32[(r15+149)] = 0;
+	heap32[(r15+150)] = 0;
+	heap32[(r15+151)] = -1287930578;
+	heap32[(r15+152)] = 0;
+	heap32[(r15+153)] = 1065353216;
+	heap32[(r15+154)] = 0;
+	heap32[(r15+155)] = -2147483648;
+	heap32[(r15+156)] = 1065353216;
+	heap32[(r15+157)] = 0;
+	heap32[(r15+158)] = 0;
+	heap32[(r15+159)] = -1082130432;
+	heap32[(r15+160)] = -2147483648;
+	heap32[(r15+161)] = -1287930578;
+	heap32[(r15+162)] = 0;
+	heap32[(r15+163)] = 0;
+	heap32[(r15+164)] = -1090854584;
+	heap32[(r15+165)] = 0;
+	heap32[(r15+166)] = 0;
+	heap8[r8+720] = r13;
+	heap8[r8+721] = r13;
+	heap8[r8+723] = r13;
+	heap8[r8+724] = r4;
+	heap8[r8+725] = r13;
+	heap32[(r15+183)] = 0;
+	heap32[(r15+172)] = 1065353216;
+	heap32[(r15+173)] = -1082130432;
+	heap32[(r15+170)] = 1050253722;
+	heap32[(r15+171)] = 1065353216;
+	heap32[(r15+169)] = 1063675494;
+	heap8[r8+722] = r13;
+	heap32[(r15+179)] = 1065353216;
+	heap32[(g0)] = -1077342245;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f12 = f_g0;
+	if(f12 >=f13) //_LBB26_252
+{
+	f14 =        3.1415927410125732;
+	if(f12 >f14) //_LBB26_254
+{
+	f14 =       -6.2831854820251465;
+	f12 = f12+f14;
+}
+}
+else{
+	f14 =        6.2831854820251465;
+	f12 = f12+f14;
+}
+	r11 = r8 >> 2;
+	heapFloat[(r11+172)] = f12;
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f12 = f_g0;
+	if(f12 >=f13) //_LBB26_257
+{
+	f14 =        3.1415927410125732;
+	if(f12 >f14) //_LBB26_259
+{
+	f14 =       -6.2831854820251465;
+	f12 = f12+f14;
+}
+}
+else{
+	f14 =        6.2831854820251465;
+	f12 = f12+f14;
+}
+	heapFloat[(r11+173)] = f12;
+	heap32[(r11+169)] = 1063675494;
+	heap32[(r11+170)] = 1050253722;
+	heap32[(r11+171)] = 1065353216;
+	heap32[(r12+31)] = r8;
+	r11 = heap32[(r12+1)];
+	r14 = r11 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+13)];
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+	heap32[(g0)] = 596;
+	_Znwj(i7);
+	r11 = heap32[(r12+22)];
+	r14 = heap32[(r12+14)];
+	r15 = r_g0 >> 2;
+	heap32[(r15+1)] = 5;
+	heap32[(r15+2)] = -1;
+	heap32[(r15+3)] = -1;
+	heap8[r_g0+16] = r13;
+	heap32[(r15+5)] = r14;
+	heap32[(r15+6)] = r11;
+	heap32[(r15+7)] = 0;
+	heap32[(r15+8)] = 1050253722;
+	heap32[(r15)] = r10;
+	heap32[(r15+72)] = 1065353216;
+	heap32[(r15+73)] = 0;
+	heap32[(r15+74)] = 0;
+	heap32[(r15+75)] = 0;
+	heap32[(r15+76)] = 0;
+	heap32[(r15+77)] = 1065353216;
+	heap32[(r15+78)] = 0;
+	heap32[(r15+79)] = 0;
+	heap32[(r15+80)] = -2147483648;
+	heap32[(r15+81)] = 0;
+	heap32[(r15+82)] = 1065353216;
+	heap32[(r15+83)] = 0;
+	heap32[(r15+84)] = 1060320051;
+	heap32[(r15+85)] = 1057384039;
+	heap32[(r15+86)] = 0;
+	heap32[(r15+87)] = 0;
+	heap32[(r15+88)] = -1287930578;
+	heap32[(r15+89)] = -1082130432;
+	heap32[(r15+90)] = 0;
+	heap32[(r15+91)] = 0;
+	heap32[(r15+92)] = 1065353216;
+	heap32[(r15+93)] = -1287930578;
+	heap32[(r15+94)] = 0;
+	heap32[(r15+95)] = 0;
+	heap32[(r15+96)] = -2147483648;
+	heap32[(r15+97)] = 0;
+	heap32[(r15+98)] = 1065353216;
+	heap32[(r15+99)] = 0;
+	heap32[(r15+100)] = 0;
+	heap32[(r15+101)] = -1088338002;
+	heap32[(r15+102)] = 0;
+	heap32[(r15+103)] = 0;
+	heap8[r_g0+540] = r13;
+	heap32[(r15+128)] = 0;
+	heap32[(r15+140)] = -1082130432;
+	heap32[(r15+107)] = 1008981770;
+	heap32[(r15+111)] = 1028443341;
+	heap32[(r15+145)] = 0;
+	heap32[(r15+146)] = 0;
+	heap32[(r15+147)] = 1060320051;
+	heap32[(r15+148)] = 0;
+	heap32[(r15+108)] = 1070141403;
+	heap32[(r15+109)] = 1070141403;
+	heap32[(r15+110)] = 0;
+	heap32[(r15+104)] = 1065353216;
+	heap32[(r15+105)] = 1050253722;
+	heap32[(r15+106)] = 1065353216;
+	heap32[(r12+32)] = r_g0;
+	r10 = heap32[(r12+1)];
+	r11 = r10 >> 2;
+	r11 = heap32[(r11)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+13)];
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	heap32[(g0)] = 748;
+	_Znwj(i7);
+	r8 = r_g0;
+	r10 = heap32[(r12+23)];
+	r11 = heap32[(r12+22)];
+	r14 = r8 >> 2;
+	heap32[(r14+1)] = 4;
+	heap32[(r14+2)] = -1;
+	heap32[(r14+3)] = -1;
+	heap8[r8+16] = r13;
+	heap32[(r14+5)] = r11;
+	heap32[(r14+6)] = r10;
+	heap32[(r14+7)] = 0;
+	heap32[(r14+8)] = 1050253722;
+	heap32[(r14)] = r9;
+	heap32[(r14+135)] = -1287930578;
+	heap32[(r14+136)] = 0;
+	heap32[(r14+137)] = 1065353216;
+	heap32[(r14+138)] = 0;
+	heap32[(r14+139)] = -2147483648;
+	heap32[(r14+140)] = 1065353216;
+	heap32[(r14+141)] = 0;
+	heap32[(r14+142)] = 0;
+	heap32[(r14+143)] = -1082130432;
+	heap32[(r14+144)] = -2147483648;
+	heap32[(r14+145)] = -1287930578;
+	heap32[(r14+146)] = 0;
+	heap32[(r14+147)] = 0;
+	heap32[(r14+148)] = 1059145646;
+	heap32[(r14+149)] = 0;
+	heap32[(r14+150)] = 0;
+	heap32[(r14+151)] = -1287930578;
+	heap32[(r14+152)] = 0;
+	heap32[(r14+153)] = 1065353216;
+	heap32[(r14+154)] = 0;
+	heap32[(r14+155)] = -2147483648;
+	heap32[(r14+156)] = 1065353216;
+	heap32[(r14+157)] = 0;
+	heap32[(r14+158)] = 0;
+	heap32[(r14+159)] = -1082130432;
+	heap32[(r14+160)] = -2147483648;
+	heap32[(r14+161)] = -1287930578;
+	heap32[(r14+162)] = 0;
+	heap32[(r14+163)] = 0;
+	heap32[(r14+164)] = -1090854584;
+	heap32[(r14+165)] = 0;
+	heap32[(r14+166)] = 0;
+	heap8[r8+720] = r13;
+	heap8[r8+721] = r13;
+	heap8[r8+723] = r13;
+	heap8[r8+724] = r4;
+	heap8[r8+725] = r13;
+	heap32[(r14+183)] = 0;
+	heap32[(r14+172)] = 1065353216;
+	heap32[(r14+173)] = -1082130432;
+	heap32[(r14+170)] = 1050253722;
+	heap32[(r14+171)] = 1065353216;
+	heap32[(r14+169)] = 1063675494;
+	heap8[r8+722] = r13;
+	heap32[(r14+179)] = 1065353216;
+	heap32[(g0)] = -1077342245;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f12 = f_g0;
+	if(f12 >=f13) //_LBB26_262
+{
+	f14 =        3.1415927410125732;
+	if(f12 >f14) //_LBB26_264
+{
+	f14 =       -6.2831854820251465;
+	f12 = f12+f14;
+}
+}
+else{
+	f14 =        6.2831854820251465;
+	f12 = f12+f14;
+}
+	r9 = r8 >> 2;
+	heapFloat[(r9+172)] = f12;
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f12 = f_g0;
+	if(f12 >=f13) //_LBB26_267
+{
+	f13 =        3.1415927410125732;
+	if(f12 >f13) //_LBB26_269
+{
+	f13 =       -6.2831854820251465;
+	f12 = f12+f13;
+}
+}
+else{
+	f13 =        6.2831854820251465;
+	f12 = f12+f13;
+}
+	heapFloat[(r9+173)] = f12;
+	heap32[(r9+169)] = 1063675494;
+	heap32[(r9+170)] = 1050253722;
+	heap32[(r9+171)] = 1065353216;
+	heap32[(r12+33)] = r8;
+	r9 = heap32[(r12+1)];
+	r10 = r9 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+13)];
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	r8 = heap32[(r1+10)];
+	r9 = heap32[(r1+9)];
+	if(r8 ==r9) //_LBB26_272
+{
+	r10 = r9 << 1;
+	r10 = r9 == 0 ? r4 : r10;
+if(!(r8 >=r10)) //_LBB26_271
+{
+	if(r10 !=0) //_LBB26_275
+{
+	r8 = heap32[(r2)];
+	r11 = r10 << 2;
+	r8 = (r8 + 1)|0;
+	r11 = r11 | 3;
+	heap32[(r2)] = r8;
+	r8 = (r11 + 16)|0;
+	heap32[(g0)] = r8;
+	malloc(i7);
+	r8 = r_g0;
+	if(r8 !=0) //_LBB26_277
+{
+	r11 = (r8 + 4)|0;
+	r11 = (r13 - r11)|0;
+	r11 = r11 & 15;
+	r11 = (r8 + r11)|0;
+	r12 = (r11 + 4)|0;
+	r11 = r11 >> 2;
+	heap32[(r11)] = r8;
+	r8 = r12;
+}
+}
+else{
+	r8 = 0;
+}
+_358: do {
+	if(r9 <1) //_LBB26_280
+{
+	r11 = heap32[(r1+11)];
+}
+else{
+_360: while(true){
+	r11 = heap32[(r1+11)];
+	r12 = r13 << 2;
+	r14 = (r11 + r12)|0;
+	r14 = r14 >> 2;
+	r12 = (r8 + r12)|0;
+	r14 = heap32[(r14)];
+	r13 = (r13 + 1)|0;
+	r12 = r12 >> 2;
+	heap32[(r12)] = r14;
+if(!(r9 !=r13)) //_LBB26_281
+{
+break _358;
+}
+}
+}
+} while(0);
+	if(r11 !=0) //_LBB26_284
+{
+	r12 = heapU8[r6+48];
+	if(r12 !=0) //_LBB26_286
+{
+	r9 = gNumAlignedFree;
+	r9 = r9 >> 2;
+	r12 = heap32[(r9)];
+	r12 = (r12 + 1)|0;
+	r11 = r11 >> 2;
+	heap32[(r9)] = r12;
+	r9 = heap32[(r11+-1)];
+	heap32[(g0)] = r9;
+	free(i7);
+	r9 = heap32[(r1+9)];
+}
+	heap32[(r1+11)] = 0;
+}
+	heap8[r6+48] = r4;
+	heap32[(r1+11)] = r8;
+	heap32[(r1+10)] = r10;
+}
+}
+	r8 = r9 << 2;
+	r9 = heap32[(r1+11)];
+	r8 = (r9 + r8)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = r7;
+	r7 = heap32[(r1+9)];
+	r5 = (r5 + 1)|0;
+	r7 = (r7 + 1)|0;
+	heap32[(r1+9)] = r7;
+if(!(r0 !=r5)) //_LBB26_185
+{
+break _262;
+}
+}
+	f3 =                         7;
+	f4 =                        -2;
+	r0 = (r0 + -1)|0;
+	f1 = f1+f3;
+	f2 = f2+f4;
+	r3 = (r3 + 1)|0;
+	if(r0 ==0) //_LBB26_165
+{
+break _161;
+}
+else{
+continue _260;
+}
+}
+}
+}
+}
+}
+} while(0);
+	return;
+break;
+case 46:
+	r0 = _2E_str674;
+	r1 = _2E_str573;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 53;
+	_assert(i7);
+break;
+}
+}
+
+function _GLOBAL__D__Z6mymainiPPc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = _ZL14benchmarkDemo4;
+	r1 = _ZTV13BenchmarkDemo;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
+	r1 = heap32[(r2+11)];
+if(!(r1 ==0)) //_LBB27_4
+{
+	r3 = heapU8[r0+48];
+if(!(r3 ==0)) //_LBB27_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+11)] = 0;
+}
+	r1 = 1;
+	heap8[r0+48] = r1;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 0;
+	r3 = heap32[(r2+6)];
+if(!(r3 ==0)) //_LBB27_8
+{
+	r4 = heapU8[r0+28];
+if(!(r4 ==0)) //_LBB27_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+6)] = 0;
+}
+	heap8[r0+28] = r1;
+	heap32[(r2+6)] = 0;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+5)] = 0;
+	return;
+}
+
+function _ZN14BenchmarkDemo4D1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV14BenchmarkDemo4;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN13BenchmarkDemoD2Ev(i7);
+	return;
+}
+
+function _ZN14BenchmarkDemo4D0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV14BenchmarkDemo4;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN13BenchmarkDemoD2Ev(i7);
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function __draw(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = _ZL14benchmarkDemo4;
+	heap32[(g0)] = r0;
+	_ZN13BenchmarkDemo20clientMoveAndDisplayEv(i7);
+	return;
+}
+
+function _ZN13BenchmarkDemoD2Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13BenchmarkDemo;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN13BenchmarkDemo11exitPhysicsEv(i7);
+	r1 = heap32[(r2+11)];
+if(!(r1 ==0)) //_LBB31_4
+{
+	r3 = heapU8[r0+48];
+if(!(r3 ==0)) //_LBB31_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+11)] = 0;
+}
+	r1 = 1;
+	heap8[r0+48] = r1;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 0;
+	r3 = heap32[(r2+6)];
+if(!(r3 ==0)) //_LBB31_8
+{
+	r4 = heapU8[r0+28];
+if(!(r4 ==0)) //_LBB31_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+6)] = 0;
+}
+	heap8[r0+28] = r1;
+	heap32[(r2+6)] = 0;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+5)] = 0;
+	return;
+}
+
+function __init(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = gDisableDeactivation;
+	r1 = 1;
+	heap8[r0] = r1;
+	_ZN13BenchmarkDemo11initPhysicsEv(i7);
+	return;
+}
+
+function _ZN15btNullPairCache23getOverlappingPairArrayEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = (r0 + 4)|0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZNK15btNullPairCache22getNumOverlappingPairsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btNullPairCache18hasDeferredRemovalEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN15btNullPairCache26getOverlappingPairArrayPtrEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+4)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK15btNullPairCache26getOverlappingPairArrayPtrEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+4)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btNullPairCacheD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV15btNullPairCache;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+4)];
+if(!(r1 ==0)) //_LBB48_4
+{
+	r3 = heapU8[r0+20];
+if(!(r3 ==0)) //_LBB48_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+4)] = 0;
+}
+	r1 = 1;
+	heap8[r0+20] = r1;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	return;
+}
+
+function _ZN15btNullPairCacheD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV15btNullPairCache;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+4)];
+if(!(r1 ==0)) //_LBB49_4
+{
+	r3 = heapU8[r0+20];
+if(!(r3 ==0)) //_LBB49_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+4)] = 0;
+}
+	r1 = 1;
+	heap8[r0+20] = r1;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+2)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	heap32[(r1)] = heap32[(r0+4)];
+	heap32[(r1+1)] = heap32[(r0+5)];
+	r2 = heap32[(fp+3)];
+	heap32[(r1+2)] = heap32[(r0+6)];
+	r2 = r2 >> 2;
+	heap32[(r1+3)] = heap32[(r0+7)];
+	heap32[(r2)] = heap32[(r0+8)];
+	heap32[(r2+1)] = heap32[(r0+9)];
+	heap32[(r2+2)] = heap32[(r0+10)];
+	heap32[(r2+3)] = heap32[(r0+11)];
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+23)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+23)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	heap32[(r1)] = heap32[(r0+2)];
+	heap32[(r1+1)] = heap32[(r0+3)];
+	r2 = heap32[(fp+2)];
+	heap32[(r1+2)] = heap32[(r0+4)];
+	r2 = r2 >> 2;
+	heap32[(r1+3)] = heap32[(r0+5)];
+	heap32[(r2)] = heap32[(r0+6)];
+	heap32[(r2+1)] = heap32[(r0+7)];
+	heap32[(r2+2)] = heap32[(r0+8)];
+	heap32[(r2+3)] = heap32[(r0+9)];
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU16[(r0+56)>>1];
+if(!(r1 !=0)) //_LBB54_6
+{
+	r1 = 1;
+	heap16[(r0+64)>>1] = r1;
+	r2 = heapU16[(r0+58)>>1];
+	if(uint(r2) >uint(1)) //_LBB54_3
+{
+	r3 = 2;
+_5: while(true){
+	r2 = r1 & 65535;
+	r4 = r0 >> 2;
+	r2 = r2 << 6;
+	r4 = heap32[(r4+15)];
+	r2 = (r4 + r2)|0;
+	heap16[(r2+48)>>1] = r3;
+	r1 = (r1 + 1)|0;
+	r2 = heapU16[(r0+58)>>1];
+	r3 = (r3 + 1)|0;
+	r4 = r1 & 65535;
+if(!(uint(r2) >uint(r4))) //_LBB54_4
+{
+break _5;
+}
+}
+}
+	r1 = r2 & 65535;
+	r0 = r0 >> 2;
+	r1 = r1 << 6;
+	r0 = heap32[(r0+15)];
+	r0 = (r1 + r0)|0;
+	r1 = 0;
+	heap16[(r0+-16)>>1] = r1;
+}
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItE10printStatsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+27)];
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	if(r2 !=0) //_LBB56_2
+{
+	r0 = r2 >> 2;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+7)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	return;
+}
+else{
+	r2 = heapU16[(r0+56)>>1];
+	r2 = r2 << 1;
+	r2 = r2 | 1;
+if(!(r2 ==1)) //_LBB56_18
+{
+	r2 = 1;
+	r6 = 2;
+_6: while(true){
+	r7 = r6;
+	r6 = r2 & 65535;
+	r8 = heap32[(r1+17)];
+	r6 = r6 << 2;
+	r9 = heapU8[r8+r6];
+	r9 = r9 & 1;
+if(!(r9 ==0)) //_LBB56_17
+{
+	r6 = (r8 + r6)|0;
+	r6 = heapU16[(r6+2)>>1];
+	r8 = heap32[(r1+15)];
+	r6 = r6 << 6;
+	r6 = (r8 + r6)|0;
+	r8 = r3 >> 2;
+	r9 = r6 >> 2;
+	f0 = heapFloat[(r8)];
+	f1 = heapFloat[(r9+8)];
+	if(f0 >f1) //_LBB56_8
+{
+__label__ = 8;
+}
+else{
+	r10 = r4 >> 2;
+	f0 = heapFloat[(r10)];
+	f1 = heapFloat[(r9+4)];
+	if(f0 <f1) //_LBB56_8
+{
+__label__ = 8;
+}
+else{
+	r10 = 1;
+__label__ = 9;
+}
+}
+if (__label__ == 8){
+	r10 = 0;
+}
+	f0 = heapFloat[(r8+2)];
+	f1 = heapFloat[(r9+10)];
+	if(f0 >f1) //_LBB56_12
+{
+__label__ = 11;
+}
+else{
+	r11 = r4 >> 2;
+	f0 = heapFloat[(r11+2)];
+	f1 = heapFloat[(r9+6)];
+	if(f0 <f1) //_LBB56_12
+{
+__label__ = 11;
+}
+else{
+__label__ = 12;
+}
+}
+if (__label__ == 11){
+	r10 = 0;
+}
+	f0 = heapFloat[(r8+1)];
+	f1 = heapFloat[(r9+9)];
+if(!(f0 >f1)) //_LBB56_17
+{
+	r8 = r4 >> 2;
+	f0 = heapFloat[(r8+1)];
+	f1 = heapFloat[(r9+5)];
+if(!(f0 <f1)) //_LBB56_17
+{
+	r8 = r10 & 255;
+if(!(r8 ==0)) //_LBB56_17
+{
+	r8 = r5 >> 2;
+	r8 = heap32[(r8)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r6;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+}
+}
+}
+}
+	r8 = heapU16[(r0+56)>>1];
+	r6 = (r7 + 1)|0;
+	r2 = (r2 + 1)|0;
+	r8 = r8 << 1;
+	r7 = r7 & 65535;
+	r8 = r8 | 1;
+if(!(uint(r7) <uint(r8))) //_LBB56_4
+{
+break _6;
+}
+}
+}
+	return;
+}
+}
+
+function _ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+27)];
+	r3 = heap32[(fp+3)];
+	if(r2 !=0) //_LBB57_2
+{
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+2)];
+	r4 = heap32[(fp+4)];
+	r5 = heap32[(fp+5)];
+	r6 = r2 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+6)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r4;
+	heap32[(g0+5)] = r5;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	return;
+}
+else{
+	r2 = heapU16[(r0+56)>>1];
+	r2 = r2 << 1;
+	r2 = r2 | 1;
+if(!(r2 ==1)) //_LBB57_7
+{
+	r2 = 1;
+	r4 = 2;
+_6: while(true){
+	r5 = r2 & 65535;
+	r6 = heap32[(r1+17)];
+	r5 = r5 << 2;
+	r7 = heapU8[r6+r5];
+	r7 = r7 & 1;
+if(!(r7 ==0)) //_LBB57_6
+{
+	r7 = r3 >> 2;
+	r7 = heap32[(r7)];
+	r7 = r7 >> 2;
+	r5 = (r6 + r5)|0;
+	r5 = heapU16[(r5+2)>>1];
+	r6 = heap32[(r7+2)];
+	r7 = heap32[(r1+15)];
+	r5 = r5 << 6;
+	r5 = (r7 + r5)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+}
+	r5 = heapU16[(r0+56)>>1];
+	r6 = (r4 + 1)|0;
+	r2 = (r2 + 1)|0;
+	r5 = r5 << 1;
+	r7 = r4 & 65535;
+	r5 = r5 | 1;
+	r4 = r6;
+if(!(uint(r7) <uint(r5))) //_LBB57_4
+{
+break _6;
+}
+}
+}
+	return;
+}
+}
+
+function _ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	f0 = heapFloat[(fp+2)];
+	f1 = heapFloat[(r1+2)];
+	f2 = heapFloat[(fp+4)];
+	f3 = heapFloat[(r1+4)];
+	f4 = heapFloat[(fp+3)];
+	f5 = heapFloat[(r1+3)];
+	f0 = f0-f1;
+	f1 = heapFloat[(r1+10)];
+	f2 = f2-f3;
+	f3 = heapFloat[(r1+12)];
+	f4 = f4-f5;
+	f5 = heapFloat[(r1+11)];
+	f0 = f0*f1;
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+5)];
+	f1 = f2*f3;
+	f2 = f4*f5;
+	f3 =                         0;
+	if(f0 >f3) //_LBB58_2
+{
+	r3 = heapU16[(r0+6)>>1];
+	f4 = r3; //fitos r3, f4
+	if(f0 <f4) //_LBB58_4
+{
+	r3 = heapU16[(r0+4)>>1];
+	r4 = Math.floor(f0);
+	r3 = r3 & r4;
+	r3 = r3 | r2;
+}
+else{
+	r4 = heapU16[(r0+4)>>1];
+	r3 = r4 & r3;
+	r3 = r3 | r2;
+}
+}
+else{
+	r3 = r2;
+}
+	heap16[(r1)>>1] = r3;
+	if(f2 >f3) //_LBB58_7
+{
+	r3 = heapU16[(r0+6)>>1];
+	f0 = r3; //fitos r3, f0
+	if(f2 <f0) //_LBB58_9
+{
+	r3 = heapU16[(r0+4)>>1];
+	r4 = Math.floor(f2);
+	r3 = r3 & r4;
+	r3 = r3 | r2;
+}
+else{
+	r4 = heapU16[(r0+4)>>1];
+	r3 = r4 & r3;
+	r3 = r3 | r2;
+}
+}
+else{
+	r3 = r2;
+}
+	heap16[(r1+2)>>1] = r3;
+	if(f1 >f3) //_LBB58_12
+{
+	r3 = heapU16[(r0+6)>>1];
+	f0 = r3; //fitos r3, f0
+	if(f1 <f0) //_LBB58_14
+{
+	r0 = heapU16[(r0+4)>>1];
+	r3 = Math.floor(f1);
+	r0 = r0 & r3;
+	r2 = r0 | r2;
+}
+else{
+	r0 = heapU16[(r0+4)>>1];
+	r0 = r0 & r3;
+	r2 = r0 | r2;
+}
+}
+	heap16[(r1+4)>>1] = r2;
+	return;
+}
+
+function _ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var r24;
+	var r25;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp+1)];
+	r2 = (r0 + r1)|0;
+	r3 = r2 >>> 31;
+	r4 = heap32[(fp)];
+	r2 = (r2 + r3)|0;
+	r3 = r4 >> 2;
+	r2 = r2 & 536870910;
+	r5 = heap32[(r3+3)];
+	r2 = r2 << 3;
+	r2 = (r5 + r2)|0;
+	r2 = r2 >> 2;
+	r5 = heap32[(r2)];
+	r6 = heap32[(r2+1)];
+	r2 = heap32[(r2+2)];
+	r7 = r1;
+	r8 = r0;
+_1: while(true){
+	r9 = heap32[(r3+3)];
+	r10 = r7 << 4;
+	r10 = (r9 + r10)|0;
+	r11 = 0;
+_3: while(true){
+	r12 = r11 << 4;
+	r12 = (r10 + r12)|0;
+	r12 = r12 >> 2;
+	r13 = r11 << 2;
+	r14 = heap32[(r12)];
+	if(r14 !=0) //_LBB59_5
+{
+	r15 = r14 >> 2;
+	r15 = heap32[(r15+3)];
+}
+else{
+	r15 = -1;
+}
+	if(r5 !=0) //_LBB59_8
+{
+	r16 = r5 >> 2;
+	r16 = heap32[(r16+3)];
+}
+else{
+	r16 = -1;
+}
+	r17 = r13 << 2;
+	r17 = (r10 + r17)|0;
+	r17 = r17 >> 2;
+	r17 = heap32[(r17+1)];
+	if(r17 !=0) //_LBB59_11
+{
+	r18 = r17 >> 2;
+	r18 = heap32[(r18+3)];
+}
+else{
+	r18 = -1;
+}
+	if(r6 !=0) //_LBB59_14
+{
+	r19 = r6 >> 2;
+	r19 = heap32[(r19+3)];
+}
+else{
+	r19 = -1;
+}
+_21: do {
+if(!(r15 >r16)) //_LBB59_2
+{
+if(!(r14 !=r5)) //_LBB59_18
+{
+	if(r18 >r19) //_LBB59_2
+{
+break _21;
+}
+}
+	if(r14 !=r5) //_LBB59_22
+{
+break _3;
+}
+else{
+	if(r17 !=r6) //_LBB59_22
+{
+break _3;
+}
+else{
+	r15 = r13 << 2;
+	r15 = (r10 + r15)|0;
+	r15 = r15 >> 2;
+	r15 = heap32[(r15+2)];
+if(!(uint(r15) >uint(r2))) //_LBB59_2
+{
+break _3;
+}
+}
+}
+}
+} while(0);
+	r11 = (r11 + 1)|0;
+continue _3;
+}
+	r18 = r8 << 4;
+	r15 = (r7 + r11)|0;
+	r9 = (r9 + r18)|0;
+	r16 = 0;
+_30: while(true){
+	r19 = r16 << 2;
+	if(r5 !=0) //_LBB59_25
+{
+	r20 = r5 >> 2;
+	r20 = heap32[(r20+3)];
+}
+else{
+	r20 = -1;
+}
+	r21 = r19 << 2;
+	r21 = (r9 + r21)|0;
+	r21 = r21 >> 2;
+	r21 = heap32[(r21)];
+	if(r21 !=0) //_LBB59_28
+{
+	r22 = r21 >> 2;
+	r22 = heap32[(r22+3)];
+}
+else{
+	r22 = -1;
+}
+	if(r6 !=0) //_LBB59_31
+{
+	r23 = r6 >> 2;
+	r23 = heap32[(r23+3)];
+}
+else{
+	r23 = -1;
+}
+	r24 = r19 << 2;
+	r24 = (r9 + r24)|0;
+	r24 = r24 >> 2;
+	r24 = heap32[(r24+1)];
+	if(r24 !=0) //_LBB59_34
+{
+	r25 = r24 >> 2;
+	r25 = heap32[(r25+3)];
+}
+else{
+	r25 = -1;
+}
+_48: do {
+if(!(r20 >r22)) //_LBB59_21
+{
+if(!(r5 !=r21)) //_LBB59_38
+{
+	if(r23 >r25) //_LBB59_21
+{
+break _48;
+}
+}
+	if(r5 !=r21) //_LBB59_41
+{
+break _30;
+}
+else{
+	if(r6 !=r24) //_LBB59_41
+{
+break _30;
+}
+else{
+	r20 = r19 << 2;
+	r20 = (r9 + r20)|0;
+	r20 = r20 >> 2;
+	r20 = heap32[(r20+2)];
+if(!(uint(r2) >uint(r20))) //_LBB59_21
+{
+break _30;
+}
+}
+}
+}
+} while(0);
+	r16 = (r16 + -1)|0;
+continue _30;
+}
+	r20 = (r8 + r16)|0;
+	if(r15 <=r20) //_LBB59_43
+{
+	r13 = r13 << 2;
+	r10 = (r10 + r13)|0;
+	r10 = r10 >> 2;
+	r13 = heap32[(r12+3)];
+	r15 = heap32[(r10+2)];
+	r19 = r19 << 2;
+	r19 = (r9 + r19)|0;
+	heap32[(r10)] = r21;
+	r20 = r16 << 4;
+	r19 = r19 >> 2;
+	heap32[(r10+1)] = r24;
+	r19 = heap32[(r19+2)];
+	r9 = (r9 + r20)|0;
+	r9 = r9 >> 2;
+	heap32[(r10+2)] = r19;
+	r9 = heap32[(r9+3)];
+	heap32[(r12+3)] = r9;
+	r9 = heap32[(r3+3)];
+	r9 = (r9 + r18)|0;
+	r9 = (r9 + r20)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r14;
+	r7 = (r7 + r11)|0;
+	r8 = (r8 + r16)|0;
+	heap32[(r9+1)] = r17;
+	r7 = (r7 + 1)|0;
+	r8 = (r8 + -1)|0;
+	heap32[(r9+2)] = r15;
+	heap32[(r9+3)] = r13;
+}
+else{
+	r7 = r15;
+	r8 = r20;
+}
+	if(r7 <=r8) //_LBB59_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+if(!(r8 <=r1)) //_LBB59_47
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r8;
+	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
+}
+if(!(r7 >=r0)) //_LBB59_49
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r0;
+	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
+}
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = r0 << 2;
+	r2 = (r1 + r2)|0;
+	r3 = heap32[(fp+2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+17)];
+	r3 = r3 << 2;
+	r4 = (r2 + r3)|0;
+	r2 = heapU16[(r2+r3)>>1];
+	r3 = heapU16[(r4+-4)>>1];
+if(!(uint(r2) >=uint(r3))) //_LBB60_14
+{
+	r1 = r1 >> 2;
+	r2 = heap32[(fp+3)];
+	r3 = heap32[(r1+15)];
+	r5 = heapU16[(r4+2)>>1];
+	r6 = 1;
+	r7 = r6 << r0;
+	r7 = r7 & 3;
+	r6 = r6 << r7;
+	r5 = r5 << 6;
+	r5 = (r3 + r5)|0;
+	r6 = r6 & 3;
+	r0 = r0 << 1;
+	r8 = (r5 + 48)|0;
+	r7 = r7 << 1;
+	r9 = (r5 + 54)|0;
+	r6 = r6 << 1;
+	r10 = (r8 + r0)|0;
+	r11 = (r9 + r7)|0;
+	r12 = (r8 + r7)|0;
+	r9 = (r9 + r6)|0;
+	r8 = (r8 + r6)|0;
+	r4 = (r4 + 2)|0;
+_3: while(true){
+	r13 = heapU8[r4+-6];
+	r14 = heapU16[(r4+-4)>>1];
+	r13 = r13 & 1;
+	if(r13 ==0) //_LBB60_11
+{
+	r13 = r14 << 6;
+	r3 = (r3 + r13)|0;
+	r3 = (r3 + r0)|0;
+	r13 = heapU16[(r3+48)>>1];
+	r13 = (r13 + 1)|0;
+	heap16[(r3+48)>>1] = r13;
+}
+else{
+if(!(r2 ==0)) //_LBB60_10
+{
+	r13 = r14 << 6;
+	r13 = (r3 + r13)|0;
+	r15 = (r13 + r7)|0;
+	r16 = heapU16[(r11)>>1];
+	r17 = heapU16[(r15+48)>>1];
+if(!(uint(r16) <uint(r17))) //_LBB60_10
+{
+	r15 = heapU16[(r15+54)>>1];
+	r16 = heapU16[(r12)>>1];
+if(!(uint(r15) <uint(r16))) //_LBB60_10
+{
+	r15 = (r13 + r6)|0;
+	r16 = heapU16[(r9)>>1];
+	r17 = heapU16[(r15+48)>>1];
+if(!(uint(r16) <uint(r17))) //_LBB60_10
+{
+	r15 = heapU16[(r15+54)>>1];
+	r16 = heapU16[(r8)>>1];
+if(!(uint(r15) <uint(r16))) //_LBB60_10
+{
+	r15 = heap32[(r1+23)];
+	r16 = r15 >> 2;
+	r16 = heap32[(r16)];
+	r16 = r16 >> 2;
+	r16 = heap32[(r16+2)];
+	heap32[(g0)] = r15;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r13;
+	__FUNCTION_TABLE__[(r16)>>2](i7);
+	r15 = heap32[(r1+24)];
+if(!(r15 ==0)) //_LBB60_10
+{
+	r16 = r15 >> 2;
+	r16 = heap32[(r16)];
+	r16 = r16 >> 2;
+	r16 = heap32[(r16+2)];
+	heap32[(g0)] = r15;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r13;
+	__FUNCTION_TABLE__[(r16)>>2](i7);
+}
+}
+}
+}
+}
+}
+	r14 = r14 << 6;
+	r3 = (r3 + r14)|0;
+	r3 = (r3 + r0)|0;
+	r14 = heapU16[(r3+54)>>1];
+	r14 = (r14 + 1)|0;
+	heap16[(r3+54)>>1] = r14;
+}
+	r3 = heapU16[(r10)>>1];
+	r3 = (r3 + -1)|0;
+	heap16[(r10)>>1] = r3;
+	r3 = heapU16[(r4+-2)>>1];
+	r13 = heapU16[(r4)>>1];
+	r14 = heapU16[(r4+-4)>>1];
+	r15 = heapU16[(r4+-6)>>1];
+	heap16[(r4+-2)>>1] = r15;
+	heap16[(r4)>>1] = r14;
+	heap16[(r4+-6)>>1] = r3;
+	heap16[(r4+-4)>>1] = r13;
+	r13 = heapU16[(r4+-10)>>1];
+	if(uint(r3) >=uint(r13)) //_LBB60_14
+{
+break _3;
+}
+else{
+	r3 = heap32[(r1+15)];
+	r4 = (r4 + -4)|0;
+continue _3;
+}
+}
+}
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = r0 << 2;
+	r2 = (r1 + r2)|0;
+	r2 = r2 >> 2;
+	r3 = heap32[(fp+2)];
+	r4 = 1;
+	r2 = heap32[(r2+17)];
+	r3 = r3 << 2;
+	r2 = (r2 + r3)|0;
+	r3 = r4 << r0;
+	r3 = r3 & 3;
+	r1 = r1 >> 2;
+	r5 = heapU16[(r2+2)>>1];
+	r4 = r4 << r3;
+	r6 = heap32[(r1+15)];
+	r5 = r5 << 6;
+	r4 = r4 & 3;
+	r5 = (r6 + r5)|0;
+	r3 = r3 << 1;
+	r6 = (r5 + 48)|0;
+	r4 = r4 << 1;
+	r5 = (r5 + 54)|0;
+	r0 = r0 << 1;
+	r7 = heap32[(fp+3)];
+	r8 = (r5 + r3)|0;
+	r9 = (r6 + r3)|0;
+	r10 = (r5 + r4)|0;
+	r6 = (r6 + r4)|0;
+	r5 = (r5 + r0)|0;
+	r2 = (r2 + 4)|0;
+_1: while(true){
+	r11 = heapU16[(r2+2)>>1];
+	if(r11 ==0) //_LBB61_14
+{
+break _1;
+}
+else{
+	r12 = heapU16[(r2)>>1];
+	r13 = heapU16[(r2+-4)>>1];
+	if(uint(r13) >=uint(r12)) //_LBB61_1
+{
+	r13 = heap32[(r1+15)];
+	r11 = r11 & 65535;
+	r12 = r12 & 1;
+	if(r12 != 0) //_LBB61_10
+{
+	r11 = r11 << 6;
+	r11 = (r13 + r11)|0;
+	r11 = (r11 + r0)|0;
+	r12 = heapU16[(r11+54)>>1];
+	r12 = (r12 + -1)|0;
+	heap16[(r11+54)>>1] = r12;
+}
+else{
+if(!(r7 ==0)) //_LBB61_9
+{
+	r12 = r11 << 6;
+	r12 = (r13 + r12)|0;
+	r14 = (r12 + r3)|0;
+	r15 = heapU16[(r8)>>1];
+	r16 = heapU16[(r14+48)>>1];
+if(!(uint(r15) <uint(r16))) //_LBB61_9
+{
+	r14 = heapU16[(r14+54)>>1];
+	r15 = heapU16[(r9)>>1];
+if(!(uint(r14) <uint(r15))) //_LBB61_9
+{
+	r14 = (r12 + r4)|0;
+	r15 = heapU16[(r10)>>1];
+	r16 = heapU16[(r14+48)>>1];
+if(!(uint(r15) <uint(r16))) //_LBB61_9
+{
+	r14 = heapU16[(r14+54)>>1];
+	r15 = heapU16[(r6)>>1];
+if(!(uint(r14) <uint(r15))) //_LBB61_9
+{
+	r14 = heap32[(r1+23)];
+	r15 = r14 >> 2;
+	r15 = heap32[(r15)];
+	r15 = r15 >> 2;
+	r16 = heapU16[(r2+-2)>>1];
+	r15 = heap32[(r15+2)];
+	r16 = r16 << 6;
+	r16 = (r13 + r16)|0;
+	heap32[(g0)] = r14;
+	heap32[(g0+1)] = r16;
+	heap32[(g0+2)] = r12;
+	__FUNCTION_TABLE__[(r15)>>2](i7);
+	r14 = heap32[(r1+24)];
+if(!(r14 ==0)) //_LBB61_9
+{
+	r15 = r14 >> 2;
+	r15 = heap32[(r15)];
+	r15 = r15 >> 2;
+	r15 = heap32[(r15+2)];
+	heap32[(g0)] = r14;
+	heap32[(g0+1)] = r16;
+	heap32[(g0+2)] = r12;
+	__FUNCTION_TABLE__[(r15)>>2](i7);
+}
+}
+}
+}
+}
+}
+	r11 = r11 << 6;
+	r11 = (r13 + r11)|0;
+	r11 = (r11 + r0)|0;
+	r12 = heapU16[(r11+48)>>1];
+	r12 = (r12 + -1)|0;
+	heap16[(r11+48)>>1] = r12;
+}
+	r11 = heapU16[(r5)>>1];
+	r11 = (r11 + 1)|0;
+	heap16[(r5)>>1] = r11;
+	r11 = heapU16[(r2+-2)>>1];
+	r12 = heapU16[(r2+-4)>>1];
+	r13 = heapU16[(r2+2)>>1];
+	r14 = heapU16[(r2)>>1];
+	heap16[(r2+-4)>>1] = r14;
+	heap16[(r2+-2)>>1] = r13;
+	r13 = (r2 + 4)|0;
+	heap16[(r2)>>1] = r12;
+	heap16[(r2+2)>>1] = r11;
+	r2 = r13;
+continue _1;
+}
+else{
+break _1;
+}
+}
+}
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = r0 << 2;
+	r2 = (r1 + r2)|0;
+	r2 = r2 >> 2;
+	r3 = heap32[(fp+2)];
+	r2 = heap32[(r2+17)];
+	r3 = r3 << 2;
+	r2 = (r2 + r3)|0;
+	r1 = r1 >> 2;
+	r3 = heapU16[(r2+2)>>1];
+	r4 = 1;
+	r5 = r4 << r0;
+	r6 = heap32[(r1+15)];
+	r3 = r3 << 6;
+	r5 = r5 & 3;
+	r3 = (r6 + r3)|0;
+	r0 = r0 << 1;
+	r3 = (r3 + r0)|0;
+	r4 = r4 << r5;
+	r6 = heap32[(fp+3)];
+	r7 = heap32[(fp+4)];
+	r3 = (r3 + 48)|0;
+	r4 = r4 & 3;
+	r2 = (r2 + 4)|0;
+_1: while(true){
+	r8 = heapU16[(r2+2)>>1];
+	if(r8 ==0) //_LBB62_14
+{
+break _1;
+}
+else{
+	r9 = heapU16[(r2)>>1];
+	r10 = heapU16[(r2+-4)>>1];
+	if(uint(r10) >=uint(r9)) //_LBB62_1
+{
+	r10 = heap32[(r1+15)];
+	r8 = r8 & 65535;
+	r9 = r9 & 1;
+	if(r9 ==0) //_LBB62_10
+{
+	r8 = r8 << 6;
+	r8 = (r10 + r8)|0;
+	r8 = (r8 + r0)|0;
+	r9 = heapU16[(r8+48)>>1];
+	r9 = (r9 + -1)|0;
+	heap16[(r8+48)>>1] = r9;
+}
+else{
+if(!(r7 ==0)) //_LBB62_9
+{
+	r9 = heapU16[(r2+-2)>>1];
+	r9 = r9 << 6;
+	r11 = r8 << 6;
+	r9 = (r10 + r9)|0;
+	r12 = r5 << 1;
+	r11 = (r10 + r11)|0;
+	r13 = (r9 + r12)|0;
+	r12 = (r11 + r12)|0;
+	r14 = heapU16[(r13+54)>>1];
+	r15 = heapU16[(r12+48)>>1];
+if(!(uint(r14) <uint(r15))) //_LBB62_9
+{
+	r12 = heapU16[(r12+54)>>1];
+	r13 = heapU16[(r13+48)>>1];
+if(!(uint(r12) <uint(r13))) //_LBB62_9
+{
+	r12 = r4 << 1;
+	r13 = (r9 + r12)|0;
+	r12 = (r11 + r12)|0;
+	r14 = heapU16[(r13+54)>>1];
+	r15 = heapU16[(r12+48)>>1];
+if(!(uint(r14) <uint(r15))) //_LBB62_9
+{
+	r12 = heapU16[(r12+54)>>1];
+	r13 = heapU16[(r13+48)>>1];
+if(!(uint(r12) <uint(r13))) //_LBB62_9
+{
+	r12 = heap32[(r1+23)];
+	r13 = r12 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+3)];
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+	r12 = heap32[(r1+24)];
+if(!(r12 ==0)) //_LBB62_9
+{
+	r13 = r12 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+3)];
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+}
+}
+}
+}
+}
+}
+	r8 = r8 << 6;
+	r8 = (r10 + r8)|0;
+	r8 = (r8 + r0)|0;
+	r9 = heapU16[(r8+54)>>1];
+	r9 = (r9 + -1)|0;
+	heap16[(r8+54)>>1] = r9;
+}
+	r8 = heapU16[(r3)>>1];
+	r8 = (r8 + 1)|0;
+	heap16[(r3)>>1] = r8;
+	r8 = heapU16[(r2+-2)>>1];
+	r9 = heapU16[(r2+-4)>>1];
+	r10 = heapU16[(r2+2)>>1];
+	r11 = heapU16[(r2)>>1];
+	heap16[(r2+-4)>>1] = r11;
+	heap16[(r2+-2)>>1] = r10;
+	r10 = (r2 + 4)|0;
+	heap16[(r2)>>1] = r9;
+	heap16[(r2+2)>>1] = r8;
+	r2 = r10;
+continue _1;
+}
+else{
+break _1;
+}
+}
+}
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = r0 << 2;
+	r2 = (r1 + r2)|0;
+	r3 = heap32[(fp+2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+17)];
+	r4 = r3 << 2;
+	r5 = (r2 + r4)|0;
+	r4 = heapU16[(r2+r4)>>1];
+	r6 = heapU16[(r5+-4)>>1];
+if(!(uint(r4) >=uint(r6))) //_LBB63_14
+{
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+3)];
+	r6 = heap32[(fp+4)];
+	r7 = heap32[(r1+15)];
+	r3 = r3 << 2;
+	r2 = (r2 + r3)|0;
+	r2 = heapU16[(r2+2)>>1];
+	r3 = 1;
+	r8 = r3 << r0;
+	r2 = r2 << 6;
+	r8 = r8 & 3;
+	r2 = (r7 + r2)|0;
+	r0 = r0 << 1;
+	r3 = r3 << r8;
+	r2 = (r2 + r0)|0;
+	r3 = r3 & 3;
+	r2 = (r2 + 54)|0;
+	r5 = (r5 + 2)|0;
+_3: while(true){
+	r9 = heapU8[r5+-6];
+	r10 = heapU16[(r5+-4)>>1];
+	r9 = r9 & 1;
+	if(r9 != 0) //_LBB63_11
+{
+	r9 = r10 << 6;
+	r7 = (r7 + r9)|0;
+	r7 = (r7 + r0)|0;
+	r9 = heapU16[(r7+54)>>1];
+	r9 = (r9 + 1)|0;
+	heap16[(r7+54)>>1] = r9;
+}
+else{
+if(!(r6 ==0)) //_LBB63_10
+{
+	r9 = heapU16[(r5)>>1];
+	r9 = r9 << 6;
+	r11 = r10 << 6;
+	r9 = (r7 + r9)|0;
+	r12 = r8 << 1;
+	r11 = (r7 + r11)|0;
+	r13 = (r9 + r12)|0;
+	r12 = (r11 + r12)|0;
+	r14 = heapU16[(r13+54)>>1];
+	r15 = heapU16[(r12+48)>>1];
+if(!(uint(r14) <uint(r15))) //_LBB63_10
+{
+	r12 = heapU16[(r12+54)>>1];
+	r13 = heapU16[(r13+48)>>1];
+if(!(uint(r12) <uint(r13))) //_LBB63_10
+{
+	r12 = r3 << 1;
+	r13 = (r9 + r12)|0;
+	r12 = (r11 + r12)|0;
+	r14 = heapU16[(r13+54)>>1];
+	r15 = heapU16[(r12+48)>>1];
+if(!(uint(r14) <uint(r15))) //_LBB63_10
+{
+	r12 = heapU16[(r12+54)>>1];
+	r13 = heapU16[(r13+48)>>1];
+if(!(uint(r12) <uint(r13))) //_LBB63_10
+{
+	r12 = heap32[(r1+23)];
+	r13 = r12 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+3)];
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+	r12 = heap32[(r1+24)];
+if(!(r12 ==0)) //_LBB63_10
+{
+	r13 = r12 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+3)];
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+}
+}
+}
+}
+}
+}
+	r10 = r10 << 6;
+	r7 = (r7 + r10)|0;
+	r7 = (r7 + r0)|0;
+	r10 = heapU16[(r7+48)>>1];
+	r10 = (r10 + 1)|0;
+	heap16[(r7+48)>>1] = r10;
+}
+	r7 = heapU16[(r2)>>1];
+	r7 = (r7 + -1)|0;
+	heap16[(r2)>>1] = r7;
+	r7 = heapU16[(r5+-2)>>1];
+	r9 = heapU16[(r5)>>1];
+	r10 = heapU16[(r5+-4)>>1];
+	r11 = heapU16[(r5+-6)>>1];
+	heap16[(r5+-2)>>1] = r11;
+	heap16[(r5)>>1] = r10;
+	heap16[(r5+-6)>>1] = r7;
+	heap16[(r5+-4)>>1] = r9;
+	r9 = heapU16[(r5+-10)>>1];
+	if(uint(r7) >=uint(r9)) //_LBB63_14
+{
+break _3;
+}
+else{
+	r7 = heap32[(r1+15)];
+	r5 = (r5 + -4)|0;
+continue _3;
+}
+}
+}
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 >> 2;
+	r3 = r1 >> 2;
+	heap32[(r3+4)] = heap32[(r2)];
+	heap32[(r3+5)] = heap32[(r2+1)];
+	r4 = heap32[(fp+3)];
+	heap32[(r3+6)] = heap32[(r2+2)];
+	heap32[(r3+7)] = heap32[(r2+3)];
+	r5 = r4 >> 2;
+	heap32[(r3+8)] = heap32[(r5)];
+	heap32[(r3+9)] = heap32[(r5+1)];
+	r6 = heap32[(fp)];
+	heap32[(r3+10)] = heap32[(r5+2)];
+	heap32[(r3+11)] = heap32[(r5+3)];
+	r7 = r6 >> 2;
+	r1 = heapU16[(r1+12)>>1];
+	r8 = heap32[(r7+15)];
+	f0 = heapFloat[(r2)];
+	f1 = heapFloat[(r2+1)];
+	f2 = heapFloat[(r2+2)];
+	r2 = sp + -6;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r2;
+	heapFloat[(g0+2)] = f0;
+	heapFloat[(g0+3)] = f1;
+	heapFloat[(g0+4)] = f2;
+	heap32[(g0+5)] = 0;
+	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
+	f0 = heapFloat[(r5)];
+	f1 = heapFloat[(r5+1)];
+	f2 = heapFloat[(r5+2)];
+	r1 = r1 << 6;
+	r5 = sp + -12;
+	r1 = (r8 + r1)|0;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r5;
+	heapFloat[(g0+2)] = f0;
+	heapFloat[(g0+3)] = f1;
+	heapFloat[(g0+4)] = f2;
+	heap32[(g0+5)] = 1;
+	r8 = heap32[(fp+4)];
+	r1 = (r1 + 48)|0;
+	r9 = 0;
+	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
+	r10 = r9;
+_1: while(true){
+	r11 = r9 << 2;
+	r12 = r9 << 1;
+	r13 = (r1 - r12)|0;
+	r11 = (r6 - r11)|0;
+	r14 = heapU16[(r13)>>1];
+	r13 = heapU16[(r13+6)>>1];
+	r11 = r11 >> 2;
+	r15 = (r2 - r12)|0;
+	r12 = (r5 - r12)|0;
+	r16 = heap32[(r11+17)];
+	r17 = r14 << 2;
+	r18 = r13 << 2;
+	r15 = heapU16[(r15)>>1];
+	r19 = heapU16[(r16+r17)>>1];
+	r20 = heapU16[(r16+r18)>>1];
+	r12 = heapU16[(r12)>>1];
+	heap16[(r16+r17)>>1] = r15;
+	r11 = heap32[(r11+17)];
+	r15 = (r15 - r19)|0;
+	heap16[(r11+r18)>>1] = r12;
+if(!(r15 >-1)) //_LBB64_3
+{
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r14;
+	heap32[(g0+3)] = 1;
+	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
+}
+	r11 = (r12 - r20)|0;
+if(!(r11 <1)) //_LBB64_5
+{
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = 1;
+	_ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(i7);
+}
+if(!(r15 <1)) //_LBB64_7
+{
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r14;
+	heap32[(g0+3)] = r8;
+	heap32[(g0+4)] = 1;
+	_ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(i7);
+}
+if(!(r11 >-1)) //_LBB64_9
+{
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = r8;
+	heap32[(g0+4)] = 1;
+	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
+}
+	r9 = (r9 + -1)|0;
+	r10 = (r10 + 1)|0;
+	if(r9 !=-3) //_LBB64_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+	r1 = heap32[(r7+27)];
+if(!(r1 ==0)) //_LBB64_12
+{
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	r3 = heap32[(r3+15)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r4;
+	heap32[(g0+4)] = r8;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+27)];
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+if(!(r2 ==0)) //_LBB65_2
+{
+	r5 = r2 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r6 = r3 >> 2;
+	r5 = heap32[(r5+3)];
+	r6 = heap32[(r6+15)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+	r2 = heap32[(r1+23)];
+	r5 = r2 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+3)];
+	r6 = heap32[(r1+15)];
+	r5 = heap32[(r5+14)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r2 = r_g0;
+if(!(r2 !=0)) //_LBB65_4
+{
+	r2 = heap32[(r1+23)];
+	r5 = r2 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+4)];
+	r7 = r3 & 65535;
+	r7 = r7 << 6;
+	r7 = (r6 + r7)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+	r2 = heap32[(r1+15)];
+	r5 = heapU16[(r0+56)>>1];
+	r7 = heapU16[(r2+54)>>1];
+	r7 = (r7 + -2)|0;
+	heap16[(r2+54)>>1] = r7;
+	r2 = heap32[(r1+15)];
+	r7 = heapU16[(r2+56)>>1];
+	r7 = (r7 + -2)|0;
+	r8 = r3 & 65535;
+	heap16[(r2+56)>>1] = r7;
+	r2 = heap32[(r1+15)];
+	r7 = r8 << 6;
+	r9 = heapU16[(r2+58)>>1];
+	r6 = (r6 + r7)|0;
+	r5 = r5 << 1;
+	r6 = (r6 + 54)|0;
+	r10 = 0;
+	r9 = (r9 + -2)|0;
+	heap16[(r2+58)>>1] = r9;
+	r2 = r10;
+_7: while(true){
+	r9 = r2 << 2;
+	r9 = (r0 + r9)|0;
+	r9 = r9 >> 2;
+	r11 = heapU16[(r6)>>1];
+	r12 = heapU16[(r0+6)>>1];
+	r9 = heap32[(r9+17)];
+	r13 = r11 << 2;
+	heap16[(r9+r13)>>1] = r12;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = 0;
+	_ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(i7);
+	r11 = heapU16[(r6+-6)>>1];
+	r12 = heapU16[(r0+6)>>1];
+	r13 = r11 << 2;
+	heap16[(r9+r13)>>1] = r12;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = r4;
+	heap32[(g0+4)] = 0;
+	r11 = r5 << 2;
+	_ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(i7);
+	r9 = (r9 + r11)|0;
+	heap16[(r9+-2)>>1] = r10;
+	r11 = heapU16[(r0+6)>>1];
+	r2 = (r2 + 1)|0;
+	r6 = (r6 + 2)|0;
+	heap16[(r9+-4)>>1] = r11;
+	if(r2 !=3) //_LBB65_5
+{
+continue _7;
+}
+else{
+break _7;
+}
+}
+if(!(r8 ==0)) //_LBB65_8
+{
+	r2 = heapU16[(r0+58)>>1];
+	if(uint(r2) >uint(r8)) //_LBB65_9
+{
+	r1 = heap32[(r1+15)];
+	r2 = heapU16[(r0+64)>>1];
+	r1 = (r1 + r7)|0;
+	heap16[(r1+48)>>1] = r2;
+	heap16[(r0+64)>>1] = r3;
+	r1 = heapU16[(r0+56)>>1];
+	r1 = (r1 + -1)|0;
+	heap16[(r0+56)>>1] = r1;
+	return;
+}
+}
+	r0 = _2E_str11;
+	r1 = _2E_str112;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 495;
+	_assert(i7);
+}
+
+function _ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -56;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r1+1)];
+	f2 = heapFloat[(r1+2)];
+	r1 = heap32[(fp)];
+	r2 = sp + -6;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heapFloat[(g0+2)] = f0;
+	heapFloat[(g0+3)] = f1;
+	heapFloat[(g0+4)] = f2;
+	heap32[(g0+5)] = 0;
+	r2 = heap32[(fp+2)];
+	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
+	r3 = r2 >> 2;
+	f0 = heapFloat[(r3)];
+	f1 = heapFloat[(r3+1)];
+	f2 = heapFloat[(r3+2)];
+	r3 = sp + -12;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	heapFloat[(g0+2)] = f0;
+	heapFloat[(g0+3)] = f1;
+	heapFloat[(g0+4)] = f2;
+	heap32[(g0+5)] = 1;
+	_ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7);
+	r3 = heapU16[(r1+64)>>1];
+	if(r3 !=0) //_LBB66_2
+{
+	r4 = heap32[(fp+4)];
+	r5 = heap32[(fp+5)];
+	r6 = heap32[(fp+6)];
+	r7 = heap32[(fp+7)];
+	r8 = heap32[(fp+8)];
+	r9 = r1 >> 2;
+	r10 = r3 << 6;
+	r11 = heap32[(r9+15)];
+	r10 = (r11 + r10)|0;
+	r11 = heapU16[(r10+48)>>1];
+	heap16[(r1+64)>>1] = r11;
+	r11 = heapU16[(r1+56)>>1];
+	r11 = (r11 + 1)|0;
+	r12 = r10 >> 2;
+	heap16[(r1+56)>>1] = r11;
+	heap32[(r12+3)] = r3;
+	heap32[(r12)] = r4;
+	heap16[(r10+4)>>1] = r5;
+	heap16[(r10+6)>>1] = r6;
+	heap32[(r12+2)] = r8;
+	r8 = heap32[(r9+15)];
+	r11 = heapU16[(r1+56)>>1];
+	r11 = r11 << 1;
+	r12 = heapU16[(r8+54)>>1];
+	r13 = r11 & 65534;
+	r12 = (r12 + 2)|0;
+	r14 = (r13 + -1)|0;
+	heap16[(r8+54)>>1] = r12;
+	r8 = r14 << 2;
+	r12 = heap32[(r9+17)];
+	r14 = (r12 + r8)|0;
+	r15 = r13 | 1;
+	r14 = heapU16[(r14+2)>>1];
+	r16 = heapU16[(r12+r8)>>1];
+	r15 = r15 << 2;
+	r17 = (r12 + r15)|0;
+	heap16[(r12+r15)>>1] = r16;
+	heap16[(r17+2)>>1] = r14;
+	r12 = heap32[(r9+17)];
+	r14 = heapU16[(sp+-6)>>1];
+	heap16[(r12+r8)>>1] = r14;
+	r12 = heap32[(r9+17)];
+	r12 = (r12 + r8)|0;
+	heap16[(r12+2)>>1] = r3;
+	r12 = heap32[(r9+17)];
+	r14 = heapU16[(sp+-12)>>1];
+	r13 = r13 << 2;
+	heap16[(r12+r13)>>1] = r14;
+	r12 = heap32[(r9+17)];
+	r12 = (r12 + r13)|0;
+	r14 = (r11 + -1)|0;
+	heap16[(r12+2)>>1] = r3;
+	heap16[(r10+48)>>1] = r14;
+	heap16[(r10+54)>>1] = r11;
+	r12 = heap32[(r9+15)];
+	r16 = heapU16[(r12+56)>>1];
+	r16 = (r16 + 2)|0;
+	heap16[(r12+56)>>1] = r16;
+	r12 = heap32[(r9+18)];
+	r16 = (r12 + r8)|0;
+	r16 = heapU16[(r16+2)>>1];
+	r17 = heapU16[(r12+r8)>>1];
+	r18 = (r12 + r15)|0;
+	heap16[(r12+r15)>>1] = r17;
+	heap16[(r18+2)>>1] = r16;
+	r12 = heap32[(r9+18)];
+	r16 = heapU16[(sp+-4)>>1];
+	heap16[(r12+r8)>>1] = r16;
+	r12 = heap32[(r9+18)];
+	r12 = (r12 + r8)|0;
+	heap16[(r12+2)>>1] = r3;
+	r12 = heap32[(r9+18)];
+	r16 = heapU16[(sp+-10)>>1];
+	heap16[(r12+r13)>>1] = r16;
+	r12 = heap32[(r9+18)];
+	r12 = (r12 + r13)|0;
+	heap16[(r12+2)>>1] = r3;
+	heap16[(r10+50)>>1] = r14;
+	heap16[(r10+56)>>1] = r11;
+	r12 = heap32[(r9+15)];
+	r16 = heapU16[(r12+58)>>1];
+	r16 = (r16 + 2)|0;
+	heap16[(r12+58)>>1] = r16;
+	r12 = heap32[(r9+19)];
+	r16 = (r12 + r8)|0;
+	r16 = heapU16[(r16+2)>>1];
+	r17 = heapU16[(r12+r8)>>1];
+	r18 = (r12 + r15)|0;
+	heap16[(r12+r15)>>1] = r17;
+	heap16[(r18+2)>>1] = r16;
+	r12 = heap32[(r9+19)];
+	r15 = heapU16[(sp+-2)>>1];
+	heap16[(r12+r8)>>1] = r15;
+	r12 = heap32[(r9+19)];
+	r8 = (r12 + r8)|0;
+	heap16[(r8+2)>>1] = r3;
+	r8 = heap32[(r9+19)];
+	r12 = heapU16[(sp+-8)>>1];
+	heap16[(r8+r13)>>1] = r12;
+	r8 = heap32[(r9+19)];
+	r8 = (r8 + r13)|0;
+	heap16[(r8+2)>>1] = r3;
+	heap16[(r10+52)>>1] = r14;
+	heap16[(r10+58)>>1] = r11;
+	r8 = heapU16[(r10+48)>>1];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = 0;
+	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
+	r8 = heapU16[(r10+54)>>1];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = 0;
+	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
+	r8 = heapU16[(r10+50)>>1];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 1;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = 0;
+	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
+	r8 = heapU16[(r10+56)>>1];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 1;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = 0;
+	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
+	r8 = heapU16[(r10+52)>>1];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 2;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = 1;
+	_ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7);
+	r8 = heapU16[(r10+58)>>1];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 2;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = 1;
+	_ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7);
+	r1 = heap32[(r9+27)];
+	r8 = heap32[(r9+15)];
+if(!(r1 ==0)) //_LBB66_4
+{
+	r9 = heap32[(fp+3)];
+	r10 = r1 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+2)];
+	r11 = r3 << 6;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r9;
+	heap32[(g0+4)] = r4;
+	heap32[(g0+5)] = r5;
+	heap32[(g0+6)] = r6;
+	heap32[(g0+7)] = r7;
+	heap32[(g0+8)] = 0;
+	r0 = (r8 + r11)|0;
+	r0 = r0 >> 2;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	heap32[(r0+15)] = r_g0;
+}
+	r0 = r3 << 6;
+	r0 = (r8 + r0)|0;
+	r_g0 = r0;
+	return;
+}
+else{
+	r0 = _2E_str213;
+	r1 = _2E_str112;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 483;
+	_assert(i7);
+}
+}
+
+function _ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+1)];
+	r3 = heap32[(fp+1)];
+_1: do {
+if(!(r2 >r3)) //_LBB67_20
+{
+if(!(r2 >=r3)) //_LBB67_20
+{
+	r4 = heap32[(r1+2)];
+if(!(r4 >=r3)) //_LBB67_18
+{
+	if(r3 !=0) //_LBB67_5
+{
+	r4 = gNumAlignedAllocs;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r6 = r3 << 4;
+	r5 = (r5 + 1)|0;
+	r6 = r6 | 3;
+	heap32[(r4)] = r5;
+	r4 = (r6 + 16)|0;
+	heap32[(g0)] = r4;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB67_7
+{
+	r5 = 0;
+	r6 = (r4 + 4)|0;
+	r5 = (r5 - r6)|0;
+	r5 = r5 & 15;
+	r5 = (r4 + r5)|0;
+	r6 = (r5 + 4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r4;
+	r4 = r6;
+}
+}
+else{
+	r4 = 0;
+}
+	r5 = (r0 + 12)|0;
+	if(r2 <1) //_LBB67_10
+{
+	r6 = r5 >> 2;
+	r8 = heap32[(r6)];
+}
+else{
+	r6 = 0;
+	r7 = (r6 - r2)|0;
+_14: while(true){
+	r8 = r5 >> 2;
+	r8 = heap32[(r8)];
+	r9 = r6 << 4;
+	r10 = (r8 - r9)|0;
+	r10 = r10 >> 2;
+	r9 = (r4 - r9)|0;
+	r11 = heap32[(r10)];
+	r9 = r9 >> 2;
+	heap32[(r9)] = r11;
+	r11 = heap32[(r10+1)];
+	heap32[(r9+1)] = r11;
+	r11 = heap32[(r10+2)];
+	heap32[(r9+2)] = r11;
+	r10 = heap32[(r10+3)];
+	r6 = (r6 + -1)|0;
+	heap32[(r9+3)] = r10;
+if(!(r7 !=r6)) //_LBB67_11
+{
+break _14;
+}
+}
+	r5 = (r0 + 12)|0;
+}
+if(!(r8 ==0)) //_LBB67_17
+{
+	r6 = heapU8[r0+16];
+if(!(r6 ==0)) //_LBB67_16
+{
+	r6 = gNumAlignedFree;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r7 = (r7 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r6)] = r7;
+	r6 = heap32[(r8+-1)];
+	heap32[(g0)] = r6;
+	free(i7);
+}
+	r6 = r5 >> 2;
+	heap32[(r6)] = 0;
+}
+	r6 = 1;
+	r5 = r5 >> 2;
+	heap8[r0+16] = r6;
+	heap32[(r5)] = r4;
+	heap32[(r1+2)] = r3;
+	if(r2 >=r3) //_LBB67_20
+{
+break _1;
+}
+}
+	r0 = heap32[(fp+2)];
+_25: while(true){
+	r4 = r0 >> 2;
+	r5 = r2 << 4;
+	r6 = heap32[(r1+3)];
+	r5 = (r6 + r5)|0;
+	r6 = heap32[(r4)];
+	r5 = r5 >> 2;
+	heap32[(r5)] = r6;
+	r6 = heap32[(r4+1)];
+	heap32[(r5+1)] = r6;
+	r6 = heap32[(r4+2)];
+	heap32[(r5+2)] = r6;
+	r4 = heap32[(r4+3)];
+	r2 = (r2 + 1)|0;
+	heap32[(r5+3)] = r4;
+	if(r3 !=r2) //_LBB67_19
+{
+continue _25;
+}
+else{
+break _1;
+}
+}
+}
+}
+} while(0);
+	heap32[(r1+1)] = r3;
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+23)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+14)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = r_g0;
+if(!(r1 ==0)) //_LBB68_22
+{
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(r0+23)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+7)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = r_g0;
+	r3 = r2 >> 2;
+	r3 = heap32[(r3+1)];
+	if(r3 >1) //_LBB68_3
+{
+	r3 = (r3 + -1)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r3;
+	r3 = r2 >> 2;
+	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
+	r3 = heap32[(r3+1)];
+}
+	r4 = sp + -32;
+	r5 = r4 >> 2;
+	heap32[(fp+-8)] = 0;
+	heap32[(r5+1)] = 0;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+	r5 = heap32[(r0+26)];
+	r3 = (r3 - r5)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	r3 = 0;
+	_ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7);
+	heap32[(r0+26)] = 0;
+	r4 = r3;
+	r5 = r3;
+	r6 = r3;
+	r7 = r3;
+_6: while(true){
+	r8 = r2 >> 2;
+	r9 = heap32[(r8+1)];
+	if(r9 >r7) //_LBB68_5
+{
+	r8 = heap32[(r8+3)];
+	r9 = r7 << 4;
+	r9 = (r8 + r9)|0;
+	r9 = r9 >> 2;
+	r10 = heap32[(r9)];
+	r11 = r7 << 2;
+	r12 = heap32[(r9+1)];
+	if(r10 !=r5) //_LBB68_7
+{
+__label__ = 6;
+}
+else{
+	if(r12 ==r6) //_LBB68_13
+{
+	r4 = heap32[(r9+2)];
+	if(r4 ==0) //_LBB68_15
+{
+__label__ = 13;
+}
+else{
+__label__ = 12;
+break _6;
+}
+}
+else{
+__label__ = 6;
+}
+}
+if (__label__ == 6){
+	r5 = (r12 + 54)|0;
+	r6 = (r10 + 48)|0;
+	r9 = 0;
+_14: while(true){
+	if(r9 <3) //_LBB68_8
+{
+	r13 = heapU16[(r6+6)>>1];
+	r14 = heapU16[(r5+-6)>>1];
+	if(uint(r13) <uint(r14)) //_LBB68_15
+{
+__label__ = 13;
+break _14;
+}
+else{
+	r13 = heapU16[(r5)>>1];
+	r14 = heapU16[(r6)>>1];
+	if(uint(r13) <uint(r14)) //_LBB68_15
+{
+__label__ = 13;
+break _14;
+}
+else{
+	r9 = (r9 + 1)|0;
+	r5 = (r5 + 2)|0;
+	r6 = (r6 + 2)|0;
+}
+}
+}
+else{
+__label__ = 14;
+break _14;
+}
+}
+}
+if (__label__ == 13){
+	r4 = heap32[(r0+23)];
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+8)];
+	r6 = (r8 + r3)|0;
+	r9 = r11 << 2;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r1;
+	r4 = (r8 + r9)|0;
+	r4 = r4 >> 2;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	heap32[(r4)] = 0;
+	heap32[(r4+1)] = 0;
+	r4 = heap32[(r0+26)];
+	r4 = (r4 + 1)|0;
+	r5 = gOverlappingPairs;
+	r5 = r5 >> 2;
+	heap32[(r0+26)] = r4;
+	r6 = heap32[(r5)];
+	r6 = (r6 + -1)|0;
+	heap32[(r5)] = r6;
+}
+	r7 = (r7 + 1)|0;
+	r3 = (r3 + 16)|0;
+	r5 = r10;
+	r6 = r12;
+}
+else{
+__label__ = 16;
+break _6;
+}
+}
+switch(__label__ ){//multiple entries
+case 16:
+	if(r9 >1) //_LBB68_20
+{
+	r4 = (r9 + -1)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r4;
+	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
+	r9 = heap32[(r8+1)];
+	r4 = heap32[(r0+26)];
+}
+	r1 = sp + -16;
+	r3 = r1 >> 2;
+	heap32[(fp+-4)] = 0;
+	heap32[(r3+1)] = 0;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 0;
+	r3 = (r9 - r4)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r1;
+	_ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7);
+	heap32[(r0+26)] = 0;
+break;
+case 12:
+	r8 = _2E_str314;
+	r0 = _2E_str112;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 687;
+	_assert(i7);
+break;
+}
+}
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItED2Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV20btAxisSweep3InternalItE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+27)];
+if(!(r1 ==0)) //_LBB69_5
+{
+	r1 = heap32[(r2+28)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+28)];
+if(!(r1 ==0)) //_LBB69_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+27)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+27)];
+if(!(r1 ==0)) //_LBB69_5
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = 0;
+_8: while(true){
+	r3 = r1 << 2;
+	r3 = (r0 + r3)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+22)];
+if(!(r3 ==0)) //_LBB69_8
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	r1 = (r1 + -1)|0;
+	if(r1 !=-3) //_LBB69_6
+{
+continue _8;
+}
+else{
+break _8;
+}
+}
+	r1 = heap32[(r2+15)];
+if(!(r1 ==0)) //_LBB69_11
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r0 = heapU8[r0+100];
+if(!(r0 ==0)) //_LBB69_14
+{
+	r0 = heap32[(r2+23)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+23)];
+if(!(r0 ==0)) //_LBB69_14
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+	r2 = (r2 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r2;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+}
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItED1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	_ZN20btAxisSweep3InternalItED2Ev(i7);
+	return;
+}
+
+function _ZN20btAxisSweep3InternalItED0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV20btAxisSweep3InternalItE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+27)];
+if(!(r1 ==0)) //_LBB71_5
+{
+	r1 = heap32[(r2+28)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+28)];
+if(!(r1 ==0)) //_LBB71_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+27)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+27)];
+if(!(r1 ==0)) //_LBB71_5
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = 0;
+_8: while(true){
+	r3 = r1 << 2;
+	r3 = (r0 + r3)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+22)];
+if(!(r3 ==0)) //_LBB71_8
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	r1 = (r1 + -1)|0;
+	if(r1 !=-3) //_LBB71_6
+{
+continue _8;
+}
+else{
+break _8;
+}
+}
+	r1 = heap32[(r2+15)];
+if(!(r1 ==0)) //_LBB71_11
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r0 = heapU8[r0+100];
+if(!(r0 ==0)) //_LBB71_14
+{
+	r0 = heap32[(r2+23)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+23)];
+if(!(r0 ==0)) //_LBB71_14
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+}
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+	return;
+}
+
+function _ZN12btAxisSweep3D0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btAxisSweep3;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN20btAxisSweep3InternalItED2Ev(i7);
+if(!(r0 ==0)) //_LBB72_2
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZN12btAxisSweep3D1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btAxisSweep3;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN20btAxisSweep3InternalItED2Ev(i7);
+	return;
+}
+
+function _ZN20btCollisionAlgorithmD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV20btCollisionAlgorithm;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN20btCollisionAlgorithmD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV20btCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+3)];
+	r2 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZN6btDbvt8ICollide7DescentEPK10btDbvtNode(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZL10insertleafP6btDbvtP10btDbvtNodeS2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+2)];
+	r0 = r0 >> 2;
+	r2 = heap32[(r0)];
+	if(r2 !=0) //_LBB80_2
+{
+	r2 = heap32[(fp+1)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3+10)];
+	if(r3 !=0) //_LBB80_4
+{
+	r4 = r1 >> 2;
+	f0 = heapFloat[(r4+2)];
+	f1 = heapFloat[(r4+6)];
+	f2 = heapFloat[(r4+1)];
+	f3 = heapFloat[(r4+5)];
+	f4 = heapFloat[(r4)];
+	f5 = heapFloat[(r4+4)];
+	f0 = f0+f1;
+	f1 = f2+f3;
+	f2 = f4+f5;
+_5: while(true){
+	r4 = r2 >> 2;
+	r4 = heap32[(r4+9)];
+	r4 = r4 >> 2;
+	f3 = heapFloat[(r4)];
+	f4 = heapFloat[(r4+4)];
+	f5 = heapFloat[(r4+2)];
+	f6 = heapFloat[(r4+6)];
+	f7 = heapFloat[(r4+1)];
+	f8 = heapFloat[(r4+5)];
+	f3 = f3+f4;
+	f4 = f5+f6;
+	f5 = f7+f8;
+	f3 = f2-f3;
+	f4 = f0-f4;
+	f5 = f1-f5;
+	f6 =                         0;
+	if(f3 <f6) //_LBB80_7
+{
+	f3 = -f3;
+}
+	if(f5 <f6) //_LBB80_10
+{
+	f5 = -f5;
+}
+	f3 = f3+f5;
+	if(f4 <f6) //_LBB80_13
+{
+	f4 = -f4;
+}
+	r3 = r3 >> 2;
+	f5 = heapFloat[(r3)];
+	f7 = heapFloat[(r3+4)];
+	f8 = heapFloat[(r3+2)];
+	f9 = heapFloat[(r3+6)];
+	f10 = heapFloat[(r3+1)];
+	f11 = heapFloat[(r3+5)];
+	f5 = f5+f7;
+	f7 = f8+f9;
+	f8 = f10+f11;
+	f5 = f2-f5;
+	f3 = f3+f4;
+	f4 = f0-f7;
+	f7 = f1-f8;
+	if(f5 <f6) //_LBB80_16
+{
+	f5 = -f5;
+}
+	if(f7 <f6) //_LBB80_19
+{
+	f7 = -f7;
+}
+	f5 = f5+f7;
+	if(f4 <f6) //_LBB80_22
+{
+	f4 = -f4;
+}
+	f4 = f5+f4;
+	r3 = f3 >= f4;
+	r3 = r3 & 1;
+	r3 = r3 << 2;
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+9)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3+10)];
+if(!(r3 !=0)) //_LBB80_5
+{
+break _5;
+}
+}
+}
+	r3 = r2 >> 2;
+	r4 = heap32[(r0+1)];
+	r5 = heap32[(r3+8)];
+	if(r4 ==0) //_LBB80_26
+{
+	r4 = gNumAlignedAllocs;
+	r4 = r4 >> 2;
+	r6 = heap32[(r4)];
+	r6 = (r6 + 1)|0;
+	heap32[(r4)] = r6;
+	heap32[(g0)] = 63;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB80_28
+{
+	r6 = 0;
+	r7 = (r4 + 4)|0;
+	r6 = (r6 - r7)|0;
+	r6 = r6 & 15;
+	r6 = (r4 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r4;
+	r4 = r7;
+}
+}
+else{
+	heap32[(r0+1)] = 0;
+}
+	r6 = r4 >> 2;
+	heap32[(r6+8)] = r5;
+	heap32[(r6+9)] = 0;
+	heap32[(r6+10)] = 0;
+	r7 = r1 >> 2;
+	f0 = heapFloat[(r7)];
+	f1 = heapFloat[(r3)];
+	f0 = f0 < f1 ? f0 : f1;
+	heapFloat[(r6)] = f0;
+	f0 = heapFloat[(r7+4)];
+	f1 = heapFloat[(r3+4)];
+	f0 = f0 > f1 ? f0 : f1;
+	heapFloat[(r6+4)] = f0;
+	f0 = heapFloat[(r7+1)];
+	f1 = heapFloat[(r3+1)];
+	f0 = f0 < f1 ? f0 : f1;
+	heapFloat[(r6+1)] = f0;
+	f0 = heapFloat[(r7+5)];
+	f1 = heapFloat[(r3+5)];
+	f0 = f0 > f1 ? f0 : f1;
+	heapFloat[(r6+5)] = f0;
+	f0 = heapFloat[(r7+2)];
+	f1 = heapFloat[(r3+2)];
+	f0 = f0 < f1 ? f0 : f1;
+	heapFloat[(r6+2)] = f0;
+	f0 = heapFloat[(r7+6)];
+	f1 = heapFloat[(r3+6)];
+	f0 = f0 > f1 ? f0 : f1;
+	heapFloat[(r6+6)] = f0;
+_31: do {
+	if(r5 ==0) //_LBB80_38
+{
+	heap32[(r6+9)] = r2;
+	heap32[(r3+8)] = r4;
+	heap32[(r6+10)] = r1;
+	heap32[(r7+8)] = r4;
+	heap32[(r0)] = r4;
+}
+else{
+	r0 = heap32[(r3+8)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+10)];
+	r0 = r0 == r2;
+	r0 = r0 & 1;
+	r0 = r0 << 2;
+	r0 = (r5 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0+9)] = r4;
+	heap32[(r6+9)] = r2;
+	heap32[(r3+8)] = r4;
+	heap32[(r6+10)] = r1;
+	heap32[(r7+8)] = r4;
+	f0 = heapFloat[(r6)];
+_34: while(true){
+	r0 = r5;
+	r1 = r0 >> 2;
+	f1 = heapFloat[(r1)];
+if(!(f1 >f0)) //_LBB80_37
+{
+	r2 = r4 >> 2;
+	f0 = heapFloat[(r1+1)];
+	f1 = heapFloat[(r2+1)];
+if(!(f0 >f1)) //_LBB80_37
+{
+	f0 = heapFloat[(r1+2)];
+	f1 = heapFloat[(r2+2)];
+if(!(f0 >f1)) //_LBB80_37
+{
+	f0 = heapFloat[(r1+4)];
+	f1 = heapFloat[(r2+4)];
+if(!(f0 <f1)) //_LBB80_37
+{
+	f0 = heapFloat[(r1+5)];
+	f1 = heapFloat[(r2+5)];
+if(!(f0 <f1)) //_LBB80_37
+{
+	f0 = heapFloat[(r1+6)];
+	f1 = heapFloat[(r2+6)];
+	if(f0 >=f1) //_LBB80_39
+{
+break _31;
+}
+}
+}
+}
+}
+}
+	r2 = heap32[(r1+10)];
+	r3 = heap32[(r1+9)];
+	r2 = r2 >> 2;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r3)];
+	f1 = heapFloat[(r2)];
+	f0 = f0 < f1 ? f0 : f1;
+	heapFloat[(r1)] = f0;
+	f1 = heapFloat[(r3+4)];
+	f2 = heapFloat[(r2+4)];
+	f1 = f1 > f2 ? f1 : f2;
+	heapFloat[(r1+4)] = f1;
+	f1 = heapFloat[(r3+1)];
+	f2 = heapFloat[(r2+1)];
+	f1 = f1 < f2 ? f1 : f2;
+	heapFloat[(r1+1)] = f1;
+	f1 = heapFloat[(r3+5)];
+	f2 = heapFloat[(r2+5)];
+	f1 = f1 > f2 ? f1 : f2;
+	heapFloat[(r1+5)] = f1;
+	f1 = heapFloat[(r3+2)];
+	f2 = heapFloat[(r2+2)];
+	f1 = f1 < f2 ? f1 : f2;
+	heapFloat[(r1+2)] = f1;
+	f1 = heapFloat[(r3+6)];
+	f2 = heapFloat[(r2+6)];
+	f1 = f1 > f2 ? f1 : f2;
+	heapFloat[(r1+6)] = f1;
+	r5 = heap32[(r1+8)];
+	r4 = r0;
+	if(r5 ==0) //_LBB80_39
+{
+break _31;
+}
+}
+}
+} while(0);
+	return;
+}
+else{
+	r2 = r1 >> 2;
+	heap32[(r0)] = r1;
+	heap32[(r2+8)] = 0;
+	return;
+}
+}
+
+function _ZL10removeleafP6btDbvtP10btDbvtNode(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r2 = heap32[(r0)];
+	if(r2 !=r1) //_LBB81_2
+{
+	r2 = r1 >> 2;
+	r2 = heap32[(r2+8)];
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+10)];
+	r1 = r4 != r1;
+	r1 = r1 & 1;
+	r1 = r1 << 2;
+	r1 = (r2 + r1)|0;
+	r1 = r1 >> 2;
+	r3 = heap32[(r3+8)];
+	r1 = heap32[(r1+9)];
+_3: do {
+	if(r3 ==0) //_LBB81_11
+{
+	r3 = r1 >> 2;
+	heap32[(r0)] = r1;
+	heap32[(r3+8)] = 0;
+	r3 = heap32[(r0+1)];
+if(!(r3 ==0)) //_LBB81_13
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r4 = heap32[(r1)];
+	r4 = (r4 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r1)] = r4;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r0+1)] = r2;
+	r3 = heap32[(r0)];
+}
+else{
+	r4 = r3 >> 2;
+	r4 = heap32[(r4+10)];
+	r4 = r4 == r2;
+	r4 = r4 & 1;
+	r4 = r4 << 2;
+	r4 = (r3 + r4)|0;
+	r4 = r4 >> 2;
+	r5 = r1 >> 2;
+	heap32[(r4+9)] = r1;
+	heap32[(r5+8)] = r3;
+	r1 = heap32[(r0+1)];
+if(!(r1 ==0)) //_LBB81_5
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r4)] = r5;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r0+1)] = r2;
+_12: while(true){
+	if(r3 !=0) //_LBB81_6
+{
+	r1 = r3 >> 2;
+	r2 = heap32[(r1+10)];
+	r4 = heap32[(r1+9)];
+	r2 = r2 >> 2;
+	r4 = r4 >> 2;
+	f0 = heapFloat[(r1+6)];
+	f1 = heapFloat[(r1)];
+	f2 = heapFloat[(r1+1)];
+	f3 = heapFloat[(r1+2)];
+	f4 = heapFloat[(r1+4)];
+	f5 = heapFloat[(r1+5)];
+	f6 = heapFloat[(r4)];
+	f7 = heapFloat[(r2)];
+	f6 = f6 < f7 ? f6 : f7;
+	heapFloat[(r1)] = f6;
+	f7 = heapFloat[(r4+4)];
+	f8 = heapFloat[(r2+4)];
+	f7 = f7 > f8 ? f7 : f8;
+	heapFloat[(r1+4)] = f7;
+	f8 = heapFloat[(r4+1)];
+	f9 = heapFloat[(r2+1)];
+	f8 = f8 < f9 ? f8 : f9;
+	heapFloat[(r1+1)] = f8;
+	f9 = heapFloat[(r4+5)];
+	f10 = heapFloat[(r2+5)];
+	f9 = f9 > f10 ? f9 : f10;
+	heapFloat[(r1+5)] = f9;
+	f10 = heapFloat[(r4+2)];
+	f11 = heapFloat[(r2+2)];
+	f10 = f10 < f11 ? f10 : f11;
+	heapFloat[(r1+2)] = f10;
+	f11 = heapFloat[(r4+6)];
+	f12 = heapFloat[(r2+6)];
+	f11 = f11 > f12 ? f11 : f12;
+	heapFloat[(r1+6)] = f11;
+if(!(f0 !=f11)) //_LBB81_8
+{
+	r2 = f1 == f6;
+	r4 = f2 == f8;
+	r2 = r2 & r4;
+	r4 = f3 == f10;
+	r2 = r2 & r4;
+	r4 = f4 == f7;
+	r2 = r2 & r4;
+	r4 = f5 == f9;
+	r2 = r2 & r4;
+	if(r2 != 0) //_LBB81_14
+{
+break _3;
+}
+}
+	r3 = heap32[(r1+8)];
+}
+else{
+break _12;
+}
+}
+	r0 = heap32[(r0)];
+	r_g0 = r0;
+	return;
+}
+} while(0);
+	r_g0 = r3;
+	return;
+}
+else{
+	heap32[(r0)] = 0;
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	f0 = heapFloat[(r0)];
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+3)];
+	f1 = heapFloat[(fp+4)];
+	r4 = r1 >> 2;
+	f2 = heapFloat[(r4)];
+	if(f2 <=f0) //_LBB82_2
+{
+	f2 = heapFloat[(r0+1)];
+	f3 = heapFloat[(r4+1)];
+	if(f3 <=f2) //_LBB82_4
+{
+	f3 = heapFloat[(r4+2)];
+	f4 = heapFloat[(r0+2)];
+if(!(f3 >f4)) //_LBB82_3
+{
+	f3 = heapFloat[(r4+4)];
+	f4 = heapFloat[(r0+4)];
+if(!(f3 <f4)) //_LBB82_3
+{
+	f3 = heapFloat[(r4+5)];
+	f4 = heapFloat[(r0+5)];
+if(!(f3 <f4)) //_LBB82_3
+{
+	f3 = heapFloat[(r4+6)];
+	f4 = heapFloat[(r0+6)];
+if(!(f3 <f4)) //_LBB82_3
+{
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+}
+}
+}
+}
+}
+else{
+	f2 = heapFloat[(r0+1)];
+}
+	f0 = f0-f1;
+	f2 = f2-f1;
+	heapFloat[(r0)] = f0;
+	heapFloat[(r0+1)] = f2;
+	f3 = heapFloat[(r0+2)];
+	f3 = f3-f1;
+	heapFloat[(r0+2)] = f3;
+	f4 = heapFloat[(r0+4)];
+	f4 = f4+f1;
+	heapFloat[(r0+4)] = f4;
+	f5 = heapFloat[(r0+5)];
+	f5 = f5+f1;
+	heapFloat[(r0+5)] = f5;
+	f6 = heapFloat[(r0+6)];
+	f1 = f6+f1;
+	r3 = r3 >> 2;
+	heapFloat[(r0+6)] = f1;
+	f6 = heapFloat[(r3)];
+	f7 =                         0;
+	if(f6 <=f7) //_LBB82_10
+{
+	f0 = f0+f6;
+	heapFloat[(r0)] = f0;
+}
+else{
+	f0 = f4+f6;
+	heapFloat[(r0+4)] = f0;
+}
+	f0 = heapFloat[(r3+1)];
+	if(f0 <=f7) //_LBB82_13
+{
+	f0 = f2+f0;
+	heapFloat[(r0+1)] = f0;
+}
+else{
+	f0 = f5+f0;
+	heapFloat[(r0+5)] = f0;
+}
+	f0 = heapFloat[(r3+2)];
+	if(f0 <=f7) //_LBB82_16
+{
+	f0 = f3+f0;
+	heapFloat[(r0+2)] = f0;
+}
+else{
+	f0 = f1+f0;
+	heapFloat[(r0+6)] = f0;
+}
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
+	r3 = r_g0;
+_22: do {
+	if(r3 !=0) //_LBB82_19
+{
+	r5 = r2 >> 2;
+	r6 = heap32[(r5+2)];
+	if(r6 <0) //_LBB82_24
+{
+	r5 = heap32[(r5)];
+}
+else{
+	r7 = -1;
+_27: while(true){
+	r5 = r3;
+	r7 = (r7 + 1)|0;
+	if(r6 >r7) //_LBB82_23
+{
+	r3 = r5 >> 2;
+	r3 = heap32[(r3+8)];
+	if(r3 ==0) //_LBB82_22
+{
+break _22;
+}
+else{
+continue _27;
+}
+}
+else{
+break _22;
+}
+}
+}
+}
+else{
+	r5 = 0;
+}
+} while(0);
+	heap32[(r4)] = heap32[(r0)];
+	heap32[(r4+1)] = heap32[(r0+1)];
+	heap32[(r4+2)] = heap32[(r0+2)];
+	heap32[(r4+3)] = heap32[(r0+3)];
+	heap32[(r4+4)] = heap32[(r0+4)];
+	heap32[(r4+5)] = heap32[(r0+5)];
+	heap32[(r4+6)] = heap32[(r0+6)];
+	heap32[(r4+7)] = heap32[(r0+7)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r1;
+	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZL17recursedeletenodeP6btDbvtP10btDbvtNode(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = r0 >> 2;
+	r3 = heap32[(r2+10)];
+if(!(r3 ==0)) //_LBB83_2
+{
+	r3 = heap32[(r2+9)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
+	r2 = heap32[(r2+10)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
+}
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+if(!(r2 !=r0)) //_LBB83_4
+{
+	heap32[(r1)] = 0;
+}
+	r2 = heap32[(r1+1)];
+if(!(r2 ==0)) //_LBB83_6
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r2 = r2 >> 2;
+	heap32[(r3)] = r4;
+	r2 = heap32[(r2+-1)];
+	heap32[(g0)] = r2;
+	free(i7);
+}
+	heap32[(r1+1)] = r0;
+	return;
+}
+
+function _ZN6btDbvt19optimizeIncrementalEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	if(r0 <0) //_LBB84_2
+{
+	r0 = r1 >> 2;
+	r0 = heap32[(r0+3)];
+}
+	r2 = r1 >> 2;
+	r3 = heap32[(r2)];
+_4: do {
+if(!(r3 ==0)) //_LBB84_20
+{
+if(!(r0 <1)) //_LBB84_20
+{
+_6: while(true){
+	r3 = 0;
+	r4 = r1;
+_8: while(true){
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	r5 = r4 >> 2;
+	r6 = heap32[(r5+10)];
+	if(r6 !=0) //_LBB84_6
+{
+	r6 = heap32[(r5+8)];
+	if(uint(r6) >uint(r4)) //_LBB84_8
+{
+	r7 = r6 >> 2;
+	r8 = heap32[(r7+10)];
+	r8 = r8 == r4;
+	r8 = r8 & 1;
+	r9 = (r6 + 36)|0;
+	r10 = r8 << 2;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r11 = heap32[(r11)];
+	if(r11 ==r4) //_LBB84_10
+{
+	r8 = r8 ^ 1;
+	r8 = r8 << 2;
+	r9 = (r9 + r8)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+	r11 = heap32[(r7+8)];
+	if(r11 ==0) //_LBB84_12
+{
+	heap32[(r2)] = r4;
+}
+else{
+	r12 = r11 >> 2;
+	r12 = heap32[(r12+10)];
+	r12 = r12 == r6;
+	r12 = r12 & 1;
+	r12 = r12 << 2;
+	r12 = (r11 + r12)|0;
+	r12 = r12 >> 2;
+	heap32[(r12+9)] = r4;
+}
+	r12 = r9 >> 2;
+	heap32[(r12+8)] = r4;
+	heap32[(r7+8)] = r4;
+	heap32[(r5+8)] = r11;
+	r11 = heap32[(r5+9)];
+	heap32[(r7+9)] = r11;
+	r11 = heap32[(r5+10)];
+	heap32[(r7+10)] = r11;
+	r11 = heap32[(r5+9)];
+	r11 = r11 >> 2;
+	heap32[(r11+8)] = r6;
+	r11 = heap32[(r5+10)];
+	r4 = (r4 + 36)|0;
+	r10 = (r4 + r10)|0;
+	r11 = r11 >> 2;
+	r4 = (r4 + r8)|0;
+	r8 = r10 >> 2;
+	heap32[(r11+8)] = r6;
+	r4 = r4 >> 2;
+	heap32[(r8)] = r6;
+	heap32[(r4)] = r9;
+	f0 = heapFloat[(r7+7)];
+	f1 = heapFloat[(r7+6)];
+	f2 = heapFloat[(r7+5)];
+	f3 = heapFloat[(r7+4)];
+	f4 = heapFloat[(r7+3)];
+	f5 = heapFloat[(r7+2)];
+	f6 = heapFloat[(r7+1)];
+	f7 = heapFloat[(r7)];
+	heap32[(r7)] = heap32[(r5)];
+	heap32[(r7+1)] = heap32[(r5+1)];
+	heap32[(r7+2)] = heap32[(r5+2)];
+	heap32[(r7+3)] = heap32[(r5+3)];
+	heap32[(r7+4)] = heap32[(r5+4)];
+	heap32[(r7+5)] = heap32[(r5+5)];
+	heap32[(r7+6)] = heap32[(r5+6)];
+	heap32[(r7+7)] = heap32[(r5+7)];
+	heapFloat[(r5)] = f7;
+	heapFloat[(r5+1)] = f6;
+	heapFloat[(r5+2)] = f5;
+	heapFloat[(r5+3)] = f4;
+	heapFloat[(r5+4)] = f3;
+	heapFloat[(r5+5)] = f2;
+	heapFloat[(r5+6)] = f1;
+	heapFloat[(r5+7)] = f0;
+}
+else{
+break _6;
+}
+}
+else{
+	r6 = r4;
+}
+	r4 = heap32[(r2+4)];
+	r4 = r4 >>> r3;
+	r4 = r4 & 1;
+	r4 = r4 << 2;
+	r4 = (r6 + r4)|0;
+	r3 = (r3 + 1)|0;
+	r4 = (r4 + 36)|0;
+	r3 = r3 & 31;
+}
+else{
+break _8;
+}
+}
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB84_18
+{
+	r3 = heap32[(r2)];
+}
+else{
+	r3 = 0;
+}
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
+	r3 = heap32[(r2+4)];
+	r0 = (r0 + -1)|0;
+	r3 = (r3 + 1)|0;
+	heap32[(r2+4)] = r3;
+if(!(r0 !=0)) //_LBB84_5
+{
+break _4;
+}
+}
+	r4 = _2E_str22;
+	r0 = _2E_str1118;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 379;
+	_assert(i7);
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN18btDbvtTreeColliderD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btDbvtTreeCollider;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN18btDbvtTreeColliderD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btDbvtTreeCollider;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+2)];
+if(!(r0 ==r1)) //_LBB87_2
+{
+	r2 = heap32[(fp)];
+	r2 = r2 >> 2;
+	r3 = heap32[(r2+1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+24)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r1 = r1 >> 2;
+	r0 = r0 >> 2;
+	r4 = heap32[(r4+2)];
+	r1 = heap32[(r1+9)];
+	r0 = heap32[(r0+9)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r0 = heap32[(r2+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+30)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0+30)] = r1;
+}
+	return;
+}
+
+function _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r1 = heap32[(r1+2)];
+	r2 = r2 >> 2;
+	r1 = r1 >> 2;
+	r2 = heap32[(r2+2)];
+	r1 = heap32[(r1+12)];
+	r3 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	return;
+}
+
+function _ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+2)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	heap32[(r1)] = heap32[(r0+4)];
+	heap32[(r1+1)] = heap32[(r0+5)];
+	r2 = heap32[(fp+3)];
+	heap32[(r1+2)] = heap32[(r0+6)];
+	r2 = r2 >> 2;
+	heap32[(r1+3)] = heap32[(r0+7)];
+	heap32[(r2)] = heap32[(r0+8)];
+	heap32[(r2+1)] = heap32[(r0+9)];
+	heap32[(r2+2)] = heap32[(r0+10)];
+	heap32[(r2+3)] = heap32[(r0+11)];
+	return;
+}
+
+function _ZN19BroadphaseRayTesterD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV19BroadphaseRayTester;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN19BroadphaseRayTesterD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV19BroadphaseRayTester;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp+1)];
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r2 = r2 >> 2;
+	r1 = heap32[(r1+2)];
+	r2 = heap32[(r2+9)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZN20BroadphaseAabbTesterD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV20BroadphaseAabbTester;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN20BroadphaseAabbTesterD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV20BroadphaseAabbTester;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp+1)];
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r2 = r2 >> 2;
+	r1 = heap32[(r1+2)];
+	r2 = heap32[(r2+9)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZN16btDbvtBroadphase23getOverlappingPairCacheEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+24)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK16btDbvtBroadphase23getOverlappingPairCacheEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+24)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+1)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r0 = heap32[(r0+11)];
+	if(r1 ==0) //_LBB98_4
+{
+	if(r0 !=0) //_LBB98_6
+{
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0)];
+	f2 = heapFloat[(r0+1)];
+	f4 = heapFloat[(r0+2)];
+	f6 = heapFloat[(r0+3)];
+	f1 = heapFloat[(r0+4)];
+	f3 = heapFloat[(r0+5)];
+	f5 = heapFloat[(r0+6)];
+	f7 = heapFloat[(r0+7)];
+}
+else{
+	f6 =                         0;
+	f4 = f6;
+	f2 = f6;
+	f0 = f6;
+	f1 = f6;
+	f3 = f6;
+	f5 = f6;
+	f7 = f6;
+}
+}
+else{
+	if(r0 ==0) //_LBB98_3
+{
+	r0 = r1 >> 2;
+	f0 = heapFloat[(r0)];
+	f2 = heapFloat[(r0+1)];
+	f4 = heapFloat[(r0+2)];
+	f6 = heapFloat[(r0+3)];
+	f1 = heapFloat[(r0+4)];
+	f3 = heapFloat[(r0+5)];
+	f5 = heapFloat[(r0+6)];
+	f7 = heapFloat[(r0+7)];
+}
+else{
+	r1 = r1 >> 2;
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r0)];
+	f2 = heapFloat[(r1+4)];
+	f3 = heapFloat[(r0+4)];
+	f4 = heapFloat[(r1+1)];
+	f5 = heapFloat[(r0+1)];
+	f6 = heapFloat[(r1+5)];
+	f7 = heapFloat[(r0+5)];
+	f8 = heapFloat[(r1+2)];
+	f9 = heapFloat[(r0+2)];
+	f10 = heapFloat[(r1+6)];
+	f11 = heapFloat[(r0+6)];
+	f0 = f0 < f1 ? f0 : f1;
+	f1 = f2 > f3 ? f2 : f3;
+	f2 = f4 < f5 ? f4 : f5;
+	f3 = f6 > f7 ? f6 : f7;
+	f4 = f8 < f9 ? f8 : f9;
+	f5 = f10 > f11 ? f10 : f11;
+}
+}
+	r0 = r2 >> 2;
+	heapFloat[(r0)] = f0;
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f4;
+	r1 = r3 >> 2;
+	heapFloat[(r0+3)] = f6;
+	heapFloat[(r1)] = f1;
+	heapFloat[(r1+1)] = f3;
+	heapFloat[(r1+2)] = f5;
+	heapFloat[(r1+3)] = f7;
+	return;
+}
+
+function _ZN16btDbvtBroadphase10printStatsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN16btDbvtBroadphase9resetPoolEP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = 0;
+	r3 = heap32[(r1+14)];
+	r4 = heap32[(r1+4)];
+	r3 = (r2 - r3)|0;
+if(!(r4 !=r3)) //_LBB100_18
+{
+	r3 = heap32[(r1+1)];
+if(!(r3 ==0)) //_LBB100_3
+{
+	r4 = (r0 + 4)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r3;
+	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
+}
+	r3 = heap32[(r1+2)];
+if(!(r3 ==0)) //_LBB100_5
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = -1;
+	r3 = heap32[(r1+9)];
+if(!(r3 ==0)) //_LBB100_9
+{
+	r4 = heapU8[r0+40];
+if(!(r4 ==0)) //_LBB100_8
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r1+9)] = 0;
+}
+	r3 = 1;
+	heap8[r0+40] = r3;
+	heap32[(r1+9)] = 0;
+	heap32[(r1+7)] = 0;
+	heap32[(r1+8)] = 0;
+	heap32[(r1+5)] = 0;
+	r4 = heap32[(r1+11)];
+if(!(r4 ==0)) //_LBB100_11
+{
+	r5 = (r0 + 44)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
+}
+	r4 = heap32[(r1+12)];
+if(!(r4 ==0)) //_LBB100_13
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r6 = heap32[(r5)];
+	r6 = (r6 + 1)|0;
+	r4 = r4 >> 2;
+	heap32[(r5)] = r6;
+	r4 = heap32[(r4+-1)];
+	heap32[(g0)] = r4;
+	free(i7);
+}
+	heap32[(r1+12)] = 0;
+	heap32[(r1+13)] = -1;
+	r4 = heap32[(r1+19)];
+if(!(r4 ==0)) //_LBB100_17
+{
+	r5 = heapU8[r0+80];
+if(!(r5 ==0)) //_LBB100_16
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r6 = heap32[(r5)];
+	r6 = (r6 + 1)|0;
+	r4 = r4 >> 2;
+	heap32[(r5)] = r6;
+	r4 = heap32[(r4+-1)];
+	heap32[(g0)] = r4;
+	free(i7);
+}
+	heap32[(r1+19)] = 0;
+}
+	heap8[r0+80] = r3;
+	heap32[(r1+19)] = 0;
+	heap32[(r1+17)] = 0;
+	heap32[(r1+18)] = 0;
+	heap32[(r1+15)] = 0;
+	heap8[r0+153] = r2;
+	heap8[r0+154] = r3;
+	heap32[(r1+26)] = 0;
+	heap32[(r1+31)] = 0;
+	heap32[(r1+27)] = 1;
+	heap32[(r1+28)] = 0;
+	heap32[(r1+29)] = 10;
+	heap32[(r1+30)] = 1;
+	heap32[(r1+32)] = 0;
+	heap32[(r1+33)] = 0;
+	heap32[(r1+34)] = 0;
+	heap32[(r1+37)] = 0;
+	heap32[(r1+35)] = 0;
+	heap32[(r1+36)] = 0;
+	heap32[(r1+21)] = 0;
+	heap32[(r1+22)] = 0;
+	heap32[(r1+23)] = 0;
+}
+	return;
+}
+
+function _ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+_1: do {
+if(!(r0 ==0)) //_LBB101_57
+{
+	r1 = heap32[(fp+2)];
+if(!(r1 ==0)) //_LBB101_57
+{
+	r2 = heap32[(fp)];
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+6)];
+if(!(r4 >127)) //_LBB101_17
+{
+	r5 = heap32[(r3+7)];
+if(!(r5 >127)) //_LBB101_17
+{
+	r5 = gNumAlignedAllocs;
+	r5 = r5 >> 2;
+	r6 = heap32[(r5)];
+	r6 = (r6 + 1)|0;
+	heap32[(r5)] = r6;
+	heap32[(g0)] = 1043;
+	malloc(i7);
+	r5 = r_g0;
+	if(r5 !=0) //_LBB101_6
+{
+	r6 = 0;
+	r7 = (r5 + 4)|0;
+	r6 = (r6 - r7)|0;
+	r6 = r6 & 15;
+	r6 = (r5 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r5;
+	r5 = r7;
+}
+	r6 = (r2 + 32)|0;
+	if(r4 <1) //_LBB101_9
+{
+	r4 = r6 >> 2;
+	r8 = heap32[(r4)];
+}
+else{
+	r7 = 0;
+_13: while(true){
+	r8 = r6 >> 2;
+	r8 = heap32[(r8)];
+	r9 = r7 << 3;
+	r10 = (r8 + r9)|0;
+	r10 = r10 >> 2;
+	r9 = (r5 + r9)|0;
+	r11 = heap32[(r10+1)];
+	r10 = heap32[(r10)];
+	r9 = r9 >> 2;
+	r7 = (r7 + 1)|0;
+	heap32[(r9)] = r10;
+	heap32[(r9+1)] = r11;
+if(!(r4 !=r7)) //_LBB101_10
+{
+break _13;
+}
+}
+	r6 = (r2 + 32)|0;
+}
+if(!(r8 ==0)) //_LBB101_16
+{
+	r4 = heapU8[r2+36];
+if(!(r4 ==0)) //_LBB101_15
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r7 = heap32[(r4)];
+	r7 = (r7 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r4)] = r7;
+	r4 = heap32[(r8+-1)];
+	heap32[(g0)] = r4;
+	free(i7);
+}
+	r4 = r6 >> 2;
+	heap32[(r4)] = 0;
+}
+	r4 = 1;
+	r6 = r6 >> 2;
+	heap8[r2+36] = r4;
+	heap32[(r6)] = r5;
+	heap32[(r3+7)] = 128;
+}
+}
+	r4 = heap32[(fp+3)];
+	heap32[(r3+6)] = 128;
+	r5 = heap32[(r3+8)];
+	r5 = r5 >> 2;
+	r6 = 1;
+	r7 = 124;
+	heap32[(r5)] = r0;
+	heap32[(r5+1)] = r1;
+_24: while(true){
+	r0 = r6;
+	r6 = (r0 + -1)|0;
+	r1 = heap32[(r3+8)];
+	r5 = r6 << 3;
+	r5 = (r1 + r5)|0;
+	r5 = r5 >> 2;
+	r8 = heap32[(r5)];
+	r5 = heap32[(r5+1)];
+	if(r6 >r7) //_LBB101_20
+{
+	r7 = heap32[(r3+6)];
+	r9 = r7 << 1;
+_28: do {
+if(!(r7 >r9)) //_LBB101_38
+{
+if(!(r7 >=r9)) //_LBB101_38
+{
+	r10 = heap32[(r3+7)];
+	if(r10 <r9) //_LBB101_24
+{
+	if(r9 !=0) //_LBB101_26
+{
+	r10 = gNumAlignedAllocs;
+	r10 = r10 >> 2;
+	r11 = heap32[(r10)];
+	r12 = r7 << 4;
+	r11 = (r11 + 1)|0;
+	r12 = r12 | 3;
+	heap32[(r10)] = r11;
+	r10 = (r12 + 16)|0;
+	heap32[(g0)] = r10;
+	malloc(i7);
+	r10 = r_g0;
+	if(r10 !=0) //_LBB101_28
+{
+	r11 = 0;
+	r12 = (r10 + 4)|0;
+	r11 = (r11 - r12)|0;
+	r11 = r11 & 15;
+	r11 = (r10 + r11)|0;
+	r12 = (r11 + 4)|0;
+	r11 = r11 >> 2;
+	heap32[(r11)] = r10;
+	r10 = r12;
+}
+}
+else{
+	r10 = 0;
+}
+if(!(r7 <1)) //_LBB101_32
+{
+	r11 = (r1 + 4)|0;
+	r12 = (r10 + 4)|0;
+	r13 = r7;
+_40: while(true){
+	r14 = r11 >> 2;
+	r15 = heap32[(r14)];
+	r14 = heap32[(r14+-1)];
+	r16 = r12 >> 2;
+	r13 = (r13 + -1)|0;
+	r11 = (r11 + 8)|0;
+	r12 = (r12 + 8)|0;
+	heap32[(r16+-1)] = r14;
+	heap32[(r16)] = r15;
+if(!(r13 !=0)) //_LBB101_31
+{
+break _40;
+}
+}
+}
+if(!(r1 ==0)) //_LBB101_36
+{
+	r11 = heapU8[r2+36];
+if(!(r11 ==0)) //_LBB101_35
+{
+	r11 = gNumAlignedFree;
+	r11 = r11 >> 2;
+	r12 = heap32[(r11)];
+	r12 = (r12 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r11)] = r12;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r3+8)] = 0;
+}
+	r1 = 1;
+	heap8[r2+36] = r1;
+	heap32[(r3+8)] = r10;
+	heap32[(r3+7)] = r9;
+if(!(r7 <r9)) //_LBB101_23
+{
+break _28;
+}
+}
+_49: while(true){
+	r7 = (r7 + -1)|0;
+if(!(r7 !=0)) //_LBB101_37
+{
+break _28;
+}
+}
+}
+}
+} while(0);
+	r7 = (r9 + -4)|0;
+	heap32[(r3+6)] = r9;
+}
+	if(r8 !=r5) //_LBB101_43
+{
+	r1 = r8 >> 2;
+	r9 = r5 >> 2;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r9+4)];
+if(!(f0 >f1)) //_LBB101_41
+{
+	f0 = heapFloat[(r1+4)];
+	f1 = heapFloat[(r9)];
+if(!(f0 <f1)) //_LBB101_41
+{
+	f0 = heapFloat[(r1+1)];
+	f1 = heapFloat[(r9+5)];
+if(!(f0 >f1)) //_LBB101_41
+{
+	f0 = heapFloat[(r1+5)];
+	f1 = heapFloat[(r9+1)];
+if(!(f0 <f1)) //_LBB101_41
+{
+	f0 = heapFloat[(r1+2)];
+	f1 = heapFloat[(r9+6)];
+if(!(f0 >f1)) //_LBB101_41
+{
+	f0 = heapFloat[(r1+6)];
+	f1 = heapFloat[(r9+2)];
+if(!(f0 <f1)) //_LBB101_41
+{
+	r10 = heap32[(r9+10)];
+	r11 = heap32[(r1+10)];
+	if(r11 ==0) //_LBB101_53
+{
+	if(r10 ==0) //_LBB101_55
+{
+	r0 = r4 >> 2;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+2)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r5;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+}
+else{
+	r5 = r0 << 3;
+	r6 = heap32[(r3+8)];
+	r6 = (r6 + r5)|0;
+	r1 = heap32[(r9+9)];
+	r6 = r6 >> 2;
+	heap32[(r6+-2)] = r8;
+	heap32[(r6+-1)] = r1;
+	r6 = heap32[(r3+8)];
+	r5 = (r6 + r5)|0;
+	r1 = heap32[(r9+10)];
+	r5 = r5 >> 2;
+	r6 = (r0 + 1)|0;
+	heap32[(r5)] = r8;
+	heap32[(r5+1)] = r1;
+}
+}
+else{
+	r6 = heap32[(r3+8)];
+	if(r10 ==0) //_LBB101_52
+{
+	r8 = r0 << 3;
+	r6 = (r6 + r8)|0;
+	r6 = r6 >> 2;
+	r9 = heap32[(r1+9)];
+	heap32[(r6+-2)] = r9;
+	heap32[(r6+-1)] = r5;
+	r6 = heap32[(r3+8)];
+	r6 = (r6 + r8)|0;
+	r8 = heap32[(r1+10)];
+	r9 = r6 >> 2;
+	r6 = (r0 + 1)|0;
+	heap32[(r9)] = r8;
+	heap32[(r9+1)] = r5;
+}
+else{
+	r5 = r0 << 3;
+	r6 = (r6 + r5)|0;
+	r8 = heap32[(r9+9)];
+	r10 = heap32[(r1+9)];
+	r6 = r6 >> 2;
+	heap32[(r6+-2)] = r10;
+	heap32[(r6+-1)] = r8;
+	r6 = heap32[(r3+8)];
+	r6 = (r6 + r5)|0;
+	r8 = heap32[(r9+9)];
+	r10 = heap32[(r1+10)];
+	r6 = r6 >> 2;
+	heap32[(r6)] = r10;
+	heap32[(r6+1)] = r8;
+	r6 = heap32[(r3+8)];
+	r6 = (r5 + r6)|0;
+	r8 = heap32[(r9+10)];
+	r10 = heap32[(r1+9)];
+	r6 = r6 >> 2;
+	heap32[(r6+2)] = r10;
+	heap32[(r6+3)] = r8;
+	r6 = heap32[(r3+8)];
+	r6 = (r5 + r6)|0;
+	r5 = heap32[(r9+10)];
+	r1 = heap32[(r1+10)];
+	r8 = r6 >> 2;
+	r6 = (r0 + 3)|0;
+	heap32[(r8+4)] = r1;
+	heap32[(r8+5)] = r5;
+}
+}
+}
+}
+}
+}
+}
+}
+}
+else{
+	r5 = r8 >> 2;
+	r8 = heap32[(r5+10)];
+	if(r8 !=0) //_LBB101_42
+{
+	r6 = r0 << 3;
+	r8 = heap32[(r3+8)];
+	r8 = (r8 + r6)|0;
+	r1 = heap32[(r5+9)];
+	r8 = r8 >> 2;
+	heap32[(r8+-2)] = r1;
+	heap32[(r8+-1)] = r1;
+	r8 = heap32[(r3+8)];
+	r8 = (r8 + r6)|0;
+	r1 = heap32[(r5+10)];
+	r8 = r8 >> 2;
+	heap32[(r8)] = r1;
+	heap32[(r8+1)] = r1;
+	r8 = heap32[(r3+8)];
+	r6 = (r6 + r8)|0;
+	r8 = heap32[(r5+10)];
+	r5 = heap32[(r5+9)];
+	r1 = r6 >> 2;
+	r6 = (r0 + 2)|0;
+	heap32[(r1+2)] = r5;
+	heap32[(r1+3)] = r8;
+}
+}
+	if(r6 !=0) //_LBB101_18
+{
+continue _24;
+}
+else{
+break _1;
+}
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+if(!(r0 ==0)) //_LBB102_46
+{
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = gNumAlignedAllocs;
+	r1 = r1 >> 2;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r1+1)];
+	f2 = heapFloat[(r1+2)];
+	f3 = heapFloat[(r1+4)];
+	f4 = heapFloat[(r1+5)];
+	f5 = heapFloat[(r1+6)];
+	r1 = (r4 + 1)|0;
+	heap32[(r3)] = r1;
+	heap32[(g0)] = 275;
+	malloc(i7);
+	r1 = r_g0;
+	if(r1 !=0) //_LBB102_3
+{
+	r4 = 0;
+	r5 = (r1 + 4)|0;
+	r4 = (r4 - r5)|0;
+	r4 = r4 & 15;
+	r4 = (r1 + r4)|0;
+	r5 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r1;
+	r1 = r5;
+}
+	r4 = 1;
+	r5 = 64;
+	r6 = r1 >> 2;
+	heap32[(r6)] = r0;
+_6: while(true){
+	r0 = r4;
+	r4 = (r0 + -1)|0;
+	r6 = r4 << 2;
+	r6 = (r1 + r6)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+	r7 = r6 >> 2;
+	f6 = heapFloat[(r7)];
+	if(f6 <=f3) //_LBB102_7
+{
+	f6 = heapFloat[(r7+4)];
+if(!(f6 <f0)) //_LBB102_6
+{
+	f6 = heapFloat[(r7+1)];
+if(!(f6 >f4)) //_LBB102_6
+{
+	f6 = heapFloat[(r7+5)];
+if(!(f6 <f1)) //_LBB102_6
+{
+	f6 = heapFloat[(r7+2)];
+if(!(f6 >f5)) //_LBB102_6
+{
+	f6 = heapFloat[(r7+6)];
+if(!(f6 <f2)) //_LBB102_6
+{
+	r8 = heap32[(r7+10)];
+	if(r8 ==0) //_LBB102_42
+{
+	r0 = r2 >> 2;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+3)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+}
+else{
+	r6 = heap32[(r7+9)];
+	if(r5 ==r4) //_LBB102_15
+{
+	r8 = 1;
+	r9 = r4 << 1;
+	r8 = r4 == 0 ? r8 : r9;
+if(!(r5 >=r8)) //_LBB102_14
+{
+	if(r8 !=0) //_LBB102_18
+{
+	r5 = heap32[(r3)];
+	r9 = r8 << 2;
+	r5 = (r5 + 1)|0;
+	r9 = r9 | 3;
+	heap32[(r3)] = r5;
+	r5 = (r9 + 16)|0;
+	heap32[(g0)] = r5;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB102_20
+{
+	r5 = 0;
+	r10 = (r9 + 4)|0;
+	r5 = (r5 - r10)|0;
+	r5 = r5 & 15;
+	r5 = (r9 + r5)|0;
+	r10 = (r5 + 4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r9;
+	r9 = r10;
+}
+}
+else{
+	r9 = 0;
+}
+if(!(r4 <1)) //_LBB102_24
+{
+	r4 = (r0 + -1)|0;
+	r5 = r1;
+	r10 = r9;
+_28: while(true){
+	r11 = r5 >> 2;
+	r4 = (r4 + -1)|0;
+	r12 = (r10 + 4)|0;
+	r5 = (r5 + 4)|0;
+	r10 = r10 >> 2;
+	r11 = heap32[(r11)];
+	heap32[(r10)] = r11;
+	r10 = r12;
+if(!(r4 !=0)) //_LBB102_23
+{
+break _28;
+}
+}
+}
+	if(r1 !=0) //_LBB102_26
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r4)] = r5;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+	r5 = r8;
+	r1 = r9;
+}
+else{
+	r5 = r8;
+	r1 = r9;
+}
+}
+}
+	r4 = r0 << 2;
+	r8 = (r1 + r4)|0;
+	r8 = r8 >> 2;
+	heap32[(r8+-1)] = r6;
+	r6 = heap32[(r7+10)];
+	if(r5 ==r0) //_LBB102_29
+{
+	r7 = 1;
+	r8 = r0 << 1;
+	r7 = r0 == 0 ? r7 : r8;
+if(!(r5 >=r7)) //_LBB102_28
+{
+	if(r7 !=0) //_LBB102_32
+{
+	r5 = heap32[(r3)];
+	r8 = r7 << 2;
+	r5 = (r5 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r3)] = r5;
+	r5 = (r8 + 16)|0;
+	heap32[(g0)] = r5;
+	malloc(i7);
+	r8 = r_g0;
+	if(r8 !=0) //_LBB102_34
+{
+	r5 = 0;
+	r9 = (r8 + 4)|0;
+	r5 = (r5 - r9)|0;
+	r5 = r5 & 15;
+	r5 = (r8 + r5)|0;
+	r9 = (r5 + 4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r8;
+	r8 = r9;
+}
+}
+else{
+	r8 = 0;
+}
+_43: do {
+if(!(r0 <1)) //_LBB102_38
+{
+	r5 = r1;
+	r9 = r8;
+	r10 = r0;
+_45: while(true){
+	r11 = r5 >> 2;
+	r10 = (r10 + -1)|0;
+	r12 = (r9 + 4)|0;
+	r5 = (r5 + 4)|0;
+	r9 = r9 >> 2;
+	r11 = heap32[(r11)];
+	heap32[(r9)] = r11;
+	r9 = r12;
+if(!(r10 !=0)) //_LBB102_37
+{
+break _43;
+}
+}
+}
+} while(0);
+	if(r1 !=0) //_LBB102_40
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r9 = heap32[(r5)];
+	r9 = (r9 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r5)] = r9;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+	r5 = r7;
+	r1 = r8;
+}
+else{
+	r5 = r7;
+	r1 = r8;
+}
+}
+}
+	r7 = (r1 + r4)|0;
+	r4 = (r0 + 1)|0;
+	r0 = r7 >> 2;
+	heap32[(r0)] = r6;
+}
+}
+}
+}
+}
+}
+}
+if(!(r4 >0)) //_LBB102_5
+{
+break _6;
+}
+}
+if(!(r1 ==0)) //_LBB102_46
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r2 = heap32[(r0)];
+	r2 = (r2 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r0)] = r2;
+	r0 = heap32[(r1+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+}
+	return;
+}
+
+function _ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -56;var g0 = i7>>2; // save stack
+	r0 = _ZTV20BroadphaseAabbTester;
+	r1 = sp + -8;
+	r0 = (r0 + 8)|0;
+	r2 = heap32[(fp+1)];
+	r3 = r1 >> 2;
+	r4 = heap32[(fp+3)];
+	heap32[(fp+-2)] = r0;
+	r0 = sp + -40;
+	r2 = r2 >> 2;
+	heap32[(r3+1)] = r4;
+	r3 = r0 >> 2;
+	heap32[(fp+-10)] = heap32[(r2)];
+	heap32[(r3+1)] = heap32[(r2+1)];
+	r4 = heap32[(fp+2)];
+	heap32[(r3+2)] = heap32[(r2+2)];
+	r4 = r4 >> 2;
+	heap32[(r3+3)] = heap32[(r2+3)];
+	heap32[(r3+4)] = heap32[(r4)];
+	heap32[(r3+5)] = heap32[(r4+1)];
+	r2 = heap32[(fp)];
+	heap32[(r3+6)] = heap32[(r4+2)];
+	r2 = r2 >> 2;
+	heap32[(r3+7)] = heap32[(r4+3)];
+	r3 = heap32[(r2+1)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r1;
+	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r1;
+	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
+	return;
+}
+
+function _ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + -64;var g0 = i7>>2; // save stack
+	r0 = gNumAlignedAllocs;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = (r1 + 1)|0;
+	heap32[(r0)] = r2;
+	heap32[(g0)] = 83;
+	malloc(i7);
+	r2 = r_g0;
+	r3 = heap32[(fp)];
+	r4 = heap32[(fp+1)];
+	r5 = heap32[(fp+2)];
+	r6 = heap32[(fp+4)];
+	r7 = heap32[(fp+5)];
+	r8 = heap32[(fp+6)];
+	if(r2 !=0) //_LBB104_2
+{
+	r9 = 0;
+	r10 = (r2 + 4)|0;
+	r9 = (r9 - r10)|0;
+	r9 = r9 & 15;
+	r9 = (r2 + r9)|0;
+	r10 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r2;
+	r2 = r10;
+}
+	r9 = r2 >> 2;
+	heap32[(r9)] = r6;
+	heap16[(r2+4)>>1] = r7;
+	r4 = r4 >> 2;
+	heap16[(r2+6)>>1] = r8;
+	f0 = heapFloat[(r4)];
+	heapFloat[(r9+4)] = f0;
+	f1 = heapFloat[(r4+1)];
+	heapFloat[(r9+5)] = f1;
+	f2 = heapFloat[(r4+2)];
+	heapFloat[(r9+6)] = f2;
+	f3 = heapFloat[(r4+3)];
+	r4 = r5 >> 2;
+	heapFloat[(r9+7)] = f3;
+	f4 = heapFloat[(r4)];
+	heapFloat[(r9+8)] = f4;
+	f5 = heapFloat[(r4+1)];
+	heapFloat[(r9+9)] = f5;
+	f6 = heapFloat[(r4+2)];
+	heapFloat[(r9+10)] = f6;
+	f7 = heapFloat[(r4+3)];
+	heapFloat[(r9+11)] = f7;
+	heap32[(r9+2)] = 0;
+	heap32[(r9+14)] = 0;
+	r4 = sp + -32;
+	heap32[(r9+13)] = 0;
+	r5 = r4 >> 2;
+	heapFloat[(fp+-8)] = f0;
+	heapFloat[(r5+1)] = f1;
+	heapFloat[(r5+2)] = f2;
+	heapFloat[(r5+3)] = f3;
+	heapFloat[(r5+4)] = f4;
+	heapFloat[(r5+5)] = f5;
+	heapFloat[(r5+6)] = f6;
+	r6 = r3 >> 2;
+	heapFloat[(r5+7)] = f7;
+	r5 = heap32[(r6+26)];
+	heap32[(r9+15)] = r5;
+	r5 = heap32[(r6+37)];
+	r5 = (r5 + 1)|0;
+	heap32[(r6+37)] = r5;
+	heap32[(r9+3)] = r5;
+	r5 = heap32[(r6+2)];
+	r7 = (r3 + 4)|0;
+	if(r5 ==0) //_LBB104_5
+{
+	r5 = (r1 + 2)|0;
+	heap32[(r0)] = r5;
+	heap32[(g0)] = 63;
+	malloc(i7);
+	r5 = r_g0;
+	if(r5 !=0) //_LBB104_7
+{
+	r0 = 0;
+	r1 = (r5 + 4)|0;
+	r0 = (r0 - r1)|0;
+	r0 = r0 & 15;
+	r0 = (r5 + r0)|0;
+	r1 = (r0 + 4)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r5;
+	r5 = r1;
+}
+}
+else{
+	heap32[(r6+2)] = 0;
+}
+	r0 = r5 >> 2;
+	heap32[(r0+8)] = 0;
+	heap32[(r0+9)] = r2;
+	heap32[(r0+10)] = 0;
+	heapFloat[(r0)] = f0;
+	heapFloat[(r0+1)] = f1;
+	heapFloat[(r0+2)] = f2;
+	heapFloat[(r0+3)] = f3;
+	heapFloat[(r0+4)] = f4;
+	heapFloat[(r0+5)] = f5;
+	heapFloat[(r0+6)] = f6;
+	heapFloat[(r0+7)] = f7;
+	r0 = heap32[(r6+1)];
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r5;
+	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
+	r0 = heap32[(r6+4)];
+	r0 = (r0 + 1)|0;
+	heap32[(r6+4)] = r0;
+	heap32[(r9+12)] = r5;
+	r0 = heap32[(r6+26)];
+	r0 = r0 << 2;
+	r0 = (r3 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r9+13)] = 0;
+	r1 = heap32[(r0+21)];
+	heap32[(r9+14)] = r1;
+if(!(r1 ==0)) //_LBB104_10
+{
+	r1 = r1 >> 2;
+	heap32[(r1+13)] = r2;
+}
+	heap32[(r0+21)] = r2;
+	r0 = heapU8[r3+153];
+if(!(r0 !=0)) //_LBB104_12
+{
+	r0 = _ZTV18btDbvtTreeCollider;
+	r0 = (r0 + 8)|0;
+	r1 = sp + -48;
+	r5 = r1 >> 2;
+	heap32[(fp+-12)] = r0;
+	heap32[(r5+1)] = r3;
+	heap32[(r5+2)] = r2;
+	r3 = heap32[(r6+1)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
+	r3 = heap32[(r6+11)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
+	heap32[(fp+-12)] = r0;
+}
+	r_g0 = r2;
+	return;
+}
+
+function _ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+if(!(r0 ==0)) //_LBB105_43
+{
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	f0 = heapFloat[(fp+4)];
+	r4 = heap32[(fp+5)];
+	r5 = heap32[(fp+6)];
+	r6 = heap32[(fp+7)];
+	r7 = gNumAlignedAllocs;
+	r7 = r7 >> 2;
+	r8 = heap32[(r7)];
+	r8 = (r8 + 1)|0;
+	heap32[(r7)] = r8;
+	heap32[(g0)] = 531;
+	malloc(i7);
+	r8 = r_g0;
+	if(r8 !=0) //_LBB105_3
+{
+	r9 = 0;
+	r10 = (r8 + 4)|0;
+	r9 = (r9 - r10)|0;
+	r9 = r9 & 15;
+	r9 = (r8 + r9)|0;
+	r10 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r8;
+	r8 = r10;
+}
+	r9 = 0;
+_6: while(true){
+	r10 = r9 << 2;
+	r10 = (r8 + r10)|0;
+	r9 = (r9 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = 0;
+if(!(r9 !=128)) //_LBB105_5
+{
+break _6;
+}
+}
+	r9 = 128;
+	r10 = 1;
+	r11 = 126;
+	r12 = r8 >> 2;
+	heap32[(r12)] = r0;
+	r0 = r9;
+	r12 = r10;
+_9: while(true){
+	r13 = r12;
+	r12 = (r13 + -1)|0;
+	r14 = r12 << 2;
+	r14 = (r8 + r14)|0;
+	r14 = r14 >> 2;
+	r14 = heap32[(r14)];
+	r15 = r14 >> 2;
+	r16 = r5 >> 2;
+	f1 = heapFloat[(r15+2)];
+	f2 = heapFloat[(r16+2)];
+	f3 = heapFloat[(r15+1)];
+	f4 = heapFloat[(r16+1)];
+	f5 = heapFloat[(r15)];
+	f6 = heapFloat[(r16)];
+	r16 = sp + -32;
+	f5 = f5-f6;
+	r17 = r16 >> 2;
+	f3 = f3-f4;
+	heapFloat[(fp+-8)] = f5;
+	f1 = f1-f2;
+	heapFloat[(r17+1)] = f3;
+	heapFloat[(r17+2)] = f1;
+	heap32[(r17+3)] = 0;
+	r18 = r4 >> 2;
+	f1 = heapFloat[(r15+6)];
+	f2 = heapFloat[(r18+2)];
+	f3 = heapFloat[(r15+5)];
+	f4 = heapFloat[(r18+1)];
+	f5 = heapFloat[(r15+4)];
+	f6 = heapFloat[(r18)];
+	f5 = f5-f6;
+	f3 = f3-f4;
+	heapFloat[(r17+4)] = f5;
+	f1 = f1-f2;
+	heapFloat[(r17+5)] = f3;
+	heapFloat[(r17+6)] = f1;
+	r18 = r3 >> 2;
+	heap32[(r17+7)] = 0;
+	r17 = heap32[(r18)];
+	r19 = heap32[(r18+1)];
+	r20 = (r10 - r19)|0;
+	r21 = r17 << 4;
+	r20 = r20 << 4;
+	r21 = (r16 + r21)|0;
+	r20 = (r16 + r20)|0;
+	r22 = r1 >> 2;
+	r21 = r21 >> 2;
+	r20 = r20 >> 2;
+	r23 = r2 >> 2;
+	f1 = heapFloat[(r21)];
+	f2 = heapFloat[(r22)];
+	f3 = heapFloat[(r20+1)];
+	f4 = heapFloat[(r22+1)];
+	f1 = f1-f2;
+	f5 = heapFloat[(r23)];
+	f3 = f3-f4;
+	f6 = heapFloat[(r23+1)];
+	f1 = f1*f5;
+	f3 = f3*f6;
+if(!(f1 >f3)) //_LBB105_9
+{
+	r17 = (r10 - r17)|0;
+	r17 = r17 << 4;
+	r19 = r19 << 4;
+	r17 = (r16 + r17)|0;
+	r19 = (r16 + r19)|0;
+	r17 = r17 >> 2;
+	r19 = r19 >> 2;
+	f7 = heapFloat[(r17)];
+	f8 = heapFloat[(r19+1)];
+	f2 = f7-f2;
+	f4 = f8-f4;
+	f2 = f2*f5;
+	f4 = f4*f6;
+	if(f4 <=f2) //_LBB105_10
+{
+	r17 = heap32[(r18+2)];
+	r18 = 1;
+	r18 = (r18 - r17)|0;
+	r18 = r18 << 4;
+	r18 = (r16 + r18)|0;
+	r18 = r18 >> 2;
+	f5 = heapFloat[(r18+2)];
+	f6 = heapFloat[(r22+2)];
+	f5 = f5-f6;
+	f7 = heapFloat[(r23+2)];
+	f1 = f1 < f4 ? f4 : f1;
+	f4 = f5*f7;
+if(!(f1 >f4)) //_LBB105_9
+{
+	r17 = r17 << 4;
+	r16 = (r16 + r17)|0;
+	r16 = r16 >> 2;
+	f5 = heapFloat[(r16+2)];
+	f5 = f5-f6;
+	f2 = f3 < f2 ? f3 : f2;
+	f3 = f5*f7;
+if(!(f3 >f2)) //_LBB105_9
+{
+	f1 = f1 < f3 ? f3 : f1;
+if(!(f1 >=f0)) //_LBB105_9
+{
+	f1 = f4 < f2 ? f4 : f2;
+	f2 =                         0;
+if(!(f1 <=f2)) //_LBB105_9
+{
+	r16 = heap32[(r15+10)];
+	if(r16 ==0) //_LBB105_39
+{
+	r13 = r6 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+3)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r14;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+}
+else{
+	if(r12 >r11) //_LBB105_17
+{
+	r14 = r0 << 1;
+_23: do {
+	if(r0 <=r14) //_LBB105_19
+{
+if(!(r0 >=r14)) //_LBB105_18
+{
+	if(r9 <r14) //_LBB105_22
+{
+	if(r14 !=0) //_LBB105_24
+{
+	r9 = heap32[(r7)];
+	r11 = r0 << 3;
+	r9 = (r9 + 1)|0;
+	r11 = r11 | 3;
+	heap32[(r7)] = r9;
+	r9 = (r11 + 16)|0;
+	heap32[(g0)] = r9;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB105_26
+{
+	r11 = 0;
+	r12 = (r9 + 4)|0;
+	r11 = (r11 - r12)|0;
+	r11 = r11 & 15;
+	r11 = (r9 + r11)|0;
+	r12 = (r11 + 4)|0;
+	r11 = r11 >> 2;
+	heap32[(r11)] = r9;
+	r9 = r12;
+}
+}
+else{
+	r9 = 0;
+}
+if(!(r0 <1)) //_LBB105_30
+{
+	r11 = r8;
+	r12 = r9;
+	r16 = r0;
+_35: while(true){
+	r17 = r11 >> 2;
+	r16 = (r16 + -1)|0;
+	r18 = (r12 + 4)|0;
+	r11 = (r11 + 4)|0;
+	r12 = r12 >> 2;
+	r17 = heap32[(r17)];
+	heap32[(r12)] = r17;
+	r12 = r18;
+if(!(r16 !=0)) //_LBB105_29
+{
+break _35;
+}
+}
+}
+if(!(r8 ==0)) //_LBB105_32
+{
+	r11 = gNumAlignedFree;
+	r11 = r11 >> 2;
+	r12 = heap32[(r11)];
+	r12 = (r12 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r11)] = r12;
+	r8 = heap32[(r8+-1)];
+	heap32[(g0)] = r8;
+	free(i7);
+}
+	if(r0 <r14) //_LBB105_34
+{
+	r8 = r9;
+	r9 = r14;
+}
+else{
+	r8 = r9;
+	r9 = r14;
+break _23;
+}
+}
+	r11 = r0;
+_45: while(true){
+	r12 = r0 << 2;
+	r12 = (r8 + r12)|0;
+	r11 = (r11 + -1)|0;
+	r0 = (r0 + 1)|0;
+	r12 = r12 >> 2;
+	heap32[(r12)] = 0;
+if(!(r11 !=0)) //_LBB105_36
+{
+break _23;
+}
+}
+}
+}
+} while(0);
+	r11 = (r14 + -2)|0;
+}
+else{
+	r14 = r0;
+}
+	r0 = r13 << 2;
+	r0 = (r8 + r0)|0;
+	r0 = r0 >> 2;
+	r12 = heap32[(r15+9)];
+	heap32[(r0+-1)] = r12;
+	r15 = heap32[(r15+10)];
+	r12 = (r13 + 1)|0;
+	heap32[(r0)] = r15;
+	r0 = r14;
+}
+}
+}
+}
+}
+}
+}
+if(!(r12 !=0)) //_LBB105_7
+{
+break _9;
+}
+}
+if(!(r8 ==0)) //_LBB105_43
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	r2 = r8 >> 2;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+}
+	return;
+}
+
+function _ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = _ZTV19BroadphaseRayTester;
+	r1 = sp + -8;
+	r0 = (r0 + 8)|0;
+	r2 = heap32[(fp+3)];
+	r3 = heap32[(fp)];
+	r4 = r1 >> 2;
+	heap32[(fp+-2)] = r0;
+	heap32[(r4+1)] = r2;
+	r0 = r2 >> 2;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r0+8)];
+	r4 = heap32[(r3+1)];
+	r5 = heap32[(fp+1)];
+	r6 = (r2 + 4)|0;
+	r2 = (r2 + 20)|0;
+	r7 = heap32[(fp+4)];
+	r8 = heap32[(fp+5)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r2;
+	heapFloat[(g0+4)] = f0;
+	heap32[(g0+5)] = r7;
+	heap32[(g0+6)] = r8;
+	heap32[(g0+7)] = r1;
+	_ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(i7);
+	f0 = heapFloat[(r0+8)];
+	r0 = heap32[(r3+11)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r2;
+	heapFloat[(g0+4)] = f0;
+	heap32[(g0+5)] = r7;
+	heap32[(g0+6)] = r8;
+	heap32[(g0+7)] = r1;
+	_ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(i7);
+	return;
+}
+
+function _ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(r1+12)];
+	r5 = heap32[(r1+15)];
+	if(r5 !=2) //_LBB107_4
+{
+	r5 = (r2 + 4)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	r5 = r2 >> 2;
+	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
+	r6 = heap32[(r5+2)];
+if(!(r6 ==0)) //_LBB107_6
+{
+	r7 = gNumAlignedFree;
+	r7 = r7 >> 2;
+	r8 = heap32[(r7)];
+	r8 = (r8 + 1)|0;
+	r6 = r6 >> 2;
+	heap32[(r7)] = r8;
+	r6 = heap32[(r6+-1)];
+	heap32[(g0)] = r6;
+	free(i7);
+}
+	heap32[(r5+2)] = r4;
+	r4 = heap32[(r5+4)];
+	r4 = (r4 + -1)|0;
+	heap32[(r5+4)] = r4;
+}
+else{
+	r5 = (r2 + 44)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	r5 = r2 >> 2;
+	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
+	r6 = heap32[(r5+12)];
+if(!(r6 ==0)) //_LBB107_3
+{
+	r7 = gNumAlignedFree;
+	r7 = r7 >> 2;
+	r8 = heap32[(r7)];
+	r8 = (r8 + 1)|0;
+	r6 = r6 >> 2;
+	heap32[(r7)] = r8;
+	r6 = heap32[(r6+-1)];
+	heap32[(g0)] = r6;
+	free(i7);
+}
+	heap32[(r5+12)] = r4;
+	r4 = heap32[(r5+14)];
+	r4 = (r4 + -1)|0;
+	heap32[(r5+14)] = r4;
+}
+	r4 = heap32[(r1+13)];
+	r5 = heap32[(r1+14)];
+	if(r4 ==0) //_LBB107_9
+{
+	r4 = heap32[(r1+15)];
+	r4 = r4 << 2;
+	r4 = (r2 + r4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4+21)] = r5;
+}
+else{
+	r4 = r4 >> 2;
+	heap32[(r4+14)] = r5;
+}
+	r4 = heap32[(r1+14)];
+if(!(r4 ==0)) //_LBB107_12
+{
+	r4 = r4 >> 2;
+	r5 = heap32[(r1+13)];
+	heap32[(r4+13)] = r5;
+}
+	r4 = r2 >> 2;
+	r4 = heap32[(r4+24)];
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+4)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+if(!(r0 ==0)) //_LBB107_14
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r3 = heap32[(r0)];
+	r3 = (r3 + 1)|0;
+	heap32[(r0)] = r3;
+	r0 = heap32[(r1+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = 1;
+	heap8[r2+154] = r0;
+	return;
+}
+
+function _ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+4)];
+	r3 = heap32[(r1+28)];
+	r2 = (r3 * r2)|0;
+	r2 = (r2 / 100)|0;
+	r3 = (r0 + 4)|0;
+	r2 = (r2 + 1)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	_ZN6btDbvt19optimizeIncrementalEi(i7);
+	r2 = heap32[(r1+31)];
+if(!(r2 ==0)) //_LBB108_2
+{
+	r2 = heap32[(r1+14)];
+	r4 = heap32[(r1+27)];
+	r2 = (r4 * r2)|0;
+	r4 = (r2 / 100)|0;
+	r5 = (r0 + 44)|0;
+	r4 = (r4 + 1)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	_ZN6btDbvt19optimizeIncrementalEi(i7);
+	r2 = (r2 / -100)|0;
+	r4 = heap32[(r1+31)];
+	r2 = (r2 + r4)|0;
+	r2 = (r2 + -1)|0;
+	r4 = 0;
+	r2 = r2 < 0 ? r4 : r2;
+	heap32[(r1+31)] = r2;
+}
+	r2 = heap32[(r1+26)];
+	r2 = (r2 + 1)|0;
+	r4 = r2 >>> 31;
+	r4 = (r2 + r4)|0;
+	r4 = r4 & -2;
+	r2 = (r2 - r4)|0;
+	r4 = r2 << 2;
+	r4 = (r0 + r4)|0;
+	r4 = r4 >> 2;
+	heap32[(r1+26)] = r2;
+	r2 = heap32[(r4+21)];
+if(!(r2 ==0)) //_LBB108_20
+{
+	r4 = (r0 + 44)|0;
+_6: while(true){
+	r5 = r2 >> 2;
+	r6 = heap32[(r5+13)];
+	r7 = heap32[(r5+14)];
+	if(r6 ==0) //_LBB108_6
+{
+	r6 = heap32[(r5+15)];
+	r6 = r6 << 2;
+	r6 = (r0 + r6)|0;
+	r6 = r6 >> 2;
+	heap32[(r6+21)] = r7;
+}
+else{
+	r6 = r6 >> 2;
+	heap32[(r6+14)] = r7;
+}
+	r6 = heap32[(r5+14)];
+if(!(r6 ==0)) //_LBB108_9
+{
+	r6 = r6 >> 2;
+	r8 = heap32[(r5+13)];
+	heap32[(r6+13)] = r8;
+}
+	heap32[(r5+13)] = 0;
+	r6 = heap32[(r1+23)];
+	heap32[(r5+14)] = r6;
+	r6 = heap32[(r1+23)];
+if(!(r6 ==0)) //_LBB108_11
+{
+	r6 = r6 >> 2;
+	heap32[(r6+13)] = r2;
+}
+	heap32[(r1+23)] = r2;
+	r6 = heap32[(r5+12)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r6;
+	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
+	r8 = heap32[(r1+2)];
+if(!(r8 ==0)) //_LBB108_13
+{
+	r9 = gNumAlignedFree;
+	r9 = r9 >> 2;
+	r10 = heap32[(r9)];
+	r10 = (r10 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r9)] = r10;
+	r8 = heap32[(r8+-1)];
+	heap32[(g0)] = r8;
+	free(i7);
+}
+	heap32[(r1+2)] = r6;
+	r6 = heap32[(r1+4)];
+	r6 = (r6 + -1)|0;
+	heap32[(r1+4)] = r6;
+	r6 = heap32[(r1+12)];
+	f0 = heapFloat[(r5+4)];
+	f1 = heapFloat[(r5+5)];
+	f2 = heapFloat[(r5+6)];
+	f3 = heapFloat[(r5+7)];
+	f4 = heapFloat[(r5+8)];
+	f5 = heapFloat[(r5+9)];
+	f6 = heapFloat[(r5+10)];
+	f7 = heapFloat[(r5+11)];
+	if(r6 ==0) //_LBB108_15
+{
+	r6 = gNumAlignedAllocs;
+	r6 = r6 >> 2;
+	r8 = heap32[(r6)];
+	r8 = (r8 + 1)|0;
+	heap32[(r6)] = r8;
+	heap32[(g0)] = 63;
+	malloc(i7);
+	r6 = r_g0;
+	if(r6 !=0) //_LBB108_17
+{
+	r8 = 0;
+	r9 = (r6 + 4)|0;
+	r8 = (r8 - r9)|0;
+	r8 = r8 & 15;
+	r8 = (r6 + r8)|0;
+	r9 = (r8 + 4)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = r6;
+	r6 = r9;
+}
+}
+else{
+	heap32[(r1+12)] = 0;
+}
+	r8 = r6 >> 2;
+	heap32[(r8+8)] = 0;
+	heap32[(r8+9)] = r2;
+	heap32[(r8+10)] = 0;
+	heapFloat[(r8)] = f0;
+	heapFloat[(r8+1)] = f1;
+	heapFloat[(r8+2)] = f2;
+	heapFloat[(r8+3)] = f3;
+	heapFloat[(r8+4)] = f4;
+	heapFloat[(r8+5)] = f5;
+	heapFloat[(r8+6)] = f6;
+	heapFloat[(r8+7)] = f7;
+	r2 = heap32[(r1+11)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r6;
+	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
+	r2 = heap32[(r1+14)];
+	r2 = (r2 + 1)|0;
+	heap32[(r1+14)] = r2;
+	heap32[(r5+12)] = r6;
+	heap32[(r5+15)] = 2;
+	r2 = r7;
+if(!(r7 !=0)) //_LBB108_4
+{
+break _6;
+}
+}
+	r2 = heap32[(r1+14)];
+	r4 = 1;
+	heap32[(r1+31)] = r2;
+	heap8[r0+154] = r4;
+}
+	r2 = _ZTV18btDbvtTreeCollider;
+	r4 = sp + -32;
+	r2 = (r2 + 8)|0;
+	r5 = r4 >> 2;
+	heap32[(fp+-8)] = r2;
+	heap32[(r5+1)] = r0;
+	r5 = heapU8[r0+153];
+if(!(r5 ==0)) //_LBB108_23
+{
+	r5 = heap32[(r1+11)];
+	r6 = heap32[(r1+1)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r4;
+	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
+	r5 = heapU8[r0+153];
+if(!(r5 ==0)) //_LBB108_23
+{
+	r5 = heap32[(r1+1)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r4;
+	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
+}
+}
+	r3 = heap32[(fp+1)];
+	heap32[(fp+-8)] = r2;
+	r2 = heapU8[r0+154];
+_32: do {
+if(!(r2 ==0)) //_LBB108_40
+{
+	r2 = heap32[(r1+24)];
+	r4 = r2 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r2 = r_g0;
+	r4 = r2 >> 2;
+	r4 = heap32[(r4+1)];
+if(!(r4 <1)) //_LBB108_40
+{
+	r5 = heap32[(r1+29)];
+	r5 = (r5 * r4)|0;
+	r6 = heap32[(r1+30)];
+	r5 = (r5 / 100)|0;
+	r5 = r6 > r5 ? r6 : r5;
+	r5 = r4 < r5 ? r4 : r5;
+	if(r5 >0) //_LBB108_27
+{
+	r4 = 0;
+_37: while(true){
+	r6 = r2 >> 2;
+	r7 = heap32[(r1+36)];
+	r7 = (r7 + r4)|0;
+	r8 = heap32[(r6+1)];
+	r7 = (r7 % r8)|0;
+	r8 = heap32[(r6+3)];
+	r7 = r7 << 4;
+	r7 = (r8 + r7)|0;
+	r7 = r7 >> 2;
+	r8 = heap32[(r7+1)];
+	r7 = heap32[(r7)];
+	r9 = r8 >> 2;
+	r10 = r7 >> 2;
+	r9 = heap32[(r9+12)];
+	r10 = heap32[(r10+12)];
+	r10 = r10 >> 2;
+	r9 = r9 >> 2;
+	f0 = heapFloat[(r10)];
+	f1 = heapFloat[(r9+4)];
+	if(f0 >f1) //_LBB108_35
+{
+__label__ = 32;
+}
+else{
+	f0 = heapFloat[(r10+4)];
+	f1 = heapFloat[(r9)];
+	if(f0 <f1) //_LBB108_35
+{
+__label__ = 32;
+}
+else{
+	f0 = heapFloat[(r10+1)];
+	f1 = heapFloat[(r9+5)];
+	if(f0 >f1) //_LBB108_35
+{
+__label__ = 32;
+}
+else{
+	f0 = heapFloat[(r10+5)];
+	f1 = heapFloat[(r9+1)];
+	if(f0 <f1) //_LBB108_35
+{
+__label__ = 32;
+}
+else{
+	f0 = heapFloat[(r10+2)];
+	f1 = heapFloat[(r9+6)];
+	if(f0 >f1) //_LBB108_35
+{
+__label__ = 32;
+}
+else{
+	f0 = heapFloat[(r10+6)];
+	f1 = heapFloat[(r9+2)];
+	if(f0 <f1) //_LBB108_35
+{
+__label__ = 32;
+}
+else{
+__label__ = 33;
+}
+}
+}
+}
+}
+}
+if (__label__ == 32){
+	r9 = heap32[(r1+24)];
+	r10 = r9 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+3)];
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r3;
+	r5 = (r5 + -1)|0;
+	r4 = (r4 + -1)|0;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+}
+	r4 = (r4 + 1)|0;
+if(!(r4 <r5)) //_LBB108_28
+{
+break _37;
+}
+}
+	r4 = heap32[(r6+1)];
+	if(r4 <1) //_LBB108_39
+{
+	heap32[(r1+36)] = 0;
+break _32;
+}
+}
+	r2 = heap32[(r1+36)];
+	r2 = (r2 + r5)|0;
+	r2 = (r2 % r4)|0;
+	heap32[(r1+36)] = r2;
+}
+}
+} while(0);
+	r2 = heap32[(r1+35)];
+	r2 = (r2 + 1)|0;
+	heap32[(r1+35)] = r2;
+	r2 = 0;
+	heap32[(r1+30)] = 1;
+	heap8[r0+154] = r2;
+	r0 = heap32[(r1+32)];
+	if(r0 ==0) //_LBB108_42
+{
+	heap32[(r1+34)] = 0;
+	r4 = heap32[(r1+33)];
+}
+else{
+	r4 = heap32[(r1+33)];
+	f0 = uint(r4); //fuitos r4, f0
+	f1 = uint(r0); //fuitos r0, f1
+	f0 = f0/f1;
+	heapFloat[(r1+34)] = f0;
+}
+	r4 = r4 >>> 1;
+	r0 = r0 >>> 1;
+	heap32[(r1+33)] = r4;
+	heap32[(r1+32)] = r0;
+	r0 = heap32[(r1+24)];
+	r4 = r0 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+14)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB108_65
+{
+	r0 = heap32[(r1+24)];
+	r4 = r0 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r0 = r_g0;
+	r4 = r0 >> 2;
+	r4 = heap32[(r4+1)];
+if(!(r4 <2)) //_LBB108_46
+{
+	r4 = (r4 + -1)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r4;
+	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
+}
+	r4 = r2;
+	r5 = r2;
+	r6 = r2;
+	r7 = r2;
+_61: while(true){
+	r8 = r0 >> 2;
+	r9 = heap32[(r8+1)];
+	if(r9 >r7) //_LBB108_47
+{
+	r8 = heap32[(r8+3)];
+	r9 = r7 << 4;
+	r9 = (r8 + r9)|0;
+	r9 = r9 >> 2;
+	r10 = heap32[(r9)];
+	r11 = r7 << 2;
+	r12 = heap32[(r9+1)];
+	if(r10 !=r4) //_LBB108_49
+{
+__label__ = 46;
+}
+else{
+	if(r12 ==r5) //_LBB108_56
+{
+	r4 = heap32[(r9+2)];
+	if(r4 ==0) //_LBB108_58
+{
+__label__ = 54;
+}
+else{
+__label__ = 53;
+break _61;
+}
+}
+else{
+__label__ = 46;
+}
+}
+if (__label__ == 46){
+	r4 = r12 >> 2;
+	r5 = r10 >> 2;
+	r4 = heap32[(r4+12)];
+	r5 = heap32[(r5+12)];
+	r5 = r5 >> 2;
+	r4 = r4 >> 2;
+	f0 = heapFloat[(r5)];
+	f1 = heapFloat[(r4+4)];
+	if(f0 >f1) //_LBB108_58
+{
+__label__ = 54;
+}
+else{
+	f0 = heapFloat[(r5+4)];
+	f1 = heapFloat[(r4)];
+	if(f0 <f1) //_LBB108_58
+{
+__label__ = 54;
+}
+else{
+	f0 = heapFloat[(r5+1)];
+	f1 = heapFloat[(r4+5)];
+	if(f0 >f1) //_LBB108_58
+{
+__label__ = 54;
+}
+else{
+	f0 = heapFloat[(r5+5)];
+	f1 = heapFloat[(r4+1)];
+	if(f0 <f1) //_LBB108_58
+{
+__label__ = 54;
+}
+else{
+	f0 = heapFloat[(r5+2)];
+	f1 = heapFloat[(r4+6)];
+	if(f0 >f1) //_LBB108_58
+{
+__label__ = 54;
+}
+else{
+	f0 = heapFloat[(r5+6)];
+	f1 = heapFloat[(r4+2)];
+	if(f0 <f1) //_LBB108_58
+{
+__label__ = 54;
+}
+else{
+__label__ = 55;
+}
+}
+}
+}
+}
+}
+}
+if (__label__ == 54){
+	r4 = heap32[(r1+24)];
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+8)];
+	r9 = (r8 + r2)|0;
+	r11 = r11 << 2;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r3;
+	r4 = (r8 + r11)|0;
+	r4 = r4 >> 2;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r6 = (r6 + 1)|0;
+	heap32[(r4)] = 0;
+	heap32[(r4+1)] = 0;
+}
+	r7 = (r7 + 1)|0;
+	r2 = (r2 + 16)|0;
+	r4 = r10;
+	r5 = r12;
+}
+else{
+__label__ = 57;
+break _61;
+}
+}
+switch(__label__ ){//multiple entries
+case 57:
+	if(r9 >1) //_LBB108_63
+{
+	r9 = (r9 + -1)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r9;
+	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
+	r9 = heap32[(r8+1)];
+}
+	r1 = sp + -16;
+	r2 = r1 >> 2;
+	heap32[(fp+-4)] = 0;
+	heap32[(r2+1)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	r2 = (r9 - r6)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r1;
+	_ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7);
+break;
+case 53:
+	r8 = _2E_str314;
+	r0 = _2E_str18;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 469;
+	_assert(i7);
+break;
+}
+}
+	return;
+}
+
+function _ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+var __label__ = 0;
+	i7 = sp + -88;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0)];
+	r1 = sp + -32;
+	heapFloat[(fp+-8)] = f0;
+	f1 = heapFloat[(r0+1)];
+	r2 = r1 >> 2;
+	heapFloat[(r2+1)] = f1;
+	f2 = heapFloat[(r0+2)];
+	heapFloat[(r2+2)] = f2;
+	f3 = heapFloat[(r0+3)];
+	r3 = heap32[(fp+3)];
+	r3 = r3 >> 2;
+	heapFloat[(r2+3)] = f3;
+	f4 = heapFloat[(r3)];
+	heapFloat[(r2+4)] = f4;
+	f5 = heapFloat[(r3+1)];
+	heapFloat[(r2+5)] = f5;
+	f6 = heapFloat[(r3+2)];
+	heapFloat[(r2+6)] = f6;
+	f7 = heapFloat[(r3+3)];
+	r4 = heap32[(fp+1)];
+	r5 = heap32[(fp)];
+	r6 = r4 >> 2;
+	heapFloat[(r2+7)] = f7;
+	r7 = heap32[(r6+15)];
+_1: do {
+	if(r7 !=2) //_LBB109_9
+{
+	r2 = r5 >> 2;
+	r8 = heap32[(r2+32)];
+	r8 = (r8 + 1)|0;
+	heap32[(r2+32)] = r8;
+	r8 = heap32[(r6+12)];
+	r7 = r8 >> 2;
+	f8 = heapFloat[(r7)];
+if(!(f8 >f4)) //_LBB109_24
+{
+	f8 = heapFloat[(r7+4)];
+if(!(f8 <f0)) //_LBB109_24
+{
+	f8 = heapFloat[(r7+1)];
+if(!(f8 >f5)) //_LBB109_24
+{
+	f8 = heapFloat[(r7+5)];
+if(!(f8 <f1)) //_LBB109_24
+{
+	f8 = heapFloat[(r7+2)];
+if(!(f8 >f6)) //_LBB109_24
+{
+	f8 = heapFloat[(r7+6)];
+if(!(f8 <f2)) //_LBB109_24
+{
+	f0 = heapFloat[(r6+4)];
+	f1 = heapFloat[(r6+8)];
+	f1 = f1-f0;
+	f2 =                       0.5;
+	f3 = heapFloat[(r6+5)];
+	f4 = heapFloat[(r6+9)];
+	f4 = f4-f3;
+	f5 = heapFloat[(r0+1)];
+	f6 = heapFloat[(r0)];
+	f1 = f1*f2;
+	f7 = heapFloat[(r2+25)];
+	f8 = heapFloat[(r0+2)];
+	f9 = heapFloat[(r6+6)];
+	f10 = heapFloat[(r6+10)];
+	r7 = sp + -48;
+	f10 = f10-f9;
+	f4 = f4*f2;
+	f1 = f1*f7;
+	f2 = f10*f2;
+	f4 = f4*f7;
+	r9 = r7 >> 2;
+	heapFloat[(fp+-12)] = f1;
+	f2 = f2*f7;
+	heapFloat[(r9+1)] = f4;
+	heapFloat[(r9+2)] = f2;
+	heap32[(r9+3)] = 0;
+	f0 = f6-f0;
+	f6 =                         0;
+if(!(f0 >=f6)) //_LBB109_17
+{
+	f0 = -f1;
+	heapFloat[(fp+-12)] = f0;
+}
+	f0 = f5-f3;
+if(!(f0 >=f6)) //_LBB109_19
+{
+	f0 = -f4;
+	heapFloat[(r9+1)] = f0;
+}
+	f0 = f8-f9;
+if(!(f0 >=f6)) //_LBB109_21
+{
+	f0 = -f2;
+	heapFloat[(r9+2)] = f0;
+}
+	r9 = (r5 + 4)|0;
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = 1028443341;
+	_ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(i7);
+	r8 = r_g0;
+	if(r8 !=0) //_LBB109_23
+{
+	r7 = heap32[(r2+33)];
+	r8 = 1;
+	r7 = (r7 + 1)|0;
+	heap32[(r2+33)] = r7;
+break _1;
+}
+else{
+	r8 = 0;
+break _1;
+}
+}
+}
+}
+}
+}
+}
+	r1 = (r5 + 4)|0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r8;
+	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
+	r9 = r_g0;
+_23: do {
+	if(r9 !=0) //_LBB109_26
+{
+	r11 = heap32[(r2+3)];
+	if(r11 <0) //_LBB109_31
+{
+	r10 = heap32[(r2+1)];
+}
+else{
+	r12 = -1;
+_28: while(true){
+	r10 = r9;
+	r12 = (r12 + 1)|0;
+	if(r11 >r12) //_LBB109_30
+{
+	r9 = r10 >> 2;
+	r9 = heap32[(r9+8)];
+	if(r9 ==0) //_LBB109_29
+{
+break _23;
+}
+}
+else{
+break _23;
+}
+}
+}
+}
+else{
+	r10 = 0;
+}
+} while(0);
+	heapFloat[(r7)] = f0;
+	heapFloat[(r7+1)] = f1;
+	heapFloat[(r7+2)] = f2;
+	heapFloat[(r7+3)] = f3;
+	heapFloat[(r7+4)] = f4;
+	heapFloat[(r7+5)] = f5;
+	heapFloat[(r7+6)] = f6;
+	heapFloat[(r7+7)] = f7;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r8;
+	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
+	r1 = heap32[(r2+33)];
+	r8 = 1;
+	r1 = (r1 + 1)|0;
+	heap32[(r2+33)] = r1;
+}
+else{
+	r1 = heap32[(r6+12)];
+	r7 = (r5 + 44)|0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r1;
+	r7 = r5 >> 2;
+	_ZL10removeleafP6btDbvtP10btDbvtNode(i7);
+	r8 = heap32[(r7+12)];
+if(!(r8 ==0)) //_LBB109_3
+{
+	r9 = gNumAlignedFree;
+	r9 = r9 >> 2;
+	r10 = heap32[(r9)];
+	r10 = (r10 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r9)] = r10;
+	r8 = heap32[(r8+-1)];
+	heap32[(g0)] = r8;
+	free(i7);
+}
+	heap32[(r7+12)] = r1;
+	r1 = heap32[(r7+14)];
+	r1 = (r1 + -1)|0;
+	heap32[(r7+14)] = r1;
+	r1 = heap32[(r7+2)];
+	r8 = (r5 + 4)|0;
+	if(r1 ==0) //_LBB109_5
+{
+	r1 = gNumAlignedAllocs;
+	r1 = r1 >> 2;
+	r9 = heap32[(r1)];
+	r9 = (r9 + 1)|0;
+	heap32[(r1)] = r9;
+	heap32[(g0)] = 63;
+	malloc(i7);
+	r1 = r_g0;
+	if(r1 !=0) //_LBB109_7
+{
+	r9 = 0;
+	r10 = (r1 + 4)|0;
+	r9 = (r9 - r10)|0;
+	r9 = r9 & 15;
+	r9 = (r1 + r9)|0;
+	r10 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r1;
+	r1 = r10;
+}
+}
+else{
+	heap32[(r7+2)] = 0;
+}
+	r9 = r1 >> 2;
+	heap32[(r9+8)] = 0;
+	heap32[(r9+9)] = r4;
+	heap32[(r9+10)] = 0;
+	heap32[(r9)] = heap32[(fp+-8)];
+	heap32[(r9+1)] = heap32[(r2+1)];
+	heap32[(r9+2)] = heap32[(r2+2)];
+	heap32[(r9+3)] = heap32[(r2+3)];
+	heapFloat[(r9+4)] = f4;
+	heapFloat[(r9+5)] = f5;
+	heapFloat[(r9+6)] = f6;
+	heapFloat[(r9+7)] = f7;
+	r2 = heap32[(r7+1)];
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r1;
+	_ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7);
+	r2 = heap32[(r7+4)];
+	r2 = (r2 + 1)|0;
+	r8 = 1;
+	heap32[(r7+4)] = r2;
+	heap32[(r6+12)] = r1;
+}
+} while(0);
+	r1 = heap32[(r6+13)];
+	r2 = heap32[(r6+14)];
+	if(r1 ==0) //_LBB109_35
+{
+	r1 = heap32[(r6+15)];
+	r1 = r1 << 2;
+	r1 = (r5 + r1)|0;
+	r1 = r1 >> 2;
+	heap32[(r1+21)] = r2;
+}
+else{
+	r1 = r1 >> 2;
+	heap32[(r1+14)] = r2;
+}
+	r1 = heap32[(r6+14)];
+if(!(r1 ==0)) //_LBB109_38
+{
+	r1 = r1 >> 2;
+	r2 = heap32[(r6+13)];
+	heap32[(r1+13)] = r2;
+}
+	heap32[(r6+4)] = heap32[(r0)];
+	heap32[(r6+5)] = heap32[(r0+1)];
+	heap32[(r6+6)] = heap32[(r0+2)];
+	heap32[(r6+7)] = heap32[(r0+3)];
+	heap32[(r6+8)] = heap32[(r3)];
+	heap32[(r6+9)] = heap32[(r3+1)];
+	heap32[(r6+10)] = heap32[(r3+2)];
+	r0 = r5 >> 2;
+	heap32[(r6+11)] = heap32[(r3+3)];
+	r1 = heap32[(r0+26)];
+	heap32[(r6+15)] = r1;
+	r1 = heap32[(r0+26)];
+	r1 = r1 << 2;
+	r1 = (r5 + r1)|0;
+	r1 = r1 >> 2;
+	heap32[(r6+13)] = 0;
+	r2 = heap32[(r1+21)];
+	heap32[(r6+14)] = r2;
+	r2 = heap32[(r1+21)];
+if(!(r2 ==0)) //_LBB109_40
+{
+	r2 = r2 >> 2;
+	heap32[(r2+13)] = r4;
+}
+	r2 = r8 & 1;
+	heap32[(r1+21)] = r4;
+if(!(r2 ==0)) //_LBB109_43
+{
+	r1 = 1;
+	heap8[r5+154] = r1;
+	r1 = heapU8[r5+153];
+if(!(r1 !=0)) //_LBB109_43
+{
+	r1 = _ZTV18btDbvtTreeCollider;
+	r2 = sp + -64;
+	r1 = (r1 + 8)|0;
+	r3 = r2 >> 2;
+	heap32[(fp+-16)] = r1;
+	heap32[(r3+1)] = r5;
+	r1 = heap32[(r6+12)];
+	r3 = heap32[(r0+11)];
+	r4 = (r5 + 44)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r2;
+	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
+	r1 = heap32[(r6+12)];
+	r0 = heap32[(r0+1)];
+	r3 = (r5 + 4)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r2;
+	_ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7);
+}
+}
+	return;
+}
+
+function _ZN16btDbvtBroadphaseD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btDbvtBroadphase;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+152];
+if(!(r1 ==0)) //_LBB110_3
+{
+	r1 = heap32[(r2+24)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+24)];
+if(!(r1 ==0)) //_LBB110_3
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r3 = heap32[(r2)];
+	r3 = (r3 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r2)] = r3;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = (r0 + 4)|0;
+if(!(r1 ==0)) //_LBB110_15
+{
+	r2 = (r1 + 80)|0;
+if(!(r2 ==r1)) //_LBB110_15
+{
+	r1 = (r0 + 44)|0;
+	r2 = 0;
+_8: while(true){
+	r3 = (r0 + r2)|0;
+	r4 = r3 >> 2;
+	r5 = heap32[(r4+11)];
+if(!(r5 ==0)) //_LBB110_8
+{
+	r6 = (r1 + r2)|0;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r5;
+	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
+}
+	r5 = heap32[(r4+12)];
+if(!(r5 ==0)) //_LBB110_10
+{
+	r6 = gNumAlignedFree;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r7 = (r7 + 1)|0;
+	r5 = r5 >> 2;
+	heap32[(r6)] = r7;
+	r5 = heap32[(r5+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+}
+	heap32[(r4+12)] = 0;
+	heap32[(r4+13)] = -1;
+	r5 = heap32[(r4+19)];
+if(!(r5 ==0)) //_LBB110_14
+{
+	r6 = heapU8[r3+80];
+if(!(r6 ==0)) //_LBB110_13
+{
+	r6 = gNumAlignedFree;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r7 = (r7 + 1)|0;
+	r5 = r5 >> 2;
+	heap32[(r6)] = r7;
+	r5 = heap32[(r5+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+}
+	heap32[(r4+19)] = 0;
+}
+	r5 = 1;
+	heap32[(r4+15)] = 0;
+	heap8[r3+80] = r5;
+	heap32[(r4+19)] = 0;
+	r2 = (r2 + -40)|0;
+	heap32[(r4+17)] = 0;
+	heap32[(r4+18)] = 0;
+	if(r2 !=-80) //_LBB110_6
+{
+continue _8;
+}
+else{
+break _8;
+}
+}
+}
+}
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN16btDbvtBroadphaseD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btDbvtBroadphase;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+152];
+if(!(r1 ==0)) //_LBB111_3
+{
+	r1 = heap32[(r2+24)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+24)];
+if(!(r1 ==0)) //_LBB111_3
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r3 = heap32[(r2)];
+	r3 = (r3 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r2)] = r3;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = (r0 + 4)|0;
+if(!(r1 ==0)) //_LBB111_15
+{
+	r2 = (r1 + 80)|0;
+if(!(r2 ==r1)) //_LBB111_15
+{
+	r1 = (r0 + 44)|0;
+	r2 = 0;
+_8: while(true){
+	r3 = (r0 + r2)|0;
+	r4 = r3 >> 2;
+	r5 = heap32[(r4+11)];
+if(!(r5 ==0)) //_LBB111_8
+{
+	r6 = (r1 + r2)|0;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r5;
+	_ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7);
+}
+	r5 = heap32[(r4+12)];
+if(!(r5 ==0)) //_LBB111_10
+{
+	r6 = gNumAlignedFree;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r7 = (r7 + 1)|0;
+	r5 = r5 >> 2;
+	heap32[(r6)] = r7;
+	r5 = heap32[(r5+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+}
+	heap32[(r4+12)] = 0;
+	heap32[(r4+13)] = -1;
+	r5 = heap32[(r4+19)];
+if(!(r5 ==0)) //_LBB111_14
+{
+	r6 = heapU8[r3+80];
+if(!(r6 ==0)) //_LBB111_13
+{
+	r6 = gNumAlignedFree;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r7 = (r7 + 1)|0;
+	r5 = r5 >> 2;
+	heap32[(r6)] = r7;
+	r5 = heap32[(r5+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+}
+	heap32[(r4+19)] = 0;
+}
+	r5 = 1;
+	heap32[(r4+15)] = 0;
+	heap8[r3+80] = r5;
+	heap32[(r4+19)] = 0;
+	r2 = (r2 + -40)|0;
+	heap32[(r4+17)] = 0;
+	heap32[(r4+18)] = 0;
+	if(r2 !=-80) //_LBB111_6
+{
+continue _8;
+}
+else{
+break _8;
+}
+}
+}
+}
+	return;
+}
+
+function _ZN12btDispatcherD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btDispatcher;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN12btDispatcherD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btDispatcher;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+60];
+	if(r1 !=0) //_LBB114_2
+{
+	r1 = heap32[(fp+2)];
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r1)];
+	r0 = r0 >> 2;
+	f1 = heapFloat[(r0+5)];
+	if(f0 <=f1) //_LBB114_4
+{
+	f1 = heapFloat[(r1+1)];
+	f2 = heapFloat[(r0+6)];
+	if(f1 <=f2) //_LBB114_6
+{
+	f2 = heapFloat[(r1+2)];
+	f3 = heapFloat[(r0+7)];
+	if(f2 <=f3) //_LBB114_8
+{
+	f3 = heapFloat[(r0+1)];
+	if(f0 >=f3) //_LBB114_10
+{
+	f4 = heapFloat[(r0+2)];
+	if(f1 >=f4) //_LBB114_12
+{
+	f5 = heapFloat[(r0+3)];
+	if(f2 >=f5) //_LBB114_14
+{
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+3)];
+	f2 = f2-f5;
+	f5 = heapFloat[(r0+11)];
+	f1 = f1-f4;
+	f4 = heapFloat[(r0+10)];
+	f0 = f0-f3;
+	f3 = heapFloat[(r0+9)];
+	f2 = f2*f5;
+	f1 = f1*f4;
+	f0 = f0*f3;
+	if(r2 ==0) //_LBB114_16
+{
+	r0 = Math.floor(f0);
+	r2 = Math.floor(f1);
+	r0 = r0 & 65534;
+	r3 = Math.floor(f2);
+	r2 = r2 & 65534;
+	heap16[(r1)>>1] = r0;
+	r0 = r3 & 65534;
+}
+else{
+	f3 =                         1;
+	f0 = f0+f3;
+	f1 = f1+f3;
+	r0 = Math.floor(f0);
+	f0 = f2+f3;
+	r2 = Math.floor(f1);
+	r0 = r0 | 1;
+	r3 = Math.floor(f0);
+	r2 = r2 | 1;
+	heap16[(r1)>>1] = r0;
+	r0 = r3 | 1;
+}
+	heap16[(r1+2)>>1] = r2;
+	heap16[(r1+4)>>1] = r0;
+	return;
+}
+else{
+	r0 = _2E_str9;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 361;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str820;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 360;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str717;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 359;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str616;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 357;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str515;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 356;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str414;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 355;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str212;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 353;
+	_assert(i7);
+}
+}
+
+function _ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 >> 2;
+	r3 = heap32[(r2+2)];
+if(!(r3 >=r1)) //_LBB115_16
+{
+	if(r1 !=0) //_LBB115_3
+{
+	r3 = gNumAlignedAllocs;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r5 = r1 << 4;
+	r4 = (r4 + 1)|0;
+	r5 = r5 | 3;
+	heap32[(r3)] = r4;
+	r3 = (r5 + 16)|0;
+	heap32[(g0)] = r3;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB115_5
+{
+	r4 = 0;
+	r5 = (r3 + 4)|0;
+	r4 = (r4 - r5)|0;
+	r4 = r4 & 15;
+	r4 = (r3 + r4)|0;
+	r5 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = r5;
+}
+}
+else{
+	r3 = 0;
+}
+	r4 = heap32[(r2+1)];
+	r5 = (r0 + 12)|0;
+	if(r4 <1) //_LBB115_8
+{
+	r4 = r5 >> 2;
+	r7 = heap32[(r4)];
+}
+else{
+	r6 = 0;
+_11: while(true){
+	r7 = r5 >> 2;
+	r7 = heap32[(r7)];
+	r8 = r6 << 4;
+	r9 = heapU16[(r7+r8)>>1];
+	r10 = (r7 + r8)|0;
+	heap16[(r3+r8)>>1] = r9;
+	r8 = (r3 + r8)|0;
+	r9 = heapU16[(r10+2)>>1];
+	heap16[(r8+2)>>1] = r9;
+	r9 = heapU16[(r10+4)>>1];
+	heap16[(r8+4)>>1] = r9;
+	r9 = heapU16[(r10+6)>>1];
+	heap16[(r8+6)>>1] = r9;
+	r9 = heapU16[(r10+8)>>1];
+	heap16[(r8+8)>>1] = r9;
+	r9 = heapU16[(r10+10)>>1];
+	r10 = r10 >> 2;
+	heap16[(r8+10)>>1] = r9;
+	r6 = (r6 + 1)|0;
+	r8 = r8 >> 2;
+	r9 = heap32[(r10+3)];
+	heap32[(r8+3)] = r9;
+if(!(r4 !=r6)) //_LBB115_9
+{
+break _11;
+}
+}
+	r5 = (r0 + 12)|0;
+}
+if(!(r7 ==0)) //_LBB115_15
+{
+	r4 = heapU8[r0+16];
+if(!(r4 ==0)) //_LBB115_14
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r6 = heap32[(r4)];
+	r6 = (r6 + 1)|0;
+	r7 = r7 >> 2;
+	heap32[(r4)] = r6;
+	r4 = heap32[(r7+-1)];
+	heap32[(g0)] = r4;
+	free(i7);
+}
+	r4 = r5 >> 2;
+	heap32[(r4)] = 0;
+}
+	r4 = 1;
+	r5 = r5 >> 2;
+	heap8[r0+16] = r4;
+	heap32[(r5)] = r3;
+	heap32[(r2+2)] = r1;
+}
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = (r0 + 4)|0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	heap32[(r0+6)] = r1;
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	heap32[(r0+18)] = r1;
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+2)];
+if(!(r1 ==0)) //_LBB120_2
+{
+	r2 = heap32[(fp+2)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = r2 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+13)];
+	r3 = heap32[(r0+2)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	heap32[(r0+2)] = 0;
+}
+	return;
+}
+
+function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(r0+1)];
+	r3 = r1 >> 2;
+	r4 = heap32[(r3)];
+	if(r4 ==r2) //_LBB123_2
+{
+__label__ = 2;
+}
+else{
+	r3 = heap32[(r3+1)];
+	if(r3 !=r2) //_LBB123_3
+{
+__label__ = 3;
+}
+else{
+__label__ = 2;
+}
+}
+if (__label__ == 2){
+	r2 = heap32[(r0+2)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+8)];
+	r0 = heap32[(r0+3)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r0 = heap32[(r0+1)];
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+	if(r2 ==r0) //_LBB126_2
+{
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+else{
+	r1 = heap32[(r1+1)];
+	r0 = r1 == r0;
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+4)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+4)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+2)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = 0;
+	r4 = r3;
+_1: while(true){
+	r5 = r4 << 2;
+_3: while(true){
+	r6 = r0 >> 2;
+	r7 = heap32[(r6+2)];
+	if(r7 >r4) //_LBB130_1
+{
+	r7 = r1 >> 2;
+	r7 = heap32[(r7)];
+	r7 = r7 >> 2;
+	r8 = heap32[(r6+4)];
+	r7 = heap32[(r7+2)];
+	r9 = (r8 + r3)|0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r9;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r7 = r_g0;
+	if(r7 ==0) //_LBB130_3
+{
+break _3;
+}
+else{
+	r7 = r5 << 2;
+	r6 = heap32[(r6)];
+	r7 = (r8 + r7)|0;
+	r7 = r7 >> 2;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+3)];
+	r8 = heap32[(r7+1)];
+	r7 = heap32[(r7)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r2;
+	r7 = gOverlappingPairs;
+	r7 = r7 >> 2;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = heap32[(r7)];
+	r6 = (r6 + -1)|0;
+	heap32[(r7)] = r6;
+continue _3;
+}
+}
+else{
+break _1;
+}
+}
+	r4 = (r4 + 1)|0;
+	r3 = (r3 + 16)|0;
+continue _1;
+}
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback;
+	r1 = sp + -8;
+	r0 = (r0 + 8)|0;
+	r2 = heap32[(fp)];
+	r3 = r1 >> 2;
+	r4 = heap32[(fp+1)];
+	heap32[(fp+-2)] = r0;
+	r0 = r2 >> 2;
+	heap32[(r3+1)] = r4;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+12)];
+	r3 = heap32[(fp+2)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback;
+	r1 = sp + -16;
+	r0 = (r0 + 8)|0;
+	r2 = r1 >> 2;
+	r3 = heap32[(fp+1)];
+	heap32[(fp+-4)] = r0;
+	r0 = heap32[(fp)];
+	heap32[(r2+1)] = r3;
+	r3 = heap32[(fp+2)];
+	heap32[(r2+2)] = r0;
+	r4 = r0 >> 2;
+	heap32[(r2+3)] = r3;
+	r2 = heap32[(r4)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCacheD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV28btHashedOverlappingPairCache;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+16)];
+if(!(r1 ==0)) //_LBB133_4
+{
+	r3 = heapU8[r0+68];
+if(!(r3 ==0)) //_LBB133_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+16)] = 0;
+}
+	r1 = 1;
+	heap8[r0+68] = r1;
+	heap32[(r2+16)] = 0;
+	heap32[(r2+14)] = 0;
+	heap32[(r2+15)] = 0;
+	r3 = heap32[(r2+11)];
+if(!(r3 ==0)) //_LBB133_8
+{
+	r4 = heapU8[r0+48];
+if(!(r4 ==0)) //_LBB133_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+11)] = 0;
+}
+	heap8[r0+48] = r1;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 0;
+	r3 = heap32[(r2+4)];
+if(!(r3 ==0)) //_LBB133_12
+{
+	r4 = heapU8[r0+20];
+if(!(r4 ==0)) //_LBB133_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+4)] = 0;
+}
+	heap8[r0+20] = r1;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCacheD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV28btHashedOverlappingPairCache;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+16)];
+if(!(r1 ==0)) //_LBB134_4
+{
+	r3 = heapU8[r0+68];
+if(!(r3 ==0)) //_LBB134_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+16)] = 0;
+}
+	r1 = 1;
+	heap8[r0+68] = r1;
+	heap32[(r2+16)] = 0;
+	heap32[(r2+14)] = 0;
+	heap32[(r2+15)] = 0;
+	r3 = heap32[(r2+11)];
+if(!(r3 ==0)) //_LBB134_8
+{
+	r4 = heapU8[r0+48];
+if(!(r4 ==0)) //_LBB134_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+11)] = 0;
+}
+	heap8[r0+48] = r1;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 0;
+	r3 = heap32[(r2+4)];
+if(!(r3 ==0)) //_LBB134_12
+{
+	r4 = heapU8[r0+20];
+if(!(r4 ==0)) //_LBB134_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+4)] = 0;
+}
+	heap8[r0+20] = r1;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = gAddedPairs;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = heap32[(fp)];
+	r1 = (r1 + 1)|0;
+	r3 = r2 >> 2;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r3+6)];
+	r1 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	if(r0 ==0) //_LBB135_2
+{
+	r0 = heapU16[(r4+6)>>1];
+	r5 = heapU16[(r1+4)>>1];
+	r0 = r0 & r5;
+	r0 = r0 & 65535;
+	if(r0 ==0) //_LBB135_25
+{
+__label__ = 23;
+}
+else{
+	r0 = heapU16[(r1+6)>>1];
+	r5 = heapU16[(r4+4)>>1];
+	r0 = r0 & r5;
+	r0 = r0 & 65535;
+	r5 = 0;
+	r0 = r0 != r5;
+	r0 = r0 & 1;
+__label__ = 4;
+}
+}
+else{
+	r5 = r0 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r0 = r_g0;
+__label__ = 4;
+}
+if (__label__ == 4){
+	r0 = r0 & 255;
+if(!(r0 ==0)) //_LBB135_25
+{
+	r0 = r1 >> 2;
+	r5 = r4 >> 2;
+	r0 = heap32[(r0+3)];
+	r5 = heap32[(r5+3)];
+	r6 = r0 > r5 ? r1 : r4;
+	r0 = r0 > r5 ? r4 : r1;
+	r1 = r6 >> 2;
+	r4 = heap32[(r1+3)];
+	r5 = r0 >> 2;
+	r7 = heap32[(r5+3)];
+	r8 = r4 << 16;
+	r8 = r8 | r7;
+	r9 = r8 << 15;
+	r9 = r9 ^ -1;
+	r8 = (r8 + r9)|0;
+	r9 = r8 >> 10;
+	r8 = r9 ^ r8;
+	r8 = (r8 * 9)|0;
+	r9 = r8 >> 6;
+	r8 = r9 ^ r8;
+	r9 = r8 << 11;
+	r9 = r9 ^ -1;
+	r8 = (r8 + r9)|0;
+	r9 = heap32[(r3+3)];
+	r10 = r8 >> 16;
+	r8 = r10 ^ r8;
+	r10 = (r9 + -1)|0;
+	r10 = r8 & r10;
+	r11 = heap32[(r3+11)];
+	r12 = r10 << 2;
+	r11 = (r11 + r12)|0;
+_8: while(true){
+	r11 = r11 >> 2;
+	r11 = heap32[(r11)];
+	if(r11 ==-1) //_LBB135_14
+{
+__label__ = 13;
+break _8;
+}
+else{
+	r12 = heap32[(r3+4)];
+	r13 = r11 << 4;
+	r12 = (r12 + r13)|0;
+	r13 = r12 >> 2;
+	r14 = heap32[(r13)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+3)];
+if(!(r14 !=r7)) //_LBB135_6
+{
+	r13 = heap32[(r13+1)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+3)];
+if(!(r13 !=r4)) //_LBB135_6
+{
+__label__ = 10;
+break _8;
+}
+}
+	r12 = heap32[(r3+16)];
+	r11 = r11 << 2;
+	r11 = (r12 + r11)|0;
+}
+}
+_14: do {
+switch(__label__ ){//multiple entries
+case 13:
+	r4 = heap32[(r3+2)];
+__label__ = 14;
+break _14;
+break;
+case 10:
+	r4 = heap32[(r3+2)];
+	if(r4 >r11) //_LBB135_12
+{
+	if(r12 !=0) //_LBB135_24
+{
+__label__ = 22;
+}
+else{
+__label__ = 14;
+}
+}
+else{
+	r0 = _2E_str222;
+	r1 = _2E_str323;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 250;
+	_assert(i7);
+}
+break;
+}
+} while(0);
+if (__label__ == 14){
+	r12 = (r2 + 4)|0;
+	heap32[(g0)] = r12;
+	_ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(i7);
+	r12 = r_g0;
+	r7 = heap32[(r3+18)];
+if(!(r7 ==0)) //_LBB135_17
+{
+	r11 = r7 >> 2;
+	r11 = heap32[(r11)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+2)];
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r6;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+}
+	r7 = heap32[(r3+3)];
+	if(r9 <r7) //_LBB135_19
+{
+	heap32[(g0)] = r2;
+	_ZN28btHashedOverlappingPairCache10growTablesEv(i7);
+	r10 = heap32[(r3+3)];
+	r10 = (r10 + -1)|0;
+	r10 = r10 & r8;
+}
+	r2 = heap32[(r5+3)];
+	r1 = heap32[(r1+3)];
+	if(r2 >=r1) //_LBB135_22
+{
+	r1 = r12 >> 2;
+	heap32[(r1)] = r6;
+	heap32[(r1+1)] = r0;
+}
+else{
+	r1 = r12 >> 2;
+	heap32[(r1)] = r0;
+	heap32[(r1+1)] = r6;
+}
+	r0 = r12 >> 2;
+	heap32[(r0+2)] = 0;
+	heap32[(r0+3)] = 0;
+	r0 = r10 << 2;
+	r1 = heap32[(r3+11)];
+	r1 = (r1 + r0)|0;
+	r1 = r1 >> 2;
+	r2 = r4 << 2;
+	r5 = heap32[(r3+16)];
+	r2 = (r5 + r2)|0;
+	r1 = heap32[(r1)];
+	r2 = r2 >> 2;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r3+11)];
+	r0 = (r1 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r4;
+}
+	r_g0 = r12;
+	return;
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = gRemovePairs;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+1)];
+	r1 = (r1 + 1)|0;
+	r4 = r3 >> 2;
+	heap32[(r0)] = r1;
+	r0 = r2 >> 2;
+	r1 = heap32[(r4+3)];
+	r0 = heap32[(r0+3)];
+	r4 = r1 > r0 ? r3 : r2;
+	r0 = r1 > r0 ? r2 : r3;
+	r1 = r4 >> 2;
+	r1 = heap32[(r1+3)];
+	r2 = r0 >> 2;
+	r2 = heap32[(r2+3)];
+	r3 = r1 << 16;
+	r3 = r3 | r2;
+	r5 = r3 << 15;
+	r5 = r5 ^ -1;
+	r3 = (r3 + r5)|0;
+	r5 = r3 >> 10;
+	r3 = r5 ^ r3;
+	r3 = (r3 * 9)|0;
+	r5 = r3 >> 6;
+	r3 = r5 ^ r3;
+	r5 = r3 << 11;
+	r6 = heap32[(fp)];
+	r5 = r5 ^ -1;
+	r7 = r6 >> 2;
+	r3 = (r3 + r5)|0;
+	r5 = r3 >> 16;
+	r8 = heap32[(r7+3)];
+	r3 = r5 ^ r3;
+	r5 = (r8 + -1)|0;
+	r3 = r3 & r5;
+	r5 = heap32[(r7+11)];
+	r3 = r3 << 2;
+	r8 = heap32[(fp+3)];
+	r5 = (r5 + r3)|0;
+_1: while(true){
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	if(r5 ==-1) //_LBB136_35
+{
+__label__ = 33;
+break _1;
+}
+else{
+	r9 = heap32[(r7+4)];
+	r10 = r5 << 4;
+	r9 = (r9 + r10)|0;
+	r10 = r9 >> 2;
+	r11 = heap32[(r10)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+3)];
+if(!(r11 !=r2)) //_LBB136_1
+{
+	r11 = heap32[(r10+1)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+3)];
+if(!(r11 !=r1)) //_LBB136_1
+{
+__label__ = 5;
+break _1;
+}
+}
+	r9 = heap32[(r7+16)];
+	r5 = r5 << 2;
+	r5 = (r9 + r5)|0;
+continue _1;
+}
+}
+if (__label__ == 5){
+	r11 = heap32[(r7+2)];
+	if(r11 >r5) //_LBB136_7
+{
+if(!(r9 ==0)) //_LBB136_35
+{
+	r5 = heap32[(r7)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+8)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r5 = heap32[(r10)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+3)];
+	if(r5 ==r2) //_LBB136_10
+{
+	r2 = heap32[(r10+1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+3)];
+	if(r2 ==r1) //_LBB136_12
+{
+	r1 = heap32[(r7+4)];
+	r1 = (r9 - r1)|0;
+	r1 = r1 >> 4;
+	r2 = heap32[(r7+2)];
+	if(r2 >r1) //_LBB136_14
+{
+	r2 = heap32[(r7+11)];
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	r3 = heap32[(r2)];
+	if(r3 ==-1) //_LBB136_17
+{
+	r0 = _2E_str727;
+	r1 = _2E_str121;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 304;
+	_assert(i7);
+}
+else{
+	r5 = heap32[(r10+3)];
+	r6 = heap32[(r7+16)];
+	if(r3 ==r1) //_LBB136_21
+{
+__label__ = 20;
+}
+else{
+_22: while(true){
+	r9 = r3;
+	r3 = r9 << 2;
+	r3 = (r6 + r3)|0;
+	r10 = r3 >> 2;
+	r3 = heap32[(r10)];
+if(!(r3 !=r1)) //_LBB136_18
+{
+break _22;
+}
+}
+	if(r9 ==-1) //_LBB136_21
+{
+__label__ = 20;
+}
+else{
+	r2 = r1 << 2;
+	r2 = (r6 + r2)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	heap32[(r10)] = r2;
+__label__ = 21;
+}
+}
+if (__label__ == 20){
+	r3 = r1 << 2;
+	r3 = (r6 + r3)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(r2)] = r3;
+}
+	r2 = heap32[(r7+2)];
+	r3 = heap32[(r7+18)];
+if(!(r3 ==0)) //_LBB136_24
+{
+	r6 = r3 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+3)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r8;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+}
+	r0 = (r2 + -1)|0;
+	if(r0 !=r1) //_LBB136_26
+{
+	r3 = heap32[(r7+4)];
+	r4 = r2 << 4;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r6 = heap32[(r3+-3)];
+	r3 = heap32[(r3+-4)];
+	r6 = r6 >> 2;
+	r3 = r3 >> 2;
+	r6 = heap32[(r6+3)];
+	r3 = heap32[(r3+3)];
+	r6 = r6 << 16;
+	r3 = r3 | r6;
+	r6 = r3 << 15;
+	r6 = r6 ^ -1;
+	r3 = (r3 + r6)|0;
+	r6 = r3 >> 10;
+	r3 = r6 ^ r3;
+	r3 = (r3 * 9)|0;
+	r6 = r3 >> 6;
+	r3 = r6 ^ r3;
+	r6 = r3 << 11;
+	r6 = r6 ^ -1;
+	r3 = (r3 + r6)|0;
+	r6 = r3 >> 16;
+	r8 = heap32[(r7+3)];
+	r3 = r6 ^ r3;
+	r6 = (r8 + -1)|0;
+	r3 = r3 & r6;
+	r6 = heap32[(r7+11)];
+	r3 = r3 << 2;
+	r6 = (r6 + r3)|0;
+	r6 = r6 >> 2;
+	r8 = heap32[(r6)];
+	if(r8 ==-1) //_LBB136_29
+{
+	r0 = _2E_str727;
+	r1 = _2E_str121;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 345;
+	_assert(i7);
+}
+else{
+	r9 = heap32[(r7+16)];
+	if(r8 ==r0) //_LBB136_33
+{
+__label__ = 31;
+}
+else{
+_38: while(true){
+	r10 = r8;
+	r8 = r10 << 2;
+	r8 = (r9 + r8)|0;
+	r11 = r8 >> 2;
+	r8 = heap32[(r11)];
+if(!(r8 !=r0)) //_LBB136_30
+{
+break _38;
+}
+}
+	if(r10 ==-1) //_LBB136_33
+{
+__label__ = 31;
+}
+else{
+	r2 = r2 << 2;
+	r2 = (r9 + r2)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+-1)];
+	heap32[(r11)] = r2;
+__label__ = 32;
+}
+}
+if (__label__ == 31){
+	r0 = r2 << 2;
+	r0 = (r9 + r0)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+-1)];
+	heap32[(r6)] = r0;
+}
+	r0 = heap32[(r7+4)];
+	r2 = (r0 + r4)|0;
+	r4 = r1 << 4;
+	r2 = r2 >> 2;
+	r0 = (r0 + r4)|0;
+	r4 = heap32[(r2+-4)];
+	r0 = r0 >> 2;
+	heap32[(r0)] = r4;
+	r4 = heap32[(r2+-3)];
+	heap32[(r0+1)] = r4;
+	r4 = heap32[(r2+-2)];
+	heap32[(r0+2)] = r4;
+	r2 = heap32[(r2+-1)];
+	heap32[(r0+3)] = r2;
+	r0 = heap32[(r7+11)];
+	r0 = (r0 + r3)|0;
+	r0 = r0 >> 2;
+	r2 = r1 << 2;
+	r4 = heap32[(r7+16)];
+	r2 = (r4 + r2)|0;
+	r0 = heap32[(r0)];
+	r2 = r2 >> 2;
+	heap32[(r2)] = r0;
+	r0 = heap32[(r7+11)];
+	r0 = (r0 + r3)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r1;
+}
+}
+	r0 = heap32[(r7+2)];
+	r0 = (r0 + -1)|0;
+	heap32[(r7+2)] = r0;
+	r_g0 = r5;
+	return;
+}
+}
+else{
+	r0 = _2E_str626;
+	r1 = _2E_str121;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 300;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str525;
+	r3 = _2E_str121;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 297;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str424;
+	r1 = _2E_str121;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 296;
+	_assert(i7);
+}
+}
+}
+else{
+	r0 = _2E_str222;
+	r1 = _2E_str323;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 250;
+	_assert(i7);
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = gFindPairs;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r1 = (r1 + 1)|0;
+	r4 = r2 >> 2;
+	heap32[(r0)] = r1;
+	r0 = r3 >> 2;
+	r1 = heap32[(r4+3)];
+	r0 = heap32[(r0+3)];
+	r4 = r1 > r0 ? r2 : r3;
+	r0 = r1 > r0 ? r3 : r2;
+	r1 = r4 >> 2;
+	r1 = heap32[(r1+3)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+3)];
+	r2 = r1 << 16;
+	r2 = r2 | r0;
+	r3 = r2 << 15;
+	r3 = r3 ^ -1;
+	r2 = (r2 + r3)|0;
+	r3 = r2 >> 10;
+	r2 = r3 ^ r2;
+	r2 = (r2 * 9)|0;
+	r3 = r2 >> 6;
+	r2 = r3 ^ r2;
+	r3 = r2 << 11;
+	r4 = heap32[(fp)];
+	r3 = r3 ^ -1;
+	r4 = r4 >> 2;
+	r2 = (r2 + r3)|0;
+	r3 = r2 >> 16;
+	r5 = heap32[(r4+3)];
+	r2 = r3 ^ r2;
+	r3 = (r5 + -1)|0;
+	r2 = r2 & r3;
+	r3 = heap32[(r4+9)];
+_1: do {
+if(!(r3 <=r2)) //_LBB137_9
+{
+	r3 = heap32[(r4+11)];
+	r2 = r2 << 2;
+	r2 = (r3 + r2)|0;
+_3: while(true){
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	if(r2 ==-1) //_LBB137_9
+{
+break _1;
+}
+else{
+	r3 = heap32[(r4+4)];
+	r5 = r2 << 4;
+	r3 = (r3 + r5)|0;
+	r5 = r3 >> 2;
+	r6 = heap32[(r5)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+3)];
+if(!(r6 !=r0)) //_LBB137_2
+{
+	r5 = heap32[(r5+1)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+3)];
+if(!(r5 !=r1)) //_LBB137_2
+{
+break _3;
+}
+}
+	r3 = heap32[(r4+16)];
+	r2 = r2 << 2;
+	r2 = (r3 + r2)|0;
+}
+}
+	r0 = heap32[(r4+2)];
+	if(r0 >r2) //_LBB137_8
+{
+	r_g0 = r3;
+	return;
+}
+else{
+	r3 = _2E_str222;
+	r0 = _2E_str121;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 165;
+	_assert(i7);
+}
+}
+} while(0);
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = sp + -24;
+	r1 = 1;
+	r2 = r0 >> 2;
+	heap8[sp+-8] = r1;
+	heap32[(r2+3)] = 0;
+	r3 = heap32[(fp)];
+	heap32[(r2+1)] = 0;
+	r4 = r3 >> 2;
+	heap32[(r2+2)] = 0;
+	r5 = heap32[(r4+2)];
+_1: do {
+	if(r5 >0) //_LBB138_2
+{
+	r6 = heap32[(fp+1)];
+	r7 = 0;
+	r5 = r7;
+_3: while(true){
+	r8 = heap32[(r4+4)];
+	if(r7 ==r5) //_LBB138_5
+{
+	r9 = 1;
+	r10 = r5 << 1;
+	r10 = r5 == 0 ? r9 : r10;
+if(!(r7 >=r10)) //_LBB138_4
+{
+	if(r10 !=0) //_LBB138_8
+{
+	r7 = gNumAlignedAllocs;
+	r7 = r7 >> 2;
+	r11 = heap32[(r7)];
+	r12 = r10 << 4;
+	r11 = (r11 + 1)|0;
+	r12 = r12 | 3;
+	heap32[(r7)] = r11;
+	r7 = (r12 + 16)|0;
+	heap32[(g0)] = r7;
+	malloc(i7);
+	r7 = r_g0;
+	if(r7 !=0) //_LBB138_10
+{
+	r11 = 0;
+	r12 = (r7 + 4)|0;
+	r11 = (r11 - r12)|0;
+	r11 = r11 & 15;
+	r11 = (r7 + r11)|0;
+	r12 = (r11 + 4)|0;
+	r11 = r11 >> 2;
+	heap32[(r11)] = r7;
+	r7 = r12;
+}
+}
+else{
+	r7 = 0;
+}
+	if(r5 <1) //_LBB138_13
+{
+	r13 = heap32[(r2+3)];
+}
+else{
+	r11 = 0;
+	r12 = (r11 - r5)|0;
+_16: while(true){
+	r13 = heap32[(r2+3)];
+	r14 = r11 << 4;
+	r15 = (r13 - r14)|0;
+	r15 = r15 >> 2;
+	r14 = (r7 - r14)|0;
+	r16 = heap32[(r15)];
+	r14 = r14 >> 2;
+	heap32[(r14)] = r16;
+	r16 = heap32[(r15+1)];
+	heap32[(r14+1)] = r16;
+	r16 = heap32[(r15+2)];
+	heap32[(r14+2)] = r16;
+	r15 = heap32[(r15+3)];
+	r11 = (r11 + -1)|0;
+	heap32[(r14+3)] = r15;
+if(!(r12 !=r11)) //_LBB138_14
+{
+break _16;
+}
+}
+}
+	if(r13 !=0) //_LBB138_17
+{
+	r11 = heapU8[sp+-8];
+	if(r11 !=0) //_LBB138_19
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r11 = heap32[(r5)];
+	r11 = (r11 + 1)|0;
+	r12 = r13 >> 2;
+	heap32[(r5)] = r11;
+	r5 = heap32[(r12+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+	r5 = heap32[(r2+1)];
+}
+	heap32[(r2+3)] = 0;
+}
+	heap8[sp+-8] = r9;
+	heap32[(r2+3)] = r7;
+	heap32[(r2+2)] = r10;
+}
+}
+	r7 = r1 << 4;
+	r7 = (r8 + r7)|0;
+	r7 = r7 >> 2;
+	r5 = r5 << 4;
+	r8 = heap32[(r2+3)];
+	r5 = (r8 + r5)|0;
+	r8 = heap32[(r7+-4)];
+	r5 = r5 >> 2;
+	heap32[(r5)] = r8;
+	r8 = heap32[(r7+-3)];
+	heap32[(r5+1)] = r8;
+	r8 = heap32[(r7+-2)];
+	heap32[(r5+2)] = r8;
+	r7 = heap32[(r7+-1)];
+	heap32[(r5+3)] = r7;
+	r5 = heap32[(r2+1)];
+	r5 = (r5 + 1)|0;
+	heap32[(r2+1)] = r5;
+	r7 = heap32[(r4+2)];
+	if(r7 <=r1) //_LBB138_24
+{
+break _3;
+}
+else{
+	r7 = heap32[(r2+2)];
+	r1 = (r1 + 1)|0;
+}
+}
+	if(r5 >0) //_LBB138_26
+{
+	r1 = 0;
+_29: while(true){
+	r5 = heap32[(r2+3)];
+	r7 = r1 << 4;
+	r8 = heap32[(r4)];
+	r5 = (r5 + r7)|0;
+	r5 = r5 >> 2;
+	r7 = r8 >> 2;
+	r7 = heap32[(r7+3)];
+	r8 = heap32[(r5+1)];
+	r5 = heap32[(r5)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r5 = heap32[(r2+1)];
+	r1 = (r1 + 1)|0;
+	if(r5 >r1) //_LBB138_27
+{
+continue _29;
+}
+else{
+break _1;
+}
+}
+}
+}
+else{
+	r5 = 0;
+}
+} while(0);
+	r1 = heap32[(r4+14)];
+	if(r1 >0) //_LBB138_30
+{
+	r5 = 0;
+_35: while(true){
+	r1 = r5 << 2;
+	r6 = heap32[(r4+16)];
+	r1 = (r6 + r1)|0;
+	r5 = (r5 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r1)] = -1;
+	r1 = heap32[(r4+14)];
+if(!(r1 >r5)) //_LBB138_31
+{
+break _35;
+}
+}
+	r5 = heap32[(r2+1)];
+}
+	if(r5 >1) //_LBB138_35
+{
+	r5 = (r5 + -1)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r5;
+	_ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7);
+	r5 = heap32[(r2+1)];
+}
+_42: do {
+if(!(r5 <1)) //_LBB138_39
+{
+	r0 = 0;
+_44: while(true){
+	r1 = heap32[(r2+3)];
+	r5 = r0 << 4;
+	r6 = heap32[(r4)];
+	r1 = (r1 + r5)|0;
+	r1 = r1 >> 2;
+	r5 = r6 >> 2;
+	r5 = heap32[(r5+2)];
+	r6 = heap32[(r1+1)];
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r6;
+	r0 = (r0 + 1)|0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r1 = heap32[(r2+1)];
+	if(r1 >r0) //_LBB138_38
+{
+continue _44;
+}
+else{
+break _42;
+}
+}
+}
+} while(0);
+	r0 = heap32[(r2+3)];
+if(!(r0 ==0)) //_LBB138_42
+{
+	r1 = heapU8[sp+-8];
+if(!(r1 ==0)) //_LBB138_42
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+	r2 = (r2 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r2;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+}
+	return;
+}
+
+function _ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+2)];
+	r3 = heap32[(r1+1)];
+	if(r2 ==r3) //_LBB139_2
+{
+	r4 = 1;
+	r5 = r3 << 1;
+	r5 = r3 == 0 ? r4 : r5;
+	if(r2 >=r5) //_LBB139_1
+{
+__label__ = 1;
+}
+else{
+	if(r5 !=0) //_LBB139_5
+{
+	r2 = gNumAlignedAllocs;
+	r2 = r2 >> 2;
+	r6 = heap32[(r2)];
+	r7 = r5 << 4;
+	r6 = (r6 + 1)|0;
+	r7 = r7 | 3;
+	heap32[(r2)] = r6;
+	r2 = (r7 + 16)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r6 = r_g0;
+	if(r6 !=0) //_LBB139_7
+{
+	r2 = 0;
+	r7 = (r6 + 4)|0;
+	r2 = (r2 - r7)|0;
+	r2 = r2 & 15;
+	r2 = (r6 + r2)|0;
+	r7 = (r2 + 4)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = r6;
+	r6 = r7;
+}
+}
+else{
+	r6 = 0;
+}
+	r7 = (r0 + 12)|0;
+	if(r3 <1) //_LBB139_10
+{
+	r2 = r7 >> 2;
+	r9 = heap32[(r2)];
+}
+else{
+	r2 = 0;
+	r8 = (r2 - r3)|0;
+_12: while(true){
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r2 << 4;
+	r11 = (r9 - r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r6 - r10)|0;
+	r12 = heap32[(r11)];
+	r10 = r10 >> 2;
+	heap32[(r10)] = r12;
+	r12 = heap32[(r11+1)];
+	heap32[(r10+1)] = r12;
+	r12 = heap32[(r11+2)];
+	heap32[(r10+2)] = r12;
+	r11 = heap32[(r11+3)];
+	r2 = (r2 + -1)|0;
+	heap32[(r10+3)] = r11;
+if(!(r8 !=r2)) //_LBB139_11
+{
+break _12;
+}
+}
+	r7 = (r0 + 12)|0;
+}
+	if(r9 !=0) //_LBB139_15
+{
+	r2 = heapU8[r0+16];
+	if(r2 !=0) //_LBB139_17
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r8 = heap32[(r2)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r2)] = r8;
+	r2 = heap32[(r9+-1)];
+	heap32[(g0)] = r2;
+	free(i7);
+	r2 = heap32[(r1+1)];
+}
+else{
+	r2 = r3;
+}
+	r8 = r7 >> 2;
+	heap32[(r8)] = 0;
+}
+else{
+	r2 = r3;
+}
+	r7 = r7 >> 2;
+	heap8[r0+16] = r4;
+	heap32[(r7)] = r6;
+	heap32[(r1+2)] = r5;
+__label__ = 19;
+}
+}
+else{
+__label__ = 1;
+}
+if (__label__ == 1){
+	r2 = r3;
+}
+	r0 = (r2 + 1)|0;
+	heap32[(r1+1)] = r0;
+	r0 = heap32[(r1+3)];
+	r1 = r3 << 4;
+	r0 = (r0 + r1)|0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCache10growTablesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+9)];
+	r3 = heap32[(r1+3)];
+_1: do {
+if(!(r2 >=r3)) //_LBB140_48
+{
+_3: do {
+if(!(r2 >r3)) //_LBB140_20
+{
+	r4 = heap32[(r1+10)];
+if(!(r4 >=r3)) //_LBB140_18
+{
+	if(r3 !=0) //_LBB140_5
+{
+	r4 = gNumAlignedAllocs;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r6 = r3 << 2;
+	r5 = (r5 + 1)|0;
+	r6 = r6 | 3;
+	heap32[(r4)] = r5;
+	r4 = (r6 + 16)|0;
+	heap32[(g0)] = r4;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB140_7
+{
+	r5 = 0;
+	r6 = (r4 + 4)|0;
+	r5 = (r5 - r6)|0;
+	r5 = r5 & 15;
+	r5 = (r4 + r5)|0;
+	r6 = (r5 + 4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r4;
+	r4 = r6;
+}
+}
+else{
+	r4 = 0;
+}
+	r5 = (r0 + 44)|0;
+	if(r2 <1) //_LBB140_10
+{
+	r6 = r5 >> 2;
+	r7 = heap32[(r6)];
+}
+else{
+	r6 = 0;
+_15: while(true){
+	r7 = r5 >> 2;
+	r7 = heap32[(r7)];
+	r8 = r6 << 2;
+	r9 = (r7 + r8)|0;
+	r9 = r9 >> 2;
+	r8 = (r4 + r8)|0;
+	r9 = heap32[(r9)];
+	r6 = (r6 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = r9;
+if(!(r2 !=r6)) //_LBB140_11
+{
+break _15;
+}
+}
+	r5 = (r0 + 44)|0;
+}
+if(!(r7 ==0)) //_LBB140_17
+{
+	r6 = heapU8[r0+48];
+if(!(r6 ==0)) //_LBB140_16
+{
+	r6 = gNumAlignedFree;
+	r6 = r6 >> 2;
+	r8 = heap32[(r6)];
+	r8 = (r8 + 1)|0;
+	r7 = r7 >> 2;
+	heap32[(r6)] = r8;
+	r6 = heap32[(r7+-1)];
+	heap32[(g0)] = r6;
+	free(i7);
+}
+	r6 = r5 >> 2;
+	heap32[(r6)] = 0;
+}
+	r6 = 1;
+	r5 = r5 >> 2;
+	heap8[r0+48] = r6;
+	heap32[(r5)] = r4;
+	heap32[(r1+10)] = r3;
+}
+	r4 = r2;
+_26: while(true){
+	r5 = r4 << 2;
+	r6 = heap32[(r1+11)];
+	r5 = (r6 + r5)|0;
+	r4 = (r4 + 1)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = 0;
+if(!(r3 !=r4)) //_LBB140_19
+{
+break _3;
+}
+}
+}
+} while(0);
+	heap32[(r1+9)] = r3;
+	r4 = heap32[(r1+14)];
+_29: do {
+if(!(r4 >r3)) //_LBB140_39
+{
+if(!(r4 >=r3)) //_LBB140_39
+{
+	r5 = heap32[(r1+15)];
+if(!(r5 >=r3)) //_LBB140_38
+{
+	if(r3 !=0) //_LBB140_25
+{
+	r5 = gNumAlignedAllocs;
+	r5 = r5 >> 2;
+	r6 = heap32[(r5)];
+	r7 = r3 << 2;
+	r6 = (r6 + 1)|0;
+	r7 = r7 | 3;
+	heap32[(r5)] = r6;
+	r5 = (r7 + 16)|0;
+	heap32[(g0)] = r5;
+	malloc(i7);
+	r5 = r_g0;
+	if(r5 !=0) //_LBB140_27
+{
+	r6 = 0;
+	r7 = (r5 + 4)|0;
+	r6 = (r6 - r7)|0;
+	r6 = r6 & 15;
+	r6 = (r5 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r5;
+	r5 = r7;
+}
+}
+else{
+	r5 = 0;
+}
+	r6 = (r0 + 64)|0;
+	if(r4 <1) //_LBB140_30
+{
+	r7 = r6 >> 2;
+	r8 = heap32[(r7)];
+}
+else{
+	r7 = 0;
+_42: while(true){
+	r8 = r6 >> 2;
+	r8 = heap32[(r8)];
+	r9 = r7 << 2;
+	r10 = (r8 + r9)|0;
+	r10 = r10 >> 2;
+	r9 = (r5 + r9)|0;
+	r10 = heap32[(r10)];
+	r7 = (r7 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r10;
+if(!(r4 !=r7)) //_LBB140_31
+{
+break _42;
+}
+}
+	r6 = (r0 + 64)|0;
+}
+if(!(r8 ==0)) //_LBB140_37
+{
+	r7 = heapU8[r0+68];
+if(!(r7 ==0)) //_LBB140_36
+{
+	r7 = gNumAlignedFree;
+	r7 = r7 >> 2;
+	r9 = heap32[(r7)];
+	r9 = (r9 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r7)] = r9;
+	r7 = heap32[(r8+-1)];
+	heap32[(g0)] = r7;
+	free(i7);
+}
+	r7 = r6 >> 2;
+	heap32[(r7)] = 0;
+}
+	r7 = 1;
+	r6 = r6 >> 2;
+	heap8[r0+68] = r7;
+	heap32[(r6)] = r5;
+	heap32[(r1+15)] = r3;
+	if(r4 >=r3) //_LBB140_39
+{
+break _29;
+}
+}
+_52: while(true){
+	r0 = r4 << 2;
+	r5 = heap32[(r1+16)];
+	r0 = (r5 + r0)|0;
+	r4 = (r4 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+if(!(r3 !=r4)) //_LBB140_38
+{
+break _29;
+}
+}
+}
+}
+} while(0);
+	heap32[(r1+14)] = r3;
+_55: do {
+if(!(r3 <1)) //_LBB140_45
+{
+	r0 = 0;
+_57: while(true){
+	r4 = r0 << 2;
+	r5 = heap32[(r1+11)];
+	r4 = (r5 + r4)|0;
+	r0 = (r0 + 1)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = -1;
+if(!(r3 !=r0)) //_LBB140_41
+{
+break _57;
+}
+}
+if(!(r3 <1)) //_LBB140_45
+{
+	r0 = 0;
+_61: while(true){
+	r4 = r0 << 2;
+	r5 = heap32[(r1+16)];
+	r4 = (r5 + r4)|0;
+	r0 = (r0 + 1)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = -1;
+if(!(r3 !=r0)) //_LBB140_44
+{
+break _55;
+}
+}
+}
+}
+} while(0);
+if(!(r2 <1)) //_LBB140_48
+{
+	r0 = 0;
+_65: while(true){
+	r3 = heap32[(r1+4)];
+	r4 = r0 << 4;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3+1)];
+	r3 = heap32[(r3)];
+	r4 = r4 >> 2;
+	r3 = r3 >> 2;
+	r4 = heap32[(r4+3)];
+	r4 = r4 << 16;
+	r3 = heap32[(r3+3)];
+	r3 = r4 | r3;
+	r4 = r3 << 15;
+	r4 = r4 ^ -1;
+	r3 = (r3 + r4)|0;
+	r4 = r3 >> 10;
+	r3 = r4 ^ r3;
+	r3 = (r3 * 9)|0;
+	r4 = r3 >> 6;
+	r3 = r4 ^ r3;
+	r4 = r3 << 11;
+	r4 = r4 ^ -1;
+	r3 = (r3 + r4)|0;
+	r4 = r3 >> 16;
+	r5 = heap32[(r1+3)];
+	r3 = r4 ^ r3;
+	r4 = (r5 + -1)|0;
+	r3 = r3 & r4;
+	r3 = r3 << 2;
+	r4 = heap32[(r1+11)];
+	r4 = (r4 + r3)|0;
+	r4 = r4 >> 2;
+	r5 = r0 << 2;
+	r6 = heap32[(r1+16)];
+	r5 = (r6 + r5)|0;
+	r4 = heap32[(r4)];
+	r5 = r5 >> 2;
+	heap32[(r5)] = r4;
+	r4 = heap32[(r1+11)];
+	r3 = (r4 + r3)|0;
+	r4 = (r0 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = r0;
+	r0 = r4;
+	if(r2 !=r4) //_LBB140_47
+{
+continue _65;
+}
+else{
+break _1;
+}
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN28btHashedOverlappingPairCacheC1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV28btHashedOverlappingPairCache;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	r3 = 1;
+	heap32[(r2)] = r1;
+	heap8[r0+20] = r3;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	r1 = 0;
+	heap32[(r2+6)] = 0;
+	heap8[r0+28] = r1;
+	heap8[r0+48] = r3;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 0;
+	heap8[r0+68] = r3;
+	heap32[(r2+16)] = 0;
+	heap32[(r2+14)] = 0;
+	r4 = gNumAlignedAllocs;
+	heap32[(r2+15)] = 0;
+	r4 = r4 >> 2;
+	heap32[(r2+18)] = 0;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	heap32[(r4)] = r5;
+	heap32[(g0)] = 51;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB141_2
+{
+	r5 = (r4 + 4)|0;
+	r1 = (r1 - r5)|0;
+	r1 = r1 & 15;
+	r1 = (r4 + r1)|0;
+	r5 = (r1 + 4)|0;
+	r1 = r1 >> 2;
+	heap32[(r1)] = r4;
+	r4 = r5;
+}
+	heap8[r0+20] = r3;
+	heap32[(r2+4)] = r4;
+	heap32[(r2+3)] = 2;
+	heap32[(g0)] = r0;
+	_ZN28btHashedOverlappingPairCache10growTablesEv(i7);
+	return;
+}
+
+function _ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 84;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK14btQuantizedBvh9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r2 = r1 >> 2;
+	heap32[(r0+4)] = heap32[(r2+5)];
+	heap32[(r0+5)] = heap32[(r2+6)];
+	heap32[(r0+6)] = heap32[(r2+7)];
+	heap32[(r0+7)] = heap32[(r2+8)];
+	heap32[(r0)] = heap32[(r2+1)];
+	heap32[(r0+1)] = heap32[(r2+2)];
+	heap32[(r0+2)] = heap32[(r2+3)];
+	heap32[(r0+3)] = heap32[(r2+4)];
+	heap32[(r0+8)] = heap32[(r2+9)];
+	heap32[(r0+9)] = heap32[(r2+10)];
+	heap32[(r0+10)] = heap32[(r2+11)];
+	heap32[(r0+11)] = heap32[(r2+12)];
+	r3 = heap32[(r2+14)];
+	heap32[(r0+12)] = r3;
+	r1 = heapU8[r1+60];
+	heap32[(r0+13)] = r1;
+	r1 = heap32[(r2+22)];
+	r3 = heap32[(fp+2)];
+	heap32[(r0+14)] = r1;
+	r1 = heap32[(r2+22)];
+	if(r1 !=0) //_LBB143_2
+{
+	r1 = r3 >> 2;
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	r5 = heap32[(r2+24)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+	heap32[(r0+16)] = r4;
+if(!(r4 ==0)) //_LBB143_7
+{
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r5 = heap32[(r2+22)];
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 48;
+	heap32[(g0+2)] = r5;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+if(!(r5 <1)) //_LBB143_6
+{
+	r6 = r4 >> 2;
+	r7 = 0;
+	r6 = heap32[(r6+2)];
+	r5 = (r7 - r5)|0;
+_6: while(true){
+	r8 = (r7 * -12)|0;
+	r8 = r8 << 2;
+	r9 = r7 << 6;
+	r10 = heap32[(r2+24)];
+	r8 = (r6 + r8)|0;
+	r10 = (r10 - r9)|0;
+	r8 = r8 >> 2;
+	r10 = r10 >> 2;
+	heap32[(r8+4)] = heap32[(r10+4)];
+	heap32[(r8+5)] = heap32[(r10+5)];
+	heap32[(r8+6)] = heap32[(r10+6)];
+	heap32[(r8+7)] = heap32[(r10+7)];
+	r10 = heap32[(r2+24)];
+	r10 = (r10 - r9)|0;
+	r10 = r10 >> 2;
+	heap32[(r8)] = heap32[(r10)];
+	heap32[(r8+1)] = heap32[(r10+1)];
+	heap32[(r8+2)] = heap32[(r10+2)];
+	heap32[(r8+3)] = heap32[(r10+3)];
+	r10 = heap32[(r2+24)];
+	r10 = (r10 - r9)|0;
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+8)];
+	heap32[(r8+8)] = r10;
+	r10 = heap32[(r2+24)];
+	r10 = (r10 - r9)|0;
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+9)];
+	heap32[(r8+9)] = r10;
+	r10 = heap32[(r2+24)];
+	r9 = (r10 - r9)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+10)];
+	r7 = (r7 + -1)|0;
+	heap32[(r8+10)] = r9;
+if(!(r5 !=r7)) //_LBB143_5
+{
+break _6;
+}
+}
+}
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	r5 = heap32[(r2+24)];
+	r6 = _2E_str32;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = 1497453121;
+	heap32[(g0+4)] = r5;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+}
+else{
+	heap32[(r0+16)] = 0;
+}
+	r1 = heap32[(r2+32)];
+	heap32[(r0+15)] = r1;
+	r1 = heap32[(r2+32)];
+	if(r1 !=0) //_LBB143_9
+{
+	r1 = r3 >> 2;
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	r5 = heap32[(r2+34)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+	heap32[(r0+17)] = r4;
+if(!(r4 ==0)) //_LBB143_14
+{
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r5 = heap32[(r2+32)];
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 16;
+	heap32[(g0+2)] = r5;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+_14: do {
+if(!(r5 <1)) //_LBB143_13
+{
+	r6 = r4 >> 2;
+	r7 = 0;
+	r6 = heap32[(r6+2)];
+	r5 = (r7 - r5)|0;
+_16: while(true){
+	r8 = r7 << 4;
+	r9 = heap32[(r2+34)];
+	r9 = (r9 - r8)|0;
+	r9 = r9 >> 2;
+	r10 = (r6 - r8)|0;
+	r9 = heap32[(r9+3)];
+	r11 = r10 >> 2;
+	heap32[(r11+3)] = r9;
+	r9 = heap32[(r2+34)];
+	r9 = (r9 - r8)|0;
+	r9 = heapU16[(r9+6)>>1];
+	heap16[(r10+6)>>1] = r9;
+	r9 = heap32[(r2+34)];
+	r9 = (r9 - r8)|0;
+	r9 = heapU16[(r9+8)>>1];
+	heap16[(r10+8)>>1] = r9;
+	r9 = heap32[(r2+34)];
+	r9 = (r9 - r8)|0;
+	r9 = heapU16[(r9+10)>>1];
+	heap16[(r10+10)>>1] = r9;
+	r9 = heap32[(r2+34)];
+	r9 = (r9 - r8)|0;
+	r9 = heapU16[(r9)>>1];
+	heap16[(r10)>>1] = r9;
+	r9 = heap32[(r2+34)];
+	r9 = (r9 - r8)|0;
+	r9 = heapU16[(r9+2)>>1];
+	heap16[(r10+2)>>1] = r9;
+	r9 = heap32[(r2+34)];
+	r8 = (r9 - r8)|0;
+	r8 = heapU16[(r8+4)>>1];
+	r7 = (r7 + -1)|0;
+	heap16[(r10+4)>>1] = r8;
+if(!(r5 !=r7)) //_LBB143_12
+{
+break _14;
+}
+}
+}
+} while(0);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	r5 = heap32[(r2+34)];
+	r6 = _2E_str133;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = 1497453121;
+	heap32[(g0+4)] = r5;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+}
+else{
+	heap32[(r0+17)] = 0;
+}
+	r1 = heap32[(r2+36)];
+	heap32[(r0+19)] = r1;
+	r1 = heap32[(r2+38)];
+	heap32[(r0+20)] = r1;
+	r1 = heap32[(r2+38)];
+	if(r1 !=0) //_LBB143_16
+{
+	r1 = r3 >> 2;
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	r5 = heap32[(r2+40)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+	heap32[(r0+18)] = r4;
+if(!(r4 ==0)) //_LBB143_21
+{
+	r0 = heap32[(r1)];
+	r0 = r0 >> 2;
+	r4 = heap32[(r2+38)];
+	r0 = heap32[(r0+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 20;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	r0 = r_g0;
+_24: do {
+if(!(r4 <1)) //_LBB143_20
+{
+	r5 = r0 >> 2;
+	r6 = 0;
+	r5 = heap32[(r5+2)];
+	r4 = (r6 - r4)|0;
+_26: while(true){
+	r7 = r6 << 5;
+	r8 = heap32[(r2+40)];
+	r9 = (r6 * -10)|0;
+	r8 = (r8 - r7)|0;
+	r8 = heapU16[(r8+6)>>1];
+	r9 = r9 << 1;
+	r9 = (r5 + r9)|0;
+	heap16[(r9+14)>>1] = r8;
+	r8 = heap32[(r2+40)];
+	r8 = (r8 - r7)|0;
+	r8 = heapU16[(r8+8)>>1];
+	heap16[(r9+16)>>1] = r8;
+	r8 = heap32[(r2+40)];
+	r8 = (r8 - r7)|0;
+	r8 = heapU16[(r8+10)>>1];
+	heap16[(r9+18)>>1] = r8;
+	r8 = heap32[(r2+40)];
+	r8 = (r8 - r7)|0;
+	r8 = heapU16[(r8)>>1];
+	heap16[(r9+8)>>1] = r8;
+	r8 = heap32[(r2+40)];
+	r8 = (r8 - r7)|0;
+	r8 = heapU16[(r8+2)>>1];
+	heap16[(r9+10)>>1] = r8;
+	r8 = heap32[(r2+40)];
+	r8 = (r8 - r7)|0;
+	r8 = heapU16[(r8+4)>>1];
+	heap16[(r9+12)>>1] = r8;
+	r8 = heap32[(r2+40)];
+	r9 = (r6 * -5)|0;
+	r8 = (r8 - r7)|0;
+	r9 = r9 << 2;
+	r8 = r8 >> 2;
+	r9 = (r5 + r9)|0;
+	r8 = heap32[(r8+3)];
+	r9 = r9 >> 2;
+	heap32[(r9)] = r8;
+	r8 = heap32[(r2+40)];
+	r7 = (r8 - r7)|0;
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+4)];
+	r6 = (r6 + -1)|0;
+	heap32[(r9+1)] = r7;
+if(!(r4 !=r6)) //_LBB143_19
+{
+break _24;
+}
+}
+}
+} while(0);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	r2 = heap32[(r2+40)];
+	r4 = _2E_str234;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = 1497453121;
+	heap32[(g0+4)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+}
+else{
+	heap32[(r0+18)] = 0;
+}
+	r0 = _2E_str335;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN14btQuantizedBvhD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	_ZN14btQuantizedBvhD2Ev(i7);
+	return;
+}
+
+function _ZN14btQuantizedBvhD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV14btQuantizedBvh;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+40)];
+if(!(r1 ==0)) //_LBB145_4
+{
+	r3 = heapU8[r0+164];
+if(!(r3 ==0)) //_LBB145_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+40)] = 0;
+}
+	r1 = 1;
+	heap8[r0+164] = r1;
+	heap32[(r2+40)] = 0;
+	heap32[(r2+38)] = 0;
+	heap32[(r2+39)] = 0;
+	r3 = heap32[(r2+34)];
+if(!(r3 ==0)) //_LBB145_8
+{
+	r4 = heapU8[r0+140];
+if(!(r4 ==0)) //_LBB145_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+34)] = 0;
+}
+	heap8[r0+140] = r1;
+	heap32[(r2+34)] = 0;
+	heap32[(r2+32)] = 0;
+	heap32[(r2+33)] = 0;
+	r3 = heap32[(r2+29)];
+if(!(r3 ==0)) //_LBB145_12
+{
+	r4 = heapU8[r0+120];
+if(!(r4 ==0)) //_LBB145_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+29)] = 0;
+}
+	heap8[r0+120] = r1;
+	heap32[(r2+29)] = 0;
+	heap32[(r2+27)] = 0;
+	heap32[(r2+28)] = 0;
+	r3 = heap32[(r2+24)];
+if(!(r3 ==0)) //_LBB145_16
+{
+	r4 = heapU8[r0+100];
+if(!(r4 ==0)) //_LBB145_15
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+24)] = 0;
+}
+	heap8[r0+100] = r1;
+	heap32[(r2+24)] = 0;
+	heap32[(r2+22)] = 0;
+	heap32[(r2+23)] = 0;
+	r3 = heap32[(r2+19)];
+if(!(r3 ==0)) //_LBB145_20
+{
+	r4 = heapU8[r0+80];
+if(!(r4 ==0)) //_LBB145_19
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+19)] = 0;
+}
+	heap8[r0+80] = r1;
+	heap32[(r2+19)] = 0;
+	heap32[(r2+17)] = 0;
+	heap32[(r2+18)] = 0;
+if(!(r0 ==0)) //_LBB145_22
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZNK14btQuantizedBvh9serializeEPvjb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+38)];
+	r3 = heap32[(r1+42)];
+	if(r3 ==r2) //_LBB146_2
+{
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+3)];
+	r5 = _ZTV14btQuantizedBvh;
+	r6 = r3 >> 2;
+	r5 = (r5 + 8)|0;
+	heap32[(r1+42)] = r2;
+	heap32[(r6)] = r5;
+	r2 = 0;
+	heap32[(r6+13)] = 277;
+	r5 = 1;
+	heap8[r3+60] = r2;
+	heap8[r3+80] = r5;
+	heap32[(r6+19)] = 0;
+	heap32[(r6+17)] = 0;
+	heap32[(r6+18)] = 0;
+	heap8[r3+100] = r5;
+	heap32[(r6+24)] = 0;
+	heap32[(r6+22)] = 0;
+	heap32[(r6+23)] = 0;
+	heap8[r3+120] = r5;
+	heap32[(r6+29)] = 0;
+	heap32[(r6+27)] = 0;
+	heap32[(r6+28)] = 0;
+	heap8[r3+140] = r5;
+	heap32[(r6+34)] = 0;
+	heap32[(r6+32)] = 0;
+	heap32[(r6+33)] = 0;
+	heap32[(r6+36)] = 0;
+	heap8[r3+164] = r5;
+	heap32[(r6+40)] = 0;
+	heap32[(r6+38)] = 0;
+	heap32[(r6+39)] = 0;
+	heap32[(r6+42)] = 0;
+	heap32[(r6+1)] = -8388609;
+	heap32[(r6+2)] = -8388609;
+	heap32[(r6+3)] = -8388609;
+	heap32[(r6+4)] = 0;
+	heap32[(r6+5)] = 2139095039;
+	heap32[(r6+6)] = 2139095039;
+	heap32[(r6+7)] = 2139095039;
+	heap32[(r6+8)] = 0;
+	r7 = heap32[(r1+14)];
+	if(r4 ==0) //_LBB146_4
+{
+	heap32[(r6+14)] = r7;
+	heap32[(r6+1)] = heap32[(r1+1)];
+	heap32[(r6+2)] = heap32[(r1+2)];
+	heap32[(r6+3)] = heap32[(r1+3)];
+	heap32[(r6+4)] = heap32[(r1+4)];
+	heap32[(r6+5)] = heap32[(r1+5)];
+	heap32[(r6+6)] = heap32[(r1+6)];
+	heap32[(r6+7)] = heap32[(r1+7)];
+	heap32[(r6+8)] = heap32[(r1+8)];
+	heap32[(r6+9)] = heap32[(r1+9)];
+	heap32[(r6+10)] = heap32[(r1+10)];
+	heap32[(r6+11)] = heap32[(r1+11)];
+	heap32[(r6+12)] = heap32[(r1+12)];
+	r7 = heap32[(r1+36)];
+	heap32[(r6+36)] = r7;
+	r7 = heap32[(r1+42)];
+}
+else{
+	r8 = r7 << 8;
+	r9 = r7 >>> 8;
+	r10 = r7 << 24;
+	r8 = r8 & 16711680;
+	r9 = r9 & 65280;
+	r7 = r7 >>> 24;
+	r8 = r10 | r8;
+	r7 = r9 | r7;
+	r7 = r8 | r7;
+	heap32[(r6+14)] = r7;
+	r7 = heapU8[r0+7];
+	heap8[r3+4] = r7;
+	r7 = heapU8[r0+6];
+	heap8[r3+5] = r7;
+	r7 = heapU8[r0+5];
+	heap8[r3+6] = r7;
+	r7 = heapU8[r0+4];
+	heap8[r3+7] = r7;
+	r7 = heapU8[r0+11];
+	heap8[r3+8] = r7;
+	r7 = heapU8[r0+10];
+	heap8[r3+9] = r7;
+	r7 = heapU8[r0+9];
+	heap8[r3+10] = r7;
+	r7 = heapU8[r0+8];
+	heap8[r3+11] = r7;
+	r7 = heapU8[r0+15];
+	heap8[r3+12] = r7;
+	r7 = heapU8[r0+14];
+	heap8[r3+13] = r7;
+	r7 = heapU8[r0+13];
+	heap8[r3+14] = r7;
+	r7 = heapU8[r0+12];
+	heap8[r3+15] = r7;
+	r7 = heapU8[r0+19];
+	heap8[r3+16] = r7;
+	r7 = heapU8[r0+18];
+	heap8[r3+17] = r7;
+	r7 = heapU8[r0+17];
+	heap8[r3+18] = r7;
+	r7 = heapU8[r0+16];
+	heap8[r3+19] = r7;
+	r7 = heapU8[r0+23];
+	heap8[r3+20] = r7;
+	r7 = heapU8[r0+22];
+	heap8[r3+21] = r7;
+	r7 = heapU8[r0+21];
+	heap8[r3+22] = r7;
+	r7 = heapU8[r0+20];
+	heap8[r3+23] = r7;
+	r7 = heapU8[r0+27];
+	heap8[r3+24] = r7;
+	r7 = heapU8[r0+26];
+	heap8[r3+25] = r7;
+	r7 = heapU8[r0+25];
+	heap8[r3+26] = r7;
+	r7 = heapU8[r0+24];
+	heap8[r3+27] = r7;
+	r7 = heapU8[r0+31];
+	heap8[r3+28] = r7;
+	r7 = heapU8[r0+30];
+	heap8[r3+29] = r7;
+	r7 = heapU8[r0+29];
+	heap8[r3+30] = r7;
+	r7 = heapU8[r0+28];
+	heap8[r3+31] = r7;
+	r7 = heapU8[r0+35];
+	heap8[r3+32] = r7;
+	r7 = heapU8[r0+34];
+	heap8[r3+33] = r7;
+	r7 = heapU8[r0+33];
+	heap8[r3+34] = r7;
+	r7 = heapU8[r0+32];
+	heap8[r3+35] = r7;
+	r7 = heapU8[r0+39];
+	heap8[r3+36] = r7;
+	r7 = heapU8[r0+38];
+	heap8[r3+37] = r7;
+	r7 = heapU8[r0+37];
+	heap8[r3+38] = r7;
+	r7 = heapU8[r0+36];
+	heap8[r3+39] = r7;
+	r7 = heapU8[r0+43];
+	heap8[r3+40] = r7;
+	r7 = heapU8[r0+42];
+	heap8[r3+41] = r7;
+	r7 = heapU8[r0+41];
+	heap8[r3+42] = r7;
+	r7 = heapU8[r0+40];
+	heap8[r3+43] = r7;
+	r7 = heapU8[r0+47];
+	heap8[r3+44] = r7;
+	r7 = heapU8[r0+46];
+	heap8[r3+45] = r7;
+	r7 = heapU8[r0+45];
+	heap8[r3+46] = r7;
+	r7 = heapU8[r0+44];
+	heap8[r3+47] = r7;
+	r7 = heapU8[r0+51];
+	heap8[r3+48] = r7;
+	r7 = heapU8[r0+50];
+	heap8[r3+49] = r7;
+	r7 = heapU8[r0+49];
+	heap8[r3+50] = r7;
+	r7 = heapU8[r0+48];
+	heap8[r3+51] = r7;
+	r7 = heap32[(r1+36)];
+	r8 = r7 << 8;
+	r9 = r7 >>> 8;
+	r10 = r7 << 24;
+	r8 = r8 & 16711680;
+	r9 = r9 & 65280;
+	r7 = r7 >>> 24;
+	r8 = r10 | r8;
+	r7 = r9 | r7;
+	r7 = r8 | r7;
+	heap32[(r6+36)] = r7;
+	r7 = heap32[(r1+42)];
+	r8 = r7 << 8;
+	r9 = r7 >>> 8;
+	r10 = r7 << 24;
+	r8 = r8 & 16711680;
+	r9 = r9 & 65280;
+	r7 = r7 >>> 24;
+	r8 = r10 | r8;
+	r7 = r9 | r7;
+	r7 = r8 | r7;
+}
+	heap32[(r6+42)] = r7;
+	r7 = heapU8[r0+60];
+	heap8[r3+60] = r7;
+	r7 = (r3 + 172)|0;
+	r8 = heap32[(r1+14)];
+	r0 = heapU8[r0+60];
+	if(r0 ==0) //_LBB146_20
+{
+	r0 = 0;
+	heap8[r3+100] = r0;
+	heap32[(r6+24)] = r7;
+	heap32[(r6+22)] = r8;
+	heap32[(r6+23)] = r8;
+_9: do {
+	if(r4 !=0) //_LBB146_22
+{
+if(!(r8 <1)) //_LBB146_29
+{
+	r5 = (r5 - r8)|0;
+_12: while(true){
+	r2 = r0 << 6;
+	r9 = heap32[(r1+24)];
+	r9 = (r9 - r2)|0;
+	r10 = heapU8[r9+3];
+	r7 = (r7 - r2)|0;
+	heap8[r7] = r10;
+	r10 = heapU8[r9+2];
+	heap8[r7+1] = r10;
+	r10 = heapU8[r9+1];
+	heap8[r7+2] = r10;
+	r10 = heapU8[r9];
+	heap8[r7+3] = r10;
+	r10 = heapU8[r9+7];
+	heap8[r7+4] = r10;
+	r10 = heapU8[r9+6];
+	heap8[r7+5] = r10;
+	r10 = heapU8[r9+5];
+	heap8[r7+6] = r10;
+	r10 = heapU8[r9+4];
+	heap8[r7+7] = r10;
+	r10 = heapU8[r9+11];
+	heap8[r7+8] = r10;
+	r10 = heapU8[r9+10];
+	heap8[r7+9] = r10;
+	r10 = heapU8[r9+9];
+	heap8[r7+10] = r10;
+	r10 = heapU8[r9+8];
+	heap8[r7+11] = r10;
+	r10 = heapU8[r9+15];
+	heap8[r7+12] = r10;
+	r10 = heapU8[r9+14];
+	heap8[r7+13] = r10;
+	r10 = heapU8[r9+13];
+	heap8[r7+14] = r10;
+	r9 = heapU8[r9+12];
+	heap8[r7+15] = r9;
+	r7 = heap32[(r1+24)];
+	r7 = (r7 - r2)|0;
+	r9 = heap32[(r6+24)];
+	r10 = heapU8[r7+19];
+	r9 = (r9 - r2)|0;
+	heap8[r9+16] = r10;
+	r10 = heapU8[r7+18];
+	heap8[r9+17] = r10;
+	r10 = heapU8[r7+17];
+	heap8[r9+18] = r10;
+	r10 = heapU8[r7+16];
+	heap8[r9+19] = r10;
+	r10 = heapU8[r7+23];
+	heap8[r9+20] = r10;
+	r10 = heapU8[r7+22];
+	heap8[r9+21] = r10;
+	r10 = heapU8[r7+21];
+	heap8[r9+22] = r10;
+	r10 = heapU8[r7+20];
+	heap8[r9+23] = r10;
+	r10 = heapU8[r7+27];
+	heap8[r9+24] = r10;
+	r10 = heapU8[r7+26];
+	heap8[r9+25] = r10;
+	r10 = heapU8[r7+25];
+	heap8[r9+26] = r10;
+	r10 = heapU8[r7+24];
+	heap8[r9+27] = r10;
+	r10 = heapU8[r7+31];
+	heap8[r9+28] = r10;
+	r10 = heapU8[r7+30];
+	heap8[r9+29] = r10;
+	r10 = heapU8[r7+29];
+	heap8[r9+30] = r10;
+	r7 = heapU8[r7+28];
+	heap8[r9+31] = r7;
+	r7 = heap32[(r1+24)];
+	r7 = (r7 - r2)|0;
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+8)];
+	r9 = r7 << 8;
+	r10 = r7 >>> 8;
+	r11 = heap32[(r6+24)];
+	r12 = r7 << 24;
+	r9 = r9 & 16711680;
+	r10 = r10 & 65280;
+	r7 = r7 >>> 24;
+	r11 = (r11 - r2)|0;
+	r9 = r12 | r9;
+	r7 = r10 | r7;
+	r10 = r11 >> 2;
+	r7 = r9 | r7;
+	heap32[(r10+8)] = r7;
+	r7 = heap32[(r1+24)];
+	r7 = (r7 - r2)|0;
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+9)];
+	r9 = r7 << 8;
+	r10 = r7 >>> 8;
+	r11 = heap32[(r6+24)];
+	r12 = r7 << 24;
+	r9 = r9 & 16711680;
+	r10 = r10 & 65280;
+	r7 = r7 >>> 24;
+	r11 = (r11 - r2)|0;
+	r9 = r12 | r9;
+	r7 = r10 | r7;
+	r10 = r11 >> 2;
+	r7 = r9 | r7;
+	heap32[(r10+9)] = r7;
+	r7 = heap32[(r1+24)];
+	r7 = (r7 - r2)|0;
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+10)];
+	r9 = r7 << 8;
+	r10 = r7 >>> 8;
+	r11 = heap32[(r6+24)];
+	r12 = r7 << 24;
+	r9 = r9 & 16711680;
+	r10 = r10 & 65280;
+	r7 = r7 >>> 24;
+	r2 = (r11 - r2)|0;
+	r9 = r12 | r9;
+	r7 = r10 | r7;
+	r2 = r2 >> 2;
+	r7 = r9 | r7;
+	heap32[(r2+10)] = r7;
+	if(r5 ==r0) //_LBB146_29
+{
+break _9;
+}
+else{
+	r7 = heap32[(r6+24)];
+	r0 = (r0 + -1)|0;
+}
+}
+}
+}
+else{
+	if(r8 >0) //_LBB146_26
+{
+	r5 = (r5 - r8)|0;
+	r0 = 0;
+_17: while(true){
+	r2 = r0 << 6;
+	r9 = heap32[(r1+24)];
+	r7 = (r7 - r2)|0;
+	r9 = (r9 - r2)|0;
+	r7 = r7 >> 2;
+	r9 = r9 >> 2;
+	heap32[(r7)] = heap32[(r9)];
+	heap32[(r7+1)] = heap32[(r9+1)];
+	heap32[(r7+2)] = heap32[(r9+2)];
+	heap32[(r7+3)] = heap32[(r9+3)];
+	r7 = heap32[(r6+24)];
+	r9 = heap32[(r1+24)];
+	r7 = (r7 - r2)|0;
+	r9 = (r9 - r2)|0;
+	r7 = r7 >> 2;
+	r9 = r9 >> 2;
+	heap32[(r7+4)] = heap32[(r9+4)];
+	heap32[(r7+5)] = heap32[(r9+5)];
+	heap32[(r7+6)] = heap32[(r9+6)];
+	heap32[(r7+7)] = heap32[(r9+7)];
+	r7 = heap32[(r1+24)];
+	r7 = (r7 - r2)|0;
+	r7 = r7 >> 2;
+	r9 = heap32[(r6+24)];
+	r9 = (r9 - r2)|0;
+	r7 = heap32[(r7+8)];
+	r9 = r9 >> 2;
+	heap32[(r9+8)] = r7;
+	r7 = heap32[(r1+24)];
+	r7 = (r7 - r2)|0;
+	r7 = r7 >> 2;
+	r9 = heap32[(r6+24)];
+	r9 = (r9 - r2)|0;
+	r7 = heap32[(r7+9)];
+	r9 = r9 >> 2;
+	heap32[(r9+9)] = r7;
+	r7 = heap32[(r1+24)];
+	r7 = (r7 - r2)|0;
+	r7 = r7 >> 2;
+	r9 = heap32[(r6+24)];
+	r2 = (r9 - r2)|0;
+	r7 = heap32[(r7+10)];
+	r2 = r2 >> 2;
+	heap32[(r2+10)] = r7;
+	if(r5 ==r0) //_LBB146_29
+{
+break _9;
+}
+else{
+	r7 = heap32[(r6+24)];
+	r0 = (r0 + -1)|0;
+}
+}
+}
+}
+} while(0);
+	r5 = heap32[(r6+24)];
+if(!(r5 ==0)) //_LBB146_33
+{
+	r0 = heapU8[r3+100];
+if(!(r0 ==0)) //_LBB146_32
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r2 = heap32[(r0)];
+	r2 = (r2 + 1)|0;
+	r5 = r5 >> 2;
+	heap32[(r0)] = r2;
+	r5 = heap32[(r5+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+}
+	heap32[(r6+24)] = 0;
+}
+	r5 = r8 << 6;
+	r0 = 0;
+	heap8[r3+100] = r0;
+	heap32[(r6+24)] = 0;
+	heap32[(r6+22)] = 0;
+	heap32[(r6+23)] = 0;
+}
+else{
+	heap8[r3+140] = r2;
+	heap32[(r6+34)] = r7;
+	heap32[(r6+32)] = r8;
+	heap32[(r6+33)] = r8;
+_28: do {
+	if(r4 !=0) //_LBB146_8
+{
+if(!(r8 <1)) //_LBB146_15
+{
+	r5 = (r5 - r8)|0;
+_31: while(true){
+	r0 = heap32[(r1+34)];
+	r9 = r2 << 4;
+	r0 = (r0 - r9)|0;
+	r0 = heapU16[(r0)>>1];
+	r10 = r0 << 8;
+	r0 = r0 << 24;
+	r10 = r10 & 16711680;
+	r0 = r0 | r10;
+	r7 = (r7 - r9)|0;
+	r0 = r0 >>> 16;
+	heap16[(r7)>>1] = r0;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r9)|0;
+	r7 = heapU16[(r7+2)>>1];
+	r0 = r7 << 8;
+	r7 = r7 << 24;
+	r0 = r0 & 16711680;
+	r10 = heap32[(r6+34)];
+	r7 = r7 | r0;
+	r0 = (r10 - r9)|0;
+	r7 = r7 >>> 16;
+	heap16[(r0+2)>>1] = r7;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r9)|0;
+	r7 = heapU16[(r7+4)>>1];
+	r0 = r7 << 8;
+	r7 = r7 << 24;
+	r0 = r0 & 16711680;
+	r10 = heap32[(r6+34)];
+	r7 = r7 | r0;
+	r0 = (r10 - r9)|0;
+	r7 = r7 >>> 16;
+	heap16[(r0+4)>>1] = r7;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r9)|0;
+	r7 = heapU16[(r7+6)>>1];
+	r0 = r7 << 8;
+	r7 = r7 << 24;
+	r0 = r0 & 16711680;
+	r10 = heap32[(r6+34)];
+	r7 = r7 | r0;
+	r0 = (r10 - r9)|0;
+	r7 = r7 >>> 16;
+	heap16[(r0+6)>>1] = r7;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r9)|0;
+	r7 = heapU16[(r7+8)>>1];
+	r0 = r7 << 8;
+	r7 = r7 << 24;
+	r0 = r0 & 16711680;
+	r10 = heap32[(r6+34)];
+	r7 = r7 | r0;
+	r0 = (r10 - r9)|0;
+	r7 = r7 >>> 16;
+	heap16[(r0+8)>>1] = r7;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r9)|0;
+	r7 = heapU16[(r7+10)>>1];
+	r0 = r7 << 8;
+	r7 = r7 << 24;
+	r0 = r0 & 16711680;
+	r10 = heap32[(r6+34)];
+	r7 = r7 | r0;
+	r0 = (r10 - r9)|0;
+	r7 = r7 >>> 16;
+	heap16[(r0+10)>>1] = r7;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r9)|0;
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+3)];
+	r0 = r7 << 8;
+	r10 = r7 >>> 8;
+	r11 = heap32[(r6+34)];
+	r12 = r7 << 24;
+	r0 = r0 & 16711680;
+	r10 = r10 & 65280;
+	r7 = r7 >>> 24;
+	r9 = (r11 - r9)|0;
+	r0 = r12 | r0;
+	r7 = r10 | r7;
+	r9 = r9 >> 2;
+	r7 = r0 | r7;
+	heap32[(r9+3)] = r7;
+	if(r5 ==r2) //_LBB146_15
+{
+break _28;
+}
+else{
+	r7 = heap32[(r6+34)];
+	r2 = (r2 + -1)|0;
+}
+}
+}
+}
+else{
+	if(r8 >0) //_LBB146_12
+{
+	r5 = (r5 - r8)|0;
+	r0 = 0;
+_36: while(true){
+	r2 = r0 << 4;
+	r9 = heap32[(r1+34)];
+	r9 = (r9 - r2)|0;
+	r9 = heapU16[(r9)>>1];
+	r7 = (r7 - r2)|0;
+	heap16[(r7)>>1] = r9;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r2)|0;
+	r9 = heap32[(r6+34)];
+	r7 = heapU16[(r7+2)>>1];
+	r9 = (r9 - r2)|0;
+	heap16[(r9+2)>>1] = r7;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r2)|0;
+	r9 = heap32[(r6+34)];
+	r7 = heapU16[(r7+4)>>1];
+	r9 = (r9 - r2)|0;
+	heap16[(r9+4)>>1] = r7;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r2)|0;
+	r9 = heap32[(r6+34)];
+	r7 = heapU16[(r7+6)>>1];
+	r9 = (r9 - r2)|0;
+	heap16[(r9+6)>>1] = r7;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r2)|0;
+	r9 = heap32[(r6+34)];
+	r7 = heapU16[(r7+8)>>1];
+	r9 = (r9 - r2)|0;
+	heap16[(r9+8)>>1] = r7;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r2)|0;
+	r9 = heap32[(r6+34)];
+	r7 = heapU16[(r7+10)>>1];
+	r9 = (r9 - r2)|0;
+	heap16[(r9+10)>>1] = r7;
+	r7 = heap32[(r1+34)];
+	r7 = (r7 - r2)|0;
+	r7 = r7 >> 2;
+	r9 = heap32[(r6+34)];
+	r2 = (r9 - r2)|0;
+	r7 = heap32[(r7+3)];
+	r2 = r2 >> 2;
+	heap32[(r2+3)] = r7;
+	if(r5 ==r0) //_LBB146_15
+{
+break _28;
+}
+else{
+	r7 = heap32[(r6+34)];
+	r0 = (r0 + -1)|0;
+}
+}
+}
+}
+} while(0);
+	r5 = heap32[(r6+34)];
+if(!(r5 ==0)) //_LBB146_19
+{
+	r7 = heapU8[r3+140];
+if(!(r7 ==0)) //_LBB146_18
+{
+	r7 = gNumAlignedFree;
+	r7 = r7 >> 2;
+	r0 = heap32[(r7)];
+	r0 = (r0 + 1)|0;
+	r5 = r5 >> 2;
+	heap32[(r7)] = r0;
+	r5 = heap32[(r5+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+}
+	heap32[(r6+34)] = 0;
+}
+	r5 = r8 << 4;
+	r7 = 0;
+	heap8[r3+140] = r7;
+	heap32[(r6+34)] = 0;
+	heap32[(r6+32)] = 0;
+	heap32[(r6+33)] = 0;
+}
+	r0 = heap32[(r6+40)];
+	r2 = heap32[(r1+42)];
+if(!(r0 ==0)) //_LBB146_38
+{
+	r7 = heapU8[r3+164];
+if(!(r7 ==0)) //_LBB146_37
+{
+	r7 = gNumAlignedFree;
+	r7 = r7 >> 2;
+	r8 = heap32[(r7)];
+	r8 = (r8 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r7)] = r8;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	heap32[(r6+40)] = 0;
+}
+	r0 = (r5 + r3)|0;
+	r0 = (r0 + 172)|0;
+	r5 = 0;
+	heap8[r3+164] = r5;
+	heap32[(r6+40)] = r0;
+	heap32[(r6+38)] = r2;
+	heap32[(r6+39)] = r2;
+	r2 = heap32[(r1+42)];
+_53: do {
+	if(r4 !=0) //_LBB146_40
+{
+if(!(r2 <1)) //_LBB146_46
+{
+__label__ = 41; //SET chanka
+_55: while(true){
+	r2 = r5 << 5;
+	r4 = heap32[(r1+40)];
+	r4 = heapU16[(r4+r2)>>1];
+	r7 = r4 << 8;
+	r4 = r4 << 24;
+	r7 = r7 & 16711680;
+	r4 = r4 | r7;
+	r4 = r4 >>> 16;
+	heap16[(r0+r2)>>1] = r4;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r2)|0;
+	r0 = heapU16[(r0+2)>>1];
+	r4 = r0 << 8;
+	r0 = r0 << 24;
+	r4 = r4 & 16711680;
+	r7 = heap32[(r6+40)];
+	r0 = r0 | r4;
+	r4 = (r7 + r2)|0;
+	r0 = r0 >>> 16;
+	heap16[(r4+2)>>1] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r2)|0;
+	r0 = heapU16[(r0+4)>>1];
+	r4 = r0 << 8;
+	r0 = r0 << 24;
+	r4 = r4 & 16711680;
+	r7 = heap32[(r6+40)];
+	r0 = r0 | r4;
+	r4 = (r7 + r2)|0;
+	r0 = r0 >>> 16;
+	heap16[(r4+4)>>1] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r2)|0;
+	r0 = heapU16[(r0+6)>>1];
+	r4 = r0 << 8;
+	r0 = r0 << 24;
+	r4 = r4 & 16711680;
+	r7 = heap32[(r6+40)];
+	r0 = r0 | r4;
+	r4 = (r7 + r2)|0;
+	r0 = r0 >>> 16;
+	heap16[(r4+6)>>1] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r2)|0;
+	r0 = heapU16[(r0+8)>>1];
+	r4 = r0 << 8;
+	r0 = r0 << 24;
+	r4 = r4 & 16711680;
+	r7 = heap32[(r6+40)];
+	r0 = r0 | r4;
+	r4 = (r7 + r2)|0;
+	r0 = r0 >>> 16;
+	heap16[(r4+8)>>1] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r2)|0;
+	r0 = heapU16[(r0+10)>>1];
+	r4 = r0 << 8;
+	r0 = r0 << 24;
+	r4 = r4 & 16711680;
+	r7 = heap32[(r6+40)];
+	r0 = r0 | r4;
+	r4 = (r7 + r2)|0;
+	r0 = r0 >>> 16;
+	heap16[(r4+10)>>1] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r2)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+3)];
+	r4 = r0 << 8;
+	r7 = r0 >>> 8;
+	r8 = heap32[(r6+40)];
+	r9 = r0 << 24;
+	r4 = r4 & 16711680;
+	r7 = r7 & 65280;
+	r0 = r0 >>> 24;
+	r8 = (r8 + r2)|0;
+	r4 = r9 | r4;
+	r0 = r7 | r0;
+	r7 = r8 >> 2;
+	r0 = r4 | r0;
+	heap32[(r7+3)] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r2)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+4)];
+	r4 = r0 << 8;
+	r7 = r0 >>> 8;
+	r8 = heap32[(r6+40)];
+	r9 = r0 << 24;
+	r4 = r4 & 16711680;
+	r7 = r7 & 65280;
+	r0 = r0 >>> 24;
+	r2 = (r8 + r2)|0;
+	r4 = r9 | r4;
+	r0 = r7 | r0;
+	r5 = (r5 + 1)|0;
+	r2 = r2 >> 2;
+	r0 = r4 | r0;
+	heap32[(r2+4)] = r0;
+	r0 = heap32[(r1+42)];
+	if(r0 <=r5) //_LBB146_46
+{
+break _53;
+}
+else{
+	r0 = heap32[(r6+40)];
+}
+}
+}
+}
+else{
+	if(r2 >0) //_LBB146_43
+{
+	r2 = 0;
+_60: while(true){
+	r4 = r2 << 5;
+	r5 = heap32[(r1+40)];
+	r5 = heapU16[(r5+r4)>>1];
+	heap16[(r0+r4)>>1] = r5;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r4)|0;
+	r5 = heap32[(r6+40)];
+	r0 = heapU16[(r0+2)>>1];
+	r5 = (r5 + r4)|0;
+	heap16[(r5+2)>>1] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r4)|0;
+	r5 = heap32[(r6+40)];
+	r0 = heapU16[(r0+4)>>1];
+	r5 = (r5 + r4)|0;
+	heap16[(r5+4)>>1] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r4)|0;
+	r5 = heap32[(r6+40)];
+	r0 = heapU16[(r0+6)>>1];
+	r5 = (r5 + r4)|0;
+	heap16[(r5+6)>>1] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r4)|0;
+	r5 = heap32[(r6+40)];
+	r0 = heapU16[(r0+8)>>1];
+	r5 = (r5 + r4)|0;
+	heap16[(r5+8)>>1] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r4)|0;
+	r5 = heap32[(r6+40)];
+	r0 = heapU16[(r0+10)>>1];
+	r5 = (r5 + r4)|0;
+	heap16[(r5+10)>>1] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r4)|0;
+	r0 = r0 >> 2;
+	r5 = heap32[(r6+40)];
+	r5 = (r5 + r4)|0;
+	r0 = heap32[(r0+3)];
+	r5 = r5 >> 2;
+	heap32[(r5+3)] = r0;
+	r0 = heap32[(r1+40)];
+	r0 = (r0 + r4)|0;
+	r0 = r0 >> 2;
+	r5 = heap32[(r6+40)];
+	r5 = (r5 + r4)|0;
+	r0 = heap32[(r0+4)];
+	r5 = r5 >> 2;
+	heap32[(r5+4)] = r0;
+	r0 = heap32[(r6+40)];
+	r0 = (r0 + r4)|0;
+	r0 = r0 >> 2;
+	heap32[(r0+5)] = 0;
+	r0 = heap32[(r6+40)];
+	r0 = (r0 + r4)|0;
+	r0 = r0 >> 2;
+	heap32[(r0+6)] = 0;
+	r0 = heap32[(r6+40)];
+	r0 = (r0 + r4)|0;
+	r2 = (r2 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r0+7)] = 0;
+	r0 = heap32[(r1+42)];
+	if(r0 <=r2) //_LBB146_46
+{
+break _53;
+}
+else{
+	r0 = heap32[(r6+40)];
+}
+}
+}
+}
+} while(0);
+	r0 = heap32[(r6+40)];
+if(!(r0 ==0)) //_LBB146_50
+{
+	r1 = heapU8[r3+164];
+if(!(r1 ==0)) //_LBB146_49
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+	r2 = (r2 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r2;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	heap32[(r6+40)] = 0;
+}
+	r0 = 0;
+	heap8[r3+164] = r0;
+	heap32[(r6+40)] = 0;
+	heap32[(r6+38)] = 0;
+	heap32[(r6+39)] = 0;
+	heap32[(r6)] = 0;
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+else{
+	r0 = _2E_str638;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 847;
+	_assert(i7);
+}
+}
+
+function _ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r1 = r1 >> 2;
+	r2 = r0 >> 2;
+	heap32[(r2+5)] = heap32[(r1+4)];
+	heap32[(r2+6)] = heap32[(r1+5)];
+	heap32[(r2+7)] = heap32[(r1+6)];
+	heap32[(r2+8)] = heap32[(r1+7)];
+	heap32[(r2+1)] = heap32[(r1)];
+	heap32[(r2+2)] = heap32[(r1+1)];
+	heap32[(r2+3)] = heap32[(r1+2)];
+	heap32[(r2+4)] = heap32[(r1+3)];
+	heap32[(r2+9)] = heap32[(r1+8)];
+	heap32[(r2+10)] = heap32[(r1+9)];
+	heap32[(r2+11)] = heap32[(r1+10)];
+	heap32[(r2+12)] = heap32[(r1+11)];
+	r3 = heap32[(r1+12)];
+	heap32[(r2+14)] = r3;
+	r3 = 0;
+	r4 = heap32[(r1+13)];
+	r4 = r4 != r3;
+	r4 = r4 & 1;
+	heap8[r0+60] = r4;
+	r4 = heap32[(r2+22)];
+	r5 = heap32[(r1+14)];
+if(!(r4 >=r5)) //_LBB147_17
+{
+	r6 = heap32[(r2+23)];
+if(!(r6 >=r5)) //_LBB147_17
+{
+	if(r5 !=0) //_LBB147_4
+{
+	r6 = gNumAlignedAllocs;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r7 = (r7 + 1)|0;
+	r8 = r5 << 6;
+	heap32[(r6)] = r7;
+	r6 = r8 | 19;
+	heap32[(g0)] = r6;
+	malloc(i7);
+	r6 = r_g0;
+	if(r6 !=0) //_LBB147_6
+{
+	r7 = 0;
+	r8 = (r6 + 4)|0;
+	r7 = (r7 - r8)|0;
+	r7 = r7 & 15;
+	r7 = (r6 + r7)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r6;
+	r6 = r8;
+}
+}
+else{
+	r6 = 0;
+}
+	r7 = (r0 + 96)|0;
+	if(r4 <1) //_LBB147_9
+{
+	r4 = r7 >> 2;
+	r9 = heap32[(r4)];
+}
+else{
+	r8 = 0;
+_12: while(true){
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r10 = (r6 + r8)|0;
+	r11 = (r9 + r8)|0;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = 64;
+	r4 = (r4 + -1)|0;
+	r8 = (r8 + 64)|0;
+	memcpy(i7);
+if(!(r4 !=0)) //_LBB147_10
+{
+break _12;
+}
+}
+	r7 = (r0 + 96)|0;
+}
+if(!(r9 ==0)) //_LBB147_16
+{
+	r4 = heapU8[r0+100];
+if(!(r4 ==0)) //_LBB147_15
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r8 = heap32[(r4)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r4)] = r8;
+	r4 = heap32[(r9+-1)];
+	heap32[(g0)] = r4;
+	free(i7);
+}
+	r4 = r7 >> 2;
+	heap32[(r4)] = 0;
+}
+	r4 = 1;
+	r7 = r7 >> 2;
+	heap8[r0+100] = r4;
+	heap32[(r7)] = r6;
+	heap32[(r2+23)] = r5;
+}
+}
+	heap32[(r2+22)] = r5;
+_23: do {
+if(!(r5 <1)) //_LBB147_20
+{
+	r4 = 0;
+	r6 = heap32[(r1+16)];
+	r5 = (r4 - r5)|0;
+_25: while(true){
+	r7 = (r4 * -12)|0;
+	r7 = r7 << 2;
+	r8 = r4 << 6;
+	r9 = heap32[(r2+24)];
+	r7 = (r6 + r7)|0;
+	r9 = (r9 - r8)|0;
+	r7 = r7 >> 2;
+	r9 = r9 >> 2;
+	heap32[(r9+4)] = heap32[(r7+4)];
+	heap32[(r9+5)] = heap32[(r7+5)];
+	heap32[(r9+6)] = heap32[(r7+6)];
+	heap32[(r9+7)] = heap32[(r7+7)];
+	r9 = heap32[(r2+24)];
+	r9 = (r9 - r8)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = heap32[(r7)];
+	heap32[(r9+1)] = heap32[(r7+1)];
+	heap32[(r9+2)] = heap32[(r7+2)];
+	heap32[(r9+3)] = heap32[(r7+3)];
+	r9 = heap32[(r2+24)];
+	r9 = (r9 - r8)|0;
+	r10 = heap32[(r7+8)];
+	r9 = r9 >> 2;
+	heap32[(r9+8)] = r10;
+	r9 = heap32[(r2+24)];
+	r9 = (r9 - r8)|0;
+	r10 = heap32[(r7+9)];
+	r9 = r9 >> 2;
+	heap32[(r9+9)] = r10;
+	r9 = heap32[(r2+24)];
+	r8 = (r9 - r8)|0;
+	r7 = heap32[(r7+10)];
+	r4 = (r4 + -1)|0;
+	r8 = r8 >> 2;
+	heap32[(r8+10)] = r7;
+	if(r5 !=r4) //_LBB147_19
+{
+continue _25;
+}
+else{
+break _23;
+}
+}
+}
+} while(0);
+	r4 = heap32[(r2+32)];
+	r5 = heap32[(r1+15)];
+_28: do {
+if(!(r4 >=r5)) //_LBB147_23
+{
+	r6 = (r0 + 124)|0;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r5;
+	r6 = (r5 - r4)|0;
+	r4 = r4 << 4;
+	_ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7);
+_30: while(true){
+	r7 = heap32[(r2+34)];
+	r7 = (r7 + r4)|0;
+	r7 = r7 >> 2;
+	r6 = (r6 + -1)|0;
+	r4 = (r4 + 16)|0;
+	heap32[(r7)] = 0;
+	heap32[(r7+1)] = 0;
+	heap32[(r7+2)] = 0;
+	heap32[(r7+3)] = 0;
+	if(r6 !=0) //_LBB147_22
+{
+continue _30;
+}
+else{
+break _28;
+}
+}
+}
+} while(0);
+	heap32[(r2+32)] = r5;
+_33: do {
+if(!(r5 <1)) //_LBB147_26
+{
+	r4 = 0;
+	r6 = heap32[(r1+17)];
+	r5 = (r4 - r5)|0;
+_35: while(true){
+	r7 = r4 << 4;
+	r8 = (r6 - r7)|0;
+	r9 = r8 >> 2;
+	r10 = heap32[(r2+34)];
+	r10 = (r10 - r7)|0;
+	r9 = heap32[(r9+3)];
+	r10 = r10 >> 2;
+	heap32[(r10+3)] = r9;
+	r9 = heap32[(r2+34)];
+	r10 = heapU16[(r8+6)>>1];
+	r9 = (r9 - r7)|0;
+	heap16[(r9+6)>>1] = r10;
+	r9 = heap32[(r2+34)];
+	r10 = heapU16[(r8+8)>>1];
+	r9 = (r9 - r7)|0;
+	heap16[(r9+8)>>1] = r10;
+	r9 = heap32[(r2+34)];
+	r10 = heapU16[(r8+10)>>1];
+	r9 = (r9 - r7)|0;
+	heap16[(r9+10)>>1] = r10;
+	r9 = heap32[(r2+34)];
+	r10 = heapU16[(r8)>>1];
+	r9 = (r9 - r7)|0;
+	heap16[(r9)>>1] = r10;
+	r9 = heap32[(r2+34)];
+	r10 = heapU16[(r8+2)>>1];
+	r9 = (r9 - r7)|0;
+	heap16[(r9+2)>>1] = r10;
+	r9 = heap32[(r2+34)];
+	r8 = heapU16[(r8+4)>>1];
+	r4 = (r4 + -1)|0;
+	r7 = (r9 - r7)|0;
+	heap16[(r7+4)>>1] = r8;
+	if(r5 !=r4) //_LBB147_25
+{
+continue _35;
+}
+else{
+break _33;
+}
+}
+}
+} while(0);
+	r4 = heap32[(r1+19)];
+	heap32[(r2+36)] = r4;
+	r4 = heap32[(r2+38)];
+	r5 = heap32[(r1+20)];
+if(!(r4 >=r5)) //_LBB147_43
+{
+	r6 = heap32[(r2+39)];
+if(!(r6 >=r5)) //_LBB147_43
+{
+	if(r5 !=0) //_LBB147_30
+{
+	r6 = gNumAlignedAllocs;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r7 = (r7 + 1)|0;
+	r8 = r5 << 5;
+	heap32[(r6)] = r7;
+	r6 = r8 | 19;
+	heap32[(g0)] = r6;
+	malloc(i7);
+	r6 = r_g0;
+	if(r6 !=0) //_LBB147_32
+{
+	r7 = 0;
+	r8 = (r6 + 4)|0;
+	r7 = (r7 - r8)|0;
+	r7 = r7 & 15;
+	r7 = (r6 + r7)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r6;
+	r6 = r8;
+}
+}
+else{
+	r6 = 0;
+}
+	r7 = (r0 + 160)|0;
+	if(r4 <1) //_LBB147_35
+{
+	r4 = r7 >> 2;
+	r9 = heap32[(r4)];
+}
+else{
+	r8 = 0;
+_49: while(true){
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r10 = (r9 + r8)|0;
+	r10 = r10 >> 2;
+	r11 = (r6 + r8)|0;
+	r4 = (r4 + -1)|0;
+	r8 = (r8 + 32)|0;
+	r12 = heap32[(r10)];
+	r11 = r11 >> 2;
+	r13 = heap32[(r10+1)];
+	r14 = heap32[(r10+2)];
+	r15 = heap32[(r10+3)];
+	r16 = heap32[(r10+4)];
+	r17 = heap32[(r10+5)];
+	r18 = heap32[(r10+6)];
+	r10 = heap32[(r10+7)];
+	heap32[(r11)] = r12;
+	heap32[(r11+1)] = r13;
+	heap32[(r11+2)] = r14;
+	heap32[(r11+3)] = r15;
+	heap32[(r11+4)] = r16;
+	heap32[(r11+5)] = r17;
+	heap32[(r11+6)] = r18;
+	heap32[(r11+7)] = r10;
+if(!(r4 !=0)) //_LBB147_36
+{
+break _49;
+}
+}
+	r7 = (r0 + 160)|0;
+}
+if(!(r9 ==0)) //_LBB147_42
+{
+	r4 = heapU8[r0+164];
+if(!(r4 ==0)) //_LBB147_41
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r8 = heap32[(r4)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r4)] = r8;
+	r4 = heap32[(r9+-1)];
+	heap32[(g0)] = r4;
+	free(i7);
+}
+	r4 = r7 >> 2;
+	heap32[(r4)] = 0;
+}
+	r4 = 1;
+	r7 = r7 >> 2;
+	heap8[r0+164] = r4;
+	heap32[(r7)] = r6;
+	heap32[(r2+39)] = r5;
+}
+}
+	heap32[(r2+38)] = r5;
+_60: do {
+if(!(r5 <1)) //_LBB147_46
+{
+	r0 = heap32[(r1+18)];
+	r1 = (r3 - r5)|0;
+_62: while(true){
+	r4 = (r3 * -10)|0;
+	r4 = r4 << 1;
+	r4 = (r0 + r4)|0;
+	r5 = r3 << 5;
+	r6 = heap32[(r2+40)];
+	r7 = heapU16[(r4+14)>>1];
+	r6 = (r6 - r5)|0;
+	heap16[(r6+6)>>1] = r7;
+	r6 = heap32[(r2+40)];
+	r7 = heapU16[(r4+16)>>1];
+	r6 = (r6 - r5)|0;
+	heap16[(r6+8)>>1] = r7;
+	r6 = heap32[(r2+40)];
+	r7 = heapU16[(r4+18)>>1];
+	r6 = (r6 - r5)|0;
+	heap16[(r6+10)>>1] = r7;
+	r6 = heap32[(r2+40)];
+	r7 = heapU16[(r4+8)>>1];
+	r6 = (r6 - r5)|0;
+	heap16[(r6)>>1] = r7;
+	r6 = heap32[(r2+40)];
+	r7 = heapU16[(r4+10)>>1];
+	r6 = (r6 - r5)|0;
+	heap16[(r6+2)>>1] = r7;
+	r6 = (r3 * -5)|0;
+	r7 = heap32[(r2+40)];
+	r4 = heapU16[(r4+12)>>1];
+	r6 = r6 << 2;
+	r7 = (r7 - r5)|0;
+	r6 = (r0 + r6)|0;
+	heap16[(r7+4)>>1] = r4;
+	r4 = r6 >> 2;
+	r6 = heap32[(r2+40)];
+	r6 = (r6 - r5)|0;
+	r7 = heap32[(r4)];
+	r6 = r6 >> 2;
+	heap32[(r6+3)] = r7;
+	r6 = heap32[(r2+40)];
+	r5 = (r6 - r5)|0;
+	r4 = heap32[(r4+1)];
+	r3 = (r3 + -1)|0;
+	r5 = r5 >> 2;
+	heap32[(r5+4)] = r4;
+	if(r1 !=r3) //_LBB147_45
+{
+continue _62;
+}
+else{
+break _60;
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	f0 = llvm_readDouble((r0+32));
+	r2 = r1 >> 2;
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r2+5)] = f0;
+	f0 = llvm_readDouble((r0+40));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r2+6)] = f0;
+	f0 = llvm_readDouble((r0+48));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r2+7)] = f0;
+	f0 = llvm_readDouble((r0+56));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r2+8)] = f0;
+	f0 = llvm_readDouble((r0));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r2+1)] = f0;
+	f0 = llvm_readDouble((r0+8));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r2+2)] = f0;
+	f0 = llvm_readDouble((r0+16));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r2+3)] = f0;
+	f0 = llvm_readDouble((r0+24));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r2+4)] = f0;
+	f0 = llvm_readDouble((r0+64));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r2+9)] = f0;
+	f0 = llvm_readDouble((r0+72));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r2+10)] = f0;
+	f0 = llvm_readDouble((r0+80));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r2+11)] = f0;
+	f0 = llvm_readDouble((r0+88));
+	f0 = f0; //fdtos f0, f0
+	r0 = r0 >> 2;
+	heapFloat[(r2+12)] = f0;
+	r3 = heap32[(r0+24)];
+	heap32[(r2+14)] = r3;
+	r3 = 0;
+	r4 = heap32[(r0+25)];
+	r4 = r4 != r3;
+	r4 = r4 & 1;
+	heap8[r1+60] = r4;
+	r4 = heap32[(r2+22)];
+	r5 = heap32[(r0+26)];
+if(!(r4 >=r5)) //_LBB148_17
+{
+	r6 = heap32[(r2+23)];
+if(!(r6 >=r5)) //_LBB148_17
+{
+	if(r5 !=0) //_LBB148_4
+{
+	r6 = gNumAlignedAllocs;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r7 = (r7 + 1)|0;
+	r8 = r5 << 6;
+	heap32[(r6)] = r7;
+	r6 = r8 | 19;
+	heap32[(g0)] = r6;
+	malloc(i7);
+	r6 = r_g0;
+	if(r6 !=0) //_LBB148_6
+{
+	r7 = 0;
+	r8 = (r6 + 4)|0;
+	r7 = (r7 - r8)|0;
+	r7 = r7 & 15;
+	r7 = (r6 + r7)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r6;
+	r6 = r8;
+}
+}
+else{
+	r6 = 0;
+}
+	r7 = (r1 + 96)|0;
+	if(r4 <1) //_LBB148_9
+{
+	r4 = r7 >> 2;
+	r9 = heap32[(r4)];
+}
+else{
+	r8 = 0;
+_12: while(true){
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r10 = (r6 + r8)|0;
+	r11 = (r9 + r8)|0;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = 64;
+	r4 = (r4 + -1)|0;
+	r8 = (r8 + 64)|0;
+	memcpy(i7);
+if(!(r4 !=0)) //_LBB148_10
+{
+break _12;
+}
+}
+	r7 = (r1 + 96)|0;
+}
+if(!(r9 ==0)) //_LBB148_16
+{
+	r4 = heapU8[r1+100];
+if(!(r4 ==0)) //_LBB148_15
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r8 = heap32[(r4)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r4)] = r8;
+	r4 = heap32[(r9+-1)];
+	heap32[(g0)] = r4;
+	free(i7);
+}
+	r4 = r7 >> 2;
+	heap32[(r4)] = 0;
+}
+	r4 = 1;
+	r7 = r7 >> 2;
+	heap8[r1+100] = r4;
+	heap32[(r7)] = r6;
+	heap32[(r2+23)] = r5;
+}
+}
+	heap32[(r2+22)] = r5;
+_23: do {
+if(!(r5 <1)) //_LBB148_20
+{
+	r4 = 0;
+	r6 = heap32[(r0+28)];
+	r5 = (r4 - r5)|0;
+_25: while(true){
+	r7 = (r4 * -10)|0;
+	r7 = r7 << 3;
+	r8 = (r6 + r7)|0;
+	r9 = r4 << 6;
+	r10 = heap32[(r2+24)];
+	f0 = llvm_readDouble((r8+32));
+	r10 = (r10 - r9)|0;
+	r10 = r10 >> 2;
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r10+4)] = f0;
+	f0 = llvm_readDouble((r8+40));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r10+5)] = f0;
+	f0 = llvm_readDouble((r8+48));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r10+6)] = f0;
+	f0 = llvm_readDouble((r8+56));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r10+7)] = f0;
+	r10 = heap32[(r2+24)];
+	f0 = llvm_readDouble((r6+r7));
+	r7 = (r10 - r9)|0;
+	r7 = r7 >> 2;
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r7)] = f0;
+	f0 = llvm_readDouble((r8+8));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r7+1)] = f0;
+	f0 = llvm_readDouble((r8+16));
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r7+2)] = f0;
+	r10 = (r4 * -20)|0;
+	f0 = llvm_readDouble((r8+24));
+	r8 = r10 << 2;
+	f0 = f0; //fdtos f0, f0
+	r8 = (r6 + r8)|0;
+	heapFloat[(r7+3)] = f0;
+	r7 = r8 >> 2;
+	r8 = heap32[(r2+24)];
+	r8 = (r8 - r9)|0;
+	r10 = heap32[(r7+16)];
+	r8 = r8 >> 2;
+	heap32[(r8+8)] = r10;
+	r8 = heap32[(r2+24)];
+	r8 = (r8 - r9)|0;
+	r10 = heap32[(r7+17)];
+	r8 = r8 >> 2;
+	heap32[(r8+9)] = r10;
+	r8 = heap32[(r2+24)];
+	r8 = (r8 - r9)|0;
+	r7 = heap32[(r7+18)];
+	r4 = (r4 + -1)|0;
+	r8 = r8 >> 2;
+	heap32[(r8+10)] = r7;
+	if(r5 !=r4) //_LBB148_19
+{
+continue _25;
+}
+else{
+break _23;
+}
+}
+}
+} while(0);
+	r4 = heap32[(r2+32)];
+	r5 = heap32[(r0+27)];
+_28: do {
+if(!(r4 >=r5)) //_LBB148_23
+{
+	r6 = (r1 + 124)|0;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r5;
+	r6 = (r5 - r4)|0;
+	r4 = r4 << 4;
+	_ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7);
+_30: while(true){
+	r7 = heap32[(r2+34)];
+	r7 = (r7 + r4)|0;
+	r7 = r7 >> 2;
+	r6 = (r6 + -1)|0;
+	r4 = (r4 + 16)|0;
+	heap32[(r7)] = 0;
+	heap32[(r7+1)] = 0;
+	heap32[(r7+2)] = 0;
+	heap32[(r7+3)] = 0;
+	if(r6 !=0) //_LBB148_22
+{
+continue _30;
+}
+else{
+break _28;
+}
+}
+}
+} while(0);
+	heap32[(r2+32)] = r5;
+_33: do {
+if(!(r5 <1)) //_LBB148_26
+{
+	r4 = 0;
+	r6 = heap32[(r0+29)];
+	r5 = (r4 - r5)|0;
+_35: while(true){
+	r7 = r4 << 4;
+	r8 = (r6 - r7)|0;
+	r9 = r8 >> 2;
+	r10 = heap32[(r2+34)];
+	r10 = (r10 - r7)|0;
+	r9 = heap32[(r9+3)];
+	r10 = r10 >> 2;
+	heap32[(r10+3)] = r9;
+	r9 = heap32[(r2+34)];
+	r10 = heapU16[(r8+6)>>1];
+	r9 = (r9 - r7)|0;
+	heap16[(r9+6)>>1] = r10;
+	r9 = heap32[(r2+34)];
+	r10 = heapU16[(r8+8)>>1];
+	r9 = (r9 - r7)|0;
+	heap16[(r9+8)>>1] = r10;
+	r9 = heap32[(r2+34)];
+	r10 = heapU16[(r8+10)>>1];
+	r9 = (r9 - r7)|0;
+	heap16[(r9+10)>>1] = r10;
+	r9 = heap32[(r2+34)];
+	r10 = heapU16[(r8)>>1];
+	r9 = (r9 - r7)|0;
+	heap16[(r9)>>1] = r10;
+	r9 = heap32[(r2+34)];
+	r10 = heapU16[(r8+2)>>1];
+	r9 = (r9 - r7)|0;
+	heap16[(r9+2)>>1] = r10;
+	r9 = heap32[(r2+34)];
+	r8 = heapU16[(r8+4)>>1];
+	r4 = (r4 + -1)|0;
+	r7 = (r9 - r7)|0;
+	heap16[(r7+4)>>1] = r8;
+	if(r5 !=r4) //_LBB148_25
+{
+continue _35;
+}
+else{
+break _33;
+}
+}
+}
+} while(0);
+	r4 = heap32[(r0+30)];
+	heap32[(r2+36)] = r4;
+	r4 = heap32[(r2+38)];
+	r5 = heap32[(r0+31)];
+if(!(r4 >=r5)) //_LBB148_43
+{
+	r6 = heap32[(r2+39)];
+if(!(r6 >=r5)) //_LBB148_43
+{
+	if(r5 !=0) //_LBB148_30
+{
+	r6 = gNumAlignedAllocs;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r7 = (r7 + 1)|0;
+	r8 = r5 << 5;
+	heap32[(r6)] = r7;
+	r6 = r8 | 19;
+	heap32[(g0)] = r6;
+	malloc(i7);
+	r6 = r_g0;
+	if(r6 !=0) //_LBB148_32
+{
+	r7 = 0;
+	r8 = (r6 + 4)|0;
+	r7 = (r7 - r8)|0;
+	r7 = r7 & 15;
+	r7 = (r6 + r7)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r6;
+	r6 = r8;
+}
+}
+else{
+	r6 = 0;
+}
+	r7 = (r1 + 160)|0;
+	if(r4 <1) //_LBB148_35
+{
+	r4 = r7 >> 2;
+	r9 = heap32[(r4)];
+}
+else{
+	r8 = 0;
+_49: while(true){
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r10 = (r9 + r8)|0;
+	r10 = r10 >> 2;
+	r11 = (r6 + r8)|0;
+	r4 = (r4 + -1)|0;
+	r8 = (r8 + 32)|0;
+	r12 = heap32[(r10)];
+	r11 = r11 >> 2;
+	r13 = heap32[(r10+1)];
+	r14 = heap32[(r10+2)];
+	r15 = heap32[(r10+3)];
+	r16 = heap32[(r10+4)];
+	r17 = heap32[(r10+5)];
+	r18 = heap32[(r10+6)];
+	r10 = heap32[(r10+7)];
+	heap32[(r11)] = r12;
+	heap32[(r11+1)] = r13;
+	heap32[(r11+2)] = r14;
+	heap32[(r11+3)] = r15;
+	heap32[(r11+4)] = r16;
+	heap32[(r11+5)] = r17;
+	heap32[(r11+6)] = r18;
+	heap32[(r11+7)] = r10;
+if(!(r4 !=0)) //_LBB148_36
+{
+break _49;
+}
+}
+	r7 = (r1 + 160)|0;
+}
+if(!(r9 ==0)) //_LBB148_42
+{
+	r4 = heapU8[r1+164];
+if(!(r4 ==0)) //_LBB148_41
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r8 = heap32[(r4)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r4)] = r8;
+	r4 = heap32[(r9+-1)];
+	heap32[(g0)] = r4;
+	free(i7);
+}
+	r4 = r7 >> 2;
+	heap32[(r4)] = 0;
+}
+	r4 = 1;
+	r7 = r7 >> 2;
+	heap8[r1+164] = r4;
+	heap32[(r7)] = r6;
+	heap32[(r2+39)] = r5;
+}
+}
+	heap32[(r2+38)] = r5;
+_60: do {
+if(!(r5 <1)) //_LBB148_46
+{
+	r0 = heap32[(r0+32)];
+	r1 = (r3 - r5)|0;
+_62: while(true){
+	r4 = (r3 * -10)|0;
+	r4 = r4 << 1;
+	r4 = (r0 + r4)|0;
+	r5 = r3 << 5;
+	r6 = heap32[(r2+40)];
+	r7 = heapU16[(r4+14)>>1];
+	r6 = (r6 - r5)|0;
+	heap16[(r6+6)>>1] = r7;
+	r6 = heap32[(r2+40)];
+	r7 = heapU16[(r4+16)>>1];
+	r6 = (r6 - r5)|0;
+	heap16[(r6+8)>>1] = r7;
+	r6 = heap32[(r2+40)];
+	r7 = heapU16[(r4+18)>>1];
+	r6 = (r6 - r5)|0;
+	heap16[(r6+10)>>1] = r7;
+	r6 = heap32[(r2+40)];
+	r7 = heapU16[(r4+8)>>1];
+	r6 = (r6 - r5)|0;
+	heap16[(r6)>>1] = r7;
+	r6 = heap32[(r2+40)];
+	r7 = heapU16[(r4+10)>>1];
+	r6 = (r6 - r5)|0;
+	heap16[(r6+2)>>1] = r7;
+	r6 = (r3 * -5)|0;
+	r7 = heap32[(r2+40)];
+	r4 = heapU16[(r4+12)>>1];
+	r6 = r6 << 2;
+	r7 = (r7 - r5)|0;
+	r6 = (r0 + r6)|0;
+	heap16[(r7+4)>>1] = r4;
+	r4 = r6 >> 2;
+	r6 = heap32[(r2+40)];
+	r6 = (r6 - r5)|0;
+	r7 = heap32[(r4)];
+	r6 = r6 >> 2;
+	heap32[(r6+3)] = r7;
+	r6 = heap32[(r2+40)];
+	r5 = (r6 - r5)|0;
+	r4 = heap32[(r4+1)];
+	r3 = (r3 + -1)|0;
+	r5 = r5 >> 2;
+	heap32[(r5+4)] = r4;
+	if(r1 !=r3) //_LBB148_45
+{
+continue _62;
+}
+else{
+break _60;
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN14btQuantizedBvhD2Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV14btQuantizedBvh;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+40)];
+if(!(r1 ==0)) //_LBB149_4
+{
+	r3 = heapU8[r0+164];
+if(!(r3 ==0)) //_LBB149_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+40)] = 0;
+}
+	r1 = 1;
+	heap8[r0+164] = r1;
+	heap32[(r2+40)] = 0;
+	heap32[(r2+38)] = 0;
+	heap32[(r2+39)] = 0;
+	r3 = heap32[(r2+34)];
+if(!(r3 ==0)) //_LBB149_8
+{
+	r4 = heapU8[r0+140];
+if(!(r4 ==0)) //_LBB149_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+34)] = 0;
+}
+	heap8[r0+140] = r1;
+	heap32[(r2+34)] = 0;
+	heap32[(r2+32)] = 0;
+	heap32[(r2+33)] = 0;
+	r3 = heap32[(r2+29)];
+if(!(r3 ==0)) //_LBB149_12
+{
+	r4 = heapU8[r0+120];
+if(!(r4 ==0)) //_LBB149_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+29)] = 0;
+}
+	heap8[r0+120] = r1;
+	heap32[(r2+29)] = 0;
+	heap32[(r2+27)] = 0;
+	heap32[(r2+28)] = 0;
+	r3 = heap32[(r2+24)];
+if(!(r3 ==0)) //_LBB149_16
+{
+	r4 = heapU8[r0+100];
+if(!(r4 ==0)) //_LBB149_15
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+24)] = 0;
+}
+	heap8[r0+100] = r1;
+	heap32[(r2+24)] = 0;
+	heap32[(r2+22)] = 0;
+	heap32[(r2+23)] = 0;
+	r3 = heap32[(r2+19)];
+if(!(r3 ==0)) //_LBB149_20
+{
+	r4 = heapU8[r0+80];
+if(!(r4 ==0)) //_LBB149_19
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+19)] = 0;
+}
+	heap8[r0+80] = r1;
+	heap32[(r2+19)] = 0;
+	heap32[(r2+17)] = 0;
+	heap32[(r2+18)] = 0;
+	return;
+}
+
+function _ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+60];
+	if(r1 !=0) //_LBB150_2
+{
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r4 = heap32[(fp+4)];
+	r5 = heap32[(fp+5)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+34)];
+	r6 = r4 << 4;
+	r7 = (r5 - r4)|0;
+	r0 = (r0 + r6)|0;
+	r6 = 0;
+_3: while(true){
+	if(r4 <r5) //_LBB150_3
+{
+	if(r6 <r7) //_LBB150_5
+{
+	r8 = heapU16[(r2)>>1];
+	r9 = heapU16[(r0+6)>>1];
+	r10 = heapU16[(r3)>>1];
+	r11 = heapU16[(r0)>>1];
+	r8 = uint(r8) > uint(r9);
+	r9 = uint(r10) < uint(r11);
+	r10 = heapU16[(r2+4)>>1];
+	r11 = heapU16[(r0+10)>>1];
+	r8 = r8 | r9;
+	r9 = uint(r10) > uint(r11);
+	r10 = heapU16[(r3+4)>>1];
+	r11 = heapU16[(r0+4)>>1];
+	r8 = r8 | r9;
+	r9 = uint(r10) < uint(r11);
+	r10 = heapU16[(r2+2)>>1];
+	r11 = heapU16[(r0+8)>>1];
+	r8 = r8 | r9;
+	r9 = uint(r10) > uint(r11);
+	r10 = heapU16[(r3+2)>>1];
+	r11 = heapU16[(r0+2)>>1];
+	r12 = r0 >> 2;
+	r8 = r8 | r9;
+	r9 = uint(r10) < uint(r11);
+	r10 = heap32[(r12+3)];
+	r6 = (r6 + 1)|0;
+	r8 = r8 | r9;
+	if(r10 <0) //_LBB150_10
+{
+__label__ = 10;
+}
+else{
+	if(r8 != 0) //_LBB150_10
+{
+__label__ = 10;
+}
+else{
+	if(r10 >-1) //_LBB150_9
+{
+	r8 = r1 >> 2;
+	r8 = heap32[(r8)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	r12 = r10 >> 21;
+	r10 = r10 & 2097151;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r12;
+	heap32[(g0+2)] = r10;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+__label__ = 11;
+}
+else{
+__label__ = 8;
+break _3;
+}
+}
+}
+if (__label__ == 10){
+	r9 = 0;
+	r9 = r10 < r9;
+	r8 = r9 & r8;
+	if(r8 != 0) //_LBB150_12
+{
+	r8 = heap32[(r12+3)];
+	if(r8 <0) //_LBB150_14
+{
+	r9 = r8 << 4;
+	r0 = (r0 - r9)|0;
+	r4 = (r4 - r8)|0;
+continue _3;
+}
+else{
+__label__ = 13;
+break _3;
+}
+}
+}
+	r0 = (r0 + 16)|0;
+	r4 = (r4 + 1)|0;
+}
+else{
+__label__ = 4;
+break _3;
+}
+}
+else{
+__label__ = 16;
+break _3;
+}
+}
+switch(__label__ ){//multiple entries
+case 16:
+	r0 = maxIterations;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+if(!(r1 >=r6)) //_LBB150_18
+{
+	heap32[(r0)] = r6;
+}
+	return;
+break;
+case 13:
+	r0 = _2E_str941;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 75;
+	_assert(i7);
+break;
+case 8:
+	r0 = _2E_str739;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 80;
+	_assert(i7);
+break;
+case 4:
+	r0 = _2E_str1143;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 703;
+	_assert(i7);
+break;
+}
+}
+else{
+	r0 = _2E_str212;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 669;
+	_assert(i7);
+}
+}
+
+function _ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+60];
+	if(r1 !=0) //_LBB151_2
+{
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r2)];
+	r4 = sp + -16;
+	heapFloat[(fp+-4)] = f0;
+	f1 = heapFloat[(r2+1)];
+	r5 = r4 >> 2;
+	heapFloat[(r5+1)] = f1;
+	f2 = heapFloat[(r2+2)];
+	heapFloat[(r5+2)] = f2;
+	f3 = heapFloat[(r2+3)];
+	r2 = r0 >> 2;
+	heapFloat[(r5+3)] = f3;
+	f4 = heapFloat[(r2+1)];
+	if(f0 <f4) //_LBB151_4
+{
+	heapFloat[(fp+-4)] = f4;
+	f0 = f4;
+}
+	f4 = heapFloat[(r2+2)];
+	if(f1 <f4) //_LBB151_7
+{
+	heapFloat[(r5+1)] = f4;
+	f1 = f4;
+}
+	f4 = heapFloat[(r2+3)];
+	if(f2 <f4) //_LBB151_10
+{
+	heapFloat[(r5+2)] = f4;
+	f2 = f4;
+}
+	f4 = heapFloat[(r2+4)];
+	if(f3 <f4) //_LBB151_13
+{
+	heapFloat[(r5+3)] = f4;
+	f3 = f4;
+}
+	f4 = heapFloat[(r2+5)];
+if(!(f4 >=f0)) //_LBB151_16
+{
+	heapFloat[(fp+-4)] = f4;
+}
+	f0 = heapFloat[(r2+6)];
+if(!(f0 >=f1)) //_LBB151_18
+{
+	heapFloat[(r5+1)] = f0;
+}
+	f0 = heapFloat[(r2+7)];
+if(!(f0 >=f2)) //_LBB151_20
+{
+	heapFloat[(r5+2)] = f0;
+}
+	f0 = heapFloat[(r2+8)];
+if(!(f0 >=f3)) //_LBB151_22
+{
+	heapFloat[(r5+3)] = f0;
+}
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r3;
+	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
+	return;
+}
+else{
+	r0 = _2E_str212;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 420;
+	_assert(i7);
+}
+}
+
+function _ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r4 = heap32[(fp+4)];
+_1: while(true){
+	r5 = heapU8[r0+60];
+	if(r5 !=0) //_LBB152_3
+{
+	r5 = heapU16[(r3)>>1];
+	r6 = heapU16[(r1+6)>>1];
+	if(uint(r5) >uint(r6)) //_LBB152_14
+{
+__label__ = 14;
+break _1;
+}
+else{
+	r5 = heapU16[(r4)>>1];
+	r6 = heapU16[(r1)>>1];
+	r5 = r5 & 65535;
+	r6 = r6 & 65535;
+	if(uint(r5) <uint(r6)) //_LBB152_14
+{
+__label__ = 14;
+break _1;
+}
+else{
+	r5 = heapU16[(r3+4)>>1];
+	r6 = heapU16[(r1+10)>>1];
+	r5 = r5 & 65535;
+	r6 = r6 & 65535;
+	if(uint(r5) >uint(r6)) //_LBB152_14
+{
+__label__ = 14;
+break _1;
+}
+else{
+	r5 = heapU16[(r4+4)>>1];
+	r6 = heapU16[(r1+4)>>1];
+	r5 = r5 & 65535;
+	r6 = r6 & 65535;
+	if(uint(r5) <uint(r6)) //_LBB152_14
+{
+__label__ = 14;
+break _1;
+}
+else{
+	r5 = heapU16[(r3+2)>>1];
+	r6 = heapU16[(r1+8)>>1];
+	r5 = r5 & 65535;
+	r6 = r6 & 65535;
+	if(uint(r5) >uint(r6)) //_LBB152_14
+{
+__label__ = 14;
+break _1;
+}
+else{
+	r5 = heapU16[(r4+2)>>1];
+	r6 = heapU16[(r1+2)>>1];
+	r5 = r5 & 65535;
+	r6 = r6 & 65535;
+	if(uint(r5) <uint(r6)) //_LBB152_14
+{
+__label__ = 14;
+break _1;
+}
+else{
+	r5 = r1 >> 2;
+	r6 = heap32[(r5+3)];
+	if(r6 <0) //_LBB152_11
+{
+	r6 = (r1 + 16)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r4;
+	_ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(i7);
+	r5 = heap32[(r5+7)];
+	if(r5 <0) //_LBB152_13
+{
+	r6 = 1;
+	r5 = (r6 - r5)|0;
+	r5 = r5 << 4;
+	r1 = (r1 + r5)|0;
+continue _1;
+}
+else{
+	r1 = (r1 + 32)|0;
+continue _1;
+}
+}
+else{
+__label__ = 10;
+break _1;
+}
+}
+}
+}
+}
+}
+}
+}
+else{
+__label__ = 2;
+break _1;
+}
+}
+switch(__label__ ){//multiple entries
+case 14:
+	return;
+break;
+case 2:
+	r0 = _2E_str212;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 419;
+	_assert(i7);
+break;
+case 10:
+	r0 = r2 >> 2;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+2)];
+	r1 = r6 >> 21;
+	r3 = r6 & 2097151;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	return;
+break;
+}
+}
+
+function _ZNK14btQuantizedBvh26reportAabbOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r4 = heapU8[r0+60];
+_1: do {
+	if(r4 ==0) //_LBB153_20
+{
+	r0 = r0 >> 2;
+	r4 = heap32[(r0+24)];
+	r5 = 0;
+	r6 = r5;
+_3: while(true){
+	r7 = heap32[(r0+14)];
+	if(r7 >r5) //_LBB153_21
+{
+	if(r7 >r6) //_LBB153_23
+{
+	r7 = r2 >> 2;
+	r8 = r4 >> 2;
+	r6 = (r6 + 1)|0;
+	f0 = heapFloat[(r7)];
+	f1 = heapFloat[(r8+4)];
+	if(f0 >f1) //_LBB153_26
+{
+__label__ = 26;
+}
+else{
+	r9 = r3 >> 2;
+	f0 = heapFloat[(r9)];
+	f1 = heapFloat[(r8)];
+	if(f0 <f1) //_LBB153_26
+{
+__label__ = 26;
+}
+else{
+	r9 = 1;
+__label__ = 27;
+}
+}
+if (__label__ == 26){
+	r9 = 0;
+}
+	f0 = heapFloat[(r7+2)];
+	f1 = heapFloat[(r8+6)];
+	if(f0 >f1) //_LBB153_30
+{
+__label__ = 29;
+}
+else{
+	r10 = r3 >> 2;
+	f0 = heapFloat[(r10+2)];
+	f1 = heapFloat[(r8+2)];
+	if(f0 <f1) //_LBB153_30
+{
+__label__ = 29;
+}
+else{
+__label__ = 30;
+}
+}
+if (__label__ == 29){
+	r9 = 0;
+}
+	f0 = heapFloat[(r7+1)];
+	f1 = heapFloat[(r8+5)];
+	if(f0 <=f1) //_LBB153_33
+{
+	r7 = r3 >> 2;
+	f0 = heapFloat[(r7+1)];
+	f1 = heapFloat[(r8+1)];
+	r7 = 0;
+	r10 = heap32[(r8+8)];
+	r11 = -1;
+	r9 = f0 < f1 ? r7 : r9;
+	r7 = r10 == r11;
+	r12 = r9 & 255;
+if(!(r12 ==0)) //_LBB153_35
+{
+	r10 = r10 != r11;
+	r10 = r10 & 1;
+	if(r10 ==0) //_LBB153_36
+{
+	r10 = r1 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+2)];
+	r11 = heap32[(r8+10)];
+	r12 = heap32[(r8+9)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r12;
+	heap32[(g0+2)] = r11;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+}
+}
+}
+else{
+	r7 = heap32[(r8+8)];
+	r9 = -1;
+	r7 = r7 == r9;
+	r9 = 0;
+}
+	r9 = r9 & 255;
+if(!(r9 !=0)) //_LBB153_39
+{
+	r7 = r7 & 1;
+	if(r7 ==0) //_LBB153_40
+{
+	r7 = heap32[(r8+8)];
+	r8 = r7 << 6;
+	r4 = (r4 + r8)|0;
+	r5 = (r7 + r5)|0;
+continue _3;
+}
+}
+	r4 = (r4 + 64)|0;
+	r5 = (r5 + 1)|0;
+}
+else{
+__label__ = 22;
+break _3;
+}
+}
+else{
+__label__ = 40;
+break _3;
+}
+}
+switch(__label__ ){//multiple entries
+case 40:
+	r0 = maxIterations;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	if(r1 >=r6) //_LBB153_17
+{
+break _1;
+}
+else{
+	heap32[(r0)] = r6;
+	return;
+}
+break;
+case 22:
+	r0 = _2E_str1921;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 367;
+	_assert(i7);
+break;
+}
+}
+else{
+	r4 = sp + -6;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = 0;
+	_ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(i7);
+	r2 = sp + -12;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = 1;
+	r3 = r0 >> 2;
+	_ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(i7);
+	r5 = heap32[(r3+36)];
+	if(r5 ==2) //_LBB153_18
+{
+	r3 = heap32[(r3+34)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r4;
+	heap32[(g0+4)] = r2;
+	_ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(i7);
+	return;
+}
+else{
+	if(r5 ==1) //_LBB153_5
+{
+	r5 = heapU8[r0+60];
+	if(r5 ==0) //_LBB153_7
+{
+	r2 = _2E_str212;
+	r3 = _2E_str537;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 735;
+	_assert(i7);
+}
+else{
+	r5 = heap32[(r3+38)];
+	if(r5 >0) //_LBB153_8
+{
+	r5 = 0;
+_42: while(true){
+	r6 = heap32[(r3+40)];
+	r7 = r5 << 5;
+	r8 = (r6 + r7)|0;
+	r9 = heapU16[(sp+-6)>>1];
+	r10 = heapU16[(r8+6)>>1];
+if(!(uint(r9) >uint(r10))) //_LBB153_16
+{
+	r9 = heapU16[(sp+-12)>>1];
+	r6 = heapU16[(r6+r7)>>1];
+	r7 = r9 & 65535;
+	r6 = r6 & 65535;
+if(!(uint(r7) <uint(r6))) //_LBB153_16
+{
+	r6 = heapU16[(sp+-2)>>1];
+	r7 = heapU16[(r8+10)>>1];
+	r6 = r6 & 65535;
+	r7 = r7 & 65535;
+if(!(uint(r6) >uint(r7))) //_LBB153_16
+{
+	r6 = heapU16[(sp+-8)>>1];
+	r7 = heapU16[(r8+4)>>1];
+	r6 = r6 & 65535;
+	r7 = r7 & 65535;
+if(!(uint(r6) <uint(r7))) //_LBB153_16
+{
+	r6 = heapU16[(sp+-4)>>1];
+	r7 = heapU16[(r8+8)>>1];
+	r6 = r6 & 65535;
+	r7 = r7 & 65535;
+if(!(uint(r6) >uint(r7))) //_LBB153_16
+{
+	r6 = heapU16[(sp+-10)>>1];
+	r7 = heapU16[(r8+2)>>1];
+	r6 = r6 & 65535;
+	r7 = r7 & 65535;
+if(!(uint(r6) <uint(r7))) //_LBB153_16
+{
+	r6 = r8 >> 2;
+	r7 = heap32[(r6+3)];
+	r6 = heap32[(r6+4)];
+	r6 = (r6 + r7)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r2;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r6;
+	_ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(i7);
+}
+}
+}
+}
+}
+}
+	r5 = (r5 + 1)|0;
+	r6 = heap32[(r3+38)];
+	if(r6 >r5) //_LBB153_9
+{
+continue _42;
+}
+else{
+break _1;
+}
+}
+}
+else{
+break _1;
+}
+}
+}
+else{
+	if(r5 !=0) //_LBB153_19
+{
+	r0 = _2E_str10;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 341;
+	_assert(i7);
+}
+else{
+	r3 = heap32[(r3+14)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r2;
+	heap32[(g0+4)] = 0;
+	heap32[(g0+5)] = r3;
+	_ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(i7);
+	return;
+}
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN14btQuantizedBvh9buildTreeEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var r24;
+	var r25;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+var __label__ = 0;
+	i7 = sp + -112;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+2)];
+	r2 = (r1 - r0)|0;
+	if(r2 >0) //_LBB154_2
+{
+	r3 = heap32[(fp)];
+	r4 = r3 >> 2;
+	r5 = heap32[(r4+14)];
+	if(r2 !=1) //_LBB154_7
+{
+_5: do {
+	if(r0 <r1) //_LBB154_9
+{
+	r6 = heapU8[r3+60];
+	f1 =                         0;
+	r7 = r0;
+	f2 = f1;
+	f3 = f1;
+_7: while(true){
+	r8 = r6 & 255;
+	if(r8 ==0) //_LBB154_12
+{
+	r9 = heap32[(r4+19)];
+	r10 = r7 << 6;
+	r9 = (r9 + r10)|0;
+	r9 = r9 >> 2;
+	f0 = heapFloat[(r9)];
+	f5 = heapFloat[(r9+1)];
+	f8 = heapFloat[(r9+2)];
+	f4 = heapFloat[(r9+4)];
+	f6 = heapFloat[(r9+5)];
+	f7 = heapFloat[(r9+6)];
+}
+else{
+	r9 = heap32[(r4+29)];
+	r10 = r7 << 4;
+	r11 = (r9 + r10)|0;
+	r9 = heapU16[(r9+r10)>>1];
+	r10 = heapU16[(r11+2)>>1];
+	r12 = heapU16[(r11+4)>>1];
+	r13 = heapU16[(r11+6)>>1];
+	r14 = heapU16[(r11+8)>>1];
+	r11 = heapU16[(r11+10)>>1];
+	f0 = uint(r9); //fuitos r9, f0
+	f4 = heapFloat[(r4+9)];
+	f5 = uint(r13); //fuitos r13, f5
+	f6 = uint(r10); //fuitos r10, f6
+	f7 = heapFloat[(r4+10)];
+	f8 = uint(r14); //fuitos r14, f8
+	f9 = uint(r12); //fuitos r12, f9
+	f10 = heapFloat[(r4+11)];
+	f11 = uint(r11); //fuitos r11, f11
+	f0 = f0/f4;
+	f12 = heapFloat[(r4+1)];
+	f4 = f5/f4;
+	f5 = f6/f7;
+	f6 = heapFloat[(r4+2)];
+	f7 = f8/f7;
+	f8 = f9/f10;
+	f9 = heapFloat[(r4+3)];
+	f10 = f11/f10;
+	f0 = f0+f12;
+	f5 = f5+f6;
+	f8 = f8+f9;
+	f4 = f4+f12;
+	f6 = f7+f6;
+	f7 = f10+f9;
+}
+	f0 = f4+f0;
+	f4 =                       0.5;
+	f5 = f6+f5;
+	f6 = f7+f8;
+	f0 = f0*f4;
+	f5 = f5*f4;
+	f6 = f6*f4;
+	r7 = (r7 + 1)|0;
+	f3 = f3+f0;
+	f2 = f2+f5;
+	f1 = f1+f6;
+if(!(r1 !=r7)) //_LBB154_10
+{
+break _7;
+}
+}
+	f0 = r2; //fitos r2, f0
+	if(r0 <r1) //_LBB154_16
+{
+	f5 =                         1;
+	f5 = f5/f0;
+	f6 = f3*f5;
+	f7 = f2*f5;
+	f5 = f1*f5;
+	f1 =                         0;
+	r6 = r0;
+	f2 = f1;
+	f3 = f1;
+_16: while(true){
+	if(r8 ==0) //_LBB154_19
+{
+	r7 = heap32[(r4+19)];
+	r9 = r6 << 6;
+	r7 = (r7 + r9)|0;
+	r7 = r7 >> 2;
+	f8 = heapFloat[(r7)];
+	f10 = heapFloat[(r7+1)];
+	f13 = heapFloat[(r7+2)];
+	f9 = heapFloat[(r7+4)];
+	f11 = heapFloat[(r7+5)];
+	f12 = heapFloat[(r7+6)];
+}
+else{
+	r7 = heap32[(r4+29)];
+	r9 = r6 << 4;
+	r10 = (r7 + r9)|0;
+	r7 = heapU16[(r7+r9)>>1];
+	r9 = heapU16[(r10+2)>>1];
+	r11 = heapU16[(r10+4)>>1];
+	r12 = heapU16[(r10+6)>>1];
+	r13 = heapU16[(r10+8)>>1];
+	r10 = heapU16[(r10+10)>>1];
+	f8 = uint(r7); //fuitos r7, f8
+	f9 = heapFloat[(r4+9)];
+	f10 = uint(r12); //fuitos r12, f10
+	f11 = uint(r9); //fuitos r9, f11
+	f12 = heapFloat[(r4+10)];
+	f13 = uint(r13); //fuitos r13, f13
+	f14 = uint(r11); //fuitos r11, f14
+	f15 = heapFloat[(r4+11)];
+	f16 = uint(r10); //fuitos r10, f16
+	f8 = f8/f9;
+	f17 = heapFloat[(r4+1)];
+	f9 = f10/f9;
+	f10 = f11/f12;
+	f11 = heapFloat[(r4+2)];
+	f12 = f13/f12;
+	f13 = f14/f15;
+	f14 = heapFloat[(r4+3)];
+	f15 = f16/f15;
+	f8 = f8+f17;
+	f10 = f10+f11;
+	f13 = f13+f14;
+	f9 = f9+f17;
+	f11 = f12+f11;
+	f12 = f15+f14;
+}
+	f8 = f9+f8;
+	f9 = f11+f10;
+	f10 = f12+f13;
+	f8 = f8*f4;
+	f9 = f9*f4;
+	f10 = f10*f4;
+	f8 = f8-f6;
+	f9 = f9-f7;
+	f10 = f10-f5;
+	f8 = f8*f8;
+	f9 = f9*f9;
+	f10 = f10*f10;
+	r6 = (r6 + 1)|0;
+	f3 = f3+f8;
+	f2 = f2+f9;
+	f1 = f1+f10;
+if(!(r1 !=r6)) //_LBB154_17
+{
+break _5;
+}
+}
+}
+else{
+	f1 =                         0;
+	f2 = f1;
+	f3 = f1;
+}
+}
+else{
+	f0 = r2; //fitos r2, f0
+	f1 =                         0;
+	f2 = f1;
+	f3 = f1;
+}
+} while(0);
+	f4 =                        -1;
+	f5 =                         1;
+	f0 = f0+f4;
+	f0 = f5/f0;
+	f3 = f3*f0;
+	f2 = f2*f0;
+	f0 = f1*f0;
+	if(f3 >=f2) //_LBB154_23
+{
+	r6 = 2;
+	r7 = 0;
+	r6 = f3 < f0 ? r6 : r7;
+}
+else{
+	r6 = 2;
+	r7 = 1;
+	r6 = f2 < f0 ? r6 : r7;
+}
+	r7 = sp + -32;
+	r8 = r7 >> 2;
+	heap32[(fp+-8)] = 0;
+	heap32[(r8+1)] = 0;
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = 0;
+	if(r0 <r1) //_LBB154_26
+{
+	r9 = heapU8[r3+60];
+	f0 =                         0;
+	r10 = r0;
+	f1 = f0;
+	f2 = f0;
+_31: while(true){
+	r11 = r9 & 255;
+	if(r11 ==0) //_LBB154_29
+{
+	r11 = heap32[(r4+19)];
+	r12 = r10 << 6;
+	r11 = (r11 + r12)|0;
+	r11 = r11 >> 2;
+	f3 = heapFloat[(r11)];
+	f6 = heapFloat[(r11+1)];
+	f9 = heapFloat[(r11+2)];
+	f4 = heapFloat[(r11+4)];
+	f7 = heapFloat[(r11+5)];
+	f8 = heapFloat[(r11+6)];
+}
+else{
+	r11 = heap32[(r4+29)];
+	r12 = r10 << 4;
+	r13 = (r11 + r12)|0;
+	r11 = heapU16[(r11+r12)>>1];
+	r12 = heapU16[(r13+2)>>1];
+	r14 = heapU16[(r13+4)>>1];
+	r15 = heapU16[(r13+6)>>1];
+	r16 = heapU16[(r13+8)>>1];
+	r13 = heapU16[(r13+10)>>1];
+	f3 = uint(r11); //fuitos r11, f3
+	f4 = heapFloat[(r4+9)];
+	f6 = uint(r15); //fuitos r15, f6
+	f7 = uint(r12); //fuitos r12, f7
+	f8 = heapFloat[(r4+10)];
+	f9 = uint(r16); //fuitos r16, f9
+	f10 = uint(r14); //fuitos r14, f10
+	f11 = heapFloat[(r4+11)];
+	f12 = uint(r13); //fuitos r13, f12
+	f3 = f3/f4;
+	f13 = heapFloat[(r4+1)];
+	f4 = f6/f4;
+	f6 = f7/f8;
+	f7 = heapFloat[(r4+2)];
+	f8 = f9/f8;
+	f9 = f10/f11;
+	f10 = heapFloat[(r4+3)];
+	f11 = f12/f11;
+	f3 = f3+f13;
+	f6 = f6+f7;
+	f9 = f9+f10;
+	f4 = f4+f13;
+	f7 = f8+f7;
+	f8 = f11+f10;
+}
+	f3 = f4+f3;
+	f4 =                       0.5;
+	f6 = f7+f6;
+	f7 = f8+f9;
+	f3 = f3*f4;
+	f6 = f6*f4;
+	f4 = f7*f4;
+	r10 = (r10 + 1)|0;
+	f2 = f2+f3;
+	f1 = f1+f6;
+	f0 = f0+f4;
+if(!(r1 !=r10)) //_LBB154_27
+{
+break _31;
+}
+}
+	heapFloat[(r8+2)] = f0;
+	heapFloat[(r8+1)] = f1;
+	heapFloat[(fp+-8)] = f2;
+}
+else{
+	f0 =                         0;
+	f1 = f0;
+	f2 = f0;
+}
+	f3 = r2; //fitos r2, f3
+	f3 = f5/f3;
+	f2 = f2*f3;
+	f1 = f1*f3;
+	heapFloat[(fp+-8)] = f2;
+	f0 = f0*f3;
+	heapFloat[(r8+1)] = f1;
+	heapFloat[(r8+2)] = f0;
+_40: do {
+	if(r0 <r1) //_LBB154_34
+{
+	r8 = r6 << 2;
+	r6 = (r7 + r8)|0;
+	r6 = r6 >> 2;
+	f0 = heapFloat[(r6)];
+	r6 = r0 << 4;
+	r7 = (r0 - r1)|0;
+	r9 = r0 << 6;
+	r10 = r6 | 12;
+	r11 = 0;
+	r12 = r9;
+	r6 = r0;
+_42: while(true){
+	r13 = heapU8[r3+60];
+	if(r13 ==0) //_LBB154_37
+{
+	r14 = r11 << 4;
+	r15 = heap32[(r4+19)];
+	r15 = (r15 + r9)|0;
+	r14 = r14 << 2;
+	r14 = (r15 - r14)|0;
+	r14 = r14 >> 2;
+	f1 = heapFloat[(r14)];
+	f3 = heapFloat[(r14+1)];
+	f6 = heapFloat[(r14+2)];
+	f2 = heapFloat[(r14+4)];
+	f4 = heapFloat[(r14+5)];
+	f5 = heapFloat[(r14+6)];
+}
+else{
+	r14 = heap32[(r4+29)];
+	r14 = (r14 + r10)|0;
+	r15 = r11 << 4;
+	r14 = (r14 - r15)|0;
+	r15 = heapU16[(r14+-12)>>1];
+	r16 = heapU16[(r14+-10)>>1];
+	r17 = heapU16[(r14+-8)>>1];
+	r18 = heapU16[(r14+-6)>>1];
+	r19 = heapU16[(r14+-4)>>1];
+	r14 = heapU16[(r14+-2)>>1];
+	f1 = uint(r15); //fuitos r15, f1
+	f2 = heapFloat[(r4+9)];
+	f3 = uint(r18); //fuitos r18, f3
+	f4 = uint(r16); //fuitos r16, f4
+	f5 = heapFloat[(r4+10)];
+	f6 = uint(r19); //fuitos r19, f6
+	f7 = uint(r17); //fuitos r17, f7
+	f8 = heapFloat[(r4+11)];
+	f9 = uint(r14); //fuitos r14, f9
+	f1 = f1/f2;
+	f10 = heapFloat[(r4+1)];
+	f2 = f3/f2;
+	f3 = f4/f5;
+	f4 = heapFloat[(r4+2)];
+	f5 = f6/f5;
+	f6 = f7/f8;
+	f7 = heapFloat[(r4+3)];
+	f8 = f9/f8;
+	f1 = f1+f10;
+	f3 = f3+f4;
+	f6 = f6+f7;
+	f2 = f2+f10;
+	f4 = f5+f4;
+	f5 = f8+f7;
+}
+	f1 = f2+f1;
+	f2 =                       0.5;
+	r14 = sp + -48;
+	f3 = f4+f3;
+	f1 = f1*f2;
+	f4 = f5+f6;
+	r15 = r14 >> 2;
+	f3 = f3*f2;
+	heapFloat[(fp+-12)] = f1;
+	f1 = f4*f2;
+	heapFloat[(r15+1)] = f3;
+	r14 = (r14 + r8)|0;
+	heapFloat[(r15+2)] = f1;
+	r14 = r14 >> 2;
+	heap32[(r15+3)] = 0;
+	f1 = heapFloat[(r14)];
+	if(f1 >f0) //_LBB154_40
+{
+	if(r13 ==0) //_LBB154_42
+{
+	r13 = r11 << 4;
+	r14 = heap32[(r4+19)];
+	r15 = (r14 + r9)|0;
+	r13 = r13 << 2;
+	r13 = (r15 - r13)|0;
+	r13 = r13 >> 2;
+	r15 = heap32[(r13+15)];
+	r16 = heap32[(r13+14)];
+	r17 = heap32[(r13+13)];
+	r18 = heap32[(r13+12)];
+	r19 = heap32[(r13+11)];
+	r20 = heap32[(r13+10)];
+	r21 = heap32[(r13+9)];
+	r22 = heap32[(r13+8)];
+	f1 = heapFloat[(r13+7)];
+	f2 = heapFloat[(r13+6)];
+	f3 = heapFloat[(r13+5)];
+	f4 = heapFloat[(r13+4)];
+	f5 = heapFloat[(r13+3)];
+	f6 = heapFloat[(r13+2)];
+	f7 = heapFloat[(r13+1)];
+	f8 = heapFloat[(r13)];
+	r13 = r6 << 6;
+	r23 = (r14 + r12)|0;
+	r14 = (r14 + r13)|0;
+	heap32[(g0)] = r23;
+	heap32[(g0+1)] = r14;
+	heap32[(g0+2)] = 64;
+	memcpy(i7);
+	r14 = heap32[(r4+19)];
+	r13 = (r14 + r13)|0;
+	r13 = r13 >> 2;
+	heapFloat[(r13)] = f8;
+	heapFloat[(r13+1)] = f7;
+	heapFloat[(r13+2)] = f6;
+	heapFloat[(r13+3)] = f5;
+	heapFloat[(r13+4)] = f4;
+	heapFloat[(r13+5)] = f3;
+	heapFloat[(r13+6)] = f2;
+	heapFloat[(r13+7)] = f1;
+	heap32[(r13+8)] = r22;
+	heap32[(r13+9)] = r21;
+	heap32[(r13+10)] = r20;
+	heap32[(r13+11)] = r19;
+	heap32[(r13+12)] = r18;
+	heap32[(r13+13)] = r17;
+	heap32[(r13+14)] = r16;
+	heap32[(r13+15)] = r15;
+}
+else{
+	r13 = heap32[(r4+29)];
+	r14 = (r13 + r10)|0;
+	r15 = r11 << 4;
+	r14 = (r14 - r15)|0;
+	r15 = r6 << 4;
+	r16 = r14 >> 2;
+	r17 = heap32[(r16)];
+	r18 = heapU16[(r14+-2)>>1];
+	r19 = heapU16[(r14+-4)>>1];
+	r20 = heapU16[(r14+-6)>>1];
+	r21 = heapU16[(r14+-8)>>1];
+	r22 = heapU16[(r14+-10)>>1];
+	r23 = heapU16[(r13+r15)>>1];
+	r24 = heapU16[(r14+-12)>>1];
+	r13 = (r13 + r15)|0;
+	heap16[(r14+-12)>>1] = r23;
+	r23 = heapU16[(r13+2)>>1];
+	heap16[(r14+-10)>>1] = r23;
+	r23 = heapU16[(r13+4)>>1];
+	heap16[(r14+-8)>>1] = r23;
+	r23 = heapU16[(r13+6)>>1];
+	heap16[(r14+-6)>>1] = r23;
+	r23 = heapU16[(r13+8)>>1];
+	heap16[(r14+-4)>>1] = r23;
+	r23 = heapU16[(r13+10)>>1];
+	r13 = r13 >> 2;
+	heap16[(r14+-2)>>1] = r23;
+	r13 = heap32[(r13+3)];
+	heap32[(r16)] = r13;
+	r13 = heap32[(r4+29)];
+	r14 = (r13 + r15)|0;
+	heap16[(r13+r15)>>1] = r24;
+	heap16[(r14+2)>>1] = r22;
+	heap16[(r14+4)>>1] = r21;
+	heap16[(r14+6)>>1] = r20;
+	heap16[(r14+8)>>1] = r19;
+	r13 = r14 >> 2;
+	heap16[(r14+10)>>1] = r18;
+	heap32[(r13+3)] = r17;
+}
+	r6 = (r6 + 1)|0;
+}
+	r11 = (r11 + -1)|0;
+	r12 = (r12 + 64)|0;
+if(!(r7 !=r11)) //_LBB154_35
+{
+break _40;
+}
+}
+}
+else{
+	r6 = r0;
+}
+} while(0);
+	r7 = (r2 / 3)|0;
+	r8 = (r7 + r0)|0;
+	if(r8 >=r6) //_LBB154_48
+{
+__label__ = 46;
+}
+else{
+	r8 = (r1 + -1)|0;
+	r7 = (r8 - r7)|0;
+	if(r7 <=r6) //_LBB154_48
+{
+__label__ = 46;
+}
+else{
+__label__ = 47;
+}
+}
+if (__label__ == 46){
+	r6 = r2 >> 1;
+	r6 = (r6 + r0)|0;
+}
+if(!(r6 ==r0)) //_LBB154_51
+{
+	if(r6 !=r1) //_LBB154_52
+{
+	r2 = heap32[(r4+14)];
+	heap32[(fp+-21)] = r2;
+	r2 = heapU8[r3+60];
+	if(r2 ==0) //_LBB154_54
+{
+	r2 = heap32[(fp+-21)];
+	r2 = r2 << 6;
+	r7 = heap32[(r4+24)];
+	r2 = (r7 + r2)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = heap32[(r4+5)];
+	heap32[(r2+1)] = heap32[(r4+6)];
+	heap32[(r2+2)] = heap32[(r4+7)];
+	heap32[(r2+3)] = heap32[(r4+8)];
+}
+else{
+	r2 = heap32[(r4+34)];
+	r7 = heap32[(fp+-21)];
+	r7 = r7 << 4;
+	r2 = (r2 + r7)|0;
+	r7 = (r3 + 20)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = 0;
+	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
+}
+	r2 = heap32[(r4+14)];
+	r7 = heapU8[r3+60];
+	if(r7 ==0) //_LBB154_57
+{
+	r2 = r2 << 6;
+	r7 = heap32[(r4+24)];
+	r2 = (r7 + r2)|0;
+	r2 = r2 >> 2;
+	heap32[(r2+4)] = heap32[(r4+1)];
+	heap32[(r2+5)] = heap32[(r4+2)];
+	heap32[(r2+6)] = heap32[(r4+3)];
+	heap32[(r2+7)] = heap32[(r4+4)];
+}
+else{
+	r7 = heap32[(r4+34)];
+	r2 = r2 << 4;
+	r2 = (r7 + r2)|0;
+	r2 = (r2 + 6)|0;
+	r7 = (r3 + 4)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = 1;
+	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
+}
+_73: do {
+if(!(r0 >=r1)) //_LBB154_95
+{
+	r2 = r0;
+_75: while(true){
+	r7 = heapU8[r3+60];
+_77: do {
+	if(r7 ==0) //_LBB154_69
+{
+	r7 = heap32[(r4+19)];
+	r8 = r2 << 6;
+	r7 = (r7 + r8)|0;
+	r7 = r7 >> 2;
+	f0 = heapFloat[(r7+4)];
+	r8 = sp + -80;
+	heapFloat[(fp+-20)] = f0;
+	f1 = heapFloat[(r7+5)];
+	r8 = r8 >> 2;
+	heapFloat[(r8+1)] = f1;
+	f2 = heapFloat[(r7+6)];
+	heapFloat[(r8+2)] = f2;
+	f3 = heapFloat[(r7+7)];
+	heapFloat[(r8+3)] = f3;
+	f4 = heapFloat[(r7)];
+	r8 = sp + -64;
+	heapFloat[(fp+-16)] = f4;
+	f5 = heapFloat[(r7+1)];
+	r8 = r8 >> 2;
+	heapFloat[(r8+1)] = f5;
+	f6 = heapFloat[(r7+2)];
+	heapFloat[(r8+2)] = f6;
+	f7 = heapFloat[(r7+3)];
+	heapFloat[(r8+3)] = f7;
+	r7 = heap32[(r4+14)];
+	r8 = heap32[(r4+24)];
+	r7 = r7 << 6;
+	r8 = (r8 + r7)|0;
+	r8 = r8 >> 2;
+	f8 = heapFloat[(r8)];
+if(!(f4 >=f8)) //_LBB154_71
+{
+	heapFloat[(r8)] = f4;
+}
+	f4 = heapFloat[(r8+1)];
+if(!(f5 >=f4)) //_LBB154_73
+{
+	heapFloat[(r8+1)] = f5;
+}
+	f4 = heapFloat[(r8+2)];
+if(!(f6 >=f4)) //_LBB154_75
+{
+	heapFloat[(r8+2)] = f6;
+}
+	f4 = heapFloat[(r8+3)];
+if(!(f7 >=f4)) //_LBB154_77
+{
+	heapFloat[(r8+3)] = f7;
+}
+	r8 = heap32[(r4+24)];
+	r7 = (r8 + r7)|0;
+	r7 = r7 >> 2;
+	f4 = heapFloat[(r7+4)];
+if(!(f4 >=f0)) //_LBB154_79
+{
+	heapFloat[(r7+4)] = f0;
+}
+	f0 = heapFloat[(r7+5)];
+if(!(f0 >=f1)) //_LBB154_81
+{
+	heapFloat[(r7+5)] = f1;
+}
+	f0 = heapFloat[(r7+6)];
+if(!(f0 >=f2)) //_LBB154_83
+{
+	heapFloat[(r7+6)] = f2;
+}
+	f0 = heapFloat[(r7+7)];
+	if(f0 >=f3) //_LBB154_94
+{
+break _77;
+}
+else{
+	heapFloat[(r7+7)] = f3;
+}
+}
+else{
+	r7 = heap32[(r4+29)];
+	r8 = r2 << 4;
+	r9 = (r7 + r8)|0;
+	r10 = sp + -80;
+	r11 = heapU16[(r9+10)>>1];
+	r12 = heapU16[(r9+8)>>1];
+	r13 = heapU16[(r9+6)>>1];
+	f0 = heapFloat[(r4+11)];
+	f1 = heapFloat[(r4+10)];
+	f2 = heapFloat[(r4+9)];
+	r14 = r10 >> 2;
+	f3 = uint(r13); //fuitos r13, f3
+	heap32[(r14+3)] = 0;
+	f3 = f3/f2;
+	f4 = heapFloat[(r4+1)];
+	f3 = f3+f4;
+	f5 = uint(r12); //fuitos r12, f5
+	heapFloat[(fp+-20)] = f3;
+	f3 = f5/f1;
+	f5 = heapFloat[(r4+2)];
+	f3 = f3+f5;
+	f6 = uint(r11); //fuitos r11, f6
+	heapFloat[(r14+1)] = f3;
+	f3 = f6/f0;
+	f6 = heapFloat[(r4+3)];
+	f3 = f3+f6;
+	heapFloat[(r14+2)] = f3;
+	r7 = heapU16[(r7+r8)>>1];
+	r8 = sp + -64;
+	f3 = uint(r7); //fuitos r7, f3
+	r7 = heapU16[(r9+4)>>1];
+	r9 = heapU16[(r9+2)>>1];
+	f7 = uint(r9); //fuitos r9, f7
+	f2 = f3/f2;
+	r9 = r8 >> 2;
+	f3 = uint(r7); //fuitos r7, f3
+	f1 = f7/f1;
+	f2 = f2+f4;
+	heap32[(r9+3)] = 0;
+	f0 = f3/f0;
+	f1 = f1+f5;
+	heapFloat[(fp+-16)] = f2;
+	f0 = f0+f6;
+	heapFloat[(r9+1)] = f1;
+	heapFloat[(r9+2)] = f0;
+	r7 = heap32[(r4+14)];
+	r9 = sp + -6;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = 0;
+	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
+	r8 = sp + -12;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = 1;
+	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
+	r8 = heapU16[(sp+-6)>>1];
+	r9 = heap32[(r4+34)];
+	r7 = r7 << 4;
+	r10 = heapU16[(r9+r7)>>1];
+	if(uint(r10) >uint(r8)) //_LBB154_63
+{
+	heap16[(r9+r7)>>1] = r8;
+	r9 = heap32[(r4+34)];
+}
+	r8 = (r9 + r7)|0;
+	r10 = heapU16[(sp+-12)>>1];
+	r11 = heapU16[(r8+6)>>1];
+	if(uint(r11) <uint(r10)) //_LBB154_66
+{
+	heap16[(r8+6)>>1] = r10;
+	r9 = heap32[(r4+34)];
+}
+	r8 = (r9 + r7)|0;
+	r10 = heapU16[(sp+-4)>>1];
+	r11 = heapU16[(r8+2)>>1];
+	if(uint(r11) >uint(r10)) //_LBB154_89
+{
+	heap16[(r8+2)>>1] = r10;
+	r9 = heap32[(r4+34)];
+}
+	r8 = (r9 + r7)|0;
+	r10 = heapU16[(sp+-10)>>1];
+	r11 = heapU16[(r8+8)>>1];
+	if(uint(r11) <uint(r10)) //_LBB154_90
+{
+	heap16[(r8+8)>>1] = r10;
+	r9 = heap32[(r4+34)];
+}
+	r8 = (r9 + r7)|0;
+	r10 = heapU16[(sp+-2)>>1];
+	r11 = heapU16[(r8+4)>>1];
+	if(uint(r11) >uint(r10)) //_LBB154_92
+{
+	heap16[(r8+4)>>1] = r10;
+	r9 = heap32[(r4+34)];
+}
+	r7 = (r9 + r7)|0;
+	r8 = heapU16[(sp+-8)>>1];
+	r9 = heapU16[(r7+10)>>1];
+	if(uint(r9) <uint(r8)) //_LBB154_93
+{
+	heap16[(r7+10)>>1] = r8;
+}
+}
+} while(0);
+	r2 = (r2 + 1)|0;
+if(!(r1 !=r2)) //_LBB154_60
+{
+break _73;
+}
+}
+}
+} while(0);
+	r2 = heap32[(r4+14)];
+	r7 = (r2 + 1)|0;
+	heap32[(r4+14)] = r7;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r6;
+	_ZN14btQuantizedBvh9buildTreeEii(i7);
+	r0 = heap32[(r4+14)];
+	heap32[(fp+-23)] = r0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r1;
+	_ZN14btQuantizedBvh9buildTreeEii(i7);
+	r0 = heap32[(r4+14)];
+	r0 = (r0 - r5)|0;
+	heap32[(fp+-22)] = r0;
+	r0 = heapU8[r3+60];
+_120: do {
+if(!(r0 ==0)) //_LBB154_143
+{
+	r0 = heap32[(fp+-22)];
+	r0 = r0 << 4;
+if(!(r0 <2049)) //_LBB154_142
+{
+	r0 = heap32[(r4+34)];
+	r1 = heap32[(fp+-23)];
+	r1 = r1 << 4;
+	heap32[(fp+-24)] = r1;
+	r2 = r2 << 4;
+	r1 = (r0 + r1)|0;
+	r2 = (r0 + r2)|0;
+	r5 = r1 >> 2;
+	r6 = r2 >> 2;
+	r5 = heap32[(r5+3)];
+	r8 = 0;
+	r6 = heap32[(r6+7)];
+	r9 = 1;
+	r10 = (r8 - r6)|0;
+	r6 = r6 < 0 ? r10 : r9;
+	r10 = r6 << 4;
+if(!(r10 >2048)) //_LBB154_119
+{
+	r10 = heap32[(r4+39)];
+	r11 = heap32[(r4+38)];
+	if(r10 ==r11) //_LBB154_100
+{
+	r12 = r11 << 1;
+	r12 = r11 == 0 ? r9 : r12;
+	if(r10 >=r12) //_LBB154_99
+{
+__label__ = 92;
+}
+else{
+	if(r12 !=0) //_LBB154_103
+{
+	r10 = gNumAlignedAllocs;
+	r10 = r10 >> 2;
+	r13 = heap32[(r10)];
+	r13 = (r13 + 1)|0;
+	r14 = r12 << 5;
+	heap32[(r10)] = r13;
+	r10 = r14 | 19;
+	heap32[(g0)] = r10;
+	malloc(i7);
+	r13 = r_g0;
+	if(r13 !=0) //_LBB154_105
+{
+	r10 = 0;
+	r14 = (r13 + 4)|0;
+	r10 = (r10 - r14)|0;
+	r10 = r10 & 15;
+	r10 = (r13 + r10)|0;
+	r14 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r13;
+	r13 = r14;
+}
+}
+else{
+	r13 = 0;
+}
+	r14 = (r3 + 160)|0;
+	if(r11 <1) //_LBB154_108
+{
+	r10 = r14 >> 2;
+	r16 = heap32[(r10)];
+}
+else{
+	r10 = 0;
+	r15 = r11;
+_137: while(true){
+	r16 = r14 >> 2;
+	r16 = heap32[(r16)];
+	r17 = (r16 + r10)|0;
+	r17 = r17 >> 2;
+	r18 = (r13 + r10)|0;
+	r15 = (r15 + -1)|0;
+	r10 = (r10 + 32)|0;
+	r19 = heap32[(r17)];
+	r18 = r18 >> 2;
+	r20 = heap32[(r17+1)];
+	r21 = heap32[(r17+2)];
+	r22 = heap32[(r17+3)];
+	r23 = heap32[(r17+4)];
+	r24 = heap32[(r17+5)];
+	r25 = heap32[(r17+6)];
+	r17 = heap32[(r17+7)];
+	heap32[(r18)] = r19;
+	heap32[(r18+1)] = r20;
+	heap32[(r18+2)] = r21;
+	heap32[(r18+3)] = r22;
+	heap32[(r18+4)] = r23;
+	heap32[(r18+5)] = r24;
+	heap32[(r18+6)] = r25;
+	heap32[(r18+7)] = r17;
+if(!(r15 !=0)) //_LBB154_109
+{
+break _137;
+}
+}
+	r14 = (r3 + 160)|0;
+}
+	if(r16 !=0) //_LBB154_113
+{
+	r10 = heapU8[r3+164];
+	if(r10 !=0) //_LBB154_115
+{
+	r10 = gNumAlignedFree;
+	r10 = r10 >> 2;
+	r15 = heap32[(r10)];
+	r15 = (r15 + 1)|0;
+	r16 = r16 >> 2;
+	heap32[(r10)] = r15;
+	r10 = heap32[(r16+-1)];
+	heap32[(g0)] = r10;
+	free(i7);
+	r10 = heap32[(r4+38)];
+}
+else{
+	r10 = r11;
+}
+	r15 = r14 >> 2;
+	heap32[(r15)] = 0;
+}
+else{
+	r10 = r11;
+}
+	r14 = r14 >> 2;
+	heap8[r3+164] = r9;
+	heap32[(r14)] = r13;
+	heap32[(r4+39)] = r12;
+__label__ = 110;
+}
+}
+else{
+__label__ = 92;
+}
+if (__label__ == 92){
+	r10 = r11;
+}
+	r10 = (r10 + 1)|0;
+	heap32[(r4+38)] = r10;
+	r10 = heap32[(r4+40)];
+	r12 = heapU16[(r2+16)>>1];
+	r11 = r11 << 5;
+	heap16[(r10+r11)>>1] = r12;
+	r10 = (r10 + r11)|0;
+	r11 = heapU16[(r2+18)>>1];
+	heap16[(r10+2)>>1] = r11;
+	r11 = heapU16[(r2+20)>>1];
+	heap16[(r10+4)>>1] = r11;
+	r11 = heapU16[(r2+22)>>1];
+	heap16[(r10+6)>>1] = r11;
+	r11 = heapU16[(r2+24)>>1];
+	heap16[(r10+8)>>1] = r11;
+	r2 = heapU16[(r2+26)>>1];
+	r11 = r10 >> 2;
+	heap16[(r10+10)>>1] = r2;
+	heap32[(r11+3)] = r7;
+	heap32[(r11+4)] = r6;
+}
+	r2 = (r8 - r5)|0;
+	r2 = r5 < 0 ? r2 : r9;
+	r5 = r2 << 4;
+if(!(r5 >2048)) //_LBB154_141
+{
+	r5 = heap32[(r4+39)];
+	r6 = heap32[(r4+38)];
+	if(r5 ==r6) //_LBB154_122
+{
+	r7 = r6 << 1;
+	r7 = r6 == 0 ? r9 : r7;
+	if(r5 >=r7) //_LBB154_121
+{
+__label__ = 113;
+}
+else{
+	if(r7 !=0) //_LBB154_125
+{
+	r5 = gNumAlignedAllocs;
+	r5 = r5 >> 2;
+	r10 = heap32[(r5)];
+	r10 = (r10 + 1)|0;
+	r11 = r7 << 5;
+	heap32[(r5)] = r10;
+	r5 = r11 | 19;
+	heap32[(g0)] = r5;
+	malloc(i7);
+	r10 = r_g0;
+	if(r10 !=0) //_LBB154_127
+{
+	r5 = (r10 + 4)|0;
+	r5 = (r8 - r5)|0;
+	r5 = r5 & 15;
+	r5 = (r10 + r5)|0;
+	r11 = (r5 + 4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r10;
+	r10 = r11;
+}
+}
+else{
+	r10 = 0;
+}
+	r11 = (r3 + 160)|0;
+	if(r6 <1) //_LBB154_130
+{
+	r5 = r11 >> 2;
+	r12 = heap32[(r5)];
+}
+else{
+	r5 = r6;
+_166: while(true){
+	r12 = r11 >> 2;
+	r12 = heap32[(r12)];
+	r13 = (r12 + r8)|0;
+	r13 = r13 >> 2;
+	r14 = (r10 + r8)|0;
+	r5 = (r5 + -1)|0;
+	r8 = (r8 + 32)|0;
+	r15 = heap32[(r13)];
+	r14 = r14 >> 2;
+	r16 = heap32[(r13+1)];
+	r17 = heap32[(r13+2)];
+	r18 = heap32[(r13+3)];
+	r19 = heap32[(r13+4)];
+	r20 = heap32[(r13+5)];
+	r21 = heap32[(r13+6)];
+	r13 = heap32[(r13+7)];
+	heap32[(r14)] = r15;
+	heap32[(r14+1)] = r16;
+	heap32[(r14+2)] = r17;
+	heap32[(r14+3)] = r18;
+	heap32[(r14+4)] = r19;
+	heap32[(r14+5)] = r20;
+	heap32[(r14+6)] = r21;
+	heap32[(r14+7)] = r13;
+if(!(r5 !=0)) //_LBB154_131
+{
+break _166;
+}
+}
+	r11 = (r3 + 160)|0;
+}
+	if(r12 !=0) //_LBB154_135
+{
+	r5 = heapU8[r3+164];
+	if(r5 !=0) //_LBB154_137
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r8 = heap32[(r5)];
+	r8 = (r8 + 1)|0;
+	r12 = r12 >> 2;
+	heap32[(r5)] = r8;
+	r5 = heap32[(r12+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+	r5 = heap32[(r4+38)];
+}
+else{
+	r5 = r6;
+}
+	r8 = r11 >> 2;
+	heap32[(r8)] = 0;
+}
+else{
+	r5 = r6;
+}
+	r8 = r11 >> 2;
+	heap8[r3+164] = r9;
+	heap32[(r8)] = r10;
+	heap32[(r4+39)] = r7;
+__label__ = 131;
+}
+}
+else{
+__label__ = 113;
+}
+if (__label__ == 113){
+	r5 = r6;
+}
+	r5 = (r5 + 1)|0;
+	heap32[(r4+38)] = r5;
+	r5 = heap32[(r4+40)];
+	r7 = heap32[(fp+-24)];
+	r0 = heapU16[(r0+r7)>>1];
+	r6 = r6 << 5;
+	heap16[(r5+r6)>>1] = r0;
+	r0 = (r5 + r6)|0;
+	r5 = heapU16[(r1+2)>>1];
+	heap16[(r0+2)>>1] = r5;
+	r5 = heapU16[(r1+4)>>1];
+	heap16[(r0+4)>>1] = r5;
+	r5 = heapU16[(r1+6)>>1];
+	heap16[(r0+6)>>1] = r5;
+	r5 = heapU16[(r1+8)>>1];
+	heap16[(r0+8)>>1] = r5;
+	r1 = heapU16[(r1+10)>>1];
+	r5 = r0 >> 2;
+	heap16[(r0+10)>>1] = r1;
+	r0 = heap32[(fp+-23)];
+	heap32[(r5+3)] = r0;
+	heap32[(r5+4)] = r2;
+}
+	r0 = heap32[(r4+38)];
+	heap32[(r4+42)] = r0;
+	r0 = heapU8[r3+60];
+	if(r0 ==0) //_LBB154_143
+{
+break _120;
+}
+}
+	r0 = heap32[(fp+-21)];
+	r0 = r0 << 4;
+	r4 = heap32[(r4+34)];
+	r4 = (r4 + r0)|0;
+	r0 = 0;
+	r4 = r4 >> 2;
+	r1 = heap32[(fp+-22)];
+	r0 = (r0 - r1)|0;
+	heap32[(r4+3)] = r0;
+	return;
+}
+} while(0);
+	r0 = heap32[(fp+-21)];
+	r0 = r0 << 6;
+	r1 = heap32[(r4+24)];
+	r0 = (r1 + r0)|0;
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+-22)];
+	heap32[(r0+8)] = r1;
+	return;
+}
+}
+	r0 = _2E_str21;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 278;
+	_assert(i7);
+}
+else{
+	r1 = heapU8[r3+60];
+	if(r1 ==0) //_LBB154_5
+{
+	r1 = heap32[(r4+24)];
+	r2 = heap32[(r4+19)];
+	r3 = r5 << 6;
+	r0 = r0 << 6;
+	r1 = (r1 + r3)|0;
+	r0 = (r2 + r0)|0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 64;
+	memcpy(i7);
+}
+else{
+	r0 = r0 << 4;
+	r1 = heap32[(r4+29)];
+	r2 = heap32[(r4+34)];
+	r3 = heapU16[(r1+r0)>>1];
+	r5 = r5 << 4;
+	r0 = (r1 + r0)|0;
+	heap16[(r2+r5)>>1] = r3;
+	r1 = (r2 + r5)|0;
+	r2 = heapU16[(r0+2)>>1];
+	heap16[(r1+2)>>1] = r2;
+	r2 = heapU16[(r0+4)>>1];
+	heap16[(r1+4)>>1] = r2;
+	r2 = heapU16[(r0+6)>>1];
+	heap16[(r1+6)>>1] = r2;
+	r2 = heapU16[(r0+8)>>1];
+	heap16[(r1+8)>>1] = r2;
+	r2 = heapU16[(r0+10)>>1];
+	r0 = r0 >> 2;
+	heap16[(r1+10)>>1] = r2;
+	r1 = r1 >> 2;
+	r0 = heap32[(r0+3)];
+	heap32[(r1+3)] = r0;
+}
+	r0 = heap32[(r4+14)];
+	r0 = (r0 + 1)|0;
+	heap32[(r4+14)] = r0;
+	return;
+}
+}
+else{
+	r0 = _2E_str2246;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 127;
+	_assert(i7);
+}
+}
+
+function _ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+var __label__ = 0;
+	i7 = sp + -96;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+60];
+	if(r1 !=0) //_LBB155_2
+{
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r4 = heap32[(fp+4)];
+	r5 = heap32[(fp+5)];
+	r6 = heap32[(fp+6)];
+	r3 = r3 >> 2;
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r3)];
+	f1 = heapFloat[(r2)];
+	f2 = heapFloat[(r3+1)];
+	f3 = heapFloat[(r2+1)];
+	f0 = f0-f1;
+	r7 = r0 >> 2;
+	f1 = f2-f3;
+	f2 = heapFloat[(r3+2)];
+	f3 = heapFloat[(r2+2)];
+	r8 = heap32[(r7+34)];
+	f2 = f2-f3;
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	f4 =                         1;
+	f3 = f4/f_g0;
+	f5 = heapFloat[(r3)];
+	f6 = heapFloat[(r2)];
+	f7 = heapFloat[(r3+1)];
+	f8 = heapFloat[(r2+1)];
+	f0 = f0*f3;
+	f9 = f5-f6;
+	f1 = f1*f3;
+	f10 = f7-f8;
+	f11 = heapFloat[(r3+2)];
+	f12 = heapFloat[(r2+2)];
+	f2 = f2*f3;
+	f3 = f11-f12;
+	f9 = f0*f9;
+	f10 = f1*f10;
+	f9 = f9+f10;
+	f3 = f2*f3;
+	f3 = f9+f3;
+	f9 =                         0;
+	if(f0 !=f9) //_LBB155_4
+{
+	f0 = f4/f0;
+}
+else{
+	f0 =        999999984306749440;
+}
+	if(f1 !=f9) //_LBB155_7
+{
+	f1 = f4/f1;
+}
+else{
+	f1 =        999999984306749440;
+}
+	if(f2 !=f9) //_LBB155_10
+{
+	f2 = f4/f2;
+}
+else{
+	f2 =        999999984306749440;
+}
+	r9 = heapU8[r0+60];
+	if(r9 !=0) //_LBB155_13
+{
+	r4 = r4 >> 2;
+	r5 = r5 >> 2;
+	r9 = f0 < f9;
+	r10 = f1 < f9;
+	r11 = f2 < f9;
+	f4 = heapFloat[(r2+3)];
+	f10 = heapFloat[(r3+3)];
+	f13 = f5 < f6 ? f5 : f6;
+	f14 = heapFloat[(r4)];
+	f15 = f7 < f8 ? f7 : f8;
+	f16 = heapFloat[(r4+1)];
+	f17 = f11 < f12 ? f11 : f12;
+	f18 = heapFloat[(r4+2)];
+	f5 = f6 < f5 ? f5 : f6;
+	f6 = heapFloat[(r5)];
+	f7 = f8 < f7 ? f7 : f8;
+	f8 = heapFloat[(r5+1)];
+	f11 = f12 < f11 ? f11 : f12;
+	f12 = heapFloat[(r5+2)];
+	r3 = r9 & 1;
+	r9 = r10 & 1;
+	r10 = r11 & 1;
+	f19 = f10 < f4 ? f10 : f4;
+	f4 = f4 < f10 ? f10 : f4;
+	f10 = f13+f14;
+	f13 = f15+f16;
+	f14 = f17+f18;
+	f5 = f5+f6;
+	f6 = f7+f8;
+	f7 = f11+f12;
+	r11 = sp + -16;
+	r12 = r11 >> 2;
+	heapFloat[(fp+-4)] = f10;
+	heapFloat[(r12+1)] = f13;
+	heapFloat[(r12+2)] = f14;
+	heapFloat[(r12+3)] = f19;
+	f8 = heapFloat[(r7+1)];
+	if(f10 <f8) //_LBB155_15
+{
+	heapFloat[(fp+-4)] = f8;
+	f10 = f8;
+}
+	f8 = heapFloat[(r7+2)];
+	if(f13 <f8) //_LBB155_18
+{
+	heapFloat[(r12+1)] = f8;
+	f13 = f8;
+}
+	f8 = heapFloat[(r7+3)];
+	if(f14 <f8) //_LBB155_21
+{
+	heapFloat[(r12+2)] = f8;
+	f14 = f8;
+}
+	f8 = heapFloat[(r7+4)];
+	if(f19 <f8) //_LBB155_24
+{
+	heapFloat[(r12+3)] = f8;
+	f19 = f8;
+}
+	f8 = heapFloat[(r7+5)];
+if(!(f8 >=f10)) //_LBB155_27
+{
+	heapFloat[(fp+-4)] = f8;
+}
+	f8 = heapFloat[(r7+6)];
+if(!(f8 >=f13)) //_LBB155_29
+{
+	heapFloat[(r12+1)] = f8;
+}
+	f8 = heapFloat[(r7+7)];
+if(!(f8 >=f14)) //_LBB155_31
+{
+	heapFloat[(r12+2)] = f8;
+}
+	f8 = heapFloat[(r7+8)];
+if(!(f8 >=f19)) //_LBB155_33
+{
+	heapFloat[(r12+3)] = f8;
+}
+	r12 = sp + -38;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r12;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = 0;
+	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
+	r11 = heapU8[r0+60];
+	if(r11 !=0) //_LBB155_35
+{
+	r11 = sp + -32;
+	r12 = r11 >> 2;
+	heapFloat[(fp+-8)] = f5;
+	heapFloat[(r12+1)] = f6;
+	heapFloat[(r12+2)] = f7;
+	heapFloat[(r12+3)] = f4;
+	f8 = heapFloat[(r7+1)];
+	if(f5 <f8) //_LBB155_37
+{
+	heapFloat[(fp+-8)] = f8;
+	f5 = f8;
+}
+	f8 = heapFloat[(r7+2)];
+	if(f6 <f8) //_LBB155_40
+{
+	heapFloat[(r12+1)] = f8;
+	f6 = f8;
+}
+	f8 = heapFloat[(r7+3)];
+	if(f7 <f8) //_LBB155_43
+{
+	heapFloat[(r12+2)] = f8;
+	f7 = f8;
+}
+	f8 = heapFloat[(r7+4)];
+	if(f4 <f8) //_LBB155_46
+{
+	heapFloat[(r12+3)] = f8;
+	f4 = f8;
+}
+	f8 = heapFloat[(r7+5)];
+if(!(f8 >=f5)) //_LBB155_49
+{
+	heapFloat[(fp+-8)] = f8;
+}
+	f5 = heapFloat[(r7+6)];
+if(!(f5 >=f6)) //_LBB155_51
+{
+	heapFloat[(r12+1)] = f5;
+}
+	f5 = heapFloat[(r7+7)];
+if(!(f5 >=f7)) //_LBB155_53
+{
+	heapFloat[(r12+2)] = f5;
+}
+	f5 = heapFloat[(r7+8)];
+if(!(f5 >=f4)) //_LBB155_55
+{
+	heapFloat[(r12+3)] = f5;
+}
+	r12 = sp + -44;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r12;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = 1;
+	r0 = r3 ^ 1;
+	r11 = r9 ^ 1;
+	r12 = r10 ^ 1;
+	r13 = 0;
+	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
+	r14 = r13;
+_66: while(true){
+	if(r13 <r6) //_LBB155_56
+{
+	if(r14 <r6) //_LBB155_58
+{
+	r15 = r8 >> 2;
+	r16 = heap32[(r15+3)];
+	r14 = (r14 + 1)|0;
+	r16 = r16 >>> 31;
+	r17 = heapU16[(sp+-38)>>1];
+	r18 = heapU16[(r8+6)>>1];
+	if(uint(r17) >uint(r18)) //_LBB155_64
+{
+__label__ = 55;
+}
+else{
+	r17 = heapU16[(r8)>>1];
+	r18 = heapU16[(sp+-44)>>1];
+	r18 = r18 & 65535;
+	r17 = r17 & 65535;
+	if(uint(r18) <uint(r17)) //_LBB155_64
+{
+__label__ = 55;
+}
+else{
+	r18 = heapU16[(sp+-34)>>1];
+	r19 = heapU16[(r8+10)>>1];
+	r18 = r18 & 65535;
+	r19 = r19 & 65535;
+	if(uint(r18) >uint(r19)) //_LBB155_64
+{
+__label__ = 55;
+}
+else{
+	r18 = heapU16[(r8+4)>>1];
+	r19 = heapU16[(sp+-40)>>1];
+	r19 = r19 & 65535;
+	r18 = r18 & 65535;
+	if(uint(r19) <uint(r18)) //_LBB155_64
+{
+__label__ = 55;
+}
+else{
+	r19 = heapU16[(sp+-36)>>1];
+	r20 = heapU16[(r8+8)>>1];
+	r19 = r19 & 65535;
+	r20 = r20 & 65535;
+	if(uint(r19) >uint(r20)) //_LBB155_64
+{
+__label__ = 55;
+}
+else{
+	r19 = heapU16[(r8+2)>>1];
+	r20 = heapU16[(sp+-42)>>1];
+	r20 = r20 & 65535;
+	r19 = r19 & 65535;
+	if(uint(r20) >=uint(r19)) //_LBB155_65
+{
+	f4 = uint(r17); //fuitos r17, f4
+	f5 = heapFloat[(r7+9)];
+	f6 = uint(r19); //fuitos r19, f6
+	f7 = heapFloat[(r7+10)];
+	f4 = f4/f5;
+	f8 = heapFloat[(r7+1)];
+	f10 = heapFloat[(r7+11)];
+	f11 = heapFloat[(r7+2)];
+	f12 = heapFloat[(r7+3)];
+	r17 = sp + -80;
+	f13 = uint(r18); //fuitos r18, f13
+	f6 = f6/f7;
+	f4 = f4+f8;
+	f13 = f13/f10;
+	r18 = r17 >> 2;
+	f6 = f6+f11;
+	heapFloat[(fp+-20)] = f4;
+	f13 = f13+f12;
+	heapFloat[(r18+1)] = f6;
+	heapFloat[(r18+2)] = f13;
+	heap32[(r18+3)] = 0;
+	r19 = heapU16[(r8+10)>>1];
+	r20 = heapU16[(r8+8)>>1];
+	r21 = heapU16[(r8+6)>>1];
+	heap32[(r18+7)] = 0;
+	f14 = heapFloat[(r5)];
+	f4 = f4-f14;
+	heapFloat[(fp+-20)] = f4;
+	f4 = heapFloat[(r5+1)];
+	f4 = f6-f4;
+	heapFloat[(r18+1)] = f4;
+	f4 = heapFloat[(r5+2)];
+	f6 = uint(r21); //fuitos r21, f6
+	f4 = f13-f4;
+	f5 = f6/f5;
+	heapFloat[(r18+2)] = f4;
+	f4 = f5+f8;
+	f5 = heapFloat[(r4)];
+	f6 = uint(r20); //fuitos r20, f6
+	f4 = f4-f5;
+	f5 = f6/f7;
+	heapFloat[(r18+4)] = f4;
+	f4 = f5+f11;
+	f5 = heapFloat[(r4+1)];
+	f6 = uint(r19); //fuitos r19, f6
+	f4 = f4-f5;
+	f5 = f6/f10;
+	heapFloat[(r18+5)] = f4;
+	r19 = r3 << 4;
+	r20 = r11 << 4;
+	f4 = f5+f12;
+	f5 = heapFloat[(r4+2)];
+	r19 = (r17 + r19)|0;
+	r20 = (r17 + r20)|0;
+	f4 = f4-f5;
+	r19 = r19 >> 2;
+	heapFloat[(r18+6)] = f4;
+	r18 = r20 >> 2;
+	f4 = heapFloat[(r19)];
+	f5 = heapFloat[(r2)];
+	f6 = heapFloat[(r18+1)];
+	f7 = heapFloat[(r2+1)];
+	f4 = f4-f5;
+	f6 = f6-f7;
+	f4 = f4*f0;
+	f6 = f6*f1;
+	if(f4 >f6) //_LBB155_64
+{
+__label__ = 55;
+}
+else{
+	r18 = r0 << 4;
+	r19 = r9 << 4;
+	r18 = (r17 + r18)|0;
+	r19 = (r17 + r19)|0;
+	r18 = r18 >> 2;
+	r19 = r19 >> 2;
+	f8 = heapFloat[(r18)];
+	f10 = heapFloat[(r19+1)];
+	f5 = f8-f5;
+	f7 = f10-f7;
+	f5 = f5*f0;
+	f7 = f7*f1;
+	if(f7 >f5) //_LBB155_64
+{
+__label__ = 55;
+}
+else{
+	r18 = r12 << 4;
+	r18 = (r17 + r18)|0;
+	r18 = r18 >> 2;
+	f8 = heapFloat[(r18+2)];
+	f10 = heapFloat[(r2+2)];
+	f8 = f8-f10;
+	f4 = f4 < f7 ? f7 : f4;
+	f7 = f8*f2;
+	if(f4 >f7) //_LBB155_64
+{
+__label__ = 55;
+}
+else{
+	r18 = r10 << 4;
+	r17 = (r17 + r18)|0;
+	r17 = r17 >> 2;
+	f8 = heapFloat[(r17+2)];
+	f8 = f8-f10;
+	f5 = f6 < f5 ? f6 : f5;
+	f6 = f8*f2;
+	if(f6 >f5) //_LBB155_64
+{
+__label__ = 55;
+}
+else{
+	f4 = f4 < f6 ? f6 : f4;
+	f5 = f7 < f5 ? f7 : f5;
+	r17 = f4 >= f3;
+	r18 = f5 <= f9;
+	r17 = r17 | r18;
+	r18 = r17 & 1;
+	r17 = r18 ^ 1;
+	if(r16 != 0) //_LBB155_71
+{
+__label__ = 65;
+}
+else{
+	if(r18 ==0) //_LBB155_72
+{
+	r18 = heap32[(r15+3)];
+	if(r18 >-1) //_LBB155_74
+{
+	r19 = r1 >> 2;
+	r19 = heap32[(r19)];
+	r19 = r19 >> 2;
+	r19 = heap32[(r19+2)];
+	r20 = r18 >> 21;
+	r18 = r18 & 2097151;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r20;
+	heap32[(g0+2)] = r18;
+	__FUNCTION_TABLE__[(r19)>>2](i7);
+__label__ = 65;
+}
+else{
+__label__ = 63;
+break _66;
+}
+}
+else{
+__label__ = 65;
+}
+}
+}
+}
+}
+}
+}
+else{
+__label__ = 55;
+}
+}
+}
+}
+}
+}
+if (__label__ == 55){
+	r17 = 0;
+}
+if(!(r17 !=0)) //_LBB155_77
+{
+	if(r16 != 0) //_LBB155_78
+{
+	r15 = heap32[(r15+3)];
+	if(r15 <0) //_LBB155_80
+{
+	r16 = r15 << 4;
+	r8 = (r8 - r16)|0;
+	r13 = (r13 - r15)|0;
+continue _66;
+}
+else{
+__label__ = 69;
+break _66;
+}
+}
+}
+	r8 = (r8 + 16)|0;
+	r13 = (r13 + 1)|0;
+}
+else{
+__label__ = 48;
+break _66;
+}
+}
+else{
+__label__ = 72;
+break _66;
+}
+}
+switch(__label__ ){//multiple entries
+case 72:
+	r0 = maxIterations;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+if(!(r1 >=r14)) //_LBB155_84
+{
+	heap32[(r0)] = r14;
+}
+	return;
+break;
+case 69:
+	r0 = _2E_str941;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 75;
+	_assert(i7);
+break;
+case 63:
+	r0 = _2E_str739;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 80;
+	_assert(i7);
+break;
+case 48:
+	r0 = _2E_str1143;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 606;
+	_assert(i7);
+break;
+}
+}
+}
+	r0 = _2E_str212;
+	r1 = _2E_str313;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 420;
+	_assert(i7);
+}
+else{
+	r0 = _2E_str212;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 543;
+	_assert(i7);
+}
+}
+
+function _ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+60];
+	if(r1 ==0) //_LBB156_2
+{
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r4 = heap32[(fp+4)];
+	r5 = heap32[(fp+5)];
+	r3 = r3 >> 2;
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r2)];
+	f1 = heapFloat[(r3)];
+	f2 = heapFloat[(r3+1)];
+	f3 = heapFloat[(r2+1)];
+	r4 = r4 >> 2;
+	r5 = r5 >> 2;
+	f4 = f1-f0;
+	r0 = r0 >> 2;
+	f5 = f2-f3;
+	f6 = heapFloat[(r3+2)];
+	f7 = heapFloat[(r2+2)];
+	r6 = heap32[(r0+24)];
+	f8 = f6-f7;
+	f9 = f4*f4;
+	f10 = f5*f5;
+	f11 = heapFloat[(r4)];
+	f12 = heapFloat[(r4+1)];
+	f13 = heapFloat[(r4+2)];
+	f14 = heapFloat[(r5)];
+	f15 = heapFloat[(r5+1)];
+	f16 = heapFloat[(r5+2)];
+	f9 = f9+f10;
+	f10 = f8*f8;
+	f9 = f9+f10;
+	heapFloat[(g0)] = f9;
+	sqrtf(i7);
+	f10 =                         1;
+	f9 = f10/f_g0;
+	f17 = heapFloat[(r3)];
+	f18 = heapFloat[(r2)];
+	f19 = heapFloat[(r3+1)];
+	f20 = heapFloat[(r2+1)];
+	f4 = f4*f9;
+	f17 = f17-f18;
+	f5 = f5*f9;
+	f18 = f19-f20;
+	f19 = heapFloat[(r3+2)];
+	f20 = heapFloat[(r2+2)];
+	f8 = f8*f9;
+	f9 = f19-f20;
+	f17 = f4*f17;
+	f18 = f5*f18;
+	f19 = f1 < f0 ? f1 : f0;
+	f20 = f2 < f3 ? f2 : f3;
+	f21 = f6 < f7 ? f6 : f7;
+	f0 = f0 < f1 ? f1 : f0;
+	f1 = f3 < f2 ? f2 : f3;
+	f2 = f7 < f6 ? f6 : f7;
+	f3 = f17+f18;
+	f6 = f8*f9;
+	f7 = f19+f11;
+	f9 = f20+f12;
+	f11 = f21+f13;
+	f0 = f0+f14;
+	f1 = f1+f15;
+	f2 = f2+f16;
+	f3 = f3+f6;
+	f6 =                         0;
+	if(f4 !=f6) //_LBB156_4
+{
+	f4 = f10/f4;
+}
+else{
+	f4 =        999999984306749440;
+}
+	if(f5 !=f6) //_LBB156_7
+{
+	f5 = f10/f5;
+}
+else{
+	f5 =        999999984306749440;
+}
+	if(f8 !=f6) //_LBB156_10
+{
+	f8 = f10/f8;
+}
+else{
+	f8 =        999999984306749440;
+}
+	r3 = f4 < f6;
+	r7 = f5 < f6;
+	r8 = f8 < f6;
+	r3 = r3 & 1;
+	r7 = r7 & 1;
+	r8 = r8 & 1;
+	r9 = r3 ^ 1;
+	r10 = r7 ^ 1;
+	r11 = r8 ^ 1;
+	r12 = 0;
+	r13 = r12;
+_15: while(true){
+	r14 = heap32[(r0+14)];
+	if(r14 >r12) //_LBB156_12
+{
+	if(r14 >r13) //_LBB156_14
+{
+	r14 = r6 >> 2;
+	f10 = heapFloat[(r14)];
+	r15 = sp + -32;
+	heapFloat[(fp+-8)] = f10;
+	r16 = r15 >> 2;
+	f12 = heapFloat[(r14+1)];
+	heapFloat[(r16+1)] = f12;
+	f13 = heapFloat[(r14+2)];
+	heapFloat[(r16+2)] = f13;
+	heap32[(r16+3)] = heap32[(r14+3)];
+	f14 = heapFloat[(r14+4)];
+	heapFloat[(r16+4)] = f14;
+	f15 = heapFloat[(r14+5)];
+	heapFloat[(r16+5)] = f15;
+	f16 = heapFloat[(r14+6)];
+	heapFloat[(r16+6)] = f16;
+	heap32[(r16+7)] = heap32[(r14+7)];
+	f17 = heapFloat[(r5)];
+	f10 = f10-f17;
+	heapFloat[(fp+-8)] = f10;
+	f10 = heapFloat[(r5+1)];
+	f10 = f12-f10;
+	heapFloat[(r16+1)] = f10;
+	f10 = heapFloat[(r5+2)];
+	f10 = f13-f10;
+	heapFloat[(r16+2)] = f10;
+	f10 = heapFloat[(r4)];
+	f10 = f14-f10;
+	heapFloat[(r16+4)] = f10;
+	f10 = heapFloat[(r4+1)];
+	f10 = f15-f10;
+	heapFloat[(r16+5)] = f10;
+	f10 = heapFloat[(r4+2)];
+	r13 = (r13 + 1)|0;
+	f10 = f16-f10;
+	heapFloat[(r16+6)] = f10;
+	f10 = heapFloat[(r14+4)];
+	if(f7 >f10) //_LBB156_17
+{
+__label__ = 17;
+}
+else{
+	f10 = heapFloat[(r14)];
+	if(f0 <f10) //_LBB156_17
+{
+__label__ = 17;
+}
+else{
+	r16 = 1;
+__label__ = 18;
+}
+}
+if (__label__ == 17){
+	r16 = 0;
+}
+	f10 = heapFloat[(r14+6)];
+	if(f11 >f10) //_LBB156_21
+{
+__label__ = 20;
+}
+else{
+	f10 = heapFloat[(r14+2)];
+	if(f2 <f10) //_LBB156_21
+{
+__label__ = 20;
+}
+else{
+__label__ = 21;
+}
+}
+if (__label__ == 20){
+	r16 = 0;
+}
+	f10 = heapFloat[(r14+5)];
+	if(f9 >f10) //_LBB156_32
+{
+__label__ = 30;
+}
+else{
+	f10 = heapFloat[(r14+1)];
+	if(f1 <f10) //_LBB156_32
+{
+__label__ = 30;
+}
+else{
+	r16 = r16 & 255;
+	if(r16 ==0) //_LBB156_32
+{
+__label__ = 30;
+}
+else{
+	r16 = r3 << 4;
+	r17 = r10 << 4;
+	r16 = (r15 + r16)|0;
+	r17 = (r15 + r17)|0;
+	r16 = r16 >> 2;
+	r17 = r17 >> 2;
+	f10 = heapFloat[(r16)];
+	f12 = heapFloat[(r2)];
+	f13 = heapFloat[(r17+1)];
+	f14 = heapFloat[(r2+1)];
+	f10 = f10-f12;
+	f13 = f13-f14;
+	f10 = f10*f4;
+	f13 = f13*f5;
+	if(f10 >f13) //_LBB156_32
+{
+__label__ = 30;
+}
+else{
+	r16 = r9 << 4;
+	r17 = r7 << 4;
+	r16 = (r15 + r16)|0;
+	r17 = (r15 + r17)|0;
+	r16 = r16 >> 2;
+	r17 = r17 >> 2;
+	f15 = heapFloat[(r16)];
+	f16 = heapFloat[(r17+1)];
+	f12 = f15-f12;
+	f14 = f16-f14;
+	f12 = f12*f4;
+	f14 = f14*f5;
+	if(f14 >f12) //_LBB156_32
+{
+__label__ = 30;
+}
+else{
+	r16 = r11 << 4;
+	r16 = (r15 + r16)|0;
+	r16 = r16 >> 2;
+	f15 = heapFloat[(r16+2)];
+	f16 = heapFloat[(r2+2)];
+	f15 = f15-f16;
+	f10 = f10 < f14 ? f14 : f10;
+	f14 = f15*f8;
+	if(f10 >f14) //_LBB156_32
+{
+__label__ = 30;
+}
+else{
+	r16 = r8 << 4;
+	r15 = (r15 + r16)|0;
+	r15 = r15 >> 2;
+	f15 = heapFloat[(r15+2)];
+	f15 = f15-f16;
+	f12 = f13 < f12 ? f13 : f12;
+	f13 = f15*f8;
+	if(f13 >f12) //_LBB156_32
+{
+__label__ = 30;
+}
+else{
+	f10 = f10 < f13 ? f13 : f10;
+	f12 = f14 < f12 ? f14 : f12;
+	r15 = f10 >= f3;
+	r16 = f12 <= f6;
+	r15 = r15 | r16;
+	r16 = r15 & 1;
+	r17 = heap32[(r14+8)];
+	r18 = -1;
+	r16 = r16 ^ 1;
+	r19 = r17 == r18;
+	if(r15 != 0) //_LBB156_31
+{
+__label__ = 32;
+}
+else{
+	r15 = r17 != r18;
+	r15 = r15 & 1;
+	if(r15 ==0) //_LBB156_33
+{
+	r15 = r1 >> 2;
+	r15 = heap32[(r15)];
+	r15 = r15 >> 2;
+	r15 = heap32[(r15+2)];
+	r17 = heap32[(r14+10)];
+	r18 = heap32[(r14+9)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r18;
+	heap32[(g0+2)] = r17;
+	__FUNCTION_TABLE__[(r15)>>2](i7);
+__label__ = 32;
+}
+else{
+__label__ = 32;
+}
+}
+}
+}
+}
+}
+}
+}
+}
+if (__label__ == 30){
+	r16 = heap32[(r14+8)];
+	r19 = -1;
+	r19 = r16 == r19;
+	r16 = 0;
+}
+if(!(r16 !=0)) //_LBB156_36
+{
+	r15 = r19 & 1;
+	if(r15 ==0) //_LBB156_37
+{
+	r14 = heap32[(r14+8)];
+	r15 = r14 << 6;
+	r6 = (r6 + r15)|0;
+	r12 = (r14 + r12)|0;
+continue _15;
+}
+}
+	r6 = (r6 + 64)|0;
+	r12 = (r12 + 1)|0;
+}
+else{
+__label__ = 13;
+break _15;
+}
+}
+else{
+__label__ = 37;
+break _15;
+}
+}
+switch(__label__ ){//multiple entries
+case 37:
+	r0 = maxIterations;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+if(!(r1 >=r13)) //_LBB156_41
+{
+	heap32[(r0)] = r13;
+}
+	return;
+break;
+case 13:
+	r0 = _2E_str1921;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 490;
+	_assert(i7);
+break;
+}
+}
+else{
+	r0 = _2E_str1844;
+	r1 = _2E_str537;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 451;
+	_assert(i7);
+}
+}
+
+function _ZN30btActivatingCollisionAlgorithmD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV30btActivatingCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN30btActivatingCollisionAlgorithmD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV30btActivatingCollisionAlgorithm;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var f0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	f0 =                         1;
+	f_g0 = f0;
+	return;
+}
+
+function _ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+3)];
+if(!(r2 ==0)) //_LBB160_23
+{
+	r0 = heapU8[r0+8];
+if(!(r0 ==0)) //_LBB160_23
+{
+	r0 = heap32[(fp+1)];
+	r3 = r0 >> 2;
+	r4 = heap32[(r3+2)];
+	r5 = heap32[(r3+1)];
+	if(r4 ==r5) //_LBB160_4
+{
+	r6 = 1;
+	r7 = r5 << 1;
+	r7 = r5 == 0 ? r6 : r7;
+if(!(r4 >=r7)) //_LBB160_3
+{
+	if(r7 !=0) //_LBB160_7
+{
+	r2 = gNumAlignedAllocs;
+	r2 = r2 >> 2;
+	r4 = heap32[(r2)];
+	r8 = r7 << 2;
+	r4 = (r4 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r2)] = r4;
+	r2 = (r8 + 16)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB160_9
+{
+	r4 = 0;
+	r8 = (r2 + 4)|0;
+	r4 = (r4 - r8)|0;
+	r4 = r4 & 15;
+	r4 = (r2 + r4)|0;
+	r8 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r2;
+	r2 = r8;
+}
+}
+else{
+	r2 = 0;
+}
+	r4 = (r0 + 12)|0;
+	if(r5 <1) //_LBB160_12
+{
+	r8 = r4 >> 2;
+	r9 = heap32[(r8)];
+}
+else{
+	r8 = 0;
+_15: while(true){
+	r9 = r4 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r8 << 2;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r2 + r10)|0;
+	r11 = heap32[(r11)];
+	r8 = (r8 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r11;
+if(!(r5 !=r8)) //_LBB160_13
+{
+break _15;
+}
+}
+	r4 = (r0 + 12)|0;
+}
+	if(r9 !=0) //_LBB160_17
+{
+	r8 = heapU8[r0+16];
+	if(r8 !=0) //_LBB160_19
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r8 = heap32[(r5)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r5)] = r8;
+	r5 = heap32[(r9+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+	r5 = heap32[(r3+1)];
+}
+	r8 = r4 >> 2;
+	heap32[(r8)] = 0;
+}
+	r4 = r4 >> 2;
+	heap8[r0+16] = r6;
+	heap32[(r4)] = r2;
+	heap32[(r3+2)] = r7;
+	r2 = heap32[(r1+3)];
+}
+}
+	r0 = r5 << 2;
+	r1 = heap32[(r3+3)];
+	r0 = (r1 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r2;
+	r0 = heap32[(r3+1)];
+	r0 = (r0 + 1)|0;
+	heap32[(r3+1)] = r0;
+}
+}
+	return;
+}
+
+function _ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+var __label__ = 0;
+	i7 = sp + -176;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1+3)];
+if(!(r1 ==0)) //_LBB161_8
+{
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+3)];
+	r5 = heap32[(fp+4)];
+	r3 = r3 >> 2;
+	r2 = r2 >> 2;
+	r6 = heap32[(r3+48)];
+	r7 = heap32[(r2+48)];
+	r8 = sp + -136;
+	r9 = r5 >> 2;
+	r10 = r8 >> 2;
+	heap32[(r9+1)] = r1;
+	heap32[(r10+33)] = 0;
+	heap32[(r10+32)] = 1566444395;
+	heap32[(fp+-34)] = heap32[(r2+1)];
+	heap32[(r10+1)] = heap32[(r2+2)];
+	heap32[(r10+2)] = heap32[(r2+3)];
+	heap32[(r10+3)] = heap32[(r2+4)];
+	heap32[(r10+4)] = heap32[(r2+5)];
+	heap32[(r10+5)] = heap32[(r2+6)];
+	heap32[(r10+6)] = heap32[(r2+7)];
+	heap32[(r10+7)] = heap32[(r2+8)];
+	heap32[(r10+8)] = heap32[(r2+9)];
+	heap32[(r10+9)] = heap32[(r2+10)];
+	heap32[(r10+10)] = heap32[(r2+11)];
+	heap32[(r10+11)] = heap32[(r2+12)];
+	heap32[(r10+12)] = heap32[(r2+13)];
+	heap32[(r10+13)] = heap32[(r2+14)];
+	heap32[(r10+14)] = heap32[(r2+15)];
+	heap32[(r10+15)] = heap32[(r2+16)];
+	heap32[(r10+16)] = heap32[(r3+1)];
+	heap32[(r10+17)] = heap32[(r3+2)];
+	heap32[(r10+18)] = heap32[(r3+3)];
+	heap32[(r10+19)] = heap32[(r3+4)];
+	heap32[(r10+20)] = heap32[(r3+5)];
+	heap32[(r10+21)] = heap32[(r3+6)];
+	heap32[(r10+22)] = heap32[(r3+7)];
+	heap32[(r10+23)] = heap32[(r3+8)];
+	heap32[(r10+24)] = heap32[(r3+9)];
+	heap32[(r10+25)] = heap32[(r3+10)];
+	heap32[(r10+26)] = heap32[(r3+11)];
+	heap32[(r10+27)] = heap32[(r3+12)];
+	heap32[(r10+28)] = heap32[(r3+13)];
+	heap32[(r10+29)] = heap32[(r3+14)];
+	r1 = _ZTV16btBoxBoxDetector;
+	heap32[(r10+30)] = heap32[(r3+15)];
+	r2 = sp + -152;
+	r1 = (r1 + 8)|0;
+	heap32[(r10+31)] = heap32[(r3+16)];
+	r3 = r2 >> 2;
+	heap32[(fp+-38)] = r1;
+	heap32[(r3+1)] = r7;
+	r1 = r4 >> 2;
+	heap32[(r3+2)] = r6;
+	r1 = heap32[(r1+5)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r1;
+	heap32[(g0+4)] = 0;
+	_ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
+	r0 = heapU8[r0+8];
+if(!(r0 ==0)) //_LBB161_8
+{
+	r0 = heap32[(r9+1)];
+	if(r0 !=0) //_LBB161_4
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+279)];
+if(!(r2 ==0)) //_LBB161_8
+{
+	r1 = heap32[(r1+277)];
+	r2 = heap32[(r9+34)];
+	if(r1 ==r2) //_LBB161_7
+{
+	r1 = (r5 + 8)|0;
+	r2 = (r5 + 72)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+}
+else{
+	r1 = (r5 + 72)|0;
+	r5 = (r5 + 8)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r5;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+	return;
+}
+}
+}
+else{
+	r0 = _2E_str59;
+	r5 = _2E_str160;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = 101;
+	_assert(i7);
+}
+}
+}
+	return;
+}
+
+function _ZN26btBoxBoxCollisionAlgorithmD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV26btBoxBoxCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+8];
+if(!(r1 ==0)) //_LBB162_3
+{
+	r1 = heap32[(r2+3)];
+if(!(r1 ==0)) //_LBB162_3
+{
+	r3 = heap32[(r2+1)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+}
+	r1 = _ZTV30btActivatingCollisionAlgorithm;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN26btBoxBoxCollisionAlgorithmD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV26btBoxBoxCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r0 = heapU8[r0+8];
+if(!(r0 ==0)) //_LBB163_3
+{
+	r0 = heap32[(r2+3)];
+if(!(r0 ==0)) //_LBB163_3
+{
+	r1 = heap32[(r2+1)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+}
+	r0 = _ZTV30btActivatingCollisionAlgorithm;
+	r0 = (r0 + 8)|0;
+	heap32[(r2)] = r0;
+	return;
+}
+
+function _ZN16btBoxBoxDetectorD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btBoxBoxDetector;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN16btBoxBoxDetectorD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btBoxBoxDetector;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var r24;
+	var r25;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -808;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = sp + -640;
+	heap32[(fp+-160)] = heap32[(r1)];
+	r3 = sp + -688;
+	heap32[(fp+-172)] = heap32[(r1+16)];
+	r4 = r2 >> 2;
+	r5 = r3 >> 2;
+	heap32[(r4+1)] = heap32[(r1+1)];
+	heap32[(r5+1)] = heap32[(r1+17)];
+	heap32[(r4+2)] = heap32[(r1+2)];
+	heap32[(r5+2)] = heap32[(r1+18)];
+	heap32[(r4+4)] = heap32[(r1+4)];
+	heap32[(r5+4)] = heap32[(r1+20)];
+	heap32[(r4+5)] = heap32[(r1+5)];
+	heap32[(r5+5)] = heap32[(r1+21)];
+	heap32[(r4+6)] = heap32[(r1+6)];
+	heap32[(r5+6)] = heap32[(r1+22)];
+	heap32[(r4+8)] = heap32[(r1+8)];
+	heap32[(r5+8)] = heap32[(r1+24)];
+	heap32[(r4+9)] = heap32[(r1+9)];
+	heap32[(r5+9)] = heap32[(r1+25)];
+	r6 = heap32[(fp)];
+	heap32[(r4+10)] = heap32[(r1+10)];
+	r6 = r6 >> 2;
+	heap32[(r5+10)] = heap32[(r1+26)];
+	r7 = heap32[(r6+2)];
+	r8 = r7 >> 2;
+	r9 = heap32[(r8)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+11)];
+	f0 = heapFloat[(r8+7)];
+	f1 = heapFloat[(r8+8)];
+	f2 = heapFloat[(r8+9)];
+	heap32[(g0)] = r7;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	f3 = f_g0;
+	r9 = heap32[(r8)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+11)];
+	heap32[(g0)] = r7;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	f4 = f_g0;
+	r8 = heap32[(r8)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+11)];
+	heap32[(g0)] = r7;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	f5 = f_g0;
+	r6 = heap32[(r6+1)];
+	r7 = r6 >> 2;
+	r8 = heap32[(r7)];
+	r8 = r8 >> 2;
+	f6 = heapFloat[(r7+8)];
+	r8 = heap32[(r8+11)];
+	f7 = heapFloat[(r7+9)];
+	f8 = heapFloat[(r7+7)];
+	heap32[(g0)] = r6;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	f9 = f_g0;
+	r8 = heap32[(r7)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+11)];
+	heap32[(g0)] = r6;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	f10 = f_g0;
+	r7 = heap32[(r7)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+11)];
+	heap32[(g0)] = r6;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	f8 = f8+f_g0;
+	f6 = f6+f10;
+	f8 = f8+f8;
+	f10 =                       0.5;
+	heapFloat[(fp+-187)] = f10;
+	f11 = heapFloat[(r1+30)];
+	f12 = heapFloat[(r1+14)];
+	f13 = heapFloat[(r1+29)];
+	f14 = heapFloat[(r1+13)];
+	f15 = heapFloat[(r1+28)];
+	f16 = heapFloat[(r1+12)];
+	f17 = heapFloat[(fp+-160)];
+	f18 = heapFloat[(r4+4)];
+	f19 = heapFloat[(r4+8)];
+	f20 = heapFloat[(r4+1)];
+	f21 = heapFloat[(r4+5)];
+	f22 = heapFloat[(r4+9)];
+	f23 = heapFloat[(r4+2)];
+	f24 = heapFloat[(r4+6)];
+	f25 = heapFloat[(r4+10)];
+	r4 = sp + -236;
+	f7 = f7+f9;
+	f6 = f6+f6;
+	f8 = f8*f10;
+	heapFloat[(fp+-179)] = f8;
+	f0 = f0+f5;
+	f5 = f7+f7;
+	f6 = f6*f10;
+	heapFloat[(fp+-178)] = f6;
+	r6 = r4 >> 2;
+	heapFloat[(fp+-59)] = f8;
+	f1 = f1+f4;
+	f0 = f0+f0;
+	f4 = f5*f10;
+	heapFloat[(fp+-177)] = f4;
+	heapFloat[(r6+1)] = f6;
+	r7 = sp + -248;
+	heap32[(fp+-186)] = r7;
+	f2 = f2+f3;
+	f1 = f1+f1;
+	f0 = f0*f10;
+	heapFloat[(fp+-181)] = f0;
+	heapFloat[(r6+2)] = f4;
+	f2 = f2+f2;
+	f1 = f1*f10;
+	heapFloat[(fp+-182)] = f1;
+	r6 = r7 >> 2;
+	heapFloat[(fp+-62)] = f0;
+	f0 = f2*f10;
+	heapFloat[(fp+-180)] = f0;
+	heapFloat[(r6+1)] = f1;
+	heapFloat[(r6+2)] = f0;
+	f0 = f15-f16;
+	heapFloat[(fp+-183)] = f0;
+	f1 = f13-f14;
+	heapFloat[(fp+-184)] = f1;
+	f2 = heapFloat[(fp+-172)];
+	heapFloat[(fp+-194)] = f2;
+	f3 = heapFloat[(r5+4)];
+	heapFloat[(fp+-195)] = f3;
+	f4 = heapFloat[(r5+1)];
+	heapFloat[(fp+-191)] = f4;
+	f5 = heapFloat[(r5+5)];
+	heapFloat[(fp+-192)] = f5;
+	f6 = heapFloat[(r5+2)];
+	heapFloat[(fp+-188)] = f6;
+	f7 = heapFloat[(r5+6)];
+	heapFloat[(fp+-189)] = f7;
+	f8 = f11-f12;
+	heapFloat[(fp+-185)] = f8;
+	f9 = heapFloat[(r5+8)];
+	heapFloat[(fp+-196)] = f9;
+	f10 = heapFloat[(r5+9)];
+	heapFloat[(fp+-193)] = f10;
+	f11 = heapFloat[(r5+10)];
+	heapFloat[(fp+-190)] = f11;
+	f12 = f17*f2;
+	f13 = f18*f3;
+	f14 = f17*f0;
+	f15 = f18*f1;
+	f16 = f20*f0;
+	f26 = f21*f1;
+	f0 = f23*f0;
+	heapFloat[(fp+-198)] = f0;
+	f1 = f24*f1;
+	f27 = f17*f4;
+	f28 = f18*f5;
+	f17 = f17*f6;
+	f18 = f18*f7;
+	f29 = f20*f2;
+	f30 = f21*f3;
+	f0 = f20*f4;
+	heapFloat[(fp+-197)] = f0;
+	f0 = f21*f5;
+	f20 = f20*f6;
+	f21 = f21*f7;
+	f2 = f23*f2;
+	f3 = f24*f3;
+	f4 = f23*f4;
+	f5 = f24*f5;
+	f6 = f23*f6;
+	f7 = f24*f7;
+	f12 = f12+f13;
+	f13 = f19*f9;
+	f14 = f14+f15;
+	f15 = f19*f8;
+	f16 = f16+f26;
+	f23 = f22*f8;
+	f24 = heapFloat[(fp+-198)];
+	f1 = f24+f1;
+	f8 = f25*f8;
+	f24 = f27+f28;
+	f26 = f19*f10;
+	f17 = f17+f18;
+	f18 = f19*f11;
+	f19 = f29+f30;
+	f27 = f22*f9;
+	f28 = heapFloat[(fp+-197)];
+	f0 = f28+f0;
+	f28 = f22*f10;
+	f20 = f20+f21;
+	f21 = f22*f11;
+	f2 = f2+f3;
+	f3 = f25*f9;
+	f4 = f4+f5;
+	f5 = f25*f10;
+	f6 = f6+f7;
+	f7 = f25*f11;
+	f9 = f12+f13;
+	r5 = heap32[(fp+2)];
+	r6 = (r2 + 4)|0;
+	r7 = (r3 + 4)|0;
+	r8 = (r2 + 8)|0;
+	r9 = (r3 + 8)|0;
+	r10 = (r0 + 112)|0;
+	r0 = (r0 + 48)|0;
+	f10 = f14+f15;
+	f11 = f16+f23;
+	f1 = f1+f8;
+	f8 = f24+f26;
+	f12 = f17+f18;
+	f13 = f19+f27;
+	f0 = f0+f28;
+	f14 = f20+f21;
+	f2 = f2+f3;
+	f3 = f4+f5;
+	f4 = f6+f7;
+	f5 =                         0;
+	if(f9 <f5) //_LBB166_2
+{
+	f6 = -f9;
+}
+else{
+	f6 = f9;
+}
+	if(f8 <f5) //_LBB166_5
+{
+	f7 = -f8;
+}
+else{
+	f7 = f8;
+}
+	if(f12 <f5) //_LBB166_8
+{
+	f15 = -f12;
+}
+else{
+	f15 = f12;
+}
+	if(f13 <f5) //_LBB166_11
+{
+	f16 = -f13;
+}
+else{
+	f16 = f13;
+}
+	if(f0 <f5) //_LBB166_14
+{
+	f17 = -f0;
+}
+else{
+	f17 = f0;
+}
+	if(f14 <f5) //_LBB166_17
+{
+	f18 = -f14;
+}
+else{
+	f18 = f14;
+}
+	if(f2 <f5) //_LBB166_20
+{
+	f19 = -f2;
+}
+else{
+	f19 = f2;
+}
+	if(f3 <f5) //_LBB166_23
+{
+	f20 = -f3;
+}
+else{
+	f20 = f3;
+}
+	if(f4 <f5) //_LBB166_26
+{
+	f21 = -f4;
+}
+else{
+	f21 = f4;
+}
+	if(f10 <f5) //_LBB166_29
+{
+	f22 = -f10;
+}
+else{
+	f22 = f10;
+}
+	f23 = heapFloat[(fp+-181)];
+	f23 = f23*f6;
+	f24 = heapFloat[(fp+-179)];
+	f23 = f24+f23;
+	f24 = heapFloat[(fp+-182)];
+	f24 = f24*f7;
+	f23 = f23+f24;
+	f24 = heapFloat[(fp+-180)];
+	f24 = f24*f15;
+	f23 = f23+f24;
+	f22 = f22-f23;
+_41: do {
+if(!(f22 >f5)) //_LBB166_268
+{
+	f23 =  -3.4028234663852886e+038;
+	if(f22 >f23) //_LBB166_33
+{
+	f23 =                         0;
+	r11 = f10 < f23;
+	r13 = sp + -640;
+	r11 = r11 & 1;
+	r12 = 1;
+	f23 = f22;
+}
+else{
+	r11 = 0;
+	r12 = r11;
+	r13 = r11;
+}
+	if(f11 <f5) //_LBB166_36
+{
+	f22 = -f11;
+}
+else{
+	f22 = f11;
+}
+	f24 = heapFloat[(fp+-181)];
+	f24 = f24*f16;
+	f25 = heapFloat[(fp+-178)];
+	f24 = f25+f24;
+	f25 = heapFloat[(fp+-182)];
+	f25 = f25*f17;
+	f24 = f24+f25;
+	f25 = heapFloat[(fp+-180)];
+	f25 = f25*f18;
+	f24 = f24+f25;
+	f22 = f22-f24;
+if(!(f22 >f5)) //_LBB166_268
+{
+	if(f22 >f23) //_LBB166_40
+{
+	f23 =                         0;
+	r11 = f11 < f23;
+	r11 = r11 & 1;
+	r12 = 2;
+	f23 = f22;
+	r13 = r6;
+}
+	if(f1 <f5) //_LBB166_43
+{
+	f22 = -f1;
+}
+else{
+	f22 = f1;
+}
+	f24 = heapFloat[(fp+-181)];
+	f24 = f24*f19;
+	f25 = heapFloat[(fp+-177)];
+	f24 = f25+f24;
+	f25 = heapFloat[(fp+-182)];
+	f25 = f25*f20;
+	f24 = f24+f25;
+	f25 = heapFloat[(fp+-180)];
+	f25 = f25*f21;
+	f24 = f24+f25;
+	f22 = f22-f24;
+if(!(f22 >f5)) //_LBB166_268
+{
+	if(f22 >f23) //_LBB166_47
+{
+	f23 =                         0;
+	r11 = f1 < f23;
+	r11 = r11 & 1;
+	r12 = 3;
+	f23 = f22;
+	r13 = r8;
+}
+	f24 = heapFloat[(fp+-183)];
+	f22 = heapFloat[(fp+-194)];
+	f22 = f22*f24;
+	f25 = heapFloat[(fp+-184)];
+	f24 = heapFloat[(fp+-195)];
+	f24 = f24*f25;
+	f22 = f22+f24;
+	f25 = heapFloat[(fp+-185)];
+	f24 = heapFloat[(fp+-196)];
+	f24 = f24*f25;
+	f22 = f22+f24;
+	if(f22 <f5) //_LBB166_50
+{
+	f24 = -f22;
+}
+else{
+	f24 = f22;
+}
+	f25 = heapFloat[(fp+-179)];
+	f25 = f25*f6;
+	f26 = heapFloat[(fp+-178)];
+	f26 = f26*f16;
+	f25 = f25+f26;
+	f26 = heapFloat[(fp+-177)];
+	f26 = f26*f19;
+	f25 = f25+f26;
+	f26 = heapFloat[(fp+-181)];
+	f25 = f25+f26;
+	f24 = f24-f25;
+if(!(f24 >f5)) //_LBB166_268
+{
+	if(f24 >f23) //_LBB166_54
+{
+	f23 =                         0;
+	r11 = f22 < f23;
+	r13 = sp + -688;
+	r11 = r11 & 1;
+	r12 = 4;
+	f23 = f24;
+}
+	f24 = heapFloat[(fp+-183)];
+	f22 = heapFloat[(fp+-191)];
+	f22 = f22*f24;
+	f25 = heapFloat[(fp+-184)];
+	f24 = heapFloat[(fp+-192)];
+	f24 = f24*f25;
+	f22 = f22+f24;
+	f25 = heapFloat[(fp+-185)];
+	f24 = heapFloat[(fp+-193)];
+	f24 = f24*f25;
+	f22 = f22+f24;
+	if(f22 <f5) //_LBB166_57
+{
+	f24 = -f22;
+}
+else{
+	f24 = f22;
+}
+	f25 = heapFloat[(fp+-179)];
+	f25 = f25*f7;
+	f26 = heapFloat[(fp+-178)];
+	f26 = f26*f17;
+	f25 = f25+f26;
+	f26 = heapFloat[(fp+-177)];
+	f26 = f26*f20;
+	f25 = f25+f26;
+	f26 = heapFloat[(fp+-182)];
+	f25 = f25+f26;
+	f24 = f24-f25;
+if(!(f24 >f5)) //_LBB166_268
+{
+	if(f24 >f23) //_LBB166_61
+{
+	f23 =                         0;
+	r11 = f22 < f23;
+	r11 = r11 & 1;
+	r12 = 5;
+	f23 = f24;
+	r13 = r7;
+}
+	f24 = heapFloat[(fp+-183)];
+	f22 = heapFloat[(fp+-188)];
+	f22 = f22*f24;
+	f25 = heapFloat[(fp+-184)];
+	f24 = heapFloat[(fp+-189)];
+	f24 = f24*f25;
+	f22 = f22+f24;
+	f25 = heapFloat[(fp+-185)];
+	f24 = heapFloat[(fp+-190)];
+	f24 = f24*f25;
+	f22 = f22+f24;
+	if(f22 <f5) //_LBB166_64
+{
+	f24 = -f22;
+}
+else{
+	f24 = f22;
+}
+	f25 = heapFloat[(fp+-179)];
+	f25 = f25*f15;
+	f26 = heapFloat[(fp+-178)];
+	f26 = f26*f18;
+	f25 = f25+f26;
+	f26 = heapFloat[(fp+-177)];
+	f26 = f26*f21;
+	f25 = f25+f26;
+	f26 = heapFloat[(fp+-180)];
+	f25 = f25+f26;
+	f24 = f24-f25;
+if(!(f24 >f5)) //_LBB166_268
+{
+	if(f24 >f23) //_LBB166_68
+{
+	f23 =                         0;
+	r11 = f22 < f23;
+	r11 = r11 & 1;
+	r12 = 6;
+	f23 = f24;
+	r13 = r9;
+}
+	f22 = f1*f13;
+	f24 = f11*f2;
+	f25 =   9.9999997473787516e-006;
+	f22 = f22-f24;
+	f6 = f6+f25;
+	f7 = f7+f25;
+	f15 = f15+f25;
+	heapFloat[(fp+-183)] = f15;
+	f15 = f16+f25;
+	f16 = f17+f25;
+	f17 = f18+f25;
+	f18 = f19+f25;
+	heapFloat[(fp+-184)] = f18;
+	f18 = f20+f25;
+	heapFloat[(fp+-185)] = f18;
+	f18 = f21+f25;
+	if(f22 <f5) //_LBB166_71
+{
+	f19 = -f22;
+}
+else{
+	f19 = f22;
+}
+	f21 = heapFloat[(fp+-184)];
+	f20 = heapFloat[(fp+-178)];
+	f20 = f20*f21;
+	f21 = heapFloat[(fp+-177)];
+	f21 = f21*f15;
+	f20 = f20+f21;
+	f24 = heapFloat[(fp+-183)];
+	f21 = heapFloat[(fp+-182)];
+	f21 = f21*f24;
+	f20 = f20+f21;
+	f21 = heapFloat[(fp+-180)];
+	f21 = f21*f7;
+	f20 = f20+f21;
+	f19 = f19-f20;
+	f20 =   1.1920928955078125e-007;
+if(!(f19 >f20)) //_LBB166_268
+{
+	f21 = f2*f2;
+	f21 = f21+f5;
+	f24 = f13*f13;
+	heapFloat[(fp+-188)] = f24;
+	f24 = f21+f24;
+	heapFloat[(g0)] = f24;
+	sqrtf(i7);
+	f24 = f_g0;
+	if(f24 >f20) //_LBB166_75
+{
+	f25 = f19/f24;
+	f19 =        1.0499999523162842;
+	f19 = f25*f19;
+	if(f19 <=f23) //_LBB166_74
+{
+__label__ = 69;
+}
+else{
+	f19 =                         0;
+	f23 = -f2;
+	r11 = f22 < f19;
+	f19 = f19/f24;
+	f22 = f23/f24;
+	f24 = f13/f24;
+	r11 = r11 & 1;
+	r12 = 7;
+	r13 = 0;
+	f23 = f25;
+__label__ = 72;
+}
+}
+else{
+__label__ = 69;
+}
+if (__label__ == 69){
+	f19 = f5;
+	f22 = f5;
+	f24 = f5;
+}
+	f25 = f1*f0;
+	f26 = f11*f3;
+	f25 = f25-f26;
+	if(f25 <f5) //_LBB166_79
+{
+	f5 = -f25;
+}
+else{
+	f5 = f25;
+}
+	f27 = heapFloat[(fp+-185)];
+	f26 = heapFloat[(fp+-178)];
+	f26 = f26*f27;
+	f27 = heapFloat[(fp+-177)];
+	f27 = f27*f16;
+	f26 = f26+f27;
+	f28 = heapFloat[(fp+-183)];
+	f27 = heapFloat[(fp+-181)];
+	f27 = f27*f28;
+	f26 = f26+f27;
+	f27 = heapFloat[(fp+-180)];
+	f27 = f27*f6;
+	f26 = f26+f27;
+	f5 = f5-f26;
+if(!(f5 >f20)) //_LBB166_268
+{
+	f26 = f3*f3;
+	f27 =                         0;
+	f26 = f26+f27;
+	f28 = f0*f0;
+	heapFloat[(fp+-189)] = f28;
+	f28 = f26+f28;
+	heapFloat[(g0)] = f28;
+	sqrtf(i7);
+	f28 = f_g0;
+	if(f28 >f20) //_LBB166_83
+{
+	f5 = f5/f28;
+	f29 =        1.0499999523162842;
+	f29 = f5*f29;
+if(!(f29 <=f23)) //_LBB166_82
+{
+	f19 =                         0;
+	f22 = -f3;
+	r11 = f25 < f19;
+	f19 = f19/f28;
+	f22 = f22/f28;
+	f24 = f0/f28;
+	r11 = r11 & 1;
+	r12 = 8;
+	r13 = 0;
+	f23 = f5;
+}
+}
+	f5 = f1*f14;
+	f25 = f11*f4;
+	f5 = f5-f25;
+	if(f5 <f27) //_LBB166_87
+{
+	f25 = -f5;
+}
+else{
+	f25 = f5;
+}
+	f28 = heapFloat[(fp+-178)];
+	f28 = f28*f18;
+	f29 = heapFloat[(fp+-177)];
+	f29 = f29*f17;
+	f28 = f28+f29;
+	f29 = heapFloat[(fp+-181)];
+	f29 = f29*f7;
+	f28 = f28+f29;
+	f29 = heapFloat[(fp+-182)];
+	f29 = f29*f6;
+	f28 = f28+f29;
+	f25 = f25-f28;
+if(!(f25 >f20)) //_LBB166_268
+{
+	f28 = f4*f4;
+	f28 = f28+f27;
+	f29 = f14*f14;
+	heapFloat[(fp+-190)] = f29;
+	f29 = f28+f29;
+	heapFloat[(g0)] = f29;
+	sqrtf(i7);
+	f29 = f_g0;
+	if(f29 >f20) //_LBB166_91
+{
+	f25 = f25/f29;
+	f30 =        1.0499999523162842;
+	f30 = f25*f30;
+if(!(f30 <=f23)) //_LBB166_90
+{
+	f19 =                         0;
+	f22 = -f4;
+	r11 = f5 < f19;
+	f19 = f19/f29;
+	f22 = f22/f29;
+	f24 = f14/f29;
+	r11 = r11 & 1;
+	r12 = 9;
+	r13 = 0;
+	f23 = f25;
+}
+}
+	f5 = f10*f2;
+	f25 = f1*f9;
+	f5 = f5-f25;
+	if(f5 <f27) //_LBB166_95
+{
+	f25 = -f5;
+}
+else{
+	f25 = f5;
+}
+	f30 = heapFloat[(fp+-184)];
+	f29 = heapFloat[(fp+-179)];
+	f29 = f29*f30;
+	f30 = heapFloat[(fp+-177)];
+	f30 = f30*f6;
+	f29 = f29+f30;
+	f30 = heapFloat[(fp+-182)];
+	f30 = f30*f17;
+	f29 = f29+f30;
+	f30 = heapFloat[(fp+-180)];
+	f30 = f30*f16;
+	f29 = f29+f30;
+	f25 = f25-f29;
+if(!(f25 >f20)) //_LBB166_268
+{
+	f29 = f9*f9;
+	f21 = f21+f29;
+	heapFloat[(g0)] = f21;
+	sqrtf(i7);
+	f21 = f_g0;
+	if(f21 >f20) //_LBB166_99
+{
+	f25 = f25/f21;
+	f30 =        1.0499999523162842;
+	f30 = f25*f30;
+if(!(f30 <=f23)) //_LBB166_98
+{
+	f22 =                         0;
+	f23 = -f9;
+	r11 = f5 < f22;
+	f19 = f2/f21;
+	f22 = f22/f21;
+	f24 = f23/f21;
+	r11 = r11 & 1;
+	r12 = 10;
+	r13 = 0;
+	f23 = f25;
+}
+}
+	f2 = f10*f3;
+	f5 = f1*f8;
+	f2 = f2-f5;
+	if(f2 <f27) //_LBB166_103
+{
+	f5 = -f2;
+}
+else{
+	f5 = f2;
+}
+	f25 = heapFloat[(fp+-185)];
+	f21 = heapFloat[(fp+-179)];
+	f21 = f21*f25;
+	f25 = heapFloat[(fp+-177)];
+	f25 = f25*f7;
+	f21 = f21+f25;
+	f25 = heapFloat[(fp+-181)];
+	f25 = f25*f17;
+	f21 = f21+f25;
+	f25 = heapFloat[(fp+-180)];
+	f25 = f25*f15;
+	f21 = f21+f25;
+	f5 = f5-f21;
+if(!(f5 >f20)) //_LBB166_268
+{
+	f21 = f8*f8;
+	f25 = f26+f21;
+	heapFloat[(g0)] = f25;
+	sqrtf(i7);
+	f25 = f_g0;
+	if(f25 >f20) //_LBB166_107
+{
+	f5 = f5/f25;
+	f26 =        1.0499999523162842;
+	f26 = f5*f26;
+if(!(f26 <=f23)) //_LBB166_106
+{
+	f22 =                         0;
+	f23 = -f8;
+	r11 = f2 < f22;
+	f19 = f3/f25;
+	f22 = f22/f25;
+	f24 = f23/f25;
+	r11 = r11 & 1;
+	r12 = 11;
+	r13 = 0;
+	f23 = f5;
+}
+}
+	f2 = f10*f4;
+	f1 = f1*f12;
+	f1 = f2-f1;
+	if(f1 <f27) //_LBB166_111
+{
+	f2 = -f1;
+}
+else{
+	f2 = f1;
+}
+	f3 = heapFloat[(fp+-179)];
+	f3 = f3*f18;
+	f25 = heapFloat[(fp+-183)];
+	f5 = heapFloat[(fp+-177)];
+	f5 = f5*f25;
+	f3 = f3+f5;
+	f5 = heapFloat[(fp+-181)];
+	f5 = f5*f16;
+	f3 = f3+f5;
+	f5 = heapFloat[(fp+-182)];
+	f5 = f5*f15;
+	f3 = f3+f5;
+	f2 = f2-f3;
+if(!(f2 >f20)) //_LBB166_268
+{
+	f3 = f12*f12;
+	f5 = f28+f3;
+	heapFloat[(g0)] = f5;
+	sqrtf(i7);
+	f5 = f_g0;
+	if(f5 >f20) //_LBB166_115
+{
+	f2 = f2/f5;
+	f25 =        1.0499999523162842;
+	f25 = f2*f25;
+if(!(f25 <=f23)) //_LBB166_114
+{
+	f22 =                         0;
+	f23 = -f12;
+	r11 = f1 < f22;
+	f19 = f4/f5;
+	f22 = f22/f5;
+	f24 = f23/f5;
+	r11 = r11 & 1;
+	r12 = 12;
+	r13 = 0;
+	f23 = f2;
+}
+}
+	f1 = f11*f9;
+	f2 = f10*f13;
+	f1 = f1-f2;
+	if(f1 <f27) //_LBB166_119
+{
+	f2 = -f1;
+}
+else{
+	f2 = f1;
+}
+	f4 = heapFloat[(fp+-179)];
+	f4 = f4*f15;
+	f5 = heapFloat[(fp+-178)];
+	f5 = f5*f6;
+	f4 = f4+f5;
+	f5 = heapFloat[(fp+-182)];
+	f5 = f5*f18;
+	f4 = f4+f5;
+	f6 = heapFloat[(fp+-185)];
+	f5 = heapFloat[(fp+-180)];
+	f5 = f5*f6;
+	f4 = f4+f5;
+	f2 = f2-f4;
+if(!(f2 >f20)) //_LBB166_268
+{
+	f4 = heapFloat[(fp+-188)];
+	f4 = f4+f29;
+	f4 = f4+f27;
+	heapFloat[(g0)] = f4;
+	sqrtf(i7);
+	f4 = f_g0;
+	if(f4 >f20) //_LBB166_123
+{
+	f2 = f2/f4;
+	f5 =        1.0499999523162842;
+	f5 = f2*f5;
+if(!(f5 <=f23)) //_LBB166_122
+{
+	f23 =                         0;
+	f19 = -f13;
+	r11 = f1 < f23;
+	f19 = f19/f4;
+	f22 = f9/f4;
+	f24 = f23/f4;
+	r11 = r11 & 1;
+	r12 = 13;
+	r13 = 0;
+	f23 = f2;
+}
+}
+	f1 = f11*f8;
+	f2 = f10*f0;
+	f1 = f1-f2;
+	if(f1 <f27) //_LBB166_127
+{
+	f2 = -f1;
+}
+else{
+	f2 = f1;
+}
+	f4 = heapFloat[(fp+-179)];
+	f4 = f4*f16;
+	f5 = heapFloat[(fp+-178)];
+	f5 = f5*f7;
+	f4 = f4+f5;
+	f5 = heapFloat[(fp+-181)];
+	f5 = f5*f18;
+	f4 = f4+f5;
+	f6 = heapFloat[(fp+-184)];
+	f5 = heapFloat[(fp+-180)];
+	f5 = f5*f6;
+	f4 = f4+f5;
+	f2 = f2-f4;
+if(!(f2 >f20)) //_LBB166_268
+{
+	f4 = heapFloat[(fp+-189)];
+	f4 = f4+f21;
+	f4 = f4+f27;
+	heapFloat[(g0)] = f4;
+	sqrtf(i7);
+	f4 = f_g0;
+	if(f4 >f20) //_LBB166_131
+{
+	f2 = f2/f4;
+	f5 =        1.0499999523162842;
+	f5 = f2*f5;
+if(!(f5 <=f23)) //_LBB166_130
+{
+	f23 =                         0;
+	f19 = -f0;
+	r11 = f1 < f23;
+	f19 = f19/f4;
+	f22 = f8/f4;
+	f24 = f23/f4;
+	r11 = r11 & 1;
+	r12 = 14;
+	r13 = 0;
+	f23 = f2;
+}
+}
+	f0 = f11*f12;
+	f1 = f10*f14;
+	f0 = f0-f1;
+	if(f0 <f27) //_LBB166_135
+{
+	f1 = -f0;
+}
+else{
+	f1 = f0;
+}
+	f2 = heapFloat[(fp+-179)];
+	f2 = f2*f17;
+	f5 = heapFloat[(fp+-183)];
+	f4 = heapFloat[(fp+-178)];
+	f4 = f4*f5;
+	f2 = f2+f4;
+	f5 = heapFloat[(fp+-185)];
+	f4 = heapFloat[(fp+-181)];
+	f4 = f4*f5;
+	f2 = f2+f4;
+	f5 = heapFloat[(fp+-184)];
+	f4 = heapFloat[(fp+-182)];
+	f4 = f4*f5;
+	f2 = f2+f4;
+	f1 = f1-f2;
+if(!(f1 >f20)) //_LBB166_268
+{
+	f2 = heapFloat[(fp+-190)];
+	f2 = f2+f3;
+	f2 = f2+f27;
+	heapFloat[(g0)] = f2;
+	sqrtf(i7);
+	f2 = f_g0;
+	if(f2 <=f20) //_LBB166_140
+{
+__label__ = 128;
+}
+else{
+	f1 = f1/f2;
+	heapFloat[(fp+-183)] = f1;
+	f3 =        1.0499999523162842;
+	f1 = f1*f3;
+	if(f1 <=f23) //_LBB166_140
+{
+__label__ = 128;
+}
+else{
+	f23 =                         0;
+	f19 = -f14;
+	r11 = f0 < f23;
+	f19 = f19/f2;
+	f22 = f12/f2;
+	f24 = f23/f2;
+	r11 = r11 & 1;
+	r13 = sp + -704;
+	r12 = 15;
+__label__ = 132;
+}
+}
+if (__label__ == 128){
+	if(r12 ==0) //_LBB166_268
+{
+break _41;
+}
+else{
+	if(r13 !=0) //_LBB166_143
+{
+	r13 = r13 >> 2;
+	f0 = heapFloat[(r13)];
+	r6 = sp + -704;
+	heapFloat[(fp+-176)] = f0;
+	f1 = heapFloat[(r13+4)];
+	r6 = r6 >> 2;
+	heapFloat[(r6+1)] = f1;
+	f19 = heapFloat[(r13+8)];
+	heapFloat[(r6+2)] = f19;
+	heapFloat[(fp+-183)] = f23;
+__label__ = 133;
+}
+else{
+	r13 = sp + -704;
+	heapFloat[(fp+-183)] = f23;
+__label__ = 132;
+}
+}
+}
+if (__label__ == 132){
+	r6 = sp + -640;
+	r6 = r6 >> 2;
+	f0 = heapFloat[(fp+-160)];
+	f1 = heapFloat[(r6+1)];
+	f2 = heapFloat[(r6+2)];
+	f0 = f0*f19;
+	f1 = f1*f22;
+	f0 = f0+f1;
+	f1 = f2*f24;
+	f0 = f0+f1;
+	r7 = r13 >> 2;
+	heapFloat[(r7)] = f0;
+	f1 = heapFloat[(r6+4)];
+	f2 = heapFloat[(r6+5)];
+	f3 = heapFloat[(r6+6)];
+	f1 = f1*f19;
+	f2 = f2*f22;
+	r7 = sp + -704;
+	f1 = f1+f2;
+	f2 = f3*f24;
+	f1 = f1+f2;
+	r7 = r7 >> 2;
+	heapFloat[(r7+1)] = f1;
+	f2 = heapFloat[(r6+8)];
+	f3 = heapFloat[(r6+9)];
+	f4 = heapFloat[(r6+10)];
+	f19 = f2*f19;
+	f2 = f3*f22;
+	f19 = f19+f2;
+	f2 = f4*f24;
+	f19 = f19+f2;
+	heapFloat[(r7+2)] = f19;
+}
+	if(r11 !=0) //_LBB166_147
+{
+	f0 = -f0;
+	r6 = sp + -704;
+	f1 = -f1;
+	r6 = r6 >> 2;
+	heapFloat[(fp+-176)] = f0;
+	f19 = -f19;
+	heapFloat[(r6+1)] = f1;
+	heapFloat[(r6+2)] = f19;
+}
+	if(r12 <7) //_LBB166_153
+{
+	if(r12 >3) //_LBB166_155
+{
+	f0 = -f0;
+	f1 = -f1;
+	f19 = -f19;
+	r1 = r0;
+	r0 = r10;
+}
+else{
+	r3 = sp + -640;
+	r2 = sp + -688;
+	r4 = sp + -236;
+	heap32[(fp+-186)] = r4;
+	r4 = sp + -248;
+	r1 = r10;
+}
+	r6 = r2 >> 2;
+	f2 = heapFloat[(r6)];
+	f3 = heapFloat[(r6+4)];
+	f4 = heapFloat[(r6+8)];
+	f2 = f2*f0;
+	f3 = f3*f1;
+	f2 = f2+f3;
+	f3 = f4*f19;
+	f2 = f2+f3;
+	heapFloat[(fp+-66)] = f2;
+	f3 = heapFloat[(r6+1)];
+	f4 = heapFloat[(r6+5)];
+	f5 = heapFloat[(r6+9)];
+	f3 = f3*f0;
+	f4 = f4*f1;
+	r7 = sp + -264;
+	f3 = f3+f4;
+	f4 = f5*f19;
+	f3 = f3+f4;
+	r8 = r7 >> 2;
+	heapFloat[(r8+1)] = f3;
+	f4 = heapFloat[(r6+2)];
+	f5 = heapFloat[(r6+6)];
+	f6 = heapFloat[(r6+10)];
+	f4 = f4*f0;
+	f5 = f5*f1;
+	f4 = f4+f5;
+	f5 = f6*f19;
+	f4 = f4+f5;
+	heapFloat[(r8+2)] = f4;
+	if(f2 <f27) //_LBB166_158
+{
+	f2 = -f2;
+}
+	if(f3 <f27) //_LBB166_161
+{
+	f3 = -f3;
+}
+	if(f4 <f27) //_LBB166_164
+{
+	f4 = -f4;
+}
+	if(f3 <=f2) //_LBB166_169
+{
+	if(f2 <=f4) //_LBB166_171
+{
+	r6 = 2;
+	r8 = 0;
+	r9 = 1;
+}
+else{
+	r6 = 0;
+	r8 = 1;
+	r9 = 2;
+}
+}
+else{
+	if(f3 <=f4) //_LBB166_168
+{
+	r6 = 2;
+	r8 = 0;
+	r9 = 1;
+}
+else{
+	r6 = 1;
+	r8 = 0;
+	r9 = 2;
+}
+}
+	r10 = r6 << 2;
+	r11 = (r4 + r10)|0;
+	r13 = (r2 + r10)|0;
+	r1 = r1 >> 2;
+	r0 = r0 >> 2;
+	r11 = r11 >> 2;
+	r13 = r13 >> 2;
+	f2 = heapFloat[(r11)];
+	f3 = heapFloat[(r13)];
+	f4 = heapFloat[(r1)];
+	f5 = heapFloat[(r0)];
+	r7 = (r7 + r10)|0;
+	f4 = f4-f5;
+	f3 = f2*f3;
+	r7 = r7 >> 2;
+	f5 = heapFloat[(r7)];
+	if(f5 <f27) //_LBB166_174
+{
+	r7 = r6 | 4;
+	r6 = r6 | 8;
+	r7 = r7 << 2;
+	r6 = r6 << 2;
+	r7 = (r2 + r7)|0;
+	r6 = (r2 + r6)|0;
+	r7 = r7 >> 2;
+	r6 = r6 >> 2;
+	f5 = heapFloat[(r1+1)];
+	f6 = heapFloat[(r0+1)];
+	f7 = heapFloat[(r7)];
+	f8 = heapFloat[(r6)];
+	f9 = heapFloat[(r1+2)];
+	f10 = heapFloat[(r0+2)];
+	f5 = f5-f6;
+	f6 = f2*f7;
+	f7 = f9-f10;
+	f2 = f2*f8;
+	f3 = f4+f3;
+	f4 = f5+f6;
+	f2 = f7+f2;
+}
+else{
+	r7 = r6 | 4;
+	r6 = r6 | 8;
+	r7 = r7 << 2;
+	r6 = r6 << 2;
+	r7 = (r2 + r7)|0;
+	r6 = (r2 + r6)|0;
+	r7 = r7 >> 2;
+	r6 = r6 >> 2;
+	f5 = heapFloat[(r1+1)];
+	f6 = heapFloat[(r0+1)];
+	f7 = heapFloat[(r7)];
+	f8 = heapFloat[(r6)];
+	f9 = heapFloat[(r1+2)];
+	f10 = heapFloat[(r0+2)];
+	f5 = f5-f6;
+	f6 = f2*f7;
+	f7 = f9-f10;
+	f2 = f2*f8;
+	f3 = f4-f3;
+	f4 = f5-f6;
+	f2 = f7-f2;
+}
+	r1 = -1;
+	r6 = -4;
+	r6 = r12 < 4 ? r1 : r6;
+	r6 = (r6 + r12)|0;
+	if(r6 ==1) //_LBB166_178
+{
+	r7 = 0;
+	r10 = 2;
+}
+else{
+	if(r6 !=0) //_LBB166_179
+{
+	r7 = 0;
+	r10 = 1;
+}
+else{
+	r7 = 1;
+	r10 = 2;
+}
+}
+	r11 = r8 | 4;
+	r13 = r7 | 4;
+	r14 = r8 | 8;
+	r15 = r9 | 4;
+	r16 = r7 | 8;
+	r17 = r10 | 4;
+	r7 = r7 << 2;
+	r13 = r13 << 2;
+	r11 = r11 << 2;
+	r8 = r8 << 2;
+	r18 = r9 | 8;
+	r19 = (r3 + r7)|0;
+	r13 = (r3 + r13)|0;
+	r16 = r16 << 2;
+	r20 = r10 << 2;
+	r17 = r17 << 2;
+	r10 = r10 | 8;
+	r21 = (r2 + r8)|0;
+	r11 = (r2 + r11)|0;
+	r14 = r14 << 2;
+	r15 = r15 << 2;
+	r9 = r9 << 2;
+	r19 = r19 >> 2;
+	r13 = r13 >> 2;
+	r16 = (r3 + r16)|0;
+	r22 = (r3 + r20)|0;
+	r17 = (r3 + r17)|0;
+	r10 = r10 << 2;
+	r21 = r21 >> 2;
+	heap32[(fp+-178)] = r21;
+	r11 = r11 >> 2;
+	heap32[(fp+-177)] = r11;
+	r14 = (r2 + r14)|0;
+	r23 = (r2 + r9)|0;
+	r15 = (r2 + r15)|0;
+	r18 = r18 << 2;
+	r16 = r16 >> 2;
+	r22 = r22 >> 2;
+	r17 = r17 >> 2;
+	r3 = (r3 + r10)|0;
+	r10 = r14 >> 2;
+	heap32[(fp+-179)] = r10;
+	r14 = r23 >> 2;
+	heap32[(fp+-180)] = r14;
+	r15 = r15 >> 2;
+	r2 = (r2 + r18)|0;
+	f5 = heapFloat[(r19)];
+	f6 = heapFloat[(r21)];
+	f7 = heapFloat[(r13)];
+	f8 = heapFloat[(r11)];
+	f9 = heapFloat[(r22)];
+	f10 = heapFloat[(r14)];
+	f11 = heapFloat[(r17)];
+	f12 = heapFloat[(r15)];
+	r3 = r3 >> 2;
+	r2 = r2 >> 2;
+	r8 = (r4 + r8)|0;
+	f13 = f5*f6;
+	f14 = f7*f8;
+	f15 = heapFloat[(r16)];
+	f16 = heapFloat[(r10)];
+	f17 = heapFloat[(r3)];
+	f18 = heapFloat[(r2)];
+	r3 = r8 >> 2;
+	r4 = (r4 + r9)|0;
+	f6 = f9*f6;
+	f8 = f11*f8;
+	f21 = f3*f5;
+	f22 = f4*f7;
+	f13 = f13+f14;
+	f14 = f15*f16;
+	f5 = f5*f10;
+	f7 = f7*f12;
+	f13 = f13+f14;
+	f14 = heapFloat[(r3)];
+	r3 = r4 >> 2;
+	f23 = f3*f9;
+	f24 = f4*f11;
+	f6 = f6+f8;
+	f8 = f17*f16;
+	f9 = f9*f10;
+	f10 = f11*f12;
+	f11 = f21+f22;
+	f12 = f2*f15;
+	f5 = f5+f7;
+	f7 = f15*f18;
+	f6 = f6+f8;
+	f8 = f11+f12;
+	f11 = f14*f13;
+	f5 = f5+f7;
+	f7 = heapFloat[(r3)];
+	f12 = f23+f24;
+	f15 = f2*f17;
+	f9 = f9+f10;
+	f10 = f17*f18;
+	f9 = f9+f10;
+	f10 = f12+f15;
+	f12 = f14*f6;
+	f14 = f8-f11;
+	f15 = f7*f5;
+	r3 = sp + -296;
+	f16 = f10-f12;
+	f7 = f7*f9;
+	f17 = f14-f15;
+	r4 = r3 >> 2;
+	f18 = f16-f7;
+	heapFloat[(fp+-74)] = f17;
+	f14 = f14+f15;
+	heapFloat[(r4+1)] = f18;
+	f11 = f8+f11;
+	f16 = f16+f7;
+	heapFloat[(r4+2)] = f14;
+	f12 = f10+f12;
+	f14 = f11+f15;
+	heapFloat[(r4+3)] = f16;
+	f16 = f12+f7;
+	heapFloat[(r4+4)] = f14;
+	f11 = f11-f15;
+	heapFloat[(r4+5)] = f16;
+	r8 = heap32[(fp+-186)];
+	r7 = (r8 + r7)|0;
+	f7 = f12-f7;
+	heapFloat[(r4+6)] = f11;
+	r9 = sp + -304;
+	r8 = (r8 + r20)|0;
+	r7 = r7 >> 2;
+	heapFloat[(r4+7)] = f7;
+	r4 = sp + -368;
+	r10 = 0;
+	r11 = 4;
+	r13 = r9 >> 2;
+	r8 = r8 >> 2;
+	heap32[(fp+-76)] = heap32[(r7)];
+	heap32[(r13+1)] = heap32[(r8)];
+	r7 = r10;
+_217: while(true){
+	if(r7 <2) //_LBB166_199
+{
+	r18 = 0;
+	r17 = (r18 - r7)|0;
+	r14 = r1;
+	r8 = r4;
+_220: while(true){
+	r4 = r8;
+	if(r14 >1) //_LBB166_196
+{
+break _220;
+}
+else{
+	f7 = r14; //fitos r14, f7
+	r16 = (r3 + 8)|0;
+	r8 = r18;
+	r10 = r18;
+	r13 = r4;
+_223: while(true){
+	if(r11 >0) //_LBB166_181
+{
+	r19 = (r3 + r8)|0;
+	r20 = (r16 + r8)|0;
+	r21 = r7 << 2;
+	r22 = (r9 + r21)|0;
+	r23 = (r19 + r21)|0;
+	r22 = r22 >> 2;
+	r23 = r23 >> 2;
+	f11 = heapFloat[(r22)];
+	f12 = heapFloat[(r23)];
+	f14 = f7*f12;
+	if(f14 <f11) //_LBB166_183
+{
+	r24 = r13 >> 2;
+	r25 = r19 >> 2;
+	r10 = (r10 + 1)|0;
+	heap32[(r24)] = heap32[(r25)];
+	heap32[(r24+1)] = heap32[(r25+1)];
+	r24 = r10 & 8;
+	if(r24 ==0) //_LBB166_185
+{
+	r13 = (r13 + 8)|0;
+	f12 = heapFloat[(r23)];
+	f11 = heapFloat[(r22)];
+}
+else{
+__label__ = 179;
+break _217;
+}
+}
+	r20 = r11 > 1 ? r20 : r3;
+	r23 = (r20 + r21)|0;
+	r23 = r23 >> 2;
+	f14 = heapFloat[(r23)];
+	f15 = f7*f12;
+	f16 = f7*f14;
+	r23 = f15 < f11;
+	r24 = f16 < f11;
+	r23 = r23 ^ r24;
+	if(r23 != 0) //_LBB166_188
+{
+	r23 = r17 << 2;
+	r19 = (r19 + r23)|0;
+	r20 = (r20 + r23)|0;
+	r19 = r19 >> 2;
+	r20 = r20 >> 2;
+	f15 = heapFloat[(r19+1)];
+	f16 = heapFloat[(r20+1)];
+	f11 = f7*f11;
+	f16 = f16-f15;
+	f14 = f14-f12;
+	f14 = f16/f14;
+	f11 = f11-f12;
+	r19 = (r13 + r23)|0;
+	f11 = f14*f11;
+	r19 = r19 >> 2;
+	f11 = f15+f11;
+	heapFloat[(r19+1)] = f11;
+	r19 = (r13 + r21)|0;
+	f11 = heapFloat[(r22)];
+	r10 = (r10 + 1)|0;
+	r19 = r19 >> 2;
+	f11 = f7*f11;
+	heapFloat[(r19)] = f11;
+	r19 = r10 & 8;
+	if(r19 ==0) //_LBB166_190
+{
+	r13 = (r13 + 8)|0;
+}
+else{
+__label__ = 179;
+break _217;
+}
+}
+	r11 = (r11 + -1)|0;
+	r8 = (r8 + 8)|0;
+}
+else{
+break _223;
+}
+}
+	r3 = sp + -368;
+	r8 = sp + -128;
+	r8 = r4 == r3 ? r8 : r3;
+	r14 = (r14 + 2)|0;
+	r3 = r4;
+	r11 = r10;
+}
+}
+	r7 = (r7 + 1)|0;
+}
+else{
+__label__ = 177;
+break _217;
+}
+}
+if (__label__ == 177){
+	r4 = r3;
+}
+	r1 = sp + -368;
+if(!(r4 ==r1)) //_LBB166_202
+{
+	r3 = r10 << 3;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r3;
+	memcpy(i7);
+}
+	if(r10 <1) //_LBB166_268
+{
+break _41;
+}
+else{
+	f7 = f13*f9;
+	f11 = f5*f6;
+	f12 =                         1;
+	f7 = f7-f11;
+	r3 = r6 << 2;
+	f7 = f12/f7;
+	r4 = heap32[(fp+-186)];
+	r3 = (r4 + r3)|0;
+	f6 = f6*f7;
+	r3 = r3 >> 2;
+	f11 = f13*f7;
+	f5 = f5*f7;
+	f7 = f9*f7;
+	f6 = -f6;
+	f9 = heapFloat[(r3)];
+	r3 = heap32[(fp+-178)];
+	f13 = heapFloat[(r3)];
+	r3 = heap32[(fp+-180)];
+	f14 = heapFloat[(r3)];
+	r3 = heap32[(fp+-177)];
+	f15 = heapFloat[(r3)];
+	f16 = heapFloat[(r15)];
+	r3 = heap32[(fp+-179)];
+	f17 = heapFloat[(r3)];
+	f18 = heapFloat[(r2)];
+	r2 = (r1 + 4)|0;
+	r3 = 0;
+_243: while(true){
+	r4 = r2 >> 2;
+	f21 = heapFloat[(r4+-1)];
+	f22 = heapFloat[(r4)];
+	f23 = f21-f8;
+	f24 = f22-f10;
+	f25 = f23*f7;
+	f26 = f24*f5;
+	f25 = f25-f26;
+	f23 = f23*f6;
+	f24 = f24*f11;
+	r4 = (r3 * 3)|0;
+	f26 = f15*f25;
+	f23 = f23+f24;
+	f24 = f13*f25;
+	r6 = sp + -464;
+	r4 = r4 << 2;
+	f25 = f17*f25;
+	f26 = f4+f26;
+	f28 = f16*f23;
+	f24 = f3+f24;
+	f29 = f14*f23;
+	r4 = (r6 + r4)|0;
+	f24 = f24+f29;
+	f26 = f26+f28;
+	f25 = f2+f25;
+	f23 = f18*f23;
+	f28 = f0*f24;
+	f29 = f1*f26;
+	f23 = f25+f23;
+	r4 = r4 >> 2;
+	heapFloat[(r4)] = f24;
+	f24 = f28+f29;
+	f25 = f19*f23;
+	r7 = sp + -496;
+	r8 = r3 << 2;
+	r8 = (r7 + r8)|0;
+	heapFloat[(r4+1)] = f26;
+	f24 = f24+f25;
+	f24 = f9-f24;
+	r8 = r8 >> 2;
+	heapFloat[(r4+2)] = f23;
+	heapFloat[(r8)] = f24;
+	if(f24 >=f27) //_LBB166_206
+{
+	r4 = r3 << 3;
+	r8 = r4 | 4;
+	r4 = (r1 + r4)|0;
+	r8 = (r1 + r8)|0;
+	r4 = r4 >> 2;
+	r3 = (r3 + 1)|0;
+	r8 = r8 >> 2;
+	heapFloat[(r4)] = f21;
+	heapFloat[(r8)] = f22;
+}
+	r10 = (r10 + -1)|0;
+	r2 = (r2 + 8)|0;
+if(!(r10 !=0)) //_LBB166_204
+{
+break _243;
+}
+}
+	if(r3 <1) //_LBB166_268
+{
+break _41;
+}
+else{
+	r2 = 4;
+	r2 = r3 < 4 ? r3 : r2;
+	r4 = 1;
+	r8 = r2 < 1 ? r4 : r2;
+	if(r3 >r8) //_LBB166_215
+{
+_252: do {
+	if(r3 >1) //_LBB166_217
+{
+	f0 = heapFloat[(fp+-124)];
+	r9 = 1;
+	r7 = 0;
+_254: while(true){
+	r10 = sp + -496;
+	r11 = r9 << 2;
+	r10 = (r10 + r11)|0;
+	r10 = r10 >> 2;
+	f1 = heapFloat[(r10)];
+	r10 = (r9 + 1)|0;
+	r7 = f1 > f0 ? r9 : r7;
+	f0 = f1 > f0 ? f1 : f0;
+	r9 = r10;
+if(!(r3 !=r10)) //_LBB166_218
+{
+break _252;
+}
+}
+}
+else{
+	r7 = 0;
+}
+} while(0);
+_258: do {
+	if(r3 ==1) //_LBB166_224
+{
+	r9 = r1 >> 2;
+	f0 = heapFloat[(fp+-92)];
+	f1 = heapFloat[(r9+1)];
+__label__ = 214;
+break _258;
+}
+else{
+	if(r3 ==2) //_LBB166_225
+{
+	r9 = r1 >> 2;
+	f0 = heapFloat[(fp+-92)];
+	f1 = heapFloat[(r9+2)];
+	f2 = heapFloat[(r9+1)];
+	f12 = heapFloat[(r9+3)];
+	f0 = f0+f1;
+	f1 = f2+f12;
+	f2 = heapFloat[(fp+-187)];
+	f0 = f0*f2;
+	f1 = f1*f2;
+__label__ = 214;
+break _258;
+}
+else{
+	r9 = (r3 + -1)|0;
+_264: do {
+	if(r9 >0) //_LBB166_223
+{
+	r10 = (r1 + 8)|0;
+	f0 =                         0;
+	f1 = f0;
+	f2 = f0;
+_266: while(true){
+	r11 = r10 >> 2;
+	f3 = heapFloat[(r11+-2)];
+	f4 = heapFloat[(r11+1)];
+	f5 = heapFloat[(r11)];
+	f6 = heapFloat[(r11+-1)];
+	f7 = f3*f4;
+	f8 = f5*f6;
+	f3 = f3+f5;
+	f5 = f7-f8;
+	f4 = f6+f4;
+	f3 = f3*f5;
+	f4 = f4*f5;
+	r9 = (r9 + -1)|0;
+	f2 = f2+f5;
+	f1 = f3+f1;
+	f0 = f4+f0;
+	r10 = (r10 + 8)|0;
+if(!(r9 !=0)) //_LBB166_226
+{
+break _264;
+}
+}
+}
+else{
+	f0 = f27;
+	f1 = f27;
+	f2 = f27;
+}
+} while(0);
+	r9 = r3 << 3;
+	r9 = (r9 + r1)|0;
+	r9 = r9 >> 2;
+	r10 = r1 >> 2;
+	f3 = heapFloat[(r9+-2)];
+	f4 = heapFloat[(r10+1)];
+	f5 = heapFloat[(fp+-92)];
+	f6 = heapFloat[(r9+-1)];
+	f7 = f3*f4;
+	f8 = f5*f6;
+	f7 = f7-f8;
+	f2 = f2+f7;
+	if(f2 <f27) //_LBB166_229
+{
+	f8 = -f2;
+}
+else{
+	f8 = f2;
+}
+	if(f8 >f20) //_LBB166_232
+{
+	f8 =                         3;
+	f2 = f2*f8;
+	f2 = f12/f2;
+}
+else{
+	f2 =        999999984306749440;
+}
+	if(r3 >0) //_LBB166_235
+{
+	f3 = f3+f5;
+	f4 = f6+f4;
+	f3 = f3*f7;
+	f4 = f4*f7;
+	f1 = f3+f1;
+	f3 = f4+f0;
+	f0 = f1*f2;
+	f1 = f3*f2;
+__label__ = 214;
+}
+else{
+	r1 = 0;
+__label__ = 219;
+}
+}
+}
+} while(0);
+if (__label__ == 214){
+	r1 = (r1 + 4)|0;
+	r9 = sp + -32;
+	r10 = r3;
+_283: while(true){
+	r11 = r1 >> 2;
+	f2 = heapFloat[(r11+-1)];
+	f3 = heapFloat[(r11)];
+	f3 = f3-f1;
+	f2 = f2-f0;
+	heapFloat[(g0)] = f3;
+	heapFloat[(g0+1)] = f2;
+	r10 = (r10 + -1)|0;
+	r1 = (r1 + 8)|0;
+	r11 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	atan2f(i7);
+	heapFloat[(r9)] = f_g0;
+	r9 = r11;
+if(!(r10 !=0)) //_LBB166_237
+{
+break _283;
+}
+}
+	r1 = sp + -64;
+	r9 = r3;
+_286: while(true){
+	r9 = (r9 + -1)|0;
+	r10 = (r1 + 4)|0;
+	r1 = r1 >> 2;
+	heap32[(r1)] = 1;
+	r1 = r10;
+if(!(r9 !=0)) //_LBB166_239
+{
+break _286;
+}
+}
+	r1 = 1;
+}
+	r9 = sp + -64;
+	r10 = r7 << 2;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	f0 =        6.2831854820251465;
+	f1 = r8; //fitos r8, f1
+	f1 = f0/f1;
+	heap32[(r11)] = 0;
+	heap32[(fp+-144)] = r7;
+	f6 =                         0;
+_290: while(true){
+	if(r4 <r8) //_LBB166_242
+{
+	r11 = sp + -32;
+	r13 = (r11 + r10)|0;
+	r13 = r13 >> 2;
+	f2 = r4; //fitos r4, f2
+	f2 = f2*f1;
+	f3 = heapFloat[(r13)];
+	f2 = f2+f3;
+	f3 =        3.1415927410125732;
+	if(f2 >f3) //_LBB166_244
+{
+	f4 =       -6.2831854820251465;
+	f2 = f2+f4;
+}
+	r13 = sp + -576;
+	r14 = r4 << 2;
+	r13 = (r13 + r14)|0;
+	r13 = r13 >> 2;
+	r14 = r1 & 1;
+	heap32[(r13)] = r7;
+	if(r14 ==0) //_LBB166_259
+{
+__label__ = 233;
+break _290;
+}
+else{
+	f4 =                1000000000;
+	r14 = 0;
+	r15 = r7;
+_297: while(true){
+	r16 = r14 << 2;
+	r17 = (r9 + r16)|0;
+	r17 = r17 >> 2;
+	r17 = heap32[(r17)];
+	if(r17 !=0) //_LBB166_249
+{
+	r16 = (r11 + r16)|0;
+	r16 = r16 >> 2;
+	f5 = heapFloat[(r16)];
+	f5 = f5-f2;
+	if(f5 <f6) //_LBB166_251
+{
+	f5 = -f5;
+}
+	if(f5 >f3) //_LBB166_254
+{
+	f5 = f0-f5;
+}
+if(!(f5 >=f4)) //_LBB166_248
+{
+	heap32[(r13)] = r14;
+	r15 = r14;
+	f4 = f5;
+}
+}
+	r14 = (r14 + 1)|0;
+if(!(r3 !=r14)) //_LBB166_247
+{
+break _297;
+}
+}
+	if(r15 !=r7) //_LBB166_260
+{
+	r11 = r15 << 2;
+	r11 = (r9 + r11)|0;
+	r4 = (r4 + 1)|0;
+	r11 = r11 >> 2;
+	heap32[(r11)] = 0;
+}
+else{
+__label__ = 233;
+break _290;
+}
+}
+}
+else{
+__label__ = 236;
+break _290;
+}
+}
+switch(__label__ ){//multiple entries
+case 233:
+	r0 = _2E_str65;
+	r1 = _2E_str166;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 248;
+	_assert(i7);
+break;
+case 236:
+	if(r8 >0) //_LBB166_267
+{
+	r1 = 0;
+_315: while(true){
+	r3 = sp + -576;
+	r4 = r1 << 2;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r4 = (r3 * 3)|0;
+	r4 = r4 << 2;
+	r4 = (r6 + r4)|0;
+	r4 = r4 >> 2;
+	f0 = heapFloat[(r4)];
+	f1 = heapFloat[(r0)];
+	f0 = f0+f1;
+	heapFloat[(fp+-148)] = f0;
+	r7 = sp + -592;
+	f1 = heapFloat[(r4+1)];
+	f2 = heapFloat[(r0+1)];
+	f1 = f1+f2;
+	r8 = r7 >> 2;
+	heapFloat[(r8+1)] = f1;
+	f2 = heapFloat[(r4+2)];
+	f3 = heapFloat[(r0+2)];
+	f2 = f2+f3;
+	r4 = sp + -496;
+	r3 = r3 << 2;
+	r3 = (r4 + r3)|0;
+	r4 = r5 >> 2;
+	heapFloat[(r8+2)] = f2;
+	r4 = heap32[(r4)];
+	r3 = r3 >> 2;
+	r8 = sp + -704;
+	f3 = heapFloat[(r3)];
+	r3 = r4 >> 2;
+	r4 = r8 >> 2;
+	r3 = heap32[(r3+4)];
+	f4 = -f3;
+	f5 = heapFloat[(r4+2)];
+	if(r12 >3) //_LBB166_265
+{
+	f6 = heapFloat[(fp+-176)];
+	f7 = heapFloat[(r4+1)];
+	f8 = f6*f3;
+	r4 = sp + -160;
+	f9 = f7*f3;
+	f0 = f0-f8;
+	r7 = r4 >> 2;
+	f3 = f5*f3;
+	f1 = f1-f9;
+	heapFloat[(fp+-40)] = f0;
+	f0 = f2-f3;
+	heapFloat[(r7+1)] = f1;
+	heapFloat[(r7+2)] = f0;
+	r8 = sp + -144;
+	f0 = -f6;
+	heap32[(r7+3)] = 0;
+	r7 = r8 >> 2;
+	f1 = -f7;
+	heapFloat[(fp+-36)] = f0;
+	f0 = -f5;
+	heapFloat[(r7+1)] = f1;
+	heapFloat[(r7+2)] = f0;
+	heap32[(r7+3)] = 0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r4;
+	heapFloat[(g0+3)] = f4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+else{
+	f0 = heapFloat[(r4+1)];
+	f1 = heapFloat[(fp+-176)];
+	r4 = sp + -176;
+	f1 = -f1;
+	r8 = r4 >> 2;
+	f0 = -f0;
+	heapFloat[(fp+-44)] = f1;
+	f1 = -f5;
+	heapFloat[(r8+1)] = f0;
+	heapFloat[(r8+2)] = f1;
+	heap32[(r8+3)] = 0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r7;
+	heapFloat[(g0+3)] = f4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+	r1 = (r1 + 1)|0;
+	if(r1 >=r2) //_LBB166_268
+{
+break _41;
+}
+else{
+continue _315;
+}
+}
+}
+else{
+break _41;
+}
+break;
+}
+}
+else{
+	if(r12 <4) //_LBB166_212
+{
+	r1 = (r6 + 8)|0;
+	r2 = sp + -496;
+_324: while(true){
+	r4 = r1 >> 2;
+	f12 = heapFloat[(r4+-2)];
+	f20 = heapFloat[(r0)];
+	f12 = f12+f20;
+	heapFloat[(fp+-132)] = f12;
+	r6 = sp + -528;
+	f12 = heapFloat[(r4+-1)];
+	f20 = heapFloat[(r0+1)];
+	r7 = r6 >> 2;
+	f12 = f12+f20;
+	heapFloat[(r7+1)] = f12;
+	f12 = heapFloat[(r4)];
+	f20 = heapFloat[(r0+2)];
+	f12 = f12+f20;
+	heapFloat[(r7+2)] = f12;
+	r4 = r5 >> 2;
+	r4 = heap32[(r4)];
+	r7 = sp + -704;
+	r7 = r7 >> 2;
+	r4 = r4 >> 2;
+	r8 = r2 >> 2;
+	f12 = heapFloat[(r8)];
+	f20 = heapFloat[(r7+2)];
+	f27 = heapFloat[(r7+1)];
+	f0 = heapFloat[(fp+-176)];
+	r4 = heap32[(r4+4)];
+	r7 = sp + -208;
+	f0 = -f0;
+	r8 = r7 >> 2;
+	f27 = -f27;
+	heapFloat[(fp+-52)] = f0;
+	f20 = -f20;
+	heapFloat[(r8+1)] = f27;
+	heapFloat[(r8+2)] = f20;
+	heap32[(r8+3)] = 0;
+	f12 = -f12;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r6;
+	heapFloat[(g0+3)] = f12;
+	r3 = (r3 + -1)|0;
+	r2 = (r2 + 4)|0;
+	r1 = (r1 + 12)|0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	if(r3 ==0) //_LBB166_268
+{
+break _41;
+}
+else{
+continue _324;
+}
+}
+}
+else{
+	r1 = (r6 + 8)|0;
+_327: while(true){
+	r2 = r7 >> 2;
+	r4 = r1 >> 2;
+	f12 = heapFloat[(r2)];
+	f20 = heapFloat[(fp+-176)];
+	f27 = heapFloat[(r4+-2)];
+	f0 = heapFloat[(r0)];
+	f27 = f27+f0;
+	f0 = f20*f12;
+	r2 = sp + -704;
+	f27 = f27-f0;
+	heapFloat[(fp+-136)] = f27;
+	r2 = r2 >> 2;
+	f27 = heapFloat[(r2+1)];
+	f0 = heapFloat[(r4+-1)];
+	f1 = heapFloat[(r0+1)];
+	r6 = sp + -544;
+	f0 = f0+f1;
+	f1 = f27*f12;
+	r8 = r6 >> 2;
+	f0 = f0-f1;
+	heapFloat[(r8+1)] = f0;
+	f0 = heapFloat[(r2+2)];
+	f1 = heapFloat[(r4)];
+	f2 = heapFloat[(r0+2)];
+	f1 = f1+f2;
+	f2 = f0*f12;
+	f1 = f1-f2;
+	r2 = r5 >> 2;
+	heapFloat[(r8+2)] = f1;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	r4 = sp + -192;
+	f20 = -f20;
+	r8 = r4 >> 2;
+	f27 = -f27;
+	heapFloat[(fp+-48)] = f20;
+	f20 = -f0;
+	heapFloat[(r8+1)] = f27;
+	heapFloat[(r8+2)] = f20;
+	heap32[(r8+3)] = 0;
+	f12 = -f12;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r6;
+	heapFloat[(g0+3)] = f12;
+	r3 = (r3 + -1)|0;
+	r7 = (r7 + 4)|0;
+	r1 = (r1 + 12)|0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	if(r3 ==0) //_LBB166_268
+{
+break _41;
+}
+else{
+continue _327;
+}
+}
+}
+}
+}
+}
+}
+else{
+	r0 = sp + -688;
+	r2 = r0 >> 2;
+	f20 = heapFloat[(fp+-172)];
+	f27 = heapFloat[(r2+4)];
+	f2 = heapFloat[(r2+5)];
+	f3 = heapFloat[(r2+1)];
+	f4 = f0*f20;
+	f5 = f1*f27;
+	f6 = heapFloat[(r2+8)];
+	f7 = heapFloat[(r2+9)];
+	f8 = heapFloat[(r2+6)];
+	f9 = heapFloat[(r2+2)];
+	f4 = f4+f5;
+	f5 = f19*f6;
+	f10 = f0*f3;
+	f11 = f1*f2;
+	f12 = heapFloat[(r2+10)];
+	f4 = f4+f5;
+	f5 = f10+f11;
+	f10 = f19*f7;
+	f11 = f0*f9;
+	f13 = f1*f8;
+	f14 =                         0;
+	f15 =                        -1;
+	f16 =                         1;
+	f5 = f5+f10;
+	f4 = f4 > f14 ? f15 : f16;
+	f10 = f11+f13;
+	f11 = f19*f12;
+	f13 = heapFloat[(fp+-181)];
+	f4 = f13*f4;
+	f10 = f10+f11;
+	f5 = f5 > f14 ? f15 : f16;
+	f11 = heapFloat[(fp+-182)];
+	f5 = f11*f5;
+	r2 = sp + -640;
+	f20 = f4*f20;
+	f11 = heapFloat[(r1+28)];
+	f10 = f10 > f14 ? f15 : f16;
+	r3 = r2 >> 2;
+	f13 = heapFloat[(fp+-180)];
+	f10 = f13*f10;
+	f27 = f4*f27;
+	f13 = heapFloat[(r1+29)];
+	f20 = f11+f20;
+	f3 = f5*f3;
+	r4 = (r12 + -7)|0;
+	f11 = heapFloat[(r3+4)];
+	f17 = heapFloat[(fp+-160)];
+	f18 = heapFloat[(r3+8)];
+	f21 = heapFloat[(r3+5)];
+	f22 = heapFloat[(r3+1)];
+	f23 = heapFloat[(r3+9)];
+	f24 = heapFloat[(r3+6)];
+	f25 = heapFloat[(r3+2)];
+	f26 = heapFloat[(r3+10)];
+	f4 = f4*f6;
+	f6 = heapFloat[(r1+30)];
+	f27 = f13+f27;
+	f2 = f5*f2;
+	f20 = f20+f3;
+	f3 = f10*f9;
+	f9 = heapFloat[(r1+12)];
+	heapFloat[(fp+-182)] = f9;
+	f9 = heapFloat[(r1+13)];
+	heapFloat[(fp+-181)] = f9;
+	f9 = heapFloat[(r1+14)];
+	heapFloat[(fp+-180)] = f9;
+	r3 = (r4 / 3)|0;
+	r4 = (r4 % 3)|0;
+	r10 = sp + -512;
+	f20 = f20+f3;
+	f3 = f6+f4;
+	f4 = f5*f7;
+	f27 = f27+f2;
+	f2 = f10*f8;
+	r3 = r3 << 2;
+	r4 = r4 << 2;
+	f27 = f27+f2;
+	r12 = r10 >> 2;
+	heapFloat[(fp+-128)] = f20;
+	f2 = f3+f4;
+	f3 = f10*f12;
+	r2 = (r2 + r3)|0;
+	r0 = (r0 + r4)|0;
+	f2 = f2+f3;
+	heapFloat[(r12+1)] = f27;
+	r2 = r2 >> 2;
+	heapFloat[(r12+2)] = f2;
+	r0 = r0 >> 2;
+	f3 = heapFloat[(r2)];
+	f4 = heapFloat[(r0)];
+	f5 = heapFloat[(r2+4)];
+	f6 = heapFloat[(r0+4)];
+	f7 = heapFloat[(r2+8)];
+	f8 = heapFloat[(r0+8)];
+	f9 = f3*f4;
+	f10 = f5*f6;
+	f9 = f9+f10;
+	f10 = f7*f8;
+	f9 = f9+f10;
+	f10 = f9*f9;
+	f10 = f16-f10;
+	f12 =   9.9999997473787516e-005;
+	if(f10 >f12) //_LBB166_151
+{
+	f12 = f0*f17;
+	f13 = f1*f11;
+	f12 = f12+f13;
+	f13 = f19*f18;
+	f28 = f0*f22;
+	f29 = f1*f21;
+	f12 = f12+f13;
+	f13 = f28+f29;
+	f28 = f19*f23;
+	f29 = f0*f25;
+	f30 = f1*f24;
+	f13 = f13+f28;
+	f12 = f12 > f14 ? f16 : f15;
+	f28 = f29+f30;
+	f29 = f19*f26;
+	f30 = heapFloat[(fp+-179)];
+	f12 = f30*f12;
+	f28 = f28+f29;
+	f13 = f13 > f14 ? f16 : f15;
+	f29 = heapFloat[(fp+-178)];
+	f13 = f29*f13;
+	f17 = f12*f17;
+	f11 = f12*f11;
+	f12 = f12*f18;
+	f14 = f28 > f14 ? f16 : f15;
+	f15 = heapFloat[(fp+-177)];
+	f14 = f15*f14;
+	f15 = heapFloat[(fp+-182)];
+	f15 = f15+f17;
+	f17 = f13*f22;
+	f18 = heapFloat[(fp+-181)];
+	f11 = f18+f11;
+	f18 = f13*f21;
+	f21 = heapFloat[(fp+-180)];
+	f12 = f21+f12;
+	f13 = f13*f23;
+	f15 = f15+f17;
+	f17 = f14*f25;
+	f11 = f11+f18;
+	f18 = f14*f24;
+	f12 = f12+f13;
+	f14 = f14*f26;
+	f13 = f15+f17;
+	f11 = f11+f18;
+	f14 = f12+f14;
+	f12 = f20-f13;
+	f11 = f27-f11;
+	f14 = f2-f14;
+	f3 = f3*f12;
+	f5 = f5*f11;
+	f3 = f3+f5;
+	f5 = f7*f14;
+	f7 = f4*f12;
+	f11 = f6*f11;
+	f3 = f3+f5;
+	f5 = f7+f11;
+	f14 = f8*f14;
+	f3 = f9*f3;
+	f14 = f5+f14;
+	f14 = f3-f14;
+	f3 = f16/f10;
+	f14 = f14*f3;
+}
+	f3 = f4*f14;
+	f20 = f20+f3;
+	f3 = f6*f14;
+	f4 = f8*f14;
+	f27 = f27+f3;
+	heapFloat[(fp+-128)] = f20;
+	f20 = f2+f4;
+	heapFloat[(r12+1)] = f27;
+	r0 = r5 >> 2;
+	heapFloat[(r12+2)] = f20;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+4)];
+	r2 = sp + -224;
+	f0 = -f0;
+	r3 = r2 >> 2;
+	f1 = -f1;
+	heapFloat[(fp+-56)] = f0;
+	f0 = -f19;
+	heapFloat[(r3+1)] = f1;
+	heapFloat[(r3+2)] = f0;
+	heap32[(r3+3)] = 0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r10;
+	f0 = heapFloat[(fp+-183)];
+	heapFloat[(g0+3)] = f0;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	return;
+}
+}
+}
+}
+}
+}
+}
+}
+}
+}
+}
+}
+}
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = sp + -8;
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+1)];
+	r3 = r0 >> 2;
+	r4 = heap32[(fp+3)];
+	heap32[(fp+-2)] = r1;
+	r5 = heap32[(fp+2)];
+	r6 = r2 >> 2;
+	heap32[(r3+1)] = r4;
+	r3 = heap32[(r6+48)];
+	r4 = r5 >> 2;
+	r3 = r3 >> 2;
+	r4 = heap32[(r4+48)];
+	r3 = heap32[(r3+1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+1)];
+	r3 = (r3 * 144)|0;
+	r1 = (r1 + r3)|0;
+	r3 = r4 << 2;
+	r1 = (r1 + r3)|0;
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+50)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+2)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r5;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	return;
+}
+
+function _ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+51)];
+	r1 = r0 & 4;
+if(!(r1 !=0)) //_LBB168_4
+{
+	r1 = heap32[(fp+2)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+51)];
+	r2 = r1 & 4;
+if(!(r2 !=0)) //_LBB168_4
+{
+	r0 = r0 & 3;
+	if(r0 ==0) //_LBB168_5
+{
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+else{
+	r0 = r1 & 3;
+	r1 = 0;
+	r0 = r0 == r1;
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+}
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN23btCollisionPairCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV23btCollisionPairCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN23btCollisionPairCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV23btCollisionPairCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+2)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2+47)];
+	r0 = heap32[(r0+1)];
+	r3 = heap32[(fp+1)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = _ZTV23btCollisionPairCallback;
+	r1 = sp + -16;
+	r0 = (r0 + 8)|0;
+	r2 = r1 >> 2;
+	r3 = heap32[(fp+2)];
+	heap32[(fp+-4)] = r0;
+	r0 = heap32[(fp+1)];
+	r4 = heap32[(fp)];
+	heap32[(r2+1)] = r3;
+	r3 = r0 >> 2;
+	heap32[(r2+2)] = r4;
+	r2 = heap32[(r3)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	r3 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	return;
+}
+
+function _ZNK21btCollisionDispatcher15getNumManifoldsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+3)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN21btCollisionDispatcher26getInternalManifoldPointerEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+5)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN21btCollisionDispatcher26getManifoldByIndexInternalEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r0 = heap32[(r0+5)];
+	r1 = r1 << 2;
+	r0 = (r0 + r1)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+if(!(r0 ==0)) //_LBB176_5
+{
+	r1 = heap32[(fp)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+48)];
+	r1 = r1 >> 2;
+	r2 = heap32[(r1+4)];
+if(!(uint(r2) >uint(r0))) //_LBB176_4
+{
+	r3 = heap32[(r1)];
+	r4 = heap32[(r1+1)];
+	r3 = (r3 * r4)|0;
+	r2 = (r2 + r3)|0;
+if(!(uint(r2) <=uint(r0))) //_LBB176_4
+{
+	r2 = r0 >> 2;
+	r3 = heap32[(r1+3)];
+	heap32[(r2)] = r3;
+	heap32[(r1+3)] = r0;
+	r0 = heap32[(r1+2)];
+	r0 = (r0 + 1)|0;
+	heap32[(r1+2)] = r0;
+	return;
+}
+}
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+	r2 = (r2 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r2;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = gNumManifold;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = heap32[(fp)];
+	r1 = (r1 + -1)|0;
+	r3 = r2 >> 2;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r3)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+5)];
+	r1 = heap32[(fp+1)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	r0 = r1 >> 2;
+	r2 = heap32[(r3+3)];
+	r4 = heap32[(r0+284)];
+	if(r2 >r4) //_LBB177_2
+{
+	r2 = (r2 + -1)|0;
+	r5 = r4 << 2;
+	r6 = heap32[(r3+5)];
+	r2 = r2 << 2;
+	r7 = (r6 + r5)|0;
+	r6 = (r6 + r2)|0;
+	r7 = r7 >> 2;
+	r6 = r6 >> 2;
+	r8 = heap32[(r7)];
+	r6 = heap32[(r6)];
+	heap32[(r7)] = r6;
+	r6 = heap32[(r3+5)];
+	r2 = (r6 + r2)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = r8;
+	r2 = heap32[(r3+5)];
+	r2 = (r2 + r5)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	heap32[(r2+284)] = r4;
+	r2 = heap32[(r3+3)];
+	r2 = (r2 + -1)|0;
+	heap32[(r3+3)] = r2;
+if(!(r1 ==0)) //_LBB177_7
+{
+	r2 = heap32[(r3+49)];
+	r2 = r2 >> 2;
+	r3 = heap32[(r2+4)];
+if(!(uint(r3) >uint(r1))) //_LBB177_6
+{
+	r4 = heap32[(r2)];
+	r5 = heap32[(r2+1)];
+	r4 = (r4 * r5)|0;
+	r3 = (r3 + r4)|0;
+if(!(uint(r3) <=uint(r1))) //_LBB177_6
+{
+	r3 = heap32[(r2+3)];
+	heap32[(r0)] = r3;
+	heap32[(r2+3)] = r1;
+	r0 = heap32[(r2+2)];
+	r0 = (r0 + 1)|0;
+	heap32[(r2+2)] = r0;
+	return;
+}
+}
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+	r2 = (r2 + 1)|0;
+	heap32[(r1)] = r2;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+else{
+	r0 = _2E_str472;
+	r1 = _2E_str573;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 120;
+	_assert(i7);
+}
+}
+
+function _ZN21btCollisionDispatcherD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV21btCollisionDispatcher;
+	r2 = _ZTV16btManifoldResult;
+	r3 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	r2 = (r2 + 8)|0;
+	heap32[(r3)] = r1;
+	heap32[(r3+7)] = r2;
+	r1 = heap32[(r3+5)];
+if(!(r1 ==0)) //_LBB178_4
+{
+	r2 = heapU8[r0+24];
+if(!(r2 ==0)) //_LBB178_3
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r4 = heap32[(r2)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r2)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r3+5)] = 0;
+}
+	r1 = 1;
+	heap8[r0+24] = r1;
+	heap32[(r3+5)] = 0;
+	r0 = _ZTV12btDispatcher;
+	heap32[(r3+3)] = 0;
+	r0 = (r0 + 8)|0;
+	heap32[(r3+4)] = 0;
+	heap32[(r3)] = r0;
+	return;
+}
+
+function _ZN21btCollisionDispatcherD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV21btCollisionDispatcher;
+	r2 = _ZTV16btManifoldResult;
+	r3 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	r2 = (r2 + 8)|0;
+	heap32[(r3)] = r1;
+	heap32[(r3+7)] = r2;
+	r1 = heap32[(r3+5)];
+if(!(r1 ==0)) //_LBB179_4
+{
+	r2 = heapU8[r0+24];
+if(!(r2 ==0)) //_LBB179_3
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r4 = heap32[(r2)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r2)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r3+5)] = 0;
+}
+	r1 = 1;
+	heap8[r0+24] = r1;
+	heap32[(r3+5)] = 0;
+	r1 = _ZTV12btDispatcher;
+	heap32[(r3+3)] = 0;
+	r1 = (r1 + 8)|0;
+	heap32[(r3+4)] = 0;
+	heap32[(r3)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN21btCollisionDispatcher14getNewManifoldEPvS0_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = gNumManifold;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	heap32[(r0)] = r1;
+	r0 = heapU8[r2+4];
+	r0 = r0 & 2;
+	if(r0 !=0) //_LBB180_2
+{
+	r0 = r4 >> 2;
+	r0 = heap32[(r0+48)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 1017370378;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	f0 = f_g0;
+	r0 = r3 >> 2;
+	heapFloat[(fp+-2)] = f0;
+	r0 = heap32[(r0+48)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 1017370378;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = sp + -4;
+	r1 = sp + -8;
+	r0 = f_g0 < f0 ? r0 : r1;
+	heapFloat[(fp+-1)] = f_g0;
+}
+else{
+	r0 = gContactBreakingThreshold;
+}
+	r1 = r2 >> 2;
+	r5 = heap32[(r1+49)];
+	r6 = r3 >> 2;
+	r7 = r4 >> 2;
+	r5 = r5 >> 2;
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r6+46)];
+	f1 = heapFloat[(r7+46)];
+	r6 = heap32[(r5+2)];
+	f2 = heapFloat[(r0)];
+	f0 = f0 < f1 ? f0 : f1;
+_5: do {
+	if(r6 ==0) //_LBB180_9
+{
+	r0 = gNumAlignedAllocs;
+	r0 = r0 >> 2;
+	r5 = heap32[(r0)];
+	r5 = (r5 + 1)|0;
+	heap32[(r0)] = r5;
+	heap32[(g0)] = 1159;
+	malloc(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB180_11
+{
+	r5 = 0;
+	r6 = (r0 + 4)|0;
+	r5 = (r5 - r6)|0;
+	r5 = r5 & 15;
+	r5 = (r0 + r5)|0;
+	r6 = (r5 + 4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r0;
+	r0 = r6;
+}
+else{
+break _5;
+}
+}
+else{
+	r0 = heap32[(r5)];
+	if(r0 >1139) //_LBB180_6
+{
+	if(r6 >0) //_LBB180_8
+{
+	r0 = heap32[(r5+3)];
+	r7 = r0 >> 2;
+	r7 = heap32[(r7)];
+	r6 = (r6 + -1)|0;
+	heap32[(r5+3)] = r7;
+	heap32[(r5+2)] = r6;
+}
+else{
+	r1 = _2E_str371;
+	r2 = _2E_str169;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 70;
+	_assert(i7);
+}
+}
+else{
+	r1 = _2E_str270;
+	r2 = _2E_str169;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 69;
+	_assert(i7);
+}
+}
+} while(0);
+	r5 = r0 >> 2;
+	heap32[(r5)] = 1;
+	heap32[(r5+28)] = 0;
+	r6 = 0;
+	heap32[(r5+29)] = 0;
+	heap8[r0+120] = r6;
+	heap32[(r5+31)] = 0;
+	heap32[(r5+32)] = 0;
+	heap32[(r5+33)] = 0;
+	heap32[(r5+34)] = 0;
+	heap32[(r5+35)] = 0;
+	heap32[(r5+36)] = 0;
+	heap32[(r5+37)] = 0;
+	heap32[(r5+97)] = 0;
+	heap32[(r5+98)] = 0;
+	heap8[r0+396] = r6;
+	heap32[(r5+100)] = 0;
+	heap32[(r5+101)] = 0;
+	heap32[(r5+102)] = 0;
+	heap32[(r5+103)] = 0;
+	heap32[(r5+104)] = 0;
+	heap32[(r5+105)] = 0;
+	heap32[(r5+106)] = 0;
+	heap32[(r5+166)] = 0;
+	heap32[(r5+167)] = 0;
+	heap8[r0+672] = r6;
+	heap32[(r5+169)] = 0;
+	heap32[(r5+170)] = 0;
+	heap32[(r5+171)] = 0;
+	heap32[(r5+172)] = 0;
+	heap32[(r5+173)] = 0;
+	heap32[(r5+174)] = 0;
+	heap32[(r5+175)] = 0;
+	heap32[(r5+235)] = 0;
+	heap32[(r5+236)] = 0;
+	heap8[r0+948] = r6;
+	heap32[(r5+238)] = 0;
+	heap32[(r5+239)] = 0;
+	heap32[(r5+240)] = 0;
+	heap32[(r5+241)] = 0;
+	heap32[(r5+242)] = 0;
+	heap32[(r5+243)] = 0;
+	heap32[(r5+244)] = 0;
+	heap32[(r5+277)] = r3;
+	heap32[(r5+278)] = r4;
+	heap32[(r5+279)] = 0;
+	heapFloat[(r5+280)] = f2;
+	heapFloat[(r5+281)] = f0;
+	r3 = heap32[(r1+3)];
+	heap32[(r5+284)] = r3;
+	r3 = heap32[(r1+4)];
+	r4 = heap32[(r1+3)];
+	if(r3 ==r4) //_LBB180_14
+{
+	r5 = 1;
+	r7 = r4 << 1;
+	r7 = r4 == 0 ? r5 : r7;
+if(!(r3 >=r7)) //_LBB180_13
+{
+	if(r7 !=0) //_LBB180_17
+{
+	r3 = gNumAlignedAllocs;
+	r3 = r3 >> 2;
+	r8 = heap32[(r3)];
+	r9 = r7 << 2;
+	r8 = (r8 + 1)|0;
+	r9 = r9 | 3;
+	heap32[(r3)] = r8;
+	r3 = (r9 + 16)|0;
+	heap32[(g0)] = r3;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB180_19
+{
+	r8 = (r3 + 4)|0;
+	r8 = (r6 - r8)|0;
+	r8 = r8 & 15;
+	r8 = (r3 + r8)|0;
+	r9 = (r8 + 4)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = r3;
+	r3 = r9;
+}
+}
+else{
+	r3 = 0;
+}
+	r8 = (r2 + 20)|0;
+	if(r4 <1) //_LBB180_22
+{
+	r6 = r8 >> 2;
+	r9 = heap32[(r6)];
+}
+else{
+_26: while(true){
+	r9 = r8 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r6 << 2;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r3 + r10)|0;
+	r11 = heap32[(r11)];
+	r6 = (r6 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r11;
+if(!(r4 !=r6)) //_LBB180_23
+{
+break _26;
+}
+}
+	r8 = (r2 + 20)|0;
+}
+	if(r9 !=0) //_LBB180_27
+{
+	r6 = heapU8[r2+24];
+	if(r6 !=0) //_LBB180_29
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r6 = heap32[(r4)];
+	r6 = (r6 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r4)] = r6;
+	r4 = heap32[(r9+-1)];
+	heap32[(g0)] = r4;
+	free(i7);
+	r4 = heap32[(r1+3)];
+}
+	r6 = r8 >> 2;
+	heap32[(r6)] = 0;
+}
+	r6 = r8 >> 2;
+	heap8[r2+24] = r5;
+	heap32[(r6)] = r3;
+	heap32[(r1+4)] = r7;
+}
+}
+	r2 = r4 << 2;
+	r3 = heap32[(r1+5)];
+	r2 = (r3 + r2)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = r0;
+	r2 = heap32[(r1+3)];
+	r2 = (r2 + 1)|0;
+	heap32[(r1+3)] = r2;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+279)];
+if(!(r1 <1)) //_LBB181_3
+{
+	r2 = 0;
+_3: while(true){
+	r2 = (r2 + 1)|0;
+	if(r1 >r2) //_LBB181_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	heap32[(r0+279)] = 0;
+	return;
+}
+
+function _ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	if(r0 !=0) //_LBB182_2
+{
+	r1 = heap32[(fp+2)];
+	if(r1 !=0) //_LBB182_4
+{
+	r2 = heap32[(fp)];
+	r2 = r2 >> 2;
+	r3 = heap32[(r2+1)];
+	r4 = r3 & 1;
+if(!(r4 != 0)) //_LBB182_8
+{
+	r4 = heapU8[r0+204];
+	r4 = r4 & 3;
+if(!(r4 ==0)) //_LBB182_8
+{
+	r4 = heapU8[r1+204];
+	r4 = r4 & 3;
+if(!(r4 ==0)) //_LBB182_8
+{
+	r3 = r3 | 1;
+	heap32[(r2+1)] = r3;
+	r2 = _2E_str977;
+	heap32[(g0)] = r2;
+	printf(i7);
+}
+}
+}
+	r2 = r0 >> 2;
+	r3 = heap32[(r2+54)];
+	if(r3 ==2) //_LBB182_10
+{
+__label__ = 10;
+}
+else{
+	if(r3 !=5) //_LBB182_12
+{
+__label__ = 12;
+}
+else{
+__label__ = 10;
+}
+}
+_12: do {
+if (__label__ == 10){
+	r3 = r1 >> 2;
+	r3 = heap32[(r3+54)];
+if(!(r3 ==2)) //_LBB182_16
+{
+if(!(r3 ==5)) //_LBB182_16
+{
+break _12;
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+} while(0);
+	r3 = heap32[(r2+63)];
+	if(r3 !=0) //_LBB182_14
+{
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	r0 = 0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = r_g0 == r0;
+}
+else{
+	r0 = 0;
+}
+	r0 = r0 & 1;
+	r0 = r0 ^ 1;
+	r_g0 = r0;
+	return;
+}
+else{
+	r0 = _2E_str876;
+	r1 = _2E_str573;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 167;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str775;
+	r1 = _2E_str573;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 166;
+	_assert(i7);
+}
+}
+
+function _ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+48)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+2)];
+	r2 = heap32[(fp+1)];
+	if(r1 ==0) //_LBB183_7
+{
+	r0 = gNumAlignedAllocs;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = (r2 + 19)|0;
+	heap32[(g0)] = r0;
+	malloc(i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB183_9
+{
+	r1 = 0;
+	r2 = (r0 + 4)|0;
+	r1 = (r1 - r2)|0;
+	r1 = r1 & 15;
+	r1 = (r0 + r1)|0;
+	r2 = r1 >> 2;
+	heap32[(r2)] = r0;
+	r0 = (r1 + 4)|0;
+}
+	r_g0 = r0;
+	return;
+}
+else{
+if(!(r2 ==0)) //_LBB183_4
+{
+	r3 = heap32[(r0)];
+if(!(r3 >=r2)) //_LBB183_4
+{
+	r0 = _2E_str270;
+	r1 = _2E_str169;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 69;
+	_assert(i7);
+}
+}
+	if(r1 >0) //_LBB183_6
+{
+	r2 = heap32[(r0+3)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r1 = (r1 + -1)|0;
+	heap32[(r0+3)] = r3;
+	heap32[(r0+2)] = r1;
+	r_g0 = r2;
+	return;
+}
+else{
+	r0 = _2E_str371;
+	r1 = _2E_str169;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 70;
+	_assert(i7);
+}
+}
+}
+
+function _ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -184;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r1 = r1 >> 2;
+	r2 = r0 >> 2;
+	r3 = heap32[(r2)];
+	r4 = heap32[(r1)];
+	r5 = heap32[(r1+1)];
+	r3 = r3 >> 2;
+	r4 = r4 >> 2;
+	r5 = r5 >> 2;
+	r4 = heap32[(r4)];
+	r5 = heap32[(r5)];
+	r3 = heap32[(r3+6)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r_g0;
+_1: do {
+if(!(r3 ==0)) //_LBB184_8
+{
+	r3 = heap32[(fp+2)];
+	r6 = heap32[(r1+2)];
+	if(r6 ==0) //_LBB184_3
+{
+	r6 = heap32[(r2)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = 0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = r_g0;
+	heap32[(r1+2)] = r6;
+	if(r6 ==0) //_LBB184_8
+{
+break _1;
+}
+}
+	r0 = _ZTV16btManifoldResult;
+	r1 = sp + -160;
+	r0 = (r0 + 8)|0;
+	r2 = r1 >> 2;
+	heap32[(fp+-40)] = r0;
+	heap32[(r2+1)] = 0;
+	heap32[(r2+34)] = r4;
+	r0 = r4 >> 2;
+	heap32[(r2+35)] = r5;
+	heap32[(r2+2)] = heap32[(r0+1)];
+	heap32[(r2+3)] = heap32[(r0+2)];
+	heap32[(r2+4)] = heap32[(r0+3)];
+	heap32[(r2+5)] = heap32[(r0+4)];
+	heap32[(r2+6)] = heap32[(r0+5)];
+	heap32[(r2+7)] = heap32[(r0+6)];
+	heap32[(r2+8)] = heap32[(r0+7)];
+	heap32[(r2+9)] = heap32[(r0+8)];
+	heap32[(r2+10)] = heap32[(r0+9)];
+	heap32[(r2+11)] = heap32[(r0+10)];
+	heap32[(r2+12)] = heap32[(r0+11)];
+	heap32[(r2+13)] = heap32[(r0+12)];
+	heap32[(r2+14)] = heap32[(r0+13)];
+	heap32[(r2+15)] = heap32[(r0+14)];
+	heap32[(r2+16)] = heap32[(r0+15)];
+	r7 = r5 >> 2;
+	heap32[(r2+17)] = heap32[(r0+16)];
+	heap32[(r2+18)] = heap32[(r7+1)];
+	heap32[(r2+19)] = heap32[(r7+2)];
+	heap32[(r2+20)] = heap32[(r7+3)];
+	heap32[(r2+21)] = heap32[(r7+4)];
+	heap32[(r2+22)] = heap32[(r7+5)];
+	heap32[(r2+23)] = heap32[(r7+6)];
+	heap32[(r2+24)] = heap32[(r7+7)];
+	heap32[(r2+25)] = heap32[(r7+8)];
+	heap32[(r2+26)] = heap32[(r7+9)];
+	heap32[(r2+27)] = heap32[(r7+10)];
+	heap32[(r2+28)] = heap32[(r7+11)];
+	heap32[(r2+29)] = heap32[(r7+12)];
+	heap32[(r2+30)] = heap32[(r7+13)];
+	heap32[(r2+31)] = heap32[(r7+14)];
+	heap32[(r2+32)] = heap32[(r7+15)];
+	r0 = r6 >> 2;
+	heap32[(r2+33)] = heap32[(r7+16)];
+	r0 = heap32[(r0)];
+	r2 = r3 >> 2;
+	r7 = heap32[(r2+2)];
+	if(r7 !=1) //_LBB184_6
+{
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+3)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r1;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	f0 = f_g0;
+	f1 = heapFloat[(r2+3)];
+if(!(f1 <=f0)) //_LBB184_8
+{
+	heapFloat[(r2+3)] = f0;
+}
+}
+else{
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+2)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r1;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	return;
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN17btCollisionObject24checkCollideWithOverrideEPS_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	heap32[(r0+48)] = r1;
+	heap32[(r0+50)] = r1;
+	return;
+}
+
+function _ZNK17btCollisionObject28calculateSerializeBufferSizeEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 248;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN17btCollisionObjectD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV17btCollisionObject;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN17btCollisionObjectD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV17btCollisionObject;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+if(!(r0 ==0)) //_LBB189_2
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZNK17btCollisionObject9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 >> 2;
+	r1 = r1 >> 2;
+	heap32[(r1+4)] = heap32[(r2+1)];
+	heap32[(r1+5)] = heap32[(r2+2)];
+	heap32[(r1+6)] = heap32[(r2+3)];
+	heap32[(r1+7)] = heap32[(r2+4)];
+	heap32[(r1+8)] = heap32[(r2+5)];
+	heap32[(r1+9)] = heap32[(r2+6)];
+	heap32[(r1+10)] = heap32[(r2+7)];
+	heap32[(r1+11)] = heap32[(r2+8)];
+	heap32[(r1+12)] = heap32[(r2+9)];
+	heap32[(r1+13)] = heap32[(r2+10)];
+	heap32[(r1+14)] = heap32[(r2+11)];
+	heap32[(r1+15)] = heap32[(r2+12)];
+	heap32[(r1+16)] = heap32[(r2+13)];
+	heap32[(r1+17)] = heap32[(r2+14)];
+	heap32[(r1+18)] = heap32[(r2+15)];
+	heap32[(r1+19)] = heap32[(r2+16)];
+	heap32[(r1+20)] = heap32[(r2+17)];
+	heap32[(r1+21)] = heap32[(r2+18)];
+	heap32[(r1+22)] = heap32[(r2+19)];
+	heap32[(r1+23)] = heap32[(r2+20)];
+	heap32[(r1+24)] = heap32[(r2+21)];
+	heap32[(r1+25)] = heap32[(r2+22)];
+	heap32[(r1+26)] = heap32[(r2+23)];
+	heap32[(r1+27)] = heap32[(r2+24)];
+	heap32[(r1+28)] = heap32[(r2+25)];
+	heap32[(r1+29)] = heap32[(r2+26)];
+	heap32[(r1+30)] = heap32[(r2+27)];
+	heap32[(r1+31)] = heap32[(r2+28)];
+	heap32[(r1+32)] = heap32[(r2+29)];
+	heap32[(r1+33)] = heap32[(r2+30)];
+	heap32[(r1+34)] = heap32[(r2+31)];
+	heap32[(r1+35)] = heap32[(r2+32)];
+	heap32[(r1+36)] = heap32[(r2+33)];
+	heap32[(r1+37)] = heap32[(r2+34)];
+	heap32[(r1+38)] = heap32[(r2+35)];
+	heap32[(r1+39)] = heap32[(r2+36)];
+	heap32[(r1+40)] = heap32[(r2+37)];
+	heap32[(r1+41)] = heap32[(r2+38)];
+	heap32[(r1+42)] = heap32[(r2+39)];
+	heap32[(r1+43)] = heap32[(r2+40)];
+	heap32[(r1+44)] = heap32[(r2+41)];
+	heap32[(r1+45)] = heap32[(r2+42)];
+	heap32[(r1+46)] = heap32[(r2+43)];
+	heap32[(r1+47)] = heap32[(r2+44)];
+	r3 = heap32[(r2+45)];
+	heap32[(r1+55)] = r3;
+	r3 = heap32[(fp+2)];
+	heap32[(r1+48)] = heap32[(r2+46)];
+	heap32[(r1)] = 0;
+	r4 = r3 >> 2;
+	r5 = heap32[(r4)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+7)];
+	r6 = heap32[(r2+48)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r6;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	heap32[(r1+1)] = r_g0;
+	heap32[(r1+2)] = 0;
+	r5 = heap32[(r2+51)];
+	heap32[(r1+56)] = r5;
+	r5 = heap32[(r2+52)];
+	heap32[(r1+57)] = r5;
+	r5 = heap32[(r2+53)];
+	heap32[(r1+58)] = r5;
+	r5 = heap32[(r2+54)];
+	heap32[(r1+59)] = r5;
+	r5 = heap32[(r2+54)];
+	heap32[(r1+59)] = r5;
+	heap32[(r1+49)] = heap32[(r2+55)];
+	heap32[(r1+50)] = heap32[(r2+56)];
+	heap32[(r1+51)] = heap32[(r2+57)];
+	r5 = heap32[(r2+58)];
+	heap32[(r1+60)] = r5;
+	r5 = heap32[(r4)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+10)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r0 = r_g0;
+	r5 = heap32[(r4)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+7)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r5 = r_g0;
+	heap32[(r1+3)] = r5;
+if(!(r5 ==0)) //_LBB190_2
+{
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+12)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+	heap32[(r1+52)] = heap32[(r2+60)];
+	heap32[(r1+53)] = heap32[(r2+61)];
+	heap32[(r1+54)] = heap32[(r2+62)];
+	heap32[(r1+54)] = heap32[(r2+62)];
+	r0 = heap32[(r2+63)];
+	heap32[(r1+61)] = r0;
+	r0 = _2E_str78;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	r3 = heap32[(fp+1)];
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r4 = r3 >> 2;
+	r5 = heap32[(r4)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r2 = r_g0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r5 = r2 >> 2;
+	r1 = heap32[(r1+5)];
+	r5 = heap32[(r5+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+5)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r_g0;
+	heap32[(g0+3)] = 1245859651;
+	heap32[(g0+4)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	return;
+}
+
+function _ZN16btManifoldResult20setShapeIdentifiersAEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	heap32[(r0+36)] = r1;
+	heap32[(r0+38)] = r2;
+	return;
+}
+
+function _ZN16btManifoldResult20setShapeIdentifiersBEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	heap32[(r0+37)] = r1;
+	heap32[(r0+39)] = r2;
+	return;
+}
+
+function _ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	heap32[(r0+21)] = r1;
+	return;
+}
+
+function _ZN16btCollisionWorld14getDebugDrawerEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+21)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heapU16[(r0+10)>>1];
+	r3 = heapU16[(r1+4)>>1];
+	r2 = r2 & r3;
+	r2 = r2 & 65535;
+	if(r2 ==0) //_LBB196_2
+{
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+else{
+	r1 = heapU16[(r1+6)>>1];
+	r0 = heapU16[(r0+8)>>1];
+	r0 = r1 & r0;
+	r0 = r0 & 65535;
+	r1 = 0;
+	r0 = r0 != r1;
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZN12btConvexCast10CastResult9DebugDrawEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN12btConvexCast10CastResultD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN12btConvexCast10CastResultE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN12btConvexCast10CastResultD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN12btConvexCast10CastResultE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + -56;var g0 = i7>>2; // save stack
+	r0 = sp + -8;
+	r1 = heap32[(fp+3)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp)];
+	r4 = r0 >> 2;
+	r5 = heap32[(fp+4)];
+	heap32[(fp+-2)] = r1;
+	r1 = r2 >> 2;
+	heap32[(r4+1)] = r5;
+	r2 = r3 >> 2;
+	r3 = heap32[(r2+12)];
+	f0 = heapFloat[(r2+22)];
+	f1 = heapFloat[(r1)];
+	f2 = heapFloat[(r2+18)];
+	f3 = heapFloat[(r2+14)];
+	f4 = heapFloat[(r2+23)];
+	f5 = heapFloat[(r1+1)];
+	f6 = heapFloat[(r2+19)];
+	f7 = heapFloat[(r2+15)];
+	f8 = heapFloat[(r2+24)];
+	f9 = heapFloat[(r1+2)];
+	f10 = heapFloat[(r2+20)];
+	f11 = heapFloat[(r2+16)];
+	r1 = sp + -40;
+	f3 = f3*f1;
+	f7 = f7*f5;
+	r4 = r1 >> 2;
+	heap32[(fp+-10)] = r3;
+	f2 = f2*f1;
+	f6 = f6*f5;
+	f3 = f3+f7;
+	f7 = f11*f9;
+	f0 = f0*f1;
+	f1 = f4*f5;
+	f2 = f2+f6;
+	f4 = f10*f9;
+	f3 = f3+f7;
+	heap32[(r4+1)] = r0;
+	f0 = f0+f1;
+	f1 = f8*f9;
+	f2 = f2+f4;
+	heapFloat[(r4+2)] = f3;
+	f0 = f0+f1;
+	heapFloat[(r4+3)] = f2;
+	heapFloat[(r4+4)] = f0;
+	heap32[(r4+5)] = 0;
+	heap32[(r4+6)] = heap32[(fp+2)];
+	r0 = heap32[(r2+11)];
+	r2 = r0 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	return;
+}
+
+function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + -56;var g0 = i7>>2; // save stack
+	r0 = sp + -8;
+	r1 = heap32[(fp+3)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp)];
+	r4 = r0 >> 2;
+	r5 = heap32[(fp+4)];
+	heap32[(fp+-2)] = r1;
+	r1 = r2 >> 2;
+	heap32[(r4+1)] = r5;
+	r2 = r3 >> 2;
+	r3 = heap32[(r2+12)];
+	f0 = heapFloat[(r2+22)];
+	f1 = heapFloat[(r1)];
+	f2 = heapFloat[(r2+18)];
+	f3 = heapFloat[(r2+14)];
+	f4 = heapFloat[(r2+23)];
+	f5 = heapFloat[(r1+1)];
+	f6 = heapFloat[(r2+19)];
+	f7 = heapFloat[(r2+15)];
+	f8 = heapFloat[(r2+24)];
+	f9 = heapFloat[(r1+2)];
+	f10 = heapFloat[(r2+20)];
+	f11 = heapFloat[(r2+16)];
+	r1 = sp + -40;
+	f3 = f3*f1;
+	f7 = f7*f5;
+	r4 = r1 >> 2;
+	heap32[(fp+-10)] = r3;
+	f2 = f2*f1;
+	f6 = f6*f5;
+	f3 = f3+f7;
+	f7 = f11*f9;
+	f0 = f0*f1;
+	f1 = f4*f5;
+	f2 = f2+f6;
+	f4 = f10*f9;
+	f3 = f3+f7;
+	heap32[(r4+1)] = r0;
+	f0 = f0+f1;
+	f1 = f8*f9;
+	f2 = f2+f4;
+	heapFloat[(r4+2)] = f3;
+	f0 = f0+f1;
+	heapFloat[(r4+3)] = f2;
+	heapFloat[(r4+4)] = f0;
+	heap32[(r4+5)] = 0;
+	heap32[(r4+6)] = heap32[(fp+2)];
+	r0 = heap32[(r2+11)];
+	r2 = r0 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	return;
+}
+
+function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = sp + -8;
+	r0 = r0 >> 2;
+	heap32[(fp+-2)] = -1;
+	r2 = heap32[(fp+1)];
+	r3 = r1 >> 2;
+	r4 = heap32[(r0+6)];
+	r5 = r2 >> 2;
+	heap32[(r3+1)] = r4;
+	r3 = heap32[(r5+1)];
+if(!(r3 !=0)) //_LBB205_2
+{
+	heap32[(r5+1)] = r1;
+}
+	r1 = heap32[(fp+2)];
+	r3 = heap32[(r0+5)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+3)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r1 = heap32[(r0+5)];
+	r1 = r1 >> 2;
+	heap32[(r0+1)] = heap32[(r1+1)];
+	return;
+}
+
+function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -72;var g0 = i7>>2; // save stack
+	r0 = sp + -8;
+	r1 = heap32[(fp+4)];
+	r2 = heap32[(fp)];
+	r3 = r0 >> 2;
+	r4 = heap32[(fp+5)];
+	heap32[(fp+-2)] = r1;
+	r1 = r2 >> 2;
+	heap32[(r3+1)] = r4;
+	r2 = heap32[(r1+52)];
+	f0 = heapFloat[(fp+3)];
+	r3 = r2 >> 2;
+	f1 = heapFloat[(r3+1)];
+	if(f1 <f0) //_LBB206_2
+{
+	f_g0 = f0;
+	return;
+}
+else{
+	r4 = heap32[(fp+1)];
+	r5 = heap32[(fp+2)];
+	r1 = heap32[(r1+53)];
+	r6 = sp + -56;
+	r7 = r6 >> 2;
+	heap32[(fp+-14)] = r1;
+	r1 = r4 >> 2;
+	heap32[(r7+1)] = r0;
+	heap32[(r7+2)] = heap32[(r1)];
+	heap32[(r7+3)] = heap32[(r1+1)];
+	heap32[(r7+4)] = heap32[(r1+2)];
+	r0 = r5 >> 2;
+	heap32[(r7+5)] = heap32[(r1+3)];
+	heap32[(r7+6)] = heap32[(r0)];
+	heap32[(r7+7)] = heap32[(r0+1)];
+	heap32[(r7+8)] = heap32[(r0+2)];
+	heap32[(r7+9)] = heap32[(r0+3)];
+	heapFloat[(r7+10)] = f0;
+	r0 = heap32[(r3)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+3)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	return;
+}
+}
+
+function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -72;var g0 = i7>>2; // save stack
+	r0 = sp + -8;
+	r1 = heap32[(fp+4)];
+	r2 = heap32[(fp)];
+	r3 = r0 >> 2;
+	r4 = heap32[(fp+5)];
+	heap32[(fp+-2)] = r1;
+	r1 = r2 >> 2;
+	heap32[(r3+1)] = r4;
+	r2 = heap32[(r1+52)];
+	f0 = heapFloat[(fp+3)];
+	r3 = r2 >> 2;
+	f1 = heapFloat[(r3+1)];
+	if(f1 <f0) //_LBB207_2
+{
+	f_g0 = f0;
+	return;
+}
+else{
+	r4 = heap32[(fp+1)];
+	r5 = heap32[(fp+2)];
+	r1 = heap32[(r1+53)];
+	r6 = sp + -56;
+	r7 = r6 >> 2;
+	heap32[(fp+-14)] = r1;
+	r1 = r4 >> 2;
+	heap32[(r7+1)] = r0;
+	heap32[(r7+2)] = heap32[(r1)];
+	heap32[(r7+3)] = heap32[(r1+1)];
+	heap32[(r7+4)] = heap32[(r1+2)];
+	r0 = r5 >> 2;
+	heap32[(r7+5)] = heap32[(r1+3)];
+	heap32[(r7+6)] = heap32[(r0)];
+	heap32[(r7+7)] = heap32[(r0+1)];
+	heap32[(r7+8)] = heap32[(r0+2)];
+	heap32[(r7+9)] = heap32[(r0+3)];
+	heapFloat[(r7+10)] = f0;
+	r0 = heap32[(r3)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+3)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = 0;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	return;
+}
+}
+
+function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = sp + -8;
+	r0 = r0 >> 2;
+	heap32[(fp+-2)] = -1;
+	r2 = heap32[(fp+1)];
+	r3 = r1 >> 2;
+	r4 = heap32[(r0+4)];
+	r5 = r2 >> 2;
+	heap32[(r3+1)] = r4;
+	r3 = heap32[(r5+1)];
+if(!(r3 !=0)) //_LBB210_2
+{
+	heap32[(r5+1)] = r1;
+}
+	r1 = heap32[(fp+2)];
+	r3 = heap32[(r0+3)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+3)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r1 = heap32[(r0+3)];
+	r1 = r1 >> 2;
+	heap32[(r0+1)] = heap32[(r1+1)];
+	return;
+}
+
+function _ZN17DebugDrawcallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _ZTV17DebugDrawcallback;
+	r1 = heap32[(fp)];
+	r1 = r1 >> 2;
+	r2 = (r0 + 8)|0;
+	r3 = _ZTV31btInternalTriangleIndexCallback;
+	r0 = (r0 + 32)|0;
+	heap32[(r1)] = r2;
+	r2 = _ZTV18btTriangleCallback;
+	r3 = (r3 + 8)|0;
+	heap32[(r1+1)] = r0;
+	r0 = (r2 + 8)|0;
+	heap32[(r1+1)] = r3;
+	heap32[(r1)] = r0;
+	return;
+}
+
+function _ZN17DebugDrawcallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = _ZTV17DebugDrawcallback;
+	r1 = heap32[(fp)];
+	r2 = r1 >> 2;
+	r3 = (r0 + 8)|0;
+	r4 = _ZTV31btInternalTriangleIndexCallback;
+	r0 = (r0 + 32)|0;
+	heap32[(r2)] = r3;
+	r3 = _ZTV18btTriangleCallback;
+	r4 = (r4 + 8)|0;
+	heap32[(r2+1)] = r0;
+	r0 = (r3 + 8)|0;
+	heap32[(r2+1)] = r4;
+	heap32[(r2)] = r0;
+	heap32[(g0)] = r1;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN17DebugDrawcallback15processTriangleEP9btVector3ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+var __label__ = 0;
+	i7 = sp + -112;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 >> 2;
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r2+7)];
+	f2 = heapFloat[(r1+1)];
+	f3 = heapFloat[(r2+8)];
+	f4 = heapFloat[(r2+11)];
+	f5 = heapFloat[(r2+12)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r1+2)];
+	f9 = heapFloat[(r2+9)];
+	f10 = heapFloat[(r2+15)];
+	f11 = heapFloat[(r2+16)];
+	f12 = heapFloat[(r2+13)];
+	f13 = f4*f0;
+	f14 = f5*f2;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	f15 = heapFloat[(r2+17)];
+	f0 = f10*f0;
+	f2 = f11*f2;
+	f13 = f13+f14;
+	f14 = f12*f8;
+	f6 = f6+f7;
+	f7 = heapFloat[(r2+19)];
+	f16 = heapFloat[(r2+21)];
+	f17 = heapFloat[(r2+20)];
+	r3 = sp + -32;
+	f13 = f13+f14;
+	f0 = f0+f2;
+	f2 = f15*f8;
+	f6 = f6+f7;
+	f0 = f0+f2;
+	r4 = r3 >> 2;
+	f2 = f13+f17;
+	heapFloat[(fp+-8)] = f6;
+	f0 = f0+f16;
+	heapFloat[(r4+1)] = f2;
+	heapFloat[(r4+2)] = f0;
+	heap32[(r4+3)] = 0;
+	f8 = heapFloat[(r1+4)];
+	f13 = heapFloat[(r1+5)];
+	f14 = heapFloat[(r1+6)];
+	f18 = f1*f8;
+	f19 = f3*f13;
+	f20 = f4*f8;
+	f21 = f5*f13;
+	f18 = f18+f19;
+	f19 = f9*f14;
+	f18 = f18+f19;
+	f8 = f10*f8;
+	f13 = f11*f13;
+	f19 = f20+f21;
+	f20 = f12*f14;
+	f18 = f18+f7;
+	r4 = sp + -48;
+	f19 = f19+f20;
+	f8 = f8+f13;
+	f13 = f15*f14;
+	f14 = f19+f17;
+	f8 = f8+f13;
+	r5 = r4 >> 2;
+	heapFloat[(fp+-12)] = f18;
+	f8 = f8+f16;
+	heapFloat[(r5+1)] = f14;
+	heapFloat[(r5+2)] = f8;
+	heap32[(r5+3)] = 0;
+	f13 = heapFloat[(r1+8)];
+	f19 = heapFloat[(r1+9)];
+	f20 = heapFloat[(r1+10)];
+	f1 = f1*f13;
+	f3 = f3*f19;
+	f4 = f4*f13;
+	f5 = f5*f19;
+	f1 = f1+f3;
+	f3 = f9*f20;
+	f1 = f1+f3;
+	f3 = f10*f13;
+	f9 = f11*f19;
+	f4 = f4+f5;
+	f5 = f12*f20;
+	r1 = sp + -64;
+	f4 = f4+f5;
+	f1 = f1+f7;
+	f3 = f3+f9;
+	f5 = f15*f20;
+	f3 = f3+f5;
+	f4 = f4+f17;
+	r5 = r1 >> 2;
+	heapFloat[(fp+-16)] = f1;
+	f5 = f6+f18;
+	f3 = f3+f16;
+	heapFloat[(r5+1)] = f4;
+	f7 = f2+f14;
+	heapFloat[(r5+2)] = f3;
+	f5 = f5+f1;
+	f9 =        0.3333333432674408;
+	r6 = sp + -80;
+	f10 = f0+f8;
+	f7 = f7+f4;
+	f8 = f8-f0;
+	f4 = f4-f2;
+	f11 = f18-f6;
+	f0 = f3-f0;
+	f2 = f14-f2;
+	f1 = f1-f6;
+	f5 = f5*f9;
+	heap32[(r5+3)] = 0;
+	f3 = f10+f3;
+	f6 = f2*f0;
+	f10 = f8*f4;
+	f8 = f8*f1;
+	f0 = f11*f0;
+	r5 = r6 >> 2;
+	f7 = f7*f9;
+	heapFloat[(fp+-20)] = f5;
+	f5 = f6-f10;
+	f0 = f8-f0;
+	f4 = f11*f4;
+	f1 = f2*f1;
+	f2 = f3*f9;
+	heapFloat[(r5+1)] = f7;
+	f1 = f4-f1;
+	heapFloat[(r5+2)] = f2;
+	f2 = f5*f5;
+	f3 = f0*f0;
+	heap32[(r5+3)] = 0;
+	f2 = f2+f3;
+	f3 = f1*f1;
+	f2 = f2+f3;
+	heapFloat[(g0)] = f2;
+	r7 = sp + -96;
+	sqrtf(i7);
+	r8 = r7 >> 2;
+	heap32[(fp+-24)] = 1065353216;
+	heap32[(r8+1)] = 1065353216;
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = 0;
+	r8 = heap32[(r2+2)];
+	r9 = r8 >> 2;
+	f3 =                         1;
+	r9 = heap32[(r9)];
+	f2 = f3/f_g0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+2)];
+	f3 = f5*f2;
+	f4 = heapFloat[(fp+-20)];
+	f5 = heapFloat[(r5+2)];
+	f6 = heapFloat[(r5+1)];
+	r5 = sp + -16;
+	f0 = f0*f2;
+	f3 = f4+f3;
+	f1 = f1*f2;
+	r10 = r5 >> 2;
+	f0 = f6+f0;
+	heapFloat[(fp+-4)] = f3;
+	f1 = f5+f1;
+	heapFloat[(r10+1)] = f0;
+	heapFloat[(r10+2)] = f1;
+	heap32[(r10+3)] = 0;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r7;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r5 = heap32[(r2+2)];
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+2)];
+	r0 = (r0 + 12)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r5 = heap32[(r2+2)];
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+2)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r2 = heap32[(r2+2)];
+	r4 = r2 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	return;
+}
+
+function _ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+2)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZThn4_N17DebugDrawcallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _ZTV17DebugDrawcallback;
+	r1 = heap32[(fp)];
+	r1 = r1 >> 2;
+	r2 = (r0 + 8)|0;
+	r3 = _ZTV31btInternalTriangleIndexCallback;
+	r0 = (r0 + 32)|0;
+	heap32[(r1+-1)] = r2;
+	r2 = _ZTV18btTriangleCallback;
+	r3 = (r3 + 8)|0;
+	heap32[(r1)] = r0;
+	r0 = (r2 + 8)|0;
+	heap32[(r1)] = r3;
+	heap32[(r1+-1)] = r0;
+	return;
+}
+
+function _ZThn4_N17DebugDrawcallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV17DebugDrawcallback;
+	r2 = r0 >> 2;
+	r3 = (r1 + 8)|0;
+	r4 = _ZTV31btInternalTriangleIndexCallback;
+	r1 = (r1 + 32)|0;
+	heap32[(r2+-1)] = r3;
+	r3 = _ZTV18btTriangleCallback;
+	r4 = (r4 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = (r3 + 8)|0;
+	heap32[(r2)] = r4;
+	heap32[(r2+-1)] = r1;
+	r0 = (r0 + -4)|0;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1+-1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+2)];
+	r0 = (r0 + -4)|0;
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZN16btCollisionWorldD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	_ZN16btCollisionWorldD2Ev(i7);
+	return;
+}
+
+function _ZN16btCollisionWorldD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btCollisionWorld;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+4)];
+	r3 = heap32[(r2+2)];
+	if(r3 >0) //_LBB219_2
+{
+	r3 = 0;
+_3: while(true){
+	r4 = r3 << 2;
+	r1 = (r1 + r4)|0;
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r4 = heap32[(r1+47)];
+if(!(r4 ==0)) //_LBB219_5
+{
+	r5 = heap32[(r2+20)];
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+9)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = r_g0 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+10)];
+	r7 = heap32[(r2+6)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r7;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r5 = heap32[(r2+20)];
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+3)];
+	r7 = heap32[(r2+6)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r7;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	heap32[(r1+47)] = 0;
+}
+	r3 = (r3 + 1)|0;
+	r1 = heap32[(r2+4)];
+	r4 = heap32[(r2+2)];
+	if(r4 >r3) //_LBB219_3
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+if(!(r1 ==0)) //_LBB219_10
+{
+	r3 = heapU8[r0+20];
+if(!(r3 ==0)) //_LBB219_9
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+4)] = 0;
+}
+	r1 = 1;
+	heap8[r0+20] = r1;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN16btCollisionWorld11updateAabbsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+var __label__ = 0;
+	i7 = sp + -64;var g0 = i7>>2; // save stack
+	r0 = _2E_str1998;
+	r1 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	r0 = r1 >> 2;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r2 = heap32[(r0+2)];
+if(!(r2 <1)) //_LBB220_14
+{
+	r2 = 0;
+_3: while(true){
+	r3 = heap32[(r0+4)];
+	r4 = r2 << 2;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r2 = (r2 + 1)|0;
+	r3 = heap32[(r3)];
+	r4 = heapU8[r1+88];
+	if(r4 !=0) //_LBB220_5
+{
+__label__ = 5;
+}
+else{
+	r4 = r3 >> 2;
+	r4 = heap32[(r4+54)];
+	if(r4 ==2) //_LBB220_13
+{
+__label__ = 13;
+}
+else{
+	if(r4 ==5) //_LBB220_13
+{
+__label__ = 13;
+}
+else{
+__label__ = 5;
+}
+}
+}
+_8: do {
+if (__label__ == 5){
+	r4 = r3 >> 2;
+	r5 = heap32[(r4+48)];
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+2)];
+	r7 = sp + -40;
+	r8 = sp + -24;
+	r9 = (r3 + 4)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r7;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	f0 =     -0.019999999552965164;
+	f1 = heapFloat[(fp+-6)];
+	f1 = f1+f0;
+	r5 = r8 >> 2;
+	heapFloat[(fp+-6)] = f1;
+	f2 = heapFloat[(r5+1)];
+	f2 = f2+f0;
+	heapFloat[(r5+1)] = f2;
+	f3 = heapFloat[(r5+2)];
+	f0 = f3+f0;
+	heapFloat[(r5+2)] = f0;
+	f3 =      0.019999999552965164;
+	f4 = heapFloat[(fp+-10)];
+	f4 = f4+f3;
+	r5 = r7 >> 2;
+	heapFloat[(fp+-10)] = f4;
+	f5 = heapFloat[(r5+1)];
+	f5 = f5+f3;
+	heapFloat[(r5+1)] = f5;
+	f6 = heapFloat[(r5+2)];
+	f3 = f6+f3;
+	heapFloat[(r5+2)] = f3;
+	r5 = heap32[(r0+20)];
+	r3 = heapU8[r3+204];
+	r3 = r3 & 1;
+if(!(r3 != 0)) //_LBB220_10
+{
+	f1 = f4-f1;
+	f2 = f5-f2;
+	f0 = f3-f0;
+	f1 = f1*f1;
+	f2 = f2*f2;
+	f1 = f1+f2;
+	f0 = f0*f0;
+	f0 = f1+f0;
+	f1 =              999999995904;
+if(!(f0 <f1)) //_LBB220_10
+{
+	r5 = heap32[(r4+54)];
+	r5 = (r5 + -4)|0;
+if(!(uint(r5) <uint(2))) //_LBB220_9
+{
+	heap32[(r4+54)] = 5;
+}
+	r4 = _ZZN16btCollisionWorld16updateSingleAabbEP17btCollisionObjectE8reportMe_2E_b;
+	r5 = heapU8[r4];
+	if(r5 != 0) //_LBB220_13
+{
+break _8;
+}
+else{
+	r3 = heap32[(r0+21)];
+	if(r3 ==0) //_LBB220_13
+{
+break _8;
+}
+else{
+	r5 = 1;
+	r6 = r3 >> 2;
+	heap8[r4] = r5;
+	r4 = heap32[(r6)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+9)];
+	r5 = _2E_str1594;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r3 = heap32[(r0+21)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+9)];
+	r5 = _2E_str1695;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r3 = heap32[(r0+21)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+9)];
+	r5 = _2E_str1796;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r3 = heap32[(r0+21)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+9)];
+	r5 = _2E_str1897;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+break _8;
+}
+}
+}
+}
+	r3 = r5 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	r6 = heap32[(r0+6)];
+	r4 = heap32[(r4+47)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = r6;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+} while(0);
+	r3 = heap32[(r0+2)];
+	if(r3 >r2) //_LBB220_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_21: do {
+if(!(r3 !=0)) //_LBB220_20
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB220_17
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB220_20
+{
+break _21;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	return;
+}
+
+function _ZN16btCollisionWorld14debugDrawWorldEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -104;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+_1: do {
+if(!(r2 ==0)) //_LBB221_10
+{
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r3 = r_g0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+12)];
+	heap32[(g0)] = r_g0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = r_g0 & 8;
+if(!(r2 ==0)) //_LBB221_10
+{
+	r2 = heap32[(r1+6)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+9)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = r_g0;
+	r3 = sp + -16;
+	r4 = r3 >> 2;
+	heap32[(fp+-4)] = 0;
+	heap32[(r4+1)] = 0;
+	r5 = 0;
+	heap32[(r4+2)] = 0;
+	heap32[(r4+3)] = 0;
+_4: while(true){
+	if(r5 <r2) //_LBB221_3
+{
+	r4 = heap32[(r1+6)];
+	r6 = r4 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+10)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r4 = r_g0;
+	r6 = r4 >> 2;
+	r6 = heap32[(r6+279)];
+	r7 = 36;
+	r8 = 68;
+	r9 = 0;
+_7: while(true){
+	if(r9 <r6) //_LBB221_4
+{
+	r10 = r4 >> 2;
+	r10 = heap32[(r10+279)];
+	if(r10 >r9) //_LBB221_6
+{
+	r10 = (r9 * 69)|0;
+	r11 = (r4 + r7)|0;
+	r12 = (r4 + r8)|0;
+	r13 = heap32[(r1)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+	r14 = r_g0 >> 2;
+	r15 = r10 << 2;
+	r10 = r10 << 2;
+	r14 = heap32[(r14)];
+	r15 = (r4 + r15)|0;
+	r10 = (r4 + r10)|0;
+	r14 = r14 >> 2;
+	r15 = r15 >> 2;
+	r10 = r10 >> 2;
+	r14 = heap32[(r14+8)];
+	r15 = heap32[(r15+37)];
+	f0 = heapFloat[(r10+21)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r12;
+	heapFloat[(g0+3)] = f0;
+	heap32[(g0+4)] = r15;
+	heap32[(g0+5)] = r3;
+	r9 = (r9 + 1)|0;
+	r8 = (r8 + 276)|0;
+	r7 = (r7 + 276)|0;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+}
+else{
+break _4;
+}
+}
+else{
+break _7;
+}
+}
+	r5 = (r5 + 1)|0;
+}
+else{
+break _1;
+}
+}
+	r0 = _2E_str382;
+	r1 = _2E_str483;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 122;
+	_assert(i7);
+}
+}
+} while(0);
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+_14: do {
+if(!(r2 ==0)) //_LBB221_13
+{
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r3 = r_g0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+12)];
+	heap32[(g0)] = r_g0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = r_g0 & 3;
+if(!(r2 ==0)) //_LBB221_13
+{
+	r2 = heap32[(r1+2)];
+	if(r2 >0) //_LBB221_14
+{
+	r2 = 0;
+_18: while(true){
+	r3 = heap32[(r1+4)];
+	r4 = r2 << 2;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r4 = heapU8[r3+204];
+	r4 = r4 & 32;
+if(!(r4 !=0)) //_LBB221_34
+{
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+if(!(r4 ==0)) //_LBB221_31
+{
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r5 = r_g0 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+12)];
+	heap32[(g0)] = r_g0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r4 = r_g0 & 1;
+if(!(r4 ==0)) //_LBB221_31
+{
+	r4 = sp + -32;
+	r5 = r4 >> 2;
+	heap32[(fp+-8)] = 1065353216;
+	heap32[(r5+1)] = 1065353216;
+	heap32[(r5+2)] = 1065353216;
+	r6 = r3 >> 2;
+	heap32[(r5+3)] = 0;
+	r7 = heap32[(r6+54)];
+_25: do {
+	if(r7 >2) //_LBB221_21
+{
+	if(r7 ==3) //_LBB221_26
+{
+	heap32[(fp+-8)] = 0;
+	heap32[(r5+1)] = 1065353216;
+	heap32[(r5+2)] = 1065353216;
+	heap32[(r5+3)] = 0;
+__label__ = 30;
+break _25;
+}
+else{
+	if(r7 ==4) //_LBB221_27
+{
+	heap32[(fp+-8)] = 1065353216;
+	heap32[(r5+1)] = 0;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+__label__ = 30;
+break _25;
+}
+else{
+	if(r7 ==5) //_LBB221_28
+{
+	heap32[(fp+-8)] = 1065353216;
+	heap32[(r5+1)] = 1065353216;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+__label__ = 30;
+break _25;
+}
+else{
+__label__ = 29;
+break _25;
+}
+}
+}
+}
+else{
+	if(r7 ==1) //_LBB221_24
+{
+	heap32[(fp+-8)] = 1065353216;
+	heap32[(r5+1)] = 1065353216;
+	heap32[(r5+2)] = 1065353216;
+	heap32[(r5+3)] = 0;
+__label__ = 30;
+}
+else{
+	if(r7 ==2) //_LBB221_25
+{
+	heap32[(fp+-8)] = 0;
+	heap32[(r5+1)] = 1065353216;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+__label__ = 30;
+}
+else{
+__label__ = 29;
+}
+}
+}
+} while(0);
+if (__label__ == 29){
+	heap32[(fp+-8)] = 1065353216;
+	heap32[(r5+1)] = 0;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+}
+	r5 = heap32[(r1)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+6)];
+	r6 = heap32[(r6+48)];
+	r7 = (r3 + 4)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+}
+	r4 = heap32[(r1+21)];
+if(!(r4 ==0)) //_LBB221_34
+{
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+12)];
+	heap32[(g0)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r4 = r_g0 & 2;
+if(!(r4 ==0)) //_LBB221_34
+{
+	r4 = sp + -80;
+	r5 = r4 >> 2;
+	heap32[(fp+-20)] = 1065353216;
+	heap32[(r5+1)] = 0;
+	heap32[(r5+2)] = 0;
+	r6 = r3 >> 2;
+	heap32[(r5+3)] = 0;
+	r5 = heap32[(r6+48)];
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+2)];
+	r3 = (r3 + 4)|0;
+	r7 = sp + -48;
+	r8 = sp + -64;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r8;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r3 = heap32[(r1+21)];
+	r5 = r3 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+13)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+}
+}
+	r2 = (r2 + 1)|0;
+	r3 = heap32[(r1+2)];
+	if(r3 >r2) //_LBB221_15
+{
+continue _18;
+}
+else{
+break _14;
+}
+}
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+var __label__ = 0;
+	i7 = sp + -1376;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r3 = r_g0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+14)];
+	r4 = heap32[(fp+1)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = 1065353216;
+	r2 = heap32[(fp+2)];
+	r5 = r2 >> 2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = heap32[(r5+1)];
+	r6 = heap32[(fp+3)];
+_1: do {
+	if(r3 >10) //_LBB222_6
+{
+	if(r3 >27) //_LBB222_9
+{
+	if(r3 ==28) //_LBB222_23
+{
+	f0 = heapFloat[(r5+14)];
+	f1 = heapFloat[(r5+13)];
+	f2 = heapFloat[(r5+16)];
+	f3 = heapFloat[(r5+12)];
+	f4 = f0*f2;
+	f5 = f1*f2;
+	f2 = f3*f2;
+	f6 =                         0;
+	if(f0 <f6) //_LBB222_25
+{
+	f7 = -f0;
+}
+else{
+	f7 = f0;
+}
+	f8 =       0.70710676908493042;
+	if(f7 <=f8) //_LBB222_28
+{
+	f0 = f3*f3;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f3 =                         1;
+	f7 = heapFloat[(r5+13)];
+	f9 = heapFloat[(r5+14)];
+	f10 = f3/f_g0;
+	f1 = heapFloat[(r5+12)];
+	f3 = -f7;
+	f8 = f1*f10;
+	f1 = -f9;
+	f11 = f10*f3;
+	f12 =                       100;
+	f1 = f8*f1;
+	f3 = f9*f11;
+	f7 = f0*f10;
+	f0 = f11*f12;
+}
+else{
+	f1 = f1*f1;
+	f3 = f0*f0;
+	f1 = f1+f3;
+	heapFloat[(g0)] = f1;
+	sqrtf(i7);
+	f6 = heapFloat[(r5+14)];
+	f0 =                         1;
+	f7 = heapFloat[(r5+12)];
+	f3 = f0/f_g0;
+	f6 = -f6;
+	f0 = heapFloat[(r5+13)];
+	f8 = f3*f6;
+	f6 = -f7;
+	f0 = f0*f3;
+	f9 =                       100;
+	f1 = f1*f3;
+	f3 = f0*f6;
+	f7 = f7*f8;
+	f6 = f0*f9;
+	f0 =                         0;
+}
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	f9 =                       100;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r3 = r4 >> 2;
+	f8 = f8*f9;
+	r4 = r_g0 >> 2;
+	f10 = f2-f0;
+	f11 = heapFloat[(r3)];
+	f12 = f5-f8;
+	f13 = heapFloat[(r3+1)];
+	r4 = heap32[(r4)];
+	f14 = heapFloat[(r3+4)];
+	f15 = heapFloat[(r3+5)];
+	f16 = f11*f10;
+	f17 = f13*f12;
+	f18 = f4-f6;
+	f19 = heapFloat[(r3+2)];
+	r4 = r4 >> 2;
+	f20 = heapFloat[(r3+8)];
+	f21 = heapFloat[(r3+9)];
+	f22 = heapFloat[(r3+6)];
+	f23 = f14*f10;
+	f24 = f15*f12;
+	f16 = f16+f17;
+	f17 = f19*f18;
+	f25 = heapFloat[(r3+10)];
+	r4 = heap32[(r4+2)];
+	f10 = f20*f10;
+	f12 = f21*f12;
+	f23 = f23+f24;
+	f24 = f22*f18;
+	f16 = f16+f17;
+	f17 = heapFloat[(r3+12)];
+	f26 = heapFloat[(r3+14)];
+	f27 = heapFloat[(r3+13)];
+	f0 = f2+f0;
+	f8 = f5+f8;
+	r5 = sp + -64;
+	f23 = f23+f24;
+	f10 = f10+f12;
+	f12 = f25*f18;
+	f16 = f16+f17;
+	f6 = f4+f6;
+	f10 = f10+f12;
+	f11 = f11*f0;
+	f12 = f13*f8;
+	r7 = r5 >> 2;
+	f13 = f23+f27;
+	heapFloat[(fp+-16)] = f16;
+	f14 = f14*f0;
+	f15 = f15*f8;
+	f11 = f11+f12;
+	f12 = f19*f6;
+	f10 = f10+f26;
+	heapFloat[(r7+1)] = f13;
+	f11 = f11+f12;
+	heapFloat[(r7+2)] = f10;
+	f0 = f20*f0;
+	f8 = f21*f8;
+	f10 = f14+f15;
+	f12 = f22*f6;
+	r8 = sp + -48;
+	f10 = f10+f12;
+	f0 = f0+f8;
+	f6 = f25*f6;
+	f8 = f11+f17;
+	heap32[(r7+3)] = 0;
+	f0 = f0+f6;
+	r7 = r8 >> 2;
+	f6 = f10+f27;
+	heapFloat[(fp+-12)] = f8;
+	f0 = f0+f26;
+	heapFloat[(r7+1)] = f6;
+	heapFloat[(r7+2)] = f0;
+	heap32[(r7+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	f0 = f1*f9;
+	f1 = f3*f9;
+	f3 = f7*f9;
+	r1 = r_g0 >> 2;
+	f6 = f2-f0;
+	f7 = heapFloat[(r3)];
+	f8 = f5-f1;
+	f9 = heapFloat[(r3+1)];
+	r1 = heap32[(r1)];
+	f10 = heapFloat[(r3+4)];
+	f11 = heapFloat[(r3+5)];
+	f12 = f7*f6;
+	f13 = f9*f8;
+	f14 = f4-f3;
+	f15 = heapFloat[(r3+2)];
+	r1 = r1 >> 2;
+	f16 = heapFloat[(r3+8)];
+	f17 = heapFloat[(r3+9)];
+	f18 = heapFloat[(r3+6)];
+	f19 = f10*f6;
+	f20 = f11*f8;
+	f12 = f12+f13;
+	f13 = f15*f14;
+	f21 = heapFloat[(r3+10)];
+	r1 = heap32[(r1+2)];
+	f6 = f16*f6;
+	f8 = f17*f8;
+	f19 = f19+f20;
+	f20 = f18*f14;
+	f12 = f12+f13;
+	f13 = heapFloat[(r3+12)];
+	f22 = heapFloat[(r3+14)];
+	f23 = heapFloat[(r3+13)];
+	f0 = f2+f0;
+	f1 = f5+f1;
+	r2 = sp + -32;
+	f2 = f19+f20;
+	f5 = f6+f8;
+	f6 = f21*f14;
+	f8 = f12+f13;
+	f3 = f4+f3;
+	f4 = f5+f6;
+	f5 = f7*f0;
+	f6 = f9*f1;
+	r3 = r2 >> 2;
+	f2 = f2+f23;
+	heapFloat[(fp+-8)] = f8;
+	f7 = f10*f0;
+	f8 = f11*f1;
+	f5 = f5+f6;
+	f6 = f15*f3;
+	f4 = f4+f22;
+	heapFloat[(r3+1)] = f2;
+	f2 = f5+f6;
+	heapFloat[(r3+2)] = f4;
+	f0 = f16*f0;
+	f1 = f17*f1;
+	f4 = f7+f8;
+	f5 = f18*f3;
+	r4 = sp + -16;
+	f4 = f4+f5;
+	f0 = f0+f1;
+	f1 = f21*f3;
+	f2 = f2+f13;
+	heap32[(r3+3)] = 0;
+	f0 = f0+f1;
+	r3 = r4 >> 2;
+	f1 = f4+f23;
+	heapFloat[(fp+-4)] = f2;
+	f0 = f0+f22;
+	heapFloat[(r3+1)] = f1;
+	heapFloat[(r3+2)] = f0;
+	heap32[(r3+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r4;
+__label__ = 30;
+break _1;
+}
+else{
+	if(r3 !=31) //_LBB222_32
+{
+__label__ = 32;
+break _1;
+}
+else{
+	r2 = heap32[(r5+4)];
+	r3 = (r2 + -1)|0;
+	if(r3 <0) //_LBB222_42
+{
+__label__ = 40;
+break _1;
+}
+else{
+	r3 = 1;
+	r2 = (r3 - r2)|0;
+_18: while(true){
+	r3 = r2;
+	r2 = (r3 * -20)|0;
+	r7 = heap32[(r5+6)];
+	r2 = r2 << 2;
+	r2 = (r7 + r2)|0;
+	r2 = r2 >> 2;
+	r7 = r4 >> 2;
+	r8 = heap32[(r1)];
+	f0 = heapFloat[(r2)];
+	f1 = heapFloat[(r7)];
+	f2 = heapFloat[(r2+4)];
+	f3 = heapFloat[(r7+1)];
+	r8 = r8 >> 2;
+	f4 = heapFloat[(r2+1)];
+	f5 = heapFloat[(r2+5)];
+	f6 = f0*f1;
+	f7 = f2*f3;
+	f8 = heapFloat[(r2+8)];
+	f9 = heapFloat[(r7+2)];
+	f10 = heapFloat[(r7+8)];
+	f11 = heapFloat[(r2+2)];
+	f12 = heapFloat[(r7+4)];
+	f13 = heapFloat[(r2+12)];
+	f14 = heapFloat[(r7+9)];
+	f15 = heapFloat[(r2+6)];
+	f16 = heapFloat[(r7+5)];
+	f17 = heapFloat[(r2+13)];
+	f18 = heapFloat[(r2+9)];
+	f19 = heapFloat[(r7+10)];
+	f20 = heapFloat[(r2+10)];
+	f21 = heapFloat[(r7+6)];
+	f22 = heapFloat[(r2+14)];
+	r8 = heap32[(r8+6)];
+	f23 = f4*f1;
+	f24 = f5*f3;
+	f6 = f6+f7;
+	f7 = f8*f9;
+	r2 = heap32[(r2+16)];
+	f25 = heapFloat[(r7+14)];
+	f26 = heapFloat[(r7+13)];
+	f27 = heapFloat[(r7+12)];
+	r7 = sp + -688;
+	f28 = f11*f1;
+	f29 = f15*f3;
+	f23 = f23+f24;
+	f24 = f18*f9;
+	f6 = f6+f7;
+	r9 = r7 >> 2;
+	f7 = f28+f29;
+	f28 = f20*f9;
+	f23 = f23+f24;
+	heapFloat[(fp+-172)] = f6;
+	f6 = f0*f12;
+	f24 = f2*f16;
+	f7 = f7+f28;
+	heapFloat[(r9+1)] = f23;
+	heapFloat[(r9+2)] = f7;
+	f7 = f4*f12;
+	f23 = f5*f16;
+	f6 = f6+f24;
+	f24 = f8*f21;
+	f28 = f11*f12;
+	f29 = f15*f16;
+	f7 = f7+f23;
+	f23 = f18*f21;
+	f6 = f6+f24;
+	heap32[(r9+3)] = 0;
+	f24 = f28+f29;
+	f28 = f20*f21;
+	f7 = f7+f23;
+	heapFloat[(r9+4)] = f6;
+	f0 = f0*f10;
+	f2 = f2*f14;
+	f6 = f24+f28;
+	heapFloat[(r9+5)] = f7;
+	heapFloat[(r9+6)] = f6;
+	f4 = f4*f10;
+	f5 = f5*f14;
+	f0 = f0+f2;
+	f2 = f8*f19;
+	f6 = f11*f10;
+	f7 = f15*f14;
+	f4 = f4+f5;
+	f5 = f18*f19;
+	f0 = f0+f2;
+	heap32[(r9+7)] = 0;
+	f1 = f1*f13;
+	f2 = f3*f17;
+	f3 = f6+f7;
+	f6 = f20*f19;
+	f4 = f4+f5;
+	heapFloat[(r9+8)] = f0;
+	f0 = f12*f13;
+	f5 = f16*f17;
+	f1 = f1+f2;
+	f2 = f9*f22;
+	f3 = f3+f6;
+	heapFloat[(r9+9)] = f4;
+	f1 = f1+f2;
+	heapFloat[(r9+10)] = f3;
+	f2 = f10*f13;
+	f3 = f14*f17;
+	f0 = f0+f5;
+	f4 = f21*f22;
+	f0 = f0+f4;
+	f2 = f2+f3;
+	f3 = f19*f22;
+	f1 = f1+f27;
+	heap32[(r9+11)] = 0;
+	f2 = f2+f3;
+	f0 = f0+f26;
+	heapFloat[(r9+12)] = f1;
+	f1 = f2+f25;
+	heapFloat[(r9+13)] = f0;
+	heapFloat[(r9+14)] = f1;
+	heap32[(r9+15)] = 0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r6;
+	r2 = (r3 + 1)|0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	if(r3 ==0) //_LBB222_42
+{
+__label__ = 40;
+break _1;
+}
+else{
+continue _18;
+}
+}
+}
+}
+}
+}
+else{
+	if(r3 ==11) //_LBB222_20
+{
+	r2 = r4 >> 2;
+	r3 = heap32[(r5+17)];
+	f0 = heapFloat[(r5+14)];
+	f1 = heapFloat[(r5+15)];
+	f2 = heapFloat[(r2+12)];
+	f3 = heapFloat[(r2+13)];
+	f4 = heapFloat[(r2+14)];
+	r4 = sp + -880;
+	r5 = r4 >> 2;
+	heap32[(fp+-220)] = 0;
+	heap32[(r5+1)] = 0;
+	r7 = r3 << 2;
+	r4 = (r4 + r7)|0;
+	f5 =                       0.5;
+	heap32[(r5+2)] = 0;
+	r4 = r4 >> 2;
+	f1 = f1*f5;
+	heap32[(r5+3)] = 0;
+	r8 = sp + -896;
+	heapFloat[(r4)] = f1;
+	r4 = (r3 + 1)|0;
+	r4 = (r4 % 3)|0;
+	r9 = r8 >> 2;
+	heap32[(fp+-224)] = 0;
+	heap32[(r9+1)] = 0;
+	r4 = r4 << 2;
+	r8 = (r8 + r4)|0;
+	heap32[(r9+2)] = 0;
+	r8 = r8 >> 2;
+	heap32[(r9+3)] = 0;
+	r3 = (r3 + 2)|0;
+	r10 = sp + -912;
+	heapFloat[(r8)] = f0;
+	r3 = (r3 % 3)|0;
+	r8 = r10 >> 2;
+	heap32[(fp+-228)] = 0;
+	r3 = r3 << 2;
+	heap32[(r8+1)] = 0;
+	r3 = (r10 + r3)|0;
+	heap32[(r8+2)] = 0;
+	r3 = r3 >> 2;
+	heap32[(r8+3)] = 0;
+	heapFloat[(r3)] = f0;
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	f1 = heapFloat[(r5+1)];
+	f5 = heapFloat[(fp+-220)];
+	f6 = heapFloat[(r9+1)];
+	f7 = heapFloat[(fp+-224)];
+	r10 = r_g0 >> 2;
+	f8 = heapFloat[(r5+2)];
+	f9 = heapFloat[(r9+2)];
+	f10 = heapFloat[(r2)];
+	f11 = f7-f5;
+	f12 = heapFloat[(r2+1)];
+	f13 = f6-f1;
+	f14 = heapFloat[(r2+4)];
+	f15 = heapFloat[(r2+5)];
+	r5 = heap32[(r10)];
+	f16 = heapFloat[(r2+2)];
+	f17 = f9-f8;
+	f18 = f10*f11;
+	f19 = f12*f13;
+	f20 = heapFloat[(r2+8)];
+	f21 = heapFloat[(r2+9)];
+	f22 = heapFloat[(r2+6)];
+	r5 = r5 >> 2;
+	f23 = f14*f11;
+	f24 = f15*f13;
+	f18 = f18+f19;
+	f19 = f16*f17;
+	f25 = heapFloat[(r2+10)];
+	r5 = heap32[(r5+2)];
+	f18 = f18+f19;
+	f11 = f20*f11;
+	f13 = f21*f13;
+	f19 = f23+f24;
+	f23 = f22*f17;
+	r9 = sp + -416;
+	f19 = f19+f23;
+	f11 = f11+f13;
+	f13 = f25*f17;
+	f17 = f2+f18;
+	f11 = f11+f13;
+	f10 = f10*f5;
+	f12 = f12*f1;
+	r10 = r9 >> 2;
+	f13 = f3+f19;
+	heapFloat[(fp+-104)] = f17;
+	f14 = f14*f5;
+	f15 = f15*f1;
+	f10 = f10+f12;
+	f12 = f16*f8;
+	f11 = f4+f11;
+	heapFloat[(r10+1)] = f13;
+	f10 = f10+f12;
+	heapFloat[(r10+2)] = f11;
+	f11 = f20*f5;
+	f12 = f21*f1;
+	f13 = f14+f15;
+	f14 = f22*f8;
+	r11 = sp + -400;
+	f13 = f13+f14;
+	f11 = f11+f12;
+	f12 = f25*f8;
+	f10 = f2+f10;
+	heap32[(r10+3)] = 0;
+	f11 = f11+f12;
+	r10 = r11 >> 2;
+	f12 = f3+f13;
+	heapFloat[(fp+-100)] = f10;
+	f10 = f4+f11;
+	heapFloat[(r10+1)] = f12;
+	heapFloat[(r10+2)] = f10;
+	heap32[(r10+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	f10 = -f5;
+	f11 = -f1;
+	f12 = -f8;
+	r5 = r_g0 >> 2;
+	f13 = heapFloat[(r2)];
+	f7 = f10-f7;
+	f14 = heapFloat[(r2+1)];
+	f6 = f11-f6;
+	f15 = heapFloat[(r2+4)];
+	f16 = heapFloat[(r2+5)];
+	r5 = heap32[(r5)];
+	f17 = heapFloat[(r2+2)];
+	f9 = f12-f9;
+	f18 = f13*f7;
+	f19 = f14*f6;
+	f20 = heapFloat[(r2+8)];
+	f21 = heapFloat[(r2+9)];
+	f22 = heapFloat[(r2+6)];
+	r5 = r5 >> 2;
+	f23 = f15*f7;
+	f24 = f16*f6;
+	f18 = f18+f19;
+	f19 = f17*f9;
+	f25 = heapFloat[(r2+10)];
+	r5 = heap32[(r5+2)];
+	f18 = f18+f19;
+	f7 = f20*f7;
+	f6 = f21*f6;
+	f19 = f23+f24;
+	f23 = f22*f9;
+	r9 = sp + -384;
+	f19 = f19+f23;
+	f6 = f7+f6;
+	f7 = f25*f9;
+	f9 = f2+f18;
+	f6 = f6+f7;
+	f7 = f13*f5;
+	f13 = f14*f1;
+	r10 = r9 >> 2;
+	f14 = f3+f19;
+	heapFloat[(fp+-96)] = f9;
+	f9 = f15*f5;
+	f15 = f16*f1;
+	f7 = f7+f13;
+	f13 = f17*f8;
+	f6 = f4+f6;
+	heapFloat[(r10+1)] = f14;
+	f7 = f7+f13;
+	heapFloat[(r10+2)] = f6;
+	f6 = f20*f5;
+	f13 = f21*f1;
+	f9 = f9+f15;
+	f14 = f22*f8;
+	r11 = sp + -368;
+	f9 = f9+f14;
+	f6 = f6+f13;
+	f13 = f25*f8;
+	f7 = f2+f7;
+	heap32[(r10+3)] = 0;
+	f6 = f6+f13;
+	r10 = r11 >> 2;
+	f9 = f3+f9;
+	heapFloat[(fp+-92)] = f7;
+	f6 = f4+f6;
+	heapFloat[(r10+1)] = f9;
+	heapFloat[(r10+2)] = f6;
+	heap32[(r10+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	f6 = heapFloat[(r8+1)];
+	f7 = heapFloat[(fp+-228)];
+	f9 = heapFloat[(r8+2)];
+	r5 = r_g0 >> 2;
+	f13 = heapFloat[(r2)];
+	f14 = f7-f5;
+	f15 = heapFloat[(r2+1)];
+	f16 = f6-f1;
+	f17 = heapFloat[(r2+4)];
+	f18 = heapFloat[(r2+5)];
+	r5 = heap32[(r5)];
+	f19 = heapFloat[(r2+2)];
+	f20 = f9-f8;
+	f21 = f13*f14;
+	f22 = f15*f16;
+	f23 = heapFloat[(r2+8)];
+	f24 = heapFloat[(r2+9)];
+	f25 = heapFloat[(r2+6)];
+	r5 = r5 >> 2;
+	f26 = f17*f14;
+	f27 = f18*f16;
+	f21 = f21+f22;
+	f22 = f19*f20;
+	f28 = heapFloat[(r2+10)];
+	r5 = heap32[(r5+2)];
+	f21 = f21+f22;
+	f14 = f23*f14;
+	f16 = f24*f16;
+	f22 = f26+f27;
+	f26 = f25*f20;
+	r8 = sp + -352;
+	f22 = f22+f26;
+	f14 = f14+f16;
+	f16 = f28*f20;
+	f20 = f2+f21;
+	f14 = f14+f16;
+	f13 = f13*f5;
+	f15 = f15*f1;
+	r9 = r8 >> 2;
+	f16 = f3+f22;
+	heapFloat[(fp+-88)] = f20;
+	f17 = f17*f5;
+	f18 = f18*f1;
+	f13 = f13+f15;
+	f15 = f19*f8;
+	f14 = f4+f14;
+	heapFloat[(r9+1)] = f16;
+	f13 = f13+f15;
+	heapFloat[(r9+2)] = f14;
+	f14 = f23*f5;
+	f15 = f24*f1;
+	f16 = f17+f18;
+	f17 = f25*f8;
+	r10 = sp + -336;
+	f16 = f16+f17;
+	f14 = f14+f15;
+	f15 = f28*f8;
+	f13 = f2+f13;
+	heap32[(r9+3)] = 0;
+	f14 = f14+f15;
+	r9 = r10 >> 2;
+	f15 = f3+f16;
+	heapFloat[(fp+-84)] = f13;
+	f13 = f4+f14;
+	heapFloat[(r9+1)] = f15;
+	heapFloat[(r9+2)] = f13;
+	heap32[(r9+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r5 = r_g0 >> 2;
+	f13 = heapFloat[(r2)];
+	f7 = f10-f7;
+	f10 = heapFloat[(r2+1)];
+	f6 = f11-f6;
+	f11 = heapFloat[(r2+4)];
+	f14 = heapFloat[(r2+5)];
+	r5 = heap32[(r5)];
+	f15 = heapFloat[(r2+2)];
+	f9 = f12-f9;
+	f12 = f13*f7;
+	f16 = f10*f6;
+	f17 = heapFloat[(r2+8)];
+	f18 = heapFloat[(r2+9)];
+	f19 = heapFloat[(r2+6)];
+	r5 = r5 >> 2;
+	f20 = f11*f7;
+	f21 = f14*f6;
+	f12 = f12+f16;
+	f16 = f15*f9;
+	f22 = heapFloat[(r2+10)];
+	r5 = heap32[(r5+2)];
+	f12 = f12+f16;
+	f7 = f17*f7;
+	f6 = f18*f6;
+	f16 = f20+f21;
+	f20 = f19*f9;
+	r8 = sp + -320;
+	f16 = f16+f20;
+	f6 = f7+f6;
+	f7 = f22*f9;
+	f9 = f2+f12;
+	f6 = f6+f7;
+	f7 = f13*f5;
+	f10 = f10*f1;
+	r9 = r8 >> 2;
+	f12 = f3+f16;
+	heapFloat[(fp+-80)] = f9;
+	f9 = f11*f5;
+	f11 = f14*f1;
+	f7 = f7+f10;
+	f10 = f15*f8;
+	f6 = f4+f6;
+	heapFloat[(r9+1)] = f12;
+	f7 = f7+f10;
+	heapFloat[(r9+2)] = f6;
+	f6 = f17*f5;
+	f10 = f18*f1;
+	f9 = f9+f11;
+	f11 = f19*f8;
+	r10 = sp + -304;
+	f9 = f9+f11;
+	f6 = f6+f10;
+	f10 = f22*f8;
+	f7 = f2+f7;
+	heap32[(r9+3)] = 0;
+	f6 = f6+f10;
+	r9 = r10 >> 2;
+	f9 = f3+f9;
+	heapFloat[(fp+-76)] = f7;
+	f6 = f4+f6;
+	heapFloat[(r9+1)] = f9;
+	heapFloat[(r9+2)] = f6;
+	heap32[(r9+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r6;
+	r3 = sp + -928;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r5 = r3 >> 2;
+	heap32[(fp+-232)] = 0;
+	heap32[(r5+1)] = 0;
+	r3 = (r3 + r7)|0;
+	heap32[(r5+2)] = 0;
+	r3 = r3 >> 2;
+	heap32[(r5+3)] = 0;
+	r7 = sp + -944;
+	heap32[(r3)] = 1065353216;
+	r3 = r7 >> 2;
+	heap32[(fp+-236)] = 0;
+	heap32[(r3+1)] = 0;
+	r4 = (r7 + r4)|0;
+	heap32[(r3+2)] = 0;
+	r4 = r4 >> 2;
+	heap32[(r3+3)] = 0;
+	heap32[(r4)] = 1065353216;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r1 = r_g0 >> 2;
+	r1 = heap32[(r1)];
+	f6 = heapFloat[(r2)];
+	f7 = heapFloat[(fp+-236)];
+	f9 = heapFloat[(r2+1)];
+	f10 = heapFloat[(r3+1)];
+	f11 = heapFloat[(r2+4)];
+	f12 = heapFloat[(r2+5)];
+	r1 = r1 >> 2;
+	f13 = heapFloat[(r2+2)];
+	f14 = heapFloat[(r3+2)];
+	f15 = f6*f7;
+	f16 = f9*f10;
+	f17 = heapFloat[(r2+8)];
+	f18 = heapFloat[(r2+9)];
+	f19 = heapFloat[(r2+10)];
+	f20 = heapFloat[(r2+6)];
+	r1 = heap32[(r1+15)];
+	f21 = f11*f7;
+	f22 = f12*f10;
+	f15 = f15+f16;
+	f16 = f13*f14;
+	r2 = sp + -288;
+	f7 = f17*f7;
+	f10 = f18*f10;
+	f21 = f21+f22;
+	f22 = f20*f14;
+	f15 = f15+f16;
+	r3 = r2 >> 2;
+	f7 = f7+f10;
+	f10 = f19*f14;
+	f14 = f21+f22;
+	heapFloat[(fp+-72)] = f15;
+	f7 = f7+f10;
+	heapFloat[(r3+1)] = f14;
+	heapFloat[(r3+2)] = f7;
+	heap32[(r3+3)] = 0;
+	f7 = heapFloat[(fp+-232)];
+	f10 = heapFloat[(r5+1)];
+	f14 = heapFloat[(r5+2)];
+	f15 = f6*f7;
+	f16 = f9*f10;
+	f21 = f11*f7;
+	f22 = f12*f10;
+	f15 = f15+f16;
+	f16 = f13*f14;
+	r3 = sp + -272;
+	f7 = f17*f7;
+	f10 = f18*f10;
+	f21 = f21+f22;
+	f22 = f20*f14;
+	f15 = f15+f16;
+	f6 = f6*f5;
+	f9 = f9*f1;
+	r4 = r3 >> 2;
+	f7 = f7+f10;
+	f10 = f19*f14;
+	f14 = f21+f22;
+	heapFloat[(fp+-68)] = f15;
+	f11 = f11*f5;
+	f12 = f12*f1;
+	f6 = f6+f9;
+	f9 = f13*f8;
+	f7 = f7+f10;
+	heapFloat[(r4+1)] = f14;
+	f6 = f6+f9;
+	heapFloat[(r4+2)] = f7;
+	f5 = f17*f5;
+	f1 = f18*f1;
+	f7 = f11+f12;
+	f9 = f20*f8;
+	r5 = sp + -256;
+	f7 = f7+f9;
+	f1 = f5+f1;
+	f5 = f19*f8;
+	f2 = f2-f6;
+	heap32[(r4+3)] = 0;
+	f1 = f1+f5;
+	r4 = r5 >> 2;
+	f3 = f3-f7;
+	heapFloat[(fp+-64)] = f2;
+	f1 = f4-f1;
+	heapFloat[(r4+1)] = f3;
+	heapFloat[(r4+2)] = f1;
+	heap32[(r4+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r3;
+}
+else{
+	if(r3 ==13) //_LBB222_21
+{
+	r3 = heap32[(r5)];
+	r3 = r3 >> 2;
+	r7 = heap32[(r5+13)];
+	r3 = heap32[(r3+21)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	f0 = f_g0;
+	r3 = sp + -240;
+	f1 = heapFloat[(r5+8)];
+	f2 = heapFloat[(r5+9)];
+	f3 = heapFloat[(r5+7)];
+	r8 = r3 >> 2;
+	heap32[(r8+3)] = heap32[(r5+10)];
+	r9 = heap32[(r5)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+11)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	f4 = f_g0;
+	r9 = heap32[(r5)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+11)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	f5 = f_g0;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+11)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	f3 = f3+f_g0;
+	r2 = r7 << 2;
+	f1 = f1+f5;
+	heapFloat[(fp+-60)] = f3;
+	r3 = (r3 + r2)|0;
+	f2 = f2+f4;
+	heapFloat[(r8+1)] = f1;
+	r3 = r3 >> 2;
+	heapFloat[(r8+2)] = f2;
+	r4 = r4 >> 2;
+	f1 = heapFloat[(r3)];
+	f2 = heapFloat[(r4+12)];
+	f3 = heapFloat[(r4+13)];
+	f4 = heapFloat[(r4+14)];
+	r3 = sp + -960;
+	r5 = r3 >> 2;
+	heap32[(fp+-240)] = 0;
+	heap32[(r5+1)] = 0;
+	r3 = (r3 + r2)|0;
+	heap32[(r5+2)] = 0;
+	r3 = r3 >> 2;
+	heap32[(r5+3)] = 0;
+	r8 = sp + -976;
+	heapFloat[(r3)] = f1;
+	r3 = (r7 + 1)|0;
+	r3 = (r3 % 3)|0;
+	r7 = r8 >> 2;
+	heap32[(fp+-244)] = 0;
+	heap32[(r7+1)] = 0;
+	r3 = r3 << 2;
+	r8 = (r8 + r3)|0;
+	heap32[(r7+2)] = 0;
+	r8 = r8 >> 2;
+	heap32[(r7+3)] = 0;
+	heapFloat[(r8)] = f0;
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	f1 = heapFloat[(r5+1)];
+	f5 = heapFloat[(r7+1)];
+	f6 = heapFloat[(fp+-240)];
+	f7 = heapFloat[(fp+-244)];
+	r9 = r_g0 >> 2;
+	f8 = heapFloat[(r5+2)];
+	f9 = heapFloat[(r7+2)];
+	f10 = f7-f6;
+	f11 = heapFloat[(r4)];
+	f12 = f5-f1;
+	f13 = heapFloat[(r4+1)];
+	r5 = heap32[(r9)];
+	f14 = heapFloat[(r4+4)];
+	f15 = heapFloat[(r4+5)];
+	f16 = f11*f10;
+	f17 = f13*f12;
+	f18 = f9-f8;
+	f19 = heapFloat[(r4+2)];
+	r5 = r5 >> 2;
+	f20 = heapFloat[(r4+8)];
+	f21 = heapFloat[(r4+9)];
+	f22 = heapFloat[(r4+6)];
+	f23 = f14*f10;
+	f24 = f15*f12;
+	f16 = f16+f17;
+	f17 = f19*f18;
+	f16 = f16+f17;
+	f17 = heapFloat[(r4+10)];
+	r5 = heap32[(r5+2)];
+	f10 = f20*f10;
+	f12 = f21*f12;
+	f23 = f23+f24;
+	f24 = f22*f18;
+	f25 = f6+f7;
+	f26 = f1+f5;
+	r7 = sp + -224;
+	f23 = f23+f24;
+	f10 = f10+f12;
+	f12 = f17*f18;
+	f16 = f2+f16;
+	f18 = f8+f9;
+	f10 = f10+f12;
+	f11 = f11*f25;
+	f12 = f13*f26;
+	r9 = r7 >> 2;
+	f13 = f3+f23;
+	heapFloat[(fp+-56)] = f16;
+	f14 = f14*f25;
+	f15 = f15*f26;
+	f11 = f11+f12;
+	f12 = f19*f18;
+	f10 = f4+f10;
+	heapFloat[(r9+1)] = f13;
+	f11 = f11+f12;
+	heapFloat[(r9+2)] = f10;
+	f10 = f20*f25;
+	f12 = f21*f26;
+	f13 = f14+f15;
+	f14 = f22*f18;
+	r10 = sp + -208;
+	f13 = f13+f14;
+	f10 = f10+f12;
+	f12 = f17*f18;
+	f11 = f2+f11;
+	heap32[(r9+3)] = 0;
+	f10 = f10+f12;
+	r9 = r10 >> 2;
+	f12 = f3+f13;
+	heapFloat[(fp+-52)] = f11;
+	f10 = f4+f10;
+	heapFloat[(r9+1)] = f12;
+	heapFloat[(r9+2)] = f10;
+	heap32[(r9+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r5 = heap32[(r1)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	f10 = -f6;
+	f11 = -f1;
+	f12 = -f8;
+	r7 = r_g0 >> 2;
+	f10 = f10-f7;
+	f13 = heapFloat[(r4)];
+	f11 = f11-f5;
+	f14 = heapFloat[(r4+1)];
+	r7 = heap32[(r7)];
+	f15 = heapFloat[(r4+4)];
+	f16 = heapFloat[(r4+5)];
+	f17 = f13*f10;
+	f18 = f14*f11;
+	f12 = f12-f9;
+	f19 = heapFloat[(r4+2)];
+	r7 = r7 >> 2;
+	f20 = heapFloat[(r4+8)];
+	f21 = heapFloat[(r4+9)];
+	f22 = heapFloat[(r4+6)];
+	f23 = f15*f10;
+	f24 = f16*f11;
+	f17 = f17+f18;
+	f18 = f19*f12;
+	f17 = f17+f18;
+	f18 = heapFloat[(r4+10)];
+	r7 = heap32[(r7+2)];
+	f10 = f20*f10;
+	f11 = f21*f11;
+	f23 = f23+f24;
+	f24 = f22*f12;
+	f7 = f6-f7;
+	f5 = f1-f5;
+	r8 = sp + -192;
+	f23 = f23+f24;
+	f10 = f10+f11;
+	f11 = f18*f12;
+	f12 = f2+f17;
+	f9 = f8-f9;
+	f10 = f10+f11;
+	f11 = f13*f7;
+	f13 = f14*f5;
+	r9 = r8 >> 2;
+	f14 = f3+f23;
+	heapFloat[(fp+-48)] = f12;
+	f12 = f15*f7;
+	f15 = f16*f5;
+	f11 = f11+f13;
+	f13 = f19*f9;
+	f10 = f4+f10;
+	heapFloat[(r9+1)] = f14;
+	f11 = f11+f13;
+	heapFloat[(r9+2)] = f10;
+	f7 = f20*f7;
+	f5 = f21*f5;
+	f10 = f12+f15;
+	f12 = f22*f9;
+	r10 = sp + -176;
+	f10 = f10+f12;
+	f5 = f7+f5;
+	f7 = f18*f9;
+	f9 = f2+f11;
+	heap32[(r9+3)] = 0;
+	f5 = f5+f7;
+	r9 = r10 >> 2;
+	f7 = f3+f10;
+	heapFloat[(fp+-44)] = f9;
+	f5 = f4+f5;
+	heapFloat[(r9+1)] = f7;
+	heapFloat[(r9+2)] = f5;
+	heap32[(r9+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r6;
+	r5 = sp + -992;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r7 = r5 >> 2;
+	heap32[(fp+-248)] = 0;
+	heap32[(r7+1)] = 0;
+	r2 = (r5 + r2)|0;
+	heap32[(r7+2)] = 0;
+	r2 = r2 >> 2;
+	heap32[(r7+3)] = 0;
+	r5 = sp + -1008;
+	heap32[(r2)] = 1065353216;
+	r2 = r5 >> 2;
+	heap32[(fp+-252)] = 0;
+	heap32[(r2+1)] = 0;
+	r3 = (r5 + r3)|0;
+	heap32[(r2+2)] = 0;
+	r3 = r3 >> 2;
+	heap32[(r2+3)] = 0;
+	heap32[(r3)] = 1065353216;
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r5 = r_g0 >> 2;
+	r5 = heap32[(r5)];
+	f5 = heapFloat[(r4)];
+	f7 = heapFloat[(fp+-252)];
+	f9 = heapFloat[(r4+1)];
+	f10 = heapFloat[(r2+1)];
+	f11 = heapFloat[(r4+4)];
+	f12 = heapFloat[(r4+5)];
+	r5 = r5 >> 2;
+	f13 = heapFloat[(r4+2)];
+	f14 = heapFloat[(r2+2)];
+	f15 = f5*f7;
+	f16 = f9*f10;
+	f17 = heapFloat[(r4+8)];
+	f18 = heapFloat[(r4+9)];
+	f19 = heapFloat[(r4+10)];
+	f20 = heapFloat[(r4+6)];
+	r2 = heap32[(r5+15)];
+	f21 = f11*f7;
+	f22 = f12*f10;
+	f15 = f15+f16;
+	f16 = f13*f14;
+	r5 = sp + -160;
+	f23 = f17*f7;
+	f24 = f18*f10;
+	f21 = f21+f22;
+	f22 = f20*f14;
+	f15 = f15+f16;
+	r8 = r5 >> 2;
+	f16 = f23+f24;
+	f23 = f19*f14;
+	f21 = f21+f22;
+	heapFloat[(fp+-40)] = f15;
+	f15 = f16+f23;
+	heapFloat[(r8+1)] = f21;
+	heapFloat[(r8+2)] = f15;
+	heap32[(r8+3)] = 0;
+	f15 = heapFloat[(fp+-248)];
+	f16 = heapFloat[(r7+1)];
+	f21 = heapFloat[(r7+2)];
+	f22 = f5*f15;
+	f23 = f9*f16;
+	f24 = f11*f15;
+	f25 = f12*f16;
+	f22 = f22+f23;
+	f23 = f13*f21;
+	r7 = sp + -144;
+	f26 = f17*f15;
+	f27 = f18*f16;
+	f24 = f24+f25;
+	f25 = f20*f21;
+	f22 = f22+f23;
+	f5 = f5*f6;
+	f9 = f9*f1;
+	r8 = r7 >> 2;
+	f23 = f26+f27;
+	f26 = f19*f21;
+	f24 = f24+f25;
+	heapFloat[(fp+-36)] = f22;
+	f11 = f11*f6;
+	f12 = f12*f1;
+	f5 = f5+f9;
+	f9 = f13*f8;
+	f13 = f23+f26;
+	heapFloat[(r8+1)] = f24;
+	f5 = f5+f9;
+	heapFloat[(r8+2)] = f13;
+	f9 = f17*f6;
+	f13 = f18*f1;
+	f11 = f11+f12;
+	f12 = f20*f8;
+	r9 = sp + -128;
+	f11 = f11+f12;
+	f9 = f9+f13;
+	f12 = f19*f8;
+	f5 = f2-f5;
+	heap32[(r8+3)] = 0;
+	f9 = f9+f12;
+	r8 = r9 >> 2;
+	f11 = f3-f11;
+	heapFloat[(fp+-32)] = f5;
+	f5 = f4-f9;
+	heapFloat[(r8+1)] = f11;
+	heapFloat[(r8+2)] = f5;
+	heap32[(r8+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r5;
+	heapFloat[(g0+4)] = f0;
+	heapFloat[(g0+5)] = f0;
+	heap32[(g0+6)] = 0;
+	heap32[(g0+7)] = 1086918619;
+	heap32[(g0+8)] = r6;
+	heap32[(g0+9)] = 0;
+	heap32[(g0+10)] = 1092616192;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r1 = r_g0 >> 2;
+	f5 = heapFloat[(r4)];
+	f9 = heapFloat[(r4+1)];
+	r1 = heap32[(r1)];
+	f11 = heapFloat[(r4+4)];
+	f12 = heapFloat[(r4+5)];
+	f13 = heapFloat[(r4+2)];
+	r1 = r1 >> 2;
+	f17 = f5*f7;
+	f18 = f9*f10;
+	f19 = heapFloat[(r4+8)];
+	f20 = heapFloat[(r4+9)];
+	f22 = heapFloat[(r4+10)];
+	f23 = heapFloat[(r4+6)];
+	r1 = heap32[(r1+15)];
+	f24 = f11*f7;
+	f25 = f12*f10;
+	f17 = f17+f18;
+	f18 = f13*f14;
+	r2 = sp + -112;
+	f7 = f19*f7;
+	f10 = f20*f10;
+	f24 = f24+f25;
+	f25 = f23*f14;
+	f17 = f17+f18;
+	r3 = r2 >> 2;
+	f7 = f7+f10;
+	f10 = f22*f14;
+	f14 = f24+f25;
+	heapFloat[(fp+-28)] = f17;
+	f17 = f5*f15;
+	f18 = f9*f16;
+	f7 = f7+f10;
+	heapFloat[(r3+1)] = f14;
+	heapFloat[(r3+2)] = f7;
+	f7 = f11*f15;
+	f10 = f12*f16;
+	f14 = f17+f18;
+	f17 = f13*f21;
+	r4 = sp + -96;
+	f15 = f19*f15;
+	f16 = f20*f16;
+	f7 = f7+f10;
+	f10 = f23*f21;
+	f14 = f14+f17;
+	heap32[(r3+3)] = 0;
+	f5 = f5*f6;
+	f9 = f9*f1;
+	r3 = r4 >> 2;
+	f15 = f15+f16;
+	f16 = f22*f21;
+	f7 = f7+f10;
+	heapFloat[(fp+-24)] = f14;
+	f10 = f11*f6;
+	f11 = f12*f1;
+	f5 = f5+f9;
+	f9 = f13*f8;
+	f12 = f15+f16;
+	heapFloat[(r3+1)] = f7;
+	f5 = f5+f9;
+	heapFloat[(r3+2)] = f12;
+	f6 = f19*f6;
+	f1 = f20*f1;
+	f7 = f10+f11;
+	f9 = f23*f8;
+	r5 = sp + -80;
+	f7 = f7+f9;
+	f1 = f6+f1;
+	f6 = f22*f8;
+	f2 = f2+f5;
+	heap32[(r3+3)] = 0;
+	f1 = f1+f6;
+	r3 = r5 >> 2;
+	f3 = f3+f7;
+	heapFloat[(fp+-20)] = f2;
+	f1 = f4+f1;
+	heapFloat[(r3+1)] = f3;
+	heapFloat[(r3+2)] = f1;
+	heap32[(r3+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r4;
+}
+else{
+__label__ = 32;
+break _1;
+}
+}
+	heap32[(g0+3)] = r2;
+	heapFloat[(g0+4)] = f0;
+	heapFloat[(g0+5)] = f0;
+	heap32[(g0+6)] = 0;
+	heap32[(g0+7)] = 1086918619;
+	heap32[(g0+8)] = r6;
+	heap32[(g0+9)] = 0;
+	heap32[(g0+10)] = 1092616192;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+}
+else{
+	if(r3 >8) //_LBB222_4
+{
+	if(r3 ==9) //_LBB222_16
+{
+	r2 = heap32[(r5+23)];
+	r3 = (r2 + -1)|0;
+	if(r3 <0) //_LBB222_42
+{
+__label__ = 40;
+break _1;
+}
+else{
+	r3 = 1;
+	r2 = (r3 - r2)|0;
+_32: while(true){
+	r3 = r2;
+	r2 = heap32[(r5+25)];
+	r7 = r3 << 4;
+	r8 = heap32[(r1)];
+	r2 = (r2 - r7)|0;
+	r2 = r2 >> 2;
+	r7 = r8 >> 2;
+	r7 = heap32[(r7+4)];
+	f0 = heapFloat[(r2)];
+	f1 = heapFloat[(r2+1)];
+	f2 = heapFloat[(r2+2)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r7 = r4 >> 2;
+	r8 = r_g0 >> 2;
+	r8 = heap32[(r8)];
+	f3 = heapFloat[(r7+1)];
+	f4 =                         0;
+	f5 = heapFloat[(r7)];
+	f6 = heapFloat[(r7+2)];
+	r8 = r8 >> 2;
+	f7 = f3*f4;
+	f8 = f5*f4;
+	f9 = heapFloat[(r7+8)];
+	f10 = heapFloat[(r7+9)];
+	f11 = heapFloat[(r7+10)];
+	f12 = heapFloat[(r7+4)];
+	f13 = heapFloat[(r7+5)];
+	f14 = heapFloat[(r7+6)];
+	r8 = heap32[(r8+4)];
+	f15 = f5+f7;
+	f16 = f6*f4;
+	f17 = heapFloat[(r7+14)];
+	f18 = heapFloat[(r7+13)];
+	f19 = heapFloat[(r7+12)];
+	r7 = sp + -608;
+	f20 = f8+f3;
+	f15 = f15+f16;
+	f7 = f8+f7;
+	r9 = r7 >> 2;
+	f8 = f20+f16;
+	heapFloat[(fp+-152)] = f15;
+	f15 = f13*f4;
+	f7 = f7+f6;
+	heapFloat[(r9+1)] = f8;
+	f8 = f12*f4;
+	heapFloat[(r9+2)] = f7;
+	f7 = f12+f15;
+	f16 = f14*f4;
+	f20 = f8+f13;
+	f7 = f7+f16;
+	heap32[(r9+3)] = 0;
+	f8 = f8+f15;
+	f15 = f20+f16;
+	heapFloat[(r9+4)] = f7;
+	f7 = f10*f4;
+	f8 = f8+f14;
+	heapFloat[(r9+5)] = f15;
+	f15 = f9*f4;
+	heapFloat[(r9+6)] = f8;
+	f8 = f9+f7;
+	f4 = f11*f4;
+	f16 = f15+f10;
+	f8 = f8+f4;
+	heap32[(r9+7)] = 0;
+	f7 = f15+f7;
+	f5 = f5*f0;
+	f3 = f3*f1;
+	f4 = f16+f4;
+	heapFloat[(r9+8)] = f8;
+	f8 = f12*f0;
+	f12 = f13*f1;
+	f3 = f5+f3;
+	f5 = f6*f2;
+	f6 = f7+f11;
+	heapFloat[(r9+9)] = f4;
+	f3 = f3+f5;
+	heapFloat[(r9+10)] = f6;
+	f0 = f9*f0;
+	f1 = f10*f1;
+	f4 = f8+f12;
+	f5 = f14*f2;
+	f4 = f4+f5;
+	f0 = f0+f1;
+	f1 = f11*f2;
+	f2 = f3+f19;
+	heap32[(r9+11)] = 0;
+	f0 = f0+f1;
+	f1 = f4+f18;
+	heapFloat[(r9+12)] = f2;
+	f0 = f0+f17;
+	heapFloat[(r9+13)] = f1;
+	heapFloat[(r9+14)] = f0;
+	heap32[(r9+15)] = 0;
+	r9 = heap32[(r5+30)];
+	r10 = r3 << 2;
+	r9 = (r9 - r10)|0;
+	r9 = r9 >> 2;
+	f0 = heapFloat[(r9)];
+	heap32[(g0)] = r_g0;
+	heapFloat[(g0+1)] = f0;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r6;
+	r2 = (r3 + 1)|0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	if(r3 ==0) //_LBB222_42
+{
+__label__ = 40;
+break _1;
+}
+else{
+continue _32;
+}
+}
+}
+}
+else{
+	if(r3 ==10) //_LBB222_19
+{
+	r3 = heap32[(r5+13)];
+	r5 = (r3 + 2)|0;
+	r5 = (r5 % 3)|0;
+	r7 = r3 << 2;
+	r2 = (r2 + 28)|0;
+	r5 = r5 << 2;
+	r8 = (r2 + r7)|0;
+	r2 = (r2 + r5)|0;
+	r8 = r8 >> 2;
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r8)];
+	f1 = heapFloat[(r2)];
+	r2 = sp + -720;
+	r8 = r2 >> 2;
+	heap32[(fp+-180)] = 0;
+	heap32[(r8+1)] = 0;
+	r9 = (r2 + r7)|0;
+	heap32[(r8+2)] = 0;
+	r9 = r9 >> 2;
+	f2 = -f0;
+	heap32[(r8+3)] = 0;
+	r10 = sp + -736;
+	heapFloat[(r9)] = f2;
+	heap32[(fp+-184)] = 0;
+	r9 = r10 >> 2;
+	heap32[(r9+1)] = 0;
+	r7 = (r10 + r7)|0;
+	heap32[(r9+2)] = 0;
+	r7 = r7 >> 2;
+	heap32[(r9+3)] = 0;
+	heapFloat[(r7)] = f0;
+	r4 = r4 >> 2;
+	f0 = heapFloat[(r4)];
+	r7 = sp + -800;
+	heapFloat[(fp+-200)] = f0;
+	r11 = r7 >> 2;
+	f2 = heapFloat[(r4+1)];
+	heapFloat[(r11+1)] = f2;
+	f3 = heapFloat[(r4+2)];
+	heapFloat[(r11+2)] = f3;
+	heap32[(r11+3)] = heap32[(r4+3)];
+	f4 = heapFloat[(r4+4)];
+	heapFloat[(r11+4)] = f4;
+	f5 = heapFloat[(r4+5)];
+	heapFloat[(r11+5)] = f5;
+	f6 = heapFloat[(r4+6)];
+	heapFloat[(r11+6)] = f6;
+	heap32[(r11+7)] = heap32[(r4+7)];
+	f7 = heapFloat[(r4+8)];
+	heapFloat[(r11+8)] = f7;
+	f8 = heapFloat[(r4+9)];
+	heapFloat[(r11+9)] = f8;
+	f9 = heapFloat[(r4+10)];
+	heapFloat[(r11+10)] = f9;
+	heap32[(r11+11)] = heap32[(r4+11)];
+	f10 = heapFloat[(fp+-180)];
+	f11 = heapFloat[(r8+1)];
+	f12 = heapFloat[(r8+2)];
+	f0 = f0*f10;
+	f2 = f2*f11;
+	f4 = f4*f10;
+	f5 = f5*f11;
+	f0 = f0+f2;
+	f2 = f3*f12;
+	f3 = f7*f10;
+	f7 = f8*f11;
+	f4 = f4+f5;
+	f5 = f6*f12;
+	f0 = f0+f2;
+	f2 = heapFloat[(r4+12)];
+	f6 = heapFloat[(r4+13)];
+	f8 = heapFloat[(r4+14)];
+	f4 = f4+f5;
+	f3 = f3+f7;
+	f5 = f9*f12;
+	f0 = f0+f2;
+	f2 = f3+f5;
+	f3 = f4+f6;
+	heapFloat[(r11+12)] = f0;
+	f0 = f2+f8;
+	heapFloat[(r11+13)] = f3;
+	heapFloat[(r11+14)] = f0;
+	heap32[(r11+15)] = 0;
+	r11 = heap32[(r1)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r12 = r_g0 >> 2;
+	r12 = heap32[(r12)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+4)];
+	heap32[(g0)] = r_g0;
+	heapFloat[(g0+1)] = f1;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+	f0 = heapFloat[(r4)];
+	r7 = sp + -864;
+	heapFloat[(fp+-216)] = f0;
+	r11 = r7 >> 2;
+	f2 = heapFloat[(r4+1)];
+	heapFloat[(r11+1)] = f2;
+	f3 = heapFloat[(r4+2)];
+	heapFloat[(r11+2)] = f3;
+	heap32[(r11+3)] = heap32[(r4+3)];
+	f4 = heapFloat[(r4+4)];
+	heapFloat[(r11+4)] = f4;
+	f5 = heapFloat[(r4+5)];
+	heapFloat[(r11+5)] = f5;
+	f6 = heapFloat[(r4+6)];
+	heapFloat[(r11+6)] = f6;
+	heap32[(r11+7)] = heap32[(r4+7)];
+	f7 = heapFloat[(r4+8)];
+	heapFloat[(r11+8)] = f7;
+	f8 = heapFloat[(r4+9)];
+	heapFloat[(r11+9)] = f8;
+	f9 = heapFloat[(r4+10)];
+	heapFloat[(r11+10)] = f9;
+	heap32[(r11+11)] = heap32[(r4+11)];
+	f10 = heapFloat[(fp+-184)];
+	f11 = heapFloat[(r9+1)];
+	f12 = heapFloat[(r9+2)];
+	f0 = f0*f10;
+	f2 = f2*f11;
+	f4 = f4*f10;
+	f5 = f5*f11;
+	f0 = f0+f2;
+	f2 = f3*f12;
+	f3 = f7*f10;
+	f7 = f8*f11;
+	f4 = f4+f5;
+	f5 = f6*f12;
+	f0 = f0+f2;
+	f2 = heapFloat[(r4+12)];
+	f6 = heapFloat[(r4+13)];
+	f8 = heapFloat[(r4+14)];
+	f4 = f4+f5;
+	f3 = f3+f7;
+	f5 = f9*f12;
+	f0 = f0+f2;
+	f2 = f3+f5;
+	f3 = f4+f6;
+	heapFloat[(r11+12)] = f0;
+	f0 = f2+f8;
+	heapFloat[(r11+13)] = f3;
+	heapFloat[(r11+14)] = f0;
+	heap32[(r11+15)] = 0;
+	r11 = heap32[(r1)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r12 = r_g0 >> 2;
+	r12 = heap32[(r12)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+4)];
+	r3 = (r3 + 1)|0;
+	heap32[(g0)] = r_g0;
+	heapFloat[(g0+1)] = f1;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r6;
+	r3 = (r3 % 3)|0;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+	r3 = r3 << 2;
+	r7 = (r2 + r3)|0;
+	f0 = heapFloat[(r4+12)];
+	f2 = heapFloat[(r4+13)];
+	f3 = heapFloat[(r4+14)];
+	r3 = (r10 + r3)|0;
+	r7 = r7 >> 2;
+	heapFloat[(r7)] = f1;
+	r3 = r3 >> 2;
+	heapFloat[(r3)] = f1;
+	r11 = heap32[(r1)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r12 = r_g0 >> 2;
+	f4 = heapFloat[(fp+-184)];
+	f5 = heapFloat[(r4)];
+	f6 = heapFloat[(r9+1)];
+	f7 = heapFloat[(r4+1)];
+	r12 = heap32[(r12)];
+	f8 = heapFloat[(r4+4)];
+	f9 = heapFloat[(r4+5)];
+	f10 = f5*f4;
+	f11 = f7*f6;
+	f12 = heapFloat[(r9+2)];
+	f13 = heapFloat[(r4+2)];
+	r12 = r12 >> 2;
+	f14 = heapFloat[(r4+8)];
+	f15 = heapFloat[(r4+9)];
+	f16 = heapFloat[(r4+6)];
+	f17 = f8*f4;
+	f18 = f9*f6;
+	f10 = f10+f11;
+	f11 = f13*f12;
+	f10 = f10+f11;
+	f11 = heapFloat[(r4+10)];
+	r12 = heap32[(r12+2)];
+	f4 = f14*f4;
+	f6 = f15*f6;
+	f17 = f17+f18;
+	f18 = f16*f12;
+	r13 = sp + -544;
+	f17 = f17+f18;
+	f4 = f4+f6;
+	f6 = f11*f12;
+	f10 = f0+f10;
+	f4 = f4+f6;
+	r14 = r13 >> 2;
+	f6 = f2+f17;
+	heapFloat[(fp+-136)] = f10;
+	f4 = f3+f4;
+	heapFloat[(r14+1)] = f6;
+	heapFloat[(r14+2)] = f4;
+	heap32[(r14+3)] = 0;
+	f4 = heapFloat[(fp+-180)];
+	f6 = heapFloat[(r8+1)];
+	f10 = heapFloat[(r8+2)];
+	f5 = f5*f4;
+	f7 = f7*f6;
+	f8 = f8*f4;
+	f9 = f9*f6;
+	f5 = f5+f7;
+	f7 = f13*f10;
+	f5 = f5+f7;
+	f4 = f14*f4;
+	f6 = f15*f6;
+	f7 = f8+f9;
+	f8 = f16*f10;
+	r14 = sp + -528;
+	f7 = f7+f8;
+	f4 = f4+f6;
+	f6 = f11*f10;
+	f5 = f0+f5;
+	f4 = f4+f6;
+	r15 = r14 >> 2;
+	f6 = f2+f7;
+	heapFloat[(fp+-132)] = f5;
+	f4 = f3+f4;
+	heapFloat[(r15+1)] = f6;
+	heapFloat[(r15+2)] = f4;
+	heap32[(r15+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r14;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+	f4 = -f1;
+	heapFloat[(r7)] = f4;
+	heapFloat[(r3)] = f4;
+	r11 = heap32[(r1)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r12 = r_g0 >> 2;
+	f5 = heapFloat[(fp+-184)];
+	f6 = heapFloat[(r4)];
+	f7 = heapFloat[(r9+1)];
+	f8 = heapFloat[(r4+1)];
+	r12 = heap32[(r12)];
+	f9 = heapFloat[(r4+4)];
+	f10 = heapFloat[(r4+5)];
+	f11 = f6*f5;
+	f12 = f8*f7;
+	f13 = heapFloat[(r9+2)];
+	f14 = heapFloat[(r4+2)];
+	r12 = r12 >> 2;
+	f15 = heapFloat[(r4+8)];
+	f16 = heapFloat[(r4+9)];
+	f17 = heapFloat[(r4+6)];
+	f18 = f9*f5;
+	f19 = f10*f7;
+	f11 = f11+f12;
+	f12 = f14*f13;
+	f11 = f11+f12;
+	f12 = heapFloat[(r4+10)];
+	r12 = heap32[(r12+2)];
+	f5 = f15*f5;
+	f7 = f16*f7;
+	f18 = f18+f19;
+	f19 = f17*f13;
+	r13 = sp + -512;
+	f18 = f18+f19;
+	f5 = f5+f7;
+	f7 = f12*f13;
+	f11 = f0+f11;
+	f5 = f5+f7;
+	r14 = r13 >> 2;
+	f7 = f2+f18;
+	heapFloat[(fp+-128)] = f11;
+	f5 = f3+f5;
+	heapFloat[(r14+1)] = f7;
+	heapFloat[(r14+2)] = f5;
+	heap32[(r14+3)] = 0;
+	f5 = heapFloat[(fp+-180)];
+	f7 = heapFloat[(r8+1)];
+	f11 = heapFloat[(r8+2)];
+	f6 = f6*f5;
+	f8 = f8*f7;
+	f9 = f9*f5;
+	f10 = f10*f7;
+	f6 = f6+f8;
+	f8 = f14*f11;
+	f6 = f6+f8;
+	f5 = f15*f5;
+	f7 = f16*f7;
+	f8 = f9+f10;
+	f9 = f17*f11;
+	r14 = sp + -496;
+	f8 = f8+f9;
+	f5 = f5+f7;
+	f7 = f12*f11;
+	f6 = f0+f6;
+	f5 = f5+f7;
+	r15 = r14 >> 2;
+	f7 = f2+f8;
+	heapFloat[(fp+-124)] = f6;
+	f5 = f3+f5;
+	heapFloat[(r15+1)] = f7;
+	heapFloat[(r15+2)] = f5;
+	heap32[(r15+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r14;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+	heap32[(r7)] = 0;
+	r2 = (r2 + r5)|0;
+	r5 = (r10 + r5)|0;
+	heap32[(r3)] = 0;
+	r2 = r2 >> 2;
+	heapFloat[(r2)] = f1;
+	r3 = r5 >> 2;
+	heapFloat[(r3)] = f1;
+	r5 = heap32[(r1)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r7 = r_g0 >> 2;
+	f1 = heapFloat[(fp+-184)];
+	f5 = heapFloat[(r4)];
+	f6 = heapFloat[(r9+1)];
+	f7 = heapFloat[(r4+1)];
+	r7 = heap32[(r7)];
+	f8 = heapFloat[(r4+4)];
+	f9 = heapFloat[(r4+5)];
+	f10 = f5*f1;
+	f11 = f7*f6;
+	f12 = heapFloat[(r9+2)];
+	f13 = heapFloat[(r4+2)];
+	r7 = r7 >> 2;
+	f14 = heapFloat[(r4+8)];
+	f15 = heapFloat[(r4+9)];
+	f16 = heapFloat[(r4+6)];
+	f17 = f8*f1;
+	f18 = f9*f6;
+	f10 = f10+f11;
+	f11 = f13*f12;
+	f10 = f10+f11;
+	f11 = heapFloat[(r4+10)];
+	r7 = heap32[(r7+2)];
+	f1 = f14*f1;
+	f6 = f15*f6;
+	f17 = f17+f18;
+	f18 = f16*f12;
+	r10 = sp + -480;
+	f17 = f17+f18;
+	f1 = f1+f6;
+	f6 = f11*f12;
+	f10 = f0+f10;
+	f1 = f1+f6;
+	r11 = r10 >> 2;
+	f6 = f2+f17;
+	heapFloat[(fp+-120)] = f10;
+	f1 = f3+f1;
+	heapFloat[(r11+1)] = f6;
+	heapFloat[(r11+2)] = f1;
+	heap32[(r11+3)] = 0;
+	f1 = heapFloat[(fp+-180)];
+	f6 = heapFloat[(r8+1)];
+	f10 = heapFloat[(r8+2)];
+	f5 = f5*f1;
+	f7 = f7*f6;
+	f8 = f8*f1;
+	f9 = f9*f6;
+	f5 = f5+f7;
+	f7 = f13*f10;
+	f5 = f5+f7;
+	f1 = f14*f1;
+	f6 = f15*f6;
+	f7 = f8+f9;
+	f8 = f16*f10;
+	r11 = sp + -464;
+	f7 = f7+f8;
+	f1 = f1+f6;
+	f6 = f11*f10;
+	f5 = f0+f5;
+	f1 = f1+f6;
+	r12 = r11 >> 2;
+	f6 = f2+f7;
+	heapFloat[(fp+-116)] = f5;
+	f1 = f3+f1;
+	heapFloat[(r12+1)] = f6;
+	heapFloat[(r12+2)] = f1;
+	heap32[(r12+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	heapFloat[(r2)] = f4;
+	heapFloat[(r3)] = f4;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r1 = r_g0 >> 2;
+	f1 = heapFloat[(fp+-184)];
+	f4 = heapFloat[(r4)];
+	f5 = heapFloat[(r9+1)];
+	f6 = heapFloat[(r4+1)];
+	r1 = heap32[(r1)];
+	f7 = heapFloat[(r4+4)];
+	f8 = heapFloat[(r4+5)];
+	f9 = f4*f1;
+	f10 = f6*f5;
+	f11 = heapFloat[(r9+2)];
+	f12 = heapFloat[(r4+2)];
+	r1 = r1 >> 2;
+	f13 = heapFloat[(r4+8)];
+	f14 = heapFloat[(r4+9)];
+	f15 = heapFloat[(r4+6)];
+	f16 = f7*f1;
+	f17 = f8*f5;
+	f9 = f9+f10;
+	f10 = f12*f11;
+	f9 = f9+f10;
+	f10 = heapFloat[(r4+10)];
+	r1 = heap32[(r1+2)];
+	f1 = f13*f1;
+	f5 = f14*f5;
+	f16 = f16+f17;
+	f17 = f15*f11;
+	r2 = sp + -448;
+	f16 = f16+f17;
+	f1 = f1+f5;
+	f5 = f10*f11;
+	f9 = f0+f9;
+	f1 = f1+f5;
+	r3 = r2 >> 2;
+	f5 = f2+f16;
+	heapFloat[(fp+-112)] = f9;
+	f1 = f3+f1;
+	heapFloat[(r3+1)] = f5;
+	heapFloat[(r3+2)] = f1;
+	heap32[(r3+3)] = 0;
+	f1 = heapFloat[(fp+-180)];
+	f5 = heapFloat[(r8+1)];
+	f9 = heapFloat[(r8+2)];
+	f4 = f4*f1;
+	f6 = f6*f5;
+	f7 = f7*f1;
+	f8 = f8*f5;
+	f4 = f4+f6;
+	f6 = f12*f9;
+	f4 = f4+f6;
+	f1 = f13*f1;
+	f5 = f14*f5;
+	f6 = f7+f8;
+	f7 = f15*f9;
+	r3 = sp + -432;
+	f6 = f6+f7;
+	f1 = f1+f5;
+	f5 = f10*f9;
+	f0 = f0+f4;
+	f1 = f1+f5;
+	r4 = r3 >> 2;
+	f2 = f2+f6;
+	heapFloat[(fp+-108)] = f0;
+	f0 = f3+f1;
+	heapFloat[(r4+1)] = f2;
+	heapFloat[(r4+2)] = f0;
+	heap32[(r4+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r3;
+__label__ = 30;
+break _1;
+}
+else{
+__label__ = 32;
+break _1;
+}
+}
+}
+else{
+	if(r3 ==0) //_LBB222_14
+{
+	r3 = sp + -704;
+	f0 = heapFloat[(r5+8)];
+	f1 = heapFloat[(r5+9)];
+	f2 = heapFloat[(r5+7)];
+	r7 = r3 >> 2;
+	heap32[(r7+3)] = heap32[(r5+10)];
+	r8 = heap32[(r5)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+11)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	f3 = f_g0;
+	r8 = heap32[(r5)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+11)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	f4 = f_g0;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+11)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	f2 = f2+f_g0;
+	f0 = f0+f4;
+	heapFloat[(fp+-176)] = f2;
+	f1 = f1+f3;
+	heapFloat[(r7+1)] = f0;
+	heapFloat[(r7+2)] = f1;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r1 = r_g0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r7+2)];
+	f1 = heapFloat[(r7+1)];
+	f2 = heapFloat[(fp+-176)];
+	r1 = heap32[(r1+18)];
+	r2 = sp + -624;
+	f2 = -f2;
+	r5 = r2 >> 2;
+	f1 = -f1;
+	heapFloat[(fp+-156)] = f2;
+	f0 = -f0;
+	heapFloat[(r5+1)] = f1;
+	heapFloat[(r5+2)] = f0;
+	heap32[(r5+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r4;
+	heap32[(g0+4)] = r6;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+else{
+	if(r3 ==8) //_LBB222_15
+{
+	r3 = heap32[(r5)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+11)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	f0 = f_g0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r1 = r_g0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	heap32[(g0)] = r_g0;
+	heapFloat[(g0+1)] = f0;
+	heap32[(g0+2)] = r4;
+__label__ = 31;
+}
+else{
+__label__ = 32;
+}
+}
+}
+}
+} while(0);
+_41: do {
+switch(__label__ ){//multiple entries
+case 30:
+	heap32[(g0+2)] = r2;
+__label__ = 31;
+break _41;
+break;
+case 32:
+	r7 = (r3 + -21)|0;
+	if(uint(r7) <uint(9)) //_LBB222_34
+{
+	r3 = sp + -1024;
+	r7 = r3 >> 2;
+	heap32[(fp+-256)] = 1566444395;
+	heap32[(r7+1)] = 1566444395;
+	heap32[(r7+2)] = 1566444395;
+	r8 = sp + -1040;
+	heap32[(r7+3)] = 0;
+	r7 = r8 >> 2;
+	heap32[(fp+-260)] = -581039253;
+	heap32[(r7+1)] = -581039253;
+	heap32[(r7+2)] = -581039253;
+	heap32[(r7+3)] = 0;
+	r7 = heap32[(r1)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+4)];
+	r9 = _ZTV17DebugDrawcallback;
+	heap32[(g0)] = r0;
+	r10 = sp + -1136;
+	r11 = (r9 + 8)|0;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r12 = r10 >> 2;
+	r9 = (r9 + 32)|0;
+	heap32[(fp+-284)] = r11;
+	heap32[(r12+1)] = r9;
+	r13 = r6 >> 2;
+	heap32[(r12+2)] = r_g0;
+	heap32[(r12+3)] = heap32[(r13)];
+	heap32[(r12+4)] = heap32[(r13+1)];
+	heap32[(r12+5)] = heap32[(r13+2)];
+	r7 = r4 >> 2;
+	heap32[(r12+6)] = heap32[(r13+3)];
+	heap32[(r12+7)] = heap32[(r7)];
+	heap32[(r12+8)] = heap32[(r7+1)];
+	heap32[(r12+9)] = heap32[(r7+2)];
+	heap32[(r12+10)] = heap32[(r7+3)];
+	heap32[(r12+11)] = heap32[(r7+4)];
+	heap32[(r12+12)] = heap32[(r7+5)];
+	heap32[(r12+13)] = heap32[(r7+6)];
+	heap32[(r12+14)] = heap32[(r7+7)];
+	heap32[(r12+15)] = heap32[(r7+8)];
+	heap32[(r12+16)] = heap32[(r7+9)];
+	heap32[(r12+17)] = heap32[(r7+10)];
+	heap32[(r12+18)] = heap32[(r7+11)];
+	heap32[(r12+19)] = heap32[(r7+12)];
+	heap32[(r12+20)] = heap32[(r7+13)];
+	heap32[(r12+21)] = heap32[(r7+14)];
+	heap32[(r12+22)] = heap32[(r7+15)];
+	r7 = heap32[(r5)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+15)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r3;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r3 = r10 | 4;
+	r7 = _ZTV31btInternalTriangleIndexCallback;
+	heap32[(fp+-284)] = r11;
+	r8 = _ZTV18btTriangleCallback;
+	r3 = r3 >> 2;
+	r7 = (r7 + 8)|0;
+	heap32[(r12+1)] = r9;
+	r8 = (r8 + 8)|0;
+	heap32[(r3)] = r7;
+	heap32[(fp+-284)] = r8;
+	r3 = heap32[(r5+1)];
+}
+	if(r3 ==3) //_LBB222_37
+{
+	r3 = sp + -1152;
+	r7 = r3 >> 2;
+	heap32[(fp+-288)] = 1566444395;
+	heap32[(r7+1)] = 1566444395;
+	heap32[(r7+2)] = 1566444395;
+	r8 = sp + -1168;
+	heap32[(r7+3)] = 0;
+	r7 = r8 >> 2;
+	heap32[(fp+-292)] = -581039253;
+	heap32[(r7+1)] = -581039253;
+	heap32[(r7+2)] = -581039253;
+	heap32[(r7+3)] = 0;
+	r7 = heap32[(r1)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+4)];
+	r9 = _ZTV17DebugDrawcallback;
+	heap32[(g0)] = r0;
+	r10 = sp + -1264;
+	r11 = (r9 + 8)|0;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r12 = r10 >> 2;
+	r9 = (r9 + 32)|0;
+	heap32[(fp+-316)] = r11;
+	heap32[(r12+1)] = r9;
+	r13 = r6 >> 2;
+	heap32[(r12+2)] = r_g0;
+	heap32[(r12+3)] = heap32[(r13)];
+	heap32[(r12+4)] = heap32[(r13+1)];
+	heap32[(r12+5)] = heap32[(r13+2)];
+	r7 = r4 >> 2;
+	heap32[(r12+6)] = heap32[(r13+3)];
+	heap32[(r12+7)] = heap32[(r7)];
+	heap32[(r12+8)] = heap32[(r7+1)];
+	heap32[(r12+9)] = heap32[(r7+2)];
+	heap32[(r12+10)] = heap32[(r7+3)];
+	heap32[(r12+11)] = heap32[(r7+4)];
+	heap32[(r12+12)] = heap32[(r7+5)];
+	heap32[(r12+13)] = heap32[(r7+6)];
+	heap32[(r12+14)] = heap32[(r7+7)];
+	heap32[(r12+15)] = heap32[(r7+8)];
+	heap32[(r12+16)] = heap32[(r7+9)];
+	heap32[(r12+17)] = heap32[(r7+10)];
+	heap32[(r12+18)] = heap32[(r7+11)];
+	heap32[(r12+19)] = heap32[(r7+12)];
+	heap32[(r12+20)] = heap32[(r7+13)];
+	heap32[(r12+21)] = heap32[(r7+14)];
+	heap32[(r12+22)] = heap32[(r7+15)];
+	r7 = heap32[(r5+22)];
+	r13 = r7 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+2)];
+	r14 = (r10 + 4)|0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r14;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r3;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+	r3 = r10 | 4;
+	r7 = _ZTV31btInternalTriangleIndexCallback;
+	heap32[(fp+-316)] = r11;
+	r8 = _ZTV18btTriangleCallback;
+	r3 = r3 >> 2;
+	r7 = (r7 + 8)|0;
+	heap32[(r12+1)] = r9;
+	r8 = (r8 + 8)|0;
+	heap32[(r3)] = r7;
+	heap32[(fp+-316)] = r8;
+	r3 = heap32[(r5+1)];
+}
+	if(r3 >6) //_LBB222_42
+{
+__label__ = 40;
+}
+else{
+	r3 = heap32[(r5)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+22)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r_g0;
+	if(r3 <1) //_LBB222_42
+{
+__label__ = 40;
+}
+else{
+	r3 = 0;
+_52: while(true){
+	r7 = heap32[(r5)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+23)];
+	r8 = sp + -1296;
+	r9 = sp + -1280;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r8;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r7 = r4 >> 2;
+	r9 = r9 >> 2;
+	f0 = heapFloat[(fp+-320)];
+	f1 = heapFloat[(r7)];
+	f2 = heapFloat[(r9+1)];
+	f3 = heapFloat[(r7+1)];
+	f4 = heapFloat[(r7+4)];
+	f5 = heapFloat[(r7+5)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r9+2)];
+	f9 = heapFloat[(r7+2)];
+	f10 = heapFloat[(r7+8)];
+	f11 = heapFloat[(r7+9)];
+	f12 = heapFloat[(r7+6)];
+	f13 = f4*f0;
+	f14 = f5*f2;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	f15 = heapFloat[(r7+10)];
+	f0 = f10*f0;
+	f2 = f11*f2;
+	f13 = f13+f14;
+	f14 = f12*f8;
+	f6 = f6+f7;
+	f7 = heapFloat[(r7+12)];
+	f16 = heapFloat[(r7+14)];
+	f17 = heapFloat[(r7+13)];
+	r7 = sp + -1312;
+	f13 = f13+f14;
+	f0 = f0+f2;
+	f2 = f15*f8;
+	f6 = f6+f7;
+	f0 = f0+f2;
+	r9 = r7 >> 2;
+	f2 = f13+f17;
+	heapFloat[(fp+-328)] = f6;
+	f0 = f0+f16;
+	heapFloat[(r9+1)] = f2;
+	heapFloat[(r9+2)] = f0;
+	heap32[(r9+3)] = 0;
+	r8 = r8 >> 2;
+	f0 = heapFloat[(fp+-324)];
+	f2 = heapFloat[(r8+1)];
+	f6 = heapFloat[(r8+2)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f9*f6;
+	f1 = f1+f3;
+	f0 = f10*f0;
+	f2 = f11*f2;
+	f3 = f4+f5;
+	f4 = f12*f6;
+	r8 = sp + -1328;
+	f3 = f3+f4;
+	f0 = f0+f2;
+	f2 = f15*f6;
+	f1 = f1+f7;
+	f0 = f0+f2;
+	r9 = r8 >> 2;
+	f2 = f3+f17;
+	heapFloat[(fp+-332)] = f1;
+	f0 = f0+f16;
+	heapFloat[(r9+1)] = f2;
+	heapFloat[(r9+2)] = f0;
+	heap32[(r9+3)] = 0;
+	r9 = heap32[(r1)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r10 = r_g0 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+2)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	r7 = heap32[(r5)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+22)];
+	r3 = (r3 + 1)|0;
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r7 = r_g0;
+	if(r7 >r3) //_LBB222_41
+{
+continue _52;
+}
+else{
+__label__ = 40;
+break _41;
+}
+}
+}
+}
+break;
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 31:
+	heap32[(g0+3)] = r6;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+break;
+case 40:
+	return;
+break;
+}
+}
+
+function _ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + -280;var g0 = i7>>2; // save stack
+	r0 = _ZTV19btSingleRayCallback;
+	r1 = heap32[(fp+1)];
+	r0 = (r0 + 8)|0;
+	r2 = sp + -256;
+	r3 = r1 >> 2;
+	heap32[(fp+-64)] = r0;
+	r0 = r2 >> 2;
+	f0 = heapFloat[(r3)];
+	heapFloat[(r0+9)] = f0;
+	f1 = heapFloat[(r3+1)];
+	heapFloat[(r0+10)] = f1;
+	f2 = heapFloat[(r3+2)];
+	heapFloat[(r0+11)] = f2;
+	r4 = heap32[(fp+2)];
+	f3 = heapFloat[(r3+3)];
+	r3 = r4 >> 2;
+	heapFloat[(r0+12)] = f3;
+	f4 = heapFloat[(r3)];
+	heapFloat[(r0+13)] = f4;
+	f5 = heapFloat[(r3+1)];
+	heapFloat[(r0+14)] = f5;
+	f6 = heapFloat[(r3+2)];
+	heapFloat[(r0+15)] = f6;
+	f7 = heapFloat[(r3+3)];
+	r3 = heap32[(fp)];
+	heapFloat[(r0+16)] = f7;
+	r5 = heap32[(fp+3)];
+	heap32[(r0+53)] = r3;
+	heap32[(r0+54)] = r5;
+	heap32[(r0+17)] = 1065353216;
+	heap32[(r0+18)] = 0;
+	heap32[(r0+19)] = 0;
+	heap32[(r0+20)] = 0;
+	heap32[(r0+21)] = 0;
+	heap32[(r0+22)] = 1065353216;
+	heap32[(r0+23)] = 0;
+	heap32[(r0+24)] = 0;
+	heap32[(r0+25)] = 0;
+	heap32[(r0+26)] = 0;
+	heap32[(r0+27)] = 1065353216;
+	heap32[(r0+28)] = 0;
+	heapFloat[(r0+29)] = f0;
+	heapFloat[(r0+30)] = f1;
+	heapFloat[(r0+31)] = f2;
+	heapFloat[(r0+32)] = f3;
+	heap32[(r0+33)] = 1065353216;
+	heap32[(r0+34)] = 0;
+	heap32[(r0+35)] = 0;
+	heap32[(r0+36)] = 0;
+	heap32[(r0+37)] = 0;
+	heap32[(r0+38)] = 1065353216;
+	heap32[(r0+39)] = 0;
+	heap32[(r0+40)] = 0;
+	heap32[(r0+41)] = 0;
+	heap32[(r0+42)] = 0;
+	heap32[(r0+43)] = 1065353216;
+	heap32[(r0+44)] = 0;
+	heapFloat[(r0+45)] = f4;
+	f0 = f4-f0;
+	heapFloat[(r0+46)] = f5;
+	f1 = f5-f1;
+	heapFloat[(r0+47)] = f6;
+	f2 = f6-f2;
+	f3 = f0*f0;
+	f4 = f1*f1;
+	heapFloat[(r0+48)] = f7;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	heapFloat[(g0)] = f3;
+	f3 =                         1;
+	sqrtf(i7);
+	f4 = f3/f_g0;
+	f0 = f0*f4;
+	f1 = f1*f4;
+	f2 = f2*f4;
+	f4 =                         0;
+	if(f0 !=f4) //_LBB223_2
+{
+	f5 = f3/f0;
+}
+else{
+	f5 =        999999984306749440;
+}
+	heapFloat[(r0+1)] = f5;
+	if(f1 !=f4) //_LBB223_5
+{
+	f6 = f3/f1;
+}
+else{
+	f6 =        999999984306749440;
+}
+	heapFloat[(r0+2)] = f6;
+	if(f2 !=f4) //_LBB223_8
+{
+	f3 = f3/f2;
+}
+else{
+	f3 =        999999984306749440;
+}
+	r5 = f5 < f4;
+	r6 = f6 < f4;
+	r5 = r5 & 1;
+	heapFloat[(r0+3)] = f3;
+	r7 = f3 < f4;
+	r6 = r6 & 1;
+	heap32[(r0+5)] = r5;
+	r5 = r7 & 1;
+	heap32[(r0+6)] = r6;
+	heap32[(r0+7)] = r5;
+	f3 = heapFloat[(r0+14)];
+	f4 = heapFloat[(r0+10)];
+	f5 = heapFloat[(r0+13)];
+	f6 = heapFloat[(r0+9)];
+	f5 = f5-f6;
+	f3 = f3-f4;
+	f4 = heapFloat[(r0+15)];
+	f6 = heapFloat[(r0+11)];
+	f0 = f0*f5;
+	f1 = f1*f3;
+	f3 = f4-f6;
+	f0 = f0+f1;
+	f1 = f2*f3;
+	f0 = f0+f1;
+	r3 = r3 >> 2;
+	heapFloat[(r0+8)] = f0;
+	r0 = heap32[(r3+20)];
+	r3 = r0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+6)];
+	r5 = sp + -32;
+	r6 = r5 >> 2;
+	heap32[(fp+-8)] = 0;
+	heap32[(r6+1)] = 0;
+	heap32[(r6+2)] = 0;
+	r7 = sp + -16;
+	heap32[(r6+3)] = 0;
+	r6 = r7 >> 2;
+	heap32[(fp+-4)] = 0;
+	heap32[(r6+1)] = 0;
+	heap32[(r6+2)] = 0;
+	heap32[(r6+3)] = 0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r2;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r5;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	return;
+}
+
+function _ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+var __label__ = 0;
+	i7 = sp + -136;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	if(r0 !=0) //_LBB224_2
+{
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r4 = r1 >> 2;
+	r5 = heap32[(r4+2)];
+	r6 = 0;
+_3: while(true){
+	if(r5 >r6) //_LBB224_3
+{
+	r7 = heap32[(r4+4)];
+	r8 = r6 << 2;
+	r7 = (r7 + r8)|0;
+	r7 = r7 >> 2;
+	r7 = heap32[(r7)];
+	if(r7 ==r0) //_LBB224_6
+{
+__label__ = 6;
+break _3;
+}
+else{
+	r6 = (r6 + 1)|0;
+}
+}
+else{
+__label__ = 8;
+break _3;
+}
+}
+if (__label__ == 6){
+if(!(r5 ==r6)) //_LBB224_8
+{
+	r0 = _2E_str988;
+	r1 = _2E_str887;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 114;
+	_assert(i7);
+}
+}
+	r6 = heap32[(r4+3)];
+	if(r6 ==r5) //_LBB224_10
+{
+	r7 = 1;
+	r8 = r5 << 1;
+	r8 = r5 == 0 ? r7 : r8;
+if(!(r6 >=r8)) //_LBB224_9
+{
+	if(r8 !=0) //_LBB224_13
+{
+	r6 = gNumAlignedAllocs;
+	r6 = r6 >> 2;
+	r9 = heap32[(r6)];
+	r10 = r8 << 2;
+	r9 = (r9 + 1)|0;
+	r10 = r10 | 3;
+	heap32[(r6)] = r9;
+	r6 = (r10 + 16)|0;
+	heap32[(g0)] = r6;
+	malloc(i7);
+	r6 = r_g0;
+	if(r6 !=0) //_LBB224_15
+{
+	r9 = 0;
+	r10 = (r6 + 4)|0;
+	r9 = (r9 - r10)|0;
+	r9 = r9 & 15;
+	r9 = (r6 + r9)|0;
+	r10 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r6;
+	r6 = r10;
+}
+}
+else{
+	r6 = 0;
+}
+_19: do {
+	if(r5 <1) //_LBB224_18
+{
+	r10 = heap32[(r4+4)];
+}
+else{
+	r9 = 0;
+_22: while(true){
+	r10 = heap32[(r4+4)];
+	r11 = r9 << 2;
+	r12 = (r10 + r11)|0;
+	r12 = r12 >> 2;
+	r11 = (r6 + r11)|0;
+	r12 = heap32[(r12)];
+	r9 = (r9 + 1)|0;
+	r11 = r11 >> 2;
+	heap32[(r11)] = r12;
+if(!(r5 !=r9)) //_LBB224_19
+{
+break _19;
+}
+}
+}
+} while(0);
+	if(r10 !=0) //_LBB224_22
+{
+	r9 = heapU8[r1+20];
+	if(r9 !=0) //_LBB224_24
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r9 = heap32[(r5)];
+	r9 = (r9 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r5)] = r9;
+	r5 = heap32[(r10+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+	r5 = heap32[(r4+2)];
+}
+	heap32[(r4+4)] = 0;
+}
+	heap8[r1+20] = r7;
+	heap32[(r4+4)] = r6;
+	heap32[(r4+3)] = r8;
+}
+}
+	r1 = r5 << 2;
+	r5 = heap32[(r4+4)];
+	r1 = (r5 + r1)|0;
+	r1 = r1 >> 2;
+	heap32[(r1)] = r0;
+	r1 = heap32[(r4+2)];
+	r1 = (r1 + 1)|0;
+	r5 = sp + -64;
+	r6 = r0 >> 2;
+	heap32[(r4+2)] = r1;
+	r1 = r5 >> 2;
+	heap32[(fp+-16)] = heap32[(r6+1)];
+	heap32[(r1+1)] = heap32[(r6+2)];
+	heap32[(r1+2)] = heap32[(r6+3)];
+	heap32[(r1+3)] = heap32[(r6+4)];
+	heap32[(r1+4)] = heap32[(r6+5)];
+	heap32[(r1+5)] = heap32[(r6+6)];
+	heap32[(r1+6)] = heap32[(r6+7)];
+	heap32[(r1+7)] = heap32[(r6+8)];
+	heap32[(r1+8)] = heap32[(r6+9)];
+	heap32[(r1+9)] = heap32[(r6+10)];
+	heap32[(r1+10)] = heap32[(r6+11)];
+	heap32[(r1+11)] = heap32[(r6+12)];
+	heap32[(r1+12)] = heap32[(r6+13)];
+	heap32[(r1+13)] = heap32[(r6+14)];
+	heap32[(r1+14)] = heap32[(r6+15)];
+	heap32[(r1+15)] = heap32[(r6+16)];
+	r1 = heap32[(r6+48)];
+	r7 = r1 >> 2;
+	r7 = heap32[(r7)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+2)];
+	r8 = sp + -80;
+	r9 = sp + -96;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r9;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r1 = heap32[(r4+20)];
+	r5 = r1 >> 2;
+	r7 = heap32[(r6+48)];
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r7 = r7 >> 2;
+	r5 = heap32[(r5+2)];
+	r7 = heap32[(r7+1)];
+	r4 = heap32[(r4+6)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = r0;
+	heap32[(g0+5)] = r2;
+	heap32[(g0+6)] = r3;
+	heap32[(g0+7)] = r4;
+	heap32[(g0+8)] = 0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	heap32[(r6+47)] = r_g0;
+	return;
+}
+else{
+	r0 = _2E_str786;
+	r1 = _2E_str887;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 111;
+	_assert(i7);
+}
+}
+
+function _ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+47)];
+	r3 = heap32[(fp)];
+if(!(r2 ==0)) //_LBB225_2
+{
+	r4 = r3 >> 2;
+	r5 = heap32[(r4+20)];
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+9)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = r_g0 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+10)];
+	r7 = heap32[(r4+6)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r7;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r5 = heap32[(r4+20)];
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+3)];
+	r4 = heap32[(r4+6)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	heap32[(r1+47)] = 0;
+}
+	r1 = r3 >> 2;
+	r2 = heap32[(r1+2)];
+	r3 = 0;
+_4: while(true){
+	if(r2 >r3) //_LBB225_3
+{
+	r4 = heap32[(r1+4)];
+	r5 = r3 << 2;
+	r4 = (r4 + r5)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	if(r4 !=r0) //_LBB225_5
+{
+	r3 = (r3 + 1)|0;
+continue _4;
+}
+else{
+__label__ = 7;
+break _4;
+}
+}
+else{
+__label__ = 6;
+break _4;
+}
+}
+if (__label__ == 6){
+	r3 = r2;
+}
+if(!(r2 <=r3)) //_LBB225_10
+{
+	r0 = (r2 + -1)|0;
+	r2 = r3 << 2;
+	r3 = heap32[(r1+4)];
+	r0 = r0 << 2;
+	r2 = (r3 + r2)|0;
+	r3 = (r3 + r0)|0;
+	r2 = r2 >> 2;
+	r3 = r3 >> 2;
+	r4 = heap32[(r2)];
+	r3 = heap32[(r3)];
+	heap32[(r2)] = r3;
+	r2 = heap32[(r1+4)];
+	r0 = (r2 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r4;
+	r0 = heap32[(r1+2)];
+	r0 = (r0 + -1)|0;
+	heap32[(r1+2)] = r0;
+}
+	return;
+}
+
+function _ZN16btCollisionWorld33performDiscreteCollisionDetectionEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = _2E_str1190;
+	r1 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r0 = r1 >> 2;
+	r2 = heap32[(r0)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+2)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = _2E_str1291;
+	heap32[(g0)] = r2;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r2 = heap32[(r0+20)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+8)];
+	r4 = heap32[(r0+6)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	r2 = _ZN15CProfileManager11CurrentNodeE;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = r2 >> 2;
+	r3 = heap32[(r2)];
+	r4 = r3 >> 2;
+	r5 = heap32[(r4+4)];
+	r5 = (r5 + -1)|0;
+	heap32[(r4+4)] = r5;
+_1: do {
+if(!(r5 !=0)) //_LBB226_6
+{
+	r5 = heap32[(r4+1)];
+	if(r5 !=0) //_LBB226_3
+{
+	r3 = sp + -24;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 0;
+	r5 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r3 = r3 >> 2;
+	r6 = heap32[(fp+-6)];
+	r7 = heap32[(r5)];
+	r6 = (r6 - r7)|0;
+	r3 = heap32[(r3+1)];
+	r5 = heap32[(r5+1)];
+	r3 = (r3 - r5)|0;
+	r5 = (r6 * 1000000)|0;
+	r3 = (r3 + r5)|0;
+	r5 = heap32[(r4+3)];
+	r3 = (r3 - r5)|0;
+	f0 = uint(r3); //fuitos r3, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r4+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r4+2)] = f0;
+	r3 = heap32[(r4+4)];
+	if(r3 !=0) //_LBB226_6
+{
+break _1;
+}
+else{
+	r3 = heap32[(r2)];
+}
+}
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+5)];
+	heap32[(r2)] = r3;
+}
+} while(0);
+	r3 = heap32[(r0+6)];
+	r4 = _2E_str1392;
+	heap32[(g0)] = r4;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+if(!(r3 ==0)) //_LBB226_8
+{
+	r4 = heap32[(r0+20)];
+	r5 = r3 >> 2;
+	r6 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r6 = heap32[(r6)];
+	r5 = r5 >> 2;
+	r6 = r6 >> 2;
+	r5 = heap32[(r5+8)];
+	r0 = heap32[(r0+6)];
+	r6 = heap32[(r6+9)];
+	heap32[(g0)] = r4;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r1 = (r1 + 28)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+	r0 = heap32[(r2)];
+	r1 = r0 >> 2;
+	r3 = heap32[(r1+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r1+4)] = r3;
+_11: do {
+	if(r3 ==0) //_LBB226_10
+{
+	r3 = heap32[(r1+1)];
+	if(r3 !=0) //_LBB226_12
+{
+	r0 = sp + -16;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r0 = r0 >> 2;
+	r4 = heap32[(fp+-4)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r0 = heap32[(r0+1)];
+	r3 = heap32[(r3+1)];
+	r0 = (r0 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r0 = (r0 + r3)|0;
+	r3 = heap32[(r1+3)];
+	r0 = (r0 - r3)|0;
+	f0 = uint(r0); //fuitos r0, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r1+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r1+2)] = f0;
+	r0 = heap32[(r2)];
+	r1 = heap32[(r1+4)];
+if(!(r1 ==0)) //_LBB226_14
+{
+break _11;
+}
+}
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+5)];
+	heap32[(r2)] = r0;
+}
+} while(0);
+	r1 = r0 >> 2;
+	r3 = heap32[(r1+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r1+4)] = r3;
+_17: do {
+if(!(r3 !=0)) //_LBB226_21
+{
+	r3 = heap32[(r1+1)];
+	if(r3 !=0) //_LBB226_18
+{
+	r0 = sp + -8;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r0 = r0 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r0 = heap32[(r0+1)];
+	r3 = heap32[(r3+1)];
+	r0 = (r0 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r0 = (r0 + r3)|0;
+	r3 = heap32[(r1+3)];
+	r0 = (r0 - r3)|0;
+	f0 = uint(r0); //fuitos r0, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r1+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r1+2)] = f0;
+	r0 = heap32[(r1+4)];
+	if(r0 !=0) //_LBB226_21
+{
+break _17;
+}
+else{
+	r0 = heap32[(r2)];
+}
+}
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+5)];
+	heap32[(r2)] = r0;
+}
+} while(0);
+	return;
+}
+
+function _ZN16btCollisionWorld9serializeEP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+8)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = heap32[(fp)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	_ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i7);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+9)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZN21btSingleSweepCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV21btSingleSweepCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN21btSingleSweepCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV21btSingleSweepCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+46)];
+	r3 = r2 >> 2;
+	f0 = heapFloat[(r3+1)];
+	f1 =                         0;
+	if(f0 !=f1) //_LBB230_2
+{
+	r4 = heap32[(fp+1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r5 = r4 >> 2;
+	r3 = heap32[(r3+2)];
+	r6 = heap32[(r5+47)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB230_4
+{
+	f0 = heapFloat[(r1+47)];
+	r2 = heap32[(r1+46)];
+	r3 = heap32[(r5+48)];
+	r1 = heap32[(r1+48)];
+	r5 = (r0 + 36)|0;
+	r0 = (r0 + 100)|0;
+	r6 = (r4 + 4)|0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r4;
+	heap32[(g0+4)] = r3;
+	heap32[(g0+5)] = r6;
+	heap32[(g0+6)] = r2;
+	heapFloat[(g0+7)] = f0;
+	_ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i7);
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+else{
+	r0 = 1;
+}
+}
+else{
+	r0 = 0;
+}
+	r0 = r0 & 255;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN19btSingleRayCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV19btSingleRayCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN19btSingleRayCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV19btSingleRayCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN19btSingleRayCallback7processEPK17btBroadphaseProxy(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+54)];
+	r3 = r2 >> 2;
+	f0 = heapFloat[(r3+1)];
+	f1 =                         0;
+	if(f0 !=f1) //_LBB233_2
+{
+	r4 = heap32[(fp+1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r5 = r4 >> 2;
+	r3 = heap32[(r3+2)];
+	r6 = heap32[(r5+47)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB233_4
+{
+	r1 = heap32[(r1+54)];
+	r2 = heap32[(r5+48)];
+	r3 = (r0 + 68)|0;
+	r0 = (r0 + 132)|0;
+	r5 = (r4 + 4)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r2;
+	heap32[(g0+4)] = r5;
+	heap32[(g0+5)] = r1;
+	_ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i7);
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+else{
+	r0 = 1;
+}
+}
+else{
+	r0 = 0;
+}
+	r0 = r0 & 255;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN16btCollisionWorldD2Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btCollisionWorld;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+4)];
+	r3 = heap32[(r2+2)];
+	if(r3 >0) //_LBB234_2
+{
+	r3 = 0;
+_3: while(true){
+	r4 = r3 << 2;
+	r1 = (r1 + r4)|0;
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r4 = heap32[(r1+47)];
+if(!(r4 ==0)) //_LBB234_5
+{
+	r5 = heap32[(r2+20)];
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+9)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = r_g0 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+10)];
+	r7 = heap32[(r2+6)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r7;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r5 = heap32[(r2+20)];
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+3)];
+	r7 = heap32[(r2+6)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r7;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	heap32[(r1+47)] = 0;
+}
+	r3 = (r3 + 1)|0;
+	r1 = heap32[(r2+4)];
+	r4 = heap32[(r2+2)];
+	if(r4 >r3) //_LBB234_3
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+if(!(r1 ==0)) //_LBB234_10
+{
+	r3 = heapU8[r0+20];
+if(!(r3 ==0)) //_LBB234_9
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+4)] = 0;
+}
+	r1 = 1;
+	heap8[r0+20] = r1;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	return;
+}
+
+function _ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var r24;
+	var r25;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+2)];
+if(!(r1 <1)) //_LBB235_110
+{
+	r1 = heap32[(fp+1)];
+	heap32[(fp+-2)] = r1;
+	r1 = 0;
+_3: while(true){
+	r2 = heap32[(r0+4)];
+	r3 = r1 << 2;
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+58)];
+if(!(r4 !=1)) //_LBB235_4
+{
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+6)];
+	heap32[(g0)] = r2;
+	r2 = heap32[(fp+-2)];
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+	r1 = (r1 + 1)|0;
+	r2 = heap32[(r0+2)];
+if(!(r2 >r1)) //_LBB235_2
+{
+break _3;
+}
+}
+if(!(r2 <1)) //_LBB235_110
+{
+	r1 = 0;
+	r2 = r1;
+	r3 = r1;
+	r4 = r1;
+	r5 = r1;
+	r6 = r1;
+	heap32[(fp+-1)] = r1;
+	r7 = r1;
+	r8 = r1;
+	r9 = r1;
+	r10 = r1;
+	r11 = r1;
+	r12 = r1;
+_10: while(true){
+	r13 = heap32[(r0+4)];
+	r14 = r12 << 2;
+	r13 = (r13 + r14)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+48)];
+	r14 = r13 << 15;
+	r14 = r14 ^ -1;
+	r14 = (r13 + r14)|0;
+	r15 = r14 >> 10;
+	r14 = r15 ^ r14;
+	r14 = (r14 * 9)|0;
+	r15 = r14 >> 6;
+	r14 = r15 ^ r14;
+	r15 = r14 << 11;
+	r15 = r15 ^ -1;
+	r14 = (r14 + r15)|0;
+	r15 = r14 >> 16;
+	r14 = r15 ^ r14;
+	r15 = (r4 + -1)|0;
+	r15 = r14 & r15;
+	r12 = (r12 + 1)|0;
+_12: do {
+	if(uint(r10) <=uint(r15)) //_LBB235_20
+{
+__label__ = 19;
+}
+else{
+	r16 = r15 << 2;
+	r17 = (r8 + r16)|0;
+_14: while(true){
+	r17 = r17 >> 2;
+	r17 = heap32[(r17)];
+	if(r17 ==-1) //_LBB235_14
+{
+__label__ = 13;
+break _14;
+}
+else{
+	r18 = r17 << 3;
+	r18 = (r11 + r18)|0;
+	r18 = r18 >> 2;
+	r18 = heap32[(r18)];
+	if(r13 !=r18) //_LBB235_9
+{
+	r17 = r17 << 2;
+	r17 = (r6 + r17)|0;
+}
+else{
+__label__ = 12;
+break _14;
+}
+}
+}
+if (__label__ == 12){
+	r17 = r17 << 2;
+	r17 = (r3 + r17)|0;
+if(!(r17 ==0)) //_LBB235_14
+{
+__label__ = 89;
+break _12;
+}
+}
+	if(uint(r10) <=uint(r15)) //_LBB235_20
+{
+__label__ = 19;
+}
+else{
+	r16 = (r8 + r16)|0;
+_22: while(true){
+	r16 = r16 >> 2;
+	r16 = heap32[(r16)];
+	if(r16 ==-1) //_LBB235_20
+{
+__label__ = 19;
+break _12;
+}
+else{
+	r17 = r16 << 3;
+	r17 = (r11 + r17)|0;
+	r17 = r17 >> 2;
+	r17 = heap32[(r17)];
+	if(r13 !=r17) //_LBB235_16
+{
+	r16 = r16 << 2;
+	r16 = (r6 + r16)|0;
+}
+else{
+break _22;
+}
+}
+}
+	r14 = r16 << 2;
+	r14 = (r3 + r14)|0;
+	r14 = r14 >> 2;
+	heap32[(r14)] = r13;
+	r16 = r4;
+	r17 = r5;
+__label__ = 88;
+}
+}
+} while(0);
+if (__label__ == 19){
+	if(r4 ==r5) //_LBB235_22
+{
+	r16 = 1;
+	r17 = r5 << 1;
+	r16 = r5 == 0 ? r16 : r17;
+	if(r4 >=r16) //_LBB235_21
+{
+__label__ = 20;
+}
+else{
+	if(r16 !=0) //_LBB235_25
+{
+	r17 = gNumAlignedAllocs;
+	r17 = r17 >> 2;
+	r18 = heap32[(r17)];
+	r19 = r16 << 2;
+	r18 = (r18 + 1)|0;
+	r19 = r19 | 3;
+	heap32[(r17)] = r18;
+	r17 = (r19 + 16)|0;
+	heap32[(g0)] = r17;
+	malloc(i7);
+	r17 = r_g0;
+	if(r17 !=0) //_LBB235_27
+{
+	r18 = 0;
+	r19 = (r17 + 4)|0;
+	r18 = (r18 - r19)|0;
+	r18 = r18 & 15;
+	r18 = (r17 + r18)|0;
+	r19 = (r18 + 4)|0;
+	r18 = r18 >> 2;
+	heap32[(r18)] = r17;
+	r17 = r19;
+}
+}
+else{
+	r17 = 0;
+}
+_37: do {
+if(!(r5 <1)) //_LBB235_31
+{
+	r18 = r17;
+	r19 = r3;
+	r20 = r5;
+_39: while(true){
+	r21 = r19 >> 2;
+	r20 = (r20 + -1)|0;
+	r19 = (r19 + 4)|0;
+	r22 = (r18 + 4)|0;
+	r18 = r18 >> 2;
+	r21 = heap32[(r21)];
+	heap32[(r18)] = r21;
+	r18 = r22;
+if(!(r20 !=0)) //_LBB235_30
+{
+break _37;
+}
+}
+}
+} while(0);
+	if(r3 !=0) //_LBB235_33
+{
+	r18 = gNumAlignedFree;
+	r18 = r18 >> 2;
+	r19 = heap32[(r18)];
+	r19 = (r19 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r18)] = r19;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+	r3 = r17;
+__label__ = 32;
+}
+else{
+	r3 = r17;
+__label__ = 32;
+}
+}
+}
+else{
+__label__ = 20;
+}
+if (__label__ == 20){
+	r16 = r4;
+}
+	r18 = r5 << 2;
+	r19 = (r3 + r18)|0;
+	r17 = (r5 + 1)|0;
+	r19 = r19 >> 2;
+	heap32[(r19)] = r13;
+	if(r1 ==r2) //_LBB235_36
+{
+	r19 = 1;
+	r20 = r2 << 1;
+	r19 = r2 == 0 ? r19 : r20;
+if(!(r1 >=r19)) //_LBB235_35
+{
+	if(r19 !=0) //_LBB235_39
+{
+	r1 = gNumAlignedAllocs;
+	r1 = r1 >> 2;
+	r20 = heap32[(r1)];
+	r21 = r19 << 3;
+	r20 = (r20 + 1)|0;
+	r21 = r21 | 3;
+	heap32[(r1)] = r20;
+	r1 = (r21 + 16)|0;
+	heap32[(g0)] = r1;
+	malloc(i7);
+	r20 = r_g0;
+	if(r20 !=0) //_LBB235_41
+{
+	r1 = 0;
+	r21 = (r20 + 4)|0;
+	r1 = (r1 - r21)|0;
+	r1 = r1 & 15;
+	r1 = (r20 + r1)|0;
+	r21 = (r1 + 4)|0;
+	r1 = r1 >> 2;
+	heap32[(r1)] = r20;
+	r20 = r21;
+}
+}
+else{
+	r20 = 0;
+}
+_56: do {
+if(!(r2 <1)) //_LBB235_45
+{
+	r1 = (r11 + 4)|0;
+	r21 = (r20 + 4)|0;
+	r22 = r2;
+_58: while(true){
+	r23 = r1 >> 2;
+	r24 = heap32[(r23)];
+	r23 = heap32[(r23+-1)];
+	r25 = r21 >> 2;
+	r22 = (r22 + -1)|0;
+	r1 = (r1 + 8)|0;
+	r21 = (r21 + 8)|0;
+	heap32[(r25+-1)] = r23;
+	heap32[(r25)] = r24;
+if(!(r22 !=0)) //_LBB235_44
+{
+break _56;
+}
+}
+}
+} while(0);
+	if(r11 !=0) //_LBB235_47
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r21 = heap32[(r1)];
+	r21 = (r21 + 1)|0;
+	r11 = r11 >> 2;
+	heap32[(r1)] = r21;
+	r1 = heap32[(r11+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+	r1 = r19;
+	r11 = r20;
+}
+else{
+	r1 = r19;
+	r11 = r20;
+}
+}
+}
+	r19 = r2 << 3;
+	r19 = (r11 + r19)|0;
+	r2 = (r2 + 1)|0;
+	r19 = r19 >> 2;
+	heap32[(r19)] = r13;
+	if(r4 <r16) //_LBB235_50
+{
+	if(r10 <r16) //_LBB235_52
+{
+_69: do {
+	if(r10 <=r16) //_LBB235_54
+{
+	if(r9 <r16) //_LBB235_56
+{
+	if(r16 !=0) //_LBB235_58
+{
+	r4 = gNumAlignedAllocs;
+	r4 = r4 >> 2;
+	r9 = heap32[(r4)];
+	r15 = r16 << 2;
+	r9 = (r9 + 1)|0;
+	r15 = r15 | 3;
+	heap32[(r4)] = r9;
+	r4 = (r15 + 16)|0;
+	heap32[(g0)] = r4;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB235_60
+{
+	r9 = 0;
+	r15 = (r4 + 4)|0;
+	r9 = (r9 - r15)|0;
+	r9 = r9 & 15;
+	r9 = (r4 + r9)|0;
+	r15 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r4;
+	r4 = r15;
+}
+}
+else{
+	r4 = 0;
+}
+_78: do {
+if(!(r10 <1)) //_LBB235_64
+{
+	r9 = r4;
+	r15 = r8;
+	r19 = r10;
+_80: while(true){
+	r20 = r15 >> 2;
+	r19 = (r19 + -1)|0;
+	r15 = (r15 + 4)|0;
+	r21 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	r20 = heap32[(r20)];
+	heap32[(r9)] = r20;
+	r9 = r21;
+if(!(r19 !=0)) //_LBB235_63
+{
+break _78;
+}
+}
+}
+} while(0);
+	if(r8 !=0) //_LBB235_66
+{
+	r9 = gNumAlignedFree;
+	r9 = r9 >> 2;
+	r15 = heap32[(r9)];
+	r15 = (r15 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r9)] = r15;
+	r8 = heap32[(r8+-1)];
+	heap32[(g0)] = r8;
+	free(i7);
+	r8 = r4;
+	r9 = r16;
+}
+else{
+	r8 = r4;
+	r9 = r16;
+}
+}
+	r4 = r10;
+_87: while(true){
+	r15 = r4 << 2;
+	r15 = (r8 + r15)|0;
+	r4 = (r4 + 1)|0;
+	r15 = r15 >> 2;
+	heap32[(r15)] = 0;
+if(!(r16 !=r4)) //_LBB235_68
+{
+break _69;
+}
+}
+}
+} while(0);
+_90: do {
+	if(r7 <=r16) //_LBB235_71
+{
+if(!(r7 >=r16)) //_LBB235_70
+{
+	r4 = heap32[(fp+-1)];
+	if(r4 <r16) //_LBB235_74
+{
+	if(r16 !=0) //_LBB235_76
+{
+	r4 = gNumAlignedAllocs;
+	r4 = r4 >> 2;
+	r15 = heap32[(r4)];
+	r19 = r16 << 2;
+	r15 = (r15 + 1)|0;
+	r19 = r19 | 3;
+	heap32[(r4)] = r15;
+	r4 = (r19 + 16)|0;
+	heap32[(g0)] = r4;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB235_78
+{
+	r15 = 0;
+	r19 = (r4 + 4)|0;
+	r15 = (r15 - r19)|0;
+	r15 = r15 & 15;
+	r15 = (r4 + r15)|0;
+	r19 = (r15 + 4)|0;
+	r15 = r15 >> 2;
+	heap32[(r15)] = r4;
+	r4 = r19;
+}
+}
+else{
+	r4 = 0;
+}
+_100: do {
+if(!(r7 <1)) //_LBB235_82
+{
+	r15 = r4;
+	r19 = r6;
+	r20 = r7;
+_102: while(true){
+	r21 = r19 >> 2;
+	r20 = (r20 + -1)|0;
+	r19 = (r19 + 4)|0;
+	r22 = (r15 + 4)|0;
+	r15 = r15 >> 2;
+	r21 = heap32[(r21)];
+	heap32[(r15)] = r21;
+	r15 = r22;
+if(!(r20 !=0)) //_LBB235_81
+{
+break _100;
+}
+}
+}
+} while(0);
+if(!(r6 ==0)) //_LBB235_84
+{
+	r15 = gNumAlignedFree;
+	r15 = r15 >> 2;
+	r19 = heap32[(r15)];
+	r19 = (r19 + 1)|0;
+	r6 = r6 >> 2;
+	heap32[(r15)] = r19;
+	r6 = heap32[(r6+-1)];
+	heap32[(g0)] = r6;
+	free(i7);
+}
+	if(r7 <r16) //_LBB235_86
+{
+	r6 = r4;
+	heap32[(fp+-1)] = r16;
+}
+else{
+	r6 = r4;
+	heap32[(fp+-1)] = r16;
+break _90;
+}
+}
+_111: while(true){
+	r4 = r7 << 2;
+	r4 = (r6 + r4)|0;
+	r7 = (r7 + 1)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = 0;
+if(!(r16 !=r7)) //_LBB235_87
+{
+break _90;
+}
+}
+}
+}
+} while(0);
+_114: do {
+if(!(r16 <1)) //_LBB235_94
+{
+	r4 = r8;
+	r7 = r16;
+_116: while(true){
+	r7 = (r7 + -1)|0;
+	r15 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = -1;
+	r4 = r15;
+if(!(r7 !=0)) //_LBB235_90
+{
+break _116;
+}
+}
+if(!(r16 <1)) //_LBB235_94
+{
+	r4 = r6;
+	r7 = r16;
+_120: while(true){
+	r7 = (r7 + -1)|0;
+	r15 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = -1;
+	r4 = r15;
+if(!(r7 !=0)) //_LBB235_93
+{
+break _114;
+}
+}
+}
+}
+} while(0);
+_123: do {
+	if(r10 >0) //_LBB235_96
+{
+	r4 = (r16 + -1)|0;
+	r7 = 0;
+_125: while(true){
+	r15 = r7 << 3;
+	r15 = (r11 + r15)|0;
+	r15 = r15 >> 2;
+	r15 = heap32[(r15)];
+	r19 = r15 << 15;
+	r19 = r19 ^ -1;
+	r15 = (r15 + r19)|0;
+	r19 = r15 >> 10;
+	r15 = r19 ^ r15;
+	r15 = (r15 * 9)|0;
+	r19 = r15 >> 6;
+	r15 = r19 ^ r15;
+	r19 = r15 << 11;
+	r19 = r19 ^ -1;
+	r15 = (r15 + r19)|0;
+	r19 = r15 >> 16;
+	r15 = r19 ^ r15;
+	r15 = r15 & r4;
+	r15 = r15 << 2;
+	r15 = (r8 + r15)|0;
+	r15 = r15 >> 2;
+	r19 = r7 << 2;
+	r19 = (r6 + r19)|0;
+	r20 = heap32[(r15)];
+	r19 = r19 >> 2;
+	r21 = (r7 + 1)|0;
+	heap32[(r19)] = r20;
+	heap32[(r15)] = r7;
+	r7 = r21;
+	if(r10 ==r21) //_LBB235_95
+{
+break _123;
+}
+}
+}
+} while(0);
+	r7 = r16;
+	r10 = r16;
+}
+	r4 = (r16 + -1)|0;
+	r15 = r14 & r4;
+}
+	r4 = r15 << 2;
+	r4 = (r8 + r4)|0;
+	r4 = r4 >> 2;
+	r14 = (r6 + r18)|0;
+	r14 = r14 >> 2;
+	r15 = heap32[(r4)];
+	heap32[(r14)] = r15;
+	heap32[(r4)] = r5;
+__label__ = 88;
+}
+if (__label__ == 88){
+	r4 = r13 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+14)];
+	heap32[(g0)] = r13;
+	r5 = heap32[(fp+-2)];
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r16;
+	r5 = r17;
+}
+	r13 = heap32[(r0+2)];
+if(!(r13 >r12)) //_LBB235_7
+{
+break _10;
+}
+}
+if(!(r11 ==0)) //_LBB235_104
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	r2 = r11 >> 2;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+if(!(r3 ==0)) //_LBB235_106
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	r2 = r3 >> 2;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+if(!(r6 ==0)) //_LBB235_108
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	r2 = r6 >> 2;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+if(!(r8 ==0)) //_LBB235_110
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	r2 = r8 >> 2;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+}
+}
+	return;
+}
+
+function _ZNK11btMatrix3x311getRotationER12btQuaternion(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r1+5)];
+	f2 = heapFloat[(r1+10)];
+	f3 = f0+f1;
+	f3 = f3+f2;
+	r2 = heap32[(fp+1)];
+	f4 =                         0;
+	if(f3 <=f4) //_LBB236_2
+{
+	if(f0 >=f1) //_LBB236_4
+{
+	r1 = 2;
+	r3 = 0;
+	r1 = f0 < f2 ? r1 : r3;
+}
+else{
+	r1 = 2;
+	r3 = 1;
+	r1 = f1 < f2 ? r1 : r3;
+}
+	r3 = (r1 + 1)|0;
+	r3 = (r3 % 3)|0;
+	r4 = (r1 + 2)|0;
+	r4 = (r4 % 3)|0;
+	r5 = r1 << 4;
+	r6 = r3 << 4;
+	r7 = r4 << 4;
+	r5 = (r0 + r5)|0;
+	r1 = r1 << 2;
+	r6 = (r0 + r6)|0;
+	r3 = r3 << 2;
+	r0 = (r0 + r7)|0;
+	r4 = r4 << 2;
+	r7 = (r5 + r1)|0;
+	r8 = (r6 + r3)|0;
+	r7 = r7 >> 2;
+	r8 = r8 >> 2;
+	r9 = (r0 + r4)|0;
+	r9 = r9 >> 2;
+	f0 = heapFloat[(r7)];
+	f1 = heapFloat[(r8)];
+	f2 = heapFloat[(r9)];
+	f0 = f0-f1;
+	f0 = f0-f2;
+	f1 =                         1;
+	f0 = f0+f1;
+	r7 = sp + -16;
+	heapFloat[(g0)] = f0;
+	r8 = (r7 + r1)|0;
+	f0 =                       0.5;
+	sqrtf(i7);
+	r9 = (r0 + r3)|0;
+	r10 = (r6 + r4)|0;
+	r8 = r8 >> 2;
+	f2 = f_g0*f0;
+	r9 = r9 >> 2;
+	heapFloat[(r8)] = f2;
+	r8 = r10 >> 2;
+	f2 = heapFloat[(r9)];
+	f3 = heapFloat[(r8)];
+	f2 = f2-f3;
+	f0 = f0/f_g0;
+	r6 = (r6 + r1)|0;
+	r8 = (r5 + r3)|0;
+	r9 = r7 >> 2;
+	f1 = f2*f0;
+	r6 = r6 >> 2;
+	heapFloat[(r9+3)] = f1;
+	r8 = r8 >> 2;
+	f1 = heapFloat[(r6)];
+	f2 = heapFloat[(r8)];
+	r3 = (r7 + r3)|0;
+	f1 = f1+f2;
+	r0 = (r0 + r1)|0;
+	r1 = (r5 + r4)|0;
+	r3 = r3 >> 2;
+	f1 = f1*f0;
+	r0 = r0 >> 2;
+	heapFloat[(r3)] = f1;
+	r1 = r1 >> 2;
+	f1 = heapFloat[(r0)];
+	f2 = heapFloat[(r1)];
+	r0 = (r7 + r4)|0;
+	f1 = f1+f2;
+	r0 = r0 >> 2;
+	f0 = f1*f0;
+	heapFloat[(r0)] = f0;
+	f1 = heapFloat[(fp+-4)];
+	f3 = heapFloat[(r9+1)];
+	f0 = heapFloat[(r9+2)];
+	f2 = heapFloat[(r9+3)];
+}
+else{
+	f0 =                         1;
+	f0 = f3+f0;
+	heapFloat[(g0)] = f0;
+	r0 = sp + -16;
+	f0 =                       0.5;
+	sqrtf(i7);
+	f2 = f_g0*f0;
+	r0 = r0 >> 2;
+	heapFloat[(r0+3)] = f2;
+	f3 = heapFloat[(r1+9)];
+	f4 = heapFloat[(r1+6)];
+	f3 = f3-f4;
+	f0 = f0/f_g0;
+	f1 = f3*f0;
+	heapFloat[(fp+-4)] = f1;
+	f3 = heapFloat[(r1+2)];
+	f4 = heapFloat[(r1+8)];
+	f3 = f3-f4;
+	f3 = f3*f0;
+	heapFloat[(r0+1)] = f3;
+	f4 = heapFloat[(r1+4)];
+	f5 = heapFloat[(r1+1)];
+	f4 = f4-f5;
+	f0 = f4*f0;
+	heapFloat[(r0+2)] = f0;
+}
+	r0 = r2 >> 2;
+	heapFloat[(r0)] = f1;
+	heapFloat[(r0+1)] = f3;
+	heapFloat[(r0+2)] = f0;
+	heapFloat[(r0+3)] = f2;
+	return;
+}
+
+function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+var __label__ = 0;
+	i7 = sp + -80;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+4)];
+	f1 = heapFloat[(r0+9)];
+	f2 = heapFloat[(r0+6)];
+	f3 = heapFloat[(r0+8)];
+	f4 = heapFloat[(r0+5)];
+	f5 = heapFloat[(r0+10)];
+	f6 = f4*f5;
+	f7 = f2*f1;
+	f8 = f2*f3;
+	f9 = f0*f5;
+	f10 = heapFloat[(r0)];
+	f11 = heapFloat[(r0+1)];
+	f6 = f6-f7;
+	f7 = f8-f9;
+	f8 = f0*f1;
+	f9 = f4*f3;
+	f12 = heapFloat[(r0+2)];
+	f8 = f8-f9;
+	f9 = f10*f6;
+	f13 = f11*f7;
+	f9 = f9+f13;
+	f13 = f12*f8;
+	r0 = heap32[(fp+1)];
+	f14 =                         1;
+	f9 = f9+f13;
+	r0 = r0 >> 2;
+	f9 = f14/f9;
+	f13 = f12*f1;
+	f15 = f11*f5;
+	f5 = f10*f5;
+	f16 = f12*f3;
+	f13 = f13-f15;
+	f5 = f5-f16;
+	f15 = f11*f2;
+	f16 = f12*f4;
+	f12 = f12*f0;
+	f2 = f10*f2;
+	f3 = f11*f3;
+	f1 = f10*f1;
+	f6 = f6*f9;
+	f17 = heapFloat[(r0)];
+	f7 = f7*f9;
+	f18 = heapFloat[(r0+1)];
+	f15 = f15-f16;
+	f2 = f12-f2;
+	f12 = f13*f9;
+	f5 = f5*f9;
+	f1 = f3-f1;
+	f3 = f10*f4;
+	f0 = f11*f0;
+	f4 = f6*f17;
+	f10 = f7*f18;
+	f8 = f8*f9;
+	f11 = heapFloat[(r0+2)];
+	f13 = heapFloat[(r0+8)];
+	f15 = f15*f9;
+	f16 = heapFloat[(r0+4)];
+	f19 = heapFloat[(r0+9)];
+	f2 = f2*f9;
+	f20 = heapFloat[(r0+5)];
+	f0 = f3-f0;
+	f1 = f1*f9;
+	f3 = heapFloat[(r0+10)];
+	f21 = heapFloat[(r0+6)];
+	f22 = f12*f17;
+	f23 = f5*f18;
+	f4 = f4+f10;
+	f10 = f8*f11;
+	f0 = f0*f9;
+	r0 = sp + -48;
+	f9 = f15*f17;
+	f17 = f2*f18;
+	f18 = f22+f23;
+	f22 = f1*f11;
+	f4 = f4+f10;
+	r1 = r0 >> 2;
+	f9 = f9+f17;
+	f10 = f0*f11;
+	f11 = f18+f22;
+	heapFloat[(fp+-12)] = f4;
+	f4 = f6*f16;
+	f17 = f7*f20;
+	f9 = f9+f10;
+	heapFloat[(r1+1)] = f11;
+	heapFloat[(r1+2)] = f9;
+	f9 = f12*f16;
+	f10 = f5*f20;
+	f4 = f4+f17;
+	f11 = f8*f21;
+	f16 = f15*f16;
+	f17 = f2*f20;
+	f9 = f9+f10;
+	f10 = f1*f21;
+	f4 = f4+f11;
+	heap32[(r1+3)] = 0;
+	f11 = f16+f17;
+	f16 = f0*f21;
+	f9 = f9+f10;
+	heapFloat[(r1+4)] = f4;
+	f4 = f6*f13;
+	f6 = f7*f19;
+	f7 = f11+f16;
+	heapFloat[(r1+5)] = f9;
+	heapFloat[(r1+6)] = f7;
+	f7 = f12*f13;
+	f5 = f5*f19;
+	f4 = f4+f6;
+	f6 = f8*f3;
+	f8 = f15*f13;
+	f2 = f2*f19;
+	f5 = f7+f5;
+	f1 = f1*f3;
+	f4 = f4+f6;
+	heap32[(r1+7)] = 0;
+	f2 = f8+f2;
+	f0 = f0*f3;
+	f1 = f5+f1;
+	heapFloat[(r1+8)] = f4;
+	f0 = f2+f0;
+	heapFloat[(r1+9)] = f1;
+	heapFloat[(r1+10)] = f0;
+	heap32[(r1+11)] = 0;
+	r1 = sp + -64;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
+	r0 = r1 >> 2;
+	f0 = heapFloat[(fp+-16)];
+	f1 = heapFloat[(r0+1)];
+	f2 = heapFloat[(r0+2)];
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f5 = heapFloat[(r0+3)];
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	f4 = f5*f5;
+	f3 = f3+f4;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	f3 = f_g0;
+	f4 =                         0;
+	if(f3 !=f4) //_LBB245_2
+{
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp+3)];
+	f3 = f14/f3;
+	f0 = f0*f3;
+	f1 = f1*f3;
+	heapFloat[(fp+-16)] = f0;
+	f2 = f2*f3;
+	heapFloat[(r0+1)] = f1;
+	f4 =                        -1;
+	f3 = f5*f3;
+	heapFloat[(r0+2)] = f2;
+	f4 = f3 < f4 ? f4 : f3;
+	heapFloat[(r0+3)] = f3;
+	f3 = f4 > f14 ? f14 : f4;
+	heapFloat[(g0)] = f3;
+	acosf(i7);
+	r0 = r2 >> 2;
+	f3 = f_g0+f_g0;
+	r1 = r1 >> 2;
+	heapFloat[(r0)] = f3;
+	heapFloat[(r1)] = f0;
+	f0 = f0*f0;
+	f3 = f1*f1;
+	heapFloat[(r1+1)] = f1;
+	f0 = f0+f3;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	heapFloat[(r1+2)] = f2;
+	heap32[(r1+3)] = 0;
+	f1 =   1.4210854715202004e-014;
+	if(f0 >=f1) //_LBB245_4
+{
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f0 = f14/f_g0;
+	f1 = heapFloat[(r1)];
+	f1 = f1*f0;
+	heapFloat[(r1)] = f1;
+	f1 = heapFloat[(r1+1)];
+	f1 = f1*f0;
+	heapFloat[(r1+1)] = f1;
+	f1 = heapFloat[(r1+2)];
+	f0 = f1*f0;
+	heapFloat[(r1+2)] = f0;
+	return;
+}
+else{
+	heap32[(r1)] = 1065353216;
+	heap32[(r1+1)] = 0;
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = 0;
+	return;
+}
+}
+else{
+	r0 = _2E_str584;
+	r1 = _2E_str685;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 188;
+	_assert(i7);
+}
+}
+
+function _ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+var __label__ = 0;
+	i7 = sp + -528;var g0 = i7>>2; // save stack
+	r0 = _2E_str1089;
+	r1 = heap32[(fp+2)];
+	heap32[(g0)] = r0;
+	r0 = sp + -112;
+	r1 = r1 >> 2;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r2 = r0 >> 2;
+	heap32[(fp+-28)] = heap32[(r1)];
+	heap32[(r2+1)] = heap32[(r1+1)];
+	heap32[(r2+2)] = heap32[(r1+2)];
+	heap32[(r2+3)] = heap32[(r1+3)];
+	heap32[(r2+4)] = heap32[(r1+4)];
+	heap32[(r2+5)] = heap32[(r1+5)];
+	heap32[(r2+6)] = heap32[(r1+6)];
+	heap32[(r2+7)] = heap32[(r1+7)];
+	heap32[(r2+8)] = heap32[(r1+8)];
+	heap32[(r2+9)] = heap32[(r1+9)];
+	heap32[(r2+10)] = heap32[(r1+10)];
+	heap32[(r2+11)] = heap32[(r1+11)];
+	heap32[(r2+12)] = heap32[(r1+12)];
+	heap32[(r2+13)] = heap32[(r1+13)];
+	r3 = heap32[(fp+3)];
+	heap32[(r2+14)] = heap32[(r1+14)];
+	r4 = sp + -176;
+	r3 = r3 >> 2;
+	heap32[(r2+15)] = heap32[(r1+15)];
+	r2 = r4 >> 2;
+	heap32[(fp+-44)] = heap32[(r3)];
+	heap32[(r2+1)] = heap32[(r3+1)];
+	heap32[(r2+2)] = heap32[(r3+2)];
+	heap32[(r2+3)] = heap32[(r3+3)];
+	heap32[(r2+4)] = heap32[(r3+4)];
+	heap32[(r2+5)] = heap32[(r3+5)];
+	heap32[(r2+6)] = heap32[(r3+6)];
+	heap32[(r2+7)] = heap32[(r3+7)];
+	heap32[(r2+8)] = heap32[(r3+8)];
+	heap32[(r2+9)] = heap32[(r3+9)];
+	heap32[(r2+10)] = heap32[(r3+10)];
+	heap32[(r2+11)] = heap32[(r3+11)];
+	heap32[(r2+12)] = heap32[(r3+12)];
+	heap32[(r2+13)] = heap32[(r3+13)];
+	heap32[(r2+14)] = heap32[(r3+14)];
+	heap32[(r2+15)] = heap32[(r3+15)];
+	r2 = sp + -24;
+	r5 = sp + -28;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r5;
+	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r2+2)];
+	f1 = heapFloat[(fp+-7)];
+	f2 = heapFloat[(r2+1)];
+	f3 = heapFloat[(fp+-6)];
+	r2 = sp + -424;
+	f3 = f3*f1;
+	r5 = r2 >> 2;
+	f2 = f2*f1;
+	heapFloat[(fp+-106)] = f3;
+	f0 = f0*f1;
+	heapFloat[(r5+1)] = f2;
+	heapFloat[(r5+2)] = f0;
+	r6 = sp + -440;
+	heap32[(r5+3)] = 0;
+	r5 = r6 >> 2;
+	heap32[(fp+-110)] = 0;
+	heap32[(r5+1)] = 0;
+	heap32[(r5+2)] = 0;
+	r7 = sp + -504;
+	heap32[(r5+3)] = 0;
+	r5 = r7 >> 2;
+	heap32[(fp+-126)] = 1065353216;
+	heap32[(r5+1)] = 0;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+	heap32[(r5+4)] = 0;
+	heap32[(r5+5)] = 1065353216;
+	heap32[(r5+6)] = 0;
+	heap32[(r5+7)] = 0;
+	heap32[(r5+8)] = 0;
+	heap32[(r5+9)] = 0;
+	heap32[(r5+10)] = 1065353216;
+	heap32[(r5+11)] = 0;
+	heap32[(r5+12)] = 0;
+	heap32[(r5+13)] = 0;
+	heap32[(r5+14)] = 0;
+	heap32[(r5+15)] = 0;
+	r8 = sp + -48;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r8;
+	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
+	r8 = r8 >> 2;
+	f0 = heapFloat[(fp+-12)];
+	f1 = heapFloat[(r8+1)];
+	f2 = heapFloat[(r8+2)];
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f5 = heapFloat[(r8+3)];
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	f4 = f5*f5;
+	f6 =                         2;
+	f3 = f3+f4;
+	f3 = f6/f3;
+	f4 = f2*f3;
+	f6 = f1*f3;
+	f7 = f1*f6;
+	f2 = f2*f4;
+	f8 = f7+f2;
+	f9 =                         1;
+	f10 = f0*f6;
+	f11 = f5*f4;
+	f8 = f9-f8;
+	f12 = f0*f4;
+	f6 = f5*f6;
+	f13 = f10-f11;
+	heapFloat[(fp+-126)] = f8;
+	f3 = f0*f3;
+	f8 = f12+f6;
+	heapFloat[(r5+1)] = f13;
+	f0 = f0*f3;
+	heapFloat[(r5+2)] = f8;
+	f2 = f0+f2;
+	f8 = f10+f11;
+	heap32[(r5+3)] = 0;
+	f1 = f1*f4;
+	f3 = f5*f3;
+	f2 = f9-f2;
+	heapFloat[(r5+4)] = f8;
+	f4 = f1-f3;
+	heapFloat[(r5+5)] = f2;
+	heapFloat[(r5+6)] = f4;
+	f2 = f12-f6;
+	heap32[(r5+7)] = 0;
+	f0 = f0+f7;
+	f1 = f1+f3;
+	heapFloat[(r5+8)] = f2;
+	f0 = f9-f0;
+	heapFloat[(r5+9)] = f1;
+	heapFloat[(r5+10)] = f0;
+	heap32[(r5+11)] = 0;
+	r5 = heap32[(fp+1)];
+	r8 = sp + -192;
+	r9 = sp + -208;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r2;
+	heap32[(g0+4)] = r8;
+	heap32[(g0+5)] = r9;
+	r2 = _ZTV21btSingleSweepCallback;
+	r6 = sp + -408;
+	r2 = (r2 + 8)|0;
+	_ZNK16btCollisionShape21calculateTemporalAabbERK11btTransformRK9btVector3S5_fRS3_S6_(i7);
+	r7 = r6 >> 2;
+	heap32[(fp+-102)] = r2;
+	heap32[(r7+9)] = heap32[(r1)];
+	heap32[(r7+10)] = heap32[(r1+1)];
+	heap32[(r7+11)] = heap32[(r1+2)];
+	heap32[(r7+12)] = heap32[(r1+3)];
+	heap32[(r7+13)] = heap32[(r1+4)];
+	heap32[(r7+14)] = heap32[(r1+5)];
+	heap32[(r7+15)] = heap32[(r1+6)];
+	heap32[(r7+16)] = heap32[(r1+7)];
+	heap32[(r7+17)] = heap32[(r1+8)];
+	heap32[(r7+18)] = heap32[(r1+9)];
+	heap32[(r7+19)] = heap32[(r1+10)];
+	heap32[(r7+20)] = heap32[(r1+11)];
+	f0 = heapFloat[(r1+12)];
+	heapFloat[(r7+21)] = f0;
+	f1 = heapFloat[(r1+13)];
+	heapFloat[(r7+22)] = f1;
+	f2 = heapFloat[(r1+14)];
+	heapFloat[(r7+23)] = f2;
+	heap32[(r7+24)] = heap32[(r1+15)];
+	heap32[(r7+25)] = heap32[(r3)];
+	heap32[(r7+26)] = heap32[(r3+1)];
+	heap32[(r7+27)] = heap32[(r3+2)];
+	heap32[(r7+28)] = heap32[(r3+3)];
+	heap32[(r7+29)] = heap32[(r3+4)];
+	heap32[(r7+30)] = heap32[(r3+5)];
+	heap32[(r7+31)] = heap32[(r3+6)];
+	heap32[(r7+32)] = heap32[(r3+7)];
+	heap32[(r7+33)] = heap32[(r3+8)];
+	heap32[(r7+34)] = heap32[(r3+9)];
+	heap32[(r7+35)] = heap32[(r3+10)];
+	heap32[(r7+36)] = heap32[(r3+11)];
+	f3 = heapFloat[(r3+12)];
+	heapFloat[(r7+37)] = f3;
+	f4 = heapFloat[(r3+13)];
+	heapFloat[(r7+38)] = f4;
+	f5 = heapFloat[(r3+14)];
+	heapFloat[(r7+39)] = f5;
+	r1 = heap32[(fp)];
+	heap32[(r7+40)] = heap32[(r3+15)];
+	r3 = heap32[(fp+4)];
+	heap32[(r7+45)] = r1;
+	heap32[(r7+46)] = r3;
+	f0 = f3-f0;
+	f1 = f4-f1;
+	heap32[(r7+47)] = heap32[(fp+5)];
+	f2 = f5-f2;
+	heap32[(r7+48)] = r5;
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	f3 = f9/f_g0;
+	f4 = f0*f3;
+	f5 = f2*f3;
+	f3 = f1*f3;
+	f6 =                         0;
+	if(f4 !=f6) //_LBB246_2
+{
+	f7 = f9/f4;
+}
+else{
+	f7 =        999999984306749440;
+}
+	heapFloat[(r7+1)] = f7;
+	if(f3 !=f6) //_LBB246_5
+{
+	f8 = f9/f3;
+}
+else{
+	f8 =        999999984306749440;
+}
+	heapFloat[(r7+2)] = f8;
+	if(f5 !=f6) //_LBB246_8
+{
+	f9 = f9/f5;
+}
+else{
+	f9 =        999999984306749440;
+}
+	r3 = f7 < f6;
+	r5 = f8 < f6;
+	r3 = r3 & 1;
+	heapFloat[(r7+3)] = f9;
+	r10 = f9 < f6;
+	f0 = f4*f0;
+	f1 = f3*f1;
+	r5 = r5 & 1;
+	heap32[(r7+5)] = r3;
+	f0 = f0+f1;
+	f1 = f5*f2;
+	r3 = r10 & 1;
+	heap32[(r7+6)] = r5;
+	f0 = f0+f1;
+	heap32[(r7+7)] = r3;
+	r1 = r1 >> 2;
+	heapFloat[(r7+8)] = f0;
+	r1 = heap32[(r1+20)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+6)];
+	r0 = (r0 + 48)|0;
+	r4 = (r4 + 48)|0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r6;
+	heap32[(g0+4)] = r8;
+	heap32[(g0+5)] = r9;
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r0 = r0 >> 2;
+	heap32[(fp+-102)] = r2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_13: do {
+if(!(r3 !=0)) //_LBB246_15
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB246_12
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB246_15
+{
+break _13;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	return;
+}
+
+function _ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -1472;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+4)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+1)];
+	r3 = heap32[(fp)];
+	r4 = heap32[(fp+1)];
+	r5 = heap32[(fp+2)];
+	r6 = heap32[(fp+3)];
+	r7 = heap32[(fp+5)];
+	r8 = heap32[(fp+6)];
+	f0 = heapFloat[(fp+7)];
+_1: do {
+	if(r2 >19) //_LBB247_6
+{
+	r9 = (r2 + -21)|0;
+	if(uint(r9) >uint(8)) //_LBB247_30
+{
+	if(r2 !=31) //_LBB247_5
+{
+break _1;
+}
+else{
+	r0 = _2E_str1493;
+	heap32[(g0)] = r0;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r0 = heap32[(r1+4)];
+if(!(r0 <1)) //_LBB247_34
+{
+	r0 = 0;
+_8: while(true){
+	r2 = (r0 * 20)|0;
+	r9 = heap32[(r1+6)];
+	r2 = r2 << 2;
+	r2 = (r9 + r2)|0;
+	r2 = r2 >> 2;
+	r9 = r7 >> 2;
+	f1 = heapFloat[(r2)];
+	f2 = heapFloat[(r9)];
+	f3 = heapFloat[(r2+4)];
+	f4 = heapFloat[(r9+1)];
+	f5 = heapFloat[(r2+1)];
+	f6 = heapFloat[(r2+5)];
+	f7 = f1*f2;
+	f8 = f3*f4;
+	f9 = heapFloat[(r2+8)];
+	f10 = heapFloat[(r9+2)];
+	f11 = heapFloat[(r9+8)];
+	f12 = heapFloat[(r2+2)];
+	f13 = heapFloat[(r9+4)];
+	f14 = heapFloat[(r2+12)];
+	f15 = heapFloat[(r9+9)];
+	f16 = heapFloat[(r2+6)];
+	f17 = heapFloat[(r9+5)];
+	f18 = heapFloat[(r2+13)];
+	f19 = heapFloat[(r2+9)];
+	f20 = heapFloat[(r9+10)];
+	f21 = heapFloat[(r2+10)];
+	f22 = heapFloat[(r9+6)];
+	f23 = heapFloat[(r2+14)];
+	f24 = f5*f2;
+	f25 = f6*f4;
+	f7 = f7+f8;
+	f8 = f9*f10;
+	r2 = heap32[(r2+16)];
+	f26 = heapFloat[(r9+14)];
+	f27 = heapFloat[(r9+13)];
+	f28 = heapFloat[(r9+12)];
+	r9 = sp + -1408;
+	f29 = f12*f2;
+	f30 = f16*f4;
+	f24 = f24+f25;
+	f25 = f19*f10;
+	f7 = f7+f8;
+	r10 = r9 >> 2;
+	f8 = f29+f30;
+	f29 = f21*f10;
+	f24 = f24+f25;
+	heapFloat[(fp+-352)] = f7;
+	f7 = f1*f13;
+	f25 = f3*f17;
+	f8 = f8+f29;
+	heapFloat[(r10+1)] = f24;
+	heapFloat[(r10+2)] = f8;
+	f8 = f5*f13;
+	f24 = f6*f17;
+	f7 = f7+f25;
+	f25 = f9*f22;
+	f29 = f12*f13;
+	f30 = f16*f17;
+	f8 = f8+f24;
+	f24 = f19*f22;
+	f7 = f7+f25;
+	heap32[(r10+3)] = 0;
+	f25 = f29+f30;
+	f29 = f21*f22;
+	f8 = f8+f24;
+	heapFloat[(r10+4)] = f7;
+	f1 = f1*f11;
+	f3 = f3*f15;
+	f7 = f25+f29;
+	heapFloat[(r10+5)] = f8;
+	heapFloat[(r10+6)] = f7;
+	f5 = f5*f11;
+	f6 = f6*f15;
+	f1 = f1+f3;
+	f3 = f9*f20;
+	f7 = f12*f11;
+	f8 = f16*f15;
+	f5 = f5+f6;
+	f6 = f19*f20;
+	f1 = f1+f3;
+	heap32[(r10+7)] = 0;
+	f2 = f2*f14;
+	f3 = f4*f18;
+	f4 = f7+f8;
+	f7 = f21*f20;
+	f5 = f5+f6;
+	heapFloat[(r10+8)] = f1;
+	f1 = f13*f14;
+	f6 = f17*f18;
+	f2 = f2+f3;
+	f3 = f10*f23;
+	f4 = f4+f7;
+	heapFloat[(r10+9)] = f5;
+	f2 = f2+f3;
+	heapFloat[(r10+10)] = f4;
+	f3 = f11*f14;
+	f4 = f15*f18;
+	f1 = f1+f6;
+	f5 = f22*f23;
+	f1 = f1+f5;
+	f3 = f3+f4;
+	f4 = f20*f23;
+	f2 = f2+f28;
+	heap32[(r10+11)] = 0;
+	f3 = f3+f4;
+	f1 = f1+f27;
+	heapFloat[(r10+12)] = f2;
+	f2 = f3+f26;
+	heapFloat[(r10+13)] = f1;
+	heapFloat[(r10+14)] = f2;
+	r11 = r6 >> 2;
+	heap32[(r10+15)] = 0;
+	r10 = heap32[(r11+48)];
+	r12 = 1;
+	heap32[(r11+48)] = r2;
+	r13 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder;
+	r14 = -1;
+	heap16[(sp+-1424)>>1] = r12;
+	r12 = sp + -1432;
+	heap16[(sp+-1422)>>1] = r14;
+	r13 = (r13 + 8)|0;
+	r14 = r12 >> 2;
+	heap32[(fp+-358)] = r13;
+	heap32[(r14+3)] = r8;
+	r15 = r8 >> 2;
+	heap32[(r14+4)] = r0;
+	heap32[(r14+1)] = heap32[(r15+1)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r6;
+	heap32[(g0+4)] = r2;
+	heap32[(g0+5)] = r9;
+	heap32[(g0+6)] = r12;
+	heapFloat[(g0+7)] = f0;
+	_ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i7);
+	r0 = (r0 + 1)|0;
+	heap32[(r11+48)] = r10;
+	heap32[(fp+-358)] = r13;
+	r2 = heap32[(r1+4)];
+if(!(r2 >r0)) //_LBB247_33
+{
+break _8;
+}
+}
+}
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+	if(r3 !=0) //_LBB247_5
+{
+break _1;
+}
+else{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB247_37
+{
+	r1 = sp + -24;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-6)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB247_5
+{
+break _1;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+	return;
+}
+}
+}
+else{
+	if(r2 !=21) //_LBB247_11
+{
+	r2 = r5 >> 2;
+	r9 = r7 >> 2;
+	f0 = heapFloat[(r9)];
+	f1 = heapFloat[(r2)];
+	f2 = heapFloat[(r9+4)];
+	f3 = heapFloat[(r2+4)];
+	r10 = r4 >> 2;
+	f4 = heapFloat[(r2+1)];
+	f5 = heapFloat[(r2+5)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r9+8)];
+	f9 = heapFloat[(r2+8)];
+	f10 = heapFloat[(r9+2)];
+	f11 = heapFloat[(r2+2)];
+	f12 = heapFloat[(r9+1)];
+	f13 = heapFloat[(r2+12)];
+	f14 = heapFloat[(r10+12)];
+	f15 = heapFloat[(r9+6)];
+	f16 = heapFloat[(r2+6)];
+	f17 = heapFloat[(r9+5)];
+	f18 = heapFloat[(r2+13)];
+	f19 = heapFloat[(r10+13)];
+	f20 = heapFloat[(r9+13)];
+	f21 = heapFloat[(r2+10)];
+	f22 = heapFloat[(r9+10)];
+	f23 = heapFloat[(r2+9)];
+	f24 = heapFloat[(r9+9)];
+	f25 = heapFloat[(r2+14)];
+	heapFloat[(fp+-360)] = f25;
+	f26 = heapFloat[(r10+14)];
+	f27 = heapFloat[(r9+14)];
+	f28 = heapFloat[(r9+12)];
+	heapFloat[(fp+-359)] = f28;
+	f29 = f4*f0;
+	f30 = f5*f2;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	r2 = sp + -1056;
+	f25 = f11*f0;
+	f28 = f16*f2;
+	f29 = f29+f30;
+	f30 = f23*f8;
+	f6 = f6+f7;
+	r9 = r2 >> 2;
+	f7 = f25+f28;
+	f25 = f21*f8;
+	f28 = f29+f30;
+	heapFloat[(fp+-264)] = f6;
+	f6 = f1*f12;
+	f29 = f3*f17;
+	f7 = f7+f25;
+	heapFloat[(r9+1)] = f28;
+	heapFloat[(r9+2)] = f7;
+	f7 = f4*f12;
+	f25 = f5*f17;
+	f6 = f6+f29;
+	f28 = f9*f24;
+	f29 = f11*f12;
+	f30 = f16*f17;
+	f7 = f7+f25;
+	f25 = f23*f24;
+	f6 = f6+f28;
+	heap32[(r9+3)] = 0;
+	f28 = f29+f30;
+	f29 = f21*f24;
+	f7 = f7+f25;
+	heapFloat[(r9+4)] = f6;
+	f1 = f1*f10;
+	f3 = f3*f15;
+	f6 = f28+f29;
+	heapFloat[(r9+5)] = f7;
+	heapFloat[(r9+6)] = f6;
+	f4 = f4*f10;
+	f5 = f5*f15;
+	f1 = f1+f3;
+	f3 = f9*f22;
+	f6 = f11*f10;
+	f7 = f16*f15;
+	f4 = f4+f5;
+	f5 = f23*f22;
+	f1 = f1+f3;
+	heap32[(r9+7)] = 0;
+	f3 = f6+f7;
+	f6 = f21*f22;
+	f4 = f4+f5;
+	heapFloat[(r9+8)] = f1;
+	f1 = f3+f6;
+	heapFloat[(r9+9)] = f4;
+	heapFloat[(r9+10)] = f1;
+	heap32[(r9+11)] = 0;
+	heap32[(r9+12)] = 0;
+	heap32[(r9+13)] = 0;
+	heap32[(r9+14)] = 0;
+	heap32[(r9+15)] = 0;
+	r9 = heap32[(r1)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r9 = sp + -1280;
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	heap32[(g0+4)] = r7;
+	heapFloat[(g0+5)] = f_g0;
+	r4 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0;
+	_ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i7);
+	r4 = (r4 + 8)|0;
+	r5 = r9 >> 2;
+	heap32[(fp+-320)] = r4;
+	heap32[(r5+52)] = r8;
+	heap32[(r5+53)] = r6;
+	r4 = r8 >> 2;
+	heap32[(r5+54)] = r0;
+	r6 = r3 >> 2;
+	heap32[(r5+50)] = heap32[(r4+1)];
+	r4 = heap32[(r6)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	f28 = heapFloat[(fp+-359)];
+	f1 = -f28;
+	r5 = sp + -1296;
+	r6 = sp + -1312;
+	f3 = f0*f14;
+	f4 = f2*f19;
+	f5 = f0*f1;
+	f6 = f2*f20;
+	f3 = f3+f4;
+	f4 = f8*f26;
+	f5 = f5-f6;
+	f6 = f8*f27;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r6;
+	f7 = f12*f14;
+	f9 = f17*f19;
+	f11 = f12*f1;
+	f16 = f17*f20;
+	f3 = f3+f4;
+	f4 = f5-f6;
+	f5 = f10*f14;
+	f6 = f15*f19;
+	f1 = f10*f1;
+	f14 = f15*f20;
+	f7 = f7+f9;
+	f9 = f24*f26;
+	f11 = f11-f16;
+	f16 = f24*f27;
+	f3 = f3+f4;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r2 = sp + -1328;
+	f0 = f0*f13;
+	f2 = f2*f18;
+	f10 = f10*f13;
+	f15 = f15*f18;
+	f12 = f12*f13;
+	f13 = f17*f18;
+	f5 = f5+f6;
+	f6 = f22*f26;
+	f1 = f1-f14;
+	f14 = f22*f27;
+	f7 = f7+f9;
+	f9 = f11-f16;
+	f7 = f7+f9;
+	f0 = f0+f2;
+	f25 = heapFloat[(fp+-360)];
+	f2 = f8*f25;
+	f8 = f10+f15;
+	f10 = f22*f25;
+	f11 = f12+f13;
+	f12 = f24*f25;
+	r3 = r2 >> 2;
+	heapFloat[(fp+-332)] = f3;
+	f5 = f5+f6;
+	f1 = f1-f14;
+	f0 = f0+f2;
+	f2 = f8+f10;
+	f6 = f11+f12;
+	f5 = f5+f1;
+	heapFloat[(r3+1)] = f7;
+	f0 = f0+f4;
+	f1 = f2+f1;
+	f2 = f6+f9;
+	heapFloat[(r3+2)] = f5;
+	heap32[(r3+3)] = 0;
+	if(f0 <f3) //_LBB247_13
+{
+	heapFloat[(fp+-332)] = f0;
+	f4 = f0;
+}
+else{
+	f4 = f3;
+}
+	if(f2 <f7) //_LBB247_16
+{
+	heapFloat[(r3+1)] = f2;
+	f6 = f2;
+}
+else{
+	f6 = f7;
+}
+	if(f1 <f5) //_LBB247_19
+{
+	heapFloat[(r3+2)] = f1;
+	f8 = f1;
+}
+else{
+	f8 = f5;
+}
+	r4 = sp + -1344;
+	r7 = r4 >> 2;
+	heapFloat[(fp+-336)] = f3;
+	heapFloat[(r7+1)] = f7;
+	heapFloat[(r7+2)] = f5;
+	heap32[(r7+3)] = 0;
+	if(f3 <f0) //_LBB247_22
+{
+	heapFloat[(fp+-336)] = f0;
+	f3 = f0;
+}
+	if(f7 <f2) //_LBB247_25
+{
+	heapFloat[(r7+1)] = f2;
+	f7 = f2;
+}
+	if(f5 <f1) //_LBB247_28
+{
+	heapFloat[(r7+2)] = f1;
+	f5 = f1;
+}
+	f0 = heapFloat[(fp+-324)];
+	f0 = f4+f0;
+	r5 = r5 >> 2;
+	heapFloat[(fp+-332)] = f0;
+	f0 = heapFloat[(r5+1)];
+	f0 = f6+f0;
+	heapFloat[(r3+1)] = f0;
+	f0 = heapFloat[(r5+2)];
+	f0 = f8+f0;
+	heapFloat[(r3+2)] = f0;
+	f0 = heapFloat[(fp+-328)];
+	f0 = f3+f0;
+	r3 = r6 >> 2;
+	heapFloat[(fp+-336)] = f0;
+	f0 = heapFloat[(r3+1)];
+	f0 = f7+f0;
+	heapFloat[(r7+1)] = f0;
+	f0 = heapFloat[(r3+2)];
+	f0 = f5+f0;
+	heapFloat[(r7+2)] = f0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+15)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+else{
+	r2 = r7 >> 2;
+	r9 = r4 >> 2;
+	f0 = heapFloat[(r2+12)];
+	f0 = -f0;
+	f1 = heapFloat[(r2)];
+	f2 = heapFloat[(r9+12)];
+	f3 = heapFloat[(r2+4)];
+	f4 = heapFloat[(r2+13)];
+	f5 = heapFloat[(r9+13)];
+	f6 = heapFloat[(r2+1)];
+	f7 = heapFloat[(r2+5)];
+	f8 = f1*f2;
+	f9 = f3*f5;
+	f10 = f1*f0;
+	f11 = f3*f4;
+	f12 = heapFloat[(r2+8)];
+	f13 = heapFloat[(r2+14)];
+	f14 = heapFloat[(r9+14)];
+	f15 = heapFloat[(r2+9)];
+	f16 = heapFloat[(r2+2)];
+	f17 = heapFloat[(r2+6)];
+	f18 = f6*f2;
+	f19 = f7*f5;
+	f20 = f6*f0;
+	f21 = f7*f4;
+	f8 = f8+f9;
+	f9 = f12*f14;
+	f10 = f10-f11;
+	f11 = f12*f13;
+	f22 = heapFloat[(r2+10)];
+	f2 = f16*f2;
+	f5 = f17*f5;
+	f0 = f16*f0;
+	f4 = f17*f4;
+	f18 = f18+f19;
+	f19 = f15*f14;
+	f20 = f20-f21;
+	f21 = f15*f13;
+	f8 = f8+f9;
+	f9 = f10-f11;
+	r2 = sp + -656;
+	f2 = f2+f5;
+	f5 = f22*f14;
+	f0 = f0-f4;
+	f4 = f22*f13;
+	f10 = f18+f19;
+	f11 = f20-f21;
+	f8 = f8+f9;
+	r9 = r2 >> 2;
+	f2 = f2+f5;
+	f0 = f0-f4;
+	f4 = f10+f11;
+	heapFloat[(fp+-164)] = f8;
+	f2 = f2+f0;
+	heapFloat[(r9+1)] = f4;
+	heapFloat[(r9+2)] = f2;
+	r10 = r5 >> 2;
+	heap32[(r9+3)] = 0;
+	f2 = heapFloat[(r10+12)];
+	f4 = heapFloat[(r10+13)];
+	f5 = heapFloat[(r10+14)];
+	f8 = f1*f2;
+	f10 = f3*f4;
+	f13 = f6*f2;
+	f14 = f7*f4;
+	f8 = f8+f10;
+	f10 = f12*f5;
+	f8 = f8+f10;
+	f2 = f16*f2;
+	f4 = f17*f4;
+	f10 = f13+f14;
+	f13 = f15*f5;
+	r9 = sp + -672;
+	f10 = f10+f13;
+	f2 = f2+f4;
+	f4 = f22*f5;
+	f5 = f8+f9;
+	f2 = f2+f4;
+	r11 = r9 >> 2;
+	f4 = f10+f11;
+	heapFloat[(fp+-168)] = f5;
+	f0 = f2+f0;
+	heapFloat[(r11+1)] = f4;
+	heapFloat[(r11+2)] = f0;
+	heap32[(r11+3)] = 0;
+	f0 = heapFloat[(r10)];
+	f2 = heapFloat[(r10+4)];
+	f4 = heapFloat[(r10+1)];
+	f5 = heapFloat[(r10+5)];
+	f8 = heapFloat[(r10+8)];
+	f9 = f0*f1;
+	f10 = f2*f3;
+	f11 = heapFloat[(r10+2)];
+	f13 = heapFloat[(r10+6)];
+	f14 = heapFloat[(r10+10)];
+	f18 = heapFloat[(r10+9)];
+	f19 = f4*f1;
+	f20 = f5*f3;
+	f9 = f9+f10;
+	f10 = f8*f12;
+	r10 = sp + -736;
+	f1 = f11*f1;
+	f3 = f13*f3;
+	f19 = f19+f20;
+	f20 = f18*f12;
+	f9 = f9+f10;
+	r11 = r10 >> 2;
+	f1 = f1+f3;
+	f3 = f14*f12;
+	f10 = f19+f20;
+	heapFloat[(fp+-184)] = f9;
+	f9 = f0*f6;
+	f12 = f2*f7;
+	f1 = f1+f3;
+	heapFloat[(r11+1)] = f10;
+	heapFloat[(r11+2)] = f1;
+	f1 = f4*f6;
+	f3 = f5*f7;
+	f9 = f9+f12;
+	f10 = f8*f15;
+	f6 = f11*f6;
+	f7 = f13*f7;
+	f1 = f1+f3;
+	f3 = f18*f15;
+	f9 = f9+f10;
+	heap32[(r11+3)] = 0;
+	f6 = f6+f7;
+	f7 = f14*f15;
+	f1 = f1+f3;
+	heapFloat[(r11+4)] = f9;
+	f0 = f0*f16;
+	f2 = f2*f17;
+	f3 = f6+f7;
+	heapFloat[(r11+5)] = f1;
+	heapFloat[(r11+6)] = f3;
+	f1 = f4*f16;
+	f3 = f5*f17;
+	f0 = f0+f2;
+	f2 = f8*f22;
+	f4 = f11*f16;
+	f5 = f13*f17;
+	f1 = f1+f3;
+	f3 = f18*f22;
+	f0 = f0+f2;
+	heap32[(r11+7)] = 0;
+	f2 = f4+f5;
+	f4 = f14*f22;
+	f1 = f1+f3;
+	heapFloat[(r11+8)] = f0;
+	f0 = f2+f4;
+	heapFloat[(r11+9)] = f1;
+	heapFloat[(r11+10)] = f0;
+	heap32[(r11+11)] = 0;
+	heap32[(r11+12)] = 0;
+	heap32[(r11+13)] = 0;
+	heap32[(r11+14)] = 0;
+	heap32[(r11+15)] = 0;
+	r11 = heap32[(r1)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r11 = sp + -960;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	heap32[(g0+4)] = r7;
+	heapFloat[(g0+5)] = f_g0;
+	r4 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback;
+	_ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i7);
+	r4 = (r4 + 8)|0;
+	r5 = r11 >> 2;
+	heap32[(fp+-240)] = r4;
+	heap32[(r5+52)] = r8;
+	heap32[(r5+53)] = r6;
+	r4 = r8 >> 2;
+	heap32[(r5+54)] = r0;
+	r0 = r3 >> 2;
+	heap32[(r5+50)] = heap32[(r4+1)];
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+2)];
+	r4 = sp + -976;
+	r5 = sp + -992;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	r0 = _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback;
+	r3 = sp + -16;
+	r6 = heap32[(r1+12)];
+	r0 = (r0 + 8)|0;
+	r7 = r3 >> 2;
+	heap32[(fp+-4)] = r0;
+	heap32[(r7+1)] = r6;
+	heap32[(r7+2)] = r11;
+	r0 = heap32[(r1+13)];
+	r1 = heapU8[r0+60];
+	if(r1 ==0) //_LBB247_10
+{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r9;
+	heap32[(g0+4)] = r4;
+	heap32[(g0+5)] = r5;
+	_ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
+	return;
+}
+else{
+	r1 = r0 >> 2;
+	r1 = heap32[(r1+14)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r9;
+	heap32[(g0+4)] = r4;
+	heap32[(g0+5)] = r5;
+	heap32[(g0+6)] = r1;
+	_ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
+	return;
+}
+}
+}
+}
+else{
+	r1 = _ZTVN12btConvexCast10CastResultE;
+	r2 = sp + -200;
+	r1 = (r1 + 8)|0;
+	r9 = r2 >> 2;
+	heap32[(fp+-50)] = r1;
+	heap32[(r9+42)] = 0;
+	r1 = sp + -560;
+	r10 = r8 >> 2;
+	heapFloat[(r9+43)] = f0;
+	r11 = r1 >> 2;
+	heap32[(r9+41)] = heap32[(r10+1)];
+	r12 = _ZTV30btGjkEpaPenetrationDepthSolver;
+	r13 = 0;
+	heap32[(r11+77)] = 953267991;
+	r11 = _ZTV27btContinuousConvexCollision;
+	r12 = (r12 + 8)|0;
+	heap8[sp+-228] = r13;
+	r13 = sp + -592;
+	r11 = (r11 + 8)|0;
+	heap32[(fp+-142)] = r12;
+	r12 = r13 >> 2;
+	heap32[(fp+-148)] = r11;
+	r11 = sp + -568;
+	heap32[(r12+1)] = r1;
+	heap32[(r12+2)] = r11;
+	heap32[(r12+3)] = r3;
+	heap32[(r12+4)] = r0;
+	heap32[(g0)] = r13;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r2;
+	_ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB247_5
+{
+	f0 = heapFloat[(r9+33)];
+	f1 = heapFloat[(r9+34)];
+	f2 = heapFloat[(r9+35)];
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	f1 =   9.9999997473787516e-005;
+if(!(f0 <=f1)) //_LBB247_5
+{
+	f1 = heapFloat[(r9+41)];
+	f2 = heapFloat[(r10+1)];
+if(!(f1 >=f2)) //_LBB247_5
+{
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f1 =                         1;
+	f2 = heapFloat[(r9+33)];
+	f0 = f1/f_g0;
+	f1 = f2*f0;
+	heapFloat[(r9+33)] = f1;
+	f2 = heapFloat[(r9+34)];
+	f2 = f2*f0;
+	heapFloat[(r9+34)] = f2;
+	f3 = heapFloat[(r9+35)];
+	f0 = f3*f0;
+	heapFloat[(r9+35)] = f0;
+	r0 = sp + -640;
+	f3 = heapFloat[(r9+41)];
+	r1 = r0 >> 2;
+	heap32[(fp+-160)] = r6;
+	heap32[(r1+1)] = 0;
+	heapFloat[(r1+2)] = f1;
+	heapFloat[(r1+3)] = f2;
+	heapFloat[(r1+4)] = f0;
+	heap32[(r1+5)] = heap32[(r9+36)];
+	heap32[(r1+6)] = heap32[(r9+37)];
+	heap32[(r1+7)] = heap32[(r9+38)];
+	heap32[(r1+8)] = heap32[(r9+39)];
+	heap32[(r1+9)] = heap32[(r9+40)];
+	heapFloat[(r1+10)] = f3;
+	r1 = heap32[(r10)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+3)];
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+var __label__ = 0;
+	i7 = sp + -1120;var g0 = i7>>2; // save stack
+	r0 = sp + -104;
+	r1 = r0 >> 2;
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = 1065353216;
+	heap32[(r1+4)] = 1065353216;
+	r2 = _ZTV13btSphereShape;
+	heap32[(r1+5)] = 1065353216;
+	r2 = (r2 + 8)|0;
+	heap32[(r1+6)] = 0;
+	heap32[(fp+-26)] = r2;
+	heap32[(r1+1)] = 8;
+	r2 = heap32[(fp+3)];
+	heap32[(r1+7)] = 0;
+	r3 = r2 >> 2;
+	heap32[(r1+11)] = 0;
+	r1 = heap32[(r3+1)];
+	r4 = heap32[(fp)];
+	r5 = heap32[(fp+1)];
+	r6 = heap32[(fp+2)];
+	r7 = heap32[(fp+4)];
+	r8 = heap32[(fp+5)];
+	if(r1 >19) //_LBB248_6
+{
+	r0 = (r1 + -21)|0;
+	if(uint(r0) >uint(8)) //_LBB248_25
+{
+if(!(r1 !=31)) //_LBB248_29
+{
+	r0 = heap32[(r3+4)];
+if(!(r0 <1)) //_LBB248_29
+{
+	r0 = 0;
+_8: while(true){
+	r1 = (r0 * 20)|0;
+	r2 = heap32[(r3+6)];
+	r1 = r1 << 2;
+	r1 = (r2 + r1)|0;
+	r1 = r1 >> 2;
+	r2 = r7 >> 2;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r2)];
+	f2 = heapFloat[(r1+4)];
+	f3 = heapFloat[(r2+1)];
+	f4 = heapFloat[(r1+1)];
+	f5 = heapFloat[(r1+5)];
+	f6 = f0*f1;
+	f7 = f2*f3;
+	f8 = heapFloat[(r1+8)];
+	f9 = heapFloat[(r2+2)];
+	f10 = heapFloat[(r2+8)];
+	f11 = heapFloat[(r1+2)];
+	f12 = heapFloat[(r2+4)];
+	f13 = heapFloat[(r1+12)];
+	f14 = heapFloat[(r2+9)];
+	f15 = heapFloat[(r1+6)];
+	f16 = heapFloat[(r2+5)];
+	f17 = heapFloat[(r1+13)];
+	f18 = heapFloat[(r1+9)];
+	f19 = heapFloat[(r2+10)];
+	f20 = heapFloat[(r1+10)];
+	f21 = heapFloat[(r2+6)];
+	f22 = heapFloat[(r1+14)];
+	f23 = f4*f1;
+	f24 = f5*f3;
+	f6 = f6+f7;
+	f7 = f8*f9;
+	r1 = heap32[(r1+16)];
+	f25 = heapFloat[(r2+14)];
+	f26 = heapFloat[(r2+13)];
+	f27 = heapFloat[(r2+12)];
+	r2 = sp + -1056;
+	f28 = f11*f1;
+	f29 = f15*f3;
+	f23 = f23+f24;
+	f24 = f18*f9;
+	f6 = f6+f7;
+	r9 = r2 >> 2;
+	f7 = f28+f29;
+	f28 = f20*f9;
+	f23 = f23+f24;
+	heapFloat[(fp+-264)] = f6;
+	f6 = f0*f12;
+	f24 = f2*f16;
+	f7 = f7+f28;
+	heapFloat[(r9+1)] = f23;
+	heapFloat[(r9+2)] = f7;
+	f7 = f4*f12;
+	f23 = f5*f16;
+	f6 = f6+f24;
+	f24 = f8*f21;
+	f28 = f11*f12;
+	f29 = f15*f16;
+	f7 = f7+f23;
+	f23 = f18*f21;
+	f6 = f6+f24;
+	heap32[(r9+3)] = 0;
+	f24 = f28+f29;
+	f28 = f20*f21;
+	f7 = f7+f23;
+	heapFloat[(r9+4)] = f6;
+	f0 = f0*f10;
+	f2 = f2*f14;
+	f6 = f24+f28;
+	heapFloat[(r9+5)] = f7;
+	heapFloat[(r9+6)] = f6;
+	f4 = f4*f10;
+	f5 = f5*f14;
+	f0 = f0+f2;
+	f2 = f8*f19;
+	f6 = f11*f10;
+	f7 = f15*f14;
+	f4 = f4+f5;
+	f5 = f18*f19;
+	f0 = f0+f2;
+	heap32[(r9+7)] = 0;
+	f1 = f1*f13;
+	f2 = f3*f17;
+	f3 = f6+f7;
+	f6 = f20*f19;
+	f4 = f4+f5;
+	heapFloat[(r9+8)] = f0;
+	f0 = f12*f13;
+	f5 = f16*f17;
+	f1 = f1+f2;
+	f2 = f9*f22;
+	f3 = f3+f6;
+	heapFloat[(r9+9)] = f4;
+	f1 = f1+f2;
+	heapFloat[(r9+10)] = f3;
+	f2 = f10*f13;
+	f3 = f14*f17;
+	f0 = f0+f5;
+	f4 = f21*f22;
+	f0 = f0+f4;
+	f2 = f2+f3;
+	f3 = f19*f22;
+	f1 = f1+f27;
+	heap32[(r9+11)] = 0;
+	f2 = f2+f3;
+	f0 = f0+f26;
+	heapFloat[(r9+12)] = f1;
+	f1 = f2+f25;
+	heapFloat[(r9+13)] = f0;
+	heapFloat[(r9+14)] = f1;
+	r10 = r6 >> 2;
+	heap32[(r9+15)] = 0;
+	r9 = sp + -1088;
+	r11 = heap32[(r10+48)];
+	r12 = r9 >> 2;
+	heap32[(r10+48)] = r1;
+	r13 = 1;
+	heap32[(r12+2)] = 0;
+	r14 = -1;
+	heap16[(sp+-1076)>>1] = r13;
+	heap16[(sp+-1074)>>1] = r14;
+	r13 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2;
+	heap32[(r12+4)] = 0;
+	r13 = (r13 + 8)|0;
+	heap32[(fp+-272)] = r13;
+	heap32[(r12+5)] = r8;
+	r14 = r8 >> 2;
+	heap32[(r12+6)] = r0;
+	heap32[(r12+1)] = heap32[(r14+1)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r1;
+	heap32[(g0+4)] = r2;
+	heap32[(g0+5)] = r9;
+	_ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i7);
+	r0 = (r0 + 1)|0;
+	heap32[(r10+48)] = r11;
+	heap32[(fp+-272)] = r13;
+	r1 = heap32[(r3+4)];
+if(!(r1 >r0)) //_LBB248_28
+{
+break _8;
+}
+}
+}
+}
+	return;
+}
+else{
+	if(r1 !=21) //_LBB248_12
+{
+	r1 = r7 >> 2;
+	r4 = r4 >> 2;
+	f0 = heapFloat[(r1+12)];
+	f1 = heapFloat[(r1+13)];
+	f2 = heapFloat[(r1+4)];
+	f3 = heapFloat[(r4+13)];
+	f4 = heapFloat[(r1)];
+	f5 = -f0;
+	f6 = heapFloat[(r4+12)];
+	f7 = heapFloat[(r1+5)];
+	f8 = heapFloat[(r1+1)];
+	f9 = f4*f6;
+	f10 = f2*f3;
+	f11 = f4*f5;
+	f12 = f2*f1;
+	f13 = heapFloat[(r1+14)];
+	f14 = heapFloat[(r1+8)];
+	f15 = heapFloat[(r4+14)];
+	r4 = r5 >> 2;
+	f16 = heapFloat[(r1+9)];
+	f17 = heapFloat[(r1+6)];
+	f18 = heapFloat[(r1+2)];
+	r5 = r8 >> 2;
+	f9 = f9+f10;
+	f10 = f14*f15;
+	f11 = f11-f12;
+	f12 = f14*f13;
+	f19 = f8*f6;
+	f20 = f7*f3;
+	f21 = f8*f5;
+	f22 = f7*f1;
+	f23 = heapFloat[(r4+12)];
+	f24 = heapFloat[(r4+13)];
+	f25 = heapFloat[(r1+10)];
+	f26 = heapFloat[(r4+14)];
+	r4 = sp + -960;
+	r7 = heap32[(r5+4)];
+	f9 = f9+f10;
+	f10 = f11-f12;
+	f6 = f18*f6;
+	f3 = f17*f3;
+	f11 = f19+f20;
+	f12 = f16*f15;
+	f5 = f18*f5;
+	f19 = f17*f1;
+	f20 = f21-f22;
+	f21 = f16*f13;
+	f9 = f9+f10;
+	f3 = f6+f3;
+	f6 = f25*f15;
+	f11 = f11+f12;
+	f12 = f20-f21;
+	r0 = r4 >> 2;
+	f5 = f5-f19;
+	f15 = f25*f13;
+	f11 = f11+f12;
+	heapFloat[(r0+1)] = f9;
+	f19 = f4*f23;
+	f20 = f2*f24;
+	f3 = f3+f6;
+	f5 = f5-f15;
+	f3 = f3+f5;
+	heapFloat[(r0+2)] = f11;
+	f6 = f19+f20;
+	f15 = f14*f26;
+	f19 = f8*f23;
+	f20 = f7*f24;
+	f6 = f6+f15;
+	heapFloat[(r0+3)] = f3;
+	f15 = f18*f23;
+	f21 = f17*f24;
+	f19 = f19+f20;
+	f20 = f16*f26;
+	f6 = f6+f10;
+	f10 = f19+f20;
+	heap32[(r0+4)] = 0;
+	f15 = f15+f21;
+	f19 = f25*f26;
+	f15 = f15+f19;
+	f10 = f10+f12;
+	heapFloat[(r0+5)] = f6;
+	f5 = f15+f5;
+	heapFloat[(r0+6)] = f10;
+	heapFloat[(r0+7)] = f5;
+	r9 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0;
+	heap32[(r0+8)] = 0;
+	r9 = (r9 + 8)|0;
+	heap32[(r0+9)] = r7;
+	heap32[(fp+-240)] = r9;
+	heap32[(r0+11)] = r8;
+	heap32[(r0+12)] = r6;
+	heap32[(r0+13)] = r2;
+	heapFloat[(r0+14)] = f4;
+	heapFloat[(r0+15)] = f8;
+	heapFloat[(r0+16)] = f18;
+	heap32[(r0+17)] = heap32[(r1+3)];
+	heapFloat[(r0+18)] = f2;
+	heapFloat[(r0+19)] = f7;
+	heapFloat[(r0+20)] = f17;
+	heap32[(r0+21)] = heap32[(r1+7)];
+	heapFloat[(r0+22)] = f14;
+	heapFloat[(r0+23)] = f16;
+	heapFloat[(r0+24)] = f25;
+	heap32[(r0+25)] = heap32[(r1+11)];
+	heapFloat[(r0+26)] = f0;
+	heapFloat[(r0+27)] = f1;
+	heapFloat[(r0+28)] = f13;
+	heap32[(r0+29)] = heap32[(r1+15)];
+	r1 = sp + -976;
+	heap32[(r0+10)] = heap32[(r5+1)];
+	r5 = r1 >> 2;
+	heapFloat[(fp+-244)] = f9;
+	heapFloat[(r5+1)] = f11;
+	heapFloat[(r5+2)] = f3;
+	heap32[(r5+3)] = 0;
+if(!(f6 >=f9)) //_LBB248_14
+{
+	heapFloat[(fp+-244)] = f6;
+}
+if(!(f10 >=f11)) //_LBB248_16
+{
+	heapFloat[(r5+1)] = f10;
+}
+if(!(f5 >=f3)) //_LBB248_18
+{
+	heapFloat[(r5+2)] = f5;
+}
+	r5 = sp + -992;
+	r6 = r5 >> 2;
+	heapFloat[(fp+-248)] = f9;
+	heapFloat[(r6+1)] = f11;
+	heapFloat[(r6+2)] = f3;
+	heap32[(r6+3)] = 0;
+if(!(f9 >=f6)) //_LBB248_20
+{
+	heapFloat[(fp+-248)] = f6;
+}
+if(!(f11 >=f10)) //_LBB248_22
+{
+	heapFloat[(r6+1)] = f10;
+}
+if(!(f3 >=f5)) //_LBB248_24
+{
+	heapFloat[(r6+2)] = f5;
+}
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+15)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r5;
+	r1 = _ZTV18btTriangleCallback;
+	r1 = (r1 + 8)|0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	heap32[(fp+-240)] = r1;
+	return;
+}
+else{
+	r1 = r7 >> 2;
+	r4 = r4 >> 2;
+	f0 = heapFloat[(r1+12)];
+	f1 = heapFloat[(r1+13)];
+	f2 = heapFloat[(r1+4)];
+	f3 = heapFloat[(r4+13)];
+	f4 = heapFloat[(r1)];
+	f5 = heapFloat[(r4+12)];
+	f6 = -f0;
+	f7 = heapFloat[(r1+5)];
+	f8 = heapFloat[(r1+1)];
+	f9 = heapFloat[(r1+14)];
+	f10 = heapFloat[(r1+8)];
+	f11 = heapFloat[(r4+14)];
+	f12 = f4*f5;
+	f13 = f2*f3;
+	f14 = f4*f6;
+	f15 = f2*f1;
+	f16 = heapFloat[(r1+9)];
+	f17 = heapFloat[(r1+6)];
+	f18 = heapFloat[(r1+2)];
+	f19 = f8*f5;
+	f20 = f7*f3;
+	f21 = f8*f6;
+	f22 = f7*f1;
+	f12 = f12+f13;
+	f13 = f10*f11;
+	f14 = f14-f15;
+	f15 = f10*f9;
+	f23 = heapFloat[(r1+10)];
+	f5 = f18*f5;
+	f3 = f17*f3;
+	f6 = f18*f6;
+	f24 = f17*f1;
+	f19 = f19+f20;
+	f20 = f16*f11;
+	f21 = f21-f22;
+	f22 = f16*f9;
+	f12 = f12+f13;
+	f13 = f14-f15;
+	r4 = sp + -704;
+	f12 = f12+f13;
+	f3 = f5+f3;
+	f5 = f23*f11;
+	f6 = f6-f24;
+	f11 = f23*f9;
+	f14 = f19+f20;
+	f15 = f21-f22;
+	r7 = r4 >> 2;
+	heapFloat[(fp+-176)] = f12;
+	f14 = f14+f15;
+	f3 = f3+f5;
+	f5 = f6-f11;
+	heapFloat[(r7+1)] = f14;
+	f3 = f3+f5;
+	heapFloat[(r7+2)] = f3;
+	r5 = r5 >> 2;
+	heap32[(r7+3)] = 0;
+	f6 = heapFloat[(r5+12)];
+	f11 = heapFloat[(r5+13)];
+	f19 = heapFloat[(r5+14)];
+	f20 = f4*f6;
+	f21 = f2*f11;
+	f22 = f8*f6;
+	f24 = f7*f11;
+	f20 = f20+f21;
+	f21 = f10*f19;
+	f20 = f20+f21;
+	f6 = f18*f6;
+	f11 = f17*f11;
+	f21 = f22+f24;
+	f22 = f16*f19;
+	r5 = sp + -720;
+	f21 = f21+f22;
+	f13 = f20+f13;
+	f6 = f6+f11;
+	f11 = f23*f19;
+	f6 = f6+f11;
+	r7 = r5 >> 2;
+	heapFloat[(fp+-180)] = f13;
+	f11 = f21+f15;
+	heapFloat[(r7+1)] = f11;
+	f5 = f6+f5;
+	heapFloat[(r7+2)] = f5;
+	r0 = sp + -840;
+	r9 = r8 >> 2;
+	heap32[(r7+3)] = 0;
+	r7 = r0 >> 2;
+	r10 = heap32[(r9+4)];
+	heapFloat[(r7+1)] = f12;
+	heapFloat[(r7+2)] = f14;
+	heapFloat[(r7+3)] = f3;
+	heap32[(r7+4)] = 0;
+	heapFloat[(r7+5)] = f13;
+	heapFloat[(r7+6)] = f11;
+	heapFloat[(r7+7)] = f5;
+	r11 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback;
+	heap32[(r7+8)] = 0;
+	r11 = (r11 + 8)|0;
+	heap32[(r7+9)] = r10;
+	heap32[(fp+-210)] = r11;
+	heap32[(r7+11)] = r8;
+	heap32[(r7+12)] = r6;
+	heap32[(r7+13)] = r2;
+	heapFloat[(r7+14)] = f4;
+	heapFloat[(r7+15)] = f8;
+	heapFloat[(r7+16)] = f18;
+	heap32[(r7+17)] = heap32[(r1+3)];
+	heapFloat[(r7+18)] = f2;
+	heapFloat[(r7+19)] = f7;
+	heapFloat[(r7+20)] = f17;
+	heap32[(r7+21)] = heap32[(r1+7)];
+	heapFloat[(r7+22)] = f10;
+	heapFloat[(r7+23)] = f16;
+	heapFloat[(r7+24)] = f23;
+	heap32[(r7+25)] = heap32[(r1+11)];
+	heapFloat[(r7+26)] = f0;
+	heapFloat[(r7+27)] = f1;
+	heapFloat[(r7+28)] = f9;
+	heap32[(r7+29)] = heap32[(r1+15)];
+	r1 = _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
+	heap32[(r7+10)] = heap32[(r9+1)];
+	r2 = sp + -48;
+	r6 = heap32[(r3+12)];
+	r1 = (r1 + 8)|0;
+	r7 = r2 >> 2;
+	heap32[(fp+-12)] = r1;
+	heap32[(r7+1)] = r6;
+	heap32[(r7+2)] = r0;
+	r1 = heap32[(r3+13)];
+	r3 = sp + -32;
+	r6 = r3 >> 2;
+	heap32[(fp+-8)] = 0;
+	heap32[(r6+1)] = 0;
+	heap32[(r6+2)] = 0;
+	r7 = sp + -16;
+	heap32[(r6+3)] = 0;
+	r6 = r7 >> 2;
+	heap32[(fp+-4)] = 0;
+	heap32[(r6+1)] = 0;
+	heap32[(r6+2)] = 0;
+	heap32[(r6+3)] = 0;
+	r6 = heapU8[r1+60];
+	if(r6 ==0) //_LBB248_10
+{
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r3;
+	_ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
+}
+else{
+	r6 = r1 >> 2;
+	r6 = heap32[(r6+14)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r3;
+	heap32[(g0+6)] = r6;
+	_ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7);
+}
+	r1 = _ZTV18btTriangleCallback;
+	r1 = (r1 + 8)|0;
+	heap32[(fp+-210)] = r1;
+	return;
+}
+}
+}
+else{
+	r1 = _ZTVN12btConvexCast10CastResultE;
+	r3 = sp + -280;
+	r1 = (r1 + 8)|0;
+	r9 = r3 >> 2;
+	heap32[(fp+-70)] = r1;
+	heap32[(r9+42)] = 0;
+	r1 = sp + -640;
+	r10 = r8 >> 2;
+	heap32[(r9+43)] = 0;
+	r11 = r1 >> 2;
+	heap32[(r9+41)] = heap32[(r10+1)];
+	r12 = _ZTV22btSubsimplexConvexCast;
+	r13 = 0;
+	heap32[(r11+77)] = 953267991;
+	r11 = sp + -656;
+	r12 = (r12 + 8)|0;
+	heap8[sp+-308] = r13;
+	r13 = r11 >> 2;
+	heap32[(fp+-164)] = r12;
+	heap32[(r13+1)] = r1;
+	heap32[(r13+2)] = r0;
+	heap32[(r13+3)] = r2;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r3;
+	_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
+	r1 = r_g0;
+if(!(r1 ==0)) //_LBB248_5
+{
+	f0 = heapFloat[(r9+33)];
+	f1 = heapFloat[(r9+34)];
+	f2 = heapFloat[(r9+35)];
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	f4 =   9.9999997473787516e-005;
+if(!(f3 <=f4)) //_LBB248_5
+{
+	f3 = heapFloat[(r9+41)];
+	f4 = heapFloat[(r10+1)];
+if(!(f3 >=f4)) //_LBB248_5
+{
+	r1 = r4 >> 2;
+	f4 = heapFloat[(r1+4)];
+	f5 = heapFloat[(r1)];
+	f6 = heapFloat[(r1+5)];
+	f7 = heapFloat[(r1+1)];
+	f8 = heapFloat[(r1+8)];
+	f9 = heapFloat[(r1+9)];
+	f4 = f4*f0;
+	f6 = f6*f1;
+	f10 = heapFloat[(r1+6)];
+	f11 = heapFloat[(r1+2)];
+	f5 = f5*f0;
+	f7 = f7*f1;
+	f12 = heapFloat[(r1+10)];
+	f0 = f8*f0;
+	f1 = f9*f1;
+	f4 = f4+f6;
+	f6 = f10*f2;
+	f5 = f5+f7;
+	f7 = f11*f2;
+	f4 = f4+f6;
+	f5 = f5+f7;
+	f0 = f0+f1;
+	f1 = f12*f2;
+	f0 = f0+f1;
+	f1 = f5*f5;
+	f2 = f4*f4;
+	heap32[(r9+36)] = 0;
+	f1 = f1+f2;
+	f2 = f0*f0;
+	f1 = f1+f2;
+	heapFloat[(g0)] = f1;
+	f1 =                         1;
+	sqrtf(i7);
+	f1 = f1/f_g0;
+	f2 = f5*f1;
+	f4 = f4*f1;
+	heapFloat[(r9+33)] = f2;
+	f0 = f0*f1;
+	heapFloat[(r9+34)] = f4;
+	r1 = sp + -688;
+	heapFloat[(r9+35)] = f0;
+	r2 = r1 >> 2;
+	heap32[(fp+-172)] = r6;
+	heap32[(r2+1)] = 0;
+	heapFloat[(r2+2)] = f2;
+	heapFloat[(r2+3)] = f4;
+	heapFloat[(r2+4)] = f0;
+	heap32[(r2+5)] = 0;
+	heapFloat[(r2+6)] = f3;
+	r2 = heap32[(r10)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+3)];
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+}
+}
+	r1 = _ZTV12btConvexCast;
+	r1 = (r1 + 8)|0;
+	heap32[(fp+-164)] = r1;
+	return;
+}
+}
+
+function _ZN22btCompoundLeafCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV22btCompoundLeafCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN22btCompoundLeafCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV22btCompoundLeafCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -136;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+1)];
+	r3 = heap32[(fp+1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+48)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4+9)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+6)];
+	r5 = (r4 * 80)|0;
+	r6 = heap32[(r1+4)];
+	r2 = (r2 + r5)|0;
+	r5 = r6 >> 2;
+	r2 = r2 >> 2;
+	r5 = heap32[(r5+5)];
+	r2 = heap32[(r2+16)];
+if(!(r5 ==0)) //_LBB251_3
+{
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+12)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r5 = r_g0 & 2;
+if(!(r5 ==0)) //_LBB251_3
+{
+	r5 = heap32[(r1+1)];
+	r6 = sp + -112;
+	r5 = r5 >> 2;
+	r7 = r6 >> 2;
+	heap32[(fp+-28)] = heap32[(r5+1)];
+	heap32[(r7+1)] = heap32[(r5+2)];
+	heap32[(r7+2)] = heap32[(r5+3)];
+	heap32[(r7+3)] = heap32[(r5+4)];
+	heap32[(r7+4)] = heap32[(r5+5)];
+	heap32[(r7+5)] = heap32[(r5+6)];
+	heap32[(r7+6)] = heap32[(r5+7)];
+	heap32[(r7+7)] = heap32[(r5+8)];
+	heap32[(r7+8)] = heap32[(r5+9)];
+	heap32[(r7+9)] = heap32[(r5+10)];
+	heap32[(r7+10)] = heap32[(r5+11)];
+	heap32[(r7+11)] = heap32[(r5+12)];
+	heap32[(r7+12)] = heap32[(r5+13)];
+	heap32[(r7+13)] = heap32[(r5+14)];
+	heap32[(r7+14)] = heap32[(r5+15)];
+	heap32[(r7+15)] = heap32[(r5+16)];
+	r5 = (r3 + 16)|0;
+	r7 = sp + -32;
+	r8 = sp + -48;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = 0;
+	heap32[(g0+3)] = r6;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r8;
+	_Z15btTransformAabbRK9btVector3S1_fRK11btTransformRS_S5_(i7);
+	r1 = heap32[(r1+4)];
+	r1 = r1 >> 2;
+	r3 = heap32[(r1+5)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+13)];
+	r5 = sp + -16;
+	r6 = r5 >> 2;
+	heap32[(fp+-4)] = 1065353216;
+	heap32[(r6+1)] = 0;
+	heap32[(r6+2)] = 0;
+	heap32[(r6+3)] = 0;
+	r1 = heap32[(r1+5)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r5;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+}
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r4;
+	_ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i7);
+	return;
+}
+
+function _ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+3)];
+if(!(r1 <1)) //_LBB252_5
+{
+	r1 = heap32[(fp+1)];
+	r2 = 0;
+_3: while(true){
+	r3 = heap32[(r0+5)];
+	r4 = r2 << 2;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+if(!(r3 ==0)) //_LBB252_4
+{
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+	r2 = (r2 + 1)|0;
+	r3 = heap32[(r0+3)];
+	if(r3 >r2) //_LBB252_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function _ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+28];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = r1 == 0 ? r2 : r3;
+	r5 = r4 >> 2;
+	r6 = heap32[(r5+48)];
+	r7 = r6 >> 2;
+	r8 = heap32[(r7+1)];
+	if(r8 ==31) //_LBB253_2
+{
+	r0 = r0 >> 2;
+	r8 = heap32[(r0+3)];
+_3: do {
+	if(r8 >0) //_LBB253_4
+{
+	r9 = heap32[(fp+3)];
+	r10 = heap32[(fp+4)];
+	r1 = r1 == 0 ? r3 : r2;
+	r2 = 0;
+	f0 =                         1;
+_5: while(true){
+	r3 = (r2 * 20)|0;
+	r11 = heap32[(r7+6)];
+	r3 = r3 << 2;
+	r3 = (r11 + r3)|0;
+	r3 = r3 >> 2;
+	f1 = heapFloat[(r3)];
+	f2 = heapFloat[(r5+1)];
+	f3 = heapFloat[(r3+4)];
+	f4 = heapFloat[(r5+2)];
+	f5 = heapFloat[(r3+1)];
+	f6 = heapFloat[(r3+5)];
+	f7 = f1*f2;
+	f8 = f3*f4;
+	f9 = heapFloat[(r3+8)];
+	f10 = heapFloat[(r5+3)];
+	f11 = heapFloat[(r5+10)];
+	f12 = heapFloat[(r3+13)];
+	f13 = heapFloat[(r5+6)];
+	f14 = heapFloat[(r3+6)];
+	f15 = heapFloat[(r5+9)];
+	f16 = heapFloat[(r3+12)];
+	f17 = heapFloat[(r5+5)];
+	f18 = heapFloat[(r3+2)];
+	f19 = heapFloat[(r3+14)];
+	f20 = heapFloat[(r5+11)];
+	f21 = heapFloat[(r3+10)];
+	f22 = heapFloat[(r5+7)];
+	f23 = heapFloat[(r3+9)];
+	r3 = heap32[(r3+16)];
+	f24 = f5*f2;
+	f25 = f6*f4;
+	f7 = f7+f8;
+	f8 = f9*f10;
+	f26 = heapFloat[(r5+16)];
+	heapFloat[(fp+-1)] = f26;
+	f27 = heapFloat[(r5+15)];
+	f28 = heapFloat[(r5+14)];
+	f29 = heapFloat[(r5+13)];
+	f26 = heapFloat[(r5+12)];
+	heapFloat[(fp+-2)] = f26;
+	f26 = heapFloat[(r5+8)];
+	heapFloat[(fp+-3)] = f26;
+	f26 = heapFloat[(r5+4)];
+	heapFloat[(fp+-4)] = f26;
+	f30 = f18*f2;
+	f26 = f14*f4;
+	f24 = f24+f25;
+	f25 = f23*f10;
+	f7 = f7+f8;
+	f8 = f30+f26;
+	f26 = f21*f10;
+	f24 = f24+f25;
+	heapFloat[(r5+1)] = f7;
+	f7 = f1*f17;
+	f25 = f3*f13;
+	f8 = f8+f26;
+	heapFloat[(r5+2)] = f24;
+	heapFloat[(r5+3)] = f8;
+	f8 = f5*f17;
+	f24 = f6*f13;
+	f7 = f7+f25;
+	f25 = f9*f22;
+	f26 = f18*f17;
+	f30 = f14*f13;
+	f8 = f8+f24;
+	f24 = f23*f22;
+	f7 = f7+f25;
+	heap32[(r5+4)] = 0;
+	f25 = f26+f30;
+	f26 = f21*f22;
+	f8 = f8+f24;
+	heapFloat[(r5+5)] = f7;
+	f1 = f1*f15;
+	f3 = f3*f11;
+	f7 = f25+f26;
+	heapFloat[(r5+6)] = f8;
+	heapFloat[(r5+7)] = f7;
+	f5 = f5*f15;
+	f6 = f6*f11;
+	f1 = f1+f3;
+	f3 = f9*f20;
+	f7 = f18*f15;
+	f8 = f14*f11;
+	f5 = f5+f6;
+	f6 = f23*f20;
+	f1 = f1+f3;
+	heap32[(r5+8)] = 0;
+	f3 = f2*f16;
+	f9 = f4*f12;
+	f7 = f7+f8;
+	f8 = f21*f20;
+	f5 = f5+f6;
+	heapFloat[(r5+9)] = f1;
+	f1 = f17*f16;
+	f6 = f13*f12;
+	f3 = f3+f9;
+	f9 = f10*f19;
+	f7 = f7+f8;
+	heapFloat[(r5+10)] = f5;
+	f3 = f3+f9;
+	heapFloat[(r5+11)] = f7;
+	f5 = f15*f16;
+	f7 = f11*f12;
+	f1 = f1+f6;
+	f6 = f22*f19;
+	f1 = f1+f6;
+	f5 = f5+f7;
+	f6 = f20*f19;
+	f3 = f3+f29;
+	heap32[(r5+12)] = 0;
+	f5 = f5+f6;
+	f1 = f1+f28;
+	heapFloat[(r5+13)] = f3;
+	f3 = f5+f27;
+	heapFloat[(r5+14)] = f1;
+	heapFloat[(r5+15)] = f3;
+	heap32[(r5+16)] = 0;
+	heap32[(r5+48)] = r3;
+	r3 = heap32[(r0+5)];
+	r11 = r2 << 2;
+	r3 = (r3 + r11)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r11 = r3 >> 2;
+	r11 = heap32[(r11)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+3)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r9;
+	heap32[(g0+4)] = r10;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	heap32[(r5+48)] = r6;
+	heapFloat[(r5+1)] = f2;
+	heapFloat[(r5+2)] = f4;
+	heapFloat[(r5+3)] = f10;
+	f26 = heapFloat[(fp+-4)];
+	heapFloat[(r5+4)] = f26;
+	heapFloat[(r5+5)] = f17;
+	heapFloat[(r5+6)] = f13;
+	heapFloat[(r5+7)] = f22;
+	f26 = heapFloat[(fp+-3)];
+	heapFloat[(r5+8)] = f26;
+	heapFloat[(r5+9)] = f15;
+	heapFloat[(r5+10)] = f11;
+	heapFloat[(r5+11)] = f20;
+	f26 = heapFloat[(fp+-2)];
+	heapFloat[(r5+12)] = f26;
+	heapFloat[(r5+13)] = f29;
+	heapFloat[(r5+14)] = f28;
+	r2 = (r2 + 1)|0;
+	f0 = f_g0 < f0 ? f_g0 : f0;
+	heapFloat[(r5+15)] = f27;
+	f26 = heapFloat[(fp+-1)];
+	heapFloat[(r5+16)] = f26;
+if(!(r8 !=r2)) //_LBB253_5
+{
+break _3;
+}
+}
+}
+else{
+	f0 =                         1;
+}
+} while(0);
+	f_g0 = f0;
+	return;
+}
+else{
+	r0 = _2E_str99;
+	r1 = _2E_str1100;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 308;
+	_assert(i7);
+}
+}
+
+function _Z15btTransformAabbRK9btVector3S1_fRK11btTransformRS_S5_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r0)];
+	f1 = heapFloat[(r1)];
+	if(f0 <=f1) //_LBB254_2
+{
+	f2 = heapFloat[(r0+1)];
+	f3 = heapFloat[(r1+1)];
+	if(f2 <=f3) //_LBB254_4
+{
+	f4 = heapFloat[(r0+2)];
+	f5 = heapFloat[(r1+2)];
+	if(f4 <=f5) //_LBB254_6
+{
+	f6 = heapFloat[(fp+2)];
+	r0 = heap32[(fp+3)];
+	r1 = heap32[(fp+4)];
+	r2 = heap32[(fp+5)];
+	f7 = f1-f0;
+	f8 =                       0.5;
+	f9 = f3-f2;
+	f10 = f5-f4;
+	r0 = r0 >> 2;
+	f4 = f5+f4;
+	f2 = f3+f2;
+	f0 = f1+f0;
+	f1 = f7*f8;
+	f3 = f9*f8;
+	f5 = f10*f8;
+	f7 = heapFloat[(r0+10)];
+	f1 = f1+f6;
+	f3 = f3+f6;
+	f5 = f5+f6;
+	f4 = f4*f8;
+	f2 = f2*f8;
+	f0 = f0*f8;
+	f6 =                         0;
+	if(f7 <f6) //_LBB254_8
+{
+	f8 = -f7;
+}
+else{
+	f8 = f7;
+}
+	f9 = heapFloat[(r0+9)];
+	if(f9 <f6) //_LBB254_11
+{
+	f10 = -f9;
+}
+else{
+	f10 = f9;
+}
+	f11 = heapFloat[(r0+8)];
+	if(f11 <f6) //_LBB254_14
+{
+	f12 = -f11;
+}
+else{
+	f12 = f11;
+}
+	f13 = heapFloat[(r0+6)];
+	if(f13 <f6) //_LBB254_17
+{
+	f14 = -f13;
+}
+else{
+	f14 = f13;
+}
+	f15 = heapFloat[(r0+5)];
+	if(f15 <f6) //_LBB254_20
+{
+	f16 = -f15;
+}
+else{
+	f16 = f15;
+}
+	f17 = heapFloat[(r0+4)];
+	if(f17 <f6) //_LBB254_23
+{
+	f18 = -f17;
+}
+else{
+	f18 = f17;
+}
+	f19 = heapFloat[(r0+2)];
+	if(f19 <f6) //_LBB254_26
+{
+	f20 = -f19;
+}
+else{
+	f20 = f19;
+}
+	f21 = heapFloat[(r0+1)];
+	if(f21 <f6) //_LBB254_29
+{
+	f22 = -f21;
+}
+else{
+	f22 = f21;
+}
+	f23 = heapFloat[(r0)];
+	if(f23 <f6) //_LBB254_32
+{
+	f6 = -f23;
+}
+else{
+	f6 = f23;
+}
+	f23 = f23*f0;
+	f21 = f21*f2;
+	f17 = f17*f0;
+	f15 = f15*f2;
+	f21 = f23+f21;
+	f19 = f19*f4;
+	f6 = f6*f1;
+	f22 = f22*f3;
+	f0 = f11*f0;
+	f2 = f9*f2;
+	f9 = f17+f15;
+	f11 = f13*f4;
+	f13 = f18*f1;
+	f15 = f16*f3;
+	f16 = f21+f19;
+	f17 = heapFloat[(r0+12)];
+	f6 = f6+f22;
+	f18 = f20*f5;
+	f0 = f0+f2;
+	f2 = f7*f4;
+	f1 = f12*f1;
+	f3 = f10*f3;
+	f4 = f9+f11;
+	f7 = heapFloat[(r0+13)];
+	f9 = heapFloat[(r0+14)];
+	f10 = f13+f15;
+	f11 = f14*f5;
+	f12 = f16+f17;
+	f6 = f6+f18;
+	f0 = f0+f2;
+	r0 = r1 >> 2;
+	f1 = f1+f3;
+	f2 = f8*f5;
+	f3 = f4+f7;
+	f4 = f10+f11;
+	f5 = f12-f6;
+	f0 = f0+f9;
+	f1 = f1+f2;
+	f2 = f3-f4;
+	heapFloat[(r0)] = f5;
+	f5 = f0-f1;
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f5;
+	r1 = r2 >> 2;
+	f2 = f12+f6;
+	heap32[(r0+3)] = 0;
+	f3 = f3+f4;
+	heapFloat[(r1)] = f2;
+	f0 = f0+f1;
+	heapFloat[(r1+1)] = f3;
+	heapFloat[(r1+2)] = f0;
+	heap32[(r1+3)] = 0;
+	return;
+}
+else{
+	r0 = _2E_str5104;
+	r1 = _2E_str3102;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 199;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str4103;
+	r1 = _2E_str3102;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 198;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str2101;
+	r1 = _2E_str3102;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 197;
+	_assert(i7);
+}
+}
+
+function _ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -264;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	if(r0 >-1) //_LBB255_2
+{
+	r1 = heap32[(fp)];
+	r1 = r1 >> 2;
+	r2 = heap32[(r1+1)];
+	r2 = r2 >> 2;
+	r3 = heap32[(r2+48)];
+	r3 = r3 >> 2;
+	r4 = heap32[(r3+4)];
+	if(r4 >r0) //_LBB255_4
+{
+	r4 = heap32[(fp+1)];
+	r3 = heap32[(r3+6)];
+	r5 = (r0 * 80)|0;
+	r3 = (r3 + r5)|0;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r2+1)];
+	f1 = heapFloat[(r3)];
+	f2 = heapFloat[(r2+2)];
+	f3 = heapFloat[(r3+4)];
+	f4 = heapFloat[(r3+1)];
+	f5 = heapFloat[(r3+5)];
+	f6 = heapFloat[(r2+3)];
+	f7 = heapFloat[(r3+8)];
+	f8 = f1*f0;
+	f9 = f3*f2;
+	f10 = heapFloat[(r2+5)];
+	f11 = heapFloat[(r2+6)];
+	f12 = heapFloat[(r2+9)];
+	f13 = heapFloat[(r3+12)];
+	f14 = heapFloat[(r3+2)];
+	f15 = heapFloat[(r2+10)];
+	f16 = heapFloat[(r3+13)];
+	f17 = heapFloat[(r3+6)];
+	f18 = heapFloat[(r2+7)];
+	f19 = heapFloat[(r3+14)];
+	f20 = heapFloat[(r2+11)];
+	f21 = heapFloat[(r3+10)];
+	f22 = heapFloat[(r3+9)];
+	f23 = heapFloat[(r2+4)];
+	f24 = heapFloat[(r2+8)];
+	heapFloat[(fp+-59)] = f24;
+	f24 = heapFloat[(r2+12)];
+	heapFloat[(fp+-57)] = f24;
+	f24 = heapFloat[(r2+13)];
+	f25 = heapFloat[(r2+14)];
+	f26 = heapFloat[(r2+15)];
+	f27 = heapFloat[(r2+16)];
+	heapFloat[(fp+-58)] = f27;
+	f27 = heapFloat[(r2+17)];
+	heapFloat[(fp+-42)] = f27;
+	f27 = heapFloat[(r2+18)];
+	heapFloat[(fp+-41)] = f27;
+	f27 = heapFloat[(r2+19)];
+	heapFloat[(fp+-44)] = f27;
+	f27 = heapFloat[(r2+20)];
+	heapFloat[(fp+-43)] = f27;
+	f27 = heapFloat[(r2+21)];
+	heapFloat[(fp+-46)] = f27;
+	f27 = heapFloat[(r2+22)];
+	heapFloat[(fp+-45)] = f27;
+	f27 = heapFloat[(r2+23)];
+	heapFloat[(fp+-48)] = f27;
+	f27 = heapFloat[(r2+24)];
+	heapFloat[(fp+-47)] = f27;
+	f27 = heapFloat[(r2+25)];
+	heapFloat[(fp+-50)] = f27;
+	f27 = heapFloat[(r2+26)];
+	heapFloat[(fp+-49)] = f27;
+	f27 = heapFloat[(r2+27)];
+	heapFloat[(fp+-52)] = f27;
+	f27 = heapFloat[(r2+28)];
+	heapFloat[(fp+-51)] = f27;
+	f27 = heapFloat[(r2+29)];
+	heapFloat[(fp+-54)] = f27;
+	f27 = heapFloat[(r2+30)];
+	heapFloat[(fp+-53)] = f27;
+	f27 = heapFloat[(r2+31)];
+	heapFloat[(fp+-56)] = f27;
+	f27 = heapFloat[(r2+32)];
+	heapFloat[(fp+-55)] = f27;
+	f27 = f4*f0;
+	f28 = f5*f2;
+	f8 = f8+f9;
+	f9 = f7*f6;
+	r2 = sp + -96;
+	f29 = f14*f0;
+	f30 = f17*f2;
+	f27 = f27+f28;
+	f28 = f22*f6;
+	f8 = f8+f9;
+	r3 = r2 >> 2;
+	f9 = f29+f30;
+	f29 = f21*f6;
+	f27 = f27+f28;
+	heapFloat[(fp+-24)] = f8;
+	f8 = f1*f10;
+	f28 = f3*f11;
+	f9 = f9+f29;
+	heapFloat[(r3+1)] = f27;
+	heapFloat[(r3+2)] = f9;
+	f9 = f4*f10;
+	f27 = f5*f11;
+	f8 = f8+f28;
+	f28 = f7*f18;
+	f29 = f14*f10;
+	f30 = f17*f11;
+	f9 = f9+f27;
+	f27 = f22*f18;
+	f8 = f8+f28;
+	heap32[(r3+3)] = 0;
+	f28 = f29+f30;
+	f29 = f21*f18;
+	f9 = f9+f27;
+	heapFloat[(r3+4)] = f8;
+	f1 = f1*f12;
+	f3 = f3*f15;
+	f8 = f28+f29;
+	heapFloat[(r3+5)] = f9;
+	heapFloat[(r3+6)] = f8;
+	f4 = f4*f12;
+	f5 = f5*f15;
+	f1 = f1+f3;
+	f3 = f7*f20;
+	f7 = f14*f12;
+	f8 = f17*f15;
+	f4 = f4+f5;
+	f5 = f22*f20;
+	f1 = f1+f3;
+	heap32[(r3+7)] = 0;
+	f3 = f0*f13;
+	f9 = f2*f16;
+	f7 = f7+f8;
+	f8 = f21*f20;
+	f4 = f4+f5;
+	heapFloat[(r3+8)] = f1;
+	f1 = f10*f13;
+	f5 = f11*f16;
+	f3 = f3+f9;
+	f9 = f6*f19;
+	f7 = f7+f8;
+	heapFloat[(r3+9)] = f4;
+	f3 = f3+f9;
+	heapFloat[(r3+10)] = f7;
+	f4 = f12*f13;
+	f7 = f15*f16;
+	f1 = f1+f5;
+	f5 = f18*f19;
+	f1 = f1+f5;
+	f4 = f4+f7;
+	f5 = f20*f19;
+	f3 = f3+f24;
+	heap32[(r3+11)] = 0;
+	f4 = f4+f5;
+	f1 = f1+f25;
+	heapFloat[(r3+12)] = f3;
+	f3 = f4+f26;
+	heapFloat[(r3+13)] = f1;
+	heapFloat[(r3+14)] = f3;
+	r5 = r4 >> 2;
+	heap32[(r3+15)] = 0;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+2)];
+	r6 = sp + -112;
+	r7 = sp + -128;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r7;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r2 = heap32[(r1+2)];
+	r5 = r2 >> 2;
+	r5 = heap32[(r5+48)];
+	r8 = r5 >> 2;
+	r8 = heap32[(r8)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	r2 = (r2 + 4)|0;
+	r9 = sp + -144;
+	r10 = sp + -160;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r10;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	f1 = heapFloat[(fp+-28)];
+	f3 = heapFloat[(fp+-40)];
+	if(f1 >f3) //_LBB255_7
+{
+__label__ = 7;
+}
+else{
+	f1 = heapFloat[(fp+-32)];
+	f3 = heapFloat[(fp+-36)];
+	if(f1 <f3) //_LBB255_7
+{
+__label__ = 7;
+}
+else{
+	r2 = 1;
+__label__ = 8;
+}
+}
+if (__label__ == 7){
+	r2 = 0;
+}
+	r5 = r6 >> 2;
+	r8 = r10 >> 2;
+	f1 = heapFloat[(r5+2)];
+	f3 = heapFloat[(r8+2)];
+	if(f1 >f3) //_LBB255_11
+{
+__label__ = 10;
+}
+else{
+	r11 = r7 >> 2;
+	r12 = r9 >> 2;
+	f1 = heapFloat[(r11+2)];
+	f3 = heapFloat[(r12+2)];
+	if(f1 <f3) //_LBB255_11
+{
+__label__ = 10;
+}
+else{
+__label__ = 11;
+}
+}
+if (__label__ == 10){
+	r2 = 0;
+}
+	f1 = heapFloat[(r5+1)];
+	f3 = heapFloat[(r8+1)];
+if(!(f1 >f3)) //_LBB255_24
+{
+	r5 = r7 >> 2;
+	r8 = r9 >> 2;
+	f1 = heapFloat[(r5+1)];
+	f3 = heapFloat[(r8+1)];
+if(!(f1 <f3)) //_LBB255_24
+{
+	r2 = r2 & 255;
+if(!(r2 ==0)) //_LBB255_24
+{
+	r2 = heap32[(r1+1)];
+	r2 = r2 >> 2;
+	heap32[(r2+1)] = heap32[(fp+-24)];
+	heap32[(r2+2)] = heap32[(r3+1)];
+	heap32[(r2+3)] = heap32[(r3+2)];
+	heap32[(r2+4)] = heap32[(r3+3)];
+	heap32[(r2+5)] = heap32[(r3+4)];
+	heap32[(r2+6)] = heap32[(r3+5)];
+	heap32[(r2+7)] = heap32[(r3+6)];
+	heap32[(r2+8)] = heap32[(r3+7)];
+	heap32[(r2+9)] = heap32[(r3+8)];
+	heap32[(r2+10)] = heap32[(r3+9)];
+	heap32[(r2+11)] = heap32[(r3+10)];
+	heap32[(r2+12)] = heap32[(r3+11)];
+	heap32[(r2+13)] = heap32[(r3+12)];
+	heap32[(r2+14)] = heap32[(r3+13)];
+	heap32[(r2+15)] = heap32[(r3+14)];
+	heap32[(r2+16)] = heap32[(r3+15)];
+	r2 = heap32[(r1+1)];
+	r2 = r2 >> 2;
+	heap32[(r2+17)] = heap32[(fp+-24)];
+	heap32[(r2+18)] = heap32[(r3+1)];
+	heap32[(r2+19)] = heap32[(r3+2)];
+	heap32[(r2+20)] = heap32[(r3+3)];
+	heap32[(r2+21)] = heap32[(r3+4)];
+	heap32[(r2+22)] = heap32[(r3+5)];
+	heap32[(r2+23)] = heap32[(r3+6)];
+	heap32[(r2+24)] = heap32[(r3+7)];
+	heap32[(r2+25)] = heap32[(r3+8)];
+	heap32[(r2+26)] = heap32[(r3+9)];
+	heap32[(r2+27)] = heap32[(r3+10)];
+	heap32[(r2+28)] = heap32[(r3+11)];
+	heap32[(r2+29)] = heap32[(r3+12)];
+	heap32[(r2+30)] = heap32[(r3+13)];
+	heap32[(r2+31)] = heap32[(r3+14)];
+	heap32[(r2+32)] = heap32[(r3+15)];
+	r2 = heap32[(r1+1)];
+	r2 = r2 >> 2;
+	r3 = heap32[(r2+48)];
+	heap32[(r2+48)] = r4;
+	r2 = heap32[(r1+6)];
+	r4 = r0 << 2;
+	r2 = (r2 + r4)|0;
+	r2 = r2 >> 2;
+	r5 = heap32[(r2)];
+if(!(r5 !=0)) //_LBB255_17
+{
+	r5 = heap32[(r1+3)];
+	r8 = r5 >> 2;
+	r8 = heap32[(r8)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	r11 = heap32[(r1+7)];
+	r12 = heap32[(r1+2)];
+	r13 = heap32[(r1+1)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r13;
+	heap32[(g0+2)] = r12;
+	heap32[(g0+3)] = r11;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	heap32[(r2)] = r_g0;
+}
+	r2 = heap32[(r1+5)];
+	r5 = r2 >> 2;
+	r8 = heap32[(r5)];
+	r5 = heap32[(r5+34)];
+	r11 = heap32[(r1+1)];
+	if(r5 !=r11) //_LBB255_19
+{
+	r5 = r8 >> 2;
+	r5 = heap32[(r5+3)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = -1;
+	heap32[(g0+2)] = r0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+else{
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = -1;
+	heap32[(g0+2)] = r0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+}
+	r0 = heap32[(r1+6)];
+	r0 = (r0 + r4)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	r2 = r0 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+2)];
+	r4 = heap32[(r1+5)];
+	r5 = heap32[(r1+4)];
+	r8 = heap32[(r1+2)];
+	r11 = heap32[(r1+1)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r5;
+	heap32[(g0+4)] = r4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = heap32[(r1+4)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+5)];
+if(!(r0 ==0)) //_LBB255_23
+{
+	r2 = r0 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = r_g0 & 2;
+if(!(r0 ==0)) //_LBB255_23
+{
+	r0 = heap32[(r1+4)];
+	r0 = r0 >> 2;
+	r2 = heap32[(r0+5)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+13)];
+	r4 = sp + -32;
+	r5 = r4 >> 2;
+	heap32[(fp+-8)] = 1065353216;
+	heap32[(r5+1)] = 1065353216;
+	heap32[(r5+2)] = 1065353216;
+	heap32[(r5+3)] = 0;
+	r0 = heap32[(r0+5)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = heap32[(r1+4)];
+	r0 = r0 >> 2;
+	r2 = heap32[(r0+5)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+13)];
+	r4 = sp + -16;
+	r5 = r4 >> 2;
+	heap32[(fp+-4)] = 1065353216;
+	heap32[(r5+1)] = 1065353216;
+	heap32[(r5+2)] = 1065353216;
+	heap32[(r5+3)] = 0;
+	r0 = heap32[(r0+5)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+}
+	r0 = heap32[(r1+1)];
+	r0 = r0 >> 2;
+	heap32[(r0+48)] = r3;
+	r0 = heap32[(r1+1)];
+	r0 = r0 >> 2;
+	heapFloat[(r0+1)] = f0;
+	heapFloat[(r0+2)] = f2;
+	heapFloat[(r0+3)] = f6;
+	heapFloat[(r0+4)] = f23;
+	heapFloat[(r0+5)] = f10;
+	heapFloat[(r0+6)] = f11;
+	heapFloat[(r0+7)] = f18;
+	f0 = heapFloat[(fp+-59)];
+	heapFloat[(r0+8)] = f0;
+	heapFloat[(r0+9)] = f12;
+	heapFloat[(r0+10)] = f15;
+	heapFloat[(r0+11)] = f20;
+	f0 = heapFloat[(fp+-57)];
+	heapFloat[(r0+12)] = f0;
+	heapFloat[(r0+13)] = f24;
+	heapFloat[(r0+14)] = f25;
+	heapFloat[(r0+15)] = f26;
+	f0 = heapFloat[(fp+-58)];
+	heapFloat[(r0+16)] = f0;
+	r0 = heap32[(r1+1)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(fp+-42)];
+	heapFloat[(r0+17)] = f0;
+	f0 = heapFloat[(fp+-41)];
+	heapFloat[(r0+18)] = f0;
+	f0 = heapFloat[(fp+-44)];
+	heapFloat[(r0+19)] = f0;
+	f0 = heapFloat[(fp+-43)];
+	heapFloat[(r0+20)] = f0;
+	f0 = heapFloat[(fp+-46)];
+	heapFloat[(r0+21)] = f0;
+	f0 = heapFloat[(fp+-45)];
+	heapFloat[(r0+22)] = f0;
+	f0 = heapFloat[(fp+-48)];
+	heapFloat[(r0+23)] = f0;
+	f0 = heapFloat[(fp+-47)];
+	heapFloat[(r0+24)] = f0;
+	f0 = heapFloat[(fp+-50)];
+	heapFloat[(r0+25)] = f0;
+	f0 = heapFloat[(fp+-49)];
+	heapFloat[(r0+26)] = f0;
+	f0 = heapFloat[(fp+-52)];
+	heapFloat[(r0+27)] = f0;
+	f0 = heapFloat[(fp+-51)];
+	heapFloat[(r0+28)] = f0;
+	f0 = heapFloat[(fp+-54)];
+	heapFloat[(r0+29)] = f0;
+	f0 = heapFloat[(fp+-53)];
+	heapFloat[(r0+30)] = f0;
+	f0 = heapFloat[(fp+-56)];
+	heapFloat[(r0+31)] = f0;
+	f0 = heapFloat[(fp+-55)];
+	heapFloat[(r0+32)] = f0;
+}
+}
+}
+	return;
+}
+else{
+	r0 = _2E_str7106;
+	r1 = _2E_str1100;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 119;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str6105;
+	r1 = _2E_str1100;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 117;
+	_assert(i7);
+}
+}
+
+function _ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+28];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = r1 == 0 ? r2 : r3;
+	r5 = r4 >> 2;
+	r6 = heap32[(r5+48)];
+	r6 = r6 >> 2;
+	r7 = heap32[(r6+1)];
+	if(r7 ==31) //_LBB256_2
+{
+	r7 = r0 >> 2;
+	r8 = heap32[(r7+3)];
+	r9 = heap32[(r6+4)];
+_3: do {
+if(!(r8 >r9)) //_LBB256_21
+{
+if(!(r8 >=r9)) //_LBB256_21
+{
+	r10 = heap32[(r7+4)];
+if(!(r10 >=r9)) //_LBB256_20
+{
+	if(r9 !=0) //_LBB256_7
+{
+	r10 = gNumAlignedAllocs;
+	r10 = r10 >> 2;
+	r11 = heap32[(r10)];
+	r12 = r9 << 2;
+	r11 = (r11 + 1)|0;
+	r12 = r12 | 3;
+	heap32[(r10)] = r11;
+	r10 = (r12 + 16)|0;
+	heap32[(g0)] = r10;
+	malloc(i7);
+	r10 = r_g0;
+	if(r10 !=0) //_LBB256_9
+{
+	r11 = 0;
+	r12 = (r10 + 4)|0;
+	r11 = (r11 - r12)|0;
+	r11 = r11 & 15;
+	r11 = (r10 + r11)|0;
+	r12 = (r11 + 4)|0;
+	r11 = r11 >> 2;
+	heap32[(r11)] = r10;
+	r10 = r12;
+}
+}
+else{
+	r10 = 0;
+}
+	r11 = (r0 + 20)|0;
+	if(r8 <1) //_LBB256_12
+{
+	r12 = r11 >> 2;
+	r13 = heap32[(r12)];
+}
+else{
+	r12 = 0;
+_16: while(true){
+	r13 = r11 >> 2;
+	r13 = heap32[(r13)];
+	r14 = r12 << 2;
+	r15 = (r13 + r14)|0;
+	r15 = r15 >> 2;
+	r14 = (r10 + r14)|0;
+	r15 = heap32[(r15)];
+	r12 = (r12 + 1)|0;
+	r14 = r14 >> 2;
+	heap32[(r14)] = r15;
+if(!(r8 !=r12)) //_LBB256_13
+{
+break _16;
+}
+}
+	r11 = (r0 + 20)|0;
+}
+if(!(r13 ==0)) //_LBB256_19
+{
+	r12 = heapU8[r0+24];
+if(!(r12 ==0)) //_LBB256_18
+{
+	r12 = gNumAlignedFree;
+	r12 = r12 >> 2;
+	r14 = heap32[(r12)];
+	r14 = (r14 + 1)|0;
+	r13 = r13 >> 2;
+	heap32[(r12)] = r14;
+	r12 = heap32[(r13+-1)];
+	heap32[(g0)] = r12;
+	free(i7);
+}
+	r12 = r11 >> 2;
+	heap32[(r12)] = 0;
+}
+	r12 = 1;
+	r11 = r11 >> 2;
+	heap8[r0+24] = r12;
+	heap32[(r11)] = r10;
+	heap32[(r7+4)] = r9;
+	if(r8 >=r9) //_LBB256_21
+{
+break _3;
+}
+}
+_26: while(true){
+	r0 = r8 << 2;
+	r10 = heap32[(r7+5)];
+	r0 = (r10 + r0)|0;
+	r8 = (r8 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+if(!(r9 !=r8)) //_LBB256_20
+{
+break _3;
+}
+}
+}
+}
+} while(0);
+	heap32[(r7+3)] = r9;
+_29: do {
+if(!(r9 <1)) //_LBB256_27
+{
+	r0 = r1 == 0 ? r3 : r2;
+	r1 = 0;
+_31: while(true){
+	r2 = heap32[(r6+16)];
+	if(r2 ==0) //_LBB256_25
+{
+	r2 = (r1 * 20)|0;
+	r2 = r2 << 2;
+	r3 = heap32[(r6+6)];
+	r2 = (r3 + r2)|0;
+	r2 = r2 >> 2;
+	r3 = heap32[(r5+48)];
+	r2 = heap32[(r2+16)];
+	heap32[(r5+48)] = r2;
+	r2 = heap32[(r7+1)];
+	r8 = r2 >> 2;
+	r8 = heap32[(r8)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	r10 = heap32[(r7+8)];
+	r11 = heap32[(r7+5)];
+	r12 = r1 << 2;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r10;
+	r2 = (r11 + r12)|0;
+	r2 = r2 >> 2;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	heap32[(r2)] = r_g0;
+	heap32[(r5+48)] = r3;
+}
+else{
+	r2 = r1 << 2;
+	r3 = heap32[(r7+5)];
+	r2 = (r3 + r2)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = 0;
+}
+	r1 = (r1 + 1)|0;
+if(!(r9 !=r1)) //_LBB256_23
+{
+break _29;
+}
+}
+}
+} while(0);
+	return;
+}
+else{
+	r0 = _2E_str99;
+	r1 = _2E_str1100;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 44;
+	_assert(i7);
+}
+}
+
+function _ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+var __label__ = 0;
+	i7 = sp + -328;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heapU8[r0+28];
+	r4 = r3 == 0 ? r1 : r2;
+	r5 = r4 >> 2;
+	r6 = heap32[(r5+48)];
+	r6 = r6 >> 2;
+	r7 = heap32[(r6+1)];
+	if(r7 ==31) //_LBB257_2
+{
+	r7 = r0 >> 2;
+	r8 = heap32[(r6+17)];
+	r9 = heap32[(r7+10)];
+if(!(r8 ==r9)) //_LBB257_9
+{
+	r8 = heap32[(r7+3)];
+if(!(r8 <1)) //_LBB257_8
+{
+	r9 = 0;
+_7: while(true){
+	r10 = heap32[(r7+5)];
+	r11 = r9 << 2;
+	r10 = (r10 + r11)|0;
+	r10 = r10 >> 2;
+	r10 = heap32[(r10)];
+if(!(r10 ==0)) //_LBB257_7
+{
+	r12 = r10 >> 2;
+	r12 = heap32[(r12)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12)];
+	heap32[(g0)] = r10;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+	r10 = heap32[(r7+1)];
+	r12 = r10 >> 2;
+	r13 = heap32[(r7+5)];
+	r11 = (r13 + r11)|0;
+	r12 = heap32[(r12)];
+	r12 = r12 >> 2;
+	r11 = r11 >> 2;
+	r12 = heap32[(r12+13)];
+	r11 = heap32[(r11)];
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r11;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+}
+	r9 = (r9 + 1)|0;
+if(!(r8 !=r9)) //_LBB257_5
+{
+break _7;
+}
+}
+}
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	_ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i7);
+}
+	r0 = heap32[(fp+3)];
+	r8 = heap32[(fp+4)];
+	r1 = r3 == 0 ? r2 : r1;
+	r2 = _ZTV22btCompoundLeafCallback;
+	r3 = heap32[(r6+16)];
+	r9 = heap32[(r7+8)];
+	r10 = heap32[(r7+5)];
+	r11 = heap32[(r7+1)];
+	r12 = sp + -32;
+	r2 = (r2 + 8)|0;
+	r13 = r12 >> 2;
+	heap32[(fp+-8)] = r2;
+	heap32[(r13+1)] = r4;
+	heap32[(r13+2)] = r1;
+	heap32[(r13+3)] = r11;
+	heap32[(r13+4)] = r0;
+	heap32[(r13+5)] = r8;
+	heap32[(r13+6)] = r10;
+	r0 = sp + -56;
+	r2 = 1;
+	heap32[(r13+7)] = r9;
+	r4 = r0 >> 2;
+	heap8[sp+-40] = r2;
+	heap32[(r4+3)] = 0;
+	r9 = (r8 + 72)|0;
+	r10 = (r8 + 8)|0;
+	r11 = 0;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+_14: while(true){
+	r13 = heap32[(r7+3)];
+	if(r13 >r11) //_LBB257_10
+{
+	r13 = heap32[(r7+5)];
+	r14 = r11 << 2;
+	r13 = (r13 + r14)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13)];
+if(!(r13 ==0)) //_LBB257_27
+{
+	r14 = r13 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+4)];
+	heap32[(g0)] = r13;
+	heap32[(g0+1)] = r0;
+	r13 = 0;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+_19: while(true){
+	r14 = heap32[(r4+3)];
+	r15 = heap32[(r4+1)];
+	if(r15 >r13) //_LBB257_12
+{
+	r15 = r13 << 2;
+	r14 = (r14 + r15)|0;
+	r14 = r14 >> 2;
+	r14 = heap32[(r14)];
+	r15 = r14 >> 2;
+	r16 = heap32[(r15+279)];
+if(!(r16 ==0)) //_LBB257_20
+{
+	r16 = r8 >> 2;
+	heap32[(r16+1)] = r14;
+	if(r14 !=0) //_LBB257_15
+{
+	r17 = heap32[(r15+279)];
+if(!(r17 ==0)) //_LBB257_19
+{
+	r15 = heap32[(r15+277)];
+	r17 = heap32[(r16+34)];
+	if(r15 ==r17) //_LBB257_18
+{
+	heap32[(g0)] = r14;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r9;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+}
+else{
+	heap32[(g0)] = r14;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r10;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+}
+}
+	heap32[(r16+1)] = 0;
+}
+else{
+__label__ = 14;
+break _14;
+}
+}
+	r13 = (r13 + 1)|0;
+}
+else{
+break _19;
+}
+}
+if(!(r14 ==0)) //_LBB257_26
+{
+	r13 = heapU8[sp+-40];
+if(!(r13 ==0)) //_LBB257_25
+{
+	r13 = gNumAlignedFree;
+	r13 = r13 >> 2;
+	r15 = heap32[(r13)];
+	r15 = (r15 + 1)|0;
+	r14 = r14 >> 2;
+	heap32[(r13)] = r15;
+	r13 = heap32[(r14+-1)];
+	heap32[(g0)] = r13;
+	free(i7);
+}
+	heap32[(r4+3)] = 0;
+}
+	r13 = 1;
+	heap8[sp+-40] = r13;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+}
+	r11 = (r11 + 1)|0;
+}
+else{
+__label__ = 29;
+break _14;
+}
+}
+switch(__label__ ){//multiple entries
+case 29:
+	heap8[sp+-40] = r2;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+_42: do {
+	if(r3 ==0) //_LBB257_31
+{
+	if(r13 <1) //_LBB257_50
+{
+__label__ = 49;
+}
+else{
+	r0 = 0;
+_45: while(true){
+	r3 = (r0 * 20)|0;
+	r4 = heap32[(r6+6)];
+	r3 = r3 << 2;
+	r3 = (r4 + r3)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+16)];
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r0;
+	r0 = (r0 + 1)|0;
+	_ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i7);
+if(!(r13 !=r0)) //_LBB257_33
+{
+__label__ = 34;
+break _42;
+}
+}
+}
+}
+else{
+	r13 = r1 >> 2;
+	f0 = heapFloat[(r5+1)];
+	f1 = heapFloat[(r13+1)];
+	f2 = heapFloat[(r5+5)];
+	f3 = heapFloat[(r13+5)];
+	f4 = heapFloat[(r13+2)];
+	f5 = heapFloat[(r13+6)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r5+9)];
+	f9 = heapFloat[(r13+9)];
+	f10 = heapFloat[(r5+2)];
+	f11 = heapFloat[(r5+6)];
+	f12 = heapFloat[(r5+3)];
+	f13 = heapFloat[(r13+13)];
+	f14 = heapFloat[(r13+3)];
+	f15 = heapFloat[(r5+7)];
+	f16 = heapFloat[(r5+14)];
+	f17 = heapFloat[(r13+14)];
+	f18 = heapFloat[(r13+7)];
+	f19 = heapFloat[(r5+10)];
+	f20 = heapFloat[(r5+15)];
+	f21 = heapFloat[(r5+11)];
+	f22 = heapFloat[(r13+15)];
+	f23 = heapFloat[(r13+11)];
+	f24 = heapFloat[(r13+10)];
+	f25 = heapFloat[(r5+13)];
+	f26 = f4*f0;
+	f27 = f5*f2;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	r0 = sp + -152;
+	f28 = f14*f0;
+	f29 = f18*f2;
+	f26 = f26+f27;
+	f27 = f24*f8;
+	f6 = f6+f7;
+	r4 = r0 >> 2;
+	f7 = f28+f29;
+	f28 = f23*f8;
+	f26 = f26+f27;
+	heapFloat[(fp+-38)] = f6;
+	f6 = f1*f10;
+	f27 = f3*f11;
+	f7 = f7+f28;
+	heapFloat[(r4+1)] = f26;
+	heapFloat[(r4+2)] = f7;
+	f7 = f4*f10;
+	f26 = f5*f11;
+	f6 = f6+f27;
+	f27 = f9*f19;
+	f28 = f14*f10;
+	f29 = f18*f11;
+	f7 = f7+f26;
+	f26 = f24*f19;
+	f6 = f6+f27;
+	heap32[(r4+3)] = 0;
+	f27 = f28+f29;
+	f28 = f23*f19;
+	f7 = f7+f26;
+	heapFloat[(r4+4)] = f6;
+	f1 = f1*f12;
+	f3 = f3*f15;
+	f6 = f27+f28;
+	heapFloat[(r4+5)] = f7;
+	heapFloat[(r4+6)] = f6;
+	f4 = f4*f12;
+	f5 = f5*f15;
+	f1 = f1+f3;
+	f3 = f9*f21;
+	f6 = -f25;
+	f7 = f14*f12;
+	f9 = f18*f15;
+	f4 = f4+f5;
+	f5 = f24*f21;
+	f1 = f1+f3;
+	heap32[(r4+7)] = 0;
+	f3 = f0*f13;
+	f14 = f2*f17;
+	f0 = f0*f6;
+	f2 = f2*f16;
+	f7 = f7+f9;
+	f9 = f23*f21;
+	f4 = f4+f5;
+	heapFloat[(r4+8)] = f1;
+	f1 = f10*f13;
+	f5 = f11*f17;
+	f10 = f10*f6;
+	f11 = f11*f16;
+	f3 = f3+f14;
+	f14 = f8*f22;
+	f0 = f0-f2;
+	f2 = f8*f20;
+	f7 = f7+f9;
+	heapFloat[(r4+9)] = f4;
+	heapFloat[(r4+10)] = f7;
+	f4 = f12*f13;
+	f7 = f15*f17;
+	f6 = f12*f6;
+	f8 = f15*f16;
+	f1 = f1+f5;
+	f5 = f19*f22;
+	f9 = f10-f11;
+	f10 = f19*f20;
+	f3 = f3+f14;
+	f0 = f0-f2;
+	f2 = f4+f7;
+	f4 = f21*f22;
+	f6 = f6-f8;
+	f7 = f21*f20;
+	f1 = f1+f5;
+	f5 = f9-f10;
+	f0 = f3+f0;
+	heap32[(r4+11)] = 0;
+	f2 = f2+f4;
+	f3 = f6-f7;
+	f1 = f1+f5;
+	heapFloat[(r4+12)] = f0;
+	f0 = f2+f3;
+	heapFloat[(r4+13)] = f1;
+	heapFloat[(r4+14)] = f0;
+	heap32[(r4+15)] = 0;
+	r13 = heap32[(r13+48)];
+	r4 = r13 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	r8 = sp + -72;
+	r9 = sp + -88;
+	heap32[(g0)] = r13;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r9;
+	r13 = sp + -184;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r0 = r13 >> 2;
+	r4 = r8 >> 2;
+	heap32[(fp+-46)] = heap32[(fp+-18)];
+	heap32[(r0+1)] = heap32[(r4+1)];
+	heap32[(r0+2)] = heap32[(r4+2)];
+	heap32[(r0+3)] = heap32[(r4+3)];
+	r4 = r9 >> 2;
+	heap32[(r0+4)] = heap32[(fp+-22)];
+	heap32[(r0+5)] = heap32[(r4+1)];
+	heap32[(r0+6)] = heap32[(r4+2)];
+	r3 = r3 >> 2;
+	heap32[(r0+7)] = heap32[(r4+3)];
+	r0 = heap32[(r3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r13;
+	heap32[(g0+2)] = r12;
+	_ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7);
+__label__ = 34;
+}
+} while(0);
+_48: do {
+if (__label__ == 34){
+	r0 = heap32[(r7+3)];
+if(!(r0 <1)) //_LBB257_50
+{
+	r3 = 0;
+	r4 = (r1 + 4)|0;
+	r0 = (r3 - r0)|0;
+_51: while(true){
+	r8 = heap32[(r7+5)];
+	r9 = r3 << 2;
+	r8 = (r8 - r9)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+_53: do {
+if(!(r8 ==0)) //_LBB257_49
+{
+	r8 = (r3 * -20)|0;
+	r10 = heap32[(r6+6)];
+	r8 = r8 << 2;
+	r8 = (r10 + r8)|0;
+	r8 = r8 >> 2;
+	f0 = heapFloat[(r5+1)];
+	f1 = heapFloat[(r8)];
+	f2 = heapFloat[(r5+2)];
+	f3 = heapFloat[(r8+4)];
+	f4 = heapFloat[(r8+1)];
+	f5 = heapFloat[(r8+5)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r5+3)];
+	f9 = heapFloat[(r8+8)];
+	f10 = heapFloat[(r5+5)];
+	f11 = heapFloat[(r5+6)];
+	f12 = heapFloat[(r5+9)];
+	f13 = heapFloat[(r8+12)];
+	f14 = heapFloat[(r8+2)];
+	f15 = heapFloat[(r5+10)];
+	f16 = heapFloat[(r8+13)];
+	f17 = heapFloat[(r8+6)];
+	r10 = heap32[(r8+16)];
+	f18 = heapFloat[(r5+7)];
+	f19 = heapFloat[(r8+14)];
+	f20 = heapFloat[(r5+11)];
+	f21 = heapFloat[(r8+10)];
+	f22 = heapFloat[(r8+9)];
+	f23 = f4*f0;
+	f24 = f5*f2;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	f25 = heapFloat[(r5+13)];
+	f26 = heapFloat[(r5+14)];
+	f27 = heapFloat[(r5+15)];
+	r8 = sp + -248;
+	f28 = f14*f0;
+	f29 = f17*f2;
+	f23 = f23+f24;
+	f24 = f22*f8;
+	f6 = f6+f7;
+	r11 = r8 >> 2;
+	f7 = f28+f29;
+	f28 = f21*f8;
+	f23 = f23+f24;
+	heapFloat[(fp+-62)] = f6;
+	f6 = f1*f10;
+	f24 = f3*f11;
+	f7 = f7+f28;
+	heapFloat[(r11+1)] = f23;
+	heapFloat[(r11+2)] = f7;
+	f7 = f4*f10;
+	f23 = f5*f11;
+	f6 = f6+f24;
+	f24 = f9*f18;
+	f28 = f14*f10;
+	f29 = f17*f11;
+	f7 = f7+f23;
+	f23 = f22*f18;
+	f6 = f6+f24;
+	heap32[(r11+3)] = 0;
+	f24 = f28+f29;
+	f28 = f21*f18;
+	f7 = f7+f23;
+	heapFloat[(r11+4)] = f6;
+	f1 = f1*f12;
+	f3 = f3*f15;
+	f6 = f24+f28;
+	heapFloat[(r11+5)] = f7;
+	heapFloat[(r11+6)] = f6;
+	f4 = f4*f12;
+	f5 = f5*f15;
+	f1 = f1+f3;
+	f3 = f9*f20;
+	f6 = f14*f12;
+	f7 = f17*f15;
+	f4 = f4+f5;
+	f5 = f22*f20;
+	f1 = f1+f3;
+	heap32[(r11+7)] = 0;
+	f0 = f0*f13;
+	f2 = f2*f16;
+	f3 = f6+f7;
+	f6 = f21*f20;
+	f4 = f4+f5;
+	heapFloat[(r11+8)] = f1;
+	f1 = f10*f13;
+	f5 = f11*f16;
+	f0 = f0+f2;
+	f2 = f8*f19;
+	f3 = f3+f6;
+	heapFloat[(r11+9)] = f4;
+	f0 = f0+f2;
+	heapFloat[(r11+10)] = f3;
+	f2 = f12*f13;
+	f3 = f15*f16;
+	f1 = f1+f5;
+	f4 = f18*f19;
+	f1 = f1+f4;
+	f2 = f2+f3;
+	f3 = f20*f19;
+	f0 = f0+f25;
+	heap32[(r11+11)] = 0;
+	f2 = f2+f3;
+	f1 = f1+f26;
+	heapFloat[(r11+12)] = f0;
+	f0 = f2+f27;
+	heapFloat[(r11+13)] = f1;
+	heapFloat[(r11+14)] = f0;
+	r12 = r10 >> 2;
+	heap32[(r11+15)] = 0;
+	r11 = heap32[(r12)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+2)];
+	r12 = sp + -264;
+	r13 = sp + -280;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r12;
+	heap32[(g0+3)] = r13;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r8 = r1 >> 2;
+	r8 = heap32[(r8+48)];
+	r10 = r8 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+2)];
+	r11 = sp + -296;
+	r14 = sp + -312;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = r14;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	f0 = heapFloat[(fp+-66)];
+	f1 = heapFloat[(fp+-78)];
+	if(f0 >f1) //_LBB257_40
+{
+__label__ = 40;
+}
+else{
+	f0 = heapFloat[(fp+-70)];
+	f1 = heapFloat[(fp+-74)];
+	if(f0 <f1) //_LBB257_40
+{
+__label__ = 40;
+}
+else{
+	r8 = r2;
+__label__ = 41;
+}
+}
+if (__label__ == 40){
+	r8 = 0;
+}
+	r10 = r12 >> 2;
+	r12 = r14 >> 2;
+	f0 = heapFloat[(r10+2)];
+	f1 = heapFloat[(r12+2)];
+	if(f0 >f1) //_LBB257_44
+{
+__label__ = 43;
+}
+else{
+	r14 = r13 >> 2;
+	r15 = r11 >> 2;
+	f0 = heapFloat[(r14+2)];
+	f1 = heapFloat[(r15+2)];
+	if(f0 <f1) //_LBB257_44
+{
+__label__ = 43;
+}
+else{
+__label__ = 44;
+}
+}
+if (__label__ == 43){
+	r8 = 0;
+}
+	f0 = heapFloat[(r10+1)];
+	f1 = heapFloat[(r12+1)];
+if(!(f0 >f1)) //_LBB257_48
+{
+	r10 = r13 >> 2;
+	r11 = r11 >> 2;
+	f0 = heapFloat[(r10+1)];
+	f1 = heapFloat[(r11+1)];
+if(!(f0 <f1)) //_LBB257_48
+{
+	r8 = r8 & 255;
+	if(r8 !=0) //_LBB257_49
+{
+break _53;
+}
+}
+}
+	r8 = heap32[(r7+5)];
+	r8 = (r8 - r9)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+	r10 = r8 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10)];
+	heap32[(g0)] = r8;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	r8 = heap32[(r7+1)];
+	r10 = r8 >> 2;
+	r11 = heap32[(r7+5)];
+	r11 = (r11 - r9)|0;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r11 = r11 >> 2;
+	r10 = heap32[(r10+13)];
+	r11 = heap32[(r11)];
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r11;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	r8 = heap32[(r7+5)];
+	r8 = (r8 - r9)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = 0;
+}
+} while(0);
+	r3 = (r3 + -1)|0;
+if(!(r0 !=r3)) //_LBB257_36
+{
+break _48;
+}
+}
+}
+}
+} while(0);
+	return;
+break;
+case 14:
+	r14 = _2E_str59;
+	r0 = _2E_str160;
+	heap32[(g0)] = r14;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 101;
+	_assert(i7);
+break;
+}
+}
+else{
+	r0 = _2E_str99;
+	r1 = _2E_str1100;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 199;
+	_assert(i7);
+}
+}
+
+function _ZN28btCompoundCollisionAlgorithmD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV28btCompoundCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+3)];
+if(!(r1 <1)) //_LBB258_5
+{
+	r3 = 0;
+_3: while(true){
+	r4 = heap32[(r2+5)];
+	r5 = r3 << 2;
+	r4 = (r4 + r5)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+if(!(r4 ==0)) //_LBB258_4
+{
+	r6 = r4 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+	heap32[(g0)] = r4;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r4 = heap32[(r2+1)];
+	r6 = r4 >> 2;
+	r7 = heap32[(r2+5)];
+	r5 = (r7 + r5)|0;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r5 = r5 >> 2;
+	r6 = heap32[(r6+13)];
+	r5 = heap32[(r5)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+}
+	r3 = (r3 + 1)|0;
+	if(r1 !=r3) //_LBB258_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r1 = heap32[(r2+5)];
+if(!(r1 ==0)) //_LBB258_9
+{
+	r3 = heapU8[r0+24];
+if(!(r3 ==0)) //_LBB258_8
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+5)] = 0;
+}
+	r1 = 1;
+	heap8[r0+24] = r1;
+	heap32[(r2+5)] = 0;
+	r1 = _ZTV30btActivatingCollisionAlgorithm;
+	heap32[(r2+3)] = 0;
+	r1 = (r1 + 8)|0;
+	heap32[(r2+4)] = 0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN28btCompoundCollisionAlgorithmD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV28btCompoundCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+3)];
+if(!(r1 <1)) //_LBB259_5
+{
+	r3 = 0;
+_3: while(true){
+	r4 = heap32[(r2+5)];
+	r5 = r3 << 2;
+	r4 = (r4 + r5)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+if(!(r4 ==0)) //_LBB259_4
+{
+	r6 = r4 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+	heap32[(g0)] = r4;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r4 = heap32[(r2+1)];
+	r6 = r4 >> 2;
+	r7 = heap32[(r2+5)];
+	r5 = (r7 + r5)|0;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r5 = r5 >> 2;
+	r6 = heap32[(r6+13)];
+	r5 = heap32[(r5)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+}
+	r3 = (r3 + 1)|0;
+	if(r1 !=r3) //_LBB259_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r1 = heap32[(r2+5)];
+if(!(r1 ==0)) //_LBB259_9
+{
+	r3 = heapU8[r0+24];
+if(!(r3 ==0)) //_LBB259_8
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+5)] = 0;
+}
+	r1 = 1;
+	heap8[r0+24] = r1;
+	heap32[(r2+5)] = 0;
+	r0 = _ZTV30btActivatingCollisionAlgorithm;
+	heap32[(r2+3)] = 0;
+	r0 = (r0 + 8)|0;
+	heap32[(r2+4)] = 0;
+	heap32[(r2)] = r0;
+	return;
+}
+
+function _ZNK21btConvexInternalShape15getLocalScalingEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = (r0 + 12)|0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN21btConvexInternalShape9setMarginEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	heap32[(r0+11)] = heap32[(fp+1)];
+	return;
+}
+
+function _ZNK21btConvexInternalShape9getMarginEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var f0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+11)];
+	f_g0 = f0;
+	return;
+}
+
+function _ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 52;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK15btTriangleShape14getNumVerticesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 3;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK15btTriangleShape9getVertexEiR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r0 = r0 << 4;
+	r2 = heap32[(fp+2)];
+	r0 = (r1 + r0)|0;
+	r1 = r2 >> 2;
+	r0 = r0 >> 2;
+	heap32[(r1)] = heap32[(r0+13)];
+	heap32[(r1+1)] = heap32[(r0+14)];
+	heap32[(r1+2)] = heap32[(r0+15)];
+	heap32[(r1+3)] = heap32[(r0+16)];
+	return;
+}
+
+function _ZNK15btTriangleShape11getNumEdgesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 3;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK15btTriangleShape7getEdgeEiR9btVector3S1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+24)];
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+24)];
+	r2 = (r3 + 1)|0;
+	r2 = (r2 % 3)|0;
+	r3 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+18)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+2)];
+	r2 = r0 >> 2;
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r2+13)];
+	f1 = heapFloat[(r1)];
+	f2 = heapFloat[(r2+17)];
+	f3 = heapFloat[(r2+21)];
+	f4 = heapFloat[(r2+14)];
+	f5 = heapFloat[(r1+1)];
+	f6 = heapFloat[(r2+18)];
+	f7 = heapFloat[(r2+22)];
+	f0 = f1*f0;
+	f4 = f5*f4;
+	f8 = heapFloat[(r2+15)];
+	f9 = heapFloat[(r1+2)];
+	f10 = heapFloat[(r2+19)];
+	f11 = heapFloat[(r2+23)];
+	f2 = f1*f2;
+	f6 = f5*f6;
+	f1 = f1*f3;
+	f3 = f5*f7;
+	f0 = f0+f4;
+	f4 = f9*f8;
+	f2 = f2+f6;
+	f5 = f9*f10;
+	f1 = f1+f3;
+	f3 = f9*f11;
+	f0 = f0+f4;
+	f2 = f2+f5;
+	r1 = heap32[(fp)];
+	f1 = f1+f3;
+	if(f0 >=f2) //_LBB269_2
+{
+	r2 = 2;
+	r3 = 0;
+	r2 = f0 < f1 ? r2 : r3;
+}
+else{
+	r2 = 2;
+	r3 = 1;
+	r2 = f2 < f1 ? r2 : r3;
+}
+	r2 = r2 << 4;
+	r0 = (r0 + r2)|0;
+	r1 = r1 >> 2;
+	r0 = r0 >> 2;
+	heap32[(r1)] = heap32[(r0+13)];
+	heap32[(r1+1)] = heap32[(r0+14)];
+	heap32[(r1+2)] = heap32[(r0+15)];
+	heap32[(r1+3)] = heap32[(r0+16)];
+	return;
+}
+
+function _ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+3)];
+if(!(r0 <1)) //_LBB270_6
+{
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r2 = (r2 + 8)|0;
+	r3 = (r3 + 12)|0;
+_3: while(true){
+	r4 = r1 >> 2;
+	r5 = r2 >> 2;
+	f0 = heapFloat[(r4+13)];
+	f1 = heapFloat[(r5+-2)];
+	f2 = heapFloat[(r4+17)];
+	f3 = heapFloat[(r4+21)];
+	f4 = heapFloat[(r4+14)];
+	f5 = heapFloat[(r5+-1)];
+	f6 = heapFloat[(r4+18)];
+	f7 = heapFloat[(r4+22)];
+	f0 = f1*f0;
+	f4 = f5*f4;
+	f8 = heapFloat[(r4+15)];
+	f9 = heapFloat[(r5)];
+	f10 = heapFloat[(r4+19)];
+	f11 = heapFloat[(r4+23)];
+	f2 = f1*f2;
+	f6 = f5*f6;
+	f1 = f1*f3;
+	f3 = f5*f7;
+	f0 = f0+f4;
+	f4 = f9*f8;
+	f2 = f2+f6;
+	f5 = f9*f10;
+	f1 = f1+f3;
+	f3 = f9*f11;
+	f0 = f0+f4;
+	f2 = f2+f5;
+	f1 = f1+f3;
+	if(f0 >=f2) //_LBB270_4
+{
+	r4 = 2;
+	r5 = 0;
+	r4 = f0 < f1 ? r4 : r5;
+}
+else{
+	r4 = 2;
+	r5 = 1;
+	r4 = f2 < f1 ? r4 : r5;
+}
+	r4 = r4 << 4;
+	r4 = (r1 + r4)|0;
+	r5 = r3 >> 2;
+	r4 = r4 >> 2;
+	heap32[(r5+-3)] = heap32[(r4+13)];
+	heap32[(r5+-2)] = heap32[(r4+14)];
+	r0 = (r0 + -1)|0;
+	r2 = (r2 + 16)|0;
+	r3 = (r3 + 16)|0;
+	heap32[(r5+-1)] = heap32[(r4+15)];
+	heap32[(r5)] = heap32[(r4+16)];
+	if(r0 !=0) //_LBB270_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function _ZNK15btTriangleShape8getPlaneER9btVector3S1_i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+28)];
+	r2 = heap32[(fp+3)];
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZNK15btTriangleShape12getNumPlanesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK15btTriangleShape7getNameEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _2E_str109;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 2;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN24btConvexTriangleCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV24btConvexTriangleCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	r1 = heap32[(r0+12)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+5)];
+	r3 = heap32[(r0+16)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = heap32[(r0+12)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	r3 = heap32[(r0+16)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	r1 = _ZTV18btTriangleCallback;
+	r1 = (r1 + 8)|0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN24btConvexTriangleCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV24btConvexTriangleCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+12)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+5)];
+	r4 = heap32[(r2+16)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+12)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	r4 = heap32[(r2+16)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	r1 = _ZTV18btTriangleCallback;
+	r1 = (r1 + 8)|0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+var __label__ = 0;
+	i7 = sp + -240;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+13)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(r0+12)];
+	r4 = heap32[(r0+2)];
+if(!(r1 ==0)) //_LBB277_4
+{
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+if(!(r1 ==0)) //_LBB277_4
+{
+	r5 = r1 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+12)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r1 = r_g0 & 1;
+if(!(r1 ==0)) //_LBB277_4
+{
+	r1 = sp + -112;
+	r5 = r1 >> 2;
+	heap32[(fp+-28)] = 1065353216;
+	heap32[(r5+1)] = 1065353216;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+	r5 = heap32[(r0+13)];
+	r5 = r5 >> 2;
+	r6 = r4 >> 2;
+	r7 = r2 >> 2;
+	r8 = heap32[(r5+5)];
+	r8 = r8 >> 2;
+	f0 = heapFloat[(r7+4)];
+	f1 = heapFloat[(r6+1)];
+	f2 = heapFloat[(r7+5)];
+	f3 = heapFloat[(r6+2)];
+	r8 = heap32[(r8)];
+	f4 = heapFloat[(r6+5)];
+	f5 = heapFloat[(r6+6)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r7+6)];
+	f7 = heapFloat[(r6+3)];
+	r8 = r8 >> 2;
+	f8 = heapFloat[(r6+9)];
+	f9 = heapFloat[(r6+10)];
+	f10 = heapFloat[(r6+7)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r6+11)];
+	r8 = heap32[(r8+2)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r6+13)];
+	f8 = heapFloat[(r6+15)];
+	f9 = heapFloat[(r6+14)];
+	r9 = sp + -96;
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	r10 = r9 >> 2;
+	f2 = f4+f9;
+	heapFloat[(fp+-24)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r10+1)] = f2;
+	heapFloat[(r10+2)] = f0;
+	heap32[(r10+3)] = 0;
+	f0 = heapFloat[(r7)];
+	f1 = heapFloat[(r6+1)];
+	f2 = heapFloat[(r7+1)];
+	f3 = heapFloat[(r6+2)];
+	f4 = heapFloat[(r6+5)];
+	f5 = heapFloat[(r6+6)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r7+2)];
+	f7 = heapFloat[(r6+3)];
+	f8 = heapFloat[(r6+9)];
+	f9 = heapFloat[(r6+10)];
+	f10 = heapFloat[(r6+7)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r6+11)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r6+13)];
+	f8 = heapFloat[(r6+15)];
+	f9 = heapFloat[(r6+14)];
+	r10 = sp + -80;
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	r11 = r10 >> 2;
+	f2 = f4+f9;
+	heapFloat[(fp+-20)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r11+1)] = f2;
+	heapFloat[(r11+2)] = f0;
+	heap32[(r11+3)] = 0;
+	r5 = heap32[(r5+5)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r1;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r5 = heap32[(r0+13)];
+	r5 = r5 >> 2;
+	r8 = heap32[(r5+5)];
+	r8 = r8 >> 2;
+	f0 = heapFloat[(r7+8)];
+	f1 = heapFloat[(r6+1)];
+	f2 = heapFloat[(r7+9)];
+	f3 = heapFloat[(r6+2)];
+	r8 = heap32[(r8)];
+	f4 = heapFloat[(r6+5)];
+	f5 = heapFloat[(r6+6)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r7+10)];
+	f7 = heapFloat[(r6+3)];
+	r8 = r8 >> 2;
+	f8 = heapFloat[(r6+9)];
+	f9 = heapFloat[(r6+10)];
+	f10 = heapFloat[(r6+7)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r6+11)];
+	r8 = heap32[(r8+2)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r6+13)];
+	f8 = heapFloat[(r6+15)];
+	f9 = heapFloat[(r6+14)];
+	r9 = sp + -64;
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	r10 = r9 >> 2;
+	f2 = f4+f9;
+	heapFloat[(fp+-16)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r10+1)] = f2;
+	heapFloat[(r10+2)] = f0;
+	heap32[(r10+3)] = 0;
+	f0 = heapFloat[(r7+4)];
+	f1 = heapFloat[(r6+1)];
+	f2 = heapFloat[(r7+5)];
+	f3 = heapFloat[(r6+2)];
+	f4 = heapFloat[(r6+5)];
+	f5 = heapFloat[(r6+6)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r7+6)];
+	f7 = heapFloat[(r6+3)];
+	f8 = heapFloat[(r6+9)];
+	f9 = heapFloat[(r6+10)];
+	f10 = heapFloat[(r6+7)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r6+11)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r6+13)];
+	f8 = heapFloat[(r6+15)];
+	f9 = heapFloat[(r6+14)];
+	r10 = sp + -48;
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	r11 = r10 >> 2;
+	f2 = f4+f9;
+	heapFloat[(fp+-12)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r11+1)] = f2;
+	heapFloat[(r11+2)] = f0;
+	heap32[(r11+3)] = 0;
+	r5 = heap32[(r5+5)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r1;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r5 = heap32[(r0+13)];
+	r5 = r5 >> 2;
+	r8 = heap32[(r5+5)];
+	r8 = r8 >> 2;
+	f0 = heapFloat[(r7)];
+	f1 = heapFloat[(r6+1)];
+	f2 = heapFloat[(r7+1)];
+	f3 = heapFloat[(r6+2)];
+	r8 = heap32[(r8)];
+	f4 = heapFloat[(r6+5)];
+	f5 = heapFloat[(r6+6)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r7+2)];
+	f7 = heapFloat[(r6+3)];
+	r8 = r8 >> 2;
+	f8 = heapFloat[(r6+9)];
+	f9 = heapFloat[(r6+10)];
+	f10 = heapFloat[(r6+7)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r6+11)];
+	r8 = heap32[(r8+2)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r6+13)];
+	f8 = heapFloat[(r6+15)];
+	f9 = heapFloat[(r6+14)];
+	r9 = sp + -32;
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	r10 = r9 >> 2;
+	f2 = f4+f9;
+	heapFloat[(fp+-8)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r10+1)] = f2;
+	heapFloat[(r10+2)] = f0;
+	heap32[(r10+3)] = 0;
+	f0 = heapFloat[(r7+8)];
+	f1 = heapFloat[(r6+1)];
+	f2 = heapFloat[(r7+9)];
+	f3 = heapFloat[(r6+2)];
+	f4 = heapFloat[(r6+5)];
+	f5 = heapFloat[(r6+6)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r7+10)];
+	f7 = heapFloat[(r6+3)];
+	f8 = heapFloat[(r6+9)];
+	f9 = heapFloat[(r6+10)];
+	f10 = heapFloat[(r6+7)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r6+11)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r6+13)];
+	f8 = heapFloat[(r6+15)];
+	f9 = heapFloat[(r6+14)];
+	r6 = sp + -16;
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	r7 = r6 >> 2;
+	f2 = f4+f9;
+	heapFloat[(fp+-4)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r7+1)] = f2;
+	heapFloat[(r7+2)] = f0;
+	heap32[(r7+3)] = 0;
+	r5 = heap32[(r5+5)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r1;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+}
+}
+}
+	r1 = heap32[(r0+1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+48)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+1)];
+if(!(r1 >19)) //_LBB277_9
+{
+	r1 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	r6 = sp + -216;
+	r7 = r6 >> 2;
+	heap32[(r7+2)] = 0;
+	heap32[(r7+3)] = 1065353216;
+	heap32[(r7+4)] = 1065353216;
+	r8 = _ZTV15btTriangleShape;
+	heap32[(r7+5)] = 1065353216;
+	r8 = (r8 + 8)|0;
+	heap32[(r7+6)] = 0;
+	heap32[(fp+-54)] = r8;
+	r2 = r2 >> 2;
+	heap32[(r7+1)] = 1;
+	heap32[(r7+13)] = heap32[(r2)];
+	heap32[(r7+14)] = heap32[(r2+1)];
+	heap32[(r7+15)] = heap32[(r2+2)];
+	heap32[(r7+16)] = heap32[(r2+3)];
+	heap32[(r7+17)] = heap32[(r2+4)];
+	heap32[(r7+18)] = heap32[(r2+5)];
+	heap32[(r7+19)] = heap32[(r2+6)];
+	heap32[(r7+20)] = heap32[(r2+7)];
+	heap32[(r7+21)] = heap32[(r2+8)];
+	heap32[(r7+22)] = heap32[(r2+9)];
+	heap32[(r7+23)] = heap32[(r2+10)];
+	heap32[(r7+24)] = heap32[(r2+11)];
+	r2 = r4 >> 2;
+	heap32[(r7+11)] = heap32[(r0+14)];
+	r4 = heap32[(r2+48)];
+	heap32[(r2+48)] = r6;
+	r6 = r3 >> 2;
+	r7 = heap32[(r6)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+2)];
+	r8 = heap32[(r0+16)];
+	r9 = heap32[(r0+2)];
+	r10 = heap32[(r0+1)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r8;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r7 = r_g0;
+	r8 = heap32[(r0+11)];
+	r9 = r8 >> 2;
+	r10 = heap32[(r9)];
+	r9 = heap32[(r9+34)];
+	r11 = heap32[(r0+2)];
+	if(r9 !=r11) //_LBB277_7
+{
+	r9 = r10 >> 2;
+	r9 = heap32[(r9+3)];
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r5;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+}
+else{
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+2)];
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r5;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+}
+	r1 = r7 >> 2;
+	r5 = heap32[(r1)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+2)];
+	r8 = heap32[(r0+11)];
+	r9 = heap32[(r0+13)];
+	r10 = heap32[(r0+2)];
+	r0 = heap32[(r0+1)];
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r9;
+	heap32[(g0+4)] = r8;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r0 = heap32[(r1)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	heap32[(g0)] = r7;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	r0 = heap32[(r6)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+13)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r7;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	heap32[(r2+48)] = r4;
+}
+	return;
+}
+
+function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -800;var g0 = i7>>2; // save stack
+	r0 = sp + -64;
+	r1 = r0 >> 2;
+	heap32[(fp+-16)] = 1065353216;
+	heap32[(r1+1)] = 0;
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = 0;
+	heap32[(r1+4)] = 0;
+	heap32[(r1+5)] = 1065353216;
+	heap32[(r1+6)] = 0;
+	heap32[(r1+7)] = 0;
+	heap32[(r1+8)] = 0;
+	heap32[(r1+9)] = 0;
+	heap32[(r1+10)] = 1065353216;
+	heap32[(r1+11)] = 0;
+	heap32[(r1+12)] = 0;
+	heap32[(r1+13)] = 0;
+	r2 = _ZTVN12btConvexCast10CastResultE;
+	heap32[(r1+14)] = 0;
+	r3 = sp + -240;
+	r2 = (r2 + 8)|0;
+	heap32[(r1+15)] = 0;
+	r1 = r3 >> 2;
+	heap32[(fp+-60)] = r2;
+	r2 = heap32[(fp)];
+	heap32[(r1+42)] = 0;
+	r4 = r2 >> 2;
+	heap32[(r1+43)] = 0;
+	r5 = sp + -296;
+	heap32[(r1+41)] = heap32[(r4+50)];
+	r6 = r5 >> 2;
+	f0 = heapFloat[(r4+49)];
+	heap32[(r6+2)] = 0;
+	heap32[(r6+3)] = 1065353216;
+	heap32[(r6+4)] = 1065353216;
+	r7 = _ZTV13btSphereShape;
+	heap32[(r6+5)] = 1065353216;
+	r7 = (r7 + 8)|0;
+	heap32[(r6+6)] = 0;
+	heap32[(fp+-74)] = r7;
+	heap32[(r6+1)] = 8;
+	r7 = sp + -400;
+	heapFloat[(r6+7)] = f0;
+	r8 = r7 >> 2;
+	heapFloat[(r6+11)] = f0;
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = 1065353216;
+	heap32[(r8+4)] = 1065353216;
+	heap32[(r8+5)] = 1065353216;
+	r6 = _ZTV15btTriangleShape;
+	heap32[(r8+6)] = 0;
+	r6 = (r6 + 8)|0;
+	heap32[(r8+11)] = 1025758986;
+	r9 = heap32[(fp+1)];
+	heap32[(fp+-100)] = r6;
+	r6 = r9 >> 2;
+	heap32[(r8+1)] = 1;
+	heap32[(r8+13)] = heap32[(r6)];
+	heap32[(r8+14)] = heap32[(r6+1)];
+	heap32[(r8+15)] = heap32[(r6+2)];
+	heap32[(r8+16)] = heap32[(r6+3)];
+	heap32[(r8+17)] = heap32[(r6+4)];
+	heap32[(r8+18)] = heap32[(r6+5)];
+	heap32[(r8+19)] = heap32[(r6+6)];
+	heap32[(r8+20)] = heap32[(r6+7)];
+	heap32[(r8+21)] = heap32[(r6+8)];
+	heap32[(r8+22)] = heap32[(r6+9)];
+	r9 = sp + -760;
+	heap32[(r8+23)] = heap32[(r6+10)];
+	r10 = r9 >> 2;
+	heap32[(r8+24)] = heap32[(r6+11)];
+	r6 = _ZTV22btSubsimplexConvexCast;
+	r8 = 0;
+	heap32[(r10+77)] = 953267991;
+	r10 = sp + -776;
+	r6 = (r6 + 8)|0;
+	heap8[sp+-428] = r8;
+	r8 = r10 >> 2;
+	heap32[(fp+-194)] = r6;
+	heap32[(r8+1)] = r9;
+	heap32[(r8+2)] = r5;
+	heap32[(r8+3)] = r7;
+	r5 = (r2 + 4)|0;
+	r2 = (r2 + 68)|0;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r0;
+	heap32[(g0+4)] = r0;
+	heap32[(g0+5)] = r3;
+	_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB280_3
+{
+	f0 = heapFloat[(r1+41)];
+	f1 = heapFloat[(r4+50)];
+if(!(f1 <=f0)) //_LBB280_3
+{
+	heapFloat[(r4+50)] = f0;
+}
+}
+	return;
+}
+
+function _ZN15btTriangleShapeD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13btConvexShape;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN15btTriangleShapeD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13btConvexShape;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+if(!(r0 ==0)) //_LBB282_2
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _2E_str10;
+	r1 = _2E_str3112;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 125;
+	_assert(i7);
+}
+
+function _ZNK21btConvexInternalShape9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+10)];
+	r3 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	r5 = heap32[(fp+1)];
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r4;
+if(!(r4 ==0)) //_LBB284_2
+{
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+12)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+	r0 = r3 >> 2;
+	r1 = heap32[(r0+1)];
+	heap32[(r5+1)] = r1;
+	heap32[(r5+7)] = heap32[(r0+7)];
+	heap32[(r5+8)] = heap32[(r0+8)];
+	heap32[(r5+9)] = heap32[(r0+9)];
+	heap32[(r5+10)] = heap32[(r0+10)];
+	heap32[(r5+3)] = heap32[(r0+3)];
+	heap32[(r5+4)] = heap32[(r0+4)];
+	heap32[(r5+5)] = heap32[(r0+5)];
+	heap32[(r5+6)] = heap32[(r0+6)];
+	heap32[(r5+11)] = heap32[(r0+11)];
+	r0 = _2E_str1110;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+23)];
+	f1 = heapFloat[(r0+15)];
+	f2 = heapFloat[(r0+19)];
+	f3 = heapFloat[(r0+22)];
+	f4 = heapFloat[(r0+14)];
+	f5 = heapFloat[(r0+18)];
+	f5 = f5-f4;
+	f0 = f0-f1;
+	f1 = f2-f1;
+	f2 = f3-f4;
+	f3 = heapFloat[(r0+21)];
+	f4 = heapFloat[(r0+13)];
+	f6 = heapFloat[(r0+17)];
+	f3 = f3-f4;
+	f4 = f6-f4;
+	r0 = heap32[(fp+2)];
+	f6 = f5*f0;
+	f7 = f1*f2;
+	f6 = f6-f7;
+	f1 = f1*f3;
+	f0 = f4*f0;
+	r0 = r0 >> 2;
+	f0 = f1-f0;
+	heapFloat[(r0)] = f6;
+	f1 = f4*f2;
+	f2 = f5*f3;
+	f1 = f1-f2;
+	heapFloat[(r0+1)] = f0;
+	heapFloat[(r0+2)] = f1;
+	f2 = f6*f6;
+	f0 = f0*f0;
+	heap32[(r0+3)] = 0;
+	f0 = f2+f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f1 =                         1;
+	f0 = f1/f_g0;
+	f1 = heapFloat[(r0)];
+	f1 = f1*f0;
+	heapFloat[(r0)] = f1;
+	f2 = heapFloat[(r0+1)];
+	f2 = f2*f0;
+	heapFloat[(r0+1)] = f2;
+	f3 = heapFloat[(r0+2)];
+	f0 = f3*f0;
+	heapFloat[(r0+2)] = f0;
+	r1 = heap32[(fp+1)];
+if(!(r1 ==0)) //_LBB285_2
+{
+	f1 = -f1;
+	f2 = -f2;
+	heapFloat[(r0)] = f1;
+	f0 = -f0;
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f0;
+}
+	return;
+}
+
+function _ZNK15btTriangleShape8isInsideERK9btVector3f(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	f0 = heapFloat[(r1+19)];
+	f1 = heapFloat[(r1+15)];
+	f2 = heapFloat[(r1+23)];
+	f3 = heapFloat[(r1+17)];
+	f4 = heapFloat[(r1+13)];
+	f5 = heapFloat[(r1+21)];
+	f6 = heapFloat[(r1+22)];
+	f7 = heapFloat[(r1+14)];
+	f8 = heapFloat[(r1+18)];
+	f0 = f0-f1;
+	f6 = f6-f7;
+	f3 = f3-f4;
+	f1 = f2-f1;
+	f2 = f8-f7;
+	f4 = f5-f4;
+	f5 = f2*f1;
+	f7 = f0*f6;
+	f0 = f0*f4;
+	f1 = f3*f1;
+	f5 = f5-f7;
+	f0 = f0-f1;
+	f1 = f3*f6;
+	f2 = f2*f4;
+	f1 = f1-f2;
+	f2 = f5*f5;
+	f3 = f0*f0;
+	f2 = f2+f3;
+	f3 = f1*f1;
+	f2 = f2+f3;
+	heapFloat[(g0)] = f2;
+	sqrtf(i7);
+	r2 = heap32[(fp+1)];
+	f3 =                         1;
+	r2 = r2 >> 2;
+	f2 = f3/f_g0;
+	f4 = f5*f2;
+	f5 = heapFloat[(r2)];
+	f6 = heapFloat[(r1+13)];
+	f0 = f0*f2;
+	f7 = heapFloat[(r2+1)];
+	f8 = heapFloat[(r1+14)];
+	f1 = f1*f2;
+	f2 = heapFloat[(r2+2)];
+	f9 = heapFloat[(r1+15)];
+	f5 = f5*f4;
+	f7 = f7*f0;
+	f6 = f6*f4;
+	f8 = f8*f0;
+	f5 = f5+f7;
+	f2 = f2*f1;
+	f6 = f6+f8;
+	f7 = f9*f1;
+	f8 = heapFloat[(fp+2)];
+	f2 = f5+f2;
+	f5 = f6+f7;
+	f2 = f2-f5;
+	f5 = -f8;
+_1: do {
+	if(f2 <f5) //_LBB286_2
+{
+__label__ = 2;
+}
+else{
+	if(f2 <=f8) //_LBB286_3
+{
+	r3 = 0;
+_4: while(true){
+	if(r3 <3) //_LBB286_4
+{
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+23)];
+	r5 = sp + -32;
+	r6 = sp + -16;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r5;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r5 >> 2;
+	r5 = r6 >> 2;
+	f2 = heapFloat[(r4+2)];
+	f6 = heapFloat[(r5+2)];
+	f7 = heapFloat[(r4+1)];
+	f8 = heapFloat[(r5+1)];
+	f9 = heapFloat[(fp+-8)];
+	f10 = heapFloat[(fp+-4)];
+	f2 = f2-f6;
+	f6 = f9-f10;
+	f7 = f7-f8;
+	f8 = f7*f1;
+	f9 = f2*f0;
+	f2 = f2*f4;
+	f10 = f6*f1;
+	f8 = f8-f9;
+	f2 = f2-f10;
+	f6 = f6*f0;
+	f7 = f7*f4;
+	f6 = f6-f7;
+	f7 = f8*f8;
+	f9 = f2*f2;
+	f7 = f7+f9;
+	f9 = f6*f6;
+	f7 = f7+f9;
+	heapFloat[(g0)] = f7;
+	sqrtf(i7);
+	f7 = f3/f_g0;
+	f9 = heapFloat[(r2)];
+	f8 = f8*f7;
+	f10 = heapFloat[(fp+-4)];
+	f11 = heapFloat[(r2+1)];
+	f2 = f2*f7;
+	f12 = heapFloat[(r5+1)];
+	f9 = f9*f8;
+	f11 = f11*f2;
+	f13 = heapFloat[(r2+2)];
+	f6 = f6*f7;
+	f7 = heapFloat[(r5+2)];
+	f8 = f10*f8;
+	f2 = f12*f2;
+	f9 = f9+f11;
+	f10 = f13*f6;
+	f2 = f8+f2;
+	f6 = f7*f6;
+	f7 = f9+f10;
+	f2 = f2+f6;
+	f2 = f7-f2;
+	if(f2 <f5) //_LBB286_2
+{
+__label__ = 2;
+break _1;
+}
+else{
+	r3 = (r3 + 1)|0;
+}
+}
+else{
+break _4;
+}
+}
+	r0 = 1;
+__label__ = 8;
+}
+else{
+__label__ = 2;
+}
+}
+} while(0);
+if (__label__ == 2){
+	r0 = 0;
+}
+	r0 = r0 & 255;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+23)];
+	f1 = heapFloat[(r0+15)];
+	f2 = heapFloat[(r0+19)];
+	f3 = heapFloat[(r0+22)];
+	f4 = heapFloat[(r0+14)];
+	f5 = heapFloat[(r0+18)];
+	f5 = f5-f4;
+	f0 = f0-f1;
+	f1 = f2-f1;
+	f2 = f3-f4;
+	f3 = heapFloat[(r0+21)];
+	f4 = heapFloat[(r0+13)];
+	f6 = heapFloat[(r0+17)];
+	f3 = f3-f4;
+	f4 = f6-f4;
+	r1 = heap32[(fp+2)];
+	f6 = f5*f0;
+	f7 = f1*f2;
+	f6 = f6-f7;
+	r1 = r1 >> 2;
+	f1 = f1*f3;
+	f0 = f4*f0;
+	f0 = f1-f0;
+	heapFloat[(r1)] = f6;
+	f1 = f4*f2;
+	f2 = f5*f3;
+	f1 = f1-f2;
+	heapFloat[(r1+1)] = f0;
+	heapFloat[(r1+2)] = f1;
+	f2 = f6*f6;
+	f0 = f0*f0;
+	heap32[(r1+3)] = 0;
+	f0 = f2+f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f1 =                         1;
+	f0 = f1/f_g0;
+	f1 = heapFloat[(r1)];
+	f1 = f1*f0;
+	heapFloat[(r1)] = f1;
+	f1 = heapFloat[(r1+1)];
+	f1 = f1*f0;
+	heapFloat[(r1+1)] = f1;
+	f1 = heapFloat[(r1+2)];
+	r2 = heap32[(fp+3)];
+	f0 = f1*f0;
+	r2 = r2 >> 2;
+	heapFloat[(r1+2)] = f0;
+	heap32[(r2)] = heap32[(r0+13)];
+	heap32[(r2+1)] = heap32[(r0+14)];
+	heap32[(r2+2)] = heap32[(r0+15)];
+	heap32[(r2+3)] = heap32[(r0+16)];
+	return;
+}
+
+function _ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -440;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = heapU8[r0+8];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = r0 == 0 ? r1 : r2;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r3+30)];
+	f1 = heapFloat[(r3+14)];
+	f2 = heapFloat[(r3+29)];
+	f3 = heapFloat[(r3+13)];
+	f4 = f2-f3;
+	f5 = f0-f1;
+	f6 = heapFloat[(r3+31)];
+	f7 = heapFloat[(r3+15)];
+	f8 = f6-f7;
+	f4 = f4*f4;
+	f5 = f5*f5;
+	f9 = heapFloat[(r3+62)];
+	f4 = f4+f5;
+	f5 = f8*f8;
+	f8 = f9*f9;
+	f4 = f4+f5;
+if(!(f8 >f4)) //_LBB288_23
+{
+	r0 = r0 == 0 ? r2 : r1;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+48)];
+	r2 = r1 >> 2;
+	r4 = heap32[(r2+1)];
+	r4 = (r4 + -21)|0;
+if(!(uint(r4) >uint(8))) //_LBB288_23
+{
+	f4 = heapFloat[(r0+13)];
+	f5 = heapFloat[(r0+3)];
+	f8 = heapFloat[(r0+2)];
+	f4 = -f4;
+	f9 = heapFloat[(r0+1)];
+	f10 = heapFloat[(r0+7)];
+	f11 = heapFloat[(r0+6)];
+	f12 = heapFloat[(r0+14)];
+	f13 = heapFloat[(r0+5)];
+	f14 = heapFloat[(r3+3)];
+	f15 = heapFloat[(r3+7)];
+	f16 = heapFloat[(r3+2)];
+	f17 = heapFloat[(r3+6)];
+	f18 = heapFloat[(r3+1)];
+	f19 = heapFloat[(r3+5)];
+	f20 = heapFloat[(r3+19)];
+	heapFloat[(fp+-63)] = f20;
+	f21 = heapFloat[(r3+23)];
+	f22 = heapFloat[(r3+18)];
+	f23 = heapFloat[(r3+22)];
+	f24 = heapFloat[(r3+17)];
+	f25 = heapFloat[(r3+21)];
+	f26 = f5*f3;
+	heapFloat[(fp+-65)] = f26;
+	f27 = f10*f1;
+	f28 = f8*f3;
+	heapFloat[(fp+-66)] = f28;
+	f29 = f11*f1;
+	f3 = f9*f3;
+	heapFloat[(fp+-64)] = f3;
+	f1 = f13*f1;
+	f30 = heapFloat[(r0+11)];
+	f3 = heapFloat[(r0+10)];
+	f20 = heapFloat[(r0+15)];
+	f26 = heapFloat[(r0+9)];
+	f28 = f5*f2;
+	heapFloat[(fp+-67)] = f28;
+	f28 = f10*f0;
+	heapFloat[(fp+-69)] = f28;
+	f28 = f5*f4;
+	heapFloat[(fp+-68)] = f28;
+	f28 = f10*f12;
+	heapFloat[(fp+-71)] = f28;
+	f28 = f8*f2;
+	heapFloat[(fp+-70)] = f28;
+	f28 = f11*f0;
+	heapFloat[(fp+-73)] = f28;
+	f28 = f8*f4;
+	heapFloat[(fp+-72)] = f28;
+	f28 = f11*f12;
+	heapFloat[(fp+-78)] = f28;
+	f2 = f9*f2;
+	heapFloat[(fp+-74)] = f2;
+	f0 = f13*f0;
+	heapFloat[(fp+-76)] = f0;
+	f4 = f9*f4;
+	heapFloat[(fp+-75)] = f4;
+	f12 = f13*f12;
+	heapFloat[(fp+-77)] = f12;
+	f0 = heapFloat[(r3+11)];
+	f2 = heapFloat[(r3+10)];
+	f4 = heapFloat[(r3+9)];
+	f12 = heapFloat[(r3+27)];
+	f28 = heapFloat[(r3+26)];
+	heapFloat[(fp+-62)] = f28;
+	f28 = heapFloat[(r3+25)];
+	heapFloat[(fp+-61)] = f28;
+	f28 = heapFloat[(fp+-65)];
+	f27 = f28+f27;
+	heapFloat[(fp+-65)] = f27;
+	f27 = f30*f7;
+	heapFloat[(fp+-99)] = f27;
+	f28 = heapFloat[(fp+-66)];
+	f28 = f28+f29;
+	heapFloat[(fp+-66)] = f28;
+	f29 = f3*f7;
+	heapFloat[(fp+-98)] = f29;
+	f27 = heapFloat[(fp+-64)];
+	f1 = f27+f1;
+	heapFloat[(fp+-80)] = f1;
+	f7 = f26*f7;
+	heapFloat[(fp+-97)] = f7;
+	f27 = f14*f5;
+	heapFloat[(fp+-64)] = f27;
+	f1 = f15*f10;
+	heapFloat[(fp+-82)] = f1;
+	f1 = f16*f5;
+	heapFloat[(fp+-79)] = f1;
+	f1 = f17*f10;
+	heapFloat[(fp+-84)] = f1;
+	f1 = f18*f5;
+	heapFloat[(fp+-81)] = f1;
+	f1 = f19*f10;
+	heapFloat[(fp+-86)] = f1;
+	f1 = f14*f8;
+	heapFloat[(fp+-83)] = f1;
+	f1 = f15*f11;
+	heapFloat[(fp+-88)] = f1;
+	f1 = f16*f8;
+	heapFloat[(fp+-85)] = f1;
+	f1 = f17*f11;
+	heapFloat[(fp+-92)] = f1;
+	f1 = f18*f8;
+	heapFloat[(fp+-87)] = f1;
+	f1 = f19*f11;
+	heapFloat[(fp+-93)] = f1;
+	f14 = f14*f9;
+	heapFloat[(fp+-89)] = f14;
+	f15 = f15*f13;
+	heapFloat[(fp+-94)] = f15;
+	f16 = f16*f9;
+	heapFloat[(fp+-90)] = f16;
+	f17 = f17*f13;
+	heapFloat[(fp+-95)] = f17;
+	f18 = f18*f9;
+	heapFloat[(fp+-91)] = f18;
+	f19 = f19*f13;
+	heapFloat[(fp+-96)] = f19;
+	f1 = heapFloat[(fp+-67)];
+	f7 = heapFloat[(fp+-69)];
+	f1 = f1+f7;
+	f7 = f30*f6;
+	f14 = heapFloat[(fp+-68)];
+	f15 = heapFloat[(fp+-71)];
+	f14 = f14-f15;
+	f15 = f30*f20;
+	f16 = heapFloat[(fp+-70)];
+	f17 = heapFloat[(fp+-73)];
+	f16 = f16+f17;
+	f17 = f3*f6;
+	f18 = heapFloat[(fp+-72)];
+	f19 = heapFloat[(fp+-78)];
+	f18 = f18-f19;
+	f19 = f3*f20;
+	f27 = heapFloat[(fp+-74)];
+	f28 = heapFloat[(fp+-76)];
+	f27 = f27+f28;
+	f6 = f26*f6;
+	f28 = heapFloat[(fp+-75)];
+	f29 = heapFloat[(fp+-77)];
+	f28 = f28-f29;
+	f20 = f26*f20;
+	f29 = heapFloat[(fp+-63)];
+	f29 = f29*f5;
+	heapFloat[(fp+-67)] = f29;
+	f29 = f21*f10;
+	heapFloat[(fp+-69)] = f29;
+	f29 = f22*f5;
+	heapFloat[(fp+-68)] = f29;
+	f29 = f23*f10;
+	f5 = f24*f5;
+	heapFloat[(fp+-70)] = f5;
+	f5 = f25*f10;
+	heapFloat[(fp+-101)] = f5;
+	f10 = heapFloat[(fp+-63)];
+	f5 = f10*f8;
+	heapFloat[(fp+-71)] = f5;
+	f5 = f21*f11;
+	heapFloat[(fp+-73)] = f5;
+	f5 = f22*f8;
+	heapFloat[(fp+-72)] = f5;
+	f5 = f23*f11;
+	heapFloat[(fp+-100)] = f5;
+	f8 = f24*f8;
+	heapFloat[(fp+-74)] = f8;
+	f5 = f25*f11;
+	heapFloat[(fp+-102)] = f5;
+	f8 = f10*f9;
+	heapFloat[(fp+-75)] = f8;
+	f5 = f21*f13;
+	heapFloat[(fp+-103)] = f5;
+	f8 = f22*f9;
+	heapFloat[(fp+-78)] = f8;
+	f5 = f23*f13;
+	heapFloat[(fp+-104)] = f5;
+	f8 = f24*f9;
+	heapFloat[(fp+-76)] = f8;
+	f5 = f25*f13;
+	heapFloat[(fp+-105)] = f5;
+	f8 = heapFloat[(fp+-65)];
+	f9 = heapFloat[(fp+-99)];
+	f8 = f8+f9;
+	heapFloat[(fp+-77)] = f8;
+	f9 = f14-f15;
+	f1 = f1+f7;
+	heapFloat[(fp+-63)] = f1;
+	f7 = heapFloat[(fp+-66)];
+	f10 = heapFloat[(fp+-98)];
+	f7 = f7+f10;
+	heapFloat[(fp+-98)] = f7;
+	f10 = f18-f19;
+	f11 = f16+f17;
+	heapFloat[(fp+-65)] = f11;
+	f13 = heapFloat[(fp+-80)];
+	f14 = heapFloat[(fp+-97)];
+	f1 = f13+f14;
+	heapFloat[(fp+-80)] = f1;
+	f5 = f28-f20;
+	f6 = f27+f6;
+	heapFloat[(fp+-66)] = f6;
+	f7 = heapFloat[(fp+-64)];
+	f8 = heapFloat[(fp+-82)];
+	f1 = f7+f8;
+	heapFloat[(fp+-64)] = f1;
+	f1 = f0*f30;
+	heapFloat[(fp+-82)] = f1;
+	f6 = heapFloat[(fp+-79)];
+	f7 = heapFloat[(fp+-84)];
+	f1 = f6+f7;
+	heapFloat[(fp+-79)] = f1;
+	f1 = f2*f30;
+	heapFloat[(fp+-84)] = f1;
+	f6 = heapFloat[(fp+-81)];
+	f7 = heapFloat[(fp+-86)];
+	f1 = f6+f7;
+	heapFloat[(fp+-81)] = f1;
+	f1 = f4*f30;
+	heapFloat[(fp+-86)] = f1;
+	f6 = heapFloat[(fp+-83)];
+	f7 = heapFloat[(fp+-88)];
+	f1 = f6+f7;
+	heapFloat[(fp+-83)] = f1;
+	f1 = f0*f3;
+	heapFloat[(fp+-88)] = f1;
+	f6 = heapFloat[(fp+-85)];
+	f7 = heapFloat[(fp+-92)];
+	f1 = f6+f7;
+	heapFloat[(fp+-85)] = f1;
+	f1 = f2*f3;
+	heapFloat[(fp+-92)] = f1;
+	f6 = heapFloat[(fp+-87)];
+	f7 = heapFloat[(fp+-93)];
+	f1 = f6+f7;
+	heapFloat[(fp+-87)] = f1;
+	f1 = f4*f3;
+	heapFloat[(fp+-93)] = f1;
+	f6 = heapFloat[(fp+-89)];
+	f7 = heapFloat[(fp+-94)];
+	f1 = f6+f7;
+	heapFloat[(fp+-89)] = f1;
+	f0 = f0*f26;
+	f6 = heapFloat[(fp+-90)];
+	f7 = heapFloat[(fp+-95)];
+	f6 = f6+f7;
+	f2 = f2*f26;
+	f7 = heapFloat[(fp+-91)];
+	f8 = heapFloat[(fp+-96)];
+	f7 = f7+f8;
+	f4 = f4*f26;
+	f8 = heapFloat[(fp+-67)];
+	f11 = heapFloat[(fp+-69)];
+	f8 = f8+f11;
+	f11 = f12*f30;
+	f13 = heapFloat[(fp+-68)];
+	f13 = f13+f29;
+	f28 = heapFloat[(fp+-62)];
+	f14 = f28*f30;
+	f15 = heapFloat[(fp+-70)];
+	f16 = heapFloat[(fp+-101)];
+	f15 = f15+f16;
+	f28 = heapFloat[(fp+-61)];
+	f16 = f28*f30;
+	f17 = heapFloat[(fp+-71)];
+	f18 = heapFloat[(fp+-73)];
+	f17 = f17+f18;
+	f18 = f12*f3;
+	f19 = heapFloat[(fp+-72)];
+	f20 = heapFloat[(fp+-100)];
+	f19 = f19+f20;
+	f28 = heapFloat[(fp+-62)];
+	f20 = f28*f3;
+	f21 = heapFloat[(fp+-74)];
+	f22 = heapFloat[(fp+-102)];
+	f21 = f21+f22;
+	f28 = heapFloat[(fp+-61)];
+	f3 = f28*f3;
+	f22 = heapFloat[(fp+-75)];
+	f23 = heapFloat[(fp+-103)];
+	f22 = f22+f23;
+	f12 = f12*f26;
+	f23 = heapFloat[(fp+-78)];
+	f24 = heapFloat[(fp+-104)];
+	f23 = f23+f24;
+	f28 = heapFloat[(fp+-62)];
+	f24 = f28*f26;
+	f25 = heapFloat[(fp+-76)];
+	f27 = heapFloat[(fp+-105)];
+	f25 = f25+f27;
+	f28 = heapFloat[(fp+-61)];
+	f26 = f28*f26;
+	f27 = heapFloat[(fp+-77)];
+	f27 = f27+f9;
+	f28 = heapFloat[(fp+-98)];
+	f28 = f28+f10;
+	f29 = heapFloat[(fp+-80)];
+	f29 = f29+f5;
+	f30 = heapFloat[(fp+-64)];
+	f1 = heapFloat[(fp+-82)];
+	f1 = f30+f1;
+	heapFloat[(fp+-61)] = f1;
+	f1 = heapFloat[(fp+-79)];
+	f30 = heapFloat[(fp+-84)];
+	f1 = f1+f30;
+	heapFloat[(fp+-62)] = f1;
+	f1 = heapFloat[(fp+-81)];
+	f30 = heapFloat[(fp+-86)];
+	f1 = f1+f30;
+	heapFloat[(fp+-64)] = f1;
+	f1 = heapFloat[(fp+-83)];
+	f30 = heapFloat[(fp+-88)];
+	f1 = f1+f30;
+	heapFloat[(fp+-67)] = f1;
+	f1 = heapFloat[(fp+-85)];
+	f30 = heapFloat[(fp+-92)];
+	f1 = f1+f30;
+	heapFloat[(fp+-68)] = f1;
+	f1 = heapFloat[(fp+-87)];
+	f30 = heapFloat[(fp+-93)];
+	f1 = f1+f30;
+	f30 = heapFloat[(fp+-89)];
+	f0 = f30+f0;
+	f2 = f6+f2;
+	f4 = f7+f4;
+	f6 = heapFloat[(fp+-63)];
+	f6 = f6+f9;
+	f7 = heapFloat[(fp+-65)];
+	f7 = f7+f10;
+	f9 = heapFloat[(fp+-66)];
+	f5 = f9+f5;
+	f8 = f8+f11;
+	f9 = f13+f14;
+	f10 = f15+f16;
+	f11 = f17+f18;
+	f13 = f19+f20;
+	f3 = f21+f3;
+	f12 = f22+f12;
+	f14 = f23+f24;
+	f15 = f25+f26;
+	r0 = sp + -16;
+	r4 = r0 >> 2;
+	heapFloat[(fp+-4)] = f29;
+	heapFloat[(r4+1)] = f28;
+	heapFloat[(r4+2)] = f27;
+	heap32[(r4+3)] = 0;
+	if(f5 <f29) //_LBB288_4
+{
+	heapFloat[(fp+-4)] = f5;
+	f16 = f5;
+}
+else{
+	f16 = f29;
+}
+	if(f7 <f28) //_LBB288_7
+{
+	heapFloat[(r4+1)] = f7;
+	f17 = f7;
+}
+else{
+	f17 = f28;
+}
+	if(f6 <f27) //_LBB288_10
+{
+	heapFloat[(r4+2)] = f6;
+	f18 = f6;
+}
+else{
+	f18 = f27;
+}
+	r5 = sp + -32;
+	r6 = r5 >> 2;
+	heapFloat[(fp+-8)] = f29;
+	heapFloat[(r6+1)] = f28;
+	heapFloat[(r6+2)] = f27;
+	heap32[(r6+3)] = 0;
+	if(f29 <f5) //_LBB288_13
+{
+	heapFloat[(fp+-8)] = f5;
+	f19 = f5;
+}
+else{
+	f19 = f29;
+}
+	if(f28 <f7) //_LBB288_16
+{
+	heapFloat[(r6+1)] = f7;
+	f20 = f7;
+}
+else{
+	f20 = f28;
+}
+	if(f27 <f6) //_LBB288_19
+{
+	heapFloat[(r6+2)] = f6;
+	f21 = f6;
+}
+else{
+	f21 = f27;
+}
+	f22 = heapFloat[(r3+61)];
+	f16 = f16-f22;
+	f17 = f17-f22;
+	heapFloat[(fp+-4)] = f16;
+	f16 = f18-f22;
+	heapFloat[(r4+1)] = f17;
+	f17 = f19+f22;
+	heapFloat[(r4+2)] = f16;
+	f16 = f20+f22;
+	heapFloat[(fp+-8)] = f17;
+	r4 = _ZTVZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback;
+	f17 = f21+f22;
+	heapFloat[(r6+1)] = f16;
+	r7 = sp + -240;
+	r4 = (r4 + 8)|0;
+	heapFloat[(r6+2)] = f17;
+	r6 = r7 >> 2;
+	heap32[(fp+-60)] = r4;
+	heapFloat[(r6+1)] = f4;
+	heapFloat[(r6+2)] = f2;
+	heapFloat[(r6+3)] = f0;
+	heap32[(r6+4)] = 0;
+	heapFloat[(r6+5)] = f1;
+	f0 = heapFloat[(fp+-68)];
+	heapFloat[(r6+6)] = f0;
+	f0 = heapFloat[(fp+-67)];
+	heapFloat[(r6+7)] = f0;
+	heap32[(r6+8)] = 0;
+	f0 = heapFloat[(fp+-64)];
+	heapFloat[(r6+9)] = f0;
+	f0 = heapFloat[(fp+-62)];
+	heapFloat[(r6+10)] = f0;
+	f0 = heapFloat[(fp+-61)];
+	heapFloat[(r6+11)] = f0;
+	heap32[(r6+12)] = 0;
+	heapFloat[(r6+13)] = f29;
+	heapFloat[(r6+14)] = f28;
+	heapFloat[(r6+15)] = f27;
+	heap32[(r6+16)] = 0;
+	heapFloat[(r6+17)] = f15;
+	heapFloat[(r6+18)] = f14;
+	heapFloat[(r6+19)] = f12;
+	heap32[(r6+20)] = 0;
+	heapFloat[(r6+21)] = f3;
+	heapFloat[(r6+22)] = f13;
+	heapFloat[(r6+23)] = f11;
+	heap32[(r6+24)] = 0;
+	heapFloat[(r6+25)] = f10;
+	heapFloat[(r6+26)] = f9;
+	heapFloat[(r6+27)] = f8;
+	heap32[(r6+28)] = 0;
+	heapFloat[(r6+29)] = f5;
+	heapFloat[(r6+30)] = f7;
+	heapFloat[(r6+31)] = f6;
+	heap32[(r6+32)] = 0;
+	heapFloat[(r6+49)] = f22;
+	heap32[(r6+50)] = heap32[(r3+60)];
+if(!(r1 ==0)) //_LBB288_23
+{
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+15)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r5;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f0 = heapFloat[(r6+50)];
+	f1 = heapFloat[(r3+60)];
+if(!(f0 >=f1)) //_LBB288_23
+{
+	heapFloat[(r3+60)] = f0;
+	f_g0 = f0;
+	return;
+}
+}
+}
+}
+	f0 =                         1;
+	f_g0 = f0;
+	return;
+}
+
+function _ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -80;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+8];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+1)];
+	r4 = r1 == 0 ? r2 : r3;
+	r5 = r4 >> 2;
+	r5 = heap32[(r5+48)];
+	r6 = r5 >> 2;
+	r7 = heap32[(r6+1)];
+	r7 = (r7 + -21)|0;
+if(!(uint(r7) >uint(8))) //_LBB289_8
+{
+	r1 = r1 == 0 ? r3 : r2;
+	r2 = r1 >> 2;
+	r2 = heap32[(r2+48)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+1)];
+if(!(r2 >19)) //_LBB289_8
+{
+	r2 = heap32[(fp+3)];
+	r3 = heap32[(fp+4)];
+	r7 = heap32[(r6)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+11)];
+	heap32[(g0)] = r5;
+	r8 = r0 >> 2;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	f0 = f_g0;
+	r7 = r3 >> 2;
+	r9 = heap32[(r8+19)];
+	heap32[(r7+1)] = r9;
+	heap32[(r8+16)] = r2;
+	heapFloat[(r8+17)] = f0;
+	heap32[(r8+14)] = r3;
+	r2 = heap32[(r8+4)];
+	r9 = heap32[(r8+5)];
+	r9 = r9 >> 2;
+	r2 = r2 >> 2;
+	f1 = heapFloat[(r9+1)];
+	f2 = heapFloat[(r2+1)];
+	f3 = heapFloat[(r9+5)];
+	f4 = heapFloat[(r2+5)];
+	f5 = heapFloat[(r2+2)];
+	f6 = heapFloat[(r2+6)];
+	f7 = f2*f1;
+	f8 = f4*f3;
+	f9 = heapFloat[(r9+9)];
+	f10 = heapFloat[(r2+9)];
+	f11 = heapFloat[(r9+2)];
+	f12 = heapFloat[(r9+6)];
+	f13 = heapFloat[(r9+3)];
+	f14 = heapFloat[(r2+13)];
+	f15 = heapFloat[(r2+3)];
+	f16 = heapFloat[(r9+7)];
+	f17 = heapFloat[(r9+14)];
+	f18 = heapFloat[(r2+14)];
+	f19 = heapFloat[(r2+7)];
+	f20 = heapFloat[(r9+10)];
+	f21 = heapFloat[(r9+15)];
+	f22 = heapFloat[(r9+11)];
+	f23 = heapFloat[(r2+15)];
+	f24 = heapFloat[(r2+11)];
+	f25 = heapFloat[(r2+10)];
+	f26 = heapFloat[(r9+13)];
+	f27 = f5*f1;
+	f28 = f6*f3;
+	f7 = f7+f8;
+	f8 = f10*f9;
+	r9 = sp + -64;
+	f29 = f15*f1;
+	f30 = f19*f3;
+	f27 = f27+f28;
+	f28 = f25*f9;
+	f7 = f7+f8;
+	r10 = r9 >> 2;
+	f8 = f29+f30;
+	f29 = f24*f9;
+	f27 = f27+f28;
+	heapFloat[(fp+-16)] = f7;
+	f7 = f2*f11;
+	f28 = f4*f12;
+	f8 = f8+f29;
+	heapFloat[(r10+1)] = f27;
+	heapFloat[(r10+2)] = f8;
+	f8 = f5*f11;
+	f27 = f6*f12;
+	f7 = f7+f28;
+	f28 = f10*f20;
+	f29 = f15*f11;
+	f30 = f19*f12;
+	f8 = f8+f27;
+	f27 = f25*f20;
+	f7 = f7+f28;
+	heap32[(r10+3)] = 0;
+	f28 = f29+f30;
+	f29 = f24*f20;
+	f8 = f8+f27;
+	heapFloat[(r10+4)] = f7;
+	f2 = f2*f13;
+	f4 = f4*f16;
+	f7 = f28+f29;
+	heapFloat[(r10+5)] = f8;
+	heapFloat[(r10+6)] = f7;
+	f5 = f5*f13;
+	f6 = f6*f16;
+	f2 = f2+f4;
+	f4 = f10*f22;
+	f7 = -f26;
+	f8 = f15*f13;
+	f10 = f19*f16;
+	f5 = f5+f6;
+	f6 = f25*f22;
+	f2 = f2+f4;
+	heap32[(r10+7)] = 0;
+	f4 = f1*f14;
+	f15 = f3*f18;
+	f1 = f1*f7;
+	f3 = f3*f17;
+	f8 = f8+f10;
+	f10 = f24*f22;
+	f5 = f5+f6;
+	heapFloat[(r10+8)] = f2;
+	f2 = f11*f14;
+	f6 = f12*f18;
+	f11 = f11*f7;
+	f12 = f12*f17;
+	f4 = f4+f15;
+	f15 = f9*f23;
+	f1 = f1-f3;
+	f3 = f9*f21;
+	f8 = f8+f10;
+	heapFloat[(r10+9)] = f5;
+	heapFloat[(r10+10)] = f8;
+	f5 = f13*f14;
+	f8 = f16*f18;
+	f7 = f13*f7;
+	f9 = f16*f17;
+	f2 = f2+f6;
+	f6 = f20*f23;
+	f10 = f11-f12;
+	f11 = f20*f21;
+	f4 = f4+f15;
+	f1 = f1-f3;
+	f3 = f5+f8;
+	f5 = f22*f23;
+	f7 = f7-f9;
+	f8 = f22*f21;
+	f2 = f2+f6;
+	f6 = f10-f11;
+	f1 = f4+f1;
+	heap32[(r10+11)] = 0;
+	f3 = f3+f5;
+	f4 = f7-f8;
+	f2 = f2+f6;
+	heapFloat[(r10+12)] = f1;
+	f1 = f3+f4;
+	heapFloat[(r10+13)] = f2;
+	heapFloat[(r10+14)] = f1;
+	heap32[(r10+15)] = 0;
+	r2 = heap32[(r2+48)];
+	r10 = r2 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+2)];
+	r11 = (r0 + 40)|0;
+	r12 = (r0 + 24)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r12;
+	heap32[(g0+3)] = r11;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	f1 = heapFloat[(r8+10)];
+	f1 = f1+f0;
+	heapFloat[(r8+10)] = f1;
+	f1 = heapFloat[(r8+11)];
+	f1 = f1+f0;
+	heapFloat[(r8+11)] = f1;
+	f1 = heapFloat[(r8+12)];
+	f1 = f1+f0;
+	heapFloat[(r8+12)] = f1;
+	f1 = heapFloat[(r8+6)];
+	f1 = f1-f0;
+	heapFloat[(r8+6)] = f1;
+	f1 = heapFloat[(r8+7)];
+	f1 = f1-f0;
+	heapFloat[(r8+7)] = f1;
+	f1 = heapFloat[(r8+8)];
+	f0 = f1-f0;
+	heapFloat[(r8+8)] = f0;
+	r2 = heap32[(r8+19)];
+	r2 = r2 >> 2;
+	heap32[(r2+277)] = r1;
+	heap32[(r2+278)] = r4;
+	r1 = heap32[(r6)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+15)];
+	r0 = (r0 + 12)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r12;
+	heap32[(g0+3)] = r11;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r7+1)];
+	if(r0 !=0) //_LBB289_4
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+279)];
+if(!(r2 ==0)) //_LBB289_8
+{
+	r1 = heap32[(r1+277)];
+	r2 = heap32[(r7+34)];
+	if(r1 ==r2) //_LBB289_7
+{
+	r1 = (r3 + 8)|0;
+	r2 = (r3 + 72)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+}
+else{
+	r1 = (r3 + 72)|0;
+	r3 = (r3 + 8)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+	return;
+}
+}
+}
+else{
+	r0 = _2E_str59;
+	r3 = _2E_str160;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 101;
+	_assert(i7);
+}
+}
+}
+	return;
+}
+
+function _ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+19)];
+if(!(r1 ==0)) //_LBB290_22
+{
+	r2 = heap32[(fp+1)];
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+2)];
+	r5 = heap32[(r3+1)];
+	if(r4 ==r5) //_LBB290_3
+{
+	r6 = 1;
+	r7 = r5 << 1;
+	r7 = r5 == 0 ? r6 : r7;
+if(!(r4 >=r7)) //_LBB290_2
+{
+	if(r7 !=0) //_LBB290_6
+{
+	r1 = gNumAlignedAllocs;
+	r1 = r1 >> 2;
+	r4 = heap32[(r1)];
+	r8 = r7 << 2;
+	r4 = (r4 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r1)] = r4;
+	r1 = (r8 + 16)|0;
+	heap32[(g0)] = r1;
+	malloc(i7);
+	r1 = r_g0;
+	if(r1 !=0) //_LBB290_8
+{
+	r4 = 0;
+	r8 = (r1 + 4)|0;
+	r4 = (r4 - r8)|0;
+	r4 = r4 & 15;
+	r4 = (r1 + r4)|0;
+	r8 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r1;
+	r1 = r8;
+}
+}
+else{
+	r1 = 0;
+}
+	r4 = (r2 + 12)|0;
+	if(r5 <1) //_LBB290_11
+{
+	r8 = r4 >> 2;
+	r9 = heap32[(r8)];
+}
+else{
+	r8 = 0;
+_14: while(true){
+	r9 = r4 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r8 << 2;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r1 + r10)|0;
+	r11 = heap32[(r11)];
+	r8 = (r8 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r11;
+if(!(r5 !=r8)) //_LBB290_12
+{
+break _14;
+}
+}
+	r4 = (r2 + 12)|0;
+}
+	if(r9 !=0) //_LBB290_16
+{
+	r8 = heapU8[r2+16];
+	if(r8 !=0) //_LBB290_18
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r8 = heap32[(r5)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r5)] = r8;
+	r5 = heap32[(r9+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+	r5 = heap32[(r3+1)];
+}
+	r8 = r4 >> 2;
+	heap32[(r8)] = 0;
+}
+	r4 = r4 >> 2;
+	heap8[r2+16] = r6;
+	heap32[(r4)] = r1;
+	heap32[(r3+2)] = r7;
+	r1 = heap32[(r0+19)];
+}
+}
+	r0 = r5 << 2;
+	r2 = heap32[(r3+3)];
+	r0 = (r2 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r3+1)];
+	r0 = (r0 + 1)|0;
+	heap32[(r3+1)] = r0;
+}
+	return;
+}
+
+function _ZN33btConvexConcaveCollisionAlgorithmD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV33btConvexConcaveCollisionAlgorithm;
+	r2 = _ZTV24btConvexTriangleCallback;
+	r1 = (r1 + 8)|0;
+	r3 = r0 >> 2;
+	r2 = (r2 + 8)|0;
+	heap32[(r3)] = r1;
+	heap32[(r3+3)] = r2;
+	r1 = heap32[(r3+15)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+5)];
+	r4 = heap32[(r3+19)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = heap32[(r3+15)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	r4 = heap32[(r3+19)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	r1 = _ZTV18btTriangleCallback;
+	r4 = _ZTV30btActivatingCollisionAlgorithm;
+	r1 = (r1 + 8)|0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = (r4 + 8)|0;
+	heap32[(r3+3)] = r1;
+	heap32[(r3)] = r2;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN33btConvexConcaveCollisionAlgorithmD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV33btConvexConcaveCollisionAlgorithm;
+	r2 = _ZTV24btConvexTriangleCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	r2 = (r2 + 8)|0;
+	heap32[(r0)] = r1;
+	heap32[(r0+3)] = r2;
+	r1 = heap32[(r0+15)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+5)];
+	r3 = heap32[(r0+19)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = heap32[(r0+15)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	r3 = heap32[(r0+19)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	r1 = _ZTV18btTriangleCallback;
+	r3 = _ZTV30btActivatingCollisionAlgorithm;
+	r1 = (r1 + 8)|0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = (r3 + 8)|0;
+	heap32[(r0+3)] = r1;
+	heap32[(r0)] = r2;
+	return;
+}
+
+function _ZN23btConvexConvexAlgorithm10CreateFuncD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN23btConvexConvexAlgorithm10CreateFuncD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 36;
+	r1 = heap32[(fp)];
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = r1 >> 2;
+	r3 = _ZTV20btCollisionAlgorithm;
+	r4 = heap32[(r1+5)];
+	r5 = heap32[(r1+4)];
+	r6 = heap32[(r0+1)];
+	r7 = heap32[(r1+2)];
+	r1 = heap32[(r1+3)];
+	r8 = r_g0 >> 2;
+	r3 = (r3 + 8)|0;
+	heap32[(r8)] = r3;
+	r0 = heap32[(r0)];
+	r3 = _ZTV23btConvexConvexAlgorithm;
+	r3 = (r3 + 8)|0;
+	heap32[(r8+1)] = r0;
+	heap32[(r8)] = r3;
+	heap32[(r8+2)] = r1;
+	r0 = 0;
+	heap32[(r8+3)] = r7;
+	heap8[r_g0+16] = r0;
+	heap32[(r8+5)] = r6;
+	heap8[r_g0+24] = r0;
+	heap32[(r8+7)] = r5;
+	heap32[(r8+8)] = r4;
+	return;
+}
+
+function _ZN24btPerturbedContactResultD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV24btPerturbedContactResult;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN24btPerturbedContactResultD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV24btPerturbedContactResult;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -104;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp+2)];
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r1+2)];
+	heapFloat[(fp+-5)] = f0;
+	f1 = heapFloat[(r1+1)];
+	heapFloat[(fp+-6)] = f1;
+	f2 = heapFloat[(fp+3)];
+	f3 = heapFloat[(r1)];
+	heapFloat[(fp+-7)] = f3;
+	f4 = heapFloat[(r2+2)];
+	heapFloat[(fp+-11)] = f4;
+	f0 = f0*f2;
+	f5 = heapFloat[(r2+1)];
+	heapFloat[(fp+-12)] = f5;
+	f1 = f1*f2;
+	f6 = heapFloat[(r2)];
+	heapFloat[(fp+-13)] = f6;
+	f2 = f3*f2;
+	r1 = heap32[(fp)];
+	f0 = f4+f0;
+	heapFloat[(fp+-8)] = f0;
+	f0 = f5+f1;
+	heapFloat[(fp+-9)] = f0;
+	f0 = f6+f2;
+	heapFloat[(fp+-10)] = f0;
+	r2 = heapU8[r1+356];
+	if(r2 ==0) //_LBB298_2
+{
+	r2 = r1 >> 2;
+	f3 = heapFloat[(r2+69)];
+	f3 = -f3;
+	f0 = heapFloat[(r2+57)];
+	f1 = heapFloat[(r2+58)];
+	f2 = heapFloat[(r2+61)];
+	f4 = heapFloat[(r2+70)];
+	f5 = heapFloat[(r2+62)];
+	f6 = heapFloat[(r2+77)];
+	f7 = heapFloat[(r2+78)];
+	f8 = heapFloat[(r2+73)];
+	f9 = heapFloat[(r2+65)];
+	f10 = heapFloat[(r2+74)];
+	f11 = heapFloat[(r2+66)];
+	f12 = heapFloat[(r2+71)];
+	f13 = heapFloat[(r2+59)];
+	f14 = heapFloat[(r2+63)];
+	f15 = f0*f3;
+	f16 = f2*f4;
+	f17 = f1*f3;
+	f18 = f5*f4;
+	f19 = heapFloat[(r2+81)];
+	f20 = heapFloat[(r2+82)];
+	f21 = heapFloat[(r2+79)];
+	f22 = heapFloat[(r2+67)];
+	f23 = heapFloat[(r2+75)];
+	f24 = f0*f6;
+	f25 = f1*f7;
+	f26 = f2*f6;
+	f27 = f5*f7;
+	f28 = f0*f8;
+	heapFloat[(fp+-14)] = f28;
+	f28 = f1*f10;
+	heapFloat[(fp+-15)] = f28;
+	f29 = f2*f8;
+	f28 = f5*f10;
+	f15 = f15-f16;
+	f16 = f9*f12;
+	f17 = f17-f18;
+	f18 = f11*f12;
+	f3 = f13*f3;
+	heapFloat[(fp+-16)] = f3;
+	f3 = f14*f4;
+	heapFloat[(fp+-20)] = f3;
+	f4 = f15-f16;
+	f15 = f17-f18;
+	f16 = heapFloat[(r2+83)];
+	f0 = f0*f19;
+	f1 = f1*f20;
+	f2 = f2*f19;
+	f5 = f5*f20;
+	f17 = f24+f25;
+	heapFloat[(fp+-17)] = f17;
+	f3 = f13*f21;
+	heapFloat[(fp+-21)] = f3;
+	f17 = f26+f27;
+	heapFloat[(fp+-18)] = f17;
+	f18 = f14*f21;
+	f24 = f9*f6;
+	heapFloat[(fp+-19)] = f24;
+	f25 = f11*f7;
+	f26 = heapFloat[(fp+-14)];
+	f27 = heapFloat[(fp+-15)];
+	f26 = f26+f27;
+	f27 = f13*f23;
+	f28 = f29+f28;
+	f29 = f14*f23;
+	f30 = f9*f8;
+	f3 = f11*f10;
+	f17 = heapFloat[(fp+-16)];
+	f24 = heapFloat[(fp+-20)];
+	f17 = f17-f24;
+	f12 = f22*f12;
+	f12 = f17-f12;
+	f0 = f0+f1;
+	f1 = f13*f16;
+	f2 = f2+f5;
+	f5 = f14*f16;
+	f9 = f9*f19;
+	f11 = f11*f20;
+	f17 = heapFloat[(fp+-17)];
+	f13 = heapFloat[(fp+-21)];
+	f13 = f17+f13;
+	f14 = f26+f27;
+	f17 = heapFloat[(fp+-18)];
+	f17 = f17+f18;
+	f18 = f28+f29;
+	f24 = heapFloat[(fp+-19)];
+	f24 = f24+f25;
+	f25 = f22*f21;
+	f6 = f6*f4;
+	f7 = f7*f15;
+	f3 = f30+f3;
+	f26 = f22*f23;
+	f8 = f8*f4;
+	f10 = f10*f15;
+	f0 = f0+f1;
+	f1 = f2+f5;
+	f2 = f9+f11;
+	f5 = f22*f16;
+	f4 = f19*f4;
+	f9 = f20*f15;
+	f11 = heapFloat[(fp+-13)];
+	f13 = f13*f11;
+	f15 = heapFloat[(fp+-12)];
+	f17 = f17*f15;
+	f19 = f24+f25;
+	f3 = f3+f26;
+	f6 = f6+f7;
+	f7 = f21*f12;
+	f14 = f14*f11;
+	f18 = f18*f15;
+	f8 = f8+f10;
+	f10 = f23*f12;
+	f2 = f2+f5;
+	f0 = f0*f11;
+	f1 = f1*f15;
+	f4 = f4+f9;
+	f5 = f16*f12;
+	f9 = f13+f17;
+	f11 = heapFloat[(fp+-11)];
+	f12 = f19*f11;
+	f6 = f6+f7;
+	f7 = heapFloat[(r2+86)];
+	f13 = f14+f18;
+	f3 = f3*f11;
+	f8 = f8+f10;
+	f10 = heapFloat[(r2+85)];
+	f14 = heapFloat[(r2+87)];
+	f4 = f4+f5;
+	f0 = f0+f1;
+	f1 = f2*f11;
+	f2 = f9+f12;
+	f5 = f6+f7;
+	f3 = f13+f3;
+	f6 = f8+f10;
+	f3 = f3+f6;
+	f2 = f2+f5;
+	f0 = f0+f1;
+	f1 = f4+f14;
+	r2 = sp + -16;
+	f4 = heapFloat[(fp+-10)];
+	f4 = f4-f3;
+	f5 = heapFloat[(fp+-9)];
+	f5 = f5-f2;
+	f0 = f0+f1;
+	f1 = heapFloat[(fp+-7)];
+	f1 = f4*f1;
+	f4 = heapFloat[(fp+-6)];
+	f4 = f5*f4;
+	f5 = heapFloat[(fp+-8)];
+	f5 = f5-f0;
+	r2 = r2 >> 2;
+	heapFloat[(fp+-4)] = f3;
+	heapFloat[(r2+1)] = f2;
+	f3 = f1+f4;
+	f1 = heapFloat[(fp+-5)];
+	f1 = f5*f1;
+	f3 = f3+f1;
+	heapFloat[(r2+2)] = f0;
+	heap32[(r2+3)] = 0;
+}
+else{
+	r2 = r1 >> 2;
+	f0 = heapFloat[(r2+53)];
+	f0 = -f0;
+	f1 = heapFloat[(r2+41)];
+	f2 = heapFloat[(r2+42)];
+	f3 = heapFloat[(r2+45)];
+	f4 = heapFloat[(r2+54)];
+	f5 = heapFloat[(r2+46)];
+	f6 = heapFloat[(r2+77)];
+	f7 = heapFloat[(r2+78)];
+	f8 = heapFloat[(r2+73)];
+	f9 = heapFloat[(r2+49)];
+	f10 = heapFloat[(r2+74)];
+	f11 = heapFloat[(r2+50)];
+	f12 = heapFloat[(r2+55)];
+	f13 = heapFloat[(r2+43)];
+	f14 = heapFloat[(r2+47)];
+	f15 = f1*f0;
+	f16 = f3*f4;
+	f17 = f2*f0;
+	f18 = f5*f4;
+	f19 = heapFloat[(r2+81)];
+	f20 = heapFloat[(r2+82)];
+	f21 = heapFloat[(r2+79)];
+	f22 = heapFloat[(r2+51)];
+	f23 = heapFloat[(r2+75)];
+	f24 = f1*f8;
+	f25 = f2*f10;
+	f26 = f3*f8;
+	f27 = f5*f10;
+	f28 = f1*f6;
+	heapFloat[(fp+-14)] = f28;
+	f29 = f2*f7;
+	f30 = f3*f6;
+	f28 = f5*f7;
+	f15 = f15-f16;
+	f16 = f9*f12;
+	f17 = f17-f18;
+	f18 = f11*f12;
+	f0 = f13*f0;
+	heapFloat[(fp+-15)] = f0;
+	f0 = f14*f4;
+	heapFloat[(fp+-16)] = f0;
+	f4 = f15-f16;
+	f15 = f17-f18;
+	f16 = heapFloat[(r2+83)];
+	f0 = f24+f25;
+	heapFloat[(fp+-17)] = f0;
+	f17 = f13*f23;
+	f0 = f26+f27;
+	heapFloat[(fp+-18)] = f0;
+	f18 = f14*f23;
+	f24 = f9*f8;
+	f25 = f11*f10;
+	f26 = heapFloat[(fp+-14)];
+	f26 = f26+f29;
+	f27 = f13*f21;
+	f28 = f30+f28;
+	f29 = f14*f21;
+	f30 = f9*f6;
+	f0 = f11*f7;
+	f1 = f1*f19;
+	heapFloat[(fp+-14)] = f1;
+	f2 = f2*f20;
+	f1 = f3*f19;
+	heapFloat[(fp+-19)] = f1;
+	f3 = f5*f20;
+	f5 = heapFloat[(fp+-15)];
+	f1 = heapFloat[(fp+-16)];
+	f1 = f5-f1;
+	f5 = f22*f12;
+	f1 = f1-f5;
+	f5 = heapFloat[(fp+-17)];
+	f5 = f5+f17;
+	f12 = f26+f27;
+	f17 = heapFloat[(fp+-18)];
+	f17 = f17+f18;
+	f18 = f28+f29;
+	f24 = f24+f25;
+	f25 = f22*f23;
+	f8 = f8*f4;
+	f10 = f10*f15;
+	f0 = f30+f0;
+	f26 = f22*f21;
+	f6 = f6*f4;
+	f7 = f7*f15;
+	f27 = heapFloat[(fp+-14)];
+	f2 = f27+f2;
+	f13 = f13*f16;
+	f27 = heapFloat[(fp+-19)];
+	f3 = f27+f3;
+	f14 = f14*f16;
+	f9 = f9*f19;
+	f11 = f11*f20;
+	f2 = f2+f13;
+	f3 = f3+f14;
+	f13 = heapFloat[(fp+-10)];
+	f5 = f5*f13;
+	f14 = heapFloat[(fp+-9)];
+	f17 = f17*f14;
+	f24 = f24+f25;
+	f0 = f0+f26;
+	f8 = f8+f10;
+	f10 = f23*f1;
+	f12 = f12*f13;
+	f18 = f18*f14;
+	f6 = f6+f7;
+	f7 = f21*f1;
+	f9 = f9+f11;
+	f11 = f22*f16;
+	f4 = f19*f4;
+	f15 = f20*f15;
+	f9 = f9+f11;
+	f5 = f5+f17;
+	f11 = heapFloat[(fp+-8)];
+	f17 = f24*f11;
+	f8 = f8+f10;
+	f10 = heapFloat[(r2+85)];
+	f12 = f12+f18;
+	f0 = f0*f11;
+	f6 = f6+f7;
+	f7 = heapFloat[(r2+86)];
+	f2 = f2*f13;
+	f3 = f3*f14;
+	f4 = f4+f15;
+	f1 = f16*f1;
+	f13 = heapFloat[(r2+87)];
+	f1 = f4+f1;
+	f4 = f5+f17;
+	f5 = f8+f10;
+	f0 = f12+f0;
+	f6 = f6+f7;
+	f2 = f2+f3;
+	f3 = f9*f11;
+	f4 = f4+f5;
+	f0 = f0+f6;
+	f2 = f2+f3;
+	f1 = f1+f13;
+	f3 = heapFloat[(fp+-13)];
+	f3 = f4-f3;
+	f5 = heapFloat[(fp+-12)];
+	f5 = f0-f5;
+	f1 = f2+f1;
+	f2 = heapFloat[(fp+-7)];
+	f3 = f3*f2;
+	f6 = heapFloat[(fp+-6)];
+	f5 = f5*f6;
+	f7 = heapFloat[(fp+-11)];
+	f7 = f1-f7;
+	f3 = f3+f5;
+	f5 = heapFloat[(fp+-5)];
+	f7 = f7*f5;
+	f3 = f3+f7;
+	f2 = f2*f3;
+	r2 = sp + -16;
+	f6 = f6*f3;
+	f2 = f4+f2;
+	f4 = f5*f3;
+	r2 = r2 >> 2;
+	f0 = f0+f6;
+	heapFloat[(fp+-4)] = f2;
+	f1 = f1+f4;
+	heapFloat[(r2+1)] = f0;
+	heapFloat[(r2+2)] = f1;
+	heap32[(r2+3)] = 0;
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+40)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	r3 = sp + -16;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r3;
+	heapFloat[(g0+3)] = f3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	return;
+}
+
+function _ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+5)];
+if(!(r2 ==0)) //_LBB299_23
+{
+	r0 = heapU8[r0+16];
+if(!(r0 ==0)) //_LBB299_23
+{
+	r0 = heap32[(fp+1)];
+	r3 = r0 >> 2;
+	r4 = heap32[(r3+2)];
+	r5 = heap32[(r3+1)];
+	if(r4 ==r5) //_LBB299_4
+{
+	r6 = 1;
+	r7 = r5 << 1;
+	r7 = r5 == 0 ? r6 : r7;
+if(!(r4 >=r7)) //_LBB299_3
+{
+	if(r7 !=0) //_LBB299_7
+{
+	r2 = gNumAlignedAllocs;
+	r2 = r2 >> 2;
+	r4 = heap32[(r2)];
+	r8 = r7 << 2;
+	r4 = (r4 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r2)] = r4;
+	r2 = (r8 + 16)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB299_9
+{
+	r4 = 0;
+	r8 = (r2 + 4)|0;
+	r4 = (r4 - r8)|0;
+	r4 = r4 & 15;
+	r4 = (r2 + r4)|0;
+	r8 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r2;
+	r2 = r8;
+}
+}
+else{
+	r2 = 0;
+}
+	r4 = (r0 + 12)|0;
+	if(r5 <1) //_LBB299_12
+{
+	r8 = r4 >> 2;
+	r9 = heap32[(r8)];
+}
+else{
+	r8 = 0;
+_15: while(true){
+	r9 = r4 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r8 << 2;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r2 + r10)|0;
+	r11 = heap32[(r11)];
+	r8 = (r8 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r11;
+if(!(r5 !=r8)) //_LBB299_13
+{
+break _15;
+}
+}
+	r4 = (r0 + 12)|0;
+}
+	if(r9 !=0) //_LBB299_17
+{
+	r8 = heapU8[r0+16];
+	if(r8 !=0) //_LBB299_19
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r8 = heap32[(r5)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r5)] = r8;
+	r5 = heap32[(r9+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+	r5 = heap32[(r3+1)];
+}
+	r8 = r4 >> 2;
+	heap32[(r8)] = 0;
+}
+	r4 = r4 >> 2;
+	heap8[r0+16] = r6;
+	heap32[(r4)] = r2;
+	heap32[(r3+2)] = r7;
+	r2 = heap32[(r1+5)];
+}
+}
+	r0 = r5 << 2;
+	r1 = heap32[(r3+3)];
+	r0 = (r1 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r2;
+	r0 = heap32[(r3+1)];
+	r0 = (r0 + 1)|0;
+	heap32[(r3+1)] = r0;
+}
+}
+	return;
+}
+
+function _ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -1240;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp+2)];
+	r3 = r2 >> 2;
+	f0 = heapFloat[(r1+29)];
+	f1 = heapFloat[(r1+13)];
+	f2 = heapFloat[(r1+30)];
+	f3 = heapFloat[(r1+14)];
+	f0 = f0-f1;
+	f1 = f2-f3;
+	f2 = heapFloat[(r1+31)];
+	f3 = heapFloat[(r1+15)];
+	f2 = f2-f3;
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f3 = heapFloat[(r1+62)];
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f2 = f3*f3;
+	f0 = f0+f1;
+if(!(f2 <=f0)) //_LBB300_2
+{
+	f0 = heapFloat[(r3+31)];
+	f1 = heapFloat[(r3+15)];
+	f2 = heapFloat[(r3+30)];
+	f3 = heapFloat[(r3+14)];
+	f4 = heapFloat[(r3+29)];
+	f5 = heapFloat[(r3+13)];
+	f0 = f0-f1;
+	f1 = f2-f3;
+	f2 = f4-f5;
+	f2 = f2*f2;
+	f1 = f1*f1;
+	f3 = heapFloat[(r3+62)];
+	f1 = f2+f1;
+	f0 = f0*f0;
+	f2 = f3*f3;
+	f0 = f1+f0;
+	if(f2 >f0) //_LBB300_16
+{
+	f0 =                         1;
+	f_g0 = f0;
+	return;
+}
+}
+	r4 = sp + -56;
+	r5 = heap32[(r1+48)];
+	f0 = heapFloat[(r3+61)];
+	r6 = r4 >> 2;
+	heap32[(r6+2)] = 0;
+	heap32[(r6+3)] = 1065353216;
+	heap32[(r6+4)] = 1065353216;
+	r7 = _ZTV13btSphereShape;
+	heap32[(r6+5)] = 1065353216;
+	r7 = (r7 + 8)|0;
+	heap32[(r6+6)] = 0;
+	heap32[(fp+-14)] = r7;
+	heap32[(r6+1)] = 8;
+	r8 = _ZTVN12btConvexCast10CastResultE;
+	heapFloat[(r6+7)] = f0;
+	r9 = sp + -232;
+	r8 = (r8 + 8)|0;
+	heapFloat[(r6+11)] = f0;
+	r6 = r9 >> 2;
+	heap32[(fp+-58)] = r8;
+	heap32[(r6+41)] = 1566444395;
+	r10 = sp + -592;
+	heap32[(r6+42)] = 0;
+	r11 = r10 >> 2;
+	heap32[(r6+43)] = 0;
+	r12 = _ZTV15btGjkConvexCast;
+	r13 = 0;
+	heap32[(r11+77)] = 953267991;
+	r11 = sp + -608;
+	r12 = (r12 + 8)|0;
+	heap8[sp+-260] = r13;
+	r13 = r11 >> 2;
+	heap32[(fp+-152)] = r12;
+	heap32[(r13+1)] = r10;
+	heap32[(r13+2)] = r5;
+	heap32[(r13+3)] = r4;
+	r4 = (r2 + 68)|0;
+	r2 = (r2 + 4)|0;
+	r5 = (r0 + 68)|0;
+	r0 = (r0 + 4)|0;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r2;
+	heap32[(g0+4)] = r4;
+	heap32[(g0+5)] = r9;
+	_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB300_4
+{
+	f0 = heapFloat[(r6+41)];
+	f1 = heapFloat[(r1+60)];
+if(!(f1 <=f0)) //_LBB300_6
+{
+	heapFloat[(r1+60)] = f0;
+}
+	f1 = heapFloat[(r3+60)];
+if(!(f1 <=f0)) //_LBB300_8
+{
+	heapFloat[(r3+60)] = f0;
+}
+	f1 =                         1;
+	if(f0 >=f1) //_LBB300_3
+{
+__label__ = 3;
+}
+else{
+__label__ = 9;
+}
+}
+else{
+__label__ = 3;
+}
+if (__label__ == 3){
+	f0 =                         1;
+}
+	r6 = _ZTV12btConvexCast;
+	r9 = _ZTV13btConvexShape;
+	r6 = (r6 + 8)|0;
+	r9 = (r9 + 8)|0;
+	heap32[(fp+-152)] = r6;
+	heap32[(fp+-14)] = r9;
+	r6 = sp + -664;
+	r9 = heap32[(r3+48)];
+	f1 = heapFloat[(r1+61)];
+	r10 = r6 >> 2;
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	heap32[(r10+5)] = 1065353216;
+	heap32[(r10+6)] = 0;
+	heap32[(fp+-166)] = r7;
+	heap32[(r10+1)] = 8;
+	heapFloat[(r10+7)] = f1;
+	r7 = sp + -840;
+	heapFloat[(r10+11)] = f1;
+	r10 = r7 >> 2;
+	heap32[(fp+-210)] = r8;
+	heap32[(r10+41)] = 1566444395;
+	r8 = sp + -1200;
+	heap32[(r10+42)] = 0;
+	r11 = r8 >> 2;
+	heap32[(r10+43)] = 0;
+	heap32[(r11+77)] = 953267991;
+	r11 = heapU8[sp+-868];
+	r11 = r11 & 240;
+	r13 = sp + -1216;
+	heap8[sp+-868] = r11;
+	r11 = r13 >> 2;
+	heap32[(fp+-304)] = r12;
+	heap32[(r11+1)] = r8;
+	heap32[(r11+2)] = r6;
+	heap32[(r11+3)] = r9;
+	heap32[(g0)] = r13;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r2;
+	heap32[(g0+4)] = r4;
+	heap32[(g0+5)] = r7;
+	_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB300_15
+{
+	f1 = heapFloat[(r10+41)];
+	f2 = heapFloat[(r1+60)];
+if(!(f2 <=f1)) //_LBB300_12
+{
+	heapFloat[(r1+60)] = f1;
+}
+	f2 = heapFloat[(r3+60)];
+if(!(f2 <=f1)) //_LBB300_14
+{
+	heapFloat[(r3+60)] = f1;
+}
+	f0 = f1 < f0 ? f1 : f0;
+}
+	f_g0 = f0;
+	return;
+}
+
+function _ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -816;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+5)];
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	r6 = heap32[(fp+4)];
+	if(r2 ==0) //_LBB301_2
+{
+	r2 = heap32[(r1+1)];
+	r7 = r2 >> 2;
+	r7 = heap32[(r7)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+3)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r2 = r_g0;
+	r7 = 1;
+	heap32[(r1+5)] = r2;
+	heap8[r0+16] = r7;
+}
+	r7 = r6 >> 2;
+	r8 = r3 >> 2;
+	heap32[(r7+1)] = r2;
+	r2 = r4 >> 2;
+	r9 = heap32[(r8+48)];
+	r10 = heap32[(r2+48)];
+	r11 = r9 >> 2;
+	r12 = heap32[(r11+1)];
+	if(r12 !=10) //_LBB301_5
+{
+__label__ = 4;
+}
+else{
+	r12 = r10 >> 2;
+	r13 = heap32[(r12+1)];
+	if(r13 ==10) //_LBB301_6
+{
+	r0 = heap32[(r11)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+7)];
+	heap32[(g0)] = r9;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	r0 = heap32[(r12)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+7)];
+	heap32[(g0)] = r10;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	r0 = heap32[(r11+13)];
+	r5 = heap32[(r12+13)];
+	r11 = r5 << 2;
+	r12 = r0 << 2;
+	r3 = (r3 + r12)|0;
+	r4 = (r4 + r11)|0;
+	r3 = r3 >> 2;
+	r4 = r4 >> 2;
+	r5 = (r5 + 2)|0;
+	r0 = (r0 + 2)|0;
+	f0 = heapFloat[(r3+1)];
+	f1 = heapFloat[(r4+1)];
+	f2 = heapFloat[(r3+5)];
+	f3 = heapFloat[(r4+5)];
+	r5 = (r5 % 3)|0;
+	r0 = (r0 % 3)|0;
+	f4 = heapFloat[(r3+9)];
+	f5 = heapFloat[(r4+9)];
+	f6 = f0*f1;
+	f7 = f2*f3;
+	f8 = heapFloat[(r2+13)];
+	f9 = heapFloat[(r8+13)];
+	f10 = heapFloat[(r2+14)];
+	f11 = heapFloat[(r8+14)];
+	f8 = f8-f9;
+	f9 = f10-f11;
+	r3 = (r10 + 28)|0;
+	r4 = r5 << 2;
+	r5 = (r9 + 28)|0;
+	r0 = r0 << 2;
+	f6 = f6+f7;
+	f7 = f4*f5;
+	f10 = heapFloat[(r2+15)];
+	f11 = heapFloat[(r8+15)];
+	f10 = f10-f11;
+	f6 = f6+f7;
+	r1 = heap32[(r1+5)];
+	r4 = (r3 + r4)|0;
+	r3 = (r3 + r11)|0;
+	r0 = (r5 + r0)|0;
+	r5 = (r5 + r12)|0;
+	f7 = f0*f8;
+	f11 = f2*f9;
+	f12 = f1*f8;
+	f13 = f3*f9;
+	r1 = r1 >> 2;
+	r4 = r4 >> 2;
+	r3 = r3 >> 2;
+	r0 = r0 >> 2;
+	r5 = r5 >> 2;
+	f14 =                         1;
+	f15 = f6*f6;
+	f7 = f7+f11;
+	f11 = f4*f10;
+	f12 = f12+f13;
+	f13 = f5*f10;
+	f15 = f14-f15;
+	f16 = heapFloat[(r1+280)];
+	f17 = heapFloat[(r4)];
+	f18 = heapFloat[(r3)];
+	f19 = heapFloat[(r0)];
+	f20 = heapFloat[(r5)];
+	f7 = f7+f11;
+	f11 = f12+f13;
+	f12 =                         0;
+	if(f15 !=f12) //_LBB301_8
+{
+	f13 = f11*f6;
+	f13 = f7-f13;
+	f13 = f13/f15;
+	f15 = -f20;
+	if(f13 >=f15) //_LBB301_10
+{
+	if(f13 >f20) //_LBB301_12
+{
+	f15 = f20;
+}
+else{
+	f15 = f13;
+}
+}
+}
+else{
+	f15 =                         0;
+}
+	f13 = f15*f6;
+	f11 = f13-f11;
+	f13 = -f18;
+	if(f11 >=f13) //_LBB301_19
+{
+	if(f11 >f18) //_LBB301_21
+{
+	f13 = f6*f18;
+	f6 = f13+f7;
+	f15 = -f20;
+	if(f6 >=f15) //_LBB301_23
+{
+	if(f6 >f20) //_LBB301_25
+{
+	f13 = f18;
+	f15 = f20;
+}
+else{
+	f13 = f18;
+	f15 = f6;
+}
+}
+else{
+	f13 = f18;
+}
+}
+else{
+	f13 = f11;
+}
+}
+else{
+	f6 = f6*f13;
+	f6 = f6+f7;
+	f15 = -f20;
+	if(f6 >=f15) //_LBB301_16
+{
+	if(f6 >f20) //_LBB301_18
+{
+	f15 = f20;
+}
+else{
+	f15 = f6;
+}
+}
+}
+	f6 = f0*f15;
+	f7 = f2*f15;
+	f1 = f1*f13;
+	f6 = f8-f6;
+	f3 = f3*f13;
+	f7 = f9-f7;
+	f8 = f4*f15;
+	f6 = f6+f1;
+	f7 = f7+f3;
+	f5 = f5*f13;
+	f8 = f10-f8;
+	f8 = f8+f5;
+	f9 = f6*f6;
+	f10 = f7*f7;
+	f9 = f9+f10;
+	f10 = f8*f8;
+	f9 = f9+f10;
+	heapFloat[(g0)] = f9;
+	sqrtf(i7);
+	f10 = f_g0-f19;
+	f10 = f10-f17;
+if(!(f10 >f16)) //_LBB301_36
+{
+	f11 =   1.4210854715202004e-014;
+	if(f9 >f11) //_LBB301_34
+{
+	heapFloat[(g0)] = f9;
+	f0 =                        -1;
+	sqrtf(i7);
+	f0 = f0/f_g0;
+	f9 = f6*f0;
+	r0 = sp + -16;
+	f6 = f7*f0;
+	r0 = r0 >> 2;
+	heapFloat[(fp+-4)] = f9;
+	f12 = f8*f0;
+	heapFloat[(r0+1)] = f6;
+	heapFloat[(r0+2)] = f12;
+	heap32[(r0+3)] = 0;
+}
+else{
+	if(f4 <f12) //_LBB301_30
+{
+	f6 = -f4;
+}
+else{
+	f6 = f4;
+}
+	f7 =       0.70710676908493042;
+	if(f6 <=f7) //_LBB301_33
+{
+	f6 = f0*f0;
+	f9 = f2*f2;
+	f6 = f6+f9;
+	heapFloat[(g0)] = f6;
+	sqrtf(i7);
+	f6 = f14/f_g0;
+	f9 = -f2;
+	f9 = f6*f9;
+	r0 = sp + -16;
+	f6 = f0*f6;
+	r0 = r0 >> 2;
+	heapFloat[(fp+-4)] = f9;
+	heapFloat[(r0+1)] = f6;
+	heap32[(r0+2)] = 0;
+}
+else{
+	f0 = f2*f2;
+	f6 = f4*f4;
+	f0 = f0+f6;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	r0 = sp + -16;
+	f0 = f14/f_g0;
+	f6 = -f4;
+	f6 = f0*f6;
+	r0 = r0 >> 2;
+	heap32[(fp+-4)] = 0;
+	f9 =                         0;
+	f12 = f2*f0;
+	heapFloat[(r0+1)] = f6;
+	heapFloat[(r0+2)] = f12;
+}
+}
+	f0 = heapFloat[(r2+13)];
+	f2 = heapFloat[(r2+14)];
+	f4 = heapFloat[(r2+15)];
+	f0 = f0+f1;
+	f1 = f9*f17;
+	r0 = sp + -32;
+	f2 = f2+f3;
+	f3 = f6*f17;
+	f0 = f0+f1;
+	r0 = r0 >> 2;
+	f1 = f4+f5;
+	f4 = f12*f17;
+	f2 = f2+f3;
+	heapFloat[(fp+-8)] = f0;
+	f0 = f1+f4;
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+}
+if(!(f10 >=f16)) //_LBB301_40
+{
+	r0 = sp + -16;
+	r1 = r0 >> 2;
+	f0 = heapFloat[(fp+-4)];
+	f1 = heapFloat[(r1+1)];
+	f2 = heapFloat[(r1+2)];
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	f1 =   1.4210854715202004e-014;
+	if(f0 >=f1) //_LBB301_39
+{
+	r1 = heap32[(r7)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	r2 = sp + -32;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	heapFloat[(g0+3)] = f10;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+else{
+	r0 = _2E_str4119;
+	r1 = _2E_str5120;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 325;
+	_assert(i7);
+}
+}
+	r0 = heap32[(r7+1)];
+	if(r0 !=0) //_LBB301_42
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+279)];
+	if(r2 ==0) //_LBB301_47
+{
+__label__ = 44;
+}
+else{
+	r1 = heap32[(r1+277)];
+	r2 = heap32[(r7+34)];
+	if(r1 ==r2) //_LBB301_46
+{
+__label__ = 43;
+}
+else{
+	r1 = (r6 + 72)|0;
+	r2 = (r6 + 8)|0;
+__label__ = 42;
+}
+}
+}
+else{
+	r0 = _2E_str59;
+	r1 = _2E_str160;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 101;
+	_assert(i7);
+}
+}
+else{
+__label__ = 4;
+}
+}
+if (__label__ == 4){
+	r3 = sp + -168;
+	r4 = r3 >> 2;
+	heap32[(r4+32)] = 1566444395;
+	heap32[(r4+33)] = 0;
+	r12 = _ZTV17btGjkPairDetector;
+	r13 = heap32[(r1+2)];
+	r14 = heap32[(r1+3)];
+	r15 = sp + -248;
+	r12 = (r12 + 8)|0;
+	heap32[(fp+-62)] = r12;
+	r12 = r15 >> 2;
+	heap32[(r12+1)] = 0;
+	heap32[(r12+2)] = 1065353216;
+	heap32[(r12+3)] = 0;
+	heap32[(r12+4)] = 0;
+	heap32[(r12+5)] = r14;
+	heap32[(r12+6)] = r13;
+	heap32[(r12+7)] = r9;
+	heap32[(r12+8)] = r10;
+	r13 = heap32[(r11+1)];
+	heap32[(r12+9)] = r13;
+	r13 = r10 >> 2;
+	r14 = heap32[(r13+1)];
+	heap32[(r12+10)] = r14;
+	r14 = heap32[(r11)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+11)];
+	heap32[(g0)] = r9;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+	heapFloat[(r12+11)] = f_g0;
+	r14 = heap32[(r13)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+11)];
+	heap32[(g0)] = r10;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+	r14 = 0;
+	heapFloat[(r12+12)] = f_g0;
+	heap8[sp+-196] = r14;
+	heap32[(r12+15)] = -1;
+	heap32[(r12+18)] = 1;
+	heap32[(r12+7)] = r9;
+	heap32[(r12+8)] = r10;
+	r16 = heap32[(r11)];
+	r16 = r16 >> 2;
+	r17 = heapU8[r5+40];
+	r16 = heap32[(r16+11)];
+	heap32[(g0)] = r9;
+	__FUNCTION_TABLE__[(r16)>>2](i7);
+	f0 = f_g0;
+	r16 = heap32[(r13)];
+	r16 = r16 >> 2;
+	r16 = heap32[(r16+11)];
+	heap32[(g0)] = r10;
+	__FUNCTION_TABLE__[(r16)>>2](i7);
+	f0 = f0+f_g0;
+	r16 = heap32[(r1+5)];
+	if(r17 ==0) //_LBB301_49
+{
+	r16 = (r16 + 1120)|0;
+}
+else{
+	r16 = (r16 + 1124)|0;
+}
+	r16 = r16 >> 2;
+	f1 = heapFloat[(r16)];
+	f0 = f0+f1;
+	f0 = f0*f0;
+	r5 = r5 >> 2;
+	heapFloat[(r4+32)] = f0;
+	r16 = heap32[(r5+11)];
+	heap32[(r4+33)] = r16;
+	heap32[(fp+-42)] = heap32[(r8+1)];
+	heap32[(r4+1)] = heap32[(r8+2)];
+	heap32[(r4+2)] = heap32[(r8+3)];
+	heap32[(r4+3)] = heap32[(r8+4)];
+	heap32[(r4+4)] = heap32[(r8+5)];
+	heap32[(r4+5)] = heap32[(r8+6)];
+	heap32[(r4+6)] = heap32[(r8+7)];
+	heap32[(r4+7)] = heap32[(r8+8)];
+	heap32[(r4+8)] = heap32[(r8+9)];
+	heap32[(r4+9)] = heap32[(r8+10)];
+	heap32[(r4+10)] = heap32[(r8+11)];
+	heap32[(r4+11)] = heap32[(r8+12)];
+	heap32[(r4+12)] = heap32[(r8+13)];
+	heap32[(r4+13)] = heap32[(r8+14)];
+	heap32[(r4+14)] = heap32[(r8+15)];
+	heap32[(r4+15)] = heap32[(r8+16)];
+	heap32[(r4+16)] = heap32[(r2+1)];
+	heap32[(r4+17)] = heap32[(r2+2)];
+	heap32[(r4+18)] = heap32[(r2+3)];
+	heap32[(r4+19)] = heap32[(r2+4)];
+	heap32[(r4+20)] = heap32[(r2+5)];
+	heap32[(r4+21)] = heap32[(r2+6)];
+	heap32[(r4+22)] = heap32[(r2+7)];
+	heap32[(r4+23)] = heap32[(r2+8)];
+	heap32[(r4+24)] = heap32[(r2+9)];
+	heap32[(r4+25)] = heap32[(r2+10)];
+	heap32[(r4+26)] = heap32[(r2+11)];
+	heap32[(r4+27)] = heap32[(r2+12)];
+	heap32[(r4+28)] = heap32[(r2+13)];
+	heap32[(r4+29)] = heap32[(r2+14)];
+	heap32[(r4+30)] = heap32[(r2+15)];
+	heap32[(r4+31)] = heap32[(r2+16)];
+	r16 = heap32[(r5+5)];
+	heap32[(g0)] = r15;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r16;
+	heap32[(g0+4)] = 0;
+	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
+	r16 = heap32[(r1+7)];
+_63: do {
+if(!(r16 ==0)) //_LBB301_73
+{
+	r16 = heap32[(r7+1)];
+	r16 = r16 >> 2;
+	r16 = heap32[(r16+279)];
+	r17 = heap32[(r1+8)];
+if(!(r16 >=r17)) //_LBB301_73
+{
+	f0 = heapFloat[(r12+1)];
+	f1 = heapFloat[(r12+2)];
+	f2 = heapFloat[(r12+3)];
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f1 =                         1;
+	heapFloat[(fp+-169)] = f1;
+	f2 = heapFloat[(r12+3)];
+	f0 = f1/f_g0;
+	f1 = heapFloat[(r12+2)];
+	f3 = heapFloat[(r12+1)];
+	f2 = f2*f0;
+	heapFloat[(fp+-171)] = f2;
+	f1 = f1*f0;
+	heapFloat[(fp+-170)] = f1;
+	f0 = f3*f0;
+	heapFloat[(fp+-174)] = f0;
+	f0 =                         0;
+	heapFloat[(fp+-175)] = f0;
+	if(f2 <f0) //_LBB301_54
+{
+	f0 = f2;
+	f0 = -f0;
+}
+else{
+	f0 = heapFloat[(fp+-171)];
+}
+	f1 =       0.70710676908493042;
+	if(f0 <=f1) //_LBB301_57
+{
+	f0 = heapFloat[(fp+-174)];
+	f1 = f0*f0;
+	f2 = heapFloat[(fp+-170)];
+	f3 = f2*f2;
+	f1 = f1+f3;
+	heapFloat[(g0)] = f1;
+	sqrtf(i7);
+	f3 = heapFloat[(fp+-169)];
+	f1 = f3/f_g0;
+	f2 = -f2;
+	f2 = f1*f2;
+	heapFloat[(fp+-173)] = f2;
+	f0 = f0*f1;
+	heapFloat[(fp+-172)] = f0;
+}
+else{
+	f0 = heapFloat[(fp+-170)];
+	f1 = f0*f0;
+	f2 = heapFloat[(fp+-171)];
+	f3 = f2*f2;
+	f1 = f1+f3;
+	heapFloat[(g0)] = f1;
+	sqrtf(i7);
+	f3 = heapFloat[(fp+-169)];
+	f1 = f3/f_g0;
+	f2 = -f2;
+	f2 = f1*f2;
+	heapFloat[(fp+-172)] = f2;
+	f0 = f0*f1;
+	heapFloat[(fp+-175)] = f0;
+	f0 =                         0;
+	heapFloat[(fp+-173)] = f0;
+}
+	r11 = heap32[(r11)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r9;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	f0 = f_g0;
+	heapFloat[(fp+-194)] = f0;
+	r9 = heap32[(r13)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+4)];
+	heap32[(g0)] = r10;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	f1 = f_g0;
+	heapFloat[(fp+-195)] = f1;
+	r9 = f0 < f1;
+	f2 =      0.019999999552965164;
+	f3 = f0 < f1 ? f0 : f1;
+	r9 = r9 & 1;
+	f2 = f2/f3;
+	if(f0 >=f1) //_LBB301_60
+{
+	f0 = heapFloat[(r4+16)];
+	heapFloat[(fp+-176)] = f0;
+	f0 = heapFloat[(r4+17)];
+	heapFloat[(fp+-177)] = f0;
+	f0 = heapFloat[(r4+18)];
+	heapFloat[(fp+-178)] = f0;
+	f0 = heapFloat[(r4+19)];
+	heapFloat[(fp+-179)] = f0;
+	f0 = heapFloat[(r4+20)];
+	heapFloat[(fp+-180)] = f0;
+	f0 = heapFloat[(r4+21)];
+	heapFloat[(fp+-181)] = f0;
+	f0 = heapFloat[(r4+22)];
+	heapFloat[(fp+-182)] = f0;
+	f0 = heapFloat[(r4+23)];
+	heapFloat[(fp+-183)] = f0;
+	f0 = heapFloat[(r4+24)];
+	heapFloat[(fp+-184)] = f0;
+	f0 = heapFloat[(r4+25)];
+	heapFloat[(fp+-185)] = f0;
+	f0 = heapFloat[(r4+26)];
+	heapFloat[(fp+-186)] = f0;
+	f0 = heapFloat[(r4+27)];
+	heapFloat[(fp+-187)] = f0;
+	f0 = heapFloat[(r4+28)];
+	heapFloat[(fp+-188)] = f0;
+	f0 = heapFloat[(r4+29)];
+	heapFloat[(fp+-189)] = f0;
+	f0 = heapFloat[(r4+30)];
+	heapFloat[(fp+-190)] = f0;
+	f0 = heapFloat[(r4+31)];
+	heapFloat[(fp+-191)] = f0;
+}
+else{
+	f0 = heapFloat[(fp+-42)];
+	heapFloat[(fp+-176)] = f0;
+	f0 = heapFloat[(r4+1)];
+	heapFloat[(fp+-177)] = f0;
+	f0 = heapFloat[(r4+2)];
+	heapFloat[(fp+-178)] = f0;
+	f0 = heapFloat[(r4+3)];
+	heapFloat[(fp+-179)] = f0;
+	f0 = heapFloat[(r4+4)];
+	heapFloat[(fp+-180)] = f0;
+	f0 = heapFloat[(r4+5)];
+	heapFloat[(fp+-181)] = f0;
+	f0 = heapFloat[(r4+6)];
+	heapFloat[(fp+-182)] = f0;
+	f0 = heapFloat[(r4+7)];
+	heapFloat[(fp+-183)] = f0;
+	f0 = heapFloat[(r4+8)];
+	heapFloat[(fp+-184)] = f0;
+	f0 = heapFloat[(r4+9)];
+	heapFloat[(fp+-185)] = f0;
+	f0 = heapFloat[(r4+10)];
+	heapFloat[(fp+-186)] = f0;
+	f0 = heapFloat[(r4+11)];
+	heapFloat[(fp+-187)] = f0;
+	f0 = heapFloat[(r4+12)];
+	heapFloat[(fp+-188)] = f0;
+	f0 = heapFloat[(r4+13)];
+	heapFloat[(fp+-189)] = f0;
+	f0 = heapFloat[(r4+14)];
+	heapFloat[(fp+-190)] = f0;
+	f0 = heapFloat[(r4+15)];
+	heapFloat[(fp+-191)] = f0;
+}
+	f0 = heapFloat[(fp+-173)];
+	f0 = f0*f0;
+	f1 = heapFloat[(fp+-172)];
+	f1 = f1*f1;
+	f3 =                       0.5;
+	heapFloat[(fp+-193)] = f3;
+	f4 = heapFloat[(fp+-174)];
+	f4 = f4*f4;
+	f5 = heapFloat[(fp+-170)];
+	f5 = f5*f5;
+	f0 = f0+f1;
+	f1 = heapFloat[(fp+-175)];
+	f1 = f1*f1;
+	f6 =       0.39269909262657166;
+	f7 =       0.19634954631328583;
+	f3 = f2*f3;
+	f4 = f4+f5;
+	f5 = heapFloat[(fp+-171)];
+	f5 = f5*f5;
+	f0 = f0+f1;
+	heapFloat[(fp+-196)] = f0;
+	f0 = f2 > f6 ? f7 : f3;
+	heapFloat[(fp+-197)] = f0;
+	f0 = f4+f5;
+	heapFloat[(fp+-192)] = f0;
+_78: while(true){
+	r10 = heap32[(r1+7)];
+	if(r10 >r14) //_LBB301_62
+{
+	f0 =   1.1920928955078125e-007;
+	f1 = heapFloat[(fp+-196)];
+if(!(f1 <=f0)) //_LBB301_71
+{
+	f0 = f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f0 = f_g0;
+	f1 =                         0;
+	if(f0 !=f1) //_LBB301_65
+{
+	f2 = heapFloat[(fp+-197)];
+	heapFloat[(g0)] = f2;
+	sinf(i7);
+	f3 = f_g0;
+	heapFloat[(g0)] = f2;
+	cosf(i7);
+	f2 = f_g0;
+	r10 = heap32[(r1+7)];
+	f4 = heapFloat[(fp+-192)];
+	heapFloat[(g0)] = f4;
+	sqrtf(i7);
+	f4 = f_g0;
+	if(f4 !=f1) //_LBB301_67
+{
+	f0 = f3/f0;
+	f3 = heapFloat[(fp+-175)];
+	f3 = f3*f0;
+	f5 = heapFloat[(fp+-172)];
+	f5 = f5*f0;
+	f6 = heapFloat[(fp+-173)];
+	f0 = f6*f0;
+	f6 =        6.2831854820251465;
+	f7 = r10; //fitos r10, f7
+	f8 = r14; //fitos r14, f8
+	f6 = f6/f7;
+	f6 = f8*f6;
+	f7 = heapFloat[(fp+-193)];
+	f6 = f6*f7;
+	heapFloat[(g0)] = f6;
+	sinf(i7);
+	heapFloat[(g0)] = f6;
+	f4 = f_g0/f4;
+	f6 = heapFloat[(fp+-171)];
+	f6 = f6*f4;
+	f7 = heapFloat[(fp+-170)];
+	f7 = f7*f4;
+	f8 = heapFloat[(fp+-174)];
+	f4 = f8*f4;
+	cosf(i7);
+	f8 = f_g0;
+	f10 = heapFloat[(fp+-195)];
+	f9 = heapFloat[(fp+-194)];
+	if(f9 >=f10) //_LBB301_69
+{
+	f9 = heapFloat[(r8+1)];
+	heapFloat[(fp+-155)] = f9;
+	heapFloat[(fp+-42)] = f9;
+	f9 = heapFloat[(r8+2)];
+	heapFloat[(fp+-156)] = f9;
+	heapFloat[(r4+1)] = f9;
+	f9 = heapFloat[(r8+3)];
+	heapFloat[(fp+-157)] = f9;
+	heapFloat[(r4+2)] = f9;
+	f9 = heapFloat[(r8+4)];
+	heapFloat[(fp+-163)] = f9;
+	heapFloat[(r4+3)] = f9;
+	f9 = heapFloat[(r8+5)];
+	heapFloat[(fp+-158)] = f9;
+	heapFloat[(r4+4)] = f9;
+	f9 = heapFloat[(r8+6)];
+	heapFloat[(fp+-159)] = f9;
+	heapFloat[(r4+5)] = f9;
+	f9 = heapFloat[(r8+7)];
+	heapFloat[(fp+-160)] = f9;
+	heapFloat[(r4+6)] = f9;
+	f9 = heapFloat[(r8+8)];
+	heapFloat[(fp+-162)] = f9;
+	heapFloat[(r4+7)] = f9;
+	f9 = heapFloat[(r8+9)];
+	heapFloat[(fp+-161)] = f9;
+	f10 = f8*f2;
+	f11 = f0*f4;
+	f12 = f8*f0;
+	f13 = f2*f4;
+	f14 = f8*f5;
+	f15 = f2*f7;
+	heapFloat[(r4+8)] = f9;
+	f9 = f10+f11;
+	f10 = f5*f7;
+	f11 = f8*f3;
+	f2 = f2*f6;
+	f12 = f12-f13;
+	f13 = f3*f7;
+	f14 = f14-f15;
+	f15 = f0*f6;
+	f16 = heapFloat[(r8+10)];
+	heapFloat[(fp+-164)] = f16;
+	f9 = f9+f10;
+	f10 = f3*f6;
+	f2 = f11-f2;
+	f11 = f5*f4;
+	f12 = f12-f13;
+	f5 = f5*f6;
+	f13 = f14-f15;
+	f3 = f3*f4;
+	f9 = f9+f10;
+	f5 = f12+f5;
+	f3 = f13+f3;
+	heapFloat[(r4+9)] = f16;
+	f2 = f2-f11;
+	f0 = f0*f7;
+	f0 = f2+f0;
+	f2 = heapFloat[(r8+11)];
+	heapFloat[(fp+-166)] = f2;
+	f10 = f9*f7;
+	f11 = f3*f8;
+	f12 = f9*f4;
+	f13 = f5*f8;
+	heapFloat[(r4+10)] = f2;
+	f2 = f10+f11;
+	f10 = f0*f4;
+	f11 = f12+f13;
+	f12 = f3*f6;
+	f13 = f9*f6;
+	f14 = f0*f8;
+	f17 = heapFloat[(r8+12)];
+	f8 = f9*f8;
+	f9 = f5*f4;
+	f2 = f2+f10;
+	f10 = f5*f6;
+	f11 = f11+f12;
+	f12 = f0*f7;
+	f13 = f13+f14;
+	f5 = f5*f7;
+	f10 = f2-f10;
+	f2 = f11-f12;
+	heapFloat[(r4+11)] = f17;
+	f8 = f8-f9;
+	f7 = f3*f7;
+	f5 = f13+f5;
+	f3 = f3*f4;
+	f4 = heapFloat[(r8+13)];
+	heapFloat[(fp+-165)] = f4;
+	f3 = f5-f3;
+	f5 = f8-f7;
+	f0 = f0*f6;
+	f6 = f2*f2;
+	f7 = f10*f10;
+	f5 = f5-f0;
+	heapFloat[(r4+12)] = f4;
+	f0 = f6+f7;
+	f4 = f3*f3;
+	f6 = heapFloat[(r8+14)];
+	heapFloat[(fp+-167)] = f6;
+	f0 = f0+f4;
+	f4 = f5*f5;
+	heapFloat[(r4+13)] = f6;
+	f6 =                         2;
+	f0 = f0+f4;
+	f0 = f6/f0;
+	f4 = heapFloat[(r8+15)];
+	heapFloat[(fp+-168)] = f4;
+	f6 = f3*f0;
+	f7 = f10*f0;
+	heapFloat[(r4+14)] = f4;
+	f16 = heapFloat[(r8+16)];
+	f4 = f10*f7;
+	f3 = f3*f6;
+	f8 = f4+f3;
+	f9 = f2*f7;
+	f11 = f5*f6;
+	heapFloat[(r4+15)] = f16;
+	f12 = heapFloat[(fp+-169)];
+	f8 = f12-f8;
+	f13 = heapFloat[(r2+1)];
+	f14 = f9-f11;
+	f15 = heapFloat[(r2+5)];
+	f18 = f2*f6;
+	f7 = f5*f7;
+	f19 = f2*f0;
+	f20 = heapFloat[(r2+2)];
+	f21 = heapFloat[(r2+6)];
+	f0 = f13*f8;
+	f22 = f15*f14;
+	f23 = f18+f7;
+	f24 = heapFloat[(r2+9)];
+	f25 = f2*f19;
+	f26 = heapFloat[(r2+3)];
+	f27 = heapFloat[(r2+7)];
+	f28 = heapFloat[(r2+11)];
+	f29 = heapFloat[(r2+10)];
+	f2 = f20*f8;
+	f30 = f21*f14;
+	f0 = f0+f22;
+	f22 = f24*f23;
+	f3 = f25+f3;
+	f0 = f0+f22;
+	f8 = f26*f8;
+	f14 = f27*f14;
+	f2 = f2+f30;
+	f22 = f29*f23;
+	f9 = f9+f11;
+	f11 = f12-f3;
+	f2 = f2+f22;
+	heapFloat[(r4+16)] = f0;
+	f6 = f10*f6;
+	f10 = f5*f19;
+	f3 = f8+f14;
+	f5 = f28*f23;
+	f8 = f6-f10;
+	f3 = f3+f5;
+	heapFloat[(r4+17)] = f2;
+	f5 = f13*f9;
+	f14 = f15*f11;
+	heapFloat[(r4+18)] = f3;
+	f19 = f20*f9;
+	f22 = f21*f11;
+	f5 = f5+f14;
+	f14 = f24*f8;
+	f5 = f5+f14;
+	heap32[(r4+19)] = 0;
+	f9 = f26*f9;
+	f11 = f27*f11;
+	f14 = f19+f22;
+	f19 = f29*f8;
+	f18 = f18-f7;
+	f10 = f6+f10;
+	f4 = f25+f4;
+	f6 = f14+f19;
+	heapFloat[(r4+20)] = f5;
+	f7 = f9+f11;
+	f8 = f28*f8;
+	f4 = f12-f4;
+	f7 = f7+f8;
+	heapFloat[(r4+21)] = f6;
+	f8 = f13*f18;
+	f9 = f15*f10;
+	heapFloat[(r4+22)] = f7;
+	f11 = f20*f18;
+	f12 = f21*f10;
+	f8 = f8+f9;
+	f9 = f24*f4;
+	f9 = f8+f9;
+	heap32[(r4+23)] = 0;
+	f8 = f26*f18;
+	f13 = f27*f10;
+	f10 = f11+f12;
+	f11 = f29*f4;
+	f10 = f10+f11;
+	heapFloat[(r4+24)] = f9;
+	f8 = f8+f13;
+	f4 = f28*f4;
+	f11 = f8+f4;
+	heapFloat[(r4+25)] = f10;
+	heapFloat[(r4+26)] = f11;
+	heap32[(r4+27)] = 0;
+	f12 = heapFloat[(r4+28)];
+	f13 = heapFloat[(r4+29)];
+	f14 = heapFloat[(r4+30)];
+	f15 = heapFloat[(r4+31)];
+	f8 = f1;
+	f4 = f1;
+}
+else{
+	f1 = f8*f2;
+	f9 = f0*f4;
+	f10 = f8*f0;
+	f11 = f2*f4;
+	f12 = f8*f5;
+	f13 = f2*f7;
+	f1 = f1+f9;
+	f9 = f5*f7;
+	f14 = f8*f3;
+	f2 = f2*f6;
+	f10 = f10-f11;
+	f11 = f3*f7;
+	f12 = f12-f13;
+	f13 = f0*f6;
+	f1 = f1+f9;
+	f9 = f3*f6;
+	f2 = f14-f2;
+	f14 = f5*f4;
+	f10 = f10-f11;
+	f5 = f5*f6;
+	f11 = f12-f13;
+	f3 = f3*f4;
+	f1 = f1+f9;
+	f5 = f10+f5;
+	f3 = f11+f3;
+	f2 = f2-f14;
+	f0 = f0*f7;
+	f0 = f2+f0;
+	f2 = f1*f7;
+	f9 = f3*f8;
+	f10 = f1*f4;
+	f11 = f5*f8;
+	f2 = f2+f9;
+	f9 = f0*f4;
+	f10 = f10+f11;
+	f11 = f3*f6;
+	f12 = f1*f6;
+	f13 = f0*f8;
+	f1 = f1*f8;
+	f8 = f5*f4;
+	f2 = f2+f9;
+	f9 = f5*f6;
+	f10 = f10+f11;
+	f11 = f0*f7;
+	f12 = f12+f13;
+	f5 = f5*f7;
+	f2 = f2-f9;
+	f9 = f10-f11;
+	f1 = f1-f8;
+	f7 = f3*f7;
+	f5 = f12+f5;
+	f3 = f3*f4;
+	f3 = f5-f3;
+	f1 = f1-f7;
+	f0 = f0*f6;
+	f4 = f9*f9;
+	f5 = f2*f2;
+	f0 = f1-f0;
+	f1 = f4+f5;
+	f4 = f3*f3;
+	f1 = f1+f4;
+	f4 = f0*f0;
+	f5 =                         2;
+	f1 = f1+f4;
+	f1 = f5/f1;
+	f4 = f3*f1;
+	f5 = f2*f1;
+	f6 = f2*f5;
+	f3 = f3*f4;
+	f7 = f6+f3;
+	f8 = f9*f5;
+	f10 = f0*f4;
+	f11 = heapFloat[(fp+-169)];
+	f7 = f11-f7;
+	f12 = heapFloat[(r8+1)];
+	f13 = f8-f10;
+	f14 = heapFloat[(r8+5)];
+	f15 = f9*f4;
+	f5 = f0*f5;
+	f1 = f9*f1;
+	f16 = heapFloat[(r8+2)];
+	f17 = heapFloat[(r8+6)];
+	f18 = f12*f7;
+	f19 = f14*f13;
+	f20 = f15+f5;
+	f21 = heapFloat[(r8+9)];
+	f9 = f9*f1;
+	f22 = heapFloat[(r8+3)];
+	f23 = heapFloat[(r8+7)];
+	f24 = heapFloat[(r8+11)];
+	f25 = heapFloat[(r8+10)];
+	f26 = f16*f7;
+	f27 = f17*f13;
+	f18 = f18+f19;
+	f19 = f21*f20;
+	f3 = f9+f3;
+	f18 = f18+f19;
+	heapFloat[(fp+-155)] = f18;
+	f7 = f22*f7;
+	f13 = f23*f13;
+	f19 = f26+f27;
+	f26 = f25*f20;
+	f8 = f8+f10;
+	f3 = f11-f3;
+	f10 = f19+f26;
+	heapFloat[(fp+-156)] = f10;
+	heapFloat[(fp+-42)] = f18;
+	f2 = f2*f4;
+	f0 = f0*f1;
+	f1 = f7+f13;
+	f4 = f24*f20;
+	f7 = f2-f0;
+	f1 = f1+f4;
+	heapFloat[(fp+-157)] = f1;
+	heapFloat[(r4+1)] = f10;
+	f4 = f12*f8;
+	f10 = f14*f3;
+	heapFloat[(r4+2)] = f1;
+	f1 = f16*f8;
+	f13 = f17*f3;
+	f4 = f4+f10;
+	f10 = f21*f7;
+	f4 = f4+f10;
+	heapFloat[(fp+-158)] = f4;
+	heap32[(r4+3)] = 0;
+	f8 = f22*f8;
+	f3 = f23*f3;
+	f1 = f1+f13;
+	f10 = f25*f7;
+	f5 = f15-f5;
+	f0 = f2+f0;
+	f2 = f9+f6;
+	f1 = f1+f10;
+	heapFloat[(fp+-159)] = f1;
+	heapFloat[(r4+4)] = f4;
+	f3 = f8+f3;
+	f4 = f24*f7;
+	f2 = f11-f2;
+	f3 = f3+f4;
+	heapFloat[(fp+-160)] = f3;
+	heapFloat[(r4+5)] = f1;
+	f1 = f12*f5;
+	f4 = f14*f0;
+	heapFloat[(r4+6)] = f3;
+	f3 = f16*f5;
+	f6 = f17*f0;
+	f1 = f1+f4;
+	f4 = f21*f2;
+	f1 = f1+f4;
+	heapFloat[(fp+-161)] = f1;
+	heap32[(r4+7)] = 0;
+	f4 = f22*f5;
+	f0 = f23*f0;
+	f3 = f3+f6;
+	f5 = f25*f2;
+	f3 = f3+f5;
+	heapFloat[(fp+-164)] = f3;
+	heapFloat[(r4+8)] = f1;
+	f0 = f4+f0;
+	f1 = f24*f2;
+	f0 = f0+f1;
+	heapFloat[(fp+-166)] = f0;
+	heapFloat[(r4+9)] = f3;
+	heapFloat[(r4+10)] = f0;
+	heap32[(r4+11)] = 0;
+	f0 = heapFloat[(r2+1)];
+	heapFloat[(r4+16)] = f0;
+	f2 = heapFloat[(r2+2)];
+	heapFloat[(r4+17)] = f2;
+	f3 = heapFloat[(r2+3)];
+	heapFloat[(r4+18)] = f3;
+	f4 = heapFloat[(r2+4)];
+	heapFloat[(r4+19)] = f4;
+	f5 = heapFloat[(r2+5)];
+	heapFloat[(r4+20)] = f5;
+	f6 = heapFloat[(r2+6)];
+	heapFloat[(r4+21)] = f6;
+	f7 = heapFloat[(r2+7)];
+	heapFloat[(r4+22)] = f7;
+	f8 = heapFloat[(r2+8)];
+	heapFloat[(r4+23)] = f8;
+	f9 = heapFloat[(r2+9)];
+	heapFloat[(r4+24)] = f9;
+	f10 = heapFloat[(r2+10)];
+	heapFloat[(r4+25)] = f10;
+	f11 = heapFloat[(r2+11)];
+	heapFloat[(r4+26)] = f11;
+	f1 = heapFloat[(r2+12)];
+	heapFloat[(r4+27)] = f1;
+	f12 = heapFloat[(r2+13)];
+	heapFloat[(r4+28)] = f12;
+	f13 = heapFloat[(r2+14)];
+	heapFloat[(r4+29)] = f13;
+	f14 = heapFloat[(r2+15)];
+	heapFloat[(r4+30)] = f14;
+	f15 = heapFloat[(r2+16)];
+	heapFloat[(r4+31)] = f15;
+	f16 = heapFloat[(r4+12)];
+	heapFloat[(fp+-165)] = f16;
+	f16 = heapFloat[(r4+13)];
+	heapFloat[(fp+-167)] = f16;
+	f16 = heapFloat[(r4+14)];
+	heapFloat[(fp+-168)] = f16;
+	f16 = heapFloat[(r4+15)];
+	f17 =                         0;
+	heapFloat[(fp+-162)] = f17;
+	heapFloat[(fp+-163)] = f17;
+}
+	r10 = _ZTV24btPerturbedContactResult;
+	r11 = sp + -616;
+	r12 = heap32[(r5+5)];
+	r10 = (r10 + 8)|0;
+	r13 = r11 >> 2;
+	heap32[(fp+-154)] = r10;
+	heap32[(r13+40)] = r6;
+	f18 = heapFloat[(fp+-155)];
+	heapFloat[(r13+41)] = f18;
+	f18 = heapFloat[(fp+-156)];
+	heapFloat[(r13+42)] = f18;
+	f18 = heapFloat[(fp+-157)];
+	heapFloat[(r13+43)] = f18;
+	f22 = heapFloat[(fp+-163)];
+	heapFloat[(r13+44)] = f22;
+	f18 = heapFloat[(fp+-158)];
+	heapFloat[(r13+45)] = f18;
+	f18 = heapFloat[(fp+-159)];
+	heapFloat[(r13+46)] = f18;
+	f18 = heapFloat[(fp+-160)];
+	heapFloat[(r13+47)] = f18;
+	f22 = heapFloat[(fp+-162)];
+	heapFloat[(r13+48)] = f22;
+	f18 = heapFloat[(fp+-161)];
+	heapFloat[(r13+49)] = f18;
+	f18 = heapFloat[(fp+-164)];
+	heapFloat[(r13+50)] = f18;
+	f18 = heapFloat[(fp+-166)];
+	heapFloat[(r13+51)] = f18;
+	heapFloat[(r13+52)] = f17;
+	f17 = heapFloat[(fp+-165)];
+	heapFloat[(r13+53)] = f17;
+	f17 = heapFloat[(fp+-167)];
+	heapFloat[(r13+54)] = f17;
+	f17 = heapFloat[(fp+-168)];
+	heapFloat[(r13+55)] = f17;
+	heapFloat[(r13+56)] = f16;
+	heapFloat[(r13+57)] = f0;
+	heapFloat[(r13+58)] = f2;
+	heapFloat[(r13+59)] = f3;
+	heapFloat[(r13+60)] = f4;
+	heapFloat[(r13+61)] = f5;
+	heapFloat[(r13+62)] = f6;
+	heapFloat[(r13+63)] = f7;
+	heapFloat[(r13+64)] = f8;
+	heapFloat[(r13+65)] = f9;
+	heapFloat[(r13+66)] = f10;
+	heapFloat[(r13+67)] = f11;
+	heapFloat[(r13+68)] = f1;
+	heapFloat[(r13+69)] = f12;
+	heapFloat[(r13+70)] = f13;
+	heapFloat[(r13+71)] = f14;
+	heapFloat[(r13+72)] = f15;
+	f0 = heapFloat[(fp+-176)];
+	heapFloat[(r13+73)] = f0;
+	f0 = heapFloat[(fp+-177)];
+	heapFloat[(r13+74)] = f0;
+	f0 = heapFloat[(fp+-178)];
+	heapFloat[(r13+75)] = f0;
+	f0 = heapFloat[(fp+-179)];
+	heapFloat[(r13+76)] = f0;
+	f0 = heapFloat[(fp+-180)];
+	heapFloat[(r13+77)] = f0;
+	f0 = heapFloat[(fp+-181)];
+	heapFloat[(r13+78)] = f0;
+	f0 = heapFloat[(fp+-182)];
+	heapFloat[(r13+79)] = f0;
+	f0 = heapFloat[(fp+-183)];
+	heapFloat[(r13+80)] = f0;
+	f0 = heapFloat[(fp+-184)];
+	heapFloat[(r13+81)] = f0;
+	f0 = heapFloat[(fp+-185)];
+	heapFloat[(r13+82)] = f0;
+	f0 = heapFloat[(fp+-186)];
+	heapFloat[(r13+83)] = f0;
+	f0 = heapFloat[(fp+-187)];
+	heapFloat[(r13+84)] = f0;
+	f0 = heapFloat[(fp+-188)];
+	heapFloat[(r13+85)] = f0;
+	f0 = heapFloat[(fp+-189)];
+	heapFloat[(r13+86)] = f0;
+	f0 = heapFloat[(fp+-190)];
+	heapFloat[(r13+87)] = f0;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(r13+88)] = f0;
+	heap8[sp+-260] = r9;
+	heap32[(r13+90)] = r12;
+	heap32[(g0)] = r15;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = r12;
+	heap32[(g0+4)] = 0;
+	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
+}
+else{
+break _78;
+}
+}
+else{
+break _78;
+}
+}
+	r14 = (r14 + 1)|0;
+}
+else{
+break _63;
+}
+}
+	r0 = _2E_str115;
+	r1 = _2E_str685;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 61;
+	_assert(i7);
+}
+}
+} while(0);
+	r0 = heapU8[r0+16];
+	if(r0 ==0) //_LBB301_47
+{
+__label__ = 44;
+}
+else{
+	r0 = heap32[(r7+1)];
+	if(r0 !=0) //_LBB301_76
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+279)];
+	if(r2 ==0) //_LBB301_47
+{
+__label__ = 44;
+}
+else{
+	r1 = heap32[(r1+277)];
+	r2 = heap32[(r7+34)];
+	if(r1 ==r2) //_LBB301_79
+{
+__label__ = 43;
+}
+else{
+	r1 = (r6 + 72)|0;
+	r6 = (r6 + 8)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r6;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+	return;
+}
+}
+}
+else{
+	r0 = _2E_str59;
+	r6 = _2E_str160;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = 101;
+	_assert(i7);
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 44:
+	return;
+break;
+case 43:
+	r1 = (r6 + 8)|0;
+	r2 = (r6 + 72)|0;
+break;
+}
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+	return;
+}
+
+function _ZN23btConvexConvexAlgorithmD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV23btConvexConvexAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+16];
+if(!(r1 ==0)) //_LBB302_3
+{
+	r1 = heap32[(r2+5)];
+if(!(r1 ==0)) //_LBB302_3
+{
+	r3 = heap32[(r2+1)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+}
+	r1 = _ZTV30btActivatingCollisionAlgorithm;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN23btConvexConvexAlgorithmD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV23btConvexConvexAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r0 = heapU8[r0+16];
+if(!(r0 ==0)) //_LBB303_3
+{
+	r0 = heap32[(r2+5)];
+if(!(r0 ==0)) //_LBB303_3
+{
+	r1 = heap32[(r2+1)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+}
+	r0 = _ZTV30btActivatingCollisionAlgorithm;
+	r0 = (r0 + 8)|0;
+	heap32[(r2)] = r0;
+	return;
+}
+
+function _ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var f0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	f0 =                         1;
+	f_g0 = f0;
+	return;
+}
+
+function _ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+3)];
+if(!(r2 ==0)) //_LBB305_23
+{
+	r0 = heapU8[r0+8];
+if(!(r0 ==0)) //_LBB305_23
+{
+	r0 = heap32[(fp+1)];
+	r3 = r0 >> 2;
+	r4 = heap32[(r3+2)];
+	r5 = heap32[(r3+1)];
+	if(r4 ==r5) //_LBB305_4
+{
+	r6 = 1;
+	r7 = r5 << 1;
+	r7 = r5 == 0 ? r6 : r7;
+if(!(r4 >=r7)) //_LBB305_3
+{
+	if(r7 !=0) //_LBB305_7
+{
+	r2 = gNumAlignedAllocs;
+	r2 = r2 >> 2;
+	r4 = heap32[(r2)];
+	r8 = r7 << 2;
+	r4 = (r4 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r2)] = r4;
+	r2 = (r8 + 16)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB305_9
+{
+	r4 = 0;
+	r8 = (r2 + 4)|0;
+	r4 = (r4 - r8)|0;
+	r4 = r4 & 15;
+	r4 = (r2 + r4)|0;
+	r8 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r2;
+	r2 = r8;
+}
+}
+else{
+	r2 = 0;
+}
+	r4 = (r0 + 12)|0;
+	if(r5 <1) //_LBB305_12
+{
+	r8 = r4 >> 2;
+	r9 = heap32[(r8)];
+}
+else{
+	r8 = 0;
+_15: while(true){
+	r9 = r4 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r8 << 2;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r2 + r10)|0;
+	r11 = heap32[(r11)];
+	r8 = (r8 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r11;
+if(!(r5 !=r8)) //_LBB305_13
+{
+break _15;
+}
+}
+	r4 = (r0 + 12)|0;
+}
+	if(r9 !=0) //_LBB305_17
+{
+	r8 = heapU8[r0+16];
+	if(r8 !=0) //_LBB305_19
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r8 = heap32[(r5)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r5)] = r8;
+	r5 = heap32[(r9+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+	r5 = heap32[(r3+1)];
+}
+	r8 = r4 >> 2;
+	heap32[(r8)] = 0;
+}
+	r4 = r4 >> 2;
+	heap8[r0+16] = r6;
+	heap32[(r4)] = r2;
+	heap32[(r3+2)] = r7;
+	r2 = heap32[(r1+3)];
+}
+}
+	r0 = r5 << 2;
+	r1 = heap32[(r3+3)];
+	r0 = (r1 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r2;
+	r0 = heap32[(r3+1)];
+	r0 = (r0 + 1)|0;
+	heap32[(r3+1)] = r0;
+}
+}
+	return;
+}
+
+function _ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -136;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0)];
+	f1 = heapFloat[(r0+1)];
+	f2 = heapFloat[(r0+2)];
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f5 = heapFloat[(r0+3)];
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	f4 = f5*f5;
+	f6 =                         2;
+	f3 = f3+f4;
+	f3 = f6/f3;
+	r0 = heap32[(fp)];
+	f4 = f2*f3;
+	f6 = f1*f3;
+	r1 = heapU8[r0+16];
+	r2 = heap32[(fp+3)];
+	r3 = heap32[(fp+2)];
+	f3 = f0*f3;
+	r4 = r1 == 0 ? r3 : r2;
+	f7 = f1*f6;
+	f2 = f2*f4;
+	r4 = r4 >> 2;
+	f8 = f0*f3;
+	f9 =                         1;
+	f10 = f7+f2;
+	f11 = f0*f6;
+	f12 = f5*f4;
+	f2 = f8+f2;
+	f10 = f9-f10;
+	f13 = heapFloat[(r4+1)];
+	heapFloat[(fp+-17)] = f13;
+	f13 = heapFloat[(r4+5)];
+	heapFloat[(fp+-18)] = f13;
+	f14 = f11+f12;
+	f13 = heapFloat[(r4+2)];
+	heapFloat[(fp+-19)] = f13;
+	f13 = heapFloat[(r4+6)];
+	heapFloat[(fp+-20)] = f13;
+	f0 = f0*f4;
+	f6 = f5*f6;
+	f11 = f11-f12;
+	f2 = f9-f2;
+	f12 = heapFloat[(r4+9)];
+	heapFloat[(fp+-24)] = f12;
+	f15 = heapFloat[(r4+10)];
+	heapFloat[(fp+-25)] = f15;
+	r1 = r1 == 0 ? r2 : r3;
+	f1 = f1*f4;
+	f3 = f5*f3;
+	f13 = heapFloat[(fp+-17)];
+	f4 = f10*f13;
+	f13 = heapFloat[(fp+-19)];
+	f5 = f14*f13;
+	f13 = heapFloat[(fp+-18)];
+	f16 = f10*f13;
+	f13 = heapFloat[(fp+-20)];
+	f17 = f14*f13;
+	f18 = f0-f6;
+	f19 = heapFloat[(r4+3)];
+	heapFloat[(fp+-26)] = f19;
+	f20 = heapFloat[(r4+7)];
+	heapFloat[(fp+-27)] = f20;
+	r1 = r1 >> 2;
+	f0 = f0+f6;
+	f6 = f1-f3;
+	f1 = f1+f3;
+	f3 = heapFloat[(r4+11)];
+	heapFloat[(fp+-21)] = f3;
+	f7 = f8+f7;
+	f13 = heapFloat[(fp+-17)];
+	f8 = f11*f13;
+	f13 = heapFloat[(fp+-19)];
+	f21 = f2*f13;
+	f13 = heapFloat[(fp+-18)];
+	f22 = f11*f13;
+	f13 = heapFloat[(fp+-20)];
+	f23 = f2*f13;
+	f4 = f4+f5;
+	f5 = f18*f19;
+	f16 = f16+f17;
+	f17 = f18*f20;
+	f10 = f10*f12;
+	f14 = f14*f15;
+	f7 = f9-f7;
+	f9 = heapFloat[(r1+2)];
+	f24 = heapFloat[(r1+6)];
+	f25 = heapFloat[(r1+1)];
+	f26 = heapFloat[(r1+5)];
+	f4 = f4+f5;
+	f5 = f16+f17;
+	r2 = heap32[(r1+48)];
+	f13 = heapFloat[(fp+-17)];
+	f16 = f0*f13;
+	f13 = heapFloat[(fp+-19)];
+	f17 = f6*f13;
+	f13 = heapFloat[(fp+-18)];
+	f27 = f0*f13;
+	f13 = heapFloat[(fp+-20)];
+	f28 = f6*f13;
+	f8 = f8+f21;
+	f21 = f1*f19;
+	f22 = f22+f23;
+	f23 = f1*f20;
+	f11 = f11*f12;
+	f2 = f2*f15;
+	f10 = f10+f14;
+	f14 = f18*f3;
+	f18 = heapFloat[(r1+3)];
+	f29 = heapFloat[(r1+7)];
+	f8 = f8+f21;
+	f21 = f22+f23;
+	f22 = heapFloat[(r1+10)];
+	f23 = heapFloat[(r1+9)];
+	r2 = r2 >> 2;
+	f10 = f10+f14;
+	r3 = heap32[(r4+48)];
+	f14 = f16+f17;
+	f16 = f7*f19;
+	f17 = f27+f28;
+	f27 = f7*f20;
+	f0 = f0*f12;
+	f6 = f6*f15;
+	f2 = f11+f2;
+	f1 = f1*f3;
+	f11 = f25*f4;
+	f28 = f26*f5;
+	f30 = f9*f4;
+	f3 = f24*f5;
+	f12 = heapFloat[(r1+11)];
+	f14 = f14+f16;
+	f16 = f17+f27;
+	f1 = f2+f1;
+	r5 = r3 >> 2;
+	f2 = heapFloat[(r2+12)];
+	f0 = f0+f6;
+	f6 = heapFloat[(fp+-21)];
+	f7 = f7*f6;
+	f17 = f25*f8;
+	f27 = f26*f21;
+	f6 = f9*f8;
+	f13 = f24*f21;
+	f11 = f11+f28;
+	f28 = f23*f10;
+	f3 = f30+f3;
+	f30 = f22*f10;
+	f4 = f18*f4;
+	f5 = f29*f5;
+	f0 = f0+f7;
+	r5 = heap32[(r5)];
+	f7 = f25*f14;
+	f15 = f26*f16;
+	f19 = f9*f14;
+	f20 = f24*f16;
+	f17 = f17+f27;
+	f27 = f23*f1;
+	f6 = f6+f13;
+	f13 = f22*f1;
+	f8 = f18*f8;
+	f21 = f29*f21;
+	f11 = f11+f28;
+	f2 = -f2;
+	f3 = f3+f30;
+	f28 = heapFloat[(r2+13)];
+	f4 = f4+f5;
+	f5 = f12*f10;
+	r5 = r5 >> 2;
+	f10 = f17+f27;
+	f6 = f6+f13;
+	f7 = f7+f15;
+	f13 = f23*f0;
+	f15 = f19+f20;
+	f17 = f22*f0;
+	f14 = f18*f14;
+	f16 = f29*f16;
+	f8 = f8+f21;
+	f1 = f12*f1;
+	f11 = f11*f2;
+	f3 = f3*f28;
+	f4 = f4+f5;
+	f5 = heapFloat[(r2+14)];
+	f19 = heapFloat[(r4+13)];
+	heapFloat[(fp+-22)] = f19;
+	f19 = heapFloat[(r4+14)];
+	heapFloat[(fp+-23)] = f19;
+	f20 = heapFloat[(r4+15)];
+	heapFloat[(fp+-28)] = f20;
+	f21 = heapFloat[(r1+14)];
+	f27 = heapFloat[(r1+15)];
+	heapFloat[(fp+-29)] = f27;
+	f7 = f7+f13;
+	f13 = f15+f17;
+	f1 = f8+f1;
+	f8 = heapFloat[(r1+13)];
+	r4 = heap32[(r5+15)];
+	f14 = f14+f16;
+	f0 = f12*f0;
+	f10 = f10*f2;
+	f6 = f6*f28;
+	f3 = f11-f3;
+	f4 = f4*f5;
+	r5 = sp + -16;
+	f0 = f14+f0;
+	f2 = f7*f2;
+	f7 = f13*f28;
+	f6 = f10-f6;
+	f1 = f1*f5;
+	f3 = f3-f4;
+	r6 = r5 >> 2;
+	f2 = f2-f7;
+	f0 = f0*f5;
+	f1 = f6-f1;
+	heapFloat[(fp+-4)] = f3;
+	f0 = f2-f0;
+	heapFloat[(r6+1)] = f1;
+	heapFloat[(r6+2)] = f0;
+	heap32[(r6+3)] = 0;
+	r6 = sp + -32;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r5;
+	f13 = heapFloat[(fp+-17)];
+	f0 = f13*f9;
+	f13 = heapFloat[(fp+-18)];
+	f1 = f13*f24;
+	f13 = heapFloat[(fp+-19)];
+	f2 = f13*f9;
+	f13 = heapFloat[(fp+-20)];
+	f3 = f13*f24;
+	f13 = heapFloat[(fp+-17)];
+	f4 = f13*f25;
+	f13 = heapFloat[(fp+-18)];
+	f5 = f13*f26;
+	f13 = heapFloat[(fp+-19)];
+	f6 = f13*f25;
+	f13 = heapFloat[(fp+-20)];
+	f7 = f13*f26;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	f8 = -f8;
+	r3 = r6 >> 2;
+	f13 = heapFloat[(fp+-17)];
+	f10 = f13*f18;
+	f13 = heapFloat[(fp+-18)];
+	f11 = f13*f29;
+	f13 = heapFloat[(fp+-19)];
+	f13 = f13*f18;
+	f14 = heapFloat[(fp+-20)];
+	f14 = f14*f29;
+	f0 = f0+f1;
+	f1 = heapFloat[(fp+-24)];
+	f15 = f1*f22;
+	f2 = f2+f3;
+	f3 = heapFloat[(fp+-25)];
+	f16 = f3*f22;
+	f19 = heapFloat[(fp+-26)];
+	f17 = f19*f9;
+	f20 = heapFloat[(fp+-27)];
+	f28 = f20*f24;
+	f4 = f4+f5;
+	f5 = f1*f23;
+	f6 = f6+f7;
+	f7 = f3*f23;
+	f30 = f19*f25;
+	f1 = f20*f26;
+	f10 = f10+f11;
+	f11 = heapFloat[(fp+-24)];
+	f11 = f11*f12;
+	f13 = f13+f14;
+	f3 = f3*f12;
+	f14 = f19*f18;
+	f19 = f20*f29;
+	f0 = f0+f15;
+	f15 = heapFloat[(fp+-8)];
+	f4 = f4+f5;
+	f2 = f2+f16;
+	f5 = heapFloat[(r3+1)];
+	f6 = f6+f7;
+	f7 = f17+f28;
+	f16 = heapFloat[(fp+-21)];
+	f17 = f16*f22;
+	f20 = heapFloat[(fp+-22)];
+	f28 = f9*f20;
+	f16 = heapFloat[(fp+-23)];
+	f16 = f24*f16;
+	f9 = f9*f8;
+	f24 = f24*f21;
+	f1 = f30+f1;
+	f30 = heapFloat[(fp+-21)];
+	f20 = f30*f23;
+	f27 = heapFloat[(fp+-22)];
+	f27 = f25*f27;
+	f30 = heapFloat[(fp+-23)];
+	f30 = f26*f30;
+	f25 = f25*f8;
+	f26 = f26*f21;
+	f10 = f10+f11;
+	f3 = f13+f3;
+	f11 = f14+f19;
+	f13 = heapFloat[(fp+-21)];
+	f13 = f13*f12;
+	f14 = heapFloat[(fp+-22)];
+	f14 = f18*f14;
+	f19 = heapFloat[(fp+-23)];
+	f19 = f29*f19;
+	f8 = f18*f8;
+	f18 = f29*f21;
+	f0 = f0*f15;
+	f2 = f2*f5;
+	f7 = f7+f17;
+	f17 = heapFloat[(r3+2)];
+	f1 = f1+f20;
+	f16 = f28+f16;
+	f20 = heapFloat[(fp+-28)];
+	f21 = f22*f20;
+	f9 = f9-f24;
+	f24 = heapFloat[(fp+-29)];
+	f22 = f22*f24;
+	f4 = f4*f15;
+	f6 = f6*f5;
+	f27 = f27+f30;
+	f28 = f23*f20;
+	f25 = f25-f26;
+	f23 = f23*f24;
+	f11 = f11+f13;
+	f10 = f10*f15;
+	f3 = f3*f5;
+	f5 = f14+f19;
+	f13 = f12*f20;
+	f8 = f8-f18;
+	f12 = f12*f24;
+	f0 = f0+f2;
+	f2 = f7*f17;
+	f7 = f16+f21;
+	f9 = f9-f22;
+	f4 = f4+f6;
+	f1 = f1*f17;
+	f6 = f27+f28;
+	f14 = f25-f23;
+	f3 = f10+f3;
+	f10 = f11*f17;
+	f5 = f5+f13;
+	f8 = f8-f12;
+	f0 = f0+f2;
+	f2 = f7+f9;
+	f1 = f4+f1;
+	f4 = f6+f14;
+	f3 = f3+f10;
+	f5 = f5+f8;
+	f0 = f0+f2;
+	f2 = heapFloat[(r2+13)];
+	f1 = f1+f4;
+	f4 = heapFloat[(r2+12)];
+	f6 = f4*f1;
+	f7 = f2*f0;
+	f3 = f3+f5;
+	f5 = heapFloat[(r2+14)];
+	r0 = r0 >> 2;
+	f6 = f6+f7;
+	f7 = f5*f3;
+	r0 = heap32[(r0+3)];
+	f6 = f6+f7;
+	f7 = heapFloat[(r2+16)];
+	f6 = f6-f7;
+	r3 = r0 >> 2;
+	r4 = heap32[(fp+4)];
+	f7 = heapFloat[(r1+9)];
+	f8 = heapFloat[(r1+10)];
+	f9 = heapFloat[(r1+11)];
+	f10 = heapFloat[(r1+15)];
+	f11 = heapFloat[(r1+5)];
+	f12 = heapFloat[(r1+6)];
+	f13 = heapFloat[(r1+7)];
+	f14 = heapFloat[(r1+14)];
+	f15 = heapFloat[(r1+1)];
+	f16 = heapFloat[(r1+2)];
+	f17 = heapFloat[(r1+3)];
+	f18 = heapFloat[(r1+13)];
+	f19 = heapFloat[(r3+280)];
+	r3 = r4 >> 2;
+	heap32[(r3+1)] = r0;
+if(!(f19 <=f6)) //_LBB306_2
+{
+	f5 = f5*f6;
+	f2 = f2*f6;
+	f4 = f4*f6;
+	f3 = f3-f5;
+	f0 = f0-f2;
+	f1 = f1-f4;
+	f2 = heapFloat[(r2+12)];
+	f4 = heapFloat[(r1+1)];
+	f5 = heapFloat[(r2+13)];
+	f19 = heapFloat[(r1+2)];
+	f20 = heapFloat[(r1+5)];
+	f21 = heapFloat[(r1+6)];
+	f4 = f4*f2;
+	f19 = f19*f5;
+	f22 = heapFloat[(r2+14)];
+	f23 = heapFloat[(r1+3)];
+	f24 = heapFloat[(r1+9)];
+	f25 = heapFloat[(r1+10)];
+	f26 = heapFloat[(r1+11)];
+	f27 = heapFloat[(r1+7)];
+	f20 = f20*f2;
+	f21 = f21*f5;
+	f4 = f4+f19;
+	f19 = f23*f22;
+	r0 = sp + -48;
+	f2 = f24*f2;
+	f5 = f25*f5;
+	f20 = f20+f21;
+	f21 = f27*f22;
+	f4 = f4+f19;
+	f15 = f15*f1;
+	f16 = f16*f0;
+	r1 = r0 >> 2;
+	f2 = f2+f5;
+	f5 = f26*f22;
+	f19 = f20+f21;
+	heapFloat[(fp+-12)] = f4;
+	f4 = f11*f1;
+	f11 = f12*f0;
+	f12 = f15+f16;
+	f15 = f17*f3;
+	f2 = f2+f5;
+	heapFloat[(r1+1)] = f19;
+	heapFloat[(r1+2)] = f2;
+	f1 = f7*f1;
+	f0 = f8*f0;
+	f2 = f4+f11;
+	f4 = f13*f3;
+	f5 = f12+f15;
+	r2 = sp + -64;
+	f0 = f1+f0;
+	f1 = f9*f3;
+	f2 = f2+f4;
+	f3 = f5+f18;
+	heap32[(r1+3)] = 0;
+	r1 = r2 >> 2;
+	f0 = f0+f1;
+	f1 = f2+f14;
+	heapFloat[(fp+-16)] = f3;
+	f0 = f0+f10;
+	heapFloat[(r1+1)] = f1;
+	heapFloat[(r1+2)] = f0;
+	heap32[(r1+3)] = 0;
+	r1 = heap32[(r3)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	heapFloat[(g0+3)] = f6;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+	return;
+}
+
+function _ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+var __label__ = 0;
+	i7 = sp + -56;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+3)];
+if(!(r2 ==0)) //_LBB307_23
+{
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+4)];
+	r5 = heapU8[r0+16];
+	r6 = r5 == 0 ? r2 : r3;
+	r5 = r5 == 0 ? r3 : r2;
+	r6 = r6 >> 2;
+	r5 = r5 >> 2;
+	r6 = heap32[(r6+48)];
+	r5 = heap32[(r5+48)];
+	r7 = sp + -32;
+	r8 = r7 >> 2;
+	heap32[(fp+-8)] = 0;
+	heap32[(r8+1)] = 0;
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = 1065353216;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r4;
+	r7 = r4 >> 2;
+	_ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i7);
+	r8 = heap32[(r7+1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+279)];
+	r9 = heap32[(r1+6)];
+_3: do {
+if(!(r8 >=r9)) //_LBB307_15
+{
+	r5 = r5 >> 2;
+	f0 = heapFloat[(r5+14)];
+	f1 =                         0;
+	if(f0 <f1) //_LBB307_4
+{
+	f2 = -f0;
+}
+else{
+	f2 = f0;
+}
+	f3 =       0.70710676908493042;
+	if(f2 <=f3) //_LBB307_7
+{
+	f0 = heapFloat[(r5+12)];
+	f2 = heapFloat[(r5+13)];
+	f0 = f0*f0;
+	f2 = f2*f2;
+	f0 = f0+f2;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f2 = heapFloat[(r5+13)];
+	f3 =                         1;
+	f2 = -f2;
+	f0 = f3/f_g0;
+	f4 = heapFloat[(r5+12)];
+	f3 = f0*f2;
+	f2 = f4*f0;
+	f0 = f1;
+}
+else{
+	f2 = heapFloat[(r5+13)];
+	f2 = f2*f2;
+	f0 = f0*f0;
+	f0 = f2+f0;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f2 = heapFloat[(r5+14)];
+	f3 =                         1;
+	f2 = -f2;
+	f0 = f3/f_g0;
+	f3 = heapFloat[(r5+13)];
+	f2 = f0*f2;
+	f0 = f3*f0;
+	f3 =                         0;
+}
+	r8 = r6 >> 2;
+	r8 = heap32[(r8)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r6;
+	f4 = f3*f3;
+	f5 = f2*f2;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	f6 = f_g0;
+	f4 = f4+f5;
+	f5 = f0*f0;
+	f4 = f4+f5;
+	heapFloat[(g0)] = f4;
+	sqrtf(i7);
+	f4 = f_g0;
+	if(f4 !=f1) //_LBB307_10
+{
+	f1 =      0.019999999552965164;
+	f1 = f1/f6;
+	f5 =                       0.5;
+	f6 =       0.39269909262657166;
+	f7 =       0.19634954631328583;
+	f8 = f1*f5;
+	f1 = f1 > f6 ? f7 : f8;
+	heapFloat[(g0)] = f1;
+	sinf(i7);
+	heapFloat[(g0)] = f1;
+	f1 = f_g0/f4;
+	f0 = f0*f1;
+	f2 = f2*f1;
+	f1 = f3*f1;
+	r6 = 0;
+	cosf(i7);
+	f3 = f_g0;
+_15: while(true){
+	r8 = heap32[(r1+5)];
+	if(r8 >r6) //_LBB307_11
+{
+	f4 = heapFloat[(r5+12)];
+	f6 = heapFloat[(r5+13)];
+	f7 = heapFloat[(r5+14)];
+	f4 = f4*f4;
+	f6 = f6*f6;
+	f4 = f4+f6;
+	f6 = f7*f7;
+	f4 = f4+f6;
+	heapFloat[(g0)] = f4;
+	sqrtf(i7);
+	f4 = f_g0;
+	f6 =                         0;
+	if(f4 !=f6) //_LBB307_13
+{
+	f6 =        6.2831854820251465;
+	f7 = r8; //fitos r8, f7
+	f8 = r6; //fitos r6, f8
+	f6 = f6/f7;
+	f6 = f8*f6;
+	f6 = f6*f5;
+	heapFloat[(g0)] = f6;
+	sinf(i7);
+	f7 = f_g0;
+	heapFloat[(g0)] = f6;
+	cosf(i7);
+	f4 = f7/f4;
+	f7 = heapFloat[(r5+12)];
+	f7 = f7*f4;
+	f8 = heapFloat[(r5+13)];
+	f8 = f8*f4;
+	f9 = heapFloat[(r5+14)];
+	f10 = f_g0*f3;
+	f11 = f1*f7;
+	f12 = f_g0*f1;
+	f13 = f3*f7;
+	f4 = f9*f4;
+	f9 = f10+f11;
+	f10 = f2*f8;
+	f11 = f12-f13;
+	f12 = f0*f8;
+	f13 = f_g0*f2;
+	f14 = f3*f8;
+	f9 = f9+f10;
+	f10 = f0*f4;
+	f11 = f11-f12;
+	f12 = f2*f4;
+	f13 = f13-f14;
+	f14 = f1*f4;
+	f15 = f_g0*f0;
+	f16 = f3*f4;
+	f9 = f9+f10;
+	f10 = f11+f12;
+	f11 = f13-f14;
+	f12 = f0*f7;
+	f13 = f15-f16;
+	f14 = f2*f7;
+	f11 = f11+f12;
+	f12 = f9*f7;
+	f15 = f10*f_g0;
+	f13 = f13-f14;
+	f14 = f1*f8;
+	f13 = f13+f14;
+	f14 = f9*f8;
+	f16 = f11*f_g0;
+	f12 = f12+f15;
+	f15 = f11*f4;
+	f17 = f9*f4;
+	f18 = f13*f_g0;
+	f14 = f14+f16;
+	f16 = f13*f7;
+	f12 = f12+f15;
+	f15 = f13*f8;
+	r8 = sp + -16;
+	f6 = f9*f_g0;
+	f9 = f10*f7;
+	f17 = f17+f18;
+	f18 = f10*f8;
+	f14 = f14+f16;
+	f10 = f10*f4;
+	f12 = f12-f15;
+	r9 = r8 >> 2;
+	f6 = f6-f9;
+	f8 = f11*f8;
+	f9 = f17+f18;
+	f7 = f11*f7;
+	f10 = f14-f10;
+	heapFloat[(fp+-4)] = f12;
+	f6 = f6-f8;
+	f4 = f13*f4;
+	f7 = f9-f7;
+	heapFloat[(r9+1)] = f10;
+	f4 = f6-f4;
+	heapFloat[(r9+2)] = f7;
+	heapFloat[(r9+3)] = f4;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r4;
+	r6 = (r6 + 1)|0;
+	_ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i7);
+}
+else{
+break _15;
+}
+}
+else{
+break _3;
+}
+}
+}
+	r0 = _2E_str115;
+	r1 = _2E_str685;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 61;
+	_assert(i7);
+}
+} while(0);
+	r0 = heapU8[r0+8];
+if(!(r0 ==0)) //_LBB307_23
+{
+	r0 = heap32[(r1+3)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+279)];
+if(!(r0 ==0)) //_LBB307_23
+{
+	r0 = heap32[(r7+1)];
+	if(r0 !=0) //_LBB307_19
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+279)];
+if(!(r2 ==0)) //_LBB307_23
+{
+	r1 = heap32[(r1+277)];
+	r2 = heap32[(r7+34)];
+	if(r1 ==r2) //_LBB307_22
+{
+	r1 = (r4 + 8)|0;
+	r2 = (r4 + 72)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+}
+else{
+	r1 = (r4 + 72)|0;
+	r4 = (r4 + 8)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r4;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+	return;
+}
+}
+}
+else{
+	r0 = _2E_str59;
+	r4 = _2E_str160;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = 101;
+	_assert(i7);
+}
+}
+}
+}
+	return;
+}
+
+function _ZN31btConvexPlaneCollisionAlgorithmD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btConvexPlaneCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+8];
+if(!(r1 ==0)) //_LBB308_3
+{
+	r1 = heap32[(r2+3)];
+if(!(r1 ==0)) //_LBB308_3
+{
+	r2 = heap32[(r2+1)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+}
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN31btConvexPlaneCollisionAlgorithmD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btConvexPlaneCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r0 = heapU8[r0+8];
+if(!(r0 ==0)) //_LBB309_3
+{
+	r0 = heap32[(r2+3)];
+if(!(r0 ==0)) //_LBB309_3
+{
+	r1 = heap32[(r2+1)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+}
+	return;
+}
+
+function _ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+4)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+6)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN31btDefaultCollisionConfiguration17getStackAllocatorEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+2)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN31btDefaultCollisionConfiguration16getSimplexSolverEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+8)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 28;
+	r1 = heap32[(fp)];
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r3 = r1 >> 2;
+	r4 = _ZTV20btCollisionAlgorithm;
+	r5 = heap32[(r3+3)];
+	r3 = heap32[(r3+2)];
+	r1 = heapU8[r1+4];
+	r6 = r2 >> 2;
+	r4 = (r4 + 8)|0;
+	heap32[(r6)] = r4;
+	r0 = heap32[(r0)];
+	r4 = _ZTV31btConvexPlaneCollisionAlgorithm;
+	r4 = (r4 + 8)|0;
+	heap32[(r6+1)] = r0;
+	r7 = 0;
+	heap32[(r6)] = r4;
+	r4 = heap32[(fp+2)];
+	r8 = heap32[(fp+3)];
+	heap8[r2+8] = r7;
+	heap32[(r6+3)] = 0;
+	if(r1 !=0) //_LBB316_3
+{
+	r1 = 1;
+	r6 = r2 >> 2;
+	heap8[r2+16] = r1;
+	heap32[(r6+5)] = r3;
+	r3 = r0 >> 2;
+	heap32[(r6+6)] = r5;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+6)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB316_5
+{
+	r0 = heap32[(r6+1)];
+	r3 = r0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	heap32[(r6+3)] = r_g0;
+	heap8[r2+8] = r1;
+}
+}
+else{
+	r1 = r2 >> 2;
+	heap8[r2+16] = r7;
+	heap32[(r1+5)] = r3;
+	r3 = r0 >> 2;
+	heap32[(r1+6)] = r5;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+6)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r8;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB316_5
+{
+	r0 = heap32[(r1+1)];
+	r3 = r0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r8;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = 1;
+	heap32[(r1+3)] = r_g0;
+	heap8[r2+8] = r3;
+}
+}
+	r_g0 = r2;
+	return;
+}
+
+function _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 80;
+	r1 = _ZTV20btCollisionAlgorithm;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r1 = (r1 + 8)|0;
+	r3 = r2 >> 2;
+	heap32[(r3)] = r1;
+	r1 = heap32[(r0)];
+	r4 = _ZTV33btConvexConcaveCollisionAlgorithm;
+	r4 = (r4 + 8)|0;
+	heap32[(r3+1)] = r1;
+	r1 = 0;
+	heap32[(r3)] = r4;
+	heap8[r2+8] = r1;
+	r1 = _ZTV24btConvexTriangleCallback;
+	r0 = heap32[(r0)];
+	r1 = (r1 + 8)|0;
+	heap32[(r3+3)] = r1;
+	heap32[(r3+15)] = r0;
+	r1 = heap32[(fp+2)];
+	heap32[(r3+16)] = 0;
+	r4 = heap32[(fp+3)];
+	heap32[(r3+4)] = r1;
+	r5 = r0 >> 2;
+	heap32[(r3+5)] = r4;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	heap32[(r3+19)] = r_g0;
+	r1 = heap32[(r3+15)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+5)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r_g0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r_g0 = r2;
+	return;
+}
+
+function _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 80;
+	r1 = _ZTV20btCollisionAlgorithm;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r1 = (r1 + 8)|0;
+	r3 = r2 >> 2;
+	heap32[(r3)] = r1;
+	r1 = heap32[(r0)];
+	r4 = _ZTV33btConvexConcaveCollisionAlgorithm;
+	r4 = (r4 + 8)|0;
+	heap32[(r3+1)] = r1;
+	r1 = 1;
+	heap32[(r3)] = r4;
+	heap8[r2+8] = r1;
+	r1 = _ZTV24btConvexTriangleCallback;
+	r0 = heap32[(r0)];
+	r1 = (r1 + 8)|0;
+	heap32[(r3+3)] = r1;
+	heap32[(r3+15)] = r0;
+	r1 = heap32[(fp+3)];
+	heap32[(r3+16)] = 0;
+	r4 = heap32[(fp+2)];
+	heap32[(r3+4)] = r1;
+	r5 = r0 >> 2;
+	heap32[(r3+5)] = r4;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	heap32[(r3+19)] = r_g0;
+	r1 = heap32[(r3+15)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+5)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r_g0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r_g0 = r2;
+	return;
+}
+
+function _ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 44;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = r_g0;
+	r2 = _ZTV20btCollisionAlgorithm;
+	r3 = r1 >> 2;
+	r2 = (r2 + 8)|0;
+	heap32[(r3)] = r2;
+	r2 = heap32[(r0)];
+	r4 = _ZTV28btCompoundCollisionAlgorithm;
+	r4 = (r4 + 8)|0;
+	heap32[(r3+1)] = r2;
+	r2 = 1;
+	heap32[(r3)] = r4;
+	heap8[r1+24] = r2;
+	heap32[(r3+5)] = 0;
+	heap32[(r3+3)] = 0;
+	r2 = 0;
+	heap32[(r3+4)] = 0;
+	heap8[r1+28] = r2;
+	r0 = heap32[(r0+1)];
+	r4 = heap32[(fp+2)];
+	heap32[(r3+8)] = r0;
+	r0 = r4 >> 2;
+	heap8[r1+36] = r2;
+	r0 = heap32[(r0+48)];
+	r0 = r0 >> 2;
+	r2 = heap32[(r0+1)];
+	if(r2 ==31) //_LBB325_2
+{
+	r2 = heap32[(fp+3)];
+	r3 = r1 >> 2;
+	r0 = heap32[(r0+17)];
+	heap32[(r3+10)] = r0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r2;
+	_ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i7);
+	r_g0 = r1;
+	return;
+}
+else{
+	r0 = _2E_str99;
+	r1 = _2E_str1100;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 32;
+	_assert(i7);
+}
+}
+
+function _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 44;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = r_g0;
+	r2 = _ZTV20btCollisionAlgorithm;
+	r3 = r1 >> 2;
+	r2 = (r2 + 8)|0;
+	heap32[(r3)] = r2;
+	r2 = heap32[(r0)];
+	r4 = _ZTV28btCompoundCollisionAlgorithm;
+	r4 = (r4 + 8)|0;
+	heap32[(r3+1)] = r2;
+	r2 = 1;
+	heap32[(r3)] = r4;
+	heap8[r1+24] = r2;
+	heap32[(r3+5)] = 0;
+	heap32[(r3+3)] = 0;
+	heap32[(r3+4)] = 0;
+	heap8[r1+28] = r2;
+	r0 = heap32[(r0+1)];
+	r2 = heap32[(fp+3)];
+	r4 = 0;
+	heap32[(r3+8)] = r0;
+	r0 = r2 >> 2;
+	heap8[r1+36] = r4;
+	r0 = heap32[(r0+48)];
+	r0 = r0 >> 2;
+	r3 = heap32[(r0+1)];
+	if(r3 ==31) //_LBB328_2
+{
+	r3 = heap32[(fp+2)];
+	r4 = r1 >> 2;
+	r0 = heap32[(r0+17)];
+	heap32[(r4+10)] = r0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r2;
+	_ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i7);
+	r_g0 = r1;
+	return;
+}
+else{
+	r0 = _2E_str99;
+	r1 = _2E_str1100;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 32;
+	_assert(i7);
+}
+}
+
+function _ZN16btEmptyAlgorithm10CreateFuncD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN16btEmptyAlgorithm10CreateFuncE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN16btEmptyAlgorithm10CreateFuncD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN16btEmptyAlgorithm10CreateFuncE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 8;
+	r1 = _ZTV20btCollisionAlgorithm;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r3 = r_g0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r3)] = r1;
+	r0 = heap32[(r0)];
+	r1 = _ZTV16btEmptyAlgorithm;
+	r1 = (r1 + 8)|0;
+	heap32[(r3+1)] = r0;
+	heap32[(r3)] = r1;
+	return;
+}
+
+function _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 16;
+	r1 = _ZTV20btCollisionAlgorithm;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r3 = r2 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r3)] = r1;
+	r0 = heap32[(r0)];
+	r1 = _ZTV32btSphereSphereCollisionAlgorithm;
+	r1 = (r1 + 8)|0;
+	heap32[(r3+1)] = r0;
+	r4 = 0;
+	heap32[(r3)] = r1;
+	heap8[r2+8] = r4;
+	r1 = r0 >> 2;
+	heap32[(r3+3)] = 0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+3)];
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r1 = 1;
+	heap32[(r3+3)] = r_g0;
+	heap8[r2+8] = r1;
+	r_g0 = r2;
+	return;
+}
+
+function _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 20;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = r_g0;
+	r2 = heap32[(fp)];
+	r3 = _ZTV20btCollisionAlgorithm;
+	r4 = heap32[(r0+1)];
+	r2 = heapU8[r2+4];
+	r5 = r1 >> 2;
+	r3 = (r3 + 8)|0;
+	heap32[(r5)] = r3;
+	r0 = heap32[(r0)];
+	r3 = _ZTV34btSphereTriangleCollisionAlgorithm;
+	r3 = (r3 + 8)|0;
+	heap32[(r5+1)] = r0;
+	r6 = 0;
+	heap32[(r5)] = r3;
+	heap8[r1+8] = r6;
+	heap32[(r5+3)] = r4;
+	heap8[r1+16] = r2;
+if(!(r4 !=0)) //_LBB337_2
+{
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r4 = r0 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	r0 = r1 >> 2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r3 = 1;
+	heap32[(r0+3)] = r_g0;
+	heap8[r1+8] = r3;
+}
+	r_g0 = r1;
+	return;
+}
+
+function _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 16;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = r_g0;
+	r2 = _ZTV20btCollisionAlgorithm;
+	r3 = r1 >> 2;
+	r2 = (r2 + 8)|0;
+	heap32[(r3)] = r2;
+	r0 = heap32[(r0)];
+	r2 = _ZTV26btBoxBoxCollisionAlgorithm;
+	r2 = (r2 + 8)|0;
+	heap32[(r3+1)] = r0;
+	r4 = 0;
+	heap32[(r3)] = r2;
+	heap8[r1+8] = r4;
+	r2 = r0 >> 2;
+	heap32[(r3+3)] = 0;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+6)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB340_2
+{
+	r0 = r1 >> 2;
+	r2 = heap32[(r0+1)];
+	r5 = r2 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+3)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r3 = 1;
+	heap32[(r0+3)] = r_g0;
+	heap8[r1+8] = r3;
+}
+	r_g0 = r1;
+	return;
+}
+
+function _ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+2)];
+	if(r0 !=8) //_LBB341_3
+{
+__label__ = 3;
+}
+else{
+	if(r2 !=8) //_LBB341_3
+{
+__label__ = 3;
+}
+else{
+	r0 = (r1 + 64)|0;
+__label__ = 30;
+}
+}
+_4: do {
+if (__label__ == 3){
+if(!(r0 !=8)) //_LBB341_6
+{
+if(!(r2 !=1)) //_LBB341_6
+{
+	r0 = (r1 + 72)|0;
+break _4;
+}
+}
+if(!(r0 !=1)) //_LBB341_9
+{
+if(!(r2 !=8)) //_LBB341_9
+{
+	r0 = (r1 + 76)|0;
+break _4;
+}
+}
+	r3 = r2 | r0;
+	if(r3 !=0) //_LBB341_11
+{
+if(!(r0 >19)) //_LBB341_14
+{
+if(!(r2 !=28)) //_LBB341_14
+{
+	r0 = (r1 + 84)|0;
+break _4;
+}
+}
+if(!(r2 >19)) //_LBB341_17
+{
+if(!(r0 !=28)) //_LBB341_17
+{
+	r0 = (r1 + 80)|0;
+break _4;
+}
+}
+_24: do {
+	if(r0 >19) //_LBB341_21
+{
+	if(r2 <20) //_LBB341_23
+{
+	r3 = (r0 + -21)|0;
+	if(uint(r3) <uint(9)) //_LBB341_25
+{
+	r0 = (r1 + 48)|0;
+break _4;
+}
+}
+	if(r0 ==31) //_LBB341_26
+{
+	r0 = (r1 + 52)|0;
+break _4;
+}
+else{
+break _24;
+}
+}
+else{
+	if(r2 >19) //_LBB341_20
+{
+	r0 = (r2 + -21)|0;
+	if(uint(r0) <uint(9)) //_LBB341_22
+{
+	r0 = (r1 + 44)|0;
+break _4;
+}
+}
+else{
+	r0 = (r1 + 40)|0;
+break _4;
+}
+}
+} while(0);
+	if(r2 !=31) //_LBB341_29
+{
+	r0 = (r1 + 60)|0;
+}
+else{
+	r0 = (r1 + 56)|0;
+}
+}
+else{
+	r0 = (r1 + 68)|0;
+}
+}
+} while(0);
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN31btDefaultCollisionConfigurationD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btDefaultCollisionConfiguration;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+12];
+_1: do {
+if(!(r1 ==0)) //_LBB342_13
+{
+	r1 = heap32[(r2+2)];
+	r3 = r1 >> 2;
+	r4 = heap32[(r3+2)];
+	if(r4 ==0) //_LBB342_3
+{
+	r1 = heapU8[r1+16];
+if(!(r1 !=0)) //_LBB342_6
+{
+	r1 = heap32[(r3)];
+if(!(r1 ==0)) //_LBB342_6
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r4)] = r5;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	heap32[(r3)] = 0;
+	heap32[(r3+2)] = 0;
+	r1 = heap32[(r2+2)];
+	r3 = r1 >> 2;
+	r4 = heap32[(r3+2)];
+	if(r4 ==0) //_LBB342_8
+{
+	r1 = heapU8[r1+16];
+if(!(r1 !=0)) //_LBB342_11
+{
+	r1 = heap32[(r3)];
+if(!(r1 ==0)) //_LBB342_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r4)] = r5;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	heap32[(r3)] = 0;
+	heap32[(r3+2)] = 0;
+	r1 = heap32[(r2+2)];
+	if(r1 ==0) //_LBB342_13
+{
+break _1;
+}
+else{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+break _1;
+}
+}
+}
+	r0 = _2E_str128;
+	r1 = _2E_str1129;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 49;
+	_assert(i7);
+}
+} while(0);
+	r1 = heapU8[r0+28];
+if(!(r1 ==0)) //_LBB342_19
+{
+	r1 = heap32[(r2+6)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3+4)];
+	if(r3 !=0) //_LBB342_16
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r4 = heap32[(r1)];
+	r4 = (r4 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r1)] = r4;
+	r1 = heap32[(r3+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+	r1 = heap32[(r2+6)];
+}
+if(!(r1 ==0)) //_LBB342_19
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = heapU8[r0+20];
+if(!(r1 ==0)) //_LBB342_25
+{
+	r1 = heap32[(r2+4)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3+4)];
+	if(r3 !=0) //_LBB342_22
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r4 = heap32[(r1)];
+	r4 = (r4 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r1)] = r4;
+	r1 = heap32[(r3+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+	r1 = heap32[(r2+4)];
+}
+if(!(r1 ==0)) //_LBB342_25
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = heap32[(r2+10)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+10)];
+if(!(r1 ==0)) //_LBB342_27
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+11)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+11)];
+if(!(r1 ==0)) //_LBB342_29
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+12)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+12)];
+if(!(r1 ==0)) //_LBB342_31
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+13)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+13)];
+if(!(r1 ==0)) //_LBB342_33
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+14)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+14)];
+if(!(r1 ==0)) //_LBB342_35
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+15)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+15)];
+if(!(r1 ==0)) //_LBB342_37
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+16)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+16)];
+if(!(r1 ==0)) //_LBB342_39
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+18)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+18)];
+if(!(r1 ==0)) //_LBB342_41
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+19)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+19)];
+if(!(r1 ==0)) //_LBB342_43
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+17)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+17)];
+if(!(r1 ==0)) //_LBB342_45
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+21)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+21)];
+if(!(r1 ==0)) //_LBB342_47
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+20)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+20)];
+if(!(r1 ==0)) //_LBB342_49
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+8)];
+if(!(r1 ==0)) //_LBB342_51
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	r1 = heap32[(r2+9)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+9)];
+if(!(r1 ==0)) //_LBB342_53
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r3 = heap32[(r2)];
+	r3 = (r3 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r2)] = r3;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN31btDefaultCollisionConfigurationD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	_ZN31btDefaultCollisionConfigurationD2Ev(i7);
+	return;
+}
+
+function _ZN31btDefaultCollisionConfigurationD2Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btDefaultCollisionConfiguration;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+12];
+_1: do {
+if(!(r1 ==0)) //_LBB344_13
+{
+	r1 = heap32[(r2+2)];
+	r3 = r1 >> 2;
+	r4 = heap32[(r3+2)];
+	if(r4 ==0) //_LBB344_3
+{
+	r1 = heapU8[r1+16];
+if(!(r1 !=0)) //_LBB344_6
+{
+	r1 = heap32[(r3)];
+if(!(r1 ==0)) //_LBB344_6
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r4)] = r5;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	heap32[(r3)] = 0;
+	heap32[(r3+2)] = 0;
+	r1 = heap32[(r2+2)];
+	r3 = r1 >> 2;
+	r4 = heap32[(r3+2)];
+	if(r4 ==0) //_LBB344_8
+{
+	r1 = heapU8[r1+16];
+if(!(r1 !=0)) //_LBB344_11
+{
+	r1 = heap32[(r3)];
+if(!(r1 ==0)) //_LBB344_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r4)] = r5;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	heap32[(r3)] = 0;
+	heap32[(r3+2)] = 0;
+	r1 = heap32[(r2+2)];
+	if(r1 ==0) //_LBB344_13
+{
+break _1;
+}
+else{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+break _1;
+}
+}
+}
+	r0 = _2E_str128;
+	r1 = _2E_str1129;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 49;
+	_assert(i7);
+}
+} while(0);
+	r1 = heapU8[r0+28];
+if(!(r1 ==0)) //_LBB344_19
+{
+	r1 = heap32[(r2+6)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3+4)];
+	if(r3 !=0) //_LBB344_16
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r4 = heap32[(r1)];
+	r4 = (r4 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r1)] = r4;
+	r1 = heap32[(r3+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+	r1 = heap32[(r2+6)];
+}
+if(!(r1 ==0)) //_LBB344_19
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r0 = heapU8[r0+20];
+if(!(r0 ==0)) //_LBB344_25
+{
+	r0 = heap32[(r2+4)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1+4)];
+	if(r1 !=0) //_LBB344_22
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r3 = heap32[(r0)];
+	r3 = (r3 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r0)] = r3;
+	r0 = heap32[(r1+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+	r0 = heap32[(r2+4)];
+}
+if(!(r0 ==0)) //_LBB344_25
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+}
+	r0 = heap32[(r2+10)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+10)];
+if(!(r0 ==0)) //_LBB344_27
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+11)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+11)];
+if(!(r0 ==0)) //_LBB344_29
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+12)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+12)];
+if(!(r0 ==0)) //_LBB344_31
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+13)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+13)];
+if(!(r0 ==0)) //_LBB344_33
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+14)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+14)];
+if(!(r0 ==0)) //_LBB344_35
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+15)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+15)];
+if(!(r0 ==0)) //_LBB344_37
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+16)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+16)];
+if(!(r0 ==0)) //_LBB344_39
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+18)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+18)];
+if(!(r0 ==0)) //_LBB344_41
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+19)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+19)];
+if(!(r0 ==0)) //_LBB344_43
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+17)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+17)];
+if(!(r0 ==0)) //_LBB344_45
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+21)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+21)];
+if(!(r0 ==0)) //_LBB344_47
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+20)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+20)];
+if(!(r0 ==0)) //_LBB344_49
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+8)];
+if(!(r0 ==0)) //_LBB344_51
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	r0 = heap32[(r2+9)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+9)];
+if(!(r0 ==0)) //_LBB344_53
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+	r2 = (r2 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r2;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var f0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	f0 =                         1;
+	f_g0 = f0;
+	return;
+}
+
+function _ZN16btEmptyAlgorithmD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btEmptyAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN16btEmptyAlgorithmD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btEmptyAlgorithm;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN16btManifoldResultD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btManifoldResult;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN16btManifoldResultD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btManifoldResult;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN16btManifoldResult15addContactPointERK9btVector3S2_f(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -304;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+1)];
+	if(r1 !=0) //_LBB352_2
+{
+	f0 = heapFloat[(fp+3)];
+	r2 = r1 >> 2;
+	f1 = heapFloat[(r2+280)];
+if(!(f1 <f0)) //_LBB352_53
+{
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	r3 = r3 >> 2;
+	r4 = r4 >> 2;
+	f1 = heapFloat[(r3+2)];
+	heapFloat[(fp+-71)] = f1;
+	f2 = heapFloat[(r3+1)];
+	f3 = heapFloat[(r3)];
+	f4 = heapFloat[(r4+2)];
+	f1 = f1*f0;
+	f5 = heapFloat[(r4+1)];
+	f6 = f2*f0;
+	f7 = heapFloat[(r4)];
+	f8 = f3*f0;
+	r5 = heap32[(r2+277)];
+	r6 = heap32[(r0+34)];
+	f1 = f4+f1;
+	f6 = f5+f6;
+	f8 = f7+f8;
+	if(r5 ==r6) //_LBB352_5
+{
+	f9 = heapFloat[(r0+14)];
+	f10 = heapFloat[(r0+15)];
+	f11 = heapFloat[(r0+30)];
+	f13 = heapFloat[(r0+31)];
+	f14 = heapFloat[(r0+4)];
+	f9 = f8-f9;
+	f15 = heapFloat[(r0+3)];
+	f12 = heapFloat[(r0+2)];
+	f16 = heapFloat[(r0+8)];
+	f10 = f6-f10;
+	f17 = heapFloat[(r0+7)];
+	f18 = heapFloat[(r0+6)];
+	f19 = heapFloat[(r0+16)];
+	f20 = heapFloat[(r0+20)];
+	f11 = f7-f11;
+	f21 = heapFloat[(r0+19)];
+	f22 = heapFloat[(r0+18)];
+	f23 = heapFloat[(r0+24)];
+	f13 = f5-f13;
+	f24 = heapFloat[(r0+23)];
+	f25 = heapFloat[(r0+22)];
+	f26 = heapFloat[(r0+32)];
+	f14 = f14*f9;
+	f16 = f16*f10;
+	f27 = heapFloat[(r0+12)];
+	f19 = f1-f19;
+	f28 = heapFloat[(r0+11)];
+	f29 = heapFloat[(r0+10)];
+	f15 = f15*f9;
+	f17 = f17*f10;
+	f9 = f12*f9;
+	f10 = f18*f10;
+	f12 = f20*f11;
+	f18 = f23*f13;
+	f20 = heapFloat[(r0+28)];
+	f23 = f4-f26;
+	f26 = heapFloat[(r0+27)];
+	f30 = heapFloat[(r0+26)];
+	f21 = f21*f11;
+	f24 = f24*f13;
+	f11 = f22*f11;
+	f13 = f25*f13;
+	f14 = f14+f16;
+	f16 = f27*f19;
+	f15 = f15+f17;
+	f17 = f28*f19;
+	f9 = f9+f10;
+	f10 = f29*f19;
+	f12 = f12+f18;
+	f18 = f20*f23;
+	f19 = f21+f24;
+	f20 = f26*f23;
+	f11 = f11+f13;
+	f21 = f30*f23;
+	f13 = f14+f16;
+	f14 = f15+f17;
+	f9 = f9+f10;
+	f10 = f12+f18;
+	f15 = f19+f20;
+	f11 = f11+f21;
+}
+else{
+	f9 = heapFloat[(r0+30)];
+	f10 = heapFloat[(r0+31)];
+	f11 = heapFloat[(r0+14)];
+	f12 = heapFloat[(r0+15)];
+	f13 = heapFloat[(r0+20)];
+	f9 = f8-f9;
+	f14 = heapFloat[(r0+19)];
+	f15 = heapFloat[(r0+18)];
+	f16 = heapFloat[(r0+24)];
+	f10 = f6-f10;
+	f17 = heapFloat[(r0+23)];
+	f18 = heapFloat[(r0+22)];
+	f19 = heapFloat[(r0+32)];
+	f20 = heapFloat[(r0+4)];
+	f11 = f7-f11;
+	f21 = heapFloat[(r0+3)];
+	f22 = heapFloat[(r0+2)];
+	f23 = heapFloat[(r0+8)];
+	f12 = f5-f12;
+	f24 = heapFloat[(r0+7)];
+	f25 = heapFloat[(r0+6)];
+	f26 = heapFloat[(r0+16)];
+	f13 = f13*f9;
+	f16 = f16*f10;
+	f27 = heapFloat[(r0+28)];
+	f19 = f1-f19;
+	f28 = heapFloat[(r0+27)];
+	f29 = heapFloat[(r0+26)];
+	f14 = f14*f9;
+	f17 = f17*f10;
+	f9 = f15*f9;
+	f10 = f18*f10;
+	f15 = f20*f11;
+	f18 = f23*f12;
+	f20 = heapFloat[(r0+12)];
+	f23 = f4-f26;
+	f26 = heapFloat[(r0+11)];
+	f30 = heapFloat[(r0+10)];
+	f21 = f21*f11;
+	f24 = f24*f12;
+	f11 = f22*f11;
+	f12 = f25*f12;
+	f13 = f13+f16;
+	f16 = f27*f19;
+	f14 = f14+f17;
+	f17 = f28*f19;
+	f9 = f9+f10;
+	f10 = f29*f19;
+	f15 = f15+f18;
+	f18 = f20*f23;
+	f19 = f21+f24;
+	f20 = f26*f23;
+	f11 = f11+f12;
+	f12 = f30*f23;
+	f13 = f13+f16;
+	f14 = f14+f17;
+	f9 = f9+f10;
+	f10 = f15+f18;
+	f15 = f19+f20;
+	f11 = f11+f12;
+}
+	r7 = sp + -280;
+	r8 = r7 >> 2;
+	heapFloat[(fp+-70)] = f9;
+	heapFloat[(r8+1)] = f14;
+	heapFloat[(r8+2)] = f13;
+	heap32[(r8+3)] = 0;
+	heapFloat[(r8+4)] = f11;
+	heapFloat[(r8+5)] = f15;
+	heapFloat[(r8+6)] = f10;
+	heap32[(r8+7)] = 0;
+	heapFloat[(r8+16)] = f3;
+	heapFloat[(r8+17)] = f2;
+	f2 = heapFloat[(fp+-71)];
+	heapFloat[(r8+18)] = f2;
+	heap32[(r8+19)] = heap32[(r3+3)];
+	heapFloat[(r8+20)] = f0;
+	heap32[(r8+21)] = 0;
+	heap32[(r8+22)] = 0;
+	heap32[(r8+27)] = 0;
+	r3 = 0;
+	heap32[(r8+28)] = 0;
+	heap8[sp+-164] = r3;
+	heap32[(r8+30)] = 0;
+	heap32[(r8+31)] = 0;
+	heap32[(r8+32)] = 0;
+	heap32[(r8+33)] = 0;
+	heap32[(r8+34)] = 0;
+	heap32[(r8+35)] = 0;
+	heap32[(r8+36)] = 0;
+	heap32[(r8+52)] = 0;
+	heap32[(r8+60)] = 0;
+	heap32[(r8+68)] = 0;
+	heapFloat[(r8+12)] = f8;
+	heapFloat[(r8+13)] = f6;
+	heapFloat[(r8+14)] = f1;
+	heap32[(r8+15)] = 0;
+	heapFloat[(r8+8)] = f7;
+	heapFloat[(r8+9)] = f5;
+	heapFloat[(r8+10)] = f4;
+	heap32[(r8+11)] = heap32[(r4+3)];
+	r4 = heap32[(r2+279)];
+_9: do {
+	if(r4 >0) //_LBB352_8
+{
+	f1 = heapFloat[(r2+280)];
+	f1 = f1*f1;
+	r10 = 0;
+	r9 = -1;
+_11: while(true){
+	r11 = (r10 * 69)|0;
+	r11 = r11 << 2;
+	r11 = (r1 + r11)|0;
+	r11 = r11 >> 2;
+	f2 = heapFloat[(r11+1)];
+	f3 = heapFloat[(r11+2)];
+	f2 = f2-f9;
+	f3 = f3-f14;
+	f4 = heapFloat[(r11+3)];
+	f4 = f4-f13;
+	f2 = f2*f2;
+	f3 = f3*f3;
+	f2 = f2+f3;
+	f3 = f4*f4;
+	f2 = f2+f3;
+	r11 = (r10 + 1)|0;
+	r9 = f2 < f1 ? r10 : r9;
+	f1 = f2 < f1 ? f2 : f1;
+	r10 = r11;
+if(!(r4 !=r11)) //_LBB352_9
+{
+break _9;
+}
+}
+}
+else{
+	r9 = -1;
+}
+} while(0);
+	r4 = heap32[(r0+35)];
+	r4 = r4 >> 2;
+	r10 = r6 >> 2;
+	f1 = heapFloat[(r10+56)];
+	f2 = heapFloat[(r4+56)];
+	f1 = f1*f2;
+	f2 =                       -10;
+	f1 = f1 < f2 ? f2 : f1;
+	f2 =                        10;
+	f1 = f1 > f2 ? f2 : f1;
+	heapFloat[(r8+21)] = f1;
+	f1 = heapFloat[(r10+57)];
+	f2 = heapFloat[(r4+57)];
+	f1 = f1*f2;
+	heapFloat[(r8+22)] = f1;
+	if(r5 ==r6) //_LBB352_12
+{
+	r4 = heap32[(r0+36)];
+	heap32[(r8+23)] = r4;
+	r4 = heap32[(r0+37)];
+	heap32[(r8+24)] = r4;
+	r4 = heap32[(r0+38)];
+	heap32[(r8+25)] = r4;
+	r0 = heap32[(r0+39)];
+	heap32[(r8+26)] = r0;
+}
+else{
+	r4 = heap32[(r0+37)];
+	heap32[(r8+23)] = r4;
+	r4 = heap32[(r0+36)];
+	heap32[(r8+24)] = r4;
+	r4 = heap32[(r0+39)];
+	heap32[(r8+25)] = r4;
+	r0 = heap32[(r0+38)];
+	heap32[(r8+26)] = r0;
+}
+	f1 = heapFloat[(r2+280)];
+	if(r9 <0) //_LBB352_19
+{
+	if(f1 >=f0) //_LBB352_21
+{
+	r0 = heap32[(r2+279)];
+	if(r0 !=4) //_LBB352_49
+{
+	r4 = (r0 + 1)|0;
+	heap32[(r2+279)] = r4;
+}
+else{
+	f1 = heapFloat[(r2+21)];
+	r0 = -1;
+	f2 = heapFloat[(r2+90)];
+	f3 = f1 < f0 ? f1 : f0;
+	r4 = 1;
+	f4 = heapFloat[(r2+159)];
+	f5 = f2 < f3 ? f2 : f3;
+	r5 = 2;
+	f6 = heapFloat[(r2+228)];
+	f7 = f4 < f5 ? f4 : f5;
+	if(f6 >=f7) //_LBB352_24
+{
+	r6 = f1 >= f0 ? r0 : r3;
+	r6 = f2 < f3 ? r4 : r6;
+	r6 = f4 < f5 ? r5 : r6;
+	if(r6 ==0) //_LBB352_26
+{
+	f0 = heapFloat[(r2+210)];
+	f1 = heapFloat[(r2+141)];
+	f2 = heapFloat[(r2+209)];
+	f3 = heapFloat[(r2+140)];
+	f4 = heapFloat[(r2+208)];
+	f5 = heapFloat[(r2+139)];
+	f6 = heapFloat[(r2+72)];
+	f7 = heapFloat[(r2+71)];
+	f8 = heapFloat[(r2+70)];
+	f10 =                         0;
+	r6 = r3;
+__label__ = 28;
+}
+else{
+__label__ = 26;
+}
+}
+else{
+	r6 = 3;
+__label__ = 26;
+}
+if (__label__ == 26){
+	f6 = heapFloat[(r2+72)];
+	f0 = heapFloat[(r2+210)];
+	f1 = heapFloat[(r2+141)];
+	f8 = heapFloat[(r2+70)];
+	f2 = heapFloat[(r2+209)];
+	f3 = heapFloat[(r2+140)];
+	f7 = heapFloat[(r2+71)];
+	f4 = heapFloat[(r2+208)];
+	f5 = heapFloat[(r2+139)];
+	f10 = f13-f6;
+	f11 = f2-f3;
+	f12 = f9-f8;
+	f15 = f0-f1;
+	f16 = f14-f7;
+	f17 = f4-f5;
+	f18 = f16*f15;
+	f19 = f10*f11;
+	f10 = f10*f17;
+	f15 = f12*f15;
+	f18 = f18-f19;
+	f10 = f10-f15;
+	f11 = f12*f11;
+	f12 = f16*f17;
+	f11 = f11-f12;
+	f12 = f18*f18;
+	f10 = f10*f10;
+	f10 = f12+f10;
+	f11 = f11*f11;
+	f10 = f10+f11;
+	if(r6 ==1) //_LBB352_29
+{
+	f11 = heapFloat[(r2+3)];
+	f12 = heapFloat[(r2+2)];
+	f15 = heapFloat[(r2+1)];
+	f16 =                         0;
+	r6 = r4;
+__label__ = 30;
+}
+else{
+__label__ = 28;
+}
+}
+if (__label__ == 28){
+	f11 = heapFloat[(r2+3)];
+	f15 = heapFloat[(r2+1)];
+	f12 = heapFloat[(r2+2)];
+	f16 = f13-f11;
+	f17 = f2-f3;
+	f18 = f9-f15;
+	f19 = f0-f1;
+	f20 = f14-f12;
+	f21 = f4-f5;
+	f22 = f20*f19;
+	f23 = f16*f17;
+	f16 = f16*f21;
+	f19 = f18*f19;
+	f22 = f22-f23;
+	f16 = f16-f19;
+	f17 = f18*f17;
+	f18 = f20*f21;
+	f17 = f17-f18;
+	f18 = f22*f22;
+	f16 = f16*f16;
+	f16 = f18+f16;
+	f17 = f17*f17;
+	f16 = f16+f17;
+	if(r6 ==2) //_LBB352_32
+{
+	f0 =                         0;
+__label__ = 32;
+}
+else{
+__label__ = 30;
+}
+}
+if (__label__ == 30){
+	f17 = f13-f11;
+	f2 = f2-f7;
+	f18 = f9-f15;
+	f0 = f0-f6;
+	f19 = f14-f12;
+	f4 = f4-f8;
+	f20 = f19*f0;
+	f21 = f17*f2;
+	f17 = f17*f4;
+	f0 = f18*f0;
+	f20 = f20-f21;
+	f0 = f17-f0;
+	f2 = f18*f2;
+	f4 = f19*f4;
+	f2 = f2-f4;
+	f4 = f20*f20;
+	f0 = f0*f0;
+	f0 = f4+f0;
+	f2 = f2*f2;
+	f0 = f0+f2;
+	if(r6 ==3) //_LBB352_35
+{
+	f1 =                         0;
+__label__ = 34;
+}
+else{
+__label__ = 32;
+}
+}
+if (__label__ == 32){
+	f2 = f13-f11;
+	f3 = f3-f7;
+	f4 = f9-f15;
+	f1 = f1-f6;
+	f6 = f14-f12;
+	f5 = f5-f8;
+	f7 = f6*f1;
+	f8 = f2*f3;
+	f2 = f2*f5;
+	f1 = f4*f1;
+	f7 = f7-f8;
+	f1 = f2-f1;
+	f2 = f4*f3;
+	f3 = f6*f5;
+	f2 = f2-f3;
+	f3 = f7*f7;
+	f1 = f1*f1;
+	f1 = f3+f1;
+	f2 = f2*f2;
+	f1 = f1+f2;
+	f2 =                         0;
+	if(f1 <f2) //_LBB352_38
+{
+	f1 = -f1;
+}
+}
+	f2 =                         0;
+	if(f0 <f2) //_LBB352_41
+{
+	f0 = -f0;
+}
+	if(f16 <f2) //_LBB352_44
+{
+	f16 = -f16;
+}
+	if(f10 <f2) //_LBB352_47
+{
+	f10 = -f10;
+}
+	f2 =       -999999984306749440;
+	r2 = 0;
+	f3 = f10 > f2 ? f10 : f2;
+	r0 = f10 <= f2 ? r0 : r2;
+	f2 = f16 > f3 ? f16 : f3;
+	r0 = f16 > f3 ? r4 : r0;
+	f3 = f0 > f2 ? f0 : f2;
+	r2 = 3;
+	r0 = f0 > f2 ? r5 : r0;
+	r0 = f1 > f3 ? r2 : r0;
+}
+	r0 = r0 < 0 ? r3 : r0;
+	r0 = (r0 * 276)|0;
+	r0 = (r1 + r0)|0;
+	r1 = r0 >> 2;
+	r1 = heap32[(r1+28)];
+	if(r1 ==0) //_LBB352_52
+{
+	r0 = (r0 + 4)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = 276;
+	memcpy(i7);
+}
+else{
+	r0 = _2E_str4438;
+	r7 = _2E_str3437;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = 190;
+	_assert(i7);
+}
+}
+else{
+	r1 = _2E_str2149;
+	r2 = _2E_str3437;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 168;
+	_assert(i7);
+}
+}
+else{
+	if(f1 >=f0) //_LBB352_16
+{
+	r2 = (r9 * 276)|0;
+	r1 = (r1 + r2)|0;
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+37)];
+	if(r3 >-1) //_LBB352_18
+{
+	f0 = heapFloat[(r2+53)];
+	f1 = heapFloat[(r2+61)];
+	f9 = heapFloat[(r2+69)];
+	r0 = heap32[(r2+28)];
+	r1 = (r1 + 4)|0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = 276;
+	memcpy(i7);
+	heap32[(r2+28)] = r0;
+	heapFloat[(r2+29)] = f0;
+	heapFloat[(r2+31)] = f1;
+	heapFloat[(r2+32)] = f9;
+	heapFloat[(r2+53)] = f0;
+	heapFloat[(r2+61)] = f1;
+	heapFloat[(r2+69)] = f9;
+	heap32[(r2+37)] = r3;
+	return;
+}
+else{
+	r1 = _2E_str3150;
+	r2 = _2E_str483;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 177;
+	_assert(i7);
+}
+}
+else{
+	r1 = _2E_str2149;
+	r2 = _2E_str483;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 165;
+	_assert(i7);
+}
+}
+}
+	return;
+}
+else{
+	r0 = _2E_str59;
+	r1 = _2E_str5152;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 64;
+	_assert(i7);
+}
+}
+
+function _ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+2)];
+if(!(r1 <1)) //_LBB353_10
+{
+	r1 = heap32[(fp)];
+	r2 = 0;
+	r3 = r2;
+_3: while(true){
+	r4 = heap32[(r0+4)];
+	r5 = r2 << 2;
+	r4 = (r4 + r5)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	r5 = (r2 + 1)|0;
+	r6 = heapU8[r4+204];
+	r6 = r6 & 3;
+	if(r6 !=0) //_LBB353_8
+{
+	r2 = r4 >> 2;
+	heap32[(r2+52)] = -1;
+	heap32[(r2+53)] = -2;
+}
+else{
+	r6 = r1 >> 2;
+	r7 = heap32[(r6+4)];
+	r8 = r3 << 3;
+	r9 = (r7 + r8)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+	if(r9 ==r3) //_LBB353_5
+{
+	r10 = r3;
+}
+else{
+	r10 = r3;
+_11: while(true){
+	r9 = r9 << 3;
+	r10 = r10 << 3;
+	r9 = (r7 + r9)|0;
+	r7 = (r7 + r10)|0;
+	r9 = r9 >> 2;
+	r7 = r7 >> 2;
+	r10 = heap32[(r9)];
+	heap32[(r7)] = r10;
+	r10 = heap32[(r9)];
+	r7 = heap32[(r6+4)];
+	r9 = r10 << 3;
+	r9 = (r7 + r9)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+if(!(r9 !=r10)) //_LBB353_6
+{
+break _11;
+}
+}
+}
+	r4 = r4 >> 2;
+	heap32[(r4+52)] = r10;
+	r6 = heap32[(r6+4)];
+	r6 = (r6 + r8)|0;
+	r6 = r6 >> 2;
+	r3 = (r3 + 1)|0;
+	heap32[(r6+1)] = r2;
+	heap32[(r4+53)] = -1;
+}
+	r4 = heap32[(r0+2)];
+	r2 = r5;
+	if(r4 >r5) //_LBB353_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function _ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp+1)];
+	r2 = (r0 + r1)|0;
+	r3 = r2 >>> 31;
+	r4 = heap32[(fp)];
+	r2 = (r2 + r3)|0;
+	r3 = r4 >> 2;
+	r2 = r2 & 2147483646;
+	r5 = heap32[(r3+3)];
+	r2 = r2 << 1;
+	r2 = (r5 + r2)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r5 = r1;
+	r6 = r0;
+_1: while(true){
+	r7 = r2 >> 2;
+	r8 = heap32[(r7+277)];
+	r8 = r8 >> 2;
+	r9 = heap32[(r3+3)];
+	r8 = heap32[(r8+52)];
+_3: while(true){
+	r10 = r5 << 2;
+	r10 = (r9 + r10)|0;
+	r10 = r10 >> 2;
+	r11 = heap32[(r10)];
+	r12 = r11 >> 2;
+	r13 = heap32[(r12+277)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+52)];
+	if(r13 <0) //_LBB354_5
+{
+	r13 = heap32[(r12+278)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+52)];
+}
+	if(r8 <0) //_LBB354_8
+{
+	r12 = heap32[(r7+278)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+52)];
+}
+else{
+	r12 = r8;
+}
+	if(r13 <r12) //_LBB354_2
+{
+	r5 = (r5 + 1)|0;
+continue _3;
+}
+else{
+break _3;
+}
+}
+_13: while(true){
+	r12 = r6 << 2;
+	r13 = (r9 + r12)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13)];
+	if(r8 <0) //_LBB354_13
+{
+	r14 = heap32[(r7+278)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+52)];
+}
+else{
+	r14 = r8;
+}
+	r15 = r13 >> 2;
+	r16 = heap32[(r15+277)];
+	r16 = r16 >> 2;
+	r16 = heap32[(r16+52)];
+	if(r16 <0) //_LBB354_16
+{
+	r16 = heap32[(r15+278)];
+	r16 = r16 >> 2;
+	r16 = heap32[(r16+52)];
+}
+	if(r14 <r16) //_LBB354_10
+{
+	r6 = (r6 + -1)|0;
+continue _13;
+}
+else{
+break _13;
+}
+}
+	if(r5 <=r6) //_LBB354_20
+{
+	heap32[(r10)] = r13;
+	r7 = heap32[(r3+3)];
+	r7 = (r7 + r12)|0;
+	r5 = (r5 + 1)|0;
+	r6 = (r6 + -1)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r11;
+}
+	if(r5 <=r6) //_LBB354_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+if(!(r6 <=r1)) //_LBB354_24
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r6;
+	_ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i7);
+}
+if(!(r5 >=r0)) //_LBB354_26
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r0;
+	_ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i7);
+}
+	return;
+}
+
+function _ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r2 = heap32[(r0+2)];
+_1: do {
+	if(r2 >0) //_LBB355_2
+{
+	r3 = 0;
+	r2 = r3;
+_3: while(true){
+	r4 = heap32[(r0+4)];
+	r5 = r3 << 2;
+	r4 = (r4 + r5)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	r3 = (r3 + 1)|0;
+	r5 = heapU8[r4+204];
+	r5 = r5 & 3;
+	if(r5 ==0) //_LBB355_5
+{
+	r5 = (r2 + 1)|0;
+	r6 = r4 >> 2;
+	heap32[(r6+52)] = r2;
+	r2 = r5;
+}
+	r4 = r4 >> 2;
+	heap32[(r4+53)] = -1;
+	heap32[(r4+60)] = 1065353216;
+	r4 = heap32[(r0+2)];
+	if(r4 >r3) //_LBB355_3
+{
+continue _3;
+}
+else{
+break _1;
+}
+}
+}
+else{
+	r2 = 0;
+}
+} while(0);
+	r3 = r1 >> 2;
+	r4 = heap32[(r3+2)];
+_10: do {
+if(!(r4 >r2)) //_LBB355_26
+{
+if(!(r4 >=r2)) //_LBB355_26
+{
+	r5 = heap32[(r3+3)];
+if(!(r5 >=r2)) //_LBB355_25
+{
+	if(r2 !=0) //_LBB355_12
+{
+	r5 = gNumAlignedAllocs;
+	r5 = r5 >> 2;
+	r6 = heap32[(r5)];
+	r7 = r2 << 3;
+	r6 = (r6 + 1)|0;
+	r7 = r7 | 3;
+	heap32[(r5)] = r6;
+	r5 = (r7 + 16)|0;
+	heap32[(g0)] = r5;
+	malloc(i7);
+	r5 = r_g0;
+	if(r5 !=0) //_LBB355_14
+{
+	r6 = 0;
+	r7 = (r5 + 4)|0;
+	r6 = (r6 - r7)|0;
+	r6 = r6 & 15;
+	r6 = (r5 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r5;
+	r5 = r7;
+}
+}
+else{
+	r5 = 0;
+}
+	r6 = (r1 + 16)|0;
+	if(r4 <1) //_LBB355_17
+{
+	r7 = r6 >> 2;
+	r8 = heap32[(r7)];
+}
+else{
+	r7 = 0;
+_23: while(true){
+	r8 = r6 >> 2;
+	r8 = heap32[(r8)];
+	r9 = r7 << 3;
+	r10 = (r8 + r9)|0;
+	r10 = r10 >> 2;
+	r9 = (r5 + r9)|0;
+	r11 = heap32[(r10+1)];
+	r10 = heap32[(r10)];
+	r9 = r9 >> 2;
+	r7 = (r7 + 1)|0;
+	heap32[(r9)] = r10;
+	heap32[(r9+1)] = r11;
+if(!(r4 !=r7)) //_LBB355_18
+{
+break _23;
+}
+}
+	r6 = (r1 + 16)|0;
+}
+if(!(r8 ==0)) //_LBB355_24
+{
+	r7 = heapU8[r1+20];
+if(!(r7 ==0)) //_LBB355_23
+{
+	r7 = gNumAlignedFree;
+	r7 = r7 >> 2;
+	r9 = heap32[(r7)];
+	r9 = (r9 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r7)] = r9;
+	r7 = heap32[(r8+-1)];
+	heap32[(g0)] = r7;
+	free(i7);
+}
+	r7 = r6 >> 2;
+	heap32[(r7)] = 0;
+}
+	r7 = 1;
+	r6 = r6 >> 2;
+	heap8[r1+20] = r7;
+	heap32[(r6)] = r5;
+	heap32[(r3+3)] = r2;
+	if(r4 >=r2) //_LBB355_26
+{
+break _10;
+}
+}
+_33: while(true){
+	r1 = r4 << 3;
+	r5 = heap32[(r3+4)];
+	r1 = (r5 + r1)|0;
+	r1 = r1 >> 2;
+	r4 = (r4 + 1)|0;
+	heap32[(r1)] = 0;
+	heap32[(r1+1)] = 0;
+	if(r2 !=r4) //_LBB355_25
+{
+continue _33;
+}
+else{
+break _10;
+}
+}
+}
+}
+} while(0);
+	heap32[(r3+2)] = r2;
+_36: do {
+if(!(r2 <1)) //_LBB355_29
+{
+	r1 = 0;
+_38: while(true){
+	r4 = r1 << 3;
+	r5 = heap32[(r3+4)];
+	r5 = (r5 + r4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r1;
+	r5 = heap32[(r3+4)];
+	r4 = (r5 + r4)|0;
+	r1 = (r1 + 1)|0;
+	r4 = r4 >> 2;
+	heap32[(r4+1)] = 1;
+	if(r2 !=r1) //_LBB355_28
+{
+continue _38;
+}
+else{
+break _36;
+}
+}
+}
+} while(0);
+	r0 = heap32[(r0+20)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+9)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = r_g0;
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+9)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = r_g0;
+_41: do {
+if(!(r2 <1)) //_LBB355_46
+{
+	r0 = (r0 + 4)|0;
+_43: while(true){
+	r1 = r0 >> 2;
+	r4 = heap32[(r1+-1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+if(!(r4 ==0)) //_LBB355_45
+{
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+if(!(r1 ==0)) //_LBB355_45
+{
+	r4 = r4 >> 2;
+	r5 = heap32[(r4+51)];
+	r5 = r5 & 7;
+if(!(r5 !=0)) //_LBB355_45
+{
+	r5 = heapU8[r1+204];
+	r5 = r5 & 7;
+if(!(r5 !=0)) //_LBB355_45
+{
+	r4 = heap32[(r4+52)];
+	r5 = heap32[(r3+4)];
+	r6 = r4 << 3;
+	r6 = (r5 + r6)|0;
+	r6 = r6 >> 2;
+	r1 = r1 >> 2;
+	r6 = heap32[(r6)];
+	r1 = heap32[(r1+52)];
+if(!(r6 ==r4)) //_LBB355_37
+{
+_51: while(true){
+	r6 = r6 << 3;
+	r4 = r4 << 3;
+	r6 = (r5 + r6)|0;
+	r4 = (r5 + r4)|0;
+	r5 = r6 >> 2;
+	r4 = r4 >> 2;
+	r6 = heap32[(r5)];
+	heap32[(r4)] = r6;
+	r4 = heap32[(r5)];
+	r5 = heap32[(r3+4)];
+	r6 = r4 << 3;
+	r6 = (r5 + r6)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+if(!(r6 !=r4)) //_LBB355_38
+{
+break _51;
+}
+}
+}
+	r6 = r1 << 3;
+	r6 = (r5 + r6)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+_54: do {
+if(!(r6 ==r1)) //_LBB355_41
+{
+_55: while(true){
+	r6 = r6 << 3;
+	r1 = r1 << 3;
+	r6 = (r5 + r6)|0;
+	r1 = (r5 + r1)|0;
+	r5 = r6 >> 2;
+	r1 = r1 >> 2;
+	r6 = heap32[(r5)];
+	heap32[(r1)] = r6;
+	r1 = heap32[(r5)];
+	r5 = heap32[(r3+4)];
+	r6 = r1 << 3;
+	r6 = (r5 + r6)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+if(!(r6 !=r1)) //_LBB355_42
+{
+break _54;
+}
+}
+}
+} while(0);
+if(!(r4 ==r1)) //_LBB355_45
+{
+	r4 = r4 << 3;
+	r5 = (r5 + r4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r1;
+	r5 = heap32[(r3+4)];
+	r1 = r1 << 3;
+	r1 = (r5 + r1)|0;
+	r4 = (r5 + r4)|0;
+	r1 = r1 >> 2;
+	r4 = r4 >> 2;
+	r5 = heap32[(r1+1)];
+	r4 = heap32[(r4+1)];
+	r4 = (r4 + r5)|0;
+	heap32[(r1+1)] = r4;
+}
+}
+}
+}
+}
+	r2 = (r2 + -1)|0;
+	r0 = (r0 + 16)|0;
+	if(r2 !=0) //_LBB355_31
+{
+continue _43;
+}
+else{
+break _41;
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN25btSimulationIslandManagerD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV25btSimulationIslandManager;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+14)];
+if(!(r1 ==0)) //_LBB356_4
+{
+	r3 = heapU8[r0+60];
+if(!(r3 ==0)) //_LBB356_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+14)] = 0;
+}
+	r1 = 1;
+	heap8[r0+60] = r1;
+	heap32[(r2+14)] = 0;
+	heap32[(r2+12)] = 0;
+	heap32[(r2+13)] = 0;
+	r3 = heap32[(r2+9)];
+if(!(r3 ==0)) //_LBB356_8
+{
+	r4 = heapU8[r0+40];
+if(!(r4 ==0)) //_LBB356_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+9)] = 0;
+}
+	heap8[r0+40] = r1;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+7)] = 0;
+	heap32[(r2+8)] = 0;
+	r3 = heap32[(r2+4)];
+if(!(r3 ==0)) //_LBB356_12
+{
+	r4 = heapU8[r0+20];
+if(!(r4 ==0)) //_LBB356_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+4)] = 0;
+}
+	heap8[r0+20] = r1;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN25btSimulationIslandManagerD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV25btSimulationIslandManager;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+14)];
+if(!(r1 ==0)) //_LBB357_4
+{
+	r3 = heapU8[r0+60];
+if(!(r3 ==0)) //_LBB357_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+14)] = 0;
+}
+	r1 = 1;
+	heap8[r0+60] = r1;
+	heap32[(r2+14)] = 0;
+	heap32[(r2+12)] = 0;
+	heap32[(r2+13)] = 0;
+	r3 = heap32[(r2+9)];
+if(!(r3 ==0)) //_LBB357_8
+{
+	r4 = heapU8[r0+40];
+if(!(r4 ==0)) //_LBB357_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+9)] = 0;
+}
+	heap8[r0+40] = r1;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+7)] = 0;
+	heap32[(r2+8)] = 0;
+	r3 = heap32[(r2+4)];
+if(!(r3 ==0)) //_LBB357_12
+{
+	r4 = heapU8[r0+20];
+if(!(r4 ==0)) //_LBB357_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+4)] = 0;
+}
+	heap8[r0+20] = r1;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	return;
+}
+
+function _ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var f0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	f0 =                         1;
+	f_g0 = f0;
+	return;
+}
+
+function _ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+3)];
+if(!(r2 ==0)) //_LBB359_23
+{
+	r0 = heapU8[r0+8];
+if(!(r0 ==0)) //_LBB359_23
+{
+	r0 = heap32[(fp+1)];
+	r3 = r0 >> 2;
+	r4 = heap32[(r3+2)];
+	r5 = heap32[(r3+1)];
+	if(r4 ==r5) //_LBB359_4
+{
+	r6 = 1;
+	r7 = r5 << 1;
+	r7 = r5 == 0 ? r6 : r7;
+if(!(r4 >=r7)) //_LBB359_3
+{
+	if(r7 !=0) //_LBB359_7
+{
+	r2 = gNumAlignedAllocs;
+	r2 = r2 >> 2;
+	r4 = heap32[(r2)];
+	r8 = r7 << 2;
+	r4 = (r4 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r2)] = r4;
+	r2 = (r8 + 16)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB359_9
+{
+	r4 = 0;
+	r8 = (r2 + 4)|0;
+	r4 = (r4 - r8)|0;
+	r4 = r4 & 15;
+	r4 = (r2 + r4)|0;
+	r8 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r2;
+	r2 = r8;
+}
+}
+else{
+	r2 = 0;
+}
+	r4 = (r0 + 12)|0;
+	if(r5 <1) //_LBB359_12
+{
+	r8 = r4 >> 2;
+	r9 = heap32[(r8)];
+}
+else{
+	r8 = 0;
+_15: while(true){
+	r9 = r4 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r8 << 2;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r2 + r10)|0;
+	r11 = heap32[(r11)];
+	r8 = (r8 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r11;
+if(!(r5 !=r8)) //_LBB359_13
+{
+break _15;
+}
+}
+	r4 = (r0 + 12)|0;
+}
+	if(r9 !=0) //_LBB359_17
+{
+	r8 = heapU8[r0+16];
+	if(r8 !=0) //_LBB359_19
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r8 = heap32[(r5)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r5)] = r8;
+	r5 = heap32[(r9+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+	r5 = heap32[(r3+1)];
+}
+	r8 = r4 >> 2;
+	heap32[(r8)] = 0;
+}
+	r4 = r4 >> 2;
+	heap8[r0+16] = r6;
+	heap32[(r4)] = r2;
+	heap32[(r3+2)] = r7;
+	r2 = heap32[(r1+3)];
+}
+}
+	r0 = r5 << 2;
+	r1 = heap32[(r3+3)];
+	r0 = (r1 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r2;
+	r0 = heap32[(r3+1)];
+	r0 = (r0 + 1)|0;
+	heap32[(r3+1)] = r0;
+}
+}
+	return;
+}
+
+function _ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+3)];
+_1: do {
+if(!(r0 ==0)) //_LBB360_10
+{
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+4)];
+	r4 = r3 >> 2;
+	r1 = r1 >> 2;
+	heap32[(r4+1)] = r0;
+	r0 = r2 >> 2;
+	f0 = heapFloat[(r1+14)];
+	f1 = heapFloat[(r0+14)];
+	f2 = heapFloat[(r1+13)];
+	f3 = heapFloat[(r0+13)];
+	f0 = f0-f1;
+	f1 = f2-f3;
+	f2 = heapFloat[(r1+15)];
+	f3 = heapFloat[(r0+15)];
+	f2 = f2-f3;
+	r1 = heap32[(r1+48)];
+	r2 = heap32[(r0+48)];
+	f3 = f1*f1;
+	f4 = f0*f0;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	f3 = f_g0;
+	r1 = r1 >> 2;
+	r2 = r2 >> 2;
+	f4 = heapFloat[(r1+7)];
+	f5 = heapFloat[(r1+3)];
+	f6 = heapFloat[(r2+7)];
+	f7 = heapFloat[(r2+3)];
+	f6 = f6*f7;
+	f4 = f4*f5;
+	f4 = f4+f6;
+_3: do {
+	if(f4 >=f3) //_LBB360_11
+{
+	r1 = sp + -16;
+	r2 = r1 >> 2;
+	heap32[(fp+-4)] = 1065353216;
+	heap32[(r2+1)] = 0;
+	f4 = f3-f4;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	f5 =   1.1920928955078125e-007;
+	if(f3 >f5) //_LBB360_13
+{
+	f5 =                         1;
+	f3 = f5/f3;
+	f1 = f1*f3;
+	f0 = f0*f3;
+	heapFloat[(fp+-4)] = f1;
+	f2 = f2*f3;
+	heapFloat[(r2+1)] = f0;
+	heapFloat[(r2+2)] = f2;
+	heap32[(r2+3)] = 0;
+}
+else{
+	f1 =                         1;
+	f0 =                         0;
+	f2 = f0;
+}
+	f1 = f1*f6;
+	f3 = heapFloat[(r0+13)];
+	f5 = heapFloat[(r0+15)];
+	f7 = heapFloat[(r0+14)];
+	r0 = sp + -32;
+	f0 = f0*f6;
+	f1 = f3+f1;
+	f2 = f2*f6;
+	r2 = r0 >> 2;
+	f0 = f7+f0;
+	heapFloat[(fp+-8)] = f1;
+	f1 = f5+f2;
+	heapFloat[(r2+1)] = f0;
+	heapFloat[(r2+2)] = f1;
+	heap32[(r2+3)] = 0;
+	r2 = heap32[(r4)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r0;
+	heapFloat[(g0+3)] = f4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = heap32[(r4+1)];
+	if(r0 !=0) //_LBB360_16
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+279)];
+	if(r2 ==0) //_LBB360_10
+{
+break _1;
+}
+else{
+	r1 = heap32[(r1+277)];
+	r2 = heap32[(r4+34)];
+	if(r1 ==r2) //_LBB360_19
+{
+	r1 = (r3 + 8)|0;
+	r2 = (r3 + 72)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+	return;
+}
+else{
+	r1 = (r3 + 72)|0;
+	r3 = (r3 + 8)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+__label__ = 8;
+break _3;
+}
+}
+}
+else{
+__label__ = 3;
+}
+}
+else{
+	r0 = heap32[(r4+1)];
+	if(r0 !=0) //_LBB360_4
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+279)];
+	if(r2 ==0) //_LBB360_10
+{
+break _1;
+}
+else{
+	r1 = heap32[(r1+277)];
+	r4 = heap32[(r4+34)];
+	if(r1 ==r4) //_LBB360_9
+{
+	r4 = (r3 + 8)|0;
+	r3 = (r3 + 72)|0;
+}
+else{
+	r4 = (r3 + 72)|0;
+	r3 = (r3 + 8)|0;
+}
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+__label__ = 8;
+}
+}
+else{
+__label__ = 3;
+}
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 8:
+	heap32[(g0+2)] = r3;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+	return;
+break;
+case 3:
+	r0 = _2E_str59;
+	r3 = _2E_str160;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 101;
+	_assert(i7);
+break;
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN32btSphereSphereCollisionAlgorithmD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV32btSphereSphereCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+8];
+if(!(r1 ==0)) //_LBB361_3
+{
+	r1 = heap32[(r2+3)];
+if(!(r1 ==0)) //_LBB361_3
+{
+	r3 = heap32[(r2+1)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+}
+	r1 = _ZTV30btActivatingCollisionAlgorithm;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN32btSphereSphereCollisionAlgorithmD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV32btSphereSphereCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r0 = heapU8[r0+8];
+if(!(r0 ==0)) //_LBB362_3
+{
+	r0 = heap32[(r2+3)];
+if(!(r0 ==0)) //_LBB362_3
+{
+	r1 = heap32[(r2+1)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+}
+	r0 = _ZTV30btActivatingCollisionAlgorithm;
+	r0 = (r0 + 8)|0;
+	heap32[(r2)] = r0;
+	return;
+}
+
+function _ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var f0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	f0 =                         1;
+	f_g0 = f0;
+	return;
+}
+
+function _ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+3)];
+if(!(r2 ==0)) //_LBB364_23
+{
+	r0 = heapU8[r0+8];
+if(!(r0 ==0)) //_LBB364_23
+{
+	r0 = heap32[(fp+1)];
+	r3 = r0 >> 2;
+	r4 = heap32[(r3+2)];
+	r5 = heap32[(r3+1)];
+	if(r4 ==r5) //_LBB364_4
+{
+	r6 = 1;
+	r7 = r5 << 1;
+	r7 = r5 == 0 ? r6 : r7;
+if(!(r4 >=r7)) //_LBB364_3
+{
+	if(r7 !=0) //_LBB364_7
+{
+	r2 = gNumAlignedAllocs;
+	r2 = r2 >> 2;
+	r4 = heap32[(r2)];
+	r8 = r7 << 2;
+	r4 = (r4 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r2)] = r4;
+	r2 = (r8 + 16)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB364_9
+{
+	r4 = 0;
+	r8 = (r2 + 4)|0;
+	r4 = (r4 - r8)|0;
+	r4 = r4 & 15;
+	r4 = (r2 + r4)|0;
+	r8 = (r4 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r2;
+	r2 = r8;
+}
+}
+else{
+	r2 = 0;
+}
+	r4 = (r0 + 12)|0;
+	if(r5 <1) //_LBB364_12
+{
+	r8 = r4 >> 2;
+	r9 = heap32[(r8)];
+}
+else{
+	r8 = 0;
+_15: while(true){
+	r9 = r4 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r8 << 2;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r2 + r10)|0;
+	r11 = heap32[(r11)];
+	r8 = (r8 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r11;
+if(!(r5 !=r8)) //_LBB364_13
+{
+break _15;
+}
+}
+	r4 = (r0 + 12)|0;
+}
+	if(r9 !=0) //_LBB364_17
+{
+	r8 = heapU8[r0+16];
+	if(r8 !=0) //_LBB364_19
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r8 = heap32[(r5)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r5)] = r8;
+	r5 = heap32[(r9+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+	r5 = heap32[(r3+1)];
+}
+	r8 = r4 >> 2;
+	heap32[(r8)] = 0;
+}
+	r4 = r4 >> 2;
+	heap8[r0+16] = r6;
+	heap32[(r4)] = r2;
+	heap32[(r3+2)] = r7;
+	r2 = heap32[(r1+3)];
+}
+}
+	r0 = r5 << 2;
+	r1 = heap32[(r3+3)];
+	r0 = (r1 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r2;
+	r0 = heap32[(r3+1)];
+	r0 = (r0 + 1)|0;
+	heap32[(r3+1)] = r0;
+}
+}
+	return;
+}
+
+function _ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -176;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+3)];
+if(!(r2 ==0)) //_LBB365_8
+{
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	r6 = heap32[(fp+4)];
+	r7 = heapU8[r0+16];
+	r8 = r7 == 0 ? r4 : r3;
+	r3 = r7 == 0 ? r3 : r4;
+	r4 = r8 >> 2;
+	r3 = r3 >> 2;
+	r7 = heap32[(r4+48)];
+	r8 = heap32[(r3+48)];
+	r9 = r6 >> 2;
+	heap32[(r9+1)] = r2;
+	r1 = heap32[(r1+3)];
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r1+280)];
+	r1 = _ZTV22SphereTriangleDetector;
+	r2 = sp + -16;
+	r1 = (r1 + 8)|0;
+	r10 = r2 >> 2;
+	heap32[(fp+-4)] = r1;
+	heap32[(r10+1)] = r8;
+	r1 = sp + -152;
+	heap32[(r10+2)] = r7;
+	r7 = r1 >> 2;
+	heapFloat[(r10+3)] = f0;
+	heap32[(r7+33)] = 0;
+	heap32[(r7+32)] = 1566444395;
+	heap32[(fp+-38)] = heap32[(r3+1)];
+	heap32[(r7+1)] = heap32[(r3+2)];
+	heap32[(r7+2)] = heap32[(r3+3)];
+	heap32[(r7+3)] = heap32[(r3+4)];
+	heap32[(r7+4)] = heap32[(r3+5)];
+	heap32[(r7+5)] = heap32[(r3+6)];
+	heap32[(r7+6)] = heap32[(r3+7)];
+	heap32[(r7+7)] = heap32[(r3+8)];
+	heap32[(r7+8)] = heap32[(r3+9)];
+	heap32[(r7+9)] = heap32[(r3+10)];
+	heap32[(r7+10)] = heap32[(r3+11)];
+	heap32[(r7+11)] = heap32[(r3+12)];
+	heap32[(r7+12)] = heap32[(r3+13)];
+	heap32[(r7+13)] = heap32[(r3+14)];
+	heap32[(r7+14)] = heap32[(r3+15)];
+	heap32[(r7+15)] = heap32[(r3+16)];
+	heap32[(r7+16)] = heap32[(r4+1)];
+	heap32[(r7+17)] = heap32[(r4+2)];
+	heap32[(r7+18)] = heap32[(r4+3)];
+	heap32[(r7+19)] = heap32[(r4+4)];
+	heap32[(r7+20)] = heap32[(r4+5)];
+	heap32[(r7+21)] = heap32[(r4+6)];
+	heap32[(r7+22)] = heap32[(r4+7)];
+	heap32[(r7+23)] = heap32[(r4+8)];
+	heap32[(r7+24)] = heap32[(r4+9)];
+	heap32[(r7+25)] = heap32[(r4+10)];
+	heap32[(r7+26)] = heap32[(r4+11)];
+	heap32[(r7+27)] = heap32[(r4+12)];
+	heap32[(r7+28)] = heap32[(r4+13)];
+	heap32[(r7+29)] = heap32[(r4+14)];
+	heap32[(r7+30)] = heap32[(r4+15)];
+	heap32[(r7+31)] = heap32[(r4+16)];
+	r3 = r5 >> 2;
+	r4 = heapU8[r0+16];
+	r3 = heap32[(r3+5)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r4;
+	_ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
+	r0 = heapU8[r0+8];
+if(!(r0 ==0)) //_LBB365_8
+{
+	r0 = heap32[(r9+1)];
+	if(r0 !=0) //_LBB365_4
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+279)];
+if(!(r2 ==0)) //_LBB365_8
+{
+	r1 = heap32[(r1+277)];
+	r2 = heap32[(r9+34)];
+	if(r1 ==r2) //_LBB365_7
+{
+	r1 = (r6 + 8)|0;
+	r2 = (r6 + 72)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+}
+else{
+	r1 = (r6 + 72)|0;
+	r6 = (r6 + 8)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r6;
+	_ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7);
+	return;
+}
+}
+}
+else{
+	r0 = _2E_str59;
+	r6 = _2E_str160;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = 101;
+	_assert(i7);
+}
+}
+}
+	return;
+}
+
+function _ZN34btSphereTriangleCollisionAlgorithmD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV34btSphereTriangleCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+8];
+if(!(r1 ==0)) //_LBB366_3
+{
+	r1 = heap32[(r2+3)];
+if(!(r1 ==0)) //_LBB366_3
+{
+	r3 = heap32[(r2+1)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+}
+	r1 = _ZTV30btActivatingCollisionAlgorithm;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN34btSphereTriangleCollisionAlgorithmD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV34btSphereTriangleCollisionAlgorithm;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r0 = heapU8[r0+8];
+if(!(r0 ==0)) //_LBB367_3
+{
+	r0 = heap32[(r2+3)];
+if(!(r0 ==0)) //_LBB367_3
+{
+	r1 = heap32[(r2+1)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+}
+	r0 = _ZTV30btActivatingCollisionAlgorithm;
+	r0 = (r0 + 8)|0;
+	heap32[(r2)] = r0;
+	return;
+}
+
+function _ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp+1)];
+	r2 = (r0 + r1)|0;
+	r3 = r2 >>> 31;
+	r4 = heap32[(fp)];
+	r2 = (r2 + r3)|0;
+	r3 = r4 >> 2;
+	r2 = r2 & 1073741822;
+	r5 = heap32[(r3+3)];
+	r2 = r2 << 2;
+	r2 = (r5 + r2)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r5 = r1;
+	r6 = r0;
+_1: while(true){
+	r7 = heap32[(r3+3)];
+	r8 = r5 << 3;
+	r8 = (r7 + r8)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+	if(r8 <r2) //_LBB368_3
+{
+_4: while(true){
+	r8 = r5 << 3;
+	r8 = (r7 + r8)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	r5 = (r5 + 1)|0;
+	if(r8 <r2) //_LBB368_3
+{
+continue _4;
+}
+else{
+break _4;
+}
+}
+}
+	r9 = r6 << 3;
+	r9 = (r7 + r9)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+_7: do {
+	if(r2 <r9) //_LBB368_6
+{
+_8: while(true){
+	r9 = r6 << 3;
+	r9 = (r7 + r9)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+-2)];
+	r6 = (r6 + -1)|0;
+	if(r2 <r9) //_LBB368_6
+{
+continue _8;
+}
+else{
+break _7;
+}
+}
+}
+} while(0);
+	if(r5 <=r6) //_LBB368_9
+{
+	r10 = r5 << 3;
+	r11 = r6 << 3;
+	r10 = (r7 + r10)|0;
+	r7 = (r7 + r11)|0;
+	r10 = r10 >> 2;
+	r7 = r7 >> 2;
+	r12 = heap32[(r10+1)];
+	r7 = heap32[(r7+1)];
+	heap32[(r10)] = r9;
+	heap32[(r10+1)] = r7;
+	r7 = heap32[(r3+3)];
+	r7 = (r7 + r11)|0;
+	r7 = r7 >> 2;
+	r5 = (r5 + 1)|0;
+	r6 = (r6 + -1)|0;
+	heap32[(r7)] = r8;
+	heap32[(r7+1)] = r12;
+}
+	if(r5 <=r6) //_LBB368_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+if(!(r6 <=r1)) //_LBB368_13
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r6;
+	_ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i7);
+}
+if(!(r5 >=r0)) //_LBB368_15
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r0;
+	_ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i7);
+}
+	return;
+}
+
+function _ZN22SphereTriangleDetectorD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV22SphereTriangleDetector;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN22SphereTriangleDetectorD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV22SphereTriangleDetector;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -144;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+2)];
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r1+19)];
+	f1 = heapFloat[(r1+15)];
+	f2 = heapFloat[(r1+23)];
+	f3 = heapFloat[(r1+17)];
+	f4 = heapFloat[(r1+13)];
+	f5 = heapFloat[(r1+21)];
+	f6 = heapFloat[(r1+22)];
+	f7 = heapFloat[(r1+14)];
+	f8 = heapFloat[(r1+18)];
+	f0 = f0-f1;
+	f6 = f6-f7;
+	f3 = f3-f4;
+	f1 = f2-f1;
+	f2 = f8-f7;
+	f4 = f5-f4;
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(r0+1)];
+	f5 = f2*f1;
+	f7 = f0*f6;
+	f0 = f0*f4;
+	f1 = f3*f1;
+	r2 = r2 >> 2;
+	r3 = r3 >> 2;
+	f5 = f5-f7;
+	f0 = f0-f1;
+	f1 = f3*f6;
+	f2 = f2*f4;
+	f3 = heapFloat[(r0+3)];
+	f1 = f1-f2;
+	f2 = f5*f5;
+	f4 = f0*f0;
+	f6 = heapFloat[(r3+7)];
+	f7 = heapFloat[(r3+3)];
+	f8 = heapFloat[(r2+18)];
+	f9 = heapFloat[(r2+22)];
+	f10 = heapFloat[(r2+26)];
+	f11 = heapFloat[(r2+17)];
+	f12 = heapFloat[(r2+21)];
+	f13 = heapFloat[(r2+25)];
+	f14 = heapFloat[(r2+16)];
+	f15 = heapFloat[(r2+12)];
+	f16 = heapFloat[(r2+28)];
+	f17 = heapFloat[(r2+20)];
+	f18 = heapFloat[(r2+13)];
+	f19 = heapFloat[(r2+29)];
+	f20 = heapFloat[(r2+24)];
+	f21 = heapFloat[(r2+14)];
+	f22 = heapFloat[(r2+30)];
+	f2 = f2+f4;
+	f4 = f1*f1;
+	f15 = f15-f16;
+	f16 = f18-f19;
+	f2 = f2+f4;
+	f4 = f21-f22;
+	heapFloat[(g0)] = f2;
+	f2 = f11*f15;
+	f11 = f12*f16;
+	f12 = f14*f15;
+	f14 = f17*f16;
+	sqrtf(i7);
+	f18 =                         1;
+	heapFloat[(fp+-25)] = f18;
+	f8 = f8*f15;
+	f9 = f9*f16;
+	f2 = f2+f11;
+	f11 = f13*f4;
+	f12 = f12+f14;
+	f13 = f20*f4;
+	f14 = f18/f_g0;
+	f2 = f2+f11;
+	f11 = heapFloat[(r1+14)];
+	f12 = f12+f13;
+	f13 = heapFloat[(r1+13)];
+	f8 = f8+f9;
+	f4 = f10*f4;
+	f5 = f5*f14;
+	f9 = f12-f13;
+	heapFloat[(fp+-28)] = f9;
+	f0 = f0*f14;
+	f10 = f2-f11;
+	heapFloat[(fp+-29)] = f10;
+	f4 = f8+f4;
+	f8 = heapFloat[(r1+15)];
+	f1 = f1*f14;
+	f14 = f4-f8;
+	heapFloat[(fp+-27)] = f14;
+	f9 = f9*f5;
+	f10 = f10*f0;
+	f9 = f9+f10;
+	f10 = f14*f1;
+	f9 = f9+f10;
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+4)];
+	f6 = f6*f7;
+	heapFloat[(fp+-26)] = f6;
+	f6 =                         0;
+	if(f9 <f6) //_LBB371_2
+{
+	f9 = -f9;
+	f5 = -f5;
+	f0 = -f0;
+	f1 = -f1;
+}
+	f7 = heapFloat[(fp+-26)];
+	if(f9 <f7) //_LBB371_5
+{
+__label__ = 4;
+}
+else{
+	f7 = f5*f6;
+	f10 = f0*f6;
+	f7 = f7+f10;
+	f10 = f1*f6;
+	f7 = f7+f10;
+	if(f7 >=f6) //_LBB371_31
+{
+__label__ = 29;
+}
+else{
+__label__ = 4;
+}
+}
+_6: do {
+if (__label__ == 4){
+	f7 = heapFloat[(fp+-26)];
+	f3 = f7+f3;
+	heapFloat[(fp+-30)] = f3;
+if(!(f3 <=f9)) //_LBB371_31
+{
+	f3 = heapFloat[(r1+19)];
+	f7 = heapFloat[(r1+23)];
+	f10 = heapFloat[(r1+17)];
+	f14 = heapFloat[(r1+21)];
+	f15 = heapFloat[(r1+18)];
+	f16 = heapFloat[(r1+22)];
+	f17 = f7-f3;
+	f18 = f14-f10;
+	f19 = f3-f8;
+	f8 = f8-f7;
+	f20 = f16-f15;
+	f21 = f10-f13;
+	f22 = f15-f11;
+	f13 = f13-f14;
+	f11 = f11-f16;
+	f23 = f20*f1;
+	f24 = f17*f0;
+	f17 = f17*f5;
+	f25 = f18*f1;
+	f26 = f22*f1;
+	f27 = f19*f0;
+	f19 = f19*f5;
+	f28 = f21*f1;
+	f29 = f11*f1;
+	f30 = f8*f0;
+	f8 = f8*f5;
+	heapFloat[(fp+-31)] = f8;
+	f8 = f13*f1;
+	f23 = f23-f24;
+	f10 = f12-f10;
+	f17 = f17-f25;
+	f15 = f2-f15;
+	f18 = f18*f0;
+	f20 = f20*f5;
+	f24 = f26-f27;
+	f19 = f19-f28;
+	f21 = f21*f0;
+	f22 = f22*f5;
+	f25 = f29-f30;
+	f14 = f12-f14;
+	f26 = heapFloat[(fp+-31)];
+	f8 = f26-f8;
+	f16 = f2-f16;
+	f13 = f13*f0;
+	f11 = f11*f5;
+	f10 = f23*f10;
+	f15 = f17*f15;
+	f17 = f18-f20;
+	f3 = f4-f3;
+	f18 = heapFloat[(fp+-28)];
+	f18 = f24*f18;
+	f20 = heapFloat[(fp+-29)];
+	f19 = f19*f20;
+	f20 = f21-f22;
+	f14 = f25*f14;
+	f8 = f8*f16;
+	f11 = f13-f11;
+	f7 = f4-f7;
+	f10 = f10+f15;
+	f3 = f17*f3;
+	f13 = f18+f19;
+	f15 = heapFloat[(fp+-27)];
+	f15 = f20*f15;
+	f8 = f14+f8;
+	f7 = f11*f7;
+	f3 = f10+f3;
+	f10 = f13+f15;
+	f7 = f8+f7;
+	if(f3 <=f6) //_LBB371_9
+{
+__label__ = 8;
+}
+else{
+	f8 =                         0;
+	if(f10 <=f8) //_LBB371_9
+{
+__label__ = 8;
+}
+else{
+	if(f7 >f8) //_LBB371_12
+{
+__label__ = 11;
+}
+else{
+__label__ = 8;
+}
+}
+}
+_12: do {
+if (__label__ == 8){
+if(!(f10 >f6)) //_LBB371_13
+{
+if(!(f3 >f6)) //_LBB371_13
+{
+if(!(f7 >f6)) //_LBB371_13
+{
+__label__ = 11;
+break _12;
+}
+}
+}
+	r1 = heap32[(r0+2)];
+	r5 = r1 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+22)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r1 = r_g0;
+	if(r1 <1) //_LBB371_31
+{
+break _6;
+}
+else{
+	f0 = heapFloat[(fp+-30)];
+	f5 = f0*f0;
+	r1 = 0;
+	r5 = r1;
+_19: while(true){
+	r6 = heap32[(r0+2)];
+	r7 = r6 >> 2;
+	r7 = heap32[(r7)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+23)];
+	r8 = sp + -32;
+	r9 = sp + -16;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r8;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r6 = r8 >> 2;
+	r7 = r9 >> 2;
+	f7 = heapFloat[(r7+1)];
+	f8 = heapFloat[(r6+1)];
+	f9 = heapFloat[(fp+-4)];
+	f10 = heapFloat[(fp+-8)];
+	f11 = f2-f7;
+	f8 = f8-f7;
+	f13 = f12-f9;
+	f10 = f10-f9;
+	f14 = heapFloat[(r7+2)];
+	f15 = heapFloat[(r6+2)];
+	f16 = f4-f14;
+	f15 = f15-f14;
+	f17 = f10*f13;
+	f18 = f8*f11;
+	f17 = f17+f18;
+	f18 = f15*f16;
+	f17 = f17+f18;
+	r1 = (r1 + 1)|0;
+	if(f17 >f6) //_LBB371_17
+{
+	f18 = f10*f10;
+	f19 = f8*f8;
+	f18 = f18+f19;
+	f19 = f15*f15;
+	f18 = f18+f19;
+	if(f17 >=f18) //_LBB371_19
+{
+	f13 = f13-f10;
+	f11 = f11-f8;
+	f16 = f16-f15;
+	f17 = heapFloat[(fp+-25)];
+}
+else{
+	f17 = f17/f18;
+	f18 = f10*f17;
+	f19 = f8*f17;
+	f20 = f15*f17;
+	f13 = f13-f18;
+	f11 = f11-f19;
+	f16 = f16-f20;
+}
+}
+else{
+	f17 = f6;
+}
+	f13 = f13*f13;
+	f11 = f11*f11;
+	f11 = f13+f11;
+	f13 = f16*f16;
+	f11 = f11+f13;
+	if(f11 <f5) //_LBB371_22
+{
+	f0 = f10*f17;
+	f3 = f8*f17;
+	f8 = f15*f17;
+	f1 = f9+f0;
+	f0 = f7+f3;
+	f3 = f14+f8;
+	r5 = 1;
+}
+	r6 = heap32[(r0+2)];
+	r7 = r6 >> 2;
+	r7 = heap32[(r7)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+22)];
+	heap32[(g0)] = r6;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r6 = r_g0;
+if(!(r6 >r1)) //_LBB371_15
+{
+break _19;
+}
+}
+	r0 = r5 & 255;
+	if(r0 ==0) //_LBB371_31
+{
+break _6;
+}
+else{
+__label__ = 23;
+}
+}
+}
+} while(0);
+if (__label__ == 11){
+	f6 = f1*f9;
+	f0 = f0*f9;
+	f1 = f5*f9;
+	f3 = f4-f6;
+	f0 = f2-f0;
+	f1 = f12-f1;
+}
+	f2 = f2-f0;
+	f5 = f12-f1;
+	f4 = f4-f3;
+	f6 = f5*f5;
+	f7 = f2*f2;
+	f6 = f6+f7;
+	f7 = f4*f4;
+	f6 = f6+f7;
+	f7 = heapFloat[(fp+-26)];
+	f7 = f7*f7;
+	if(f7 <=f6) //_LBB371_27
+{
+	f6 =                         0;
+	f5 = f5*f6;
+	f2 = f2*f6;
+	f2 = f5+f2;
+	f4 = f4*f6;
+	f2 = f2+f4;
+	if(f2 >=f6) //_LBB371_31
+{
+break _6;
+}
+}
+else{
+	heapFloat[(g0)] = f6;
+	sqrtf(i7);
+	f7 = f_g0;
+	heapFloat[(g0)] = f6;
+	f6 =                         1;
+	sqrtf(i7);
+	f9 = heapFloat[(fp+-26)];
+	f7 = f9-f7;
+	f6 = f6/f_g0;
+	f5 = f5*f6;
+	f2 = f2*f6;
+	f4 = f4*f6;
+	f6 = -f7;
+}
+	if(r4 ==0) //_LBB371_30
+{
+	r0 = r3 >> 2;
+	f7 = heapFloat[(r2+16)];
+	f8 = heapFloat[(r2+17)];
+	r0 = heap32[(r0)];
+	f9 = heapFloat[(r2+20)];
+	f10 = heapFloat[(r2+21)];
+	f11 = f7*f1;
+	f12 = f8*f0;
+	f13 = heapFloat[(r2+18)];
+	r0 = r0 >> 2;
+	f14 = heapFloat[(r2+24)];
+	f15 = heapFloat[(r2+25)];
+	f16 = heapFloat[(r2+22)];
+	f17 = f9*f1;
+	f18 = f10*f0;
+	f11 = f11+f12;
+	f12 = f13*f3;
+	f19 = heapFloat[(r2+26)];
+	r0 = heap32[(r0+4)];
+	f1 = f14*f1;
+	f0 = f15*f0;
+	f17 = f17+f18;
+	f18 = f16*f3;
+	f11 = f11+f12;
+	f12 = heapFloat[(r2+28)];
+	f20 = heapFloat[(r2+30)];
+	f21 = heapFloat[(r2+29)];
+	r1 = sp + -64;
+	f17 = f17+f18;
+	f0 = f1+f0;
+	f1 = f19*f3;
+	f3 = f11+f12;
+	f0 = f0+f1;
+	r2 = r1 >> 2;
+	f1 = f17+f21;
+	heapFloat[(fp+-16)] = f3;
+	f3 = f7*f5;
+	f7 = f8*f2;
+	f0 = f0+f20;
+	heapFloat[(r2+1)] = f1;
+	heapFloat[(r2+2)] = f0;
+	f0 = f9*f5;
+	f1 = f10*f2;
+	f3 = f3+f7;
+	f7 = f13*f4;
+	r4 = sp + -48;
+	f5 = f14*f5;
+	f2 = f15*f2;
+	f0 = f0+f1;
+	f1 = f16*f4;
+	f3 = f3+f7;
+	heap32[(r2+3)] = 0;
+	r2 = r4 >> 2;
+	f2 = f5+f2;
+	f4 = f19*f4;
+	f0 = f0+f1;
+	heapFloat[(fp+-12)] = f3;
+	f1 = f2+f4;
+	heapFloat[(r2+1)] = f0;
+	heapFloat[(r2+2)] = f1;
+	heap32[(r2+3)] = 0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	heapFloat[(g0+3)] = f6;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+}
+else{
+	f7 = heapFloat[(r2+16)];
+	f8 = heapFloat[(r2+17)];
+	f9 = heapFloat[(r2+20)];
+	f10 = heapFloat[(r2+21)];
+	f11 = f7*f5;
+	f12 = f8*f2;
+	f13 = heapFloat[(r2+18)];
+	f14 = heapFloat[(r2+24)];
+	f15 = heapFloat[(r2+25)];
+	f16 = heapFloat[(r2+22)];
+	f17 = f9*f5;
+	f18 = f10*f2;
+	f11 = f11+f12;
+	f12 = f13*f4;
+	f19 = heapFloat[(r2+26)];
+	f11 = f11+f12;
+	f5 = f14*f5;
+	f2 = f15*f2;
+	f12 = f17+f18;
+	f17 = f16*f4;
+	r0 = sp + -80;
+	f12 = f12+f17;
+	f2 = f5+f2;
+	f4 = f19*f4;
+	f5 = -f11;
+	f2 = f2+f4;
+	r1 = r0 >> 2;
+	f4 = -f12;
+	heapFloat[(fp+-20)] = f5;
+	f5 = -f2;
+	heapFloat[(r1+1)] = f4;
+	heapFloat[(r1+2)] = f5;
+	f4 = f7*f1;
+	f5 = f8*f0;
+	heap32[(r1+3)] = 0;
+	f7 = f9*f1;
+	f8 = f10*f0;
+	f4 = f4+f5;
+	f5 = f13*f3;
+	f1 = f14*f1;
+	f0 = f15*f0;
+	f7 = f7+f8;
+	f8 = f16*f3;
+	f4 = f4+f5;
+	f5 = heapFloat[(r2+28)];
+	f0 = f1+f0;
+	f1 = f19*f3;
+	f3 = f7+f8;
+	f7 = heapFloat[(r2+29)];
+	f8 = heapFloat[(r2+30)];
+	f4 = f4+f5;
+	f5 = f11*f6;
+	r2 = sp + -96;
+	f0 = f0+f1;
+	f1 = f3+f7;
+	f3 = f12*f6;
+	f4 = f4+f5;
+	r1 = r2 >> 2;
+	f0 = f0+f8;
+	f2 = f2*f6;
+	f1 = f1+f3;
+	heapFloat[(fp+-24)] = f4;
+	f0 = f0+f2;
+	heapFloat[(r1+1)] = f1;
+	heapFloat[(r1+2)] = f0;
+	r4 = r3 >> 2;
+	heap32[(r1+3)] = 0;
+	r1 = heap32[(r4)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	heapFloat[(g0+3)] = f6;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f1;
+	var f2;
+	var f3;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f1 = heapFloat[(r1+7)];
+	f2 = heapFloat[(r1+8)];
+	f3 = heapFloat[(r1+9)];
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp+3)];
+	heapFloat[(g0)] = f1;
+	heapFloat[(g0+1)] = f2;
+	heapFloat[(g0+2)] = f3;
+	heapFloat[(g0+3)] = f_g0;
+	heap32[(g0+4)] = r0;
+	heap32[(g0+5)] = r1;
+	heap32[(g0+6)] = r2;
+	_Z15btTransformAabbRK9btVector3fRK11btTransformRS_S5_(i7);
+	return;
+}
+
+function _Z15btTransformAabbRK9btVector3fRK11btTransformRS_S5_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+4)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(fp+2)];
+	f1 = heapFloat[(fp+3)];
+	f2 = heapFloat[(fp+1)];
+	f3 = heapFloat[(fp)];
+	f4 = heapFloat[(r0+10)];
+	r1 = heap32[(fp+5)];
+	r2 = heap32[(fp+6)];
+	f0 = f0+f1;
+	f2 = f2+f1;
+	f1 = f3+f1;
+	f3 =                         0;
+	if(f4 <f3) //_LBB373_2
+{
+	f4 = -f4;
+}
+	f5 = heapFloat[(r0+9)];
+	if(f5 <f3) //_LBB373_5
+{
+	f5 = -f5;
+}
+	f6 = heapFloat[(r0+8)];
+	if(f6 <f3) //_LBB373_8
+{
+	f6 = -f6;
+}
+	f7 = heapFloat[(r0+6)];
+	if(f7 <f3) //_LBB373_11
+{
+	f7 = -f7;
+}
+	f8 = heapFloat[(r0+5)];
+	if(f8 <f3) //_LBB373_14
+{
+	f8 = -f8;
+}
+	f9 = heapFloat[(r0+4)];
+	if(f9 <f3) //_LBB373_17
+{
+	f9 = -f9;
+}
+	f10 = heapFloat[(r0+2)];
+	if(f10 <f3) //_LBB373_20
+{
+	f10 = -f10;
+}
+	f11 = heapFloat[(r0+1)];
+	if(f11 <f3) //_LBB373_23
+{
+	f11 = -f11;
+}
+	f12 = heapFloat[(r0)];
+	if(f12 <f3) //_LBB373_26
+{
+	f12 = -f12;
+}
+	f3 = f12*f1;
+	f11 = f11*f2;
+	f9 = f9*f1;
+	f8 = f8*f2;
+	f3 = f3+f11;
+	f10 = f10*f0;
+	f1 = f6*f1;
+	f2 = f5*f2;
+	f5 = f9+f8;
+	f6 = f7*f0;
+	f3 = f3+f10;
+	f7 = heapFloat[(r0+12)];
+	f8 = heapFloat[(r0+13)];
+	f9 = heapFloat[(r0+14)];
+	f5 = f5+f6;
+	r0 = r1 >> 2;
+	f1 = f1+f2;
+	f0 = f4*f0;
+	f2 = f7-f3;
+	f0 = f1+f0;
+	f1 = f8-f5;
+	heapFloat[(r0)] = f2;
+	f2 = f9-f0;
+	heapFloat[(r0+1)] = f1;
+	heapFloat[(r0+2)] = f2;
+	r1 = r2 >> 2;
+	f1 = f7+f3;
+	heap32[(r0+3)] = 0;
+	f2 = f8+f5;
+	heapFloat[(r1)] = f1;
+	f0 = f9+f0;
+	heapFloat[(r1+1)] = f2;
+	heapFloat[(r1+2)] = f0;
+	heap32[(r1+3)] = 0;
+	return;
+}
+
+function _ZNK10btBoxShape24localGetSupportingVertexERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	f0 = heapFloat[(r1+7)];
+	f1 = heapFloat[(r1+8)];
+	f2 = heapFloat[(r1+9)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f3 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f4 = f_g0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+11)];
+	heap32[(g0)] = r0;
+	r0 = heap32[(fp+2)];
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = r0 >> 2;
+	f0 = f0+f_g0;
+	r1 = heap32[(fp)];
+	f1 = f1+f4;
+	f4 =                         0;
+	f5 = -f0;
+	f6 = heapFloat[(r0)];
+	f7 = heapFloat[(r0+2)];
+	f8 = heapFloat[(r0+1)];
+	f2 = f2+f3;
+	f3 = -f1;
+	r0 = r1 >> 2;
+	f0 = f6 < f4 ? f5 : f0;
+	f5 = -f2;
+	f1 = f8 < f4 ? f3 : f1;
+	heapFloat[(r0)] = f0;
+	f0 = f7 < f4 ? f5 : f2;
+	heapFloat[(r0+1)] = f1;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+2)];
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r0+7)];
+	r2 = heap32[(fp)];
+	f1 = heapFloat[(r0+9)];
+	f2 = heapFloat[(r0+8)];
+	f3 =                         0;
+	f4 = -f0;
+	f5 = heapFloat[(r1)];
+	f6 = heapFloat[(r1+2)];
+	f7 = heapFloat[(r1+1)];
+	f8 = -f2;
+	r0 = r2 >> 2;
+	f0 = f5 < f3 ? f4 : f0;
+	f4 = -f1;
+	f2 = f7 < f3 ? f8 : f2;
+	heapFloat[(r0)] = f0;
+	f0 = f6 < f3 ? f4 : f1;
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+3)];
+if(!(r0 <1)) //_LBB376_3
+{
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r3 = (r3 + 8)|0;
+	r2 = (r2 + 8)|0;
+	f3 =                         0;
+_3: while(true){
+	r4 = r1 >> 2;
+	r5 = r2 >> 2;
+	f0 = heapFloat[(r4+7)];
+	f1 = heapFloat[(r4+9)];
+	f2 = heapFloat[(r4+8)];
+	f4 = -f0;
+	f5 = heapFloat[(r5+-2)];
+	f6 = heapFloat[(r5)];
+	f7 = heapFloat[(r5+-1)];
+	f8 = -f2;
+	r4 = r3 >> 2;
+	f0 = f5 < f3 ? f4 : f0;
+	f4 = -f1;
+	f2 = f7 < f3 ? f8 : f2;
+	heapFloat[(r4+-2)] = f0;
+	f0 = f6 < f3 ? f4 : f1;
+	heapFloat[(r4+-1)] = f2;
+	r0 = (r0 + -1)|0;
+	r3 = (r3 + 16)|0;
+	r2 = (r2 + 16)|0;
+	heapFloat[(r4)] = f0;
+	heap32[(r4+1)] = 0;
+	if(r0 !=0) //_LBB376_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function _ZN10btBoxShape9setMarginEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f0 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f1 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f2 = f_g0;
+	f3 = heapFloat[(r1+9)];
+	f4 = heapFloat[(r1+8)];
+	f5 = heapFloat[(r1+7)];
+	heap32[(r1+11)] = heap32[(fp+1)];
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f6 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f7 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	f2 = f5+f2;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f1 = f4+f1;
+	f2 = f2-f_g0;
+	f0 = f3+f0;
+	f1 = f1-f7;
+	heapFloat[(r1+7)] = f2;
+	f0 = f0-f6;
+	heapFloat[(r1+8)] = f1;
+	heapFloat[(r1+9)] = f0;
+	heap32[(r1+10)] = 0;
+	return;
+}
+
+function _ZNK10btBoxShape8getPlaneER9btVector3S1_i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -64;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+28)];
+	r3 = sp + -32;
+	r4 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r3 >> 2;
+	r3 = heap32[(fp+1)];
+	f0 = heapFloat[(r2+2)];
+	f1 = heapFloat[(r2+1)];
+	f2 = heapFloat[(fp+-8)];
+	r2 = r3 >> 2;
+	heapFloat[(r2)] = f2;
+	heapFloat[(r2+1)] = f1;
+	heapFloat[(r2+2)] = f0;
+	heap32[(r2+3)] = 0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+15)];
+	r2 = sp + -16;
+	f2 = -f2;
+	r3 = r2 >> 2;
+	f1 = -f1;
+	heapFloat[(fp+-4)] = f2;
+	f0 = -f0;
+	heapFloat[(r3+1)] = f1;
+	heapFloat[(r3+2)] = f0;
+	heap32[(r3+3)] = 0;
+	r3 = sp + -48;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	r0 = heap32[(fp+2)];
+	r0 = r0 >> 2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r1 = r3 >> 2;
+	heap32[(r0)] = heap32[(fp+-12)];
+	heap32[(r0+1)] = heap32[(r1+1)];
+	heap32[(r0+2)] = heap32[(r1+2)];
+	heap32[(r0+3)] = heap32[(r1+3)];
+	return;
+}
+
+function _ZNK10btBoxShape12getNumPlanesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 6;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK10btBoxShape14getNumVerticesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 8;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK10btBoxShape11getNumEdgesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 12;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK10btBoxShape9getVertexEiR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >>> 1;
+	r2 = heap32[(fp)];
+	r2 = r2 >> 2;
+	r1 = r1 & 1;
+	r3 = r0 >>> 2;
+	r0 = r0 & 1;
+	r4 = 0;
+	f0 =                         1;
+	f1 =                         0;
+	r3 = r3 & 1;
+	r5 = r1 ^ 1;
+	f0 = r0 == r4 ? f0 : f1;
+	f1 = heapFloat[(r2+7)];
+	f2 = r0; //fitos r0, f2
+	r0 = heap32[(fp+2)];
+	r4 = r3 ^ 1;
+	f3 = r5; //fitos r5, f3
+	f4 = heapFloat[(r2+8)];
+	f5 = r1; //fitos r1, f5
+	f6 = heapFloat[(r2+9)];
+	f0 = f1*f0;
+	f1 = f1*f2;
+	f2 = r4; //fitos r4, f2
+	f7 = r3; //fitos r3, f7
+	r0 = r0 >> 2;
+	f3 = f4*f3;
+	f4 = f4*f5;
+	f0 = f0-f1;
+	f1 = f6*f2;
+	f2 = f6*f7;
+	f3 = f3-f4;
+	heapFloat[(r0)] = f0;
+	f0 = f1-f2;
+	heapFloat[(r0+1)] = f3;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZNK10btBoxShape8isInsideERK9btVector3f(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r1 = r1 >> 2;
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0)];
+	f1 = heapFloat[(fp+2)];
+	f2 = heapFloat[(r1+7)];
+	f3 = f2+f1;
+if(!(f0 >f3)) //_LBB383_6
+{
+	f2 = -f2;
+	f2 = f2-f1;
+if(!(f0 <f2)) //_LBB383_6
+{
+	f0 = heapFloat[(r1+8)];
+	f2 = heapFloat[(r0+1)];
+	f3 = f0+f1;
+if(!(f2 >f3)) //_LBB383_6
+{
+	f0 = -f0;
+	f0 = f0-f1;
+if(!(f2 <f0)) //_LBB383_6
+{
+	f0 = heapFloat[(r1+9)];
+	f2 = heapFloat[(r0+2)];
+	f3 = f0+f1;
+if(!(f2 >f3)) //_LBB383_6
+{
+	f0 = -f0;
+	f0 = f0-f1;
+	r0 = f2 >= f0;
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+}
+}
+}
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK10btBoxShape7getNameEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _2E_str173;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 6;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	f0 = heapFloat[(r1+7)];
+	f1 = heapFloat[(r1+8)];
+	f2 = heapFloat[(r1+9)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f3 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+11)];
+	heap32[(g0)] = r0;
+	f1 = f1+f_g0;
+	f2 = f2+f3;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	f0 = f0+f_g0;
+	f1 = f1+f1;
+	f2 = f2+f2;
+	f0 = f0+f0;
+	f3 = heapFloat[(fp+1)];
+	f4 =                        12;
+	f1 = f1*f1;
+	f2 = f2*f2;
+	f0 = f0*f0;
+	r0 = heap32[(fp+2)];
+	f3 = f3/f4;
+	f4 = f1+f2;
+	f2 = f0+f2;
+	r0 = r0 >> 2;
+	f4 = f3*f4;
+	f0 = f0+f1;
+	f1 = f3*f2;
+	heapFloat[(r0)] = f4;
+	f0 = f3*f0;
+	heapFloat[(r0+1)] = f1;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZNK10btBoxShape16getPlaneEquationER9btVector4i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp+1)];
+	f0 = heapFloat[(r0+8)];
+_1: do {
+	if(r1 >2) //_LBB387_4
+{
+	if(r1 ==3) //_LBB387_13
+{
+	r2 = r2 >> 2;
+	heap32[(r2)] = 0;
+	heap32[(r2+1)] = -1082130432;
+__label__ = 11;
+break _1;
+}
+else{
+	f0 = heapFloat[(r0+9)];
+	if(r1 ==4) //_LBB387_14
+{
+	r2 = r2 >> 2;
+	heap32[(r2)] = 0;
+	heap32[(r2+1)] = 0;
+	f0 = -f0;
+	heap32[(r2+2)] = 1065353216;
+	heapFloat[(r2+3)] = f0;
+	return;
+}
+else{
+	if(r1 ==5) //_LBB387_15
+{
+	r0 = r2 >> 2;
+	heap32[(r0)] = 0;
+	heap32[(r0+1)] = 0;
+	f0 = -f0;
+	heap32[(r0+2)] = -1082130432;
+	heapFloat[(r0+3)] = f0;
+	return;
+}
+else{
+__label__ = 16;
+break _1;
+}
+}
+}
+}
+else{
+	f1 = heapFloat[(r0+7)];
+	if(r1 ==0) //_LBB387_7
+{
+	r2 = r2 >> 2;
+	heap32[(r2)] = 1065353216;
+}
+else{
+	if(r1 ==1) //_LBB387_9
+{
+	r2 = r2 >> 2;
+	heap32[(r2)] = -1082130432;
+}
+else{
+	if(r1 ==2) //_LBB387_10
+{
+	r2 = r2 >> 2;
+	heap32[(r2)] = 0;
+	heap32[(r2+1)] = 1065353216;
+__label__ = 11;
+break _1;
+}
+else{
+__label__ = 16;
+break _1;
+}
+}
+}
+	heap32[(r2+1)] = 0;
+	f0 = -f1;
+__label__ = 12;
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 11:
+	f0 = -f0;
+break;
+case 16:
+	r0 = _2E_str10;
+	r1 = _2E_str2175;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 182;
+	_assert(i7);
+break;
+}
+	heap32[(r2+2)] = 0;
+	heapFloat[(r2+3)] = f0;
+	return;
+}
+
+function _ZNK10btBoxShape7getEdgeEiR9btVector3S1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+_1: do {
+	if(r0 >5) //_LBB388_8
+{
+	if(r0 >8) //_LBB388_12
+{
+	if(r0 ==9) //_LBB388_24
+{
+	r0 = 4;
+	r4 = 6;
+__label__ = 28;
+break _1;
+}
+else{
+	if(r0 ==10) //_LBB388_25
+{
+	r0 = 5;
+	r4 = 7;
+__label__ = 28;
+break _1;
+}
+else{
+	if(r0 ==11) //_LBB388_26
+{
+	r0 = 6;
+	r4 = 7;
+__label__ = 28;
+break _1;
+}
+else{
+__label__ = 27;
+break _1;
+}
+}
+}
+}
+else{
+	if(r0 ==6) //_LBB388_21
+{
+	r0 = 2;
+	r4 = 6;
+__label__ = 28;
+break _1;
+}
+else{
+	if(r0 ==7) //_LBB388_22
+{
+	r0 = 3;
+	r4 = 7;
+__label__ = 28;
+break _1;
+}
+else{
+	if(r0 ==8) //_LBB388_23
+{
+	r0 = 4;
+	r4 = 5;
+__label__ = 28;
+break _1;
+}
+else{
+__label__ = 27;
+break _1;
+}
+}
+}
+}
+}
+else{
+	if(r0 >2) //_LBB388_5
+{
+	if(r0 ==3) //_LBB388_18
+{
+	r0 = 2;
+	r4 = 3;
+__label__ = 28;
+break _1;
+}
+else{
+	if(r0 ==4) //_LBB388_19
+{
+	r0 = 0;
+	r4 = 4;
+__label__ = 28;
+break _1;
+}
+else{
+	if(r0 ==5) //_LBB388_20
+{
+	r0 = 1;
+	r4 = 5;
+__label__ = 28;
+break _1;
+}
+else{
+__label__ = 27;
+break _1;
+}
+}
+}
+}
+else{
+	if(r0 ==0) //_LBB388_15
+{
+	r0 = 0;
+	r4 = 1;
+__label__ = 28;
+break _1;
+}
+else{
+	if(r0 ==1) //_LBB388_16
+{
+	r0 = 0;
+	r4 = 2;
+__label__ = 28;
+}
+else{
+	if(r0 ==2) //_LBB388_17
+{
+	r0 = 1;
+	r4 = 3;
+__label__ = 28;
+}
+else{
+__label__ = 27;
+}
+}
+}
+}
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 28:
+	r5 = r1 >> 2;
+	r6 = heap32[(r5)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+24)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r0 = heap32[(r5)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+24)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	return;
+break;
+case 27:
+	r0 = _2E_str10;
+	r1 = _2E_str2175;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 246;
+	_assert(i7);
+break;
+}
+}
+
+function _ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+2)];
+_1: do {
+	if(r0 >2) //_LBB389_4
+{
+	if(r0 ==3) //_LBB389_12
+{
+	r1 = r1 >> 2;
+	heap32[(r1)] = 0;
+	heap32[(r1+1)] = -1082130432;
+__label__ = 9;
+break _1;
+}
+else{
+	if(r0 ==4) //_LBB389_13
+{
+	r1 = r1 >> 2;
+	heap32[(r1)] = 0;
+	heap32[(r1+1)] = 0;
+	heap32[(r1+2)] = 1065353216;
+	heap32[(r1+3)] = 0;
+	return;
+}
+else{
+	if(r0 ==5) //_LBB389_14
+{
+	r0 = r1 >> 2;
+	heap32[(r0)] = 0;
+	heap32[(r0+1)] = 0;
+	heap32[(r0+2)] = -1082130432;
+	heap32[(r0+3)] = 0;
+	return;
+}
+else{
+__label__ = 15;
+break _1;
+}
+}
+}
+}
+else{
+	if(r0 ==0) //_LBB389_7
+{
+	r1 = r1 >> 2;
+	heap32[(r1)] = 1065353216;
+}
+else{
+	if(r0 ==1) //_LBB389_10
+{
+	r1 = r1 >> 2;
+	heap32[(r1)] = -1082130432;
+}
+else{
+	if(r0 ==2) //_LBB389_11
+{
+	r1 = r1 >> 2;
+	heap32[(r1)] = 0;
+	heap32[(r1+1)] = 1065353216;
+__label__ = 9;
+break _1;
+}
+else{
+__label__ = 15;
+break _1;
+}
+}
+}
+	heap32[(r1+1)] = 0;
+__label__ = 9;
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 9:
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = 0;
+	return;
+break;
+case 15:
+	r0 = _2E_str10;
+	r1 = _2E_str2175;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 309;
+	_assert(i7);
+break;
+}
+}
+
+function _ZN10btBoxShape15setLocalScalingERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f0 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f1 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f2 = f_g0;
+	r0 = heap32[(fp+1)];
+	f3 = heapFloat[(r1+9)];
+	f4 = heapFloat[(r1+8)];
+	f5 = heapFloat[(r1+7)];
+	r0 = r0 >> 2;
+	f3 = f3+f0;
+	f6 = heapFloat[(r1+5)];
+	f4 = f4+f1;
+	f7 = heapFloat[(r1+4)];
+	f5 = f5+f2;
+	f8 = heapFloat[(r1+3)];
+	f9 = heapFloat[(r0+2)];
+	f3 = f3/f6;
+	f4 = f4/f7;
+	f5 = f5/f8;
+	f6 =                         0;
+	if(f9 <f6) //_LBB390_2
+{
+	f9 = -f9;
+}
+	f7 = heapFloat[(r0+1)];
+	if(f7 <f6) //_LBB390_5
+{
+	f7 = -f7;
+}
+	f8 = heapFloat[(r0)];
+	if(f8 <f6) //_LBB390_8
+{
+	f8 = -f8;
+}
+	heapFloat[(r1+3)] = f8;
+	heapFloat[(r1+4)] = f7;
+	heapFloat[(r1+5)] = f9;
+	f5 = f5*f8;
+	f4 = f4*f7;
+	f2 = f5-f2;
+	heap32[(r1+6)] = 0;
+	f3 = f3*f9;
+	f1 = f4-f1;
+	heapFloat[(r1+7)] = f2;
+	f0 = f3-f0;
+	heapFloat[(r1+8)] = f1;
+	heapFloat[(r1+9)] = f0;
+	heap32[(r1+10)] = 0;
+	return;
+}
+
+function _ZN10btBoxShapeD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13btConvexShape;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+if(!(r0 ==0)) //_LBB391_2
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZN10btBoxShapeD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13btConvexShape;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZNK14btConcaveShape9getMarginEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var f0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+3)];
+	f_g0 = f0;
+	return;
+}
+
+function _ZN14btConcaveShape9setMarginEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	heap32[(r0+3)] = heap32[(fp+1)];
+	return;
+}
+
+function _ZNK22btBvhTriangleMeshShape7getNameEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _2E_str181;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 60;
+	r_g0 = r0;
+	return;
+}
+
+function _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -120;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+1)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	r3 = heap32[(fp+1)];
+	r4 = sp + -52;
+	r5 = sp + -56;
+	r6 = sp + -60;
+	r7 = sp + -64;
+	r8 = sp + -68;
+	r9 = sp + -72;
+	r10 = sp + -76;
+	r11 = sp + -80;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r6;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r8;
+	heap32[(g0+6)] = r9;
+	heap32[(g0+7)] = r10;
+	heap32[(g0+8)] = r11;
+	heap32[(g0+9)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = heap32[(fp+-20)];
+	r2 = (r1 + -2)|0;
+	if(uint(r2) <uint(2)) //_LBB399_2
+{
+	r2 = heap32[(fp+2)];
+	r4 = heap32[(fp+-17)];
+	r5 = heap32[(fp+-18)];
+	r5 = (r5 * r2)|0;
+	r6 = heap32[(r0+1)];
+	r4 = (r4 + r5)|0;
+	r5 = -6;
+_3: while(true){
+	r7 = 0;
+	r8 = r5 << 1;
+	r7 = (r7 - r8)|0;
+	if(r1 !=3) //_LBB399_5
+{
+	r8 = (r4 - r8)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+-1)];
+}
+else{
+	r8 = (r4 - r5)|0;
+	r8 = heapU16[(r8+-2)>>1];
+}
+	r9 = heap32[(fp+-16)];
+	r10 = heap32[(fp+-13)];
+	r8 = (r9 * r8)|0;
+	r9 = heap32[(fp+-15)];
+	if(r9 !=0) //_LBB399_8
+{
+	r9 = (r10 + r8)|0;
+	r11 = r6 >> 2;
+	f0 = llvm_readDouble((r9+16));
+	f1 = llvm_readDouble((r9+8));
+	f2 = llvm_readDouble((r10+r8));
+	f0 = f0; //fdtos f0, f0
+	f3 = heapFloat[(r11+3)];
+	f1 = f1; //fdtos f1, f1
+	f4 = heapFloat[(r11+2)];
+	f2 = f2; //fdtos f2, f2
+	f5 = heapFloat[(r11+1)];
+	f0 = f0*f3;
+	f1 = f1*f4;
+	f2 = f2*f5;
+}
+else{
+	r8 = (r10 + r8)|0;
+	r8 = r8 >> 2;
+	r10 = r6 >> 2;
+	f0 = heapFloat[(r8+2)];
+	f1 = heapFloat[(r10+3)];
+	f2 = heapFloat[(r8+1)];
+	f3 = heapFloat[(r10+2)];
+	f4 = heapFloat[(r8)];
+	f5 = heapFloat[(r10+1)];
+	f0 = f0*f1;
+	f1 = f2*f3;
+	f2 = f4*f5;
+}
+	r8 = sp + -48;
+	r9 = r7 << 2;
+	r10 = r7 << 2;
+	r9 = (r8 + r9)|0;
+	r11 = r7 << 2;
+	r10 = (r8 + r10)|0;
+	r9 = r9 >> 2;
+	r7 = r7 << 2;
+	r11 = (r8 + r11)|0;
+	r10 = r10 >> 2;
+	heapFloat[(r9+-4)] = f2;
+	r7 = (r8 + r7)|0;
+	r9 = r11 >> 2;
+	heapFloat[(r10+-3)] = f1;
+	r5 = (r5 + 2)|0;
+	r7 = r7 >> 2;
+	heapFloat[(r9+-2)] = f0;
+	heap32[(r7+-1)] = 0;
+if(!(r5 !=0)) //_LBB399_3
+{
+break _3;
+}
+}
+	r1 = heap32[(r0+2)];
+	r4 = r1 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r0 = heap32[(r0+1)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+6)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+else{
+	r0 = _2E_str6187;
+	r1 = _2E_str7188;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 130;
+	_assert(i7);
+}
+}
+
+function _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -120;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+1)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	r3 = heap32[(fp+1)];
+	r4 = sp + -52;
+	r5 = sp + -56;
+	r6 = sp + -60;
+	r7 = sp + -64;
+	r8 = sp + -68;
+	r9 = sp + -72;
+	r10 = sp + -76;
+	r11 = sp + -80;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r6;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r8;
+	heap32[(g0+6)] = r9;
+	heap32[(g0+7)] = r10;
+	heap32[(g0+8)] = r11;
+	heap32[(g0+9)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = heap32[(fp+-20)];
+	r2 = (r1 + -2)|0;
+	if(uint(r2) <uint(2)) //_LBB402_2
+{
+	r2 = heap32[(fp+2)];
+	r4 = heap32[(fp+-17)];
+	r5 = heap32[(fp+-18)];
+	r5 = (r5 * r2)|0;
+	r6 = heap32[(r0+1)];
+	r4 = (r4 + r5)|0;
+	r5 = -6;
+_3: while(true){
+	r7 = 0;
+	r8 = r5 << 1;
+	r7 = (r7 - r8)|0;
+	if(r1 !=3) //_LBB402_5
+{
+	r8 = (r4 - r8)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+-1)];
+}
+else{
+	r8 = (r4 - r5)|0;
+	r8 = heapU16[(r8+-2)>>1];
+}
+	r9 = heap32[(fp+-16)];
+	r10 = heap32[(fp+-13)];
+	r8 = (r9 * r8)|0;
+	r9 = heap32[(fp+-15)];
+	if(r9 !=0) //_LBB402_8
+{
+	r9 = (r10 + r8)|0;
+	r11 = r6 >> 2;
+	f0 = llvm_readDouble((r9+16));
+	f1 = llvm_readDouble((r9+8));
+	f2 = llvm_readDouble((r10+r8));
+	f0 = f0; //fdtos f0, f0
+	f3 = heapFloat[(r11+3)];
+	f1 = f1; //fdtos f1, f1
+	f4 = heapFloat[(r11+2)];
+	f2 = f2; //fdtos f2, f2
+	f5 = heapFloat[(r11+1)];
+	f0 = f0*f3;
+	f1 = f1*f4;
+	f2 = f2*f5;
+}
+else{
+	r8 = (r10 + r8)|0;
+	r8 = r8 >> 2;
+	r10 = r6 >> 2;
+	f0 = heapFloat[(r8+2)];
+	f1 = heapFloat[(r10+3)];
+	f2 = heapFloat[(r8+1)];
+	f3 = heapFloat[(r10+2)];
+	f4 = heapFloat[(r8)];
+	f5 = heapFloat[(r10+1)];
+	f0 = f0*f1;
+	f1 = f2*f3;
+	f2 = f4*f5;
+}
+	r8 = sp + -48;
+	r9 = r7 << 2;
+	r10 = r7 << 2;
+	r9 = (r8 + r9)|0;
+	r11 = r7 << 2;
+	r10 = (r8 + r10)|0;
+	r9 = r9 >> 2;
+	r7 = r7 << 2;
+	r11 = (r8 + r11)|0;
+	r10 = r10 >> 2;
+	heapFloat[(r9+-4)] = f2;
+	r7 = (r8 + r7)|0;
+	r9 = r11 >> 2;
+	heapFloat[(r10+-3)] = f1;
+	r5 = (r5 + 2)|0;
+	r7 = r7 >> 2;
+	heapFloat[(r9+-2)] = f0;
+	heap32[(r7+-1)] = 0;
+if(!(r5 !=0)) //_LBB402_3
+{
+break _3;
+}
+}
+	r1 = heap32[(r0+2)];
+	r4 = r1 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r0 = heap32[(r0+1)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+6)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+else{
+	r0 = _2E_str6187;
+	r1 = _2E_str7188;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 199;
+	_assert(i7);
+}
+}
+
+function _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -72;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+1)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	r4 = heap32[(fp+1)];
+	r5 = sp + -4;
+	r6 = sp + -8;
+	r7 = sp + -12;
+	r8 = sp + -16;
+	r9 = sp + -20;
+	r10 = sp + -24;
+	r11 = sp + -28;
+	r12 = sp + -32;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = r8;
+	heap32[(g0+5)] = r9;
+	heap32[(g0+6)] = r10;
+	heap32[(g0+7)] = r11;
+	heap32[(g0+8)] = r12;
+	heap32[(g0+9)] = r4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = heap32[(fp+-8)];
+	r3 = (r2 + -2)|0;
+	if(uint(r3) <uint(2)) //_LBB405_2
+{
+	r3 = heap32[(fp+2)];
+	r5 = heap32[(fp+-5)];
+	r6 = heap32[(fp+-6)];
+	r6 = (r6 * r3)|0;
+	r5 = (r6 + r5)|0;
+	r6 = heap32[(r1+1)];
+	r5 = (r5 + 8)|0;
+	r7 = 0;
+	r8 = r7;
+_3: while(true){
+	r9 = r8 << 1;
+	r10 = (r7 - r9)|0;
+	if(r2 !=3) //_LBB405_5
+{
+	r9 = (r5 - r9)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+}
+else{
+	r9 = (r5 - r8)|0;
+	r9 = heapU16[(r9+-4)>>1];
+}
+	r11 = heap32[(fp+-4)];
+	r12 = heap32[(fp+-1)];
+	r9 = (r11 * r9)|0;
+	r11 = heap32[(fp+-3)];
+	if(r11 !=0) //_LBB405_8
+{
+	r11 = (r12 + r9)|0;
+	r13 = r6 >> 2;
+	f0 = llvm_readDouble((r11+16));
+	f1 = llvm_readDouble((r11+8));
+	f2 = llvm_readDouble((r12+r9));
+	f0 = f0; //fdtos f0, f0
+	f3 = heapFloat[(r13+3)];
+	f1 = f1; //fdtos f1, f1
+	f4 = heapFloat[(r13+2)];
+	f2 = f2; //fdtos f2, f2
+	f5 = heapFloat[(r13+1)];
+	f0 = f0*f3;
+	f1 = f1*f4;
+	f2 = f2*f5;
+}
+else{
+	r9 = (r12 + r9)|0;
+	r9 = r9 >> 2;
+	r12 = r6 >> 2;
+	f0 = heapFloat[(r9+2)];
+	f1 = heapFloat[(r12+3)];
+	f2 = heapFloat[(r9+1)];
+	f3 = heapFloat[(r12+2)];
+	f4 = heapFloat[(r9)];
+	f5 = heapFloat[(r12+1)];
+	f0 = f0*f1;
+	f1 = f2*f3;
+	f2 = f4*f5;
+}
+	r9 = r10 << 2;
+	r11 = r10 << 2;
+	r9 = (r0 + r9)|0;
+	r12 = r10 << 2;
+	r11 = (r0 + r11)|0;
+	r9 = r9 >> 2;
+	r10 = r10 << 2;
+	r12 = (r0 + r12)|0;
+	r11 = r11 >> 2;
+	heapFloat[(r9+11)] = f2;
+	r9 = (r0 + r10)|0;
+	r10 = r12 >> 2;
+	heapFloat[(r11+12)] = f1;
+	r8 = (r8 + 2)|0;
+	r9 = r9 >> 2;
+	heapFloat[(r10+13)] = f0;
+	heap32[(r9+14)] = 0;
+if(!(r8 !=6)) //_LBB405_3
+{
+break _3;
+}
+}
+	r2 = heap32[(r1+2)];
+	r5 = r2 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+2)];
+	r0 = (r0 + 12)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r3;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r0 = heap32[(r1+1)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+6)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+else{
+	r0 = _2E_str6187;
+	r1 = _2E_str7188;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 280;
+	_assert(i7);
+}
+}
+
+function _ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+13)];
+if(!(r1 ==0)) //_LBB406_2
+{
+	r2 = heap32[(fp+1)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r2 >> 2;
+	r4 = heap32[(r3)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r1 = r_g0;
+	r4 = heap32[(r0+13)];
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r6 = r1 >> 2;
+	r5 = heap32[(r5+4)];
+	r6 = heap32[(r6+2)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r2;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+5)];
+	r0 = heap32[(r0+13)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r_g0;
+	heap32[(g0+3)] = 1213612625;
+	heap32[(g0+4)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+	return;
+}
+
+function _ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+14)];
+if(!(r1 ==0)) //_LBB407_2
+{
+	r2 = heap32[(fp+1)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+2)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r2 >> 2;
+	r4 = heap32[(r3)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r1 = r_g0;
+	r4 = heap32[(r0+14)];
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r6 = r1 >> 2;
+	r5 = heap32[(r5+3)];
+	r6 = heap32[(r6+2)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r2;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+5)];
+	r0 = heap32[(r0+14)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r_g0;
+	heap32[(g0+3)] = 1346456916;
+	heap32[(g0+4)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+}
+	return;
+}
+
+function _ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _2E_str10;
+	r1 = _2E_str5186;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 43;
+	_assert(i7);
+}
+
+function _ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+10)];
+	r3 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	r5 = heap32[(fp+1)];
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+	r6 = r5 >> 2;
+	heap32[(r6)] = r4;
+if(!(r4 ==0)) //_LBB409_2
+{
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+12)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+	r2 = r3 >> 2;
+	r3 = heap32[(r2+1)];
+	heap32[(r6+1)] = r3;
+	r3 = heap32[(r2+12)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+14)];
+	r5 = (r5 + 12)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	heap32[(r6+13)] = heap32[(r2+3)];
+	r3 = heap32[(r2+13)];
+	if(r3 ==0) //_LBB409_4
+{
+__label__ = 4;
+}
+else{
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+13)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r_g0 & 1;
+	if(r3 ==0) //_LBB409_5
+{
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+6)];
+	r4 = heap32[(r2+13)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r_g0;
+	if(r3 ==0) //_LBB409_7
+{
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+7)];
+	r4 = heap32[(r2+13)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	heap32[(r6+10)] = r_g0;
+	heap32[(r6+11)] = 0;
+	r3 = heap32[(r2+13)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+3)];
+	heap32[(g0)] = r3;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r3 = r_g0;
+	r4 = heap32[(r2+13)];
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r7 = r3 >> 2;
+	r5 = heap32[(r5+4)];
+	r7 = heap32[(r7+2)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r5 = heap32[(r1)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+5)];
+	r7 = heap32[(r2+13)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r_g0;
+	heap32[(g0+3)] = 1213612625;
+	heap32[(g0+4)] = r7;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+__label__ = 8;
+}
+else{
+	heap32[(r6+10)] = r3;
+	heap32[(r6+11)] = 0;
+__label__ = 8;
+}
+}
+else{
+__label__ = 4;
+}
+}
+if (__label__ == 4){
+	heap32[(r6+10)] = 0;
+	heap32[(r6+11)] = 0;
+}
+	r3 = heap32[(r2+14)];
+	if(r3 ==0) //_LBB409_10
+{
+__label__ = 10;
+}
+else{
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+13)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r_g0 & 2;
+	if(r3 ==0) //_LBB409_12
+{
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+6)];
+	r4 = heap32[(r2+14)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r_g0;
+	if(r3 ==0) //_LBB409_14
+{
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+7)];
+	r4 = heap32[(r2+14)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	heap32[(r6+12)] = r_g0;
+	r3 = heap32[(r2+14)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	heap32[(g0)] = r3;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r3 = r_g0;
+	r4 = heap32[(r2+14)];
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r6 = r3 >> 2;
+	r5 = heap32[(r5+3)];
+	r6 = heap32[(r6+2)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	r2 = heap32[(r2+14)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r_g0;
+	heap32[(g0+3)] = 1346456916;
+	heap32[(g0+4)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+__label__ = 11;
+}
+else{
+	heap32[(r6+12)] = r3;
+__label__ = 11;
+}
+}
+else{
+__label__ = 10;
+}
+}
+if (__label__ == 10){
+	heap32[(r6+12)] = 0;
+}
+	r0 = _2E_str8189;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN22btBvhTriangleMeshShape17buildOptimizedBvhEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+var __label__ = 0;
+	i7 = sp + -72;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+61];
+if(!(r1 ==0)) //_LBB410_3
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+13)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r1+13)];
+if(!(r1 ==0)) //_LBB410_3
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r3 = heap32[(r2)];
+	r3 = (r3 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r2)] = r3;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = gNumAlignedAllocs;
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+	r2 = (r2 + 1)|0;
+	heap32[(r1)] = r2;
+	heap32[(g0)] = 191;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB410_5
+{
+	r3 = 0;
+	r4 = (r2 + 4)|0;
+	r3 = (r3 - r4)|0;
+	r3 = r3 & 15;
+	r3 = (r2 + r3)|0;
+	r4 = (r3 + 4)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = r2;
+	r2 = r4;
+}
+	r3 = r2 >> 2;
+	r4 = 1;
+	heap32[(r3+13)] = 277;
+	heap8[r2+80] = r4;
+	heap32[(r3+19)] = 0;
+	heap32[(r3+17)] = 0;
+	heap32[(r3+18)] = 0;
+	heap8[r2+100] = r4;
+	heap32[(r3+24)] = 0;
+	heap32[(r3+22)] = 0;
+	heap32[(r3+23)] = 0;
+	heap8[r2+120] = r4;
+	heap32[(r3+29)] = 0;
+	heap32[(r3+27)] = 0;
+	heap32[(r3+28)] = 0;
+	heap8[r2+140] = r4;
+	heap32[(r3+34)] = 0;
+	heap32[(r3+32)] = 0;
+	heap32[(r3+33)] = 0;
+	heap32[(r3+36)] = 0;
+	heap8[r2+164] = r4;
+	heap32[(r3+40)] = 0;
+	heap32[(r3+38)] = 0;
+	heap32[(r3+39)] = 0;
+	heap32[(r3+42)] = 0;
+	heap32[(r3+1)] = -8388609;
+	heap32[(r3+2)] = -8388609;
+	heap32[(r3+3)] = -8388609;
+	heap32[(r3+4)] = 0;
+	heap32[(r3+5)] = 2139095039;
+	heap32[(r3+6)] = 2139095039;
+	r5 = _ZTV14btOptimizedBvh;
+	heap32[(r3+7)] = 2139095039;
+	r5 = (r5 + 8)|0;
+	heap32[(r3+8)] = 0;
+	r6 = r0 >> 2;
+	heap32[(r3)] = r5;
+	heap32[(r6+13)] = r2;
+	r5 = heap32[(r6+12)];
+	r7 = heapU8[r0+60];
+	heap8[r2+60] = r7;
+	if(r7 ==0) //_LBB410_11
+{
+	r6 = _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback;
+	r7 = sp + -24;
+	r6 = (r6 + 8)|0;
+	r8 = r7 >> 2;
+	r9 = (r2 + 64)|0;
+	heap32[(fp+-6)] = r6;
+	r6 = sp + -40;
+	heap32[(r8+1)] = r9;
+	r8 = r6 >> 2;
+	heap32[(fp+-10)] = -581039253;
+	heap32[(r8+1)] = -581039253;
+	heap32[(r8+2)] = -581039253;
+	r9 = sp + -56;
+	heap32[(r8+3)] = 0;
+	r8 = r9 >> 2;
+	heap32[(fp+-14)] = 1566444395;
+	heap32[(r8+1)] = 1566444395;
+	heap32[(r8+2)] = 1566444395;
+	r10 = r5 >> 2;
+	heap32[(r8+3)] = 0;
+	r8 = heap32[(r10)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r9;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r5 = heap32[(r3+17)];
+	r6 = heap32[(r3+22)];
+	r7 = r5 << 1;
+if(!(r6 >=r7)) //_LBB410_26
+{
+	r8 = heap32[(r3+23)];
+if(!(r8 >=r7)) //_LBB410_26
+{
+	if(r7 !=0) //_LBB410_15
+{
+	r8 = heap32[(r1)];
+	r8 = (r8 + 1)|0;
+	r9 = r5 << 7;
+	heap32[(r1)] = r8;
+	r8 = r9 | 19;
+	heap32[(g0)] = r8;
+	malloc(i7);
+	r8 = r_g0;
+	if(r8 !=0) //_LBB410_17
+{
+	r9 = 0;
+	r10 = (r8 + 4)|0;
+	r9 = (r9 - r10)|0;
+	r9 = r9 & 15;
+	r9 = (r8 + r9)|0;
+	r10 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r8;
+	r8 = r10;
+}
+}
+else{
+	r8 = 0;
+}
+if(!(r6 <1)) //_LBB410_21
+{
+	r9 = 0;
+_20: while(true){
+	r10 = heap32[(r3+24)];
+	r11 = (r8 + r9)|0;
+	r10 = (r10 + r9)|0;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = 64;
+	r6 = (r6 + -1)|0;
+	r9 = (r9 + 64)|0;
+	memcpy(i7);
+if(!(r6 !=0)) //_LBB410_20
+{
+break _20;
+}
+}
+}
+	r6 = heap32[(r3+24)];
+if(!(r6 ==0)) //_LBB410_25
+{
+	r9 = heapU8[r2+100];
+if(!(r9 ==0)) //_LBB410_24
+{
+	r9 = gNumAlignedFree;
+	r9 = r9 >> 2;
+	r10 = heap32[(r9)];
+	r10 = (r10 + 1)|0;
+	r6 = r6 >> 2;
+	heap32[(r9)] = r10;
+	r6 = heap32[(r6+-1)];
+	heap32[(g0)] = r6;
+	free(i7);
+}
+	heap32[(r3+24)] = 0;
+}
+	r6 = 1;
+	heap8[r2+100] = r6;
+	heap32[(r3+24)] = r8;
+	heap32[(r3+23)] = r7;
+}
+}
+	r6 = _ZTV31btInternalTriangleIndexCallback;
+	r6 = (r6 + 8)|0;
+	heap32[(r3+22)] = r7;
+	heap32[(fp+-6)] = r6;
+}
+else{
+	r7 = (r2 + 4)|0;
+	r8 = (r2 + 20)|0;
+	f0 =                        -1;
+	f1 = heapFloat[(r6+6)];
+	f2 = heapFloat[(r6+5)];
+	f3 = heapFloat[(r6+4)];
+	f3 = f3+f0;
+	f2 = f2+f0;
+	heapFloat[(r3+1)] = f3;
+	f0 = f1+f0;
+	heapFloat[(r3+2)] = f2;
+	heapFloat[(r3+3)] = f0;
+	heap32[(r3+4)] = 0;
+	f1 =                         1;
+	f4 = heapFloat[(r6+10)];
+	f5 = heapFloat[(r6+9)];
+	f6 = heapFloat[(r6+8)];
+	f6 = f6+f1;
+	f5 = f5+f1;
+	heapFloat[(r3+5)] = f6;
+	f1 = f4+f1;
+	heapFloat[(r3+6)] = f5;
+	heapFloat[(r3+7)] = f1;
+	f4 =                     65533;
+	f3 = f6-f3;
+	f2 = f5-f2;
+	f3 = f4/f3;
+	heap32[(r3+8)] = 0;
+	f0 = f1-f0;
+	f1 = f4/f2;
+	heapFloat[(r3+9)] = f3;
+	f0 = f4/f0;
+	heapFloat[(r3+10)] = f1;
+	heapFloat[(r3+11)] = f0;
+	r6 = _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback;
+	heap32[(r3+12)] = 0;
+	r9 = sp + -16;
+	r6 = (r6 + 8)|0;
+	heap8[r2+60] = r4;
+	r10 = r9 >> 2;
+	r11 = (r2 + 104)|0;
+	heap32[(fp+-4)] = r6;
+	heap32[(r10+1)] = r11;
+	r6 = r5 >> 2;
+	heap32[(r10+2)] = r2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+2)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r8;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r5 = heap32[(r3+27)];
+	r6 = heap32[(r3+32)];
+	r7 = r5 << 1;
+_31: do {
+if(!(r6 >=r7)) //_LBB410_10
+{
+	r8 = (r2 + 124)|0;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r7;
+	r8 = (r7 - r6)|0;
+	r6 = r6 << 4;
+	_ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7);
+_33: while(true){
+	r9 = heap32[(r3+34)];
+	r9 = (r9 + r6)|0;
+	r9 = r9 >> 2;
+	r8 = (r8 + -1)|0;
+	r6 = (r6 + 16)|0;
+	heap32[(r9)] = 0;
+	heap32[(r9+1)] = 0;
+	heap32[(r9+2)] = 0;
+	heap32[(r9+3)] = 0;
+if(!(r8 !=0)) //_LBB410_9
+{
+break _31;
+}
+}
+}
+} while(0);
+	r6 = _ZTV31btInternalTriangleIndexCallback;
+	r6 = (r6 + 8)|0;
+	heap32[(r3+32)] = r7;
+	heap32[(fp+-4)] = r6;
+}
+	heap32[(r3+14)] = 0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r5;
+	_ZN14btQuantizedBvh9buildTreeEii(i7);
+	r5 = heapU8[r2+60];
+if(!(r5 ==0)) //_LBB410_41
+{
+	r5 = heap32[(r3+38)];
+if(!(r5 !=0)) //_LBB410_41
+{
+	r6 = heap32[(r3+39)];
+	if(r6 !=r5) //_LBB410_31
+{
+__label__ = 29;
+}
+else{
+	if(r6 <1) //_LBB410_32
+{
+	r6 = heap32[(r1)];
+	r6 = (r6 + 1)|0;
+	heap32[(r1)] = r6;
+	heap32[(g0)] = 51;
+	malloc(i7);
+	r1 = r_g0;
+	if(r1 !=0) //_LBB410_34
+{
+	r6 = 0;
+	r7 = (r1 + 4)|0;
+	r6 = (r6 - r7)|0;
+	r6 = r6 & 15;
+	r6 = (r1 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r1;
+	r1 = r7;
+}
+	r6 = heap32[(r3+40)];
+if(!(r6 ==0)) //_LBB410_39
+{
+	r7 = heapU8[r2+164];
+if(!(r7 ==0)) //_LBB410_38
+{
+	r7 = gNumAlignedFree;
+	r7 = r7 >> 2;
+	r8 = heap32[(r7)];
+	r8 = (r8 + 1)|0;
+	r6 = r6 >> 2;
+	heap32[(r7)] = r8;
+	r6 = heap32[(r6+-1)];
+	heap32[(g0)] = r6;
+	free(i7);
+}
+	heap32[(r3+40)] = 0;
+}
+	r6 = 1;
+	heap8[r2+164] = r6;
+	heap32[(r3+40)] = r1;
+	heap32[(r3+39)] = 1;
+	r6 = heap32[(r3+38)];
+	r6 = (r6 + 1)|0;
+__label__ = 37;
+}
+else{
+__label__ = 29;
+}
+}
+if (__label__ == 29){
+	r1 = heap32[(r3+40)];
+	r6 = r4;
+}
+	heap32[(r3+38)] = r6;
+	r6 = heap32[(r3+34)];
+	r7 = heapU16[(r6)>>1];
+	r5 = r5 << 5;
+	heap16[(r1+r5)>>1] = r7;
+	r1 = (r1 + r5)|0;
+	r5 = heapU16[(r6+2)>>1];
+	heap16[(r1+2)>>1] = r5;
+	r5 = heapU16[(r6+4)>>1];
+	heap16[(r1+4)>>1] = r5;
+	r5 = heapU16[(r6+6)>>1];
+	heap16[(r1+6)>>1] = r5;
+	r5 = heapU16[(r6+8)>>1];
+	heap16[(r1+8)>>1] = r5;
+	r5 = heapU16[(r6+10)>>1];
+	r6 = r1 >> 2;
+	heap16[(r1+10)>>1] = r5;
+	heap32[(r6+3)] = 0;
+	r1 = heap32[(r3+34)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+3)];
+	r5 = 0;
+	r5 = (r5 - r1)|0;
+	r1 = r1 < 0 ? r5 : r4;
+	heap32[(r6+4)] = r1;
+}
+}
+	r1 = heap32[(r3+38)];
+	heap32[(r3+42)] = r1;
+	r1 = heap32[(r3+29)];
+if(!(r1 ==0)) //_LBB410_45
+{
+	r4 = heapU8[r2+120];
+if(!(r4 ==0)) //_LBB410_44
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r4)] = r5;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r3+29)] = 0;
+}
+	r1 = 1;
+	heap8[r2+120] = r1;
+	heap32[(r3+29)] = 0;
+	heap32[(r3+27)] = 0;
+	heap32[(r3+28)] = 0;
+	r4 = heap32[(r3+19)];
+if(!(r4 ==0)) //_LBB410_49
+{
+	r5 = heapU8[r2+80];
+if(!(r5 ==0)) //_LBB410_48
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r6 = heap32[(r5)];
+	r6 = (r6 + 1)|0;
+	r4 = r4 >> 2;
+	heap32[(r5)] = r6;
+	r4 = heap32[(r4+-1)];
+	heap32[(g0)] = r4;
+	free(i7);
+}
+	heap32[(r3+19)] = 0;
+}
+	heap8[r2+80] = r1;
+	heap32[(r3+19)] = 0;
+	heap32[(r3+17)] = 0;
+	heap32[(r3+18)] = 0;
+	heap8[r0+61] = r1;
+	return;
+}
+
+function _ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+7)];
+	heap32[(g0)] = r0;
+	r3 = heap32[(fp+1)];
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0 >> 2;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r3)];
+	f1 = heapFloat[(r2)];
+	f2 = heapFloat[(r2+1)];
+	f3 = heapFloat[(r3+1)];
+	f1 = f1-f0;
+	f2 = f2-f3;
+	f3 = heapFloat[(r2+2)];
+	f4 = heapFloat[(r3+2)];
+	f3 = f3-f4;
+	f1 = f1*f1;
+	f2 = f2*f2;
+	f1 = f1+f2;
+	f2 = f3*f3;
+	f1 = f1+f2;
+	f2 =   1.1920928955078125e-007;
+if(!(f1 <=f2)) //_LBB411_2
+{
+	r1 = heap32[(r1+12)];
+	r1 = r1 >> 2;
+	heapFloat[(r1+1)] = f0;
+	heap32[(r1+2)] = heap32[(r3+1)];
+	heap32[(r1+3)] = heap32[(r3+2)];
+	heap32[(r1+4)] = heap32[(r3+3)];
+	heap32[(g0)] = r0;
+	_ZN19btTriangleMeshShape15recalcLocalAabbEv(i7);
+	heap32[(g0)] = r0;
+	_ZN22btBvhTriangleMeshShape17buildOptimizedBvhEv(i7);
+}
+	return;
+}
+
+function _ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -80;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback;
+	r2 = sp + -64;
+	r3 = heap32[(r0+12)];
+	r1 = (r1 + 8)|0;
+	r4 = r2 >> 2;
+	heap32[(fp+-16)] = r1;
+	r1 = heap32[(fp+1)];
+	heap32[(r4+1)] = r3;
+	heap32[(r4+2)] = r1;
+	r0 = heap32[(r0+13)];
+	r1 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r3;
+	_ZNK14btQuantizedBvh26reportAabbOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_(i7);
+	return;
+}
+
+function _ZN22btBvhTriangleMeshShapeD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV22btBvhTriangleMeshShape;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+61];
+	if(r1 ==0) //_LBB413_3
+{
+__label__ = 3;
+}
+else{
+	r1 = heap32[(r2+13)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+13)];
+	if(r1 ==0) //_LBB413_3
+{
+__label__ = 3;
+}
+else{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r3 = heap32[(r0)];
+	r3 = (r3 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r0)] = r3;
+	r0 = heap32[(r1+-1)];
+	r1 = _ZTV14btConcaveShape;
+	heap32[(g0)] = r0;
+	r0 = (r1 + 8)|0;
+	free(i7);
+	heap32[(r2)] = r0;
+__label__ = 4;
+}
+}
+if (__label__ == 3){
+	r1 = _ZTV14btConcaveShape;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	if(r0 ==0) //_LBB413_5
+{
+__label__ = 5;
+}
+else{
+__label__ = 4;
+}
+}
+if (__label__ == 4){
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZN22btBvhTriangleMeshShapeD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV22btBvhTriangleMeshShape;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r0 = heapU8[r0+61];
+if(!(r0 ==0)) //_LBB414_3
+{
+	r0 = heap32[(r2+13)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = heap32[(r2+13)];
+if(!(r0 ==0)) //_LBB414_3
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+}
+	r0 = _ZTV14btConcaveShape;
+	r0 = (r0 + 8)|0;
+	heap32[(r2)] = r0;
+	return;
+}
+
+function _ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN14btCapsuleShape9setMarginEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f0 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f1 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f2 = f_g0;
+	f3 = heapFloat[(r1+9)];
+	f4 = heapFloat[(r1+8)];
+	f5 = heapFloat[(r1+7)];
+	heap32[(r1+11)] = heap32[(fp+1)];
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f6 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f7 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	f2 = f5+f2;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f1 = f4+f1;
+	f2 = f2-f_g0;
+	f0 = f3+f0;
+	f1 = f1-f7;
+	heapFloat[(r1+7)] = f2;
+	f0 = f0-f6;
+	heapFloat[(r1+8)] = f1;
+	heapFloat[(r1+9)] = f0;
+	heap32[(r1+10)] = 0;
+	return;
+}
+
+function _ZNK14btCapsuleShape7getNameEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _2E_str194;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+13)];
+	r3 = (r2 + 2)|0;
+	r3 = (r3 % 3)|0;
+	r4 = (r0 + 28)|0;
+	r3 = r3 << 2;
+	r3 = (r4 + r3)|0;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r3)];
+	r3 = sp + -16;
+	r5 = r3 >> 2;
+	heapFloat[(fp+-4)] = f0;
+	r2 = r2 << 2;
+	heapFloat[(r5+1)] = f0;
+	r4 = (r4 + r2)|0;
+	heapFloat[(r5+2)] = f0;
+	r4 = r4 >> 2;
+	heap32[(r5+3)] = 0;
+	r2 = (r3 + r2)|0;
+	f1 = heapFloat[(r4)];
+	r2 = r2 >> 2;
+	f0 = f0+f1;
+	heapFloat[(r2)] = f0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f0 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f1 = f_g0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	f3 = heapFloat[(fp+-4)];
+	f2 = f3+f_g0;
+	heapFloat[(fp+-4)] = f2;
+	f3 = heapFloat[(r5+1)];
+	f1 = f3+f1;
+	heapFloat[(r5+1)] = f1;
+	f3 = heapFloat[(r5+2)];
+	r0 = heap32[(fp+1)];
+	f0 = f3+f0;
+	r0 = r0 >> 2;
+	heapFloat[(r5+2)] = f0;
+	f3 = heapFloat[(r0+10)];
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp+3)];
+	f4 =                         0;
+	if(f3 <f4) //_LBB418_2
+{
+	f3 = -f3;
+}
+	f5 = heapFloat[(r0+9)];
+	if(f5 <f4) //_LBB418_5
+{
+	f5 = -f5;
+}
+	f6 = heapFloat[(r0+8)];
+	if(f6 <f4) //_LBB418_8
+{
+	f6 = -f6;
+}
+	f7 = heapFloat[(r0+6)];
+	if(f7 <f4) //_LBB418_11
+{
+	f7 = -f7;
+}
+	f8 = heapFloat[(r0+5)];
+	if(f8 <f4) //_LBB418_14
+{
+	f8 = -f8;
+}
+	f9 = heapFloat[(r0+4)];
+	if(f9 <f4) //_LBB418_17
+{
+	f9 = -f9;
+}
+	f10 = heapFloat[(r0+2)];
+	if(f10 <f4) //_LBB418_20
+{
+	f10 = -f10;
+}
+	f11 = heapFloat[(r0+1)];
+	if(f11 <f4) //_LBB418_23
+{
+	f11 = -f11;
+}
+	f12 = heapFloat[(r0)];
+	if(f12 <f4) //_LBB418_26
+{
+	f12 = -f12;
+}
+	f4 = f12*f2;
+	f11 = f11*f1;
+	f9 = f9*f2;
+	f8 = f8*f1;
+	f4 = f4+f11;
+	f10 = f10*f0;
+	f2 = f6*f2;
+	f1 = f5*f1;
+	f5 = f9+f8;
+	f6 = f7*f0;
+	f4 = f4+f10;
+	f7 = heapFloat[(r0+12)];
+	f8 = heapFloat[(r0+13)];
+	f9 = heapFloat[(r0+14)];
+	f5 = f5+f6;
+	r0 = r1 >> 2;
+	f1 = f2+f1;
+	f0 = f3*f0;
+	f2 = f7-f4;
+	f0 = f1+f0;
+	f1 = f8-f5;
+	heapFloat[(r0)] = f2;
+	f2 = f9-f0;
+	heapFloat[(r0+1)] = f1;
+	heapFloat[(r0+2)] = f2;
+	r1 = r2 >> 2;
+	f1 = f7+f4;
+	heap32[(r0+3)] = 0;
+	f2 = f8+f5;
+	heapFloat[(r1)] = f1;
+	f0 = f9+f0;
+	heapFloat[(r1+1)] = f2;
+	heapFloat[(r1+2)] = f0;
+	heap32[(r1+3)] = 0;
+	return;
+}
+
+function _ZNK14btCapsuleShape28calculateSerializeBufferSizeEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 60;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+3)];
+if(!(r0 <1)) //_LBB420_9
+{
+	r1 = heap32[(fp)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+13)];
+	r4 = (r3 + 2)|0;
+	r4 = (r4 % 3)|0;
+	r4 = r4 << 2;
+	r4 = (r1 + r4)|0;
+	r4 = r4 >> 2;
+	r5 = heap32[(fp+1)];
+	r6 = heap32[(fp+2)];
+	f0 = heapFloat[(r4+7)];
+	r0 = (r0 + -1)|0;
+	r4 = (r5 + 8)|0;
+	r5 = (r6 + 8)|0;
+_3: while(true){
+	r6 = sp + -16;
+	heap32[(fp+-4)] = 0;
+	r7 = r6 >> 2;
+	r3 = r3 << 2;
+	heap32[(r7+1)] = 0;
+	r6 = (r6 + r3)|0;
+	r3 = (r1 + r3)|0;
+	heap32[(r7+2)] = 0;
+	r6 = r6 >> 2;
+	r3 = r3 >> 2;
+	heap32[(r7+3)] = 0;
+	heap32[(r6)] = heap32[(r3+7)];
+	r3 = heap32[(r2)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+11)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r4 >> 2;
+	f2 = heapFloat[(r3+-1)];
+	f3 = heapFloat[(r2+4)];
+	f4 = heapFloat[(r3+-2)];
+	f5 = heapFloat[(r2+3)];
+	f6 = heapFloat[(r3)];
+	f7 = heapFloat[(r2+5)];
+	f3 = f2*f3;
+	f5 = f4*f5;
+	f7 = f6*f7;
+	f8 = heapFloat[(r7+1)];
+	f3 = f3*f0;
+	f9 = heapFloat[(fp+-4)];
+	f5 = f5*f0;
+	f10 = heapFloat[(r7+2)];
+	f7 = f7*f0;
+	f3 = f8+f3;
+	f8 = f2*f_g0;
+	f5 = f9+f5;
+	f9 = f4*f_g0;
+	f3 = f3-f8;
+	f5 = f5-f9;
+	f7 = f10+f7;
+	f1 = f6*f_g0;
+	f1 = f7-f1;
+	f4 = f4*f5;
+	f2 = f2*f3;
+	f2 = f4+f2;
+	f4 = f6*f1;
+	f2 = f2+f4;
+	f4 =       -999999984306749440;
+	if(f2 >f4) //_LBB420_4
+{
+	r6 = r5 >> 2;
+	heapFloat[(r6+-2)] = f5;
+	heapFloat[(r6+-1)] = f3;
+	heapFloat[(r6)] = f1;
+	heap32[(r6+1)] = 0;
+	f4 = f2;
+}
+	r6 = sp + -32;
+	heap32[(fp+-8)] = 0;
+	r7 = r6 >> 2;
+	heap32[(r7+1)] = 0;
+	heap32[(r7+2)] = 0;
+	heap32[(r7+3)] = 0;
+	r8 = heap32[(r2+13)];
+	r8 = r8 << 2;
+	r9 = (r1 + r8)|0;
+	r9 = r9 >> 2;
+	f1 = heapFloat[(r9+7)];
+	r6 = (r6 + r8)|0;
+	r6 = r6 >> 2;
+	f1 = -f1;
+	heapFloat[(r6)] = f1;
+	r6 = heap32[(r2)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+11)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	f2 = heapFloat[(r3+-1)];
+	f3 = heapFloat[(r2+4)];
+	f5 = heapFloat[(r3+-2)];
+	f6 = heapFloat[(r2+3)];
+	f7 = heapFloat[(r3)];
+	f8 = heapFloat[(r2+5)];
+	f3 = f2*f3;
+	f6 = f5*f6;
+	f8 = f7*f8;
+	f9 = heapFloat[(r7+1)];
+	f3 = f3*f0;
+	f10 = heapFloat[(fp+-8)];
+	f6 = f6*f0;
+	f11 = heapFloat[(r7+2)];
+	f8 = f8*f0;
+	f3 = f9+f3;
+	f9 = f2*f_g0;
+	f6 = f10+f6;
+	f10 = f5*f_g0;
+	f3 = f3-f9;
+	f6 = f6-f10;
+	f8 = f11+f8;
+	f1 = f7*f_g0;
+	f1 = f8-f1;
+	f5 = f5*f6;
+	f2 = f2*f3;
+	f2 = f5+f2;
+	f5 = f7*f1;
+	f2 = f2+f5;
+if(!(f2 <=f4)) //_LBB420_7
+{
+	r3 = r5 >> 2;
+	heapFloat[(r3+-2)] = f6;
+	heapFloat[(r3+-1)] = f3;
+	heapFloat[(r3)] = f1;
+	heap32[(r3+1)] = 0;
+}
+	if(r0 ==0) //_LBB420_9
+{
+break _3;
+}
+else{
+	r3 = heap32[(r2+13)];
+	r0 = (r0 + -1)|0;
+	r4 = (r4 + 16)|0;
+	r5 = (r5 + 16)|0;
+continue _3;
+}
+}
+}
+	return;
+}
+
+function _ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1+13)];
+	r2 = (r1 + 2)|0;
+	r2 = (r2 % 3)|0;
+	r0 = (r0 + 28)|0;
+	r2 = r2 << 2;
+	r2 = (r0 + r2)|0;
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r2)];
+	r2 = sp + -16;
+	r3 = r2 >> 2;
+	heapFloat[(fp+-4)] = f0;
+	r1 = r1 << 2;
+	heapFloat[(r3+1)] = f0;
+	r2 = (r2 + r1)|0;
+	r0 = (r0 + r1)|0;
+	heapFloat[(r3+2)] = f0;
+	r1 = r2 >> 2;
+	heap32[(r3+3)] = 0;
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r0)];
+	f0 = f0+f1;
+	heapFloat[(r1)] = f0;
+	f0 =      0.039999999105930328;
+	f1 = heapFloat[(r3+1)];
+	f2 = heapFloat[(r3+2)];
+	f3 = heapFloat[(fp+-4)];
+	f1 = f1+f0;
+	f2 = f2+f0;
+	f0 = f3+f0;
+	f1 = f1+f1;
+	f2 = f2+f2;
+	f0 = f0+f0;
+	f1 = f1*f1;
+	f2 = f2*f2;
+	f3 = heapFloat[(fp+1)];
+	f4 =      0.083333328366279602;
+	f0 = f0*f0;
+	r0 = heap32[(fp+2)];
+	f5 = f1+f2;
+	f3 = f3*f4;
+	f2 = f0+f2;
+	r0 = r0 >> 2;
+	f4 = f5*f3;
+	f0 = f0+f1;
+	f1 = f2*f3;
+	heapFloat[(r0)] = f4;
+	f0 = f0*f3;
+	heapFloat[(r0+1)] = f1;
+	heapFloat[(r0+2)] = f0;
+	return;
+}
+
+function _ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _2E_str10;
+	r1 = _2E_str4198;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 110;
+	_assert(i7);
+}
+
+function _ZNK14btCapsuleShape9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+10)];
+	r3 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	r5 = heap32[(fp+1)];
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r4;
+if(!(r4 ==0)) //_LBB423_2
+{
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+12)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+	r0 = r3 >> 2;
+	r1 = heap32[(r0+1)];
+	heap32[(r5+1)] = r1;
+	heap32[(r5+7)] = heap32[(r0+7)];
+	heap32[(r5+8)] = heap32[(r0+8)];
+	heap32[(r5+9)] = heap32[(r0+9)];
+	heap32[(r5+10)] = heap32[(r0+10)];
+	heap32[(r5+3)] = heap32[(r0+3)];
+	heap32[(r5+4)] = heap32[(r0+4)];
+	heap32[(r5+5)] = heap32[(r0+5)];
+	heap32[(r5+6)] = heap32[(r0+6)];
+	heap32[(r5+11)] = heap32[(r0+11)];
+	r0 = heap32[(r0+13)];
+	heap32[(r5+13)] = r0;
+	r0 = _2E_str6199;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN14btCapsuleShape15setLocalScalingERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f0 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f1 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f2 = f_g0;
+	r0 = heap32[(fp+1)];
+	f3 = heapFloat[(r1+9)];
+	f4 = heapFloat[(r1+8)];
+	f5 = heapFloat[(r1+7)];
+	r0 = r0 >> 2;
+	f3 = f3+f0;
+	f6 = heapFloat[(r1+5)];
+	f4 = f4+f1;
+	f7 = heapFloat[(r1+4)];
+	f5 = f5+f2;
+	f8 = heapFloat[(r1+3)];
+	f9 = heapFloat[(r0+2)];
+	f3 = f3/f6;
+	f4 = f4/f7;
+	f5 = f5/f8;
+	f6 =                         0;
+	if(f9 <f6) //_LBB424_2
+{
+	f9 = -f9;
+}
+	f7 = heapFloat[(r0+1)];
+	if(f7 <f6) //_LBB424_5
+{
+	f7 = -f7;
+}
+	f8 = heapFloat[(r0)];
+	if(f8 <f6) //_LBB424_8
+{
+	f8 = -f8;
+}
+	heapFloat[(r1+3)] = f8;
+	heapFloat[(r1+4)] = f7;
+	heapFloat[(r1+5)] = f9;
+	f5 = f5*f8;
+	f4 = f4*f7;
+	f2 = f5-f2;
+	heap32[(r1+6)] = 0;
+	f3 = f3*f9;
+	f1 = f4-f1;
+	heapFloat[(r1+7)] = f2;
+	f0 = f3-f0;
+	heapFloat[(r1+8)] = f1;
+	heapFloat[(r1+9)] = f0;
+	heap32[(r1+10)] = 0;
+	return;
+}
+
+function _ZN14btCapsuleShapeD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13btConvexShape;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+if(!(r0 ==0)) //_LBB425_2
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZN14btCapsuleShapeD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13btConvexShape;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+	heap32[(r0+1)] = 0;
+	r1 = heap32[(fp+2)];
+	heap32[(r0+2)] = 0;
+	r1 = r1 >> 2;
+	heap32[(r0+3)] = 0;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r1+1)];
+	f2 = heapFloat[(r1+2)];
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	r1 = heap32[(fp+1)];
+	f4 =   9.9999997473787516e-005;
+	if(f3 >=f4) //_LBB427_2
+{
+	heapFloat[(g0)] = f3;
+	f3 =                         1;
+	sqrtf(i7);
+	f3 = f3/f_g0;
+	f0 = f0*f3;
+	f1 = f1*f3;
+	f2 = f2*f3;
+}
+else{
+	f0 =                         1;
+	f1 =                         0;
+	f2 = f1;
+}
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+13)];
+	r4 = (r3 + 2)|0;
+	r4 = (r4 % 3)|0;
+	r5 = (r1 + 28)|0;
+	r4 = r4 << 2;
+	r4 = (r5 + r4)|0;
+	r4 = r4 >> 2;
+	f3 = heapFloat[(r4)];
+	r4 = sp + -16;
+	heap32[(fp+-4)] = 0;
+	r6 = r4 >> 2;
+	r3 = r3 << 2;
+	heap32[(r6+1)] = 0;
+	r4 = (r4 + r3)|0;
+	r3 = (r5 + r3)|0;
+	heap32[(r6+2)] = 0;
+	r4 = r4 >> 2;
+	r3 = r3 >> 2;
+	heap32[(r6+3)] = 0;
+	heap32[(r4)] = heap32[(r3)];
+	r3 = heap32[(r2)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+11)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	f5 = heapFloat[(r2+4)];
+	f6 = heapFloat[(r2+3)];
+	f7 = heapFloat[(r2+5)];
+	f5 = f1*f5;
+	f6 = f0*f6;
+	f7 = f2*f7;
+	f8 = heapFloat[(r6+1)];
+	f5 = f5*f3;
+	f9 = heapFloat[(fp+-4)];
+	f6 = f6*f3;
+	f10 = heapFloat[(r6+2)];
+	f7 = f7*f3;
+	f5 = f8+f5;
+	f8 = f1*f_g0;
+	f6 = f9+f6;
+	f9 = f0*f_g0;
+	f5 = f5-f8;
+	f6 = f6-f9;
+	f7 = f10+f7;
+	f4 = f2*f_g0;
+	f4 = f7-f4;
+	f7 = f0*f6;
+	f8 = f1*f5;
+	f7 = f7+f8;
+	f8 = f2*f4;
+	f7 = f7+f8;
+	f8 =       -999999984306749440;
+	if(f7 >f8) //_LBB427_5
+{
+	heapFloat[(r0)] = f6;
+	heapFloat[(r0+1)] = f5;
+	heapFloat[(r0+2)] = f4;
+	heap32[(r0+3)] = 0;
+	f8 = f7;
+}
+	r3 = sp + -32;
+	heap32[(fp+-8)] = 0;
+	r4 = r3 >> 2;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+	heap32[(r4+3)] = 0;
+	r5 = heap32[(r2+13)];
+	r5 = r5 << 2;
+	r6 = (r1 + r5)|0;
+	r6 = r6 >> 2;
+	f4 = heapFloat[(r6+7)];
+	r3 = (r3 + r5)|0;
+	r3 = r3 >> 2;
+	f4 = -f4;
+	heapFloat[(r3)] = f4;
+	r3 = heap32[(r2)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+11)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	f5 = heapFloat[(r2+4)];
+	f6 = heapFloat[(r2+3)];
+	f7 = heapFloat[(r2+5)];
+	f5 = f1*f5;
+	f6 = f0*f6;
+	f7 = f2*f7;
+	f9 = heapFloat[(r4+1)];
+	f5 = f5*f3;
+	f10 = heapFloat[(fp+-8)];
+	f6 = f6*f3;
+	f11 = heapFloat[(r4+2)];
+	f3 = f7*f3;
+	f5 = f9+f5;
+	f7 = f1*f_g0;
+	f6 = f10+f6;
+	f9 = f0*f_g0;
+	f5 = f5-f7;
+	f6 = f6-f9;
+	f3 = f11+f3;
+	f4 = f2*f_g0;
+	f3 = f3-f4;
+	f0 = f0*f6;
+	f1 = f1*f5;
+	f0 = f0+f1;
+	f1 = f2*f3;
+	f0 = f0+f1;
+if(!(f0 <=f8)) //_LBB427_8
+{
+	heapFloat[(r0)] = f6;
+	heapFloat[(r0+1)] = f5;
+	heapFloat[(r0+2)] = f3;
+	heap32[(r0+3)] = 0;
+}
+	return;
+}
+
+function _ZNK16btCollisionShape28calculateSerializeBufferSizeEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 12;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK16btCollisionShape27getContactBreakingThresholdEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	f1 = heapFloat[(fp+1)];
+	f0 = f_g0*f1;
+	f_g0 = f0;
+	return;
+}
+
+function _ZNK16btCollisionShape9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+10)];
+	r3 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	r5 = heap32[(fp+1)];
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r4;
+if(!(r4 ==0)) //_LBB430_2
+{
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+12)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+	r0 = r3 >> 2;
+	r0 = heap32[(r0+1)];
+	heap32[(r5+1)] = r0;
+	r0 = _2E_str200;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r0;
+	r3 = heap32[(fp+1)];
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r4 = r3 >> 2;
+	r5 = heap32[(r4)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+4)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r2 = r_g0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r5 = r2 >> 2;
+	r1 = heap32[(r1+13)];
+	r5 = heap32[(r5+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+5)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r_g0;
+	heap32[(g0+3)] = 1346455635;
+	heap32[(g0+4)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	return;
+}
+
+function _ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -112;var g0 = i7>>2; // save stack
+	r0 = sp + -64;
+	r1 = r0 >> 2;
+	heap32[(fp+-16)] = 1065353216;
+	heap32[(r1+1)] = 0;
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = 0;
+	heap32[(r1+4)] = 0;
+	heap32[(r1+5)] = 1065353216;
+	heap32[(r1+6)] = 0;
+	heap32[(r1+7)] = 0;
+	heap32[(r1+8)] = 0;
+	heap32[(r1+9)] = 0;
+	heap32[(r1+10)] = 1065353216;
+	heap32[(r1+11)] = 0;
+	heap32[(r1+12)] = 0;
+	heap32[(r1+13)] = 0;
+	r2 = heap32[(fp)];
+	heap32[(r1+14)] = 0;
+	r3 = r2 >> 2;
+	heap32[(r1+15)] = 0;
+	r1 = heap32[(r3)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+2)];
+	r3 = sp + -96;
+	r4 = sp + -80;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r3;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = r3 >> 2;
+	r1 = r4 >> 2;
+	f0 = heapFloat[(r0+1)];
+	f1 = heapFloat[(r1+1)];
+	f2 = heapFloat[(fp+-24)];
+	f3 = heapFloat[(fp+-20)];
+	f2 = f2-f3;
+	f0 = f0-f1;
+	f1 = heapFloat[(r0+2)];
+	f3 = heapFloat[(r1+2)];
+	f1 = f1-f3;
+	f2 = f2*f2;
+	f0 = f0*f0;
+	f0 = f2+f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	r2 = heap32[(fp+2)];
+	f0 =                       0.5;
+	sqrtf(i7);
+	r2 = r2 >> 2;
+	f1 = f_g0*f0;
+	heapFloat[(r2)] = f1;
+	f1 = heapFloat[(fp+-20)];
+	f2 = heapFloat[(fp+-24)];
+	r2 = heap32[(fp+1)];
+	f1 = f1+f2;
+	f2 = heapFloat[(r1+2)];
+	f3 = heapFloat[(r0+2)];
+	f4 = heapFloat[(r1+1)];
+	f5 = heapFloat[(r0+1)];
+	f4 = f4+f5;
+	r0 = r2 >> 2;
+	f1 = f1*f0;
+	f2 = f2+f3;
+	f3 = f4*f0;
+	heapFloat[(r0)] = f1;
+	f0 = f2*f0;
+	heapFloat[(r0+1)] = f3;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZNK16btCollisionShape20getAngularMotionDiscEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+3)];
+	r2 = sp + -16;
+	r3 = sp + -20;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = r2 >> 2;
+	f0 = heapFloat[(fp+-4)];
+	f1 = heapFloat[(r0+1)];
+	f2 = heapFloat[(r0+2)];
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f1 = heapFloat[(fp+-5)];
+	f0 = f_g0+f1;
+	f_g0 = f0;
+	return;
+}
+
+function _ZNK16btCollisionShape21calculateTemporalAabbERK11btTransformRK9btVector3S5_fRS3_S6_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+2)];
+	r3 = heap32[(fp+5)];
+	r4 = heap32[(fp+4)];
+	r5 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r3;
+	r5 = heap32[(fp+2)];
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r3 >> 2;
+	r3 = r4 >> 2;
+	r4 = r5 >> 2;
+	f0 = heapFloat[(r4)];
+	r5 = heap32[(fp+3)];
+	f1 = heapFloat[(r2)];
+	f2 = heapFloat[(r2+1)];
+	f3 = heapFloat[(r2+2)];
+	f4 = heapFloat[(r3)];
+	f5 = heapFloat[(r3+1)];
+	f6 = heapFloat[(r3+2)];
+	f7 = heapFloat[(r4+2)];
+	f8 = heapFloat[(r4+1)];
+	f9 =                         0;
+	if(f0 <=f9) //_LBB434_2
+{
+	f4 = f0+f4;
+}
+else{
+	f1 = f0+f1;
+}
+	if(f8 <=f9) //_LBB434_5
+{
+	f5 = f8+f5;
+}
+else{
+	f2 = f8+f2;
+}
+	if(f7 <=f9) //_LBB434_8
+{
+	f6 = f7+f6;
+}
+else{
+	f3 = f7+f3;
+}
+	r4 = r5 >> 2;
+	f0 = heapFloat[(r4)];
+	f7 = heapFloat[(r4+1)];
+	f8 = heapFloat[(r4+2)];
+	f0 = f0*f0;
+	f7 = f7*f7;
+	f0 = f0+f7;
+	f7 = f8*f8;
+	f0 = f0+f7;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f0 = f_g0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	heapFloat[(r3)] = f4;
+	heapFloat[(r3+1)] = f5;
+	heapFloat[(r3+2)] = f6;
+	heap32[(r3+3)] = 0;
+	heapFloat[(r2)] = f1;
+	heapFloat[(r2+1)] = f2;
+	heapFloat[(r2+2)] = f3;
+	heap32[(r2+3)] = 0;
+	f0 = f0*f_g0;
+	f1 = heapFloat[(r3)];
+	f1 = f1-f0;
+	heapFloat[(r3)] = f1;
+	f1 = heapFloat[(r3+1)];
+	f1 = f1-f0;
+	heapFloat[(r3+1)] = f1;
+	f1 = heapFloat[(r3+2)];
+	f1 = f1-f0;
+	heapFloat[(r3+2)] = f1;
+	f1 = heapFloat[(r2)];
+	f1 = f1+f0;
+	heapFloat[(r2)] = f1;
+	f1 = heapFloat[(r2+1)];
+	f1 = f1+f0;
+	heapFloat[(r2+1)] = f1;
+	f1 = heapFloat[(r2+2)];
+	f0 = f1+f0;
+	heapFloat[(r2+2)] = f0;
+	return;
+}
+
+function _ZN14btConcaveShapeD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV14btConcaveShape;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN14btConcaveShapeD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV14btConcaveShape;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZNK17btConvexHullShape7getNameEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _2E_str219;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK17btConvexHullShape28calculateSerializeBufferSizeEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 68;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK17btConvexHullShape12getNumPlanesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK17btConvexHullShape9getVertexEiR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(r0+25)];
+	r1 = r1 << 4;
+	r1 = (r2 + r1)|0;
+	r1 = r1 >> 2;
+	r2 = heap32[(fp+2)];
+	f0 = heapFloat[(r1+2)];
+	f1 = heapFloat[(r0+5)];
+	f2 = heapFloat[(r1+1)];
+	f3 = heapFloat[(r0+4)];
+	f4 = heapFloat[(r1)];
+	f5 = heapFloat[(r0+3)];
+	r0 = r2 >> 2;
+	f4 = f4*f5;
+	f2 = f2*f3;
+	heapFloat[(r0)] = f4;
+	f0 = f0*f1;
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZNK17btConvexHullShape7getEdgeEiR9btVector3S1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(r0+23)];
+	r3 = (r1 % r2)|0;
+	r4 = heap32[(r0+25)];
+	r3 = r3 << 4;
+	r3 = (r4 + r3)|0;
+	r3 = r3 >> 2;
+	r4 = heap32[(fp+2)];
+	f0 = heapFloat[(r3+2)];
+	f1 = heapFloat[(r0+5)];
+	f2 = heapFloat[(r3+1)];
+	f3 = heapFloat[(r0+4)];
+	f4 = heapFloat[(r3)];
+	f5 = heapFloat[(r0+3)];
+	r3 = r4 >> 2;
+	f4 = f4*f5;
+	f2 = f2*f3;
+	heapFloat[(r3)] = f4;
+	f0 = f0*f1;
+	heapFloat[(r3+1)] = f2;
+	r1 = (r1 + 1)|0;
+	heapFloat[(r3+2)] = f0;
+	heap32[(r3+3)] = 0;
+	r1 = (r1 % r2)|0;
+	r2 = heap32[(r0+25)];
+	r1 = r1 << 4;
+	r1 = (r2 + r1)|0;
+	r1 = r1 >> 2;
+	r2 = heap32[(fp+3)];
+	f0 = heapFloat[(r1+2)];
+	f1 = heapFloat[(r0+5)];
+	f2 = heapFloat[(r1+1)];
+	f3 = heapFloat[(r0+4)];
+	f4 = heapFloat[(r1)];
+	f5 = heapFloat[(r0+3)];
+	r0 = r2 >> 2;
+	f4 = f4*f5;
+	f2 = f2*f3;
+	heapFloat[(r0)] = f4;
+	f0 = f0*f1;
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZNK17btConvexHullShape11getNumEdgesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+23)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK17btConvexHullShape14getNumVerticesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+23)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+3)];
+	r1 = heap32[(fp+2)];
+if(!(r0 <1)) //_LBB444_3
+{
+	r2 = (r1 + 12)|0;
+	r3 = r0;
+_3: while(true){
+	r3 = (r3 + -1)|0;
+	r4 = (r2 + 16)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = -581039253;
+	r2 = r4;
+	if(r3 !=0) //_LBB444_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r2 = heap32[(fp)];
+	r2 = r2 >> 2;
+	r3 = heap32[(r2+23)];
+_6: do {
+if(!(r3 <1)) //_LBB444_11
+{
+	r3 = heap32[(fp+1)];
+	r1 = (r1 + 8)|0;
+	r3 = (r3 + 8)|0;
+	r4 = 0;
+_8: while(true){
+if(!(r0 <1)) //_LBB444_10
+{
+	r5 = heap32[(r2+25)];
+	r6 = r4 << 4;
+	r5 = (r5 + r6)|0;
+	r5 = r5 >> 2;
+	f0 = heapFloat[(r5+2)];
+	f1 = heapFloat[(r2+5)];
+	f2 = heapFloat[(r5+1)];
+	f3 = heapFloat[(r2+4)];
+	f4 = heapFloat[(r5)];
+	f5 = heapFloat[(r2+3)];
+	f0 = f0*f1;
+	f1 = f2*f3;
+	f2 = f4*f5;
+	r5 = r3;
+	r6 = r1;
+	r7 = r0;
+_12: while(true){
+	r8 = r5 >> 2;
+	f3 = heapFloat[(r8+-2)];
+	f4 = heapFloat[(r8+-1)];
+	f3 = f3*f2;
+	f4 = f4*f1;
+	f5 = heapFloat[(r8)];
+	f3 = f3+f4;
+	f4 = f5*f0;
+	r8 = r6 >> 2;
+	f3 = f3+f4;
+	f4 = heapFloat[(r8+1)];
+if(!(f4 >=f3)) //_LBB444_9
+{
+	heapFloat[(r8+-2)] = f2;
+	heapFloat[(r8+-1)] = f1;
+	heapFloat[(r8)] = f0;
+	heapFloat[(r8+1)] = f3;
+}
+	r7 = (r7 + -1)|0;
+	r6 = (r6 + 16)|0;
+	r5 = (r5 + 16)|0;
+if(!(r7 !=0)) //_LBB444_7
+{
+break _12;
+}
+}
+}
+	r4 = (r4 + 1)|0;
+	r5 = heap32[(r2+23)];
+	if(r5 >r4) //_LBB444_5
+{
+continue _8;
+}
+else{
+break _6;
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+	heap32[(r0+1)] = 0;
+	r1 = heap32[(fp+1)];
+	heap32[(r0+2)] = 0;
+	r1 = r1 >> 2;
+	heap32[(r0+3)] = 0;
+	r2 = heap32[(r1+23)];
+if(!(r2 <1)) //_LBB445_6
+{
+	r3 = heap32[(fp+2)];
+	r3 = r3 >> 2;
+	r4 = heap32[(r1+25)];
+	f0 = heapFloat[(r1+5)];
+	f1 = heapFloat[(r1+4)];
+	f2 = heapFloat[(r1+3)];
+	f3 = heapFloat[(r3)];
+	f4 = heapFloat[(r3+1)];
+	f5 = heapFloat[(r3+2)];
+	r1 = 0;
+	f6 =       -999999984306749440;
+_3: while(true){
+	r3 = r1 << 4;
+	r3 = (r4 + r3)|0;
+	r3 = r3 >> 2;
+	f7 = heapFloat[(r3+1)];
+	f8 = heapFloat[(r3)];
+	f7 = f7*f1;
+	f8 = f8*f2;
+	f9 = heapFloat[(r3+2)];
+	f9 = f9*f0;
+	f10 = f3*f8;
+	f11 = f4*f7;
+	f10 = f10+f11;
+	f11 = f5*f9;
+	f10 = f10+f11;
+	if(f10 >f6) //_LBB445_4
+{
+	heapFloat[(r0)] = f8;
+	heapFloat[(r0+1)] = f7;
+	heapFloat[(r0+2)] = f9;
+	heap32[(r0+3)] = 0;
+	f6 = f10;
+}
+	r1 = (r1 + 1)|0;
+	if(r1 <r2) //_LBB445_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function _ZNK17btConvexHullShape8isInsideERK9btVector3f(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _2E_str10;
+	r1 = _2E_str3222;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 173;
+	_assert(i7);
+}
+
+function _ZNK17btConvexHullShape8getPlaneER9btVector3S1_i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _2E_str10;
+	r1 = _2E_str3222;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 167;
+	_assert(i7);
+}
+
+function _ZN17btConvexHullShapeD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV17btConvexHullShape;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+25)];
+if(!(r1 ==0)) //_LBB448_4
+{
+	r3 = heapU8[r0+104];
+if(!(r3 ==0)) //_LBB448_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+25)] = 0;
+}
+	r1 = 1;
+	heap8[r0+104] = r1;
+	heap32[(r2+25)] = 0;
+	r1 = _ZTV13btConvexShape;
+	heap32[(r2+23)] = 0;
+	r1 = (r1 + 8)|0;
+	heap32[(r2+24)] = 0;
+	heap32[(r2)] = r1;
+if(!(r0 ==0)) //_LBB448_6
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZN17btConvexHullShapeD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV17btConvexHullShape;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+25)];
+if(!(r1 ==0)) //_LBB449_4
+{
+	r3 = heapU8[r0+104];
+if(!(r3 ==0)) //_LBB449_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+25)] = 0;
+}
+	r1 = 1;
+	heap8[r0+104] = r1;
+	heap32[(r2+25)] = 0;
+	r0 = _ZTV13btConvexShape;
+	heap32[(r2+23)] = 0;
+	r0 = (r0 + 8)|0;
+	heap32[(r2+24)] = 0;
+	heap32[(r2)] = r0;
+	return;
+}
+
+function _ZN17btConvexHullShape15setLocalScalingERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 >> 2;
+	r1 = r1 >> 2;
+	heap32[(r2+3)] = heap32[(r1)];
+	heap32[(r2+4)] = heap32[(r1+1)];
+	heap32[(r2+5)] = heap32[(r1+2)];
+	heap32[(r2+6)] = heap32[(r1+3)];
+	heap32[(g0)] = r0;
+	_ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(i7);
+	return;
+}
+
+function _ZNK17btConvexHullShape9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+10)];
+	r3 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	r5 = heap32[(fp+1)];
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r4;
+if(!(r4 ==0)) //_LBB451_2
+{
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+12)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+	r2 = r3 >> 2;
+	r3 = heap32[(r2+1)];
+	heap32[(r5+1)] = r3;
+	heap32[(r5+7)] = heap32[(r2+7)];
+	heap32[(r5+8)] = heap32[(r2+8)];
+	heap32[(r5+9)] = heap32[(r2+9)];
+	heap32[(r5+10)] = heap32[(r2+10)];
+	heap32[(r5+3)] = heap32[(r2+3)];
+	heap32[(r5+4)] = heap32[(r2+4)];
+	heap32[(r5+5)] = heap32[(r2+5)];
+	heap32[(r5+6)] = heap32[(r2+6)];
+	heap32[(r5+11)] = heap32[(r2+11)];
+	r3 = heap32[(r2+23)];
+	heap32[(r5+15)] = r3;
+	if(r3 ==0) //_LBB451_7
+{
+	heap32[(r5+13)] = 0;
+	heap32[(r5+14)] = 0;
+	r0 = _2E_str6224;
+	r_g0 = r0;
+	return;
+}
+else{
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	r6 = heap32[(r2+25)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r6;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	heap32[(r5+13)] = r_g0;
+	heap32[(r5+14)] = 0;
+	r5 = heap32[(r1)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+4)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 16;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r5 = r_g0;
+if(!(r3 <1)) //_LBB451_6
+{
+	r4 = r5 >> 2;
+	r4 = heap32[(r4+2)];
+	r6 = 0;
+_9: while(true){
+	r7 = r6 << 4;
+	r8 = heap32[(r2+25)];
+	r9 = (r4 + r7)|0;
+	r7 = (r8 + r7)|0;
+	r8 = r9 >> 2;
+	r7 = r7 >> 2;
+	heap32[(r8)] = heap32[(r7)];
+	heap32[(r8+1)] = heap32[(r7+1)];
+	r6 = (r6 + 1)|0;
+	heap32[(r8+2)] = heap32[(r7+2)];
+	heap32[(r8+3)] = heap32[(r7+3)];
+if(!(r3 !=r6)) //_LBB451_5
+{
+break _9;
+}
+}
+}
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	r2 = heap32[(r2+25)];
+	r3 = _2E_str5223;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = 1497453121;
+	heap32[(g0+4)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r5 = _2E_str6224;
+	r_g0 = r5;
+	return;
+}
+}
+
+function _ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+16)];
+	r3 = heap32[(fp)];
+	r4 = heap32[(fp+2)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f0 = f_g0;
+	f1 =                         0;
+if(!(f0 ==f1)) //_LBB452_2
+{
+	r2 = r4 >> 2;
+	f0 = heapFloat[(r2)];
+	f1 = heapFloat[(r2+1)];
+	f2 = heapFloat[(r2+2)];
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	f4 =   1.4210854715202004e-014;
+	f5 =                        -1;
+	f0 = f3 < f4 ? f5 : f0;
+	f1 = f3 < f4 ? f5 : f1;
+	f2 = f3 < f4 ? f5 : f2;
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+11)];
+	f4 =                         1;
+	f3 = f4/f_g0;
+	heap32[(g0)] = r0;
+	r0 = r3 >> 2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	f0 = f0*f3;
+	f0 = f0*f_g0;
+	f5 = heapFloat[(r0)];
+	f0 = f5+f0;
+	f1 = f1*f3;
+	heapFloat[(r0)] = f0;
+	f0 = f1*f_g0;
+	f1 = heapFloat[(r0+1)];
+	f0 = f1+f0;
+	f1 = f2*f3;
+	heapFloat[(r0+1)] = f0;
+	f0 = f1*f_g0;
+	f1 = heapFloat[(r0+2)];
+	f0 = f1+f0;
+	heapFloat[(r0+2)] = f0;
+}
+	return;
+}
+
+function _ZN17btConvexHullShape8addPointERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+24)];
+	r3 = heap32[(r1+23)];
+	r4 = heap32[(fp+1)];
+	if(r2 ==r3) //_LBB453_2
+{
+	r5 = 1;
+	r6 = r3 << 1;
+	r6 = r3 == 0 ? r5 : r6;
+if(!(r2 >=r6)) //_LBB453_1
+{
+	if(r6 !=0) //_LBB453_5
+{
+	r2 = gNumAlignedAllocs;
+	r2 = r2 >> 2;
+	r7 = heap32[(r2)];
+	r8 = r6 << 4;
+	r7 = (r7 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r2)] = r7;
+	r2 = (r8 + 16)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB453_7
+{
+	r7 = 0;
+	r8 = (r2 + 4)|0;
+	r7 = (r7 - r8)|0;
+	r7 = r7 & 15;
+	r7 = (r2 + r7)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r2;
+	r2 = r8;
+}
+}
+else{
+	r2 = 0;
+}
+	r7 = (r0 + 100)|0;
+	if(r3 <1) //_LBB453_10
+{
+	r8 = r7 >> 2;
+	r9 = heap32[(r8)];
+}
+else{
+	r8 = 0;
+_12: while(true){
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r8 << 4;
+	r11 = (r2 + r10)|0;
+	r10 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = r10 >> 2;
+	heap32[(r11)] = heap32[(r10)];
+	heap32[(r11+1)] = heap32[(r10+1)];
+	r8 = (r8 + 1)|0;
+	heap32[(r11+2)] = heap32[(r10+2)];
+	heap32[(r11+3)] = heap32[(r10+3)];
+if(!(r3 !=r8)) //_LBB453_11
+{
+break _12;
+}
+}
+	r7 = (r0 + 100)|0;
+}
+	if(r9 !=0) //_LBB453_15
+{
+	r8 = heapU8[r0+104];
+	if(r8 !=0) //_LBB453_17
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r8 = heap32[(r3)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r3)] = r8;
+	r3 = heap32[(r9+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+	r3 = heap32[(r1+23)];
+}
+	r8 = r7 >> 2;
+	heap32[(r8)] = 0;
+}
+	r7 = r7 >> 2;
+	heap8[r0+104] = r5;
+	heap32[(r7)] = r2;
+	heap32[(r1+24)] = r6;
+}
+}
+	r2 = r3 << 4;
+	r3 = heap32[(r1+25)];
+	r2 = (r3 + r2)|0;
+	r2 = r2 >> 2;
+	r3 = r4 >> 2;
+	heap32[(r2)] = heap32[(r3)];
+	heap32[(r2+1)] = heap32[(r3+1)];
+	heap32[(r2+2)] = heap32[(r3+2)];
+	heap32[(r2+3)] = heap32[(r3+3)];
+	r2 = heap32[(r1+23)];
+	r2 = (r2 + 1)|0;
+	heap32[(r1+23)] = r2;
+	heap32[(g0)] = r0;
+	_ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(i7);
+	return;
+}
+
+function _ZN20btAlignedObjectArrayI9btVector3E6resizeEiRKS0_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+1)];
+	r3 = heap32[(fp+1)];
+_1: do {
+if(!(r2 >r3)) //_LBB454_20
+{
+if(!(r2 >=r3)) //_LBB454_20
+{
+	r4 = heap32[(r1+2)];
+if(!(r4 >=r3)) //_LBB454_18
+{
+	if(r3 !=0) //_LBB454_5
+{
+	r4 = gNumAlignedAllocs;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r6 = r3 << 4;
+	r5 = (r5 + 1)|0;
+	r6 = r6 | 3;
+	heap32[(r4)] = r5;
+	r4 = (r6 + 16)|0;
+	heap32[(g0)] = r4;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB454_7
+{
+	r5 = 0;
+	r6 = (r4 + 4)|0;
+	r5 = (r5 - r6)|0;
+	r5 = r5 & 15;
+	r5 = (r4 + r5)|0;
+	r6 = (r5 + 4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = r4;
+	r4 = r6;
+}
+}
+else{
+	r4 = 0;
+}
+	r5 = (r0 + 12)|0;
+	if(r2 <1) //_LBB454_10
+{
+	r6 = r5 >> 2;
+	r7 = heap32[(r6)];
+}
+else{
+	r6 = 0;
+_14: while(true){
+	r7 = r5 >> 2;
+	r7 = heap32[(r7)];
+	r8 = r6 << 4;
+	r9 = (r4 + r8)|0;
+	r8 = (r7 + r8)|0;
+	r9 = r9 >> 2;
+	r8 = r8 >> 2;
+	heap32[(r9)] = heap32[(r8)];
+	heap32[(r9+1)] = heap32[(r8+1)];
+	r6 = (r6 + 1)|0;
+	heap32[(r9+2)] = heap32[(r8+2)];
+	heap32[(r9+3)] = heap32[(r8+3)];
+if(!(r2 !=r6)) //_LBB454_11
+{
+break _14;
+}
+}
+	r5 = (r0 + 12)|0;
+}
+if(!(r7 ==0)) //_LBB454_17
+{
+	r6 = heapU8[r0+16];
+if(!(r6 ==0)) //_LBB454_16
+{
+	r6 = gNumAlignedFree;
+	r6 = r6 >> 2;
+	r8 = heap32[(r6)];
+	r8 = (r8 + 1)|0;
+	r7 = r7 >> 2;
+	heap32[(r6)] = r8;
+	r6 = heap32[(r7+-1)];
+	heap32[(g0)] = r6;
+	free(i7);
+}
+	r6 = r5 >> 2;
+	heap32[(r6)] = 0;
+}
+	r6 = 1;
+	r5 = r5 >> 2;
+	heap8[r0+16] = r6;
+	heap32[(r5)] = r4;
+	heap32[(r1+2)] = r3;
+	if(r2 >=r3) //_LBB454_20
+{
+break _1;
+}
+}
+	r0 = heap32[(fp+2)];
+_25: while(true){
+	r4 = r2 << 4;
+	r5 = heap32[(r1+3)];
+	r4 = (r5 + r4)|0;
+	r4 = r4 >> 2;
+	r5 = r0 >> 2;
+	heap32[(r4)] = heap32[(r5)];
+	heap32[(r4+1)] = heap32[(r5+1)];
+	r2 = (r2 + 1)|0;
+	heap32[(r4+2)] = heap32[(r5+2)];
+	heap32[(r4+3)] = heap32[(r5+3)];
+	if(r3 !=r2) //_LBB454_19
+{
+continue _25;
+}
+else{
+break _1;
+}
+}
+}
+}
+} while(0);
+	heap32[(r1+1)] = r3;
+	return;
+}
+
+function _ZN17btConvexHullShapeC1EPKfii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = 1065353216;
+	heap32[(r1+4)] = 1065353216;
+	heap32[(r1+5)] = 1065353216;
+	heap32[(r1+6)] = 0;
+	heap32[(r1+11)] = 1025758986;
+	heap32[(r1+13)] = 1065353216;
+	heap32[(r1+14)] = 1065353216;
+	heap32[(r1+15)] = 1065353216;
+	heap32[(r1+16)] = 0;
+	heap32[(r1+17)] = -1082130432;
+	heap32[(r1+18)] = -1082130432;
+	heap32[(r1+19)] = -1082130432;
+	r2 = _ZTV17btConvexHullShape;
+	r3 = 0;
+	heap32[(r1+20)] = 0;
+	r2 = (r2 + 8)|0;
+	heap8[r0+84] = r3;
+	r4 = 1;
+	heap32[(r1)] = r2;
+	heap8[r0+104] = r4;
+	heap32[(r1+25)] = 0;
+	heap32[(r1+23)] = 0;
+	heap32[(r1+24)] = 0;
+	heap32[(r1+1)] = 4;
+	r2 = heap32[(fp+2)];
+	r4 = (r0 + 88)|0;
+	r5 = sp + -16;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r5;
+	_ZN20btAlignedObjectArrayI9btVector3E6resizeEiRKS0_(i7);
+if(!(r2 <1)) //_LBB455_3
+{
+	r4 = heap32[(fp+1)];
+_3: while(true){
+	r5 = r3 << 4;
+	r6 = (r4 + r5)|0;
+	r6 = r6 >> 2;
+	r7 = heap32[(r1+25)];
+	r5 = (r7 + r5)|0;
+	f0 = heapFloat[(r6+2)];
+	f1 = heapFloat[(r6+1)];
+	r5 = r5 >> 2;
+	heap32[(r5)] = heap32[(r6)];
+	heapFloat[(r5+1)] = f1;
+	r3 = (r3 + 1)|0;
+	heapFloat[(r5+2)] = f0;
+	heap32[(r5+3)] = 0;
+	if(r2 !=r3) //_LBB455_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	heap32[(g0)] = r0;
+	_ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(i7);
+	return;
+}
+
+function _ZN21btConvexInternalShape15setLocalScalingERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+2)];
+	r1 = heap32[(fp)];
+	f1 =                         0;
+	if(f0 <f1) //_LBB456_2
+{
+	f0 = -f0;
+}
+	f2 = heapFloat[(r0+1)];
+	if(f2 <f1) //_LBB456_5
+{
+	f2 = -f2;
+}
+	f3 = heapFloat[(r0)];
+	if(f3 <f1) //_LBB456_8
+{
+	f3 = -f3;
+}
+	r0 = r1 >> 2;
+	heapFloat[(r0+3)] = f3;
+	heapFloat[(r0+4)] = f2;
+	heapFloat[(r0+5)] = f0;
+	heap32[(r0+6)] = 0;
+	return;
+}
+
+function _ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+var __label__ = 0;
+	i7 = sp + -112;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	r6 = 0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f0 = f_g0;
+_1: while(true){
+	r2 = sp + -64;
+	r7 = r2 >> 2;
+	heap32[(fp+-16)] = 0;
+	heap32[(r7+1)] = 0;
+	r8 = r6 << 2;
+	r2 = (r2 - r8)|0;
+	heap32[(r7+2)] = 0;
+	r2 = r2 >> 2;
+	heap32[(r7+3)] = 0;
+	heap32[(r2)] = 1065353216;
+	r9 = r3 >> 2;
+	r10 = heap32[(r1)];
+	f1 = heapFloat[(fp+-16)];
+	f2 = heapFloat[(r9)];
+	f3 = heapFloat[(r7+1)];
+	f4 = heapFloat[(r9+4)];
+	r10 = r10 >> 2;
+	f5 = heapFloat[(r9+1)];
+	f6 = heapFloat[(r9+5)];
+	f2 = f2*f1;
+	f4 = f4*f3;
+	f7 = heapFloat[(r7+2)];
+	f8 = heapFloat[(r9+8)];
+	f9 = heapFloat[(r9+2)];
+	f10 = heapFloat[(r9+6)];
+	f11 = heapFloat[(r9+10)];
+	f12 = heapFloat[(r9+9)];
+	r10 = heap32[(r10+15)];
+	f5 = f5*f1;
+	f6 = f6*f3;
+	f2 = f2+f4;
+	f4 = f8*f7;
+	r11 = sp + -48;
+	f1 = f9*f1;
+	f3 = f10*f3;
+	f5 = f5+f6;
+	f6 = f12*f7;
+	f2 = f2+f4;
+	r12 = r11 >> 2;
+	f1 = f1+f3;
+	f3 = f11*f7;
+	f4 = f5+f6;
+	heapFloat[(fp+-12)] = f2;
+	f1 = f1+f3;
+	heapFloat[(r12+1)] = f4;
+	heapFloat[(r12+2)] = f1;
+	heap32[(r12+3)] = 0;
+	r12 = sp + -80;
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r11;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	r10 = r12 >> 2;
+	f1 = heapFloat[(fp+-20)];
+	f2 = heapFloat[(r9)];
+	f3 = heapFloat[(r10+1)];
+	f4 = heapFloat[(r9+1)];
+	f5 = heapFloat[(r9+4)];
+	f6 = heapFloat[(r9+5)];
+	f2 = f2*f1;
+	f4 = f4*f3;
+	f7 = heapFloat[(r10+2)];
+	f8 = heapFloat[(r9+2)];
+	f9 = heapFloat[(r9+8)];
+	f10 = heapFloat[(r9+9)];
+	f11 = heapFloat[(r9+6)];
+	f5 = f5*f1;
+	f6 = f6*f3;
+	f2 = f2+f4;
+	f4 = f8*f7;
+	f8 = heapFloat[(r9+10)];
+	f1 = f9*f1;
+	f3 = f10*f3;
+	f5 = f5+f6;
+	f6 = f11*f7;
+	f2 = f2+f4;
+	f4 = heapFloat[(r9+12)];
+	f9 = heapFloat[(r9+14)];
+	f10 = heapFloat[(r9+13)];
+	r10 = sp + -96;
+	f5 = f5+f6;
+	f1 = f1+f3;
+	f3 = f8*f7;
+	f2 = f2+f4;
+	f1 = f1+f3;
+	f3 = f5+f10;
+	heapFloat[(fp+-24)] = f2;
+	r11 = r10 >> 2;
+	f1 = f1+f9;
+	heapFloat[(r11+1)] = f3;
+	heapFloat[(r11+2)] = f1;
+	r10 = (r10 - r8)|0;
+	heap32[(r11+3)] = 0;
+	r10 = r10 >> 2;
+	r12 = (r5 - r8)|0;
+	f1 = heapFloat[(r10)];
+	r12 = r12 >> 2;
+	f1 = f1+f0;
+	heapFloat[(r12)] = f1;
+	heap32[(r2)] = -1082130432;
+	r2 = heap32[(r1)];
+	f1 = heapFloat[(fp+-16)];
+	f2 = heapFloat[(r9)];
+	f3 = heapFloat[(r7+1)];
+	f4 = heapFloat[(r9+4)];
+	r2 = r2 >> 2;
+	f5 = heapFloat[(r9+1)];
+	f6 = heapFloat[(r9+5)];
+	f2 = f2*f1;
+	f4 = f4*f3;
+	f7 = heapFloat[(r7+2)];
+	f8 = heapFloat[(r9+8)];
+	f9 = heapFloat[(r9+2)];
+	f10 = heapFloat[(r9+6)];
+	f11 = heapFloat[(r9+10)];
+	f12 = heapFloat[(r9+9)];
+	r2 = heap32[(r2+15)];
+	f5 = f5*f1;
+	f6 = f6*f3;
+	f2 = f2+f4;
+	f4 = f8*f7;
+	r7 = sp + -16;
+	f1 = f9*f1;
+	f3 = f10*f3;
+	f5 = f5+f6;
+	f6 = f12*f7;
+	f2 = f2+f4;
+	r12 = r7 >> 2;
+	f1 = f1+f3;
+	f3 = f11*f7;
+	f4 = f5+f6;
+	heapFloat[(fp+-4)] = f2;
+	f1 = f1+f3;
+	heapFloat[(r12+1)] = f4;
+	heapFloat[(r12+2)] = f1;
+	heap32[(r12+3)] = 0;
+	r12 = sp + -32;
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r7;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r12 >> 2;
+	f1 = heapFloat[(fp+-8)];
+	f2 = heapFloat[(r9)];
+	f3 = heapFloat[(r2+1)];
+	f4 = heapFloat[(r9+1)];
+	f5 = heapFloat[(r9+4)];
+	f6 = heapFloat[(r9+5)];
+	f2 = f2*f1;
+	f4 = f4*f3;
+	f7 = heapFloat[(r2+2)];
+	f8 = heapFloat[(r9+2)];
+	f9 = heapFloat[(r9+8)];
+	f10 = heapFloat[(r9+9)];
+	f11 = heapFloat[(r9+6)];
+	f5 = f5*f1;
+	f6 = f6*f3;
+	f2 = f2+f4;
+	f4 = f8*f7;
+	f8 = heapFloat[(r9+10)];
+	f1 = f9*f1;
+	f3 = f10*f3;
+	f5 = f5+f6;
+	f6 = f11*f7;
+	f2 = f2+f4;
+	f4 = heapFloat[(r9+12)];
+	f9 = heapFloat[(r9+14)];
+	f10 = heapFloat[(r9+13)];
+	f5 = f5+f6;
+	f1 = f1+f3;
+	f3 = f8*f7;
+	f2 = f2+f4;
+	f1 = f1+f3;
+	f3 = f5+f10;
+	heapFloat[(fp+-24)] = f2;
+	f1 = f1+f9;
+	heapFloat[(r11+1)] = f3;
+	heapFloat[(r11+2)] = f1;
+	heap32[(r11+3)] = 0;
+	r2 = (r4 - r8)|0;
+	f1 = heapFloat[(r10)];
+	r6 = (r6 + -1)|0;
+	r2 = r2 >> 2;
+	f1 = f1-f0;
+	heapFloat[(r2)] = f1;
+	if(r6 !=-3) //_LBB457_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+	return;
+}
+
+function _ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+16)];
+	r3 = heap32[(fp)];
+	r4 = heap32[(fp+2)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f0 = f_g0;
+	f1 =                         0;
+if(!(f0 ==f1)) //_LBB458_2
+{
+	r2 = r4 >> 2;
+	f0 = heapFloat[(r2)];
+	f1 = heapFloat[(r2+1)];
+	f2 = heapFloat[(r2+2)];
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	f4 =   1.4210854715202004e-014;
+	f5 =                        -1;
+	f0 = f3 < f4 ? f5 : f0;
+	f1 = f3 < f4 ? f5 : f1;
+	f2 = f3 < f4 ? f5 : f2;
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+11)];
+	f4 =                         1;
+	f3 = f4/f_g0;
+	heap32[(g0)] = r0;
+	r0 = r3 >> 2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	f0 = f0*f3;
+	f0 = f0*f_g0;
+	f5 = heapFloat[(r0)];
+	f0 = f5+f0;
+	f1 = f1*f3;
+	heapFloat[(r0)] = f0;
+	f0 = f1*f_g0;
+	f1 = heapFloat[(r0+1)];
+	f0 = f1+f0;
+	f1 = f2*f3;
+	heapFloat[(r0+1)] = f0;
+	f0 = f1*f_g0;
+	f1 = heapFloat[(r0+2)];
+	f0 = f1+f0;
+	heapFloat[(r0+2)] = f0;
+}
+	return;
+}
+
+function _ZN13btConvexShapeD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13btConvexShape;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN13btConvexShapeD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13btConvexShape;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+if(!(r0 ==0)) //_LBB460_2
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZL17convexHullSupportRK9btVector3PS0_iS1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+5)];
+if(!(r0 <1)) //_LBB461_4
+{
+	f0 = heapFloat[(fp+8)];
+	f1 = heapFloat[(fp+3)];
+	f2 = heapFloat[(fp+7)];
+	f3 = heapFloat[(fp+2)];
+	f4 = heapFloat[(fp+6)];
+	f5 = heapFloat[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+4)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f5 = f5*f4;
+	r3 = 0;
+	r4 = -1;
+	f6 =       -999999984306749440;
+_3: while(true){
+	r5 = r3 << 4;
+	r5 = (r2 + r5)|0;
+	r5 = r5 >> 2;
+	f7 = heapFloat[(r5)];
+	f8 = heapFloat[(r5+1)];
+	f7 = f5*f7;
+	f8 = f3*f8;
+	f9 = heapFloat[(r5+2)];
+	f7 = f7+f8;
+	f8 = f1*f9;
+	f7 = f7+f8;
+	r5 = (r3 + 1)|0;
+	r4 = f7 > f6 ? r3 : r4;
+	f6 = f7 > f6 ? f7 : f6;
+	r3 = r5;
+if(!(r0 !=r5)) //_LBB461_2
+{
+break _3;
+}
+}
+	if(r4 >-1) //_LBB461_5
+{
+	r0 = r4 << 4;
+	r0 = (r2 + r0)|0;
+	r0 = r0 >> 2;
+	f1 = heapFloat[(r0)];
+	f3 = heapFloat[(r0+2)];
+	f5 = heapFloat[(r0+1)];
+	r0 = r1 >> 2;
+	f1 = f1*f4;
+	f2 = f5*f2;
+	heapFloat[(r0)] = f1;
+	f0 = f3*f0;
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+}
+	r1 = _2E_str6249;
+	r2 = _2E_str7250;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 108;
+	_assert(i7);
+}
+
+function _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+var __label__ = 0;
+	i7 = sp + -120;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+1)];
+	r3 = heap32[(fp)];
+	r4 = heap32[(fp+2)];
+_1: do {
+	if(r2 >4) //_LBB462_4
+{
+	if(r2 >9) //_LBB462_7
+{
+	if(r2 ==10) //_LBB462_32
+{
+	r2 = heap32[(r1+13)];
+	r5 = (r2 + 2)|0;
+	r4 = r4 >> 2;
+	r5 = (r5 % 3)|0;
+	f0 = heapFloat[(r4)];
+	f1 = heapFloat[(r4+1)];
+	r2 = r2 << 2;
+	r0 = (r0 + 28)|0;
+	r5 = r5 << 2;
+	f2 = heapFloat[(r4+2)];
+	r4 = (r0 + r2)|0;
+	r0 = (r0 + r5)|0;
+	f3 = f0*f0;
+	f4 = f1*f1;
+	r4 = r4 >> 2;
+	r0 = r0 >> 2;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	f4 = heapFloat[(r4)];
+	f5 = heapFloat[(r0)];
+	f6 =   9.9999997473787516e-005;
+	if(f3 >=f6) //_LBB462_34
+{
+	heapFloat[(g0)] = f3;
+	f3 =                         1;
+	sqrtf(i7);
+	f3 = f3/f_g0;
+	f0 = f0*f3;
+	f1 = f1*f3;
+	f2 = f2*f3;
+}
+else{
+	f0 =                         1;
+	f1 =                         0;
+	f2 = f1;
+}
+	r0 = sp + -64;
+	r4 = r0 >> 2;
+	heap32[(fp+-16)] = 0;
+	heap32[(r4+1)] = 0;
+	r0 = (r0 + r2)|0;
+	heap32[(r4+2)] = 0;
+	r0 = r0 >> 2;
+	heap32[(r4+3)] = 0;
+	heapFloat[(r0)] = f4;
+	f3 = heapFloat[(r1+4)];
+	f6 = heapFloat[(r1+3)];
+	f7 = heapFloat[(r1+5)];
+	f3 = f1*f3;
+	f6 = f0*f6;
+	f8 = heapFloat[(r1+11)];
+	f7 = f2*f7;
+	f3 = f3*f5;
+	f9 = heapFloat[(r4+1)];
+	f6 = f6*f5;
+	f10 = heapFloat[(fp+-16)];
+	f5 = f7*f5;
+	f7 = heapFloat[(r4+2)];
+	f11 = f1*f8;
+	f9 = f9+f3;
+	f12 = f0*f8;
+	f10 = f10+f6;
+	f9 = f9-f11;
+	f10 = f10-f12;
+	f8 = f2*f8;
+	f7 = f7+f5;
+	f7 = f7-f8;
+	f13 = f0*f10;
+	f14 = f1*f9;
+	f13 = f13+f14;
+	f14 = f2*f7;
+	f13 = f13+f14;
+	f14 =       -999999984306749440;
+	if(f13 >f14) //_LBB462_37
+{
+	f14 = f13;
+}
+else{
+	f10 =                         0;
+	f9 = f10;
+	f7 = f10;
+}
+	r0 = sp + -80;
+	r1 = r0 >> 2;
+	heap32[(fp+-20)] = 0;
+	heap32[(r1+1)] = 0;
+	r0 = (r0 + r2)|0;
+	heap32[(r1+2)] = 0;
+	r0 = r0 >> 2;
+	f4 = -f4;
+	heap32[(r1+3)] = 0;
+	heapFloat[(r0)] = f4;
+	f4 = heapFloat[(r1+1)];
+	f13 = heapFloat[(fp+-20)];
+	f15 = heapFloat[(r1+2)];
+	f3 = f4+f3;
+	f4 = f13+f6;
+	f4 = f4-f12;
+	f3 = f3-f11;
+	f5 = f15+f5;
+	f0 = f0*f4;
+	f1 = f1*f3;
+	f5 = f5-f8;
+	f0 = f0+f1;
+	f1 = f2*f5;
+	f0 = f0+f1;
+	r0 = r3 >> 2;
+	f1 = f0 > f14 ? f4 : f10;
+	f2 = f0 > f14 ? f3 : f9;
+	heapFloat[(r0)] = f1;
+	f0 = f0 > f14 ? f5 : f7;
+__label__ = 11;
+break _1;
+}
+else{
+	if(r2 ==13) //_LBB462_16
+{
+	r0 = sp + -16;
+	r2 = r0 >> 2;
+	heap32[(fp+-4)] = heap32[(r1+7)];
+	heap32[(r2+1)] = heap32[(r1+8)];
+	heap32[(r2+2)] = heap32[(r1+9)];
+	r4 = r4 >> 2;
+	heap32[(r2+3)] = heap32[(r1+10)];
+	r2 = sp + -32;
+	heap32[(fp+-8)] = heap32[(r4)];
+	f0 = heapFloat[(r4+1)];
+	r5 = r2 >> 2;
+	heapFloat[(r5+1)] = f0;
+	f1 = heapFloat[(r4+2)];
+	heapFloat[(r5+2)] = f1;
+	heap32[(r5+3)] = 0;
+	r1 = heap32[(r1+13)];
+	if(r1 ==2) //_LBB462_21
+{
+	r4 = 0;
+	r5 = 2;
+	r6 = 1;
+	f1 = f0;
+}
+else{
+	if(r1 ==1) //_LBB462_20
+{
+	r4 = 0;
+	r5 = 1;
+	r6 = 2;
+}
+else{
+	if(r1 !=0) //_LBB462_22
+{
+	r0 = _2E_str10;
+	r1 = _2E_str7250;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 175;
+	_assert(i7);
+}
+else{
+	r4 = 1;
+	r5 = 0;
+	r6 = 2;
+}
+}
+}
+	r1 = r1 << 2;
+	r4 = r4 << 2;
+	r7 = (r0 + r4)|0;
+	r0 = (r0 + r1)|0;
+	r1 = (r2 + r4)|0;
+	r7 = r7 >> 2;
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r1)];
+	f2 = heapFloat[(r7)];
+	f3 = heapFloat[(r0)];
+	f4 = f0*f0;
+	f5 = f1*f1;
+	f4 = f4+f5;
+	heapFloat[(g0)] = f4;
+	sqrtf(i7);
+	f4 = f_g0;
+	f5 =                         0;
+	if(f4 ==f5) //_LBB462_28
+{
+	r0 = sp + -48;
+	r1 = (r0 + r4)|0;
+	r4 = r5 << 2;
+	r2 = (r2 + r4)|0;
+	r1 = r1 >> 2;
+	r2 = r2 >> 2;
+	heapFloat[(r1)] = f2;
+	f0 = heapFloat[(r2)];
+	if(f0 <f5) //_LBB462_30
+{
+	f3 = -f3;
+}
+	r1 = r6 << 2;
+	r4 = (r0 + r4)|0;
+	r1 = (r0 + r1)|0;
+	r4 = r4 >> 2;
+	r1 = r1 >> 2;
+	heapFloat[(r4)] = f3;
+	r3 = r3 >> 2;
+	heap32[(r1)] = 0;
+	r0 = r0 >> 2;
+	heap32[(r3)] = heap32[(fp+-12)];
+	heap32[(r3+1)] = heap32[(r0+1)];
+	heap32[(r3+2)] = heap32[(r0+2)];
+	heap32[(r3+3)] = 0;
+	return;
+}
+else{
+	r0 = sp + -48;
+	r4 = (r0 + r4)|0;
+	f2 = f2/f4;
+	r1 = r5 << 2;
+	r2 = (r2 + r1)|0;
+	r4 = r4 >> 2;
+	f0 = f0*f2;
+	r2 = r2 >> 2;
+	heapFloat[(r4)] = f0;
+	f0 = heapFloat[(r2)];
+	if(f0 <f5) //_LBB462_26
+{
+	f3 = -f3;
+}
+	r4 = r6 << 2;
+	r1 = (r0 + r1)|0;
+	r4 = (r0 + r4)|0;
+	r1 = r1 >> 2;
+	r4 = r4 >> 2;
+	f2 = f1*f2;
+	heapFloat[(r1)] = f3;
+	r1 = r3 >> 2;
+	heapFloat[(r4)] = f2;
+	r4 = r0 >> 2;
+	heap32[(r1)] = heap32[(fp+-12)];
+	heap32[(r1+1)] = heap32[(r4+1)];
+	heap32[(r1+2)] = heap32[(r4+2)];
+	heap32[(r1+3)] = 0;
+	return;
+}
+}
+else{
+__label__ = 40;
+break _1;
+}
+}
+}
+else{
+	if(r2 ==5) //_LBB462_39
+{
+	r0 = r4 >> 2;
+	f0 = heapFloat[(r1+5)];
+	r4 = heap32[(r1+22)];
+__label__ = 38;
+break _1;
+}
+else{
+	if(r2 ==8) //_LBB462_9
+{
+	r0 = r3 >> 2;
+	heap32[(r0)] = 0;
+	heap32[(r0+1)] = 0;
+	heap32[(r0+2)] = 0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+else{
+__label__ = 40;
+break _1;
+}
+}
+}
+}
+else{
+	if(r2 ==0) //_LBB462_10
+{
+	r0 = r4 >> 2;
+	f0 = heapFloat[(r1+7)];
+	f1 = heapFloat[(r1+9)];
+	f2 = heapFloat[(r1+8)];
+	f3 =                         0;
+	f4 = -f0;
+	f5 = heapFloat[(r0)];
+	f6 = heapFloat[(r0+2)];
+	f7 = heapFloat[(r0+1)];
+	f8 = -f2;
+	r0 = r3 >> 2;
+	f0 = f5 < f3 ? f4 : f0;
+	f4 = -f1;
+	f2 = f7 < f3 ? f8 : f2;
+	heapFloat[(r0)] = f0;
+	f0 = f6 < f3 ? f4 : f1;
+__label__ = 11;
+break _1;
+}
+else{
+	if(r2 ==1) //_LBB462_12
+{
+	r4 = r4 >> 2;
+	f0 = heapFloat[(r1+13)];
+	f1 = heapFloat[(r4)];
+	f2 = heapFloat[(r1+17)];
+	f3 = heapFloat[(r1+21)];
+	f4 = heapFloat[(r1+14)];
+	f5 = heapFloat[(r4+1)];
+	f6 = heapFloat[(r1+18)];
+	f7 = heapFloat[(r1+22)];
+	f0 = f1*f0;
+	f4 = f5*f4;
+	f8 = heapFloat[(r1+15)];
+	f9 = heapFloat[(r4+2)];
+	f10 = heapFloat[(r1+19)];
+	f11 = heapFloat[(r1+23)];
+	f2 = f1*f2;
+	f6 = f5*f6;
+	f1 = f1*f3;
+	f3 = f5*f7;
+	f0 = f0+f4;
+	f4 = f9*f8;
+	f2 = f2+f6;
+	f5 = f9*f10;
+	f1 = f1+f3;
+	f3 = f9*f11;
+	f0 = f0+f4;
+	f2 = f2+f5;
+	f1 = f1+f3;
+	if(f0 >=f2) //_LBB462_14
+{
+	r1 = 2;
+	r4 = 0;
+	r1 = f0 < f1 ? r1 : r4;
+}
+else{
+	r1 = 2;
+	r4 = 1;
+	r1 = f2 < f1 ? r1 : r4;
+}
+	r1 = r1 << 4;
+	r0 = (r0 + r1)|0;
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+15)];
+	f1 = heapFloat[(r0+14)];
+	r1 = r3 >> 2;
+	heap32[(r1)] = heap32[(r0+13)];
+	heapFloat[(r1+1)] = f1;
+	heapFloat[(r1+2)] = f0;
+	heap32[(r1+3)] = 0;
+	return;
+}
+else{
+	if(r2 ==4) //_LBB462_41
+{
+	r0 = r4 >> 2;
+	f0 = heapFloat[(r1+5)];
+	r4 = heap32[(r1+25)];
+__label__ = 38;
+}
+else{
+__label__ = 40;
+}
+}
+}
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 11:
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+break;
+case 40:
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+16)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+break;
+case 38:
+	r2 = heap32[(r1+23)];
+	f1 = heapFloat[(r0)];
+	f2 = heapFloat[(r0+1)];
+	f3 = heapFloat[(r0+2)];
+	f4 = heapFloat[(r1+3)];
+	f5 = heapFloat[(r1+4)];
+	heap32[(g0)] = r3;
+	heapFloat[(g0+1)] = f1;
+	heapFloat[(g0+2)] = f2;
+	heapFloat[(g0+3)] = f3;
+	heap32[(g0+4)] = r4;
+	heap32[(g0+5)] = r2;
+	heapFloat[(g0+6)] = f4;
+	heapFloat[(g0+7)] = f5;
+	heapFloat[(g0+8)] = f0;
+	_ZL17convexHullSupportRK9btVector3PS0_iS1_(i7);
+	return;
+break;
+}
+}
+
+function _ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0)];
+	r1 = sp + -32;
+	heapFloat[(fp+-8)] = f0;
+	f1 = heapFloat[(r0+1)];
+	r2 = r1 >> 2;
+	heapFloat[(r2+1)] = f1;
+	f2 = heapFloat[(r0+2)];
+	r3 = heap32[(fp)];
+	r4 = heap32[(fp+1)];
+	heapFloat[(r2+2)] = f2;
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	heap32[(r2+3)] = heap32[(r0+3)];
+	f3 = f3+f4;
+	f4 =   1.4210854715202004e-014;
+	if(f3 <f4) //_LBB463_2
+{
+	heap32[(fp+-8)] = -1082130432;
+	heap32[(r2+1)] = -1082130432;
+	f2 =                        -1;
+	heap32[(r2+2)] = -1082130432;
+	heap32[(r2+3)] = 0;
+	f1 = f2;
+	f0 = f2;
+}
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f1 =                         1;
+	f0 = f1/f_g0;
+	f1 = heapFloat[(fp+-8)];
+	f1 = f1*f0;
+	heapFloat[(fp+-8)] = f1;
+	f2 = heapFloat[(r2+1)];
+	f2 = f2*f0;
+	heapFloat[(r2+1)] = f2;
+	f3 = heapFloat[(r2+2)];
+	f0 = f3*f0;
+	r0 = r4 >> 2;
+	heapFloat[(r2+2)] = f0;
+	r5 = heap32[(r0+1)];
+_4: do {
+	if(r5 >7) //_LBB463_7
+{
+	if(r5 ==13) //_LBB463_13
+{
+	f3 = heapFloat[(r0+11)];
+__label__ = 16;
+break _4;
+}
+else{
+	if(r5 ==10) //_LBB463_14
+{
+	f3 = heapFloat[(r0+11)];
+__label__ = 16;
+break _4;
+}
+else{
+	if(r5 !=8) //_LBB463_16
+{
+__label__ = 15;
+break _4;
+}
+else{
+	f3 = heapFloat[(r0+7)];
+	f4 = heapFloat[(r0+3)];
+	f3 = f3*f4;
+__label__ = 16;
+break _4;
+}
+}
+}
+}
+else{
+	if(r5 ==0) //_LBB463_11
+{
+	f3 = heapFloat[(r0+11)];
+__label__ = 16;
+break _4;
+}
+else{
+	if(r5 ==1) //_LBB463_12
+{
+	f3 = heapFloat[(r0+11)];
+__label__ = 16;
+}
+else{
+	r5 = (r5 + -4)|0;
+	if(uint(r5) <uint(2)) //_LBB463_15
+{
+	f3 = heapFloat[(r0+11)];
+__label__ = 16;
+}
+else{
+__label__ = 15;
+}
+}
+}
+}
+} while(0);
+if (__label__ == 15){
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+11)];
+	heap32[(g0)] = r4;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	f3 = f_g0;
+	f0 = heapFloat[(r2+2)];
+	f2 = heapFloat[(r2+1)];
+	f1 = heapFloat[(fp+-8)];
+}
+	r0 = sp + -16;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	_ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i7);
+	r0 = r0 >> 2;
+	f1 = f1*f3;
+	f4 = heapFloat[(fp+-4)];
+	f5 = heapFloat[(r0+2)];
+	f6 = heapFloat[(r0+1)];
+	f2 = f2*f3;
+	r0 = r3 >> 2;
+	f1 = f4+f1;
+	f0 = f0*f3;
+	f2 = f6+f2;
+	heapFloat[(r0)] = f1;
+	f0 = f5+f0;
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btInternalTriangleIndexCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btInternalTriangleIndexCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp)];
+	r1 = r1 >> 2;
+	f0 =        999999984306749440;
+	f1 = heapFloat[(r0)];
+	f2 = heapFloat[(r0+1)];
+	f3 =       -999999984306749440;
+	f4 = heapFloat[(r0+2)];
+	f5 = heapFloat[(r0+3)];
+	f6 =                         0;
+	r1 = heap32[(r1+1)];
+	f7 = f1 < f0 ? f1 : f0;
+	f8 = heapFloat[(r0+4)];
+	f1 = f1 > f3 ? f1 : f3;
+	f9 = f2 < f0 ? f2 : f0;
+	f10 = heapFloat[(r0+5)];
+	f2 = f2 > f3 ? f2 : f3;
+	f0 = f4 < f0 ? f4 : f0;
+	f11 = heapFloat[(r0+6)];
+	f3 = f4 > f3 ? f4 : f3;
+	f4 = f5 < f6 ? f5 : f6;
+	f12 = heapFloat[(r0+7)];
+	f5 = f5 > f6 ? f5 : f6;
+	r2 = r1 >> 2;
+	f6 = f8 < f7 ? f8 : f7;
+	f7 = heapFloat[(r0+8)];
+	f1 = f1 < f8 ? f8 : f1;
+	f8 = f10 < f9 ? f10 : f9;
+	f9 = heapFloat[(r0+9)];
+	f2 = f2 < f10 ? f10 : f2;
+	f0 = f11 < f0 ? f11 : f0;
+	f10 = heapFloat[(r0+10)];
+	f3 = f3 < f11 ? f11 : f3;
+	f4 = f12 < f4 ? f12 : f4;
+	f11 = heapFloat[(r0+11)];
+	f5 = f5 < f12 ? f12 : f5;
+	r0 = heap32[(r2+2)];
+	r3 = heap32[(r2+1)];
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	f6 = f7 < f6 ? f7 : f6;
+	f8 = f9 < f8 ? f9 : f8;
+	f0 = f10 < f0 ? f10 : f0;
+	f4 = f11 < f4 ? f11 : f4;
+	f1 = f1 < f7 ? f7 : f1;
+	f2 = f2 < f9 ? f9 : f2;
+	f3 = f3 < f10 ? f10 : f3;
+	f5 = f5 < f11 ? f11 : f5;
+	if(r0 ==r3) //_LBB466_2
+{
+	r6 = 1;
+	r7 = r3 << 1;
+	r7 = r3 == 0 ? r6 : r7;
+if(!(r0 >=r7)) //_LBB466_1
+{
+	if(r7 !=0) //_LBB466_5
+{
+	r0 = gNumAlignedAllocs;
+	r0 = r0 >> 2;
+	r8 = heap32[(r0)];
+	r8 = (r8 + 1)|0;
+	r9 = r7 << 6;
+	heap32[(r0)] = r8;
+	r0 = r9 | 19;
+	heap32[(g0)] = r0;
+	malloc(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB466_7
+{
+	r3 = 0;
+	r8 = (r0 + 4)|0;
+	r3 = (r3 - r8)|0;
+	r3 = r3 & 15;
+	r3 = (r0 + r3)|0;
+	r8 = r3 >> 2;
+	heap32[(r8)] = r0;
+	r0 = (r3 + 4)|0;
+	r3 = heap32[(r2+1)];
+}
+}
+else{
+	r0 = 0;
+}
+if(!(r3 <1)) //_LBB466_11
+{
+	r8 = 0;
+_11: while(true){
+	r9 = heap32[(r2+3)];
+	r10 = (r0 + r8)|0;
+	r9 = (r9 + r8)|0;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = 64;
+	r3 = (r3 + -1)|0;
+	r8 = (r8 + 64)|0;
+	memcpy(i7);
+if(!(r3 !=0)) //_LBB466_10
+{
+break _11;
+}
+}
+}
+	r3 = heap32[(r2+3)];
+if(!(r3 ==0)) //_LBB466_15
+{
+	r8 = heapU8[r1+16];
+if(!(r8 ==0)) //_LBB466_14
+{
+	r8 = gNumAlignedFree;
+	r8 = r8 >> 2;
+	r9 = heap32[(r8)];
+	r9 = (r9 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r8)] = r9;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+3)] = 0;
+}
+	heap8[r1+16] = r6;
+	heap32[(r2+3)] = r0;
+	heap32[(r2+2)] = r7;
+	r3 = heap32[(r2+1)];
+}
+}
+	r0 = r3 << 6;
+	r1 = heap32[(r2+3)];
+	r0 = (r1 + r0)|0;
+	r0 = r0 >> 2;
+	heapFloat[(r0)] = f6;
+	heapFloat[(r0+1)] = f8;
+	heapFloat[(r0+2)] = f0;
+	heapFloat[(r0+3)] = f4;
+	heapFloat[(r0+4)] = f1;
+	heapFloat[(r0+5)] = f2;
+	heapFloat[(r0+6)] = f3;
+	heapFloat[(r0+7)] = f5;
+	heap32[(r0+8)] = -1;
+	heap32[(r0+9)] = r4;
+	heap32[(r0+10)] = r5;
+	r0 = heap32[(r2+1)];
+	r0 = (r0 + 1)|0;
+	heap32[(r2+1)] = r0;
+	return;
+}
+
+function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btInternalTriangleIndexCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btInternalTriangleIndexCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + -64;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	if(r0 <1024) //_LBB469_2
+{
+	r1 = heap32[(fp+3)];
+	if(r1 <2097152) //_LBB469_4
+{
+	if(r1 >-1) //_LBB469_6
+{
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+1)];
+	r4 = sp + -32;
+	r5 = r4 >> 2;
+	heap32[(fp+-8)] = 1566444395;
+	heap32[(r5+1)] = 1566444395;
+	heap32[(r5+2)] = 1566444395;
+	r6 = sp + -48;
+	heap32[(r5+3)] = 0;
+	r7 = r6 >> 2;
+	heap32[(fp+-12)] = -581039253;
+	heap32[(r7+1)] = -581039253;
+	heap32[(r7+2)] = -581039253;
+	r3 = r3 >> 2;
+	heap32[(r7+3)] = 0;
+	f0 = heapFloat[(r3)];
+	f1 =        999999984306749440;
+	if(f0 <f1) //_LBB469_8
+{
+	heapFloat[(fp+-8)] = f0;
+	f2 = f0;
+}
+else{
+	f2 = f1;
+}
+	f3 = heapFloat[(r3+1)];
+	if(f3 <f1) //_LBB469_11
+{
+	heapFloat[(r5+1)] = f3;
+	f1 = f3;
+}
+else{
+	f1 =        999999984306749440;
+}
+	f4 = heapFloat[(r3+2)];
+	f5 =        999999984306749440;
+	if(f4 <f5) //_LBB469_14
+{
+	heapFloat[(r5+2)] = f4;
+	f5 = f4;
+}
+	f6 = heapFloat[(r3+3)];
+	f7 =                         0;
+	if(f6 <f7) //_LBB469_17
+{
+	heapFloat[(r5+3)] = f6;
+	f7 = f6;
+}
+	f8 =       -999999984306749440;
+	if(f0 >f8) //_LBB469_20
+{
+	heapFloat[(fp+-12)] = f0;
+}
+else{
+	f0 = f8;
+}
+	if(f3 >f8) //_LBB469_23
+{
+	heapFloat[(r7+1)] = f3;
+}
+else{
+	f3 =       -999999984306749440;
+}
+	f8 =       -999999984306749440;
+	if(f4 >f8) //_LBB469_26
+{
+	heapFloat[(r7+2)] = f4;
+	f8 = f4;
+}
+	f4 =                         0;
+	if(f6 >f4) //_LBB469_29
+{
+	heapFloat[(r7+3)] = f6;
+	f4 = f6;
+}
+	f6 = heapFloat[(r3+4)];
+	if(f6 <f2) //_LBB469_32
+{
+	heapFloat[(fp+-8)] = f6;
+	f2 = f6;
+}
+	f9 = heapFloat[(r3+5)];
+	if(f9 <f1) //_LBB469_35
+{
+	heapFloat[(r5+1)] = f9;
+	f1 = f9;
+}
+	f10 = heapFloat[(r3+6)];
+	if(f10 <f5) //_LBB469_38
+{
+	heapFloat[(r5+2)] = f10;
+	f5 = f10;
+}
+	f11 = heapFloat[(r3+7)];
+	if(f11 <f7) //_LBB469_41
+{
+	heapFloat[(r5+3)] = f11;
+	f7 = f11;
+}
+	if(f0 <f6) //_LBB469_44
+{
+	heapFloat[(fp+-12)] = f6;
+	f0 = f6;
+}
+	if(f3 <f9) //_LBB469_47
+{
+	heapFloat[(r7+1)] = f9;
+	f3 = f9;
+}
+	if(f8 <f10) //_LBB469_50
+{
+	heapFloat[(r7+2)] = f10;
+	f8 = f10;
+}
+	if(f4 <f11) //_LBB469_53
+{
+	heapFloat[(r7+3)] = f11;
+	f4 = f11;
+}
+	f6 = heapFloat[(r3+8)];
+	if(f6 <f2) //_LBB469_56
+{
+	heapFloat[(fp+-8)] = f6;
+	f2 = f6;
+}
+	f9 = heapFloat[(r3+9)];
+	if(f9 <f1) //_LBB469_59
+{
+	heapFloat[(r5+1)] = f9;
+	f1 = f9;
+}
+	f10 = heapFloat[(r3+10)];
+	if(f10 <f5) //_LBB469_62
+{
+	heapFloat[(r5+2)] = f10;
+	f5 = f10;
+}
+	f11 = heapFloat[(r3+11)];
+if(!(f11 >=f7)) //_LBB469_65
+{
+	heapFloat[(r5+3)] = f11;
+}
+	if(f0 <f6) //_LBB469_67
+{
+	heapFloat[(fp+-12)] = f6;
+	f0 = f6;
+}
+	if(f3 <f9) //_LBB469_70
+{
+	heapFloat[(r7+1)] = f9;
+	f3 = f9;
+}
+	if(f8 <f10) //_LBB469_73
+{
+	heapFloat[(r7+2)] = f10;
+	f8 = f10;
+}
+if(!(f4 >=f11)) //_LBB469_76
+{
+	heapFloat[(r7+3)] = f11;
+}
+	f4 = f0-f2;
+	f6 =     0.0020000000949949026;
+if(!(f4 >=f6)) //_LBB469_78
+{
+	f4 =     0.0010000000474974513;
+	f0 = f0+f4;
+	f4 =    -0.0010000000474974513;
+	f2 = f2+f4;
+	heapFloat[(fp+-12)] = f0;
+	heapFloat[(fp+-8)] = f2;
+}
+	f0 = f3-f1;
+if(!(f0 >=f6)) //_LBB469_80
+{
+	f0 =     0.0010000000474974513;
+	f2 =    -0.0010000000474974513;
+	f0 = f3+f0;
+	f1 = f1+f2;
+	heapFloat[(r7+1)] = f0;
+	heapFloat[(r5+1)] = f1;
+}
+	f0 = f8-f5;
+if(!(f0 >=f6)) //_LBB469_82
+{
+	f0 =     0.0010000000474974513;
+	f1 =    -0.0010000000474974513;
+	f0 = f8+f0;
+	f1 = f5+f1;
+	heapFloat[(r7+2)] = f0;
+	heapFloat[(r5+2)] = f1;
+}
+	r2 = r2 >> 2;
+	r3 = heap32[(r2+2)];
+	r5 = sp + -16;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = 0;
+	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
+	r3 = heap32[(r2+2)];
+	r4 = (r5 + 6)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = 1;
+	r0 = r0 << 21;
+	r0 = r0 | r1;
+	_ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7);
+	r1 = r5 >> 2;
+	heap32[(r1+3)] = r0;
+	r1 = heap32[(r2+1)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+1)];
+	r4 = heap32[(r2+2)];
+	if(r4 ==r3) //_LBB469_84
+{
+	r4 = 1;
+	r5 = r3 << 1;
+	r3 = r3 == 0 ? r4 : r5;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	_ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7);
+	r3 = heap32[(r2+1)];
+}
+	r1 = heap32[(r2+3)];
+	r4 = heapU16[(sp+-16)>>1];
+	r3 = r3 << 4;
+	heap16[(r1+r3)>>1] = r4;
+	r1 = (r1 + r3)|0;
+	r3 = heapU16[(sp+-14)>>1];
+	heap16[(r1+2)>>1] = r3;
+	r3 = heapU16[(sp+-12)>>1];
+	heap16[(r1+4)>>1] = r3;
+	r3 = heapU16[(sp+-10)>>1];
+	heap16[(r1+6)>>1] = r3;
+	r3 = heapU16[(sp+-8)>>1];
+	heap16[(r1+8)>>1] = r3;
+	r3 = heapU16[(sp+-6)>>1];
+	r4 = r1 >> 2;
+	heap16[(r1+10)>>1] = r3;
+	heap32[(r4+3)] = r0;
+	r0 = heap32[(r2+1)];
+	r0 = (r0 + 1)|0;
+	heap32[(r2+1)] = r0;
+	return;
+}
+else{
+	r0 = _2E_str20316;
+	r1 = _2E_str10306;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 103;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str19315;
+	r1 = _2E_str10306;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 101;
+	_assert(i7);
+}
+}
+else{
+	r0 = _2E_str18314;
+	r1 = _2E_str10306;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 100;
+	_assert(i7);
+}
+}
+
+function _ZNK14btOptimizedBvh16serializeInPlaceEPvjb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r3;
+	_ZNK14btQuantizedBvh9serializeEPvjb(i7);
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN14btOptimizedBvhD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV14btOptimizedBvh;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN14btQuantizedBvhD2Ev(i7);
+if(!(r0 ==0)) //_LBB471_2
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZN14btOptimizedBvhD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV14btOptimizedBvh;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN14btQuantizedBvhD2Ev(i7);
+	return;
+}
+
+function _ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -112;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	r3 = sp + -64;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f0 = f_g0;
+	r2 = r3 >> 2;
+	heap32[(fp+-16)] = 1065353216;
+	heap32[(r2+1)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+5)] = 1065353216;
+	heap32[(r2+6)] = 0;
+	heap32[(r2+7)] = 0;
+	heap32[(r2+8)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 1065353216;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+12)] = 0;
+	heap32[(r2+13)] = 0;
+	heap32[(r2+14)] = 0;
+	heap32[(r2+15)] = 0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+2)];
+	r2 = sp + -80;
+	r4 = sp + -96;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = r4 >> 2;
+	r1 = r2 >> 2;
+	f1 = heapFloat[(r0+2)];
+	f2 = heapFloat[(r1+2)];
+	f3 = heapFloat[(r0+1)];
+	f4 = heapFloat[(r1+1)];
+	f3 = f3-f4;
+	f4 =                       0.5;
+	f1 = f1-f2;
+	f2 = heapFloat[(fp+-24)];
+	f5 = heapFloat[(fp+-20)];
+	f2 = f2-f5;
+	f3 = f3*f4;
+	f1 = f1*f4;
+	f2 = f2*f4;
+	f3 = f3+f0;
+	f1 = f1+f0;
+	f0 = f2+f0;
+	f2 = f3+f3;
+	f1 = f1+f1;
+	f0 = f0+f0;
+	f2 = f2*f2;
+	f1 = f1*f1;
+	f3 = heapFloat[(fp+1)];
+	f4 =      0.083333328366279602;
+	f0 = f0*f0;
+	r0 = heap32[(fp+2)];
+	f5 = f2+f1;
+	f3 = f3*f4;
+	f1 = f0+f1;
+	r0 = r0 >> 2;
+	f4 = f5*f3;
+	f0 = f0+f2;
+	f1 = f1*f3;
+	heapFloat[(r0)] = f4;
+	f0 = f0*f3;
+	heapFloat[(r0+1)] = f1;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	f0 = f_g0;
+	r1 = heapU8[r0+84];
+	if(r1 !=0) //_LBB474_2
+{
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r4 = (r0 + 52)|0;
+	r0 = (r0 + 68)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r0;
+	heapFloat[(g0+2)] = f0;
+	heap32[(g0+3)] = r1;
+	heap32[(g0+4)] = r2;
+	heap32[(g0+5)] = r3;
+	_Z15btTransformAabbRK9btVector3S1_fRK11btTransformRS_S5_(i7);
+	return;
+}
+else{
+	r0 = _2E_str6232;
+	r1 = _2E_str7331;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 86;
+	_assert(i7);
+}
+}
+
+function _ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -112;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = 1;
+	r2 = _ZGVZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions;
+	heap8[r0+84] = r1;
+	r3 = heapU8[r2];
+if(!(r3 !=0)) //_LBB475_2
+{
+	r3 = _ZZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions;
+	r3 = r3 >> 2;
+	heap32[(r3)] = 1065353216;
+	heap32[(r3+1)] = 0;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 0;
+	heap32[(r3+4)] = 0;
+	heap32[(r3+5)] = 1065353216;
+	heap32[(r3+6)] = 0;
+	heap32[(r3+7)] = 0;
+	heap32[(r3+8)] = 0;
+	heap32[(r3+9)] = 0;
+	heap32[(r3+10)] = 1065353216;
+	heap32[(r3+11)] = 0;
+	heap32[(r3+12)] = -1082130432;
+	heap32[(r3+13)] = 0;
+	heap32[(r3+14)] = 0;
+	heap32[(r3+15)] = 0;
+	heap32[(r3+16)] = 0;
+	heap32[(r3+17)] = -1082130432;
+	heap32[(r3+18)] = 0;
+	heap32[(r3+19)] = 0;
+	heap32[(r3+20)] = 0;
+	heap32[(r3+21)] = 0;
+	heap32[(r3+22)] = -1082130432;
+	heap32[(r3+23)] = 0;
+	heap8[r2] = r1;
+}
+	r1 = sp + -96;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 96;
+	r2 = r0 >> 2;
+	memset(i7);
+	r3 = heap32[(r2)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+17)];
+	r4 = _ZZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = 6;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	f0 = heapFloat[(fp+-24)];
+	f1 = heapFloat[(r2+11)];
+	f0 = f0+f1;
+	r0 = r1 >> 2;
+	heapFloat[(r2+17)] = f0;
+	f0 = heapFloat[(r0+12)];
+	f0 = f0-f1;
+	heapFloat[(r2+13)] = f0;
+	f0 = heapFloat[(r0+5)];
+	f0 = f0+f1;
+	heapFloat[(r2+18)] = f0;
+	f0 = heapFloat[(r0+17)];
+	f0 = f0-f1;
+	heapFloat[(r2+14)] = f0;
+	f0 = heapFloat[(r0+10)];
+	f0 = f0+f1;
+	heapFloat[(r2+19)] = f0;
+	f0 = heapFloat[(r0+22)];
+	f0 = f0-f1;
+	heapFloat[(r2+15)] = f0;
+	return;
+}
+
+function _ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+	heap32[(r0+1)] = 0;
+	heap32[(r0+2)] = 0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZNK13btSphereShape7getNameEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _2E_str342;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN13btSphereShape9setMarginEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	heap32[(r0+11)] = heap32[(fp+1)];
+	return;
+}
+
+function _ZNK13btSphereShape9getMarginEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+7)];
+	f1 = heapFloat[(r0+3)];
+	f0 = f0*f1;
+	f_g0 = f0;
+	return;
+}
+
+function _ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+3)];
+if(!(r0 <1)) //_LBB480_3
+{
+	r1 = heap32[(fp+2)];
+	r1 = (r1 + 8)|0;
+_3: while(true){
+	r2 = r1 >> 2;
+	heap32[(r2+-2)] = 0;
+	heap32[(r2+-1)] = 0;
+	r0 = (r0 + -1)|0;
+	r1 = (r1 + 16)|0;
+	heap32[(r2)] = 0;
+	heap32[(r2+1)] = 0;
+	if(r0 !=0) //_LBB480_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function _ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f0 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f1 = f_g0;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+11)];
+	r2 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	r0 = r2 >> 2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r1 = heap32[(fp+2)];
+	f3 = heapFloat[(r0+14)];
+	f4 = heapFloat[(r0+13)];
+	f5 = heapFloat[(r0+12)];
+	r1 = r1 >> 2;
+	f5 = f5-f_g0;
+	f4 = f4-f1;
+	heapFloat[(r1)] = f5;
+	f3 = f3-f0;
+	heapFloat[(r1+1)] = f4;
+	heapFloat[(r1+2)] = f3;
+	heap32[(r1+3)] = 0;
+	r1 = heap32[(fp+3)];
+	f3 = heapFloat[(r0+14)];
+	f4 = heapFloat[(r0+13)];
+	f5 = heapFloat[(r0+12)];
+	r0 = r1 >> 2;
+	f2 = f5+f_g0;
+	f1 = f4+f1;
+	heapFloat[(r0)] = f2;
+	f0 = f3+f0;
+	heapFloat[(r0+1)] = f1;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+11)];
+	f1 = heapFloat[(fp+1)];
+	f2 =       0.40000000596046448;
+	f1 = f1*f2;
+	heap32[(g0)] = r0;
+	r0 = heap32[(fp+2)];
+	f0 = f1*f_g0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = r0 >> 2;
+	f0 = f0*f_g0;
+	heapFloat[(r0)] = f0;
+	heapFloat[(r0+1)] = f0;
+	heapFloat[(r0+2)] = f0;
+	heap32[(r0+3)] = 0;
+	return;
+}
+
+function _ZN13btSphereShapeD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13btConvexShape;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+if(!(r0 ==0)) //_LBB483_2
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZN13btSphereShapeD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV13btConvexShape;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZNK13btSphereShape24localGetSupportingVertexERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+16)];
+	r3 = heap32[(fp+2)];
+	r4 = sp + -16;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r4 >> 2;
+	r4 = heap32[(fp)];
+	f0 = heapFloat[(fp+-4)];
+	f1 = heapFloat[(r2+1)];
+	f2 = heapFloat[(r2+2)];
+	r4 = r4 >> 2;
+	r3 = r3 >> 2;
+	heap32[(r4+3)] = heap32[(r2+3)];
+	f3 = heapFloat[(r3)];
+	f4 = heapFloat[(r3+1)];
+	f5 = heapFloat[(r3+2)];
+	f6 = f3*f3;
+	f7 = f4*f4;
+	f6 = f6+f7;
+	f7 = f5*f5;
+	f6 = f6+f7;
+	f7 =   1.4210854715202004e-014;
+	f8 =                        -1;
+	f3 = f6 < f7 ? f8 : f3;
+	f4 = f6 < f7 ? f8 : f4;
+	f5 = f6 < f7 ? f8 : f5;
+	f6 = f3*f3;
+	f7 = f4*f4;
+	f6 = f6+f7;
+	f7 = f5*f5;
+	f6 = f6+f7;
+	heapFloat[(g0)] = f6;
+	sqrtf(i7);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+11)];
+	f7 =                         1;
+	f6 = f7/f_g0;
+	heap32[(g0)] = r0;
+	f3 = f3*f6;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	f4 = f4*f6;
+	f3 = f3*f_g0;
+	f5 = f5*f6;
+	f4 = f4*f_g0;
+	f0 = f0+f3;
+	f3 = f5*f_g0;
+	f1 = f1+f4;
+	heapFloat[(r4)] = f0;
+	f0 = f2+f3;
+	heapFloat[(r4+1)] = f1;
+	heapFloat[(r4+2)] = f0;
+	return;
+}
+
+function _ZNK23btStridingMeshInterface14hasPremadeAabbEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 28;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK23btStridingMeshInterface9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+var __label__ = 0;
+	i7 = sp + -72;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+7)];
+	r3 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r3 = r3 >> 2;
+	heap32[(r3+5)] = r2;
+	heap32[(r3)] = 0;
+if(!(r2 ==0)) //_LBB490_32
+{
+	r4 = heap32[(fp+2)];
+	r5 = r4 >> 2;
+	r6 = heap32[(r5)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+4)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = 28;
+	heap32[(g0+2)] = r2;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r2 = r_g0;
+	r6 = heap32[(r5)];
+	r6 = r6 >> 2;
+	r7 = r2 >> 2;
+	r7 = heap32[(r7+2)];
+	r6 = heap32[(r6+7)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r7;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	heap32[(r3)] = r_g0;
+	r6 = heap32[(r1)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+7)];
+	heap32[(g0)] = r0;
+	r8 = 0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = r_g0;
+_3: while(true){
+	if(r8 <r6) //_LBB490_2
+{
+	r9 = heap32[(r1)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+4)];
+	r10 = sp + -4;
+	r11 = sp + -28;
+	r12 = sp + -16;
+	r13 = sp + -24;
+	r14 = sp + -8;
+	r15 = sp + -12;
+	r16 = sp + -32;
+	r17 = sp + -20;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = r12;
+	heap32[(g0+4)] = r13;
+	heap32[(g0+5)] = r14;
+	heap32[(g0+6)] = r15;
+	heap32[(g0+7)] = r16;
+	heap32[(g0+8)] = r17;
+	heap32[(g0+9)] = r8;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r9 = r7 >> 2;
+	r10 = heap32[(fp+-8)];
+	heap32[(r9+5)] = r10;
+	r10 = heap32[(fp+-7)];
+	heap32[(r9+6)] = r10;
+	heap32[(r9+4)] = 0;
+	heap32[(r9+2)] = 0;
+	heap32[(r9+3)] = 0;
+	heap32[(r9)] = 0;
+	heap32[(r9+1)] = 0;
+	r10 = heap32[(fp+-5)];
+	if(r10 ==3) //_LBB490_9
+{
+	r10 = heap32[(fp+-8)];
+if(!(r10 ==0)) //_LBB490_15
+{
+	r11 = heap32[(r5)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = 8;
+	heap32[(g0+2)] = r10;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r10 = r_g0;
+	r11 = heap32[(r5)];
+	r11 = r11 >> 2;
+	r12 = r10 >> 2;
+	r12 = heap32[(r12+2)];
+	r11 = heap32[(r11+7)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r12;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	heap32[(r9+3)] = r_g0;
+	r11 = heap32[(fp+-8)];
+if(!(r11 <1)) //_LBB490_13
+{
+	r11 = 0;
+_11: while(true){
+	r13 = heap32[(fp+-3)];
+	r13 = (r13 * r11)|0;
+	r14 = heap32[(fp+-2)];
+	r15 = heapU16[(r14+r13)>>1];
+	r16 = r11 << 3;
+	r13 = (r14 + r13)|0;
+	heap16[(r12+r16)>>1] = r15;
+	r14 = (r12 + r16)|0;
+	r15 = heapU16[(r13+2)>>1];
+	heap16[(r14+2)>>1] = r15;
+	r13 = heapU16[(r13+4)>>1];
+	r11 = (r11 + 1)|0;
+	heap16[(r14+4)>>1] = r13;
+	r13 = heap32[(fp+-8)];
+if(!(r11 <r13)) //_LBB490_12
+{
+break _11;
+}
+}
+}
+	r11 = heap32[(r5)];
+	r11 = r11 >> 2;
+	r12 = r10 >> 2;
+	r11 = heap32[(r11+5)];
+	r12 = heap32[(r12+2)];
+	r13 = _2E_str1350;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = 1497453121;
+	heap32[(g0+4)] = r12;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+}
+}
+else{
+	if(r10 !=2) //_LBB490_14
+{
+__label__ = 14;
+break _3;
+}
+else{
+	r10 = heap32[(fp+-8)];
+	r10 = (r10 * 3)|0;
+if(!(r10 ==0)) //_LBB490_15
+{
+	r11 = heap32[(r5)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = 4;
+	heap32[(g0+2)] = r10;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r10 = r_g0;
+	r11 = heap32[(r5)];
+	r11 = r11 >> 2;
+	r12 = r10 >> 2;
+	r12 = heap32[(r12+2)];
+	r11 = heap32[(r11+7)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r12;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	heap32[(r9+2)] = r_g0;
+	r11 = heap32[(fp+-8)];
+_17: do {
+if(!(r11 <1)) //_LBB490_8
+{
+	r11 = 0;
+_19: while(true){
+	r13 = heap32[(fp+-3)];
+	r13 = (r13 * r11)|0;
+	r14 = heap32[(fp+-2)];
+	r15 = (r11 * 3)|0;
+	r13 = (r14 + r13)|0;
+	r13 = r13 >> 2;
+	r14 = r15 << 2;
+	r14 = (r12 + r14)|0;
+	r15 = heap32[(r13)];
+	r14 = r14 >> 2;
+	heap32[(r14)] = r15;
+	r15 = heap32[(r13+1)];
+	heap32[(r14+1)] = r15;
+	r13 = heap32[(r13+2)];
+	r11 = (r11 + 1)|0;
+	heap32[(r14+2)] = r13;
+	r13 = heap32[(fp+-8)];
+if(!(r11 <r13)) //_LBB490_7
+{
+break _17;
+}
+}
+}
+} while(0);
+	r11 = heap32[(r5)];
+	r11 = r11 >> 2;
+	r12 = r10 >> 2;
+	r11 = heap32[(r11+5)];
+	r12 = heap32[(r12+2)];
+	r13 = _2E_str349;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = 1497453121;
+	heap32[(g0+4)] = r12;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+}
+}
+}
+	r10 = heap32[(fp+-4)];
+_23: do {
+	if(r10 ==1) //_LBB490_22
+{
+	r10 = heap32[(fp+-7)];
+	if(r10 ==0) //_LBB490_29
+{
+break _23;
+}
+else{
+	r11 = heap32[(r5)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = 32;
+	heap32[(g0+2)] = r10;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r10 = r_g0;
+	r11 = heap32[(r5)];
+	r11 = r11 >> 2;
+	r12 = r10 >> 2;
+	r12 = heap32[(r12+2)];
+	r11 = heap32[(r11+7)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r12;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	heap32[(r9+1)] = r_g0;
+	r9 = heap32[(fp+-7)];
+_26: do {
+if(!(r9 <1)) //_LBB490_26
+{
+	r11 = heap32[(fp+-1)];
+	r13 = heap32[(fp+-6)];
+	r11 = (r11 + 16)|0;
+	r14 = 0;
+_28: while(true){
+	r15 = r14 << 5;
+	r15 = (r12 + r15)|0;
+	llvm_move_double(r15,r11+-16);
+	r14 = (r14 + 1)|0;
+	r16 = (r11 + r13)|0;
+	llvm_move_double(r15+8,r11+-8);
+	llvm_move_double(r15+16,r11);
+	r11 = r16;
+if(!(r14 <r9)) //_LBB490_25
+{
+break _26;
+}
+}
+}
+} while(0);
+	r9 = heap32[(r5)];
+	r9 = r9 >> 2;
+	r11 = r10 >> 2;
+	r9 = heap32[(r9+5)];
+	r11 = heap32[(r11+2)];
+	r12 = _2E_str5354;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r12;
+	heap32[(g0+3)] = 1497453121;
+	heap32[(g0+4)] = r11;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+}
+}
+else{
+	if(r10 !=0) //_LBB490_27
+{
+if(!(uint(r10) <uint(2))) //_LBB490_29
+{
+__label__ = 28;
+break _3;
+}
+}
+else{
+	r10 = heap32[(fp+-7)];
+if(!(r10 ==0)) //_LBB490_29
+{
+	r11 = heap32[(r5)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = 16;
+	heap32[(g0+2)] = r10;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r10 = r_g0;
+	r11 = heap32[(r5)];
+	r11 = r11 >> 2;
+	r12 = r10 >> 2;
+	r12 = heap32[(r12+2)];
+	r11 = heap32[(r11+7)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r12;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	heap32[(r9)] = r_g0;
+	r9 = heap32[(fp+-7)];
+_36: do {
+if(!(r9 <1)) //_LBB490_21
+{
+	r9 = 0;
+_38: while(true){
+	r11 = heap32[(fp+-6)];
+	r13 = heap32[(fp+-1)];
+	r11 = (r11 * r9)|0;
+	r14 = r9 << 4;
+	r14 = (r12 + r14)|0;
+	r11 = (r13 + r11)|0;
+	r13 = r14 >> 2;
+	r11 = r11 >> 2;
+	heap32[(r13)] = heap32[(r11)];
+	r9 = (r9 + 1)|0;
+	heap32[(r13+1)] = heap32[(r11+1)];
+	heap32[(r13+2)] = heap32[(r11+2)];
+	r11 = heap32[(fp+-7)];
+if(!(r9 <r11)) //_LBB490_20
+{
+break _36;
+}
+}
+}
+} while(0);
+	r9 = heap32[(r5)];
+	r9 = r9 >> 2;
+	r11 = r10 >> 2;
+	r9 = heap32[(r9+5)];
+	r11 = heap32[(r11+2)];
+	r12 = _2E_str5223;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r12;
+	heap32[(g0+3)] = 1497453121;
+	heap32[(g0+4)] = r11;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+}
+}
+}
+} while(0);
+	r9 = heap32[(r1)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+6)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r8;
+	r8 = (r8 + 1)|0;
+	r7 = (r7 + 28)|0;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+}
+else{
+__label__ = 31;
+break _3;
+}
+}
+switch(__label__ ){//multiple entries
+case 31:
+	r0 = heap32[(r5)];
+	r0 = r0 >> 2;
+	r5 = r2 >> 2;
+	r0 = heap32[(r0+5)];
+	r5 = heap32[(r5+2)];
+	r6 = _2E_str7356;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = 1497453121;
+	heap32[(g0+4)] = r5;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+break;
+case 28:
+	r0 = _2E_str6355;
+	r1 = _2E_str3352;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 319;
+	_assert(i7);
+break;
+case 14:
+	r0 = _2E_str10;
+	r1 = _2E_str3352;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 271;
+	_assert(i7);
+break;
+}
+}
+	heap32[(r3+1)] = heap32[(r1+1)];
+	heap32[(r3+2)] = heap32[(r1+2)];
+	heap32[(r3+3)] = heap32[(r1+3)];
+	heap32[(r3+4)] = heap32[(r1+4)];
+	r0 = _2E_str8357;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -120;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+7)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r3 = heap32[(fp+1)];
+	f0 = heapFloat[(r1+1)];
+	f1 = heapFloat[(r1+2)];
+	f2 = heapFloat[(r1+3)];
+	r4 = 0;
+_1: while(true){
+	if(r4 <r2) //_LBB491_1
+{
+	r5 = heap32[(r1)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+4)];
+	r6 = sp + -4;
+	r7 = sp + -28;
+	r8 = sp + -16;
+	r9 = sp + -24;
+	r10 = sp + -8;
+	r11 = sp + -12;
+	r12 = sp + -32;
+	r13 = sp + -20;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r8;
+	heap32[(g0+4)] = r9;
+	heap32[(g0+5)] = r10;
+	heap32[(g0+6)] = r11;
+	heap32[(g0+7)] = r12;
+	heap32[(g0+8)] = r13;
+	heap32[(g0+9)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r5 = heap32[(fp+-4)];
+_4: do {
+	if(r5 ==1) //_LBB491_13
+{
+	r5 = heap32[(fp+-5)];
+	if(r5 ==3) //_LBB491_17
+{
+	r5 = heap32[(fp+-8)];
+	if(r5 <1) //_LBB491_25
+{
+break _4;
+}
+else{
+	r5 = 0;
+_9: while(true){
+	r6 = heap32[(fp+-3)];
+	r7 = heap32[(fp+-2)];
+	r6 = (r6 * r5)|0;
+	r8 = heapU16[(r7+r6)>>1];
+	r9 = heap32[(fp+-6)];
+	r10 = heap32[(fp+-1)];
+	r8 = (r8 * r9)|0;
+	r11 = (r10 + r8)|0;
+	f3 = llvm_readDouble((r10+r8));
+	f4 = llvm_readDouble((r11+16));
+	f5 = llvm_readDouble((r11+8));
+	f3 = f3; //fdtos f3, f3
+	r8 = sp + -80;
+	f5 = f5; //fdtos f5, f5
+	f3 = f3*f0;
+	r11 = r8 >> 2;
+	f4 = f4; //fdtos f4, f4
+	f5 = f5*f1;
+	heapFloat[(fp+-20)] = f3;
+	f3 = f4*f2;
+	heapFloat[(r11+1)] = f5;
+	heapFloat[(r11+2)] = f3;
+	r6 = (r7 + r6)|0;
+	heap32[(r11+3)] = 0;
+	r7 = heapU16[(r6+2)>>1];
+	r7 = (r7 * r9)|0;
+	r12 = (r10 + r7)|0;
+	f3 = llvm_readDouble((r10+r7));
+	f3 = f3; //fdtos f3, f3
+	f4 = llvm_readDouble((r12+16));
+	f5 = llvm_readDouble((r12+8));
+	f5 = f5; //fdtos f5, f5
+	f3 = f3*f0;
+	f4 = f4; //fdtos f4, f4
+	f5 = f5*f1;
+	heapFloat[(r11+4)] = f3;
+	f3 = f4*f2;
+	heapFloat[(r11+5)] = f5;
+	heapFloat[(r11+6)] = f3;
+	heap32[(r11+7)] = 0;
+	r6 = heapU16[(r6+4)>>1];
+	r6 = (r6 * r9)|0;
+	r7 = (r10 + r6)|0;
+	f3 = llvm_readDouble((r10+r6));
+	f3 = f3; //fdtos f3, f3
+	f4 = llvm_readDouble((r7+16));
+	f5 = llvm_readDouble((r7+8));
+	f5 = f5; //fdtos f5, f5
+	f3 = f3*f0;
+	f4 = f4; //fdtos f4, f4
+	f5 = f5*f1;
+	heapFloat[(r11+8)] = f3;
+	f3 = f4*f2;
+	heapFloat[(r11+9)] = f5;
+	heapFloat[(r11+10)] = f3;
+	r6 = r3 >> 2;
+	heap32[(r11+11)] = 0;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+2)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	r5 = (r5 + 1)|0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = heap32[(fp+-8)];
+	if(r5 <r6) //_LBB491_20
+{
+continue _9;
+}
+else{
+break _4;
+}
+}
+}
+}
+else{
+	if(r5 !=2) //_LBB491_21
+{
+	r5 = (r5 + -2)|0;
+if(!(uint(r5) <uint(2))) //_LBB491_25
+{
+__label__ = 22;
+break _1;
+}
+}
+else{
+	r5 = heap32[(fp+-8)];
+	if(r5 <1) //_LBB491_25
+{
+break _4;
+}
+else{
+	r5 = 0;
+_16: while(true){
+	r6 = heap32[(fp+-3)];
+	r7 = heap32[(fp+-2)];
+	r6 = (r6 * r5)|0;
+	r6 = (r7 + r6)|0;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r8 = heap32[(fp+-6)];
+	r9 = heap32[(fp+-1)];
+	r7 = (r8 * r7)|0;
+	r10 = (r9 + r7)|0;
+	f3 = llvm_readDouble((r9+r7));
+	f4 = llvm_readDouble((r10+16));
+	f5 = llvm_readDouble((r10+8));
+	f3 = f3; //fdtos f3, f3
+	r7 = sp + -80;
+	f5 = f5; //fdtos f5, f5
+	f3 = f3*f0;
+	r10 = r7 >> 2;
+	f4 = f4; //fdtos f4, f4
+	f5 = f5*f1;
+	heapFloat[(fp+-20)] = f3;
+	f3 = f4*f2;
+	heapFloat[(r10+1)] = f5;
+	heapFloat[(r10+2)] = f3;
+	heap32[(r10+3)] = 0;
+	r11 = heap32[(r6+1)];
+	r11 = (r8 * r11)|0;
+	r12 = (r9 + r11)|0;
+	f3 = llvm_readDouble((r9+r11));
+	f3 = f3; //fdtos f3, f3
+	f4 = llvm_readDouble((r12+16));
+	f5 = llvm_readDouble((r12+8));
+	f5 = f5; //fdtos f5, f5
+	f3 = f3*f0;
+	f4 = f4; //fdtos f4, f4
+	f5 = f5*f1;
+	heapFloat[(r10+4)] = f3;
+	f3 = f4*f2;
+	heapFloat[(r10+5)] = f5;
+	heapFloat[(r10+6)] = f3;
+	heap32[(r10+7)] = 0;
+	r6 = heap32[(r6+2)];
+	r6 = (r8 * r6)|0;
+	r8 = (r9 + r6)|0;
+	f3 = llvm_readDouble((r9+r6));
+	f3 = f3; //fdtos f3, f3
+	f4 = llvm_readDouble((r8+16));
+	f5 = llvm_readDouble((r8+8));
+	f5 = f5; //fdtos f5, f5
+	f3 = f3*f0;
+	f4 = f4; //fdtos f4, f4
+	f5 = f5*f1;
+	heapFloat[(r10+8)] = f3;
+	f3 = f4*f2;
+	heapFloat[(r10+9)] = f5;
+	heapFloat[(r10+10)] = f3;
+	r6 = r3 >> 2;
+	heap32[(r10+11)] = 0;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+2)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	r5 = (r5 + 1)|0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = heap32[(fp+-8)];
+	if(r5 <r6) //_LBB491_19
+{
+continue _16;
+}
+else{
+break _4;
+}
+}
+}
+}
+}
+}
+else{
+	if(r5 !=0) //_LBB491_23
+{
+if(!(uint(r5) <uint(2))) //_LBB491_25
+{
+__label__ = 24;
+break _1;
+}
+}
+else{
+	r5 = heap32[(fp+-5)];
+	if(r5 ==3) //_LBB491_7
+{
+	r5 = heap32[(fp+-8)];
+	if(r5 <1) //_LBB491_25
+{
+break _4;
+}
+else{
+	r5 = 0;
+_25: while(true){
+	r6 = heap32[(fp+-3)];
+	r7 = heap32[(fp+-2)];
+	r6 = (r6 * r5)|0;
+	r8 = heapU16[(r7+r6)>>1];
+	r9 = heap32[(fp+-6)];
+	r10 = heap32[(fp+-1)];
+	r8 = (r8 * r9)|0;
+	r8 = (r10 + r8)|0;
+	r8 = r8 >> 2;
+	f3 = heapFloat[(r8)];
+	f4 = heapFloat[(r8+2)];
+	f5 = heapFloat[(r8+1)];
+	r8 = sp + -80;
+	f3 = f3*f0;
+	r11 = r8 >> 2;
+	f5 = f5*f1;
+	heapFloat[(fp+-20)] = f3;
+	f3 = f4*f2;
+	heapFloat[(r11+1)] = f5;
+	heapFloat[(r11+2)] = f3;
+	r6 = (r7 + r6)|0;
+	heap32[(r11+3)] = 0;
+	r7 = heapU16[(r6+2)>>1];
+	r7 = (r7 * r9)|0;
+	r7 = (r10 + r7)|0;
+	r7 = r7 >> 2;
+	f3 = heapFloat[(r7+2)];
+	f4 = heapFloat[(r7+1)];
+	f5 = heapFloat[(r7)];
+	f5 = f5*f0;
+	f4 = f4*f1;
+	heapFloat[(r11+4)] = f5;
+	f3 = f3*f2;
+	heapFloat[(r11+5)] = f4;
+	heapFloat[(r11+6)] = f3;
+	heap32[(r11+7)] = 0;
+	r6 = heapU16[(r6+4)>>1];
+	r6 = (r6 * r9)|0;
+	r6 = (r10 + r6)|0;
+	r6 = r6 >> 2;
+	f3 = heapFloat[(r6+2)];
+	f4 = heapFloat[(r6+1)];
+	f5 = heapFloat[(r6)];
+	f5 = f5*f0;
+	f4 = f4*f1;
+	heapFloat[(r11+8)] = f5;
+	f3 = f3*f2;
+	heapFloat[(r11+9)] = f4;
+	heapFloat[(r11+10)] = f3;
+	r6 = r3 >> 2;
+	heap32[(r11+11)] = 0;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+2)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	r5 = (r5 + 1)|0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = heap32[(fp+-8)];
+	if(r5 <r6) //_LBB491_10
+{
+continue _25;
+}
+else{
+break _4;
+}
+}
+}
+}
+else{
+	if(r5 !=2) //_LBB491_11
+{
+	r5 = (r5 + -2)|0;
+if(!(uint(r5) <uint(2))) //_LBB491_25
+{
+__label__ = 12;
+break _1;
+}
+}
+else{
+	r5 = heap32[(fp+-8)];
+if(!(r5 <1)) //_LBB491_25
+{
+	r5 = 0;
+_32: while(true){
+	r6 = heap32[(fp+-3)];
+	r7 = heap32[(fp+-2)];
+	r6 = (r6 * r5)|0;
+	r6 = (r7 + r6)|0;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r8 = heap32[(fp+-6)];
+	r9 = heap32[(fp+-1)];
+	r7 = (r8 * r7)|0;
+	r7 = (r9 + r7)|0;
+	r7 = r7 >> 2;
+	f3 = heapFloat[(r7)];
+	f4 = heapFloat[(r7+2)];
+	f5 = heapFloat[(r7+1)];
+	r7 = sp + -80;
+	f3 = f3*f0;
+	r10 = r7 >> 2;
+	f5 = f5*f1;
+	heapFloat[(fp+-20)] = f3;
+	f3 = f4*f2;
+	heapFloat[(r10+1)] = f5;
+	heapFloat[(r10+2)] = f3;
+	heap32[(r10+3)] = 0;
+	r11 = heap32[(r6+1)];
+	r11 = (r8 * r11)|0;
+	r11 = (r9 + r11)|0;
+	r11 = r11 >> 2;
+	f3 = heapFloat[(r11+2)];
+	f4 = heapFloat[(r11+1)];
+	f5 = heapFloat[(r11)];
+	f5 = f5*f0;
+	f4 = f4*f1;
+	heapFloat[(r10+4)] = f5;
+	f3 = f3*f2;
+	heapFloat[(r10+5)] = f4;
+	heapFloat[(r10+6)] = f3;
+	heap32[(r10+7)] = 0;
+	r6 = heap32[(r6+2)];
+	r6 = (r8 * r6)|0;
+	r6 = (r9 + r6)|0;
+	r6 = r6 >> 2;
+	f3 = heapFloat[(r6+2)];
+	f4 = heapFloat[(r6+1)];
+	f5 = heapFloat[(r6)];
+	f5 = f5*f0;
+	f4 = f4*f1;
+	heapFloat[(r10+8)] = f5;
+	f3 = f3*f2;
+	heapFloat[(r10+9)] = f4;
+	heapFloat[(r10+10)] = f3;
+	r6 = r3 >> 2;
+	heap32[(r10+11)] = 0;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+2)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	r5 = (r5 + 1)|0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = heap32[(fp+-8)];
+if(!(r5 <r6)) //_LBB491_9
+{
+break _4;
+}
+}
+}
+}
+}
+}
+}
+} while(0);
+	r5 = heap32[(r1)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+6)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	r4 = (r4 + 1)|0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+continue _1;
+}
+else{
+__label__ = 27;
+break _1;
+}
+}
+switch(__label__ ){//multiple entries
+case 27:
+	return;
+break;
+case 22:
+	r0 = _2E_str9358;
+	r1 = _2E_str3352;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 134;
+	_assert(i7);
+break;
+case 24:
+	r0 = _2E_str6355;
+	r1 = _2E_str3352;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 139;
+	_assert(i7);
+break;
+case 12:
+	r0 = _2E_str9358;
+	r1 = _2E_str3352;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 92;
+	_assert(i7);
+break;
+}
+}
+
+function _ZN23btStridingMeshInterfaceD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV23btStridingMeshInterface;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN23btStridingMeshInterfaceD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV23btStridingMeshInterface;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN31btInternalTriangleIndexCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btInternalTriangleIndexCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN31btInternalTriangleIndexCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btInternalTriangleIndexCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN18btTriangleCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN18btTriangleCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN26btTriangleIndexVertexArray16unLockVertexBaseEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN26btTriangleIndexVertexArray19preallocateVerticesEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN26btTriangleIndexVertexArray18preallocateIndicesEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+12)];
+	r1 = 1;
+	r0 = r0 == r1;
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	heap32[(r0+13)] = heap32[(r1)];
+	heap32[(r0+14)] = heap32[(r1+1)];
+	r2 = heap32[(fp+2)];
+	heap32[(r0+15)] = heap32[(r1+2)];
+	r2 = r2 >> 2;
+	heap32[(r0+16)] = heap32[(r1+3)];
+	heap32[(r0+17)] = heap32[(r2)];
+	heap32[(r0+18)] = heap32[(r2+1)];
+	heap32[(r0+19)] = heap32[(r2+2)];
+	heap32[(r0+20)] = heap32[(r2+3)];
+	heap32[(r0+12)] = 1;
+	return;
+}
+
+function _ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	heap32[(r1)] = heap32[(r0+13)];
+	heap32[(r1+1)] = heap32[(r0+14)];
+	r2 = heap32[(fp+2)];
+	heap32[(r1+2)] = heap32[(r0+15)];
+	r2 = r2 >> 2;
+	heap32[(r1+3)] = heap32[(r0+16)];
+	heap32[(r2)] = heap32[(r0+17)];
+	heap32[(r2+1)] = heap32[(r0+18)];
+	heap32[(r2+2)] = heap32[(r0+19)];
+	heap32[(r2+3)] = heap32[(r0+20)];
+	return;
+}
+
+function _ZNK26btTriangleIndexVertexArray14getNumSubPartsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+6)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+9)];
+	r0 = r0 >> 2;
+	r1 = r1 << 5;
+	r0 = heap32[(r0+8)];
+	r0 = (r0 + r1)|0;
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(r0+3)];
+	r1 = r1 >> 2;
+	r3 = heap32[(fp+1)];
+	heap32[(r1)] = r2;
+	r1 = r3 >> 2;
+	r2 = heap32[(r0+4)];
+	r3 = heap32[(fp+3)];
+	heap32[(r1)] = r2;
+	r1 = r3 >> 2;
+	r2 = heap32[(r0+7)];
+	r3 = heap32[(fp+4)];
+	heap32[(r1)] = r2;
+	r1 = r3 >> 2;
+	r2 = heap32[(r0+5)];
+	r3 = heap32[(fp+7)];
+	heap32[(r1)] = r2;
+	r1 = r3 >> 2;
+	r2 = heap32[(r0)];
+	r3 = heap32[(fp+5)];
+	heap32[(r1)] = r2;
+	r1 = r3 >> 2;
+	r2 = heap32[(r0+1)];
+	r3 = heap32[(fp+6)];
+	heap32[(r1)] = r2;
+	r1 = r3 >> 2;
+	r2 = heap32[(r0+2)];
+	r3 = heap32[(fp+8)];
+	heap32[(r1)] = r2;
+	r1 = r3 >> 2;
+	r0 = heap32[(r0+6)];
+	heap32[(r1)] = r0;
+	return;
+}
+
+function _ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+7)];
+	r3 = heap32[(fp+9)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = r_g0;
+	if(r0 >r3) //_LBB507_2
+{
+	r0 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r4 = heap32[(fp+3)];
+	r5 = heap32[(fp+4)];
+	r6 = heap32[(fp+5)];
+	r7 = heap32[(fp+6)];
+	r8 = heap32[(fp+7)];
+	r9 = heap32[(fp+8)];
+	r3 = r3 << 5;
+	r1 = heap32[(r1+8)];
+	r1 = (r1 + r3)|0;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1+3)];
+	r2 = r2 >> 2;
+	heap32[(r2)] = r3;
+	r0 = r0 >> 2;
+	r2 = heap32[(r1+4)];
+	heap32[(r0)] = r2;
+	r0 = r4 >> 2;
+	r2 = heap32[(r1+7)];
+	heap32[(r0)] = r2;
+	r0 = r5 >> 2;
+	r2 = heap32[(r1+5)];
+	heap32[(r0)] = r2;
+	r0 = r8 >> 2;
+	r2 = heap32[(r1)];
+	heap32[(r0)] = r2;
+	r0 = r6 >> 2;
+	r2 = heap32[(r1+1)];
+	heap32[(r0)] = r2;
+	r0 = r7 >> 2;
+	r2 = heap32[(r1+2)];
+	heap32[(r0)] = r2;
+	r0 = r9 >> 2;
+	r1 = heap32[(r1+6)];
+	heap32[(r0)] = r1;
+	return;
+}
+else{
+	r1 = _2E_str367;
+	r3 = _2E_str1368;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 41;
+	_assert(i7);
+}
+}
+
+function _ZN26btTriangleIndexVertexArrayD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV26btTriangleIndexVertexArray;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+8)];
+if(!(r1 ==0)) //_LBB508_4
+{
+	r3 = heapU8[r0+36];
+if(!(r3 ==0)) //_LBB508_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+8)] = 0;
+}
+	r1 = 1;
+	heap8[r0+36] = r1;
+	heap32[(r2+8)] = 0;
+	r1 = _ZTV23btStridingMeshInterface;
+	heap32[(r2+6)] = 0;
+	r1 = (r1 + 8)|0;
+	heap32[(r2+7)] = 0;
+	heap32[(r2)] = r1;
+if(!(r0 ==0)) //_LBB508_6
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+
+function _ZN26btTriangleIndexVertexArrayD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV26btTriangleIndexVertexArray;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+8)];
+if(!(r1 ==0)) //_LBB509_4
+{
+	r3 = heapU8[r0+36];
+if(!(r3 ==0)) //_LBB509_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+8)] = 0;
+}
+	r1 = 1;
+	heap8[r0+36] = r1;
+	heap32[(r2+8)] = 0;
+	r0 = _ZTV23btStridingMeshInterface;
+	heap32[(r2+6)] = 0;
+	r0 = (r0 + 8)|0;
+	heap32[(r2+7)] = 0;
+	heap32[(r2)] = r0;
+	return;
+}
+
+function _ZNK19btTriangleMeshShape7getNameEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _2E_str372;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	f0 = heapFloat[(r1+10)];
+	f1 = heapFloat[(r1+6)];
+	f2 = heapFloat[(r1+9)];
+	f3 = heapFloat[(r1+5)];
+	f4 = heapFloat[(r1+8)];
+	f5 = heapFloat[(r1+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f6 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	f7 = f_g0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+11)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = heap32[(fp+1)];
+	f4 = f4-f5;
+	f5 =                       0.5;
+	f2 = f2-f3;
+	f0 = f0-f1;
+	f1 = heapFloat[(r1+10)];
+	f3 = heapFloat[(r1+6)];
+	f9 = heapFloat[(r1+9)];
+	f10 = heapFloat[(r1+5)];
+	f11 = heapFloat[(r1+8)];
+	f12 = heapFloat[(r1+4)];
+	r0 = r0 >> 2;
+	f4 = f4*f5;
+	f2 = f2*f5;
+	f0 = f0*f5;
+	f1 = f1+f3;
+	f3 = f9+f10;
+	f9 = f11+f12;
+	f10 = heapFloat[(r0+10)];
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp+3)];
+	f4 = f4+f_g0;
+	f2 = f2+f7;
+	f0 = f0+f6;
+	f1 = f1*f5;
+	f3 = f3*f5;
+	f5 = f9*f5;
+	f6 =                         0;
+	if(f10 <f6) //_LBB511_2
+{
+	f7 = -f10;
+}
+else{
+	f7 = f10;
+}
+	f8 = heapFloat[(r0+9)];
+	if(f8 <f6) //_LBB511_5
+{
+	f9 = -f8;
+}
+else{
+	f9 = f8;
+}
+	f11 = heapFloat[(r0+8)];
+	if(f11 <f6) //_LBB511_8
+{
+	f12 = -f11;
+}
+else{
+	f12 = f11;
+}
+	f13 = heapFloat[(r0+6)];
+	if(f13 <f6) //_LBB511_11
+{
+	f14 = -f13;
+}
+else{
+	f14 = f13;
+}
+	f15 = heapFloat[(r0+5)];
+	if(f15 <f6) //_LBB511_14
+{
+	f16 = -f15;
+}
+else{
+	f16 = f15;
+}
+	f17 = heapFloat[(r0+4)];
+	if(f17 <f6) //_LBB511_17
+{
+	f18 = -f17;
+}
+else{
+	f18 = f17;
+}
+	f19 = heapFloat[(r0+2)];
+	if(f19 <f6) //_LBB511_20
+{
+	f20 = -f19;
+}
+else{
+	f20 = f19;
+}
+	f21 = heapFloat[(r0+1)];
+	if(f21 <f6) //_LBB511_23
+{
+	f22 = -f21;
+}
+else{
+	f22 = f21;
+}
+	f23 = heapFloat[(r0)];
+	if(f23 <f6) //_LBB511_26
+{
+	f6 = -f23;
+}
+else{
+	f6 = f23;
+}
+	f23 = f23*f5;
+	f21 = f21*f3;
+	f17 = f17*f5;
+	f15 = f15*f3;
+	f21 = f23+f21;
+	f19 = f19*f1;
+	f6 = f6*f4;
+	f22 = f22*f2;
+	f5 = f11*f5;
+	f3 = f8*f3;
+	f8 = f17+f15;
+	f11 = f13*f1;
+	f13 = f18*f4;
+	f15 = f16*f2;
+	f16 = f21+f19;
+	f17 = heapFloat[(r0+12)];
+	f6 = f6+f22;
+	f18 = f20*f0;
+	f3 = f5+f3;
+	f1 = f10*f1;
+	f4 = f12*f4;
+	f2 = f9*f2;
+	f5 = f8+f11;
+	f8 = heapFloat[(r0+13)];
+	f9 = heapFloat[(r0+14)];
+	f10 = f13+f15;
+	f11 = f14*f0;
+	f12 = f16+f17;
+	f6 = f6+f18;
+	f1 = f3+f1;
+	r0 = r1 >> 2;
+	f2 = f4+f2;
+	f0 = f7*f0;
+	f3 = f5+f8;
+	f4 = f10+f11;
+	f5 = f12-f6;
+	f1 = f1+f9;
+	f0 = f2+f0;
+	f2 = f3-f4;
+	heapFloat[(r0)] = f5;
+	f5 = f1-f0;
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f5;
+	r1 = r2 >> 2;
+	f2 = f12+f6;
+	heap32[(r0+3)] = 0;
+	f3 = f3+f4;
+	heapFloat[(r1)] = f2;
+	f0 = f1+f0;
+	heapFloat[(r1+1)] = f3;
+	heapFloat[(r1+2)] = f0;
+	heap32[(r1+3)] = 0;
+	return;
+}
+
+function _ZN19btTriangleMeshShape15recalcLocalAabbEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -64;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = 0;
+_1: while(true){
+	r2 = sp + -16;
+	r3 = r2 >> 2;
+	heap32[(fp+-4)] = 0;
+	heap32[(r3+1)] = 0;
+	heap32[(r3+2)] = 0;
+	r4 = (r2 + r1)|0;
+	heap32[(r3+3)] = 0;
+	r3 = r4 >> 2;
+	heap32[(r3)] = 1065353216;
+	r4 = r0 >> 2;
+	r5 = heap32[(r4)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+16)];
+	r6 = sp + -32;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	r7 = (r6 + r1)|0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r5 = r7 >> 2;
+	r7 = (r0 + r1)|0;
+	f0 = heapFloat[(r5)];
+	f1 = heapFloat[(r4+3)];
+	f0 = f0+f1;
+	r7 = r7 >> 2;
+	heapFloat[(r7+8)] = f0;
+	heap32[(r3)] = -1082130432;
+	r3 = heap32[(r4)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+16)];
+	r8 = sp + -48;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = r6 >> 2;
+	r3 = r8 >> 2;
+	heap32[(fp+-8)] = heap32[(fp+-12)];
+	heap32[(r2+1)] = heap32[(r3+1)];
+	heap32[(r2+2)] = heap32[(r3+2)];
+	heap32[(r2+3)] = heap32[(r3+3)];
+	f0 = heapFloat[(r5)];
+	f1 = heapFloat[(r4+3)];
+	r1 = (r1 + 4)|0;
+	f0 = f0-f1;
+	heapFloat[(r7+4)] = f0;
+	if(r1 !=12) //_LBB512_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+	return;
+}
+
+function _ZN21SupportVertexCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN21SupportVertexCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN21SupportVertexCallback15processTriangleEP9btVector3ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r1 = r1 >> 2;
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r1+22)];
+	f1 = heapFloat[(r0)];
+	f2 = heapFloat[(r1+23)];
+	f3 = heapFloat[(r0+1)];
+	f4 = heapFloat[(r1+24)];
+	f5 = heapFloat[(r0+2)];
+	f1 = f0*f1;
+	f3 = f2*f3;
+	f1 = f1+f3;
+	f3 = f4*f5;
+	f5 = heapFloat[(r1+21)];
+	f1 = f1+f3;
+	if(f5 <f1) //_LBB515_2
+{
+	heapFloat[(r1+21)] = f1;
+	heap32[(r1+1)] = heap32[(r0)];
+	heap32[(r1+2)] = heap32[(r0+1)];
+	heap32[(r1+3)] = heap32[(r0+2)];
+	heap32[(r1+4)] = heap32[(r0+3)];
+	f5 = f1;
+}
+	f1 = heapFloat[(r0+4)];
+	f3 = heapFloat[(r0+5)];
+	f1 = f0*f1;
+	f3 = f2*f3;
+	f6 = heapFloat[(r0+6)];
+	f1 = f1+f3;
+	f3 = f4*f6;
+	f1 = f1+f3;
+	if(f5 <f1) //_LBB515_7
+{
+	heapFloat[(r1+21)] = f1;
+	heap32[(r1+1)] = heap32[(r0+4)];
+	heap32[(r1+2)] = heap32[(r0+5)];
+	heap32[(r1+3)] = heap32[(r0+6)];
+	heap32[(r1+4)] = heap32[(r0+7)];
+	f5 = f1;
+}
+	f1 = heapFloat[(r0+8)];
+	f3 = heapFloat[(r0+9)];
+	f0 = f0*f1;
+	f1 = f2*f3;
+	f2 = heapFloat[(r0+10)];
+	f0 = f0+f1;
+	f1 = f4*f2;
+	f0 = f0+f1;
+	if(f5 <f0) //_LBB515_8
+{
+	heapFloat[(r1+21)] = f0;
+	heap32[(r1+1)] = heap32[(r0+8)];
+	heap32[(r1+2)] = heap32[(r0+9)];
+	heap32[(r1+3)] = heap32[(r0+10)];
+	heap32[(r1+4)] = heap32[(r0+11)];
+	return;
+}
+else{
+	return;
+}
+}
+
+function _ZN19btTriangleMeshShape15setLocalScalingERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp+1)];
+	r1 = heap32[(r1+12)];
+	r1 = r1 >> 2;
+	r2 = r2 >> 2;
+	heap32[(r1+1)] = heap32[(r2)];
+	heap32[(r1+2)] = heap32[(r2+1)];
+	heap32[(r1+3)] = heap32[(r2+2)];
+	heap32[(r1+4)] = heap32[(r2+3)];
+	heap32[(g0)] = r0;
+	_ZN19btTriangleMeshShape15recalcLocalAabbEv(i7);
+	return;
+}
+
+function _ZNK19btTriangleMeshShape15getLocalScalingEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+12)];
+	r0 = (r0 + 4)|0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btInternalTriangleIndexCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV31btInternalTriangleIndexCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp)];
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r1+4)];
+	f2 = heapFloat[(r1+8)];
+	f3 = f0 < f1 ? f0 : f1;
+	r2 = r2 >> 2;
+	f3 = f3 < f2 ? f3 : f2;
+	f4 = heapFloat[(r2+6)];
+if(!(f3 >f4)) //_LBB520_7
+{
+	f0 = f0 > f1 ? f0 : f1;
+	f0 = f0 > f2 ? f0 : f2;
+	f1 = heapFloat[(r2+2)];
+if(!(f0 <f1)) //_LBB520_7
+{
+	f0 = heapFloat[(r1+2)];
+	f1 = heapFloat[(r1+6)];
+	f2 = heapFloat[(r1+10)];
+	f3 = f0 < f1 ? f0 : f1;
+	f3 = f3 < f2 ? f3 : f2;
+	f4 = heapFloat[(r2+8)];
+if(!(f3 >f4)) //_LBB520_7
+{
+	f0 = f0 > f1 ? f0 : f1;
+	f0 = f0 > f2 ? f0 : f2;
+	f1 = heapFloat[(r2+4)];
+if(!(f0 <f1)) //_LBB520_7
+{
+	f0 = heapFloat[(r1+1)];
+	f1 = heapFloat[(r1+5)];
+	f2 = heapFloat[(r1+9)];
+	f3 = f0 < f1 ? f0 : f1;
+	f3 = f3 < f2 ? f3 : f2;
+	f4 = heapFloat[(r2+7)];
+if(!(f3 >f4)) //_LBB520_7
+{
+	f0 = f0 > f1 ? f0 : f1;
+	f0 = f0 > f2 ? f0 : f2;
+	f1 = heapFloat[(r2+3)];
+if(!(f0 <f1)) //_LBB520_7
+{
+	r1 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r2 = heap32[(r2+1)];
+	r4 = r2 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r3;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+}
+}
+}
+}
+}
+}
+	return;
+}
+
+function _ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _2E_str10;
+	r1 = _2E_str3375;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 188;
+	_assert(i7);
+}
+
+function _ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -152;var g0 = i7>>2; // save stack
+	r0 = _ZTV21SupportVertexCallback;
+	r1 = sp + -120;
+	r0 = (r0 + 8)|0;
+	r2 = r1 >> 2;
+	heap32[(fp+-30)] = r0;
+	heap32[(r2+1)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+5)] = 1065353216;
+	heap32[(r2+6)] = 0;
+	heap32[(r2+7)] = 0;
+	heap32[(r2+8)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 1065353216;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+12)] = 0;
+	heap32[(r2+13)] = 0;
+	heap32[(r2+14)] = 0;
+	heap32[(r2+15)] = 1065353216;
+	heap32[(r2+16)] = 0;
+	heap32[(r2+17)] = 0;
+	heap32[(r2+18)] = 0;
+	heap32[(r2+19)] = 0;
+	r0 = heap32[(fp+2)];
+	heap32[(r2+20)] = 0;
+	r0 = r0 >> 2;
+	heap32[(r2+21)] = -581039253;
+	f0 =                         0;
+	f1 = heapFloat[(r0+1)];
+	f2 = heapFloat[(r0)];
+	f3 = heapFloat[(r0+2)];
+	f4 = f1*f0;
+	f5 = f2*f0;
+	f2 = f2+f4;
+	f0 = f3*f0;
+	f1 = f5+f1;
+	f2 = f2+f0;
+	f4 = f5+f4;
+	f0 = f1+f0;
+	heapFloat[(r2+22)] = f2;
+	f1 = f4+f3;
+	heapFloat[(r2+23)] = f0;
+	heapFloat[(r2+24)] = f1;
+	r0 = sp + -136;
+	heap32[(r2+25)] = 0;
+	r3 = r0 >> 2;
+	heap32[(fp+-34)] = 1566444395;
+	heap32[(r3+1)] = 1566444395;
+	r4 = heap32[(fp+1)];
+	heap32[(r3+2)] = 1566444395;
+	r5 = r4 >> 2;
+	heap32[(r3+3)] = 0;
+	r3 = heap32[(r5)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+15)];
+	r5 = sp + -16;
+	r6 = r5 >> 2;
+	heap32[(fp+-4)] = -581039253;
+	heap32[(r6+1)] = -581039253;
+	heap32[(r6+2)] = -581039253;
+	heap32[(r6+3)] = 0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r0 = heap32[(fp)];
+	f0 = heapFloat[(r2+4)];
+	f1 = heapFloat[(r2+3)];
+	f2 = heapFloat[(r2+2)];
+	r0 = r0 >> 2;
+	heap32[(r0)] = heap32[(r2+1)];
+	heapFloat[(r0+1)] = f2;
+	heapFloat[(r0+2)] = f1;
+	heapFloat[(r0+3)] = f0;
+	return;
+}
+
+function _ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -56;var g0 = i7>>2; // save stack
+	r0 = _ZTVZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback;
+	r1 = sp + -40;
+	r0 = (r0 + 8)|0;
+	r2 = heap32[(fp+2)];
+	r3 = r1 >> 2;
+	r4 = heap32[(fp+1)];
+	heap32[(fp+-10)] = r0;
+	r0 = r2 >> 2;
+	heap32[(r3+1)] = r4;
+	heap32[(r3+2)] = heap32[(r0)];
+	heap32[(r3+3)] = heap32[(r0+1)];
+	r4 = heap32[(fp+3)];
+	heap32[(r3+4)] = heap32[(r0+2)];
+	r5 = r4 >> 2;
+	heap32[(r3+5)] = heap32[(r0+3)];
+	heap32[(r3+6)] = heap32[(r5)];
+	heap32[(r3+7)] = heap32[(r5+1)];
+	r0 = heap32[(fp)];
+	heap32[(r3+8)] = heap32[(r5+2)];
+	r0 = r0 >> 2;
+	heap32[(r3+9)] = heap32[(r5+3)];
+	r0 = heap32[(r0+12)];
+	r3 = r0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	return;
+}
+
+function _ZN19btTriangleMeshShapeD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV14btConcaveShape;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN19btTriangleMeshShapeD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV14btConcaveShape;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN16btPointCollectorD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btPointCollector;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN16btPointCollectorD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV16btPointCollector;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN16btPointCollector20setShapeIdentifiersAEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN16btPointCollector20setShapeIdentifiersBEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN16btPointCollector15addContactPointERK9btVector3S2_f(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	f0 = heapFloat[(fp+3)];
+	r1 = r0 >> 2;
+	f1 = heapFloat[(r1+9)];
+if(!(f1 <=f0)) //_LBB531_2
+{
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = 1;
+	r2 = r2 >> 2;
+	heap8[r0+40] = r4;
+	heap32[(r1+1)] = heap32[(r2)];
+	heap32[(r1+2)] = heap32[(r2+1)];
+	heap32[(r1+3)] = heap32[(r2+2)];
+	r0 = r3 >> 2;
+	heap32[(r1+4)] = heap32[(r2+3)];
+	heap32[(r1+5)] = heap32[(r0)];
+	heap32[(r1+6)] = heap32[(r0+1)];
+	heap32[(r1+7)] = heap32[(r0+2)];
+	heap32[(r1+8)] = heap32[(r0+3)];
+	heapFloat[(r1+9)] = f0;
+}
+	return;
+}
+
+function _ZN27btContinuousConvexCollisionD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btConvexCast;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN27btContinuousConvexCollisionD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btConvexCast;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var r24;
+	var r25;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+var __label__ = 0;
+	i7 = sp + -816;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+1)];
+	r2 = 0;
+	r3 = r1 >> 2;
+	heap8[r1+312] = r2;
+	r4 = 1;
+	heap32[(r3)] = 0;
+	heap8[r1+356] = r4;
+	heap32[(r3+73)] = 1566444395;
+	heap32[(r3+74)] = 1566444395;
+	heap32[(r3+75)] = 1566444395;
+	heap32[(r3+76)] = 0;
+	heap8[r1+352] = r2;
+	heap32[(r3+84)] = 0;
+	heap32[(r3+85)] = 0;
+	heap32[(r3+86)] = 0;
+	heap32[(r3+87)] = 0;
+	r3 = heapU8[r1+332];
+	r5 = heap32[(fp+1)];
+	r6 = heap32[(fp+2)];
+	r3 = r3 & 240;
+	r7 = r6 >> 2;
+	heap8[r1+332] = r3;
+	r1 = r5 >> 2;
+	f0 = heapFloat[(r7+14)];
+	f1 = heapFloat[(r1+14)];
+	f2 = heapFloat[(r7+13)];
+	f3 = heapFloat[(r1+13)];
+	f4 = heapFloat[(r7+12)];
+	f5 = heapFloat[(r1+12)];
+	r3 = sp + -40;
+	r7 = sp + -44;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r7;
+	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
+	r3 = r3 >> 2;
+	f6 = heapFloat[(r3+2)];
+	f7 = heapFloat[(fp+-11)];
+	f8 = heapFloat[(r3+1)];
+	f9 = heapFloat[(fp+-10)];
+	r3 = sp + -96;
+	f9 = f9*f7;
+	f8 = f8*f7;
+	r6 = r3 >> 2;
+	heapFloat[(fp+-24)] = f9;
+	f6 = f6*f7;
+	heapFloat[(r6+1)] = f8;
+	r7 = heap32[(fp+3)];
+	r8 = heap32[(fp+4)];
+	heapFloat[(r6+2)] = f6;
+	r9 = r8 >> 2;
+	heap32[(r6+3)] = 0;
+	r6 = r7 >> 2;
+	f7 = heapFloat[(r9+14)];
+	f10 = heapFloat[(r6+14)];
+	f11 = heapFloat[(r9+13)];
+	f12 = heapFloat[(r6+13)];
+	f13 = heapFloat[(r9+12)];
+	f14 = heapFloat[(r6+12)];
+	r9 = sp + -16;
+	r10 = sp + -20;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r10;
+	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
+	r8 = r9 >> 2;
+	f15 = heapFloat[(r8+2)];
+	f16 = heapFloat[(fp+-5)];
+	f17 = heapFloat[(r8+1)];
+	f18 = heapFloat[(fp+-4)];
+	r8 = sp + -112;
+	f18 = f18*f16;
+	f17 = f17*f16;
+	r9 = r8 >> 2;
+	heapFloat[(fp+-28)] = f18;
+	f15 = f15*f16;
+	heapFloat[(r9+1)] = f17;
+	heapFloat[(r9+2)] = f15;
+	heap32[(r9+3)] = 0;
+	r9 = heap32[(r0+3)];
+	r10 = r9 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+4)];
+	heap32[(g0)] = r9;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	f16 = f_g0;
+	r9 = heap32[(r0+4)];
+	r10 = r9 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+4)];
+	heap32[(g0)] = r9;
+	f9 = f9*f9;
+	f8 = f8*f8;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	f19 = f_g0;
+	f8 = f9+f8;
+	f6 = f6*f6;
+	f6 = f8+f6;
+	heapFloat[(g0)] = f6;
+	f6 = f18*f18;
+	f8 = f17*f17;
+	sqrtf(i7);
+	f9 = f_g0;
+	f11 = f11-f12;
+	f2 = f2-f3;
+	f3 = f13-f14;
+	f4 = f4-f5;
+	f5 = f6+f8;
+	f6 = f15*f15;
+	f8 = f11-f2;
+	f12 = f3-f4;
+	f7 = f7-f10;
+	f0 = f0-f1;
+	f1 = f5+f6;
+	f5 = f7-f0;
+	heapFloat[(g0)] = f1;
+	f1 = f12*f12;
+	f6 = f8*f8;
+	sqrtf(i7);
+	f1 = f1+f6;
+	f6 = f5*f5;
+	f1 = f1+f6;
+	f6 = f9*f16;
+	f9 = f_g0*f19;
+	heapFloat[(g0)] = f1;
+	f1 = f6+f9;
+	sqrtf(i7);
+	f6 = f_g0+f1;
+	f9 =                         0;
+_1: do {
+if(!(f6 ==f9)) //_LBB534_21
+{
+	r9 = _ZTV16btPointCollector;
+	r9 = (r9 + 8)|0;
+	r10 = sp + -176;
+	heap32[(fp+-44)] = r9;
+	r11 = r10 >> 2;
+	heap32[(r11+9)] = 1566444395;
+	heap8[sp+-136] = r2;
+	r12 = heap32[(r0+4)];
+	r13 = r12 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+11)];
+	r14 = heap32[(r0+2)];
+	r15 = heap32[(r0+1)];
+	heap32[(g0)] = r12;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+	f6 = f_g0;
+	r12 = heap32[(r0+3)];
+	r13 = r12 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+11)];
+	heap32[(g0)] = r12;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+	r12 = heap32[(r0+4)];
+	r13 = heap32[(r0+3)];
+	r16 = r12 >> 2;
+	r17 = r13 >> 2;
+	r18 = _ZTV17btGjkPairDetector;
+	r16 = heap32[(r16+1)];
+	r17 = heap32[(r17+1)];
+	r19 = sp + -256;
+	r18 = (r18 + 8)|0;
+	r20 = r19 >> 2;
+	heap32[(fp+-64)] = r18;
+	heap32[(r20+1)] = 0;
+	heap32[(r20+2)] = 1065353216;
+	heap32[(r20+3)] = 0;
+	heap32[(r20+4)] = 0;
+	heap32[(r20+5)] = r14;
+	heap32[(r20+6)] = r15;
+	heap32[(r20+7)] = r13;
+	heap32[(r20+8)] = r12;
+	heap32[(r20+9)] = r17;
+	heap32[(r20+10)] = r16;
+	heapFloat[(r20+11)] = f_g0;
+	heapFloat[(r20+12)] = f6;
+	heap8[sp+-204] = r2;
+	r12 = sp + -392;
+	heap32[(r20+15)] = -1;
+	r13 = r12 >> 2;
+	heap32[(r20+18)] = 1;
+	heap32[(r13+32)] = 1566444395;
+	heap32[(r13+33)] = 0;
+	heap32[(fp+-98)] = heap32[(r1)];
+	heap32[(r13+1)] = heap32[(r1+1)];
+	heap32[(r13+2)] = heap32[(r1+2)];
+	heap32[(r13+3)] = heap32[(r1+3)];
+	heap32[(r13+4)] = heap32[(r1+4)];
+	heap32[(r13+5)] = heap32[(r1+5)];
+	heap32[(r13+6)] = heap32[(r1+6)];
+	heap32[(r13+7)] = heap32[(r1+7)];
+	heap32[(r13+8)] = heap32[(r1+8)];
+	heap32[(r13+9)] = heap32[(r1+9)];
+	heap32[(r13+10)] = heap32[(r1+10)];
+	heap32[(r13+11)] = heap32[(r1+11)];
+	heap32[(r13+12)] = heap32[(r1+12)];
+	heap32[(r13+13)] = heap32[(r1+13)];
+	heap32[(r13+14)] = heap32[(r1+14)];
+	heap32[(r13+15)] = heap32[(r1+15)];
+	heap32[(r13+16)] = heap32[(r6)];
+	heap32[(r13+17)] = heap32[(r6+1)];
+	heap32[(r13+18)] = heap32[(r6+2)];
+	heap32[(r13+19)] = heap32[(r6+3)];
+	heap32[(r13+20)] = heap32[(r6+4)];
+	heap32[(r13+21)] = heap32[(r6+5)];
+	heap32[(r13+22)] = heap32[(r6+6)];
+	heap32[(r13+23)] = heap32[(r6+7)];
+	heap32[(r13+24)] = heap32[(r6+8)];
+	heap32[(r13+25)] = heap32[(r6+9)];
+	heap32[(r13+26)] = heap32[(r6+10)];
+	heap32[(r13+27)] = heap32[(r6+11)];
+	heap32[(r13+28)] = heap32[(r6+12)];
+	heap32[(r13+29)] = heap32[(r6+13)];
+	heap32[(r13+30)] = heap32[(r6+14)];
+	heap32[(r13+31)] = heap32[(r6+15)];
+	heap32[(g0)] = r19;
+	heap32[(g0+1)] = r12;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = 0;
+	heap32[(g0+4)] = 0;
+	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
+	f6 = heapFloat[(r11+5)];
+	r1 = heapU8[sp+-136];
+	r6 = sp + -128;
+	heapFloat[(fp+-32)] = f6;
+	f10 = heapFloat[(r11+6)];
+	r10 = r6 >> 2;
+	heapFloat[(r10+1)] = f10;
+	f13 = heapFloat[(r11+7)];
+	heapFloat[(r10+2)] = f13;
+	f14 = heapFloat[(r11+8)];
+	heapFloat[(r10+3)] = f14;
+if(!(r1 ==0)) //_LBB534_21
+{
+	r1 = heap32[(fp+5)];
+	f15 = heapFloat[(r11+1)];
+	f16 = heapFloat[(r11+2)];
+	f17 = heapFloat[(r11+3)];
+	f18 = f12*f15;
+	f19 = f8*f16;
+	r12 = sp + -456;
+	f18 = f18+f19;
+	f19 = f5*f17;
+	f20 = heapFloat[(r11+9)];
+	f21 = heapFloat[(r11+4)];
+	f18 = f18+f19;
+	r11 = (r12 + 48)|0;
+_4: while(true){
+	f19 =     0.0010000000474974513;
+	if(f20 >f19) //_LBB534_3
+{
+	r13 = r1 >> 2;
+	r14 = heap32[(r13+42)];
+if(!(r14 ==0)) //_LBB534_5
+{
+	r15 = r14 >> 2;
+	r15 = heap32[(r15)];
+	r15 = r15 >> 2;
+	r15 = heap32[(r15+5)];
+	r16 = sp + -80;
+	r17 = r16 >> 2;
+	heap32[(fp+-20)] = 1065353216;
+	heap32[(r17+1)] = 1065353216;
+	heap32[(r17+2)] = 1065353216;
+	heap32[(r17+3)] = 0;
+	heap32[(g0)] = r14;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = 1045220557;
+	heap32[(g0+3)] = r16;
+	__FUNCTION_TABLE__[(r15)>>2](i7);
+}
+	r2 = (r2 + 1)|0;
+	if(r2 >64) //_LBB534_21
+{
+break _1;
+}
+else{
+	f6 = f12*f15;
+	f10 = f8*f16;
+	f6 = f6+f10;
+	f10 = f5*f17;
+	f18 = f6+f10;
+	f6 = f18+f1;
+	f10 =   1.1920928955078125e-007;
+	if(f6 <=f10) //_LBB534_21
+{
+break _1;
+}
+else{
+	f6 = f20/f6;
+	f19 = f9+f6;
+	f6 =                         0;
+	if(f19 <f6) //_LBB534_21
+{
+break _1;
+}
+else{
+	f10 =                         1;
+	if(f19 >f10) //_LBB534_21
+{
+break _1;
+}
+else{
+	if(f19 <=f9) //_LBB534_21
+{
+break _1;
+}
+else{
+	heap32[(g0)] = r5;
+	heapFloat[(g0+1)] = f4;
+	heapFloat[(g0+2)] = f2;
+	heapFloat[(g0+3)] = f0;
+	heap32[(g0+4)] = r3;
+	heapFloat[(g0+5)] = f19;
+	heap32[(g0+6)] = r12;
+	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
+	r14 = sp + -520;
+	heap32[(g0)] = r7;
+	heapFloat[(g0+1)] = f3;
+	heapFloat[(g0+2)] = f11;
+	heapFloat[(g0+3)] = f7;
+	heap32[(g0+4)] = r8;
+	heapFloat[(g0+5)] = f19;
+	heap32[(g0+6)] = r14;
+	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
+	r15 = heap32[(r13+42)];
+if(!(r15 ==0)) //_LBB534_12
+{
+	r16 = r15 >> 2;
+	r16 = heap32[(r16)];
+	r16 = r16 >> 2;
+	r16 = heap32[(r16+5)];
+	r17 = sp + -64;
+	r19 = r17 >> 2;
+	heap32[(fp+-16)] = 1065353216;
+	heap32[(r19+1)] = 0;
+	heap32[(r19+2)] = 0;
+	heap32[(r19+3)] = 0;
+	heap32[(g0)] = r15;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = 1045220557;
+	heap32[(g0+3)] = r17;
+	__FUNCTION_TABLE__[(r16)>>2](i7);
+}
+	r15 = heap32[(r13)];
+	r15 = r15 >> 2;
+	r15 = heap32[(r15)];
+	heap32[(g0)] = r1;
+	heapFloat[(g0+1)] = f19;
+	r16 = sp + -568;
+	__FUNCTION_TABLE__[(r15)>>2](i7);
+	r15 = r16 >> 2;
+	heap32[(fp+-142)] = r9;
+	r17 = 0;
+	heap32[(r15+9)] = 1566444395;
+	heap8[sp+-528] = r17;
+	r19 = heap32[(r0+4)];
+	r20 = heap32[(r0+3)];
+	r21 = heap32[(r0+1)];
+	r22 = heap32[(r0+2)];
+	r23 = sp + -648;
+	heap32[(fp+-162)] = r18;
+	r24 = r23 >> 2;
+	heap32[(r24+1)] = 0;
+	heap32[(r24+2)] = 1065353216;
+	heap32[(r24+3)] = 0;
+	heap32[(r24+4)] = 0;
+	heap32[(r24+5)] = r22;
+	heap32[(r24+6)] = r21;
+	heap32[(r24+7)] = r20;
+	r21 = r20 >> 2;
+	heap32[(r24+8)] = r19;
+	r22 = heap32[(r21+1)];
+	heap32[(r24+9)] = r22;
+	r22 = r19 >> 2;
+	r25 = heap32[(r22+1)];
+	heap32[(r24+10)] = r25;
+	r21 = heap32[(r21)];
+	r21 = r21 >> 2;
+	r21 = heap32[(r21+11)];
+	heap32[(g0)] = r20;
+	__FUNCTION_TABLE__[(r21)>>2](i7);
+	heapFloat[(r24+11)] = f_g0;
+	r20 = heap32[(r22)];
+	r20 = r20 >> 2;
+	r20 = heap32[(r20+11)];
+	heap32[(g0)] = r19;
+	__FUNCTION_TABLE__[(r20)>>2](i7);
+	heapFloat[(r24+12)] = f_g0;
+	heap8[sp+-596] = r17;
+	r19 = sp + -784;
+	heap32[(r24+15)] = -1;
+	r20 = r19 >> 2;
+	heap32[(r24+18)] = 1;
+	heap32[(r20+32)] = 1566444395;
+	heap32[(r20+33)] = 0;
+	r21 = r12 >> 2;
+	heap32[(fp+-196)] = heap32[(fp+-114)];
+	heap32[(r20+1)] = heap32[(r21+1)];
+	heap32[(r20+2)] = heap32[(r21+2)];
+	heap32[(r20+3)] = heap32[(r21+3)];
+	heap32[(r20+4)] = heap32[(r21+4)];
+	heap32[(r20+5)] = heap32[(r21+5)];
+	heap32[(r20+6)] = heap32[(r21+6)];
+	heap32[(r20+7)] = heap32[(r21+7)];
+	heap32[(r20+8)] = heap32[(r21+8)];
+	heap32[(r20+9)] = heap32[(r21+9)];
+	heap32[(r20+10)] = heap32[(r21+10)];
+	heap32[(r20+11)] = heap32[(r21+11)];
+	heap32[(r20+12)] = heap32[(r21+12)];
+	heap32[(r20+13)] = heap32[(r21+13)];
+	heap32[(r20+14)] = heap32[(r21+14)];
+	heap32[(r20+15)] = heap32[(r21+15)];
+	r14 = r14 >> 2;
+	heap32[(r20+16)] = heap32[(fp+-130)];
+	heap32[(r20+17)] = heap32[(r14+1)];
+	heap32[(r20+18)] = heap32[(r14+2)];
+	heap32[(r20+19)] = heap32[(r14+3)];
+	heap32[(r20+20)] = heap32[(r14+4)];
+	heap32[(r20+21)] = heap32[(r14+5)];
+	heap32[(r20+22)] = heap32[(r14+6)];
+	heap32[(r20+23)] = heap32[(r14+7)];
+	heap32[(r20+24)] = heap32[(r14+8)];
+	heap32[(r20+25)] = heap32[(r14+9)];
+	heap32[(r20+26)] = heap32[(r14+10)];
+	heap32[(r20+27)] = heap32[(r14+11)];
+	heap32[(r20+28)] = heap32[(r14+12)];
+	heap32[(r20+29)] = heap32[(r14+13)];
+	heap32[(r20+30)] = heap32[(r14+14)];
+	heap32[(r20+31)] = heap32[(r14+15)];
+	heap32[(g0)] = r23;
+	heap32[(g0+1)] = r19;
+	heap32[(g0+2)] = r16;
+	heap32[(g0+3)] = 0;
+	heap32[(g0+4)] = 0;
+	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
+	r14 = heapU8[sp+-528];
+	if(r14 !=0) //_LBB534_14
+{
+	f20 = heapFloat[(r15+9)];
+	if(f20 >=f6) //_LBB534_17
+{
+	f6 = heapFloat[(r15+5)];
+	heapFloat[(fp+-32)] = f6;
+	f10 = heapFloat[(r15+6)];
+	heapFloat[(r10+1)] = f10;
+	f13 = heapFloat[(r15+7)];
+	heapFloat[(r10+2)] = f13;
+	f14 = heapFloat[(r15+8)];
+	heapFloat[(r10+3)] = f14;
+	f15 = heapFloat[(r15+1)];
+	f16 = heapFloat[(r15+2)];
+	f17 = heapFloat[(r15+3)];
+	f21 = heapFloat[(r15+4)];
+	heap32[(fp+-142)] = r9;
+	f9 = f19;
+}
+else{
+__label__ = 14;
+break _4;
+}
+}
+else{
+__label__ = 15;
+break _4;
+}
+}
+}
+}
+}
+}
+}
+else{
+__label__ = 18;
+break _4;
+}
+}
+switch(__label__ ){//multiple entries
+case 18:
+	r0 = r1 >> 2;
+	f0 = f18+f1;
+	f1 = heapFloat[(r0+43)];
+	if(f0 <=f1) //_LBB534_21
+{
+break _1;
+}
+else{
+	heapFloat[(r0+41)] = f9;
+	heapFloat[(r0+33)] = f15;
+	heapFloat[(r0+34)] = f16;
+	heapFloat[(r0+35)] = f17;
+	heapFloat[(r0+36)] = f21;
+	heapFloat[(r0+37)] = f6;
+	heapFloat[(r0+38)] = f10;
+	heapFloat[(r0+39)] = f13;
+	heapFloat[(r0+40)] = f14;
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+break;
+case 14:
+	heapFloat[(r13+41)] = f19;
+	f0 = heapFloat[(r15+4)];
+	f1 = heapFloat[(r15+3)];
+	f2 = heapFloat[(r15+2)];
+	heap32[(r13+33)] = heap32[(r15+1)];
+	heapFloat[(r13+34)] = f2;
+	heapFloat[(r13+35)] = f1;
+	heapFloat[(r13+36)] = f0;
+	heap32[(r13+37)] = heap32[(r15+5)];
+	heap32[(r13+38)] = heap32[(r15+6)];
+	heap32[(r13+39)] = heap32[(r15+7)];
+	heap32[(r13+40)] = heap32[(r15+8)];
+	r17 = r4;
+break;
+}
+	heap32[(fp+-142)] = r9;
+	r0 = r17 & 255;
+	r_g0 = r0;
+	return;
+}
+}
+} while(0);
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	f0 = heapFloat[(fp+5)];
+	f1 = heapFloat[(fp+1)];
+	r2 = heap32[(fp+6)];
+	f2 = heapFloat[(fp+2)];
+	f1 = f1*f0;
+	f3 = heapFloat[(r1+12)];
+	f4 = heapFloat[(r1+14)];
+	f5 = heapFloat[(r1+13)];
+	f6 = heapFloat[(fp+3)];
+	f2 = f2*f0;
+	r1 = r2 >> 2;
+	f1 = f3+f1;
+	f3 = f6*f0;
+	f2 = f5+f2;
+	heapFloat[(r1+12)] = f1;
+	f1 = f4+f3;
+	heapFloat[(r1+13)] = f2;
+	r2 = heap32[(fp+4)];
+	heapFloat[(r1+14)] = f1;
+	r2 = r2 >> 2;
+	heap32[(r1+15)] = 0;
+	f1 = heapFloat[(r2)];
+	f2 = heapFloat[(r2+1)];
+	f3 = heapFloat[(r2+2)];
+	f1 = f1*f1;
+	f2 = f2*f2;
+	f1 = f1+f2;
+	f2 = f3*f3;
+	f1 = f1+f2;
+	heapFloat[(g0)] = f1;
+	sqrtf(i7);
+	f1 = f_g0;
+	f2 = f1*f0;
+	f3 =       0.78539818525314331;
+	if(f2 >f3) //_LBB535_2
+{
+	f1 = f3/f0;
+}
+	f2 =     0.0010000000474974513;
+	if(f1 >=f2) //_LBB535_5
+{
+	f2 =                       0.5;
+	f2 = f1*f2;
+	f2 = f2*f0;
+	heapFloat[(g0)] = f2;
+	sinf(i7);
+	f3 = heapFloat[(r2+2)];
+	f2 = f_g0/f1;
+	f5 = heapFloat[(r2+1)];
+	f6 = heapFloat[(r2)];
+	f4 = f3*f2;
+	f3 = f5*f2;
+	f2 = f6*f2;
+}
+else{
+	f2 = f0*f0;
+	f2 = f2*f0;
+	f3 =      -0.02083333395421505;
+	f2 = f2*f3;
+	f3 =                       0.5;
+	f2 = f2*f1;
+	f3 = f0*f3;
+	f2 = f2*f1;
+	f4 = heapFloat[(r2+2)];
+	f2 = f3+f2;
+	f3 = heapFloat[(r2+1)];
+	f5 = heapFloat[(r2)];
+	f4 = f4*f2;
+	f3 = f3*f2;
+	f2 = f5*f2;
+}
+	f0 = f1*f0;
+	f1 =                       0.5;
+	f0 = f0*f1;
+	heapFloat[(g0)] = f0;
+	cosf(i7);
+	f0 = f_g0;
+	r2 = sp + -16;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
+	r0 = r2 >> 2;
+	f1 = heapFloat[(fp+-4)];
+	f5 = heapFloat[(r0+3)];
+	f6 = heapFloat[(r0+1)];
+	f7 = heapFloat[(r0+2)];
+	f8 = f0*f6;
+	f9 = f3*f5;
+	f10 = f0*f1;
+	f11 = f2*f5;
+	f12 = f0*f7;
+	f13 = f4*f5;
+	f8 = f8+f9;
+	f9 = f4*f1;
+	f10 = f10+f11;
+	f11 = f3*f7;
+	f0 = f0*f5;
+	f5 = f2*f1;
+	f12 = f12+f13;
+	f13 = f2*f6;
+	f8 = f8+f9;
+	f2 = f2*f7;
+	f9 = f10+f11;
+	f10 = f4*f6;
+	f2 = f8-f2;
+	f8 = f9-f10;
+	f0 = f0-f5;
+	f5 = f3*f6;
+	f6 = f12+f13;
+	f1 = f3*f1;
+	f1 = f6-f1;
+	f3 = f8*f8;
+	f6 = f2*f2;
+	f0 = f0-f5;
+	f4 = f4*f7;
+	f0 = f0-f4;
+	f3 = f3+f6;
+	f4 = f1*f1;
+	f3 = f3+f4;
+	f4 = f0*f0;
+	f3 = f3+f4;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	f3 = f_g0;
+	f4 =                         0;
+	if(f3 !=f4) //_LBB535_8
+{
+	f4 =                         1;
+	f3 = f4/f3;
+	f5 = f8*f3;
+	f2 = f2*f3;
+	f1 = f1*f3;
+	f6 = f5*f5;
+	f7 = f2*f2;
+	f0 = f0*f3;
+	f3 = f6+f7;
+	f6 = f1*f1;
+	f3 = f3+f6;
+	f6 = f0*f0;
+	f7 =                         2;
+	f3 = f3+f6;
+	f3 = f7/f3;
+	f6 = f1*f3;
+	f7 = f2*f3;
+	f8 = f2*f7;
+	f1 = f1*f6;
+	f9 = f8+f1;
+	f9 = f4-f9;
+	f10 = f5*f7;
+	f11 = f0*f6;
+	f12 = f5*f6;
+	f7 = f0*f7;
+	f13 = f10-f11;
+	heapFloat[(r1)] = f9;
+	f3 = f5*f3;
+	f9 = f12+f7;
+	heapFloat[(r1+1)] = f13;
+	f5 = f5*f3;
+	heapFloat[(r1+2)] = f9;
+	f1 = f5+f1;
+	f9 = f10+f11;
+	heap32[(r1+3)] = 0;
+	f2 = f2*f6;
+	f0 = f0*f3;
+	f1 = f4-f1;
+	heapFloat[(r1+4)] = f9;
+	f3 = f2-f0;
+	heapFloat[(r1+5)] = f1;
+	heapFloat[(r1+6)] = f3;
+	f1 = f12-f7;
+	heap32[(r1+7)] = 0;
+	f3 = f5+f8;
+	f0 = f2+f0;
+	heapFloat[(r1+8)] = f1;
+	f1 = f4-f3;
+	heapFloat[(r1+9)] = f0;
+	heapFloat[(r1+10)] = f1;
+	heap32[(r1+11)] = 0;
+	return;
+}
+else{
+	r1 = _2E_str584;
+	r0 = _2E_str685;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 188;
+	_assert(i7);
+}
+}
+
+function _ZN12btConvexCastD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btConvexCast;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN12btConvexCastD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btConvexCast;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN15btGjkConvexCastD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btConvexCast;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN15btGjkConvexCastD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btConvexCast;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+var __label__ = 0;
+	i7 = sp + -288;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+1)];
+	r2 = 0;
+	r3 = r1 >> 2;
+	heap8[r1+312] = r2;
+	r4 = 1;
+	heap32[(r3)] = 0;
+	heap8[r1+356] = r4;
+	heap32[(r3+73)] = 1566444395;
+	heap32[(r3+74)] = 1566444395;
+	heap32[(r3+75)] = 1566444395;
+	heap32[(r3+76)] = 0;
+	heap8[r1+352] = r2;
+	heap32[(r3+84)] = 0;
+	heap32[(r3+85)] = 0;
+	heap32[(r3+86)] = 0;
+	heap32[(r3+87)] = 0;
+	r3 = heapU8[r1+332];
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+1)];
+	r6 = heap32[(fp+4)];
+	r7 = heap32[(fp+3)];
+	r3 = r3 & 240;
+	r4 = r4 >> 2;
+	heap8[r1+332] = r3;
+	r1 = r5 >> 2;
+	r3 = r6 >> 2;
+	r5 = r7 >> 2;
+	r6 = _ZTV16btPointCollector;
+	f0 = heapFloat[(r4+14)];
+	f1 = heapFloat[(r1+14)];
+	f2 = heapFloat[(r3+14)];
+	f3 = heapFloat[(r5+14)];
+	f4 = heapFloat[(r4+13)];
+	f5 = heapFloat[(r1+13)];
+	f6 = heapFloat[(r3+13)];
+	f7 = heapFloat[(r5+13)];
+	f8 = heapFloat[(r4+12)];
+	f9 = heapFloat[(r1+12)];
+	f10 = heapFloat[(r3+12)];
+	f11 = heapFloat[(r5+12)];
+	r7 = sp + -48;
+	r6 = (r6 + 8)|0;
+	r8 = r7 >> 2;
+	heap32[(fp+-12)] = r6;
+	heap32[(r8+9)] = 1566444395;
+	heap8[sp+-8] = r2;
+	r6 = heap32[(r0+3)];
+	r9 = heap32[(r0+2)];
+	r0 = heap32[(r0+1)];
+	r10 = _ZTV17btGjkPairDetector;
+	r11 = sp + -128;
+	r10 = (r10 + 8)|0;
+	heap32[(fp+-32)] = r10;
+	r10 = r11 >> 2;
+	heap32[(r10+1)] = 0;
+	heap32[(r10+2)] = 1065353216;
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = 0;
+	heap32[(r10+5)] = 0;
+	heap32[(r10+6)] = r0;
+	heap32[(r10+7)] = r9;
+	r0 = r9 >> 2;
+	heap32[(r10+8)] = r6;
+	r12 = heap32[(r0+1)];
+	heap32[(r10+9)] = r12;
+	r12 = r6 >> 2;
+	r13 = heap32[(r12+1)];
+	heap32[(r10+10)] = r13;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+11)];
+	heap32[(g0)] = r9;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	heapFloat[(r10+11)] = f_g0;
+	r0 = heap32[(r12)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+11)];
+	heap32[(g0)] = r6;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	heapFloat[(r10+12)] = f_g0;
+	heap8[sp+-76] = r2;
+	r0 = sp + -264;
+	heap32[(r10+15)] = -1;
+	r6 = r0 >> 2;
+	heap32[(r10+18)] = 1;
+	heap32[(r6+32)] = 1566444395;
+	heap32[(r6+33)] = 0;
+	heap32[(fp+-66)] = heap32[(r1)];
+	heap32[(r6+1)] = heap32[(r1+1)];
+	heap32[(r6+2)] = heap32[(r1+2)];
+	heap32[(r6+3)] = heap32[(r1+3)];
+	heap32[(r6+4)] = heap32[(r1+4)];
+	heap32[(r6+5)] = heap32[(r1+5)];
+	heap32[(r6+6)] = heap32[(r1+6)];
+	heap32[(r6+7)] = heap32[(r1+7)];
+	heap32[(r6+8)] = heap32[(r1+8)];
+	heap32[(r6+9)] = heap32[(r1+9)];
+	heap32[(r6+10)] = heap32[(r1+10)];
+	heap32[(r6+11)] = heap32[(r1+11)];
+	heap32[(r6+12)] = heap32[(r1+12)];
+	heap32[(r6+13)] = heap32[(r1+13)];
+	heap32[(r6+14)] = heap32[(r1+14)];
+	heap32[(r6+15)] = heap32[(r1+15)];
+	heap32[(r6+16)] = heap32[(r5)];
+	heap32[(r6+17)] = heap32[(r5+1)];
+	heap32[(r6+18)] = heap32[(r5+2)];
+	heap32[(r6+19)] = heap32[(r5+3)];
+	heap32[(r6+20)] = heap32[(r5+4)];
+	heap32[(r6+21)] = heap32[(r5+5)];
+	heap32[(r6+22)] = heap32[(r5+6)];
+	heap32[(r6+23)] = heap32[(r5+7)];
+	heap32[(r6+24)] = heap32[(r5+8)];
+	heap32[(r6+25)] = heap32[(r5+9)];
+	heap32[(r6+26)] = heap32[(r5+10)];
+	heap32[(r6+27)] = heap32[(r5+11)];
+	heap32[(r6+28)] = heap32[(r5+12)];
+	heap32[(r6+29)] = heap32[(r5+13)];
+	heap32[(r6+30)] = heap32[(r5+14)];
+	heap32[(r6+31)] = heap32[(r5+15)];
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = 0;
+	heap32[(g0+4)] = 0;
+	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
+	r9 = heapU8[sp+-8];
+_1: do {
+if(!(r9 ==0)) //_LBB540_14
+{
+	f0 = f0-f1;
+	f1 = f2-f3;
+	f2 = f4-f5;
+	f3 = f6-f7;
+	f4 = f8-f9;
+	f5 = f10-f11;
+	r9 = heap32[(fp+5)];
+	f0 = f0-f1;
+	f1 = f2-f3;
+	f2 = f4-f5;
+	f3 = heapFloat[(r8+8)];
+	f4 = heapFloat[(r8+7)];
+	f5 = heapFloat[(r8+6)];
+	f6 = heapFloat[(r8+5)];
+	f7 = heapFloat[(r8+9)];
+	f8 = heapFloat[(r8+1)];
+	f9 = heapFloat[(r8+2)];
+	f10 = heapFloat[(r8+3)];
+	f11 = heapFloat[(r8+4)];
+	f12 =                         0;
+_3: while(true){
+	f13 =     0.0010000000474974513;
+	if(f7 >f13) //_LBB540_2
+{
+	r2 = (r2 + 1)|0;
+	if(r2 >32) //_LBB540_14
+{
+break _1;
+}
+else{
+	f3 = f2*f8;
+	f4 = f1*f9;
+	f3 = f3+f4;
+	f4 = f0*f10;
+	f3 = f3+f4;
+	f3 = f7/f3;
+	f13 = f12-f3;
+	f3 =                         0;
+	if(f13 <f3) //_LBB540_14
+{
+break _1;
+}
+else{
+	f4 =                         1;
+	if(f13 >f4) //_LBB540_14
+{
+break _1;
+}
+else{
+	if(f13 <=f12) //_LBB540_14
+{
+break _1;
+}
+else{
+	r10 = r9 >> 2;
+	r12 = heap32[(r10)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12)];
+	heap32[(g0)] = r9;
+	heapFloat[(g0+1)] = f13;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+	f5 = heapFloat[(r4+12)];
+	f6 = heapFloat[(r1+12)];
+	f4 = f4-f13;
+	f6 = f6*f4;
+	f5 = f5*f13;
+	f5 = f6+f5;
+	heapFloat[(r6+12)] = f5;
+	f5 = heapFloat[(r1+13)];
+	f6 = heapFloat[(r4+13)];
+	f5 = f5*f4;
+	f6 = f6*f13;
+	f5 = f5+f6;
+	heapFloat[(r6+13)] = f5;
+	f5 = heapFloat[(r1+14)];
+	f6 = heapFloat[(r4+14)];
+	f5 = f5*f4;
+	f6 = f6*f13;
+	f5 = f5+f6;
+	heapFloat[(r6+14)] = f5;
+	f5 = heapFloat[(r5+12)];
+	f6 = heapFloat[(r3+12)];
+	f5 = f5*f4;
+	f6 = f6*f13;
+	f5 = f5+f6;
+	heapFloat[(r6+28)] = f5;
+	f5 = heapFloat[(r5+13)];
+	f6 = heapFloat[(r3+13)];
+	f5 = f5*f4;
+	f6 = f6*f13;
+	f5 = f5+f6;
+	heapFloat[(r6+29)] = f5;
+	f5 = heapFloat[(r5+14)];
+	f6 = heapFloat[(r3+14)];
+	f4 = f5*f4;
+	f5 = f6*f13;
+	f4 = f4+f5;
+	heapFloat[(r6+30)] = f4;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = 0;
+	heap32[(g0+4)] = 0;
+	_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7);
+	r12 = heapU8[sp+-8];
+	if(r12 ==0) //_LBB540_14
+{
+break _1;
+}
+else{
+	f7 = heapFloat[(r8+9)];
+	if(f7 >=f3) //_LBB540_9
+{
+	f6 = heapFloat[(r8+5)];
+	f5 = heapFloat[(r8+6)];
+	f4 = heapFloat[(r8+7)];
+	f3 = heapFloat[(r8+8)];
+	f8 = heapFloat[(r8+1)];
+	f9 = heapFloat[(r8+2)];
+	f10 = heapFloat[(r8+3)];
+	f11 = heapFloat[(r8+4)];
+	f12 = f13;
+}
+else{
+__label__ = 8;
+break _3;
+}
+}
+}
+}
+}
+}
+}
+else{
+__label__ = 11;
+break _3;
+}
+}
+switch(__label__ ){//multiple entries
+case 11:
+	r0 = r9 >> 2;
+	f2 = f8*f2;
+	f1 = f9*f1;
+	f7 = heapFloat[(r0+43)];
+	f1 = f2+f1;
+	f0 = f10*f0;
+	f0 = f1+f0;
+	f1 = -f7;
+	if(f0 >=f1) //_LBB540_14
+{
+break _1;
+}
+else{
+	heapFloat[(r0+41)] = f12;
+	heapFloat[(r0+33)] = f8;
+	heapFloat[(r0+34)] = f9;
+	heapFloat[(r0+35)] = f10;
+	heapFloat[(r0+36)] = f11;
+	heapFloat[(r0+37)] = f6;
+	heapFloat[(r0+38)] = f5;
+	heapFloat[(r0+39)] = f4;
+	heapFloat[(r0+40)] = f3;
+}
+break;
+case 8:
+	heapFloat[(r10+41)] = f13;
+	f0 = heapFloat[(r8+4)];
+	f1 = heapFloat[(r8+3)];
+	f2 = heapFloat[(r8+2)];
+	heap32[(r10+33)] = heap32[(r8+1)];
+	heapFloat[(r10+34)] = f2;
+	heapFloat[(r10+35)] = f1;
+	heapFloat[(r10+36)] = f0;
+	heap32[(r10+37)] = heap32[(r8+5)];
+	heap32[(r10+38)] = heap32[(r8+6)];
+	heap32[(r10+39)] = heap32[(r8+7)];
+	heap32[(r10+40)] = heap32[(r8+8)];
+break;
+}
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+} while(0);
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r1+1)];
+	f1 = heapFloat[(r0+1)];
+	f2 = heapFloat[(r1)];
+	f3 = heapFloat[(r0)];
+	f1 = f1-f0;
+	f3 = f3-f2;
+	f4 = heapFloat[(r1+2)];
+	f5 = heapFloat[(r0+2)];
+	f5 = f5-f4;
+	f6 = f3*f3;
+	f7 = f1*f1;
+	f6 = f6+f7;
+	f7 = f5*f5;
+	f6 = f6+f7;
+	f7 =                         0;
+	if(f6 <=f7) //_LBB541_7
+{
+	f0 =                        -1;
+	f_g0 = f0;
+	return;
+}
+else{
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	f2 = f2*f3;
+	f0 = f0*f1;
+	f0 = f2+f0;
+	f2 = f4*f5;
+	f0 = f0+f2;
+	f0 = -f0;
+	f0 = f0/f6;
+	f2 =                         1;
+	if(f0 <f2) //_LBB541_4
+{
+	if(f0 >f7) //_LBB541_6
+{
+	r0 = r2 >> 2;
+	f2 = f2-f0;
+	heapFloat[(r0+1)] = f0;
+	r2 = r3 >> 2;
+	heapFloat[(r0)] = f2;
+	heap32[(r2)] = 3;
+	f2 = heapFloat[(r1)];
+	f3 = f3*f0;
+	f4 = heapFloat[(r1+1)];
+	f1 = f1*f0;
+	f2 = f2+f3;
+	f1 = f4+f1;
+	f3 = heapFloat[(r1+2)];
+	f0 = f5*f0;
+	f0 = f3+f0;
+	f2 = f2*f2;
+	f1 = f1*f1;
+	f1 = f2+f1;
+	f0 = f0*f0;
+	f0 = f1+f0;
+	f_g0 = f0;
+	return;
+}
+else{
+	r2 = r2 >> 2;
+	heap32[(r2)] = 1065353216;
+	r3 = r3 >> 2;
+	heap32[(r2+1)] = 0;
+	heap32[(r3)] = 1;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r1+1)];
+	f2 = heapFloat[(r1+2)];
+}
+}
+else{
+	r1 = r2 >> 2;
+	heap32[(r1)] = 0;
+	r2 = r3 >> 2;
+	heap32[(r1+1)] = 1065353216;
+	heap32[(r2)] = 2;
+	f0 = heapFloat[(r0)];
+	f1 = heapFloat[(r0+1)];
+	f2 = heapFloat[(r0+2)];
+}
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	f_g0 = f0;
+	return;
+}
+}
+
+function _ZN12gjkepa2_implL10InitializeEPK13btConvexShapeRK11btTransformS2_S5_RN15btGjkEpaSolver28sResultsERNS_13MinkowskiDiffEb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+4)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+5)];
+	heap32[(r0)] = 0;
+	heap32[(r0+1)] = 0;
+	heap32[(r0+2)] = 0;
+	heap32[(r0+3)] = 0;
+	heap32[(r0+4)] = 0;
+	heap32[(r0+5)] = 0;
+	heap32[(r0+6)] = 0;
+	heap32[(r0+7)] = 0;
+	heap32[(r0+8)] = 0;
+	r0 = r1 >> 2;
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+3)];
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	heap32[(r0)] = r1;
+	r1 = r2 >> 2;
+	heap32[(r0+1)] = r4;
+	r2 = r3 >> 2;
+	f0 = heapFloat[(r2)];
+	f1 = heapFloat[(r1)];
+	f2 = heapFloat[(r2+4)];
+	f3 = heapFloat[(r1+4)];
+	f4 = heapFloat[(r2+1)];
+	f5 = heapFloat[(r2+5)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r2+8)];
+	f9 = heapFloat[(r1+8)];
+	f10 = heapFloat[(r1+2)];
+	f11 = heapFloat[(r2+2)];
+	f12 = heapFloat[(r1+1)];
+	f13 = heapFloat[(r1+6)];
+	f14 = heapFloat[(r2+6)];
+	f15 = heapFloat[(r1+5)];
+	f16 = heapFloat[(r1+10)];
+	f17 = heapFloat[(r2+10)];
+	f18 = heapFloat[(r2+9)];
+	f19 = heapFloat[(r1+9)];
+	f20 = f1*f4;
+	f21 = f3*f5;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	f1 = f1*f11;
+	f3 = f3*f14;
+	f20 = f20+f21;
+	f21 = f9*f18;
+	f6 = f6+f7;
+	f1 = f1+f3;
+	f3 = f9*f17;
+	f7 = f20+f21;
+	heapFloat[(r0+2)] = f6;
+	f6 = f12*f0;
+	f9 = f15*f2;
+	f1 = f1+f3;
+	heapFloat[(r0+3)] = f7;
+	heapFloat[(r0+4)] = f1;
+	f1 = f12*f4;
+	f3 = f15*f5;
+	f6 = f6+f9;
+	f7 = f19*f8;
+	f9 = f12*f11;
+	f12 = f15*f14;
+	f1 = f1+f3;
+	f3 = f19*f18;
+	f6 = f6+f7;
+	heap32[(r0+5)] = 0;
+	f7 = f9+f12;
+	f9 = f19*f17;
+	f1 = f1+f3;
+	heapFloat[(r0+6)] = f6;
+	f0 = f10*f0;
+	f2 = f13*f2;
+	f3 = f7+f9;
+	heapFloat[(r0+7)] = f1;
+	heapFloat[(r0+8)] = f3;
+	f1 = f10*f4;
+	f3 = f13*f5;
+	f0 = f0+f2;
+	f2 = f16*f8;
+	f4 = f10*f11;
+	f5 = f13*f14;
+	f1 = f1+f3;
+	f3 = f16*f18;
+	f0 = f0+f2;
+	heap32[(r0+9)] = 0;
+	f2 = f4+f5;
+	f4 = f16*f17;
+	f1 = f1+f3;
+	heapFloat[(r0+10)] = f0;
+	f0 = f2+f4;
+	heapFloat[(r0+11)] = f1;
+	heapFloat[(r0+12)] = f0;
+	heap32[(r0+13)] = 0;
+	f0 = heapFloat[(r2)];
+	f1 = heapFloat[(r1)];
+	f2 = heapFloat[(r2+4)];
+	f3 = heapFloat[(r1+4)];
+	f4 = heapFloat[(r1+1)];
+	f5 = heapFloat[(r1+5)];
+	f6 = f0*f1;
+	f7 = f2*f3;
+	f8 = heapFloat[(r2+8)];
+	f9 = heapFloat[(r1+8)];
+	f10 = heapFloat[(r2+2)];
+	f11 = heapFloat[(r2+6)];
+	f12 = heapFloat[(r2+1)];
+	f13 = heapFloat[(r1+2)];
+	f14 = heapFloat[(r2+5)];
+	f15 = heapFloat[(r1+6)];
+	f16 = heapFloat[(r2+10)];
+	f17 = heapFloat[(r1+10)];
+	f18 = heapFloat[(r2+9)];
+	f19 = heapFloat[(r1+9)];
+	f20 = f0*f4;
+	f21 = f2*f5;
+	f6 = f6+f7;
+	f7 = f8*f9;
+	f22 = heapFloat[(r1+14)];
+	f23 = heapFloat[(r2+14)];
+	f24 = heapFloat[(r1+13)];
+	f25 = heapFloat[(r2+13)];
+	f26 = heapFloat[(r1+12)];
+	f27 = heapFloat[(r2+12)];
+	f28 = f0*f13;
+	f29 = f2*f15;
+	f20 = f20+f21;
+	f21 = f8*f19;
+	f6 = f6+f7;
+	f7 = f28+f29;
+	f28 = f8*f17;
+	f20 = f20+f21;
+	heapFloat[(r0+14)] = f6;
+	f6 = f12*f1;
+	f21 = f14*f3;
+	f7 = f7+f28;
+	heapFloat[(r0+15)] = f20;
+	heapFloat[(r0+16)] = f7;
+	f7 = f12*f4;
+	f20 = f14*f5;
+	f6 = f6+f21;
+	f21 = f18*f9;
+	f28 = f12*f13;
+	f29 = f14*f15;
+	f7 = f7+f20;
+	f20 = f18*f19;
+	f6 = f6+f21;
+	heap32[(r0+17)] = 0;
+	f21 = f28+f29;
+	f28 = f18*f17;
+	f7 = f7+f20;
+	heapFloat[(r0+18)] = f6;
+	f1 = f10*f1;
+	f3 = f11*f3;
+	f6 = f21+f28;
+	heapFloat[(r0+19)] = f7;
+	heapFloat[(r0+20)] = f6;
+	f4 = f10*f4;
+	f5 = f11*f5;
+	f1 = f1+f3;
+	f3 = f16*f9;
+	f6 = f10*f13;
+	f7 = f11*f15;
+	f4 = f4+f5;
+	f5 = f16*f19;
+	f1 = f1+f3;
+	heap32[(r0+21)] = 0;
+	f3 = f26-f27;
+	f9 = f24-f25;
+	f6 = f6+f7;
+	f7 = f16*f17;
+	f4 = f4+f5;
+	heapFloat[(r0+22)] = f1;
+	f1 = f22-f23;
+	f0 = f0*f3;
+	f2 = f2*f9;
+	f5 = f6+f7;
+	heapFloat[(r0+23)] = f4;
+	heapFloat[(r0+24)] = f5;
+	f4 = f12*f3;
+	f5 = f14*f9;
+	f0 = f0+f2;
+	f2 = f8*f1;
+	f3 = f10*f3;
+	f6 = f11*f9;
+	f4 = f4+f5;
+	f5 = f18*f1;
+	f0 = f0+f2;
+	heap32[(r0+25)] = 0;
+	f2 = f3+f6;
+	f1 = f16*f1;
+	f3 = f4+f5;
+	heapFloat[(r0+26)] = f0;
+	f0 = f2+f1;
+	heapFloat[(r0+27)] = f3;
+	heapFloat[(r0+28)] = f0;
+	heap32[(r0+29)] = 0;
+	r1 = heap32[(fp+6)];
+	if(r1 ==0) //_LBB542_3
+{
+	r1 = _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3__index__;
+}
+else{
+	r1 = _ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3__index__;
+}
+	heap32[(r0+30)] = r1;
+	heap32[(r0+31)] = 0;
+	return;
+}
+
+function _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + -64;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0)];
+	f1 = heapFloat[(r0+1)];
+	f2 = heapFloat[(r0+2)];
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f1 =                         1;
+	r1 = heap32[(fp+2)];
+	f0 = f1/f_g0;
+	f1 = heapFloat[(r0+2)];
+	f2 = heapFloat[(r0+1)];
+	f3 = heapFloat[(r0)];
+	f3 = f3*f0;
+	r0 = r1 >> 2;
+	f2 = f2*f0;
+	heapFloat[(r0)] = f3;
+	f0 = f1*f0;
+	heapFloat[(r0+1)] = f2;
+	r2 = heap32[(fp)];
+	heapFloat[(r0+2)] = f0;
+	r2 = r2 >> 2;
+	heap32[(r0+3)] = 0;
+	r3 = heap32[(r2+30)];
+	f0 = -f0;
+	f1 = -f2;
+	f2 = -f3;
+	r4 = heap32[(r2+1)];
+	r5 = heap32[(r2+31)];
+	r6 = r3 & 1;
+	if(r6 != 0) //_LBB543_2
+{
+	r6 = (r4 + r5)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+	r3 = (r6 + r3)|0;
+	r3 = (r3 + -1)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+}
+	f3 = heapFloat[(r2+2)];
+	f4 = heapFloat[(r2+3)];
+	f5 = heapFloat[(r2+6)];
+	f6 = heapFloat[(r2+7)];
+	f3 = f3*f2;
+	f4 = f4*f1;
+	f7 = heapFloat[(r2+4)];
+	f8 = heapFloat[(r2+10)];
+	f9 = heapFloat[(r2+11)];
+	f10 = heapFloat[(r2+12)];
+	f11 = heapFloat[(r2+8)];
+	f5 = f5*f2;
+	f6 = f6*f1;
+	f3 = f3+f4;
+	f4 = f7*f0;
+	r6 = sp + -16;
+	f2 = f8*f2;
+	f1 = f9*f1;
+	f5 = f5+f6;
+	f6 = f11*f0;
+	f3 = f3+f4;
+	r7 = r6 >> 2;
+	f1 = f2+f1;
+	f0 = f10*f0;
+	f2 = f5+f6;
+	heapFloat[(fp+-4)] = f3;
+	f0 = f1+f0;
+	heapFloat[(r7+1)] = f2;
+	heapFloat[(r7+2)] = f0;
+	heap32[(r7+3)] = 0;
+	r7 = sp + -32;
+	r4 = (r4 + r5)|0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r6;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r7 >> 2;
+	f0 = heapFloat[(r2+22)];
+	f1 = heapFloat[(fp+-8)];
+	f2 = heapFloat[(r2+18)];
+	f3 = heapFloat[(r2+14)];
+	f4 = heapFloat[(r2+23)];
+	f5 = heapFloat[(r3+1)];
+	f6 = heapFloat[(r2+19)];
+	f7 = heapFloat[(r2+15)];
+	f0 = f0*f1;
+	f4 = f4*f5;
+	f8 = heapFloat[(r2+24)];
+	f9 = heapFloat[(r3+2)];
+	f10 = heapFloat[(r2+20)];
+	f11 = heapFloat[(r2+16)];
+	f2 = f2*f1;
+	f6 = f6*f5;
+	f1 = f3*f1;
+	f3 = f7*f5;
+	f0 = f0+f4;
+	f4 = f8*f9;
+	f2 = f2+f6;
+	f5 = f10*f9;
+	f1 = f1+f3;
+	f3 = f11*f9;
+	f0 = f0+f4;
+	f4 = heapFloat[(r2+28)];
+	f2 = f2+f5;
+	f5 = heapFloat[(r2+27)];
+	f1 = f1+f3;
+	f3 = heapFloat[(r2+26)];
+	r3 = heap32[(r2+30)];
+	f0 = f0+f4;
+	f2 = f2+f5;
+	f1 = f1+f3;
+	r4 = heap32[(r2)];
+	r2 = heap32[(r2+31)];
+	r5 = r3 & 1;
+	if(r5 != 0) //_LBB543_5
+{
+	r5 = (r4 + r2)|0;
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	r3 = (r3 + r5)|0;
+	r3 = (r3 + -1)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+}
+	r5 = sp + -48;
+	r2 = (r4 + r2)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = r5 >> 2;
+	f3 = heapFloat[(fp+-12)];
+	f4 = heapFloat[(r1+2)];
+	f5 = heapFloat[(r1+1)];
+	f1 = f3-f1;
+	f2 = f5-f2;
+	heapFloat[(r0+4)] = f1;
+	f0 = f4-f0;
+	heapFloat[(r0+5)] = f2;
+	heapFloat[(r0+6)] = f0;
+	heap32[(r0+7)] = 0;
+	return;
+}
+
+function _ZN12gjkepa2_impl3GJK13EncloseOriginEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+var __label__ = 0;
+	i7 = sp + -128;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+93)];
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+8)];
+_1: do {
+	if(r4 >2) //_LBB544_3
+{
+	if(r4 ==3) //_LBB544_17
+{
+	r5 = heap32[(r3)];
+	r6 = heap32[(r3+2)];
+	r7 = heap32[(r3+1)];
+	r6 = r6 >> 2;
+	r5 = r5 >> 2;
+	r7 = r7 >> 2;
+	f0 = heapFloat[(r6+6)];
+	f1 = heapFloat[(r5+6)];
+	f2 = heapFloat[(r7+6)];
+	f3 = heapFloat[(r6+5)];
+	f4 = heapFloat[(r5+5)];
+	f5 = heapFloat[(r7+5)];
+	f5 = f5-f4;
+	f0 = f0-f1;
+	f1 = f2-f1;
+	f2 = f3-f4;
+	f3 = heapFloat[(r6+4)];
+	f4 = heapFloat[(r5+4)];
+	f6 = heapFloat[(r7+4)];
+	f3 = f3-f4;
+	f4 = f6-f4;
+	f6 = f5*f0;
+	f7 = f1*f2;
+	r5 = sp + -112;
+	f6 = f6-f7;
+	f1 = f1*f3;
+	f0 = f4*f0;
+	f0 = f1-f0;
+	r6 = r5 >> 2;
+	heapFloat[(fp+-28)] = f6;
+	f1 = f4*f2;
+	f2 = f5*f3;
+	f1 = f1-f2;
+	heapFloat[(r6+1)] = f0;
+	f2 = f6*f6;
+	f0 = f0*f0;
+	heapFloat[(r6+2)] = f1;
+	f0 = f2+f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 =                         0;
+	heap32[(r6+3)] = 0;
+	if(f0 <=f1) //_LBB544_25
+{
+__label__ = 24;
+break _1;
+}
+else{
+	r4 = r4 << 2;
+	r4 = (r2 + r4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4+4)] = 0;
+	r4 = heap32[(r1+91)];
+	r4 = (r4 + -1)|0;
+	r7 = heap32[(r3+8)];
+	r8 = r4 << 2;
+	r7 = r7 << 2;
+	r8 = (r0 + r8)|0;
+	r7 = (r2 + r7)|0;
+	r8 = r8 >> 2;
+	heap32[(r1+91)] = r4;
+	r4 = r7 >> 2;
+	r7 = heap32[(r8+87)];
+	heap32[(r4)] = r7;
+	r4 = heap32[(r3+8)];
+	r7 = r4 << 2;
+	r2 = (r2 + r7)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r4 = (r4 + 1)|0;
+	heap32[(r3+8)] = r4;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r2;
+	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
+	heap32[(g0)] = r0;
+	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB544_26
+{
+__label__ = 25;
+break _1;
+}
+else{
+	r3 = heap32[(r1+93)];
+	r2 = r3 >> 2;
+	r4 = heap32[(r2+8)];
+	r4 = (r4 + -1)|0;
+	r5 = heap32[(r1+91)];
+	r7 = r4 << 2;
+	r3 = (r3 + r7)|0;
+	r7 = (r0 + 348)|0;
+	r8 = r5 << 2;
+	r8 = (r7 + r8)|0;
+	r3 = r3 >> 2;
+	heap32[(r2+8)] = r4;
+	r2 = r8 >> 2;
+	r3 = heap32[(r3)];
+	r4 = (r5 + 1)|0;
+	heap32[(r2)] = r3;
+	heap32[(r1+91)] = r4;
+	f0 = heapFloat[(r6+2)];
+	f1 = heapFloat[(r6+1)];
+	f2 = heapFloat[(fp+-28)];
+	r3 = sp + -16;
+	f2 = -f2;
+	r2 = r3 >> 2;
+	f1 = -f1;
+	heapFloat[(fp+-4)] = f2;
+	f0 = -f0;
+	heapFloat[(r2+1)] = f1;
+	heapFloat[(r2+2)] = f0;
+	heap32[(r2+3)] = 0;
+	r2 = heap32[(r1+93)];
+	r4 = r2 >> 2;
+	r5 = heap32[(r4+8)];
+	r5 = r5 << 2;
+	r5 = (r2 + r5)|0;
+	r5 = r5 >> 2;
+	heap32[(r5+4)] = 0;
+	r5 = heap32[(r1+91)];
+	r5 = (r5 + -1)|0;
+	r6 = heap32[(r4+8)];
+	r8 = r5 << 2;
+	r6 = r6 << 2;
+	r7 = (r7 + r8)|0;
+	r6 = (r2 + r6)|0;
+	r7 = r7 >> 2;
+	heap32[(r1+91)] = r5;
+	r5 = r6 >> 2;
+	r6 = heap32[(r7)];
+	heap32[(r5)] = r6;
+	r5 = heap32[(r4+8)];
+	r6 = r5 << 2;
+	r2 = (r2 + r6)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r5 = (r5 + 1)|0;
+	heap32[(r4+8)] = r5;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r2;
+	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
+	heap32[(g0)] = r0;
+	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB544_26
+{
+__label__ = 25;
+break _1;
+}
+else{
+	r3 = heap32[(r1+93)];
+	r2 = r3 >> 2;
+	r4 = heap32[(r2+8)];
+	r4 = (r4 + -1)|0;
+	r5 = heap32[(r1+91)];
+	r6 = r4 << 2;
+	r7 = r5 << 2;
+	r3 = (r3 + r6)|0;
+	r0 = (r0 + r7)|0;
+	r3 = r3 >> 2;
+	heap32[(r2+8)] = r4;
+	r0 = r0 >> 2;
+	r3 = heap32[(r3)];
+	r2 = (r5 + 1)|0;
+	heap32[(r0+87)] = r3;
+	heap32[(r1+91)] = r2;
+	r3 = 0;
+	r_g0 = r3;
+	return;
+}
+}
+}
+}
+else{
+	if(r4 ==4) //_LBB544_21
+{
+	r0 = heap32[(r3)];
+	r1 = heap32[(r3+1)];
+	r2 = heap32[(r3+3)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r2 = r2 >> 2;
+	r3 = heap32[(r3+2)];
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r1+6)];
+	f1 = heapFloat[(r2+6)];
+	f2 = heapFloat[(r0+6)];
+	f3 = heapFloat[(r0+5)];
+	f4 = heapFloat[(r2+5)];
+	f5 = heapFloat[(r1+4)];
+	f6 = heapFloat[(r2+4)];
+	f7 = heapFloat[(r3+5)];
+	f8 = heapFloat[(r0+4)];
+	f9 = heapFloat[(r3+4)];
+	f0 = f0-f1;
+	f3 = f3-f4;
+	f5 = f5-f6;
+	f2 = f2-f1;
+	f8 = f8-f6;
+	f10 = f3*f0;
+	f6 = f9-f6;
+	f9 = f2*f5;
+	f7 = f7-f4;
+	f0 = f8*f0;
+	f11 = heapFloat[(r3+6)];
+	f12 = heapFloat[(r1+5)];
+	f10 = f10*f6;
+	f9 = f9*f7;
+	f4 = f12-f4;
+	f9 = f10+f9;
+	f0 = f0*f7;
+	f3 = f3*f5;
+	f1 = f11-f1;
+	f5 = f8*f4;
+	f0 = f9-f0;
+	f3 = f3*f1;
+	f2 = f2*f4;
+	f0 = f0-f3;
+	f1 = f5*f1;
+	f0 = f0+f1;
+	f1 = f2*f6;
+	f0 = f0-f1;
+	f1 =                         0;
+	if(f0 <f1) //_LBB544_23
+{
+	f0 = -f0;
+}
+	r0 = f0 > f1;
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+}
+else{
+__label__ = 24;
+break _1;
+}
+}
+}
+else{
+	if(r4 ==1) //_LBB544_5
+{
+	r2 = 0;
+_16: while(true){
+	if(uint(r2) <uint(3)) //_LBB544_6
+{
+	r3 = sp + -64;
+	r4 = r3 >> 2;
+	heap32[(fp+-16)] = 0;
+	r5 = r2 << 2;
+	heap32[(r4+1)] = 0;
+	r5 = (r3 + r5)|0;
+	heap32[(r4+2)] = 0;
+	r5 = r5 >> 2;
+	heap32[(r4+3)] = 0;
+	heap32[(r5)] = 1065353216;
+	r5 = heap32[(r1+93)];
+	r6 = r5 >> 2;
+	r7 = heap32[(r6+8)];
+	r7 = r7 << 2;
+	r7 = (r5 + r7)|0;
+	r7 = r7 >> 2;
+	heap32[(r7+4)] = 0;
+	r7 = heap32[(r1+91)];
+	r7 = (r7 + -1)|0;
+	r8 = heap32[(r6+8)];
+	r9 = r7 << 2;
+	r8 = r8 << 2;
+	r9 = (r0 + r9)|0;
+	r8 = (r5 + r8)|0;
+	r9 = r9 >> 2;
+	heap32[(r1+91)] = r7;
+	r7 = r8 >> 2;
+	r8 = heap32[(r9+87)];
+	heap32[(r7)] = r8;
+	r7 = heap32[(r6+8)];
+	r8 = r7 << 2;
+	r5 = (r5 + r8)|0;
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	r7 = (r7 + 1)|0;
+	heap32[(r6+8)] = r7;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r5;
+	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
+	heap32[(g0)] = r0;
+	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB544_26
+{
+__label__ = 25;
+break _1;
+}
+else{
+	r3 = heap32[(r1+93)];
+	r5 = r3 >> 2;
+	r6 = heap32[(r5+8)];
+	r6 = (r6 + -1)|0;
+	r7 = heap32[(r1+91)];
+	r8 = r6 << 2;
+	r3 = (r3 + r8)|0;
+	r8 = (r0 + 348)|0;
+	r9 = r7 << 2;
+	r9 = (r8 + r9)|0;
+	r3 = r3 >> 2;
+	heap32[(r5+8)] = r6;
+	r5 = r9 >> 2;
+	r3 = heap32[(r3)];
+	r6 = (r7 + 1)|0;
+	heap32[(r5)] = r3;
+	heap32[(r1+91)] = r6;
+	f0 = heapFloat[(r4+2)];
+	f1 = heapFloat[(r4+1)];
+	f2 = heapFloat[(fp+-16)];
+	r3 = sp + -48;
+	f2 = -f2;
+	r4 = r3 >> 2;
+	f1 = -f1;
+	heapFloat[(fp+-12)] = f2;
+	f0 = -f0;
+	heapFloat[(r4+1)] = f1;
+	heapFloat[(r4+2)] = f0;
+	heap32[(r4+3)] = 0;
+	r4 = heap32[(r1+93)];
+	r5 = r4 >> 2;
+	r6 = heap32[(r5+8)];
+	r6 = r6 << 2;
+	r6 = (r4 + r6)|0;
+	r6 = r6 >> 2;
+	heap32[(r6+4)] = 0;
+	r6 = heap32[(r1+91)];
+	r6 = (r6 + -1)|0;
+	r7 = heap32[(r5+8)];
+	r9 = r6 << 2;
+	r7 = r7 << 2;
+	r8 = (r8 + r9)|0;
+	r7 = (r4 + r7)|0;
+	r8 = r8 >> 2;
+	heap32[(r1+91)] = r6;
+	r6 = r7 >> 2;
+	r7 = heap32[(r8)];
+	heap32[(r6)] = r7;
+	r6 = heap32[(r5+8)];
+	r7 = r6 << 2;
+	r4 = (r4 + r7)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	r6 = (r6 + 1)|0;
+	heap32[(r5+8)] = r6;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
+	heap32[(g0)] = r0;
+	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB544_26
+{
+__label__ = 25;
+break _1;
+}
+else{
+	r3 = heap32[(r1+93)];
+	r4 = r3 >> 2;
+	r5 = heap32[(r4+8)];
+	r5 = (r5 + -1)|0;
+	r6 = heap32[(r1+91)];
+	r7 = r5 << 2;
+	r8 = r6 << 2;
+	r3 = (r3 + r7)|0;
+	r7 = (r0 + r8)|0;
+	r3 = r3 >> 2;
+	heap32[(r4+8)] = r5;
+	r4 = r7 >> 2;
+	r3 = heap32[(r3)];
+	r2 = (r2 + 1)|0;
+	r5 = (r6 + 1)|0;
+	heap32[(r4+87)] = r3;
+	heap32[(r1+91)] = r5;
+continue _16;
+}
+}
+}
+else{
+__label__ = 24;
+break _1;
+}
+}
+}
+else{
+	if(r4 ==2) //_LBB544_10
+{
+	r2 = heap32[(r3+1)];
+	r3 = heap32[(r3)];
+	r2 = r2 >> 2;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r2+6)];
+	f1 = heapFloat[(r3+6)];
+	f2 = heapFloat[(r2+5)];
+	f3 = heapFloat[(r3+5)];
+	f4 = heapFloat[(r2+4)];
+	f5 = heapFloat[(r3+4)];
+	f0 = f0-f1;
+	f1 = f2-f3;
+	f2 = f4-f5;
+	r2 = 0;
+_23: while(true){
+	if(uint(r2) <uint(3)) //_LBB544_11
+{
+	r3 = sp + -80;
+	r4 = r3 >> 2;
+	heap32[(fp+-20)] = 0;
+	r5 = r2 << 2;
+	heap32[(r4+1)] = 0;
+	r3 = (r3 + r5)|0;
+	heap32[(r4+2)] = 0;
+	r3 = r3 >> 2;
+	heap32[(r4+3)] = 0;
+	heap32[(r3)] = 1065353216;
+	f3 = heapFloat[(r4+2)];
+	f4 = heapFloat[(r4+1)];
+	f5 = heapFloat[(fp+-20)];
+	f6 = f1*f3;
+	f7 = f0*f4;
+	r3 = sp + -96;
+	f6 = f6-f7;
+	f7 = f0*f5;
+	f3 = f2*f3;
+	f3 = f7-f3;
+	r4 = r3 >> 2;
+	heapFloat[(fp+-24)] = f6;
+	f4 = f2*f4;
+	f5 = f1*f5;
+	f4 = f4-f5;
+	heapFloat[(r4+1)] = f3;
+	f5 = f6*f6;
+	f3 = f3*f3;
+	heapFloat[(r4+2)] = f4;
+	f3 = f5+f3;
+	f4 = f4*f4;
+	f3 = f3+f4;
+	f4 =                         0;
+	heap32[(r4+3)] = 0;
+if(!(f3 <=f4)) //_LBB544_15
+{
+	r5 = heap32[(r1+93)];
+	r6 = r5 >> 2;
+	r7 = heap32[(r6+8)];
+	r7 = r7 << 2;
+	r7 = (r5 + r7)|0;
+	r7 = r7 >> 2;
+	heap32[(r7+4)] = 0;
+	r7 = heap32[(r1+91)];
+	r7 = (r7 + -1)|0;
+	r8 = heap32[(r6+8)];
+	r9 = r7 << 2;
+	r8 = r8 << 2;
+	r9 = (r0 + r9)|0;
+	r8 = (r5 + r8)|0;
+	r9 = r9 >> 2;
+	heap32[(r1+91)] = r7;
+	r7 = r8 >> 2;
+	r8 = heap32[(r9+87)];
+	heap32[(r7)] = r8;
+	r7 = heap32[(r6+8)];
+	r8 = r7 << 2;
+	r5 = (r5 + r8)|0;
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	r7 = (r7 + 1)|0;
+	heap32[(r6+8)] = r7;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r5;
+	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
+	heap32[(g0)] = r0;
+	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB544_26
+{
+__label__ = 25;
+break _1;
+}
+else{
+	r3 = heap32[(r1+93)];
+	r5 = r3 >> 2;
+	r6 = heap32[(r5+8)];
+	r6 = (r6 + -1)|0;
+	r7 = heap32[(r1+91)];
+	r8 = r6 << 2;
+	r3 = (r3 + r8)|0;
+	r8 = (r0 + 348)|0;
+	r9 = r7 << 2;
+	r9 = (r8 + r9)|0;
+	r3 = r3 >> 2;
+	heap32[(r5+8)] = r6;
+	r5 = r9 >> 2;
+	r3 = heap32[(r3)];
+	r6 = (r7 + 1)|0;
+	heap32[(r5)] = r3;
+	heap32[(r1+91)] = r6;
+	f3 = heapFloat[(r4+2)];
+	f4 = heapFloat[(r4+1)];
+	f5 = heapFloat[(fp+-24)];
+	r3 = sp + -32;
+	f5 = -f5;
+	r4 = r3 >> 2;
+	f4 = -f4;
+	heapFloat[(fp+-8)] = f5;
+	f3 = -f3;
+	heapFloat[(r4+1)] = f4;
+	heapFloat[(r4+2)] = f3;
+	heap32[(r4+3)] = 0;
+	r4 = heap32[(r1+93)];
+	r5 = r4 >> 2;
+	r6 = heap32[(r5+8)];
+	r6 = r6 << 2;
+	r6 = (r4 + r6)|0;
+	r6 = r6 >> 2;
+	heap32[(r6+4)] = 0;
+	r6 = heap32[(r1+91)];
+	r6 = (r6 + -1)|0;
+	r7 = heap32[(r5+8)];
+	r9 = r6 << 2;
+	r7 = r7 << 2;
+	r8 = (r8 + r9)|0;
+	r7 = (r4 + r7)|0;
+	r8 = r8 >> 2;
+	heap32[(r1+91)] = r6;
+	r6 = r7 >> 2;
+	r7 = heap32[(r8)];
+	heap32[(r6)] = r7;
+	r6 = heap32[(r5+8)];
+	r7 = r6 << 2;
+	r4 = (r4 + r7)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	r6 = (r6 + 1)|0;
+	heap32[(r5+8)] = r6;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
+	heap32[(g0)] = r0;
+	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB544_26
+{
+__label__ = 25;
+break _1;
+}
+else{
+	r3 = heap32[(r1+93)];
+	r4 = r3 >> 2;
+	r5 = heap32[(r4+8)];
+	r5 = (r5 + -1)|0;
+	r6 = heap32[(r1+91)];
+	r7 = r5 << 2;
+	r8 = r6 << 2;
+	r3 = (r3 + r7)|0;
+	r7 = (r0 + r8)|0;
+	r3 = r3 >> 2;
+	heap32[(r4+8)] = r5;
+	r4 = r7 >> 2;
+	r3 = heap32[(r3)];
+	r5 = (r6 + 1)|0;
+	heap32[(r4+87)] = r3;
+	heap32[(r1+91)] = r5;
+}
+}
+}
+	r2 = (r2 + 1)|0;
+continue _23;
+}
+else{
+__label__ = 24;
+break _1;
+}
+}
+}
+else{
+__label__ = 24;
+}
+}
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 24:
+	r0 = 0;
+	r_g0 = r0;
+	return;
+break;
+case 25:
+	r0 = 1;
+	r_g0 = r0;
+	return;
+break;
+}
+}
+
+function _ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+var __label__ = 0;
+	i7 = sp + -96;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = sp + -12;
+	r2 = heap32[(fp+1)];
+	r3 = r1 >> 2;
+	heap32[(fp+-3)] = r0;
+	r4 = heap32[(fp+2)];
+	heap32[(r3+1)] = r2;
+	r5 = r0 >> 2;
+	heap32[(r3+2)] = r4;
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r5+2)];
+	f1 = heapFloat[(r2+2)];
+	f2 = heapFloat[(r5+1)];
+	f3 = heapFloat[(r2+1)];
+	f4 = heapFloat[(r5)];
+	f5 = heapFloat[(r2)];
+	r3 = sp + -64;
+	f6 = f4-f5;
+	f7 = f2-f3;
+	r6 = r3 >> 2;
+	heapFloat[(fp+-16)] = f6;
+	f8 = f0-f1;
+	heapFloat[(r6+1)] = f7;
+	heapFloat[(r6+2)] = f8;
+	r4 = r4 >> 2;
+	heap32[(r6+3)] = 0;
+	f9 = heapFloat[(r4+2)];
+	f10 = heapFloat[(r4+1)];
+	f11 = heapFloat[(r4)];
+	f5 = f5-f11;
+	f3 = f3-f10;
+	heapFloat[(r6+4)] = f5;
+	f1 = f1-f9;
+	heapFloat[(r6+5)] = f3;
+	heapFloat[(r6+6)] = f1;
+	f12 = f8*f5;
+	f13 = f6*f1;
+	f14 = f7*f1;
+	f15 = f8*f3;
+	f12 = f12-f13;
+	f13 = f14-f15;
+	f11 = f11-f4;
+	heap32[(r6+7)] = 0;
+	f14 = f6*f3;
+	f15 = f7*f5;
+	f14 = f14-f15;
+	f10 = f10-f2;
+	heapFloat[(r6+8)] = f11;
+	f15 = f13*f13;
+	f16 = f12*f12;
+	f9 = f9-f0;
+	heapFloat[(r6+9)] = f10;
+	f15 = f15+f16;
+	f16 = f14*f14;
+	f15 = f15+f16;
+	heapFloat[(r6+10)] = f9;
+	heap32[(r6+11)] = 0;
+	f16 =                         0;
+	if(f15 >f16) //_LBB545_2
+{
+	r6 = heap32[(fp+3)];
+	r7 = heap32[(fp+4)];
+	r8 = sp + -72;
+	r9 = r8 >> 2;
+	heap32[(fp+-18)] = 0;
+	r10 = 0;
+	f17 =                        -1;
+	heap32[(r9+1)] = 0;
+	heap32[(fp+-19)] = 0;
+	r18 = 0;
+_3: while(true){
+	f18 = f7*f14;
+	f19 = f8*f12;
+	f8 = f8*f13;
+	f20 = f6*f14;
+	f18 = f18-f19;
+	f8 = f8-f20;
+	f6 = f6*f12;
+	f7 = f7*f13;
+	f4 = f4*f18;
+	f2 = f2*f8;
+	f6 = f6-f7;
+	f2 = f4+f2;
+	f0 = f0*f6;
+	f0 = f2+f0;
+_5: do {
+	if(f0 >f16) //_LBB545_5
+{
+	r11 = _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3;
+	r12 = r10 << 2;
+	r13 = (r11 + r12)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13)];
+	r14 = r13 << 2;
+	r15 = (r1 + r14)|0;
+	r15 = r15 >> 2;
+	r15 = heap32[(r15)];
+	r16 = sp + -76;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r15;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r16;
+	_ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(i7);
+	f0 = f_g0;
+if(!(f17 <f16)) //_LBB545_7
+{
+	if(f0 >=f17) //_LBB545_4
+{
+break _5;
+}
+}
+	r0 = heap32[(fp+-19)];
+	r15 = 1;
+	r11 = (r11 + r14)|0;
+	r16 = r0 & 1;
+	r17 = r15 << r10;
+	r0 = r0 & 2;
+	r13 = r15 << r13;
+	r11 = r11 >> 2;
+	r15 = r16 == 0 ? r18 : r17;
+	r0 = r0 == 0 ? r18 : r13;
+	r11 = heap32[(r11)];
+	r12 = (r6 + r12)|0;
+	r13 = r7 >> 2;
+	r0 = (r15 + r0)|0;
+	r11 = r11 << 2;
+	r14 = (r6 + r14)|0;
+	r12 = r12 >> 2;
+	heap32[(r13)] = r0;
+	r0 = (r6 + r11)|0;
+	r11 = r14 >> 2;
+	heap32[(r12)] = heap32[(fp+-18)];
+	r0 = r0 >> 2;
+	heap32[(r11)] = heap32[(r9+1)];
+	heap32[(r0)] = 0;
+	f17 = f0;
+}
+} while(0);
+	if(r10 ==2) //_LBB545_10
+{
+break _3;
+}
+else{
+	r11 = (r10 + 1)|0;
+	r0 = r10 << 2;
+	r0 = (r1 + r0)|0;
+	r0 = r0 >> 2;
+	r10 = r10 << 4;
+	r0 = heap32[(r0+1)];
+	r10 = (r3 + r10)|0;
+	r10 = r10 >> 2;
+	r12 = r0 >> 2;
+	f6 = heapFloat[(r10+4)];
+	f7 = heapFloat[(r10+5)];
+	f8 = heapFloat[(r10+6)];
+	f4 = heapFloat[(r12)];
+	f2 = heapFloat[(r12+1)];
+	f0 = heapFloat[(r12+2)];
+	r10 = r11;
+}
+}
+	if(f17 <f16) //_LBB545_12
+{
+	f17 = heapFloat[(r5)];
+	f0 = heapFloat[(r5+1)];
+	f2 = heapFloat[(r5+2)];
+	f17 = f17*f13;
+	f0 = f0*f12;
+	heapFloat[(g0)] = f15;
+	f17 = f17+f0;
+	f0 = f2*f14;
+	f17 = f17+f0;
+	r0 = r7 >> 2;
+	sqrtf(i7);
+	f0 = f_g0;
+	f17 = f17/f15;
+	heap32[(r0)] = 7;
+	f2 = f13*f17;
+	f4 = heapFloat[(r2)];
+	f6 = f12*f17;
+	f7 = heapFloat[(r2+1)];
+	f8 = heapFloat[(r2+2)];
+	f17 = f14*f17;
+	f7 = f7-f6;
+	f8 = f8-f17;
+	f4 = f4-f2;
+	f12 = f3*f8;
+	f13 = f1*f7;
+	f1 = f1*f4;
+	f8 = f5*f8;
+	f12 = f12-f13;
+	f1 = f1-f8;
+	f5 = f5*f7;
+	f3 = f3*f4;
+	f3 = f5-f3;
+	f4 = f12*f12;
+	f1 = f1*f1;
+	f1 = f4+f1;
+	f3 = f3*f3;
+	f1 = f1+f3;
+	heapFloat[(g0)] = f1;
+	sqrtf(i7);
+	r0 = r6 >> 2;
+	f1 = f_g0/f0;
+	heapFloat[(r0)] = f1;
+	f1 = heapFloat[(r4+2)];
+	f3 = heapFloat[(r4+1)];
+	f4 = heapFloat[(r4)];
+	f3 = f3-f6;
+	f1 = f1-f17;
+	f4 = f4-f2;
+	f5 = f10*f1;
+	f7 = f9*f3;
+	f8 = f9*f4;
+	f1 = f11*f1;
+	f5 = f5-f7;
+	f1 = f8-f1;
+	f3 = f11*f3;
+	f4 = f10*f4;
+	f3 = f3-f4;
+	f4 = f5*f5;
+	f1 = f1*f1;
+	f1 = f4+f1;
+	f3 = f3*f3;
+	f1 = f1+f3;
+	heapFloat[(g0)] = f1;
+	sqrtf(i7);
+	f0 = f_g0/f0;
+	heapFloat[(r0+1)] = f0;
+	f1 = heapFloat[(r0)];
+	f3 =                         1;
+	f0 = f1+f0;
+	f1 = f2*f2;
+	f2 = f6*f6;
+	f0 = f3-f0;
+	f1 = f1+f2;
+	f17 = f17*f17;
+	heapFloat[(r0+2)] = f0;
+	f17 = f1+f17;
+}
+}
+else{
+	f17 =                        -1;
+}
+	f_g0 = f17;
+	return;
+}
+
+function _ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var r24;
+	var r25;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+var __label__ = 0;
+	i7 = sp + -240;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = (r0 + 220)|0;
+	r3 = (r0 + 252)|0;
+	heap32[(r1+87)] = r2;
+	r2 = (r0 + 284)|0;
+	heap32[(r1+88)] = r3;
+	r3 = (r0 + 316)|0;
+	heap32[(r1+89)] = r2;
+	heap32[(r1+90)] = r3;
+	heap32[(r1+91)] = 4;
+	r2 = heap32[(fp+1)];
+	heap32[(r1+92)] = 0;
+	r2 = r2 >> 2;
+	heap32[(r1+94)] = 0;
+	r4 = heap32[(r2+1)];
+	r5 = heap32[(r2)];
+	heap32[(r1)] = r5;
+	heap32[(r1+1)] = r4;
+	heap32[(r1+2)] = heap32[(r2+2)];
+	heap32[(r1+3)] = heap32[(r2+3)];
+	heap32[(r1+4)] = heap32[(r2+4)];
+	heap32[(r1+5)] = heap32[(r2+5)];
+	heap32[(r1+6)] = heap32[(r2+6)];
+	heap32[(r1+7)] = heap32[(r2+7)];
+	heap32[(r1+8)] = heap32[(r2+8)];
+	heap32[(r1+9)] = heap32[(r2+9)];
+	heap32[(r1+10)] = heap32[(r2+10)];
+	heap32[(r1+11)] = heap32[(r2+11)];
+	heap32[(r1+12)] = heap32[(r2+12)];
+	heap32[(r1+13)] = heap32[(r2+13)];
+	heap32[(r1+14)] = heap32[(r2+14)];
+	heap32[(r1+15)] = heap32[(r2+15)];
+	heap32[(r1+16)] = heap32[(r2+16)];
+	heap32[(r1+17)] = heap32[(r2+17)];
+	heap32[(r1+18)] = heap32[(r2+18)];
+	heap32[(r1+19)] = heap32[(r2+19)];
+	heap32[(r1+20)] = heap32[(r2+20)];
+	heap32[(r1+21)] = heap32[(r2+21)];
+	heap32[(r1+22)] = heap32[(r2+22)];
+	heap32[(r1+23)] = heap32[(r2+23)];
+	heap32[(r1+24)] = heap32[(r2+24)];
+	heap32[(r1+25)] = heap32[(r2+25)];
+	heap32[(r1+26)] = heap32[(r2+26)];
+	heap32[(r1+27)] = heap32[(r2+27)];
+	heap32[(r1+28)] = heap32[(r2+28)];
+	heap32[(r1+29)] = heap32[(r2+29)];
+	r4 = heap32[(r2+31)];
+	r2 = heap32[(r2+30)];
+	heap32[(r1+30)] = r2;
+	heap32[(r1+31)] = r4;
+	r2 = heap32[(fp+2)];
+	heap32[(r1+36)] = 0;
+	r2 = r2 >> 2;
+	heap32[(r1+45)] = 0;
+	f0 = heapFloat[(r2)];
+	heapFloat[(r1+32)] = f0;
+	f1 = heapFloat[(r2+1)];
+	heapFloat[(r1+33)] = f1;
+	f2 = heapFloat[(r2+2)];
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	heapFloat[(r1+34)] = f2;
+	heap32[(r1+35)] = heap32[(r2+3)];
+	f4 =                         0;
+	if(f3 <=f4) //_LBB546_2
+{
+	r2 = sp + -112;
+	r2 = r2 >> 2;
+	heap32[(fp+-28)] = 1065353216;
+	heap32[(r2+1)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+}
+else{
+	r2 = sp + -112;
+	f0 = -f0;
+	r2 = r2 >> 2;
+	f1 = -f1;
+	heapFloat[(fp+-28)] = f0;
+	f0 = -f2;
+	heapFloat[(r2+1)] = f1;
+	heapFloat[(r2+2)] = f0;
+	heap32[(r2+3)] = 0;
+}
+	heap32[(r1+41)] = 0;
+	heap32[(r1+91)] = 3;
+	heap32[(r1+37)] = r3;
+	heap32[(r1+45)] = 1;
+	r2 = sp + -112;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
+	heap32[(r1+41)] = 1065353216;
+	r2 = heap32[(r1+37)];
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r2+4)];
+	heapFloat[(r1+32)] = f0;
+	f1 = heapFloat[(r2+5)];
+	heapFloat[(r1+33)] = f1;
+	f2 = heapFloat[(r2+6)];
+	heapFloat[(r1+34)] = f2;
+	f5 = heapFloat[(r2+7)];
+	r2 = sp + -176;
+	r3 = r2 >> 2;
+	heapFloat[(r1+35)] = f5;
+	heapFloat[(r3+12)] = f0;
+	heapFloat[(r3+13)] = f1;
+	heapFloat[(r3+14)] = f2;
+	heapFloat[(r3+15)] = f5;
+	heapFloat[(r3+8)] = f0;
+	heapFloat[(r3+9)] = f1;
+	heapFloat[(r3+10)] = f2;
+	heapFloat[(r3+11)] = f5;
+	heapFloat[(r3+4)] = f0;
+	heapFloat[(r3+5)] = f1;
+	heapFloat[(r3+6)] = f2;
+	heapFloat[(r3+7)] = f5;
+	heapFloat[(fp+-44)] = f0;
+	heapFloat[(r3+1)] = f1;
+	r4 = (r0 + 148)|0;
+	heap32[(fp+-52)] = r4;
+	r4 = 0;
+	r5 = 1;
+	heap32[(fp+-53)] = r5;
+	heapFloat[(r3+2)] = f2;
+	heapFloat[(r3+3)] = f5;
+	heap32[(fp+-50)] = r5;
+	r24 = 0;
+_5: while(true){
+	f0 = f0*f0;
+	f1 = f1*f1;
+	r3 = heap32[(r1+92)];
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f0 = f_g0;
+	f1 =   9.9999997473787516e-005;
+	if(f0 >=f1) //_LBB546_6
+{
+	r5 = heap32[(fp+-53)];
+	r5 = (r5 - r3)|0;
+	heap32[(fp+-51)] = r5;
+	f2 = heapFloat[(r1+34)];
+	f5 = heapFloat[(r1+33)];
+	f6 = heapFloat[(r1+32)];
+	r5 = sp + -96;
+	f6 = -f6;
+	r6 = r5 >> 2;
+	f5 = -f5;
+	heapFloat[(fp+-24)] = f6;
+	r3 = (r3 * 36)|0;
+	f2 = -f2;
+	heapFloat[(r6+1)] = f5;
+	r7 = (r0 + r3)|0;
+	heapFloat[(r6+2)] = f2;
+	heap32[(r6+3)] = 0;
+	r6 = r7 >> 2;
+	r8 = heap32[(r6+45)];
+	r8 = r8 << 2;
+	r8 = (r7 + r8)|0;
+	r8 = r8 >> 2;
+	heap32[(r8+41)] = 0;
+	r8 = heap32[(r1+91)];
+	r8 = (r8 + -1)|0;
+	r9 = heap32[(r6+45)];
+	r10 = r8 << 2;
+	r10 = (r0 + r10)|0;
+	r9 = r9 << 2;
+	r7 = (r7 + 148)|0;
+	r9 = (r7 + r9)|0;
+	r10 = r10 >> 2;
+	heap32[(r1+91)] = r8;
+	r8 = r9 >> 2;
+	r9 = heap32[(r10+87)];
+	heap32[(r8)] = r9;
+	r8 = heap32[(r6+45)];
+	r9 = r8 << 2;
+	r9 = (r7 + r9)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+	r8 = (r8 + 1)|0;
+	heap32[(r6+45)] = r8;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r9;
+	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
+	r5 = heap32[(r6+45)];
+	r8 = r5 << 2;
+	r7 = (r8 + r7)|0;
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+-1)];
+	r8 = 0;
+_8: while(true){
+	if(uint(r8) <uint(4)) //_LBB546_7
+{
+	r9 = r8 << 4;
+	r9 = (r2 + r9)|0;
+	r10 = r7 >> 2;
+	r9 = r9 >> 2;
+	f2 = heapFloat[(r10+4)];
+	f5 = heapFloat[(r9)];
+	f6 = heapFloat[(r10+5)];
+	f7 = heapFloat[(r9+1)];
+	f2 = f2-f5;
+	f5 = f6-f7;
+	f6 = heapFloat[(r10+6)];
+	f7 = heapFloat[(r9+2)];
+	f6 = f6-f7;
+	f2 = f2*f2;
+	f5 = f5*f5;
+	f2 = f2+f5;
+	f5 = f6*f6;
+	f2 = f2+f5;
+	if(f2 <f1) //_LBB546_10
+{
+__label__ = 10;
+break _5;
+}
+else{
+	r8 = (r8 + 1)|0;
+}
+}
+else{
+break _8;
+}
+}
+	r8 = heap32[(fp+-50)];
+	r8 = r8 << 4;
+	r8 = (r2 + r8)|0;
+	r8 = r8 >> 2;
+	r7 = r7 >> 2;
+	heap32[(r8)] = heap32[(r7+4)];
+	heap32[(r8+1)] = heap32[(r7+5)];
+	heap32[(r8+2)] = heap32[(r7+6)];
+	heap32[(r8+3)] = heap32[(r7+7)];
+	f1 = heapFloat[(r1+32)];
+	f2 = heapFloat[(r7+4)];
+	f5 = heapFloat[(r1+33)];
+	f6 = heapFloat[(r7+5)];
+	f1 = f1*f2;
+	f2 = f5*f6;
+	f5 = heapFloat[(r1+34)];
+	f6 = heapFloat[(r7+6)];
+	f1 = f1+f2;
+	f2 = f5*f6;
+	f1 = f1+f2;
+	f1 = f1/f0;
+	f4 = f1 > f4 ? f1 : f4;
+	f1 =  -9.9999997473787516e-005;
+	f2 = f0-f4;
+	f0 = f0*f1;
+	f0 = f2+f0;
+	f5 =                         0;
+	if(f0 >f5) //_LBB546_13
+{
+	heap32[(fp+-49)] = 0;
+_14: do {
+	if(r5 ==2) //_LBB546_17
+{
+	r5 = heap32[(r6+38)];
+	r7 = heap32[(r6+37)];
+	r7 = (r7 + 16)|0;
+	r5 = (r5 + 16)|0;
+	r8 = sp + -192;
+	r9 = sp + -196;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r9;
+	_ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(i7);
+	f3 = f_g0;
+__label__ = 32;
+break _14;
+}
+else{
+	if(r5 ==3) //_LBB546_18
+{
+	r5 = heap32[(r6+39)];
+	r7 = heap32[(r6+38)];
+	r8 = heap32[(r6+37)];
+	r8 = (r8 + 16)|0;
+	r7 = (r7 + 16)|0;
+	r5 = (r5 + 16)|0;
+	r9 = sp + -192;
+	r10 = sp + -196;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r9;
+	heap32[(g0+4)] = r10;
+	_ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(i7);
+	f3 = f_g0;
+__label__ = 32;
+}
+else{
+	if(r5 ==4) //_LBB546_19
+{
+	r5 = heap32[(r6+40)];
+	r7 = heap32[(r6+39)];
+	r8 = heap32[(r6+38)];
+	r9 = heap32[(r6+37)];
+	r10 = sp + -16;
+	r11 = (r9 + 16)|0;
+	r12 = r10 >> 2;
+	r13 = (r8 + 16)|0;
+	heap32[(fp+-4)] = r11;
+	r11 = (r7 + 16)|0;
+	heap32[(r12+1)] = r13;
+	r13 = (r5 + 16)|0;
+	heap32[(r12+2)] = r11;
+	r9 = r9 >> 2;
+	heap32[(r12+3)] = r13;
+	r5 = r5 >> 2;
+	f0 = heapFloat[(r9+6)];
+	f1 = heapFloat[(r5+6)];
+	f2 = heapFloat[(r9+5)];
+	f3 = heapFloat[(r5+5)];
+	f6 = heapFloat[(r9+4)];
+	f7 = heapFloat[(r5+4)];
+	r11 = sp + -64;
+	f8 = f6-f7;
+	f9 = f2-f3;
+	r12 = r11 >> 2;
+	heapFloat[(fp+-16)] = f8;
+	f10 = f0-f1;
+	heapFloat[(r12+1)] = f9;
+	heapFloat[(r12+2)] = f10;
+	r8 = r8 >> 2;
+	heap32[(r12+3)] = 0;
+	f11 = heapFloat[(r8+6)];
+	f12 = heapFloat[(r8+5)];
+	f13 = heapFloat[(r8+4)];
+	f14 = f13-f7;
+	f15 = f12-f3;
+	heapFloat[(r12+4)] = f14;
+	f16 = f11-f1;
+	heapFloat[(r12+5)] = f15;
+	heapFloat[(r12+6)] = f16;
+	r7 = r7 >> 2;
+	heap32[(r12+7)] = 0;
+	f17 = heapFloat[(r7+5)];
+	f18 = heapFloat[(r7+4)];
+	f19 = f9*f16;
+	f7 = f18-f7;
+	f20 = f10*f14;
+	f3 = f17-f3;
+	f21 = heapFloat[(r7+6)];
+	f16 = f8*f16;
+	f19 = f19*f7;
+	f20 = f20*f3;
+	f22 = f11-f21;
+	f23 = f2-f12;
+	f18 = f13-f18;
+	f11 = f0-f11;
+	f12 = f12-f17;
+	f13 = f6-f13;
+	f17 = f19+f20;
+	f16 = f16*f3;
+	f14 = f9*f14;
+	f1 = f21-f1;
+	f19 = f8*f15;
+	f20 = f12*f11;
+	f21 = f22*f23;
+	f22 = f22*f13;
+	f11 = f18*f11;
+	f16 = f17-f16;
+	f14 = f14*f1;
+	f17 = f20-f21;
+	f11 = f22-f11;
+	f15 = f10*f15;
+	heapFloat[(r12+8)] = f7;
+	f18 = f18*f23;
+	f12 = f12*f13;
+	f13 = f16-f14;
+	f14 = f19*f1;
+	f12 = f18-f12;
+	heapFloat[(r12+9)] = f3;
+	f3 = f6*f17;
+	f2 = f2*f11;
+	f6 = f13+f14;
+	f7 = f15*f7;
+	f6 = f6-f7;
+	heapFloat[(r12+10)] = f1;
+	f1 = f3+f2;
+	f0 = f0*f12;
+	f0 = f1+f0;
+	heap32[(r12+11)] = 0;
+	f0 = f0*f6;
+	if(f0 >f5) //_LBB546_45
+{
+__label__ = 42;
+break _5;
+}
+else{
+	if(f6 <f5) //_LBB546_22
+{
+	f0 = -f6;
+}
+else{
+	f0 = f6;
+}
+	if(f0 <=f5) //_LBB546_45
+{
+__label__ = 42;
+break _5;
+}
+else{
+	r12 = sp + -76;
+	r14 = r12 >> 2;
+	heap32[(fp+-19)] = 0;
+	heap32[(r14+1)] = 0;
+	r15 = 0;
+	f3 =                        -1;
+	heap32[(r14+2)] = 0;
+	heap32[(fp+-20)] = 0;
+_27: while(true){
+	r16 = _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3;
+	r17 = r15 << 2;
+	r18 = (r16 + r17)|0;
+	r18 = r18 >> 2;
+	r18 = heap32[(r18)];
+	r19 = r18 << 4;
+	r19 = (r11 + r19)|0;
+	r19 = r19 >> 2;
+	f0 = heapFloat[(r19+1)];
+	f1 = heapFloat[(r19+2)];
+	f2 = heapFloat[(r19)];
+	f7 = f9*f1;
+	f11 = f10*f0;
+	f10 = f10*f2;
+	f1 = f8*f1;
+	f12 = heapFloat[(r5+4)];
+	f7 = f7-f11;
+	f11 = heapFloat[(r5+5)];
+	f1 = f10-f1;
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f8 = f12*f7;
+	f1 = f11*f1;
+	f9 = heapFloat[(r5+6)];
+	f0 = f0-f2;
+	f1 = f8+f1;
+	f0 = f9*f0;
+	f0 = f1+f0;
+	f0 = f0*f6;
+_29: do {
+	if(f0 >f5) //_LBB546_27
+{
+	r19 = r18 << 2;
+	r20 = (r10 + r19)|0;
+	r21 = (r10 + r17)|0;
+	r20 = r20 >> 2;
+	r21 = r21 >> 2;
+	r20 = heap32[(r20)];
+	r21 = heap32[(r21)];
+	r22 = sp + -80;
+	heap32[(g0)] = r21;
+	heap32[(g0+1)] = r20;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = r12;
+	heap32[(g0+4)] = r22;
+	_ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(i7);
+	f0 = f_g0;
+	f1 =                         0;
+if(!(f3 <f1)) //_LBB546_29
+{
+	if(f0 >=f3) //_LBB546_26
+{
+break _29;
+}
+}
+	r20 = heap32[(fp+-20)];
+	r21 = 1;
+	r22 = r20 & 1;
+	r23 = r21 << r15;
+	r25 = r20 & 2;
+	r18 = r21 << r18;
+	r16 = (r16 + r19)|0;
+	r21 = r22 == 0 ? r24 : r23;
+	r18 = r25 == 0 ? r24 : r18;
+	r20 = r20 & 4;
+	r22 = 8;
+	r23 = sp + -192;
+	r16 = r16 >> 2;
+	r18 = (r21 + r18)|0;
+	r20 = r20 == 0 ? r24 : r22;
+	r16 = heap32[(r16)];
+	r17 = (r23 + r17)|0;
+	r18 = (r18 + r20)|0;
+	r16 = r16 << 2;
+	r19 = (r23 + r19)|0;
+	r17 = r17 >> 2;
+	heap32[(fp+-49)] = r18;
+	r16 = (r23 + r16)|0;
+	r18 = r19 >> 2;
+	heap32[(r17)] = heap32[(fp+-19)];
+	r16 = r16 >> 2;
+	heap32[(r18)] = heap32[(r14+1)];
+	r17 = r23 >> 2;
+	heap32[(r16)] = 0;
+	heap32[(r17+3)] = heap32[(r14+2)];
+	f3 = f0;
+}
+} while(0);
+	if(r15 ==2) //_LBB546_32
+{
+break _27;
+}
+else{
+	r16 = (r15 + 1)|0;
+	r15 = r15 << 4;
+	r15 = (r11 + r15)|0;
+	r15 = r15 >> 2;
+	f8 = heapFloat[(r15+4)];
+	f9 = heapFloat[(r15+5)];
+	f10 = heapFloat[(r15+6)];
+	r15 = r16;
+}
+}
+	if(f3 <f5) //_LBB546_34
+{
+	heap32[(fp+-49)] = 15;
+	f0 = heapFloat[(r7+5)];
+	f1 = heapFloat[(r8+6)];
+	f2 = heapFloat[(r8+4)];
+	f3 = heapFloat[(r7+6)];
+	f7 = heapFloat[(r7+4)];
+	f8 = f0*f1;
+	f9 = heapFloat[(r5+4)];
+	f10 = f3*f2;
+	f11 = heapFloat[(r5+5)];
+	f12 = f7*f1;
+	f8 = f8*f9;
+	f10 = f10*f11;
+	f13 = heapFloat[(r8+5)];
+	f14 = heapFloat[(r5+6)];
+	f15 = f0*f2;
+	f8 = f8+f10;
+	f10 = f12*f11;
+	f12 = f7*f13;
+	f8 = f8-f10;
+	f10 = f15*f14;
+	f15 = f3*f13;
+	f8 = f8-f10;
+	f10 = f12*f14;
+	f8 = f8+f10;
+	f10 = f15*f9;
+	f8 = f8-f10;
+	f8 = f8/f6;
+	heapFloat[(fp+-48)] = f8;
+	f10 = heapFloat[(r9+5)];
+	f12 = heapFloat[(r9+6)];
+	f15 = heapFloat[(r9+4)];
+	f16 = f10*f3;
+	f17 = f12*f7;
+	f18 = f13*f12;
+	f19 = f1*f15;
+	f3 = f15*f3;
+	f16 = f16*f9;
+	f17 = f17*f11;
+	f20 = f2*f12;
+	f7 = f10*f7;
+	f18 = f18*f9;
+	f19 = f19*f11;
+	f16 = f16+f17;
+	f3 = f3*f11;
+	f13 = f13*f15;
+	f15 = f15*f0;
+	f17 = f18+f19;
+	f11 = f20*f11;
+	f3 = f16-f3;
+	f7 = f7*f14;
+	f2 = f2*f10;
+	f0 = f12*f0;
+	f11 = f17-f11;
+	f12 = f13*f14;
+	f3 = f3-f7;
+	f7 = f15*f14;
+	f1 = f1*f10;
+	f10 = f11-f12;
+	f2 = f2*f14;
+	f3 = f3+f7;
+	f0 = f0*f9;
+	f0 = f3-f0;
+	f2 = f10+f2;
+	f1 = f1*f9;
+	r5 = sp + -192;
+	f1 = f2-f1;
+	f0 = f0/f6;
+	r5 = r5 >> 2;
+	f2 = f8+f0;
+	f1 = f1/f6;
+	heapFloat[(r5+1)] = f0;
+	f0 =                         1;
+	f2 = f2+f1;
+	r7 = 15;
+	f0 = f0-f2;
+	heapFloat[(r5+2)] = f1;
+	heapFloat[(r5+3)] = f0;
+__label__ = 34;
+}
+else{
+__label__ = 32;
+}
+}
+}
+}
+else{
+__label__ = 32;
+}
+}
+}
+} while(0);
+if (__label__ == 32){
+	f0 =                         0;
+	if(f3 <f0) //_LBB546_45
+{
+__label__ = 42;
+break _5;
+}
+else{
+	r7 = heap32[(fp+-49)];
+	f5 = f3;
+}
+}
+	r5 = heap32[(fp+-51)];
+	r8 = (r5 * 36)|0;
+	r8 = (r0 + r8)|0;
+	r9 = r8 >> 2;
+	heap32[(r9+45)] = 0;
+	heap32[(r1+32)] = 0;
+	heap32[(r1+33)] = 0;
+	heap32[(r1+34)] = 0;
+	heap32[(r1+35)] = 0;
+	heap32[(r1+92)] = r5;
+	r5 = heap32[(r6+45)];
+_42: do {
+if(!(r5 ==0)) //_LBB546_43
+{
+	r6 = heap32[(fp+-52)];
+	r3 = (r6 + r3)|0;
+	r6 = 0;
+_44: while(true){
+	r10 = 1;
+	r10 = r10 << r6;
+	r10 = r7 & r10;
+	if(r10 ==0) //_LBB546_41
+{
+	r10 = r6 << 2;
+	r11 = heap32[(r1+91)];
+	r10 = (r3 + r10)|0;
+	r12 = r11 << 2;
+	r10 = r10 >> 2;
+	r12 = (r0 + r12)|0;
+	r10 = heap32[(r10)];
+	r12 = r12 >> 2;
+	r11 = (r11 + 1)|0;
+	heap32[(r12+87)] = r10;
+	heap32[(r1+91)] = r11;
+}
+else{
+	r10 = r6 << 2;
+	r11 = (r3 + r10)|0;
+	r12 = heap32[(r9+45)];
+	r11 = r11 >> 2;
+	r13 = (r8 + 148)|0;
+	r12 = r12 << 2;
+	r12 = (r13 + r12)|0;
+	r14 = heap32[(r11)];
+	r12 = r12 >> 2;
+	r15 = sp + -192;
+	heap32[(r12)] = r14;
+	r12 = heap32[(r9+45)];
+	r10 = (r15 + r10)|0;
+	r14 = r12 << 2;
+	r10 = r10 >> 2;
+	r13 = (r13 + r14)|0;
+	f0 = heapFloat[(r10)];
+	r10 = r13 >> 2;
+	r12 = (r12 + 1)|0;
+	heapFloat[(r10+4)] = f0;
+	heap32[(r9+45)] = r12;
+	r10 = heap32[(r11)];
+	r10 = r10 >> 2;
+	f1 = heapFloat[(r10+4)];
+	f2 = heapFloat[(r10+6)];
+	f3 = heapFloat[(r10+5)];
+	f6 = heapFloat[(r1+32)];
+	f1 = f1*f0;
+	f1 = f6+f1;
+	heapFloat[(r1+32)] = f1;
+	f1 = f3*f0;
+	f3 = heapFloat[(r1+33)];
+	f1 = f3+f1;
+	heapFloat[(r1+33)] = f1;
+	f0 = f2*f0;
+	f1 = heapFloat[(r1+34)];
+	f0 = f1+f0;
+	heapFloat[(r1+34)] = f0;
+}
+	r6 = (r6 + 1)|0;
+if(!(r5 !=r6)) //_LBB546_39
+{
+break _42;
+}
+}
+}
+} while(0);
+if(!(r7 !=15)) //_LBB546_46
+{
+	heap32[(r1+94)] = 1;
+}
+	r4 = (r4 + 1)|0;
+	if(uint(r4) <uint(128)) //_LBB546_48
+{
+	r3 = heap32[(r1+94)];
+	if(r3 !=0) //_LBB546_50
+{
+__label__ = 47;
+break _5;
+}
+else{
+	r5 = heap32[(fp+-50)];
+	r3 = (r5 + 1)|0;
+	f0 = heapFloat[(r1+32)];
+	f1 = heapFloat[(r1+33)];
+	f2 = heapFloat[(r1+34)];
+	r5 = r3 & 3;
+	heap32[(fp+-50)] = r5;
+	f3 = f5;
+continue _5;
+}
+}
+else{
+__label__ = 44;
+break _5;
+}
+}
+else{
+__label__ = 12;
+break _5;
+}
+}
+else{
+__label__ = 5;
+break _5;
+}
+}
+switch(__label__ ){//multiple entries
+case 10:
+	r2 = heap32[(r1+92)];
+	r2 = (r2 * 36)|0;
+	r2 = (r0 + r2)|0;
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+45)];
+	r4 = (r4 + -1)|0;
+	r5 = r4 << 2;
+	r6 = heap32[(r1+91)];
+	r2 = (r2 + r5)|0;
+	r5 = r6 << 2;
+	r2 = (r2 + 148)|0;
+	r5 = (r0 + r5)|0;
+	r2 = r2 >> 2;
+	heap32[(r3+45)] = r4;
+	r3 = r5 >> 2;
+	r2 = heap32[(r2)];
+	r4 = (r6 + 1)|0;
+	heap32[(r3+87)] = r2;
+	heap32[(r1+91)] = r4;
+break;
+case 42:
+	r2 = heap32[(r1+92)];
+	r2 = (r2 * 36)|0;
+	r2 = (r0 + r2)|0;
+	r4 = r2 >> 2;
+	r3 = heap32[(r4+45)];
+	r3 = (r3 + -1)|0;
+	r5 = r3 << 2;
+	r6 = heap32[(r1+91)];
+	r2 = (r2 + r5)|0;
+	r5 = r6 << 2;
+	r2 = (r2 + 148)|0;
+	r5 = (r0 + r5)|0;
+	r2 = r2 >> 2;
+	heap32[(r4+45)] = r3;
+	r4 = r5 >> 2;
+	r2 = heap32[(r2)];
+	r3 = (r6 + 1)|0;
+	heap32[(r4+87)] = r2;
+	heap32[(r1+91)] = r3;
+break;
+case 5:
+	heap32[(r1+94)] = 1;
+break;
+case 44:
+	heap32[(r1+94)] = 2;
+break;
+case 12:
+	r2 = heap32[(r1+92)];
+	r2 = (r2 * 36)|0;
+	r2 = (r0 + r2)|0;
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+45)];
+	r4 = (r4 + -1)|0;
+	r5 = r4 << 2;
+	r6 = heap32[(r1+91)];
+	r2 = (r2 + r5)|0;
+	r5 = r6 << 2;
+	r2 = (r2 + 148)|0;
+	r5 = (r0 + r5)|0;
+	r2 = r2 >> 2;
+	heap32[(r3+45)] = r4;
+	r3 = r5 >> 2;
+	r2 = heap32[(r2)];
+	r4 = (r6 + 1)|0;
+	heap32[(r3+87)] = r2;
+	heap32[(r1+91)] = r4;
+break;
+}
+	r2 = heap32[(r1+92)];
+	r2 = (r2 * 36)|0;
+	r0 = (r0 + r2)|0;
+	r0 = (r0 + 148)|0;
+	heap32[(r1+93)] = r0;
+	r0 = heap32[(r1+94)];
+	if(r0 ==1) //_LBB546_53
+{
+	heap32[(r1+36)] = 0;
+	r0 = 1;
+}
+else{
+if(!(r0 !=0)) //_LBB546_54
+{
+	f0 = heapFloat[(r1+32)];
+	f1 = heapFloat[(r1+33)];
+	f2 = heapFloat[(r1+34)];
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	heapFloat[(r1+36)] = f_g0;
+	r0 = heap32[(r1+94)];
+	r_g0 = r0;
+	return;
+}
+}
+	r_g0 = r0;
+	return;
+}
+
+function _ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+2450)];
+_1: do {
+	if(r1 ==0) //_LBB547_23
+{
+	heap32[(r0)] = 5;
+	r1 = 0;
+}
+else{
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+13)];
+if(!(r3 ==0)) //_LBB547_3
+{
+	r3 = r3 >> 2;
+	r4 = heap32[(r2+12)];
+	heap32[(r3+12)] = r4;
+}
+	r3 = heap32[(r2+12)];
+if(!(r3 ==0)) //_LBB547_5
+{
+	r3 = r3 >> 2;
+	r4 = heap32[(r2+13)];
+	heap32[(r3+13)] = r4;
+}
+	r3 = heap32[(r0+2450)];
+if(!(r3 !=r1)) //_LBB547_7
+{
+	r3 = heap32[(r2+13)];
+	heap32[(r0+2450)] = r3;
+}
+	r3 = heap32[(r0+2451)];
+	r3 = (r3 + -1)|0;
+	heap32[(r0+2451)] = r3;
+	heap32[(r2+12)] = 0;
+	r3 = heap32[(r0+2448)];
+	heap32[(r2+13)] = r3;
+	r3 = heap32[(r0+2448)];
+if(!(r3 ==0)) //_LBB547_9
+{
+	r3 = r3 >> 2;
+	heap32[(r3+12)] = r1;
+}
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	heap32[(r0+2448)] = r1;
+	r6 = heap32[(r0+2449)];
+	r6 = (r6 + 1)|0;
+	r7 = 0;
+	heap32[(r0+2449)] = r6;
+	heap8[r1+59] = r7;
+	heap32[(r2+6)] = r3;
+	heap32[(r2+7)] = r4;
+	heap32[(r2+8)] = r5;
+	r5 = r5 >> 2;
+	r3 = r3 >> 2;
+	r4 = r4 >> 2;
+	f0 = heapFloat[(r5+6)];
+	f1 = heapFloat[(r3+6)];
+	f2 = heapFloat[(r4+6)];
+	f3 = heapFloat[(r5+5)];
+	f4 = heapFloat[(r3+5)];
+	f5 = heapFloat[(r4+5)];
+	f5 = f5-f4;
+	f0 = f0-f1;
+	f1 = f2-f1;
+	f2 = f3-f4;
+	f3 = heapFloat[(r5+4)];
+	f4 = heapFloat[(r3+4)];
+	f6 = heapFloat[(r4+4)];
+	f3 = f3-f4;
+	f4 = f6-f4;
+	f6 = f5*f0;
+	f7 = f1*f2;
+	f6 = f6-f7;
+	f1 = f1*f3;
+	f0 = f4*f0;
+	f0 = f1-f0;
+	heapFloat[(r2)] = f6;
+	f1 = f4*f2;
+	f2 = f5*f3;
+	f1 = f1-f2;
+	heapFloat[(r2+1)] = f0;
+	heapFloat[(r2+2)] = f1;
+	f2 = f6*f6;
+	f0 = f0*f0;
+	heap32[(r2+3)] = 0;
+	f0 = f2+f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f0 = f_g0;
+	f1 = heapFloat[(r5+6)];
+	f2 = heapFloat[(r3+6)];
+	f3 = heapFloat[(r4+6)];
+	f4 = heapFloat[(r5+5)];
+	f5 = heapFloat[(r3+5)];
+	f6 = heapFloat[(r4+5)];
+	f7 = heapFloat[(r5+4)];
+	f8 = heapFloat[(r3+4)];
+	f9 = heapFloat[(r4+4)];
+	f10 = heapFloat[(r2)];
+	f11 = f2-f3;
+	f12 = heapFloat[(r2+1)];
+	f13 = f3-f1;
+	f14 = heapFloat[(r2+2)];
+	f15 = f5-f6;
+	f16 = f8-f9;
+	f17 = f6-f4;
+	f18 = f9-f7;
+	f19 = f1-f2;
+	f20 = f4-f5;
+	f21 = f7-f8;
+	f22 = f12*f11;
+	f23 = f14*f15;
+	f24 = f14*f16;
+	f11 = f10*f11;
+	f25 = f12*f13;
+	f26 = f14*f17;
+	f27 = f14*f18;
+	f13 = f10*f13;
+	f22 = f22-f23;
+	f11 = f24-f11;
+	f23 = f25-f26;
+	f13 = f27-f13;
+	f15 = f10*f15;
+	f16 = f12*f16;
+	f17 = f10*f17;
+	f18 = f12*f18;
+	f24 = f12*f19;
+	f25 = f14*f20;
+	f26 = f14*f21;
+	f19 = f10*f19;
+	f15 = f15-f16;
+	f16 = f17-f18;
+	f17 = f24-f25;
+	f18 = f26-f19;
+	f8 = f8*f22;
+	f5 = f5*f11;
+	f9 = f9*f23;
+	f6 = f6*f13;
+	f11 = f10*f20;
+	f13 = f12*f21;
+	f11 = f11-f13;
+	f5 = f8+f5;
+	f2 = f2*f15;
+	f6 = f9+f6;
+	f3 = f3*f16;
+	f7 = f7*f17;
+	f4 = f4*f18;
+	f2 = f5+f2;
+	f3 = f6+f3;
+	f4 = f7+f4;
+	f1 = f1*f11;
+	f5 =   9.9999997473787516e-005;
+	f6 =                         1;
+	f2 = f2 < f3 ? f2 : f3;
+	f1 = f4+f1;
+	f1 = f2 < f1 ? f2 : f1;
+	f2 = f0 > f5 ? f0 : f6;
+	f1 = f1/f2;
+	f2 =    -0.0099999997764825821;
+	f3 =                         0;
+	f1 = f1 < f2 ? f1 : f3;
+	heapFloat[(r2+5)] = f1;
+	if(f0 <=f5) //_LBB547_13
+{
+	heap32[(r0)] = 2;
+}
+else{
+	r4 = heap32[(fp+4)];
+	f1 = heapFloat[(r3+4)];
+	f2 = heapFloat[(r3+5)];
+	f3 = heapFloat[(r3+6)];
+	f1 = f1*f10;
+	f2 = f2*f12;
+	f1 = f1+f2;
+	f2 = f3*f14;
+	f1 = f1+f2;
+	f2 = f6/f0;
+	f0 = f1/f0;
+	f1 = f10*f2;
+	heapFloat[(r2+4)] = f0;
+	f3 = f12*f2;
+	heapFloat[(r2)] = f1;
+	f1 = f14*f2;
+	heapFloat[(r2+1)] = f3;
+	heapFloat[(r2+2)] = f1;
+	if(r4 !=0) //_LBB547_24
+{
+break _1;
+}
+else{
+	f1 =  -9.9999997473787516e-006;
+	if(f0 >=f1) //_LBB547_24
+{
+break _1;
+}
+else{
+	heap32[(r0)] = 3;
+}
+}
+}
+	r3 = heap32[(r2+13)];
+if(!(r3 ==0)) //_LBB547_16
+{
+	r3 = r3 >> 2;
+	r4 = heap32[(r2+12)];
+	heap32[(r3+12)] = r4;
+}
+	r3 = heap32[(r2+12)];
+if(!(r3 ==0)) //_LBB547_18
+{
+	r3 = r3 >> 2;
+	r4 = heap32[(r2+13)];
+	heap32[(r3+13)] = r4;
+}
+	r3 = heap32[(r0+2448)];
+if(!(r3 !=r1)) //_LBB547_20
+{
+	r3 = heap32[(r2+13)];
+	heap32[(r0+2448)] = r3;
+}
+	r3 = heap32[(r0+2449)];
+	r3 = (r3 + -1)|0;
+	heap32[(r0+2449)] = r3;
+	heap32[(r2+12)] = 0;
+	r3 = heap32[(r0+2450)];
+	heap32[(r2+13)] = r3;
+	r2 = heap32[(r0+2450)];
+if(!(r2 ==0)) //_LBB547_22
+{
+	r2 = r2 >> 2;
+	heap32[(r2+12)] = r1;
+}
+	heap32[(r0+2450)] = r1;
+	r1 = heap32[(r0+2451)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0+2451)] = r1;
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+} while(0);
+	r_g0 = r1;
+	return;
+}
+
+function _ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+3)];
+	r1 = heap32[(fp+1)];
+	r2 = heapU8[r0+59];
+_1: do {
+if(!(r2 ==r1)) //_LBB548_10
+{
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+4)];
+	r5 = heap32[(fp+5)];
+	r6 = r0 >> 2;
+	r7 = r3 >> 2;
+	f0 = heapFloat[(r6)];
+	f1 = heapFloat[(r7+4)];
+	f2 = heapFloat[(r6+1)];
+	f3 = heapFloat[(r7+5)];
+	r8 = _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3;
+	r9 = r4 << 2;
+	r8 = (r8 + r9)|0;
+	f0 = f0*f1;
+	f1 = f2*f3;
+	f2 = heapFloat[(r6+2)];
+	f3 = heapFloat[(r7+6)];
+	r7 = r8 >> 2;
+	f0 = f0+f1;
+	f1 = f2*f3;
+	r7 = heap32[(r7)];
+	f0 = f0+f1;
+	f1 = heapFloat[(r6+4)];
+	f0 = f0-f1;
+	f1 =  -9.9999997473787516e-006;
+	if(f0 >=f1) //_LBB548_8
+{
+	r4 = r7 << 2;
+	r4 = (r0 + r4)|0;
+	r7 = (r0 + r7)|0;
+	heap8[r0+59] = r1;
+	r4 = r4 >> 2;
+	r7 = heapU8[r7+56];
+	r4 = heap32[(r4+9)];
+	r8 = _ZZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonEE4i2m3;
+	r8 = (r8 + r9)|0;
+	r8 = r8 >> 2;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r4;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r5;
+	r4 = heap32[(r8)];
+	_ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i7);
+	r7 = r_g0;
+	if(r7 ==0) //_LBB548_10
+{
+break _1;
+}
+else{
+	r7 = r4 << 2;
+	r7 = (r0 + r7)|0;
+	r4 = (r0 + r4)|0;
+	r7 = r7 >> 2;
+	r4 = heapU8[r4+56];
+	r7 = heap32[(r7+9)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = r4;
+	heap32[(g0+5)] = r5;
+	_ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i7);
+	r1 = r_g0;
+	if(r1 !=0) //_LBB548_11
+{
+	r1 = heap32[(r6+13)];
+if(!(r1 ==0)) //_LBB548_13
+{
+	r1 = r1 >> 2;
+	r3 = heap32[(r6+12)];
+	heap32[(r1+12)] = r3;
+}
+	r1 = heap32[(r6+12)];
+if(!(r1 ==0)) //_LBB548_15
+{
+	r1 = r1 >> 2;
+	r3 = heap32[(r6+13)];
+	heap32[(r1+13)] = r3;
+}
+	r1 = r2 >> 2;
+	r2 = heap32[(r1+2448)];
+if(!(r2 !=r0)) //_LBB548_17
+{
+	r2 = heap32[(r6+13)];
+	heap32[(r1+2448)] = r2;
+}
+	r2 = heap32[(r1+2449)];
+	r2 = (r2 + -1)|0;
+	heap32[(r1+2449)] = r2;
+	heap32[(r6+12)] = 0;
+	r2 = heap32[(r1+2450)];
+	heap32[(r6+13)] = r2;
+	r2 = heap32[(r1+2450)];
+if(!(r2 ==0)) //_LBB548_19
+{
+	r2 = r2 >> 2;
+	heap32[(r2+12)] = r0;
+}
+	heap32[(r1+2450)] = r0;
+	r0 = heap32[(r1+2451)];
+	r0 = (r0 + 1)|0;
+	heap32[(r1+2451)] = r0;
+}
+else{
+break _1;
+}
+}
+}
+else{
+	r1 = (r0 + 24)|0;
+	r6 = r7 << 2;
+	r7 = (r1 + r9)|0;
+	r1 = (r1 + r6)|0;
+	r6 = r7 >> 2;
+	r1 = r1 >> 2;
+	r6 = heap32[(r6)];
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = 0;
+	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
+	r1 = r_g0;
+	if(r1 ==0) //_LBB548_10
+{
+break _1;
+}
+else{
+	r2 = r1 >> 2;
+	heap8[r1+56] = r4;
+	r3 = (r0 + r9)|0;
+	r6 = (r0 + r4)|0;
+	r7 = 0;
+	heap32[(r2+9)] = r0;
+	r0 = r3 >> 2;
+	heap8[r6+56] = r7;
+	r3 = r5 >> 2;
+	heap32[(r0+9)] = r1;
+	r0 = heap32[(r3)];
+	if(r0 ==0) //_LBB548_5
+{
+	heap32[(r3+1)] = r1;
+}
+else{
+	r5 = 2;
+	r6 = r0 >> 2;
+	heap8[r0+57] = r5;
+	r5 = 1;
+	heap32[(r6+10)] = r1;
+	heap8[r1+58] = r5;
+	heap32[(r2+11)] = r0;
+}
+	heap32[(r3)] = r1;
+	r0 = heap32[(r3+2)];
+	r0 = (r0 + 1)|0;
+	heap32[(r3+2)] = r0;
+}
+}
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+} while(0);
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btGjkEpaSolver211PenetrationEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsEb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+var __label__ = 0;
+	i7 = sp + -10400;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+5)];
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+3)];
+	r5 = sp + -176;
+	r6 = heap32[(fp+6)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r4;
+	heap32[(g0+4)] = r1;
+	heap32[(g0+5)] = r5;
+	heap32[(g0+6)] = r6;
+	r2 = sp + -560;
+	r3 = r2 >> 2;
+	_ZN12gjkepa2_implL10InitializeEPK13btConvexShapeRK11btTransformS2_S5_RN15btGjkEpaSolver28sResultsERNS_13MinkowskiDiffEb(i7);
+	heap32[(r3+32)] = 0;
+	heap32[(r3+33)] = 0;
+	heap32[(r3+34)] = 0;
+	heap32[(r3+35)] = 0;
+	heap32[(r3+91)] = 0;
+	heap32[(r3+94)] = 2;
+	r4 = heap32[(fp+4)];
+	heap32[(r3+92)] = 0;
+	r4 = r4 >> 2;
+	heap32[(r3+36)] = 0;
+	f0 = heapFloat[(r4+2)];
+	f1 = heapFloat[(r4+1)];
+	f2 = heapFloat[(r4)];
+	r6 = sp + -48;
+	f2 = -f2;
+	r7 = r6 >> 2;
+	f1 = -f1;
+	heapFloat[(fp+-12)] = f2;
+	f0 = -f0;
+	heapFloat[(r7+1)] = f1;
+	heapFloat[(r7+2)] = f0;
+	heap32[(r7+3)] = 0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r6;
+	_ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i7);
+	r6 = r_g0;
+	if(r6 ==2) //_LBB549_71
+{
+	r0 = r1 >> 2;
+	heap32[(r0)] = 2;
+}
+else{
+if(!(r6 !=1)) //_LBB549_72
+{
+	r6 = sp + -10368;
+	r7 = r6 >> 2;
+	heap32[(r7+2448)] = 0;
+	heap32[(r7+2449)] = 0;
+	heap32[(r7+2450)] = 0;
+	heap32[(r7+2451)] = 0;
+	heap32[(fp+-2592)] = 9;
+	heap32[(r7+10)] = 0;
+	heap32[(r7+11)] = 0;
+	heap32[(r7+12)] = 0;
+	heap32[(r7+13)] = 0;
+	r8 = 0;
+	r9 = (r6 + 9780)|0;
+	r10 = (r6 + 9728)|0;
+	heap32[(r7+14)] = 0;
+	heap32[(r7+2447)] = 0;
+	r11 = r8;
+	r12 = r8;
+	r13 = r8;
+_5: while(true){
+	r14 = 127;
+	r14 = (r14 - r13)|0;
+	r15 = (r9 + r8)|0;
+	r14 = (r14 * 60)|0;
+	r14 = (r6 + r14)|0;
+	r15 = r15 >> 2;
+	r14 = (r14 + 2108)|0;
+	r16 = (r10 + r8)|0;
+	heap32[(r15+-1)] = 0;
+	heap32[(r15)] = r12;
+	if(r12 !=0) //_LBB549_5
+{
+	r11 = r12 >> 2;
+	heap32[(r11+12)] = r16;
+	r11 = heap32[(r7+2451)];
+}
+	r8 = (r8 + -60)|0;
+	r13 = (r13 + 1)|0;
+	r11 = (r11 + 1)|0;
+	heap32[(r7+2450)] = r16;
+	heap32[(r7+2451)] = r11;
+	r12 = r14;
+if(!(r8 !=-7680)) //_LBB549_3
+{
+break _5;
+}
+}
+	r3 = heap32[(r3+93)];
+	f0 = heapFloat[(r4+2)];
+	f1 = heapFloat[(r4+1)];
+	f2 = heapFloat[(r4)];
+	r3 = r3 >> 2;
+	r4 = heap32[(r3+8)];
+	if(uint(r4) <uint(2)) //_LBB549_57
+{
+__label__ = 56;
+}
+else{
+	heap32[(g0)] = r2;
+	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
+	r4 = r_g0;
+	if(r4 ==0) //_LBB549_57
+{
+__label__ = 56;
+}
+else{
+	r4 = heap32[(r7+2448)];
+_14: do {
+if(!(r4 ==0)) //_LBB549_19
+{
+_15: while(true){
+	r8 = r4 >> 2;
+	r9 = heap32[(r8+13)];
+if(!(r9 ==0)) //_LBB549_12
+{
+	r9 = r9 >> 2;
+	r10 = heap32[(r8+12)];
+	heap32[(r9+12)] = r10;
+}
+	r9 = heap32[(r8+12)];
+if(!(r9 ==0)) //_LBB549_14
+{
+	r9 = r9 >> 2;
+	r10 = heap32[(r8+13)];
+	heap32[(r9+13)] = r10;
+}
+	r9 = heap32[(r7+2448)];
+if(!(r9 !=r4)) //_LBB549_16
+{
+	r9 = heap32[(r8+13)];
+	heap32[(r7+2448)] = r9;
+}
+	r9 = heap32[(r7+2449)];
+	r9 = (r9 + -1)|0;
+	heap32[(r7+2449)] = r9;
+	heap32[(r8+12)] = 0;
+	r9 = heap32[(r7+2450)];
+	heap32[(r8+13)] = r9;
+	r8 = heap32[(r7+2450)];
+if(!(r8 ==0)) //_LBB549_18
+{
+	r8 = r8 >> 2;
+	heap32[(r8+12)] = r4;
+}
+	heap32[(r7+2450)] = r4;
+	r4 = heap32[(r7+2451)];
+	r4 = (r4 + 1)|0;
+	heap32[(r7+2451)] = r4;
+	r4 = heap32[(r7+2448)];
+if(!(r4 !=0)) //_LBB549_10
+{
+break _14;
+}
+}
+}
+} while(0);
+	heap32[(fp+-2592)] = 0;
+	heap32[(r7+2447)] = 0;
+	r4 = heap32[(r3+1)];
+	r8 = heap32[(r3)];
+	r9 = heap32[(r3+3)];
+	r10 = r8 >> 2;
+	r11 = r4 >> 2;
+	r9 = r9 >> 2;
+	r12 = heap32[(r3+2)];
+	r13 = r12 >> 2;
+	f3 = heapFloat[(r11+6)];
+	f4 = heapFloat[(r9+6)];
+	f5 = heapFloat[(r10+6)];
+	f6 = heapFloat[(r10+5)];
+	f7 = heapFloat[(r9+5)];
+	f8 = heapFloat[(r11+4)];
+	f9 = heapFloat[(r9+4)];
+	f10 = heapFloat[(r13+5)];
+	f11 = heapFloat[(r10+4)];
+	f12 = heapFloat[(r13+4)];
+	f3 = f3-f4;
+	f6 = f6-f7;
+	f8 = f8-f9;
+	f5 = f5-f4;
+	f11 = f11-f9;
+	f13 = f6*f3;
+	f9 = f12-f9;
+	f12 = f5*f8;
+	f10 = f10-f7;
+	f3 = f11*f3;
+	f14 = heapFloat[(r13+6)];
+	f15 = heapFloat[(r11+5)];
+	f13 = f13*f9;
+	f12 = f12*f10;
+	f7 = f15-f7;
+	f12 = f13+f12;
+	f3 = f3*f10;
+	f6 = f6*f8;
+	f4 = f14-f4;
+	f8 = f11*f7;
+	f3 = f12-f3;
+	f6 = f6*f4;
+	f5 = f5*f7;
+	f3 = f3-f6;
+	f4 = f8*f4;
+	f3 = f3+f4;
+	f4 = f5*f9;
+	f3 = f3-f4;
+	f4 =                         0;
+	if(f3 <f4) //_LBB549_21
+{
+	heap32[(r3)] = r4;
+	heap32[(r3+1)] = r8;
+	f3 = heapFloat[(r3+4)];
+	heap32[(r3+4)] = heap32[(r3+5)];
+	heapFloat[(r3+5)] = f3;
+	r9 = r4;
+	r4 = r8;
+}
+else{
+	r9 = r8;
+}
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r12;
+	heap32[(g0+4)] = 1;
+	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
+	r4 = r_g0;
+	r8 = heap32[(r3+3)];
+	r9 = heap32[(r3)];
+	r10 = heap32[(r3+1)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r8;
+	heap32[(g0+4)] = 1;
+	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
+	r8 = r_g0;
+	r9 = heap32[(r3+3)];
+	r10 = heap32[(r3+1)];
+	r11 = heap32[(r3+2)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r9;
+	heap32[(g0+4)] = 1;
+	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
+	r9 = r_g0;
+	r10 = heap32[(r3+3)];
+	r11 = heap32[(r3+2)];
+	r12 = heap32[(r3)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r12;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = r10;
+	heap32[(g0+4)] = 1;
+	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
+	r10 = r_g0;
+	r11 = heap32[(r7+2449)];
+	if(r11 !=4) //_LBB549_57
+{
+__label__ = 56;
+}
+else{
+	r3 = heap32[(r7+2448)];
+	r11 = r3 >> 2;
+	f0 = heapFloat[(r11+4)];
+	f0 = f0*f0;
+	f1 = heapFloat[(r11+5)];
+_35: while(true){
+	f2 = f1;
+	r11 = r3;
+	f3 = f0;
+_37: while(true){
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+13)];
+	if(r3 !=0) //_LBB549_24
+{
+	r12 = r3 >> 2;
+	f1 = heapFloat[(r12+5)];
+if(!(f1 <f2)) //_LBB549_27
+{
+	f0 = heapFloat[(r12+4)];
+	f0 = f0*f0;
+if(!(f0 >=f3)) //_LBB549_27
+{
+continue _35;
+}
+}
+}
+else{
+break _35;
+}
+}
+}
+	r3 = r11 >> 2;
+	f0 = heapFloat[(r3)];
+	f1 = heapFloat[(r3+1)];
+	f2 = heapFloat[(r3+2)];
+	f3 = heapFloat[(r3+3)];
+	f4 = heapFloat[(r3+4)];
+	f5 = heapFloat[(r3+5)];
+	r12 = heap32[(r3+6)];
+	r13 = heap32[(r3+7)];
+	r3 = heap32[(r3+8)];
+	r14 = 0;
+	r15 = r4 >> 2;
+	heap8[r4+56] = r14;
+	heap32[(r15+9)] = r8;
+	r16 = r8 >> 2;
+	heap8[r8+56] = r14;
+	heap32[(r16+9)] = r4;
+	heap8[r4+57] = r14;
+	r17 = 1;
+	heap32[(r15+10)] = r9;
+	r18 = r9 >> 2;
+	heap8[r9+56] = r17;
+	heap32[(r18+9)] = r4;
+	heap8[r4+58] = r14;
+	r19 = 2;
+	heap32[(r15+11)] = r10;
+	r15 = r10 >> 2;
+	heap8[r10+56] = r19;
+	heap32[(r15+9)] = r4;
+	heap8[r8+57] = r19;
+	heap32[(r16+10)] = r10;
+	heap8[r10+58] = r17;
+	heap32[(r15+11)] = r8;
+	heap8[r8+58] = r17;
+	heap32[(r16+11)] = r9;
+	heap8[r9+57] = r19;
+	heap32[(r18+10)] = r8;
+	heap8[r9+58] = r17;
+	heap32[(r18+11)] = r10;
+	heap8[r10+57] = r19;
+	heap32[(r15+10)] = r9;
+	heap32[(fp+-2592)] = 0;
+_42: while(true){
+	r4 = (r14 + 1)|0;
+_44: while(true){
+	if(uint(r14) <uint(255)) //_LBB549_30
+{
+	r8 = heap32[(r7+2447)];
+	if(uint(r8) >uint(63)) //_LBB549_54
+{
+__label__ = 53;
+break _42;
+}
+else{
+	r9 = sp + -16;
+	r10 = r9 >> 2;
+	heap32[(fp+-4)] = 0;
+	heap32[(r10+1)] = 0;
+	r15 = (r8 + 1)|0;
+	heap32[(r10+2)] = 0;
+	r8 = r8 << 5;
+	heap32[(r7+2447)] = r15;
+	r8 = (r6 + r8)|0;
+	heap8[r11+59] = r4;
+	r15 = (r8 + 60)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r15;
+	r8 = r8 >> 2;
+	_ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7);
+	r16 = r11 >> 2;
+	f6 = heapFloat[(r16)];
+	f7 = heapFloat[(r8+19)];
+	f8 = heapFloat[(r16+1)];
+	f9 = heapFloat[(r8+20)];
+	f6 = f6*f7;
+	f7 = f8*f9;
+	f8 = heapFloat[(r16+2)];
+	f9 = heapFloat[(r8+21)];
+	f6 = f6+f7;
+	f7 = f8*f9;
+	f6 = f6+f7;
+	f7 = heapFloat[(r16+4)];
+	f6 = f6-f7;
+	f7 =   9.9999997473787516e-005;
+	if(f6 <=f7) //_LBB549_53
+{
+__label__ = 52;
+break _42;
+}
+else{
+	r14 = (r14 + 1)|0;
+	r8 = (r11 + 1)|0;
+	r18 = 0;
+	r20 = r17;
+_49: while(true){
+	r21 = r18 << 2;
+	r21 = (r11 + r21)|0;
+	r22 = (r8 + r18)|0;
+	r21 = r21 >> 2;
+	r22 = heapU8[r22+55];
+	r21 = heap32[(r21+9)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r14;
+	heap32[(g0+2)] = r15;
+	heap32[(g0+3)] = r21;
+	heap32[(g0+4)] = r22;
+	heap32[(g0+5)] = r9;
+	_ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i7);
+	r18 = (r18 + 1)|0;
+	r20 = r_g0 & r20;
+	if(uint(r18) >uint(2)) //_LBB549_35
+{
+break _49;
+}
+else{
+if(!(r20 !=0)) //_LBB549_33
+{
+break _49;
+}
+}
+}
+	if(r20 !=1) //_LBB549_52
+{
+__label__ = 51;
+break _42;
+}
+else{
+	r8 = heap32[(r10+2)];
+	if(uint(r8) <uint(3)) //_LBB549_52
+{
+__label__ = 51;
+break _42;
+}
+else{
+	r8 = heap32[(fp+-4)];
+	r9 = heap32[(r10+1)];
+	r10 = r8 >> 2;
+	heap8[r8+57] = r19;
+	r15 = 1;
+	heap32[(r10+10)] = r9;
+	r10 = r9 >> 2;
+	heap8[r9+58] = r15;
+	heap32[(r10+11)] = r8;
+	r8 = heap32[(r16+13)];
+if(!(r8 ==0)) //_LBB549_39
+{
+	r8 = r8 >> 2;
+	r9 = heap32[(r16+12)];
+	heap32[(r8+12)] = r9;
+}
+	r8 = heap32[(r16+12)];
+if(!(r8 ==0)) //_LBB549_41
+{
+	r8 = r8 >> 2;
+	r9 = heap32[(r16+13)];
+	heap32[(r8+13)] = r9;
+}
+	r8 = heap32[(r7+2448)];
+if(!(r8 !=r11)) //_LBB549_43
+{
+	r8 = heap32[(r16+13)];
+	heap32[(r7+2448)] = r8;
+}
+	r8 = heap32[(r7+2449)];
+	r8 = (r8 + -1)|0;
+	heap32[(r7+2449)] = r8;
+	heap32[(r16+12)] = 0;
+	r8 = heap32[(r7+2450)];
+	heap32[(r16+13)] = r8;
+	r8 = heap32[(r7+2450)];
+if(!(r8 ==0)) //_LBB549_45
+{
+	r8 = r8 >> 2;
+	heap32[(r8+12)] = r11;
+}
+	heap32[(r7+2450)] = r11;
+	r11 = heap32[(r7+2451)];
+	r11 = (r11 + 1)|0;
+	heap32[(r7+2451)] = r11;
+	r8 = heap32[(r7+2448)];
+	r11 = r8 >> 2;
+	f6 = heapFloat[(r11+4)];
+	f6 = f6*f6;
+	f7 = heapFloat[(r11+5)];
+_67: while(true){
+	f8 = f7;
+	r11 = r8;
+	f9 = f6;
+_69: while(true){
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+13)];
+	if(r8 !=0) //_LBB549_46
+{
+	r9 = r8 >> 2;
+	f7 = heapFloat[(r9+5)];
+if(!(f7 <f8)) //_LBB549_49
+{
+	f6 = heapFloat[(r9+4)];
+	f6 = f6*f6;
+if(!(f6 >=f9)) //_LBB549_49
+{
+continue _67;
+}
+}
+}
+else{
+break _67;
+}
+}
+}
+	r8 = r11 >> 2;
+	f6 = heapFloat[(r8+5)];
+	r4 = (r4 + 1)|0;
+if(!(f6 <f5)) //_LBB549_55
+{
+break _44;
+}
+}
+}
+}
+}
+}
+else{
+__label__ = 55;
+break _42;
+}
+}
+	f0 = heapFloat[(r8)];
+	f1 = heapFloat[(r8+1)];
+	f2 = heapFloat[(r8+2)];
+	f3 = heapFloat[(r8+3)];
+	f4 = heapFloat[(r8+4)];
+	r12 = heap32[(r8+6)];
+	r13 = heap32[(r8+7)];
+	r3 = heap32[(r8+8)];
+	f5 = f6;
+}
+switch(__label__ ){//multiple entries
+case 53:
+	heap32[(fp+-2592)] = 6;
+break;
+case 52:
+	heap32[(fp+-2592)] = 7;
+break;
+case 51:
+	heap32[(fp+-2592)] = 4;
+break;
+}
+	heapFloat[(r7+10)] = f0;
+	heapFloat[(r7+11)] = f1;
+	heapFloat[(r7+12)] = f2;
+	heapFloat[(r7+13)] = f3;
+	heapFloat[(r7+14)] = f4;
+	heap32[(r7+9)] = 3;
+	heap32[(r7+1)] = r12;
+	heap32[(r7+2)] = r13;
+	heap32[(r7+3)] = r3;
+	r3 = r3 >> 2;
+	r2 = r13 >> 2;
+	f2 = f2*f4;
+	f3 = heapFloat[(r3+6)];
+	f5 = heapFloat[(r2+6)];
+	f1 = f1*f4;
+	f6 = heapFloat[(r3+5)];
+	f7 = heapFloat[(r2+5)];
+	f0 = f0*f4;
+	f4 = heapFloat[(r3+4)];
+	f8 = heapFloat[(r2+4)];
+	f5 = f5-f2;
+	f6 = f6-f1;
+	f8 = f8-f0;
+	f3 = f3-f2;
+	f7 = f7-f1;
+	f4 = f4-f0;
+	f9 = f7*f3;
+	f10 = f5*f6;
+	f5 = f5*f4;
+	f3 = f8*f3;
+	f9 = f9-f10;
+	f3 = f5-f3;
+	f5 = f8*f6;
+	f4 = f7*f4;
+	f4 = f5-f4;
+	f5 = f9*f9;
+	f3 = f3*f3;
+	f3 = f5+f3;
+	f4 = f4*f4;
+	f3 = f3+f4;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	heapFloat[(r7+5)] = f_g0;
+	r4 = r12 >> 2;
+	f3 = heapFloat[(r4+6)];
+	f4 = heapFloat[(r4+5)];
+	f5 = heapFloat[(r4+4)];
+	f6 = heapFloat[(r3+6)];
+	f7 = heapFloat[(r3+5)];
+	f8 = heapFloat[(r3+4)];
+	f6 = f6-f2;
+	f4 = f4-f1;
+	f8 = f8-f0;
+	f3 = f3-f2;
+	f7 = f7-f1;
+	f5 = f5-f0;
+	f9 = f7*f3;
+	f10 = f6*f4;
+	f6 = f6*f5;
+	f3 = f8*f3;
+	f9 = f9-f10;
+	f3 = f6-f3;
+	f4 = f8*f4;
+	f5 = f7*f5;
+	f4 = f4-f5;
+	f5 = f9*f9;
+	f3 = f3*f3;
+	f3 = f5+f3;
+	f4 = f4*f4;
+	f3 = f3+f4;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	heapFloat[(r7+6)] = f_g0;
+	f3 = heapFloat[(r2+6)];
+	f4 = heapFloat[(r2+5)];
+	f5 = heapFloat[(r2+4)];
+	f6 = heapFloat[(r4+6)];
+	f7 = heapFloat[(r4+5)];
+	f8 = heapFloat[(r4+4)];
+	f6 = f6-f2;
+	f4 = f4-f1;
+	f8 = f8-f0;
+	f2 = f3-f2;
+	f1 = f7-f1;
+	f0 = f5-f0;
+	f3 = f1*f2;
+	f5 = f6*f4;
+	f6 = f6*f0;
+	f2 = f8*f2;
+	f3 = f3-f5;
+	f2 = f6-f2;
+	f4 = f8*f4;
+	f0 = f1*f0;
+	f0 = f4-f0;
+	f1 = f3*f3;
+	f2 = f2*f2;
+	f1 = f1+f2;
+	f0 = f0*f0;
+	f0 = f1+f0;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f1 = heapFloat[(r7+5)];
+	f2 = heapFloat[(r7+6)];
+	f3 = f1+f2;
+	f3 = f3+f_g0;
+	f1 = f1/f3;
+	f2 = f2/f3;
+	heapFloat[(r7+5)] = f1;
+	f0 = f_g0/f3;
+	heapFloat[(r7+6)] = f2;
+	heapFloat[(r7+7)] = f0;
+__label__ = 60;
+}
+}
+}
+if (__label__ == 56){
+	heap32[(fp+-2592)] = 8;
+	heapFloat[(r7+10)] = f2;
+	heapFloat[(r7+11)] = f1;
+	heapFloat[(r7+12)] = f0;
+	f2 = f2*f2;
+	f1 = f1*f1;
+	heap32[(r7+13)] = 0;
+	f1 = f2+f1;
+	f0 = f0*f0;
+	f0 = f1+f0;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f0 = f_g0;
+	f1 =                         0;
+	if(f0 >f1) //_LBB549_59
+{
+	f1 =                         1;
+	f2 = heapFloat[(r7+12)];
+	f0 = f1/f0;
+	f1 = heapFloat[(r7+11)];
+	f3 = heapFloat[(r7+10)];
+	f2 = f2*f0;
+	f1 = f1*f0;
+	f0 = f3*f0;
+}
+else{
+	f0 =                         1;
+	f2 = f1;
+}
+	heapFloat[(r7+10)] = f0;
+	heapFloat[(r7+11)] = f1;
+	heapFloat[(r7+12)] = f2;
+	heap32[(r7+13)] = 0;
+	heap32[(r7+14)] = 0;
+	heap32[(r7+9)] = 1;
+	r2 = heap32[(r3)];
+	heap32[(r7+1)] = r2;
+	heap32[(r7+5)] = 1065353216;
+}
+	r2 = heap32[(fp+-2592)];
+	if(r2 ==9) //_LBB549_70
+{
+	r1 = r1 >> 2;
+	heap32[(r1)] = 3;
+	r1 = 0;
+	r_g0 = r1;
+	return;
+}
+else{
+	r2 = heap32[(r7+9)];
+_90: do {
+	if(r2 !=0) //_LBB549_64
+{
+	r2 = 0;
+	f0 =                         0;
+	f1 = f0;
+	f2 = f0;
+_92: while(true){
+	r3 = r2 << 2;
+	r3 = (r6 + r3)|0;
+	r4 = r5 >> 2;
+	r3 = r3 >> 2;
+	r8 = heap32[(r4+30)];
+	r2 = (r2 + 1)|0;
+	r9 = heap32[(r3+1)];
+	r10 = heap32[(fp+-44)];
+	r4 = heap32[(r4+31)];
+	r11 = r8 & 1;
+	if(r11 != 0) //_LBB549_67
+{
+	r11 = (r10 + r4)|0;
+	r11 = r11 >> 2;
+	r11 = heap32[(r11)];
+	r8 = (r8 + r11)|0;
+	r8 = (r8 + -1)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+}
+	r11 = sp + -32;
+	r4 = (r10 + r4)|0;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r9;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r4 = r11 >> 2;
+	f3 = heapFloat[(fp+-8)];
+	f4 = heapFloat[(r3+5)];
+	f5 = heapFloat[(r4+1)];
+	f6 = heapFloat[(r4+2)];
+	f3 = f3*f4;
+	f5 = f5*f4;
+	f4 = f6*f4;
+	f2 = f2+f3;
+	f1 = f1+f5;
+	f0 = f0+f4;
+	r3 = heap32[(r7+9)];
+if(!(uint(r3) >uint(r2))) //_LBB549_65
+{
+break _90;
+}
+}
+}
+else{
+	f0 =                         0;
+	f1 = f0;
+	f2 = f0;
+}
+} while(0);
+	r1 = r1 >> 2;
+	r0 = r0 >> 2;
+	heap32[(r1)] = 1;
+	f3 = heapFloat[(r0)];
+	f4 = heapFloat[(r0+1)];
+	f5 = heapFloat[(r0+4)];
+	f6 = heapFloat[(r0+5)];
+	f3 = f3*f2;
+	f4 = f4*f1;
+	f7 = heapFloat[(r0+2)];
+	f8 = heapFloat[(r0+8)];
+	f9 = heapFloat[(r0+9)];
+	f10 = heapFloat[(r0+6)];
+	f5 = f5*f2;
+	f6 = f6*f1;
+	f3 = f3+f4;
+	f4 = f7*f0;
+	f7 = heapFloat[(r0+10)];
+	f8 = f8*f2;
+	f9 = f9*f1;
+	f5 = f5+f6;
+	f6 = f10*f0;
+	f3 = f3+f4;
+	f4 = heapFloat[(r0+12)];
+	f10 = heapFloat[(r0+14)];
+	f11 = heapFloat[(r0+13)];
+	f5 = f5+f6;
+	f6 = f8+f9;
+	f7 = f7*f0;
+	f3 = f3+f4;
+	f4 = f6+f7;
+	f5 = f5+f11;
+	heapFloat[(r1+1)] = f3;
+	f3 = f4+f10;
+	heapFloat[(r1+2)] = f5;
+	heapFloat[(r1+3)] = f3;
+	heap32[(r1+4)] = 0;
+	f3 = heapFloat[(r7+14)];
+	f4 = heapFloat[(r7+11)];
+	f5 = heapFloat[(r7+10)];
+	f6 = heapFloat[(r7+12)];
+	f7 = f5*f3;
+	f8 = f4*f3;
+	f9 = f6*f3;
+	f2 = f2-f7;
+	f7 = heapFloat[(r0)];
+	f1 = f1-f8;
+	f8 = heapFloat[(r0+1)];
+	f10 = heapFloat[(r0+4)];
+	f11 = heapFloat[(r0+5)];
+	f7 = f7*f2;
+	f8 = f8*f1;
+	f0 = f0-f9;
+	f9 = heapFloat[(r0+2)];
+	f12 = heapFloat[(r0+8)];
+	f13 = heapFloat[(r0+9)];
+	f14 = heapFloat[(r0+6)];
+	f10 = f10*f2;
+	f11 = f11*f1;
+	f7 = f7+f8;
+	f8 = f9*f0;
+	f9 = heapFloat[(r0+10)];
+	f2 = f12*f2;
+	f1 = f13*f1;
+	f10 = f10+f11;
+	f11 = f14*f0;
+	f7 = f7+f8;
+	f8 = heapFloat[(r0+12)];
+	f12 = heapFloat[(r0+14)];
+	f13 = heapFloat[(r0+13)];
+	f10 = f10+f11;
+	f1 = f2+f1;
+	f0 = f9*f0;
+	f2 = f7+f8;
+	f0 = f1+f0;
+	f1 = f10+f13;
+	heapFloat[(r1+5)] = f2;
+	f0 = f0+f12;
+	heapFloat[(r1+6)] = f1;
+	heapFloat[(r1+7)] = f0;
+	f0 = -f5;
+	heap32[(r1+8)] = 0;
+	f1 = -f4;
+	heapFloat[(r1+9)] = f0;
+	f0 = -f6;
+	heapFloat[(r1+10)] = f1;
+	heapFloat[(r1+11)] = f0;
+	f0 = -f3;
+	heap32[(r1+12)] = 0;
+	heapFloat[(r1+13)] = f0;
+	r1 = 1;
+	r_g0 = r1;
+	return;
+}
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btGjkEpaSolver28DistanceEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+var __label__ = 0;
+	i7 = sp + -592;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+5)];
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+3)];
+	r5 = sp + -176;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r4;
+	heap32[(g0+4)] = r1;
+	heap32[(g0+5)] = r5;
+	heap32[(g0+6)] = 0;
+	r2 = sp + -560;
+	r3 = r2 >> 2;
+	_ZN12gjkepa2_implL10InitializeEPK13btConvexShapeRK11btTransformS2_S5_RN15btGjkEpaSolver28sResultsERNS_13MinkowskiDiffEb(i7);
+	heap32[(r3+32)] = 0;
+	heap32[(r3+33)] = 0;
+	heap32[(r3+34)] = 0;
+	heap32[(r3+35)] = 0;
+	heap32[(r3+91)] = 0;
+	heap32[(r3+94)] = 2;
+	heap32[(r3+92)] = 0;
+	heap32[(r3+36)] = 0;
+	r4 = heap32[(fp+4)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r4;
+	_ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i7);
+	r2 = r_g0;
+	if(r2 ==0) //_LBB550_3
+{
+	r2 = heap32[(r3+93)];
+	r4 = r2 >> 2;
+	r4 = heap32[(r4+8)];
+_3: do {
+	if(r4 !=0) //_LBB550_5
+{
+	r4 = 0;
+	f0 =                         0;
+	f1 = f0;
+	f2 = f0;
+	f3 = f0;
+	f4 = f0;
+	f5 = f0;
+_5: while(true){
+	r6 = r4 << 2;
+	r2 = (r2 + r6)|0;
+	r2 = r2 >> 2;
+	r7 = r5 >> 2;
+	r8 = heap32[(r7+30)];
+	r4 = (r4 + 1)|0;
+	f6 = heapFloat[(r2+4)];
+	r2 = heap32[(r2)];
+	r9 = heap32[(fp+-44)];
+	r10 = heap32[(r7+31)];
+	r11 = r8 & 1;
+	if(r11 != 0) //_LBB550_8
+{
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r11 = heap32[(r11)];
+	r8 = (r8 + r11)|0;
+	r8 = (r8 + -1)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+}
+	r11 = sp + -48;
+	r9 = (r9 + r10)|0;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r2;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r2 = heap32[(r3+93)];
+	r2 = (r2 + r6)|0;
+	r2 = r2 >> 2;
+	r6 = r11 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	f7 = heapFloat[(fp+-12)];
+	f8 = heapFloat[(r6+1)];
+	f9 = heapFloat[(r6+2)];
+	f10 = heapFloat[(r2+2)];
+	f11 = heapFloat[(r2+1)];
+	f12 = heapFloat[(r2)];
+	f7 = f7*f6;
+	f8 = f8*f6;
+	f9 = f9*f6;
+	r2 = heap32[(r7+30)];
+	f5 = f5+f7;
+	f4 = f4+f8;
+	f3 = f3+f9;
+	f7 = -f10;
+	f8 = -f11;
+	f9 = -f12;
+	r6 = heap32[(r7+1)];
+	r8 = heap32[(r7+31)];
+	r9 = r2 & 1;
+	if(r9 != 0) //_LBB550_11
+{
+	r9 = (r6 + r8)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+	r2 = (r2 + r9)|0;
+	r2 = (r2 + -1)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+}
+	f10 = heapFloat[(r7+2)];
+	f11 = heapFloat[(r7+3)];
+	f12 = heapFloat[(r7+6)];
+	f13 = heapFloat[(r7+7)];
+	f10 = f10*f9;
+	f11 = f11*f8;
+	f14 = heapFloat[(r7+4)];
+	f15 = heapFloat[(r7+10)];
+	f16 = heapFloat[(r7+11)];
+	f17 = heapFloat[(r7+12)];
+	f18 = heapFloat[(r7+8)];
+	f12 = f12*f9;
+	f13 = f13*f8;
+	f10 = f10+f11;
+	f11 = f14*f7;
+	r9 = sp + -16;
+	f9 = f15*f9;
+	f8 = f16*f8;
+	f12 = f12+f13;
+	f13 = f18*f7;
+	f10 = f10+f11;
+	r10 = r9 >> 2;
+	f8 = f9+f8;
+	f7 = f17*f7;
+	f9 = f12+f13;
+	heapFloat[(fp+-4)] = f10;
+	f7 = f8+f7;
+	heapFloat[(r10+1)] = f9;
+	heapFloat[(r10+2)] = f7;
+	heap32[(r10+3)] = 0;
+	r10 = sp + -32;
+	r6 = (r6 + r8)|0;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r9;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r10 >> 2;
+	f7 = heapFloat[(r7+14)];
+	f8 = heapFloat[(fp+-8)];
+	f9 = heapFloat[(r7+18)];
+	f10 = heapFloat[(r7+22)];
+	f11 = heapFloat[(r7+15)];
+	f12 = heapFloat[(r2+1)];
+	f13 = heapFloat[(r7+19)];
+	f14 = heapFloat[(r7+23)];
+	f7 = f7*f8;
+	f11 = f11*f12;
+	f15 = heapFloat[(r7+16)];
+	f16 = heapFloat[(r2+2)];
+	f17 = heapFloat[(r7+20)];
+	f18 = heapFloat[(r7+24)];
+	f9 = f9*f8;
+	f13 = f13*f12;
+	f8 = f10*f8;
+	f10 = f14*f12;
+	f7 = f7+f11;
+	f11 = f15*f16;
+	f9 = f9+f13;
+	f12 = f17*f16;
+	f8 = f8+f10;
+	f10 = f18*f16;
+	f7 = f7+f11;
+	f11 = heapFloat[(r7+26)];
+	f9 = f9+f12;
+	f12 = heapFloat[(r7+27)];
+	f8 = f8+f10;
+	f10 = heapFloat[(r7+28)];
+	f7 = f7+f11;
+	f9 = f9+f12;
+	f8 = f8+f10;
+	f7 = f7*f6;
+	f9 = f9*f6;
+	f6 = f8*f6;
+	r2 = heap32[(r3+93)];
+	f2 = f2+f7;
+	f1 = f1+f9;
+	f0 = f0+f6;
+	r6 = r2 >> 2;
+	r6 = heap32[(r6+8)];
+if(!(uint(r6) >uint(r4))) //_LBB550_6
+{
+break _3;
+}
+}
+}
+else{
+	f0 =                         0;
+	f1 = f0;
+	f2 = f0;
+	f3 = f0;
+	f4 = f0;
+	f5 = f0;
+}
+} while(0);
+	r0 = r0 >> 2;
+	f6 = heapFloat[(r0)];
+	f7 = heapFloat[(r0+1)];
+	f8 = heapFloat[(r0+4)];
+	f9 = heapFloat[(r0+5)];
+	f6 = f6*f5;
+	f7 = f7*f4;
+	f10 = heapFloat[(r0+2)];
+	f11 = heapFloat[(r0+8)];
+	f12 = heapFloat[(r0+9)];
+	f13 = heapFloat[(r0+6)];
+	f8 = f8*f5;
+	f9 = f9*f4;
+	f6 = f6+f7;
+	f7 = f10*f3;
+	f10 = heapFloat[(r0+10)];
+	f11 = f11*f5;
+	f12 = f12*f4;
+	f8 = f8+f9;
+	f9 = f13*f3;
+	f6 = f6+f7;
+	f7 = heapFloat[(r0+12)];
+	f13 = heapFloat[(r0+14)];
+	f14 = heapFloat[(r0+13)];
+	f8 = f8+f9;
+	r1 = r1 >> 2;
+	f9 = f11+f12;
+	f10 = f10*f3;
+	f6 = f6+f7;
+	f7 = f9+f10;
+	f8 = f8+f14;
+	heapFloat[(r1+1)] = f6;
+	f6 = f7+f13;
+	heapFloat[(r1+2)] = f8;
+	heapFloat[(r1+3)] = f6;
+	heap32[(r1+4)] = 0;
+	f6 = heapFloat[(r0)];
+	f7 = heapFloat[(r0+1)];
+	f8 = heapFloat[(r0+4)];
+	f9 = heapFloat[(r0+5)];
+	f10 = heapFloat[(r0+2)];
+	f6 = f6*f2;
+	f7 = f7*f1;
+	f11 = heapFloat[(r0+8)];
+	f12 = heapFloat[(r0+9)];
+	f13 = heapFloat[(r0+6)];
+	f8 = f8*f2;
+	f9 = f9*f1;
+	f6 = f6+f7;
+	f7 = f10*f0;
+	f10 = heapFloat[(r0+10)];
+	f11 = f11*f2;
+	f12 = f12*f1;
+	f8 = f8+f9;
+	f9 = f13*f0;
+	f6 = f6+f7;
+	f7 = heapFloat[(r0+12)];
+	f13 = heapFloat[(r0+14)];
+	f14 = heapFloat[(r0+13)];
+	f8 = f8+f9;
+	f9 = f11+f12;
+	f10 = f10*f0;
+	f6 = f6+f7;
+	f7 = f9+f10;
+	f8 = f8+f14;
+	heapFloat[(r1+5)] = f6;
+	f6 = f7+f13;
+	heapFloat[(r1+6)] = f8;
+	heapFloat[(r1+7)] = f6;
+	f2 = f5-f2;
+	heap32[(r1+8)] = 0;
+	f1 = f4-f1;
+	heapFloat[(r1+9)] = f2;
+	f0 = f3-f0;
+	heapFloat[(r1+10)] = f1;
+	heapFloat[(r1+11)] = f0;
+	f2 = f2*f2;
+	f1 = f1*f1;
+	heap32[(r1+12)] = 0;
+	f1 = f2+f1;
+	f0 = f0*f0;
+	f0 = f1+f0;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f1 =                         1;
+	f2 =   9.9999997473787516e-005;
+	f2 = f_g0 > f2 ? f_g0 : f1;
+	heapFloat[(r1+13)] = f_g0;
+	f0 = f1/f2;
+	f1 = heapFloat[(r1+9)];
+	f1 = f1*f0;
+	heapFloat[(r1+9)] = f1;
+	f1 = heapFloat[(r1+10)];
+	f1 = f1*f0;
+	heapFloat[(r1+10)] = f1;
+	f1 = heapFloat[(r1+11)];
+	f0 = f1*f0;
+	heapFloat[(r1+11)] = f0;
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+else{
+	if(r2 !=1) //_LBB550_14
+{
+	r0 = 2;
+}
+else{
+	r0 = 1;
+}
+	r1 = r1 >> 2;
+	heap32[(r1)] = r0;
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -104;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+4)];
+	r1 = heap32[(fp+5)];
+	r2 = r0 >> 2;
+	r3 = r1 >> 2;
+	f0 = heapFloat[(r2+14)];
+	f1 = heapFloat[(r3+14)];
+	f2 = heapFloat[(r2+13)];
+	f3 = heapFloat[(r3+13)];
+	f4 = heapFloat[(r2+12)];
+	f5 = heapFloat[(r3+12)];
+	r2 = sp + -16;
+	f4 = f4-f5;
+	r3 = r2 >> 2;
+	f2 = f2-f3;
+	heapFloat[(fp+-4)] = f4;
+	f0 = f0-f1;
+	heapFloat[(r3+1)] = f2;
+	heapFloat[(r3+2)] = f0;
+	heap32[(r3+3)] = 0;
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+3)];
+	r5 = sp + -72;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r1;
+	heap32[(g0+4)] = r2;
+	heap32[(g0+5)] = r5;
+	heap32[(g0+6)] = 1;
+	r6 = heap32[(fp+6)];
+	r7 = heap32[(fp+7)];
+	r8 = heap32[(fp+8)];
+	_ZN15btGjkEpaSolver211PenetrationEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsEb(i7);
+	r9 = r_g0;
+	if(r9 ==0) //_LBB551_2
+{
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r1;
+	heap32[(g0+4)] = r2;
+	heap32[(g0+5)] = r5;
+	_ZN15btGjkEpaSolver28DistanceEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsE(i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB551_4
+{
+	r0 = r5 >> 2;
+	r1 = r7 >> 2;
+	heap32[(r1)] = heap32[(r0+1)];
+	heap32[(r1+1)] = heap32[(r0+2)];
+	heap32[(r1+2)] = heap32[(r0+3)];
+	r2 = r8 >> 2;
+	heap32[(r1+3)] = heap32[(r0+4)];
+	heap32[(r2)] = heap32[(r0+5)];
+	heap32[(r2+1)] = heap32[(r0+6)];
+	heap32[(r2+2)] = heap32[(r0+7)];
+	r1 = r6 >> 2;
+	heap32[(r2+3)] = heap32[(r0+8)];
+	heap32[(r1)] = heap32[(r0+9)];
+	heap32[(r1+1)] = heap32[(r0+10)];
+	heap32[(r1+2)] = heap32[(r0+11)];
+	heap32[(r1+3)] = heap32[(r0+12)];
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+else{
+	r0 = r5 >> 2;
+	r1 = r7 >> 2;
+	heap32[(r1)] = heap32[(r0+1)];
+	heap32[(r1+1)] = heap32[(r0+2)];
+	heap32[(r1+2)] = heap32[(r0+3)];
+	r2 = r8 >> 2;
+	heap32[(r1+3)] = heap32[(r0+4)];
+	heap32[(r2)] = heap32[(r0+5)];
+	heap32[(r2+1)] = heap32[(r0+6)];
+	heap32[(r2+2)] = heap32[(r0+7)];
+	r1 = r6 >> 2;
+	heap32[(r2+3)] = heap32[(r0+8)];
+	heap32[(r1)] = heap32[(r0+9)];
+	heap32[(r1+1)] = heap32[(r0+10)];
+	heap32[(r1+2)] = heap32[(r0+11)];
+	heap32[(r1+3)] = heap32[(r0+12)];
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZN30btGjkEpaPenetrationDepthSolverD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV30btGjkEpaPenetrationDepthSolver;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN30btGjkEpaPenetrationDepthSolverD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV30btGjkEpaPenetrationDepthSolver;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN17btGjkPairDetectorD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV17btGjkPairDetector;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN17btGjkPairDetectorD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV17btGjkPairDetector;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var r24;
+	var r25;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -304;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = sp + -32;
+	heap32[(r1+14)] = 0;
+	r3 = r2 >> 2;
+	heap32[(fp+-8)] = 0;
+	heap32[(r3+1)] = 0;
+	r4 = heap32[(fp+1)];
+	heap32[(r3+2)] = 0;
+	r5 = sp + -96;
+	r4 = r4 >> 2;
+	heap32[(r3+3)] = 0;
+	r6 = r5 >> 2;
+	heap32[(fp+-24)] = heap32[(r4)];
+	heap32[(r6+1)] = heap32[(r4+1)];
+	heap32[(r6+2)] = heap32[(r4+2)];
+	heap32[(r6+3)] = heap32[(r4+3)];
+	heap32[(r6+4)] = heap32[(r4+4)];
+	heap32[(r6+5)] = heap32[(r4+5)];
+	heap32[(r6+6)] = heap32[(r4+6)];
+	heap32[(r6+7)] = heap32[(r4+7)];
+	heap32[(r6+8)] = heap32[(r4+8)];
+	heap32[(r6+9)] = heap32[(r4+9)];
+	heap32[(r6+10)] = heap32[(r4+10)];
+	heap32[(r6+11)] = heap32[(r4+11)];
+	f0 = heapFloat[(r4+12)];
+	f1 = heapFloat[(r4+13)];
+	f2 = heapFloat[(r4+14)];
+	r7 = sp + -160;
+	heap32[(r6+15)] = heap32[(r4+15)];
+	r8 = r7 >> 2;
+	heap32[(fp+-40)] = heap32[(r4+16)];
+	heap32[(r8+1)] = heap32[(r4+17)];
+	heap32[(r8+2)] = heap32[(r4+18)];
+	heap32[(r8+3)] = heap32[(r4+19)];
+	heap32[(r8+4)] = heap32[(r4+20)];
+	heap32[(r8+5)] = heap32[(r4+21)];
+	heap32[(r8+6)] = heap32[(r4+22)];
+	heap32[(r8+7)] = heap32[(r4+23)];
+	heap32[(r8+8)] = heap32[(r4+24)];
+	heap32[(r8+9)] = heap32[(r4+25)];
+	heap32[(r8+10)] = heap32[(r4+26)];
+	heap32[(r8+11)] = heap32[(r4+27)];
+	f3 = heapFloat[(r4+28)];
+	f4 = heapFloat[(r4+29)];
+	f5 = heapFloat[(r4+30)];
+	f6 = f0+f3;
+	f7 =                       0.5;
+	f6 = f6*f7;
+	f8 = f1+f4;
+	f8 = f8*f7;
+	f9 = f2+f5;
+	f0 = f0-f6;
+	heap32[(r8+15)] = heap32[(r4+31)];
+	f7 = f9*f7;
+	f1 = f1-f8;
+	heapFloat[(r6+12)] = f0;
+	f0 = f2-f7;
+	heapFloat[(r6+13)] = f1;
+	f1 = f3-f6;
+	heapFloat[(r6+14)] = f0;
+	f0 = f4-f8;
+	heapFloat[(r8+12)] = f1;
+	f1 = f5-f7;
+	heapFloat[(r8+13)] = f0;
+	heapFloat[(r8+14)] = f1;
+	r9 = heap32[(r1+7)];
+	r9 = r9 >> 2;
+	r10 = heap32[(fp+2)];
+	r11 = heap32[(fp+3)];
+	r9 = heap32[(r9+1)];
+	r9 = (r9 + -17)|0;
+	if(uint(r9) >uint(1)) //_LBB556_3
+{
+__label__ = 3;
+}
+else{
+	r9 = heap32[(r1+8)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+1)];
+	r9 = (r9 + -17)|0;
+	if(uint(r9) >uint(1)) //_LBB556_3
+{
+__label__ = 3;
+}
+else{
+	r9 = (r0 + 32)|0;
+	r12 = 0;
+__label__ = 4;
+}
+}
+if (__label__ == 3){
+	r9 = (r0 + 32)|0;
+	r12 = 1;
+}
+	r13 = gNumGjkChecks;
+	r13 = r13 >> 2;
+	r14 = heap32[(r13)];
+	f0 = heapFloat[(r1+11)];
+	f1 = heapFloat[(r1+12)];
+	r14 = (r14 + 1)|0;
+	heap32[(r13)] = r14;
+	r13 = heapU8[r0+52];
+	heap32[(r1+16)] = 0;
+	heap32[(r1+1)] = 0;
+	heap32[(r1+2)] = 1065353216;
+	heap32[(r1+3)] = 0;
+	heap32[(r1+4)] = 0;
+	heap32[(r1+17)] = 0;
+	heap32[(r1+15)] = -1;
+	r14 = heap32[(r1+6)];
+	r15 = 0;
+	r16 = r14 >> 2;
+	heap8[r14+312] = r15;
+	r17 = 1;
+	heap32[(r16)] = 0;
+	heap8[r14+356] = r17;
+	heap32[(r16+73)] = 1566444395;
+	heap32[(r16+74)] = 1566444395;
+	heap32[(r16+75)] = 1566444395;
+	heap32[(r16+76)] = 0;
+	heap8[r14+352] = r15;
+	heap32[(r16+84)] = 0;
+	heap32[(r16+85)] = 0;
+	heap32[(r16+86)] = 0;
+	heap32[(r16+87)] = 0;
+	r16 = heapU8[r14+332];
+	f2 =                         0;
+	r16 = r16 & 240;
+	heap8[r14+332] = r16;
+	f1 = r13 == r15 ? f1 : f2;
+	f0 = r13 == r15 ? f0 : f2;
+	f0 = f0+f1;
+	f3 = heapFloat[(r1+3)];
+	f4 = heapFloat[(r1+2)];
+	f5 = heapFloat[(r1+1)];
+	f9 =        999999984306749440;
+_7: while(true){
+	f10 = -f5;
+	f11 = heapFloat[(r4)];
+	f12 = heapFloat[(r4+4)];
+	f13 = heapFloat[(r4+1)];
+	f14 = heapFloat[(r4+5)];
+	f11 = f11*f10;
+	f12 = f12*f4;
+	f15 = heapFloat[(r4+8)];
+	f16 = heapFloat[(r4+2)];
+	f17 = heapFloat[(r4+6)];
+	f18 = heapFloat[(r4+10)];
+	f19 = heapFloat[(r4+9)];
+	f13 = f13*f10;
+	f14 = f14*f4;
+	f11 = f11-f12;
+	f12 = f15*f3;
+	r13 = sp + -176;
+	f10 = f16*f10;
+	f15 = f17*f4;
+	f13 = f13-f14;
+	f14 = f19*f3;
+	f11 = f11-f12;
+	r14 = r13 >> 2;
+	f10 = f10-f15;
+	f12 = f18*f3;
+	f13 = f13-f14;
+	heapFloat[(fp+-44)] = f11;
+	f10 = f10-f12;
+	heapFloat[(r14+1)] = f13;
+	heapFloat[(r14+2)] = f10;
+	heap32[(r14+3)] = 0;
+	f10 = heapFloat[(r4+16)];
+	f11 = heapFloat[(r4+20)];
+	f12 = heapFloat[(r4+17)];
+	f13 = heapFloat[(r4+21)];
+	f14 = heapFloat[(r4+24)];
+	f10 = f10*f5;
+	f11 = f11*f4;
+	f15 = heapFloat[(r4+18)];
+	f16 = heapFloat[(r4+22)];
+	f17 = heapFloat[(r4+26)];
+	f18 = heapFloat[(r4+25)];
+	f12 = f12*f5;
+	f13 = f13*f4;
+	f10 = f10+f11;
+	f11 = f14*f3;
+	r14 = sp + -192;
+	f5 = f15*f5;
+	f4 = f16*f4;
+	f12 = f12+f13;
+	f13 = f18*f3;
+	f10 = f10+f11;
+	r16 = r14 >> 2;
+	f4 = f5+f4;
+	f3 = f17*f3;
+	f5 = f12+f13;
+	heapFloat[(fp+-48)] = f10;
+	f3 = f4+f3;
+	heapFloat[(r16+1)] = f5;
+	heapFloat[(r16+2)] = f3;
+	heap32[(r16+3)] = 0;
+	r16 = heap32[(r1+7)];
+	r18 = sp + -208;
+	heap32[(g0)] = r18;
+	heap32[(g0+1)] = r16;
+	heap32[(g0+2)] = r13;
+	r13 = r9 >> 2;
+	_ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i7);
+	r16 = heap32[(r13)];
+	r19 = sp + -224;
+	heap32[(g0)] = r19;
+	heap32[(g0+1)] = r16;
+	heap32[(g0+2)] = r14;
+	_ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i7);
+	r14 = r18 >> 2;
+	r16 = r19 >> 2;
+	f3 = heapFloat[(r6+8)];
+	f4 = heapFloat[(fp+-52)];
+	f5 = heapFloat[(r6+4)];
+	f10 = heapFloat[(fp+-24)];
+	f11 = heapFloat[(r6+9)];
+	f12 = heapFloat[(r14+1)];
+	f13 = heapFloat[(r6+5)];
+	f14 = heapFloat[(r6+1)];
+	f15 = heapFloat[(r8+8)];
+	f16 = heapFloat[(fp+-56)];
+	f17 = heapFloat[(r8+4)];
+	f18 = heapFloat[(fp+-40)];
+	f19 = heapFloat[(r8+9)];
+	f20 = heapFloat[(r16+1)];
+	f21 = heapFloat[(r8+5)];
+	f22 = heapFloat[(r8+1)];
+	f3 = f3*f4;
+	f11 = f11*f12;
+	f23 = heapFloat[(r6+10)];
+	f24 = heapFloat[(r14+2)];
+	f25 = heapFloat[(r6+6)];
+	f26 = heapFloat[(r6+2)];
+	f15 = f15*f16;
+	f19 = f19*f20;
+	f27 = heapFloat[(r8+10)];
+	f28 = heapFloat[(r16+2)];
+	f29 = heapFloat[(r8+6)];
+	f30 = heapFloat[(r8+2)];
+	f5 = f5*f4;
+	f13 = f13*f12;
+	f17 = f17*f16;
+	f21 = f21*f20;
+	f4 = f10*f4;
+	f10 = f14*f12;
+	f12 = f18*f16;
+	f14 = f22*f20;
+	f3 = f3+f11;
+	f11 = f23*f24;
+	f15 = f15+f19;
+	f16 = f27*f28;
+	f5 = f5+f13;
+	f13 = f25*f24;
+	f17 = f17+f21;
+	f18 = f29*f28;
+	f4 = f4+f10;
+	f10 = f26*f24;
+	f12 = f12+f14;
+	f14 = f30*f28;
+	f3 = f3+f11;
+	f11 = heapFloat[(r6+14)];
+	f15 = f15+f16;
+	f16 = heapFloat[(r8+14)];
+	f5 = f5+f13;
+	f13 = heapFloat[(r6+13)];
+	f17 = f17+f18;
+	f18 = heapFloat[(r8+13)];
+	f4 = f4+f10;
+	f10 = heapFloat[(r6+12)];
+	f12 = f12+f14;
+	f14 = heapFloat[(r8+12)];
+	f5 = f5+f13;
+	f13 = f17+f18;
+	f4 = f4+f10;
+	f10 = f12+f14;
+	f3 = f3+f11;
+	f11 = f15+f16;
+	f3 = r12 != r15 ? f3 : f2;
+	f11 = r12 != r15 ? f11 : f2;
+	f12 = f5-f13;
+	f14 = heapFloat[(r1+2)];
+	f15 = f4-f10;
+	f16 = heapFloat[(r1+1)];
+	f17 = f3-f11;
+	f18 = heapFloat[(r1+3)];
+	f16 = f16*f15;
+	f14 = f14*f12;
+	f14 = f16+f14;
+	f16 = f18*f17;
+	f14 = f14+f16;
+if(!(f14 <=f2)) //_LBB556_8
+{
+	f16 = heapFloat[(r4+32)];
+	f18 = f14*f14;
+	f16 = f16*f9;
+if(!(f18 <=f16)) //_LBB556_8
+{
+__label__ = 7;
+break _7;
+}
+}
+	r14 = heap32[(r1+6)];
+	r16 = r14 >> 2;
+	r18 = heap32[(r16)];
+_12: do {
+	if(r18 >0) //_LBB556_10
+{
+	r19 = -12;
+	f16 = heapFloat[(r16+77)];
+	r20 = (r19 - r14)|0;
+	r21 = 0;
+	r22 = r18;
+	r19 = r21;
+_14: while(true){
+	r23 = -8;
+	r24 = -4;
+	r23 = (r23 - r20)|0;
+	r24 = (r24 - r20)|0;
+	r23 = r23 >> 2;
+	r24 = r24 >> 2;
+	r25 = (r21 - r20)|0;
+	r25 = r25 >> 2;
+	f18 = heapFloat[(r23)];
+	f19 = heapFloat[(r24)];
+	f18 = f15-f18;
+	f19 = f12-f19;
+	f20 = heapFloat[(r25)];
+	f20 = f17-f20;
+	f18 = f18*f18;
+	f19 = f19*f19;
+	f18 = f18+f19;
+	f19 = f20*f20;
+	f18 = f18+f19;
+	r22 = (r22 + -1)|0;
+	r19 = f18 > f16 ? r19 : r17;
+	r20 = (r20 + -16)|0;
+	if(r22 !=0) //_LBB556_11
+{
+continue _14;
+}
+else{
+break _12;
+}
+}
+}
+else{
+	r19 = r15;
+}
+} while(0);
+	f16 = heapFloat[(r16+76)];
+	if(f16 ==f2) //_LBB556_14
+{
+	f16 = heapFloat[(r16+75)];
+if(!(f17 !=f16)) //_LBB556_13
+{
+	f16 = heapFloat[(r16+74)];
+if(!(f12 !=f16)) //_LBB556_13
+{
+	f16 = heapFloat[(r16+73)];
+	r19 = f15 != f16 ? r19 : r17;
+}
+}
+}
+	r19 = r19 & 255;
+	if(r19 ==0) //_LBB556_19
+{
+	f14 = f9-f14;
+	f16 =   9.9999999747524271e-007;
+	f18 = f9*f16;
+	if(f14 >f18) //_LBB556_21
+{
+	heapFloat[(r16+73)] = f15;
+	heapFloat[(r16+74)] = f12;
+	r18 = r18 << 4;
+	heapFloat[(r16+75)] = f17;
+	r18 = (r14 + r18)|0;
+	heap32[(r16+76)] = 0;
+	r18 = r18 >> 2;
+	heap8[r14+356] = r17;
+	heapFloat[(r18+1)] = f15;
+	heapFloat[(r18+2)] = f12;
+	heapFloat[(r18+3)] = f17;
+	heap32[(r18+4)] = 0;
+	r18 = heap32[(r16)];
+	r18 = r18 << 4;
+	r18 = (r14 + r18)|0;
+	r18 = r18 >> 2;
+	heapFloat[(r18+21)] = f4;
+	heapFloat[(r18+22)] = f5;
+	heapFloat[(r18+23)] = f3;
+	heap32[(r18+24)] = 0;
+	r18 = heap32[(r16)];
+	r18 = r18 << 4;
+	r14 = (r14 + r18)|0;
+	r14 = r14 >> 2;
+	heapFloat[(r14+41)] = f10;
+	heapFloat[(r14+42)] = f13;
+	heapFloat[(r14+43)] = f11;
+	heap32[(r14+44)] = 0;
+	r14 = heap32[(r16)];
+	r14 = (r14 + 1)|0;
+	heap32[(r16)] = r14;
+	r14 = heap32[(r1+6)];
+	heap32[(g0)] = r14;
+	_ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7);
+	r16 = r_g0;
+	if(r16 !=0) //_LBB556_23
+{
+	r14 = r14 >> 2;
+	f5 = heapFloat[(r14+69)];
+	f4 = heapFloat[(r14+70)];
+	f3 = heapFloat[(r14+71)];
+	f10 = heapFloat[(r14+72)];
+	heapFloat[(r1+1)] = f5;
+	f11 = f5*f5;
+	f12 = f4*f4;
+	heapFloat[(r1+2)] = f4;
+	f11 = f11+f12;
+	f12 = f3*f3;
+	f11 = f11+f12;
+	heapFloat[(r1+3)] = f3;
+	heapFloat[(r1+4)] = f10;
+	if(f11 >=f16) //_LBB556_25
+{
+	f10 =   1.1920928955078125e-007;
+	f12 = f9-f11;
+	f9 = f9*f10;
+	if(f12 >f9) //_LBB556_27
+{
+	r14 = heap32[(r1+16)];
+	r16 = (r14 + 1)|0;
+	heap32[(r1+16)] = r16;
+	if(r14 <1001) //_LBB556_29
+{
+	r14 = heap32[(r1+6)];
+	r14 = r14 >> 2;
+	r16 = heap32[(r14)];
+	f9 = f11;
+	if(r16 !=4) //_LBB556_5
+{
+continue _7;
+}
+else{
+__label__ = 29;
+break _7;
+}
+}
+else{
+__label__ = 27;
+break _7;
+}
+}
+else{
+__label__ = 25;
+break _7;
+}
+}
+else{
+__label__ = 23;
+break _7;
+}
+}
+else{
+__label__ = 21;
+break _7;
+}
+}
+else{
+__label__ = 19;
+break _7;
+}
+}
+else{
+__label__ = 17;
+break _7;
+}
+}
+_29: do {
+switch(__label__ ){//multiple entries
+case 7:
+	heap32[(r1+17)] = 10;
+__label__ = 30;
+break _29;
+break;
+case 29:
+	heap32[(r1+1)] = heap32[(r14+69)];
+	heap32[(r1+2)] = heap32[(r14+70)];
+	heap32[(r1+3)] = heap32[(r14+71)];
+	r17 = 0;
+	heap32[(r1+4)] = heap32[(r14+72)];
+	heap32[(r1+17)] = 13;
+__label__ = 37;
+break _29;
+break;
+case 27:
+	r6 = _2E_str425;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r16;
+	printf(i7);
+	r6 = heap32[(r13)];
+	r8 = heap32[(r1+7)];
+	r6 = r6 >> 2;
+	r8 = r8 >> 2;
+	f2 = heapFloat[(r1+3)];
+	f3 = heapFloat[(r1+2)];
+	f4 = heapFloat[(r1+1)];
+	r6 = heap32[(r6+1)];
+	r8 = heap32[(r8+1)];
+	r9 = _2E_str1426;
+	f4 = f4; //fstod f4, f4
+	f3 = f3; //fstod f3, f3
+	f2 = f2; //fstod f2, f2
+	f5 = f11; //fstod f11, f5
+	heap32[(g0)] = r9;
+	llvm_writeDouble((i7+8),f4);
+	llvm_writeDouble((i7+16),f3);
+	llvm_writeDouble((i7+24),f2);
+	llvm_writeDouble((i7+32),f5);
+	heap32[(g0+10)] = r8;
+	heap32[(g0+11)] = r6;
+	f2 =                         0;
+	r17 = 0;
+	printf(i7);
+__label__ = 37;
+break _29;
+break;
+case 25:
+	r6 = heap32[(r1+6)];
+	r6 = r6 >> 2;
+	heap32[(r1+1)] = heap32[(r6+69)];
+	heap32[(r1+2)] = heap32[(r6+70)];
+	heap32[(r1+3)] = heap32[(r6+71)];
+	heap32[(r1+4)] = heap32[(r6+72)];
+	heap32[(r1+17)] = 12;
+	f9 = f11;
+__label__ = 30;
+break _29;
+break;
+case 23:
+	heap32[(r1+17)] = 6;
+__label__ = 30;
+break _29;
+break;
+case 21:
+	heap32[(r1+17)] = 3;
+__label__ = 30;
+break _29;
+break;
+case 19:
+	r6 = 11;
+	r8 = 2;
+	r6 = f14 > f2 ? r6 : r8;
+	heap32[(r1+17)] = r6;
+__label__ = 30;
+break _29;
+break;
+case 17:
+	heap32[(r1+17)] = 1;
+__label__ = 30;
+break;
+}
+} while(0);
+if (__label__ == 30){
+	r6 = heap32[(r1+6)];
+	heap32[(g0)] = r6;
+	r6 = r6 >> 2;
+	_ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7);
+	f3 = heapFloat[(r6+65)];
+	f2 = heapFloat[(r6+61)];
+	f4 = heapFloat[(r6+66)];
+	f5 = heapFloat[(r6+62)];
+	f10 = heapFloat[(r6+67)];
+	f11 = heapFloat[(r6+63)];
+	f2 = f2-f3;
+	f5 = f5-f4;
+	heapFloat[(fp+-8)] = f2;
+	f2 = f11-f10;
+	heapFloat[(r3+1)] = f5;
+	heapFloat[(r3+2)] = f2;
+	heap32[(r3+3)] = 0;
+	f2 = heapFloat[(r1+1)];
+	f5 = heapFloat[(r1+2)];
+	f11 = heapFloat[(r1+3)];
+	f2 = f2*f2;
+	f5 = f5*f5;
+	f2 = f2+f5;
+	f5 = f11*f11;
+	f2 = f2+f5;
+	f5 = f2; //fstod f2, f5
+	f11 =                    0.0001;
+if(!(f5 >=f11)) //_LBB556_33
+{
+	heap32[(r1+17)] = 5;
+}
+	f5 =   1.4210854715202004e-014;
+	if(f2 <=f5) //_LBB556_37
+{
+	f2 =                         0;
+	r17 = 0;
+	heap32[(r1+15)] = 2;
+}
+else{
+	heapFloat[(g0)] = f2;
+	sqrtf(i7);
+	f5 =                         1;
+	f2 = f5/f_g0;
+	f11 = heapFloat[(fp+-8)];
+	f11 = f11*f2;
+	heapFloat[(fp+-8)] = f11;
+	f11 = heapFloat[(r3+1)];
+	f11 = f11*f2;
+	heapFloat[(r3+1)] = f11;
+	f11 = heapFloat[(r3+2)];
+	f11 = f11*f2;
+	heapFloat[(r3+2)] = f11;
+	heapFloat[(g0)] = f9;
+	sqrtf(i7);
+	f9 = f_g0;
+	f11 =                         0;
+	if(f9 >f11) //_LBB556_36
+{
+	f9 = f1/f9;
+	f11 = heapFloat[(r1+3)];
+	f12 = heapFloat[(r1+2)];
+	f13 = heapFloat[(r1+1)];
+	f13 = f13*f9;
+	f12 = f12*f9;
+	f9 = f11*f9;
+	f2 = f5/f2;
+	f3 = f3+f13;
+	f4 = f4+f12;
+	f10 = f10+f9;
+	f2 = f2-f0;
+	heap32[(r1+15)] = 1;
+}
+else{
+	r0 = _2E_str2427;
+	r1 = _2E_str3428;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 320;
+	_assert(i7);
+}
+}
+}
+	r6 = heap32[(r1+18)];
+	if(r6 ==0) //_LBB556_45
+{
+__label__ = 42;
+}
+else{
+	r6 = heap32[(r1+5)];
+	if(r6 ==0) //_LBB556_45
+{
+__label__ = 42;
+}
+else{
+	r8 = heap32[(r1+17)];
+	if(r8 ==0) //_LBB556_45
+{
+__label__ = 42;
+}
+else{
+	f5 = f2+f0;
+	f5 = f5; //fstod f5, f5
+	f9 =                      0.01;
+	if(f5 <f9) //_LBB556_43
+{
+__label__ = 44;
+}
+else{
+	r8 = r17 & 255;
+	if(r8 ==1) //_LBB556_44
+{
+__label__ = 60;
+}
+else{
+__label__ = 44;
+}
+}
+}
+}
+}
+if (__label__ == 42){
+	r6 = r17 & 255;
+	if(r6 ==1) //_LBB556_44
+{
+__label__ = 60;
+}
+else{
+	r6 = heap32[(r1+5)];
+	if(r6 ==0) //_LBB556_62
+{
+__label__ = 59;
+}
+else{
+__label__ = 44;
+}
+}
+}
+_58: do {
+if (__label__ == 44){
+	r8 = gNumDeepPenetrationChecks;
+	r8 = r8 >> 2;
+	r9 = heap32[(r8)];
+	r9 = (r9 + 1)|0;
+	heap32[(r8)] = r9;
+	heap32[(r1+1)] = 0;
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = 0;
+	heap32[(r1+4)] = 0;
+	r8 = r6 >> 2;
+	r8 = heap32[(r8)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+2)];
+	r9 = heap32[(r4+33)];
+	r12 = heap32[(r13)];
+	r13 = heap32[(r1+7)];
+	r14 = heap32[(r1+6)];
+	r0 = (r0 + 4)|0;
+	r15 = sp + -240;
+	r16 = sp + -256;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r14;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = r12;
+	heap32[(g0+4)] = r5;
+	heap32[(g0+5)] = r7;
+	heap32[(g0+6)] = r0;
+	heap32[(g0+7)] = r15;
+	heap32[(g0+8)] = r16;
+	heap32[(g0+9)] = r11;
+	heap32[(g0+10)] = r9;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r0 = r_g0;
+	if(r0 ==0) //_LBB556_57
+{
+	f5 = heapFloat[(r1+1)];
+	f9 = heapFloat[(r1+2)];
+	f11 = heapFloat[(r1+3)];
+	f5 = f5*f5;
+	f9 = f9*f9;
+	f5 = f5+f9;
+	f9 = f11*f11;
+	f5 = f5+f9;
+	f9 =                         0;
+	if(f5 <=f9) //_LBB556_62
+{
+__label__ = 59;
+break _58;
+}
+else{
+	r0 = r15 >> 2;
+	r5 = r16 >> 2;
+	f5 = heapFloat[(r0+1)];
+	f9 = heapFloat[(r5+1)];
+	f11 = heapFloat[(fp+-60)];
+	f12 = heapFloat[(fp+-64)];
+	f11 = f11-f12;
+	f5 = f5-f9;
+	f9 = heapFloat[(r0+2)];
+	f12 = heapFloat[(r5+2)];
+	f9 = f9-f12;
+	f11 = f11*f11;
+	f5 = f5*f5;
+	f5 = f11+f5;
+	f9 = f9*f9;
+	f5 = f5+f9;
+	heapFloat[(g0)] = f5;
+	sqrtf(i7);
+	f0 = f_g0-f0;
+	r0 = r17 & 255;
+if(!(r0 !=1)) //_LBB556_60
+{
+	if(f0 >=f2) //_LBB556_61
+{
+	heap32[(r1+15)] = 5;
+__label__ = 59;
+break _58;
+}
+}
+	f2 = heapFloat[(r1+1)];
+	f3 = heapFloat[(r1+2)];
+	f4 = heapFloat[(r1+3)];
+	f10 = heapFloat[(fp+-64)];
+	f5 = heapFloat[(r5+1)];
+	f9 = heapFloat[(r5+2)];
+	heapFloat[(fp+-8)] = f2;
+	heapFloat[(r3+1)] = f3;
+	heapFloat[(r3+2)] = f4;
+	f11 = f2*f2;
+	f12 = f3*f3;
+	heap32[(r3+3)] = heap32[(r1+4)];
+	f11 = f11+f12;
+	f12 = f4*f4;
+	f11 = f11+f12;
+	heapFloat[(g0)] = f11;
+	sqrtf(i7);
+	f12 =                         1;
+	f11 = f12/f_g0;
+	f12 = heapFloat[(fp+-8)];
+	f12 = f12*f11;
+	heapFloat[(fp+-8)] = f12;
+	f12 = heapFloat[(r3+1)];
+	f12 = f12*f11;
+	heapFloat[(r3+1)] = f12;
+	f12 = heapFloat[(r3+2)];
+	f2 = f2*f1;
+	f13 = f3*f1;
+	f1 = f4*f1;
+	f11 = f12*f11;
+	f3 = f10+f2;
+	f4 = f5+f13;
+	f10 = f9+f1;
+	heapFloat[(r3+2)] = f11;
+	heap32[(r1+15)] = 6;
+	f2 = f0;
+__label__ = 60;
+break _58;
+}
+}
+else{
+	r16 = r16 >> 2;
+	r15 = r15 >> 2;
+	f0 = heapFloat[(r16+1)];
+	f1 = heapFloat[(r15+1)];
+	f5 = heapFloat[(fp+-64)];
+	f9 = heapFloat[(fp+-60)];
+	f0 = f0-f1;
+	f1 = f5-f9;
+	f5 = heapFloat[(r16+2)];
+	f9 = heapFloat[(r15+2)];
+	f5 = f5-f9;
+	f9 = f1*f1;
+	f11 = f0*f0;
+	f9 = f9+f11;
+	f11 = f5*f5;
+	f9 = f9+f11;
+	f11 =   1.4210854715202004e-014;
+	if(f9 <=f11) //_LBB556_50
+{
+	f1 = heapFloat[(r1+1)];
+	f0 = heapFloat[(r1+2)];
+	f5 = heapFloat[(r1+3)];
+	f9 = f1*f1;
+	f12 = f0*f0;
+	f9 = f9+f12;
+	f13 = f5*f5;
+	f12 = heapFloat[(r1+4)];
+	f9 = f9+f13;
+}
+else{
+	f12 =                         0;
+}
+	if(f9 <=f11) //_LBB556_56
+{
+	heap32[(r1+15)] = 9;
+__label__ = 59;
+break _58;
+}
+else{
+	heapFloat[(g0)] = f9;
+	sqrtf(i7);
+	f9 = f_g0;
+	f11 = heapFloat[(r15+1)];
+	f13 = heapFloat[(r16+1)];
+	f14 = heapFloat[(fp+-60)];
+	f15 = heapFloat[(fp+-64)];
+	f14 = f14-f15;
+	f11 = f11-f13;
+	f13 = heapFloat[(r15+2)];
+	f15 = heapFloat[(r16+2)];
+	f13 = f13-f15;
+	f14 = f14*f14;
+	f11 = f11*f11;
+	f11 = f14+f11;
+	f13 = f13*f13;
+	f11 = f11+f13;
+	heapFloat[(g0)] = f11;
+	sqrtf(i7);
+	f11 = -f_g0;
+	r15 = r17 & 255;
+if(!(r15 !=1)) //_LBB556_54
+{
+	if(f2 <=f11) //_LBB556_55
+{
+	heap32[(r1+15)] = 8;
+__label__ = 59;
+break _58;
+}
+}
+	f2 =                         1;
+	f2 = f2/f9;
+	f3 = heapFloat[(fp+-64)];
+	f4 = heapFloat[(r16+1)];
+	f10 = heapFloat[(r16+2)];
+	f1 = f1*f2;
+	f0 = f0*f2;
+	heapFloat[(fp+-8)] = f1;
+	f1 = f5*f2;
+	heapFloat[(r3+1)] = f0;
+	heapFloat[(r3+2)] = f1;
+	heapFloat[(r3+3)] = f12;
+	heap32[(r1+15)] = 3;
+	f2 = f11;
+__label__ = 60;
+}
+}
+}
+} while(0);
+if (__label__ == 59){
+	r0 = r17 & 255;
+	if(r0 ==0) //_LBB556_66
+{
+__label__ = 63;
+}
+else{
+__label__ = 60;
+}
+}
+_81: do {
+if (__label__ == 60){
+	f0 =                         0;
+if(!(f2 <f0)) //_LBB556_65
+{
+	f0 = f2*f2;
+	f1 = heapFloat[(r4+32)];
+	if(f0 >=f1) //_LBB556_66
+{
+break _81;
+}
+}
+	heap32[(r1+1)] = heap32[(fp+-8)];
+	heap32[(r1+2)] = heap32[(r3+1)];
+	heap32[(r1+3)] = heap32[(r3+2)];
+	heap32[(r1+4)] = heap32[(r3+3)];
+	r0 = r10 >> 2;
+	heapFloat[(r1+14)] = f2;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+4)];
+	r1 = sp + -16;
+	f0 = f3+f6;
+	r3 = r1 >> 2;
+	f1 = f4+f8;
+	heapFloat[(fp+-4)] = f0;
+	f0 = f10+f7;
+	heapFloat[(r3+1)] = f1;
+	heapFloat[(r3+2)] = f0;
+	heap32[(r3+3)] = 0;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r1;
+	heapFloat[(g0+3)] = f2;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+}
+} while(0);
+	return;
+}
+
+function _ZN20btPersistentManifold18removeContactPointEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+279)];
+	r3 = (r2 + -1)|0;
+	r4 = heap32[(fp+1)];
+	if(r3 ==r4) //_LBB557_2
+{
+	r3 = (r2 * 276)|0;
+	r0 = (r0 + r3)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+-41)];
+	if(r0 !=0) //_LBB557_4
+{
+	r1 = _2E_str434;
+	r2 = _2E_str483;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 160;
+	_assert(i7);
+}
+}
+else{
+	r4 = (r4 * 276)|0;
+	r5 = (r0 + 4)|0;
+	r3 = (r3 * 276)|0;
+	r4 = (r5 + r4)|0;
+	r3 = (r5 + r3)|0;
+	r2 = (r2 * 276)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 276;
+	r0 = (r0 + r2)|0;
+	memcpy(i7);
+	r2 = r0 >> 2;
+	heap32[(r2+-41)] = 0;
+	heap32[(r2+-16)] = 0;
+	heap32[(r2+-8)] = 0;
+	heap32[(r2)] = 0;
+	r3 = 0;
+	heap32[(r2+-40)] = 0;
+	heap8[r0+-156] = r3;
+	heap32[(r2+-38)] = 0;
+	heap32[(r2+-37)] = 0;
+	heap32[(r2+-32)] = 0;
+	r2 = heap32[(r1+279)];
+}
+	r0 = (r2 + -1)|0;
+	heap32[(r1+279)] = r0;
+	return;
+}
+
+function _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+279)];
+	r3 = (r2 + -1)|0;
+	if(r3 >-1) //_LBB558_2
+{
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+_3: while(true){
+	r5 = (r2 * 69)|0;
+	r5 = r5 << 2;
+	r5 = (r0 + r5)|0;
+	r6 = r3 >> 2;
+	r5 = r5 >> 2;
+	f0 = heapFloat[(r5+-68)];
+	f1 = heapFloat[(r6)];
+	f2 = heapFloat[(r5+-67)];
+	f3 = heapFloat[(r6+1)];
+	f4 = heapFloat[(r6+4)];
+	f5 = heapFloat[(r6+5)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r5+-66)];
+	f7 = heapFloat[(r6+2)];
+	f8 = heapFloat[(r6+8)];
+	f9 = heapFloat[(r6+9)];
+	f10 = heapFloat[(r6+6)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r6+10)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r6+12)];
+	f8 = heapFloat[(r6+14)];
+	f9 = heapFloat[(r6+13)];
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	f2 = f4+f9;
+	heapFloat[(r5+-56)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r5+-55)] = f2;
+	heapFloat[(r5+-54)] = f0;
+	heap32[(r5+-53)] = 0;
+	r6 = r4 >> 2;
+	f0 = heapFloat[(r5+-64)];
+	f1 = heapFloat[(r6)];
+	f2 = heapFloat[(r5+-63)];
+	f3 = heapFloat[(r6+1)];
+	f4 = heapFloat[(r6+4)];
+	f5 = heapFloat[(r6+5)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r5+-62)];
+	f7 = heapFloat[(r6+2)];
+	f8 = heapFloat[(r6+8)];
+	f9 = heapFloat[(r6+9)];
+	f10 = heapFloat[(r6+6)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r6+10)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r6+12)];
+	f8 = heapFloat[(r6+14)];
+	f9 = heapFloat[(r6+13)];
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	f2 = f4+f9;
+	heapFloat[(r5+-60)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r5+-59)] = f2;
+	heapFloat[(r5+-58)] = f0;
+	heap32[(r5+-57)] = 0;
+	f0 = heapFloat[(r5+-55)];
+	f1 = heapFloat[(r5+-59)];
+	f2 = heapFloat[(r5+-56)];
+	f3 = heapFloat[(r5+-60)];
+	f2 = f2-f3;
+	f3 = heapFloat[(r5+-52)];
+	f0 = f0-f1;
+	f1 = heapFloat[(r5+-51)];
+	f4 = heapFloat[(r5+-54)];
+	f5 = heapFloat[(r5+-58)];
+	f6 = heapFloat[(r5+-50)];
+	f4 = f4-f5;
+	f2 = f2*f3;
+	f0 = f0*f1;
+	f0 = f2+f0;
+	f1 = f4*f6;
+	f0 = f0+f1;
+	heapFloat[(r5+-48)] = f0;
+	r6 = heap32[(r5+-32)];
+	r2 = (r2 + -1)|0;
+	r6 = (r6 + 1)|0;
+	heap32[(r5+-32)] = r6;
+if(!(r2 !=0)) //_LBB558_3
+{
+break _3;
+}
+}
+	r2 = heap32[(r1+279)];
+}
+	r2 = (r2 + -1)|0;
+_7: do {
+if(!(r2 <0)) //_LBB558_11
+{
+_8: while(true){
+	r3 = r2;
+	r2 = (r3 * 69)|0;
+	r2 = r2 << 2;
+	r2 = (r0 + r2)|0;
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r2+21)];
+	f1 = heapFloat[(r1+280)];
+	if(f0 <=f1) //_LBB558_8
+{
+	f2 = heapFloat[(r2+17)];
+	f3 = heapFloat[(r2+18)];
+	f4 = heapFloat[(r2+19)];
+	f5 = heapFloat[(r2+13)];
+	f2 = f2*f0;
+	f6 = heapFloat[(r2+14)];
+	f3 = f3*f0;
+	f7 = heapFloat[(r2+9)];
+	f2 = f5-f2;
+	f5 = heapFloat[(r2+10)];
+	f3 = f6-f3;
+	f6 = heapFloat[(r2+15)];
+	f0 = f4*f0;
+	f2 = f7-f2;
+	f3 = f5-f3;
+	f4 = heapFloat[(r2+11)];
+	f0 = f6-f0;
+	f0 = f4-f0;
+	f2 = f2*f2;
+	f3 = f3*f3;
+	f2 = f2+f3;
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f2+f0;
+if(!(f1 >=f0)) //_LBB558_10
+{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	_ZN20btPersistentManifold18removeContactPointEi(i7);
+}
+}
+else{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	_ZN20btPersistentManifold18removeContactPointEi(i7);
+}
+	r2 = (r3 + -1)|0;
+	if(r3 !=0) //_LBB558_6
+{
+continue _8;
+}
+else{
+break _7;
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+var __label__ = 0;
+	i7 = sp + -56;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+6)];
+	f1 = heapFloat[(r0+2)];
+	f2 = heapFloat[(r0+10)];
+	f3 = heapFloat[(r0+5)];
+	f4 = heapFloat[(r0+1)];
+	f5 = heapFloat[(r0+9)];
+	f6 = heapFloat[(r0+4)];
+	f7 = heapFloat[(r0)];
+	f8 = heapFloat[(r0+8)];
+	f9 = f3-f4;
+	f10 = f2-f1;
+	f11 = f0-f1;
+	f12 = f5-f4;
+	f13 = f8-f7;
+	f14 = f6-f7;
+	f15 = f9*f10;
+	f16 = f11*f12;
+	f15 = f15-f16;
+	r0 = sp + -32;
+	f11 = f11*f13;
+	f10 = f14*f10;
+	f10 = f11-f10;
+	r1 = r0 >> 2;
+	heapFloat[(fp+-8)] = f15;
+	f11 = f14*f12;
+	f9 = f9*f13;
+	f9 = f11-f9;
+	heapFloat[(r1+1)] = f10;
+	r2 = heap32[(fp)];
+	heapFloat[(r1+2)] = f9;
+	r3 = r2 >> 2;
+	heap32[(r1+3)] = 0;
+	f11 = heapFloat[(r3+1)];
+	f12 = heapFloat[(r3+2)];
+	f13 = heapFloat[(r3+5)];
+	f14 = heapFloat[(r3+6)];
+	f16 = heapFloat[(r3+3)];
+	f17 = heapFloat[(r3+7)];
+	f18 = f15*f11;
+	f19 = f10*f12;
+	f20 = f15*f13;
+	f21 = f10*f14;
+	f22 = f7*f15;
+	f23 = f4*f10;
+	f18 = f18+f19;
+	f19 = f9*f16;
+	f20 = f20+f21;
+	f21 = f9*f17;
+	f22 = f22+f23;
+	f23 = f1*f9;
+	f18 = f18+f19;
+	f19 = f22+f23;
+	f20 = f20+f21;
+	f18 = f18-f19;
+	f19 = f20-f19;
+	f20 = f18*f19;
+	f21 =                         0;
+_1: do {
+if(!(f20 >=f21)) //_LBB559_11
+{
+	r4 = heap32[(r3+9)];
+	r4 = r4 & 1;
+if(!(r4 ==0)) //_LBB559_3
+{
+	if(f18 >f21) //_LBB559_11
+{
+break _1;
+}
+}
+	f19 = f18-f19;
+	f19 = f18/f19;
+	f20 = heapFloat[(r3+10)];
+if(!(f20 <=f19)) //_LBB559_11
+{
+	f20 =                         1;
+	f22 = f20-f19;
+	f16 = f16*f22;
+	f17 = f17*f19;
+	f12 = f12*f22;
+	f14 = f14*f19;
+	f11 = f11*f22;
+	f13 = f13*f19;
+	f16 = f16+f17;
+	f12 = f12+f14;
+	f11 = f11+f13;
+	f1 = f1-f16;
+	f3 = f3-f12;
+	f7 = f7-f11;
+	f0 = f0-f16;
+	f4 = f4-f12;
+	f6 = f6-f11;
+	f13 = f15*f15;
+	f14 = f10*f10;
+	f17 = f4*f0;
+	f22 = f1*f3;
+	f23 = f1*f6;
+	f24 = f7*f0;
+	f13 = f13+f14;
+	f14 = f9*f9;
+	f17 = f17-f22;
+	f22 = f23-f24;
+	f13 = f13+f14;
+	f14 =  -9.9999997473787516e-005;
+	f23 = f7*f3;
+	f24 = f4*f6;
+	f23 = f23-f24;
+	f14 = f13*f14;
+	f17 = f17*f15;
+	f22 = f22*f10;
+	f17 = f17+f22;
+	f22 = f23*f9;
+	f17 = f17+f22;
+if(!(f17 <f14)) //_LBB559_11
+{
+	f2 = f2-f16;
+	f5 = f5-f12;
+	f8 = f8-f11;
+	f11 = f3*f2;
+	f12 = f0*f5;
+	f0 = f0*f8;
+	f16 = f6*f2;
+	f11 = f11-f12;
+	f0 = f0-f16;
+	f6 = f6*f5;
+	f3 = f3*f8;
+	f11 = f11*f15;
+	f0 = f0*f10;
+	f3 = f6-f3;
+	f0 = f11+f0;
+	f3 = f3*f9;
+	f0 = f0+f3;
+if(!(f0 <f14)) //_LBB559_11
+{
+	f0 = f5*f1;
+	f3 = f2*f4;
+	f2 = f2*f7;
+	f1 = f8*f1;
+	f0 = f0-f3;
+	f1 = f2-f1;
+	f2 = f8*f4;
+	f3 = f5*f7;
+	f0 = f0*f15;
+	f1 = f1*f10;
+	f2 = f2-f3;
+	f0 = f0+f1;
+	f1 = f2*f9;
+	f0 = f0+f1;
+if(!(f0 <f14)) //_LBB559_11
+{
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	heapFloat[(g0)] = f13;
+	sqrtf(i7);
+	f0 = f20/f_g0;
+	f1 = heapFloat[(fp+-8)];
+	f1 = f1*f0;
+	heapFloat[(fp+-8)] = f1;
+	f2 = heapFloat[(r1+1)];
+	f2 = f2*f0;
+	heapFloat[(r1+1)] = f2;
+	f3 = heapFloat[(r1+2)];
+	f0 = f3*f0;
+	heapFloat[(r1+2)] = f0;
+	r1 = heap32[(r3)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+3)];
+	r6 = heap32[(r3+9)];
+	r6 = r6 & 2;
+	if(r6 !=0) //_LBB559_9
+{
+__label__ = 9;
+}
+else{
+	if(f18 >f21) //_LBB559_10
+{
+__label__ = 10;
+}
+else{
+__label__ = 9;
+}
+}
+if (__label__ == 9){
+	r0 = sp + -16;
+	f1 = -f1;
+	r6 = r0 >> 2;
+	f2 = -f2;
+	heapFloat[(fp+-4)] = f1;
+	f0 = -f0;
+	heapFloat[(r6+1)] = f2;
+	heapFloat[(r6+2)] = f0;
+	heap32[(r6+3)] = 0;
+}
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heapFloat[(g0+2)] = f19;
+	heap32[(g0+3)] = r4;
+	heap32[(g0+4)] = r5;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	heapFloat[(r3+10)] = f_g0;
+}
+}
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV28btTriangleConvexcastCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+1)];
+	heap32[(r0)] = r1;
+	r1 = r2 >> 2;
+	heap32[(r0+1)] = r3;
+	heap32[(r0+2)] = heap32[(r1)];
+	heap32[(r0+3)] = heap32[(r1+1)];
+	heap32[(r0+4)] = heap32[(r1+2)];
+	heap32[(r0+5)] = heap32[(r1+3)];
+	heap32[(r0+6)] = heap32[(r1+4)];
+	heap32[(r0+7)] = heap32[(r1+5)];
+	heap32[(r0+8)] = heap32[(r1+6)];
+	heap32[(r0+9)] = heap32[(r1+7)];
+	heap32[(r0+10)] = heap32[(r1+8)];
+	heap32[(r0+11)] = heap32[(r1+9)];
+	heap32[(r0+12)] = heap32[(r1+10)];
+	heap32[(r0+13)] = heap32[(r1+11)];
+	heap32[(r0+14)] = heap32[(r1+12)];
+	heap32[(r0+15)] = heap32[(r1+13)];
+	r2 = heap32[(fp+3)];
+	heap32[(r0+16)] = heap32[(r1+14)];
+	r2 = r2 >> 2;
+	heap32[(r0+17)] = heap32[(r1+15)];
+	heap32[(r0+18)] = heap32[(r2)];
+	heap32[(r0+19)] = heap32[(r2+1)];
+	heap32[(r0+20)] = heap32[(r2+2)];
+	heap32[(r0+21)] = heap32[(r2+3)];
+	heap32[(r0+22)] = heap32[(r2+4)];
+	heap32[(r0+23)] = heap32[(r2+5)];
+	heap32[(r0+24)] = heap32[(r2+6)];
+	heap32[(r0+25)] = heap32[(r2+7)];
+	heap32[(r0+26)] = heap32[(r2+8)];
+	heap32[(r0+27)] = heap32[(r2+9)];
+	heap32[(r0+28)] = heap32[(r2+10)];
+	heap32[(r0+29)] = heap32[(r2+11)];
+	heap32[(r0+30)] = heap32[(r2+12)];
+	heap32[(r0+31)] = heap32[(r2+13)];
+	r1 = heap32[(fp+4)];
+	heap32[(r0+32)] = heap32[(r2+14)];
+	r1 = r1 >> 2;
+	heap32[(r0+33)] = heap32[(r2+15)];
+	heap32[(r0+34)] = heap32[(r1)];
+	heap32[(r0+35)] = heap32[(r1+1)];
+	heap32[(r0+36)] = heap32[(r1+2)];
+	heap32[(r0+37)] = heap32[(r1+3)];
+	heap32[(r0+38)] = heap32[(r1+4)];
+	heap32[(r0+39)] = heap32[(r1+5)];
+	heap32[(r0+40)] = heap32[(r1+6)];
+	heap32[(r0+41)] = heap32[(r1+7)];
+	heap32[(r0+42)] = heap32[(r1+8)];
+	heap32[(r0+43)] = heap32[(r1+9)];
+	heap32[(r0+44)] = heap32[(r1+10)];
+	heap32[(r0+45)] = heap32[(r1+11)];
+	heap32[(r0+46)] = heap32[(r1+12)];
+	heap32[(r0+47)] = heap32[(r1+13)];
+	heap32[(r0+48)] = heap32[(r1+14)];
+	heap32[(r0+49)] = heap32[(r1+15)];
+	heap32[(r0+50)] = 1065353216;
+	heap32[(r0+51)] = heap32[(fp+5)];
+	return;
+}
+
+function _ZN28btTriangleConvexcastCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN28btTriangleConvexcastCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV18btTriangleCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -696;var g0 = i7>>2; // save stack
+	r0 = sp + -104;
+	r1 = r0 >> 2;
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = 1065353216;
+	heap32[(r1+4)] = 1065353216;
+	r2 = _ZTV15btTriangleShape;
+	heap32[(r1+5)] = 1065353216;
+	r2 = (r2 + 8)|0;
+	heap32[(r1+6)] = 0;
+	r3 = heap32[(fp+1)];
+	heap32[(fp+-26)] = r2;
+	r2 = r3 >> 2;
+	heap32[(r1+1)] = 1;
+	heap32[(r1+13)] = heap32[(r2)];
+	heap32[(r1+14)] = heap32[(r2+1)];
+	heap32[(r1+15)] = heap32[(r2+2)];
+	heap32[(r1+16)] = heap32[(r2+3)];
+	heap32[(r1+17)] = heap32[(r2+4)];
+	heap32[(r1+18)] = heap32[(r2+5)];
+	heap32[(r1+19)] = heap32[(r2+6)];
+	heap32[(r1+20)] = heap32[(r2+7)];
+	heap32[(r1+21)] = heap32[(r2+8)];
+	heap32[(r1+22)] = heap32[(r2+9)];
+	r3 = heap32[(fp)];
+	heap32[(r1+23)] = heap32[(r2+10)];
+	r4 = sp + -464;
+	r5 = r3 >> 2;
+	heap32[(r1+24)] = heap32[(r2+11)];
+	r2 = r4 >> 2;
+	heap32[(r1+11)] = heap32[(r5+51)];
+	r1 = _ZTV30btGjkEpaPenetrationDepthSolver;
+	r6 = 0;
+	heap32[(r2+77)] = 953267991;
+	r1 = (r1 + 8)|0;
+	heap8[sp+-132] = r6;
+	heap32[(fp+-118)] = r1;
+	r1 = _ZTV27btContinuousConvexCollision;
+	r2 = sp + -496;
+	r6 = heap32[(r5+1)];
+	r1 = (r1 + 8)|0;
+	r7 = r2 >> 2;
+	heap32[(fp+-124)] = r1;
+	r1 = sp + -472;
+	heap32[(r7+1)] = r4;
+	heap32[(r7+2)] = r1;
+	r1 = _ZTVN12btConvexCast10CastResultE;
+	heap32[(r7+3)] = r6;
+	r4 = sp + -672;
+	r1 = (r1 + 8)|0;
+	heap32[(r7+4)] = r0;
+	r0 = r4 >> 2;
+	heap32[(fp+-168)] = r1;
+	heap32[(r0+42)] = 0;
+	heap32[(r0+43)] = 0;
+	heap32[(r0+41)] = 1065353216;
+	r1 = (r3 + 136)|0;
+	r6 = (r3 + 8)|0;
+	r7 = (r3 + 72)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r1;
+	heap32[(g0+4)] = r1;
+	heap32[(g0+5)] = r4;
+	_ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7);
+	r1 = r_g0;
+if(!(r1 ==0)) //_LBB563_4
+{
+	f0 = heapFloat[(r0+33)];
+	f1 = heapFloat[(r0+34)];
+	f2 = heapFloat[(r0+35)];
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	f1 =   9.9999997473787516e-005;
+if(!(f0 <=f1)) //_LBB563_4
+{
+	f1 = heapFloat[(r0+41)];
+	f2 = heapFloat[(r5+50)];
+if(!(f1 >=f2)) //_LBB563_4
+{
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp+3)];
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f1 =                         1;
+	f0 = f1/f_g0;
+	f1 = heapFloat[(r0+33)];
+	f1 = f1*f0;
+	heapFloat[(r0+33)] = f1;
+	f1 = heapFloat[(r0+34)];
+	f1 = f1*f0;
+	heapFloat[(r0+34)] = f1;
+	f1 = heapFloat[(r0+35)];
+	f0 = f1*f0;
+	heapFloat[(r0+35)] = f0;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+3)];
+	f0 = heapFloat[(r0+41)];
+	r0 = (r4 + 132)|0;
+	r4 = (r4 + 148)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heapFloat[(g0+3)] = f0;
+	heap32[(g0+4)] = r1;
+	heap32[(g0+5)] = r2;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+}
+}
+	return;
+}
+
+function _ZN22btSubsimplexConvexCastD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btConvexCast;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN22btSubsimplexConvexCastD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV12btConvexCast;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -240;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+1)];
+	r2 = 0;
+	r3 = r1 >> 2;
+	heap8[r1+312] = r2;
+	r4 = 1;
+	heap32[(r3)] = 0;
+	heap8[r1+356] = r4;
+	heap32[(r3+73)] = 1566444395;
+	heap32[(r3+74)] = 1566444395;
+	heap32[(r3+75)] = 1566444395;
+	heap32[(r3+76)] = 0;
+	heap8[r1+352] = r2;
+	heap32[(r3+84)] = 0;
+	heap32[(r3+85)] = 0;
+	heap32[(r3+86)] = 0;
+	heap32[(r3+87)] = 0;
+	r3 = heapU8[r1+332];
+	r5 = heap32[(fp+1)];
+	r6 = heap32[(fp+2)];
+	r7 = heap32[(fp+4)];
+	r8 = heap32[(fp+3)];
+	r3 = r3 & 240;
+	heap8[r1+332] = r3;
+	r1 = r5 >> 2;
+	r3 = r8 >> 2;
+	r5 = r6 >> 2;
+	r6 = r7 >> 2;
+	f0 = heapFloat[(r1+12)];
+	f1 = heapFloat[(r5+12)];
+	f2 = heapFloat[(r3+12)];
+	f3 = heapFloat[(r6+12)];
+	f4 = heapFloat[(r1+13)];
+	f5 = heapFloat[(r5+13)];
+	f6 = heapFloat[(r3+13)];
+	f7 = heapFloat[(r6+13)];
+	r7 = heap32[(r0+2)];
+	f1 = f1-f0;
+	f3 = f3-f2;
+	f1 = f1-f3;
+	heapFloat[(fp+-50)] = f1;
+	f3 = heapFloat[(r1+14)];
+	f8 = heapFloat[(r5+14)];
+	f9 = heapFloat[(r3+14)];
+	f10 = heapFloat[(r6+14)];
+	r8 = r7 >> 2;
+	f5 = f5-f4;
+	f7 = f7-f6;
+	f5 = f5-f7;
+	heapFloat[(fp+-51)] = f5;
+	f7 = heapFloat[(r1+4)];
+	heapFloat[(fp+-42)] = f7;
+	f11 = heapFloat[(r1)];
+	heapFloat[(fp+-43)] = f11;
+	f12 = -f1;
+	r8 = heap32[(r8)];
+	f8 = f8-f3;
+	f10 = f10-f9;
+	f13 = heapFloat[(r1+1)];
+	heapFloat[(fp+-44)] = f13;
+	f14 = heapFloat[(r1+5)];
+	heapFloat[(fp+-45)] = f14;
+	r8 = r8 >> 2;
+	f8 = f8-f10;
+	heapFloat[(fp+-52)] = f8;
+	f10 = heapFloat[(r1+8)];
+	heapFloat[(fp+-46)] = f10;
+	f11 = f11*f12;
+	f7 = f7*f5;
+	f15 = heapFloat[(r1+2)];
+	heapFloat[(fp+-47)] = f15;
+	f16 = heapFloat[(r1+6)];
+	f17 = heapFloat[(r1+9)];
+	f18 = heapFloat[(r1+10)];
+	f19 = heapFloat[(r3)];
+	heapFloat[(fp+-33)] = f19;
+	f19 = heapFloat[(r3+1)];
+	heapFloat[(fp+-34)] = f19;
+	f19 = heapFloat[(r3+2)];
+	heapFloat[(fp+-35)] = f19;
+	f19 = heapFloat[(r3+4)];
+	heapFloat[(fp+-36)] = f19;
+	f19 = heapFloat[(r3+5)];
+	heapFloat[(fp+-37)] = f19;
+	f19 = heapFloat[(r3+6)];
+	heapFloat[(fp+-38)] = f19;
+	f19 = heapFloat[(r3+8)];
+	heapFloat[(fp+-39)] = f19;
+	f19 = heapFloat[(r3+9)];
+	heapFloat[(fp+-40)] = f19;
+	f19 = heapFloat[(r3+10)];
+	heapFloat[(fp+-41)] = f19;
+	r8 = heap32[(r8+15)];
+	f13 = f13*f12;
+	f14 = f14*f5;
+	f7 = f11-f7;
+	f10 = f10*f8;
+	r9 = sp + -112;
+	f11 = f15*f12;
+	f12 = f16*f5;
+	f13 = f13-f14;
+	f14 = f17*f8;
+	f7 = f7-f10;
+	r10 = r9 >> 2;
+	f10 = f11-f12;
+	f11 = f18*f8;
+	f12 = f13-f14;
+	heapFloat[(fp+-28)] = f7;
+	f7 = f10-f11;
+	heapFloat[(r10+1)] = f12;
+	heapFloat[(r10+2)] = f7;
+	heap32[(r10+3)] = 0;
+	r10 = sp + -128;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r9;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r7 = heap32[(r0+3)];
+	r8 = r7 >> 2;
+	r8 = heap32[(r8)];
+	f7 = heapFloat[(r3)];
+	f10 = heapFloat[(r3+4)];
+	r9 = r10 >> 2;
+	r8 = r8 >> 2;
+	f11 = heapFloat[(r3+1)];
+	f12 = heapFloat[(r3+5)];
+	f13 = heapFloat[(r3+8)];
+	f7 = f7*f1;
+	f10 = f10*f5;
+	f14 = heapFloat[(r3+2)];
+	f15 = heapFloat[(r3+6)];
+	f19 = heapFloat[(r3+10)];
+	f20 = heapFloat[(r3+9)];
+	r8 = heap32[(r8+15)];
+	f11 = f11*f1;
+	f12 = f12*f5;
+	f7 = f7+f10;
+	f10 = f13*f8;
+	f13 = heapFloat[(r1)];
+	heapFloat[(fp+-48)] = f13;
+	f21 = heapFloat[(fp+-32)];
+	f22 = heapFloat[(r1+4)];
+	f23 = heapFloat[(r1+8)];
+	heapFloat[(fp+-49)] = f23;
+	f24 = heapFloat[(r1+1)];
+	f25 = heapFloat[(r9+1)];
+	f26 = heapFloat[(r1+5)];
+	f27 = heapFloat[(r1+9)];
+	f28 = heapFloat[(r1+2)];
+	f29 = heapFloat[(r9+2)];
+	f30 = heapFloat[(r1+6)];
+	f13 = heapFloat[(r1+10)];
+	heapFloat[(fp+-54)] = f13;
+	f13 = heapFloat[(r1+12)];
+	heapFloat[(fp+-53)] = f13;
+	f13 = heapFloat[(r1+13)];
+	heapFloat[(fp+-56)] = f13;
+	f13 = heapFloat[(r1+14)];
+	heapFloat[(fp+-55)] = f13;
+	r9 = sp + -80;
+	f1 = f14*f1;
+	f5 = f15*f5;
+	f11 = f11+f12;
+	f12 = f20*f8;
+	f7 = f7+f10;
+	r10 = r9 >> 2;
+	f1 = f1+f5;
+	f5 = f19*f8;
+	f8 = f11+f12;
+	heapFloat[(fp+-20)] = f7;
+	f1 = f1+f5;
+	heapFloat[(r10+1)] = f8;
+	heapFloat[(r10+2)] = f1;
+	heap32[(r10+3)] = 0;
+	r10 = sp + -96;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r9;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r7 = r10 >> 2;
+	f1 = heapFloat[(r3)];
+	f5 = heapFloat[(fp+-24)];
+	f7 = heapFloat[(r3+4)];
+	f8 = heapFloat[(r3+1)];
+	f10 = heapFloat[(r7+1)];
+	f11 = heapFloat[(r3+5)];
+	f12 = heapFloat[(r3+8)];
+	f14 = heapFloat[(r3+9)];
+	f13 = heapFloat[(fp+-48)];
+	f13 = f13*f21;
+	f15 = f24*f25;
+	f1 = f1*f5;
+	f8 = f8*f10;
+	f19 = heapFloat[(r3+2)];
+	f20 = heapFloat[(r7+2)];
+	f24 = heapFloat[(r3+6)];
+	f22 = f22*f21;
+	f26 = f26*f25;
+	f7 = f7*f5;
+	f11 = f11*f10;
+	f23 = heapFloat[(r3+10)];
+	f13 = f13+f15;
+	f15 = f28*f29;
+	f1 = f1+f8;
+	f8 = f19*f20;
+	f19 = f22+f26;
+	f22 = f30*f29;
+	f7 = f7+f11;
+	f11 = f24*f20;
+	f24 = heapFloat[(fp+-49)];
+	f21 = f24*f21;
+	f24 = f27*f25;
+	f5 = f12*f5;
+	f10 = f14*f10;
+	f12 = f13+f15;
+	f13 = f19+f22;
+	f1 = f1+f8;
+	f8 = heapFloat[(r3+12)];
+	f7 = f7+f11;
+	f11 = heapFloat[(r3+13)];
+	f14 = f21+f24;
+	f15 = heapFloat[(fp+-54)];
+	f15 = f15*f29;
+	f5 = f5+f10;
+	f10 = f23*f20;
+	f14 = f14+f15;
+	f15 = heapFloat[(fp+-53)];
+	f12 = f12+f15;
+	f1 = f1+f8;
+	f8 = heapFloat[(fp+-56)];
+	f8 = f13+f8;
+	f7 = f7+f11;
+	f5 = f5+f10;
+	f10 = heapFloat[(r3+14)];
+	f1 = f12-f1;
+	f7 = f8-f7;
+	f13 = heapFloat[(fp+-55)];
+	f8 = f14+f13;
+	f5 = f5+f10;
+	f5 = f8-f5;
+	f8 = f1*f1;
+	f10 = f7*f7;
+	f8 = f8+f10;
+	f10 = f5*f5;
+	r7 = heap32[(fp+5)];
+	f8 = f8+f10;
+	r8 = -33;
+	f10 =                         0;
+	heapFloat[(fp+-48)] = f10;
+	heapFloat[(fp+-49)] = f10;
+	f11 = f10;
+_1: while(true){
+	f12 =   9.9999997473787516e-005;
+	if(f8 <=f12) //_LBB566_22
+{
+__label__ = 19;
+break _1;
+}
+else{
+	r8 = (r8 + 1)|0;
+	if(r8 !=0) //_LBB566_1
+{
+	r9 = heap32[(r0+2)];
+	r10 = r9 >> 2;
+	r10 = heap32[(r10)];
+	f8 = -f1;
+	r10 = r10 >> 2;
+	f12 = heapFloat[(fp+-43)];
+	f12 = f12*f8;
+	f13 = heapFloat[(fp+-42)];
+	f13 = f13*f7;
+	r10 = heap32[(r10+15)];
+	f14 = heapFloat[(fp+-44)];
+	f14 = f14*f8;
+	f15 = heapFloat[(fp+-45)];
+	f15 = f15*f7;
+	f12 = f12-f13;
+	f13 = heapFloat[(fp+-46)];
+	f13 = f13*f5;
+	r11 = sp + -48;
+	f19 = heapFloat[(fp+-47)];
+	f8 = f19*f8;
+	f19 = f16*f7;
+	f14 = f14-f15;
+	f15 = f17*f5;
+	f12 = f12-f13;
+	r12 = r11 >> 2;
+	f8 = f8-f19;
+	f13 = f18*f5;
+	f14 = f14-f15;
+	heapFloat[(fp+-12)] = f12;
+	f8 = f8-f13;
+	heapFloat[(r12+1)] = f14;
+	heapFloat[(r12+2)] = f8;
+	heap32[(r12+3)] = 0;
+	r12 = sp + -64;
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r11;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	r9 = heap32[(r0+3)];
+	r10 = r9 >> 2;
+	r10 = heap32[(r10)];
+	r11 = r12 >> 2;
+	r10 = r10 >> 2;
+	f8 = heapFloat[(fp+-33)];
+	f8 = f8*f1;
+	f12 = heapFloat[(fp+-36)];
+	f12 = f12*f7;
+	f13 = heapFloat[(fp+-16)];
+	f14 = heapFloat[(r11+1)];
+	f15 = heapFloat[(r11+2)];
+	r10 = heap32[(r10+15)];
+	f19 = heapFloat[(fp+-34)];
+	f19 = f19*f1;
+	f20 = heapFloat[(fp+-37)];
+	f20 = f20*f7;
+	f8 = f8+f12;
+	f12 = heapFloat[(fp+-39)];
+	f12 = f12*f5;
+	r11 = sp + -16;
+	f21 = heapFloat[(fp+-35)];
+	f21 = f21*f1;
+	f22 = heapFloat[(fp+-38)];
+	f22 = f22*f7;
+	f19 = f19+f20;
+	f20 = heapFloat[(fp+-40)];
+	f20 = f20*f5;
+	f8 = f8+f12;
+	r12 = r11 >> 2;
+	f12 = f21+f22;
+	f21 = heapFloat[(fp+-41)];
+	f21 = f21*f5;
+	f19 = f19+f20;
+	heapFloat[(fp+-4)] = f8;
+	f8 = f12+f21;
+	heapFloat[(r12+1)] = f19;
+	heapFloat[(r12+2)] = f8;
+	heap32[(r12+3)] = 0;
+	r12 = sp + -32;
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = r11;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	f12 =                         1;
+	if(f11 >f12) //_LBB566_27
+{
+__label__ = 24;
+break _1;
+}
+else{
+	r9 = r12 >> 2;
+	f8 = heapFloat[(fp+-8)];
+	f19 = heapFloat[(r9+1)];
+	f20 = heapFloat[(r9+2)];
+	f21 = heapFloat[(fp+-43)];
+	f21 = f21*f13;
+	f22 = heapFloat[(fp+-44)];
+	f22 = f22*f14;
+	f23 = heapFloat[(fp+-33)];
+	f23 = f23*f8;
+	f24 = heapFloat[(fp+-34)];
+	f24 = f24*f19;
+	f25 = heapFloat[(fp+-42)];
+	f25 = f25*f13;
+	f26 = heapFloat[(fp+-45)];
+	f26 = f26*f14;
+	f27 = heapFloat[(fp+-36)];
+	f27 = f27*f8;
+	f28 = heapFloat[(fp+-37)];
+	f28 = f28*f19;
+	f21 = f21+f22;
+	f22 = heapFloat[(fp+-47)];
+	f22 = f22*f15;
+	f23 = f23+f24;
+	f24 = heapFloat[(fp+-35)];
+	f24 = f24*f20;
+	f25 = f25+f26;
+	f26 = f16*f15;
+	f27 = f27+f28;
+	f28 = heapFloat[(fp+-38)];
+	f28 = f28*f20;
+	f29 = heapFloat[(fp+-46)];
+	f13 = f29*f13;
+	f14 = f17*f14;
+	f29 = heapFloat[(fp+-39)];
+	f8 = f29*f8;
+	f29 = heapFloat[(fp+-40)];
+	f19 = f29*f19;
+	f21 = f21+f22;
+	f22 = f23+f24;
+	f23 = f25+f26;
+	f24 = f27+f28;
+	f13 = f13+f14;
+	f14 = f18*f15;
+	f8 = f8+f19;
+	f15 = heapFloat[(fp+-41)];
+	f15 = f15*f20;
+	f19 = f21+f0;
+	f20 = f22+f2;
+	f21 = f23+f4;
+	f22 = f24+f6;
+	f13 = f13+f14;
+	f8 = f8+f15;
+	f14 = f19-f20;
+	f15 = f21-f22;
+	f13 = f13+f3;
+	f23 = f8+f9;
+	f24 = f13-f23;
+	f8 = f1*f14;
+	f25 = f7*f15;
+	f8 = f8+f25;
+	f25 = f5*f24;
+	f25 = f8+f25;
+	f8 =                         0;
+	if(f25 >f8) //_LBB566_4
+{
+	f0 = heapFloat[(fp+-50)];
+	f0 = f1*f0;
+	f2 = heapFloat[(fp+-51)];
+	f2 = f7*f2;
+	f0 = f0+f2;
+	f2 = heapFloat[(fp+-52)];
+	f2 = f5*f2;
+	f0 = f0+f2;
+	f2 =  -1.4210854715202004e-014;
+	if(f0 >=f2) //_LBB566_27
+{
+__label__ = 24;
+break _1;
+}
+else{
+	f0 = f25/f0;
+	f11 = f11-f0;
+	f0 = heapFloat[(r5+12)];
+	f2 = heapFloat[(r5+13)];
+	f3 = heapFloat[(r5+14)];
+	f4 = heapFloat[(r6+12)];
+	f6 = heapFloat[(r6+13)];
+	f9 = heapFloat[(r6+14)];
+	f10 = heapFloat[(r1+12)];
+	f12 = f12-f11;
+	f25 = heapFloat[(r1+13)];
+	f26 = heapFloat[(r1+14)];
+	f27 = heapFloat[(r3+12)];
+	f28 = heapFloat[(r3+13)];
+	f29 = heapFloat[(r3+14)];
+	f10 = f10*f12;
+	f0 = f0*f11;
+	f25 = f25*f12;
+	f2 = f2*f11;
+	f26 = f26*f12;
+	f3 = f3*f11;
+	f27 = f27*f12;
+	f30 = f4*f11;
+	f28 = f28*f12;
+	f6 = f6*f11;
+	f12 = f29*f12;
+	f9 = f9*f11;
+	f0 = f10+f0;
+	f4 = f25+f2;
+	f3 = f26+f3;
+	f2 = f27+f30;
+	f6 = f28+f6;
+	f9 = f12+f9;
+	f10 = f1;
+	heapFloat[(fp+-48)] = f7;
+	heapFloat[(fp+-49)] = f5;
+}
+}
+	r9 = heap32[(r0+1)];
+	r10 = r9 >> 2;
+	r11 = heap32[(r10)];
+_10: do {
+	if(r11 >0) //_LBB566_8
+{
+	r12 = -12;
+	f1 = heapFloat[(r10+77)];
+	r13 = (r12 - r9)|0;
+	r14 = 0;
+	r15 = r11;
+	r12 = r14;
+_12: while(true){
+	r16 = -8;
+	r17 = -4;
+	r16 = (r16 - r13)|0;
+	r17 = (r17 - r13)|0;
+	r16 = r16 >> 2;
+	r17 = r17 >> 2;
+	r18 = (r14 - r13)|0;
+	r18 = r18 >> 2;
+	f5 = heapFloat[(r16)];
+	f7 = heapFloat[(r17)];
+	f5 = f14-f5;
+	f7 = f15-f7;
+	f12 = heapFloat[(r18)];
+	f12 = f24-f12;
+	f5 = f5*f5;
+	f7 = f7*f7;
+	f5 = f5+f7;
+	f7 = f12*f12;
+	f5 = f5+f7;
+	r15 = (r15 + -1)|0;
+	r12 = f5 > f1 ? r12 : r4;
+	r13 = (r13 + -16)|0;
+if(!(r15 !=0)) //_LBB566_9
+{
+break _10;
+}
+}
+}
+else{
+	r12 = r2;
+}
+} while(0);
+	f1 = heapFloat[(r10+76)];
+	if(f1 ==f8) //_LBB566_12
+{
+	f1 = heapFloat[(r10+75)];
+if(!(f24 !=f1)) //_LBB566_11
+{
+	f1 = heapFloat[(r10+74)];
+if(!(f15 !=f1)) //_LBB566_11
+{
+	f1 = heapFloat[(r10+73)];
+	r12 = f14 != f1 ? r12 : r4;
+}
+}
+}
+	r12 = r12 & 255;
+	if(r12 ==0) //_LBB566_17
+{
+	heapFloat[(r10+73)] = f14;
+	heapFloat[(r10+74)] = f15;
+	r11 = r11 << 4;
+	heapFloat[(r10+75)] = f24;
+	r11 = (r9 + r11)|0;
+	heap32[(r10+76)] = 0;
+	r11 = r11 >> 2;
+	heap8[r9+356] = r4;
+	heapFloat[(r11+1)] = f14;
+	heapFloat[(r11+2)] = f15;
+	heapFloat[(r11+3)] = f24;
+	heap32[(r11+4)] = 0;
+	r11 = heap32[(r10)];
+	r11 = r11 << 4;
+	r11 = (r9 + r11)|0;
+	r11 = r11 >> 2;
+	heapFloat[(r11+21)] = f19;
+	heapFloat[(r11+22)] = f21;
+	heapFloat[(r11+23)] = f13;
+	heap32[(r11+24)] = 0;
+	r11 = heap32[(r10)];
+	r11 = r11 << 4;
+	r9 = (r9 + r11)|0;
+	r9 = r9 >> 2;
+	heapFloat[(r9+41)] = f20;
+	heapFloat[(r9+42)] = f22;
+	heapFloat[(r9+43)] = f23;
+	heap32[(r9+44)] = 0;
+	r9 = heap32[(r10)];
+	r9 = (r9 + 1)|0;
+	heap32[(r10)] = r9;
+	r9 = heap32[(r0+1)];
+}
+	heap32[(g0)] = r9;
+	_ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7);
+	r10 = r_g0;
+	r9 = r9 >> 2;
+	f1 = heapFloat[(r9+69)];
+	f7 = heapFloat[(r9+70)];
+	f5 = heapFloat[(r9+71)];
+	if(r10 ==0) //_LBB566_20
+{
+continue _1;
+}
+else{
+	f8 = f1*f1;
+	f12 = f7*f7;
+	f8 = f8+f12;
+	f12 = f5*f5;
+	f8 = f8+f12;
+continue _1;
+}
+}
+}
+else{
+__label__ = 19;
+break _1;
+}
+}
+}
+if (__label__ == 19){
+	f0 = f10*f10;
+	f7 = heapFloat[(fp+-48)];
+	f1 = f7*f7;
+	f0 = f0+f1;
+	f1 = heapFloat[(fp+-49)];
+	f1 = f1*f1;
+	f0 = f0+f1;
+	r1 = r7 >> 2;
+	heapFloat[(r1+41)] = f11;
+	f1 =   1.4210854715202004e-014;
+	if(f0 <f1) //_LBB566_24
+{
+	heap32[(r1+33)] = 0;
+	heap32[(r1+34)] = 0;
+	f0 =                         0;
+	heap32[(r1+35)] = 0;
+	heap32[(r1+36)] = 0;
+	f2 = f0;
+	f1 = f0;
+}
+else{
+	heapFloat[(g0)] = f0;
+	f0 =                         1;
+	sqrtf(i7);
+	f0 = f0/f_g0;
+	f1 = f10*f0;
+	f7 = heapFloat[(fp+-48)];
+	f2 = f7*f0;
+	heapFloat[(r1+33)] = f1;
+	f11 = heapFloat[(fp+-49)];
+	f0 = f11*f0;
+	heapFloat[(r1+34)] = f2;
+	heapFloat[(r1+35)] = f0;
+	heap32[(r1+36)] = 0;
+}
+	f3 = heapFloat[(fp+-50)];
+	f1 = f1*f3;
+	f3 = heapFloat[(fp+-51)];
+	f2 = f2*f3;
+	f3 = heapFloat[(r1+43)];
+	f1 = f1+f2;
+	f2 = heapFloat[(fp+-52)];
+	f0 = f0*f2;
+	f0 = f1+f0;
+	f1 = -f3;
+if(!(f0 >=f1)) //_LBB566_27
+{
+	r0 = heap32[(r0+1)];
+	heap32[(g0)] = r0;
+	r0 = r0 >> 2;
+	_ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7);
+	f0 = heapFloat[(r0+68)];
+	f1 = heapFloat[(r0+67)];
+	f2 = heapFloat[(r0+66)];
+	heap32[(r1+37)] = heap32[(r0+65)];
+	heapFloat[(r1+38)] = f2;
+	heapFloat[(r1+39)] = f1;
+	heapFloat[(r1+40)] = f0;
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN22btVoronoiSimplexSolver12removeVertexEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	if(r2 >0) //_LBB567_2
+{
+	r3 = heap32[(fp+1)];
+	r2 = (r2 + -1)|0;
+	r3 = r3 << 4;
+	r4 = (r0 + 4)|0;
+	r5 = r2 << 4;
+	r6 = (r4 + r3)|0;
+	r4 = (r4 + r5)|0;
+	r5 = r6 >> 2;
+	r4 = r4 >> 2;
+	heap32[(r1)] = r2;
+	heap32[(r5)] = heap32[(r4)];
+	heap32[(r5+1)] = heap32[(r4+1)];
+	heap32[(r5+2)] = heap32[(r4+2)];
+	heap32[(r5+3)] = heap32[(r4+3)];
+	r2 = heap32[(r1)];
+	r4 = (r0 + 84)|0;
+	r2 = r2 << 4;
+	r5 = (r4 + r3)|0;
+	r2 = (r4 + r2)|0;
+	r4 = r5 >> 2;
+	r2 = r2 >> 2;
+	heap32[(r4)] = heap32[(r2)];
+	heap32[(r4+1)] = heap32[(r2+1)];
+	heap32[(r4+2)] = heap32[(r2+2)];
+	heap32[(r4+3)] = heap32[(r2+3)];
+	r1 = heap32[(r1)];
+	r0 = (r0 + 164)|0;
+	r1 = r1 << 4;
+	r2 = (r0 + r3)|0;
+	r0 = (r0 + r1)|0;
+	r1 = r2 >> 2;
+	r0 = r0 >> 2;
+	heap32[(r1)] = heap32[(r0)];
+	heap32[(r1+1)] = heap32[(r0+1)];
+	heap32[(r1+2)] = heap32[(r0+2)];
+	heap32[(r1+3)] = heap32[(r0+3)];
+	return;
+}
+else{
+	r0 = _2E_str457;
+	r1 = _2E_str1458;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 38;
+	_assert(i7);
+}
+}
+
+function _ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+4)];
+	r1 = heapU8[r0+16];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r4 = heap32[(fp+1)];
+	r1 = r1 & -16;
+	r5 = heap32[(fp)];
+	r2 = r2 >> 2;
+	heap8[r0+16] = r1;
+	r3 = r3 >> 2;
+	r5 = r5 >> 2;
+	r4 = r4 >> 2;
+	f0 = heapFloat[(r2+1)];
+	f1 = heapFloat[(r4+1)];
+	f2 = heapFloat[(r3+1)];
+	f3 = heapFloat[(r5+1)];
+	f4 = heapFloat[(r2)];
+	f5 = heapFloat[(r4)];
+	f6 = heapFloat[(r3)];
+	f7 = heapFloat[(r5)];
+	f8 = heapFloat[(r2+2)];
+	f9 = heapFloat[(r4+2)];
+	f10 = heapFloat[(r3+2)];
+	f11 = heapFloat[(r5+2)];
+	f12 = f0-f1;
+	f13 = f4-f5;
+	f14 = f6-f5;
+	f15 = f7-f5;
+	f16 = f2-f1;
+	f17 = f3-f1;
+	f18 = f8-f9;
+	f19 = f10-f9;
+	f20 = f11-f9;
+	f21 = f13*f15;
+	f22 = f12*f17;
+	f15 = f14*f15;
+	f17 = f16*f17;
+	f21 = f21+f22;
+	f22 = f18*f20;
+	f15 = f15+f17;
+	f17 = f19*f20;
+	f20 = f21+f22;
+	f15 = f15+f17;
+	f17 =                         0;
+if(!(f20 >f17)) //_LBB568_3
+{
+if(!(f15 >f17)) //_LBB568_3
+{
+	r2 = r0 >> 2;
+	heapFloat[(r2)] = f5;
+	heap32[(r2+1)] = heap32[(r4+1)];
+	heap32[(r2+2)] = heap32[(r4+2)];
+	r1 = r1 | 1;
+	heap32[(r2+3)] = heap32[(r4+3)];
+	heap8[r0+16] = r1;
+	heap32[(r2+5)] = 1065353216;
+	heap32[(r2+6)] = 0;
+	heap32[(r2+7)] = 0;
+	heap32[(r2+8)] = 0;
+	return;
+}
+}
+	f21 = f7-f4;
+	f22 = f3-f0;
+	f23 = f13*f21;
+	f24 = f12*f22;
+	f25 = f11-f8;
+	f21 = f14*f21;
+	f22 = f16*f22;
+	f23 = f23+f24;
+	f24 = f18*f25;
+	f21 = f21+f22;
+	f22 = f19*f25;
+	f23 = f23+f24;
+	f21 = f21+f22;
+	if(f23 <f17) //_LBB568_7
+{
+__label__ = 7;
+}
+else{
+	if(f21 >f23) //_LBB568_7
+{
+__label__ = 7;
+}
+else{
+	r3 = r0 >> 2;
+	heapFloat[(r3)] = f4;
+	heap32[(r3+1)] = heap32[(r2+1)];
+	heap32[(r3+2)] = heap32[(r2+2)];
+	r1 = r1 | 2;
+	heap32[(r3+3)] = heap32[(r2+3)];
+	heap8[r0+16] = r1;
+	heap32[(r3+5)] = 0;
+	heap32[(r3+6)] = 1065353216;
+__label__ = 6;
+}
+}
+_8: do {
+if (__label__ == 7){
+	f22 = f20*f21;
+	f24 = f23*f15;
+	f22 = f22-f24;
+if(!(f22 >f17)) //_LBB568_11
+{
+if(!(f20 <f17)) //_LBB568_11
+{
+if(!(f23 >f17)) //_LBB568_11
+{
+	f0 = f20-f23;
+	f0 = f20/f0;
+	f2 = f13*f0;
+	r3 = r0 >> 2;
+	f2 = f5+f2;
+	f3 = f12*f0;
+	f4 = f18*f0;
+	f1 = f1+f3;
+	heapFloat[(r3)] = f2;
+	f2 = f9+f4;
+	heapFloat[(r3+1)] = f1;
+	heapFloat[(r3+2)] = f2;
+	f1 =                         1;
+	r1 = r1 | 3;
+	heap32[(r3+3)] = 0;
+	f1 = f1-f0;
+	heap8[r0+16] = r1;
+	heapFloat[(r3+5)] = f1;
+	heapFloat[(r3+6)] = f0;
+break _8;
+}
+}
+}
+	f7 = f7-f6;
+	f3 = f3-f2;
+	f24 = f14*f7;
+	f25 = f16*f3;
+	f11 = f11-f10;
+	f7 = f13*f7;
+	f3 = f12*f3;
+	f24 = f24+f25;
+	f25 = f19*f11;
+	f3 = f7+f3;
+	f7 = f18*f11;
+	f11 = f24+f25;
+	f3 = f3+f7;
+if(!(f11 <f17)) //_LBB568_14
+{
+if(!(f3 >f11)) //_LBB568_14
+{
+	r2 = r0 >> 2;
+	heapFloat[(r2)] = f6;
+	heap32[(r2+1)] = heap32[(r3+1)];
+	heap32[(r2+2)] = heap32[(r3+2)];
+	r1 = r1 | 4;
+	heap32[(r2+3)] = heap32[(r3+3)];
+	heap8[r0+16] = r1;
+	heap32[(r2+5)] = 0;
+	heap32[(r2+6)] = 0;
+	heap32[(r2+7)] = 1065353216;
+	heap32[(r2+8)] = 0;
+	return;
+}
+}
+	f7 = f3*f15;
+	f20 = f20*f11;
+	f7 = f7-f20;
+	if(f7 >f17) //_LBB568_19
+{
+__label__ = 19;
+}
+else{
+	if(f15 <f17) //_LBB568_19
+{
+__label__ = 19;
+}
+else{
+	if(f11 >f17) //_LBB568_19
+{
+__label__ = 19;
+}
+else{
+	f0 = f15-f11;
+	f0 = f15/f0;
+	f2 = f14*f0;
+	r2 = r0 >> 2;
+	f2 = f5+f2;
+	f3 = f16*f0;
+	f4 = f19*f0;
+	f1 = f1+f3;
+	heapFloat[(r2)] = f2;
+	f2 = f9+f4;
+	heapFloat[(r2+1)] = f1;
+	heapFloat[(r2+2)] = f2;
+	f1 =                         1;
+	r1 = r1 | 5;
+	heap32[(r2+3)] = 0;
+	f1 = f1-f0;
+	heap8[r0+16] = r1;
+	heapFloat[(r2+5)] = f1;
+	heap32[(r2+6)] = 0;
+__label__ = 18;
+}
+}
+}
+if (__label__ == 19){
+	f15 = f23*f11;
+	f20 = f3*f21;
+	f15 = f15-f20;
+if(!(f15 >f17)) //_LBB568_23
+{
+	f20 = f21-f23;
+if(!(f20 <f17)) //_LBB568_23
+{
+	f3 = f3-f11;
+if(!(f3 <f17)) //_LBB568_23
+{
+	f1 = f20+f3;
+	f1 = f20/f1;
+	f5 = f6-f4;
+	f7 = f2-f0;
+	f5 = f5*f1;
+	f9 = f10-f8;
+	f7 = f7*f1;
+	r2 = r0 >> 2;
+	f5 = f4+f5;
+	f9 = f9*f1;
+	f7 = f0+f7;
+	heapFloat[(r2)] = f5;
+	f5 = f8+f9;
+	heapFloat[(r2+1)] = f7;
+	heapFloat[(r2+2)] = f5;
+	r1 = r1 | 6;
+	heap32[(r2+3)] = 0;
+	f5 =                         1;
+	heap8[r0+16] = r1;
+	f5 = f5-f1;
+	heap32[(r2+5)] = 0;
+	heapFloat[(r2+6)] = f5;
+	heapFloat[(r2+7)] = f1;
+	heap32[(r2+8)] = 0;
+	return;
+}
+}
+}
+	f0 = f15+f7;
+	f0 = f0+f22;
+	f2 =                         1;
+	f0 = f2/f0;
+	f3 = f7*f0;
+	f0 = f22*f0;
+	f4 = f13*f3;
+	f6 = f12*f3;
+	f4 = f5+f4;
+	f5 = f14*f0;
+	r2 = r0 >> 2;
+	f4 = f4+f5;
+	f5 = f18*f3;
+	f1 = f1+f6;
+	f6 = f16*f0;
+	f5 = f9+f5;
+	f7 = f19*f0;
+	f1 = f1+f6;
+	heapFloat[(r2)] = f4;
+	f4 = f5+f7;
+	heapFloat[(r2+1)] = f1;
+	heapFloat[(r2+2)] = f4;
+	f1 = f2-f3;
+	r1 = r1 | 7;
+	heap32[(r2+3)] = 0;
+	f1 = f1-f0;
+	heap8[r0+16] = r1;
+	heapFloat[(r2+5)] = f1;
+	heapFloat[(r2+6)] = f3;
+}
+	heapFloat[(r2+7)] = f0;
+	heap32[(r2+8)] = 0;
+	return;
+}
+} while(0);
+	heap32[(r3+7)] = 0;
+	heap32[(r3+8)] = 0;
+	return;
+}
+
+function _ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	f0 = heapFloat[(fp+5)];
+	f1 = heapFloat[(fp+8)];
+	f2 = heapFloat[(fp+11)];
+	f3 = heapFloat[(fp+4)];
+	f4 = heapFloat[(fp+10)];
+	f5 = heapFloat[(fp+7)];
+	f6 = heapFloat[(fp+3)];
+	f7 = heapFloat[(fp+6)];
+	f8 = heapFloat[(fp+9)];
+	f1 = f1-f0;
+	f4 = f4-f3;
+	f7 = f7-f6;
+	f2 = f2-f0;
+	f5 = f5-f3;
+	f8 = f8-f6;
+	f9 = heapFloat[(fp+12)];
+	f10 = heapFloat[(fp+13)];
+	f11 = f5*f2;
+	f12 = f1*f4;
+	f1 = f1*f8;
+	f2 = f7*f2;
+	f11 = f11-f12;
+	f9 = f9-f6;
+	f1 = f1-f2;
+	f2 = f10-f3;
+	f10 = heapFloat[(fp+14)];
+	f4 = f7*f4;
+	f5 = f5*f8;
+	f4 = f4-f5;
+	f5 = f10-f0;
+	f7 = f9*f11;
+	f2 = f2*f1;
+	f2 = f7+f2;
+	f5 = f5*f4;
+	f2 = f2+f5;
+	f5 = f2*f2;
+	f7 =   9.9999990510468706e-009;
+	if(f5 <f7) //_LBB569_2
+{
+	r0 = -1;
+	r_g0 = r0;
+	return;
+}
+else{
+	f5 = heapFloat[(fp)];
+	f7 = heapFloat[(fp+1)];
+	f8 = heapFloat[(fp+2)];
+	f5 = f5-f6;
+	f3 = f7-f3;
+	f5 = f5*f11;
+	f1 = f3*f1;
+	f0 = f8-f0;
+	f1 = f5+f1;
+	f0 = f0*f4;
+	f0 = f1+f0;
+	f0 = f0*f2;
+	f1 =                         0;
+	r0 = f0 < f1;
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r3 = heap32[(fp+1)];
+	if(r2 >3) //_LBB570_2
+{
+	r2 = heapU8[r3];
+	r4 = r2 & 8;
+	if(r4 ==0) //_LBB570_4
+{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 3;
+	_ZN22btVoronoiSimplexSolver12removeVertexEi(i7);
+	r2 = heap32[(r1)];
+__label__ = 3;
+}
+else{
+__label__ = 5;
+}
+}
+else{
+__label__ = 3;
+}
+if (__label__ == 3){
+	if(r2 >2) //_LBB570_7
+{
+	r2 = heapU8[r3];
+__label__ = 5;
+}
+else{
+__label__ = 7;
+}
+}
+if (__label__ == 5){
+	r4 = r2 & 4;
+	if(r4 ==0) //_LBB570_10
+{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 2;
+	_ZN22btVoronoiSimplexSolver12removeVertexEi(i7);
+	r2 = heap32[(r1)];
+__label__ = 7;
+}
+else{
+__label__ = 9;
+}
+}
+if (__label__ == 7){
+	if(r2 >1) //_LBB570_13
+{
+	r2 = heapU8[r3];
+__label__ = 9;
+}
+else{
+__label__ = 11;
+}
+}
+if (__label__ == 9){
+	r4 = r2 & 2;
+	if(r4 ==0) //_LBB570_16
+{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 1;
+	_ZN22btVoronoiSimplexSolver12removeVertexEi(i7);
+	r2 = heap32[(r1)];
+__label__ = 11;
+}
+else{
+__label__ = 13;
+}
+}
+if (__label__ == 11){
+	if(r2 <1) //_LBB570_20
+{
+__label__ = 14;
+}
+else{
+	r2 = heapU8[r3];
+__label__ = 13;
+}
+}
+if (__label__ == 13){
+	r1 = r2 & 1;
+	if(r1 ==0) //_LBB570_21
+{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	_ZN22btVoronoiSimplexSolver12removeVertexEi(i7);
+	return;
+}
+}
+	return;
+}
+
+function _ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+var __label__ = 0;
+	i7 = sp + -136;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+356];
+	if(r1 !=0) //_LBB571_2
+{
+	r1 = 0;
+	r2 = r0 >> 2;
+	heap8[r0+352] = r1;
+	heap32[(r2+84)] = 0;
+	heap32[(r2+85)] = 0;
+	heap32[(r2+86)] = 0;
+	heap32[(r2+87)] = 0;
+	r3 = heapU8[r0+332];
+	r4 = r3 & -16;
+	heap8[r0+332] = r4;
+	heap8[r0+356] = r1;
+	r5 = heap32[(r2)];
+_3: do {
+	if(r5 >1) //_LBB571_5
+{
+_5: do {
+	if(r5 ==2) //_LBB571_11
+{
+	f0 =                         0;
+	f1 = heapFloat[(r2+2)];
+	f2 = heapFloat[(r2+6)];
+	f3 = heapFloat[(r2+1)];
+	f4 = heapFloat[(r2+5)];
+	f5 = heapFloat[(r2+3)];
+	f6 = heapFloat[(r2+7)];
+	f2 = f2-f1;
+	f1 = f0-f1;
+	f4 = f4-f3;
+	f3 = f0-f3;
+	f6 = f6-f5;
+	f5 = f0-f5;
+	f3 = f4*f3;
+	f1 = f2*f1;
+	f1 = f3+f1;
+	f3 = f6*f5;
+	f1 = f1+f3;
+	if(f1 <=f0) //_LBB571_15
+{
+	r1 = r4 | 1;
+	heap8[r0+332] = r1;
+	f1 = f0;
+}
+else{
+	f3 = f4*f4;
+	f2 = f2*f2;
+	f2 = f3+f2;
+	f3 = f6*f6;
+	f2 = f2+f3;
+	if(f1 >=f2) //_LBB571_14
+{
+	f1 =                         1;
+	r1 = r4 | 2;
+	heap8[r0+332] = r1;
+}
+else{
+	f1 = f1/f2;
+	r1 = r4 | 3;
+	heap8[r0+332] = r1;
+}
+}
+	f2 =                         1;
+	f2 = f2-f1;
+	heapFloat[(r2+84)] = f2;
+	heapFloat[(r2+85)] = f1;
+	heap32[(r2+86)] = 0;
+	heap32[(r2+87)] = 0;
+	f2 = heapFloat[(r2+25)];
+	f3 = heapFloat[(r2+21)];
+	f2 = f2-f3;
+	f4 = heapFloat[(r2+26)];
+	f5 = heapFloat[(r2+22)];
+	f4 = f4-f5;
+	f2 = f2*f1;
+	f6 = heapFloat[(r2+27)];
+	f7 = heapFloat[(r2+23)];
+	f6 = f6-f7;
+	f4 = f4*f1;
+	f2 = f3+f2;
+	f3 = f6*f1;
+	f4 = f5+f4;
+	heapFloat[(r2+61)] = f2;
+	f3 = f7+f3;
+	heapFloat[(r2+62)] = f4;
+	heapFloat[(r2+63)] = f3;
+	heap32[(r2+64)] = 0;
+	f5 = heapFloat[(r2+45)];
+	f6 = heapFloat[(r2+41)];
+	f5 = f5-f6;
+	f7 = heapFloat[(r2+46)];
+	f8 = heapFloat[(r2+42)];
+	f7 = f7-f8;
+	f5 = f5*f1;
+	f9 = heapFloat[(r2+47)];
+	f10 = heapFloat[(r2+43)];
+	f9 = f9-f10;
+	f7 = f7*f1;
+	f5 = f6+f5;
+	f1 = f9*f1;
+	f6 = f8+f7;
+	heapFloat[(r2+65)] = f5;
+	f1 = f10+f1;
+	heapFloat[(r2+66)] = f6;
+	heapFloat[(r2+67)] = f1;
+	f2 = f2-f5;
+	heap32[(r2+68)] = 0;
+	f4 = f4-f6;
+	heapFloat[(r2+69)] = f2;
+	f1 = f3-f1;
+	heapFloat[(r2+70)] = f4;
+	heapFloat[(r2+71)] = f1;
+	heap32[(r2+72)] = 0;
+	r1 = (r0 + 332)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	_ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i7);
+	f1 = heapFloat[(r2+84)];
+	if(f1 >=f0) //_LBB571_18
+{
+	f0 = heapFloat[(r2+85)];
+	f1 =                         0;
+if(!(f0 <f1)) //_LBB571_17
+{
+	f0 = heapFloat[(r2+86)];
+if(!(f0 <f1)) //_LBB571_17
+{
+	f0 = heapFloat[(r2+87)];
+	r1 = f0 >= f1;
+	r1 = r1 & 1;
+break _5;
+}
+}
+}
+	r1 = 0;
+}
+else{
+	if(r5 ==3) //_LBB571_22
+{
+	r1 = sp + -56;
+	r3 = r1 >> 2;
+	heap32[(fp+-14)] = 0;
+	heap32[(r3+1)] = 0;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 0;
+	r3 = (r0 + 4)|0;
+	r4 = (r0 + 20)|0;
+	r5 = (r0 + 36)|0;
+	r6 = (r0 + 316)|0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	heap32[(g0+4)] = r6;
+	_ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7);
+	f0 = heapFloat[(r2+85)];
+	f1 = heapFloat[(r2+25)];
+	f2 = heapFloat[(r2+84)];
+	f3 = heapFloat[(r2+21)];
+	f4 = heapFloat[(r2+26)];
+	f5 = heapFloat[(r2+22)];
+	f3 = f3*f2;
+	f1 = f1*f0;
+	f6 = heapFloat[(r2+86)];
+	f7 = heapFloat[(r2+29)];
+	f8 = heapFloat[(r2+31)];
+	f9 = heapFloat[(r2+30)];
+	f10 = heapFloat[(r2+27)];
+	f11 = heapFloat[(r2+23)];
+	f5 = f5*f2;
+	f4 = f4*f0;
+	f1 = f3+f1;
+	f3 = f7*f6;
+	f7 = f11*f2;
+	f10 = f10*f0;
+	f4 = f5+f4;
+	f5 = f9*f6;
+	f1 = f1+f3;
+	f3 = f7+f10;
+	f7 = f8*f6;
+	f4 = f4+f5;
+	heapFloat[(r2+61)] = f1;
+	f3 = f3+f7;
+	heapFloat[(r2+62)] = f4;
+	heapFloat[(r2+63)] = f3;
+	heap32[(r2+64)] = 0;
+	f5 = heapFloat[(r2+45)];
+	f7 = heapFloat[(r2+41)];
+	f8 = heapFloat[(r2+49)];
+	f9 = heapFloat[(r2+46)];
+	f10 = heapFloat[(r2+42)];
+	f7 = f7*f2;
+	f5 = f5*f0;
+	f11 = heapFloat[(r2+51)];
+	f12 = heapFloat[(r2+50)];
+	f13 = heapFloat[(r2+47)];
+	f14 = heapFloat[(r2+43)];
+	f10 = f10*f2;
+	f9 = f9*f0;
+	f5 = f7+f5;
+	f7 = f8*f6;
+	f5 = f5+f7;
+	f2 = f14*f2;
+	f0 = f13*f0;
+	f7 = f10+f9;
+	f8 = f12*f6;
+	f7 = f7+f8;
+	heapFloat[(r2+65)] = f5;
+	f0 = f2+f0;
+	f2 = f11*f6;
+	f0 = f0+f2;
+	heapFloat[(r2+66)] = f7;
+	heapFloat[(r2+67)] = f0;
+	f1 = f1-f5;
+	heap32[(r2+68)] = 0;
+	f2 = f4-f7;
+	heapFloat[(r2+69)] = f1;
+	f0 = f3-f0;
+	heapFloat[(r2+70)] = f2;
+	heapFloat[(r2+71)] = f0;
+	heap32[(r2+72)] = 0;
+	r1 = (r0 + 332)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	_ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i7);
+	f0 = heapFloat[(r2+84)];
+	f1 =                         0;
+	if(f0 >=f1) //_LBB571_24
+{
+	f0 = heapFloat[(r2+85)];
+if(!(f0 <f1)) //_LBB571_23
+{
+	f0 = heapFloat[(r2+86)];
+if(!(f0 <f1)) //_LBB571_23
+{
+	f0 = heapFloat[(r2+87)];
+	r1 = f0 >= f1;
+	r1 = r1 & 1;
+break _5;
+}
+}
+}
+	r1 = 0;
+}
+else{
+	if(r5 ==4) //_LBB571_28
+{
+	r4 = sp + -72;
+	r5 = r4 >> 2;
+	heap32[(fp+-18)] = 0;
+	heap32[(r5+1)] = 0;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+	heap8[sp+-24] = r1;
+	heap32[(r2+79)] = 0;
+	heap32[(r2+80)] = 0;
+	heap32[(r2+81)] = 0;
+	r3 = r3 | 15;
+	heap32[(r2+82)] = 0;
+	heap8[r0+332] = r3;
+	f0 = heapFloat[(r2+11)];
+	f1 = heapFloat[(r2+7)];
+	f2 = heapFloat[(r2+15)];
+	f3 = heapFloat[(r2+1)];
+	f4 = heapFloat[(r2+2)];
+	f5 = heapFloat[(r2+3)];
+	f6 = heapFloat[(r2+5)];
+	f7 = heapFloat[(r2+6)];
+	f8 = heapFloat[(r2+9)];
+	f9 = heapFloat[(r2+10)];
+	f10 = heapFloat[(r2+13)];
+	f11 = heapFloat[(r2+14)];
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 0;
+	heapFloat[(g0+3)] = f3;
+	heapFloat[(g0+4)] = f4;
+	heapFloat[(g0+5)] = f5;
+	heapFloat[(g0+6)] = f6;
+	heapFloat[(g0+7)] = f7;
+	heapFloat[(g0+8)] = f1;
+	heapFloat[(g0+9)] = f8;
+	heapFloat[(g0+10)] = f9;
+	heapFloat[(g0+11)] = f0;
+	heapFloat[(g0+12)] = f10;
+	heapFloat[(g0+13)] = f11;
+	heapFloat[(g0+14)] = f2;
+	_ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7);
+	r3 = r_g0;
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 0;
+	heapFloat[(g0+3)] = f3;
+	heapFloat[(g0+4)] = f4;
+	heapFloat[(g0+5)] = f5;
+	heapFloat[(g0+6)] = f8;
+	heapFloat[(g0+7)] = f9;
+	heapFloat[(g0+8)] = f0;
+	heapFloat[(g0+9)] = f10;
+	heapFloat[(g0+10)] = f11;
+	heapFloat[(g0+11)] = f2;
+	heapFloat[(g0+12)] = f6;
+	heapFloat[(g0+13)] = f7;
+	heapFloat[(g0+14)] = f1;
+	_ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7);
+	r6 = r_g0;
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 0;
+	heapFloat[(g0+3)] = f3;
+	heapFloat[(g0+4)] = f4;
+	heapFloat[(g0+5)] = f5;
+	heapFloat[(g0+6)] = f10;
+	heapFloat[(g0+7)] = f11;
+	heapFloat[(g0+8)] = f2;
+	heapFloat[(g0+9)] = f6;
+	heapFloat[(g0+10)] = f7;
+	heapFloat[(g0+11)] = f1;
+	heapFloat[(g0+12)] = f8;
+	heapFloat[(g0+13)] = f9;
+	heapFloat[(g0+14)] = f0;
+	_ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7);
+	r7 = r_g0;
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 0;
+	heapFloat[(g0+3)] = f6;
+	heapFloat[(g0+4)] = f7;
+	heapFloat[(g0+5)] = f1;
+	heapFloat[(g0+6)] = f10;
+	heapFloat[(g0+7)] = f11;
+	heapFloat[(g0+8)] = f2;
+	heapFloat[(g0+9)] = f8;
+	heapFloat[(g0+10)] = f9;
+	heapFloat[(g0+11)] = f0;
+	heapFloat[(g0+12)] = f3;
+	heapFloat[(g0+13)] = f4;
+	heapFloat[(g0+14)] = f5;
+	r8 = r6 | r3;
+	_ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7);
+	r9 = r_g0;
+if(!(r8 <0)) //_LBB571_52
+{
+	r10 = r9 | r7;
+if(!(r10 <0)) //_LBB571_52
+{
+	r8 = r8 | r7;
+	r8 = r8 | r9;
+	if(r8 ==0) //_LBB571_53
+{
+	r1 = 1;
+	heap8[r0+312] = r1;
+	heap32[(r2+69)] = 0;
+	heap32[(r2+70)] = 0;
+	heap32[(r2+71)] = 0;
+	heap32[(r2+72)] = 0;
+	r_g0 = r1;
+	return;
+}
+else{
+	r8 = (r0 + 4)|0;
+	r10 = (r0 + 20)|0;
+	r11 = (r0 + 36)|0;
+	r12 = (r0 + 52)|0;
+	if(r3 !=0) //_LBB571_33
+{
+	r3 = sp + -40;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r11;
+	heap32[(g0+4)] = r3;
+	_ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7);
+	r3 = r3 >> 2;
+	f1 = heapFloat[(fp+-10)];
+	f0 = heapFloat[(fp+-18)];
+	f2 = heapFloat[(r3+1)];
+	f3 = heapFloat[(r5+1)];
+	f0 = f1-f0;
+	f3 = f2-f3;
+	f4 = heapFloat[(r3+2)];
+	f5 = heapFloat[(r5+2)];
+	f5 = f4-f5;
+	f0 = f0*f0;
+	f3 = f3*f3;
+	f0 = f0+f3;
+	f3 = f5*f5;
+	f0 = f0+f3;
+	f3 =   3.4028234663852886e+038;
+	if(f0 >=f3) //_LBB571_32
+{
+__label__ = 31;
+}
+else{
+	f3 = heapFloat[(r3+3)];
+	heapFloat[(r2+79)] = f1;
+	heapFloat[(r2+80)] = f2;
+	heapFloat[(r2+81)] = f4;
+	heapFloat[(r2+82)] = f3;
+	r13 = heapU8[sp+-24];
+	r14 = heapU8[r0+332];
+	r15 = r13 & 1;
+	r14 = r14 & 240;
+	r14 = r15 | r14;
+	r15 = r13 & 2;
+	r14 = r14 | r15;
+	r13 = r13 & 4;
+	r13 = r14 | r13;
+	heap8[r0+332] = r13;
+	f1 = heapFloat[(r3+7)];
+	f2 = heapFloat[(r3+6)];
+	heap32[(r2+84)] = heap32[(r3+5)];
+	heapFloat[(r2+85)] = f2;
+	heapFloat[(r2+86)] = f1;
+	heap32[(r2+87)] = 0;
+__label__ = 34;
+}
+}
+else{
+__label__ = 31;
+}
+if (__label__ == 31){
+	f0 =   3.4028234663852886e+038;
+}
+	if(r6 !=0) //_LBB571_37
+{
+	r3 = sp + -40;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r11;
+	heap32[(g0+3)] = r12;
+	heap32[(g0+4)] = r3;
+	_ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7);
+	r3 = r3 >> 2;
+	f1 = heapFloat[(fp+-10)];
+	f2 = heapFloat[(fp+-18)];
+	f3 = heapFloat[(r3+1)];
+	f4 = heapFloat[(r5+1)];
+	f2 = f1-f2;
+	f4 = f3-f4;
+	f5 = heapFloat[(r3+2)];
+	f6 = heapFloat[(r5+2)];
+	f6 = f5-f6;
+	f2 = f2*f2;
+	f4 = f4*f4;
+	f2 = f2+f4;
+	f4 = f6*f6;
+	f2 = f2+f4;
+if(!(f2 >=f0)) //_LBB571_36
+{
+	f0 = heapFloat[(r3+3)];
+	heapFloat[(r2+79)] = f1;
+	heapFloat[(r2+80)] = f3;
+	heapFloat[(r2+81)] = f5;
+	heapFloat[(r2+82)] = f0;
+	r6 = heapU8[sp+-24];
+	r13 = heapU8[r0+332];
+	r14 = r6 << 1;
+	r6 = r6 & 1;
+	r13 = r13 & 240;
+	r6 = r6 | r13;
+	r13 = r14 & 4;
+	r6 = r6 | r13;
+	r13 = r14 & 8;
+	r6 = r6 | r13;
+	heap8[r0+332] = r6;
+	f0 = heapFloat[(r3+7)];
+	f1 = heapFloat[(r3+6)];
+	heap32[(r2+84)] = heap32[(r3+5)];
+	heap32[(r2+85)] = 0;
+	heapFloat[(r2+86)] = f1;
+	heapFloat[(r2+87)] = f0;
+	f0 = f2;
+}
+}
+	if(r7 !=0) //_LBB571_41
+{
+	r3 = sp + -40;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r12;
+	heap32[(g0+3)] = r10;
+	heap32[(g0+4)] = r3;
+	_ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7);
+	r3 = r3 >> 2;
+	f1 = heapFloat[(fp+-10)];
+	f2 = heapFloat[(fp+-18)];
+	f3 = heapFloat[(r3+1)];
+	f4 = heapFloat[(r5+1)];
+	f2 = f1-f2;
+	f4 = f3-f4;
+	f5 = heapFloat[(r3+2)];
+	f6 = heapFloat[(r5+2)];
+	f6 = f5-f6;
+	f2 = f2*f2;
+	f4 = f4*f4;
+	f2 = f2+f4;
+	f4 = f6*f6;
+	f2 = f2+f4;
+if(!(f2 >=f0)) //_LBB571_40
+{
+	f0 = heapFloat[(r3+3)];
+	heapFloat[(r2+79)] = f1;
+	heapFloat[(r2+80)] = f3;
+	heapFloat[(r2+81)] = f5;
+	heapFloat[(r2+82)] = f0;
+	r6 = heapU8[sp+-24];
+	r7 = heapU8[r0+332];
+	r8 = r6 >>> 1;
+	r13 = r6 & 1;
+	r7 = r7 & 240;
+	r6 = r6 << 2;
+	r7 = r13 | r7;
+	r8 = r8 & 2;
+	r7 = r7 | r8;
+	r6 = r6 & 8;
+	r6 = r7 | r6;
+	heap8[r0+332] = r6;
+	f0 = heapFloat[(r3+6)];
+	f1 = heapFloat[(r3+7)];
+	heap32[(r2+84)] = heap32[(r3+5)];
+	heapFloat[(r2+85)] = f1;
+	heap32[(r2+86)] = 0;
+	heapFloat[(r2+87)] = f0;
+	f0 = f2;
+}
+}
+if(!(r9 ==0)) //_LBB571_46
+{
+	r3 = sp + -40;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r12;
+	heap32[(g0+3)] = r11;
+	heap32[(g0+4)] = r3;
+	_ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7);
+	r3 = r3 >> 2;
+	f1 = heapFloat[(fp+-10)];
+	f2 = heapFloat[(fp+-18)];
+	f3 = heapFloat[(r3+1)];
+	f4 = heapFloat[(r5+1)];
+	f2 = f1-f2;
+	f4 = f3-f4;
+	f5 = heapFloat[(r3+2)];
+	f6 = heapFloat[(r5+2)];
+	f6 = f5-f6;
+	f2 = f2*f2;
+	f4 = f4*f4;
+	f2 = f2+f4;
+	f4 = f6*f6;
+	f2 = f2+f4;
+if(!(f2 >=f0)) //_LBB571_46
+{
+	f0 = heapFloat[(r3+3)];
+	heapFloat[(r2+79)] = f1;
+	heapFloat[(r2+80)] = f3;
+	heapFloat[(r2+81)] = f5;
+	heapFloat[(r2+82)] = f0;
+	r4 = heapU8[sp+-24];
+	r5 = heapU8[r0+332];
+	r6 = r4 << 1;
+	r6 = r6 & 2;
+	r5 = r5 & 240;
+	r7 = r4 << 2;
+	r5 = r6 | r5;
+	r4 = r4 & 4;
+	r4 = r5 | r4;
+	r5 = r7 & 8;
+	r4 = r4 | r5;
+	heap8[r0+332] = r4;
+	f0 = heapFloat[(r3+6)];
+	f1 = heapFloat[(r3+7)];
+	f2 = heapFloat[(r3+5)];
+	heap32[(r2+84)] = 0;
+	heapFloat[(r2+85)] = f2;
+	heapFloat[(r2+86)] = f1;
+	heapFloat[(r2+87)] = f0;
+}
+}
+	f0 = heapFloat[(r2+85)];
+	f1 = heapFloat[(r2+25)];
+	f2 = heapFloat[(r2+84)];
+	f3 = heapFloat[(r2+21)];
+	f4 = heapFloat[(r2+26)];
+	f5 = heapFloat[(r2+22)];
+	f3 = f3*f2;
+	f1 = f1*f0;
+	f6 = heapFloat[(r2+86)];
+	f7 = heapFloat[(r2+29)];
+	f8 = heapFloat[(r2+30)];
+	f9 = heapFloat[(r2+27)];
+	f10 = heapFloat[(r2+23)];
+	f5 = f5*f2;
+	f4 = f4*f0;
+	f1 = f3+f1;
+	f3 = f7*f6;
+	f7 = heapFloat[(r2+87)];
+	f11 = heapFloat[(r2+33)];
+	f12 = heapFloat[(r2+35)];
+	f13 = heapFloat[(r2+34)];
+	f14 = heapFloat[(r2+31)];
+	f10 = f10*f2;
+	f9 = f9*f0;
+	f4 = f5+f4;
+	f5 = f8*f6;
+	f1 = f1+f3;
+	f3 = f11*f7;
+	f8 = f10+f9;
+	f9 = f14*f6;
+	f4 = f4+f5;
+	f5 = f13*f7;
+	f1 = f1+f3;
+	f3 = f8+f9;
+	f8 = f12*f7;
+	f4 = f4+f5;
+	heapFloat[(r2+61)] = f1;
+	f3 = f3+f8;
+	heapFloat[(r2+62)] = f4;
+	heapFloat[(r2+63)] = f3;
+	heap32[(r2+64)] = 0;
+	f5 = heapFloat[(r2+45)];
+	f8 = heapFloat[(r2+41)];
+	f9 = heapFloat[(r2+49)];
+	f10 = heapFloat[(r2+46)];
+	f11 = heapFloat[(r2+42)];
+	f8 = f8*f2;
+	f5 = f5*f0;
+	f12 = heapFloat[(r2+53)];
+	f13 = heapFloat[(r2+50)];
+	f14 = heapFloat[(r2+47)];
+	f15 = heapFloat[(r2+43)];
+	f11 = f11*f2;
+	f10 = f10*f0;
+	f5 = f8+f5;
+	f8 = f9*f6;
+	f9 = heapFloat[(r2+55)];
+	f16 = heapFloat[(r2+54)];
+	f17 = heapFloat[(r2+51)];
+	f2 = f15*f2;
+	f0 = f14*f0;
+	f10 = f11+f10;
+	f11 = f13*f6;
+	f5 = f5+f8;
+	f8 = f12*f7;
+	f5 = f5+f8;
+	f0 = f2+f0;
+	f2 = f17*f6;
+	f6 = f10+f11;
+	f8 = f16*f7;
+	f6 = f6+f8;
+	heapFloat[(r2+65)] = f5;
+	f0 = f0+f2;
+	f2 = f9*f7;
+	f0 = f0+f2;
+	heapFloat[(r2+66)] = f6;
+	heapFloat[(r2+67)] = f0;
+	f1 = f1-f5;
+	heap32[(r2+68)] = 0;
+	f2 = f4-f6;
+	heapFloat[(r2+69)] = f1;
+	f0 = f3-f0;
+	heapFloat[(r2+70)] = f2;
+	heapFloat[(r2+71)] = f0;
+	heap32[(r2+72)] = 0;
+	r3 = (r0 + 332)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	_ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i7);
+	f0 = heapFloat[(r2+84)];
+	f1 =                         0;
+	if(f0 >=f1) //_LBB571_48
+{
+	f0 = heapFloat[(r2+85)];
+	if(f0 <f1) //_LBB571_47
+{
+break _5;
+}
+else{
+	f0 = heapFloat[(r2+86)];
+	if(f0 <f1) //_LBB571_47
+{
+break _5;
+}
+else{
+	f0 = heapFloat[(r2+87)];
+	r1 = f0 >= f1;
+	r1 = r1 & 1;
+break _5;
+}
+}
+}
+else{
+break _5;
+}
+}
+}
+}
+	r2 = 1;
+	heap8[r0+352] = r2;
+	r2 = 0;
+	heap8[r0+312] = r2;
+	r_g0 = r2;
+	return;
+}
+else{
+__label__ = 8;
+break _3;
+}
+}
+}
+} while(0);
+	heap8[r0+312] = r1;
+	r0 = r1 & 255;
+	r_g0 = r0;
+	return;
+}
+else{
+	if(r5 ==0) //_LBB571_8
+{
+__label__ = 8;
+}
+else{
+	if(r5 ==1) //_LBB571_10
+{
+	f0 = heapFloat[(r2+21)];
+	heapFloat[(r2+61)] = f0;
+	f1 = heapFloat[(r2+22)];
+	heapFloat[(r2+62)] = f1;
+	f2 = heapFloat[(r2+23)];
+	heapFloat[(r2+63)] = f2;
+	heap32[(r2+64)] = heap32[(r2+24)];
+	f3 = heapFloat[(r2+41)];
+	heapFloat[(r2+65)] = f3;
+	f4 = heapFloat[(r2+42)];
+	heapFloat[(r2+66)] = f4;
+	f5 = heapFloat[(r2+43)];
+	heapFloat[(r2+67)] = f5;
+	f0 = f0-f3;
+	heap32[(r2+68)] = heap32[(r2+44)];
+	f1 = f1-f4;
+	heapFloat[(r2+69)] = f0;
+	f0 = f2-f5;
+	heapFloat[(r2+70)] = f1;
+	heapFloat[(r2+71)] = f0;
+	r1 = 0;
+	heap32[(r2+72)] = 0;
+	heap8[r0+352] = r1;
+	heap8[r0+332] = r4;
+	heap32[(r2+84)] = 1065353216;
+	heap32[(r2+85)] = 0;
+	heap32[(r2+86)] = 0;
+	heap32[(r2+87)] = 0;
+	r1 = 1;
+__label__ = 9;
+}
+else{
+__label__ = 8;
+}
+}
+}
+} while(0);
+if (__label__ == 8){
+	r1 = 0;
+}
+	heap8[r0+312] = r1;
+	r_g0 = r1;
+	return;
+}
+else{
+	r0 = heapU8[r0+312];
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp)];
+	f0 = heapFloat[(r0+10)];
+	r1 = r1 >> 2;
+	f1 = heapFloat[(r1+1)];
+	if(f0 <=f1) //_LBB574_2
+{
+	r2 = heap32[(fp+2)];
+	heapFloat[(r1+1)] = f0;
+	r3 = heap32[(r0)];
+	heap32[(r1+19)] = r3;
+	if(r2 ==0) //_LBB574_4
+{
+	r2 = r3 >> 2;
+	f0 = heapFloat[(r0+2)];
+	f1 = heapFloat[(r2+1)];
+	f2 = heapFloat[(r0+3)];
+	f3 = heapFloat[(r2+2)];
+	f4 = heapFloat[(r2+5)];
+	f5 = heapFloat[(r2+6)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r0+4)];
+	f7 = heapFloat[(r2+3)];
+	f8 = heapFloat[(r2+9)];
+	f9 = heapFloat[(r2+10)];
+	f10 = heapFloat[(r2+11)];
+	f11 = heapFloat[(r2+7)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f11*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	f2 = f10*f6;
+	f3 = f4+f5;
+	heapFloat[(r1+11)] = f1;
+	f0 = f0+f2;
+	heapFloat[(r1+12)] = f3;
+	heapFloat[(r1+13)] = f0;
+	heap32[(r1+14)] = 0;
+}
+else{
+	heap32[(r1+11)] = heap32[(r0+2)];
+	heap32[(r1+12)] = heap32[(r0+3)];
+	heap32[(r1+13)] = heap32[(r0+4)];
+	heap32[(r1+14)] = heap32[(r0+5)];
+}
+	heap32[(r1+15)] = heap32[(r0+6)];
+	heap32[(r1+16)] = heap32[(r0+7)];
+	heap32[(r1+17)] = heap32[(r0+8)];
+	heap32[(r1+18)] = heap32[(r0+9)];
+	f0 = heapFloat[(r0+10)];
+	f_g0 = f0;
+	return;
+}
+else{
+	r0 = _2E_str36;
+	r1 = _2E_str4;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 384;
+	_assert(i7);
+}
+}
+
+function _ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 204;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK21btConeTwistConstraint9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	r1 = r1 >> 2;
+	r0 = r0 >> 2;
+	_ZNK17btTypedConstraint9serializeEPvP12btSerializer(i7);
+	heap32[(r1+11)] = heap32[(r0+72)];
+	heap32[(r1+12)] = heap32[(r0+73)];
+	heap32[(r1+13)] = heap32[(r0+74)];
+	heap32[(r1+14)] = heap32[(r0+75)];
+	heap32[(r1+15)] = heap32[(r0+76)];
+	heap32[(r1+16)] = heap32[(r0+77)];
+	heap32[(r1+17)] = heap32[(r0+78)];
+	heap32[(r1+18)] = heap32[(r0+79)];
+	heap32[(r1+19)] = heap32[(r0+80)];
+	heap32[(r1+20)] = heap32[(r0+81)];
+	heap32[(r1+21)] = heap32[(r0+82)];
+	heap32[(r1+22)] = heap32[(r0+83)];
+	heap32[(r1+23)] = heap32[(r0+84)];
+	heap32[(r1+24)] = heap32[(r0+85)];
+	heap32[(r1+25)] = heap32[(r0+86)];
+	heap32[(r1+26)] = heap32[(r0+87)];
+	heap32[(r1+27)] = heap32[(r0+88)];
+	heap32[(r1+28)] = heap32[(r0+89)];
+	heap32[(r1+29)] = heap32[(r0+90)];
+	heap32[(r1+30)] = heap32[(r0+91)];
+	heap32[(r1+31)] = heap32[(r0+92)];
+	heap32[(r1+32)] = heap32[(r0+93)];
+	heap32[(r1+33)] = heap32[(r0+94)];
+	heap32[(r1+34)] = heap32[(r0+95)];
+	heap32[(r1+35)] = heap32[(r0+96)];
+	heap32[(r1+36)] = heap32[(r0+97)];
+	heap32[(r1+37)] = heap32[(r0+98)];
+	heap32[(r1+38)] = heap32[(r0+99)];
+	heap32[(r1+39)] = heap32[(r0+100)];
+	heap32[(r1+40)] = heap32[(r0+101)];
+	heap32[(r1+41)] = heap32[(r0+102)];
+	heap32[(r1+42)] = heap32[(r0+103)];
+	heap32[(r1+43)] = heap32[(r0+108)];
+	heap32[(r1+44)] = heap32[(r0+109)];
+	heap32[(r1+45)] = heap32[(r0+110)];
+	heap32[(r1+46)] = heap32[(r0+104)];
+	heap32[(r1+47)] = heap32[(r0+105)];
+	heap32[(r1+48)] = heap32[(r0+106)];
+	heap32[(r1+49)] = heap32[(r0+107)];
+	r0 = _2E_str239;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN21btConeTwistConstraintD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV21btConeTwistConstraint;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN21btConeTwistConstraintD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV21btConeTwistConstraint;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN21btConeTwistConstraint13buildJacobianEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+var __label__ = 0;
+	i7 = sp + -216;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+515];
+if(!(r1 ==0)) //_LBB579_14
+{
+	r1 = r0 >> 2;
+	heap32[(r1+7)] = 0;
+	heap32[(r1+127)] = 0;
+	heap32[(r1+126)] = 0;
+	heap32[(r1+141)] = 0;
+	heap32[(r1+142)] = 0;
+	heap32[(r1+143)] = 0;
+	heap32[(r1+144)] = 0;
+	r2 = heapU8[r0+512];
+if(!(r2 !=0)) //_LBB579_13
+{
+	r2 = heap32[(r1+6)];
+	r3 = heap32[(r1+5)];
+	r2 = r2 >> 2;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r2+5)];
+	f1 = heapFloat[(r1+100)];
+	f2 = heapFloat[(r2+1)];
+	f3 = heapFloat[(r2+6)];
+	f4 = heapFloat[(r1+101)];
+	f5 = heapFloat[(r2+2)];
+	f6 = heapFloat[(r3+5)];
+	f7 = heapFloat[(r1+84)];
+	f8 = heapFloat[(r3+1)];
+	f9 = heapFloat[(r3+6)];
+	f10 = heapFloat[(r1+85)];
+	f11 = heapFloat[(r3+2)];
+	f12 = heapFloat[(r2+9)];
+	f13 = heapFloat[(r2+10)];
+	f14 = heapFloat[(r3+9)];
+	f15 = heapFloat[(r3+10)];
+	f0 = f0*f1;
+	f3 = f3*f4;
+	f16 = heapFloat[(r2+7)];
+	f17 = heapFloat[(r1+102)];
+	f18 = heapFloat[(r2+3)];
+	f6 = f6*f7;
+	f9 = f9*f10;
+	f19 = heapFloat[(r3+7)];
+	f20 = heapFloat[(r1+86)];
+	f21 = heapFloat[(r3+3)];
+	f2 = f2*f1;
+	f5 = f5*f4;
+	f8 = f8*f7;
+	f11 = f11*f10;
+	f22 = heapFloat[(r2+11)];
+	f23 = heapFloat[(r3+11)];
+	f1 = f12*f1;
+	f4 = f13*f4;
+	f7 = f14*f7;
+	f10 = f15*f10;
+	f0 = f0+f3;
+	f3 = f16*f17;
+	f6 = f6+f9;
+	f9 = f19*f20;
+	f2 = f2+f5;
+	f5 = f18*f17;
+	f8 = f8+f11;
+	f11 = f21*f20;
+	f1 = f1+f4;
+	f4 = f22*f17;
+	f7 = f7+f10;
+	f10 = f23*f20;
+	f0 = f0+f3;
+	f3 = heapFloat[(r2+14)];
+	f6 = f6+f9;
+	f9 = heapFloat[(r3+14)];
+	f2 = f2+f5;
+	f5 = heapFloat[(r2+13)];
+	f8 = f8+f11;
+	f11 = heapFloat[(r3+13)];
+	f0 = f0+f3;
+	f3 = f6+f9;
+	f2 = f2+f5;
+	f5 = f8+f11;
+	f1 = f1+f4;
+	f4 = heapFloat[(r2+15)];
+	f6 = f7+f10;
+	f7 = heapFloat[(r3+15)];
+	f8 = f0-f3;
+	f9 = f2-f5;
+	f1 = f1+f4;
+	f4 = f6+f7;
+	f6 = f1-f4;
+	f7 = f9*f9;
+	f10 = f8*f8;
+	f7 = f7+f10;
+	f10 = f6*f6;
+	f7 = f7+f10;
+	f10 =   1.1920928955078125e-007;
+	if(f7 >f10) //_LBB579_4
+{
+	heapFloat[(g0)] = f7;
+	f10 =                         1;
+	sqrtf(i7);
+	f11 = f10/f_g0;
+	r2 = sp + -176;
+	f7 = f9*f11;
+	f8 = f8*f11;
+	r3 = r2 >> 2;
+	heapFloat[(fp+-44)] = f7;
+	f6 = f6*f11;
+	heapFloat[(r3+1)] = f8;
+	r2 = (r2 + 8)|0;
+	heapFloat[(r3+2)] = f6;
+	heap32[(r3+3)] = 0;
+	f9 =                         0;
+	if(f6 <f9) //_LBB579_6
+{
+	f9 = -f6;
+}
+else{
+	f9 = f6;
+}
+	f11 =       0.70710676908493042;
+	if(f9 >f11) //_LBB579_9
+{
+	f7 = f8*f8;
+	f8 = f6*f6;
+	f7 = f7+f8;
+	heapFloat[(g0)] = f7;
+	sqrtf(i7);
+	heap32[(r3+4)] = 0;
+	f6 = heapFloat[(r3+2)];
+	f8 = f10/f_g0;
+	f6 = -f6;
+	f6 = f8*f6;
+	heapFloat[(r3+5)] = f6;
+	f9 = heapFloat[(r3+1)];
+	f9 = f9*f8;
+	f7 = f7*f8;
+	heapFloat[(r3+6)] = f9;
+	heapFloat[(r3+8)] = f7;
+	f7 = heapFloat[(fp+-44)];
+	f8 = -f7;
+	f8 = f9*f8;
+	f7 = f7*f6;
+	heapFloat[(r3+9)] = f8;
+	heapFloat[(r3+10)] = f7;
+__label__ = 10;
+}
+else{
+__label__ = 9;
+}
+}
+else{
+	r2 = sp + -176;
+	r3 = r2 >> 2;
+	heap32[(fp+-44)] = 1065353216;
+	heap32[(r3+1)] = 0;
+	r2 = (r2 + 8)|0;
+	f7 =                         1;
+	f8 =                         0;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 0;
+__label__ = 9;
+}
+if (__label__ == 9){
+	f6 = f7*f7;
+	f7 = f8*f8;
+	f6 = f6+f7;
+	r3 = sp + -176;
+	heapFloat[(g0)] = f6;
+	r3 = r3 >> 2;
+	sqrtf(i7);
+	f8 =                         1;
+	f9 = heapFloat[(r3+1)];
+	f7 = f8/f_g0;
+	f8 = -f9;
+	f8 = f7*f8;
+	heapFloat[(r3+4)] = f8;
+	f9 = heapFloat[(fp+-44)];
+	f9 = f9*f7;
+	heapFloat[(r3+5)] = f9;
+	r2 = r2 >> 2;
+	heap32[(r3+6)] = 0;
+	f10 = heapFloat[(r2)];
+	f11 = -f10;
+	f9 = f9*f11;
+	f8 = f10*f8;
+	heapFloat[(r3+8)] = f9;
+	f6 = f6*f7;
+	heapFloat[(r3+9)] = f8;
+	heapFloat[(r3+10)] = f6;
+}
+	r2 = (r0 + 36)|0;
+	r3 = 0;
+_16: while(true){
+	r4 = heap32[(r1+5)];
+	r5 = r4 >> 2;
+	r6 = sp + -128;
+	r7 = r6 >> 2;
+	heap32[(fp+-32)] = heap32[(r5+1)];
+	heap32[(r7+1)] = heap32[(r5+5)];
+	heap32[(r7+2)] = heap32[(r5+9)];
+	heap32[(r7+3)] = 0;
+	heap32[(r7+4)] = heap32[(r5+2)];
+	heap32[(r7+5)] = heap32[(r5+6)];
+	heap32[(r7+6)] = heap32[(r5+10)];
+	heap32[(r7+7)] = 0;
+	heap32[(r7+8)] = heap32[(r5+3)];
+	heap32[(r7+9)] = heap32[(r5+7)];
+	heap32[(r7+10)] = heap32[(r5+11)];
+	heap32[(r7+11)] = 0;
+	r7 = heap32[(r1+6)];
+	r8 = sp + -80;
+	r9 = r7 >> 2;
+	r10 = r8 >> 2;
+	heap32[(fp+-20)] = heap32[(r9+1)];
+	heap32[(r10+1)] = heap32[(r9+5)];
+	heap32[(r10+2)] = heap32[(r9+9)];
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = heap32[(r9+2)];
+	heap32[(r10+5)] = heap32[(r9+6)];
+	heap32[(r10+6)] = heap32[(r9+10)];
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = heap32[(r9+3)];
+	heap32[(r10+9)] = heap32[(r9+7)];
+	heap32[(r10+10)] = heap32[(r9+11)];
+	heap32[(r10+11)] = 0;
+	f6 = heapFloat[(r5+13)];
+	f7 = heapFloat[(r5+15)];
+	f8 = heapFloat[(r5+14)];
+	r10 = sp + -32;
+	f6 = f5-f6;
+	r11 = r10 >> 2;
+	f8 = f3-f8;
+	heapFloat[(fp+-8)] = f6;
+	f6 = f4-f7;
+	heapFloat[(r11+1)] = f8;
+	heapFloat[(r11+2)] = f6;
+	heap32[(r11+3)] = 0;
+	f6 = heapFloat[(r9+13)];
+	f7 = heapFloat[(r9+15)];
+	f8 = heapFloat[(r9+14)];
+	r11 = sp + -16;
+	f6 = f2-f6;
+	r12 = r11 >> 2;
+	f8 = f0-f8;
+	heapFloat[(fp+-4)] = f6;
+	f6 = f1-f7;
+	heapFloat[(r12+1)] = f8;
+	heapFloat[(r12+2)] = f6;
+	heap32[(r12+3)] = 0;
+	f6 = heapFloat[(r9+84)];
+	f7 = heapFloat[(r5+84)];
+	r5 = sp + -176;
+	r5 = (r5 + r3)|0;
+	r4 = (r4 + 388)|0;
+	r7 = (r7 + 388)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r10;
+	heap32[(g0+4)] = r11;
+	heap32[(g0+5)] = r5;
+	heap32[(g0+6)] = r4;
+	heapFloat[(g0+7)] = f7;
+	heap32[(g0+8)] = r7;
+	heapFloat[(g0+9)] = f6;
+	r3 = (r3 + 16)|0;
+	r2 = (r2 + 84)|0;
+	_ZN15btJacobianEntryC2ERK11btMatrix3x3S2_RK9btVector3S5_S5_S5_fS5_f(i7);
+if(!(r3 !=48)) //_LBB579_12
+{
+break _16;
+}
+}
+}
+	r2 = heap32[(r1+6)];
+	r1 = heap32[(r1+5)];
+	r3 = (r1 + 4)|0;
+	r4 = (r2 + 4)|0;
+	r1 = (r1 + 256)|0;
+	r2 = (r2 + 256)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r1;
+	heap32[(g0+4)] = r2;
+	_ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(i7);
+}
+	return;
+}
+
+function _ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heapU8[r0+515];
+	if(r2 ==0) //_LBB580_2
+{
+	r1 = r1 >> 2;
+	heap32[(r1)] = 3;
+	r2 = r0 >> 2;
+	heap32[(r1+1)] = 3;
+	r3 = heap32[(r2+6)];
+	r4 = heap32[(r2+5)];
+	r5 = (r4 + 4)|0;
+	r6 = (r3 + 4)|0;
+	r4 = (r4 + 256)|0;
+	r3 = (r3 + 256)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r4;
+	heap32[(g0+4)] = r3;
+	_ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(i7);
+	r3 = heapU8[r0+514];
+if(!(r3 ==0)) //_LBB580_6
+{
+	r3 = heap32[(r1)];
+	r4 = (r3 + 1)|0;
+	heap32[(r1)] = r4;
+	r4 = heap32[(r1+1)];
+	r5 = (r4 + -1)|0;
+	heap32[(r1+1)] = r5;
+	f0 = heapFloat[(r2+111)];
+	f1 = heapFloat[(r2+108)];
+if(!(f1 >=f0)) //_LBB580_6
+{
+	f1 = heapFloat[(r2+109)];
+if(!(f1 >=f0)) //_LBB580_6
+{
+	r2 = (r3 + 2)|0;
+	r3 = (r4 + -2)|0;
+	heap32[(r1)] = r2;
+	heap32[(r1+1)] = r3;
+}
+}
+}
+	r0 = heapU8[r0+513];
+if(!(r0 ==0)) //_LBB580_8
+{
+	r0 = heap32[(r1)];
+	r0 = (r0 + 1)|0;
+	heap32[(r1)] = r0;
+	r0 = heap32[(r1+1)];
+	r0 = (r0 + -1)|0;
+	heap32[(r1+1)] = r0;
+}
+	return;
+}
+else{
+	r0 = r1 >> 2;
+	heap32[(r0)] = 0;
+	heap32[(r0+1)] = 0;
+	return;
+}
+}
+
+function _ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+6)];
+	r3 = heap32[(r1+5)];
+	r4 = (r3 + 4)|0;
+	r5 = (r2 + 4)|0;
+	r6 = (r3 + 256)|0;
+	r7 = (r2 + 256)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r6;
+	heap32[(g0+4)] = r7;
+	_ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(i7);
+	r4 = heapU8[r0+515];
+	if(r4 ==0) //_LBB581_2
+{
+	r4 = heap32[(fp+1)];
+	r5 = r4 >> 2;
+	r6 = heap32[(r5+2)];
+	r6 = r6 >> 2;
+	heap32[(r6)] = 1065353216;
+	r6 = heap32[(r5+6)];
+	r7 = heap32[(r5+2)];
+	r6 = r6 << 2;
+	r6 = (r6 + r7)|0;
+	r6 = r6 >> 2;
+	heap32[(r6+1)] = 1065353216;
+	r6 = heap32[(r5+6)];
+	r7 = heap32[(r5+2)];
+	r6 = r6 << 3;
+	r6 = (r6 + r7)|0;
+	r6 = r6 >> 2;
+	heap32[(r6+2)] = 1065353216;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r3+9)];
+	f1 = heapFloat[(r1+84)];
+	f2 = heapFloat[(r3+5)];
+	f3 = heapFloat[(r3+10)];
+	f4 = heapFloat[(r1+85)];
+	f5 = heapFloat[(r3+6)];
+	r6 = heap32[(r5+6)];
+	f6 = heapFloat[(r3+1)];
+	f7 = heapFloat[(r3+2)];
+	r7 = heap32[(r5+3)];
+	f2 = f2*f1;
+	f5 = f5*f4;
+	f0 = f0*f1;
+	f3 = f3*f4;
+	f8 = heapFloat[(r3+11)];
+	f9 = heapFloat[(r1+86)];
+	f10 = heapFloat[(r3+7)];
+	f11 = heapFloat[(r3+3)];
+	f2 = f2+f5;
+	f5 = f10*f9;
+	r8 = r7 >> 2;
+	f0 = f0+f3;
+	f3 = f8*f9;
+	f2 = f2+f5;
+	f0 = f0+f3;
+	heap32[(r8)] = 0;
+	r9 = r6 << 2;
+	f3 = -f2;
+	heapFloat[(r8+1)] = f0;
+	r9 = (r7 + r9)|0;
+	heapFloat[(r8+2)] = f3;
+	r9 = r9 >> 2;
+	f1 = f6*f1;
+	f3 = f7*f4;
+	f4 = -f0;
+	heap32[(r8+3)] = 0;
+	heapFloat[(r9)] = f4;
+	f1 = f1+f3;
+	f3 = f11*f9;
+	r6 = r6 << 3;
+	f1 = f1+f3;
+	heap32[(r9+1)] = 0;
+	r8 = (r6 + r7)|0;
+	r6 = r6 | 4;
+	heapFloat[(r9+2)] = f1;
+	r6 = (r7 + r6)|0;
+	r7 = r8 >> 2;
+	heap32[(r9+3)] = 0;
+	r6 = r6 >> 2;
+	f3 = -f1;
+	heapFloat[(r7)] = f2;
+	heapFloat[(r6)] = f3;
+	heap32[(r7+2)] = 0;
+	heap32[(r7+3)] = 0;
+	r2 = r2 >> 2;
+	f3 = heapFloat[(r2+9)];
+	f4 = heapFloat[(r1+100)];
+	f5 = heapFloat[(r2+10)];
+	f6 = heapFloat[(r1+101)];
+	f3 = f3*f4;
+	f5 = f5*f6;
+	f7 = heapFloat[(r2+11)];
+	f8 = heapFloat[(r1+102)];
+	r6 = heap32[(r5+6)];
+	f9 = heapFloat[(r2+5)];
+	f10 = heapFloat[(r2+6)];
+	f11 = heapFloat[(r2+7)];
+	f12 = heapFloat[(r2+1)];
+	f13 = heapFloat[(r2+2)];
+	f14 = heapFloat[(r2+3)];
+	r7 = heap32[(r5+5)];
+	f3 = f3+f5;
+	f5 = f7*f8;
+	f3 = f3+f5;
+	r8 = r7 >> 2;
+	f5 = f9*f4;
+	f7 = f10*f6;
+	f5 = f5+f7;
+	f7 = f11*f8;
+	f9 = -f3;
+	heap32[(r8)] = 0;
+	f5 = f5+f7;
+	r9 = r6 << 2;
+	heapFloat[(r8+1)] = f9;
+	r9 = (r7 + r9)|0;
+	heapFloat[(r8+2)] = f5;
+	f4 = f12*f4;
+	f6 = f13*f6;
+	f4 = f4+f6;
+	f6 = f14*f8;
+	r9 = r9 >> 2;
+	heap32[(r8+3)] = 0;
+	f4 = f4+f6;
+	heapFloat[(r9)] = f3;
+	r6 = r6 << 3;
+	f6 = -f4;
+	heap32[(r9+1)] = 0;
+	r8 = (r6 + r7)|0;
+	r6 = r6 | 4;
+	heapFloat[(r9+2)] = f6;
+	r6 = (r7 + r6)|0;
+	r7 = r8 >> 2;
+	f6 = -f5;
+	heap32[(r9+3)] = 0;
+	r6 = r6 >> 2;
+	heapFloat[(r7)] = f6;
+	heapFloat[(r6)] = f4;
+	heap32[(r7+2)] = 0;
+	heap32[(r7+3)] = 0;
+	r6 = heapU8[r0+580];
+	r6 = r6 & 2;
+	if(r6 ==0) //_LBB581_4
+{
+	r4 = (r4 + 4)|0;
+}
+else{
+	r4 = (r0 + 588)|0;
+}
+	f6 = heapFloat[(r2+13)];
+	r4 = r4 >> 2;
+	f4 = f4+f6;
+	f1 = f4-f1;
+	f4 = heapFloat[(r3+13)];
+	f6 = heapFloat[(r4)];
+	f7 = heapFloat[(r5)];
+	r4 = heap32[(r5+7)];
+	f6 = f7*f6;
+	f1 = f1-f4;
+	r4 = r4 >> 2;
+	f1 = f1*f6;
+	heapFloat[(r4)] = f1;
+	r4 = heap32[(r5+9)];
+	r4 = r4 >> 2;
+	heap32[(r4)] = -8388609;
+	r4 = heap32[(r5+10)];
+	r4 = r4 >> 2;
+	heap32[(r4)] = 2139095039;
+	r4 = heapU8[r0+580];
+	r4 = r4 & 1;
+if(!(r4 ==0)) //_LBB581_7
+{
+	r4 = heap32[(r5+8)];
+	r4 = r4 >> 2;
+	heap32[(r4)] = heap32[(r1+146)];
+}
+	f1 = heapFloat[(r2+14)];
+	r4 = heap32[(r5+6)];
+	f1 = f5+f1;
+	r4 = r4 << 2;
+	r6 = heap32[(r5+7)];
+	f4 = heapFloat[(r3+14)];
+	f1 = f1-f2;
+	r4 = (r6 + r4)|0;
+	f1 = f1-f4;
+	r4 = r4 >> 2;
+	f1 = f1*f6;
+	heapFloat[(r4)] = f1;
+	r4 = heap32[(r5+6)];
+	r6 = heap32[(r5+9)];
+	r4 = r4 << 2;
+	r4 = (r6 + r4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = -8388609;
+	r4 = heap32[(r5+6)];
+	r6 = heap32[(r5+10)];
+	r4 = r4 << 2;
+	r4 = (r6 + r4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = 2139095039;
+	r4 = heapU8[r0+580];
+	r4 = r4 & 1;
+if(!(r4 ==0)) //_LBB581_25
+{
+	r4 = heap32[(r5+6)];
+	r6 = heap32[(r5+8)];
+	r4 = r4 << 2;
+	r4 = (r6 + r4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = heap32[(r1+146)];
+}
+	f1 = heapFloat[(r2+15)];
+	r2 = heap32[(r5+6)];
+	f3 = f3+f1;
+	r2 = r2 << 3;
+	r4 = heap32[(r5+7)];
+	f1 = heapFloat[(r3+15)];
+	f0 = f3-f0;
+	r2 = (r4 + r2)|0;
+	f0 = f0-f1;
+	r2 = r2 >> 2;
+	f0 = f0*f6;
+	heapFloat[(r2)] = f0;
+	r2 = heap32[(r5+6)];
+	r4 = heap32[(r5+9)];
+	r2 = r2 << 3;
+	r2 = (r4 + r2)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = -8388609;
+	r2 = heap32[(r5+6)];
+	r4 = heap32[(r5+10)];
+	r2 = r2 << 3;
+	r2 = (r4 + r2)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = 2139095039;
+	r2 = heapU8[r0+580];
+	r2 = r2 & 1;
+if(!(r2 ==0)) //_LBB581_8
+{
+	r2 = heap32[(r5+6)];
+	r4 = heap32[(r5+8)];
+	r2 = r2 << 3;
+	r2 = (r4 + r2)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = heap32[(r1+146)];
+}
+	r2 = heap32[(r5+6)];
+	r4 = (r2 * 3)|0;
+	r6 = heapU8[r0+514];
+_16: do {
+	if(r6 !=0) //_LBB581_10
+{
+	f0 = heapFloat[(r1+111)];
+	r6 = heap32[(r5+3)];
+	r7 = heap32[(r5+5)];
+	f3 = heapFloat[(r1+108)];
+if(!(f3 >=f0)) //_LBB581_13
+{
+	f3 = heapFloat[(r1+109)];
+if(!(f3 >=f0)) //_LBB581_13
+{
+	f0 = heapFloat[(r3+1)];
+	f3 = heapFloat[(r1+73)];
+	f6 = heapFloat[(r3+2)];
+	f1 = heapFloat[(r1+77)];
+	r8 = (r4 + 1)|0;
+	f2 = heapFloat[(r3+5)];
+	f4 = heapFloat[(r3+6)];
+	r9 = r4 << 2;
+	f5 = f3*f0;
+	f7 = f1*f6;
+	f8 = heapFloat[(r3+3)];
+	f9 = heapFloat[(r1+81)];
+	f10 = heapFloat[(r1+74)];
+	f11 = heapFloat[(r3+9)];
+	f12 = heapFloat[(r1+78)];
+	f13 = heapFloat[(r3+10)];
+	r10 = (r4 + 2)|0;
+	r8 = r8 << 2;
+	r11 = (r6 + r9)|0;
+	f14 = heapFloat[(r3+11)];
+	f15 = heapFloat[(r1+82)];
+	f16 = heapFloat[(r3+7)];
+	f17 = f3*f2;
+	f18 = f1*f4;
+	f5 = f5+f7;
+	f7 = f9*f8;
+	r2 = (r2 + r4)|0;
+	r3 = r10 << 2;
+	r4 = (r6 + r8)|0;
+	f5 = f5+f7;
+	f3 = f3*f11;
+	f1 = f1*f13;
+	f7 = f17+f18;
+	f17 = f9*f16;
+	r10 = r11 >> 2;
+	r11 = (r2 + 1)|0;
+	r12 = r2 << 2;
+	r13 = (r6 + r3)|0;
+	f7 = f7+f17;
+	f0 = f10*f0;
+	f6 = f12*f6;
+	f3 = f3+f1;
+	f1 = f9*f14;
+	r4 = r4 >> 2;
+	heapFloat[(r10)] = f5;
+	r10 = (r2 + 2)|0;
+	r11 = r11 << 2;
+	r14 = (r6 + r12)|0;
+	f3 = f3+f1;
+	f1 = f10*f2;
+	f2 = f12*f4;
+	f0 = f0+f6;
+	f6 = f15*f8;
+	r13 = r13 >> 2;
+	heapFloat[(r4)] = f7;
+	r4 = r10 << 2;
+	r10 = (r6 + r11)|0;
+	f0 = f0+f6;
+	f6 = f10*f11;
+	f4 = f12*f13;
+	f1 = f1+f2;
+	f2 = f15*f16;
+	r14 = r14 >> 2;
+	heapFloat[(r13)] = f3;
+	r6 = (r6 + r4)|0;
+	f1 = f1+f2;
+	f6 = f6+f4;
+	f2 = f15*f14;
+	r10 = r10 >> 2;
+	heapFloat[(r14)] = f0;
+	r13 = (r7 + r9)|0;
+	f6 = f6+f2;
+	r6 = r6 >> 2;
+	heapFloat[(r10)] = f1;
+	r8 = (r7 + r8)|0;
+	r10 = r13 >> 2;
+	f2 = -f5;
+	heapFloat[(r6)] = f6;
+	r3 = (r7 + r3)|0;
+	r6 = r8 >> 2;
+	f4 = -f7;
+	heapFloat[(r10)] = f2;
+	r8 = (r7 + r12)|0;
+	r3 = r3 >> 2;
+	f2 = -f3;
+	heapFloat[(r6)] = f4;
+	r6 = (r7 + r11)|0;
+	r8 = r8 >> 2;
+	f4 = -f0;
+	heapFloat[(r3)] = f2;
+	r3 = (r7 + r4)|0;
+	r4 = r6 >> 2;
+	f2 = -f1;
+	heapFloat[(r8)] = f4;
+	r3 = r3 >> 2;
+	f4 = -f6;
+	heapFloat[(r4)] = f2;
+	heapFloat[(r3)] = f4;
+	f2 = heapFloat[(r1+112)];
+	f4 = heapFloat[(r1+113)];
+	f8 = heapFloat[(r1+114)];
+	f2 = f2*f5;
+	f4 = f4*f7;
+	r3 = heap32[(r5+7)];
+	f2 = f2+f4;
+	f3 = f8*f3;
+	f4 = heapFloat[(r5)];
+	f5 = heapFloat[(r1+106)];
+	r3 = (r3 + r9)|0;
+	f3 = f2+f3;
+	f2 = f4*f5;
+	r3 = r3 >> 2;
+	f3 = f3*f2;
+	heapFloat[(r3)] = f3;
+	f3 = heapFloat[(r1+112)];
+	f4 = heapFloat[(r1+113)];
+	f5 = heapFloat[(r1+114)];
+	f0 = f3*f0;
+	f3 = f4*f1;
+	r3 = heap32[(r5+7)];
+	f0 = f0+f3;
+	f3 = f5*f6;
+	r3 = (r3 + r12)|0;
+	f0 = f0+f3;
+	r3 = r3 >> 2;
+	f0 = f0*f2;
+	heapFloat[(r3)] = f0;
+	r3 = heap32[(r5+9)];
+	r3 = (r3 + r9)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = -8388609;
+	r3 = heap32[(r5+10)];
+	r3 = (r3 + r9)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = 2139095039;
+	r3 = heap32[(r5+9)];
+	r3 = (r3 + r12)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = -8388609;
+	r3 = heap32[(r5+10)];
+	r3 = (r3 + r12)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = 2139095039;
+	r3 = heap32[(r5+6)];
+	r4 = (r3 + r2)|0;
+break _16;
+}
+}
+	r2 = (r4 + 1)|0;
+	r3 = r4 << 2;
+	f0 = heapFloat[(r1+106)];
+	f3 = heapFloat[(r1+112)];
+	r8 = (r4 + 2)|0;
+	r2 = r2 << 2;
+	r9 = (r6 + r3)|0;
+	f3 = f3*f0;
+	f6 = heapFloat[(r1+114)];
+	f1 = heapFloat[(r1+113)];
+	r8 = r8 << 2;
+	r10 = (r6 + r2)|0;
+	f1 = f1*f0;
+	f3 = f3*f0;
+	r9 = r9 >> 2;
+	r6 = (r6 + r8)|0;
+	f6 = f6*f0;
+	f1 = f1*f0;
+	r10 = r10 >> 2;
+	heapFloat[(r9)] = f3;
+	r9 = (r7 + r3)|0;
+	f0 = f6*f0;
+	r6 = r6 >> 2;
+	heapFloat[(r10)] = f1;
+	r2 = (r7 + r2)|0;
+	r9 = r9 >> 2;
+	f3 = -f3;
+	heapFloat[(r6)] = f0;
+	r6 = (r7 + r8)|0;
+	r2 = r2 >> 2;
+	f6 = -f1;
+	heapFloat[(r9)] = f3;
+	r6 = r6 >> 2;
+	f0 = -f0;
+	heapFloat[(r2)] = f6;
+	heapFloat[(r6)] = f0;
+	r2 = heap32[(r5+7)];
+	f0 = heapFloat[(r5)];
+	f3 = heapFloat[(r1+105)];
+	r2 = (r2 + r3)|0;
+	f6 = heapFloat[(r1+123)];
+	f0 = f0*f3;
+	r2 = r2 >> 2;
+	f0 = f6*f0;
+	heapFloat[(r2)] = f0;
+	r2 = heapU8[r0+580];
+	r2 = r2 & 4;
+if(!(r2 ==0)) //_LBB581_15
+{
+	r2 = heap32[(r5+8)];
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = heap32[(r1+148)];
+}
+	r2 = heap32[(r5+9)];
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = 0;
+	r2 = heap32[(r5+10)];
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = 2139095039;
+	r2 = heap32[(r5+6)];
+	r4 = (r2 + r4)|0;
+}
+} while(0);
+	r2 = heapU8[r0+513];
+	if(r2 ==0) //_LBB581_28
+{
+	return;
+}
+else{
+	r2 = (r4 + 1)|0;
+	r3 = r4 << 2;
+	r6 = heap32[(r5+3)];
+	f0 = heapFloat[(r1+106)];
+	f3 = heapFloat[(r1+116)];
+	r4 = (r4 + 2)|0;
+	r2 = r2 << 2;
+	r7 = heap32[(r5+5)];
+	r8 = (r6 + r3)|0;
+	f3 = f3*f0;
+	f6 = heapFloat[(r1+118)];
+	f1 = heapFloat[(r1+117)];
+	r4 = r4 << 2;
+	r9 = (r6 + r2)|0;
+	f1 = f1*f0;
+	f3 = f3*f0;
+	r8 = r8 >> 2;
+	r6 = (r6 + r4)|0;
+	f6 = f6*f0;
+	f1 = f1*f0;
+	r9 = r9 >> 2;
+	heapFloat[(r8)] = f3;
+	r8 = (r7 + r3)|0;
+	f0 = f6*f0;
+	r6 = r6 >> 2;
+	heapFloat[(r9)] = f1;
+	r2 = (r7 + r2)|0;
+	r8 = r8 >> 2;
+	f3 = -f3;
+	heapFloat[(r6)] = f0;
+	r4 = (r7 + r4)|0;
+	r2 = r2 >> 2;
+	f6 = -f1;
+	heapFloat[(r8)] = f3;
+	r4 = r4 >> 2;
+	f0 = -f0;
+	heapFloat[(r2)] = f6;
+	heapFloat[(r4)] = f0;
+	r2 = heap32[(r5+7)];
+	f0 = heapFloat[(r5)];
+	f3 = heapFloat[(r1+105)];
+	r2 = (r2 + r3)|0;
+	f6 = heapFloat[(r1+124)];
+	f0 = f0*f3;
+	r2 = r2 >> 2;
+	f0 = f6*f0;
+	heapFloat[(r2)] = f0;
+	r0 = heapU8[r0+580];
+	r0 = r0 & 4;
+if(!(r0 ==0)) //_LBB581_19
+{
+	r0 = heap32[(r5+8)];
+	r0 = (r0 + r3)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = heap32[(r1+148)];
+}
+	f0 = heapFloat[(r1+110)];
+	f3 =                         0;
+	if(f0 <=f3) //_LBB581_24
+{
+	r0 = heap32[(r5+9)];
+	r0 = (r0 + r3)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = -8388609;
+}
+else{
+	r0 = heap32[(r5+9)];
+	f0 = heapFloat[(r1+124)];
+	if(f0 <=f3) //_LBB581_23
+{
+	r0 = (r0 + r3)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = -8388609;
+	r0 = heap32[(r5+10)];
+	r3 = (r0 + r3)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = 0;
+	return;
+}
+else{
+	r0 = (r0 + r3)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+}
+}
+	r0 = heap32[(r5+10)];
+	r0 = (r0 + r3)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 2139095039;
+	return;
+}
+}
+else{
+	r0 = _2E_str1149;
+	r1 = _2E_str24;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 126;
+	_assert(i7);
+}
+}
+
+function _ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -624;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+515];
+if(!(r1 ==0)) //_LBB582_52
+{
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	f0 = heapFloat[(fp+3)];
+	heapFloat[(fp+-117)] = f0;
+	r3 = r0 >> 2;
+	r4 = heapU8[r0+512];
+if(!(r4 !=0)) //_LBB582_8
+{
+	r4 = heap32[(r3+5)];
+	r5 = heap32[(r3+6)];
+	r4 = r4 >> 2;
+	r5 = r5 >> 2;
+	f0 = heapFloat[(r4+9)];
+	f1 = heapFloat[(r3+84)];
+	f2 = heapFloat[(r4+5)];
+	f3 = heapFloat[(r4+1)];
+	f4 = heapFloat[(r4+10)];
+	f5 = heapFloat[(r3+85)];
+	f6 = heapFloat[(r4+6)];
+	f7 = heapFloat[(r4+2)];
+	f8 = heapFloat[(r5+9)];
+	f9 = heapFloat[(r3+100)];
+	f10 = heapFloat[(r5+5)];
+	f11 = heapFloat[(r5+1)];
+	f12 = heapFloat[(r5+10)];
+	f13 = heapFloat[(r3+101)];
+	f14 = heapFloat[(r5+6)];
+	f15 = heapFloat[(r5+2)];
+	f0 = f0*f1;
+	f4 = f4*f5;
+	f16 = heapFloat[(r4+11)];
+	f17 = heapFloat[(r3+86)];
+	f18 = heapFloat[(r4+7)];
+	f19 = heapFloat[(r4+3)];
+	f2 = f2*f1;
+	f6 = f6*f5;
+	f1 = f3*f1;
+	f3 = f7*f5;
+	f5 = f8*f9;
+	f7 = f12*f13;
+	f8 = heapFloat[(r5+11)];
+	f12 = heapFloat[(r3+102)];
+	f20 = heapFloat[(r5+7)];
+	f21 = heapFloat[(r5+3)];
+	f10 = f10*f9;
+	f14 = f14*f13;
+	f9 = f11*f9;
+	f11 = f15*f13;
+	f0 = f0+f4;
+	f4 = f16*f17;
+	f2 = f2+f6;
+	f6 = f18*f17;
+	f1 = f1+f3;
+	f3 = f19*f17;
+	f5 = f5+f7;
+	f7 = f8*f12;
+	f8 = f10+f14;
+	f10 = f20*f12;
+	f9 = f9+f11;
+	f11 = f21*f12;
+	f12 = heapFloat[(r4+15)];
+	f0 = f0+f4;
+	f4 = heapFloat[(r4+14)];
+	f2 = f2+f6;
+	f6 = heapFloat[(r4+13)];
+	f1 = f1+f3;
+	f3 = heapFloat[(r5+15)];
+	f5 = f5+f7;
+	f7 = heapFloat[(r5+14)];
+	f8 = f8+f10;
+	f10 = heapFloat[(r5+13)];
+	f9 = f9+f11;
+	f0 = f0+f12;
+	heapFloat[(fp+-119)] = f0;
+	f0 = f2+f4;
+	heapFloat[(fp+-121)] = f0;
+	f1 = f1+f6;
+	heapFloat[(fp+-120)] = f1;
+	f0 = f5+f3;
+	heapFloat[(fp+-122)] = f0;
+	f0 = f8+f7;
+	heapFloat[(fp+-123)] = f0;
+	f1 = f9+f10;
+	r4 = r1 >> 2;
+	r5 = r2 >> 2;
+	f2 = heapFloat[(r4+80)];
+	f5 = heapFloat[(r4+130)];
+	f8 = heapFloat[(r5+80)];
+	f9 = heapFloat[(r5+130)];
+	f11 = heapFloat[(r4+81)];
+	f13 = heapFloat[(r4+131)];
+	f14 = heapFloat[(r4+82)];
+	f15 = heapFloat[(r4+132)];
+	f16 = heapFloat[(r5+81)];
+	f17 = heapFloat[(r5+131)];
+	f18 = heapFloat[(r5+82)];
+	f19 = heapFloat[(r5+132)];
+	f20 = heapFloat[(fp+-120)];
+	f6 = f20-f6;
+	f10 = f1-f10;
+	f11 = f11+f13;
+	f0 = heapFloat[(fp+-119)];
+	f12 = f0-f12;
+	f2 = f2+f5;
+	f0 = heapFloat[(fp+-121)];
+	f4 = f0-f4;
+	f5 = f14+f15;
+	f13 = f16+f17;
+	f0 = heapFloat[(fp+-122)];
+	f3 = f0-f3;
+	f8 = f8+f9;
+	f0 = heapFloat[(fp+-123)];
+	f7 = f0-f7;
+	f9 = f18+f19;
+	f14 = heapFloat[(r4+78)];
+	f15 = heapFloat[(r4+128)];
+	f16 = f2*f4;
+	f17 = f11*f6;
+	f18 = heapFloat[(r5+78)];
+	f19 = heapFloat[(r5+128)];
+	f21 = f8*f7;
+	f22 = f13*f10;
+	f23 = heapFloat[(r4+77)];
+	f24 = heapFloat[(r4+127)];
+	f25 = f5*f6;
+	f2 = f2*f12;
+	f26 = heapFloat[(r5+77)];
+	f27 = heapFloat[(r5+127)];
+	f28 = f9*f10;
+	f8 = f8*f3;
+	f29 = heapFloat[(r4+76)];
+	f30 = heapFloat[(r4+126)];
+	f11 = f11*f12;
+	f5 = f5*f4;
+	f0 = heapFloat[(r5+76)];
+	f20 = heapFloat[(r5+126)];
+	f13 = f13*f3;
+	f9 = f9*f7;
+	f14 = f14+f15;
+	f15 = f16-f17;
+	f16 = f18+f19;
+	f17 = f21-f22;
+	f18 = f23+f24;
+	f2 = f25-f2;
+	f19 = f26+f27;
+	f8 = f28-f8;
+	f21 = f29+f30;
+	f5 = f11-f5;
+	f0 = f0+f20;
+	f9 = f13-f9;
+	f11 = f14+f15;
+	f13 = f16+f17;
+	f2 = f18+f2;
+	f8 = f19+f8;
+	f5 = f21+f5;
+	f0 = f0+f9;
+	f9 = f11-f13;
+	f2 = f2-f8;
+	heapFloat[(fp+-118)] = f2;
+	f0 = f5-f0;
+	f2 = heapFloat[(fp+-119)];
+	f5 = heapFloat[(fp+-122)];
+	f2 = f2-f5;
+	f5 = heapFloat[(fp+-121)];
+	f8 = heapFloat[(fp+-123)];
+	f5 = f5-f8;
+	f8 = heapFloat[(fp+-120)];
+	f1 = f8-f1;
+	r6 = 0;
+_5: while(true){
+	r7 = (r6 * -21)|0;
+	r8 = r7 << 2;
+	r8 = (r0 + r8)|0;
+	r8 = r8 >> 2;
+	f8 = heapFloat[(r8+9)];
+	f11 = heapFloat[(r8+10)];
+	f13 = heapFloat[(r8+11)];
+	f14 = f1*f8;
+	f15 = f5*f11;
+	f14 = f14+f15;
+	f15 = f2*f13;
+	f14 = f14+f15;
+	f15 =      -0.30000001192092896;
+	f16 = f8*f0;
+	f17 = heapFloat[(fp+-118)];
+	f17 = f11*f17;
+	f14 = f14*f15;
+	f15 = f16+f17;
+	f16 = f13*f9;
+	f17 =                         1;
+	f18 = heapFloat[(r8+29)];
+	f19 = heapFloat[(fp+-117)];
+	f14 = f14/f19;
+	f17 = f17/f18;
+	f15 = f15+f16;
+	f14 = f14*f17;
+	f15 = f15*f17;
+	f14 = f14-f15;
+	f15 = heapFloat[(r3+7)];
+	f15 = f15+f14;
+	heapFloat[(r3+7)] = f15;
+	f15 = heapFloat[(r4+84)];
+	f16 =                         0;
+if(!(f15 ==f16)) //_LBB582_5
+{
+	r9 = heap32[(r3+5)];
+	r9 = r9 >> 2;
+	f15 = f6*f11;
+	f17 = f4*f8;
+	f18 = f12*f8;
+	f19 = f6*f13;
+	f20 = f4*f13;
+	f21 = f12*f11;
+	f15 = f15-f17;
+	f17 = f18-f19;
+	f18 = f20-f21;
+	f19 = heapFloat[(r9+84)];
+	f20 = f8*f19;
+	f20 = f20*f14;
+	f21 = heapFloat[(r4+126)];
+	f22 = heapFloat[(r9+65)];
+	f23 = heapFloat[(r9+64)];
+	f24 = heapFloat[(r9+69)];
+	f25 = heapFloat[(r9+68)];
+	f26 = heapFloat[(r9+73)];
+	f27 = heapFloat[(r9+72)];
+	f28 = heapFloat[(r9+66)];
+	f29 = heapFloat[(r9+70)];
+	f30 = heapFloat[(r9+74)];
+	f20 = f21+f20;
+	f21 = f11*f19;
+	heapFloat[(r4+126)] = f20;
+	f20 = f21*f14;
+	f21 = heapFloat[(r4+127)];
+	f20 = f21+f20;
+	f19 = f13*f19;
+	heapFloat[(r4+127)] = f20;
+	f19 = f19*f14;
+	f20 = heapFloat[(r4+128)];
+	f19 = f20+f19;
+	heapFloat[(r4+128)] = f19;
+	f19 = f23*f18;
+	f20 = f22*f17;
+	f21 = heapFloat[(r4+134)];
+	f19 = f19+f20;
+	f20 = f28*f15;
+	f19 = f19+f20;
+	f20 = f21*f14;
+	f21 = heapFloat[(r4+136)];
+	f22 = heapFloat[(r4+135)];
+	f23 = heapFloat[(r4+130)];
+	f19 = f19*f20;
+	f20 = f25*f18;
+	f24 = f24*f17;
+	f20 = f20+f24;
+	f24 = f29*f15;
+	f19 = f23+f19;
+	heapFloat[(r4+130)] = f19;
+	f19 = f20+f24;
+	f20 = f22*f14;
+	f18 = f27*f18;
+	f17 = f26*f17;
+	f19 = f19*f20;
+	f20 = heapFloat[(r4+131)];
+	f19 = f20+f19;
+	f17 = f18+f17;
+	f15 = f30*f15;
+	heapFloat[(r4+131)] = f19;
+	f15 = f17+f15;
+	f17 = f21*f14;
+	f15 = f15*f17;
+	f17 = heapFloat[(r4+132)];
+	f15 = f17+f15;
+	heapFloat[(r4+132)] = f15;
+}
+	f15 = heapFloat[(r5+84)];
+if(!(f15 ==f16)) //_LBB582_7
+{
+	f15 = f10*f11;
+	f16 = f7*f8;
+	f8 = f3*f8;
+	f17 = f10*f13;
+	f13 = f7*f13;
+	f11 = f3*f11;
+	f15 = f15-f16;
+	f8 = f8-f17;
+	f11 = f13-f11;
+	r9 = heap32[(r3+6)];
+	r9 = r9 >> 2;
+	f13 = -f14;
+	f14 = heapFloat[(r9+84)];
+	r10 = r7 << 2;
+	r10 = (r0 + r10)|0;
+	r10 = r10 >> 2;
+	r7 = r7 << 2;
+	r7 = (r0 + r7)|0;
+	f16 = heapFloat[(r10+9)];
+	r7 = r7 >> 2;
+	f16 = f16*f14;
+	f17 = heapFloat[(r7+10)];
+	f18 = heapFloat[(r8+11)];
+	f16 = f16*f13;
+	f19 = heapFloat[(r5+126)];
+	f20 = heapFloat[(r9+65)];
+	f21 = heapFloat[(r9+64)];
+	f22 = heapFloat[(r9+69)];
+	f23 = heapFloat[(r9+68)];
+	f24 = heapFloat[(r9+73)];
+	f25 = heapFloat[(r9+72)];
+	f26 = heapFloat[(r9+66)];
+	f27 = heapFloat[(r9+70)];
+	f28 = heapFloat[(r9+74)];
+	f16 = f19+f16;
+	f17 = f17*f14;
+	heapFloat[(r5+126)] = f16;
+	f16 = f17*f13;
+	f17 = heapFloat[(r5+127)];
+	f16 = f17+f16;
+	f14 = f18*f14;
+	heapFloat[(r5+127)] = f16;
+	f14 = f14*f13;
+	f16 = heapFloat[(r5+128)];
+	f14 = f16+f14;
+	heapFloat[(r5+128)] = f14;
+	f14 = f21*f11;
+	f16 = f20*f8;
+	f17 = heapFloat[(r5+134)];
+	f14 = f14+f16;
+	f16 = f26*f15;
+	f14 = f14+f16;
+	f16 = f17*f13;
+	f17 = heapFloat[(r5+136)];
+	f18 = heapFloat[(r5+135)];
+	f19 = heapFloat[(r5+130)];
+	f14 = f14*f16;
+	f16 = f23*f11;
+	f20 = f22*f8;
+	f16 = f16+f20;
+	f20 = f27*f15;
+	f14 = f19+f14;
+	heapFloat[(r5+130)] = f14;
+	f14 = f16+f20;
+	f16 = f18*f13;
+	f11 = f25*f11;
+	f8 = f24*f8;
+	f14 = f14*f16;
+	f16 = heapFloat[(r5+131)];
+	f14 = f16+f14;
+	f8 = f11+f8;
+	f11 = f28*f15;
+	heapFloat[(r5+131)] = f14;
+	f8 = f8+f11;
+	f11 = f17*f13;
+	f8 = f8*f11;
+	f11 = heapFloat[(r5+132)];
+	f8 = f11+f8;
+	heapFloat[(r5+132)] = f8;
+}
+	r6 = (r6 + -1)|0;
+if(!(r6 !=-3)) //_LBB582_3
+{
+break _5;
+}
+}
+}
+	r4 = heapU8[r0+540];
+_14: do {
+	if(r4 ==0) //_LBB582_29
+{
+	f0 = heapFloat[(r3+107)];
+	f1 =   1.1920928955078125e-007;
+	if(f0 <=f1) //_LBB582_35
+{
+break _14;
+}
+else{
+	r4 = r2 >> 2;
+	r5 = r1 >> 2;
+	f0 = heapFloat[(r4+81)];
+	f2 = heapFloat[(r4+131)];
+	f3 = heapFloat[(r5+81)];
+	f4 = heapFloat[(r5+131)];
+	f5 = heapFloat[(r4+80)];
+	f6 = heapFloat[(r4+130)];
+	f7 = heapFloat[(r5+80)];
+	f8 = heapFloat[(r5+130)];
+	f9 = heapFloat[(r4+82)];
+	f10 = heapFloat[(r4+132)];
+	f11 = heapFloat[(r5+82)];
+	f12 = heapFloat[(r5+132)];
+	f0 = f0+f2;
+	f2 = f3+f4;
+	f3 = f5+f6;
+	f4 = f7+f8;
+	f0 = f0-f2;
+	f2 = f3-f4;
+	f3 = f9+f10;
+	f4 = f11+f12;
+	f3 = f3-f4;
+	f4 = f2*f2;
+	f5 = f0*f0;
+	f4 = f4+f5;
+	f5 = f3*f3;
+	f4 = f4+f5;
+	if(f4 <=f1) //_LBB582_35
+{
+break _14;
+}
+else{
+	heapFloat[(g0)] = f4;
+	sqrtf(i7);
+	r6 = heap32[(r3+5)];
+	r7 = heap32[(r3+6)];
+	f4 =                         1;
+	r6 = r6 >> 2;
+	r7 = r7 >> 2;
+	f1 = f4/f_g0;
+	f5 = heapFloat[(r6+64)];
+	f6 = f2*f1;
+	f7 = heapFloat[(r6+65)];
+	f8 = heapFloat[(r7+64)];
+	f9 = heapFloat[(r7+65)];
+	f10 = heapFloat[(r6+68)];
+	f11 = f0*f1;
+	f12 = heapFloat[(r6+69)];
+	f13 = heapFloat[(r7+68)];
+	f14 = heapFloat[(r7+69)];
+	f15 = heapFloat[(r6+66)];
+	f16 = heapFloat[(r6+70)];
+	f17 = heapFloat[(r7+66)];
+	f18 = heapFloat[(r7+70)];
+	f5 = f5*f6;
+	f10 = f10*f11;
+	f19 = heapFloat[(r6+72)];
+	f1 = f3*f1;
+	f20 = heapFloat[(r6+73)];
+	f21 = heapFloat[(r7+72)];
+	f22 = heapFloat[(r7+73)];
+	f7 = f7*f6;
+	f12 = f12*f11;
+	f8 = f8*f6;
+	f13 = f13*f11;
+	f9 = f9*f6;
+	f14 = f14*f11;
+	f23 = heapFloat[(r6+74)];
+	f24 = heapFloat[(r7+74)];
+	f5 = f5+f10;
+	f10 = f19*f1;
+	f7 = f7+f12;
+	f12 = f20*f1;
+	f15 = f15*f6;
+	f16 = f16*f11;
+	f8 = f8+f13;
+	f13 = f21*f1;
+	f9 = f9+f14;
+	f14 = f22*f1;
+	f17 = f17*f6;
+	f18 = f18*f11;
+	f5 = f5+f10;
+	f7 = f7+f12;
+	f8 = f8+f13;
+	f9 = f9+f14;
+	f10 = f15+f16;
+	f12 = f23*f1;
+	f13 = f17+f18;
+	f14 = f24*f1;
+	f10 = f10+f12;
+	f12 = f13+f14;
+	f5 = f6*f5;
+	f7 = f11*f7;
+	f6 = f6*f8;
+	f8 = f11*f9;
+	f5 = f5+f7;
+	f7 = f1*f10;
+	f6 = f6+f8;
+	f1 = f1*f12;
+	f5 = f5+f7;
+	f1 = f6+f1;
+	f1 = f5+f1;
+	f5 = heapFloat[(r3+107)];
+	f1 = f4/f1;
+	f1 = f5*f1;
+	f0 = f0*f1;
+	f2 = f2*f1;
+	f1 = f3*f1;
+	f3 = f2*f2;
+	f5 = f0*f0;
+	f3 = f3+f5;
+	f5 = f1*f1;
+	f3 = f3+f5;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	f3 = f_g0;
+	f4 = f4/f3;
+	f1 = f1*f4;
+	f0 = f0*f4;
+	f2 = f2*f4;
+	f4 = heapFloat[(r5+84)];
+	f5 =                         0;
+if(!(f4 ==f5)) //_LBB582_33
+{
+	r6 = heap32[(r3+5)];
+	r6 = r6 >> 2;
+	f4 = f3*f5;
+	f6 = heapFloat[(r5+126)];
+	f7 = heapFloat[(r6+65)];
+	f8 = heapFloat[(r6+64)];
+	f9 = heapFloat[(r6+69)];
+	f10 = heapFloat[(r6+68)];
+	f11 = heapFloat[(r6+73)];
+	f12 = heapFloat[(r6+72)];
+	f13 = heapFloat[(r6+66)];
+	f14 = heapFloat[(r6+70)];
+	f15 = heapFloat[(r6+74)];
+	f6 = f6+f4;
+	heapFloat[(r5+126)] = f6;
+	f6 = heapFloat[(r5+127)];
+	f6 = f6+f4;
+	heapFloat[(r5+127)] = f6;
+	f6 = heapFloat[(r5+128)];
+	f4 = f6+f4;
+	heapFloat[(r5+128)] = f4;
+	f4 = f8*f2;
+	f6 = f7*f0;
+	f7 = heapFloat[(r5+134)];
+	f4 = f4+f6;
+	f6 = f13*f1;
+	f4 = f4+f6;
+	f6 = f7*f3;
+	f7 = heapFloat[(r5+136)];
+	f8 = heapFloat[(r5+135)];
+	f13 = heapFloat[(r5+130)];
+	f4 = f4*f6;
+	f6 = f10*f2;
+	f9 = f9*f0;
+	f6 = f6+f9;
+	f9 = f14*f1;
+	f4 = f13+f4;
+	heapFloat[(r5+130)] = f4;
+	f4 = f6+f9;
+	f6 = f8*f3;
+	f8 = f12*f2;
+	f9 = f11*f0;
+	f4 = f4*f6;
+	f6 = heapFloat[(r5+131)];
+	f4 = f6+f4;
+	f6 = f8+f9;
+	f8 = f15*f1;
+	heapFloat[(r5+131)] = f4;
+	f4 = f6+f8;
+	f6 = f7*f3;
+	f4 = f4*f6;
+	f6 = heapFloat[(r5+132)];
+	f4 = f6+f4;
+	heapFloat[(r5+132)] = f4;
+}
+	f4 = heapFloat[(r4+84)];
+	if(f4 ==f5) //_LBB582_35
+{
+break _14;
+}
+else{
+	f4 = -f3;
+	r5 = heap32[(r3+6)];
+	r5 = r5 >> 2;
+	f5 =                        -0;
+	f3 = f3*f5;
+	f5 = heapFloat[(r4+126)];
+	f6 = heapFloat[(r5+65)];
+	f7 = heapFloat[(r5+64)];
+	f8 = heapFloat[(r5+69)];
+	f9 = heapFloat[(r5+68)];
+	f10 = heapFloat[(r5+73)];
+	f11 = heapFloat[(r5+72)];
+	f12 = heapFloat[(r5+66)];
+	f13 = heapFloat[(r5+70)];
+	f14 = heapFloat[(r5+74)];
+	f5 = f5+f3;
+	heapFloat[(r4+126)] = f5;
+	f5 = heapFloat[(r4+127)];
+	f5 = f5+f3;
+	heapFloat[(r4+127)] = f5;
+	f5 = heapFloat[(r4+128)];
+	f3 = f5+f3;
+	heapFloat[(r4+128)] = f3;
+	f3 = f7*f2;
+	f5 = f6*f0;
+	f3 = f3+f5;
+	f5 = f12*f1;
+	f6 = heapFloat[(r4+134)];
+	f3 = f3+f5;
+	f5 = f6*f4;
+	f6 = heapFloat[(r4+136)];
+	f7 = heapFloat[(r4+135)];
+	f12 = heapFloat[(r4+130)];
+	f3 = f3*f5;
+	f5 = f9*f2;
+	f8 = f8*f0;
+	f5 = f5+f8;
+	f8 = f13*f1;
+	f3 = f12+f3;
+	heapFloat[(r4+130)] = f3;
+	f3 = f5+f8;
+	f5 = f7*f4;
+	f2 = f11*f2;
+	f0 = f10*f0;
+	f3 = f3*f5;
+	f5 = heapFloat[(r4+131)];
+	f3 = f5+f3;
+	f0 = f2+f0;
+	f1 = f14*f1;
+	heapFloat[(r4+131)] = f3;
+	f0 = f0+f1;
+	f1 = f6*f4;
+	f0 = f0*f1;
+	f1 = heapFloat[(r4+132)];
+	f0 = f1+f0;
+	heapFloat[(r4+132)] = f0;
+}
+}
+}
+}
+else{
+	r4 = heap32[(r3+5)];
+	r5 = sp + -112;
+	r4 = r4 >> 2;
+	r6 = r5 >> 2;
+	heap32[(fp+-28)] = heap32[(r4+1)];
+	heap32[(r6+1)] = heap32[(r4+2)];
+	heap32[(r6+2)] = heap32[(r4+3)];
+	heap32[(r6+3)] = heap32[(r4+4)];
+	heap32[(r6+4)] = heap32[(r4+5)];
+	heap32[(r6+5)] = heap32[(r4+6)];
+	heap32[(r6+6)] = heap32[(r4+7)];
+	heap32[(r6+7)] = heap32[(r4+8)];
+	heap32[(r6+8)] = heap32[(r4+9)];
+	heap32[(r6+9)] = heap32[(r4+10)];
+	heap32[(r6+10)] = heap32[(r4+11)];
+	heap32[(r6+11)] = heap32[(r4+12)];
+	heap32[(r6+12)] = heap32[(r4+13)];
+	heap32[(r6+13)] = heap32[(r4+14)];
+	heap32[(r6+14)] = heap32[(r4+15)];
+	heap32[(r6+15)] = heap32[(r4+16)];
+	r4 = heap32[(r3+6)];
+	r6 = sp + -176;
+	r4 = r4 >> 2;
+	r7 = r6 >> 2;
+	heap32[(fp+-44)] = heap32[(r4+1)];
+	heap32[(r7+1)] = heap32[(r4+2)];
+	heap32[(r7+2)] = heap32[(r4+3)];
+	heap32[(r7+3)] = heap32[(r4+4)];
+	heap32[(r7+4)] = heap32[(r4+5)];
+	heap32[(r7+5)] = heap32[(r4+6)];
+	heap32[(r7+6)] = heap32[(r4+7)];
+	heap32[(r7+7)] = heap32[(r4+8)];
+	heap32[(r7+8)] = heap32[(r4+9)];
+	heap32[(r7+9)] = heap32[(r4+10)];
+	heap32[(r7+10)] = heap32[(r4+11)];
+	heap32[(r7+11)] = heap32[(r4+12)];
+	heap32[(r7+12)] = heap32[(r4+13)];
+	heap32[(r7+13)] = heap32[(r4+14)];
+	heap32[(r7+14)] = heap32[(r4+15)];
+	r8 = r1 >> 2;
+	heap32[(r7+15)] = heap32[(r4+16)];
+	f0 = heapFloat[(r8+82)];
+	f1 = heapFloat[(r8+132)];
+	f2 = heapFloat[(r8+81)];
+	f3 = heapFloat[(r8+131)];
+	f4 = heapFloat[(r8+80)];
+	f5 = heapFloat[(r8+130)];
+	r4 = sp + -192;
+	f4 = f4+f5;
+	r7 = r4 >> 2;
+	f2 = f2+f3;
+	heapFloat[(fp+-48)] = f4;
+	f0 = f0+f1;
+	heapFloat[(r7+1)] = f2;
+	heapFloat[(r7+2)] = f0;
+	r9 = r2 >> 2;
+	heap32[(r7+3)] = 0;
+	f0 = heapFloat[(r9+82)];
+	f1 = heapFloat[(r9+132)];
+	f2 = heapFloat[(r9+81)];
+	f3 = heapFloat[(r9+131)];
+	f4 = heapFloat[(r9+80)];
+	f5 = heapFloat[(r9+130)];
+	r10 = sp + -208;
+	f4 = f4+f5;
+	f2 = f2+f3;
+	heapFloat[(fp+-52)] = f4;
+	r11 = r10 >> 2;
+	f0 = f0+f1;
+	heapFloat[(r11+1)] = f2;
+	heapFloat[(r11+2)] = f0;
+	r12 = sp + -272;
+	heap32[(r11+3)] = 0;
+	r13 = r12 >> 2;
+	heap32[(fp+-68)] = 1065353216;
+	heap32[(r13+1)] = 0;
+	heap32[(r13+2)] = 0;
+	heap32[(r13+3)] = 0;
+	heap32[(r13+4)] = 0;
+	heap32[(r13+5)] = 1065353216;
+	heap32[(r13+6)] = 0;
+	heap32[(r13+7)] = 0;
+	heap32[(r13+8)] = 0;
+	heap32[(r13+9)] = 0;
+	heap32[(r13+10)] = 1065353216;
+	heap32[(r13+11)] = 0;
+	heap32[(r13+12)] = 0;
+	heap32[(r13+13)] = 0;
+	heap32[(r13+14)] = 0;
+	heap32[(r13+15)] = 0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 0;
+	heap32[(g0+3)] = 0;
+	heap32[(g0+4)] = r4;
+	f0 = heapFloat[(fp+-117)];
+	heapFloat[(g0+5)] = f0;
+	heap32[(g0+6)] = r12;
+	r4 = sp + -336;
+	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
+	r12 = r4 >> 2;
+	heap32[(fp+-84)] = 1065353216;
+	heap32[(r12+1)] = 0;
+	heap32[(r12+2)] = 0;
+	heap32[(r12+3)] = 0;
+	heap32[(r12+4)] = 0;
+	heap32[(r12+5)] = 1065353216;
+	heap32[(r12+6)] = 0;
+	heap32[(r12+7)] = 0;
+	heap32[(r12+8)] = 0;
+	heap32[(r12+9)] = 0;
+	heap32[(r12+10)] = 1065353216;
+	heap32[(r12+11)] = 0;
+	heap32[(r12+12)] = 0;
+	heap32[(r12+13)] = 0;
+	heap32[(r12+14)] = 0;
+	heap32[(r12+15)] = 0;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 0;
+	heap32[(g0+3)] = 0;
+	heap32[(g0+4)] = r10;
+	heapFloat[(g0+5)] = f0;
+	heap32[(g0+6)] = r4;
+	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
+	f1 = heapFloat[(r3+136)];
+	f2 = heapFloat[(r3+137)];
+	f3 = heapFloat[(r3+138)];
+	f4 = f1*f1;
+	f5 = f2*f2;
+	f6 = heapFloat[(r3+139)];
+	f4 = f4+f5;
+	f5 = f3*f3;
+	f4 = f4+f5;
+	f5 = f6*f6;
+	f7 =                         2;
+	f4 = f4+f5;
+	f4 = f7/f4;
+	f5 = f3*f4;
+	f7 = f2*f4;
+	f4 = f1*f4;
+	f3 = f3*f5;
+	f8 = f1*f4;
+	f9 = f2*f7;
+	f0 =                         1;
+	heapFloat[(fp+-118)] = f0;
+	f10 = f9+f3;
+	f3 = f8+f3;
+	f11 = f1*f7;
+	f12 = f6*f5;
+	f10 = f0-f10;
+	f0 = heapFloat[(r3+92)];
+	heapFloat[(fp+-131)] = f0;
+	f13 = f11-f12;
+	f0 = heapFloat[(r3+88)];
+	heapFloat[(fp+-120)] = f0;
+	f11 = f11+f12;
+	f12 = heapFloat[(r3+93)];
+	heapFloat[(fp+-132)] = f12;
+	f0 = heapFloat[(fp+-118)];
+	f3 = f0-f3;
+	f0 = heapFloat[(r3+89)];
+	heapFloat[(fp+-121)] = f0;
+	f1 = f1*f5;
+	f7 = f6*f7;
+	f2 = f2*f5;
+	f4 = f6*f4;
+	f5 = f1+f7;
+	f6 = heapFloat[(r3+96)];
+	heapFloat[(fp+-129)] = f6;
+	f12 = f2-f4;
+	f14 = heapFloat[(r3+97)];
+	heapFloat[(fp+-136)] = f14;
+	f8 = f8+f9;
+	f0 = heapFloat[(fp+-120)];
+	f9 = f10*f0;
+	f0 = heapFloat[(fp+-121)];
+	f15 = f11*f0;
+	f0 = heapFloat[(fp+-120)];
+	f16 = f13*f0;
+	f0 = heapFloat[(fp+-121)];
+	f17 = f3*f0;
+	f0 = heapFloat[(fp+-131)];
+	f18 = f10*f0;
+	f19 = heapFloat[(fp+-132)];
+	f20 = f11*f19;
+	f21 = f13*f0;
+	f22 = f3*f19;
+	f1 = f1-f7;
+	f7 = heapFloat[(r3+94)];
+	heapFloat[(fp+-137)] = f7;
+	f2 = f2+f4;
+	f0 = heapFloat[(r3+90)];
+	heapFloat[(fp+-133)] = f0;
+	f0 = heapFloat[(fp+-118)];
+	f4 = f0-f8;
+	f6 = heapFloat[(r3+98)];
+	heapFloat[(fp+-130)] = f6;
+	f7 = f9+f15;
+	f0 = heapFloat[(fp+-133)];
+	f8 = f1*f0;
+	f9 = f16+f17;
+	f14 = f2*f0;
+	f0 = heapFloat[(fp+-120)];
+	f15 = f5*f0;
+	f0 = heapFloat[(fp+-121)];
+	f16 = f12*f0;
+	f17 = f18+f20;
+	f18 = heapFloat[(fp+-137)];
+	f19 = f1*f18;
+	f20 = f21+f22;
+	f21 = f2*f18;
+	f0 = heapFloat[(fp+-131)];
+	f22 = f5*f0;
+	f23 = heapFloat[(fp+-132)];
+	f24 = f12*f23;
+	f6 = heapFloat[(fp+-129)];
+	f10 = f10*f6;
+	f25 = heapFloat[(fp+-136)];
+	f11 = f11*f25;
+	f13 = f13*f6;
+	f3 = f3*f25;
+	f0 = f7+f8;
+	heapFloat[(fp+-124)] = f0;
+	f6 = heapFloat[(r3+72)];
+	f7 = f17+f19;
+	heapFloat[(fp+-134)] = f7;
+	f0 = f9+f14;
+	heapFloat[(fp+-125)] = f0;
+	f7 = heapFloat[(r3+73)];
+	f8 = f20+f21;
+	heapFloat[(fp+-139)] = f8;
+	f9 = f15+f16;
+	f0 = heapFloat[(fp+-133)];
+	f14 = f4*f0;
+	f15 = f22+f24;
+	f16 = f4*f18;
+	f10 = f10+f11;
+	f11 = heapFloat[(fp+-130)];
+	f1 = f1*f11;
+	f3 = f13+f3;
+	f2 = f2*f11;
+	f13 = heapFloat[(fp+-129)];
+	f5 = f5*f13;
+	f12 = f12*f25;
+	f17 = heapFloat[(r3+76)];
+	f1 = f10+f1;
+	heapFloat[(fp+-138)] = f1;
+	f10 = heapFloat[(r3+77)];
+	f2 = f3+f2;
+	heapFloat[(fp+-123)] = f2;
+	f0 = heapFloat[(fp+-124)];
+	f3 = f6*f0;
+	f0 = heapFloat[(fp+-125)];
+	f19 = f7*f0;
+	f0 = f9+f14;
+	heapFloat[(fp+-126)] = f0;
+	f1 = heapFloat[(r3+74)];
+	f0 = f15+f16;
+	heapFloat[(fp+-127)] = f0;
+	f2 = heapFloat[(fp+-134)];
+	f8 = f6*f2;
+	f9 = heapFloat[(fp+-139)];
+	f11 = f7*f9;
+	f5 = f5+f12;
+	f12 = heapFloat[(fp+-130)];
+	f4 = f4*f12;
+	f13 = heapFloat[(r3+80)];
+	f14 = heapFloat[(r3+81)];
+	f15 = heapFloat[(r3+78)];
+	f4 = f5+f4;
+	heapFloat[(fp+-122)] = f4;
+	f0 = heapFloat[(fp+-124)];
+	f5 = f17*f0;
+	f0 = heapFloat[(fp+-125)];
+	f16 = f10*f0;
+	f18 = f17*f2;
+	f20 = f10*f9;
+	f3 = f3+f19;
+	f0 = heapFloat[(fp+-126)];
+	f19 = f1*f0;
+	f8 = f8+f11;
+	f0 = heapFloat[(fp+-127)];
+	f11 = f1*f0;
+	f21 = heapFloat[(fp+-138)];
+	f22 = f6*f21;
+	f2 = heapFloat[(fp+-123)];
+	f23 = f7*f2;
+	f24 = heapFloat[(r3+82)];
+	f0 = heapFloat[(fp+-124)];
+	f25 = f13*f0;
+	f0 = heapFloat[(fp+-125)];
+	f26 = f14*f0;
+	f2 = heapFloat[(fp+-134)];
+	f27 = f13*f2;
+	f28 = f14*f9;
+	f5 = f5+f16;
+	f0 = heapFloat[(fp+-126)];
+	f16 = f15*f0;
+	f18 = f18+f20;
+	f0 = heapFloat[(fp+-127)];
+	f20 = f15*f0;
+	f29 = f17*f21;
+	f2 = heapFloat[(fp+-123)];
+	f30 = f10*f2;
+	f3 = f3+f19;
+	f19 = heapFloat[(fp+-84)];
+	heapFloat[(fp+-140)] = f19;
+	f0 = f8+f11;
+	heapFloat[(fp+-135)] = f0;
+	f2 = heapFloat[(r12+1)];
+	heapFloat[(fp+-128)] = f2;
+	f4 = f22+f23;
+	f8 = heapFloat[(fp+-122)];
+	f9 = f1*f8;
+	f5 = f5+f16;
+	f0 = f18+f20;
+	heapFloat[(fp+-119)] = f0;
+	f2 = f25+f26;
+	f0 = heapFloat[(fp+-126)];
+	f8 = f24*f0;
+	f11 = f27+f28;
+	f0 = heapFloat[(fp+-127)];
+	f12 = f24*f0;
+	f16 = f13*f21;
+	f18 = heapFloat[(fp+-123)];
+	f19 = f14*f18;
+	f20 = f29+f30;
+	f22 = heapFloat[(fp+-122)];
+	f23 = f15*f22;
+	f25 = heapFloat[(fp+-140)];
+	f26 = f3*f25;
+	f0 = heapFloat[(fp+-135)];
+	f27 = heapFloat[(fp+-128)];
+	f28 = f0*f27;
+	f4 = f4+f9;
+	f9 = heapFloat[(r12+2)];
+	f29 = heapFloat[(r3+86)];
+	f30 = heapFloat[(r3+85)];
+	f0 = heapFloat[(r12+8)];
+	heapFloat[(fp+-141)] = f0;
+	f2 = f2+f8;
+	f8 = heapFloat[(r12+4)];
+	f0 = heapFloat[(r12+9)];
+	f11 = f11+f12;
+	f12 = heapFloat[(r12+5)];
+	f20 = f20+f23;
+	f18 = heapFloat[(r12+10)];
+	heapFloat[(fp+-148)] = f18;
+	f21 = heapFloat[(r12+6)];
+	f22 = heapFloat[(r3+84)];
+	f16 = f16+f19;
+	f19 = heapFloat[(fp+-122)];
+	f23 = f24*f19;
+	f27 = f5*f25;
+	f19 = heapFloat[(fp+-119)];
+	f18 = heapFloat[(fp+-128)];
+	f18 = f19*f18;
+	f26 = f26+f28;
+	f28 = f4*f9;
+	f19 = heapFloat[(r3+102)];
+	heapFloat[(fp+-142)] = f19;
+	f19 = heapFloat[(r3+101)];
+	heapFloat[(fp+-143)] = f19;
+	f19 = heapFloat[(r3+100)];
+	heapFloat[(fp+-145)] = f19;
+	f19 = heapFloat[(r12+14)];
+	heapFloat[(fp+-144)] = f19;
+	f19 = heapFloat[(r12+13)];
+	heapFloat[(fp+-146)] = f19;
+	f19 = heapFloat[(r12+12)];
+	heapFloat[(fp+-147)] = f19;
+	f16 = f16+f23;
+	r4 = sp + -400;
+	f23 = f2*f25;
+	f19 = heapFloat[(fp+-128)];
+	f19 = f11*f19;
+	f18 = f27+f18;
+	f27 = f20*f9;
+	f26 = f26+f28;
+	f22 = -f22;
+	r10 = r4 >> 2;
+	f19 = f23+f19;
+	f23 = f16*f9;
+	f18 = f18+f27;
+	heapFloat[(fp+-100)] = f26;
+	f6 = f6*f22;
+	f17 = f17*f30;
+	f7 = f7*f22;
+	f10 = f10*f30;
+	f26 = f3*f8;
+	f27 = heapFloat[(fp+-135)];
+	f28 = f27*f12;
+	f19 = f19+f23;
+	heapFloat[(r10+1)] = f18;
+	f18 =                         0;
+	heapFloat[(r10+2)] = f19;
+	f6 = f6-f17;
+	f13 = f13*f29;
+	f7 = f7-f10;
+	f10 = f14*f29;
+	f1 = f1*f22;
+	f14 = f15*f30;
+	f15 = f5*f8;
+	f19 = heapFloat[(fp+-119)];
+	f17 = f19*f12;
+	f22 = f26+f28;
+	f23 = f4*f21;
+	f6 = f6-f13;
+	f7 = f7-f10;
+	f10 = heapFloat[(fp+-120)];
+	f10 = f10*f18;
+	f13 = heapFloat[(fp+-121)];
+	f13 = f13*f18;
+	f26 = heapFloat[(fp+-131)];
+	f26 = f26*f18;
+	f28 = heapFloat[(fp+-132)];
+	f28 = f28*f18;
+	f1 = f1-f14;
+	f14 = f24*f29;
+	f24 = f2*f8;
+	f29 = f11*f12;
+	f15 = f15+f17;
+	f17 = f20*f21;
+	f22 = f22+f23;
+	heap32[(r10+3)] = 0;
+	f1 = f1-f14;
+	f14 = heapFloat[(fp+-124)];
+	f14 = f14*f6;
+	f23 = heapFloat[(fp+-125)];
+	f23 = f23*f7;
+	f10 = f10+f13;
+	f13 = heapFloat[(fp+-133)];
+	f13 = f13*f18;
+	f30 = heapFloat[(fp+-134)];
+	f30 = f30*f6;
+	f19 = heapFloat[(fp+-139)];
+	f19 = f19*f7;
+	f26 = f26+f28;
+	f28 = heapFloat[(fp+-137)];
+	f28 = f28*f18;
+	f25 = heapFloat[(fp+-129)];
+	f25 = f25*f18;
+	f27 = heapFloat[(fp+-136)];
+	f27 = f27*f18;
+	f24 = f24+f29;
+	f29 = f16*f21;
+	f15 = f15+f17;
+	heapFloat[(r10+4)] = f22;
+	f10 = f10+f13;
+	f13 = f26+f28;
+	f14 = f14+f23;
+	f17 = heapFloat[(fp+-126)];
+	f17 = f17*f1;
+	f19 = f30+f19;
+	f22 = heapFloat[(fp+-127)];
+	f22 = f22*f1;
+	f23 = heapFloat[(fp+-138)];
+	f6 = f23*f6;
+	f23 = heapFloat[(fp+-123)];
+	f7 = f23*f7;
+	f23 = f25+f27;
+	f25 = heapFloat[(fp+-130)];
+	f25 = f25*f18;
+	f26 = heapFloat[(fp+-141)];
+	f27 = f3*f26;
+	f28 = heapFloat[(fp+-135)];
+	f30 = f28*f0;
+	f24 = f24+f29;
+	heapFloat[(r10+5)] = f15;
+	f15 = f23+f25;
+	heapFloat[(r10+6)] = f24;
+	f14 = f14+f17;
+	f17 = heapFloat[(fp+-145)];
+	f10 = f10+f17;
+	f17 = f19+f22;
+	f19 = heapFloat[(fp+-143)];
+	f13 = f13+f19;
+	f6 = f6+f7;
+	f19 = heapFloat[(fp+-122)];
+	f1 = f19*f1;
+	f7 = f5*f26;
+	f19 = heapFloat[(fp+-119)];
+	f22 = f19*f0;
+	f23 = f27+f30;
+	f24 = heapFloat[(fp+-148)];
+	f25 = f4*f24;
+	f13 = f17+f13;
+	f10 = f14+f10;
+	f1 = f6+f1;
+	f19 = heapFloat[(fp+-142)];
+	f6 = f15+f19;
+	f14 = f2*f26;
+	f15 = f11*f0;
+	f7 = f7+f22;
+	f17 = f20*f24;
+	f19 = f23+f25;
+	heap32[(r10+7)] = 0;
+	f1 = f1+f6;
+	f25 = heapFloat[(fp+-140)];
+	f6 = f25*f10;
+	f22 = heapFloat[(fp+-128)];
+	f22 = f22*f13;
+	f14 = f14+f15;
+	f15 = f16*f24;
+	f7 = f7+f17;
+	heapFloat[(r10+8)] = f19;
+	f8 = f8*f10;
+	f12 = f12*f13;
+	f6 = f6+f22;
+	f9 = f9*f1;
+	f14 = f14+f15;
+	heapFloat[(r10+9)] = f7;
+	f6 = f6+f9;
+	heapFloat[(r10+10)] = f14;
+	f7 = f26*f10;
+	f0 = f0*f13;
+	f8 = f8+f12;
+	f9 = f21*f1;
+	f8 = f8+f9;
+	f0 = f7+f0;
+	f7 = f24*f1;
+	f19 = heapFloat[(fp+-147)];
+	f6 = f6+f19;
+	heap32[(r10+11)] = 0;
+	f0 = f0+f7;
+	f19 = heapFloat[(fp+-146)];
+	f7 = f8+f19;
+	heapFloat[(r10+12)] = f6;
+	f19 = heapFloat[(fp+-144)];
+	f0 = f0+f19;
+	heapFloat[(r10+13)] = f7;
+	heapFloat[(r10+14)] = f0;
+	heap32[(r10+15)] = 0;
+	f0 = heapFloat[(fp+-68)];
+	f6 = heapFloat[(r13+1)];
+	f7 = heapFloat[(r13+2)];
+	f8 = f3*f0;
+	f9 = f5*f6;
+	f12 = heapFloat[(r13+8)];
+	f14 = heapFloat[(r13+9)];
+	f15 = heapFloat[(r13+10)];
+	f17 = heapFloat[(r13+4)];
+	f19 = heapFloat[(r13+5)];
+	f21 = heapFloat[(r13+6)];
+	f22 = f28*f0;
+	f23 = heapFloat[(fp+-119)];
+	f24 = f23*f6;
+	f8 = f8+f9;
+	f9 = f2*f7;
+	f25 = heapFloat[(r13+14)];
+	f26 = heapFloat[(r13+13)];
+	f27 = heapFloat[(r13+12)];
+	r10 = sp + -464;
+	f29 = f4*f0;
+	f30 = f20*f6;
+	f22 = f22+f24;
+	f24 = f11*f7;
+	f8 = f8+f9;
+	r12 = r10 >> 2;
+	f9 = f29+f30;
+	f29 = f16*f7;
+	f22 = f22+f24;
+	heapFloat[(fp+-116)] = f8;
+	f8 = f3*f17;
+	f24 = f5*f19;
+	f9 = f9+f29;
+	heapFloat[(r12+1)] = f22;
+	heapFloat[(r12+2)] = f9;
+	f9 = f28*f17;
+	f22 = f23*f19;
+	f8 = f8+f24;
+	f24 = f2*f21;
+	f29 = f4*f17;
+	f30 = f20*f19;
+	f9 = f9+f22;
+	f22 = f11*f21;
+	f8 = f8+f24;
+	heap32[(r12+3)] = 0;
+	f10 = -f10;
+	f24 = f29+f30;
+	f29 = f16*f21;
+	f9 = f9+f22;
+	heapFloat[(r12+4)] = f8;
+	f8 = f3*f10;
+	f22 = f28*f13;
+	f30 = f5*f10;
+	f23 = f23*f13;
+	f3 = f3*f12;
+	f5 = f5*f14;
+	f24 = f24+f29;
+	heapFloat[(r12+5)] = f9;
+	heapFloat[(r12+6)] = f24;
+	f8 = f8-f22;
+	f9 = f4*f1;
+	f22 = f30-f23;
+	f23 = f20*f1;
+	f10 = f2*f10;
+	f13 = f11*f13;
+	f24 = f28*f12;
+	f28 = heapFloat[(fp+-119)];
+	f28 = f28*f14;
+	f3 = f3+f5;
+	f2 = f2*f15;
+	f5 = f8-f9;
+	f8 = f22-f23;
+	f9 = f10-f13;
+	f1 = f16*f1;
+	f4 = f4*f12;
+	f10 = f20*f14;
+	f13 = f24+f28;
+	f11 = f11*f15;
+	f2 = f3+f2;
+	heap32[(r12+7)] = 0;
+	f1 = f9-f1;
+	f0 = f0*f5;
+	f3 = f6*f8;
+	f4 = f4+f10;
+	f6 = f16*f15;
+	f9 = f13+f11;
+	heapFloat[(r12+8)] = f2;
+	f2 = f17*f5;
+	f10 = f19*f8;
+	f0 = f0+f3;
+	f3 = f7*f1;
+	f4 = f4+f6;
+	heapFloat[(r12+9)] = f9;
+	f0 = f0+f3;
+	heapFloat[(r12+10)] = f4;
+	f3 = f12*f5;
+	f4 = f14*f8;
+	f2 = f2+f10;
+	f5 = f21*f1;
+	f2 = f2+f5;
+	f3 = f3+f4;
+	f1 = f15*f1;
+	f0 = f0+f27;
+	heap32[(r12+11)] = 0;
+	f1 = f3+f1;
+	f2 = f2+f26;
+	heapFloat[(r12+12)] = f0;
+	f0 = f1+f25;
+	heapFloat[(r12+13)] = f2;
+	heapFloat[(r12+14)] = f0;
+	heap32[(r12+15)] = 0;
+	r12 = sp + -16;
+	r13 = sp + -20;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r12;
+	heap32[(g0+3)] = r13;
+	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
+	r4 = r12 >> 2;
+	f0 = heapFloat[(r4+2)];
+	f1 = heapFloat[(fp+-5)];
+	f2 = heapFloat[(r4+1)];
+	f3 = heapFloat[(fp+-4)];
+	r4 = sp + -40;
+	r5 = sp + -44;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
+	f2 = f2*f1;
+	f5 = heapFloat[(fp+-118)];
+	f4 = heapFloat[(fp+-117)];
+	f4 = f5/f4;
+	f3 = f3*f1;
+	r4 = r4 >> 2;
+	f0 = f0*f1;
+	f1 = f2*f4;
+	f2 = heapFloat[(r7+1)];
+	f3 = f3*f4;
+	f5 = heapFloat[(fp+-48)];
+	f1 = f1-f2;
+	f2 = f3-f5;
+	f0 = f0*f4;
+	f3 = heapFloat[(r7+2)];
+	f5 = heapFloat[(r4+2)];
+	f6 = heapFloat[(fp+-11)];
+	f7 = heapFloat[(r4+1)];
+	f8 = heapFloat[(fp+-10)];
+	f0 = f0-f3;
+	f3 = f5*f6;
+	f5 = f7*f6;
+	f6 = f8*f6;
+	f7 = f2*f2;
+	f8 = f1*f1;
+	f7 = f7+f8;
+	f8 = f0*f0;
+	f3 = f3*f4;
+	f9 = heapFloat[(r11+2)];
+	f5 = f5*f4;
+	f10 = heapFloat[(r11+1)];
+	f4 = f6*f4;
+	f6 = heapFloat[(fp+-52)];
+	f7 = f7+f8;
+	f3 = f3-f9;
+	f5 = f5-f10;
+	f4 = f4-f6;
+	f6 =   1.1920928955078125e-007;
+	if(f7 >f6) //_LBB582_11
+{
+	heapFloat[(g0)] = f7;
+	sqrtf(i7);
+	r4 = heap32[(r3+5)];
+	r4 = r4 >> 2;
+	f7 = heapFloat[(fp+-118)];
+	f18 = f7/f_g0;
+	f7 = f2*f18;
+	f8 = heapFloat[(r4+64)];
+	f9 = heapFloat[(r4+65)];
+	f10 = f1*f18;
+	f11 = heapFloat[(r4+68)];
+	f12 = heapFloat[(r4+69)];
+	f13 = f0*f18;
+	f18 = heapFloat[(r4+72)];
+	f14 = heapFloat[(r4+73)];
+	f15 = heapFloat[(r4+66)];
+	f16 = heapFloat[(r4+70)];
+	f8 = f8*f7;
+	f11 = f11*f10;
+	f9 = f9*f7;
+	f12 = f12*f10;
+	f17 = heapFloat[(r4+74)];
+	f8 = f8+f11;
+	f18 = f18*f13;
+	f9 = f9+f12;
+	f11 = f14*f13;
+	f12 = f15*f7;
+	f14 = f16*f10;
+	f18 = f8+f18;
+	f8 = f9+f11;
+	f9 = f12+f14;
+	f11 = f17*f13;
+	f9 = f9+f11;
+	f18 = f7*f18;
+	f8 = f10*f8;
+	f18 = f18+f8;
+	f8 = f13*f9;
+	f18 = f18+f8;
+}
+	f8 = f4*f4;
+	f9 = f5*f5;
+	f8 = f8+f9;
+	f9 = f3*f3;
+	f8 = f8+f9;
+	if(f8 >f6) //_LBB582_14
+{
+	heapFloat[(g0)] = f8;
+	sqrtf(i7);
+	r4 = heap32[(r3+6)];
+	r4 = r4 >> 2;
+	f9 = heapFloat[(fp+-118)];
+	f8 = f9/f_g0;
+	f9 = f4*f8;
+	f11 = heapFloat[(r4+64)];
+	f12 = heapFloat[(r4+65)];
+	f14 = f5*f8;
+	f15 = heapFloat[(r4+68)];
+	f16 = heapFloat[(r4+69)];
+	f17 = f3*f8;
+	f8 = heapFloat[(r4+72)];
+	f19 = heapFloat[(r4+73)];
+	f20 = heapFloat[(r4+66)];
+	f21 = heapFloat[(r4+70)];
+	f11 = f11*f9;
+	f15 = f15*f14;
+	f12 = f12*f9;
+	f16 = f16*f14;
+	f22 = heapFloat[(r4+74)];
+	f11 = f11+f15;
+	f8 = f8*f17;
+	f12 = f12+f16;
+	f15 = f19*f17;
+	f16 = f20*f9;
+	f19 = f21*f14;
+	f8 = f11+f8;
+	f11 = f12+f15;
+	f12 = f16+f19;
+	f15 = f22*f17;
+	f12 = f12+f15;
+	f8 = f9*f8;
+	f11 = f14*f11;
+	f8 = f8+f11;
+	f11 = f17*f12;
+	f8 = f8+f11;
+}
+else{
+	f8 =                         0;
+}
+	f10 = f10*f18;
+	f11 = f14*f8;
+	f7 = f7*f18;
+	f9 = f9*f8;
+	f10 = f10+f11;
+	f7 = f7+f9;
+	f9 = f13*f18;
+	f8 = f17*f8;
+	f8 = f9+f8;
+	f9 = f7*f7;
+	f11 = f10*f10;
+	f9 = f9+f11;
+	f11 = f8*f8;
+	f9 = f9+f11;
+if(!(f9 <=f6)) //_LBB582_35
+{
+	heapFloat[(g0)] = f9;
+	sqrtf(i7);
+	r4 = heap32[(r3+5)];
+	r5 = heap32[(r3+6)];
+	r4 = r4 >> 2;
+	r5 = r5 >> 2;
+	f9 = heapFloat[(fp+-118)];
+	f6 = f9/f_g0;
+	f11 = heapFloat[(r4+64)];
+	f7 = f7*f6;
+	f12 = heapFloat[(r4+65)];
+	f13 = heapFloat[(r5+64)];
+	f14 = heapFloat[(r5+65)];
+	f15 = heapFloat[(r4+68)];
+	f10 = f10*f6;
+	f16 = heapFloat[(r4+69)];
+	f17 = heapFloat[(r5+68)];
+	f18 = heapFloat[(r5+69)];
+	f19 = heapFloat[(r4+66)];
+	f20 = heapFloat[(r4+70)];
+	f21 = heapFloat[(r5+66)];
+	f22 = heapFloat[(r5+70)];
+	f11 = f11*f7;
+	f15 = f15*f10;
+	f23 = heapFloat[(r4+72)];
+	f6 = f8*f6;
+	f8 = heapFloat[(r4+73)];
+	f24 = heapFloat[(r5+72)];
+	f25 = heapFloat[(r5+73)];
+	f12 = f12*f7;
+	f16 = f16*f10;
+	f13 = f13*f7;
+	f17 = f17*f10;
+	f14 = f14*f7;
+	f18 = f18*f10;
+	f26 = heapFloat[(r4+74)];
+	f27 = heapFloat[(r5+74)];
+	f11 = f11+f15;
+	f15 = f23*f6;
+	f12 = f12+f16;
+	f8 = f8*f6;
+	f16 = f19*f7;
+	f19 = f20*f10;
+	f13 = f13+f17;
+	f17 = f24*f6;
+	f14 = f14+f18;
+	f18 = f25*f6;
+	f20 = f21*f7;
+	f21 = f22*f10;
+	f11 = f11+f15;
+	f8 = f12+f8;
+	f12 = f13+f17;
+	f13 = f14+f18;
+	f14 = f16+f19;
+	f15 = f26*f6;
+	f16 = f20+f21;
+	f17 = f27*f6;
+	f14 = f14+f15;
+	f15 = f16+f17;
+	f11 = f7*f11;
+	f8 = f10*f8;
+	f7 = f7*f12;
+	f10 = f10*f13;
+	f8 = f11+f8;
+	f11 = f6*f14;
+	f7 = f7+f10;
+	f6 = f6*f15;
+	f8 = f8+f11;
+	f6 = f7+f6;
+	f7 = f8+f6;
+	f7 = f7*f7;
+	f0 = f0*f8;
+	f3 = f3*f6;
+	f1 = f1*f8;
+	f5 = f5*f6;
+	f2 = f2*f8;
+	f4 = f4*f6;
+	f0 = f0-f3;
+	f3 = f9/f7;
+	f1 = f1-f5;
+	f2 = f2-f4;
+	f4 = heapFloat[(r3+140)];
+	f0 = f0*f3;
+	f1 = f1*f3;
+	f2 = f2*f3;
+	f3 =                         0;
+	if(f4 >=f3) //_LBB582_18
+{
+	r4 = heapU8[r0+541];
+	if(r4 !=0) //_LBB582_20
+{
+	f4 = f4/f8;
+}
+	f5 = heapFloat[(r3+141)];
+	f6 = heapFloat[(r3+142)];
+	f5 = f5+f2;
+	f6 = f6+f1;
+	f7 = heapFloat[(r3+143)];
+	f7 = f7+f0;
+	f8 = f5*f5;
+	f9 = f6*f6;
+	f8 = f8+f9;
+	f9 = f7*f7;
+	f8 = f8+f9;
+	heapFloat[(g0)] = f8;
+	sqrtf(i7);
+	f9 = f_g0;
+	if(f9 >f4) //_LBB582_23
+{
+	heapFloat[(g0)] = f8;
+	sqrtf(i7);
+	f1 = heapFloat[(fp+-118)];
+	f0 = f1/f_g0;
+	f1 = f7*f0;
+	f2 = f6*f0;
+	f0 = f5*f0;
+	f7 = heapFloat[(r3+143)];
+	f1 = f1*f4;
+	f6 = heapFloat[(r3+142)];
+	f2 = f2*f4;
+	f5 = heapFloat[(r3+141)];
+	f4 = f0*f4;
+	f0 = f1-f7;
+	f1 = f2-f6;
+	f2 = f4-f5;
+}
+else{
+	f5 = heapFloat[(r3+141)];
+	f6 = heapFloat[(r3+142)];
+	f7 = heapFloat[(r3+143)];
+}
+	f4 = f5+f2;
+	f5 = f6+f1;
+	heapFloat[(r3+141)] = f4;
+	f4 = f7+f0;
+	heapFloat[(r3+142)] = f5;
+	heapFloat[(r3+143)] = f4;
+}
+	f4 = f2*f2;
+	f5 = f1*f1;
+	f4 = f4+f5;
+	f5 = f0*f0;
+	f4 = f4+f5;
+	heapFloat[(g0)] = f4;
+	sqrtf(i7);
+	f4 = f_g0;
+	f5 = heapFloat[(fp+-118)];
+	f5 = f5/f4;
+	f0 = f0*f5;
+	f1 = f1*f5;
+	f2 = f2*f5;
+	f5 = heapFloat[(r8+84)];
+if(!(f5 ==f3)) //_LBB582_27
+{
+	r4 = heap32[(r3+5)];
+	r4 = r4 >> 2;
+	f5 = f4*f3;
+	f6 = heapFloat[(r8+126)];
+	f7 = heapFloat[(r4+65)];
+	f8 = heapFloat[(r4+64)];
+	f9 = heapFloat[(r4+69)];
+	f10 = heapFloat[(r4+68)];
+	f11 = heapFloat[(r4+73)];
+	f12 = heapFloat[(r4+72)];
+	f13 = heapFloat[(r4+66)];
+	f14 = heapFloat[(r4+70)];
+	f15 = heapFloat[(r4+74)];
+	f6 = f6+f5;
+	heapFloat[(r8+126)] = f6;
+	f6 = heapFloat[(r8+127)];
+	f6 = f6+f5;
+	heapFloat[(r8+127)] = f6;
+	f6 = heapFloat[(r8+128)];
+	f5 = f6+f5;
+	heapFloat[(r8+128)] = f5;
+	f5 = f8*f2;
+	f6 = f7*f1;
+	f7 = heapFloat[(r8+134)];
+	f5 = f5+f6;
+	f6 = f13*f0;
+	f5 = f5+f6;
+	f6 = f7*f4;
+	f7 = heapFloat[(r8+136)];
+	f8 = heapFloat[(r8+135)];
+	f13 = heapFloat[(r8+130)];
+	f5 = f5*f6;
+	f6 = f10*f2;
+	f9 = f9*f1;
+	f6 = f6+f9;
+	f9 = f14*f0;
+	f5 = f13+f5;
+	heapFloat[(r8+130)] = f5;
+	f5 = f6+f9;
+	f6 = f8*f4;
+	f8 = f12*f2;
+	f9 = f11*f1;
+	f5 = f5*f6;
+	f6 = heapFloat[(r8+131)];
+	f5 = f6+f5;
+	f6 = f8+f9;
+	f8 = f15*f0;
+	heapFloat[(r8+131)] = f5;
+	f5 = f6+f8;
+	f6 = f7*f4;
+	f5 = f5*f6;
+	f6 = heapFloat[(r8+132)];
+	f5 = f6+f5;
+	heapFloat[(r8+132)] = f5;
+}
+	f5 = heapFloat[(r9+84)];
+if(!(f5 ==f3)) //_LBB582_35
+{
+	f3 = -f4;
+	r4 = heap32[(r3+6)];
+	r4 = r4 >> 2;
+	f5 =                        -0;
+	f4 = f4*f5;
+	f5 = heapFloat[(r9+126)];
+	f6 = heapFloat[(r4+65)];
+	f7 = heapFloat[(r4+64)];
+	f8 = heapFloat[(r4+69)];
+	f9 = heapFloat[(r4+68)];
+	f10 = heapFloat[(r4+73)];
+	f11 = heapFloat[(r4+72)];
+	f12 = heapFloat[(r4+66)];
+	f13 = heapFloat[(r4+70)];
+	f14 = heapFloat[(r4+74)];
+	f5 = f5+f4;
+	heapFloat[(r9+126)] = f5;
+	f5 = heapFloat[(r9+127)];
+	f5 = f5+f4;
+	heapFloat[(r9+127)] = f5;
+	f5 = heapFloat[(r9+128)];
+	f4 = f5+f4;
+	heapFloat[(r9+128)] = f4;
+	f4 = f7*f2;
+	f5 = f6*f1;
+	f4 = f4+f5;
+	f5 = f12*f0;
+	f6 = heapFloat[(r9+134)];
+	f4 = f4+f5;
+	f5 = f6*f3;
+	f6 = heapFloat[(r9+136)];
+	f7 = heapFloat[(r9+135)];
+	f12 = heapFloat[(r9+130)];
+	f4 = f4*f5;
+	f5 = f9*f2;
+	f8 = f8*f1;
+	f5 = f5+f8;
+	f8 = f13*f0;
+	f4 = f12+f4;
+	heapFloat[(r9+130)] = f4;
+	f4 = f5+f8;
+	f5 = f7*f3;
+	f2 = f11*f2;
+	f1 = f10*f1;
+	f4 = f4*f5;
+	f5 = heapFloat[(r9+131)];
+	f4 = f5+f4;
+	f1 = f2+f1;
+	f0 = f14*f0;
+	heapFloat[(r9+131)] = f4;
+	f0 = f1+f0;
+	f1 = f6*f3;
+	f0 = f0*f1;
+	f1 = heapFloat[(r9+132)];
+	f0 = f1+f0;
+	heapFloat[(r9+132)] = f0;
+}
+}
+}
+} while(0);
+	r1 = r1 >> 2;
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r1+82)];
+	f1 = heapFloat[(r1+132)];
+	f2 = heapFloat[(r1+81)];
+	f3 = heapFloat[(r1+131)];
+	f4 = heapFloat[(r1+80)];
+	f5 = heapFloat[(r1+130)];
+	f6 = heapFloat[(r2+82)];
+	f7 = heapFloat[(r2+132)];
+	f8 = heapFloat[(r2+81)];
+	f9 = heapFloat[(r2+131)];
+	f10 = heapFloat[(r2+80)];
+	f11 = heapFloat[(r2+130)];
+	f0 = f0+f1;
+	f1 = f2+f3;
+	f2 = f4+f5;
+	f3 = f6+f7;
+	f4 = f8+f9;
+	f5 = f10+f11;
+	r4 = heapU8[r0+514];
+if(!(r4 ==0)) //_LBB582_43
+{
+	f6 = heapFloat[(r3+129)];
+	f7 = heapFloat[(r3+123)];
+	f8 = heapFloat[(r3+112)];
+	f9 = f5-f2;
+	f10 = heapFloat[(r3+113)];
+	f11 = f4-f1;
+	f12 = heapFloat[(r3+114)];
+	f13 = f3-f0;
+	f9 = f9*f8;
+	f11 = f11*f10;
+	f7 = f6*f7;
+	f14 = heapFloat[(r3+105)];
+	f9 = f9+f11;
+	f11 = f13*f12;
+	f7 = f7*f14;
+	f9 = f9+f11;
+	f11 = heapFloat[(fp+-117)];
+	f7 = f7/f11;
+	f11 =                         0;
+	if(f9 >f11) //_LBB582_38
+{
+	f6 = f6*f9;
+	f9 = heapFloat[(r3+106)];
+	f6 = f6*f9;
+	f7 = f6+f7;
+}
+	f6 = heapFloat[(r3+120)];
+	f9 = heapFloat[(r3+126)];
+	f6 = f6*f7;
+	f6 = f9+f6;
+	f6 = f6 > f11 ? f6 : f11;
+	heapFloat[(r3+126)] = f6;
+	f6 = f6-f9;
+	f7 = f8*f6;
+	f8 = heapFloat[(r3+131)];
+	f9 = f10*f6;
+	f10 = heapFloat[(r3+132)];
+	f13 = heapFloat[(r3+133)];
+	f6 = f12*f6;
+	f12 = f7*f8;
+	f14 = f9*f10;
+	f12 = f12+f14;
+	f14 = f6*f13;
+	f12 = f12+f14;
+	f10 = f10*f12;
+	f8 = f8*f12;
+	f12 = f13*f12;
+	f9 = f9-f10;
+	f7 = f7-f8;
+	f6 = f6-f12;
+	f8 = f7*f7;
+	f10 = f9*f9;
+	f8 = f8+f10;
+	f10 = f6*f6;
+	f8 = f8+f10;
+	heapFloat[(g0)] = f8;
+	sqrtf(i7);
+	f8 = f_g0;
+	f10 =                         1;
+	f10 = f10/f8;
+	f6 = f6*f10;
+	f9 = f9*f10;
+	f7 = f7*f10;
+	f10 = heapFloat[(r1+84)];
+if(!(f10 ==f11)) //_LBB582_41
+{
+	r4 = heap32[(r3+5)];
+	r4 = r4 >> 2;
+	f10 = f8*f11;
+	f12 = heapFloat[(r1+126)];
+	f13 = heapFloat[(r4+65)];
+	f14 = heapFloat[(r4+64)];
+	f15 = heapFloat[(r4+69)];
+	f16 = heapFloat[(r4+68)];
+	f17 = heapFloat[(r4+73)];
+	f18 = heapFloat[(r4+72)];
+	f19 = heapFloat[(r4+66)];
+	f20 = heapFloat[(r4+70)];
+	f21 = heapFloat[(r4+74)];
+	f12 = f12+f10;
+	heapFloat[(r1+126)] = f12;
+	f12 = heapFloat[(r1+127)];
+	f12 = f12+f10;
+	heapFloat[(r1+127)] = f12;
+	f12 = heapFloat[(r1+128)];
+	f10 = f12+f10;
+	heapFloat[(r1+128)] = f10;
+	f10 = f14*f7;
+	f12 = f13*f9;
+	f13 = heapFloat[(r1+134)];
+	f10 = f10+f12;
+	f12 = f19*f6;
+	f10 = f10+f12;
+	f12 = f13*f8;
+	f13 = heapFloat[(r1+136)];
+	f14 = heapFloat[(r1+135)];
+	f19 = heapFloat[(r1+130)];
+	f10 = f10*f12;
+	f12 = f16*f7;
+	f15 = f15*f9;
+	f12 = f12+f15;
+	f15 = f20*f6;
+	f10 = f19+f10;
+	heapFloat[(r1+130)] = f10;
+	f10 = f12+f15;
+	f12 = f14*f8;
+	f14 = f18*f7;
+	f15 = f17*f9;
+	f10 = f10*f12;
+	f12 = heapFloat[(r1+131)];
+	f10 = f12+f10;
+	f12 = f14+f15;
+	f14 = f21*f6;
+	heapFloat[(r1+131)] = f10;
+	f10 = f12+f14;
+	f12 = f13*f8;
+	f10 = f10*f12;
+	f12 = heapFloat[(r1+132)];
+	f10 = f12+f10;
+	heapFloat[(r1+132)] = f10;
+}
+	f10 = heapFloat[(r2+84)];
+if(!(f10 ==f11)) //_LBB582_43
+{
+	f10 = -f8;
+	r4 = heap32[(r3+6)];
+	r4 = r4 >> 2;
+	f11 =                        -0;
+	f8 = f8*f11;
+	f11 = heapFloat[(r2+126)];
+	f12 = heapFloat[(r4+65)];
+	f13 = heapFloat[(r4+64)];
+	f14 = heapFloat[(r4+69)];
+	f15 = heapFloat[(r4+68)];
+	f16 = heapFloat[(r4+73)];
+	f17 = heapFloat[(r4+72)];
+	f18 = heapFloat[(r4+66)];
+	f19 = heapFloat[(r4+70)];
+	f20 = heapFloat[(r4+74)];
+	f11 = f11+f8;
+	heapFloat[(r2+126)] = f11;
+	f11 = heapFloat[(r2+127)];
+	f11 = f11+f8;
+	heapFloat[(r2+127)] = f11;
+	f11 = heapFloat[(r2+128)];
+	f8 = f11+f8;
+	heapFloat[(r2+128)] = f8;
+	f8 = f13*f7;
+	f11 = f12*f9;
+	f8 = f8+f11;
+	f11 = f18*f6;
+	f12 = heapFloat[(r2+134)];
+	f8 = f8+f11;
+	f11 = f12*f10;
+	f12 = heapFloat[(r2+136)];
+	f13 = heapFloat[(r2+135)];
+	f18 = heapFloat[(r2+130)];
+	f8 = f8*f11;
+	f11 = f15*f7;
+	f14 = f14*f9;
+	f11 = f11+f14;
+	f14 = f19*f6;
+	f8 = f18+f8;
+	heapFloat[(r2+130)] = f8;
+	f8 = f11+f14;
+	f11 = f13*f10;
+	f7 = f17*f7;
+	f9 = f16*f9;
+	f8 = f8*f11;
+	f11 = heapFloat[(r2+131)];
+	f8 = f11+f8;
+	f7 = f7+f9;
+	f6 = f20*f6;
+	heapFloat[(r2+131)] = f8;
+	f6 = f7+f6;
+	f7 = f12*f10;
+	f6 = f6*f7;
+	f7 = heapFloat[(r2+132)];
+	f6 = f7+f6;
+	heapFloat[(r2+132)] = f6;
+}
+}
+	r0 = heapU8[r0+513];
+if(!(r0 ==0)) //_LBB582_52
+{
+	f6 = heapFloat[(r3+130)];
+	f7 = heapFloat[(r3+124)];
+	f8 = heapFloat[(r3+116)];
+	f2 = f5-f2;
+	f5 = heapFloat[(r3+117)];
+	f1 = f4-f1;
+	f4 = heapFloat[(r3+118)];
+	f0 = f3-f0;
+	f2 = f2*f8;
+	f1 = f1*f5;
+	f3 = f6*f7;
+	f7 = heapFloat[(r3+105)];
+	f1 = f2+f1;
+	f0 = f0*f4;
+	f2 = f3*f7;
+	f0 = f1+f0;
+	f1 = heapFloat[(fp+-117)];
+	f1 = f2/f1;
+	f2 =                         0;
+	if(f0 >f2) //_LBB582_46
+{
+	f0 = f6*f0;
+	f3 = heapFloat[(r3+106)];
+	f0 = f0*f3;
+	f1 = f0+f1;
+}
+	f0 = heapFloat[(r3+121)];
+	f3 = heapFloat[(r3+127)];
+	f0 = f0*f1;
+	f0 = f3+f0;
+	f0 = f0 > f2 ? f0 : f2;
+	heapFloat[(r3+127)] = f0;
+	f0 = f0-f3;
+	f1 = heapFloat[(r1+84)];
+	if(f1 !=f2) //_LBB582_49
+{
+	r0 = heap32[(r3+5)];
+	r0 = r0 >> 2;
+	f1 = f0*f2;
+	f3 = heapFloat[(r1+126)];
+	f6 = heapFloat[(r0+65)];
+	f7 = heapFloat[(r0+64)];
+	f9 = heapFloat[(r0+69)];
+	f10 = heapFloat[(r0+68)];
+	f11 = heapFloat[(r0+73)];
+	f12 = heapFloat[(r0+72)];
+	f13 = heapFloat[(r0+66)];
+	f14 = heapFloat[(r0+70)];
+	f15 = heapFloat[(r0+74)];
+	f3 = f3+f1;
+	heapFloat[(r1+126)] = f3;
+	f3 = heapFloat[(r1+127)];
+	f3 = f3+f1;
+	heapFloat[(r1+127)] = f3;
+	f3 = heapFloat[(r1+128)];
+	f1 = f3+f1;
+	heapFloat[(r1+128)] = f1;
+	f1 = f7*f8;
+	f3 = f6*f5;
+	f6 = heapFloat[(r1+134)];
+	f1 = f1+f3;
+	f3 = f13*f4;
+	f1 = f1+f3;
+	f3 = f6*f0;
+	f6 = heapFloat[(r1+136)];
+	f7 = heapFloat[(r1+135)];
+	f13 = heapFloat[(r1+130)];
+	f1 = f1*f3;
+	f3 = f10*f8;
+	f9 = f9*f5;
+	f3 = f3+f9;
+	f9 = f14*f4;
+	f1 = f13+f1;
+	heapFloat[(r1+130)] = f1;
+	f1 = f3+f9;
+	f3 = f7*f0;
+	f8 = f12*f8;
+	f5 = f11*f5;
+	f1 = f1*f3;
+	f3 = heapFloat[(r1+131)];
+	f1 = f3+f1;
+	f5 = f8+f5;
+	f4 = f15*f4;
+	heapFloat[(r1+131)] = f1;
+	f4 = f5+f4;
+	f5 = f6*f0;
+	f4 = f4*f5;
+	f5 = heapFloat[(r1+132)];
+	f4 = f5+f4;
+	heapFloat[(r1+132)] = f4;
+	f8 = heapFloat[(r3+116)];
+	f5 = heapFloat[(r3+117)];
+	f4 = heapFloat[(r3+118)];
+}
+	f1 = heapFloat[(r2+84)];
+if(!(f1 ==f2)) //_LBB582_52
+{
+	f1 = -f0;
+	r0 = heap32[(r3+6)];
+	r0 = r0 >> 2;
+	f2 =                        -0;
+	f0 = f0*f2;
+	f2 = heapFloat[(r2+126)];
+	f3 = heapFloat[(r0+65)];
+	f6 = heapFloat[(r0+64)];
+	f7 = heapFloat[(r0+69)];
+	f9 = heapFloat[(r0+68)];
+	f10 = heapFloat[(r0+73)];
+	f11 = heapFloat[(r0+72)];
+	f12 = heapFloat[(r0+66)];
+	f13 = heapFloat[(r0+70)];
+	f14 = heapFloat[(r0+74)];
+	f2 = f2+f0;
+	heapFloat[(r2+126)] = f2;
+	f2 = heapFloat[(r2+127)];
+	f2 = f2+f0;
+	heapFloat[(r2+127)] = f2;
+	f2 = heapFloat[(r2+128)];
+	f0 = f2+f0;
+	heapFloat[(r2+128)] = f0;
+	f0 = f6*f8;
+	f2 = f3*f5;
+	f0 = f0+f2;
+	f2 = f12*f4;
+	f3 = heapFloat[(r2+134)];
+	f0 = f0+f2;
+	f2 = f3*f1;
+	f3 = heapFloat[(r2+136)];
+	f6 = heapFloat[(r2+135)];
+	f12 = heapFloat[(r2+130)];
+	f0 = f0*f2;
+	f2 = f9*f8;
+	f7 = f7*f5;
+	f2 = f2+f7;
+	f7 = f13*f4;
+	f0 = f12+f0;
+	heapFloat[(r2+130)] = f0;
+	f0 = f2+f7;
+	f2 = f6*f1;
+	f6 = f11*f8;
+	f5 = f10*f5;
+	f0 = f0*f2;
+	f2 = heapFloat[(r2+131)];
+	f0 = f2+f0;
+	f2 = f6+f5;
+	f4 = f14*f4;
+	heapFloat[(r2+131)] = f0;
+	f0 = f2+f4;
+	f1 = f3*f1;
+	f0 = f0*f1;
+	f1 = heapFloat[(r2+132)];
+	f0 = f1+f0;
+	heapFloat[(r2+132)] = f0;
+}
+}
+}
+	return;
+}
+
+function _ZN21btConeTwistConstraint8setParamEifi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	f0 = heapFloat[(fp+2)];
+	r2 = heap32[(fp+3)];
+	r3 = (r0 + -3)|0;
+	if(uint(r3) <uint(2)) //_LBB583_5
+{
+	if(uint(r2) >uint(2)) //_LBB583_7
+{
+	r0 = r1 >> 2;
+	heapFloat[(r0+148)] = f0;
+	r1 = heap32[(r0+145)];
+	r1 = r1 | 4;
+	heap32[(r0+145)] = r1;
+	return;
+}
+else{
+	r1 = r1 >> 2;
+	heapFloat[(r1+146)] = f0;
+	r0 = heap32[(r1+145)];
+	r0 = r0 | 1;
+	heap32[(r1+145)] = r0;
+	return;
+}
+}
+else{
+	r0 = (r0 + -1)|0;
+	if(uint(r0) >uint(1)) //_LBB583_8
+{
+	r0 = _2E_str10;
+	r1 = _2E_str24;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 1066;
+	_assert(i7);
+}
+else{
+	if(uint(r2) >uint(2)) //_LBB583_4
+{
+	r1 = r1 >> 2;
+	heapFloat[(r1+105)] = f0;
+	return;
+}
+else{
+	r1 = r1 >> 2;
+	heapFloat[(r1+147)] = f0;
+	r2 = heap32[(r1+145)];
+	r2 = r2 | 2;
+	heap32[(r1+145)] = r2;
+	return;
+}
+}
+}
+}
+
+function _ZNK21btConeTwistConstraint8getParamEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+2)];
+	r3 = (r0 + -3)|0;
+	if(uint(r3) <uint(2)) //_LBB584_9
+{
+	if(uint(r2) >uint(2)) //_LBB584_13
+{
+	r0 = (r2 + -3)|0;
+	if(uint(r0) >uint(2)) //_LBB584_17
+{
+	r1 = _2E_str10;
+	r0 = _2E_str24;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 1107;
+	_assert(i7);
+}
+else{
+	r0 = heapU8[r1+580];
+	r0 = r0 & 4;
+	if(r0 !=0) //_LBB584_16
+{
+	r1 = (r1 + 592)|0;
+}
+else{
+	r1 = _2E_str543;
+	r0 = _2E_str24;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 1102;
+	_assert(i7);
+}
+}
+}
+else{
+	r2 = heapU8[r1+580];
+	r2 = r2 & 1;
+	if(r2 != 0) //_LBB584_12
+{
+	r1 = (r1 + 584)|0;
+}
+else{
+	r1 = _2E_str442;
+	r2 = _2E_str24;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 1097;
+	_assert(i7);
+}
+}
+}
+else{
+	r0 = (r0 + -1)|0;
+	if(uint(r0) >uint(1)) //_LBB584_18
+{
+	r1 = _2E_str10;
+	r0 = _2E_str24;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 1111;
+	_assert(i7);
+}
+else{
+	if(uint(r2) >uint(2)) //_LBB584_6
+{
+	r2 = (r2 + -3)|0;
+	if(uint(r2) >uint(2)) //_LBB584_8
+{
+	r1 = _2E_str10;
+	r2 = _2E_str24;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 1090;
+	_assert(i7);
+}
+else{
+	r1 = (r1 + 420)|0;
+}
+}
+else{
+	r2 = heapU8[r1+580];
+	r2 = r2 & 2;
+	if(r2 !=0) //_LBB584_5
+{
+	r1 = (r1 + 588)|0;
+}
+else{
+	r1 = _2E_str1340;
+	r2 = _2E_str24;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 1081;
+	_assert(i7);
+}
+}
+}
+}
+	r0 = r1 >> 2;
+	f0 = heapFloat[(r0)];
+	f_g0 = f0;
+	return;
+}
+
+function _ZN15btJacobianEntryC2ERK11btMatrix3x3S2_RK9btVector3S5_S5_S5_fS5_f(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+5)];
+	r1 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r0)];
+	heapFloat[(r1)] = f0;
+	f1 = heapFloat[(r0+1)];
+	heapFloat[(r1+1)] = f1;
+	f2 = heapFloat[(r0+2)];
+	r2 = heap32[(fp+3)];
+	heapFloat[(r1+2)] = f2;
+	r2 = r2 >> 2;
+	heap32[(r1+3)] = heap32[(r0+3)];
+	f3 = heapFloat[(r2)];
+	f4 = heapFloat[(r2+1)];
+	f5 = heapFloat[(r2+2)];
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	f6 = f4*f2;
+	f7 = f5*f1;
+	f5 = f5*f0;
+	f8 = f3*f2;
+	f6 = f6-f7;
+	f7 = heapFloat[(r0)];
+	f5 = f5-f8;
+	f8 = heapFloat[(r0+1)];
+	f3 = f3*f1;
+	f4 = f4*f0;
+	f9 = heapFloat[(r0+4)];
+	f10 = heapFloat[(r0+5)];
+	f7 = f7*f6;
+	f8 = f8*f5;
+	f3 = f3-f4;
+	f4 = heapFloat[(r0+2)];
+	f11 = heapFloat[(r0+8)];
+	f12 = heapFloat[(r0+9)];
+	f13 = heapFloat[(r0+10)];
+	f14 = heapFloat[(r0+6)];
+	f9 = f9*f6;
+	f10 = f10*f5;
+	f7 = f7+f8;
+	f4 = f4*f3;
+	f6 = f11*f6;
+	f5 = f12*f5;
+	f8 = f9+f10;
+	f9 = f14*f3;
+	f4 = f7+f4;
+	f5 = f6+f5;
+	f3 = f13*f3;
+	f6 = f8+f9;
+	heapFloat[(r1+4)] = f4;
+	f3 = f5+f3;
+	heapFloat[(r1+5)] = f6;
+	r0 = heap32[(fp+4)];
+	heapFloat[(r1+6)] = f3;
+	r0 = r0 >> 2;
+	heap32[(r1+7)] = 0;
+	f5 = heapFloat[(r0)];
+	f7 = heapFloat[(r0+1)];
+	f8 = heapFloat[(r0+2)];
+	r0 = heap32[(fp+2)];
+	r0 = r0 >> 2;
+	f9 = f8*f1;
+	f10 = f7*f2;
+	f2 = f5*f2;
+	f8 = f8*f0;
+	f9 = f9-f10;
+	f10 = heapFloat[(r0)];
+	f2 = f2-f8;
+	f8 = heapFloat[(r0+1)];
+	f0 = f7*f0;
+	f1 = f5*f1;
+	f5 = heapFloat[(r0+4)];
+	f7 = heapFloat[(r0+5)];
+	f10 = f10*f9;
+	f8 = f8*f2;
+	f0 = f0-f1;
+	f1 = heapFloat[(r0+2)];
+	f11 = heapFloat[(r0+8)];
+	f12 = heapFloat[(r0+9)];
+	f13 = heapFloat[(r0+10)];
+	f14 = heapFloat[(r0+6)];
+	f5 = f5*f9;
+	f7 = f7*f2;
+	f8 = f10+f8;
+	f1 = f1*f0;
+	f9 = f11*f9;
+	f2 = f12*f2;
+	f5 = f5+f7;
+	f7 = f14*f0;
+	f1 = f8+f1;
+	f2 = f9+f2;
+	f0 = f13*f0;
+	f5 = f5+f7;
+	heapFloat[(r1+8)] = f1;
+	f0 = f2+f0;
+	heapFloat[(r1+9)] = f5;
+	r0 = heap32[(fp+6)];
+	heapFloat[(r1+10)] = f0;
+	r0 = r0 >> 2;
+	heap32[(r1+11)] = 0;
+	f2 = heapFloat[(r0+2)];
+	f7 = heapFloat[(r0+1)];
+	f8 = heapFloat[(r0)];
+	f8 = f8*f4;
+	f7 = f7*f6;
+	heapFloat[(r1+12)] = f8;
+	f2 = f2*f3;
+	heapFloat[(r1+13)] = f7;
+	r0 = heap32[(fp+8)];
+	heapFloat[(r1+14)] = f2;
+	r0 = r0 >> 2;
+	heap32[(r1+15)] = 0;
+	f9 = heapFloat[(r0+2)];
+	f10 = heapFloat[(r0+1)];
+	f11 = heapFloat[(r0)];
+	f4 = f8*f4;
+	f6 = f7*f6;
+	f7 = f10*f5;
+	f8 = f11*f1;
+	f4 = f4+f6;
+	f2 = f2*f3;
+	f3 = f9*f0;
+	heapFloat[(r1+16)] = f8;
+	f2 = f4+f2;
+	f4 = heapFloat[(fp+7)];
+	f1 = f8*f1;
+	f5 = f7*f5;
+	heapFloat[(r1+17)] = f7;
+	f2 = f2+f4;
+	f4 = heapFloat[(fp+9)];
+	f1 = f1+f5;
+	f0 = f3*f0;
+	heapFloat[(r1+18)] = f3;
+	f2 = f2+f4;
+	f0 = f1+f0;
+	f0 = f2+f0;
+	heap32[(r1+19)] = 0;
+	f1 =                         0;
+	heapFloat[(r1+20)] = f0;
+	if(f0 >f1) //_LBB585_2
+{
+	return;
+}
+else{
+	r0 = _2E_str846;
+	r1 = _2E_str947;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 53;
+	_assert(i7);
+}
+}
+
+function _ZNK21btConeTwistConstraint16GetPointForAngleEff(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	f0 = heapFloat[(fp+2)];
+	heapFloat[(g0)] = f0;
+	cosf(i7);
+	f1 = f_g0;
+	r0 = heap32[(fp+1)];
+	heapFloat[(g0)] = f0;
+	sinf(i7);
+	f0 = f_g0;
+	r0 = r0 >> 2;
+	r1 = heap32[(fp)];
+	f2 = heapFloat[(fp+3)];
+	f3 = f1; //fstod f1, f3
+	f3 = Math.abs(f3);
+	f4 =   1.1920928955078125e-007;
+	if(f3 >f4) //_LBB586_2
+{
+	f3 = heapFloat[(r0+109)];
+	f4 = heapFloat[(r0+108)];
+	f5 = f0*f0;
+	f6 = f1*f1;
+	f5 = f5/f6;
+	f4 = f4*f4;
+	f6 =                         1;
+	f3 = f3*f3;
+	f4 = f5/f4;
+	f3 = f6/f3;
+	f5 = f5+f6;
+	f3 = f4+f3;
+	f3 = f5/f3;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	f3 = f_g0;
+}
+else{
+	f3 = heapFloat[(r0+108)];
+}
+	f4 =                         0;
+	f5 = f1*f1;
+	f5 = f5+f4;
+	f6 = f0*f0;
+	f5 = f5+f6;
+	heapFloat[(g0)] = f5;
+	sqrtf(i7);
+	f5 = f_g0;
+	if(f5 !=f4) //_LBB586_5
+{
+	f6 =                       0.5;
+	f3 = f3*f6;
+	heapFloat[(g0)] = f3;
+	sinf(i7);
+	f5 = f_g0/f5;
+	f6 = f5*f4;
+	heapFloat[(g0)] = f3;
+	f0 = -f0;
+	f1 = f1*f5;
+	cosf(i7);
+	f7 = -f6;
+	f0 = f5*f0;
+	f5 = f_g0*f2;
+	f8 = f1*f4;
+	f7 = f2*f7;
+	f5 = f5+f8;
+	f9 = f0*f4;
+	f7 = f7-f8;
+	f8 = f0*f2;
+	f10 = f_g0*f4;
+	f5 = f5-f9;
+	f7 = f7-f9;
+	f4 = f6*f4;
+	f8 = f10+f8;
+	f8 = f8-f4;
+	f9 = f5*f_g0;
+	f11 = f7*f6;
+	f4 = f10+f4;
+	f2 = f1*f2;
+	f2 = f4-f2;
+	f4 = f8*f_g0;
+	f10 = f7*f1;
+	f9 = f9-f11;
+	f11 = f8*f0;
+	f3 = f2*f_g0;
+	f7 = f7*f0;
+	f4 = f4-f10;
+	f10 = f2*f6;
+	f9 = f9-f11;
+	f2 = f2*f1;
+	r0 = r1 >> 2;
+	f2 = f9+f2;
+	f3 = f3-f7;
+	f1 = f5*f1;
+	f4 = f4-f10;
+	f0 = f5*f0;
+	f1 = f3-f1;
+	f3 = f8*f6;
+	f0 = f4+f0;
+	heapFloat[(r0)] = f2;
+	f1 = f1+f3;
+	heapFloat[(r0+1)] = f0;
+	heapFloat[(r0+2)] = f1;
+	heap32[(r0+3)] = 0;
+	return;
+}
+else{
+	r1 = _2E_str115;
+	r0 = _2E_str685;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 61;
+	_assert(i7);
+}
+}
+
+function _ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -384;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	heap32[(r1+123)] = 0;
+	r2 = 0;
+	heap32[(r1+122)] = 0;
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	heap8[r0+513] = r2;
+	heap8[r0+514] = r2;
+	r2 = heapU8[r0+540];
+	if(r2 ==0) //_LBB587_7
+{
+__label__ = 6;
+}
+else{
+	r2 = heapU8[r0+515];
+	if(r2 !=0) //_LBB587_7
+{
+__label__ = 6;
+}
+else{
+	f0 = heapFloat[(r1+136)];
+	f1 = heapFloat[(r1+137)];
+	f2 = heapFloat[(r1+138)];
+	f3 = f0*f0;
+	f4 = f1*f1;
+	f5 = heapFloat[(r1+139)];
+	f3 = f3+f4;
+	f4 = f2*f2;
+	f3 = f3+f4;
+	f4 = f5*f5;
+	f6 =                         2;
+	f3 = f3+f4;
+	r4 = r4 >> 2;
+	f3 = f6/f3;
+	f4 = f2*f3;
+	f6 = f1*f3;
+	f3 = f0*f3;
+	f7 = heapFloat[(r4)];
+	heapFloat[(fp+-48)] = f7;
+	f7 = heapFloat[(r1+89)];
+	heapFloat[(fp+-64)] = f7;
+	f7 = heapFloat[(r1+88)];
+	heapFloat[(fp+-66)] = f7;
+	f8 = heapFloat[(r4+1)];
+	heapFloat[(fp+-49)] = f8;
+	f9 = heapFloat[(r1+93)];
+	heapFloat[(fp+-65)] = f9;
+	f7 = heapFloat[(r1+92)];
+	heapFloat[(fp+-67)] = f7;
+	f8 = heapFloat[(r1+90)];
+	heapFloat[(fp+-54)] = f8;
+	f9 = heapFloat[(r1+94)];
+	heapFloat[(fp+-55)] = f9;
+	f2 = f2*f4;
+	f10 = f0*f3;
+	f11 = f1*f6;
+	f12 = heapFloat[(fp+-66)];
+	f7 = heapFloat[(fp+-48)];
+	f13 = f12*f7;
+	f7 = heapFloat[(fp+-67)];
+	f8 = heapFloat[(fp+-49)];
+	f14 = f7*f8;
+	f15 = heapFloat[(fp+-64)];
+	f7 = heapFloat[(fp+-48)];
+	f16 = f15*f7;
+	f9 = heapFloat[(fp+-65)];
+	f17 = f9*f8;
+	f18 = heapFloat[(r4+2)];
+	heapFloat[(fp+-83)] = f18;
+	f19 = heapFloat[(r1+97)];
+	heapFloat[(fp+-80)] = f19;
+	f20 = heapFloat[(r1+96)];
+	heapFloat[(fp+-81)] = f20;
+	r3 = r3 >> 2;
+	f21 = heapFloat[(r1+98)];
+	heapFloat[(fp+-77)] = f21;
+	f22 = f11+f2;
+	f23 =                         1;
+	heapFloat[(fp+-76)] = f23;
+	f2 = f10+f2;
+	f24 = f0*f6;
+	f25 = f5*f4;
+	f13 = f13+f14;
+	f14 = f20*f18;
+	f16 = f16+f17;
+	f17 = f19*f18;
+	f8 = heapFloat[(fp+-54)];
+	f26 = f8*f7;
+	f9 = heapFloat[(fp+-55)];
+	f8 = heapFloat[(fp+-49)];
+	f27 = f9*f8;
+	f22 = f23-f22;
+	heapFloat[(fp+-78)] = f22;
+	f13 = f13+f14;
+	heapFloat[(fp+-50)] = f13;
+	f14 = f24-f25;
+	heapFloat[(fp+-52)] = f14;
+	f24 = f24+f25;
+	heapFloat[(fp+-79)] = f24;
+	f16 = f16+f17;
+	heapFloat[(fp+-51)] = f16;
+	f2 = f23-f2;
+	heapFloat[(fp+-53)] = f2;
+	f0 = f0*f4;
+	f6 = f5*f6;
+	f1 = f1*f4;
+	f3 = f5*f3;
+	f4 = f26+f27;
+	f5 = f21*f18;
+	f2 = heapFloat[(r3)];
+	heapFloat[(fp+-40)] = f2;
+	f7 = heapFloat[(r1+73)];
+	f8 = heapFloat[(r1+72)];
+	f2 = heapFloat[(r3+1)];
+	heapFloat[(fp+-41)] = f2;
+	f9 = heapFloat[(r1+77)];
+	f12 = heapFloat[(r1+76)];
+	f13 = heapFloat[(r4+4)];
+	heapFloat[(fp+-59)] = f13;
+	f14 = heapFloat[(r4+5)];
+	heapFloat[(fp+-60)] = f14;
+	f15 = heapFloat[(r3+4)];
+	heapFloat[(fp+-68)] = f15;
+	f16 = heapFloat[(r3+5)];
+	heapFloat[(fp+-69)] = f16;
+	f17 = heapFloat[(r1+74)];
+	f18 = heapFloat[(r1+78)];
+	f19 = f0+f6;
+	heapFloat[(fp+-56)] = f19;
+	f20 = f1-f3;
+	heapFloat[(fp+-58)] = f20;
+	f10 = f10+f11;
+	f2 = heapFloat[(fp+-40)];
+	f11 = f8*f2;
+	f2 = heapFloat[(fp+-41)];
+	f21 = f12*f2;
+	f13 = heapFloat[(fp+-50)];
+	f23 = f22*f13;
+	f16 = heapFloat[(fp+-51)];
+	f25 = f24*f16;
+	f0 = f0-f6;
+	heapFloat[(fp+-61)] = f0;
+	f4 = f4+f5;
+	heapFloat[(fp+-57)] = f4;
+	f1 = f1+f3;
+	heapFloat[(fp+-62)] = f1;
+	f2 = heapFloat[(fp+-40)];
+	f3 = f7*f2;
+	f2 = heapFloat[(fp+-41)];
+	f5 = f9*f2;
+	f14 = heapFloat[(fp+-52)];
+	f6 = f14*f13;
+	f2 = heapFloat[(fp+-53)];
+	f26 = f2*f16;
+	f0 = heapFloat[(r3+2)];
+	heapFloat[(fp+-71)] = f0;
+	f1 = heapFloat[(r1+81)];
+	f2 = heapFloat[(r1+80)];
+	f4 = heapFloat[(r3+8)];
+	heapFloat[(fp+-38)] = f4;
+	f13 = heapFloat[(r3+9)];
+	heapFloat[(fp+-39)] = f13;
+	f14 = heapFloat[(r4+6)];
+	heapFloat[(fp+-37)] = f14;
+	f15 = heapFloat[(r3+6)];
+	heapFloat[(fp+-70)] = f15;
+	f0 = heapFloat[(r1+82)];
+	heapFloat[(fp+-82)] = f0;
+	f4 = heapFloat[(fp+-76)];
+	f10 = f4-f10;
+	heapFloat[(fp+-63)] = f10;
+	f14 = heapFloat[(fp+-66)];
+	f13 = heapFloat[(fp+-59)];
+	f15 = f14*f13;
+	f16 = heapFloat[(fp+-67)];
+	f14 = heapFloat[(fp+-60)];
+	f19 = f16*f14;
+	f20 = heapFloat[(fp+-64)];
+	f22 = f20*f13;
+	f24 = heapFloat[(fp+-65)];
+	f27 = f24*f14;
+	f28 = heapFloat[(fp+-68)];
+	f29 = f8*f28;
+	f16 = heapFloat[(fp+-69)];
+	f30 = f12*f16;
+	f0 = f7*f28;
+	f4 = f9*f16;
+	f11 = f11+f21;
+	heapFloat[(fp+-42)] = f11;
+	f21 = heapFloat[(fp+-71)];
+	f10 = f2*f21;
+	heapFloat[(fp+-43)] = f10;
+	f10 = f23+f25;
+	heapFloat[(fp+-44)] = f10;
+	f13 = heapFloat[(fp+-61)];
+	f11 = heapFloat[(fp+-57)];
+	f14 = f13*f11;
+	f3 = f3+f5;
+	f5 = f1*f21;
+	f6 = f6+f26;
+	f16 = heapFloat[(fp+-62)];
+	f20 = f16*f11;
+	f23 = heapFloat[(fp+-40)];
+	f24 = f17*f23;
+	f25 = heapFloat[(fp+-41)];
+	f26 = f18*f25;
+	f28 = heapFloat[(fp+-56)];
+	f13 = heapFloat[(fp+-50)];
+	f10 = f28*f13;
+	f11 = heapFloat[(fp+-58)];
+	f16 = heapFloat[(fp+-51)];
+	f11 = f11*f16;
+	f13 = heapFloat[(r3+10)];
+	heapFloat[(fp+-72)] = f13;
+	f15 = f15+f19;
+	f13 = heapFloat[(fp+-81)];
+	f19 = heapFloat[(fp+-37)];
+	f13 = f13*f19;
+	f22 = f22+f27;
+	f19 = heapFloat[(fp+-80)];
+	f27 = heapFloat[(fp+-37)];
+	f16 = f19*f27;
+	f19 = heapFloat[(fp+-54)];
+	f21 = heapFloat[(fp+-59)];
+	f19 = f19*f21;
+	f21 = heapFloat[(fp+-55)];
+	f23 = heapFloat[(fp+-60)];
+	f21 = f21*f23;
+	f23 = heapFloat[(fp+-38)];
+	f8 = f8*f23;
+	f23 = heapFloat[(fp+-39)];
+	f12 = f12*f23;
+	f23 = heapFloat[(fp+-38)];
+	f7 = f7*f23;
+	f23 = heapFloat[(fp+-39)];
+	f9 = f9*f23;
+	f29 = f29+f30;
+	f30 = heapFloat[(fp+-70)];
+	f23 = f2*f30;
+	f0 = f0+f4;
+	f4 = f1*f30;
+	f28 = heapFloat[(fp+-68)];
+	f25 = f17*f28;
+	f27 = heapFloat[(fp+-69)];
+	f27 = f18*f27;
+	f28 = heapFloat[(fp+-42)];
+	f30 = heapFloat[(fp+-43)];
+	f28 = f28+f30;
+	f30 = heapFloat[(fp+-44)];
+	f14 = f30+f14;
+	heapFloat[(fp+-73)] = f14;
+	f3 = f3+f5;
+	f5 = f6+f20;
+	heapFloat[(fp+-42)] = f5;
+	f6 = f24+f26;
+	f20 = heapFloat[(fp+-82)];
+	f14 = heapFloat[(fp+-71)];
+	f24 = f20*f14;
+	f10 = f10+f11;
+	f26 = heapFloat[(fp+-63)];
+	f11 = heapFloat[(fp+-57)];
+	f30 = f26*f11;
+	f5 = f15+f13;
+	heapFloat[(fp+-44)] = f5;
+	f5 = f22+f16;
+	heapFloat[(fp+-45)] = f5;
+	f11 = f29+f23;
+	f0 = f0+f4;
+	f4 = f19+f21;
+	f21 = heapFloat[(fp+-77)];
+	f13 = heapFloat[(fp+-37)];
+	f14 = f21*f13;
+	f8 = f8+f12;
+	f13 = heapFloat[(fp+-72)];
+	f2 = f2*f13;
+	f7 = f7+f9;
+	f1 = f1*f13;
+	f23 = heapFloat[(fp+-38)];
+	f9 = f17*f23;
+	f23 = heapFloat[(fp+-39)];
+	f12 = f18*f23;
+	f15 = f25+f27;
+	f16 = heapFloat[(fp+-70)];
+	f17 = f20*f16;
+	f18 = heapFloat[(fp+-73)];
+	f19 = f28*f18;
+	f5 = heapFloat[(fp+-42)];
+	f22 = f3*f5;
+	f6 = f6+f24;
+	f10 = f10+f30;
+	heapFloat[(fp+-43)] = f10;
+	f4 = f4+f14;
+	heapFloat[(fp+-74)] = f4;
+	f14 = heapFloat[(r1+84)];
+	f24 = heapFloat[(r1+85)];
+	f25 = heapFloat[(r1+86)];
+	f4 = heapFloat[(r4+8)];
+	heapFloat[(fp+-46)] = f4;
+	f5 = heapFloat[(r1+100)];
+	heapFloat[(fp+-85)] = f5;
+	f4 = heapFloat[(r4+9)];
+	heapFloat[(fp+-47)] = f4;
+	f5 = heapFloat[(r1+101)];
+	heapFloat[(fp+-86)] = f5;
+	f10 = heapFloat[(r4+10)];
+	heapFloat[(fp+-75)] = f10;
+	f13 = heapFloat[(r1+102)];
+	heapFloat[(fp+-84)] = f13;
+	f2 = f8+f2;
+	f1 = f7+f1;
+	f7 = f15+f17;
+	f8 = heapFloat[(fp+-78)];
+	f5 = heapFloat[(fp+-44)];
+	f15 = f8*f5;
+	f16 = heapFloat[(fp+-79)];
+	f5 = heapFloat[(fp+-45)];
+	f17 = f16*f5;
+	f18 = heapFloat[(fp+-52)];
+	f5 = heapFloat[(fp+-44)];
+	f20 = f18*f5;
+	f21 = heapFloat[(fp+-53)];
+	f5 = heapFloat[(fp+-45)];
+	f23 = f21*f5;
+	f9 = f9+f12;
+	f12 = heapFloat[(fp+-82)];
+	f13 = heapFloat[(fp+-72)];
+	f12 = f12*f13;
+	f18 = heapFloat[(fp+-73)];
+	f26 = f11*f18;
+	f5 = heapFloat[(fp+-42)];
+	f27 = f0*f5;
+	f19 = f19+f22;
+	f10 = heapFloat[(fp+-43)];
+	f22 = f6*f10;
+	f29 = heapFloat[(r3+14)];
+	heapFloat[(fp+-82)] = f29;
+	f30 = heapFloat[(r3+13)];
+	heapFloat[(fp+-87)] = f30;
+	f4 = heapFloat[(r3+12)];
+	heapFloat[(fp+-89)] = f4;
+	f4 = heapFloat[(r4+14)];
+	heapFloat[(fp+-88)] = f4;
+	f4 = heapFloat[(r4+13)];
+	heapFloat[(fp+-90)] = f4;
+	f4 = heapFloat[(r4+12)];
+	heapFloat[(fp+-91)] = f4;
+	r3 = sp + -128;
+	f9 = f9+f12;
+	f12 = heapFloat[(fp+-66)];
+	f4 = heapFloat[(fp+-46)];
+	f12 = f12*f4;
+	f4 = heapFloat[(fp+-67)];
+	f5 = heapFloat[(fp+-47)];
+	f4 = f4*f5;
+	f5 = heapFloat[(fp+-64)];
+	f8 = heapFloat[(fp+-46)];
+	f5 = f5*f8;
+	f8 = heapFloat[(fp+-65)];
+	f10 = heapFloat[(fp+-47)];
+	f8 = f8*f10;
+	f15 = f15+f17;
+	f13 = heapFloat[(fp+-61)];
+	f17 = heapFloat[(fp+-74)];
+	f10 = f13*f17;
+	f20 = f20+f23;
+	f16 = heapFloat[(fp+-62)];
+	f23 = f16*f17;
+	f13 = heapFloat[(fp+-56)];
+	f16 = heapFloat[(fp+-44)];
+	f13 = f13*f16;
+	f16 = heapFloat[(fp+-58)];
+	f17 = heapFloat[(fp+-45)];
+	f16 = f16*f17;
+	f17 = f2*f18;
+	f18 = heapFloat[(fp+-42)];
+	f18 = f1*f18;
+	f26 = f26+f27;
+	f27 = heapFloat[(fp+-43)];
+	f21 = f7*f27;
+	f19 = f19+f22;
+	f10 = f15+f10;
+	f15 = f20+f23;
+	r4 = r3 >> 2;
+	f20 = heapFloat[(fp+-40)];
+	f20 = f20*f14;
+	f22 = heapFloat[(fp+-41)];
+	f22 = f22*f24;
+	f4 = f12+f4;
+	f12 = heapFloat[(fp+-81)];
+	f23 = heapFloat[(fp+-75)];
+	f12 = f12*f23;
+	f5 = f5+f8;
+	f8 = heapFloat[(fp+-80)];
+	f8 = f8*f23;
+	f23 = heapFloat[(fp+-54)];
+	f27 = heapFloat[(fp+-46)];
+	f23 = f23*f27;
+	f27 = heapFloat[(fp+-55)];
+	f29 = heapFloat[(fp+-47)];
+	f27 = f27*f29;
+	f13 = f13+f16;
+	f16 = heapFloat[(fp+-63)];
+	f29 = heapFloat[(fp+-74)];
+	f16 = f16*f29;
+	f17 = f17+f18;
+	f18 = heapFloat[(fp+-43)];
+	f18 = f9*f18;
+	f21 = f26+f21;
+	heapFloat[(fp+-32)] = f19;
+	f4 = f4+f12;
+	f5 = f5+f8;
+	f8 = f13+f16;
+	f12 = f20+f22;
+	f13 = heapFloat[(fp+-71)];
+	f13 = f13*f25;
+	f16 = heapFloat[(fp+-68)];
+	f16 = f16*f14;
+	f19 = heapFloat[(fp+-69)];
+	f19 = f19*f24;
+	f20 = f23+f27;
+	f22 = heapFloat[(fp+-77)];
+	f23 = heapFloat[(fp+-75)];
+	f22 = f22*f23;
+	f26 = f28*f10;
+	f27 = f3*f15;
+	f17 = f17+f18;
+	heapFloat[(r4+1)] = f21;
+	f18 = f20+f22;
+	f12 = f12+f13;
+	heapFloat[(r4+2)] = f17;
+	f13 = f16+f19;
+	f16 = heapFloat[(fp+-70)];
+	f16 = f16*f25;
+	f17 = heapFloat[(fp+-38)];
+	f14 = f17*f14;
+	f17 = heapFloat[(fp+-39)];
+	f17 = f17*f24;
+	f19 = heapFloat[(fp+-78)];
+	f19 = f19*f4;
+	f20 = heapFloat[(fp+-79)];
+	f20 = f20*f5;
+	f21 = heapFloat[(fp+-52)];
+	f21 = f21*f4;
+	f22 = heapFloat[(fp+-53)];
+	f22 = f22*f5;
+	f24 = f11*f10;
+	f23 = f0*f15;
+	f26 = f26+f27;
+	f27 = f6*f8;
+	f29 = heapFloat[(fp+-89)];
+	f12 = f12+f29;
+	f13 = f13+f16;
+	f14 = f14+f17;
+	f16 = heapFloat[(fp+-72)];
+	f16 = f16*f25;
+	f17 = f19+f20;
+	f19 = heapFloat[(fp+-61)];
+	f19 = f19*f18;
+	f20 = f21+f22;
+	f21 = heapFloat[(fp+-62)];
+	f21 = f21*f18;
+	f22 = heapFloat[(fp+-56)];
+	f22 = f22*f4;
+	f25 = heapFloat[(fp+-58)];
+	f25 = f25*f5;
+	f29 = f2*f10;
+	f30 = f1*f15;
+	f23 = f24+f23;
+	f24 = f7*f8;
+	f26 = f26+f27;
+	heap32[(r4+3)] = 0;
+	f12 = -f12;
+	f27 = heapFloat[(fp+-87)];
+	f13 = f13+f27;
+	f17 = f17+f19;
+	f19 = f20+f21;
+	f14 = f14+f16;
+	f16 = f22+f25;
+	f20 = heapFloat[(fp+-63)];
+	f20 = f20*f18;
+	f21 = f29+f30;
+	f22 = f9*f8;
+	f23 = f23+f24;
+	heapFloat[(r4+4)] = f26;
+	f29 = heapFloat[(fp+-82)];
+	f14 = f14+f29;
+	f16 = f16+f20;
+	f20 = f28*f12;
+	f24 = f11*f13;
+	f25 = f3*f12;
+	f26 = f0*f13;
+	f27 = f28*f17;
+	f3 = f3*f19;
+	f21 = f21+f22;
+	heapFloat[(r4+5)] = f23;
+	f22 =                         0;
+	heapFloat[(r4+6)] = f21;
+	f20 = f20-f24;
+	f21 = f2*f14;
+	f23 = f25-f26;
+	f24 = f1*f14;
+	f12 = f6*f12;
+	f13 = f7*f13;
+	f25 = heapFloat[(fp+-48)];
+	f26 = heapFloat[(fp+-85)];
+	f25 = f25*f26;
+	f28 = heapFloat[(fp+-49)];
+	f29 = heapFloat[(fp+-86)];
+	f28 = f28*f29;
+	f11 = f11*f17;
+	f0 = f0*f19;
+	f3 = f27+f3;
+	f6 = f6*f16;
+	f20 = f20-f21;
+	f21 = f23-f24;
+	f23 = heapFloat[(fp+-59)];
+	f23 = f23*f26;
+	f24 = heapFloat[(fp+-60)];
+	f24 = f24*f29;
+	f12 = f12-f13;
+	f13 = f9*f14;
+	f14 = heapFloat[(fp+-50)];
+	f14 = f14*f22;
+	f27 = heapFloat[(fp+-51)];
+	f27 = f27*f22;
+	f25 = f25+f28;
+	f28 = heapFloat[(fp+-83)];
+	f30 = heapFloat[(fp+-84)];
+	f28 = f28*f30;
+	f2 = f2*f17;
+	f1 = f1*f19;
+	f0 = f11+f0;
+	f7 = f7*f16;
+	f3 = f3+f6;
+	heap32[(r4+7)] = 0;
+	f6 = f12-f13;
+	f11 = f25+f28;
+	f12 = heapFloat[(fp+-46)];
+	f12 = f12*f26;
+	f13 = heapFloat[(fp+-47)];
+	f13 = f13*f29;
+	f25 = heapFloat[(fp+-44)];
+	f25 = f25*f22;
+	f26 = heapFloat[(fp+-45)];
+	f26 = f26*f22;
+	f23 = f23+f24;
+	f24 = heapFloat[(fp+-37)];
+	f24 = f24*f30;
+	f28 = heapFloat[(fp+-73)];
+	f28 = f28*f20;
+	f29 = heapFloat[(fp+-42)];
+	f29 = f29*f21;
+	f14 = f14+f27;
+	f27 = heapFloat[(fp+-57)];
+	f27 = f27*f22;
+	f1 = f2+f1;
+	f2 = f9*f16;
+	f0 = f0+f7;
+	heapFloat[(r4+8)] = f3;
+	f3 = f23+f24;
+	f4 = f4*f22;
+	f5 = f5*f22;
+	f7 = f12+f13;
+	f23 = heapFloat[(fp+-75)];
+	f9 = f23*f30;
+	f10 = f10*f20;
+	f12 = f15*f21;
+	f13 = f25+f26;
+	f15 = heapFloat[(fp+-74)];
+	f15 = f15*f22;
+	f23 = f28+f29;
+	f24 = heapFloat[(fp+-43)];
+	f24 = f24*f6;
+	f14 = f14+f27;
+	f25 = heapFloat[(fp+-91)];
+	f11 = f11+f25;
+	f1 = f1+f2;
+	heapFloat[(r4+9)] = f0;
+	f0 = f7+f9;
+	heapFloat[(r4+10)] = f1;
+	f1 = f17*f20;
+	f2 = f19*f21;
+	f4 = f4+f5;
+	f5 = f18*f22;
+	f7 = f10+f12;
+	f8 = f8*f6;
+	f9 = f13+f15;
+	f10 = heapFloat[(fp+-90)];
+	f3 = f3+f10;
+	f10 = f23+f24;
+	f11 = f14+f11;
+	f1 = f1+f2;
+	f2 = f16*f6;
+	f4 = f4+f5;
+	f5 = heapFloat[(fp+-88)];
+	f0 = f0+f5;
+	f5 = f7+f8;
+	f3 = f9+f3;
+	f6 = f10+f11;
+	heap32[(r4+11)] = 0;
+	f1 = f1+f2;
+	f0 = f4+f0;
+	f2 = f5+f3;
+	heapFloat[(r4+12)] = f6;
+	f0 = f1+f0;
+	heapFloat[(r4+13)] = f2;
+	heapFloat[(r4+14)] = f0;
+	heap32[(r4+15)] = 0;
+	r4 = sp + -144;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
+	r3 = r4 >> 2;
+	f0 = heapFloat[(r3+2)];
+	f1 = heapFloat[(r3+1)];
+	f2 = heapFloat[(fp+-36)];
+	heapFloat[(r1+112)] = f2;
+	heapFloat[(r1+113)] = f1;
+	heapFloat[(r1+114)] = f0;
+	heap32[(r1+115)] = 0;
+	f2 = f2*f2;
+	f1 = f1*f1;
+	f1 = f2+f1;
+	f0 = f0*f0;
+	f0 = f1+f0;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f4 = heapFloat[(fp+-76)];
+	f0 = f4/f_g0;
+	f1 = heapFloat[(r1+112)];
+	f1 = f1*f0;
+	heapFloat[(r1+112)] = f1;
+	f1 = heapFloat[(r1+113)];
+	f1 = f1*f0;
+	heapFloat[(r1+113)] = f1;
+	f1 = heapFloat[(r1+114)];
+	f0 = f1*f0;
+	heapFloat[(r1+114)] = f0;
+	f0 = heapFloat[(r3+3)];
+	f1 =                        -1;
+	f0 = f0 < f1 ? f1 : f0;
+	f0 = f0 > f4 ? f4 : f0;
+	heapFloat[(g0)] = f0;
+	acosf(i7);
+	f0 = f_g0+f_g0;
+	heapFloat[(r1+123)] = f0;
+	if(f0 <f22) //_LBB587_4
+{
+	f0 = -f0;
+}
+	f1 =   1.1920928955078125e-007;
+	if(f0 <f1) //_LBB587_83
+{
+__label__ = 72;
+}
+else{
+	r1 = 1;
+	heap8[r0+514] = r1;
+	return;
+}
+}
+}
+_8: do {
+if (__label__ == 6){
+	r2 = heap32[(fp+3)];
+	r5 = heap32[(fp+4)];
+	r6 = sp + -64;
+	r7 = (r0 + 288)|0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r6;
+	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
+	r7 = sp + -48;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r7;
+	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
+	r7 = r7 >> 2;
+	r6 = r6 >> 2;
+	f0 = heapFloat[(r7+3)];
+	f1 = heapFloat[(r6+3)];
+	f2 = heapFloat[(fp+-12)];
+	f3 = heapFloat[(fp+-16)];
+	f4 = heapFloat[(r7+1)];
+	f5 = heapFloat[(r6+1)];
+	f6 = heapFloat[(r7+2)];
+	f7 = heapFloat[(r6+2)];
+	r6 = sp + -32;
+	r7 = (r0 + 352)|0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r6;
+	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
+	r7 = sp + -16;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r7;
+	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
+	r6 = r6 >> 2;
+	r7 = r7 >> 2;
+	f8 = heapFloat[(r7+3)];
+	f9 = heapFloat[(r6+3)];
+	f10 = heapFloat[(fp+-4)];
+	f11 = heapFloat[(r6+1)];
+	f12 = heapFloat[(r7+1)];
+	f13 = heapFloat[(fp+-8)];
+	f14 = heapFloat[(r6+2)];
+	f15 = heapFloat[(r7+2)];
+	f16 = f8*f9;
+	f17 = f10*f13;
+	f18 = f0*f3;
+	f19 = f2*f1;
+	f20 = f0*f1;
+	f21 = f2*f3;
+	f22 = f8*f13;
+	f23 = f10*f9;
+	f24 = f8*f11;
+	f25 = f12*f9;
+	f26 = f0*f5;
+	f27 = f4*f1;
+	f16 = f16-f17;
+	f17 = f12*f11;
+	f18 = f18+f19;
+	f19 = f4*f7;
+	f20 = f20-f21;
+	f21 = f4*f5;
+	f22 = f22+f23;
+	f23 = f12*f14;
+	f0 = f0*f7;
+	f1 = f6*f1;
+	f24 = f24+f25;
+	f25 = f15*f13;
+	f26 = f26+f27;
+	f27 = f6*f3;
+	f8 = f8*f14;
+	f9 = f15*f9;
+	f16 = f16-f17;
+	f17 = f15*f14;
+	f18 = f18+f19;
+	f19 = f6*f5;
+	f20 = f20-f21;
+	f6 = f6*f7;
+	f21 = f22+f23;
+	f15 = f15*f11;
+	f0 = f0+f1;
+	f1 = f2*f5;
+	f5 = f24+f25;
+	f14 = f10*f14;
+	f22 = f26+f27;
+	f2 = f2*f7;
+	f7 = f8+f9;
+	f8 = f10*f11;
+	f9 = f21-f15;
+	heapFloat[(fp+-46)] = f9;
+	f10 = f18-f19;
+	heapFloat[(fp+-49)] = f10;
+	f5 = f5-f14;
+	heapFloat[(fp+-45)] = f5;
+	f6 = f20-f6;
+	heapFloat[(fp+-52)] = f6;
+	f11 = f16-f17;
+	heapFloat[(fp+-48)] = f11;
+	f2 = f22-f2;
+	heapFloat[(fp+-50)] = f2;
+	f0 = f0+f1;
+	f1 = f4*f3;
+	f3 = f7+f8;
+	f4 = f12*f13;
+	f3 = f3-f4;
+	heapFloat[(fp+-47)] = f3;
+	f0 = f0-f1;
+	heapFloat[(fp+-51)] = f0;
+	f1 = f11*f2;
+	f4 = f6*f5;
+	f7 = f11*f6;
+	f8 = f10*f9;
+	f12 = f11*f10;
+	f13 = f6*f9;
+	f1 = f1-f4;
+	f4 = f10*f3;
+	f7 = f7+f8;
+	f8 = f2*f5;
+	f11 = f11*f0;
+	f6 = f6*f3;
+	f12 = f12-f13;
+	f13 = f0*f5;
+	f1 = f1-f4;
+	f4 = f0*f9;
+	f7 = f7+f8;
+	f0 = f0*f3;
+	f6 = f11-f6;
+	f8 = f2*f9;
+	f11 = f12-f13;
+	f2 = f2*f3;
+	f2 = f11+f2;
+	f1 = f1+f4;
+	f4 =                         0;
+	f0 = f7+f0;
+	f6 = f6-f8;
+	f7 = f10*f5;
+	f6 = f6+f7;
+	f7 = f1*f4;
+	f8 = -f2;
+	f10 = f0*f4;
+	f11 = f2*f4;
+	f12 = f10+f6;
+	f8 = f8-f7;
+	f13 = f6*f4;
+	f7 = f0+f7;
+	f8 = f8-f13;
+	f7 = f7-f13;
+	f12 = f12-f11;
+	f10 = f10+f11;
+	f10 = f10-f1;
+	f11 = f7*f0;
+	f13 = f8*f2;
+	f14 = f12*f0;
+	f15 = f8*f1;
+	f11 = f11-f13;
+	f13 = f12*f6;
+	f14 = f14-f15;
+	f15 = f10*f2;
+	f16 = f10*f0;
+	f8 = f8*f6;
+	f11 = f11-f13;
+	f10 = f10*f1;
+	f13 = f14-f15;
+	f14 = f7*f6;
+	f8 = f16-f8;
+	f7 = f7*f1;
+	f10 = f11+f10;
+	f11 = f13+f14;
+	f7 = f8-f7;
+	f8 = f12*f2;
+	f7 = f7+f8;
+	f8 = f10*f10;
+	f12 = f11*f11;
+	f8 = f8+f12;
+	f12 = f7*f7;
+	f8 = f8+f12;
+	heapFloat[(g0)] = f8;
+	f8 =                         1;
+	sqrtf(i7);
+	f12 = f8/f_g0;
+	f11 = f11*f12;
+	f7 = f7*f12;
+	f10 = f10*f12;
+	f12 = f11*f4;
+	f13 = f7*f4;
+	f14 = f10+f12;
+	f14 = f14+f13;
+	f3 = -f3;
+	heapFloat[(fp+-43)] = f3;
+	f3 = -f5;
+	heapFloat[(fp+-44)] = f3;
+	f3 = -f9;
+	heapFloat[(fp+-42)] = f3;
+	f3 =      -0.99999988079071045;
+	if(f14 >=f3) //_LBB587_9
+{
+	f3 = f14+f8;
+	f3 = f3+f3;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	f10 = f10*f4;
+	f5 =                       0.5;
+	f11 = f11-f10;
+	f9 = f8/f_g0;
+	f7 = f10-f7;
+	f13 = f13-f12;
+	f12 = f_g0*f5;
+	f11 = f11*f9;
+	f10 = f7*f9;
+	f7 = f13*f9;
+}
+else{
+	f7 =                        -0;
+	f10 =                         1;
+	f11 =                         0;
+	f12 = f11;
+}
+	f3 = f7*f7;
+	f5 = f10*f10;
+	f3 = f3+f5;
+	f5 = f11*f11;
+	f3 = f3+f5;
+	f5 = f12*f12;
+	f3 = f3+f5;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	f3 = f_g0;
+	if(f3 !=f4) //_LBB587_12
+{
+	f3 = f8/f3;
+	f5 = f12*f3;
+	f7 = f7*f3;
+	f9 = f10*f3;
+	f3 = f11*f3;
+	f10 = f5*f1;
+	f11 = f0*f9;
+	f12 = f5*f2;
+	f13 = f0*f7;
+	f14 = f5*f6;
+	f15 = f0*f3;
+	f10 = f10-f11;
+	f11 = f2*f3;
+	f12 = f12-f13;
+	f13 = f6*f9;
+	f0 = f5*f0;
+	f16 = f2*f7;
+	f14 = f14-f15;
+	f15 = f1*f7;
+	f10 = f10-f11;
+	f11 = f6*f7;
+	f12 = f12-f13;
+	f13 = f1*f3;
+	f10 = f10+f11;
+	f11 = f12+f13;
+	f0 = f0+f16;
+	f1 = f1*f9;
+	f12 = f14-f15;
+	f2 = f2*f9;
+	f2 = f12+f2;
+	f12 = f11*f11;
+	f13 = f10*f10;
+	f0 = f0+f1;
+	f1 = f6*f3;
+	f0 = f0+f1;
+	f1 = f12+f13;
+	f6 = f2*f2;
+	f1 = f1+f6;
+	f6 = f0*f0;
+	f1 = f1+f6;
+	heapFloat[(g0)] = f1;
+	sqrtf(i7);
+	f1 = f_g0;
+	if(f1 !=f4) //_LBB587_14
+{
+	f1 = f8/f1;
+	f6 = heapFloat[(r1+108)];
+	heapFloat[(fp+-40)] = f6;
+	f12 = heapFloat[(r1+111)];
+	f11 = f11*f1;
+	heapFloat[(fp+-37)] = f11;
+	f10 = f10*f1;
+	heapFloat[(fp+-38)] = f10;
+	f2 = f2*f1;
+	heapFloat[(fp+-39)] = f2;
+	f0 = f0*f1;
+	heapFloat[(fp+-41)] = f0;
+	if(f6 <f12) //_LBB587_33
+{
+__label__ = 27;
+}
+else{
+	f0 = heapFloat[(r1+109)];
+	if(f0 <f12) //_LBB587_33
+{
+__label__ = 27;
+}
+else{
+	f12 =                        -1;
+	f12 = f5 < f12 ? f12 : f5;
+	f12 = f12 > f8 ? f8 : f12;
+	heapFloat[(g0)] = f12;
+	acosf(i7);
+	f12 = f_g0+f_g0;
+	f0 =   1.1920928955078125e-007;
+	if(f12 >f0) //_LBB587_18
+{
+	f4 = f7*f7;
+	f0 = f9*f9;
+	f4 = f4+f0;
+	f0 = f3*f3;
+	f4 = f4+f0;
+	heapFloat[(g0)] = f4;
+	f4 =                         1;
+	sqrtf(i7);
+	f0 = f4/f_g0;
+	f1 = f9*f0;
+	f2 = f7*f0;
+	f0 = f3*f0;
+	f3 = f1; //fstod f1, f3
+	f3 = Math.abs(f3);
+	f5 =   1.1920928955078125e-007;
+	if(f3 >f5) //_LBB587_20
+{
+	f3 = heapFloat[(r1+109)];
+	f5 = heapFloat[(r1+108)];
+	f6 = f0*f0;
+	f7 = f1*f1;
+	f6 = f6/f7;
+	f5 = f5*f5;
+	f3 = f3*f3;
+	f5 = f6/f5;
+	f3 = f4/f3;
+	f4 = f6+f4;
+	f3 = f5+f3;
+	f4 = f4/f3;
+	heapFloat[(g0)] = f4;
+	sqrtf(i7);
+	f4 = f_g0;
+}
+else{
+	f4 = heapFloat[(r1+108)];
+}
+}
+	f3 = heapFloat[(r1+104)];
+	f5 = f3*f4;
+	if(f5 >=f12) //_LBB587_67
+{
+__label__ = 58;
+}
+else{
+	r3 = 1;
+	heap8[r0+514] = r3;
+if(!(f12 >=f4)) //_LBB587_24
+{
+	f6 =       0.99999988079071045;
+	if(f3 <f6) //_LBB587_25
+{
+	f8 = f12-f5;
+	f3 = f4-f5;
+	f8 = f8/f3;
+}
+}
+	f12 = f12-f5;
+	heapFloat[(r1+129)] = f8;
+	f3 = f1; //fstod f1, f3
+	heapFloat[(r1+123)] = f12;
+	f12 = Math.abs(f3);
+	f3 =   1.1920928955078125e-007;
+	if(f12 >f3) //_LBB587_28
+{
+	f0 = -f0;
+	f12 = heapFloat[(r1+109)];
+	f3 = heapFloat[(r1+108)];
+	f12 = f12/f3;
+	f3 = f0/f1;
+	f12 = f12*f3;
+	f12 = f12*f1;
+	f12 = f12; //fstod f12, f12
+	f12 = Math.abs(f12);
+	f12 = f12; //fdtos f12, f12
+	f3 =                         0;
+	if(f0 <=f3) //_LBB587_30
+{
+	f12 = -f12;
+}
+	f0 = f2*f2;
+	f3 = f1*f1;
+	f0 = f0+f3;
+	f3 = f12*f12;
+	f0 = f0+f3;
+	heapFloat[(g0)] = f0;
+	f0 =                         1;
+	sqrtf(i7);
+	f0 = f0/f_g0;
+	f12 = -f12;
+	f2 = f2*f0;
+	f1 = f1*f0;
+	f0 = f0*f12;
+}
+	f12 = -f2;
+	f3 = -f1;
+	f4 = heapFloat[(fp+-46)];
+	f5 = f2*f4;
+	f6 = heapFloat[(fp+-45)];
+	f7 = f6*f1;
+	f8 = heapFloat[(fp+-48)];
+	f12 = f8*f12;
+	f9 = f6*f0;
+	f10 = -f0;
+	f5 = f5+f7;
+	f7 = heapFloat[(fp+-47)];
+	f11 = f7*f0;
+	f12 = f12-f9;
+	f9 = f7*f1;
+	f3 = f8*f3;
+	f7 = f7*f2;
+	f12 = f12+f9;
+	f5 = f5+f11;
+	f3 = f3-f7;
+	f0 = f4*f0;
+	f7 = f8*f10;
+	f1 = f4*f1;
+	f0 = f3+f0;
+	f3 = heapFloat[(fp+-42)];
+	f4 = f5*f3;
+	f9 = f12*f8;
+	f1 = f7-f1;
+	f2 = f6*f2;
+	f1 = f1+f2;
+	f2 = heapFloat[(fp+-44)];
+	f6 = f5*f2;
+	f7 = f0*f8;
+	f4 = f4+f9;
+	f9 = heapFloat[(fp+-43)];
+	f10 = f0*f9;
+	f5 = f5*f9;
+	f8 = f1*f8;
+	f6 = f6+f7;
+	f7 = f1*f3;
+	f4 = f4+f10;
+	f1 = f1*f2;
+	f1 = f4-f1;
+	f4 = f5+f8;
+	f2 = f12*f2;
+	f5 = f6+f7;
+	f12 = f12*f9;
+	f2 = f4+f2;
+	f0 = f0*f3;
+	f12 = f5-f12;
+	heapFloat[(r1+112)] = f1;
+	f0 = f2-f0;
+	heapFloat[(r1+113)] = f12;
+	heapFloat[(r1+114)] = f0;
+	heap32[(r1+115)] = 0;
+	heap32[(r1+131)] = 0;
+	heap32[(r1+132)] = 0;
+	heap32[(r1+133)] = 0;
+	r3 = r2 >> 2;
+	heap32[(r1+134)] = 0;
+	r4 = r5 >> 2;
+	f2 = heapFloat[(r3+1)];
+	f3 = heapFloat[(r3+5)];
+	f4 = heapFloat[(r3)];
+	f5 = heapFloat[(r3+4)];
+	f6 = heapFloat[(r4+1)];
+	f7 = heapFloat[(r4+5)];
+	f8 = heapFloat[(r4)];
+	f9 = heapFloat[(r4+4)];
+	f10 = heapFloat[(r3+2)];
+	f11 = heapFloat[(r3+6)];
+	f13 = heapFloat[(r3+9)];
+	f14 = heapFloat[(r3+8)];
+	f15 = heapFloat[(r4+2)];
+	f16 = heapFloat[(r4+6)];
+	f17 = heapFloat[(r4+9)];
+	f18 = heapFloat[(r4+8)];
+	f4 = f4*f1;
+	f5 = f5*f12;
+	f2 = f2*f1;
+	f3 = f3*f12;
+	f8 = f8*f1;
+	f9 = f9*f12;
+	f6 = f6*f1;
+	f7 = f7*f12;
+	f19 = heapFloat[(r3+10)];
+	f20 = heapFloat[(r4+10)];
+	f4 = f4+f5;
+	f5 = f14*f0;
+	f2 = f2+f3;
+	f3 = f13*f0;
+	f10 = f10*f1;
+	f11 = f11*f12;
+	f8 = f8+f9;
+	f9 = f18*f0;
+	f6 = f6+f7;
+	f7 = f17*f0;
+	f13 = f15*f1;
+	f14 = f16*f12;
+	f4 = f4+f5;
+	f2 = f2+f3;
+	f3 = f8+f9;
+	f5 = f6+f7;
+	f6 = f10+f11;
+	f7 = f19*f0;
+	f8 = f13+f14;
+	f9 = f20*f0;
+	f6 = f6+f7;
+	f7 = f8+f9;
+	f4 = f1*f4;
+	f2 = f12*f2;
+	f1 = f1*f3;
+	f12 = f12*f5;
+	f2 = f4+f2;
+	f3 = f0*f6;
+	f12 = f1+f12;
+	f0 = f0*f7;
+	f1 = f2+f3;
+	f12 = f12+f0;
+	f0 =                         1;
+	f12 = f1+f12;
+	f12 = f0/f12;
+	heapFloat[(r1+120)] = f12;
+__label__ = 58;
+}
+}
+}
+_37: do {
+if (__label__ == 27){
+	r4 = r4 >> 2;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r1+72)];
+	f1 = heapFloat[(r3)];
+	f2 = heapFloat[(r1+73)];
+	f3 = heapFloat[(r3+4)];
+	f4 = heapFloat[(r1+74)];
+	f5 = heapFloat[(r1+76)];
+	f6 = heapFloat[(r3+1)];
+	f7 = heapFloat[(r1+77)];
+	f8 = heapFloat[(r3+5)];
+	f9 = heapFloat[(r1+78)];
+	f10 = heapFloat[(r4)];
+	f11 = heapFloat[(r1+88)];
+	f13 = heapFloat[(r4+4)];
+	heapFloat[(fp+-55)] = f13;
+	f14 = heapFloat[(r4+1)];
+	f15 = heapFloat[(r1+92)];
+	f13 = heapFloat[(r4+5)];
+	heapFloat[(fp+-56)] = f13;
+	f16 = heapFloat[(r3+8)];
+	f17 = heapFloat[(r3+9)];
+	f18 = heapFloat[(r4+8)];
+	heapFloat[(fp+-53)] = f18;
+	f19 = heapFloat[(r4+9)];
+	heapFloat[(fp+-54)] = f19;
+	f13 = f1*f0;
+	heapFloat[(fp+-57)] = f13;
+	f13 = f6*f5;
+	heapFloat[(fp+-61)] = f13;
+	f18 = f3*f0;
+	heapFloat[(fp+-59)] = f18;
+	f13 = f8*f5;
+	heapFloat[(fp+-62)] = f13;
+	f18 = heapFloat[(r1+80)];
+	f19 = heapFloat[(r3+2)];
+	f20 = heapFloat[(r1+81)];
+	f21 = heapFloat[(r3+6)];
+	f22 = heapFloat[(r1+82)];
+	f23 = f1*f2;
+	f24 = f6*f7;
+	f25 = f3*f2;
+	f26 = f8*f7;
+	f10 = f10*f11;
+	heapFloat[(fp+-60)] = f10;
+	f10 = f14*f15;
+	heapFloat[(fp+-63)] = f10;
+	f10 = heapFloat[(r4+2)];
+	heapFloat[(fp+-64)] = f10;
+	f13 = heapFloat[(r1+96)];
+	f14 = heapFloat[(r4+6)];
+	heapFloat[(fp+-58)] = f14;
+	f1 = f1*f4;
+	f6 = f6*f9;
+	f27 = heapFloat[(fp+-55)];
+	f27 = f27*f11;
+	f28 = heapFloat[(fp+-56)];
+	f28 = f28*f15;
+	f3 = f3*f4;
+	f8 = f8*f9;
+	f29 = heapFloat[(r3+10)];
+	f30 = heapFloat[(r4+10)];
+	heapFloat[(fp+-55)] = f30;
+	f10 = heapFloat[(fp+-57)];
+	f14 = heapFloat[(fp+-61)];
+	f10 = f10+f14;
+	heapFloat[(fp+-56)] = f10;
+	f14 = f19*f18;
+	f10 = heapFloat[(fp+-59)];
+	f30 = heapFloat[(fp+-62)];
+	f10 = f10+f30;
+	f30 = f21*f18;
+	f0 = f16*f0;
+	heapFloat[(fp+-57)] = f0;
+	f0 = f17*f5;
+	heapFloat[(fp+-59)] = f0;
+	f5 = f23+f24;
+	f23 = f19*f20;
+	f24 = f25+f26;
+	f25 = f21*f20;
+	f2 = f16*f2;
+	f7 = f17*f7;
+	f26 = heapFloat[(fp+-60)];
+	f0 = heapFloat[(fp+-63)];
+	f0 = f26+f0;
+	f26 = heapFloat[(fp+-64)];
+	f26 = f26*f13;
+	f1 = f1+f6;
+	f6 = f19*f22;
+	f19 = f27+f28;
+	f27 = heapFloat[(fp+-58)];
+	f27 = f27*f13;
+	f3 = f3+f8;
+	f8 = f21*f22;
+	f21 = heapFloat[(fp+-53)];
+	f11 = f21*f11;
+	f21 = heapFloat[(fp+-54)];
+	f15 = f21*f15;
+	f4 = f16*f4;
+	f9 = f17*f9;
+	f16 = heapFloat[(fp+-56)];
+	f14 = f16+f14;
+	f0 = f0+f26;
+	f5 = f5+f23;
+	f1 = f1+f6;
+	f6 = f10+f30;
+	f10 = f19+f27;
+	f16 = f24+f25;
+	f3 = f3+f8;
+	f8 = heapFloat[(fp+-57)];
+	f17 = heapFloat[(fp+-59)];
+	f8 = f8+f17;
+	f17 = f29*f18;
+	f2 = f2+f7;
+	f7 = f29*f20;
+	f11 = f11+f15;
+	f30 = heapFloat[(fp+-55)];
+	f13 = f30*f13;
+	f4 = f4+f9;
+	f9 = f29*f22;
+	f8 = f8+f17;
+	f11 = f11+f13;
+	f2 = f2+f7;
+	f4 = f4+f9;
+	f7 = f0*f5;
+	f9 = f10*f16;
+	f13 = f0*f1;
+	f15 = f10*f3;
+	f7 = f7+f9;
+	f9 = f11*f2;
+	f13 = f13+f15;
+	f15 = f11*f4;
+	f7 = f7+f9;
+	f9 = f13+f15;
+	f13 = heapFloat[(fp+-40)];
+if(!(f13 >=f12)) //_LBB587_44
+{
+	f13 = heapFloat[(r1+109)];
+if(!(f13 >=f12)) //_LBB587_44
+{
+	f1 =                         0;
+	if(f7 <f1) //_LBB587_37
+{
+	f7 = -f7;
+}
+	f2 =   1.1920928955078125e-007;
+if(!(f7 >=f2)) //_LBB587_43
+{
+	if(f9 <f1) //_LBB587_41
+{
+	f9 = -f9;
+}
+	if(f9 <f2) //_LBB587_67
+{
+break _37;
+}
+}
+	f1 = f10*f8;
+	f2 = f11*f6;
+	f1 = f1-f2;
+	r3 = 1;
+	f2 = f11*f14;
+	f3 = f0*f8;
+	f2 = f2-f3;
+	f0 = f0*f6;
+	f3 = f10*f14;
+	f1 = -f1;
+	heap8[r0+514] = r3;
+	f0 = f0-f3;
+	f2 = -f2;
+	heapFloat[(r1+112)] = f1;
+	f0 = -f0;
+	heapFloat[(r1+113)] = f2;
+	heapFloat[(r1+114)] = f0;
+	heap32[(r1+115)] = 0;
+break _37;
+}
+}
+	f13 = f0*f14;
+	f15 = f10*f6;
+	f13 = f13+f15;
+	f15 = f11*f8;
+	f13 = f13+f15;
+	f15 = heapFloat[(fp+-40)];
+_52: do {
+	if(f15 >=f12) //_LBB587_56
+{
+	f15 =                         0;
+	if(f9 <f15) //_LBB587_58
+{
+	f17 = -f9;
+}
+else{
+	f17 = f9;
+}
+	f18 =   1.1920928955078125e-007;
+	if(f17 <f18) //_LBB587_49
+{
+break _52;
+}
+else{
+	r3 = 1;
+	heap8[r0+514] = r3;
+	f17 = heapFloat[(fp+-40)];
+	if(f17 <f12) //_LBB587_49
+{
+break _52;
+}
+else{
+	heapFloat[(g0)] = f7;
+	heapFloat[(g0+1)] = f13;
+	atan2f(i7);
+	f9 = f_g0;
+	f12 = heapFloat[(r1+108)];
+	if(f12 >=f9) //_LBB587_63
+{
+	f17 = -f12;
+	if(f9 <f17) //_LBB587_65
+{
+	heapFloat[(g0)] = f12;
+	cosf(i7);
+	f13 = f_g0;
+	f7 = heapFloat[(r1+108)];
+	heapFloat[(g0)] = f7;
+	sinf(i7);
+	f7 = -f_g0;
+	f9 =                         0;
+}
+else{
+	f9 = f15;
+}
+}
+else{
+	heapFloat[(g0)] = f12;
+	cosf(i7);
+	f13 = f_g0;
+	f9 = heapFloat[(r1+108)];
+	heapFloat[(g0)] = f9;
+	f9 =                         0;
+	sinf(i7);
+	f7 = f_g0;
+}
+}
+}
+}
+else{
+	f15 =                         0;
+	if(f7 <f15) //_LBB587_47
+{
+	f17 = -f7;
+}
+else{
+	f17 = f7;
+}
+	f18 =   1.1920928955078125e-007;
+	if(f17 >=f18) //_LBB587_50
+{
+	r3 = 1;
+	heap8[r0+514] = r3;
+	f17 = heapFloat[(r1+109)];
+if(!(f17 <f12)) //_LBB587_49
+{
+	heapFloat[(g0)] = f9;
+	heapFloat[(g0+1)] = f13;
+	atan2f(i7);
+	f7 = f_g0;
+	f12 = heapFloat[(r1+109)];
+	if(f12 >=f7) //_LBB587_53
+{
+	f17 = -f12;
+	if(f7 <f17) //_LBB587_55
+{
+	heapFloat[(g0)] = f12;
+	cosf(i7);
+	f13 = f_g0;
+	f7 = heapFloat[(r1+109)];
+	heapFloat[(g0)] = f7;
+	sinf(i7);
+	f9 = -f_g0;
+	f7 =                         0;
+}
+else{
+	f7 = f15;
+}
+}
+else{
+	heapFloat[(g0)] = f12;
+	cosf(i7);
+	f13 = f_g0;
+	f7 = heapFloat[(r1+109)];
+	heapFloat[(g0)] = f7;
+	f7 =                         0;
+	sinf(i7);
+	f9 = f_g0;
+}
+}
+}
+}
+} while(0);
+	f12 = f14*f13;
+	f5 = f5*f7;
+	f6 = f6*f13;
+	f14 = f16*f7;
+	f5 = f12+f5;
+	f1 = f1*f9;
+	f6 = f6+f14;
+	f3 = f3*f9;
+	f8 = f8*f13;
+	f2 = f2*f7;
+	f1 = f5+f1;
+	f3 = f6+f3;
+	f2 = f8+f2;
+	f4 = f4*f9;
+	f2 = f2+f4;
+	f4 = f1*f1;
+	f5 = f3*f3;
+	f4 = f4+f5;
+	f5 = f2*f2;
+	f4 = f4+f5;
+	heapFloat[(g0)] = f4;
+	f4 =                         1;
+	sqrtf(i7);
+	f5 = f4/f_g0;
+	f2 = f2*f5;
+	f3 = f3*f5;
+	f1 = f1*f5;
+	f5 = f10*f2;
+	f6 = f11*f3;
+	f5 = f5-f6;
+	f6 = f11*f1;
+	f2 = f0*f2;
+	f2 = f6-f2;
+	f6 = -f5;
+	f0 = f0*f3;
+	f1 = f10*f1;
+	f0 = f0-f1;
+	f1 = -f2;
+	heapFloat[(r1+112)] = f6;
+	f3 = -f0;
+	heapFloat[(r1+113)] = f1;
+	heapFloat[(r1+114)] = f3;
+	heap32[(r1+115)] = 0;
+	f1 = f5*f5;
+	f2 = f2*f2;
+	f1 = f1+f2;
+	f0 = f0*f0;
+	f0 = f1+f0;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	heapFloat[(r1+123)] = f_g0;
+	f0 = heapFloat[(r1+112)];
+	f1 = heapFloat[(r1+113)];
+	f2 = heapFloat[(r1+114)];
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f0 = f4/f_g0;
+	f1 = heapFloat[(r1+112)];
+	f1 = f1*f0;
+	heapFloat[(r1+112)] = f1;
+	f1 = heapFloat[(r1+113)];
+	f1 = f1*f0;
+	heapFloat[(r1+113)] = f1;
+	f1 = heapFloat[(r1+114)];
+	f0 = f1*f0;
+	heapFloat[(r1+114)] = f0;
+}
+} while(0);
+	f0 = heapFloat[(r1+110)];
+	f1 =                         0;
+	if(f0 <f1) //_LBB587_82
+{
+	heap32[(r1+125)] = 0;
+break _8;
+}
+else{
+	f0 =                        -1;
+	f1 = heapFloat[(fp+-41)];
+	f1 = f1 < f0 ? f0 : f1;
+	f2 =                         1;
+	f1 = f1 > f2 ? f2 : f1;
+	heapFloat[(g0)] = f1;
+	acosf(i7);
+	f1 = f_g0+f_g0;
+	heapFloat[(r1+125)] = f1;
+	f3 =        3.1415927410125732;
+	if(f1 >f3) //_LBB587_70
+{
+	f1 = heapFloat[(fp+-41)];
+	f1 = -f1;
+	f1 = f1 < f0 ? f0 : f1;
+	f0 =                         1;
+	f1 = f1 > f0 ? f0 : f1;
+	heapFloat[(g0)] = f1;
+	acosf(i7);
+	f0 = heapFloat[(fp+-39)];
+	f0 = -f0;
+	heapFloat[(fp+-39)] = f0;
+	f0 = heapFloat[(fp+-38)];
+	f0 = -f0;
+	heapFloat[(fp+-38)] = f0;
+	f0 = heapFloat[(fp+-37)];
+	f0 = -f0;
+	heapFloat[(fp+-37)] = f0;
+	f1 = f_g0+f_g0;
+	heapFloat[(r1+125)] = f1;
+}
+	f0 =   1.1920928955078125e-007;
+	if(f1 >f0) //_LBB587_73
+{
+	f1 = heapFloat[(fp+-37)];
+	f0 = f1*f1;
+	f3 = heapFloat[(fp+-38)];
+	f4 = f3*f3;
+	f0 = f0+f4;
+	f4 = heapFloat[(fp+-39)];
+	f5 = f4*f4;
+	f0 = f0+f5;
+	heapFloat[(g0)] = f0;
+	f0 =                         1;
+	sqrtf(i7);
+	f0 = f0/f_g0;
+	f1 = f1*f0;
+	heapFloat[(fp+-37)] = f1;
+	f3 = f3*f0;
+	heapFloat[(fp+-38)] = f3;
+	f4 = f4*f0;
+	heapFloat[(fp+-39)] = f4;
+	f1 = heapFloat[(r1+125)];
+}
+	f0 = heapFloat[(r1+110)];
+	f3 = heapFloat[(r1+104)];
+	f4 = f0*f3;
+if(!(f1 <=f4)) //_LBB587_80
+{
+	r3 = 1;
+	heap8[r0+513] = r3;
+	if(f1 >=f0) //_LBB587_77
+{
+__label__ = 66;
+}
+else{
+	f5 =       0.99999988079071045;
+	if(f3 <f5) //_LBB587_78
+{
+	f3 = f1-f4;
+	f0 = f0-f4;
+	f0 = f3/f0;
+__label__ = 68;
+}
+else{
+__label__ = 66;
+}
+}
+if (__label__ == 66){
+	f0 = f2;
+}
+	f3 = heapFloat[(fp+-37)];
+	f5 = -f3;
+	f6 = heapFloat[(fp+-38)];
+	f7 = -f6;
+	f8 = heapFloat[(fp+-46)];
+	f9 = f3*f8;
+	f10 = heapFloat[(fp+-45)];
+	f11 = f10*f6;
+	f12 = heapFloat[(fp+-48)];
+	f5 = f12*f5;
+	f13 = heapFloat[(fp+-39)];
+	f14 = f10*f13;
+	f15 = -f13;
+	f9 = f9+f11;
+	f11 = heapFloat[(fp+-47)];
+	f16 = f11*f13;
+	f5 = f5-f14;
+	f14 = f11*f6;
+	f7 = f12*f7;
+	f11 = f11*f3;
+	f5 = f5+f14;
+	f9 = f9+f16;
+	f7 = f7-f11;
+	f11 = f8*f13;
+	f13 = f12*f15;
+	f6 = f8*f6;
+	f7 = f7+f11;
+	f8 = heapFloat[(fp+-42)];
+	f11 = f9*f8;
+	f14 = f5*f12;
+	f6 = f13-f6;
+	f3 = f10*f3;
+	f3 = f6+f3;
+	f6 = heapFloat[(fp+-44)];
+	f10 = f9*f6;
+	f13 = f7*f12;
+	f11 = f11+f14;
+	f14 = heapFloat[(fp+-43)];
+	f15 = f7*f14;
+	f9 = f9*f14;
+	f12 = f3*f12;
+	f10 = f10+f13;
+	f13 = f3*f8;
+	f11 = f11+f15;
+	f3 = f3*f6;
+	f1 = f1-f4;
+	heapFloat[(r1+130)] = f0;
+	f0 = f9+f12;
+	f4 = f5*f6;
+	f6 = f10+f13;
+	f5 = f5*f14;
+	f3 = f11-f3;
+	heapFloat[(r1+124)] = f1;
+	f0 = f0+f4;
+	f1 = f7*f8;
+	f4 = f6-f5;
+	heapFloat[(r1+116)] = f3;
+	f0 = f0-f1;
+	heapFloat[(r1+117)] = f4;
+	heapFloat[(r1+118)] = f0;
+	r2 = r2 >> 2;
+	heap32[(r1+119)] = 0;
+	r3 = r5 >> 2;
+	f1 = heapFloat[(r2+1)];
+	f5 = heapFloat[(r2+5)];
+	f6 = heapFloat[(r2)];
+	f7 = heapFloat[(r2+4)];
+	f8 = heapFloat[(r3+1)];
+	f9 = heapFloat[(r3+5)];
+	f10 = heapFloat[(r3)];
+	f11 = heapFloat[(r3+4)];
+	f12 = heapFloat[(r2+2)];
+	f13 = heapFloat[(r2+6)];
+	f14 = heapFloat[(r2+9)];
+	f15 = heapFloat[(r2+8)];
+	f16 = heapFloat[(r3+2)];
+	f17 = heapFloat[(r3+6)];
+	f18 = heapFloat[(r3+9)];
+	f19 = heapFloat[(r3+8)];
+	f6 = f6*f3;
+	f7 = f7*f4;
+	f1 = f1*f3;
+	f5 = f5*f4;
+	f10 = f10*f3;
+	f11 = f11*f4;
+	f8 = f8*f3;
+	f9 = f9*f4;
+	f20 = heapFloat[(r2+10)];
+	f21 = heapFloat[(r3+10)];
+	f6 = f6+f7;
+	f7 = f15*f0;
+	f1 = f1+f5;
+	f5 = f14*f0;
+	f12 = f12*f3;
+	f13 = f13*f4;
+	f10 = f10+f11;
+	f11 = f19*f0;
+	f8 = f8+f9;
+	f9 = f18*f0;
+	f14 = f16*f3;
+	f15 = f17*f4;
+	f6 = f6+f7;
+	f1 = f1+f5;
+	f5 = f10+f11;
+	f7 = f8+f9;
+	f8 = f12+f13;
+	f9 = f20*f0;
+	f10 = f14+f15;
+	f11 = f21*f0;
+	f8 = f8+f9;
+	f9 = f10+f11;
+	f6 = f3*f6;
+	f1 = f4*f1;
+	f3 = f3*f5;
+	f4 = f4*f7;
+	f1 = f6+f1;
+	f5 = f0*f8;
+	f3 = f3+f4;
+	f0 = f0*f9;
+	f1 = f1+f5;
+	f0 = f3+f0;
+	f0 = f1+f0;
+	f0 = f2/f0;
+	heapFloat[(r1+121)] = f0;
+}
+	r0 = heapU8[r0+514];
+	if(r0 ==0) //_LBB587_83
+{
+break _8;
+}
+else{
+	f0 = heapFloat[(fp+-37)];
+	f1 = -f0;
+	f2 = heapFloat[(fp+-38)];
+	f3 = -f2;
+	f4 = heapFloat[(fp+-52)];
+	f1 = f4*f1;
+	f6 = heapFloat[(fp+-39)];
+	f5 = heapFloat[(fp+-50)];
+	f7 = f5*f6;
+	f8 = heapFloat[(fp+-49)];
+	f9 = f0*f8;
+	f10 = f5*f2;
+	f11 = -f6;
+	f1 = f1-f7;
+	f7 = heapFloat[(fp+-51)];
+	f12 = f7*f2;
+	f9 = f9+f10;
+	f10 = f7*f6;
+	f3 = f4*f3;
+	f13 = f7*f0;
+	f1 = f1+f12;
+	f9 = f9+f10;
+	f3 = f3-f13;
+	f6 = f8*f6;
+	f10 = f4*f11;
+	f2 = f8*f2;
+	f3 = f3+f6;
+	f6 = f1*f4;
+	f11 = f9*f8;
+	f2 = f10-f2;
+	f0 = f5*f0;
+	f0 = f2+f0;
+	f2 = f3*f4;
+	f10 = f9*f5;
+	f6 = f6-f11;
+	f11 = f3*f7;
+	f4 = f0*f4;
+	f9 = f9*f7;
+	f2 = f2-f10;
+	f10 = f0*f8;
+	f6 = f6-f11;
+	f0 = f0*f5;
+	f0 = f6+f0;
+	f4 = f4-f9;
+	f5 = f1*f5;
+	f2 = f2-f10;
+	f1 = f1*f7;
+	f4 = f4-f5;
+	f3 = f3*f8;
+	f1 = f2+f1;
+	heapFloat[(r1+131)] = f0;
+	f0 = f4+f3;
+	heapFloat[(r1+132)] = f1;
+	heapFloat[(r1+133)] = f0;
+	heap32[(r1+134)] = 0;
+	return;
+}
+}
+}
+}
+	r0 = _2E_str584;
+	r1 = _2E_str685;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 188;
+	_assert(i7);
+}
+} while(0);
+	return;
+}
+
+function _ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+	heap32[(r0+1)] = 0;
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	heap32[(r0+2)] = 0;
+	r1 = r1 >> 2;
+	heap32[(r0+3)] = 0;
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r2)];
+	f2 = heapFloat[(r1+1)];
+	f3 = heapFloat[(r2+1)];
+	f4 = heapFloat[(r2+4)];
+	f5 = heapFloat[(r2+5)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r1+2)];
+	f7 = heapFloat[(r2+2)];
+	f8 = heapFloat[(r2+8)];
+	f9 = heapFloat[(r2+9)];
+	f10 = heapFloat[(r2+10)];
+	f11 = heapFloat[(r2+6)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f11*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	f2 = f10*f6;
+	f3 = f4+f5;
+	heapFloat[(r0+4)] = f1;
+	f0 = f0+f2;
+	heapFloat[(r0+5)] = f3;
+	heapFloat[(r0+6)] = f0;
+	heap32[(r0+7)] = 0;
+	r2 = heap32[(fp+3)];
+	r2 = r2 >> 2;
+	f2 = heapFloat[(r1)];
+	f2 = -f2;
+	f4 = heapFloat[(r2)];
+	f5 = heapFloat[(r1+1)];
+	f6 = heapFloat[(r2+1)];
+	f7 = heapFloat[(r2+4)];
+	f8 = heapFloat[(r2+5)];
+	f4 = f4*f2;
+	f6 = f6*f5;
+	f9 = heapFloat[(r1+2)];
+	f10 = heapFloat[(r2+2)];
+	f11 = heapFloat[(r2+8)];
+	f12 = heapFloat[(r2+9)];
+	f13 = heapFloat[(r2+10)];
+	f14 = heapFloat[(r2+6)];
+	f7 = f7*f2;
+	f8 = f8*f5;
+	f4 = f4-f6;
+	f6 = f10*f9;
+	f2 = f11*f2;
+	f5 = f12*f5;
+	f7 = f7-f8;
+	f8 = f14*f9;
+	f4 = f4-f6;
+	f2 = f2-f5;
+	f5 = f13*f9;
+	f6 = f7-f8;
+	heapFloat[(r0+8)] = f4;
+	f2 = f2-f5;
+	heapFloat[(r0+9)] = f6;
+	r1 = heap32[(fp+4)];
+	heapFloat[(r0+10)] = f2;
+	r1 = r1 >> 2;
+	heap32[(r0+11)] = 0;
+	f5 = heapFloat[(r1+2)];
+	f7 = heapFloat[(r1+1)];
+	f8 = heapFloat[(r1)];
+	f8 = f8*f1;
+	f7 = f7*f3;
+	heapFloat[(r0+12)] = f8;
+	f5 = f5*f0;
+	heapFloat[(r0+13)] = f7;
+	r1 = heap32[(fp+5)];
+	heapFloat[(r0+14)] = f5;
+	r1 = r1 >> 2;
+	heap32[(r0+15)] = 0;
+	f9 = heapFloat[(r1+2)];
+	f10 = heapFloat[(r1+1)];
+	f11 = heapFloat[(r1)];
+	f10 = f10*f6;
+	f11 = f11*f4;
+	f9 = f9*f2;
+	heapFloat[(r0+16)] = f11;
+	f1 = f8*f1;
+	f3 = f7*f3;
+	f4 = f11*f4;
+	f6 = f10*f6;
+	heapFloat[(r0+17)] = f10;
+	f1 = f1+f3;
+	f0 = f5*f0;
+	f3 = f4+f6;
+	f2 = f9*f2;
+	heapFloat[(r0+18)] = f9;
+	f0 = f1+f0;
+	f1 = f3+f2;
+	f0 = f0+f1;
+	heap32[(r0+19)] = 0;
+	f1 =                         0;
+	heapFloat[(r0+20)] = f0;
+	if(f0 >f1) //_LBB588_2
+{
+	return;
+}
+else{
+	r0 = _2E_str846;
+	r1 = _2E_str947;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 70;
+	_assert(i7);
+}
+}
+
+function _Z21btAdjustAngleToLimitsfff(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	f0 = heapFloat[(fp+1)];
+	f1 = heapFloat[(fp+2)];
+	f2 = heapFloat[(fp)];
+_1: do {
+if(!(f0 >=f1)) //_LBB589_39
+{
+	if(f2 >=f0) //_LBB589_20
+{
+	if(f2 <=f1) //_LBB589_39
+{
+break _1;
+}
+else{
+	f1 = f2-f1;
+	heapFloat[(g0)] = f1;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f1 = f_g0;
+	f3 =       -3.1415927410125732;
+	if(f1 >=f3) //_LBB589_23
+{
+	f4 =        3.1415927410125732;
+	if(f1 >f4) //_LBB589_25
+{
+	f4 =       -6.2831854820251465;
+	f1 = f1+f4;
+}
+}
+else{
+	f4 =        6.2831854820251465;
+	f1 = f1+f4;
+}
+	f4 =                         0;
+	if(f1 <f4) //_LBB589_28
+{
+	f1 = -f1;
+}
+	f0 = f2-f0;
+	heapFloat[(g0)] = f0;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f0 = f_g0;
+	if(f0 >=f3) //_LBB589_31
+{
+	f3 =        3.1415927410125732;
+	if(f0 >f3) //_LBB589_33
+{
+	f3 =       -6.2831854820251465;
+	f0 = f0+f3;
+}
+}
+else{
+	f3 =        6.2831854820251465;
+	f0 = f0+f3;
+}
+	if(f0 <f4) //_LBB589_36
+{
+	f0 = -f0;
+}
+	if(f0 >=f1) //_LBB589_39
+{
+break _1;
+}
+else{
+	f0 =       -6.2831854820251465;
+	f2 = f2+f0;
+}
+}
+}
+else{
+	f0 = f0-f2;
+	heapFloat[(g0)] = f0;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f0 = f_g0;
+	f3 =       -3.1415927410125732;
+	if(f0 >=f3) //_LBB589_4
+{
+	f4 =        3.1415927410125732;
+	if(f0 >f4) //_LBB589_6
+{
+	f4 =       -6.2831854820251465;
+	f0 = f0+f4;
+}
+}
+else{
+	f4 =        6.2831854820251465;
+	f0 = f0+f4;
+}
+	f4 =                         0;
+	if(f0 <f4) //_LBB589_9
+{
+	f0 = -f0;
+}
+	f1 = f1-f2;
+	heapFloat[(g0)] = f1;
+	heap32[(g0+1)] = 1086918619;
+	fmodf(i7);
+	f1 = f_g0;
+	if(f1 >=f3) //_LBB589_12
+{
+	f3 =        3.1415927410125732;
+	if(f1 >f3) //_LBB589_14
+{
+	f3 =       -6.2831854820251465;
+	f1 = f1+f3;
+}
+}
+else{
+	f3 =        6.2831854820251465;
+	f1 = f1+f3;
+}
+	if(f1 <f4) //_LBB589_17
+{
+	f1 = -f1;
+}
+if(!(f0 <f1)) //_LBB589_39
+{
+	f0 =        6.2831854820251465;
+	f0 = f2+f0;
+	f_g0 = f0;
+	return;
+}
+}
+}
+} while(0);
+	f_g0 = f2;
+	return;
+}
+
+function _ZNK17btHingeConstraint28calculateSerializeBufferSizeEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 212;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK17btHingeConstraint9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	r1 = r1 >> 2;
+	r2 = r0 >> 2;
+	_ZNK17btTypedConstraint9serializeEPvP12btSerializer(i7);
+	heap32[(r1+11)] = heap32[(r2+135)];
+	heap32[(r1+12)] = heap32[(r2+136)];
+	heap32[(r1+13)] = heap32[(r2+137)];
+	heap32[(r1+14)] = heap32[(r2+138)];
+	heap32[(r1+15)] = heap32[(r2+139)];
+	heap32[(r1+16)] = heap32[(r2+140)];
+	heap32[(r1+17)] = heap32[(r2+141)];
+	heap32[(r1+18)] = heap32[(r2+142)];
+	heap32[(r1+19)] = heap32[(r2+143)];
+	heap32[(r1+20)] = heap32[(r2+144)];
+	heap32[(r1+21)] = heap32[(r2+145)];
+	heap32[(r1+22)] = heap32[(r2+146)];
+	heap32[(r1+23)] = heap32[(r2+147)];
+	heap32[(r1+24)] = heap32[(r2+148)];
+	heap32[(r1+25)] = heap32[(r2+149)];
+	heap32[(r1+26)] = heap32[(r2+150)];
+	heap32[(r1+27)] = heap32[(r2+151)];
+	heap32[(r1+28)] = heap32[(r2+152)];
+	heap32[(r1+29)] = heap32[(r2+153)];
+	heap32[(r1+30)] = heap32[(r2+154)];
+	heap32[(r1+31)] = heap32[(r2+155)];
+	heap32[(r1+32)] = heap32[(r2+156)];
+	heap32[(r1+33)] = heap32[(r2+157)];
+	heap32[(r1+34)] = heap32[(r2+158)];
+	heap32[(r1+35)] = heap32[(r2+159)];
+	heap32[(r1+36)] = heap32[(r2+160)];
+	heap32[(r1+37)] = heap32[(r2+161)];
+	heap32[(r1+38)] = heap32[(r2+162)];
+	heap32[(r1+39)] = heap32[(r2+163)];
+	heap32[(r1+40)] = heap32[(r2+164)];
+	heap32[(r1+41)] = heap32[(r2+165)];
+	heap32[(r1+42)] = heap32[(r2+166)];
+	r3 = heapU8[r0+720];
+	heap32[(r1+44)] = r3;
+	r3 = heapU8[r0+721];
+	heap32[(r1+45)] = r3;
+	heap32[(r1+47)] = heap32[(r2+168)];
+	heap32[(r1+46)] = heap32[(r2+167)];
+	r0 = heapU8[r0+725];
+	heap32[(r1+43)] = r0;
+	heap32[(r1+48)] = heap32[(r2+172)];
+	heap32[(r1+49)] = heap32[(r2+173)];
+	heap32[(r1+50)] = heap32[(r2+169)];
+	heap32[(r1+51)] = heap32[(r2+170)];
+	heap32[(r1+52)] = heap32[(r2+171)];
+	r0 = _2E_str29;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN17btHingeConstraintD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV17btHingeConstraint;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN17btHingeConstraintD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV17btHingeConstraint;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN17btHingeConstraint13buildJacobianEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+var __label__ = 0;
+	i7 = sp + -552;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+723];
+if(!(r1 ==0)) //_LBB594_25
+{
+	r1 = r0 >> 2;
+	heap32[(r1+7)] = 0;
+	heap32[(r1+182)] = 0;
+	r2 = heapU8[r0+720];
+if(!(r2 !=0)) //_LBB594_13
+{
+	r2 = heap32[(r1+6)];
+	r3 = heap32[(r1+5)];
+	r2 = r2 >> 2;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r2+5)];
+	f1 = heapFloat[(r1+163)];
+	f2 = heapFloat[(r2+1)];
+	f3 = heapFloat[(r2+6)];
+	f4 = heapFloat[(r1+164)];
+	f5 = heapFloat[(r2+2)];
+	f6 = heapFloat[(r3+5)];
+	f7 = heapFloat[(r1+147)];
+	f8 = heapFloat[(r3+1)];
+	f9 = heapFloat[(r3+6)];
+	f10 = heapFloat[(r1+148)];
+	f11 = heapFloat[(r3+2)];
+	f12 = heapFloat[(r2+9)];
+	f13 = heapFloat[(r2+10)];
+	f14 = heapFloat[(r3+9)];
+	f15 = heapFloat[(r3+10)];
+	f0 = f0*f1;
+	f3 = f3*f4;
+	f16 = heapFloat[(r2+7)];
+	f17 = heapFloat[(r1+165)];
+	f18 = heapFloat[(r2+3)];
+	f6 = f6*f7;
+	f9 = f9*f10;
+	f19 = heapFloat[(r3+7)];
+	f20 = heapFloat[(r1+149)];
+	f21 = heapFloat[(r3+3)];
+	f2 = f2*f1;
+	f5 = f5*f4;
+	f8 = f8*f7;
+	f11 = f11*f10;
+	f22 = heapFloat[(r2+11)];
+	f23 = heapFloat[(r3+11)];
+	f1 = f12*f1;
+	f4 = f13*f4;
+	f7 = f14*f7;
+	f10 = f15*f10;
+	f0 = f0+f3;
+	f3 = f16*f17;
+	f6 = f6+f9;
+	f9 = f19*f20;
+	f2 = f2+f5;
+	f5 = f18*f17;
+	f8 = f8+f11;
+	f11 = f21*f20;
+	f1 = f1+f4;
+	f4 = f22*f17;
+	f7 = f7+f10;
+	f10 = f23*f20;
+	f0 = f0+f3;
+	f3 = heapFloat[(r2+14)];
+	f6 = f6+f9;
+	f9 = heapFloat[(r3+14)];
+	f2 = f2+f5;
+	f5 = heapFloat[(r2+13)];
+	f8 = f8+f11;
+	f11 = heapFloat[(r3+13)];
+	f0 = f0+f3;
+	f3 = f6+f9;
+	f2 = f2+f5;
+	f5 = f8+f11;
+	f1 = f1+f4;
+	f4 = heapFloat[(r2+15)];
+	f6 = f7+f10;
+	f7 = heapFloat[(r3+15)];
+	f8 = f0-f3;
+	f9 = f2-f5;
+	f1 = f1+f4;
+	f4 = f6+f7;
+	f6 = f1-f4;
+	f7 = f9*f9;
+	f10 = f8*f8;
+	f7 = f7+f10;
+	f10 = f6*f6;
+	f7 = f7+f10;
+	f10 =   1.1920928955078125e-007;
+	if(f7 >f10) //_LBB594_4
+{
+	heapFloat[(g0)] = f7;
+	f10 =                         1;
+	sqrtf(i7);
+	f11 = f10/f_g0;
+	r2 = sp + -512;
+	f7 = f9*f11;
+	f8 = f8*f11;
+	r3 = r2 >> 2;
+	heapFloat[(fp+-128)] = f7;
+	f6 = f6*f11;
+	heapFloat[(r3+1)] = f8;
+	r2 = (r2 + 8)|0;
+	heapFloat[(r3+2)] = f6;
+	heap32[(r3+3)] = 0;
+	f9 =                         0;
+	if(f6 <f9) //_LBB594_6
+{
+	f9 = -f6;
+}
+else{
+	f9 = f6;
+}
+	f11 =       0.70710676908493042;
+	if(f9 >f11) //_LBB594_9
+{
+	f7 = f8*f8;
+	f8 = f6*f6;
+	f7 = f7+f8;
+	heapFloat[(g0)] = f7;
+	sqrtf(i7);
+	heap32[(r3+4)] = 0;
+	f6 = heapFloat[(r3+2)];
+	f8 = f10/f_g0;
+	f6 = -f6;
+	f6 = f8*f6;
+	heapFloat[(r3+5)] = f6;
+	f9 = heapFloat[(r3+1)];
+	f9 = f9*f8;
+	f7 = f7*f8;
+	heapFloat[(r3+6)] = f9;
+	heapFloat[(r3+8)] = f7;
+	f7 = heapFloat[(fp+-128)];
+	f8 = -f7;
+	f8 = f9*f8;
+	f7 = f7*f6;
+	heapFloat[(r3+9)] = f8;
+	heapFloat[(r3+10)] = f7;
+__label__ = 10;
+}
+else{
+__label__ = 9;
+}
+}
+else{
+	r2 = sp + -512;
+	r3 = r2 >> 2;
+	heap32[(fp+-128)] = 1065353216;
+	heap32[(r3+1)] = 0;
+	r2 = (r2 + 8)|0;
+	f7 =                         1;
+	f8 =                         0;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = 0;
+__label__ = 9;
+}
+if (__label__ == 9){
+	f6 = f7*f7;
+	f7 = f8*f8;
+	f6 = f6+f7;
+	r3 = sp + -512;
+	heapFloat[(g0)] = f6;
+	r3 = r3 >> 2;
+	sqrtf(i7);
+	f8 =                         1;
+	f9 = heapFloat[(r3+1)];
+	f7 = f8/f_g0;
+	f8 = -f9;
+	f8 = f7*f8;
+	heapFloat[(r3+4)] = f8;
+	f9 = heapFloat[(fp+-128)];
+	f9 = f9*f7;
+	heapFloat[(r3+5)] = f9;
+	r2 = r2 >> 2;
+	heap32[(r3+6)] = 0;
+	f10 = heapFloat[(r2)];
+	f11 = -f10;
+	f9 = f9*f11;
+	f8 = f10*f8;
+	heapFloat[(r3+8)] = f9;
+	f6 = f6*f7;
+	heapFloat[(r3+9)] = f8;
+	heapFloat[(r3+10)] = f6;
+}
+	r2 = (r0 + 36)|0;
+	r3 = 0;
+_16: while(true){
+	r4 = heap32[(r1+5)];
+	r5 = r4 >> 2;
+	r6 = sp + -416;
+	r7 = r6 >> 2;
+	heap32[(fp+-104)] = heap32[(r5+1)];
+	heap32[(r7+1)] = heap32[(r5+5)];
+	heap32[(r7+2)] = heap32[(r5+9)];
+	heap32[(r7+3)] = 0;
+	heap32[(r7+4)] = heap32[(r5+2)];
+	heap32[(r7+5)] = heap32[(r5+6)];
+	heap32[(r7+6)] = heap32[(r5+10)];
+	heap32[(r7+7)] = 0;
+	heap32[(r7+8)] = heap32[(r5+3)];
+	heap32[(r7+9)] = heap32[(r5+7)];
+	heap32[(r7+10)] = heap32[(r5+11)];
+	heap32[(r7+11)] = 0;
+	r7 = heap32[(r1+6)];
+	r8 = sp + -368;
+	r9 = r7 >> 2;
+	r10 = r8 >> 2;
+	heap32[(fp+-92)] = heap32[(r9+1)];
+	heap32[(r10+1)] = heap32[(r9+5)];
+	heap32[(r10+2)] = heap32[(r9+9)];
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = heap32[(r9+2)];
+	heap32[(r10+5)] = heap32[(r9+6)];
+	heap32[(r10+6)] = heap32[(r9+10)];
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = heap32[(r9+3)];
+	heap32[(r10+9)] = heap32[(r9+7)];
+	heap32[(r10+10)] = heap32[(r9+11)];
+	heap32[(r10+11)] = 0;
+	f6 = heapFloat[(r5+13)];
+	f7 = heapFloat[(r5+15)];
+	f8 = heapFloat[(r5+14)];
+	r10 = sp + -320;
+	f6 = f5-f6;
+	r11 = r10 >> 2;
+	f8 = f3-f8;
+	heapFloat[(fp+-80)] = f6;
+	f6 = f4-f7;
+	heapFloat[(r11+1)] = f8;
+	heapFloat[(r11+2)] = f6;
+	heap32[(r11+3)] = 0;
+	f6 = heapFloat[(r9+13)];
+	f7 = heapFloat[(r9+15)];
+	f8 = heapFloat[(r9+14)];
+	r11 = sp + -304;
+	f6 = f2-f6;
+	r12 = r11 >> 2;
+	f8 = f0-f8;
+	heapFloat[(fp+-76)] = f6;
+	f6 = f1-f7;
+	heapFloat[(r12+1)] = f8;
+	heapFloat[(r12+2)] = f6;
+	heap32[(r12+3)] = 0;
+	f6 = heapFloat[(r9+84)];
+	f7 = heapFloat[(r5+84)];
+	r5 = sp + -512;
+	r5 = (r5 + r3)|0;
+	r4 = (r4 + 388)|0;
+	r7 = (r7 + 388)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r10;
+	heap32[(g0+4)] = r11;
+	heap32[(g0+5)] = r5;
+	heap32[(g0+6)] = r4;
+	heapFloat[(g0+7)] = f7;
+	heap32[(g0+8)] = r7;
+	heapFloat[(g0+9)] = f6;
+	r3 = (r3 + 16)|0;
+	r2 = (r2 + 84)|0;
+	_ZN15btJacobianEntryC2ERK11btMatrix3x3S2_RK9btVector3S5_S5_S5_fS5_f(i7);
+if(!(r3 !=48)) //_LBB594_12
+{
+break _16;
+}
+}
+}
+	f0 = heapFloat[(r1+145)];
+	f1 = heapFloat[(r1+137)];
+	f2 = heapFloat[(r1+141)];
+	f3 =                         0;
+	if(f0 <f3) //_LBB594_15
+{
+	f4 = -f0;
+}
+else{
+	f4 = f0;
+}
+	f5 =       0.70710676908493042;
+	if(f4 <=f5) //_LBB594_18
+{
+	f4 = f1*f1;
+	f6 = f2*f2;
+	f5 = f4+f6;
+	heapFloat[(g0)] = f5;
+	f4 =                         1;
+	sqrtf(i7);
+	f7 = f4/f_g0;
+	f2 = -f2;
+	f4 = f7*f2;
+	f6 = f1*f7;
+	f1 = -f0;
+	f2 = f6*f1;
+	f0 = f0*f4;
+	f1 = f5*f7;
+}
+else{
+	f3 = f2*f2;
+	f4 = f0*f0;
+	f4 = f3+f4;
+	heapFloat[(g0)] = f4;
+	f3 =                         1;
+	sqrtf(i7);
+	f5 = f3/f_g0;
+	f0 = -f0;
+	f6 = f5*f0;
+	f3 = f2*f5;
+	f0 = -f1;
+	f2 = f4*f5;
+	f0 = f3*f0;
+	f1 = f1*f6;
+	f4 =                         0;
+}
+	r2 = heap32[(r1+5)];
+	r3 = r2 >> 2;
+	f5 = heapFloat[(r3+2)];
+	f7 = heapFloat[(r3+1)];
+	f8 = heapFloat[(r3+6)];
+	f9 = heapFloat[(r3+5)];
+	f10 = heapFloat[(r3+3)];
+	f11 = f7*f4;
+	f12 = f5*f6;
+	f13 = heapFloat[(r3+11)];
+	f14 = heapFloat[(r3+7)];
+	f15 = heapFloat[(r3+10)];
+	f16 = heapFloat[(r3+9)];
+	f17 = f9*f4;
+	f18 = f8*f6;
+	f11 = f11+f12;
+	f12 = f10*f3;
+	r3 = sp + -432;
+	f4 = f16*f4;
+	f6 = f15*f6;
+	f17 = f17+f18;
+	f18 = f14*f3;
+	f11 = f11+f12;
+	r4 = r3 >> 2;
+	f4 = f4+f6;
+	f3 = f13*f3;
+	f6 = f17+f18;
+	heapFloat[(fp+-108)] = f11;
+	f11 = f7*f2;
+	f12 = f5*f0;
+	f3 = f4+f3;
+	heapFloat[(r4+1)] = f6;
+	heapFloat[(r4+2)] = f3;
+	f3 = f9*f2;
+	f4 = f8*f0;
+	f6 = f11+f12;
+	f11 = f10*f1;
+	r5 = sp + -448;
+	f2 = f16*f2;
+	f0 = f15*f0;
+	f3 = f3+f4;
+	f4 = f14*f1;
+	f6 = f6+f11;
+	heap32[(r4+3)] = 0;
+	r4 = r5 >> 2;
+	f0 = f2+f0;
+	f1 = f13*f1;
+	f2 = f3+f4;
+	heapFloat[(fp+-112)] = f6;
+	f0 = f0+f1;
+	heapFloat[(r4+1)] = f2;
+	heapFloat[(r4+2)] = f0;
+	heap32[(r4+3)] = 0;
+	f0 = heapFloat[(r1+137)];
+	f1 = heapFloat[(r1+141)];
+	f2 = heapFloat[(r1+145)];
+	f3 = f7*f0;
+	f4 = f5*f1;
+	f6 = f9*f0;
+	f11 = f8*f1;
+	f3 = f3+f4;
+	f4 = f10*f2;
+	r4 = sp + -464;
+	f0 = f16*f0;
+	f1 = f15*f1;
+	f6 = f6+f11;
+	f11 = f14*f2;
+	f3 = f3+f4;
+	r6 = r4 >> 2;
+	f0 = f0+f1;
+	f1 = f13*f2;
+	f2 = f6+f11;
+	heapFloat[(fp+-116)] = f3;
+	f0 = f0+f1;
+	heapFloat[(r6+1)] = f2;
+	heapFloat[(r6+2)] = f0;
+	r7 = sp + -288;
+	heap32[(r6+3)] = 0;
+	r6 = r7 >> 2;
+	heapFloat[(fp+-72)] = f7;
+	heapFloat[(r6+1)] = f9;
+	heapFloat[(r6+2)] = f16;
+	heap32[(r6+3)] = 0;
+	heapFloat[(r6+4)] = f5;
+	heapFloat[(r6+5)] = f8;
+	heapFloat[(r6+6)] = f15;
+	heap32[(r6+7)] = 0;
+	heapFloat[(r6+8)] = f10;
+	heapFloat[(r6+9)] = f14;
+	heapFloat[(r6+10)] = f13;
+	heap32[(r6+11)] = 0;
+	r6 = heap32[(r1+6)];
+	r8 = sp + -240;
+	r9 = r6 >> 2;
+	r10 = r8 >> 2;
+	heap32[(fp+-60)] = heap32[(r9+1)];
+	heap32[(r10+1)] = heap32[(r9+5)];
+	heap32[(r10+2)] = heap32[(r9+9)];
+	heap32[(r10+3)] = 0;
+	heap32[(r10+4)] = heap32[(r9+2)];
+	heap32[(r10+5)] = heap32[(r9+6)];
+	heap32[(r10+6)] = heap32[(r9+10)];
+	heap32[(r10+7)] = 0;
+	heap32[(r10+8)] = heap32[(r9+3)];
+	heap32[(r10+9)] = heap32[(r9+7)];
+	heap32[(r10+10)] = heap32[(r9+11)];
+	heap32[(r10+11)] = 0;
+	r9 = (r0 + 288)|0;
+	r2 = (r2 + 388)|0;
+	r6 = (r6 + 388)|0;
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r8;
+	heap32[(g0+4)] = r2;
+	heap32[(g0+5)] = r6;
+	_ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(i7);
+	r2 = heap32[(r1+5)];
+	r3 = sp + -192;
+	r6 = r2 >> 2;
+	r7 = r3 >> 2;
+	heap32[(fp+-48)] = heap32[(r6+1)];
+	heap32[(r7+1)] = heap32[(r6+5)];
+	heap32[(r7+2)] = heap32[(r6+9)];
+	heap32[(r7+3)] = 0;
+	heap32[(r7+4)] = heap32[(r6+2)];
+	heap32[(r7+5)] = heap32[(r6+6)];
+	heap32[(r7+6)] = heap32[(r6+10)];
+	heap32[(r7+7)] = 0;
+	heap32[(r7+8)] = heap32[(r6+3)];
+	heap32[(r7+9)] = heap32[(r6+7)];
+	heap32[(r7+10)] = heap32[(r6+11)];
+	heap32[(r7+11)] = 0;
+	r6 = heap32[(r1+6)];
+	r7 = sp + -144;
+	r8 = r6 >> 2;
+	r9 = r7 >> 2;
+	heap32[(fp+-36)] = heap32[(r8+1)];
+	heap32[(r9+1)] = heap32[(r8+5)];
+	heap32[(r9+2)] = heap32[(r8+9)];
+	heap32[(r9+3)] = 0;
+	heap32[(r9+4)] = heap32[(r8+2)];
+	heap32[(r9+5)] = heap32[(r8+6)];
+	heap32[(r9+6)] = heap32[(r8+10)];
+	heap32[(r9+7)] = 0;
+	heap32[(r9+8)] = heap32[(r8+3)];
+	heap32[(r9+9)] = heap32[(r8+7)];
+	heap32[(r9+10)] = heap32[(r8+11)];
+	heap32[(r9+11)] = 0;
+	r8 = (r0 + 372)|0;
+	r2 = (r2 + 388)|0;
+	r6 = (r6 + 388)|0;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = r2;
+	heap32[(g0+5)] = r6;
+	_ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(i7);
+	r2 = heap32[(r1+5)];
+	r3 = sp + -96;
+	r5 = r2 >> 2;
+	r6 = r3 >> 2;
+	heap32[(fp+-24)] = heap32[(r5+1)];
+	heap32[(r6+1)] = heap32[(r5+5)];
+	heap32[(r6+2)] = heap32[(r5+9)];
+	heap32[(r6+3)] = 0;
+	heap32[(r6+4)] = heap32[(r5+2)];
+	heap32[(r6+5)] = heap32[(r5+6)];
+	heap32[(r6+6)] = heap32[(r5+10)];
+	heap32[(r6+7)] = 0;
+	heap32[(r6+8)] = heap32[(r5+3)];
+	heap32[(r6+9)] = heap32[(r5+7)];
+	heap32[(r6+10)] = heap32[(r5+11)];
+	heap32[(r6+11)] = 0;
+	r5 = heap32[(r1+6)];
+	r6 = sp + -48;
+	r7 = r5 >> 2;
+	r8 = r6 >> 2;
+	heap32[(fp+-12)] = heap32[(r7+1)];
+	heap32[(r8+1)] = heap32[(r7+5)];
+	heap32[(r8+2)] = heap32[(r7+9)];
+	heap32[(r8+3)] = 0;
+	heap32[(r8+4)] = heap32[(r7+2)];
+	heap32[(r8+5)] = heap32[(r7+6)];
+	heap32[(r8+6)] = heap32[(r7+10)];
+	heap32[(r8+7)] = 0;
+	heap32[(r8+8)] = heap32[(r7+3)];
+	heap32[(r8+9)] = heap32[(r7+7)];
+	heap32[(r8+10)] = heap32[(r7+11)];
+	heap32[(r8+11)] = 0;
+	r7 = (r0 + 456)|0;
+	r2 = (r2 + 388)|0;
+	r5 = (r5 + 388)|0;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r6;
+	heap32[(g0+4)] = r2;
+	heap32[(g0+5)] = r5;
+	_ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(i7);
+	heap32[(r1+177)] = 0;
+	r2 = heap32[(r1+6)];
+	r3 = heap32[(r1+5)];
+	r3 = (r3 + 4)|0;
+	r2 = (r2 + 4)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r2;
+	_ZN17btHingeConstraint13getHingeAngleERK11btTransformS2_(i7);
+	f0 = f_g0;
+	heapFloat[(r1+178)] = f0;
+	heap32[(r1+176)] = 0;
+	r2 = 0;
+	heap32[(r1+175)] = 0;
+	heap8[r0+722] = r2;
+	f1 = heapFloat[(r1+172)];
+	f2 = heapFloat[(r1+173)];
+if(!(f1 >f2)) //_LBB594_24
+{
+	heapFloat[(g0)] = f0;
+	heapFloat[(g0+1)] = f1;
+	heapFloat[(g0+2)] = f2;
+	_Z21btAdjustAngleToLimitsfff(i7);
+	f0 = f_g0;
+	heapFloat[(r1+178)] = f0;
+	f1 = heapFloat[(r1+172)];
+	if(f0 >f1) //_LBB594_22
+{
+	f1 = heapFloat[(r1+173)];
+if(!(f0 <f1)) //_LBB594_24
+{
+	f0 = f1-f0;
+	heapFloat[(r1+176)] = f0;
+	r2 = 1;
+	heap32[(r1+175)] = -1082130432;
+	heap8[r0+722] = r2;
+}
+}
+else{
+	f0 = f1-f0;
+	heapFloat[(r1+176)] = f0;
+	r2 = 1;
+	heap32[(r1+175)] = 1065353216;
+	heap8[r0+722] = r2;
+}
+}
+	r0 = heap32[(r1+5)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r1+137)];
+	f1 = heapFloat[(r0+5)];
+	f2 = heapFloat[(r0+1)];
+	f3 = heapFloat[(r1+141)];
+	f4 = heapFloat[(r0+6)];
+	f5 = heapFloat[(r0+2)];
+	f6 = heapFloat[(r0+9)];
+	f7 = heapFloat[(r0+10)];
+	r2 = heap32[(r1+6)];
+	f2 = f2*f0;
+	f5 = f5*f3;
+	f1 = f1*f0;
+	f4 = f4*f3;
+	f8 = heapFloat[(r1+145)];
+	f9 = heapFloat[(r0+7)];
+	f10 = heapFloat[(r0+3)];
+	r2 = r2 >> 2;
+	f11 = heapFloat[(r0+11)];
+	f0 = f6*f0;
+	f3 = f7*f3;
+	f2 = f2+f5;
+	f5 = f10*f8;
+	f1 = f1+f4;
+	f4 = f9*f8;
+	f0 = f0+f3;
+	f3 = f11*f8;
+	f2 = f2+f5;
+	f5 = heapFloat[(r0+65)];
+	f6 = heapFloat[(r0+64)];
+	f7 = heapFloat[(r2+65)];
+	f8 = heapFloat[(r2+64)];
+	f1 = f1+f4;
+	f4 = heapFloat[(r0+69)];
+	f9 = heapFloat[(r0+68)];
+	f10 = heapFloat[(r2+69)];
+	f11 = heapFloat[(r2+68)];
+	f12 = heapFloat[(r0+66)];
+	f13 = heapFloat[(r0+70)];
+	f14 = heapFloat[(r2+66)];
+	f15 = heapFloat[(r2+70)];
+	f6 = f6*f2;
+	f9 = f9*f1;
+	f5 = f5*f2;
+	f4 = f4*f1;
+	f8 = f8*f2;
+	f11 = f11*f1;
+	f7 = f7*f2;
+	f10 = f10*f1;
+	f0 = f0+f3;
+	f3 = heapFloat[(r0+73)];
+	f16 = heapFloat[(r0+72)];
+	f17 = heapFloat[(r2+73)];
+	f18 = heapFloat[(r2+72)];
+	f19 = heapFloat[(r0+74)];
+	f20 = heapFloat[(r2+74)];
+	f6 = f6+f9;
+	f9 = f16*f0;
+	f4 = f5+f4;
+	f3 = f3*f0;
+	f5 = f12*f2;
+	f12 = f13*f1;
+	f8 = f8+f11;
+	f11 = f18*f0;
+	f7 = f7+f10;
+	f10 = f17*f0;
+	f13 = f14*f2;
+	f14 = f15*f1;
+	f6 = f6+f9;
+	f3 = f4+f3;
+	f4 = f8+f11;
+	f7 = f7+f10;
+	f5 = f5+f12;
+	f8 = f19*f0;
+	f9 = f13+f14;
+	f10 = f20*f0;
+	f5 = f5+f8;
+	f8 = f9+f10;
+	f6 = f2*f6;
+	f3 = f1*f3;
+	f2 = f2*f4;
+	f1 = f1*f7;
+	f3 = f6+f3;
+	f4 = f0*f5;
+	f1 = f2+f1;
+	f0 = f0*f8;
+	f2 = f3+f4;
+	f0 = f1+f0;
+	f1 =                         1;
+	f0 = f2+f0;
+	f0 = f1/f0;
+	heapFloat[(r1+174)] = f0;
+}
+	return;
+}
+
+function _ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heapU8[r0+723];
+	if(r2 ==0) //_LBB595_2
+{
+	r1 = r1 >> 2;
+	heap32[(r1)] = 5;
+	heap32[(r1+1)] = 1;
+	r2 = r0 >> 2;
+	r3 = heap32[(r2+6)];
+	r4 = heap32[(r2+5)];
+	r4 = (r4 + 4)|0;
+	r3 = (r3 + 4)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r3;
+	_ZN17btHingeConstraint13getHingeAngleERK11btTransformS2_(i7);
+	f0 = f_g0;
+	heapFloat[(r2+178)] = f0;
+	heap32[(r2+176)] = 0;
+	r3 = 0;
+	heap32[(r2+175)] = 0;
+	heap8[r0+722] = r3;
+	f1 = heapFloat[(r2+172)];
+	f2 = heapFloat[(r2+173)];
+	if(f1 >f2) //_LBB595_8
+{
+__label__ = 8;
+}
+else{
+	heapFloat[(g0)] = f0;
+	heapFloat[(g0+1)] = f1;
+	heapFloat[(g0+2)] = f2;
+	_Z21btAdjustAngleToLimitsfff(i7);
+	f0 = f_g0;
+	heapFloat[(r2+178)] = f0;
+	f1 = heapFloat[(r2+172)];
+	if(f0 >f1) //_LBB595_5
+{
+	f1 = heapFloat[(r2+173)];
+	if(f0 <f1) //_LBB595_7
+{
+	r2 = heapU8[r0+722];
+	if(r2 !=0) //_LBB595_10
+{
+__label__ = 10;
+}
+else{
+__label__ = 8;
+}
+}
+else{
+	f0 = f1-f0;
+	heapFloat[(r2+176)] = f0;
+	r3 = 1;
+	heap32[(r2+175)] = -1082130432;
+	heap8[r0+722] = r3;
+__label__ = 10;
+}
+}
+else{
+	f0 = f1-f0;
+	heapFloat[(r2+176)] = f0;
+	r3 = 1;
+	heap32[(r2+175)] = 1065353216;
+	heap8[r0+722] = r3;
+__label__ = 10;
+}
+}
+if (__label__ == 8){
+	r0 = heapU8[r0+721];
+if(!(r0 !=0)) //_LBB595_10
+{
+	return;
+}
+}
+	r0 = heap32[(r1)];
+	r0 = (r0 + 1)|0;
+	heap32[(r1)] = r0;
+	r0 = heap32[(r1+1)];
+	r0 = (r0 + -1)|0;
+	heap32[(r1+1)] = r0;
+	return;
+}
+else{
+	r0 = r1 >> 2;
+	heap32[(r0)] = 0;
+	heap32[(r0+1)] = 0;
+	return;
+}
+}
+
+function _ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -136;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(r1+6)];
+	r4 = heap32[(r1+5)];
+	r5 = heapU8[r0+723];
+	r6 = heapU8[r0+724];
+_1: do {
+	if(r6 ==0) //_LBB596_60
+{
+	r5 = r5 & 255;
+	if(r5 ==0) //_LBB596_62
+{
+	r4 = r4 >> 2;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r1+147)];
+	f1 = heapFloat[(r4+9)];
+	f2 = heapFloat[(r4+5)];
+	f3 = heapFloat[(r4+1)];
+	f4 = heapFloat[(r1+148)];
+	f5 = heapFloat[(r4+10)];
+	f6 = heapFloat[(r4+6)];
+	f7 = heapFloat[(r4+2)];
+	f8 = heapFloat[(r1+163)];
+	f9 = heapFloat[(r3+9)];
+	heapFloat[(fp+-3)] = f9;
+	f10 = heapFloat[(r3+5)];
+	heapFloat[(fp+-2)] = f10;
+	f11 = heapFloat[(r3+1)];
+	heapFloat[(fp+-1)] = f11;
+	f12 = heapFloat[(r1+164)];
+	f13 = heapFloat[(r3+10)];
+	f14 = heapFloat[(r3+6)];
+	f9 = heapFloat[(r3+2)];
+	heapFloat[(fp+-7)] = f9;
+	f10 = heapFloat[(r1+137)];
+	f11 = heapFloat[(r1+141)];
+	f15 = heapFloat[(r1+136)];
+	f16 = heapFloat[(r1+140)];
+	f17 = heapFloat[(r1+135)];
+	f18 = heapFloat[(r1+139)];
+	f19 = heapFloat[(r1+153)];
+	f20 = heapFloat[(r1+157)];
+	f21 = f1*f0;
+	f22 = f5*f4;
+	f23 = f2*f0;
+	f24 = f6*f4;
+	f0 = f3*f0;
+	f4 = f7*f4;
+	f25 = heapFloat[(r1+149)];
+	f26 = heapFloat[(r4+11)];
+	f27 = heapFloat[(r4+7)];
+	f28 = heapFloat[(r4+3)];
+	f9 = heapFloat[(fp+-3)];
+	f29 = f9*f8;
+	heapFloat[(fp+-8)] = f29;
+	f30 = f13*f12;
+	heapFloat[(fp+-10)] = f30;
+	f9 = heapFloat[(fp+-2)];
+	f9 = f9*f8;
+	heapFloat[(fp+-9)] = f9;
+	f9 = f14*f12;
+	heapFloat[(fp+-12)] = f9;
+	f9 = heapFloat[(fp+-1)];
+	f8 = f9*f8;
+	heapFloat[(fp+-11)] = f8;
+	f9 = heapFloat[(fp+-7)];
+	f12 = f9*f12;
+	heapFloat[(fp+-13)] = f12;
+	f8 = heapFloat[(r1+165)];
+	f9 = heapFloat[(r3+11)];
+	heapFloat[(fp+-4)] = f9;
+	f9 = heapFloat[(r3+7)];
+	heapFloat[(fp+-6)] = f9;
+	f9 = heapFloat[(r3+3)];
+	heapFloat[(fp+-5)] = f9;
+	f9 = heapFloat[(r1+145)];
+	f12 = heapFloat[(r1+144)];
+	f29 = heapFloat[(r1+143)];
+	f30 = heapFloat[(r1+161)];
+	f21 = f21+f22;
+	heapFloat[(fp+-15)] = f21;
+	f22 = f26*f25;
+	f21 = f23+f24;
+	heapFloat[(fp+-16)] = f21;
+	f23 = f27*f25;
+	f0 = f0+f4;
+	heapFloat[(fp+-14)] = f0;
+	f0 = f28*f25;
+	heapFloat[(fp+-23)] = f0;
+	f0 = f10*f1;
+	heapFloat[(fp+-24)] = f0;
+	f4 = f11*f5;
+	f21 = f15*f1;
+	heapFloat[(fp+-18)] = f21;
+	f24 = f16*f5;
+	f1 = f17*f1;
+	heapFloat[(fp+-20)] = f1;
+	f5 = f18*f5;
+	f25 = f10*f2;
+	heapFloat[(fp+-17)] = f25;
+	f0 = f11*f6;
+	f1 = f15*f2;
+	heapFloat[(fp+-19)] = f1;
+	f1 = f16*f6;
+	heapFloat[(fp+-28)] = f1;
+	f2 = f17*f2;
+	heapFloat[(fp+-21)] = f2;
+	f1 = f18*f6;
+	heapFloat[(fp+-29)] = f1;
+	f2 = f10*f3;
+	heapFloat[(fp+-25)] = f2;
+	f6 = f11*f7;
+	f10 = f15*f3;
+	heapFloat[(fp+-26)] = f10;
+	f11 = f16*f7;
+	f3 = f17*f3;
+	heapFloat[(fp+-22)] = f3;
+	f7 = f18*f7;
+	f15 = heapFloat[(fp+-8)];
+	f16 = heapFloat[(fp+-10)];
+	f15 = f15+f16;
+	heapFloat[(fp+-27)] = f15;
+	f16 = heapFloat[(fp+-4)];
+	f17 = f16*f8;
+	f18 = heapFloat[(fp+-9)];
+	f21 = heapFloat[(fp+-12)];
+	f18 = f18+f21;
+	heapFloat[(fp+-8)] = f18;
+	f21 = heapFloat[(fp+-6)];
+	f25 = f21*f8;
+	f1 = heapFloat[(fp+-11)];
+	f2 = heapFloat[(fp+-13)];
+	f1 = f1+f2;
+	heapFloat[(fp+-9)] = f1;
+	f2 = heapFloat[(fp+-5)];
+	f1 = f2*f8;
+	heapFloat[(fp+-11)] = f1;
+	f2 = heapFloat[(fp+-3)];
+	f2 = f19*f2;
+	heapFloat[(fp+-3)] = f2;
+	f1 = f20*f13;
+	heapFloat[(fp+-12)] = f1;
+	f2 = heapFloat[(fp+-2)];
+	f2 = f19*f2;
+	heapFloat[(fp+-10)] = f2;
+	f1 = f20*f14;
+	heapFloat[(fp+-13)] = f1;
+	f2 = heapFloat[(fp+-1)];
+	f2 = f19*f2;
+	heapFloat[(fp+-2)] = f2;
+	f3 = heapFloat[(fp+-7)];
+	f1 = f20*f3;
+	heapFloat[(fp+-30)] = f1;
+	r5 = r2 >> 2;
+	f2 = heapFloat[(r4+15)];
+	f3 = heapFloat[(fp+-15)];
+	f3 = f3+f22;
+	heapFloat[(fp+-7)] = f3;
+	f8 = heapFloat[(r4+14)];
+	f10 = heapFloat[(fp+-16)];
+	f1 = f10+f23;
+	heapFloat[(fp+-15)] = f1;
+	f1 = heapFloat[(r4+13)];
+	heapFloat[(fp+-1)] = f1;
+	f3 = heapFloat[(fp+-14)];
+	f10 = heapFloat[(fp+-23)];
+	f3 = f3+f10;
+	heapFloat[(fp+-16)] = f3;
+	f10 = heapFloat[(fp+-24)];
+	f4 = f10+f4;
+	heapFloat[(fp+-14)] = f4;
+	f1 = f9*f26;
+	heapFloat[(fp+-23)] = f1;
+	f3 = heapFloat[(fp+-18)];
+	f1 = f3+f24;
+	heapFloat[(fp+-18)] = f1;
+	f3 = f12*f26;
+	f4 = heapFloat[(fp+-20)];
+	f4 = f4+f5;
+	f5 = f29*f26;
+	f10 = heapFloat[(fp+-17)];
+	f0 = f10+f0;
+	f10 = f9*f27;
+	f13 = heapFloat[(fp+-19)];
+	f14 = heapFloat[(fp+-28)];
+	f13 = f13+f14;
+	f14 = f12*f27;
+	f15 = heapFloat[(fp+-21)];
+	f16 = heapFloat[(fp+-29)];
+	f15 = f15+f16;
+	f16 = f29*f27;
+	f18 = heapFloat[(fp+-25)];
+	f6 = f18+f6;
+	f9 = f9*f28;
+	f18 = heapFloat[(fp+-26)];
+	f11 = f18+f11;
+	f12 = f12*f28;
+	f18 = heapFloat[(fp+-22)];
+	f7 = f18+f7;
+	f18 = f29*f28;
+	f19 = heapFloat[(fp+-27)];
+	f17 = f19+f17;
+	f19 = heapFloat[(r3+15)];
+	f20 = heapFloat[(fp+-8)];
+	f20 = f20+f25;
+	f21 = heapFloat[(r3+14)];
+	f22 = heapFloat[(fp+-9)];
+	f23 = heapFloat[(fp+-11)];
+	f22 = f22+f23;
+	f23 = heapFloat[(r3+13)];
+	f24 = heapFloat[(fp+-3)];
+	f25 = heapFloat[(fp+-12)];
+	f24 = f24+f25;
+	f25 = heapFloat[(fp+-4)];
+	f25 = f30*f25;
+	f26 = heapFloat[(fp+-10)];
+	f27 = heapFloat[(fp+-13)];
+	f26 = f26+f27;
+	f27 = heapFloat[(fp+-6)];
+	f27 = f30*f27;
+	f28 = heapFloat[(fp+-2)];
+	f29 = heapFloat[(fp+-30)];
+	f28 = f28+f29;
+	f29 = heapFloat[(fp+-5)];
+	f29 = f30*f29;
+	r6 = heap32[(r5+6)];
+	f30 = heapFloat[(fp+-7)];
+	f30 = f30+f2;
+	heapFloat[(fp+-2)] = f30;
+	f30 = heapFloat[(fp+-15)];
+	f30 = f30+f8;
+	heapFloat[(fp+-3)] = f30;
+	f30 = heapFloat[(fp+-16)];
+	f1 = heapFloat[(fp+-1)];
+	f1 = f30+f1;
+	heapFloat[(fp+-4)] = f1;
+	f1 = heapFloat[(fp+-14)];
+	f30 = heapFloat[(fp+-23)];
+	f1 = f1+f30;
+	f30 = heapFloat[(fp+-18)];
+	f3 = f30+f3;
+	f4 = f4+f5;
+	f0 = f0+f10;
+	f5 = f13+f14;
+	f10 = f15+f16;
+	f6 = f6+f9;
+	f9 = f11+f12;
+	f7 = f7+f18;
+	f11 = f17+f19;
+	f12 = f20+f21;
+	f13 = f22+f23;
+	f14 = f24+f25;
+	f15 = f26+f27;
+	f16 = f28+f29;
+	r7 = heapU8[r0+720];
+	if(r7 ==0) //_LBB596_64
+{
+	r7 = heap32[(r5+2)];
+	r7 = r7 >> 2;
+	heap32[(r7)] = 1065353216;
+	r7 = r6 << 2;
+	r8 = heap32[(r5+2)];
+	r7 = (r7 + r8)|0;
+	r7 = r7 >> 2;
+	heap32[(r7+1)] = 1065353216;
+	r7 = r6 << 3;
+	r8 = heap32[(r5+2)];
+	r7 = (r7 + r8)|0;
+	r7 = r7 >> 2;
+	heap32[(r7+2)] = 1065353216;
+	f2 = heapFloat[(r4+15)];
+	f8 = heapFloat[(r4+14)];
+	f17 = heapFloat[(r4+13)];
+	heapFloat[(fp+-1)] = f17;
+}
+	r7 = heap32[(r5+3)];
+	r8 = r7 >> 2;
+	f17 = heapFloat[(fp+-3)];
+	f8 = f17-f8;
+	f17 = heapFloat[(fp+-2)];
+	f2 = f17-f2;
+	heap32[(r8)] = 0;
+	r9 = (r6 + 1)|0;
+	r10 = r6 << 2;
+	f17 = -f8;
+	heapFloat[(r8+1)] = f2;
+	r11 = (r6 + 2)|0;
+	r9 = r9 << 2;
+	r12 = (r7 + r10)|0;
+	heapFloat[(r8+2)] = f17;
+	r13 = (r6 + 3)|0;
+	r11 = r11 << 2;
+	r14 = (r7 + r9)|0;
+	r12 = r12 >> 2;
+	f2 = -f2;
+	heap32[(r8+3)] = 0;
+	r8 = r13 << 2;
+	r13 = (r7 + r11)|0;
+	r14 = r14 >> 2;
+	heapFloat[(r12)] = f2;
+	r12 = r6 << 3;
+	r15 = (r7 + r8)|0;
+	f17 = heapFloat[(fp+-4)];
+	f2 = heapFloat[(fp+-1)];
+	f2 = f17-f2;
+	r13 = r13 >> 2;
+	heap32[(r14)] = 0;
+	r14 = r12 | 4;
+	r16 = (r7 + r12)|0;
+	r15 = r15 >> 2;
+	heapFloat[(r13)] = f2;
+	r13 = (r12 + 8)|0;
+	r17 = (r7 + r14)|0;
+	r16 = r16 >> 2;
+	heap32[(r15)] = 0;
+	r15 = (r12 + 12)|0;
+	r18 = (r7 + r13)|0;
+	r17 = r17 >> 2;
+	f2 = -f2;
+	heapFloat[(r16)] = f8;
+	r7 = (r7 + r15)|0;
+	r16 = r18 >> 2;
+	heapFloat[(r17)] = f2;
+	r7 = r7 >> 2;
+	heap32[(r16)] = 0;
+	heap32[(r7)] = 0;
+	r7 = heap32[(r5+5)];
+	f2 = heapFloat[(r3+15)];
+	f8 = heapFloat[(r3+14)];
+	f17 = heapFloat[(r3+13)];
+	f2 = f11-f2;
+	r16 = r7 >> 2;
+	f18 = -f2;
+	heap32[(r16)] = 0;
+	f8 = f12-f8;
+	heapFloat[(r16+1)] = f18;
+	r17 = (r7 + r10)|0;
+	heapFloat[(r16+2)] = f8;
+	r9 = (r7 + r9)|0;
+	r17 = r17 >> 2;
+	heap32[(r16+3)] = 0;
+	f17 = f13-f17;
+	r11 = (r7 + r11)|0;
+	r9 = r9 >> 2;
+	heapFloat[(r17)] = f2;
+	r8 = (r7 + r8)|0;
+	r11 = r11 >> 2;
+	f2 = -f17;
+	heap32[(r9)] = 0;
+	r9 = (r7 + r12)|0;
+	r8 = r8 >> 2;
+	heapFloat[(r11)] = f2;
+	r11 = (r7 + r14)|0;
+	r9 = r9 >> 2;
+	f2 = -f8;
+	heap32[(r8)] = 0;
+	r8 = (r7 + r13)|0;
+	r11 = r11 >> 2;
+	heapFloat[(r9)] = f2;
+	r7 = (r7 + r15)|0;
+	r8 = r8 >> 2;
+	heapFloat[(r11)] = f17;
+	r7 = r7 >> 2;
+	heap32[(r8)] = 0;
+	heap32[(r7)] = 0;
+	f2 = heapFloat[(r5)];
+	f8 = heapFloat[(r5+1)];
+	f2 = f2*f8;
+	r7 = heapU8[r0+720];
+if(!(r7 !=0)) //_LBB596_67
+{
+	r6 = r6 << 1;
+	r7 = heap32[(r5+7)];
+	f8 = heapFloat[(fp+-4)];
+	f8 = f13-f8;
+	r7 = r7 >> 2;
+	f8 = f8*f2;
+	heapFloat[(r7)] = f8;
+	r7 = heap32[(r5+7)];
+	r7 = (r7 + r10)|0;
+	f8 = heapFloat[(fp+-3)];
+	f8 = f12-f8;
+	r7 = r7 >> 2;
+	f8 = f8*f2;
+	heapFloat[(r7)] = f8;
+	r6 = r6 << 2;
+	r7 = heap32[(r5+7)];
+	r6 = (r7 + r6)|0;
+	f8 = heapFloat[(fp+-2)];
+	f8 = f11-f8;
+	r6 = r6 >> 2;
+	f8 = f8*f2;
+	heapFloat[(r6)] = f8;
+}
+	r2 = (r2 + 4)|0;
+	r6 = heap32[(r5+6)];
+	r7 = (r6 * 3)|0;
+	r8 = heap32[(r5+3)];
+	r9 = r7 << 2;
+	r8 = (r8 + r9)|0;
+	r8 = r8 >> 2;
+	r10 = (r7 + 1)|0;
+	heapFloat[(r8)] = f7;
+	r8 = r10 << 2;
+	r10 = heap32[(r5+3)];
+	r10 = (r10 + r8)|0;
+	r10 = r10 >> 2;
+	r7 = (r7 + 2)|0;
+	heapFloat[(r10)] = f10;
+	r7 = r7 << 2;
+	r10 = heap32[(r5+3)];
+	r10 = (r10 + r7)|0;
+	r10 = r10 >> 2;
+	heapFloat[(r10)] = f4;
+	r6 = r6 << 4;
+	r10 = heap32[(r5+3)];
+	r10 = (r10 + r6)|0;
+	r10 = r10 >> 2;
+	heapFloat[(r10)] = f9;
+	r10 = r6 | 4;
+	r11 = heap32[(r5+3)];
+	r11 = (r11 + r10)|0;
+	r11 = r11 >> 2;
+	heapFloat[(r11)] = f5;
+	r11 = r6 | 8;
+	r12 = heap32[(r5+3)];
+	r12 = (r12 + r11)|0;
+	r12 = r12 >> 2;
+	heapFloat[(r12)] = f3;
+	r12 = heap32[(r5+5)];
+	r12 = (r12 + r9)|0;
+	r12 = r12 >> 2;
+	f8 = -f7;
+	heapFloat[(r12)] = f8;
+	r12 = heap32[(r5+5)];
+	r8 = (r12 + r8)|0;
+	r8 = r8 >> 2;
+	f8 = -f10;
+	heapFloat[(r8)] = f8;
+	r8 = heap32[(r5+5)];
+	r7 = (r8 + r7)|0;
+	r7 = r7 >> 2;
+	f8 = -f4;
+	heapFloat[(r7)] = f8;
+	r7 = heap32[(r5+5)];
+	r7 = (r7 + r6)|0;
+	r7 = r7 >> 2;
+	f8 = -f9;
+	heapFloat[(r7)] = f8;
+	r7 = heap32[(r5+5)];
+	r7 = (r7 + r10)|0;
+	r7 = r7 >> 2;
+	f8 = -f5;
+	heapFloat[(r7)] = f8;
+	r7 = heap32[(r5+5)];
+	r7 = (r7 + r11)|0;
+	f8 = f0*f14;
+	f11 = f1*f15;
+	f12 = f1*f16;
+	f13 = f6*f14;
+	f8 = f8-f11;
+	f11 = f12-f13;
+	f12 = f6*f15;
+	f13 = f0*f16;
+	r7 = r7 >> 2;
+	f14 = -f3;
+	f12 = f12-f13;
+	heapFloat[(r7)] = f14;
+	f7 = f8*f7;
+	f10 = f11*f10;
+	r7 = heap32[(r5+7)];
+	f7 = f7+f10;
+	f4 = f12*f4;
+	r7 = (r7 + r9)|0;
+	f4 = f7+f4;
+	r7 = r7 >> 2;
+	f4 = f4*f2;
+	heapFloat[(r7)] = f4;
+	f4 = f8*f9;
+	f5 = f11*f5;
+	r7 = heap32[(r5+7)];
+	f4 = f4+f5;
+	f3 = f12*f3;
+	r6 = (r7 + r6)|0;
+	f3 = f4+f3;
+	r6 = r6 >> 2;
+	f2 = f3*f2;
+	heapFloat[(r6)] = f2;
+	r6 = heapU8[r0+722];
+	if(r6 !=0) //_LBB596_69
+{
+	f2 = heapFloat[(r1+176)];
+	f3 = heapFloat[(r1+179)];
+	f2 = f2*f3;
+	f3 =                         0;
+	r6 = 1;
+	r7 = 2;
+	r6 = f2 > f3 ? r6 : r7;
+}
+else{
+	f2 =                         0;
+	r6 = 0;
+}
+	r7 = heapU8[r0+721];
+	r8 = 0;
+	r9 = r7 != r8;
+	r9 = r9 & 1;
+	r9 = r9 | r6;
+	if(r9 ==0) //_LBB596_59
+{
+__label__ = 54;
+break _1;
+}
+else{
+	r9 = heap32[(r5+6)];
+	r9 = (r9 * 5)|0;
+	r10 = heap32[(r5+3)];
+	r11 = r9 << 2;
+	r10 = (r10 + r11)|0;
+	r10 = r10 >> 2;
+	r12 = (r9 + 1)|0;
+	heapFloat[(r10)] = f6;
+	r10 = r12 << 2;
+	r12 = heap32[(r5+3)];
+	r12 = (r12 + r10)|0;
+	r12 = r12 >> 2;
+	r9 = (r9 + 2)|0;
+	heapFloat[(r12)] = f0;
+	r9 = r9 << 2;
+	r12 = heap32[(r5+3)];
+	r12 = (r12 + r9)|0;
+	r12 = r12 >> 2;
+	heapFloat[(r12)] = f1;
+	r12 = heap32[(r5+5)];
+	r12 = (r12 + r11)|0;
+	r12 = r12 >> 2;
+	f3 = -f6;
+	heapFloat[(r12)] = f3;
+	r12 = heap32[(r5+5)];
+	r10 = (r12 + r10)|0;
+	r10 = r10 >> 2;
+	f3 = -f0;
+	heapFloat[(r10)] = f3;
+	r10 = heap32[(r5+5)];
+	r9 = (r10 + r9)|0;
+	r9 = r9 >> 2;
+	f3 = -f1;
+	heapFloat[(r9)] = f3;
+	r9 = heap32[(r5+7)];
+	r9 = (r9 + r11)|0;
+	f3 = heapFloat[(r1+172)];
+	f4 = heapFloat[(r1+173)];
+	r9 = r9 >> 2;
+	heap32[(r9)] = 0;
+	r9 = r6 != r8;
+	r10 = f3 == f4;
+	r12 = heap32[(r1+183)];
+	r9 = r9 & r10;
+	r10 = r12 & 2;
+	if(r10 !=0) //_LBB596_73
+{
+	r2 = (r0 + 744)|0;
+}
+	r2 = r2 >> 2;
+	f5 = heapFloat[(r2)];
+	r2 = r7 == r8;
+	r2 = r9 | r2;
+if(!(r2 != 0)) //_LBB596_91
+{
+	r2 = r12 & 4;
+if(!(r2 ==0)) //_LBB596_77
+{
+	r2 = heap32[(r5+8)];
+	r2 = (r2 + r11)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = heap32[(r1+184)];
+}
+	f7 =                         1;
+	f8 =                         0;
+	f9 = heapFloat[(r1+167)];
+_24: do {
+	if(f3 <f4) //_LBB596_79
+{
+	f10 = heapFloat[(r1+178)];
+	f11 = heapFloat[(r5)];
+	f11 = f11*f5;
+	f11 = f9/f11;
+	if(f11 >=f8) //_LBB596_84
+{
+	if(f11 >f8) //_LBB596_86
+{
+if(!(f10 >f4)) //_LBB596_89
+{
+	f8 = f4-f11;
+if(!(f8 >=f10)) //_LBB596_89
+{
+	f7 = f4-f10;
+	f8 = f7/f11;
+break _24;
+}
+}
+	f8 =                         0;
+	f8 = f10 > f4 ? f8 : f7;
+}
+else{
+break _24;
+}
+}
+else{
+if(!(f10 <f3)) //_LBB596_83
+{
+	f8 = f3-f11;
+if(!(f8 <=f10)) //_LBB596_83
+{
+	f7 = f3-f10;
+	f8 = f7/f11;
+break _24;
+}
+}
+	f8 =                         0;
+	f8 = f10 < f3 ? f8 : f7;
+}
+}
+else{
+	f8 = f3 > f4 ? f7 : f8;
+}
+} while(0);
+	r2 = heap32[(r5+7)];
+	r2 = (r2 + r11)|0;
+	r2 = r2 >> 2;
+	f7 = f9*f8;
+	f8 = heapFloat[(r1+179)];
+	f9 = heapFloat[(r2)];
+	f7 = f7*f8;
+	f7 = f9+f7;
+	heapFloat[(r2)] = f7;
+	r2 = heap32[(r5+9)];
+	f7 = heapFloat[(r1+168)];
+	r2 = (r2 + r11)|0;
+	r2 = r2 >> 2;
+	f7 = -f7;
+	heapFloat[(r2)] = f7;
+	r2 = heap32[(r5+10)];
+	r2 = (r2 + r11)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = heap32[(r1+168)];
+}
+	if(r6 ==0) //_LBB596_59
+{
+__label__ = 54;
+break _1;
+}
+else{
+	r2 = heap32[(r5+7)];
+	r2 = (r2 + r11)|0;
+	f7 = heapFloat[(r5)];
+	r2 = r2 >> 2;
+	f5 = f7*f5;
+	f7 = heapFloat[(r2)];
+	f2 = f5*f2;
+	f2 = f7+f2;
+	heapFloat[(r2)] = f2;
+	r0 = heapU8[r0+732];
+	r0 = r0 & 1;
+if(!(r0 ==0)) //_LBB596_94
+{
+	r0 = heap32[(r5+8)];
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = heap32[(r1+185)];
+}
+	if(f3 !=f4) //_LBB596_96
+{
+	r0 = heap32[(r5+9)];
+	if(r6 !=1) //_LBB596_98
+{
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = -8388609;
+	r0 = heap32[(r5+10)];
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+}
+else{
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+	r0 = heap32[(r5+10)];
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 2139095039;
+}
+}
+else{
+	r0 = heap32[(r5+9)];
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = -8388609;
+	r0 = heap32[(r5+10)];
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 2139095039;
+}
+	f2 = heapFloat[(r1+171)];
+	f3 =                         0;
+	if(f2 <=f3) //_LBB596_107
+{
+__label__ = 53;
+break _1;
+}
+else{
+	f4 = heapFloat[(r4+80)];
+	f5 = heapFloat[(r3+80)];
+	f7 = heapFloat[(r4+81)];
+	f8 = heapFloat[(r3+81)];
+	f4 = f4*f6;
+	f7 = f7*f0;
+	f9 = heapFloat[(r4+82)];
+	f10 = heapFloat[(r3+82)];
+	f5 = f5*f6;
+	f0 = f8*f0;
+	f4 = f4+f7;
+	f6 = f9*f1;
+	f0 = f5+f0;
+	f1 = f10*f1;
+	f4 = f4+f6;
+	f0 = f0+f1;
+	f0 = f4-f0;
+	if(r6 !=1) //_LBB596_104
+{
+	if(f0 <=f3) //_LBB596_107
+{
+__label__ = 53;
+break _1;
+}
+else{
+	r0 = heap32[(r5+7)];
+	f1 = -f2;
+	r0 = (r0 + r11)|0;
+	f0 = f0*f1;
+	r0 = r0 >> 2;
+	f1 = heapFloat[(r0)];
+	if(f1 <=f0) //_LBB596_107
+{
+__label__ = 53;
+break _1;
+}
+else{
+	heapFloat[(r0)] = f0;
+__label__ = 53;
+break _1;
+}
+}
+}
+else{
+	if(f0 >=f3) //_LBB596_107
+{
+__label__ = 53;
+break _1;
+}
+else{
+	r0 = heap32[(r5+7)];
+	f2 = -f2;
+	r0 = (r0 + r11)|0;
+	f0 = f0*f2;
+	r0 = r0 >> 2;
+	f2 = heapFloat[(r0)];
+	if(f2 >=f0) //_LBB596_107
+{
+__label__ = 53;
+break _1;
+}
+else{
+	heapFloat[(r0)] = f0;
+__label__ = 53;
+break _1;
+}
+}
+}
+}
+}
+}
+}
+else{
+	r0 = _2E_str1149;
+	r1 = _2E_str231;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 331;
+	_assert(i7);
+}
+}
+else{
+	r5 = r5 & 255;
+	if(r5 ==0) //_LBB596_3
+{
+	r4 = r4 >> 2;
+	r3 = r3 >> 2;
+	f0 = heapFloat[(r3+9)];
+	heapFloat[(fp+-5)] = f0;
+	f1 = heapFloat[(r1+163)];
+	f0 = heapFloat[(r3+5)];
+	heapFloat[(fp+-6)] = f0;
+	f2 = heapFloat[(r3+1)];
+	heapFloat[(fp+-4)] = f2;
+	f0 = heapFloat[(r3+10)];
+	heapFloat[(fp+-7)] = f0;
+	f2 = heapFloat[(r1+164)];
+	f0 = heapFloat[(r3+6)];
+	heapFloat[(fp+-8)] = f0;
+	f3 = heapFloat[(r3+2)];
+	heapFloat[(fp+-9)] = f3;
+	f4 = heapFloat[(r4+9)];
+	f5 = heapFloat[(r1+147)];
+	f6 = heapFloat[(r4+5)];
+	f7 = heapFloat[(r4+1)];
+	f8 = heapFloat[(r4+10)];
+	f9 = heapFloat[(r1+148)];
+	f10 = heapFloat[(r4+6)];
+	f11 = heapFloat[(r4+2)];
+	f0 = heapFloat[(fp+-5)];
+	f12 = f0*f1;
+	f0 = heapFloat[(fp+-7)];
+	f13 = f0*f2;
+	f14 = heapFloat[(r3+11)];
+	heapFloat[(fp+-2)] = f14;
+	f15 = heapFloat[(r1+165)];
+	f16 = heapFloat[(r3+7)];
+	heapFloat[(fp+-3)] = f16;
+	f17 = heapFloat[(r3+3)];
+	heapFloat[(fp+-1)] = f17;
+	f18 = f4*f5;
+	f19 = f8*f9;
+	f20 = heapFloat[(r4+11)];
+	f21 = heapFloat[(r1+149)];
+	f22 = heapFloat[(r4+7)];
+	f23 = heapFloat[(r4+3)];
+	f0 = heapFloat[(fp+-6)];
+	f24 = f0*f1;
+	f0 = heapFloat[(fp+-8)];
+	f25 = f0*f2;
+	f26 = f6*f5;
+	f27 = f10*f9;
+	f28 = heapFloat[(fp+-4)];
+	f1 = f28*f1;
+	f2 = f3*f2;
+	f5 = f7*f5;
+	f9 = f11*f9;
+	f29 = heapFloat[(r1+137)];
+	f30 = heapFloat[(r1+141)];
+	f0 = heapFloat[(r1+136)];
+	f3 = heapFloat[(r1+140)];
+	f14 = heapFloat[(r1+153)];
+	f16 = heapFloat[(r1+157)];
+	f12 = f12+f13;
+	heapFloat[(fp+-14)] = f12;
+	f13 = heapFloat[(fp+-2)];
+	f17 = f13*f15;
+	f18 = f18+f19;
+	f19 = f20*f21;
+	f24 = f24+f25;
+	f25 = heapFloat[(fp+-3)];
+	f28 = f25*f15;
+	f26 = f26+f27;
+	f27 = f22*f21;
+	f1 = f1+f2;
+	heapFloat[(fp+-10)] = f1;
+	f2 = heapFloat[(fp+-1)];
+	f15 = f2*f15;
+	f5 = f5+f9;
+	heapFloat[(fp+-12)] = f5;
+	f9 = f23*f21;
+	f21 = heapFloat[(r1+145)];
+	f1 = heapFloat[(r1+144)];
+	f2 = heapFloat[(r1+161)];
+	f5 = heapFloat[(r3+84)];
+	f12 = heapFloat[(r4+84)];
+	f13 =   1.1920928955078125e-007;
+	heapFloat[(fp+-11)] = f13;
+	f25 = f29*f4;
+	heapFloat[(fp+-13)] = f25;
+	f25 = f30*f8;
+	f4 = f0*f4;
+	heapFloat[(fp+-16)] = f4;
+	f8 = f3*f8;
+	f4 = f29*f6;
+	heapFloat[(fp+-15)] = f4;
+	f4 = f30*f10;
+	f6 = f0*f6;
+	heapFloat[(fp+-18)] = f6;
+	f10 = f3*f10;
+	f29 = f29*f7;
+	f30 = f30*f11;
+	f0 = f0*f7;
+	heapFloat[(fp+-17)] = f0;
+	f3 = f3*f11;
+	f7 = heapFloat[(fp+-5)];
+	f0 = f14*f7;
+	heapFloat[(fp+-19)] = f0;
+	f6 = heapFloat[(fp+-7)];
+	f6 = f16*f6;
+	f7 = heapFloat[(fp+-6)];
+	f7 = f14*f7;
+	heapFloat[(fp+-5)] = f7;
+	f11 = heapFloat[(fp+-8)];
+	f11 = f16*f11;
+	f0 = heapFloat[(fp+-4)];
+	f0 = f14*f0;
+	heapFloat[(fp+-4)] = f0;
+	f14 = heapFloat[(fp+-9)];
+	f14 = f16*f14;
+	f16 = heapFloat[(fp+-14)];
+	f16 = f16+f17;
+	f17 = heapFloat[(r3+15)];
+	f18 = f18+f19;
+	f19 = heapFloat[(r4+15)];
+	f24 = f24+f28;
+	f28 = heapFloat[(r3+14)];
+	f26 = f26+f27;
+	f27 = heapFloat[(r4+14)];
+	f0 = heapFloat[(fp+-10)];
+	f0 = f0+f15;
+	f15 = heapFloat[(r3+13)];
+	f7 = heapFloat[(fp+-12)];
+	f7 = f7+f9;
+	f9 = heapFloat[(r4+13)];
+	r5 = r2 >> 2;
+	f16 = f16+f17;
+	f17 = f18+f19;
+	f18 = f24+f28;
+	f19 = f26+f27;
+	f0 = f0+f15;
+	f7 = f7+f9;
+	f9 = heapFloat[(fp+-13)];
+	f9 = f9+f25;
+	f15 = f21*f20;
+	f24 = heapFloat[(fp+-16)];
+	f8 = f24+f8;
+	f20 = f1*f20;
+	f24 = heapFloat[(fp+-15)];
+	f4 = f24+f4;
+	f24 = f21*f22;
+	f25 = heapFloat[(fp+-18)];
+	f10 = f25+f10;
+	f22 = f1*f22;
+	f25 = f29+f30;
+	f21 = f21*f23;
+	f26 = heapFloat[(fp+-17)];
+	f3 = f26+f3;
+	f1 = f1*f23;
+	f23 = heapFloat[(fp+-19)];
+	f6 = f23+f6;
+	f23 = heapFloat[(fp+-2)];
+	f23 = f2*f23;
+	f26 = heapFloat[(fp+-5)];
+	f11 = f26+f11;
+	f26 = heapFloat[(fp+-3)];
+	f26 = f2*f26;
+	f27 = heapFloat[(fp+-4)];
+	f14 = f27+f14;
+	f27 = heapFloat[(fp+-1)];
+	f2 = f2*f27;
+	r6 = f12 < f13;
+	r7 = f5 < f13;
+	f12 = f12+f5;
+	r8 = heap32[(r5+6)];
+	f9 = f9+f15;
+	heapFloat[(fp+-3)] = f9;
+	f8 = f8+f20;
+	f4 = f4+f24;
+	heapFloat[(fp+-2)] = f4;
+	f4 = f10+f22;
+	f9 = f25+f21;
+	heapFloat[(fp+-4)] = f9;
+	f1 = f3+f1;
+	f3 = f6+f23;
+	heapFloat[(fp+-7)] = f3;
+	f3 = f11+f26;
+	heapFloat[(fp+-6)] = f3;
+	f2 = f14+f2;
+	heapFloat[(fp+-5)] = f2;
+	f2 = f16-f17;
+	heapFloat[(fp+-8)] = f2;
+	f2 = f18-f19;
+	heapFloat[(fp+-9)] = f2;
+	f2 = f0-f7;
+	heapFloat[(fp+-10)] = f2;
+	r6 = r6 | r7;
+	f2 =                         0;
+	if(f12 >f2) //_LBB596_5
+{
+	f5 = f5/f12;
+}
+else{
+	f5 =                       0.5;
+}
+	f3 =                         1;
+	heapFloat[(fp+-1)] = f3;
+	f6 = f3-f5;
+	f9 = heapFloat[(fp+-4)];
+	f9 = f9*f5;
+	f10 = heapFloat[(fp+-5)];
+	f10 = f10*f6;
+	f11 = heapFloat[(fp+-2)];
+	f11 = f11*f5;
+	f12 = heapFloat[(fp+-6)];
+	f12 = f12*f6;
+	f9 = f9+f10;
+	f10 = f11+f12;
+	f11 = heapFloat[(fp+-3)];
+	f11 = f11*f5;
+	f12 = heapFloat[(fp+-7)];
+	f12 = f12*f6;
+	f11 = f11+f12;
+	f12 = f9*f9;
+	f13 = f10*f10;
+	f12 = f12+f13;
+	f13 = f11*f11;
+	f12 = f12+f13;
+	heapFloat[(g0)] = f12;
+	sqrtf(i7);
+	f3 = f3/f_g0;
+	f12 = heapFloat[(r3+13)];
+	f13 = heapFloat[(r3+14)];
+	f14 = heapFloat[(r4+13)];
+	f15 = heapFloat[(r4+14)];
+	f9 = f9*f3;
+	f0 = f0-f12;
+	f7 = f7-f14;
+	f10 = f10*f3;
+	f12 = f18-f13;
+	f13 = f19-f15;
+	f14 = heapFloat[(r3+15)];
+	f15 = heapFloat[(r4+15)];
+	f3 = f11*f3;
+	f11 = f16-f14;
+	f14 = f17-f15;
+	f15 = f0*f9;
+	f16 = f12*f10;
+	f17 = f7*f9;
+	f18 = f13*f10;
+	f15 = f15+f16;
+	f16 = f11*f3;
+	f17 = f17+f18;
+	f18 = f14*f3;
+	f15 = f15+f16;
+	f16 = f17+f18;
+	f17 = f10*f15;
+	f18 = f10*f16;
+	f19 = f9*f15;
+	f20 = f9*f16;
+	f15 = f3*f15;
+	f16 = f3*f16;
+	f12 = f12-f17;
+	f13 = f13-f18;
+	f0 = f0-f19;
+	f7 = f7-f20;
+	f11 = f11-f15;
+	f14 = f14-f16;
+	f21 = f12*f5;
+	f22 = f13*f6;
+	f23 = f0*f5;
+	f24 = f7*f6;
+	f21 = f21+f22;
+	f22 = f23+f24;
+	f23 = f11*f5;
+	f24 = f14*f6;
+	f15 = f16-f15;
+	f16 = f18-f17;
+	f17 = f20-f19;
+	f18 = f23+f24;
+	f19 = f22*f22;
+	f20 = f21*f21;
+	f23 = f15*f5;
+	f24 = f16*f5;
+	f25 = f17*f5;
+	f15 = f15*f6;
+	f16 = f16*f6;
+	f17 = f17*f6;
+	f19 = f19+f20;
+	f20 = f18*f18;
+	f19 = f19+f20;
+	r7 = r8 << 1;
+	f14 = f14+f23;
+	f13 = f13+f24;
+	f7 = f7+f25;
+	f11 = f11-f15;
+	f12 = f12-f16;
+	f0 = f0-f17;
+	f15 = heapFloat[(fp+-11)];
+	if(f19 >f15) //_LBB596_8
+{
+	heapFloat[(g0)] = f19;
+	sqrtf(i7);
+	f4 = heapFloat[(fp+-1)];
+	f8 = f4/f_g0;
+	f1 = f22*f8;
+	f4 = f21*f8;
+	f8 = f18*f8;
+}
+	r9 = heap32[(r5+3)];
+	f15 = f13*f8;
+	f16 = f14*f4;
+	r9 = r9 >> 2;
+	f15 = f15-f16;
+	heapFloat[(r9)] = f15;
+	r9 = heap32[(r5+3)];
+	f15 = f14*f1;
+	f16 = f7*f8;
+	r9 = r9 >> 2;
+	f15 = f15-f16;
+	heapFloat[(r9+1)] = f15;
+	r9 = heap32[(r5+3)];
+	f15 = f7*f4;
+	f16 = f13*f1;
+	r9 = r9 >> 2;
+	f15 = f15-f16;
+	heapFloat[(r9+2)] = f15;
+	f15 = f12*f8;
+	f16 = f11*f4;
+	f15 = f15-f16;
+	r9 = heap32[(r5+5)];
+	r9 = r9 >> 2;
+	f15 = -f15;
+	heapFloat[(r9)] = f15;
+	f15 = f11*f1;
+	f16 = f0*f8;
+	f15 = f15-f16;
+	r9 = heap32[(r5+5)];
+	f16 = f10*f8;
+	f17 = f3*f4;
+	f18 = f9*f4;
+	f19 = f10*f1;
+	f20 = f3*f1;
+	f21 = f9*f8;
+	r9 = r9 >> 2;
+	f15 = -f15;
+	f16 = f16-f17;
+	f17 = f18-f19;
+	f18 = f20-f21;
+	heapFloat[(r9+1)] = f15;
+	f15 = f0*f4;
+	f19 = f12*f1;
+	f15 = f15-f19;
+	r9 = heap32[(r5+5)];
+	f19 = f7*f18;
+	f20 = f13*f16;
+	f21 = f14*f16;
+	f22 = f7*f17;
+	f23 = f13*f17;
+	f24 = f14*f18;
+	f25 = f0*f18;
+	f26 = f12*f16;
+	f27 = f11*f16;
+	f28 = f0*f17;
+	f29 = f12*f17;
+	f30 = f11*f18;
+	f19 = f19-f20;
+	f20 = f21-f22;
+	f21 = f23-f24;
+	f22 = f25-f26;
+	f23 = f27-f28;
+	f24 = f29-f30;
+	r9 = r9 >> 2;
+	f15 = -f15;
+	heapFloat[(r9+2)] = f15;
+	if(r6 != 0) //_LBB596_11
+{
+	r9 = heapU8[r0+722];
+if(!(r9 ==0)) //_LBB596_10
+{
+	f24 = f24*f6;
+	f23 = f23*f6;
+	f22 = f22*f6;
+	f21 = f21*f5;
+	f20 = f20*f5;
+	f19 = f19*f5;
+}
+}
+	r9 = r8 << 2;
+	r10 = heap32[(r5+3)];
+	r10 = (r10 + r9)|0;
+	r10 = r10 >> 2;
+	r11 = (r8 + 1)|0;
+	heapFloat[(r10)] = f21;
+	r10 = r11 << 2;
+	r11 = heap32[(r5+3)];
+	r11 = (r11 + r10)|0;
+	r11 = r11 >> 2;
+	r12 = (r8 + 2)|0;
+	heapFloat[(r11)] = f20;
+	r11 = r12 << 2;
+	r12 = heap32[(r5+3)];
+	r12 = (r12 + r11)|0;
+	r12 = r12 >> 2;
+	heapFloat[(r12)] = f19;
+	r12 = heap32[(r5+5)];
+	r12 = (r12 + r9)|0;
+	r12 = r12 >> 2;
+	f15 = -f24;
+	heapFloat[(r12)] = f15;
+	r12 = heap32[(r5+5)];
+	r10 = (r12 + r10)|0;
+	r10 = r10 >> 2;
+	f15 = -f23;
+	heapFloat[(r10)] = f15;
+	r10 = heap32[(r5+5)];
+	r10 = (r10 + r11)|0;
+	f15 = f7*f10;
+	f19 = f13*f9;
+	f20 = f14*f9;
+	f7 = f7*f3;
+	f13 = f13*f3;
+	f14 = f14*f10;
+	f21 = f0*f10;
+	f23 = f12*f9;
+	f24 = f11*f9;
+	f0 = f0*f3;
+	f12 = f12*f3;
+	f11 = f11*f10;
+	f15 = f15-f19;
+	f7 = f20-f7;
+	f13 = f13-f14;
+	f14 = f21-f23;
+	f0 = f24-f0;
+	f11 = f12-f11;
+	r10 = r10 >> 2;
+	f12 = -f22;
+	heapFloat[(r10)] = f12;
+	if(r6 != 0) //_LBB596_15
+{
+	f11 = f11*f6;
+	f0 = f0*f6;
+	f14 = f14*f6;
+	f13 = f13*f5;
+	f7 = f7*f5;
+	f15 = f15*f5;
+}
+	r6 = r7 << 2;
+	r10 = heap32[(r5+3)];
+	r10 = (r10 + r6)|0;
+	r10 = r10 >> 2;
+	r11 = r7 | 1;
+	heapFloat[(r10)] = f13;
+	r10 = r11 << 2;
+	r11 = heap32[(r5+3)];
+	r11 = (r11 + r10)|0;
+	r11 = r11 >> 2;
+	r7 = (r7 + 2)|0;
+	heapFloat[(r11)] = f7;
+	r7 = r7 << 2;
+	r11 = heap32[(r5+3)];
+	r11 = (r11 + r7)|0;
+	r11 = r11 >> 2;
+	heapFloat[(r11)] = f15;
+	r11 = heap32[(r5+5)];
+	r11 = (r11 + r6)|0;
+	r11 = r11 >> 2;
+	f5 = -f11;
+	heapFloat[(r11)] = f5;
+	r11 = heap32[(r5+5)];
+	r11 = (r11 + r10)|0;
+	r11 = r11 >> 2;
+	f0 = -f0;
+	heapFloat[(r11)] = f0;
+	r11 = heap32[(r5+5)];
+	r7 = (r11 + r7)|0;
+	r7 = r7 >> 2;
+	f0 = -f14;
+	heapFloat[(r7)] = f0;
+	r7 = heapU8[r0+720];
+if(!(r7 !=0)) //_LBB596_18
+{
+	f0 = heapFloat[(r5)];
+	f5 = heapFloat[(r5+1)];
+	f0 = f0*f5;
+	r7 = heap32[(r5+2)];
+	r7 = r7 >> 2;
+	heapFloat[(r7)] = f1;
+	r7 = heap32[(r5+2)];
+	r7 = r7 >> 2;
+	heapFloat[(r7+1)] = f4;
+	r7 = heap32[(r5+2)];
+	r7 = r7 >> 2;
+	heapFloat[(r7+2)] = f8;
+	r7 = heap32[(r5+2)];
+	r7 = (r7 + r9)|0;
+	r7 = r7 >> 2;
+	heapFloat[(r7)] = f16;
+	r7 = heap32[(r5+2)];
+	r7 = (r7 + r9)|0;
+	r7 = r7 >> 2;
+	heapFloat[(r7+1)] = f18;
+	r7 = heap32[(r5+2)];
+	r7 = (r7 + r9)|0;
+	r7 = r7 >> 2;
+	heapFloat[(r7+2)] = f17;
+	r7 = heap32[(r5+2)];
+	r7 = (r7 + r6)|0;
+	r7 = r7 >> 2;
+	heapFloat[(r7)] = f9;
+	r7 = heap32[(r5+2)];
+	r7 = (r7 + r10)|0;
+	r7 = r7 >> 2;
+	heapFloat[(r7)] = f10;
+	r7 = heap32[(r5+2)];
+	r7 = (r7 + r6)|0;
+	r7 = r7 >> 2;
+	f5 = heapFloat[(fp+-10)];
+	f6 = f1*f5;
+	f7 = heapFloat[(fp+-9)];
+	f11 = f4*f7;
+	heapFloat[(r7+2)] = f3;
+	f6 = f6+f11;
+	f11 = heapFloat[(fp+-8)];
+	f12 = f8*f11;
+	r7 = heap32[(r5+7)];
+	f6 = f6+f12;
+	r7 = r7 >> 2;
+	f6 = f6*f0;
+	heapFloat[(r7)] = f6;
+	f6 = f16*f5;
+	f12 = f18*f7;
+	r7 = heap32[(r5+7)];
+	f6 = f6+f12;
+	f12 = f17*f11;
+	r7 = (r7 + r9)|0;
+	f6 = f6+f12;
+	r7 = r7 >> 2;
+	f6 = f6*f0;
+	heapFloat[(r7)] = f6;
+	f5 = f9*f5;
+	f6 = f10*f7;
+	r7 = heap32[(r5+7)];
+	f5 = f5+f6;
+	f6 = f3*f11;
+	r6 = (r7 + r6)|0;
+	f5 = f5+f6;
+	r6 = r6 >> 2;
+	f0 = f5*f0;
+	heapFloat[(r6)] = f0;
+}
+	r2 = (r2 + 4)|0;
+	r6 = (r8 * 3)|0;
+	r7 = r6 << 2;
+	r9 = heap32[(r5+3)];
+	r9 = (r9 + r7)|0;
+	r9 = r9 >> 2;
+	r10 = (r6 + 1)|0;
+	heapFloat[(r9)] = f1;
+	r9 = r10 << 2;
+	r10 = heap32[(r5+3)];
+	r10 = (r10 + r9)|0;
+	r10 = r10 >> 2;
+	r6 = (r6 + 2)|0;
+	heapFloat[(r10)] = f4;
+	r6 = r6 << 2;
+	r10 = heap32[(r5+3)];
+	r10 = (r10 + r6)|0;
+	r10 = r10 >> 2;
+	heapFloat[(r10)] = f8;
+	r8 = r8 << 4;
+	r10 = heap32[(r5+3)];
+	r10 = (r10 + r8)|0;
+	r10 = r10 >> 2;
+	heapFloat[(r10)] = f16;
+	r10 = r8 | 4;
+	r11 = heap32[(r5+3)];
+	r11 = (r11 + r10)|0;
+	r11 = r11 >> 2;
+	heapFloat[(r11)] = f18;
+	r11 = r8 | 8;
+	r12 = heap32[(r5+3)];
+	r12 = (r12 + r11)|0;
+	r12 = r12 >> 2;
+	heapFloat[(r12)] = f17;
+	r12 = heap32[(r5+5)];
+	r12 = (r12 + r7)|0;
+	r12 = r12 >> 2;
+	f0 = -f1;
+	heapFloat[(r12)] = f0;
+	r12 = heap32[(r5+5)];
+	r9 = (r12 + r9)|0;
+	r9 = r9 >> 2;
+	f0 = -f4;
+	heapFloat[(r9)] = f0;
+	r9 = heap32[(r5+5)];
+	r6 = (r9 + r6)|0;
+	r6 = r6 >> 2;
+	f0 = -f8;
+	heapFloat[(r6)] = f0;
+	r6 = heap32[(r5+5)];
+	r6 = (r6 + r8)|0;
+	r6 = r6 >> 2;
+	f0 = -f16;
+	heapFloat[(r6)] = f0;
+	r6 = heap32[(r5+5)];
+	r6 = (r6 + r10)|0;
+	r6 = r6 >> 2;
+	f0 = -f18;
+	heapFloat[(r6)] = f0;
+	r6 = heap32[(r5+5)];
+	r6 = (r6 + r11)|0;
+	f5 = heapFloat[(fp+-7)];
+	f0 = heapFloat[(fp+-2)];
+	f6 = f0*f5;
+	f11 = heapFloat[(fp+-6)];
+	f7 = heapFloat[(fp+-3)];
+	f12 = f7*f11;
+	f13 = heapFloat[(fp+-5)];
+	f7 = f7*f13;
+	f14 = heapFloat[(fp+-4)];
+	f5 = f14*f5;
+	f6 = f6-f12;
+	f5 = f7-f5;
+	f7 = f14*f11;
+	f0 = f0*f13;
+	r6 = r6 >> 2;
+	f11 = -f17;
+	heapFloat[(r6)] = f11;
+	f0 = f7-f0;
+	f1 = f6*f1;
+	f4 = f5*f4;
+	r6 = heap32[(r5+7)];
+	f1 = f1+f4;
+	f4 = f0*f8;
+	f7 = heapFloat[(r5)];
+	f8 = heapFloat[(r5+1)];
+	r6 = (r6 + r7)|0;
+	f1 = f1+f4;
+	f4 = f7*f8;
+	r6 = r6 >> 2;
+	f1 = f1*f4;
+	heapFloat[(r6)] = f1;
+	f1 = f6*f16;
+	f5 = f5*f18;
+	r6 = heap32[(r5+7)];
+	f1 = f1+f5;
+	f0 = f0*f17;
+	r6 = (r6 + r8)|0;
+	f0 = f1+f0;
+	r6 = r6 >> 2;
+	f0 = f0*f4;
+	heapFloat[(r6)] = f0;
+	r6 = heapU8[r0+722];
+	if(r6 !=0) //_LBB596_20
+{
+	f0 = heapFloat[(r1+176)];
+	f1 = heapFloat[(r1+179)];
+	f0 = f0*f1;
+	r6 = 1;
+	r7 = 2;
+	r6 = f0 > f2 ? r6 : r7;
+}
+else{
+	f0 =                         0;
+	r6 = 0;
+}
+	r7 = heapU8[r0+721];
+	r8 = 0;
+	r9 = r7 != r8;
+	r9 = r9 & 1;
+	r9 = r9 | r6;
+	if(r9 ==0) //_LBB596_59
+{
+__label__ = 54;
+}
+else{
+	r9 = heap32[(r5+6)];
+	r9 = (r9 * 5)|0;
+	r10 = heap32[(r5+3)];
+	r11 = r9 << 2;
+	r10 = (r10 + r11)|0;
+	r10 = r10 >> 2;
+	r12 = (r9 + 1)|0;
+	heapFloat[(r10)] = f9;
+	r10 = r12 << 2;
+	r12 = heap32[(r5+3)];
+	r12 = (r12 + r10)|0;
+	r12 = r12 >> 2;
+	r9 = (r9 + 2)|0;
+	heapFloat[(r12)] = f10;
+	r9 = r9 << 2;
+	r12 = heap32[(r5+3)];
+	r12 = (r12 + r9)|0;
+	r12 = r12 >> 2;
+	heapFloat[(r12)] = f3;
+	r12 = heap32[(r5+5)];
+	r12 = (r12 + r11)|0;
+	r12 = r12 >> 2;
+	f1 = -f9;
+	heapFloat[(r12)] = f1;
+	r12 = heap32[(r5+5)];
+	r10 = (r12 + r10)|0;
+	r10 = r10 >> 2;
+	f1 = -f10;
+	heapFloat[(r10)] = f1;
+	r10 = heap32[(r5+5)];
+	r9 = (r10 + r9)|0;
+	r9 = r9 >> 2;
+	f1 = -f3;
+	heapFloat[(r9)] = f1;
+	r9 = heap32[(r5+7)];
+	r9 = (r9 + r11)|0;
+	f1 = heapFloat[(r1+172)];
+	f4 = heapFloat[(r1+173)];
+	r9 = r9 >> 2;
+	heap32[(r9)] = 0;
+	r9 = r6 != r8;
+	r10 = f1 == f4;
+	r12 = heap32[(r1+183)];
+	r9 = r9 & r10;
+	r10 = r12 & 2;
+	if(r10 !=0) //_LBB596_24
+{
+	r2 = (r0 + 744)|0;
+}
+	r2 = r2 >> 2;
+	f5 = heapFloat[(r2)];
+	r2 = r7 == r8;
+	r2 = r9 | r2;
+if(!(r2 != 0)) //_LBB596_42
+{
+	r2 = r12 & 4;
+if(!(r2 ==0)) //_LBB596_28
+{
+	r2 = heap32[(r5+8)];
+	r2 = (r2 + r11)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = heap32[(r1+184)];
+}
+	f6 = heapFloat[(r1+167)];
+_94: do {
+	if(f1 <f4) //_LBB596_30
+{
+	f7 = heapFloat[(r1+178)];
+	f8 = heapFloat[(r5)];
+	f8 = f8*f5;
+	f8 = f6/f8;
+	if(f8 >=f2) //_LBB596_35
+{
+	if(f8 >f2) //_LBB596_37
+{
+if(!(f7 >f4)) //_LBB596_40
+{
+	f2 = f4-f8;
+if(!(f2 >=f7)) //_LBB596_40
+{
+	f2 = f4-f7;
+	f2 = f2/f8;
+break _94;
+}
+}
+	f2 =                         0;
+	f8 = heapFloat[(fp+-1)];
+	f2 = f7 > f4 ? f2 : f8;
+}
+else{
+break _94;
+}
+}
+else{
+if(!(f7 <f1)) //_LBB596_34
+{
+	f2 = f1-f8;
+if(!(f2 <=f7)) //_LBB596_34
+{
+	f2 = f1-f7;
+	f2 = f2/f8;
+break _94;
+}
+}
+	f2 =                         0;
+	f8 = heapFloat[(fp+-1)];
+	f2 = f7 < f1 ? f2 : f8;
+}
+}
+else{
+	f7 = heapFloat[(fp+-1)];
+	f2 = f1 > f4 ? f7 : f2;
+}
+} while(0);
+	r2 = heap32[(r5+7)];
+	r2 = (r2 + r11)|0;
+	r2 = r2 >> 2;
+	f2 = f6*f2;
+	f6 = heapFloat[(r1+179)];
+	f7 = heapFloat[(r2)];
+	f2 = f2*f6;
+	f2 = f7+f2;
+	heapFloat[(r2)] = f2;
+	r2 = heap32[(r5+9)];
+	f2 = heapFloat[(r1+168)];
+	r2 = (r2 + r11)|0;
+	r2 = r2 >> 2;
+	f2 = -f2;
+	heapFloat[(r2)] = f2;
+	r2 = heap32[(r5+10)];
+	r2 = (r2 + r11)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = heap32[(r1+168)];
+}
+	if(r6 ==0) //_LBB596_59
+{
+__label__ = 54;
+}
+else{
+	r2 = heap32[(r5+7)];
+	r2 = (r2 + r11)|0;
+	f2 = heapFloat[(r5)];
+	r2 = r2 >> 2;
+	f2 = f2*f5;
+	f5 = heapFloat[(r2)];
+	f0 = f2*f0;
+	f0 = f5+f0;
+	heapFloat[(r2)] = f0;
+	r0 = heapU8[r0+732];
+	r0 = r0 & 1;
+if(!(r0 ==0)) //_LBB596_45
+{
+	r0 = heap32[(r5+8)];
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = heap32[(r1+185)];
+}
+	if(f1 !=f4) //_LBB596_47
+{
+	r0 = heap32[(r5+9)];
+	if(r6 !=1) //_LBB596_49
+{
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = -8388609;
+	r0 = heap32[(r5+10)];
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+}
+else{
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+	r0 = heap32[(r5+10)];
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 2139095039;
+}
+}
+else{
+	r0 = heap32[(r5+9)];
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = -8388609;
+	r0 = heap32[(r5+10)];
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 2139095039;
+}
+	f0 = heapFloat[(r1+171)];
+	f1 =                         0;
+	if(f0 <=f1) //_LBB596_58
+{
+__label__ = 53;
+}
+else{
+	f2 = heapFloat[(r4+80)];
+	f4 = heapFloat[(r3+80)];
+	f5 = heapFloat[(r4+81)];
+	f6 = heapFloat[(r3+81)];
+	f2 = f2*f9;
+	f5 = f5*f10;
+	f7 = heapFloat[(r4+82)];
+	f8 = heapFloat[(r3+82)];
+	f4 = f4*f9;
+	f6 = f6*f10;
+	f2 = f2+f5;
+	f5 = f7*f3;
+	f4 = f4+f6;
+	f3 = f8*f3;
+	f2 = f2+f5;
+	f3 = f4+f3;
+	f2 = f2-f3;
+	if(r6 !=1) //_LBB596_55
+{
+	if(f2 <=f1) //_LBB596_58
+{
+__label__ = 53;
+}
+else{
+	r0 = heap32[(r5+7)];
+	f0 = -f0;
+	r0 = (r0 + r11)|0;
+	f0 = f2*f0;
+	r0 = r0 >> 2;
+	f1 = heapFloat[(r0)];
+	if(f1 <=f0) //_LBB596_58
+{
+__label__ = 53;
+}
+else{
+	heapFloat[(r0)] = f0;
+__label__ = 53;
+}
+}
+}
+else{
+	if(f2 >=f1) //_LBB596_58
+{
+__label__ = 53;
+}
+else{
+	r0 = heap32[(r5+7)];
+	f0 = -f0;
+	r0 = (r0 + r11)|0;
+	f0 = f2*f0;
+	r0 = r0 >> 2;
+	f1 = heapFloat[(r0)];
+	if(f1 >=f0) //_LBB596_58
+{
+__label__ = 53;
+}
+else{
+	heapFloat[(r0)] = f0;
+__label__ = 53;
+}
+}
+}
+}
+}
+}
+}
+else{
+	r0 = _2E_str1149;
+	r1 = _2E_str231;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 682;
+	_assert(i7);
+}
+}
+} while(0);
+if (__label__ == 53){
+	r0 = heap32[(r5+7)];
+	r0 = (r0 + r11)|0;
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0)];
+	f1 = heapFloat[(r1+170)];
+	f0 = f0*f1;
+	heapFloat[(r0)] = f0;
+}
+	return;
+}
+
+function _ZN17btHingeConstraint8setParamEifi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+3)];
+if(!(r0 ==-1)) //_LBB597_2
+{
+	if(r0 !=5) //_LBB597_9
+{
+	r0 = _2E_str10;
+	r1 = _2E_str231;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 969;
+	_assert(i7);
+}
+}
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	f0 = heapFloat[(fp+2)];
+	if(r1 ==4) //_LBB597_6
+{
+	r0 = r0 >> 2;
+	heapFloat[(r0+185)] = f0;
+	r1 = heap32[(r0+183)];
+	r1 = r1 | 1;
+	heap32[(r0+183)] = r1;
+	return;
+}
+else{
+	if(r1 ==3) //_LBB597_7
+{
+	r0 = r0 >> 2;
+	heapFloat[(r0+184)] = f0;
+	r1 = heap32[(r0+183)];
+	r1 = r1 | 4;
+	heap32[(r0+183)] = r1;
+	return;
+}
+else{
+	if(r1 !=2) //_LBB597_8
+{
+	r0 = _2E_str10;
+	r1 = _2E_str231;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 964;
+	_assert(i7);
+}
+else{
+	r0 = r0 >> 2;
+	heapFloat[(r0+186)] = f0;
+	r1 = heap32[(r0+183)];
+	r1 = r1 | 2;
+	heap32[(r0+183)] = r1;
+	return;
+}
+}
+}
+}
+
+function _ZNK17btHingeConstraint8getParamEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+if(!(r0 ==-1)) //_LBB598_2
+{
+	if(r0 !=5) //_LBB598_15
+{
+	r0 = _2E_str10;
+	r1 = _2E_str231;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 999;
+	_assert(i7);
+}
+}
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	if(r1 ==4) //_LBB598_8
+{
+	r1 = heapU8[r0+732];
+	r1 = r1 & 1;
+	if(r1 != 0) //_LBB598_10
+{
+	r0 = (r0 + 740)|0;
+}
+else{
+	r0 = _2E_str332;
+	r1 = _2E_str231;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 986;
+	_assert(i7);
+}
+}
+else{
+	if(r1 ==3) //_LBB598_11
+{
+	r1 = heapU8[r0+732];
+	r1 = r1 & 4;
+	if(r1 !=0) //_LBB598_13
+{
+	r0 = (r0 + 736)|0;
+}
+else{
+	r0 = _2E_str433;
+	r1 = _2E_str231;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 990;
+	_assert(i7);
+}
+}
+else{
+	if(r1 !=2) //_LBB598_14
+{
+	r0 = _2E_str10;
+	r1 = _2E_str231;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 994;
+	_assert(i7);
+}
+else{
+	r1 = heapU8[r0+732];
+	r1 = r1 & 2;
+	if(r1 !=0) //_LBB598_7
+{
+	r0 = (r0 + 744)|0;
+}
+else{
+	r0 = _2E_str130;
+	r1 = _2E_str231;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 982;
+	_assert(i7);
+}
+}
+}
+}
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0)];
+	f_g0 = f0;
+	return;
+}
+
+function _ZN17btHingeConstraint13getHingeAngleERK11btTransformS2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r2+135)];
+	f1 = heapFloat[(r0+4)];
+	f2 = heapFloat[(r0)];
+	f3 = heapFloat[(r2+136)];
+	f4 = heapFloat[(r2+139)];
+	f5 = heapFloat[(r0+5)];
+	f6 = heapFloat[(r0+1)];
+	f7 = heapFloat[(r2+140)];
+	f8 = heapFloat[(r2+152)];
+	f9 = heapFloat[(r1+4)];
+	f10 = heapFloat[(r1)];
+	f11 = heapFloat[(r2+156)];
+	f12 = heapFloat[(r1+5)];
+	f13 = heapFloat[(r1+1)];
+	f14 = heapFloat[(r0+8)];
+	f15 = heapFloat[(r0+9)];
+	f16 = heapFloat[(r1+8)];
+	f17 = heapFloat[(r1+9)];
+	f18 = f2*f0;
+	f19 = f6*f4;
+	f20 = f1*f0;
+	f21 = f5*f4;
+	f10 = f10*f8;
+	f13 = f13*f11;
+	f2 = f2*f3;
+	f6 = f6*f7;
+	f9 = f9*f8;
+	f12 = f12*f11;
+	f1 = f1*f3;
+	f5 = f5*f7;
+	f22 = heapFloat[(r2+143)];
+	f23 = heapFloat[(r0+6)];
+	f24 = heapFloat[(r0+2)];
+	f25 = heapFloat[(r2+144)];
+	f26 = heapFloat[(r2+160)];
+	f27 = heapFloat[(r1+6)];
+	f28 = heapFloat[(r1+2)];
+	f29 = heapFloat[(r0+10)];
+	f30 = heapFloat[(r1+10)];
+	f18 = f18+f19;
+	f19 = f24*f22;
+	f20 = f20+f21;
+	f21 = f23*f22;
+	f0 = f14*f0;
+	f4 = f15*f4;
+	f10 = f10+f13;
+	f13 = f28*f26;
+	f2 = f2+f6;
+	f6 = f24*f25;
+	f9 = f9+f12;
+	f12 = f27*f26;
+	f1 = f1+f5;
+	f5 = f23*f25;
+	f8 = f16*f8;
+	f11 = f17*f11;
+	f3 = f14*f3;
+	f7 = f15*f7;
+	f14 = f18+f19;
+	f10 = f10+f13;
+	f2 = f2+f6;
+	f6 = f20+f21;
+	f9 = f9+f12;
+	f1 = f1+f5;
+	f0 = f0+f4;
+	f4 = f29*f22;
+	f5 = f8+f11;
+	f8 = f30*f26;
+	f3 = f3+f7;
+	f7 = f29*f25;
+	f11 = f10*f14;
+	f6 = f9*f6;
+	f0 = f0+f4;
+	f4 = f5+f8;
+	f3 = f3+f7;
+	f2 = f10*f2;
+	f1 = f9*f1;
+	f5 = f11+f6;
+	f0 = f4*f0;
+	f1 = f2+f1;
+	f2 = f4*f3;
+	f0 = f5+f0;
+	f1 = f1+f2;
+	heapFloat[(g0)] = f0;
+	heapFloat[(g0+1)] = f1;
+	atan2f(i7);
+	f1 = heapFloat[(r2+179)];
+	f0 = f1*f_g0;
+	f_g0 = f0;
+	return;
+}
+
+function _ZN18btConstraintSolver12prepareSolveEii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+2)];
+	r1 = r1 >> 2;
+	r0 = r0 >> 2;
+	r2 = heap32[(fp+1)];
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r1+4)];
+	f1 = heapFloat[(r0+126)];
+	f2 = heapFloat[(r1+5)];
+	f3 = heapFloat[(r0+127)];
+	f4 = heapFloat[(r1)];
+	f5 = heapFloat[(r0+130)];
+	f6 = heapFloat[(r1+1)];
+	f7 = heapFloat[(r0+131)];
+	f8 = heapFloat[(r2+126)];
+	f9 = heapFloat[(r2+127)];
+	f10 = heapFloat[(r1+6)];
+	f11 = heapFloat[(r0+128)];
+	f1 = f0*f1;
+	f3 = f2*f3;
+	f4 = f4*f5;
+	f5 = f6*f7;
+	f6 = heapFloat[(r1+2)];
+	f7 = heapFloat[(r0+132)];
+	f12 = heapFloat[(r1+8)];
+	f13 = heapFloat[(r2+130)];
+	f14 = heapFloat[(r1+9)];
+	f15 = heapFloat[(r2+131)];
+	f16 = heapFloat[(r2+128)];
+	f1 = f1+f3;
+	f3 = f10*f11;
+	f4 = f4+f5;
+	f5 = f6*f7;
+	f6 = f12*f13;
+	f7 = f14*f15;
+	f11 = heapFloat[(r1+10)];
+	f12 = heapFloat[(r2+132)];
+	f8 = f0*f8;
+	f9 = f2*f9;
+	f13 = heapFloat[(r1+21)];
+	f14 = heapFloat[(r1+30)];
+	f1 = f1+f3;
+	f3 = f4+f5;
+	f4 = f6+f7;
+	f5 = f11*f12;
+	f6 = f8+f9;
+	f7 = f10*f16;
+	f8 = heapFloat[(r1+29)];
+	f9 = f13*f14;
+	f1 = f1+f3;
+	f3 = heapFloat[(r1+23)];
+	f4 = f4+f5;
+	f5 = f6+f7;
+	f4 = f4-f5;
+	f5 = f8-f9;
+	f1 = f3*f1;
+	f1 = f5-f1;
+	f3 = f3*f4;
+	f1 = f1-f3;
+	f3 = heapFloat[(r1+31)];
+	f4 = f13+f1;
+	if(f3 <=f4) //_LBB602_2
+{
+	f3 = heapFloat[(r1+32)];
+	if(f3 >=f4) //_LBB602_4
+{
+	heapFloat[(r1+21)] = f4;
+}
+else{
+	f1 = f3-f13;
+	heapFloat[(r1+21)] = f3;
+}
+}
+else{
+	f1 = f3-f13;
+	heapFloat[(r1+21)] = f3;
+}
+	f3 = heapFloat[(r0+84)];
+	f4 =                         0;
+if(!(f3 ==f4)) //_LBB602_7
+{
+	f3 = heapFloat[(r0+138)];
+	f0 = f0*f3;
+	f0 = f0*f1;
+	f3 = heapFloat[(r0+126)];
+	f5 = heapFloat[(r0+139)];
+	f6 = heapFloat[(r0+140)];
+	f0 = f3+f0;
+	f2 = f2*f5;
+	heapFloat[(r0+126)] = f0;
+	f0 = f2*f1;
+	f2 = heapFloat[(r0+127)];
+	f0 = f2+f0;
+	f2 = f10*f6;
+	heapFloat[(r0+127)] = f0;
+	f0 = f2*f1;
+	f2 = heapFloat[(r0+128)];
+	f0 = f2+f0;
+	heapFloat[(r0+128)] = f0;
+	f0 = heapFloat[(r0+134)];
+	f0 = f0*f1;
+	f2 = heapFloat[(r1+12)];
+	f3 = heapFloat[(r0+136)];
+	f5 = heapFloat[(r0+135)];
+	f0 = f2*f0;
+	f2 = heapFloat[(r0+130)];
+	f6 = heapFloat[(r1+14)];
+	f7 = heapFloat[(r1+13)];
+	f0 = f2+f0;
+	f2 = f5*f1;
+	heapFloat[(r0+130)] = f0;
+	f0 = f7*f2;
+	f2 = heapFloat[(r0+131)];
+	f0 = f2+f0;
+	f2 = f3*f1;
+	heapFloat[(r0+131)] = f0;
+	f0 = f6*f2;
+	f2 = heapFloat[(r0+132)];
+	f0 = f2+f0;
+	heapFloat[(r0+132)] = f0;
+}
+	f0 = heapFloat[(r2+84)];
+if(!(f0 ==f4)) //_LBB602_9
+{
+	f0 = heapFloat[(r1+4)];
+	f2 = heapFloat[(r2+138)];
+	f0 = f2*f0;
+	f0 = f0*f1;
+	f2 = heapFloat[(r2+126)];
+	f3 = heapFloat[(r1+5)];
+	f4 = heapFloat[(r2+139)];
+	f5 = heapFloat[(r1+6)];
+	f6 = heapFloat[(r2+140)];
+	f0 = f2-f0;
+	f2 = f4*f3;
+	heapFloat[(r2+126)] = f0;
+	f0 = f2*f1;
+	f2 = heapFloat[(r2+127)];
+	f0 = f2-f0;
+	f2 = f6*f5;
+	heapFloat[(r2+127)] = f0;
+	f0 = f2*f1;
+	f2 = heapFloat[(r2+128)];
+	f0 = f2-f0;
+	heapFloat[(r2+128)] = f0;
+	f0 = heapFloat[(r2+134)];
+	f0 = f0*f1;
+	f2 = heapFloat[(r1+16)];
+	f3 = heapFloat[(r2+136)];
+	f4 = heapFloat[(r2+135)];
+	f0 = f2*f0;
+	f2 = heapFloat[(r2+130)];
+	f5 = heapFloat[(r1+18)];
+	f6 = heapFloat[(r1+17)];
+	f0 = f2+f0;
+	f2 = f4*f1;
+	heapFloat[(r2+130)] = f0;
+	f0 = f6*f2;
+	f2 = heapFloat[(r2+131)];
+	f0 = f2+f0;
+	f1 = f3*f1;
+	heapFloat[(r2+131)] = f0;
+	f0 = f5*f1;
+	f1 = heapFloat[(r2+132)];
+	f0 = f1+f0;
+	heapFloat[(r2+132)] = f0;
+}
+	return;
+}
+
+function _ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+2)];
+	r1 = r1 >> 2;
+	r0 = r0 >> 2;
+	r2 = heap32[(fp+1)];
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r1+4)];
+	f1 = heapFloat[(r0+126)];
+	f2 = heapFloat[(r1+5)];
+	f3 = heapFloat[(r0+127)];
+	f4 = heapFloat[(r1)];
+	f5 = heapFloat[(r0+130)];
+	f6 = heapFloat[(r1+1)];
+	f7 = heapFloat[(r0+131)];
+	f8 = heapFloat[(r2+126)];
+	f9 = heapFloat[(r2+127)];
+	f10 = heapFloat[(r1+6)];
+	f11 = heapFloat[(r0+128)];
+	f1 = f0*f1;
+	f3 = f2*f3;
+	f4 = f4*f5;
+	f5 = f6*f7;
+	f6 = heapFloat[(r1+2)];
+	f7 = heapFloat[(r0+132)];
+	f12 = heapFloat[(r1+8)];
+	f13 = heapFloat[(r2+130)];
+	f14 = heapFloat[(r1+9)];
+	f15 = heapFloat[(r2+131)];
+	f16 = heapFloat[(r2+128)];
+	f1 = f1+f3;
+	f3 = f10*f11;
+	f4 = f4+f5;
+	f5 = f6*f7;
+	f6 = f12*f13;
+	f7 = f14*f15;
+	f11 = heapFloat[(r1+10)];
+	f12 = heapFloat[(r2+132)];
+	f8 = f0*f8;
+	f9 = f2*f9;
+	f13 = heapFloat[(r1+21)];
+	f14 = heapFloat[(r1+30)];
+	f1 = f1+f3;
+	f3 = f4+f5;
+	f4 = f6+f7;
+	f5 = f11*f12;
+	f6 = f8+f9;
+	f7 = f10*f16;
+	f8 = heapFloat[(r1+29)];
+	f9 = f13*f14;
+	f1 = f1+f3;
+	f3 = heapFloat[(r1+23)];
+	f4 = f4+f5;
+	f5 = f6+f7;
+	f4 = f4-f5;
+	f5 = f8-f9;
+	f1 = f3*f1;
+	f1 = f5-f1;
+	f3 = f3*f4;
+	f1 = f1-f3;
+	f3 = heapFloat[(r1+31)];
+	f4 = f13+f1;
+	if(f3 >f4) //_LBB603_2
+{
+	f1 = f3-f13;
+	f4 = f3;
+}
+	heapFloat[(r1+21)] = f4;
+	f3 = heapFloat[(r0+84)];
+	f4 =                         0;
+if(!(f3 ==f4)) //_LBB603_5
+{
+	f3 = heapFloat[(r0+138)];
+	f0 = f0*f3;
+	f0 = f0*f1;
+	f3 = heapFloat[(r0+126)];
+	f5 = heapFloat[(r0+139)];
+	f6 = heapFloat[(r0+140)];
+	f0 = f3+f0;
+	f2 = f2*f5;
+	heapFloat[(r0+126)] = f0;
+	f0 = f2*f1;
+	f2 = heapFloat[(r0+127)];
+	f0 = f2+f0;
+	f2 = f10*f6;
+	heapFloat[(r0+127)] = f0;
+	f0 = f2*f1;
+	f2 = heapFloat[(r0+128)];
+	f0 = f2+f0;
+	heapFloat[(r0+128)] = f0;
+	f0 = heapFloat[(r0+134)];
+	f0 = f0*f1;
+	f2 = heapFloat[(r1+12)];
+	f3 = heapFloat[(r0+136)];
+	f5 = heapFloat[(r0+135)];
+	f0 = f2*f0;
+	f2 = heapFloat[(r0+130)];
+	f6 = heapFloat[(r1+14)];
+	f7 = heapFloat[(r1+13)];
+	f0 = f2+f0;
+	f2 = f5*f1;
+	heapFloat[(r0+130)] = f0;
+	f0 = f7*f2;
+	f2 = heapFloat[(r0+131)];
+	f0 = f2+f0;
+	f2 = f3*f1;
+	heapFloat[(r0+131)] = f0;
+	f0 = f6*f2;
+	f2 = heapFloat[(r0+132)];
+	f0 = f2+f0;
+	heapFloat[(r0+132)] = f0;
+}
+	f0 = heapFloat[(r2+84)];
+if(!(f0 ==f4)) //_LBB603_7
+{
+	f0 = heapFloat[(r1+4)];
+	f2 = heapFloat[(r2+138)];
+	f0 = f2*f0;
+	f0 = f0*f1;
+	f2 = heapFloat[(r2+126)];
+	f3 = heapFloat[(r1+5)];
+	f4 = heapFloat[(r2+139)];
+	f5 = heapFloat[(r1+6)];
+	f6 = heapFloat[(r2+140)];
+	f0 = f2-f0;
+	f2 = f4*f3;
+	heapFloat[(r2+126)] = f0;
+	f0 = f2*f1;
+	f2 = heapFloat[(r2+127)];
+	f0 = f2-f0;
+	f2 = f6*f5;
+	heapFloat[(r2+127)] = f0;
+	f0 = f2*f1;
+	f2 = heapFloat[(r2+128)];
+	f0 = f2-f0;
+	heapFloat[(r2+128)] = f0;
+	f0 = heapFloat[(r2+134)];
+	f0 = f0*f1;
+	f2 = heapFloat[(r1+16)];
+	f3 = heapFloat[(r2+136)];
+	f4 = heapFloat[(r2+135)];
+	f0 = f2*f0;
+	f2 = heapFloat[(r2+130)];
+	f5 = heapFloat[(r1+18)];
+	f6 = heapFloat[(r1+17)];
+	f0 = f2+f0;
+	f2 = f4*f1;
+	heapFloat[(r2+130)] = f0;
+	f0 = f6*f2;
+	f2 = heapFloat[(r2+131)];
+	f0 = f2+f0;
+	f1 = f3*f1;
+	heapFloat[(r2+131)] = f0;
+	f0 = f5*f1;
+	f1 = heapFloat[(r2+132)];
+	f0 = f1+f0;
+	heapFloat[(r2+132)] = f0;
+}
+	return;
+}
+
+function _ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+33)];
+	f1 =                         0;
+if(!(f0 ==f1)) //_LBB604_8
+{
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+1)];
+	r3 = gNumSplitImpulseRecoveries;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r2 = r2 >> 2;
+	f2 = heapFloat[(r0+4)];
+	f3 = heapFloat[(r1+142)];
+	f4 = heapFloat[(r0+5)];
+	f5 = heapFloat[(r1+143)];
+	f6 = heapFloat[(r0)];
+	f7 = heapFloat[(r1+146)];
+	f8 = heapFloat[(r0+1)];
+	f9 = heapFloat[(r1+147)];
+	f10 = heapFloat[(r2+142)];
+	f11 = heapFloat[(r2+143)];
+	f12 = heapFloat[(r0+6)];
+	f13 = heapFloat[(r1+144)];
+	f3 = f2*f3;
+	f5 = f4*f5;
+	f6 = f6*f7;
+	f7 = f8*f9;
+	f8 = heapFloat[(r0+2)];
+	f9 = heapFloat[(r1+148)];
+	f14 = heapFloat[(r0+8)];
+	f15 = heapFloat[(r2+146)];
+	f16 = heapFloat[(r0+9)];
+	f17 = heapFloat[(r2+147)];
+	f18 = heapFloat[(r2+144)];
+	f3 = f3+f5;
+	f5 = f12*f13;
+	f6 = f6+f7;
+	f7 = f8*f9;
+	f8 = f14*f15;
+	f9 = f16*f17;
+	f13 = heapFloat[(r0+10)];
+	f14 = heapFloat[(r2+148)];
+	f10 = f2*f10;
+	f11 = f4*f11;
+	f15 = heapFloat[(r0+20)];
+	f16 = heapFloat[(r0+30)];
+	f3 = f3+f5;
+	f5 = f6+f7;
+	f6 = f8+f9;
+	f7 = f13*f14;
+	f8 = f10+f11;
+	f9 = f12*f18;
+	f10 = f15*f16;
+	f3 = f3+f5;
+	f5 = heapFloat[(r0+23)];
+	f6 = f6+f7;
+	f7 = f8+f9;
+	f6 = f6-f7;
+	f0 = f0-f10;
+	f3 = f5*f3;
+	f0 = f0-f3;
+	f3 = f5*f6;
+	f0 = f0-f3;
+	f3 = heapFloat[(r0+31)];
+	f5 = f15+f0;
+	if(f3 >f5) //_LBB604_3
+{
+	f0 = f3-f15;
+	f5 = f3;
+}
+	heapFloat[(r0+20)] = f5;
+	f3 = heapFloat[(r1+84)];
+if(!(f3 ==f1)) //_LBB604_6
+{
+	f3 = heapFloat[(r1+138)];
+	f2 = f2*f3;
+	f2 = f2*f0;
+	f3 = heapFloat[(r1+142)];
+	f5 = heapFloat[(r1+139)];
+	f6 = heapFloat[(r1+140)];
+	f2 = f3+f2;
+	f3 = f4*f5;
+	heapFloat[(r1+142)] = f2;
+	f2 = f3*f0;
+	f3 = heapFloat[(r1+143)];
+	f2 = f3+f2;
+	f3 = f12*f6;
+	heapFloat[(r1+143)] = f2;
+	f2 = f3*f0;
+	f3 = heapFloat[(r1+144)];
+	f2 = f3+f2;
+	heapFloat[(r1+144)] = f2;
+	f2 = heapFloat[(r1+134)];
+	f2 = f2*f0;
+	f3 = heapFloat[(r0+12)];
+	f4 = heapFloat[(r1+136)];
+	f5 = heapFloat[(r1+135)];
+	f2 = f3*f2;
+	f3 = heapFloat[(r1+146)];
+	f6 = heapFloat[(r0+14)];
+	f7 = heapFloat[(r0+13)];
+	f2 = f3+f2;
+	f3 = f5*f0;
+	heapFloat[(r1+146)] = f2;
+	f2 = f7*f3;
+	f3 = heapFloat[(r1+147)];
+	f2 = f3+f2;
+	f3 = f4*f0;
+	heapFloat[(r1+147)] = f2;
+	f2 = f6*f3;
+	f3 = heapFloat[(r1+148)];
+	f2 = f3+f2;
+	heapFloat[(r1+148)] = f2;
+}
+	f2 = heapFloat[(r2+84)];
+if(!(f2 ==f1)) //_LBB604_8
+{
+	f1 = heapFloat[(r0+4)];
+	f2 = heapFloat[(r2+138)];
+	f1 = f2*f1;
+	f1 = f1*f0;
+	f2 = heapFloat[(r2+142)];
+	f3 = heapFloat[(r0+5)];
+	f4 = heapFloat[(r2+139)];
+	f5 = heapFloat[(r0+6)];
+	f6 = heapFloat[(r2+140)];
+	f1 = f2-f1;
+	f2 = f4*f3;
+	heapFloat[(r2+142)] = f1;
+	f1 = f2*f0;
+	f2 = heapFloat[(r2+143)];
+	f1 = f2-f1;
+	f2 = f6*f5;
+	heapFloat[(r2+143)] = f1;
+	f1 = f2*f0;
+	f2 = heapFloat[(r2+144)];
+	f1 = f2-f1;
+	heapFloat[(r2+144)] = f1;
+	f1 = heapFloat[(r2+134)];
+	f1 = f1*f0;
+	f2 = heapFloat[(r0+16)];
+	f3 = heapFloat[(r2+136)];
+	f4 = heapFloat[(r2+135)];
+	f1 = f2*f1;
+	f2 = heapFloat[(r2+146)];
+	f5 = heapFloat[(r0+18)];
+	f6 = heapFloat[(r0+17)];
+	f1 = f2+f1;
+	f2 = f4*f0;
+	heapFloat[(r2+146)] = f1;
+	f1 = f6*f2;
+	f2 = heapFloat[(r2+147)];
+	f1 = f2+f1;
+	f0 = f3*f0;
+	heapFloat[(r2+147)] = f1;
+	f0 = f5*f0;
+	f1 = heapFloat[(r2+148)];
+	f0 = f1+f0;
+	heapFloat[(r2+148)] = f0;
+}
+}
+	return;
+}
+
+function _Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+if(!(r0 ==0)) //_LBB605_2
+{
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+45)];
+	if(r1 !=0) //_LBB605_3
+{
+	r1 = heap32[(fp+1)];
+	r1 = r1 >> 2;
+	f0 = heapFloat[(r1)];
+	f1 = heapFloat[(r0+2)];
+	f2 = heapFloat[(r0+1)];
+	f3 = heapFloat[(r1+1)];
+	f4 = heapFloat[(r0+6)];
+	f5 = heapFloat[(r0+5)];
+	f6 = heapFloat[(r0+3)];
+	f7 = heapFloat[(r0+7)];
+	f8 = f2*f0;
+	f9 = f5*f3;
+	f10 = f1*f0;
+	f11 = f4*f3;
+	f12 = heapFloat[(r1+2)];
+	f13 = heapFloat[(r0+10)];
+	f14 = heapFloat[(r0+9)];
+	f15 = heapFloat[(r0+11)];
+	f8 = f8+f9;
+	f9 = f14*f12;
+	f10 = f10+f11;
+	f11 = f13*f12;
+	f0 = f6*f0;
+	f3 = f7*f3;
+	f8 = f8+f9;
+	f9 = heapFloat[(r0+41)];
+	f10 = f10+f11;
+	f11 = heapFloat[(r0+42)];
+	f0 = f0+f3;
+	f3 = f15*f12;
+	f8 = f8*f9;
+	f9 = f10*f11;
+	f10 = heapFloat[(r0+43)];
+	f0 = f0+f3;
+	f0 = f0*f10;
+	f2 = f2*f8;
+	f1 = f1*f9;
+	f3 = f5*f8;
+	f4 = f4*f9;
+	f1 = f2+f1;
+	f2 = f6*f0;
+	f5 = f14*f8;
+	f6 = f13*f9;
+	f3 = f3+f4;
+	f4 = f7*f0;
+	f1 = f1+f2;
+	f2 = f5+f6;
+	f0 = f15*f0;
+	f3 = f3+f4;
+	heapFloat[(r1)] = f1;
+	f0 = f2+f0;
+	heapFloat[(r1+1)] = f3;
+	heapFloat[(r1+2)] = f0;
+	heap32[(r1+3)] = 0;
+	return;
+}
+}
+	return;
+}
+
+function _ZN35btSequentialImpulseConstraintSolver5resetEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	heap32[(r0+31)] = 0;
+	return;
+}
+
+function _ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+7)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+11)];
+_1: do {
+if(!(r2 ==0)) //_LBB607_14
+{
+	r2 = heap32[(fp)];
+	r0 = heapU8[r0+61];
+	r3 = heap32[(r1+5)];
+	r0 = r0 & 1;
+	if(r0 != 0) //_LBB607_3
+{
+if(!(r3 <1)) //_LBB607_14
+{
+	r0 = 0;
+_6: while(true){
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+2)];
+if(!(r4 <1)) //_LBB607_8
+{
+	r5 = 0;
+_10: while(true){
+	r6 = heap32[(r3+19)];
+	r7 = r5 << 2;
+	r6 = (r6 + r7)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+	r6 = (r6 * 136)|0;
+	r7 = heap32[(r3+4)];
+	r6 = (r7 + r6)|0;
+	r7 = r6 >> 2;
+	r8 = heap32[(r7+27)];
+	r7 = heap32[(r7+26)];
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r6;
+	r5 = (r5 + 1)|0;
+	_ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(i7);
+if(!(r4 !=r5)) //_LBB607_7
+{
+break _10;
+}
+}
+}
+	r0 = (r0 + 1)|0;
+	r3 = heap32[(r1+5)];
+	if(r3 >r0) //_LBB607_5
+{
+continue _6;
+}
+else{
+break _1;
+}
+}
+}
+}
+else{
+	if(r3 >0) //_LBB607_9
+{
+	r0 = 0;
+_15: while(true){
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+2)];
+if(!(r4 <1)) //_LBB607_13
+{
+	r5 = 0;
+_19: while(true){
+	r6 = heap32[(r3+19)];
+	r7 = r5 << 2;
+	r6 = (r6 + r7)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+	r6 = (r6 * 136)|0;
+	r7 = heap32[(r3+4)];
+	r6 = (r7 + r6)|0;
+	r7 = r6 >> 2;
+	r8 = heap32[(r7+27)];
+	r7 = heap32[(r7+26)];
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r6;
+	r5 = (r5 + 1)|0;
+	_ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(i7);
+if(!(r4 !=r5)) //_LBB607_12
+{
+break _19;
+}
+}
+}
+	r0 = (r0 + 1)|0;
+	r3 = heap32[(r1+5)];
+	if(r3 >r0) //_LBB607_10
+{
+continue _15;
+}
+else{
+break _1;
+}
+}
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN35btSequentialImpulseConstraintSolverD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV35btSequentialImpulseConstraintSolver;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+29)];
+if(!(r1 ==0)) //_LBB608_4
+{
+	r3 = heapU8[r0+120];
+if(!(r3 ==0)) //_LBB608_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+29)] = 0;
+}
+	r1 = 1;
+	heap8[r0+120] = r1;
+	heap32[(r2+29)] = 0;
+	heap32[(r2+27)] = 0;
+	heap32[(r2+28)] = 0;
+	r3 = heap32[(r2+24)];
+if(!(r3 ==0)) //_LBB608_8
+{
+	r4 = heapU8[r0+100];
+if(!(r4 ==0)) //_LBB608_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+24)] = 0;
+}
+	heap8[r0+100] = r1;
+	heap32[(r2+24)] = 0;
+	heap32[(r2+22)] = 0;
+	heap32[(r2+23)] = 0;
+	r3 = heap32[(r2+19)];
+if(!(r3 ==0)) //_LBB608_12
+{
+	r4 = heapU8[r0+80];
+if(!(r4 ==0)) //_LBB608_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+19)] = 0;
+}
+	heap8[r0+80] = r1;
+	heap32[(r2+19)] = 0;
+	heap32[(r2+17)] = 0;
+	heap32[(r2+18)] = 0;
+	r3 = heap32[(r2+14)];
+if(!(r3 ==0)) //_LBB608_16
+{
+	r4 = heapU8[r0+60];
+if(!(r4 ==0)) //_LBB608_15
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+14)] = 0;
+}
+	heap8[r0+60] = r1;
+	heap32[(r2+14)] = 0;
+	heap32[(r2+12)] = 0;
+	heap32[(r2+13)] = 0;
+	r3 = heap32[(r2+9)];
+if(!(r3 ==0)) //_LBB608_20
+{
+	r4 = heapU8[r0+40];
+if(!(r4 ==0)) //_LBB608_19
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+9)] = 0;
+}
+	heap8[r0+40] = r1;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+7)] = 0;
+	heap32[(r2+8)] = 0;
+	r3 = heap32[(r2+4)];
+if(!(r3 ==0)) //_LBB608_24
+{
+	r4 = heapU8[r0+20];
+if(!(r4 ==0)) //_LBB608_23
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+4)] = 0;
+}
+	heap8[r0+20] = r1;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	return;
+}
+
+function _ZN35btSequentialImpulseConstraintSolverD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV35btSequentialImpulseConstraintSolver;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+29)];
+if(!(r1 ==0)) //_LBB609_4
+{
+	r3 = heapU8[r0+120];
+if(!(r3 ==0)) //_LBB609_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+29)] = 0;
+}
+	r1 = 1;
+	heap8[r0+120] = r1;
+	heap32[(r2+29)] = 0;
+	heap32[(r2+27)] = 0;
+	heap32[(r2+28)] = 0;
+	r3 = heap32[(r2+24)];
+if(!(r3 ==0)) //_LBB609_8
+{
+	r4 = heapU8[r0+100];
+if(!(r4 ==0)) //_LBB609_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+24)] = 0;
+}
+	heap8[r0+100] = r1;
+	heap32[(r2+24)] = 0;
+	heap32[(r2+22)] = 0;
+	heap32[(r2+23)] = 0;
+	r3 = heap32[(r2+19)];
+if(!(r3 ==0)) //_LBB609_12
+{
+	r4 = heapU8[r0+80];
+if(!(r4 ==0)) //_LBB609_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+19)] = 0;
+}
+	heap8[r0+80] = r1;
+	heap32[(r2+19)] = 0;
+	heap32[(r2+17)] = 0;
+	heap32[(r2+18)] = 0;
+	r3 = heap32[(r2+14)];
+if(!(r3 ==0)) //_LBB609_16
+{
+	r4 = heapU8[r0+60];
+if(!(r4 ==0)) //_LBB609_15
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+14)] = 0;
+}
+	heap8[r0+60] = r1;
+	heap32[(r2+14)] = 0;
+	heap32[(r2+12)] = 0;
+	heap32[(r2+13)] = 0;
+	r3 = heap32[(r2+9)];
+if(!(r3 ==0)) //_LBB609_20
+{
+	r4 = heapU8[r0+40];
+if(!(r4 ==0)) //_LBB609_19
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+9)] = 0;
+}
+	heap8[r0+40] = r1;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+7)] = 0;
+	heap32[(r2+8)] = 0;
+	r3 = heap32[(r2+4)];
+if(!(r3 ==0)) //_LBB609_24
+{
+	r4 = heapU8[r0+20];
+if(!(r4 ==0)) //_LBB609_23
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+4)] = 0;
+}
+	heap8[r0+20] = r1;
+	heap32[(r2+4)] = 0;
+	heap32[(r2+2)] = 0;
+	heap32[(r2+3)] = 0;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = _2E_str450;
+	r1 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	if(r1 !=0) //_LBB610_2
+{
+	r0 = heap32[(fp+2)];
+	if(r0 !=0) //_LBB610_4
+{
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+3)];
+	r4 = heap32[(fp+4)];
+	r5 = heap32[(fp+5)];
+	r6 = heap32[(fp+6)];
+	r7 = heap32[(fp+7)];
+	r8 = heap32[(fp+8)];
+	r9 = heap32[(fp+9)];
+	r10 = r2 >> 2;
+	r11 = heap32[(r10)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+8)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r4;
+	heap32[(g0+5)] = r5;
+	heap32[(g0+6)] = r6;
+	heap32[(g0+7)] = r7;
+	heap32[(g0+8)] = r8;
+	heap32[(g0+9)] = r9;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r11 = heap32[(r10)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+9)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r4;
+	heap32[(g0+5)] = r5;
+	heap32[(g0+6)] = r6;
+	heap32[(g0+7)] = r7;
+	heap32[(g0+8)] = r8;
+	heap32[(g0+9)] = r9;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+7)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r4;
+	heap32[(g0+5)] = r5;
+	heap32[(g0+6)] = r6;
+	heap32[(g0+7)] = r7;
+	heap32[(g0+8)] = r8;
+	heap32[(g0+9)] = r9;
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	r0 = r0 >> 2;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_5: do {
+if(!(r3 !=0)) //_LBB610_10
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB610_7
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB610_10
+{
+break _5;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	f0 =                         0;
+	f_g0 = f0;
+	return;
+}
+else{
+	r0 = _2E_str753;
+	r1 = _2E_str652;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 1186;
+	_assert(i7);
+}
+}
+else{
+	r1 = _2E_str551;
+	r0 = _2E_str652;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 1185;
+	_assert(i7);
+}
+}
+
+function _ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+var __label__ = 0;
+	i7 = sp + -504;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+7)];
+	r5 = heap32[(r1+2)];
+	r6 = 0;
+_1: while(true){
+	if(r6 <r5) //_LBB611_1
+{
+	r7 = (r6 * 34)|0;
+	r8 = heap32[(r1+4)];
+	r7 = r7 << 2;
+	r7 = (r8 + r7)|0;
+	r7 = r7 >> 2;
+	r8 = heap32[(r7+28)];
+	if(r8 !=0) //_LBB611_3
+{
+	r8 = r8 >> 2;
+	heap32[(r8+28)] = heap32[(r7+21)];
+	r9 = heapU8[r4+60];
+	r9 = r9 & 8;
+if(!(r9 ==0)) //_LBB611_5
+{
+	r9 = heap32[(r7+25)];
+	r10 = heap32[(r1+14)];
+	r9 = (r9 * 136)|0;
+	r9 = (r10 + r9)|0;
+	r9 = r9 >> 2;
+	heap32[(r8+30)] = heap32[(r9+21)];
+	r7 = heap32[(r7+25)];
+	r9 = heap32[(r1+14)];
+	r7 = (r7 * 136)|0;
+	r7 = (r7 + r9)|0;
+	r7 = r7 >> 2;
+	heap32[(r8+31)] = heap32[(r7+55)];
+}
+	r6 = (r6 + 1)|0;
+continue _1;
+}
+else{
+__label__ = 2;
+break _1;
+}
+}
+else{
+__label__ = 7;
+break _1;
+}
+}
+switch(__label__ ){//multiple entries
+case 7:
+	r5 = heap32[(r1+7)];
+_10: do {
+if(!(r5 <1)) //_LBB611_10
+{
+	r6 = 0;
+_12: while(true){
+	r7 = (r6 * 34)|0;
+	r8 = heap32[(r1+9)];
+	r7 = r7 << 2;
+	r7 = (r8 + r7)|0;
+	r7 = r7 >> 2;
+	r8 = heap32[(r7+28)];
+	r8 = r8 >> 2;
+	f0 = heapFloat[(r8+7)];
+	f1 = heapFloat[(r7+21)];
+	r6 = (r6 + 1)|0;
+	f0 = f1+f0;
+	heapFloat[(r8+7)] = f0;
+	if(r5 !=r6) //_LBB611_9
+{
+continue _12;
+}
+else{
+break _10;
+}
+}
+}
+} while(0);
+	r4 = r4 >> 2;
+	r5 = heap32[(r4+11)];
+_15: do {
+	if(r5 !=0) //_LBB611_13
+{
+if(!(r3 <1)) //_LBB611_24
+{
+__label__ = 13; //SET chanka
+_17: while(true){
+	r5 = r2 >> 2;
+	r5 = heap32[(r5)];
+	r6 = heapU8[r5+232];
+	r6 = r6 & 2;
+if(!(r6 ==0)) //_LBB611_18
+{
+if(!(r5 ==0)) //_LBB611_18
+{
+	r6 = r5 >> 2;
+	f0 = heapFloat[(r6+84)];
+	f1 =                         0;
+if(!(f0 ==f1)) //_LBB611_18
+{
+	f0 = heapFloat[(r4+3)];
+	f1 = heapFloat[(r6+78)];
+	f2 = heapFloat[(r6+128)];
+	f3 = heapFloat[(r6+77)];
+	f4 = heapFloat[(r6+127)];
+	f5 = heapFloat[(r6+76)];
+	f6 = heapFloat[(r6+126)];
+	f5 = f5+f6;
+	f3 = f3+f4;
+	heapFloat[(r6+76)] = f5;
+	f1 = f1+f2;
+	heapFloat[(r6+77)] = f3;
+	heapFloat[(r6+78)] = f1;
+	heap32[(r6+79)] = 0;
+	f1 = heapFloat[(r6+82)];
+	f2 = heapFloat[(r6+132)];
+	f3 = heapFloat[(r6+81)];
+	f4 = heapFloat[(r6+131)];
+	f5 = heapFloat[(r6+80)];
+	f6 = heapFloat[(r6+130)];
+	f5 = f5+f6;
+	f3 = f3+f4;
+	heapFloat[(r6+80)] = f5;
+	f1 = f1+f2;
+	heapFloat[(r6+81)] = f3;
+	heapFloat[(r6+82)] = f1;
+	heap32[(r6+83)] = 0;
+	f1 = heapFloat[(r6+142)];
+	f2 = heapFloat[(r6+143)];
+	f3 = heapFloat[(r6+144)];
+	r7 = sp + -64;
+	r8 = (r5 + 4)|0;
+	r5 = (r5 + 584)|0;
+	heap32[(g0)] = r8;
+	heapFloat[(g0+1)] = f1;
+	heapFloat[(g0+2)] = f2;
+	heapFloat[(g0+3)] = f3;
+	heap32[(g0+4)] = r5;
+	heapFloat[(g0+5)] = f0;
+	heap32[(g0+6)] = r7;
+	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
+	r5 = r7 >> 2;
+	heap32[(r6+1)] = heap32[(fp+-16)];
+	heap32[(r6+2)] = heap32[(r5+1)];
+	heap32[(r6+3)] = heap32[(r5+2)];
+	heap32[(r6+4)] = heap32[(r5+3)];
+	heap32[(r6+5)] = heap32[(r5+4)];
+	heap32[(r6+6)] = heap32[(r5+5)];
+	heap32[(r6+7)] = heap32[(r5+6)];
+	heap32[(r6+8)] = heap32[(r5+7)];
+	heap32[(r6+9)] = heap32[(r5+8)];
+	heap32[(r6+10)] = heap32[(r5+9)];
+	heap32[(r6+11)] = heap32[(r5+10)];
+	heap32[(r6+12)] = heap32[(r5+11)];
+	heap32[(r6+13)] = heap32[(r5+12)];
+	heap32[(r6+14)] = heap32[(r5+13)];
+	heap32[(r6+15)] = heap32[(r5+14)];
+	heap32[(r6+16)] = heap32[(r5+15)];
+}
+}
+}
+	r3 = (r3 + -1)|0;
+	r2 = (r2 + 4)|0;
+	if(r3 ==0) //_LBB611_24
+{
+break _15;
+}
+else{
+continue _17;
+}
+}
+}
+}
+else{
+if(!(r3 <1)) //_LBB611_24
+{
+__label__ = 18; //SET chanka
+_25: while(true){
+	r4 = r2 >> 2;
+	r4 = heap32[(r4)];
+	r5 = heapU8[r4+232];
+	r5 = r5 & 2;
+if(!(r5 ==0)) //_LBB611_23
+{
+if(!(r4 ==0)) //_LBB611_23
+{
+	r4 = r4 >> 2;
+	f0 = heapFloat[(r4+84)];
+	f1 =                         0;
+if(!(f0 ==f1)) //_LBB611_23
+{
+	f0 = heapFloat[(r4+78)];
+	f1 = heapFloat[(r4+128)];
+	f2 = heapFloat[(r4+77)];
+	f3 = heapFloat[(r4+127)];
+	f4 = heapFloat[(r4+76)];
+	f5 = heapFloat[(r4+126)];
+	f4 = f4+f5;
+	f2 = f2+f3;
+	heapFloat[(r4+76)] = f4;
+	f0 = f0+f1;
+	heapFloat[(r4+77)] = f2;
+	heapFloat[(r4+78)] = f0;
+	heap32[(r4+79)] = 0;
+	f0 = heapFloat[(r4+82)];
+	f1 = heapFloat[(r4+132)];
+	f2 = heapFloat[(r4+81)];
+	f3 = heapFloat[(r4+131)];
+	f4 = heapFloat[(r4+80)];
+	f5 = heapFloat[(r4+130)];
+	f4 = f4+f5;
+	f2 = f2+f3;
+	heapFloat[(r4+80)] = f4;
+	f0 = f0+f1;
+	heapFloat[(r4+81)] = f2;
+	heapFloat[(r4+82)] = f0;
+	heap32[(r4+83)] = 0;
+}
+}
+}
+	r3 = (r3 + -1)|0;
+	r2 = (r2 + 4)|0;
+	if(r3 !=0) //_LBB611_19
+{
+continue _25;
+}
+else{
+break _15;
+}
+}
+}
+}
+} while(0);
+	r2 = heap32[(r1+2)];
+_33: do {
+if(!(r2 >-1)) //_LBB611_33
+{
+	r3 = heap32[(r1+3)];
+if(!(r3 >-1)) //_LBB611_31
+{
+	r3 = heap32[(r1+4)];
+if(!(r3 ==0)) //_LBB611_30
+{
+	r4 = heapU8[r0+20];
+if(!(r4 ==0)) //_LBB611_29
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r1+4)] = 0;
+}
+	r3 = 1;
+	heap8[r0+20] = r3;
+	heap32[(r1+4)] = 0;
+	heap32[(r1+3)] = 0;
+}
+	r3 = (r2 * 136)|0;
+_44: while(true){
+	r4 = heap32[(r1+4)];
+	r4 = (r4 + r3)|0;
+	r5 = sp + -472;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = 136;
+	r2 = (r2 + 1)|0;
+	r3 = (r3 + 136)|0;
+	memcpy(i7);
+	if(r2 !=0) //_LBB611_32
+{
+continue _44;
+}
+else{
+break _33;
+}
+}
+}
+} while(0);
+	heap32[(r1+2)] = 0;
+	r2 = heap32[(r1+7)];
+_47: do {
+if(!(r2 >-1)) //_LBB611_42
+{
+	r3 = heap32[(r1+8)];
+if(!(r3 >-1)) //_LBB611_40
+{
+	r3 = heap32[(r1+9)];
+if(!(r3 ==0)) //_LBB611_39
+{
+	r4 = heapU8[r0+40];
+if(!(r4 ==0)) //_LBB611_38
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r1+9)] = 0;
+}
+	r3 = 1;
+	heap8[r0+40] = r3;
+	heap32[(r1+9)] = 0;
+	heap32[(r1+8)] = 0;
+}
+	r3 = (r2 * 136)|0;
+_58: while(true){
+	r4 = heap32[(r1+9)];
+	r4 = (r4 + r3)|0;
+	r5 = sp + -336;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = 136;
+	r2 = (r2 + 1)|0;
+	r3 = (r3 + 136)|0;
+	memcpy(i7);
+	if(r2 !=0) //_LBB611_41
+{
+continue _58;
+}
+else{
+break _47;
+}
+}
+}
+} while(0);
+	heap32[(r1+7)] = 0;
+	r2 = heap32[(r1+12)];
+_61: do {
+if(!(r2 >-1)) //_LBB611_51
+{
+	r3 = heap32[(r1+13)];
+if(!(r3 >-1)) //_LBB611_49
+{
+	r3 = heap32[(r1+14)];
+if(!(r3 ==0)) //_LBB611_48
+{
+	r4 = heapU8[r0+60];
+if(!(r4 ==0)) //_LBB611_47
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r1+14)] = 0;
+}
+	r3 = 1;
+	heap8[r0+60] = r3;
+	heap32[(r1+14)] = 0;
+	heap32[(r1+13)] = 0;
+}
+	r0 = (r2 * 136)|0;
+_72: while(true){
+	r3 = heap32[(r1+14)];
+	r3 = (r3 + r0)|0;
+	r4 = sp + -200;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = 136;
+	r2 = (r2 + 1)|0;
+	r0 = (r0 + 136)|0;
+	memcpy(i7);
+	if(r2 !=0) //_LBB611_50
+{
+continue _72;
+}
+else{
+break _61;
+}
+}
+}
+} while(0);
+	heap32[(r1+12)] = 0;
+	f0 =                         0;
+	f_g0 = f0;
+	return;
+break;
+case 2:
+	r0 = _2E_str955;
+	r1 = _2E_str652;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 1129;
+	_assert(i7);
+break;
+}
+}
+
+function _ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var r24;
+	var r25;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+var __label__ = 0;
+	i7 = sp + -584;var g0 = i7>>2; // save stack
+	r0 = _2E_str1056;
+	r1 = heap32[(fp+6)];
+	heap32[(g0)] = r0;
+	r0 = heap32[(fp+4)];
+	heap32[(fp+-133)] = r0;
+	r2 = 0;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r0 = (r2 - r0)|0;
+_1: do {
+if(!(r1 ==r0)) //_LBB612_269
+{
+	r0 = heap32[(fp)];
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	heap32[(fp+-132)] = r5;
+	r5 = heap32[(fp+5)];
+	heap32[(fp+-127)] = r5;
+	r5 = heap32[(fp+7)];
+	r6 = r5 >> 2;
+	r7 = heap32[(r6+11)];
+_3: do {
+	if(r7 !=0) //_LBB612_4
+{
+if(!(r4 <1)) //_LBB612_14
+{
+__label__ = 4; //SET chanka
+_5: while(true){
+	r7 = r3 >> 2;
+	r7 = heap32[(r7)];
+	r8 = heapU8[r7+232];
+	r8 = r8 & 2;
+if(!(r8 ==0)) //_LBB612_8
+{
+if(!(r7 ==0)) //_LBB612_8
+{
+	r7 = r7 >> 2;
+	heap32[(r7+126)] = 0;
+	heap32[(r7+127)] = 0;
+	heap32[(r7+128)] = 0;
+	heap32[(r7+129)] = 0;
+	heap32[(r7+130)] = 0;
+	heap32[(r7+131)] = 0;
+	heap32[(r7+132)] = 0;
+	heap32[(r7+133)] = 0;
+	heap32[(r7+142)] = 0;
+	heap32[(r7+143)] = 0;
+	heap32[(r7+144)] = 0;
+	heap32[(r7+145)] = 0;
+	heap32[(r7+146)] = 0;
+	heap32[(r7+147)] = 0;
+	heap32[(r7+148)] = 0;
+	heap32[(r7+149)] = 0;
+}
+}
+	r4 = (r4 + -1)|0;
+	r3 = (r3 + 4)|0;
+	if(r4 ==0) //_LBB612_14
+{
+break _3;
+}
+else{
+continue _5;
+}
+}
+}
+}
+else{
+if(!(r4 <1)) //_LBB612_14
+{
+__label__ = 8; //SET chanka
+_12: while(true){
+	r7 = r3 >> 2;
+	r7 = heap32[(r7)];
+	r8 = heapU8[r7+232];
+	r8 = r8 & 2;
+if(!(r8 ==0)) //_LBB612_12
+{
+if(!(r7 ==0)) //_LBB612_12
+{
+	r7 = r7 >> 2;
+	heap32[(r7+126)] = 0;
+	heap32[(r7+127)] = 0;
+	heap32[(r7+128)] = 0;
+	heap32[(r7+129)] = 0;
+	heap32[(r7+130)] = 0;
+	heap32[(r7+131)] = 0;
+	heap32[(r7+132)] = 0;
+	heap32[(r7+133)] = 0;
+}
+}
+	r4 = (r4 + -1)|0;
+	r3 = (r3 + 4)|0;
+	if(r4 ==0) //_LBB612_14
+{
+break _3;
+}
+}
+}
+}
+} while(0);
+_19: do {
+	if(r1 <1) //_LBB612_40
+{
+	r4 = r0 >> 2;
+	r3 = heap32[(r4+27)];
+_21: do {
+if(!(r3 >r1)) //_LBB612_59
+{
+if(!(r3 >=r1)) //_LBB612_59
+{
+	r7 = heap32[(r4+28)];
+if(!(r7 >=r1)) //_LBB612_58
+{
+	if(r1 !=0) //_LBB612_45
+{
+	r7 = gNumAlignedAllocs;
+	r7 = r7 >> 2;
+	r8 = heap32[(r7)];
+	r9 = r1 << 3;
+	r8 = (r8 + 1)|0;
+	r9 = r9 | 3;
+	heap32[(r7)] = r8;
+	r7 = (r9 + 16)|0;
+	heap32[(g0)] = r7;
+	malloc(i7);
+	r7 = r_g0;
+	if(r7 !=0) //_LBB612_47
+{
+	r8 = (r7 + 4)|0;
+	r8 = (r2 - r8)|0;
+	r8 = r8 & 15;
+	r8 = (r7 + r8)|0;
+	r9 = (r8 + 4)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = r7;
+	r7 = r9;
+}
+}
+else{
+	r7 = 0;
+}
+	r8 = (r0 + 116)|0;
+	if(r3 <1) //_LBB612_50
+{
+	r2 = r8 >> 2;
+	r9 = heap32[(r2)];
+}
+else{
+_33: while(true){
+	r9 = r8 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r2 << 3;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r7 + r10)|0;
+	r12 = heap32[(r11+1)];
+	r11 = heap32[(r11)];
+	r10 = r10 >> 2;
+	r2 = (r2 + 1)|0;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = r12;
+if(!(r3 !=r2)) //_LBB612_51
+{
+break _33;
+}
+}
+	r8 = (r0 + 116)|0;
+}
+if(!(r9 ==0)) //_LBB612_57
+{
+	r2 = heapU8[r0+120];
+if(!(r2 ==0)) //_LBB612_56
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r10 = heap32[(r2)];
+	r10 = (r10 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r2)] = r10;
+	r2 = heap32[(r9+-1)];
+	heap32[(g0)] = r2;
+	free(i7);
+}
+	r2 = r8 >> 2;
+	heap32[(r2)] = 0;
+}
+	r2 = 1;
+	r8 = r8 >> 2;
+	heap8[r0+120] = r2;
+	heap32[(r8)] = r7;
+	heap32[(r4+28)] = r1;
+	if(r3 >=r1) //_LBB612_59
+{
+break _21;
+}
+}
+_43: while(true){
+	r2 = r3 << 3;
+	r7 = heap32[(r4+29)];
+	r2 = (r7 + r2)|0;
+	r2 = r2 >> 2;
+	r3 = (r3 + 1)|0;
+	heap32[(r2)] = 0;
+	heap32[(r2+1)] = 0;
+if(!(r1 !=r3)) //_LBB612_58
+{
+break _21;
+}
+}
+}
+}
+} while(0);
+	r3 = 0;
+	heap32[(r4+27)] = r1;
+}
+else{
+	r2 = 0;
+_47: while(true){
+	r3 = r2 << 2;
+	r4 = heap32[(fp+-127)];
+	r3 = (r4 + r3)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	r2 = (r2 + 1)|0;
+	heap32[(g0)] = r3;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	if(r1 ==r2) //_LBB612_16
+{
+break _47;
+}
+}
+	r2 = r0 >> 2;
+	r3 = heap32[(r2+27)];
+_50: do {
+if(!(r3 >r1)) //_LBB612_35
+{
+if(!(r3 >=r1)) //_LBB612_35
+{
+	r4 = heap32[(r2+28)];
+if(!(r4 >=r1)) //_LBB612_34
+{
+	if(r1 !=0) //_LBB612_21
+{
+	r4 = gNumAlignedAllocs;
+	r4 = r4 >> 2;
+	r7 = heap32[(r4)];
+	r8 = r1 << 3;
+	r7 = (r7 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r4)] = r7;
+	r4 = (r8 + 16)|0;
+	heap32[(g0)] = r4;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB612_23
+{
+	r7 = 0;
+	r8 = (r4 + 4)|0;
+	r7 = (r7 - r8)|0;
+	r7 = r7 & 15;
+	r7 = (r4 + r7)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r4;
+	r4 = r8;
+}
+}
+else{
+	r4 = 0;
+}
+	r7 = (r0 + 116)|0;
+	if(r3 <1) //_LBB612_26
+{
+	r8 = r7 >> 2;
+	r9 = heap32[(r8)];
+}
+else{
+	r8 = 0;
+_63: while(true){
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r8 << 3;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r4 + r10)|0;
+	r12 = heap32[(r11+1)];
+	r11 = heap32[(r11)];
+	r10 = r10 >> 2;
+	r8 = (r8 + 1)|0;
+	heap32[(r10)] = r11;
+	heap32[(r10+1)] = r12;
+if(!(r3 !=r8)) //_LBB612_27
+{
+break _63;
+}
+}
+	r7 = (r0 + 116)|0;
+}
+if(!(r9 ==0)) //_LBB612_33
+{
+	r8 = heapU8[r0+120];
+if(!(r8 ==0)) //_LBB612_32
+{
+	r8 = gNumAlignedFree;
+	r8 = r8 >> 2;
+	r10 = heap32[(r8)];
+	r10 = (r10 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r8)] = r10;
+	r8 = heap32[(r9+-1)];
+	heap32[(g0)] = r8;
+	free(i7);
+}
+	r8 = r7 >> 2;
+	heap32[(r8)] = 0;
+}
+	r8 = 1;
+	r7 = r7 >> 2;
+	heap8[r0+120] = r8;
+	heap32[(r7)] = r4;
+	heap32[(r2+28)] = r1;
+	if(r3 >=r1) //_LBB612_35
+{
+break _50;
+}
+}
+_73: while(true){
+	r4 = r3 << 3;
+	r7 = heap32[(r2+29)];
+	r4 = (r7 + r4)|0;
+	r4 = r4 >> 2;
+	r3 = (r3 + 1)|0;
+	heap32[(r4)] = 0;
+	heap32[(r4+1)] = 0;
+if(!(r1 !=r3)) //_LBB612_34
+{
+break _50;
+}
+}
+}
+}
+} while(0);
+	heap32[(r2+27)] = r1;
+	if(r1 >0) //_LBB612_37
+{
+	r4 = 0;
+	r7 = heap32[(fp+-127)];
+	r8 = r1;
+	r3 = r4;
+_78: while(true){
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r9 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+4)];
+	r11 = heap32[(r2+29)];
+	r11 = (r11 + r4)|0;
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r11;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	r9 = r11 >> 2;
+	r9 = heap32[(r9)];
+	r8 = (r8 + -1)|0;
+	r3 = (r9 + r3)|0;
+	r4 = (r4 + 8)|0;
+	r7 = (r7 + 4)|0;
+if(!(r8 !=0)) //_LBB612_38
+{
+break _19;
+}
+}
+}
+else{
+	r3 = 0;
+}
+}
+} while(0);
+	r2 = r0 >> 2;
+	r4 = heap32[(r2+7)];
+_82: do {
+if(!(r4 >r3)) //_LBB612_80
+{
+if(!(r4 >=r3)) //_LBB612_80
+{
+	r7 = heap32[(r2+8)];
+if(!(r7 >=r3)) //_LBB612_78
+{
+	if(r3 !=0) //_LBB612_65
+{
+	r7 = gNumAlignedAllocs;
+	r7 = r7 >> 2;
+	r8 = heap32[(r7)];
+	r9 = (r3 * 136)|0;
+	r8 = (r8 + 1)|0;
+	r9 = r9 | 3;
+	heap32[(r7)] = r8;
+	r7 = (r9 + 16)|0;
+	heap32[(g0)] = r7;
+	malloc(i7);
+	r7 = r_g0;
+	if(r7 !=0) //_LBB612_67
+{
+	r8 = 0;
+	r9 = (r7 + 4)|0;
+	r8 = (r8 - r9)|0;
+	r8 = r8 & 15;
+	r8 = (r7 + r8)|0;
+	r9 = (r8 + 4)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = r7;
+	r7 = r9;
+}
+}
+else{
+	r7 = 0;
+}
+	r8 = (r0 + 36)|0;
+	if(r4 <1) //_LBB612_70
+{
+	r9 = r8 >> 2;
+	r11 = heap32[(r9)];
+}
+else{
+	r9 = 0;
+	r10 = r4;
+_95: while(true){
+	r11 = r8 >> 2;
+	r11 = heap32[(r11)];
+	r12 = (r7 + r9)|0;
+	r13 = (r11 + r9)|0;
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r13;
+	heap32[(g0+2)] = 136;
+	r10 = (r10 + -1)|0;
+	r9 = (r9 + 136)|0;
+	memcpy(i7);
+if(!(r10 !=0)) //_LBB612_71
+{
+break _95;
+}
+}
+	r8 = (r0 + 36)|0;
+}
+if(!(r11 ==0)) //_LBB612_77
+{
+	r9 = heapU8[r0+40];
+if(!(r9 ==0)) //_LBB612_76
+{
+	r9 = gNumAlignedFree;
+	r9 = r9 >> 2;
+	r10 = heap32[(r9)];
+	r10 = (r10 + 1)|0;
+	r11 = r11 >> 2;
+	heap32[(r9)] = r10;
+	r9 = heap32[(r11+-1)];
+	heap32[(g0)] = r9;
+	free(i7);
+}
+	r9 = r8 >> 2;
+	heap32[(r9)] = 0;
+}
+	r9 = 1;
+	r8 = r8 >> 2;
+	heap8[r0+40] = r9;
+	heap32[(r8)] = r7;
+	heap32[(r2+8)] = r3;
+	if(r4 >=r3) //_LBB612_80
+{
+break _82;
+}
+}
+	r7 = (r3 - r4)|0;
+	r4 = (r4 * 136)|0;
+_106: while(true){
+	r8 = heap32[(r2+9)];
+	r8 = (r8 + r4)|0;
+	r9 = sp + -448;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r9;
+	heap32[(g0+2)] = 136;
+	r7 = (r7 + -1)|0;
+	r4 = (r4 + 136)|0;
+	memcpy(i7);
+if(!(r7 !=0)) //_LBB612_79
+{
+break _82;
+}
+}
+}
+}
+} while(0);
+	r4 = 0;
+	heap32[(r2+7)] = r3;
+	r7 = r4;
+_109: while(true){
+	if(r4 <r1) //_LBB612_81
+{
+	r8 = heap32[(r2+29)];
+	r9 = r4 << 3;
+	r10 = (r8 + r9)|0;
+	r10 = r10 >> 2;
+	r10 = heap32[(r10)];
+	if(r10 !=0) //_LBB612_83
+{
+	if(r7 <r3) //_LBB612_85
+{
+	r11 = r4 << 1;
+	r12 = r4 << 2;
+	r13 = heap32[(fp+-127)];
+	r12 = (r13 + r12)|0;
+	r12 = r12 >> 2;
+	r13 = heap32[(r12)];
+	r14 = r13 >> 2;
+	r15 = heap32[(r2+9)];
+	r16 = heap32[(r14+5)];
+	r17 = heap32[(r14+6)];
+if(!(r10 <1)) //_LBB612_90
+{
+	r10 = (r7 * 136)|0;
+	r10 = (r15 + r10)|0;
+	r18 = 0;
+	r19 = r18;
+_117: while(true){
+	r20 = (r19 * 34)|0;
+	r21 = 136;
+	r22 = r18;
+_119: while(true){
+	r21 = (r21 + -1)|0;
+	r23 = (r22 + 1)|0;
+	r22 = (r10 + r22)|0;
+	r24 = (r19 * 136)|0;
+	heap8[r22+r24] = r18;
+	r22 = r23;
+if(!(r21 !=0)) //_LBB612_88
+{
+break _119;
+}
+}
+	r21 = r20 << 2;
+	r22 = r20 << 2;
+	r21 = (r10 + r21)|0;
+	r23 = r20 << 2;
+	r22 = (r10 + r22)|0;
+	r21 = r21 >> 2;
+	r24 = r20 << 2;
+	r23 = (r10 + r23)|0;
+	r22 = r22 >> 2;
+	heap32[(r21+31)] = -8388609;
+	r21 = r20 << 2;
+	r24 = (r10 + r24)|0;
+	r23 = r23 >> 2;
+	heap32[(r22+32)] = 2139095039;
+	r20 = r20 << 2;
+	r21 = (r10 + r21)|0;
+	r22 = r24 >> 2;
+	heap32[(r23+21)] = 0;
+	r20 = (r10 + r20)|0;
+	r23 = r11 << 2;
+	r21 = r21 >> 2;
+	heap32[(r22+20)] = 0;
+	r22 = (r8 + r23)|0;
+	r19 = (r19 + 1)|0;
+	r20 = r20 >> 2;
+	heap32[(r21+26)] = r16;
+	r21 = r22 >> 2;
+	heap32[(r20+27)] = r17;
+	r20 = heap32[(r21)];
+if(!(r20 >r19)) //_LBB612_87
+{
+break _117;
+}
+}
+}
+	r10 = r16 >> 2;
+	heap32[(r10+126)] = 0;
+	heap32[(r10+127)] = 0;
+	heap32[(r10+128)] = 0;
+	heap32[(r10+129)] = 0;
+	heap32[(r10+130)] = 0;
+	heap32[(r10+131)] = 0;
+	heap32[(r10+132)] = 0;
+	heap32[(r10+133)] = 0;
+	r16 = r17 >> 2;
+	heap32[(r16+126)] = 0;
+	heap32[(r16+127)] = 0;
+	heap32[(r16+128)] = 0;
+	heap32[(r16+129)] = 0;
+	heap32[(r16+130)] = 0;
+	heap32[(r16+131)] = 0;
+	heap32[(r16+132)] = 0;
+	heap32[(r16+133)] = 0;
+	f0 =                         1;
+	f1 = heapFloat[(r6+3)];
+	r17 = sp + -504;
+	f1 = f0/f1;
+	r18 = (r7 * 136)|0;
+	r15 = (r15 + r18)|0;
+	r18 = r17 >> 2;
+	heapFloat[(fp+-126)] = f1;
+	r19 = (r15 + 16)|0;
+	heap32[(r18+1)] = heap32[(r6+8)];
+	heap32[(r18+2)] = r19;
+	heap32[(r18+3)] = r15;
+	r19 = (r15 + 32)|0;
+	heap32[(r18+4)] = 0;
+	heap32[(r18+5)] = r19;
+	r19 = (r15 + 116)|0;
+	heap32[(r18+6)] = 34;
+	r20 = r15 >> 2;
+	heap32[(r18+7)] = r19;
+	heap32[(r20+30)] = heap32[(r6+10)];
+	r19 = (r15 + 120)|0;
+	heap32[(r18+13)] = heap32[(r6+1)];
+	r20 = (r15 + 124)|0;
+	heap32[(r18+8)] = r19;
+	r19 = (r15 + 128)|0;
+	heap32[(r18+9)] = r20;
+	heap32[(r18+10)] = r19;
+	r19 = heap32[(r6+5)];
+	heap32[(r18+12)] = r19;
+	r12 = heap32[(r12)];
+	r19 = r12 >> 2;
+	r19 = heap32[(r19)];
+	r19 = r19 >> 2;
+	r19 = heap32[(r19+5)];
+	r11 = r11 << 2;
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r17;
+	r8 = (r8 + r11)|0;
+	r8 = r8 >> 2;
+	__FUNCTION_TABLE__[(r19)>>2](i7);
+	r11 = heap32[(r8)];
+_123: do {
+if(!(r11 <1)) //_LBB612_93
+{
+	r11 = 0;
+_125: while(true){
+	r12 = (r11 * 34)|0;
+	r12 = r12 << 2;
+	r12 = (r15 + r12)|0;
+	r12 = r12 >> 2;
+	heap32[(r12+28)] = r13;
+	r17 = heap32[(r14+5)];
+	r17 = r17 >> 2;
+	f1 = heapFloat[(r12)];
+	f2 = heapFloat[(r17+64)];
+	f3 = heapFloat[(r12+1)];
+	f4 = heapFloat[(r17+65)];
+	f5 = heapFloat[(r17+68)];
+	f6 = heapFloat[(r17+69)];
+	f2 = f2*f1;
+	f4 = f4*f3;
+	f7 = heapFloat[(r12+2)];
+	f8 = heapFloat[(r17+66)];
+	f9 = heapFloat[(r17+72)];
+	f10 = heapFloat[(r17+73)];
+	f11 = heapFloat[(r17+70)];
+	f5 = f5*f1;
+	f6 = f6*f3;
+	f2 = f2+f4;
+	f4 = f8*f7;
+	f8 = heapFloat[(r17+74)];
+	f9 = f9*f1;
+	f10 = f10*f3;
+	f5 = f5+f6;
+	f6 = f11*f7;
+	f2 = f2+f4;
+	f4 = heapFloat[(r17+134)];
+	f11 = heapFloat[(r17+136)];
+	f12 = heapFloat[(r17+135)];
+	f5 = f5+f6;
+	f6 = f9+f10;
+	f8 = f8*f7;
+	f2 = f2*f4;
+	f4 = f6+f8;
+	f5 = f5*f12;
+	heapFloat[(r12+12)] = f2;
+	f2 = f4*f11;
+	heapFloat[(r12+13)] = f5;
+	heapFloat[(r12+14)] = f2;
+	heap32[(r12+15)] = 0;
+	r17 = heap32[(r14+6)];
+	r17 = r17 >> 2;
+	f2 = heapFloat[(r12+8)];
+	f4 = heapFloat[(r17+64)];
+	f5 = heapFloat[(r12+9)];
+	f6 = heapFloat[(r17+65)];
+	f8 = heapFloat[(r17+68)];
+	f9 = heapFloat[(r17+69)];
+	f4 = f4*f2;
+	f6 = f6*f5;
+	f10 = heapFloat[(r12+10)];
+	f11 = heapFloat[(r17+66)];
+	f12 = heapFloat[(r17+72)];
+	f13 = heapFloat[(r17+73)];
+	f14 = heapFloat[(r17+70)];
+	f8 = f8*f2;
+	f9 = f9*f5;
+	f4 = f4+f6;
+	f6 = f11*f10;
+	f11 = heapFloat[(r17+74)];
+	f12 = f12*f2;
+	f13 = f13*f5;
+	f8 = f8+f9;
+	f9 = f14*f10;
+	f4 = f4+f6;
+	f6 = heapFloat[(r17+134)];
+	f14 = heapFloat[(r17+136)];
+	f15 = heapFloat[(r17+135)];
+	f8 = f8+f9;
+	f9 = f12+f13;
+	f11 = f11*f10;
+	f4 = f4*f6;
+	f6 = f9+f11;
+	f8 = f8*f15;
+	heapFloat[(r12+16)] = f4;
+	f4 = f6*f14;
+	heapFloat[(r12+17)] = f8;
+	heapFloat[(r12+18)] = f4;
+	heap32[(r12+19)] = 0;
+	f4 = heapFloat[(r10+68)];
+	f6 = heapFloat[(r10+69)];
+	f8 = heapFloat[(r10+64)];
+	f9 = heapFloat[(r10+65)];
+	f11 = heapFloat[(r10+72)];
+	f12 = heapFloat[(r10+73)];
+	f13 = heapFloat[(r10+70)];
+	f14 = heapFloat[(r10+66)];
+	f8 = f8*f1;
+	f9 = f9*f3;
+	f4 = f4*f1;
+	f6 = f6*f3;
+	f15 = heapFloat[(r10+74)];
+	f16 = heapFloat[(r16+68)];
+	f17 = heapFloat[(r16+69)];
+	f18 = heapFloat[(r16+64)];
+	f19 = heapFloat[(r16+65)];
+	f8 = f8+f9;
+	f9 = f14*f7;
+	f4 = f4+f6;
+	f6 = f13*f7;
+	f11 = f11*f1;
+	f12 = f12*f3;
+	f13 = heapFloat[(r10+84)];
+	f14 = heapFloat[(r12+5)];
+	f20 = heapFloat[(r12+4)];
+	f21 = heapFloat[(r16+84)];
+	f22 = heapFloat[(r12+6)];
+	f8 = f8+f9;
+	f4 = f4+f6;
+	f6 = f20*f13;
+	f9 = f14*f13;
+	f23 = heapFloat[(r16+72)];
+	f24 = heapFloat[(r16+73)];
+	f25 = heapFloat[(r16+70)];
+	f26 = heapFloat[(r16+66)];
+	f18 = f18*f2;
+	f19 = f19*f5;
+	f16 = f16*f2;
+	f17 = f17*f5;
+	f11 = f11+f12;
+	f12 = f15*f7;
+	f15 = heapFloat[(r16+74)];
+	f27 = f20*f21;
+	f28 = f14*f21;
+	f11 = f11+f12;
+	f12 = f22*f13;
+	f13 = f18+f19;
+	f18 = f26*f10;
+	f16 = f16+f17;
+	f17 = f25*f10;
+	f19 = f23*f2;
+	f23 = f24*f5;
+	f8 = f8*f1;
+	f4 = f4*f3;
+	f6 = f6*f20;
+	f9 = f9*f14;
+	f13 = f13+f18;
+	f16 = f16+f17;
+	f17 = f22*f21;
+	f18 = f19+f23;
+	f15 = f15*f10;
+	f19 = f27*f20;
+	f21 = f28*f14;
+	f4 = f8+f4;
+	f8 = f11*f7;
+	f6 = f6+f9;
+	f9 = f12*f22;
+	f11 = f18+f15;
+	f12 = f13*f2;
+	f13 = f16*f5;
+	f15 = f19+f21;
+	f16 = f17*f22;
+	f4 = f4+f8;
+	f6 = f6+f9;
+	f8 = f12+f13;
+	f9 = f11*f10;
+	f11 = f15+f16;
+	f4 = f4+f6;
+	f6 = f8+f9;
+	f4 = f11+f4;
+	f4 = f6+f4;
+	f4 = f0/f4;
+	heapFloat[(r12+23)] = f4;
+	f6 = heapFloat[(r10+76)];
+	f8 = heapFloat[(r10+77)];
+	f9 = heapFloat[(r10+80)];
+	f11 = heapFloat[(r10+81)];
+	f12 = heapFloat[(r16+80)];
+	f13 = heapFloat[(r16+81)];
+	f15 = heapFloat[(r16+76)];
+	f16 = heapFloat[(r16+77)];
+	f17 = heapFloat[(r10+78)];
+	f18 = heapFloat[(r10+82)];
+	f19 = heapFloat[(r16+82)];
+	f21 = heapFloat[(r16+78)];
+	f6 = f20*f6;
+	f8 = f14*f8;
+	f1 = f1*f9;
+	f3 = f3*f11;
+	f2 = f2*f12;
+	f5 = f5*f13;
+	f9 = f20*f15;
+	f11 = f14*f16;
+	f6 = f6+f8;
+	f8 = f22*f17;
+	f1 = f1+f3;
+	f3 = f7*f18;
+	f2 = f2+f5;
+	f5 = f10*f19;
+	f7 = f9+f11;
+	f9 = f22*f21;
+	f6 = f6+f8;
+	f1 = f1+f3;
+	f2 = f2+f5;
+	f3 = f7+f9;
+	f1 = f6+f1;
+	f2 = f2-f3;
+	f1 = f1+f2;
+	f2 = heapFloat[(r18+13)];
+	f3 =                         0;
+	f1 = f2*f1;
+	f2 = heapFloat[(r12+29)];
+	f1 = f3-f1;
+	f2 = f4*f2;
+	f1 = f4*f1;
+	f1 = f2+f1;
+	r11 = (r11 + 1)|0;
+	heapFloat[(r12+29)] = f1;
+	heap32[(r12+21)] = 0;
+	r12 = heap32[(r8)];
+if(!(r12 >r11)) //_LBB612_92
+{
+break _123;
+}
+}
+}
+} while(0);
+	r8 = heap32[(r2+29)];
+	r8 = (r8 + r9)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+}
+else{
+__label__ = 78;
+break _109;
+}
+}
+else{
+	r8 = 0;
+}
+	r7 = (r8 + r7)|0;
+	r4 = (r4 + 1)|0;
+}
+else{
+__label__ = 90;
+break _109;
+}
+}
+switch(__label__ ){//multiple entries
+case 90:
+	r1 = heap32[(fp+-133)];
+_132: do {
+if(!(r1 <1)) //_LBB612_225
+{
+_133: while(true){
+	r1 = heap32[(fp+-132)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	heap32[(fp+-128)] = r1;
+	r1 = r1 >> 2;
+	heap32[(fp+-127)] = r1;
+	r3 = heap32[(r1+277)];
+	r1 = heap32[(r1+278)];
+	r4 = heapU8[r3+232];
+	r4 = r4 & 2;
+	if(r4 !=0) //_LBB612_99
+{
+	r4 = r3;
+}
+else{
+	r4 = 0;
+}
+	r7 = heapU8[r1+232];
+	r7 = r7 & 2;
+	if(r7 !=0) //_LBB612_102
+{
+	r7 = r1;
+}
+else{
+	r7 = 0;
+}
+	if(r4 ==0) //_LBB612_105
+{
+__label__ = 99;
+}
+else{
+	r4 = r4 >> 2;
+	f0 = heapFloat[(r4+84)];
+	f1 =                         0;
+	if(f0 !=f1) //_LBB612_107
+{
+__label__ = 101;
+}
+else{
+__label__ = 99;
+}
+}
+if (__label__ == 99){
+	if(r7 ==0) //_LBB612_224
+{
+__label__ = 216;
+}
+else{
+	r4 = r7 >> 2;
+	f0 = heapFloat[(r4+84)];
+	f1 =                         0;
+	if(f0 ==f1) //_LBB612_224
+{
+__label__ = 216;
+}
+else{
+__label__ = 101;
+}
+}
+}
+if (__label__ == 101){
+	r4 = heap32[(fp+-128)];
+	r7 = (r4 + 4)|0;
+	heap32[(fp+-129)] = r7;
+	r7 = (r4 + 152)|0;
+	heap32[(fp+-130)] = r7;
+	r4 = (r4 + 168)|0;
+	heap32[(fp+-131)] = r4;
+	r4 = 0;
+	r7 = r4;
+_150: while(true){
+	r8 = heap32[(fp+-127)];
+	r8 = heap32[(r8+279)];
+	if(r8 >r7) //_LBB612_108
+{
+	r8 = heap32[(fp+-128)];
+	r8 = (r8 + r4)|0;
+	r9 = r8 >> 2;
+	f0 = heapFloat[(r9+21)];
+	r10 = heap32[(fp+-127)];
+	f1 = heapFloat[(r10+281)];
+_153: do {
+if(!(f0 >f1)) //_LBB612_222
+{
+	r10 = heap32[(fp+-129)];
+	r10 = (r10 + r4)|0;
+	r11 = heap32[(fp+-131)];
+	r11 = (r11 + r4)|0;
+	r12 = heap32[(fp+-130)];
+	r12 = (r12 + r4)|0;
+	r13 = heap32[(r2+3)];
+	r14 = heap32[(r2+2)];
+	if(r13 ==r14) //_LBB612_111
+{
+	r15 = 1;
+	r16 = r14 << 1;
+	r16 = r14 == 0 ? r15 : r16;
+	if(r13 >=r16) //_LBB612_110
+{
+__label__ = 104;
+}
+else{
+	if(r16 !=0) //_LBB612_114
+{
+	r13 = gNumAlignedAllocs;
+	r13 = r13 >> 2;
+	r17 = heap32[(r13)];
+	r18 = (r16 * 136)|0;
+	r17 = (r17 + 1)|0;
+	r18 = r18 | 3;
+	heap32[(r13)] = r17;
+	r13 = (r18 + 16)|0;
+	heap32[(g0)] = r13;
+	malloc(i7);
+	r17 = r_g0;
+	if(r17 !=0) //_LBB612_116
+{
+	r13 = 0;
+	r18 = (r17 + 4)|0;
+	r13 = (r13 - r18)|0;
+	r13 = r13 & 15;
+	r13 = (r17 + r13)|0;
+	r18 = (r13 + 4)|0;
+	r13 = r13 >> 2;
+	heap32[(r13)] = r17;
+	r17 = r18;
+}
+}
+else{
+	r17 = 0;
+}
+	if(r14 <1) //_LBB612_119
+{
+	r19 = heap32[(r2+4)];
+}
+else{
+	r13 = 0;
+	r18 = r14;
+_166: while(true){
+	r19 = heap32[(r2+4)];
+	r20 = (r17 + r13)|0;
+	r21 = (r19 + r13)|0;
+	heap32[(g0)] = r20;
+	heap32[(g0+1)] = r21;
+	heap32[(g0+2)] = 136;
+	r18 = (r18 + -1)|0;
+	r13 = (r13 + 136)|0;
+	memcpy(i7);
+if(!(r18 !=0)) //_LBB612_120
+{
+break _166;
+}
+}
+}
+	if(r19 !=0) //_LBB612_123
+{
+	r13 = heapU8[r0+20];
+	if(r13 !=0) //_LBB612_125
+{
+	r13 = gNumAlignedFree;
+	r13 = r13 >> 2;
+	r18 = heap32[(r13)];
+	r18 = (r18 + 1)|0;
+	r19 = r19 >> 2;
+	heap32[(r13)] = r18;
+	r13 = heap32[(r19+-1)];
+	heap32[(g0)] = r13;
+	free(i7);
+	r13 = heap32[(r2+2)];
+}
+else{
+	r13 = r14;
+}
+	heap32[(r2+4)] = 0;
+}
+else{
+	r13 = r14;
+}
+	heap8[r0+20] = r15;
+	heap32[(r2+4)] = r17;
+	heap32[(r2+3)] = r16;
+__label__ = 121;
+}
+}
+else{
+__label__ = 104;
+}
+if (__label__ == 104){
+	r13 = r14;
+}
+	r13 = (r13 + 1)|0;
+	heap32[(r2+2)] = r13;
+	r13 = heapU8[r3+232];
+	r15 = heapU8[r1+232];
+	r13 = r13 & 2;
+	r16 = 0;
+	r15 = r15 & 2;
+	r13 = r13 == 0 ? r16 : r3;
+	r17 = heap32[(r2+4)];
+	r15 = r15 == 0 ? r16 : r1;
+	if(r13 ==0) //_LBB612_130
+{
+	r18 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r19 = heapU8[r18];
+if(!(r19 !=0)) //_LBB612_132
+{
+	r19 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r20 = r19 >> 2;
+	heap32[(r20+41)] = 1065353216;
+	heap32[(r20+42)] = 1065353216;
+	heap32[(r20+43)] = 1065353216;
+	heap32[(r20+44)] = 0;
+	heap32[(r20+45)] = 0;
+	heap32[(r20+46)] = 1566444395;
+	heap32[(r20+47)] = 0;
+	heap32[(r20+48)] = 0;
+	heap32[(r20+49)] = 0;
+	heap32[(r20+50)] = 0;
+	heap32[(r20+51)] = 1;
+	heap32[(r20+52)] = -1;
+	heap32[(r20+53)] = -1;
+	heap32[(r20+54)] = 1;
+	heap32[(r20+55)] = 0;
+	heap32[(r20+56)] = 1056964608;
+	heap32[(r20+57)] = 0;
+	heap32[(r20+58)] = 1;
+	heap32[(r20+59)] = 0;
+	heap32[(r20+60)] = 1065353216;
+	heap32[(r20+61)] = 0;
+	heap32[(r20+62)] = 0;
+	heap32[(r20+63)] = 0;
+	heap32[(r20+1)] = 1065353216;
+	heap32[(r20+2)] = 0;
+	heap32[(r20+3)] = 0;
+	heap32[(r20+4)] = 0;
+	heap32[(r20+5)] = 0;
+	heap32[(r20+6)] = 1065353216;
+	heap32[(r20+7)] = 0;
+	heap32[(r20+8)] = 0;
+	heap32[(r20+9)] = 0;
+	heap32[(r20+10)] = 0;
+	heap32[(r20+11)] = 1065353216;
+	heap32[(r20+12)] = 0;
+	heap32[(r20+13)] = 0;
+	heap32[(r20+14)] = 0;
+	r21 = _ZTV11btRigidBody;
+	heap32[(r20+15)] = 0;
+	r21 = (r21 + 8)|0;
+	heap32[(r20+16)] = 0;
+	r22 = 1;
+	heap32[(r20)] = r21;
+	heap8[r19+492] = r22;
+	heap32[(r20+122)] = 0;
+	heap32[(r20+120)] = 0;
+	r21 = sp + -280;
+	heap32[(r20+121)] = 0;
+	r20 = r21 >> 2;
+	heap32[(fp+-70)] = 0;
+	heap32[(r20+1)] = 0;
+	heap32[(r20+18)] = 0;
+	heap32[(r20+19)] = 0;
+	heap32[(r20+20)] = 0;
+	heap32[(r20+21)] = 0;
+	heap32[(r20+22)] = 0;
+	heap32[(r20+23)] = 0;
+	heap32[(r20+24)] = 0;
+	heap32[(r20+25)] = 1056964608;
+	heap32[(r20+26)] = 0;
+	heap32[(r20+27)] = 1061997773;
+	heap32[(r20+28)] = 1065353216;
+	heap8[sp+-164] = r16;
+	heap32[(r20+30)] = 1000593162;
+	heap32[(r20+31)] = 1008981770;
+	heap32[(r20+32)] = 1008981770;
+	heap32[(r20+33)] = 1008981770;
+	heap32[(r20+2)] = 1065353216;
+	heap32[(r20+3)] = 0;
+	heap32[(r20+4)] = 0;
+	heap32[(r20+5)] = 0;
+	heap32[(r20+6)] = 0;
+	heap32[(r20+7)] = 1065353216;
+	heap32[(r20+8)] = 0;
+	heap32[(r20+9)] = 0;
+	heap32[(r20+10)] = 0;
+	heap32[(r20+11)] = 0;
+	heap32[(r20+12)] = 1065353216;
+	heap32[(r20+13)] = 0;
+	heap32[(r20+14)] = 0;
+	heap32[(r20+15)] = 0;
+	heap32[(r20+16)] = 0;
+	heap32[(r20+17)] = 0;
+	heap32[(g0)] = r19;
+	heap32[(g0+1)] = r21;
+	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
+	heap8[r18] = r22;
+}
+	r18 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r19 = r18 >> 2;
+	r20 = heap32[(r19+51)];
+	r20 = r20 | 1;
+	heap32[(r19+51)] = r20;
+	heap32[(r19+84)] = 0;
+	f0 =                         0;
+	f1 = heapFloat[(r19+95)];
+	f2 = heapFloat[(r19+94)];
+	f3 = heapFloat[(r19+93)];
+	f3 = f3*f0;
+	f2 = f2*f0;
+	heapFloat[(r19+89)] = f3;
+	f1 = f1*f0;
+	heapFloat[(r19+90)] = f2;
+	heapFloat[(r19+91)] = f1;
+	heap32[(r19+92)] = 0;
+	heap32[(r19+97)] = 0;
+	heap32[(r19+98)] = 0;
+	heap32[(r19+99)] = 0;
+	heap32[(r19+100)] = 0;
+	f1 = heapFloat[(r19+87)];
+	f2 = heapFloat[(r19+86)];
+	f3 = heapFloat[(r19+85)];
+	f3 = f3*f0;
+	f2 = f2*f0;
+	heapFloat[(r19+138)] = f3;
+	f0 = f1*f0;
+	heapFloat[(r19+139)] = f2;
+	heapFloat[(r19+140)] = f0;
+	heap32[(r19+141)] = 0;
+}
+else{
+	r18 = r13;
+}
+	r19 = (r14 * 136)|0;
+	r17 = (r17 + r19)|0;
+	r17 = r17 >> 2;
+	heap32[(r17+26)] = r18;
+	if(r15 ==0) //_LBB612_135
+{
+	r18 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r19 = heapU8[r18];
+if(!(r19 !=0)) //_LBB612_137
+{
+	r19 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r20 = r19 >> 2;
+	heap32[(r20+41)] = 1065353216;
+	heap32[(r20+42)] = 1065353216;
+	heap32[(r20+43)] = 1065353216;
+	heap32[(r20+44)] = 0;
+	heap32[(r20+45)] = 0;
+	heap32[(r20+46)] = 1566444395;
+	heap32[(r20+47)] = 0;
+	heap32[(r20+48)] = 0;
+	heap32[(r20+49)] = 0;
+	heap32[(r20+50)] = 0;
+	heap32[(r20+51)] = 1;
+	heap32[(r20+52)] = -1;
+	heap32[(r20+53)] = -1;
+	heap32[(r20+54)] = 1;
+	heap32[(r20+55)] = 0;
+	heap32[(r20+56)] = 1056964608;
+	heap32[(r20+57)] = 0;
+	heap32[(r20+58)] = 1;
+	heap32[(r20+59)] = 0;
+	heap32[(r20+60)] = 1065353216;
+	heap32[(r20+61)] = 0;
+	heap32[(r20+62)] = 0;
+	heap32[(r20+63)] = 0;
+	heap32[(r20+1)] = 1065353216;
+	heap32[(r20+2)] = 0;
+	heap32[(r20+3)] = 0;
+	heap32[(r20+4)] = 0;
+	heap32[(r20+5)] = 0;
+	heap32[(r20+6)] = 1065353216;
+	heap32[(r20+7)] = 0;
+	heap32[(r20+8)] = 0;
+	heap32[(r20+9)] = 0;
+	heap32[(r20+10)] = 0;
+	heap32[(r20+11)] = 1065353216;
+	heap32[(r20+12)] = 0;
+	heap32[(r20+13)] = 0;
+	heap32[(r20+14)] = 0;
+	r21 = _ZTV11btRigidBody;
+	heap32[(r20+15)] = 0;
+	r21 = (r21 + 8)|0;
+	heap32[(r20+16)] = 0;
+	r22 = 1;
+	heap32[(r20)] = r21;
+	heap8[r19+492] = r22;
+	heap32[(r20+122)] = 0;
+	heap32[(r20+120)] = 0;
+	r21 = sp + -144;
+	heap32[(r20+121)] = 0;
+	r20 = r21 >> 2;
+	heap32[(fp+-36)] = 0;
+	heap32[(r20+1)] = 0;
+	heap32[(r20+18)] = 0;
+	heap32[(r20+19)] = 0;
+	heap32[(r20+20)] = 0;
+	heap32[(r20+21)] = 0;
+	heap32[(r20+22)] = 0;
+	heap32[(r20+23)] = 0;
+	heap32[(r20+24)] = 0;
+	heap32[(r20+25)] = 1056964608;
+	heap32[(r20+26)] = 0;
+	heap32[(r20+27)] = 1061997773;
+	heap32[(r20+28)] = 1065353216;
+	heap8[sp+-28] = r16;
+	heap32[(r20+30)] = 1000593162;
+	heap32[(r20+31)] = 1008981770;
+	heap32[(r20+32)] = 1008981770;
+	heap32[(r20+33)] = 1008981770;
+	heap32[(r20+2)] = 1065353216;
+	heap32[(r20+3)] = 0;
+	heap32[(r20+4)] = 0;
+	heap32[(r20+5)] = 0;
+	heap32[(r20+6)] = 0;
+	heap32[(r20+7)] = 1065353216;
+	heap32[(r20+8)] = 0;
+	heap32[(r20+9)] = 0;
+	heap32[(r20+10)] = 0;
+	heap32[(r20+11)] = 0;
+	heap32[(r20+12)] = 1065353216;
+	heap32[(r20+13)] = 0;
+	heap32[(r20+14)] = 0;
+	heap32[(r20+15)] = 0;
+	heap32[(r20+16)] = 0;
+	heap32[(r20+17)] = 0;
+	heap32[(g0)] = r19;
+	heap32[(g0+1)] = r21;
+	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
+	heap8[r18] = r22;
+}
+	r18 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r19 = r18 >> 2;
+	r20 = heap32[(r19+51)];
+	r20 = r20 | 1;
+	heap32[(r19+51)] = r20;
+	heap32[(r19+84)] = 0;
+	f0 =                         0;
+	f1 = heapFloat[(r19+95)];
+	f2 = heapFloat[(r19+94)];
+	f3 = heapFloat[(r19+93)];
+	f3 = f3*f0;
+	f2 = f2*f0;
+	heapFloat[(r19+89)] = f3;
+	f1 = f1*f0;
+	heapFloat[(r19+90)] = f2;
+	heapFloat[(r19+91)] = f1;
+	heap32[(r19+92)] = 0;
+	heap32[(r19+97)] = 0;
+	heap32[(r19+98)] = 0;
+	heap32[(r19+99)] = 0;
+	heap32[(r19+100)] = 0;
+	f1 = heapFloat[(r19+87)];
+	f2 = heapFloat[(r19+86)];
+	f3 = heapFloat[(r19+85)];
+	f3 = f3*f0;
+	f2 = f2*f0;
+	heapFloat[(r19+138)] = f3;
+	f0 = f1*f0;
+	heapFloat[(r19+139)] = f2;
+	heapFloat[(r19+140)] = f0;
+	heap32[(r19+141)] = 0;
+}
+else{
+	r18 = r15;
+}
+	heap32[(r17+27)] = r18;
+	r18 = r1 >> 2;
+	heap32[(r17+28)] = r10;
+	r19 = r3 >> 2;
+	r20 = heap32[(r19+58)];
+	r21 = heap32[(r18+58)];
+	f0 = heapFloat[(r9+15)];
+	f1 = heapFloat[(r19+15)];
+	f2 = heapFloat[(r9+14)];
+	f3 = heapFloat[(r19+14)];
+	f4 = heapFloat[(r9+13)];
+	f5 = heapFloat[(r19+13)];
+	r19 = sp + -296;
+	f4 = f4-f5;
+	f2 = f2-f3;
+	r22 = r19 >> 2;
+	heapFloat[(fp+-74)] = f4;
+	f0 = f0-f1;
+	heapFloat[(r22+1)] = f2;
+	heapFloat[(r22+2)] = f0;
+	heap32[(r22+3)] = 0;
+	f1 = heapFloat[(r9+11)];
+	f3 = heapFloat[(r18+15)];
+	f5 = heapFloat[(r9+10)];
+	f6 = heapFloat[(r18+14)];
+	f7 = heapFloat[(r9+9)];
+	f8 = heapFloat[(r18+13)];
+	r18 = sp + -312;
+	f7 = f7-f8;
+	f5 = f5-f6;
+	r22 = r18 >> 2;
+	heapFloat[(fp+-78)] = f7;
+	f1 = f1-f3;
+	heapFloat[(r22+1)] = f5;
+	heapFloat[(r22+2)] = f1;
+	r23 = r8 >> 2;
+	heap32[(r22+3)] = 0;
+	r22 = r8 >> 2;
+	r24 = r8 >> 2;
+	r20 = r20 & 2;
+	r21 = r21 & 2;
+	r20 = r20 == 0 ? r16 : r3;
+	r16 = r21 == 0 ? r16 : r1;
+	if(r20 ==0) //_LBB612_140
+{
+	heap32[(r17+12)] = 0;
+	heap32[(r17+13)] = 0;
+	f3 =                         0;
+	heap32[(r17+14)] = 0;
+	heap32[(r17+15)] = 0;
+	f6 = f3;
+	f8 = f3;
+}
+else{
+	f3 = heapFloat[(r23+17)];
+	f6 = heapFloat[(r22+19)];
+	f8 = heapFloat[(r24+18)];
+	f9 = f4*f8;
+	f10 = f2*f3;
+	f3 = f0*f3;
+	f11 = f4*f6;
+	f6 = f2*f6;
+	f8 = f0*f8;
+	f9 = f9-f10;
+	f3 = f3-f11;
+	f6 = f6-f8;
+	r21 = r20 >> 2;
+	f8 = heapFloat[(r21+64)];
+	f10 = heapFloat[(r21+65)];
+	f11 = heapFloat[(r21+68)];
+	f12 = heapFloat[(r21+69)];
+	f8 = f8*f6;
+	f10 = f10*f3;
+	f13 = heapFloat[(r21+66)];
+	f14 = heapFloat[(r21+72)];
+	f15 = heapFloat[(r21+73)];
+	f16 = heapFloat[(r21+70)];
+	f11 = f11*f6;
+	f12 = f12*f3;
+	f8 = f8+f10;
+	f10 = f13*f9;
+	f13 = heapFloat[(r21+74)];
+	f6 = f14*f6;
+	f3 = f15*f3;
+	f11 = f11+f12;
+	f12 = f16*f9;
+	f8 = f8+f10;
+	f10 = heapFloat[(r21+134)];
+	f14 = heapFloat[(r21+136)];
+	f15 = heapFloat[(r21+135)];
+	f11 = f11+f12;
+	f8 = f8*f10;
+	f3 = f6+f3;
+	f6 = f13*f9;
+	f3 = f3+f6;
+	f6 = f11*f15;
+	heapFloat[(r17+12)] = f8;
+	f3 = f3*f14;
+	heapFloat[(r17+13)] = f6;
+	heapFloat[(r17+14)] = f3;
+	heap32[(r17+15)] = 0;
+}
+	if(r16 ==0) //_LBB612_143
+{
+	heap32[(r17+16)] = 0;
+	heap32[(r17+17)] = 0;
+	f10 =                         0;
+	heap32[(r17+18)] = 0;
+	heap32[(r17+19)] = 0;
+	f11 = f10;
+	f9 = f10;
+}
+else{
+	f9 = heapFloat[(r24+18)];
+	f10 = heapFloat[(r23+17)];
+	f11 = heapFloat[(r22+19)];
+	f12 = f5*f11;
+	f13 = f1*f9;
+	r21 = r16 >> 2;
+	f12 = f12-f13;
+	f13 = f1*f10;
+	f11 = f7*f11;
+	f12 = -f12;
+	f14 = heapFloat[(r21+64)];
+	f11 = f13-f11;
+	f13 = heapFloat[(r21+65)];
+	f9 = f7*f9;
+	f10 = f5*f10;
+	f15 = heapFloat[(r21+68)];
+	f16 = heapFloat[(r21+69)];
+	f14 = f14*f12;
+	f13 = f13*f11;
+	f9 = f9-f10;
+	f10 = heapFloat[(r21+66)];
+	f17 = heapFloat[(r21+72)];
+	f18 = heapFloat[(r21+73)];
+	f19 = heapFloat[(r21+70)];
+	f15 = f15*f12;
+	f16 = f16*f11;
+	f13 = f14-f13;
+	f10 = f10*f9;
+	f14 = heapFloat[(r21+74)];
+	f12 = f17*f12;
+	f11 = f18*f11;
+	f15 = f15-f16;
+	f16 = f19*f9;
+	f10 = f13-f10;
+	f13 = heapFloat[(r21+134)];
+	f17 = heapFloat[(r21+136)];
+	f18 = heapFloat[(r21+135)];
+	f15 = f15-f16;
+	f10 = f10*f13;
+	f11 = f12-f11;
+	f9 = f14*f9;
+	f9 = f11-f9;
+	f11 = f15*f18;
+	heapFloat[(r17+16)] = f10;
+	f9 = f9*f17;
+	heapFloat[(r17+17)] = f11;
+	heapFloat[(r17+18)] = f9;
+	heap32[(r17+19)] = 0;
+}
+	if(r20 !=0) //_LBB612_146
+{
+	f12 = f6*f0;
+	f13 = f3*f2;
+	f3 = f3*f4;
+	f14 = f8*f0;
+	f15 = heapFloat[(r23+17)];
+	f12 = f12-f13;
+	f13 = heapFloat[(r24+18)];
+	f3 = f3-f14;
+	f8 = f8*f2;
+	f6 = f6*f4;
+	f12 = f15*f12;
+	f3 = f13*f3;
+	f13 = heapFloat[(r22+19)];
+	f6 = f8-f6;
+	r21 = r20 >> 2;
+	f3 = f12+f3;
+	f6 = f13*f6;
+	f8 = heapFloat[(r21+84)];
+	f3 = f3+f6;
+	f3 = f8+f3;
+}
+else{
+	f3 =                         0;
+}
+	if(r16 !=0) //_LBB612_149
+{
+	f6 = f5*f9;
+	f8 = f1*f11;
+	f12 = f1*f10;
+	f9 = f7*f9;
+	f13 = heapFloat[(r23+17)];
+	f6 = f6-f8;
+	f8 = heapFloat[(r24+18)];
+	f9 = f12-f9;
+	f11 = f7*f11;
+	f10 = f5*f10;
+	f6 = f13*f6;
+	f9 = f8*f9;
+	f8 = heapFloat[(r22+19)];
+	f10 = f11-f10;
+	r21 = r16 >> 2;
+	f9 = f6+f9;
+	f6 = f8*f10;
+	f8 = heapFloat[(r21+84)];
+	f9 = f9+f6;
+	f9 = f8+f9;
+}
+else{
+	f9 =                         0;
+}
+	f6 =                         1;
+	f3 = f3+f9;
+	f3 = f6/f3;
+	heapFloat[(r17+23)] = f3;
+	f3 = heapFloat[(r23+17)];
+	heapFloat[(r17+4)] = f3;
+	f8 = heapFloat[(r24+18)];
+	heapFloat[(r17+5)] = f8;
+	f9 = heapFloat[(r22+19)];
+	heapFloat[(r17+6)] = f9;
+	heap32[(r17+7)] = heap32[(r9+20)];
+	f10 = heapFloat[(r22+19)];
+	f11 = heapFloat[(r24+18)];
+	f12 = heapFloat[(r23+17)];
+	f13 = f2*f10;
+	f14 = f0*f11;
+	f15 = f0*f12;
+	f10 = f4*f10;
+	f13 = f13-f14;
+	f11 = f4*f11;
+	f12 = f2*f12;
+	f10 = f15-f10;
+	heapFloat[(r17)] = f13;
+	f11 = f11-f12;
+	heapFloat[(r17+1)] = f10;
+	heapFloat[(r17+2)] = f11;
+	heap32[(r17+3)] = 0;
+	f10 = heapFloat[(r24+18)];
+	f11 = heapFloat[(r22+19)];
+	f12 = heapFloat[(r23+17)];
+	f13 = f1*f10;
+	f14 = f5*f11;
+	f11 = f7*f11;
+	f15 = f1*f12;
+	f13 = f13-f14;
+	f12 = f5*f12;
+	f10 = f7*f10;
+	f11 = f11-f15;
+	heapFloat[(r17+8)] = f13;
+	f10 = f12-f10;
+	heapFloat[(r17+9)] = f11;
+	heapFloat[(r17+10)] = f10;
+	heap32[(r17+11)] = 0;
+	if(r20 !=0) //_LBB612_152
+{
+	r21 = r20 >> 2;
+	f10 = heapFloat[(r21+81)];
+	f11 = heapFloat[(r21+80)];
+	f12 = heapFloat[(r21+82)];
+	f13 = f11*f2;
+	f14 = f10*f4;
+	f4 = f12*f4;
+	f11 = f11*f0;
+	f0 = f10*f0;
+	f2 = f12*f2;
+	f10 = heapFloat[(r21+78)];
+	f12 = f13-f14;
+	f13 = heapFloat[(r21+77)];
+	f11 = f4-f11;
+	f14 = heapFloat[(r21+76)];
+	f0 = f0-f2;
+	f4 = f10+f12;
+	f2 = f13+f11;
+	f0 = f14+f0;
+}
+else{
+	f0 =                         0;
+	f2 = f0;
+	f4 = f0;
+}
+	if(r16 !=0) //_LBB612_155
+{
+	r21 = r16 >> 2;
+	f10 = heapFloat[(r21+81)];
+	f11 = heapFloat[(r21+80)];
+	f12 = heapFloat[(r21+82)];
+	f13 = f11*f5;
+	f14 = f10*f7;
+	f7 = f12*f7;
+	f11 = f11*f1;
+	f1 = f10*f1;
+	f5 = f12*f5;
+	f10 = heapFloat[(r21+78)];
+	f12 = f13-f14;
+	f13 = heapFloat[(r21+77)];
+	f11 = f7-f11;
+	f14 = heapFloat[(r21+76)];
+	f1 = f1-f5;
+	f7 = f10+f12;
+	f5 = f13+f11;
+	f1 = f14+f1;
+}
+else{
+	f1 =                         0;
+	f5 = f1;
+	f7 = f1;
+}
+	f0 = f0-f1;
+	f1 = f2-f5;
+	f2 = heapFloat[(r23+17)];
+	f5 = heapFloat[(r24+18)];
+	f4 = f4-f7;
+	f7 = heapFloat[(r22+19)];
+	f2 = f2*f0;
+	f5 = f5*f1;
+	f2 = f2+f5;
+	f5 = f7*f4;
+	f7 = heapFloat[(r9+21)];
+	f10 = heapFloat[(r6+13)];
+	f2 = f2+f5;
+	f5 = f7+f10;
+	heap32[(r17+22)] = heap32[(r9+22)];
+	r21 = heap32[(r9+37)];
+	r25 = heap32[(r6+16)];
+	if(r21 >r25) //_LBB612_159
+{
+__label__ = 151;
+}
+else{
+	f7 = heapFloat[(r9+23)];
+	f10 = -f2;
+	f7 = f7*f10;
+	f10 =                         0;
+	if(f7 <=f10) //_LBB612_159
+{
+__label__ = 151;
+}
+else{
+__label__ = 152;
+}
+}
+if (__label__ == 151){
+	f7 =                         0;
+}
+	r21 = heapU8[r5+60];
+	r21 = r21 & 4;
+	if(r21 ==0) //_LBB612_167
+{
+	heap32[(r17+21)] = 0;
+}
+else{
+	f10 = heapFloat[(r9+29)];
+	f11 = heapFloat[(r6+14)];
+	f10 = f10*f11;
+	heapFloat[(r17+21)] = f10;
+if(!(r20 ==0)) //_LBB612_164
+{
+	r21 = r20 >> 2;
+	f11 = heapFloat[(r21+84)];
+	f12 =                         0;
+if(!(f11 ==f12)) //_LBB612_164
+{
+	f3 = f3*f11;
+	f12 = heapFloat[(r21+85)];
+	f3 = f3*f12;
+	f3 = f3*f10;
+	f12 = heapFloat[(r21+126)];
+	f13 = heapFloat[(r21+86)];
+	f14 = heapFloat[(r21+87)];
+	f8 = f8*f11;
+	f3 = f12+f3;
+	f8 = f8*f13;
+	heapFloat[(r21+126)] = f3;
+	f3 = f8*f10;
+	f8 = heapFloat[(r21+127)];
+	f9 = f9*f11;
+	f3 = f8+f3;
+	f8 = f9*f14;
+	heapFloat[(r21+127)] = f3;
+	f3 = f8*f10;
+	f8 = heapFloat[(r21+128)];
+	f3 = f8+f3;
+	heapFloat[(r21+128)] = f3;
+	f3 = heapFloat[(r21+134)];
+	f3 = f3*f10;
+	f8 = heapFloat[(r17+12)];
+	f9 = heapFloat[(r21+136)];
+	f11 = heapFloat[(r21+135)];
+	f3 = f8*f3;
+	f8 = heapFloat[(r21+130)];
+	f12 = heapFloat[(r17+14)];
+	f13 = heapFloat[(r17+13)];
+	f3 = f8+f3;
+	f8 = f11*f10;
+	heapFloat[(r21+130)] = f3;
+	f3 = f13*f8;
+	f8 = heapFloat[(r21+131)];
+	f3 = f8+f3;
+	f8 = f9*f10;
+	heapFloat[(r21+131)] = f3;
+	f3 = f12*f8;
+	f8 = heapFloat[(r21+132)];
+	f3 = f8+f3;
+	heapFloat[(r21+132)] = f3;
+}
+}
+if(!(r16 ==0)) //_LBB612_168
+{
+	r21 = r16 >> 2;
+	f3 = heapFloat[(r21+84)];
+	f8 =                         0;
+if(!(f3 ==f8)) //_LBB612_168
+{
+	f8 = heapFloat[(r17+21)];
+	f8 = -f8;
+	f9 = heapFloat[(r17+4)];
+	f9 = f9*f3;
+	f10 = heapFloat[(r21+85)];
+	f9 = f9*f10;
+	f10 = heapFloat[(r17+5)];
+	f11 = heapFloat[(r17+6)];
+	f9 = f9*f8;
+	f12 = heapFloat[(r21+126)];
+	f13 = heapFloat[(r21+86)];
+	f14 = heapFloat[(r21+87)];
+	f15 = heapFloat[(r17+16)];
+	f16 = heapFloat[(r17+17)];
+	f17 = heapFloat[(r17+18)];
+	f10 = f10*f3;
+	f9 = f12+f9;
+	f10 = f10*f13;
+	heapFloat[(r21+126)] = f9;
+	f9 = f10*f8;
+	f10 = heapFloat[(r21+127)];
+	f3 = f11*f3;
+	f9 = f10+f9;
+	f3 = f3*f14;
+	heapFloat[(r21+127)] = f9;
+	f3 = f3*f8;
+	f9 = heapFloat[(r21+128)];
+	f3 = f9+f3;
+	heapFloat[(r21+128)] = f3;
+	f3 = heapFloat[(r21+134)];
+	f3 = f3*f8;
+	f9 = heapFloat[(r21+136)];
+	f10 = heapFloat[(r21+135)];
+	f11 = heapFloat[(r21+130)];
+	f3 = f3*f15;
+	f3 = f11-f3;
+	f10 = f10*f8;
+	heapFloat[(r21+130)] = f3;
+	f3 = f10*f16;
+	f10 = heapFloat[(r21+131)];
+	f3 = f10-f3;
+	f8 = f9*f8;
+	heapFloat[(r21+131)] = f3;
+	f3 = f8*f17;
+	f8 = heapFloat[(r21+132)];
+	f3 = f8-f3;
+	heapFloat[(r21+132)] = f3;
+}
+}
+}
+	heap32[(r17+20)] = 0;
+	if(r20 !=0) //_LBB612_170
+{
+	r21 = r20 >> 2;
+	f9 = heapFloat[(r21+76)];
+	f8 = heapFloat[(r21+77)];
+	f3 = heapFloat[(r21+78)];
+}
+else{
+	f3 =                         0;
+	f8 = f3;
+	f9 = f3;
+}
+	f10 = heapFloat[(r17+4)];
+	f11 = heapFloat[(r17+5)];
+	f12 = heapFloat[(r17+6)];
+	f9 = f10*f9;
+	f8 = f11*f8;
+	f8 = f9+f8;
+	f3 = f12*f3;
+	f3 = f8+f3;
+	if(r20 !=0) //_LBB612_173
+{
+	r20 = r20 >> 2;
+	f13 = heapFloat[(r20+80)];
+	f9 = heapFloat[(r20+81)];
+	f8 = heapFloat[(r20+82)];
+}
+else{
+	f8 =                         0;
+	f9 = f8;
+	f13 = f8;
+}
+	f14 = heapFloat[(r17)];
+	f15 = heapFloat[(r17+1)];
+	f13 = f14*f13;
+	f9 = f15*f9;
+	f14 = heapFloat[(r17+2)];
+	f9 = f13+f9;
+	f8 = f14*f8;
+	f8 = f9+f8;
+	f3 = f3+f8;
+	if(r16 !=0) //_LBB612_176
+{
+	r20 = r16 >> 2;
+	f13 = heapFloat[(r20+80)];
+	f9 = heapFloat[(r20+81)];
+	f8 = heapFloat[(r20+82)];
+}
+else{
+	f8 =                         0;
+	f9 = f8;
+	f13 = f8;
+}
+	f14 = heapFloat[(r17+8)];
+	f15 = heapFloat[(r17+9)];
+	f13 = f14*f13;
+	f9 = f15*f9;
+	f14 = heapFloat[(r17+10)];
+	f9 = f13+f9;
+	f8 = f14*f8;
+	f8 = f9+f8;
+	if(r16 !=0) //_LBB612_179
+{
+	r16 = r16 >> 2;
+	f14 = heapFloat[(r16+76)];
+	f13 = heapFloat[(r16+77)];
+	f9 = heapFloat[(r16+78)];
+}
+else{
+	f9 =                         0;
+	f13 = f9;
+	f14 = f9;
+}
+	f10 = f10*f14;
+	f11 = f11*f13;
+	f10 = f10+f11;
+	f9 = f12*f9;
+	f9 = f10+f9;
+	f10 = heapFloat[(r6+8)];
+	f11 = -f5;
+	f8 = f8-f9;
+	f9 = f10*f11;
+	f10 = heapFloat[(r6+3)];
+	f3 = f3+f8;
+	f8 = f9/f10;
+	f9 = heapFloat[(r17+23)];
+	f3 = f7-f3;
+	f7 = f9*f8;
+	f3 = f9*f3;
+	r16 = heap32[(r6+11)];
+	if(r16 ==0) //_LBB612_182
+{
+__label__ = 174;
+}
+else{
+	f8 = heapFloat[(r6+12)];
+	if(f8 >=f5) //_LBB612_183
+{
+	heapFloat[(r17+29)] = f3;
+	heapFloat[(r17+33)] = f7;
+__label__ = 176;
+}
+else{
+__label__ = 174;
+}
+}
+if (__label__ == 174){
+	f3 = f7+f3;
+	heapFloat[(r17+29)] = f3;
+	heap32[(r17+33)] = 0;
+}
+	heap32[(r17+30)] = 0;
+	heap32[(r17+31)] = 0;
+	heap32[(r17+32)] = 1343554297;
+	r16 = heap32[(r2+12)];
+	heap32[(r17+25)] = r16;
+	r16 = heapU8[r5+60];
+	r16 = r16 & 32;
+	if(r16 ==0) //_LBB612_186
+{
+__label__ = 178;
+}
+else{
+	r16 = heapU8[r8+120];
+	if(r16 !=0) //_LBB612_200
+{
+	r16 = r8 >> 2;
+	f0 = heapFloat[(r9+35)];
+	f1 = heapFloat[(r16+33)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r12;
+	heap32[(g0+2)] = r14;
+	heap32[(g0+3)] = r10;
+	heap32[(g0+4)] = r19;
+	heap32[(g0+5)] = r18;
+	heap32[(g0+6)] = r3;
+	heap32[(g0+7)] = r1;
+	heap32[(g0+8)] = 1065353216;
+	heapFloat[(g0+9)] = f1;
+	heapFloat[(g0+10)] = f0;
+	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
+	r12 = heapU8[r5+60];
+	r12 = r12 & 16;
+	if(r12 ==0) //_LBB612_202
+{
+__label__ = 194;
+}
+else{
+	r12 = r8 >> 2;
+	r8 = r8 >> 2;
+	f0 = heapFloat[(r12+36)];
+	f1 = heapFloat[(r8+34)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r14;
+	heap32[(g0+3)] = r10;
+	heap32[(g0+4)] = r19;
+	heap32[(g0+5)] = r18;
+	heap32[(g0+6)] = r3;
+	heap32[(g0+7)] = r1;
+	heap32[(g0+8)] = 1065353216;
+	heapFloat[(g0+9)] = f1;
+	heapFloat[(g0+10)] = f0;
+	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
+__label__ = 194;
+}
+}
+else{
+__label__ = 178;
+}
+}
+_259: do {
+if (__label__ == 178){
+	f3 = heapFloat[(r23+17)];
+	f5 = heapFloat[(r22+19)];
+	f7 = heapFloat[(r24+18)];
+	f8 = f3*f2;
+	f0 = f0-f8;
+	f8 = f7*f2;
+	r16 = r8 >> 2;
+	f1 = f1-f8;
+	f2 = f5*f2;
+	r20 = r8 >> 2;
+	heapFloat[(r16+38)] = f0;
+	f2 = f4-f2;
+	r21 = r8 >> 2;
+	heapFloat[(r20+39)] = f1;
+	r25 = r8 >> 2;
+	heapFloat[(r21+40)] = f2;
+	heap32[(r25+41)] = 0;
+	r25 = heapU8[r5+60];
+	r25 = r25 & 64;
+if(!(r25 !=0)) //_LBB612_191
+{
+	f0 = f0*f0;
+	f1 = f1*f1;
+	f0 = f0+f1;
+	f1 = f2*f2;
+	f0 = f0+f1;
+	f1 =   1.1920928955078125e-007;
+if(!(f0 <=f1)) //_LBB612_191
+{
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f3 = f6/f_g0;
+	f5 = heapFloat[(r16+38)];
+	f5 = f5*f3;
+	heapFloat[(r16+38)] = f5;
+	f7 = heapFloat[(r20+39)];
+	f7 = f7*f3;
+	heapFloat[(r20+39)] = f7;
+	f0 = heapFloat[(r21+40)];
+	f3 = f0*f3;
+	heapFloat[(r21+40)] = f3;
+	r16 = heapU8[r5+60];
+	r16 = r16 & 16;
+if(!(r16 ==0)) //_LBB612_190
+{
+	f0 = heapFloat[(r22+19)];
+	f1 = heapFloat[(r24+18)];
+	f2 = heapFloat[(r23+17)];
+	f4 = f7*f0;
+	f8 = f3*f1;
+	f4 = f4-f8;
+	f3 = f3*f2;
+	f0 = f5*f0;
+	r16 = r8 >> 2;
+	f3 = f3-f0;
+	f5 = f5*f1;
+	f7 = f7*f2;
+	r20 = r8 >> 2;
+	heapFloat[(r16+42)] = f4;
+	f5 = f5-f7;
+	r21 = r8 >> 2;
+	heapFloat[(r20+43)] = f3;
+	f7 = f4*f4;
+	f3 = f3*f3;
+	r22 = r8 >> 2;
+	heapFloat[(r21+44)] = f5;
+	heap32[(r22+45)] = 0;
+	f3 = f7+f3;
+	f5 = f5*f5;
+	f3 = f3+f5;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	f3 = f6/f_g0;
+	f5 = heapFloat[(r16+42)];
+	f5 = f5*f3;
+	heapFloat[(r16+42)] = f5;
+	f5 = heapFloat[(r20+43)];
+	f5 = f5*f3;
+	heapFloat[(r20+43)] = f5;
+	f5 = heapFloat[(r21+44)];
+	f3 = f5*f3;
+	heapFloat[(r21+44)] = f3;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r11;
+	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r11;
+	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r14;
+	heap32[(g0+3)] = r10;
+	heap32[(g0+4)] = r19;
+	heap32[(g0+5)] = r18;
+	heap32[(g0+6)] = r3;
+	heap32[(g0+7)] = r1;
+	heap32[(g0+8)] = 1065353216;
+	heap32[(g0+9)] = 0;
+	heap32[(g0+10)] = 0;
+	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
+}
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r12;
+	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r12;
+	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r12;
+	heap32[(g0+2)] = r14;
+	heap32[(g0+3)] = r10;
+	heap32[(g0+4)] = r19;
+	heap32[(g0+5)] = r18;
+	heap32[(g0+6)] = r3;
+	heap32[(g0+7)] = r1;
+	heap32[(g0+8)] = 1065353216;
+	heap32[(g0+9)] = 0;
+	heap32[(g0+10)] = 0;
+	r10 = 1;
+	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
+	heap8[r8+120] = r10;
+break _259;
+}
+}
+	f0 =                         0;
+	if(f5 <f0) //_LBB612_193
+{
+	f0 = -f5;
+}
+else{
+	f0 = f5;
+}
+	f1 =       0.70710676908493042;
+	if(f0 <=f1) //_LBB612_196
+{
+	f3 = f3*f3;
+	f0 = f7*f7;
+	f3 = f3+f0;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	f1 = heapFloat[(r24+18)];
+	f0 = f6/f_g0;
+	f1 = -f1;
+	f1 = f0*f1;
+	heapFloat[(r16+38)] = f1;
+	f2 = heapFloat[(r23+17)];
+	f2 = f2*f0;
+	heapFloat[(r20+39)] = f2;
+	heap32[(r21+40)] = 0;
+	f4 = heapFloat[(r22+19)];
+	f5 = -f4;
+	r16 = r8 >> 2;
+	f2 = f2*f5;
+	f3 = f3*f0;
+	r20 = r8 >> 2;
+	f0 = f4*f1;
+	heapFloat[(r16+42)] = f2;
+	heapFloat[(r20+43)] = f0;
+}
+else{
+	f3 = f7*f7;
+	f7 = f5*f5;
+	f3 = f3+f7;
+	heapFloat[(g0)] = f3;
+	sqrtf(i7);
+	heap32[(r16+38)] = 0;
+	f0 = heapFloat[(r22+19)];
+	f6 = f6/f_g0;
+	f7 = -f0;
+	f7 = f6*f7;
+	heapFloat[(r20+39)] = f7;
+	f0 = heapFloat[(r24+18)];
+	f0 = f0*f6;
+	r16 = r8 >> 2;
+	f3 = f3*f6;
+	heapFloat[(r21+40)] = f0;
+	heapFloat[(r16+42)] = f3;
+	f3 = heapFloat[(r23+17)];
+	f6 = -f3;
+	f3 = f3*f7;
+	r16 = r8 >> 2;
+	f6 = f0*f6;
+	heapFloat[(r16+43)] = f6;
+}
+	r16 = r8 >> 2;
+	heapFloat[(r16+44)] = f3;
+	r16 = heapU8[r5+60];
+	r16 = r16 & 16;
+if(!(r16 ==0)) //_LBB612_199
+{
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r11;
+	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r11;
+	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r14;
+	heap32[(g0+3)] = r10;
+	heap32[(g0+4)] = r19;
+	heap32[(g0+5)] = r18;
+	heap32[(g0+6)] = r3;
+	heap32[(g0+7)] = r1;
+	heap32[(g0+8)] = 1065353216;
+	heap32[(g0+9)] = 0;
+	heap32[(g0+10)] = 0;
+	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
+}
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r12;
+	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r12;
+	_Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7);
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r12;
+	heap32[(g0+2)] = r14;
+	heap32[(g0+3)] = r10;
+	heap32[(g0+4)] = r19;
+	heap32[(g0+5)] = r18;
+	heap32[(g0+6)] = r3;
+	heap32[(g0+7)] = r1;
+	heap32[(g0+8)] = 1065353216;
+	heap32[(g0+9)] = 0;
+	heap32[(g0+10)] = 0;
+	r10 = 1;
+	_ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7);
+	heap8[r8+120] = r10;
+}
+} while(0);
+	r8 = heap32[(r6+15)];
+	r10 = heap32[(r17+25)];
+	r11 = heap32[(r2+14)];
+	r12 = r8 & 8;
+	if(r12 ==0) //_LBB612_220
+{
+	r8 = (r10 * 136)|0;
+	r8 = (r11 + r8)|0;
+	r8 = r8 >> 2;
+	heap32[(r8+21)] = 0;
+	r8 = heapU8[r5+60];
+	r8 = r8 & 16;
+	if(r8 ==0) //_LBB612_222
+{
+break _153;
+}
+else{
+	r8 = heap32[(r17+25)];
+	r9 = heap32[(r2+14)];
+	r8 = (r8 * 136)|0;
+	r8 = (r8 + r9)|0;
+	r8 = r8 >> 2;
+	heap32[(r8+55)] = 0;
+}
+}
+else{
+	r8 = r8 & 4;
+	if(r8 ==0) //_LBB612_210
+{
+	r10 = (r10 * 136)|0;
+	r10 = (r11 + r10)|0;
+	r10 = r10 >> 2;
+	heap32[(r10+21)] = 0;
+}
+else{
+	r10 = (r10 * 136)|0;
+	r10 = (r11 + r10)|0;
+	f0 = heapFloat[(r9+31)];
+	f1 = heapFloat[(r6+14)];
+	f0 = f0*f1;
+	r10 = r10 >> 2;
+	heapFloat[(r10+21)] = f0;
+if(!(r13 ==0)) //_LBB612_207
+{
+	r11 = r13 >> 2;
+	f1 = heapFloat[(r11+84)];
+	f2 =                         0;
+if(!(f1 ==f2)) //_LBB612_207
+{
+	f2 = heapFloat[(r10+4)];
+	f2 = f2*f1;
+	f3 = heapFloat[(r11+85)];
+	f2 = f2*f3;
+	f3 = heapFloat[(r10+5)];
+	f4 = heapFloat[(r10+6)];
+	f2 = f2*f0;
+	f5 = heapFloat[(r11+126)];
+	f6 = heapFloat[(r11+86)];
+	f7 = heapFloat[(r11+87)];
+	f3 = f3*f1;
+	f2 = f5+f2;
+	f3 = f3*f6;
+	heapFloat[(r11+126)] = f2;
+	f2 = f3*f0;
+	f3 = heapFloat[(r11+127)];
+	f1 = f4*f1;
+	f2 = f3+f2;
+	f1 = f1*f7;
+	heapFloat[(r11+127)] = f2;
+	f1 = f1*f0;
+	f2 = heapFloat[(r11+128)];
+	f1 = f2+f1;
+	heapFloat[(r11+128)] = f1;
+	f1 = heapFloat[(r11+134)];
+	f1 = f1*f0;
+	f2 = heapFloat[(r10+12)];
+	f3 = heapFloat[(r11+136)];
+	f4 = heapFloat[(r11+135)];
+	f1 = f2*f1;
+	f2 = heapFloat[(r11+130)];
+	f5 = heapFloat[(r10+14)];
+	f6 = heapFloat[(r10+13)];
+	f1 = f2+f1;
+	f2 = f4*f0;
+	heapFloat[(r11+130)] = f1;
+	f1 = f6*f2;
+	f2 = heapFloat[(r11+131)];
+	f1 = f2+f1;
+	f0 = f3*f0;
+	heapFloat[(r11+131)] = f1;
+	f0 = f5*f0;
+	f1 = heapFloat[(r11+132)];
+	f0 = f1+f0;
+	heapFloat[(r11+132)] = f0;
+}
+}
+if(!(r15 ==0)) //_LBB612_211
+{
+	r11 = r15 >> 2;
+	f0 = heapFloat[(r11+84)];
+	f1 =                         0;
+if(!(f0 ==f1)) //_LBB612_211
+{
+	f1 = heapFloat[(r10+21)];
+	f1 = -f1;
+	f2 = heapFloat[(r10+4)];
+	f2 = f2*f0;
+	f3 = heapFloat[(r11+85)];
+	f2 = f2*f3;
+	f3 = heapFloat[(r10+5)];
+	f4 = heapFloat[(r10+6)];
+	f2 = f2*f1;
+	f5 = heapFloat[(r11+126)];
+	f6 = heapFloat[(r11+86)];
+	f7 = heapFloat[(r11+87)];
+	f8 = heapFloat[(r10+16)];
+	f9 = heapFloat[(r10+17)];
+	f10 = heapFloat[(r10+18)];
+	f3 = f3*f0;
+	f2 = f5+f2;
+	f3 = f3*f6;
+	heapFloat[(r11+126)] = f2;
+	f2 = f3*f1;
+	f3 = heapFloat[(r11+127)];
+	f0 = f4*f0;
+	f2 = f3+f2;
+	f0 = f0*f7;
+	heapFloat[(r11+127)] = f2;
+	f0 = f0*f1;
+	f2 = heapFloat[(r11+128)];
+	f0 = f2+f0;
+	heapFloat[(r11+128)] = f0;
+	f0 = heapFloat[(r11+134)];
+	f0 = f0*f1;
+	f2 = heapFloat[(r11+136)];
+	f3 = heapFloat[(r11+135)];
+	f4 = heapFloat[(r11+130)];
+	f0 = f0*f8;
+	f0 = f4-f0;
+	f3 = f3*f1;
+	heapFloat[(r11+130)] = f0;
+	f0 = f3*f9;
+	f3 = heapFloat[(r11+131)];
+	f0 = f3-f0;
+	f1 = f2*f1;
+	heapFloat[(r11+131)] = f0;
+	f0 = f1*f10;
+	f1 = heapFloat[(r11+132)];
+	f0 = f1-f0;
+	heapFloat[(r11+132)] = f0;
+}
+}
+}
+	r10 = heap32[(r6+15)];
+	r11 = r10 & 16;
+if(!(r11 ==0)) //_LBB612_222
+{
+	r11 = heap32[(r17+25)];
+	r17 = heap32[(r2+14)];
+	r10 = r10 & 4;
+	if(r10 ==0) //_LBB612_219
+{
+	r10 = (r11 * 136)|0;
+	r10 = (r17 + r10)|0;
+	r10 = r10 >> 2;
+	heap32[(r10+55)] = 0;
+}
+else{
+	r11 = (r11 * 136)|0;
+	r11 = (r17 + r11)|0;
+	f0 = heapFloat[(r9+32)];
+	f1 = heapFloat[(r6+14)];
+	f0 = f0*f1;
+	r11 = r11 >> 2;
+	heapFloat[(r11+55)] = f0;
+if(!(r13 ==0)) //_LBB612_216
+{
+	r17 = r13 >> 2;
+	f1 = heapFloat[(r17+84)];
+	f2 =                         0;
+if(!(f1 ==f2)) //_LBB612_216
+{
+	f2 = heapFloat[(r11+38)];
+	f2 = f2*f1;
+	f3 = heapFloat[(r11+39)];
+	f4 = heapFloat[(r11+40)];
+	f5 = heapFloat[(r17+126)];
+	f2 = f2*f0;
+	f2 = f5+f2;
+	f3 = f3*f1;
+	heapFloat[(r17+126)] = f2;
+	f2 = f3*f0;
+	f3 = heapFloat[(r17+127)];
+	f2 = f3+f2;
+	f1 = f4*f1;
+	heapFloat[(r17+127)] = f2;
+	f1 = f1*f0;
+	f2 = heapFloat[(r17+128)];
+	f1 = f2+f1;
+	heapFloat[(r17+128)] = f1;
+	f1 = heapFloat[(r17+134)];
+	f1 = f1*f0;
+	f2 = heapFloat[(r11+46)];
+	f3 = heapFloat[(r17+136)];
+	f4 = heapFloat[(r17+135)];
+	f1 = f2*f1;
+	f2 = heapFloat[(r17+130)];
+	f5 = heapFloat[(r11+48)];
+	f6 = heapFloat[(r11+47)];
+	f1 = f2+f1;
+	f2 = f4*f0;
+	heapFloat[(r17+130)] = f1;
+	f1 = f6*f2;
+	f2 = heapFloat[(r17+131)];
+	f1 = f2+f1;
+	f0 = f3*f0;
+	heapFloat[(r17+131)] = f1;
+	f0 = f5*f0;
+	f1 = heapFloat[(r17+132)];
+	f0 = f1+f0;
+	heapFloat[(r17+132)] = f0;
+}
+}
+if(!(r15 ==0)) //_LBB612_222
+{
+	r17 = r15 >> 2;
+	f0 = heapFloat[(r17+84)];
+	f1 =                         0;
+if(!(f0 ==f1)) //_LBB612_222
+{
+	f1 = heapFloat[(r11+55)];
+	f1 = -f1;
+	f2 = heapFloat[(r11+38)];
+	f2 = f2*f0;
+	f3 = heapFloat[(r11+39)];
+	f4 = heapFloat[(r11+40)];
+	f2 = f2*f1;
+	f5 = heapFloat[(r17+126)];
+	f6 = heapFloat[(r11+50)];
+	f7 = heapFloat[(r11+51)];
+	f8 = heapFloat[(r11+52)];
+	f2 = f5+f2;
+	f3 = f3*f0;
+	heapFloat[(r17+126)] = f2;
+	f2 = f3*f1;
+	f3 = heapFloat[(r17+127)];
+	f2 = f3+f2;
+	f0 = f4*f0;
+	heapFloat[(r17+127)] = f2;
+	f0 = f0*f1;
+	f2 = heapFloat[(r17+128)];
+	f0 = f2+f0;
+	heapFloat[(r17+128)] = f0;
+	f0 = heapFloat[(r17+134)];
+	f0 = f0*f1;
+	f2 = heapFloat[(r17+136)];
+	f3 = heapFloat[(r17+135)];
+	f4 = heapFloat[(r17+130)];
+	f0 = f0*f6;
+	f0 = f4-f0;
+	f3 = f3*f1;
+	heapFloat[(r17+130)] = f0;
+	f0 = f3*f7;
+	f3 = heapFloat[(r17+131)];
+	f0 = f3-f0;
+	f1 = f2*f1;
+	heapFloat[(r17+131)] = f0;
+	f0 = f1*f8;
+	f1 = heapFloat[(r17+132)];
+	f0 = f1-f0;
+	heapFloat[(r17+132)] = f0;
+}
+}
+}
+}
+}
+}
+} while(0);
+	r7 = (r7 + 1)|0;
+	r4 = (r4 + 276)|0;
+}
+else{
+break _150;
+}
+}
+}
+	r1 = heap32[(fp+-133)];
+	r1 = (r1 + -1)|0;
+	heap32[(fp+-133)] = r1;
+	r3 = heap32[(fp+-132)];
+	r3 = (r3 + 4)|0;
+	heap32[(fp+-132)] = r3;
+if(!(r1 !=0)) //_LBB612_97
+{
+break _132;
+}
+}
+}
+} while(0);
+	r1 = heap32[(r2+17)];
+	r3 = heap32[(r2+2)];
+	r4 = heap32[(r2+12)];
+_307: do {
+if(!(r1 >r3)) //_LBB612_244
+{
+if(!(r1 >=r3)) //_LBB612_244
+{
+	r5 = heap32[(r2+18)];
+if(!(r5 >=r3)) //_LBB612_243
+{
+	if(r3 !=0) //_LBB612_230
+{
+	r5 = gNumAlignedAllocs;
+	r5 = r5 >> 2;
+	r6 = heap32[(r5)];
+	r7 = r3 << 2;
+	r6 = (r6 + 1)|0;
+	r7 = r7 | 3;
+	heap32[(r5)] = r6;
+	r5 = (r7 + 16)|0;
+	heap32[(g0)] = r5;
+	malloc(i7);
+	r5 = r_g0;
+	if(r5 !=0) //_LBB612_232
+{
+	r6 = 0;
+	r7 = (r5 + 4)|0;
+	r6 = (r6 - r7)|0;
+	r6 = r6 & 15;
+	r6 = (r5 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r5;
+	r5 = r7;
+}
+}
+else{
+	r5 = 0;
+}
+	r6 = (r0 + 76)|0;
+	if(r1 <1) //_LBB612_235
+{
+	r7 = r6 >> 2;
+	r8 = heap32[(r7)];
+}
+else{
+	r7 = 0;
+_320: while(true){
+	r8 = r6 >> 2;
+	r8 = heap32[(r8)];
+	r9 = r7 << 2;
+	r10 = (r8 + r9)|0;
+	r10 = r10 >> 2;
+	r9 = (r5 + r9)|0;
+	r10 = heap32[(r10)];
+	r7 = (r7 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r10;
+if(!(r1 !=r7)) //_LBB612_236
+{
+break _320;
+}
+}
+	r6 = (r0 + 76)|0;
+}
+if(!(r8 ==0)) //_LBB612_242
+{
+	r7 = heapU8[r0+80];
+if(!(r7 ==0)) //_LBB612_241
+{
+	r7 = gNumAlignedFree;
+	r7 = r7 >> 2;
+	r9 = heap32[(r7)];
+	r9 = (r9 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r7)] = r9;
+	r7 = heap32[(r8+-1)];
+	heap32[(g0)] = r7;
+	free(i7);
+}
+	r7 = r6 >> 2;
+	heap32[(r7)] = 0;
+}
+	r7 = 1;
+	r6 = r6 >> 2;
+	heap8[r0+80] = r7;
+	heap32[(r6)] = r5;
+	heap32[(r2+18)] = r3;
+	if(r1 >=r3) //_LBB612_244
+{
+break _307;
+}
+}
+_330: while(true){
+	r5 = r1 << 2;
+	r6 = heap32[(r2+19)];
+	r5 = (r6 + r5)|0;
+	r1 = (r1 + 1)|0;
+	r5 = r5 >> 2;
+	heap32[(r5)] = 0;
+if(!(r3 !=r1)) //_LBB612_243
+{
+break _307;
+}
+}
+}
+}
+} while(0);
+	heap32[(r2+17)] = r3;
+	r1 = heap32[(r2+22)];
+_333: do {
+if(!(r1 >r4)) //_LBB612_263
+{
+if(!(r1 >=r4)) //_LBB612_263
+{
+	r5 = heap32[(r2+23)];
+if(!(r5 >=r4)) //_LBB612_262
+{
+	if(r4 !=0) //_LBB612_249
+{
+	r5 = gNumAlignedAllocs;
+	r5 = r5 >> 2;
+	r6 = heap32[(r5)];
+	r7 = r4 << 2;
+	r6 = (r6 + 1)|0;
+	r7 = r7 | 3;
+	heap32[(r5)] = r6;
+	r5 = (r7 + 16)|0;
+	heap32[(g0)] = r5;
+	malloc(i7);
+	r5 = r_g0;
+	if(r5 !=0) //_LBB612_251
+{
+	r6 = 0;
+	r7 = (r5 + 4)|0;
+	r6 = (r6 - r7)|0;
+	r6 = r6 & 15;
+	r6 = (r5 + r6)|0;
+	r7 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r5;
+	r5 = r7;
+}
+}
+else{
+	r5 = 0;
+}
+	r6 = (r0 + 96)|0;
+	if(r1 <1) //_LBB612_254
+{
+	r7 = r6 >> 2;
+	r8 = heap32[(r7)];
+}
+else{
+	r7 = 0;
+_346: while(true){
+	r8 = r6 >> 2;
+	r8 = heap32[(r8)];
+	r9 = r7 << 2;
+	r10 = (r8 + r9)|0;
+	r10 = r10 >> 2;
+	r9 = (r5 + r9)|0;
+	r10 = heap32[(r10)];
+	r7 = (r7 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r10;
+if(!(r1 !=r7)) //_LBB612_255
+{
+break _346;
+}
+}
+	r6 = (r0 + 96)|0;
+}
+if(!(r8 ==0)) //_LBB612_261
+{
+	r7 = heapU8[r0+100];
+if(!(r7 ==0)) //_LBB612_260
+{
+	r7 = gNumAlignedFree;
+	r7 = r7 >> 2;
+	r9 = heap32[(r7)];
+	r9 = (r9 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r7)] = r9;
+	r7 = heap32[(r8+-1)];
+	heap32[(g0)] = r7;
+	free(i7);
+}
+	r7 = r6 >> 2;
+	heap32[(r7)] = 0;
+}
+	r7 = 1;
+	r6 = r6 >> 2;
+	heap8[r0+100] = r7;
+	heap32[(r6)] = r5;
+	heap32[(r2+23)] = r4;
+	if(r1 >=r4) //_LBB612_263
+{
+break _333;
+}
+}
+_356: while(true){
+	r0 = r1 << 2;
+	r5 = heap32[(r2+24)];
+	r0 = (r5 + r0)|0;
+	r1 = (r1 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+if(!(r4 !=r1)) //_LBB612_262
+{
+break _333;
+}
+}
+}
+}
+} while(0);
+	heap32[(r2+22)] = r4;
+_359: do {
+if(!(r3 <1)) //_LBB612_266
+{
+	r0 = 0;
+_361: while(true){
+	r1 = r0 << 2;
+	r5 = heap32[(r2+19)];
+	r1 = (r5 + r1)|0;
+	r5 = (r0 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r1)] = r0;
+	r0 = r5;
+if(!(r3 !=r5)) //_LBB612_265
+{
+break _359;
+}
+}
+}
+} while(0);
+	if(r4 <1) //_LBB612_269
+{
+break _1;
+}
+else{
+	r0 = 0;
+_365: while(true){
+	r1 = r0 << 2;
+	r3 = heap32[(r2+24)];
+	r1 = (r3 + r1)|0;
+	r3 = (r0 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r1)] = r0;
+	r0 = r3;
+if(!(r4 !=r3)) //_LBB612_268
+{
+break _1;
+}
+}
+}
+break;
+case 78:
+	r8 = _2E_str1157;
+	r0 = _2E_str652;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 813;
+	_assert(i7);
+break;
+}
+}
+} while(0);
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_369: do {
+if(!(r3 !=0)) //_LBB612_275
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB612_272
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB612_275
+{
+break _369;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	f0 =                         0;
+	f_g0 = f0;
+	return;
+}
+
+function _ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = _2E_str854;
+	r1 = heap32[(fp+7)];
+	heap32[(g0)] = r0;
+	r0 = heap32[(fp)];
+	r2 = heap32[(fp+5)];
+	r3 = heap32[(fp+6)];
+	r4 = r1 >> 2;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r5 = heap32[(r4+5)];
+if(!(r5 <1)) //_LBB613_64
+{
+	r5 = 0;
+_3: while(true){
+	r6 = r0 >> 2;
+	r7 = heap32[(r4+15)];
+	r8 = r7 & 1;
+	if(r8 != 0) //_LBB613_4
+{
+	r8 = r5 & 7;
+if(!(r8 !=0)) //_LBB613_3
+{
+	r7 = heap32[(r6+2)];
+	r8 = heap32[(r6+12)];
+if(!(r7 <1)) //_LBB613_19
+{
+	r9 = 0;
+	r7 = (r9 - r7)|0;
+	r9 = 1;
+_10: while(true){
+	r10 = heap32[(r6+19)];
+	r11 = r9 << 2;
+	r11 = (r10 + r11)|0;
+	r11 = r11 >> 2;
+	r12 = heap32[(r6+31)];
+	r13 = heap32[(r11+-1)];
+	r12 = (r12 * 1664525)|0;
+	r12 = (r12 + 1013904223)|0;
+	heap32[(r6+31)] = r12;
+	if(uint(r9) <uint(65537)) //_LBB613_9
+{
+	r14 = r12 >>> 16;
+	r12 = r14 ^ r12;
+	if(uint(r9) <uint(257)) //_LBB613_11
+{
+	r14 = r12 >>> 8;
+	r12 = r14 ^ r12;
+	if(uint(r9) <uint(17)) //_LBB613_13
+{
+	r14 = r12 >>> 4;
+	r12 = r14 ^ r12;
+	if(uint(r9) <uint(5)) //_LBB613_15
+{
+	r14 = r12 >>> 2;
+	r12 = r14 ^ r12;
+	if(uint(r9) <uint(3)) //_LBB613_17
+{
+	r14 = r12 >>> 1;
+	r12 = r14 ^ r12;
+}
+}
+}
+}
+}
+	r12 = Math.floor(uint(r12) % uint(r9));
+	r12 = r12 << 2;
+	r10 = (r10 + r12)|0;
+	r10 = r10 >> 2;
+	r10 = heap32[(r10)];
+	heap32[(r11+-1)] = r10;
+	r10 = heap32[(r6+19)];
+	r10 = (r10 + r12)|0;
+	r9 = (r9 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r13;
+	r10 = (r7 + r9)|0;
+if(!(r10 !=1)) //_LBB613_7
+{
+break _10;
+}
+}
+}
+_20: do {
+if(!(r8 <1)) //_LBB613_33
+{
+	r7 = 0;
+	r7 = (r7 - r8)|0;
+	r8 = 1;
+_22: while(true){
+	r9 = heap32[(r6+24)];
+	r10 = r8 << 2;
+	r10 = (r9 + r10)|0;
+	r10 = r10 >> 2;
+	r11 = heap32[(r6+31)];
+	r12 = heap32[(r10+-1)];
+	r11 = (r11 * 1664525)|0;
+	r11 = (r11 + 1013904223)|0;
+	heap32[(r6+31)] = r11;
+	if(uint(r8) <uint(65537)) //_LBB613_23
+{
+	r13 = r11 >>> 16;
+	r11 = r13 ^ r11;
+	if(uint(r8) <uint(257)) //_LBB613_25
+{
+	r13 = r11 >>> 8;
+	r11 = r13 ^ r11;
+	if(uint(r8) <uint(17)) //_LBB613_27
+{
+	r13 = r11 >>> 4;
+	r11 = r13 ^ r11;
+	if(uint(r8) <uint(5)) //_LBB613_29
+{
+	r13 = r11 >>> 2;
+	r11 = r13 ^ r11;
+	if(uint(r8) <uint(3)) //_LBB613_31
+{
+	r13 = r11 >>> 1;
+	r11 = r13 ^ r11;
+}
+}
+}
+}
+}
+	r11 = Math.floor(uint(r11) % uint(r8));
+	r11 = r11 << 2;
+	r9 = (r9 + r11)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+	heap32[(r10+-1)] = r9;
+	r9 = heap32[(r6+24)];
+	r9 = (r9 + r11)|0;
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r12;
+	r9 = (r7 + r8)|0;
+if(!(r9 !=1)) //_LBB613_21
+{
+break _20;
+}
+}
+}
+} while(0);
+	r7 = heap32[(r4+15)];
+}
+}
+	r8 = heap32[(r6+7)];
+	r7 = r7 & 256;
+_33: do {
+	if(r7 !=0) //_LBB613_37
+{
+_35: do {
+if(!(r8 <1)) //_LBB613_40
+{
+	r7 = 0;
+	r8 = r7;
+_37: while(true){
+	r9 = (r8 * 34)|0;
+	r10 = heap32[(r6+9)];
+	r9 = r9 << 2;
+	r9 = (r10 + r9)|0;
+	r9 = r9 >> 2;
+	r11 = heap32[(r9+27)];
+	r9 = heap32[(r9+26)];
+	r10 = (r10 + r7)|0;
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r10;
+	r8 = (r8 + 1)|0;
+	r7 = (r7 + 136)|0;
+	_ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7);
+	r9 = heap32[(r6+7)];
+if(!(r9 >r8)) //_LBB613_39
+{
+break _35;
+}
+}
+}
+} while(0);
+_40: do {
+if(!(r3 <1)) //_LBB613_43
+{
+	r7 = r2;
+	r8 = r3;
+_42: while(true){
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r9 >> 2;
+	r11 = heap32[(r10)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+6)];
+	f0 = heapFloat[(r4+3)];
+	r12 = heap32[(r10+6)];
+	r10 = heap32[(r10+5)];
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r12;
+	heapFloat[(g0+3)] = f0;
+	r8 = (r8 + -1)|0;
+	r7 = (r7 + 4)|0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+if(!(r8 !=0)) //_LBB613_42
+{
+break _40;
+}
+}
+}
+} while(0);
+	r7 = heap32[(r6+2)];
+_45: do {
+if(!(r7 <1)) //_LBB613_46
+{
+	r8 = 0;
+_47: while(true){
+	r9 = heap32[(r6+19)];
+	r10 = r8 << 2;
+	r9 = (r9 + r10)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+	r9 = (r9 * 136)|0;
+	r10 = heap32[(r6+4)];
+	r9 = (r10 + r9)|0;
+	r10 = r9 >> 2;
+	r11 = heap32[(r10+27)];
+	r10 = heap32[(r10+26)];
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r9;
+	r8 = (r8 + 1)|0;
+	_ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(i7);
+if(!(r7 !=r8)) //_LBB613_45
+{
+break _45;
+}
+}
+}
+} while(0);
+	r7 = heap32[(r6+12)];
+	if(r7 <1) //_LBB613_63
+{
+break _33;
+}
+else{
+	r8 = 0;
+_51: while(true){
+	r9 = heap32[(r6+24)];
+	r10 = r8 << 2;
+	r9 = (r9 + r10)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+	r10 = heap32[(r6+14)];
+	r9 = (r9 * 136)|0;
+	r9 = (r10 + r9)|0;
+	r10 = r9 >> 2;
+	r11 = heap32[(r10+25)];
+	r12 = heap32[(r6+4)];
+	r11 = (r11 * 136)|0;
+	r11 = (r12 + r11)|0;
+	r11 = r11 >> 2;
+	f0 = heapFloat[(r11+21)];
+	f1 =                         0;
+if(!(f0 <=f1)) //_LBB613_50
+{
+	f1 = heapFloat[(r10+22)];
+	f0 = f1*f0;
+	f1 = -f0;
+	heapFloat[(r10+31)] = f1;
+	heapFloat[(r10+32)] = f0;
+	r11 = heap32[(r10+27)];
+	r10 = heap32[(r10+26)];
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r9;
+	_ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7);
+}
+	r8 = (r8 + 1)|0;
+	if(r7 ==r8) //_LBB613_63
+{
+break _33;
+}
+else{
+continue _51;
+}
+}
+}
+}
+else{
+_57: do {
+if(!(r8 <1)) //_LBB613_52
+{
+	r8 = 0;
+	r7 = r8;
+_59: while(true){
+	r9 = (r7 * 34)|0;
+	r10 = heap32[(r6+9)];
+	r9 = r9 << 2;
+	r9 = (r10 + r9)|0;
+	r9 = r9 >> 2;
+	r11 = heap32[(r9+27)];
+	r9 = heap32[(r9+26)];
+	r10 = (r10 + r8)|0;
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r10;
+	r7 = (r7 + 1)|0;
+	r8 = (r8 + 136)|0;
+	_ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7);
+	r9 = heap32[(r6+7)];
+if(!(r9 >r7)) //_LBB613_51
+{
+break _57;
+}
+}
+}
+} while(0);
+_62: do {
+if(!(r3 <1)) //_LBB613_55
+{
+	r7 = r2;
+	r8 = r3;
+_64: while(true){
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r9 >> 2;
+	r11 = heap32[(r10)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+6)];
+	f0 = heapFloat[(r4+3)];
+	r12 = heap32[(r10+6)];
+	r10 = heap32[(r10+5)];
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r12;
+	heapFloat[(g0+3)] = f0;
+	r8 = (r8 + -1)|0;
+	r7 = (r7 + 4)|0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+if(!(r8 !=0)) //_LBB613_54
+{
+break _62;
+}
+}
+}
+} while(0);
+	r7 = heap32[(r6+2)];
+_67: do {
+if(!(r7 <1)) //_LBB613_58
+{
+	r8 = 0;
+_69: while(true){
+	r9 = heap32[(r6+19)];
+	r10 = r8 << 2;
+	r9 = (r9 + r10)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+	r9 = (r9 * 136)|0;
+	r10 = heap32[(r6+4)];
+	r9 = (r10 + r9)|0;
+	r10 = r9 >> 2;
+	r11 = heap32[(r10+27)];
+	r10 = heap32[(r10+26)];
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r9;
+	r8 = (r8 + 1)|0;
+	_ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(i7);
+if(!(r7 !=r8)) //_LBB613_57
+{
+break _67;
+}
+}
+}
+} while(0);
+	r7 = heap32[(r6+12)];
+if(!(r7 <1)) //_LBB613_63
+{
+	r8 = 0;
+_73: while(true){
+	r9 = heap32[(r6+24)];
+	r10 = r8 << 2;
+	r9 = (r9 + r10)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+	r10 = heap32[(r6+14)];
+	r9 = (r9 * 136)|0;
+	r9 = (r10 + r9)|0;
+	r10 = r9 >> 2;
+	r11 = heap32[(r10+25)];
+	r12 = heap32[(r6+4)];
+	r11 = (r11 * 136)|0;
+	r11 = (r12 + r11)|0;
+	r11 = r11 >> 2;
+	f0 = heapFloat[(r11+21)];
+	f1 =                         0;
+if(!(f0 <=f1)) //_LBB613_62
+{
+	f1 = heapFloat[(r10+22)];
+	f0 = f1*f0;
+	f1 = -f0;
+	heapFloat[(r10+31)] = f1;
+	heapFloat[(r10+32)] = f0;
+	r11 = heap32[(r10+27)];
+	r10 = heap32[(r10+26)];
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r11;
+	heap32[(g0+2)] = r9;
+	_ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7);
+}
+	r8 = (r8 + 1)|0;
+if(!(r7 !=r8)) //_LBB613_60
+{
+break _33;
+}
+}
+}
+}
+} while(0);
+	r5 = (r5 + 1)|0;
+	r6 = heap32[(r4+5)];
+	if(r6 >r5) //_LBB613_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r4 = heap32[(fp+1)];
+	r5 = heap32[(fp+2)];
+	r6 = heap32[(fp+3)];
+	r7 = heap32[(fp+4)];
+	r8 = heap32[(fp+8)];
+	r9 = heap32[(fp+9)];
+	r10 = r0 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+6)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r6;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r2;
+	heap32[(g0+6)] = r3;
+	heap32[(g0+7)] = r1;
+	heap32[(g0+8)] = r8;
+	heap32[(g0+9)] = r9;
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_80: do {
+if(!(r3 !=0)) //_LBB613_70
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB613_67
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB613_70
+{
+break _80;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	f0 =                         0;
+	f_g0 = f0;
+	return;
+}
+
+function _ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+var __label__ = 0;
+	i7 = sp + -288;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+13)];
+	r3 = heap32[(r1+12)];
+	r4 = heap32[(fp+1)];
+	r5 = heap32[(fp+2)];
+	r6 = heap32[(fp+3)];
+	r7 = heap32[(fp+4)];
+	r8 = heap32[(fp+5)];
+	r9 = heap32[(fp+6)];
+	r10 = heap32[(fp+7)];
+	f0 = heapFloat[(fp+8)];
+	f1 = heapFloat[(fp+9)];
+	f2 = heapFloat[(fp+10)];
+	if(r2 ==r3) //_LBB614_2
+{
+	r11 = 1;
+	r12 = r3 << 1;
+	r12 = r3 == 0 ? r11 : r12;
+	if(r2 >=r12) //_LBB614_1
+{
+__label__ = 1;
+}
+else{
+	if(r12 !=0) //_LBB614_5
+{
+	r2 = gNumAlignedAllocs;
+	r2 = r2 >> 2;
+	r13 = heap32[(r2)];
+	r14 = (r12 * 136)|0;
+	r13 = (r13 + 1)|0;
+	r14 = r14 | 3;
+	heap32[(r2)] = r13;
+	r2 = (r14 + 16)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r13 = r_g0;
+	if(r13 !=0) //_LBB614_7
+{
+	r2 = 0;
+	r14 = (r13 + 4)|0;
+	r2 = (r2 - r14)|0;
+	r2 = r2 & 15;
+	r2 = (r13 + r2)|0;
+	r14 = (r2 + 4)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = r13;
+	r13 = r14;
+}
+}
+else{
+	r13 = 0;
+}
+	r14 = (r0 + 56)|0;
+	if(r3 <1) //_LBB614_10
+{
+	r2 = r14 >> 2;
+	r16 = heap32[(r2)];
+}
+else{
+	r2 = 0;
+	r15 = r3;
+_12: while(true){
+	r16 = r14 >> 2;
+	r16 = heap32[(r16)];
+	r17 = (r13 + r2)|0;
+	r18 = (r16 + r2)|0;
+	heap32[(g0)] = r17;
+	heap32[(g0+1)] = r18;
+	heap32[(g0+2)] = 136;
+	r15 = (r15 + -1)|0;
+	r2 = (r2 + 136)|0;
+	memcpy(i7);
+if(!(r15 !=0)) //_LBB614_11
+{
+break _12;
+}
+}
+	r14 = (r0 + 56)|0;
+}
+	if(r16 !=0) //_LBB614_15
+{
+	r2 = heapU8[r0+60];
+	if(r2 !=0) //_LBB614_17
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r15 = heap32[(r2)];
+	r15 = (r15 + 1)|0;
+	r16 = r16 >> 2;
+	heap32[(r2)] = r15;
+	r2 = heap32[(r16+-1)];
+	heap32[(g0)] = r2;
+	free(i7);
+	r2 = heap32[(r1+12)];
+}
+else{
+	r2 = r3;
+}
+	r15 = r14 >> 2;
+	heap32[(r15)] = 0;
+}
+else{
+	r2 = r3;
+}
+	r14 = r14 >> 2;
+	heap8[r0+60] = r11;
+	heap32[(r14)] = r13;
+	heap32[(r1+13)] = r12;
+__label__ = 19;
+}
+}
+else{
+__label__ = 1;
+}
+if (__label__ == 1){
+	r2 = r3;
+}
+	r0 = (r2 + 1)|0;
+	heap32[(r1+12)] = r0;
+	r0 = heap32[(r1+14)];
+	r1 = (r3 * 136)|0;
+	r0 = (r0 + r1)|0;
+	r0 = r0 >> 2;
+	heap32[(r0+25)] = r5;
+	r1 = heapU8[r9+232];
+	r1 = r1 & 2;
+if(!(r1 !=0)) //_LBB614_22
+{
+	r9 = 0;
+}
+	r1 = heapU8[r10+232];
+	r1 = r1 & 2;
+if(!(r1 !=0)) //_LBB614_24
+{
+	r10 = 0;
+}
+	r1 = r4 >> 2;
+	heap32[(r0+4)] = heap32[(r1)];
+	heap32[(r0+5)] = heap32[(r1+1)];
+	heap32[(r0+6)] = heap32[(r1+2)];
+	heap32[(r0+7)] = heap32[(r1+3)];
+	if(r9 ==0) //_LBB614_26
+{
+	r2 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r3 = heapU8[r2];
+if(!(r3 !=0)) //_LBB614_28
+{
+	r3 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r4 = r3 >> 2;
+	heap32[(r4+41)] = 1065353216;
+	heap32[(r4+42)] = 1065353216;
+	heap32[(r4+43)] = 1065353216;
+	heap32[(r4+44)] = 0;
+	heap32[(r4+45)] = 0;
+	heap32[(r4+46)] = 1566444395;
+	heap32[(r4+47)] = 0;
+	heap32[(r4+48)] = 0;
+	heap32[(r4+49)] = 0;
+	heap32[(r4+50)] = 0;
+	heap32[(r4+51)] = 1;
+	heap32[(r4+52)] = -1;
+	heap32[(r4+53)] = -1;
+	heap32[(r4+54)] = 1;
+	heap32[(r4+55)] = 0;
+	heap32[(r4+56)] = 1056964608;
+	heap32[(r4+57)] = 0;
+	heap32[(r4+58)] = 1;
+	heap32[(r4+59)] = 0;
+	heap32[(r4+60)] = 1065353216;
+	heap32[(r4+61)] = 0;
+	heap32[(r4+62)] = 0;
+	heap32[(r4+63)] = 0;
+	heap32[(r4+1)] = 1065353216;
+	heap32[(r4+2)] = 0;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+4)] = 0;
+	heap32[(r4+5)] = 0;
+	heap32[(r4+6)] = 1065353216;
+	heap32[(r4+7)] = 0;
+	heap32[(r4+8)] = 0;
+	heap32[(r4+9)] = 0;
+	heap32[(r4+10)] = 0;
+	heap32[(r4+11)] = 1065353216;
+	heap32[(r4+12)] = 0;
+	heap32[(r4+13)] = 0;
+	heap32[(r4+14)] = 0;
+	r5 = _ZTV11btRigidBody;
+	heap32[(r4+15)] = 0;
+	r5 = (r5 + 8)|0;
+	heap32[(r4+16)] = 0;
+	r11 = 1;
+	heap32[(r4)] = r5;
+	heap8[r3+492] = r11;
+	heap32[(r4+122)] = 0;
+	heap32[(r4+120)] = 0;
+	r5 = sp + -272;
+	heap32[(r4+121)] = 0;
+	r4 = r5 >> 2;
+	heap32[(fp+-68)] = 0;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+18)] = 0;
+	heap32[(r4+19)] = 0;
+	heap32[(r4+20)] = 0;
+	heap32[(r4+21)] = 0;
+	heap32[(r4+22)] = 0;
+	heap32[(r4+23)] = 0;
+	heap32[(r4+24)] = 0;
+	heap32[(r4+25)] = 1056964608;
+	heap32[(r4+26)] = 0;
+	heap32[(r4+27)] = 1061997773;
+	r12 = 0;
+	heap32[(r4+28)] = 1065353216;
+	heap8[sp+-156] = r12;
+	heap32[(r4+30)] = 1000593162;
+	heap32[(r4+31)] = 1008981770;
+	heap32[(r4+32)] = 1008981770;
+	heap32[(r4+33)] = 1008981770;
+	heap32[(r4+2)] = 1065353216;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+4)] = 0;
+	heap32[(r4+5)] = 0;
+	heap32[(r4+6)] = 0;
+	heap32[(r4+7)] = 1065353216;
+	heap32[(r4+8)] = 0;
+	heap32[(r4+9)] = 0;
+	heap32[(r4+10)] = 0;
+	heap32[(r4+11)] = 0;
+	heap32[(r4+12)] = 1065353216;
+	heap32[(r4+13)] = 0;
+	heap32[(r4+14)] = 0;
+	heap32[(r4+15)] = 0;
+	heap32[(r4+16)] = 0;
+	heap32[(r4+17)] = 0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
+	heap8[r2] = r11;
+}
+	r2 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+51)];
+	r4 = r4 | 1;
+	heap32[(r3+51)] = r4;
+	heap32[(r3+84)] = 0;
+	f3 =                         0;
+	f4 = heapFloat[(r3+95)];
+	f5 = heapFloat[(r3+94)];
+	f6 = heapFloat[(r3+93)];
+	f6 = f6*f3;
+	f5 = f5*f3;
+	heapFloat[(r3+89)] = f6;
+	f4 = f4*f3;
+	heapFloat[(r3+90)] = f5;
+	heapFloat[(r3+91)] = f4;
+	heap32[(r3+92)] = 0;
+	heap32[(r3+97)] = 0;
+	heap32[(r3+98)] = 0;
+	heap32[(r3+99)] = 0;
+	heap32[(r3+100)] = 0;
+	f4 = heapFloat[(r3+87)];
+	f5 = heapFloat[(r3+86)];
+	f6 = heapFloat[(r3+85)];
+	f6 = f6*f3;
+	f5 = f5*f3;
+	heapFloat[(r3+138)] = f6;
+	f3 = f4*f3;
+	heapFloat[(r3+139)] = f5;
+	heapFloat[(r3+140)] = f3;
+	heap32[(r3+141)] = 0;
+}
+else{
+	r2 = r9;
+}
+	heap32[(r0+26)] = r2;
+	if(r10 ==0) //_LBB614_31
+{
+	r2 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r3 = heapU8[r2];
+if(!(r3 !=0)) //_LBB614_33
+{
+	r3 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r4 = r3 >> 2;
+	heap32[(r4+41)] = 1065353216;
+	heap32[(r4+42)] = 1065353216;
+	heap32[(r4+43)] = 1065353216;
+	heap32[(r4+44)] = 0;
+	heap32[(r4+45)] = 0;
+	heap32[(r4+46)] = 1566444395;
+	heap32[(r4+47)] = 0;
+	heap32[(r4+48)] = 0;
+	heap32[(r4+49)] = 0;
+	heap32[(r4+50)] = 0;
+	heap32[(r4+51)] = 1;
+	heap32[(r4+52)] = -1;
+	heap32[(r4+53)] = -1;
+	heap32[(r4+54)] = 1;
+	heap32[(r4+55)] = 0;
+	heap32[(r4+56)] = 1056964608;
+	heap32[(r4+57)] = 0;
+	heap32[(r4+58)] = 1;
+	heap32[(r4+59)] = 0;
+	heap32[(r4+60)] = 1065353216;
+	heap32[(r4+61)] = 0;
+	heap32[(r4+62)] = 0;
+	heap32[(r4+63)] = 0;
+	heap32[(r4+1)] = 1065353216;
+	heap32[(r4+2)] = 0;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+4)] = 0;
+	heap32[(r4+5)] = 0;
+	heap32[(r4+6)] = 1065353216;
+	heap32[(r4+7)] = 0;
+	heap32[(r4+8)] = 0;
+	heap32[(r4+9)] = 0;
+	heap32[(r4+10)] = 0;
+	heap32[(r4+11)] = 1065353216;
+	heap32[(r4+12)] = 0;
+	heap32[(r4+13)] = 0;
+	heap32[(r4+14)] = 0;
+	r5 = _ZTV11btRigidBody;
+	heap32[(r4+15)] = 0;
+	r5 = (r5 + 8)|0;
+	heap32[(r4+16)] = 0;
+	r11 = 1;
+	heap32[(r4)] = r5;
+	heap8[r3+492] = r11;
+	heap32[(r4+122)] = 0;
+	heap32[(r4+120)] = 0;
+	r5 = sp + -136;
+	heap32[(r4+121)] = 0;
+	r4 = r5 >> 2;
+	heap32[(fp+-34)] = 0;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+18)] = 0;
+	heap32[(r4+19)] = 0;
+	heap32[(r4+20)] = 0;
+	heap32[(r4+21)] = 0;
+	heap32[(r4+22)] = 0;
+	heap32[(r4+23)] = 0;
+	heap32[(r4+24)] = 0;
+	heap32[(r4+25)] = 1056964608;
+	heap32[(r4+26)] = 0;
+	heap32[(r4+27)] = 1061997773;
+	r12 = 0;
+	heap32[(r4+28)] = 1065353216;
+	heap8[sp+-20] = r12;
+	heap32[(r4+30)] = 1000593162;
+	heap32[(r4+31)] = 1008981770;
+	heap32[(r4+32)] = 1008981770;
+	heap32[(r4+33)] = 1008981770;
+	heap32[(r4+2)] = 1065353216;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+4)] = 0;
+	heap32[(r4+5)] = 0;
+	heap32[(r4+6)] = 0;
+	heap32[(r4+7)] = 1065353216;
+	heap32[(r4+8)] = 0;
+	heap32[(r4+9)] = 0;
+	heap32[(r4+10)] = 0;
+	heap32[(r4+11)] = 0;
+	heap32[(r4+12)] = 1065353216;
+	heap32[(r4+13)] = 0;
+	heap32[(r4+14)] = 0;
+	heap32[(r4+15)] = 0;
+	heap32[(r4+16)] = 0;
+	heap32[(r4+17)] = 0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	_ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7);
+	heap8[r2] = r11;
+}
+	r2 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed;
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+51)];
+	r4 = r4 | 1;
+	heap32[(r3+51)] = r4;
+	heap32[(r3+84)] = 0;
+	f3 =                         0;
+	f4 = heapFloat[(r3+95)];
+	f5 = heapFloat[(r3+94)];
+	f6 = heapFloat[(r3+93)];
+	f6 = f6*f3;
+	f5 = f5*f3;
+	heapFloat[(r3+89)] = f6;
+	f4 = f4*f3;
+	heapFloat[(r3+90)] = f5;
+	heapFloat[(r3+91)] = f4;
+	heap32[(r3+92)] = 0;
+	heap32[(r3+97)] = 0;
+	heap32[(r3+98)] = 0;
+	heap32[(r3+99)] = 0;
+	heap32[(r3+100)] = 0;
+	f4 = heapFloat[(r3+87)];
+	f5 = heapFloat[(r3+86)];
+	f6 = heapFloat[(r3+85)];
+	f6 = f6*f3;
+	f5 = f5*f3;
+	heapFloat[(r3+138)] = f6;
+	f3 = f4*f3;
+	heapFloat[(r3+139)] = f5;
+	heapFloat[(r3+140)] = f3;
+	heap32[(r3+141)] = 0;
+}
+else{
+	r2 = r10;
+}
+	r3 = r6 >> 2;
+	heap32[(r0+27)] = r2;
+	heap32[(r0+22)] = heap32[(r3+21)];
+	heap32[(r0+28)] = 0;
+	heap32[(r0+21)] = 0;
+	heap32[(r0+20)] = 0;
+	r2 = r7 >> 2;
+	f3 = heapFloat[(r0+5)];
+	f4 = heapFloat[(r2+2)];
+	f5 = heapFloat[(r0+6)];
+	f6 = heapFloat[(r2+1)];
+	f7 = heapFloat[(r0+4)];
+	f8 = heapFloat[(r2)];
+	f9 = f6*f5;
+	f10 = f4*f3;
+	f9 = f9-f10;
+	f4 = f4*f7;
+	f10 = f8*f5;
+	f4 = f4-f10;
+	heapFloat[(r0)] = f9;
+	f8 = f8*f3;
+	f6 = f6*f7;
+	f6 = f8-f6;
+	heapFloat[(r0+1)] = f4;
+	heapFloat[(r0+2)] = f6;
+	heap32[(r0+3)] = 0;
+	if(r9 ==0) //_LBB614_36
+{
+	heap32[(r0+12)] = 0;
+	heap32[(r0+13)] = 0;
+	f10 =                         0;
+	heap32[(r0+14)] = 0;
+	heap32[(r0+15)] = 0;
+	f11 = f10;
+	f8 = f10;
+}
+else{
+	r3 = r9 >> 2;
+	f8 = heapFloat[(r3+64)];
+	f10 = heapFloat[(r3+65)];
+	f11 = heapFloat[(r3+68)];
+	f12 = heapFloat[(r3+69)];
+	f8 = f8*f9;
+	f10 = f10*f4;
+	f13 = heapFloat[(r3+66)];
+	f14 = heapFloat[(r3+72)];
+	f15 = heapFloat[(r3+73)];
+	f16 = heapFloat[(r3+70)];
+	f11 = f11*f9;
+	f12 = f12*f4;
+	f8 = f8+f10;
+	f10 = f13*f6;
+	f13 = heapFloat[(r3+74)];
+	f14 = f14*f9;
+	f15 = f15*f4;
+	f11 = f11+f12;
+	f12 = f16*f6;
+	f8 = f8+f10;
+	f10 = heapFloat[(r3+134)];
+	f16 = heapFloat[(r3+136)];
+	f17 = heapFloat[(r3+135)];
+	f11 = f11+f12;
+	f8 = f8*f10;
+	f10 = f14+f15;
+	f12 = f13*f6;
+	f10 = f10+f12;
+	f11 = f11*f17;
+	heapFloat[(r0+12)] = f8;
+	f10 = f10*f16;
+	heapFloat[(r0+13)] = f11;
+	heapFloat[(r0+14)] = f10;
+	heap32[(r0+15)] = 0;
+}
+	r3 = r8 >> 2;
+	f12 = heapFloat[(r3+2)];
+	f13 = heapFloat[(r3+1)];
+	f14 = heapFloat[(r3)];
+	f15 = f12*f3;
+	f16 = f13*f5;
+	f15 = f15-f16;
+	f16 = f14*f5;
+	f12 = f12*f7;
+	f12 = f16-f12;
+	heapFloat[(r0+8)] = f15;
+	f13 = f13*f7;
+	f14 = f14*f3;
+	f13 = f13-f14;
+	heapFloat[(r0+9)] = f12;
+	heapFloat[(r0+10)] = f13;
+	heap32[(r0+11)] = 0;
+	if(r10 ==0) //_LBB614_39
+{
+	heap32[(r0+16)] = 0;
+	heap32[(r0+17)] = 0;
+	f14 =                         0;
+	heap32[(r0+18)] = 0;
+	heap32[(r0+19)] = 0;
+	f17 = f14;
+	f16 = f14;
+}
+else{
+	r4 = r10 >> 2;
+	f14 = heapFloat[(r4+64)];
+	f16 = heapFloat[(r4+65)];
+	f17 = heapFloat[(r4+68)];
+	f18 = heapFloat[(r4+69)];
+	f14 = f14*f15;
+	f16 = f16*f12;
+	f19 = heapFloat[(r4+66)];
+	f20 = heapFloat[(r4+72)];
+	f21 = heapFloat[(r4+73)];
+	f22 = heapFloat[(r4+70)];
+	f17 = f17*f15;
+	f18 = f18*f12;
+	f14 = f14+f16;
+	f16 = f19*f13;
+	f19 = heapFloat[(r4+74)];
+	f20 = f20*f15;
+	f21 = f21*f12;
+	f17 = f17+f18;
+	f18 = f22*f13;
+	f14 = f14+f16;
+	f16 = heapFloat[(r4+134)];
+	f22 = heapFloat[(r4+136)];
+	f23 = heapFloat[(r4+135)];
+	f17 = f17+f18;
+	f14 = f14*f16;
+	f16 = f20+f21;
+	f18 = f19*f13;
+	f16 = f16+f18;
+	f17 = f17*f23;
+	heapFloat[(r0+16)] = f14;
+	f16 = f16*f22;
+	heapFloat[(r0+17)] = f17;
+	heapFloat[(r0+18)] = f16;
+	heap32[(r0+19)] = 0;
+}
+	if(r9 !=0) //_LBB614_42
+{
+	f18 = heapFloat[(r2+1)];
+	f19 = heapFloat[(r2+2)];
+	f20 = heapFloat[(r2)];
+	f21 = f11*f19;
+	f22 = f10*f18;
+	f10 = f10*f20;
+	f19 = f8*f19;
+	f23 = heapFloat[(r1)];
+	f21 = f21-f22;
+	f22 = heapFloat[(r1+1)];
+	f10 = f10-f19;
+	f8 = f8*f18;
+	f11 = f11*f20;
+	f18 = f23*f21;
+	f10 = f22*f10;
+	f19 = heapFloat[(r1+2)];
+	f8 = f8-f11;
+	r2 = r9 >> 2;
+	f10 = f18+f10;
+	f8 = f19*f8;
+	f11 = heapFloat[(r2+84)];
+	f8 = f10+f8;
+	f8 = f11+f8;
+}
+else{
+	f8 =                         0;
+}
+	if(r10 !=0) //_LBB614_45
+{
+	f10 = heapFloat[(r3+2)];
+	f11 = heapFloat[(r3)];
+	f18 = heapFloat[(r3+1)];
+	f19 = f18*f16;
+	f20 = f10*f17;
+	f10 = f10*f14;
+	f16 = f11*f16;
+	f21 = heapFloat[(r1)];
+	f19 = f19-f20;
+	f20 = heapFloat[(r1+1)];
+	f10 = f10-f16;
+	f11 = f11*f17;
+	f14 = f18*f14;
+	f16 = f21*f19;
+	f10 = f20*f10;
+	f17 = heapFloat[(r1+2)];
+	f14 = f11-f14;
+	r1 = r10 >> 2;
+	f10 = f16+f10;
+	f14 = f17*f14;
+	f11 = heapFloat[(r1+84)];
+	f14 = f10+f14;
+	f14 = f11+f14;
+}
+else{
+	f14 =                         0;
+}
+	f8 = f8+f14;
+	f0 = f0/f8;
+	heapFloat[(r0+23)] = f0;
+	if(r9 !=0) //_LBB614_48
+{
+	r1 = r9 >> 2;
+	f8 = heapFloat[(r1+76)];
+	f10 = heapFloat[(r1+77)];
+	f8 = f7*f8;
+	f10 = f3*f10;
+	f11 = heapFloat[(r1+78)];
+	f8 = f8+f10;
+	f10 = f5*f11;
+	f10 = f8+f10;
+	f14 = heapFloat[(r1+80)];
+	f11 = heapFloat[(r1+81)];
+	f8 = heapFloat[(r1+82)];
+}
+else{
+	f8 =                         0;
+	f10 = f7*f8;
+	f11 = f3*f8;
+	f10 = f10+f11;
+	f11 = f5*f8;
+	f10 = f10+f11;
+	f11 = f8;
+	f14 = f8;
+}
+	f9 = f9*f14;
+	f4 = f4*f11;
+	f4 = f9+f4;
+	f6 = f6*f8;
+	f4 = f4+f6;
+	f4 = f10+f4;
+	if(r10 !=0) //_LBB614_51
+{
+	r1 = r10 >> 2;
+	f6 = heapFloat[(r1+80)];
+	f8 = heapFloat[(r1+81)];
+	f6 = f15*f6;
+	f12 = f12*f8;
+	f15 = heapFloat[(r1+82)];
+	f6 = f6+f12;
+	f12 = f13*f15;
+	f12 = f6+f12;
+	f15 = heapFloat[(r1+76)];
+	f13 = heapFloat[(r1+77)];
+	f6 = heapFloat[(r1+78)];
+}
+else{
+	f6 =                         0;
+	f15 = f15*f6;
+	f12 = f12*f6;
+	f12 = f15+f12;
+	f13 = f13*f6;
+	f12 = f12+f13;
+	f13 = f6;
+	f15 = f6;
+}
+	f7 = f7*f15;
+	f3 = f3*f13;
+	f3 = f7+f3;
+	f5 = f5*f6;
+	f3 = f3+f5;
+	f3 = f12-f3;
+	f3 = f4+f3;
+	f1 = f1-f3;
+	f0 = f0*f1;
+	heapFloat[(r0+29)] = f0;
+	heapFloat[(r0+30)] = f2;
+	heap32[(r0+31)] = 0;
+	heap32[(r0+32)] = 1343554297;
+	return;
+}
+
+function _ZNK17btTypedConstraint9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp)];
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r4 = r2 >> 2;
+	r3 = heap32[(r3+7)];
+	r5 = heap32[(r4+5)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	r5 = heap32[(fp+1)];
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r5 = r5 >> 2;
+	heap32[(r5)] = r_g0;
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+7)];
+	r6 = heap32[(r4+6)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r6;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	heap32[(r5+1)] = r_g0;
+	r3 = heap32[(r1)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+10)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r_g0;
+	r6 = heap32[(r1)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+7)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = r_g0;
+	heap32[(r5+2)] = r6;
+if(!(r6 ==0)) //_LBB615_2
+{
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+12)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+	r0 = heap32[(r4+1)];
+	heap32[(r5+3)] = r0;
+	r0 = heapU8[r2+16];
+	heap32[(r5+6)] = r0;
+	r0 = heap32[(r4+3)];
+	heap32[(r5+5)] = r0;
+	r0 = heap32[(r4+2)];
+	heap32[(r5+4)] = r0;
+	heap32[(r5+7)] = heap32[(r4+7)];
+	heap32[(r5+8)] = heap32[(r4+8)];
+	heap32[(r5+9)] = 0;
+	r0 = heap32[(r4+5)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1+120)];
+if(!(r1 <1)) //_LBB615_7
+{
+	r1 = 0;
+_6: while(true){
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+122)];
+	r3 = r1 << 2;
+	r0 = (r0 + r3)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+if(!(r0 !=r2)) //_LBB615_6
+{
+	heap32[(r5+9)] = 1;
+}
+	r1 = (r1 + 1)|0;
+	r0 = heap32[(r4+5)];
+	r3 = r0 >> 2;
+	r3 = heap32[(r3+120)];
+	if(r3 >r1) //_LBB615_4
+{
+continue _6;
+}
+else{
+break _6;
+}
+}
+}
+	r0 = heap32[(r4+6)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1+120)];
+_12: do {
+if(!(r1 <1)) //_LBB615_12
+{
+	r1 = 0;
+_14: while(true){
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+122)];
+	r3 = r1 << 2;
+	r0 = (r0 + r3)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+if(!(r0 !=r2)) //_LBB615_11
+{
+	heap32[(r5+9)] = 1;
+}
+	r1 = (r1 + 1)|0;
+	r0 = heap32[(r4+6)];
+	r3 = r0 >> 2;
+	r3 = heap32[(r3+120)];
+	if(r3 >r1) //_LBB615_9
+{
+continue _14;
+}
+else{
+break _12;
+}
+}
+}
+} while(0);
+	r0 = _2E_str76;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld11setNumTasksEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld14updateVehiclesEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = _2E_str289;
+	r1 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	r0 = r1 >> 2;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r2 = heap32[(r0+63)];
+if(!(r2 <1)) //_LBB617_3
+{
+	f0 = heapFloat[(fp+1)];
+	r2 = 0;
+_3: while(true){
+	r3 = heap32[(r0+65)];
+	r4 = r2 << 2;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	heapFloat[(g0+2)] = f0;
+	r2 = (r2 + 1)|0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r3 = heap32[(r0+63)];
+	if(r3 >r2) //_LBB617_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_6: do {
+if(!(r3 !=0)) //_LBB617_9
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB617_6
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB617_9
+{
+break _6;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	return;
+}
+
+function _ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZNK15btDynamicsWorld17getNumConstraintsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btDynamicsWorld13getConstraintEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK15btDynamicsWorld13getConstraintEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN15btDynamicsWorld10addVehicleEP17btActionInterface(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN15btDynamicsWorld13removeVehicleEP17btActionInterface(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN15btDynamicsWorld12addCharacterEP17btActionInterface(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN15btDynamicsWorld15removeCharacterEP17btActionInterface(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZNK23btDiscreteDynamicsWorld12getWorldTypeEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 2;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK23btDiscreteDynamicsWorld10getGravityEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	heap32[(r0)] = heap32[(r1+56)];
+	heap32[(r0+1)] = heap32[(r1+57)];
+	heap32[(r0+2)] = heap32[(r1+58)];
+	heap32[(r0+3)] = heap32[(r1+59)];
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+15)];
+	r2 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+16)];
+	r2 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+15)];
+	r2 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+16)];
+	r2 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZN34btClosestNotMeConvexResultCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN34btClosestNotMeConvexResultCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = r1 >> 2;
+	r3 = r0 >> 2;
+	r2 = heap32[(r2)];
+	r4 = heap32[(r3+20)];
+	if(r2 !=r4) //_LBB635_2
+{
+	r5 = heapU16[(r0+10)>>1];
+	r6 = heapU16[(r1+4)>>1];
+	r5 = r5 & r6;
+	r5 = r5 & 65535;
+	if(r5 ==0) //_LBB635_1
+{
+__label__ = 1;
+}
+else{
+	r5 = heapU16[(r1+6)>>1];
+	r0 = heapU16[(r0+8)>>1];
+	r0 = r5 & r0;
+	r0 = r0 & 65535;
+	if(r0 ==0) //_LBB635_1
+{
+__label__ = 1;
+}
+else{
+	r0 = heap32[(r3+23)];
+	r5 = r0 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+7)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r2;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB635_6
+{
+	r0 = sp + -24;
+	r2 = 1;
+	r4 = r0 >> 2;
+	heap8[sp+-8] = r2;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+	r5 = heap32[(r3+22)];
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r3 = heap32[(r3+20)];
+	r6 = r6 >> 2;
+	r3 = r3 >> 2;
+	r6 = heap32[(r6+13)];
+	r3 = heap32[(r3+47)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r1;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r1 = r_g0;
+_7: do {
+if(!(r1 ==0)) //_LBB635_21
+{
+	r1 = r1 >> 2;
+	r3 = heap32[(r1+2)];
+if(!(r3 ==0)) //_LBB635_21
+{
+	r3 = heap32[(r4+1)];
+if(!(r3 >-1)) //_LBB635_17
+{
+	r5 = heap32[(r4+2)];
+	if(r5 <0) //_LBB635_11
+{
+	r5 = heap32[(r4+3)];
+if(!(r5 ==0)) //_LBB635_15
+{
+	r6 = heapU8[sp+-8];
+if(!(r6 ==0)) //_LBB635_14
+{
+	r6 = gNumAlignedFree;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r7 = (r7 + 1)|0;
+	r5 = r5 >> 2;
+	heap32[(r6)] = r7;
+	r5 = heap32[(r5+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+}
+	heap32[(r4+3)] = 0;
+}
+	heap8[sp+-8] = r2;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+2)] = 0;
+}
+_20: while(true){
+	r2 = r3 << 2;
+	r5 = heap32[(r4+3)];
+	r2 = (r5 + r2)|0;
+	r3 = (r3 + 1)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = 0;
+if(!(r3 !=0)) //_LBB635_16
+{
+break _20;
+}
+}
+}
+	heap32[(r4+1)] = 0;
+	r1 = heap32[(r1+2)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = heap32[(r4+1)];
+	r1 = 0;
+_23: while(true){
+	if(r0 >r1) //_LBB635_18
+{
+	r2 = heap32[(r4+3)];
+	r3 = r1 << 2;
+	r3 = (r2 + r3)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+279)];
+	if(r3 >0) //_LBB635_25
+{
+break _23;
+}
+else{
+	r1 = (r1 + 1)|0;
+}
+}
+else{
+break _7;
+}
+}
+if(!(r2 ==0)) //_LBB635_29
+{
+	r0 = heapU8[sp+-8];
+if(!(r0 ==0)) //_LBB635_28
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	r2 = r2 >> 2;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+}
+} while(0);
+	r0 = heap32[(r4+3)];
+if(!(r0 ==0)) //_LBB635_24
+{
+	r2 = heapU8[sp+-8];
+if(!(r2 ==0)) //_LBB635_24
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r1 = heap32[(r2)];
+	r1 = (r1 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r2)] = r1;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+}
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+else{
+	r0 = 1;
+__label__ = 28;
+}
+}
+}
+}
+else{
+__label__ = 1;
+}
+if (__label__ == 1){
+	r0 = 0;
+}
+	r0 = r0 & 255;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp)];
+	r3 = heap32[(r1)];
+	r4 = r2 >> 2;
+	r5 = heap32[(r4+20)];
+if(!(r3 ==r5)) //_LBB636_4
+{
+	r3 = heapU8[r3+204];
+	r3 = r3 & 4;
+if(!(r3 !=0)) //_LBB636_4
+{
+	f0 = heapFloat[(r4+7)];
+	f1 = heapFloat[(r4+3)];
+	f2 = heapFloat[(r4+8)];
+	f3 = heapFloat[(r4+4)];
+	f4 = heapFloat[(r1+2)];
+	f0 = f0-f1;
+	f1 = heapFloat[(r1+3)];
+	f2 = f2-f3;
+	f3 = heapFloat[(r4+9)];
+	f5 = heapFloat[(r4+5)];
+	f0 = f4*f0;
+	f1 = f1*f2;
+	f2 = heapFloat[(r1+4)];
+	f3 = f3-f5;
+	f4 = heapFloat[(r4+21)];
+	f0 = f0+f1;
+	f1 = f2*f3;
+	f0 = f0+f1;
+	f1 = -f4;
+if(!(f0 >=f1)) //_LBB636_4
+{
+	r1 = heap32[(fp+2)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r1;
+	_ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb(i7);
+	return;
+}
+}
+}
+	f0 =                         1;
+	f_g0 = f0;
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld19getConstraintSolverEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+44)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+47)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld13getConstraintEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r0 = heap32[(r0+49)];
+	r1 = r1 << 2;
+	r0 = (r0 + r1)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld11clearForcesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+52)];
+if(!(r1 <1)) //_LBB640_3
+{
+	r1 = 0;
+_3: while(true){
+	r2 = heap32[(r0+54)];
+	r3 = r1 << 2;
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r1 = (r1 + 1)|0;
+	heap32[(r2+101)] = 0;
+	heap32[(r2+102)] = 0;
+	heap32[(r2+103)] = 0;
+	heap32[(r2+104)] = 0;
+	heap32[(r2+105)] = 0;
+	heap32[(r2+106)] = 0;
+	heap32[(r2+107)] = 0;
+	heap32[(r2+108)] = 0;
+	r2 = heap32[(r0+52)];
+	if(r2 >r1) //_LBB640_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function _ZNK23btDiscreteDynamicsWorld13getConstraintEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r0 = heap32[(r0+49)];
+	r1 = r1 << 2;
+	r0 = (r0 + r1)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(r0+63)];
+	r3 = 0;
+_1: while(true){
+	if(r2 >r3) //_LBB642_1
+{
+	r4 = heap32[(r0+65)];
+	r5 = r3 << 2;
+	r4 = (r4 + r5)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	if(r4 !=r1) //_LBB642_3
+{
+	r3 = (r3 + 1)|0;
+continue _1;
+}
+else{
+__label__ = 5;
+break _1;
+}
+}
+else{
+__label__ = 4;
+break _1;
+}
+}
+if (__label__ == 4){
+	r3 = r2;
+}
+if(!(r2 <=r3)) //_LBB642_8
+{
+	r1 = (r2 + -1)|0;
+	r2 = r3 << 2;
+	r3 = heap32[(r0+65)];
+	r1 = r1 << 2;
+	r2 = (r3 + r2)|0;
+	r3 = (r3 + r1)|0;
+	r2 = r2 >> 2;
+	r3 = r3 >> 2;
+	r4 = heap32[(r2)];
+	r3 = heap32[(r3)];
+	heap32[(r2)] = r3;
+	r2 = heap32[(r0+65)];
+	r1 = (r2 + r1)|0;
+	r1 = r1 >> 2;
+	heap32[(r1)] = r4;
+	r1 = heap32[(r0+63)];
+	r1 = (r1 + -1)|0;
+	heap32[(r0+63)] = r1;
+}
+	return;
+}
+
+function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+21)];
+if(!(r1 ==0)) //_LBB643_4
+{
+	r3 = heapU8[r0+88];
+if(!(r3 ==0)) //_LBB643_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+21)] = 0;
+}
+	r1 = 1;
+	heap8[r0+88] = r1;
+	heap32[(r2+21)] = 0;
+	heap32[(r2+19)] = 0;
+	heap32[(r2+20)] = 0;
+	r3 = heap32[(r2+16)];
+if(!(r3 ==0)) //_LBB643_8
+{
+	r4 = heapU8[r0+68];
+if(!(r4 ==0)) //_LBB643_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+16)] = 0;
+}
+	heap8[r0+68] = r1;
+	heap32[(r2+16)] = 0;
+	heap32[(r2+14)] = 0;
+	heap32[(r2+15)] = 0;
+	r3 = heap32[(r2+11)];
+if(!(r3 ==0)) //_LBB643_12
+{
+	r4 = heapU8[r0+48];
+if(!(r4 ==0)) //_LBB643_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+11)] = 0;
+}
+	heap8[r0+48] = r1;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 0;
+	return;
+}
+
+function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+21)];
+if(!(r1 ==0)) //_LBB644_4
+{
+	r3 = heapU8[r0+88];
+if(!(r3 ==0)) //_LBB644_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+21)] = 0;
+}
+	r1 = 1;
+	heap8[r0+88] = r1;
+	heap32[(r2+21)] = 0;
+	heap32[(r2+19)] = 0;
+	heap32[(r2+20)] = 0;
+	r3 = heap32[(r2+16)];
+if(!(r3 ==0)) //_LBB644_8
+{
+	r4 = heapU8[r0+68];
+if(!(r4 ==0)) //_LBB644_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+16)] = 0;
+}
+	heap8[r0+68] = r1;
+	heap32[(r2+16)] = 0;
+	heap32[(r2+14)] = 0;
+	heap32[(r2+15)] = 0;
+	r3 = heap32[(r2+11)];
+if(!(r3 ==0)) //_LBB644_12
+{
+	r4 = heapU8[r0+48];
+if(!(r4 ==0)) //_LBB644_11
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+11)] = 0;
+}
+	heap8[r0+48] = r1;
+	heap32[(r2+11)] = 0;
+	heap32[(r2+9)] = 0;
+	heap32[(r2+10)] = 0;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp+5)];
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	r6 = heap32[(fp+4)];
+	r7 = heap32[(r1+4)];
+_1: do {
+	if(r2 <0) //_LBB645_2
+{
+	r0 = 0;
+	r0 = (r0 - r6)|0;
+	if(r7 ==r0) //_LBB645_87
+{
+break _1;
+}
+else{
+	r0 = heap32[(r1+2)];
+	r2 = r0 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+3)];
+	r8 = heap32[(r1+7)];
+	r9 = heap32[(r1+6)];
+	r10 = heap32[(r1+5)];
+	r11 = heap32[(r1+1)];
+	r1 = heap32[(r1+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	heap32[(g0+4)] = r6;
+	heap32[(g0+5)] = r1;
+	heap32[(g0+6)] = r7;
+	heap32[(g0+7)] = r11;
+	heap32[(g0+8)] = r10;
+	heap32[(g0+9)] = r9;
+	heap32[(g0+10)] = r8;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	return;
+}
+}
+else{
+	r8 = 1;
+	r9 = 4;
+	r10 = 0;
+_5: while(true){
+	if(r7 >r10) //_LBB645_4
+{
+	r11 = heap32[(r1+3)];
+	r12 = r10 << 2;
+	r12 = (r11 + r12)|0;
+	r12 = r12 >> 2;
+	r12 = heap32[(r12)];
+	r12 = r12 >> 2;
+	r13 = heap32[(r12+5)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+52)];
+	if(r13 <0) //_LBB645_6
+{
+	r13 = heap32[(r12+6)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+52)];
+}
+	r10 = (r10 + 1)|0;
+	r9 = (r9 + -4)|0;
+	r8 = (r8 + -1)|0;
+	if(r13 ==r2) //_LBB645_10
+{
+__label__ = 9;
+break _5;
+}
+else{
+__label__ = 7;
+}
+}
+else{
+__label__ = 8;
+break _5;
+}
+}
+_11: do {
+switch(__label__ ){//multiple entries
+case 9:
+	r10 = r7 > r10 ? r7 : r10;
+	r7 = (r11 - r9)|0;
+	r9 = (r10 + r8)|0;
+	r8 = 0;
+	r10 = r7;
+_13: while(true){
+	r11 = r10 >> 2;
+	r11 = heap32[(r11)];
+	r11 = r11 >> 2;
+	r12 = heap32[(r11+5)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+52)];
+	if(r12 <0) //_LBB645_13
+{
+	r12 = heap32[(r11+6)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+52)];
+}
+	r11 = r12 == r2;
+	r11 = r11 & 1;
+	r9 = (r9 + -1)|0;
+	r8 = (r11 + r8)|0;
+	r10 = (r10 + 4)|0;
+if(!(r9 !=0)) //_LBB645_11
+{
+break _11;
+}
+}
+break;
+case 8:
+	r7 = 0;
+	r8 = r7;
+break;
+}
+} while(0);
+	r2 = heap32[(r1+1)];
+	r9 = r2 >> 2;
+	r9 = heap32[(r9+17)];
+	if(r9 <2) //_LBB645_17
+{
+	r0 = 0;
+	r0 = (r0 - r6)|0;
+	if(r8 ==r0) //_LBB645_87
+{
+break _1;
+}
+else{
+	r0 = heap32[(r1+2)];
+	r9 = r0 >> 2;
+	r9 = heap32[(r9)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+3)];
+	r10 = heap32[(r1+7)];
+	r11 = heap32[(r1+6)];
+	r1 = heap32[(r1+5)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	heap32[(g0+4)] = r6;
+	heap32[(g0+5)] = r7;
+	heap32[(g0+6)] = r8;
+	heap32[(g0+7)] = r2;
+	heap32[(g0+8)] = r1;
+	heap32[(g0+9)] = r11;
+	heap32[(g0+10)] = r10;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	return;
+}
+}
+else{
+_24: do {
+	if(r4 >0) //_LBB645_19
+{
+	r2 = heap32[(r1+9)];
+_26: while(true){
+	r9 = heap32[(r1+10)];
+	if(r9 ==r2) //_LBB645_22
+{
+	r10 = 1;
+	r11 = r2 << 1;
+	r11 = r2 == 0 ? r10 : r11;
+if(!(r9 >=r11)) //_LBB645_21
+{
+	if(r11 !=0) //_LBB645_25
+{
+	r9 = gNumAlignedAllocs;
+	r9 = r9 >> 2;
+	r12 = heap32[(r9)];
+	r13 = r11 << 2;
+	r12 = (r12 + 1)|0;
+	r13 = r13 | 3;
+	heap32[(r9)] = r12;
+	r9 = (r13 + 16)|0;
+	heap32[(g0)] = r9;
+	malloc(i7);
+	r9 = r_g0;
+	if(r9 !=0) //_LBB645_27
+{
+	r12 = 0;
+	r13 = (r9 + 4)|0;
+	r12 = (r12 - r13)|0;
+	r12 = r12 & 15;
+	r12 = (r9 + r12)|0;
+	r13 = (r12 + 4)|0;
+	r12 = r12 >> 2;
+	heap32[(r12)] = r9;
+	r9 = r13;
+}
+}
+else{
+	r9 = 0;
+}
+	if(r2 <1) //_LBB645_30
+{
+	r13 = heap32[(r1+11)];
+}
+else{
+	r12 = 0;
+_39: while(true){
+	r13 = heap32[(r1+11)];
+	r14 = r12 << 2;
+	r15 = (r13 + r14)|0;
+	r15 = r15 >> 2;
+	r14 = (r9 + r14)|0;
+	r15 = heap32[(r15)];
+	r12 = (r12 + 1)|0;
+	r14 = r14 >> 2;
+	heap32[(r14)] = r15;
+if(!(r2 !=r12)) //_LBB645_31
+{
+break _39;
+}
+}
+}
+	if(r13 !=0) //_LBB645_34
+{
+	r12 = heapU8[r0+48];
+	if(r12 !=0) //_LBB645_36
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r12 = heap32[(r2)];
+	r12 = (r12 + 1)|0;
+	r13 = r13 >> 2;
+	heap32[(r2)] = r12;
+	r2 = heap32[(r13+-1)];
+	heap32[(g0)] = r2;
+	free(i7);
+	r2 = heap32[(r1+9)];
+}
+	heap32[(r1+11)] = 0;
+}
+	heap8[r0+48] = r10;
+	heap32[(r1+11)] = r9;
+	heap32[(r1+10)] = r11;
+}
+}
+	r9 = r3 >> 2;
+	r2 = r2 << 2;
+	r10 = heap32[(r1+11)];
+	r2 = (r10 + r2)|0;
+	r9 = heap32[(r9)];
+	r2 = r2 >> 2;
+	heap32[(r2)] = r9;
+	r2 = heap32[(r1+9)];
+	r2 = (r2 + 1)|0;
+	r4 = (r4 + -1)|0;
+	r3 = (r3 + 4)|0;
+	heap32[(r1+9)] = r2;
+if(!(r4 !=0)) //_LBB645_20
+{
+break _24;
+}
+}
+}
+} while(0);
+_50: do {
+if(!(r6 <1)) //_LBB645_62
+{
+	r2 = heap32[(r1+14)];
+_52: while(true){
+	r3 = heap32[(r1+15)];
+	if(r3 ==r2) //_LBB645_44
+{
+	r4 = 1;
+	r9 = r2 << 1;
+	r9 = r2 == 0 ? r4 : r9;
+if(!(r3 >=r9)) //_LBB645_43
+{
+	if(r9 !=0) //_LBB645_47
+{
+	r3 = gNumAlignedAllocs;
+	r3 = r3 >> 2;
+	r10 = heap32[(r3)];
+	r11 = r9 << 2;
+	r10 = (r10 + 1)|0;
+	r11 = r11 | 3;
+	heap32[(r3)] = r10;
+	r3 = (r11 + 16)|0;
+	heap32[(g0)] = r3;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB645_49
+{
+	r10 = 0;
+	r11 = (r3 + 4)|0;
+	r10 = (r10 - r11)|0;
+	r10 = r10 & 15;
+	r10 = (r3 + r10)|0;
+	r11 = (r10 + 4)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r3;
+	r3 = r11;
+}
+}
+else{
+	r3 = 0;
+}
+	if(r2 <1) //_LBB645_52
+{
+	r11 = heap32[(r1+16)];
+}
+else{
+	r10 = 0;
+_65: while(true){
+	r11 = heap32[(r1+16)];
+	r12 = r10 << 2;
+	r13 = (r11 + r12)|0;
+	r13 = r13 >> 2;
+	r12 = (r3 + r12)|0;
+	r13 = heap32[(r13)];
+	r10 = (r10 + 1)|0;
+	r12 = r12 >> 2;
+	heap32[(r12)] = r13;
+if(!(r2 !=r10)) //_LBB645_53
+{
+break _65;
+}
+}
+}
+	if(r11 !=0) //_LBB645_56
+{
+	r10 = heapU8[r0+68];
+	if(r10 !=0) //_LBB645_58
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r10 = heap32[(r2)];
+	r10 = (r10 + 1)|0;
+	r11 = r11 >> 2;
+	heap32[(r2)] = r10;
+	r2 = heap32[(r11+-1)];
+	heap32[(g0)] = r2;
+	free(i7);
+	r2 = heap32[(r1+14)];
+}
+	heap32[(r1+16)] = 0;
+}
+	heap8[r0+68] = r4;
+	heap32[(r1+16)] = r3;
+	heap32[(r1+15)] = r9;
+}
+}
+	r3 = r5 >> 2;
+	r2 = r2 << 2;
+	r4 = heap32[(r1+16)];
+	r2 = (r4 + r2)|0;
+	r3 = heap32[(r3)];
+	r2 = r2 >> 2;
+	heap32[(r2)] = r3;
+	r2 = heap32[(r1+14)];
+	r2 = (r2 + 1)|0;
+	r6 = (r6 + -1)|0;
+	r5 = (r5 + 4)|0;
+	heap32[(r1+14)] = r2;
+if(!(r6 !=0)) //_LBB645_42
+{
+break _50;
+}
+}
+}
+} while(0);
+_76: do {
+	if(r8 >0) //_LBB645_64
+{
+	r2 = heap32[(r1+19)];
+_78: while(true){
+	r3 = heap32[(r1+20)];
+	if(r3 ==r2) //_LBB645_67
+{
+	r4 = 1;
+	r5 = r2 << 1;
+	r5 = r2 == 0 ? r4 : r5;
+if(!(r3 >=r5)) //_LBB645_66
+{
+	if(r5 !=0) //_LBB645_70
+{
+	r3 = gNumAlignedAllocs;
+	r3 = r3 >> 2;
+	r6 = heap32[(r3)];
+	r9 = r5 << 2;
+	r6 = (r6 + 1)|0;
+	r9 = r9 | 3;
+	heap32[(r3)] = r6;
+	r3 = (r9 + 16)|0;
+	heap32[(g0)] = r3;
+	malloc(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB645_72
+{
+	r6 = 0;
+	r9 = (r3 + 4)|0;
+	r6 = (r6 - r9)|0;
+	r6 = r6 & 15;
+	r6 = (r3 + r6)|0;
+	r9 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = r3;
+	r3 = r9;
+}
+}
+else{
+	r3 = 0;
+}
+	if(r2 <1) //_LBB645_75
+{
+	r9 = heap32[(r1+21)];
+}
+else{
+	r6 = 0;
+_91: while(true){
+	r9 = heap32[(r1+21)];
+	r10 = r6 << 2;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r3 + r10)|0;
+	r11 = heap32[(r11)];
+	r6 = (r6 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r11;
+if(!(r2 !=r6)) //_LBB645_76
+{
+break _91;
+}
+}
+}
+	if(r9 !=0) //_LBB645_79
+{
+	r6 = heapU8[r0+88];
+	if(r6 !=0) //_LBB645_81
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r6 = heap32[(r2)];
+	r6 = (r6 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r2)] = r6;
+	r2 = heap32[(r9+-1)];
+	heap32[(g0)] = r2;
+	free(i7);
+	r2 = heap32[(r1+19)];
+}
+	heap32[(r1+21)] = 0;
+}
+	heap8[r0+88] = r4;
+	heap32[(r1+21)] = r3;
+	heap32[(r1+20)] = r5;
+}
+}
+	r3 = r7 >> 2;
+	r2 = r2 << 2;
+	r4 = heap32[(r1+21)];
+	r2 = (r4 + r2)|0;
+	r3 = heap32[(r3)];
+	r2 = r2 >> 2;
+	heap32[(r2)] = r3;
+	r2 = heap32[(r1+19)];
+	r2 = (r2 + 1)|0;
+	r8 = (r8 + -1)|0;
+	r7 = (r7 + 4)|0;
+	heap32[(r1+19)] = r2;
+if(!(r8 !=0)) //_LBB645_65
+{
+break _76;
+}
+}
+}
+else{
+	r2 = heap32[(r1+19)];
+}
+} while(0);
+	r3 = heap32[(r1+1)];
+	r3 = r3 >> 2;
+	r1 = heap32[(r1+14)];
+	r1 = (r1 + r2)|0;
+	r2 = heap32[(r3+17)];
+if(!(r1 <=r2)) //_LBB645_87
+{
+	heap32[(g0)] = r0;
+	_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i7);
+}
+}
+}
+} while(0);
+	return;
+}
+
+function _ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp+1)];
+	r2 = (r0 + r1)|0;
+	r3 = r2 >>> 31;
+	r4 = heap32[(fp)];
+	r2 = (r2 + r3)|0;
+	r3 = r4 >> 2;
+	r2 = r2 & 2147483646;
+	r5 = heap32[(r3+3)];
+	r2 = r2 << 1;
+	r2 = (r5 + r2)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r5 = r1;
+	r6 = r0;
+_1: while(true){
+	r7 = r2 >> 2;
+	r8 = heap32[(r7+5)];
+	r8 = r8 >> 2;
+	r9 = heap32[(r3+3)];
+	r8 = heap32[(r8+52)];
+_3: while(true){
+	r10 = r5 << 2;
+	r10 = (r9 + r10)|0;
+	r10 = r10 >> 2;
+	r11 = heap32[(r10)];
+	if(r8 <0) //_LBB646_5
+{
+	r12 = heap32[(r7+6)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+52)];
+}
+else{
+	r12 = r8;
+}
+	r13 = r11 >> 2;
+	r14 = heap32[(r13+5)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+52)];
+	if(r14 <0) //_LBB646_8
+{
+	r14 = heap32[(r13+6)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+52)];
+}
+	if(r14 <r12) //_LBB646_2
+{
+	r5 = (r5 + 1)|0;
+continue _3;
+}
+else{
+break _3;
+}
+}
+_13: while(true){
+	r12 = r6 << 2;
+	r13 = (r9 + r12)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13)];
+	r14 = r13 >> 2;
+	r15 = heap32[(r14+5)];
+	r15 = r15 >> 2;
+	r15 = heap32[(r15+52)];
+	if(r15 <0) //_LBB646_13
+{
+	r15 = heap32[(r14+6)];
+	r15 = r15 >> 2;
+	r15 = heap32[(r15+52)];
+}
+	if(r8 <0) //_LBB646_16
+{
+	r14 = heap32[(r7+6)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+52)];
+}
+else{
+	r14 = r8;
+}
+	if(r14 <r15) //_LBB646_10
+{
+	r6 = (r6 + -1)|0;
+continue _13;
+}
+else{
+break _13;
+}
+}
+	if(r5 <=r6) //_LBB646_20
+{
+	heap32[(r10)] = r13;
+	r7 = heap32[(r3+3)];
+	r7 = (r7 + r12)|0;
+	r5 = (r5 + 1)|0;
+	r6 = (r6 + -1)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r11;
+}
+	if(r5 <=r6) //_LBB646_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+if(!(r6 <=r1)) //_LBB646_24
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r6;
+	_ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i7);
+}
+if(!(r5 >=r0)) //_LBB646_26
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r0;
+	_ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i7);
+}
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+8)];
+	r3 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	r4 = r3 >> 2;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = heap32[(r4+2)];
+if(!(r2 <1)) //_LBB647_5
+{
+	r2 = 0;
+_3: while(true){
+	r5 = heap32[(r4+4)];
+	r6 = r2 << 2;
+	r5 = (r5 + r6)|0;
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	r6 = heapU8[r5+232];
+	r6 = r6 & 2;
+if(!(r6 ==0)) //_LBB647_4
+{
+	r6 = r5 >> 2;
+	r7 = heap32[(r6)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+4)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r7 = r_g0;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r8 = r7 >> 2;
+	r6 = heap32[(r6+5)];
+	r8 = heap32[(r8+2)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+5)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r_g0;
+	heap32[(g0+3)] = 1497645650;
+	heap32[(g0+4)] = r5;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+}
+	r2 = (r2 + 1)|0;
+	r5 = heap32[(r4+2)];
+	if(r5 >r2) //_LBB647_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r2 = heap32[(r4+47)];
+_9: do {
+if(!(r2 <1)) //_LBB647_8
+{
+	r2 = 0;
+_11: while(true){
+	r5 = r2 << 2;
+	r6 = heap32[(r4+49)];
+	r5 = (r6 + r5)|0;
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	r6 = r5 >> 2;
+	r7 = heap32[(r6)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+9)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r7 = r_g0;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r8 = r7 >> 2;
+	r6 = heap32[(r6+10)];
+	r8 = heap32[(r8+2)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+5)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r_g0;
+	heap32[(g0+3)] = 1397641027;
+	heap32[(g0+4)] = r5;
+	r2 = (r2 + 1)|0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r5 = heap32[(r4+47)];
+	if(r5 >r2) //_LBB647_7
+{
+continue _11;
+}
+else{
+break _9;
+}
+}
+}
+} while(0);
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	_ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i7);
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+9)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+245];
+if(!(r1 ==0)) //_LBB648_3
+{
+	r1 = r0 >> 2;
+	r1 = heap32[(r1+44)];
+if(!(r1 ==0)) //_LBB648_3
+{
+	r2 = gNumAlignedFree;
+	r2 = r2 >> 2;
+	r3 = heap32[(r2)];
+	r3 = (r3 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r2)] = r3;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = heap32[(fp+1)];
+	r2 = 0;
+	r3 = r0 >> 2;
+	heap8[r0+245] = r2;
+	heap32[(r3+44)] = r1;
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = _2E_str87;
+	r1 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	r0 = r1 >> 2;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r1 = heap32[(r0+52)];
+if(!(r1 <1)) //_LBB649_5
+{
+	f0 = heapFloat[(fp+1)];
+	r1 = 0;
+_3: while(true){
+	r2 = heap32[(r0+54)];
+	r3 = r1 << 2;
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r3 = heapU8[r2+204];
+	r3 = r3 & 3;
+if(!(r3 !=0)) //_LBB649_4
+{
+	heap32[(g0)] = r2;
+	heapFloat[(g0+1)] = f0;
+	_ZN11btRigidBody19integrateVelocitiesEf(i7);
+	heap32[(g0)] = r2;
+	heapFloat[(g0+1)] = f0;
+	_ZN11btRigidBody12applyDampingEf(i7);
+	r3 = r2 >> 2;
+	f1 = heapFloat[(r3+76)];
+	f2 = heapFloat[(r3+77)];
+	f3 = heapFloat[(r3+78)];
+	r3 = (r2 + 4)|0;
+	r4 = (r2 + 320)|0;
+	r2 = (r2 + 68)|0;
+	heap32[(g0)] = r3;
+	heapFloat[(g0+1)] = f1;
+	heapFloat[(g0+2)] = f2;
+	heapFloat[(g0+3)] = f3;
+	heap32[(g0+4)] = r4;
+	heapFloat[(g0+5)] = f0;
+	heap32[(g0+6)] = r2;
+	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
+}
+	r1 = (r1 + 1)|0;
+	r2 = heap32[(r0+52)];
+	if(r2 >r1) //_LBB649_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_9: do {
+if(!(r3 !=0)) //_LBB649_11
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB649_8
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB649_11
+{
+break _9;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = _2E_str188;
+	r1 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r0 = r1 >> 2;
+	r2 = heap32[(r0+45)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+2)];
+	r4 = heap32[(r0+6)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r4;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = heap32[(r0+47)];
+if(!(r2 <1)) //_LBB650_21
+{
+	r3 = 0;
+_3: while(true){
+	r4 = heap32[(r0+49)];
+	r5 = r3 << 2;
+	r4 = (r4 + r5)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r5 = heap32[(r4+5)];
+_5: do {
+if(!(r5 ==0)) //_LBB650_20
+{
+	r6 = heapU8[r5+204];
+	r6 = r6 & 3;
+if(!(r6 !=0)) //_LBB650_20
+{
+	r4 = heap32[(r4+6)];
+if(!(r4 ==0)) //_LBB650_20
+{
+	r6 = heapU8[r4+204];
+	r6 = r6 & 3;
+if(!(r6 !=0)) //_LBB650_20
+{
+	r5 = r5 >> 2;
+	r6 = heap32[(r5+54)];
+	if(r6 ==2) //_LBB650_8
+{
+__label__ = 8;
+}
+else{
+	if(r6 !=5) //_LBB650_10
+{
+__label__ = 10;
+}
+else{
+__label__ = 8;
+}
+}
+if (__label__ == 8){
+	r6 = r4 >> 2;
+	r6 = heap32[(r6+54)];
+	if(r6 ==2) //_LBB650_20
+{
+break _5;
+}
+else{
+	if(r6 ==5) //_LBB650_20
+{
+break _5;
+}
+}
+}
+	r6 = heap32[(r0+45)];
+	r5 = heap32[(r5+52)];
+	r6 = r6 >> 2;
+	r7 = heap32[(r6+4)];
+	r8 = r5 << 3;
+	r8 = (r7 + r8)|0;
+	r8 = r8 >> 2;
+	r4 = r4 >> 2;
+	r8 = heap32[(r8)];
+	r4 = heap32[(r4+52)];
+if(!(r8 ==r5)) //_LBB650_12
+{
+_17: while(true){
+	r8 = r8 << 3;
+	r5 = r5 << 3;
+	r8 = (r7 + r8)|0;
+	r5 = (r7 + r5)|0;
+	r7 = r8 >> 2;
+	r5 = r5 >> 2;
+	r8 = heap32[(r7)];
+	heap32[(r5)] = r8;
+	r5 = heap32[(r7)];
+	r7 = heap32[(r6+4)];
+	r8 = r5 << 3;
+	r8 = (r7 + r8)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+if(!(r8 !=r5)) //_LBB650_13
+{
+break _17;
+}
+}
+}
+	r8 = r4 << 3;
+	r8 = (r7 + r8)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+_20: do {
+if(!(r8 ==r4)) //_LBB650_16
+{
+_21: while(true){
+	r8 = r8 << 3;
+	r4 = r4 << 3;
+	r8 = (r7 + r8)|0;
+	r4 = (r7 + r4)|0;
+	r7 = r8 >> 2;
+	r4 = r4 >> 2;
+	r8 = heap32[(r7)];
+	heap32[(r4)] = r8;
+	r4 = heap32[(r7)];
+	r7 = heap32[(r6+4)];
+	r8 = r4 << 3;
+	r8 = (r7 + r8)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+if(!(r8 !=r4)) //_LBB650_17
+{
+break _20;
+}
+}
+}
+} while(0);
+if(!(r5 ==r4)) //_LBB650_20
+{
+	r5 = r5 << 3;
+	r7 = (r7 + r5)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r4;
+	r6 = heap32[(r6+4)];
+	r4 = r4 << 3;
+	r4 = (r6 + r4)|0;
+	r5 = (r6 + r5)|0;
+	r4 = r4 >> 2;
+	r5 = r5 >> 2;
+	r6 = heap32[(r4+1)];
+	r5 = heap32[(r5+1)];
+	r5 = (r5 + r6)|0;
+	heap32[(r4+1)] = r5;
+}
+}
+}
+}
+}
+} while(0);
+	r3 = (r3 + 1)|0;
+	if(r2 !=r3) //_LBB650_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r0 = heap32[(r0+45)];
+	r2 = r0 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_27: do {
+if(!(r3 !=0)) //_LBB650_27
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB650_24
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB650_27
+{
+break _27;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	return;
+}
+
+function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+14)];
+	r3 = heap32[(r1+19)];
+	r4 = (r3 + r2)|0;
+if(!(r4 <1)) //_LBB651_2
+{
+	r4 = heap32[(r1+2)];
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+3)];
+	r6 = heap32[(r1+7)];
+	r7 = heap32[(r1+6)];
+	r8 = heap32[(r1+5)];
+	r9 = heap32[(r1+1)];
+	r10 = heap32[(r1+21)];
+	r11 = heap32[(r1+16)];
+	r12 = heap32[(r1+9)];
+	r13 = heap32[(r1+11)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r13;
+	heap32[(g0+2)] = r12;
+	heap32[(g0+3)] = r11;
+	heap32[(g0+4)] = r2;
+	heap32[(g0+5)] = r10;
+	heap32[(g0+6)] = r3;
+	heap32[(g0+7)] = r9;
+	heap32[(g0+8)] = r8;
+	heap32[(g0+9)] = r7;
+	heap32[(g0+10)] = r6;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+	r2 = heap32[(r1+9)];
+if(!(r2 >-1)) //_LBB651_10
+{
+	r3 = heap32[(r1+10)];
+if(!(r3 >-1)) //_LBB651_9
+{
+	r3 = heap32[(r1+11)];
+if(!(r3 ==0)) //_LBB651_8
+{
+	r4 = heapU8[r0+48];
+if(!(r4 ==0)) //_LBB651_7
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r1+11)] = 0;
+}
+	r3 = 1;
+	heap8[r0+48] = r3;
+	heap32[(r1+11)] = 0;
+	heap32[(r1+10)] = 0;
+}
+_14: while(true){
+	r3 = r2 << 2;
+	r4 = heap32[(r1+11)];
+	r3 = (r4 + r3)|0;
+	r2 = (r2 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = 0;
+	if(r2 !=0) //_LBB651_9
+{
+continue _14;
+}
+else{
+break _14;
+}
+}
+}
+	heap32[(r1+9)] = 0;
+	r2 = heap32[(r1+14)];
+_17: do {
+if(!(r2 >-1)) //_LBB651_18
+{
+	r3 = heap32[(r1+15)];
+if(!(r3 >-1)) //_LBB651_17
+{
+	r3 = heap32[(r1+16)];
+if(!(r3 ==0)) //_LBB651_16
+{
+	r4 = heapU8[r0+68];
+if(!(r4 ==0)) //_LBB651_15
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r1+16)] = 0;
+}
+	r3 = 1;
+	heap8[r0+68] = r3;
+	heap32[(r1+16)] = 0;
+	heap32[(r1+15)] = 0;
+}
+_27: while(true){
+	r3 = r2 << 2;
+	r4 = heap32[(r1+16)];
+	r3 = (r4 + r3)|0;
+	r2 = (r2 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = 0;
+	if(r2 !=0) //_LBB651_17
+{
+continue _27;
+}
+else{
+break _17;
+}
+}
+}
+} while(0);
+	heap32[(r1+14)] = 0;
+	r2 = heap32[(r1+19)];
+_30: do {
+if(!(r2 >-1)) //_LBB651_26
+{
+	r3 = heap32[(r1+20)];
+if(!(r3 >-1)) //_LBB651_25
+{
+	r3 = heap32[(r1+21)];
+if(!(r3 ==0)) //_LBB651_24
+{
+	r4 = heapU8[r0+88];
+if(!(r4 ==0)) //_LBB651_23
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r1+21)] = 0;
+}
+	r3 = 1;
+	heap8[r0+88] = r3;
+	heap32[(r1+21)] = 0;
+	heap32[(r1+20)] = 0;
+}
+_40: while(true){
+	r0 = r2 << 2;
+	r3 = heap32[(r1+21)];
+	r0 = (r3 + r0)|0;
+	r2 = (r2 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+	if(r2 !=0) //_LBB651_25
+{
+continue _40;
+}
+else{
+break _30;
+}
+}
+}
+} while(0);
+	heap32[(r1+19)] = 0;
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+64)];
+	r3 = heap32[(r1+63)];
+	r4 = heap32[(fp+1)];
+	if(r2 ==r3) //_LBB652_2
+{
+	r5 = 1;
+	r6 = r3 << 1;
+	r6 = r3 == 0 ? r5 : r6;
+if(!(r2 >=r6)) //_LBB652_1
+{
+	if(r6 !=0) //_LBB652_5
+{
+	r2 = gNumAlignedAllocs;
+	r2 = r2 >> 2;
+	r7 = heap32[(r2)];
+	r8 = r6 << 2;
+	r7 = (r7 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r2)] = r7;
+	r2 = (r8 + 16)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB652_7
+{
+	r7 = 0;
+	r8 = (r2 + 4)|0;
+	r7 = (r7 - r8)|0;
+	r7 = r7 & 15;
+	r7 = (r2 + r7)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r2;
+	r2 = r8;
+}
+}
+else{
+	r2 = 0;
+}
+	r7 = (r0 + 260)|0;
+	if(r3 <1) //_LBB652_10
+{
+	r8 = r7 >> 2;
+	r9 = heap32[(r8)];
+}
+else{
+	r8 = 0;
+_12: while(true){
+	r9 = r7 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r8 << 2;
+	r11 = (r9 + r10)|0;
+	r11 = r11 >> 2;
+	r10 = (r2 + r10)|0;
+	r11 = heap32[(r11)];
+	r8 = (r8 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r11;
+if(!(r3 !=r8)) //_LBB652_11
+{
+break _12;
+}
+}
+	r7 = (r0 + 260)|0;
+}
+	if(r9 !=0) //_LBB652_15
+{
+	r8 = heapU8[r0+264];
+	if(r8 !=0) //_LBB652_17
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r8 = heap32[(r3)];
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r3)] = r8;
+	r3 = heap32[(r9+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+	r3 = heap32[(r1+63)];
+}
+	r8 = r7 >> 2;
+	heap32[(r8)] = 0;
+}
+	r7 = r7 >> 2;
+	heap8[r0+264] = r5;
+	heap32[(r7)] = r2;
+	heap32[(r1+64)] = r6;
+}
+}
+	r0 = r3 << 2;
+	r2 = heap32[(r1+65)];
+	r0 = (r2 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r4;
+	r0 = heap32[(r1+63)];
+	r0 = (r0 + 1)|0;
+	heap32[(r1+63)] = r0;
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld19integrateTransformsEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+var __label__ = 0;
+	i7 = sp + -264;var g0 = i7>>2; // save stack
+	r0 = _2E_str794;
+	r1 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	r0 = r1 >> 2;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r2 = heap32[(r0+52)];
+if(!(r2 <1)) //_LBB653_19
+{
+	f0 = heapFloat[(fp+1)];
+	r2 = 0;
+	r15 = -1;
+_3: while(true){
+	r3 = heap32[(r0+54)];
+	r4 = r2 << 2;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r4 = r3 >> 2;
+	heap32[(r4+60)] = 1065353216;
+	r5 = heap32[(r4+54)];
+if(!(r5 ==2)) //_LBB653_18
+{
+if(!(r5 ==5)) //_LBB653_18
+{
+	r5 = heapU8[r3+204];
+	r5 = r5 & 3;
+if(!(r5 !=0)) //_LBB653_18
+{
+	f1 = heapFloat[(r4+76)];
+	f2 = heapFloat[(r4+77)];
+	f3 = heapFloat[(r4+78)];
+	r5 = (r3 + 320)|0;
+	r6 = (r3 + 4)|0;
+	r7 = sp + -80;
+	heap32[(g0)] = r6;
+	heapFloat[(g0+1)] = f1;
+	heapFloat[(g0+2)] = f2;
+	heapFloat[(g0+3)] = f3;
+	heap32[(g0+4)] = r5;
+	heapFloat[(g0+5)] = f0;
+	heap32[(g0+6)] = r7;
+	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
+	f1 = heapFloat[(r4+62)];
+	f1 = f1*f1;
+	f2 =                         0;
+_9: do {
+if(!(f1 ==f2)) //_LBB653_17
+{
+	r8 = r7 >> 2;
+	f2 = heapFloat[(r8+14)];
+	f3 = heapFloat[(r4+15)];
+	f4 = heapFloat[(r8+13)];
+	f5 = heapFloat[(r4+14)];
+	f6 = heapFloat[(r8+12)];
+	f7 = heapFloat[(r4+13)];
+	f2 = f2-f3;
+	f3 = f4-f5;
+	f4 = f6-f7;
+	f4 = f4*f4;
+	f3 = f3*f3;
+	f3 = f4+f3;
+	f2 = f2*f2;
+	f2 = f3+f2;
+if(!(f1 >=f2)) //_LBB653_17
+{
+	r9 = _2E_str895;
+	heap32[(g0)] = r9;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r9 = heap32[(r4+48)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+1)];
+if(!(r9 >19)) //_LBB653_11
+{
+	r9 = gNumClampedCcdMotions;
+	r9 = r9 >> 2;
+	r10 = heap32[(r9)];
+	r10 = (r10 + 1)|0;
+	heap32[(r9)] = r10;
+	r9 = heap32[(r0+20)];
+	r10 = r9 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+9)];
+	r11 = heap32[(r0+6)];
+	r12 = sp + -176;
+	heap32[(g0)] = r9;
+	r9 = r12 >> 2;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	r13 = 1;
+	heap32[(r9+1)] = 1065353216;
+	r14 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE;
+	heap16[(sp+-168)>>1] = r13;
+	r13 = (r14 + 8)|0;
+	heap16[(sp+-166)>>1] = r15;
+	heap32[(fp+-44)] = r13;
+	heap32[(r9+3)] = heap32[(r4+13)];
+	heap32[(r9+4)] = heap32[(r4+14)];
+	heap32[(r9+5)] = heap32[(r4+15)];
+	heap32[(r9+6)] = heap32[(r4+16)];
+	heap32[(r9+7)] = heap32[(r8+12)];
+	heap32[(r9+8)] = heap32[(r8+13)];
+	heap32[(r9+9)] = heap32[(r8+14)];
+	r14 = _ZTV34btClosestNotMeConvexResultCallback;
+	heap32[(r9+10)] = heap32[(r8+15)];
+	r8 = (r14 + 8)|0;
+	heap32[(r9+19)] = 0;
+	heap32[(fp+-44)] = r8;
+	heap32[(r9+20)] = r3;
+	heap32[(r9+21)] = 0;
+	heap32[(r9+22)] = r_g0;
+	r8 = sp + -232;
+	heap32[(r9+23)] = r11;
+	r10 = r8 >> 2;
+	f1 = heapFloat[(r4+61)];
+	heap32[(r10+2)] = 0;
+	heap32[(r10+3)] = 1065353216;
+	heap32[(r10+4)] = 1065353216;
+	r11 = _ZTV13btSphereShape;
+	heap32[(r10+5)] = 1065353216;
+	r11 = (r11 + 8)|0;
+	heap32[(r10+6)] = 0;
+	heap32[(fp+-58)] = r11;
+	heap32[(r10+1)] = 8;
+	heapFloat[(r10+7)] = f1;
+	heapFloat[(r10+11)] = f1;
+	r10 = heap32[(r4+47)];
+	r10 = heapU16[(r10+4)>>1];
+	heap16[(sp+-168)>>1] = r10;
+	r10 = heap32[(r4+47)];
+	r10 = heapU16[(r10+6)>>1];
+	heap16[(sp+-166)>>1] = r10;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = r12;
+	heap32[(g0+5)] = 0;
+	_ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(i7);
+	f1 = heapFloat[(r9+1)];
+	f2 =                         1;
+if(!(f1 >=f2)) //_LBB653_10
+{
+	heapFloat[(r4+60)] = f1;
+	f2 = heapFloat[(r4+76)];
+	f3 = heapFloat[(r4+77)];
+	f4 = heapFloat[(r4+78)];
+	f1 = f1*f0;
+	heap32[(g0)] = r6;
+	heapFloat[(g0+1)] = f2;
+	heapFloat[(g0+2)] = f3;
+	heapFloat[(g0+3)] = f4;
+	heap32[(g0+4)] = r5;
+	heapFloat[(g0+5)] = f1;
+	heap32[(g0+6)] = r7;
+	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
+	heap32[(r4+60)] = 0;
+}
+	r4 = _ZTV13btConvexShape;
+	r4 = (r4 + 8)|0;
+	heap32[(fp+-58)] = r4;
+	heap32[(fp+-44)] = r13;
+}
+	r4 = _ZN15CProfileManager11CurrentNodeE;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r6 = r5 >> 2;
+	r8 = heap32[(r6+4)];
+	r8 = (r8 + -1)|0;
+	heap32[(r6+4)] = r8;
+if(!(r8 !=0)) //_LBB653_17
+{
+	r8 = heap32[(r6+1)];
+	if(r8 !=0) //_LBB653_14
+{
+	r5 = sp + -8;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = 0;
+	r8 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+	r8 = r8 >> 2;
+	r5 = r5 >> 2;
+	r9 = heap32[(fp+-2)];
+	r10 = heap32[(r8)];
+	r9 = (r9 - r10)|0;
+	r5 = heap32[(r5+1)];
+	r8 = heap32[(r8+1)];
+	r5 = (r5 - r8)|0;
+	r8 = (r9 * 1000000)|0;
+	r5 = (r5 + r8)|0;
+	r8 = heap32[(r6+3)];
+	r5 = (r5 - r8)|0;
+	f1 = uint(r5); //fuitos r5, f1
+	f2 =                      1000;
+	f3 = heapFloat[(r6+2)];
+	f1 = f1/f2;
+	f1 = f3+f1;
+	heapFloat[(r6+2)] = f1;
+	r5 = heap32[(r6+4)];
+	if(r5 !=0) //_LBB653_17
+{
+break _9;
+}
+else{
+	r5 = heap32[(r4)];
+}
+}
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+5)];
+	heap32[(r4)] = r5;
+}
+}
+}
+} while(0);
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r7;
+	_ZN11btRigidBody18proceedToTransformERK11btTransform(i7);
+}
+}
+}
+	r2 = (r2 + 1)|0;
+	r3 = heap32[(r0+52)];
+	if(r3 >r2) //_LBB653_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_26: do {
+if(!(r3 !=0)) //_LBB653_25
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB653_22
+{
+	r1 = sp + -16;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-4)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB653_25
+{
+break _26;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var r24;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -168;var g0 = i7>>2; // save stack
+	r0 = _2E_str996;
+	heap32[(g0)] = r0;
+	r0 = sp + -48;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r1 = 1;
+	r2 = r0 >> 2;
+	heap8[sp+-32] = r1;
+	heap32[(r2+3)] = 0;
+	r3 = heap32[(fp)];
+	heap32[(r2+1)] = 0;
+	r4 = r3 >> 2;
+	heap32[(r2+2)] = 0;
+	r5 = heap32[(r4+47)];
+if(!(r5 <1)) //_LBB654_7
+{
+	r6 = gNumAlignedAllocs;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	r8 = r5 << 2;
+	r7 = (r7 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r6)] = r7;
+	r6 = (r8 + 16)|0;
+	heap32[(g0)] = r6;
+	malloc(i7);
+	r6 = r_g0;
+	if(r6 !=0) //_LBB654_3
+{
+	r7 = 0;
+	r8 = (r6 + 4)|0;
+	r7 = (r7 - r8)|0;
+	r7 = r7 & 15;
+	r7 = (r6 + r7)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r6;
+	r6 = r8;
+}
+	r7 = 1;
+	heap8[sp+-32] = r7;
+	r7 = (r7 - r5)|0;
+	r8 = 0;
+	heap32[(r2+3)] = r6;
+	heap32[(r2+2)] = r5;
+_6: while(true){
+	r9 = r8 << 2;
+	r6 = (r6 - r9)|0;
+	r6 = r6 >> 2;
+	heap32[(r6)] = 0;
+	if(r7 ==r8) //_LBB654_7
+{
+break _6;
+}
+else{
+	r6 = heap32[(r2+3)];
+	r8 = (r8 + -1)|0;
+continue _6;
+}
+}
+}
+	heap32[(r2+1)] = r5;
+	r5 = heap32[(r4)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+24)];
+	heap32[(g0)] = r3;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r5 = r_g0;
+_10: do {
+if(!(r5 <1)) //_LBB654_10
+{
+	r5 = 0;
+_12: while(true){
+	r6 = r5 << 2;
+	r7 = heap32[(r4+49)];
+	r7 = (r7 + r6)|0;
+	r7 = r7 >> 2;
+	r8 = heap32[(r2+3)];
+	r6 = (r8 + r6)|0;
+	r7 = heap32[(r7)];
+	r6 = r6 >> 2;
+	heap32[(r6)] = r7;
+	r6 = heap32[(r4)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+24)];
+	r5 = (r5 + 1)|0;
+	heap32[(g0)] = r3;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = r_g0;
+	if(r6 >r5) //_LBB654_9
+{
+continue _12;
+}
+else{
+break _10;
+}
+}
+}
+} while(0);
+	r5 = heap32[(r2+1)];
+if(!(r5 <2)) //_LBB654_12
+{
+	r5 = (r5 + -1)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r5;
+	_ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i7);
+}
+	r0 = heap32[(fp+1)];
+	r5 = heap32[(r4)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+24)];
+	heap32[(g0)] = r3;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB654_14
+{
+	r3 = heap32[(r2+3)];
+}
+else{
+	r3 = 0;
+}
+	r5 = heap32[(r4+6)];
+	r6 = heap32[(r4+44)];
+	r7 = _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback;
+	r8 = heap32[(r4+19)];
+	r9 = heap32[(r4+21)];
+	r10 = heap32[(r2+1)];
+	r11 = sp + -144;
+	r7 = (r7 + 8)|0;
+	r12 = r11 >> 2;
+	heap32[(fp+-36)] = r7;
+	heap32[(r12+1)] = r0;
+	heap32[(r12+2)] = r6;
+	heap32[(r12+3)] = r3;
+	heap32[(r12+4)] = r10;
+	heap32[(r12+5)] = r9;
+	heap32[(r12+6)] = r8;
+	heap32[(r12+7)] = r5;
+	heap8[sp+-96] = r1;
+	heap32[(r12+11)] = 0;
+	heap32[(r12+9)] = 0;
+	heap32[(r12+10)] = 0;
+	heap8[sp+-76] = r1;
+	heap32[(r12+16)] = 0;
+	heap32[(r12+14)] = 0;
+	heap32[(r12+15)] = 0;
+	heap8[sp+-56] = r1;
+	heap32[(r12+21)] = 0;
+	heap32[(r12+19)] = 0;
+	r3 = r6 >> 2;
+	heap32[(r12+20)] = 0;
+	r6 = r5 >> 2;
+	r3 = heap32[(r3)];
+	r6 = heap32[(r6)];
+	r3 = r3 >> 2;
+	r6 = r6 >> 2;
+	r3 = heap32[(r3+2)];
+	r6 = heap32[(r6+9)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r6 = heap32[(r4+2)];
+	r8 = heap32[(r4+44)];
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r_g0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = heap32[(r4+45)];
+	r5 = heap32[(r4+6)];
+	r6 = _2E_str155;
+	heap32[(g0)] = r6;
+	r6 = r3 >> 2;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r8 = heap32[(r6+7)];
+_22: do {
+if(!(r8 >-1)) //_LBB654_23
+{
+	r9 = heap32[(r6+8)];
+if(!(r9 >-1)) //_LBB654_22
+{
+	r9 = heap32[(r6+9)];
+if(!(r9 ==0)) //_LBB654_21
+{
+	r10 = heapU8[r3+40];
+if(!(r10 ==0)) //_LBB654_20
+{
+	r10 = gNumAlignedFree;
+	r10 = r10 >> 2;
+	r13 = heap32[(r10)];
+	r13 = (r13 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r10)] = r13;
+	r9 = heap32[(r9+-1)];
+	heap32[(g0)] = r9;
+	free(i7);
+}
+	heap32[(r6+9)] = 0;
+}
+	r9 = 1;
+	heap8[r3+40] = r9;
+	heap32[(r6+9)] = 0;
+	heap32[(r6+8)] = 0;
+}
+_32: while(true){
+	r9 = r8 << 2;
+	r10 = heap32[(r6+9)];
+	r9 = (r10 + r9)|0;
+	r8 = (r8 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = 0;
+	if(r8 !=0) //_LBB654_22
+{
+continue _32;
+}
+else{
+break _22;
+}
+}
+}
+} while(0);
+	heap32[(r6+7)] = 0;
+	r8 = heap32[(r6+2)];
+	if(r8 >0) //_LBB654_25
+{
+	r9 = 0;
+_37: while(true){
+	r10 = heap32[(r6+4)];
+	r13 = r9 << 3;
+	r13 = (r10 + r13)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13)];
+	r14 = r9 << 1;
+	if(r9 ==r13) //_LBB654_28
+{
+	r16 = r9;
+}
+else{
+	r15 = r10;
+	r16 = r9;
+_42: while(true){
+	r13 = r13 << 3;
+	r16 = r16 << 3;
+	r13 = (r15 + r13)|0;
+	r15 = (r15 + r16)|0;
+	r13 = r13 >> 2;
+	r15 = r15 >> 2;
+	r16 = heap32[(r13)];
+	heap32[(r15)] = r16;
+	r16 = heap32[(r13)];
+	r15 = heap32[(r6+4)];
+	r13 = r16 << 3;
+	r13 = (r15 + r13)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13)];
+if(!(r13 !=r16)) //_LBB654_29
+{
+break _42;
+}
+}
+}
+	r13 = r14 << 2;
+	r10 = (r10 + r13)|0;
+	r9 = (r9 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r16;
+if(!(r8 !=r9)) //_LBB654_26
+{
+break _37;
+}
+}
+	r8 = heap32[(r6+2)];
+	if(r8 >1) //_LBB654_33
+{
+	r9 = (r3 + 4)|0;
+	r8 = (r8 + -1)|0;
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r8;
+	_ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i7);
+	r8 = heap32[(r6+2)];
+}
+}
+	r9 = 0;
+_48: while(true){
+	r10 = r9;
+	if(r10 <r8) //_LBB654_35
+{
+	r13 = heap32[(r6+4)];
+	r9 = r10 << 3;
+	r9 = (r13 + r9)|0;
+	r9 = r9 >> 2;
+	r14 = heap32[(r9)];
+	r15 = (r10 + 1)|0;
+_51: while(true){
+	r9 = r15;
+	if(r9 >=r8) //_LBB654_46
+{
+break _51;
+}
+else{
+	r15 = r9 << 3;
+	r15 = (r13 + r15)|0;
+	r16 = r15 >> 2;
+	r15 = (r9 + 1)|0;
+	r16 = heap32[(r16)];
+if(!(r16 ==r14)) //_LBB654_36
+{
+break _51;
+}
+}
+}
+	r16 = 1;
+	r15 = r10;
+_55: while(true){
+	if(r15 <r9) //_LBB654_38
+{
+	r17 = r15 << 3;
+	r17 = (r13 + r17)|0;
+	r17 = r17 >> 2;
+	r17 = heap32[(r17+1)];
+	r18 = heap32[(r4+4)];
+	r17 = r17 << 2;
+	r17 = (r18 + r17)|0;
+	r17 = r17 >> 2;
+	r17 = heap32[(r17)];
+	r17 = r17 >> 2;
+	r18 = heap32[(r17+52)];
+	if(r18 ==r14) //_LBB654_42
+{
+	r17 = heap32[(r17+54)];
+	r18 = 0;
+	if(r17 ==4) //_LBB654_44
+{
+	r16 = r18;
+}
+else{
+	r16 = r17 == 1 ? r18 : r16;
+}
+}
+else{
+	if(r18 !=-1) //_LBB654_41
+{
+__label__ = 37;
+break _48;
+}
+}
+	r15 = (r15 + 1)|0;
+}
+else{
+break _55;
+}
+}
+	r13 = r16 & 255;
+	if(r13 ==0) //_LBB654_50
+{
+_67: while(true){
+	if(r10 <r9) //_LBB654_58
+{
+	r13 = heap32[(r6+4)];
+	r15 = r10 << 3;
+	r13 = (r13 + r15)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+1)];
+	r15 = heap32[(r4+4)];
+	r13 = r13 << 2;
+	r13 = (r15 + r13)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r15 = heap32[(r13+52)];
+	if(r15 ==r14) //_LBB654_61
+{
+	r15 = heap32[(r13+54)];
+if(!(r15 !=2)) //_LBB654_63
+{
+	heap32[(r13+54)] = 3;
+	heap32[(r13+55)] = 0;
+}
+}
+else{
+if(!(r15 ==-1)) //_LBB654_63
+{
+__label__ = 54;
+break _48;
+}
+}
+	r10 = (r10 + 1)|0;
+continue _67;
+}
+else{
+continue _48;
+}
+}
+}
+else{
+_75: while(true){
+	if(r10 <r9) //_LBB654_51
+{
+	r13 = heap32[(r6+4)];
+	r15 = r10 << 3;
+	r13 = (r13 + r15)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+1)];
+	r15 = heap32[(r4+4)];
+	r13 = r13 << 2;
+	r13 = (r15 + r13)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r15 = heap32[(r13+52)];
+	if(r15 ==r14) //_LBB654_54
+{
+	r15 = heap32[(r13+54)];
+	r15 = (r15 + -4)|0;
+if(!(uint(r15) <uint(2))) //_LBB654_56
+{
+	heap32[(r13+54)] = 2;
+}
+}
+else{
+if(!(r15 ==-1)) //_LBB654_56
+{
+__label__ = 47;
+break _48;
+}
+}
+	r10 = (r10 + 1)|0;
+continue _75;
+}
+else{
+continue _48;
+}
+}
+}
+}
+else{
+__label__ = 60;
+break _48;
+}
+}
+switch(__label__ ){//multiple entries
+case 37:
+	r0 = _2E_str1156;
+	r1 = _2E_str2157;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 242;
+	_assert(i7);
+break;
+case 54:
+	r0 = _2E_str1156;
+	r1 = _2E_str2157;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 290;
+	_assert(i7);
+break;
+case 60:
+	r8 = r5 >> 2;
+	r9 = heap32[(r8)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+9)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r9 = r_g0;
+_87: do {
+if(!(r9 <1)) //_LBB654_104
+{
+	r10 = 0;
+_89: while(true){
+	r13 = heap32[(r8)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+10)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r10;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+	r13 = r_g0;
+	r14 = r13 >> 2;
+	r15 = heap32[(r14+277)];
+	r14 = heap32[(r14+278)];
+	if(r15 ==0) //_LBB654_70
+{
+__label__ = 64;
+}
+else{
+	r16 = r15 >> 2;
+	r16 = heap32[(r16+54)];
+	if(r16 !=2) //_LBB654_72
+{
+__label__ = 66;
+}
+else{
+__label__ = 64;
+}
+}
+if (__label__ == 64){
+	if(r14 ==0) //_LBB654_103
+{
+__label__ = 95;
+}
+else{
+	r16 = r14 >> 2;
+	r16 = heap32[(r16+54)];
+	if(r16 ==2) //_LBB654_103
+{
+__label__ = 95;
+}
+else{
+__label__ = 66;
+}
+}
+}
+if (__label__ == 66){
+	r16 = heapU8[r15+204];
+	r16 = r16 & 2;
+if(!(r16 ==0)) //_LBB654_78
+{
+	r16 = r15 >> 2;
+	r16 = heap32[(r16+54)];
+if(!(r16 ==2)) //_LBB654_78
+{
+	r16 = heapU8[r14+204];
+	r16 = r16 & 3;
+if(!(r16 !=0)) //_LBB654_78
+{
+	r16 = r14 >> 2;
+	r17 = heap32[(r16+54)];
+	r17 = (r17 + -4)|0;
+if(!(uint(r17) <uint(2))) //_LBB654_77
+{
+	heap32[(r16+54)] = 1;
+}
+	heap32[(r16+55)] = 0;
+}
+}
+}
+	r16 = heapU8[r14+204];
+	r16 = r16 & 2;
+if(!(r16 ==0)) //_LBB654_84
+{
+	r16 = r14 >> 2;
+	r16 = heap32[(r16+54)];
+if(!(r16 ==2)) //_LBB654_84
+{
+	r16 = heapU8[r15+204];
+	r16 = r16 & 3;
+if(!(r16 !=0)) //_LBB654_84
+{
+	r16 = r15 >> 2;
+	r17 = heap32[(r16+54)];
+	r17 = (r17 + -4)|0;
+if(!(uint(r17) <uint(2))) //_LBB654_83
+{
+	heap32[(r16+54)] = 1;
+}
+	heap32[(r16+55)] = 0;
+}
+}
+}
+	r16 = heapU8[r3+64];
+if(!(r16 ==0)) //_LBB654_103
+{
+	r16 = heap32[(r8)];
+	r16 = r16 >> 2;
+	r16 = heap32[(r16+7)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r15;
+	heap32[(g0+2)] = r14;
+	__FUNCTION_TABLE__[(r16)>>2](i7);
+	r14 = r_g0;
+if(!(r14 ==0)) //_LBB654_103
+{
+	r14 = heap32[(r6+8)];
+	r15 = heap32[(r6+7)];
+	if(r14 ==r15) //_LBB654_88
+{
+	r16 = 1;
+	r17 = r15 << 1;
+	r17 = r15 == 0 ? r16 : r17;
+if(!(r14 >=r17)) //_LBB654_87
+{
+	if(r17 !=0) //_LBB654_91
+{
+	r14 = gNumAlignedAllocs;
+	r14 = r14 >> 2;
+	r18 = heap32[(r14)];
+	r19 = r17 << 2;
+	r18 = (r18 + 1)|0;
+	r19 = r19 | 3;
+	heap32[(r14)] = r18;
+	r14 = (r19 + 16)|0;
+	heap32[(g0)] = r14;
+	malloc(i7);
+	r14 = r_g0;
+	if(r14 !=0) //_LBB654_93
+{
+	r15 = 0;
+	r18 = (r14 + 4)|0;
+	r15 = (r15 - r18)|0;
+	r15 = r15 & 15;
+	r15 = (r14 + r15)|0;
+	r18 = r15 >> 2;
+	heap32[(r18)] = r14;
+	r14 = (r15 + 4)|0;
+	r15 = heap32[(r6+7)];
+}
+}
+else{
+	r14 = 0;
+}
+if(!(r15 <1)) //_LBB654_97
+{
+	r18 = 0;
+_126: while(true){
+	r19 = r18 << 2;
+	r20 = heap32[(r6+9)];
+	r20 = (r20 + r19)|0;
+	r20 = r20 >> 2;
+	r19 = (r14 + r19)|0;
+	r20 = heap32[(r20)];
+	r18 = (r18 + 1)|0;
+	r19 = r19 >> 2;
+	heap32[(r19)] = r20;
+if(!(r15 !=r18)) //_LBB654_96
+{
+break _126;
+}
+}
+}
+	r15 = heap32[(r6+9)];
+if(!(r15 ==0)) //_LBB654_101
+{
+	r18 = heapU8[r3+40];
+if(!(r18 ==0)) //_LBB654_100
+{
+	r18 = gNumAlignedFree;
+	r18 = r18 >> 2;
+	r19 = heap32[(r18)];
+	r19 = (r19 + 1)|0;
+	r15 = r15 >> 2;
+	heap32[(r18)] = r19;
+	r15 = heap32[(r15+-1)];
+	heap32[(g0)] = r15;
+	free(i7);
+}
+	heap32[(r6+9)] = 0;
+}
+	heap8[r3+40] = r16;
+	heap32[(r6+9)] = r14;
+	heap32[(r6+8)] = r17;
+	r15 = heap32[(r6+7)];
+}
+}
+	r14 = r15 << 2;
+	r15 = heap32[(r6+9)];
+	r14 = (r15 + r14)|0;
+	r14 = r14 >> 2;
+	heap32[(r14)] = r13;
+	r13 = heap32[(r6+7)];
+	r13 = (r13 + 1)|0;
+	heap32[(r6+7)] = r13;
+}
+}
+}
+	r10 = (r10 + 1)|0;
+	if(r9 !=r10) //_LBB654_68
+{
+continue _89;
+}
+else{
+break _87;
+}
+}
+}
+} while(0);
+	r9 = _ZN15CProfileManager11CurrentNodeE;
+	r9 = r9 >> 2;
+	r10 = heap32[(r9)];
+	r13 = r10 >> 2;
+	r14 = heap32[(r13+4)];
+	r14 = (r14 + -1)|0;
+	heap32[(r13+4)] = r14;
+_138: do {
+if(!(r14 !=0)) //_LBB654_110
+{
+	r14 = heap32[(r13+1)];
+	if(r14 !=0) //_LBB654_107
+{
+	r10 = sp + -24;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = 0;
+	r14 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r14 = r14 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r10 = r10 >> 2;
+	r15 = heap32[(fp+-6)];
+	r16 = heap32[(r14)];
+	r15 = (r15 - r16)|0;
+	r10 = heap32[(r10+1)];
+	r14 = heap32[(r14+1)];
+	r10 = (r10 - r14)|0;
+	r14 = (r15 * 1000000)|0;
+	r10 = (r10 + r14)|0;
+	r14 = heap32[(r13+3)];
+	r10 = (r10 - r14)|0;
+	f0 = uint(r10); //fuitos r10, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r13+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r13+2)] = f0;
+	r10 = heap32[(r13+4)];
+	if(r10 !=0) //_LBB654_110
+{
+break _138;
+}
+else{
+	r10 = heap32[(r9)];
+}
+}
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+5)];
+	heap32[(r9)] = r10;
+}
+} while(0);
+	r10 = heap32[(r6+2)];
+	r13 = _2E_str3158;
+	heap32[(g0)] = r13;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r13 = heapU8[r3+64];
+_145: do {
+	if(r13 !=0) //_LBB654_112
+{
+	r5 = heap32[(r6+7)];
+if(!(r5 <2)) //_LBB654_114
+{
+	r8 = (r3 + 24)|0;
+	r13 = (r5 + -1)|0;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r13;
+	_ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i7);
+}
+if(!(r10 <1)) //_LBB654_163
+{
+	r8 = 0;
+	r13 = r8;
+	r14 = r8;
+_151: while(true){
+	r15 = heap32[(r6+4)];
+	r16 = r14 << 3;
+	r15 = (r15 + r16)|0;
+	r15 = r15 >> 2;
+	r15 = heap32[(r15)];
+	r16 = r8;
+_153: while(true){
+	if(r14 >=r10) //_LBB654_139
+{
+break _153;
+}
+else{
+	r17 = heap32[(r6+4)];
+	r18 = r14 << 3;
+	r17 = (r17 + r18)|0;
+	r17 = r17 >> 2;
+	r18 = heap32[(r17)];
+	if(r18 ==r15) //_LBB654_117
+{
+	r17 = heap32[(r17+1)];
+	r18 = heap32[(r4+4)];
+	r17 = r17 << 2;
+	r17 = (r18 + r17)|0;
+	r17 = r17 >> 2;
+	r18 = heap32[(r6+13)];
+	r19 = heap32[(r6+12)];
+	r17 = heap32[(r17)];
+	if(r18 ==r19) //_LBB654_119
+{
+	r20 = 1;
+	r21 = r19 << 1;
+	r21 = r19 == 0 ? r20 : r21;
+if(!(r18 >=r21)) //_LBB654_118
+{
+	if(r21 !=0) //_LBB654_122
+{
+	r18 = gNumAlignedAllocs;
+	r18 = r18 >> 2;
+	r22 = heap32[(r18)];
+	r23 = r21 << 2;
+	r22 = (r22 + 1)|0;
+	r23 = r23 | 3;
+	heap32[(r18)] = r22;
+	r18 = (r23 + 16)|0;
+	heap32[(g0)] = r18;
+	malloc(i7);
+	r18 = r_g0;
+	if(r18 !=0) //_LBB654_124
+{
+	r19 = 0;
+	r22 = (r18 + 4)|0;
+	r19 = (r19 - r22)|0;
+	r19 = r19 & 15;
+	r19 = (r18 + r19)|0;
+	r22 = r19 >> 2;
+	heap32[(r22)] = r18;
+	r18 = (r19 + 4)|0;
+	r19 = heap32[(r6+12)];
+}
+}
+else{
+	r18 = 0;
+}
+if(!(r19 <1)) //_LBB654_128
+{
+	r22 = 0;
+_167: while(true){
+	r23 = r22 << 2;
+	r24 = heap32[(r6+14)];
+	r24 = (r24 + r23)|0;
+	r24 = r24 >> 2;
+	r23 = (r18 + r23)|0;
+	r24 = heap32[(r24)];
+	r22 = (r22 + 1)|0;
+	r23 = r23 >> 2;
+	heap32[(r23)] = r24;
+if(!(r19 !=r22)) //_LBB654_127
+{
+break _167;
+}
+}
+}
+	r19 = heap32[(r6+14)];
+if(!(r19 ==0)) //_LBB654_132
+{
+	r22 = heapU8[r3+60];
+if(!(r22 ==0)) //_LBB654_131
+{
+	r22 = gNumAlignedFree;
+	r22 = r22 >> 2;
+	r23 = heap32[(r22)];
+	r23 = (r23 + 1)|0;
+	r19 = r19 >> 2;
+	heap32[(r22)] = r23;
+	r19 = heap32[(r19+-1)];
+	heap32[(g0)] = r19;
+	free(i7);
+}
+	heap32[(r6+14)] = 0;
+}
+	heap8[r3+60] = r20;
+	heap32[(r6+14)] = r18;
+	heap32[(r6+13)] = r21;
+	r19 = heap32[(r6+12)];
+}
+}
+	r18 = r19 << 2;
+	r19 = heap32[(r6+14)];
+	r18 = (r19 + r18)|0;
+	r18 = r18 >> 2;
+	heap32[(r18)] = r17;
+	r18 = heap32[(r6+12)];
+	r18 = (r18 + 1)|0;
+	r17 = r17 >> 2;
+	heap32[(r6+12)] = r18;
+	r17 = heap32[(r17+54)];
+	if(r17 !=2) //_LBB654_135
+{
+	r18 = 1;
+	r16 = r17 == 5 ? r18 : r16;
+}
+else{
+	r16 = 1;
+}
+	r14 = (r14 + 1)|0;
+}
+else{
+break _153;
+}
+}
+}
+_182: do {
+	if(r13 <r5) //_LBB654_141
+{
+	r17 = heap32[(r6+9)];
+	r19 = r13 << 2;
+	r18 = (r17 + r19)|0;
+	r20 = r18 >> 2;
+	r20 = heap32[(r20)];
+	r20 = r20 >> 2;
+	r21 = heap32[(r20+277)];
+	r21 = r21 >> 2;
+	r21 = heap32[(r21+52)];
+	if(r21 <0) //_LBB654_143
+{
+	r21 = heap32[(r20+278)];
+	r21 = r21 >> 2;
+	r21 = heap32[(r21+52)];
+}
+	if(r21 !=r15) //_LBB654_140
+{
+__label__ = 129;
+}
+else{
+	r19 = (r17 + r19)|0;
+	r20 = 1;
+_188: while(true){
+	r17 = r20;
+	r1 = (r13 + r17)|0;
+	if(r1 >=r5) //_LBB654_151
+{
+__label__ = 138;
+break _182;
+}
+else{
+	r20 = r17 << 2;
+	r20 = (r19 + r20)|0;
+	r20 = r20 >> 2;
+	r20 = heap32[(r20)];
+	r20 = r20 >> 2;
+	r21 = heap32[(r20+277)];
+	r21 = r21 >> 2;
+	r21 = heap32[(r21+52)];
+	if(r21 <0) //_LBB654_149
+{
+	r20 = heap32[(r20+278)];
+	r20 = r20 >> 2;
+	r21 = heap32[(r20+52)];
+}
+	r20 = (r17 + 1)|0;
+if(!(r21 ==r15)) //_LBB654_146
+{
+__label__ = 138;
+break _182;
+}
+}
+}
+}
+}
+else{
+__label__ = 129;
+}
+} while(0);
+if (__label__ == 129){
+	r17 = 0;
+	r18 = r17;
+}
+	r16 = r16 & 255;
+if(!(r16 !=0)) //_LBB654_153
+{
+	r16 = heap32[(fp+-36)];
+	r16 = r16 >> 2;
+	r16 = heap32[(r16+2)];
+	r19 = heap32[(r6+12)];
+	r20 = heap32[(r6+14)];
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r20;
+	heap32[(g0+2)] = r19;
+	heap32[(g0+3)] = r18;
+	heap32[(g0+4)] = r17;
+	heap32[(g0+5)] = r15;
+	__FUNCTION_TABLE__[(r16)>>2](i7);
+}
+	r15 = heap32[(r6+12)];
+_200: do {
+if(!(r15 >-1)) //_LBB654_162
+{
+	r16 = heap32[(r6+13)];
+	if(r16 <0) //_LBB654_156
+{
+	r16 = heap32[(r6+14)];
+if(!(r16 ==0)) //_LBB654_160
+{
+	r18 = heapU8[r3+60];
+if(!(r18 ==0)) //_LBB654_159
+{
+	r18 = gNumAlignedFree;
+	r18 = r18 >> 2;
+	r19 = heap32[(r18)];
+	r19 = (r19 + 1)|0;
+	r16 = r16 >> 2;
+	heap32[(r18)] = r19;
+	r16 = heap32[(r16+-1)];
+	heap32[(g0)] = r16;
+	free(i7);
+}
+	heap32[(r6+14)] = 0;
+}
+	r16 = 1;
+	heap8[r3+60] = r16;
+	heap32[(r6+14)] = 0;
+	heap32[(r6+13)] = 0;
+}
+_210: while(true){
+	r16 = r15 << 2;
+	r18 = heap32[(r6+14)];
+	r16 = (r18 + r16)|0;
+	r15 = (r15 + 1)|0;
+	r16 = r16 >> 2;
+	heap32[(r16)] = 0;
+if(!(r15 !=0)) //_LBB654_161
+{
+break _200;
+}
+}
+}
+} while(0);
+	r13 = r17 == 0 ? r13 : r1;
+	heap32[(r6+12)] = 0;
+	if(r14 <r10) //_LBB654_116
+{
+continue _151;
+}
+else{
+break _145;
+}
+}
+}
+}
+else{
+	r1 = heap32[(r8)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+11)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r1 = r_g0;
+	r3 = heap32[(r8)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+9)];
+	heap32[(g0)] = r5;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r6 = heap32[(fp+-36)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+2)];
+	r10 = heap32[(r4+2)];
+	r5 = heap32[(r4+4)];
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r1;
+	heap32[(g0+4)] = r_g0;
+	heap32[(g0+5)] = -1;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+}
+} while(0);
+	r1 = heap32[(r9)];
+	r3 = r1 >> 2;
+	r5 = heap32[(r3+4)];
+	r5 = (r5 + -1)|0;
+	heap32[(r3+4)] = r5;
+_215: do {
+if(!(r5 !=0)) //_LBB654_169
+{
+	r5 = heap32[(r3+1)];
+	if(r5 !=0) //_LBB654_166
+{
+	r1 = sp + -16;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r5 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r1 = r1 >> 2;
+	r6 = heap32[(fp+-4)];
+	r8 = heap32[(r5)];
+	r6 = (r6 - r8)|0;
+	r1 = heap32[(r1+1)];
+	r5 = heap32[(r5+1)];
+	r1 = (r1 - r5)|0;
+	r5 = (r6 * 1000000)|0;
+	r1 = (r1 + r5)|0;
+	r5 = heap32[(r3+3)];
+	r1 = (r1 - r5)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r3+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r3+2)] = f0;
+	r1 = heap32[(r3+4)];
+	if(r1 !=0) //_LBB654_169
+{
+break _215;
+}
+else{
+	r1 = heap32[(r9)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r9)] = r1;
+}
+} while(0);
+	heap32[(g0)] = r11;
+	_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i7);
+	r1 = heap32[(r4+44)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+4)];
+	r5 = heap32[(r4+19)];
+	r4 = heap32[(r4+21)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	heap32[(fp+-36)] = r7;
+	r0 = heap32[(r12+21)];
+if(!(r0 ==0)) //_LBB654_173
+{
+	r1 = heapU8[sp+-56];
+if(!(r1 ==0)) //_LBB654_172
+{
+	r1 = gNumAlignedFree;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = (r3 + 1)|0;
+	r0 = r0 >> 2;
+	heap32[(r1)] = r3;
+	r0 = heap32[(r0+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	heap32[(r12+21)] = 0;
+}
+	r0 = 1;
+	heap8[sp+-56] = r0;
+	heap32[(r12+21)] = 0;
+	heap32[(r12+19)] = 0;
+	heap32[(r12+20)] = 0;
+	r1 = heap32[(r12+16)];
+if(!(r1 ==0)) //_LBB654_177
+{
+	r3 = heapU8[sp+-76];
+if(!(r3 ==0)) //_LBB654_176
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r12+16)] = 0;
+}
+	heap8[sp+-76] = r0;
+	heap32[(r12+16)] = 0;
+	heap32[(r12+14)] = 0;
+	heap32[(r12+15)] = 0;
+	r1 = heap32[(r12+11)];
+if(!(r1 ==0)) //_LBB654_181
+{
+	r3 = heapU8[sp+-96];
+if(!(r3 ==0)) //_LBB654_180
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r12+11)] = 0;
+}
+	heap8[sp+-96] = r0;
+	heap32[(r12+11)] = 0;
+	heap32[(r12+9)] = 0;
+	heap32[(r12+10)] = 0;
+	r1 = heap32[(r2+3)];
+if(!(r1 ==0)) //_LBB654_185
+{
+	r3 = heapU8[sp+-32];
+if(!(r3 ==0)) //_LBB654_184
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+3)] = 0;
+}
+	heap8[sp+-32] = r0;
+	heap32[(r2+3)] = 0;
+	heap32[(r2+1)] = 0;
+	heap32[(r2+2)] = 0;
+	r0 = heap32[(r9)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+4)];
+	r2 = (r2 + -1)|0;
+	heap32[(r1+4)] = r2;
+_246: do {
+if(!(r2 !=0)) //_LBB654_191
+{
+	r2 = heap32[(r1+1)];
+	if(r2 !=0) //_LBB654_188
+{
+	r0 = sp + -8;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	r2 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r0 = r0 >> 2;
+	r3 = heap32[(fp+-2)];
+	r4 = heap32[(r2)];
+	r3 = (r3 - r4)|0;
+	r0 = heap32[(r0+1)];
+	r2 = heap32[(r2+1)];
+	r0 = (r0 - r2)|0;
+	r2 = (r3 * 1000000)|0;
+	r0 = (r0 + r2)|0;
+	r2 = heap32[(r1+3)];
+	r0 = (r0 - r2)|0;
+	f0 = uint(r0); //fuitos r0, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r1+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r1+2)] = f0;
+	r0 = heap32[(r1+4)];
+	if(r0 !=0) //_LBB654_191
+{
+break _246;
+}
+else{
+	r0 = heap32[(r9)];
+}
+}
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+5)];
+	heap32[(r9)] = r0;
+}
+} while(0);
+	return;
+break;
+case 47:
+	r0 = _2E_str1156;
+	r1 = _2E_str2157;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 269;
+	_assert(i7);
+break;
+}
+}
+
+function _ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(r0+47)];
+	r3 = 0;
+_1: while(true){
+	if(r2 >r3) //_LBB655_1
+{
+	r4 = heap32[(r0+49)];
+	r5 = r3 << 2;
+	r4 = (r4 + r5)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	if(r4 !=r1) //_LBB655_3
+{
+	r3 = (r3 + 1)|0;
+continue _1;
+}
+else{
+__label__ = 5;
+break _1;
+}
+}
+else{
+__label__ = 4;
+break _1;
+}
+}
+if (__label__ == 4){
+	r3 = r2;
+}
+if(!(r2 <=r3)) //_LBB655_8
+{
+	r2 = (r2 + -1)|0;
+	r3 = r3 << 2;
+	r4 = heap32[(r0+49)];
+	r2 = r2 << 2;
+	r3 = (r4 + r3)|0;
+	r4 = (r4 + r2)|0;
+	r3 = r3 >> 2;
+	r4 = r4 >> 2;
+	r5 = heap32[(r3)];
+	r4 = heap32[(r4)];
+	heap32[(r3)] = r4;
+	r3 = heap32[(r0+49)];
+	r2 = (r3 + r2)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = r5;
+	r2 = heap32[(r0+47)];
+	r2 = (r2 + -1)|0;
+	heap32[(r0+47)] = r2;
+}
+	r0 = r1 >> 2;
+	r2 = heap32[(r0+5)];
+	r2 = r2 >> 2;
+	r3 = heap32[(r2+120)];
+	r4 = 0;
+_11: while(true){
+	if(r3 >r4) //_LBB655_9
+{
+	r5 = heap32[(r2+122)];
+	r6 = r4 << 2;
+	r5 = (r5 + r6)|0;
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	if(r5 !=r1) //_LBB655_11
+{
+	r4 = (r4 + 1)|0;
+continue _11;
+}
+else{
+__label__ = 12;
+break _11;
+}
+}
+else{
+__label__ = 11;
+break _11;
+}
+}
+if (__label__ == 11){
+	r4 = r3;
+}
+	if(r3 >r4) //_LBB655_16
+{
+	r3 = (r3 + -1)|0;
+	r4 = r4 << 2;
+	r5 = heap32[(r2+122)];
+	r3 = r3 << 2;
+	r4 = (r5 + r4)|0;
+	r5 = (r5 + r3)|0;
+	r4 = r4 >> 2;
+	r5 = r5 >> 2;
+	r6 = heap32[(r4)];
+	r5 = heap32[(r5)];
+	heap32[(r4)] = r5;
+	r4 = heap32[(r2+122)];
+	r3 = (r4 + r3)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = r6;
+	r3 = heap32[(r2+120)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+120)] = r3;
+}
+	r4 = 0;
+	r3 = r3 > r4;
+	r3 = r3 & 1;
+	heap32[(r2+63)] = r3;
+	r0 = heap32[(r0+6)];
+	r0 = r0 >> 2;
+	r2 = heap32[(r0+120)];
+_21: while(true){
+	if(r2 >r4) //_LBB655_18
+{
+	r3 = heap32[(r0+122)];
+	r5 = r4 << 2;
+	r3 = (r3 + r5)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	if(r3 !=r1) //_LBB655_20
+{
+	r4 = (r4 + 1)|0;
+continue _21;
+}
+else{
+__label__ = 19;
+break _21;
+}
+}
+else{
+__label__ = 18;
+break _21;
+}
+}
+if (__label__ == 18){
+	r4 = r2;
+}
+	if(r2 >r4) //_LBB655_25
+{
+	r2 = (r2 + -1)|0;
+	r1 = r4 << 2;
+	r3 = heap32[(r0+122)];
+	r2 = r2 << 2;
+	r1 = (r3 + r1)|0;
+	r3 = (r3 + r2)|0;
+	r1 = r1 >> 2;
+	r3 = r3 >> 2;
+	r4 = heap32[(r1)];
+	r3 = heap32[(r3)];
+	heap32[(r1)] = r3;
+	r1 = heap32[(r0+122)];
+	r2 = (r1 + r2)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = r4;
+	r2 = heap32[(r0+120)];
+	r2 = (r2 + -1)|0;
+	heap32[(r0+120)] = r2;
+}
+	r1 = 0;
+	r1 = r2 > r1;
+	r1 = r1 & 1;
+	heap32[(r0+63)] = r1;
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+48)];
+	r3 = heap32[(r1+47)];
+	r4 = heap32[(fp+1)];
+	r5 = heap32[(fp+2)];
+	if(r2 ==r3) //_LBB656_2
+{
+	r6 = 1;
+	r7 = r3 << 1;
+	r7 = r3 == 0 ? r6 : r7;
+if(!(r2 >=r7)) //_LBB656_1
+{
+	if(r7 !=0) //_LBB656_5
+{
+	r2 = gNumAlignedAllocs;
+	r2 = r2 >> 2;
+	r8 = heap32[(r2)];
+	r9 = r7 << 2;
+	r8 = (r8 + 1)|0;
+	r9 = r9 | 3;
+	heap32[(r2)] = r8;
+	r2 = (r9 + 16)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB656_7
+{
+	r8 = 0;
+	r9 = (r2 + 4)|0;
+	r8 = (r8 - r9)|0;
+	r8 = r8 & 15;
+	r8 = (r2 + r8)|0;
+	r9 = (r8 + 4)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = r2;
+	r2 = r9;
+}
+}
+else{
+	r2 = 0;
+}
+	r8 = (r0 + 196)|0;
+	if(r3 <1) //_LBB656_10
+{
+	r9 = r8 >> 2;
+	r10 = heap32[(r9)];
+}
+else{
+	r9 = 0;
+_12: while(true){
+	r10 = r8 >> 2;
+	r10 = heap32[(r10)];
+	r11 = r9 << 2;
+	r12 = (r10 + r11)|0;
+	r12 = r12 >> 2;
+	r11 = (r2 + r11)|0;
+	r12 = heap32[(r12)];
+	r9 = (r9 + 1)|0;
+	r11 = r11 >> 2;
+	heap32[(r11)] = r12;
+if(!(r3 !=r9)) //_LBB656_11
+{
+break _12;
+}
+}
+	r8 = (r0 + 196)|0;
+}
+	if(r10 !=0) //_LBB656_15
+{
+	r9 = heapU8[r0+200];
+	if(r9 !=0) //_LBB656_17
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r9 = heap32[(r3)];
+	r9 = (r9 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r3)] = r9;
+	r3 = heap32[(r10+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+	r3 = heap32[(r1+47)];
+}
+	r9 = r8 >> 2;
+	heap32[(r9)] = 0;
+}
+	r8 = r8 >> 2;
+	heap8[r0+200] = r6;
+	heap32[(r8)] = r2;
+	heap32[(r1+48)] = r7;
+}
+}
+	r0 = r3 << 2;
+	r2 = heap32[(r1+49)];
+	r0 = (r2 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r4;
+	r0 = heap32[(r1+47)];
+	r0 = (r0 + 1)|0;
+	heap32[(r1+47)] = r0;
+if(!(r5 ==0)) //_LBB656_22
+{
+	r0 = r4 >> 2;
+	r1 = heap32[(r0+5)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	_ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(i7);
+	r0 = heap32[(r0+6)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	_ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(i7);
+}
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld21updateActivationStateEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _2E_str1097;
+	r1 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	r0 = r1 >> 2;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r1 = heap32[(r0+52)];
+if(!(r1 <1)) //_LBB657_25
+{
+	f0 = heapFloat[(fp+1)];
+	r1 = gDisableDeactivation;
+	r1 = heapU8[r1];
+	r2 = 0;
+_3: while(true){
+	r3 = heap32[(r0+54)];
+	r4 = r2 << 2;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+_5: do {
+if(!(r3 ==0)) //_LBB657_24
+{
+	r4 = r3 >> 2;
+	r5 = heap32[(r4+54)];
+if(!(r5 ==4)) //_LBB657_24
+{
+_8: do {
+	if(r5 !=2) //_LBB657_6
+{
+	f1 = heapFloat[(r4+76)];
+	f2 = heapFloat[(r4+77)];
+	f3 = heapFloat[(r4+78)];
+	f1 = f1*f1;
+	f2 = f2*f2;
+	f4 = heapFloat[(r4+116)];
+	f1 = f1+f2;
+	f2 = f3*f3;
+	f1 = f1+f2;
+	f2 = f4*f4;
+	if(f1 >=f2) //_LBB657_9
+{
+__label__ = 8;
+}
+else{
+	f1 = heapFloat[(r4+80)];
+	f2 = heapFloat[(r4+81)];
+	f3 = heapFloat[(r4+82)];
+	f1 = f1*f1;
+	f2 = f2*f2;
+	f4 = heapFloat[(r4+117)];
+	f1 = f1+f2;
+	f2 = f3*f3;
+	f1 = f1+f2;
+	f2 = f4*f4;
+	if(f1 >=f2) //_LBB657_9
+{
+__label__ = 8;
+}
+else{
+	f1 = heapFloat[(r4+55)];
+	f1 = f1+f0;
+	heapFloat[(r4+55)] = f1;
+__label__ = 10;
+}
+}
+if (__label__ == 8){
+	r6 = (r5 + -4)|0;
+	heap32[(r4+55)] = 0;
+if(!(uint(r6) <uint(2))) //_LBB657_11
+{
+	r5 = 0;
+	heap32[(r4+54)] = 0;
+break _8;
+}
+}
+	if(r5 ==4) //_LBB657_24
+{
+break _5;
+}
+}
+} while(0);
+	r6 = r1 & 255;
+_18: do {
+if(!(r6 !=0)) //_LBB657_22
+{
+	r6 = (r5 + -2)|0;
+if(!(uint(r6) <uint(2))) //_LBB657_15
+{
+	f1 = heapFloat[(r4+55)];
+	f2 =                         2;
+	if(f1 <=f2) //_LBB657_22
+{
+break _18;
+}
+}
+	r3 = heapU8[r3+204];
+	r3 = r3 & 3;
+	if(r3 ==0) //_LBB657_18
+{
+	if(r5 ==2) //_LBB657_21
+{
+	heap32[(r4+76)] = 0;
+	heap32[(r4+77)] = 0;
+	heap32[(r4+78)] = 0;
+	heap32[(r4+79)] = 0;
+	heap32[(r4+80)] = 0;
+	heap32[(r4+81)] = 0;
+	heap32[(r4+82)] = 0;
+	heap32[(r4+83)] = 0;
+break _5;
+}
+else{
+	if(r5 !=1) //_LBB657_24
+{
+break _5;
+}
+else{
+	heap32[(r4+54)] = 3;
+break _5;
+}
+}
+}
+else{
+	r5 = (r5 + -4)|0;
+	if(uint(r5) <uint(2)) //_LBB657_24
+{
+break _5;
+}
+else{
+	heap32[(r4+54)] = 2;
+break _5;
+}
+}
+}
+} while(0);
+	r3 = (r5 + -4)|0;
+if(!(uint(r3) <uint(2))) //_LBB657_24
+{
+	heap32[(r4+54)] = 1;
+}
+}
+}
+} while(0);
+	r2 = (r2 + 1)|0;
+	r3 = heap32[(r0+52)];
+	if(r3 >r2) //_LBB657_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_35: do {
+if(!(r3 !=0)) //_LBB657_31
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB657_28
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB657_31
+{
+break _35;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = _2E_str1198;
+	r1 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	r0 = r1 >> 2;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r2 = heap32[(r0+24)];
+	f0 = heapFloat[(fp+1)];
+if(!(r2 ==0)) //_LBB658_2
+{
+	heap32[(g0)] = r1;
+	heapFloat[(g0+1)] = f0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+	r2 = heap32[(r0)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+33)];
+	heap32[(g0)] = r1;
+	heapFloat[(g0+1)] = f0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	heapFloat[(r0+7)] = f0;
+	heap32[(r0+8)] = 0;
+	r2 = heap32[(r0)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	heap32[(r0+12)] = r_g0;
+	r2 = heap32[(r0)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+10)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = heap32[(r0)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+35)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	heapFloat[(r0+29)] = f0;
+	r2 = heap32[(r0)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+36)];
+	r3 = (r1 + 104)|0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = heap32[(r0)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+34)];
+	heap32[(g0)] = r1;
+	heapFloat[(g0+1)] = f0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = _2E_str289;
+	heap32[(g0)] = r2;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r2 = heap32[(r0+63)];
+if(!(r2 <1)) //_LBB658_5
+{
+	r2 = 0;
+_6: while(true){
+	r3 = heap32[(r0+65)];
+	r4 = r2 << 2;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	heapFloat[(g0+2)] = f0;
+	r2 = (r2 + 1)|0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r3 = heap32[(r0+63)];
+	if(r3 >r2) //_LBB658_4
+{
+continue _6;
+}
+else{
+break _6;
+}
+}
+}
+	r2 = _ZN15CProfileManager11CurrentNodeE;
+	r2 = r2 >> 2;
+	r3 = heap32[(r2)];
+	r4 = r3 >> 2;
+	r5 = heap32[(r4+4)];
+	r5 = (r5 + -1)|0;
+	heap32[(r4+4)] = r5;
+_9: do {
+if(!(r5 !=0)) //_LBB658_11
+{
+	r5 = heap32[(r4+1)];
+	if(r5 !=0) //_LBB658_8
+{
+	r3 = sp + -16;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 0;
+	r5 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r3 = r3 >> 2;
+	r6 = heap32[(fp+-4)];
+	r7 = heap32[(r5)];
+	r6 = (r6 - r7)|0;
+	r3 = heap32[(r3+1)];
+	r5 = heap32[(r5+1)];
+	r3 = (r3 - r5)|0;
+	r5 = (r6 * 1000000)|0;
+	r3 = (r3 + r5)|0;
+	r5 = heap32[(r4+3)];
+	r3 = (r3 - r5)|0;
+	f1 = uint(r3); //fuitos r3, f1
+	f2 =                      1000;
+	f3 = heapFloat[(r4+2)];
+	f1 = f1/f2;
+	f1 = f3+f1;
+	heapFloat[(r4+2)] = f1;
+	r3 = heap32[(r4+4)];
+	if(r3 !=0) //_LBB658_11
+{
+break _9;
+}
+else{
+	r3 = heap32[(r2)];
+}
+}
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+5)];
+	heap32[(r2)] = r3;
+}
+} while(0);
+	heap32[(g0)] = r1;
+	heapFloat[(g0+1)] = f0;
+	_ZN23btDiscreteDynamicsWorld21updateActivationStateEf(i7);
+	r0 = heap32[(r0+23)];
+if(!(r0 ==0)) //_LBB658_13
+{
+	heap32[(g0)] = r1;
+	heapFloat[(g0+1)] = f0;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+}
+	r0 = heap32[(r2)];
+	r1 = r0 >> 2;
+	r3 = heap32[(r1+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r1+4)] = r3;
+_19: do {
+if(!(r3 !=0)) //_LBB658_19
+{
+	r3 = heap32[(r1+1)];
+	if(r3 !=0) //_LBB658_16
+{
+	r0 = sp + -8;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r0 = r0 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r0 = heap32[(r0+1)];
+	r3 = heap32[(r3+1)];
+	r0 = (r0 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r0 = (r0 + r3)|0;
+	r3 = heap32[(r1+3)];
+	r0 = (r0 - r3)|0;
+	f0 = uint(r0); //fuitos r0, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r1+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r1+2)] = f0;
+	r0 = heap32[(r1+4)];
+	if(r0 !=0) //_LBB658_19
+{
+break _19;
+}
+else{
+	r0 = heap32[(r2)];
+}
+}
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+5)];
+	heap32[(r2)] = r0;
+}
+} while(0);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+51)];
+	r3 = heap32[(fp)];
+	r4 = r2 & 3;
+if(!(r4 !=0)) //_LBB659_5
+{
+	r4 = heapU8[r0+496];
+	r4 = r4 & 1;
+if(!(r4 != 0)) //_LBB659_5
+{
+	f0 = heapFloat[(r1+84)];
+	f1 =                         0;
+if(!(f0 ==f1)) //_LBB659_4
+{
+	r4 = r3 >> 2;
+	f1 =                         1;
+	f0 = f1/f0;
+	f1 = heapFloat[(r4+58)];
+	f2 = heapFloat[(r4+57)];
+	f3 = heapFloat[(r4+56)];
+	f3 = f3*f0;
+	f2 = f2*f0;
+	heapFloat[(r1+89)] = f3;
+	f0 = f1*f0;
+	heapFloat[(r1+90)] = f2;
+	heapFloat[(r1+91)] = f0;
+	heap32[(r1+92)] = 0;
+}
+	r4 = r3 >> 2;
+	heap32[(r1+93)] = heap32[(r4+56)];
+	heap32[(r1+94)] = heap32[(r4+57)];
+	heap32[(r1+95)] = heap32[(r4+58)];
+	heap32[(r1+96)] = heap32[(r4+59)];
+}
+}
+	r4 = heap32[(r1+48)];
+if(!(r4 ==0)) //_LBB659_31
+{
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	r2 = r2 & 1;
+_10: do {
+	if(r2 != 0) //_LBB659_28
+{
+	r2 = heap32[(r1+54)];
+	r2 = (r2 + -4)|0;
+	if(uint(r2) <uint(2)) //_LBB659_30
+{
+break _10;
+}
+else{
+	heap32[(r1+54)] = 2;
+}
+}
+else{
+	r1 = r3 >> 2;
+	r2 = heap32[(r1+53)];
+	r6 = heap32[(r1+52)];
+	if(r2 ==r6) //_LBB659_9
+{
+	r7 = 1;
+	r8 = r6 << 1;
+	r8 = r6 == 0 ? r7 : r8;
+if(!(r2 >=r8)) //_LBB659_8
+{
+	if(r8 !=0) //_LBB659_12
+{
+	r2 = gNumAlignedAllocs;
+	r2 = r2 >> 2;
+	r9 = heap32[(r2)];
+	r10 = r8 << 2;
+	r9 = (r9 + 1)|0;
+	r10 = r10 | 3;
+	heap32[(r2)] = r9;
+	r2 = (r10 + 16)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r2 = r_g0;
+	if(r2 !=0) //_LBB659_14
+{
+	r9 = 0;
+	r10 = (r2 + 4)|0;
+	r9 = (r9 - r10)|0;
+	r9 = r9 & 15;
+	r9 = (r2 + r9)|0;
+	r10 = (r9 + 4)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r2;
+	r2 = r10;
+}
+}
+else{
+	r2 = 0;
+}
+	r9 = (r3 + 216)|0;
+	if(r6 <1) //_LBB659_17
+{
+	r10 = r9 >> 2;
+	r11 = heap32[(r10)];
+}
+else{
+	r10 = 0;
+_25: while(true){
+	r11 = r9 >> 2;
+	r11 = heap32[(r11)];
+	r12 = r10 << 2;
+	r13 = (r11 + r12)|0;
+	r13 = r13 >> 2;
+	r12 = (r2 + r12)|0;
+	r13 = heap32[(r13)];
+	r10 = (r10 + 1)|0;
+	r12 = r12 >> 2;
+	heap32[(r12)] = r13;
+if(!(r6 !=r10)) //_LBB659_18
+{
+break _25;
+}
+}
+	r9 = (r3 + 216)|0;
+}
+	if(r11 !=0) //_LBB659_22
+{
+	r10 = heapU8[r3+220];
+	if(r10 !=0) //_LBB659_24
+{
+	r6 = gNumAlignedFree;
+	r6 = r6 >> 2;
+	r10 = heap32[(r6)];
+	r10 = (r10 + 1)|0;
+	r11 = r11 >> 2;
+	heap32[(r6)] = r10;
+	r6 = heap32[(r11+-1)];
+	heap32[(g0)] = r6;
+	free(i7);
+	r6 = heap32[(r1+52)];
+}
+	r10 = r9 >> 2;
+	heap32[(r10)] = 0;
+}
+	r9 = r9 >> 2;
+	heap8[r3+220] = r7;
+	heap32[(r9)] = r2;
+	heap32[(r1+53)] = r8;
+}
+}
+	r2 = r6 << 2;
+	r6 = heap32[(r1+54)];
+	r2 = (r6 + r2)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = r0;
+	r2 = heap32[(r1+52)];
+	r2 = (r2 + 1)|0;
+	heap32[(r1+52)] = r2;
+}
+} while(0);
+	r1 = r3 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+8)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+51)];
+	r3 = heap32[(fp)];
+	r4 = r2 & 3;
+if(!(r4 !=0)) //_LBB660_5
+{
+	r4 = heapU8[r0+496];
+	r4 = r4 & 1;
+if(!(r4 != 0)) //_LBB660_5
+{
+	f0 = heapFloat[(r1+84)];
+	f1 =                         0;
+if(!(f0 ==f1)) //_LBB660_4
+{
+	r4 = r3 >> 2;
+	f1 =                         1;
+	f0 = f1/f0;
+	f1 = heapFloat[(r4+58)];
+	f2 = heapFloat[(r4+57)];
+	f3 = heapFloat[(r4+56)];
+	f3 = f3*f0;
+	f2 = f2*f0;
+	heapFloat[(r1+89)] = f3;
+	f0 = f1*f0;
+	heapFloat[(r1+90)] = f2;
+	heapFloat[(r1+91)] = f0;
+	heap32[(r1+92)] = 0;
+}
+	r4 = r3 >> 2;
+	heap32[(r1+93)] = heap32[(r4+56)];
+	heap32[(r1+94)] = heap32[(r4+57)];
+	heap32[(r1+95)] = heap32[(r4+58)];
+	heap32[(r1+96)] = heap32[(r4+59)];
+}
+}
+	r4 = heap32[(r1+48)];
+if(!(r4 ==0)) //_LBB660_32
+{
+	r4 = r2 & 1;
+_10: do {
+	if(r4 != 0) //_LBB660_28
+{
+	r4 = heap32[(r1+54)];
+	r4 = (r4 + -4)|0;
+	if(uint(r4) >uint(1)) //_LBB660_30
+{
+	heap32[(r1+54)] = 2;
+}
+else{
+break _10;
+}
+}
+else{
+	r2 = r3 >> 2;
+	r4 = heap32[(r2+53)];
+	r5 = heap32[(r2+52)];
+	if(r4 ==r5) //_LBB660_9
+{
+	r6 = 1;
+	r7 = r5 << 1;
+	r7 = r5 == 0 ? r6 : r7;
+if(!(r4 >=r7)) //_LBB660_8
+{
+	if(r7 !=0) //_LBB660_12
+{
+	r4 = gNumAlignedAllocs;
+	r4 = r4 >> 2;
+	r8 = heap32[(r4)];
+	r9 = r7 << 2;
+	r8 = (r8 + 1)|0;
+	r9 = r9 | 3;
+	heap32[(r4)] = r8;
+	r4 = (r9 + 16)|0;
+	heap32[(g0)] = r4;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB660_14
+{
+	r8 = 0;
+	r9 = (r4 + 4)|0;
+	r8 = (r8 - r9)|0;
+	r8 = r8 & 15;
+	r8 = (r4 + r8)|0;
+	r9 = (r8 + 4)|0;
+	r8 = r8 >> 2;
+	heap32[(r8)] = r4;
+	r4 = r9;
+}
+}
+else{
+	r4 = 0;
+}
+	r8 = (r3 + 216)|0;
+	if(r5 <1) //_LBB660_17
+{
+	r9 = r8 >> 2;
+	r10 = heap32[(r9)];
+}
+else{
+	r9 = 0;
+_25: while(true){
+	r10 = r8 >> 2;
+	r10 = heap32[(r10)];
+	r11 = r9 << 2;
+	r12 = (r10 + r11)|0;
+	r12 = r12 >> 2;
+	r11 = (r4 + r11)|0;
+	r12 = heap32[(r12)];
+	r9 = (r9 + 1)|0;
+	r11 = r11 >> 2;
+	heap32[(r11)] = r12;
+if(!(r5 !=r9)) //_LBB660_18
+{
+break _25;
+}
+}
+	r8 = (r3 + 216)|0;
+}
+	if(r10 !=0) //_LBB660_22
+{
+	r9 = heapU8[r3+220];
+	if(r9 !=0) //_LBB660_24
+{
+	r5 = gNumAlignedFree;
+	r5 = r5 >> 2;
+	r9 = heap32[(r5)];
+	r9 = (r9 + 1)|0;
+	r10 = r10 >> 2;
+	heap32[(r5)] = r9;
+	r5 = heap32[(r10+-1)];
+	heap32[(g0)] = r5;
+	free(i7);
+	r5 = heap32[(r2+52)];
+}
+	r9 = r8 >> 2;
+	heap32[(r9)] = 0;
+}
+	r8 = r8 >> 2;
+	heap8[r3+220] = r6;
+	heap32[(r8)] = r4;
+	heap32[(r2+53)] = r7;
+}
+}
+	r4 = r5 << 2;
+	r5 = heap32[(r2+54)];
+	r4 = (r5 + r4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r0;
+	r4 = heap32[(r2+52)];
+	r4 = (r4 + 1)|0;
+	heap32[(r2+52)] = r4;
+	r2 = heap32[(r1+51)];
+}
+} while(0);
+	r1 = r3 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+8)];
+	r4 = 2;
+	r5 = 1;
+	r2 = r2 & 3;
+	r6 = -3;
+	r7 = -1;
+	r4 = r2 != 0 ? r4 : r5;
+	r2 = r2 != 0 ? r6 : r7;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	heap32[(r0+56)] = heap32[(r1)];
+	heap32[(r0+57)] = heap32[(r1+1)];
+	heap32[(r0+58)] = heap32[(r1+2)];
+	heap32[(r0+59)] = heap32[(r1+3)];
+	r2 = heap32[(r0+52)];
+if(!(r2 <1)) //_LBB661_9
+{
+	r2 = 0;
+_3: while(true){
+	r3 = heap32[(r0+54)];
+	r4 = r2 << 2;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r4 = r3 >> 2;
+	r5 = heap32[(r4+54)];
+if(!(r5 ==2)) //_LBB661_8
+{
+if(!(r5 ==5)) //_LBB661_8
+{
+	r3 = heapU8[r3+496];
+	r3 = r3 & 1;
+if(!(r3 != 0)) //_LBB661_8
+{
+	f0 = heapFloat[(r4+84)];
+	f1 =                         0;
+if(!(f0 ==f1)) //_LBB661_7
+{
+	f1 =                         1;
+	f0 = f1/f0;
+	f1 = heapFloat[(r1+2)];
+	f2 = heapFloat[(r1+1)];
+	f3 = heapFloat[(r1)];
+	f3 = f3*f0;
+	f2 = f2*f0;
+	heapFloat[(r4+89)] = f3;
+	f0 = f1*f0;
+	heapFloat[(r4+90)] = f2;
+	heapFloat[(r4+91)] = f0;
+	heap32[(r4+92)] = 0;
+}
+	heap32[(r4+93)] = heap32[(r1)];
+	heap32[(r4+94)] = heap32[(r1+1)];
+	heap32[(r4+95)] = heap32[(r1+2)];
+	heap32[(r4+96)] = heap32[(r1+3)];
+}
+}
+}
+	r2 = (r2 + 1)|0;
+	r3 = heap32[(r0+52)];
+	if(r3 >r2) //_LBB661_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(r1+52)];
+	r4 = 0;
+_1: while(true){
+	if(r3 >r4) //_LBB662_1
+{
+	r5 = heap32[(r1+54)];
+	r6 = r4 << 2;
+	r5 = (r5 + r6)|0;
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	if(r5 !=r2) //_LBB662_3
+{
+	r4 = (r4 + 1)|0;
+continue _1;
+}
+else{
+__label__ = 5;
+break _1;
+}
+}
+else{
+__label__ = 4;
+break _1;
+}
+}
+if (__label__ == 4){
+	r4 = r3;
+}
+if(!(r3 <=r4)) //_LBB662_8
+{
+	r3 = (r3 + -1)|0;
+	r4 = r4 << 2;
+	r5 = heap32[(r1+54)];
+	r3 = r3 << 2;
+	r4 = (r5 + r4)|0;
+	r5 = (r5 + r3)|0;
+	r4 = r4 >> 2;
+	r5 = r5 >> 2;
+	r6 = heap32[(r4)];
+	r5 = heap32[(r5)];
+	heap32[(r4)] = r5;
+	r4 = heap32[(r1+54)];
+	r3 = (r4 + r3)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = r6;
+	r3 = heap32[(r1+52)];
+	r3 = (r3 + -1)|0;
+	heap32[(r1+52)] = r3;
+}
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i7);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = heapU8[r0+232];
+	r2 = r2 & 2;
+if(!(r2 ==0)) //_LBB663_3
+{
+if(!(r0 ==0)) //_LBB663_3
+{
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+21)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	return;
+}
+}
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i7);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r3;
+	_ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss(i7);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld14stepSimulationEfif(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	_ZN15CProfileManager5ResetEv(i7);
+	r0 = _2E_str1299;
+	r1 = heap32[(fp+2)];
+	heap32[(g0)] = r0;
+	r0 = heap32[(fp)];
+	f0 = heapFloat[(fp+1)];
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	if(r1 ==0) //_LBB665_4
+{
+	r1 = r0 >> 2;
+	f1 =                         0;
+	heapFloat[(r1+60)] = f0;
+	if(f0 <f1) //_LBB665_6
+{
+	f1 = -f0;
+}
+else{
+	f1 = f0;
+}
+	f2 =   1.1920928955078125e-007;
+	if(f1 >=f2) //_LBB665_9
+{
+	r1 = 1;
+	f1 = f0;
+	r3 = r1;
+}
+else{
+	r1 = 0;
+	f1 = f0;
+	r3 = r1;
+}
+}
+else{
+	f1 = heapFloat[(fp+3)];
+	r2 = r0 >> 2;
+	f2 = heapFloat[(r2+60)];
+	f0 = f2+f0;
+	heapFloat[(r2+60)] = f0;
+	if(f0 >=f1) //_LBB665_3
+{
+	f2 = f0/f1;
+	r3 = f2|0;
+	f2 = r3; //fitos r3, f2
+	f2 = f2*f1;
+	f0 = f0-f2;
+	heapFloat[(r2+60)] = f0;
+}
+else{
+	r3 = 0;
+}
+}
+	r2 = r0 >> 2;
+	r4 = heap32[(r2)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+if(!(r4 ==0)) //_LBB665_12
+{
+	r4 = heap32[(r2)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r5 = r_g0 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+12)];
+	heap32[(g0)] = r_g0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r4 = r_g0 >>> 4;
+	r5 = gDisableDeactivation;
+	r4 = r4 & 1;
+	heap8[r5] = r4;
+}
+	if(r3 ==0) //_LBB665_16
+{
+	r1 = heap32[(r2)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+19)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+}
+else{
+	r4 = heap32[(r2)];
+	r4 = r4 >> 2;
+	r5 = r3 > r1 ? r1 : r3;
+	r4 = heap32[(r4+38)];
+	f0 = r5; //fitos r5, f0
+	f0 = f0*f1;
+	heap32[(g0)] = r0;
+	heapFloat[(g0+1)] = f0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = heap32[(r2)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+40)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+if(!(r5 <1)) //_LBB665_17
+{
+	r4 = r3 ^ -1;
+	r1 = r1 ^ -1;
+	r1 = r4 > r1 ? r4 : r1;
+	r1 = r1 ^ -1;
+_22: while(true){
+	r4 = heap32[(r2)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+37)];
+	heap32[(g0)] = r0;
+	heapFloat[(g0+1)] = f1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = heap32[(r2)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+19)];
+	r1 = (r1 + -1)|0;
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	if(r1 ==0) //_LBB665_17
+{
+break _22;
+}
+else{
+continue _22;
+}
+}
+}
+}
+	r1 = heap32[(r2)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+28)];
+	heap32[(g0)] = r0;
+	r0 = _ZN15CProfileManager12FrameCounterE;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = _ZN15CProfileManager11CurrentNodeE;
+	r1 = (r1 + 1)|0;
+	r2 = r2 >> 2;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2)];
+	r1 = r0 >> 2;
+	r4 = heap32[(r1+4)];
+	r4 = (r4 + -1)|0;
+	heap32[(r1+4)] = r4;
+_25: do {
+if(!(r4 !=0)) //_LBB665_23
+{
+	r4 = heap32[(r1+1)];
+	if(r4 !=0) //_LBB665_20
+{
+	r0 = sp + -8;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	r4 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r0 = r0 >> 2;
+	r5 = heap32[(fp+-2)];
+	r6 = heap32[(r4)];
+	r5 = (r5 - r6)|0;
+	r0 = heap32[(r0+1)];
+	r4 = heap32[(r4+1)];
+	r0 = (r0 - r4)|0;
+	r4 = (r5 * 1000000)|0;
+	r0 = (r0 + r4)|0;
+	r4 = heap32[(r1+3)];
+	r0 = (r0 - r4)|0;
+	f0 = uint(r0); //fuitos r0, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r1+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r1+2)] = f0;
+	r0 = heap32[(r1+4)];
+	if(r0 !=0) //_LBB665_23
+{
+break _25;
+}
+else{
+	r0 = heap32[(r2)];
+}
+}
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+5)];
+	heap32[(r2)] = r0;
+}
+} while(0);
+	r_g0 = r3;
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+var __label__ = 0;
+	i7 = sp + -96;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	if(r0 !=0) //_LBB666_2
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+118)];
+if(!(r2 ==0)) //_LBB666_4
+{
+	r2 = heapU8[r0+204];
+	r2 = r2 & 3;
+	if(r2 ==0) //_LBB666_5
+{
+	r2 = heap32[(fp)];
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r2+60)];
+	f1 = heapFloat[(r1+60)];
+	f2 = heapFloat[(r1+33)];
+	f3 = heapFloat[(r1+34)];
+	f4 = heapFloat[(r1+35)];
+	r2 = sp + -64;
+	r3 = (r0 + 68)|0;
+	r0 = (r0 + 148)|0;
+	f0 = f0*f1;
+	heap32[(g0)] = r3;
+	heapFloat[(g0+1)] = f2;
+	heapFloat[(g0+2)] = f3;
+	heapFloat[(g0+3)] = f4;
+	heap32[(g0+4)] = r0;
+	heapFloat[(g0+5)] = f0;
+	heap32[(g0+6)] = r2;
+	_ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7);
+	r0 = heap32[(r1+118)];
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	return;
+}
+}
+	return;
+}
+else{
+	r0 = _2E_str13100;
+	r1 = _2E_str1461;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 184;
+	_assert(i7);
+}
+}
+
+function _ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _2E_str1562;
+	heap32[(g0)] = r0;
+	r0 = heap32[(fp)];
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r1 = heapU8[r0+246];
+_1: do {
+	if(r1 !=0) //_LBB667_2
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+2)];
+if(!(r2 <1)) //_LBB667_13
+{
+	r2 = 0;
+_4: while(true){
+	r3 = heap32[(r1+4)];
+	r4 = r2 << 2;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r4 = heapU8[r3+232];
+	r4 = r4 & 2;
+if(!(r4 ==0)) //_LBB667_7
+{
+if(!(r3 ==0)) //_LBB667_7
+{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	_ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody(i7);
+}
+}
+	r2 = (r2 + 1)|0;
+	r3 = heap32[(r1+2)];
+	if(r3 >r2) //_LBB667_4
+{
+continue _4;
+}
+else{
+break _1;
+}
+}
+}
+}
+else{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+52)];
+	if(r2 >0) //_LBB667_8
+{
+	r2 = 0;
+_12: while(true){
+	r3 = heap32[(r1+54)];
+	r4 = r2 << 2;
+	r3 = (r3 + r4)|0;
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r4 = r3 >> 2;
+	r4 = heap32[(r4+54)];
+if(!(r4 ==2)) //_LBB667_12
+{
+if(!(r4 ==5)) //_LBB667_12
+{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	_ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody(i7);
+}
+}
+	r2 = (r2 + 1)|0;
+	r3 = heap32[(r1+52)];
+	if(r3 >r2) //_LBB667_9
+{
+continue _12;
+}
+else{
+break _1;
+}
+}
+}
+}
+} while(0);
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_19: do {
+if(!(r3 !=0)) //_LBB667_19
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB667_16
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB667_19
+{
+break _19;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld12applyGravityEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+52)];
+if(!(r1 <1)) //_LBB668_7
+{
+	r1 = 0;
+_3: while(true){
+	r2 = heap32[(r0+54)];
+	r3 = r1 << 2;
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+54)];
+if(!(r4 ==2)) //_LBB668_6
+{
+if(!(r4 ==5)) //_LBB668_6
+{
+	r2 = heapU8[r2+204];
+	r2 = r2 & 3;
+if(!(r2 !=0)) //_LBB668_6
+{
+	f0 = heapFloat[(r3+89)];
+	f1 = heapFloat[(r3+85)];
+	f0 = f0*f1;
+	f1 = heapFloat[(r3+101)];
+	f2 = heapFloat[(r3+91)];
+	f3 = heapFloat[(r3+87)];
+	f4 = heapFloat[(r3+90)];
+	f5 = heapFloat[(r3+86)];
+	f0 = f1+f0;
+	heapFloat[(r3+101)] = f0;
+	f0 = f4*f5;
+	f1 = heapFloat[(r3+102)];
+	f0 = f1+f0;
+	heapFloat[(r3+102)] = f0;
+	f0 = f2*f3;
+	f1 = heapFloat[(r3+103)];
+	f0 = f1+f0;
+	heapFloat[(r3+103)] = f0;
+}
+}
+}
+	r1 = (r1 + 1)|0;
+	r2 = heap32[(r0+52)];
+	if(r2 >r1) //_LBB668_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld14debugDrawWorldEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+	var f20;
+	var f21;
+	var f22;
+	var f23;
+	var f24;
+	var f25;
+	var f26;
+	var f27;
+	var f28;
+	var f29;
+	var f30;
+var __label__ = 0;
+	i7 = sp + -824;var g0 = i7>>2; // save stack
+	r0 = _2E_str16101;
+	heap32[(g0)] = r0;
+	_ZN15CProfileManager13Start_ProfileEPKc(i7);
+	r0 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	_ZN16btCollisionWorld14debugDrawWorldEv(i7);
+	r1 = r0 >> 2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+if(!(r2 ==0)) //_LBB669_53
+{
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r3 = r_g0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+12)];
+	heap32[(g0)] = r_g0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = r_g0 & 6144;
+if(!(r2 ==0)) //_LBB669_53
+{
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+24)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r3 = (r2 + -1)|0;
+if(!(r3 <0)) //_LBB669_53
+{
+	r3 = sp + -296;
+	r4 = sp + -392;
+	r5 = (r3 + 48)|0;
+	r6 = (r4 + 48)|0;
+	r2 = (r2 + -1)|0;
+_5: while(true){
+	r7 = r2;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+25)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r9 = r_g0 >> 2;
+	r9 = heap32[(r9)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+12)];
+	heap32[(g0)] = r_g0;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r8 = r_g0;
+	r9 = heap32[(r1)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r10 = r_g0 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+12)];
+	heap32[(g0)] = r_g0;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+	r9 = r_g0;
+	r10 = r2 >> 2;
+	f0 = heapFloat[(r10+8)];
+	heapFloat[(fp+-191)] = f0;
+	f1 =                         0;
+	heapFloat[(fp+-192)] = f1;
+_7: do {
+if(!(f0 <=f1)) //_LBB669_52
+{
+	r8 = r8 >>> 11;
+	r9 = r9 >>> 12;
+	r8 = r8 & 1;
+	r9 = r9 & 1;
+	r10 = r2 >> 2;
+	r11 = heap32[(r10+1)];
+	if(r11 >4) //_LBB669_8
+{
+	if(r11 ==5) //_LBB669_20
+{
+	r11 = heap32[(r10+5)];
+	r11 = r11 >> 2;
+	f0 = heapFloat[(r11+1)];
+	f1 = heapFloat[(r10+72)];
+	f2 = heapFloat[(r11+2)];
+	f3 = heapFloat[(r10+76)];
+	f4 = heapFloat[(r10+73)];
+	f5 = heapFloat[(r10+77)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r11+3)];
+	f9 = heapFloat[(r10+80)];
+	f10 = heapFloat[(r11+9)];
+	f11 = heapFloat[(r10+84)];
+	f12 = heapFloat[(r11+5)];
+	f13 = heapFloat[(r10+74)];
+	f14 = heapFloat[(r11+10)];
+	f15 = heapFloat[(r10+85)];
+	f16 = heapFloat[(r11+6)];
+	f17 = heapFloat[(r10+78)];
+	f18 = heapFloat[(r11+11)];
+	f19 = heapFloat[(r10+86)];
+	f20 = heapFloat[(r11+7)];
+	f21 = heapFloat[(r10+82)];
+	f22 = heapFloat[(r10+81)];
+	f23 = f4*f0;
+	f24 = f5*f2;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	f25 = heapFloat[(r11+15)];
+	f26 = heapFloat[(r11+14)];
+	f27 = heapFloat[(r11+13)];
+	f28 = f13*f0;
+	f29 = f17*f2;
+	f23 = f23+f24;
+	f24 = f22*f8;
+	f6 = f6+f7;
+	r11 = r4 >> 2;
+	f7 = f28+f29;
+	f28 = f21*f8;
+	f23 = f23+f24;
+	heapFloat[(fp+-98)] = f6;
+	f6 = f1*f12;
+	f24 = f3*f16;
+	f7 = f7+f28;
+	heapFloat[(r11+1)] = f23;
+	heapFloat[(r11+2)] = f7;
+	f7 = f4*f12;
+	f23 = f5*f16;
+	f6 = f6+f24;
+	f24 = f9*f20;
+	f28 = f13*f12;
+	f29 = f17*f16;
+	f7 = f7+f23;
+	f23 = f22*f20;
+	f6 = f6+f24;
+	heap32[(r11+3)] = 0;
+	f24 = f28+f29;
+	f28 = f21*f20;
+	f7 = f7+f23;
+	heapFloat[(r11+4)] = f6;
+	f1 = f1*f10;
+	f3 = f3*f14;
+	f6 = f24+f28;
+	heapFloat[(r11+5)] = f7;
+	heapFloat[(r11+6)] = f6;
+	f4 = f4*f10;
+	f5 = f5*f14;
+	f1 = f1+f3;
+	f3 = f9*f18;
+	f6 = f13*f10;
+	f7 = f17*f14;
+	f4 = f4+f5;
+	f5 = f22*f18;
+	f1 = f1+f3;
+	heap32[(r11+7)] = 0;
+	f0 = f0*f11;
+	f2 = f2*f15;
+	f3 = f6+f7;
+	f6 = f21*f18;
+	f4 = f4+f5;
+	heapFloat[(r11+8)] = f1;
+	f1 = f12*f11;
+	f5 = f16*f15;
+	f0 = f0+f2;
+	f2 = f8*f19;
+	f3 = f3+f6;
+	heapFloat[(r11+9)] = f4;
+	f0 = f0+f2;
+	heapFloat[(r11+10)] = f3;
+	f2 = f10*f11;
+	f3 = f14*f15;
+	f1 = f1+f5;
+	f4 = f20*f19;
+	f1 = f1+f4;
+	f2 = f2+f3;
+	f3 = f18*f19;
+	f0 = f0+f27;
+	heap32[(r11+11)] = 0;
+	f2 = f2+f3;
+	f1 = f1+f26;
+	heapFloat[(r11+12)] = f0;
+	f0 = f2+f25;
+	heapFloat[(r11+13)] = f1;
+	heapFloat[(r11+14)] = f0;
+	heap32[(r11+15)] = 0;
+if(!(r8 ==0)) //_LBB669_22
+{
+	r12 = heap32[(r1)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+	r13 = r_g0 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+14)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r4;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+2)] = f0;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+}
+	r12 = heap32[(r10+6)];
+	r12 = r12 >> 2;
+	f0 = heapFloat[(r12+1)];
+	f1 = heapFloat[(r10+88)];
+	f2 = heapFloat[(r12+2)];
+	f3 = heapFloat[(r10+92)];
+	f4 = heapFloat[(r10+89)];
+	f5 = heapFloat[(r10+93)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r12+3)];
+	f9 = heapFloat[(r10+96)];
+	f10 = heapFloat[(r12+9)];
+	f11 = heapFloat[(r10+100)];
+	f12 = heapFloat[(r12+5)];
+	f13 = heapFloat[(r10+90)];
+	f14 = heapFloat[(r12+10)];
+	f15 = heapFloat[(r10+101)];
+	f16 = heapFloat[(r12+6)];
+	f17 = heapFloat[(r10+94)];
+	f18 = heapFloat[(r12+11)];
+	f19 = heapFloat[(r10+102)];
+	f20 = heapFloat[(r12+7)];
+	f21 = heapFloat[(r10+98)];
+	f22 = heapFloat[(r10+97)];
+	f23 = f4*f0;
+	f24 = f5*f2;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	f25 = heapFloat[(r12+15)];
+	f26 = heapFloat[(r12+14)];
+	f27 = heapFloat[(r12+13)];
+	f28 = f13*f0;
+	f29 = f17*f2;
+	f23 = f23+f24;
+	f24 = f22*f8;
+	f6 = f6+f7;
+	f7 = f28+f29;
+	f28 = f21*f8;
+	f23 = f23+f24;
+	heapFloat[(fp+-98)] = f6;
+	f6 = f1*f12;
+	f24 = f3*f16;
+	f7 = f7+f28;
+	heapFloat[(r11+1)] = f23;
+	heapFloat[(r11+2)] = f7;
+	f7 = f4*f12;
+	f23 = f5*f16;
+	f6 = f6+f24;
+	f24 = f9*f20;
+	f28 = f13*f12;
+	f29 = f17*f16;
+	f7 = f7+f23;
+	f23 = f22*f20;
+	f6 = f6+f24;
+	heap32[(r11+3)] = 0;
+	f24 = f28+f29;
+	f28 = f21*f20;
+	f7 = f7+f23;
+	heapFloat[(r11+4)] = f6;
+	f1 = f1*f10;
+	f3 = f3*f14;
+	f6 = f24+f28;
+	heapFloat[(r11+5)] = f7;
+	heapFloat[(r11+6)] = f6;
+	f4 = f4*f10;
+	f5 = f5*f14;
+	f1 = f1+f3;
+	f3 = f9*f18;
+	f6 = f13*f10;
+	f7 = f17*f14;
+	f4 = f4+f5;
+	f5 = f22*f18;
+	f1 = f1+f3;
+	heap32[(r11+7)] = 0;
+	f0 = f0*f11;
+	f2 = f2*f15;
+	f3 = f6+f7;
+	f6 = f21*f18;
+	f4 = f4+f5;
+	heapFloat[(r11+8)] = f1;
+	f1 = f12*f11;
+	f5 = f16*f15;
+	f0 = f0+f2;
+	f2 = f8*f19;
+	f3 = f3+f6;
+	heapFloat[(r11+9)] = f4;
+	f0 = f0+f2;
+	heapFloat[(r11+10)] = f3;
+	f2 = f10*f11;
+	f3 = f14*f15;
+	f1 = f1+f5;
+	f4 = f20*f19;
+	f1 = f1+f4;
+	f2 = f2+f3;
+	f3 = f18*f19;
+	f0 = f0+f27;
+	heap32[(r11+11)] = 0;
+	f2 = f2+f3;
+	f1 = f1+f26;
+	heapFloat[(r11+12)] = f0;
+	f0 = f2+f25;
+	heapFloat[(r11+13)] = f1;
+	heapFloat[(r11+14)] = f0;
+	heap32[(r11+15)] = 0;
+if(!(r8 ==0)) //_LBB669_24
+{
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r12 = r_g0 >> 2;
+	r12 = heap32[(r12)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+14)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r4;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+2)] = f0;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+}
+	if(r9 ==0) //_LBB669_52
+{
+break _7;
+}
+else{
+	r8 = sp + -408;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 1086506843;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+3)] = f0;
+	_ZNK21btConeTwistConstraint16GetPointForAngleEff(i7);
+	r9 = r8 >> 2;
+	f0 = heapFloat[(fp+-102)];
+	f1 = heapFloat[(fp+-98)];
+	f2 = heapFloat[(r9+1)];
+	f3 = heapFloat[(r11+1)];
+	f4 = heapFloat[(r11+4)];
+	f5 = heapFloat[(r11+5)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r9+2)];
+	f7 = heapFloat[(r11+2)];
+	f8 = heapFloat[(r11+8)];
+	f9 = heapFloat[(r11+9)];
+	f10 = heapFloat[(r11+6)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r11+10)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r11+12)];
+	f8 = heapFloat[(r11+14)];
+	f9 = heapFloat[(r11+13)];
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	f2 = f4+f9;
+	heapFloat[(fp+-102)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r9+1)] = f2;
+	r12 = 0;
+	heapFloat[(r9+2)] = f0;
+	heap32[(r9+3)] = 0;
+_20: while(true){
+	f0 = r12; //fitos r12, f0
+	f1 =        6.2831850051879883;
+	f0 = f0*f1;
+	f1 =                        32;
+	r13 = sp + -472;
+	f0 = f0/f1;
+	heap32[(g0)] = r13;
+	heap32[(g0+1)] = r2;
+	heapFloat[(g0+2)] = f0;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+3)] = f0;
+	_ZNK21btConeTwistConstraint16GetPointForAngleEff(i7);
+	r14 = r13 >> 2;
+	f0 = heapFloat[(fp+-118)];
+	f1 = heapFloat[(fp+-98)];
+	f2 = heapFloat[(r14+1)];
+	f3 = heapFloat[(r11+1)];
+	f4 = heapFloat[(r11+4)];
+	f5 = heapFloat[(r11+5)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r14+2)];
+	f7 = heapFloat[(r11+2)];
+	f8 = heapFloat[(r11+8)];
+	f9 = heapFloat[(r11+9)];
+	f10 = heapFloat[(r11+6)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r11+10)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r11+12)];
+	f8 = heapFloat[(r11+14)];
+	f9 = heapFloat[(r11+13)];
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	f2 = f4+f9;
+	heapFloat[(fp+-118)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r14+1)] = f2;
+	heapFloat[(r14+2)] = f0;
+	heap32[(r14+3)] = 0;
+	r15 = heap32[(r1)];
+	r15 = r15 >> 2;
+	r15 = heap32[(r15+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r15)>>2](i7);
+	r16 = r_g0 >> 2;
+	r16 = heap32[(r16)];
+	r16 = r16 >> 2;
+	r16 = heap32[(r16+2)];
+	r17 = sp + -152;
+	r18 = r17 >> 2;
+	heap32[(fp+-38)] = 0;
+	heap32[(r18+1)] = 0;
+	heap32[(r18+2)] = 0;
+	heap32[(r18+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = r17;
+	r15 = r12 & 3;
+	__FUNCTION_TABLE__[(r16)>>2](i7);
+if(!(r15 !=0)) //_LBB669_28
+{
+	r15 = heap32[(r1)];
+	r15 = r15 >> 2;
+	r15 = heap32[(r15+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r15)>>2](i7);
+	r16 = r_g0 >> 2;
+	r16 = heap32[(r16)];
+	r16 = r16 >> 2;
+	r16 = heap32[(r16+2)];
+	r17 = sp + -136;
+	r18 = r17 >> 2;
+	heap32[(fp+-34)] = 0;
+	heap32[(r18+1)] = 0;
+	heap32[(r18+2)] = 0;
+	heap32[(r18+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = r17;
+	__FUNCTION_TABLE__[(r16)>>2](i7);
+}
+	heap32[(fp+-102)] = heap32[(fp+-118)];
+	heap32[(r9+1)] = heap32[(r14+1)];
+	r12 = (r12 + 1)|0;
+	heap32[(r9+2)] = heap32[(r14+2)];
+	heap32[(r9+3)] = heap32[(r14+3)];
+if(!(r12 !=32)) //_LBB669_26
+{
+break _20;
+}
+}
+	r2 = heap32[(r10+6)];
+	f0 = heapFloat[(r10+110)];
+	heapFloat[(fp+-193)] = f0;
+	f0 = heapFloat[(r10+125)];
+	heapFloat[(fp+-194)] = f0;
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r2+84)];
+	f1 = heapFloat[(fp+-192)];
+	if(f0 <=f1) //_LBB669_31
+{
+	r2 = heap32[(r10+5)];
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r10+84)];
+	f1 = heapFloat[(r2+9)];
+	f2 = heapFloat[(r2+5)];
+	f3 = heapFloat[(r2+1)];
+	f4 = heapFloat[(r10+85)];
+	f5 = heapFloat[(r2+10)];
+	f6 = heapFloat[(r2+6)];
+	f8 = heapFloat[(r2+2)];
+	f12 = heapFloat[(r10+74)];
+	f13 = heapFloat[(r10+78)];
+	f14 = heapFloat[(r10+73)];
+	f15 = heapFloat[(r10+77)];
+	f7 = heapFloat[(r10+72)];
+	f9 = heapFloat[(r10+76)];
+	f10 = f1*f0;
+	f11 = f5*f4;
+	f16 = f2*f0;
+	f17 = f6*f4;
+	f0 = f3*f0;
+	f4 = f8*f4;
+	f18 = heapFloat[(r10+86)];
+	f19 = heapFloat[(r2+11)];
+	f20 = heapFloat[(r2+7)];
+	f21 = heapFloat[(r2+3)];
+	f22 = heapFloat[(r10+82)];
+	f23 = heapFloat[(r10+81)];
+	f24 = heapFloat[(r10+80)];
+	f10 = f10+f11;
+	f11 = f19*f18;
+	f16 = f16+f17;
+	f17 = f20*f18;
+	f0 = f0+f4;
+	heapFloat[(fp+-192)] = f0;
+	f4 = f21*f18;
+	f18 = f12*f1;
+	f25 = f13*f5;
+	f26 = f14*f1;
+	f27 = f15*f5;
+	f1 = f7*f1;
+	f5 = f9*f5;
+	f28 = f12*f2;
+	f29 = f13*f6;
+	f30 = f14*f2;
+	f0 = f15*f6;
+	f2 = f7*f2;
+	f6 = f9*f6;
+	f12 = f12*f3;
+	f13 = f13*f8;
+	f14 = f14*f3;
+	f15 = f15*f8;
+	f3 = f7*f3;
+	f8 = f9*f8;
+	f7 = f10+f11;
+	f9 = heapFloat[(r2+15)];
+	f10 = f16+f17;
+	f11 = heapFloat[(r2+14)];
+	f16 = heapFloat[(fp+-192)];
+	f4 = f16+f4;
+	f16 = heapFloat[(r2+13)];
+	f17 = f18+f25;
+	f18 = f22*f19;
+	f25 = f26+f27;
+	f26 = f23*f19;
+	f1 = f1+f5;
+	f5 = f24*f19;
+	f19 = f28+f29;
+	f27 = f22*f20;
+	f0 = f30+f0;
+	f28 = f23*f20;
+	f2 = f2+f6;
+	f6 = f24*f20;
+	f20 = f12+f13;
+	f22 = f22*f21;
+	f29 = f14+f15;
+	f23 = f23*f21;
+	f3 = f3+f8;
+	f21 = f24*f21;
+	f12 = f7+f9;
+	f13 = f10+f11;
+	f4 = f4+f16;
+	f14 = f17+f18;
+	f15 = f25+f26;
+	f1 = f1+f5;
+	f5 = f19+f27;
+	f0 = f0+f28;
+	f2 = f2+f6;
+	f6 = f20+f22;
+	f8 = f29+f23;
+	f3 = f3+f21;
+}
+else{
+	f0 = heapFloat[(r10+100)];
+	f1 = heapFloat[(r2+9)];
+	f2 = heapFloat[(r2+5)];
+	f3 = heapFloat[(r2+1)];
+	f4 = heapFloat[(r10+101)];
+	f5 = heapFloat[(r2+10)];
+	f6 = heapFloat[(r2+6)];
+	f7 = heapFloat[(r2+2)];
+	f8 = heapFloat[(r10+90)];
+	f9 = heapFloat[(r10+94)];
+	f10 = heapFloat[(r10+89)];
+	f11 = heapFloat[(r10+93)];
+	f12 = heapFloat[(r10+88)];
+	f13 = heapFloat[(r10+92)];
+	f14 = f1*f0;
+	f15 = f5*f4;
+	f16 = f2*f0;
+	f17 = f6*f4;
+	f0 = f3*f0;
+	f4 = f7*f4;
+	f18 = heapFloat[(r10+102)];
+	f19 = heapFloat[(r2+11)];
+	f20 = heapFloat[(r2+7)];
+	f21 = heapFloat[(r2+3)];
+	f22 = heapFloat[(r10+98)];
+	f23 = heapFloat[(r10+97)];
+	f24 = heapFloat[(r10+96)];
+	f14 = f14+f15;
+	f15 = f19*f18;
+	f16 = f16+f17;
+	f17 = f20*f18;
+	f0 = f0+f4;
+	heapFloat[(fp+-192)] = f0;
+	f4 = f21*f18;
+	f18 = f8*f1;
+	f25 = f9*f5;
+	f26 = f10*f1;
+	f27 = f11*f5;
+	f1 = f12*f1;
+	f5 = f13*f5;
+	f28 = f8*f2;
+	f29 = f9*f6;
+	f30 = f10*f2;
+	f0 = f11*f6;
+	f2 = f12*f2;
+	f6 = f13*f6;
+	f8 = f8*f3;
+	f9 = f9*f7;
+	f10 = f10*f3;
+	f11 = f11*f7;
+	f3 = f12*f3;
+	f7 = f13*f7;
+	f12 = f14+f15;
+	f13 = heapFloat[(r2+15)];
+	f14 = f16+f17;
+	f15 = heapFloat[(r2+14)];
+	f16 = heapFloat[(fp+-192)];
+	f4 = f16+f4;
+	f16 = heapFloat[(r2+13)];
+	f17 = f18+f25;
+	f18 = f22*f19;
+	f25 = f26+f27;
+	f26 = f23*f19;
+	f1 = f1+f5;
+	f5 = f24*f19;
+	f19 = f28+f29;
+	f27 = f22*f20;
+	f0 = f30+f0;
+	f28 = f23*f20;
+	f2 = f2+f6;
+	f6 = f24*f20;
+	f8 = f8+f9;
+	f9 = f22*f21;
+	f10 = f10+f11;
+	f11 = f23*f21;
+	f3 = f3+f7;
+	f7 = f24*f21;
+	f12 = f12+f13;
+	f13 = f14+f15;
+	f4 = f4+f16;
+	f14 = f17+f18;
+	f15 = f25+f26;
+	f1 = f1+f5;
+	f5 = f19+f27;
+	f0 = f0+f28;
+	f2 = f2+f6;
+	f6 = f8+f9;
+	f8 = f10+f11;
+	f3 = f3+f7;
+}
+	heapFloat[(fp+-98)] = f3;
+	heapFloat[(r11+1)] = f8;
+	heapFloat[(r11+2)] = f6;
+	heap32[(r11+3)] = 0;
+	heapFloat[(r11+4)] = f2;
+	heapFloat[(r11+5)] = f0;
+	heapFloat[(r11+6)] = f5;
+	heap32[(r11+7)] = 0;
+	heapFloat[(r11+8)] = f1;
+	heapFloat[(r11+9)] = f15;
+	heapFloat[(r11+10)] = f14;
+	heap32[(r11+11)] = 0;
+	heapFloat[(r11+12)] = f4;
+	heapFloat[(r11+13)] = f13;
+	heapFloat[(r11+14)] = f12;
+	r2 = sp + -424;
+	heap32[(r11+15)] = 0;
+	r8 = r2 >> 2;
+	heapFloat[(fp+-106)] = f4;
+	heapFloat[(r8+1)] = f13;
+	heapFloat[(r8+2)] = f12;
+	r9 = sp + -440;
+	heap32[(r8+3)] = 0;
+	r8 = r9 >> 2;
+	heapFloat[(fp+-110)] = f3;
+	heapFloat[(r8+1)] = f2;
+	heapFloat[(r8+2)] = f1;
+	r10 = sp + -456;
+	heap32[(r8+3)] = 0;
+	r8 = r10 >> 2;
+	heapFloat[(fp+-114)] = f8;
+	heapFloat[(r8+1)] = f0;
+	heapFloat[(r8+2)] = f15;
+	heap32[(r8+3)] = 0;
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r11 = r_g0 >> 2;
+	r11 = heap32[(r11)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+15)];
+	r12 = sp + -120;
+	r13 = r12 >> 2;
+	heap32[(fp+-30)] = 0;
+	heap32[(r13+1)] = 0;
+	heap32[(r13+2)] = 0;
+	heap32[(r13+3)] = 0;
+	f0 = heapFloat[(fp+-194)];
+	f1 = -f0;
+	f2 = heapFloat[(fp+-193)];
+	f1 = f1-f2;
+	f0 = f2-f0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r10;
+	f2 = heapFloat[(fp+-191)];
+	heapFloat[(g0+4)] = f2;
+	heapFloat[(g0+5)] = f2;
+	heapFloat[(g0+6)] = f1;
+	heapFloat[(g0+7)] = f0;
+	heap32[(g0+8)] = r12;
+	heap32[(g0+9)] = 1;
+	heap32[(g0+10)] = 1092616192;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+}
+}
+else{
+	if(r11 ==6) //_LBB669_33
+{
+	r11 = sp + -536;
+	r12 = r11 >> 2;
+	heap32[(fp+-134)] = heap32[(r10+263)];
+	heap32[(r12+1)] = heap32[(r10+264)];
+	heap32[(r12+2)] = heap32[(r10+265)];
+	heap32[(r12+3)] = heap32[(r10+266)];
+	heap32[(r12+4)] = heap32[(r10+267)];
+	heap32[(r12+5)] = heap32[(r10+268)];
+	heap32[(r12+6)] = heap32[(r10+269)];
+	heap32[(r12+7)] = heap32[(r10+270)];
+	heap32[(r12+8)] = heap32[(r10+271)];
+	heap32[(r12+9)] = heap32[(r10+272)];
+	heap32[(r12+10)] = heap32[(r10+273)];
+	heap32[(r12+11)] = heap32[(r10+274)];
+	heap32[(r12+12)] = heap32[(r10+275)];
+	heap32[(r12+13)] = heap32[(r10+276)];
+	heap32[(r12+14)] = heap32[(r10+277)];
+	heap32[(r12+15)] = heap32[(r10+278)];
+if(!(r8 ==0)) //_LBB669_35
+{
+	r13 = heap32[(r1)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+	r14 = r_g0 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+14)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r11;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+2)] = f0;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+}
+	heap32[(fp+-134)] = heap32[(r10+279)];
+	heap32[(r12+1)] = heap32[(r10+280)];
+	heap32[(r12+2)] = heap32[(r10+281)];
+	heap32[(r12+3)] = heap32[(r10+282)];
+	heap32[(r12+4)] = heap32[(r10+283)];
+	heap32[(r12+5)] = heap32[(r10+284)];
+	heap32[(r12+6)] = heap32[(r10+285)];
+	heap32[(r12+7)] = heap32[(r10+286)];
+	heap32[(r12+8)] = heap32[(r10+287)];
+	heap32[(r12+9)] = heap32[(r10+288)];
+	heap32[(r12+10)] = heap32[(r10+289)];
+	heap32[(r12+11)] = heap32[(r10+290)];
+	heap32[(r12+12)] = heap32[(r10+291)];
+	heap32[(r12+13)] = heap32[(r10+292)];
+	heap32[(r12+14)] = heap32[(r10+293)];
+	heap32[(r12+15)] = heap32[(r10+294)];
+if(!(r8 ==0)) //_LBB669_37
+{
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r13 = r_g0 >> 2;
+	r13 = heap32[(r13)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+14)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r11;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+2)] = f0;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+}
+	if(r9 ==0) //_LBB669_52
+{
+break _7;
+}
+else{
+	r2 = (r2 + 1164)|0;
+	f0 = heapFloat[(r10+263)];
+	heapFloat[(fp+-134)] = f0;
+	heap32[(r12+1)] = heap32[(r10+264)];
+	f1 = heapFloat[(r10+265)];
+	heapFloat[(r12+2)] = f1;
+	heap32[(r12+3)] = heap32[(r10+266)];
+	f2 = heapFloat[(r10+267)];
+	heapFloat[(r12+4)] = f2;
+	heap32[(r12+5)] = heap32[(r10+268)];
+	f3 = heapFloat[(r10+269)];
+	heapFloat[(r12+6)] = f3;
+	heap32[(r12+7)] = heap32[(r10+270)];
+	f4 = heapFloat[(r10+271)];
+	heapFloat[(r12+8)] = f4;
+	heap32[(r12+9)] = heap32[(r10+272)];
+	f5 = heapFloat[(r10+273)];
+	heapFloat[(r12+10)] = f5;
+	heap32[(r12+11)] = heap32[(r10+274)];
+	heap32[(r12+12)] = heap32[(r10+275)];
+	heap32[(r12+13)] = heap32[(r10+276)];
+	heap32[(r12+14)] = heap32[(r10+277)];
+	r8 = sp + -552;
+	heap32[(r12+15)] = heap32[(r10+278)];
+	r9 = r8 >> 2;
+	heapFloat[(fp+-138)] = f1;
+	heapFloat[(r9+1)] = f3;
+	heapFloat[(r9+2)] = f5;
+	heap32[(r9+3)] = 0;
+	r9 = sp + -568;
+	heapFloat[(fp+-142)] = f0;
+	r13 = r9 >> 2;
+	heapFloat[(r13+1)] = f2;
+	heapFloat[(r13+2)] = f4;
+	heap32[(r13+3)] = 0;
+	r14 = heap32[(r1)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+4)];
+	f0 = heapFloat[(r10+230)];
+	f1 = heapFloat[(r10+231)];
+	f2 = heapFloat[(r10+246)];
+	f3 = heapFloat[(r10+247)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+	r15 = r_g0 >> 2;
+	r15 = heap32[(r15)];
+	r15 = r15 >> 2;
+	r15 = heap32[(r15+16)];
+	r16 = sp + -104;
+	r17 = r16 >> 2;
+	heap32[(fp+-26)] = 0;
+	heap32[(r17+1)] = 0;
+	heap32[(r17+2)] = 0;
+	heap32[(r17+3)] = 0;
+	f4 =       0.89999997615814209;
+	f5 = heapFloat[(fp+-191)];
+	f4 = f5*f4;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r9;
+	heapFloat[(g0+4)] = f4;
+	heapFloat[(g0+5)] = f0;
+	heapFloat[(g0+6)] = f1;
+	heapFloat[(g0+7)] = f2;
+	heapFloat[(g0+8)] = f3;
+	heap32[(g0+9)] = r16;
+	heap32[(g0+10)] = 1092616192;
+	__FUNCTION_TABLE__[(r15)>>2](i7);
+	f0 = heapFloat[(r12+9)];
+	f1 = heapFloat[(r12+5)];
+	heap32[(fp+-142)] = heap32[(r12+1)];
+	heapFloat[(r13+1)] = f1;
+	heapFloat[(r13+2)] = f0;
+	heap32[(r13+3)] = 0;
+	f0 = heapFloat[(r10+296)];
+	f1 = heapFloat[(r10+297)];
+	heapFloat[(g0)] = f0;
+	cosf(i7);
+	f2 = f_g0;
+	heapFloat[(g0)] = f0;
+	sinf(i7);
+	f0 = f_g0;
+	heapFloat[(g0)] = f1;
+	cosf(i7);
+	f3 = f_g0;
+	heapFloat[(g0)] = f1;
+	sinf(i7);
+	f4 = heapFloat[(fp+-142)];
+	f5 = f2*f3;
+	f6 = heapFloat[(r13+1)];
+	f7 = f2*f_g0;
+	f8 = heapFloat[(r13+2)];
+	f5 = f5*f4;
+	f7 = f7*f6;
+	f9 = f3*f0;
+	f10 = f_g0*f0;
+	f5 = f5+f7;
+	f0 = f8*f0;
+	r8 = sp + -584;
+	f7 = f9*f4;
+	f9 = f10*f6;
+	f3 = f6*f3;
+	f1 = f4*f_g0;
+	f0 = f5-f0;
+	r9 = r8 >> 2;
+	f4 = f7+f9;
+	f2 = f8*f2;
+	f1 = f3-f1;
+	heapFloat[(fp+-146)] = f0;
+	f0 = f4+f2;
+	heapFloat[(r9+1)] = f1;
+	heapFloat[(r9+2)] = f0;
+	f0 = heapFloat[(r10+279)];
+	heapFloat[(fp+-134)] = f0;
+	heap32[(r12+1)] = heap32[(r10+280)];
+	heap32[(r12+2)] = heap32[(r10+281)];
+	heap32[(r12+3)] = heap32[(r10+282)];
+	f1 = heapFloat[(r10+283)];
+	heapFloat[(r12+4)] = f1;
+	heap32[(r12+5)] = heap32[(r10+284)];
+	heap32[(r12+6)] = heap32[(r10+285)];
+	heap32[(r12+7)] = heap32[(r10+286)];
+	f2 = heapFloat[(r10+287)];
+	heapFloat[(r12+8)] = f2;
+	heap32[(r12+9)] = heap32[(r10+288)];
+	heap32[(r12+10)] = heap32[(r10+289)];
+	heap32[(r12+11)] = heap32[(r10+290)];
+	heap32[(r12+12)] = heap32[(r10+291)];
+	heap32[(r12+13)] = heap32[(r10+292)];
+	heap32[(r12+14)] = heap32[(r10+293)];
+	r9 = sp + -600;
+	f0 = -f0;
+	heap32[(r12+15)] = heap32[(r10+294)];
+	r13 = r9 >> 2;
+	f1 = -f1;
+	heapFloat[(fp+-150)] = f0;
+	f0 = -f2;
+	heapFloat[(r13+1)] = f1;
+	heapFloat[(r13+2)] = f0;
+	heap32[(r13+3)] = 0;
+	f0 = heapFloat[(r10+214)];
+	f1 = heapFloat[(r10+215)];
+	if(f0 <=f1) //_LBB669_40
+{
+if(!(f0 >=f1)) //_LBB669_42
+{
+	r13 = heap32[(r1)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+	r14 = r_g0 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+15)];
+	r15 = sp + -72;
+	r16 = r15 >> 2;
+	heap32[(fp+-18)] = 0;
+	heap32[(r16+1)] = 0;
+	heap32[(r16+2)] = 0;
+	heap32[(r16+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r8;
+	f2 = heapFloat[(fp+-191)];
+	heapFloat[(g0+4)] = f2;
+	heapFloat[(g0+5)] = f2;
+	heapFloat[(g0+6)] = f0;
+	heapFloat[(g0+7)] = f1;
+	heap32[(g0+8)] = r15;
+	heap32[(g0+9)] = 1;
+	heap32[(g0+10)] = 1092616192;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+}
+}
+else{
+	r13 = heap32[(r1)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+	r14 = r_g0 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+15)];
+	r15 = sp + -88;
+	r16 = r15 >> 2;
+	heap32[(fp+-22)] = 0;
+	heap32[(r16+1)] = 0;
+	heap32[(r16+2)] = 0;
+	heap32[(r16+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r8;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+4)] = f0;
+	heapFloat[(g0+5)] = f0;
+	heap32[(g0+6)] = -1068953637;
+	heap32[(g0+7)] = 1078530011;
+	heap32[(g0+8)] = r15;
+	heap32[(g0+9)] = 0;
+	heap32[(g0+10)] = 1092616192;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+}
+	heap32[(fp+-134)] = heap32[(r10+263)];
+	heap32[(r12+1)] = heap32[(r10+264)];
+	heap32[(r12+2)] = heap32[(r10+265)];
+	heap32[(r12+3)] = heap32[(r10+266)];
+	heap32[(r12+4)] = heap32[(r10+267)];
+	heap32[(r12+5)] = heap32[(r10+268)];
+	heap32[(r12+6)] = heap32[(r10+269)];
+	heap32[(r12+7)] = heap32[(r10+270)];
+	heap32[(r12+8)] = heap32[(r10+271)];
+	heap32[(r12+9)] = heap32[(r10+272)];
+	heap32[(r12+10)] = heap32[(r10+273)];
+	heap32[(r12+11)] = heap32[(r10+274)];
+	heap32[(r12+12)] = heap32[(r10+275)];
+	heap32[(r12+13)] = heap32[(r10+276)];
+	heap32[(r12+14)] = heap32[(r10+277)];
+	r2 = sp + -616;
+	heap32[(r12+15)] = heap32[(r10+278)];
+	r8 = r2 >> 2;
+	heap32[(fp+-154)] = heap32[(r10+167)];
+	heap32[(r8+1)] = heap32[(r10+168)];
+	heap32[(r8+2)] = heap32[(r10+169)];
+	r9 = sp + -632;
+	heap32[(r8+3)] = heap32[(r10+170)];
+	r8 = r9 >> 2;
+	heap32[(fp+-158)] = heap32[(r10+171)];
+	heap32[(r8+1)] = heap32[(r10+172)];
+	heap32[(r8+2)] = heap32[(r10+173)];
+	heap32[(r8+3)] = heap32[(r10+174)];
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r10 = r_g0 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+18)];
+	r12 = sp + -56;
+	r13 = r12 >> 2;
+	heap32[(fp+-14)] = 0;
+	heap32[(r13+1)] = 0;
+	heap32[(r13+2)] = 0;
+	heap32[(r13+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r11;
+	heap32[(g0+4)] = r12;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+}
+}
+else{
+	if(r11 ==7) //_LBB669_43
+{
+	r11 = sp + -696;
+	r12 = r11 >> 2;
+	heap32[(fp+-174)] = heap32[(r10+203)];
+	heap32[(r12+1)] = heap32[(r10+204)];
+	heap32[(r12+2)] = heap32[(r10+205)];
+	heap32[(r12+3)] = heap32[(r10+206)];
+	heap32[(r12+4)] = heap32[(r10+207)];
+	heap32[(r12+5)] = heap32[(r10+208)];
+	heap32[(r12+6)] = heap32[(r10+209)];
+	heap32[(r12+7)] = heap32[(r10+210)];
+	heap32[(r12+8)] = heap32[(r10+211)];
+	heap32[(r12+9)] = heap32[(r10+212)];
+	heap32[(r12+10)] = heap32[(r10+213)];
+	heap32[(r12+11)] = heap32[(r10+214)];
+	heap32[(r12+12)] = heap32[(r10+215)];
+	heap32[(r12+13)] = heap32[(r10+216)];
+	heap32[(r12+14)] = heap32[(r10+217)];
+	heap32[(r12+15)] = heap32[(r10+218)];
+if(!(r8 ==0)) //_LBB669_45
+{
+	r13 = heap32[(r1)];
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r13)>>2](i7);
+	r14 = r_g0 >> 2;
+	r14 = heap32[(r14)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+14)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r11;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+2)] = f0;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+}
+	heap32[(fp+-174)] = heap32[(r10+219)];
+	heap32[(r12+1)] = heap32[(r10+220)];
+	heap32[(r12+2)] = heap32[(r10+221)];
+	heap32[(r12+3)] = heap32[(r10+222)];
+	heap32[(r12+4)] = heap32[(r10+223)];
+	heap32[(r12+5)] = heap32[(r10+224)];
+	heap32[(r12+6)] = heap32[(r10+225)];
+	heap32[(r12+7)] = heap32[(r10+226)];
+	heap32[(r12+8)] = heap32[(r10+227)];
+	heap32[(r12+9)] = heap32[(r10+228)];
+	heap32[(r12+10)] = heap32[(r10+229)];
+	heap32[(r12+11)] = heap32[(r10+230)];
+	heap32[(r12+12)] = heap32[(r10+231)];
+	heap32[(r12+13)] = heap32[(r10+232)];
+	heap32[(r12+14)] = heap32[(r10+233)];
+	heap32[(r12+15)] = heap32[(r10+234)];
+if(!(r8 ==0)) //_LBB669_47
+{
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r12 = r_g0 >> 2;
+	r12 = heap32[(r12)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+14)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r11;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+2)] = f0;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+}
+	if(r9 ==0) //_LBB669_52
+{
+break _7;
+}
+else{
+	r8 = (r2 + 924)|0;
+	r9 = heapU8[r2+168];
+	if(r9 ==0) //_LBB669_50
+{
+	r2 = (r2 + 876)|0;
+}
+else{
+	r2 = (r2 + 812)|0;
+}
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r2+1)];
+	f1 = heapFloat[(r10+43)];
+	f2 = heapFloat[(r2)];
+	f3 = heapFloat[(r2+2)];
+	f4 = heapFloat[(r2+5)];
+	f5 = heapFloat[(r2+4)];
+	f6 = f2*f1;
+	f7 = heapFloat[(fp+-192)];
+	f8 = f0*f7;
+	f9 = heapFloat[(r2+6)];
+	f10 = heapFloat[(r2+9)];
+	f11 = heapFloat[(r2+8)];
+	f12 = f5*f1;
+	f13 = f4*f7;
+	f6 = f6+f8;
+	f3 = f3*f7;
+	f14 = heapFloat[(r2+10)];
+	f1 = f11*f1;
+	f15 = f10*f7;
+	f12 = f12+f13;
+	f9 = f9*f7;
+	f6 = f6+f3;
+	f16 = heapFloat[(r2+12)];
+	f17 = heapFloat[(r2+13)];
+	f18 = heapFloat[(r2+14)];
+	r2 = sp + -712;
+	f12 = f12+f9;
+	f1 = f1+f15;
+	f7 = f14*f7;
+	f6 = f6+f16;
+	f1 = f1+f7;
+	r9 = r2 >> 2;
+	f12 = f12+f17;
+	heapFloat[(fp+-178)] = f6;
+	f1 = f1+f18;
+	heapFloat[(r9+1)] = f12;
+	heapFloat[(r9+2)] = f1;
+	heap32[(r9+3)] = 0;
+	f1 = heapFloat[(r10+44)];
+	f6 = f2*f1;
+	f12 = f5*f1;
+	f6 = f6+f8;
+	f1 = f11*f1;
+	f8 = f12+f13;
+	f3 = f6+f3;
+	r9 = sp + -728;
+	f1 = f1+f15;
+	f6 = f8+f9;
+	f3 = f3+f16;
+	f1 = f1+f7;
+	r11 = r9 >> 2;
+	f6 = f6+f17;
+	heapFloat[(fp+-182)] = f3;
+	f1 = f1+f18;
+	heapFloat[(r11+1)] = f6;
+	heapFloat[(r11+2)] = f1;
+	heap32[(r11+3)] = 0;
+	r11 = heap32[(r1)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r12 = r_g0 >> 2;
+	r12 = heap32[(r12)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+2)];
+	r13 = sp + -40;
+	r14 = r13 >> 2;
+	heap32[(fp+-10)] = 0;
+	heap32[(r14+1)] = 0;
+	heap32[(r14+2)] = 0;
+	heap32[(r14+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r13;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+	r2 = sp + -744;
+	r9 = r2 >> 2;
+	heapFloat[(fp+-186)] = f2;
+	heapFloat[(r9+1)] = f5;
+	heapFloat[(r9+2)] = f11;
+	r11 = sp + -760;
+	heap32[(r9+3)] = 0;
+	r9 = r11 >> 2;
+	heapFloat[(fp+-190)] = f0;
+	heapFloat[(r9+1)] = f4;
+	heapFloat[(r9+2)] = f10;
+	heap32[(r9+3)] = 0;
+	r9 = heap32[(r1)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+4)];
+	f0 = heapFloat[(r10+45)];
+	f1 = heapFloat[(r10+46)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r10 = r_g0 >> 2;
+	r10 = heap32[(r10)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+15)];
+	r12 = sp + -24;
+	r13 = r12 >> 2;
+	heap32[(fp+-6)] = 0;
+	heap32[(r13+1)] = 0;
+	heap32[(r13+2)] = 0;
+	heap32[(r13+3)] = 0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r11;
+	f2 = heapFloat[(fp+-191)];
+	heapFloat[(g0+4)] = f2;
+	heapFloat[(g0+5)] = f2;
+	heapFloat[(g0+6)] = f0;
+	heapFloat[(g0+7)] = f1;
+	heap32[(g0+8)] = r12;
+	heap32[(g0+9)] = 1;
+	heap32[(g0+10)] = 1092616192;
+	__FUNCTION_TABLE__[(r10)>>2](i7);
+}
+}
+else{
+break _7;
+}
+}
+}
+}
+else{
+	if(r11 ==3) //_LBB669_11
+{
+	r2 = sp + -232;
+	r9 = r2 >> 2;
+	heap32[(fp+-58)] = 1065353216;
+	heap32[(r9+1)] = 0;
+	heap32[(r9+2)] = 0;
+	heap32[(r9+3)] = 0;
+	heap32[(r9+4)] = 0;
+	heap32[(r9+5)] = 1065353216;
+	heap32[(r9+6)] = 0;
+	heap32[(r9+7)] = 0;
+	heap32[(r9+8)] = 0;
+	heap32[(r9+9)] = 0;
+	heap32[(r9+10)] = 1065353216;
+	heap32[(r9+11)] = 0;
+	heap32[(r9+12)] = 0;
+	heap32[(r9+13)] = 0;
+	heap32[(r9+14)] = 0;
+	heap32[(r9+15)] = 0;
+	r11 = heap32[(r10+5)];
+	r11 = r11 >> 2;
+	f0 = heapFloat[(r10+72)];
+	f1 = heapFloat[(r11+1)];
+	f2 = heapFloat[(r10+73)];
+	f3 = heapFloat[(r11+2)];
+	f4 = heapFloat[(r11+5)];
+	f5 = heapFloat[(r11+6)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r10+74)];
+	f7 = heapFloat[(r11+3)];
+	f8 = heapFloat[(r11+9)];
+	f9 = heapFloat[(r11+10)];
+	f10 = heapFloat[(r11+7)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r11+11)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r11+13)];
+	f8 = heapFloat[(r11+15)];
+	f9 = heapFloat[(r11+14)];
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	f2 = f4+f9;
+	heapFloat[(r9+12)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r9+13)] = f2;
+	heapFloat[(r9+14)] = f0;
+	heap32[(r9+15)] = 0;
+	r11 = heap32[(r1)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r12 = r_g0 >> 2;
+	r12 = heap32[(r12)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+14)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r2;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+2)] = f0;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+	r11 = heap32[(r10+6)];
+	r11 = r11 >> 2;
+	f0 = heapFloat[(r10+76)];
+	f1 = heapFloat[(r11+1)];
+	f2 = heapFloat[(r10+77)];
+	f3 = heapFloat[(r11+2)];
+	f4 = heapFloat[(r11+5)];
+	f5 = heapFloat[(r11+6)];
+	f1 = f1*f0;
+	f3 = f3*f2;
+	f6 = heapFloat[(r10+78)];
+	f7 = heapFloat[(r11+3)];
+	f8 = heapFloat[(r11+9)];
+	f9 = heapFloat[(r11+10)];
+	f10 = heapFloat[(r11+7)];
+	f4 = f4*f0;
+	f5 = f5*f2;
+	f1 = f1+f3;
+	f3 = f7*f6;
+	f7 = heapFloat[(r11+11)];
+	f0 = f8*f0;
+	f2 = f9*f2;
+	f4 = f4+f5;
+	f5 = f10*f6;
+	f1 = f1+f3;
+	f3 = heapFloat[(r11+13)];
+	f8 = heapFloat[(r11+15)];
+	f9 = heapFloat[(r11+14)];
+	f4 = f4+f5;
+	f0 = f0+f2;
+	f2 = f7*f6;
+	f1 = f1+f3;
+	f0 = f0+f2;
+	f2 = f4+f9;
+	heapFloat[(r9+12)] = f1;
+	f0 = f0+f8;
+	heapFloat[(r9+13)] = f2;
+	heapFloat[(r9+14)] = f0;
+	heap32[(r9+15)] = 0;
+if(!(r8 ==0)) //_LBB669_52
+{
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r9 = r_g0 >> 2;
+	r9 = heap32[(r9)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+14)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r2;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+2)] = f0;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+}
+}
+else{
+	if(r11 ==4) //_LBB669_13
+{
+	r2 = heap32[(r10+5)];
+	r2 = r2 >> 2;
+	f0 = heapFloat[(r2+1)];
+	f1 = heapFloat[(r10+135)];
+	f2 = heapFloat[(r2+2)];
+	f3 = heapFloat[(r10+139)];
+	f4 = heapFloat[(r10+136)];
+	f5 = heapFloat[(r10+140)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r2+3)];
+	f9 = heapFloat[(r10+143)];
+	f10 = heapFloat[(r2+9)];
+	f11 = heapFloat[(r10+147)];
+	f12 = heapFloat[(r2+5)];
+	f13 = heapFloat[(r10+137)];
+	f14 = heapFloat[(r2+10)];
+	f15 = heapFloat[(r10+148)];
+	f16 = heapFloat[(r2+6)];
+	f17 = heapFloat[(r10+141)];
+	f18 = heapFloat[(r2+11)];
+	f19 = heapFloat[(r10+149)];
+	f20 = heapFloat[(r2+7)];
+	f21 = heapFloat[(r10+145)];
+	f22 = heapFloat[(r10+144)];
+	f23 = f4*f0;
+	f24 = f5*f2;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	f25 = heapFloat[(r2+15)];
+	f26 = heapFloat[(r2+14)];
+	f27 = heapFloat[(r2+13)];
+	f28 = f13*f0;
+	f29 = f17*f2;
+	f23 = f23+f24;
+	f24 = f22*f8;
+	f6 = f6+f7;
+	r2 = r3 >> 2;
+	f7 = f28+f29;
+	f28 = f21*f8;
+	f23 = f23+f24;
+	heapFloat[(fp+-74)] = f6;
+	f6 = f1*f12;
+	f24 = f3*f16;
+	f7 = f7+f28;
+	heapFloat[(r2+1)] = f23;
+	heapFloat[(r2+2)] = f7;
+	f7 = f4*f12;
+	f23 = f5*f16;
+	f6 = f6+f24;
+	f24 = f9*f20;
+	f28 = f13*f12;
+	f29 = f17*f16;
+	f7 = f7+f23;
+	f23 = f22*f20;
+	f6 = f6+f24;
+	heap32[(r2+3)] = 0;
+	f24 = f28+f29;
+	f28 = f21*f20;
+	f7 = f7+f23;
+	heapFloat[(r2+4)] = f6;
+	f1 = f1*f10;
+	f3 = f3*f14;
+	f6 = f24+f28;
+	heapFloat[(r2+5)] = f7;
+	heapFloat[(r2+6)] = f6;
+	f4 = f4*f10;
+	f5 = f5*f14;
+	f1 = f1+f3;
+	f3 = f9*f18;
+	f6 = f13*f10;
+	f7 = f17*f14;
+	f4 = f4+f5;
+	f5 = f22*f18;
+	f1 = f1+f3;
+	heap32[(r2+7)] = 0;
+	f0 = f0*f11;
+	f2 = f2*f15;
+	f3 = f6+f7;
+	f6 = f21*f18;
+	f4 = f4+f5;
+	heapFloat[(r2+8)] = f1;
+	f1 = f12*f11;
+	f5 = f16*f15;
+	f0 = f0+f2;
+	f2 = f8*f19;
+	f3 = f3+f6;
+	heapFloat[(r2+9)] = f4;
+	f0 = f0+f2;
+	heapFloat[(r2+10)] = f3;
+	f2 = f10*f11;
+	f3 = f14*f15;
+	f1 = f1+f5;
+	f4 = f20*f19;
+	f1 = f1+f4;
+	f2 = f2+f3;
+	f3 = f18*f19;
+	f0 = f0+f27;
+	heap32[(r2+11)] = 0;
+	f2 = f2+f3;
+	f1 = f1+f26;
+	heapFloat[(r2+12)] = f0;
+	f0 = f2+f25;
+	heapFloat[(r2+13)] = f1;
+	heapFloat[(r2+14)] = f0;
+	heap32[(r2+15)] = 0;
+if(!(r8 ==0)) //_LBB669_15
+{
+	r11 = heap32[(r1)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r12 = r_g0 >> 2;
+	r12 = heap32[(r12)];
+	r12 = r12 >> 2;
+	r12 = heap32[(r12+14)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r3;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+2)] = f0;
+	__FUNCTION_TABLE__[(r12)>>2](i7);
+}
+	r11 = heap32[(r10+6)];
+	r11 = r11 >> 2;
+	f0 = heapFloat[(r11+1)];
+	f1 = heapFloat[(r10+151)];
+	f2 = heapFloat[(r11+2)];
+	f3 = heapFloat[(r10+155)];
+	f4 = heapFloat[(r10+152)];
+	f5 = heapFloat[(r10+156)];
+	f6 = f1*f0;
+	f7 = f3*f2;
+	f8 = heapFloat[(r11+3)];
+	f9 = heapFloat[(r10+159)];
+	f10 = heapFloat[(r11+9)];
+	f11 = heapFloat[(r10+163)];
+	f12 = heapFloat[(r11+5)];
+	f13 = heapFloat[(r10+153)];
+	f14 = heapFloat[(r11+10)];
+	f15 = heapFloat[(r10+164)];
+	f16 = heapFloat[(r11+6)];
+	f17 = heapFloat[(r10+157)];
+	f18 = heapFloat[(r11+11)];
+	f19 = heapFloat[(r10+165)];
+	f20 = heapFloat[(r11+7)];
+	f21 = heapFloat[(r10+161)];
+	f22 = heapFloat[(r10+160)];
+	f23 = f4*f0;
+	f24 = f5*f2;
+	f6 = f6+f7;
+	f7 = f9*f8;
+	f25 = heapFloat[(r11+15)];
+	f26 = heapFloat[(r11+14)];
+	f27 = heapFloat[(r11+13)];
+	f28 = f13*f0;
+	f29 = f17*f2;
+	f23 = f23+f24;
+	f24 = f22*f8;
+	f6 = f6+f7;
+	f7 = f28+f29;
+	f28 = f21*f8;
+	f23 = f23+f24;
+	heapFloat[(fp+-74)] = f6;
+	f6 = f1*f12;
+	f24 = f3*f16;
+	f7 = f7+f28;
+	heapFloat[(r2+1)] = f23;
+	heapFloat[(r2+2)] = f7;
+	f7 = f4*f12;
+	f23 = f5*f16;
+	f6 = f6+f24;
+	f24 = f9*f20;
+	f28 = f13*f12;
+	f29 = f17*f16;
+	f7 = f7+f23;
+	f23 = f22*f20;
+	f6 = f6+f24;
+	heap32[(r2+3)] = 0;
+	f24 = f28+f29;
+	f28 = f21*f20;
+	f7 = f7+f23;
+	heapFloat[(r2+4)] = f6;
+	f1 = f1*f10;
+	f3 = f3*f14;
+	f6 = f24+f28;
+	heapFloat[(r2+5)] = f7;
+	heapFloat[(r2+6)] = f6;
+	f4 = f4*f10;
+	f5 = f5*f14;
+	f1 = f1+f3;
+	f3 = f9*f18;
+	f6 = f13*f10;
+	f7 = f17*f14;
+	f4 = f4+f5;
+	f5 = f22*f18;
+	f1 = f1+f3;
+	heap32[(r2+7)] = 0;
+	f0 = f0*f11;
+	f2 = f2*f15;
+	f3 = f6+f7;
+	f6 = f21*f18;
+	f4 = f4+f5;
+	heapFloat[(r2+8)] = f1;
+	f1 = f12*f11;
+	f5 = f16*f15;
+	f0 = f0+f2;
+	f2 = f8*f19;
+	f3 = f3+f6;
+	heapFloat[(r2+9)] = f4;
+	f0 = f0+f2;
+	heapFloat[(r2+10)] = f3;
+	f2 = f10*f11;
+	f3 = f14*f15;
+	f1 = f1+f5;
+	f4 = f20*f19;
+	f1 = f1+f4;
+	f2 = f2+f3;
+	f3 = f18*f19;
+	f0 = f0+f27;
+	heap32[(r2+11)] = 0;
+	f2 = f2+f3;
+	f1 = f1+f26;
+	heapFloat[(r2+12)] = f0;
+	f0 = f2+f25;
+	heapFloat[(r2+13)] = f1;
+	heapFloat[(r2+14)] = f0;
+	heap32[(r2+15)] = 0;
+if(!(r8 ==0)) //_LBB669_17
+{
+	r8 = heap32[(r1)];
+	r8 = r8 >> 2;
+	r8 = heap32[(r8+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r11 = r_g0 >> 2;
+	r11 = heap32[(r11)];
+	r11 = r11 >> 2;
+	r11 = heap32[(r11+14)];
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r3;
+	f0 = heapFloat[(fp+-191)];
+	heapFloat[(g0+2)] = f0;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+}
+	f0 = heapFloat[(r10+172)];
+	f1 = heapFloat[(r10+173)];
+if(!(f0 ==f1)) //_LBB669_52
+{
+if(!(r9 ==0)) //_LBB669_52
+{
+	r8 = sp + -312;
+	r9 = r8 >> 2;
+	heap32[(fp+-78)] = heap32[(r2+2)];
+	heap32[(r9+1)] = heap32[(r2+6)];
+	heap32[(r9+2)] = heap32[(r2+10)];
+	r10 = sp + -328;
+	heap32[(r9+3)] = 0;
+	r9 = r10 >> 2;
+	heap32[(fp+-82)] = heap32[(fp+-74)];
+	heap32[(r9+1)] = heap32[(r2+4)];
+	heap32[(r9+2)] = heap32[(r2+8)];
+	heap32[(r9+3)] = 0;
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r9 = r_g0 >> 2;
+	r9 = heap32[(r9)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+15)];
+	r11 = sp + -168;
+	r12 = r11 >> 2;
+	heap32[(fp+-42)] = 0;
+	heap32[(r12+1)] = 0;
+	heap32[(r12+2)] = 0;
+	heap32[(r12+3)] = 0;
+	f2 =        6.2831854820251465;
+	r12 = f0 <= f1;
+	f3 = heapFloat[(fp+-192)];
+	f3 = f0 > f1 ? f3 : f0;
+	f0 = f0 > f1 ? f2 : f1;
+	r12 = r12 & 1;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r8;
+	heap32[(g0+3)] = r10;
+	f1 = heapFloat[(fp+-191)];
+	heapFloat[(g0+4)] = f1;
+	heapFloat[(g0+5)] = f1;
+	heapFloat[(g0+6)] = f3;
+	heapFloat[(g0+7)] = f0;
+	heap32[(g0+8)] = r11;
+	heap32[(g0+9)] = r12;
+	heap32[(g0+10)] = 1092616192;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+}
+}
+}
+}
+}
+}
+} while(0);
+	r2 = (r7 + -1)|0;
+	if(r7 !=0) //_LBB669_4
+{
+continue _5;
+}
+else{
+break _5;
+}
+}
+}
+}
+}
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+_74: do {
+if(!(r2 ==0)) //_LBB669_60
+{
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r3 = r_g0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+12)];
+	heap32[(g0)] = r_g0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = r_g0 & 3;
+if(!(r2 ==0)) //_LBB669_60
+{
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0;
+if(!(r2 ==0)) //_LBB669_60
+{
+	r2 = heap32[(r1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = r_g0 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+12)];
+	heap32[(g0)] = r_g0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB669_60
+{
+	r0 = heap32[(r1+63)];
+if(!(r0 <1)) //_LBB669_60
+{
+	r0 = 0;
+_80: while(true){
+	r2 = heap32[(r1+65)];
+	r3 = r0 << 2;
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+3)];
+	r4 = heap32[(r1+21)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	r0 = (r0 + 1)|0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = heap32[(r1+63)];
+	if(r2 >r0) //_LBB669_59
+{
+continue _80;
+}
+else{
+break _74;
+}
+}
+}
+}
+}
+}
+}
+} while(0);
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r3 = (r3 + -1)|0;
+	heap32[(r2+4)] = r3;
+_83: do {
+if(!(r3 !=0)) //_LBB669_66
+{
+	r3 = heap32[(r2+1)];
+	if(r3 !=0) //_LBB669_63
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r3 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	r4 = heap32[(fp+-2)];
+	r5 = heap32[(r3)];
+	r4 = (r4 - r5)|0;
+	r1 = heap32[(r1+1)];
+	r3 = heap32[(r3+1)];
+	r1 = (r1 - r3)|0;
+	r3 = (r4 * 1000000)|0;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(r2+3)];
+	r1 = (r1 - r3)|0;
+	f0 = uint(r1); //fuitos r1, f0
+	f1 =                      1000;
+	f2 = heapFloat[(r2+2)];
+	f0 = f0/f1;
+	f0 = f2+f0;
+	heapFloat[(r2+2)] = f0;
+	r1 = heap32[(r2+4)];
+	if(r1 !=0) //_LBB669_66
+{
+break _83;
+}
+else{
+	r1 = heap32[(r0)];
+}
+}
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+5)];
+	heap32[(r0)] = r1;
+}
+} while(0);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorld18saveKinematicStateEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+2)];
+if(!(r1 <1)) //_LBB670_11
+{
+	f0 = heapFloat[(fp+1)];
+	f1 =                         1;
+	f1 = f1/f0;
+	r1 = 0;
+_3: while(true){
+	r2 = heap32[(r0+4)];
+	r3 = r1 << 2;
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r3 = heapU8[r2+232];
+	r3 = r3 & 2;
+if(!(r3 ==0)) //_LBB670_10
+{
+if(!(r2 ==0)) //_LBB670_10
+{
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+54)];
+if(!(r4 ==2)) //_LBB670_10
+{
+	r4 = heapU8[r2+204];
+	r4 = r4 & 2;
+if(!(r4 ==0)) //_LBB670_10
+{
+	f2 =                         0;
+if(!(f0 ==f2)) //_LBB670_10
+{
+	r4 = heap32[(r3+118)];
+if(!(r4 ==0)) //_LBB670_9
+{
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+2)];
+	r6 = (r2 + 4)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r6;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+	f2 = heapFloat[(r3+13)];
+	f3 = heapFloat[(r3+29)];
+	f2 = f2-f3;
+	f3 = heapFloat[(r3+15)];
+	f4 = heapFloat[(r3+31)];
+	f5 = heapFloat[(r3+14)];
+	f6 = heapFloat[(r3+30)];
+	f5 = f5-f6;
+	f2 = f2*f1;
+	f3 = f3-f4;
+	f4 = f5*f1;
+	heapFloat[(r3+76)] = f2;
+	f2 = f3*f1;
+	heapFloat[(r3+77)] = f4;
+	heapFloat[(r3+78)] = f2;
+	heap32[(r3+79)] = 0;
+	r4 = sp + -16;
+	r5 = (r2 + 68)|0;
+	r2 = (r2 + 4)|0;
+	r6 = sp + -20;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r6;
+	_ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7);
+	r2 = r4 >> 2;
+	f2 = heapFloat[(fp+-5)];
+	f3 = heapFloat[(fp+-4)];
+	f3 = f3*f2;
+	f4 = heapFloat[(r2+2)];
+	f5 = heapFloat[(r2+1)];
+	f5 = f5*f2;
+	f3 = f3*f1;
+	f2 = f4*f2;
+	f4 = f5*f1;
+	heapFloat[(r3+80)] = f3;
+	f2 = f2*f1;
+	heapFloat[(r3+81)] = f4;
+	heapFloat[(r3+82)] = f2;
+	heap32[(r3+83)] = 0;
+	heap32[(r3+33)] = heap32[(r3+76)];
+	heap32[(r3+34)] = heap32[(r3+77)];
+	heap32[(r3+35)] = heap32[(r3+78)];
+	heap32[(r3+36)] = heap32[(r3+79)];
+	heapFloat[(r3+37)] = f3;
+	heapFloat[(r3+38)] = f4;
+	heapFloat[(r3+39)] = f2;
+	heap32[(r3+40)] = 0;
+	heap32[(r3+17)] = heap32[(r3+1)];
+	heap32[(r3+18)] = heap32[(r3+2)];
+	heap32[(r3+19)] = heap32[(r3+3)];
+	heap32[(r3+20)] = heap32[(r3+4)];
+	heap32[(r3+21)] = heap32[(r3+5)];
+	heap32[(r3+22)] = heap32[(r3+6)];
+	heap32[(r3+23)] = heap32[(r3+7)];
+	heap32[(r3+24)] = heap32[(r3+8)];
+	heap32[(r3+25)] = heap32[(r3+9)];
+	heap32[(r3+26)] = heap32[(r3+10)];
+	heap32[(r3+27)] = heap32[(r3+11)];
+	heap32[(r3+28)] = heap32[(r3+12)];
+	heap32[(r3+29)] = heap32[(r3+13)];
+	heap32[(r3+30)] = heap32[(r3+14)];
+	heap32[(r3+31)] = heap32[(r3+15)];
+	heap32[(r3+32)] = heap32[(r3+16)];
+}
+}
+}
+}
+}
+	r1 = (r1 + 1)|0;
+	r2 = heap32[(r0+2)];
+	if(r2 >r1) //_LBB670_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function _ZN15btDynamicsWorldD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV15btDynamicsWorld;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN16btCollisionWorldD2Ev(i7);
+	return;
+}
+
+function _ZN15btDynamicsWorldD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV15btDynamicsWorld;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN16btCollisionWorldD2Ev(i7);
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorldD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV23btDiscreteDynamicsWorld;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+244];
+if(!(r1 ==0)) //_LBB673_3
+{
+	r1 = heap32[(r2+45)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+45)];
+if(!(r1 ==0)) //_LBB673_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = heapU8[r0+245];
+if(!(r1 ==0)) //_LBB673_6
+{
+	r1 = heap32[(r2+44)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+44)];
+if(!(r1 ==0)) //_LBB673_6
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = heap32[(r2+65)];
+if(!(r1 ==0)) //_LBB673_10
+{
+	r3 = heapU8[r0+264];
+if(!(r3 ==0)) //_LBB673_9
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+65)] = 0;
+}
+	r1 = 1;
+	heap8[r0+264] = r1;
+	heap32[(r2+65)] = 0;
+	heap32[(r2+63)] = 0;
+	heap32[(r2+64)] = 0;
+	r3 = heap32[(r2+54)];
+if(!(r3 ==0)) //_LBB673_14
+{
+	r4 = heapU8[r0+220];
+if(!(r4 ==0)) //_LBB673_13
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+54)] = 0;
+}
+	heap8[r0+220] = r1;
+	heap32[(r2+54)] = 0;
+	heap32[(r2+52)] = 0;
+	heap32[(r2+53)] = 0;
+	r3 = heap32[(r2+49)];
+if(!(r3 ==0)) //_LBB673_18
+{
+	r4 = heapU8[r0+200];
+if(!(r4 ==0)) //_LBB673_17
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+49)] = 0;
+}
+	heap8[r0+200] = r1;
+	heap32[(r2+49)] = 0;
+	r1 = _ZTV15btDynamicsWorld;
+	heap32[(r2+47)] = 0;
+	r1 = (r1 + 8)|0;
+	heap32[(r2+48)] = 0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN16btCollisionWorldD2Ev(i7);
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorldD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	heap32[(g0)] = r0;
+	_ZN23btDiscreteDynamicsWorldD2Ev(i7);
+	return;
+}
+
+function _ZN23btDiscreteDynamicsWorldD2Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV23btDiscreteDynamicsWorld;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heapU8[r0+244];
+if(!(r1 ==0)) //_LBB675_3
+{
+	r1 = heap32[(r2+45)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+45)];
+if(!(r1 ==0)) //_LBB675_3
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = heapU8[r0+245];
+if(!(r1 ==0)) //_LBB675_6
+{
+	r1 = heap32[(r2+44)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r1 = heap32[(r2+44)];
+if(!(r1 ==0)) //_LBB675_6
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+}
+	r1 = heap32[(r2+65)];
+if(!(r1 ==0)) //_LBB675_10
+{
+	r3 = heapU8[r0+264];
+if(!(r3 ==0)) //_LBB675_9
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+65)] = 0;
+}
+	r1 = 1;
+	heap8[r0+264] = r1;
+	heap32[(r2+65)] = 0;
+	heap32[(r2+63)] = 0;
+	heap32[(r2+64)] = 0;
+	r3 = heap32[(r2+54)];
+if(!(r3 ==0)) //_LBB675_14
+{
+	r4 = heapU8[r0+220];
+if(!(r4 ==0)) //_LBB675_13
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+54)] = 0;
+}
+	heap8[r0+220] = r1;
+	heap32[(r2+54)] = 0;
+	heap32[(r2+52)] = 0;
+	heap32[(r2+53)] = 0;
+	r3 = heap32[(r2+49)];
+if(!(r3 ==0)) //_LBB675_18
+{
+	r4 = heapU8[r0+200];
+if(!(r4 ==0)) //_LBB675_17
+{
+	r4 = gNumAlignedFree;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r5 = (r5 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r4)] = r5;
+	r3 = heap32[(r3+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+}
+	heap32[(r2+49)] = 0;
+}
+	heap8[r0+200] = r1;
+	heap32[(r2+49)] = 0;
+	r1 = _ZTV15btDynamicsWorld;
+	heap32[(r2+47)] = 0;
+	r1 = (r1 + 8)|0;
+	heap32[(r2+48)] = 0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZN16btCollisionWorldD2Ev(i7);
+	return;
+}
+
+function _ZN11btRigidBody12setMassPropsEfRK9btVector3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(fp+1)];
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(r0+51)];
+	f1 =                         0;
+	if(f0 !=f1) //_LBB676_2
+{
+	r2 = r2 & -2;
+	f2 =                         1;
+	f2 = f2/f0;
+	heap32[(r0+51)] = r2;
+	heapFloat[(r0+84)] = f2;
+}
+else{
+	r2 = r2 | 1;
+	f2 =                         0;
+	heap32[(r0+51)] = r2;
+	heap32[(r0+84)] = 0;
+}
+	f3 = heapFloat[(r0+95)];
+	f4 = heapFloat[(r0+94)];
+	f5 = heapFloat[(r0+93)];
+	f5 = f5*f0;
+	f4 = f4*f0;
+	heapFloat[(r0+89)] = f5;
+	f0 = f3*f0;
+	heapFloat[(r0+90)] = f4;
+	heapFloat[(r0+91)] = f0;
+	r1 = r1 >> 2;
+	heap32[(r0+92)] = 0;
+	f0 = heapFloat[(r1+2)];
+	if(f0 !=f1) //_LBB676_5
+{
+	f3 =                         1;
+	f0 = f3/f0;
+}
+else{
+	f0 = f1;
+}
+	f3 = heapFloat[(r1+1)];
+	if(f3 !=f1) //_LBB676_8
+{
+	f1 =                         1;
+	f3 = f1/f3;
+}
+else{
+	f3 =                         0;
+}
+	f1 = heapFloat[(r1)];
+	f4 =                         0;
+	if(f1 !=f4) //_LBB676_11
+{
+	f4 =                         1;
+	f4 = f4/f1;
+}
+	heapFloat[(r0+97)] = f4;
+	heapFloat[(r0+98)] = f3;
+	heapFloat[(r0+99)] = f0;
+	heap32[(r0+100)] = 0;
+	f0 = heapFloat[(r0+87)];
+	f1 = heapFloat[(r0+86)];
+	f3 = heapFloat[(r0+85)];
+	f3 = f3*f2;
+	f1 = f1*f2;
+	heapFloat[(r0+138)] = f3;
+	f0 = f0*f2;
+	heapFloat[(r0+139)] = f1;
+	heapFloat[(r0+140)] = f0;
+	heap32[(r0+141)] = 0;
+	return;
+}
+
+function _ZN11btRigidBody19updateInertiaTensorEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+	var f16;
+	var f17;
+	var f18;
+	var f19;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	f0 = heapFloat[(r0+1)];
+	f1 = heapFloat[(r0+97)];
+	f2 = heapFloat[(r0+2)];
+	f3 = heapFloat[(r0+98)];
+	f4 = f0*f1;
+	f5 = f2*f3;
+	f6 = heapFloat[(r0+3)];
+	f7 = heapFloat[(r0+99)];
+	f8 = heapFloat[(r0+5)];
+	f9 = heapFloat[(r0+6)];
+	f10 = f6*f7;
+	f11 = f0*f4;
+	f12 = f2*f5;
+	f13 = heapFloat[(r0+9)];
+	f14 = heapFloat[(r0+10)];
+	f15 = heapFloat[(r0+7)];
+	f16 = heapFloat[(r0+11)];
+	f17 = f8*f4;
+	f18 = f9*f5;
+	f11 = f11+f12;
+	f12 = f6*f10;
+	f4 = f13*f4;
+	f5 = f14*f5;
+	f17 = f17+f18;
+	f18 = f15*f10;
+	f11 = f11+f12;
+	f12 = f8*f1;
+	f19 = f9*f3;
+	f4 = f4+f5;
+	f5 = f16*f10;
+	f10 = f17+f18;
+	heapFloat[(r0+64)] = f11;
+	f11 = f15*f7;
+	f17 = f0*f12;
+	f18 = f2*f19;
+	f4 = f4+f5;
+	heapFloat[(r0+65)] = f10;
+	heapFloat[(r0+66)] = f4;
+	f4 = f8*f12;
+	f5 = f9*f19;
+	f10 = f17+f18;
+	f17 = f6*f11;
+	f12 = f13*f12;
+	f18 = f14*f19;
+	f4 = f4+f5;
+	f5 = f15*f11;
+	f10 = f10+f17;
+	heap32[(r0+67)] = 0;
+	f1 = f13*f1;
+	f3 = f14*f3;
+	f12 = f12+f18;
+	f11 = f16*f11;
+	f4 = f4+f5;
+	heapFloat[(r0+68)] = f10;
+	f5 = f16*f7;
+	f0 = f0*f1;
+	f2 = f2*f3;
+	f7 = f12+f11;
+	heapFloat[(r0+69)] = f4;
+	heapFloat[(r0+70)] = f7;
+	f4 = f8*f1;
+	f7 = f9*f3;
+	f0 = f0+f2;
+	f2 = f6*f5;
+	f1 = f13*f1;
+	f3 = f14*f3;
+	f4 = f4+f7;
+	f6 = f15*f5;
+	f0 = f0+f2;
+	heap32[(r0+71)] = 0;
+	f1 = f1+f3;
+	f2 = f16*f5;
+	f3 = f4+f6;
+	heapFloat[(r0+72)] = f0;
+	f0 = f1+f2;
+	heapFloat[(r0+73)] = f3;
+	heapFloat[(r0+74)] = f0;
+	heap32[(r0+75)] = 0;
+	return;
+}
+
+function _ZN11btRigidBody18proceedToTransformERK11btTransform(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var r24;
+	var r25;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heapU8[r0+204];
+	r2 = r2 & 3;
+	if(r2 ==0) //_LBB678_2
+{
+	r2 = r0 >> 2;
+	r24 = r1 >> 2;
+	heap32[(r2+17)] = heap32[(r24)];
+	heap32[(r2+18)] = heap32[(r24+1)];
+	heap32[(r2+19)] = heap32[(r24+2)];
+	heap32[(r2+20)] = heap32[(r24+3)];
+	heap32[(r2+21)] = heap32[(r24+4)];
+	heap32[(r2+22)] = heap32[(r24+5)];
+	heap32[(r2+23)] = heap32[(r24+6)];
+	heap32[(r2+24)] = heap32[(r24+7)];
+	heap32[(r2+25)] = heap32[(r24+8)];
+	heap32[(r2+26)] = heap32[(r24+9)];
+	heap32[(r2+27)] = heap32[(r24+10)];
+	heap32[(r2+28)] = heap32[(r24+11)];
+	heap32[(r2+29)] = heap32[(r24+12)];
+	heap32[(r2+30)] = heap32[(r24+13)];
+	r15 = (r1 + 4)|0;
+	r16 = (r1 + 8)|0;
+	r17 = (r1 + 12)|0;
+	r18 = (r1 + 16)|0;
+	r19 = (r1 + 20)|0;
+	r20 = (r1 + 24)|0;
+	r21 = (r1 + 28)|0;
+	r22 = (r1 + 32)|0;
+	r23 = (r1 + 36)|0;
+	r3 = (r1 + 40)|0;
+	heap32[(fp+-10)] = r3;
+	r3 = (r1 + 44)|0;
+	heap32[(fp+-4)] = r3;
+	r3 = (r1 + 48)|0;
+	heap32[(fp+-7)] = r3;
+	r3 = (r1 + 52)|0;
+	heap32[(fp+-6)] = r3;
+	r3 = (r1 + 56)|0;
+	heap32[(fp+-9)] = r3;
+	r3 = (r1 + 60)|0;
+	heap32[(fp+-8)] = r3;
+	r3 = (r0 + 4)|0;
+	r4 = (r0 + 8)|0;
+	r5 = (r0 + 12)|0;
+	r6 = (r0 + 16)|0;
+	r7 = (r0 + 20)|0;
+	r8 = (r0 + 24)|0;
+	r9 = (r0 + 28)|0;
+	r10 = (r0 + 32)|0;
+	r11 = (r0 + 36)|0;
+	r12 = (r0 + 40)|0;
+	r13 = (r0 + 44)|0;
+	r14 = (r0 + 48)|0;
+	r25 = (r0 + 52)|0;
+	heap32[(fp+-5)] = r25;
+	r25 = (r0 + 56)|0;
+	heap32[(fp+-3)] = r25;
+	r25 = (r0 + 60)|0;
+	heap32[(fp+-2)] = r25;
+	r25 = (r0 + 64)|0;
+	heap32[(fp+-1)] = r25;
+	heap32[(r2+31)] = heap32[(r24+14)];
+	heap32[(r2+32)] = heap32[(r24+15)];
+}
+else{
+	r2 = r0 >> 2;
+	heap32[(r2+17)] = heap32[(r2+1)];
+	heap32[(r2+18)] = heap32[(r2+2)];
+	heap32[(r2+19)] = heap32[(r2+3)];
+	heap32[(r2+20)] = heap32[(r2+4)];
+	heap32[(r2+21)] = heap32[(r2+5)];
+	heap32[(r2+22)] = heap32[(r2+6)];
+	heap32[(r2+23)] = heap32[(r2+7)];
+	heap32[(r2+24)] = heap32[(r2+8)];
+	heap32[(r2+25)] = heap32[(r2+9)];
+	heap32[(r2+26)] = heap32[(r2+10)];
+	heap32[(r2+27)] = heap32[(r2+11)];
+	heap32[(r2+28)] = heap32[(r2+12)];
+	heap32[(r2+29)] = heap32[(r2+13)];
+	heap32[(r2+30)] = heap32[(r2+14)];
+	r3 = (r0 + 4)|0;
+	r4 = (r0 + 8)|0;
+	r5 = (r0 + 12)|0;
+	r6 = (r0 + 16)|0;
+	r7 = (r0 + 20)|0;
+	r8 = (r0 + 24)|0;
+	r9 = (r0 + 28)|0;
+	r10 = (r0 + 32)|0;
+	r11 = (r0 + 36)|0;
+	r12 = (r0 + 40)|0;
+	r13 = (r0 + 44)|0;
+	r14 = (r0 + 48)|0;
+	r15 = (r0 + 52)|0;
+	heap32[(fp+-5)] = r15;
+	r15 = (r0 + 56)|0;
+	heap32[(fp+-3)] = r15;
+	r15 = (r0 + 60)|0;
+	heap32[(fp+-2)] = r15;
+	r15 = (r0 + 64)|0;
+	heap32[(fp+-1)] = r15;
+	r15 = (r1 + 4)|0;
+	r16 = (r1 + 8)|0;
+	r17 = (r1 + 12)|0;
+	r18 = (r1 + 16)|0;
+	r19 = (r1 + 20)|0;
+	r20 = (r1 + 24)|0;
+	r21 = (r1 + 28)|0;
+	r22 = (r1 + 32)|0;
+	r23 = (r1 + 36)|0;
+	r24 = (r1 + 40)|0;
+	heap32[(fp+-10)] = r24;
+	r24 = (r1 + 44)|0;
+	heap32[(fp+-4)] = r24;
+	r24 = (r1 + 48)|0;
+	heap32[(fp+-7)] = r24;
+	r24 = (r1 + 52)|0;
+	heap32[(fp+-6)] = r24;
+	r24 = (r1 + 56)|0;
+	heap32[(fp+-9)] = r24;
+	r24 = (r1 + 60)|0;
+	heap32[(fp+-8)] = r24;
+	heap32[(r2+31)] = heap32[(r2+15)];
+	heap32[(r2+32)] = heap32[(r2+16)];
+}
+	r2 = r0 >> 2;
+	heap32[(r2+33)] = heap32[(r2+76)];
+	heap32[(r2+34)] = heap32[(r2+77)];
+	heap32[(r2+35)] = heap32[(r2+78)];
+	heap32[(r2+36)] = heap32[(r2+79)];
+	heap32[(r2+37)] = heap32[(r2+80)];
+	heap32[(r2+38)] = heap32[(r2+81)];
+	heap32[(r2+39)] = heap32[(r2+82)];
+	r3 = r3 >> 2;
+	r1 = r1 >> 2;
+	heap32[(r2+40)] = heap32[(r2+83)];
+	r2 = r4 >> 2;
+	r4 = r15 >> 2;
+	heap32[(r3)] = heap32[(r1)];
+	r1 = r5 >> 2;
+	r3 = r16 >> 2;
+	heap32[(r2)] = heap32[(r4)];
+	r2 = r6 >> 2;
+	r4 = r17 >> 2;
+	heap32[(r1)] = heap32[(r3)];
+	r1 = r7 >> 2;
+	r3 = r18 >> 2;
+	heap32[(r2)] = heap32[(r4)];
+	r2 = r8 >> 2;
+	r4 = r19 >> 2;
+	heap32[(r1)] = heap32[(r3)];
+	r1 = r9 >> 2;
+	r3 = r20 >> 2;
+	heap32[(r2)] = heap32[(r4)];
+	r2 = r10 >> 2;
+	r4 = r21 >> 2;
+	heap32[(r1)] = heap32[(r3)];
+	r1 = r11 >> 2;
+	r3 = r22 >> 2;
+	heap32[(r2)] = heap32[(r4)];
+	r2 = r12 >> 2;
+	r4 = r23 >> 2;
+	heap32[(r1)] = heap32[(r3)];
+	r1 = r13 >> 2;
+	r3 = heap32[(fp+-10)];
+	r3 = r3 >> 2;
+	heap32[(r2)] = heap32[(r4)];
+	r2 = r14 >> 2;
+	r4 = heap32[(fp+-4)];
+	r4 = r4 >> 2;
+	heap32[(r1)] = heap32[(r3)];
+	r1 = heap32[(fp+-5)];
+	r1 = r1 >> 2;
+	r3 = heap32[(fp+-7)];
+	r3 = r3 >> 2;
+	heap32[(r2)] = heap32[(r4)];
+	r2 = heap32[(fp+-3)];
+	r2 = r2 >> 2;
+	r4 = heap32[(fp+-6)];
+	r4 = r4 >> 2;
+	heap32[(r1)] = heap32[(r3)];
+	r1 = heap32[(fp+-2)];
+	r1 = r1 >> 2;
+	r3 = heap32[(fp+-9)];
+	r3 = r3 >> 2;
+	heap32[(r2)] = heap32[(r4)];
+	r2 = heap32[(fp+-1)];
+	r2 = r2 >> 2;
+	r4 = heap32[(fp+-8)];
+	r4 = r4 >> 2;
+	heap32[(r1)] = heap32[(r3)];
+	heap32[(r2)] = heap32[(r4)];
+	heap32[(g0)] = r0;
+	_ZN11btRigidBody19updateInertiaTensorEv(i7);
+	return;
+}
+
+function _ZNK11btRigidBody28calculateSerializeBufferSizeEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 480;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK11btRigidBody21serializeSingleObjectEP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 >> 2;
+	r3 = r1 >> 2;
+	r4 = heap32[(r3)];
+	r5 = heap32[(r2)];
+	r4 = r4 >> 2;
+	r5 = r5 >> 2;
+	r4 = heap32[(r4+4)];
+	r5 = heap32[(r5+4)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = 1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r_g0;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r5 = r4 >> 2;
+	r2 = heap32[(r2+5)];
+	r5 = heap32[(r5+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+5)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r_g0;
+	heap32[(g0+3)] = 1497645650;
+	heap32[(g0+4)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	return;
+}
+
+function _ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heapU8[r0+232];
+	r1 = r1 & 2;
+_1: do {
+	if(r1 !=0) //_LBB681_2
+{
+	if(r0 ==0) //_LBB681_1
+{
+__label__ = 1;
+}
+else{
+	r1 = heap32[(fp)];
+	r1 = r1 >> 2;
+	r2 = heap32[(r1+120)];
+	r3 = 0;
+_4: while(true){
+	if(r2 >r3) //_LBB681_4
+{
+	r4 = heap32[(r1+122)];
+	r5 = r3 << 2;
+	r4 = (r4 + r5)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r5 = heap32[(r4+5)];
+	if(r5 !=r0) //_LBB681_6
+{
+	r4 = heap32[(r4+6)];
+	if(r4 ==r0) //_LBB681_5
+{
+break _4;
+}
+else{
+	r3 = (r3 + 1)|0;
+}
+}
+else{
+break _4;
+}
+}
+else{
+__label__ = 1;
+break _1;
+}
+}
+	r0 = 0;
+__label__ = 9;
+}
+}
+else{
+__label__ = 1;
+}
+} while(0);
+if (__label__ == 1){
+	r0 = 1;
+}
+	r0 = r0 & 255;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+	var f12;
+	var f13;
+	var f14;
+	var f15;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	heap32[(r1+58)] = 2;
+	heap32[(r1+76)] = 0;
+	heap32[(r1+77)] = 0;
+	heap32[(r1+78)] = 0;
+	heap32[(r1+79)] = 0;
+	heap32[(r1+80)] = 0;
+	heap32[(r1+81)] = 0;
+	heap32[(r1+82)] = 0;
+	heap32[(r1+83)] = 0;
+	heap32[(r1+134)] = 1065353216;
+	heap32[(r1+135)] = 1065353216;
+	heap32[(r1+136)] = 1065353216;
+	heap32[(r1+137)] = 0;
+	heap32[(r1+85)] = 1065353216;
+	heap32[(r1+86)] = 1065353216;
+	heap32[(r1+87)] = 1065353216;
+	heap32[(r1+88)] = 0;
+	heap32[(r1+89)] = 0;
+	heap32[(r1+90)] = 0;
+	heap32[(r1+91)] = 0;
+	heap32[(r1+92)] = 0;
+	heap32[(r1+93)] = 0;
+	heap32[(r1+94)] = 0;
+	heap32[(r1+95)] = 0;
+	heap32[(r1+96)] = 0;
+	heap32[(r1+101)] = 0;
+	heap32[(r1+102)] = 0;
+	heap32[(r1+103)] = 0;
+	heap32[(r1+104)] = 0;
+	heap32[(r1+105)] = 0;
+	heap32[(r1+106)] = 0;
+	heap32[(r1+107)] = 0;
+	heap32[(r1+108)] = 0;
+	heap32[(r1+109)] = 0;
+	r2 = heap32[(fp+1)];
+	heap32[(r1+110)] = 1056964608;
+	r3 = r2 >> 2;
+	heap32[(r1+116)] = heap32[(r3+27)];
+	heap32[(r1+117)] = heap32[(r3+28)];
+	r4 = heap32[(r3+1)];
+	heap32[(r1+118)] = r4;
+	heap32[(r1+150)] = 0;
+	heap32[(r1+151)] = 0;
+	r5 = heapU8[r2+116];
+	heap8[r0+444] = r5;
+	heap32[(r1+112)] = heap32[(r3+30)];
+	heap32[(r1+113)] = heap32[(r3+31)];
+	heap32[(r1+114)] = heap32[(r3+32)];
+	heap32[(r1+115)] = heap32[(r3+33)];
+	if(r4 ==0) //_LBB682_2
+{
+	f0 = heapFloat[(r3+2)];
+	heapFloat[(r1+1)] = f0;
+	f1 = heapFloat[(r3+3)];
+	heapFloat[(r1+2)] = f1;
+	f2 = heapFloat[(r3+4)];
+	heapFloat[(r1+3)] = f2;
+	f3 = heapFloat[(r3+5)];
+	heapFloat[(r1+4)] = f3;
+	f4 = heapFloat[(r3+6)];
+	heapFloat[(r1+5)] = f4;
+	f5 = heapFloat[(r3+7)];
+	heapFloat[(r1+6)] = f5;
+	f6 = heapFloat[(r3+8)];
+	heapFloat[(r1+7)] = f6;
+	f7 = heapFloat[(r3+9)];
+	heapFloat[(r1+8)] = f7;
+	f8 = heapFloat[(r3+10)];
+	heapFloat[(r1+9)] = f8;
+	f9 = heapFloat[(r3+11)];
+	heapFloat[(r1+10)] = f9;
+	f10 = heapFloat[(r3+12)];
+	heapFloat[(r1+11)] = f10;
+	f11 = heapFloat[(r3+13)];
+	heapFloat[(r1+12)] = f11;
+	f12 = heapFloat[(r3+14)];
+	heapFloat[(r1+13)] = f12;
+	f13 = heapFloat[(r3+15)];
+	heapFloat[(r1+14)] = f13;
+	f14 = heapFloat[(r3+16)];
+	heapFloat[(r1+15)] = f14;
+	f15 = heapFloat[(r3+17)];
+	heapFloat[(r1+16)] = f15;
+}
+else{
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+2)];
+	r6 = (r0 + 4)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r6;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	f0 = heapFloat[(r1+1)];
+	f1 = heapFloat[(r1+2)];
+	f2 = heapFloat[(r1+3)];
+	f3 = heapFloat[(r1+4)];
+	f4 = heapFloat[(r1+5)];
+	f5 = heapFloat[(r1+6)];
+	f6 = heapFloat[(r1+7)];
+	f7 = heapFloat[(r1+8)];
+	f8 = heapFloat[(r1+9)];
+	f9 = heapFloat[(r1+10)];
+	f10 = heapFloat[(r1+11)];
+	f11 = heapFloat[(r1+12)];
+	f12 = heapFloat[(r1+13)];
+	f13 = heapFloat[(r1+14)];
+	f14 = heapFloat[(r1+15)];
+	f15 = heapFloat[(r1+16)];
+}
+	heapFloat[(r1+17)] = f0;
+	heapFloat[(r1+18)] = f1;
+	heapFloat[(r1+19)] = f2;
+	heapFloat[(r1+20)] = f3;
+	heapFloat[(r1+21)] = f4;
+	heapFloat[(r1+22)] = f5;
+	heapFloat[(r1+23)] = f6;
+	heapFloat[(r1+24)] = f7;
+	heapFloat[(r1+25)] = f8;
+	heapFloat[(r1+26)] = f9;
+	heapFloat[(r1+27)] = f10;
+	heapFloat[(r1+28)] = f11;
+	heapFloat[(r1+29)] = f12;
+	heapFloat[(r1+30)] = f13;
+	heapFloat[(r1+31)] = f14;
+	heapFloat[(r1+32)] = f15;
+	heap32[(r1+33)] = 0;
+	heap32[(r1+34)] = 0;
+	heap32[(r1+35)] = 0;
+	heap32[(r1+36)] = 0;
+	heap32[(r1+37)] = 0;
+	heap32[(r1+38)] = 0;
+	heap32[(r1+39)] = 0;
+	heap32[(r1+40)] = 0;
+	heap32[(r1+56)] = heap32[(r3+25)];
+	heap32[(r1+57)] = heap32[(r3+26)];
+	r4 = heap32[(r1)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+3)];
+	r5 = heap32[(r3+18)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	r5 = _ZL8uniqueId;
+	r5 = r5 >> 2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = heap32[(r5)];
+	r6 = (r4 + 1)|0;
+	heap32[(r1+125)] = r4;
+	heap32[(r5)] = r6;
+	f0 = heapFloat[(r3)];
+	r2 = (r2 + 76)|0;
+	heap32[(g0)] = r0;
+	heapFloat[(g0+1)] = f0;
+	heap32[(g0+2)] = r2;
+	_ZN11btRigidBody12setMassPropsEfRK9btVector3(i7);
+	f0 = heapFloat[(r3+23)];
+	f1 = heapFloat[(r3+24)];
+	f2 =                         0;
+	if(f0 >=f2) //_LBB682_5
+{
+	f3 =                         1;
+	f0 = f0 > f3 ? f3 : f0;
+}
+else{
+	f0 = f2;
+}
+	heapFloat[(r1+109)] = f0;
+	if(f1 >=f2) //_LBB682_8
+{
+	f0 =                         1;
+	f1 = f1 > f0 ? f0 : f1;
+}
+else{
+	f1 =                         0;
+}
+	heapFloat[(r1+110)] = f1;
+	heap32[(g0)] = r0;
+	_ZN11btRigidBody19updateInertiaTensorEv(i7);
+	heap32[(r1+124)] = 0;
+	heap32[(r1+126)] = 0;
+	heap32[(r1+127)] = 0;
+	heap32[(r1+128)] = 0;
+	heap32[(r1+129)] = 0;
+	heap32[(r1+130)] = 0;
+	heap32[(r1+131)] = 0;
+	heap32[(r1+132)] = 0;
+	heap32[(r1+133)] = 0;
+	f0 = heapFloat[(r1+87)];
+	f1 = heapFloat[(r1+84)];
+	f2 = heapFloat[(r1+86)];
+	f3 = heapFloat[(r1+85)];
+	f3 = f3*f1;
+	f2 = f2*f1;
+	heapFloat[(r1+138)] = f3;
+	f0 = f0*f1;
+	heapFloat[(r1+139)] = f2;
+	heapFloat[(r1+140)] = f0;
+	heap32[(r1+141)] = 0;
+	heap32[(r1+142)] = 0;
+	heap32[(r1+143)] = 0;
+	heap32[(r1+144)] = 0;
+	heap32[(r1+145)] = 0;
+	heap32[(r1+146)] = 0;
+	heap32[(r1+147)] = 0;
+	heap32[(r1+148)] = 0;
+	heap32[(r1+149)] = 0;
+	return;
+}
+
+function _ZN11btRigidBodyD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV11btRigidBody;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+120)];
+	if(r1 ==0) //_LBB683_2
+{
+	r1 = heap32[(r2+122)];
+if(!(r1 ==0)) //_LBB683_6
+{
+	r3 = heapU8[r0+492];
+if(!(r3 ==0)) //_LBB683_5
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+122)] = 0;
+}
+	r1 = 1;
+	heap8[r0+492] = r1;
+	heap32[(r2+122)] = 0;
+	r1 = _ZTV17btCollisionObject;
+	heap32[(r2+120)] = 0;
+	r1 = (r1 + 8)|0;
+	heap32[(r2+121)] = 0;
+	heap32[(r2)] = r1;
+if(!(r0 ==0)) //_LBB683_8
+{
+	r0 = gNumAlignedFree;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	r0 = heap32[(r2+-1)];
+	heap32[(g0)] = r0;
+	free(i7);
+}
+	return;
+}
+else{
+	r0 = _2E_str248;
+	r2 = _2E_str34955;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 175;
+	_assert(i7);
+}
+}
+
+function _ZN11btRigidBodyD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTV11btRigidBody;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	r1 = heap32[(r2+120)];
+	if(r1 ==0) //_LBB684_2
+{
+	r1 = heap32[(r2+122)];
+if(!(r1 ==0)) //_LBB684_6
+{
+	r3 = heapU8[r0+492];
+if(!(r3 ==0)) //_LBB684_5
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1)|0;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r4;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	free(i7);
+}
+	heap32[(r2+122)] = 0;
+}
+	r1 = 1;
+	heap8[r0+492] = r1;
+	heap32[(r2+122)] = 0;
+	r0 = _ZTV17btCollisionObject;
+	heap32[(r2+120)] = 0;
+	r0 = (r0 + 8)|0;
+	heap32[(r2+121)] = 0;
+	heap32[(r2)] = r0;
+	return;
+}
+else{
+	r0 = _2E_str248;
+	r2 = _2E_str34955;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 175;
+	_assert(i7);
+}
+}
+
+function _ZNK11btRigidBody9serializeEPvP12btSerializer(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	r1 = r1 >> 2;
+	r2 = r0 >> 2;
+	_ZNK17btCollisionObject9serializeEPvP12btSerializer(i7);
+	heap32[(r1+62)] = heap32[(r2+64)];
+	heap32[(r1+63)] = heap32[(r2+65)];
+	heap32[(r1+64)] = heap32[(r2+66)];
+	heap32[(r1+65)] = heap32[(r2+67)];
+	heap32[(r1+66)] = heap32[(r2+68)];
+	heap32[(r1+67)] = heap32[(r2+69)];
+	heap32[(r1+68)] = heap32[(r2+70)];
+	heap32[(r1+69)] = heap32[(r2+71)];
+	heap32[(r1+70)] = heap32[(r2+72)];
+	heap32[(r1+71)] = heap32[(r2+73)];
+	heap32[(r1+72)] = heap32[(r2+74)];
+	heap32[(r1+73)] = heap32[(r2+75)];
+	heap32[(r1+74)] = heap32[(r2+76)];
+	heap32[(r1+75)] = heap32[(r2+77)];
+	heap32[(r1+76)] = heap32[(r2+78)];
+	heap32[(r1+77)] = heap32[(r2+79)];
+	heap32[(r1+78)] = heap32[(r2+80)];
+	heap32[(r1+79)] = heap32[(r2+81)];
+	heap32[(r1+80)] = heap32[(r2+82)];
+	heap32[(r1+81)] = heap32[(r2+83)];
+	heap32[(r1+110)] = heap32[(r2+84)];
+	heap32[(r1+82)] = heap32[(r2+134)];
+	heap32[(r1+83)] = heap32[(r2+135)];
+	heap32[(r1+84)] = heap32[(r2+136)];
+	heap32[(r1+85)] = heap32[(r2+137)];
+	heap32[(r1+86)] = heap32[(r2+85)];
+	heap32[(r1+87)] = heap32[(r2+86)];
+	heap32[(r1+88)] = heap32[(r2+87)];
+	heap32[(r1+89)] = heap32[(r2+88)];
+	heap32[(r1+90)] = heap32[(r2+89)];
+	heap32[(r1+91)] = heap32[(r2+90)];
+	heap32[(r1+92)] = heap32[(r2+91)];
+	heap32[(r1+93)] = heap32[(r2+92)];
+	heap32[(r1+94)] = heap32[(r2+93)];
+	heap32[(r1+95)] = heap32[(r2+94)];
+	heap32[(r1+96)] = heap32[(r2+95)];
+	heap32[(r1+97)] = heap32[(r2+96)];
+	heap32[(r1+98)] = heap32[(r2+97)];
+	heap32[(r1+99)] = heap32[(r2+98)];
+	heap32[(r1+100)] = heap32[(r2+99)];
+	heap32[(r1+101)] = heap32[(r2+100)];
+	heap32[(r1+102)] = heap32[(r2+101)];
+	heap32[(r1+103)] = heap32[(r2+102)];
+	heap32[(r1+104)] = heap32[(r2+103)];
+	heap32[(r1+105)] = heap32[(r2+104)];
+	heap32[(r1+106)] = heap32[(r2+105)];
+	heap32[(r1+107)] = heap32[(r2+106)];
+	heap32[(r1+108)] = heap32[(r2+107)];
+	heap32[(r1+109)] = heap32[(r2+108)];
+	heap32[(r1+111)] = heap32[(r2+109)];
+	heap32[(r1+112)] = heap32[(r2+110)];
+	r0 = heapU8[r0+444];
+	heap32[(r1+119)] = r0;
+	heap32[(r1+113)] = heap32[(r2+112)];
+	heap32[(r1+114)] = heap32[(r2+113)];
+	heap32[(r1+115)] = heap32[(r2+114)];
+	heap32[(r1+116)] = heap32[(r2+115)];
+	heap32[(r1+117)] = heap32[(r2+116)];
+	heap32[(r1+118)] = heap32[(r2+117)];
+	r0 = _2E_str4144;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(r1+120)];
+	r4 = 0;
+_1: while(true){
+	if(r3 >r4) //_LBB686_1
+{
+	r5 = heap32[(r1+122)];
+	r6 = r4 << 2;
+	r5 = (r5 + r6)|0;
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	if(r5 !=r2) //_LBB686_3
+{
+	r4 = (r4 + 1)|0;
+continue _1;
+}
+else{
+__label__ = 5;
+break _1;
+}
+}
+else{
+__label__ = 4;
+break _1;
+}
+}
+if (__label__ == 4){
+	r4 = r3;
+}
+if(!(r3 !=r4)) //_LBB686_27
+{
+	r4 = heap32[(r1+121)];
+	if(r4 ==r3) //_LBB686_9
+{
+	r5 = 1;
+	r6 = r3 << 1;
+	r6 = r3 == 0 ? r5 : r6;
+if(!(r4 >=r6)) //_LBB686_8
+{
+	if(r6 !=0) //_LBB686_12
+{
+	r4 = gNumAlignedAllocs;
+	r4 = r4 >> 2;
+	r7 = heap32[(r4)];
+	r8 = r6 << 2;
+	r7 = (r7 + 1)|0;
+	r8 = r8 | 3;
+	heap32[(r4)] = r7;
+	r4 = (r8 + 16)|0;
+	heap32[(g0)] = r4;
+	malloc(i7);
+	r4 = r_g0;
+	if(r4 !=0) //_LBB686_14
+{
+	r7 = 0;
+	r8 = (r4 + 4)|0;
+	r7 = (r7 - r8)|0;
+	r7 = r7 & 15;
+	r7 = (r4 + r7)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r4;
+	r4 = r8;
+}
+}
+else{
+	r4 = 0;
+}
+_18: do {
+	if(r3 <1) //_LBB686_17
+{
+	r8 = heap32[(r1+122)];
+}
+else{
+	r7 = 0;
+_21: while(true){
+	r8 = heap32[(r1+122)];
+	r9 = r7 << 2;
+	r10 = (r8 + r9)|0;
+	r10 = r10 >> 2;
+	r9 = (r4 + r9)|0;
+	r10 = heap32[(r10)];
+	r7 = (r7 + 1)|0;
+	r9 = r9 >> 2;
+	heap32[(r9)] = r10;
+if(!(r3 !=r7)) //_LBB686_18
+{
+break _18;
+}
+}
+}
+} while(0);
+	if(r8 !=0) //_LBB686_21
+{
+	r7 = heapU8[r0+492];
+	if(r7 !=0) //_LBB686_23
+{
+	r3 = gNumAlignedFree;
+	r3 = r3 >> 2;
+	r7 = heap32[(r3)];
+	r7 = (r7 + 1)|0;
+	r8 = r8 >> 2;
+	heap32[(r3)] = r7;
+	r3 = heap32[(r8+-1)];
+	heap32[(g0)] = r3;
+	free(i7);
+	r3 = heap32[(r1+120)];
+}
+	heap32[(r1+122)] = 0;
+}
+	heap8[r0+492] = r5;
+	heap32[(r1+122)] = r4;
+	heap32[(r1+121)] = r6;
+}
+}
+	r0 = r3 << 2;
+	r3 = heap32[(r1+122)];
+	r0 = (r3 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r2;
+	r0 = heap32[(r1+120)];
+	r0 = (r0 + 1)|0;
+	heap32[(r1+120)] = r0;
+}
+	heap32[(r1+63)] = 1;
+	return;
+}
+
+function _ZN11btRigidBody19integrateVelocitiesEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+	var f9;
+	var f10;
+	var f11;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+204];
+	r1 = r1 & 3;
+if(!(r1 !=0)) //_LBB687_3
+{
+	f0 = heapFloat[(fp+1)];
+	r0 = r0 >> 2;
+	f1 = heapFloat[(r0+84)];
+	f1 = f1*f0;
+	f2 = heapFloat[(r0+101)];
+	f3 = heapFloat[(r0+103)];
+	f4 = heapFloat[(r0+102)];
+	f5 = heapFloat[(r0+76)];
+	f2 = f2*f1;
+	f2 = f5+f2;
+	heapFloat[(r0+76)] = f2;
+	f2 = f4*f1;
+	f4 = heapFloat[(r0+77)];
+	f2 = f4+f2;
+	heapFloat[(r0+77)] = f2;
+	f1 = f3*f1;
+	f2 = heapFloat[(r0+78)];
+	f1 = f2+f1;
+	heapFloat[(r0+78)] = f1;
+	f1 = heapFloat[(r0+105)];
+	f2 = heapFloat[(r0+64)];
+	f3 = heapFloat[(r0+106)];
+	f4 = heapFloat[(r0+65)];
+	f2 = f2*f1;
+	f4 = f4*f3;
+	f5 = heapFloat[(r0+107)];
+	f6 = heapFloat[(r0+66)];
+	f2 = f2+f4;
+	f4 = f6*f5;
+	f2 = f2+f4;
+	f4 = heapFloat[(r0+68)];
+	f6 = heapFloat[(r0+69)];
+	f7 = heapFloat[(r0+72)];
+	f8 = heapFloat[(r0+73)];
+	f9 = heapFloat[(r0+74)];
+	f10 = heapFloat[(r0+70)];
+	f11 = heapFloat[(r0+80)];
+	f2 = f2*f0;
+	f4 = f4*f1;
+	f6 = f6*f3;
+	f2 = f11+f2;
+	f4 = f4+f6;
+	f6 = f10*f5;
+	f4 = f4+f6;
+	heapFloat[(r0+80)] = f2;
+	f1 = f7*f1;
+	f3 = f8*f3;
+	f4 = f4*f0;
+	f6 = heapFloat[(r0+81)];
+	f4 = f6+f4;
+	f1 = f1+f3;
+	f3 = f9*f5;
+	f1 = f1+f3;
+	heapFloat[(r0+81)] = f4;
+	f1 = f1*f0;
+	f3 = heapFloat[(r0+82)];
+	f1 = f3+f1;
+	f2 = f2*f2;
+	f3 = f4*f4;
+	heapFloat[(r0+82)] = f1;
+	f2 = f2+f3;
+	f1 = f1*f1;
+	f1 = f2+f1;
+	heapFloat[(g0)] = f1;
+	sqrtf(i7);
+	f1 = f_g0;
+	f2 = f1*f0;
+	f3 =        1.5707963705062866;
+if(!(f2 <=f3)) //_LBB687_3
+{
+	f0 = f3/f0;
+	f0 = f0/f1;
+	f1 = heapFloat[(r0+80)];
+	f1 = f1*f0;
+	heapFloat[(r0+80)] = f1;
+	f1 = heapFloat[(r0+81)];
+	f1 = f1*f0;
+	heapFloat[(r0+81)] = f1;
+	f1 = heapFloat[(r0+82)];
+	f0 = f1*f0;
+	heapFloat[(r0+82)] = f0;
+}
+}
+	return;
+}
+
+function _ZN11btRigidBody12applyDampingEf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+	var f4;
+	var f5;
+	var f6;
+	var f7;
+	var f8;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	f0 = heapFloat[(r1+109)];
+	f1 =                         1;
+	f2 = heapFloat[(fp+1)];
+	f0 = f1-f0;
+	heapFloat[(g0)] = f0;
+	heapFloat[(g0+1)] = f2;
+	powf(i7);
+	f3 = heapFloat[(r1+76)];
+	f3 = f3*f_g0;
+	heapFloat[(r1+76)] = f3;
+	f3 = heapFloat[(r1+77)];
+	f3 = f3*f_g0;
+	heapFloat[(r1+77)] = f3;
+	f3 = heapFloat[(r1+78)];
+	f0 = f3*f_g0;
+	heapFloat[(r1+78)] = f0;
+	f0 = heapFloat[(r1+110)];
+	f0 = f1-f0;
+	heapFloat[(g0)] = f0;
+	heapFloat[(g0+1)] = f2;
+	powf(i7);
+	f2 = heapFloat[(r1+80)];
+	f2 = f2*f_g0;
+	heapFloat[(r1+80)] = f2;
+	f3 = heapFloat[(r1+81)];
+	f3 = f3*f_g0;
+	heapFloat[(r1+81)] = f3;
+	f4 = heapFloat[(r1+82)];
+	f0 = f4*f_g0;
+	heapFloat[(r1+82)] = f0;
+	r0 = heapU8[r0+444];
+if(!(r0 ==0)) //_LBB688_14
+{
+	f4 = f2*f2;
+	f5 = f3*f3;
+	f6 = heapFloat[(r1+76)];
+	f4 = f4+f5;
+	f5 = f0*f0;
+	f4 = f4+f5;
+	f5 = heapFloat[(r1+114)];
+	if(f4 <f5) //_LBB688_3
+{
+	f4 = heapFloat[(r1+77)];
+	f5 = heapFloat[(r1+78)];
+	f7 = f6*f6;
+	f8 = f4*f4;
+	f7 = f7+f8;
+	f8 = f5*f5;
+	f7 = f7+f8;
+	f8 = heapFloat[(r1+113)];
+	if(f7 <f8) //_LBB688_5
+{
+	f7 = heapFloat[(r1+112)];
+	f2 = f2*f7;
+	f3 = f3*f7;
+	heapFloat[(r1+80)] = f2;
+	f0 = f0*f7;
+	heapFloat[(r1+81)] = f3;
+	f6 = f6*f7;
+	heapFloat[(r1+82)] = f0;
+	f4 = f4*f7;
+	heapFloat[(r1+76)] = f6;
+	f5 = f5*f7;
+	heapFloat[(r1+77)] = f4;
+	heapFloat[(r1+78)] = f5;
+}
+}
+else{
+	f4 = heapFloat[(r1+77)];
+	f5 = heapFloat[(r1+78)];
+}
+	f0 = f6*f6;
+	f2 = f4*f4;
+	f0 = f0+f2;
+	f2 = f5*f5;
+	f0 = f0+f2;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f0 = f_g0;
+	f2 = heapFloat[(r1+109)];
+if(!(f2 <=f0)) //_LBB688_10
+{
+	f2 =      0.004999999888241291;
+	if(f0 <=f2) //_LBB688_9
+{
+	heap32[(r1+76)] = 0;
+	heap32[(r1+77)] = 0;
+	heap32[(r1+78)] = 0;
+	heap32[(r1+79)] = 0;
+}
+else{
+	f0 = heapFloat[(r1+76)];
+	f3 = heapFloat[(r1+77)];
+	f4 = heapFloat[(r1+78)];
+	f0 = f0*f0;
+	f3 = f3*f3;
+	f0 = f0+f3;
+	f3 = f4*f4;
+	f0 = f0+f3;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f0 = f1/f_g0;
+	f3 = heapFloat[(r1+76)];
+	f4 = heapFloat[(r1+77)];
+	f5 = f3*f0;
+	f6 = heapFloat[(r1+78)];
+	f7 = f4*f0;
+	f5 = f5*f2;
+	f0 = f6*f0;
+	f7 = f7*f2;
+	f3 = f3-f5;
+	f0 = f0*f2;
+	f2 = f4-f7;
+	heapFloat[(r1+76)] = f3;
+	f0 = f6-f0;
+	heapFloat[(r1+77)] = f2;
+	heapFloat[(r1+78)] = f0;
+}
+}
+	f0 = heapFloat[(r1+80)];
+	f2 = heapFloat[(r1+81)];
+	f3 = heapFloat[(r1+82)];
+	f0 = f0*f0;
+	f2 = f2*f2;
+	f0 = f0+f2;
+	f2 = f3*f3;
+	f0 = f0+f2;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f0 = f_g0;
+	f2 = heapFloat[(r1+110)];
+if(!(f2 <=f0)) //_LBB688_14
+{
+	f2 =      0.004999999888241291;
+	if(f0 <=f2) //_LBB688_13
+{
+	heap32[(r1+80)] = 0;
+	heap32[(r1+81)] = 0;
+	heap32[(r1+82)] = 0;
+	heap32[(r1+83)] = 0;
+}
+else{
+	f0 = heapFloat[(r1+80)];
+	f3 = heapFloat[(r1+81)];
+	f4 = heapFloat[(r1+82)];
+	f0 = f0*f0;
+	f3 = f3*f3;
+	f0 = f0+f3;
+	f3 = f4*f4;
+	f0 = f0+f3;
+	heapFloat[(g0)] = f0;
+	sqrtf(i7);
+	f0 = f1/f_g0;
+	f1 = heapFloat[(r1+80)];
+	f3 = heapFloat[(r1+81)];
+	f4 = f1*f0;
+	f5 = heapFloat[(r1+82)];
+	f6 = f3*f0;
+	f4 = f4*f2;
+	f0 = f5*f0;
+	f6 = f6*f2;
+	f1 = f1-f4;
+	f0 = f0*f2;
+	f2 = f3-f6;
+	heapFloat[(r1+80)] = f1;
+	f0 = f5-f0;
+	heapFloat[(r1+81)] = f2;
+	heapFloat[(r1+82)] = f0;
+	return;
+}
+}
+}
+	return;
+}
+
+function _GLOBAL__I__ZN7btClockC2Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = _ZL13gProfileClock_2E_0;
+	heap32[(g0)] = 8;
+	r0 = r0 >> 2;
+	_Znwj(i7);
+	heap32[(r0)] = r_g0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = 0;
+	r0 = _ZN15CProfileManager4RootE;
+	r1 = r0 >> 2;
+	r2 = _2E_str729;
+	gettimeofday(i7);
+	heap32[(r1)] = r2;
+	heap32[(r1+1)] = 0;
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = 0;
+	heap32[(r1+4)] = 0;
+	heap32[(r1+5)] = 0;
+	heap32[(r1+6)] = 0;
+	heap32[(r1+7)] = 0;
+	heap32[(g0)] = r0;
+	_ZN12CProfileNode5ResetEv(i7);
+	return;
+}
+
+function _GLOBAL__D__ZN7btClockC2Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = _ZN15CProfileManager4RootE;
+	r1 = _ZL13gProfileClock_2E_0;
+	heap32[(g0)] = r0;
+	r0 = r1 >> 2;
+	_ZN12CProfileNodeD1Ev(i7);
+	r0 = heap32[(r0)];
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN12CProfileNode5ResetEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+_1: while(true){
+	r0 = r0 >> 2;
+	heap32[(r0+1)] = 0;
+	heap32[(r0+2)] = 0;
+	r1 = heap32[(r0+6)];
+if(!(r1 ==0)) //_LBB691_3
+{
+	heap32[(g0)] = r1;
+	_ZN12CProfileNode5ResetEv(i7);
+}
+	r0 = heap32[(r0+7)];
+	if(r0 !=0) //_LBB691_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+	return;
+}
+
+function _ZN12CProfileNodeD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+6)];
+if(!(r1 ==0)) //_LBB692_2
+{
+	heap32[(g0)] = r1;
+	_ZN12CProfileNodeD1Ev(i7);
+	heap32[(g0)] = r1;
+	_ZdlPv(i7);
+}
+	r0 = heap32[(r0+7)];
+if(!(r0 ==0)) //_LBB692_4
+{
+	heap32[(g0)] = r0;
+	_ZN12CProfileNodeD1Ev(i7);
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+}
+	return;
+}
+
+function _ZN15CProfileManager13Start_ProfileEPKc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _ZN15CProfileManager11CurrentNodeE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = heap32[(fp)];
+	r3 = r1 >> 2;
+	r4 = heap32[(r3)];
+	if(r4 !=r2) //_LBB693_2
+{
+	r4 = (r1 + 24)|0;
+_3: while(true){
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	if(r4 !=0) //_LBB693_3
+{
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	if(r5 !=r2) //_LBB693_5
+{
+	r4 = (r4 + 28)|0;
+}
+else{
+__label__ = 3;
+break _3;
+}
+}
+else{
+__label__ = 6;
+break _3;
+}
+}
+switch(__label__ ){//multiple entries
+case 6:
+	heap32[(g0)] = 32;
+	_Znwj(i7);
+	r4 = r_g0;
+	r5 = r4 >> 2;
+	heap32[(r5)] = r2;
+	heap32[(r5+1)] = 0;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+	heap32[(r5+4)] = 0;
+	heap32[(r5+5)] = r1;
+	heap32[(r5+6)] = 0;
+	heap32[(r5+7)] = 0;
+	heap32[(g0)] = r4;
+	_ZN12CProfileNode5ResetEv(i7);
+	r1 = heap32[(r3+6)];
+	heap32[(r5+7)] = r1;
+	heap32[(r3+6)] = r4;
+	r1 = r4;
+break;
+case 3:
+	r1 = r4;
+break;
+}
+	heap32[(r0)] = r1;
+}
+	r0 = r1 >> 2;
+	r1 = heap32[(r0+1)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0+1)] = r1;
+	r1 = heap32[(r0+4)];
+	r2 = (r1 + 1)|0;
+	heap32[(r0+4)] = r2;
+if(!(r1 !=0)) //_LBB693_11
+{
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	r2 = _ZL13gProfileClock_2E_0;
+	gettimeofday(i7);
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r1 = r1 >> 2;
+	r3 = heap32[(fp+-2)];
+	r4 = heap32[(r2)];
+	r3 = (r3 - r4)|0;
+	r1 = heap32[(r1+1)];
+	r2 = heap32[(r2+1)];
+	r1 = (r1 - r2)|0;
+	r2 = (r3 * 1000000)|0;
+	r1 = (r1 + r2)|0;
+	heap32[(r0+3)] = r1;
+}
+	return;
+}
+
+function _ZN15CProfileManager5ResetEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = _ZL13gProfileClock_2E_0;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	gettimeofday(i7);
+	r1 = _ZN15CProfileManager4RootE;
+	heap32[(g0)] = r1;
+	r1 = r1 >> 2;
+	_ZN12CProfileNode5ResetEv(i7);
+	r2 = heap32[(r1+1)];
+	r2 = (r2 + 1)|0;
+	heap32[(r1+1)] = r2;
+	r2 = heap32[(r1+4)];
+	r3 = (r2 + 1)|0;
+	heap32[(r1+4)] = r3;
+if(!(r2 !=0)) //_LBB694_2
+{
+	r2 = sp + -16;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = 0;
+	gettimeofday(i7);
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r2 = r2 >> 2;
+	r3 = heap32[(fp+-4)];
+	r4 = heap32[(r0)];
+	r3 = (r3 - r4)|0;
+	r2 = heap32[(r2+1)];
+	r0 = heap32[(r0+1)];
+	r0 = (r2 - r0)|0;
+	r2 = (r3 * 1000000)|0;
+	r0 = (r0 + r2)|0;
+	heap32[(r1+3)] = r0;
+}
+	r0 = _ZN15CProfileManager12FrameCounterE;
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+	r0 = sp + -8;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	gettimeofday(i7);
+	return;
+}
+
+function _GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = _ZN4__rwL12__rw_catlistE_2E_0;
+	r1 = _ZN4__rwL12__rw_catlistE_2E_1;
+	r0 = r0 >> 2;
+	r2 = _ZN4__rwL12__rw_catlistE_2E_2;
+	r1 = r1 >> 2;
+	heap32[(r0)] = 0;
+	r2 = r2 >> 2;
+	heap32[(r1)] = 0;
+	heap32[(r2)] = 0;
+	heap32[(g0)] = 136;
+	_Znwj(i7);
+	r3 = r_g0;
+if(!(r3 !=0)) //_LBB695_3
+{
+	heap32[(g0)] = 3;
+	_ZN4__rw10__rw_throwEiz(i7);
+}
+	r4 = (r3 + 136)|0;
+	heap32[(g0)] = 0;
+	_ZdlPv(i7);
+	r5 = heap32[(r0)];
+	if(r5 ==0) //_LBB695_6
+{
+	r8 = r3;
+}
+else{
+	r6 = r5;
+	r7 = r3;
+_9: while(true){
+	r9 = r6 >> 2;
+	r6 = (r6 + 4)|0;
+	r8 = (r7 + 4)|0;
+	r7 = r7 >> 2;
+	r9 = heap32[(r9)];
+	heap32[(r7)] = r9;
+	r7 = r8;
+	if(r6 !=0) //_LBB695_7
+{
+continue _9;
+}
+else{
+break _9;
+}
+}
+}
+	r6 = 0;
+_12: while(true){
+	r7 = r6 << 2;
+	r7 = (r8 + r7)|0;
+	r6 = (r6 + 1)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = 0;
+	if(r6 !=2) //_LBB695_9
+{
+continue _12;
+}
+else{
+break _12;
+}
+}
+	r6 = heap32[(r1)];
+	if(r6 ==0) //_LBB695_12
+{
+	r6 = (r8 + 8)|0;
+	heap32[(r0)] = r3;
+	heap32[(r1)] = r6;
+	heap32[(r2)] = r4;
+	heap32[(g0)] = r5;
+	_ZdlPv(i7);
+	return;
+}
+else{
+	abort(i7);
+}
+}
+
+function _GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = _ZN4__rwL12__rw_catlistE_2E_0;
+	r1 = _ZN4__rwL12__rw_catlistE_2E_1;
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r0 = heap32[(r0)];
+	r2 = heap32[(r1)];
+	r3 = (r2 - r0)|0;
+	r3 = r3 >> 2;
+if(!(r3 ==0)) //_LBB696_2
+{
+	r3 = r3 << 2;
+	r2 = (r2 - r3)|0;
+	heap32[(r1)] = r2;
+}
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN4__rwL13__rw_vfmtwhatEPcjPKcS0_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = _ZN4__rwL16__rw_what_refcntE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+1)];
+	r4 = (r1 + 1)|0;
+	heap32[(r0)] = r4;
+	if(r1 !=0) //_LBB697_2
+{
+	heap32[(g0)] = 256;
+	_Znaj(i7);
+	r1 = r_g0;
+	r4 = heap32[(r0)];
+	r4 = (r4 + -1)|0;
+	heap32[(r0)] = r4;
+}
+else{
+	r1 = _ZN4__rwL13__rw_what_bufE;
+}
+	r4 = 256;
+	r12 = swrite__index__;
+_5: while(true){
+	r5 = sp + -16;
+	heap32[(fp+-8)] = r3;
+	r6 = r5 >> 2;
+	heap32[(fp+-7)] = r3;
+	r7 = (r4 + -1)|0;
+	r8 = 0;
+	heap32[(r6+1)] = 0;
+	r9 = sp + -24;
+	r10 = r4 == 0 ? r8 : r7;
+	heap32[(fp+-4)] = r1;
+	r11 = r9 >> 2;
+	heap32[(r6+2)] = r10;
+	heap32[(r11+1)] = r12;
+	heap32[(fp+-6)] = r5;
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	__v_printf(i7);
+	r5 = r_g0;
+_7: do {
+if(!(r1 ==0)) //_LBB697_11
+{
+if(!(r4 ==0)) //_LBB697_11
+{
+if(!(r5 <0)) //_LBB697_11
+{
+if(!(r4 ==-1)) //_LBB697_10
+{
+if(!(uint(r5) <uint(r4))) //_LBB697_10
+{
+	heap8[r1+r7] = r8;
+break _7;
+}
+}
+	heap8[r1+r5] = r8;
+}
+}
+}
+} while(0);
+	r5 = r5 < 0 ? r8 : r5;
+	r5 = r7 > r5 ? r5 : r8;
+	if(r5 !=0) //_LBB697_13
+{
+	if(r4 >r5) //_LBB697_20
+{
+break _5;
+}
+else{
+	r4 = (r5 + 1)|0;
+}
+}
+else{
+	r4 = r4 << 1;
+}
+	r5 = _ZN4__rwL13__rw_what_bufE;
+	if(r1 !=r5) //_LBB697_17
+{
+if(!(r1 ==0)) //_LBB697_19
+{
+	heap32[(g0)] = r1;
+	_ZdaPv(i7);
+}
+}
+else{
+	r1 = heap32[(r0)];
+	r1 = (r1 + -1)|0;
+	heap32[(r0)] = r1;
+}
+	heap32[(g0)] = r4;
+	_Znaj(i7);
+	r1 = r_g0;
+continue _5;
+}
+	r_g0 = r1;
+	return;
+}
+
+function _ZN4__rw10__rw_throwEiz(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -64;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	if(r0 >4) //_LBB698_9
+{
+	r1 = (sp + 4)|0;
+	heap32[(fp+-7)] = r1;
+	r2 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E7__fname;
+	heap32[(fp+-9)] = r1;
+	r2 = r2 >> 2;
+	heap32[(fp+-8)] = r1;
+	r3 = heap32[(r2)];
+if(!(r3 !=0)) //_LBB698_41
+{
+	r3 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer;
+	r4 = 0;
+_5: while(true){
+	r5 = heapU8[r3];
+	r4 = r5 == 58 ? r3 : r4;
+	if(r5 !=0) //_LBB698_13
+{
+	r5 = (r3 + 1)|0;
+	r6 = heapU8[r3+1];
+	r4 = r6 == 58 ? r5 : r4;
+	if(r6 !=0) //_LBB698_15
+{
+	r5 = (r3 + 2)|0;
+	r6 = heapU8[r3+2];
+	r4 = r6 == 58 ? r5 : r4;
+	if(r6 !=0) //_LBB698_17
+{
+	r5 = (r3 + 3)|0;
+	r6 = heapU8[r3+3];
+	r4 = r6 == 58 ? r5 : r4;
+	if(r6 !=0) //_LBB698_19
+{
+	r3 = (r3 + 4)|0;
+}
+else{
+break _5;
+}
+}
+else{
+break _5;
+}
+}
+else{
+break _5;
+}
+}
+else{
+break _5;
+}
+}
+_12: do {
+if(!(r4 ==0)) //_LBB698_24
+{
+	r3 = 0;
+	heap8[r4] = r3;
+	r3 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset;
+	r4 = (r4 + 1)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r3;
+	sscanf(i7);
+	r4 = r_g0;
+	r3 = r3 >> 2;
+if(!(r4 !=1)) //_LBB698_23
+{
+	r4 = heap32[(r3)];
+	if(r4 >0) //_LBB698_24
+{
+break _12;
+}
+}
+	heap32[(r3)] = 1;
+}
+} while(0);
+	r3 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E4msgs;
+	r4 = r3 >> 2;
+	heap32[(r4+1)] = 0;
+	heap32[(r4+2)] = 0;
+	heap32[(r4+3)] = 0;
+	heap32[(r4+4)] = 0;
+	heap32[(r4+5)] = 0;
+	r5 = _ZTVSt8messagesIcE;
+	heap32[(r4+6)] = 0;
+	r5 = (r5 + 8)|0;
+	heap32[(r4+7)] = 0;
+	r6 = _ZN4__rwL22__rw_classic_once_initE_2E_0_2E_b;
+	heap32[(r4)] = r5;
+	r5 = heapU8[r6];
+if(!(r5 != 0)) //_LBB698_29
+{
+	_ZN4__rw11__rw_locale11_C_get_bodyEPS0_S1_PKciPKNS_10__rw_facetE(i7);
+	r5 = r_g0;
+	r7 = _ZN4__rwL12__rw_classicE;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r5;
+if(!(r5 !=0)) //_LBB698_28
+{
+	r5 = _2E_str12102177;
+	r7 = _2E_str10100175;
+	r8 = _2E_str538;
+	heap32[(g0)] = 19;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r8;
+	_ZN4__rw10__rw_throwEiz(i7);
+}
+	r5 = 1;
+	heap8[r6] = r5;
+}
+	r5 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer;
+	r6 = heapU8[r5];
+	if(r6 ==0) //_LBB698_31
+{
+	r6 = _ZNSs11_C_null_refE;
+	r7 = 0;
+	r6 = (r6 + 12)|0;
+}
+else{
+	r6 = 0;
+_28: while(true){
+	r7 = (r5 - r6)|0;
+	r6 = (r6 + -1)|0;
+	r7 = heapU8[r7+1];
+if(!(r7 !=0)) //_LBB698_32
+{
+break _28;
+}
+}
+	r7 = 0;
+	r7 = (r7 - r6)|0;
+	if(r6 !=0) //_LBB698_35
+{
+	r6 = 32;
+	r6 = uint(r7) > uint(r6) ? r7 : r6;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r7;
+	_ZNSs10_C_get_repEjj(i7);
+	r6 = (r_g0 + 12)|0;
+}
+else{
+	r6 = _ZNSs11_C_null_refE;
+	r6 = (r6 + 12)|0;
+}
+}
+	heap32[(fp+-4)] = r6;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r7;
+	memcpy(i7);
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+2)];
+	r6 = sp + -16;
+	r7 = _ZN4__rwL12__rw_classicE;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r7;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r3 = r_g0;
+	r4 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r3;
+	r3 = heap32[(fp+-4)];
+	r3 = (r3 + -12)|0;
+	r4 = _ZNSs11_C_null_refE;
+if(!(r3 ==r4)) //_LBB698_40
+{
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r6 = (r4 + -1)|0;
+	heap32[(r3)] = r6;
+if(!(r4 >0)) //_LBB698_40
+{
+	r3 = heap32[(fp+-4)];
+	r3 = (r3 + -12)|0;
+	heap32[(g0)] = r3;
+	_ZdlPv(i7);
+}
+}
+	heap32[(fp+-4)] = 0;
+	heap32[(r2)] = r5;
+}
+	r2 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	if(r2 !=-1) //_LBB698_43
+{
+	r3 = _ZNSs11_C_null_refE;
+	r4 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E4msgs;
+	r5 = (r3 + 12)|0;
+	r6 = r4 >> 2;
+	heap32[(fp+-2)] = r5;
+	r5 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r5 = r5 >> 2;
+	r6 = heap32[(r6+3)];
+	r5 = heap32[(r5)];
+	r7 = sp + -24;
+	r8 = sp + -8;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r5;
+	heap32[(g0+4)] = r0;
+	heap32[(g0+5)] = r8;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r2 = heap32[(fp+-2)];
+	r2 = (r2 + -12)|0;
+if(!(r2 ==r3)) //_LBB698_47
+{
+	r2 = r2 >> 2;
+	r4 = heap32[(r2)];
+	r5 = (r4 + -1)|0;
+	heap32[(r2)] = r5;
+if(!(r4 >0)) //_LBB698_47
+{
+	r2 = heap32[(fp+-2)];
+	r2 = (r2 + -12)|0;
+	heap32[(g0)] = r2;
+	_ZdlPv(i7);
+}
+}
+	heap32[(fp+-2)] = 0;
+	r2 = heap32[(fp+-6)];
+	r4 = r2 >> 2;
+	r4 = heap32[(r4+-1)];
+	if(r4 !=0) //_LBB698_49
+{
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r1;
+	_ZN4__rwL13__rw_vfmtwhatEPcjPKcS0_(i7);
+	r1 = r_g0;
+	r2 = heap32[(fp+-6)];
+}
+else{
+	r1 = 0;
+}
+	r2 = (r2 + -12)|0;
+if(!(r2 ==r3)) //_LBB698_54
+{
+	r2 = r2 >> 2;
+	r3 = heap32[(r2)];
+	r4 = (r3 + -1)|0;
+	heap32[(r2)] = r4;
+if(!(r3 >0)) //_LBB698_54
+{
+	r2 = heap32[(fp+-6)];
+	r2 = (r2 + -12)|0;
+	heap32[(g0)] = r2;
+	_ZdlPv(i7);
+}
+}
+	heap32[(fp+-6)] = 0;
+	if(r1 ==0) //_LBB698_56
+{
+__label__ = 50;
+}
+else{
+__label__ = 51;
+}
+}
+else{
+__label__ = 50;
+}
+if (__label__ == 50){
+	r1 = 24;
+	r2 = 0;
+	r0 = uint(r0) > uint(r1) ? r2 : r0;
+	r1 = _ZZN4__rw10__rw_throwEizE6errors;
+	r2 = r0 << 2;
+	r1 = (r1 + r2)|0;
+	r1 = r1 >> 2;
+	r2 = heap32[(fp+-7)];
+	r1 = heap32[(r1)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	_ZN4__rwL13__rw_vfmtwhatEPcjPKcS0_(i7);
+	r1 = r_g0;
+	if(r1 ==0) //_LBB698_60
+{
+	if(r0 ==2) //_LBB698_65
+{
+	r0 = _2E_str47;
+}
+else{
+	if(r0 ==1) //_LBB698_64
+{
+	r0 = _2E_str15132;
+}
+else{
+	if(r0 !=0) //_LBB698_66
+{
+	r0 = _2E_str5134;
+}
+else{
+	r0 = _2E_str4131;
+}
+}
+}
+	heap32[(g0)] = r0;
+	fprintf(i7);
+__label__ = 62;
+}
+else{
+__label__ = 51;
+}
+}
+if (__label__ == 51){
+	heap32[(g0)] = r1;
+	r0 = _ZN4__rwL13__rw_what_bufE;
+	fprintf(i7);
+	if(r1 !=r0) //_LBB698_59
+{
+	heap32[(g0)] = r1;
+	_ZdaPv(i7);
+}
+else{
+	r0 = _ZN4__rwL16__rw_what_refcntE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r1 = (r1 + -1)|0;
+	heap32[(r0)] = r1;
+}
+}
+	abort(i7);
+}
+else{
+	if(r0 ==2) //_LBB698_6
+{
+	r0 = _2E_str47;
+}
+else{
+	if(r0 ==1) //_LBB698_5
+{
+	r0 = _2E_str15132;
+}
+else{
+	if(r0 !=0) //_LBB698_7
+{
+	r0 = _2E_str5134;
+}
+else{
+	r0 = _2E_str4131;
+}
+}
+}
+	heap32[(g0)] = r0;
+	fprintf(i7);
+	abort(i7);
+}
+}
+
+function _ZN4__rw10__rw_facetD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN4__rw10__rw_facetE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	heap32[(r0+5)] = -1;
+	r1 = heap32[(r0+1)];
+	r2 = heap32[(r0+2)];
+if(!(r1 ==r2)) //_LBB699_3
+{
+if(!(r1 ==0)) //_LBB699_3
+{
+	heap32[(g0)] = r1;
+	_ZdaPv(i7);
+}
+}
+	r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed;
+	heap32[(r0+1)] = r1;
+	r1 = heap32[(r0+4)];
+if(!(r1 !=-1)) //_LBB699_5
+{
+	r0 = heap32[(r0+3)];
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+}
+	return;
+}
+
+function _ZN4__rw10__rw_facetD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN4__rw10__rw_facetE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(r2+5)] = -1;
+	r1 = heap32[(r2+1)];
+	r3 = heap32[(r2+2)];
+if(!(r1 ==r3)) //_LBB700_3
+{
+if(!(r1 ==0)) //_LBB700_3
+{
+	heap32[(g0)] = r1;
+	_ZdaPv(i7);
+}
+}
+	r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed;
+	heap32[(r2+1)] = r1;
+	r1 = heap32[(r2+4)];
+if(!(r1 !=-1)) //_LBB700_5
+{
+	r1 = heap32[(r2+3)];
+	heap32[(g0)] = r1;
+	_ZdlPv(i7);
+}
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_E(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE12n_std_facets;
+	r1 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE10std_facets;
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r2 = heap32[(fp)];
+	r3 = heap32[(r0)];
+	r4 = heap32[(r1)];
+_1: do {
+	if(r2 ==0) //_LBB701_24
+{
+	r5 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r6 = heap32[(fp+3)];
+	r7 = _2E_str538;
+	r8 = r2 == 0 ? r7 : r2;
+	r9 = r3;
+_3: while(true){
+	r10 = r9;
+	if(r10 ==0) //_LBB701_34
+{
+__label__ = 34;
+break _3;
+}
+else{
+	r9 = r10 << 1;
+	r11 = r9 & -4;
+	r12 = (r4 + r11)|0;
+	r9 = r12 >> 2;
+	r13 = heap32[(r9)];
+	r14 = r13 >> 2;
+	r15 = heap32[(r14+5)];
+	r9 = r10 >>> 1;
+	if(r15 !=r5) //_LBB701_27
+{
+	r15 = (r15 - r5)|0;
+}
+else{
+	r15 = heap32[(r14+1)];
+	r15 = r15 == 0 ? r7 : r15;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r15;
+	strcmp(i7);
+	r15 = r_g0;
+}
+	if(r15 <0) //_LBB701_31
+{
+__label__ = 31;
+}
+else{
+	if(r15 <1) //_LBB701_32
+{
+__label__ = 32;
+break _3;
+}
+else{
+	r4 = (r11 + r4)|0;
+	r10 = (r10 + -1)|0;
+	r4 = (r4 + 4)|0;
+	r9 = (r10 - r9)|0;
+}
+}
+}
+}
+if (__label__ == 32){
+if(!(r12 ==0)) //_LBB701_34
+{
+	r2 = heap32[(r14+6)];
+	r2 = (r2 + 1)|0;
+	heap32[(r14+6)] = r2;
+	r_g0 = r13;
+	return;
+}
+}
+	r4 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE17std_facet_bufsize;
+	r4 = r4 >> 2;
+	r7 = heap32[(r4)];
+if(!(r3 !=r7)) //_LBB701_39
+{
+	r3 = r3 << 3;
+	heap32[(g0)] = r3;
+	_Znaj(i7);
+	r3 = r_g0;
+	r7 = heap32[(r1)];
+	r8 = heap32[(r0)];
+	r8 = r8 << 2;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r8;
+	memcpy(i7);
+	r8 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf;
+if(!(r7 ==r8)) //_LBB701_38
+{
+if(!(r7 ==0)) //_LBB701_38
+{
+	heap32[(g0)] = r7;
+	_ZdaPv(i7);
+}
+}
+	heap32[(r1)] = r3;
+	r3 = heap32[(r4)];
+	r3 = r3 << 1;
+	heap32[(r4)] = r3;
+}
+	r3 = r5 & 1;
+	r4 = 0;
+	r2 = r3 == 0 ? r2 : r4;
+	heap32[(g0)] = 1;
+	heap32[(g0+1)] = r2;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r2 = r_g0;
+	r3 = (r5 + 1)|0;
+	r4 = r3 >>> 31;
+	r6 = r2 >> 2;
+	r3 = (r3 + r4)|0;
+	r4 = heap32[(r6+7)];
+	r4 = r4 >> 2;
+	r3 = r3 >> 1;
+	heap32[(r4)] = r3;
+	r3 = heap32[(r6+5)];
+if(!(r3 ==r5)) //_LBB701_41
+{
+	r3 = r2 >> 2;
+	heap32[(r3+5)] = r5;
+}
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+6)];
+if(!(r4 ==1)) //_LBB701_43
+{
+	heap32[(r3+6)] = 1;
+}
+	r3 = heap32[(r0)];
+	r1 = heap32[(r1)];
+	r4 = r3 << 2;
+	r4 = (r1 + r4)|0;
+	r4 = r4 >> 2;
+	r5 = (r3 + 1)|0;
+	heap32[(r4)] = r2;
+	heap32[(r0)] = r5;
+	r0 = (r3 + -1)|0;
+	if(uint(r0) <uint(2147483645)) //_LBB701_45
+{
+	r0 = cmpfacets__index__;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r0;
+	quicksort(i7);
+}
+}
+else{
+	r5 = r3;
+	r6 = r4;
+_31: while(true){
+	r7 = r5;
+	if(r7 ==0) //_LBB701_23
+{
+__label__ = 23;
+break _31;
+}
+else{
+	r5 = r7 << 1;
+	r8 = r5 & -4;
+	r9 = (r6 + r8)|0;
+	r5 = r9 >> 2;
+	r5 = heap32[(r5)];
+	r10 = r2 >> 2;
+	r11 = r5 >> 2;
+	r12 = heap32[(r10+5)];
+	r13 = heap32[(r11+5)];
+	r5 = r7 >>> 1;
+	if(r12 !=r13) //_LBB701_4
+{
+	r12 = (r13 - r12)|0;
+}
+else{
+	r12 = heap32[(r11+1)];
+	r13 = heap32[(r10+1)];
+	r10 = _2E_str538;
+	r13 = r13 == 0 ? r10 : r13;
+	r12 = r12 == 0 ? r10 : r12;
+	heap32[(g0)] = r13;
+	heap32[(g0+1)] = r12;
+	strcmp(i7);
+	r12 = r_g0;
+}
+	if(r12 <0) //_LBB701_8
+{
+__label__ = 8;
+}
+else{
+	if(r12 <1) //_LBB701_9
+{
+__label__ = 9;
+break _31;
+}
+else{
+	r6 = (r8 + r6)|0;
+	r7 = (r7 + -1)|0;
+	r6 = (r6 + 4)|0;
+	r5 = (r7 - r5)|0;
+}
+}
+}
+}
+if (__label__ == 9){
+if(!(r9 ==0)) //_LBB701_23
+{
+	r2 = (r9 - r4)|0;
+	r5 = r2 & -4;
+	r6 = (r4 + r5)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+	r7 = r6 >> 2;
+	r8 = heap32[(r7+6)];
+	r8 = (r8 + -1)|0;
+	heap32[(r7+6)] = r8;
+	if(r8 ==0) //_LBB701_12
+{
+	r2 = r2 >> 2;
+	r8 = (r3 + -1)|0;
+	heap32[(r0)] = r8;
+	if(uint(r8) >uint(207)) //_LBB701_17
+{
+__label__ = 17;
+}
+else{
+	r0 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf;
+	if(r4 ==r0) //_LBB701_17
+{
+__label__ = 17;
+}
+else{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r5;
+	r3 = r2 << 2;
+	r5 = (r3 + r4)|0;
+	r2 = (r8 - r2)|0;
+	memcpy(i7);
+	r3 = (r0 + r3)|0;
+	r8 = (r5 + 4)|0;
+	r2 = r2 << 2;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r2;
+	memcpy(i7);
+if(!(r4 ==0)) //_LBB701_16
+{
+	heap32[(g0)] = r4;
+	_ZdaPv(i7);
+}
+	heap32[(r1)] = r0;
+__label__ = 20;
+}
+}
+_51: do {
+if (__label__ == 17){
+	r0 = (r8 - r2)|0;
+	r0 = r0 << 2;
+if(!(r0 ==0)) //_LBB701_20
+{
+	r0 = r3 << 2;
+	r2 = r2 << 2;
+	r0 = (r0 + -4)|0;
+	r1 = (r2 + r4)|0;
+	r2 = (r0 - r2)|0;
+	r0 = (r1 + 4)|0;
+_54: while(true){
+	r1 = heapU8[r0];
+	r2 = (r2 + -1)|0;
+	r3 = (r0 + 1)|0;
+	heap8[r0+-4] = r1;
+	r0 = r3;
+if(!(r2 !=0)) //_LBB701_19
+{
+break _51;
+}
+}
+}
+}
+} while(0);
+	r2 = heap32[(r7+1)];
+if(!(r2 ==0)) //_LBB701_11
+{
+if(!(r6 ==0)) //_LBB701_11
+{
+	r2 = heap32[(r7)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+1)];
+	heap32[(g0)] = r6;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r2 = 0;
+	r_g0 = r2;
+	return;
+}
+}
+}
+	r2 = 0;
+break _1;
+}
+}
+	r0 = r2 >> 2;
+	r1 = heap32[(r0+6)];
+	r1 = (r1 + -1)|0;
+	heap32[(r0+6)] = r1;
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+} while(0);
+	r_g0 = r2;
+	return;
+}
+
+function cmpfacets(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r0 = heap32[(r0)];
+	r1 = heap32[(r1)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r2 = heap32[(r0+5)];
+	r3 = heap32[(r1+5)];
+	if(r2 !=r3) //_LBB702_2
+{
+	r0 = (r3 - r2)|0;
+	r_g0 = r0;
+	return;
+}
+else{
+	r2 = heap32[(r1+1)];
+	r3 = heap32[(r0+1)];
+	r0 = _2E_str538;
+	r3 = r3 == 0 ? r0 : r3;
+	r2 = r2 == 0 ? r0 : r2;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	strcmp(i7);
+	return;
+}
+}
+
+function _ZN4__rwL16__rw_expand_nameERNS_14__rw_pod_arrayIcLj256EEEPKc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+var __label__ = 0;
+	i7 = sp + -640;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = 0;
+	r3 = r1;
+_1: while(true){
+	r4 = r2 << 2;
+	r5 = heapU8[r3];
+	if(r5 !=59) //_LBB703_3
+{
+	if(r5 !=0) //_LBB703_5
+{
+	r5 = heapU8[r3+1];
+	if(r5 ==59) //_LBB703_14
+{
+__label__ = 14;
+break _1;
+}
+else{
+	if(r5 ==0) //_LBB703_4
+{
+__label__ = 4;
+break _1;
+}
+else{
+	r5 = heapU8[r3+2];
+	if(r5 !=59) //_LBB703_9
+{
+	if(r5 ==0) //_LBB703_4
+{
+__label__ = 4;
+break _1;
+}
+else{
+	r5 = heapU8[r3+3];
+	if(r5 !=59) //_LBB703_12
+{
+	if(r5 ==0) //_LBB703_4
+{
+__label__ = 4;
+break _1;
+}
+else{
+	r2 = (r2 + 1)|0;
+	r3 = (r3 + 4)|0;
+continue _1;
+}
+}
+else{
+__label__ = 11;
+break _1;
+}
+}
+}
+else{
+__label__ = 8;
+break _1;
+}
+}
+}
+}
+else{
+__label__ = 4;
+break _1;
+}
+}
+else{
+__label__ = 2;
+break _1;
+}
+}
+switch(__label__ ){//multiple entries
+case 14:
+	r2 = (r3 + 1)|0;
+break;
+case 4:
+	r2 = 0;
+break;
+case 2:
+	r2 = (r1 + r4)|0;
+break;
+case 11:
+	r2 = r4 | 3;
+	r2 = (r1 + r2)|0;
+break;
+case 8:
+	r2 = r4 | 2;
+	r2 = (r1 + r2)|0;
+break;
+}
+_18: do {
+	if(r2 ==r1) //_LBB703_17
+{
+	r3 = (r1 + 1)|0;
+	r4 = (r1 + 3)|0;
+	r5 = 0;
+	r2 = r3;
+_20: while(true){
+	r6 = heapU8[r4+-2];
+	if(r6 ==59) //_LBB703_21
+{
+__label__ = 19;
+break _20;
+}
+else{
+	if(r6 !=0) //_LBB703_22
+{
+	r6 = heapU8[r4+-1];
+	if(r6 ==0) //_LBB703_20
+{
+__label__ = 90;
+break _18;
+}
+else{
+	r7 = r5 << 2;
+	if(r6 !=59) //_LBB703_25
+{
+	r6 = heapU8[r4];
+	if(r6 ==0) //_LBB703_20
+{
+__label__ = 90;
+break _18;
+}
+else{
+	if(r6 !=59) //_LBB703_28
+{
+	r6 = heapU8[r4+1];
+	if(r6 ==0) //_LBB703_20
+{
+__label__ = 90;
+break _18;
+}
+else{
+	if(r6 !=59) //_LBB703_31
+{
+	r5 = (r5 + 1)|0;
+	r4 = (r4 + 4)|0;
+	r2 = (r2 + 4)|0;
+}
+else{
+__label__ = 27;
+break _20;
+}
+}
+}
+else{
+__label__ = 32;
+break _18;
+}
+}
+}
+else{
+__label__ = 22;
+break _20;
+}
+}
+}
+else{
+__label__ = 90;
+break _18;
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 19:
+	r1 = r3;
+__label__ = 29;
+break _18;
+break;
+case 27:
+	r2 = r7 | 3;
+	r1 = (r2 + r1)|0;
+	r4 = (r1 + 1)|0;
+__label__ = 32;
+break _18;
+break;
+case 22:
+	r2 = r7 | 1;
+	r1 = (r2 + r1)|0;
+	r4 = (r1 + 1)|0;
+__label__ = 32;
+break;
+}
+}
+else{
+__label__ = 29;
+}
+} while(0);
+if (__label__ == 29){
+	if(r2 ==0) //_LBB703_34
+{
+	r3 = r1;
+__label__ = 90;
+}
+else{
+	r4 = r2;
+	r3 = r1;
+__label__ = 32;
+}
+}
+_39: do {
+switch(__label__ ){//multiple entries
+case 90:
+	r7 = heapU8[r3];
+	if(r7 ==0) //_LBB703_98
+{
+	r0 = sp + -624;
+	r0 = r0 >> 2;
+	heap32[(r0+20)] = 0;
+	heap32[(r0+22)] = 0;
+	heap32[(r0+21)] = 0;
+__label__ = 73;
+break _39;
+}
+else{
+	r7 = 1;
+__label__ = 93;
+break _39;
+}
+break;
+case 32:
+	r1 = sp + -264;
+	r2 = sp + -528;
+	r5 = (r1 + 8)|0;
+	r6 = (r2 + 8)|0;
+	r7 = 1;
+	r8 = 0;
+_45: while(true){
+	if(r4 ==0) //_LBB703_39
+{
+	r4 = heapU8[r3];
+_49: do {
+	if(r4 !=0) //_LBB703_41
+{
+	r9 = (r3 + 1)|0;
+	r10 = 0;
+_51: while(true){
+	r4 = (r10 + 1)|0;
+	r11 = heapU8[r9+r10];
+	r10 = r4;
+if(!(r11 !=0)) //_LBB703_42
+{
+break _49;
+}
+}
+}
+else{
+	r4 = 0;
+}
+} while(0);
+	r4 = (r3 + r4)|0;
+}
+	r9 = (r4 - r3)|0;
+	heap32[(fp+-66)] = r9;
+	if(uint(r9) >uint(255)) //_LBB703_46
+{
+	r10 = (r9 + 1)|0;
+	heap32[(g0)] = r10;
+	_Znaj(i7);
+	r10 = r_g0;
+}
+else{
+	r10 = r5;
+}
+	r11 = r1 >> 2;
+	heap32[(r11+1)] = r10;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r9;
+	memcpy(i7);
+	r9 = heap32[(r11+1)];
+	r10 = heap32[(fp+-66)];
+	r12 = 0;
+	heap8[r9+r10] = r12;
+	r9 = r2 >> 2;
+	heap32[(fp+-132)] = 0;
+	heap32[(r9+1)] = r6;
+	heap8[sp+-520] = r12;
+	r10 = _ZN4__rw9__rw_catsE;
+	r13 = (r8 * 12)|0;
+	r10 = (r10 + r13)|0;
+	r13 = heap32[(r11+1)];
+	r10 = r10 >> 2;
+	r10 = heap32[(r10)];
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r13;
+	heap32[(g0+2)] = r2;
+	_ZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEE(i7);
+	r10 = r_g0;
+	if(r10 !=0) //_LBB703_50
+{
+	r13 = heapU8[r10];
+_63: do {
+	if(r13 !=0) //_LBB703_52
+{
+	r14 = (r10 + 1)|0;
+_65: while(true){
+	r13 = (r12 + 1)|0;
+	r15 = heapU8[r14+r12];
+	r12 = r13;
+if(!(r15 !=0)) //_LBB703_53
+{
+break _63;
+}
+}
+}
+else{
+	r13 = 0;
+}
+} while(0);
+	r12 = r7 & 255;
+_69: do {
+if(!(r12 ==0)) //_LBB703_56
+{
+	if(r8 !=0) //_LBB703_57
+{
+	r7 = r0 >> 2;
+	r7 = heap32[(r7+1)];
+	r12 = r7;
+	r14 = r10;
+	r15 = r13;
+_72: while(true){
+	if(r15 !=0) //_LBB703_58
+{
+	r15 = (r15 + -1)|0;
+	r16 = (r14 + 1)|0;
+	r17 = (r12 + 1)|0;
+	r18 = heapU8[r12];
+	r19 = heapU8[r14];
+	r12 = r17;
+	r14 = r16;
+	if(r18 !=r19) //_LBB703_62
+{
+__label__ = 57;
+break _72;
+}
+else{
+__label__ = 54;
+}
+}
+else{
+__label__ = 55;
+break _72;
+}
+}
+if (__label__ == 55){
+	r7 = heapU8[r7+r13];
+if(!(r7 !=59)) //_LBB703_62
+{
+	r7 = 1;
+break _69;
+}
+}
+	r7 = 0;
+}
+}
+} while(0);
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r13;
+	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
+	r8 = (r8 + 1)|0;
+	if(r8 !=6) //_LBB703_66
+{
+	r10 = heapU8[r4];
+	if(r10 !=0) //_LBB703_68
+{
+	r3 = _2E_str785;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 1;
+	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
+	r3 = (r4 + 1)|0;
+	r4 = 2;
+}
+else{
+	r4 = 1;
+}
+}
+else{
+	r4 = 1;
+	r8 = 6;
+}
+}
+else{
+	r4 = 0;
+}
+	r9 = heap32[(r9+1)];
+if(!(r9 ==r6)) //_LBB703_73
+{
+if(!(r9 ==0)) //_LBB703_73
+{
+	heap32[(g0)] = r9;
+	_ZdaPv(i7);
+}
+}
+	if(r4 ==1) //_LBB703_79
+{
+__label__ = 74;
+break _45;
+}
+else{
+	if(r4 !=0) //_LBB703_83
+{
+	r4 = heap32[(r11+1)];
+	if(r4 ==r5) //_LBB703_85
+{
+__label__ = 79;
+}
+else{
+	if(r4 !=0) //_LBB703_86
+{
+	r10 = 0;
+	heap32[(g0)] = r4;
+	_ZdaPv(i7);
+	r9 = r3;
+__label__ = 81;
+}
+else{
+__label__ = 79;
+}
+}
+if (__label__ == 79){
+	r10 = 0;
+	r9 = r3;
+}
+_101: while(true){
+	r4 = r10 << 2;
+	r11 = r4 | 3;
+	r12 = r4 | 2;
+	r13 = heapU8[r9];
+	r4 = (r3 + r4)|0;
+	r11 = (r3 + r11)|0;
+	r12 = (r3 + r12)|0;
+	if(r13 ==59) //_LBB703_37
+{
+continue _45;
+}
+else{
+	r4 = 0;
+	if(r13 ==0) //_LBB703_37
+{
+continue _45;
+}
+else{
+	r13 = heapU8[r9+1];
+	if(r13 ==59) //_LBB703_36
+{
+break _101;
+}
+else{
+	r4 = 0;
+	if(r13 ==0) //_LBB703_37
+{
+continue _45;
+}
+else{
+	r13 = heapU8[r9+2];
+	r4 = r12;
+	if(r13 ==59) //_LBB703_37
+{
+continue _45;
+}
+else{
+	r4 = 0;
+	if(r13 ==0) //_LBB703_37
+{
+continue _45;
+}
+else{
+	r12 = heapU8[r9+3];
+	r4 = r11;
+	if(r12 ==59) //_LBB703_37
+{
+continue _45;
+}
+else{
+	r4 = 0;
+	if(r12 ==0) //_LBB703_37
+{
+continue _45;
+}
+else{
+	r10 = (r10 + 1)|0;
+	r9 = (r9 + 4)|0;
+}
+}
+}
+}
+}
+}
+}
+}
+}
+	r4 = (r9 + 1)|0;
+continue _45;
+}
+else{
+__label__ = 70;
+break _45;
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 74:
+	r1 = heap32[(r11+1)];
+	if(r1 ==r5) //_LBB703_81
+{
+__label__ = 93;
+break _39;
+}
+else{
+	if(r1 !=0) //_LBB703_82
+{
+	heap32[(g0)] = r1;
+	_ZdaPv(i7);
+__label__ = 93;
+break _39;
+}
+else{
+__label__ = 93;
+break _39;
+}
+}
+break;
+case 70:
+	r0 = heap32[(r11+1)];
+	if(r0 ==r5) //_LBB703_78
+{
+__label__ = 73;
+}
+else{
+	if(r0 ==0) //_LBB703_78
+{
+__label__ = 73;
+}
+else{
+	heap32[(g0)] = r0;
+	_ZdaPv(i7);
+__label__ = 73;
+}
+}
+break;
+}
+break;
+}
+} while(0);
+_119: do {
+if (__label__ == 93){
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+1)];
+	r4 = heapU8[r2];
+	if(r4 ==0) //_LBB703_117
+{
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r0;
+	_ZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEE(i7);
+	r0 = r_g0;
+	if(r0 ==0) //_LBB703_78
+{
+break _119;
+}
+}
+else{
+	r3 = r7 & 255;
+if(!(r3 ==0)) //_LBB703_118
+{
+	r3 = 0;
+	r4 = r2;
+_125: while(true){
+	r5 = r3 << 2;
+	r6 = heapU8[r4];
+	if(r6 !=59) //_LBB703_104
+{
+	if(r6 !=0) //_LBB703_106
+{
+	r6 = heapU8[r4+1];
+	if(r6 ==59) //_LBB703_115
+{
+__label__ = 109;
+break _125;
+}
+else{
+	if(r6 ==0) //_LBB703_105
+{
+__label__ = 99;
+break _125;
+}
+else{
+	r6 = heapU8[r4+2];
+	if(r6 !=59) //_LBB703_110
+{
+	if(r6 ==0) //_LBB703_105
+{
+__label__ = 99;
+break _125;
+}
+else{
+	r6 = heapU8[r4+3];
+	if(r6 !=59) //_LBB703_113
+{
+	if(r6 ==0) //_LBB703_105
+{
+__label__ = 99;
+break _125;
+}
+else{
+	r3 = (r3 + 1)|0;
+	r4 = (r4 + 4)|0;
+}
+}
+else{
+__label__ = 106;
+break _125;
+}
+}
+}
+else{
+__label__ = 103;
+break _125;
+}
+}
+}
+}
+else{
+__label__ = 99;
+break _125;
+}
+}
+else{
+__label__ = 97;
+break _125;
+}
+}
+switch(__label__ ){//multiple entries
+case 109:
+	r3 = (r4 + 1)|0;
+break;
+case 99:
+	r3 = 0;
+break;
+case 97:
+	r3 = (r2 + r5)|0;
+break;
+case 106:
+	r3 = r5 | 3;
+	r3 = (r2 + r3)|0;
+break;
+case 103:
+	r3 = r5 | 2;
+	r3 = (r2 + r3)|0;
+break;
+}
+	r3 = (r3 - r2)|0;
+	heap32[(r1+1)] = r2;
+	heap32[(r1)] = r3;
+	r3 = _2E_str26;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 1;
+	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
+}
+}
+	r0 = heap32[(r1+1)];
+	r_g0 = r0;
+	return;
+}
+} while(0);
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function cmplocales(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r0 = heap32[(r0)];
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r0 = r0 >> 2;
+	r1 = heap32[(r1+38)];
+	r0 = heap32[(r0+38)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	strcmp(i7);
+	return;
+}
+
+function _ZN4__rw11__rw_localeD2Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+38)];
+	r3 = (r0 + 112)|0;
+	if(r2 ==r3) //_LBB705_2
+{
+__label__ = 2;
+}
+else{
+	if(r2 !=0) //_LBB705_3
+{
+	r3 = 0;
+	heap32[(g0)] = r2;
+	_ZdaPv(i7);
+__label__ = 4;
+}
+else{
+__label__ = 2;
+}
+}
+if (__label__ == 2){
+	r3 = 0;
+}
+_6: while(true){
+	r2 = r3 << 2;
+	r2 = (r0 - r2)|0;
+	r2 = r2 >> 2;
+	r4 = 0;
+	r2 = heap32[(r2)];
+if(!(r2 ==0)) //_LBB705_10
+{
+	r5 = r2 >> 2;
+	r6 = heap32[(r5+5)];
+	if(r6 ==0) //_LBB705_7
+{
+	r2 = heap32[(r5+6)];
+	r2 = (r2 + -1)|0;
+	heap32[(r5+6)] = r2;
+if(!(r2 !=0)) //_LBB705_10
+{
+	r2 = (r4 - r3)|0;
+	r2 = r2 << 2;
+	r2 = (r0 + r2)|0;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+if(!(r2 ==0)) //_LBB705_10
+{
+	r5 = r2 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+1)];
+	heap32[(g0)] = r2;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+}
+}
+else{
+	r5 = heap32[(r5+1)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = 0;
+	_ZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_E(i7);
+}
+}
+	r3 = (r3 + -1)|0;
+	if(r3 !=-26) //_LBB705_4
+{
+continue _6;
+}
+else{
+break _6;
+}
+}
+	r0 = heap32[(r1+26)];
+	r2 = heap32[(r1+27)];
+_17: do {
+if(!(r2 ==0)) //_LBB705_13
+{
+_18: while(true){
+	r2 = r4 << 2;
+	r0 = (r0 + r2)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r3 = heap32[(r0+6)];
+	r3 = (r3 + -1)|0;
+	heap32[(r0+6)] = r3;
+if(!(r3 !=0)) //_LBB705_17
+{
+	r0 = heap32[(r1+26)];
+	r0 = (r0 + r2)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+if(!(r0 ==0)) //_LBB705_17
+{
+	r2 = r0 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+1)];
+	heap32[(g0)] = r0;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+}
+	r4 = (r4 + 1)|0;
+	r0 = heap32[(r1+26)];
+	r2 = heap32[(r1+27)];
+	if(r4 !=r2) //_LBB705_14
+{
+continue _18;
+}
+else{
+break _17;
+}
+}
+}
+} while(0);
+if(!(r0 ==0)) //_LBB705_20
+{
+	heap32[(g0)] = r0;
+	_ZdaPv(i7);
+}
+	return;
+}
+
+function _ZN4__rw11__rw_localeC2EPKc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -280;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	heap32[(r1+26)] = 0;
+	heap32[(r1+27)] = 0;
+	heap32[(r1+39)] = 1;
+	r2 = heap32[(fp+1)];
+	heap32[(r1+40)] = 0;
+	heap32[(r1+41)] = 0;
+	r3 = heapU8[r2];
+	if(r3 ==0) //_LBB706_2
+{
+	r3 = sp + -264;
+	r4 = 0;
+	r5 = r3 >> 2;
+	r6 = (r0 + 112)|0;
+	heap8[sp+-256] = r4;
+	heap32[(r5+1)] = r6;
+	heap32[(fp+-66)] = 0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	r2 = (r3 + 8)|0;
+	_ZN4__rwL16__rw_expand_nameERNS_14__rw_pod_arrayIcLj256EEEPKc(i7);
+	r3 = r_g0;
+	heap32[(r1+38)] = r3;
+	heap32[(r5+1)] = r2;
+}
+else{
+	r3 = 1;
+_5: while(true){
+	r4 = (r3 + 1)|0;
+	r5 = heapU8[r2+r3];
+	r3 = r4;
+if(!(r5 !=0)) //_LBB706_4
+{
+break _5;
+}
+}
+	if(uint(r4) >uint(39)) //_LBB706_7
+{
+	heap32[(g0)] = r4;
+	_Znaj(i7);
+	r3 = r_g0;
+}
+else{
+	r3 = (r0 + 112)|0;
+}
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r4;
+	memcpy(i7);
+	heap32[(r1+38)] = r3;
+}
+	r2 = 0;
+	heap32[(r1+40)] = 67108863;
+	heap32[(r1+41)] = 0;
+_13: while(true){
+	r4 = (r3 - r2)|0;
+	r5 = heapU8[r4];
+	if(r5 ==0) //_LBB706_43
+{
+__label__ = 41;
+break _13;
+}
+else{
+	if(r5 ==59) //_LBB706_20
+{
+__label__ = 20;
+break _13;
+}
+else{
+	r5 = heapU8[r4+1];
+	if(r5 ==0) //_LBB706_43
+{
+__label__ = 41;
+break _13;
+}
+else{
+	if(r5 !=59) //_LBB706_15
+{
+	r5 = heapU8[r4+2];
+	if(r5 ==0) //_LBB706_43
+{
+__label__ = 41;
+break _13;
+}
+else{
+	if(r5 ==59) //_LBB706_14
+{
+__label__ = 14;
+break _13;
+}
+else{
+	r4 = heapU8[r4+3];
+	if(r4 ==0) //_LBB706_43
+{
+__label__ = 41;
+break _13;
+}
+else{
+	if(r4 ==59) //_LBB706_14
+{
+__label__ = 14;
+break _13;
+}
+else{
+	r2 = (r2 + -4)|0;
+continue _13;
+}
+}
+}
+}
+}
+else{
+__label__ = 14;
+break _13;
+}
+}
+}
+}
+}
+if (__label__ == 20){
+	if(r3 ==r2) //_LBB706_43
+{
+__label__ = 41;
+}
+else{
+__label__ = 14;
+}
+}
+_25: do {
+switch(__label__ ){//multiple entries
+case 41:
+	r2 = heapU8[r3];
+if(!(r2 !=67)) //_LBB706_45
+{
+	r2 = heapU8[r3+1];
+	if(r2 ==0) //_LBB706_46
+{
+break _25;
+}
+}
+	heap32[(r1+41)] = 67108863;
+break;
+case 14:
+	r2 = 0;
+	r4 = r2;
+_31: while(true){
+	r5 = heapU8[r3];
+	if(r5 ==0) //_LBB706_46
+{
+break _25;
+}
+else{
+	if(r2 !=-6) //_LBB706_21
+{
+	r5 = r5 & 255;
+	if(r5 !=67) //_LBB706_24
+{
+__label__ = 23;
+}
+else{
+	r5 = heapU8[r3+1];
+	if(r5 !=59) //_LBB706_24
+{
+__label__ = 23;
+}
+else{
+__label__ = 24;
+}
+}
+if (__label__ == 23){
+	r5 = (r2 * -3)|0;
+	r6 = _ZN4__rw9__rw_catsE;
+	r5 = r5 << 2;
+	r5 = (r6 + r5)|0;
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+2)];
+	r4 = r5 | r4;
+	heap32[(r1+41)] = r4;
+}
+	r5 = 0;
+	r6 = r3;
+_40: while(true){
+	r7 = heapU8[r6];
+	if(r7 ==0) //_LBB706_46
+{
+break _25;
+}
+else{
+	if(r7 ==59) //_LBB706_37
+{
+__label__ = 36;
+break _40;
+}
+else{
+	r7 = heapU8[r6+1];
+	if(r7 ==0) //_LBB706_46
+{
+break _25;
+}
+else{
+	if(r7 ==59) //_LBB706_39
+{
+__label__ = 37;
+break _40;
+}
+else{
+	r7 = heapU8[r6+2];
+	if(r7 ==0) //_LBB706_46
+{
+break _25;
+}
+else{
+	r8 = r5 << 2;
+	if(r7 !=59) //_LBB706_33
+{
+	r7 = heapU8[r6+3];
+	if(r7 ==0) //_LBB706_46
+{
+break _25;
+}
+else{
+	if(r7 !=59) //_LBB706_36
+{
+	r5 = (r5 + 1)|0;
+	r6 = (r6 + 4)|0;
+}
+else{
+__label__ = 34;
+break _40;
+}
+}
+}
+else{
+__label__ = 31;
+break _40;
+}
+}
+}
+}
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 36:
+	if(r6 ==0) //_LBB706_46
+{
+break _25;
+}
+break;
+case 37:
+	r6 = (r6 + 1)|0;
+break;
+case 34:
+	r5 = r8 | 3;
+	r6 = (r3 + r5)|0;
+break;
+case 31:
+	r5 = r8 | 2;
+	r6 = (r3 + r5)|0;
+break;
+}
+	r3 = (r6 + 1)|0;
+	r2 = (r2 + -1)|0;
+continue _31;
+}
+else{
+break _25;
+}
+}
+}
+break;
+}
+} while(0);
+	r1 = 104;
+	r3 = 0;
+_57: while(true){
+	r2 = (r1 + -1)|0;
+	r1 = (r0 - r1)|0;
+	heap8[r1+104] = r3;
+	r1 = r2;
+	if(r2 !=0) //_LBB706_47
+{
+continue _57;
+}
+else{
+break _57;
+}
+}
+	return;
+}
+
+function _ZN4__rw11__rw_locale9_C_manageEPS0_PKc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+var __label__ = 0;
+	i7 = sp + -280;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	if(r0 !=0) //_LBB707_9
+{
+	r2 = heapU8[r0];
+	if(r2 ==67) //_LBB707_11
+{
+	r2 = heapU8[r0+1];
+	r3 = 0;
+	r2 = r2 != r3;
+}
+else{
+	r2 = 1;
+}
+	r3 = sp + -264;
+	r4 = (r3 + 8)|0;
+	r5 = _2E_str538;
+	r6 = r3 >> 2;
+	heap32[(fp+-66)] = 0;
+	r0 = r2 != 0 ? r0 : r5;
+	r7 = 0;
+	heap32[(r6+1)] = r4;
+	heap8[sp+-256] = r7;
+	if(r1 !=0) //_LBB707_14
+{
+__label__ = 19;
+}
+else{
+	if(r2 != 0) //_LBB707_15
+{
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	_ZN4__rwL16__rw_expand_nameERNS_14__rw_pod_arrayIcLj256EEEPKc(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB707_18
+{
+	r2 = heapU8[r0];
+	if(r2 ==67) //_LBB707_20
+{
+	r2 = heapU8[r0+1];
+	if(r2 !=0) //_LBB707_19
+{
+__label__ = 19;
+}
+else{
+	r0 = r5;
+__label__ = 19;
+}
+}
+else{
+__label__ = 19;
+}
+}
+else{
+__label__ = 15;
+}
+}
+else{
+__label__ = 19;
+}
+}
+_14: do {
+if (__label__ == 19){
+	r2 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE9n_locales;
+	r3 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7locales;
+	r2 = r2 >> 2;
+	r3 = r3 >> 2;
+	r5 = heap32[(r2)];
+	r8 = heap32[(r3)];
+	if(r1 ==0) //_LBB707_24
+{
+	r7 = r5;
+_18: while(true){
+	r9 = r7;
+	if(r9 ==0) //_LBB707_53
+{
+__label__ = 49;
+break _18;
+}
+else{
+	r1 = r9 << 1;
+	r10 = r1 & -4;
+	r11 = (r8 + r10)|0;
+	r1 = r11 >> 2;
+	r1 = heap32[(r1)];
+	r12 = r1 >> 2;
+	r7 = heap32[(r12+38)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	strcmp(i7);
+	r13 = r_g0;
+	r7 = r9 >>> 1;
+	if(r13 <0) //_LBB707_50
+{
+__label__ = 46;
+}
+else{
+	if(r13 <1) //_LBB707_51
+{
+__label__ = 47;
+break _18;
+}
+else{
+	r1 = (r10 + r8)|0;
+	r9 = (r9 + -1)|0;
+	r8 = (r1 + 4)|0;
+	r7 = (r9 - r7)|0;
+}
+}
+}
+}
+if (__label__ == 47){
+if(!(r11 ==0)) //_LBB707_53
+{
+	r0 = heap32[(r12+39)];
+	r0 = (r0 + 1)|0;
+	heap32[(r12+39)] = r0;
+__label__ = 65;
+break _14;
+}
+}
+	r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize;
+	r1 = r1 >> 2;
+	r7 = heap32[(r1)];
+if(!(r5 !=r7)) //_LBB707_59
+{
+	r5 = r5 << 3;
+	heap32[(g0)] = r5;
+	_Znaj(i7);
+	r5 = r_g0;
+	r7 = heap32[(r3)];
+	r8 = heap32[(r2)];
+	r8 = r8 << 2;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r8;
+	memcpy(i7);
+	r8 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf;
+if(!(r7 ==r8)) //_LBB707_58
+{
+if(!(r7 ==0)) //_LBB707_58
+{
+	heap32[(g0)] = r7;
+	_ZdaPv(i7);
+}
+}
+	heap32[(r3)] = r5;
+	r5 = heap32[(r1)];
+	r5 = r5 << 1;
+	heap32[(r1)] = r5;
+}
+	r1 = heapU8[r0];
+	if(r1 !=67) //_LBB707_65
+{
+__label__ = 61;
+}
+else{
+	r1 = heapU8[r0+1];
+	if(r1 !=0) //_LBB707_65
+{
+__label__ = 61;
+}
+else{
+	r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7classic;
+	r5 = r1 >> 2;
+	r1 = heap32[(r5)];
+	if(r1 !=0) //_LBB707_64
+{
+	r0 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE12classic_body;
+	r0 = r0 >> 2;
+	r5 = heap32[(r0+39)];
+	r5 = (r5 + 1)|0;
+	heap32[(r0+39)] = r5;
+__label__ = 63;
+}
+else{
+	r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE12classic_body;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	_ZN4__rw11__rw_localeC2EPKc(i7);
+	heap32[(r5)] = r1;
+__label__ = 63;
+}
+}
+}
+if (__label__ == 61){
+	heap32[(g0)] = 172;
+	_Znwj(i7);
+	r1 = r_g0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	_ZN4__rw11__rw_localeC2EPKc(i7);
+}
+	r0 = heap32[(r2)];
+	r3 = heap32[(r3)];
+	r5 = r0 << 2;
+	r5 = (r3 + r5)|0;
+	r5 = r5 >> 2;
+	r7 = (r0 + 1)|0;
+	heap32[(r5)] = r1;
+	heap32[(r2)] = r7;
+	r2 = (r0 + -1)|0;
+	if(uint(r2) <uint(2147483645)) //_LBB707_69
+{
+	r2 = cmplocales__index__;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r2;
+	quicksort(i7);
+__label__ = 65;
+}
+else{
+__label__ = 65;
+}
+}
+else{
+	r9 = r5;
+	r10 = r8;
+_48: while(true){
+	r11 = r9;
+	if(r11 ==0) //_LBB707_46
+{
+__label__ = 42;
+break _48;
+}
+else{
+	r9 = r11 << 1;
+	r12 = r9 & -4;
+	r13 = (r10 + r12)|0;
+	r9 = r13 >> 2;
+	r9 = heap32[(r9)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+38)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r9;
+	strcmp(i7);
+	r14 = r_g0;
+	r9 = r11 >>> 1;
+	if(r14 <0) //_LBB707_28
+{
+__label__ = 25;
+}
+else{
+	if(r14 <1) //_LBB707_29
+{
+__label__ = 26;
+break _48;
+}
+else{
+	r10 = (r12 + r10)|0;
+	r11 = (r11 + -1)|0;
+	r10 = (r10 + 4)|0;
+	r9 = (r11 - r9)|0;
+}
+}
+}
+}
+if (__label__ == 26){
+if(!(r13 ==0)) //_LBB707_46
+{
+	r1 = (r13 - r8)|0;
+	r0 = r1 & -4;
+	r9 = (r8 + r0)|0;
+	r9 = r9 >> 2;
+	r9 = heap32[(r9)];
+	r10 = r9 >> 2;
+	r11 = heap32[(r10+39)];
+	r11 = (r11 + -1)|0;
+	heap32[(r10+39)] = r11;
+	if(r11 !=0) //_LBB707_17
+{
+__label__ = 15;
+break _14;
+}
+else{
+	r1 = r1 >> 2;
+	r11 = (r5 + -1)|0;
+	heap32[(r2)] = r11;
+	if(uint(r11) >uint(3)) //_LBB707_36
+{
+__label__ = 33;
+}
+else{
+	r2 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf;
+	if(r8 ==r2) //_LBB707_36
+{
+__label__ = 33;
+}
+else{
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r0;
+	r0 = r1 << 2;
+	r5 = (r0 + r8)|0;
+	r1 = (r11 - r1)|0;
+	memcpy(i7);
+	r0 = (r2 + r0)|0;
+	r5 = (r5 + 4)|0;
+	r1 = r1 << 2;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r1;
+	memcpy(i7);
+if(!(r8 ==0)) //_LBB707_35
+{
+	heap32[(g0)] = r8;
+	_ZdaPv(i7);
+}
+	r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize;
+	r1 = r1 >> 2;
+	heap32[(r3)] = r2;
+	heap32[(r1)] = 8;
+__label__ = 36;
+}
+}
+_63: do {
+if (__label__ == 33){
+	r0 = (r11 - r1)|0;
+	r0 = r0 << 2;
+if(!(r0 ==0)) //_LBB707_39
+{
+	r0 = r5 << 2;
+	r1 = r1 << 2;
+	r0 = (r0 + -4)|0;
+	r2 = (r1 + r8)|0;
+	r1 = (r0 - r1)|0;
+	r0 = (r2 + 4)|0;
+_66: while(true){
+	r2 = heapU8[r0];
+	r1 = (r1 + -1)|0;
+	r3 = (r0 + 1)|0;
+	heap8[r0+-4] = r2;
+	r0 = r3;
+if(!(r1 !=0)) //_LBB707_38
+{
+break _63;
+}
+}
+}
+}
+} while(0);
+	r1 = heap32[(r10+38)];
+	r0 = heapU8[r1];
+	if(r0 ==67) //_LBB707_41
+{
+	r1 = heapU8[r1+1];
+	r7 = 0;
+	r7 = r1 == r7;
+}
+	if(r7 != 0) //_LBB707_17
+{
+__label__ = 15;
+break _14;
+}
+else{
+	if(r9 ==0) //_LBB707_17
+{
+__label__ = 15;
+break _14;
+}
+else{
+	heap32[(g0)] = r9;
+	_ZN4__rw11__rw_localeD2Ev(i7);
+	heap32[(g0)] = r9;
+	r1 = 0;
+	_ZdlPv(i7);
+__label__ = 65;
+break _14;
+}
+}
+}
+}
+}
+	r0 = r1 >> 2;
+	r2 = heap32[(r0+39)];
+	r1 = 0;
+	r2 = (r2 + -1)|0;
+	heap32[(r0+39)] = r2;
+__label__ = 65;
+}
+}
+} while(0);
+if (__label__ == 15){
+	r1 = 0;
+}
+	r0 = heap32[(r6+1)];
+if(!(r0 ==r4)) //_LBB707_73
+{
+if(!(r0 ==0)) //_LBB707_73
+{
+	heap32[(g0)] = r0;
+	_ZdaPv(i7);
+}
+}
+	r_g0 = r1;
+	return;
+}
+else{
+	r0 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE6global;
+	r0 = r0 >> 2;
+	r2 = heap32[(r0)];
+_84: do {
+	if(r2 ==0) //_LBB707_3
+{
+	r3 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE5ginit;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	if(r4 !=0) //_LBB707_5
+{
+_87: while(true){
+	r4 = heap32[(r3)];
+if(!(r4 <1000)) //_LBB707_5
+{
+break _84;
+}
+}
+}
+else{
+	r2 = (r4 + 1)|0;
+	heap32[(r3)] = r2;
+	r2 = _2E_str538;
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = r2;
+	_ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7);
+	r2 = r_g0;
+	heap32[(r0)] = r2;
+	r4 = heap32[(r3)];
+	r4 = (r4 + 1000)|0;
+	heap32[(r3)] = r4;
+}
+}
+} while(0);
+	if(r1 ==0) //_LBB707_8
+{
+	r0 = r2 >> 2;
+	r1 = heap32[(r0+39)];
+	r1 = (r1 + 1)|0;
+	heap32[(r0+39)] = r1;
+	r_g0 = r2;
+	return;
+}
+else{
+	r3 = r1 >> 2;
+	r4 = heap32[(r3+39)];
+	r4 = (r4 + 1)|0;
+	heap32[(r3+39)] = r4;
+	heap32[(r0)] = r1;
+	r_g0 = r2;
+	return;
+}
+}
+}
+
+function _ZN4__rw11__rw_locale11_C_get_bodyEPS0_S1_PKciPKNS_10__rw_facetE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -304;var g0 = i7>>2; // save stack
+	r0 = sp + -264;
+	r1 = (r0 + 8)|0;
+	r2 = r0 >> 2;
+	heap32[(fp+-66)] = 0;
+	r3 = 0;
+	heap32[(r2+1)] = r1;
+	heap8[sp+-256] = r3;
+	r4 = _2E_str538;
+	r5 = _2E_str292167;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = 3;
+	strncmp(i7);
+	r5 = r_g0;
+_1: do {
+	if(r5 ==0) //_LBB708_2
+{
+	r4 = sp + -288;
+	r5 = r4 >> 2;
+	heap32[(fp+-72)] = 0;
+	heap32[(r5+1)] = 0;
+	heap32[(r5+2)] = 0;
+	heap32[(r5+3)] = 0;
+	r6 = 4;
+	heap32[(r5+4)] = 0;
+	heap32[(r5+5)] = 0;
+_3: while(true){
+	r6 = (r6 + -4)|0;
+if(!(r6 !=0)) //_LBB708_3
+{
+break _3;
+}
+}
+	r5 = _2E_str538;
+_6: while(true){
+	r6 = heapU8[r5];
+	if(r6 ==0) //_LBB708_48
+{
+__label__ = 44;
+break _6;
+}
+else{
+	r6 = r3;
+	r7 = r3;
+_9: while(true){
+	r8 = (r5 + r6)|0;
+	r9 = heapU8[r5+r6];
+	if(r9 ==59) //_LBB708_17
+{
+__label__ = 16;
+break _9;
+}
+else{
+	if(r9 !=0) //_LBB708_8
+{
+	r9 = heapU8[r8+1];
+	if(r9 ==0) //_LBB708_7
+{
+__label__ = 6;
+break _9;
+}
+else{
+	if(r9 ==59) //_LBB708_21
+{
+__label__ = 18;
+break _9;
+}
+else{
+	r9 = heapU8[r8+2];
+	if(r9 ==0) //_LBB708_7
+{
+__label__ = 6;
+break _9;
+}
+else{
+	r10 = r7 << 2;
+	if(r9 !=59) //_LBB708_13
+{
+	r8 = heapU8[r8+3];
+	if(r8 ==0) //_LBB708_7
+{
+__label__ = 6;
+break _9;
+}
+else{
+	if(r8 !=59) //_LBB708_16
+{
+	r7 = (r7 + 1)|0;
+	r6 = (r6 + 4)|0;
+}
+else{
+__label__ = 14;
+break _9;
+}
+}
+}
+else{
+__label__ = 11;
+break _9;
+}
+}
+}
+}
+}
+else{
+__label__ = 6;
+break _9;
+}
+}
+}
+_19: do {
+switch(__label__ ){//multiple entries
+case 16:
+	if(r8 ==0) //_LBB708_7
+{
+__label__ = 6;
+break _19;
+}
+else{
+__label__ = 19;
+break _19;
+}
+break;
+case 18:
+	r8 = (r8 + 1)|0;
+__label__ = 19;
+break _19;
+break;
+case 14:
+	r6 = r10 | 3;
+	r8 = (r5 + r6)|0;
+__label__ = 19;
+break _19;
+break;
+case 11:
+	r6 = r10 | 2;
+	r8 = (r5 + r6)|0;
+__label__ = 19;
+break;
+}
+} while(0);
+_24: do {
+if (__label__ == 6){
+	r6 = r5;
+_26: while(true){
+	r8 = (r6 + 1)|0;
+	r7 = heapU8[r6+1];
+	r6 = r8;
+if(!(r7 !=0)) //_LBB708_19
+{
+break _24;
+}
+}
+}
+} while(0);
+	r6 = 0;
+	r7 = r6;
+_29: while(true){
+	r9 = (r5 + r6)|0;
+	r10 = heapU8[r5+r6];
+	if(r10 ==61) //_LBB708_35
+{
+__label__ = 32;
+break _29;
+}
+else{
+	if(r10 !=0) //_LBB708_26
+{
+	r10 = heapU8[r9+1];
+	if(r10 ==0) //_LBB708_25
+{
+__label__ = 22;
+break _6;
+}
+else{
+	if(r10 ==61) //_LBB708_37
+{
+__label__ = 33;
+break _29;
+}
+else{
+	r10 = heapU8[r9+2];
+	if(r10 ==0) //_LBB708_25
+{
+__label__ = 22;
+break _6;
+}
+else{
+	r11 = r7 << 2;
+	if(r10 !=61) //_LBB708_31
+{
+	r9 = heapU8[r9+3];
+	if(r9 ==0) //_LBB708_25
+{
+__label__ = 22;
+break _6;
+}
+else{
+	if(r9 !=61) //_LBB708_34
+{
+	r7 = (r7 + 1)|0;
+	r6 = (r6 + 4)|0;
+}
+else{
+__label__ = 30;
+break _29;
+}
+}
+}
+else{
+__label__ = 27;
+break _29;
+}
+}
+}
+}
+}
+else{
+__label__ = 22;
+break _6;
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 32:
+	if(r9 ==0) //_LBB708_25
+{
+__label__ = 22;
+break _6;
+}
+break;
+case 33:
+	r9 = (r9 + 1)|0;
+break;
+case 30:
+	r6 = r11 | 3;
+	r9 = (r5 + r6)|0;
+break;
+case 27:
+	r6 = r11 | 2;
+	r9 = (r5 + r6)|0;
+break;
+}
+	r6 = (r9 - r5)|0;
+	r7 = 0;
+_45: while(true){
+	if(r7 !=-6) //_LBB708_39
+{
+	r10 = (r7 * -3)|0;
+	r11 = _ZN4__rw9__rw_catsE;
+	r10 = r10 << 2;
+	r10 = (r11 + r10)|0;
+	r10 = r10 >> 2;
+	r10 = heap32[(r10+1)];
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r6;
+	strncmp(i7);
+	r10 = r_g0;
+	if(r10 !=0) //_LBB708_42
+{
+	r7 = (r7 + -1)|0;
+}
+else{
+__label__ = 36;
+break _45;
+}
+}
+else{
+__label__ = 40;
+break _45;
+}
+}
+if (__label__ == 36){
+	r6 = r7 << 2;
+	r6 = (r4 - r6)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+	if(r6 !=0) //_LBB708_25
+{
+__label__ = 22;
+break _6;
+}
+else{
+	r6 = 0;
+	r6 = (r6 - r7)|0;
+	r6 = r6 << 2;
+	r6 = (r4 + r6)|0;
+	r6 = r6 >> 2;
+	r7 = (r9 + 1)|0;
+	heap32[(r6)] = r7;
+}
+}
+	r6 = heapU8[r8];
+	r5 = r8;
+	if(r6 ==0) //_LBB708_46
+{
+__label__ = 42;
+}
+else{
+	r5 = (r8 + 1)|0;
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 44:
+	r3 = 0;
+	r5 = r3;
+_56: while(true){
+	if(r5 !=-6) //_LBB708_49
+{
+	r6 = (r3 - r5)|0;
+	r6 = r6 << 2;
+	r6 = (r4 + r6)|0;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+	if(r7 ==0) //_LBB708_51
+{
+	r7 = _2E_str538;
+	heap32[(r6)] = r7;
+}
+	r6 = 0;
+	r8 = r6;
+_62: while(true){
+	r9 = heapU8[r7+r6];
+	if(r9 ==0) //_LBB708_66
+{
+__label__ = 60;
+break _62;
+}
+else{
+	r10 = (r7 + r6)|0;
+	if(r9 ==59) //_LBB708_64
+{
+__label__ = 59;
+break _62;
+}
+else{
+	r9 = heapU8[r10+1];
+	if(r9 ==0) //_LBB708_66
+{
+__label__ = 60;
+break _62;
+}
+else{
+	if(r9 ==59) //_LBB708_71
+{
+__label__ = 65;
+break _62;
+}
+else{
+	r9 = heapU8[r10+2];
+	if(r9 ==0) //_LBB708_66
+{
+__label__ = 60;
+break _62;
+}
+else{
+	r11 = r8 << 2;
+	if(r9 !=59) //_LBB708_60
+{
+	r10 = heapU8[r10+3];
+	if(r10 ==0) //_LBB708_66
+{
+__label__ = 60;
+break _62;
+}
+else{
+	if(r10 !=59) //_LBB708_63
+{
+	r8 = (r8 + 1)|0;
+	r6 = (r6 + 4)|0;
+}
+else{
+__label__ = 57;
+break _62;
+}
+}
+}
+else{
+__label__ = 54;
+break _62;
+}
+}
+}
+}
+}
+}
+}
+_72: do {
+switch(__label__ ){//multiple entries
+case 59:
+	if(r10 ==0) //_LBB708_66
+{
+__label__ = 60;
+break _72;
+}
+else{
+__label__ = 66;
+break _72;
+}
+break;
+case 65:
+	r10 = (r10 + 1)|0;
+__label__ = 66;
+break _72;
+break;
+case 57:
+	r6 = r11 | 3;
+	r10 = (r7 + r6)|0;
+__label__ = 66;
+break _72;
+break;
+case 54:
+	r6 = r11 | 2;
+	r10 = (r7 + r6)|0;
+__label__ = 66;
+break;
+}
+} while(0);
+if (__label__ == 60){
+	r10 = heapU8[r7];
+_79: do {
+	if(r10 !=0) //_LBB708_68
+{
+	r6 = (r7 + 1)|0;
+	r8 = 0;
+_81: while(true){
+	r10 = (r8 + 1)|0;
+	r9 = heapU8[r6+r8];
+	r8 = r10;
+if(!(r9 !=0)) //_LBB708_69
+{
+break _79;
+}
+}
+}
+else{
+	r10 = 0;
+}
+} while(0);
+	r10 = (r7 + r10)|0;
+}
+	r6 = (r10 - r7)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r6;
+	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
+	r6 = _2E_str785;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = 1;
+	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
+	r5 = (r5 + -1)|0;
+}
+else{
+break _56;
+}
+}
+	r4 = heap32[(r2+1)];
+	if(r4 ==0) //_LBB708_78
+{
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = 0;
+	_ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7);
+	r4 = r_g0;
+__label__ = 73;
+break _1;
+}
+else{
+__label__ = 72;
+break _1;
+}
+break;
+case 22:
+	r4 = 0;
+__label__ = 73;
+break;
+}
+}
+else{
+__label__ = 72;
+}
+} while(0);
+if (__label__ == 72){
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = r4;
+	_ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7);
+	r4 = r_g0;
+}
+	r0 = heap32[(r2+1)];
+if(!(r0 ==r1)) //_LBB708_83
+{
+if(!(r0 ==0)) //_LBB708_83
+{
+	heap32[(g0)] = r0;
+	_ZdaPv(i7);
+}
+}
+	r_g0 = r4;
+	return;
+}
+
+function _ZNSt6localeD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+27)];
+_1: do {
+if(!(r3 !=0)) //_LBB709_86
+{
+	r3 = heap32[(r2+40)];
+	r3 = r3 & 67108863;
+if(!(r3 !=67108863)) //_LBB709_86
+{
+	r3 = heap32[(r2+41)];
+	r4 = r3 & 8193;
+if(!(r4 ==0)) //_LBB709_4
+{
+	if(r4 !=8193) //_LBB709_86
+{
+break _1;
+}
+}
+	r4 = r3 & 49158;
+if(!(r4 ==0)) //_LBB709_6
+{
+	if(r4 !=49158) //_LBB709_86
+{
+break _1;
+}
+}
+	r4 = r3 & 983160;
+if(!(r4 ==0)) //_LBB709_8
+{
+	if(r4 !=983160) //_LBB709_86
+{
+break _1;
+}
+}
+	r4 = r3 & 7340928;
+if(!(r4 ==0)) //_LBB709_10
+{
+	if(r4 !=7340928) //_LBB709_86
+{
+break _1;
+}
+}
+	r4 = r3 & 25168896;
+if(!(r4 ==0)) //_LBB709_12
+{
+	if(r4 !=25168896) //_LBB709_86
+{
+break _1;
+}
+}
+	r3 = r3 & 33558528;
+if(!(r3 ==0)) //_LBB709_14
+{
+	if(r3 !=33558528) //_LBB709_86
+{
+break _1;
+}
+}
+	r3 = heap32[(r2+38)];
+	r4 = _2E_str538;
+	r5 = r3 == 0 ? r4 : r3;
+	r6 = heapU8[r5];
+	if(r6 ==59) //_LBB709_16
+{
+	r5 = (r5 + 1)|0;
+}
+	r6 = 0;
+	r7 = r6;
+_25: while(true){
+	r8 = heapU8[r5+r6];
+	if(r8 ==0) //_LBB709_33
+{
+__label__ = 31;
+break _25;
+}
+else{
+	r9 = (r5 + r6)|0;
+	if(r8 ==59) //_LBB709_29
+{
+__label__ = 28;
+break _25;
+}
+else{
+	r8 = heapU8[r9+1];
+	if(r8 ==0) //_LBB709_33
+{
+__label__ = 31;
+break _25;
+}
+else{
+	if(r8 ==59) //_LBB709_31
+{
+__label__ = 29;
+break _25;
+}
+else{
+	r8 = heapU8[r9+2];
+	if(r8 ==0) //_LBB709_33
+{
+__label__ = 31;
+break _25;
+}
+else{
+	r10 = r7 << 2;
+	if(r8 !=59) //_LBB709_25
+{
+	r9 = heapU8[r9+3];
+	if(r9 ==0) //_LBB709_33
+{
+__label__ = 31;
+break _25;
+}
+else{
+	if(r9 !=59) //_LBB709_28
+{
+	r7 = (r7 + 1)|0;
+	r6 = (r6 + 4)|0;
+}
+else{
+__label__ = 26;
+break _25;
+}
+}
+}
+else{
+__label__ = 23;
+break _25;
+}
+}
+}
+}
+}
+}
+}
+_35: do {
+switch(__label__ ){//multiple entries
+case 28:
+	if(r9 ==0) //_LBB709_33
+{
+__label__ = 31;
+break _35;
+}
+else{
+__label__ = 30;
+break _35;
+}
+break;
+case 29:
+	r9 = (r9 + 1)|0;
+__label__ = 30;
+break _35;
+break;
+case 26:
+	r6 = r10 | 3;
+	r9 = (r5 + r6)|0;
+__label__ = 30;
+break _35;
+break;
+case 23:
+	r6 = r10 | 2;
+	r9 = (r5 + r6)|0;
+__label__ = 30;
+break;
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 31:
+	r6 = heapU8[r5];
+	if(r6 !=0) //_LBB709_35
+{
+	r7 = (r5 + 1)|0;
+	r8 = 0;
+_44: while(true){
+	r6 = (r8 + 1)|0;
+	r9 = heapU8[r7+r8];
+	r8 = r6;
+if(!(r9 !=0)) //_LBB709_36
+{
+break _44;
+}
+}
+	r9 = 0;
+	r7 = r9;
+	r8 = r9;
+}
+else{
+	r9 = 0;
+	r6 = r9;
+	r7 = r9;
+	r8 = r9;
+}
+break;
+case 30:
+	r6 = (r9 - r5)|0;
+	r7 = 0;
+	r8 = r7;
+break;
+}
+_49: while(true){
+	if(r7 !=26) //_LBB709_38
+{
+	r10 = r7 << 2;
+	r10 = (r1 + r10)|0;
+	r10 = r10 >> 2;
+	r10 = heap32[(r10)];
+_52: do {
+	if(r10 !=0) //_LBB709_40
+{
+	r10 = r10 >> 2;
+	r11 = heap32[(r10+7)];
+	r11 = r11 >> 2;
+	r10 = heap32[(r10+1)];
+	r12 = 0;
+	r13 = r10 != r12;
+	r11 = heap32[(r11)];
+	r13 = r13 & 1;
+	r11 = r11 << 1;
+	r11 = r13 | r11;
+	r11 = (r11 + -1)|0;
+	r13 = 53;
+	r11 = uint(r11) < uint(r13) ? r11 : r12;
+	if(r11 >36) //_LBB709_43
+{
+	r11 = (r11 + -37)|0;
+if(!(uint(r11) >uint(8))) //_LBB709_45
+{
+	r13 = 1;
+	r11 = r13 << r11;
+	r11 = r11 & 325;
+	if(r11 !=0) //_LBB709_39
+{
+break _52;
+}
+}
+}
+else{
+if(!(uint(r11) >uint(19))) //_LBB709_45
+{
+	r13 = 1;
+	r11 = r13 << r11;
+	r11 = r11 & 665600;
+	if(r11 !=0) //_LBB709_39
+{
+break _52;
+}
+}
+}
+	r11 = 1;
+	r11 = r11 << r7;
+_60: while(true){
+	if(r9 ==0) //_LBB709_75
+{
+break _60;
+}
+else{
+	r13 = _ZN4__rw9__rw_catsE;
+	r14 = (r8 * 12)|0;
+	r13 = (r13 + r14)|0;
+	r13 = r13 >> 2;
+	r13 = heap32[(r13+2)];
+	r13 = r13 & r11;
+	if(r13 ==0) //_LBB709_46
+{
+	r5 = heapU8[r9];
+	if(r5 ==0) //_LBB709_48
+{
+	if(r3 !=0) //_LBB709_50
+{
+	r8 = 0;
+	r5 = r3;
+}
+else{
+	r8 = 0;
+	r5 = r4;
+}
+}
+else{
+	r5 = (r9 + 1)|0;
+	r8 = (r8 + 1)|0;
+}
+	r6 = heapU8[r5];
+	if(r6 ==59) //_LBB709_53
+{
+	r5 = (r5 + 1)|0;
+}
+	r6 = r12;
+	r13 = r12;
+_74: while(true){
+	r14 = heapU8[r5+r6];
+	if(r14 ==0) //_LBB709_70
+{
+__label__ = 65;
+break _74;
+}
+else{
+	r9 = (r5 + r6)|0;
+	if(r14 ==59) //_LBB709_66
+{
+__label__ = 62;
+break _74;
+}
+else{
+	r14 = heapU8[r9+1];
+	if(r14 ==0) //_LBB709_70
+{
+__label__ = 65;
+break _74;
+}
+else{
+	if(r14 ==59) //_LBB709_68
+{
+__label__ = 63;
+break _74;
+}
+else{
+	r14 = heapU8[r9+2];
+	if(r14 ==0) //_LBB709_70
+{
+__label__ = 65;
+break _74;
+}
+else{
+	r15 = r13 << 2;
+	if(r14 !=59) //_LBB709_62
+{
+	r9 = heapU8[r9+3];
+	if(r9 ==0) //_LBB709_70
+{
+__label__ = 65;
+break _74;
+}
+else{
+	if(r9 !=59) //_LBB709_65
+{
+	r13 = (r13 + 1)|0;
+	r6 = (r6 + 4)|0;
+}
+else{
+__label__ = 60;
+break _74;
+}
+}
+}
+else{
+__label__ = 57;
+break _74;
+}
+}
+}
+}
+}
+}
+}
+_84: do {
+switch(__label__ ){//multiple entries
+case 62:
+	if(r9 ==0) //_LBB709_70
+{
+__label__ = 65;
+break _84;
+}
+else{
+__label__ = 64;
+break _84;
+}
+break;
+case 63:
+	r9 = (r9 + 1)|0;
+__label__ = 64;
+break _84;
+break;
+case 60:
+	r6 = r15 | 3;
+	r9 = (r5 + r6)|0;
+__label__ = 64;
+break _84;
+break;
+case 57:
+	r6 = r15 | 2;
+	r9 = (r5 + r6)|0;
+__label__ = 64;
+break;
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 65:
+	r9 = _2E_str26;
+	r6 = 0;
+	r13 = heapU8[r5];
+	if(r13 ==0) //_LBB709_73
+{
+continue _60;
+}
+else{
+	r13 = (r5 + 1)|0;
+	r14 = 0;
+_92: while(true){
+	r6 = (r14 + 1)|0;
+	r9 = _2E_str26;
+	r15 = heapU8[r13+r14];
+	r14 = r6;
+if(!(r15 !=0)) //_LBB709_72
+{
+continue _60;
+}
+}
+}
+break;
+case 64:
+	r6 = (r9 - r5)|0;
+break;
+}
+}
+else{
+break _60;
+}
+}
+}
+	r11 = _2E_str538;
+	r10 = r10 == 0 ? r11 : r10;
+	r11 = heapU8[r10];
+_96: do {
+	if(r11 !=0) //_LBB709_77
+{
+	r12 = (r10 + 1)|0;
+	r13 = 0;
+_98: while(true){
+	r11 = (r13 + 1)|0;
+	r14 = heapU8[r12+r13];
+	r13 = r11;
+if(!(r14 !=0)) //_LBB709_78
+{
+break _96;
+}
+}
+}
+else{
+	r11 = 0;
+}
+} while(0);
+	if(r11 !=r6) //_LBB709_86
+{
+break _1;
+}
+else{
+	r11 = 0;
+_103: while(true){
+	r12 = (r6 + r11)|0;
+	if(r12 !=0) //_LBB709_81
+{
+	r12 = (r5 - r11)|0;
+	r13 = (r10 - r11)|0;
+	r11 = (r11 + -1)|0;
+	r12 = heapU8[r12];
+	r13 = heapU8[r13];
+	if(r12 !=r13) //_LBB709_86
+{
+break _1;
+}
+}
+else{
+break _52;
+}
+}
+}
+}
+} while(0);
+	r7 = (r7 + 1)|0;
+}
+else{
+break _49;
+}
+}
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	_ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7);
+	return;
+}
+}
+} while(0);
+	r1 = heap32[(r2+39)];
+	r1 = (r1 + -1)|0;
+	heap32[(r2+39)] = r1;
+if(!(r1 !=0)) //_LBB709_89
+{
+	r0 = heap32[(r0)];
+if(!(r0 ==0)) //_LBB709_89
+{
+	heap32[(g0)] = r0;
+	_ZN4__rw11__rw_localeD2Ev(i7);
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+}
+}
+	return;
+}
+
+function _ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE4init_2E_b;
+	r1 = heapU8[r0];
+if(!(r1 != 0)) //_LBB710_5
+{
+	r1 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize;
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+if(!(r1 ==0)) //_LBB710_4
+{
+	r2 = 0;
+_5: while(true){
+	r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs;
+	r3 = r3 >> 2;
+	r4 = r2 << 3;
+	r3 = heap32[(r3)];
+	r3 = (r3 + r4)|0;
+	r2 = (r2 + 1)|0;
+	r3 = r3 >> 2;
+	heap32[(r3)] = -1;
+if(!(uint(r2) <uint(r1))) //_LBB710_3
+{
+break _5;
+}
+}
+}
+	r1 = 1;
+	heap8[r0] = r1;
+}
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r2 = heap32[(r0)];
+_9: do {
+	if(r2 !=-1) //_LBB710_27
+{
+	if(r1 !=0) //_LBB710_30
+{
+	r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE10n_catalogs;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+	r5 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs;
+	r4 = (r4 + -1)|0;
+	r5 = r5 >> 2;
+	heap32[(r3)] = r4;
+	r3 = heap32[(r5)];
+	r2 = r2 << 3;
+	r2 = (r3 + r2)|0;
+	r4 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat;
+	r2 = r2 >> 2;
+	heap32[(r2)] = -1;
+	r2 = r4 >> 2;
+	r0 = heap32[(r0)];
+	r4 = heap32[(r2)];
+	if(r0 ==r4) //_LBB710_32
+{
+__label__ = 33; //SET chanka
+_13: while(true){
+	if(r0 >-1) //_LBB710_33
+{
+	r6 = r0 << 3;
+	r6 = (r3 + r6)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+	if(r6 ==-1) //_LBB710_35
+{
+	r0 = (r0 + -1)|0;
+}
+else{
+__label__ = 31;
+break _13;
+}
+}
+else{
+__label__ = 34;
+break _13;
+}
+}
+switch(__label__ ){//multiple entries
+case 34:
+	r0 = r4;
+break;
+case 31:
+	heap32[(r2)] = r0;
+break;
+}
+	if(uint(r0) >uint(3)) //_LBB710_31
+{
+__label__ = 40;
+break _9;
+}
+else{
+	r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf;
+	if(r3 ==r0) //_LBB710_31
+{
+__label__ = 40;
+break _9;
+}
+else{
+	r2 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize;
+	r2 = r2 >> 2;
+	heap32[(r2)] = 8;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 64;
+	memcpy(i7);
+if(!(r3 ==0)) //_LBB710_42
+{
+	heap32[(g0)] = r3;
+	_ZdaPv(i7);
+}
+	heap32[(r5)] = r0;
+__label__ = 40;
+break _9;
+}
+}
+}
+else{
+__label__ = 40;
+break _9;
+}
+}
+else{
+	r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	if(uint(r2) >=uint(r0)) //_LBB710_7
+{
+__label__ = 7;
+break _9;
+}
+else{
+	r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	r1 = r2 << 3;
+	r0 = (r0 + r1)|0;
+	r_g0 = r0;
+	return;
+}
+}
+}
+else{
+	if(r1 !=0) //_LBB710_8
+{
+	r2 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE10n_catalogs;
+	r2 = r2 >> 2;
+	r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize;
+	r4 = heap32[(r2)];
+	r3 = r3 >> 2;
+	r5 = heap32[(r3)];
+	if(r4 ==r5) //_LBB710_12
+{
+	r4 = r4 << 4;
+	r5 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs;
+	heap32[(g0)] = r4;
+	_Znaj(i7);
+	r4 = r_g0;
+	r5 = r5 >> 2;
+	r6 = heap32[(r2)];
+	r7 = heap32[(r5)];
+	r8 = r6 << 3;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r7;
+	heap32[(g0+2)] = r8;
+	memcpy(i7);
+	r8 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf;
+if(!(r7 ==r8)) //_LBB710_14
+{
+	if(r7 !=0) //_LBB710_15
+{
+	heap32[(g0)] = r7;
+	_ZdaPv(i7);
+	r6 = heap32[(r2)];
+}
+}
+	heap32[(r5)] = r4;
+	r5 = heap32[(r3)];
+	r5 = r5 << 1;
+	heap32[(r3)] = r5;
+_36: do {
+if(!(uint(r6) >=uint(r5))) //_LBB710_20
+{
+	r3 = (r6 + 1)|0;
+_38: while(true){
+	r7 = r3 << 3;
+	r7 = (r4 + r7)|0;
+	r7 = r7 >> 2;
+	heap32[(r7+-2)] = -1;
+	if(uint(r3) >=uint(r5)) //_LBB710_20
+{
+break _36;
+}
+else{
+	r3 = (r3 + 1)|0;
+}
+}
+}
+} while(0);
+	r3 = r6 << 3;
+	r3 = (r4 + r3)|0;
+	heap32[(r0)] = r6;
+	r3 = (r3 + 4)|0;
+	r5 = (r1 + 4)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = 4;
+	memcpy(i7);
+	r3 = heap32[(r0)];
+	r3 = r3 << 3;
+	r5 = r1 >> 2;
+	r3 = (r4 + r3)|0;
+	r4 = heap32[(r5)];
+	r3 = r3 >> 2;
+	heap32[(r3)] = r4;
+	r0 = heap32[(r0)];
+	r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat;
+	r3 = r3 >> 2;
+	r4 = heap32[(r3)];
+if(!(uint(r0) <=uint(r4))) //_LBB710_22
+{
+	heap32[(r3)] = r0;
+}
+	r0 = (r6 + 1)|0;
+	heap32[(r2)] = r0;
+	r_g0 = r1;
+	return;
+}
+else{
+	r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs;
+	r3 = r3 >> 2;
+	heap32[(r0)] = 0;
+	r3 = heap32[(r3)];
+	r5 = r3 >> 2;
+	r5 = heap32[(r5)];
+_46: do {
+	if(r5 !=-1) //_LBB710_11
+{
+	r5 = 0;
+_48: while(true){
+	r6 = r5 << 3;
+	r6 = (r3 + r6)|0;
+	r5 = (r5 + 1)|0;
+	r6 = r6 >> 2;
+	heap32[(r0)] = r5;
+	r6 = heap32[(r6+2)];
+if(!(r6 !=-1)) //_LBB710_23
+{
+break _46;
+}
+}
+}
+else{
+	r5 = 0;
+}
+} while(0);
+	r6 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat;
+	r6 = r6 >> 2;
+	r7 = heap32[(r6)];
+if(!(uint(r5) <=uint(r7))) //_LBB710_26
+{
+	heap32[(r6)] = r5;
+}
+	r5 = r5 << 3;
+	r5 = (r3 + r5)|0;
+	r5 = (r5 + 4)|0;
+	r6 = (r1 + 4)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = 4;
+	memcpy(i7);
+	r0 = heap32[(r0)];
+	r0 = r0 << 3;
+	r5 = r1 >> 2;
+	r0 = (r3 + r0)|0;
+	r3 = heap32[(r5)];
+	r0 = r0 >> 2;
+	r4 = (r4 + 1)|0;
+	heap32[(r0)] = r3;
+	heap32[(r2)] = r4;
+	r_g0 = r1;
+	return;
+}
+}
+else{
+__label__ = 7;
+}
+}
+} while(0);
+if (__label__ == 7){
+	r1 = 0;
+}
+	r_g0 = r1;
+	return;
+}
+
+function _ZN4__rw14__rw_cat_closeEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	heap32[(fp+-1)] = r0;
+if(!(r0 <0)) //_LBB711_20
+{
+	r0 = sp + -4;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	_ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(i7);
+	r1 = r_g0;
+if(!(r1 ==0)) //_LBB711_20
+{
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+if(!(r2 ==-1)) //_LBB711_20
+{
+	r3 = _ZN4__rwL12__rw_catlistE_2E_1;
+	r4 = _ZN4__rwL12__rw_catlistE_2E_0;
+	r3 = r3 >> 2;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r6 = heap32[(r3)];
+	r6 = (r6 - r5)|0;
+	r6 = r6 >> 2;
+	r7 = 0;
+_5: while(true){
+	if(uint(r6) >uint(r7)) //_LBB711_9
+{
+	r8 = r7 << 2;
+	r8 = (r5 + r8)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+	if(r8 ==0) //_LBB711_8
+{
+__label__ = 7;
+break _5;
+}
+else{
+	if(r8 !=r2) //_LBB711_6
+{
+	r7 = (r7 + 1)|0;
+}
+else{
+__label__ = 9;
+break _5;
+}
+}
+}
+else{
+__label__ = 7;
+break _5;
+}
+}
+if (__label__ == 7){
+	r7 = r6;
+}
+_13: do {
+if(!(uint(r6) <=uint(r7))) //_LBB711_19
+{
+	r2 = r7 << 2;
+	r6 = (r5 + r2)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+	if(r6 !=0) //_LBB711_13
+{
+	heap32[(g0)] = r6;
+	_ZdlPv(i7);
+	r5 = heap32[(r4)];
+}
+	r2 = (r5 + r2)|0;
+	r4 = (r7 + 1)|0;
+	r2 = r2 >> 2;
+	heap32[(r2)] = 0;
+_18: while(true){
+	r2 = heap32[(r3)];
+	r2 = (r2 - r5)|0;
+	r2 = r2 >> 2;
+	if(uint(r2) <=uint(r4)) //_LBB711_19
+{
+break _13;
+}
+else{
+	r2 = r4 << 2;
+	r2 = (r5 + r2)|0;
+	r6 = r2 >> 2;
+	r2 = heap32[(r6)];
+	if(r2 !=0) //_LBB711_15
+{
+	r4 = (r4 + 1)|0;
+	heap32[(r6+-1)] = r2;
+}
+else{
+break _18;
+}
+}
+}
+	heap32[(r6)] = 0;
+}
+} while(0);
+	r2 = (r1 + 4)|0;
+	heap32[(g0)] = r2;
+	_ZNSt6localeD1Ev(i7);
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	_ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(i7);
+	return;
+}
+}
+}
+	r0 = _2E_str115180;
+	r1 = _2E_str1116181;
+	heap32[(g0)] = 7;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r1;
+	_ZN4__rw10__rw_throwEiz(i7);
+	return;
+}
+
+function _ZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -368;var g0 = i7>>2; // save stack
+	r0 = _ZZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEEE11locale_root;
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = heapU8[r0];
+	r5 = 0;
+	heap8[sp+-259] = r5;
+	r6 = heapU8[r2];
+_1: do {
+	if(r6 !=0) //_LBB712_2
+{
+	r7 = (r2 + 1)|0;
+_3: while(true){
+	r6 = (r5 + 1)|0;
+	r8 = heapU8[r7+r5];
+	r5 = r6;
+	if(r8 !=0) //_LBB712_3
+{
+continue _3;
+}
+else{
+break _1;
+}
+}
+}
+else{
+	r6 = 0;
+}
+} while(0);
+	r4 = r4 & 255;
+_7: do {
+	if(r4 !=0) //_LBB712_6
+{
+	r4 = (r6 + 1)|0;
+	r5 = (r0 + 1)|0;
+_9: while(true){
+	r4 = (r4 + 1)|0;
+	r7 = (r5 + 1)|0;
+	r8 = heapU8[r5];
+	r5 = r7;
+if(!(r8 !=0)) //_LBB712_7
+{
+break _9;
+}
+}
+	if(uint(r4) >uint(258)) //_LBB712_5
+{
+__label__ = 5;
+}
+else{
+	r4 = sp + -259;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r0;
+	strcpy(i7);
+	r0 = heapU8[sp+-259];
+_13: do {
+	if(r0 !=0) //_LBB712_11
+{
+	r0 = (r4 + 1)|0;
+	r7 = 0;
+_15: while(true){
+	r5 = (r7 + 1)|0;
+	r8 = heapU8[r0+r7];
+	r7 = r5;
+if(!(r8 !=0)) //_LBB712_12
+{
+break _13;
+}
+}
+}
+else{
+	r5 = 0;
+}
+} while(0);
+	r7 = 47;
+	r0 = (r5 + 1)|0;
+	r8 = 0;
+	heap8[r4+r5] = r7;
+	heap8[r4+r0] = r8;
+	r5 = heapU8[sp+-259];
+	if(r5 !=0) //_LBB712_15
+{
+	r5 = (r4 + 1)|0;
+_21: while(true){
+	r4 = (r8 + 1)|0;
+	r7 = heapU8[r5+r8];
+	r8 = r4;
+	if(r7 !=0) //_LBB712_16
+{
+continue _21;
+}
+else{
+__label__ = 17;
+break _7;
+}
+}
+}
+else{
+	r4 = 0;
+__label__ = 17;
+}
+}
+}
+else{
+__label__ = 5;
+}
+} while(0);
+if (__label__ == 5){
+	r0 = 0;
+	r4 = r0;
+}
+	r4 = (r4 + r6)|0;
+if(!(uint(r4) >uint(258))) //_LBB712_33
+{
+	r4 = sp + -259;
+	r0 = (r4 + r0)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	strcpy(i7);
+	r0 = _2E_str37683;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r0 = r_g0;
+	if(r0 ==0) //_LBB712_28
+{
+	r1 = heapU8[r2];
+_31: do {
+	if(r1 !=0) //_LBB712_30
+{
+	r0 = (r2 + 1)|0;
+	r4 = 0;
+_33: while(true){
+	r1 = (r4 + 1)|0;
+	r5 = heapU8[r0+r4];
+	r4 = r1;
+if(!(r5 !=0)) //_LBB712_31
+{
+break _31;
+}
+}
+}
+else{
+	r1 = 0;
+}
+} while(0);
+	r0 = r3 >> 2;
+	heap32[(r0)] = 0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r1;
+	_ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7);
+	r1 = heap32[(r0+1)];
+	r_g0 = r1;
+	return;
+}
+else{
+	r2 = _2E_str1648;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r2;
+	fopen(i7);
+	r2 = r_g0;
+if(!(r2 ==0)) //_LBB712_33
+{
+	if(uint(r2) <uint(10)) //_LBB712_22
+{
+	r3 = _ZL13s_file_stdout;
+	r0 = r3 >> 2;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+7)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 2;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+}
+else{
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+7)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r3 = r2;
+}
+	r0 = r3 >> 2;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+5)];
+	heap32[(g0)] = r3;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	if(uint(r2) >uint(9)) //_LBB712_25
+{
+	r3 = r2;
+}
+else{
+	r3 = _ZL13s_file_stdout;
+}
+	r0 = r3 >> 2;
+	r0 = heap32[(r0)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+4)];
+	heap32[(g0)] = r3;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+if(!(uint(r2) <uint(10))) //_LBB712_33
+{
+	heap32[(g0)] = r3;
+	_ZdlPv(i7);
+}
+}
+}
+}
+	r0 = sp + -352;
+	r0 = r0 >> 2;
+	heap32[(r0+20)] = 0;
+	heap32[(r0+22)] = r1;
+	heap32[(r0+21)] = 0;
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNKSt8messagesIcE8do_closeEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	_ZN4__rw14__rw_cat_closeEi(i7);
+	return;
+}
+
+function _ZNKSt8messagesIcE6do_getEiiiRKSs(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	heap32[(fp+-1)] = r0;
+if(!(r0 <0)) //_LBB714_8
+{
+	r0 = sp + -4;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	_ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB714_8
+{
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+if(!(r0 ==-1)) //_LBB714_8
+{
+	r1 = _ZN4__rwL12__rw_catlistE_2E_1;
+	r2 = _ZN4__rwL12__rw_catlistE_2E_0;
+	r1 = r1 >> 2;
+	r2 = r2 >> 2;
+	r2 = heap32[(r2)];
+	r1 = heap32[(r1)];
+	r1 = (r1 - r2)|0;
+	r1 = r1 >> 2;
+	r3 = 0;
+_5: while(true){
+	if(uint(r1) <=uint(r3)) //_LBB714_8
+{
+break _5;
+}
+else{
+	r4 = r3 << 2;
+	r4 = (r2 + r4)|0;
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	if(r4 ==0) //_LBB714_8
+{
+break _5;
+}
+else{
+	if(r4 !=r0) //_LBB714_4
+{
+	r3 = (r3 + 1)|0;
+continue _5;
+}
+else{
+break _5;
+}
+}
+}
+}
+}
+}
+}
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+5)];
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+-3)];
+	if(r4 ==-1) //_LBB714_11
+{
+	r2 = heap32[(r3+-1)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r2;
+	_ZNSs10_C_get_repEjj(i7);
+	r0 = r0 >> 2;
+	r3 = (r_g0 + 12)|0;
+	heap32[(r0)] = r3;
+	r0 = heap32[(r1)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	memcpy(i7);
+}
+else{
+	r1 = (r2 + -12)|0;
+	r0 = r0 >> 2;
+	r3 = _ZNSs11_C_null_refE;
+	heap32[(r0)] = r2;
+if(!(r1 ==r3)) //_LBB714_12
+{
+	r0 = r1 >> 2;
+	r1 = (r4 + 1)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+}
+	return;
+}
+
+function _ZNKSt8messagesIcE7do_openERKSsRKSt6locale(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	heap32[(g0)] = 1;
+	_Znwj(i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB715_2
+{
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+}
+	r0 = -1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNSt8messagesIcED0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN4__rw10__rw_facetE;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(r2+5)] = -1;
+	r1 = heap32[(r2+1)];
+	r3 = heap32[(r2+2)];
+if(!(r1 ==r3)) //_LBB716_3
+{
+if(!(r1 ==0)) //_LBB716_3
+{
+	heap32[(g0)] = r1;
+	_ZdaPv(i7);
+}
+}
+	r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed;
+	heap32[(r2+1)] = r1;
+	r1 = heap32[(r2+4)];
+if(!(r1 !=-1)) //_LBB716_5
+{
+	r1 = heap32[(r2+3)];
+	heap32[(g0)] = r1;
+	_ZdlPv(i7);
+}
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZNSt8messagesIcED1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVN4__rw10__rw_facetE;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	heap32[(r0+5)] = -1;
+	r1 = heap32[(r0+1)];
+	r2 = heap32[(r0+2)];
+if(!(r1 ==r2)) //_LBB717_3
+{
+if(!(r1 ==0)) //_LBB717_3
+{
+	heap32[(g0)] = r1;
+	_ZdaPv(i7);
+}
+}
+	r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed;
+	heap32[(r0+1)] = r1;
+	r1 = heap32[(r0+4)];
+if(!(r1 !=-1)) //_LBB717_5
+{
+	r0 = heap32[(r0+3)];
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+}
+	return;
+}
+
+function _ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(r1)];
+	r4 = (r3 + r2)|0;
+	r5 = heap32[(fp+1)];
+	if(uint(r4) >uint(255)) //_LBB718_2
+{
+	r3 = (r4 + 1)|0;
+	heap32[(g0)] = r3;
+	_Znaj(i7);
+	r7 = r_g0;
+	r3 = heap32[(r1)];
+	r6 = heap32[(r1+1)];
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r3;
+	memcpy(i7);
+	r3 = heap32[(r1+1)];
+	r6 = (r0 + 8)|0;
+if(!(r3 ==r6)) //_LBB718_5
+{
+if(!(r3 ==0)) //_LBB718_5
+{
+	heap32[(g0)] = r3;
+	_ZdaPv(i7);
+}
+}
+	r6 = (r0 + 4)|0;
+	heap32[(r1+1)] = r7;
+	r3 = heap32[(r1)];
+}
+else{
+	r6 = (r0 + 4)|0;
+	r7 = heap32[(r1+1)];
+}
+	r3 = (r7 + r3)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r2;
+	memcpy(i7);
+	r2 = r6 >> 2;
+	heap32[(r1)] = r4;
+	r1 = heap32[(r2)];
+	r2 = 0;
+	heap8[r1+r4] = r2;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNSs10_C_get_repEjj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+_1: do {
+	if(uint(r0) <uint(-13)) //_LBB719_4
+{
+	if(uint(r0) <uint(r1)) //_LBB719_6
+{
+	r2 = _2E_str4362;
+	r3 = _2E_str3361;
+	heap32[(g0)] = 8;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r1;
+	heap32[(g0+4)] = r0;
+	_ZN4__rw10__rw_throwEiz(i7);
+__label__ = 6;
+break _1;
+}
+else{
+__label__ = 6;
+break _1;
+}
+}
+else{
+	if(uint(r1) >uint(-14)) //_LBB719_3
+{
+	r0 = _2E_str2360;
+	r2 = _2E_str3361;
+	heap32[(g0)] = 8;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r1;
+	heap32[(g0+4)] = -14;
+	_ZN4__rw10__rw_throwEiz(i7);
+	r0 = r1;
+__label__ = 8;
+}
+else{
+	r0 = r1;
+__label__ = 6;
+}
+}
+} while(0);
+if (__label__ == 6){
+	if(r0 ==0) //_LBB719_9
+{
+	r0 = _ZNSs11_C_null_refE;
+	r_g0 = r0;
+	return;
+}
+}
+	r2 = (r0 + 14)|0;
+	heap32[(g0)] = r2;
+	_Znwj(i7);
+	r2 = r_g0;
+if(!(r2 !=0)) //_LBB719_12
+{
+	heap32[(g0)] = 3;
+	_ZN4__rw10__rw_throwEiz(i7);
+}
+	r3 = r2 >> 2;
+	heap32[(r3)] = 0;
+	heap32[(r3+1)] = r0;
+	r0 = (r1 + r2)|0;
+	r4 = 0;
+	heap32[(r3+2)] = r1;
+	heap8[r0+12] = r4;
+	r_g0 = r2;
+	return;
+}
+
+function _ZNKSt9type_info15__is_function_pEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNSt9type_infoD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVSt9type_info;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZNSt9type_infoD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVSt9type_info;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function block_merge_next(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+1)];
+	r2 = (r2 + -4)|0;
+	r2 = r2 & -4;
+	r3 = (r0 + 8)|0;
+	r4 = (r2 + 4)|0;
+	r4 = (r3 + r4)|0;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+	r6 = r5 & 1;
+if(!(r6 ==0)) //_LBB723_9
+{
+	r6 = heap32[(fp)];
+	r7 = (r3 + r2)|0;
+	r8 = r5 & -4;
+	if(uint(r8) >uint(255)) //_LBB723_3
+{
+	r5 = r8 >>> 1;
+	r5 = r8 | r5;
+	r9 = r5 >>> 2;
+	r5 = r5 | r9;
+	r9 = r5 >>> 4;
+	r5 = r5 | r9;
+	r9 = r5 >>> 8;
+	r5 = r5 | r9;
+	r9 = r5 >>> 16;
+	r5 = r5 | r9;
+	r9 = r5 ^ -1;
+	r10 = 1431655765;
+	r9 = r9 >>> 1;
+	r5 = r10 & (~r5);
+	r9 = r9 & 1431655765;
+	r5 = (r5 + r9)|0;
+	r9 = r5 >>> 2;
+	r5 = r5 & 858993459;
+	r9 = r9 & 858993459;
+	r5 = (r5 + r9)|0;
+	r9 = r5 >>> 4;
+	r5 = r5 & 252645135;
+	r9 = r9 & 252645135;
+	r5 = (r5 + r9)|0;
+	r9 = r5 >>> 8;
+	r5 = r5 & 16711935;
+	r9 = r9 & 16711935;
+	r5 = (r5 + r9)|0;
+	r9 = r5 & 65535;
+	r5 = r5 >>> 16;
+	r10 = 26;
+	r5 = (r9 + r5)|0;
+	r9 = (r10 - r5)|0;
+	r8 = r8 >>> r9;
+	r9 = 24;
+	r8 = r8 ^ 32;
+	r5 = (r9 - r5)|0;
+}
+else{
+	r8 = r5 >>> 3;
+	r5 = 0;
+}
+	r2 = (r2 + r3)|0;
+	r2 = r2 >> 2;
+	r9 = r5 << 7;
+	r10 = heap32[(r2+2)];
+	r2 = heap32[(r2+3)];
+	r9 = (r6 + r9)|0;
+	r11 = r8 << 2;
+	r9 = (r9 + r11)|0;
+	r11 = r10 >> 2;
+	r12 = r2 >> 2;
+	heap32[(r11+3)] = r2;
+	r2 = r9 >> 2;
+	heap32[(r12+2)] = r10;
+	r2 = heap32[(r2+24)];
+if(!(r2 !=r7)) //_LBB723_8
+{
+	r2 = (r9 + 96)|0;
+	r2 = r2 >> 2;
+	r7 = block_null;
+	heap32[(r2)] = r10;
+if(!(r10 !=r7)) //_LBB723_8
+{
+	r2 = r5 << 2;
+	r2 = (r6 + r2)|0;
+	r2 = r2 >> 2;
+	r7 = 1;
+	r8 = r7 << r8;
+	r9 = heap32[(r2+1)];
+	r8 = r9 & (~r8);
+	heap32[(r2+1)] = r8;
+if(!(r8 !=0)) //_LBB723_8
+{
+	r2 = r6 >> 2;
+	r5 = r7 << r5;
+	r6 = heap32[(r2)];
+	r5 = r6 & (~r5);
+	heap32[(r2)] = r5;
+}
+}
+}
+	r2 = heap32[(r4)];
+	r4 = heap32[(r1+1)];
+	r2 = r2 & -4;
+	r2 = (r2 + r4)|0;
+	r4 = r2 & -4;
+	r3 = (r3 + r4)|0;
+	r2 = (r2 + 4)|0;
+	r3 = r3 >> 2;
+	heap32[(r1+1)] = r2;
+	heap32[(r3)] = r0;
+}
+	r_g0 = r0;
+	return;
+}
+
+function tlsf_free(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+if(!(r0 ==0)) //_LBB724_15
+{
+	r1 = heap32[(fp)];
+	r2 = r0 >> 2;
+	r3 = heap32[(r2+-1)];
+	r4 = s_current_memory;
+	r5 = (r3 + -4)|0;
+	r4 = r4 >> 2;
+	r5 = r5 & -4;
+	r6 = heap32[(r4)];
+	r3 = r3 & -4;
+	r5 = (r0 + r5)|0;
+	r3 = (r6 - r3)|0;
+	r0 = (r0 + -8)|0;
+	r5 = r5 >> 2;
+	heap32[(r4)] = r3;
+	heap32[(r5)] = r0;
+	r3 = heap32[(r5+1)];
+	r3 = r3 | 2;
+	heap32[(r5+1)] = r3;
+	r3 = heap32[(r2+-1)];
+	r4 = r3 | 1;
+	heap32[(r2+-1)] = r4;
+	r3 = r3 & 2;
+	if(r3 !=0) //_LBB724_3
+{
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	r3 = r0 >> 2;
+	r4 = heap32[(r3+1)];
+	r5 = r4 & -4;
+	if(uint(r5) >uint(255)) //_LBB724_5
+{
+	r4 = r5 >>> 1;
+	r4 = r5 | r4;
+	r6 = r4 >>> 2;
+	r4 = r4 | r6;
+	r6 = r4 >>> 4;
+	r4 = r4 | r6;
+	r6 = r4 >>> 8;
+	r4 = r4 | r6;
+	r6 = r4 >>> 16;
+	r4 = r4 | r6;
+	r6 = r4 ^ -1;
+	r7 = 1431655765;
+	r6 = r6 >>> 1;
+	r4 = r7 & (~r4);
+	r6 = r6 & 1431655765;
+	r4 = (r4 + r6)|0;
+	r6 = r4 >>> 2;
+	r4 = r4 & 858993459;
+	r6 = r6 & 858993459;
+	r4 = (r4 + r6)|0;
+	r6 = r4 >>> 4;
+	r4 = r4 & 252645135;
+	r6 = r6 & 252645135;
+	r4 = (r4 + r6)|0;
+	r6 = r4 >>> 8;
+	r4 = r4 & 16711935;
+	r6 = r6 & 16711935;
+	r4 = (r4 + r6)|0;
+	r6 = r4 & 65535;
+	r4 = r4 >>> 16;
+	r7 = 26;
+	r4 = (r6 + r4)|0;
+	r6 = (r7 - r4)|0;
+	r5 = r5 >>> r6;
+	r6 = 24;
+	r5 = r5 ^ 32;
+	r4 = (r6 - r4)|0;
+}
+else{
+	r5 = r4 >>> 3;
+	r4 = 0;
+}
+	r6 = r4 << 7;
+	r7 = heap32[(r3+2)];
+	r8 = heap32[(r3+3)];
+	r6 = (r1 + r6)|0;
+	r9 = r5 << 2;
+	r6 = (r6 + r9)|0;
+	r9 = r7 >> 2;
+	r10 = r8 >> 2;
+	heap32[(r9+3)] = r8;
+	r8 = r6 >> 2;
+	heap32[(r10+2)] = r7;
+	r8 = heap32[(r8+24)];
+if(!(r8 !=r0)) //_LBB724_10
+{
+	r6 = (r6 + 96)|0;
+	r6 = r6 >> 2;
+	r8 = block_null;
+	heap32[(r6)] = r7;
+if(!(r7 !=r8)) //_LBB724_10
+{
+	r6 = r4 << 2;
+	r6 = (r1 + r6)|0;
+	r6 = r6 >> 2;
+	r7 = 1;
+	r5 = r7 << r5;
+	r8 = heap32[(r6+1)];
+	r5 = r8 & (~r5);
+	heap32[(r6+1)] = r5;
+if(!(r5 !=0)) //_LBB724_10
+{
+	r5 = r1 >> 2;
+	r4 = r7 << r4;
+	r6 = heap32[(r5)];
+	r4 = r6 & (~r4);
+	heap32[(r5)] = r4;
+}
+}
+}
+	r4 = (r0 + 8)|0;
+	r2 = heap32[(r2+-1)];
+	r5 = heap32[(r3+1)];
+	r2 = r2 & -4;
+	r2 = (r2 + r5)|0;
+	r5 = r2 & -4;
+	r4 = (r4 + r5)|0;
+	r2 = (r2 + 4)|0;
+	r4 = r4 >> 2;
+	heap32[(r3+1)] = r2;
+	heap32[(r4)] = r0;
+}
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	block_merge_next(i7);
+	r0 = r_g0;
+	r2 = r0 >> 2;
+	r2 = heap32[(r2+1)];
+	r3 = r2 & -4;
+	if(uint(r3) >uint(255)) //_LBB724_13
+{
+	r2 = r3 >>> 1;
+	r2 = r3 | r2;
+	r4 = r2 >>> 2;
+	r2 = r2 | r4;
+	r4 = r2 >>> 4;
+	r2 = r2 | r4;
+	r4 = r2 >>> 8;
+	r2 = r2 | r4;
+	r4 = r2 >>> 16;
+	r2 = r2 | r4;
+	r4 = r2 ^ -1;
+	r5 = 1431655765;
+	r4 = r4 >>> 1;
+	r2 = r5 & (~r2);
+	r4 = r4 & 1431655765;
+	r2 = (r2 + r4)|0;
+	r4 = r2 >>> 2;
+	r2 = r2 & 858993459;
+	r4 = r4 & 858993459;
+	r2 = (r2 + r4)|0;
+	r4 = r2 >>> 4;
+	r2 = r2 & 252645135;
+	r4 = r4 & 252645135;
+	r2 = (r2 + r4)|0;
+	r4 = r2 >>> 8;
+	r2 = r2 & 16711935;
+	r4 = r4 & 16711935;
+	r2 = (r2 + r4)|0;
+	r4 = r2 & 65535;
+	r2 = r2 >>> 16;
+	r5 = 26;
+	r2 = (r4 + r2)|0;
+	r4 = (r5 - r2)|0;
+	r3 = r3 >>> r4;
+	r4 = 24;
+	r3 = r3 ^ 32;
+	r2 = (r4 - r2)|0;
+}
+else{
+	r3 = r2 >>> 3;
+	r2 = 0;
+}
+	r4 = r2 << 7;
+	r4 = (r1 + r4)|0;
+	r5 = r3 << 2;
+	r4 = (r4 + r5)|0;
+	r4 = r4 >> 2;
+	r5 = heap32[(r4+24)];
+	r6 = r0 >> 2;
+	r7 = block_null;
+	heap32[(r6+2)] = r5;
+	r5 = r5 >> 2;
+	heap32[(r6+3)] = r7;
+	heap32[(r5+3)] = r0;
+	r5 = 1;
+	r6 = r1 >> 2;
+	heap32[(r4+24)] = r0;
+	r0 = r2 << 2;
+	r2 = r5 << r2;
+	r4 = heap32[(r6)];
+	r0 = (r1 + r0)|0;
+	r1 = r4 | r2;
+	r0 = r0 >> 2;
+	heap32[(r6)] = r1;
+	r1 = r5 << r3;
+	r2 = heap32[(r0+1)];
+	r1 = r2 | r1;
+	heap32[(r0+1)] = r1;
+}
+	return;
+}
+
+function block_prepare_used(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	if(r0 ==0) //_LBB725_8
+{
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+else{
+	r1 = heap32[(fp+2)];
+	r2 = r0 >> 2;
+	r3 = heap32[(r2+1)];
+	r4 = r3 & -4;
+	r5 = (r1 + 16)|0;
+	if(uint(r4) >=uint(r5)) //_LBB725_3
+{
+	r3 = heap32[(fp)];
+	r5 = (r0 + 8)|0;
+	r6 = (r5 + r1)|0;
+	r7 = r6 >> 2;
+	r8 = -4;
+	r9 = heap32[(r7)];
+	r8 = (r8 - r1)|0;
+	r9 = r9 & 3;
+	r4 = (r8 + r4)|0;
+	r4 = r9 | r4;
+	heap32[(r7)] = r4;
+	r4 = heap32[(r2+1)];
+	r4 = r4 & 3;
+	r4 = r4 | r1;
+	heap32[(r2+1)] = r4;
+	r4 = heap32[(r7)];
+	r4 = (r4 + -4)|0;
+	r8 = (r1 + 4)|0;
+	r4 = r4 & -4;
+	r1 = (r1 + 8)|0;
+	r9 = (r4 + r8)|0;
+	r4 = (r4 + r1)|0;
+	r9 = (r5 + r9)|0;
+	r4 = (r5 + r4)|0;
+	r6 = (r6 + -4)|0;
+	r9 = r9 >> 2;
+	r4 = r4 >> 2;
+	heap32[(r9)] = r6;
+	r9 = heap32[(r4)];
+	r9 = r9 | 2;
+	heap32[(r4)] = r9;
+	r4 = heap32[(r7)];
+	r4 = r4 | 1;
+	heap32[(r7)] = r4;
+	r4 = heap32[(r2+1)];
+	r4 = (r4 + -4)|0;
+	r4 = r4 & -4;
+	r4 = (r5 + r4)|0;
+	r4 = r4 >> 2;
+	heap32[(r4)] = r0;
+	r4 = heap32[(r7)];
+	r9 = r4 & -4;
+	r10 = r4 | 2;
+	heap32[(r7)] = r10;
+	if(uint(r9) >uint(255)) //_LBB725_5
+{
+	r4 = r9 >>> 1;
+	r4 = r9 | r4;
+	r7 = r4 >>> 2;
+	r4 = r4 | r7;
+	r7 = r4 >>> 4;
+	r4 = r4 | r7;
+	r7 = r4 >>> 8;
+	r4 = r4 | r7;
+	r7 = r4 >>> 16;
+	r4 = r4 | r7;
+	r7 = r4 ^ -1;
+	r10 = 1431655765;
+	r7 = r7 >>> 1;
+	r4 = r10 & (~r4);
+	r7 = r7 & 1431655765;
+	r4 = (r4 + r7)|0;
+	r7 = r4 >>> 2;
+	r4 = r4 & 858993459;
+	r7 = r7 & 858993459;
+	r4 = (r4 + r7)|0;
+	r7 = r4 >>> 4;
+	r4 = r4 & 252645135;
+	r7 = r7 & 252645135;
+	r4 = (r4 + r7)|0;
+	r7 = r4 >>> 8;
+	r4 = r4 & 16711935;
+	r7 = r7 & 16711935;
+	r4 = (r4 + r7)|0;
+	r7 = r4 & 65535;
+	r4 = r4 >>> 16;
+	r10 = 26;
+	r4 = (r7 + r4)|0;
+	r7 = (r10 - r4)|0;
+	r9 = r9 >>> r7;
+	r7 = 24;
+	r9 = r9 ^ 32;
+	r4 = (r7 - r4)|0;
+}
+else{
+	r9 = r4 >>> 3;
+	r4 = 0;
+}
+	r7 = r4 << 7;
+	r7 = (r3 + r7)|0;
+	r10 = r9 << 2;
+	r7 = (r7 + r10)|0;
+	r7 = r7 >> 2;
+	r8 = (r5 + r8)|0;
+	r1 = (r5 + r1)|0;
+	r5 = heap32[(r7+24)];
+	r8 = r8 >> 2;
+	r1 = r1 >> 2;
+	r10 = block_null;
+	heap32[(r8)] = r5;
+	r5 = r5 >> 2;
+	heap32[(r1)] = r10;
+	heap32[(r5+3)] = r6;
+	r1 = 1;
+	r5 = r3 >> 2;
+	heap32[(r7+24)] = r6;
+	r6 = r4 << 2;
+	r4 = r1 << r4;
+	r7 = heap32[(r5)];
+	r3 = (r3 + r6)|0;
+	r4 = r7 | r4;
+	r3 = r3 >> 2;
+	heap32[(r5)] = r4;
+	r1 = r1 << r9;
+	r4 = heap32[(r3+1)];
+	r1 = r4 | r1;
+	heap32[(r3+1)] = r1;
+	r3 = heap32[(r2+1)];
+}
+	r1 = r3 & -4;
+	r0 = (r0 + 8)|0;
+	r1 = (r0 + r1)|0;
+	r1 = r1 >> 2;
+	r3 = heap32[(r1)];
+	r3 = r3 & -3;
+	heap32[(r1)] = r3;
+	r1 = heap32[(r2+1)];
+	r1 = r1 & -2;
+	heap32[(r2+1)] = r1;
+	r_g0 = r0;
+	return;
+}
+}
+
+function block_locate_free(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+_1: do {
+if(!(r0 ==0)) //_LBB726_16
+{
+	r1 = heap32[(fp)];
+	if(uint(r0) >uint(31)) //_LBB726_3
+{
+	r2 = r0 >>> 1;
+	r2 = r0 | r2;
+	r3 = r2 >>> 2;
+	r2 = r2 | r3;
+	r3 = r2 >>> 4;
+	r2 = r2 | r3;
+	r3 = r2 >>> 8;
+	r2 = r2 | r3;
+	r3 = r2 >>> 16;
+	r2 = r2 | r3;
+	r3 = r2 ^ -1;
+	r4 = 1431655765;
+	r3 = r3 >>> 1;
+	r2 = r4 & (~r2);
+	r3 = r3 & 1431655765;
+	r2 = (r2 + r3)|0;
+	r3 = r2 >>> 2;
+	r2 = r2 & 858993459;
+	r3 = r3 & 858993459;
+	r2 = (r2 + r3)|0;
+	r3 = r2 >>> 4;
+	r2 = r2 & 252645135;
+	r3 = r3 & 252645135;
+	r2 = (r2 + r3)|0;
+	r3 = r2 >>> 8;
+	r2 = r2 & 16711935;
+	r3 = r3 & 16711935;
+	r2 = (r2 + r3)|0;
+	r3 = r2 & 65535;
+	r2 = r2 >>> 16;
+	r5 = 26;
+	r2 = (r3 + r2)|0;
+	r3 = 1;
+	r2 = (r5 - r2)|0;
+	r2 = r3 << r2;
+	r0 = (r0 + r2)|0;
+	r0 = (r0 + -1)|0;
+	if(uint(r0) >uint(255)) //_LBB726_5
+{
+	r2 = r0 >>> 1;
+	r2 = r0 | r2;
+	r3 = r2 >>> 2;
+	r2 = r2 | r3;
+	r3 = r2 >>> 4;
+	r2 = r2 | r3;
+	r3 = r2 >>> 8;
+	r2 = r2 | r3;
+	r3 = r2 >>> 16;
+	r2 = r2 | r3;
+	r3 = r2 ^ -1;
+	r3 = r3 >>> 1;
+	r4 = r4 & (~r2);
+	r2 = r3 & 1431655765;
+	r4 = (r4 + r2)|0;
+	r2 = r4 >>> 2;
+	r4 = r4 & 858993459;
+	r2 = r2 & 858993459;
+	r4 = (r4 + r2)|0;
+	r2 = r4 >>> 4;
+	r4 = r4 & 252645135;
+	r2 = r2 & 252645135;
+	r4 = (r4 + r2)|0;
+	r2 = r4 >>> 8;
+	r4 = r4 & 16711935;
+	r2 = r2 & 16711935;
+	r4 = (r4 + r2)|0;
+	r2 = r4 & 65535;
+	r4 = r4 >>> 16;
+	r4 = (r2 + r4)|0;
+	r2 = (r5 - r4)|0;
+	r0 = r0 >>> r2;
+	r2 = 24;
+	r0 = r0 ^ 32;
+	r4 = (r2 - r4)|0;
+__label__ = 5;
+}
+else{
+__label__ = 3;
+}
+}
+else{
+__label__ = 3;
+}
+if (__label__ == 3){
+	r0 = r0 >>> 3;
+	r4 = 0;
+}
+	r2 = r4 << 2;
+	r2 = (r1 + r2)|0;
+	r2 = r2 >> 2;
+	r3 = -1;
+	r2 = heap32[(r2+1)];
+	r0 = r3 << r0;
+	r0 = r2 & r0;
+	if(r0 ==0) //_LBB726_8
+{
+	r0 = r1 >> 2;
+	r4 = (r4 + 1)|0;
+	r0 = heap32[(r0)];
+	r4 = r3 << r4;
+	r0 = r0 & r4;
+	if(r0 ==0) //_LBB726_16
+{
+break _1;
+}
+else{
+	r4 = (r0 + -1)|0;
+	r0 = r4 & (~r0);
+	r4 = r0 >>> 1;
+	r0 = r0 & 1431655765;
+	r4 = r4 & 1431655765;
+	r0 = (r0 + r4)|0;
+	r4 = r0 >>> 2;
+	r0 = r0 & 858993459;
+	r4 = r4 & 858993459;
+	r0 = (r0 + r4)|0;
+	r4 = r0 >>> 4;
+	r0 = r0 & 252645135;
+	r4 = r4 & 252645135;
+	r0 = (r0 + r4)|0;
+	r4 = r0 >>> 8;
+	r0 = r0 & 16711935;
+	r4 = r4 & 16711935;
+	r0 = (r0 + r4)|0;
+	r4 = r0 & 65535;
+	r0 = r0 >>> 16;
+	r4 = (r4 + r0)|0;
+	r0 = r4 << 2;
+	r0 = (r1 + r0)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+}
+}
+	r2 = (r0 + -1)|0;
+	r2 = r2 & (~r0);
+	r5 = r2 >>> 1;
+	r2 = r2 & 1431655765;
+	r5 = r5 & 1431655765;
+	r2 = (r2 + r5)|0;
+	r5 = r2 >>> 2;
+	r2 = r2 & 858993459;
+	r5 = r5 & 858993459;
+	r2 = (r2 + r5)|0;
+	r5 = r2 >>> 4;
+	r2 = r2 & 252645135;
+	r5 = r5 & 252645135;
+	r2 = (r2 + r5)|0;
+	r5 = r2 >>> 8;
+	r2 = r2 & 16711935;
+	r5 = r5 & 16711935;
+	r2 = (r2 + r5)|0;
+	r5 = r2 & 65535;
+	r2 = r2 >>> 16;
+	r2 = (r5 + r2)|0;
+	r0 = r0 == 0 ? r3 : r2;
+	r2 = r4 << 7;
+	r2 = (r1 + r2)|0;
+	r3 = r0 << 2;
+	r2 = (r2 + r3)|0;
+	r3 = r2 >> 2;
+	r3 = heap32[(r3+24)];
+if(!(r3 ==0)) //_LBB726_16
+{
+	r2 = (r2 + 96)|0;
+	r5 = r3 >> 2;
+	r6 = heap32[(r5+2)];
+	r5 = heap32[(r5+3)];
+	r7 = r6 >> 2;
+	r8 = r5 >> 2;
+	heap32[(r7+3)] = r5;
+	r2 = r2 >> 2;
+	heap32[(r8+2)] = r6;
+	r5 = heap32[(r2)];
+if(!(r5 !=r3)) //_LBB726_15
+{
+	r5 = block_null;
+	heap32[(r2)] = r6;
+if(!(r6 !=r5)) //_LBB726_15
+{
+	r2 = r4 << 2;
+	r2 = (r1 + r2)|0;
+	r2 = r2 >> 2;
+	r5 = 1;
+	r0 = r5 << r0;
+	r6 = heap32[(r2+1)];
+	r0 = r6 & (~r0);
+	heap32[(r2+1)] = r0;
+if(!(r0 !=0)) //_LBB726_15
+{
+	r0 = r1 >> 2;
+	r1 = r5 << r4;
+	r2 = heap32[(r0)];
+	r1 = r2 & (~r1);
+	heap32[(r0)] = r1;
+}
+}
+}
+	r_g0 = r3;
+	return;
+}
+}
+} while(0);
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function tlsf_malloc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = (r0 + -1)|0;
+	if(uint(r2) <uint(1073741823)) //_LBB727_2
+{
+	r0 = (r0 + 7)|0;
+	r0 = r0 & -8;
+	r2 = 12;
+	r0 = uint(r0) < uint(r2) ? r2 : r0;
+}
+else{
+	r0 = 0;
+}
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	block_locate_free(i7);
+	r2 = r_g0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r0;
+	r0 = s_current_memory;
+	block_prepare_used(i7);
+	r1 = r_g0;
+	r2 = r2 >> 2;
+	r0 = r0 >> 2;
+	r2 = heap32[(r2+1)];
+	r3 = heap32[(r0)];
+	r2 = r2 & -4;
+	r2 = (r3 + r2)|0;
+	r3 = s_max_memory;
+	r3 = r3 >> 2;
+	heap32[(r0)] = r2;
+	r0 = heap32[(r3)];
+if(!(uint(r2) <=uint(r0))) //_LBB727_5
+{
+	heap32[(r3)] = r2;
+}
+	r_g0 = r1;
+	return;
+}
+
+function tlsf_realloc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+2)];
+if(!(r0 ==0)) //_LBB728_3
+{
+if(!(r2 !=0)) //_LBB728_3
+{
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	tlsf_free(i7);
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+}
+	if(r0 !=0) //_LBB728_10
+{
+	r3 = r0 >> 2;
+	r4 = heap32[(r3+-1)];
+	r5 = r4 & -4;
+	r6 = (r0 + r5)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+	r7 = r6 & -4;
+	r7 = (r5 + r7)|0;
+	r8 = (r2 + -1)|0;
+	r9 = (r0 + -8)|0;
+	r7 = (r7 + 4)|0;
+	if(uint(r8) <uint(1073741823)) //_LBB728_12
+{
+	r10 = (r2 + 7)|0;
+	r10 = r10 & -8;
+	r11 = 12;
+	r10 = uint(r10) < uint(r11) ? r11 : r10;
+}
+else{
+	r10 = 0;
+}
+_11: do {
+	if(uint(r10) >uint(r5)) //_LBB728_15
+{
+	r4 = r6 & 1;
+if(!(r4 ==0)) //_LBB728_17
+{
+	if(uint(r10) <=uint(r7)) //_LBB728_24
+{
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r9;
+	block_merge_next(i7);
+	r4 = heap32[(r3+-1)];
+	r4 = r4 & -4;
+	r4 = (r0 + r4)|0;
+	r4 = r4 >> 2;
+	r9 = heap32[(r4)];
+	r9 = r9 & -3;
+	heap32[(r4)] = r9;
+	r4 = heap32[(r3+-1)];
+	r4 = r4 & -2;
+	heap32[(r3+-1)] = r4;
+break _11;
+}
+}
+	if(uint(r8) <uint(1073741823)) //_LBB728_19
+{
+	r3 = (r2 + 7)|0;
+	r3 = r3 & -8;
+	r4 = 12;
+	r3 = uint(r3) < uint(r4) ? r4 : r3;
+}
+else{
+	r3 = 0;
+}
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r3;
+	block_locate_free(i7);
+	r4 = r_g0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r3;
+	r3 = s_current_memory;
+	block_prepare_used(i7);
+	r9 = r_g0;
+	r4 = r4 >> 2;
+	r3 = r3 >> 2;
+	r4 = heap32[(r4+1)];
+	r10 = heap32[(r3)];
+	r4 = r4 & -4;
+	r4 = (r10 + r4)|0;
+	r10 = s_max_memory;
+	r10 = r10 >> 2;
+	heap32[(r3)] = r4;
+	r3 = heap32[(r10)];
+if(!(uint(r4) <=uint(r3))) //_LBB728_22
+{
+	heap32[(r10)] = r4;
+}
+	if(r9 ==0) //_LBB728_34
+{
+	r_g0 = r9;
+	return;
+}
+else{
+	r3 = uint(r5) >= uint(r2) ? r2 : r5;
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r3;
+	memcpy(i7);
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	tlsf_free(i7);
+	r_g0 = r9;
+	return;
+}
+}
+} while(0);
+	r9 = s_current_memory;
+	r9 = r9 >> 2;
+	r2 = heap32[(r9)];
+	r2 = (r2 - r5)|0;
+	r5 = r4 & -4;
+	heap32[(r9)] = r2;
+	r6 = (r10 + 16)|0;
+	if(uint(r5) >=uint(r6)) //_LBB728_27
+{
+	r4 = (r0 + r10)|0;
+	r6 = r4 >> 2;
+	r7 = -4;
+	r8 = heap32[(r6)];
+	r7 = (r7 - r10)|0;
+	r8 = r8 & 3;
+	r5 = (r7 + r5)|0;
+	r5 = r8 | r5;
+	heap32[(r6)] = r5;
+	r5 = heap32[(r3+-1)];
+	r5 = r5 & 3;
+	r5 = r5 | r10;
+	heap32[(r3+-1)] = r5;
+	r5 = heap32[(r6)];
+	r5 = (r5 + -4)|0;
+	r5 = r5 & -4;
+	r5 = (r10 + r5)|0;
+	r5 = (r5 + r0)|0;
+	r4 = (r4 + -4)|0;
+	r5 = r5 >> 2;
+	heap32[(r5+1)] = r4;
+	r7 = heap32[(r5+2)];
+	r7 = r7 | 2;
+	heap32[(r5+2)] = r7;
+	r5 = heap32[(r6)];
+	r5 = r5 | 1;
+	r5 = r5 & -3;
+	heap32[(r6)] = r5;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r4;
+	block_merge_next(i7);
+	r4 = r_g0;
+	r5 = r4 >> 2;
+	r5 = heap32[(r5+1)];
+	r6 = r5 & -4;
+	if(uint(r6) >uint(255)) //_LBB728_29
+{
+	r5 = r6 >>> 1;
+	r5 = r6 | r5;
+	r7 = r5 >>> 2;
+	r5 = r5 | r7;
+	r7 = r5 >>> 4;
+	r5 = r5 | r7;
+	r7 = r5 >>> 8;
+	r5 = r5 | r7;
+	r7 = r5 >>> 16;
+	r5 = r5 | r7;
+	r7 = r5 ^ -1;
+	r8 = 1431655765;
+	r7 = r7 >>> 1;
+	r5 = r8 & (~r5);
+	r7 = r7 & 1431655765;
+	r5 = (r5 + r7)|0;
+	r7 = r5 >>> 2;
+	r5 = r5 & 858993459;
+	r7 = r7 & 858993459;
+	r5 = (r5 + r7)|0;
+	r7 = r5 >>> 4;
+	r5 = r5 & 252645135;
+	r7 = r7 & 252645135;
+	r5 = (r5 + r7)|0;
+	r7 = r5 >>> 8;
+	r5 = r5 & 16711935;
+	r7 = r7 & 16711935;
+	r5 = (r5 + r7)|0;
+	r7 = r5 & 65535;
+	r5 = r5 >>> 16;
+	r8 = 26;
+	r5 = (r7 + r5)|0;
+	r7 = (r8 - r5)|0;
+	r6 = r6 >>> r7;
+	r7 = 24;
+	r6 = r6 ^ 32;
+	r5 = (r7 - r5)|0;
+}
+else{
+	r6 = r5 >>> 3;
+	r5 = 0;
+}
+	r7 = r5 << 7;
+	r7 = (r1 + r7)|0;
+	r8 = r6 << 2;
+	r7 = (r7 + r8)|0;
+	r7 = r7 >> 2;
+	r8 = heap32[(r7+24)];
+	r10 = r4 >> 2;
+	r11 = block_null;
+	heap32[(r10+2)] = r8;
+	r8 = r8 >> 2;
+	heap32[(r10+3)] = r11;
+	heap32[(r8+3)] = r4;
+	r8 = 1;
+	r10 = r1 >> 2;
+	heap32[(r7+24)] = r4;
+	r4 = r5 << 2;
+	r5 = r8 << r5;
+	r7 = heap32[(r10)];
+	r4 = (r1 + r4)|0;
+	r1 = r7 | r5;
+	r4 = r4 >> 2;
+	heap32[(r10)] = r1;
+	r1 = r8 << r6;
+	r5 = heap32[(r4+1)];
+	r1 = r5 | r1;
+	heap32[(r4+1)] = r1;
+	r4 = heap32[(r3+-1)];
+}
+	r1 = r4 & -4;
+	r1 = (r2 + r1)|0;
+	r2 = s_max_memory;
+	r2 = r2 >> 2;
+	heap32[(r9)] = r1;
+	r9 = heap32[(r2)];
+if(!(uint(r1) <=uint(r9))) //_LBB728_33
+{
+	heap32[(r2)] = r1;
+}
+	r_g0 = r0;
+	return;
+}
+else{
+	r0 = (r2 + -1)|0;
+	if(uint(r0) <uint(1073741823)) //_LBB728_6
+{
+	r0 = (r2 + 7)|0;
+	r0 = r0 & -8;
+	r2 = 12;
+	r0 = uint(r0) < uint(r2) ? r2 : r0;
+}
+else{
+	r0 = 0;
+}
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	block_locate_free(i7);
+	r2 = r_g0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r0;
+	r0 = s_current_memory;
+	block_prepare_used(i7);
+	r1 = r_g0;
+	r2 = r2 >> 2;
+	r0 = r0 >> 2;
+	r2 = heap32[(r2+1)];
+	r3 = heap32[(r0)];
+	r2 = r2 & -4;
+	r2 = (r3 + r2)|0;
+	r3 = s_max_memory;
+	r3 = r3 >> 2;
+	heap32[(r0)] = r2;
+	r0 = heap32[(r3)];
+if(!(uint(r2) <=uint(r0))) //_LBB728_9
+{
+	heap32[(r3)] = r2;
+}
+	r_g0 = r1;
+	return;
+}
+}
+
+function tlsf_create(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = (r0 + -3048)|0;
+	r1 = r0 & -8;
+	r2 = (r1 + -12)|0;
+	if(uint(r2) <uint(1073741813)) //_LBB729_2
+{
+	r2 = heap32[(fp)];
+	r3 = block_null;
+	r4 = r3 >> 2;
+	heap32[(r4+2)] = r3;
+	r5 = -1;
+	r6 = r2 >> 2;
+	heap32[(r4+3)] = r3;
+	heap32[(r6)] = 0;
+_3: while(true){
+	r4 = r5 << 2;
+	r7 = r5 << 7;
+	r4 = (r2 - r4)|0;
+	r7 = (r2 - r7)|0;
+	r4 = r4 >> 2;
+	r7 = r7 >> 2;
+	heap32[(r4)] = 0;
+	heap32[(r7+-8)] = r3;
+	heap32[(r7+-7)] = r3;
+	heap32[(r7+-6)] = r3;
+	heap32[(r7+-5)] = r3;
+	heap32[(r7+-4)] = r3;
+	heap32[(r7+-3)] = r3;
+	heap32[(r7+-2)] = r3;
+	heap32[(r7+-1)] = r3;
+	heap32[(r7)] = r3;
+	heap32[(r7+1)] = r3;
+	heap32[(r7+2)] = r3;
+	heap32[(r7+3)] = r3;
+	heap32[(r7+4)] = r3;
+	heap32[(r7+5)] = r3;
+	heap32[(r7+6)] = r3;
+	heap32[(r7+7)] = r3;
+	heap32[(r7+8)] = r3;
+	heap32[(r7+9)] = r3;
+	heap32[(r7+10)] = r3;
+	heap32[(r7+11)] = r3;
+	heap32[(r7+12)] = r3;
+	heap32[(r7+13)] = r3;
+	heap32[(r7+14)] = r3;
+	heap32[(r7+15)] = r3;
+	heap32[(r7+16)] = r3;
+	heap32[(r7+17)] = r3;
+	heap32[(r7+18)] = r3;
+	heap32[(r7+19)] = r3;
+	heap32[(r7+20)] = r3;
+	heap32[(r7+21)] = r3;
+	r5 = (r5 + -1)|0;
+	heap32[(r7+22)] = r3;
+	heap32[(r7+23)] = r3;
+if(!(r5 !=-24)) //_LBB729_3
+{
+break _3;
+}
+}
+	r4 = r0 | 1;
+	r5 = (r2 + 3036)|0;
+	r4 = r4 & -7;
+	heap32[(r6+760)] = r4;
+	if(uint(r1) >uint(255)) //_LBB729_6
+{
+	r0 = r1 >>> 1;
+	r0 = r1 | r0;
+	r4 = r0 >>> 2;
+	r0 = r0 | r4;
+	r4 = r0 >>> 4;
+	r0 = r0 | r4;
+	r4 = r0 >>> 8;
+	r0 = r0 | r4;
+	r4 = r0 >>> 16;
+	r0 = r0 | r4;
+	r4 = r0 ^ -1;
+	r7 = 1431655765;
+	r4 = r4 >>> 1;
+	r0 = r7 & (~r0);
+	r4 = r4 & 1431655765;
+	r0 = (r0 + r4)|0;
+	r4 = r0 >>> 2;
+	r0 = r0 & 858993459;
+	r4 = r4 & 858993459;
+	r0 = (r0 + r4)|0;
+	r4 = r0 >>> 4;
+	r0 = r0 & 252645135;
+	r4 = r4 & 252645135;
+	r0 = (r0 + r4)|0;
+	r4 = r0 >>> 8;
+	r0 = r0 & 16711935;
+	r4 = r4 & 16711935;
+	r0 = (r0 + r4)|0;
+	r4 = r0 & 65535;
+	r0 = r0 >>> 16;
+	r7 = 26;
+	r0 = (r4 + r0)|0;
+	r4 = (r7 - r0)|0;
+	r1 = r1 >>> r4;
+	r4 = 24;
+	r1 = r1 ^ 32;
+	r0 = (r4 - r0)|0;
+}
+else{
+	r1 = r0 >>> 3;
+	r0 = 0;
+}
+	r4 = r0 << 7;
+	r4 = (r2 + r4)|0;
+	r7 = r1 << 2;
+	r4 = (r4 + r7)|0;
+	r4 = r4 >> 2;
+	r7 = heap32[(r4+24)];
+	heap32[(r6+761)] = r7;
+	r7 = r7 >> 2;
+	heap32[(r6+762)] = r3;
+	heap32[(r7+3)] = r5;
+	r3 = 1;
+	heap32[(r4+24)] = r5;
+	r4 = r0 << 2;
+	r0 = r3 << r0;
+	r7 = heap32[(r6)];
+	r4 = (r2 + r4)|0;
+	r0 = r7 | r0;
+	r4 = r4 >> 2;
+	heap32[(r6)] = r0;
+	r0 = r3 << r1;
+	r1 = heap32[(r4+1)];
+	r0 = r1 | r0;
+	heap32[(r4+1)] = r0;
+	r0 = heap32[(r6+760)];
+	r0 = (r0 + 3040)|0;
+	r0 = r0 & -4;
+	r0 = (r2 + r0)|0;
+	r0 = r0 >> 2;
+	heap32[(r0)] = r5;
+	heap32[(r0+1)] = 2;
+	r_g0 = r2;
+	return;
+}
+else{
+	r0 = _2E_str643;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 3060;
+	heap32[(g0+2)] = 1073744872;
+	printf(i7);
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+}
+
+function _stricmp(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r5 = 26;
+_1: while(true){
+	r2 = heap8[r1];
+	r3 = heap8[r0];
+	r4 = (r2 + -65)|0;
+	r2 = (r2 + -33)|0;
+	r6 = (r3 + -65)|0;
+	r3 = (r3 + -33)|0;
+	r2 = uint(r4) < uint(r5) ? r2 : r4;
+	r3 = uint(r6) < uint(r5) ? r3 : r6;
+	if(r2 !=r3) //_LBB730_3
+{
+break _1;
+}
+else{
+	r0 = (r0 + 1)|0;
+	r1 = (r1 + 1)|0;
+	if(r3 !=-65) //_LBB730_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+}
+	r0 = (r3 - r2)|0;
+	r_g0 = r0;
+	return;
+}
+
+function strcasecmp(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r5 = 26;
+_1: while(true){
+	r2 = heap8[r1];
+	r3 = heap8[r0];
+	r4 = (r2 + -65)|0;
+	r2 = (r2 + -33)|0;
+	r6 = (r3 + -65)|0;
+	r3 = (r3 + -33)|0;
+	r2 = uint(r4) < uint(r5) ? r2 : r4;
+	r3 = uint(r6) < uint(r5) ? r3 : r6;
+	if(r2 !=r3) //_LBB731_3
+{
+break _1;
+}
+else{
+	r1 = (r1 + 1)|0;
+	r0 = (r0 + 1)|0;
+	if(r3 !=-65) //_LBB731_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+}
+	r0 = (r3 - r2)|0;
+	r_g0 = r0;
+	return;
+}
+
+function strcpy(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = r1 ^ r0;
+	r2 = r2 & 3;
+_1: do {
+	if(r2 ==0) //_LBB732_2
+{
+	r2 = r0 & 3;
+	if(r2 !=0) //_LBB732_4
+{
+	r2 = r0 | -4;
+_5: while(true){
+	if(r2 !=0) //_LBB732_7
+{
+	r3 = heapU8[r1];
+	r4 = (r0 + 1)|0;
+	r1 = (r1 + 1)|0;
+	r2 = (r2 + 1)|0;
+	heap8[r0] = r3;
+	r0 = r4;
+if(!(r3 !=0)) //_LBB732_5
+{
+break _1;
+}
+}
+else{
+break _5;
+}
+}
+}
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r3 = r2 & -2139062144;
+	r3 = r3 ^ -2139062144;
+	r4 = (r2 + -16843009)|0;
+	r3 = r3 & r4;
+_9: do {
+	if(r3 ==0) //_LBB732_11
+{
+	r1 = (r1 + 4)|0;
+_11: while(true){
+	r3 = r0 >> 2;
+	r4 = r1 >> 2;
+	heap32[(r3)] = r2;
+	r2 = heap32[(r4)];
+	r3 = r2 & -2139062144;
+	r0 = (r0 + 4)|0;
+	r1 = (r1 + 4)|0;
+	r3 = r3 ^ -2139062144;
+	r4 = (r2 + -16843009)|0;
+	r3 = r3 & r4;
+if(!(r3 ==0)) //_LBB732_15
+{
+break _9;
+}
+}
+}
+} while(0);
+	r1 = r2 & 255;
+	heap8[r0] = r2;
+if(!(r1 ==0)) //_LBB732_8
+{
+	r0 = (r0 + 1)|0;
+_15: while(true){
+	r2 = r2 >>> 8;
+	r1 = (r0 + 1)|0;
+	heap8[r0] = r2;
+	r3 = r2 & 255;
+	r0 = r1;
+	if(r3 ==0) //_LBB732_8
+{
+break _1;
+}
+else{
+continue _15;
+}
+}
+}
+}
+else{
+_17: while(true){
+	r2 = heapU8[r1];
+	r3 = (r0 + 1)|0;
+	r1 = (r1 + 1)|0;
+	heap8[r0] = r2;
+	r0 = r3;
+	if(r2 ==0) //_LBB732_8
+{
+break _1;
+}
+else{
+continue _17;
+}
+}
+}
+} while(0);
+	return;
+}
+
+function strcmp(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = r1 ^ r0;
+	r2 = r2 & 3;
+_1: do {
+	if(r2 ==0) //_LBB733_7
+{
+	r2 = r0 & 3;
+_3: do {
+	if(r2 !=0) //_LBB733_9
+{
+	r2 = r0 | -4;
+_5: while(true){
+	if(r2 !=0) //_LBB733_10
+{
+	r3 = heapU8[r0];
+	r4 = heapU8[r1];
+	if(r3 ==0) //_LBB733_12
+{
+break _5;
+}
+else{
+	r5 = r4 & 255;
+	if(r3 ==r5) //_LBB733_13
+{
+	r0 = (r0 + 1)|0;
+	r1 = (r1 + 1)|0;
+	r2 = (r2 + 1)|0;
+}
+else{
+break _5;
+}
+}
+}
+else{
+break _3;
+}
+}
+	r0 = r3 << 24;
+	r1 = r4 << 24;
+break _1;
+}
+} while(0);
+_11: while(true){
+	r2 = r0 >> 2;
+	r2 = heap32[(r2)];
+	r3 = r1 >> 2;
+	r4 = r2 & -2139062144;
+	r3 = heap32[(r3)];
+	r4 = r4 ^ -2139062144;
+	r5 = (r2 + -16843009)|0;
+	r4 = r4 & r5;
+	if(r4 !=0) //_LBB733_18
+{
+break _11;
+}
+else{
+	r4 = r3 & -2139062144;
+	r4 = r4 ^ -2139062144;
+	r5 = (r3 + -16843009)|0;
+	r4 = r4 & r5;
+	if(r4 !=0) //_LBB733_18
+{
+break _11;
+}
+else{
+	r0 = (r0 + 4)|0;
+	r1 = (r1 + 4)|0;
+if(!(r2 ==r3)) //_LBB733_15
+{
+break _11;
+}
+}
+}
+}
+	r0 = r2 & 255;
+_16: do {
+if(!(r0 ==0)) //_LBB733_21
+{
+	r0 = r2 & 255;
+	r1 = r3 & 255;
+if(!(r0 !=r1)) //_LBB733_21
+{
+__label__ = 19; //SET chanka
+_18: while(true){
+	r2 = r2 >>> 8;
+	r3 = r3 >>> 8;
+	r0 = r2 & 255;
+	if(r0 ==0) //_LBB733_24
+{
+break _16;
+}
+else{
+	r1 = r3 & 255;
+if(!(r0 ==r1)) //_LBB733_22
+{
+break _16;
+}
+}
+}
+}
+}
+} while(0);
+	r2 = r2 & 255;
+	r3 = r3 & 255;
+	r2 = (r2 - r3)|0;
+	r_g0 = r2;
+	return;
+}
+else{
+_22: while(true){
+	r2 = heapU8[r0];
+	r3 = heapU8[r1];
+	if(r2 ==0) //_LBB733_5
+{
+break _22;
+}
+else{
+	r4 = r3 & 255;
+	if(r2 ==r4) //_LBB733_2
+{
+	r0 = (r0 + 1)|0;
+	r1 = (r1 + 1)|0;
+}
+else{
+break _22;
+}
+}
+}
+	r0 = r2 << 24;
+	r1 = r3 << 24;
+}
+} while(0);
+	r0 = r0 >> 24;
+	r1 = r1 >> 24;
+	r0 = (r0 - r1)|0;
+	r_g0 = r0;
+	return;
+}
+
+function memmove(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+_1: do {
+if(!(r0 ==r1)) //_LBB734_8
+{
+	r2 = heap32[(fp+2)];
+	if(uint(r0) <=uint(r1)) //_LBB734_5
+{
+if(!(r2 ==0)) //_LBB734_8
+{
+	r3 = 0;
+	r2 = (r3 - r2)|0;
+_6: while(true){
+	r3 = (r0 - r2)|0;
+	r4 = (r2 + 1)|0;
+	r2 = (r1 - r2)|0;
+	r3 = heapU8[r3+-1];
+	heap8[r2+-1] = r3;
+	r2 = r4;
+	if(r4 !=0) //_LBB734_7
+{
+continue _6;
+}
+else{
+break _1;
+}
+}
+}
+}
+else{
+if(!(r2 ==0)) //_LBB734_8
+{
+	r3 = r1;
+_10: while(true){
+	r4 = heapU8[r0];
+	r2 = (r2 + -1)|0;
+	r5 = (r3 + 1)|0;
+	r0 = (r0 + 1)|0;
+	heap8[r3] = r4;
+	r3 = r5;
+	if(r2 ==0) //_LBB734_8
+{
+break _1;
+}
+else{
+continue _10;
+}
+}
+}
+}
+}
+} while(0);
+	r_g0 = r1;
+	return;
+}
+
+function strncasecmp(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = 0;
+	r7 = 26;
+_1: while(true){
+	if(r3 >=r2) //_LBB735_5
+{
+__label__ = 5;
+break _1;
+}
+else{
+	r4 = heap8[r1+r3];
+	r5 = heap8[r0+r3];
+	r6 = (r4 + -65)|0;
+	r4 = (r4 + -33)|0;
+	r8 = (r5 + -65)|0;
+	r5 = (r5 + -33)|0;
+	r4 = uint(r6) < uint(r7) ? r4 : r6;
+	r5 = uint(r8) < uint(r7) ? r5 : r8;
+	if(r4 !=r5) //_LBB735_4
+{
+__label__ = 4;
+break _1;
+}
+else{
+	r3 = (r3 + 1)|0;
+	if(r5 !=-65) //_LBB735_1
+{
+continue _1;
+}
+else{
+__label__ = 4;
+break _1;
+}
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 5:
+	r0 = 0;
+	r_g0 = r0;
+	return;
+break;
+case 4:
+	r0 = (r5 - r4)|0;
+	r_g0 = r0;
+	return;
+break;
+}
+}
+
+function strncmp(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+1)];
+	if(uint(r0) >uint(3)) //_LBB736_2
+{
+	r5 = r0 >>> 2;
+	r1 = (r1 + 2)|0;
+_3: while(true){
+	r3 = heapU8[r1+-2];
+	r4 = heapU8[r2];
+	if(r3 ==0) //_LBB736_5
+{
+__label__ = 5;
+break _3;
+}
+else{
+	r6 = r4 & 255;
+	if(r3 ==r6) //_LBB736_6
+{
+	r3 = heapU8[r1+-1];
+	r4 = heapU8[r2+1];
+	if(r3 ==0) //_LBB736_8
+{
+__label__ = 5;
+break _3;
+}
+else{
+	r6 = r4 & 255;
+	if(r3 ==r6) //_LBB736_9
+{
+	r3 = heapU8[r1];
+	r4 = heapU8[r2+2];
+	if(r3 ==0) //_LBB736_11
+{
+__label__ = 5;
+break _3;
+}
+else{
+	r6 = r4 & 255;
+	if(r3 ==r6) //_LBB736_12
+{
+	r3 = heapU8[r1+1];
+	r4 = heapU8[r2+3];
+	if(r3 ==0) //_LBB736_14
+{
+__label__ = 5;
+break _3;
+}
+else{
+	r6 = r4 & 255;
+	if(r3 ==r6) //_LBB736_15
+{
+	r5 = (r5 + -1)|0;
+	r1 = (r1 + 4)|0;
+	r2 = (r2 + 4)|0;
+	if(r5 !=0) //_LBB736_3
+{
+__label__ = 3;
+}
+else{
+__label__ = 13;
+break _3;
+}
+}
+else{
+__label__ = 5;
+break _3;
+}
+}
+}
+else{
+__label__ = 5;
+break _3;
+}
+}
+}
+else{
+__label__ = 5;
+break _3;
+}
+}
+}
+else{
+__label__ = 5;
+break _3;
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 5:
+	r1 = r4 & 255;
+	r1 = (r3 - r1)|0;
+	r_g0 = r1;
+	return;
+break;
+case 13:
+	r0 = r0 & 3;
+	r1 = (r1 + -2)|0;
+break;
+}
+}
+else{
+	r3 = 0;
+	r4 = r3;
+}
+_17: while(true){
+	if(r0 !=0) //_LBB736_17
+{
+	r3 = heapU8[r1];
+	r4 = heapU8[r2];
+	if(r3 ==0) //_LBB736_19
+{
+__label__ = 16;
+break _17;
+}
+else{
+	r5 = r4 & 255;
+	if(r3 ==r5) //_LBB736_20
+{
+	r0 = (r0 + -1)|0;
+	r1 = (r1 + 1)|0;
+	r2 = (r2 + 1)|0;
+continue _17;
+}
+else{
+__label__ = 16;
+break _17;
+}
+}
+}
+else{
+__label__ = 19;
+break _17;
+}
+}
+switch(__label__ ){//multiple entries
+case 16:
+	r0 = r4 & 255;
+	r0 = (r3 - r0)|0;
+	r_g0 = r0;
+	return;
+break;
+case 19:
+	r0 = r3 & 255;
+	r1 = r4 & 255;
+	r0 = (r0 - r1)|0;
+	r_g0 = r0;
+	return;
+break;
+}
+}
+
+function quicksort(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var r24;
+	var r25;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	heap32[(fp+-4)] = r0;
+	r1 = heap32[(fp+1)];
+	heap32[(fp+-3)] = r1;
+if(!(r0 <=r1)) //_LBB737_37
+{
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+3)];
+	r2 = 4;
+	r3 = heap32[(fp+-4)];
+	r4 = r3 << 2;
+	r5 = (r0 + r4)|0;
+	r6 = -4;
+	r7 = -8;
+	r2 = (r2 - r0)|0;
+	r3 = (r3 + -1)|0;
+	r8 = (r0 + 4)|0;
+	r6 = (r6 - r0)|0;
+	heap32[(fp+-1)] = r6;
+	r6 = (r5 + -4)|0;
+	heap32[(fp+-2)] = r6;
+	r6 = (r7 - r0)|0;
+	r2 = (r2 - r4)|0;
+	heap32[(fp+-6)] = r2;
+_3: while(true){
+	r2 = heap32[(fp+-3)];
+	r4 = (r2 + -1)|0;
+	r7 = (r2 + 1)|0;
+	r9 = -1;
+	r10 = -2;
+	heap32[(fp+-5)] = r2;
+	r2 = heap32[(fp+-4)];
+	r11 = r4;
+_5: while(true){
+	r12 = r4 << 2;
+	r13 = (r0 + r12)|0;
+	r14 = (r12 + 4)|0;
+	r15 = heap32[(fp+-1)];
+	r15 = (r15 - r12)|0;
+	r16 = (r8 + r12)|0;
+	r12 = (r6 - r12)|0;
+_7: while(true){
+	r17 = r12;
+	r18 = r16;
+	r19 = r15;
+	r20 = r14;
+	r21 = r4;
+	r22 = r13;
+	if(r3 ==r21) //_LBB737_6
+{
+break _7;
+}
+else{
+	r4 = (r0 + r20)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	r13 = (r22 + 4)|0;
+	r4 = (r21 + 1)|0;
+	r14 = (r20 + 4)|0;
+	r15 = (r19 + -4)|0;
+	r16 = (r18 + 4)|0;
+	r12 = (r17 + -4)|0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r23 = r_g0;
+if(!(r23 <0)) //_LBB737_4
+{
+break _7;
+}
+}
+}
+	r4 = r2 << 2;
+	r12 = (r0 + r4)|0;
+	r13 = 0;
+	r14 = (r13 - r12)|0;
+	r4 = (r21 + 1)|0;
+	r15 = (r12 + -4)|0;
+	r16 = r14;
+_11: while(true){
+	r23 = r14;
+	r24 = r16;
+	r25 = r2;
+	r2 = (r15 + r13)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r2;
+	r13 = (r13 + -4)|0;
+	r2 = (r25 + -1)|0;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r14 = r_g0;
+	if(r14 >-1) //_LBB737_9
+{
+break _11;
+}
+else{
+	r16 = (r24 + 4)|0;
+	r14 = (r23 + 4)|0;
+if(!(r7 !=r25)) //_LBB737_7
+{
+break _11;
+}
+}
+}
+	if(r4 >=r2) //_LBB737_20
+{
+break _5;
+}
+else{
+	r17 = 0;
+_16: while(true){
+	r22 = (r17 - r19)|0;
+	r14 = (r17 - r24)|0;
+	r15 = heapU8[r22];
+	r14 = heapU8[r14+-4];
+	r16 = (r17 + 1)|0;
+	r17 = (r17 - r23)|0;
+	heap8[r22] = r14;
+	heap8[r17+-4] = r15;
+	r17 = r16;
+if(!(r16 !=4)) //_LBB737_11
+{
+break _16;
+}
+}
+	r17 = (r0 + r20)|0;
+	heap32[(g0)] = r17;
+	heap32[(g0+1)] = r5;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r17 = r_g0;
+_19: do {
+	if(r17 ==0) //_LBB737_14
+{
+	r17 = r11 << 2;
+	r11 = (r11 + 1)|0;
+	r17 = (r8 + r17)|0;
+	r22 = 0;
+_21: while(true){
+	r14 = (r18 - r22)|0;
+	r15 = (r17 - r22)|0;
+	r16 = heapU8[r15];
+	r19 = heapU8[r14];
+	r22 = (r22 + -1)|0;
+	heap8[r15] = r19;
+	heap8[r14] = r16;
+if(!(r22 !=-4)) //_LBB737_15
+{
+break _19;
+}
+}
+}
+} while(0);
+	r17 = (r12 + r13)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r17;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r17 = r_g0;
+if(!(r17 !=0)) //_LBB737_3
+{
+	r4 = (r21 + 1)|0;
+	r17 = 0;
+_25: while(true){
+	r18 = heap32[(fp+-2)];
+	r18 = (r17 + r18)|0;
+	r21 = r10 << 2;
+	r18 = (r18 - r21)|0;
+	r21 = (r17 + r12)|0;
+	r21 = heapU8[r21+r13];
+	r22 = heapU8[r18+-8];
+	r14 = (r17 + r12)|0;
+	r17 = (r17 + 1)|0;
+	heap8[r14+r13] = r22;
+	heap8[r18+-8] = r21;
+	if(r17 ==4) //_LBB737_18
+{
+break _25;
+}
+}
+	r10 = (r10 + 1)|0;
+	r9 = (r9 + 1)|0;
+}
+}
+}
+	r2 = heap32[(fp+-4)];
+	r2 = (r2 - r10)|0;
+	r4 = 0;
+	r2 = (r2 + -2)|0;
+	r7 = (r4 - r22)|0;
+_29: while(true){
+	r12 = (r5 - r4)|0;
+	r13 = (r18 - r4)|0;
+	r14 = heapU8[r13];
+	r15 = heapU8[r12];
+	r4 = (r4 + -1)|0;
+	heap8[r13] = r15;
+	heap8[r12] = r14;
+if(!(r4 !=-4)) //_LBB737_21
+{
+break _29;
+}
+}
+	r4 = (r21 + 2)|0;
+	r12 = heap32[(fp+-3)];
+	if(r12 <r11) //_LBB737_24
+{
+	r13 = r12 << 2;
+	r14 = 0;
+	r13 = (r0 + r13)|0;
+	r13 = (r14 - r13)|0;
+	r12 = (r11 - r12)|0;
+_34: while(true){
+	r15 = r14;
+_36: while(true){
+	r16 = (r15 - r7)|0;
+	r18 = (r15 - r13)|0;
+	r19 = heapU8[r18];
+	r20 = heapU8[r16];
+	r15 = (r15 + 1)|0;
+	heap8[r18] = r20;
+	heap8[r16] = r19;
+if(!(r15 !=4)) //_LBB737_26
+{
+break _36;
+}
+}
+	r12 = (r12 + -1)|0;
+	r13 = (r13 + -4)|0;
+	r7 = (r7 + 4)|0;
+if(!(r12 !=0)) //_LBB737_25
+{
+break _34;
+}
+}
+	r7 = heap32[(fp+-3)];
+	r7 = (r7 - r11)|0;
+	r7 = (r7 + r21)|0;
+}
+else{
+	r7 = r21;
+}
+	if(r3 >r2) //_LBB737_35
+{
+	r2 = heap32[(fp+-6)];
+_44: while(true){
+	r4 = 0;
+_46: while(true){
+	r11 = (r4 - r2)|0;
+	r12 = (r4 - r17)|0;
+	r13 = heapU8[r12];
+	r14 = heapU8[r11];
+	r4 = (r4 + 1)|0;
+	heap8[r12] = r14;
+	heap8[r11] = r13;
+if(!(r4 !=4)) //_LBB737_30
+{
+break _46;
+}
+}
+	r9 = (r9 + -1)|0;
+	r17 = (r17 + -4)|0;
+	r2 = (r2 + 4)|0;
+if(!(r9 !=0)) //_LBB737_29
+{
+break _44;
+}
+}
+	r2 = (r10 + r21)|0;
+	r2 = (r2 + 3)|0;
+	heap32[(fp+-3)] = r2;
+}
+else{
+	heap32[(fp+-3)] = r4;
+}
+	heap32[(g0)] = r0;
+	r2 = heap32[(fp+-5)];
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r7;
+	heap32[(g0+3)] = r1;
+	quicksort(i7);
+	r4 = heap32[(fp+-3)];
+	r2 = heap32[(fp+-4)];
+	if(r4 <r2) //_LBB737_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function __dtostr(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	f0 = llvm_readDouble((sp));
+	r0 = sp + -8;
+	llvm_writeDouble((sp+-8),f0);
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp+3)];
+	r3 = heap32[(fp+4)];
+	r4 = heap32[(fp+5)];
+	r5 = heap32[(fp+6)];
+	r6 = heap32[(fp+-2)];
+	if(r0 >2146435071) //_LBB738_3
+{
+	r7 = r0 ^ 2146959360;
+	r7 = r6 | r7;
+	if(r7 ==0) //_LBB738_13
+{
+__label__ = 13;
+}
+else{
+	r7 = r0 ^ 2146435072;
+	r6 = r6 | r7;
+	if(r6 !=0) //_LBB738_21
+{
+__label__ = 20;
+}
+else{
+__label__ = 5;
+}
+}
+}
+else{
+	r7 = r0 ^ -1048576;
+	r7 = r6 | r7;
+	if(r7 ==0) //_LBB738_5
+{
+__label__ = 5;
+}
+else{
+	r7 = r0 ^ -524288;
+	r6 = r6 | r7;
+	if(r6 ==0) //_LBB738_13
+{
+__label__ = 13;
+}
+else{
+__label__ = 20;
+}
+}
+}
+_6: do {
+switch(__label__ ){//multiple entries
+case 13:
+	if(r2 >0) //_LBB738_15
+{
+	r0 = (r2 + -1)|0;
+	r3 = 2;
+	r4 = 0;
+	r5 = (r2 + 2)|0;
+	r0 = uint(r0) > uint(r3) ? r0 : r3;
+	r3 = (r4 - r2)|0;
+	r0 = (r5 - r0)|0;
+	r4 = _2E_str9655;
+	r5 = r1;
+_10: while(true){
+	r6 = heapU8[r4];
+	r0 = (r0 + -1)|0;
+	r7 = (r5 + 1)|0;
+	r4 = (r4 + 1)|0;
+	heap8[r5] = r6;
+	r5 = r7;
+if(!(r0 !=0)) //_LBB738_16
+{
+break _10;
+}
+}
+	r0 = -3;
+	r4 = 3;
+	r0 = uint(r3) > uint(r0) ? r2 : r4;
+}
+else{
+	r0 = 0;
+}
+	if(r0 >=r2) //_LBB738_20
+{
+	r_g0 = r0;
+	return;
+}
+else{
+__label__ = 11;
+break _6;
+}
+break;
+case 20:
+	f1 =                         0;
+	if(f0 !=f1) //_LBB738_32
+{
+	r0 = r0 >>> 20;
+	r0 = r0 & 2047;
+	r0 = (r0 + -1023)|0;
+	f2 = r0; //fitod r0, f2
+	f3 =        0.3010299956639812;
+	f2 = f2*f3;
+	r0 = f2|0;
+	r6 = (r0 + 1)|0;
+	if(f0 <f1) //_LBB738_34
+{
+	f1 = -f0;
+	r2 = (r2 + -1)|0;
+	r7 = (r1 + 1)|0;
+	r8 = 45;
+	heap8[r1] = r8;
+}
+else{
+	r7 = r1;
+	f1 = f0;
+}
+_23: do {
+	if(r4 ==0) //_LBB738_37
+{
+	f2 =                       0.5;
+}
+else{
+	f2 =                       0.5;
+	r8 = r4;
+	f3 =       0.10000000000000001;
+_26: while(true){
+	r8 = (r8 + -1)|0;
+	f2 = f2*f3;
+if(!(r8 !=0)) //_LBB738_38
+{
+break _23;
+}
+}
+}
+} while(0);
+	f1 = f1+f2;
+	f2 =                         1;
+	if(f1 <f2) //_LBB738_41
+{
+	r2 = (r2 + -1)|0;
+	r8 = (r7 + 1)|0;
+	r9 = 48;
+	heap8[r7] = r9;
+	r7 = r8;
+}
+_32: do {
+	if(r6 >0) //_LBB738_44
+{
+_34: do {
+	if(uint(r6) >uint(10)) //_LBB738_46
+{
+	r0 = (r0 + 1)|0;
+	f2 =                        10;
+	f3 =               10000000000;
+_36: while(true){
+	r0 = (r0 + -10)|0;
+	f2 = f2*f3;
+if(!(uint(r0) >uint(10))) //_LBB738_47
+{
+break _34;
+}
+}
+}
+else{
+	f2 =                        10;
+	r0 = r6;
+}
+} while(0);
+	if(uint(r0) >uint(1)) //_LBB738_50
+{
+	r0 = (r0 + -1)|0;
+	f3 =                        10;
+_42: while(true){
+	r0 = (r0 + -1)|0;
+	f2 = f2*f3;
+if(!(r0 !=0)) //_LBB738_51
+{
+break _42;
+}
+}
+	r0 = 1;
+}
+else{
+	r0 = 1;
+}
+_46: while(true){
+	f3 =       0.90000000000000002;
+	if(f2 >f3) //_LBB738_53
+{
+	f3 = f1/f2;
+	r8 = f3|0;
+	if(r0 ==0) //_LBB738_56
+{
+__label__ = 52;
+}
+else{
+	r9 = r8 & 255;
+	if(r9 !=0) //_LBB738_56
+{
+__label__ = 52;
+}
+else{
+__label__ = 64;
+}
+}
+if (__label__ == 52){
+	r0 = (r8 + 48)|0;
+	heap8[r7] = r0;
+	if(r2 !=0) //_LBB738_70
+{
+	r0 = r8 << 24;
+	r0 = r0 >> 24;
+	f3 = r0; //fitod r0, f3
+	f3 = f3*f2;
+	r7 = (r7 + 1)|0;
+	f1 = f1-f3;
+	r2 = (r2 + -1)|0;
+	r0 = 0;
+}
+else{
+break _46;
+}
+}
+	f3 =                        10;
+	f2 = f2/f3;
+}
+else{
+__label__ = 66;
+break _32;
+}
+}
+	f0 = f0/f2;
+	llvm_writeDouble((i7),f0);
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r2;
+	heap32[(g0+4)] = r3;
+	heap32[(g0+5)] = r4;
+	heap32[(g0+6)] = 0;
+	__dtostr(i7);
+	r0 = r_g0;
+	if(r0 ==0) //_LBB738_92
+{
+__label__ = 83;
+}
+else{
+	r3 = (r0 + r7)|0;
+	r7 = (r3 + 1)|0;
+	if(r2 !=r0) //_LBB738_60
+{
+	r3 = (r3 + 2)|0;
+	r4 = 101;
+	heap8[r7] = r4;
+	r7 = r3;
+}
+	r2 = (r2 + -1)|0;
+	r3 = (r2 - r0)|0;
+_60: do {
+	if(r6 <1000) //_LBB738_66
+{
+	if(r6 <100) //_LBB738_93
+{
+	if(r6 >9) //_LBB738_95
+{
+__label__ = 90;
+break _60;
+}
+else{
+__label__ = 91;
+break _60;
+}
+}
+else{
+__label__ = 87;
+break _60;
+}
+}
+else{
+	if(r2 !=r0) //_LBB738_64
+{
+	r0 = (r6 / 1000)|0;
+	r2 = (r7 + 1)|0;
+	r0 = (r0 + 48)|0;
+	heap8[r7] = r0;
+	r7 = r2;
+}
+	r3 = (r3 + -1)|0;
+	r6 = (r6 % 1000)|0;
+__label__ = 87;
+}
+} while(0);
+if (__label__ == 87){
+	if(r3 !=0) //_LBB738_97
+{
+	r0 = (r6 / 100)|0;
+	r2 = (r7 + 1)|0;
+	r0 = (r0 + 48)|0;
+	heap8[r7] = r0;
+	r7 = r2;
+}
+	r3 = (r3 + -1)|0;
+	r6 = (r6 % 100)|0;
+__label__ = 90;
+}
+if (__label__ == 90){
+	if(r3 !=0) //_LBB738_101
+{
+	r0 = (r6 / 10)|0;
+	r2 = (r7 + 1)|0;
+	r0 = (r0 + 48)|0;
+	heap8[r7] = r0;
+	r7 = r2;
+}
+	r3 = (r3 + -1)|0;
+	r6 = (r6 % 10)|0;
+}
+	if(r3 !=0) //_LBB738_68
+{
+	r0 = (r6 + 48)|0;
+	heap8[r7] = r0;
+	if(r3 ==1) //_LBB738_92
+{
+__label__ = 83;
+}
+else{
+	r7 = (r7 + 1)|0;
+__label__ = 82;
+}
+}
+else{
+__label__ = 82;
+}
+}
+}
+else{
+	f2 =       0.10000000000000001;
+__label__ = 66;
+}
+} while(0);
+_81: do {
+if (__label__ == 66){
+	if(r7 ==r1) //_LBB738_75
+{
+	if(r2 ==0) //_LBB738_92
+{
+__label__ = 83;
+break _81;
+}
+else{
+	r2 = (r2 + -1)|0;
+	r6 = (r7 + 1)|0;
+	r0 = 48;
+	heap8[r7] = r0;
+	r7 = r6;
+}
+}
+if(!(r4 !=0)) //_LBB738_80
+{
+	r6 = 1;
+	r6 = (r6 - r1)|0;
+	r6 = (r6 + r7)|0;
+if(!(uint(r6) <uint(r3))) //_LBB738_80
+{
+__label__ = 82;
+break _81;
+}
+}
+	if(r2 ==0) //_LBB738_92
+{
+__label__ = 83;
+}
+else{
+	r6 = (r2 + -1)|0;
+	r0 = (r7 + 1)|0;
+	r2 = 46;
+	heap8[r7] = r2;
+	if(r5 ==0) //_LBB738_83
+{
+if(!(r4 !=0)) //_LBB738_85
+{
+	r3 = (r1 + r3)|0;
+	r3 = (r3 + 1)|0;
+	r4 = (r3 - r0)|0;
+}
+}
+else{
+	r3 = r4 == 0 ? r3 : r4;
+	r3 = (r1 + r3)|0;
+	r3 = (r3 + 1)|0;
+	r4 = (r3 - r0)|0;
+}
+	if(uint(r4) >uint(r6)) //_LBB738_92
+{
+__label__ = 83;
+}
+else{
+	if(r4 !=0) //_LBB738_88
+{
+	r3 = (r4 + 1)|0;
+	r6 = (r7 + 1)|0;
+	f3 =                        10;
+_99: while(true){
+	f0 = f1/f2;
+	r0 = f0|0;
+	r2 = r0 << 24;
+	r2 = r2 >> 24;
+	f0 = r2; //fitod r2, f0
+	f0 = f0*f2;
+	r4 = (r4 + -1)|0;
+	f2 = f2/f3;
+	f1 = f1-f0;
+	r2 = (r6 + 1)|0;
+	r0 = (r0 + 48)|0;
+	heap8[r6] = r0;
+	r6 = r2;
+if(!(r4 !=0)) //_LBB738_89
+{
+break _99;
+}
+}
+	r7 = (r7 + r3)|0;
+__label__ = 82;
+}
+else{
+	r7 = r0;
+__label__ = 82;
+}
+}
+}
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 83:
+	r1 = 0;
+	r_g0 = r1;
+	return;
+break;
+case 82:
+	r3 = 0;
+	heap8[r7] = r3;
+	r1 = (r7 - r1)|0;
+	r_g0 = r1;
+	return;
+break;
+}
+}
+else{
+	r3 = 1;
+	r5 = (r4 + 2)|0;
+	r4 = r4 == 0 ? r3 : r5;
+	r5 = 8;
+	r2 = uint(r4) > uint(r2) ? r5 : r4;
+	if(r2 ==0) //_LBB738_24
+{
+__label__ = 23;
+}
+else{
+	if(r0 <0) //_LBB738_25
+{
+	r0 = 45;
+	heap8[r1] = r0;
+	r0 = r3;
+__label__ = 25;
+}
+else{
+__label__ = 23;
+}
+}
+if (__label__ == 23){
+	r0 = 0;
+}
+	if(uint(r0) <uint(r2)) //_LBB738_28
+{
+	r5 = 48;
+_115: while(true){
+	r4 = (r0 + 1)|0;
+	heap8[r1+r0] = r5;
+	r0 = r4;
+if(!(r2 !=r4)) //_LBB738_29
+{
+break _115;
+}
+}
+	r0 = r2;
+}
+	r2 = 2;
+	r4 = heapU8[r1];
+	r2 = r4 == 48 ? r3 : r2;
+	r3 = 46;
+	r4 = 0;
+	heap8[r1+r2] = r3;
+	heap8[r1+r0] = r4;
+	r_g0 = r0;
+	return;
+}
+break;
+case 5:
+	if(r2 >0) //_LBB738_7
+{
+	r0 = (r2 + -1)|0;
+	r3 = 2;
+	r4 = 0;
+	r5 = (r2 + 2)|0;
+	r0 = uint(r0) > uint(r3) ? r0 : r3;
+	r3 = (r4 - r2)|0;
+	r0 = (r5 - r0)|0;
+	r4 = _2E_str7654;
+	r5 = r1;
+_122: while(true){
+	r6 = heapU8[r4];
+	r0 = (r0 + -1)|0;
+	r7 = (r5 + 1)|0;
+	r4 = (r4 + 1)|0;
+	heap8[r5] = r6;
+	r5 = r7;
+if(!(r0 !=0)) //_LBB738_8
+{
+break _122;
+}
+}
+	r0 = -3;
+	r4 = 3;
+	r0 = uint(r3) > uint(r0) ? r2 : r4;
+}
+else{
+	r0 = 0;
+}
+	if(r0 >=r2) //_LBB738_12
+{
+__label__ = 12;
+}
+else{
+__label__ = 11;
+}
+break;
+}
+} while(0);
+if (__label__ == 11){
+	r2 = 0;
+	heap8[r1+r0] = r2;
+	r0 = (r0 + 1)|0;
+}
+	r_g0 = r0;
+	return;
+}
+
+function write_pad(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	if(r0 >0) //_LBB739_2
+{
+	r1 = heap32[(fp)];
+	r1 = r1 >> 2;
+	r2 = heap32[(r1)];
+	r2 = (r2 + r0)|0;
+	if(uint(r2) >=uint(r0)) //_LBB739_4
+{
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+3)];
+	if(uint(r0) >uint(15)) //_LBB739_6
+{
+	r4 = 48;
+	r4 = r3 == r4;
+	r4 = r4 & 1;
+	r5 = _ZL8pad_line;
+	r4 = r4 << 5;
+	r4 = (r5 + r4)|0;
+	r5 = 0;
+_7: while(true){
+	r6 = r2 >> 2;
+	r7 = heap32[(r6+1)];
+	r6 = heap32[(r6)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = 16;
+	heap32[(g0+2)] = r6;
+	r5 = (r5 + -16)|0;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	r6 = (r0 + r5)|0;
+if(!(uint(r6) >uint(15))) //_LBB739_7
+{
+break _7;
+}
+}
+	r0 = 0;
+	r4 = (r0 - r5)|0;
+	if(r6 ==0) //_LBB739_10
+{
+__label__ = 11;
+}
+else{
+	r0 = r6;
+__label__ = 10;
+}
+}
+else{
+	r4 = 0;
+__label__ = 10;
+}
+if (__label__ == 10){
+	r5 = 48;
+	r2 = r2 >> 2;
+	r3 = r3 == r5;
+	r3 = r3 & 1;
+	r5 = heap32[(r2+1)];
+	r2 = heap32[(r2)];
+	r6 = _ZL8pad_line;
+	r3 = r3 << 5;
+	r3 = (r6 + r3)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	r4 = (r4 + r0)|0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+	r0 = heap32[(r1)];
+	r0 = (r0 + r4)|0;
+	heap32[(r1)] = r0;
+	r0 = 0;
+}
+else{
+	r0 = -1;
+}
+}
+else{
+	r0 = 0;
+}
+	r_g0 = r0;
+	return;
+}
+
+function sgetc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = heapU8[r1];
+	r1 = (r1 + 1)|0;
+	heap32[(r0)] = r1;
+	if(r2 ==0) //_LBB740_2
+{
+	r0 = -1;
+	r_g0 = r0;
+	return;
+}
+else{
+	r_g0 = r2;
+	return;
+}
+}
+
+function sputc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = (r1 + -1)|0;
+	heap32[(r0)] = r2;
+	r0 = heapU8[r1+-1];
+	r1 = heap32[(fp)];
+	r2 = -1;
+	r0 = r0 == r1 ? r1 : r2;
+	r_g0 = r0;
+	return;
+}
+
+function memset(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp)];
+if(!(r0 ==0)) //_LBB742_3
+{
+	r2 = heap32[(fp+1)];
+	r3 = r1;
+_3: while(true){
+	r0 = (r0 + -1)|0;
+	r4 = (r3 + 1)|0;
+	heap8[r3] = r2;
+	r3 = r4;
+	if(r0 !=0) //_LBB742_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	r_g0 = r1;
+	return;
+}
+
+function memcpy(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = r1 ^ r0;
+	r3 = r3 & 3;
+_1: do {
+	if(r3 !=0) //_LBB743_2
+{
+__label__ = 2;
+}
+else{
+	if(uint(r2) >uint(4)) //_LBB743_3
+{
+	r3 = r0 & 3;
+	if(r3 !=0) //_LBB743_5
+{
+	r3 = (r3 + -5)|0;
+	r4 = r2 ^ -1;
+	r3 = uint(r3) < uint(r4) ? r4 : r3;
+	r4 = (r3 + r2)|0;
+	r3 = r3 ^ -1;
+	r4 = (r4 + 1)|0;
+	r6 = (r1 + r3)|0;
+	r5 = (r0 + r3)|0;
+	r3 = r0 | -4;
+	r7 = r0;
+_6: while(true){
+	if(r3 ==0) //_LBB743_9
+{
+break _6;
+}
+else{
+	if(r2 ==0) //_LBB743_20
+{
+__label__ = 19;
+break _1;
+}
+else{
+	r8 = heapU8[r1];
+	r2 = (r2 + -1)|0;
+	r3 = (r3 + 1)|0;
+	r1 = (r1 + 1)|0;
+	r9 = (r7 + 1)|0;
+	heap8[r7] = r8;
+	r7 = r9;
+}
+}
+}
+	if(r4 ==-1) //_LBB743_20
+{
+__label__ = 19;
+break _1;
+}
+else{
+	r2 = r4;
+	r1 = r6;
+}
+}
+else{
+	r5 = r0;
+}
+	if(uint(r2) >uint(3)) //_LBB743_13
+{
+	r6 = r5;
+	r4 = r1;
+_16: while(true){
+	r7 = r4 >> 2;
+	r2 = (r2 + -4)|0;
+	r4 = (r4 + 4)|0;
+	r3 = (r6 + 4)|0;
+	r6 = r6 >> 2;
+	r7 = heap32[(r7)];
+	heap32[(r6)] = r7;
+	r6 = r3;
+	if(uint(r2) >uint(3)) //_LBB743_14
+{
+continue _16;
+}
+else{
+__label__ = 15;
+break _1;
+}
+}
+}
+else{
+	r4 = r1;
+	r3 = r5;
+__label__ = 15;
+}
+}
+else{
+__label__ = 2;
+}
+}
+} while(0);
+if (__label__ == 2){
+	r3 = 0;
+	r4 = r3;
+	r5 = r0;
+__label__ = 15;
+}
+_21: do {
+if (__label__ == 15){
+if(!(r2 ==0)) //_LBB743_20
+{
+	if(r3 !=0) //_LBB743_18
+{
+	r1 = r4;
+	r5 = r3;
+}
+_26: while(true){
+	r3 = heapU8[r1];
+	r2 = (r2 + -1)|0;
+	r4 = (r5 + 1)|0;
+	r1 = (r1 + 1)|0;
+	heap8[r5] = r3;
+	r5 = r4;
+	if(r2 !=0) //_LBB743_19
+{
+continue _26;
+}
+else{
+break _21;
+}
+}
+}
+}
+} while(0);
+	r_g0 = r0;
+	return;
+}
+
+function swrite(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+1)];
+	r2 = heap32[(r0+2)];
+	r3 = heap32[(fp+1)];
+if(!(r2 ==r1)) //_LBB744_5
+{
+	r2 = (r2 - r1)|0;
+	r4 = heap32[(r0)];
+	r2 = uint(r2) < uint(r3) ? r2 : r3;
+	if(r4 !=0) //_LBB744_3
+{
+	r5 = heap32[(fp)];
+	r1 = (r4 + r1)|0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r2;
+	memcpy(i7);
+	r1 = heap32[(r0+1)];
+	r4 = heap32[(r0)];
+	r1 = (r1 + r2)|0;
+	r5 = 0;
+	heap8[r4+r1] = r5;
+	r1 = heap32[(r0+1)];
+}
+	r1 = (r1 + r2)|0;
+	heap32[(r0+1)] = r1;
+}
+	r_g0 = r3;
+	return;
+}
+
+function __sync_fetch_and_add_4(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(r0)];
+	r1 = (r2 + r1)|0;
+	heap32[(r0)] = r1;
+	r_g0 = r2;
+	return;
+}
+
+function __muldi3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	if(r0 <0) //_LBB746_2
+{
+	r5 = 0;
+	r4 = 1;
+	r0 = (r5 - r0)|0;
+	r6 = r1 != 0 ? r4 : r5;
+	r1 = (r5 - r1)|0;
+	r0 = (r0 - r6)|0;
+}
+else{
+	r4 = 0;
+}
+	if(r3 <0) //_LBB746_5
+{
+	r5 = 0;
+	r6 = 1;
+	r3 = (r5 - r3)|0;
+	r6 = r2 != 0 ? r6 : r5;
+	r4 = r4 ^ 1;
+	r2 = (r5 - r2)|0;
+	r3 = (r3 - r6)|0;
+}
+	r5 = r2 & 65535;
+	r6 = r1 & 65535;
+	r7 = r3 | r0;
+	r8 = (r5 * r6)|0;
+	r9 = r2 | r1;
+	r9 = r9 >>> 16;
+	if(r9 !=0) //_LBB746_8
+{
+	r9 = r1 >>> 16;
+	r10 = r2 >>> 16;
+	r11 = (r10 - r5)|0;
+	r12 = (r5 - r10)|0;
+	r13 = (r6 - r9)|0;
+	r14 = (r9 - r6)|0;
+	r15 = (r10 * r9)|0;
+	r11 = uint(r5) < uint(r10) ? r11 : r12;
+	r12 = uint(r9) < uint(r6) ? r13 : r14;
+	r11 = (r11 * r12)|0;
+	r12 = r15 >>> 16;
+	r12 = (r12 + r15)|0;
+	r13 = r15 << 16;
+	r14 = r11 << 16;
+	r6 = uint(r9) < uint(r6);
+	r5 = uint(r5) < uint(r10);
+	r5 = r6 ^ r5;
+	r5 = r5 & 1;
+	if(r5 ==0) //_LBB746_10
+{
+	r5 = (r14 + r13)|0;
+	r6 = uint(r5) < uint(r13);
+	r11 = r11 >>> 16;
+	r11 = (r11 + r12)|0;
+	r6 = r6 & 1;
+	r11 = (r11 + r6)|0;
+}
+else{
+	r5 = (r13 - r14)|0;
+	r11 = r11 >>> 16;
+	r14 = -1;
+	r6 = 0;
+	r11 = (r12 - r11)|0;
+	r12 = uint(r5) > uint(r13) ? r14 : r6;
+	r11 = (r11 + r12)|0;
+}
+	r6 = r8 << 16;
+	r6 = (r5 + r6)|0;
+	r9 = (r6 + r8)|0;
+	r5 = uint(r6) < uint(r5);
+	r6 = r8 >>> 16;
+	r8 = uint(r9) < uint(r8);
+	r6 = (r11 + r6)|0;
+	r5 = r5 & 1;
+	r5 = (r6 + r5)|0;
+	r8 = r8 & 1;
+	r5 = (r5 + r8)|0;
+	r8 = r9;
+}
+else{
+	r5 = 0;
+}
+	if(r7 !=0) //_LBB746_14
+{
+	r6 = (r3 - r2)|0;
+	r7 = (r2 - r3)|0;
+	r9 = (r1 - r0)|0;
+	r10 = (r0 - r1)|0;
+	r6 = uint(r2) < uint(r3) ? r6 : r7;
+	r7 = uint(r0) < uint(r1) ? r9 : r10;
+	r1 = uint(r0) < uint(r1);
+	r2 = uint(r2) < uint(r3);
+	r9 = 0;
+	r6 = (r6 * r7)|0;
+	r1 = r1 ^ r2;
+	r2 = (r9 - r6)|0;
+	r1 = r1 != 0 ? r2 : r6;
+	r0 = (r3 * r0)|0;
+	r0 = (r1 + r0)|0;
+	r0 = (r0 + r8)|0;
+	r5 = (r0 + r5)|0;
+}
+	r0 = 0;
+	r1 = 1;
+	r2 = (r0 - r5)|0;
+	r1 = r8 != 0 ? r1 : r0;
+	r0 = (r0 - r8)|0;
+	r1 = (r2 - r1)|0;
+	r0 = r4 == 0 ? r8 : r0;
+	r1 = r4 == 0 ? r5 : r1;
+	r_g0 = r0;
+	r_g1 = r1;
+	return;
+}
+
+function __fixdfdi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = sp + 0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = r0 >>> 20;
+	r1 = r1 & 2047;
+	r2 = (r1 + -1023)|0;
+	if(r2 <0) //_LBB747_5
+{
+	r0 = 0;
+	r_g0 = r0;
+	r_g1 = r0;
+	return;
+}
+else{
+	r3 = heap32[(fp)];
+	r4 = r0 & 1048575;
+	r0 = r0 >> 31;
+	r4 = r4 | 1048576;
+	if(r2 <53) //_LBB747_3
+{
+	r2 = 1075;
+	r1 = (r2 - r1)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	__lshrdi3(i7);
+	r1 = r_g0;
+	r3 = r_g1;
+}
+else{
+	r1 = (r1 + -1075)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	__ashldi3(i7);
+	r1 = r_g0;
+	r3 = r_g1;
+}
+	r2 = r3 ^ r0;
+	r1 = r1 ^ r0;
+	r3 = 1;
+	r4 = 0;
+	r2 = (r2 - r0)|0;
+	r3 = uint(r1) < uint(r0) ? r3 : r4;
+	r0 = (r1 - r0)|0;
+	r1 = (r2 - r3)|0;
+	r_g0 = r0;
+	r_g1 = r1;
+	return;
+}
+}
+
+function __floatdidf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var f0;
+	var f1;
+	var f2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	f0 = r0; //fitod r0, f0
+	f1 =                4294967296;
+	f2 = uint(r1); //fuitod r1, f2
+	f0 = f0*f1;
+	f0 = f2+f0;
+	f_g0 = f0;
+	return;
+}
+
+function __lshrdi3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 & 32;
+	if(r2 ==0) //_LBB749_2
+{
+	r2 = heap32[(fp)];
+if(!(r0 ==0)) //_LBB749_4
+{
+	r3 = 32;
+	r3 = (r3 - r0)|0;
+	r3 = r1 << r3;
+	r2 = r2 >>> r0;
+	r2 = r3 | r2;
+	r1 = r1 >>> r0;
+}
+	r_g0 = r2;
+	r_g1 = r1;
+	return;
+}
+else{
+	r0 = (r0 + -32)|0;
+	r0 = r1 >>> r0;
+	r1 = 0;
+	r_g0 = r0;
+	r_g1 = r1;
+	return;
+}
+}
+
+function __fixsfdi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >>> 23;
+	r1 = r1 & 255;
+	r2 = (r1 + -127)|0;
+	if(r2 <0) //_LBB750_5
+{
+	r0 = 0;
+	r_g0 = r0;
+	r_g1 = r0;
+	return;
+}
+else{
+	r3 = r0 & 8388607;
+	r0 = r0 >> 31;
+	r3 = r3 | 8388608;
+	r4 = 0;
+	if(r2 <24) //_LBB750_3
+{
+	r2 = 150;
+	r1 = (r2 - r1)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	__lshrdi3(i7);
+	r1 = r_g0;
+	r3 = r_g1;
+}
+else{
+	r1 = (r1 + -150)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	__ashldi3(i7);
+	r1 = r_g0;
+	r3 = r_g1;
+}
+	r2 = r3 ^ r0;
+	r1 = r1 ^ r0;
+	r3 = 1;
+	r2 = (r2 - r0)|0;
+	r3 = uint(r1) < uint(r0) ? r3 : r4;
+	r0 = (r1 - r0)|0;
+	r1 = (r2 - r3)|0;
+	r_g0 = r0;
+	r_g1 = r1;
+	return;
+}
+}
+
+function __ashldi3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp)];
+	r2 = r0 & 32;
+	if(r2 ==0) //_LBB751_2
+{
+	r2 = heap32[(fp+1)];
+if(!(r0 ==0)) //_LBB751_4
+{
+	r3 = 32;
+	r3 = (r3 - r0)|0;
+	r2 = r2 << r0;
+	r3 = r1 >>> r3;
+	r1 = r1 << r0;
+	r2 = r2 | r3;
+}
+	r_g0 = r1;
+	r_g1 = r2;
+	return;
+}
+else{
+	r0 = (r0 + -32)|0;
+	r2 = 0;
+	r0 = r1 << r0;
+	r_g0 = r2;
+	r_g1 = r0;
+	return;
+}
+}
+
+function __ashrdi3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 & 32;
+	if(r2 ==0) //_LBB752_2
+{
+	r2 = heap32[(fp)];
+if(!(r0 ==0)) //_LBB752_4
+{
+	r3 = 32;
+	r3 = (r3 - r0)|0;
+	r3 = r1 << r3;
+	r2 = r2 >>> r0;
+	r2 = r3 | r2;
+	r1 = r1 >> r0;
+}
+	r_g0 = r2;
+	r_g1 = r1;
+	return;
+}
+else{
+	r0 = (r0 + -32)|0;
+	r0 = r1 >> r0;
+	r1 = r1 >> 31;
+	r_g0 = r0;
+	r_g1 = r1;
+	return;
+}
+}
+
+function __fixunsdfdi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = sp + 0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = r0 >>> 20;
+	r1 = r1 & 2047;
+	r2 = (r1 + -1023)|0;
+if(!(r2 <0)) //_LBB753_5
+{
+if(!(r0 <0)) //_LBB753_5
+{
+	r3 = heap32[(fp)];
+	r0 = r0 & 1048575;
+	r0 = r0 | 1048576;
+	if(r2 <53) //_LBB753_4
+{
+	r2 = 1075;
+	r1 = (r2 - r1)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r1;
+	__lshrdi3(i7);
+	return;
+}
+else{
+	r1 = (r1 + -1075)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r1;
+	__ashldi3(i7);
+	return;
+}
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	r_g1 = r0;
+	return;
+}
+
+function __fixunssfdi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >>> 23;
+	r1 = r1 & 255;
+	r2 = (r1 + -127)|0;
+if(!(r2 <0)) //_LBB754_5
+{
+if(!(r0 <0)) //_LBB754_5
+{
+	r0 = r0 & 8388607;
+	r0 = r0 | 8388608;
+	r3 = 0;
+	if(r2 <24) //_LBB754_4
+{
+	r2 = 150;
+	r1 = (r2 - r1)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r1;
+	__lshrdi3(i7);
+	return;
+}
+else{
+	r1 = (r1 + -150)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r1;
+	__ashldi3(i7);
+	return;
+}
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	r_g1 = r0;
+	return;
+}
+
+function _ZNK14CFileInterface12IsFileSystemEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11CFileStdout5freadEPvjj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = -1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11CFileStdout5ftellEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11CFileStdout4feofEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11CFileStdout5fseekEli(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11CFileStdout6ungetcEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11CFileStdout6fflushEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11CFileStdout6fcloseEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK11CFileSystem12IsFileSystemEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11CFileSystem5freadEPvjj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r0;
+	mandreel_fread(i7);
+	return;
+}
+
+function _ZN11CFileSystem6fwriteEPKvjj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = -1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11CFileSystem6fflushEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN11CFileSystem6fcloseEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	heap32[(g0)] = r0;
+	mandreel_fclose(i7);
+	return;
+}
+
+function _ZN11CFileSystem5ftellEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	heap32[(g0)] = r0;
+	mandreel_ftell(i7);
+	return;
+}
+
+function _ZN11CFileSystem4feofEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	heap32[(g0)] = r0;
+	mandreel_feof(i7);
+	return;
+}
+
+function _ZN11CFileSystem5fseekEli(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	mandreel_fseek(i7);
+	return;
+}
+
+function _ZN11CFileSystem6ungetcEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = heap32[(fp+1)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	mandreel_ungetc(i7);
+	return;
+}
+
+function _ZN7CFileLS5freadEPvjj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp+3)];
+	r3 = heap32[(r0+4)];
+	r4 = heap32[(r0+2)];
+	r2 = (r2 * r1)|0;
+	r5 = (r3 + r2)|0;
+	r6 = (r4 - r3)|0;
+	r2 = r5 > r4 ? r6 : r2;
+	if(r2 <0) //_LBB772_2
+{
+	r0 = -1;
+	r_g0 = r0;
+	return;
+}
+else{
+	r4 = heap32[(fp+1)];
+	r5 = heap32[(r0+6)];
+	r3 = (r5 + r3)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r2;
+	memcpy(i7);
+	r3 = heap32[(r0+4)];
+	r3 = (r3 + r2)|0;
+	heap32[(r0+4)] = r3;
+	r0 = Math.floor(uint(r2) /uint(r1));
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZN7CFileLS5ftellEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+4)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN7CFileLS4feofEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+4)];
+	r0 = heap32[(r0+2)];
+	r0 = r1 >= r0;
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN7CFileLS5fseekEli(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+1)];
+_1: do {
+	if(r0 ==0) //_LBB775_4
+{
+	r1 = r1 >> 2;
+}
+else{
+	if(r0 ==1) //_LBB775_6
+{
+	r0 = r1 >> 2;
+	r1 = heap32[(r0+4)];
+	r1 = (r1 + r2)|0;
+	heap32[(r0+4)] = r1;
+}
+else{
+if(!(r0 !=2)) //_LBB775_7
+{
+	r1 = r1 >> 2;
+	r0 = heap32[(r1+2)];
+	r2 = (r0 + r2)|0;
+break _1;
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+} while(0);
+	heap32[(r1+4)] = r2;
+	r1 = 0;
+	r_g0 = r1;
+	return;
+}
+
+function _ZN7CFileLS6ungetcEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = -1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN10CFileCloud5freadEPvjj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp+3)];
+	r3 = heap32[(r0+4)];
+	r4 = heap32[(r0+2)];
+	r2 = (r2 * r1)|0;
+	r5 = (r3 + r2)|0;
+	r6 = (r4 - r3)|0;
+	r2 = r5 > r4 ? r6 : r2;
+	if(r2 <0) //_LBB777_2
+{
+	r0 = -1;
+	r_g0 = r0;
+	return;
+}
+else{
+	r4 = heap32[(fp+1)];
+	r5 = heap32[(r0+6)];
+	r3 = (r5 + r3)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r2;
+	memcpy(i7);
+	r3 = heap32[(r0+4)];
+	r3 = (r3 + r2)|0;
+	heap32[(r0+4)] = r3;
+	r0 = Math.floor(uint(r2) /uint(r1));
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZN10CFileCloud5ftellEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+4)];
+	r_g0 = r0;
+	return;
+}
+
+function _ZN10CFileCloud4feofEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+4)];
+	r0 = heap32[(r0+2)];
+	r0 = r1 >= r0;
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN10CFileCloud5fseekEli(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+1)];
+_1: do {
+	if(r0 ==0) //_LBB780_4
+{
+	r1 = r1 >> 2;
+}
+else{
+	if(r0 ==1) //_LBB780_6
+{
+	r0 = r1 >> 2;
+	r1 = heap32[(r0+4)];
+	r1 = (r1 + r2)|0;
+	heap32[(r0+4)] = r1;
+}
+else{
+if(!(r0 !=2)) //_LBB780_7
+{
+	r1 = r1 >> 2;
+	r0 = heap32[(r1+2)];
+	r2 = (r0 + r2)|0;
+break _1;
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+} while(0);
+	heap32[(r1+4)] = r2;
+	r1 = 0;
+	r_g0 = r1;
+	return;
+}
+
+function _ZN10CFileCloud6ungetcEi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = -1;
+	r_g0 = r0;
+	return;
+}
+
+function __fwrite(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+1)];
+if(!(uint(r0) >uint(9))) //_LBB782_2
+{
+	r0 = _ZL13s_file_stdout;
+}
+	r3 = r0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+2)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 1;
+	heap32[(g0+3)] = r2;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	return;
+}
+
+function _ZN7CFileLS6fwriteEPKvjj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+3)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+1)];
+	r2 = (r1 * r2)|0;
+	r4 = heap32[(r0+4)];
+	r5 = (r4 + r2)|0;
+	r6 = heap32[(r0+3)];
+	if(r5 >r6) //_LBB783_2
+{
+	r4 = (r2 + r4)|0;
+	r4 = (r4 + 131072)|0;
+	heap32[(r0+3)] = r4;
+	r5 = heap32[(r0+6)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	realloc(i7);
+	r5 = r_g0;
+	heap32[(r0+6)] = r5;
+	r4 = heap32[(r0+4)];
+}
+else{
+	r5 = heap32[(r0+6)];
+}
+	r4 = (r5 + r4)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r2;
+	memcpy(i7);
+	r3 = heap32[(r0+4)];
+	r2 = (r3 + r2)|0;
+	heap32[(r0+4)] = r2;
+	r3 = heap32[(r0+5)];
+if(!(r2 <=r3)) //_LBB783_5
+{
+	heap32[(r0+5)] = r2;
+}
+	r_g0 = r1;
+	return;
+}
+
+function _ZN7CFileLS6fflushEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+5];
+if(!(r1 ==0)) //_LBB784_2
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+5)];
+	r1 = heap32[(r1+6)];
+	r0 = (r0 + 28)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	mandreel_writels(i7);
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN7CFileLS6fcloseEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+5];
+if(!(r1 ==0)) //_LBB785_2
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+5)];
+	r1 = heap32[(r1+6)];
+	r3 = (r0 + 28)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	mandreel_writels(i7);
+}
+	r1 = 0;
+	r2 = r0 >> 2;
+	heap8[r0+4] = r1;
+	r0 = heap32[(r2+6)];
+	heap32[(g0)] = r0;
+	free(i7);
+	r_g0 = r1;
+	return;
+}
+
+function _ZN10CFileCloud6fwriteEPKvjj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+3)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+1)];
+	r2 = (r1 * r2)|0;
+	r4 = heap32[(r0+4)];
+	r5 = (r4 + r2)|0;
+	r6 = heap32[(r0+3)];
+	if(r5 >r6) //_LBB786_2
+{
+	r4 = (r2 + r4)|0;
+	r4 = (r4 + 131072)|0;
+	heap32[(r0+3)] = r4;
+	r5 = heap32[(r0+6)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	realloc(i7);
+	r5 = r_g0;
+	heap32[(r0+6)] = r5;
+	r4 = heap32[(r0+4)];
+}
+else{
+	r5 = heap32[(r0+6)];
+}
+	r4 = (r5 + r4)|0;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r2;
+	memcpy(i7);
+	r3 = heap32[(r0+4)];
+	r2 = (r3 + r2)|0;
+	heap32[(r0+4)] = r2;
+	r3 = heap32[(r0+5)];
+if(!(r2 <=r3)) //_LBB786_5
+{
+	heap32[(r0+5)] = r2;
+}
+	r_g0 = r1;
+	return;
+}
+
+function _ZN10CFileCloud6fflushEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+5];
+if(!(r1 ==0)) //_LBB787_2
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+5)];
+	r3 = r2 << 1;
+	heap32[(g0)] = r3;
+	malloc(i7);
+	r4 = r_g0;
+	r1 = heap32[(r1+6)];
+	r5 = sp + -4;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r5;
+	_ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7);
+	r0 = (r0 + 28)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r_g0;
+	mandreel_writecloud(i7);
+	heap32[(g0)] = r4;
+	free(i7);
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN10CFileCloud6fcloseEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0+5];
+if(!(r1 ==0)) //_LBB788_2
+{
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+5)];
+	r3 = r2 << 1;
+	heap32[(g0)] = r3;
+	malloc(i7);
+	r4 = r_g0;
+	r1 = heap32[(r1+6)];
+	r5 = sp + -4;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r5;
+	_ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7);
+	r2 = (r0 + 28)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r_g0;
+	mandreel_writecloud(i7);
+	heap32[(g0)] = r4;
+	free(i7);
+}
+	r1 = 0;
+	r2 = r0 >> 2;
+	heap8[r0+4] = r1;
+	r0 = heap32[(r2+6)];
+	heap32[(g0)] = r0;
+	free(i7);
+	r_g0 = r1;
+	return;
+}
+
+function __sync_val_compare_and_swap_4(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0)];
+	r2 = heap32[(fp+1)];
+if(!(r1 !=r2)) //_LBB789_2
+{
+	r2 = heap32[(fp+2)];
+	heap32[(r0)] = r2;
+}
+	r_g0 = r1;
+	return;
+}
+
+function _ZN11CFileStdout6fwriteEPKvjj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16392;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp+3)];
+	r0 = (r1 * r0)|0;
+	if(r0 !=0) //_LBB790_2
+{
+	r2 = heap32[(fp+1)];
+	r3 = sp + -16384;
+	r4 = r0;
+_3: while(true){
+	r5 = heapU8[r2];
+	r4 = (r4 + -1)|0;
+	r2 = (r2 + 1)|0;
+	r6 = (r3 + 1)|0;
+	heap8[r3] = r5;
+	r3 = r6;
+if(!(r4 !=0)) //_LBB790_3
+{
+break _3;
+}
+}
+	r2 = sp + -16384;
+	r0 = (r2 + r0)|0;
+}
+else{
+	r0 = sp + -16384;
+}
+	r2 = 0;
+	heap8[r0] = r2;
+	r0 = sp + -16384;
+	heap32[(g0)] = r0;
+	puts(i7);
+	r_g0 = r1;
+	return;
+}
+
+function fopen(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+var __label__ = 0;
+	i7 = sp + -2064;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heapU8[r0];
+	r2 = 46;
+	r3 = 92;
+	r4 = heapU8[r0+1];
+	r5 = 47;
+	r1 = r1 == r2;
+	r2 = r4 == r3;
+	r1 = r1 & r2;
+	r2 = r4 == r5;
+	r1 = r1 | r2;
+	r2 = (r0 + 1)|0;
+	r1 = r1 != 0 ? r2 : r0;
+	r2 = heapU8[r1];
+	r3 = heap32[(fp+1)];
+_1: do {
+	if(r2 !=0) //_LBB791_2
+{
+	r4 = sp + -2048;
+	r1 = (r1 + 1)|0;
+	r6 = 0;
+	r8 = 26;
+_3: while(true){
+	r7 = r2 & 255;
+	if(r7 ==47) //_LBB791_5
+{
+__label__ = 5;
+}
+else{
+	if(r7 !=92) //_LBB791_8
+{
+	r6 = r2 << 24;
+	r6 = r6 >> 24;
+	r7 = (r6 + -65)|0;
+	r9 = (r2 + 32)|0;
+	r10 = (r4 + 1)|0;
+	r6 = 0;
+	r2 = uint(r7) < uint(r8) ? r9 : r2;
+	heap8[r4] = r2;
+	r4 = r10;
+__label__ = 9;
+}
+else{
+__label__ = 5;
+}
+}
+if (__label__ == 5){
+	r2 = r6 & 255;
+	heap8[r4] = r5;
+	if(r2 ==0) //_LBB791_7
+{
+	r4 = (r4 + 1)|0;
+	r6 = 1;
+}
+else{
+	r6 = 1;
+}
+}
+	r2 = heapU8[r1];
+	if(r2 !=0) //_LBB791_11
+{
+	r1 = (r1 + 1)|0;
+continue _3;
+}
+else{
+break _1;
+}
+}
+}
+else{
+	r4 = sp + -2048;
+}
+} while(0);
+	r1 = 0;
+	heap8[r4] = r1;
+	r2 = sp + -2048;
+	r4 = _2E_str33679;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = 4;
+	strncmp(i7);
+	r4 = r_g0;
+_17: do {
+	if(r4 !=0) //_LBB791_29
+{
+	r4 = _2E_str34680;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = 4;
+	strncmp(i7);
+	r4 = r_g0;
+	if(r4 ==0) //_LBB791_31
+{
+	heap32[(g0)] = 0;
+	_Z30mandreel_fopen_enable_checkfatb(i7);
+	r0 = _2E_str31677;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r0 = r_g0;
+_21: do {
+	if(r0 !=0) //_LBB791_33
+{
+	r0 = _2E_str4651;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r0 = r_g0;
+	if(r0 ==0) //_LBB791_32
+{
+__label__ = 30;
+}
+else{
+	r0 = _2E_str5652;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB791_36
+{
+	r0 = _2E_str32678;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB791_35
+{
+	r4 = heapU8[r3];
+	r0 = 119;
+	r3 = 114;
+	r0 = r4 == r0;
+	r5 = r4 == r3;
+	r3 = r0 & 1;
+	r0 = r5 & 1;
+	if(r4 ==114) //_LBB791_39
+{
+__label__ = 36;
+break _21;
+}
+else{
+__label__ = 38;
+break _21;
+}
+}
+}
+	r0 = 1;
+	r1 = 0;
+	r3 = r0;
+__label__ = 38;
+}
+}
+else{
+__label__ = 30;
+}
+} while(0);
+if (__label__ == 30){
+	r0 = 1;
+	r3 = r0;
+__label__ = 36;
+}
+if (__label__ == 36){
+	heap32[(g0)] = r2;
+	mandreel_opencloud(i7);
+	r1 = r_g0;
+	if(r1 ==-1) //_LBB791_41
+{
+	r4 = 0;
+break _17;
+}
+}
+	heap32[(g0)] = 284;
+	_Znwj(i7);
+	r4 = r_g0;
+	r5 = _ZTV10CFileCloud;
+	r6 = r4 >> 2;
+	r5 = (r5 + 8)|0;
+	r7 = 1;
+	heap32[(r6)] = r5;
+	heap8[r4+4] = r7;
+	heap32[(r6+4)] = 0;
+	heap32[(r6+6)] = 0;
+	heap32[(r6+2)] = r1;
+	heap8[r4+5] = r3;
+	heap8[r4+6] = r0;
+	heap32[(r6+5)] = 0;
+	r0 = (r4 + 28)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	strcpy(i7);
+	if(r1 ==0) //_LBB791_44
+{
+	r0 = r3 & 255;
+	if(r0 ==0) //_LBB791_46
+{
+break _17;
+}
+else{
+	r0 = r4 >> 2;
+	heap32[(r0+3)] = 131072;
+	heap32[(g0)] = 131072;
+	malloc(i7);
+	heap32[(r0+6)] = r_g0;
+}
+}
+else{
+	r3 = (r1 + 131072)|0;
+	r2 = r4 >> 2;
+	heap32[(r2+3)] = r3;
+	heap32[(g0)] = r3;
+	malloc(i7);
+	heap32[(r2+6)] = r_g0;
+	r3 = (r1 + 4)|0;
+	heap32[(g0)] = r3;
+	malloc(i7);
+	r3 = r_g0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r1;
+	mandreel_readcloud(i7);
+	r0 = heap32[(r2+3)];
+	r5 = heap32[(r2+6)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r0;
+	_ZN12mandreel_b6410b64_decodeEPKcjPvj(i7);
+	r0 = r_g0;
+	heap32[(g0)] = r3;
+	free(i7);
+	heap32[(r2+2)] = r0;
+	heap32[(r2+5)] = r0;
+}
+}
+else{
+	r1 = r3;
+_39: while(true){
+	r4 = heapU8[r1];
+	if(r4 ==0) //_LBB791_51
+{
+__label__ = 46;
+break _39;
+}
+else{
+	if(r4 ==87) //_LBB791_50
+{
+__label__ = 45;
+break _39;
+}
+else{
+	r1 = (r1 + 1)|0;
+	if(r4 !=119) //_LBB791_47
+{
+__label__ = 42;
+}
+else{
+__label__ = 45;
+break _39;
+}
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 46:
+	r0 = heapU8[sp+-2048];
+	if(r0 !=47) //_LBB791_53
+{
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	mandreel_fopen(i7);
+	r2 = r_g0;
+}
+else{
+	r2 = (r2 + 1)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	mandreel_fopen(i7);
+	r2 = r_g0;
+}
+	if(r2 ==0) //_LBB791_56
+{
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+else{
+	heap32[(g0)] = 8;
+	r0 = _ZTV11CFileSystem;
+	_Znwj(i7);
+	r3 = r_g0 >> 2;
+	r0 = (r0 + 8)|0;
+	heap32[(r3)] = r0;
+	heap32[(r3+1)] = r2;
+	return;
+}
+break;
+case 45:
+	r2 = _2E_str35681;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r3;
+	printf(i7);
+	r2 = 0;
+	r_g0 = r2;
+	return;
+break;
+}
+}
+}
+else{
+	heap32[(g0)] = 0;
+	_Z30mandreel_fopen_enable_checkfatb(i7);
+	r0 = _2E_str31677;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r0 = r_g0;
+_54: do {
+	if(r0 !=0) //_LBB791_15
+{
+	r0 = _2E_str4651;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r0 = r_g0;
+	if(r0 ==0) //_LBB791_14
+{
+__label__ = 13;
+}
+else{
+	r0 = _2E_str5652;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r0 = r_g0;
+	if(r0 !=0) //_LBB791_18
+{
+	r0 = _2E_str32678;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r0 = r_g0;
+if(!(r0 ==0)) //_LBB791_17
+{
+	r3 = heapU8[r3];
+	r0 = 119;
+	r1 = 114;
+	r0 = r3 == r0;
+	r4 = r3 == r1;
+	r1 = r0 & 1;
+	r0 = r4 & 1;
+	if(r3 ==114) //_LBB791_21
+{
+__label__ = 20;
+break _54;
+}
+else{
+	r3 = 0;
+__label__ = 22;
+break _54;
+}
+}
+}
+	r0 = 1;
+	r3 = 0;
+	r1 = r0;
+__label__ = 22;
+}
+}
+else{
+__label__ = 13;
+}
+} while(0);
+if (__label__ == 13){
+	r0 = 1;
+	r1 = r0;
+__label__ = 20;
+}
+if (__label__ == 20){
+	heap32[(g0)] = r2;
+	mandreel_openls(i7);
+	r3 = r_g0;
+	if(r3 ==-1) //_LBB791_23
+{
+	r4 = 0;
+break _17;
+}
+}
+	heap32[(g0)] = 284;
+	_Znwj(i7);
+	r4 = r_g0;
+	r5 = _ZTV7CFileLS;
+	r6 = r4 >> 2;
+	r5 = (r5 + 8)|0;
+	r7 = 1;
+	heap32[(r6)] = r5;
+	heap8[r4+4] = r7;
+	heap32[(r6+4)] = 0;
+	heap32[(r6+6)] = 0;
+	heap32[(r6+2)] = r3;
+	heap8[r4+5] = r1;
+	heap8[r4+6] = r0;
+	heap32[(r6+5)] = 0;
+	r0 = (r4 + 28)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	strcpy(i7);
+	if(r3 ==0) //_LBB791_26
+{
+	r0 = r1 & 255;
+if(!(r0 ==0)) //_LBB791_28
+{
+	r0 = r4 >> 2;
+	heap32[(r0+3)] = 131072;
+	heap32[(g0)] = 131072;
+	malloc(i7);
+	heap32[(r0+6)] = r_g0;
+}
+}
+else{
+	r1 = (r3 + 131072)|0;
+	r2 = r4 >> 2;
+	heap32[(r2+3)] = r1;
+	heap32[(g0)] = r1;
+	malloc(i7);
+	heap32[(r2+6)] = r_g0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r_g0;
+	heap32[(g0+2)] = r3;
+	mandreel_readls(i7);
+	heap32[(r2+5)] = r3;
+}
+}
+} while(0);
+	heap32[(g0)] = 1;
+	_Z30mandreel_fopen_enable_checkfatb(i7);
+	r_g0 = r4;
+	return;
+}
+
+function strtoul(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap8[r0];
+	r2 = r1 << 2;
+	r3 = my_ctype;
+	r2 = (r2 + r3)|0;
+	r4 = heap32[(fp+1)];
+	r2 = heapU8[r2+4];
+	r2 = r2 & 8;
+	if(r2 ==0) //_LBB792_2
+{
+	r2 = r0;
+}
+else{
+	r2 = r0;
+_4: while(true){
+	r1 = heap8[r2+1];
+	r5 = r1 << 2;
+	r5 = (r5 + r3)|0;
+	r2 = (r2 + 1)|0;
+	r5 = heapU8[r5+4];
+	r5 = r5 & 8;
+	if(r5 !=0) //_LBB792_3
+{
+continue _4;
+}
+else{
+break _4;
+}
+}
+}
+	r1 = r1 & 255;
+	if(r1 ==43) //_LBB792_8
+{
+	r2 = (r2 + 1)|0;
+	r1 = 0;
+}
+else{
+	if(r1 ==45) //_LBB792_7
+{
+	r2 = (r2 + 1)|0;
+	r1 = 1;
+}
+else{
+	r1 = 0;
+}
+}
+	r3 = 0;
+	r5 = r3;
+	r6 = r3;
+	r11 = -1;
+_14: while(true){
+	r8 = (r2 - r3)|0;
+	r7 = heapU8[r8];
+	if(r7 ==0) //_LBB792_14
+{
+break _14;
+}
+else{
+	if(uint(r7) <uint(65)) //_LBB792_10
+{
+	r9 = r7 & 255;
+	r10 = 58;
+	r7 = (r7 + -48)|0;
+	r7 = uint(r9) < uint(r10) ? r7 : r11;
+	r7 = r7 & 255;
+	if(uint(r7) >uint(9)) //_LBB792_14
+{
+break _14;
+}
+else{
+	r8 = r6 & 255;
+	r8 = (r8 * 10)|0;
+	r7 = (r7 + r8)|0;
+	r6 = r6 >>> 8;
+	r8 = r7 >>> 8;
+	r6 = (r6 * 10)|0;
+	r6 = (r8 + r6)|0;
+	r8 = 16777215;
+	r9 = 1;
+	r10 = r6 << 8;
+	r7 = r7 & 255;
+	r5 = uint(r6) > uint(r8) ? r9 : r5;
+	r6 = r10 | r7;
+	r3 = (r3 + -1)|0;
+continue _14;
+}
+}
+else{
+break _14;
+}
+}
+}
+	if(r3 ==0) //_LBB792_16
+{
+	_errno(i7);
+	r6 = 0;
+	r8 = r_g0 >> 2;
+	heap32[(r8)] = 22;
+	r8 = r0;
+}
+if(!(r4 ==0)) //_LBB792_19
+{
+	r0 = r4 >> 2;
+	heap32[(r0)] = r8;
+}
+	if(r5 ==0) //_LBB792_21
+{
+	r0 = 0;
+	r0 = (r0 - r6)|0;
+	r0 = r1 == 0 ? r6 : r0;
+	r_g0 = r0;
+	return;
+}
+else{
+	_errno(i7);
+	r1 = r_g0 >> 2;
+	heap32[(r1)] = 34;
+	r1 = -1;
+	r_g0 = r1;
+	return;
+}
+}
+
+function strtol(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap8[r0];
+	r2 = r1 << 2;
+	r3 = my_ctype;
+	r2 = (r2 + r3)|0;
+	r4 = heap32[(fp+1)];
+	r2 = heapU8[r2+4];
+	r2 = r2 & 8;
+	if(r2 ==0) //_LBB793_2
+{
+	r2 = r0;
+}
+else{
+	r2 = r0;
+_4: while(true){
+	r1 = heap8[r2+1];
+	r5 = r1 << 2;
+	r5 = (r5 + r3)|0;
+	r2 = (r2 + 1)|0;
+	r5 = heapU8[r5+4];
+	r5 = r5 & 8;
+	if(r5 !=0) //_LBB793_3
+{
+continue _4;
+}
+else{
+break _4;
+}
+}
+}
+	r1 = r1 & 255;
+	if(r1 ==45) //_LBB793_6
+{
+	r1 = heap8[r2+1];
+	r1 = r1 << 2;
+	r3 = (r1 + r3)|0;
+	r3 = heapU16[(r3+4)>>1];
+	r3 = r3 & 263;
+	if(r3 ==0) //_LBB793_5
+{
+__label__ = 5;
+}
+else{
+	r2 = (r2 + 1)|0;
+	r3 = -1;
+__label__ = 8;
+}
+}
+else{
+__label__ = 5;
+}
+if (__label__ == 5){
+	r3 = 0;
+}
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	strtoul(i7);
+	r1 = r_g0;
+if(!(r4 ==0)) //_LBB793_11
+{
+	r4 = r4 >> 2;
+	r5 = heap32[(r4)];
+if(!(r5 !=r2)) //_LBB793_11
+{
+	heap32[(r4)] = r0;
+}
+}
+	if(r1 >-1) //_LBB793_16
+{
+	r0 = 0;
+	r0 = (r0 - r1)|0;
+	r0 = r3 == 0 ? r1 : r0;
+	r_g0 = r0;
+	return;
+}
+else{
+	_errno(i7);
+	r0 = r_g0;
+if(!(r1 !=-2147483648)) //_LBB793_15
+{
+if(!(r3 ==0)) //_LBB793_15
+{
+	r0 = r0 >> 2;
+	heap32[(r0)] = 0;
+	r_g0 = r1;
+	return;
+}
+}
+	r1 = r0 >> 2;
+	r0 = 2147483647;
+	r2 = -2147483648;
+	heap32[(r1)] = 34;
+	r1 = r3 == 0 ? r0 : r2;
+	r_g0 = r1;
+	return;
+}
+}
+
+function __floatundidf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 | r1;
+	if(r2 ==0) //_LBB794_12
+{
+	f0 =                         0;
+	f_g0 = f0;
+	return;
+}
+else{
+	r2 = r0 >>> 1;
+	r3 = r1 >>> 1;
+	r2 = r0 | r2;
+	r3 = r1 | r3;
+	r4 = r2 >>> 2;
+	r5 = r3 >>> 2;
+	r2 = r2 | r4;
+	r3 = r3 | r5;
+	r4 = r2 >>> 4;
+	r5 = r3 >>> 4;
+	r2 = r2 | r4;
+	r3 = r3 | r5;
+	r4 = r2 >>> 8;
+	r5 = r3 >>> 8;
+	r2 = r2 | r4;
+	r3 = r3 | r5;
+	r4 = r2 >>> 16;
+	r5 = r3 >>> 16;
+	r2 = r2 | r4;
+	r3 = r3 | r5;
+	r4 = r2 ^ -1;
+	r5 = 1431655765;
+	r6 = r3 ^ -1;
+	r4 = r4 >>> 1;
+	r6 = r6 >>> 1;
+	r2 = r5 & (~r2);
+	r4 = r4 & 1431655765;
+	r2 = (r2 + r4)|0;
+	r3 = r5 & (~r3);
+	r4 = r6 & 1431655765;
+	r3 = (r3 + r4)|0;
+	r4 = r2 >>> 2;
+	r5 = r3 >>> 2;
+	r2 = r2 & 858993459;
+	r4 = r4 & 858993459;
+	r2 = (r2 + r4)|0;
+	r3 = r3 & 858993459;
+	r4 = r5 & 858993459;
+	r3 = (r3 + r4)|0;
+	r4 = r2 >>> 4;
+	r5 = r3 >>> 4;
+	r2 = r2 & 252645135;
+	r4 = r4 & 252645135;
+	r2 = (r2 + r4)|0;
+	r3 = r3 & 252645135;
+	r4 = r5 & 252645135;
+	r3 = (r3 + r4)|0;
+	r4 = r2 >>> 8;
+	r5 = r3 >>> 8;
+	r2 = r2 & 16711935;
+	r4 = r4 & 16711935;
+	r2 = (r2 + r4)|0;
+	r3 = r3 & 16711935;
+	r4 = r5 & 16711935;
+	r3 = (r3 + r4)|0;
+	r4 = r2 & 65535;
+	r2 = r2 >>> 16;
+	r2 = (r4 + r2)|0;
+	r4 = r3 & 65535;
+	r3 = r3 >>> 16;
+	r3 = (r4 + r3)|0;
+	r2 = (r2 + 32)|0;
+	r4 = 64;
+	r2 = r1 != 0 ? r3 : r2;
+	r3 = 63;
+	r4 = (r4 - r2)|0;
+	r2 = (r3 - r2)|0;
+	if(r4 <54) //_LBB794_10
+{
+	r3 = 53;
+	r3 = (r3 - r4)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	__ashldi3(i7);
+	r3 = r_g0;
+	r1 = r_g1;
+}
+else{
+	if(r4 ==54) //_LBB794_5
+{
+	r1 = r1 << 1;
+	r3 = r0 >>> 31;
+	r0 = r0 << 1;
+	r1 = r1 | r3;
+}
+else{
+	if(r4 !=55) //_LBB794_6
+{
+	r3 = (r4 + -55)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	__lshrdi3(i7);
+	r3 = r_g0;
+	r5 = r_g1;
+	r6 = 119;
+	r6 = (r6 - r4)|0;
+	heap32[(g0)] = -1;
+	heap32[(g0+1)] = -1;
+	heap32[(g0+2)] = r6;
+	__lshrdi3(i7);
+	r0 = r_g0 & r0;
+	r1 = r_g1 & r1;
+	r0 = r0 | r1;
+	r1 = 0;
+	r0 = r0 != r1;
+	r0 = r0 & 1;
+	r0 = r0 | r3;
+	r1 = r5;
+}
+}
+	r3 = r0 >>> 2;
+	r3 = r3 & 1;
+	r0 = r3 | r0;
+	r3 = (r0 + 1)|0;
+	r5 = 1;
+	r6 = 0;
+	r0 = uint(r3) < uint(r0) ? r5 : r6;
+	r0 = r3 == 0 ? r5 : r0;
+	r0 = (r1 + r0)|0;
+	r1 = r0 >>> 2;
+	r5 = r1 & 2097152;
+	if(r5 !=0) //_LBB794_9
+{
+	r1 = r3 >>> 3;
+	r2 = r0 << 29;
+	r3 = r1 | r2;
+	r1 = r0 >>> 3;
+	r2 = r4;
+}
+else{
+	r3 = r3 >>> 2;
+	r0 = r0 << 30;
+	r3 = r3 | r0;
+}
+}
+	r0 = r2 << 20;
+	r2 = sp + -8;
+	r1 = r1 & 1048575;
+	r0 = (r0 + 1072693248)|0;
+	r2 = r2 >> 2;
+	r0 = r1 | r0;
+	heap32[(fp+-2)] = r3;
+	heap32[(r2+1)] = r0;
+	f0 = llvm_readDouble((sp+-8));
+	f_g0 = f0;
+	return;
+}
+}
+
+function __udivmoddi4(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp+4)];
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+3)];
+_1: do {
+	if(r0 !=0) //_LBB795_10
+{
+_3: do {
+	if(r3 !=0) //_LBB795_27
+{
+	if(r4 !=0) //_LBB795_34
+{
+	r5 = r4 >>> 1;
+	r6 = r0 >>> 1;
+	r5 = r4 | r5;
+	r6 = r0 | r6;
+	r7 = r5 >>> 2;
+	r9 = r6 >>> 2;
+	r5 = r5 | r7;
+	r6 = r6 | r9;
+	r7 = r5 >>> 4;
+	r9 = r6 >>> 4;
+	r5 = r5 | r7;
+	r6 = r6 | r9;
+	r7 = r5 >>> 8;
+	r9 = r6 >>> 8;
+	r5 = r5 | r7;
+	r6 = r6 | r9;
+	r7 = r5 >>> 16;
+	r9 = r6 >>> 16;
+	r5 = r5 | r7;
+	r6 = r6 | r9;
+	r7 = r5 ^ -1;
+	r9 = r6 ^ -1;
+	r8 = 1431655765;
+	r7 = r7 >>> 1;
+	r9 = r9 >>> 1;
+	r5 = r8 & (~r5);
+	r7 = r7 & 1431655765;
+	r6 = r8 & (~r6);
+	r9 = r9 & 1431655765;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r9)|0;
+	r7 = r5 >>> 2;
+	r9 = r6 >>> 2;
+	r5 = r5 & 858993459;
+	r7 = r7 & 858993459;
+	r6 = r6 & 858993459;
+	r9 = r9 & 858993459;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r9)|0;
+	r7 = r5 >>> 4;
+	r9 = r6 >>> 4;
+	r5 = r5 & 252645135;
+	r7 = r7 & 252645135;
+	r6 = r6 & 252645135;
+	r9 = r9 & 252645135;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r9)|0;
+	r7 = r5 >>> 8;
+	r9 = r6 >>> 8;
+	r5 = r5 & 16711935;
+	r7 = r7 & 16711935;
+	r6 = r6 & 16711935;
+	r9 = r9 & 16711935;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r9)|0;
+	r7 = r5 & 65535;
+	r5 = r5 >>> 16;
+	r9 = r6 & 65535;
+	r6 = r6 >>> 16;
+	r5 = (r7 + r5)|0;
+	r6 = (r9 + r6)|0;
+	r5 = (r5 - r6)|0;
+	if(uint(r5) <uint(32)) //_LBB795_37
+{
+	r6 = 31;
+	r7 = (r5 + 1)|0;
+	r9 = (r5 + -31)|0;
+	r5 = (r6 - r5)|0;
+	r6 = r2 >>> r7;
+	r8 = r9 >> 31;
+	r10 = r0 >>> r7;
+	r6 = r6 & r8;
+	r0 = r0 << r5;
+	r9 = 0;
+	r2 = r2 << r5;
+	r5 = r6 | r0;
+	r6 = r10 & r8;
+__label__ = 39;
+break _3;
+}
+else{
+	if(r1 ==0) //_LBB795_7
+{
+__label__ = 7;
+break _1;
+}
+else{
+	r5 = r1 >> 2;
+	heap32[(r5)] = r2;
+	heap32[(r5+1)] = r0;
+	r2 = 0;
+	r_g0 = r2;
+	r_g1 = r2;
+	return;
+}
+}
+}
+else{
+	r5 = (r3 + -1)|0;
+	r6 = r5 & r3;
+	if(r6 !=0) //_LBB795_38
+{
+	r5 = r3 >>> 1;
+	r6 = r0 >>> 1;
+	r5 = r3 | r5;
+	r6 = r0 | r6;
+	r7 = r5 >>> 2;
+	r9 = r6 >>> 2;
+	r5 = r5 | r7;
+	r6 = r6 | r9;
+	r7 = r5 >>> 4;
+	r9 = r6 >>> 4;
+	r5 = r5 | r7;
+	r6 = r6 | r9;
+	r7 = r5 >>> 8;
+	r9 = r6 >>> 8;
+	r5 = r5 | r7;
+	r6 = r6 | r9;
+	r7 = r5 >>> 16;
+	r9 = r6 >>> 16;
+	r5 = r5 | r7;
+	r6 = r6 | r9;
+	r7 = r5 ^ -1;
+	r9 = r6 ^ -1;
+	r8 = 1431655765;
+	r7 = r7 >>> 1;
+	r9 = r9 >>> 1;
+	r5 = r8 & (~r5);
+	r7 = r7 & 1431655765;
+	r6 = r8 & (~r6);
+	r9 = r9 & 1431655765;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r9)|0;
+	r7 = r5 >>> 2;
+	r9 = r6 >>> 2;
+	r5 = r5 & 858993459;
+	r7 = r7 & 858993459;
+	r6 = r6 & 858993459;
+	r9 = r9 & 858993459;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r9)|0;
+	r7 = r5 >>> 4;
+	r9 = r6 >>> 4;
+	r5 = r5 & 252645135;
+	r7 = r7 & 252645135;
+	r6 = r6 & 252645135;
+	r9 = r9 & 252645135;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r9)|0;
+	r7 = r5 >>> 8;
+	r9 = r6 >>> 8;
+	r5 = r5 & 16711935;
+	r7 = r7 & 16711935;
+	r6 = r6 & 16711935;
+	r9 = r9 & 16711935;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r9)|0;
+	r7 = r5 & 65535;
+	r5 = r5 >>> 16;
+	r9 = r6 & 65535;
+	r6 = r6 >>> 16;
+	r5 = (r7 + r5)|0;
+	r6 = (r9 + r6)|0;
+	r5 = (r5 - r6)|0;
+	r6 = 31;
+	r7 = (r5 + 33)|0;
+	r9 = r5 ^ -1;
+	r8 = (r5 + 1)|0;
+	r6 = (r6 - r5)|0;
+	r10 = -2;
+	r10 = (r10 - r5)|0;
+	r11 = r0 << r6;
+	r12 = r2 >>> r8;
+	r13 = r2 >>> r7;
+	r14 = r0 << r9;
+	r11 = r11 | r12;
+	r12 = r9 >> 31;
+	r9 = r2 << r9;
+	r5 = r5 >> 31;
+	r13 = r13 | r14;
+	r14 = r8 >> 31;
+	r8 = r0 >>> r8;
+	r10 = r10 >> 31;
+	r2 = r2 << r6;
+	r0 = r0 >>> r7;
+	r6 = r11 & r12;
+	r5 = r9 & r5;
+	r11 = r13 & r14;
+	r8 = r8 & r10;
+	r9 = r2 & r12;
+	r2 = r6 | r5;
+	r5 = r11 | r8;
+	r6 = r0 & r14;
+	if(r7 ==0) //_LBB795_40
+{
+	r0 = 0;
+	r3 = r0;
+__label__ = 42;
+break _3;
+}
+else{
+__label__ = 39;
+break _3;
+}
+}
+else{
+if(!(r1 ==0)) //_LBB795_31
+{
+	r1 = r1 >> 2;
+	r4 = r5 & r2;
+	heap32[(r1)] = r4;
+	heap32[(r1+1)] = 0;
+}
+	if(r3 !=1) //_LBB795_33
+{
+	r1 = r5 & (~r3);
+	r3 = r1 >>> 1;
+	r1 = r1 & 1431655765;
+	r3 = r3 & 1431655765;
+	r1 = (r1 + r3)|0;
+	r3 = r1 >>> 2;
+	r1 = r1 & 858993459;
+	r3 = r3 & 858993459;
+	r1 = (r1 + r3)|0;
+	r3 = r1 >>> 4;
+	r1 = r1 & 252645135;
+	r3 = r3 & 252645135;
+	r1 = (r1 + r3)|0;
+	r3 = r1 >>> 8;
+	r1 = r1 & 16711935;
+	r3 = r3 & 16711935;
+	r1 = (r1 + r3)|0;
+	r3 = r1 & 65535;
+	r1 = r1 >>> 16;
+	r1 = (r3 + r1)|0;
+	r3 = 32;
+	r3 = (r3 - r1)|0;
+	r3 = r0 << r3;
+	r2 = r2 >>> r1;
+	r2 = r3 | r2;
+	r0 = r0 >>> r1;
+__label__ = 44;
+break _1;
+}
+else{
+__label__ = 44;
+break _1;
+}
+}
+}
+}
+else{
+	if(r4 !=0) //_LBB795_15
+{
+	if(r2 !=0) //_LBB795_19
+{
+	r5 = (r4 + -1)|0;
+	r6 = r5 & r4;
+	if(r6 !=0) //_LBB795_23
+{
+	r5 = r4 >>> 1;
+	r6 = r0 >>> 1;
+	r5 = r4 | r5;
+	r6 = r0 | r6;
+	r7 = r5 >>> 2;
+	r8 = r6 >>> 2;
+	r5 = r5 | r7;
+	r6 = r6 | r8;
+	r7 = r5 >>> 4;
+	r8 = r6 >>> 4;
+	r5 = r5 | r7;
+	r6 = r6 | r8;
+	r7 = r5 >>> 8;
+	r8 = r6 >>> 8;
+	r5 = r5 | r7;
+	r6 = r6 | r8;
+	r7 = r5 >>> 16;
+	r8 = r6 >>> 16;
+	r5 = r5 | r7;
+	r6 = r6 | r8;
+	r7 = r5 ^ -1;
+	r8 = r6 ^ -1;
+	r9 = 1431655765;
+	r7 = r7 >>> 1;
+	r8 = r8 >>> 1;
+	r5 = r9 & (~r5);
+	r7 = r7 & 1431655765;
+	r6 = r9 & (~r6);
+	r8 = r8 & 1431655765;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r8)|0;
+	r7 = r5 >>> 2;
+	r8 = r6 >>> 2;
+	r5 = r5 & 858993459;
+	r7 = r7 & 858993459;
+	r6 = r6 & 858993459;
+	r8 = r8 & 858993459;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r8)|0;
+	r7 = r5 >>> 4;
+	r8 = r6 >>> 4;
+	r5 = r5 & 252645135;
+	r7 = r7 & 252645135;
+	r6 = r6 & 252645135;
+	r8 = r8 & 252645135;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r8)|0;
+	r7 = r5 >>> 8;
+	r8 = r6 >>> 8;
+	r5 = r5 & 16711935;
+	r7 = r7 & 16711935;
+	r6 = r6 & 16711935;
+	r8 = r8 & 16711935;
+	r5 = (r5 + r7)|0;
+	r6 = (r6 + r8)|0;
+	r7 = r5 & 65535;
+	r5 = r5 >>> 16;
+	r8 = r6 & 65535;
+	r6 = r6 >>> 16;
+	r5 = (r7 + r5)|0;
+	r6 = (r8 + r6)|0;
+	r5 = (r5 - r6)|0;
+	if(uint(r5) <uint(31)) //_LBB795_26
+{
+	r6 = 31;
+	r7 = (r5 + 1)|0;
+	r5 = (r6 - r5)|0;
+	r6 = r0 << r5;
+	r8 = r2 >>> r7;
+	r9 = 0;
+	r2 = r2 << r5;
+	r5 = r6 | r8;
+	r6 = r0 >>> r7;
+__label__ = 39;
+break _3;
+}
+else{
+	if(r1 ==0) //_LBB795_7
+{
+__label__ = 7;
+break _1;
+}
+else{
+	r1 = r1 >> 2;
+	heap32[(r1)] = r2;
+	heap32[(r1+1)] = r0;
+__label__ = 9;
+break _1;
+}
+}
+}
+else{
+if(!(r1 ==0)) //_LBB795_22
+{
+	r1 = r1 >> 2;
+	r3 = r5 & r0;
+	heap32[(r1)] = r2;
+	heap32[(r1+1)] = r3;
+}
+	r1 = (r4 + -1)|0;
+	r1 = r1 & (~r4);
+	r2 = r1 >>> 1;
+	r1 = r1 & 1431655765;
+	r2 = r2 & 1431655765;
+	r1 = (r1 + r2)|0;
+	r2 = r1 >>> 2;
+	r1 = r1 & 858993459;
+	r2 = r2 & 858993459;
+	r1 = (r1 + r2)|0;
+	r2 = r1 >>> 4;
+	r1 = r1 & 252645135;
+	r2 = r2 & 252645135;
+	r1 = (r1 + r2)|0;
+	r2 = r1 >>> 8;
+	r1 = r1 & 16711935;
+	r2 = r2 & 16711935;
+	r1 = (r1 + r2)|0;
+	r2 = r1 & 65535;
+	r1 = r1 >>> 16;
+	r1 = (r2 + r1)|0;
+	r0 = r0 >>> r1;
+__label__ = 5;
+break _1;
+}
+}
+else{
+if(!(r1 ==0)) //_LBB795_18
+{
+	r1 = r1 >> 2;
+	r2 = Math.floor(uint(r0) % uint(r4));
+	heap32[(r1)] = 0;
+	heap32[(r1+1)] = r2;
+}
+	r0 = Math.floor(uint(r0) /uint(r4));
+__label__ = 5;
+break _1;
+}
+}
+else{
+if(!(r1 ==0)) //_LBB795_14
+{
+	r1 = r1 >> 2;
+	r2 = Math.floor(uint(r0) % uint(r3));
+	heap32[(r1)] = r2;
+	heap32[(r1+1)] = 0;
+}
+	r0 = Math.floor(uint(r0) /uint(r3));
+__label__ = 5;
+break _1;
+}
+}
+} while(0);
+if (__label__ == 39){
+	r8 = (r3 + -1)|0;
+	r10 = 0;
+	r11 = 1;
+	r0 = uint(r8) < uint(r3) ? r11 : r10;
+	r0 = r3 != 0 ? r11 : r0;
+	r0 = (r4 + r0)|0;
+	r12 = (r0 + -1)|0;
+	r13 = r10;
+_45: while(true){
+	r0 = r5 << 1;
+	r14 = r2 >>> 31;
+	r6 = r6 << 1;
+	r5 = r5 >>> 31;
+	r14 = r0 | r14;
+	r0 = r6 | r5;
+	r5 = (r12 - r0)|0;
+	r6 = uint(r8) < uint(r14) ? r11 : r10;
+	r5 = (r5 - r6)|0;
+	r5 = r5 >> 31;
+	r6 = r5 & r3;
+	r15 = r5 & r4;
+	r16 = r9 << 1;
+	r2 = r2 << 1;
+	r17 = r9 >>> 31;
+	r15 = (r0 - r15)|0;
+	r18 = uint(r14) < uint(r6) ? r11 : r10;
+	r7 = (r7 + -1)|0;
+	r0 = r5 & 1;
+	r9 = r13 | r16;
+	r2 = r2 | r17;
+	r5 = (r14 - r6)|0;
+	r6 = (r15 - r18)|0;
+	r13 = r0;
+if(!(r7 !=0)) //_LBB795_42
+{
+break _45;
+}
+}
+	r3 = 0;
+}
+	r2 = r2 << 1;
+	r4 = r9 >>> 31;
+	r7 = r9 << 1;
+	r4 = r2 | r4;
+	r2 = r0 | r7;
+	r0 = r3 | r4;
+	if(r1 !=0) //_LBB795_46
+{
+	r1 = r1 >> 2;
+	heap32[(r1)] = r5;
+	heap32[(r1+1)] = r6;
+__label__ = 44;
+break _1;
+}
+else{
+__label__ = 44;
+break _1;
+}
+}
+else{
+	if(r4 !=0) //_LBB795_6
+{
+	if(r1 !=0) //_LBB795_8
+{
+	r0 = r1 >> 2;
+	heap32[(r0)] = r2;
+	heap32[(r0+1)] = 0;
+__label__ = 9;
+break _1;
+}
+else{
+__label__ = 7;
+break _1;
+}
+}
+else{
+if(!(r1 ==0)) //_LBB795_4
+{
+	r0 = r1 >> 2;
+	r1 = Math.floor(uint(r2) % uint(r3));
+	heap32[(r0)] = r1;
+	heap32[(r0+1)] = 0;
+}
+	r0 = Math.floor(uint(r2) /uint(r3));
+__label__ = 5;
+}
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 7:
+	r2 = 0;
+	r0 = r2;
+break;
+case 9:
+	r0 = 0;
+	r_g0 = r0;
+	r_g1 = r0;
+	return;
+break;
+case 5:
+	r1 = 0;
+	r_g0 = r0;
+	r_g1 = r1;
+	return;
+break;
+}
+	r_g0 = r2;
+	r_g1 = r0;
+	return;
+}
+
+function __umoddi3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = sp + -8;
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(fp+3)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = r4;
+	heap32[(g0+4)] = r0;
+	__udivmoddi4(i7);
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+-2)];
+	r0 = heap32[(r0+1)];
+	r_g0 = r1;
+	r_g1 = r0;
+	return;
+}
+
+function __moddi3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+3)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 >> 31;
+	r3 = heap32[(fp+2)];
+	r4 = r1 >> 31;
+	r5 = heap32[(fp)];
+	r1 = r4 ^ r1;
+	r5 = r4 ^ r5;
+	r0 = r2 ^ r0;
+	r3 = r2 ^ r3;
+	r6 = 1;
+	r7 = 0;
+	r1 = (r1 - r4)|0;
+	r8 = uint(r5) < uint(r4) ? r6 : r7;
+	r0 = (r0 - r2)|0;
+	r9 = uint(r3) < uint(r2) ? r6 : r7;
+	r10 = sp + -8;
+	r5 = (r5 - r4)|0;
+	r1 = (r1 - r8)|0;
+	r2 = (r3 - r2)|0;
+	r0 = (r0 - r9)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r0;
+	heap32[(g0+4)] = r10;
+	__udivmoddi4(i7);
+	r0 = r10 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = heap32[(fp+-2)];
+	r1 = r1 ^ r4;
+	r0 = r0 ^ r4;
+	r0 = (r0 - r4)|0;
+	r2 = uint(r1) < uint(r4) ? r6 : r7;
+	r1 = (r1 - r4)|0;
+	r0 = (r0 - r2)|0;
+	r_g0 = r1;
+	r_g1 = r0;
+	return;
+}
+
+function __divdi3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+3)];
+	r1 = heap32[(fp+1)];
+	r2 = r1 >> 31;
+	r3 = heap32[(fp)];
+	r4 = r0 >> 31;
+	r5 = heap32[(fp+2)];
+	r6 = r2 ^ r1;
+	r3 = r2 ^ r3;
+	r7 = r4 ^ r0;
+	r5 = r4 ^ r5;
+	r8 = 1;
+	r9 = 0;
+	r6 = (r6 - r2)|0;
+	r10 = uint(r3) < uint(r2) ? r8 : r9;
+	r7 = (r7 - r4)|0;
+	r11 = uint(r5) < uint(r4) ? r8 : r9;
+	r2 = (r3 - r2)|0;
+	r3 = (r6 - r10)|0;
+	r4 = (r5 - r4)|0;
+	r5 = (r7 - r11)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	heap32[(g0+4)] = 0;
+	r0 = r0 ^ r1;
+	__udivmoddi4(i7);
+	r0 = r0 >> 31;
+	r1 = r_g0 ^ r0;
+	r2 = r_g1 ^ r0;
+	r2 = (r2 - r0)|0;
+	r3 = uint(r1) < uint(r0) ? r8 : r9;
+	r0 = (r1 - r0)|0;
+	r1 = (r2 - r3)|0;
+	r_g0 = r0;
+	r_g1 = r1;
+	return;
+}
+
+function __udivdi3(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = 0;
+	__udivmoddi4(i7);
+	return;
+}
+
+function sscanf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var f0;
+	var f1;
+	var f2;
+	var f3;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = (sp + 4)|0;
+	r1 = heap32[(fp)];
+	heap32[(fp+-5)] = r0;
+	heap32[(fp+-4)] = r1;
+	heap32[(fp+-1)] = r0;
+	r0 = sp + -16;
+	heap32[(g0)] = r0;
+	r1 = 1;
+	r2 = 0;
+	r3 = _2E_str7136;
+	sgetc(i7);
+	r4 = r_g0;
+	f3 =                        10;
+	r20 = 255;
+_1: while(true){
+	r5 = heapU8[r3];
+	if(r5 !=0) //_LBB800_1
+{
+	r5 = r5 << 24;
+	r5 = r5 >> 24;
+	r6 = (r3 + 1)|0;
+	if(r5 >31) //_LBB800_4
+{
+	if(r5 ==32) //_LBB800_7
+{
+__label__ = 7;
+}
+else{
+	if(r5 ==37) //_LBB800_8
+{
+	r5 = -1;
+	r7 = 0;
+	r8 = r7;
+	r9 = r7;
+	r10 = r7;
+	r11 = r7;
+_8: while(true){
+	r12 = heap8[r6];
+if(!(r12 ==110)) //_LBB800_17
+{
+	if(r4 ==-1) //_LBB800_187
+{
+__label__ = 168;
+break _1;
+}
+}
+	if(r12 >103) //_LBB800_31
+{
+	if(r12 >111) //_LBB800_38
+{
+	if(r12 >114) //_LBB800_41
+{
+__label__ = 40;
+break _8;
+}
+else{
+	if(r12 ==112) //_LBB800_59
+{
+__label__ = 52;
+break _8;
+}
+else{
+if(!(r12 ==113)) //_LBB800_45
+{
+__label__ = 168;
+break _1;
+}
+}
+}
+}
+else{
+	if(r12 >107) //_LBB800_35
+{
+	if(r12 ==108) //_LBB800_55
+{
+	r3 = 1;
+	r10 = r10 & 255;
+	r11 = r10 == 0 ? r11 : r3;
+	r6 = (r6 + 1)|0;
+	r10 = r3;
+continue _8;
+}
+else{
+__label__ = 35;
+break _8;
+}
+}
+else{
+	if(r12 ==104) //_LBB800_53
+{
+	r6 = (r6 + 1)|0;
+	r9 = 1;
+continue _8;
+}
+else{
+__label__ = 33;
+break _8;
+}
+}
+}
+}
+else{
+	if(r12 >75) //_LBB800_25
+{
+	if(r12 >98) //_LBB800_28
+{
+__label__ = 27;
+break _8;
+}
+else{
+if(!(r12 ==76)) //_LBB800_45
+{
+__label__ = 26;
+break _8;
+}
+}
+}
+else{
+	if(r12 >41) //_LBB800_22
+{
+	if(r12 ==42) //_LBB800_46
+{
+	r6 = (r6 + 1)|0;
+	r8 = 1;
+continue _8;
+}
+else{
+	r5 = (r12 + -48)|0;
+	if(uint(r5) <uint(10)) //_LBB800_57
+{
+	r5 = sp + -8;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r5;
+	strtol(i7);
+	r5 = r_g0;
+	r6 = heap32[(fp+-2)];
+	r7 = 1;
+continue _8;
+}
+else{
+__label__ = 23;
+break _8;
+}
+}
+}
+else{
+__label__ = 19;
+break _8;
+}
+}
+}
+	r6 = (r6 + 1)|0;
+	r11 = 1;
+}
+_36: do {
+switch(__label__ ){//multiple entries
+case 40:
+	if(r12 ==115) //_LBB800_165
+{
+	r8 = r8 & 255;
+if(!(r8 !=0)) //_LBB800_167
+{
+	r3 = sp + -4;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r3 = r_g0 >> 2;
+	r3 = heap32[(r3)];
+	heap32[(fp+-2)] = r3;
+}
+	r3 = (r6 + 1)|0;
+	r6 = r4 << 2;
+	r7 = my_ctype;
+	r6 = (r6 + r7)|0;
+	r6 = heapU8[r6+4];
+	r6 = r6 & 8;
+_43: do {
+	if(r6 ==0) //_LBB800_169
+{
+	r6 = r4;
+}
+else{
+_45: while(true){
+	heap32[(g0)] = r0;
+	sgetc(i7);
+	r6 = r_g0;
+	r4 = r6 << 2;
+	r4 = (r4 + r7)|0;
+	r1 = (r1 + 1)|0;
+	r4 = heapU8[r4+4];
+	r4 = r4 & 8;
+if(!(r4 !=0)) //_LBB800_170
+{
+break _43;
+}
+}
+}
+} while(0);
+	r4 = -1;
+	if(r6 ==-1) //_LBB800_186
+{
+continue _1;
+}
+else{
+	r4 = r6;
+_49: while(true){
+	if(r4 ==-1) //_LBB800_180
+{
+break _49;
+}
+else{
+	if(r5 ==0) //_LBB800_180
+{
+break _49;
+}
+else{
+	r6 = r4 << 2;
+	r6 = (r6 + r7)|0;
+	r6 = heapU8[r6+4];
+	r6 = r6 & 8;
+	if(r6 ==0) //_LBB800_173
+{
+if(!(r8 !=0)) //_LBB800_175
+{
+	r6 = heap32[(fp+-2)];
+	heap8[r6] = r4;
+}
+	if(r4 ==0) //_LBB800_180
+{
+break _49;
+}
+else{
+	r4 = heap32[(fp+-2)];
+	r4 = (r4 + 1)|0;
+	heap32[(fp+-2)] = r4;
+	heap32[(g0)] = r0;
+	r1 = (r1 + 1)|0;
+	r5 = (r5 + -1)|0;
+	sgetc(i7);
+	r4 = r_g0;
+}
+}
+else{
+break _49;
+}
+}
+}
+}
+	if(r8 !=0) //_LBB800_186
+{
+continue _1;
+}
+else{
+	r2 = (r2 + 1)|0;
+	r5 = heap32[(fp+-2)];
+	r6 = 0;
+	heap8[r5] = r6;
+continue _1;
+}
+}
+}
+else{
+	if(r12 ==117) //_LBB800_60
+{
+__label__ = 53;
+break _36;
+}
+else{
+	if(r12 ==120) //_LBB800_59
+{
+__label__ = 52;
+break _36;
+}
+else{
+__label__ = 168;
+break _1;
+}
+}
+}
+break;
+case 35:
+	if(r12 ==110) //_LBB800_182
+{
+	r3 = (r6 + 1)|0;
+	r5 = r8 & 255;
+	if(r5 !=0) //_LBB800_186
+{
+continue _1;
+}
+else{
+	r5 = sp + -4;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r5 = r_g0 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r6 = (r1 + -1)|0;
+	heap32[(r5)] = r6;
+continue _1;
+}
+}
+else{
+	if(r12 ==111) //_LBB800_44
+{
+	r13 = 8;
+__label__ = 55;
+break _36;
+}
+else{
+__label__ = 168;
+break _1;
+}
+}
+break;
+case 33:
+	if(r12 ==105) //_LBB800_60
+{
+__label__ = 53;
+break _36;
+}
+else{
+__label__ = 168;
+break _1;
+}
+break;
+case 27:
+	if(r12 ==99) //_LBB800_155
+{
+	r3 = (r6 + 1)|0;
+	r6 = r8 & 255;
+	if(r6 ==0) //_LBB800_157
+{
+	r8 = sp + -4;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r8 = r_g0 >> 2;
+	r8 = heap32[(r8)];
+	r2 = (r2 + 1)|0;
+	heap32[(fp+-2)] = r8;
+}
+	r8 = r7 & 255;
+	r7 = 1;
+	r5 = r8 == 0 ? r7 : r5;
+	if(r5 ==0) //_LBB800_186
+{
+continue _1;
+}
+else{
+	if(r4 ==-1) //_LBB800_186
+{
+continue _1;
+}
+else{
+	r5 = (r5 + -1)|0;
+_77: while(true){
+if(!(r6 !=0)) //_LBB800_163
+{
+	r8 = heap32[(fp+-2)];
+	r7 = (r8 + 1)|0;
+	heap8[r8] = r4;
+	heap32[(fp+-2)] = r7;
+}
+	heap32[(g0)] = r0;
+	r1 = (r1 + 1)|0;
+	sgetc(i7);
+	r4 = r_g0;
+	if(r5 ==0) //_LBB800_186
+{
+continue _1;
+}
+else{
+	r5 = (r5 + -1)|0;
+	if(r4 !=-1) //_LBB800_161
+{
+continue _77;
+}
+else{
+continue _1;
+}
+}
+}
+}
+}
+}
+else{
+	if(r12 ==100) //_LBB800_61
+{
+	r13 = 10;
+__label__ = 55;
+break _36;
+}
+else{
+	r5 = (r12 + -101)|0;
+	if(uint(r5) <uint(3)) //_LBB800_48
+{
+__label__ = 46;
+break _36;
+}
+else{
+__label__ = 168;
+break _1;
+}
+}
+}
+break;
+case 26:
+	if(r12 ==88) //_LBB800_59
+{
+__label__ = 52;
+break _36;
+}
+else{
+__label__ = 168;
+break _1;
+}
+break;
+case 23:
+	if(r12 ==69) //_LBB800_48
+{
+__label__ = 46;
+break _36;
+}
+else{
+__label__ = 168;
+break _1;
+}
+break;
+case 19:
+	if(r12 ==0) //_LBB800_6
+{
+__label__ = 6;
+break _1;
+}
+else{
+	if(r12 ==37) //_LBB800_51
+{
+	r5 = r4 & 255;
+	if(r5 !=r12) //_LBB800_187
+{
+__label__ = 168;
+break _1;
+}
+else{
+	heap32[(g0)] = r0;
+	r1 = (r1 + 1)|0;
+	r3 = (r6 + 1)|0;
+	sgetc(i7);
+	r4 = r_g0;
+continue _1;
+}
+}
+else{
+__label__ = 168;
+break _1;
+}
+}
+break;
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 53:
+	r13 = 0;
+break;
+case 52:
+	r13 = 16;
+break;
+case 46:
+	r5 = r4 << 2;
+	r7 = my_ctype;
+	r5 = (r5 + r7)|0;
+	r5 = heapU8[r5+4];
+	r3 = (r6 + 1)|0;
+	r5 = r5 & 8;
+_97: do {
+if(!(r5 ==0)) //_LBB800_50
+{
+_98: while(true){
+	heap32[(g0)] = r0;
+	sgetc(i7);
+	r4 = r_g0;
+	r5 = r4 << 2;
+	r5 = (r5 + r7)|0;
+	r1 = (r1 + 1)|0;
+	r5 = heapU8[r5+4];
+	r5 = r5 & 8;
+if(!(r5 !=0)) //_LBB800_111
+{
+break _97;
+}
+}
+}
+} while(0);
+	if(r4 ==45) //_LBB800_114
+{
+	heap32[(g0)] = r0;
+	r1 = (r1 + 1)|0;
+	r5 = 1;
+	sgetc(i7);
+	r4 = r_g0;
+}
+else{
+	r5 = 0;
+}
+	if(r4 ==43) //_LBB800_117
+{
+	heap32[(g0)] = r0;
+	r1 = (r1 + 1)|0;
+	sgetc(i7);
+	r4 = r_g0;
+}
+	r6 = (r4 + -48)|0;
+_108: do {
+	if(uint(r6) >uint(9)) //_LBB800_120
+{
+	f0 =                         0;
+	r6 = r1;
+}
+else{
+	f0 =                         0;
+	r6 = r1;
+_111: while(true){
+	r4 = (r4 + -48)|0;
+	f1 =                        10;
+	heap32[(g0)] = r0;
+	f0 = f0*f1;
+	f1 = r4; //fitod r4, f1
+	sgetc(i7);
+	r4 = r_g0;
+	f0 = f0+f1;
+	r6 = (r6 + 1)|0;
+	r7 = (r4 + -48)|0;
+if(!(uint(r7) <uint(10))) //_LBB800_121
+{
+break _108;
+}
+}
+}
+} while(0);
+_114: do {
+	if(r4 ==46) //_LBB800_124
+{
+	heap32[(g0)] = r0;
+	sgetc(i7);
+	r4 = r_g0;
+	r1 = (r1 + 1)|0;
+	r7 = (r4 + -48)|0;
+	if(uint(r7) <uint(10)) //_LBB800_126
+{
+	r6 = (r6 + 1)|0;
+	f1 =       0.10000000000000001;
+_118: while(true){
+	r4 = (r4 + -48)|0;
+	f2 = r4; //fitod r4, f2
+	heap32[(g0)] = r0;
+	f2 = f2*f1;
+	sgetc(i7);
+	r4 = r_g0;
+	f0 = f2+f0;
+	f1 = f1/f3;
+	r6 = (r6 + 1)|0;
+	r7 = (r4 + -48)|0;
+if(!(uint(r7) <uint(10))) //_LBB800_127
+{
+break _114;
+}
+}
+}
+else{
+	r6 = (r6 + 1)|0;
+}
+}
+} while(0);
+	if(r1 ==r6) //_LBB800_73
+{
+__label__ = 172;
+break _1;
+}
+else{
+	r1 = r4 | 32;
+_123: do {
+	if(r1 ==101) //_LBB800_131
+{
+	heap32[(g0)] = r0;
+	sgetc(i7);
+	r1 = r_g0;
+	if(r1 ==45) //_LBB800_135
+{
+	heap32[(g0)] = r0;
+	f1 =       0.10000000000000001;
+	sgetc(i7);
+	r4 = r_g0;
+}
+else{
+	if(r1 ==43) //_LBB800_136
+{
+	heap32[(g0)] = r0;
+	f1 =                        10;
+	sgetc(i7);
+	r4 = r_g0;
+}
+else{
+	if(r1 !=-1) //_LBB800_137
+{
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	f0 =                         0;
+	sputc(i7);
+	r1 = r6;
+break _123;
+}
+else{
+	r1 = (r6 + 1)|0;
+	f0 =                         0;
+break _123;
+}
+}
+}
+	r7 = (r6 + 2)|0;
+	r1 = (r4 + -48)|0;
+_135: do {
+	if(uint(r1) <uint(10)) //_LBB800_140
+{
+	r1 = (r6 + 2)|0;
+	r6 = 0;
+_137: while(true){
+	r6 = (r6 * 10)|0;
+	heap32[(g0)] = r0;
+	r6 = (r4 + r6)|0;
+	sgetc(i7);
+	r4 = r_g0;
+	r6 = (r6 + -48)|0;
+	r1 = (r1 + 1)|0;
+	r9 = (r4 + -48)|0;
+if(!(uint(r9) <uint(10))) //_LBB800_141
+{
+break _135;
+}
+}
+}
+else{
+	r6 = 0;
+	r1 = r7;
+}
+} while(0);
+	if(r7 ==r1) //_LBB800_73
+{
+__label__ = 172;
+break _1;
+}
+else{
+if(!(r6 ==0)) //_LBB800_145
+{
+__label__ = 130; //SET chanka
+_142: while(true){
+	r6 = (r6 + -1)|0;
+	f0 = f0*f1;
+if(!(r6 !=0)) //_LBB800_146
+{
+break _123;
+}
+}
+}
+}
+}
+else{
+	r1 = r6;
+}
+} while(0);
+	if(r5 !=0) //_LBB800_149
+{
+	f0 = -f0;
+}
+	r5 = r8 & 255;
+	if(r5 !=0) //_LBB800_186
+{
+continue _1;
+}
+else{
+	r5 = sp + -4;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r5 = r_g0;
+	r6 = r10 & 255;
+	if(r6 ==0) //_LBB800_153
+{
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	f0 = f0; //fdtos f0, f0
+	heapFloat[(r5)] = f0;
+}
+else{
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	llvm_writeDouble((r5),f0);
+}
+	r2 = (r2 + 1)|0;
+continue _1;
+}
+}
+break;
+}
+	r3 = r4 << 2;
+	r14 = my_ctype;
+	r3 = (r3 + r14)|0;
+	r15 = heapU8[r3+4];
+	r3 = (r6 + 1)|0;
+	r6 = r15 & 8;
+_155: do {
+if(!(r6 ==0)) //_LBB800_64
+{
+_156: while(true){
+	heap32[(g0)] = r0;
+	sgetc(i7);
+	r4 = r_g0;
+	r6 = r4 << 2;
+	r6 = (r6 + r14)|0;
+	r1 = (r1 + 1)|0;
+	r6 = heapU8[r6+4];
+	r6 = r6 & 8;
+if(!(r6 !=0)) //_LBB800_65
+{
+break _155;
+}
+}
+}
+} while(0);
+	if(r4 ==45) //_LBB800_68
+{
+	heap32[(g0)] = r0;
+	r1 = (r1 + 1)|0;
+	r6 = 1;
+	sgetc(i7);
+	r4 = r_g0;
+}
+else{
+	r6 = 0;
+}
+	if(r4 ==43) //_LBB800_71
+{
+	heap32[(g0)] = r0;
+	r14 = (r1 + 1)|0;
+	sgetc(i7);
+	r4 = r_g0;
+}
+else{
+	r14 = r1;
+}
+	if(r4 !=-1) //_LBB800_74
+{
+	r7 = r7 & 255;
+_168: do {
+	if(r7 ==0) //_LBB800_76
+{
+	if(r13 !=16) //_LBB800_79
+{
+__label__ = 68;
+}
+else{
+	if(r4 !=48) //_LBB800_79
+{
+__label__ = 68;
+}
+else{
+__label__ = 72;
+}
+}
+_172: do {
+if (__label__ == 68){
+if(!(r13 !=0)) //_LBB800_82
+{
+	r7 = 48;
+	r7 = r4 != r7;
+if(!(r7 != 0)) //_LBB800_82
+{
+	r13 = 8;
+break _172;
+}
+}
+	r7 = 10;
+	r13 = r13 != 0 ? r13 : r7;
+	r1 = r14;
+break _168;
+}
+} while(0);
+	heap32[(g0)] = r0;
+	sgetc(i7);
+	r4 = r_g0;
+	r7 = r4 | 32;
+	if(r7 ==120) //_LBB800_85
+{
+	heap32[(g0)] = r0;
+	r1 = (r14 + 2)|0;
+	r13 = 16;
+	sgetc(i7);
+	r4 = r_g0;
+}
+else{
+	r1 = (r14 + 1)|0;
+}
+}
+else{
+	r1 = r14;
+}
+} while(0);
+	r7 = 0;
+	r15 = r7;
+	r16 = r7;
+_184: while(true){
+	if(r5 ==0) //_LBB800_97
+{
+break _184;
+}
+else{
+	if(r4 !=-1) //_LBB800_87
+{
+	r17 = r4 & 255;
+	r18 = r17 | 32;
+	if(uint(r18) <uint(97)) //_LBB800_89
+{
+	r18 = 58;
+	r19 = (r17 + -48)|0;
+	r17 = uint(r17) < uint(r18) ? r19 : r20;
+}
+else{
+	r17 = (r18 + -87)|0;
+}
+	if(uint(r17) >=uint(r13)) //_LBB800_97
+{
+break _184;
+}
+else{
+	heap32[(g0)] = r15;
+	heap32[(g0+1)] = r16;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = r7;
+	__muldi3(i7);
+	r4 = r_g0;
+	r18 = r_g1;
+	r15 = uint(r4) >= uint(r15);
+	r19 = uint(r18) >= uint(r16);
+	r15 = r18 == r16 ? r15 : r19;
+	if(r15 != 0) //_LBB800_93
+{
+	r15 = (r17 + r4)|0;
+	r16 = 1;
+	r17 = uint(r15) < uint(r17) ? r16 : r7;
+	r4 = uint(r15) < uint(r4) ? r16 : r17;
+	r16 = (r18 + r4)|0;
+}
+else{
+	r15 = -1;
+	r16 = r15;
+}
+	heap32[(g0)] = r0;
+	r1 = (r1 + 1)|0;
+	r5 = (r5 + -1)|0;
+	sgetc(i7);
+	r4 = r_g0;
+}
+}
+else{
+break _184;
+}
+}
+}
+	if(r14 ==r1) //_LBB800_73
+{
+__label__ = 172;
+break _1;
+}
+else{
+	r5 = r12 | 32;
+if(!(uint(r5) >uint(111))) //_LBB800_100
+{
+	if(r16 >-1) //_LBB800_101
+{
+	r5 = 1;
+	r12 = (r7 - r16)|0;
+	r5 = r15 != 0 ? r5 : r7;
+	r7 = (r7 - r15)|0;
+	r5 = (r12 - r5)|0;
+	r15 = r6 != 0 ? r7 : r15;
+	r16 = r6 != 0 ? r5 : r16;
+}
+}
+	r5 = r8 & 255;
+	if(r5 !=0) //_LBB800_186
+{
+continue _1;
+}
+else{
+	r5 = r11 & 255;
+	if(r5 ==0) //_LBB800_105
+{
+	r5 = r10 & 255;
+	if(r5 ==0) //_LBB800_107
+{
+	r5 = sp + -4;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r5 = r_g0;
+	r7 = r9 & 255;
+	if(r7 ==0) //_LBB800_109
+{
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	heap32[(r5)] = r15;
+}
+else{
+	r5 = r5 >> 2;
+	r5 = heap32[(r5)];
+	heap16[(r5)>>1] = r15;
+}
+}
+else{
+	r5 = sp + -4;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r5 = r_g0 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	heap32[(r5)] = r15;
+}
+}
+else{
+	r5 = sp + -4;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r5 = r_g0 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	heap32[(r5)] = r15;
+	heap32[(r5+1)] = r16;
+}
+	r5 = uint(r14) < uint(r1);
+	r5 = r5 & 1;
+	r2 = (r5 + r2)|0;
+continue _1;
+}
+}
+}
+else{
+__label__ = 172;
+break _1;
+}
+}
+else{
+__label__ = 165;
+}
+}
+}
+else{
+	if(r5 ==0) //_LBB800_6
+{
+__label__ = 6;
+break _1;
+}
+else{
+	r7 = (r5 + -9)|0;
+	if(uint(r7) <uint(5)) //_LBB800_7
+{
+__label__ = 7;
+}
+else{
+__label__ = 165;
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 7:
+	r3 = (r3 + 1)|0;
+_218: while(true){
+	r5 = heapU8[r3];
+	if(r5 ==0) //_LBB800_13
+{
+break _218;
+}
+else{
+	r5 = r5 << 24;
+	r5 = r5 >> 24;
+	r5 = r5 << 2;
+	r6 = my_ctype;
+	r5 = (r5 + r6)|0;
+	r5 = heapU8[r5+4];
+	r5 = r5 & 8;
+	if(r5 ==0) //_LBB800_13
+{
+break _218;
+}
+else{
+	r3 = (r3 + 1)|0;
+}
+}
+}
+	r6 = r4 << 2;
+	r5 = my_ctype;
+	r6 = (r6 + r5)|0;
+	r6 = heapU8[r6+4];
+	r6 = r6 & 8;
+	if(r6 ==0) //_LBB800_186
+{
+continue _1;
+}
+else{
+__label__ = 12; //SET chanka
+_223: while(true){
+	heap32[(g0)] = r0;
+	sgetc(i7);
+	r4 = r_g0;
+	r6 = r4 << 2;
+	r6 = (r6 + r5)|0;
+	r1 = (r1 + 1)|0;
+	r6 = heapU8[r6+4];
+	r6 = r6 & 8;
+	if(r6 ==0) //_LBB800_186
+{
+continue _1;
+}
+}
+}
+break;
+case 165:
+	r3 = r4 & 255;
+	if(r3 !=r5) //_LBB800_187
+{
+__label__ = 168;
+break _1;
+}
+else{
+	heap32[(g0)] = r0;
+	r1 = (r1 + 1)|0;
+	sgetc(i7);
+	r4 = r_g0;
+	r3 = r6;
+continue _1;
+}
+break;
+}
+}
+else{
+__label__ = 168;
+break _1;
+}
+}
+_227: do {
+switch(__label__ ){//multiple entries
+case 168:
+if(!(r4 >-1)) //_LBB800_190
+{
+if(!(r2 !=0)) //_LBB800_190
+{
+	r2 = -1;
+break _227;
+}
+}
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r0;
+	sputc(i7);
+break;
+case 6:
+	r2 = 0;
+break;
+}
+} while(0);
+	r_g0 = r2;
+	return;
+}
+
+function __v_printf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+	var f0;
+	var f1;
+var __label__ = 0;
+	i7 = sp + -184;var g0 = i7>>2; // save stack
+	r0 = sp + -136;
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+1)];
+	r0 = (r0 + 1)|0;
+	heap32[(fp+-1)] = r1;
+	heap32[(fp+-2)] = 0;
+_1: while(true){
+	r4 = heapU8[r3];
+	if(r4 ==0) //_LBB801_209
+{
+__label__ = 197;
+break _1;
+}
+else{
+	r1 = 0;
+	r5 = r4;
+_4: while(true){
+	r5 = r5 & 255;
+	if(r5 ==0) //_LBB801_4
+{
+break _4;
+}
+else{
+	if(r5 !=37) //_LBB801_1
+{
+	r5 = (r3 - r1)|0;
+	r5 = heapU8[r5+1];
+	r1 = (r1 + -1)|0;
+}
+else{
+break _4;
+}
+}
+}
+	r5 = 0;
+	if(r1 !=0) //_LBB801_6
+{
+	r4 = (r5 - r1)|0;
+	if(r4 <0) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	r6 = heap32[(fp+-2)];
+	r7 = (r6 - r1)|0;
+	if(uint(r7) <uint(r6)) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	r6 = (r3 - r1)|0;
+	r7 = r2 >> 2;
+	r8 = heap32[(r7+1)];
+	r7 = heap32[(r7)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r7;
+	__FUNCTION_TABLE__[(r8)>>2](i7);
+	r4 = heap32[(fp+-2)];
+	r4 = (r4 - r1)|0;
+	r1 = (r3 - r1)|0;
+	heap32[(fp+-2)] = r4;
+	r4 = heapU8[r1];
+	r3 = r6;
+}
+}
+}
+	r1 = r4 & 255;
+	if(r1 !=37) //_LBB801_207
+{
+continue _1;
+}
+else{
+	r3 = (r3 + 1)|0;
+	r1 = 32;
+	r4 = r5;
+	r6 = r5;
+	r7 = r5;
+	r8 = r5;
+	r9 = r5;
+	r10 = r5;
+	r11 = r5;
+_15: while(true){
+	r12 = r4;
+	r13 = r3;
+	r14 = heapU8[r13];
+	r3 = (r13 + 1)|0;
+	heap8[sp+-145] = r14;
+_17: do {
+	if(r14 >99) //_LBB801_29
+{
+	if(r14 >110) //_LBB801_37
+{
+	if(r14 >114) //_LBB801_41
+{
+	if(r14 >119) //_LBB801_44
+{
+	if(r14 ==122) //_LBB801_47
+{
+__label__ = 50;
+break _17;
+}
+else{
+__label__ = 44;
+break _15;
+}
+}
+else{
+__label__ = 41;
+break _15;
+}
+}
+else{
+	if(r14 ==111) //_LBB801_105
+{
+__label__ = 99;
+break _15;
+}
+else{
+	if(r14 ==112) //_LBB801_97
+{
+__label__ = 91;
+break _15;
+}
+else{
+	if(r14 ==113) //_LBB801_53
+{
+__label__ = 49;
+break _17;
+}
+else{
+continue _1;
+}
+}
+}
+}
+}
+else{
+	if(r14 >104) //_LBB801_34
+{
+	if(r14 ==105) //_LBB801_108
+{
+__label__ = 102;
+break _15;
+}
+else{
+	if(r14 ==106) //_LBB801_53
+{
+__label__ = 49;
+break _17;
+}
+else{
+	if(r14 ==108) //_LBB801_47
+{
+__label__ = 50;
+break _17;
+}
+else{
+continue _1;
+}
+}
+}
+}
+else{
+	if(r14 ==100) //_LBB801_108
+{
+__label__ = 102;
+break _15;
+}
+else{
+	r4 = (r14 + -102)|0;
+	if(uint(r4) <uint(2)) //_LBB801_135
+{
+__label__ = 129;
+break _15;
+}
+else{
+	if(r14 ==104) //_LBB801_48
+{
+__label__ = 48;
+break _17;
+}
+else{
+continue _1;
+}
+}
+}
+}
+}
+}
+else{
+	if(r14 >44) //_LBB801_20
+{
+	if(r14 >75) //_LBB801_24
+{
+	if(r14 >97) //_LBB801_27
+{
+__label__ = 26;
+break _15;
+}
+else{
+	if(r14 ==76) //_LBB801_53
+{
+__label__ = 49;
+break _17;
+}
+else{
+__label__ = 25;
+break _15;
+}
+}
+}
+else{
+	r4 = 1;
+	if(r14 ==45) //_LBB801_11
+{
+continue _15;
+}
+else{
+	if(r14 ==46) //_LBB801_61
+{
+	r4 = heapU8[r3];
+	if(r4 !=42) //_LBB801_63
+{
+	r4 = sp + -144;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	strtol(i7);
+	r14 = 0;
+	r11 = r_g0 < 0 ? r14 : r_g0;
+	r3 = heap32[(fp+-36)];
+}
+else{
+	r4 = sp + -4;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r4 = r_g0 >> 2;
+	r4 = heap32[(r4)];
+	r14 = 0;
+	r11 = r4 < 0 ? r14 : r4;
+	r3 = (r13 + 2)|0;
+}
+	r8 = 1;
+	r4 = r12;
+	if(uint(r11) >uint(10240)) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+continue _15;
+}
+}
+else{
+	r4 = (r14 + -48)|0;
+	if(uint(r4) <uint(10)) //_LBB801_57
+{
+	r4 = r8 & 255;
+	if(r4 !=0) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	r4 = sp + -144;
+	heap32[(g0)] = r13;
+	heap32[(g0+1)] = r4;
+	strtoul(i7);
+	r10 = r_g0;
+	if(uint(r10) >uint(10240)) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	r8 = 0;
+	r4 = r12 & 255;
+	r13 = heapU8[sp+-145];
+	r14 = 48;
+	r13 = r13 == r14;
+	r4 = r4 == r8;
+	r4 = r13 & r4;
+	r1 = r4 != 0 ? r14 : r1;
+	r3 = heap32[(fp+-36)];
+	r4 = r12;
+continue _15;
+}
+}
+}
+else{
+continue _1;
+}
+}
+}
+}
+}
+else{
+	if(r14 >36) //_LBB801_17
+{
+	if(r14 ==37) //_LBB801_66
+{
+__label__ = 62;
+break _15;
+}
+else{
+	if(r14 ==42) //_LBB801_60
+{
+	r4 = sp + -4;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r4 = r_g0 >> 2;
+	r4 = heap32[(r4)];
+	r13 = r4 >> 31;
+	r14 = (r4 + r13)|0;
+	r15 = 1;
+	r10 = r14 ^ r13;
+	r4 = r4 < 0 ? r15 : r12;
+	if(uint(r10) >uint(10240)) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+continue _15;
+}
+}
+else{
+	if(r14 ==43) //_LBB801_56
+{
+	r7 = 1;
+	r4 = r12;
+continue _15;
+}
+else{
+continue _1;
+}
+}
+}
+}
+else{
+	if(r14 ==0) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	if(r14 ==32) //_LBB801_55
+{
+	r6 = 1;
+	r4 = r12;
+continue _15;
+}
+else{
+	if(r14 ==35) //_LBB801_51
+{
+	r5 = 255;
+__label__ = 48;
+}
+else{
+continue _1;
+}
+}
+}
+}
+}
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 49:
+	r9 = (r9 + 1)|0;
+break;
+case 48:
+	r9 = (r9 + -1)|0;
+	r4 = r12;
+continue _15;
+break;
+}
+	r9 = (r9 + 1)|0;
+	r4 = r12;
+}
+_71: do {
+switch(__label__ ){//multiple entries
+case 26:
+	if(r14 ==98) //_LBB801_49
+{
+	r4 = 0;
+	r13 = 2;
+	r14 = r4;
+	r15 = r4;
+__label__ = 104;
+break _71;
+}
+else{
+	if(r14 ==99) //_LBB801_65
+{
+	r1 = sp + -4;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r1 = r_g0 >> 2;
+	r1 = heap32[(r1)];
+	heap8[sp+-145] = r1;
+__label__ = 62;
+break _71;
+}
+else{
+continue _1;
+}
+}
+break;
+case 25:
+	if(r14 ==88) //_LBB801_50
+{
+__label__ = 92;
+break _71;
+}
+else{
+continue _1;
+}
+break;
+case 44:
+	if(r14 !=120) //_LBB801_207
+{
+continue _1;
+}
+else{
+	r4 = 0;
+__label__ = 93;
+break _71;
+}
+break;
+case 41:
+	if(r14 ==115) //_LBB801_68
+{
+	r1 = sp + -4;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r1 = r_g0 >> 2;
+	r4 = _2E_str38684;
+	r1 = heap32[(r1)];
+	r1 = r1 == 0 ? r4 : r1;
+	heap32[(fp+-36)] = r1;
+	r4 = heapU8[r1];
+_83: do {
+	if(r4 !=0) //_LBB801_70
+{
+	r4 = (r1 + 1)|0;
+	r14 = 0;
+_85: while(true){
+	r1 = (r14 + 1)|0;
+	r6 = heapU8[r4+r14];
+	r14 = r1;
+if(!(r6 !=0)) //_LBB801_71
+{
+break _83;
+}
+}
+}
+else{
+	r1 = 0;
+}
+} while(0);
+	r16 = 0;
+	r4 = r8 & 255;
+	r4 = r4 != r16;
+	r14 = uint(r1) > uint(r11);
+	r4 = r4 & r14;
+	r14 = 32;
+	r4 = r4 != 0 ? r11 : r1;
+	r1 = r14;
+	r8 = r16;
+	r11 = r16;
+__label__ = 69;
+break _71;
+}
+else{
+	if(r14 ==117) //_LBB801_109
+{
+	r4 = 0;
+	r13 = 10;
+	r14 = r4;
+	r15 = r4;
+__label__ = 104;
+break _71;
+}
+else{
+continue _1;
+}
+}
+break;
+case 99:
+	r4 = r5 & 255;
+	if(r4 !=0) //_LBB801_107
+{
+	r5 = 1;
+	r4 = 0;
+	r13 = 8;
+	r14 = 48;
+	heap8[sp+-135] = r14;
+	r14 = r4;
+	r15 = r5;
+__label__ = 104;
+break _71;
+}
+else{
+	r4 = 0;
+	r13 = 8;
+	r14 = r4;
+	r5 = r4;
+	r15 = r4;
+__label__ = 104;
+break _71;
+}
+break;
+case 91:
+	r14 = 120;
+	r5 = 2;
+	r9 = 1;
+	heap8[sp+-145] = r14;
+__label__ = 92;
+break _71;
+break;
+case 102:
+	r4 = 0;
+	r14 = 1;
+	r13 = 10;
+	r15 = r4;
+__label__ = 104;
+break _71;
+break;
+case 129:
+	r4 = sp + -4;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = 8;
+	my_arg_test(i7);
+	f0 = llvm_readDouble((r_g0));
+	heap32[(fp+-36)] = r0;
+	r4 = 103;
+	r4 = r14 == r4;
+	r8 = r8 & 255;
+	r16 = 1;
+	r9 = 6;
+	r10 = r10 == 0 ? r16 : r10;
+	r11 = r8 == 0 ? r9 : r11;
+	r4 = r4 & 1;
+	f1 =                         0;
+	r9 = r7 & 255;
+	r13 = 0;
+	llvm_writeDouble((i7),f0);
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = 127;
+	heap32[(g0+4)] = r10;
+	heap32[(g0+5)] = r11;
+	heap32[(g0+6)] = r4;
+	r4 = r9 != r13;
+	r16 = f0 < f1;
+	r4 = r4 | r16;
+	r16 = r4 & 1;
+	__dtostr(i7);
+	r4 = r_g0;
+_98: do {
+	if(r8 !=0) //_LBB801_137
+{
+	r8 = heap32[(fp+-36)];
+	r15 = r13;
+_100: while(true){
+	r17 = heapU8[r8+r13];
+	if(r17 ==0) //_LBB801_161
+{
+__label__ = 151;
+break _100;
+}
+else{
+	r18 = (r8 + r13)|0;
+	if(r17 ==46) //_LBB801_149
+{
+__label__ = 142;
+break _100;
+}
+else{
+	r17 = heapU8[r18+1];
+	if(r17 ==0) //_LBB801_161
+{
+__label__ = 151;
+break _100;
+}
+else{
+	r19 = r15 << 2;
+	if(r17 !=46) //_LBB801_143
+{
+	r17 = heapU8[r18+2];
+	if(r17 ==0) //_LBB801_161
+{
+__label__ = 151;
+break _100;
+}
+else{
+	if(r17 !=46) //_LBB801_146
+{
+	r17 = heapU8[r18+3];
+	if(r17 ==0) //_LBB801_161
+{
+__label__ = 151;
+break _100;
+}
+else{
+	if(r17 ==46) //_LBB801_151
+{
+__label__ = 143;
+break _100;
+}
+else{
+	r15 = (r15 + 1)|0;
+	r13 = (r13 + 4)|0;
+}
+}
+}
+else{
+__label__ = 138;
+break _100;
+}
+}
+}
+else{
+__label__ = 135;
+break _100;
+}
+}
+}
+}
+}
+_110: do {
+switch(__label__ ){//multiple entries
+case 142:
+	if(r18 ==0) //_LBB801_161
+{
+__label__ = 151;
+break _110;
+}
+else{
+__label__ = 144;
+break _110;
+}
+break;
+case 143:
+	r18 = (r18 + 3)|0;
+__label__ = 144;
+break _110;
+break;
+case 138:
+	r4 = r19 | 2;
+	r18 = (r8 + r4)|0;
+__label__ = 144;
+break _110;
+break;
+case 135:
+	r4 = r19 | 1;
+	r18 = (r8 + r4)|0;
+__label__ = 144;
+break;
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 151:
+	r5 = r5 & 255;
+	if(r5 ==0) //_LBB801_136
+{
+break _98;
+}
+else{
+	r5 = 46;
+	heap8[r8+r4] = r5;
+	r5 = heap32[(fp+-36)];
+	r4 = (r4 + r5)|0;
+	r5 = 0;
+	heap8[r4+1] = r5;
+}
+break;
+case 144:
+	if(r11 !=0) //_LBB801_155
+{
+__label__ = 146;
+}
+else{
+	r4 = r5 & 255;
+	if(r4 !=0) //_LBB801_155
+{
+__label__ = 146;
+}
+else{
+__label__ = 147;
+}
+}
+if (__label__ == 146){
+	r18 = (r18 + 1)|0;
+}
+_123: while(true){
+	r4 = r11;
+	if(r4 !=0) //_LBB801_158
+{
+	r11 = (r4 + -1)|0;
+	r5 = (r18 + 1)|0;
+	r8 = heapU8[r18+1];
+	r18 = r5;
+	if(r8 !=0) //_LBB801_156
+{
+__label__ = 147;
+}
+else{
+__label__ = 149;
+break _123;
+}
+}
+else{
+__label__ = 150;
+break _123;
+}
+}
+if (__label__ == 149){
+	r18 = r5;
+}
+	r5 = 0;
+	heap8[r18] = r5;
+	r11 = r4;
+break;
+}
+}
+} while(0);
+_130: do {
+if(!(r14 !=103)) //_LBB801_199
+{
+	r4 = heap32[(fp+-36)];
+	r5 = 0;
+	r8 = r5;
+_132: while(true){
+	r14 = heapU8[r4+r5];
+	if(r14 ==0) //_LBB801_199
+{
+break _130;
+}
+else{
+	r13 = (r4 + r5)|0;
+	if(r14 ==46) //_LBB801_176
+{
+__label__ = 166;
+break _132;
+}
+else{
+	r14 = heapU8[r13+1];
+	if(r14 ==0) //_LBB801_199
+{
+break _130;
+}
+else{
+	r15 = r8 << 2;
+	if(r14 !=46) //_LBB801_170
+{
+	r14 = heapU8[r13+2];
+	if(r14 ==0) //_LBB801_199
+{
+break _130;
+}
+else{
+	if(r14 !=46) //_LBB801_173
+{
+	r14 = heapU8[r13+3];
+	if(r14 ==0) //_LBB801_199
+{
+break _130;
+}
+else{
+	if(r14 ==46) //_LBB801_178
+{
+__label__ = 167;
+break _132;
+}
+else{
+	r8 = (r8 + 1)|0;
+	r5 = (r5 + 4)|0;
+}
+}
+}
+else{
+__label__ = 162;
+break _132;
+}
+}
+}
+else{
+__label__ = 159;
+break _132;
+}
+}
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 166:
+	if(r13 ==0) //_LBB801_199
+{
+break _130;
+}
+break;
+case 167:
+	r13 = (r13 + 3)|0;
+break;
+case 162:
+	r5 = r15 | 2;
+	r13 = (r4 + r5)|0;
+break;
+case 159:
+	r5 = r15 | 1;
+	r13 = (r4 + r5)|0;
+break;
+}
+	r4 = 0;
+	r5 = r13;
+_148: while(true){
+	r8 = heapU8[r5];
+	if(r8 !=101) //_LBB801_182
+{
+	if(r8 !=0) //_LBB801_184
+{
+	r8 = r4 << 2;
+	r14 = heapU8[r5+1];
+	if(r14 !=101) //_LBB801_186
+{
+	if(r14 ==0) //_LBB801_183
+{
+__label__ = 171;
+break _148;
+}
+else{
+	r14 = heapU8[r5+2];
+	if(r14 !=101) //_LBB801_189
+{
+	if(r14 ==0) //_LBB801_183
+{
+__label__ = 171;
+break _148;
+}
+else{
+	r14 = heapU8[r5+3];
+	if(r14 !=101) //_LBB801_192
+{
+	if(r14 ==0) //_LBB801_183
+{
+__label__ = 171;
+break _148;
+}
+else{
+	r4 = (r4 + 1)|0;
+	r5 = (r5 + 4)|0;
+}
+}
+else{
+__label__ = 179;
+break _148;
+}
+}
+}
+else{
+__label__ = 176;
+break _148;
+}
+}
+}
+else{
+__label__ = 173;
+break _148;
+}
+}
+else{
+__label__ = 171;
+break _148;
+}
+}
+else{
+__label__ = 182;
+break _148;
+}
+}
+switch(__label__ ){//multiple entries
+case 171:
+	r5 = 0;
+break;
+case 179:
+	r4 = r8 | 3;
+	r5 = (r13 + r4)|0;
+break;
+case 176:
+	r4 = r8 | 2;
+	r5 = (r13 + r4)|0;
+break;
+case 173:
+	r4 = r8 | 1;
+	r5 = (r13 + r4)|0;
+break;
+}
+_163: while(true){
+	r4 = (r13 + 1)|0;
+	r8 = heapU8[r13+1];
+	r13 = r4;
+if(!(r8 !=0)) //_LBB801_194
+{
+break _163;
+}
+}
+	r4 = r5 == 0 ? r4 : r5;
+_166: while(true){
+	r8 = heapU8[r4+-1];
+	r4 = (r4 + -1)|0;
+if(!(r8 ==48)) //_LBB801_196
+{
+break _166;
+}
+}
+	r14 = (r4 + 1)|0;
+	r4 = r8 == 46 ? r4 : r14;
+	r8 = 0;
+	heap8[r4] = r8;
+if(!(r5 ==0)) //_LBB801_199
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	strcpy(i7);
+}
+}
+} while(0);
+	r4 = r7 | r6;
+	r4 = r4 & 255;
+if(!(r4 ==0)) //_LBB801_202
+{
+if(!(f0 <f1)) //_LBB801_202
+{
+	r4 = heap32[(fp+-36)];
+	r5 = (r4 + -1)|0;
+	r8 = 32;
+	r14 = 43;
+	r8 = r9 == 0 ? r8 : r14;
+	heap32[(fp+-36)] = r5;
+	heap8[r4+-1] = r8;
+}
+}
+	r4 = heap32[(fp+-36)];
+	r5 = heapU8[r4];
+_175: do {
+	if(r5 !=0) //_LBB801_204
+{
+	r5 = (r4 + 1)|0;
+	r8 = 0;
+_177: while(true){
+	r4 = (r8 + 1)|0;
+	r14 = heapU8[r5+r8];
+	r8 = r4;
+if(!(r14 !=0)) //_LBB801_205
+{
+break _175;
+}
+}
+}
+else{
+	r4 = 0;
+}
+} while(0);
+	r10 = uint(r10) < uint(r4) ? r4 : r10;
+	r14 = 48;
+	r5 = 0;
+	r8 = r5;
+__label__ = 69;
+break;
+}
+} while(0);
+switch(__label__ ){//multiple entries
+case 62:
+	r1 = heap32[(fp+-2)];
+	if(r1 ==-1) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	r1 = r2 >> 2;
+	r4 = heap32[(r1+1)];
+	r1 = heap32[(r1)];
+	r5 = sp + -145;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = 1;
+	heap32[(g0+2)] = r1;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r1 = heap32[(fp+-2)];
+	r1 = (r1 + 1)|0;
+	heap32[(fp+-2)] = r1;
+continue _1;
+}
+break;
+case 92:
+	r4 = r14 & 255;
+	r13 = 88;
+	r4 = r4 == r13;
+	r4 = r4 & 1;
+__label__ = 93;
+break;
+}
+if (__label__ == 93){
+	r5 = r5 & 255;
+	if(r5 !=0) //_LBB801_101
+{
+	r13 = 48;
+	r5 = 2;
+	heap8[sp+-135] = r13;
+	heap8[sp+-134] = r14;
+	r15 = r5;
+}
+else{
+	r5 = 0;
+	r15 = r5;
+}
+	if(uint(r11) >uint(r10)) //_LBB801_104
+{
+	r14 = 0;
+	r13 = 16;
+	r10 = r11;
+__label__ = 104;
+}
+else{
+	r14 = 0;
+	r13 = 16;
+__label__ = 104;
+}
+}
+_194: do {
+if (__label__ == 104){
+	heap32[(fp+-36)] = r0;
+	r16 = sp + -4;
+	heap32[(g0)] = r16;
+	heap32[(g0+1)] = 4;
+	my_arg_test(i7);
+	r17 = r_g0 >> 2;
+	r18 = r14 & 255;
+	r16 = 0;
+	r17 = heap32[(r17)];
+	r18 = r18 != r16;
+	r19 = r17 < r16;
+	r20 = (r16 - r17)|0;
+	r18 = r18 & r19;
+	r9 = r9 << 24;
+	r17 = r18 != 0 ? r20 : r17;
+	r9 = r9 >> 24;
+	r19 = r17 & 65535;
+	r17 = r9 < 0 ? r19 : r17;
+	r19 = heap32[(fp+-36)];
+	r20 = r17 & 255;
+	r21 = 2;
+	r9 = r9 < -1 ? r20 : r17;
+	r17 = r18 != 0 ? r21 : r14;
+	r14 = (r19 + r15)|0;
+	heap8[r14+122] = r16;
+	if(r9 !=0) //_LBB801_112
+{
+	r18 = (r13 + -1)|0;
+	r19 = 35;
+	r20 = 10;
+	r18 = uint(r18) > uint(r19) ? r20 : r13;
+	r4 = r4 & 255;
+	r13 = 39;
+	r19 = 7;
+	r4 = r4 == 0 ? r13 : r19;
+	r19 = (r15 + 121)|0;
+	r20 = -122;
+_198: while(true){
+	r13 = Math.floor(uint(r9) % uint(r18));
+	r13 = (r13 + 48)|0;
+	r22 = r13 & 255;
+	r23 = 57;
+	r22 = uint(r22) > uint(r23) ? r4 : r16;
+	r23 = (r20 + 1)|0;
+	r13 = (r13 + r22)|0;
+	r20 = (r14 - r20)|0;
+	heap8[r20+-1] = r13;
+	if(r19 <=r15) //_LBB801_115
+{
+break _198;
+}
+else{
+	r9 = Math.floor(uint(r9) /uint(r18));
+	r19 = (r19 + -1)|0;
+	r20 = r23;
+if(!(r9 !=0)) //_LBB801_113
+{
+break _198;
+}
+}
+}
+	r18 = (r23 + 122)|0;
+	r9 = (r14 - r23)|0;
+}
+else{
+	r4 = (r15 + r19)|0;
+	r13 = 48;
+	r9 = (r4 + 121)|0;
+	r18 = 1;
+	heap8[r4+121] = r13;
+}
+_204: do {
+if(!(r9 ==r14)) //_LBB801_125
+{
+	if(uint(r9) <=uint(r14)) //_LBB801_122
+{
+if(!(r18 ==-1)) //_LBB801_125
+{
+	r4 = (r16 - r18)|0;
+_209: while(true){
+	r13 = r4;
+	r19 = (r9 - r13)|0;
+	r4 = (r13 + 1)|0;
+	r20 = (r14 - r13)|0;
+	r19 = heapU8[r19];
+	heap8[r20] = r19;
+if(!(r13 !=0)) //_LBB801_124
+{
+break _204;
+}
+}
+}
+}
+else{
+if(!(r18 ==-1)) //_LBB801_125
+{
+	r4 = (r9 + 1)|0;
+	r9 = r18;
+_213: while(true){
+	heap8[r14] = r13;
+	if(r9 ==0) //_LBB801_125
+{
+break _204;
+}
+else{
+	r13 = heapU8[r4];
+	r4 = (r4 + 1)|0;
+	r9 = (r9 + -1)|0;
+	r14 = (r14 + 1)|0;
+}
+}
+}
+}
+}
+} while(0);
+	r4 = 1;
+	r4 = r18 != r4;
+	r4 = r4 & 1;
+	r14 = r8 ^ 1;
+	r4 = r4 | r14;
+	r4 = r4 & 255;
+	if(r4 !=0) //_LBB801_128
+{
+__label__ = 122;
+}
+else{
+	r4 = heap32[(fp+-36)];
+	r4 = heapU8[r4+r15];
+	if(r4 !=48) //_LBB801_128
+{
+__label__ = 122;
+}
+else{
+	r4 = r5 << 24;
+	r5 = 0;
+	r4 = r4 >> 24;
+	r14 = r11 == r5;
+	r4 = r4 > r5;
+	r4 = r14 | r4;
+	r4 = r4 != 0 ? r5 : r15;
+__label__ = 123;
+}
+}
+if (__label__ == 122){
+	r4 = (r18 + r15)|0;
+}
+	r14 = r17 & 255;
+	if(r14 ==2) //_LBB801_132
+{
+	r6 = heap32[(fp+-36)];
+	r7 = (r6 + -1)|0;
+	r4 = (r4 + 1)|0;
+	r14 = 48;
+	r16 = 45;
+	heap32[(fp+-36)] = r7;
+	heap8[r6+-1] = r16;
+	r16 = r21;
+}
+else{
+	if(r14 !=0) //_LBB801_133
+{
+	r14 = r7 | r6;
+	r14 = r14 & 255;
+if(!(r14 ==0)) //_LBB801_131
+{
+	r6 = heap32[(fp+-36)];
+	r16 = (r6 + -1)|0;
+	r7 = r7 & 255;
+	r9 = 32;
+	r13 = 43;
+	r4 = (r4 + 1)|0;
+	r14 = 48;
+	r7 = r7 == 0 ? r9 : r13;
+	heap32[(fp+-36)] = r16;
+	heap8[r6+-1] = r7;
+	r16 = r17;
+break _194;
+}
+}
+	r14 = 48;
+}
+}
+} while(0);
+	r6 = heap32[(fp+-36)];
+	r7 = r11 | r10;
+	if(r7 !=0) //_LBB801_77
+{
+	r7 = 0;
+	r5 = r5 << 24;
+	r5 = r5 >> 24;
+	if(r5 <1) //_LBB801_79
+{
+	r9 = r16 & 255;
+	r5 = r9 != r7;
+	r5 = r5 & 1;
+	if(r9 !=0) //_LBB801_81
+{
+__label__ = 75;
+}
+else{
+__label__ = 76;
+}
+}
+else{
+__label__ = 75;
+}
+if (__label__ == 75){
+	r4 = (r4 - r5)|0;
+	r10 = (r10 - r5)|0;
+	r9 = (r6 + r5)|0;
+	heap32[(fp+-36)] = r9;
+}
+	r8 = r8 & 255;
+	r9 = r8 != r7;
+	r7 = r10 == r7;
+	r7 = r9 & r7;
+	r7 = r7 != 0 ? r11 : r10;
+	r8 = r8 == 0 ? r4 : r11;
+	r9 = r12 & 255;
+if(!(r9 !=0)) //_LBB801_85
+{
+	r10 = r1 & 255;
+if(!(r10 !=32)) //_LBB801_85
+{
+	r11 = sp + -8;
+	r12 = (r7 - r8)|0;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r12;
+	heap32[(g0+3)] = r10;
+	write_pad(i7);
+	r10 = r_g0;
+	if(r10 !=0) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+}
+}
+if(!(r5 ==0)) //_LBB801_89
+{
+	if(r5 <0) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	r10 = heap32[(fp+-2)];
+	r11 = (r10 + r5)|0;
+	if(uint(r11) <uint(r10)) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	r10 = r2 >> 2;
+	r11 = heap32[(r10+1)];
+	r10 = heap32[(r10)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r10;
+	__FUNCTION_TABLE__[(r11)>>2](i7);
+	r6 = heap32[(fp+-2)];
+	r5 = (r6 + r5)|0;
+	heap32[(fp+-2)] = r5;
+}
+}
+}
+if(!(r9 !=0)) //_LBB801_92
+{
+	r5 = r1 & 255;
+if(!(r5 ==32)) //_LBB801_92
+{
+	r6 = sp + -8;
+	r10 = (r7 - r8)|0;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r5;
+	write_pad(i7);
+	r5 = r_g0;
+	if(r5 !=0) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+}
+}
+	r5 = sp + -8;
+	r6 = (r8 - r4)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r14;
+	write_pad(i7);
+	r14 = r_g0;
+	if(r14 !=0) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	if(r4 <0) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	r14 = heap32[(fp+-2)];
+	r6 = (r14 + r4)|0;
+	if(uint(r6) <uint(r14)) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	r14 = r2 >> 2;
+	r6 = heap32[(r14+1)];
+	r14 = heap32[(r14)];
+	r10 = heap32[(fp+-36)];
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r14;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r14 = heap32[(fp+-2)];
+	r4 = (r14 + r4)|0;
+	heap32[(fp+-2)] = r4;
+	if(r9 ==0) //_LBB801_207
+{
+continue _1;
+}
+else{
+	r4 = (r7 - r8)|0;
+	r14 = r1 & 255;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r14;
+	write_pad(i7);
+	r4 = r_g0;
+	if(r4 ==0) //_LBB801_207
+{
+continue _1;
+}
+else{
+__label__ = 198;
+break _1;
+}
+}
+}
+}
+}
+}
+else{
+	if(r4 <0) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	r14 = heap32[(fp+-2)];
+	r1 = (r14 + r4)|0;
+	if(uint(r1) <uint(r14)) //_LBB801_210
+{
+__label__ = 198;
+break _1;
+}
+else{
+	r14 = r2 >> 2;
+	r1 = heap32[(r14+1)];
+	r14 = heap32[(r14)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r14;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r14 = heap32[(fp+-2)];
+	r4 = (r14 + r4)|0;
+	heap32[(fp+-2)] = r4;
+continue _1;
+}
+}
+}
+}
+}
+}
+switch(__label__ ){//multiple entries
+case 197:
+	r0 = heap32[(fp+-2)];
+	r_g0 = r0;
+	return;
+break;
+case 198:
+	r0 = -1;
+	r_g0 = r0;
+	return;
+break;
+}
+}
+
+function fprintf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = sp + -8;
+	r1 = r0 >> 2;
+	r2 = __fwrite__index__;
+	heap32[(fp+-3)] = sp;
+	heap32[(r1+1)] = r2;
+	heap32[(fp+-2)] = 3;
+	r1 = _2E_str3133;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = sp;
+	__v_printf(i7);
+	return;
+}
+
+function vsnprintf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = sp + -16;
+	r1 = heap32[(fp+1)];
+	r2 = r0 >> 2;
+	r3 = heap32[(fp)];
+	heap32[(r2+1)] = 0;
+	r4 = (r1 + -1)|0;
+	r5 = 0;
+	r6 = sp + -24;
+	r7 = r1 == 0 ? r5 : r4;
+	heap32[(fp+-4)] = r3;
+	r8 = r6 >> 2;
+	r9 = swrite__index__;
+	heap32[(r2+2)] = r7;
+	heap32[(r8+1)] = r9;
+	heap32[(fp+-6)] = r0;
+	r0 = heap32[(fp+2)];
+	r2 = heap32[(fp+3)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	__v_printf(i7);
+	r0 = r_g0;
+if(!(r3 ==0)) //_LBB803_7
+{
+if(!(r1 ==0)) //_LBB803_7
+{
+if(!(r0 <0)) //_LBB803_7
+{
+if(!(r1 ==-1)) //_LBB803_6
+{
+if(!(uint(r0) <uint(r1))) //_LBB803_6
+{
+	heap8[r3+r4] = r5;
+	r_g0 = r0;
+	return;
+}
+}
+	heap8[r3+r0] = r5;
+}
+}
+}
+	r_g0 = r0;
+	return;
+}
+
+function sprintf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -48;var g0 = i7>>2; // save stack
+	r0 = (sp + 8)|0;
+	r1 = sp + -16;
+	r2 = r1 >> 2;
+	heap32[(fp+-7)] = r0;
+	r3 = heap32[(fp)];
+	heap32[(r2+1)] = 0;
+	r4 = sp + -24;
+	heap32[(fp+-4)] = r3;
+	r5 = r4 >> 2;
+	r6 = swrite__index__;
+	heap32[(r2+2)] = -2;
+	heap32[(r5+1)] = r6;
+	heap32[(fp+-6)] = r1;
+	r1 = heap32[(fp+1)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r0;
+	__v_printf(i7);
+	r0 = r_g0;
+if(!(r3 ==0)) //_LBB804_3
+{
+if(!(r0 <0)) //_LBB804_3
+{
+	r1 = 0;
+	heap8[r3+r0] = r1;
+}
+}
+	r_g0 = r0;
+	return;
+}
+
+function _ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = (r0 + 2)|0;
+	r2 = heap32[(fp+4)];
+	r1 = Math.floor(uint(r1) / uint(3));
+	r3 = heap32[(fp+2)];
+	r1 = r1 << 2;
+	r4 = r2 >> 2;
+	heap32[(r4)] = 0;
+_1: do {
+if(!(r3 ==0)) //_LBB805_20
+{
+	r5 = heap32[(fp+3)];
+	if(uint(r1) <=uint(r5)) //_LBB805_3
+{
+	r4 = heap32[(fp)];
+	if(uint(r0) >uint(2)) //_LBB805_5
+{
+	r5 = (r3 + r5)|0;
+	r6 = 0;
+	r12 = _ZN12mandreel_b64L9b64_charsE;
+_7: while(true){
+	r7 = heapU8[r4];
+	r8 = heapU8[r4+1];
+	r9 = r7 << 4;
+	r10 = heapU8[r4+2];
+	r11 = r8 << 2;
+	r9 = r9 & 48;
+	r8 = r8 >>> 4;
+	r7 = r7 >>> 2;
+	r8 = r9 | r8;
+	r9 = r11 & 60;
+	r11 = r10 >>> 6;
+	r7 = heapU8[r12+r7];
+	r9 = r9 | r11;
+	r8 = heapU8[r12+r8];
+	heap8[r3] = r7;
+	r7 = r10 & 63;
+	r9 = heapU8[r12+r9];
+	heap8[r3+1] = r8;
+	r8 = (r3 + 4)|0;
+	r6 = (r6 + 4)|0;
+	r7 = heapU8[r12+r7];
+	heap8[r3+2] = r9;
+	heap8[r3+3] = r7;
+	if(r8 ==r5) //_LBB805_8
+{
+__label__ = 7;
+}
+else{
+	if(r6 ==0) //_LBB805_9
+{
+	r7 = 13;
+	r8 = (r3 + 6)|0;
+	r6 = 0;
+	r9 = 10;
+	heap8[r3+4] = r7;
+	heap8[r3+5] = r9;
+	r3 = r8;
+__label__ = 9;
+}
+else{
+__label__ = 7;
+}
+}
+if (__label__ == 7){
+	r3 = r8;
+}
+	r0 = (r0 + -3)|0;
+	r4 = (r4 + 3)|0;
+if(!(uint(r0) >uint(2))) //_LBB805_6
+{
+break _7;
+}
+}
+}
+if(!(r0 ==0)) //_LBB805_20
+{
+	r5 = 0;
+_17: while(true){
+	r6 = sp + -3;
+	r7 = (r4 - r5)|0;
+	r8 = (r5 + -1)|0;
+	r5 = (r6 - r5)|0;
+	r7 = heapU8[r7];
+	heap8[r5] = r7;
+	r7 = (r0 + r8)|0;
+	r5 = r8;
+if(!(r7 !=0)) //_LBB805_13
+{
+break _17;
+}
+}
+	if(r0 !=3) //_LBB805_16
+{
+	r4 = 3;
+	r5 = (r4 - r0)|0;
+	r8 = 0;
+_22: while(true){
+	r7 = (r5 + -1)|0;
+	r5 = (r6 - r5)|0;
+	heap8[r5+3] = r8;
+	r5 = r7;
+if(!(r7 !=0)) //_LBB805_17
+{
+break _22;
+}
+}
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = 3;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = 12;
+	heap32[(g0+4)] = r2;
+	r0 = (r4 - r0)|0;
+	_ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7);
+	r4 = 61;
+_25: while(true){
+	r2 = (r0 + -1)|0;
+	r0 = (r3 - r0)|0;
+	heap8[r0+4] = r4;
+	r0 = r2;
+	if(r2 !=0) //_LBB805_19
+{
+continue _25;
+}
+else{
+break _1;
+}
+}
+}
+else{
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = 3;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = 12;
+	heap32[(g0+4)] = r2;
+	_ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7);
+	r_g0 = r1;
+	return;
+}
+}
+}
+else{
+	heap32[(r4)] = 1;
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+}
+} while(0);
+	r_g0 = r1;
+	return;
+}
+
+function _ZN12mandreel_b6410b64_decodeEPKcjPvj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = r0 & 3;
+	r2 = 0;
+	r1 = r1 != r2;
+	r1 = r1 & 1;
+	r3 = r0 >>> 2;
+	r1 = (r1 + r3)|0;
+	r3 = heap32[(fp+2)];
+	r1 = (r1 * 3)|0;
+	if(r3 !=0) //_LBB806_2
+{
+	r4 = heap32[(fp+3)];
+	if(uint(r1) <=uint(r4)) //_LBB806_4
+{
+	r1 = heap32[(fp)];
+	r4 = r3;
+	r5 = r2;
+_5: while(true){
+	if(r0 !=0) //_LBB806_5
+{
+	r6 = heapU8[r1];
+	if(r6 !=61) //_LBB806_7
+{
+	r7 = _ZN12mandreel_b64L11b64_indexesE;
+	r6 = heapU8[r7+r6];
+	if(r6 !=255) //_LBB806_9
+{
+	r5 = 0;
+	r7 = sp + -4;
+	heap8[r7+r2] = r6;
+__label__ = 8;
+}
+else{
+__label__ = 15;
+}
+}
+else{
+	r5 = (r5 + 1)|0;
+	r6 = sp + -4;
+	r7 = 0;
+	heap8[r6+r2] = r7;
+__label__ = 8;
+}
+if (__label__ == 8){
+	r2 = (r2 + 1)|0;
+	if(r2 ==4) //_LBB806_12
+{
+	r2 = heapU8[sp+-3];
+	r6 = heapU8[sp+-4];
+	r2 = r2 >>> 4;
+	r2 = r2 & 3;
+	r6 = r6 << 2;
+	r2 = r2 | r6;
+	heap8[r4] = r2;
+	if(r5 !=2) //_LBB806_14
+{
+	r2 = heapU8[sp+-2];
+	r6 = heapU8[sp+-3];
+	r2 = r2 >>> 2;
+	r2 = r2 & 15;
+	r6 = r6 << 4;
+	r2 = r2 | r6;
+	heap8[r4+1] = r2;
+	if(r5 !=1) //_LBB806_16
+{
+	r2 = heapU8[sp+-2];
+	r7 = heapU8[sp+-1];
+	r2 = r2 << 6;
+	r6 = (r4 + 3)|0;
+	r2 = (r2 + r7)|0;
+	heap8[r4+2] = r2;
+	if(r5 ==0) //_LBB806_18
+{
+	r2 = 0;
+	r4 = r6;
+	r5 = r2;
+}
+else{
+__label__ = 18;
+break _5;
+}
+}
+else{
+__label__ = 12;
+break _5;
+}
+}
+else{
+__label__ = 10;
+break _5;
+}
+}
+}
+	r0 = (r0 + -1)|0;
+	r1 = (r1 + 1)|0;
+}
+else{
+__label__ = 17;
+break _5;
+}
+}
+switch(__label__ ){//multiple entries
+case 17:
+	r6 = r4;
+break;
+case 12:
+	r6 = (r4 + 2)|0;
+break;
+case 10:
+	r6 = (r4 + 1)|0;
+break;
+}
+	r1 = (r6 - r3)|0;
+}
+else{
+	r1 = 0;
+}
+}
+	r_g0 = r1;
+	return;
+}
+
+function __mandreel_internal_SetResolution(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _ZL25s_mandreel_internal_width;
+	r1 = _ZL26s_mandreel_internal_height;
+	r0 = r0 >> 2;
+	r2 = heap32[(fp)];
+	r1 = r1 >> 2;
+	r3 = heap32[(fp+1)];
+	heap32[(r0)] = r2;
+	heap32[(r1)] = r3;
+	return;
+}
+
+function __keyEvent(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function __mouseDoubleClick(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function __mouseMove(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function __resize(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function __mouseButton(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function __mouseWheelDelta(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function iMandreel_TextureAsync_IsCompressed(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+var __label__ = 0;
+	i7 = sp + -1032;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = sp + -1024;
+	r4 = 0;
+_1: while(true){
+	r5 = heapU8[r0];
+	if(r5 ==0) //_LBB814_5
+{
+break _1;
+}
+else{
+	r6 = r5 << 24;
+	r6 = r6 >> 24;
+	r6 = (r6 + -65)|0;
+	r7 = 26;
+	r8 = (r5 + 32)|0;
+	r5 = uint(r6) < uint(r7) ? r8 : r5;
+	r6 = r5 & 255;
+	r7 = 47;
+	r5 = r6 == 92 ? r7 : r5;
+	r0 = (r0 + 1)|0;
+	r6 = r5 & 255;
+if(!(r6 !=47)) //_LBB814_4
+{
+	r6 = r4 & 255;
+	r4 = r5;
+	if(r6 ==47) //_LBB814_1
+{
+continue _1;
+}
+}
+	r4 = (r3 + 1)|0;
+	heap8[r3] = r5;
+	r3 = r4;
+	r4 = r5;
+continue _1;
+}
+}
+	r0 = _ZL24g_pFirstTextureAsyncInfo;
+	r4 = 0;
+	heap8[r3] = r4;
+_8: while(true){
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	if(r0 !=0) //_LBB814_6
+{
+	r3 = sp + -1024;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r3;
+	strcmp(i7);
+	r3 = r_g0;
+	if(r3 !=0) //_LBB814_8
+{
+	r0 = (r0 + 280)|0;
+continue _8;
+}
+else{
+__label__ = 7;
+break _8;
+}
+}
+else{
+__label__ = 10;
+break _8;
+}
+}
+switch(__label__ ){//multiple entries
+case 10:
+	r0 = -1;
+	r_g0 = r0;
+	return;
+break;
+case 7:
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r3 = heap32[(r0+65)];
+	heap32[(r1)] = r3;
+	r1 = r2 >> 2;
+	r2 = heap32[(r0+66)];
+	heap32[(r1)] = r2;
+	r0 = heap32[(r0+67)];
+	r_g0 = r0;
+	return;
+break;
+}
+}
+
+function iMandreel_TextureAsync_GetPackOffset(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+var __label__ = 0;
+	i7 = sp + -1032;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+3)];
+	r4 = sp + -1024;
+	r5 = 0;
+_1: while(true){
+	r6 = heapU8[r0];
+	if(r6 ==0) //_LBB815_5
+{
+break _1;
+}
+else{
+	r7 = r6 << 24;
+	r7 = r7 >> 24;
+	r7 = (r7 + -65)|0;
+	r8 = 26;
+	r9 = (r6 + 32)|0;
+	r6 = uint(r7) < uint(r8) ? r9 : r6;
+	r7 = r6 & 255;
+	r8 = 47;
+	r6 = r7 == 92 ? r8 : r6;
+	r0 = (r0 + 1)|0;
+	r7 = r6 & 255;
+if(!(r7 !=47)) //_LBB815_4
+{
+	r7 = r5 & 255;
+	r5 = r6;
+	if(r7 ==47) //_LBB815_1
+{
+continue _1;
+}
+}
+	r5 = (r4 + 1)|0;
+	heap8[r4] = r6;
+	r4 = r5;
+	r5 = r6;
+continue _1;
+}
+}
+	r0 = _ZL24g_pFirstTextureAsyncInfo;
+	r5 = 0;
+	heap8[r4] = r5;
+_8: while(true){
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	if(r0 !=0) //_LBB815_6
+{
+	r4 = sp + -1024;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	strcmp(i7);
+	r4 = r_g0;
+if(!(r4 !=0)) //_LBB815_9
+{
+	r4 = r0 >> 2;
+	r5 = heap32[(r4+64)];
+if(!(r5 ==-1)) //_LBB815_9
+{
+__label__ = 8;
+break _8;
+}
+}
+	r0 = (r0 + 280)|0;
+continue _8;
+}
+else{
+__label__ = 11;
+break _8;
+}
+}
+switch(__label__ ){//multiple entries
+case 11:
+	r0 = 0;
+	r_g0 = r0;
+	return;
+break;
+case 8:
+	r0 = r1 >> 2;
+	r1 = heap32[(r4+68)];
+	heap32[(r0)] = r1;
+	r0 = r2 >> 2;
+	r1 = heap32[(r4+69)];
+	heap32[(r0)] = r1;
+	r0 = heap32[(r4+64)];
+	r1 = _ZL17g_apPackFileNames;
+	r0 = r0 << 2;
+	r0 = (r1 + r0)|0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	strcpy(i7);
+	r0 = 1;
+	r_g0 = r0;
+	return;
+break;
+}
+}
+
+function _Z31MandreelDefaultDebugMsgCallbackiPKc(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	heap32[(g0)] = r0;
+	__sandbox_OutputDebugString(i7);
+	return;
+}
+
+function printf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -16408;var g0 = i7>>2; // save stack
+	r0 = (sp + 4)|0;
+	heap32[(fp+-4097)] = r0;
+	r1 = sp + -16384;
+	r2 = heap32[(fp)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 16384;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r0;
+	r0 = g_msgcallback;
+	r0 = r0 >> 2;
+	vsnprintf(i7);
+	r0 = heap32[(r0)];
+if(!(r0 ==0)) //_LBB817_2
+{
+	heap32[(g0)] = r1;
+	__sandbox_OutputDebugString(i7);
+}
+	return;
+}
+
+function _printf_error(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -16408;var g0 = i7>>2; // save stack
+	r0 = (sp + 4)|0;
+	heap32[(fp+-4097)] = r0;
+	r1 = sp + -16384;
+	r2 = heap32[(fp)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 16384;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r0;
+	r0 = g_msgcallback;
+	r0 = r0 >> 2;
+	vsnprintf(i7);
+	r0 = heap32[(r0)];
+if(!(r0 ==0)) //_LBB818_2
+{
+	heap32[(g0)] = r1;
+	__sandbox_OutputDebugString(i7);
+}
+	return;
+}
+
+function _printf_warning(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -16408;var g0 = i7>>2; // save stack
+	r0 = (sp + 4)|0;
+	heap32[(fp+-4097)] = r0;
+	r1 = sp + -16384;
+	r2 = heap32[(fp)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 16384;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r0;
+	r0 = g_msgcallback;
+	r0 = r0 >> 2;
+	vsnprintf(i7);
+	r0 = heap32[(r0)];
+if(!(r0 ==0)) //_LBB819_2
+{
+	heap32[(g0)] = r1;
+	__sandbox_OutputDebugString(i7);
+}
+	return;
+}
+
+function __mandreel_internal_preupdate(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = sp + -8;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	r1 = _ZGVZ21Mandreel_GetTickCountE7s_first;
+	gettimeofday(i7);
+	r2 = heapU8[r1];
+if(!(r2 !=0)) //_LBB820_2
+{
+	r2 = heap32[(fp+-2)];
+	r3 = r2 >> 31;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 1000000;
+	heap32[(g0+3)] = 0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	__muldi3(i7);
+	r4 = 1;
+	r5 = (r_g0 + r0)|0;
+	r6 = 0;
+	r7 = r0 >> 31;
+	r2 = uint(r5) < uint(r_g0) ? r4 : r6;
+	r6 = _ZZ21Mandreel_GetTickCountE7s_first;
+	r3 = (r_g1 + r7)|0;
+	r0 = uint(r5) < uint(r0) ? r4 : r2;
+	r2 = r6 >> 2;
+	r0 = (r3 + r0)|0;
+	heap32[(r2)] = r5;
+	heap32[(r2+1)] = r0;
+	heap8[r1] = r4;
+}
+	r0 = _ZZ29__mandreel_internal_preupdateE8s_bfirst_2E_b;
+	r1 = heapU8[r0];
+if(!(r1 != 0)) //_LBB820_4
+{
+	r1 = 1;
+	heap8[r0] = r1;
+}
+	return;
+}
+
+function __mandreel_internal_update(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = -32788;
+_1: while(true){
+	r1 = _ZL10s_aSockets;
+	r1 = (r1 - r0)|0;
+	r2 = heapU8[r1];
+if(!(r2 ==0)) //_LBB821_3
+{
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+-1)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 2048;
+	js_mandreel_flash_tcp_update(i7);
+}
+	r0 = (r0 + -32792)|0;
+	if(r0 !=-295124) //_LBB821_1
+{
+continue _1;
+}
+else{
+break _1;
+}
+}
+	r0 = _ZL7g_bInit_2E_b;
+	r1 = heapU8[r0];
+	if(r1 != 0) //_LBB821_6
+{
+	mandreel_audio_update(i7);
+	r1 = sp + -8;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	gettimeofday(i7);
+	r2 = heap32[(fp+-2)];
+	r3 = r2 >> 31;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 1000000;
+	heap32[(g0+3)] = 0;
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+1)];
+	__muldi3(i7);
+	r4 = (r_g0 + r1)|0;
+	r5 = 1;
+	r6 = 0;
+	r7 = r1 >> 31;
+	r2 = uint(r4) < uint(r_g0) ? r5 : r6;
+	r3 = (r_g1 + r7)|0;
+	r1 = uint(r4) < uint(r1) ? r5 : r2;
+	r1 = (r3 + r1)|0;
+	r2 = _ZGVZ21Mandreel_GetTickCountE7s_first;
+	r3 = heapU8[r2];
+if(!(r3 !=0)) //_LBB821_8
+{
+	r3 = _ZZ21Mandreel_GetTickCountE7s_first;
+	r3 = r3 >> 2;
+	heap32[(r3)] = r4;
+	heap32[(r3+1)] = r1;
+	heap8[r2] = r5;
+}
+	r2 = _ZZ21Mandreel_GetTickCountE7s_first;
+	r2 = r2 >> 2;
+	r3 = heap32[(r2)];
+	r2 = heap32[(r2+1)];
+	r1 = (r1 - r2)|0;
+	r2 = uint(r4) < uint(r3) ? r5 : r6;
+	r3 = (r4 - r3)|0;
+	r1 = (r1 - r2)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 1000;
+	heap32[(g0+3)] = 0;
+	__udivdi3(i7);
+	r1 = r_g0;
+	r2 = _ZL11g_aChannels;
+_12: while(true){
+	if(r6 <32) //_LBB821_9
+{
+	r3 = r2 >> 2;
+	r4 = heap32[(r3+72)];
+if(!(r4 !=1)) //_LBB821_33
+{
+	r4 = _ZL11g_aChannels;
+	r7 = (r6 * 292)|0;
+	r4 = (r4 + r7)|0;
+	r7 = heapU8[r4+268];
+if(!(r7 !=0)) //_LBB821_33
+{
+	r7 = heap32[(r3+71)];
+	if(r7 ==-1) //_LBB821_13
+{
+	r7 = heapU8[r0];
+	if(r7 !=1) //_LBB821_15
+{
+__label__ = 14;
+break _12;
+}
+else{
+	r7 = _ZL21g_pFirstSoundDuration;
+_21: while(true){
+	r7 = r7 >> 2;
+	r7 = heap32[(r7)];
+	if(r7 !=0) //_LBB821_16
+{
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r2;
+	strcmp(i7);
+	r8 = r_g0;
+	if(r8 !=0) //_LBB821_18
+{
+	r7 = (r7 + 260)|0;
+}
+else{
+__label__ = 16;
+break _21;
+}
+}
+else{
+__label__ = 19;
+break _21;
+}
+}
+switch(__label__ ){//multiple entries
+case 19:
+	r7 = _2E_str3224;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r2;
+	r7 = 0;
+	_printf_warning(i7);
+break;
+case 16:
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+64)];
+break;
+}
+	heap32[(r3+71)] = r7;
+}
+}
+	r8 = heap32[(r3+70)];
+	r7 = (r8 + r7)|0;
+if(!(uint(r7) >uint(r1))) //_LBB821_33
+{
+	r7 = heapU8[r0];
+	if(r7 != 0) //_LBB821_25
+{
+	r7 = (r6 + -1)|0;
+if(!(uint(r7) >uint(30))) //_LBB821_33
+{
+	r7 = heapU8[r4+269];
+if(!(r7 !=0)) //_LBB821_33
+{
+if(!(uint(r6) >uint(31))) //_LBB821_29
+{
+	r7 = heap32[(r3+68)];
+	r8 = heap32[(r3+69)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r8;
+	heap32[(g0+2)] = r7;
+	mandreel_audio_stopChannel(i7);
+	heap32[(r3+72)] = 0;
+	heap32[(r3+68)] = -1;
+}
+	r3 = _ZL15g_iFreeChannels;
+	r3 = r3 >> 2;
+	heap8[r4+269] = r5;
+	r4 = heap32[(r3)];
+	r7 = (r4 + -1)|0;
+_37: do {
+if(!(r7 <0)) //_LBB821_32
+{
+	r7 = r4;
+_39: while(true){
+	r8 = _ZL15g_aFreeChannels;
+	r9 = r7 << 2;
+	r8 = (r8 + r9)|0;
+	r8 = r8 >> 2;
+	r9 = heap32[(r8+-1)];
+	r7 = (r7 + -1)|0;
+	heap32[(r8)] = r9;
+if(!(r7 !=0)) //_LBB821_31
+{
+break _37;
+}
+}
+}
+} while(0);
+	r7 = _ZL15g_aFreeChannels;
+	r7 = r7 >> 2;
+	r4 = (r4 + 1)|0;
+	heap32[(r7)] = r6;
+	heap32[(r3)] = r4;
+}
+}
+}
+else{
+__label__ = 23;
+break _12;
+}
+}
+}
+}
+	r6 = (r6 + 1)|0;
+	r2 = (r2 + 292)|0;
+}
+else{
+__label__ = 34;
+break _12;
+}
+}
+switch(__label__ ){//multiple entries
+case 34:
+	return;
+break;
+case 14:
+	r7 = _2E_str221;
+	r0 = _2E_str1222;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 341;
+	_assert(i7);
+break;
+case 23:
+	r0 = _2E_str221;
+	r1 = _2E_str1222;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 621;
+	_assert(i7);
+break;
+}
+}
+else{
+	r0 = _2E_str221;
+	r1 = _2E_str1222;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = 361;
+	_assert(i7);
+}
+}
+
+function __mandreel_internal_init(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+var __label__ = 0;
+	i7 = sp + -2456;var g0 = i7>>2; // save stack
+	r0 = __mandreel_internal_SetResolution__index__;
+	r1 = _ZZ24__mandreel_internal_initE54s_723478567_mandreel___mandreel_internal_SetResolution;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	iMandreelRegisterExternalCallback(i7);
+	r0 = iMandreel_TextureAsync_IsCompressed__index__;
+	r1 = _ZZ24__mandreel_internal_initE56s_723478567_mandreel_iMandreel_TextureAsync_IsCompressed;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	iMandreelRegisterExternalCallback(i7);
+	r0 = iMandreel_TextureAsync_GetPackOffset__index__;
+	r1 = _ZZ24__mandreel_internal_initE57s_723478567_mandreel_iMandreel_TextureAsync_GetPackOffset;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	iMandreelRegisterExternalCallback(i7);
+	r0 = __resize__index__;
+	r1 = _ZZ24__mandreel_internal_initE29s_723478567_mandreel___resize;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	iMandreelRegisterExternalCallback(i7);
+	r0 = imandreel_restore_glcontext__index__;
+	r1 = _ZZ24__mandreel_internal_initE48s_723478567_mandreel_imandreel_restore_glcontext;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	iMandreelRegisterExternalCallback(i7);
+	r0 = imandreel_viewport_resize__index__;
+	r1 = _ZZ24__mandreel_internal_initE46s_723478567_mandreel_imandreel_viewport_resize;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	r0 = g_msgcallback;
+	r0 = r0 >> 2;
+	r1 = _Z31MandreelDefaultDebugMsgCallbackiPKc__index__;
+	iMandreelRegisterExternalCallback(i7);
+	r2 = _ZL7g_bInit_2E_b;
+	heap32[(r0)] = r1;
+	r0 = heapU8[r2];
+	if(r0 !=1) //_LBB822_2
+{
+	r0 = 1;
+	heap8[r2] = r0;
+	r1 = 0;
+	mandreel_audio_isLogEnabled(i7);
+	r2 = r_g0 != r1;
+	r3 = _ZL6g_bLog;
+	r2 = r2 & 1;
+	heap8[r3] = r2;
+	mandreel_audio_useMusicFunctions(i7);
+	r2 = heapU8[r3];
+	if(r2 !=0) //_LBB822_4
+{
+	r2 = _2E_str35256;
+	heap32[(g0)] = r2;
+	printf(i7);
+}
+else{
+	r1 = 0;
+}
+_6: while(true){
+	r2 = (r1 * 73)|0;
+	r3 = _ZL11g_aChannels;
+	r2 = r2 << 2;
+	r2 = (r3 + r2)|0;
+	r4 = (r1 * 292)|0;
+	r2 = r2 >> 2;
+	r5 = _ZL15g_aFreeChannels;
+	r6 = r1 << 2;
+	r5 = (r5 + r6)|0;
+	r3 = (r3 + r4)|0;
+	heap32[(r2+69)] = r1;
+	r2 = (r1 + 1)|0;
+	r4 = r5 >> 2;
+	heap8[r3+269] = r0;
+	heap32[(r4)] = r1;
+	r1 = r2;
+if(!(r2 !=32)) //_LBB822_5
+{
+break _6;
+}
+}
+	r1 = _ZL15g_iFreeChannels;
+	r1 = r1 >> 2;
+	heap32[(r1)] = 32;
+	mandreel_audio_init(i7);
+	r1 = _2E_str22243;
+	heap32[(g0)] = r1;
+	printf(i7);
+	heap32[(g0)] = 0;
+	_Z30mandreel_fopen_enable_checkfatb(i7);
+	r1 = _2E_str779;
+	r2 = _2E_str1648;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	fopen(i7);
+	r3 = r_g0;
+	heap32[(g0)] = 1;
+	_Z30mandreel_fopen_enable_checkfatb(i7);
+	if(r3 ==0) //_LBB822_19
+{
+	r4 = _2E_str24245;
+	r5 = 0;
+	heap32[(g0)] = r4;
+	_printf_error(i7);
+	r4 = r5;
+}
+else{
+	if(uint(r3) <uint(10)) //_LBB822_9
+{
+	r4 = _ZL13s_file_stdout;
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+7)];
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 2;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+}
+else{
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+7)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 2;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	r4 = r3;
+}
+	r5 = r4 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+5)];
+	heap32[(g0)] = r4;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	r4 = r_g0;
+	if(uint(r3) >uint(9)) //_LBB822_12
+{
+	r5 = r3;
+}
+else{
+	r5 = _ZL13s_file_stdout;
+}
+	r6 = r5 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+7)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	r5 = (r4 + 1)|0;
+	heap32[(g0)] = r5;
+	malloc(i7);
+	r5 = r_g0;
+	if(uint(r3) <uint(10)) //_LBB822_15
+{
+	r6 = _ZL13s_file_stdout;
+	r7 = r6 >> 2;
+	r7 = heap32[(r7)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+1)];
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = 1;
+	heap32[(g0+3)] = r4;
+	r8 = 0;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	heap8[r5+r4] = r8;
+}
+else{
+	r6 = r3 >> 2;
+	r6 = heap32[(r6)];
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+1)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = 1;
+	heap32[(g0+3)] = r4;
+	r7 = 0;
+	__FUNCTION_TABLE__[(r6)>>2](i7);
+	heap8[r5+r4] = r7;
+	r6 = r3;
+}
+	r7 = r6 >> 2;
+	r7 = heap32[(r7)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+4)];
+	heap32[(g0)] = r6;
+	__FUNCTION_TABLE__[(r7)>>2](i7);
+	if(uint(r3) >uint(9)) //_LBB822_18
+{
+	heap32[(g0)] = r6;
+	_ZdlPv(i7);
+}
+}
+	r3 = sp + -128;
+	heap32[(g0)] = r3;
+	mandreel_audio_getAudioDriverName(i7);
+	r6 = _2E_str4225;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r6;
+	strcmp(i7);
+	r3 = r_g0;
+if(!(r5 ==0)) //_LBB822_198
+{
+_28: do {
+if(!(r4 <1)) //_LBB822_197
+{
+	r6 = sp + -1408;
+	r7 = (r6 + 1)|0;
+	r8 = (r5 + 1)|0;
+	r9 = 0;
+_30: while(true){
+	r10 = (r5 + r9)|0;
+	r11 = heapU8[r5+r9];
+if(!(r11 ==13)) //_LBB822_25
+{
+	if(r9 <r4) //_LBB822_26
+{
+	r11 = r9;
+_35: while(true){
+	r9 = (r11 + 1)|0;
+	r11 = heapU8[r8+r11];
+	if(r11 ==13) //_LBB822_29
+{
+break _35;
+}
+else{
+	r11 = r9;
+if(!(r9 <r4)) //_LBB822_27
+{
+break _35;
+}
+}
+}
+}
+}
+	r11 = _ZL10strtok_pos;
+	r12 = 0;
+	r11 = r11 >> 2;
+	heap8[r5+r9] = r12;
+	r13 = heap32[(r11)];
+	r9 = (r9 + 2)|0;
+	r10 = r10 == 0 ? r13 : r10;
+_39: while(true){
+	r13 = heapU8[r10];
+	if(r13 ==0) //_LBB822_47
+{
+__label__ = 44;
+break _39;
+}
+else{
+	r14 = r12;
+_42: while(true){
+	if(r14 ==-1) //_LBB822_36
+{
+__label__ = 34;
+break _39;
+}
+else{
+	r15 = _2E_str4133;
+	r15 = (r15 - r14)|0;
+	r16 = r13 & 255;
+	r15 = heapU8[r15];
+	if(r16 !=r15) //_LBB822_30
+{
+	r14 = (r14 + -1)|0;
+}
+else{
+break _42;
+}
+}
+}
+	r10 = (r10 + 1)|0;
+}
+}
+_47: do {
+if (__label__ == 34){
+	if(r13 ==0) //_LBB822_47
+{
+__label__ = 44;
+}
+else{
+	r12 = r10;
+_50: while(true){
+	r13 = heapU8[r12];
+	if(r13 ==0) //_LBB822_44
+{
+break _50;
+}
+else{
+	r14 = r0;
+_53: while(true){
+	if(r14 !=0) //_LBB822_38
+{
+	r15 = _2E_str4133;
+	r15 = (r15 - r14)|0;
+	r16 = r13 & 255;
+	r15 = heapU8[r15+1];
+	if(r16 ==r15) //_LBB822_44
+{
+break _50;
+}
+else{
+	r14 = (r14 + -1)|0;
+}
+}
+else{
+break _53;
+}
+}
+	r12 = (r12 + 1)|0;
+}
+}
+	r13 = heapU8[r12];
+	if(r13 !=0) //_LBB822_46
+{
+	r13 = (r12 + 1)|0;
+	r14 = 0;
+	heap8[r12] = r14;
+	r12 = r13;
+}
+	heap32[(r11)] = r12;
+	r13 = _2E_str26247;
+	heap32[(g0)] = r13;
+	heap32[(g0+1)] = r10;
+	strcmp(i7);
+	r13 = r_g0;
+	if(r13 !=0) //_LBB822_71
+{
+	r13 = _2E_str29250;
+	heap32[(g0)] = r13;
+	heap32[(g0+1)] = r10;
+	strcmp(i7);
+	r13 = r_g0;
+	if(r13 !=0) //_LBB822_154
+{
+	if(r3 !=0) //_LBB822_70
+{
+__label__ = 66;
+break _47;
+}
+else{
+	r13 = _2E_str32253;
+	heap32[(g0)] = r13;
+	heap32[(g0+1)] = r10;
+	strcmp(i7);
+	r13 = r_g0;
+	if(r13 !=0) //_LBB822_176
+{
+	r13 = _2E_str33254;
+	heap32[(g0)] = r13;
+	heap32[(g0+1)] = r10;
+	strcmp(i7);
+	r10 = r_g0;
+	if(r10 !=0) //_LBB822_70
+{
+__label__ = 66;
+break _47;
+}
+else{
+__label__ = 173; //SET chanka
+_69: while(true){
+	r10 = heapU8[r12];
+	if(r10 ==0) //_LBB822_184
+{
+__label__ = 175;
+break _69;
+}
+else{
+	r13 = 0;
+_72: while(true){
+	if(r13 ==-1) //_LBB822_185
+{
+__label__ = 176;
+break _69;
+}
+else{
+	r14 = _2E_str4133;
+	r14 = (r14 - r13)|0;
+	r15 = r10 & 255;
+	r14 = heapU8[r14];
+	if(r15 !=r14) //_LBB822_178
+{
+	r13 = (r13 + -1)|0;
+}
+else{
+break _72;
+}
+}
+}
+	r12 = (r12 + 1)|0;
+}
+}
+if (__label__ == 176){
+	if(r10 ==0) //_LBB822_184
+{
+__label__ = 175;
+}
+else{
+	r13 = r12;
+_80: while(true){
+	r10 = heapU8[r13];
+	if(r10 ==0) //_LBB822_193
+{
+break _80;
+}
+else{
+	r14 = 1;
+_83: while(true){
+	if(r14 !=0) //_LBB822_187
+{
+	r15 = _2E_str4133;
+	r15 = (r15 - r14)|0;
+	r16 = r10 & 255;
+	r15 = heapU8[r15+1];
+	if(r16 ==r15) //_LBB822_193
+{
+break _80;
+}
+else{
+	r14 = (r14 + -1)|0;
+}
+}
+else{
+break _83;
+}
+}
+	r13 = (r13 + 1)|0;
+}
+}
+	r10 = heapU8[r13];
+	if(r10 !=0) //_LBB822_195
+{
+	r14 = (r13 + 1)|0;
+	r10 = 0;
+	heap8[r13] = r10;
+	r10 = r12;
+	r12 = r14;
+__label__ = 187;
+}
+else{
+	r10 = r12;
+	r12 = r13;
+__label__ = 187;
+}
+}
+}
+if (__label__ == 175){
+	r10 = 0;
+}
+	heap32[(r11)] = r12;
+	r11 = sp + -384;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r10;
+	strcpy(i7);
+__label__ = 66;
+break _47;
+}
+}
+else{
+_95: while(true){
+	r10 = heapU8[r12];
+	if(r10 ==0) //_LBB822_163
+{
+__label__ = 155;
+break _95;
+}
+else{
+	r13 = 0;
+_98: while(true){
+	if(r13 ==-1) //_LBB822_164
+{
+__label__ = 156;
+break _95;
+}
+else{
+	r14 = _2E_str4133;
+	r14 = (r14 - r13)|0;
+	r15 = r10 & 255;
+	r14 = heapU8[r14];
+	if(r15 !=r14) //_LBB822_157
+{
+	r13 = (r13 + -1)|0;
+}
+else{
+break _98;
+}
+}
+}
+	r12 = (r12 + 1)|0;
+}
+}
+if (__label__ == 156){
+	if(r10 ==0) //_LBB822_163
+{
+__label__ = 155;
+}
+else{
+	r13 = r12;
+_106: while(true){
+	r10 = heapU8[r13];
+	if(r10 ==0) //_LBB822_172
+{
+break _106;
+}
+else{
+	r14 = 1;
+_109: while(true){
+	if(r14 !=0) //_LBB822_166
+{
+	r15 = _2E_str4133;
+	r15 = (r15 - r14)|0;
+	r16 = r10 & 255;
+	r15 = heapU8[r15+1];
+	if(r16 ==r15) //_LBB822_172
+{
+break _106;
+}
+else{
+	r14 = (r14 + -1)|0;
+}
+}
+else{
+break _109;
+}
+}
+	r13 = (r13 + 1)|0;
+}
+}
+	r10 = heapU8[r13];
+	if(r10 !=0) //_LBB822_174
+{
+	r14 = (r13 + 1)|0;
+	r10 = 0;
+	heap8[r13] = r10;
+	r10 = r12;
+	r12 = r14;
+__label__ = 167;
+}
+else{
+	r10 = r12;
+	r12 = r13;
+__label__ = 167;
+}
+}
+}
+if (__label__ == 155){
+	r10 = 0;
+}
+	heap32[(r11)] = r12;
+	r11 = sp + -2432;
+	r12 = _2E_str12233;
+	r13 = sp + -384;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r12;
+	heap32[(g0+2)] = r13;
+	heap32[(g0+3)] = r10;
+	sprintf(i7);
+	heap32[(g0)] = r11;
+	mandreel_add_valid_fopenfile(i7);
+__label__ = 66;
+break _47;
+}
+}
+}
+else{
+	r10 = (r12 + 1)|0;
+	r13 = 0;
+	r14 = r12;
+_122: while(true){
+	r15 = heapU8[r12+r13];
+	if(r15 ==0) //_LBB822_90
+{
+__label__ = 85;
+break _122;
+}
+else{
+	r16 = 0;
+_125: while(true){
+	if(r16 ==-1) //_LBB822_79
+{
+__label__ = 75;
+break _122;
+}
+else{
+	r17 = _2E_str4133;
+	r17 = (r17 - r16)|0;
+	r18 = r15 & 255;
+	r17 = heapU8[r17];
+	if(r18 !=r17) //_LBB822_73
+{
+	r16 = (r16 + -1)|0;
+}
+else{
+break _125;
+}
+}
+}
+	r13 = (r13 + 1)|0;
+	r14 = (r14 + 1)|0;
+	r10 = (r10 + 1)|0;
+}
+}
+_130: do {
+if (__label__ == 75){
+	if(r15 ==0) //_LBB822_90
+{
+__label__ = 85;
+}
+else{
+	r15 = (r12 + r13)|0;
+_133: while(true){
+	r16 = heapU8[r14];
+	if(r16 ==0) //_LBB822_87
+{
+break _133;
+}
+else{
+	r17 = 1;
+_136: while(true){
+	if(r17 !=0) //_LBB822_81
+{
+	r18 = _2E_str4133;
+	r18 = (r18 - r17)|0;
+	r19 = r16 & 255;
+	r18 = heapU8[r18+1];
+	if(r19 ==r18) //_LBB822_87
+{
+break _133;
+}
+else{
+	r17 = (r17 + -1)|0;
+}
+}
+else{
+break _136;
+}
+}
+	r14 = (r14 + 1)|0;
+}
+}
+	r16 = heapU8[r14];
+	if(r16 !=0) //_LBB822_89
+{
+	r16 = (r14 + 1)|0;
+	r17 = 0;
+	heap8[r14] = r17;
+	r14 = r16;
+}
+	r17 = 0;
+	r16 = r15 == r17;
+	heap32[(r11)] = r14;
+_145: while(true){
+	r18 = heapU8[r14];
+	if(r18 ==0) //_LBB822_109
+{
+__label__ = 103;
+break _145;
+}
+else{
+	r19 = r17;
+_148: while(true){
+	if(r19 ==-1) //_LBB822_98
+{
+__label__ = 93;
+break _145;
+}
+else{
+	r20 = _2E_str4133;
+	r20 = (r20 - r19)|0;
+	r21 = r18 & 255;
+	r20 = heapU8[r20];
+	if(r21 !=r20) //_LBB822_92
+{
+	r19 = (r19 + -1)|0;
+}
+else{
+break _148;
+}
+}
+}
+	r14 = (r14 + 1)|0;
+}
+}
+if (__label__ == 93){
+if(!(r18 ==0)) //_LBB822_109
+{
+	r17 = r14;
+_156: while(true){
+	r18 = heapU8[r17];
+	if(r18 ==0) //_LBB822_106
+{
+break _156;
+}
+else{
+	r19 = 1;
+_159: while(true){
+	if(r19 !=0) //_LBB822_100
+{
+	r20 = _2E_str4133;
+	r20 = (r20 - r19)|0;
+	r21 = r18 & 255;
+	r20 = heapU8[r20+1];
+	if(r21 ==r20) //_LBB822_106
+{
+break _156;
+}
+else{
+	r19 = (r19 + -1)|0;
+}
+}
+else{
+break _159;
+}
+}
+	r17 = (r17 + 1)|0;
+}
+}
+	r18 = heapU8[r17];
+	if(r18 !=0) //_LBB822_108
+{
+	r18 = (r17 + 1)|0;
+	r19 = 0;
+	heap8[r17] = r19;
+	r17 = r18;
+}
+	heap32[(r11)] = r17;
+_168: while(true){
+	r18 = heapU8[r17];
+	if(r18 ==0) //_LBB822_128
+{
+__label__ = 121;
+break _168;
+}
+else{
+	r19 = 0;
+_171: while(true){
+	if(r19 ==-1) //_LBB822_117
+{
+__label__ = 111;
+break _168;
+}
+else{
+	r20 = _2E_str4133;
+	r20 = (r20 - r19)|0;
+	r21 = r18 & 255;
+	r20 = heapU8[r20];
+	if(r21 !=r20) //_LBB822_111
+{
+	r19 = (r19 + -1)|0;
+}
+else{
+break _171;
+}
+}
+}
+	r17 = (r17 + 1)|0;
+}
+}
+if (__label__ == 111){
+if(!(r18 ==0)) //_LBB822_128
+{
+	r15 = r17;
+_179: while(true){
+	r16 = heapU8[r15];
+	if(r16 ==0) //_LBB822_125
+{
+break _179;
+}
+else{
+	r18 = 1;
+_182: while(true){
+	if(r18 !=0) //_LBB822_119
+{
+	r19 = _2E_str4133;
+	r19 = (r19 - r18)|0;
+	r20 = r16 & 255;
+	r19 = heapU8[r19+1];
+	if(r20 ==r19) //_LBB822_125
+{
+break _179;
+}
+else{
+	r18 = (r18 + -1)|0;
+}
+}
+else{
+break _182;
+}
+}
+	r15 = (r15 + 1)|0;
+}
+}
+	r16 = heapU8[r15];
+	if(r16 !=0) //_LBB822_127
+{
+	r16 = (r15 + 1)|0;
+	r18 = 0;
+	heap8[r15] = r18;
+	r15 = r16;
+}
+	heap32[(r11)] = r15;
+	heap32[(g0)] = 264;
+	_Znwj(i7);
+	r11 = r_g0;
+	heap32[(g0)] = r17;
+	heap32[(g0+1)] = 0;
+	r15 = 0;
+	r16 = -1;
+	r17 = r11 >> 2;
+	strtol(i7);
+	heap32[(r17+64)] = r_g0;
+_191: while(true){
+	r17 = r15;
+	r18 = heapU8[r10+r17];
+	if(r18 !=46) //_LBB822_133
+{
+	if(r18 ==0) //_LBB822_137
+{
+break _191;
+}
+else{
+if(!(r18 ==47)) //_LBB822_136
+{
+	r15 = (r17 + 1)|0;
+	if(r18 !=92) //_LBB822_131
+{
+continue _191;
+}
+}
+	r16 = -1;
+}
+}
+else{
+	r16 = r17;
+}
+	r15 = (r17 + 1)|0;
+}
+	if(r16 ==-1) //_LBB822_143
+{
+	r10 = (r12 + r13)|0;
+	r12 = _2E_str12233;
+	r10 = (r10 + 1)|0;
+	r15 = _2E_str2131;
+	heap32[(g0)] = r6;
+	heap32[(g0+1)] = r12;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r15;
+	sprintf(i7);
+}
+else{
+_205: do {
+	if(r16 >0) //_LBB822_140
+{
+	r10 = (r12 + 1)|0;
+	r12 = 0;
+_207: while(true){
+	r15 = (r12 + r10)|0;
+	r17 = (r12 + 1)|0;
+	r15 = heapU8[r15+r13];
+	heap8[r6+r12] = r15;
+	r12 = r17;
+if(!(r16 !=r17)) //_LBB822_141
+{
+break _205;
+}
+}
+}
+else{
+	r16 = 0;
+}
+} while(0);
+	r10 = (r6 + r16)|0;
+	r12 = _2E_str2131;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r12;
+	strcpy(i7);
+}
+	r10 = heapU8[sp+-1408];
+_212: do {
+	if(r10 ==0) //_LBB822_146
+{
+	r15 = r11;
+}
+else{
+	r12 = r7;
+	r15 = r11;
+_215: while(true){
+	r16 = r10 & 255;
+	if(r16 !=92) //_LBB822_149
+{
+	r16 = r10 << 24;
+	r16 = r16 >> 24;
+	r16 = (r16 + -65)|0;
+	r13 = 26;
+	r17 = (r10 + 32)|0;
+	r10 = uint(r16) < uint(r13) ? r17 : r10;
+}
+else{
+	r10 = 47;
+}
+	heap8[r15] = r10;
+	r10 = heapU8[r12];
+	r15 = (r15 + 1)|0;
+	r12 = (r12 + 1)|0;
+if(!(r10 !=0)) //_LBB822_147
+{
+break _212;
+}
+}
+}
+} while(0);
+	r10 = _ZL21g_pFirstSoundDuration;
+	r12 = 0;
+	r10 = r10 >> 2;
+	heap8[r15] = r12;
+	r12 = r11 >> 2;
+	r15 = heap32[(r10)];
+	heap32[(r12+65)] = r15;
+	heap32[(r10)] = r11;
+	r10 = heapU8[r14];
+	if(r10 ==48) //_LBB822_70
+{
+__label__ = 66;
+break _47;
+}
+else{
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = 0;
+	mandreel_audio_createBuffer(i7);
+__label__ = 66;
+break _47;
+}
+}
+}
+	heap32[(r11)] = r17;
+__label__ = 146;
+break _130;
+}
+}
+	heap32[(r11)] = r14;
+__label__ = 146;
+}
+}
+} while(0);
+if (__label__ == 85){
+	r16 = 1;
+	r15 = 0;
+	r10 = (r12 + r13)|0;
+	heap32[(r11)] = r10;
+}
+	r10 = _2E_str30251;
+	r11 = _2E_str31252;
+	r10 = r16 != 0 ? r10 : r15;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r10;
+	_printf_warning(i7);
+__label__ = 66;
+break _47;
+}
+}
+else{
+_228: while(true){
+	r10 = heapU8[r12];
+	if(r10 ==0) //_LBB822_56
+{
+__label__ = 52;
+break _228;
+}
+else{
+	r13 = 0;
+_231: while(true){
+	if(r13 ==-1) //_LBB822_57
+{
+__label__ = 53;
+break _228;
+}
+else{
+	r14 = _2E_str4133;
+	r14 = (r14 - r13)|0;
+	r15 = r10 & 255;
+	r14 = heapU8[r14];
+	if(r15 !=r14) //_LBB822_50
+{
+	r13 = (r13 + -1)|0;
+}
+else{
+break _231;
+}
+}
+}
+	r12 = (r12 + 1)|0;
+}
+}
+if (__label__ == 53){
+	if(r10 ==0) //_LBB822_56
+{
+__label__ = 52;
+}
+else{
+	r13 = r12;
+_239: while(true){
+	r10 = heapU8[r13];
+	if(r10 ==0) //_LBB822_65
+{
+break _239;
+}
+else{
+	r14 = 1;
+_242: while(true){
+	if(r14 !=0) //_LBB822_59
+{
+	r15 = _2E_str4133;
+	r15 = (r15 - r14)|0;
+	r16 = r10 & 255;
+	r15 = heapU8[r15+1];
+	if(r16 ==r15) //_LBB822_65
+{
+break _239;
+}
+else{
+	r14 = (r14 + -1)|0;
+}
+}
+else{
+break _242;
+}
+}
+	r13 = (r13 + 1)|0;
+}
+}
+	r10 = heapU8[r13];
+	if(r10 !=0) //_LBB822_67
+{
+	r14 = (r13 + 1)|0;
+	r10 = 0;
+	heap8[r13] = r10;
+	r10 = r12;
+	r12 = r14;
+__label__ = 64;
+}
+else{
+	r10 = r12;
+	r12 = r13;
+__label__ = 64;
+}
+}
+}
+if (__label__ == 52){
+	r10 = 0;
+}
+	heap32[(r11)] = r12;
+	r11 = _2E_str27248;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r11;
+	strcmp(i7);
+	r12 = r_g0;
+	if(r12 ==0) //_LBB822_70
+{
+__label__ = 66;
+}
+else{
+	r12 = _2E_str28249;
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r10;
+	heap32[(g0+2)] = r11;
+	_printf_error(i7);
+__label__ = 66;
+}
+}
+}
+}
+} while(0);
+if (__label__ == 44){
+	heap32[(r11)] = r10;
+}
+if(!(r9 <r4)) //_LBB822_23
+{
+break _28;
+}
+}
+}
+} while(0);
+	heap32[(g0)] = r5;
+	free(i7);
+}
+	__mandreel_internal_CreateWindow(i7);
+	heap32[(g0)] = 0;
+	_Z30mandreel_fopen_enable_checkfatb(i7);
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r2;
+	fopen(i7);
+	r0 = r_g0;
+	heap32[(g0)] = 1;
+	_Z30mandreel_fopen_enable_checkfatb(i7);
+if(!(r0 ==0)) //_LBB822_389
+{
+	if(uint(r0) <uint(10)) //_LBB822_201
+{
+	r1 = _ZL13s_file_stdout;
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+7)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 2;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+}
+else{
+	r1 = r0 >> 2;
+	r1 = heap32[(r1)];
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+7)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 2;
+	__FUNCTION_TABLE__[(r1)>>2](i7);
+	r1 = r0;
+}
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+5)];
+	heap32[(g0)] = r1;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	r1 = r_g0;
+	if(uint(r0) >uint(9)) //_LBB822_204
+{
+	r2 = r0;
+}
+else{
+	r2 = _ZL13s_file_stdout;
+}
+	r3 = r2 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+7)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = 0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r2 = (r1 + 1)|0;
+	heap32[(g0)] = r2;
+	malloc(i7);
+	r2 = r_g0;
+	if(uint(r0) <uint(10)) //_LBB822_207
+{
+	r3 = _ZL13s_file_stdout;
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+1)];
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 1;
+	heap32[(g0+3)] = r1;
+	r5 = 0;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+	heap8[r2+r1] = r5;
+}
+else{
+	r3 = r0 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+1)];
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = 1;
+	heap32[(g0+3)] = r1;
+	r4 = 0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	heap8[r2+r1] = r4;
+	r3 = r0;
+}
+	r4 = r3 >> 2;
+	r4 = heap32[(r4)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+4)];
+	heap32[(g0)] = r3;
+	__FUNCTION_TABLE__[(r4)>>2](i7);
+if(!(uint(r0) <uint(10))) //_LBB822_210
+{
+	heap32[(g0)] = r3;
+	_ZdlPv(i7);
+}
+if(!(r2 ==0)) //_LBB822_389
+{
+	r0 = (r2 + 1)|0;
+	r3 = -1;
+	r4 = 0;
+	r5 = r4;
+_278: while(true){
+	r6 = r3;
+_280: while(true){
+	if(r5 <r1) //_LBB822_212
+{
+	r3 = (r2 + r5)|0;
+	r7 = heapU8[r2+r5];
+	if(r7 ==13) //_LBB822_214
+{
+	r7 = r5;
+}
+else{
+_285: while(true){
+	r7 = (r5 + 1)|0;
+	r5 = heapU8[r0+r5];
+	if(r5 ==13) //_LBB822_217
+{
+break _285;
+}
+else{
+	r5 = r7;
+if(!(r7 <r1)) //_LBB822_215
+{
+break _285;
+}
+}
+}
+}
+	r5 = _ZL10strtok_pos;
+	r8 = 0;
+	r9 = r5 >> 2;
+	heap8[r2+r7] = r8;
+	r10 = heap32[(r9)];
+	r5 = (r7 + 2)|0;
+	r3 = r3 == 0 ? r10 : r3;
+_289: while(true){
+	r7 = heapU8[r3];
+	if(r7 ==0) //_LBB822_235
+{
+__label__ = 224;
+break _289;
+}
+else{
+	r10 = r8;
+_292: while(true){
+	if(r10 ==-1) //_LBB822_224
+{
+__label__ = 214;
+break _289;
+}
+else{
+	r11 = _2E_str4133;
+	r11 = (r11 - r10)|0;
+	r12 = r7 & 255;
+	r11 = heapU8[r11];
+	if(r12 !=r11) //_LBB822_218
+{
+	r10 = (r10 + -1)|0;
+}
+else{
+break _292;
+}
+}
+}
+	r3 = (r3 + 1)|0;
+}
+}
+if (__label__ == 214){
+if(!(r7 ==0)) //_LBB822_235
+{
+	r7 = r3;
+_300: while(true){
+	r8 = heapU8[r7];
+	if(r8 ==0) //_LBB822_232
+{
+break _300;
+}
+else{
+	r10 = 1;
+_303: while(true){
+	if(r10 !=0) //_LBB822_226
+{
+	r11 = _2E_str4133;
+	r11 = (r11 - r10)|0;
+	r12 = r8 & 255;
+	r11 = heapU8[r11+1];
+	if(r12 ==r11) //_LBB822_232
+{
+break _300;
+}
+else{
+	r10 = (r10 + -1)|0;
+}
+}
+else{
+break _303;
+}
+}
+	r7 = (r7 + 1)|0;
+}
+}
+	r8 = heapU8[r7];
+	if(r8 !=0) //_LBB822_234
+{
+	r8 = (r7 + 1)|0;
+	r10 = 0;
+	heap8[r7] = r10;
+	r7 = r8;
+}
+	heap32[(r9)] = r7;
+	r8 = _2E_str3782;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r3;
+	strcmp(i7);
+	r8 = r_g0;
+	if(r8 !=0) //_LBB822_341
+{
+	r8 = _2E_str5784;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r3;
+	strcmp(i7);
+	r8 = r_g0;
+	if(r8 !=0) //_LBB822_385
+{
+	r7 = _2E_str6785;
+	heap32[(g0)] = r7;
+	heap32[(g0+1)] = r3;
+	r3 = -1;
+	strcmp(i7);
+	r7 = r_g0;
+	if(r7 !=0) //_LBB822_387
+{
+continue _280;
+}
+else{
+continue _278;
+}
+}
+else{
+break _280;
+}
+}
+else{
+_315: while(true){
+	r3 = heapU8[r7];
+	if(r3 ==0) //_LBB822_255
+{
+__label__ = 242;
+break _315;
+}
+else{
+	r8 = 0;
+_318: while(true){
+	if(r8 ==-1) //_LBB822_244
+{
+__label__ = 232;
+break _315;
+}
+else{
+	r10 = _2E_str4133;
+	r10 = (r10 - r8)|0;
+	r11 = r3 & 255;
+	r10 = heapU8[r10];
+	if(r11 !=r10) //_LBB822_238
+{
+	r8 = (r8 + -1)|0;
+}
+else{
+break _318;
+}
+}
+}
+	r7 = (r7 + 1)|0;
+}
+}
+_323: do {
+if (__label__ == 232){
+	if(r3 ==0) //_LBB822_255
+{
+__label__ = 242;
+}
+else{
+	r3 = r7;
+_326: while(true){
+	r8 = heapU8[r3];
+	if(r8 ==0) //_LBB822_252
+{
+break _326;
+}
+else{
+	r10 = 1;
+_329: while(true){
+	if(r10 !=0) //_LBB822_246
+{
+	r11 = _2E_str4133;
+	r11 = (r11 - r10)|0;
+	r12 = r8 & 255;
+	r11 = heapU8[r11+1];
+	if(r12 ==r11) //_LBB822_252
+{
+break _326;
+}
+else{
+	r10 = (r10 + -1)|0;
+}
+}
+else{
+break _329;
+}
+}
+	r3 = (r3 + 1)|0;
+}
+}
+	r8 = heapU8[r3];
+	if(r8 !=0) //_LBB822_254
+{
+	r8 = (r3 + 1)|0;
+	r10 = 0;
+	heap8[r3] = r10;
+	r3 = r8;
+}
+	heap32[(r9)] = r3;
+_338: while(true){
+	r8 = heapU8[r3];
+	if(r8 ==0) //_LBB822_274
+{
+__label__ = 260;
+break _338;
+}
+else{
+	r10 = 0;
+_341: while(true){
+	if(r10 ==-1) //_LBB822_263
+{
+__label__ = 250;
+break _338;
+}
+else{
+	r11 = _2E_str4133;
+	r11 = (r11 - r10)|0;
+	r12 = r8 & 255;
+	r11 = heapU8[r11];
+	if(r12 !=r11) //_LBB822_257
+{
+	r10 = (r10 + -1)|0;
+}
+else{
+break _341;
+}
+}
+}
+	r3 = (r3 + 1)|0;
+}
+}
+if (__label__ == 250){
+if(!(r8 ==0)) //_LBB822_274
+{
+	r8 = r3;
+_349: while(true){
+	r10 = heapU8[r8];
+	if(r10 ==0) //_LBB822_271
+{
+break _349;
+}
+else{
+	r11 = 1;
+_352: while(true){
+	if(r11 !=0) //_LBB822_265
+{
+	r12 = _2E_str4133;
+	r12 = (r12 - r11)|0;
+	r13 = r10 & 255;
+	r12 = heapU8[r12+1];
+	if(r13 ==r12) //_LBB822_271
+{
+break _349;
+}
+else{
+	r11 = (r11 + -1)|0;
+}
+}
+else{
+break _352;
+}
+}
+	r8 = (r8 + 1)|0;
+}
+}
+	r10 = heapU8[r8];
+	if(r10 !=0) //_LBB822_273
+{
+	r10 = (r8 + 1)|0;
+	r11 = 0;
+	heap8[r8] = r11;
+	r8 = r10;
+}
+	heap32[(r9)] = r8;
+_361: while(true){
+	r10 = heapU8[r8];
+	if(r10 ==0) //_LBB822_293
+{
+__label__ = 278;
+break _361;
+}
+else{
+	r11 = 0;
+_364: while(true){
+	if(r11 ==-1) //_LBB822_282
+{
+__label__ = 268;
+break _361;
+}
+else{
+	r12 = _2E_str4133;
+	r12 = (r12 - r11)|0;
+	r13 = r10 & 255;
+	r12 = heapU8[r12];
+	if(r13 !=r12) //_LBB822_276
+{
+	r11 = (r11 + -1)|0;
+}
+else{
+break _364;
+}
+}
+}
+	r8 = (r8 + 1)|0;
+}
+}
+if (__label__ == 268){
+if(!(r10 ==0)) //_LBB822_293
+{
+	r10 = r8;
+_372: while(true){
+	r11 = heapU8[r10];
+	if(r11 ==0) //_LBB822_290
+{
+break _372;
+}
+else{
+	r12 = 1;
+_375: while(true){
+	if(r12 !=0) //_LBB822_284
+{
+	r13 = _2E_str4133;
+	r13 = (r13 - r12)|0;
+	r14 = r11 & 255;
+	r13 = heapU8[r13+1];
+	if(r14 ==r13) //_LBB822_290
+{
+break _372;
+}
+else{
+	r12 = (r12 + -1)|0;
+}
+}
+else{
+break _375;
+}
+}
+	r10 = (r10 + 1)|0;
+}
+}
+	r11 = heapU8[r10];
+	if(r11 !=0) //_LBB822_292
+{
+	r11 = (r10 + 1)|0;
+	r12 = 0;
+	heap8[r10] = r12;
+	r10 = r11;
+}
+	heap32[(r9)] = r10;
+_384: while(true){
+	r11 = heapU8[r10];
+	if(r11 ==0) //_LBB822_312
+{
+__label__ = 296;
+break _384;
+}
+else{
+	r12 = 0;
+_387: while(true){
+	if(r12 ==-1) //_LBB822_301
+{
+__label__ = 286;
+break _384;
+}
+else{
+	r13 = _2E_str4133;
+	r13 = (r13 - r12)|0;
+	r14 = r11 & 255;
+	r13 = heapU8[r13];
+	if(r14 !=r13) //_LBB822_295
+{
+	r12 = (r12 + -1)|0;
+}
+else{
+break _387;
+}
+}
+}
+	r10 = (r10 + 1)|0;
+}
+}
+if (__label__ == 286){
+if(!(r11 ==0)) //_LBB822_312
+{
+	r11 = r10;
+_395: while(true){
+	r12 = heapU8[r11];
+	if(r12 ==0) //_LBB822_309
+{
+break _395;
+}
+else{
+	r13 = 1;
+_398: while(true){
+	if(r13 !=0) //_LBB822_303
+{
+	r14 = _2E_str4133;
+	r14 = (r14 - r13)|0;
+	r15 = r12 & 255;
+	r14 = heapU8[r14+1];
+	if(r15 ==r14) //_LBB822_309
+{
+break _395;
+}
+else{
+	r13 = (r13 + -1)|0;
+}
+}
+else{
+break _398;
+}
+}
+	r11 = (r11 + 1)|0;
+}
+}
+	r12 = heapU8[r11];
+	if(r12 !=0) //_LBB822_311
+{
+	r12 = (r11 + 1)|0;
+	r13 = 0;
+	heap8[r11] = r13;
+	r11 = r12;
+}
+	heap32[(r9)] = r11;
+_407: while(true){
+	r12 = heapU8[r11];
+	if(r12 ==0) //_LBB822_331
+{
+__label__ = 314;
+break _407;
+}
+else{
+	r13 = 0;
+_410: while(true){
+	if(r13 ==-1) //_LBB822_320
+{
+__label__ = 304;
+break _407;
+}
+else{
+	r14 = _2E_str4133;
+	r14 = (r14 - r13)|0;
+	r15 = r12 & 255;
+	r14 = heapU8[r14];
+	if(r15 !=r14) //_LBB822_314
+{
+	r13 = (r13 + -1)|0;
+}
+else{
+break _410;
+}
+}
+}
+	r11 = (r11 + 1)|0;
+}
+}
+if (__label__ == 304){
+if(!(r12 ==0)) //_LBB822_331
+{
+	r12 = r11;
+_418: while(true){
+	r13 = heapU8[r12];
+	if(r13 ==0) //_LBB822_328
+{
+break _418;
+}
+else{
+	r14 = 1;
+_421: while(true){
+	if(r14 !=0) //_LBB822_322
+{
+	r15 = _2E_str4133;
+	r15 = (r15 - r14)|0;
+	r16 = r13 & 255;
+	r15 = heapU8[r15+1];
+	if(r16 ==r15) //_LBB822_328
+{
+break _418;
+}
+else{
+	r14 = (r14 + -1)|0;
+}
+}
+else{
+break _421;
+}
+}
+	r12 = (r12 + 1)|0;
+}
+}
+	r13 = heapU8[r12];
+	if(r13 !=0) //_LBB822_330
+{
+	r13 = (r12 + 1)|0;
+	r14 = 0;
+	heap8[r12] = r14;
+	r12 = r13;
+}
+	heap32[(r9)] = r12;
+	if(r8 ==0) //_LBB822_340
+{
+__label__ = 323;
+break _323;
+}
+else{
+	if(r11 ==0) //_LBB822_340
+{
+__label__ = 323;
+break _323;
+}
+else{
+	heap32[(g0)] = 284;
+	_Znwj(i7);
+	r9 = r_g0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = 0;
+	r3 = r9 >> 2;
+	strtol(i7);
+	heap32[(r3+65)] = r_g0;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = 0;
+	strtol(i7);
+	heap32[(r3+66)] = r_g0;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = 0;
+	strtol(i7);
+	heap32[(r3+67)] = r_g0;
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = 0;
+	strtol(i7);
+	heap32[(r3+69)] = r_g0;
+	r7 = (r7 + 1)|0;
+	r8 = 0;
+	heap32[(r3+68)] = r4;
+	heap32[(r3+64)] = r6;
+	r3 = r9;
+_432: while(true){
+	r10 = heapU8[r7];
+	if(r10 ==0) //_LBB822_339
+{
+break _432;
+}
+else{
+	r11 = r10 << 24;
+	r11 = r11 >> 24;
+	r11 = (r11 + -65)|0;
+	r12 = 26;
+	r13 = (r10 + 32)|0;
+	r10 = uint(r11) < uint(r12) ? r13 : r10;
+	r11 = r10 & 255;
+	r12 = 47;
+	r10 = r11 == 92 ? r12 : r10;
+	r7 = (r7 + 1)|0;
+	r11 = r10 & 255;
+if(!(r11 !=47)) //_LBB822_338
+{
+	r11 = r8 & 255;
+	r8 = r10;
+	if(r11 ==47) //_LBB822_335
+{
+continue _432;
+}
+}
+	r8 = (r3 + 1)|0;
+	heap8[r3] = r10;
+	r3 = r8;
+	r8 = r10;
+}
+}
+	r7 = _ZL24g_pFirstTextureAsyncInfo;
+	r8 = 0;
+	r7 = r7 >> 2;
+	heap8[r3] = r8;
+	r3 = r9 >> 2;
+	r8 = heap32[(r7)];
+	heap32[(r3+70)] = r8;
+	heap32[(r7)] = r9;
+	r3 = heap32[(r3+69)];
+	r4 = (r3 + r4)|0;
+continue _280;
+}
+}
+}
+}
+	heap32[(r9)] = r11;
+__label__ = 323;
+break _323;
+}
+}
+	heap32[(r9)] = r10;
+__label__ = 323;
+break _323;
+}
+}
+	heap32[(r9)] = r8;
+__label__ = 323;
+break _323;
+}
+}
+	heap32[(r9)] = r3;
+__label__ = 323;
+}
+}
+} while(0);
+if (__label__ == 242){
+	heap32[(r9)] = r7;
+}
+	r3 = _2E_str4783;
+	heap32[(g0)] = r3;
+	_printf_warning(i7);
+continue _280;
+}
+}
+}
+	heap32[(r9)] = r3;
+}
+else{
+break _278;
+}
+}
+_447: while(true){
+	r3 = heapU8[r7];
+	if(r3 ==0) //_LBB822_349
+{
+__label__ = 331;
+break _447;
+}
+else{
+	r4 = 0;
+_450: while(true){
+	if(r4 ==-1) //_LBB822_350
+{
+__label__ = 332;
+break _447;
+}
+else{
+	r8 = _2E_str4133;
+	r8 = (r8 - r4)|0;
+	r10 = r3 & 255;
+	r8 = heapU8[r8];
+	if(r10 !=r8) //_LBB822_343
+{
+	r4 = (r4 + -1)|0;
+}
+else{
+break _450;
+}
+}
+}
+	r7 = (r7 + 1)|0;
+}
+}
+if (__label__ == 332){
+	if(r3 ==0) //_LBB822_349
+{
+__label__ = 331;
+}
+else{
+	r3 = r7;
+_458: while(true){
+	r4 = heapU8[r3];
+	if(r4 ==0) //_LBB822_358
+{
+break _458;
+}
+else{
+	r8 = 1;
+_461: while(true){
+	if(r8 !=0) //_LBB822_352
+{
+	r10 = _2E_str4133;
+	r10 = (r10 - r8)|0;
+	r11 = r4 & 255;
+	r10 = heapU8[r10+1];
+	if(r11 ==r10) //_LBB822_358
+{
+break _458;
+}
+else{
+	r8 = (r8 + -1)|0;
+}
+}
+else{
+break _461;
+}
+}
+	r3 = (r3 + 1)|0;
+}
+}
+	r4 = heapU8[r3];
+	if(r4 !=0) //_LBB822_360
+{
+	r8 = (r3 + 1)|0;
+	r4 = 0;
+	heap8[r3] = r4;
+	r4 = r7;
+	r7 = r8;
+__label__ = 343;
+}
+else{
+	r4 = r7;
+	r7 = r3;
+__label__ = 343;
+}
+}
+}
+if (__label__ == 331){
+	r4 = 0;
+}
+	heap32[(r9)] = r7;
+_473: while(true){
+	r3 = heapU8[r7];
+	if(r3 ==0) //_LBB822_368
+{
+__label__ = 359;
+break _473;
+}
+else{
+	r8 = 0;
+_476: while(true){
+	if(r8 ==-1) //_LBB822_369
+{
+__label__ = 350;
+break _473;
+}
+else{
+	r10 = _2E_str4133;
+	r10 = (r10 - r8)|0;
+	r11 = r3 & 255;
+	r10 = heapU8[r10];
+	if(r11 !=r10) //_LBB822_362
+{
+	r8 = (r8 + -1)|0;
+}
+else{
+break _476;
+}
+}
+}
+	r7 = (r7 + 1)|0;
+}
+}
+if (__label__ == 350){
+if(!(r3 ==0)) //_LBB822_368
+{
+_483: while(true){
+	r3 = heapU8[r7];
+	if(r3 ==0) //_LBB822_377
+{
+break _483;
+}
+else{
+	r8 = 1;
+_486: while(true){
+	if(r8 !=0) //_LBB822_371
+{
+	r10 = _2E_str4133;
+	r10 = (r10 - r8)|0;
+	r11 = r3 & 255;
+	r10 = heapU8[r10+1];
+	if(r11 ==r10) //_LBB822_377
+{
+break _483;
+}
+else{
+	r8 = (r8 + -1)|0;
+}
+}
+else{
+break _486;
+}
+}
+	r7 = (r7 + 1)|0;
+}
+}
+	r3 = heapU8[r7];
+	if(r3 !=0) //_LBB822_379
+{
+	r3 = (r7 + 1)|0;
+	r8 = 0;
+	heap8[r7] = r8;
+	r7 = r3;
+}
+}
+}
+	r3 = (r6 + 1)|0;
+	heap32[(r9)] = r7;
+	r7 = heapU8[r4];
+_494: do {
+	if(r7 ==0) //_LBB822_382
+{
+	r8 = 1;
+}
+else{
+	r7 = 1;
+_497: while(true){
+	r8 = (r7 + 1)|0;
+	r9 = heapU8[r4+r7];
+	r7 = r8;
+if(!(r9 !=0)) //_LBB822_383
+{
+break _494;
+}
+}
+}
+} while(0);
+	r7 = _ZL17g_apPackFileNames;
+	r6 = r6 << 2;
+	r6 = (r7 + r6)|0;
+	heap32[(g0)] = r8;
+	r6 = r6 >> 2;
+	_Znaj(i7);
+	heap32[(r6+1)] = r_g0;
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r4;
+	r4 = 0;
+	strcpy(i7);
+}
+	heap32[(g0)] = r2;
+	free(i7);
+}
+}
+	r0 = sp + -2440;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	r1 = _ZGVZ21Mandreel_GetTickCountE7s_first;
+	gettimeofday(i7);
+	r2 = heapU8[r1];
+if(!(r2 !=0)) //_LBB822_391
+{
+	r2 = heap32[(fp+-610)];
+	r3 = r2 >> 31;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 1000000;
+	heap32[(g0+3)] = 0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	__muldi3(i7);
+	r4 = 1;
+	r5 = (r_g0 + r0)|0;
+	r6 = 0;
+	r7 = r0 >> 31;
+	r2 = uint(r5) < uint(r_g0) ? r4 : r6;
+	r6 = _ZZ21Mandreel_GetTickCountE7s_first;
+	r3 = (r_g1 + r7)|0;
+	r0 = uint(r5) < uint(r0) ? r4 : r2;
+	r2 = r6 >> 2;
+	r0 = (r3 + r0)|0;
+	heap32[(r2)] = r5;
+	heap32[(r2+1)] = r0;
+	heap8[r1] = r4;
+}
+	return;
+}
+else{
+	r2 = _2E_str34255;
+	r0 = _2E_str1222;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = 307;
+	_assert(i7);
+}
+}
+
+function __forceSuperLink(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	__mandreel_internal_init(i7);
+	r0 = sp + -8;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	r1 = _ZGVZ21Mandreel_GetTickCountE7s_first;
+	gettimeofday(i7);
+	r2 = heapU8[r1];
+if(!(r2 !=0)) //_LBB823_2
+{
+	r2 = heap32[(fp+-2)];
+	r3 = r2 >> 31;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = 1000000;
+	heap32[(g0+3)] = 0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	__muldi3(i7);
+	r4 = 1;
+	r5 = (r_g0 + r0)|0;
+	r6 = 0;
+	r7 = r0 >> 31;
+	r2 = uint(r5) < uint(r_g0) ? r4 : r6;
+	r6 = _ZZ21Mandreel_GetTickCountE7s_first;
+	r3 = (r_g1 + r7)|0;
+	r0 = uint(r5) < uint(r0) ? r4 : r2;
+	r2 = r6 >> 2;
+	r0 = (r3 + r0)|0;
+	heap32[(r2)] = r5;
+	heap32[(r2+1)] = r0;
+	heap8[r1] = r4;
+}
+	r0 = _ZZ29__mandreel_internal_preupdateE8s_bfirst_2E_b;
+	r1 = heapU8[r0];
+if(!(r1 != 0)) //_LBB823_4
+{
+	r1 = 1;
+	heap8[r0] = r1;
+}
+	return;
+}
+
+function _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = sp + -16;
+	r1 = r0 >> 2;
+	heap32[(fp+-4)] = 0;
+	heap32[(r1+1)] = 0;
+	r2 = heap32[(fp)];
+	heap32[(r1+2)] = 16;
+	r3 = r2 >> 2;
+	heap32[(r1+3)] = 0;
+	r4 = heap32[(fp+2)];
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r4 = r4 >> 2;
+	r3 = heap32[(r3+5)];
+	r5 = heap32[(r4)];
+	r6 = heap32[(fp+1)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r6;
+	heap32[(g0+2)] = r5;
+	heap32[(g0+3)] = r0;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	r0 = heap32[(r1+1)];
+	r0 = r0 & 6;
+	if(r0 !=6) //_LBB824_2
+{
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+else{
+	r0 = heap32[(fp+-4)];
+	heap32[(r4)] = r0;
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+4)];
+	r1 = heap32[(fp+2)];
+	r2 = 6;
+	r3 = 1;
+	r0 = r0 == r1 ? r2 : r3;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNKSt9type_info10__do_catchEPKS_PPvj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = heap32[(r1+1)];
+	r2 = _2E_str26;
+	r0 = r0 == 0 ? r2 : r0;
+	r1 = r1 == 0 ? r2 : r1;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r2 = r_g0;
+	if(r2 <0) //_LBB826_2
+{
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+else{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	strcmp(i7);
+	r0 = r_g0 >>> 31;
+	r0 = r0 ^ 1;
+	r_g0 = r0;
+	return;
+}
+}
+
+function _ZN10__cxxabiv117__class_type_infoD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVSt9type_info;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN10__cxxabiv117__class_type_infoD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVSt9type_info;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = heap32[(r1+1)];
+	r2 = _2E_str26;
+	r0 = r0 == 0 ? r2 : r0;
+	r1 = r1 == 0 ? r2 : r1;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r2 = r_g0;
+	if(r2 >-1) //_LBB829_2
+{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	r0 = -1;
+	strcmp(i7);
+	r0 = r_g0 > r0;
+}
+else{
+	r0 = 0;
+}
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = r1 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = heap32[(r1+1)];
+	r2 = _2E_str26;
+	r0 = r0 == 0 ? r2 : r0;
+	r1 = r1 == 0 ? r2 : r1;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r2 = r_g0;
+if(!(r2 <0)) //_LBB830_3
+{
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	strcmp(i7);
+	r0 = r_g0;
+if(!(r0 <0)) //_LBB830_3
+{
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp+3)];
+	r1 = r1 >> 2;
+	heap32[(r1)] = r0;
+	heap32[(r1+3)] = 8;
+	heap32[(r1+1)] = 6;
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp+4)];
+	r2 = heap32[(fp+2)];
+	r3 = heap32[(fp+7)];
+	r0 = heap32[(r0+1)];
+	r4 = heap32[(fp+6)];
+if(!(r1 !=r4)) //_LBB831_3
+{
+	r4 = heap32[(fp+5)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+1)];
+	r5 = _2E_str26;
+	r4 = r4 == 0 ? r5 : r4;
+	r5 = r0 == 0 ? r5 : r0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	strcmp(i7);
+	r6 = r_g0;
+if(!(r6 <0)) //_LBB831_3
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	strcmp(i7);
+	r4 = r_g0;
+	if(r4 >-1) //_LBB831_5
+{
+	r1 = r3 >> 2;
+	heap32[(r1+2)] = r2;
+	r1 = 0;
+	r_g0 = r1;
+	return;
+}
+}
+}
+	r4 = heap32[(fp+3)];
+	r4 = r4 >> 2;
+	r4 = heap32[(r4+1)];
+	r5 = _2E_str26;
+	r4 = r4 == 0 ? r5 : r4;
+	r0 = r0 == 0 ? r5 : r0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r4;
+	strcmp(i7);
+	r5 = r_g0;
+if(!(r5 <0)) //_LBB831_7
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r0;
+	strcmp(i7);
+	r0 = r_g0;
+if(!(r0 <0)) //_LBB831_7
+{
+	r0 = r3 >> 2;
+	heap32[(r0)] = r1;
+	heap32[(r0+1)] = r2;
+	heap32[(r0+3)] = 1;
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZN10__cxxabiv120__si_class_type_infoD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVSt9type_info;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function _ZN10__cxxabiv120__si_class_type_infoD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVSt9type_info;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = r0 >> 2;
+	r1 = r1 >> 2;
+	r2 = heap32[(r2+1)];
+	r3 = heap32[(r1+1)];
+	r4 = _2E_str26;
+	r2 = r2 == 0 ? r4 : r2;
+	r3 = r3 == 0 ? r4 : r3;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	strcmp(i7);
+	r6 = r_g0;
+if(!(r6 <0)) //_LBB834_2
+{
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	strcmp(i7);
+	r2 = r_g0;
+	if(r2 >-1) //_LBB834_3
+{
+	r0 = r5 >> 2;
+	heap32[(r0)] = r4;
+	heap32[(r0+3)] = 8;
+	heap32[(r0+1)] = 6;
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+}
+	r1 = heap32[(r1+2)];
+	r2 = r1 >> 2;
+	r2 = heap32[(r2)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+5)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r5;
+	__FUNCTION_TABLE__[(r2)>>2](i7);
+	return;
+}
+
+function _ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+3)];
+	r1 = heap32[(fp)];
+	r2 = r0 >> 2;
+	r1 = r1 >> 2;
+	r2 = heap32[(r2+1)];
+	r3 = heap32[(r1+1)];
+	r4 = _2E_str26;
+	r2 = r2 == 0 ? r4 : r2;
+	r3 = r3 == 0 ? r4 : r3;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	r5 = heap32[(fp+1)];
+	r6 = heap32[(fp+2)];
+	r7 = heap32[(fp+4)];
+	r8 = heap32[(fp+6)];
+	r9 = heap32[(fp+7)];
+	strcmp(i7);
+	r10 = r_g0;
+	if(r10 <0) //_LBB835_6
+{
+__label__ = 6;
+}
+else{
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r3;
+	strcmp(i7);
+	r2 = r_g0;
+	if(r2 <0) //_LBB835_6
+{
+__label__ = 6;
+}
+else{
+	r0 = r9 >> 2;
+	heap32[(r0)] = r7;
+	heap32[(r0+1)] = r6;
+	if(r5 <0) //_LBB835_4
+{
+	if(r5 !=-2) //_LBB835_11
+{
+__label__ = 11;
+}
+else{
+	heap32[(r0+3)] = 1;
+__label__ = 11;
+}
+}
+else{
+	r1 = (r7 + r5)|0;
+	r3 = 6;
+	r4 = 1;
+	r1 = r1 == r8 ? r3 : r4;
+	heap32[(r0+3)] = r1;
+__label__ = 11;
+}
+}
+}
+_8: do {
+if (__label__ == 6){
+	r2 = heap32[(fp+5)];
+if(!(r7 !=r8)) //_LBB835_9
+{
+	r10 = r2 >> 2;
+	r10 = heap32[(r10+1)];
+	r4 = r10 == 0 ? r4 : r10;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r4;
+	strcmp(i7);
+	r10 = r_g0;
+if(!(r10 <0)) //_LBB835_9
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r3;
+	strcmp(i7);
+	r3 = r_g0;
+	if(r3 >-1) //_LBB835_10
+{
+	r0 = r9 >> 2;
+	heap32[(r0+2)] = r6;
+break _8;
+}
+}
+}
+	r1 = heap32[(r1+2)];
+	r3 = r1 >> 2;
+	r3 = heap32[(r3)];
+	r3 = r3 >> 2;
+	r3 = heap32[(r3+6)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r5;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r0;
+	heap32[(g0+4)] = r7;
+	heap32[(g0+5)] = r2;
+	heap32[(g0+6)] = r8;
+	heap32[(g0+7)] = r9;
+	__FUNCTION_TABLE__[(r3)>>2](i7);
+	return;
+}
+} while(0);
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+4)];
+	r1 = heap32[(fp+2)];
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+3)];
+if(!(r0 !=r1)) //_LBB836_3
+{
+	r4 = r3 >> 2;
+	r5 = r2 >> 2;
+	r4 = heap32[(r4+1)];
+	r5 = heap32[(r5+1)];
+	r6 = _2E_str26;
+	r4 = r4 == 0 ? r6 : r4;
+	r5 = r5 == 0 ? r6 : r5;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	strcmp(i7);
+	r6 = r_g0;
+if(!(r6 <0)) //_LBB836_3
+{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	strcmp(i7);
+	r4 = r_g0;
+	if(r4 >-1) //_LBB836_4
+{
+	r0 = 6;
+	r_g0 = r0;
+	return;
+}
+}
+}
+	r4 = heap32[(fp+1)];
+	r2 = r2 >> 2;
+	r2 = heap32[(r2+2)];
+	r5 = r2 >> 2;
+	r5 = heap32[(r5)];
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+7)];
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r0;
+	__FUNCTION_TABLE__[(r5)>>2](i7);
+	return;
+}
+
+function _ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = r0 >> 2;
+	r3 = r1 >> 2;
+	r2 = heap32[(r2+1)];
+	r4 = heap32[(r3+1)];
+	r5 = _2E_str26;
+	r2 = r2 == 0 ? r5 : r2;
+	r4 = r4 == 0 ? r5 : r4;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r2;
+	r6 = heap32[(fp+2)];
+	r7 = heap32[(fp+3)];
+	strcmp(i7);
+	r8 = r_g0;
+	if(r8 <0) //_LBB837_3
+{
+__label__ = 3;
+}
+else{
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	strcmp(i7);
+	r2 = r_g0;
+	if(r2 <0) //_LBB837_3
+{
+__label__ = 3;
+}
+else{
+	r0 = r7 >> 2;
+	heap32[(r0)] = r6;
+	heap32[(r0+3)] = 8;
+	heap32[(r0+1)] = 6;
+__label__ = 39;
+}
+}
+_4: do {
+if (__label__ == 3){
+	r2 = r7 >> 2;
+	r4 = heap32[(r2+2)];
+	r7 = r4 & 16;
+	if(r7 !=0) //_LBB837_5
+{
+	r4 = heap32[(r3+2)];
+}
+	r3 = heap32[(r3+3)];
+	r7 = r4 & 1;
+	r3 = (r3 + 1)|0;
+_9: while(true){
+	if(r3 !=1) //_LBB837_7
+{
+	r8 = sp + -16;
+	r9 = r8 >> 2;
+	heap32[(fp+-4)] = 0;
+	r10 = r3 << 3;
+	heap32[(r9+1)] = 0;
+	r10 = (r1 + r10)|0;
+	heap32[(r9+2)] = r4;
+	r10 = r10 >> 2;
+	heap32[(r9+3)] = 0;
+	r10 = heap32[(r10+1)];
+	r11 = r10 & 2;
+	if(r7 !=0) //_LBB837_10
+{
+__label__ = 9;
+}
+else{
+	r12 = r11 >>> 1;
+	if(r12 != 0) //_LBB837_10
+{
+__label__ = 9;
+}
+else{
+__label__ = 8;
+}
+}
+if (__label__ == 9){
+	r12 = r3 << 1;
+	r13 = r10 & 1;
+	if(r6 !=0) //_LBB837_12
+{
+	r10 = r10 >> 8;
+	if(r13 != 0) //_LBB837_14
+{
+	r14 = r6 >> 2;
+	r14 = heap32[(r14)];
+	r10 = (r14 + r10)|0;
+	r10 = r10 >> 2;
+	r10 = heap32[(r10)];
+}
+	r10 = (r6 + r10)|0;
+}
+else{
+	r10 = 0;
+}
+	r12 = r12 << 2;
+	r12 = (r1 + r12)|0;
+	r12 = r12 >> 2;
+	r14 = heap32[(r12)];
+	r15 = r14 >> 2;
+	r15 = heap32[(r15)];
+	r15 = r15 >> 2;
+	r15 = heap32[(r15+5)];
+	heap32[(g0)] = r14;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r8;
+	__FUNCTION_TABLE__[(r15)>>2](i7);
+	r8 = r_g0;
+if(!(r8 ==0)) //_LBB837_9
+{
+	r8 = heap32[(r9+3)];
+if(!(r8 !=8)) //_LBB837_19
+{
+	if(r13 != 0) //_LBB837_20
+{
+	r8 = heap32[(r12)];
+	heap32[(r9+3)] = r8;
+}
+}
+	r10 = heap32[(r9+1)];
+if(!(r10 <4)) //_LBB837_23
+{
+	if(r11 ==0) //_LBB837_24
+{
+	r10 = r10 & -3;
+	heap32[(r9+1)] = r10;
+}
+}
+	r11 = heap32[(r2+3)];
+	if(r11 !=0) //_LBB837_31
+{
+	r9 = heap32[(r2)];
+	r12 = heap32[(fp+-4)];
+	if(r9 ==r12) //_LBB837_33
+{
+	if(r9 ==0) //_LBB837_35
+{
+	if(r8 ==8) //_LBB837_39
+{
+__label__ = 35;
+break _9;
+}
+else{
+	if(r11 ==8) //_LBB837_39
+{
+__label__ = 35;
+break _9;
+}
+else{
+	r9 = r11 >> 2;
+	r8 = r8 >> 2;
+	r9 = heap32[(r9+1)];
+	r8 = heap32[(r8+1)];
+	r9 = r9 == 0 ? r5 : r9;
+	r8 = r8 == 0 ? r5 : r8;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r9;
+	strcmp(i7);
+	r11 = r_g0;
+	if(r11 <0) //_LBB837_39
+{
+__label__ = 35;
+break _9;
+}
+else{
+	heap32[(g0)] = r9;
+	heap32[(g0+1)] = r8;
+	strcmp(i7);
+	r8 = r_g0;
+	if(r8 >-1) //_LBB837_40
+{
+	r8 = heap32[(r2+1)];
+	r8 = r10 | r8;
+	heap32[(r2+1)] = r8;
+}
+else{
+__label__ = 35;
+break _9;
+}
+}
+}
+}
+}
+else{
+	r8 = heap32[(r2+1)];
+	r8 = r10 | r8;
+	heap32[(r2+1)] = r8;
+}
+}
+else{
+__label__ = 28;
+break _9;
+}
+}
+else{
+	r11 = heap32[(fp+-4)];
+	heap32[(r2)] = r11;
+	heap32[(r2+1)] = r10;
+	r11 = heap32[(r9+2)];
+	heap32[(r2+2)] = r11;
+	heap32[(r2+3)] = r8;
+	if(r10 <4) //_LBB837_43
+{
+break _4;
+}
+else{
+	r8 = r10 & 2;
+	if(r8 ==0) //_LBB837_29
+{
+	r8 = r10 & 1;
+	if(r8 ==0) //_LBB837_43
+{
+break _4;
+}
+else{
+	r8 = heapU8[r1+8];
+	r8 = r8 & 2;
+	if(r8 ==0) //_LBB837_43
+{
+break _4;
+}
+}
+}
+else{
+	r8 = heapU8[r1+8];
+	r8 = r8 & 1;
+	if(r8 ==0) //_LBB837_43
+{
+break _4;
+}
+}
+}
+}
+}
+}
+	r3 = (r3 + -1)|0;
+continue _9;
+}
+else{
+__label__ = 38;
+break _9;
+}
+}
+switch(__label__ ){//multiple entries
+case 38:
+	r0 = heap32[(r2+1)];
+	r1 = 0;
+	r0 = r0 != r1;
+	r0 = r0 & 1;
+	r_g0 = r0;
+	return;
+break;
+case 28:
+	heap32[(r2)] = 0;
+break;
+}
+	heap32[(r2+1)] = 2;
+}
+} while(0);
+	r0 = 1;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+	var r17;
+	var r18;
+	var r19;
+	var r20;
+	var r21;
+	var r22;
+	var r23;
+var __label__ = 0;
+	i7 = sp + -56;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+7)];
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+4)];
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+1)];
+	r4 = heap32[(fp+2)];
+	r5 = heap32[(fp+3)];
+	r6 = heap32[(fp+4)];
+	r7 = heap32[(fp+5)];
+	r8 = heap32[(fp+6)];
+	r9 = r1 & 16;
+	if(r9 !=0) //_LBB838_2
+{
+	r1 = r2 >> 2;
+	r1 = heap32[(r1+2)];
+	heap32[(r0+4)] = r1;
+}
+	r9 = r2 >> 2;
+	r10 = heap32[(r9+1)];
+	if(r6 !=r8) //_LBB838_6
+{
+__label__ = 5;
+}
+else{
+	r11 = r7 >> 2;
+	r11 = heap32[(r11+1)];
+	r12 = _2E_str26;
+	r11 = r11 == 0 ? r12 : r11;
+	r12 = r10 == 0 ? r12 : r10;
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r11;
+	strcmp(i7);
+	r13 = r_g0;
+	if(r13 <0) //_LBB838_6
+{
+__label__ = 5;
+}
+else{
+	heap32[(g0)] = r11;
+	heap32[(g0+1)] = r12;
+	strcmp(i7);
+	r11 = r_g0;
+	if(r11 >-1) //_LBB838_8
+{
+	heap32[(r0+2)] = r4;
+__label__ = 8;
+}
+else{
+__label__ = 5;
+}
+}
+}
+_8: do {
+if (__label__ == 5){
+	r11 = r5 >> 2;
+	r12 = heap32[(r11+1)];
+	r13 = _2E_str26;
+	r12 = r12 == 0 ? r13 : r12;
+	r10 = r10 == 0 ? r13 : r10;
+	heap32[(g0)] = r10;
+	heap32[(g0+1)] = r12;
+	strcmp(i7);
+	r13 = r_g0;
+	if(r13 <0) //_LBB838_15
+{
+__label__ = 14;
+}
+else{
+	heap32[(g0)] = r12;
+	heap32[(g0+1)] = r10;
+	strcmp(i7);
+	r10 = r_g0;
+	if(r10 <0) //_LBB838_15
+{
+__label__ = 14;
+}
+else{
+	heap32[(r0)] = r6;
+	heap32[(r0+1)] = r4;
+	if(r3 <0) //_LBB838_12
+{
+	if(r3 ==-2) //_LBB838_14
+{
+	heap32[(r0+3)] = 1;
+	r9 = 0;
+	r_g0 = r9;
+	return;
+}
+else{
+__label__ = 12;
+}
+}
+else{
+	r1 = (r6 + r3)|0;
+	r2 = 6;
+	r3 = 1;
+	r1 = r1 == r8 ? r2 : r3;
+	heap32[(r0+3)] = r1;
+break _8;
+}
+}
+}
+_17: do {
+if (__label__ == 14){
+	r10 = heap32[(r9+3)];
+	r12 = r1 & 2;
+	r9 = 0;
+	r13 = r1;
+_19: while(true){
+	r14 = r13 & 3;
+_21: while(true){
+	r15 = r9;
+	r9 = r10 << 3;
+	r9 = (r2 + r9)|0;
+	r20 = 0;
+_23: while(true){
+	r16 = r20;
+	if(r10 !=r16) //_LBB838_16
+{
+	r17 = sp + -24;
+	r18 = r17 >> 2;
+	heap32[(fp+-6)] = 0;
+	heap32[(r18+1)] = 0;
+	heap32[(r18+2)] = 0;
+	r19 = r16 << 3;
+	r19 = (r9 - r19)|0;
+	heap32[(r18+3)] = 0;
+	r19 = r19 >> 2;
+	heap32[(r18+4)] = r13;
+	r20 = heap32[(r19+3)];
+	r21 = r20 & 1;
+	r22 = r20 >> 8;
+	if(r21 != 0) //_LBB838_18
+{
+	r23 = r6 >> 2;
+	r23 = heap32[(r23)];
+	r22 = (r23 + r22)|0;
+	r22 = r22 >> 2;
+	r22 = heap32[(r22)];
+}
+	r20 = r20 & 2;
+	if(r20 ==0) //_LBB838_21
+{
+	if(r3 !=-2) //_LBB838_23
+{
+__label__ = 21;
+break _23;
+}
+else{
+	r20 = (r16 + 1)|0;
+	if(r14 ==0) //_LBB838_88
+{
+continue _23;
+}
+else{
+__label__ = 21;
+break _23;
+}
+}
+}
+else{
+__label__ = 18;
+break _23;
+}
+}
+else{
+__label__ = 77;
+break _19;
+}
+}
+switch(__label__ ){//multiple entries
+case 21:
+	r9 = r4 & -3;
+break;
+case 18:
+	r9 = r4;
+break;
+}
+	r20 = heap32[(r19+2)];
+	r19 = r20 >> 2;
+	r19 = heap32[(r19)];
+	r19 = r19 >> 2;
+	r19 = heap32[(r19+6)];
+	r9 = r21 | r9;
+	r21 = (r6 + r22)|0;
+	heap32[(g0)] = r20;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r9;
+	heap32[(g0+3)] = r5;
+	heap32[(g0+4)] = r21;
+	heap32[(g0+5)] = r7;
+	heap32[(g0+6)] = r8;
+	heap32[(g0+7)] = r17;
+	__FUNCTION_TABLE__[(r19)>>2](i7);
+	r9 = r_g0;
+	r20 = heap32[(r0+2)];
+	r17 = heap32[(r18+2)];
+	r20 = r17 | r20;
+	heap32[(r0+2)] = r20;
+	r17 = heap32[(r18+3)];
+	if(r17 ==2) //_LBB838_26
+{
+__label__ = 24;
+break _19;
+}
+else{
+	if(r17 !=6) //_LBB838_27
+{
+	r19 = (r10 + -1)|0;
+	r10 = heap32[(r0)];
+	r21 = r15 & 255;
+	if(r21 !=0) //_LBB838_34
+{
+__label__ = 30;
+break _21;
+}
+else{
+	if(r10 !=0) //_LBB838_35
+{
+__label__ = 31;
+break _21;
+}
+else{
+	r10 = heap32[(fp+-6)];
+	heap32[(r0)] = r10;
+	r15 = heap32[(r18+1)];
+	heap32[(r0+1)] = r15;
+	if(r10 !=0) //_LBB838_31
+{
+	r10 = (r19 - r16)|0;
+	if(r20 ==0) //_LBB838_87
+{
+continue _21;
+}
+else{
+__label__ = 29;
+break _21;
+}
+}
+else{
+__label__ = 73;
+break _21;
+}
+}
+}
+}
+else{
+__label__ = 24;
+break _19;
+}
+}
+}
+_40: do {
+switch(__label__ ){//multiple entries
+case 30:
+	if(r10 ==0) //_LBB838_37
+{
+	r14 = heap32[(fp+-6)];
+	r10 = 0;
+__label__ = 36;
+break _40;
+}
+else{
+__label__ = 31;
+break _40;
+}
+break;
+case 29:
+	r10 = heapU8[r2+8];
+	r10 = r10 & 1;
+	if(r10 != 0) //_LBB838_30
+{
+__label__ = 73;
+}
+else{
+__label__ = 78;
+break _17;
+}
+break;
+}
+} while(0);
+if (__label__ == 31){
+	r14 = heap32[(fp+-6)];
+	if(r10 !=r14) //_LBB838_38
+{
+	if(r14 !=0) //_LBB838_40
+{
+__label__ = 39;
+}
+else{
+	if(r9 ==0) //_LBB838_41
+{
+__label__ = 36;
+}
+else{
+__label__ = 39;
+}
+}
+}
+else{
+	r9 = heap32[(r0+1)];
+	r10 = heap32[(r18+1)];
+	r9 = r10 | r9;
+	heap32[(r0+1)] = r9;
+	r9 = r15;
+__label__ = 73;
+}
+}
+_50: do {
+if (__label__ == 36){
+if(!(r14 ==0)) //_LBB838_44
+{
+if(!(r21 ==0)) //_LBB838_44
+{
+__label__ = 39;
+break _50;
+}
+}
+	r9 = r15;
+__label__ = 73;
+}
+} while(0);
+if (__label__ == 39){
+	r9 = heap32[(r0+3)];
+_57: do {
+	if(r20 >3) //_LBB838_47
+{
+	r14 = r20 & 1;
+if(!(r14 ==0)) //_LBB838_52
+{
+if(!(r12 ==0)) //_LBB838_52
+{
+	r13 = r1;
+__label__ = 43;
+break _57;
+}
+}
+	r13 = r14 == 0 ? r13 : r1;
+	r10 = 1;
+	r9 = r9 == 0 ? r10 : r9;
+	if(r17 ==0) //_LBB838_54
+{
+	r17 = r10;
+__label__ = 64;
+}
+else{
+__label__ = 64;
+}
+}
+else{
+__label__ = 43;
+}
+} while(0);
+_64: do {
+if (__label__ == 43){
+	if(r9 <1) //_LBB838_55
+{
+_68: do {
+if(!(r17 <4)) //_LBB838_59
+{
+	r9 = r17 & 1;
+	if(r9 != 0) //_LBB838_58
+{
+	r9 = heapU8[r2+8];
+	r9 = r9 & 2;
+if(!(r9 ==0)) //_LBB838_57
+{
+break _68;
+}
+}
+	r9 = 1;
+break _64;
+}
+} while(0);
+	if(r3 <0) //_LBB838_61
+{
+	if(r3 !=-2) //_LBB838_63
+{
+	r9 = heap32[(r11)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+7)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = r8;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r9 = r_g0;
+}
+else{
+	r9 = 1;
+}
+}
+else{
+	r9 = (r10 + r3)|0;
+	r10 = 6;
+	r14 = 1;
+	r9 = r9 == r8 ? r10 : r14;
+}
+}
+	if(r17 <1) //_LBB838_66
+{
+	if(r9 <4) //_LBB838_70
+{
+__label__ = 60;
+}
+else{
+	r10 = r9 & 1;
+	if(r10 != 0) //_LBB838_69
+{
+	r10 = heapU8[r2+8];
+	r10 = r10 & 2;
+	if(r10 ==0) //_LBB838_68
+{
+__label__ = 58;
+}
+else{
+__label__ = 60;
+}
+}
+else{
+__label__ = 58;
+}
+}
+if (__label__ == 60){
+	r10 = heap32[(fp+-6)];
+	if(r3 <0) //_LBB838_72
+{
+if(!(r3 ==-2)) //_LBB838_68
+{
+	r14 = heap32[(r11)];
+	r14 = r14 >> 2;
+	r14 = heap32[(r14+7)];
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r3;
+	heap32[(g0+2)] = r10;
+	heap32[(g0+3)] = r7;
+	heap32[(g0+4)] = r8;
+	__FUNCTION_TABLE__[(r14)>>2](i7);
+	r17 = r_g0;
+break _64;
+}
+}
+else{
+	r10 = (r10 + r3)|0;
+	r14 = 6;
+	r17 = 1;
+	r17 = r10 == r8 ? r14 : r17;
+break _64;
+}
+}
+	r17 = 1;
+}
+}
+} while(0);
+	r10 = r9 ^ r17;
+	if(r10 <4) //_LBB838_81
+{
+	r9 = r9 & r17;
+	heap32[(r0)] = 0;
+	if(r9 <4) //_LBB838_83
+{
+	r9 = 1;
+	heap32[(r0+3)] = 1;
+}
+else{
+__label__ = 71;
+break _19;
+}
+}
+else{
+	if(r17 >3) //_LBB838_77
+{
+	r9 = heap32[(fp+-6)];
+	heap32[(r0)] = r9;
+	r9 = heap32[(r18+1)];
+	r15 = 0;
+	heap32[(r0+1)] = r9;
+	r9 = r17;
+}
+	heap32[(r0+3)] = r9;
+	r10 = r9 & 2;
+	if(r10 !=0) //_LBB838_13
+{
+__label__ = 12;
+break _17;
+}
+else{
+	r9 = r9 & 1;
+	if(r9 ==0) //_LBB838_13
+{
+__label__ = 12;
+break _17;
+}
+else{
+	r9 = r15;
+}
+}
+}
+}
+	r10 = (r19 - r16)|0;
+	if(r20 !=4) //_LBB838_86
+{
+continue _19;
+}
+else{
+__label__ = 78;
+break _17;
+}
+}
+switch(__label__ ){//multiple entries
+case 24:
+	r20 = heap32[(fp+-6)];
+	heap32[(r0)] = r20;
+	r20 = heap32[(r18+1)];
+	heap32[(r0+1)] = r20;
+	heap32[(r0+3)] = r17;
+	r_g0 = r9;
+	return;
+break;
+case 71:
+	heap32[(r0+3)] = 2;
+	r9 = 1;
+	r_g0 = r9;
+	return;
+break;
+case 77:
+	r9 = r15;
+__label__ = 78;
+break;
+}
+}
+} while(0);
+if (__label__ == 12){
+	r9 = 0;
+}
+	r0 = r9 & 255;
+	r_g0 = r0;
+	return;
+}
+} while(0);
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function _ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp+4)];
+	r2 = heap32[(fp)];
+	r3 = heap32[(fp+3)];
+	if(r0 !=r1) //_LBB839_4
+{
+__label__ = 4;
+}
+else{
+	r4 = r3 >> 2;
+	r5 = r2 >> 2;
+	r4 = heap32[(r4+1)];
+	r5 = heap32[(r5+1)];
+	r6 = _2E_str26;
+	r4 = r4 == 0 ? r6 : r4;
+	r5 = r5 == 0 ? r6 : r5;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r4;
+	strcmp(i7);
+	r6 = r_g0;
+	if(r6 <0) //_LBB839_4
+{
+__label__ = 4;
+}
+else{
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r5;
+	strcmp(i7);
+	r4 = r_g0;
+	if(r4 <0) //_LBB839_4
+{
+__label__ = 4;
+}
+else{
+	r0 = 6;
+__label__ = 15;
+}
+}
+}
+if (__label__ == 4){
+	r4 = heap32[(fp+1)];
+	r5 = r2 >> 2;
+	r5 = heap32[(r5+3)];
+	r5 = (r5 + 1)|0;
+_7: while(true){
+	if(r5 !=1) //_LBB839_5
+{
+	r6 = r5 << 3;
+	r6 = (r2 + r6)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6+1)];
+	r7 = r6 & 2;
+_10: do {
+	if(r7 !=0) //_LBB839_7
+{
+	r7 = r6 & 1;
+if(!(r7 ==0)) //_LBB839_9
+{
+	if(r4 ==-3) //_LBB839_6
+{
+break _10;
+}
+}
+	r8 = r5 << 1;
+	r6 = r6 >> 8;
+	if(r7 != 0) //_LBB839_11
+{
+	r9 = r0 >> 2;
+	r9 = heap32[(r9)];
+	r6 = (r9 + r6)|0;
+	r6 = r6 >> 2;
+	r6 = heap32[(r6)];
+}
+	r8 = r8 << 2;
+	r8 = (r2 + r8)|0;
+	r8 = r8 >> 2;
+	r8 = heap32[(r8)];
+	r9 = r8 >> 2;
+	r9 = heap32[(r9)];
+	r9 = r9 >> 2;
+	r9 = heap32[(r9+7)];
+	r6 = (r0 + r6)|0;
+	heap32[(g0)] = r8;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r6;
+	heap32[(g0+3)] = r3;
+	heap32[(g0+4)] = r1;
+	__FUNCTION_TABLE__[(r9)>>2](i7);
+	r6 = r_g0;
+if(!(r6 <4)) //_LBB839_6
+{
+__label__ = 12;
+break _7;
+}
+}
+} while(0);
+	r5 = (r5 + -1)|0;
+continue _7;
+}
+else{
+__label__ = 14;
+break _7;
+}
+}
+switch(__label__ ){//multiple entries
+case 14:
+	r0 = 1;
+break;
+case 12:
+	r0 = r6 | r7;
+	r_g0 = r0;
+	return;
+break;
+}
+}
+	r_g0 = r0;
+	return;
+}
+
+function _ZN10__cxxabiv121__vmi_class_type_infoD0Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVSt9type_info;
+	r2 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r2)] = r1;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	return;
+}
+
+function _ZN10__cxxabiv121__vmi_class_type_infoD1Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = _ZTVSt9type_info;
+	r0 = r0 >> 2;
+	r1 = (r1 + 8)|0;
+	heap32[(r0)] = r1;
+	return;
+}
+
+function __extendsfdf2(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 & 2147483647;
+	r2 = r0 & -2147483648;
+	r3 = (r1 + -8388608)|0;
+	if(uint(r3) >uint(2130706431)) //_LBB842_2
+{
+	if(uint(r1) <uint(2139095040)) //_LBB842_4
+{
+	if(r1 !=0) //_LBB842_6
+{
+	r0 = r1 >>> 1;
+	r0 = r1 | r0;
+	r3 = r0 >>> 2;
+	r0 = r0 | r3;
+	r3 = r0 >>> 4;
+	r0 = r0 | r3;
+	r3 = r0 >>> 8;
+	r0 = r0 | r3;
+	r3 = r0 >>> 16;
+	r0 = r0 | r3;
+	r3 = r0 ^ -1;
+	r4 = 1431655765;
+	r3 = r3 >>> 1;
+	r0 = r4 & (~r0);
+	r3 = r3 & 1431655765;
+	r0 = (r0 + r3)|0;
+	r3 = r0 >>> 2;
+	r0 = r0 & 858993459;
+	r3 = r3 & 858993459;
+	r0 = (r0 + r3)|0;
+	r3 = r0 >>> 4;
+	r0 = r0 & 252645135;
+	r3 = r3 & 252645135;
+	r0 = (r0 + r3)|0;
+	r3 = r0 >>> 8;
+	r0 = r0 & 16711935;
+	r3 = r3 & 16711935;
+	r0 = (r0 + r3)|0;
+	r3 = r0 & 65535;
+	r0 = r0 >>> 16;
+	r0 = (r3 + r0)|0;
+	r3 = (r0 + 21)|0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r3;
+	r3 = 905;
+	__ashldi3(i7);
+	r1 = r_g0;
+	r0 = (r3 - r0)|0;
+	r3 = r_g1 ^ 1048576;
+	r0 = r0 << 20;
+	r0 = r3 | r0;
+}
+else{
+	r1 = 0;
+	r0 = r1;
+}
+}
+else{
+	r1 = r0 >>> 3;
+	r3 = r1 & 524288;
+	r1 = r0 & 4194303;
+	r0 = r3 | 2146435072;
+}
+}
+else{
+	r0 = r1 >>> 3;
+	r1 = r1 << 29;
+	r0 = (r0 + 939524096)|0;
+}
+	r3 = sp + -8;
+	r3 = r3 >> 2;
+	r0 = r0 | r2;
+	heap32[(fp+-2)] = r1;
+	heap32[(r3+1)] = r0;
+	f0 = llvm_readDouble((sp+-8));
+	f_g0 = f0;
+	return;
+}
+
+function __fixdfsi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = sp + 0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = r0 >>> 20;
+	r1 = r1 & 2047;
+	r2 = r0 & 1048575;
+	r3 = -1;
+	r4 = 1;
+	r5 = (r1 + -1023)|0;
+	r0 = r0 < 0 ? r3 : r4;
+	r3 = heap32[(fp)];
+	r2 = r2 | 1048576;
+	if(uint(r5) >uint(51)) //_LBB843_2
+{
+	if(r5 <0) //_LBB843_5
+{
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+else{
+	r1 = (r1 + -1075)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r1;
+	__ashldi3(i7);
+}
+}
+else{
+	r5 = 1075;
+	r1 = (r5 - r1)|0;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r1;
+	__lshrdi3(i7);
+}
+	heap32[(g0)] = r_g0;
+	heap32[(g0+1)] = r_g1;
+	heap32[(g0+2)] = r0;
+	heap32[(g0+3)] = r0;
+	__muldi3(i7);
+	return;
+}
+
+function __floatsidf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	if(r0 !=0) //_LBB844_2
+{
+	r1 = r0 >> 31;
+	r2 = (r0 + r1)|0;
+	r1 = r2 ^ r1;
+	r2 = r1 >>> 1;
+	r2 = r1 | r2;
+	r3 = r2 >>> 2;
+	r2 = r2 | r3;
+	r3 = r2 >>> 4;
+	r2 = r2 | r3;
+	r3 = r2 >>> 8;
+	r2 = r2 | r3;
+	r3 = r2 >>> 16;
+	r2 = r2 | r3;
+	r3 = r2 ^ -1;
+	r4 = 1431655765;
+	r3 = r3 >>> 1;
+	r2 = r4 & (~r2);
+	r3 = r3 & 1431655765;
+	r2 = (r2 + r3)|0;
+	r3 = r2 >>> 2;
+	r2 = r2 & 858993459;
+	r3 = r3 & 858993459;
+	r2 = (r2 + r3)|0;
+	r3 = r2 >>> 4;
+	r2 = r2 & 252645135;
+	r3 = r3 & 252645135;
+	r2 = (r2 + r3)|0;
+	r3 = r2 >>> 8;
+	r2 = r2 & 16711935;
+	r3 = r3 & 16711935;
+	r2 = (r2 + r3)|0;
+	r3 = r2 & 65535;
+	r2 = r2 >>> 16;
+	r4 = 31;
+	r2 = (r3 + r2)|0;
+	r3 = 52;
+	r4 = (r4 - r2)|0;
+	r3 = (r3 - r4)|0;
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r3;
+	r1 = 1054;
+	__ashldi3(i7);
+	r1 = (r1 - r2)|0;
+	r2 = r_g1 ^ 1048576;
+	r1 = r1 << 20;
+	r4 = sp + -8;
+	r1 = (r2 + r1)|0;
+	r0 = r0 & -2147483648;
+	r2 = r4 >> 2;
+	r0 = r1 | r0;
+	heap32[(fp+-2)] = r_g0;
+	heap32[(r2+1)] = r0;
+	f0 = llvm_readDouble((sp+-8));
+	f_g0 = f0;
+	return;
+}
+else{
+	f0 =                         0;
+	f_g0 = f0;
+	return;
+}
+}
+
+function __floatunsidf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	if(r0 !=0) //_LBB845_2
+{
+	r1 = r0 >>> 1;
+	r1 = r0 | r1;
+	r2 = r1 >>> 2;
+	r1 = r1 | r2;
+	r2 = r1 >>> 4;
+	r1 = r1 | r2;
+	r2 = r1 >>> 8;
+	r1 = r1 | r2;
+	r2 = r1 >>> 16;
+	r1 = r1 | r2;
+	r2 = r1 ^ -1;
+	r3 = 1431655765;
+	r2 = r2 >>> 1;
+	r1 = r3 & (~r1);
+	r2 = r2 & 1431655765;
+	r1 = (r1 + r2)|0;
+	r2 = r1 >>> 2;
+	r1 = r1 & 858993459;
+	r2 = r2 & 858993459;
+	r1 = (r1 + r2)|0;
+	r2 = r1 >>> 4;
+	r1 = r1 & 252645135;
+	r2 = r2 & 252645135;
+	r1 = (r1 + r2)|0;
+	r2 = r1 >>> 8;
+	r1 = r1 & 16711935;
+	r2 = r2 & 16711935;
+	r1 = (r1 + r2)|0;
+	r2 = r1 & 65535;
+	r1 = r1 >>> 16;
+	r3 = 31;
+	r1 = (r2 + r1)|0;
+	r2 = 52;
+	r3 = (r3 - r1)|0;
+	r2 = (r2 - r3)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = 0;
+	heap32[(g0+2)] = r2;
+	r0 = 1054;
+	__ashldi3(i7);
+	r0 = (r0 - r1)|0;
+	r1 = sp + -8;
+	r3 = r_g1 ^ 1048576;
+	r0 = r0 << 20;
+	r1 = r1 >> 2;
+	r0 = (r3 + r0)|0;
+	heap32[(fp+-2)] = r_g0;
+	heap32[(r1+1)] = r0;
+	f0 = llvm_readDouble((sp+-8));
+	f_g0 = f0;
+	return;
+}
+else{
+	f0 =                         0;
+	f_g0 = f0;
+	return;
+}
+}
+
+function __truncdfsf2(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = sp + 0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = r0 & 2147483647;
+	r2 = heap32[(fp)];
+	r3 = (r1 + -940572672)|0;
+	r4 = (r1 + -1206910976)|0;
+_1: do {
+	if(uint(r3) >=uint(r4)) //_LBB846_6
+{
+	r3 = 0;
+	r4 = 2146435072;
+	r5 = r2 == r3;
+	r4 = uint(r1) < uint(r4);
+	r4 = r1 == 2146435072 ? r5 : r4;
+	if(r4 != 0) //_LBB846_8
+{
+	r4 = 1206910976;
+	r4 = uint(r1) < uint(r4);
+	r4 = r1 == 1206910976 ? r5 : r4;
+	if(r4 != 0) //_LBB846_10
+{
+	r4 = 897;
+	r1 = r1 >>> 20;
+	r1 = (r4 - r1)|0;
+	if(r1 <53) //_LBB846_12
+{
+	r4 = r0 & 1048575;
+	r4 = r4 | 1048576;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	__lshrdi3(i7);
+	r5 = r_g0;
+	r6 = r_g1;
+	r7 = 64;
+	r1 = (r7 - r1)|0;
+	heap32[(g0)] = r2;
+	heap32[(g0+1)] = r4;
+	heap32[(g0+2)] = r1;
+	__ashldi3(i7);
+	r1 = r_g0 | r_g1;
+	r1 = r1 != r3;
+	r1 = r1 & 1;
+	r2 = r5 & 536870911;
+	r4 = r5 >>> 29;
+	r5 = r6 << 3;
+	r1 = r1 | r2;
+	r2 = r4 | r5;
+	if(uint(r1) <uint(268435457)) //_LBB846_14
+{
+	r1 = r1 ^ 268435456;
+	r3 = r1 | r3;
+	if(r3 ==0) //_LBB846_16
+{
+	r3 = r2 & 1;
+	r3 = (r3 + r2)|0;
+}
+else{
+	r3 = r2;
+}
+}
+else{
+	r3 = (r2 + 1)|0;
+}
+}
+else{
+break _1;
+}
+}
+else{
+	r3 = 2139095040;
+}
+}
+else{
+	r1 = r2 & 4194303;
+	r3 = r1 | 2143289344;
+}
+}
+else{
+	r1 = r2 >>> 29;
+	r3 = r0 << 3;
+	r1 = r1 | r3;
+	r2 = r2 & 536870911;
+	if(uint(r2) <uint(268435457)) //_LBB846_3
+{
+	r3 = (r1 + 1073741824)|0;
+	r1 = 0;
+	r2 = r2 ^ 268435456;
+	r1 = r2 | r1;
+	if(r1 ==0) //_LBB846_5
+{
+	r1 = r3 & 1;
+	r3 = (r1 + r3)|0;
+}
+}
+else{
+	r3 = (r1 + 1073741825)|0;
+}
+}
+} while(0);
+	r0 = r0 & -2147483648;
+	r0 = r3 | r0;
+	heap32[(fp+-1)] = r0;
+	f0 = heapFloat[(fp+-1)];
+	f_g0 = f0;
+	return;
+}
+
+function __fixunsdfsi(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = sp + 0;
+	r0 = r0 >> 2;
+	r0 = heap32[(r0+1)];
+	r1 = r0 >>> 20;
+	r1 = r1 & 2047;
+	r2 = (r1 + -1023)|0;
+if(!(r2 <0)) //_LBB847_3
+{
+if(!(r0 <0)) //_LBB847_3
+{
+	r2 = heap32[(fp)];
+	r2 = r2 >>> 21;
+	r0 = r0 << 11;
+	r0 = r2 | r0;
+	r2 = 1054;
+	r0 = r0 | -2147483648;
+	r1 = (r2 - r1)|0;
+	r0 = r0 >>> r1;
+	r_g0 = r0;
+	return;
+}
+}
+	r0 = 0;
+	r_g0 = r0;
+	return;
+}
+
+function __floatundisf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 | r1;
+	if(r2 ==0) //_LBB848_12
+{
+	f0 =                         0;
+	f_g0 = f0;
+	return;
+}
+else{
+	r2 = r0 >>> 1;
+	r3 = r1 >>> 1;
+	r2 = r0 | r2;
+	r3 = r1 | r3;
+	r4 = r2 >>> 2;
+	r5 = r3 >>> 2;
+	r2 = r2 | r4;
+	r3 = r3 | r5;
+	r4 = r2 >>> 4;
+	r5 = r3 >>> 4;
+	r2 = r2 | r4;
+	r3 = r3 | r5;
+	r4 = r2 >>> 8;
+	r5 = r3 >>> 8;
+	r2 = r2 | r4;
+	r3 = r3 | r5;
+	r4 = r2 >>> 16;
+	r5 = r3 >>> 16;
+	r2 = r2 | r4;
+	r3 = r3 | r5;
+	r4 = r2 ^ -1;
+	r5 = 1431655765;
+	r6 = r3 ^ -1;
+	r4 = r4 >>> 1;
+	r6 = r6 >>> 1;
+	r2 = r5 & (~r2);
+	r4 = r4 & 1431655765;
+	r2 = (r2 + r4)|0;
+	r3 = r5 & (~r3);
+	r4 = r6 & 1431655765;
+	r3 = (r3 + r4)|0;
+	r4 = r2 >>> 2;
+	r5 = r3 >>> 2;
+	r2 = r2 & 858993459;
+	r4 = r4 & 858993459;
+	r2 = (r2 + r4)|0;
+	r3 = r3 & 858993459;
+	r4 = r5 & 858993459;
+	r3 = (r3 + r4)|0;
+	r4 = r2 >>> 4;
+	r5 = r3 >>> 4;
+	r2 = r2 & 252645135;
+	r4 = r4 & 252645135;
+	r2 = (r2 + r4)|0;
+	r3 = r3 & 252645135;
+	r4 = r5 & 252645135;
+	r3 = (r3 + r4)|0;
+	r4 = r2 >>> 8;
+	r5 = r3 >>> 8;
+	r2 = r2 & 16711935;
+	r4 = r4 & 16711935;
+	r2 = (r2 + r4)|0;
+	r3 = r3 & 16711935;
+	r4 = r5 & 16711935;
+	r3 = (r3 + r4)|0;
+	r4 = r2 & 65535;
+	r2 = r2 >>> 16;
+	r2 = (r4 + r2)|0;
+	r4 = r3 & 65535;
+	r3 = r3 >>> 16;
+	r3 = (r4 + r3)|0;
+	r2 = (r2 + 32)|0;
+	r4 = 64;
+	r2 = r1 != 0 ? r3 : r2;
+	r3 = 63;
+	r4 = (r4 - r2)|0;
+	r2 = (r3 - r2)|0;
+	if(r4 <25) //_LBB848_10
+{
+	r3 = 24;
+	r3 = (r3 - r4)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	__ashldi3(i7);
+	r1 = r_g0;
+}
+else{
+	if(r4 ==25) //_LBB848_5
+{
+	r1 = r1 << 1;
+	r3 = r0 >>> 31;
+	r0 = r0 << 1;
+	r1 = r1 | r3;
+}
+else{
+	if(r4 !=26) //_LBB848_6
+{
+	r3 = (r4 + -26)|0;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	heap32[(g0+2)] = r3;
+	__lshrdi3(i7);
+	r3 = r_g0;
+	r5 = r_g1;
+	r6 = 90;
+	r6 = (r6 - r4)|0;
+	heap32[(g0)] = -1;
+	heap32[(g0+1)] = -1;
+	heap32[(g0+2)] = r6;
+	__lshrdi3(i7);
+	r0 = r_g0 & r0;
+	r1 = r_g1 & r1;
+	r0 = r0 | r1;
+	r1 = 0;
+	r0 = r0 != r1;
+	r0 = r0 & 1;
+	r0 = r0 | r3;
+	r1 = r5;
+}
+}
+	r3 = r0 >>> 2;
+	r3 = r3 & 1;
+	r0 = r3 | r0;
+	r3 = (r0 + 1)|0;
+	r5 = 1;
+	r6 = 0;
+	r0 = uint(r3) < uint(r0) ? r5 : r6;
+	r0 = r3 == 0 ? r5 : r0;
+	r0 = (r1 + r0)|0;
+	r1 = r3 >>> 2;
+	r5 = r0 << 30;
+	r1 = r1 | r5;
+	r5 = r1 & 16777216;
+	if(r5 !=0) //_LBB848_9
+{
+	r1 = r3 >>> 3;
+	r0 = r0 << 29;
+	r1 = r1 | r0;
+	r2 = r4;
+}
+}
+	r0 = r2 << 23;
+	r0 = (r0 + 1065353216)|0;
+	r1 = r1 & 8388607;
+	r0 = r0 | r1;
+	heap32[(fp+-1)] = r0;
+	f0 = heapFloat[(fp+-1)];
+	f_g0 = f0;
+	return;
+}
+}
+
+function __floatdisf(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var f0;
+var __label__ = 0;
+	i7 = sp + -24;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = heap32[(fp+1)];
+	r2 = r0 | r1;
+	if(r2 ==0) //_LBB849_12
+{
+	f0 =                         0;
+	f_g0 = f0;
+	return;
+}
+else{
+	r2 = r1 >> 31;
+	r1 = r2 ^ r1;
+	r0 = r2 ^ r0;
+	r3 = 1;
+	r4 = 0;
+	r5 = (r0 - r2)|0;
+	r1 = (r1 - r2)|0;
+	r0 = uint(r0) < uint(r2) ? r3 : r4;
+	r0 = (r1 - r0)|0;
+	r1 = r5 >>> 1;
+	r6 = r0 >>> 1;
+	r1 = r5 | r1;
+	r6 = r0 | r6;
+	r7 = r1 >>> 2;
+	r8 = r6 >>> 2;
+	r1 = r1 | r7;
+	r6 = r6 | r8;
+	r7 = r1 >>> 4;
+	r8 = r6 >>> 4;
+	r1 = r1 | r7;
+	r6 = r6 | r8;
+	r7 = r1 >>> 8;
+	r8 = r6 >>> 8;
+	r1 = r1 | r7;
+	r6 = r6 | r8;
+	r7 = r1 >>> 16;
+	r8 = r6 >>> 16;
+	r1 = r1 | r7;
+	r6 = r6 | r8;
+	r7 = r1 ^ -1;
+	r8 = 1431655765;
+	r9 = r6 ^ -1;
+	r7 = r7 >>> 1;
+	r9 = r9 >>> 1;
+	r1 = r8 & (~r1);
+	r7 = r7 & 1431655765;
+	r1 = (r1 + r7)|0;
+	r6 = r8 & (~r6);
+	r7 = r9 & 1431655765;
+	r6 = (r6 + r7)|0;
+	r7 = r1 >>> 2;
+	r8 = r6 >>> 2;
+	r1 = r1 & 858993459;
+	r7 = r7 & 858993459;
+	r1 = (r1 + r7)|0;
+	r6 = r6 & 858993459;
+	r7 = r8 & 858993459;
+	r6 = (r6 + r7)|0;
+	r7 = r1 >>> 4;
+	r8 = r6 >>> 4;
+	r1 = r1 & 252645135;
+	r7 = r7 & 252645135;
+	r1 = (r1 + r7)|0;
+	r6 = r6 & 252645135;
+	r7 = r8 & 252645135;
+	r6 = (r6 + r7)|0;
+	r7 = r1 >>> 8;
+	r8 = r6 >>> 8;
+	r1 = r1 & 16711935;
+	r7 = r7 & 16711935;
+	r1 = (r1 + r7)|0;
+	r6 = r6 & 16711935;
+	r7 = r8 & 16711935;
+	r6 = (r6 + r7)|0;
+	r7 = r1 & 65535;
+	r1 = r1 >>> 16;
+	r1 = (r7 + r1)|0;
+	r7 = r6 & 65535;
+	r6 = r6 >>> 16;
+	r6 = (r7 + r6)|0;
+	r1 = (r1 + 32)|0;
+	r7 = 64;
+	r1 = r0 != 0 ? r6 : r1;
+	r6 = 63;
+	r7 = (r7 - r1)|0;
+	r1 = (r6 - r1)|0;
+	if(r7 <25) //_LBB849_10
+{
+	r3 = 24;
+	r3 = (r3 - r7)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r3;
+	__ashldi3(i7);
+	r5 = r_g0;
+}
+else{
+	if(r7 ==25) //_LBB849_5
+{
+	r0 = r0 << 1;
+	r6 = r5 >>> 31;
+	r5 = r5 << 1;
+	r0 = r0 | r6;
+}
+else{
+	if(r7 !=26) //_LBB849_6
+{
+	r6 = (r7 + -26)|0;
+	heap32[(g0)] = r5;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r6;
+	__lshrdi3(i7);
+	r6 = r_g0;
+	r8 = r_g1;
+	r9 = 90;
+	r9 = (r9 - r7)|0;
+	heap32[(g0)] = -1;
+	heap32[(g0+1)] = -1;
+	heap32[(g0+2)] = r9;
+	__lshrdi3(i7);
+	r5 = r_g0 & r5;
+	r0 = r_g1 & r0;
+	r0 = r5 | r0;
+	r0 = r0 != r4;
+	r0 = r0 & 1;
+	r5 = r0 | r6;
+	r0 = r8;
+}
+}
+	r6 = r5 >>> 2;
+	r6 = r6 & 1;
+	r5 = r6 | r5;
+	r6 = (r5 + 1)|0;
+	r5 = uint(r6) < uint(r5) ? r3 : r4;
+	r5 = r6 == 0 ? r3 : r5;
+	r0 = (r0 + r5)|0;
+	r5 = r6 >>> 2;
+	r3 = r0 << 30;
+	r5 = r5 | r3;
+	r3 = r5 & 16777216;
+	if(r3 !=0) //_LBB849_9
+{
+	r0 = r0 >> 2;
+	r5 = r5 >>> 1;
+	r0 = r0 << 31;
+	r5 = r5 | r0;
+	r1 = r7;
+}
+}
+	r0 = r1 << 23;
+	r1 = r5 & 8388607;
+	r2 = r2 & -2147483648;
+	r1 = r1 | r2;
+	r0 = (r0 + 1065353216)|0;
+	r0 = r1 | r0;
+	heap32[(fp+-1)] = r0;
+	f0 = heapFloat[(fp+-1)];
+	f_g0 = f0;
+	return;
+}
+}
+
+function _GLOBAL__I__mandreel_create_tcp_socket(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = mandreel_flash_tcp_onError__index__;
+	r1 = _ZZL32_mandreel_init_tcp_socket_librayvE47s_723478567_mandreel_mandreel_flash_tcp_onError;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r1;
+	iMandreelRegisterExternalCallback(i7);
+	return;
+}
+
+function mandreel_flash_tcp_onConnect(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function mandreel_flash_tcp_onError(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function mandreel_flash_tcp_receive_callbak(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -32784;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+	r1 = heap32[(fp)];
+	r2 = heapU8[r0];
+_1: do {
+	if(r2 !=0) //_LBB853_2
+{
+	r3 = (r0 + 1)|0;
+	r4 = 0;
+_3: while(true){
+	r2 = (r4 + 1)|0;
+	r5 = heapU8[r3+r4];
+	r4 = r2;
+	if(r5 !=0) //_LBB853_3
+{
+continue _3;
+}
+else{
+break _1;
+}
+}
+}
+else{
+	r2 = 0;
+}
+} while(0);
+	r3 = sp + -32768;
+	heap32[(g0)] = r0;
+	heap32[(g0+1)] = r2;
+	heap32[(g0+2)] = r3;
+	heap32[(g0+3)] = 32768;
+	r0 = _ZL10s_aSockets;
+	r2 = 0;
+	_ZN12mandreel_b6410b64_decodeEPKcjPvj(i7);
+	r4 = r_g0;
+	r6 = _ZL10s_aSockets;
+_7: while(true){
+	if(uint(r2) <uint(8)) //_LBB853_5
+{
+	r5 = (r2 * 8198)|0;
+	r5 = r5 << 2;
+	r5 = (r6 + r5)|0;
+	r5 = r5 >> 2;
+	r5 = heap32[(r5+8196)];
+	if(r5 !=r1) //_LBB853_7
+{
+	r2 = (r2 + 1)|0;
+	r0 = (r0 + 32792)|0;
+continue _7;
+}
+else{
+__label__ = 9;
+break _7;
+}
+}
+else{
+__label__ = 8;
+break _7;
+}
+}
+if (__label__ == 8){
+	r0 = 0;
+}
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+8194)];
+	if(r4 >0) //_LBB853_12
+{
+	r5 = r4;
+_16: while(true){
+	r6 = (r2 + 1)|0;
+	r5 = (r5 + -1)|0;
+	r6 = r6 & 32767;
+	r7 = (r3 + 1)|0;
+	r3 = heapU8[r3];
+	heap8[r0+r2] = r3;
+	r3 = r7;
+	r2 = r6;
+if(!(r5 !=0)) //_LBB853_13
+{
+break _16;
+}
+}
+	r2 = r6;
+}
+	heap32[(r1+8194)] = r2;
+	r0 = heap32[(r1+8192)];
+	r0 = (r0 + r4)|0;
+	heap32[(r1+8192)] = r0;
+	return;
+}
+
+function _GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	heap32[(g0)] = 0;
+	_Z41__static_initialization_and_destruction_0ii(i7);
+	return;
+}
+
+function _ZNSt5dequeIjSaIjEE5eraseESt15__rw_deque_iterIjiPjRjS0_ES5_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+4)];
+	r0 = r0 >> 2;
+	r1 = heap32[(fp)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	r4 = heap32[(r0)];
+	r5 = heap32[(fp+3)];
+	r6 = heap32[(r0+1)];
+	r7 = r4 | r3;
+	if(r7 !=0) //_LBB855_2
+{
+	r7 = r6 >> 2;
+	r8 = (r6 - r5)|0;
+	r9 = r5 >> 2;
+	r8 = r8 << 3;
+	r9 = heap32[(r9)];
+	r7 = heap32[(r7)];
+	r7 = (r4 - r7)|0;
+	r8 = (r8 + -32)|0;
+	r9 = (r9 + 128)|0;
+	r9 = (r9 - r3)|0;
+	r7 = r7 >> 2;
+	r8 = r8 & -32;
+	r7 = (r7 + r8)|0;
+	r8 = r9 >> 2;
+	r7 = (r7 + r8)|0;
+}
+else{
+	r7 = (r4 - r3)|0;
+	r7 = r7 >> 2;
+}
+	r8 = r2 >> 2;
+	r9 = heap32[(r8)];
+	r10 = heap32[(r8+1)];
+	r11 = r3 | r9;
+	if(r11 !=0) //_LBB855_5
+{
+	r11 = (r5 - r10)|0;
+	r12 = r5 >> 2;
+	r13 = r10 >> 2;
+	r11 = r11 << 3;
+	r13 = heap32[(r13)];
+	r12 = heap32[(r12)];
+	r11 = (r11 + -32)|0;
+	r12 = (r3 - r12)|0;
+	r13 = (r13 + 128)|0;
+	r13 = (r13 - r9)|0;
+	r11 = r11 & -32;
+	r12 = r12 >> 2;
+	r11 = (r11 + r12)|0;
+	r12 = r13 >> 2;
+	r11 = (r11 + r12)|0;
+}
+else{
+	r11 = (r3 - r9)|0;
+	r11 = r11 >> 2;
+}
+	r2 = (r2 + 8)|0;
+	r12 = heap32[(r8+2)];
+	r13 = heap32[(r8+3)];
+	r14 = r12 | r4;
+	if(r14 !=0) //_LBB855_8
+{
+	r14 = (r13 - r6)|0;
+	r15 = r13 >> 2;
+	r16 = r6 >> 2;
+	r14 = r14 << 3;
+	r16 = heap32[(r16)];
+	r15 = heap32[(r15)];
+	r14 = (r14 + -32)|0;
+	r15 = (r12 - r15)|0;
+	r16 = (r16 + 128)|0;
+	r16 = (r16 - r4)|0;
+	r14 = r14 & -32;
+	r15 = r15 >> 2;
+	r14 = (r14 + r15)|0;
+	r15 = r16 >> 2;
+	r14 = (r14 + r15)|0;
+}
+else{
+	r14 = (r12 - r4)|0;
+	r14 = r14 >> 2;
+}
+	if(r11 >=r14) //_LBB855_36
+{
+	r0 = (r5 + 4)|0;
+	r9 = r3;
+_15: while(true){
+	r10 = r4 | r12;
+	if(r10 !=0) //_LBB855_44
+{
+	r10 = r6 >> 2;
+	r11 = (r6 - r13)|0;
+	r14 = r13 >> 2;
+	r11 = r11 << 3;
+	r14 = heap32[(r14)];
+	r10 = heap32[(r10)];
+	r10 = (r4 - r10)|0;
+	r11 = (r11 + -32)|0;
+	r14 = (r14 + 128)|0;
+	r14 = (r14 - r12)|0;
+	r10 = r10 >> 2;
+	r11 = r11 & -32;
+	r10 = (r10 + r11)|0;
+	r11 = r14 >> 2;
+	r10 = (r10 + r11)|0;
+}
+else{
+	r10 = (r4 - r12)|0;
+	r10 = r10 >> 2;
+}
+	if(r10 !=0) //_LBB855_37
+{
+	r10 = r4 >> 2;
+	r11 = r9 >> 2;
+	r10 = heap32[(r10)];
+	r4 = (r4 + 4)|0;
+	r14 = r6 >> 2;
+	heap32[(r11)] = r10;
+	r10 = heap32[(r14)];
+	r10 = (r10 + 128)|0;
+	if(r4 ==r10) //_LBB855_39
+{
+	r6 = (r6 + 4)|0;
+	r4 = heap32[(r14+1)];
+}
+	r10 = r0 >> 2;
+	r9 = (r9 + 4)|0;
+	r11 = heap32[(r10+-1)];
+	r11 = (r11 + 128)|0;
+if(!(r9 !=r11)) //_LBB855_42
+{
+	r9 = heap32[(r10)];
+	r0 = (r0 + 4)|0;
+}
+}
+else{
+break _15;
+}
+}
+_27: do {
+if(!(r7 ==0)) //_LBB855_59
+{
+	r0 = heap32[(r8+2)];
+_29: while(true){
+	r0 = (r0 + -4)|0;
+	heap32[(r8+2)] = r0;
+	r4 = heap32[(r8+3)];
+	r6 = heap32[(r8+1)];
+	if(r6 !=r4) //_LBB855_51
+{
+__label__ = 45;
+}
+else{
+	r6 = heap32[(r8)];
+	if(r6 !=r0) //_LBB855_51
+{
+__label__ = 45;
+}
+else{
+	r0 = r4 >> 2;
+	r4 = heap32[(r0)];
+__label__ = 47;
+}
+}
+if (__label__ == 45){
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	if(r0 ==r4) //_LBB855_53
+{
+__label__ = 47;
+}
+else{
+__label__ = 46;
+}
+}
+_36: do {
+if (__label__ == 47){
+	heap32[(g0)] = r4;
+	_ZdlPv(i7);
+	r0 = heap32[(r8+3)];
+	r4 = heap32[(r8+1)];
+if(!(r4 !=r0)) //_LBB855_58
+{
+	r4 = heap32[(r8)];
+	r6 = heap32[(r8+2)];
+if(!(r4 !=r6)) //_LBB855_58
+{
+	r0 = heap32[(r8+4)];
+	r0 = (r0 + -4)|0;
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = r2;
+	heap32[(r8)] = 0;
+	heap32[(r8+1)] = r2;
+	r0 = 0;
+	heap32[(r8+4)] = 0;
+	heap32[(r8+5)] = 0;
+break _36;
+}
+}
+	r4 = r0 >> 2;
+	r6 = (r0 + -4)|0;
+	heap32[(r4)] = 0;
+	heap32[(r8+3)] = r6;
+	r0 = heap32[(r4+-1)];
+	r0 = (r0 + 128)|0;
+	heap32[(r8+2)] = r0;
+	heap32[(r8+3)] = r6;
+}
+} while(0);
+	r7 = (r7 + -1)|0;
+	if(r7 ==0) //_LBB855_59
+{
+break _27;
+}
+}
+}
+} while(0);
+	r0 = r1 >> 2;
+	heap32[(r0)] = r3;
+	heap32[(r0+1)] = r5;
+	return;
+}
+else{
+_44: while(true){
+	r12 = r9 | r3;
+	if(r12 !=0) //_LBB855_20
+{
+	r12 = r10 >> 2;
+	r13 = (r10 - r5)|0;
+	r11 = r5 >> 2;
+	r13 = r13 << 3;
+	r11 = heap32[(r11)];
+	r12 = heap32[(r12)];
+	r12 = (r9 - r12)|0;
+	r13 = (r13 + -32)|0;
+	r11 = (r11 + 128)|0;
+	r11 = (r11 - r3)|0;
+	r12 = r12 >> 2;
+	r13 = r13 & -32;
+	r12 = (r12 + r13)|0;
+	r13 = r11 >> 2;
+	r12 = (r12 + r13)|0;
+}
+else{
+	r12 = (r9 - r3)|0;
+	r12 = r12 >> 2;
+}
+	if(r12 !=0) //_LBB855_11
+{
+	r12 = r6 >> 2;
+	r13 = heap32[(r12)];
+	if(r4 ==r13) //_LBB855_13
+{
+	r4 = heap32[(r12+-1)];
+	r6 = (r6 + -4)|0;
+	r4 = (r4 + 128)|0;
+}
+	r12 = r5 >> 2;
+	r4 = (r4 + -4)|0;
+	r13 = heap32[(r12)];
+	if(r3 ==r13) //_LBB855_16
+{
+	r3 = heap32[(r12+-1)];
+	r5 = (r5 + -4)|0;
+	r3 = (r3 + 128)|0;
+}
+	r12 = r3 >> 2;
+	r3 = (r3 + -4)|0;
+	r13 = r4 >> 2;
+	r12 = heap32[(r12+-1)];
+	heap32[(r13)] = r12;
+}
+else{
+break _44;
+}
+}
+_58: do {
+if(!(r7 ==0)) //_LBB855_35
+{
+	r3 = heap32[(r8)];
+_60: while(true){
+	r3 = (r3 + 4)|0;
+	heap32[(r8)] = r3;
+	r4 = heap32[(r8+1)];
+	r5 = heap32[(r8+3)];
+	if(r4 !=r5) //_LBB855_27
+{
+__label__ = 24;
+}
+else{
+	r5 = r2 >> 2;
+	r5 = heap32[(r5)];
+	if(r3 !=r5) //_LBB855_27
+{
+__label__ = 24;
+}
+else{
+	r3 = r4 >> 2;
+	r4 = heap32[(r3)];
+__label__ = 26;
+}
+}
+if (__label__ == 24){
+	r4 = r4 >> 2;
+	r4 = heap32[(r4)];
+	r5 = (r4 + 128)|0;
+	if(r3 ==r5) //_LBB855_29
+{
+__label__ = 26;
+}
+else{
+__label__ = 25;
+}
+}
+_67: do {
+if (__label__ == 26){
+	heap32[(g0)] = r4;
+	_ZdlPv(i7);
+	r3 = heap32[(r8+1)];
+	r4 = heap32[(r8+3)];
+if(!(r3 !=r4)) //_LBB855_34
+{
+	r4 = heap32[(r8)];
+	r5 = heap32[(r8+2)];
+if(!(r4 !=r5)) //_LBB855_34
+{
+	r3 = heap32[(r8+4)];
+	r3 = (r3 + -4)|0;
+	heap32[(g0)] = r3;
+	_ZdlPv(i7);
+	heap32[(r8+2)] = 0;
+	heap32[(r8+3)] = r2;
+	heap32[(r8)] = 0;
+	heap32[(r8+1)] = r2;
+	r3 = 0;
+	heap32[(r8+4)] = 0;
+	heap32[(r8+5)] = 0;
+break _67;
+}
+}
+	r4 = r3 >> 2;
+	r5 = (r3 + 4)|0;
+	heap32[(r4)] = 0;
+	heap32[(r8+1)] = r5;
+	r3 = heap32[(r4+1)];
+	heap32[(r8)] = r3;
+	heap32[(r8+1)] = r5;
+}
+} while(0);
+	r7 = (r7 + -1)|0;
+	if(r7 ==0) //_LBB855_35
+{
+break _58;
+}
+}
+}
+} while(0);
+	r1 = r1 >> 2;
+	r2 = heap32[(r0)];
+	heap32[(r1)] = r2;
+	r2 = heap32[(r0+1)];
+	heap32[(r1+1)] = r2;
+	return;
+}
+}
+
+function _Z41__static_initialization_and_destruction_0ii(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+var __label__ = 0;
+	i7 = sp + -80;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	if(r0 ==0) //_LBB856_16
+{
+	r0 = _ZL13s_fifo_errors;
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+2)];
+	r3 = sp + -24;
+	heap32[(fp+-6)] = r2;
+	r2 = r3 >> 2;
+	r4 = heap32[(r1+3)];
+	heap32[(r2+1)] = r4;
+	r2 = heap32[(r1)];
+	r1 = heap32[(r1+1)];
+	r4 = sp + -32;
+}
+else{
+	if(r0 !=1) //_LBB856_17
+{
+	return;
+}
+else{
+	r0 = sp + -56;
+	r1 = r0 >> 2;
+	r2 = (r0 + 8)|0;
+	heap32[(r1+2)] = 0;
+	heap32[(r1+3)] = r2;
+	heap32[(fp+-14)] = 0;
+	heap32[(r1+1)] = r2;
+	r2 = _ZL13s_fifo_errors;
+	heap32[(r1+4)] = 0;
+	r3 = r2 >> 2;
+	heap32[(r1+5)] = 0;
+	r4 = (r2 + 8)|0;
+	heap32[(r3+2)] = 0;
+	heap32[(r3+3)] = r4;
+	heap32[(r3)] = 0;
+	heap32[(r3+1)] = r4;
+	r5 = 0;
+	heap32[(r3+4)] = 0;
+	heap32[(r3+5)] = 0;
+	r6 = r4;
+	r7 = r5;
+_7: while(true){
+	if(r7 !=0) //_LBB856_12
+{
+	r8 = (r2 + 8)|0;
+	r8 = (r8 - r6)|0;
+	r9 = r6 >> 2;
+	r8 = r8 << 3;
+	r9 = heap32[(r9)];
+	r10 = 0;
+	r11 = heap32[(r3+2)];
+	r10 = (r10 - r11)|0;
+	r8 = (r8 + -32)|0;
+	r9 = (r9 + 128)|0;
+	r9 = (r9 - r7)|0;
+	r10 = r10 >> 2;
+	r8 = r8 & -32;
+	r8 = (r10 + r8)|0;
+	r9 = r9 >> 2;
+	r8 = (r8 + r9)|0;
+}
+else{
+	r8 = 0;
+	r8 = (r8 - r7)|0;
+	r8 = r8 >> 2;
+}
+	if(r8 !=0) //_LBB856_3
+{
+	r8 = r4 >> 2;
+	r9 = heap32[(r8)];
+	if(r5 ==r9) //_LBB856_5
+{
+	r5 = heap32[(r8+-1)];
+	r4 = (r4 + -4)|0;
+	r5 = (r5 + 128)|0;
+}
+	r8 = r6 >> 2;
+	r5 = (r5 + -4)|0;
+	r9 = heap32[(r8)];
+	if(r7 ==r9) //_LBB856_8
+{
+	r7 = heap32[(r8+-1)];
+	r6 = (r6 + -4)|0;
+	r7 = (r7 + 128)|0;
+}
+	r8 = r7 >> 2;
+	r7 = (r7 + -4)|0;
+	r9 = r5 >> 2;
+	r8 = heap32[(r8+-1)];
+	heap32[(r9)] = r8;
+}
+else{
+break _7;
+}
+}
+	r2 = heap32[(r1+2)];
+	r3 = sp + -8;
+	heap32[(fp+-2)] = r2;
+	r2 = r3 >> 2;
+	r4 = heap32[(r1+3)];
+	heap32[(r2+1)] = r4;
+	r2 = heap32[(fp+-14)];
+	r1 = heap32[(r1+1)];
+	r4 = sp + -16;
+}
+}
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r2;
+	heap32[(g0+3)] = r1;
+	heap32[(g0+4)] = r3;
+	_ZNSt5dequeIjSaIjEE5eraseESt15__rw_deque_iterIjiPjRjS0_ES5_(i7);
+	return;
+}
+
+function _GLOBAL__I__ZN5my_gl14glAttachShaderEjj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _ZN5my_glL9m_contextE;
+	r1 = r0 >> 2;
+	heap32[(r1+62)] = 0;
+	heap32[(r1+63)] = 0;
+	heap32[(r1+64)] = 0;
+	heap32[(r1+65)] = 0;
+	heap32[(r1+66)] = 0;
+	heap32[(r1+67)] = 0;
+	heap32[(r1+78)] = 0;
+	heap32[(r1+79)] = 0;
+	heap32[(r1+74)] = 0;
+	heap32[(r1+77)] = 0;
+	heap32[(r1+76)] = 0;
+	heap32[(r1+75)] = 0;
+	_ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE11_C_get_linkEv(i7);
+	r2 = r_g0;
+	r3 = r2 >> 2;
+	heap32[(r1+78)] = r2;
+	heap32[(r3+1)] = 0;
+	heap32[(r3+3)] = r2;
+	heap32[(r3+2)] = r2;
+	heap32[(r1)] = 0;
+	heap32[(r1+3)] = 0;
+	heap32[(r1+61)] = 0;
+	heap32[(r1+4)] = 0;
+	heap32[(r1+68)] = 0;
+	heap32[(r1+69)] = 0;
+	r2 = _ZL26s_mandreel_internal_height;
+	r3 = _ZL25s_mandreel_internal_width;
+	heap32[(r1+1)] = 0;
+	r2 = r2 >> 2;
+	heap32[(r1+2)] = 1;
+	r3 = r3 >> 2;
+	r2 = heap32[(r2)];
+	r3 = heap32[(r3)];
+	heap32[(r1+70)] = 0;
+	heap32[(r1+71)] = 0;
+	r4 = 224;
+	heap32[(r1+72)] = r3;
+	heap32[(r1+73)] = r2;
+	r2 = 0;
+_2: while(true){
+	r1 = (r4 + -1)|0;
+	r4 = (r0 - r4)|0;
+	heap8[r4+244] = r2;
+	r4 = r1;
+	if(r1 !=0) //_LBB857_2
+{
+continue _2;
+}
+else{
+break _2;
+}
+}
+	return;
+}
+
+function _GLOBAL__D__ZN5my_gl14glAttachShaderEjj(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -16;var g0 = i7>>2; // save stack
+	r0 = _ZN5my_glL9m_contextE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+78)];
+_1: do {
+if(!(r1 ==0)) //_LBB858_26
+{
+	r2 = r1 >> 2;
+	r3 = heap32[(r0+79)];
+	if(r3 !=0) //_LBB858_5
+{
+	r1 = heap32[(r2+1)];
+	heap32[(g0)] = r1;
+	_ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE8_C_eraseEPNS_17__rw_rb_tree_nodeISB_S6_jS8_EE(i7);
+	r1 = heap32[(r0+78)];
+	r2 = r1 >> 2;
+	heap32[(r2+1)] = 0;
+	heap32[(r2+3)] = r1;
+	heap32[(r2+2)] = r1;
+	heap32[(r0+79)] = 0;
+}
+else{
+	r2 = heap32[(r2+2)];
+if(!(r2 ==r1)) //_LBB858_4
+{
+_6: while(true){
+	r3 = r2;
+	r4 = r3 >> 2;
+	r2 = heap32[(r4+3)];
+_8: do {
+	if(r2 !=0) //_LBB858_10
+{
+	r4 = r2 >> 2;
+	r4 = heap32[(r4+2)];
+	if(r4 ==0) //_LBB858_12
+{
+break _8;
+}
+else{
+__label__ = 8; //SET chanka
+_10: while(true){
+	r2 = r4;
+	r4 = r2 >> 2;
+	r4 = heap32[(r4+2)];
+	if(r4 !=0) //_LBB858_13
+{
+continue _10;
+}
+else{
+break _8;
+}
+}
+}
+}
+else{
+	r4 = heap32[(r4+1)];
+	r2 = r4 >> 2;
+	r2 = heap32[(r2+3)];
+	if(r3 ==r2) //_LBB858_9
+{
+_14: while(true){
+	r2 = r4;
+	r5 = r2 >> 2;
+	r4 = heap32[(r5+1)];
+	r6 = r4 >> 2;
+	r6 = heap32[(r6+3)];
+if(!(r2 ==r6)) //_LBB858_15
+{
+break _14;
+}
+}
+	r5 = heap32[(r5+3)];
+}
+else{
+	r5 = 0;
+	r2 = r3;
+}
+	if(r5 !=r4) //_LBB858_19
+{
+	r2 = r4;
+}
+}
+} while(0);
+	r4 = sp + -8;
+	heap32[(g0)] = r4;
+	heap32[(g0+1)] = r3;
+	_ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE5eraseENS_14__rw_tree_iterIS6_iPS6_RS6_NS_17__rw_rb_tree_nodeISB_S6_jS8_EEEE(i7);
+if(!(r2 !=r1)) //_LBB858_6
+{
+break _6;
+}
+}
+	r1 = heap32[(r0+78)];
+}
+}
+	r2 = r1 >> 2;
+	r3 = heap32[(r0+75)];
+	heap32[(r2+3)] = r3;
+	heap32[(r0+75)] = r1;
+	r1 = heap32[(r0+74)];
+if(!(r1 ==0)) //_LBB858_26
+{
+__label__ = 16; //SET chanka
+_23: while(true){
+	r2 = r1 >> 2;
+	r3 = heap32[(r2)];
+	heap32[(r0+74)] = r3;
+	r2 = heap32[(r2+2)];
+	heap32[(g0)] = r2;
+	_ZdlPv(i7);
+	heap32[(g0)] = r1;
+	_ZdlPv(i7);
+	r1 = heap32[(r0+74)];
+	if(r1 !=0) //_LBB858_23
+{
+continue _23;
+}
+else{
+break _1;
+}
+}
+}
+}
+} while(0);
+	r1 = heap32[(r0+65)];
+	r2 = heap32[(r0+66)];
+	r3 = (r2 - r1)|0;
+	r3 = r3 >> 5;
+	if(r3 !=0) //_LBB858_28
+{
+	r1 = (r2 + -32)|0;
+	heap32[(r0+66)] = r1;
+	r1 = (r2 + -28)|0;
+	heap32[(g0)] = r1;
+	_ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EED2Ev(i7);
+_31: do {
+if(!(r3 ==1)) //_LBB858_33
+{
+	r1 = (r3 + -1)|0;
+_33: while(true){
+	r2 = heap32[(r0+66)];
+	r3 = (r2 + -32)|0;
+	heap32[(r0+66)] = r3;
+	r2 = (r2 + -28)|0;
+	heap32[(g0)] = r2;
+	_ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EED2Ev(i7);
+	r1 = (r1 + -1)|0;
+if(!(r1 !=0)) //_LBB858_31
+{
+break _31;
+}
+}
+}
+} while(0);
+	r1 = heap32[(r0+65)];
+}
+	heap32[(g0)] = r1;
+	_ZdlPv(i7);
+	r1 = heap32[(r0+63)];
+	r2 = heap32[(r0+62)];
+	r3 = (r1 - r2)|0;
+	r4 = (r3 + 11)|0;
+if(!(uint(r4) <uint(23))) //_LBB858_37
+{
+	r3 = (r3 / -12)|0;
+	r3 = (r3 * 12)|0;
+	r1 = (r1 + r3)|0;
+	heap32[(r0+63)] = r1;
+}
+	heap32[(g0)] = r2;
+	_ZdlPv(i7);
+	return;
+}
+
+function imandreel_restore_glcontext(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function imandreel_viewport_resize(sp)
+{
+	var i7;
+	var fp = sp>>2;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	return;
+}
+
+function _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE8_C_eraseEPNS_17__rw_rb_tree_nodeISB_S6_jS8_EE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+if(!(r0 ==0)) //_LBB861_2
+{
+_2: while(true){
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+3)];
+	heap32[(g0)] = r2;
+	r2 = _ZN5my_glL9m_contextE;
+	_ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE8_C_eraseEPNS_17__rw_rb_tree_nodeISB_S6_jS8_EE(i7);
+	r2 = r2 >> 2;
+	r3 = heap32[(r1+2)];
+	r4 = heap32[(r2+75)];
+	heap32[(r1+3)] = r4;
+	heap32[(r2+75)] = r0;
+	r0 = r3;
+	if(r3 !=0) //_LBB861_1
+{
+continue _2;
+}
+else{
+break _2;
+}
+}
+}
+	return;
+}
+
+function _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE8_C_eraseEPNS_17__rw_rb_tree_nodeIS8_S3_SsS5_EE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+1)];
+if(!(r0 ==0)) //_LBB862_6
+{
+	r1 = heap32[(fp)];
+_3: while(true){
+	r2 = r0;
+	r3 = r2 >> 2;
+	r0 = heap32[(r3+3)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	_ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE8_C_eraseEPNS_17__rw_rb_tree_nodeIS8_S3_SsS5_EE(i7);
+	r4 = r1 >> 2;
+	r0 = heap32[(r3+2)];
+	r5 = heap32[(r4+1)];
+	heap32[(r3+3)] = r5;
+	r5 = heap32[(r3+4)];
+	r5 = (r5 + -12)|0;
+	r6 = _ZNSs11_C_null_refE;
+if(!(r5 ==r6)) //_LBB862_5
+{
+	r5 = r5 >> 2;
+	r6 = heap32[(r5)];
+	r7 = (r6 + -1)|0;
+	heap32[(r5)] = r7;
+if(!(r6 >0)) //_LBB862_5
+{
+	r5 = heap32[(r3+4)];
+	r5 = (r5 + -12)|0;
+	heap32[(g0)] = r5;
+	_ZdlPv(i7);
+}
+}
+	heap32[(r3+4)] = 0;
+	heap32[(r4+1)] = r2;
+	if(r0 !=0) //_LBB862_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+	return;
+}
+
+function _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE5eraseENS_14__rw_tree_iterIS3_iPS3_RS3_NS_17__rw_rb_tree_nodeIS8_S3_SsS5_EEEESF_(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+	var r15;
+	var r16;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp+2)];
+	r1 = heap32[(fp+1)];
+	r0 = r0 >> 2;
+	r2 = r1 >> 2;
+	r3 = heap32[(r2+4)];
+	r4 = heap32[(r0)];
+	r5 = heap32[(fp)];
+	r6 = heap32[(fp+3)];
+	r7 = r3 >> 2;
+	r8 = heap32[(r7+2)];
+if(!(r4 !=r8)) //_LBB863_3
+{
+if(!(r3 !=r6)) //_LBB863_3
+{
+	r8 = heap32[(r2+5)];
+	if(r8 !=0) //_LBB863_4
+{
+	r0 = heap32[(r7+1)];
+	heap32[(g0)] = r1;
+	heap32[(g0+1)] = r0;
+	_ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE8_C_eraseEPNS_17__rw_rb_tree_nodeIS8_S3_SsS5_EE(i7);
+	r0 = heap32[(r2+4)];
+	r0 = r0 >> 2;
+	heap32[(r0+1)] = 0;
+	r0 = heap32[(r2+4)];
+	r1 = r0 >> 2;
+	heap32[(r1+3)] = r0;
+	heap32[(r1+2)] = r0;
+	heap32[(r2+5)] = 0;
+	r0 = r5 >> 2;
+	r1 = heap32[(r2+4)];
+	heap32[(r0)] = r1;
+	return;
+}
+}
+}
+	r1 = r5 >> 2;
+	heap32[(r1)] = r3;
+if(!(r4 ==r6)) //_LBB863_165
+{
+_7: while(true){
+	r3 = r4 >> 2;
+	r5 = heap32[(r3+3)];
+	if(r5 !=0) //_LBB863_9
+{
+	r7 = r5 >> 2;
+	r7 = heap32[(r7+2)];
+if(!(r7 ==0)) //_LBB863_11
+{
+_12: while(true){
+	r5 = r7;
+	r7 = r5 >> 2;
+	r7 = heap32[(r7+2)];
+if(!(r7 !=0)) //_LBB863_12
+{
+break _12;
+}
+}
+}
+	heap32[(r0)] = r5;
+}
+else{
+	r7 = heap32[(r3+1)];
+	r5 = r7 >> 2;
+	r5 = heap32[(r5+3)];
+	if(r4 ==r5) //_LBB863_8
+{
+_17: while(true){
+	r5 = r7;
+	r8 = r5 >> 2;
+	r7 = heap32[(r8+1)];
+	r9 = r7 >> 2;
+	r9 = heap32[(r9+3)];
+if(!(r5 ==r9)) //_LBB863_14
+{
+break _17;
+}
+}
+	heap32[(r0)] = r5;
+	r8 = heap32[(r8+3)];
+}
+else{
+	r8 = 0;
+	r5 = r4;
+}
+	if(r8 !=r7) //_LBB863_18
+{
+	heap32[(r0)] = r7;
+	r5 = r7;
+}
+}
+	r7 = heap32[(r2+4)];
+	if(r4 !=r7) //_LBB863_21
+{
+	r9 = heap32[(r3+3)];
+_26: do {
+	if(r9 !=0) //_LBB863_25
+{
+	r8 = r9 >> 2;
+	r10 = heap32[(r8+2)];
+	if(r10 ==0) //_LBB863_27
+{
+	r8 = r9;
+}
+else{
+_30: while(true){
+	r8 = r10;
+	r10 = r8 >> 2;
+	r10 = heap32[(r10+2)];
+	if(r10 !=0) //_LBB863_28
+{
+continue _30;
+}
+else{
+break _26;
+}
+}
+}
+}
+else{
+	r8 = heap32[(r3+1)];
+	r10 = r8 >> 2;
+	r10 = heap32[(r10+3)];
+	if(r4 ==r10) //_LBB863_24
+{
+_34: while(true){
+	r11 = r8;
+	r10 = r11 >> 2;
+	r8 = heap32[(r10+1)];
+	r12 = r8 >> 2;
+	r12 = heap32[(r12+3)];
+if(!(r11 ==r12)) //_LBB863_30
+{
+break _34;
+}
+}
+	r10 = heap32[(r10+3)];
+}
+else{
+	r10 = 0;
+	r11 = r4;
+}
+	if(r10 ==r8) //_LBB863_34
+{
+	r8 = r11;
+}
+}
+} while(0);
+	r10 = heap32[(r3+2)];
+	if(r10 !=0) //_LBB863_37
+{
+	if(r9 !=0) //_LBB863_39
+{
+	r11 = r9 >> 2;
+	r12 = heap32[(r11+2)];
+_45: do {
+	if(r12 ==0) //_LBB863_41
+{
+	r11 = r9;
+}
+else{
+_47: while(true){
+	r11 = r12;
+	r12 = r11 >> 2;
+	r12 = heap32[(r12+2)];
+if(!(r12 !=0)) //_LBB863_42
+{
+break _45;
+}
+}
+}
+} while(0);
+	r13 = r11 >> 2;
+	r9 = heap32[(r13+3)];
+	if(r11 !=r4) //_LBB863_45
+{
+	r7 = r10 >> 2;
+	heap32[(r7+1)] = r11;
+	r7 = heap32[(r3+2)];
+	heap32[(r13+2)] = r7;
+	r7 = heap32[(r3+3)];
+	if(r7 !=r11) //_LBB863_47
+{
+	r12 = heap32[(r13+1)];
+	if(r9 !=0) //_LBB863_49
+{
+	r7 = r9 >> 2;
+	heap32[(r7+1)] = r12;
+	r7 = heap32[(r13+1)];
+}
+else{
+	r7 = r12;
+}
+	r7 = r7 >> 2;
+	heap32[(r7+2)] = r9;
+	r7 = heap32[(r3+3)];
+	heap32[(r13+3)] = r7;
+	r7 = heap32[(r3+3)];
+	r7 = r7 >> 2;
+	heap32[(r7+1)] = r11;
+}
+else{
+	r12 = r11;
+}
+	r7 = heap32[(r2+4)];
+	r7 = r7 >> 2;
+	r10 = heap32[(r7+1)];
+	if(r10 !=r4) //_LBB863_53
+{
+	r7 = heap32[(r3+1)];
+	r10 = r7 >> 2;
+	r10 = heap32[(r10+2)];
+	r10 = r10 != r4;
+	r10 = r10 & 1;
+	r10 = r10 << 2;
+	r7 = (r7 + r10)|0;
+	r7 = (r7 + 8)|0;
+	r10 = (r4 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r11;
+}
+else{
+	r10 = (r4 + 4)|0;
+	heap32[(r7+1)] = r11;
+}
+	r7 = r10 >> 2;
+	r7 = heap32[(r7)];
+	heap32[(r13+1)] = r7;
+	r7 = heap32[(r13)];
+	r11 = heap32[(r3)];
+	heap32[(r13)] = r11;
+	heap32[(r3)] = r7;
+__label__ = 66;
+}
+else{
+__label__ = 45;
+}
+}
+else{
+	r12 = heap32[(r3+1)];
+	r11 = r4;
+	r9 = r10;
+__label__ = 47;
+}
+}
+else{
+	r11 = r4;
+__label__ = 45;
+}
+if (__label__ == 45){
+	r12 = r11 >> 2;
+	r12 = heap32[(r12+1)];
+	if(r9 ==0) //_LBB863_57
+{
+	r9 = 0;
+__label__ = 48;
+}
+else{
+__label__ = 47;
+}
+}
+if (__label__ == 47){
+	r7 = r9 >> 2;
+	heap32[(r7+1)] = r12;
+	r7 = heap32[(r2+4)];
+__label__ = 48;
+}
+if (__label__ == 48){
+	r7 = r7 >> 2;
+	r10 = heap32[(r7+1)];
+	if(r10 !=r4) //_LBB863_61
+{
+	r7 = heap32[(r3+1)];
+	r10 = r7 >> 2;
+	r10 = heap32[(r10+2)];
+	r10 = r10 != r4;
+	r10 = r10 & 1;
+	r10 = r10 << 2;
+	r7 = (r7 + r10)|0;
+	r7 = (r7 + 8)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r9;
+}
+else{
+	heap32[(r7+1)] = r9;
+}
+	r7 = heap32[(r2+4)];
+	r7 = r7 >> 2;
+	r10 = heap32[(r7+2)];
+if(!(r10 !=r4)) //_LBB863_70
+{
+	r10 = heap32[(r3+3)];
+	if(r10 !=0) //_LBB863_65
+{
+	r10 = r9 >> 2;
+	r10 = heap32[(r10+2)];
+_80: do {
+	if(r10 ==0) //_LBB863_67
+{
+	r13 = r9;
+}
+else{
+_82: while(true){
+	r13 = r10;
+	r10 = r13 >> 2;
+	r10 = heap32[(r10+2)];
+if(!(r10 !=0)) //_LBB863_68
+{
+break _80;
+}
+}
+}
+} while(0);
+	heap32[(r7+2)] = r13;
+}
+else{
+	r10 = heap32[(r3+1)];
+	heap32[(r7+2)] = r10;
+}
+}
+	r7 = heap32[(r2+4)];
+	r7 = r7 >> 2;
+	r10 = heap32[(r7+3)];
+	if(r10 ==r4) //_LBB863_72
+{
+	r4 = heap32[(r3+2)];
+	if(r4 !=0) //_LBB863_74
+{
+	r4 = r9 >> 2;
+	r4 = heap32[(r4+3)];
+_91: do {
+	if(r4 ==0) //_LBB863_76
+{
+	r3 = r9;
+}
+else{
+_93: while(true){
+	r3 = r4;
+	r4 = r3 >> 2;
+	r4 = heap32[(r4+3)];
+if(!(r4 !=0)) //_LBB863_77
+{
+break _91;
+}
+}
+}
+} while(0);
+	heap32[(r7+3)] = r3;
+	r4 = r11;
+}
+else{
+	r4 = heap32[(r3+1)];
+	heap32[(r7+3)] = r4;
+	r4 = r11;
+}
+}
+else{
+	r4 = r11;
+}
+}
+	r3 = r4 >> 2;
+	r7 = heap32[(r3)];
+_99: do {
+if(!(r7 ==0)) //_LBB863_160
+{
+_100: while(true){
+	r7 = heap32[(r2+4)];
+	r7 = r7 >> 2;
+	r7 = heap32[(r7+1)];
+	if(r7 ==r9) //_LBB863_158
+{
+__label__ = 140;
+break _100;
+}
+else{
+if(!(r9 ==0)) //_LBB863_81
+{
+	r7 = r9 >> 2;
+	r7 = heap32[(r7)];
+if(!(r7 ==1)) //_LBB863_81
+{
+__label__ = 141;
+break _100;
+}
+}
+	r7 = r12 >> 2;
+	r10 = heap32[(r7+2)];
+	if(r10 !=r9) //_LBB863_119
+{
+	r11 = r10 >> 2;
+	r13 = heap32[(r11)];
+	if(r13 ==0) //_LBB863_121
+{
+	heap32[(r11)] = 1;
+	heap32[(r7)] = 0;
+	r10 = heap32[(r7+2)];
+	r11 = r10 >> 2;
+	r13 = heap32[(r11+3)];
+	heap32[(r7+2)] = r13;
+	r13 = heap32[(r11+3)];
+if(!(r13 ==0)) //_LBB863_123
+{
+	r13 = r13 >> 2;
+	heap32[(r13+1)] = r12;
+}
+	r13 = heap32[(r7+1)];
+	heap32[(r11+1)] = r13;
+	r13 = heap32[(r2+4)];
+	r13 = r13 >> 2;
+	r14 = heap32[(r13+1)];
+	if(r14 !=r12) //_LBB863_125
+{
+	r13 = heap32[(r7+1)];
+	r13 = r13 >> 2;
+	r14 = heap32[(r13+3)];
+	if(r14 !=r12) //_LBB863_127
+{
+	heap32[(r13+2)] = r10;
+}
+else{
+	heap32[(r13+3)] = r10;
+}
+}
+else{
+	heap32[(r13+1)] = r10;
+}
+	heap32[(r11+3)] = r12;
+	heap32[(r7+1)] = r10;
+	r10 = heap32[(r7+2)];
+}
+	r11 = r10 >> 2;
+	r13 = heap32[(r11+3)];
+if(!(r13 ==0)) //_LBB863_131
+{
+	r13 = r13 >> 2;
+	r14 = heap32[(r13)];
+	if(r14 !=1) //_LBB863_135
+{
+__label__ = 117;
+break _100;
+}
+}
+	r13 = heap32[(r11+2)];
+if(!(r13 ==0)) //_LBB863_134
+{
+	r13 = r13 >> 2;
+	r13 = heap32[(r13)];
+if(!(r13 ==1)) //_LBB863_134
+{
+__label__ = 127;
+break _100;
+}
+}
+	heap32[(r11)] = 0;
+}
+else{
+	r10 = heap32[(r7+3)];
+	r11 = r10 >> 2;
+	r13 = heap32[(r11)];
+	if(r13 ==0) //_LBB863_84
+{
+	heap32[(r11)] = 1;
+	heap32[(r7)] = 0;
+	r10 = heap32[(r7+3)];
+	r11 = r10 >> 2;
+	r13 = heap32[(r11+2)];
+	heap32[(r7+3)] = r13;
+	r13 = heap32[(r11+2)];
+if(!(r13 ==0)) //_LBB863_86
+{
+	r13 = r13 >> 2;
+	heap32[(r13+1)] = r12;
+}
+	r13 = heap32[(r7+1)];
+	heap32[(r11+1)] = r13;
+	r13 = heap32[(r2+4)];
+	r13 = r13 >> 2;
+	r14 = heap32[(r13+1)];
+	if(r14 !=r12) //_LBB863_88
+{
+	r13 = heap32[(r7+1)];
+	r13 = r13 >> 2;
+	r14 = heap32[(r13+2)];
+	if(r14 !=r12) //_LBB863_90
+{
+	heap32[(r13+3)] = r10;
+}
+else{
+	heap32[(r13+2)] = r10;
+}
+}
+else{
+	heap32[(r13+1)] = r10;
+}
+	heap32[(r11+2)] = r12;
+	heap32[(r7+1)] = r10;
+	r10 = heap32[(r7+3)];
+}
+	r11 = r10 >> 2;
+	r13 = heap32[(r11+2)];
+if(!(r13 ==0)) //_LBB863_94
+{
+	r13 = r13 >> 2;
+	r14 = heap32[(r13)];
+	if(r14 !=1) //_LBB863_99
+{
+__label__ = 83;
+break _100;
+}
+}
+	r13 = heap32[(r11+3)];
+if(!(r13 ==0)) //_LBB863_97
+{
+	r13 = r13 >> 2;
+	r13 = heap32[(r13)];
+if(!(r13 ==1)) //_LBB863_97
+{
+__label__ = 93;
+break _100;
+}
+}
+	heap32[(r11)] = 0;
+}
+	r10 = heap32[(r7+1)];
+	r9 = r12;
+	r12 = r10;
+}
+}
+_148: do {
+switch(__label__ ){//multiple entries
+case 117:
+	r14 = heap32[(r11+2)];
+if(!(r14 ==0)) //_LBB863_137
+{
+	r14 = r14 >> 2;
+	r14 = heap32[(r14)];
+	if(r14 !=1) //_LBB863_133
+{
+__label__ = 127;
+break _148;
+}
+}
+	heap32[(r13)] = 1;
+	r13 = heap32[(r11+3)];
+	r14 = r13 >> 2;
+	heap32[(r11)] = 0;
+	r15 = heap32[(r14+2)];
+	heap32[(r11+3)] = r15;
+	r15 = heap32[(r14+2)];
+if(!(r15 ==0)) //_LBB863_139
+{
+	r15 = r15 >> 2;
+	heap32[(r15+1)] = r10;
+}
+	r15 = heap32[(r11+1)];
+	heap32[(r14+1)] = r15;
+	r15 = heap32[(r2+4)];
+	r15 = r15 >> 2;
+	r16 = heap32[(r15+1)];
+	if(r16 !=r10) //_LBB863_141
+{
+	r15 = heap32[(r11+1)];
+	r15 = r15 >> 2;
+	r16 = heap32[(r15+2)];
+	if(r16 !=r10) //_LBB863_143
+{
+	heap32[(r15+3)] = r13;
+}
+else{
+	heap32[(r15+2)] = r13;
+}
+}
+else{
+	heap32[(r15+1)] = r13;
+}
+	heap32[(r14+2)] = r10;
+	heap32[(r11+1)] = r13;
+	r10 = heap32[(r7+2)];
+__label__ = 127;
+break _148;
+break;
+case 83:
+	r14 = heap32[(r11+3)];
+if(!(r14 ==0)) //_LBB863_101
+{
+	r14 = r14 >> 2;
+	r14 = heap32[(r14)];
+	if(r14 !=1) //_LBB863_96
+{
+__label__ = 93;
+break _148;
+}
+}
+	heap32[(r13)] = 1;
+	r13 = heap32[(r11+2)];
+	r14 = r13 >> 2;
+	heap32[(r11)] = 0;
+	r15 = heap32[(r14+3)];
+	heap32[(r11+2)] = r15;
+	r15 = heap32[(r14+3)];
+if(!(r15 ==0)) //_LBB863_103
+{
+	r15 = r15 >> 2;
+	heap32[(r15+1)] = r10;
+}
+	r15 = heap32[(r11+1)];
+	heap32[(r14+1)] = r15;
+	r15 = heap32[(r2+4)];
+	r15 = r15 >> 2;
+	r16 = heap32[(r15+1)];
+	if(r16 !=r10) //_LBB863_105
+{
+	r15 = heap32[(r11+1)];
+	r15 = r15 >> 2;
+	r16 = heap32[(r15+3)];
+	if(r16 !=r10) //_LBB863_107
+{
+	heap32[(r15+2)] = r13;
+}
+else{
+	heap32[(r15+3)] = r13;
+}
+}
+else{
+	heap32[(r15+1)] = r13;
+}
+	heap32[(r14+3)] = r10;
+	heap32[(r11+1)] = r13;
+	r10 = heap32[(r7+3)];
+__label__ = 93;
+break;
+}
+} while(0);
+_177: do {
+switch(__label__ ){//multiple entries
+case 127:
+	r10 = r10 >> 2;
+	r11 = heap32[(r7)];
+	heap32[(r10)] = r11;
+	heap32[(r7)] = 1;
+	r10 = heap32[(r10+2)];
+if(!(r10 ==0)) //_LBB863_147
+{
+	r10 = r10 >> 2;
+	heap32[(r10)] = 1;
+}
+	r10 = heap32[(r7+2)];
+	r11 = r10 >> 2;
+	r13 = heap32[(r11+3)];
+	heap32[(r7+2)] = r13;
+	r13 = heap32[(r11+3)];
+if(!(r13 ==0)) //_LBB863_149
+{
+	r13 = r13 >> 2;
+	heap32[(r13+1)] = r12;
+}
+	r13 = heap32[(r7+1)];
+	heap32[(r11+1)] = r13;
+	r13 = heap32[(r2+4)];
+	r13 = r13 >> 2;
+	r14 = heap32[(r13+1)];
+	if(r14 !=r12) //_LBB863_151
+{
+	r13 = heap32[(r7+1)];
+	r13 = r13 >> 2;
+	r14 = heap32[(r13+3)];
+	if(r14 !=r12) //_LBB863_153
+{
+	heap32[(r13+2)] = r10;
+}
+else{
+	heap32[(r13+3)] = r10;
+}
+}
+else{
+	heap32[(r13+1)] = r10;
+}
+	heap32[(r11+3)] = r12;
+	heap32[(r7+1)] = r10;
+__label__ = 140;
+break _177;
+break;
+case 93:
+	r10 = r10 >> 2;
+	r11 = heap32[(r7)];
+	heap32[(r10)] = r11;
+	heap32[(r7)] = 1;
+	r10 = heap32[(r10+3)];
+if(!(r10 ==0)) //_LBB863_111
+{
+	r10 = r10 >> 2;
+	heap32[(r10)] = 1;
+}
+	r10 = heap32[(r7+3)];
+	r11 = r10 >> 2;
+	r13 = heap32[(r11+2)];
+	heap32[(r7+3)] = r13;
+	r13 = heap32[(r11+2)];
+if(!(r13 ==0)) //_LBB863_113
+{
+	r13 = r13 >> 2;
+	heap32[(r13+1)] = r12;
+}
+	r13 = heap32[(r7+1)];
+	heap32[(r11+1)] = r13;
+	r13 = heap32[(r2+4)];
+	r13 = r13 >> 2;
+	r14 = heap32[(r13+1)];
+	if(r14 !=r12) //_LBB863_115
+{
+	r13 = heap32[(r7+1)];
+	r13 = r13 >> 2;
+	r14 = heap32[(r13+2)];
+	if(r14 !=r12) //_LBB863_117
+{
+	heap32[(r13+3)] = r10;
+}
+else{
+	heap32[(r13+2)] = r10;
+}
+}
+else{
+	heap32[(r13+1)] = r10;
+}
+	heap32[(r11+2)] = r12;
+	heap32[(r7+1)] = r10;
+__label__ = 140;
+break;
+}
+} while(0);
+if (__label__ == 140){
+	if(r9 ==0) //_LBB863_160
+{
+break _99;
+}
+}
+	r7 = r9 >> 2;
+	heap32[(r7)] = 1;
+}
+} while(0);
+	r7 = heap32[(r2+1)];
+	heap32[(r3+3)] = r7;
+	r7 = heap32[(r3+4)];
+	r7 = (r7 + -12)|0;
+	r9 = _ZNSs11_C_null_refE;
+if(!(r7 ==r9)) //_LBB863_163
+{
+	r7 = r7 >> 2;
+	r9 = heap32[(r7)];
+	r10 = (r9 + -1)|0;
+	heap32[(r7)] = r10;
+if(!(r9 >0)) //_LBB863_163
+{
+	r7 = heap32[(r3+4)];
+	r7 = (r7 + -12)|0;
+	heap32[(g0)] = r7;
+	_ZdlPv(i7);
+}
+}
+	heap32[(r3+4)] = 0;
+	heap32[(r2+1)] = r4;
+	r4 = heap32[(r2+5)];
+	r4 = (r4 + -1)|0;
+	heap32[(r2+5)] = r4;
+}
+else{
+	r8 = r7;
+}
+	heap32[(r1)] = r8;
+	r4 = r5;
+	if(r5 !=r6) //_LBB863_5
+{
+continue _7;
+}
+else{
+break _7;
+}
+}
+}
+	return;
+}
+
+function _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE5eraseENS_14__rw_tree_iterIS6_iPS6_RS6_NS_17__rw_rb_tree_nodeISB_S6_jS8_EEEE(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+	var r7;
+	var r8;
+	var r9;
+	var r10;
+	var r11;
+	var r12;
+	var r13;
+	var r14;
+var __label__ = 0;
+	i7 = sp + 0;var g0 = i7>>2; // save stack
+	r0 = _ZN5my_glL9m_contextE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+78)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp)];
+	if(r1 !=r2) //_LBB864_2
+{
+	r4 = r2 >> 2;
+	r5 = heap32[(r4+3)];
+_3: do {
+	if(r5 !=0) //_LBB864_6
+{
+	r6 = r5 >> 2;
+	r7 = heap32[(r6+2)];
+	if(r7 ==0) //_LBB864_8
+{
+	r6 = r5;
+}
+else{
+_7: while(true){
+	r6 = r7;
+	r7 = r6 >> 2;
+	r7 = heap32[(r7+2)];
+	if(r7 !=0) //_LBB864_9
+{
+continue _7;
+}
+else{
+break _3;
+}
+}
+}
+}
+else{
+	r6 = heap32[(r4+1)];
+	r7 = r6 >> 2;
+	r7 = heap32[(r7+3)];
+	if(r7 ==r2) //_LBB864_5
+{
+_11: while(true){
+	r8 = r6;
+	r7 = r8 >> 2;
+	r6 = heap32[(r7+1)];
+	r9 = r6 >> 2;
+	r9 = heap32[(r9+3)];
+if(!(r8 ==r9)) //_LBB864_11
+{
+break _11;
+}
+}
+	r7 = heap32[(r7+3)];
+}
+else{
+	r7 = 0;
+	r8 = r2;
+}
+	if(r7 ==r6) //_LBB864_15
+{
+	r6 = r8;
+}
+}
+} while(0);
+	r7 = heap32[(r4+2)];
+	if(r7 !=0) //_LBB864_18
+{
+	if(r5 !=0) //_LBB864_20
+{
+	r8 = r5 >> 2;
+	r9 = heap32[(r8+2)];
+_22: do {
+	if(r9 ==0) //_LBB864_22
+{
+	r8 = r5;
+}
+else{
+_24: while(true){
+	r8 = r9;
+	r9 = r8 >> 2;
+	r9 = heap32[(r9+2)];
+if(!(r9 !=0)) //_LBB864_23
+{
+break _22;
+}
+}
+}
+} while(0);
+	r10 = r8 >> 2;
+	r5 = heap32[(r10+3)];
+	if(r8 !=r2) //_LBB864_26
+{
+	r9 = r7 >> 2;
+	heap32[(r9+1)] = r8;
+	r9 = heap32[(r4+2)];
+	heap32[(r10+2)] = r9;
+	r9 = heap32[(r4+3)];
+	if(r9 !=r8) //_LBB864_28
+{
+	r9 = heap32[(r10+1)];
+	if(r5 !=0) //_LBB864_30
+{
+	r7 = r5 >> 2;
+	heap32[(r7+1)] = r9;
+	r7 = heap32[(r10+1)];
+}
+else{
+	r7 = r9;
+}
+	r7 = r7 >> 2;
+	heap32[(r7+2)] = r5;
+	r7 = heap32[(r4+3)];
+	heap32[(r10+3)] = r7;
+	r7 = heap32[(r4+3)];
+	r7 = r7 >> 2;
+	heap32[(r7+1)] = r8;
+}
+else{
+	r9 = r8;
+}
+	r7 = r1 >> 2;
+	r11 = heap32[(r7+1)];
+	if(r11 !=r2) //_LBB864_34
+{
+	r11 = heap32[(r4+1)];
+	r7 = r11 >> 2;
+	r7 = heap32[(r7+2)];
+	r7 = r7 != r2;
+	r7 = r7 & 1;
+	r7 = r7 << 2;
+	r11 = (r11 + r7)|0;
+	r7 = (r11 + 8)|0;
+	r11 = (r2 + 4)|0;
+	r7 = r7 >> 2;
+	heap32[(r7)] = r8;
+}
+else{
+	r11 = (r2 + 4)|0;
+	heap32[(r7+1)] = r8;
+}
+	r8 = r11 >> 2;
+	r8 = heap32[(r8)];
+	heap32[(r10+1)] = r8;
+	r8 = heap32[(r10)];
+	r7 = heap32[(r4)];
+	heap32[(r10)] = r7;
+	heap32[(r4)] = r8;
+__label__ = 51;
+}
+else{
+__label__ = 30;
+}
+}
+else{
+	r9 = heap32[(r4+1)];
+	r8 = r2;
+	r5 = r7;
+__label__ = 32;
+}
+}
+else{
+	r8 = r2;
+__label__ = 30;
+}
+if (__label__ == 30){
+	r9 = r8 >> 2;
+	r9 = heap32[(r9+1)];
+	if(r5 ==0) //_LBB864_38
+{
+	r5 = 0;
+__label__ = 33;
+}
+else{
+__label__ = 32;
+}
+}
+if (__label__ == 32){
+	r7 = r5 >> 2;
+	heap32[(r7+1)] = r9;
+__label__ = 33;
+}
+if (__label__ == 33){
+	r7 = r1 >> 2;
+	r10 = heap32[(r7+1)];
+	if(r10 !=r2) //_LBB864_42
+{
+	r10 = heap32[(r4+1)];
+	r11 = r10 >> 2;
+	r11 = heap32[(r11+2)];
+	r11 = r11 != r2;
+	r11 = r11 & 1;
+	r11 = r11 << 2;
+	r10 = (r10 + r11)|0;
+	r10 = (r10 + 8)|0;
+	r10 = r10 >> 2;
+	heap32[(r10)] = r5;
+}
+else{
+	heap32[(r7+1)] = r5;
+}
+	r10 = heap32[(r7+2)];
+if(!(r10 !=r2)) //_LBB864_51
+{
+	r10 = heap32[(r4+3)];
+	if(r10 !=0) //_LBB864_46
+{
+	r10 = r5 >> 2;
+	r10 = heap32[(r10+2)];
+_57: do {
+	if(r10 ==0) //_LBB864_48
+{
+	r11 = r5;
+}
+else{
+_59: while(true){
+	r11 = r10;
+	r10 = r11 >> 2;
+	r10 = heap32[(r10+2)];
+if(!(r10 !=0)) //_LBB864_49
+{
+break _57;
+}
+}
+}
+} while(0);
+	heap32[(r7+2)] = r11;
+}
+else{
+	r10 = heap32[(r4+1)];
+	heap32[(r7+2)] = r10;
+}
+}
+	r10 = heap32[(r7+3)];
+	if(r10 ==r2) //_LBB864_53
+{
+	r2 = heap32[(r4+2)];
+	if(r2 !=0) //_LBB864_55
+{
+	r2 = r5 >> 2;
+	r2 = heap32[(r2+3)];
+_68: do {
+	if(r2 ==0) //_LBB864_57
+{
+	r4 = r5;
+}
+else{
+_70: while(true){
+	r4 = r2;
+	r2 = r4 >> 2;
+	r2 = heap32[(r2+3)];
+if(!(r2 !=0)) //_LBB864_58
+{
+break _68;
+}
+}
+}
+} while(0);
+	heap32[(r7+3)] = r4;
+	r2 = r8;
+}
+else{
+	r2 = heap32[(r4+1)];
+	heap32[(r7+3)] = r2;
+	r2 = r8;
+}
+}
+else{
+	r2 = r8;
+}
+}
+	r4 = r2 >> 2;
+	r7 = heap32[(r4)];
+_76: do {
+if(!(r7 ==0)) //_LBB864_141
+{
+_77: while(true){
+	r7 = r1 >> 2;
+	r8 = heap32[(r7+1)];
+	if(r8 ==r5) //_LBB864_139
+{
+__label__ = 125;
+break _77;
+}
+else{
+if(!(r5 ==0)) //_LBB864_62
+{
+	r8 = r5 >> 2;
+	r8 = heap32[(r8)];
+if(!(r8 ==1)) //_LBB864_62
+{
+__label__ = 126;
+break _77;
+}
+}
+	r8 = r9 >> 2;
+	r10 = heap32[(r8+2)];
+	if(r10 !=r5) //_LBB864_100
+{
+	r11 = r10 >> 2;
+	r12 = heap32[(r11)];
+	if(r12 ==0) //_LBB864_102
+{
+	heap32[(r11)] = 1;
+	heap32[(r8)] = 0;
+	r10 = heap32[(r8+2)];
+	r11 = r10 >> 2;
+	r12 = heap32[(r11+3)];
+	heap32[(r8+2)] = r12;
+	r12 = heap32[(r11+3)];
+if(!(r12 ==0)) //_LBB864_104
+{
+	r12 = r12 >> 2;
+	heap32[(r12+1)] = r9;
+}
+	r12 = heap32[(r8+1)];
+	heap32[(r11+1)] = r12;
+	r12 = heap32[(r7+1)];
+	if(r12 !=r9) //_LBB864_106
+{
+	r12 = heap32[(r8+1)];
+	r12 = r12 >> 2;
+	r13 = heap32[(r12+3)];
+	if(r13 !=r9) //_LBB864_108
+{
+	heap32[(r12+2)] = r10;
+}
+else{
+	heap32[(r12+3)] = r10;
+}
+}
+else{
+	heap32[(r7+1)] = r10;
+}
+	heap32[(r11+3)] = r9;
+	heap32[(r8+1)] = r10;
+	r10 = heap32[(r8+2)];
+}
+	r11 = r10 >> 2;
+	r12 = heap32[(r11+3)];
+if(!(r12 ==0)) //_LBB864_112
+{
+	r12 = r12 >> 2;
+	r13 = heap32[(r12)];
+	if(r13 !=1) //_LBB864_116
+{
+__label__ = 102;
+break _77;
+}
+}
+	r12 = heap32[(r11+2)];
+if(!(r12 ==0)) //_LBB864_115
+{
+	r12 = r12 >> 2;
+	r12 = heap32[(r12)];
+if(!(r12 ==1)) //_LBB864_115
+{
+__label__ = 112;
+break _77;
+}
+}
+	heap32[(r11)] = 0;
+}
+else{
+	r10 = heap32[(r8+3)];
+	r11 = r10 >> 2;
+	r12 = heap32[(r11)];
+	if(r12 ==0) //_LBB864_65
+{
+	heap32[(r11)] = 1;
+	heap32[(r8)] = 0;
+	r10 = heap32[(r8+3)];
+	r11 = r10 >> 2;
+	r12 = heap32[(r11+2)];
+	heap32[(r8+3)] = r12;
+	r12 = heap32[(r11+2)];
+if(!(r12 ==0)) //_LBB864_67
+{
+	r12 = r12 >> 2;
+	heap32[(r12+1)] = r9;
+}
+	r12 = heap32[(r8+1)];
+	heap32[(r11+1)] = r12;
+	r12 = heap32[(r7+1)];
+	if(r12 !=r9) //_LBB864_69
+{
+	r12 = heap32[(r8+1)];
+	r12 = r12 >> 2;
+	r13 = heap32[(r12+2)];
+	if(r13 !=r9) //_LBB864_71
+{
+	heap32[(r12+3)] = r10;
+}
+else{
+	heap32[(r12+2)] = r10;
+}
+}
+else{
+	heap32[(r7+1)] = r10;
+}
+	heap32[(r11+2)] = r9;
+	heap32[(r8+1)] = r10;
+	r10 = heap32[(r8+3)];
+}
+	r11 = r10 >> 2;
+	r12 = heap32[(r11+2)];
+if(!(r12 ==0)) //_LBB864_75
+{
+	r12 = r12 >> 2;
+	r13 = heap32[(r12)];
+	if(r13 !=1) //_LBB864_80
+{
+__label__ = 68;
+break _77;
+}
+}
+	r12 = heap32[(r11+3)];
+if(!(r12 ==0)) //_LBB864_78
+{
+	r12 = r12 >> 2;
+	r12 = heap32[(r12)];
+if(!(r12 ==1)) //_LBB864_78
+{
+__label__ = 78;
+break _77;
+}
+}
+	heap32[(r11)] = 0;
+}
+	r10 = heap32[(r8+1)];
+	r5 = r9;
+	r9 = r10;
+}
+}
+_125: do {
+switch(__label__ ){//multiple entries
+case 102:
+	r1 = heap32[(r11+2)];
+if(!(r1 ==0)) //_LBB864_118
+{
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	if(r1 !=1) //_LBB864_114
+{
+__label__ = 112;
+break _125;
+}
+}
+	heap32[(r12)] = 1;
+	r1 = heap32[(r11+3)];
+	r12 = r1 >> 2;
+	heap32[(r11)] = 0;
+	r13 = heap32[(r12+2)];
+	heap32[(r11+3)] = r13;
+	r13 = heap32[(r12+2)];
+if(!(r13 ==0)) //_LBB864_120
+{
+	r13 = r13 >> 2;
+	heap32[(r13+1)] = r10;
+}
+	r13 = heap32[(r11+1)];
+	heap32[(r12+1)] = r13;
+	r13 = heap32[(r7+1)];
+	if(r13 !=r10) //_LBB864_122
+{
+	r13 = heap32[(r11+1)];
+	r13 = r13 >> 2;
+	r14 = heap32[(r13+2)];
+	if(r14 !=r10) //_LBB864_124
+{
+	heap32[(r13+3)] = r1;
+}
+else{
+	heap32[(r13+2)] = r1;
+}
+}
+else{
+	heap32[(r7+1)] = r1;
+}
+	heap32[(r12+2)] = r10;
+	heap32[(r11+1)] = r1;
+	r10 = heap32[(r8+2)];
+__label__ = 112;
+break _125;
+break;
+case 68:
+	r1 = heap32[(r11+3)];
+if(!(r1 ==0)) //_LBB864_82
+{
+	r1 = r1 >> 2;
+	r1 = heap32[(r1)];
+	if(r1 !=1) //_LBB864_77
+{
+__label__ = 78;
+break _125;
+}
+}
+	heap32[(r12)] = 1;
+	r1 = heap32[(r11+2)];
+	r12 = r1 >> 2;
+	heap32[(r11)] = 0;
+	r13 = heap32[(r12+3)];
+	heap32[(r11+2)] = r13;
+	r13 = heap32[(r12+3)];
+if(!(r13 ==0)) //_LBB864_84
+{
+	r13 = r13 >> 2;
+	heap32[(r13+1)] = r10;
+}
+	r13 = heap32[(r11+1)];
+	heap32[(r12+1)] = r13;
+	r13 = heap32[(r7+1)];
+	if(r13 !=r10) //_LBB864_86
+{
+	r13 = heap32[(r11+1)];
+	r13 = r13 >> 2;
+	r14 = heap32[(r13+3)];
+	if(r14 !=r10) //_LBB864_88
+{
+	heap32[(r13+2)] = r1;
+}
+else{
+	heap32[(r13+3)] = r1;
+}
+}
+else{
+	heap32[(r7+1)] = r1;
+}
+	heap32[(r12+3)] = r10;
+	heap32[(r11+1)] = r1;
+	r10 = heap32[(r8+3)];
+__label__ = 78;
+break;
+}
+} while(0);
+_154: do {
+switch(__label__ ){//multiple entries
+case 112:
+	r1 = r10 >> 2;
+	r10 = heap32[(r8)];
+	heap32[(r1)] = r10;
+	heap32[(r8)] = 1;
+	r1 = heap32[(r1+2)];
+if(!(r1 ==0)) //_LBB864_128
+{
+	r1 = r1 >> 2;
+	heap32[(r1)] = 1;
+}
+	r1 = heap32[(r8+2)];
+	r10 = r1 >> 2;
+	r11 = heap32[(r10+3)];
+	heap32[(r8+2)] = r11;
+	r11 = heap32[(r10+3)];
+if(!(r11 ==0)) //_LBB864_130
+{
+	r11 = r11 >> 2;
+	heap32[(r11+1)] = r9;
+}
+	r11 = heap32[(r8+1)];
+	heap32[(r10+1)] = r11;
+	r11 = heap32[(r7+1)];
+	if(r11 !=r9) //_LBB864_132
+{
+	r7 = heap32[(r8+1)];
+	r7 = r7 >> 2;
+	r11 = heap32[(r7+3)];
+	if(r11 !=r9) //_LBB864_134
+{
+	heap32[(r7+2)] = r1;
+}
+else{
+	heap32[(r7+3)] = r1;
+}
+}
+else{
+	heap32[(r7+1)] = r1;
+}
+	heap32[(r10+3)] = r9;
+	heap32[(r8+1)] = r1;
+__label__ = 125;
+break _154;
+break;
+case 78:
+	r1 = r10 >> 2;
+	r10 = heap32[(r8)];
+	heap32[(r1)] = r10;
+	heap32[(r8)] = 1;
+	r1 = heap32[(r1+3)];
+if(!(r1 ==0)) //_LBB864_92
+{
+	r1 = r1 >> 2;
+	heap32[(r1)] = 1;
+}
+	r1 = heap32[(r8+3)];
+	r10 = r1 >> 2;
+	r11 = heap32[(r10+2)];
+	heap32[(r8+3)] = r11;
+	r11 = heap32[(r10+2)];
+if(!(r11 ==0)) //_LBB864_94
+{
+	r11 = r11 >> 2;
+	heap32[(r11+1)] = r9;
+}
+	r11 = heap32[(r8+1)];
+	heap32[(r10+1)] = r11;
+	r11 = heap32[(r7+1)];
+	if(r11 !=r9) //_LBB864_96
+{
+	r7 = heap32[(r8+1)];
+	r7 = r7 >> 2;
+	r11 = heap32[(r7+2)];
+	if(r11 !=r9) //_LBB864_98
+{
+	heap32[(r7+3)] = r1;
+}
+else{
+	heap32[(r7+2)] = r1;
+}
+}
+else{
+	heap32[(r7+1)] = r1;
+}
+	heap32[(r10+2)] = r9;
+	heap32[(r8+1)] = r1;
+__label__ = 125;
+break;
+}
+} while(0);
+if (__label__ == 125){
+	if(r5 ==0) //_LBB864_141
+{
+break _76;
+}
+}
+	r1 = r5 >> 2;
+	heap32[(r1)] = 1;
+}
+} while(0);
+	r1 = heap32[(r0+75)];
+	heap32[(r4+3)] = r1;
+	heap32[(r0+75)] = r2;
+	r1 = heap32[(r0+79)];
+	r1 = (r1 + -1)|0;
+	r2 = r3 >> 2;
+	heap32[(r0+79)] = r1;
+	heap32[(r2)] = r6;
+	return;
+}
+else{
+	r0 = r3 >> 2;
+	heap32[(r0)] = r1;
+	return;
+}
+}
+
+function _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE11_C_get_linkEv(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+	var r5;
+	var r6;
+var __label__ = 0;
+	i7 = sp + -8;var g0 = i7>>2; // save stack
+	r0 = _ZN5my_glL9m_contextE;
+	r0 = r0 >> 2;
+	r1 = heap32[(r0+75)];
+	if(r1 ==0) //_LBB865_2
+{
+	r1 = heap32[(r0+76)];
+	r2 = heap32[(r0+77)];
+	if(r1 !=r2) //_LBB865_11
+{
+	r2 = (r1 + 24)|0;
+	heap32[(r0+76)] = r2;
+}
+else{
+	r1 = heap32[(r0+74)];
+	if(r1 !=0) //_LBB865_5
+{
+	r1 = r1 >> 2;
+	r1 = heap32[(r1+1)];
+}
+else{
+	r1 = 0;
+}
+	heap32[(g0)] = 12;
+	_Znwj(i7);
+	r2 = r_g0;
+if(!(r2 !=0)) //_LBB865_8
+{
+	heap32[(g0)] = 3;
+	_ZN4__rw10__rw_throwEiz(i7);
+}
+	r3 = r1 & 1023;
+	r3 = (r3 * 1656)|0;
+	r4 = r1 >>> 10;
+	r3 = r3 >>> 10;
+	r4 = (r4 * 1656)|0;
+	r5 = (r1 + 32)|0;
+	r3 = (r3 + r4)|0;
+	r3 = uint(r5) > uint(r3) ? r5 : r3;
+	r4 = (r1 + 1)|0;
+	r3 = uint(r3) > uint(r1) ? r3 : r4;
+	r4 = (r3 * 24)|0;
+	heap32[(g0)] = r4;
+	_Znwj(i7);
+	r1 = r_g0;
+if(!(r1 !=0)) //_LBB865_10
+{
+	heap32[(g0)] = 3;
+	_ZN4__rw10__rw_throwEiz(i7);
+}
+	r5 = r2 >> 2;
+	heap32[(r5+2)] = r1;
+	r6 = heap32[(r0+74)];
+	heap32[(r5)] = r6;
+	heap32[(r5+1)] = r3;
+	r3 = (r1 + r4)|0;
+	heap32[(r0+74)] = r2;
+	r2 = (r1 + 24)|0;
+	heap32[(r0+77)] = r3;
+	heap32[(r0+76)] = r2;
+}
+}
+else{
+	r2 = r1 >> 2;
+	r2 = heap32[(r2+3)];
+	heap32[(r0+75)] = r2;
+}
+	r0 = r1 >> 2;
+	heap32[(r0+1)] = 0;
+	heap32[(r0+2)] = 0;
+	heap32[(r0+3)] = 0;
+	heap32[(r0)] = 0;
+	r_g0 = r1;
+	return;
+}
+
+function _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EED2Ev(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+	var r4;
+var __label__ = 0;
+	i7 = sp + -32;var g0 = i7>>2; // save stack
+	r0 = heap32[(fp)];
+	r1 = r0 >> 2;
+	r2 = heap32[(r1+4)];
+if(!(r2 ==0)) //_LBB866_3
+{
+	r3 = r2 >> 2;
+	r3 = heap32[(r3+2)];
+	heap32[(fp+-2)] = r3;
+	r3 = sp + -16;
+	r4 = sp + -8;
+	heap32[(g0)] = r3;
+	heap32[(g0+1)] = r0;
+	heap32[(g0+2)] = r4;
+	heap32[(g0+3)] = r2;
+	_ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE5eraseENS_14__rw_tree_iterIS3_iPS3_RS3_NS_17__rw_rb_tree_nodeIS8_S3_SsS5_EEEESF_(i7);
+	r0 = heap32[(r1+4)];
+	r2 = heap32[(r1+1)];
+	r3 = r0 >> 2;
+	heap32[(r3+3)] = r2;
+	heap32[(r1+1)] = r0;
+	r0 = heap32[(r1)];
+if(!(r0 ==0)) //_LBB866_3
+{
+__label__ = 2; //SET chanka
+_3: while(true){
+	r2 = r0 >> 2;
+	r3 = heap32[(r2)];
+	heap32[(r1)] = r3;
+	r2 = heap32[(r2+2)];
+	heap32[(g0)] = r2;
+	_ZdlPv(i7);
+	heap32[(g0)] = r0;
+	_ZdlPv(i7);
+	r0 = heap32[(r1)];
+	if(r0 !=0) //_LBB866_2
+{
+continue _3;
+}
+else{
+break _3;
+}
+}
+}
+}
+	return;
+}
+
+function Mandreel_TextureAsync_Loaded(sp)
+{
+	var i7;
+	var fp = sp>>2;
+	var r0;
+	var r1;
+	var r2;
+	var r3;
+var __label__ = 0;
+	i7 = sp + -40;var g0 = i7>>2; // save stack
+	r0 = 5;
+	r0 = heap32[(r0)];
+	r1 = heap32[(fp)];
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = 3553;
+	heap32[(g0+2)] = r1;
+	r2 = 100;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	r0 = heap32[(r2)];
+	r2 = heap32[(fp+1)];
+	r3 = heap32[(fp+2)];
+	heap32[(g0)] = 0;
+	heap32[(g0+1)] = 3553;
+	heap32[(g0+2)] = 0;
+	heap32[(g0+3)] = 6408;
+	heap32[(g0+4)] = r2;
+	heap32[(g0+5)] = r3;
+	heap32[(g0+6)] = 0;
+	heap32[(g0+7)] = 6408;
+	heap32[(g0+8)] = 5121;
+	heap32[(g0+9)] = 0;
+	__FUNCTION_TABLE__[(r0)>>2](i7);
+	heap32[(g0)] = r1;
+	Mandreel_TextureAsync_SetData(i7);
+	return;
+}
+
+var _ZGVZN11btMatrix3x311getIdentityEvE14identityMatrix = Malloc(8);
+var _ZGVZN11btTransform11getIdentityEvE17identityTransform = Malloc(8);
+var Landscape02Vtx = Malloc(23760);
+var _ZTIN16btCollisionWorld17RayResultCallbackE = Malloc(8);
+var _ZTSN16btCollisionWorld17RayResultCallbackE = Malloc(40);
+var _ZTVN16btCollisionWorld24ClosestRayResultCallbackE = Malloc(24);
+var _ZTIN16btCollisionWorld24ClosestRayResultCallbackE = Malloc(12);
+var _ZTSN16btCollisionWorld24ClosestRayResultCallbackE = Malloc(47);
+var _ZTI13btMotionState = Malloc(8);
+var _ZTS13btMotionState = Malloc(16);
+var _ZTV20btDefaultMotionState = Malloc(24);
+var _ZTI20btDefaultMotionState = Malloc(12);
+var _ZTS20btDefaultMotionState = Malloc(23);
+var _ZTI17btTypedConstraint = Malloc(24);
+var _ZTS17btTypedConstraint = Malloc(20);
+var _ZTI13btTypedObject = Malloc(8);
+var _ZTS13btTypedObject = Malloc(16);
+var _ZTV7RagDoll = Malloc(16);
+var _ZTI7RagDoll = Malloc(8);
+var _ZTS7RagDoll = Malloc(9);
+var _ZTV13BenchmarkDemo = Malloc(36);
+var _ZTI13BenchmarkDemo = Malloc(12);
+var _ZTS13BenchmarkDemo = Malloc(16);
+var _ZTI15DemoApplication = Malloc(8);
+var _ZTS15DemoApplication = Malloc(18);
+var _ZL10raycastBar = Malloc(40048);
+var _2E_str3 = Malloc(48);
+var _2E_str4 = Malloc(69);
+var _2E_str5 = Malloc(61);
+var _2E_str6 = Malloc(50);
+var _2E_str7 = Malloc(27);
+var _ZL7TaruVtx = Malloc(516);
+var LandscapeVtx = Malloc(32);
+var Landscape01Vtx = Malloc(24576);
+var Landscape03Vtx = Malloc(24576);
+var Landscape04Vtx = Malloc(25344);
+var Landscape05Vtx = Malloc(26928);
+var Landscape06Vtx = Malloc(27720);
+var Landscape07Vtx = Malloc(26880);
+var Landscape08Vtx = Malloc(26136);
+var LandscapeVtxCount = Malloc(32);
+var LandscapeIdx = Malloc(32);
+var Landscape01Idx = Malloc(23436);
+var Landscape02Idx = Malloc(22620);
+var Landscape03Idx = Malloc(23436);
+var Landscape04Idx = Malloc(24192);
+var Landscape05Idx = Malloc(25740);
+var Landscape06Idx = Malloc(26520);
+var Landscape07Idx = Malloc(25704);
+var Landscape08Idx = Malloc(24960);
+var LandscapeIdxCount = Malloc(32);
+var _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0 = Malloc(4);
+var _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1 = Malloc(4);
+var _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2 = Malloc(4);
+var _ZZN11btTransform11getIdentityEvE17identityTransform = Malloc(64);
+var _ZTV14BenchmarkDemo4 = Malloc(36);
+var _ZTI14BenchmarkDemo4 = Malloc(12);
+var _ZTS14BenchmarkDemo4 = Malloc(17);
+var _ZL14benchmarkDemo4 = Malloc(80);
+var _ZTI21btBroadphaseInterface = Malloc(8);
+var _ZTS21btBroadphaseInterface = Malloc(24);
+var _ZTI25btOverlappingPairCallback = Malloc(8);
+var _ZTS25btOverlappingPairCallback = Malloc(28);
+var _ZTI22btOverlappingPairCache = Malloc(12);
+var _ZTS22btOverlappingPairCache = Malloc(25);
+var _ZTV15btNullPairCache = Malloc(76);
+var _ZTI15btNullPairCache = Malloc(12);
+var _ZTS15btNullPairCache = Malloc(18);
+var _2E_str11 = Malloc(36);
+var _2E_str112 = Malloc(67);
+var _2E_str213 = Malloc(18);
+var _2E_str314 = Malloc(18);
+var _ZTV20btAxisSweep3InternalItE = Malloc(64);
+var _ZTI20btAxisSweep3InternalItE = Malloc(12);
+var _ZTS20btAxisSweep3InternalItE = Malloc(26);
+var _ZTV12btAxisSweep3 = Malloc(64);
+var _ZTI12btAxisSweep3 = Malloc(12);
+var _ZTS12btAxisSweep3 = Malloc(15);
+var _ZTV20btCollisionAlgorithm = Malloc(28);
+var _ZTI20btCollisionAlgorithm = Malloc(8);
+var _ZTS20btCollisionAlgorithm = Malloc(23);
+var _ZTIN6btDbvt8ICollideE = Malloc(8);
+var _ZTSN6btDbvt8ICollideE = Malloc(19);
+var _2E_str1118 = Malloc(63);
+var _2E_str22 = Malloc(16);
+var _ZTV18btDbvtTreeCollider = Malloc(36);
+var _ZTI18btDbvtTreeCollider = Malloc(12);
+var _ZTS18btDbvtTreeCollider = Malloc(21);
+var _ZTV19BroadphaseRayTester = Malloc(36);
+var _ZTI19BroadphaseRayTester = Malloc(12);
+var _ZTS19BroadphaseRayTester = Malloc(22);
+var _ZTV20BroadphaseAabbTester = Malloc(36);
+var _ZTI20BroadphaseAabbTester = Malloc(12);
+var _ZTS20BroadphaseAabbTester = Malloc(23);
+var _2E_str18 = Malloc(73);
+var _ZTV16btDbvtBroadphase = Malloc(64);
+var _ZTI16btDbvtBroadphase = Malloc(12);
+var _ZTS16btDbvtBroadphase = Malloc(19);
+var _ZTV12btDispatcher = Malloc(64);
+var _ZTI12btDispatcher = Malloc(8);
+var _ZTS12btDispatcher = Malloc(15);
+var _ZTI21btNodeOverlapCallback = Malloc(8);
+var _ZTS21btNodeOverlapCallback = Malloc(24);
+var _2E_str10 = Malloc(2);
+var _2E_str212 = Malloc(18);
+var _2E_str313 = Malloc(69);
+var _2E_str414 = Malloc(36);
+var _2E_str515 = Malloc(36);
+var _2E_str616 = Malloc(36);
+var _2E_str717 = Malloc(36);
+var _2E_str820 = Malloc(36);
+var _2E_str9 = Malloc(36);
+var gOverlappingPairs = Malloc(4);
+var _ZTI17btOverlapCallback = Malloc(8);
+var _ZTS17btOverlapCallback = Malloc(20);
+var _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback = Malloc(20);
+var _ZTIZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback = Malloc(12);
+var _ZTSZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback = Malloc(110);
+var _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback = Malloc(20);
+var _ZTIZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback = Malloc(12);
+var _ZTSZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback = Malloc(129);
+var gRemovePairs = Malloc(4);
+var _ZTV28btHashedOverlappingPairCache = Malloc(76);
+var _ZTI28btHashedOverlappingPairCache = Malloc(12);
+var _ZTS28btHashedOverlappingPairCache = Malloc(31);
+var _2E_str121 = Malloc(79);
+var gAddedPairs = Malloc(4);
+var _2E_str222 = Malloc(38);
+var _2E_str323 = Malloc(77);
+var _2E_str424 = Malloc(38);
+var _2E_str525 = Malloc(38);
+var _2E_str626 = Malloc(42);
+var _2E_str727 = Malloc(22);
+var gFindPairs = Malloc(4);
+var _2E_str32 = Malloc(23);
+var _2E_str133 = Malloc(23);
+var _2E_str234 = Malloc(21);
+var _2E_str335 = Malloc(24);
+var _ZTV14btQuantizedBvh = Malloc(36);
+var _ZTI14btQuantizedBvh = Malloc(8);
+var _ZTS14btQuantizedBvh = Malloc(17);
+var _2E_str537 = Malloc(71);
+var _2E_str638 = Malloc(48);
+var _2E_str739 = Malloc(13);
+var _2E_str941 = Malloc(14);
+var _2E_str1143 = Malloc(29);
+var maxIterations = Malloc(4);
+var _2E_str1844 = Malloc(19);
+var _2E_str1921 = Malloc(32);
+var _2E_str21 = Malloc(7);
+var _2E_str2246 = Malloc(13);
+var _ZTV30btActivatingCollisionAlgorithm = Malloc(28);
+var _ZTI30btActivatingCollisionAlgorithm = Malloc(12);
+var _ZTS30btActivatingCollisionAlgorithm = Malloc(33);
+var _2E_str59 = Malloc(14);
+var _2E_str160 = Malloc(69);
+var _ZTV26btBoxBoxCollisionAlgorithm = Malloc(28);
+var _ZTI26btBoxBoxCollisionAlgorithm = Malloc(12);
+var _ZTS26btBoxBoxCollisionAlgorithm = Malloc(29);
+var _ZTI36btDiscreteCollisionDetectorInterface = Malloc(8);
+var _ZTS36btDiscreteCollisionDetectorInterface = Malloc(39);
+var _ZTV16btBoxBoxDetector = Malloc(20);
+var _ZTI16btBoxBoxDetector = Malloc(12);
+var _ZTS16btBoxBoxDetector = Malloc(19);
+var _2E_str65 = Malloc(12);
+var _2E_str166 = Malloc(71);
+var gNumManifold = Malloc(4);
+var _ZTIN36btDiscreteCollisionDetectorInterface6ResultE = Malloc(8);
+var _ZTSN36btDiscreteCollisionDetectorInterface6ResultE = Malloc(48);
+var _ZTV23btCollisionPairCallback = Malloc(20);
+var _ZTI23btCollisionPairCallback = Malloc(12);
+var _ZTS23btCollisionPairCallback = Malloc(26);
+var _2E_str169 = Malloc(45);
+var _2E_str270 = Malloc(26);
+var _2E_str371 = Malloc(14);
+var _2E_str472 = Malloc(34);
+var _2E_str573 = Malloc(76);
+var _ZTV21btCollisionDispatcher = Malloc(64);
+var _ZTI21btCollisionDispatcher = Malloc(12);
+var _ZTS21btCollisionDispatcher = Malloc(24);
+var _2E_str674 = Malloc(23);
+var _2E_str775 = Malloc(6);
+var _2E_str876 = Malloc(6);
+var _2E_str977 = Malloc(73);
+var _ZTV17btCollisionObject = Malloc(36);
+var _ZTI17btCollisionObject = Malloc(8);
+var _ZTS17btCollisionObject = Malloc(20);
+var _2E_str78 = Malloc(27);
+var _ZTIN16btCollisionWorld20ConvexResultCallbackE = Malloc(8);
+var _ZTSN16btCollisionWorld20ConvexResultCallbackE = Malloc(43);
+var _ZTI30btConvexPenetrationDepthSolver = Malloc(8);
+var _ZTS30btConvexPenetrationDepthSolver = Malloc(33);
+var _ZTVN12btConvexCast10CastResultE = Malloc(24);
+var _ZTIN12btConvexCast10CastResultE = Malloc(8);
+var _ZTSN12btConvexCast10CastResultE = Malloc(29);
+var _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2 = Malloc(24);
+var _ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2 = Malloc(12);
+var _ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2 = Malloc(140);
+var _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder = Malloc(24);
+var _ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder = Malloc(12);
+var _ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder = Malloc(164);
+var _ZTI24btBroadphaseAabbCallback = Malloc(8);
+var _ZTS24btBroadphaseAabbCallback = Malloc(27);
+var _ZTI23btBroadphaseRayCallback = Malloc(12);
+var _ZTS23btBroadphaseRayCallback = Malloc(26);
+var _ZTV17DebugDrawcallback = Malloc(44);
+var _ZTI17DebugDrawcallback = Malloc(32);
+var _ZTS17DebugDrawcallback = Malloc(20);
+var _ZTI18btTriangleCallback = Malloc(8);
+var _ZTS18btTriangleCallback = Malloc(21);
+var _ZTI31btInternalTriangleIndexCallback = Malloc(8);
+var _ZTS31btInternalTriangleIndexCallback = Malloc(34);
+var _ZTV16btCollisionWorld = Malloc(56);
+var _ZTI16btCollisionWorld = Malloc(8);
+var _ZTS16btCollisionWorld = Malloc(19);
+var _ZTI16btManifoldResult = Malloc(12);
+var _ZTS16btManifoldResult = Malloc(19);
+var _ZTV21btSingleSweepCallback = Malloc(20);
+var _ZTI21btSingleSweepCallback = Malloc(12);
+var _ZTS21btSingleSweepCallback = Malloc(24);
+var _ZTV19btSingleRayCallback = Malloc(20);
+var _ZTI19btSingleRayCallback = Malloc(12);
+var _ZTS19btSingleRayCallback = Malloc(22);
+var _2E_str382 = Malloc(23);
+var _2E_str483 = Malloc(76);
+var _2E_str584 = Malloc(19);
+var _2E_str685 = Malloc(42);
+var _2E_str786 = Malloc(16);
+var _2E_str887 = Malloc(71);
+var _2E_str988 = Malloc(82);
+var _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0 = Malloc(24);
+var _ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0 = Malloc(12);
+var _ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0 = Malloc(184);
+var _ZTI28btTriangleConvexcastCallback = Malloc(12);
+var _ZTS28btTriangleConvexcastCallback = Malloc(31);
+var _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback = Malloc(24);
+var _ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback = Malloc(12);
+var _ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback = Malloc(182);
+var _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0 = Malloc(24);
+var _ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0 = Malloc(12);
+var _ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0 = Malloc(156);
+var _ZTI25btTriangleRaycastCallback = Malloc(12);
+var _ZTS25btTriangleRaycastCallback = Malloc(28);
+var _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback = Malloc(24);
+var _ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback = Malloc(12);
+var _ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback = Malloc(154);
+var _2E_str1089 = Malloc(16);
+var _2E_str1190 = Malloc(34);
+var _2E_str1291 = Malloc(26);
+var _2E_str1392 = Malloc(26);
+var _2E_str1493 = Malloc(20);
+var _ZZN16btCollisionWorld16updateSingleAabbEP17btCollisionObjectE8reportMe_2E_b = Malloc(1);
+var _2E_str1594 = Malloc(49);
+var _2E_str1695 = Malloc(68);
+var _2E_str1796 = Malloc(65);
+var _2E_str1897 = Malloc(9);
+var _2E_str1998 = Malloc(12);
+var _ZTV22btCompoundLeafCallback = Malloc(36);
+var _ZTI22btCompoundLeafCallback = Malloc(12);
+var _ZTS22btCompoundLeafCallback = Malloc(25);
+var _2E_str99 = Malloc(42);
+var _2E_str1100 = Malloc(83);
+var _2E_str2101 = Malloc(43);
+var _2E_str3102 = Malloc(41);
+var _2E_str4103 = Malloc(43);
+var _2E_str5104 = Malloc(43);
+var _2E_str6105 = Malloc(9);
+var _2E_str7106 = Malloc(41);
+var _ZTV28btCompoundCollisionAlgorithm = Malloc(28);
+var _ZTI28btCompoundCollisionAlgorithm = Malloc(12);
+var _ZTS28btCompoundCollisionAlgorithm = Malloc(31);
+var _2E_str109 = Malloc(9);
+var _ZTV24btConvexTriangleCallback = Malloc(20);
+var _ZTI24btConvexTriangleCallback = Malloc(12);
+var _ZTS24btConvexTriangleCallback = Malloc(27);
+var _ZTVZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback = Malloc(20);
+var _ZTIZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback = Malloc(12);
+var _ZTSZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback = Malloc(158);
+var _ZTV15btTriangleShape = Malloc(124);
+var _ZTI15btTriangleShape = Malloc(12);
+var _ZTS15btTriangleShape = Malloc(18);
+var _ZTI23btPolyhedralConvexShape = Malloc(12);
+var _ZTS23btPolyhedralConvexShape = Malloc(26);
+var _ZTI21btConvexInternalShape = Malloc(12);
+var _ZTS21btConvexInternalShape = Malloc(24);
+var _ZTI13btConvexShape = Malloc(12);
+var _ZTS13btConvexShape = Malloc(16);
+var _ZTI16btCollisionShape = Malloc(8);
+var _ZTS16btCollisionShape = Malloc(19);
+var _2E_str1110 = Malloc(26);
+var _2E_str3112 = Malloc(66);
+var _ZTV33btConvexConcaveCollisionAlgorithm = Malloc(28);
+var _ZTI33btConvexConcaveCollisionAlgorithm = Malloc(12);
+var _ZTS33btConvexConcaveCollisionAlgorithm = Malloc(36);
+var _ZTI30btCollisionAlgorithmCreateFunc = Malloc(8);
+var _ZTS30btCollisionAlgorithmCreateFunc = Malloc(33);
+var _ZTVN23btConvexConvexAlgorithm10CreateFuncE = Malloc(20);
+var _ZTIN23btConvexConvexAlgorithm10CreateFuncE = Malloc(12);
+var _ZTSN23btConvexConvexAlgorithm10CreateFuncE = Malloc(40);
+var _ZTV24btPerturbedContactResult = Malloc(28);
+var _ZTI24btPerturbedContactResult = Malloc(12);
+var _ZTS24btPerturbedContactResult = Malloc(27);
+var _2E_str115 = Malloc(19);
+var _2E_str4119 = Malloc(49);
+var _2E_str5120 = Malloc(78);
+var _ZTV23btConvexConvexAlgorithm = Malloc(28);
+var _ZTI23btConvexConvexAlgorithm = Malloc(12);
+var _ZTS23btConvexConvexAlgorithm = Malloc(26);
+var _ZTV31btConvexPlaneCollisionAlgorithm = Malloc(28);
+var _ZTI31btConvexPlaneCollisionAlgorithm = Malloc(12);
+var _ZTS31btConvexPlaneCollisionAlgorithm = Malloc(34);
+var _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE = Malloc(20);
+var _ZTIN31btConvexPlaneCollisionAlgorithm10CreateFuncE = Malloc(12);
+var _ZTSN31btConvexPlaneCollisionAlgorithm10CreateFuncE = Malloc(48);
+var _ZTI24btCollisionConfiguration = Malloc(8);
+var _ZTS24btCollisionConfiguration = Malloc(27);
+var _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE = Malloc(20);
+var _ZTIN33btConvexConcaveCollisionAlgorithm10CreateFuncE = Malloc(12);
+var _ZTSN33btConvexConcaveCollisionAlgorithm10CreateFuncE = Malloc(50);
+var _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE = Malloc(20);
+var _ZTIN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE = Malloc(12);
+var _ZTSN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE = Malloc(57);
+var _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE = Malloc(20);
+var _ZTIN28btCompoundCollisionAlgorithm10CreateFuncE = Malloc(12);
+var _ZTSN28btCompoundCollisionAlgorithm10CreateFuncE = Malloc(45);
+var _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE = Malloc(20);
+var _ZTIN28btCompoundCollisionAlgorithm17SwappedCreateFuncE = Malloc(12);
+var _ZTSN28btCompoundCollisionAlgorithm17SwappedCreateFuncE = Malloc(52);
+var _ZTVN16btEmptyAlgorithm10CreateFuncE = Malloc(20);
+var _ZTIN16btEmptyAlgorithm10CreateFuncE = Malloc(12);
+var _ZTSN16btEmptyAlgorithm10CreateFuncE = Malloc(33);
+var _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE = Malloc(20);
+var _ZTIN32btSphereSphereCollisionAlgorithm10CreateFuncE = Malloc(12);
+var _ZTSN32btSphereSphereCollisionAlgorithm10CreateFuncE = Malloc(49);
+var _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE = Malloc(20);
+var _ZTIN34btSphereTriangleCollisionAlgorithm10CreateFuncE = Malloc(12);
+var _ZTSN34btSphereTriangleCollisionAlgorithm10CreateFuncE = Malloc(51);
+var _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE = Malloc(20);
+var _ZTIN26btBoxBoxCollisionAlgorithm10CreateFuncE = Malloc(12);
+var _ZTSN26btBoxBoxCollisionAlgorithm10CreateFuncE = Malloc(43);
+var _2E_str128 = Malloc(12);
+var _2E_str1129 = Malloc(42);
+var _ZTV31btDefaultCollisionConfiguration = Malloc(36);
+var _ZTI31btDefaultCollisionConfiguration = Malloc(12);
+var _ZTS31btDefaultCollisionConfiguration = Malloc(34);
+var _ZTV16btEmptyAlgorithm = Malloc(28);
+var _ZTI16btEmptyAlgorithm = Malloc(12);
+var _ZTS16btEmptyAlgorithm = Malloc(19);
+var _ZTV16btManifoldResult = Malloc(28);
+var _2E_str2149 = Malloc(31);
+var _2E_str3150 = Malloc(12);
+var _2E_str5152 = Malloc(71);
+var _2E_str155 = Malloc(28);
+var _2E_str1156 = Malloc(73);
+var _2E_str2157 = Malloc(80);
+var _2E_str3158 = Malloc(15);
+var _ZTV25btSimulationIslandManager = Malloc(24);
+var _ZTI25btSimulationIslandManager = Malloc(8);
+var _ZTS25btSimulationIslandManager = Malloc(28);
+var _ZTV32btSphereSphereCollisionAlgorithm = Malloc(28);
+var _ZTI32btSphereSphereCollisionAlgorithm = Malloc(12);
+var _ZTS32btSphereSphereCollisionAlgorithm = Malloc(35);
+var _ZTV34btSphereTriangleCollisionAlgorithm = Malloc(28);
+var _ZTI34btSphereTriangleCollisionAlgorithm = Malloc(12);
+var _ZTS34btSphereTriangleCollisionAlgorithm = Malloc(37);
+var _ZTV22SphereTriangleDetector = Malloc(20);
+var _ZTI22SphereTriangleDetector = Malloc(12);
+var _ZTS22SphereTriangleDetector = Malloc(25);
+var _2E_str173 = Malloc(4);
+var _2E_str2175 = Malloc(61);
+var _ZTV10btBoxShape = Malloc(124);
+var _ZTI10btBoxShape = Malloc(12);
+var _ZTS10btBoxShape = Malloc(13);
+var _2E_str181 = Malloc(16);
+var _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(20);
+var _ZTIZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(12);
+var _ZTSZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(104);
+var _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback = Malloc(20);
+var _ZTIZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback = Malloc(12);
+var _ZTSZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback = Malloc(113);
+var _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(20);
+var _ZTIZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(12);
+var _ZTSZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(110);
+var _2E_str5186 = Malloc(70);
+var _2E_str6187 = Malloc(49);
+var _2E_str7188 = Malloc(75);
+var _2E_str8189 = Malloc(24);
+var _ZTV22btBvhTriangleMeshShape = Malloc(88);
+var _ZTI22btBvhTriangleMeshShape = Malloc(12);
+var _ZTS22btBvhTriangleMeshShape = Malloc(25);
+var _ZTI19btTriangleMeshShape = Malloc(12);
+var _ZTS19btTriangleMeshShape = Malloc(22);
+var _ZTI14btConcaveShape = Malloc(12);
+var _ZTS14btConcaveShape = Malloc(17);
+var _2E_str194 = Malloc(13);
+var _2E_str4198 = Malloc(72);
+var _2E_str6199 = Malloc(19);
+var _ZTV14btCapsuleShape = Malloc(92);
+var _ZTI14btCapsuleShape = Malloc(12);
+var _ZTS14btCapsuleShape = Malloc(17);
+var _2E_str200 = Malloc(21);
+var _ZTV14btConcaveShape = Malloc(72);
+var _2E_str219 = Malloc(7);
+var _2E_str3222 = Malloc(70);
+var _ZTV17btConvexHullShape = Malloc(120);
+var _ZTI17btConvexHullShape = Malloc(12);
+var _ZTS17btConvexHullShape = Malloc(20);
+var _ZTI34btPolyhedralConvexAabbCachingShape = Malloc(12);
+var _ZTS34btPolyhedralConvexAabbCachingShape = Malloc(37);
+var _2E_str5223 = Malloc(19);
+var _2E_str6224 = Malloc(22);
+var _2E_str6232 = Malloc(19);
+var _ZTV13btConvexShape = Malloc(92);
+var _2E_str6249 = Malloc(13);
+var _2E_str7250 = Malloc(66);
+var _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback = Malloc(20);
+var _ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback = Malloc(12);
+var _ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback = Malloc(91);
+var _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback = Malloc(20);
+var _ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback = Malloc(12);
+var _ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback = Malloc(100);
+var _2E_str10306 = Malloc(67);
+var _2E_str18314 = Malloc(36);
+var _2E_str19315 = Malloc(48);
+var _2E_str20316 = Malloc(17);
+var _ZTV14btOptimizedBvh = Malloc(40);
+var _ZTI14btOptimizedBvh = Malloc(12);
+var _ZTS14btOptimizedBvh = Malloc(17);
+var _2E_str7331 = Malloc(74);
+var _ZGVZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions = Malloc(8);
+var _ZZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions = Malloc(96);
+var _2E_str342 = Malloc(7);
+var _ZTV13btSphereShape = Malloc(92);
+var _ZTI13btSphereShape = Malloc(12);
+var _ZTS13btSphereShape = Malloc(16);
+var _2E_str349 = Malloc(15);
+var _2E_str1350 = Malloc(27);
+var _2E_str3352 = Malloc(76);
+var _2E_str5354 = Malloc(20);
+var _2E_str6355 = Malloc(44);
+var _2E_str7356 = Malloc(15);
+var _2E_str8357 = Malloc(28);
+var _2E_str9358 = Malloc(61);
+var _ZTV23btStridingMeshInterface = Malloc(68);
+var _ZTI23btStridingMeshInterface = Malloc(8);
+var _ZTS23btStridingMeshInterface = Malloc(26);
+var _ZTV31btInternalTriangleIndexCallback = Malloc(20);
+var _ZTV18btTriangleCallback = Malloc(20);
+var _2E_str367 = Malloc(26);
+var _2E_str1368 = Malloc(79);
+var _ZTV26btTriangleIndexVertexArray = Malloc(68);
+var _ZTI26btTriangleIndexVertexArray = Malloc(12);
+var _ZTS26btTriangleIndexVertexArray = Malloc(29);
+var _2E_str372 = Malloc(13);
+var _ZTV21SupportVertexCallback = Malloc(20);
+var _ZTI21SupportVertexCallback = Malloc(12);
+var _ZTS21SupportVertexCallback = Malloc(24);
+var _ZTVZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback = Malloc(20);
+var _ZTIZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback = Malloc(12);
+var _ZTSZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback = Malloc(102);
+var _2E_str3375 = Malloc(72);
+var _ZTV19btTriangleMeshShape = Malloc(80);
+var _ZTV16btPointCollector = Malloc(28);
+var _ZTI16btPointCollector = Malloc(12);
+var _ZTS16btPointCollector = Malloc(19);
+var _ZTV27btContinuousConvexCollision = Malloc(20);
+var _ZTI27btContinuousConvexCollision = Malloc(12);
+var _ZTS27btContinuousConvexCollision = Malloc(30);
+var _ZTI12btConvexCast = Malloc(8);
+var _ZTS12btConvexCast = Malloc(15);
+var _ZTV12btConvexCast = Malloc(20);
+var _ZTV15btGjkConvexCast = Malloc(20);
+var _ZTI15btGjkConvexCast = Malloc(12);
+var _ZTS15btGjkConvexCast = Malloc(18);
+var _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3 = Malloc(12);
+var _ZZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonEE4i2m3 = Malloc(12);
+var _ZTV30btGjkEpaPenetrationDepthSolver = Malloc(20);
+var _ZTI30btGjkEpaPenetrationDepthSolver = Malloc(12);
+var _ZTS30btGjkEpaPenetrationDepthSolver = Malloc(33);
+var gNumDeepPenetrationChecks = Malloc(4);
+var _ZTV17btGjkPairDetector = Malloc(20);
+var _ZTI17btGjkPairDetector = Malloc(12);
+var _ZTS17btGjkPairDetector = Malloc(20);
+var gNumGjkChecks = Malloc(4);
+var _2E_str425 = Malloc(39);
+var _2E_str1426 = Malloc(71);
+var _2E_str2427 = Malloc(18);
+var _2E_str3428 = Malloc(75);
+var gContactBreakingThreshold = Malloc(4);
+var _2E_str434 = Malloc(52);
+var _2E_str3437 = Malloc(78);
+var _2E_str4438 = Malloc(50);
+var _ZTV28btTriangleConvexcastCallback = Malloc(24);
+var _ZTV22btSubsimplexConvexCast = Malloc(20);
+var _ZTI22btSubsimplexConvexCast = Malloc(12);
+var _ZTS22btSubsimplexConvexCast = Malloc(25);
+var _2E_str457 = Malloc(16);
+var _2E_str1458 = Malloc(80);
+var _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE = Malloc(24);
+var _ZTIN16btCollisionWorld27ClosestConvexResultCallbackE = Malloc(12);
+var _ZTSN16btCollisionWorld27ClosestConvexResultCallbackE = Malloc(50);
+var _2E_str36 = Malloc(51);
+var _2E_str239 = Malloc(26);
+var _ZTV21btConeTwistConstraint = Malloc(52);
+var _ZTI21btConeTwistConstraint = Malloc(12);
+var _ZTS21btConeTwistConstraint = Malloc(24);
+var _2E_str1340 = Malloc(37);
+var _2E_str24 = Malloc(74);
+var _2E_str442 = Malloc(37);
+var _2E_str543 = Malloc(37);
+var _2E_str846 = Malloc(24);
+var _2E_str947 = Malloc(66);
+var _2E_str1149 = Malloc(30);
+var _2E_str29 = Malloc(27);
+var _ZTV17btHingeConstraint = Malloc(52);
+var _ZTI17btHingeConstraint = Malloc(12);
+var _ZTS17btHingeConstraint = Malloc(20);
+var _2E_str130 = Malloc(34);
+var _2E_str231 = Malloc(70);
+var _2E_str332 = Malloc(34);
+var _2E_str433 = Malloc(34);
+var gNumSplitImpulseRecoveries = Malloc(4);
+var _ZTI18btConstraintSolver = Malloc(8);
+var _ZTS18btConstraintSolver = Malloc(21);
+var _ZTV35btSequentialImpulseConstraintSolver = Malloc(48);
+var _ZTI35btSequentialImpulseConstraintSolver = Malloc(12);
+var _ZTS35btSequentialImpulseConstraintSolver = Malloc(38);
+var _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed = Malloc(8);
+var _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed = Malloc(608);
+var _2E_str248 = Malloc(27);
+var _2E_str34955 = Malloc(54);
+var _2E_str450 = Malloc(11);
+var _2E_str551 = Malloc(7);
+var _2E_str652 = Malloc(88);
+var _2E_str753 = Malloc(10);
+var _2E_str854 = Malloc(34);
+var _2E_str955 = Malloc(3);
+var _2E_str1056 = Malloc(29);
+var _2E_str1157 = Malloc(24);
+var _2E_str76 = Malloc(22);
+var _ZTI23btDiscreteDynamicsWorld = Malloc(12);
+var _ZTS23btDiscreteDynamicsWorld = Malloc(26);
+var _ZTI15btDynamicsWorld = Malloc(12);
+var _ZTS15btDynamicsWorld = Malloc(18);
+var _ZTIN25btSimulationIslandManager14IslandCallbackE = Malloc(8);
+var _ZTSN25btSimulationIslandManager14IslandCallbackE = Malloc(46);
+var _ZTV34btClosestNotMeConvexResultCallback = Malloc(24);
+var _ZTI34btClosestNotMeConvexResultCallback = Malloc(12);
+var _ZTS34btClosestNotMeConvexResultCallback = Malloc(37);
+var _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback = Malloc(20);
+var _ZTIZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback = Malloc(12);
+var _ZTSZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback = Malloc(99);
+var _2E_str87 = Malloc(26);
+var _2E_str188 = Malloc(27);
+var _2E_str289 = Malloc(14);
+var _2E_str794 = Malloc(20);
+var _2E_str895 = Malloc(20);
+var gNumClampedCcdMotions = Malloc(4);
+var _2E_str996 = Malloc(17);
+var _2E_str1097 = Malloc(22);
+var _2E_str1198 = Malloc(29);
+var _2E_str1299 = Malloc(15);
+var _2E_str13100 = Malloc(5);
+var _2E_str1461 = Malloc(68);
+var _2E_str1562 = Malloc(24);
+var _2E_str16101 = Malloc(15);
+var _ZTV15btDynamicsWorld = Malloc(140);
+var _ZTV23btDiscreteDynamicsWorld = Malloc(180);
+var _ZL8uniqueId = Malloc(4);
+var _ZTV11btRigidBody = Malloc(36);
+var _ZTI11btRigidBody = Malloc(12);
+var _ZTS11btRigidBody = Malloc(14);
+var _2E_str4144 = Malloc(21);
+var gDisableDeactivation = Malloc(1);
+var gNumAlignedAllocs = Malloc(4);
+var gNumAlignedFree = Malloc(4);
+var _ZN15CProfileManager12FrameCounterE = Malloc(4);
+var _ZN15CProfileManager4RootE = Malloc(32);
+var _ZL13gProfileClock_2E_0 = Malloc(4);
+var _ZN15CProfileManager11CurrentNodeE = Malloc(4);
+var _2E_str729 = Malloc(5);
+var _ZN4__rwL12__rw_catlistE_2E_0 = Malloc(4);
+var _ZN4__rwL12__rw_catlistE_2E_1 = Malloc(4);
+var _ZN4__rwL12__rw_catlistE_2E_2 = Malloc(4);
+var llvm_2E_eh_2E_catch_2E_all_2E_value = Malloc(4);
+var _ZTIN4__rw10__rw_facetE = Malloc(12);
+var _ZTSN4__rw10__rw_facetE = Malloc(20);
+var _ZTIN4__rw17__rw_synchronizedE = Malloc(8);
+var _ZTSN4__rw17__rw_synchronizedE = Malloc(27);
+var _2E_str4131 = Malloc(10);
+var _2E_str15132 = Malloc(21);
+var _2E_str26 = Malloc(1);
+var _ZN4__rwL13__rw_what_bufE = Malloc(256);
+var _ZN4__rwL16__rw_what_refcntE = Malloc(4);
+var _2E_str3133 = Malloc(16);
+var _2E_str47 = Malloc(25);
+var _2E_str5134 = Malloc(18);
+var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E7__fname = Malloc(4);
+var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer = Malloc(11);
+var _2E_str7136 = Malloc(3);
+var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset = Malloc(4);
+var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E4msgs = Malloc(32);
+var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat = Malloc(4);
+var _ZZN4__rw10__rw_throwEizE6errors = Malloc(100);
+var _2E_str8137 = Malloc(26);
+var _2E_str9138 = Malloc(18);
+var _2E_str10139 = Malloc(29);
+var _2E_str11140 = Malloc(33);
+var _2E_str12141 = Malloc(17);
+var _2E_str138142 = Malloc(20);
+var _2E_str14143 = Malloc(21);
+var _2E_str159144 = Malloc(25);
+var _2E_str16145 = Malloc(51);
+var _2E_str17146 = Malloc(47);
+var _2E_str18147 = Malloc(22);
+var _2E_str19148 = Malloc(44);
+var _2E_str20149 = Malloc(23);
+var _2E_str21150 = Malloc(24);
+var _2E_str22151 = Malloc(39);
+var _2E_str23152 = Malloc(38);
+var _2E_str24153 = Malloc(38);
+var _2E_str25154 = Malloc(29);
+var _2E_str2610 = Malloc(44);
+var _2E_str27 = Malloc(30);
+var _2E_str28155 = Malloc(40);
+var _2E_str29156 = Malloc(26);
+var _2E_str30 = Malloc(27);
+var _2E_str31 = Malloc(30);
+var _2E_str32157 = Malloc(32);
+var _2E_str33 = Malloc(11);
+var _2E_str134 = Malloc(9);
+var _2E_str235 = Malloc(12);
+var _2E_str336 = Malloc(11);
+var _2E_str437 = Malloc(8);
+var _ZTVN4__rw10__rw_facetE = Malloc(16);
+var _2E_str538 = Malloc(2);
+var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE12n_std_facets = Malloc(4);
+var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE10std_facets = Malloc(4);
+var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf = Malloc(1664);
+var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE17std_facet_bufsize = Malloc(4);
+var _ZZN4__rw10__rw_facetD4EvE9destroyed = Malloc(24);
+var _ZN4__rw9__rw_catsE = Malloc(72);
+var _2E_str785 = Malloc(2);
+var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE6global = Malloc(4);
+var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE5ginit = Malloc(4);
+var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE9n_locales = Malloc(4);
+var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7locales = Malloc(4);
+var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf = Malloc(32);
+var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize = Malloc(4);
+var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7classic = Malloc(4);
+var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE12classic_body = Malloc(172);
+var _ZN4__rwL22__rw_classic_once_initE_2E_0_2E_b = Malloc(1);
+var _ZN4__rwL12__rw_classicE = Malloc(4);
+var _2E_str292167 = Malloc(4);
+var _2E_str10100175 = Malloc(29);
+var _2E_str12102177 = Malloc(33);
+var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE4init_2E_b = Malloc(1);
+var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs = Malloc(4);
+var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf = Malloc(64);
+var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize = Malloc(4);
+var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE10n_catalogs = Malloc(4);
+var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat = Malloc(4);
+var _2E_str115180 = Malloc(27);
+var _2E_str1116181 = Malloc(25);
+var _2E_str2131 = Malloc(2);
+var _2E_str4133 = Malloc(2);
+var _ZZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEEE11locale_root = Malloc(259);
+var _ZNSs11_C_null_refE = Malloc(16);
+var _ZTVSt8messagesIcE = Malloc(28);
+var _ZTISt8messagesIcE = Malloc(32);
+var _ZTSSt8messagesIcE = Malloc(15);
+var _ZTISt13messages_base = Malloc(8);
+var _ZTSSt13messages_base = Malloc(18);
+var _2E_str2360 = Malloc(31);
+var _2E_str3361 = Malloc(48);
+var _2E_str4362 = Malloc(31);
+var _ZTVSt9type_info = Malloc(24);
+var _ZTISt9type_info = Malloc(8);
+var _ZTSSt9type_info = Malloc(13);
+var s_max_memory = Malloc(4);
+var s_current_memory = Malloc(4);
+var block_null = Malloc(16);
+var _2E_str643 = Malloc(57);
+var _2E_str1648 = Malloc(3);
+var _2E_str4651 = Malloc(4);
+var _2E_str5652 = Malloc(4);
+var my_ctype = Malloc(1028);
+var _ZL8nextRand = Malloc(4);
+var _2E_str7654 = Malloc(4);
+var _2E_str9655 = Malloc(4);
+var _ZL8pad_line = Malloc(64);
+var _ZL10strtok_pos = Malloc(4);
+var _ZTI14CFileInterface = Malloc(8);
+var _ZTS14CFileInterface = Malloc(17);
+var _ZTV11CFileSystem = Malloc(44);
+var _ZTI11CFileSystem = Malloc(12);
+var _ZTS11CFileSystem = Malloc(14);
+var _ZL13s_file_stdout = Malloc(4);
+var _ZTV7CFileLS = Malloc(44);
+var _ZTI7CFileLS = Malloc(12);
+var _ZTS7CFileLS = Malloc(9);
+var _ZTV10CFileCloud = Malloc(44);
+var _ZTI10CFileCloud = Malloc(12);
+var _ZTS10CFileCloud = Malloc(13);
+var _ZL10s_aSockets = Malloc(262336);
+var _ZTV11CFileStdout = Malloc(44);
+var _ZTI11CFileStdout = Malloc(12);
+var _ZTS11CFileStdout = Malloc(14);
+var _2E_str31677 = Malloc(4);
+var _2E_str32678 = Malloc(4);
+var _2E_str33679 = Malloc(5);
+var _2E_str34680 = Malloc(8);
+var _2E_str35681 = Malloc(53);
+var _2E_str37683 = Malloc(4);
+var _2E_str38684 = Malloc(7);
+var _ZN12mandreel_b64L9b64_charsE = Malloc(65);
+var _ZN12mandreel_b64L11b64_indexesE = Malloc(256);
+var _ZL25s_mandreel_internal_width = Malloc(4);
+var _ZL26s_mandreel_internal_height = Malloc(4);
+var g_msgcallback = Malloc(4);
+var _ZL24g_pFirstTextureAsyncInfo = Malloc(4);
+var _ZL17g_apPackFileNames = Malloc(1024);
+var _ZGVZ21Mandreel_GetTickCountE7s_first = Malloc(8);
+var _ZZ21Mandreel_GetTickCountE7s_first = Malloc(8);
+var _ZZ29__mandreel_internal_preupdateE8s_bfirst_2E_b = Malloc(1);
+var _2E_str779 = Malloc(13);
+var _2E_str3782 = Malloc(13);
+var _2E_str4783 = Malloc(37);
+var _2E_str5784 = Malloc(12);
+var _2E_str6785 = Malloc(17);
+var _ZZ24__mandreel_internal_initE54s_723478567_mandreel___mandreel_internal_SetResolution = Malloc(4);
+var _ZZ24__mandreel_internal_initE56s_723478567_mandreel_iMandreel_TextureAsync_IsCompressed = Malloc(4);
+var _ZZ24__mandreel_internal_initE57s_723478567_mandreel_iMandreel_TextureAsync_GetPackOffset = Malloc(4);
+var _ZZ24__mandreel_internal_initE29s_723478567_mandreel___resize = Malloc(4);
+var _ZZ24__mandreel_internal_initE48s_723478567_mandreel_imandreel_restore_glcontext = Malloc(4);
+var _ZZ24__mandreel_internal_initE46s_723478567_mandreel_imandreel_viewport_resize = Malloc(4);
+var _ZTVN10__cxxabiv120__si_class_type_infoE = Malloc(40);
+var _ZTIN10__cxxabiv120__si_class_type_infoE = Malloc(12);
+var _ZTSN10__cxxabiv120__si_class_type_infoE = Malloc(37);
+var _ZTIN10__cxxabiv117__class_type_infoE = Malloc(12);
+var _ZTSN10__cxxabiv117__class_type_infoE = Malloc(34);
+var _ZTVN10__cxxabiv117__class_type_infoE = Malloc(40);
+var _ZTVN10__cxxabiv121__vmi_class_type_infoE = Malloc(40);
+var _ZTIN10__cxxabiv121__vmi_class_type_infoE = Malloc(12);
+var _ZTSN10__cxxabiv121__vmi_class_type_infoE = Malloc(38);
+var _ZL11g_aChannels = Malloc(9344);
+var _ZL7g_bInit_2E_b = Malloc(1);
+var _2E_str221 = Malloc(8);
+var _2E_str1222 = Malloc(21);
+var _ZL21g_pFirstSoundDuration = Malloc(4);
+var _2E_str3224 = Malloc(71);
+var _2E_str4225 = Malloc(8);
+var _ZL15g_iFreeChannels = Malloc(4);
+var _ZL15g_aFreeChannels = Malloc(128);
+var _ZL6g_bLog = Malloc(1);
+var _2E_str12233 = Malloc(5);
+var _2E_str22243 = Malloc(21);
+var _2E_str24245 = Malloc(86);
+var _2E_str26247 = Malloc(8);
+var _2E_str27248 = Malloc(4);
+var _2E_str28249 = Malloc(60);
+var _2E_str29250 = Malloc(10);
+var _2E_str30251 = Malloc(3);
+var _2E_str31252 = Malloc(75);
+var _2E_str32253 = Malloc(5);
+var _2E_str33254 = Malloc(4);
+var _2E_str34255 = Malloc(9);
+var _2E_str35256 = Malloc(22);
+var _ZZL32_mandreel_init_tcp_socket_librayvE47s_723478567_mandreel_mandreel_flash_tcp_onError = Malloc(4);
+var _ZL13s_fifo_errors = Malloc(24);
+var _ZN5my_glL9m_contextE = Malloc(324);
+var llvm_2E_global_ctors = Malloc(40);
+var llvm_2E_global_dtors = Malloc(56);
+var llvm_2E_used = Malloc(300);
+function global_init(stackPos)
+{
+initHeap();
+emit_start(Landscape02Vtx)
+emit_32(3279552512);
+emit_32(1077902238);
+emit_32(1122144223);
+emit_32(3279552512);
+emit_32(1074513450);
+emit_32(1122656322);
+emit_32(3279296528);
+emit_32(1070576131);
+emit_32(1122144223);
+emit_32(3279296528);
+emit_32(1069684087);
+emit_32(1122656322);
+emit_32(3279040545);
+emit_32(1062793197);
+emit_32(1122144223);
+emit_32(3279040545);
+emit_32(1059117578);
+emit_32(1122656322);
+emit_32(3278784496);
+emit_32(3207760682);
+emit_32(1122144223);
+emit_32(3278784496);
+emit_32(3205587983);
+emit_32(1122656322);
+emit_32(3278528512);
+emit_32(3223956593);
+emit_32(1122144223);
+emit_32(3278528512);
+emit_32(3221291239);
+emit_32(1122656322);
+emit_32(3278272528);
+emit_32(3228867536);
+emit_32(1122144223);
+emit_32(3278272528);
+emit_32(3227143174);
+emit_32(1122656322);
+emit_32(3278016545);
+emit_32(3229577925);
+emit_32(1122144223);
+emit_32(3278016545);
+emit_32(3228890898);
+emit_32(1122656322);
+emit_32(3277760496);
+emit_32(3232782164);
+emit_32(1122144223);
+emit_32(3277760496);
+emit_32(3231744493);
+emit_32(1122656322);
+emit_32(3277504512);
+emit_32(3233030424);
+emit_32(1122144223);
+emit_32(3277504512);
+emit_32(3231183211);
+emit_32(1122656322);
+emit_32(3277248528);
+emit_32(3231512296);
+emit_32(1122144223);
+emit_32(3277248528);
+emit_32(3226713845);
+emit_32(1122656322);
+emit_32(3276992545);
+emit_32(3225240260);
+emit_32(1122144223);
+emit_32(3276992545);
+emit_32(3222588579);
+emit_32(1122656322);
+emit_32(3276736496);
+emit_32(3223081116);
+emit_32(1122144223);
+emit_32(3276736496);
+emit_32(3218835474);
+emit_32(1122656322);
+emit_32(3276480512);
+emit_32(3217103310);
+emit_32(1122144223);
+emit_32(3276480512);
+emit_32(3214447728);
+emit_32(1122656322);
+emit_32(3276224528);
+emit_32(3188062822);
+emit_32(1122144223);
+emit_32(3276224528);
+emit_32(1046529045);
+emit_32(1122656322);
+emit_32(3275968545);
+emit_32(1065108554);
+emit_32(1122144223);
+emit_32(3275968545);
+emit_32(1070915199);
+emit_32(1122656322);
+emit_32(3275712496);
+emit_32(1078777673);
+emit_32(1122144223);
+emit_32(3275712496);
+emit_32(1082866637);
+emit_32(1122656322);
+emit_32(3275456512);
+emit_32(1083552091);
+emit_32(1122144223);
+emit_32(3275456512);
+emit_32(1087021578);
+emit_32(1122656322);
+emit_32(3275200528);
+emit_32(1086679197);
+emit_32(1122144223);
+emit_32(3275200528);
+emit_32(1090529232);
+emit_32(1122656322);
+emit_32(3274944545);
+emit_32(1090716539);
+emit_32(1122144223);
+emit_32(3274944545);
+emit_32(1092317201);
+emit_32(1122656322);
+emit_32(3274688496);
+emit_32(1091935477);
+emit_32(1122144223);
+emit_32(3274688496);
+emit_32(1093426427);
+emit_32(1122656322);
+emit_32(3274432512);
+emit_32(1092098877);
+emit_32(1122144223);
+emit_32(3274432512);
+emit_32(1094040158);
+emit_32(1122656322);
+emit_32(3274176528);
+emit_32(1094849764);
+emit_32(1122144223);
+emit_32(3274176528);
+emit_32(1095262693);
+emit_32(1122656322);
+emit_32(3273920545);
+emit_32(1097725693);
+emit_32(1122144223);
+emit_32(3273920545);
+emit_32(1097468792);
+emit_32(1122656322);
+emit_32(3273664496);
+emit_32(1099104833);
+emit_32(1122144223);
+emit_32(3273664496);
+emit_32(1099540411);
+emit_32(1122656322);
+emit_32(3273408512);
+emit_32(1100237609);
+emit_32(1122144223);
+emit_32(3273408512);
+emit_32(1100993213);
+emit_32(1122656322);
+emit_32(3273152528);
+emit_32(1102296436);
+emit_32(1122144223);
+emit_32(3273152528);
+emit_32(1102819203);
+emit_32(1122656322);
+emit_32(3272896545);
+emit_32(1104227022);
+emit_32(1122144223);
+emit_32(3272896545);
+emit_32(1104470763);
+emit_32(1122656322);
+emit_32(3272640496);
+emit_32(1105517399);
+emit_32(1122144223);
+emit_32(3272640496);
+emit_32(1105442111);
+emit_32(1122656322);
+emit_32(3272384512);
+emit_32(1106394218);
+emit_32(1122144223);
+emit_32(3272384512);
+emit_32(1106127356);
+emit_32(1122656322);
+emit_32(3272128528);
+emit_32(1107354688);
+emit_32(1122144223);
+emit_32(3272128528);
+emit_32(1106807829);
+emit_32(1122656322);
+emit_32(3271872545);
+emit_32(1107530062);
+emit_32(1122144223);
+emit_32(3271872545);
+emit_32(1107212108);
+emit_32(1122656322);
+emit_32(3271616496);
+emit_32(1107693221);
+emit_32(1122144223);
+emit_32(3271616496);
+emit_32(1107339719);
+emit_32(1122656322);
+emit_32(3271163904);
+emit_32(1108003075);
+emit_32(1122144223);
+emit_32(3271163904);
+emit_32(1108016575);
+emit_32(1122656322);
+emit_32(3270651937);
+emit_32(1108711703);
+emit_32(1122144223);
+emit_32(3270651937);
+emit_32(1108361190);
+emit_32(1122656322);
+emit_32(3270139970);
+emit_32(1108881283);
+emit_32(1122144223);
+emit_32(3270139970);
+emit_32(1108677807);
+emit_32(1122656322);
+emit_32(3269627871);
+emit_32(1108829956);
+emit_32(1122144223);
+emit_32(3269627871);
+emit_32(1108698045);
+emit_32(1122656322);
+emit_32(3269115904);
+emit_32(1108842486);
+emit_32(1122144223);
+emit_32(3269115904);
+emit_32(1108670415);
+emit_32(1122656322);
+emit_32(3268603937);
+emit_32(1108356995);
+emit_32(1122144223);
+emit_32(3268603937);
+emit_32(1108385307);
+emit_32(1122656322);
+emit_32(3268091970);
+emit_32(1107850324);
+emit_32(1122144223);
+emit_32(3268091970);
+emit_32(1107664044);
+emit_32(1122656322);
+emit_32(3267579911);
+emit_32(1107320504);
+emit_32(1122144223);
+emit_32(3267579911);
+emit_32(1106926109);
+emit_32(1122656322);
+emit_32(3267067904);
+emit_32(1106158866);
+emit_32(1122144223);
+emit_32(3267067904);
+emit_32(1105983491);
+emit_32(1122656322);
+emit_32(3266555911);
+emit_32(1106326271);
+emit_32(1122144223);
+emit_32(3266555911);
+emit_32(1105752542);
+emit_32(1122656322);
+emit_32(3266043904);
+emit_32(1105638300);
+emit_32(1122144223);
+emit_32(3266043904);
+emit_32(1105343650);
+emit_32(1122656322);
+emit_32(3265531911);
+emit_32(1104660451);
+emit_32(1122144223);
+emit_32(3265531911);
+emit_32(1104481983);
+emit_32(1122656322);
+emit_32(3265019904);
+emit_32(1103867255);
+emit_32(1122144223);
+emit_32(3265019904);
+emit_32(1103536377);
+emit_32(1122656322);
+emit_32(3264507911);
+emit_32(1102764940);
+emit_32(1122144223);
+emit_32(3264507911);
+emit_32(1102421374);
+emit_32(1122656322);
+emit_32(3263995904);
+emit_32(1101613761);
+emit_32(1122144223);
+emit_32(3263995904);
+emit_32(1101252526);
+emit_32(1122656322);
+emit_32(3263483911);
+emit_32(1100019768);
+emit_32(1122144223);
+emit_32(3263483911);
+emit_32(1099947835);
+emit_32(1122656322);
+emit_32(3262775296);
+emit_32(1099086483);
+emit_32(1122144223);
+emit_32(3262775296);
+emit_32(1099066665);
+emit_32(1122656322);
+emit_32(3261751309);
+emit_32(1097937715);
+emit_32(1122144223);
+emit_32(3261751309);
+emit_32(1097029334);
+emit_32(1122656322);
+emit_32(3260727296);
+emit_32(1097070753);
+emit_32(1122144223);
+emit_32(3260727296);
+emit_32(1095561223);
+emit_32(1122656322);
+emit_32(3259703309);
+emit_32(1096595014);
+emit_32(1122144223);
+emit_32(3259703309);
+emit_32(1095286181);
+emit_32(1122656322);
+emit_32(3258679296);
+emit_32(1095456365);
+emit_32(1122144223);
+emit_32(3258679296);
+emit_32(1094900095);
+emit_32(1122656322);
+emit_32(3257655309);
+emit_32(1093219752);
+emit_32(1122144223);
+emit_32(3257655309);
+emit_32(1093810625);
+emit_32(1122656322);
+emit_32(3256631296);
+emit_32(1092609303);
+emit_32(1122144223);
+emit_32(3256631296);
+emit_32(1093100949);
+emit_32(1122656322);
+emit_32(3255607309);
+emit_32(1093762915);
+emit_32(1122144223);
+emit_32(3255607309);
+emit_32(1093720133);
+emit_32(1122656322);
+emit_32(3254386688);
+emit_32(1094666473);
+emit_32(1122144223);
+emit_32(3254386688);
+emit_32(1094140822);
+emit_32(1122656322);
+emit_32(3252338714);
+emit_32(1094266021);
+emit_32(1122144223);
+emit_32(3252338714);
+emit_32(1093200983);
+emit_32(1122656322);
+emit_32(3250290688);
+emit_32(1093706396);
+emit_32(1122144223);
+emit_32(3250290688);
+emit_32(1093279731);
+emit_32(1122656322);
+emit_32(3248242714);
+emit_32(1095255038);
+emit_32(1122144223);
+emit_32(3248242714);
+emit_32(1095297296);
+emit_32(1122656322);
+emit_32(3245998080);
+emit_32(1096659501);
+emit_32(1122144223);
+emit_32(3245998080);
+emit_32(1096326998);
+emit_32(1122656322);
+emit_32(3241902132);
+emit_32(1097360998);
+emit_32(1122144223);
+emit_32(3241902132);
+emit_32(1097208116);
+emit_32(1122656322);
+emit_32(3237609472);
+emit_32(1097602590);
+emit_32(1122144223);
+emit_32(3237609472);
+emit_32(1098363332);
+emit_32(1122656322);
+emit_32(3229220864);
+emit_32(1098820406);
+emit_32(1122144223);
+emit_32(3229220864);
+emit_32(1098960496);
+emit_32(1122656322);
+emit_32(0);
+emit_32(1099470104);
+emit_32(1122144223);
+emit_32(0);
+emit_32(1099624612);
+emit_32(1122656322);
+emit_32(1081737216);
+emit_32(1100139620);
+emit_32(1122144223);
+emit_32(1081737216);
+emit_32(1100438045);
+emit_32(1122656322);
+emit_32(3279552512);
+emit_32(1083519019);
+emit_32(1121632256);
+emit_32(3279296528);
+emit_32(1074813133);
+emit_32(1121632256);
+emit_32(3279040545);
+emit_32(1064894426);
+emit_32(1121632256);
+emit_32(3278784496);
+emit_32(3220842029);
+emit_32(1121632256);
+emit_32(3278528512);
+emit_32(3224334626);
+emit_32(1121632256);
+emit_32(3278272528);
+emit_32(3228042265);
+emit_32(1121632256);
+emit_32(3278016545);
+emit_32(3230773910);
+emit_32(1121632256);
+emit_32(3277760496);
+emit_32(3234673249);
+emit_32(1121632256);
+emit_32(3277504512);
+emit_32(3235346205);
+emit_32(1121632256);
+emit_32(3277248528);
+emit_32(3233634383);
+emit_32(1121632256);
+emit_32(3276992545);
+emit_32(3231165889);
+emit_32(1121632256);
+emit_32(3276736496);
+emit_32(3226724414);
+emit_32(1121632256);
+emit_32(3276480512);
+emit_32(3221509175);
+emit_32(1121632256);
+emit_32(3276224528);
+emit_32(3212320830);
+emit_32(1121632256);
+emit_32(3275968545);
+emit_32(1049206085);
+emit_32(1121632256);
+emit_32(3275712496);
+emit_32(1073305532);
+emit_32(1121632256);
+emit_32(3275456512);
+emit_32(1077128892);
+emit_32(1121632256);
+emit_32(3275200528);
+emit_32(1082594553);
+emit_32(1121632256);
+emit_32(3274944545);
+emit_32(1084662177);
+emit_32(1121632256);
+emit_32(3274688496);
+emit_32(1089411681);
+emit_32(1121632256);
+emit_32(3274432512);
+emit_32(1092042275);
+emit_32(1121632256);
+emit_32(3274176528);
+emit_32(1095387054);
+emit_32(1121632256);
+emit_32(3273920545);
+emit_32(1097794270);
+emit_32(1121632256);
+emit_32(3273664496);
+emit_32(1099325348);
+emit_32(1121632256);
+emit_32(3273408512);
+emit_32(1100750678);
+emit_32(1121632256);
+emit_32(3273152528);
+emit_32(1101739065);
+emit_32(1121632256);
+emit_32(3272896545);
+emit_32(1103692248);
+emit_32(1121632256);
+emit_32(3272640496);
+emit_32(1105414167);
+emit_32(1121632256);
+emit_32(3272384512);
+emit_32(1106644671);
+emit_32(1121632256);
+emit_32(3272128528);
+emit_32(1107563486);
+emit_32(1121632256);
+emit_32(3271872545);
+emit_32(1107577274);
+emit_32(1121632256);
+emit_32(3271616496);
+emit_32(1107593999);
+emit_32(1121632256);
+emit_32(3271163904);
+emit_32(1108097080);
+emit_32(1121632256);
+emit_32(3270651937);
+emit_32(1108460883);
+emit_32(1121632256);
+emit_32(3270139970);
+emit_32(1108954710);
+emit_32(1121632256);
+emit_32(3269627871);
+emit_32(1109009079);
+emit_32(1121632256);
+emit_32(3269115904);
+emit_32(1108610279);
+emit_32(1121632256);
+emit_32(3268603937);
+emit_32(1108058125);
+emit_32(1121632256);
+emit_32(3268091970);
+emit_32(1107555412);
+emit_32(1121632256);
+emit_32(3267579911);
+emit_32(1106717652);
+emit_32(1121632256);
+emit_32(3267067904);
+emit_32(1106512341);
+emit_32(1121632256);
+emit_32(3266555911);
+emit_32(1106506836);
+emit_32(1121632256);
+emit_32(3266043904);
+emit_32(1105659534);
+emit_32(1121632256);
+emit_32(3265531911);
+emit_32(1105302179);
+emit_32(1121632256);
+emit_32(3265019904);
+emit_32(1104106698);
+emit_32(1121632256);
+emit_32(3264507911);
+emit_32(1102757390);
+emit_32(1121632256);
+emit_32(3263995904);
+emit_32(1101520647);
+emit_32(1121632256);
+emit_32(3263483911);
+emit_32(1100159910);
+emit_32(1121632256);
+emit_32(3262775296);
+emit_32(1099381290);
+emit_32(1121632256);
+emit_32(3261751309);
+emit_32(1098131911);
+emit_32(1121632256);
+emit_32(3260727296);
+emit_32(1097148452);
+emit_32(1121632256);
+emit_32(3259703309);
+emit_32(1096156919);
+emit_32(1121632256);
+emit_32(3258679296);
+emit_32(1095321308);
+emit_32(1121632256);
+emit_32(3257655309);
+emit_32(1094008281);
+emit_32(1121632256);
+emit_32(3256631296);
+emit_32(1093682489);
+emit_32(1121632256);
+emit_32(3255607309);
+emit_32(1094449313);
+emit_32(1121632256);
+emit_32(3254386688);
+emit_32(1095241512);
+emit_32(1121632256);
+emit_32(3252338714);
+emit_32(1095115158);
+emit_32(1121632256);
+emit_32(3250290688);
+emit_32(1095038088);
+emit_32(1121632256);
+emit_32(3248242714);
+emit_32(1095359791);
+emit_32(1121632256);
+emit_32(3245998080);
+emit_32(1096573937);
+emit_32(1121632256);
+emit_32(3241902132);
+emit_32(1097191129);
+emit_32(1121632256);
+emit_32(3237609472);
+emit_32(1097678717);
+emit_32(1121632256);
+emit_32(3229220864);
+emit_32(1098487169);
+emit_32(1121632256);
+emit_32(0);
+emit_32(1099111334);
+emit_32(1121632256);
+emit_32(1081737216);
+emit_32(1099957115);
+emit_32(1121632256);
+emit_32(3279552512);
+emit_32(1084728636);
+emit_32(1121120289);
+emit_32(3279296528);
+emit_32(1077536872);
+emit_32(1121120289);
+emit_32(3279040545);
+emit_32(1049067472);
+emit_32(1121120289);
+emit_32(3278784496);
+emit_32(3197365821);
+emit_32(1121120289);
+emit_32(3278528512);
+emit_32(3211331864);
+emit_32(1121120289);
+emit_32(3278272528);
+emit_32(3222095455);
+emit_32(1121120289);
+emit_32(3278016545);
+emit_32(3228342367);
+emit_32(1121120289);
+emit_32(3277760496);
+emit_32(3232161071);
+emit_32(1121120289);
+emit_32(3277504512);
+emit_32(3233959337);
+emit_32(1121120289);
+emit_32(3277248528);
+emit_32(3232603256);
+emit_32(1121120289);
+emit_32(3276992545);
+emit_32(3231337561);
+emit_32(1121120289);
+emit_32(3276736496);
+emit_32(3226343236);
+emit_32(1121120289);
+emit_32(3276480512);
+emit_32(3222401429);
+emit_32(1121120289);
+emit_32(3276224528);
+emit_32(3217196088);
+emit_32(1121120289);
+emit_32(3275968545);
+emit_32(3174963708);
+emit_32(1121120289);
+emit_32(3275712496);
+emit_32(1071520772);
+emit_32(1121120289);
+emit_32(3275456512);
+emit_32(1076782233);
+emit_32(1121120289);
+emit_32(3275200528);
+emit_32(1082969209);
+emit_32(1121120289);
+emit_32(3274944545);
+emit_32(1085234364);
+emit_32(1121120289);
+emit_32(3274688496);
+emit_32(1089004246);
+emit_32(1121120289);
+emit_32(3274432512);
+emit_32(1092733108);
+emit_32(1121120289);
+emit_32(3274176528);
+emit_32(1095820326);
+emit_32(1121120289);
+emit_32(3273920545);
+emit_32(1098604085);
+emit_32(1121120289);
+emit_32(3273664496);
+emit_32(1099874855);
+emit_32(1121120289);
+emit_32(3273408512);
+emit_32(1100920809);
+emit_32(1121120289);
+emit_32(3273152528);
+emit_32(1101878893);
+emit_32(1121120289);
+emit_32(3272896545);
+emit_32(1103179284);
+emit_32(1121120289);
+emit_32(3272640496);
+emit_32(1105420196);
+emit_32(1121120289);
+emit_32(3272384512);
+emit_32(1107134828);
+emit_32(1121120289);
+emit_32(3272128528);
+emit_32(1107920526);
+emit_32(1121120289);
+emit_32(3271872545);
+emit_32(1108056762);
+emit_32(1121120289);
+emit_32(3271616496);
+emit_32(1107769583);
+emit_32(1121120289);
+emit_32(3271163904);
+emit_32(1107905112);
+emit_32(1121120289);
+emit_32(3270651937);
+emit_32(1108241573);
+emit_32(1121120289);
+emit_32(3270139970);
+emit_32(1108859578);
+emit_32(1121120289);
+emit_32(3269627871);
+emit_32(1109044049);
+emit_32(1121120289);
+emit_32(3269115904);
+emit_32(1108576331);
+emit_32(1121120289);
+emit_32(3268603937);
+emit_32(1107973793);
+emit_32(1121120289);
+emit_32(3268091970);
+emit_32(1107354478);
+emit_32(1121120289);
+emit_32(3267579911);
+emit_32(1106448273);
+emit_32(1121120289);
+emit_32(3267067904);
+emit_32(1106470135);
+emit_32(1121120289);
+emit_32(3266555911);
+emit_32(1106654580);
+emit_32(1121120289);
+emit_32(3266043904);
+emit_32(1106160386);
+emit_32(1121120289);
+emit_32(3265531911);
+emit_32(1105210009);
+emit_32(1121120289);
+emit_32(3265019904);
+emit_32(1104004514);
+emit_32(1121120289);
+emit_32(3264507911);
+emit_32(1102526231);
+emit_32(1121120289);
+emit_32(3263995904);
+emit_32(1101481692);
+emit_32(1121120289);
+emit_32(3263483911);
+emit_32(1100090337);
+emit_32(1121120289);
+emit_32(3262775296);
+emit_32(1099268882);
+emit_32(1121120289);
+emit_32(3261751309);
+emit_32(1098701288);
+emit_32(1121120289);
+emit_32(3260727296);
+emit_32(1097681968);
+emit_32(1121120289);
+emit_32(3259703309);
+emit_32(1096561774);
+emit_32(1121120289);
+emit_32(3258679296);
+emit_32(1095766953);
+emit_32(1121120289);
+emit_32(3257655309);
+emit_32(1094631765);
+emit_32(1121120289);
+emit_32(3256631296);
+emit_32(1094735364);
+emit_32(1121120289);
+emit_32(3255607309);
+emit_32(1094999291);
+emit_32(1121120289);
+emit_32(3254386688);
+emit_32(1095377722);
+emit_32(1121120289);
+emit_32(3252338714);
+emit_32(1095433191);
+emit_32(1121120289);
+emit_32(3250290688);
+emit_32(1095107399);
+emit_32(1121120289);
+emit_32(3248242714);
+emit_32(1095777544);
+emit_32(1121120289);
+emit_32(3245998080);
+emit_32(1096857472);
+emit_32(1121120289);
+emit_32(3241902132);
+emit_32(1097446352);
+emit_32(1121120289);
+emit_32(3237609472);
+emit_32(1097974940);
+emit_32(1121120289);
+emit_32(3229220864);
+emit_32(1098736416);
+emit_32(1121120289);
+emit_32(0);
+emit_32(1099338613);
+emit_32(1121120289);
+emit_32(1081737216);
+emit_32(1099935672);
+emit_32(1121120289);
+emit_32(3279552512);
+emit_32(1082712497);
+emit_32(1120608322);
+emit_32(3279296528);
+emit_32(1077291841);
+emit_32(1120608322);
+emit_32(3279040545);
+emit_32(1073741866);
+emit_32(1120608322);
+emit_32(3278784496);
+emit_32(1070338230);
+emit_32(1120608322);
+emit_32(3278528512);
+emit_32(1056781669);
+emit_32(1120608322);
+emit_32(3278272528);
+emit_32(3219431904);
+emit_32(1120608322);
+emit_32(3278016545);
+emit_32(3224861095);
+emit_32(1120608322);
+emit_32(3277760496);
+emit_32(3231719746);
+emit_32(1120608322);
+emit_32(3277504512);
+emit_32(3233844476);
+emit_32(1120608322);
+emit_32(3277248528);
+emit_32(3232334736);
+emit_32(1120608322);
+emit_32(3276992545);
+emit_32(3229801544);
+emit_32(1120608322);
+emit_32(3276736496);
+emit_32(3228638233);
+emit_32(1120608322);
+emit_32(3276480512);
+emit_32(3223489306);
+emit_32(1120608322);
+emit_32(3276224528);
+emit_32(3213418446);
+emit_32(1120608322);
+emit_32(3275968545);
+emit_32(3202678964);
+emit_32(1120608322);
+emit_32(3275712496);
+emit_32(1069745659);
+emit_32(1120608322);
+emit_32(3275456512);
+emit_32(1079646691);
+emit_32(1120608322);
+emit_32(3275200528);
+emit_32(1083145831);
+emit_32(1120608322);
+emit_32(3274944545);
+emit_32(1087983583);
+emit_32(1120608322);
+emit_32(3274688496);
+emit_32(1091238804);
+emit_32(1120608322);
+emit_32(3274432512);
+emit_32(1093823208);
+emit_32(1120608322);
+emit_32(3274176528);
+emit_32(1097286130);
+emit_32(1120608322);
+emit_32(3273920545);
+emit_32(1099742472);
+emit_32(1120608322);
+emit_32(3273664496);
+emit_32(1100695890);
+emit_32(1120608322);
+emit_32(3273408512);
+emit_32(1101406876);
+emit_32(1120608322);
+emit_32(3273152528);
+emit_32(1102194042);
+emit_32(1120608322);
+emit_32(3272896545);
+emit_32(1103115112);
+emit_32(1120608322);
+emit_32(3272640496);
+emit_32(1105064414);
+emit_32(1120608322);
+emit_32(3272384512);
+emit_32(1107025042);
+emit_32(1120608322);
+emit_32(3272128528);
+emit_32(1107923960);
+emit_32(1120608322);
+emit_32(3271872545);
+emit_32(1108173154);
+emit_32(1120608322);
+emit_32(3271616496);
+emit_32(1108080381);
+emit_32(1120608322);
+emit_32(3271163904);
+emit_32(1107879605);
+emit_32(1120608322);
+emit_32(3270651937);
+emit_32(1108128956);
+emit_32(1120608322);
+emit_32(3270139970);
+emit_32(1108688110);
+emit_32(1120608322);
+emit_32(3269627871);
+emit_32(1108797188);
+emit_32(1120608322);
+emit_32(3269115904);
+emit_32(1108405938);
+emit_32(1120608322);
+emit_32(3268603937);
+emit_32(1107934577);
+emit_32(1120608322);
+emit_32(3268091970);
+emit_32(1107323021);
+emit_32(1120608322);
+emit_32(3267579911);
+emit_32(1106810136);
+emit_32(1120608322);
+emit_32(3267067904);
+emit_32(1106638904);
+emit_32(1120608322);
+emit_32(3266555911);
+emit_32(1106673664);
+emit_32(1120608322);
+emit_32(3266043904);
+emit_32(1106080013);
+emit_32(1120608322);
+emit_32(3265531911);
+emit_32(1104833308);
+emit_32(1120608322);
+emit_32(3265019904);
+emit_32(1103684593);
+emit_32(1120608322);
+emit_32(3264507911);
+emit_32(1102392852);
+emit_32(1120608322);
+emit_32(3263995904);
+emit_32(1101073744);
+emit_32(1120608322);
+emit_32(3263483911);
+emit_32(1099963145);
+emit_32(1120608322);
+emit_32(3262775296);
+emit_32(1099506070);
+emit_32(1120608322);
+emit_32(3261751309);
+emit_32(1099320997);
+emit_32(1120608322);
+emit_32(3260727296);
+emit_32(1098604295);
+emit_32(1120608322);
+emit_32(3259703309);
+emit_32(1097529295);
+emit_32(1120608322);
+emit_32(3258679296);
+emit_32(1096142134);
+emit_32(1120608322);
+emit_32(3257655309);
+emit_32(1094301568);
+emit_32(1120608322);
+emit_32(3256631296);
+emit_32(1094016985);
+emit_32(1120608322);
+emit_32(3255607309);
+emit_32(1095156577);
+emit_32(1120608322);
+emit_32(3254386688);
+emit_32(1095833223);
+emit_32(1120608322);
+emit_32(3252338714);
+emit_32(1095183630);
+emit_32(1120608322);
+emit_32(3250290688);
+emit_32(1094555114);
+emit_32(1120608322);
+emit_32(3248242714);
+emit_32(1096488059);
+emit_32(1120608322);
+emit_32(3245998080);
+emit_32(1097556453);
+emit_32(1120608322);
+emit_32(3241902132);
+emit_32(1097820275);
+emit_32(1120608322);
+emit_32(3237609472);
+emit_32(1097925237);
+emit_32(1120608322);
+emit_32(3229220864);
+emit_32(1098971297);
+emit_32(1120608322);
+emit_32(0);
+emit_32(1099474823);
+emit_32(1120608322);
+emit_32(1081737216);
+emit_32(1099802817);
+emit_32(1120608322);
+emit_32(3279552512);
+emit_32(1082649645);
+emit_32(1120096263);
+emit_32(3279296528);
+emit_32(1081824919);
+emit_32(1120096263);
+emit_32(3279040545);
+emit_32(1078459284);
+emit_32(1120096263);
+emit_32(3278784496);
+emit_32(1074050399);
+emit_32(1120096263);
+emit_32(3278528512);
+emit_32(1053874077);
+emit_32(1120096263);
+emit_32(3278272528);
+emit_32(3211237089);
+emit_32(1120096263);
+emit_32(3278016545);
+emit_32(3223833574);
+emit_32(1120096263);
+emit_32(3277760496);
+emit_32(3229161263);
+emit_32(1120096263);
+emit_32(3277504512);
+emit_32(3233010292);
+emit_32(1120096263);
+emit_32(3277248528);
+emit_32(3229615695);
+emit_32(1120096263);
+emit_32(3276992545);
+emit_32(3222904913);
+emit_32(1120096263);
+emit_32(3276736496);
+emit_32(3222905752);
+emit_32(1120096263);
+emit_32(3276480512);
+emit_32(3220913919);
+emit_32(1120096263);
+emit_32(3276224528);
+emit_32(3216868597);
+emit_32(1120096263);
+emit_32(3275968545);
+emit_32(3184537459);
+emit_32(1120096263);
+emit_32(3275712496);
+emit_32(1071525805);
+emit_32(1120096263);
+emit_32(3275456512);
+emit_32(1080770303);
+emit_32(1120096263);
+emit_32(3275200528);
+emit_32(1084483709);
+emit_32(1120096263);
+emit_32(3274944545);
+emit_32(1089756453);
+emit_32(1120096263);
+emit_32(3274688496);
+emit_32(1092796967);
+emit_32(1120096263);
+emit_32(3274432512);
+emit_32(1095008204);
+emit_32(1120096263);
+emit_32(3274176528);
+emit_32(1098158021);
+emit_32(1120096263);
+emit_32(3273920545);
+emit_32(1100073298);
+emit_32(1120096263);
+emit_32(3273664496);
+emit_32(1101265424);
+emit_32(1120096263);
+emit_32(3273408512);
+emit_32(1101989413);
+emit_32(1120096263);
+emit_32(3273152528);
+emit_32(1102698565);
+emit_32(1120096263);
+emit_32(3272896545);
+emit_32(1103242776);
+emit_32(1120096263);
+emit_32(3272640496);
+emit_32(1105297356);
+emit_32(1120096263);
+emit_32(3272384512);
+emit_32(1106908126);
+emit_32(1120096263);
+emit_32(3272128528);
+emit_32(1107640530);
+emit_32(1120096263);
+emit_32(3271872545);
+emit_32(1108166312);
+emit_32(1120096263);
+emit_32(3271616496);
+emit_32(1108109138);
+emit_32(1120096263);
+emit_32(3271163904);
+emit_32(1108037206);
+emit_32(1120096263);
+emit_32(3270651937);
+emit_32(1107897483);
+emit_32(1120096263);
+emit_32(3270139970);
+emit_32(1108473492);
+emit_32(1120096263);
+emit_32(3269627871);
+emit_32(1108658461);
+emit_32(1120096263);
+emit_32(3269115904);
+emit_32(1108380326);
+emit_32(1120096263);
+emit_32(3268603937);
+emit_32(1107921522);
+emit_32(1120096263);
+emit_32(3268091970);
+emit_32(1106710574);
+emit_32(1120096263);
+emit_32(3267579911);
+emit_32(1106304880);
+emit_32(1120096263);
+emit_32(3267067904);
+emit_32(1106736788);
+emit_32(1120096263);
+emit_32(3266555911);
+emit_32(1106706484);
+emit_32(1120096263);
+emit_32(3266043904);
+emit_32(1105732829);
+emit_32(1120096263);
+emit_32(3265531911);
+emit_32(1104837607);
+emit_32(1120096263);
+emit_32(3265019904);
+emit_32(1103630801);
+emit_32(1120096263);
+emit_32(3264507911);
+emit_32(1101868093);
+emit_32(1120096263);
+emit_32(3263995904);
+emit_32(1100220622);
+emit_32(1120096263);
+emit_32(3263483911);
+emit_32(1100302254);
+emit_32(1120096263);
+emit_32(3262775296);
+emit_32(1100039691);
+emit_32(1120096263);
+emit_32(3261751309);
+emit_32(1099705090);
+emit_32(1120096263);
+emit_32(3260727296);
+emit_32(1099085329);
+emit_32(1120096263);
+emit_32(3259703309);
+emit_32(1097718982);
+emit_32(1120096263);
+emit_32(3258679296);
+emit_32(1096390122);
+emit_32(1120096263);
+emit_32(3257655309);
+emit_32(1094580175);
+emit_32(1120096263);
+emit_32(3256631296);
+emit_32(1094186959);
+emit_32(1120096263);
+emit_32(3255607309);
+emit_32(1094206987);
+emit_32(1120096263);
+emit_32(3254386688);
+emit_32(1095299288);
+emit_32(1120096263);
+emit_32(3252338714);
+emit_32(1094941095);
+emit_32(1120096263);
+emit_32(3250290688);
+emit_32(1093925968);
+emit_32(1120096263);
+emit_32(3248242714);
+emit_32(1096010747);
+emit_32(1120096263);
+emit_32(3245998080);
+emit_32(1096357826);
+emit_32(1120096263);
+emit_32(3241902132);
+emit_32(1096902246);
+emit_32(1120096263);
+emit_32(3237609472);
+emit_32(1097501612);
+emit_32(1120096263);
+emit_32(3229220864);
+emit_32(1097992765);
+emit_32(1120096263);
+emit_32(0);
+emit_32(1098723413);
+emit_32(1120096263);
+emit_32(1081737216);
+emit_32(1099965451);
+emit_32(1120096263);
+emit_32(3279552512);
+emit_32(1084093765);
+emit_32(1119584256);
+emit_32(3279296528);
+emit_32(1080036510);
+emit_32(1119584256);
+emit_32(3279040545);
+emit_32(1077455125);
+emit_32(1119584256);
+emit_32(3278784496);
+emit_32(1074567724);
+emit_32(1119584256);
+emit_32(3278528512);
+emit_32(1069156863);
+emit_32(1119584256);
+emit_32(3278272528);
+emit_32(3189431842);
+emit_32(1119584256);
+emit_32(3278016545);
+emit_32(3213554929);
+emit_32(1119584256);
+emit_32(3277760496);
+emit_32(3222450418);
+emit_32(1119584256);
+emit_32(3277504512);
+emit_32(3228929486);
+emit_32(1119584256);
+emit_32(3277248528);
+emit_32(3224323217);
+emit_32(1119584256);
+emit_32(3276992545);
+emit_32(3222046465);
+emit_32(1119584256);
+emit_32(3276736496);
+emit_32(3194181137);
+emit_32(1119584256);
+emit_32(3276480512);
+emit_32(3186726281);
+emit_32(1119584256);
+emit_32(3276224528);
+emit_32(3191098290);
+emit_32(1119584256);
+emit_32(3275968545);
+emit_32(1068055354);
+emit_32(1119584256);
+emit_32(3275712496);
+emit_32(1076438426);
+emit_32(1119584256);
+emit_32(3275456512);
+emit_32(1080984464);
+emit_32(1119584256);
+emit_32(3275200528);
+emit_32(1085878651);
+emit_32(1119584256);
+emit_32(3274944545);
+emit_32(1091668447);
+emit_32(1119584256);
+emit_32(3274688496);
+emit_32(1094171545);
+emit_32(1119584256);
+emit_32(3274432512);
+emit_32(1095963561);
+emit_32(1119584256);
+emit_32(3274176528);
+emit_32(1098572104);
+emit_32(1119584256);
+emit_32(3273920545);
+emit_32(1099948045);
+emit_32(1119584256);
+emit_32(3273664496);
+emit_32(1101407873);
+emit_32(1119584256);
+emit_32(3273408512);
+emit_32(1102835876);
+emit_32(1119584256);
+emit_32(3273152528);
+emit_32(1103744310);
+emit_32(1119584256);
+emit_32(3272896545);
+emit_32(1104117655);
+emit_32(1119584256);
+emit_32(3272640496);
+emit_32(1105300868);
+emit_32(1119584256);
+emit_32(3272384512);
+emit_32(1107290803);
+emit_32(1119584256);
+emit_32(3272128528);
+emit_32(1107707508);
+emit_32(1119584256);
+emit_32(3271872545);
+emit_32(1108008685);
+emit_32(1119584256);
+emit_32(3271616496);
+emit_32(1108120935);
+emit_32(1119584256);
+emit_32(3271163904);
+emit_32(1108077052);
+emit_32(1119584256);
+emit_32(3270651937);
+emit_32(1107924641);
+emit_32(1119584256);
+emit_32(3270139970);
+emit_32(1108147044);
+emit_32(1119584256);
+emit_32(3269627871);
+emit_32(1108350311);
+emit_32(1119584256);
+emit_32(3269115904);
+emit_32(1108146651);
+emit_32(1119584256);
+emit_32(3268603937);
+emit_32(1107677466);
+emit_32(1119584256);
+emit_32(3268091970);
+emit_32(1106442034);
+emit_32(1119584256);
+emit_32(3267579911);
+emit_32(1106619400);
+emit_32(1119584256);
+emit_32(3267067904);
+emit_32(1106902463);
+emit_32(1119584256);
+emit_32(3266555911);
+emit_32(1106534780);
+emit_32(1119584256);
+emit_32(3266043904);
+emit_32(1105512733);
+emit_32(1119584256);
+emit_32(3265531911);
+emit_32(1104509036);
+emit_32(1119584256);
+emit_32(3265019904);
+emit_32(1103188250);
+emit_32(1119584256);
+emit_32(3264507911);
+emit_32(1101665927);
+emit_32(1119584256);
+emit_32(3263995904);
+emit_32(1100910743);
+emit_32(1119584256);
+emit_32(3263483911);
+emit_32(1100740139);
+emit_32(1119584256);
+emit_32(3262775296);
+emit_32(1100127981);
+emit_32(1119584256);
+emit_32(3261751309);
+emit_32(1100010121);
+emit_32(1119584256);
+emit_32(3260727296);
+emit_32(1099477968);
+emit_32(1119584256);
+emit_32(3259703309);
+emit_32(1097874171);
+emit_32(1119584256);
+emit_32(3258679296);
+emit_32(1096345453);
+emit_32(1119584256);
+emit_32(3257655309);
+emit_32(1093686893);
+emit_32(1119584256);
+emit_32(3256631296);
+emit_32(1093873015);
+emit_32(1119584256);
+emit_32(3255607309);
+emit_32(1093045794);
+emit_32(1119584256);
+emit_32(3254386688);
+emit_32(1093896189);
+emit_32(1119584256);
+emit_32(3252338714);
+emit_32(1094140717);
+emit_32(1119584256);
+emit_32(3250290688);
+emit_32(1094085666);
+emit_32(1119584256);
+emit_32(3248242714);
+emit_32(1094959130);
+emit_32(1119584256);
+emit_32(3245998080);
+emit_32(1096322698);
+emit_32(1119584256);
+emit_32(3241902132);
+emit_32(1097101161);
+emit_32(1119584256);
+emit_32(3237609472);
+emit_32(1096857367);
+emit_32(1119584256);
+emit_32(3229220864);
+emit_32(1096976905);
+emit_32(1119584256);
+emit_32(0);
+emit_32(1098201537);
+emit_32(1119584256);
+emit_32(1081737216);
+emit_32(1099519545);
+emit_32(1119584256);
+emit_32(3279552512);
+emit_32(1085076910);
+emit_32(1119072263);
+emit_32(3279296528);
+emit_32(1081809987);
+emit_32(1119072263);
+emit_32(3279040545);
+emit_32(1077014597);
+emit_32(1119072263);
+emit_32(3278784496);
+emit_32(1075155304);
+emit_32(1119072263);
+emit_32(3278528512);
+emit_32(1069179596);
+emit_32(1119072263);
+emit_32(3278272528);
+emit_32(1056541889);
+emit_32(1119072263);
+emit_32(3278016545);
+emit_32(1062243693);
+emit_32(1119072263);
+emit_32(3277760496);
+emit_32(3195663773);
+emit_32(1119072263);
+emit_32(3277504512);
+emit_32(3221620659);
+emit_32(1119072263);
+emit_32(3277248528);
+emit_32(3216900390);
+emit_32(1119072263);
+emit_32(3276992545);
+emit_32(3207733134);
+emit_32(1119072263);
+emit_32(3276736496);
+emit_32(1061029962);
+emit_32(1119072263);
+emit_32(3276480512);
+emit_32(1067919627);
+emit_32(1119072263);
+emit_32(3276224528);
+emit_32(1069464557);
+emit_32(1119072263);
+emit_32(3275968545);
+emit_32(1076127125);
+emit_32(1119072263);
+emit_32(3275712496);
+emit_32(1080969365);
+emit_32(1119072263);
+emit_32(3275456512);
+emit_32(1083510358);
+emit_32(1119072263);
+emit_32(3275200528);
+emit_32(1088854216);
+emit_32(1119072263);
+emit_32(3274944545);
+emit_32(1092461118);
+emit_32(1119072263);
+emit_32(3274688496);
+emit_32(1095602746);
+emit_32(1119072263);
+emit_32(3274432512);
+emit_32(1097477495);
+emit_32(1119072263);
+emit_32(3274176528);
+emit_32(1099224108);
+emit_32(1119072263);
+emit_32(3273920545);
+emit_32(1100863662);
+emit_32(1119072263);
+emit_32(3273664496);
+emit_32(1102423943);
+emit_32(1119072263);
+emit_32(3273408512);
+emit_32(1103322677);
+emit_32(1119072263);
+emit_32(3273152528);
+emit_32(1104096054);
+emit_32(1119072263);
+emit_32(3272896545);
+emit_32(1104740300);
+emit_32(1119072263);
+emit_32(3272640496);
+emit_32(1105730627);
+emit_32(1119072263);
+emit_32(3272384512);
+emit_32(1107106673);
+emit_32(1119072263);
+emit_32(3272128528);
+emit_32(1107798052);
+emit_32(1119072263);
+emit_32(3271872545);
+emit_32(1107907497);
+emit_32(1119072263);
+emit_32(3271616496);
+emit_32(1108367272);
+emit_32(1119072263);
+emit_32(3271163904);
+emit_32(1108217273);
+emit_32(1119072263);
+emit_32(3270651937);
+emit_32(1108004962);
+emit_32(1119072263);
+emit_32(3270139970);
+emit_32(1107737890);
+emit_32(1119072263);
+emit_32(3269627871);
+emit_32(1107889331);
+emit_32(1119072263);
+emit_32(3269115904);
+emit_32(1107876826);
+emit_32(1119072263);
+emit_32(3268603937);
+emit_32(1107372933);
+emit_32(1119072263);
+emit_32(3268091970);
+emit_32(1106504004);
+emit_32(1119072263);
+emit_32(3267579911);
+emit_32(1106696575);
+emit_32(1119072263);
+emit_32(3267067904);
+emit_32(1107019275);
+emit_32(1119072263);
+emit_32(3266555911);
+emit_32(1106385201);
+emit_32(1119072263);
+emit_32(3266043904);
+emit_32(1105441482);
+emit_32(1119072263);
+emit_32(3265531911);
+emit_32(1104471235);
+emit_32(1119072263);
+emit_32(3265019904);
+emit_32(1103193965);
+emit_32(1119072263);
+emit_32(3264507911);
+emit_32(1102302518);
+emit_32(1119072263);
+emit_32(3263995904);
+emit_32(1101174984);
+emit_32(1119072263);
+emit_32(3263483911);
+emit_32(1100736365);
+emit_32(1119072263);
+emit_32(3262775296);
+emit_32(1100294232);
+emit_32(1119072263);
+emit_32(3261751309);
+emit_32(1099900282);
+emit_32(1119072263);
+emit_32(3260727296);
+emit_32(1099000447);
+emit_32(1119072263);
+emit_32(3259703309);
+emit_32(1098125096);
+emit_32(1119072263);
+emit_32(3258679296);
+emit_32(1096310535);
+emit_32(1119072263);
+emit_32(3257655309);
+emit_32(1094547669);
+emit_32(1119072263);
+emit_32(3256631296);
+emit_32(1092850024);
+emit_32(1119072263);
+emit_32(3255607309);
+emit_32(1092138471);
+emit_32(1119072263);
+emit_32(3254386688);
+emit_32(1092338194);
+emit_32(1119072263);
+emit_32(3252338714);
+emit_32(1093356172);
+emit_32(1119072263);
+emit_32(3250290688);
+emit_32(1094627885);
+emit_32(1119072263);
+emit_32(3248242714);
+emit_32(1095982750);
+emit_32(1119072263);
+emit_32(3245998080);
+emit_32(1095846540);
+emit_32(1119072263);
+emit_32(3241902132);
+emit_32(1095563949);
+emit_32(1119072263);
+emit_32(3237609472);
+emit_32(1095549269);
+emit_32(1119072263);
+emit_32(3229220864);
+emit_32(1096920492);
+emit_32(1119072263);
+emit_32(0);
+emit_32(1097824888);
+emit_32(1119072263);
+emit_32(1081737216);
+emit_32(1098532992);
+emit_32(1119072263);
+emit_32(3279552512);
+emit_32(1086774827);
+emit_32(1118560256);
+emit_32(3279296528);
+emit_32(1083515077);
+emit_32(1118560256);
+emit_32(3279040545);
+emit_32(1079457780);
+emit_32(1118560256);
+emit_32(3278784496);
+emit_32(1073525901);
+emit_32(1118560256);
+emit_32(3278528512);
+emit_32(1058489607);
+emit_32(1118560256);
+emit_32(3278272528);
+emit_32(1073793078);
+emit_32(1118560256);
+emit_32(3278016545);
+emit_32(1074379023);
+emit_32(1118560256);
+emit_32(3277760496);
+emit_32(1061663235);
+emit_32(1118560256);
+emit_32(3277504512);
+emit_32(3201930600);
+emit_32(1118560256);
+emit_32(3277248528);
+emit_32(3204664162);
+emit_32(1118560256);
+emit_32(3276992545);
+emit_32(995186421);
+emit_32(1118560256);
+emit_32(3276736496);
+emit_32(1065832625);
+emit_32(1118560256);
+emit_32(3276480512);
+emit_32(1074242037);
+emit_32(1118560256);
+emit_32(3276224528);
+emit_32(1075791245);
+emit_32(1118560256);
+emit_32(3275968545);
+emit_32(1081708653);
+emit_32(1118560256);
+emit_32(3275712496);
+emit_32(1085735415);
+emit_32(1118560256);
+emit_32(3275456512);
+emit_32(1087198703);
+emit_32(1118560256);
+emit_32(3275200528);
+emit_32(1090399397);
+emit_32(1118560256);
+emit_32(3274944545);
+emit_32(1093618840);
+emit_32(1118560256);
+emit_32(3274688496);
+emit_32(1095966497);
+emit_32(1118560256);
+emit_32(3274432512);
+emit_32(1098679792);
+emit_32(1118560256);
+emit_32(3274176528);
+emit_32(1099796369);
+emit_32(1118560256);
+emit_32(3273920545);
+emit_32(1101123342);
+emit_32(1118560256);
+emit_32(3273664496);
+emit_32(1102326582);
+emit_32(1118560256);
+emit_32(3273408512);
+emit_32(1103526783);
+emit_32(1118560256);
+emit_32(3273152528);
+emit_32(1104500018);
+emit_32(1118560256);
+emit_32(3272896545);
+emit_32(1105044544);
+emit_32(1118560256);
+emit_32(3272640496);
+emit_32(1105840518);
+emit_32(1118560256);
+emit_32(3272384512);
+emit_32(1107014661);
+emit_32(1118560256);
+emit_32(3272128528);
+emit_32(1107845579);
+emit_32(1118560256);
+emit_32(3271872545);
+emit_32(1108007295);
+emit_32(1118560256);
+emit_32(3271616496);
+emit_32(1108389711);
+emit_32(1118560256);
+emit_32(3271163904);
+emit_32(1108469167);
+emit_32(1118560256);
+emit_32(3270651937);
+emit_32(1108186681);
+emit_32(1118560256);
+emit_32(3270139970);
+emit_32(1107912425);
+emit_32(1118560256);
+emit_32(3269627871);
+emit_32(1107694060);
+emit_32(1118560256);
+emit_32(3269115904);
+emit_32(1107557771);
+emit_32(1118560256);
+emit_32(3268603937);
+emit_32(1107185212);
+emit_32(1118560256);
+emit_32(3268091970);
+emit_32(1106863509);
+emit_32(1118560256);
+emit_32(3267579911);
+emit_32(1106786176);
+emit_32(1118560256);
+emit_32(3267067904);
+emit_32(1107049998);
+emit_32(1118560256);
+emit_32(3266555911);
+emit_32(1106706117);
+emit_32(1118560256);
+emit_32(3266043904);
+emit_32(1105274287);
+emit_32(1118560256);
+emit_32(3265531911);
+emit_32(1104108375);
+emit_32(1118560256);
+emit_32(3265019904);
+emit_32(1103313974);
+emit_32(1118560256);
+emit_32(3264507911);
+emit_32(1102052537);
+emit_32(1118560256);
+emit_32(3263995904);
+emit_32(1101026348);
+emit_32(1118560256);
+emit_32(3263483911);
+emit_32(1100975912);
+emit_32(1118560256);
+emit_32(3262775296);
+emit_32(1100160329);
+emit_32(1118560256);
+emit_32(3261751309);
+emit_32(1099423862);
+emit_32(1118560256);
+emit_32(3260727296);
+emit_32(1098504471);
+emit_32(1118560256);
+emit_32(3259703309);
+emit_32(1097455580);
+emit_32(1118560256);
+emit_32(3258679296);
+emit_32(1095484886);
+emit_32(1118560256);
+emit_32(3257655309);
+emit_32(1094881011);
+emit_32(1118560256);
+emit_32(3256631296);
+emit_32(1092725768);
+emit_32(1118560256);
+emit_32(3255607309);
+emit_32(1092211609);
+emit_32(1118560256);
+emit_32(3254386688);
+emit_32(1092698400);
+emit_32(1118560256);
+emit_32(3252338714);
+emit_32(1092845620);
+emit_32(1118560256);
+emit_32(3250290688);
+emit_32(1094266651);
+emit_32(1118560256);
+emit_32(3248242714);
+emit_32(1094578287);
+emit_32(1118560256);
+emit_32(3245998080);
+emit_32(1094619916);
+emit_32(1118560256);
+emit_32(3241902132);
+emit_32(1094198493);
+emit_32(1118560256);
+emit_32(3237609472);
+emit_32(1096808294);
+emit_32(1118560256);
+emit_32(3229220864);
+emit_32(1097696857);
+emit_32(1118560256);
+emit_32(0);
+emit_32(1097643170);
+emit_32(1118560256);
+emit_32(1081737216);
+emit_32(1098479410);
+emit_32(1118560256);
+emit_32(3279552512);
+emit_32(1088302854);
+emit_32(1118048263);
+emit_32(3279296528);
+emit_32(1083747986);
+emit_32(1118048263);
+emit_32(3279040545);
+emit_32(1080542594);
+emit_32(1118048263);
+emit_32(3278784496);
+emit_32(1075852566);
+emit_32(1118048263);
+emit_32(3278528512);
+emit_32(1068737600);
+emit_32(1118048263);
+emit_32(3278272528);
+emit_32(1073988491);
+emit_32(1118048263);
+emit_32(3278016545);
+emit_32(1075493743);
+emit_32(1118048263);
+emit_32(3277760496);
+emit_32(1067344336);
+emit_32(1118048263);
+emit_32(3277504512);
+emit_32(1070348213);
+emit_32(1118048263);
+emit_32(3277248528);
+emit_32(1067476624);
+emit_32(1118048263);
+emit_32(3276992545);
+emit_32(1069849007);
+emit_32(1118048263);
+emit_32(3276736496);
+emit_32(1075129006);
+emit_32(1118048263);
+emit_32(3276480512);
+emit_32(1076245656);
+emit_32(1118048263);
+emit_32(3276224528);
+emit_32(1082664933);
+emit_32(1118048263);
+emit_32(3275968545);
+emit_32(1086033987);
+emit_32(1118048263);
+emit_32(3275712496);
+emit_32(1089567583);
+emit_32(1118048263);
+emit_32(3275456512);
+emit_32(1091286073);
+emit_32(1118048263);
+emit_32(3275200528);
+emit_32(1092256918);
+emit_32(1118048263);
+emit_32(3274944545);
+emit_32(1094223449);
+emit_32(1118048263);
+emit_32(3274688496);
+emit_32(1097132304);
+emit_32(1118048263);
+emit_32(3274432512);
+emit_32(1099059115);
+emit_32(1118048263);
+emit_32(3274176528);
+emit_32(1099766379);
+emit_32(1118048263);
+emit_32(3273920545);
+emit_32(1101236640);
+emit_32(1118048263);
+emit_32(3273664496);
+emit_32(1102554438);
+emit_32(1118048263);
+emit_32(3273408512);
+emit_32(1103664565);
+emit_32(1118048263);
+emit_32(3273152528);
+emit_32(1104878292);
+emit_32(1118048263);
+emit_32(3272896545);
+emit_32(1105616175);
+emit_32(1118048263);
+emit_32(3272640496);
+emit_32(1106382684);
+emit_32(1118048263);
+emit_32(3272384512);
+emit_32(1107450606);
+emit_32(1118048263);
+emit_32(3272128528);
+emit_32(1107817503);
+emit_32(1118048263);
+emit_32(3271872545);
+emit_32(1107947369);
+emit_32(1118048263);
+emit_32(3271616496);
+emit_32(1108283805);
+emit_32(1118048263);
+emit_32(3271163904);
+emit_32(1108371099);
+emit_32(1118048263);
+emit_32(3270651937);
+emit_32(1108326954);
+emit_32(1118048263);
+emit_32(3270139970);
+emit_32(1108075217);
+emit_32(1118048263);
+emit_32(3269627871);
+emit_32(1107641945);
+emit_32(1118048263);
+emit_32(3269115904);
+emit_32(1107268836);
+emit_32(1118048263);
+emit_32(3268603937);
+emit_32(1107004595);
+emit_32(1118048263);
+emit_32(3268091970);
+emit_32(1106919660);
+emit_32(1118048263);
+emit_32(3267579911);
+emit_32(1107317228);
+emit_32(1118048263);
+emit_32(3267067904);
+emit_32(1106983623);
+emit_32(1118048263);
+emit_32(3266555911);
+emit_32(1106392855);
+emit_32(1118048263);
+emit_32(3266043904);
+emit_32(1105271141);
+emit_32(1118048263);
+emit_32(3265531911);
+emit_32(1103878632);
+emit_32(1118048263);
+emit_32(3265019904);
+emit_32(1103197949);
+emit_32(1118048263);
+emit_32(3264507911);
+emit_32(1102375708);
+emit_32(1118048263);
+emit_32(3263995904);
+emit_32(1100616040);
+emit_32(1118048263);
+emit_32(3263483911);
+emit_32(1100311953);
+emit_32(1118048263);
+emit_32(3262775296);
+emit_32(1099845547);
+emit_32(1118048263);
+emit_32(3261751309);
+emit_32(1099214619);
+emit_32(1118048263);
+emit_32(3260727296);
+emit_32(1097535901);
+emit_32(1118048263);
+emit_32(3259703309);
+emit_32(1095712847);
+emit_32(1118048263);
+emit_32(3258679296);
+emit_32(1094870840);
+emit_32(1118048263);
+emit_32(3257655309);
+emit_32(1094035230);
+emit_32(1118048263);
+emit_32(3256631296);
+emit_32(1092438144);
+emit_32(1118048263);
+emit_32(3255607309);
+emit_32(1092567024);
+emit_32(1118048263);
+emit_32(3254386688);
+emit_32(1093416360);
+emit_32(1118048263);
+emit_32(3252338714);
+emit_32(1092845516);
+emit_32(1118048263);
+emit_32(3250290688);
+emit_32(1092728599);
+emit_32(1118048263);
+emit_32(3248242714);
+emit_32(1093978292);
+emit_32(1118048263);
+emit_32(3245998080);
+emit_32(1094248091);
+emit_32(1118048263);
+emit_32(3241902132);
+emit_32(1096725352);
+emit_32(1118048263);
+emit_32(3237609472);
+emit_32(1098118070);
+emit_32(1118048263);
+emit_32(3229220864);
+emit_32(1098579024);
+emit_32(1118048263);
+emit_32(0);
+emit_32(1098875562);
+emit_32(1118048263);
+emit_32(1081737216);
+emit_32(1099413271);
+emit_32(1118048263);
+emit_32(3279552512);
+emit_32(1087158039);
+emit_32(1117536256);
+emit_32(3279296528);
+emit_32(1084423731);
+emit_32(1117536256);
+emit_32(3279040545);
+emit_32(1083252471);
+emit_32(1117536256);
+emit_32(3278784496);
+emit_32(1080977921);
+emit_32(1117536256);
+emit_32(3278528512);
+emit_32(1078047193);
+emit_32(1117536256);
+emit_32(3278272528);
+emit_32(1078022405);
+emit_32(1117536256);
+emit_32(3278016545);
+emit_32(1081630052);
+emit_32(1117536256);
+emit_32(3277760496);
+emit_32(1083124105);
+emit_32(1117536256);
+emit_32(3277504512);
+emit_32(1081459553);
+emit_32(1117536256);
+emit_32(3277248528);
+emit_32(1076823379);
+emit_32(1117536256);
+emit_32(3276992545);
+emit_32(1083284243);
+emit_32(1117536256);
+emit_32(3276736496);
+emit_32(1084323613);
+emit_32(1117536256);
+emit_32(3276480512);
+emit_32(1083093801);
+emit_32(1117536256);
+emit_32(3276224528);
+emit_32(1084912430);
+emit_32(1117536256);
+emit_32(3275968545);
+emit_32(1088711106);
+emit_32(1117536256);
+emit_32(3275712496);
+emit_32(1091460892);
+emit_32(1117536256);
+emit_32(3275456512);
+emit_32(1093026290);
+emit_32(1117536256);
+emit_32(3275200528);
+emit_32(1094050539);
+emit_32(1117536256);
+emit_32(3274944545);
+emit_32(1096188481);
+emit_32(1117536256);
+emit_32(3274688496);
+emit_32(1099085539);
+emit_32(1117536256);
+emit_32(3274432512);
+emit_32(1099851891);
+emit_32(1117536256);
+emit_32(3274176528);
+emit_32(1100504367);
+emit_32(1117536256);
+emit_32(3273920545);
+emit_32(1101748136);
+emit_32(1117536256);
+emit_32(3273664496);
+emit_32(1102868644);
+emit_32(1117536256);
+emit_32(3273408512);
+emit_32(1103833491);
+emit_32(1117536256);
+emit_32(3273152528);
+emit_32(1104656833);
+emit_32(1117536256);
+emit_32(3272896545);
+emit_32(1105628706);
+emit_32(1117536256);
+emit_32(3272640496);
+emit_32(1107011043);
+emit_32(1117536256);
+emit_32(3272384512);
+emit_32(1107650124);
+emit_32(1117536256);
+emit_32(3272128528);
+emit_32(1107880732);
+emit_32(1117536256);
+emit_32(3271872545);
+emit_32(1107976887);
+emit_32(1117536256);
+emit_32(3271616496);
+emit_32(1108276648);
+emit_32(1117536256);
+emit_32(3271163904);
+emit_32(1108202645);
+emit_32(1117536256);
+emit_32(3270651937);
+emit_32(1108292036);
+emit_32(1117536256);
+emit_32(3270139970);
+emit_32(1107942205);
+emit_32(1117536256);
+emit_32(3269627871);
+emit_32(1107800883);
+emit_32(1117536256);
+emit_32(3269115904);
+emit_32(1107311303);
+emit_32(1117536256);
+emit_32(3268603937);
+emit_32(1107125495);
+emit_32(1117536256);
+emit_32(3268091970);
+emit_32(1107112755);
+emit_32(1117536256);
+emit_32(3267579911);
+emit_32(1107267997);
+emit_32(1117536256);
+emit_32(3267067904);
+emit_32(1106890510);
+emit_32(1117536256);
+emit_32(3266555911);
+emit_32(1106494148);
+emit_32(1117536256);
+emit_32(3266043904);
+emit_32(1105071650);
+emit_32(1117536256);
+emit_32(3265531911);
+emit_32(1103864948);
+emit_32(1117536256);
+emit_32(3265019904);
+emit_32(1102783028);
+emit_32(1117536256);
+emit_32(3264507911);
+emit_32(1101893154);
+emit_32(1117536256);
+emit_32(3263995904);
+emit_32(1100313684);
+emit_32(1117536256);
+emit_32(3263483911);
+emit_32(1099645112);
+emit_32(1117536256);
+emit_32(3262775296);
+emit_32(1099500985);
+emit_32(1117536256);
+emit_32(3261751309);
+emit_32(1099174668);
+emit_32(1117536256);
+emit_32(3260727296);
+emit_32(1097807901);
+emit_32(1117536256);
+emit_32(3259703309);
+emit_32(1096000995);
+emit_32(1117536256);
+emit_32(3258679296);
+emit_32(1094151098);
+emit_32(1117536256);
+emit_32(3257655309);
+emit_32(1093022725);
+emit_32(1117536256);
+emit_32(3256631296);
+emit_32(1092315356);
+emit_32(1117536256);
+emit_32(3255607309);
+emit_32(1092666209);
+emit_32(1117536256);
+emit_32(3254386688);
+emit_32(1092956979);
+emit_32(1117536256);
+emit_32(3252338714);
+emit_32(1092948591);
+emit_32(1117536256);
+emit_32(3250290688);
+emit_32(1093567880);
+emit_32(1117536256);
+emit_32(3248242714);
+emit_32(1094483496);
+emit_32(1117536256);
+emit_32(3245998080);
+emit_32(1097010250);
+emit_32(1117536256);
+emit_32(3241902132);
+emit_32(1098491888);
+emit_32(1117536256);
+emit_32(3237609472);
+emit_32(1098958976);
+emit_32(1117536256);
+emit_32(3229220864);
+emit_32(1099244503);
+emit_32(1117536256);
+emit_32(0);
+emit_32(1099580677);
+emit_32(1117536256);
+emit_32(1081737216);
+emit_32(1100388447);
+emit_32(1117536256);
+emit_32(3279552512);
+emit_32(1086400066);
+emit_32(1117024263);
+emit_32(3279296528);
+emit_32(1084596809);
+emit_32(1117024263);
+emit_32(3279040545);
+emit_32(1080887240);
+emit_32(1117024263);
+emit_32(3278784496);
+emit_32(1080830198);
+emit_32(1117024263);
+emit_32(3278528512);
+emit_32(1083401537);
+emit_32(1117024263);
+emit_32(3278272528);
+emit_32(1083235254);
+emit_32(1117024263);
+emit_32(3278016545);
+emit_32(1085484554);
+emit_32(1117024263);
+emit_32(3277760496);
+emit_32(1086866577);
+emit_32(1117024263);
+emit_32(3277504512);
+emit_32(1084469113);
+emit_32(1117024263);
+emit_32(3277248528);
+emit_32(1083540599);
+emit_32(1117024263);
+emit_32(3276992545);
+emit_32(1085825048);
+emit_32(1117024263);
+emit_32(3276736496);
+emit_32(1088012125);
+emit_32(1117024263);
+emit_32(3276480512);
+emit_32(1088318771);
+emit_32(1117024263);
+emit_32(3276224528);
+emit_32(1089174619);
+emit_32(1117024263);
+emit_32(3275968545);
+emit_32(1091189594);
+emit_32(1117024263);
+emit_32(3275712496);
+emit_32(1093050722);
+emit_32(1117024263);
+emit_32(3275456512);
+emit_32(1094514639);
+emit_32(1117024263);
+emit_32(3275200528);
+emit_32(1096242482);
+emit_32(1117024263);
+emit_32(3274944545);
+emit_32(1098453090);
+emit_32(1117024263);
+emit_32(3274688496);
+emit_32(1100090861);
+emit_32(1117024263);
+emit_32(3274432512);
+emit_32(1100571319);
+emit_32(1117024263);
+emit_32(3274176528);
+emit_32(1101691512);
+emit_32(1117024263);
+emit_32(3273920545);
+emit_32(1102911059);
+emit_32(1117024263);
+emit_32(3273664496);
+emit_32(1103791600);
+emit_32(1117024263);
+emit_32(3273408512);
+emit_32(1105004541);
+emit_32(1117024263);
+emit_32(3273152528);
+emit_32(1105668499);
+emit_32(1117024263);
+emit_32(3272896545);
+emit_32(1106514962);
+emit_32(1117024263);
+emit_32(3272640496);
+emit_32(1107399593);
+emit_32(1117024263);
+emit_32(3272384512);
+emit_32(1107645563);
+emit_32(1117024263);
+emit_32(3272128528);
+emit_32(1107768351);
+emit_32(1117024263);
+emit_32(3271872545);
+emit_32(1108103738);
+emit_32(1117024263);
+emit_32(3271616496);
+emit_32(1108013744);
+emit_32(1117024263);
+emit_32(3271163904);
+emit_32(1107916384);
+emit_32(1117024263);
+emit_32(3270651937);
+emit_32(1107875778);
+emit_32(1117024263);
+emit_32(3270139970);
+emit_32(1107601523);
+emit_32(1117024263);
+emit_32(3269627871);
+emit_32(1107312378);
+emit_32(1117024263);
+emit_32(3269115904);
+emit_32(1107317935);
+emit_32(1117024263);
+emit_32(3268603937);
+emit_32(1107418363);
+emit_32(1117024263);
+emit_32(3268091970);
+emit_32(1107103056);
+emit_32(1117024263);
+emit_32(3267579911);
+emit_32(1106756135);
+emit_32(1117024263);
+emit_32(3267067904);
+emit_32(1106586580);
+emit_32(1117024263);
+emit_32(3266555911);
+emit_32(1106229068);
+emit_32(1117024263);
+emit_32(3266043904);
+emit_32(1104905136);
+emit_32(1117024263);
+emit_32(3265531911);
+emit_32(1103773408);
+emit_32(1117024263);
+emit_32(3265019904);
+emit_32(1102876508);
+emit_32(1117024263);
+emit_32(3264507911);
+emit_32(1101347160);
+emit_32(1117024263);
+emit_32(3263995904);
+emit_32(1100029362);
+emit_32(1117024263);
+emit_32(3263483911);
+emit_32(1099777180);
+emit_32(1117024263);
+emit_32(3262775296);
+emit_32(1099578632);
+emit_32(1117024263);
+emit_32(3261751309);
+emit_32(1099224370);
+emit_32(1117024263);
+emit_32(3260727296);
+emit_32(1097535377);
+emit_32(1117024263);
+emit_32(3259703309);
+emit_32(1095910398);
+emit_32(1117024263);
+emit_32(3258679296);
+emit_32(1093599127);
+emit_32(1117024263);
+emit_32(3257655309);
+emit_32(1091981646);
+emit_32(1117024263);
+emit_32(3256631296);
+emit_32(1091797841);
+emit_32(1117024263);
+emit_32(3255607309);
+emit_32(1092352737);
+emit_32(1117024263);
+emit_32(3254386688);
+emit_32(1093028492);
+emit_32(1117024263);
+emit_32(3252338714);
+emit_32(1093454633);
+emit_32(1117024263);
+emit_32(3250290688);
+emit_32(1094245469);
+emit_32(1117024263);
+emit_32(3248242714);
+emit_32(1096330038);
+emit_32(1117024263);
+emit_32(3245998080);
+emit_32(1098523450);
+emit_32(1117024263);
+emit_32(3241902132);
+emit_32(1099109289);
+emit_32(1117024263);
+emit_32(3237609472);
+emit_32(1099818861);
+emit_32(1117024263);
+emit_32(3229220864);
+emit_32(1099945738);
+emit_32(1117024263);
+emit_32(0);
+emit_32(1100568016);
+emit_32(1117024263);
+emit_32(1081737216);
+emit_32(1101362836);
+emit_32(1117024263);
+emit_32(3279552512);
+emit_32(1085174427);
+emit_32(1116512256);
+emit_32(3279296528);
+emit_32(1083887405);
+emit_32(1116512256);
+emit_32(3279040545);
+emit_32(1080456611);
+emit_32(1116512256);
+emit_32(3278784496);
+emit_32(1079046318);
+emit_32(1116512256);
+emit_32(3278528512);
+emit_32(1082259302);
+emit_32(1116512256);
+emit_32(3278272528);
+emit_32(1084889550);
+emit_32(1116512256);
+emit_32(3278016545);
+emit_32(1087704851);
+emit_32(1116512256);
+emit_32(3277760496);
+emit_32(1087804025);
+emit_32(1116512256);
+emit_32(3277504512);
+emit_32(1088280498);
+emit_32(1116512256);
+emit_32(3277248528);
+emit_32(1088103981);
+emit_32(1116512256);
+emit_32(3276992545);
+emit_32(1088351004);
+emit_32(1116512256);
+emit_32(3276736496);
+emit_32(1089973843);
+emit_32(1116512256);
+emit_32(3276480512);
+emit_32(1091239926);
+emit_32(1116512256);
+emit_32(3276224528);
+emit_32(1091632890);
+emit_32(1116512256);
+emit_32(3275968545);
+emit_32(1092700393);
+emit_32(1116512256);
+emit_32(3275712496);
+emit_32(1094925156);
+emit_32(1116512256);
+emit_32(3275456512);
+emit_32(1096876556);
+emit_32(1116512256);
+emit_32(3275200528);
+emit_32(1098626630);
+emit_32(1116512256);
+emit_32(3274944545);
+emit_32(1100164471);
+emit_32(1116512256);
+emit_32(3274688496);
+emit_32(1100745487);
+emit_32(1116512256);
+emit_32(3274432512);
+emit_32(1101472832);
+emit_32(1116512256);
+emit_32(3274176528);
+emit_32(1102779148);
+emit_32(1116512256);
+emit_32(3273920545);
+emit_32(1103935255);
+emit_32(1116512256);
+emit_32(3273664496);
+emit_32(1104701345);
+emit_32(1116512256);
+emit_32(3273408512);
+emit_32(1105539000);
+emit_32(1116512256);
+emit_32(3273152528);
+emit_32(1106980949);
+emit_32(1116512256);
+emit_32(3272896545);
+emit_32(1107434013);
+emit_32(1116512256);
+emit_32(3272640496);
+emit_32(1107566658);
+emit_32(1116512256);
+emit_32(3272384512);
+emit_32(1107582701);
+emit_32(1116512256);
+emit_32(3272128528);
+emit_32(1107757498);
+emit_32(1116512256);
+emit_32(3271872545);
+emit_32(1107869617);
+emit_32(1116512256);
+emit_32(3271616496);
+emit_32(1107687480);
+emit_32(1116512256);
+emit_32(3271163904);
+emit_32(1107868176);
+emit_32(1116512256);
+emit_32(3270651937);
+emit_32(1107680087);
+emit_32(1116512256);
+emit_32(3270139970);
+emit_32(1107380955);
+emit_32(1116512256);
+emit_32(3269627871);
+emit_32(1107328631);
+emit_32(1116512256);
+emit_32(3269115904);
+emit_32(1107472941);
+emit_32(1116512256);
+emit_32(3268603937);
+emit_32(1107494384);
+emit_32(1116512256);
+emit_32(3268091970);
+emit_32(1107424602);
+emit_32(1116512256);
+emit_32(3267579911);
+emit_32(1106664227);
+emit_32(1116512256);
+emit_32(3267067904);
+emit_32(1106309651);
+emit_32(1116512256);
+emit_32(3266555911);
+emit_32(1105564480);
+emit_32(1116512256);
+emit_32(3266043904);
+emit_32(1104468247);
+emit_32(1116512256);
+emit_32(3265531911);
+emit_32(1103524161);
+emit_32(1116512256);
+emit_32(3265019904);
+emit_32(1102766355);
+emit_32(1116512256);
+emit_32(3264507911);
+emit_32(1101285976);
+emit_32(1116512256);
+emit_32(3263995904);
+emit_32(1100106066);
+emit_32(1116512256);
+emit_32(3263483911);
+emit_32(1099771150);
+emit_32(1116512256);
+emit_32(3262775296);
+emit_32(1099629121);
+emit_32(1116512256);
+emit_32(3261751309);
+emit_32(1099071436);
+emit_32(1116512256);
+emit_32(3260727296);
+emit_32(1096827273);
+emit_32(1116512256);
+emit_32(3259703309);
+emit_32(1094327153);
+emit_32(1116512256);
+emit_32(3258679296);
+emit_32(1092289372);
+emit_32(1116512256);
+emit_32(3257655309);
+emit_32(1091186899);
+emit_32(1116512256);
+emit_32(3256631296);
+emit_32(1091068620);
+emit_32(1116512256);
+emit_32(3255607309);
+emit_32(1092988332);
+emit_32(1116512256);
+emit_32(3254386688);
+emit_32(1093789024);
+emit_32(1116512256);
+emit_32(3252338714);
+emit_32(1095575588);
+emit_32(1116512256);
+emit_32(3250290688);
+emit_32(1097077673);
+emit_32(1116512256);
+emit_32(3248242714);
+emit_32(1098285423);
+emit_32(1116512256);
+emit_32(3245998080);
+emit_32(1099366400);
+emit_32(1116512256);
+emit_32(3241902132);
+emit_32(1099809528);
+emit_32(1116512256);
+emit_32(3237609472);
+emit_32(1100308336);
+emit_32(1116512256);
+emit_32(3229220864);
+emit_32(1100857999);
+emit_32(1116512256);
+emit_32(0);
+emit_32(1101690883);
+emit_32(1116512256);
+emit_32(1081737216);
+emit_32(1102550401);
+emit_32(1116512256);
+emit_32(3279552512);
+emit_32(1083244397);
+emit_32(1116000263);
+emit_32(3279296528);
+emit_32(1081021794);
+emit_32(1116000263);
+emit_32(3279040545);
+emit_32(1081320051);
+emit_32(1116000263);
+emit_32(3278784496);
+emit_32(1083021910);
+emit_32(1116000263);
+emit_32(3278528512);
+emit_32(1084294064);
+emit_32(1116000263);
+emit_32(3278272528);
+emit_32(1087656092);
+emit_32(1116000263);
+emit_32(3278016545);
+emit_32(1089797599);
+emit_32(1116000263);
+emit_32(3277760496);
+emit_32(1091098955);
+emit_32(1116000263);
+emit_32(3277504512);
+emit_32(1091272610);
+emit_32(1116000263);
+emit_32(3277248528);
+emit_32(1089866763);
+emit_32(1116000263);
+emit_32(3276992545);
+emit_32(1091139178);
+emit_32(1116000263);
+emit_32(3276736496);
+emit_32(1092341580);
+emit_32(1116000263);
+emit_32(3276480512);
+emit_32(1092757540);
+emit_32(1116000263);
+emit_32(3276224528);
+emit_32(1092728914);
+emit_32(1116000263);
+emit_32(3275968545);
+emit_32(1093810939);
+emit_32(1116000263);
+emit_32(3275712496);
+emit_32(1096373135);
+emit_32(1116000263);
+emit_32(3275456512);
+emit_32(1098378222);
+emit_32(1116000263);
+emit_32(3275200528);
+emit_32(1099724174);
+emit_32(1116000263);
+emit_32(3274944545);
+emit_32(1100967628);
+emit_32(1116000263);
+emit_32(3274688496);
+emit_32(1101558815);
+emit_32(1116000263);
+emit_32(3274432512);
+emit_32(1102315677);
+emit_32(1116000263);
+emit_32(3274176528);
+emit_32(1103940446);
+emit_32(1116000263);
+emit_32(3273920545);
+emit_32(1104679902);
+emit_32(1116000263);
+emit_32(3273664496);
+emit_32(1105155378);
+emit_32(1116000263);
+emit_32(3273408512);
+emit_32(1106194674);
+emit_32(1116000263);
+emit_32(3273152528);
+emit_32(1107343049);
+emit_32(1116000263);
+emit_32(3272896545);
+emit_32(1107838081);
+emit_32(1116000263);
+emit_32(3272640496);
+emit_32(1107954998);
+emit_32(1116000263);
+emit_32(3272384512);
+emit_32(1107867599);
+emit_32(1116000263);
+emit_32(3272128528);
+emit_32(1107645196);
+emit_32(1116000263);
+emit_32(3271872545);
+emit_32(1107550274);
+emit_32(1116000263);
+emit_32(3271616496);
+emit_32(1107544690);
+emit_32(1116000263);
+emit_32(3271163904);
+emit_32(1107694348);
+emit_32(1116000263);
+emit_32(3270651937);
+emit_32(1107550929);
+emit_32(1116000263);
+emit_32(3270139970);
+emit_32(1107424654);
+emit_32(1116000263);
+emit_32(3269627871);
+emit_32(1107580892);
+emit_32(1116000263);
+emit_32(3269115904);
+emit_32(1107466676);
+emit_32(1116000263);
+emit_32(3268603937);
+emit_32(1107518292);
+emit_32(1116000263);
+emit_32(3268091970);
+emit_32(1107507911);
+emit_32(1116000263);
+emit_32(3267579911);
+emit_32(1107068767);
+emit_32(1116000263);
+emit_32(3267067904);
+emit_32(1105975417);
+emit_32(1116000263);
+emit_32(3266555911);
+emit_32(1105550692);
+emit_32(1116000263);
+emit_32(3266043904);
+emit_32(1104364438);
+emit_32(1116000263);
+emit_32(3265531911);
+emit_32(1103311090);
+emit_32(1116000263);
+emit_32(3265019904);
+emit_32(1102266709);
+emit_32(1116000263);
+emit_32(3264507911);
+emit_32(1101111021);
+emit_32(1116000263);
+emit_32(3263995904);
+emit_32(1100245264);
+emit_32(1116000263);
+emit_32(3263483911);
+emit_32(1099460667);
+emit_32(1116000263);
+emit_32(3262775296);
+emit_32(1099464599);
+emit_32(1116000263);
+emit_32(3261751309);
+emit_32(1098898106);
+emit_32(1116000263);
+emit_32(3260727296);
+emit_32(1096169292);
+emit_32(1116000263);
+emit_32(3259703309);
+emit_32(1094572520);
+emit_32(1116000263);
+emit_32(3258679296);
+emit_32(1091595424);
+emit_32(1116000263);
+emit_32(3257655309);
+emit_32(1091557613);
+emit_32(1116000263);
+emit_32(3256631296);
+emit_32(1092673130);
+emit_32(1116000263);
+emit_32(3255607309);
+emit_32(1094406950);
+emit_32(1116000263);
+emit_32(3254386688);
+emit_32(1095233018);
+emit_32(1116000263);
+emit_32(3252338714);
+emit_32(1096870789);
+emit_32(1116000263);
+emit_32(3250290688);
+emit_32(1098084201);
+emit_32(1116000263);
+emit_32(3248242714);
+emit_32(1099279316);
+emit_32(1116000263);
+emit_32(3245998080);
+emit_32(1099851838);
+emit_32(1116000263);
+emit_32(3241902132);
+emit_32(1100485021);
+emit_32(1116000263);
+emit_32(3237609472);
+emit_32(1101521958);
+emit_32(1116000263);
+emit_32(3229220864);
+emit_32(1102417389);
+emit_32(1116000263);
+emit_32(0);
+emit_32(1103083130);
+emit_32(1116000263);
+emit_32(1081737216);
+emit_32(1103917954);
+emit_32(1116000263);
+emit_32(3279552512);
+emit_32(1083552091);
+emit_32(1115291648);
+emit_32(3279296528);
+emit_32(1083005678);
+emit_32(1115291648);
+emit_32(3279040545);
+emit_32(1081863968);
+emit_32(1115291648);
+emit_32(3278784496);
+emit_32(1083192598);
+emit_32(1115291648);
+emit_32(3278528512);
+emit_32(1085321521);
+emit_32(1115291648);
+emit_32(3278272528);
+emit_32(1088639887);
+emit_32(1115291648);
+emit_32(3278016545);
+emit_32(1090626592);
+emit_32(1115291648);
+emit_32(3277760496);
+emit_32(1090904140);
+emit_32(1115291648);
+emit_32(3277504512);
+emit_32(1091130580);
+emit_32(1115291648);
+emit_32(3277248528);
+emit_32(1091114726);
+emit_32(1115291648);
+emit_32(3276992545);
+emit_32(1092567129);
+emit_32(1115291648);
+emit_32(3276736496);
+emit_32(1093130414);
+emit_32(1115291648);
+emit_32(3276480512);
+emit_32(1093467636);
+emit_32(1115291648);
+emit_32(3276224528);
+emit_32(1094287832);
+emit_32(1115291648);
+emit_32(3275968545);
+emit_32(1095800822);
+emit_32(1115291648);
+emit_32(3275712496);
+emit_32(1097484940);
+emit_32(1115291648);
+emit_32(3275456512);
+emit_32(1099294310);
+emit_32(1115291648);
+emit_32(3275200528);
+emit_32(1100172703);
+emit_32(1115291648);
+emit_32(3274944545);
+emit_32(1101504656);
+emit_32(1115291648);
+emit_32(3274688496);
+emit_32(1102638534);
+emit_32(1115291648);
+emit_32(3274432512);
+emit_32(1103640238);
+emit_32(1115291648);
+emit_32(3274176528);
+emit_32(1104536142);
+emit_32(1115291648);
+emit_32(3273920545);
+emit_32(1105040926);
+emit_32(1115291648);
+emit_32(3273664496);
+emit_32(1105781640);
+emit_32(1115291648);
+emit_32(3273408512);
+emit_32(1106871845);
+emit_32(1115291648);
+emit_32(3273152528);
+emit_32(1107552266);
+emit_32(1115291648);
+emit_32(3272896545);
+emit_32(1107681686);
+emit_32(1115291648);
+emit_32(3272640496);
+emit_32(1107745571);
+emit_32(1115291648);
+emit_32(3272384512);
+emit_32(1107728531);
+emit_32(1115291648);
+emit_32(3272128528);
+emit_32(1107564849);
+emit_32(1115291648);
+emit_32(3271872545);
+emit_32(1107489876);
+emit_32(1115291648);
+emit_32(3271616496);
+emit_32(1107455351);
+emit_32(1115291648);
+emit_32(3271163904);
+emit_32(1107468721);
+emit_32(1115291648);
+emit_32(3270651937);
+emit_32(1107084182);
+emit_32(1115291648);
+emit_32(3270139970);
+emit_32(1107222279);
+emit_32(1115291648);
+emit_32(3269627871);
+emit_32(1107484685);
+emit_32(1115291648);
+emit_32(3269115904);
+emit_32(1107529302);
+emit_32(1115291648);
+emit_32(3268603937);
+emit_32(1107488067);
+emit_32(1115291648);
+emit_32(3268091970);
+emit_32(1107407117);
+emit_32(1115291648);
+emit_32(3267579911);
+emit_32(1106883012);
+emit_32(1115291648);
+emit_32(3267067904);
+emit_32(1106605454);
+emit_32(1115291648);
+emit_32(3266555911);
+emit_32(1105505288);
+emit_32(1115291648);
+emit_32(3266043904);
+emit_32(1104212551);
+emit_32(1115291648);
+emit_32(3265531911);
+emit_32(1103004854);
+emit_32(1115291648);
+emit_32(3265019904);
+emit_32(1102070835);
+emit_32(1115291648);
+emit_32(3264507911);
+emit_32(1101098123);
+emit_32(1115291648);
+emit_32(3263995904);
+emit_32(1100325323);
+emit_32(1115291648);
+emit_32(3263483911);
+emit_32(1099328966);
+emit_32(1115291648);
+emit_32(3262775296);
+emit_32(1098611216);
+emit_32(1115291648);
+emit_32(3261751309);
+emit_32(1096735418);
+emit_32(1115291648);
+emit_32(3260727296);
+emit_32(1095838571);
+emit_32(1115291648);
+emit_32(3259703309);
+emit_32(1094605760);
+emit_32(1115291648);
+emit_32(3258679296);
+emit_32(1092525459);
+emit_32(1115291648);
+emit_32(3257655309);
+emit_32(1092767082);
+emit_32(1115291648);
+emit_32(3256631296);
+emit_32(1093983535);
+emit_32(1115291648);
+emit_32(3255607309);
+emit_32(1095249271);
+emit_32(1115291648);
+emit_32(3254386688);
+emit_32(1096927937);
+emit_32(1115291648);
+emit_32(3252338714);
+emit_32(1098207724);
+emit_32(1115291648);
+emit_32(3250290688);
+emit_32(1099233441);
+emit_32(1115291648);
+emit_32(3248242714);
+emit_32(1099875956);
+emit_32(1115291648);
+emit_32(3245998080);
+emit_32(1100637117);
+emit_32(1115291648);
+emit_32(3241902132);
+emit_32(1101503817);
+emit_32(1115291648);
+emit_32(3237609472);
+emit_32(1102802531);
+emit_32(1115291648);
+emit_32(3229220864);
+emit_32(1103593682);
+emit_32(1115291648);
+emit_32(0);
+emit_32(1104232317);
+emit_32(1115291648);
+emit_32(1081737216);
+emit_32(1104775951);
+emit_32(1115291648);
+emit_32(3279552512);
+emit_32(1082632448);
+emit_32(1114267661);
+emit_32(3279296528);
+emit_32(1083847999);
+emit_32(1114267661);
+emit_32(3279040545);
+emit_32(1083453043);
+emit_32(1114267661);
+emit_32(3278784496);
+emit_32(1084836240);
+emit_32(1114267661);
+emit_32(3278528512);
+emit_32(1087335416);
+emit_32(1114267661);
+emit_32(3278272528);
+emit_32(1088125267);
+emit_32(1114267661);
+emit_32(3278016545);
+emit_32(1091016904);
+emit_32(1114267661);
+emit_32(3277760496);
+emit_32(1091320320);
+emit_32(1114267661);
+emit_32(3277504512);
+emit_32(1091823731);
+emit_32(1114267661);
+emit_32(3277248528);
+emit_32(1092277020);
+emit_32(1114267661);
+emit_32(3276992545);
+emit_32(1093461659);
+emit_32(1114267661);
+emit_32(3276736496);
+emit_32(1095052768);
+emit_32(1114267661);
+emit_32(3276480512);
+emit_32(1095490234);
+emit_32(1114267661);
+emit_32(3276224528);
+emit_32(1095508899);
+emit_32(1114267661);
+emit_32(3275968545);
+emit_32(1097193541);
+emit_32(1114267661);
+emit_32(3275712496);
+emit_32(1098984561);
+emit_32(1114267661);
+emit_32(3275456512);
+emit_32(1099457574);
+emit_32(1114267661);
+emit_32(3275200528);
+emit_32(1100590141);
+emit_32(1114267661);
+emit_32(3274944545);
+emit_32(1101940969);
+emit_32(1114267661);
+emit_32(3274688496);
+emit_32(1103512417);
+emit_32(1114267661);
+emit_32(3274432512);
+emit_32(1104276147);
+emit_32(1114267661);
+emit_32(3274176528);
+emit_32(1104819310);
+emit_32(1114267661);
+emit_32(3273920545);
+emit_32(1105352144);
+emit_32(1114267661);
+emit_32(3273664496);
+emit_32(1106559369);
+emit_32(1114267661);
+emit_32(3273408512);
+emit_32(1107364859);
+emit_32(1114267661);
+emit_32(3273152528);
+emit_32(1107533470);
+emit_32(1114267661);
+emit_32(3272896545);
+emit_32(1107506024);
+emit_32(1114267661);
+emit_32(3272640496);
+emit_32(1107420801);
+emit_32(1114267661);
+emit_32(3272384512);
+emit_32(1107402398);
+emit_32(1114267661);
+emit_32(3272128528);
+emit_32(1107706013);
+emit_32(1114267661);
+emit_32(3271872545);
+emit_32(1107658749);
+emit_32(1114267661);
+emit_32(3271616496);
+emit_32(1107586292);
+emit_32(1114267661);
+emit_32(3271163904);
+emit_32(1107376315);
+emit_32(1114267661);
+emit_32(3270651937);
+emit_32(1107428560);
+emit_32(1114267661);
+emit_32(3270139970);
+emit_32(1107381348);
+emit_32(1114267661);
+emit_32(3269627871);
+emit_32(1107411416);
+emit_32(1114267661);
+emit_32(3269115904);
+emit_32(1107441222);
+emit_32(1114267661);
+emit_32(3268603937);
+emit_32(1107539552);
+emit_32(1114267661);
+emit_32(3268091970);
+emit_32(1107219658);
+emit_32(1114267661);
+emit_32(3267579911);
+emit_32(1106732804);
+emit_32(1114267661);
+emit_32(3267067904);
+emit_32(1106474592);
+emit_32(1114267661);
+emit_32(3266555911);
+emit_32(1105371857);
+emit_32(1114267661);
+emit_32(3266043904);
+emit_32(1103908989);
+emit_32(1114267661);
+emit_32(3265531911);
+emit_32(1102613892);
+emit_32(1114267661);
+emit_32(3265019904);
+emit_32(1101793853);
+emit_32(1114267661);
+emit_32(3264507911);
+emit_32(1101568305);
+emit_32(1114267661);
+emit_32(3263995904);
+emit_32(1100542693);
+emit_32(1114267661);
+emit_32(3263483911);
+emit_32(1099317327);
+emit_32(1114267661);
+emit_32(3262775296);
+emit_32(1098087557);
+emit_32(1114267661);
+emit_32(3261751309);
+emit_32(1096945867);
+emit_32(1114267661);
+emit_32(3260727296);
+emit_32(1096008440);
+emit_32(1114267661);
+emit_32(3259703309);
+emit_32(1094604292);
+emit_32(1114267661);
+emit_32(3258679296);
+emit_32(1093760293);
+emit_32(1114267661);
+emit_32(3257655309);
+emit_32(1095498203);
+emit_32(1114267661);
+emit_32(3256631296);
+emit_32(1096500642);
+emit_32(1114267661);
+emit_32(3255607309);
+emit_32(1097453063);
+emit_32(1114267661);
+emit_32(3254386688);
+emit_32(1098431594);
+emit_32(1114267661);
+emit_32(3252338714);
+emit_32(1099318061);
+emit_32(1114267661);
+emit_32(3250290688);
+emit_32(1100353529);
+emit_32(1114267661);
+emit_32(3248242714);
+emit_32(1100897373);
+emit_32(1114267661);
+emit_32(3245998080);
+emit_32(1101979661);
+emit_32(1114267661);
+emit_32(3241902132);
+emit_32(1102434481);
+emit_32(1114267661);
+emit_32(3237609472);
+emit_32(1103617327);
+emit_32(1114267661);
+emit_32(3229220864);
+emit_32(1104375972);
+emit_32(1114267661);
+emit_32(0);
+emit_32(1104908963);
+emit_32(1114267661);
+emit_32(1081737216);
+emit_32(1105382343);
+emit_32(1114267661);
+emit_32(3279552512);
+emit_32(1080567970);
+emit_32(1113243648);
+emit_32(3279296528);
+emit_32(1081431200);
+emit_32(1113243648);
+emit_32(3279040545);
+emit_32(1083053640);
+emit_32(1113243648);
+emit_32(3278784496);
+emit_32(1084804594);
+emit_32(1113243648);
+emit_32(3278528512);
+emit_32(1089344530);
+emit_32(1113243648);
+emit_32(3278272528);
+emit_32(1089662899);
+emit_32(1113243648);
+emit_32(3278016545);
+emit_32(1090822970);
+emit_32(1113243648);
+emit_32(3277760496);
+emit_32(1092219662);
+emit_32(1113243648);
+emit_32(3277504512);
+emit_32(1093309615);
+emit_32(1113243648);
+emit_32(3277248528);
+emit_32(1093760608);
+emit_32(1113243648);
+emit_32(3276992545);
+emit_32(1094942563);
+emit_32(1113243648);
+emit_32(3276736496);
+emit_32(1095970062);
+emit_32(1113243648);
+emit_32(3276480512);
+emit_32(1096808609);
+emit_32(1113243648);
+emit_32(3276224528);
+emit_32(1097144677);
+emit_32(1113243648);
+emit_32(3275968545);
+emit_32(1097732299);
+emit_32(1113243648);
+emit_32(3275712496);
+emit_32(1099213255);
+emit_32(1113243648);
+emit_32(3275456512);
+emit_32(1100077335);
+emit_32(1113243648);
+emit_32(3275200528);
+emit_32(1101037358);
+emit_32(1113243648);
+emit_32(3274944545);
+emit_32(1102522142);
+emit_32(1113243648);
+emit_32(3274688496);
+emit_32(1103670333);
+emit_32(1113243648);
+emit_32(3274432512);
+emit_32(1104447013);
+emit_32(1113243648);
+emit_32(3274176528);
+emit_32(1104860519);
+emit_32(1113243648);
+emit_32(3273920545);
+emit_32(1105841200);
+emit_32(1113243648);
+emit_32(3273664496);
+emit_32(1106724782);
+emit_32(1113243648);
+emit_32(3273408512);
+emit_32(1107646900);
+emit_32(1113243648);
+emit_32(3273152528);
+emit_32(1107527152);
+emit_32(1113243648);
+emit_32(3272896545);
+emit_32(1107447854);
+emit_32(1113243648);
+emit_32(3272640496);
+emit_32(1107457160);
+emit_32(1113243648);
+emit_32(3272384512);
+emit_32(1107532238);
+emit_32(1113243648);
+emit_32(3272128528);
+emit_32(1107881152);
+emit_32(1113243648);
+emit_32(3271872545);
+emit_32(1107776897);
+emit_32(1113243648);
+emit_32(3271616496);
+emit_32(1107520258);
+emit_32(1113243648);
+emit_32(3271163904);
+emit_32(1107733591);
+emit_32(1113243648);
+emit_32(3270651937);
+emit_32(1107557168);
+emit_32(1113243648);
+emit_32(3270139970);
+emit_32(1107429845);
+emit_32(1113243648);
+emit_32(3269627871);
+emit_32(1107409161);
+emit_32(1113243648);
+emit_32(3269115904);
+emit_32(1107202618);
+emit_32(1113243648);
+emit_32(3268603937);
+emit_32(1107218137);
+emit_32(1113243648);
+emit_32(3268091970);
+emit_32(1107106621);
+emit_32(1113243648);
+emit_32(3267579911);
+emit_32(1106476217);
+emit_32(1113243648);
+emit_32(3267067904);
+emit_32(1105687006);
+emit_32(1113243648);
+emit_32(3266555911);
+emit_32(1104462742);
+emit_32(1113243648);
+emit_32(3266043904);
+emit_32(1103481222);
+emit_32(1113243648);
+emit_32(3265531911);
+emit_32(1102608859);
+emit_32(1113243648);
+emit_32(3265019904);
+emit_32(1101715630);
+emit_32(1113243648);
+emit_32(3264507911);
+emit_32(1101203400);
+emit_32(1113243648);
+emit_32(3263995904);
+emit_32(1100648337);
+emit_32(1113243648);
+emit_32(3263483911);
+emit_32(1099410807);
+emit_32(1113243648);
+emit_32(3262775296);
+emit_32(1097508009);
+emit_32(1113243648);
+emit_32(3261751309);
+emit_32(1097324193);
+emit_32(1113243648);
+emit_32(3260727296);
+emit_32(1096121791);
+emit_32(1113243648);
+emit_32(3259703309);
+emit_32(1095057906);
+emit_32(1113243648);
+emit_32(3258679296);
+emit_32(1095394709);
+emit_32(1113243648);
+emit_32(3257655309);
+emit_32(1097088473);
+emit_32(1113243648);
+emit_32(3256631296);
+emit_32(1098581226);
+emit_32(1113243648);
+emit_32(3255607309);
+emit_32(1099014498);
+emit_32(1113243648);
+emit_32(3254386688);
+emit_32(1099554462);
+emit_32(1113243648);
+emit_32(3252338714);
+emit_32(1100356151);
+emit_32(1113243648);
+emit_32(3250290688);
+emit_32(1101134404);
+emit_32(1113243648);
+emit_32(3248242714);
+emit_32(1101886076);
+emit_32(1113243648);
+emit_32(3245998080);
+emit_32(1103145992);
+emit_32(1113243648);
+emit_32(3241902132);
+emit_32(1103709182);
+emit_32(1113243648);
+emit_32(3237609472);
+emit_32(1104517530);
+emit_32(1113243648);
+emit_32(3229220864);
+emit_32(1104959033);
+emit_32(1113243648);
+emit_32(0);
+emit_32(1105369183);
+emit_32(1113243648);
+emit_32(1081737216);
+emit_32(1105831238);
+emit_32(1113243648);
+emit_32(3279552512);
+emit_32(1081067470);
+emit_32(1112219661);
+emit_32(3279296528);
+emit_32(1081676273);
+emit_32(1112219661);
+emit_32(3279040545);
+emit_32(1082388277);
+emit_32(1112219661);
+emit_32(3278784496);
+emit_32(1084582317);
+emit_32(1112219661);
+emit_32(3278528512);
+emit_32(1086962144);
+emit_32(1112219661);
+emit_32(3278272528);
+emit_32(1088882737);
+emit_32(1112219661);
+emit_32(3278016545);
+emit_32(1091161282);
+emit_32(1112219661);
+emit_32(3277760496);
+emit_32(1092751983);
+emit_32(1112219661);
+emit_32(3277504512);
+emit_32(1095008308);
+emit_32(1112219661);
+emit_32(3277248528);
+emit_32(1095060318);
+emit_32(1112219661);
+emit_32(3276992545);
+emit_32(1096171599);
+emit_32(1112219661);
+emit_32(3276736496);
+emit_32(1096970718);
+emit_32(1112219661);
+emit_32(3276480512);
+emit_32(1096845518);
+emit_32(1112219661);
+emit_32(3276224528);
+emit_32(1097664037);
+emit_32(1112219661);
+emit_32(3275968545);
+emit_32(1099269407);
+emit_32(1112219661);
+emit_32(3275712496);
+emit_32(1099766956);
+emit_32(1112219661);
+emit_32(3275456512);
+emit_32(1100617351);
+emit_32(1112219661);
+emit_32(3275200528);
+emit_32(1101396967);
+emit_32(1112219661);
+emit_32(3274944545);
+emit_32(1102752933);
+emit_32(1112219661);
+emit_32(3274688496);
+emit_32(1103879838);
+emit_32(1112219661);
+emit_32(3274432512);
+emit_32(1104593866);
+emit_32(1112219661);
+emit_32(3274176528);
+emit_32(1105083131);
+emit_32(1112219661);
+emit_32(3273920545);
+emit_32(1106256803);
+emit_32(1112219661);
+emit_32(3273664496);
+emit_32(1106808091);
+emit_32(1112219661);
+emit_32(3273408512);
+emit_32(1107450869);
+emit_32(1112219661);
+emit_32(3273152528);
+emit_32(1107444944);
+emit_32(1112219661);
+emit_32(3272896545);
+emit_32(1107418258);
+emit_32(1112219661);
+emit_32(3272640496);
+emit_32(1107742425);
+emit_32(1112219661);
+emit_32(3272384512);
+emit_32(1108019590);
+emit_32(1112219661);
+emit_32(3272128528);
+emit_32(1107796584);
+emit_32(1112219661);
+emit_32(3271872545);
+emit_32(1107736920);
+emit_32(1112219661);
+emit_32(3271616496);
+emit_32(1107725360);
+emit_32(1112219661);
+emit_32(3271163904);
+emit_32(1107830270);
+emit_32(1112219661);
+emit_32(3270651937);
+emit_32(1107833101);
+emit_32(1112219661);
+emit_32(3270139970);
+emit_32(1107955024);
+emit_32(1112219661);
+emit_32(3269627871);
+emit_32(1107743788);
+emit_32(1112219661);
+emit_32(3269115904);
+emit_32(1107368686);
+emit_32(1112219661);
+emit_32(3268603937);
+emit_32(1107312194);
+emit_32(1112219661);
+emit_32(3268091970);
+emit_32(1106815641);
+emit_32(1112219661);
+emit_32(3267579911);
+emit_32(1106204059);
+emit_32(1112219661);
+emit_32(3267067904);
+emit_32(1105597773);
+emit_32(1112219661);
+emit_32(3266555911);
+emit_32(1104651905);
+emit_32(1112219661);
+emit_32(3266043904);
+emit_32(1103516559);
+emit_32(1112219661);
+emit_32(3265531911);
+emit_32(1102993162);
+emit_32(1112219661);
+emit_32(3265019904);
+emit_32(1101898029);
+emit_32(1112219661);
+emit_32(3264507911);
+emit_32(1100758804);
+emit_32(1112219661);
+emit_32(3263995904);
+emit_32(1100657040);
+emit_32(1112219661);
+emit_32(3263483911);
+emit_32(1099876637);
+emit_32(1112219661);
+emit_32(3262775296);
+emit_32(1097071696);
+emit_32(1112219661);
+emit_32(3261751309);
+emit_32(1097587910);
+emit_32(1112219661);
+emit_32(3260727296);
+emit_32(1096851915);
+emit_32(1112219661);
+emit_32(3259703309);
+emit_32(1095734447);
+emit_32(1112219661);
+emit_32(3258679296);
+emit_32(1096755026);
+emit_32(1112219661);
+emit_32(3257655309);
+emit_32(1098731382);
+emit_32(1112219661);
+emit_32(3256631296);
+emit_32(1099251896);
+emit_32(1112219661);
+emit_32(3255607309);
+emit_32(1099497577);
+emit_32(1112219661);
+emit_32(3254386688);
+emit_32(1100323121);
+emit_32(1112219661);
+emit_32(3252338714);
+emit_32(1101464601);
+emit_32(1112219661);
+emit_32(3250290688);
+emit_32(1102066431);
+emit_32(1112219661);
+emit_32(3248242714);
+emit_32(1102544581);
+emit_32(1112219661);
+emit_32(3245998080);
+emit_32(1103985902);
+emit_32(1112219661);
+emit_32(3241902132);
+emit_32(1104242698);
+emit_32(1112219661);
+emit_32(3237609472);
+emit_32(1105399801);
+emit_32(1112219661);
+emit_32(3229220864);
+emit_32(1105617119);
+emit_32(1112219661);
+emit_32(0);
+emit_32(1106104864);
+emit_32(1112219661);
+emit_32(1081737216);
+emit_32(1106473438);
+emit_32(1112219661);
+emit_32(3279552512);
+emit_32(1080840432);
+emit_32(1111195648);
+emit_32(3279296528);
+emit_32(1081651568);
+emit_32(1111195648);
+emit_32(3279040545);
+emit_32(1082066175);
+emit_32(1111195648);
+emit_32(3278784496);
+emit_32(1084264746);
+emit_32(1111195648);
+emit_32(3278528512);
+emit_32(1088920821);
+emit_32(1111195648);
+emit_32(3278272528);
+emit_32(1090060120);
+emit_32(1111195648);
+emit_32(3278016545);
+emit_32(1091098882);
+emit_32(1111195648);
+emit_32(3277760496);
+emit_32(1092897630);
+emit_32(1111195648);
+emit_32(3277504512);
+emit_32(1093865780);
+emit_32(1111195648);
+emit_32(3277248528);
+emit_32(1095144309);
+emit_32(1111195648);
+emit_32(3276992545);
+emit_32(1096518363);
+emit_32(1111195648);
+emit_32(3276736496);
+emit_32(1097299342);
+emit_32(1111195648);
+emit_32(3276480512);
+emit_32(1098421109);
+emit_32(1111195648);
+emit_32(3276224528);
+emit_32(1098491888);
+emit_32(1111195648);
+emit_32(3275968545);
+emit_32(1099350986);
+emit_32(1111195648);
+emit_32(3275712496);
+emit_32(1100200332);
+emit_32(1111195648);
+emit_32(3275456512);
+emit_32(1100698092);
+emit_32(1111195648);
+emit_32(3275200528);
+emit_32(1101450655);
+emit_32(1111195648);
+emit_32(3274944545);
+emit_32(1103069866);
+emit_32(1111195648);
+emit_32(3274688496);
+emit_32(1104305508);
+emit_32(1111195648);
+emit_32(3274432512);
+emit_32(1105027557);
+emit_32(1111195648);
+emit_32(3274176528);
+emit_32(1105330019);
+emit_32(1111195648);
+emit_32(3273920545);
+emit_32(1106064336);
+emit_32(1111195648);
+emit_32(3273664496);
+emit_32(1107261863);
+emit_32(1111195648);
+emit_32(3273408512);
+emit_32(1107667531);
+emit_32(1111195648);
+emit_32(3273152528);
+emit_32(1107670598);
+emit_32(1111195648);
+emit_32(3272896545);
+emit_32(1107641159);
+emit_32(1111195648);
+emit_32(3272640496);
+emit_32(1107722528);
+emit_32(1111195648);
+emit_32(3272384512);
+emit_32(1108132181);
+emit_32(1111195648);
+emit_32(3272128528);
+emit_32(1108041636);
+emit_32(1111195648);
+emit_32(3271872545);
+emit_32(1107852499);
+emit_32(1111195648);
+emit_32(3271616496);
+emit_32(1107940187);
+emit_32(1111195648);
+emit_32(3271163904);
+emit_32(1108075584);
+emit_32(1111195648);
+emit_32(3270651937);
+emit_32(1108051519);
+emit_32(1111195648);
+emit_32(3270139970);
+emit_32(1108131185);
+emit_32(1111195648);
+emit_32(3269627871);
+emit_32(1107856720);
+emit_32(1111195648);
+emit_32(3269115904);
+emit_32(1107481775);
+emit_32(1111195648);
+emit_32(3268603937);
+emit_32(1107354426);
+emit_32(1111195648);
+emit_32(3268091970);
+emit_32(1106901729);
+emit_32(1111195648);
+emit_32(3267579911);
+emit_32(1106228648);
+emit_32(1111195648);
+emit_32(3267067904);
+emit_32(1105262753);
+emit_32(1111195648);
+emit_32(3266555911);
+emit_32(1104721425);
+emit_32(1111195648);
+emit_32(3266043904);
+emit_32(1103674474);
+emit_32(1111195648);
+emit_32(3265531911);
+emit_32(1102786488);
+emit_32(1111195648);
+emit_32(3265019904);
+emit_32(1102197555);
+emit_32(1111195648);
+emit_32(3264507911);
+emit_32(1100931295);
+emit_32(1111195648);
+emit_32(3263995904);
+emit_32(1100417440);
+emit_32(1111195648);
+emit_32(3263483911);
+emit_32(1099561330);
+emit_32(1111195648);
+emit_32(3262775296);
+emit_32(1098381787);
+emit_32(1111195648);
+emit_32(3261751309);
+emit_32(1097372218);
+emit_32(1111195648);
+emit_32(3260727296);
+emit_32(1097540724);
+emit_32(1111195648);
+emit_32(3259703309);
+emit_32(1096128502);
+emit_32(1111195648);
+emit_32(3258679296);
+emit_32(1098525337);
+emit_32(1111195648);
+emit_32(3257655309);
+emit_32(1099283929);
+emit_32(1111195648);
+emit_32(3256631296);
+emit_32(1099669281);
+emit_32(1111195648);
+emit_32(3255607309);
+emit_32(1100104388);
+emit_32(1111195648);
+emit_32(3254386688);
+emit_32(1101177448);
+emit_32(1111195648);
+emit_32(3252338714);
+emit_32(1102411989);
+emit_32(1111195648);
+emit_32(3250290688);
+emit_32(1102859731);
+emit_32(1111195648);
+emit_32(3248242714);
+emit_32(1103261650);
+emit_32(1111195648);
+emit_32(3245998080);
+emit_32(1104208881);
+emit_32(1111195648);
+emit_32(3241902132);
+emit_32(1104930721);
+emit_32(1111195648);
+emit_32(3237609472);
+emit_32(1105910668);
+emit_32(1111195648);
+emit_32(3229220864);
+emit_32(1106135482);
+emit_32(1111195648);
+emit_32(0);
+emit_32(1106438364);
+emit_32(1111195648);
+emit_32(1081737216);
+emit_32(1106707585);
+emit_32(1111195648);
+emit_32(3279552512);
+emit_32(1082299945);
+emit_32(1110171661);
+emit_32(3279296528);
+emit_32(1082335492);
+emit_32(1110171661);
+emit_32(3279040545);
+emit_32(1081611639);
+emit_32(1110171661);
+emit_32(3278784496);
+emit_32(1084483730);
+emit_32(1110171661);
+emit_32(3278528512);
+emit_32(1087813567);
+emit_32(1110171661);
+emit_32(3278272528);
+emit_32(1090011655);
+emit_32(1110171661);
+emit_32(3278016545);
+emit_32(1090662443);
+emit_32(1110171661);
+emit_32(3277760496);
+emit_32(1091411913);
+emit_32(1110171661);
+emit_32(3277504512);
+emit_32(1093599547);
+emit_32(1110171661);
+emit_32(3277248528);
+emit_32(1095137283);
+emit_32(1110171661);
+emit_32(3276992545);
+emit_32(1096248040);
+emit_32(1110171661);
+emit_32(3276736496);
+emit_32(1097581409);
+emit_32(1110171661);
+emit_32(3276480512);
+emit_32(1098493460);
+emit_32(1110171661);
+emit_32(3276224528);
+emit_32(1098645189);
+emit_32(1110171661);
+emit_32(3275968545);
+emit_32(1099528405);
+emit_32(1110171661);
+emit_32(3275712496);
+emit_32(1100673398);
+emit_32(1110171661);
+emit_32(3275456512);
+emit_32(1101618269);
+emit_32(1110171661);
+emit_32(3275200528);
+emit_32(1102431073);
+emit_32(1110171661);
+emit_32(3274944545);
+emit_32(1103528093);
+emit_32(1110171661);
+emit_32(3274688496);
+emit_32(1104554597);
+emit_32(1110171661);
+emit_32(3274432512);
+emit_32(1105069133);
+emit_32(1110171661);
+emit_32(3274176528);
+emit_32(1105654658);
+emit_32(1110171661);
+emit_32(3273920545);
+emit_32(1106835145);
+emit_32(1110171661);
+emit_32(3273664496);
+emit_32(1107634160);
+emit_32(1110171661);
+emit_32(3273408512);
+emit_32(1107894338);
+emit_32(1110171661);
+emit_32(3273152528);
+emit_32(1107815222);
+emit_32(1110171661);
+emit_32(3272896545);
+emit_32(1107886788);
+emit_32(1110171661);
+emit_32(3272640496);
+emit_32(1107869984);
+emit_32(1110171661);
+emit_32(3272384512);
+emit_32(1108048085);
+emit_32(1110171661);
+emit_32(3272128528);
+emit_32(1108254890);
+emit_32(1110171661);
+emit_32(3271872545);
+emit_32(1108213734);
+emit_32(1110171661);
+emit_32(3271616496);
+emit_32(1108197324);
+emit_32(1110171661);
+emit_32(3271163904);
+emit_32(1108442612);
+emit_32(1110171661);
+emit_32(3270651937);
+emit_32(1108195515);
+emit_32(1110171661);
+emit_32(3270139970);
+emit_32(1107913422);
+emit_32(1110171661);
+emit_32(3269627871);
+emit_32(1108099754);
+emit_32(1110171661);
+emit_32(3269115904);
+emit_32(1107690809);
+emit_32(1110171661);
+emit_32(3268603937);
+emit_32(1107419726);
+emit_32(1110171661);
+emit_32(3268091970);
+emit_32(1106916881);
+emit_32(1110171661);
+emit_32(3267579911);
+emit_32(1106123581);
+emit_32(1110171661);
+emit_32(3267067904);
+emit_32(1105152285);
+emit_32(1110171661);
+emit_32(3266555911);
+emit_32(1104426985);
+emit_32(1110171661);
+emit_32(3266043904);
+emit_32(1103754376);
+emit_32(1110171661);
+emit_32(3265531911);
+emit_32(1102897113);
+emit_32(1110171661);
+emit_32(3265019904);
+emit_32(1102036808);
+emit_32(1110171661);
+emit_32(3264507911);
+emit_32(1100742237);
+emit_32(1110171661);
+emit_32(3263995904);
+emit_32(1099863477);
+emit_32(1110171661);
+emit_32(3263483911);
+emit_32(1099645950);
+emit_32(1110171661);
+emit_32(3262775296);
+emit_32(1099481114);
+emit_32(1110171661);
+emit_32(3261751309);
+emit_32(1098210135);
+emit_32(1110171661);
+emit_32(3260727296);
+emit_32(1097645582);
+emit_32(1110171661);
+emit_32(3259703309);
+emit_32(1097853619);
+emit_32(1110171661);
+emit_32(3258679296);
+emit_32(1099526675);
+emit_32(1110171661);
+emit_32(3257655309);
+emit_32(1100018090);
+emit_32(1110171661);
+emit_32(3256631296);
+emit_32(1100522927);
+emit_32(1110171661);
+emit_32(3255607309);
+emit_32(1100845993);
+emit_32(1110171661);
+emit_32(3254386688);
+emit_32(1101870924);
+emit_32(1110171661);
+emit_32(3252338714);
+emit_32(1102805362);
+emit_32(1110171661);
+emit_32(3250290688);
+emit_32(1103401216);
+emit_32(1110171661);
+emit_32(3248242714);
+emit_32(1103731255);
+emit_32(1110171661);
+emit_32(3245998080);
+emit_32(1104590458);
+emit_32(1110171661);
+emit_32(3241902132);
+emit_32(1105688946);
+emit_32(1110171661);
+emit_32(3237609472);
+emit_32(1106199393);
+emit_32(1110171661);
+emit_32(3229220864);
+emit_32(1106912477);
+emit_32(1110171661);
+emit_32(0);
+emit_32(1106977279);
+emit_32(1110171661);
+emit_32(1081737216);
+emit_32(1107240944);
+emit_32(1110171661);
+emit_32(3279552512);
+emit_32(1082717131);
+emit_32(1109147648);
+emit_32(3279296528);
+emit_32(1082557014);
+emit_32(1109147648);
+emit_32(3279040545);
+emit_32(1081304070);
+emit_32(1109147648);
+emit_32(3278784496);
+emit_32(1083792278);
+emit_32(1109147648);
+emit_32(3278528512);
+emit_32(1085314873);
+emit_32(1109147648);
+emit_32(3278272528);
+emit_32(1088245664);
+emit_32(1109147648);
+emit_32(3278016545);
+emit_32(1090788797);
+emit_32(1109147648);
+emit_32(3277760496);
+emit_32(1091410718);
+emit_32(1109147648);
+emit_32(3277504512);
+emit_32(1092169803);
+emit_32(1109147648);
+emit_32(3277248528);
+emit_32(1094073608);
+emit_32(1109147648);
+emit_32(3276992545);
+emit_32(1095322147);
+emit_32(1109147648);
+emit_32(3276736496);
+emit_32(1097073584);
+emit_32(1109147648);
+emit_32(3276480512);
+emit_32(1097631321);
+emit_32(1109147648);
+emit_32(3276224528);
+emit_32(1098886781);
+emit_32(1109147648);
+emit_32(3275968545);
+emit_32(1099653448);
+emit_32(1109147648);
+emit_32(3275712496);
+emit_32(1100796029);
+emit_32(1109147648);
+emit_32(3275456512);
+emit_32(1102110786);
+emit_32(1109147648);
+emit_32(3275200528);
+emit_32(1103014553);
+emit_32(1109147648);
+emit_32(3274944545);
+emit_32(1103661420);
+emit_32(1109147648);
+emit_32(3274688496);
+emit_32(1104730758);
+emit_32(1109147648);
+emit_32(3274432512);
+emit_32(1105461248);
+emit_32(1109147648);
+emit_32(3274176528);
+emit_32(1106228019);
+emit_32(1109147648);
+emit_32(3273920545);
+emit_32(1107398361);
+emit_32(1109147648);
+emit_32(3273664496);
+emit_32(1107773987);
+emit_32(1109147648);
+emit_32(3273408512);
+emit_32(1107908336);
+emit_32(1109147648);
+emit_32(3273152528);
+emit_32(1107942729);
+emit_32(1109147648);
+emit_32(3272896545);
+emit_32(1108010231);
+emit_32(1109147648);
+emit_32(3272640496);
+emit_32(1107850140);
+emit_32(1109147648);
+emit_32(3272384512);
+emit_32(1108057339);
+emit_32(1109147648);
+emit_32(3272128528);
+emit_32(1108245977);
+emit_32(1109147648);
+emit_32(3271872545);
+emit_32(1108269937);
+emit_32(1109147648);
+emit_32(3271616496);
+emit_32(1108532291);
+emit_32(1109147648);
+emit_32(3271163904);
+emit_32(1108595809);
+emit_32(1109147648);
+emit_32(3270651937);
+emit_32(1108363942);
+emit_32(1109147648);
+emit_32(3270139970);
+emit_32(1108139599);
+emit_32(1109147648);
+emit_32(3269627871);
+emit_32(1108065465);
+emit_32(1109147648);
+emit_32(3269115904);
+emit_32(1107970150);
+emit_32(1109147648);
+emit_32(3268603937);
+emit_32(1107690678);
+emit_32(1109147648);
+emit_32(3268091970);
+emit_32(1106957042);
+emit_32(1109147648);
+emit_32(3267579911);
+emit_32(1106262517);
+emit_32(1109147648);
+emit_32(3267067904);
+emit_32(1105527937);
+emit_32(1109147648);
+emit_32(3266555911);
+emit_32(1104380638);
+emit_32(1109147648);
+emit_32(3266043904);
+emit_32(1103529719);
+emit_32(1109147648);
+emit_32(3265531911);
+emit_32(1102593130);
+emit_32(1109147648);
+emit_32(3265019904);
+emit_32(1101585816);
+emit_32(1109147648);
+emit_32(3264507911);
+emit_32(1100545471);
+emit_32(1109147648);
+emit_32(3263995904);
+emit_32(1100004144);
+emit_32(1109147648);
+emit_32(3263483911);
+emit_32(1099601124);
+emit_32(1109147648);
+emit_32(3262775296);
+emit_32(1099485518);
+emit_32(1109147648);
+emit_32(3261751309);
+emit_32(1099132987);
+emit_32(1109147648);
+emit_32(3260727296);
+emit_32(1098562037);
+emit_32(1109147648);
+emit_32(3259703309);
+emit_32(1099204605);
+emit_32(1109147648);
+emit_32(3258679296);
+emit_32(1100206834);
+emit_32(1109147648);
+emit_32(3257655309);
+emit_32(1100697777);
+emit_32(1109147648);
+emit_32(3256631296);
+emit_32(1100970774);
+emit_32(1109147648);
+emit_32(3255607309);
+emit_32(1101185522);
+emit_32(1109147648);
+emit_32(3254386688);
+emit_32(1102281336);
+emit_32(1109147648);
+emit_32(3252338714);
+emit_32(1103401478);
+emit_32(1109147648);
+emit_32(3250290688);
+emit_32(1103912763);
+emit_32(1109147648);
+emit_32(3248242714);
+emit_32(1104404808);
+emit_32(1109147648);
+emit_32(3245998080);
+emit_32(1105352196);
+emit_32(1109147648);
+emit_32(3241902132);
+emit_32(1106248519);
+emit_32(1109147648);
+emit_32(3237609472);
+emit_32(1107362631);
+emit_32(1109147648);
+emit_32(3229220864);
+emit_32(1107724259);
+emit_32(1109147648);
+emit_32(0);
+emit_32(1107777290);
+emit_32(1109147648);
+emit_32(1081737216);
+emit_32(1108060956);
+emit_32(1109147648);
+emit_32(3279552512);
+emit_32(1081790232);
+emit_32(1108123661);
+emit_32(3279296528);
+emit_32(1079535290);
+emit_32(1108123661);
+emit_32(3279040545);
+emit_32(1079065864);
+emit_32(1108123661);
+emit_32(3278784496);
+emit_32(1082272577);
+emit_32(1108123661);
+emit_32(3278528512);
+emit_32(1083963574);
+emit_32(1108123661);
+emit_32(3278272528);
+emit_32(1087349677);
+emit_32(1108123661);
+emit_32(3278016545);
+emit_32(1088785241);
+emit_32(1108123661);
+emit_32(3277760496);
+emit_32(1090741705);
+emit_32(1108123661);
+emit_32(3277504512);
+emit_32(1090749360);
+emit_32(1108123661);
+emit_32(3277248528);
+emit_32(1093053448);
+emit_32(1108123661);
+emit_32(3276992545);
+emit_32(1094660601);
+emit_32(1108123661);
+emit_32(3276736496);
+emit_32(1096196555);
+emit_32(1108123661);
+emit_32(3276480512);
+emit_32(1096902351);
+emit_32(1108123661);
+emit_32(3276224528);
+emit_32(1098391434);
+emit_32(1108123661);
+emit_32(3275968545);
+emit_32(1099380084);
+emit_32(1108123661);
+emit_32(3275712496);
+emit_32(1101235225);
+emit_32(1108123661);
+emit_32(3275456512);
+emit_32(1102578188);
+emit_32(1108123661);
+emit_32(3275200528);
+emit_32(1103112385);
+emit_32(1108123661);
+emit_32(3274944545);
+emit_32(1103997541);
+emit_32(1108123661);
+emit_32(3274688496);
+emit_32(1104833046);
+emit_32(1108123661);
+emit_32(3274432512);
+emit_32(1105701582);
+emit_32(1108123661);
+emit_32(3274176528);
+emit_32(1106849458);
+emit_32(1108123661);
+emit_32(3273920545);
+emit_32(1107522617);
+emit_32(1108123661);
+emit_32(3273664496);
+emit_32(1107703025);
+emit_32(1108123661);
+emit_32(3273408512);
+emit_32(1107971565);
+emit_32(1108123661);
+emit_32(3273152528);
+emit_32(1107971565);
+emit_32(1108123661);
+emit_32(3272896545);
+emit_32(1107873025);
+emit_32(1108123661);
+emit_32(3272640496);
+emit_32(1108008685);
+emit_32(1108123661);
+emit_32(3272384512);
+emit_32(1108230878);
+emit_32(1108123661);
+emit_32(3272128528);
+emit_32(1108292220);
+emit_32(1108123661);
+emit_32(3271872545);
+emit_32(1108636520);
+emit_32(1108123661);
+emit_32(3271616496);
+emit_32(1108671909);
+emit_32(1108123661);
+emit_32(3271163904);
+emit_32(1108573789);
+emit_32(1108123661);
+emit_32(3270651937);
+emit_32(1108191583);
+emit_32(1108123661);
+emit_32(3270139970);
+emit_32(1108044546);
+emit_32(1108123661);
+emit_32(3269627871);
+emit_32(1108195856);
+emit_32(1108123661);
+emit_32(3269115904);
+emit_32(1108061848);
+emit_32(1108123661);
+emit_32(3268603937);
+emit_32(1107692487);
+emit_32(1108123661);
+emit_32(3268091970);
+emit_32(1107358332);
+emit_32(1108123661);
+emit_32(3267579911);
+emit_32(1106436476);
+emit_32(1108123661);
+emit_32(3267067904);
+emit_32(1105876117);
+emit_32(1108123661);
+emit_32(3266555911);
+emit_32(1104926002);
+emit_32(1108123661);
+emit_32(3266043904);
+emit_32(1103527150);
+emit_32(1108123661);
+emit_32(3265531911);
+emit_32(1102838969);
+emit_32(1108123661);
+emit_32(3265019904);
+emit_32(1101768163);
+emit_32(1108123661);
+emit_32(3264507911);
+emit_32(1100951952);
+emit_32(1108123661);
+emit_32(3263995904);
+emit_32(1099817497);
+emit_32(1108123661);
+emit_32(3263483911);
+emit_32(1099592683);
+emit_32(1108123661);
+emit_32(3262775296);
+emit_32(1099523424);
+emit_32(1108123661);
+emit_32(3261751309);
+emit_32(1099184734);
+emit_32(1108123661);
+emit_32(3260727296);
+emit_32(1099580100);
+emit_32(1108123661);
+emit_32(3259703309);
+emit_32(1100319870);
+emit_32(1108123661);
+emit_32(3258679296);
+emit_32(1100702181);
+emit_32(1108123661);
+emit_32(3257655309);
+emit_32(1101110811);
+emit_32(1108123661);
+emit_32(3256631296);
+emit_32(1101752487);
+emit_32(1108123661);
+emit_32(3255607309);
+emit_32(1101832074);
+emit_32(1108123661);
+emit_32(3254386688);
+emit_32(1103107038);
+emit_32(1108123661);
+emit_32(3252338714);
+emit_32(1103861173);
+emit_32(1108123661);
+emit_32(3250290688);
+emit_32(1104152415);
+emit_32(1108123661);
+emit_32(3248242714);
+emit_32(1104902672);
+emit_32(1108123661);
+emit_32(3245998080);
+emit_32(1106376602);
+emit_32(1108123661);
+emit_32(3241902132);
+emit_32(1107508593);
+emit_32(1108123661);
+emit_32(3237609472);
+emit_32(1108028267);
+emit_32(1108123661);
+emit_32(3229220864);
+emit_32(1108316180);
+emit_32(1108123661);
+emit_32(0);
+emit_32(1108600553);
+emit_32(1108123661);
+emit_32(1081737216);
+emit_32(1109011386);
+emit_32(1108123661);
+emit_32(3279552512);
+emit_32(1074938711);
+emit_32(1106903040);
+emit_32(3279296528);
+emit_32(1070708671);
+emit_32(1106903040);
+emit_32(3279040545);
+emit_32(1075430996);
+emit_32(1106903040);
+emit_32(3278784496);
+emit_32(1078754772);
+emit_32(1106903040);
+emit_32(3278528512);
+emit_32(1082105015);
+emit_32(1106903040);
+emit_32(3278272528);
+emit_32(1084220747);
+emit_32(1106903040);
+emit_32(3278016545);
+emit_32(1085553718);
+emit_32(1106903040);
+emit_32(3277760496);
+emit_32(1088135228);
+emit_32(1106903040);
+emit_32(3277504512);
+emit_32(1089208635);
+emit_32(1106903040);
+emit_32(3277248528);
+emit_32(1091931860);
+emit_32(1106903040);
+emit_32(3276992545);
+emit_32(1094402336);
+emit_32(1106903040);
+emit_32(3276736496);
+emit_32(1096213751);
+emit_32(1106903040);
+emit_32(3276480512);
+emit_32(1097279629);
+emit_32(1106903040);
+emit_32(3276224528);
+emit_32(1098783601);
+emit_32(1106903040);
+emit_32(3275968545);
+emit_32(1099888067);
+emit_32(1106903040);
+emit_32(3275712496);
+emit_32(1101525837);
+emit_32(1106903040);
+emit_32(3275456512);
+emit_32(1102857267);
+emit_32(1106903040);
+emit_32(3275200528);
+emit_32(1103317277);
+emit_32(1106903040);
+emit_32(3274944545);
+emit_32(1104193048);
+emit_32(1106903040);
+emit_32(3274688496);
+emit_32(1105188461);
+emit_32(1106903040);
+emit_32(3274432512);
+emit_32(1105975732);
+emit_32(1106903040);
+emit_32(3274176528);
+emit_32(1107142692);
+emit_32(1106903040);
+emit_32(3273920545);
+emit_32(1107580315);
+emit_32(1106903040);
+emit_32(3273664496);
+emit_32(1107715634);
+emit_32(1106903040);
+emit_32(3273408512);
+emit_32(1107697441);
+emit_32(1106903040);
+emit_32(3273152528);
+emit_32(1107818683);
+emit_32(1106903040);
+emit_32(3272896545);
+emit_32(1108195331);
+emit_32(1106903040);
+emit_32(3272640496);
+emit_32(1108463609);
+emit_32(1106903040);
+emit_32(3272384512);
+emit_32(1108323782);
+emit_32(1106903040);
+emit_32(3272128528);
+emit_32(1108524374);
+emit_32(1106903040);
+emit_32(3271872545);
+emit_32(1108820912);
+emit_32(1106903040);
+emit_32(3271616496);
+emit_32(1108768614);
+emit_32(1106903040);
+emit_32(3271163904);
+emit_32(1108591929);
+emit_32(1106903040);
+emit_32(3270651937);
+emit_32(1108250146);
+emit_32(1106903040);
+emit_32(3270139970);
+emit_32(1108083370);
+emit_32(1106903040);
+emit_32(3269627871);
+emit_32(1108183876);
+emit_32(1106903040);
+emit_32(3269115904);
+emit_32(1107985354);
+emit_32(1106903040);
+emit_32(3268603937);
+emit_32(1107793333);
+emit_32(1106903040);
+emit_32(3268091970);
+emit_32(1107344595);
+emit_32(1106903040);
+emit_32(3267579911);
+emit_32(1106660190);
+emit_32(1106903040);
+emit_32(3267067904);
+emit_32(1105863377);
+emit_32(1106903040);
+emit_32(3266555911);
+emit_32(1104810344);
+emit_32(1106903040);
+emit_32(3266043904);
+emit_32(1103848328);
+emit_32(1106903040);
+emit_32(3265531911);
+emit_32(1102592396);
+emit_32(1106903040);
+emit_32(3265019904);
+emit_32(1101769893);
+emit_32(1106903040);
+emit_32(3264507911);
+emit_32(1100719378);
+emit_32(1106903040);
+emit_32(3263995904);
+emit_32(1100007709);
+emit_32(1106903040);
+emit_32(3263483911);
+emit_32(1099495585);
+emit_32(1106903040);
+emit_32(3262775296);
+emit_32(1099523739);
+emit_32(1106903040);
+emit_32(3261751309);
+emit_32(1099506857);
+emit_32(1106903040);
+emit_32(3260727296);
+emit_32(1100188693);
+emit_32(1106903040);
+emit_32(3259703309);
+emit_32(1100974496);
+emit_32(1106903040);
+emit_32(3258679296);
+emit_32(1101640447);
+emit_32(1106903040);
+emit_32(3257655309);
+emit_32(1101639503);
+emit_32(1106903040);
+emit_32(3256631296);
+emit_32(1102123945);
+emit_32(1106903040);
+emit_32(3255607309);
+emit_32(1102739250);
+emit_32(1106903040);
+emit_32(3254386688);
+emit_32(1103471260);
+emit_32(1106903040);
+emit_32(3252338714);
+emit_32(1104291457);
+emit_32(1106903040);
+emit_32(3250290688);
+emit_32(1104973241);
+emit_32(1106903040);
+emit_32(3248242714);
+emit_32(1106462586);
+emit_32(1106903040);
+emit_32(3245998080);
+emit_32(1107570275);
+emit_32(1106903040);
+emit_32(3241902132);
+emit_32(1108078939);
+emit_32(1106903040);
+emit_32(3237609472);
+emit_32(1108626034);
+emit_32(1106903040);
+emit_32(3229220864);
+emit_32(1109189434);
+emit_32(1106903040);
+emit_32(0);
+emit_32(1109489300);
+emit_32(1106903040);
+emit_32(1081737216);
+emit_32(1109770397);
+emit_32(1106903040);
+emit_32(3279552512);
+emit_32(1056202922);
+emit_32(1104855066);
+emit_32(3279296528);
+emit_32(1059176634);
+emit_32(1104855066);
+emit_32(3279040545);
+emit_32(1067152489);
+emit_32(1104855066);
+emit_32(3278784496);
+emit_32(1069776361);
+emit_32(1104855066);
+emit_32(3278528512);
+emit_32(1076809790);
+emit_32(1104855066);
+emit_32(3278272528);
+emit_32(1080678154);
+emit_32(1104855066);
+emit_32(3278016545);
+emit_32(1084300292);
+emit_32(1104855066);
+emit_32(3277760496);
+emit_32(1086892330);
+emit_32(1104855066);
+emit_32(3277504512);
+emit_32(1089616510);
+emit_32(1104855066);
+emit_32(3277248528);
+emit_32(1092235758);
+emit_32(1104855066);
+emit_32(3276992545);
+emit_32(1094086505);
+emit_32(1104855066);
+emit_32(3276736496);
+emit_32(1095456260);
+emit_32(1104855066);
+emit_32(3276480512);
+emit_32(1097209794);
+emit_32(1104855066);
+emit_32(3276224528);
+emit_32(1098815478);
+emit_32(1104855066);
+emit_32(3275968545);
+emit_32(1099901331);
+emit_32(1104855066);
+emit_32(3275712496);
+emit_32(1101448138);
+emit_32(1104855066);
+emit_32(3275456512);
+emit_32(1102457340);
+emit_32(1104855066);
+emit_32(3275200528);
+emit_32(1103405724);
+emit_32(1104855014);
+emit_32(3274944545);
+emit_32(1104703652);
+emit_32(1104855066);
+emit_32(3274688496);
+emit_32(1105909409);
+emit_32(1104855014);
+emit_32(3274432512);
+emit_32(1106485392);
+emit_32(1104855066);
+emit_32(3274176528);
+emit_32(1107410708);
+emit_32(1104855014);
+emit_32(3273920545);
+emit_32(1107950751);
+emit_32(1104855066);
+emit_32(3273664496);
+emit_32(1108072569);
+emit_32(1104855014);
+emit_32(3273408512);
+emit_32(1108067090);
+emit_32(1104855066);
+emit_32(3273152528);
+emit_32(1108270514);
+emit_32(1104855014);
+emit_32(3272896545);
+emit_32(1108617121);
+emit_32(1104855066);
+emit_32(3272640496);
+emit_32(1108893604);
+emit_32(1104855014);
+emit_32(3272384512);
+emit_32(1108708478);
+emit_32(1104855066);
+emit_32(3272128528);
+emit_32(1108458498);
+emit_32(1104855014);
+emit_32(3271872545);
+emit_32(1108616544);
+emit_32(1104855066);
+emit_32(3271616496);
+emit_32(1108674898);
+emit_32(1104855014);
+emit_32(3271163904);
+emit_32(1108489064);
+emit_32(1104855066);
+emit_32(3270651937);
+emit_32(1108208884);
+emit_32(1104855014);
+emit_32(3270139970);
+emit_32(1108168330);
+emit_32(1104855066);
+emit_32(3269627871);
+emit_32(1107919032);
+emit_32(1104855014);
+emit_32(3269115904);
+emit_32(1107884900);
+emit_32(1104855066);
+emit_32(3268603937);
+emit_32(1107737995);
+emit_32(1104855014);
+emit_32(3268091970);
+emit_32(1107388714);
+emit_32(1104855066);
+emit_32(3267579911);
+emit_32(1106305876);
+emit_32(1104855014);
+emit_32(3267067904);
+emit_32(1105456634);
+emit_32(1104855066);
+emit_32(3266555911);
+emit_32(1104695683);
+emit_32(1104855014);
+emit_32(3266043904);
+emit_32(1103610459);
+emit_32(1104855066);
+emit_32(3265531911);
+emit_32(1102562093);
+emit_32(1104855014);
+emit_32(3265019904);
+emit_32(1101922409);
+emit_32(1104855066);
+emit_32(3264507911);
+emit_32(1100403809);
+emit_32(1104855066);
+emit_32(3263995904);
+emit_32(1100079589);
+emit_32(1104855066);
+emit_32(3263483911);
+emit_32(1100150630);
+emit_32(1104855066);
+emit_32(3262775296);
+emit_32(1100309489);
+emit_32(1104855066);
+emit_32(3261751309);
+emit_32(1100247676);
+emit_32(1104855066);
+emit_32(3260727296);
+emit_32(1100564555);
+emit_32(1104855066);
+emit_32(3259703309);
+emit_32(1101442528);
+emit_32(1104855066);
+emit_32(3258679296);
+emit_32(1101848484);
+emit_32(1104855066);
+emit_32(3257655309);
+emit_32(1102017567);
+emit_32(1104855014);
+emit_32(3256631296);
+emit_32(1102603144);
+emit_32(1104855066);
+emit_32(3255607309);
+emit_32(1103556772);
+emit_32(1104855014);
+emit_32(3254386688);
+emit_32(1103988313);
+emit_32(1104855066);
+emit_32(3252338714);
+emit_32(1105183113);
+emit_32(1104855014);
+emit_32(3250290688);
+emit_32(1106410471);
+emit_32(1104855066);
+emit_32(3248242714);
+emit_32(1107817844);
+emit_32(1104855014);
+emit_32(3245998080);
+emit_32(1108265874);
+emit_32(1104855066);
+emit_32(3241902132);
+emit_32(1108848489);
+emit_32(1104855014);
+emit_32(3237609472);
+emit_32(1109428929);
+emit_32(1104855066);
+emit_32(3229220864);
+emit_32(1109814464);
+emit_32(1104855014);
+emit_32(0);
+emit_32(1109989261);
+emit_32(1104855066);
+emit_32(1081737216);
+emit_32(1110109952);
+emit_32(1104855014);
+emit_32(3279552512);
+emit_32(1043753825);
+emit_32(1102807040);
+emit_32(3279296528);
+emit_32(1066019523);
+emit_32(1102807040);
+emit_32(3279040545);
+emit_32(1069754970);
+emit_32(1102807040);
+emit_32(3278784496);
+emit_32(1076201867);
+emit_32(1102807040);
+emit_32(3278528512);
+emit_32(1080094139);
+emit_32(1102807040);
+emit_32(3278272528);
+emit_32(1082614937);
+emit_32(1102807040);
+emit_32(3278016545);
+emit_32(1085915917);
+emit_32(1102807040);
+emit_32(3277760496);
+emit_32(1088968951);
+emit_32(1102807040);
+emit_32(3277504512);
+emit_32(1091412437);
+emit_32(1102807040);
+emit_32(3277248528);
+emit_32(1093562951);
+emit_32(1102807040);
+emit_32(3276992545);
+emit_32(1095461818);
+emit_32(1102807040);
+emit_32(3276736496);
+emit_32(1097780324);
+emit_32(1102807040);
+emit_32(3276480512);
+emit_32(1098541276);
+emit_32(1102807040);
+emit_32(3276224528);
+emit_32(1099184996);
+emit_32(1102807040);
+emit_32(3275968545);
+emit_32(1099512414);
+emit_32(1102807040);
+emit_32(3275712496);
+emit_32(1101300079);
+emit_32(1102807040);
+emit_32(3275456512);
+emit_32(1102630565);
+emit_32(1102807040);
+emit_32(3275200528);
+emit_32(1103513990);
+emit_32(1102807040);
+emit_32(3274944545);
+emit_32(1104603251);
+emit_32(1102807040);
+emit_32(3274688496);
+emit_32(1105499154);
+emit_32(1102807040);
+emit_32(3274432512);
+emit_32(1106400667);
+emit_32(1102807040);
+emit_32(3274176528);
+emit_32(1107499889);
+emit_32(1102807040);
+emit_32(3273920545);
+emit_32(1107983047);
+emit_32(1102807040);
+emit_32(3273664496);
+emit_32(1108263620);
+emit_32(1102807040);
+emit_32(3273408512);
+emit_32(1108637542);
+emit_32(1102807040);
+emit_32(3273152528);
+emit_32(1108628367);
+emit_32(1102807040);
+emit_32(3272896545);
+emit_32(1108868989);
+emit_32(1102807040);
+emit_32(3272640496);
+emit_32(1109049213);
+emit_32(1102807040);
+emit_32(3272384512);
+emit_32(1108849748);
+emit_32(1102807040);
+emit_32(3272128528);
+emit_32(1108540811);
+emit_32(1102807040);
+emit_32(3271872545);
+emit_32(1108655184);
+emit_32(1102807040);
+emit_32(3271616496);
+emit_32(1108572425);
+emit_32(1102807040);
+emit_32(3271163904);
+emit_32(1108411810);
+emit_32(1102807040);
+emit_32(3270651937);
+emit_32(1108042344);
+emit_32(1102807040);
+emit_32(3270139970);
+emit_32(1107971460);
+emit_32(1102807040);
+emit_32(3269627871);
+emit_32(1107793412);
+emit_32(1102807040);
+emit_32(3269115904);
+emit_32(1107689131);
+emit_32(1102807040);
+emit_32(3268603937);
+emit_32(1107563643);
+emit_32(1102807040);
+emit_32(3268091970);
+emit_32(1107010152);
+emit_32(1102807040);
+emit_32(3267579911);
+emit_32(1106032669);
+emit_32(1102807040);
+emit_32(3267067904);
+emit_32(1105136609);
+emit_32(1102807040);
+emit_32(3266555911);
+emit_32(1104406695);
+emit_32(1102807040);
+emit_32(3266043904);
+emit_32(1103385749);
+emit_32(1102807040);
+emit_32(3265531911);
+emit_32(1102373034);
+emit_32(1102807040);
+emit_32(3265019904);
+emit_32(1101728317);
+emit_32(1102807040);
+emit_32(3264507911);
+emit_32(1100615464);
+emit_32(1102807040);
+emit_32(3263995904);
+emit_32(1100840278);
+emit_32(1102807040);
+emit_32(3263483911);
+emit_32(1100652636);
+emit_32(1102807040);
+emit_32(3262775296);
+emit_32(1101193963);
+emit_32(1102807040);
+emit_32(3261751309);
+emit_32(1101527463);
+emit_32(1102807040);
+emit_32(3260727296);
+emit_32(1101300761);
+emit_32(1102807040);
+emit_32(3259703309);
+emit_32(1101861382);
+emit_32(1102807040);
+emit_32(3258679296);
+emit_32(1102090338);
+emit_32(1102807040);
+emit_32(3257655309);
+emit_32(1102730966);
+emit_32(1102807040);
+emit_32(3256631296);
+emit_32(1103554255);
+emit_32(1102807040);
+emit_32(3255607309);
+emit_32(1104113408);
+emit_32(1102807040);
+emit_32(3254386688);
+emit_32(1104786647);
+emit_32(1102807040);
+emit_32(3252338714);
+emit_32(1106105913);
+emit_32(1102807040);
+emit_32(3250290688);
+emit_32(1107509877);
+emit_32(1102807040);
+emit_32(3248242714);
+emit_32(1108222175);
+emit_32(1102807040);
+emit_32(3245998080);
+emit_32(1108925324);
+emit_32(1102807040);
+emit_32(3241902132);
+emit_32(1109456873);
+emit_32(1102807040);
+emit_32(3237609472);
+emit_32(1109851609);
+emit_32(1102807040);
+emit_32(3229220864);
+emit_32(1110277358);
+emit_32(1102807040);
+emit_32(0);
+emit_32(1110377130);
+emit_32(1102807040);
+emit_32(1081737216);
+emit_32(1110619796);
+emit_32(1102807040);
+emit_32(3279552512);
+emit_32(1041074638);
+emit_32(1100759066);
+emit_32(3279296528);
+emit_32(1068712015);
+emit_32(1100759066);
+emit_32(3279040545);
+emit_32(1079048248);
+emit_32(1100759066);
+emit_32(3278784496);
+emit_32(1080674002);
+emit_32(1100759066);
+emit_32(3278528512);
+emit_32(1084030494);
+emit_32(1100759066);
+emit_32(3278272528);
+emit_32(1086394970);
+emit_32(1100759066);
+emit_32(3278016545);
+emit_32(1090514279);
+emit_32(1100759066);
+emit_32(3277760496);
+emit_32(1092005166);
+emit_32(1100759066);
+emit_32(3277504512);
+emit_32(1092661805);
+emit_32(1100759066);
+emit_32(3277248528);
+emit_32(1094882479);
+emit_32(1100759066);
+emit_32(3276992545);
+emit_32(1096495818);
+emit_32(1100759066);
+emit_32(3276736496);
+emit_32(1098656304);
+emit_32(1100759066);
+emit_32(3276480512);
+emit_32(1098988860);
+emit_32(1100759066);
+emit_32(3276224528);
+emit_32(1099485466);
+emit_32(1100759066);
+emit_32(3275968545);
+emit_32(1100054109);
+emit_32(1100759066);
+emit_32(3275712496);
+emit_32(1101363203);
+emit_32(1100759066);
+emit_32(3275456512);
+emit_32(1102623015);
+emit_32(1100759014);
+emit_32(3275200528);
+emit_32(1103260025);
+emit_32(1100759066);
+emit_32(3274944545);
+emit_32(1104497764);
+emit_32(1100759014);
+emit_32(3274688496);
+emit_32(1105320739);
+emit_32(1100759066);
+emit_32(3274432512);
+emit_32(1106586055);
+emit_32(1100759014);
+emit_32(3274176528);
+emit_32(1107523640);
+emit_32(1100759066);
+emit_32(3273920545);
+emit_32(1108105783);
+emit_32(1100759014);
+emit_32(3273664496);
+emit_32(1108678148);
+emit_32(1100759066);
+emit_32(3273408512);
+emit_32(1109027062);
+emit_32(1100759014);
+emit_32(3273152528);
+emit_32(1108942022);
+emit_32(1100759066);
+emit_32(3272896545);
+emit_32(1108995290);
+emit_32(1100759014);
+emit_32(3272640496);
+emit_32(1108955129);
+emit_32(1100759066);
+emit_32(3272384512);
+emit_32(1108906895);
+emit_32(1100759014);
+emit_32(3272128528);
+emit_32(1108765993);
+emit_32(1100759014);
+emit_32(3271872545);
+emit_32(1108661948);
+emit_32(1100759014);
+emit_32(3271616496);
+emit_32(1108494097);
+emit_32(1100759014);
+emit_32(3271163904);
+emit_32(1108408166);
+emit_32(1100759014);
+emit_32(3270651937);
+emit_32(1107959611);
+emit_32(1100759014);
+emit_32(3270139970);
+emit_32(1107654974);
+emit_32(1100759014);
+emit_32(3269627871);
+emit_32(1107500859);
+emit_32(1100759014);
+emit_32(3269115904);
+emit_32(1107220916);
+emit_32(1100759014);
+emit_32(3268603937);
+emit_32(1106950121);
+emit_32(1100759014);
+emit_32(3268091970);
+emit_32(1106110684);
+emit_32(1100759014);
+emit_32(3267579911);
+emit_32(1105572449);
+emit_32(1100759014);
+emit_32(3267067904);
+emit_32(1105141642);
+emit_32(1100759014);
+emit_32(3266555911);
+emit_32(1104163950);
+emit_32(1100759014);
+emit_32(3266043904);
+emit_32(1103388685);
+emit_32(1100759014);
+emit_32(3265531911);
+emit_32(1102762790);
+emit_32(1100759014);
+emit_32(3265019904);
+emit_32(1101771361);
+emit_32(1100759066);
+emit_32(3264507911);
+emit_32(1101188668);
+emit_32(1100759066);
+emit_32(3263995904);
+emit_32(1101103314);
+emit_32(1100759066);
+emit_32(3263483911);
+emit_32(1101520595);
+emit_32(1100759066);
+emit_32(3262775296);
+emit_32(1102173438);
+emit_32(1100759014);
+emit_32(3261751309);
+emit_32(1102239498);
+emit_32(1100759014);
+emit_32(3260727296);
+emit_32(1102454928);
+emit_32(1100759014);
+emit_32(3259703309);
+emit_32(1102538762);
+emit_32(1100759014);
+emit_32(3258679296);
+emit_32(1102868120);
+emit_32(1100759014);
+emit_32(3257655309);
+emit_32(1103304380);
+emit_32(1100759014);
+emit_32(3256631296);
+emit_32(1103894256);
+emit_32(1100759014);
+emit_32(3255607309);
+emit_32(1104606187);
+emit_32(1100759014);
+emit_32(3254386688);
+emit_32(1105706615);
+emit_32(1100759014);
+emit_32(3252338714);
+emit_32(1106778469);
+emit_32(1100759014);
+emit_32(3250290688);
+emit_32(1108039618);
+emit_32(1100759014);
+emit_32(3248242714);
+emit_32(1108668894);
+emit_32(1100759014);
+emit_32(3245998080);
+emit_32(1109286558);
+emit_32(1100759014);
+emit_32(3241902132);
+emit_32(1109804738);
+emit_32(1100759014);
+emit_32(3237609472);
+emit_32(1110243829);
+emit_32(1100759014);
+emit_32(3229220864);
+emit_32(1110734746);
+emit_32(1100759014);
+emit_32(0);
+emit_32(1110902178);
+emit_32(1100759014);
+emit_32(1081737216);
+emit_32(1111203643);
+emit_32(1100759014);
+emit_32(3279552512);
+emit_32(1055720947);
+emit_32(1098514432);
+emit_32(3279296528);
+emit_32(1074391480);
+emit_32(1098514432);
+emit_32(3279040545);
+emit_32(1080839929);
+emit_32(1098514432);
+emit_32(3278784496);
+emit_32(1084004468);
+emit_32(1098514432);
+emit_32(3278528512);
+emit_32(1088331836);
+emit_32(1098514432);
+emit_32(3278272528);
+emit_32(1090916618);
+emit_32(1098514432);
+emit_32(3278016545);
+emit_32(1091793217);
+emit_32(1098514432);
+emit_32(3277760496);
+emit_32(1092681623);
+emit_32(1098514432);
+emit_32(3277504512);
+emit_32(1094343931);
+emit_32(1098514432);
+emit_32(3277248528);
+emit_32(1096031404);
+emit_32(1098514432);
+emit_32(3276992545);
+emit_32(1097722652);
+emit_32(1098514432);
+emit_32(3276736496);
+emit_32(1098892129);
+emit_32(1098514432);
+emit_32(3276480512);
+emit_32(1099445043);
+emit_32(1098514432);
+emit_32(3276224528);
+emit_32(1099878158);
+emit_32(1098514432);
+emit_32(3275968545);
+emit_32(1101192548);
+emit_32(1098514432);
+emit_32(3275712496);
+emit_32(1102096839);
+emit_32(1098514432);
+emit_32(3275456512);
+emit_32(1103322992);
+emit_32(1098514432);
+emit_32(3275200528);
+emit_32(1103921152);
+emit_32(1098514432);
+emit_32(3274944545);
+emit_32(1104725200);
+emit_32(1098514432);
+emit_32(3274688496);
+emit_32(1106297907);
+emit_32(1098514432);
+emit_32(3274432512);
+emit_32(1107190193);
+emit_32(1098514432);
+emit_32(3274176528);
+emit_32(1108005172);
+emit_32(1098514432);
+emit_32(3273920545);
+emit_32(1108650361);
+emit_32(1098514432);
+emit_32(3273664496);
+emit_32(1108785837);
+emit_32(1098514432);
+emit_32(3273408512);
+emit_32(1108769610);
+emit_32(1098514432);
+emit_32(3273152528);
+emit_32(1108817661);
+emit_32(1098514432);
+emit_32(3272896545);
+emit_32(1108831240);
+emit_32(1098514432);
+emit_32(3272640496);
+emit_32(1108859630);
+emit_32(1098514432);
+emit_32(3272384512);
+emit_32(1108733356);
+emit_32(1098514432);
+emit_32(3272128528);
+emit_32(1108612271);
+emit_32(1098514432);
+emit_32(3271872545);
+emit_32(1108465523);
+emit_32(1098514432);
+emit_32(3271616496);
+emit_32(1108386120);
+emit_32(1098514432);
+emit_32(3271163904);
+emit_32(1108193260);
+emit_32(1098514432);
+emit_32(3270651937);
+emit_32(1107694767);
+emit_32(1098514432);
+emit_32(3270139970);
+emit_32(1107326665);
+emit_32(1098514432);
+emit_32(3269627871);
+emit_32(1106737994);
+emit_32(1098514432);
+emit_32(3269115904);
+emit_32(1106158394);
+emit_32(1098514432);
+emit_32(3268603937);
+emit_32(1106202906);
+emit_32(1098514432);
+emit_32(3268091970);
+emit_32(1105578951);
+emit_32(1098514432);
+emit_32(3267579911);
+emit_32(1105052566);
+emit_32(1098514432);
+emit_32(3267067904);
+emit_32(1104895908);
+emit_32(1098514432);
+emit_32(3266555911);
+emit_32(1104074873);
+emit_32(1098514432);
+emit_32(3266043904);
+emit_32(1103133881);
+emit_32(1098514432);
+emit_32(3265531911);
+emit_32(1102465938);
+emit_32(1098514432);
+emit_32(3265019904);
+emit_32(1101262907);
+emit_32(1098514432);
+emit_32(3264507911);
+emit_32(1101530399);
+emit_32(1098514432);
+emit_32(3263995904);
+emit_32(1101685588);
+emit_32(1098514432);
+emit_32(3263483911);
+emit_32(1102353111);
+emit_32(1098514432);
+emit_32(3262775296);
+emit_32(1102607496);
+emit_32(1098514432);
+emit_32(3261751309);
+emit_32(1102688970);
+emit_32(1098514432);
+emit_32(3260727296);
+emit_32(1103199522);
+emit_32(1098514432);
+emit_32(3259703309);
+emit_32(1103396916);
+emit_32(1098514432);
+emit_32(3258679296);
+emit_32(1103692248);
+emit_32(1098514432);
+emit_32(3257655309);
+emit_32(1104150266);
+emit_32(1098514432);
+emit_32(3256631296);
+emit_32(1104605715);
+emit_32(1098514432);
+emit_32(3255607309);
+emit_32(1105125337);
+emit_32(1098514432);
+emit_32(3254386688);
+emit_32(1106191267);
+emit_32(1098514432);
+emit_32(3252338714);
+emit_32(1107529407);
+emit_32(1098514432);
+emit_32(3250290688);
+emit_32(1108420880);
+emit_32(1098514432);
+emit_32(3248242714);
+emit_32(1108934001);
+emit_32(1098514432);
+emit_32(3245998080);
+emit_32(1109548859);
+emit_32(1098514432);
+emit_32(3241902132);
+emit_32(1109995631);
+emit_32(1098514432);
+emit_32(3237609472);
+emit_32(1110790845);
+emit_32(1098514432);
+emit_32(3229220864);
+emit_32(1111318856);
+emit_32(1098514432);
+emit_32(0);
+emit_32(1111747671);
+emit_32(1098514432);
+emit_32(1081737216);
+emit_32(1111812866);
+emit_32(1098514432);
+emit_32(3279552512);
+emit_32(1066749584);
+emit_32(1094418484);
+emit_32(3279296528);
+emit_32(1077908068);
+emit_32(1094418484);
+emit_32(3279040545);
+emit_32(1082923764);
+emit_32(1094418484);
+emit_32(3278784496);
+emit_32(1084680422);
+emit_32(1094418484);
+emit_32(3278528512);
+emit_32(1088094187);
+emit_32(1094418484);
+emit_32(3278272528);
+emit_32(1090882015);
+emit_32(1094418484);
+emit_32(3278016545);
+emit_32(1091863944);
+emit_32(1094418484);
+emit_32(3277760496);
+emit_32(1092512425);
+emit_32(1094418484);
+emit_32(3277504512);
+emit_32(1093582035);
+emit_32(1094418380);
+emit_32(3277248528);
+emit_32(1096483445);
+emit_32(1094418380);
+emit_32(3276992545);
+emit_32(1098671194);
+emit_32(1094418380);
+emit_32(3276736496);
+emit_32(1099029545);
+emit_32(1094418380);
+emit_32(3276480512);
+emit_32(1099564319);
+emit_32(1094418380);
+emit_32(3276224528);
+emit_32(1100538603);
+emit_32(1094418380);
+emit_32(3275968545);
+emit_32(1101777758);
+emit_32(1094418380);
+emit_32(3275712496);
+emit_32(1103112962);
+emit_32(1094418380);
+emit_32(3275456512);
+emit_32(1104081112);
+emit_32(1094418380);
+emit_32(3275200528);
+emit_32(1104685826);
+emit_32(1094418380);
+emit_32(3274944545);
+emit_32(1105332273);
+emit_32(1094418380);
+emit_32(3274688496);
+emit_32(1107088428);
+emit_32(1094418380);
+emit_32(3274432512);
+emit_32(1107461145);
+emit_32(1094418380);
+emit_32(3274176528);
+emit_32(1108070262);
+emit_32(1094418380);
+emit_32(3273920545);
+emit_32(1108560734);
+emit_32(1094418380);
+emit_32(3273664496);
+emit_32(1108646822);
+emit_32(1094418380);
+emit_32(3273408512);
+emit_32(1108781538);
+emit_32(1094418380);
+emit_32(3273152528);
+emit_32(1108714507);
+emit_32(1094418380);
+emit_32(3272896545);
+emit_32(1108628105);
+emit_32(1094418380);
+emit_32(3272640496);
+emit_32(1108772101);
+emit_32(1094418380);
+emit_32(3272384512);
+emit_32(1108535384);
+emit_32(1094418380);
+emit_32(3272128528);
+emit_32(1108471736);
+emit_32(1094418380);
+emit_32(3271872545);
+emit_32(1108149718);
+emit_32(1094418380);
+emit_32(3271616496);
+emit_32(1108005775);
+emit_32(1094418380);
+emit_32(3271163904);
+emit_32(1107845369);
+emit_32(1094418380);
+emit_32(3270651937);
+emit_32(1107488748);
+emit_32(1094418380);
+emit_32(3270139970);
+emit_32(1107065831);
+emit_32(1094418380);
+emit_32(3269627871);
+emit_32(1106640477);
+emit_32(1094418380);
+emit_32(3269115904);
+emit_32(1106331986);
+emit_32(1094418380);
+emit_32(3268603937);
+emit_32(1106202801);
+emit_32(1094418380);
+emit_32(3268091970);
+emit_32(1105489140);
+emit_32(1094418380);
+emit_32(3267579911);
+emit_32(1104258059);
+emit_32(1094418380);
+emit_32(3267067904);
+emit_32(1104173177);
+emit_32(1094418380);
+emit_32(3266555911);
+emit_32(1103722237);
+emit_32(1094418380);
+emit_32(3266043904);
+emit_32(1102993687);
+emit_32(1094418380);
+emit_32(3265531911);
+emit_32(1102417861);
+emit_32(1094418380);
+emit_32(3265019904);
+emit_32(1102043519);
+emit_32(1094418380);
+emit_32(3264507911);
+emit_32(1102232840);
+emit_32(1094418380);
+emit_32(3263995904);
+emit_32(1102313370);
+emit_32(1094418380);
+emit_32(3263483911);
+emit_32(1102548199);
+emit_32(1094418380);
+emit_32(3262775296);
+emit_32(1102923222);
+emit_32(1094418380);
+emit_32(3261751309);
+emit_32(1103187621);
+emit_32(1094418380);
+emit_32(3260727296);
+emit_32(1103562329);
+emit_32(1094418380);
+emit_32(3259703309);
+emit_32(1103808220);
+emit_32(1094418380);
+emit_32(3258679296);
+emit_32(1104024646);
+emit_32(1094418380);
+emit_32(3257655309);
+emit_32(1104470344);
+emit_32(1094418380);
+emit_32(3256631296);
+emit_32(1104938690);
+emit_32(1094418380);
+emit_32(3255607309);
+emit_32(1105867624);
+emit_32(1094418380);
+emit_32(3254386688);
+emit_32(1107251534);
+emit_32(1094418380);
+emit_32(3252338714);
+emit_32(1107872029);
+emit_32(1094418380);
+emit_32(3250290688);
+emit_32(1108547574);
+emit_32(1094418380);
+emit_32(3248242714);
+emit_32(1109195253);
+emit_32(1094418380);
+emit_32(3245998080);
+emit_32(1109741247);
+emit_32(1094418380);
+emit_32(3241902132);
+emit_32(1110512291);
+emit_32(1094418380);
+emit_32(3237609472);
+emit_32(1111292851);
+emit_32(1094418380);
+emit_32(3229220864);
+emit_32(1111810349);
+emit_32(1094418380);
+emit_32(0);
+emit_32(1112081590);
+emit_32(1094418380);
+emit_32(1081737216);
+emit_32(1112309314);
+emit_32(1094418380);
+emit_32(3279552512);
+emit_32(1069773845);
+emit_32(1090125824);
+emit_32(3279296528);
+emit_32(1077819820);
+emit_32(1090125824);
+emit_32(3279040545);
+emit_32(1081179122);
+emit_32(1090125824);
+emit_32(3278784496);
+emit_32(1083831117);
+emit_32(1090125824);
+emit_32(3278528512);
+emit_32(1086208512);
+emit_32(1090125824);
+emit_32(3278272528);
+emit_32(1089372988);
+emit_32(1090125824);
+emit_32(3278016545);
+emit_32(1091534376);
+emit_32(1090125824);
+emit_32(3277760496);
+emit_32(1091959238);
+emit_32(1090125824);
+emit_32(3277504512);
+emit_32(1093016538);
+emit_32(1090125824);
+emit_32(3277248528);
+emit_32(1095828190);
+emit_32(1090125824);
+emit_32(3276992545);
+emit_32(1098471021);
+emit_32(1090125824);
+emit_32(3276736496);
+emit_32(1099512257);
+emit_32(1090125824);
+emit_32(3276480512);
+emit_32(1100641206);
+emit_32(1090125824);
+emit_32(3276224528);
+emit_32(1101920207);
+emit_32(1090125824);
+emit_32(3275968545);
+emit_32(1102579027);
+emit_32(1090125824);
+emit_32(3275712496);
+emit_32(1103724596);
+emit_32(1090125824);
+emit_32(3275456512);
+emit_32(1104932294);
+emit_32(1090125824);
+emit_32(3275200528);
+emit_32(1105540415);
+emit_32(1090125824);
+emit_32(3274944545);
+emit_32(1105706877);
+emit_32(1090125824);
+emit_32(3274688496);
+emit_32(1106838815);
+emit_32(1090125824);
+emit_32(3274432512);
+emit_32(1107416056);
+emit_32(1090125824);
+emit_32(3274176528);
+emit_32(1107934210);
+emit_32(1090125824);
+emit_32(3273920545);
+emit_32(1108321868);
+emit_32(1090125824);
+emit_32(3273664496);
+emit_32(1108477949);
+emit_32(1090125824);
+emit_32(3273408512);
+emit_32(1108606950);
+emit_32(1090125824);
+emit_32(3273152528);
+emit_32(1108594314);
+emit_32(1090125824);
+emit_32(3272896545);
+emit_32(1108861596);
+emit_32(1090125824);
+emit_32(3272640496);
+emit_32(1108850508);
+emit_32(1090125824);
+emit_32(3272384512);
+emit_32(1108746804);
+emit_32(1090125824);
+emit_32(3272128528);
+emit_32(1108418180);
+emit_32(1090125824);
+emit_32(3271872545);
+emit_32(1108132600);
+emit_32(1090125824);
+emit_32(3271616496);
+emit_32(1107751233);
+emit_32(1090125824);
+emit_32(3271163904);
+emit_32(1107845920);
+emit_32(1090125824);
+emit_32(3270651937);
+emit_32(1107711440);
+emit_32(1090125824);
+emit_32(3270139970);
+emit_32(1107541911);
+emit_32(1090125824);
+emit_32(3269627871);
+emit_32(1107305510);
+emit_32(1090125824);
+emit_32(3269115904);
+emit_32(1107014346);
+emit_32(1090125824);
+emit_32(3268603937);
+emit_32(1106519471);
+emit_32(1090125824);
+emit_32(3268091970);
+emit_32(1105586867);
+emit_32(1090125824);
+emit_32(3267579911);
+emit_32(1104817160);
+emit_32(1090125824);
+emit_32(3267067904);
+emit_32(1104215645);
+emit_32(1090125824);
+emit_32(3266555911);
+emit_32(1103400324);
+emit_32(1090125824);
+emit_32(3266043904);
+emit_32(1103065776);
+emit_32(1090125824);
+emit_32(3265531911);
+emit_32(1102978377);
+emit_32(1090125824);
+emit_32(3265019904);
+emit_32(1102293919);
+emit_32(1090125824);
+emit_32(3264507911);
+emit_32(1102336229);
+emit_32(1090125824);
+emit_32(3263995904);
+emit_32(1102542117);
+emit_32(1090125824);
+emit_32(3263483911);
+emit_32(1102806306);
+emit_32(1090125824);
+emit_32(3262775296);
+emit_32(1103245240);
+emit_32(1090125824);
+emit_32(3261751309);
+emit_32(1103200151);
+emit_32(1090125824);
+emit_32(3260727296);
+emit_32(1103241727);
+emit_32(1090125824);
+emit_32(3259703309);
+emit_32(1103758465);
+emit_32(1090125824);
+emit_32(3258679296);
+emit_32(1104333714);
+emit_32(1090125824);
+emit_32(3257655309);
+emit_32(1104589095);
+emit_32(1090125824);
+emit_32(3256631296);
+emit_32(1104963961);
+emit_32(1090125824);
+emit_32(3255607309);
+emit_32(1106480516);
+emit_32(1090125824);
+emit_32(3254386688);
+emit_32(1107703811);
+emit_32(1090125824);
+emit_32(3252338714);
+emit_32(1108381768);
+emit_32(1090125824);
+emit_32(3250290688);
+emit_32(1108898034);
+emit_32(1090125824);
+emit_32(3248242714);
+emit_32(1109345462);
+emit_32(1090125824);
+emit_32(3245998080);
+emit_32(1109947738);
+emit_32(1090125824);
+emit_32(3241902132);
+emit_32(1110798578);
+emit_32(1090125824);
+emit_32(3237609472);
+emit_32(1111401483);
+emit_32(1090125824);
+emit_32(3229220864);
+emit_32(1112005149);
+emit_32(1090125824);
+emit_32(0);
+emit_32(1112489827);
+emit_32(1090125824);
+emit_32(1081737216);
+emit_32(1112605380);
+emit_32(1090125824);
+emit_32(3279552512);
+emit_32(1041185636);
+emit_32(1081737216);
+emit_32(3279296528);
+emit_32(1071476480);
+emit_32(1081737216);
+emit_32(3279040545);
+emit_32(1076263523);
+emit_32(1081737216);
+emit_32(3278784496);
+emit_32(1082158660);
+emit_32(1081737216);
+emit_32(3278528512);
+emit_32(1084513929);
+emit_32(1081737216);
+emit_32(3278272528);
+emit_32(1087785717);
+emit_32(1081737216);
+emit_32(3278016545);
+emit_32(1090972056);
+emit_32(1081737216);
+emit_32(3277760496);
+emit_32(1092442569);
+emit_32(1081737216);
+emit_32(3277504512);
+emit_32(1094046974);
+emit_32(1081737216);
+emit_32(3277248528);
+emit_32(1097043280);
+emit_32(1081737216);
+emit_32(3276992545);
+emit_32(1098999818);
+emit_32(1081737216);
+emit_32(3276736496);
+emit_32(1100434742);
+emit_32(1081737216);
+emit_32(3276480512);
+emit_32(1101659007);
+emit_32(1081737216);
+emit_32(3276224528);
+emit_32(1102608545);
+emit_32(1081737216);
+emit_32(3275968545);
+emit_32(1103417836);
+emit_32(1081737216);
+emit_32(3275712496);
+emit_32(1104053168);
+emit_32(1081737216);
+emit_32(3275456512);
+emit_32(1104973450);
+emit_32(1081737216);
+emit_32(3275200528);
+emit_32(1105837477);
+emit_32(1081737216);
+emit_32(3274944545);
+emit_32(1106081743);
+emit_32(1081737216);
+emit_32(3274688496);
+emit_32(1106636492);
+emit_32(1081737216);
+emit_32(3274432512);
+emit_32(1107002917);
+emit_32(1081737216);
+emit_32(3274176528);
+emit_32(1107580184);
+emit_32(1081737216);
+emit_32(3273920545);
+emit_32(1107983729);
+emit_32(1081737216);
+emit_32(3273664496);
+emit_32(1108213550);
+emit_32(1081737216);
+emit_32(3273408512);
+emit_32(1108715137);
+emit_32(1081737216);
+emit_32(3273152528);
+emit_32(1108987871);
+emit_32(1081737216);
+emit_32(3272896545);
+emit_32(1109130582);
+emit_32(1081737216);
+emit_32(3272640496);
+emit_32(1109075454);
+emit_32(1081737216);
+emit_32(3272384512);
+emit_32(1108764813);
+emit_32(1081737216);
+emit_32(3272128528);
+emit_32(1108391939);
+emit_32(1081737216);
+emit_32(3271872545);
+emit_32(1108080224);
+emit_32(1081737216);
+emit_32(3271616496);
+emit_32(1107854728);
+emit_32(1081737216);
+emit_32(3271163904);
+emit_32(1107912740);
+emit_32(1081737216);
+emit_32(3270651937);
+emit_32(1107731730);
+emit_32(1081737216);
+emit_32(3270139970);
+emit_32(1107480989);
+emit_32(1081737216);
+emit_32(3269627871);
+emit_32(1107400013);
+emit_32(1081737216);
+emit_32(3269115904);
+emit_32(1106814855);
+emit_32(1081737216);
+emit_32(3268603937);
+emit_32(1106747641);
+emit_32(1081737216);
+emit_32(3268091970);
+emit_32(1106153570);
+emit_32(1081737216);
+emit_32(3267579911);
+emit_32(1105450553);
+emit_32(1081737216);
+emit_32(3267067904);
+emit_32(1105015289);
+emit_32(1081737216);
+emit_32(3266555911);
+emit_32(1103926185);
+emit_32(1081737216);
+emit_32(3266043904);
+emit_32(1103220965);
+emit_32(1081737216);
+emit_32(3265531911);
+emit_32(1102714556);
+emit_32(1081737216);
+emit_32(3265019904);
+emit_32(1102293972);
+emit_32(1081737216);
+emit_32(3264507911);
+emit_32(1102696206);
+emit_32(1081737216);
+emit_32(3263995904);
+emit_32(1102841119);
+emit_32(1081737216);
+emit_32(3263483911);
+emit_32(1102940104);
+emit_32(1081737216);
+emit_32(3262775296);
+emit_32(1103457681);
+emit_32(1081737216);
+emit_32(3261751309);
+emit_32(1103885553);
+emit_32(1081737216);
+emit_32(3260727296);
+emit_32(1104135953);
+emit_32(1081737216);
+emit_32(3259703309);
+emit_32(1104254180);
+emit_32(1081737216);
+emit_32(3258679296);
+emit_32(1104598218);
+emit_32(1081737216);
+emit_32(3257655309);
+emit_32(1105055869);
+emit_32(1081737216);
+emit_32(3256631296);
+emit_32(1105830661);
+emit_32(1081737216);
+emit_32(3255607309);
+emit_32(1107186156);
+emit_32(1081737216);
+emit_32(3254386688);
+emit_32(1107890222);
+emit_32(1081737216);
+emit_32(3252338714);
+emit_32(1108342578);
+emit_32(1081737216);
+emit_32(3250290688);
+emit_32(1108968106);
+emit_32(1081737216);
+emit_32(3248242714);
+emit_32(1109363314);
+emit_32(1081737216);
+emit_32(3245998080);
+emit_32(1110217982);
+emit_32(1081737216);
+emit_32(3241902132);
+emit_32(1110836747);
+emit_32(1081737216);
+emit_32(3237609472);
+emit_32(1111340011);
+emit_32(1081737216);
+emit_32(3229220864);
+emit_32(1111989472);
+emit_32(1081737216);
+emit_32(0);
+emit_32(1112547577);
+emit_32(1081737216);
+emit_32(1081737216);
+emit_32(1112701298);
+emit_32(1081737216);
+emit_start(_ZTIN16btCollisionWorld17RayResultCallbackE)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTSN16btCollisionWorld17RayResultCallbackE);
+emit_start(_ZTSN16btCollisionWorld17RayResultCallbackE)
+emit_string('N16btCollisionWorld17RayResultCallbackE\x00');
+emit_start(_ZTVN16btCollisionWorld24ClosestRayResultCallbackE)
+emit_32(0);
+emit_32(_ZTIN16btCollisionWorld24ClosestRayResultCallbackE);
+emit_32(_ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev__index__);
+emit_32(_ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev__index__);
+emit_32(_ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy__index__);
+emit_32(_ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb__index__);
+emit_start(_ZTIN16btCollisionWorld24ClosestRayResultCallbackE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN16btCollisionWorld24ClosestRayResultCallbackE);
+emit_32(_ZTIN16btCollisionWorld17RayResultCallbackE);
+emit_start(_ZTSN16btCollisionWorld24ClosestRayResultCallbackE)
+emit_string('N16btCollisionWorld24ClosestRayResultCallbackE\x00');
+emit_start(_ZTI13btMotionState)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS13btMotionState);
+emit_start(_ZTS13btMotionState)
+emit_string('13btMotionState\x00');
+emit_start(_ZTV20btDefaultMotionState)
+emit_32(0);
+emit_32(_ZTI20btDefaultMotionState);
+emit_32(_ZN20btDefaultMotionStateD1Ev__index__);
+emit_32(_ZN20btDefaultMotionStateD0Ev__index__);
+emit_32(_ZNK20btDefaultMotionState17getWorldTransformER11btTransform__index__);
+emit_32(_ZN20btDefaultMotionState17setWorldTransformERK11btTransform__index__);
+emit_start(_ZTI20btDefaultMotionState)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS20btDefaultMotionState);
+emit_32(_ZTI13btMotionState);
+emit_start(_ZTS20btDefaultMotionState)
+emit_string('20btDefaultMotionState\x00');
+emit_start(_ZTI17btTypedConstraint)
+emit_32(_ZTVN10__cxxabiv121__vmi_class_type_infoE+8);
+emit_32(_ZTS17btTypedConstraint);
+emit_32(0);
+emit_32(1);
+emit_32(_ZTI13btTypedObject);
+emit_32(1026);
+emit_start(_ZTS17btTypedConstraint)
+emit_string('17btTypedConstraint\x00');
+emit_start(_ZTI13btTypedObject)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS13btTypedObject);
+emit_start(_ZTS13btTypedObject)
+emit_string('13btTypedObject\x00');
+emit_start(_ZTV7RagDoll)
+emit_32(0);
+emit_32(_ZTI7RagDoll);
+emit_32(_ZN7RagDollD1Ev__index__);
+emit_32(_ZN7RagDollD0Ev__index__);
+emit_start(_ZTI7RagDoll)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS7RagDoll);
+emit_start(_ZTS7RagDoll)
+emit_string('7RagDoll\x00');
+emit_start(_ZTV13BenchmarkDemo)
+emit_32(0);
+emit_32(_ZTI13BenchmarkDemo);
+emit_32(_ZN15DemoApplication6myinitEv__index__);
+emit_32(_ZN15DemoApplication16getDynamicsWorldEv__index__);
+emit_32(_ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape__index__);
+emit_32(_ZN13BenchmarkDemoD1Ev__index__);
+emit_32(_ZN13BenchmarkDemoD0Ev__index__);
+emit_32(_ZN13BenchmarkDemo20clientMoveAndDisplayEv__index__);
+emit_32(_ZN13BenchmarkDemo15displayCallbackEv__index__);
+emit_start(_ZTI13BenchmarkDemo)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS13BenchmarkDemo);
+emit_32(_ZTI15DemoApplication);
+emit_start(_ZTS13BenchmarkDemo)
+emit_string('13BenchmarkDemo\x00');
+emit_start(_ZTI15DemoApplication)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS15DemoApplication);
+emit_start(_ZTS15DemoApplication)
+emit_string('15DemoApplication\x00');
+emit_start(_2E_str3)
+emit_string('rayResult.m_hitFraction <= m_closestHitFraction\x00');
+emit_start(_2E_str4)
+emit_string('../../../../src/BulletCollision/CollisionDispatch/btCollisionWorld.h\x00');
+emit_start(_2E_str5)
+emit_string('(!shape || shape->getShapeType() != INVALID_SHAPE_PROXYTYPE)\x00');
+emit_start(_2E_str6)
+emit_string('../../../../Demos/BenchmarkDemo/BenchmarkDemo.cpp\x00');
+emit_start(_2E_str7)
+emit_string('%d rays in %d ms %d %d %f\x0a\x00');
+emit_start(_ZL7TaruVtx)
+emit_32(1066080005);
+emit_32(3221161467);
+emit_32(0);
+emit_32(1061467093);
+emit_32(3221161467);
+emit_32(3208950741);
+emit_32(1067773497);
+emit_32(873485028);
+emit_32(3215257145);
+emit_32(1072250665);
+emit_32(877448406);
+emit_32(0);
+emit_32(0);
+emit_32(3221161467);
+emit_32(3213563653);
+emit_32(0);
+emit_32(0);
+emit_32(3219734313);
+emit_32(0);
+emit_32(3221161467);
+emit_32(3213563653);
+emit_32(3208950741);
+emit_32(3221161467);
+emit_32(3208950741);
+emit_32(3215257145);
+emit_32(873485028);
+emit_32(3215257145);
+emit_32(0);
+emit_32(0);
+emit_32(3219734313);
+emit_32(3213563653);
+emit_32(3221161467);
+emit_32(876839787);
+emit_32(3219734313);
+emit_32(877448406);
+emit_32(875236717);
+emit_32(3208950741);
+emit_32(3221161467);
+emit_32(1061467109);
+emit_32(3215257145);
+emit_32(881107813);
+emit_32(1067773497);
+emit_32(874053818);
+emit_32(3221161467);
+emit_32(1066080005);
+emit_32(880822819);
+emit_32(881928664);
+emit_32(1072250665);
+emit_32(1061467093);
+emit_32(3221161467);
+emit_32(1061467093);
+emit_32(1067773497);
+emit_32(881107813);
+emit_32(1067773497);
+emit_32(1061467093);
+emit_32(1073677819);
+emit_32(3208950741);
+emit_32(1066080005);
+emit_32(1073677819);
+emit_32(0);
+emit_32(0);
+emit_32(1073677819);
+emit_32(3213563653);
+emit_32(3208950741);
+emit_32(1073677819);
+emit_32(3208950741);
+emit_32(0);
+emit_32(1073677819);
+emit_32(3213563653);
+emit_32(3213563653);
+emit_32(1073677819);
+emit_32(0);
+emit_32(3208950741);
+emit_32(1073677819);
+emit_32(1061467093);
+emit_32(874053818);
+emit_32(1073677819);
+emit_32(1066080005);
+emit_32(1061467093);
+emit_32(1073677819);
+emit_32(1061467093);
+emit_32(874053818);
+emit_32(3221161467);
+emit_32(1066080005);
+emit_32(3208950741);
+emit_32(3221161467);
+emit_32(1061467109);
+emit_32(3213563653);
+emit_32(3221161467);
+emit_32(876839787);
+emit_32(3208950741);
+emit_32(3221161467);
+emit_32(3208950741);
+emit_32(0);
+emit_32(3221161467);
+emit_32(3213563653);
+emit_32(1061467093);
+emit_32(3221161467);
+emit_32(3208950741);
+emit_32(1066080005);
+emit_32(3221161467);
+emit_32(0);
+emit_32(1061467093);
+emit_32(3221161467);
+emit_32(1061467093);
+emit_32(1061467093);
+emit_32(1073677819);
+emit_32(3208950741);
+emit_32(0);
+emit_32(1073677819);
+emit_32(3213563653);
+emit_32(3208950741);
+emit_32(1073677819);
+emit_32(3208950741);
+emit_32(3213563653);
+emit_32(1073677819);
+emit_32(0);
+emit_32(3208950741);
+emit_32(1073677819);
+emit_32(1061467093);
+emit_32(874053818);
+emit_32(1073677819);
+emit_32(1066080005);
+emit_32(1061467093);
+emit_32(1073677819);
+emit_32(1061467093);
+emit_32(1066080005);
+emit_32(1073677819);
+emit_32(0);
+emit_start(LandscapeVtx)
+emit_32(Landscape01Vtx);
+emit_32(Landscape02Vtx);
+emit_32(Landscape03Vtx);
+emit_32(Landscape04Vtx);
+emit_32(Landscape05Vtx);
+emit_32(Landscape06Vtx);
+emit_32(Landscape07Vtx);
+emit_32(Landscape08Vtx);
+emit_start(Landscape01Vtx)
+emit_32(1081737258);
+emit_32(1055384563);
+emit_32(1131812880);
+emit_32(1081737258);
+emit_32(1069740626);
+emit_32(1132068864);
+emit_32(1090125824);
+emit_32(1066883130);
+emit_32(1131812880);
+emit_32(1090125845);
+emit_32(1071685776);
+emit_32(1132068864);
+emit_32(1094418484);
+emit_32(1074283351);
+emit_32(1131812880);
+emit_32(1094418484);
+emit_32(1076361335);
+emit_32(1132068864);
+emit_32(1098514432);
+emit_32(1077997197);
+emit_32(1131812880);
+emit_32(1098514432);
+emit_32(1078893017);
+emit_32(1132068864);
+emit_32(1100759066);
+emit_32(1082022680);
+emit_32(1131812880);
+emit_32(1100759066);
+emit_32(1080588228);
+emit_32(1132068864);
+emit_32(1102807040);
+emit_32(1082313744);
+emit_32(1131812880);
+emit_32(1102807040);
+emit_32(1082635783);
+emit_32(1132068864);
+emit_32(1104855066);
+emit_32(1085939489);
+emit_32(1131812880);
+emit_32(1104855066);
+emit_32(1086186513);
+emit_32(1132068864);
+emit_32(1106903040);
+emit_32(1088145253);
+emit_32(1131812880);
+emit_32(1106903040);
+emit_32(1089137122);
+emit_32(1132068864);
+emit_32(1108123661);
+emit_32(1090785431);
+emit_32(1131812880);
+emit_32(1108123661);
+emit_32(1091174473);
+emit_32(1132068864);
+emit_32(1109147648);
+emit_32(1090923801);
+emit_32(1131812880);
+emit_32(1109147648);
+emit_32(1091237136);
+emit_32(1132068864);
+emit_32(1110171661);
+emit_32(1088312773);
+emit_32(1131812880);
+emit_32(1110171661);
+emit_32(1089928629);
+emit_32(1132068864);
+emit_32(1111195648);
+emit_32(1083403361);
+emit_32(1131812880);
+emit_32(1111195648);
+emit_32(1086579729);
+emit_32(1132068864);
+emit_32(1112219661);
+emit_32(1080632646);
+emit_32(1131812880);
+emit_32(1112219661);
+emit_32(1084500256);
+emit_32(1132068864);
+emit_32(1113243648);
+emit_32(1082171222);
+emit_32(1131812880);
+emit_32(1113243648);
+emit_32(1085286142);
+emit_32(1132068864);
+emit_32(1114267661);
+emit_32(1082256177);
+emit_32(1131812880);
+emit_32(1114267661);
+emit_32(1084896932);
+emit_32(1132068864);
+emit_32(1115291648);
+emit_32(1082088279);
+emit_32(1131812880);
+emit_32(1115291648);
+emit_32(1085314391);
+emit_32(1132068864);
+emit_32(1116000263);
+emit_32(1085158761);
+emit_32(1131812880);
+emit_32(1116000263);
+emit_32(1088003066);
+emit_32(1132068864);
+emit_32(1116512256);
+emit_32(1086405959);
+emit_32(1131812880);
+emit_32(1116512256);
+emit_32(1089298141);
+emit_32(1132068864);
+emit_32(1117024263);
+emit_32(1087104604);
+emit_32(1131812880);
+emit_32(1117024263);
+emit_32(1090687347);
+emit_32(1132068864);
+emit_32(1117536256);
+emit_32(1087885311);
+emit_32(1131812880);
+emit_32(1117536256);
+emit_32(1091275053);
+emit_32(1132068864);
+emit_32(1118048263);
+emit_32(1089217925);
+emit_32(1131812880);
+emit_32(1118048263);
+emit_32(1092734157);
+emit_32(1132068864);
+emit_32(1118560256);
+emit_32(1091544359);
+emit_32(1131812880);
+emit_32(1118560256);
+emit_32(1093101054);
+emit_32(1132068864);
+emit_32(1119072263);
+emit_32(1093751695);
+emit_32(1131812880);
+emit_32(1119072263);
+emit_32(1094336171);
+emit_32(1132068864);
+emit_32(1119584256);
+emit_32(1095057906);
+emit_32(1131812880);
+emit_32(1119584256);
+emit_32(1095906414);
+emit_32(1132068864);
+emit_32(1120096263);
+emit_32(1096387500);
+emit_32(1131812880);
+emit_32(1120096263);
+emit_32(1097119721);
+emit_32(1132068864);
+emit_32(1120608322);
+emit_32(1098446484);
+emit_32(1131812880);
+emit_32(1120608322);
+emit_32(1099405040);
+emit_32(1132068864);
+emit_32(1121120289);
+emit_32(1099429000);
+emit_32(1131812880);
+emit_32(1121120289);
+emit_32(1100058250);
+emit_32(1132068864);
+emit_32(1121632256);
+emit_32(1099896455);
+emit_32(1131812880);
+emit_32(1121632256);
+emit_32(1100747951);
+emit_32(1132068864);
+emit_32(1122144223);
+emit_32(1100443235);
+emit_32(1131812880);
+emit_32(1122144223);
+emit_32(1101491654);
+emit_32(1132068864);
+emit_32(1122656322);
+emit_32(1100473854);
+emit_32(1131812880);
+emit_32(1122656322);
+emit_32(1101038145);
+emit_32(1132068864);
+emit_32(1123168289);
+emit_32(1100215956);
+emit_32(1131812880);
+emit_32(1123168289);
+emit_32(1101301390);
+emit_32(1132068864);
+emit_32(1123680256);
+emit_32(1101082604);
+emit_32(1131812880);
+emit_32(1123680256);
+emit_32(1101605949);
+emit_32(1132068864);
+emit_32(1124132848);
+emit_32(1101268622);
+emit_32(1131812880);
+emit_32(1124132848);
+emit_32(1102212026);
+emit_32(1132068864);
+emit_32(1124388897);
+emit_32(1101640237);
+emit_32(1131812880);
+emit_32(1124388897);
+emit_32(1102532523);
+emit_32(1132068864);
+emit_32(1124644880);
+emit_32(1102204895);
+emit_32(1131812880);
+emit_32(1124644880);
+emit_32(1103346847);
+emit_32(1132068864);
+emit_32(1124900864);
+emit_32(1102705643);
+emit_32(1131812880);
+emit_32(1124900864);
+emit_32(1103273709);
+emit_32(1132068864);
+emit_32(1125156848);
+emit_32(1102314000);
+emit_32(1131812880);
+emit_32(1125156848);
+emit_32(1103265949);
+emit_32(1132068864);
+emit_32(1125412897);
+emit_32(1102386142);
+emit_32(1131812880);
+emit_32(1125412897);
+emit_32(1103012351);
+emit_32(1132068864);
+emit_32(1125668880);
+emit_32(1102880021);
+emit_32(1131812880);
+emit_32(1125668880);
+emit_32(1103173727);
+emit_32(1132068864);
+emit_32(1125924864);
+emit_32(1103727428);
+emit_32(1131812880);
+emit_32(1125924864);
+emit_32(1103580732);
+emit_32(1132068864);
+emit_32(1126180848);
+emit_32(1103758413);
+emit_32(1131812880);
+emit_32(1126180848);
+emit_32(1103482113);
+emit_32(1132068864);
+emit_32(1126436897);
+emit_32(1104015471);
+emit_32(1131812880);
+emit_32(1126436897);
+emit_32(1103163241);
+emit_32(1132068864);
+emit_32(1126692880);
+emit_32(1103273342);
+emit_32(1131812880);
+emit_32(1126692880);
+emit_32(1103421348);
+emit_32(1132068864);
+emit_32(1126948864);
+emit_32(1103651353);
+emit_32(1131812880);
+emit_32(1126948864);
+emit_32(1103608938);
+emit_32(1132068864);
+emit_32(1127204848);
+emit_32(1103631850);
+emit_32(1131812880);
+emit_32(1127204848);
+emit_32(1103515039);
+emit_32(1132068864);
+emit_32(1127460897);
+emit_32(1102883324);
+emit_32(1131812880);
+emit_32(1127460897);
+emit_32(1102412041);
+emit_32(1132068864);
+emit_32(1127716880);
+emit_32(1101507068);
+emit_32(1131812880);
+emit_32(1127716880);
+emit_32(1101349991);
+emit_32(1132068864);
+emit_32(1127972864);
+emit_32(1100875563);
+emit_32(1131812880);
+emit_32(1127972864);
+emit_32(1101021210);
+emit_32(1132068864);
+emit_32(1128228848);
+emit_32(1101251582);
+emit_32(1131812880);
+emit_32(1128228848);
+emit_32(1101209063);
+emit_32(1132068864);
+emit_32(1128484897);
+emit_32(1100876402);
+emit_32(1131812880);
+emit_32(1128484897);
+emit_32(1101824944);
+emit_32(1132068864);
+emit_32(1128740880);
+emit_32(1100846465);
+emit_32(1131812880);
+emit_32(1128740880);
+emit_32(1101829662);
+emit_32(1132068864);
+emit_32(1128996864);
+emit_32(1101043178);
+emit_32(1131812880);
+emit_32(1128996864);
+emit_32(1101204029);
+emit_32(1132068864);
+emit_32(1129252848);
+emit_32(1100934912);
+emit_32(1131812880);
+emit_32(1129252848);
+emit_32(1100678640);
+emit_32(1132068864);
+emit_32(1129508897);
+emit_32(1100716494);
+emit_32(1131812880);
+emit_32(1129508897);
+emit_32(1100794770);
+emit_32(1132068864);
+emit_32(1129764880);
+emit_32(1100633499);
+emit_32(1131812880);
+emit_32(1129764880);
+emit_32(1100531158);
+emit_32(1132068864);
+emit_32(1130020864);
+emit_32(1100357409);
+emit_32(1131812880);
+emit_32(1130020864);
+emit_32(1100965793);
+emit_32(1132068864);
+emit_32(1130276848);
+emit_32(1100382418);
+emit_32(1131812880);
+emit_32(1130276848);
+emit_32(1100936852);
+emit_32(1132068864);
+emit_32(1130532897);
+emit_32(1100142189);
+emit_32(1131812880);
+emit_32(1130532897);
+emit_32(1100410834);
+emit_32(1132068864);
+emit_32(1130788880);
+emit_32(1099421503);
+emit_32(1131812880);
+emit_32(1130788880);
+emit_32(1099690462);
+emit_32(1132068864);
+emit_32(1131044864);
+emit_32(1098506358);
+emit_32(1131812880);
+emit_32(1131044864);
+emit_32(1098996725);
+emit_32(1132068864);
+emit_32(1131300848);
+emit_32(1098434740);
+emit_32(1131812880);
+emit_32(1131300848);
+emit_32(1098247465);
+emit_32(1132068864);
+emit_32(1131556897);
+emit_32(1098117861);
+emit_32(1131812880);
+emit_32(1131556897);
+emit_32(1097891158);
+emit_32(1132068864);
+emit_32(1131812880);
+emit_32(1096949432);
+emit_32(1131812880);
+emit_32(1131812880);
+emit_32(1097085433);
+emit_32(1132068864);
+emit_32(1132068864);
+emit_32(1097236532);
+emit_32(1131812880);
+emit_32(1132068864);
+emit_32(1097193960);
+emit_32(1132068864);
+emit_32(1081737258);
+emit_32(1074643096);
+emit_32(1131556897);
+emit_32(1090125866);
+emit_32(1074941647);
+emit_32(1131556897);
+emit_32(1094418484);
+emit_32(1081645067);
+emit_32(1131556897);
+emit_32(1098514432);
+emit_32(1079576814);
+emit_32(1131556897);
+emit_32(1100759066);
+emit_32(1080655044);
+emit_32(1131556897);
+emit_32(1102807040);
+emit_32(1082425543);
+emit_32(1131556897);
+emit_32(1104855066);
+emit_32(1085781658);
+emit_32(1131556897);
+emit_32(1106903040);
+emit_32(1087711834);
+emit_32(1131556897);
+emit_32(1108123661);
+emit_32(1089079786);
+emit_32(1131556897);
+emit_32(1109147648);
+emit_32(1089855732);
+emit_32(1131556897);
+emit_32(1110171661);
+emit_32(1088401776);
+emit_32(1131556897);
+emit_32(1111195648);
+emit_32(1084013213);
+emit_32(1131556897);
+emit_32(1112219661);
+emit_32(1076464473);
+emit_32(1131556897);
+emit_32(1113243648);
+emit_32(1076936835);
+emit_32(1131556897);
+emit_32(1114267661);
+emit_32(1078376488);
+emit_32(1131556897);
+emit_32(1115291648);
+emit_32(1083428884);
+emit_32(1131556897);
+emit_32(1116000263);
+emit_32(1084998686);
+emit_32(1131556897);
+emit_32(1116512256);
+emit_32(1085103334);
+emit_32(1131556897);
+emit_32(1117024263);
+emit_32(1085114239);
+emit_32(1131556897);
+emit_32(1117536256);
+emit_32(1085358662);
+emit_32(1131556897);
+emit_32(1118048263);
+emit_32(1085033331);
+emit_32(1131556897);
+emit_32(1118560256);
+emit_32(1090041456);
+emit_32(1131556897);
+emit_32(1119072263);
+emit_32(1091993569);
+emit_32(1131556897);
+emit_32(1119584256);
+emit_32(1093969274);
+emit_32(1131556897);
+emit_32(1120096263);
+emit_32(1094791777);
+emit_32(1131556897);
+emit_32(1120608322);
+emit_32(1096921435);
+emit_32(1131556897);
+emit_32(1121120289);
+emit_32(1098017722);
+emit_32(1131556897);
+emit_32(1121632256);
+emit_32(1098852807);
+emit_32(1131556897);
+emit_32(1122144223);
+emit_32(1099349623);
+emit_32(1131556897);
+emit_32(1122656322);
+emit_32(1099542928);
+emit_32(1131556897);
+emit_32(1123168289);
+emit_32(1100094688);
+emit_32(1131556897);
+emit_32(1123680256);
+emit_32(1100410887);
+emit_32(1131556897);
+emit_32(1124132848);
+emit_32(1100650329);
+emit_32(1131556897);
+emit_32(1124388897);
+emit_32(1101060742);
+emit_32(1131556897);
+emit_32(1124644880);
+emit_32(1101440326);
+emit_32(1131556897);
+emit_32(1124900864);
+emit_32(1101720243);
+emit_32(1131556897);
+emit_32(1125156848);
+emit_32(1101846125);
+emit_32(1131556897);
+emit_32(1125412897);
+emit_32(1102182141);
+emit_32(1131556897);
+emit_32(1125668880);
+emit_32(1102845208);
+emit_32(1131556897);
+emit_32(1125924864);
+emit_32(1103549327);
+emit_32(1131556897);
+emit_32(1126180848);
+emit_32(1103862379);
+emit_32(1131556897);
+emit_32(1126436897);
+emit_32(1104116816);
+emit_32(1131556897);
+emit_32(1126692880);
+emit_32(1103549432);
+emit_32(1131556897);
+emit_32(1126948864);
+emit_32(1103788717);
+emit_32(1131556897);
+emit_32(1127204848);
+emit_32(1103809426);
+emit_32(1131556897);
+emit_32(1127460897);
+emit_32(1103218816);
+emit_32(1131556897);
+emit_32(1127716880);
+emit_32(1101572551);
+emit_32(1131556897);
+emit_32(1127972864);
+emit_32(1100781453);
+emit_32(1131556897);
+emit_32(1128228848);
+emit_32(1100996149);
+emit_32(1131556897);
+emit_32(1128484897);
+emit_32(1100798283);
+emit_32(1131556897);
+emit_32(1128740880);
+emit_32(1100454769);
+emit_32(1131556897);
+emit_32(1128996864);
+emit_32(1101100116);
+emit_32(1131556897);
+emit_32(1129252848);
+emit_32(1100635806);
+emit_32(1131556897);
+emit_32(1129508897);
+emit_32(1100423260);
+emit_32(1131556897);
+emit_32(1129764880);
+emit_32(1100375445);
+emit_32(1131556897);
+emit_32(1130020864);
+emit_32(1100374711);
+emit_32(1131556897);
+emit_32(1130276848);
+emit_32(1100128348);
+emit_32(1131556897);
+emit_32(1130532897);
+emit_32(1099813985);
+emit_32(1131556897);
+emit_32(1130788880);
+emit_32(1098580702);
+emit_32(1131556897);
+emit_32(1131044864);
+emit_32(1098117861);
+emit_32(1131556897);
+emit_32(1131300848);
+emit_32(1098142502);
+emit_32(1131556897);
+emit_32(1131556897);
+emit_32(1097315071);
+emit_32(1131556897);
+emit_32(1131812880);
+emit_32(1097397384);
+emit_32(1131556897);
+emit_32(1132068864);
+emit_32(1096997143);
+emit_32(1131556897);
+emit_32(1081737258);
+emit_32(1078120510);
+emit_32(1131300848);
+emit_32(1090125866);
+emit_32(1081645067);
+emit_32(1131300848);
+emit_32(1094418484);
+emit_32(1083207676);
+emit_32(1131300848);
+emit_32(1098514432);
+emit_32(1082548394);
+emit_32(1131300848);
+emit_32(1100759066);
+emit_32(1083149333);
+emit_32(1131300848);
+emit_32(1102807040);
+emit_32(1084467750);
+emit_32(1131300848);
+emit_32(1104855066);
+emit_32(1084194889);
+emit_32(1131300848);
+emit_32(1106903040);
+emit_32(1085853632);
+emit_32(1131300848);
+emit_32(1108123661);
+emit_32(1085123970);
+emit_32(1131300848);
+emit_32(1109147648);
+emit_32(1087285441);
+emit_32(1131300848);
+emit_32(1110171661);
+emit_32(1085386722);
+emit_32(1131300848);
+emit_32(1111195648);
+emit_32(1080853476);
+emit_32(1131300848);
+emit_32(1112219661);
+emit_32(1078285136);
+emit_32(1131300848);
+emit_32(1113243648);
+emit_32(1077796206);
+emit_32(1131300848);
+emit_32(1114267661);
+emit_32(1081903730);
+emit_32(1131300848);
+emit_32(1115291648);
+emit_32(1083632098);
+emit_32(1131300848);
+emit_32(1116000263);
+emit_32(1084393385);
+emit_32(1131300848);
+emit_32(1116512256);
+emit_32(1085051576);
+emit_32(1131300848);
+emit_32(1117024263);
+emit_32(1082744667);
+emit_32(1131300848);
+emit_32(1117536256);
+emit_32(1082567793);
+emit_32(1131300848);
+emit_32(1118048263);
+emit_32(1084454685);
+emit_32(1131300848);
+emit_32(1118560256);
+emit_32(1085247932);
+emit_32(1131300848);
+emit_32(1119072263);
+emit_32(1088549437);
+emit_32(1131300848);
+emit_32(1119584256);
+emit_32(1091234903);
+emit_32(1131300848);
+emit_32(1120096263);
+emit_32(1092613875);
+emit_32(1131300848);
+emit_32(1120608322);
+emit_32(1094687864);
+emit_32(1131300848);
+emit_32(1121120289);
+emit_32(1095660313);
+emit_32(1131300848);
+emit_32(1121632256);
+emit_32(1096595223);
+emit_32(1131300848);
+emit_32(1122144223);
+emit_32(1096407214);
+emit_32(1131300848);
+emit_32(1122656322);
+emit_32(1098896848);
+emit_32(1131300848);
+emit_32(1123168289);
+emit_32(1100002571);
+emit_32(1131300848);
+emit_32(1123680256);
+emit_32(1100330566);
+emit_32(1131300848);
+emit_32(1124132848);
+emit_32(1100556901);
+emit_32(1131300848);
+emit_32(1124388897);
+emit_32(1101046271);
+emit_32(1131300848);
+emit_32(1124644880);
+emit_32(1101210793);
+emit_32(1131300848);
+emit_32(1124900864);
+emit_32(1101438753);
+emit_32(1131300848);
+emit_32(1125156848);
+emit_32(1101639765);
+emit_32(1131300848);
+emit_32(1125412897);
+emit_32(1102320291);
+emit_32(1131300848);
+emit_32(1125668880);
+emit_32(1103059380);
+emit_32(1131300848);
+emit_32(1125924864);
+emit_32(1103640815);
+emit_32(1131300848);
+emit_32(1126180848);
+emit_32(1104063234);
+emit_32(1131300848);
+emit_32(1126436897);
+emit_32(1103970068);
+emit_32(1131300848);
+emit_32(1126692880);
+emit_32(1103293999);
+emit_32(1131300848);
+emit_32(1126948864);
+emit_32(1106602885);
+emit_32(1131300848);
+emit_32(1127204848);
+emit_32(1106714296);
+emit_32(1131300848);
+emit_32(1127460897);
+emit_32(1105856718);
+emit_32(1131300848);
+emit_32(1127716880);
+emit_32(1104477736);
+emit_32(1131300848);
+emit_32(1127972864);
+emit_32(1103475455);
+emit_32(1131300848);
+emit_32(1128228848);
+emit_32(1102947182);
+emit_32(1131300848);
+emit_32(1128484897);
+emit_32(1102778938);
+emit_32(1131300848);
+emit_32(1128740880);
+emit_32(1102741242);
+emit_32(1131300848);
+emit_32(1128996864);
+emit_32(1099705667);
+emit_32(1131300848);
+emit_32(1129252848);
+emit_32(1099651088);
+emit_32(1131300848);
+emit_32(1129508897);
+emit_32(1099707659);
+emit_32(1131300848);
+emit_32(1129764880);
+emit_32(1100081634);
+emit_32(1131300848);
+emit_32(1130020864);
+emit_32(1100312373);
+emit_32(1131300848);
+emit_32(1130276848);
+emit_32(1100150263);
+emit_32(1131300848);
+emit_32(1130532897);
+emit_32(1099562326);
+emit_32(1131300848);
+emit_32(1130788880);
+emit_32(1099117363);
+emit_32(1131300848);
+emit_32(1131044864);
+emit_32(1098383150);
+emit_32(1131300848);
+emit_32(1131300848);
+emit_32(1097461347);
+emit_32(1131300848);
+emit_32(1131556897);
+emit_32(1097130836);
+emit_32(1131300848);
+emit_32(1131812880);
+emit_32(1097046950);
+emit_32(1131300848);
+emit_32(1132068864);
+emit_32(1096949537);
+emit_32(1131300848);
+emit_32(1081737258);
+emit_32(1084629524);
+emit_32(1131044864);
+emit_32(1090125866);
+emit_32(1084086907);
+emit_32(1131044864);
+emit_32(1094418484);
+emit_32(1082202008);
+emit_32(1131044864);
+emit_32(1098514432);
+emit_32(1080912280);
+emit_32(1131044864);
+emit_32(1100759066);
+emit_32(1083063329);
+emit_32(1131044864);
+emit_32(1102807040);
+emit_32(1084485051);
+emit_32(1131044864);
+emit_32(1104855066);
+emit_32(1083389331);
+emit_32(1131044864);
+emit_32(1106903040);
+emit_32(1083284872);
+emit_32(1131044864);
+emit_32(1108123661);
+emit_32(1083776948);
+emit_32(1131044864);
+emit_32(1109147648);
+emit_32(1084114904);
+emit_32(1131044864);
+emit_32(1110171661);
+emit_32(1084297860);
+emit_32(1131044864);
+emit_32(1111195648);
+emit_32(1078278635);
+emit_32(1131044864);
+emit_32(1112219661);
+emit_32(1076164118);
+emit_32(1131044864);
+emit_32(1113243648);
+emit_32(1078294028);
+emit_32(1131044864);
+emit_32(1114267661);
+emit_32(1082183700);
+emit_32(1131044864);
+emit_32(1115291648);
+emit_32(1083337867);
+emit_32(1131044864);
+emit_32(1116000263);
+emit_32(1083538145);
+emit_32(1131044864);
+emit_32(1116512256);
+emit_32(1083307354);
+emit_32(1131044864);
+emit_32(1117024263);
+emit_32(1082616971);
+emit_32(1131044864);
+emit_32(1117536256);
+emit_32(1082459895);
+emit_32(1131044864);
+emit_32(1118048263);
+emit_32(1082553155);
+emit_32(1131044864);
+emit_32(1118560256);
+emit_32(1082740745);
+emit_32(1131044864);
+emit_32(1119072263);
+emit_32(1085377369);
+emit_32(1131044864);
+emit_32(1119584256);
+emit_32(1088549688);
+emit_32(1131044864);
+emit_32(1120096263);
+emit_32(1090805993);
+emit_32(1131044864);
+emit_32(1120608322);
+emit_32(1092446868);
+emit_32(1131044864);
+emit_32(1121120289);
+emit_32(1093587383);
+emit_32(1131044864);
+emit_32(1121632256);
+emit_32(1094483916);
+emit_32(1131044864);
+emit_32(1122144223);
+emit_32(1096648281);
+emit_32(1131044864);
+emit_32(1122656322);
+emit_32(1098439773);
+emit_32(1131044864);
+emit_32(1123168289);
+emit_32(1099378301);
+emit_32(1131044864);
+emit_32(1123680256);
+emit_32(1100113301);
+emit_32(1131044864);
+emit_32(1124132848);
+emit_32(1100821928);
+emit_32(1131044864);
+emit_32(1124388897);
+emit_32(1100695994);
+emit_32(1131044864);
+emit_32(1124644880);
+emit_32(1100654418);
+emit_32(1131044864);
+emit_32(1124900864);
+emit_32(1101348733);
+emit_32(1131044864);
+emit_32(1125156848);
+emit_32(1101846177);
+emit_32(1131044864);
+emit_32(1125412897);
+emit_32(1102171131);
+emit_32(1131044864);
+emit_32(1125668880);
+emit_32(1102926263);
+emit_32(1131044864);
+emit_32(1125924864);
+emit_32(1103561857);
+emit_32(1131044864);
+emit_32(1126180848);
+emit_32(1105011566);
+emit_32(1131044864);
+emit_32(1126436897);
+emit_32(1105956281);
+emit_32(1131044864);
+emit_32(1126692880);
+emit_32(1106074193);
+emit_32(1131044864);
+emit_32(1126948864);
+emit_32(1106288155);
+emit_32(1131044864);
+emit_32(1127204848);
+emit_32(1106414875);
+emit_32(1131044864);
+emit_32(1127460897);
+emit_32(1105582830);
+emit_32(1131044864);
+emit_32(1127716880);
+emit_32(1104515013);
+emit_32(1131044864);
+emit_32(1127972864);
+emit_32(1103803187);
+emit_32(1131044864);
+emit_32(1128228848);
+emit_32(1103189298);
+emit_32(1131044864);
+emit_32(1128484897);
+emit_32(1102339532);
+emit_32(1131044864);
+emit_32(1128740880);
+emit_32(1102167776);
+emit_32(1131044864);
+emit_32(1128996864);
+emit_32(1102179887);
+emit_32(1131044864);
+emit_32(1129252848);
+emit_32(1101976463);
+emit_32(1131044864);
+emit_32(1129508897);
+emit_32(1099672899);
+emit_32(1131044864);
+emit_32(1129764880);
+emit_32(1099572288);
+emit_32(1131044864);
+emit_32(1130020864);
+emit_32(1099410126);
+emit_32(1131044864);
+emit_32(1130276848);
+emit_32(1099232077);
+emit_32(1131044864);
+emit_32(1130532897);
+emit_32(1099661994);
+emit_32(1131044864);
+emit_32(1130788880);
+emit_32(1099398382);
+emit_32(1131044864);
+emit_32(1131044864);
+emit_32(1098507197);
+emit_32(1131044864);
+emit_32(1131300848);
+emit_32(1098737045);
+emit_32(1131044864);
+emit_32(1131556897);
+emit_32(1097951452);
+emit_32(1131044864);
+emit_32(1131812880);
+emit_32(1097046111);
+emit_32(1131044864);
+emit_32(1132068864);
+emit_32(1096926888);
+emit_32(1131044864);
+emit_32(1081737258);
+emit_32(1086083564);
+emit_32(1130788880);
+emit_32(1090125845);
+emit_32(1085231281);
+emit_32(1130788880);
+emit_32(1094418484);
+emit_32(1084350058);
+emit_32(1130788880);
+emit_32(1098514432);
+emit_32(1082346082);
+emit_32(1130788880);
+emit_32(1100759066);
+emit_32(1082352080);
+emit_32(1130788880);
+emit_32(1102807040);
+emit_32(1083015472);
+emit_32(1130788880);
+emit_32(1104855066);
+emit_32(1082714468);
+emit_32(1130788880);
+emit_32(1106903040);
+emit_32(1082667555);
+emit_32(1130788880);
+emit_32(1108123661);
+emit_32(1081440133);
+emit_32(1130788880);
+emit_32(1109147648);
+emit_32(1079509621);
+emit_32(1130788880);
+emit_32(1110171661);
+emit_32(1082472016);
+emit_32(1130788880);
+emit_32(1111195648);
+emit_32(1077273302);
+emit_32(1130788880);
+emit_32(1112219661);
+emit_32(1077242684);
+emit_32(1130788880);
+emit_32(1113243648);
+emit_32(1078266387);
+emit_32(1130788880);
+emit_32(1114267661);
+emit_32(1079519268);
+emit_32(1130788880);
+emit_32(1115291648);
+emit_32(1082332010);
+emit_32(1130788880);
+emit_32(1116000263);
+emit_32(1083509876);
+emit_32(1130788880);
+emit_32(1116512256);
+emit_32(1083089082);
+emit_32(1130788880);
+emit_32(1117024263);
+emit_32(1081681474);
+emit_32(1130788880);
+emit_32(1117536256);
+emit_32(1081604928);
+emit_32(1130788880);
+emit_32(1118048263);
+emit_32(1083484521);
+emit_32(1130788880);
+emit_32(1118560256);
+emit_32(1085967948);
+emit_32(1130788880);
+emit_32(1119072263);
+emit_32(1087165358);
+emit_32(1130788880);
+emit_32(1119584256);
+emit_32(1089804205);
+emit_32(1130788880);
+emit_32(1120096263);
+emit_32(1090592986);
+emit_32(1130788880);
+emit_32(1120608322);
+emit_32(1092476018);
+emit_32(1130788880);
+emit_32(1121120289);
+emit_32(1094570318);
+emit_32(1130788880);
+emit_32(1121632256);
+emit_32(1095714420);
+emit_32(1130788880);
+emit_32(1122144223);
+emit_32(1097098330);
+emit_32(1130788880);
+emit_32(1122656322);
+emit_32(1098580073);
+emit_32(1130788880);
+emit_32(1123168289);
+emit_32(1099541460);
+emit_32(1130788880);
+emit_32(1123680256);
+emit_32(1100022651);
+emit_32(1130788880);
+emit_32(1124132848);
+emit_32(1100679217);
+emit_32(1130788880);
+emit_32(1124388897);
+emit_32(1100590455);
+emit_32(1130788880);
+emit_32(1124644880);
+emit_32(1100445647);
+emit_32(1130788880);
+emit_32(1124900864);
+emit_32(1100992374);
+emit_32(1130788880);
+emit_32(1125156848);
+emit_32(1101812256);
+emit_32(1130788880);
+emit_32(1125412897);
+emit_32(1101911923);
+emit_32(1130788880);
+emit_32(1125668880);
+emit_32(1102583326);
+emit_32(1130788880);
+emit_32(1125924864);
+emit_32(1105586396);
+emit_32(1130788880);
+emit_32(1126180848);
+emit_32(1105418204);
+emit_32(1130788880);
+emit_32(1126436897);
+emit_32(1105539000);
+emit_32(1130788880);
+emit_32(1126692880);
+emit_32(1106015263);
+emit_32(1130788880);
+emit_32(1126948864);
+emit_32(1106032198);
+emit_32(1130788880);
+emit_32(1127204848);
+emit_32(1106139834);
+emit_32(1130788880);
+emit_32(1127460897);
+emit_32(1105229880);
+emit_32(1130788880);
+emit_32(1127716880);
+emit_32(1105009679);
+emit_32(1130788880);
+emit_32(1127972864);
+emit_32(1104632873);
+emit_32(1130788880);
+emit_32(1128228848);
+emit_32(1104045408);
+emit_32(1130788880);
+emit_32(1128484897);
+emit_32(1103027136);
+emit_32(1130788880);
+emit_32(1128740880);
+emit_32(1102134274);
+emit_32(1130788880);
+emit_32(1128996864);
+emit_32(1101980290);
+emit_32(1130788880);
+emit_32(1129252848);
+emit_32(1101929854);
+emit_32(1130788880);
+emit_32(1129508897);
+emit_32(1102202274);
+emit_32(1130788880);
+emit_32(1129764880);
+emit_32(1102297170);
+emit_32(1130788880);
+emit_32(1130020864);
+emit_32(1099118307);
+emit_32(1130788880);
+emit_32(1130276848);
+emit_32(1098962856);
+emit_32(1130788880);
+emit_32(1130532897);
+emit_32(1099408500);
+emit_32(1130788880);
+emit_32(1130788880);
+emit_32(1099424124);
+emit_32(1130788880);
+emit_32(1131044864);
+emit_32(1098958347);
+emit_32(1130788880);
+emit_32(1131300848);
+emit_32(1098882272);
+emit_32(1130788880);
+emit_32(1131556897);
+emit_32(1098200698);
+emit_32(1130788880);
+emit_32(1131812880);
+emit_32(1098164103);
+emit_32(1130788880);
+emit_32(1132068864);
+emit_32(1097566310);
+emit_32(1130788880);
+emit_32(1081737258);
+emit_32(1088205504);
+emit_32(1130532897);
+emit_32(1090125845);
+emit_32(1087556645);
+emit_32(1130532897);
+emit_32(1094418484);
+emit_32(1086398472);
+emit_32(1130532897);
+emit_32(1098514432);
+emit_32(1083645478);
+emit_32(1130532897);
+emit_32(1100759066);
+emit_32(1080639357);
+emit_32(1130532897);
+emit_32(1102807040);
+emit_32(1082880395);
+emit_32(1130532897);
+emit_32(1104855066);
+emit_32(1082376092);
+emit_32(1130532897);
+emit_32(1106903040);
+emit_32(1082783171);
+emit_32(1130532897);
+emit_32(1108123661);
+emit_32(1079715142);
+emit_32(1130532897);
+emit_32(1109147648);
+emit_32(1074967232);
+emit_32(1130532897);
+emit_32(1110171661);
+emit_32(1075751525);
+emit_32(1130532897);
+emit_32(1111195648);
+emit_32(1074864513);
+emit_32(1130532897);
+emit_32(1112219661);
+emit_32(1066352635);
+emit_32(1130532897);
+emit_32(1113243648);
+emit_32(1075556532);
+emit_32(1130532897);
+emit_32(1114267661);
+emit_32(1081657231);
+emit_32(1130532897);
+emit_32(1115291648);
+emit_32(1082114913);
+emit_32(1130532897);
+emit_32(1116000263);
+emit_32(1082771049);
+emit_32(1130532897);
+emit_32(1116512256);
+emit_32(1083047705);
+emit_32(1130532897);
+emit_32(1117024263);
+emit_32(1081671953);
+emit_32(1130532897);
+emit_32(1117536256);
+emit_32(1082383810);
+emit_32(1130532897);
+emit_32(1118048263);
+emit_32(1085344359);
+emit_32(1130532897);
+emit_32(1118560256);
+emit_32(1087131993);
+emit_32(1130532897);
+emit_32(1119072263);
+emit_32(1088001598);
+emit_32(1130532897);
+emit_32(1119584256);
+emit_32(1090829398);
+emit_32(1130532897);
+emit_32(1120096263);
+emit_32(1091029938);
+emit_32(1130532897);
+emit_32(1120608322);
+emit_32(1092548601);
+emit_32(1130532897);
+emit_32(1121120289);
+emit_32(1094257947);
+emit_32(1130532897);
+emit_32(1121632256);
+emit_32(1095812881);
+emit_32(1130532897);
+emit_32(1122144223);
+emit_32(1096665897);
+emit_32(1130532897);
+emit_32(1122656322);
+emit_32(1097826356);
+emit_32(1130532897);
+emit_32(1123168289);
+emit_32(1099106825);
+emit_32(1130532897);
+emit_32(1123680256);
+emit_32(1099535378);
+emit_32(1130532897);
+emit_32(1124132848);
+emit_32(1099629068);
+emit_32(1130532897);
+emit_32(1124388897);
+emit_32(1100012480);
+emit_32(1130532897);
+emit_32(1124644880);
+emit_32(1100315047);
+emit_32(1130532897);
+emit_32(1124900864);
+emit_32(1100226809);
+emit_32(1130532897);
+emit_32(1125156848);
+emit_32(1101404150);
+emit_32(1130532897);
+emit_32(1125412897);
+emit_32(1101559392);
+emit_32(1130532897);
+emit_32(1125668880);
+emit_32(1104381215);
+emit_32(1130532897);
+emit_32(1125924864);
+emit_32(1104769555);
+emit_32(1130532897);
+emit_32(1126180848);
+emit_32(1104830110);
+emit_32(1130532897);
+emit_32(1126436897);
+emit_32(1105225685);
+emit_32(1130532897);
+emit_32(1126692880);
+emit_32(1105543666);
+emit_32(1130532897);
+emit_32(1126948864);
+emit_32(1105381923);
+emit_32(1130532897);
+emit_32(1127204848);
+emit_32(1102960080);
+emit_32(1130532897);
+emit_32(1127460897);
+emit_32(1102636017);
+emit_32(1130532897);
+emit_32(1127716880);
+emit_32(1102352640);
+emit_32(1130532897);
+emit_32(1127972864);
+emit_32(1102376600);
+emit_32(1130532897);
+emit_32(1128228848);
+emit_32(1101985061);
+emit_32(1130532897);
+emit_32(1128484897);
+emit_32(1100996464);
+emit_32(1130532897);
+emit_32(1128740880);
+emit_32(1102569013);
+emit_32(1130532897);
+emit_32(1128996864);
+emit_32(1102092331);
+emit_32(1130532897);
+emit_32(1129252848);
+emit_32(1102309543);
+emit_32(1130532897);
+emit_32(1129508897);
+emit_32(1102185287);
+emit_32(1130532897);
+emit_32(1129764880);
+emit_32(1102249407);
+emit_32(1130532897);
+emit_32(1130020864);
+emit_32(1102463107);
+emit_32(1130532897);
+emit_32(1130276848);
+emit_32(1099451125);
+emit_32(1130532897);
+emit_32(1130532897);
+emit_32(1098977588);
+emit_32(1130532897);
+emit_32(1130788880);
+emit_32(1099393401);
+emit_32(1130532897);
+emit_32(1131044864);
+emit_32(1099525941);
+emit_32(1130532897);
+emit_32(1131300848);
+emit_32(1099608359);
+emit_32(1130532897);
+emit_32(1131556897);
+emit_32(1099010985);
+emit_32(1130532897);
+emit_32(1131812880);
+emit_32(1098150052);
+emit_32(1130532897);
+emit_32(1132068864);
+emit_32(1097996750);
+emit_32(1130532897);
+emit_32(1081737258);
+emit_32(1088030748);
+emit_32(1130276848);
+emit_32(1090125845);
+emit_32(1088922017);
+emit_32(1130276848);
+emit_32(1094418484);
+emit_32(1086531599);
+emit_32(1130276848);
+emit_32(1098514432);
+emit_32(1084132164);
+emit_32(1130276848);
+emit_32(1100759066);
+emit_32(1081632694);
+emit_32(1130276848);
+emit_32(1102807040);
+emit_32(1082276478);
+emit_32(1130276848);
+emit_32(1104855066);
+emit_32(1081735706);
+emit_32(1130276848);
+emit_32(1106903040);
+emit_32(1082304580);
+emit_32(1130276848);
+emit_32(1108123661);
+emit_32(1079035203);
+emit_32(1130276848);
+emit_32(1109147648);
+emit_32(1069837514);
+emit_32(1130276848);
+emit_32(1110171661);
+emit_32(1072973008);
+emit_32(1130276848);
+emit_32(1111195648);
+emit_32(1073616750);
+emit_32(1130276848);
+emit_32(1112219661);
+emit_32(1074356373);
+emit_32(1130276848);
+emit_32(1113243648);
+emit_32(1076853159);
+emit_32(1130276848);
+emit_32(1114267661);
+emit_32(1081069063);
+emit_32(1130276848);
+emit_32(1115291648);
+emit_32(1082137856);
+emit_32(1130276848);
+emit_32(1116000263);
+emit_32(1082943959);
+emit_32(1130276848);
+emit_32(1116512256);
+emit_32(1081841906);
+emit_32(1130276848);
+emit_32(1117024263);
+emit_32(1079724873);
+emit_32(1130276848);
+emit_32(1117536256);
+emit_32(1084345444);
+emit_32(1130276848);
+emit_32(1118048263);
+emit_32(1086294789);
+emit_32(1130276848);
+emit_32(1118560256);
+emit_32(1087434528);
+emit_32(1130276848);
+emit_32(1119072263);
+emit_32(1088073635);
+emit_32(1130276848);
+emit_32(1119584256);
+emit_32(1089448947);
+emit_32(1130276848);
+emit_32(1120096263);
+emit_32(1090721069);
+emit_32(1130276848);
+emit_32(1120608322);
+emit_32(1091918239);
+emit_32(1130276848);
+emit_32(1121120289);
+emit_32(1094547984);
+emit_32(1130276848);
+emit_32(1121632256);
+emit_32(1095883345);
+emit_32(1130276848);
+emit_32(1122144223);
+emit_32(1096699766);
+emit_32(1130276848);
+emit_32(1122656322);
+emit_32(1097650825);
+emit_32(1130276848);
+emit_32(1123168289);
+emit_32(1098292029);
+emit_32(1130276848);
+emit_32(1123680256);
+emit_32(1098586993);
+emit_32(1130276848);
+emit_32(1124132848);
+emit_32(1099015075);
+emit_32(1130276848);
+emit_32(1124388897);
+emit_32(1099448608);
+emit_32(1130276848);
+emit_32(1124644880);
+emit_32(1100240545);
+emit_32(1130276848);
+emit_32(1124900864);
+emit_32(1100411568);
+emit_32(1130276848);
+emit_32(1125156848);
+emit_32(1100717962);
+emit_32(1130276848);
+emit_32(1125412897);
+emit_32(1104106121);
+emit_32(1130276848);
+emit_32(1125668880);
+emit_32(1103981340);
+emit_32(1130276848);
+emit_32(1125924864);
+emit_32(1104173177);
+emit_32(1130276848);
+emit_32(1126180848);
+emit_32(1104308653);
+emit_32(1130276848);
+emit_32(1126436897);
+emit_32(1104718856);
+emit_32(1130276848);
+emit_32(1126692880);
+emit_32(1104731072);
+emit_32(1130276848);
+emit_32(1126948864);
+emit_32(1102448479);
+emit_32(1130276848);
+emit_32(1127204848);
+emit_32(1102776107);
+emit_32(1130276848);
+emit_32(1127460897);
+emit_32(1102622858);
+emit_32(1130276848);
+emit_32(1127716880);
+emit_32(1102367582);
+emit_32(1130276848);
+emit_32(1127972864);
+emit_32(1102063704);
+emit_32(1130276848);
+emit_32(1128228848);
+emit_32(1101966973);
+emit_32(1130276848);
+emit_32(1128484897);
+emit_32(1101031067);
+emit_32(1130276848);
+emit_32(1128740880);
+emit_32(1100260154);
+emit_32(1130276848);
+emit_32(1128996864);
+emit_32(1100108530);
+emit_32(1130276848);
+emit_32(1129252848);
+emit_32(1102466305);
+emit_32(1130276848);
+emit_32(1129508897);
+emit_32(1102042209);
+emit_32(1130276848);
+emit_32(1129764880);
+emit_32(1101779803);
+emit_32(1130276848);
+emit_32(1130020864);
+emit_32(1101832441);
+emit_32(1130276848);
+emit_32(1130276848);
+emit_32(1101855772);
+emit_32(1130276848);
+emit_32(1130532897);
+emit_32(1099854407);
+emit_32(1130276848);
+emit_32(1130788880);
+emit_32(1099755369);
+emit_32(1130276848);
+emit_32(1131044864);
+emit_32(1100126198);
+emit_32(1130276848);
+emit_32(1131300848);
+emit_32(1100210346);
+emit_32(1130276848);
+emit_32(1131556897);
+emit_32(1099599131);
+emit_32(1130276848);
+emit_32(1131812880);
+emit_32(1099312713);
+emit_32(1130276848);
+emit_32(1132068864);
+emit_32(1099215405);
+emit_32(1130276848);
+emit_32(1081737300);
+emit_32(1090545737);
+emit_32(1130020864);
+emit_32(1090125845);
+emit_32(1090779118);
+emit_32(1130020864);
+emit_32(1094418484);
+emit_32(1088257765);
+emit_32(1130020864);
+emit_32(1098514432);
+emit_32(1086032917);
+emit_32(1130020864);
+emit_32(1100759066);
+emit_32(1083317483);
+emit_32(1130020864);
+emit_32(1102807040);
+emit_32(1080833973);
+emit_32(1130020864);
+emit_32(1104855066);
+emit_32(1082686639);
+emit_32(1130020864);
+emit_32(1106903040);
+emit_32(1079520862);
+emit_32(1130020864);
+emit_32(1108123661);
+emit_32(1071421451);
+emit_32(1130020864);
+emit_32(1109147648);
+emit_32(1074673169);
+emit_32(1130020864);
+emit_32(1110171661);
+emit_32(1076755348);
+emit_32(1130020864);
+emit_32(1111195648);
+emit_32(1078551432);
+emit_32(1130020864);
+emit_32(1112219661);
+emit_32(1078159559);
+emit_32(1130020864);
+emit_32(1113243648);
+emit_32(1078755569);
+emit_32(1130020864);
+emit_32(1114267661);
+emit_32(1080798447);
+emit_32(1130020864);
+emit_32(1115291648);
+emit_32(1079415837);
+emit_32(1130020864);
+emit_32(1116000263);
+emit_32(1082138863);
+emit_32(1130020864);
+emit_32(1116512256);
+emit_32(1077619039);
+emit_32(1130020864);
+emit_32(1117024263);
+emit_32(1082948888);
+emit_32(1130020864);
+emit_32(1117536256);
+emit_32(1085399431);
+emit_32(1130020864);
+emit_32(1118048263);
+emit_32(1087137844);
+emit_32(1130020864);
+emit_32(1118560256);
+emit_32(1087057984);
+emit_32(1130020864);
+emit_32(1119072263);
+emit_32(1088011706);
+emit_32(1130020864);
+emit_32(1119584256);
+emit_32(1087547166);
+emit_32(1130020864);
+emit_32(1120096263);
+emit_32(1089001897);
+emit_32(1130020864);
+emit_32(1120608322);
+emit_32(1092274230);
+emit_32(1130020864);
+emit_32(1121120289);
+emit_32(1093489656);
+emit_32(1130020864);
+emit_32(1121632256);
+emit_32(1094888037);
+emit_32(1130020864);
+emit_32(1122144223);
+emit_32(1095981597);
+emit_32(1130020864);
+emit_32(1122656322);
+emit_32(1097071696);
+emit_32(1130020864);
+emit_32(1123168289);
+emit_32(1097539571);
+emit_32(1130020864);
+emit_32(1123680256);
+emit_32(1097094346);
+emit_32(1130020864);
+emit_32(1124132848);
+emit_32(1098861091);
+emit_32(1130020864);
+emit_32(1124388897);
+emit_32(1099278215);
+emit_32(1130020864);
+emit_32(1124644880);
+emit_32(1099782108);
+emit_32(1130020864);
+emit_32(1124900864);
+emit_32(1100389129);
+emit_32(1130020864);
+emit_32(1125156848);
+emit_32(1103220179);
+emit_32(1130020864);
+emit_32(1125412897);
+emit_32(1103665509);
+emit_32(1130020864);
+emit_32(1125668880);
+emit_32(1104112307);
+emit_32(1130020864);
+emit_32(1125924864);
+emit_32(1104257063);
+emit_32(1130020864);
+emit_32(1126180848);
+emit_32(1103372904);
+emit_32(1130020864);
+emit_32(1126436897);
+emit_32(1104276514);
+emit_32(1130020864);
+emit_32(1126692880);
+emit_32(1104476792);
+emit_32(1130020864);
+emit_32(1126948864);
+emit_32(1102277299);
+emit_32(1130020864);
+emit_32(1127204848);
+emit_32(1102993162);
+emit_32(1130020864);
+emit_32(1127460897);
+emit_32(1102760011);
+emit_32(1130020864);
+emit_32(1127716880);
+emit_32(1102172861);
+emit_32(1130020864);
+emit_32(1127972864);
+emit_32(1102165993);
+emit_32(1130020864);
+emit_32(1128228848);
+emit_32(1101400008);
+emit_32(1130020864);
+emit_32(1128484897);
+emit_32(1100749524);
+emit_32(1130020864);
+emit_32(1128740880);
+emit_32(1100733953);
+emit_32(1130020864);
+emit_32(1128996864);
+emit_32(1100153147);
+emit_32(1130020864);
+emit_32(1129252848);
+emit_32(1100010435);
+emit_32(1130020864);
+emit_32(1129508897);
+emit_32(1101004957);
+emit_32(1130020864);
+emit_32(1129764880);
+emit_32(1102164053);
+emit_32(1130020864);
+emit_32(1130020864);
+emit_32(1101850110);
+emit_32(1130020864);
+emit_32(1130276848);
+emit_32(1102364960);
+emit_32(1130020864);
+emit_32(1130532897);
+emit_32(1103265268);
+emit_32(1130020864);
+emit_32(1130788880);
+emit_32(1100508614);
+emit_32(1130020864);
+emit_32(1131044864);
+emit_32(1100302936);
+emit_32(1130020864);
+emit_32(1131300848);
+emit_32(1100358615);
+emit_32(1130020864);
+emit_32(1131556897);
+emit_32(1100122056);
+emit_32(1130020864);
+emit_32(1131812880);
+emit_32(1099275331);
+emit_32(1130020864);
+emit_32(1132068864);
+emit_32(1099473145);
+emit_32(1130020864);
+emit_32(1081737300);
+emit_32(1091835139);
+emit_32(1129764880);
+emit_32(1090125845);
+emit_32(1092274629);
+emit_32(1129764880);
+emit_32(1094418484);
+emit_32(1091485187);
+emit_32(1129764880);
+emit_32(1098514432);
+emit_32(1088227650);
+emit_32(1129764880);
+emit_32(1100759066);
+emit_32(1086589313);
+emit_32(1129764880);
+emit_32(1102807040);
+emit_32(1084191974);
+emit_32(1129764880);
+emit_32(1104855066);
+emit_32(1080611507);
+emit_32(1129764880);
+emit_32(1106903040);
+emit_32(1075926931);
+emit_32(1129764880);
+emit_32(1108123661);
+emit_32(1079228645);
+emit_32(1129764880);
+emit_32(1109147648);
+emit_32(1082222833);
+emit_32(1129764880);
+emit_32(1110171661);
+emit_32(1083146418);
+emit_32(1129764880);
+emit_32(1111195648);
+emit_32(1082983868);
+emit_32(1129764880);
+emit_32(1112219661);
+emit_32(1081162806);
+emit_32(1129764880);
+emit_32(1113243648);
+emit_32(1077328919);
+emit_32(1129764880);
+emit_32(1114267661);
+emit_32(1076126244);
+emit_32(1129764880);
+emit_32(1115291648);
+emit_32(1076114164);
+emit_32(1129764880);
+emit_32(1116000263);
+emit_32(1077220454);
+emit_32(1129764880);
+emit_32(1116512256);
+emit_32(1076896821);
+emit_32(1129764880);
+emit_32(1117024263);
+emit_32(1084289953);
+emit_32(1129764880);
+emit_32(1117536256);
+emit_32(1085902789);
+emit_32(1129764880);
+emit_32(1118048263);
+emit_32(1086392243);
+emit_32(1129764880);
+emit_32(1118560256);
+emit_32(1086899838);
+emit_32(1129764880);
+emit_32(1119072263);
+emit_32(1086675170);
+emit_32(1129764880);
+emit_32(1119584256);
+emit_32(1088147014);
+emit_32(1129764880);
+emit_32(1120096263);
+emit_32(1090408877);
+emit_32(1129764880);
+emit_32(1120608322);
+emit_32(1091709677);
+emit_32(1129764880);
+emit_32(1121120289);
+emit_32(1092234888);
+emit_32(1129764880);
+emit_32(1121632256);
+emit_32(1092967570);
+emit_32(1129764880);
+emit_32(1122144223);
+emit_32(1095135710);
+emit_32(1129764880);
+emit_32(1122656322);
+emit_32(1095795579);
+emit_32(1129764880);
+emit_32(1123168289);
+emit_32(1096420845);
+emit_32(1129764880);
+emit_32(1123680256);
+emit_32(1097142580);
+emit_32(1129764880);
+emit_32(1124132848);
+emit_32(1097919155);
+emit_32(1129764880);
+emit_32(1124388897);
+emit_32(1099013659);
+emit_32(1129764880);
+emit_32(1124644880);
+emit_32(1099826515);
+emit_32(1129764880);
+emit_32(1124900864);
+emit_32(1102949541);
+emit_32(1129764880);
+emit_32(1125156848);
+emit_32(1103290853);
+emit_32(1129764880);
+emit_32(1125412897);
+emit_32(1103584035);
+emit_32(1129764880);
+emit_32(1125668880);
+emit_32(1103730049);
+emit_32(1129764880);
+emit_32(1125924864);
+emit_32(1101436027);
+emit_32(1129764880);
+emit_32(1126180848);
+emit_32(1103412226);
+emit_32(1129764880);
+emit_32(1126436897);
+emit_32(1103699850);
+emit_32(1129764880);
+emit_32(1126692880);
+emit_32(1104185079);
+emit_32(1129764880);
+emit_32(1126948864);
+emit_32(1102131233);
+emit_32(1129764880);
+emit_32(1127204848);
+emit_32(1105054191);
+emit_32(1129764880);
+emit_32(1127460897);
+emit_32(1104932451);
+emit_32(1129764880);
+emit_32(1127716880);
+emit_32(1104496873);
+emit_32(1129764880);
+emit_32(1127972864);
+emit_32(1104477159);
+emit_32(1129764880);
+emit_32(1128228848);
+emit_32(1104320607);
+emit_32(1129764880);
+emit_32(1128484897);
+emit_32(1103549432);
+emit_32(1129764880);
+emit_32(1128740880);
+emit_32(1102911793);
+emit_32(1129764880);
+emit_32(1128996864);
+emit_32(1101627707);
+emit_32(1129764880);
+emit_32(1129252848);
+emit_32(1100874200);
+emit_32(1129764880);
+emit_32(1129508897);
+emit_32(1102213074);
+emit_32(1129764880);
+emit_32(1129764880);
+emit_32(1102331091);
+emit_32(1129764880);
+emit_32(1130020864);
+emit_32(1102551345);
+emit_32(1129764880);
+emit_32(1130276848);
+emit_32(1102696730);
+emit_32(1129764880);
+emit_32(1130532897);
+emit_32(1103568568);
+emit_32(1129764880);
+emit_32(1130788880);
+emit_32(1102851657);
+emit_32(1129764880);
+emit_32(1131044864);
+emit_32(1100504787);
+emit_32(1129764880);
+emit_32(1131300848);
+emit_32(1099935252);
+emit_32(1129764880);
+emit_32(1131556897);
+emit_32(1100381212);
+emit_32(1129764880);
+emit_32(1131812880);
+emit_32(1099598030);
+emit_32(1129764880);
+emit_32(1132068864);
+emit_32(1099324719);
+emit_32(1129764880);
+emit_32(1081737300);
+emit_32(1093216816);
+emit_32(1129508897);
+emit_32(1090125845);
+emit_32(1092417151);
+emit_32(1129508897);
+emit_32(1094418484);
+emit_32(1092298631);
+emit_32(1129508897);
+emit_32(1098514432);
+emit_32(1090960878);
+emit_32(1129508897);
+emit_32(1100759066);
+emit_32(1088614281);
+emit_32(1129508897);
+emit_32(1102807040);
+emit_32(1087275941);
+emit_32(1129508897);
+emit_32(1104855066);
+emit_32(1083352170);
+emit_32(1129508897);
+emit_32(1106903040);
+emit_32(1082781472);
+emit_32(1129508897);
+emit_32(1108123661);
+emit_32(1082625024);
+emit_32(1129508897);
+emit_32(1109147648);
+emit_32(1083756291);
+emit_32(1129508897);
+emit_32(1110171661);
+emit_32(1085301682);
+emit_32(1129508897);
+emit_32(1111195648);
+emit_32(1085254392);
+emit_32(1129508897);
+emit_32(1112219661);
+emit_32(1083183433);
+emit_32(1129508897);
+emit_32(1113243648);
+emit_32(1082262280);
+emit_32(1129508897);
+emit_32(1114267661);
+emit_32(1079746432);
+emit_32(1129508897);
+emit_32(1115291648);
+emit_32(1079747858);
+emit_32(1129508897);
+emit_32(1116000263);
+emit_32(1080629039);
+emit_32(1129508897);
+emit_32(1116512256);
+emit_32(1084566295);
+emit_32(1129508897);
+emit_32(1117024263);
+emit_32(1087852574);
+emit_32(1129508897);
+emit_32(1117536256);
+emit_32(1089342076);
+emit_32(1129508897);
+emit_32(1118048263);
+emit_32(1089066049);
+emit_32(1129508897);
+emit_32(1118560256);
+emit_32(1087464056);
+emit_32(1129508897);
+emit_32(1119072263);
+emit_32(1086240913);
+emit_32(1129508897);
+emit_32(1119584256);
+emit_32(1087270531);
+emit_32(1129508897);
+emit_32(1120096263);
+emit_32(1090862428);
+emit_32(1129508897);
+emit_32(1120608322);
+emit_32(1091412280);
+emit_32(1129508897);
+emit_32(1121120289);
+emit_32(1092239313);
+emit_32(1129508897);
+emit_32(1121632256);
+emit_32(1093054602);
+emit_32(1129508897);
+emit_32(1122144223);
+emit_32(1094389439);
+emit_32(1129508897);
+emit_32(1122656322);
+emit_32(1094766612);
+emit_32(1129508897);
+emit_32(1123168289);
+emit_32(1095867197);
+emit_32(1129508897);
+emit_32(1123680256);
+emit_32(1097324193);
+emit_32(1129508897);
+emit_32(1124132848);
+emit_32(1097994863);
+emit_32(1129508897);
+emit_32(1124388897);
+emit_32(1098508665);
+emit_32(1129508897);
+emit_32(1124644880);
+emit_32(1099390989);
+emit_32(1129508897);
+emit_32(1124900864);
+emit_32(1102819570);
+emit_32(1129508897);
+emit_32(1125156848);
+emit_32(1103456528);
+emit_32(1129508897);
+emit_32(1125412897);
+emit_32(1104213443);
+emit_32(1129508897);
+emit_32(1125668880);
+emit_32(1101924034);
+emit_32(1129508897);
+emit_32(1125924864);
+emit_32(1101395290);
+emit_32(1129508897);
+emit_32(1126180848);
+emit_32(1103179599);
+emit_32(1129508897);
+emit_32(1126436897);
+emit_32(1104174855);
+emit_32(1129508897);
+emit_32(1126692880);
+emit_32(1103711856);
+emit_32(1129508897);
+emit_32(1126948864);
+emit_32(1101427166);
+emit_32(1129508897);
+emit_32(1127204848);
+emit_32(1104341946);
+emit_32(1129508897);
+emit_32(1127460897);
+emit_32(1103905266);
+emit_32(1129508897);
+emit_32(1127716880);
+emit_32(1104351225);
+emit_32(1129508897);
+emit_32(1127972864);
+emit_32(1104338538);
+emit_32(1129508897);
+emit_32(1128228848);
+emit_32(1104240391);
+emit_32(1129508897);
+emit_32(1128484897);
+emit_32(1104134537);
+emit_32(1129508897);
+emit_32(1128740880);
+emit_32(1103285715);
+emit_32(1129508897);
+emit_32(1128996864);
+emit_32(1103034843);
+emit_32(1129508897);
+emit_32(1129252848);
+emit_32(1102598688);
+emit_32(1129508897);
+emit_32(1129508897);
+emit_32(1102258058);
+emit_32(1129508897);
+emit_32(1129764880);
+emit_32(1102454299);
+emit_32(1129508897);
+emit_32(1130020864);
+emit_32(1102717125);
+emit_32(1129508897);
+emit_32(1130276848);
+emit_32(1103026612);
+emit_32(1129508897);
+emit_32(1130532897);
+emit_32(1103449817);
+emit_32(1129508897);
+emit_32(1130788880);
+emit_32(1103303593);
+emit_32(1129508897);
+emit_32(1131044864);
+emit_32(1100124678);
+emit_32(1129508897);
+emit_32(1131300848);
+emit_32(1099774348);
+emit_32(1129508897);
+emit_32(1131556897);
+emit_32(1099896141);
+emit_32(1129508897);
+emit_32(1131812880);
+emit_32(1099520646);
+emit_32(1129508897);
+emit_32(1132068864);
+emit_32(1098974233);
+emit_32(1129508897);
+emit_32(1081737258);
+emit_32(1093092141);
+emit_32(1129252848);
+emit_32(1090125845);
+emit_32(1092641463);
+emit_32(1129252848);
+emit_32(1094418484);
+emit_32(1093021047);
+emit_32(1129252848);
+emit_32(1098514432);
+emit_32(1091404216);
+emit_32(1129252848);
+emit_32(1100759066);
+emit_32(1090891043);
+emit_32(1129252848);
+emit_32(1102807040);
+emit_32(1087333718);
+emit_32(1129252848);
+emit_32(1104855066);
+emit_32(1086550243);
+emit_32(1129252848);
+emit_32(1106903040);
+emit_32(1086614059);
+emit_32(1129252848);
+emit_32(1108123661);
+emit_32(1087395227);
+emit_32(1129252848);
+emit_32(1109147648);
+emit_32(1087693715);
+emit_32(1129252848);
+emit_32(1110171661);
+emit_32(1086905605);
+emit_32(1129252848);
+emit_32(1111195648);
+emit_32(1085917406);
+emit_32(1129252848);
+emit_32(1112219661);
+emit_32(1086122445);
+emit_32(1129252848);
+emit_32(1113243648);
+emit_32(1085614577);
+emit_32(1129252848);
+emit_32(1114267661);
+emit_32(1083545422);
+emit_32(1129252848);
+emit_32(1115291648);
+emit_32(1083831285);
+emit_32(1129252848);
+emit_32(1116000263);
+emit_32(1086466587);
+emit_32(1129252848);
+emit_32(1116512256);
+emit_32(1089709267);
+emit_32(1129252848);
+emit_32(1117024263);
+emit_32(1091281166);
+emit_32(1129252848);
+emit_32(1117536256);
+emit_32(1091916068);
+emit_32(1129252848);
+emit_32(1118048263);
+emit_32(1091040717);
+emit_32(1129252848);
+emit_32(1118560256);
+emit_32(1090210612);
+emit_32(1129252848);
+emit_32(1119072263);
+emit_32(1089209851);
+emit_32(1129252848);
+emit_32(1119584256);
+emit_32(1089378399);
+emit_32(1129252848);
+emit_32(1120096263);
+emit_32(1090028789);
+emit_32(1129252848);
+emit_32(1120608322);
+emit_32(1091234840);
+emit_32(1129252848);
+emit_32(1121120289);
+emit_32(1093074734);
+emit_32(1129252848);
+emit_32(1121632256);
+emit_32(1093111330);
+emit_32(1129252848);
+emit_32(1122144223);
+emit_32(1094128029);
+emit_32(1129252848);
+emit_32(1122656322);
+emit_32(1095036410);
+emit_32(1129252848);
+emit_32(1123168289);
+emit_32(1095680551);
+emit_32(1129252848);
+emit_32(1123680256);
+emit_32(1097146460);
+emit_32(1129252848);
+emit_32(1124132848);
+emit_32(1098042153);
+emit_32(1129252848);
+emit_32(1124388897);
+emit_32(1097318741);
+emit_32(1129252848);
+emit_32(1124644880);
+emit_32(1101515457);
+emit_32(1129252848);
+emit_32(1124900864);
+emit_32(1102822454);
+emit_32(1129252848);
+emit_32(1125156848);
+emit_32(1103621941);
+emit_32(1129252848);
+emit_32(1125412897);
+emit_32(1104011330);
+emit_32(1129252848);
+emit_32(1125668880);
+emit_32(1101788244);
+emit_32(1129252848);
+emit_32(1125924864);
+emit_32(1102141981);
+emit_32(1129252848);
+emit_32(1126180848);
+emit_32(1103612556);
+emit_32(1129252848);
+emit_32(1126436897);
+emit_32(1104382421);
+emit_32(1129252848);
+emit_32(1126692880);
+emit_32(1104094324);
+emit_32(1129252848);
+emit_32(1126948864);
+emit_32(1101288335);
+emit_32(1129252848);
+emit_32(1127204848);
+emit_32(1103222224);
+emit_32(1129252848);
+emit_32(1127460897);
+emit_32(1103312087);
+emit_32(1129252848);
+emit_32(1127716880);
+emit_32(1103773512);
+emit_32(1129252848);
+emit_32(1127972864);
+emit_32(1104076551);
+emit_32(1129252848);
+emit_32(1128228848);
+emit_32(1104345353);
+emit_32(1129252848);
+emit_32(1128484897);
+emit_32(1104178053);
+emit_32(1129252848);
+emit_32(1128740880);
+emit_32(1103422240);
+emit_32(1129252848);
+emit_32(1128996864);
+emit_32(1103161092);
+emit_32(1129252848);
+emit_32(1129252848);
+emit_32(1102825705);
+emit_32(1129252848);
+emit_32(1129508897);
+emit_32(1102393482);
+emit_32(1129252848);
+emit_32(1129764880);
+emit_32(1102471601);
+emit_32(1129252848);
+emit_32(1130020864);
+emit_32(1100205471);
+emit_32(1129252848);
+emit_32(1130276848);
+emit_32(1102674552);
+emit_32(1129252848);
+emit_32(1130532897);
+emit_32(1102672980);
+emit_32(1129252848);
+emit_32(1130788880);
+emit_32(1102535406);
+emit_32(1129252848);
+emit_32(1131044864);
+emit_32(1100902669);
+emit_32(1129252848);
+emit_32(1131300848);
+emit_32(1099358641);
+emit_32(1129252848);
+emit_32(1131556897);
+emit_32(1099486829);
+emit_32(1129252848);
+emit_32(1131812880);
+emit_32(1098967679);
+emit_32(1129252848);
+emit_32(1132068864);
+emit_32(1097864210);
+emit_32(1129252848);
+emit_32(1081737258);
+emit_32(1094158228);
+emit_32(1128996864);
+emit_32(1090125845);
+emit_32(1093761447);
+emit_32(1128996864);
+emit_32(1094418484);
+emit_32(1094140822);
+emit_32(1128996864);
+emit_32(1098514432);
+emit_32(1093034574);
+emit_32(1128996864);
+emit_32(1100759066);
+emit_32(1091456100);
+emit_32(1128996864);
+emit_32(1102807040);
+emit_32(1089525095);
+emit_32(1128996864);
+emit_32(1104855066);
+emit_32(1088585025);
+emit_32(1128996864);
+emit_32(1106903040);
+emit_32(1090478817);
+emit_32(1128996864);
+emit_32(1108123661);
+emit_32(1091340515);
+emit_32(1128996864);
+emit_32(1109147648);
+emit_32(1091433031);
+emit_32(1128996864);
+emit_32(1110171661);
+emit_32(1090929264);
+emit_32(1128996864);
+emit_32(1111195648);
+emit_32(1089429192);
+emit_32(1128996864);
+emit_32(1112219661);
+emit_32(1087959340);
+emit_32(1128996864);
+emit_32(1113243648);
+emit_32(1088733567);
+emit_32(1128996864);
+emit_32(1114267661);
+emit_32(1087293054);
+emit_32(1128996864);
+emit_32(1115291648);
+emit_32(1087872937);
+emit_32(1128996864);
+emit_32(1116000263);
+emit_32(1089774656);
+emit_32(1128996864);
+emit_32(1116512256);
+emit_32(1091806303);
+emit_32(1128996864);
+emit_32(1117024263);
+emit_32(1092488066);
+emit_32(1128996864);
+emit_32(1117536256);
+emit_32(1092781238);
+emit_32(1128996864);
+emit_32(1118048263);
+emit_32(1092423317);
+emit_32(1128996864);
+emit_32(1118560256);
+emit_32(1092476627);
+emit_32(1128996864);
+emit_32(1119072263);
+emit_32(1092619547);
+emit_32(1128996864);
+emit_32(1119584256);
+emit_32(1092370794);
+emit_32(1128996864);
+emit_32(1120096263);
+emit_32(1091790858);
+emit_32(1128996864);
+emit_32(1120608322);
+emit_32(1091461888);
+emit_32(1128996864);
+emit_32(1121120289);
+emit_32(1092460080);
+emit_32(1128996864);
+emit_32(1121632256);
+emit_32(1094170916);
+emit_32(1128996864);
+emit_32(1122144223);
+emit_32(1094599154);
+emit_32(1128996864);
+emit_32(1122656322);
+emit_32(1095059898);
+emit_32(1128996864);
+emit_32(1123168289);
+emit_32(1096401342);
+emit_32(1128996864);
+emit_32(1123680256);
+emit_32(1096965371);
+emit_32(1128996864);
+emit_32(1124132848);
+emit_32(1097641807);
+emit_32(1128996864);
+emit_32(1124388897);
+emit_32(1099087059);
+emit_32(1128996864);
+emit_32(1124644880);
+emit_32(1102450944);
+emit_32(1128996864);
+emit_32(1124900864);
+emit_32(1103410286);
+emit_32(1128996864);
+emit_32(1125156848);
+emit_32(1103813149);
+emit_32(1128996864);
+emit_32(1125412897);
+emit_32(1101937980);
+emit_32(1128996864);
+emit_32(1125668880);
+emit_32(1103166020);
+emit_32(1128996864);
+emit_32(1125924864);
+emit_32(1104505681);
+emit_32(1128996864);
+emit_32(1126180848);
+emit_32(1103994867);
+emit_32(1128996864);
+emit_32(1126436897);
+emit_32(1104662548);
+emit_32(1128996864);
+emit_32(1126692880);
+emit_32(1104116974);
+emit_32(1128996864);
+emit_32(1126948864);
+emit_32(1100885629);
+emit_32(1128996864);
+emit_32(1127204848);
+emit_32(1100638585);
+emit_32(1128996864);
+emit_32(1127460897);
+emit_32(1100607442);
+emit_32(1128996864);
+emit_32(1127716880);
+emit_32(1103522116);
+emit_32(1128996864);
+emit_32(1127972864);
+emit_32(1103785676);
+emit_32(1128996864);
+emit_32(1128228848);
+emit_32(1103795375);
+emit_32(1128996864);
+emit_32(1128484897);
+emit_32(1101024146);
+emit_32(1128996864);
+emit_32(1128740880);
+emit_32(1100738829);
+emit_32(1128996864);
+emit_32(1128996864);
+emit_32(1102805677);
+emit_32(1128996864);
+emit_32(1129252848);
+emit_32(1102445543);
+emit_32(1128996864);
+emit_32(1129508897);
+emit_32(1102293657);
+emit_32(1128996864);
+emit_32(1129764880);
+emit_32(1100424728);
+emit_32(1128996864);
+emit_32(1130020864);
+emit_32(1099671273);
+emit_32(1128996864);
+emit_32(1130276848);
+emit_32(1100387975);
+emit_32(1128996864);
+emit_32(1130532897);
+emit_32(1101778072);
+emit_32(1128996864);
+emit_32(1130788880);
+emit_32(1101932318);
+emit_32(1128996864);
+emit_32(1131044864);
+emit_32(1101602383);
+emit_32(1128996864);
+emit_32(1131300848);
+emit_32(1098804049);
+emit_32(1128996864);
+emit_32(1131556897);
+emit_32(1098879861);
+emit_32(1128996864);
+emit_32(1131812880);
+emit_32(1098098881);
+emit_32(1128996864);
+emit_32(1132068864);
+emit_32(1096354890);
+emit_32(1128996864);
+emit_32(1081737258);
+emit_32(1094837495);
+emit_32(1128740880);
+emit_32(1090125845);
+emit_32(1095096284);
+emit_32(1128740880);
+emit_32(1094418484);
+emit_32(1094836761);
+emit_32(1128740880);
+emit_32(1098514432);
+emit_32(1093776966);
+emit_32(1128740880);
+emit_32(1100759066);
+emit_32(1092523739);
+emit_32(1128740880);
+emit_32(1102807040);
+emit_32(1091209108);
+emit_32(1128740880);
+emit_32(1104855066);
+emit_32(1090481543);
+emit_32(1128740880);
+emit_32(1106903040);
+emit_32(1091724850);
+emit_32(1128740880);
+emit_32(1108123661);
+emit_32(1092918077);
+emit_32(1128740880);
+emit_32(1109147648);
+emit_32(1092885571);
+emit_32(1128740880);
+emit_32(1110171661);
+emit_32(1092185311);
+emit_32(1128740880);
+emit_32(1111195648);
+emit_32(1090654935);
+emit_32(1128740880);
+emit_32(1112219661);
+emit_32(1090140378);
+emit_32(1128740880);
+emit_32(1113243648);
+emit_32(1091090734);
+emit_32(1128740880);
+emit_32(1114267661);
+emit_32(1090672415);
+emit_32(1128740880);
+emit_32(1115291648);
+emit_32(1091158399);
+emit_32(1128740880);
+emit_32(1116000263);
+emit_32(1092233651);
+emit_32(1128740880);
+emit_32(1116512256);
+emit_32(1093174139);
+emit_32(1128740880);
+emit_32(1117024263);
+emit_32(1092967255);
+emit_32(1128740880);
+emit_32(1117536256);
+emit_32(1093958998);
+emit_32(1128740880);
+emit_32(1118048263);
+emit_32(1094070986);
+emit_32(1128740880);
+emit_32(1118560256);
+emit_32(1094393423);
+emit_32(1128740880);
+emit_32(1119072263);
+emit_32(1095115263);
+emit_32(1128740880);
+emit_32(1119584256);
+emit_32(1095201351);
+emit_32(1128740880);
+emit_32(1120096263);
+emit_32(1094051693);
+emit_32(1128740880);
+emit_32(1120608322);
+emit_32(1092903187);
+emit_32(1128740880);
+emit_32(1121120289);
+emit_32(1093066136);
+emit_32(1128740880);
+emit_32(1121632256);
+emit_32(1093765641);
+emit_32(1128740880);
+emit_32(1122144223);
+emit_32(1094858886);
+emit_32(1128740880);
+emit_32(1122656322);
+emit_32(1095293731);
+emit_32(1128740880);
+emit_32(1123168289);
+emit_32(1096058248);
+emit_32(1128740880);
+emit_32(1123680256);
+emit_32(1098058197);
+emit_32(1128740880);
+emit_32(1124132848);
+emit_32(1099090415);
+emit_32(1128740880);
+emit_32(1124388897);
+emit_32(1099754216);
+emit_32(1128740880);
+emit_32(1124644880);
+emit_32(1103037989);
+emit_32(1128740880);
+emit_32(1124900864);
+emit_32(1103411334);
+emit_32(1128740880);
+emit_32(1125156848);
+emit_32(1104264875);
+emit_32(1128740880);
+emit_32(1125412897);
+emit_32(1101973160);
+emit_32(1128740880);
+emit_32(1125668880);
+emit_32(1104413616);
+emit_32(1128740880);
+emit_32(1125924864);
+emit_32(1104295861);
+emit_32(1128740880);
+emit_32(1126180848);
+emit_32(1104392801);
+emit_32(1128740880);
+emit_32(1126436897);
+emit_32(1104250248);
+emit_32(1128740880);
+emit_32(1126692880);
+emit_32(1104207466);
+emit_32(1128740880);
+emit_32(1126948864);
+emit_32(1101393507);
+emit_32(1128740880);
+emit_32(1127204848);
+emit_32(1101210845);
+emit_32(1128740880);
+emit_32(1127460897);
+emit_32(1100893913);
+emit_32(1128740880);
+emit_32(1127716880);
+emit_32(1101512678);
+emit_32(1128740880);
+emit_32(1127972864);
+emit_32(1103029862);
+emit_32(1128740880);
+emit_32(1128228848);
+emit_32(1103145206);
+emit_32(1128740880);
+emit_32(1128484897);
+emit_32(1100738514);
+emit_32(1128740880);
+emit_32(1128740880);
+emit_32(1101464234);
+emit_32(1128740880);
+emit_32(1128996864);
+emit_32(1102046560);
+emit_32(1128740880);
+emit_32(1129252848);
+emit_32(1102012062);
+emit_32(1128740880);
+emit_32(1129508897);
+emit_32(1101022678);
+emit_32(1128740880);
+emit_32(1129764880);
+emit_32(1098697723);
+emit_32(1128740880);
+emit_32(1130020864);
+emit_32(1098672662);
+emit_32(1128740880);
+emit_32(1130276848);
+emit_32(1098798911);
+emit_32(1128740880);
+emit_32(1130532897);
+emit_32(1100908750);
+emit_32(1128740880);
+emit_32(1130788880);
+emit_32(1100999243);
+emit_32(1128740880);
+emit_32(1131044864);
+emit_32(1100710255);
+emit_32(1128740880);
+emit_32(1131300848);
+emit_32(1097055338);
+emit_32(1128740880);
+emit_32(1131556897);
+emit_32(1097777807);
+emit_32(1128740880);
+emit_32(1131812880);
+emit_32(1096376071);
+emit_32(1128740880);
+emit_32(1132068864);
+emit_32(1094422364);
+emit_32(1128740880);
+emit_32(1081737258);
+emit_32(1096602144);
+emit_32(1128484897);
+emit_32(1090125845);
+emit_32(1096605604);
+emit_32(1128484897);
+emit_32(1094418484);
+emit_32(1095915222);
+emit_32(1128484897);
+emit_32(1098514432);
+emit_32(1094988700);
+emit_32(1128484897);
+emit_32(1100759066);
+emit_32(1093318738);
+emit_32(1128484897);
+emit_32(1102807040);
+emit_32(1092655199);
+emit_32(1128484897);
+emit_32(1104855066);
+emit_32(1091908927);
+emit_32(1128484897);
+emit_32(1106903040);
+emit_32(1093146457);
+emit_32(1128484897);
+emit_32(1108123661);
+emit_32(1093729255);
+emit_32(1128484897);
+emit_32(1109147648);
+emit_32(1093918628);
+emit_32(1128484897);
+emit_32(1110171661);
+emit_32(1093116048);
+emit_32(1128484897);
+emit_32(1111195648);
+emit_32(1091599514);
+emit_32(1128484897);
+emit_32(1112219661);
+emit_32(1092064610);
+emit_32(1128484897);
+emit_32(1113243648);
+emit_32(1092256562);
+emit_32(1128484897);
+emit_32(1114267661);
+emit_32(1092232937);
+emit_32(1128484897);
+emit_32(1115291648);
+emit_32(1092569216);
+emit_32(1128484897);
+emit_32(1116000263);
+emit_32(1093499827);
+emit_32(1128484897);
+emit_32(1116512256);
+emit_32(1094494401);
+emit_32(1128484897);
+emit_32(1117024263);
+emit_32(1094275249);
+emit_32(1128484897);
+emit_32(1117536256);
+emit_32(1095835320);
+emit_32(1128484897);
+emit_32(1118048263);
+emit_32(1096603927);
+emit_32(1128484897);
+emit_32(1118560256);
+emit_32(1095737174);
+emit_32(1128484897);
+emit_32(1119072263);
+emit_32(1097480536);
+emit_32(1128484897);
+emit_32(1119584256);
+emit_32(1097454217);
+emit_32(1128484897);
+emit_32(1120096263);
+emit_32(1096093480);
+emit_32(1128484897);
+emit_32(1120608322);
+emit_32(1095489500);
+emit_32(1128484897);
+emit_32(1121120289);
+emit_32(1095558601);
+emit_32(1128484897);
+emit_32(1121632256);
+emit_32(1094835713);
+emit_32(1128484897);
+emit_32(1122144223);
+emit_32(1095452590);
+emit_32(1128484897);
+emit_32(1122656322);
+emit_32(1095192334);
+emit_32(1128484897);
+emit_32(1123168289);
+emit_32(1096359399);
+emit_32(1128484897);
+emit_32(1123680256);
+emit_32(1098052325);
+emit_32(1128484897);
+emit_32(1124132848);
+emit_32(1099302384);
+emit_32(1128484897);
+emit_32(1124388897);
+emit_32(1100571948);
+emit_32(1128484897);
+emit_32(1124644880);
+emit_32(1103063207);
+emit_32(1128484897);
+emit_32(1124900864);
+emit_32(1104141301);
+emit_32(1128484897);
+emit_32(1125156848);
+emit_32(1104236039);
+emit_32(1128484897);
+emit_32(1125412897);
+emit_32(1101777338);
+emit_32(1128484897);
+emit_32(1125668880);
+emit_32(1103904794);
+emit_32(1128484897);
+emit_32(1125924864);
+emit_32(1104679954);
+emit_32(1128484897);
+emit_32(1126180848);
+emit_32(1104977645);
+emit_32(1128484897);
+emit_32(1126436897);
+emit_32(1104719800);
+emit_32(1128484897);
+emit_32(1126692880);
+emit_32(1104308181);
+emit_32(1128484897);
+emit_32(1126948864);
+emit_32(1102818784);
+emit_32(1128484897);
+emit_32(1127204848);
+emit_32(1104373455);
+emit_32(1128484897);
+emit_32(1127460897);
+emit_32(1101605267);
+emit_32(1128484897);
+emit_32(1127716880);
+emit_32(1101582618);
+emit_32(1128484897);
+emit_32(1127972864);
+emit_32(1103712433);
+emit_32(1128484897);
+emit_32(1128228848);
+emit_32(1103557086);
+emit_32(1128484897);
+emit_32(1128484897);
+emit_32(1103194069);
+emit_32(1128484897);
+emit_32(1128740880);
+emit_32(1101005482);
+emit_32(1128484897);
+emit_32(1128996864);
+emit_32(1102896693);
+emit_32(1128484897);
+emit_32(1129252848);
+emit_32(1102422632);
+emit_32(1128484897);
+emit_32(1129508897);
+emit_32(1099646737);
+emit_32(1128484897);
+emit_32(1129764880);
+emit_32(1099338403);
+emit_32(1128484897);
+emit_32(1130020864);
+emit_32(1099043701);
+emit_32(1128484897);
+emit_32(1130276848);
+emit_32(1098432643);
+emit_32(1128484897);
+emit_32(1130532897);
+emit_32(1101270824);
+emit_32(1128484897);
+emit_32(1130788880);
+emit_32(1101020319);
+emit_32(1128484897);
+emit_32(1131044864);
+emit_32(1100721370);
+emit_32(1128484897);
+emit_32(1131300848);
+emit_32(1097164495);
+emit_32(1128484897);
+emit_32(1131556897);
+emit_32(1096670721);
+emit_32(1128484897);
+emit_32(1131812880);
+emit_32(1095529765);
+emit_32(1128484897);
+emit_32(1132068864);
+emit_32(1095414841);
+emit_32(1128484897);
+emit_32(1081737258);
+emit_32(1097223216);
+emit_32(1128228848);
+emit_32(1090125845);
+emit_32(1097159043);
+emit_32(1128228848);
+emit_32(1094418484);
+emit_32(1096303510);
+emit_32(1128228848);
+emit_32(1098514432);
+emit_32(1095078878);
+emit_32(1128228848);
+emit_32(1100759066);
+emit_32(1093559491);
+emit_32(1128228848);
+emit_32(1102807040);
+emit_32(1093420450);
+emit_32(1128228848);
+emit_32(1104855066);
+emit_32(1094782865);
+emit_32(1128228848);
+emit_32(1106903040);
+emit_32(1094716699);
+emit_32(1128228848);
+emit_32(1108123661);
+emit_32(1095422496);
+emit_32(1128228848);
+emit_32(1109147648);
+emit_32(1095210998);
+emit_32(1128228848);
+emit_32(1110171661);
+emit_32(1093591892);
+emit_32(1128228848);
+emit_32(1111195648);
+emit_32(1093748025);
+emit_32(1128228848);
+emit_32(1112219661);
+emit_32(1093936139);
+emit_32(1128228848);
+emit_32(1113243648);
+emit_32(1093754421);
+emit_32(1128228848);
+emit_32(1114267661);
+emit_32(1092768026);
+emit_32(1128228848);
+emit_32(1115291648);
+emit_32(1093788919);
+emit_32(1128228848);
+emit_32(1116000263);
+emit_32(1094950951);
+emit_32(1128228848);
+emit_32(1116512256);
+emit_32(1095041758);
+emit_32(1128228848);
+emit_32(1117024263);
+emit_32(1096487325);
+emit_32(1128228848);
+emit_32(1117536256);
+emit_32(1097262852);
+emit_32(1128228848);
+emit_32(1118048263);
+emit_32(1097536530);
+emit_32(1128228848);
+emit_32(1118560256);
+emit_32(1098558367);
+emit_32(1128228848);
+emit_32(1119072263);
+emit_32(1098952212);
+emit_32(1128228848);
+emit_32(1119584256);
+emit_32(1099049048);
+emit_32(1128228848);
+emit_32(1120096263);
+emit_32(1099095553);
+emit_32(1128228848);
+emit_32(1120608322);
+emit_32(1098511915);
+emit_32(1128228848);
+emit_32(1121120289);
+emit_32(1097554566);
+emit_32(1128228848);
+emit_32(1121632256);
+emit_32(1096990851);
+emit_32(1128228848);
+emit_32(1122144223);
+emit_32(1096447479);
+emit_32(1128228848);
+emit_32(1122656322);
+emit_32(1097522584);
+emit_32(1128228848);
+emit_32(1123168289);
+emit_32(1098051486);
+emit_32(1128228848);
+emit_32(1123680256);
+emit_32(1099167013);
+emit_32(1128228848);
+emit_32(1124132848);
+emit_32(1099703150);
+emit_32(1128228848);
+emit_32(1124388897);
+emit_32(1102297537);
+emit_32(1128228848);
+emit_32(1124644880);
+emit_32(1103741898);
+emit_32(1128228848);
+emit_32(1124900864);
+emit_32(1104507778);
+emit_32(1128228848);
+emit_32(1125156848);
+emit_32(1104918977);
+emit_32(1128228848);
+emit_32(1125412897);
+emit_32(1102477630);
+emit_32(1128228848);
+emit_32(1125668880);
+emit_32(1102229537);
+emit_32(1128228848);
+emit_32(1125924864);
+emit_32(1105767065);
+emit_32(1128228848);
+emit_32(1126180848);
+emit_32(1105996231);
+emit_32(1128228848);
+emit_32(1126436897);
+emit_32(1105933527);
+emit_32(1128228848);
+emit_32(1126692880);
+emit_32(1105463240);
+emit_32(1128228848);
+emit_32(1126948864);
+emit_32(1105052985);
+emit_32(1128228848);
+emit_32(1127204848);
+emit_32(1105035736);
+emit_32(1128228848);
+emit_32(1127460897);
+emit_32(1104068424);
+emit_32(1128228848);
+emit_32(1127716880);
+emit_32(1102737467);
+emit_32(1128228848);
+emit_32(1127972864);
+emit_32(1105007739);
+emit_32(1128228848);
+emit_32(1128228848);
+emit_32(1104220835);
+emit_32(1128228848);
+emit_32(1128484897);
+emit_32(1104506624);
+emit_32(1128228848);
+emit_32(1128740880);
+emit_32(1102445019);
+emit_32(1128228848);
+emit_32(1128996864);
+emit_32(1102497553);
+emit_32(1128228848);
+emit_32(1129252848);
+emit_32(1101981444);
+emit_32(1128228848);
+emit_32(1129508897);
+emit_32(1101313920);
+emit_32(1128228848);
+emit_32(1129764880);
+emit_32(1101362889);
+emit_32(1128228848);
+emit_32(1130020864);
+emit_32(1098897582);
+emit_32(1128228848);
+emit_32(1130276848);
+emit_32(1099105095);
+emit_32(1128228848);
+emit_32(1130532897);
+emit_32(1101849428);
+emit_32(1128228848);
+emit_32(1130788880);
+emit_32(1101462346);
+emit_32(1128228848);
+emit_32(1131044864);
+emit_32(1101111964);
+emit_32(1128228848);
+emit_32(1131300848);
+emit_32(1098211184);
+emit_32(1128228848);
+emit_32(1131556897);
+emit_32(1097551315);
+emit_32(1128228848);
+emit_32(1131812880);
+emit_32(1097268933);
+emit_32(1128228848);
+emit_32(1132068864);
+emit_32(1096928356);
+emit_32(1128228848);
+emit_32(1081737258);
+emit_32(1096992739);
+emit_32(1127972864);
+emit_32(1090125866);
+emit_32(1097387423);
+emit_32(1127972864);
+emit_32(1094418484);
+emit_32(1096399769);
+emit_32(1127972864);
+emit_32(1098514432);
+emit_32(1094991636);
+emit_32(1127972864);
+emit_32(1100759066);
+emit_32(1094441239);
+emit_32(1127972864);
+emit_32(1102807040);
+emit_32(1095107189);
+emit_32(1127972864);
+emit_32(1104855066);
+emit_32(1096891761);
+emit_32(1127972864);
+emit_32(1106903040);
+emit_32(1096776417);
+emit_32(1127972864);
+emit_32(1108123661);
+emit_32(1097155058);
+emit_32(1127972864);
+emit_32(1109147648);
+emit_32(1095872545);
+emit_32(1127972864);
+emit_32(1110171661);
+emit_32(1095805226);
+emit_32(1127972864);
+emit_32(1111195648);
+emit_32(1096095367);
+emit_32(1127972864);
+emit_32(1112219661);
+emit_32(1095697223);
+emit_32(1127972864);
+emit_32(1113243648);
+emit_32(1095695440);
+emit_32(1127972864);
+emit_32(1114267661);
+emit_32(1094850498);
+emit_32(1127972864);
+emit_32(1115291648);
+emit_32(1095604738);
+emit_32(1127972864);
+emit_32(1116000263);
+emit_32(1095794636);
+emit_32(1127972864);
+emit_32(1116512256);
+emit_32(1095935669);
+emit_32(1127972864);
+emit_32(1117024263);
+emit_32(1097458201);
+emit_32(1127972864);
+emit_32(1117536256);
+emit_32(1099005428);
+emit_32(1127972864);
+emit_32(1118048263);
+emit_32(1099075106);
+emit_32(1127972864);
+emit_32(1118560256);
+emit_32(1099380713);
+emit_32(1127972864);
+emit_32(1119072263);
+emit_32(1099718669);
+emit_32(1127972864);
+emit_32(1119584256);
+emit_32(1100017356);
+emit_32(1127972864);
+emit_32(1120096263);
+emit_32(1100344092);
+emit_32(1127972864);
+emit_32(1120608322);
+emit_32(1100094793);
+emit_32(1127972864);
+emit_32(1121120289);
+emit_32(1099700109);
+emit_32(1127972864);
+emit_32(1121632256);
+emit_32(1099356386);
+emit_32(1127972864);
+emit_32(1122144223);
+emit_32(1098732746);
+emit_32(1127972864);
+emit_32(1122656322);
+emit_32(1099139855);
+emit_32(1127972864);
+emit_32(1123168289);
+emit_32(1099468531);
+emit_32(1127972864);
+emit_32(1123680256);
+emit_32(1099976619);
+emit_32(1127972864);
+emit_32(1124132848);
+emit_32(1100936485);
+emit_32(1127972864);
+emit_32(1124388897);
+emit_32(1103548174);
+emit_32(1127972864);
+emit_32(1124644880);
+emit_32(1104509036);
+emit_32(1127972864);
+emit_32(1124900864);
+emit_32(1105478183);
+emit_32(1127972864);
+emit_32(1125156848);
+emit_32(1105595466);
+emit_32(1127972864);
+emit_32(1125412897);
+emit_32(1103928335);
+emit_32(1127972864);
+emit_32(1125668880);
+emit_32(1104097732);
+emit_32(1127972864);
+emit_32(1125924864);
+emit_32(1105747981);
+emit_32(1127972864);
+emit_32(1126180848);
+emit_32(1107329129);
+emit_32(1127972864);
+emit_32(1126436897);
+emit_32(1107330807);
+emit_32(1127972864);
+emit_32(1126692880);
+emit_32(1107185474);
+emit_32(1127972864);
+emit_32(1126948864);
+emit_32(1106443082);
+emit_32(1127972864);
+emit_32(1127204848);
+emit_32(1106311748);
+emit_32(1127972864);
+emit_32(1127460897);
+emit_32(1106434117);
+emit_32(1127972864);
+emit_32(1127716880);
+emit_32(1106504581);
+emit_32(1127972864);
+emit_32(1127972864);
+emit_32(1105930800);
+emit_32(1127972864);
+emit_32(1128228848);
+emit_32(1106592085);
+emit_32(1127972864);
+emit_32(1128484897);
+emit_32(1106700245);
+emit_32(1127972864);
+emit_32(1128740880);
+emit_32(1104209143);
+emit_32(1127972864);
+emit_32(1128996864);
+emit_32(1103888803);
+emit_32(1127972864);
+emit_32(1129252848);
+emit_32(1103514986);
+emit_32(1127972864);
+emit_32(1129508897);
+emit_32(1104960710);
+emit_32(1127972864);
+emit_32(1129764880);
+emit_32(1103902592);
+emit_32(1127972864);
+emit_32(1130020864);
+emit_32(1101125124);
+emit_32(1127972864);
+emit_32(1130276848);
+emit_32(1099577950);
+emit_32(1127972864);
+emit_32(1130532897);
+emit_32(1102071045);
+emit_32(1127972864);
+emit_32(1130788880);
+emit_32(1102154983);
+emit_32(1127972864);
+emit_32(1131044864);
+emit_32(1101877530);
+emit_32(1127972864);
+emit_32(1131300848);
+emit_32(1099361367);
+emit_32(1127972864);
+emit_32(1131556897);
+emit_32(1098597270);
+emit_32(1127972864);
+emit_32(1131812880);
+emit_32(1098904817);
+emit_32(1127972864);
+emit_32(1132068864);
+emit_32(1098078224);
+emit_32(1127972864);
+emit_32(1081737258);
+emit_32(1096797703);
+emit_32(1127716880);
+emit_32(1090125866);
+emit_32(1097168375);
+emit_32(1127716880);
+emit_32(1094418484);
+emit_32(1095948462);
+emit_32(1127716880);
+emit_32(1098514432);
+emit_32(1095608618);
+emit_32(1127716880);
+emit_32(1100759066);
+emit_32(1096751356);
+emit_32(1127716880);
+emit_32(1102807040);
+emit_32(1097561276);
+emit_32(1127716880);
+emit_32(1104855066);
+emit_32(1097849635);
+emit_32(1127716880);
+emit_32(1106903040);
+emit_32(1098303144);
+emit_32(1127716880);
+emit_32(1108123661);
+emit_32(1098264347);
+emit_32(1127716880);
+emit_32(1109147648);
+emit_32(1097068341);
+emit_32(1127716880);
+emit_32(1110171661);
+emit_32(1098172806);
+emit_32(1127716880);
+emit_32(1111195648);
+emit_32(1098939053);
+emit_32(1127716880);
+emit_32(1112219661);
+emit_32(1097712586);
+emit_32(1127716880);
+emit_32(1113243648);
+emit_32(1097830341);
+emit_32(1127716880);
+emit_32(1114267661);
+emit_32(1096396623);
+emit_32(1127716880);
+emit_32(1115291648);
+emit_32(1095821689);
+emit_32(1127716880);
+emit_32(1116000263);
+emit_32(1096202427);
+emit_32(1127716880);
+emit_32(1116512256);
+emit_32(1096892495);
+emit_32(1127716880);
+emit_32(1117024263);
+emit_32(1098192309);
+emit_32(1127716880);
+emit_32(1117536256);
+emit_32(1099117101);
+emit_32(1127716880);
+emit_32(1118048263);
+emit_32(1099661522);
+emit_32(1127716880);
+emit_32(1118560256);
+emit_32(1099930114);
+emit_32(1127716880);
+emit_32(1119072263);
+emit_32(1100208459);
+emit_32(1127716880);
+emit_32(1119584256);
+emit_32(1100702129);
+emit_32(1127716880);
+emit_32(1120096263);
+emit_32(1101093614);
+emit_32(1127716880);
+emit_32(1120608322);
+emit_32(1101089158);
+emit_32(1127716880);
+emit_32(1121120289);
+emit_32(1100770810);
+emit_32(1127716880);
+emit_32(1121632256);
+emit_32(1100500959);
+emit_32(1127716880);
+emit_32(1122144223);
+emit_32(1100074032);
+emit_32(1127716880);
+emit_32(1122656322);
+emit_32(1100304509);
+emit_32(1127716880);
+emit_32(1123168289);
+emit_32(1100602881);
+emit_32(1127716880);
+emit_32(1123680256);
+emit_32(1101222799);
+emit_32(1127716880);
+emit_32(1124132848);
+emit_32(1101588647);
+emit_32(1127716880);
+emit_32(1124388897);
+emit_32(1103974262);
+emit_32(1127716880);
+emit_32(1124644880);
+emit_32(1104918190);
+emit_32(1127716880);
+emit_32(1124900864);
+emit_32(1105762661);
+emit_32(1127716880);
+emit_32(1125156848);
+emit_32(1106612899);
+emit_32(1127716880);
+emit_32(1125412897);
+emit_32(1104639689);
+emit_32(1127716880);
+emit_32(1125668880);
+emit_32(1105198265);
+emit_32(1127716880);
+emit_32(1125924864);
+emit_32(1105413748);
+emit_32(1127716880);
+emit_32(1126180848);
+emit_32(1107783057);
+emit_32(1127716880);
+emit_32(1126436897);
+emit_32(1107991672);
+emit_32(1127716880);
+emit_32(1126692880);
+emit_32(1107664568);
+emit_32(1127716880);
+emit_32(1126948864);
+emit_32(1107212999);
+emit_32(1127716880);
+emit_32(1127204848);
+emit_32(1107232712);
+emit_32(1127716880);
+emit_32(1127460897);
+emit_32(1107399803);
+emit_32(1127716880);
+emit_32(1127716880);
+emit_32(1107519026);
+emit_32(1127716880);
+emit_32(1127972864);
+emit_32(1105586291);
+emit_32(1127716880);
+emit_32(1128228848);
+emit_32(1107722319);
+emit_32(1127716880);
+emit_32(1128484897);
+emit_32(1107549828);
+emit_32(1127716880);
+emit_32(1128740880);
+emit_32(1107213051);
+emit_32(1127716880);
+emit_32(1128996864);
+emit_32(1104407953);
+emit_32(1127716880);
+emit_32(1129252848);
+emit_32(1105963988);
+emit_32(1127716880);
+emit_32(1129508897);
+emit_32(1105610303);
+emit_32(1127716880);
+emit_32(1129764880);
+emit_32(1104453042);
+emit_32(1127716880);
+emit_32(1130020864);
+emit_32(1103642178);
+emit_32(1127716880);
+emit_32(1130276848);
+emit_32(1100372928);
+emit_32(1127716880);
+emit_32(1130532897);
+emit_32(1102654577);
+emit_32(1127716880);
+emit_32(1130788880);
+emit_32(1102227911);
+emit_32(1127716880);
+emit_32(1131044864);
+emit_32(1101889641);
+emit_32(1127716880);
+emit_32(1131300848);
+emit_32(1099123340);
+emit_32(1127716880);
+emit_32(1131556897);
+emit_32(1099152595);
+emit_32(1127716880);
+emit_32(1131812880);
+emit_32(1099081921);
+emit_32(1127716880);
+emit_32(1132068864);
+emit_32(1098933705);
+emit_32(1127716880);
+emit_32(1081737258);
+emit_32(1097521955);
+emit_32(1127460897);
+emit_32(1090125866);
+emit_32(1097290954);
+emit_32(1127460897);
+emit_32(1094418484);
+emit_32(1096535664);
+emit_32(1127460897);
+emit_32(1098514432);
+emit_32(1096791202);
+emit_32(1127460897);
+emit_32(1100759066);
+emit_32(1097822057);
+emit_32(1127460897);
+emit_32(1102807040);
+emit_32(1098240020);
+emit_32(1127460897);
+emit_32(1104855066);
+emit_32(1098978217);
+emit_32(1127460897);
+emit_32(1106903040);
+emit_32(1099121977);
+emit_32(1127460897);
+emit_32(1108123661);
+emit_32(1099009884);
+emit_32(1127460897);
+emit_32(1109147648);
+emit_32(1099001233);
+emit_32(1127460897);
+emit_32(1110171661);
+emit_32(1099564791);
+emit_32(1127460897);
+emit_32(1111195648);
+emit_32(1099604427);
+emit_32(1127460897);
+emit_32(1112219661);
+emit_32(1098912681);
+emit_32(1127460897);
+emit_32(1113243648);
+emit_32(1098358823);
+emit_32(1127460897);
+emit_32(1114267661);
+emit_32(1096897318);
+emit_32(1127460897);
+emit_32(1115291648);
+emit_32(1095649408);
+emit_32(1127460897);
+emit_32(1116000263);
+emit_32(1096935801);
+emit_32(1127460897);
+emit_32(1116512256);
+emit_32(1097798359);
+emit_32(1127460897);
+emit_32(1117024263);
+emit_32(1098804363);
+emit_32(1127460897);
+emit_32(1117536256);
+emit_32(1099628859);
+emit_32(1127460897);
+emit_32(1118048263);
+emit_32(1100288570);
+emit_32(1127460897);
+emit_32(1118560256);
+emit_32(1100879076);
+emit_32(1127460897);
+emit_32(1119072263);
+emit_32(1100927310);
+emit_32(1127460897);
+emit_32(1119584256);
+emit_32(1101310879);
+emit_32(1127460897);
+emit_32(1120096263);
+emit_32(1101683124);
+emit_32(1127460897);
+emit_32(1120608322);
+emit_32(1101623879);
+emit_32(1127460897);
+emit_32(1121120289);
+emit_32(1101768950);
+emit_32(1127460897);
+emit_32(1121632256);
+emit_32(1101614495);
+emit_32(1127460897);
+emit_32(1122144223);
+emit_32(1101255882);
+emit_32(1127460897);
+emit_32(1122656322);
+emit_32(1101305165);
+emit_32(1127460897);
+emit_32(1123168289);
+emit_32(1101210164);
+emit_32(1127460897);
+emit_32(1123680256);
+emit_32(1101974785);
+emit_32(1127460897);
+emit_32(1124132848);
+emit_32(1102412304);
+emit_32(1127460897);
+emit_32(1124388897);
+emit_32(1102794981);
+emit_32(1127460897);
+emit_32(1124644880);
+emit_32(1105358121);
+emit_32(1127460897);
+emit_32(1124900864);
+emit_32(1106543274);
+emit_32(1127460897);
+emit_32(1125156848);
+emit_32(1107495748);
+emit_32(1127460897);
+emit_32(1125412897);
+emit_32(1105955861);
+emit_32(1127460897);
+emit_32(1125668880);
+emit_32(1106429084);
+emit_32(1127460897);
+emit_32(1125924864);
+emit_32(1107140909);
+emit_32(1127460897);
+emit_32(1126180848);
+emit_32(1108420067);
+emit_32(1127460897);
+emit_32(1126436897);
+emit_32(1108539421);
+emit_32(1127460897);
+emit_32(1126692880);
+emit_32(1108278824);
+emit_32(1127460897);
+emit_32(1126948864);
+emit_32(1106248099);
+emit_32(1127460897);
+emit_32(1127204848);
+emit_32(1106077182);
+emit_32(1127460897);
+emit_32(1127460897);
+emit_32(1107959900);
+emit_32(1127460897);
+emit_32(1127716880);
+emit_32(1107937880);
+emit_32(1127460897);
+emit_32(1127972864);
+emit_32(1107912006);
+emit_32(1127460897);
+emit_32(1128228848);
+emit_32(1107668710);
+emit_32(1127460897);
+emit_32(1128484897);
+emit_32(1106012327);
+emit_32(1127460897);
+emit_32(1128740880);
+emit_32(1105705199);
+emit_32(1127460897);
+emit_32(1128996864);
+emit_32(1105290802);
+emit_32(1127460897);
+emit_32(1129252848);
+emit_32(1106539918);
+emit_32(1127460897);
+emit_32(1129508897);
+emit_32(1105540573);
+emit_32(1127460897);
+emit_32(1129764880);
+emit_32(1104772701);
+emit_32(1127460897);
+emit_32(1130020864);
+emit_32(1101448086);
+emit_32(1127460897);
+emit_32(1130276848);
+emit_32(1101175508);
+emit_32(1127460897);
+emit_32(1130532897);
+emit_32(1103296830);
+emit_32(1127460897);
+emit_32(1130788880);
+emit_32(1102692850);
+emit_32(1127460897);
+emit_32(1131044864);
+emit_32(1101873336);
+emit_32(1127460897);
+emit_32(1131300848);
+emit_32(1099038038);
+emit_32(1127460897);
+emit_32(1131556897);
+emit_32(1099314443);
+emit_32(1127460897);
+emit_32(1131812880);
+emit_32(1099183371);
+emit_32(1127460897);
+emit_32(1132068864);
+emit_32(1098779931);
+emit_32(1127460897);
+emit_32(1081737258);
+emit_32(1098169765);
+emit_32(1127204848);
+emit_32(1090125866);
+emit_32(1097937715);
+emit_32(1127204848);
+emit_32(1094418484);
+emit_32(1097656592);
+emit_32(1127204848);
+emit_32(1098514432);
+emit_32(1097279105);
+emit_32(1127204848);
+emit_32(1100759066);
+emit_32(1098705587);
+emit_32(1127204848);
+emit_32(1102807040);
+emit_32(1099191760);
+emit_32(1127204848);
+emit_32(1104855066);
+emit_32(1099316121);
+emit_32(1127204848);
+emit_32(1106903040);
+emit_32(1099533910);
+emit_32(1127204848);
+emit_32(1108123661);
+emit_32(1099430573);
+emit_32(1127204848);
+emit_32(1109147648);
+emit_32(1099413848);
+emit_32(1127204848);
+emit_32(1110171661);
+emit_32(1099829504);
+emit_32(1127204848);
+emit_32(1111195648);
+emit_32(1100016517);
+emit_32(1127204848);
+emit_32(1112219661);
+emit_32(1099249693);
+emit_32(1127204848);
+emit_32(1113243648);
+emit_32(1098799645);
+emit_32(1127204848);
+emit_32(1114267661);
+emit_32(1098342780);
+emit_32(1127204848);
+emit_32(1115291648);
+emit_32(1097196791);
+emit_32(1127204848);
+emit_32(1116000263);
+emit_32(1097901330);
+emit_32(1127204848);
+emit_32(1116512256);
+emit_32(1098866124);
+emit_32(1127204848);
+emit_32(1117024263);
+emit_32(1099404516);
+emit_32(1127204848);
+emit_32(1117536256);
+emit_32(1099985741);
+emit_32(1127204848);
+emit_32(1118048263);
+emit_32(1100426563);
+emit_32(1127204848);
+emit_32(1118560256);
+emit_32(1101059169);
+emit_32(1127204848);
+emit_32(1119072263);
+emit_32(1101194959);
+emit_32(1127204848);
+emit_32(1119584256);
+emit_32(1101016072);
+emit_32(1127204848);
+emit_32(1120096263);
+emit_32(1101472308);
+emit_32(1127204848);
+emit_32(1120608322);
+emit_32(1101985323);
+emit_32(1127204848);
+emit_32(1121120289);
+emit_32(1102436316);
+emit_32(1127204848);
+emit_32(1121632256);
+emit_32(1102413719);
+emit_32(1127204848);
+emit_32(1122144223);
+emit_32(1101785779);
+emit_32(1127204848);
+emit_32(1122656322);
+emit_32(1101731673);
+emit_32(1127204848);
+emit_32(1123168289);
+emit_32(1102273262);
+emit_32(1127204848);
+emit_32(1123680256);
+emit_32(1102879182);
+emit_32(1127204848);
+emit_32(1124132848);
+emit_32(1103081819);
+emit_32(1127204848);
+emit_32(1124388897);
+emit_32(1103419985);
+emit_32(1127204848);
+emit_32(1124644880);
+emit_32(1106708634);
+emit_32(1127204848);
+emit_32(1124900864);
+emit_32(1107116530);
+emit_32(1127204848);
+emit_32(1125156848);
+emit_32(1107879893);
+emit_32(1127204848);
+emit_32(1125412897);
+emit_32(1106751573);
+emit_32(1127204848);
+emit_32(1125668880);
+emit_32(1108314712);
+emit_32(1127204848);
+emit_32(1125924864);
+emit_32(1109036342);
+emit_32(1127204848);
+emit_32(1126180848);
+emit_32(1109160047);
+emit_32(1127204848);
+emit_32(1126436897);
+emit_32(1109143323);
+emit_32(1127204848);
+emit_32(1126692880);
+emit_32(1108877692);
+emit_32(1127204848);
+emit_32(1126948864);
+emit_32(1108518135);
+emit_32(1127204848);
+emit_32(1127204848);
+emit_32(1108362238);
+emit_32(1127204848);
+emit_32(1127460897);
+emit_32(1108376997);
+emit_32(1127204848);
+emit_32(1127716880);
+emit_32(1108363313);
+emit_32(1127204848);
+emit_32(1127972864);
+emit_32(1108321213);
+emit_32(1127204848);
+emit_32(1128228848);
+emit_32(1106462953);
+emit_32(1127204848);
+emit_32(1128484897);
+emit_32(1106272584);
+emit_32(1127204848);
+emit_32(1128740880);
+emit_32(1105682131);
+emit_32(1127204848);
+emit_32(1128996864);
+emit_32(1107532055);
+emit_32(1127204848);
+emit_32(1129252848);
+emit_32(1106896539);
+emit_32(1127204848);
+emit_32(1129508897);
+emit_32(1106257851);
+emit_32(1127204848);
+emit_32(1129764880);
+emit_32(1102788428);
+emit_32(1127204848);
+emit_32(1130020864);
+emit_32(1101910298);
+emit_32(1127204848);
+emit_32(1130276848);
+emit_32(1101035943);
+emit_32(1127204848);
+emit_32(1130532897);
+emit_32(1103745044);
+emit_32(1127204848);
+emit_32(1130788880);
+emit_32(1103183164);
+emit_32(1127204848);
+emit_32(1131044864);
+emit_32(1102075291);
+emit_32(1127204848);
+emit_32(1131300848);
+emit_32(1098519780);
+emit_32(1127204848);
+emit_32(1131556897);
+emit_32(1098358928);
+emit_32(1127204848);
+emit_32(1131812880);
+emit_32(1098789788);
+emit_32(1127204848);
+emit_32(1132068864);
+emit_32(1097999476);
+emit_32(1127204848);
+emit_32(1081737258);
+emit_32(1098949119);
+emit_32(1126948864);
+emit_32(1090125845);
+emit_32(1098913939);
+emit_32(1126948864);
+emit_32(1094418484);
+emit_32(1097887384);
+emit_32(1126948864);
+emit_32(1098514432);
+emit_32(1098001888);
+emit_32(1126948864);
+emit_32(1100759066);
+emit_32(1099097545);
+emit_32(1126948864);
+emit_32(1102807040);
+emit_32(1099290588);
+emit_32(1126948864);
+emit_32(1104855066);
+emit_32(1099551474);
+emit_32(1126948864);
+emit_32(1106903040);
+emit_32(1099163605);
+emit_32(1126948864);
+emit_32(1108123661);
+emit_32(1099190711);
+emit_32(1126948864);
+emit_32(1109147648);
+emit_32(1099720557);
+emit_32(1126948864);
+emit_32(1110171661);
+emit_32(1099796002);
+emit_32(1126948864);
+emit_32(1111195648);
+emit_32(1099824156);
+emit_32(1126948864);
+emit_32(1112219661);
+emit_32(1099671431);
+emit_32(1126948864);
+emit_32(1113243648);
+emit_32(1099204133);
+emit_32(1126948864);
+emit_32(1114267661);
+emit_32(1098311323);
+emit_32(1126948864);
+emit_32(1115291648);
+emit_32(1097819226);
+emit_32(1126948864);
+emit_32(1116000263);
+emit_32(1098122894);
+emit_32(1126948864);
+emit_32(1116512256);
+emit_32(1099069548);
+emit_32(1126948864);
+emit_32(1117024263);
+emit_32(1099712640);
+emit_32(1126948864);
+emit_32(1117536256);
+emit_32(1100258161);
+emit_32(1126948864);
+emit_32(1118048263);
+emit_32(1100567858);
+emit_32(1126948864);
+emit_32(1118560256);
+emit_32(1100912735);
+emit_32(1126948864);
+emit_32(1119072263);
+emit_32(1101335259);
+emit_32(1126948864);
+emit_32(1119584256);
+emit_32(1101300236);
+emit_32(1126948864);
+emit_32(1120096263);
+emit_32(1101307209);
+emit_32(1126948864);
+emit_32(1120608322);
+emit_32(1101813252);
+emit_32(1126948864);
+emit_32(1121120289);
+emit_32(1102347239);
+emit_32(1126948864);
+emit_32(1121632256);
+emit_32(1102583851);
+emit_32(1126948864);
+emit_32(1122144223);
+emit_32(1102372458);
+emit_32(1126948864);
+emit_32(1122656322);
+emit_32(1102499126);
+emit_32(1126948864);
+emit_32(1123168289);
+emit_32(1102697097);
+emit_32(1126948864);
+emit_32(1123680256);
+emit_32(1103294890);
+emit_32(1126948864);
+emit_32(1124132848);
+emit_32(1103928177);
+emit_32(1126948864);
+emit_32(1124388897);
+emit_32(1105053195);
+emit_32(1126948864);
+emit_32(1124644880);
+emit_32(1107678488);
+emit_32(1126948864);
+emit_32(1124900864);
+emit_32(1107666613);
+emit_32(1126948864);
+emit_32(1125156848);
+emit_32(1108068663);
+emit_32(1126948864);
+emit_32(1125412897);
+emit_32(1107030075);
+emit_32(1126948864);
+emit_32(1125668880);
+emit_32(1109044940);
+emit_32(1126948864);
+emit_32(1125924864);
+emit_32(1109464528);
+emit_32(1126948864);
+emit_32(1126180848);
+emit_32(1109502329);
+emit_32(1126948864);
+emit_32(1126436897);
+emit_32(1109661634);
+emit_32(1126948864);
+emit_32(1126692880);
+emit_32(1109335998);
+emit_32(1126948864);
+emit_32(1126948864);
+emit_32(1108826548);
+emit_32(1126948864);
+emit_32(1127204848);
+emit_32(1108883774);
+emit_32(1126948864);
+emit_32(1127460897);
+emit_32(1107300110);
+emit_32(1126948864);
+emit_32(1127716880);
+emit_32(1108142929);
+emit_32(1126948864);
+emit_32(1127972864);
+emit_32(1108009838);
+emit_32(1126948864);
+emit_32(1128228848);
+emit_32(1107061165);
+emit_32(1126948864);
+emit_32(1128484897);
+emit_32(1105722553);
+emit_32(1126948864);
+emit_32(1128740880);
+emit_32(1106183035);
+emit_32(1126948864);
+emit_32(1128996864);
+emit_32(1107464133);
+emit_32(1126948864);
+emit_32(1129252848);
+emit_32(1106950907);
+emit_32(1126948864);
+emit_32(1129508897);
+emit_32(1105415740);
+emit_32(1126948864);
+emit_32(1129764880);
+emit_32(1102572893);
+emit_32(1126948864);
+emit_32(1130020864);
+emit_32(1101736444);
+emit_32(1126948864);
+emit_32(1130276848);
+emit_32(1103790604);
+emit_32(1126948864);
+emit_32(1130532897);
+emit_32(1103702943);
+emit_32(1126948864);
+emit_32(1130788880);
+emit_32(1102824918);
+emit_32(1126948864);
+emit_32(1131044864);
+emit_32(1102312374);
+emit_32(1126948864);
+emit_32(1131300848);
+emit_32(1098839595);
+emit_32(1126948864);
+emit_32(1131556897);
+emit_32(1098161272);
+emit_32(1126948864);
+emit_32(1131812880);
+emit_32(1097697906);
+emit_32(1126948864);
+emit_32(1132068864);
+emit_32(1097362991);
+emit_32(1126948864);
+emit_32(1081737258);
+emit_32(1099508220);
+emit_32(1126692880);
+emit_32(1090125845);
+emit_32(1099273653);
+emit_32(1126692880);
+emit_32(1094418484);
+emit_32(1099205496);
+emit_32(1126692880);
+emit_32(1098514432);
+emit_32(1098995047);
+emit_32(1126692880);
+emit_32(1100759066);
+emit_32(1099092355);
+emit_32(1126692880);
+emit_32(1102807040);
+emit_32(1099190187);
+emit_32(1126692880);
+emit_32(1104855066);
+emit_32(1099331011);
+emit_32(1126692880);
+emit_32(1106903040);
+emit_32(1099536112);
+emit_32(1126692880);
+emit_32(1108123661);
+emit_32(1099882824);
+emit_32(1126692880);
+emit_32(1109147648);
+emit_32(1100241332);
+emit_32(1126692880);
+emit_32(1110171661);
+emit_32(1100308441);
+emit_32(1126692880);
+emit_32(1111195648);
+emit_32(1099924085);
+emit_32(1126692880);
+emit_32(1112219661);
+emit_32(1099715209);
+emit_32(1126692880);
+emit_32(1113243648);
+emit_32(1099688575);
+emit_32(1126692880);
+emit_32(1114267661);
+emit_32(1099415106);
+emit_32(1126692880);
+emit_32(1115291648);
+emit_32(1099022572);
+emit_32(1126692880);
+emit_32(1116000263);
+emit_32(1098456655);
+emit_32(1126692880);
+emit_32(1116512256);
+emit_32(1099432827);
+emit_32(1126692880);
+emit_32(1117024263);
+emit_32(1099963931);
+emit_32(1126692880);
+emit_32(1117536256);
+emit_32(1100471914);
+emit_32(1126692880);
+emit_32(1118048263);
+emit_32(1100910271);
+emit_32(1126692880);
+emit_32(1118560256);
+emit_32(1100950746);
+emit_32(1126692880);
+emit_32(1119072263);
+emit_32(1101340921);
+emit_32(1126692880);
+emit_32(1119584256);
+emit_32(1101516925);
+emit_32(1126692880);
+emit_32(1120096263);
+emit_32(1101607626);
+emit_32(1126692880);
+emit_32(1120608322);
+emit_32(1101700478);
+emit_32(1126692880);
+emit_32(1121120289);
+emit_32(1102113826);
+emit_32(1126692880);
+emit_32(1121632256);
+emit_32(1102162428);
+emit_32(1126692880);
+emit_32(1122144223);
+emit_32(1102697097);
+emit_32(1126692880);
+emit_32(1122656322);
+emit_32(1103401950);
+emit_32(1126692880);
+emit_32(1123168289);
+emit_32(1103831813);
+emit_32(1126692880);
+emit_32(1123680256);
+emit_32(1104291194);
+emit_32(1126692880);
+emit_32(1124132848);
+emit_32(1105271456);
+emit_32(1126692880);
+emit_32(1124388897);
+emit_32(1106220574);
+emit_32(1126692880);
+emit_32(1124644880);
+emit_32(1108019957);
+emit_32(1126692880);
+emit_32(1124900864);
+emit_32(1108180861);
+emit_32(1126692880);
+emit_32(1125156848);
+emit_32(1108381558);
+emit_32(1126692880);
+emit_32(1125412897);
+emit_32(1108884508);
+emit_32(1126692880);
+emit_32(1125668880);
+emit_32(1109395820);
+emit_32(1126692880);
+emit_32(1125924864);
+emit_32(1109634712);
+emit_32(1126692880);
+emit_32(1126180848);
+emit_32(1109777816);
+emit_32(1126692880);
+emit_32(1126436897);
+emit_32(1109887130);
+emit_32(1126692880);
+emit_32(1126692880);
+emit_32(1109468460);
+emit_32(1126692880);
+emit_32(1126948864);
+emit_32(1108976887);
+emit_32(1126692880);
+emit_32(1127204848);
+emit_32(1108737288);
+emit_32(1126692880);
+emit_32(1127460897);
+emit_32(1107322339);
+emit_32(1126692880);
+emit_32(1127716880);
+emit_32(1108472024);
+emit_32(1126692880);
+emit_32(1127972864);
+emit_32(1107965326);
+emit_32(1126692880);
+emit_32(1128228848);
+emit_32(1107928049);
+emit_32(1126692880);
+emit_32(1128484897);
+emit_32(1106025906);
+emit_32(1126692880);
+emit_32(1128740880);
+emit_32(1107754012);
+emit_32(1126692880);
+emit_32(1128996864);
+emit_32(1107563407);
+emit_32(1126692880);
+emit_32(1129252848);
+emit_32(1107120672);
+emit_32(1126692880);
+emit_32(1129508897);
+emit_32(1103449188);
+emit_32(1126692880);
+emit_32(1129764880);
+emit_32(1102395841);
+emit_32(1126692880);
+emit_32(1130020864);
+emit_32(1101999899);
+emit_32(1126692880);
+emit_32(1130276848);
+emit_32(1104243012);
+emit_32(1126692880);
+emit_32(1130532897);
+emit_32(1103501407);
+emit_32(1126692880);
+emit_32(1130788880);
+emit_32(1102408424);
+emit_32(1126692880);
+emit_32(1131044864);
+emit_32(1099757099);
+emit_32(1126692880);
+emit_32(1131300848);
+emit_32(1098990538);
+emit_32(1126692880);
+emit_32(1131556897);
+emit_32(1097576795);
+emit_32(1126692880);
+emit_32(1131812880);
+emit_32(1097118777);
+emit_32(1126692880);
+emit_32(1132068864);
+emit_32(1095884499);
+emit_32(1126692880);
+emit_32(1081737300);
+emit_32(1099149921);
+emit_32(1126436897);
+emit_32(1090125845);
+emit_32(1099736547);
+emit_32(1126436897);
+emit_32(1094418484);
+emit_32(1099814457);
+emit_32(1126436897);
+emit_32(1098514432);
+emit_32(1099497996);
+emit_32(1126436897);
+emit_32(1100759066);
+emit_32(1099614598);
+emit_32(1126436897);
+emit_32(1102807040);
+emit_32(1099949041);
+emit_32(1126436897);
+emit_32(1104855066);
+emit_32(1100303460);
+emit_32(1126436897);
+emit_32(1106903040);
+emit_32(1100372194);
+emit_32(1126436897);
+emit_32(1108123661);
+emit_32(1100388499);
+emit_32(1126436897);
+emit_32(1109147648);
+emit_32(1100457129);
+emit_32(1126436897);
+emit_32(1110171661);
+emit_32(1100645768);
+emit_32(1126436897);
+emit_32(1111195648);
+emit_32(1100270587);
+emit_32(1126436897);
+emit_32(1112219661);
+emit_32(1099961152);
+emit_32(1126436897);
+emit_32(1113243648);
+emit_32(1099730885);
+emit_32(1126436897);
+emit_32(1114267661);
+emit_32(1099738435);
+emit_32(1126436897);
+emit_32(1115291648);
+emit_32(1099626866);
+emit_32(1126436897);
+emit_32(1116000263);
+emit_32(1099808847);
+emit_32(1126436897);
+emit_32(1116512256);
+emit_32(1099946000);
+emit_32(1126436897);
+emit_32(1117024263);
+emit_32(1100112776);
+emit_32(1126436897);
+emit_32(1117536256);
+emit_32(1100457758);
+emit_32(1126436897);
+emit_32(1118048263);
+emit_32(1101221960);
+emit_32(1126436897);
+emit_32(1118560256);
+emit_32(1101270404);
+emit_32(1126436897);
+emit_32(1119072263);
+emit_32(1101406090);
+emit_32(1126436897);
+emit_32(1119584256);
+emit_32(1101500619);
+emit_32(1126436897);
+emit_32(1120096263);
+emit_32(1101585606);
+emit_32(1126436897);
+emit_32(1120608322);
+emit_32(1101398278);
+emit_32(1126436897);
+emit_32(1121120289);
+emit_32(1101771047);
+emit_32(1126436897);
+emit_32(1121632256);
+emit_32(1102476005);
+emit_32(1126436897);
+emit_32(1122144223);
+emit_32(1103241150);
+emit_32(1126436897);
+emit_32(1122656322);
+emit_32(1103529247);
+emit_32(1126436897);
+emit_32(1123168289);
+emit_32(1104315207);
+emit_32(1126436897);
+emit_32(1123680256);
+emit_32(1105405149);
+emit_32(1126436897);
+emit_32(1124132848);
+emit_32(1106277302);
+emit_32(1126436897);
+emit_32(1124388897);
+emit_32(1107026667);
+emit_32(1126436897);
+emit_32(1124644880);
+emit_32(1107115324);
+emit_32(1126436897);
+emit_32(1124900864);
+emit_32(1108622626);
+emit_32(1126436897);
+emit_32(1125156848);
+emit_32(1108806546);
+emit_32(1126436897);
+emit_32(1125412897);
+emit_32(1109128328);
+emit_32(1126436897);
+emit_32(1125668880);
+emit_32(1109170114);
+emit_32(1126436897);
+emit_32(1125924864);
+emit_32(1108511739);
+emit_32(1126436897);
+emit_32(1126180848);
+emit_32(1109723867);
+emit_32(1126436897);
+emit_32(1126436897);
+emit_32(1109979719);
+emit_32(1126436897);
+emit_32(1126692880);
+emit_32(1109649182);
+emit_32(1126436897);
+emit_32(1126948864);
+emit_32(1107794749);
+emit_32(1126436897);
+emit_32(1127204848);
+emit_32(1107867677);
+emit_32(1126436897);
+emit_32(1127460897);
+emit_32(1107576278);
+emit_32(1126436897);
+emit_32(1127716880);
+emit_32(1108142168);
+emit_32(1126436897);
+emit_32(1127972864);
+emit_32(1108112284);
+emit_32(1126436897);
+emit_32(1128228848);
+emit_32(1108004202);
+emit_32(1126436897);
+emit_32(1128484897);
+emit_32(1106311696);
+emit_32(1126436897);
+emit_32(1128740880);
+emit_32(1107993349);
+emit_32(1126436897);
+emit_32(1128996864);
+emit_32(1107720798);
+emit_32(1126436897);
+emit_32(1129252848);
+emit_32(1106276306);
+emit_32(1126436897);
+emit_32(1129508897);
+emit_32(1103536849);
+emit_32(1126436897);
+emit_32(1129764880);
+emit_32(1102593288);
+emit_32(1126436897);
+emit_32(1130020864);
+emit_32(1104446017);
+emit_32(1126436897);
+emit_32(1130276848);
+emit_32(1104044255);
+emit_32(1126436897);
+emit_32(1130532897);
+emit_32(1102976752);
+emit_32(1126436897);
+emit_32(1130788880);
+emit_32(1102244531);
+emit_32(1126436897);
+emit_32(1131044864);
+emit_32(1099010199);
+emit_32(1126436897);
+emit_32(1131300848);
+emit_32(1097715417);
+emit_32(1126436897);
+emit_32(1131556897);
+emit_32(1096758067);
+emit_32(1126436897);
+emit_32(1131812880);
+emit_32(1097016856);
+emit_32(1126436897);
+emit_32(1132068864);
+emit_32(1096071355);
+emit_32(1126436897);
+emit_32(1081737300);
+emit_32(1099236901);
+emit_32(1126180848);
+emit_32(1090125845);
+emit_32(1099655702);
+emit_32(1126180848);
+emit_32(1094418484);
+emit_32(1099975256);
+emit_32(1126180848);
+emit_32(1098514432);
+emit_32(1100023700);
+emit_32(1126180848);
+emit_32(1100759066);
+emit_32(1100282436);
+emit_32(1126180848);
+emit_32(1102807040);
+emit_32(1100103077);
+emit_32(1126180848);
+emit_32(1104855066);
+emit_32(1100266183);
+emit_32(1126180848);
+emit_32(1106903040);
+emit_32(1100408947);
+emit_32(1126180848);
+emit_32(1108123661);
+emit_32(1100595488);
+emit_32(1126180848);
+emit_32(1109147648);
+emit_32(1100418698);
+emit_32(1126180848);
+emit_32(1110171661);
+emit_32(1100484601);
+emit_32(1126180848);
+emit_32(1111195648);
+emit_32(1100664327);
+emit_32(1126180848);
+emit_32(1112219661);
+emit_32(1099877791);
+emit_32(1126180848);
+emit_32(1113243648);
+emit_32(1100235250);
+emit_32(1126180848);
+emit_32(1114267661);
+emit_32(1100072773);
+emit_32(1126180848);
+emit_32(1115291648);
+emit_32(1099973001);
+emit_32(1126180848);
+emit_32(1116000263);
+emit_32(1100257165);
+emit_32(1126180848);
+emit_32(1116512256);
+emit_32(1100157288);
+emit_32(1126180848);
+emit_32(1117024263);
+emit_32(1100000369);
+emit_32(1126180848);
+emit_32(1117536256);
+emit_32(1100933077);
+emit_32(1126180848);
+emit_32(1118048263);
+emit_32(1101502192);
+emit_32(1126180848);
+emit_32(1118560256);
+emit_32(1101329701);
+emit_32(1126180848);
+emit_32(1119072263);
+emit_32(1101273078);
+emit_32(1126180848);
+emit_32(1119584256);
+emit_32(1101224057);
+emit_32(1126180848);
+emit_32(1120096263);
+emit_32(1100934231);
+emit_32(1126180848);
+emit_32(1120608322);
+emit_32(1101108137);
+emit_32(1126180848);
+emit_32(1121120289);
+emit_32(1102075344);
+emit_32(1126180848);
+emit_32(1121632256);
+emit_32(1102823975);
+emit_32(1126180848);
+emit_32(1122144223);
+emit_32(1103440694);
+emit_32(1126180848);
+emit_32(1122656322);
+emit_32(1104266238);
+emit_32(1126180848);
+emit_32(1123168289);
+emit_32(1105264588);
+emit_32(1126180848);
+emit_32(1123680256);
+emit_32(1106148170);
+emit_32(1126180848);
+emit_32(1124132848);
+emit_32(1107157267);
+emit_32(1126180848);
+emit_32(1124388897);
+emit_32(1107410970);
+emit_32(1126180848);
+emit_32(1124644880);
+emit_32(1107631669);
+emit_32(1126180848);
+emit_32(1124900864);
+emit_32(1108727248);
+emit_32(1126180848);
+emit_32(1125156848);
+emit_32(1109083947);
+emit_32(1126180848);
+emit_32(1125412897);
+emit_32(1109383499);
+emit_32(1126180848);
+emit_32(1125668880);
+emit_32(1109832552);
+emit_32(1126180848);
+emit_32(1125924864);
+emit_32(1108779362);
+emit_32(1126180848);
+emit_32(1126180848);
+emit_32(1109779336);
+emit_32(1126180848);
+emit_32(1126436897);
+emit_32(1109875019);
+emit_32(1126180848);
+emit_32(1126692880);
+emit_32(1109584485);
+emit_32(1126180848);
+emit_32(1126948864);
+emit_32(1108220130);
+emit_32(1126180848);
+emit_32(1127204848);
+emit_32(1107865790);
+emit_32(1126180848);
+emit_32(1127460897);
+emit_32(1107810792);
+emit_32(1126180848);
+emit_32(1127716880);
+emit_32(1107637358);
+emit_32(1126180848);
+emit_32(1127972864);
+emit_32(1108765940);
+emit_32(1126180848);
+emit_32(1128228848);
+emit_32(1108423134);
+emit_32(1126180848);
+emit_32(1128484897);
+emit_32(1107554101);
+emit_32(1126180848);
+emit_32(1128740880);
+emit_32(1107893184);
+emit_32(1126180848);
+emit_32(1128996864);
+emit_32(1107705384);
+emit_32(1126180848);
+emit_32(1129252848);
+emit_32(1104640790);
+emit_32(1126180848);
+emit_32(1129508897);
+emit_32(1103289857);
+emit_32(1126180848);
+emit_32(1129764880);
+emit_32(1103910824);
+emit_32(1126180848);
+emit_32(1130020864);
+emit_32(1104153359);
+emit_32(1126180848);
+emit_32(1130276848);
+emit_32(1103150186);
+emit_32(1126180848);
+emit_32(1130532897);
+emit_32(1102522509);
+emit_32(1126180848);
+emit_32(1130788880);
+emit_32(1099531498);
+emit_32(1126180848);
+emit_32(1131044864);
+emit_32(1097916953);
+emit_32(1126180848);
+emit_32(1131300848);
+emit_32(1097069285);
+emit_32(1126180848);
+emit_32(1131556897);
+emit_32(1096586310);
+emit_32(1126180848);
+emit_32(1131812880);
+emit_32(1097348625);
+emit_32(1126180848);
+emit_32(1132068864);
+emit_32(1097196791);
+emit_32(1126180848);
+emit_32(1081737300);
+emit_32(1099397648);
+emit_32(1125924864);
+emit_32(1090125845);
+emit_32(1100083993);
+emit_32(1125924864);
+emit_32(1094418484);
+emit_32(1100159071);
+emit_32(1125924864);
+emit_32(1098514432);
+emit_32(1100011536);
+emit_32(1125924864);
+emit_32(1100759066);
+emit_32(1100346556);
+emit_32(1125924864);
+emit_32(1102807040);
+emit_32(1100440404);
+emit_32(1125924864);
+emit_32(1104855066);
+emit_32(1100194775);
+emit_32(1125924864);
+emit_32(1106903040);
+emit_32(1100304561);
+emit_32(1125924864);
+emit_32(1108123661);
+emit_32(1100451571);
+emit_32(1125924864);
+emit_32(1109147648);
+emit_32(1100478992);
+emit_32(1125924864);
+emit_32(1110171661);
+emit_32(1100408580);
+emit_32(1125924864);
+emit_32(1111195648);
+emit_32(1100317249);
+emit_32(1125924864);
+emit_32(1112219661);
+emit_32(1100401554);
+emit_32(1125924864);
+emit_32(1113243648);
+emit_32(1100711618);
+emit_32(1125924864);
+emit_32(1114267661);
+emit_32(1100343358);
+emit_32(1125924864);
+emit_32(1115291648);
+emit_32(1099679924);
+emit_32(1125924864);
+emit_32(1116000263);
+emit_32(1100265868);
+emit_32(1125924864);
+emit_32(1116512256);
+emit_32(1100336438);
+emit_32(1125924864);
+emit_32(1117024263);
+emit_32(1100743338);
+emit_32(1125924864);
+emit_32(1117536256);
+emit_32(1100911529);
+emit_32(1125924864);
+emit_32(1118048263);
+emit_32(1100933916);
+emit_32(1125924864);
+emit_32(1118560256);
+emit_32(1100950012);
+emit_32(1125924864);
+emit_32(1119072263);
+emit_32(1100711251);
+emit_32(1125924864);
+emit_32(1119584256);
+emit_32(1100374239);
+emit_32(1125924864);
+emit_32(1120096263);
+emit_32(1100424046);
+emit_32(1125924864);
+emit_32(1120608322);
+emit_32(1101327290);
+emit_32(1125924864);
+emit_32(1121120289);
+emit_32(1102568437);
+emit_32(1125924864);
+emit_32(1121632256);
+emit_32(1103744257);
+emit_32(1125924864);
+emit_32(1122144223);
+emit_32(1104560993);
+emit_32(1125924864);
+emit_32(1122656322);
+emit_32(1105101115);
+emit_32(1125924864);
+emit_32(1123168289);
+emit_32(1106075032);
+emit_32(1125924864);
+emit_32(1123680256);
+emit_32(1107013874);
+emit_32(1125924864);
+emit_32(1124132848);
+emit_32(1107516116);
+emit_32(1125924864);
+emit_32(1124388897);
+emit_32(1107763764);
+emit_32(1125924864);
+emit_32(1124644880);
+emit_32(1107925035);
+emit_32(1125924864);
+emit_32(1124900864);
+emit_32(1108124867);
+emit_32(1125924864);
+emit_32(1125156848);
+emit_32(1109418652);
+emit_32(1125924864);
+emit_32(1125412897);
+emit_32(1109666352);
+emit_32(1125924864);
+emit_32(1125668880);
+emit_32(1109926216);
+emit_32(1125924864);
+emit_32(1125924864);
+emit_32(1109962156);
+emit_32(1125924864);
+emit_32(1126180848);
+emit_32(1109898428);
+emit_32(1125924864);
+emit_32(1126436897);
+emit_32(1110252978);
+emit_32(1125924864);
+emit_32(1126692880);
+emit_32(1110074851);
+emit_32(1125924864);
+emit_32(1126948864);
+emit_32(1108526681);
+emit_32(1125924864);
+emit_32(1127204848);
+emit_32(1108040561);
+emit_32(1125924864);
+emit_32(1127460897);
+emit_32(1108008160);
+emit_32(1125924864);
+emit_32(1127716880);
+emit_32(1107835722);
+emit_32(1125924864);
+emit_32(1127972864);
+emit_32(1107758862);
+emit_32(1125924864);
+emit_32(1128228848);
+emit_32(1107617173);
+emit_32(1125924864);
+emit_32(1128484897);
+emit_32(1107323860);
+emit_32(1125924864);
+emit_32(1128740880);
+emit_32(1106591770);
+emit_32(1125924864);
+emit_32(1128996864);
+emit_32(1107721716);
+emit_32(1125924864);
+emit_32(1129252848);
+emit_32(1105209537);
+emit_32(1125924864);
+emit_32(1129508897);
+emit_32(1106514647);
+emit_32(1125924864);
+emit_32(1129764880);
+emit_32(1105924089);
+emit_32(1125924864);
+emit_32(1130020864);
+emit_32(1104857583);
+emit_32(1125924864);
+emit_32(1130276848);
+emit_32(1104080850);
+emit_32(1125924864);
+emit_32(1130532897);
+emit_32(1103165338);
+emit_32(1125924864);
+emit_32(1130788880);
+emit_32(1099955123);
+emit_32(1125924864);
+emit_32(1131044864);
+emit_32(1098976015);
+emit_32(1125924864);
+emit_32(1131300848);
+emit_32(1097678822);
+emit_32(1125924864);
+emit_32(1131556897);
+emit_32(1095863632);
+emit_32(1125924864);
+emit_32(1131812880);
+emit_32(1096143811);
+emit_32(1125924864);
+emit_32(1132068864);
+emit_32(1096399978);
+emit_32(1125924864);
+emit_32(1081737300);
+emit_32(1099796421);
+emit_32(1125668880);
+emit_32(1090125845);
+emit_32(1100536244);
+emit_32(1125668880);
+emit_32(1094418484);
+emit_32(1100815951);
+emit_32(1125668880);
+emit_32(1098514432);
+emit_32(1100932763);
+emit_32(1125668880);
+emit_32(1100759066);
+emit_32(1100556691);
+emit_32(1125668880);
+emit_32(1102807040);
+emit_32(1100739091);
+emit_32(1125668880);
+emit_32(1104855066);
+emit_32(1100685404);
+emit_32(1125668880);
+emit_32(1106903040);
+emit_32(1100296592);
+emit_32(1125668880);
+emit_32(1108123661);
+emit_32(1100158652);
+emit_32(1125668880);
+emit_32(1109147648);
+emit_32(1100060033);
+emit_32(1125668880);
+emit_32(1110171661);
+emit_32(1100191996);
+emit_32(1125668880);
+emit_32(1111195648);
+emit_32(1099855718);
+emit_32(1125668880);
+emit_32(1112219661);
+emit_32(1100233887);
+emit_32(1125668880);
+emit_32(1113243648);
+emit_32(1100904976);
+emit_32(1125668880);
+emit_32(1114267661);
+emit_32(1100654785);
+emit_32(1125668880);
+emit_32(1115291648);
+emit_32(1100035234);
+emit_32(1125668880);
+emit_32(1116000263);
+emit_32(1099851262);
+emit_32(1125668880);
+emit_32(1116512256);
+emit_32(1099917741);
+emit_32(1125668880);
+emit_32(1117024263);
+emit_32(1100254544);
+emit_32(1125668880);
+emit_32(1117536256);
+emit_32(1100744910);
+emit_32(1125668880);
+emit_32(1118048263);
+emit_32(1101045065);
+emit_32(1125668880);
+emit_32(1118560256);
+emit_32(1100752460);
+emit_32(1125668880);
+emit_32(1119072263);
+emit_32(1101140695);
+emit_32(1125668880);
+emit_32(1119584256);
+emit_32(1100593706);
+emit_32(1125668880);
+emit_32(1120096263);
+emit_32(1101066351);
+emit_32(1125668880);
+emit_32(1120608322);
+emit_32(1102014421);
+emit_32(1125668880);
+emit_32(1121120289);
+emit_32(1103061005);
+emit_32(1125668880);
+emit_32(1121632256);
+emit_32(1104070627);
+emit_32(1125668880);
+emit_32(1122144223);
+emit_32(1105156270);
+emit_32(1125668880);
+emit_32(1122656322);
+emit_32(1105870088);
+emit_32(1125668880);
+emit_32(1123168289);
+emit_32(1106367690);
+emit_32(1125668880);
+emit_32(1123680256);
+emit_32(1107164922);
+emit_32(1125668880);
+emit_32(1124132848);
+emit_32(1107602545);
+emit_32(1125668880);
+emit_32(1124388897);
+emit_32(1107941812);
+emit_32(1125668880);
+emit_32(1124644880);
+emit_32(1108344334);
+emit_32(1125668880);
+emit_32(1124900864);
+emit_32(1108480308);
+emit_32(1125668880);
+emit_32(1125156848);
+emit_32(1108327137);
+emit_32(1125668880);
+emit_32(1125412897);
+emit_32(1109716107);
+emit_32(1125668880);
+emit_32(1125668880);
+emit_32(1110107934);
+emit_32(1125668880);
+emit_32(1125924864);
+emit_32(1110315159);
+emit_32(1125668880);
+emit_32(1126180848);
+emit_32(1110535569);
+emit_32(1125668880);
+emit_32(1126436897);
+emit_32(1110503509);
+emit_32(1125668880);
+emit_32(1126692880);
+emit_32(1109463636);
+emit_32(1125668880);
+emit_32(1126948864);
+emit_32(1108400118);
+emit_32(1125668880);
+emit_32(1127204848);
+emit_32(1108447225);
+emit_32(1125668880);
+emit_32(1127460897);
+emit_32(1108142195);
+emit_32(1125668880);
+emit_32(1127716880);
+emit_32(1108004202);
+emit_32(1125668880);
+emit_32(1127972864);
+emit_32(1108024046);
+emit_32(1125668880);
+emit_32(1128228848);
+emit_32(1107844452);
+emit_32(1125668880);
+emit_32(1128484897);
+emit_32(1107348947);
+emit_32(1125668880);
+emit_32(1128740880);
+emit_32(1106593763);
+emit_32(1125668880);
+emit_32(1128996864);
+emit_32(1105593683);
+emit_32(1125668880);
+emit_32(1129252848);
+emit_32(1107573788);
+emit_32(1125668880);
+emit_32(1129508897);
+emit_32(1107189039);
+emit_32(1125668880);
+emit_32(1129764880);
+emit_32(1106191581);
+emit_32(1125668880);
+emit_32(1130020864);
+emit_32(1104988812);
+emit_32(1125668880);
+emit_32(1130276848);
+emit_32(1104221150);
+emit_32(1125668880);
+emit_32(1130532897);
+emit_32(1100814903);
+emit_32(1125668880);
+emit_32(1130788880);
+emit_32(1100302044);
+emit_32(1125668880);
+emit_32(1131044864);
+emit_32(1099639816);
+emit_32(1125668880);
+emit_32(1131300848);
+emit_32(1098467980);
+emit_32(1125668880);
+emit_32(1131556897);
+emit_32(1096188795);
+emit_32(1125668880);
+emit_32(1131812880);
+emit_32(1095551051);
+emit_32(1125668880);
+emit_32(1132068864);
+emit_32(1095331689);
+emit_32(1125668880);
+emit_32(1081737258);
+emit_32(1100171654);
+emit_32(1125412897);
+emit_32(1090125845);
+emit_32(1100384200);
+emit_32(1125412897);
+emit_32(1094418484);
+emit_32(1101392563);
+emit_32(1125412897);
+emit_32(1098514432);
+emit_32(1101939763);
+emit_32(1125412897);
+emit_32(1100759066);
+emit_32(1101350096);
+emit_32(1125412897);
+emit_32(1102807040);
+emit_32(1100931242);
+emit_32(1125412897);
+emit_32(1104855066);
+emit_32(1101054660);
+emit_32(1125412897);
+emit_32(1106903040);
+emit_32(1100365745);
+emit_32(1125412897);
+emit_32(1108123661);
+emit_32(1100020711);
+emit_32(1125412897);
+emit_32(1109147648);
+emit_32(1099837211);
+emit_32(1125412897);
+emit_32(1110171661);
+emit_32(1099961205);
+emit_32(1125412897);
+emit_32(1111195648);
+emit_32(1099795792);
+emit_32(1125412897);
+emit_32(1112219661);
+emit_32(1099519282);
+emit_32(1125412897);
+emit_32(1113243648);
+emit_32(1100138886);
+emit_32(1125412897);
+emit_32(1114267661);
+emit_32(1100250454);
+emit_32(1125412897);
+emit_32(1115291648);
+emit_32(1100025640);
+emit_32(1125412897);
+emit_32(1116000263);
+emit_32(1099647890);
+emit_32(1125412897);
+emit_32(1116512256);
+emit_32(1099582564);
+emit_32(1125412897);
+emit_32(1117024263);
+emit_32(1099791335);
+emit_32(1125412897);
+emit_32(1117536256);
+emit_32(1100303198);
+emit_32(1125412897);
+emit_32(1118048263);
+emit_32(1100818520);
+emit_32(1125412897);
+emit_32(1118560256);
+emit_32(1100729182);
+emit_32(1125412897);
+emit_32(1119072263);
+emit_32(1101156162);
+emit_32(1125412897);
+emit_32(1119584256);
+emit_32(1101134247);
+emit_32(1125412897);
+emit_32(1120096263);
+emit_32(1101623565);
+emit_32(1125412897);
+emit_32(1120608322);
+emit_32(1102682626);
+emit_32(1125412897);
+emit_32(1121120289);
+emit_32(1103567205);
+emit_32(1125412897);
+emit_32(1121632256);
+emit_32(1104435374);
+emit_32(1125412897);
+emit_32(1122144223);
+emit_32(1105541464);
+emit_32(1125412897);
+emit_32(1122656322);
+emit_32(1106370730);
+emit_32(1125412897);
+emit_32(1123168289);
+emit_32(1107136296);
+emit_32(1125412897);
+emit_32(1123680256);
+emit_32(1107622678);
+emit_32(1125412897);
+emit_32(1124132848);
+emit_32(1107924458);
+emit_32(1125412897);
+emit_32(1124388897);
+emit_32(1108157006);
+emit_32(1125412897);
+emit_32(1124644880);
+emit_32(1108530928);
+emit_32(1125412897);
+emit_32(1124900864);
+emit_32(1108656600);
+emit_32(1125412897);
+emit_32(1125156848);
+emit_32(1108481461);
+emit_32(1125412897);
+emit_32(1125412897);
+emit_32(1108539159);
+emit_32(1125412897);
+emit_32(1125668880);
+emit_32(1110441066);
+emit_32(1125412897);
+emit_32(1125924864);
+emit_32(1110692148);
+emit_32(1125412897);
+emit_32(1126180848);
+emit_32(1110653744);
+emit_32(1125412897);
+emit_32(1126436897);
+emit_32(1110727721);
+emit_32(1125412897);
+emit_32(1126692880);
+emit_32(1110202673);
+emit_32(1125412897);
+emit_32(1126948864);
+emit_32(1109971881);
+emit_32(1125412897);
+emit_32(1127204848);
+emit_32(1109534940);
+emit_32(1125412897);
+emit_32(1127460897);
+emit_32(1108342263);
+emit_32(1125412897);
+emit_32(1127716880);
+emit_32(1107927840);
+emit_32(1125412897);
+emit_32(1127972864);
+emit_32(1108111183);
+emit_32(1125412897);
+emit_32(1128228848);
+emit_32(1107908939);
+emit_32(1125412897);
+emit_32(1128484897);
+emit_32(1108258954);
+emit_32(1125412897);
+emit_32(1128740880);
+emit_32(1108072464);
+emit_32(1125412897);
+emit_32(1128996864);
+emit_32(1107928180);
+emit_32(1125412897);
+emit_32(1129252848);
+emit_32(1107296990);
+emit_32(1125412897);
+emit_32(1129508897);
+emit_32(1106977751);
+emit_32(1125412897);
+emit_32(1129764880);
+emit_32(1105908938);
+emit_32(1125412897);
+emit_32(1130020864);
+emit_32(1105000556);
+emit_32(1125412897);
+emit_32(1130276848);
+emit_32(1101880046);
+emit_32(1125412897);
+emit_32(1130532897);
+emit_32(1101191447);
+emit_32(1125412897);
+emit_32(1130788880);
+emit_32(1100805675);
+emit_32(1125412897);
+emit_32(1131044864);
+emit_32(1099759459);
+emit_32(1125412897);
+emit_32(1131300848);
+emit_32(1099177761);
+emit_32(1125412897);
+emit_32(1131556897);
+emit_32(1097755263);
+emit_32(1125412897);
+emit_32(1131812880);
+emit_32(1095551576);
+emit_32(1125412897);
+emit_32(1132068864);
+emit_32(1095000968);
+emit_32(1125412897);
+emit_32(1081737258);
+emit_32(1099891107);
+emit_32(1125156848);
+emit_32(1090125845);
+emit_32(1100647078);
+emit_32(1125156848);
+emit_32(1094418484);
+emit_32(1101487879);
+emit_32(1125156848);
+emit_32(1098514432);
+emit_32(1101979399);
+emit_32(1125156848);
+emit_32(1100759066);
+emit_32(1101681341);
+emit_32(1125156848);
+emit_32(1102807040);
+emit_32(1100993475);
+emit_32(1125156848);
+emit_32(1104855066);
+emit_32(1100813907);
+emit_32(1125156848);
+emit_32(1106903040);
+emit_32(1100711094);
+emit_32(1125156848);
+emit_32(1108123661);
+emit_32(1100302044);
+emit_32(1125156848);
+emit_32(1109147648);
+emit_32(1099535063);
+emit_32(1125156848);
+emit_32(1110171661);
+emit_32(1099325506);
+emit_32(1125156848);
+emit_32(1111195648);
+emit_32(1099122554);
+emit_32(1125156848);
+emit_32(1112219661);
+emit_32(1099190764);
+emit_32(1125156848);
+emit_32(1113243648);
+emit_32(1099332846);
+emit_32(1125156848);
+emit_32(1114267661);
+emit_32(1099594465);
+emit_32(1125156848);
+emit_32(1115291648);
+emit_32(1099712850);
+emit_32(1125156848);
+emit_32(1116000263);
+emit_32(1099353031);
+emit_32(1125156848);
+emit_32(1116512256);
+emit_32(1099544553);
+emit_32(1125156848);
+emit_32(1117024263);
+emit_32(1099237163);
+emit_32(1125156848);
+emit_32(1117536256);
+emit_32(1099846700);
+emit_32(1125156848);
+emit_32(1118048263);
+emit_32(1100273628);
+emit_32(1125156848);
+emit_32(1118560256);
+emit_32(1100368839);
+emit_32(1125156848);
+emit_32(1119072263);
+emit_32(1101256668);
+emit_32(1125156848);
+emit_32(1119584256);
+emit_32(1101557609);
+emit_32(1125156848);
+emit_32(1120096263);
+emit_32(1101502192);
+emit_32(1125156848);
+emit_32(1120608322);
+emit_32(1102635231);
+emit_32(1125156848);
+emit_32(1121120289);
+emit_32(1103741374);
+emit_32(1125156848);
+emit_32(1121632256);
+emit_32(1104695211);
+emit_32(1125156848);
+emit_32(1122144223);
+emit_32(1105984016);
+emit_32(1125156848);
+emit_32(1122656322);
+emit_32(1106774537);
+emit_32(1125156848);
+emit_32(1123168289);
+emit_32(1107580944);
+emit_32(1125156848);
+emit_32(1123680256);
+emit_32(1107993847);
+emit_32(1125156848);
+emit_32(1124132848);
+emit_32(1108308813);
+emit_32(1125156848);
+emit_32(1124388897);
+emit_32(1108572163);
+emit_32(1125156848);
+emit_32(1124644880);
+emit_32(1108751548);
+emit_32(1125156848);
+emit_32(1124900864);
+emit_32(1108775613);
+emit_32(1125156848);
+emit_32(1125156848);
+emit_32(1108840887);
+emit_32(1125156848);
+emit_32(1125412897);
+emit_32(1108640452);
+emit_32(1125156848);
+emit_32(1125668880);
+emit_32(1109400932);
+emit_32(1125156848);
+emit_32(1125924864);
+emit_32(1110700537);
+emit_32(1125156848);
+emit_32(1126180848);
+emit_32(1110726279);
+emit_32(1125156848);
+emit_32(1126436897);
+emit_32(1110647059);
+emit_32(1125156848);
+emit_32(1126692880);
+emit_32(1110057628);
+emit_32(1125156848);
+emit_32(1126948864);
+emit_32(1109862960);
+emit_32(1125156848);
+emit_32(1127204848);
+emit_32(1109806599);
+emit_32(1125156848);
+emit_32(1127460897);
+emit_32(1109740539);
+emit_32(1125156848);
+emit_32(1127716880);
+emit_32(1109309417);
+emit_32(1125156848);
+emit_32(1127972864);
+emit_32(1109254577);
+emit_32(1125156848);
+emit_32(1128228848);
+emit_32(1109010704);
+emit_32(1125156848);
+emit_32(1128484897);
+emit_32(1108707980);
+emit_32(1125156848);
+emit_32(1128740880);
+emit_32(1108196590);
+emit_32(1125156848);
+emit_32(1128996864);
+emit_32(1107884428);
+emit_32(1125156848);
+emit_32(1129252848);
+emit_32(1107202828);
+emit_32(1125156848);
+emit_32(1129508897);
+emit_32(1106564402);
+emit_32(1125156848);
+emit_32(1129764880);
+emit_32(1104622440);
+emit_32(1125156848);
+emit_32(1130020864);
+emit_32(1102215591);
+emit_32(1125156848);
+emit_32(1130276848);
+emit_32(1101762186);
+emit_32(1125156848);
+emit_32(1130532897);
+emit_32(1101353085);
+emit_32(1125156848);
+emit_32(1130788880);
+emit_32(1101174984);
+emit_32(1125156848);
+emit_32(1131044864);
+emit_32(1099976252);
+emit_32(1125156848);
+emit_32(1131300848);
+emit_32(1098682624);
+emit_32(1125156848);
+emit_32(1131556897);
+emit_32(1097157994);
+emit_32(1125156848);
+emit_32(1131812880);
+emit_32(1095208586);
+emit_32(1125156848);
+emit_32(1132068864);
+emit_32(1095289117);
+emit_32(1125156848);
+emit_32(1081737258);
+emit_32(1100260206);
+emit_32(1124900864);
+emit_32(1090125845);
+emit_32(1100861722);
+emit_32(1124900864);
+emit_32(1094418484);
+emit_32(1101453905);
+emit_32(1124900864);
+emit_32(1098514432);
+emit_32(1101891581);
+emit_32(1124900864);
+emit_32(1100759066);
+emit_32(1101491759);
+emit_32(1124900864);
+emit_32(1102807040);
+emit_32(1101032640);
+emit_32(1124900864);
+emit_32(1104855066);
+emit_32(1100567282);
+emit_32(1124900864);
+emit_32(1106903040);
+emit_32(1100372876);
+emit_32(1124900864);
+emit_32(1108123661);
+emit_32(1100112672);
+emit_32(1124900864);
+emit_32(1109147648);
+emit_32(1099604689);
+emit_32(1124900864);
+emit_32(1110171661);
+emit_32(1099198995);
+emit_32(1124900864);
+emit_32(1111195648);
+emit_32(1098995676);
+emit_32(1124900864);
+emit_32(1112219661);
+emit_32(1098921384);
+emit_32(1124900864);
+emit_32(1113243648);
+emit_32(1098994627);
+emit_32(1124900864);
+emit_32(1114267661);
+emit_32(1099148296);
+emit_32(1124900864);
+emit_32(1115291648);
+emit_32(1099448032);
+emit_32(1124900864);
+emit_32(1116000263);
+emit_32(1099762395);
+emit_32(1124900864);
+emit_32(1116512256);
+emit_32(1099304849);
+emit_32(1124900864);
+emit_32(1117024263);
+emit_32(1099411698);
+emit_32(1124900864);
+emit_32(1117536256);
+emit_32(1099612239);
+emit_32(1124900864);
+emit_32(1118048263);
+emit_32(1099837840);
+emit_32(1124900864);
+emit_32(1118560256);
+emit_32(1100521092);
+emit_32(1124900864);
+emit_32(1119072263);
+emit_32(1101042758);
+emit_32(1124900864);
+emit_32(1119584256);
+emit_32(1101829715);
+emit_32(1124900864);
+emit_32(1120096263);
+emit_32(1101787195);
+emit_32(1124900864);
+emit_32(1120608322);
+emit_32(1103231661);
+emit_32(1124900864);
+emit_32(1121120289);
+emit_32(1104133017);
+emit_32(1124900864);
+emit_32(1121632256);
+emit_32(1105136347);
+emit_32(1124900864);
+emit_32(1122144223);
+emit_32(1106058779);
+emit_32(1124900864);
+emit_32(1122656322);
+emit_32(1107306060);
+emit_32(1124900864);
+emit_32(1123168289);
+emit_32(1107824214);
+emit_32(1124900864);
+emit_32(1123680256);
+emit_32(1108124343);
+emit_32(1124900864);
+emit_32(1124132848);
+emit_32(1108411050);
+emit_32(1124900864);
+emit_32(1124388897);
+emit_32(1108748167);
+emit_32(1124900864);
+emit_32(1124644880);
+emit_32(1108912295);
+emit_32(1124900864);
+emit_32(1124900864);
+emit_32(1108843273);
+emit_32(1124900864);
+emit_32(1125156848);
+emit_32(1109145892);
+emit_32(1124900864);
+emit_32(1125412897);
+emit_32(1108908258);
+emit_32(1124900864);
+emit_32(1125668880);
+emit_32(1109287685);
+emit_32(1124900864);
+emit_32(1125924864);
+emit_32(1109482773);
+emit_32(1124900864);
+emit_32(1126180848);
+emit_32(1109256516);
+emit_32(1124900864);
+emit_32(1126436897);
+emit_32(1110387222);
+emit_32(1124900864);
+emit_32(1126692880);
+emit_32(1110113439);
+emit_32(1124900864);
+emit_32(1126948864);
+emit_32(1109770738);
+emit_32(1124900864);
+emit_32(1127204848);
+emit_32(1109713748);
+emit_32(1124900864);
+emit_32(1127460897);
+emit_32(1109642471);
+emit_32(1124900864);
+emit_32(1127716880);
+emit_32(1109465262);
+emit_32(1124900864);
+emit_32(1127972864);
+emit_32(1109524768);
+emit_32(1124900864);
+emit_32(1128228848);
+emit_32(1109357599);
+emit_32(1124900864);
+emit_32(1128484897);
+emit_32(1108841438);
+emit_32(1124900864);
+emit_32(1128740880);
+emit_32(1108264013);
+emit_32(1124900864);
+emit_32(1128996864);
+emit_32(1107582543);
+emit_32(1124900864);
+emit_32(1129252848);
+emit_32(1106640739);
+emit_32(1124900864);
+emit_32(1129508897);
+emit_32(1103288074);
+emit_32(1124900864);
+emit_32(1129764880);
+emit_32(1102897585);
+emit_32(1124900864);
+emit_32(1130020864);
+emit_32(1102698145);
+emit_32(1124900864);
+emit_32(1130276848);
+emit_32(1101950353);
+emit_32(1124900864);
+emit_32(1130532897);
+emit_32(1101571713);
+emit_32(1124900864);
+emit_32(1130788880);
+emit_32(1101236693);
+emit_32(1124900864);
+emit_32(1131044864);
+emit_32(1100675547);
+emit_32(1124900864);
+emit_32(1131300848);
+emit_32(1099383387);
+emit_32(1124900864);
+emit_32(1131556897);
+emit_32(1098585840);
+emit_32(1124900864);
+emit_32(1131812880);
+emit_32(1096815319);
+emit_32(1124900864);
+emit_32(1132068864);
+emit_32(1095522740);
+emit_32(1124900864);
+emit_32(1081737258);
+emit_32(1100859258);
+emit_32(1124644880);
+emit_32(1090125845);
+emit_32(1101195903);
+emit_32(1124644880);
+emit_32(1094418484);
+emit_32(1101106407);
+emit_32(1124644880);
+emit_32(1098514432);
+emit_32(1101011196);
+emit_32(1124644880);
+emit_32(1100759066);
+emit_32(1101487355);
+emit_32(1124644880);
+emit_32(1102807040);
+emit_32(1101120563);
+emit_32(1124644880);
+emit_32(1104855066);
+emit_32(1100659766);
+emit_32(1124644880);
+emit_32(1106903040);
+emit_32(1100064175);
+emit_32(1124644880);
+emit_32(1108123661);
+emit_32(1099751175);
+emit_32(1124644880);
+emit_32(1109147648);
+emit_32(1099500618);
+emit_32(1124644880);
+emit_32(1110171661);
+emit_32(1099345376);
+emit_32(1124644880);
+emit_32(1111195648);
+emit_32(1099089157);
+emit_32(1124644880);
+emit_32(1112219661);
+emit_32(1098329673);
+emit_32(1124644880);
+emit_32(1113243648);
+emit_32(1098686084);
+emit_32(1124644880);
+emit_32(1114267661);
+emit_32(1099133616);
+emit_32(1124644880);
+emit_32(1115291648);
+emit_32(1099084752);
+emit_32(1124644880);
+emit_32(1116000263);
+emit_32(1099672322);
+emit_32(1124644880);
+emit_32(1116512256);
+emit_32(1099700004);
+emit_32(1124644880);
+emit_32(1117024263);
+emit_32(1099767847);
+emit_32(1124644880);
+emit_32(1117536256);
+emit_32(1099478440);
+emit_32(1124644880);
+emit_32(1118048263);
+emit_32(1099565892);
+emit_32(1124644880);
+emit_32(1118560256);
+emit_32(1100285634);
+emit_32(1124644880);
+emit_32(1119072263);
+emit_32(1100840908);
+emit_32(1124644880);
+emit_32(1119584256);
+emit_32(1101579577);
+emit_32(1124644880);
+emit_32(1120096263);
+emit_32(1101821746);
+emit_32(1124644880);
+emit_32(1120608322);
+emit_32(1103580575);
+emit_32(1124644880);
+emit_32(1121120289);
+emit_32(1104976858);
+emit_32(1124644880);
+emit_32(1121632256);
+emit_32(1105588440);
+emit_32(1124644880);
+emit_32(1122144223);
+emit_32(1106822195);
+emit_32(1124644880);
+emit_32(1122656322);
+emit_32(1107756686);
+emit_32(1124644880);
+emit_32(1123168289);
+emit_32(1108002131);
+emit_32(1124644880);
+emit_32(1123680256);
+emit_32(1108095874);
+emit_32(1124644880);
+emit_32(1124132848);
+emit_32(1108362055);
+emit_32(1124644880);
+emit_32(1124388897);
+emit_32(1108659431);
+emit_32(1124644880);
+emit_32(1124644880);
+emit_32(1109016576);
+emit_32(1124644880);
+emit_32(1124900864);
+emit_32(1109100043);
+emit_32(1124644880);
+emit_32(1125156848);
+emit_32(1109226842);
+emit_32(1124644880);
+emit_32(1125412897);
+emit_32(1109110030);
+emit_32(1124644880);
+emit_32(1125668880);
+emit_32(1109268916);
+emit_32(1124644880);
+emit_32(1125924864);
+emit_32(1109272612);
+emit_32(1124644880);
+emit_32(1126180848);
+emit_32(1109315053);
+emit_32(1124644880);
+emit_32(1126436897);
+emit_32(1108975105);
+emit_32(1124644880);
+emit_32(1126692880);
+emit_32(1108796559);
+emit_32(1124644880);
+emit_32(1126948864);
+emit_32(1108827649);
+emit_32(1124644880);
+emit_32(1127204848);
+emit_32(1109670651);
+emit_32(1124644880);
+emit_32(1127460897);
+emit_32(1109571771);
+emit_32(1124644880);
+emit_32(1127716880);
+emit_32(1109561993);
+emit_32(1124644880);
+emit_32(1127972864);
+emit_32(1109715478);
+emit_32(1124644880);
+emit_32(1128228848);
+emit_32(1109451342);
+emit_32(1124644880);
+emit_32(1128484897);
+emit_32(1108848070);
+emit_32(1124644880);
+emit_32(1128740880);
+emit_32(1106750525);
+emit_32(1124644880);
+emit_32(1128996864);
+emit_32(1105305377);
+emit_32(1124644880);
+emit_32(1129252848);
+emit_32(1103748819);
+emit_32(1124644880);
+emit_32(1129508897);
+emit_32(1103181906);
+emit_32(1124644880);
+emit_32(1129764880);
+emit_32(1102910272);
+emit_32(1124644880);
+emit_32(1130020864);
+emit_32(1102380846);
+emit_32(1124644880);
+emit_32(1130276848);
+emit_32(1101721764);
+emit_32(1124644880);
+emit_32(1130532897);
+emit_32(1101539941);
+emit_32(1124644880);
+emit_32(1130788880);
+emit_32(1101138913);
+emit_32(1124644880);
+emit_32(1131044864);
+emit_32(1100148166);
+emit_32(1124644880);
+emit_32(1131300848);
+emit_32(1099305268);
+emit_32(1124644880);
+emit_32(1131556897);
+emit_32(1099050412);
+emit_32(1124644880);
+emit_32(1131812880);
+emit_32(1097572601);
+emit_32(1124644880);
+emit_32(1132068864);
+emit_32(1096388234);
+emit_32(1124644880);
+emit_32(1081737258);
+emit_32(1100982465);
+emit_32(1124388897);
+emit_32(1090125824);
+emit_32(1101595148);
+emit_32(1124388897);
+emit_32(1094418484);
+emit_32(1101527882);
+emit_32(1124388897);
+emit_32(1098514432);
+emit_32(1101659007);
+emit_32(1124388897);
+emit_32(1100759066);
+emit_32(1101842665);
+emit_32(1124388897);
+emit_32(1102807040);
+emit_32(1101032902);
+emit_32(1124388897);
+emit_32(1104855066);
+emit_32(1100272108);
+emit_32(1124388897);
+emit_32(1106903040);
+emit_32(1100043256);
+emit_32(1124388897);
+emit_32(1108123661);
+emit_32(1099540464);
+emit_32(1124388897);
+emit_32(1109147648);
+emit_32(1099626080);
+emit_32(1124388897);
+emit_32(1110171661);
+emit_32(1099081554);
+emit_32(1124388897);
+emit_32(1111195648);
+emit_32(1098359138);
+emit_32(1124388897);
+emit_32(1112219661);
+emit_32(1097625344);
+emit_32(1124388897);
+emit_32(1113243648);
+emit_32(1097653341);
+emit_32(1124388897);
+emit_32(1114267661);
+emit_32(1098623589);
+emit_32(1124388897);
+emit_32(1115291648);
+emit_32(1099027815);
+emit_32(1124388897);
+emit_32(1116000263);
+emit_32(1099509950);
+emit_32(1124388897);
+emit_32(1116512256);
+emit_32(1099695496);
+emit_32(1124388897);
+emit_32(1117024263);
+emit_32(1099418095);
+emit_32(1124388897);
+emit_32(1117536256);
+emit_32(1099118097);
+emit_32(1124388897);
+emit_32(1118048263);
+emit_32(1099305111);
+emit_32(1124388897);
+emit_32(1118560256);
+emit_32(1100055524);
+emit_32(1124388897);
+emit_32(1119072263);
+emit_32(1101014132);
+emit_32(1124388897);
+emit_32(1119584256);
+emit_32(1101309569);
+emit_32(1124388897);
+emit_32(1120096263);
+emit_32(1102362339);
+emit_32(1124388897);
+emit_32(1120608322);
+emit_32(1103979663);
+emit_32(1124388897);
+emit_32(1121120289);
+emit_32(1105246709);
+emit_32(1124388897);
+emit_32(1121632256);
+emit_32(1105782322);
+emit_32(1124388897);
+emit_32(1122144223);
+emit_32(1107021110);
+emit_32(1124388897);
+emit_32(1122656322);
+emit_32(1107619427);
+emit_32(1124388897);
+emit_32(1123168289);
+emit_32(1107918769);
+emit_32(1124388897);
+emit_32(1123680256);
+emit_32(1108052515);
+emit_32(1124388897);
+emit_32(1124132848);
+emit_32(1108443687);
+emit_32(1124388897);
+emit_32(1124388897);
+emit_32(1108689656);
+emit_32(1124388897);
+emit_32(1124644880);
+emit_32(1109031544);
+emit_32(1124388897);
+emit_32(1124900864);
+emit_32(1109169904);
+emit_32(1124388897);
+emit_32(1125156848);
+emit_32(1109272691);
+emit_32(1124388897);
+emit_32(1125412897);
+emit_32(1109111367);
+emit_32(1124388897);
+emit_32(1125668880);
+emit_32(1109309548);
+emit_32(1124388897);
+emit_32(1125924864);
+emit_32(1109332460);
+emit_32(1124388897);
+emit_32(1126180848);
+emit_32(1109248285);
+emit_32(1124388897);
+emit_32(1126436897);
+emit_32(1108946898);
+emit_32(1124388897);
+emit_32(1126692880);
+emit_32(1108703419);
+emit_32(1124388897);
+emit_32(1126948864);
+emit_32(1108479758);
+emit_32(1124388897);
+emit_32(1127204848);
+emit_32(1108324306);
+emit_32(1124388897);
+emit_32(1127460897);
+emit_32(1108262886);
+emit_32(1124388897);
+emit_32(1127716880);
+emit_32(1108353955);
+emit_32(1124388897);
+emit_32(1127972864);
+emit_32(1108388610);
+emit_32(1124388897);
+emit_32(1128228848);
+emit_32(1108016156);
+emit_32(1124388897);
+emit_32(1128484897);
+emit_32(1107451209);
+emit_32(1124388897);
+emit_32(1128740880);
+emit_32(1106693797);
+emit_32(1124388897);
+emit_32(1128996864);
+emit_32(1105140908);
+emit_32(1124388897);
+emit_32(1129252848);
+emit_32(1103671801);
+emit_32(1124388897);
+emit_32(1129508897);
+emit_32(1102951481);
+emit_32(1124388897);
+emit_32(1129764880);
+emit_32(1102824813);
+emit_32(1124388897);
+emit_32(1130020864);
+emit_32(1102191421);
+emit_32(1124388897);
+emit_32(1130276848);
+emit_32(1101602960);
+emit_32(1124388897);
+emit_32(1130532897);
+emit_32(1101147668);
+emit_32(1124388897);
+emit_32(1130788880);
+emit_32(1100725774);
+emit_32(1124388897);
+emit_32(1131044864);
+emit_32(1100192730);
+emit_32(1124388897);
+emit_32(1131300848);
+emit_32(1099972267);
+emit_32(1124388897);
+emit_32(1131556897);
+emit_32(1099729574);
+emit_32(1124388897);
+emit_32(1131812880);
+emit_32(1099118936);
+emit_32(1124388897);
+emit_32(1132068864);
+emit_32(1097577634);
+emit_32(1124388897);
+emit_32(1081737258);
+emit_32(1101050728);
+emit_32(1124132848);
+emit_32(1090125866);
+emit_32(1101569144);
+emit_32(1124132848);
+emit_32(1094418484);
+emit_32(1101742788);
+emit_32(1124132848);
+emit_32(1098514432);
+emit_32(1102383625);
+emit_32(1124132848);
+emit_32(1100759066);
+emit_32(1102114927);
+emit_32(1124132848);
+emit_32(1102807040);
+emit_32(1101213309);
+emit_32(1124132848);
+emit_32(1104855066);
+emit_32(1100341209);
+emit_32(1124132848);
+emit_32(1106903040);
+emit_32(1099911345);
+emit_32(1124132848);
+emit_32(1108123661);
+emit_32(1099586129);
+emit_32(1124132848);
+emit_32(1109147648);
+emit_32(1099190030);
+emit_32(1124132848);
+emit_32(1110171661);
+emit_32(1098581751);
+emit_32(1124132848);
+emit_32(1111195648);
+emit_32(1097483053);
+emit_32(1124132848);
+emit_32(1112219661);
+emit_32(1097178022);
+emit_32(1124132848);
+emit_32(1113243648);
+emit_32(1096978688);
+emit_32(1124132848);
+emit_32(1114267661);
+emit_32(1097352610);
+emit_32(1124132848);
+emit_32(1115291648);
+emit_32(1097969906);
+emit_32(1124132848);
+emit_32(1116000263);
+emit_32(1098943509);
+emit_32(1124132848);
+emit_32(1116512256);
+emit_32(1099235380);
+emit_32(1124132848);
+emit_32(1117024263);
+emit_32(1098875037);
+emit_32(1124132848);
+emit_32(1117536256);
+emit_32(1098919916);
+emit_32(1124132848);
+emit_32(1118048263);
+emit_32(1099015127);
+emit_32(1124132848);
+emit_32(1118560256);
+emit_32(1100384410);
+emit_32(1124132848);
+emit_32(1119072263);
+emit_32(1100817786);
+emit_32(1124132848);
+emit_32(1119584256);
+emit_32(1101157682);
+emit_32(1124132848);
+emit_32(1120096263);
+emit_32(1102698670);
+emit_32(1124132848);
+emit_32(1120608322);
+emit_32(1104088662);
+emit_32(1124132848);
+emit_32(1121120289);
+emit_32(1104975548);
+emit_32(1124132848);
+emit_32(1121632256);
+emit_32(1105705671);
+emit_32(1124132848);
+emit_32(1122144223);
+emit_32(1106546629);
+emit_32(1124132848);
+emit_32(1122656322);
+emit_32(1107224271);
+emit_32(1124132848);
+emit_32(1123168289);
+emit_32(1107432990);
+emit_32(1124132848);
+emit_32(1123680256);
+emit_32(1107870823);
+emit_32(1124132848);
+emit_32(1124132848);
+emit_32(1108611197);
+emit_32(1124132848);
+emit_32(1124388897);
+emit_32(1109002394);
+emit_32(1124132848);
+emit_32(1124644880);
+emit_32(1109174020);
+emit_32(1124132848);
+emit_32(1124900864);
+emit_32(1109145131);
+emit_32(1124132848);
+emit_32(1125156848);
+emit_32(1109111053);
+emit_32(1124132848);
+emit_32(1125412897);
+emit_32(1108982156);
+emit_32(1124132848);
+emit_32(1125668880);
+emit_32(1109159733);
+emit_32(1124132848);
+emit_32(1125924864);
+emit_32(1109315342);
+emit_32(1124132848);
+emit_32(1126180848);
+emit_32(1109210091);
+emit_32(1124132848);
+emit_32(1126436897);
+emit_32(1108929885);
+emit_32(1124132848);
+emit_32(1126692880);
+emit_32(1108541256);
+emit_32(1124132848);
+emit_32(1126948864);
+emit_32(1108339091);
+emit_32(1124132848);
+emit_32(1127204848);
+emit_32(1108284853);
+emit_32(1124132848);
+emit_32(1127460897);
+emit_32(1108246449);
+emit_32(1124132848);
+emit_32(1127716880);
+emit_32(1108208727);
+emit_32(1124132848);
+emit_32(1127972864);
+emit_32(1108242648);
+emit_32(1124132848);
+emit_32(1128228848);
+emit_32(1107828539);
+emit_32(1124132848);
+emit_32(1128484897);
+emit_32(1107302207);
+emit_32(1124132848);
+emit_32(1128740880);
+emit_32(1106125311);
+emit_32(1124132848);
+emit_32(1128996864);
+emit_32(1104882853);
+emit_32(1124132848);
+emit_32(1129252848);
+emit_32(1103712328);
+emit_32(1124132848);
+emit_32(1129508897);
+emit_32(1103248228);
+emit_32(1124132848);
+emit_32(1129764880);
+emit_32(1102281808);
+emit_32(1124132848);
+emit_32(1130020864);
+emit_32(1101935621);
+emit_32(1124132848);
+emit_32(1130276848);
+emit_32(1100815060);
+emit_32(1124132848);
+emit_32(1130532897);
+emit_32(1100889457);
+emit_32(1124132848);
+emit_32(1130788880);
+emit_32(1101023098);
+emit_32(1124132848);
+emit_32(1131044864);
+emit_32(1100560938);
+emit_32(1124132848);
+emit_32(1131300848);
+emit_32(1099884397);
+emit_32(1124132848);
+emit_32(1131556897);
+emit_32(1099776918);
+emit_32(1124132848);
+emit_32(1131812880);
+emit_32(1099406246);
+emit_32(1124132848);
+emit_32(1132068864);
+emit_32(1099062890);
+emit_32(1124132848);
+emit_start(Landscape03Vtx)
+emit_32(1081737216);
+emit_32(1112116167);
+emit_32(3054751226);
+emit_32(1081737216);
+emit_32(1112701298);
+emit_32(1081737216);
+emit_32(1090125824);
+emit_32(1112117215);
+emit_32(3054752017);
+emit_32(1090125824);
+emit_32(1112503694);
+emit_32(1081737216);
+emit_32(1094418484);
+emit_32(1111966902);
+emit_32(3054641802);
+emit_32(1094418484);
+emit_32(1112328084);
+emit_32(1081737216);
+emit_32(1098514432);
+emit_32(1112170824);
+emit_32(3054791336);
+emit_32(1098514432);
+emit_32(1112069951);
+emit_32(1081737216);
+emit_32(1100759066);
+emit_32(1112121016);
+emit_32(3054754788);
+emit_32(1100759066);
+emit_32(1112173655);
+emit_32(1081737216);
+emit_32(1102807040);
+emit_32(1112268577);
+emit_32(3054863024);
+emit_32(1102807040);
+emit_32(1112198559);
+emit_32(1081737216);
+emit_32(1104855066);
+emit_32(1112660640);
+emit_32(3055150524);
+emit_32(1104855066);
+emit_32(1112333694);
+emit_32(1081737216);
+emit_32(1106903040);
+emit_32(1112840733);
+emit_32(3055282597);
+emit_32(1106903040);
+emit_32(1112388744);
+emit_32(1081737216);
+emit_32(1108123661);
+emit_32(1112817271);
+emit_32(3055265401);
+emit_32(1108123661);
+emit_32(1112590726);
+emit_32(1081737216);
+emit_32(1109147648);
+emit_32(1112978804);
+emit_32(3055383885);
+emit_32(1109147648);
+emit_32(1113057735);
+emit_32(1081737216);
+emit_32(1110171661);
+emit_32(1113143692);
+emit_32(3055504787);
+emit_32(1110171661);
+emit_32(1113035296);
+emit_32(1081737216);
+emit_32(1111195648);
+emit_32(1113241551);
+emit_32(3055576563);
+emit_32(1111195648);
+emit_32(1112886896);
+emit_32(1081737216);
+emit_32(1112219661);
+emit_32(1113409140);
+emit_32(3055699444);
+emit_32(1112219661);
+emit_32(1112955971);
+emit_32(1081737216);
+emit_32(1113243648);
+emit_32(1113827049);
+emit_32(3056005944);
+emit_32(1113243648);
+emit_32(1113474440);
+emit_32(1081737216);
+emit_32(1114267661);
+emit_32(1113969787);
+emit_32(3056110618);
+emit_32(1114267661);
+emit_32(1113373252);
+emit_32(1081737216);
+emit_32(1115291648);
+emit_32(1113729217);
+emit_32(3055934168);
+emit_32(1115291648);
+emit_32(1112981923);
+emit_32(1081737216);
+emit_32(1116000263);
+emit_32(1113555888);
+emit_32(3055807065);
+emit_32(1116000263);
+emit_32(1112815462);
+emit_32(1081737216);
+emit_32(1116512256);
+emit_32(1112971595);
+emit_32(3055378563);
+emit_32(1116512256);
+emit_32(1112451711);
+emit_32(1081737216);
+emit_32(1117024263);
+emit_32(1112445996);
+emit_32(3054993118);
+emit_32(1117024263);
+emit_32(1112394144);
+emit_32(1081737216);
+emit_32(1117536256);
+emit_32(1112490508);
+emit_32(3055025752);
+emit_32(1117536256);
+emit_32(1112528414);
+emit_32(1081737216);
+emit_32(1118048263);
+emit_32(1112364810);
+emit_32(3054933569);
+emit_32(1118048263);
+emit_32(1112287950);
+emit_32(1081737216);
+emit_32(1118560256);
+emit_32(1112062978);
+emit_32(3054712259);
+emit_32(1118560256);
+emit_32(1111949653);
+emit_32(1081737216);
+emit_32(1119072263);
+emit_32(1111766755);
+emit_32(3054494995);
+emit_32(1119072263);
+emit_32(1111682685);
+emit_32(1081737216);
+emit_32(1119584256);
+emit_32(1111332435);
+emit_32(3054176489);
+emit_32(1119584256);
+emit_32(1111194678);
+emit_32(1081737216);
+emit_32(1120096263);
+emit_32(1110914210);
+emit_32(3053869769);
+emit_32(1120096263);
+emit_32(1111068639);
+emit_32(1081737216);
+emit_32(1120608322);
+emit_32(1110765653);
+emit_32(3053760829);
+emit_32(1120608322);
+emit_32(1110815303);
+emit_32(1081737216);
+emit_32(1121120289);
+emit_32(1110612404);
+emit_32(3053648459);
+emit_32(1121120289);
+emit_32(1110882674);
+emit_32(1081737216);
+emit_32(1121632256);
+emit_32(1110535543);
+emit_32(3053592076);
+emit_32(1121632256);
+emit_32(1110789010);
+emit_32(1081737216);
+emit_32(1122144223);
+emit_32(1110472052);
+emit_32(3053545501);
+emit_32(1122144223);
+emit_32(1110340062);
+emit_32(1081737216);
+emit_32(1122656322);
+emit_32(1110285668);
+emit_32(3053364308);
+emit_32(1122656322);
+emit_32(1109951539);
+emit_32(1081737216);
+emit_32(1123168289);
+emit_32(1109697652);
+emit_32(3052501939);
+emit_32(1123168289);
+emit_32(1109517848);
+emit_32(1081737216);
+emit_32(1123680256);
+emit_32(1109444526);
+emit_32(3052130656);
+emit_32(1123680256);
+emit_32(1109219108);
+emit_32(1081737216);
+emit_32(1124132848);
+emit_32(1109279611);
+emit_32(3051888763);
+emit_32(1124132848);
+emit_32(1108888571);
+emit_32(1081737216);
+emit_32(1124388897);
+emit_32(1108937068);
+emit_32(3051386330);
+emit_32(1124388897);
+emit_32(1108548203);
+emit_32(1081737216);
+emit_32(1124644880);
+emit_32(1108458524);
+emit_32(3050684490);
+emit_32(1124644880);
+emit_32(1108062057);
+emit_32(1081737216);
+emit_32(1124900864);
+emit_32(1107860049);
+emit_32(3049806640);
+emit_32(1124900864);
+emit_32(1107391755);
+emit_32(1081737216);
+emit_32(1125156848);
+emit_32(1107061952);
+emit_32(3048807931);
+emit_32(1125156848);
+emit_32(1107147201);
+emit_32(1081737216);
+emit_32(1125412897);
+emit_32(1106198187);
+emit_32(3048174525);
+emit_32(1125412897);
+emit_32(1106562515);
+emit_32(1081737216);
+emit_32(1125668880);
+emit_32(1106521306);
+emit_32(3048411491);
+emit_32(1125668880);
+emit_32(1107088323);
+emit_32(1081737216);
+emit_32(1125924864);
+emit_32(1106837714);
+emit_32(3048643444);
+emit_32(1125924864);
+emit_32(1107466728);
+emit_32(1081737216);
+emit_32(1126180848);
+emit_32(1107242569);
+emit_32(3048940401);
+emit_32(1126180848);
+emit_32(1107640477);
+emit_32(1081737216);
+emit_32(1126436897);
+emit_32(1107053196);
+emit_32(3048801510);
+emit_32(1126436897);
+emit_32(1107446858);
+emit_32(1081737216);
+emit_32(1126692880);
+emit_32(1106540495);
+emit_32(3048425477);
+emit_32(1126692880);
+emit_32(1107035003);
+emit_32(1081737216);
+emit_32(1126948864);
+emit_32(1106275362);
+emit_32(3048231084);
+emit_32(1126948864);
+emit_32(1106606398);
+emit_32(1081737216);
+emit_32(1127204848);
+emit_32(1105871923);
+emit_32(3047935271);
+emit_32(1127204848);
+emit_32(1106181305);
+emit_32(1081737216);
+emit_32(1127460897);
+emit_32(1105372958);
+emit_32(3047569266);
+emit_32(1127460897);
+emit_32(1105541831);
+emit_32(1081737216);
+emit_32(1127716880);
+emit_32(1104684096);
+emit_32(3047064106);
+emit_32(1127716880);
+emit_32(1104783501);
+emit_32(1081737216);
+emit_32(1127972864);
+emit_32(1103501774);
+emit_32(3046197075);
+emit_32(1127972864);
+emit_32(1103855197);
+emit_32(1081737216);
+emit_32(1128228848);
+emit_32(1102439829);
+emit_32(3045418269);
+emit_32(1128228848);
+emit_32(1103186310);
+emit_32(1081737216);
+emit_32(1128484897);
+emit_32(1101869718);
+emit_32(3044935642);
+emit_32(1128484897);
+emit_32(1103087482);
+emit_32(1081737216);
+emit_32(1128740880);
+emit_32(1101702785);
+emit_32(3044690829);
+emit_32(1128740880);
+emit_32(1102981471);
+emit_32(1081737216);
+emit_32(1128996864);
+emit_32(1101484419);
+emit_32(3044370528);
+emit_32(1128996864);
+emit_32(1102264716);
+emit_32(1081737216);
+emit_32(1129252848);
+emit_32(1100736102);
+emit_32(3043272969);
+emit_32(1129252848);
+emit_32(1102136581);
+emit_32(1081737216);
+emit_32(1129508897);
+emit_32(1100482452);
+emit_32(3042900948);
+emit_32(1129508897);
+emit_32(1101851735);
+emit_32(1081737216);
+emit_32(1129764880);
+emit_32(1100170134);
+emit_32(3042442865);
+emit_32(1129764880);
+emit_32(1101959109);
+emit_32(1081737216);
+emit_32(1130020864);
+emit_32(1100368052);
+emit_32(3042733136);
+emit_32(1130020864);
+emit_32(1101538001);
+emit_32(1081737216);
+emit_32(1130276848);
+emit_32(1100034710);
+emit_32(3042244249);
+emit_32(1130276848);
+emit_32(1100676386);
+emit_32(1081737216);
+emit_32(1130532897);
+emit_32(1099793118);
+emit_32(3041889854);
+emit_32(1130532897);
+emit_32(1100067740);
+emit_32(1081737216);
+emit_32(1130788880);
+emit_32(1099349570);
+emit_32(3041239348);
+emit_32(1130788880);
+emit_32(1099550582);
+emit_32(1081737216);
+emit_32(1131044864);
+emit_32(1099102264);
+emit_32(3040876615);
+emit_32(1131044864);
+emit_32(1099061684);
+emit_32(1081737216);
+emit_32(1131300848);
+emit_32(1097152227);
+emit_32(3039303785);
+emit_32(1131300848);
+emit_32(1097284243);
+emit_32(1081737216);
+emit_32(1131556897);
+emit_32(1095174088);
+emit_32(3037853098);
+emit_32(1131556897);
+emit_32(1096432799);
+emit_32(1081737216);
+emit_32(1131812880);
+emit_32(1095119772);
+emit_32(3037813287);
+emit_32(1131812880);
+emit_32(1096013998);
+emit_32(1081737216);
+emit_32(1132068864);
+emit_32(1094633233);
+emit_32(3037456465);
+emit_32(1132068864);
+emit_32(1095458043);
+emit_32(1081737216);
+emit_32(1081737216);
+emit_32(1111714929);
+emit_32(3229220864);
+emit_32(1090125824);
+emit_32(1111846420);
+emit_32(3229220864);
+emit_32(1094418484);
+emit_32(1112005149);
+emit_32(3229220864);
+emit_32(1098514432);
+emit_32(1112044365);
+emit_32(3229220864);
+emit_32(1100759066);
+emit_32(1112440753);
+emit_32(3229220864);
+emit_32(1102807040);
+emit_32(1112584120);
+emit_32(3229220864);
+emit_32(1104855066);
+emit_32(1112766651);
+emit_32(3229220864);
+emit_32(1106903040);
+emit_32(1113057657);
+emit_32(3229220864);
+emit_32(1108123661);
+emit_32(1113035846);
+emit_32(3229220864);
+emit_32(1109147648);
+emit_32(1113286037);
+emit_32(3229220864);
+emit_32(1110171661);
+emit_32(1113632643);
+emit_32(3229220864);
+emit_32(1111195648);
+emit_32(1113716556);
+emit_32(3229220864);
+emit_32(1112219661);
+emit_32(1113737894);
+emit_32(3229220864);
+emit_32(1113243648);
+emit_32(1114105892);
+emit_32(3229220864);
+emit_32(1114267661);
+emit_32(1114272563);
+emit_32(3229220864);
+emit_32(1115291648);
+emit_32(1114112603);
+emit_32(3229220864);
+emit_32(1116000263);
+emit_32(1114000379);
+emit_32(3229220864);
+emit_32(1116512256);
+emit_32(1113455303);
+emit_32(3229220864);
+emit_32(1117024263);
+emit_32(1112990522);
+emit_32(3229220864);
+emit_32(1117536256);
+emit_32(1112862360);
+emit_32(3229220864);
+emit_32(1118048263);
+emit_32(1112683289);
+emit_32(3229220864);
+emit_32(1118560256);
+emit_32(1112325279);
+emit_32(3229220864);
+emit_32(1119072263);
+emit_32(1111923989);
+emit_32(3229220864);
+emit_32(1119584256);
+emit_32(1111407434);
+emit_32(3229220864);
+emit_32(1120096263);
+emit_32(1110917251);
+emit_32(3229220864);
+emit_32(1120608322);
+emit_32(1110628080);
+emit_32(3229220864);
+emit_32(1121120289);
+emit_32(1110728560);
+emit_32(3229220864);
+emit_32(1121632256);
+emit_32(1110660245);
+emit_32(3229220864);
+emit_32(1122144223);
+emit_32(1110578220);
+emit_32(3229220864);
+emit_32(1122656322);
+emit_32(1110373800);
+emit_32(3229220864);
+emit_32(1123168289);
+emit_32(1109998646);
+emit_32(3229220864);
+emit_32(1123680256);
+emit_32(1109504138);
+emit_32(3229220864);
+emit_32(1124132848);
+emit_32(1109245821);
+emit_32(3229220864);
+emit_32(1124388897);
+emit_32(1109347533);
+emit_32(3229220864);
+emit_32(1124644880);
+emit_32(1108947213);
+emit_32(3229220864);
+emit_32(1124900864);
+emit_32(1108137607);
+emit_32(3229220864);
+emit_32(1125156848);
+emit_32(1107314396);
+emit_32(3229220864);
+emit_32(1125412897);
+emit_32(1106864505);
+emit_32(3229220864);
+emit_32(1125668880);
+emit_32(1107350389);
+emit_32(3229220864);
+emit_32(1125924864);
+emit_32(1107022263);
+emit_32(3229220864);
+emit_32(1126180848);
+emit_32(1107147673);
+emit_32(3229220864);
+emit_32(1126436897);
+emit_32(1107173940);
+emit_32(3229220864);
+emit_32(1126692880);
+emit_32(1106863299);
+emit_32(3229220864);
+emit_32(1126948864);
+emit_32(1106064966);
+emit_32(3229220864);
+emit_32(1127204848);
+emit_32(1105610408);
+emit_32(3229220864);
+emit_32(1127460897);
+emit_32(1105364464);
+emit_32(3229220864);
+emit_32(1127716880);
+emit_32(1104474905);
+emit_32(3229220864);
+emit_32(1127972864);
+emit_32(1103487985);
+emit_32(3229220864);
+emit_32(1128228848);
+emit_32(1102533729);
+emit_32(3229220864);
+emit_32(1128484897);
+emit_32(1101802294);
+emit_32(3229220864);
+emit_32(1128740880);
+emit_32(1100883847);
+emit_32(3229220864);
+emit_32(1128996864);
+emit_32(1100469607);
+emit_32(3229220864);
+emit_32(1129252848);
+emit_32(1100396573);
+emit_32(3229220864);
+emit_32(1129508897);
+emit_32(1100417440);
+emit_32(3229220864);
+emit_32(1129764880);
+emit_32(1100382103);
+emit_32(3229220864);
+emit_32(1130020864);
+emit_32(1100225498);
+emit_32(3229220864);
+emit_32(1130276848);
+emit_32(1100250192);
+emit_32(3229220864);
+emit_32(1130532897);
+emit_32(1099696859);
+emit_32(3229220864);
+emit_32(1130788880);
+emit_32(1099685587);
+emit_32(3229220864);
+emit_32(1131044864);
+emit_32(1099260389);
+emit_32(3229220864);
+emit_32(1131300848);
+emit_32(1097711642);
+emit_32(3229220864);
+emit_32(1131556897);
+emit_32(1095721340);
+emit_32(3229220864);
+emit_32(1131812880);
+emit_32(1095617636);
+emit_32(3229220864);
+emit_32(1132068864);
+emit_32(1094282799);
+emit_32(3229220864);
+emit_32(1081737216);
+emit_32(1111679959);
+emit_32(3237609472);
+emit_32(1090125824);
+emit_32(1111786285);
+emit_32(3237609472);
+emit_32(1094418484);
+emit_32(1112014979);
+emit_32(3237609472);
+emit_32(1098514432);
+emit_32(1112169408);
+emit_32(3237609472);
+emit_32(1100759066);
+emit_32(1112421145);
+emit_32(3237609472);
+emit_32(1102807040);
+emit_32(1112788461);
+emit_32(3237609472);
+emit_32(1104855066);
+emit_32(1112831951);
+emit_32(3237609472);
+emit_32(1106903040);
+emit_32(1113081302);
+emit_32(3237609472);
+emit_32(1108123661);
+emit_32(1113387250);
+emit_32(3237609472);
+emit_32(1109147648);
+emit_32(1113921710);
+emit_32(3237609472);
+emit_32(1110171661);
+emit_32(1113963574);
+emit_32(3237609472);
+emit_32(1111195648);
+emit_32(1114050658);
+emit_32(3237609472);
+emit_32(1112219661);
+emit_32(1113921264);
+emit_32(3237609472);
+emit_32(1113243648);
+emit_32(1114115854);
+emit_32(3237609472);
+emit_32(1114267661);
+emit_32(1114312278);
+emit_32(3237609472);
+emit_32(1115291648);
+emit_32(1114279117);
+emit_32(3237609472);
+emit_32(1116000263);
+emit_32(1113920609);
+emit_32(3237609472);
+emit_32(1116512256);
+emit_32(1113584645);
+emit_32(3237609472);
+emit_32(1117024263);
+emit_32(1113293246);
+emit_32(3237609472);
+emit_32(1117536256);
+emit_32(1113201469);
+emit_32(3237609472);
+emit_32(1118048263);
+emit_32(1112988661);
+emit_32(3237609472);
+emit_32(1118560256);
+emit_32(1112637047);
+emit_32(3237609472);
+emit_32(1119072263);
+emit_32(1112267476);
+emit_32(3237609472);
+emit_32(1119584256);
+emit_32(1111621186);
+emit_32(3237609472);
+emit_32(1120096263);
+emit_32(1110940949);
+emit_32(3237609472);
+emit_32(1120608322);
+emit_32(1110726751);
+emit_32(3237609472);
+emit_32(1121120289);
+emit_32(1110505737);
+emit_32(3237609472);
+emit_32(1121632256);
+emit_32(1110430476);
+emit_32(3237609472);
+emit_32(1122144223);
+emit_32(1110258876);
+emit_32(3237609472);
+emit_32(1122656322);
+emit_32(1110246425);
+emit_32(3237609472);
+emit_32(1123168289);
+emit_32(1110111368);
+emit_32(3237609472);
+emit_32(1123680256);
+emit_32(1109704075);
+emit_32(3237609472);
+emit_32(1124132848);
+emit_32(1109328449);
+emit_32(3237609472);
+emit_32(1124388897);
+emit_32(1109344020);
+emit_32(3237609472);
+emit_32(1124644880);
+emit_32(1109056501);
+emit_32(3237609472);
+emit_32(1124900864);
+emit_32(1108366983);
+emit_32(3237609472);
+emit_32(1125156848);
+emit_32(1107828618);
+emit_32(3237609472);
+emit_32(1125412897);
+emit_32(1107568047);
+emit_32(3237609472);
+emit_32(1125668880);
+emit_32(1107450056);
+emit_32(3237609472);
+emit_32(1125924864);
+emit_32(1107525842);
+emit_32(3237609472);
+emit_32(1126180848);
+emit_32(1107466650);
+emit_32(3237609472);
+emit_32(1126436897);
+emit_32(1107475195);
+emit_32(3237609472);
+emit_32(1126692880);
+emit_32(1107046852);
+emit_32(3237609472);
+emit_32(1126948864);
+emit_32(1106460593);
+emit_32(3237609472);
+emit_32(1127204848);
+emit_32(1105866051);
+emit_32(3237609472);
+emit_32(1127460897);
+emit_32(1105220967);
+emit_32(3237609472);
+emit_32(1127716880);
+emit_32(1104257535);
+emit_32(3237609472);
+emit_32(1127972864);
+emit_32(1103215618);
+emit_32(3237609472);
+emit_32(1128228848);
+emit_32(1102464785);
+emit_32(3237609472);
+emit_32(1128484897);
+emit_32(1101270562);
+emit_32(3237609472);
+emit_32(1128740880);
+emit_32(1100280706);
+emit_32(3237609472);
+emit_32(1128996864);
+emit_32(1099709599);
+emit_32(3237609472);
+emit_32(1129252848);
+emit_32(1100000579);
+emit_32(3237609472);
+emit_32(1129508897);
+emit_32(1100207987);
+emit_32(3237609472);
+emit_32(1129764880);
+emit_32(1100241227);
+emit_32(3237609472);
+emit_32(1130020864);
+emit_32(1100129029);
+emit_32(3237609472);
+emit_32(1130276848);
+emit_32(1099912079);
+emit_32(3237609472);
+emit_32(1130532897);
+emit_32(1099448608);
+emit_32(3237609472);
+emit_32(1130788880);
+emit_32(1099055392);
+emit_32(3237609472);
+emit_32(1131044864);
+emit_32(1098378012);
+emit_32(3237609472);
+emit_32(1131300848);
+emit_32(1096274779);
+emit_32(3237609472);
+emit_32(1131556897);
+emit_32(1096113088);
+emit_32(3237609472);
+emit_32(1131812880);
+emit_32(1094998137);
+emit_32(3237609472);
+emit_32(1132068864);
+emit_32(1093654387);
+emit_32(3237609472);
+emit_32(1081737216);
+emit_32(1111917802);
+emit_32(3241902132);
+emit_32(1090125824);
+emit_32(1112032752);
+emit_32(3241902132);
+emit_32(1094418484);
+emit_32(1112179868);
+emit_32(3241902132);
+emit_32(1098514432);
+emit_32(1112289968);
+emit_32(3241902132);
+emit_32(1100759066);
+emit_32(1112667167);
+emit_32(3241902132);
+emit_32(1102807040);
+emit_32(1112883777);
+emit_32(3241902132);
+emit_32(1104855066);
+emit_32(1113176434);
+emit_32(3241902132);
+emit_32(1106903040);
+emit_32(1113400908);
+emit_32(3241902132);
+emit_32(1108123661);
+emit_32(1113733176);
+emit_32(3241902132);
+emit_32(1109147648);
+emit_32(1114095642);
+emit_32(3241902132);
+emit_32(1110171661);
+emit_32(1114172346);
+emit_32(3241902132);
+emit_32(1111195648);
+emit_32(1114411342);
+emit_32(3241902132);
+emit_32(1112219661);
+emit_32(1114340694);
+emit_32(3241902132);
+emit_32(1113243648);
+emit_32(1114253374);
+emit_32(3241902132);
+emit_32(1114267661);
+emit_32(1114280192);
+emit_32(3241902132);
+emit_32(1115291648);
+emit_32(1114163721);
+emit_32(3241902132);
+emit_32(1116000263);
+emit_32(1114090190);
+emit_32(3241902132);
+emit_32(1116512256);
+emit_32(1113701666);
+emit_32(3241902132);
+emit_32(1117024263);
+emit_32(1113532950);
+emit_32(3241902132);
+emit_32(1117536256);
+emit_32(1113573556);
+emit_32(3241902132);
+emit_32(1118048263);
+emit_32(1113300219);
+emit_32(3241902132);
+emit_32(1118560256);
+emit_32(1112826289);
+emit_32(3241902132);
+emit_32(1119072263);
+emit_32(1112471713);
+emit_32(3241902132);
+emit_32(1119584256);
+emit_32(1111810323);
+emit_32(3241902132);
+emit_32(1120096263);
+emit_32(1110995816);
+emit_32(3241902132);
+emit_32(1120608322);
+emit_32(1110440752);
+emit_32(3241902132);
+emit_32(1121120289);
+emit_32(1110331281);
+emit_32(3241902132);
+emit_32(1121632256);
+emit_32(1110265928);
+emit_32(3241902132);
+emit_32(1122144223);
+emit_32(1110314897);
+emit_32(3241902132);
+emit_32(1122656322);
+emit_32(1110355136);
+emit_32(3241902132);
+emit_32(1123168289);
+emit_32(1110061272);
+emit_32(3241902132);
+emit_32(1123680256);
+emit_32(1109762481);
+emit_32(3241902132);
+emit_32(1124132848);
+emit_32(1109249543);
+emit_32(3241902132);
+emit_32(1124388897);
+emit_32(1109267133);
+emit_32(3241902132);
+emit_32(1124644880);
+emit_32(1108818474);
+emit_32(3241902132);
+emit_32(1124900864);
+emit_32(1108492996);
+emit_32(3241902132);
+emit_32(1125156848);
+emit_32(1108035555);
+emit_32(3241902132);
+emit_32(1125412897);
+emit_32(1107824896);
+emit_32(3241902132);
+emit_32(1125668880);
+emit_32(1107697625);
+emit_32(3241902132);
+emit_32(1125924864);
+emit_32(1107864374);
+emit_32(3241902132);
+emit_32(1126180848);
+emit_32(1107783896);
+emit_32(3241902132);
+emit_32(1126436897);
+emit_32(1107786911);
+emit_32(3241902132);
+emit_32(1126692880);
+emit_32(1107603043);
+emit_32(3241902132);
+emit_32(1126948864);
+emit_32(1106784603);
+emit_32(3241902132);
+emit_32(1127204848);
+emit_32(1106394376);
+emit_32(3241902132);
+emit_32(1127460897);
+emit_32(1105369026);
+emit_32(3241902132);
+emit_32(1127716880);
+emit_32(1104382892);
+emit_32(3241902132);
+emit_32(1127972864);
+emit_32(1103613552);
+emit_32(3241902132);
+emit_32(1128228848);
+emit_32(1102201959);
+emit_32(3241902132);
+emit_32(1128484897);
+emit_32(1100683674);
+emit_32(3241902132);
+emit_32(1128740880);
+emit_32(1100170081);
+emit_32(3241902132);
+emit_32(1128996864);
+emit_32(1099248330);
+emit_32(3241902132);
+emit_32(1129252848);
+emit_32(1098972398);
+emit_32(3241902132);
+emit_32(1129508897);
+emit_32(1099403729);
+emit_32(3241902132);
+emit_32(1129764880);
+emit_32(1099570243);
+emit_32(3241902132);
+emit_32(1130020864);
+emit_32(1099452174);
+emit_32(3241902132);
+emit_32(1130276848);
+emit_32(1099309567);
+emit_32(3241902132);
+emit_32(1130532897);
+emit_32(1098235616);
+emit_32(3241902132);
+emit_32(1130788880);
+emit_32(1097234960);
+emit_32(3241902132);
+emit_32(1131044864);
+emit_32(1096084777);
+emit_32(3241902132);
+emit_32(1131300848);
+emit_32(1095855768);
+emit_32(3241902132);
+emit_32(1131556897);
+emit_32(1095600649);
+emit_32(3241902132);
+emit_32(1131812880);
+emit_32(1095372584);
+emit_32(3241902132);
+emit_32(1132068864);
+emit_32(1094155711);
+emit_32(3241902132);
+emit_32(1081737216);
+emit_32(1112196121);
+emit_32(3245998080);
+emit_32(1090125824);
+emit_32(1112339435);
+emit_32(3245998080);
+emit_32(1094418484);
+emit_32(1112635054);
+emit_32(3245998080);
+emit_32(1098514432);
+emit_32(1112640664);
+emit_32(3245998080);
+emit_32(1100759066);
+emit_32(1112829670);
+emit_32(3245998080);
+emit_32(1102807040);
+emit_32(1113234342);
+emit_32(3245998080);
+emit_32(1104855066);
+emit_32(1113597123);
+emit_32(3245998080);
+emit_32(1106903040);
+emit_32(1113703003);
+emit_32(3245998080);
+emit_32(1108123661);
+emit_32(1113932589);
+emit_32(3245998080);
+emit_32(1109147648);
+emit_32(1114173735);
+emit_32(3245998080);
+emit_32(1110171661);
+emit_32(1114493341);
+emit_32(3245998080);
+emit_32(1111195648);
+emit_32(1114614687);
+emit_32(3245998080);
+emit_32(1112219661);
+emit_32(1114656971);
+emit_32(3245998080);
+emit_32(1113243648);
+emit_32(1114375193);
+emit_32(3245998080);
+emit_32(1114267661);
+emit_32(1114462251);
+emit_32(3245998080);
+emit_32(1115291648);
+emit_32(1114444425);
+emit_32(3245998080);
+emit_32(1116000263);
+emit_32(1114258040);
+emit_32(3245998080);
+emit_32(1116512256);
+emit_32(1113897068);
+emit_32(3245998080);
+emit_32(1117024263);
+emit_32(1113641399);
+emit_32(3245998080);
+emit_32(1117536256);
+emit_32(1113834835);
+emit_32(3245998080);
+emit_32(1118048263);
+emit_32(1113430688);
+emit_32(3245998080);
+emit_32(1118560256);
+emit_32(1112813260);
+emit_32(3245998080);
+emit_32(1119072263);
+emit_32(1112444187);
+emit_32(3245998080);
+emit_32(1119584256);
+emit_32(1111786704);
+emit_32(3245998080);
+emit_32(1120096263);
+emit_32(1111130558);
+emit_32(3245998080);
+emit_32(1120608322);
+emit_32(1110632169);
+emit_32(3245998080);
+emit_32(1121120289);
+emit_32(1110279953);
+emit_32(3245998080);
+emit_32(1121632256);
+emit_32(1110145840);
+emit_32(3245998080);
+emit_32(1122144223);
+emit_32(1110117869);
+emit_32(3245998080);
+emit_32(1122656322);
+emit_32(1109967425);
+emit_32(3245998080);
+emit_32(1123168289);
+emit_32(1109898533);
+emit_32(3245998080);
+emit_32(1123680256);
+emit_32(1109796192);
+emit_32(3245998080);
+emit_32(1124132848);
+emit_32(1109273031);
+emit_32(3245998080);
+emit_32(1124388897);
+emit_32(1109109716);
+emit_32(3245998080);
+emit_32(1124644880);
+emit_32(1108907052);
+emit_32(3245998080);
+emit_32(1124900864);
+emit_32(1108479705);
+emit_32(3245998080);
+emit_32(1125156848);
+emit_32(1108048504);
+emit_32(3245998080);
+emit_32(1125412897);
+emit_32(1108035581);
+emit_32(3245998080);
+emit_32(1125668880);
+emit_32(1107927761);
+emit_32(3245998080);
+emit_32(1125924864);
+emit_32(1108119231);
+emit_32(3245998080);
+emit_32(1126180848);
+emit_32(1108244955);
+emit_32(3245998080);
+emit_32(1126436897);
+emit_32(1108024597);
+emit_32(3245998080);
+emit_32(1126692880);
+emit_32(1107730052);
+emit_32(3245998080);
+emit_32(1126948864);
+emit_32(1107344019);
+emit_32(3245998080);
+emit_32(1127204848);
+emit_32(1106859314);
+emit_32(3245998080);
+emit_32(1127460897);
+emit_32(1105701057);
+emit_32(3245998080);
+emit_32(1127716880);
+emit_32(1104883954);
+emit_32(3245998080);
+emit_32(1127972864);
+emit_32(1103479492);
+emit_32(3245998080);
+emit_32(1128228848);
+emit_32(1101941126);
+emit_32(3245998080);
+emit_32(1128484897);
+emit_32(1100612003);
+emit_32(3245998080);
+emit_32(1128740880);
+emit_32(1099967182);
+emit_32(3245998080);
+emit_32(1128996864);
+emit_32(1099350200);
+emit_32(3245998080);
+emit_32(1129252848);
+emit_32(1098786642);
+emit_32(3245998080);
+emit_32(1129508897);
+emit_32(1098582799);
+emit_32(3245998080);
+emit_32(1129764880);
+emit_32(1098188639);
+emit_32(3245998080);
+emit_32(1130020864);
+emit_32(1098264032);
+emit_32(3245998080);
+emit_32(1130276848);
+emit_32(1097098120);
+emit_32(3245998080);
+emit_32(1130532897);
+emit_32(1096369150);
+emit_32(3245998080);
+emit_32(1130788880);
+emit_32(1096281280);
+emit_32(3245998080);
+emit_32(1131044864);
+emit_32(1096127244);
+emit_32(3245998080);
+emit_32(1131300848);
+emit_32(1096047342);
+emit_32(3245998080);
+emit_32(1131556897);
+emit_32(1096229061);
+emit_32(3245998080);
+emit_32(1131812880);
+emit_32(1095837942);
+emit_32(3245998080);
+emit_32(1132068864);
+emit_32(1094247567);
+emit_32(3245998080);
+emit_32(1081737216);
+emit_32(1112566084);
+emit_32(3248242714);
+emit_32(1090125824);
+emit_32(1112769036);
+emit_32(3248242714);
+emit_32(1094418484);
+emit_32(1113204903);
+emit_32(3248242714);
+emit_32(1098514432);
+emit_32(1113297807);
+emit_32(3248242714);
+emit_32(1100759066);
+emit_32(1113299590);
+emit_32(3248242714);
+emit_32(1102807040);
+emit_32(1113631778);
+emit_32(3248242714);
+emit_32(1104855066);
+emit_32(1113733962);
+emit_32(3248242714);
+emit_32(1106903040);
+emit_32(1114058575);
+emit_32(3248242714);
+emit_32(1108123661);
+emit_32(1114302841);
+emit_32(3248242714);
+emit_32(1109147648);
+emit_32(1114499816);
+emit_32(3248242714);
+emit_32(1110171661);
+emit_32(1114705389);
+emit_32(3248242714);
+emit_32(1111195648);
+emit_32(1114954505);
+emit_32(3248242714);
+emit_32(1112219661);
+emit_32(1114757818);
+emit_32(3248242714);
+emit_32(1113243648);
+emit_32(1114552664);
+emit_32(3248242714);
+emit_32(1114267661);
+emit_32(1114690499);
+emit_32(3248242714);
+emit_32(1115291648);
+emit_32(1114401800);
+emit_32(3248242714);
+emit_32(1116000263);
+emit_32(1114010445);
+emit_32(3248242714);
+emit_32(1116512256);
+emit_32(1113755904);
+emit_32(3248242714);
+emit_32(1117024263);
+emit_32(1113715219);
+emit_32(3248242714);
+emit_32(1117536256);
+emit_32(1113634478);
+emit_32(3248242714);
+emit_32(1118048263);
+emit_32(1113284962);
+emit_32(3248242714);
+emit_32(1118560256);
+emit_32(1112908602);
+emit_32(3248242714);
+emit_32(1119072263);
+emit_32(1112464713);
+emit_32(3248242714);
+emit_32(1119584256);
+emit_32(1111750948);
+emit_32(3248242714);
+emit_32(1120096263);
+emit_32(1111362529);
+emit_32(3248242714);
+emit_32(1120608322);
+emit_32(1110906005);
+emit_32(3248242714);
+emit_32(1121120289);
+emit_32(1110451867);
+emit_32(3248242714);
+emit_32(1121632256);
+emit_32(1110203905);
+emit_32(3248242714);
+emit_32(1122144223);
+emit_32(1110022344);
+emit_32(3248242714);
+emit_32(1122656322);
+emit_32(1109942023);
+emit_32(3248242714);
+emit_32(1123168289);
+emit_32(1109931930);
+emit_32(3248242714);
+emit_32(1123680256);
+emit_32(1109863432);
+emit_32(3248242714);
+emit_32(1124132848);
+emit_32(1109215989);
+emit_32(3248242714);
+emit_32(1124388897);
+emit_32(1109161384);
+emit_32(3248242714);
+emit_32(1124644880);
+emit_32(1108931536);
+emit_32(3248242714);
+emit_32(1124900864);
+emit_32(1108371544);
+emit_32(3248242714);
+emit_32(1125156848);
+emit_32(1108462875);
+emit_32(3248242714);
+emit_32(1125412897);
+emit_32(1108261182);
+emit_32(3248242714);
+emit_32(1125668880);
+emit_32(1108292980);
+emit_32(3248242714);
+emit_32(1125924864);
+emit_32(1108474724);
+emit_32(3248242714);
+emit_32(1126180848);
+emit_32(1108428377);
+emit_32(3248242714);
+emit_32(1126436897);
+emit_32(1108089713);
+emit_32(3248242714);
+emit_32(1126692880);
+emit_32(1107824057);
+emit_32(3248242714);
+emit_32(1126948864);
+emit_32(1107727614);
+emit_32(3248242714);
+emit_32(1127204848);
+emit_32(1107082976);
+emit_32(3248242714);
+emit_32(1127460897);
+emit_32(1106264772);
+emit_32(3248242714);
+emit_32(1127716880);
+emit_32(1105380141);
+emit_32(3248242714);
+emit_32(1127972864);
+emit_32(1103821223);
+emit_32(3248242714);
+emit_32(1128228848);
+emit_32(1102097049);
+emit_32(3248242714);
+emit_32(1128484897);
+emit_32(1100348129);
+emit_32(3248242714);
+emit_32(1128740880);
+emit_32(1099721186);
+emit_32(3248242714);
+emit_32(1128996864);
+emit_32(1098987759);
+emit_32(3248242714);
+emit_32(1129252848);
+emit_32(1098503317);
+emit_32(3248242714);
+emit_32(1129508897);
+emit_32(1097783679);
+emit_32(3248242714);
+emit_32(1129764880);
+emit_32(1097409338);
+emit_32(3248242714);
+emit_32(1130020864);
+emit_32(1096647547);
+emit_32(3248242714);
+emit_32(1130276848);
+emit_32(1096484599);
+emit_32(3248242714);
+emit_32(1130532897);
+emit_32(1095929168);
+emit_32(3248242714);
+emit_32(1130788880);
+emit_32(1096063071);
+emit_32(3248242714);
+emit_32(1131044864);
+emit_32(1096407109);
+emit_32(3248242714);
+emit_32(1131300848);
+emit_32(1095628227);
+emit_32(3248242714);
+emit_32(1131556897);
+emit_32(1095460769);
+emit_32(3248242714);
+emit_32(1131812880);
+emit_32(1095830916);
+emit_32(3248242714);
+emit_32(1132068864);
+emit_32(1094232467);
+emit_32(3248242714);
+emit_32(1081737216);
+emit_32(1113150456);
+emit_32(3250290688);
+emit_32(1090125824);
+emit_32(1113492292);
+emit_32(3250290688);
+emit_32(1094418484);
+emit_32(1113689922);
+emit_32(3250290688);
+emit_32(1098514432);
+emit_32(1113686357);
+emit_32(3250290688);
+emit_32(1100759066);
+emit_32(1113837352);
+emit_32(3250290688);
+emit_32(1102807040);
+emit_32(1113996473);
+emit_32(3250290688);
+emit_32(1104855066);
+emit_32(1114061039);
+emit_32(3250290688);
+emit_32(1106903040);
+emit_32(1114255891);
+emit_32(3250290688);
+emit_32(1108123661);
+emit_32(1114434988);
+emit_32(3250290688);
+emit_32(1109147648);
+emit_32(1114792814);
+emit_32(3250290688);
+emit_32(1110171661);
+emit_32(1114681586);
+emit_32(3250290688);
+emit_32(1111195648);
+emit_32(1114881157);
+emit_32(3250290688);
+emit_32(1112219661);
+emit_32(1114508309);
+emit_32(3250290688);
+emit_32(1113243648);
+emit_32(1114572115);
+emit_32(3250290688);
+emit_32(1114267661);
+emit_32(1114613377);
+emit_32(3250290688);
+emit_32(1115291648);
+emit_32(1114243334);
+emit_32(3250290688);
+emit_32(1116000263);
+emit_32(1114073701);
+emit_32(3250290688);
+emit_32(1116512256);
+emit_32(1113815594);
+emit_32(3250290688);
+emit_32(1117024263);
+emit_32(1113605721);
+emit_32(3250290688);
+emit_32(1117536256);
+emit_32(1113440702);
+emit_32(3250290688);
+emit_32(1118048263);
+emit_32(1112989159);
+emit_32(3250290688);
+emit_32(1118560256);
+emit_32(1112567395);
+emit_32(3250290688);
+emit_32(1119072263);
+emit_32(1112247344);
+emit_32(3250290688);
+emit_32(1119584256);
+emit_32(1112009920);
+emit_32(3250290688);
+emit_32(1120096263);
+emit_32(1111470454);
+emit_32(3250290688);
+emit_32(1120608322);
+emit_32(1110996838);
+emit_32(3250290688);
+emit_32(1121120289);
+emit_32(1110568495);
+emit_32(3250290688);
+emit_32(1121632256);
+emit_32(1110151633);
+emit_32(3250290688);
+emit_32(1122144223);
+emit_32(1109917460);
+emit_32(3250290688);
+emit_32(1122656322);
+emit_32(1109701663);
+emit_32(3250290688);
+emit_32(1123168289);
+emit_32(1109686721);
+emit_32(3250290688);
+emit_32(1123680256);
+emit_32(1109370549);
+emit_32(3250290688);
+emit_32(1124132848);
+emit_32(1109357783);
+emit_32(3250290688);
+emit_32(1124388897);
+emit_32(1109361348);
+emit_32(3250290688);
+emit_32(1124644880);
+emit_32(1108962627);
+emit_32(3250290688);
+emit_32(1124900864);
+emit_32(1108736108);
+emit_32(3250290688);
+emit_32(1125156848);
+emit_32(1108614185);
+emit_32(3250290688);
+emit_32(1125412897);
+emit_32(1108533864);
+emit_32(3250290688);
+emit_32(1125668880);
+emit_32(1108590068);
+emit_32(3250290688);
+emit_32(1125924864);
+emit_32(1108802404);
+emit_32(3250290688);
+emit_32(1126180848);
+emit_32(1108700955);
+emit_32(3250290688);
+emit_32(1126436897);
+emit_32(1108392988);
+emit_32(3250290688);
+emit_32(1126692880);
+emit_32(1108021871);
+emit_32(3250290688);
+emit_32(1126948864);
+emit_32(1107615521);
+emit_32(3250290688);
+emit_32(1127204848);
+emit_32(1107132835);
+emit_32(3250290688);
+emit_32(1127460897);
+emit_32(1106307239);
+emit_32(3250290688);
+emit_32(1127716880);
+emit_32(1105259659);
+emit_32(3250290688);
+emit_32(1127972864);
+emit_32(1103882145);
+emit_32(3250290688);
+emit_32(1128228848);
+emit_32(1102498916);
+emit_32(3250290688);
+emit_32(1128484897);
+emit_32(1100712509);
+emit_32(3250290688);
+emit_32(1128740880);
+emit_32(1099497629);
+emit_32(3250290688);
+emit_32(1128996864);
+emit_32(1097686476);
+emit_32(3250290688);
+emit_32(1129252848);
+emit_32(1096996199);
+emit_32(3250290688);
+emit_32(1129508897);
+emit_32(1096729441);
+emit_32(3250290688);
+emit_32(1129764880);
+emit_32(1096118855);
+emit_32(3250290688);
+emit_32(1130020864);
+emit_32(1095816970);
+emit_32(3250290688);
+emit_32(1130276848);
+emit_32(1095839934);
+emit_32(3250290688);
+emit_32(1130532897);
+emit_32(1095807218);
+emit_32(3250290688);
+emit_32(1130788880);
+emit_32(1096112249);
+emit_32(3250290688);
+emit_32(1131044864);
+emit_32(1096393372);
+emit_32(3250290688);
+emit_32(1131300848);
+emit_32(1096168558);
+emit_32(3250290688);
+emit_32(1131556897);
+emit_32(1095322776);
+emit_32(3250290688);
+emit_32(1131812880);
+emit_32(1094576924);
+emit_32(3250290688);
+emit_32(1132068864);
+emit_32(1094020760);
+emit_32(3250290688);
+emit_32(1081737216);
+emit_32(1113988085);
+emit_32(3252338714);
+emit_32(1090125824);
+emit_32(1114065260);
+emit_32(3252338714);
+emit_32(1094418484);
+emit_32(1113997338);
+emit_32(3252338714);
+emit_32(1098514432);
+emit_32(1114054171);
+emit_32(3252338714);
+emit_32(1100759066);
+emit_32(1114320378);
+emit_32(3252338714);
+emit_32(1102807040);
+emit_32(1114467126);
+emit_32(3252338714);
+emit_32(1104855066);
+emit_32(1114435984);
+emit_32(3252338714);
+emit_32(1106903040);
+emit_32(1114341953);
+emit_32(3252338714);
+emit_32(1108123661);
+emit_32(1114299407);
+emit_32(3252338714);
+emit_32(1109147648);
+emit_32(1114563438);
+emit_32(3252338714);
+emit_32(1110171661);
+emit_32(1114648268);
+emit_32(3252338714);
+emit_32(1111195648);
+emit_32(1114546084);
+emit_32(3252338714);
+emit_32(1112219661);
+emit_32(1114619144);
+emit_32(3252338714);
+emit_32(1113243648);
+emit_32(1114743636);
+emit_32(3252338714);
+emit_32(1114267661);
+emit_32(1114455592);
+emit_32(3252338714);
+emit_32(1115291648);
+emit_32(1114088040);
+emit_32(3252338714);
+emit_32(1116000263);
+emit_32(1113929390);
+emit_32(3252338714);
+emit_32(1116512256);
+emit_32(1113476511);
+emit_32(3252338714);
+emit_32(1117024263);
+emit_32(1113251303);
+emit_32(3252338714);
+emit_32(1117536256);
+emit_32(1113169592);
+emit_32(3252338714);
+emit_32(1118048263);
+emit_32(1112818162);
+emit_32(3252338714);
+emit_32(1118560256);
+emit_32(1112268839);
+emit_32(3252338714);
+emit_32(1119072263);
+emit_32(1111908916);
+emit_32(3252338714);
+emit_32(1119584256);
+emit_32(1111826550);
+emit_32(3252338714);
+emit_32(1120096263);
+emit_32(1111731418);
+emit_32(3252338714);
+emit_32(1120608322);
+emit_32(1111230146);
+emit_32(3252338714);
+emit_32(1121120289);
+emit_32(1110553815);
+emit_32(3252338714);
+emit_32(1121632256);
+emit_32(1110036683);
+emit_32(3252338714);
+emit_32(1122144223);
+emit_32(1109799364);
+emit_32(3252338714);
+emit_32(1122656322);
+emit_32(1109771393);
+emit_32(3252338714);
+emit_32(1123168289);
+emit_32(1109709003);
+emit_32(3252338714);
+emit_32(1123680256);
+emit_32(1109442691);
+emit_32(3252338714);
+emit_32(1124132848);
+emit_32(1109517769);
+emit_32(3252338714);
+emit_32(1124388897);
+emit_32(1109424524);
+emit_32(3252338714);
+emit_32(1124644880);
+emit_32(1109080277);
+emit_32(3252338714);
+emit_32(1124900864);
+emit_32(1108875411);
+emit_32(3252338714);
+emit_32(1125156848);
+emit_32(1108744733);
+emit_32(3252338714);
+emit_32(1125412897);
+emit_32(1108572268);
+emit_32(3252338714);
+emit_32(1125668880);
+emit_32(1108842041);
+emit_32(3252338714);
+emit_32(1125924864);
+emit_32(1108992537);
+emit_32(3252338714);
+emit_32(1126180848);
+emit_32(1108824136);
+emit_32(3252338714);
+emit_32(1126436897);
+emit_32(1108504583);
+emit_32(3252338714);
+emit_32(1126692880);
+emit_32(1107939112);
+emit_32(3252338714);
+emit_32(1126948864);
+emit_32(1107373221);
+emit_32(3252338714);
+emit_32(1127204848);
+emit_32(1107163454);
+emit_32(3252338714);
+emit_32(1127460897);
+emit_32(1106219106);
+emit_32(3252338714);
+emit_32(1127716880);
+emit_32(1105070444);
+emit_32(3252338714);
+emit_32(1127972864);
+emit_32(1103725960);
+emit_32(3252338714);
+emit_32(1128228848);
+emit_32(1102334919);
+emit_32(3252338714);
+emit_32(1128484897);
+emit_32(1100777102);
+emit_32(3252338714);
+emit_32(1128740880);
+emit_32(1099662937);
+emit_32(3252338714);
+emit_32(1128996864);
+emit_32(1098431490);
+emit_32(3252338714);
+emit_32(1129252848);
+emit_32(1097775186);
+emit_32(3252338714);
+emit_32(1129508897);
+emit_32(1096256848);
+emit_32(3252338714);
+emit_32(1129764880);
+emit_32(1095754895);
+emit_32(3252338714);
+emit_32(1130020864);
+emit_32(1096060659);
+emit_32(3252338714);
+emit_32(1130276848);
+emit_32(1095067238);
+emit_32(3252338714);
+emit_32(1130532897);
+emit_32(1094771330);
+emit_32(3252338714);
+emit_32(1130788880);
+emit_32(1095212047);
+emit_32(3252338714);
+emit_32(1131044864);
+emit_32(1094803207);
+emit_32(3252338714);
+emit_32(1131300848);
+emit_32(1094921801);
+emit_32(3252338714);
+emit_32(1131556897);
+emit_32(1094618028);
+emit_32(3252338714);
+emit_32(1131812880);
+emit_32(1093381757);
+emit_32(3252338714);
+emit_32(1132068864);
+emit_32(1092728180);
+emit_32(3252338714);
+emit_32(1081737216);
+emit_32(1114484349);
+emit_32(3254386688);
+emit_32(1090125824);
+emit_32(1114516331);
+emit_32(3254386688);
+emit_32(1094418484);
+emit_32(1114316079);
+emit_32(3254386688);
+emit_32(1098514432);
+emit_32(1114579953);
+emit_32(3254386688);
+emit_32(1100759066);
+emit_32(1114764660);
+emit_32(3254386688);
+emit_32(1102807040);
+emit_32(1114796065);
+emit_32(3254386688);
+emit_32(1104855066);
+emit_32(1114724998);
+emit_32(3254386688);
+emit_32(1106903040);
+emit_32(1114516881);
+emit_32(3254386688);
+emit_32(1108123661);
+emit_32(1114291254);
+emit_32(3254386688);
+emit_32(1109147648);
+emit_32(1114334036);
+emit_32(3254386688);
+emit_32(1110171661);
+emit_32(1114475987);
+emit_32(3254386688);
+emit_32(1111195648);
+emit_32(1114491322);
+emit_32(3254386688);
+emit_32(1112219661);
+emit_32(1114531378);
+emit_32(3254386688);
+emit_32(1113243648);
+emit_32(1114372755);
+emit_32(3254386688);
+emit_32(1114267661);
+emit_32(1114308136);
+emit_32(3254386688);
+emit_32(1115291648);
+emit_32(1113743609);
+emit_32(3254386688);
+emit_32(1116000263);
+emit_32(1113664809);
+emit_32(3254386688);
+emit_32(1116512256);
+emit_32(1113231799);
+emit_32(3254386688);
+emit_32(1117024263);
+emit_32(1112995057);
+emit_32(3254386688);
+emit_32(1117536256);
+emit_32(1112878744);
+emit_32(3254386688);
+emit_32(1118048263);
+emit_32(1112754959);
+emit_32(3254386688);
+emit_32(1118560256);
+emit_32(1112570436);
+emit_32(3254386688);
+emit_32(1119072263);
+emit_32(1112364417);
+emit_32(3254386688);
+emit_32(1119584256);
+emit_32(1111993903);
+emit_32(3254386688);
+emit_32(1120096263);
+emit_32(1111795748);
+emit_32(3254386688);
+emit_32(1120608322);
+emit_32(1111345490);
+emit_32(3254386688);
+emit_32(1121120289);
+emit_32(1110601525);
+emit_32(3254386688);
+emit_32(1121632256);
+emit_32(1110149693);
+emit_32(3254386688);
+emit_32(1122144223);
+emit_32(1110165946);
+emit_32(3254386688);
+emit_32(1122656322);
+emit_32(1109981554);
+emit_32(3254386688);
+emit_32(1123168289);
+emit_32(1109825395);
+emit_32(3254386688);
+emit_32(1123680256);
+emit_32(1109816797);
+emit_32(3254386688);
+emit_32(1124132848);
+emit_32(1109710052);
+emit_32(3254386688);
+emit_32(1124388897);
+emit_32(1109602468);
+emit_32(3254386688);
+emit_32(1124644880);
+emit_32(1109349918);
+emit_32(3254386688);
+emit_32(1124900864);
+emit_32(1109069634);
+emit_32(3254386688);
+emit_32(1125156848);
+emit_32(1108800622);
+emit_32(3254386688);
+emit_32(1125412897);
+emit_32(1108662341);
+emit_32(3254386688);
+emit_32(1125668880);
+emit_32(1108955051);
+emit_32(3254386688);
+emit_32(1125924864);
+emit_32(1109069896);
+emit_32(3254386688);
+emit_32(1126180848);
+emit_32(1108753986);
+emit_32(3254386688);
+emit_32(1126436897);
+emit_32(1108343941);
+emit_32(3254386688);
+emit_32(1126692880);
+emit_32(1107751600);
+emit_32(3254386688);
+emit_32(1126948864);
+emit_32(1107299113);
+emit_32(3254386688);
+emit_32(1127204848);
+emit_32(1106833257);
+emit_32(3254386688);
+emit_32(1127460897);
+emit_32(1106258742);
+emit_32(3254386688);
+emit_32(1127716880);
+emit_32(1104970147);
+emit_32(3254386688);
+emit_32(1127972864);
+emit_32(1103641549);
+emit_32(3254386688);
+emit_32(1128228848);
+emit_32(1102486700);
+emit_32(3254386688);
+emit_32(1128484897);
+emit_32(1100950903);
+emit_32(3254386688);
+emit_32(1128740880);
+emit_32(1099783943);
+emit_32(3254386688);
+emit_32(1128996864);
+emit_32(1099048105);
+emit_32(3254386688);
+emit_32(1129252848);
+emit_32(1097916324);
+emit_32(3254386688);
+emit_32(1129508897);
+emit_32(1096849293);
+emit_32(3254386688);
+emit_32(1129764880);
+emit_32(1095290166);
+emit_32(3254386688);
+emit_32(1130020864);
+emit_32(1094873566);
+emit_32(3254386688);
+emit_32(1130276848);
+emit_32(1094773742);
+emit_32(3254386688);
+emit_32(1130532897);
+emit_32(1093963298);
+emit_32(3254386688);
+emit_32(1130788880);
+emit_32(1094288251);
+emit_32(3254386688);
+emit_32(1131044864);
+emit_32(1093582560);
+emit_32(3254386688);
+emit_32(1131300848);
+emit_32(1093578994);
+emit_32(3254386688);
+emit_32(1131556897);
+emit_32(1093961096);
+emit_32(3254386688);
+emit_32(1131812880);
+emit_32(1094270950);
+emit_32(3254386688);
+emit_32(1132068864);
+emit_32(1094226805);
+emit_32(3254386688);
+emit_32(1081737216);
+emit_32(1114694274);
+emit_32(3255607309);
+emit_32(1090125824);
+emit_32(1114471950);
+emit_32(3255607309);
+emit_32(1094418484);
+emit_32(1114251644);
+emit_32(3255607309);
+emit_32(1098514432);
+emit_32(1114525794);
+emit_32(3255607309);
+emit_32(1100759066);
+emit_32(1114675374);
+emit_32(3255607309);
+emit_32(1102807040);
+emit_32(1114775146);
+emit_32(3255607309);
+emit_32(1104855066);
+emit_32(1114776168);
+emit_32(3255607309);
+emit_32(1106903040);
+emit_32(1114678755);
+emit_32(3255607309);
+emit_32(1108123661);
+emit_32(1114267373);
+emit_32(3255607309);
+emit_32(1109147648);
+emit_32(1114095459);
+emit_32(3255607309);
+emit_32(1110171661);
+emit_32(1114227474);
+emit_32(3255607309);
+emit_32(1111195648);
+emit_32(1114305305);
+emit_32(3255607309);
+emit_32(1112219661);
+emit_32(1114012333);
+emit_32(3255607309);
+emit_32(1113243648);
+emit_32(1113935761);
+emit_32(3255607309);
+emit_32(1114267661);
+emit_32(1113756087);
+emit_32(3255607309);
+emit_32(1115291648);
+emit_32(1113651780);
+emit_32(3255607309);
+emit_32(1116000263);
+emit_32(1113622315);
+emit_32(3255607309);
+emit_32(1116512256);
+emit_32(1113238353);
+emit_32(3255607309);
+emit_32(1117024263);
+emit_32(1112877931);
+emit_32(3255607309);
+emit_32(1117536256);
+emit_32(1112868625);
+emit_32(3255607309);
+emit_32(1118048263);
+emit_32(1112560842);
+emit_32(3255607309);
+emit_32(1118560256);
+emit_32(1112530249);
+emit_32(3255607309);
+emit_32(1119072263);
+emit_32(1112251957);
+emit_32(3255607309);
+emit_32(1119584256);
+emit_32(1111883697);
+emit_32(3255607309);
+emit_32(1120096263);
+emit_32(1111510168);
+emit_32(3255607309);
+emit_32(1120608322);
+emit_32(1111049686);
+emit_32(3255607309);
+emit_32(1121120289);
+emit_32(1110465000);
+emit_32(3255607309);
+emit_32(1121632256);
+emit_32(1110143926);
+emit_32(3255607309);
+emit_32(1122144223);
+emit_32(1110128565);
+emit_32(3255607309);
+emit_32(1122656322);
+emit_32(1110170613);
+emit_32(3255607309);
+emit_32(1123168289);
+emit_32(1110002133);
+emit_32(3255607309);
+emit_32(1123680256);
+emit_32(1109827938);
+emit_32(3255607309);
+emit_32(1124132848);
+emit_32(1109697652);
+emit_32(3255607309);
+emit_32(1124388897);
+emit_32(1109285929);
+emit_32(3255607309);
+emit_32(1124644880);
+emit_32(1109015973);
+emit_32(3255607309);
+emit_32(1124900864);
+emit_32(1108853103);
+emit_32(3255607309);
+emit_32(1125156848);
+emit_32(1108675186);
+emit_32(3255607309);
+emit_32(1125412897);
+emit_32(1108706171);
+emit_32(3255607309);
+emit_32(1125668880);
+emit_32(1108840441);
+emit_32(3255607309);
+emit_32(1125924864);
+emit_32(1108822485);
+emit_32(3255607309);
+emit_32(1126180848);
+emit_32(1108425782);
+emit_32(3255607309);
+emit_32(1126436897);
+emit_32(1108131997);
+emit_32(3255607309);
+emit_32(1126692880);
+emit_32(1107626584);
+emit_32(3255607309);
+emit_32(1126948864);
+emit_32(1107199630);
+emit_32(3255607309);
+emit_32(1127204848);
+emit_32(1106951065);
+emit_32(3255607309);
+emit_32(1127460897);
+emit_32(1106261574);
+emit_32(3255607309);
+emit_32(1127716880);
+emit_32(1104881543);
+emit_32(3255607309);
+emit_32(1127972864);
+emit_32(1103438021);
+emit_32(3255607309);
+emit_32(1128228848);
+emit_32(1102185759);
+emit_32(3255607309);
+emit_32(1128484897);
+emit_32(1101110234);
+emit_32(3255607309);
+emit_32(1128740880);
+emit_32(1100328678);
+emit_32(3255607309);
+emit_32(1128996864);
+emit_32(1099613287);
+emit_32(3255607309);
+emit_32(1129252848);
+emit_32(1098156658);
+emit_32(3255607309);
+emit_32(1129508897);
+emit_32(1096407528);
+emit_32(3255607309);
+emit_32(1129764880);
+emit_32(1096170131);
+emit_32(3255607309);
+emit_32(1130020864);
+emit_32(1095690512);
+emit_32(3255607309);
+emit_32(1130276848);
+emit_32(1094209084);
+emit_32(3255607309);
+emit_32(1130532897);
+emit_32(1093127687);
+emit_32(3255607309);
+emit_32(1130788880);
+emit_32(1092438259);
+emit_32(3255607309);
+emit_32(1131044864);
+emit_32(1092531729);
+emit_32(3255607309);
+emit_32(1131300848);
+emit_32(1093627753);
+emit_32(3255607309);
+emit_32(1131556897);
+emit_32(1094279863);
+emit_32(3255607309);
+emit_32(1131812880);
+emit_32(1094536449);
+emit_32(3255607309);
+emit_32(1132068864);
+emit_32(1094652422);
+emit_32(3255607309);
+emit_32(1081737216);
+emit_32(1114612538);
+emit_32(3256631296);
+emit_32(1090125824);
+emit_32(1114274713);
+emit_32(3256631296);
+emit_32(1094418484);
+emit_32(1114042532);
+emit_32(3256631296);
+emit_32(1098514432);
+emit_32(1114371758);
+emit_32(3256631296);
+emit_32(1100759066);
+emit_32(1114654061);
+emit_32(3256631296);
+emit_32(1102807040);
+emit_32(1114778344);
+emit_32(3256631296);
+emit_32(1104855066);
+emit_32(1114758762);
+emit_32(3256631296);
+emit_32(1106903040);
+emit_32(1114526817);
+emit_32(3256631296);
+emit_32(1108123661);
+emit_32(1114218640);
+emit_32(3256631296);
+emit_32(1109147648);
+emit_32(1113983497);
+emit_32(3256631296);
+emit_32(1110171661);
+emit_32(1114023684);
+emit_32(3256631296);
+emit_32(1111195648);
+emit_32(1114065102);
+emit_32(3256631296);
+emit_32(1112219661);
+emit_32(1113899585);
+emit_32(3256631296);
+emit_32(1113243648);
+emit_32(1113503538);
+emit_32(3256631296);
+emit_32(1114267661);
+emit_32(1113409769);
+emit_32(3256631296);
+emit_32(1115291648);
+emit_32(1113402665);
+emit_32(3256631296);
+emit_32(1116000263);
+emit_32(1113537931);
+emit_32(3256631296);
+emit_32(1116512256);
+emit_32(1113144426);
+emit_32(3256631296);
+emit_32(1117024263);
+emit_32(1112966772);
+emit_32(3256631296);
+emit_32(1117536256);
+emit_32(1112729086);
+emit_32(3256631296);
+emit_32(1118048263);
+emit_32(1112420463);
+emit_32(3256631296);
+emit_32(1118560256);
+emit_32(1112416322);
+emit_32(3256631296);
+emit_32(1119072263);
+emit_32(1112175306);
+emit_32(3256631296);
+emit_32(1119584256);
+emit_32(1112112733);
+emit_32(3256631296);
+emit_32(1120096263);
+emit_32(1111723265);
+emit_32(3256631296);
+emit_32(1120608322);
+emit_32(1111230539);
+emit_32(3256631296);
+emit_32(1121120289);
+emit_32(1110568521);
+emit_32(3256631296);
+emit_32(1121632256);
+emit_32(1110333220);
+emit_32(3256631296);
+emit_32(1122144223);
+emit_32(1110249780);
+emit_32(3256631296);
+emit_32(1122656322);
+emit_32(1110285117);
+emit_32(3256631296);
+emit_32(1123168289);
+emit_32(1109907735);
+emit_32(3256631296);
+emit_32(1123680256);
+emit_32(1109777213);
+emit_32(3256631296);
+emit_32(1124132848);
+emit_32(1109451630);
+emit_32(3256631296);
+emit_32(1124388897);
+emit_32(1109111184);
+emit_32(3256631296);
+emit_32(1124644880);
+emit_32(1108792102);
+emit_32(3256631296);
+emit_32(1124900864);
+emit_32(1108776190);
+emit_32(3256631296);
+emit_32(1125156848);
+emit_32(1108834805);
+emit_32(3256631296);
+emit_32(1125412897);
+emit_32(1108715477);
+emit_32(3256631296);
+emit_32(1125668880);
+emit_32(1108660453);
+emit_32(3256631296);
+emit_32(1125924864);
+emit_32(1108548623);
+emit_32(3256631296);
+emit_32(1126180848);
+emit_32(1108317621);
+emit_32(3256631296);
+emit_32(1126436897);
+emit_32(1107958091);
+emit_32(3256631296);
+emit_32(1126692880);
+emit_32(1107488198);
+emit_32(3256631296);
+emit_32(1126948864);
+emit_32(1107323624);
+emit_32(3256631296);
+emit_32(1127204848);
+emit_32(1106940264);
+emit_32(3256631296);
+emit_32(1127460897);
+emit_32(1106131026);
+emit_32(3256631296);
+emit_32(1127716880);
+emit_32(1104537505);
+emit_32(3256631296);
+emit_32(1127972864);
+emit_32(1103113277);
+emit_32(3256631296);
+emit_32(1128228848);
+emit_32(1102198604);
+emit_32(3256631296);
+emit_32(1128484897);
+emit_32(1101660003);
+emit_32(3256631296);
+emit_32(1128740880);
+emit_32(1100980106);
+emit_32(3256631296);
+emit_32(1128996864);
+emit_32(1100131808);
+emit_32(3256631296);
+emit_32(1129252848);
+emit_32(1099325034);
+emit_32(3256631296);
+emit_32(1129508897);
+emit_32(1097933521);
+emit_32(3256631296);
+emit_32(1129764880);
+emit_32(1096350800);
+emit_32(3256631296);
+emit_32(1130020864);
+emit_32(1095937976);
+emit_32(3256631296);
+emit_32(1130276848);
+emit_32(1093950924);
+emit_32(3256631296);
+emit_32(1130532897);
+emit_32(1093143101);
+emit_32(3256631296);
+emit_32(1130788880);
+emit_32(1092323492);
+emit_32(3256631296);
+emit_32(1131044864);
+emit_32(1092516462);
+emit_32(3256631296);
+emit_32(1131300848);
+emit_32(1093374417);
+emit_32(3256631296);
+emit_32(1131556897);
+emit_32(1093934567);
+emit_32(3256631296);
+emit_32(1131812880);
+emit_32(1094793141);
+emit_32(3256631296);
+emit_32(1132068864);
+emit_32(1094610584);
+emit_32(3256631296);
+emit_32(1081737216);
+emit_32(1114510642);
+emit_32(3257655309);
+emit_32(1090125824);
+emit_32(1114177090);
+emit_32(3257655309);
+emit_32(1094418484);
+emit_32(1114130088);
+emit_32(3257655309);
+emit_32(1098514432);
+emit_32(1114485503);
+emit_32(3257655309);
+emit_32(1100759066);
+emit_32(1114774202);
+emit_32(3257655309);
+emit_32(1102807040);
+emit_32(1114811400);
+emit_32(3257655309);
+emit_32(1104855066);
+emit_32(1114642894);
+emit_32(3257655309);
+emit_32(1106903040);
+emit_32(1114125710);
+emit_32(3257655309);
+emit_32(1108123661);
+emit_32(1113782380);
+emit_32(3257655309);
+emit_32(1109147648);
+emit_32(1113903464);
+emit_32(3257655309);
+emit_32(1110171661);
+emit_32(1113893372);
+emit_32(3257655309);
+emit_32(1111195648);
+emit_32(1113835831);
+emit_32(3257655309);
+emit_32(1112219661);
+emit_32(1113519056);
+emit_32(3257655309);
+emit_32(1113243648);
+emit_32(1113402219);
+emit_32(3257655309);
+emit_32(1114267661);
+emit_32(1113222650);
+emit_32(3257655309);
+emit_32(1115291648);
+emit_32(1113112760);
+emit_32(3257655309);
+emit_32(1116000263);
+emit_32(1112977441);
+emit_32(3257655309);
+emit_32(1116512256);
+emit_32(1112883121);
+emit_32(3257655309);
+emit_32(1117024263);
+emit_32(1112823615);
+emit_32(3257655309);
+emit_32(1117536256);
+emit_32(1112700957);
+emit_32(3257655309);
+emit_32(1118048263);
+emit_32(1112438473);
+emit_32(3257655309);
+emit_32(1118560256);
+emit_32(1112053645);
+emit_32(3257655309);
+emit_32(1119072263);
+emit_32(1111879136);
+emit_32(3257655309);
+emit_32(1119584256);
+emit_32(1112020641);
+emit_32(3257655309);
+emit_32(1120096263);
+emit_32(1111750895);
+emit_32(3257655309);
+emit_32(1120608322);
+emit_32(1111255810);
+emit_32(3257655309);
+emit_32(1121120289);
+emit_32(1110557852);
+emit_32(3257655309);
+emit_32(1121632256);
+emit_32(1110574917);
+emit_32(3257655309);
+emit_32(1122144223);
+emit_32(1110468329);
+emit_32(3257655309);
+emit_32(1122656322);
+emit_32(1110138264);
+emit_32(3257655309);
+emit_32(1123168289);
+emit_32(1110059752);
+emit_32(3257655309);
+emit_32(1123680256);
+emit_32(1109798447);
+emit_32(3257655309);
+emit_32(1124132848);
+emit_32(1109243252);
+emit_32(3257655309);
+emit_32(1124388897);
+emit_32(1109362344);
+emit_32(3257655309);
+emit_32(1124644880);
+emit_32(1109167073);
+emit_32(3257655309);
+emit_32(1124900864);
+emit_32(1109064601);
+emit_32(3257655309);
+emit_32(1125156848);
+emit_32(1108980715);
+emit_32(3257655309);
+emit_32(1125412897);
+emit_32(1108866472);
+emit_32(3257655309);
+emit_32(1125668880);
+emit_32(1108651960);
+emit_32(3257655309);
+emit_32(1125924864);
+emit_32(1108356130);
+emit_32(3257655309);
+emit_32(1126180848);
+emit_32(1108103240);
+emit_32(3257655309);
+emit_32(1126436897);
+emit_32(1107651828);
+emit_32(3257655309);
+emit_32(1126692880);
+emit_32(1107336154);
+emit_32(3257655309);
+emit_32(1126948864);
+emit_32(1106756135);
+emit_32(3257655309);
+emit_32(1127204848);
+emit_32(1106100145);
+emit_32(3257655309);
+emit_32(1127460897);
+emit_32(1105225790);
+emit_32(3257655309);
+emit_32(1127716880);
+emit_32(1104058987);
+emit_32(3257655309);
+emit_32(1127972864);
+emit_32(1103547702);
+emit_32(3257655309);
+emit_32(1128228848);
+emit_32(1102526860);
+emit_32(3257655309);
+emit_32(1128484897);
+emit_32(1101431308);
+emit_32(3257655309);
+emit_32(1128740880);
+emit_32(1100829216);
+emit_32(3257655309);
+emit_32(1128996864);
+emit_32(1100205418);
+emit_32(3257655309);
+emit_32(1129252848);
+emit_32(1099550373);
+emit_32(3257655309);
+emit_32(1129508897);
+emit_32(1098506148);
+emit_32(3257655309);
+emit_32(1129764880);
+emit_32(1096071564);
+emit_32(3257655309);
+emit_32(1130020864);
+emit_32(1095937976);
+emit_32(3257655309);
+emit_32(1130276848);
+emit_32(1093431145);
+emit_32(3257655309);
+emit_32(1130532897);
+emit_32(1092220816);
+emit_32(3257655309);
+emit_32(1130788880);
+emit_32(1091857117);
+emit_32(3257655309);
+emit_32(1131044864);
+emit_32(1092062974);
+emit_32(3257655309);
+emit_32(1131300848);
+emit_32(1092869004);
+emit_32(3257655309);
+emit_32(1131556897);
+emit_32(1094057460);
+emit_32(3257655309);
+emit_32(1131812880);
+emit_32(1093644845);
+emit_32(3257655309);
+emit_32(1132068864);
+emit_32(1092544669);
+emit_32(3257655309);
+emit_32(1081737216);
+emit_32(1114350184);
+emit_32(3258679296);
+emit_32(1090125824);
+emit_32(1114346619);
+emit_32(3258679296);
+emit_32(1094418484);
+emit_32(1114421513);
+emit_32(3258679296);
+emit_32(1098514432);
+emit_32(1114700304);
+emit_32(3258679296);
+emit_32(1100759066);
+emit_32(1114796563);
+emit_32(3258679296);
+emit_32(1102807040);
+emit_32(1114621582);
+emit_32(3258679296);
+emit_32(1104855066);
+emit_32(1114296549);
+emit_32(3258679296);
+emit_32(1106903040);
+emit_32(1114209753);
+emit_32(3258679296);
+emit_32(1108123661);
+emit_32(1113856567);
+emit_32(3258679296);
+emit_32(1109147648);
+emit_32(1113867944);
+emit_32(3258679296);
+emit_32(1110171661);
+emit_32(1113863907);
+emit_32(3258679296);
+emit_32(1111195648);
+emit_32(1113532976);
+emit_32(3258679296);
+emit_32(1112219661);
+emit_32(1113290808);
+emit_32(3258679296);
+emit_32(1113243648);
+emit_32(1113017942);
+emit_32(3258679296);
+emit_32(1114267661);
+emit_32(1112948867);
+emit_32(3258679296);
+emit_32(1115291648);
+emit_32(1112695872);
+emit_32(3258679296);
+emit_32(1116000263);
+emit_32(1112643627);
+emit_32(3258679296);
+emit_32(1116512256);
+emit_32(1112588707);
+emit_32(3258679296);
+emit_32(1117024263);
+emit_32(1112603833);
+emit_32(3258679296);
+emit_32(1117536256);
+emit_32(1112628213);
+emit_32(3258679296);
+emit_32(1118048263);
+emit_32(1112273715);
+emit_32(3258679296);
+emit_32(1118560256);
+emit_32(1111859449);
+emit_32(3258679296);
+emit_32(1119072263);
+emit_32(1111576936);
+emit_32(3258679296);
+emit_32(1119584256);
+emit_32(1111726726);
+emit_32(3258679296);
+emit_32(1120096263);
+emit_32(1111402296);
+emit_32(3258679296);
+emit_32(1120608322);
+emit_32(1110549489);
+emit_32(3258679296);
+emit_32(1121120289);
+emit_32(1110448511);
+emit_32(3258679296);
+emit_32(1121632256);
+emit_32(1110373695);
+emit_32(3258679296);
+emit_32(1122144223);
+emit_32(1110467333);
+emit_32(3258679296);
+emit_32(1122656322);
+emit_32(1110274028);
+emit_32(3258679296);
+emit_32(1123168289);
+emit_32(1109946532);
+emit_32(3258679296);
+emit_32(1123680256);
+emit_32(1109626795);
+emit_32(3258679296);
+emit_32(1124132848);
+emit_32(1109494622);
+emit_32(3258679296);
+emit_32(1124388897);
+emit_32(1109413069);
+emit_32(3258679296);
+emit_32(1124644880);
+emit_32(1109297647);
+emit_32(3258679296);
+emit_32(1124900864);
+emit_32(1109062294);
+emit_32(3258679296);
+emit_32(1125156848);
+emit_32(1108844007);
+emit_32(3258679296);
+emit_32(1125412897);
+emit_32(1108568860);
+emit_32(3258679296);
+emit_32(1125668880);
+emit_32(1108450004);
+emit_32(3258679296);
+emit_32(1125924864);
+emit_32(1108186943);
+emit_32(3258679296);
+emit_32(1126180848);
+emit_32(1107845369);
+emit_32(3258679296);
+emit_32(1126436897);
+emit_32(1107362972);
+emit_32(3258679296);
+emit_32(1126692880);
+emit_32(1106252189);
+emit_32(3258679296);
+emit_32(1126948864);
+emit_32(1105829298);
+emit_32(3258679296);
+emit_32(1127204848);
+emit_32(1105218083);
+emit_32(3258679296);
+emit_32(1127460897);
+emit_32(1104523506);
+emit_32(3258679296);
+emit_32(1127716880);
+emit_32(1104128351);
+emit_32(3258679296);
+emit_32(1127972864);
+emit_32(1103796214);
+emit_32(3258679296);
+emit_32(1128228848);
+emit_32(1103027818);
+emit_32(3258679296);
+emit_32(1128484897);
+emit_32(1101322309);
+emit_32(3258679296);
+emit_32(1128740880);
+emit_32(1100681576);
+emit_32(3258679296);
+emit_32(1128996864);
+emit_32(1099668023);
+emit_32(3258679296);
+emit_32(1129252848);
+emit_32(1099208380);
+emit_32(3258679296);
+emit_32(1129508897);
+emit_32(1097801400);
+emit_32(3258679296);
+emit_32(1129764880);
+emit_32(1095333472);
+emit_32(3258679296);
+emit_32(1130020864);
+emit_32(1094540329);
+emit_32(3258679296);
+emit_32(1130276848);
+emit_32(1092787739);
+emit_32(3258679296);
+emit_32(1130532897);
+emit_32(1092315051);
+emit_32(3258679296);
+emit_32(1130788880);
+emit_32(1091861091);
+emit_32(3258679296);
+emit_32(1131044864);
+emit_32(1091047459);
+emit_32(3258679296);
+emit_32(1131300848);
+emit_32(1091787586);
+emit_32(3258679296);
+emit_32(1131556897);
+emit_32(1091795230);
+emit_32(3258679296);
+emit_32(1131812880);
+emit_32(1091987980);
+emit_32(3258679296);
+emit_32(1132068864);
+emit_32(1091100066);
+emit_32(3258679296);
+emit_32(1081737216);
+emit_32(1114597202);
+emit_32(3259703309);
+emit_32(1090125824);
+emit_32(1114535127);
+emit_32(3259703309);
+emit_32(1094418484);
+emit_32(1114569520);
+emit_32(3259703309);
+emit_32(1098514432);
+emit_32(1114747935);
+emit_32(3259703309);
+emit_32(1100759066);
+emit_32(1114487233);
+emit_32(3259703309);
+emit_32(1102807040);
+emit_32(1114382795);
+emit_32(3259703309);
+emit_32(1104855066);
+emit_32(1113996919);
+emit_32(3259703309);
+emit_32(1106903040);
+emit_32(1114099181);
+emit_32(3259703309);
+emit_32(1108123661);
+emit_32(1113852163);
+emit_32(3259703309);
+emit_32(1109147648);
+emit_32(1113652435);
+emit_32(3259703309);
+emit_32(1110171661);
+emit_32(1113551117);
+emit_32(3259703309);
+emit_32(1111195648);
+emit_32(1113386543);
+emit_32(3259703309);
+emit_32(1112219661);
+emit_32(1113298436);
+emit_32(3259703309);
+emit_32(1113243648);
+emit_32(1112846185);
+emit_32(3259703309);
+emit_32(1114267661);
+emit_32(1112699621);
+emit_32(3259703309);
+emit_32(1115291648);
+emit_32(1112253320);
+emit_32(3259703309);
+emit_32(1116000263);
+emit_32(1112228338);
+emit_32(3259703309);
+emit_32(1116512256);
+emit_32(1112085679);
+emit_32(3259703309);
+emit_32(1117024263);
+emit_32(1112407068);
+emit_32(3259703309);
+emit_32(1117536256);
+emit_32(1112221391);
+emit_32(3259703309);
+emit_32(1118048263);
+emit_32(1111896936);
+emit_32(3259703309);
+emit_32(1118560256);
+emit_32(1111579322);
+emit_32(3259703309);
+emit_32(1119072263);
+emit_32(1111494309);
+emit_32(3259703309);
+emit_32(1119584256);
+emit_32(1111163588);
+emit_32(3259703309);
+emit_32(1120096263);
+emit_32(1110845004);
+emit_32(3259703309);
+emit_32(1120608322);
+emit_32(1110534835);
+emit_32(3259703309);
+emit_32(1121120289);
+emit_32(1110661294);
+emit_32(3259703309);
+emit_32(1121632256);
+emit_32(1110709161);
+emit_32(3259703309);
+emit_32(1122144223);
+emit_32(1110566843);
+emit_32(3259703309);
+emit_32(1122656322);
+emit_32(1110304385);
+emit_32(3259703309);
+emit_32(1123168289);
+emit_32(1109925298);
+emit_32(3259703309);
+emit_32(1123680256);
+emit_32(1109647897);
+emit_32(3259703309);
+emit_32(1124132848);
+emit_32(1109489300);
+emit_32(3259703309);
+emit_32(1124388897);
+emit_32(1109413541);
+emit_32(3259703309);
+emit_32(1124644880);
+emit_32(1109402137);
+emit_32(3259703309);
+emit_32(1124900864);
+emit_32(1108939034);
+emit_32(3259703309);
+emit_32(1125156848);
+emit_32(1108484450);
+emit_32(3259703309);
+emit_32(1125412897);
+emit_32(1108297200);
+emit_32(3259703309);
+emit_32(1125668880);
+emit_32(1108185815);
+emit_32(3259703309);
+emit_32(1125924864);
+emit_32(1108077104);
+emit_32(3259703309);
+emit_32(1126180848);
+emit_32(1107688659);
+emit_32(3259703309);
+emit_32(1126436897);
+emit_32(1107166075);
+emit_32(3259703309);
+emit_32(1126692880);
+emit_32(1105985012);
+emit_32(3259703309);
+emit_32(1126948864);
+emit_32(1104765465);
+emit_32(3259703309);
+emit_32(1127204848);
+emit_32(1103884766);
+emit_32(3259703309);
+emit_32(1127460897);
+emit_32(1103770157);
+emit_32(3259703309);
+emit_32(1127716880);
+emit_32(1103747613);
+emit_32(3259703309);
+emit_32(1127972864);
+emit_32(1103380349);
+emit_32(3259703309);
+emit_32(1128228848);
+emit_32(1102807669);
+emit_32(3259703309);
+emit_32(1128484897);
+emit_32(1101721240);
+emit_32(3259703309);
+emit_32(1128740880);
+emit_32(1100629095);
+emit_32(3259703309);
+emit_32(1128996864);
+emit_32(1099835323);
+emit_32(3259703309);
+emit_32(1129252848);
+emit_32(1098920598);
+emit_32(3259703309);
+emit_32(1129508897);
+emit_32(1096752929);
+emit_32(3259703309);
+emit_32(1129764880);
+emit_32(1095066609);
+emit_32(3259703309);
+emit_32(1130020864);
+emit_32(1093563371);
+emit_32(3259703309);
+emit_32(1130276848);
+emit_32(1092693157);
+emit_32(3259703309);
+emit_32(1130532897);
+emit_32(1091653725);
+emit_32(3259703309);
+emit_32(1130788880);
+emit_32(1091615085);
+emit_32(3259703309);
+emit_32(1131044864);
+emit_32(1091394161);
+emit_32(3259703309);
+emit_32(1131300848);
+emit_32(1091605134);
+emit_32(3259703309);
+emit_32(1131556897);
+emit_32(1091638730);
+emit_32(3259703309);
+emit_32(1131812880);
+emit_32(1091599786);
+emit_32(3259703309);
+emit_32(1132068864);
+emit_32(1092266859);
+emit_32(3259703309);
+emit_32(1081737216);
+emit_32(1114739258);
+emit_32(3260727296);
+emit_32(1090125824);
+emit_32(1114878378);
+emit_32(3260727296);
+emit_32(1094418484);
+emit_32(1114870802);
+emit_32(3260727296);
+emit_32(1098514432);
+emit_32(1114770794);
+emit_32(3260727296);
+emit_32(1100759066);
+emit_32(1114231276);
+emit_32(3260727296);
+emit_32(1102807040);
+emit_32(1114104450);
+emit_32(3260727296);
+emit_32(1104855066);
+emit_32(1113868626);
+emit_32(3260727296);
+emit_32(1106903040);
+emit_32(1113833393);
+emit_32(3260727296);
+emit_32(1108123661);
+emit_32(1113996840);
+emit_32(3260727296);
+emit_32(1109147648);
+emit_32(1113765393);
+emit_32(3260727296);
+emit_32(1110171661);
+emit_32(1113650627);
+emit_32(3260727296);
+emit_32(1111195648);
+emit_32(1113342896);
+emit_32(3260727296);
+emit_32(1112219661);
+emit_32(1113156380);
+emit_32(3260727296);
+emit_32(1113243648);
+emit_32(1112582154);
+emit_32(3260727296);
+emit_32(1114267661);
+emit_32(1112346277);
+emit_32(3260727296);
+emit_32(1115291648);
+emit_32(1111870249);
+emit_32(3260727296);
+emit_32(1116000263);
+emit_32(1111605930);
+emit_32(3260727296);
+emit_32(1116512256);
+emit_32(1111495305);
+emit_32(3260727296);
+emit_32(1117024263);
+emit_32(1111701219);
+emit_32(3260727296);
+emit_32(1117536256);
+emit_32(1111545768);
+emit_32(3260727296);
+emit_32(1118048263);
+emit_32(1111442876);
+emit_32(3260727296);
+emit_32(1118560256);
+emit_32(1111332802);
+emit_32(3260727296);
+emit_32(1119072263);
+emit_32(1111091472);
+emit_32(3260727296);
+emit_32(1119584256);
+emit_32(1110805001);
+emit_32(3260727296);
+emit_32(1120096263);
+emit_32(1110581864);
+emit_32(3260727296);
+emit_32(1120608322);
+emit_32(1110742008);
+emit_32(3260727296);
+emit_32(1121120289);
+emit_32(1110855516);
+emit_32(3260727296);
+emit_32(1121632256);
+emit_32(1110816168);
+emit_32(3260727296);
+emit_32(1122144223);
+emit_32(1110551665);
+emit_32(3260727296);
+emit_32(1122656322);
+emit_32(1110342579);
+emit_32(3260727296);
+emit_32(1123168289);
+emit_32(1110183327);
+emit_32(3260727296);
+emit_32(1123680256);
+emit_32(1109713040);
+emit_32(3260727296);
+emit_32(1124132848);
+emit_32(1109405598);
+emit_32(3260727296);
+emit_32(1124388897);
+emit_32(1109483874);
+emit_32(3260727296);
+emit_32(1124644880);
+emit_32(1109243252);
+emit_32(3260727296);
+emit_32(1124900864);
+emit_32(1108683915);
+emit_32(3260727296);
+emit_32(1125156848);
+emit_32(1108334268);
+emit_32(3260727296);
+emit_32(1125412897);
+emit_32(1108021346);
+emit_32(3260727296);
+emit_32(1125668880);
+emit_32(1107650229);
+emit_32(3260727296);
+emit_32(1125924864);
+emit_32(1107734875);
+emit_32(3260727296);
+emit_32(1126180848);
+emit_32(1107447356);
+emit_32(3260727296);
+emit_32(1126436897);
+emit_32(1106611641);
+emit_32(3260727296);
+emit_32(1126692880);
+emit_32(1105656650);
+emit_32(3260727296);
+emit_32(1126948864);
+emit_32(1104580601);
+emit_32(3260727296);
+emit_32(1127204848);
+emit_32(1103477447);
+emit_32(3260727296);
+emit_32(1127460897);
+emit_32(1102867753);
+emit_32(3260727296);
+emit_32(1127716880);
+emit_32(1102847882);
+emit_32(3260727296);
+emit_32(1127972864);
+emit_32(1102763996);
+emit_32(3260727296);
+emit_32(1128228848);
+emit_32(1102458913);
+emit_32(3260727296);
+emit_32(1128484897);
+emit_32(1102197083);
+emit_32(3260727296);
+emit_32(1128740880);
+emit_32(1101514251);
+emit_32(3260727296);
+emit_32(1128996864);
+emit_32(1100242957);
+emit_32(3260727296);
+emit_32(1129252848);
+emit_32(1098935488);
+emit_32(3260727296);
+emit_32(1129508897);
+emit_32(1096397147);
+emit_32(3260727296);
+emit_32(1129764880);
+emit_32(1093735442);
+emit_32(3260727296);
+emit_32(1130020864);
+emit_32(1092509887);
+emit_32(3260727296);
+emit_32(1130276848);
+emit_32(1092214797);
+emit_32(3260727296);
+emit_32(1130532897);
+emit_32(1091179916);
+emit_32(3260727296);
+emit_32(1130788880);
+emit_32(1091523565);
+emit_32(3260727296);
+emit_32(1131044864);
+emit_32(1091405317);
+emit_32(3260727296);
+emit_32(1131300848);
+emit_32(1091481213);
+emit_32(3260727296);
+emit_32(1131556897);
+emit_32(1091769446);
+emit_32(3260727296);
+emit_32(1131812880);
+emit_32(1091742634);
+emit_32(3260727296);
+emit_32(1132068864);
+emit_32(1092008249);
+emit_32(3260727296);
+emit_32(1081737216);
+emit_32(1115049086);
+emit_32(3261751309);
+emit_32(1090125824);
+emit_32(1114962395);
+emit_32(3261751309);
+emit_32(1094418484);
+emit_32(1114740674);
+emit_32(3261751309);
+emit_32(1098514432);
+emit_32(1114486001);
+emit_32(3261751309);
+emit_32(1100759066);
+emit_32(1114250779);
+emit_32(3261751309);
+emit_32(1102807040);
+emit_32(1113755799);
+emit_32(3261751309);
+emit_32(1104855066);
+emit_32(1113604699);
+emit_32(3261751309);
+emit_32(1106903040);
+emit_32(1113715717);
+emit_32(3261751309);
+emit_32(1108123661);
+emit_32(1113733516);
+emit_32(3261751309);
+emit_32(1109147648);
+emit_32(1113783009);
+emit_32(3261751309);
+emit_32(1110171661);
+emit_32(1113496093);
+emit_32(3261751309);
+emit_32(1111195648);
+emit_32(1113237016);
+emit_32(3261751309);
+emit_32(1112219661);
+emit_32(1112990181);
+emit_32(3261751309);
+emit_32(1113243648);
+emit_32(1112521022);
+emit_32(3261751309);
+emit_32(1114267661);
+emit_32(1112125315);
+emit_32(3261751309);
+emit_32(1115291648);
+emit_32(1111604671);
+emit_32(3261751309);
+emit_32(1116000263);
+emit_32(1111264408);
+emit_32(3261751309);
+emit_32(1116512256);
+emit_32(1110967242);
+emit_32(3261751309);
+emit_32(1117024263);
+emit_32(1110960898);
+emit_32(3261751309);
+emit_32(1117536256);
+emit_32(1110766938);
+emit_32(3261751309);
+emit_32(1118048263);
+emit_32(1110773334);
+emit_32(3261751309);
+emit_32(1118560256);
+emit_32(1110772364);
+emit_32(3261751309);
+emit_32(1119072263);
+emit_32(1110784763);
+emit_32(3261751309);
+emit_32(1119584256);
+emit_32(1110671203);
+emit_32(3261751309);
+emit_32(1120096263);
+emit_32(1110537562);
+emit_32(3261751309);
+emit_32(1120608322);
+emit_32(1110731470);
+emit_32(3261751309);
+emit_32(1121120289);
+emit_32(1110870222);
+emit_32(3261751309);
+emit_32(1121632256);
+emit_32(1110602652);
+emit_32(3261751309);
+emit_32(1122144223);
+emit_32(1110529357);
+emit_32(3261751309);
+emit_32(1122656322);
+emit_32(1110527626);
+emit_32(3261751309);
+emit_32(1123168289);
+emit_32(1110155303);
+emit_32(3261751309);
+emit_32(1123680256);
+emit_32(1109558559);
+emit_32(3261751309);
+emit_32(1124132848);
+emit_32(1109729686);
+emit_32(3261751309);
+emit_32(1124388897);
+emit_32(1109466835);
+emit_32(3261751309);
+emit_32(1124644880);
+emit_32(1109238455);
+emit_32(3261751309);
+emit_32(1124900864);
+emit_32(1108631067);
+emit_32(3261751309);
+emit_32(1125156848);
+emit_32(1108053590);
+emit_32(3261751309);
+emit_32(1125412897);
+emit_32(1107431549);
+emit_32(3261751309);
+emit_32(1125668880);
+emit_32(1107275127);
+emit_32(3261751309);
+emit_32(1125924864);
+emit_32(1107085807);
+emit_32(3261751309);
+emit_32(1126180848);
+emit_32(1106875043);
+emit_32(3261751309);
+emit_32(1126436897);
+emit_32(1106465207);
+emit_32(3261751309);
+emit_32(1126692880);
+emit_32(1105739330);
+emit_32(3261751309);
+emit_32(1126948864);
+emit_32(1104828380);
+emit_32(3261751309);
+emit_32(1127204848);
+emit_32(1104194306);
+emit_32(3261751309);
+emit_32(1127460897);
+emit_32(1103488510);
+emit_32(3261751309);
+emit_32(1127716880);
+emit_32(1102913680);
+emit_32(3261751309);
+emit_32(1127972864);
+emit_32(1102738044);
+emit_32(3261751309);
+emit_32(1128228848);
+emit_32(1102513753);
+emit_32(3261751309);
+emit_32(1128484897);
+emit_32(1102220624);
+emit_32(3261751309);
+emit_32(1128740880);
+emit_32(1101685640);
+emit_32(3261751309);
+emit_32(1128996864);
+emit_32(1100932081);
+emit_32(3261751309);
+emit_32(1129252848);
+emit_32(1099376414);
+emit_32(3261751309);
+emit_32(1129508897);
+emit_32(1096550344);
+emit_32(3261751309);
+emit_32(1129764880);
+emit_32(1094603244);
+emit_32(3261751309);
+emit_32(1130020864);
+emit_32(1092245762);
+emit_32(3261751309);
+emit_32(1130276848);
+emit_32(1091851801);
+emit_32(3261751309);
+emit_32(1130532897);
+emit_32(1091990360);
+emit_32(3261751309);
+emit_32(1130788880);
+emit_32(1091469343);
+emit_32(3261751309);
+emit_32(1131044864);
+emit_32(1091186889);
+emit_32(3261751309);
+emit_32(1131300848);
+emit_32(1091680191);
+emit_32(3261751309);
+emit_32(1131556897);
+emit_32(1092249820);
+emit_32(3261751309);
+emit_32(1131812880);
+emit_32(1091787240);
+emit_32(3261751309);
+emit_32(1132068864);
+emit_32(1092823076);
+emit_32(3261751309);
+emit_32(1081737216);
+emit_32(1115189700);
+emit_32(3262775296);
+emit_32(1090125824);
+emit_32(1114804086);
+emit_32(3262775296);
+emit_32(1094418484);
+emit_32(1114524457);
+emit_32(3262775296);
+emit_32(1098514432);
+emit_32(1114431554);
+emit_32(3262775296);
+emit_32(1100759066);
+emit_32(1113978044);
+emit_32(3262775296);
+emit_32(1102807040);
+emit_32(1113530381);
+emit_32(3262775296);
+emit_32(1104855066);
+emit_32(1113581814);
+emit_32(3262775296);
+emit_32(1106903040);
+emit_32(1113583963);
+emit_32(3262775296);
+emit_32(1108123661);
+emit_32(1113510458);
+emit_32(3262775296);
+emit_32(1109147648);
+emit_32(1113580162);
+emit_32(3262775296);
+emit_32(1110171661);
+emit_32(1113244408);
+emit_32(3262775296);
+emit_32(1111195648);
+emit_32(1113012699);
+emit_32(3262775296);
+emit_32(1112219661);
+emit_32(1112648765);
+emit_32(3262775296);
+emit_32(1113243648);
+emit_32(1112238483);
+emit_32(3262775296);
+emit_32(1114267661);
+emit_32(1111804976);
+emit_32(3262775296);
+emit_32(1115291648);
+emit_32(1111412362);
+emit_32(3262775296);
+emit_32(1116000263);
+emit_32(1110827074);
+emit_32(3262775296);
+emit_32(1116512256);
+emit_32(1110530694);
+emit_32(3262775296);
+emit_32(1117024263);
+emit_32(1110239399);
+emit_32(3262775296);
+emit_32(1117536256);
+emit_32(1110405048);
+emit_32(3262775296);
+emit_32(1118048263);
+emit_32(1110532476);
+emit_32(3262775296);
+emit_32(1118560256);
+emit_32(1110521885);
+emit_32(3262775296);
+emit_32(1119072263);
+emit_32(1110500757);
+emit_32(3262775296);
+emit_32(1119584256);
+emit_32(1110457372);
+emit_32(3262775296);
+emit_32(1120096263);
+emit_32(1110371651);
+emit_32(3262775296);
+emit_32(1120608322);
+emit_32(1110583332);
+emit_32(3262775296);
+emit_32(1121120289);
+emit_32(1110579793);
+emit_32(3262775296);
+emit_32(1121632256);
+emit_32(1110326510);
+emit_32(3262775296);
+emit_32(1122144223);
+emit_32(1110576044);
+emit_32(3262775296);
+emit_32(1122656322);
+emit_32(1110255731);
+emit_32(3262775296);
+emit_32(1123168289);
+emit_32(1109817767);
+emit_32(3262775296);
+emit_32(1123680256);
+emit_32(1109393120);
+emit_32(3262775296);
+emit_32(1124132848);
+emit_32(1109645407);
+emit_32(3262775296);
+emit_32(1124388897);
+emit_32(1109352881);
+emit_32(3262775296);
+emit_32(1124644880);
+emit_32(1109118131);
+emit_32(3262775296);
+emit_32(1124900864);
+emit_32(1108538950);
+emit_32(3262775296);
+emit_32(1125156848);
+emit_32(1108056028);
+emit_32(3262775296);
+emit_32(1125412897);
+emit_32(1107693981);
+emit_32(3262775296);
+emit_32(1125668880);
+emit_32(1107060169);
+emit_32(3262775296);
+emit_32(1125924864);
+emit_32(1106929307);
+emit_32(3262775296);
+emit_32(1126180848);
+emit_32(1106668945);
+emit_32(3262775296);
+emit_32(1126436897);
+emit_32(1106423893);
+emit_32(3262775296);
+emit_32(1126692880);
+emit_32(1106097157);
+emit_32(3262775296);
+emit_32(1126948864);
+emit_32(1105689628);
+emit_32(3262775296);
+emit_32(1127204848);
+emit_32(1104863822);
+emit_32(3262775296);
+emit_32(1127460897);
+emit_32(1104431232);
+emit_32(3262775296);
+emit_32(1127716880);
+emit_32(1103727061);
+emit_32(3262775296);
+emit_32(1127972864);
+emit_32(1103036154);
+emit_32(3262775296);
+emit_32(1128228848);
+emit_32(1102391227);
+emit_32(3262775296);
+emit_32(1128484897);
+emit_32(1102074977);
+emit_32(3262775296);
+emit_32(1128740880);
+emit_32(1101512049);
+emit_32(3262775296);
+emit_32(1128996864);
+emit_32(1100231108);
+emit_32(3262775296);
+emit_32(1129252848);
+emit_32(1098399508);
+emit_32(3262775296);
+emit_32(1129508897);
+emit_32(1096015571);
+emit_32(3262775296);
+emit_32(1129764880);
+emit_32(1093673366);
+emit_32(3262775296);
+emit_32(1130020864);
+emit_32(1092539069);
+emit_32(3262775296);
+emit_32(1130276848);
+emit_32(1092267928);
+emit_32(3262775296);
+emit_32(1130532897);
+emit_32(1092764041);
+emit_32(3262775296);
+emit_32(1130788880);
+emit_32(1092150519);
+emit_32(3262775296);
+emit_32(1131044864);
+emit_32(1091502594);
+emit_32(3262775296);
+emit_32(1131300848);
+emit_32(1091946980);
+emit_32(3262775296);
+emit_32(1131556897);
+emit_32(1091906568);
+emit_32(3262775296);
+emit_32(1131812880);
+emit_32(1092505546);
+emit_32(3262775296);
+emit_32(1132068864);
+emit_32(1093985842);
+emit_32(3262775296);
+emit_32(1081737216);
+emit_32(1114860919);
+emit_32(3263483911);
+emit_32(1090125824);
+emit_32(1114455068);
+emit_32(3263483911);
+emit_32(1094418484);
+emit_32(1114274320);
+emit_32(3263483911);
+emit_32(1098514432);
+emit_32(1113998492);
+emit_32(3263483911);
+emit_32(1100759066);
+emit_32(1113229912);
+emit_32(3263483911);
+emit_32(1102807040);
+emit_32(1112963364);
+emit_32(3263483911);
+emit_32(1104855066);
+emit_32(1113085549);
+emit_32(3263483911);
+emit_32(1106903040);
+emit_32(1113193500);
+emit_32(3263483911);
+emit_32(1108123661);
+emit_32(1113051339);
+emit_32(3263483911);
+emit_32(1109147648);
+emit_32(1112914631);
+emit_32(3263483911);
+emit_32(1110171661);
+emit_32(1112713593);
+emit_32(3263483911);
+emit_32(1111195648);
+emit_32(1112530774);
+emit_32(3263483911);
+emit_32(1112219661);
+emit_32(1112319538);
+emit_32(3263483911);
+emit_32(1113243648);
+emit_32(1112017836);
+emit_32(3263483911);
+emit_32(1114267661);
+emit_32(1111480022);
+emit_32(3263483911);
+emit_32(1115291648);
+emit_32(1111044889);
+emit_32(3263483911);
+emit_32(1116000263);
+emit_32(1110559058);
+emit_32(3263483911);
+emit_32(1116512256);
+emit_32(1109970151);
+emit_32(3263483911);
+emit_32(1117024263);
+emit_32(1109713014);
+emit_32(3263483911);
+emit_32(1117536256);
+emit_32(1109844532);
+emit_32(3263483911);
+emit_32(1118048263);
+emit_32(1110110713);
+emit_32(3263483911);
+emit_32(1118560256);
+emit_32(1110168096);
+emit_32(3263483911);
+emit_32(1119072263);
+emit_32(1110188910);
+emit_32(3263483911);
+emit_32(1119584256);
+emit_32(1110300531);
+emit_32(3263483911);
+emit_32(1120096263);
+emit_32(1110086438);
+emit_32(3263483911);
+emit_32(1120608322);
+emit_32(1110098418);
+emit_32(3263483911);
+emit_32(1121120289);
+emit_32(1110207470);
+emit_32(3263483911);
+emit_32(1121632256);
+emit_32(1110104814);
+emit_32(3263483911);
+emit_32(1122144223);
+emit_32(1110042057);
+emit_32(3263483911);
+emit_32(1122656322);
+emit_32(1109977963);
+emit_32(3263483911);
+emit_32(1123168289);
+emit_32(1109719017);
+emit_32(3263483911);
+emit_32(1123680256);
+emit_32(1109491371);
+emit_32(3263483911);
+emit_32(1124132848);
+emit_32(1109439493);
+emit_32(3263483911);
+emit_32(1124388897);
+emit_32(1109273372);
+emit_32(3263483911);
+emit_32(1124644880);
+emit_32(1109142720);
+emit_32(3263483911);
+emit_32(1124900864);
+emit_32(1108647110);
+emit_32(3263483911);
+emit_32(1125156848);
+emit_32(1108078520);
+emit_32(3263483911);
+emit_32(1125412897);
+emit_32(1107629520);
+emit_32(3263483911);
+emit_32(1125668880);
+emit_32(1107405963);
+emit_32(3263483911);
+emit_32(1125924864);
+emit_32(1107180388);
+emit_32(3263483911);
+emit_32(1126180848);
+emit_32(1106634447);
+emit_32(3263483911);
+emit_32(1126436897);
+emit_32(1106537297);
+emit_32(3263483911);
+emit_32(1126692880);
+emit_32(1106021869);
+emit_32(3263483911);
+emit_32(1126948864);
+emit_32(1105710599);
+emit_32(3263483911);
+emit_32(1127204848);
+emit_32(1104910693);
+emit_32(3263483911);
+emit_32(1127460897);
+emit_32(1104565083);
+emit_32(3263483911);
+emit_32(1127716880);
+emit_32(1103934836);
+emit_32(3263483911);
+emit_32(1127972864);
+emit_32(1103249120);
+emit_32(3263483911);
+emit_32(1128228848);
+emit_32(1102145336);
+emit_32(3263483911);
+emit_32(1128484897);
+emit_32(1101411962);
+emit_32(3263483911);
+emit_32(1128740880);
+emit_32(1100959711);
+emit_32(3263483911);
+emit_32(1128996864);
+emit_32(1099510055);
+emit_32(3263483911);
+emit_32(1129252848);
+emit_32(1096815005);
+emit_32(3263483911);
+emit_32(1129508897);
+emit_32(1094088393);
+emit_32(3263483911);
+emit_32(1129764880);
+emit_32(1092617450);
+emit_32(3263483911);
+emit_32(1130020864);
+emit_32(1091201757);
+emit_32(3263483911);
+emit_32(1130276848);
+emit_32(1091975481);
+emit_32(3263483911);
+emit_32(1130532897);
+emit_32(1092051219);
+emit_32(3263483911);
+emit_32(1130788880);
+emit_32(1091427243);
+emit_32(3263483911);
+emit_32(1131044864);
+emit_32(1091236570);
+emit_32(3263483911);
+emit_32(1131300848);
+emit_32(1092364376);
+emit_32(3263483911);
+emit_32(1131556897);
+emit_32(1093015385);
+emit_32(3263483911);
+emit_32(1131812880);
+emit_32(1093629116);
+emit_32(3263483911);
+emit_32(1132068864);
+emit_32(1094121318);
+emit_32(3263483911);
+emit_32(1081737216);
+emit_32(1114412994);
+emit_32(3263995904);
+emit_32(1090125824);
+emit_32(1114056740);
+emit_32(3263995904);
+emit_32(1094418484);
+emit_32(1113478634);
+emit_32(3263995904);
+emit_32(1098514432);
+emit_32(1113153890);
+emit_32(3263995904);
+emit_32(1100759066);
+emit_32(1112554235);
+emit_32(3263995904);
+emit_32(1102807040);
+emit_32(1112170430);
+emit_32(3263995904);
+emit_32(1104855066);
+emit_32(1112241550);
+emit_32(3263995904);
+emit_32(1106903040);
+emit_32(1112360406);
+emit_32(3263995904);
+emit_32(1108123661);
+emit_32(1112453310);
+emit_32(3263995904);
+emit_32(1109147648);
+emit_32(1112310127);
+emit_32(3263995904);
+emit_32(1110171661);
+emit_32(1112440544);
+emit_32(3263995904);
+emit_32(1111195648);
+emit_32(1111943545);
+emit_32(3263995904);
+emit_32(1112219661);
+emit_32(1111698283);
+emit_32(3263995904);
+emit_32(1113243648);
+emit_32(1111330233);
+emit_32(3263995904);
+emit_32(1114267661);
+emit_32(1111083634);
+emit_32(3263995904);
+emit_32(1115291648);
+emit_32(1110768275);
+emit_32(3263995904);
+emit_32(1116000263);
+emit_32(1110145158);
+emit_32(3263995904);
+emit_32(1116512256);
+emit_32(1109629941);
+emit_32(3263995904);
+emit_32(1117024263);
+emit_32(1109269781);
+emit_32(3263995904);
+emit_32(1117536256);
+emit_32(1109302287);
+emit_32(3263995904);
+emit_32(1118048263);
+emit_32(1109529015);
+emit_32(3263995904);
+emit_32(1118560256);
+emit_32(1109660900);
+emit_32(3263995904);
+emit_32(1119072263);
+emit_32(1109901076);
+emit_32(3263995904);
+emit_32(1119584256);
+emit_32(1109952850);
+emit_32(3263995904);
+emit_32(1120096263);
+emit_32(1109778733);
+emit_32(3263995904);
+emit_32(1120608322);
+emit_32(1109570460);
+emit_32(3263995904);
+emit_32(1121120289);
+emit_32(1109713381);
+emit_32(3263995904);
+emit_32(1121632256);
+emit_32(1109646849);
+emit_32(3263995904);
+emit_32(1122144223);
+emit_32(1109683837);
+emit_32(3263995904);
+emit_32(1122656322);
+emit_32(1109578377);
+emit_32(3263995904);
+emit_32(1123168289);
+emit_32(1109348975);
+emit_32(3263995904);
+emit_32(1123680256);
+emit_32(1109644804);
+emit_32(3263995904);
+emit_32(1124132848);
+emit_32(1109851662);
+emit_32(3263995904);
+emit_32(1124388897);
+emit_32(1109688451);
+emit_32(3263995904);
+emit_32(1124644880);
+emit_32(1109357599);
+emit_32(3263995904);
+emit_32(1124900864);
+emit_32(1108828593);
+emit_32(3263995904);
+emit_32(1125156848);
+emit_32(1108185291);
+emit_32(3263995904);
+emit_32(1125412897);
+emit_32(1107780226);
+emit_32(3263995904);
+emit_32(1125668880);
+emit_32(1107584457);
+emit_32(3263995904);
+emit_32(1125924864);
+emit_32(1107420958);
+emit_32(3263995904);
+emit_32(1126180848);
+emit_32(1107022525);
+emit_32(3263995904);
+emit_32(1126436897);
+emit_32(1105944170);
+emit_32(3263995904);
+emit_32(1126692880);
+emit_32(1105239946);
+emit_32(3263995904);
+emit_32(1126948864);
+emit_32(1105095295);
+emit_32(3263995904);
+emit_32(1127204848);
+emit_32(1104538816);
+emit_32(3263995904);
+emit_32(1127460897);
+emit_32(1103876692);
+emit_32(3263995904);
+emit_32(1127716880);
+emit_32(1103498786);
+emit_32(3263995904);
+emit_32(1127972864);
+emit_32(1102542589);
+emit_32(3263995904);
+emit_32(1128228848);
+emit_32(1101655913);
+emit_32(3263995904);
+emit_32(1128484897);
+emit_32(1100746955);
+emit_32(3263995904);
+emit_32(1128740880);
+emit_32(1099747662);
+emit_32(3263995904);
+emit_32(1128996864);
+emit_32(1098190422);
+emit_32(3263995904);
+emit_32(1129252848);
+emit_32(1095504599);
+emit_32(3263995904);
+emit_32(1129508897);
+emit_32(1092998503);
+emit_32(3263995904);
+emit_32(1129764880);
+emit_32(1090781394);
+emit_32(3263995904);
+emit_32(1130020864);
+emit_32(1090669165);
+emit_32(3263995904);
+emit_32(1130276848);
+emit_32(1091201548);
+emit_32(3263995904);
+emit_32(1130532897);
+emit_32(1091148238);
+emit_32(3263995904);
+emit_32(1130788880);
+emit_32(1091128944);
+emit_32(3263995904);
+emit_32(1131044864);
+emit_32(1091988745);
+emit_32(3263995904);
+emit_32(1131300848);
+emit_32(1092577195);
+emit_32(3263995904);
+emit_32(1131556897);
+emit_32(1092426756);
+emit_32(3263995904);
+emit_32(1131812880);
+emit_32(1092938944);
+emit_32(3263995904);
+emit_32(1132068864);
+emit_32(1093077985);
+emit_32(3263995904);
+emit_32(1081737216);
+emit_32(1113723162);
+emit_32(3264507911);
+emit_32(1090125824);
+emit_32(1113515282);
+emit_32(3264507911);
+emit_32(1094418484);
+emit_32(1112907160);
+emit_32(3264507911);
+emit_32(1098514432);
+emit_32(1112285197);
+emit_32(3264507911);
+emit_32(1100759066);
+emit_32(1111782615);
+emit_32(3264507911);
+emit_32(1102807040);
+emit_32(1111448565);
+emit_32(3264507911);
+emit_32(1104855066);
+emit_32(1111432364);
+emit_32(3264507911);
+emit_32(1106903040);
+emit_32(1111593242);
+emit_32(3264507911);
+emit_32(1108123661);
+emit_32(1111556175);
+emit_32(3264507911);
+emit_32(1109147648);
+emit_32(1111791947);
+emit_32(3264507911);
+emit_32(1110171661);
+emit_32(1111706147);
+emit_32(3264507911);
+emit_32(1111195648);
+emit_32(1111342658);
+emit_32(3264507911);
+emit_32(1112219661);
+emit_32(1111241785);
+emit_32(3264507911);
+emit_32(1113243648);
+emit_32(1110814700);
+emit_32(3264507911);
+emit_32(1114267661);
+emit_32(1110530720);
+emit_32(3264507911);
+emit_32(1115291648);
+emit_32(1110173496);
+emit_32(3264507911);
+emit_32(1116000263);
+emit_32(1109779887);
+emit_32(3264507911);
+emit_32(1116512256);
+emit_32(1109242701);
+emit_32(3264507911);
+emit_32(1117024263);
+emit_32(1108763528);
+emit_32(3264507911);
+emit_32(1117536256);
+emit_32(1108823140);
+emit_32(3264507911);
+emit_32(1118048263);
+emit_32(1109120202);
+emit_32(3264507911);
+emit_32(1118560256);
+emit_32(1109432205);
+emit_32(3264507911);
+emit_32(1119072263);
+emit_32(1109682684);
+emit_32(3264507911);
+emit_32(1119584256);
+emit_32(1109558821);
+emit_32(3264507911);
+emit_32(1120096263);
+emit_32(1109416031);
+emit_32(3264507911);
+emit_32(1120608322);
+emit_32(1109479208);
+emit_32(3264507911);
+emit_32(1121120289);
+emit_32(1109404235);
+emit_32(3264507911);
+emit_32(1121632256);
+emit_32(1109406882);
+emit_32(3264507911);
+emit_32(1122144223);
+emit_32(1109258378);
+emit_32(3264507911);
+emit_32(1122656322);
+emit_32(1109286008);
+emit_32(3264507911);
+emit_32(1123168289);
+emit_32(1109433857);
+emit_32(3264507911);
+emit_32(1123680256);
+emit_32(1109483166);
+emit_32(3264507911);
+emit_32(1124132848);
+emit_32(1109859762);
+emit_32(3264507911);
+emit_32(1124388897);
+emit_32(1109785995);
+emit_32(3264507911);
+emit_32(1124644880);
+emit_32(1109694218);
+emit_32(3264507911);
+emit_32(1124900864);
+emit_32(1109081588);
+emit_32(3264507911);
+emit_32(1125156848);
+emit_32(1108301316);
+emit_32(3264507911);
+emit_32(1125412897);
+emit_32(1107987923);
+emit_32(3264507911);
+emit_32(1125668880);
+emit_32(1107744208);
+emit_32(3264507911);
+emit_32(1125924864);
+emit_32(1107483348);
+emit_32(3264507911);
+emit_32(1126180848);
+emit_32(1106653741);
+emit_32(3264507911);
+emit_32(1126436897);
+emit_32(1105289282);
+emit_32(3264507911);
+emit_32(1126692880);
+emit_32(1104749946);
+emit_32(3264507911);
+emit_32(1126948864);
+emit_32(1104530532);
+emit_32(3264507911);
+emit_32(1127204848);
+emit_32(1104035552);
+emit_32(3264507911);
+emit_32(1127460897);
+emit_32(1103561123);
+emit_32(3264507911);
+emit_32(1127716880);
+emit_32(1102839493);
+emit_32(3264507911);
+emit_32(1127972864);
+emit_32(1102745908);
+emit_32(3264507911);
+emit_32(1128228848);
+emit_32(1102238083);
+emit_32(3264507911);
+emit_32(1128484897);
+emit_32(1101176504);
+emit_32(3264507911);
+emit_32(1128740880);
+emit_32(1099585395);
+emit_32(3264507911);
+emit_32(1128996864);
+emit_32(1097910033);
+emit_32(3264507911);
+emit_32(1129252848);
+emit_32(1094998662);
+emit_32(3264507911);
+emit_32(1129508897);
+emit_32(1092197905);
+emit_32(3264507911);
+emit_32(1129764880);
+emit_32(1089185482);
+emit_32(3264507911);
+emit_32(1130020864);
+emit_32(1088998898);
+emit_32(3264507911);
+emit_32(1130276848);
+emit_32(1090896014);
+emit_32(3264507911);
+emit_32(1130532897);
+emit_32(1090711286);
+emit_32(3264507911);
+emit_32(1130788880);
+emit_32(1091554068);
+emit_32(3264507911);
+emit_32(1131044864);
+emit_32(1091546760);
+emit_32(3264507911);
+emit_32(1131300848);
+emit_32(1091602523);
+emit_32(3264507911);
+emit_32(1131556897);
+emit_32(1091448749);
+emit_32(3264507911);
+emit_32(1131812880);
+emit_32(1091178993);
+emit_32(3264507911);
+emit_32(1132068864);
+emit_32(1092283059);
+emit_32(3264507911);
+emit_32(1081737216);
+emit_32(1113178820);
+emit_32(3265019904);
+emit_32(1090125824);
+emit_32(1112815043);
+emit_32(3265019904);
+emit_32(1094418484);
+emit_32(1112334769);
+emit_32(3265019904);
+emit_32(1098514432);
+emit_32(1111680641);
+emit_32(3265019904);
+emit_32(1100759066);
+emit_32(1110962104);
+emit_32(3265019904);
+emit_32(1102807040);
+emit_32(1110710079);
+emit_32(3265019904);
+emit_32(1104855066);
+emit_32(1110785366);
+emit_32(3265019904);
+emit_32(1106903040);
+emit_32(1110945956);
+emit_32(3265019904);
+emit_32(1108123661);
+emit_32(1111176643);
+emit_32(3265019904);
+emit_32(1109147648);
+emit_32(1111187364);
+emit_32(3265019904);
+emit_32(1110171661);
+emit_32(1110966901);
+emit_32(3265019904);
+emit_32(1111195648);
+emit_32(1110878952);
+emit_32(3265019904);
+emit_32(1112219661);
+emit_32(1110825343);
+emit_32(3265019904);
+emit_32(1113243648);
+emit_32(1110299718);
+emit_32(3265019904);
+emit_32(1114267661);
+emit_32(1109951067);
+emit_32(3265019904);
+emit_32(1115291648);
+emit_32(1109657859);
+emit_32(3265019904);
+emit_32(1116000263);
+emit_32(1109104185);
+emit_32(3265019904);
+emit_32(1116512256);
+emit_32(1108869644);
+emit_32(3265019904);
+emit_32(1117024263);
+emit_32(1108483296);
+emit_32(3265019904);
+emit_32(1117536256);
+emit_32(1108620057);
+emit_32(3265019904);
+emit_32(1118048263);
+emit_32(1108696603);
+emit_32(3265019904);
+emit_32(1118560256);
+emit_32(1109027874);
+emit_32(3265019904);
+emit_32(1119072263);
+emit_32(1109328580);
+emit_32(3265019904);
+emit_32(1119584256);
+emit_32(1109485499);
+emit_32(3265019904);
+emit_32(1120096263);
+emit_32(1109574785);
+emit_32(3265019904);
+emit_32(1120608322);
+emit_32(1109596203);
+emit_32(3265019904);
+emit_32(1121120289);
+emit_32(1109472235);
+emit_32(3265019904);
+emit_32(1121632256);
+emit_32(1109210510);
+emit_32(3265019904);
+emit_32(1122144223);
+emit_32(1109167152);
+emit_32(3265019904);
+emit_32(1122656322);
+emit_32(1109362999);
+emit_32(3265019904);
+emit_32(1123168289);
+emit_32(1109542149);
+emit_32(3265019904);
+emit_32(1123680256);
+emit_32(1109608156);
+emit_32(3265019904);
+emit_32(1124132848);
+emit_32(1109889647);
+emit_32(3265019904);
+emit_32(1124388897);
+emit_32(1110013300);
+emit_32(3265019904);
+emit_32(1124644880);
+emit_32(1109719908);
+emit_32(3265019904);
+emit_32(1124900864);
+emit_32(1109054299);
+emit_32(3265019904);
+emit_32(1125156848);
+emit_32(1108598561);
+emit_32(3265019904);
+emit_32(1125412897);
+emit_32(1108352696);
+emit_32(3265019904);
+emit_32(1125668880);
+emit_32(1107819128);
+emit_32(3265019904);
+emit_32(1125924864);
+emit_32(1107355868);
+emit_32(3265019904);
+emit_32(1126180848);
+emit_32(1106496193);
+emit_32(3265019904);
+emit_32(1126436897);
+emit_32(1105447564);
+emit_32(3265019904);
+emit_32(1126692880);
+emit_32(1104791208);
+emit_32(3265019904);
+emit_32(1126948864);
+emit_32(1104514122);
+emit_32(3265019904);
+emit_32(1127204848);
+emit_32(1103658956);
+emit_32(3265019904);
+emit_32(1127460897);
+emit_32(1103186887);
+emit_32(3265019904);
+emit_32(1127716880);
+emit_32(1103111179);
+emit_32(3265019904);
+emit_32(1127972864);
+emit_32(1103121823);
+emit_32(3265019904);
+emit_32(1128228848);
+emit_32(1102278872);
+emit_32(3265019904);
+emit_32(1128484897);
+emit_32(1100851603);
+emit_32(3265019904);
+emit_32(1128740880);
+emit_32(1099479699);
+emit_32(3265019904);
+emit_32(1128996864);
+emit_32(1097632580);
+emit_32(3265019904);
+emit_32(1129252848);
+emit_32(1094591185);
+emit_32(3265019904);
+emit_32(1129508897);
+emit_32(1091931629);
+emit_32(3265019904);
+emit_32(1129764880);
+emit_32(1088905806);
+emit_32(3265019904);
+emit_32(1130020864);
+emit_32(1090343655);
+emit_32(3265019904);
+emit_32(1130276848);
+emit_32(1091249918);
+emit_32(3265019904);
+emit_32(1130532897);
+emit_32(1091107417);
+emit_32(3265019904);
+emit_32(1130788880);
+emit_32(1092474068);
+emit_32(3265019904);
+emit_32(1131044864);
+emit_32(1091844765);
+emit_32(3265019904);
+emit_32(1131300848);
+emit_32(1091016830);
+emit_32(3265019904);
+emit_32(1131556897);
+emit_32(1090180560);
+emit_32(3265019904);
+emit_32(1131812880);
+emit_32(1090146502);
+emit_32(3265019904);
+emit_32(1132068864);
+emit_32(1091238625);
+emit_32(3265019904);
+emit_32(1081737216);
+emit_32(1112525767);
+emit_32(3265531911);
+emit_32(1090125824);
+emit_32(1112045230);
+emit_32(3265531911);
+emit_32(1094418484);
+emit_32(1111728246);
+emit_32(3265531911);
+emit_32(1098514432);
+emit_32(1111134490);
+emit_32(3265531911);
+emit_32(1100759066);
+emit_32(1110592061);
+emit_32(3265531911);
+emit_32(1102807040);
+emit_32(1110293873);
+emit_32(3265531911);
+emit_32(1104855066);
+emit_32(1110356761);
+emit_32(3265531911);
+emit_32(1106903040);
+emit_32(1110662159);
+emit_32(3265531911);
+emit_32(1108123661);
+emit_32(1110710760);
+emit_32(3265531911);
+emit_32(1109147648);
+emit_32(1110634267);
+emit_32(3265531911);
+emit_32(1110171661);
+emit_32(1110559556);
+emit_32(3265531911);
+emit_32(1111195648);
+emit_32(1110659144);
+emit_32(3265531911);
+emit_32(1112219661);
+emit_32(1110325251);
+emit_32(3265531911);
+emit_32(1113243648);
+emit_32(1109714954);
+emit_32(3265531911);
+emit_32(1114267661);
+emit_32(1109517035);
+emit_32(3265531911);
+emit_32(1115291648);
+emit_32(1108983441);
+emit_32(3265531911);
+emit_32(1116000263);
+emit_32(1108437998);
+emit_32(3265531911);
+emit_32(1116512256);
+emit_32(1108232687);
+emit_32(3265531911);
+emit_32(1117024263);
+emit_32(1108084497);
+emit_32(3265531911);
+emit_32(1117536256);
+emit_32(1108299979);
+emit_32(3265531911);
+emit_32(1118048263);
+emit_32(1108631434);
+emit_32(3265531911);
+emit_32(1118560256);
+emit_32(1108895544);
+emit_32(3265531911);
+emit_32(1119072263);
+emit_32(1109120306);
+emit_32(3265531911);
+emit_32(1119584256);
+emit_32(1109413095);
+emit_32(3265531911);
+emit_32(1120096263);
+emit_32(1109497977);
+emit_32(3265531911);
+emit_32(1120608322);
+emit_32(1109458603);
+emit_32(3265531911);
+emit_32(1121120289);
+emit_32(1109373328);
+emit_32(3265531911);
+emit_32(1121632256);
+emit_32(1109400669);
+emit_32(3265531911);
+emit_32(1122144223);
+emit_32(1109567655);
+emit_32(3265531911);
+emit_32(1122656322);
+emit_32(1109574287);
+emit_32(3265531911);
+emit_32(1123168289);
+emit_32(1109599375);
+emit_32(3265531911);
+emit_32(1123680256);
+emit_32(1109804660);
+emit_32(3265531911);
+emit_32(1124132848);
+emit_32(1109874704);
+emit_32(3265531911);
+emit_32(1124388897);
+emit_32(1109814254);
+emit_32(3265531911);
+emit_32(1124644880);
+emit_32(1109294763);
+emit_32(3265531911);
+emit_32(1124900864);
+emit_32(1109046460);
+emit_32(3265531911);
+emit_32(1125156848);
+emit_32(1108605901);
+emit_32(3265531911);
+emit_32(1125412897);
+emit_32(1108298039);
+emit_32(3265531911);
+emit_32(1125668880);
+emit_32(1108029997);
+emit_32(3265531911);
+emit_32(1125924864);
+emit_32(1107621262);
+emit_32(3265531911);
+emit_32(1126180848);
+emit_32(1106659980);
+emit_32(3265531911);
+emit_32(1126436897);
+emit_32(1105554362);
+emit_32(3265531911);
+emit_32(1126692880);
+emit_32(1104494356);
+emit_32(3265531911);
+emit_32(1126948864);
+emit_32(1104060455);
+emit_32(3265531911);
+emit_32(1127204848);
+emit_32(1103517817);
+emit_32(3265531911);
+emit_32(1127460897);
+emit_32(1102225500);
+emit_32(3265531911);
+emit_32(1127716880);
+emit_32(1102665010);
+emit_32(3265531911);
+emit_32(1127972864);
+emit_32(1102667894);
+emit_32(3265531911);
+emit_32(1128228848);
+emit_32(1101705144);
+emit_32(3265531911);
+emit_32(1128484897);
+emit_32(1100387503);
+emit_32(3265531911);
+emit_32(1128740880);
+emit_32(1099194486);
+emit_32(3265531911);
+emit_32(1128996864);
+emit_32(1097299866);
+emit_32(3265531911);
+emit_32(1129252848);
+emit_32(1093825515);
+emit_32(3265531911);
+emit_32(1129508897);
+emit_32(1090816720);
+emit_32(3265531911);
+emit_32(1129764880);
+emit_32(1090544321);
+emit_32(3265531911);
+emit_32(1130020864);
+emit_32(1090558718);
+emit_32(3265531911);
+emit_32(1130276848);
+emit_32(1090808845);
+emit_32(3265531911);
+emit_32(1130532897);
+emit_32(1090674481);
+emit_32(3265531911);
+emit_32(1130788880);
+emit_32(1090993898);
+emit_32(3265531911);
+emit_32(1131044864);
+emit_32(1090749297);
+emit_32(3265531911);
+emit_32(1131300848);
+emit_32(1090783533);
+emit_32(3265531911);
+emit_32(1131556897);
+emit_32(1089829685);
+emit_32(3265531911);
+emit_32(1131812880);
+emit_32(1090562483);
+emit_32(3265531911);
+emit_32(1132068864);
+emit_32(1091169052);
+emit_32(3265531911);
+emit_32(1081737216);
+emit_32(1112016683);
+emit_32(3266043904);
+emit_32(1090125824);
+emit_32(1111610963);
+emit_32(3266043904);
+emit_32(1094418484);
+emit_32(1110972380);
+emit_32(3266043904);
+emit_32(1098514432);
+emit_32(1110456559);
+emit_32(3266043904);
+emit_32(1100759066);
+emit_32(1110004833);
+emit_32(3266043904);
+emit_32(1102807040);
+emit_32(1109891010);
+emit_32(3266043904);
+emit_32(1104855066);
+emit_32(1110020745);
+emit_32(3266043904);
+emit_32(1106903040);
+emit_32(1110210065);
+emit_32(3266043904);
+emit_32(1108123661);
+emit_32(1110213526);
+emit_32(3266043904);
+emit_32(1109147648);
+emit_32(1110290465);
+emit_32(3266043904);
+emit_32(1110171661);
+emit_32(1110321843);
+emit_32(3266043904);
+emit_32(1111195648);
+emit_32(1109977832);
+emit_32(3266043904);
+emit_32(1112219661);
+emit_32(1109631120);
+emit_32(3266043904);
+emit_32(1113243648);
+emit_32(1109240762);
+emit_32(3266043904);
+emit_32(1114267661);
+emit_32(1108674478);
+emit_32(3266043904);
+emit_32(1115291648);
+emit_32(1108141775);
+emit_32(3266043904);
+emit_32(1116000263);
+emit_32(1107789637);
+emit_32(3266043904);
+emit_32(1116512256);
+emit_32(1107598534);
+emit_32(3266043904);
+emit_32(1117024263);
+emit_32(1107892555);
+emit_32(3266043904);
+emit_32(1117536256);
+emit_32(1108239712);
+emit_32(3266043904);
+emit_32(1118048263);
+emit_32(1108608811);
+emit_32(3266043904);
+emit_32(1118560256);
+emit_32(1108738520);
+emit_32(3266043904);
+emit_32(1119072263);
+emit_32(1108905191);
+emit_32(3266043904);
+emit_32(1119584256);
+emit_32(1109116820);
+emit_32(3266043904);
+emit_32(1120096263);
+emit_32(1109110843);
+emit_32(3266043904);
+emit_32(1120608322);
+emit_32(1109093384);
+emit_32(3266043904);
+emit_32(1121120289);
+emit_32(1109277331);
+emit_32(3266043904);
+emit_32(1121632256);
+emit_32(1109425678);
+emit_32(3266043904);
+emit_32(1122144223);
+emit_32(1109587814);
+emit_32(3266043904);
+emit_32(1122656322);
+emit_32(1109495330);
+emit_32(3266043904);
+emit_32(1123168289);
+emit_32(1109569438);
+emit_32(3266043904);
+emit_32(1123680256);
+emit_32(1109583358);
+emit_32(3266043904);
+emit_32(1124132848);
+emit_32(1109553945);
+emit_32(3266043904);
+emit_32(1124388897);
+emit_32(1109310833);
+emit_32(3266043904);
+emit_32(1124644880);
+emit_32(1109184820);
+emit_32(3266043904);
+emit_32(1124900864);
+emit_32(1108916725);
+emit_32(3266043904);
+emit_32(1125156848);
+emit_32(1108501594);
+emit_32(3266043904);
+emit_32(1125412897);
+emit_32(1108421037);
+emit_32(3266043904);
+emit_32(1125668880);
+emit_32(1108052070);
+emit_32(3266043904);
+emit_32(1125924864);
+emit_32(1107663887);
+emit_32(3266043904);
+emit_32(1126180848);
+emit_32(1106901100);
+emit_32(3266043904);
+emit_32(1126436897);
+emit_32(1105810896);
+emit_32(3266043904);
+emit_32(1126692880);
+emit_32(1104533153);
+emit_32(3266043904);
+emit_32(1126948864);
+emit_32(1103280577);
+emit_32(3266043904);
+emit_32(1127204848);
+emit_32(1102832153);
+emit_32(3266043904);
+emit_32(1127460897);
+emit_32(1101711226);
+emit_32(3266043904);
+emit_32(1127716880);
+emit_32(1101683910);
+emit_32(3266043904);
+emit_32(1127972864);
+emit_32(1101916956);
+emit_32(3266043904);
+emit_32(1128228848);
+emit_32(1101225945);
+emit_32(3266043904);
+emit_32(1128484897);
+emit_32(1099926497);
+emit_32(3266043904);
+emit_32(1128740880);
+emit_32(1098187591);
+emit_32(3266043904);
+emit_32(1128996864);
+emit_32(1095823367);
+emit_32(3266043904);
+emit_32(1129252848);
+emit_32(1091829718);
+emit_32(3266043904);
+emit_32(1129508897);
+emit_32(1088807932);
+emit_32(3266043904);
+emit_32(1129764880);
+emit_32(1089675104);
+emit_32(3266043904);
+emit_32(1130020864);
+emit_32(1090567704);
+emit_32(3266043904);
+emit_32(1130276848);
+emit_32(1090536174);
+emit_32(3266043904);
+emit_32(1130532897);
+emit_32(1090414497);
+emit_32(3266043904);
+emit_32(1130788880);
+emit_32(1090232632);
+emit_32(3266043904);
+emit_32(1131044864);
+emit_32(1086780888);
+emit_32(3266043904);
+emit_32(1131300848);
+emit_32(1089263098);
+emit_32(3266043904);
+emit_32(1131556897);
+emit_32(1089690267);
+emit_32(3266043904);
+emit_32(1131812880);
+emit_32(1087942248);
+emit_32(3266043904);
+emit_32(1132068864);
+emit_32(1090262202);
+emit_32(3266043904);
+emit_32(1081737216);
+emit_32(1111401326);
+emit_32(3266555911);
+emit_32(1090125824);
+emit_32(1110943623);
+emit_32(3266555911);
+emit_32(1094418484);
+emit_32(1110454960);
+emit_32(3266555911);
+emit_32(1098514432);
+emit_32(1110052097);
+emit_32(3266555911);
+emit_32(1100759066);
+emit_32(1109812734);
+emit_32(3266555911);
+emit_32(1102807040);
+emit_32(1109724706);
+emit_32(3266555911);
+emit_32(1104855066);
+emit_32(1109725597);
+emit_32(3266555911);
+emit_32(1106903040);
+emit_32(1109797162);
+emit_32(3266555911);
+emit_32(1108123661);
+emit_32(1110063972);
+emit_32(3266555911);
+emit_32(1109147648);
+emit_32(1110046147);
+emit_32(3266555911);
+emit_32(1110171661);
+emit_32(1109992119);
+emit_32(3266555911);
+emit_32(1111195648);
+emit_32(1109639850);
+emit_32(3266555911);
+emit_32(1112219661);
+emit_32(1109061691);
+emit_32(3266555911);
+emit_32(1113243648);
+emit_32(1108508410);
+emit_32(3266555911);
+emit_32(1114267661);
+emit_32(1108134540);
+emit_32(3266555911);
+emit_32(1115291648);
+emit_32(1108063604);
+emit_32(3266555911);
+emit_32(1116000263);
+emit_32(1107530351);
+emit_32(3266555911);
+emit_32(1116512256);
+emit_32(1107403761);
+emit_32(3266555911);
+emit_32(1117024263);
+emit_32(1107815668);
+emit_32(3266555911);
+emit_32(1117536256);
+emit_32(1108314030);
+emit_32(3266555911);
+emit_32(1118048263);
+emit_32(1108639613);
+emit_32(3266555911);
+emit_32(1118560256);
+emit_32(1108710628);
+emit_32(3266555911);
+emit_32(1119072263);
+emit_32(1108872213);
+emit_32(3266555911);
+emit_32(1119584256);
+emit_32(1108749215);
+emit_32(3266555911);
+emit_32(1120096263);
+emit_32(1108889462);
+emit_32(3266555911);
+emit_32(1120608322);
+emit_32(1108863484);
+emit_32(3266555911);
+emit_32(1121120289);
+emit_32(1109036604);
+emit_32(3266555911);
+emit_32(1121632256);
+emit_32(1109205713);
+emit_32(3266555911);
+emit_32(1122144223);
+emit_32(1109394116);
+emit_32(3266555911);
+emit_32(1122656322);
+emit_32(1109718781);
+emit_32(3266555911);
+emit_32(1123168289);
+emit_32(1109715871);
+emit_32(3266555911);
+emit_32(1123680256);
+emit_32(1109592926);
+emit_32(3266555911);
+emit_32(1124132848);
+emit_32(1109325932);
+emit_32(3266555911);
+emit_32(1124388897);
+emit_32(1109167623);
+emit_32(3266555911);
+emit_32(1124644880);
+emit_32(1108999930);
+emit_32(3266555911);
+emit_32(1124900864);
+emit_32(1108794147);
+emit_32(3266555911);
+emit_32(1125156848);
+emit_32(1108512054);
+emit_32(3266555911);
+emit_32(1125412897);
+emit_32(1108376184);
+emit_32(3266555911);
+emit_32(1125668880);
+emit_32(1108266215);
+emit_32(3266555911);
+emit_32(1125924864);
+emit_32(1107795326);
+emit_32(3266555911);
+emit_32(1126180848);
+emit_32(1107314763);
+emit_32(3266555911);
+emit_32(1126436897);
+emit_32(1106114511);
+emit_32(3266555911);
+emit_32(1126692880);
+emit_32(1104385514);
+emit_32(3266555911);
+emit_32(1126948864);
+emit_32(1102999506);
+emit_32(3266555911);
+emit_32(1127204848);
+emit_32(1102036337);
+emit_32(3266555911);
+emit_32(1127460897);
+emit_32(1101372378);
+emit_32(3266555911);
+emit_32(1127716880);
+emit_32(1101356021);
+emit_32(3266555911);
+emit_32(1127972864);
+emit_32(1101083863);
+emit_32(3266555911);
+emit_32(1128228848);
+emit_32(1099864211);
+emit_32(3266555911);
+emit_32(1128484897);
+emit_32(1099053662);
+emit_32(3266555911);
+emit_32(1128740880);
+emit_32(1096243846);
+emit_32(3266555911);
+emit_32(1128996864);
+emit_32(1092140631);
+emit_32(3266555911);
+emit_32(1129252848);
+emit_32(1086381925);
+emit_32(3266555911);
+emit_32(1129508897);
+emit_32(1086092015);
+emit_32(3266555911);
+emit_32(1129764880);
+emit_32(1087322309);
+emit_32(3266555911);
+emit_32(1130020864);
+emit_32(1086744250);
+emit_32(3266555911);
+emit_32(1130276848);
+emit_32(1086502784);
+emit_32(3266555911);
+emit_32(1130532897);
+emit_32(1088099933);
+emit_32(3266555911);
+emit_32(1130788880);
+emit_32(1087042801);
+emit_32(3266555911);
+emit_32(1131044864);
+emit_32(1085944166);
+emit_32(3266555911);
+emit_32(1131300848);
+emit_32(1086098348);
+emit_32(3266555911);
+emit_32(1131556897);
+emit_32(1088087979);
+emit_32(3266555911);
+emit_32(1131812880);
+emit_32(1087004759);
+emit_32(3266555911);
+emit_32(1132068864);
+emit_32(1086940628);
+emit_32(3266555911);
+emit_32(1081737216);
+emit_32(1110813757);
+emit_32(3267067904);
+emit_32(1090125824);
+emit_32(1110590462);
+emit_32(3267067904);
+emit_32(1094418484);
+emit_32(1110447410);
+emit_32(3267067904);
+emit_32(1098514432);
+emit_32(1109984621);
+emit_32(3267067904);
+emit_32(1100759066);
+emit_32(1109628053);
+emit_32(3267067904);
+emit_32(1102807040);
+emit_32(1109594341);
+emit_32(3267067904);
+emit_32(1104855066);
+emit_32(1109544298);
+emit_32(3267067904);
+emit_32(1106903040);
+emit_32(1109733881);
+emit_32(3267067904);
+emit_32(1108123661);
+emit_32(1109573291);
+emit_32(3267067904);
+emit_32(1109147648);
+emit_32(1109550878);
+emit_32(3267067904);
+emit_32(1110171661);
+emit_32(1109270961);
+emit_32(3267067904);
+emit_32(1111195648);
+emit_32(1108931091);
+emit_32(3267067904);
+emit_32(1112219661);
+emit_32(1108382633);
+emit_32(3267067904);
+emit_32(1113243648);
+emit_32(1108013298);
+emit_32(3267067904);
+emit_32(1114267661);
+emit_32(1107931011);
+emit_32(3267067904);
+emit_32(1115291648);
+emit_32(1107808171);
+emit_32(3267067904);
+emit_32(1116000263);
+emit_32(1107425519);
+emit_32(3267067904);
+emit_32(1116512256);
+emit_32(1107431129);
+emit_32(3267067904);
+emit_32(1117024263);
+emit_32(1107661423);
+emit_32(3267067904);
+emit_32(1117536256);
+emit_32(1108073723);
+emit_32(3267067904);
+emit_32(1118048263);
+emit_32(1108439492);
+emit_32(3267067904);
+emit_32(1118560256);
+emit_32(1108755874);
+emit_32(3267067904);
+emit_32(1119072263);
+emit_32(1108610122);
+emit_32(3267067904);
+emit_32(1119584256);
+emit_32(1108774538);
+emit_32(3267067904);
+emit_32(1120096263);
+emit_32(1108983703);
+emit_32(3267067904);
+emit_32(1120608322);
+emit_32(1108966611);
+emit_32(3267067904);
+emit_32(1121120289);
+emit_32(1109162171);
+emit_32(3267067904);
+emit_32(1121632256);
+emit_32(1109004596);
+emit_32(3267067904);
+emit_32(1122144223);
+emit_32(1109403972);
+emit_32(3267067904);
+emit_32(1122656322);
+emit_32(1109453098);
+emit_32(3267067904);
+emit_32(1123168289);
+emit_32(1109628944);
+emit_32(3267067904);
+emit_32(1123680256);
+emit_32(1109442953);
+emit_32(3267067904);
+emit_32(1124132848);
+emit_32(1109378597);
+emit_32(3267067904);
+emit_32(1124388897);
+emit_32(1109310151);
+emit_32(3267067904);
+emit_32(1124644880);
+emit_32(1109090370);
+emit_32(3267067904);
+emit_32(1124900864);
+emit_32(1108727012);
+emit_32(3267067904);
+emit_32(1125156848);
+emit_32(1108564378);
+emit_32(3267067904);
+emit_32(1125412897);
+emit_32(1108413016);
+emit_32(3267067904);
+emit_32(1125668880);
+emit_32(1108252662);
+emit_32(3267067904);
+emit_32(1125924864);
+emit_32(1107867468);
+emit_32(3267067904);
+emit_32(1126180848);
+emit_32(1107313322);
+emit_32(3267067904);
+emit_32(1126436897);
+emit_32(1105536274);
+emit_32(3267067904);
+emit_32(1126692880);
+emit_32(1103691199);
+emit_32(3267067904);
+emit_32(1126948864);
+emit_32(1102287156);
+emit_32(3267067904);
+emit_32(1127204848);
+emit_32(1100758437);
+emit_32(3267067904);
+emit_32(1127460897);
+emit_32(1100185390);
+emit_32(3267067904);
+emit_32(1127716880);
+emit_32(1100274781);
+emit_32(3267067904);
+emit_32(1127972864);
+emit_32(1099687789);
+emit_32(3267067904);
+emit_32(1128228848);
+emit_32(1098027264);
+emit_32(3267067904);
+emit_32(1128484897);
+emit_32(1095782577);
+emit_32(3267067904);
+emit_32(1128740880);
+emit_32(1092060656);
+emit_32(3267067904);
+emit_32(1128996864);
+emit_32(1085479584);
+emit_32(3267067904);
+emit_32(1129252848);
+emit_32(1080427922);
+emit_32(3267067904);
+emit_32(1129508897);
+emit_32(1082737893);
+emit_32(3267067904);
+emit_32(1129764880);
+emit_32(1082587842);
+emit_32(3267067904);
+emit_32(1130020864);
+emit_32(1082372569);
+emit_32(3267067904);
+emit_32(1130276848);
+emit_32(1085083537);
+emit_32(3267067904);
+emit_32(1130532897);
+emit_32(1085407211);
+emit_32(3267067904);
+emit_32(1130788880);
+emit_32(1084963160);
+emit_32(3267067904);
+emit_32(1131044864);
+emit_32(1084737318);
+emit_32(3267067904);
+emit_32(1131300848);
+emit_32(1083924504);
+emit_32(3267067904);
+emit_32(1131556897);
+emit_32(1084286829);
+emit_32(3267067904);
+emit_32(1131812880);
+emit_32(1084905342);
+emit_32(3267067904);
+emit_32(1132068864);
+emit_32(1085475641);
+emit_32(3267067904);
+emit_32(1081737216);
+emit_32(1110694612);
+emit_32(3267579911);
+emit_32(1090125824);
+emit_32(1110646797);
+emit_32(3267579911);
+emit_32(1094418484);
+emit_32(1110299640);
+emit_32(3267579911);
+emit_32(1098514432);
+emit_32(1110057393);
+emit_32(3267579911);
+emit_32(1100759066);
+emit_32(1109526053);
+emit_32(3267579911);
+emit_32(1102807040);
+emit_32(1109344807);
+emit_32(3267579911);
+emit_32(1104855066);
+emit_32(1109452259);
+emit_32(3267579911);
+emit_32(1106903040);
+emit_32(1109261550);
+emit_32(3267579911);
+emit_32(1108123661);
+emit_32(1109082820);
+emit_32(3267579911);
+emit_32(1109147648);
+emit_32(1108958406);
+emit_32(3267579911);
+emit_32(1110171661);
+emit_32(1108756398);
+emit_32(3267579911);
+emit_32(1111195648);
+emit_32(1108426831);
+emit_32(3267579911);
+emit_32(1112219661);
+emit_32(1107880234);
+emit_32(3267579911);
+emit_32(1113243648);
+emit_32(1107647398);
+emit_32(3267579911);
+emit_32(1114267661);
+emit_32(1107551060);
+emit_32(3267579911);
+emit_32(1115291648);
+emit_32(1107461800);
+emit_32(3267579911);
+emit_32(1116000263);
+emit_32(1107421980);
+emit_32(3267579911);
+emit_32(1116512256);
+emit_32(1107111287);
+emit_32(3267579911);
+emit_32(1117024263);
+emit_32(1107355396);
+emit_32(3267579911);
+emit_32(1117536256);
+emit_32(1107770029);
+emit_32(3267579911);
+emit_32(1118048263);
+emit_32(1108281682);
+emit_32(3267579911);
+emit_32(1118560256);
+emit_32(1108475930);
+emit_32(3267579911);
+emit_32(1119072263);
+emit_32(1108583724);
+emit_32(3267579911);
+emit_32(1119584256);
+emit_32(1108787908);
+emit_32(3267579911);
+emit_32(1120096263);
+emit_32(1108859761);
+emit_32(3267579911);
+emit_32(1120608322);
+emit_32(1109119625);
+emit_32(3267579911);
+emit_32(1121120289);
+emit_32(1109310125);
+emit_32(3267579911);
+emit_32(1121632256);
+emit_32(1109129088);
+emit_32(3267579911);
+emit_32(1122144223);
+emit_32(1109416267);
+emit_32(3267579911);
+emit_32(1122656322);
+emit_32(1109508751);
+emit_32(3267579911);
+emit_32(1123168289);
+emit_32(1109311540);
+emit_32(3267579911);
+emit_32(1123680256);
+emit_32(1109131552);
+emit_32(3267579911);
+emit_32(1124132848);
+emit_32(1109360247);
+emit_32(3267579911);
+emit_32(1124388897);
+emit_32(1109275522);
+emit_32(3267579911);
+emit_32(1124644880);
+emit_32(1108801749);
+emit_32(3267579911);
+emit_32(1124900864);
+emit_32(1108467804);
+emit_32(3267579911);
+emit_32(1125156848);
+emit_32(1108391100);
+emit_32(3267579911);
+emit_32(1125412897);
+emit_32(1108331096);
+emit_32(3267579911);
+emit_32(1125668880);
+emit_32(1108112599);
+emit_32(3267579911);
+emit_32(1125924864);
+emit_32(1107624355);
+emit_32(3267579911);
+emit_32(1126180848);
+emit_32(1106590564);
+emit_32(3267579911);
+emit_32(1126436897);
+emit_32(1104796346);
+emit_32(3267579911);
+emit_32(1126692880);
+emit_32(1102786068);
+emit_32(3267579911);
+emit_32(1126948864);
+emit_32(1101357226);
+emit_32(3267579911);
+emit_32(1127204848);
+emit_32(1100162793);
+emit_32(3267579911);
+emit_32(1127460897);
+emit_32(1099771412);
+emit_32(3267579911);
+emit_32(1127716880);
+emit_32(1098962017);
+emit_32(3267579911);
+emit_32(1127972864);
+emit_32(1097608462);
+emit_32(3267579911);
+emit_32(1128228848);
+emit_32(1094970874);
+emit_32(3267579911);
+emit_32(1128484897);
+emit_32(1092021933);
+emit_32(3267579911);
+emit_32(1128740880);
+emit_32(1088236919);
+emit_32(3267579911);
+emit_32(1128996864);
+emit_32(1082682696);
+emit_32(3267579911);
+emit_32(1129252848);
+emit_32(1079924773);
+emit_32(3267579911);
+emit_32(1129508897);
+emit_32(1081076487);
+emit_32(3267579911);
+emit_32(1129764880);
+emit_32(1081136801);
+emit_32(3267579911);
+emit_32(1130020864);
+emit_32(1081313088);
+emit_32(3267579911);
+emit_32(1130276848);
+emit_32(1082622067);
+emit_32(3267579911);
+emit_32(1130532897);
+emit_32(1080914755);
+emit_32(3267579911);
+emit_32(1130788880);
+emit_32(1081174131);
+emit_32(3267579911);
+emit_32(1131044864);
+emit_32(1081307258);
+emit_32(3267579911);
+emit_32(1131300848);
+emit_32(1080904101);
+emit_32(3267579911);
+emit_32(1131556897);
+emit_32(1082632301);
+emit_32(3267579911);
+emit_32(1131812880);
+emit_32(1082980177);
+emit_32(3267579911);
+emit_32(1132068864);
+emit_32(1083203964);
+emit_32(3267579911);
+emit_32(1081737216);
+emit_32(1110581209);
+emit_32(3268091970);
+emit_32(1090125824);
+emit_32(1110551586);
+emit_32(3268091970);
+emit_32(1094418484);
+emit_32(1110307347);
+emit_32(3268091970);
+emit_32(1098514432);
+emit_32(1109985591);
+emit_32(3268091970);
+emit_32(1100759066);
+emit_32(1109670180);
+emit_32(3268091970);
+emit_32(1102807040);
+emit_32(1109393303);
+emit_32(3268091970);
+emit_32(1104855066);
+emit_32(1109233946);
+emit_32(3268091970);
+emit_32(1106903040);
+emit_32(1109280450);
+emit_32(3268091970);
+emit_32(1108123661);
+emit_32(1108630281);
+emit_32(3268091970);
+emit_32(1109147648);
+emit_32(1108457449);
+emit_32(3268091970);
+emit_32(1110171661);
+emit_32(1108487176);
+emit_32(3268091970);
+emit_32(1111195648);
+emit_32(1108197114);
+emit_32(3268091970);
+emit_32(1112219661);
+emit_32(1107653847);
+emit_32(3268091970);
+emit_32(1113243648);
+emit_32(1107312745);
+emit_32(3268091970);
+emit_32(1114267661);
+emit_32(1107342131);
+emit_32(3268091970);
+emit_32(1115291648);
+emit_32(1107499418);
+emit_32(3268091970);
+emit_32(1116000263);
+emit_32(1107104104);
+emit_32(3268091970);
+emit_32(1116512256);
+emit_32(1107322497);
+emit_32(3268091970);
+emit_32(1117024263);
+emit_32(1107451078);
+emit_32(3268091970);
+emit_32(1117536256);
+emit_32(1107597774);
+emit_32(3268091970);
+emit_32(1118048263);
+emit_32(1108134383);
+emit_32(3268091970);
+emit_32(1118560256);
+emit_32(1108348292);
+emit_32(3268091970);
+emit_32(1119072263);
+emit_32(1108697206);
+emit_32(3268091970);
+emit_32(1119584256);
+emit_32(1108767120);
+emit_32(3268091970);
+emit_32(1120096263);
+emit_32(1108911089);
+emit_32(3268091970);
+emit_32(1120608322);
+emit_32(1109333115);
+emit_32(3268091970);
+emit_32(1121120289);
+emit_32(1109311147);
+emit_32(3268091970);
+emit_32(1121632256);
+emit_32(1109257853);
+emit_32(3268091970);
+emit_32(1122144223);
+emit_32(1109429663);
+emit_32(3268091970);
+emit_32(1122656322);
+emit_32(1109626926);
+emit_32(3268091970);
+emit_32(1123168289);
+emit_32(1109223460);
+emit_32(3268091970);
+emit_32(1123680256);
+emit_32(1109113464);
+emit_32(3268091970);
+emit_32(1124132848);
+emit_32(1109197770);
+emit_32(3268091970);
+emit_32(1124388897);
+emit_32(1108996941);
+emit_32(3268091970);
+emit_32(1124644880);
+emit_32(1108521910);
+emit_32(3268091970);
+emit_32(1124900864);
+emit_32(1108156167);
+emit_32(3268091970);
+emit_32(1125156848);
+emit_32(1108312169);
+emit_32(3268091970);
+emit_32(1125412897);
+emit_32(1108417210);
+emit_32(3268091970);
+emit_32(1125668880);
+emit_32(1108025410);
+emit_32(3268091970);
+emit_32(1125924864);
+emit_32(1107366039);
+emit_32(3268091970);
+emit_32(1126180848);
+emit_32(1106152836);
+emit_32(3268091970);
+emit_32(1126436897);
+emit_32(1104094377);
+emit_32(3268091970);
+emit_32(1126692880);
+emit_32(1102342783);
+emit_32(3268091970);
+emit_32(1126948864);
+emit_32(1101171838);
+emit_32(3268091970);
+emit_32(1127204848);
+emit_32(1099584871);
+emit_32(3268091970);
+emit_32(1127460897);
+emit_32(1099343069);
+emit_32(3268091970);
+emit_32(1127716880);
+emit_32(1097562115);
+emit_32(3268091970);
+emit_32(1127972864);
+emit_32(1094777202);
+emit_32(3268091970);
+emit_32(1128228848);
+emit_32(1092522051);
+emit_32(3268091970);
+emit_32(1128484897);
+emit_32(1088883870);
+emit_32(3268091970);
+emit_32(1128740880);
+emit_32(1085242165);
+emit_32(3268091970);
+emit_32(1128996864);
+emit_32(1078093792);
+emit_32(3268091970);
+emit_32(1129252848);
+emit_32(1078026222);
+emit_32(3268091970);
+emit_32(1129508897);
+emit_32(1077460788);
+emit_32(3268091970);
+emit_32(1129764880);
+emit_32(1078305017);
+emit_32(3268091970);
+emit_32(1130020864);
+emit_32(1079773820);
+emit_32(3268091970);
+emit_32(1130276848);
+emit_32(1080393613);
+emit_32(3268091970);
+emit_32(1130532897);
+emit_32(1078685021);
+emit_32(3268091970);
+emit_32(1130788880);
+emit_32(1075784911);
+emit_32(3268091970);
+emit_32(1131044864);
+emit_32(1076529820);
+emit_32(3268091970);
+emit_32(1131300848);
+emit_32(1074011602);
+emit_32(3268091970);
+emit_32(1131556897);
+emit_32(1075826561);
+emit_32(3268091970);
+emit_32(1131812880);
+emit_32(1078155029);
+emit_32(3268091970);
+emit_32(1132068864);
+emit_32(1080836699);
+emit_32(3268091970);
+emit_32(1081737216);
+emit_32(1110663915);
+emit_32(3268603937);
+emit_32(1090125824);
+emit_32(1110523301);
+emit_32(3268603937);
+emit_32(1094418484);
+emit_32(1110414092);
+emit_32(3268603937);
+emit_32(1098514432);
+emit_32(1110239740);
+emit_32(3268603937);
+emit_32(1100759066);
+emit_32(1110111263);
+emit_32(3268603937);
+emit_32(1102807040);
+emit_32(1109732989);
+emit_32(3268603937);
+emit_32(1104855066);
+emit_32(1109257434);
+emit_32(3268603937);
+emit_32(1106903040);
+emit_32(1108986639);
+emit_32(3268603937);
+emit_32(1108123661);
+emit_32(1108299324);
+emit_32(3268603937);
+emit_32(1109147648);
+emit_32(1108108666);
+emit_32(3268603937);
+emit_32(1110171661);
+emit_32(1108133256);
+emit_32(3268603937);
+emit_32(1111195648);
+emit_32(1107900341);
+emit_32(3268603937);
+emit_32(1112219661);
+emit_32(1106990544);
+emit_32(3268603937);
+emit_32(1113243648);
+emit_32(1106677911);
+emit_32(3268603937);
+emit_32(1114267661);
+emit_32(1106924116);
+emit_32(3268603937);
+emit_32(1115291648);
+emit_32(1107371465);
+emit_32(3268603937);
+emit_32(1116000263);
+emit_32(1107430500);
+emit_32(3268603937);
+emit_32(1116512256);
+emit_32(1107498631);
+emit_32(3268603937);
+emit_32(1117024263);
+emit_32(1107438390);
+emit_32(3268603937);
+emit_32(1117536256);
+emit_32(1107833808);
+emit_32(3268603937);
+emit_32(1118048263);
+emit_32(1108210981);
+emit_32(3268603937);
+emit_32(1118560256);
+emit_32(1108542226);
+emit_32(3268603937);
+emit_32(1119072263);
+emit_32(1108787882);
+emit_32(3268603937);
+emit_32(1119584256);
+emit_32(1108829274);
+emit_32(3268603937);
+emit_32(1120096263);
+emit_32(1109124029);
+emit_32(3268603937);
+emit_32(1120608322);
+emit_32(1109412387);
+emit_32(3268603937);
+emit_32(1121120289);
+emit_32(1109324752);
+emit_32(3268603937);
+emit_32(1121632256);
+emit_32(1109233631);
+emit_32(3268603937);
+emit_32(1122144223);
+emit_32(1109356105);
+emit_32(3268603937);
+emit_32(1122656322);
+emit_32(1109523353);
+emit_32(3268603937);
+emit_32(1123168289);
+emit_32(1109276492);
+emit_32(3268603937);
+emit_32(1123680256);
+emit_32(1109141330);
+emit_32(3268603937);
+emit_32(1124132848);
+emit_32(1108924485);
+emit_32(3268603937);
+emit_32(1124388897);
+emit_32(1108532029);
+emit_32(3268603937);
+emit_32(1124644880);
+emit_32(1108013482);
+emit_32(3268603937);
+emit_32(1124900864);
+emit_32(1107879159);
+emit_32(3268603937);
+emit_32(1125156848);
+emit_32(1108192290);
+emit_32(3268603937);
+emit_32(1125412897);
+emit_32(1108199499);
+emit_32(3268603937);
+emit_32(1125668880);
+emit_32(1107673455);
+emit_32(3268603937);
+emit_32(1125924864);
+emit_32(1106232371);
+emit_32(3268603937);
+emit_32(1126180848);
+emit_32(1104800226);
+emit_32(3268603937);
+emit_32(1126436897);
+emit_32(1103280682);
+emit_32(3268603937);
+emit_32(1126692880);
+emit_32(1102286055);
+emit_32(3268603937);
+emit_32(1126948864);
+emit_32(1100759748);
+emit_32(3268603937);
+emit_32(1127204848);
+emit_32(1099429367);
+emit_32(3268603937);
+emit_32(1127460897);
+emit_32(1097617900);
+emit_32(3268603937);
+emit_32(1127716880);
+emit_32(1095952341);
+emit_32(3268603937);
+emit_32(1127972864);
+emit_32(1093005319);
+emit_32(3268603937);
+emit_32(1128228848);
+emit_32(1088642320);
+emit_32(3268603937);
+emit_32(1128484897);
+emit_32(1085144270);
+emit_32(3268603937);
+emit_32(1128740880);
+emit_32(1079423554);
+emit_32(3268603937);
+emit_32(1128996864);
+emit_32(1075473065);
+emit_32(3268603937);
+emit_32(1129252848);
+emit_32(1075224804);
+emit_32(3268603937);
+emit_32(1129508897);
+emit_32(1074942527);
+emit_32(3268603937);
+emit_32(1129764880);
+emit_32(1070517327);
+emit_32(3268603937);
+emit_32(1130020864);
+emit_32(1076303998);
+emit_32(3268603937);
+emit_32(1130276848);
+emit_32(1075194647);
+emit_32(3268603937);
+emit_32(1130532897);
+emit_32(1069302069);
+emit_32(3268603937);
+emit_32(1130788880);
+emit_32(1059149840);
+emit_32(3268603937);
+emit_32(1131044864);
+emit_32(1062802928);
+emit_32(3268603937);
+emit_32(1131300848);
+emit_32(1068305922);
+emit_32(3268603937);
+emit_32(1131556897);
+emit_32(1074623970);
+emit_32(3268603937);
+emit_32(1131812880);
+emit_32(1077991619);
+emit_32(3268603937);
+emit_32(1132068864);
+emit_32(1078469350);
+emit_32(3268603937);
+emit_32(1081737216);
+emit_32(1110808645);
+emit_32(3269115904);
+emit_32(1090125824);
+emit_32(1110606427);
+emit_32(3269115904);
+emit_32(1094418484);
+emit_32(1110590725);
+emit_32(3269115904);
+emit_32(1098514432);
+emit_32(1110520575);
+emit_32(3269115904);
+emit_32(1100759066);
+emit_32(1110320952);
+emit_32(3269115904);
+emit_32(1102807040);
+emit_32(1109925718);
+emit_32(3269115904);
+emit_32(1104855066);
+emit_32(1109578691);
+emit_32(3269115904);
+emit_32(1106903040);
+emit_32(1109301579);
+emit_32(3269115904);
+emit_32(1108123661);
+emit_32(1108401481);
+emit_32(3269115904);
+emit_32(1109147648);
+emit_32(1108050418);
+emit_32(3269115904);
+emit_32(1110171661);
+emit_32(1108134828);
+emit_32(3269115904);
+emit_32(1111195648);
+emit_32(1107813047);
+emit_32(3269115904);
+emit_32(1112219661);
+emit_32(1106770867);
+emit_32(3269115904);
+emit_32(1113243648);
+emit_32(1107263016);
+emit_32(3269115904);
+emit_32(1114267661);
+emit_32(1107073696);
+emit_32(3269115904);
+emit_32(1115291648);
+emit_32(1107071861);
+emit_32(3269115904);
+emit_32(1116000263);
+emit_32(1107575911);
+emit_32(3269115904);
+emit_32(1116512256);
+emit_32(1107727326);
+emit_32(3269115904);
+emit_32(1117024263);
+emit_32(1107439570);
+emit_32(3269115904);
+emit_32(1117536256);
+emit_32(1107890956);
+emit_32(3269115904);
+emit_32(1118048263);
+emit_32(1108361426);
+emit_32(3269115904);
+emit_32(1118560256);
+emit_32(1108752964);
+emit_32(3269115904);
+emit_32(1119072263);
+emit_32(1109015894);
+emit_32(3269115904);
+emit_32(1119584256);
+emit_32(1109044966);
+emit_32(3269115904);
+emit_32(1120096263);
+emit_32(1109198320);
+emit_32(3269115904);
+emit_32(1120608322);
+emit_32(1109370103);
+emit_32(3269115904);
+emit_32(1121120289);
+emit_32(1109373380);
+emit_32(3269115904);
+emit_32(1121632256);
+emit_32(1109279795);
+emit_32(3269115904);
+emit_32(1122144223);
+emit_32(1109433568);
+emit_32(3269115904);
+emit_32(1122656322);
+emit_32(1109623387);
+emit_32(3269115904);
+emit_32(1123168289);
+emit_32(1109428273);
+emit_32(3269115904);
+emit_32(1123680256);
+emit_32(1108960346);
+emit_32(3269115904);
+emit_32(1124132848);
+emit_32(1108585323);
+emit_32(3269115904);
+emit_32(1124388897);
+emit_32(1108055818);
+emit_32(3269115904);
+emit_32(1124644880);
+emit_32(1107534728);
+emit_32(3269115904);
+emit_32(1124900864);
+emit_32(1107471001);
+emit_32(3269115904);
+emit_32(1125156848);
+emit_32(1107590041);
+emit_32(3269115904);
+emit_32(1125412897);
+emit_32(1107454172);
+emit_32(3269115904);
+emit_32(1125668880);
+emit_32(1106832209);
+emit_32(3269115904);
+emit_32(1125924864);
+emit_32(1105088217);
+emit_32(3269115904);
+emit_32(1126180848);
+emit_32(1103608676);
+emit_32(3269115904);
+emit_32(1126436897);
+emit_32(1102467039);
+emit_32(3269115904);
+emit_32(1126692880);
+emit_32(1101262068);
+emit_32(3269115904);
+emit_32(1126948864);
+emit_32(1100082158);
+emit_32(3269115904);
+emit_32(1127204848);
+emit_32(1098845677);
+emit_32(3269115904);
+emit_32(1127460897);
+emit_32(1095460140);
+emit_32(3269115904);
+emit_32(1127716880);
+emit_32(1093620938);
+emit_32(3269115904);
+emit_32(1127972864);
+emit_32(1089412289);
+emit_32(3269115904);
+emit_32(1128228848);
+emit_32(1083970620);
+emit_32(3269115904);
+emit_32(1128484897);
+emit_32(1077038086);
+emit_32(3269115904);
+emit_32(1128740880);
+emit_32(1069835165);
+emit_32(3269115904);
+emit_32(1128996864);
+emit_32(1070535279);
+emit_32(3269115904);
+emit_32(1129252848);
+emit_32(1071829221);
+emit_32(3269115904);
+emit_32(1129508897);
+emit_32(1066648753);
+emit_32(3269115904);
+emit_32(1129764880);
+emit_32(1051679953);
+emit_32(3269115904);
+emit_32(1130020864);
+emit_32(1057135450);
+emit_32(3269115904);
+emit_32(1130276848);
+emit_32(1048743000);
+emit_32(3269115904);
+emit_32(1130532897);
+emit_32(3194534264);
+emit_32(3269115904);
+emit_32(1130788880);
+emit_32(3210162995);
+emit_32(3269115904);
+emit_32(1131044864);
+emit_32(3197138557);
+emit_32(3269115904);
+emit_32(1131300848);
+emit_32(1054446180);
+emit_32(3269115904);
+emit_32(1131556897);
+emit_32(1071525302);
+emit_32(3269115904);
+emit_32(1131812880);
+emit_32(1072082306);
+emit_32(3269115904);
+emit_32(1132068864);
+emit_32(1070395189);
+emit_32(3269115904);
+emit_32(1081737216);
+emit_32(1111356054);
+emit_32(3269627871);
+emit_32(1090125824);
+emit_32(1111049765);
+emit_32(3269627871);
+emit_32(1094418484);
+emit_32(1111095011);
+emit_32(3269627871);
+emit_32(1098514432);
+emit_32(1110769821);
+emit_32(3269627871);
+emit_32(1100759066);
+emit_32(1110387956);
+emit_32(3269627871);
+emit_32(1102807040);
+emit_32(1110076608);
+emit_32(3269627871);
+emit_32(1104855066);
+emit_32(1109830507);
+emit_32(3269627871);
+emit_32(1106903040);
+emit_32(1109267474);
+emit_32(3269627871);
+emit_32(1108123661);
+emit_32(1108522670);
+emit_32(3269627871);
+emit_32(1109147648);
+emit_32(1108306716);
+emit_32(3269627871);
+emit_32(1110171661);
+emit_32(1108152078);
+emit_32(3269627871);
+emit_32(1111195648);
+emit_32(1107581521);
+emit_32(3269627871);
+emit_32(1112219661);
+emit_32(1106841751);
+emit_32(3269627871);
+emit_32(1113243648);
+emit_32(1107248808);
+emit_32(3269627871);
+emit_32(1114267661);
+emit_32(1107071599);
+emit_32(3269627871);
+emit_32(1115291648);
+emit_32(1107391729);
+emit_32(3269627871);
+emit_32(1116000263);
+emit_32(1107625981);
+emit_32(3269627871);
+emit_32(1116512256);
+emit_32(1107606818);
+emit_32(3269627871);
+emit_32(1117024263);
+emit_32(1107732044);
+emit_32(3269627871);
+emit_32(1117536256);
+emit_32(1108255231);
+emit_32(3269627871);
+emit_32(1118048263);
+emit_32(1108554259);
+emit_32(3269627871);
+emit_32(1118560256);
+emit_32(1108867835);
+emit_32(3269627871);
+emit_32(1119072263);
+emit_32(1109054272);
+emit_32(3269627871);
+emit_32(1119584256);
+emit_32(1109386251);
+emit_32(3269627871);
+emit_32(1120096263);
+emit_32(1109299298);
+emit_32(3269627871);
+emit_32(1120608322);
+emit_32(1109427959);
+emit_32(3269627871);
+emit_32(1121120289);
+emit_32(1109424079);
+emit_32(3269627871);
+emit_32(1121632256);
+emit_32(1109411181);
+emit_32(3269627871);
+emit_32(1122144223);
+emit_32(1109433621);
+emit_32(3269627871);
+emit_32(1122656322);
+emit_32(1109598955);
+emit_32(3269627871);
+emit_32(1123168289);
+emit_32(1109218086);
+emit_32(3269627871);
+emit_32(1123680256);
+emit_32(1108916909);
+emit_32(3269627871);
+emit_32(1124132848);
+emit_32(1108631119);
+emit_32(3269627871);
+emit_32(1124388897);
+emit_32(1108074483);
+emit_32(3269627871);
+emit_32(1124644880);
+emit_32(1107470084);
+emit_32(3269627871);
+emit_32(1124900864);
+emit_32(1106751049);
+emit_32(3269627871);
+emit_32(1125156848);
+emit_32(1106805732);
+emit_32(3269627871);
+emit_32(1125412897);
+emit_32(1106063917);
+emit_32(3269627871);
+emit_32(1125668880);
+emit_32(1104941941);
+emit_32(3269627871);
+emit_32(1125924864);
+emit_32(1103592738);
+emit_32(3269627871);
+emit_32(1126180848);
+emit_32(1102378749);
+emit_32(3269627871);
+emit_32(1126436897);
+emit_32(1101064359);
+emit_32(3269627871);
+emit_32(1126692880);
+emit_32(1099948989);
+emit_32(3269627871);
+emit_32(1126948864);
+emit_32(1098973289);
+emit_32(3269627871);
+emit_32(1127204848);
+emit_32(1097124125);
+emit_32(3269627871);
+emit_32(1127460897);
+emit_32(1094111671);
+emit_32(3269627871);
+emit_32(1127716880);
+emit_32(1091103611);
+emit_32(3269627871);
+emit_32(1127972864);
+emit_32(1086368084);
+emit_32(3269627871);
+emit_32(1128228848);
+emit_32(1078725915);
+emit_32(3269627871);
+emit_32(1128484897);
+emit_32(1069950844);
+emit_32(3269627871);
+emit_32(1128740880);
+emit_32(1018630897);
+emit_32(3269627871);
+emit_32(1128996864);
+emit_32(3181731986);
+emit_32(3269627871);
+emit_32(1129252848);
+emit_32(3201792590);
+emit_32(3269627871);
+emit_32(1129508897);
+emit_32(3204973752);
+emit_32(3269627871);
+emit_32(1129764880);
+emit_32(3215721958);
+emit_32(3269627871);
+emit_32(1130020864);
+emit_32(3222414389);
+emit_32(3269627871);
+emit_32(1130276848);
+emit_32(3222253076);
+emit_32(3269627871);
+emit_32(1130532897);
+emit_32(3222187310);
+emit_32(3269627871);
+emit_32(1130788880);
+emit_32(3216801991);
+emit_32(3269627871);
+emit_32(1131044864);
+emit_32(3205181336);
+emit_32(3269627871);
+emit_32(1131300848);
+emit_32(3200822633);
+emit_32(3269627871);
+emit_32(1131556897);
+emit_32(3196733320);
+emit_32(3269627871);
+emit_32(1131812880);
+emit_32(3206975391);
+emit_32(3269627871);
+emit_32(1132068864);
+emit_32(1038377734);
+emit_32(3269627871);
+emit_32(1081737216);
+emit_32(1111592455);
+emit_32(3270139970);
+emit_32(1090125824);
+emit_32(1111491609);
+emit_32(3270139970);
+emit_32(1094418484);
+emit_32(1111194940);
+emit_32(3270139970);
+emit_32(1098514432);
+emit_32(1110835331);
+emit_32(3270139970);
+emit_32(1100759066);
+emit_32(1110275365);
+emit_32(3270139970);
+emit_32(1102807040);
+emit_32(1110005567);
+emit_32(3270139970);
+emit_32(1104855066);
+emit_32(1109696499);
+emit_32(3270139970);
+emit_32(1106903040);
+emit_32(1109176772);
+emit_32(3270139970);
+emit_32(1108123661);
+emit_32(1108885556);
+emit_32(3270139970);
+emit_32(1109147648);
+emit_32(1108468774);
+emit_32(3270139970);
+emit_32(1110171661);
+emit_32(1108030285);
+emit_32(3270139970);
+emit_32(1111195648);
+emit_32(1107430028);
+emit_32(3270139970);
+emit_32(1112219661);
+emit_32(1107103737);
+emit_32(3270139970);
+emit_32(1113243648);
+emit_32(1107092098);
+emit_32(3270139970);
+emit_32(1114267661);
+emit_32(1107375004);
+emit_32(3270139970);
+emit_32(1115291648);
+emit_32(1107478708);
+emit_32(3270139970);
+emit_32(1116000263);
+emit_32(1107657884);
+emit_32(3270139970);
+emit_32(1116512256);
+emit_32(1107812575);
+emit_32(3270139970);
+emit_32(1117024263);
+emit_32(1108062005);
+emit_32(3270139970);
+emit_32(1117536256);
+emit_32(1108546316);
+emit_32(3270139970);
+emit_32(1118048263);
+emit_32(1108808198);
+emit_32(3270139970);
+emit_32(1118560256);
+emit_32(1108821253);
+emit_32(3270139970);
+emit_32(1119072263);
+emit_32(1108944565);
+emit_32(3270139970);
+emit_32(1119584256);
+emit_32(1109292509);
+emit_32(3270139970);
+emit_32(1120096263);
+emit_32(1109325827);
+emit_32(3270139970);
+emit_32(1120608322);
+emit_32(1109645355);
+emit_32(3270139970);
+emit_32(1121120289);
+emit_32(1109627555);
+emit_32(3270139970);
+emit_32(1121632256);
+emit_32(1109566502);
+emit_32(3270139970);
+emit_32(1122144223);
+emit_32(1109470347);
+emit_32(3270139970);
+emit_32(1122656322);
+emit_32(1109358831);
+emit_32(3270139970);
+emit_32(1123168289);
+emit_32(1109156561);
+emit_32(3270139970);
+emit_32(1123680256);
+emit_32(1108641920);
+emit_32(3270139970);
+emit_32(1124132848);
+emit_32(1108219580);
+emit_32(3270139970);
+emit_32(1124388897);
+emit_32(1107796112);
+emit_32(3270139970);
+emit_32(1124644880);
+emit_32(1107364885);
+emit_32(3270139970);
+emit_32(1124900864);
+emit_32(1106177268);
+emit_32(3270139970);
+emit_32(1125156848);
+emit_32(1105288443);
+emit_32(3270139970);
+emit_32(1125412897);
+emit_32(1104753197);
+emit_32(3270139970);
+emit_32(1125668880);
+emit_32(1103375473);
+emit_32(3270139970);
+emit_32(1125924864);
+emit_32(1102075344);
+emit_32(3270139970);
+emit_32(1126180848);
+emit_32(1100964849);
+emit_32(3270139970);
+emit_32(1126436897);
+emit_32(1099792384);
+emit_32(3270139970);
+emit_32(1126692880);
+emit_32(1098450049);
+emit_32(3270139970);
+emit_32(1126948864);
+emit_32(1096338322);
+emit_32(3270139970);
+emit_32(1127204848);
+emit_32(1093954280);
+emit_32(3270139970);
+emit_32(1127460897);
+emit_32(1091524247);
+emit_32(3270139970);
+emit_32(1127716880);
+emit_32(1088518839);
+emit_32(3270139970);
+emit_32(1127972864);
+emit_32(1083884385);
+emit_32(3270139970);
+emit_32(1128228848);
+emit_32(1076931424);
+emit_32(3270139970);
+emit_32(1128484897);
+emit_32(1044557454);
+emit_32(3270139970);
+emit_32(1128740880);
+emit_32(3205427693);
+emit_32(3270139970);
+emit_32(1128996864);
+emit_32(3213113940);
+emit_32(3270139970);
+emit_32(1129252848);
+emit_32(3221962118);
+emit_32(3270139970);
+emit_32(1129508897);
+emit_32(3220483500);
+emit_32(3270139970);
+emit_32(1129764880);
+emit_32(3225420531);
+emit_32(3270139970);
+emit_32(1130020864);
+emit_32(3230173831);
+emit_32(3270139970);
+emit_32(1130276848);
+emit_32(3232043735);
+emit_32(3270139970);
+emit_32(1130532897);
+emit_32(3227363752);
+emit_32(3270139970);
+emit_32(1130788880);
+emit_32(3221899790);
+emit_32(3270139970);
+emit_32(1131044864);
+emit_32(3216845360);
+emit_32(3270139970);
+emit_32(1131300848);
+emit_32(3219415546);
+emit_32(3270139970);
+emit_32(1131556897);
+emit_32(3212863456);
+emit_32(3270139970);
+emit_32(1131812880);
+emit_32(3221056106);
+emit_32(3270139970);
+emit_32(1132068864);
+emit_32(3222457423);
+emit_32(3270139970);
+emit_start(Landscape04Vtx)
+emit_32(1081737216);
+emit_32(1100462372);
+emit_32(1123680256);
+emit_32(1081737216);
+emit_32(1101050728);
+emit_32(1124132848);
+emit_32(1090125824);
+emit_32(1101307000);
+emit_32(1123680256);
+emit_32(1090125824);
+emit_32(1101569144);
+emit_32(1124132848);
+emit_32(1094418484);
+emit_32(1101816870);
+emit_32(1123680256);
+emit_32(1094418484);
+emit_32(1101742788);
+emit_32(1124132848);
+emit_32(1098514432);
+emit_32(1102313580);
+emit_32(1123680256);
+emit_32(1098514432);
+emit_32(1102383625);
+emit_32(1124132848);
+emit_32(1100759066);
+emit_32(1102224504);
+emit_32(1123680256);
+emit_32(1100759066);
+emit_32(1102114927);
+emit_32(1124132848);
+emit_32(1102807040);
+emit_32(1101213834);
+emit_32(1123680256);
+emit_32(1102807040);
+emit_32(1101213309);
+emit_32(1124132848);
+emit_32(1104855066);
+emit_32(1100303408);
+emit_32(1123680256);
+emit_32(1104855066);
+emit_32(1100341209);
+emit_32(1124132848);
+emit_32(1106903040);
+emit_32(1099679610);
+emit_32(1123680256);
+emit_32(1106903040);
+emit_32(1099911345);
+emit_32(1124132848);
+emit_32(1108123661);
+emit_32(1099160984);
+emit_32(1123680256);
+emit_32(1108123661);
+emit_32(1099586129);
+emit_32(1124132848);
+emit_32(1109147648);
+emit_32(1098137259);
+emit_32(1123680256);
+emit_32(1109147648);
+emit_32(1099190030);
+emit_32(1124132848);
+emit_32(1110171661);
+emit_32(1097207906);
+emit_32(1123680256);
+emit_32(1110171661);
+emit_32(1098581751);
+emit_32(1124132848);
+emit_32(1111195648);
+emit_32(1096797074);
+emit_32(1123680256);
+emit_32(1111195648);
+emit_32(1097483053);
+emit_32(1124132848);
+emit_32(1112219661);
+emit_32(1097544709);
+emit_32(1123680256);
+emit_32(1112219661);
+emit_32(1097178022);
+emit_32(1124132848);
+emit_32(1113243648);
+emit_32(1097976408);
+emit_32(1123680256);
+emit_32(1113243648);
+emit_32(1096978688);
+emit_32(1124132848);
+emit_32(1114267661);
+emit_32(1097506541);
+emit_32(1123680256);
+emit_32(1114267661);
+emit_32(1097352610);
+emit_32(1124132848);
+emit_32(1115291648);
+emit_32(1097510945);
+emit_32(1123680256);
+emit_32(1115291648);
+emit_32(1097969906);
+emit_32(1124132848);
+emit_32(1116000263);
+emit_32(1097837262);
+emit_32(1123680256);
+emit_32(1116000263);
+emit_32(1098943509);
+emit_32(1124132848);
+emit_32(1116512256);
+emit_32(1098359872);
+emit_32(1123680256);
+emit_32(1116512256);
+emit_32(1099235380);
+emit_32(1124132848);
+emit_32(1117024263);
+emit_32(1097957533);
+emit_32(1123680256);
+emit_32(1117024263);
+emit_32(1098875037);
+emit_32(1124132848);
+emit_32(1117536256);
+emit_32(1098416705);
+emit_32(1123680256);
+emit_32(1117536256);
+emit_32(1098919916);
+emit_32(1124132848);
+emit_32(1118048263);
+emit_32(1098948385);
+emit_32(1123680256);
+emit_32(1118048263);
+emit_32(1099015127);
+emit_32(1124132848);
+emit_32(1118560256);
+emit_32(1099890845);
+emit_32(1123680256);
+emit_32(1118560256);
+emit_32(1100384410);
+emit_32(1124132848);
+emit_32(1119072263);
+emit_32(1100416863);
+emit_32(1123680256);
+emit_32(1119072263);
+emit_32(1100817786);
+emit_32(1124132848);
+emit_32(1119584256);
+emit_32(1100910848);
+emit_32(1123680256);
+emit_32(1119584256);
+emit_32(1101157682);
+emit_32(1124132848);
+emit_32(1120096263);
+emit_32(1102712825);
+emit_32(1123680256);
+emit_32(1120096263);
+emit_32(1102698670);
+emit_32(1124132848);
+emit_32(1120608322);
+emit_32(1103789661);
+emit_32(1123680256);
+emit_32(1120608322);
+emit_32(1104088662);
+emit_32(1124132848);
+emit_32(1121120289);
+emit_32(1104607602);
+emit_32(1123680256);
+emit_32(1121120289);
+emit_32(1104975548);
+emit_32(1124132848);
+emit_32(1121632256);
+emit_32(1105587811);
+emit_32(1123680256);
+emit_32(1121632256);
+emit_32(1105705671);
+emit_32(1124132848);
+emit_32(1122144223);
+emit_32(1106213025);
+emit_32(1123680256);
+emit_32(1122144223);
+emit_32(1106546629);
+emit_32(1124132848);
+emit_32(1122656322);
+emit_32(1106606765);
+emit_32(1123680256);
+emit_32(1122656322);
+emit_32(1107224271);
+emit_32(1124132848);
+emit_32(1123168289);
+emit_32(1107406409);
+emit_32(1123680256);
+emit_32(1123168289);
+emit_32(1107432990);
+emit_32(1124132848);
+emit_32(1123680256);
+emit_32(1108017021);
+emit_32(1123680256);
+emit_32(1123680256);
+emit_32(1107870823);
+emit_32(1124132848);
+emit_32(1124132848);
+emit_32(1108642890);
+emit_32(1123680256);
+emit_32(1124132848);
+emit_32(1108611197);
+emit_32(1124132848);
+emit_32(1124388897);
+emit_32(1108976940);
+emit_32(1123680256);
+emit_32(1124388897);
+emit_32(1109002394);
+emit_32(1124132848);
+emit_32(1124644880);
+emit_32(1108915991);
+emit_32(1123680256);
+emit_32(1124644880);
+emit_32(1109174020);
+emit_32(1124132848);
+emit_32(1124900864);
+emit_32(1109069713);
+emit_32(1123680256);
+emit_32(1124900864);
+emit_32(1109145131);
+emit_32(1124132848);
+emit_32(1125156848);
+emit_32(1108852159);
+emit_32(1123680256);
+emit_32(1125156848);
+emit_32(1109111053);
+emit_32(1124132848);
+emit_32(1125412897);
+emit_32(1109018044);
+emit_32(1123680256);
+emit_32(1125412897);
+emit_32(1108982156);
+emit_32(1124132848);
+emit_32(1125668880);
+emit_32(1109032776);
+emit_32(1123680256);
+emit_32(1125668880);
+emit_32(1109159733);
+emit_32(1124132848);
+emit_32(1125924864);
+emit_32(1109297490);
+emit_32(1123680256);
+emit_32(1125924864);
+emit_32(1109315342);
+emit_32(1124132848);
+emit_32(1126180848);
+emit_32(1109331018);
+emit_32(1123680256);
+emit_32(1126180848);
+emit_32(1109210091);
+emit_32(1124132848);
+emit_32(1126436897);
+emit_32(1109010285);
+emit_32(1123680256);
+emit_32(1126436897);
+emit_32(1108929885);
+emit_32(1124132848);
+emit_32(1126692880);
+emit_32(1108437919);
+emit_32(1123680256);
+emit_32(1126692880);
+emit_32(1108541256);
+emit_32(1124132848);
+emit_32(1126948864);
+emit_32(1108395583);
+emit_32(1123680256);
+emit_32(1126948864);
+emit_32(1108339091);
+emit_32(1124132848);
+emit_32(1127204848);
+emit_32(1108230432);
+emit_32(1123680256);
+emit_32(1127204848);
+emit_32(1108284853);
+emit_32(1124132848);
+emit_32(1127460897);
+emit_32(1107992091);
+emit_32(1123680256);
+emit_32(1127460897);
+emit_32(1108246449);
+emit_32(1124132848);
+emit_32(1127716880);
+emit_32(1107862408);
+emit_32(1123680256);
+emit_32(1127716880);
+emit_32(1108208727);
+emit_32(1124132848);
+emit_32(1127972864);
+emit_32(1107704336);
+emit_32(1123680256);
+emit_32(1127972864);
+emit_32(1108242648);
+emit_32(1124132848);
+emit_32(1128228848);
+emit_32(1107562018);
+emit_32(1123680256);
+emit_32(1128228848);
+emit_32(1107828539);
+emit_32(1124132848);
+emit_32(1128484897);
+emit_32(1106914679);
+emit_32(1123680256);
+emit_32(1128484897);
+emit_32(1107302207);
+emit_32(1124132848);
+emit_32(1128740880);
+emit_32(1105855984);
+emit_32(1123680256);
+emit_32(1128740880);
+emit_32(1106125311);
+emit_32(1124132848);
+emit_32(1128996864);
+emit_32(1104645194);
+emit_32(1123680256);
+emit_32(1128996864);
+emit_32(1104882853);
+emit_32(1124132848);
+emit_32(1129252848);
+emit_32(1103670490);
+emit_32(1123680256);
+emit_32(1129252848);
+emit_32(1103712328);
+emit_32(1124132848);
+emit_32(1129508897);
+emit_32(1102923956);
+emit_32(1123680256);
+emit_32(1129508897);
+emit_32(1103248228);
+emit_32(1124132848);
+emit_32(1129764880);
+emit_32(1102092435);
+emit_32(1123680256);
+emit_32(1129764880);
+emit_32(1102281808);
+emit_32(1124132848);
+emit_32(1130020864);
+emit_32(1101172887);
+emit_32(1123680256);
+emit_32(1130020864);
+emit_32(1101935621);
+emit_32(1124132848);
+emit_32(1130276848);
+emit_32(1101025876);
+emit_32(1123680256);
+emit_32(1130276848);
+emit_32(1100815060);
+emit_32(1124132848);
+emit_32(1130532897);
+emit_32(1101065722);
+emit_32(1123680256);
+emit_32(1130532897);
+emit_32(1100889457);
+emit_32(1124132848);
+emit_32(1130788880);
+emit_32(1101130577);
+emit_32(1123680256);
+emit_32(1130788880);
+emit_32(1101023098);
+emit_32(1124132848);
+emit_32(1131044864);
+emit_32(1100802530);
+emit_32(1123680256);
+emit_32(1131044864);
+emit_32(1100560938);
+emit_32(1124132848);
+emit_32(1131300848);
+emit_32(1100276983);
+emit_32(1123680256);
+emit_32(1131300848);
+emit_32(1099884397);
+emit_32(1124132848);
+emit_32(1131556897);
+emit_32(1099626499);
+emit_32(1123680256);
+emit_32(1131556897);
+emit_32(1099776918);
+emit_32(1124132848);
+emit_32(1131812880);
+emit_32(1099785830);
+emit_32(1123680256);
+emit_32(1131812880);
+emit_32(1099406246);
+emit_32(1124132848);
+emit_32(1132068864);
+emit_32(1099641599);
+emit_32(1123680256);
+emit_32(1132068864);
+emit_32(1099062890);
+emit_32(1124132848);
+emit_32(1081737216);
+emit_32(1100235512);
+emit_32(1123168289);
+emit_32(1090125824);
+emit_32(1100861512);
+emit_32(1123168289);
+emit_32(1094418484);
+emit_32(1101523373);
+emit_32(1123168289);
+emit_32(1098514432);
+emit_32(1102177632);
+emit_32(1123168289);
+emit_32(1100759066);
+emit_32(1102223140);
+emit_32(1123168289);
+emit_32(1102807040);
+emit_32(1101084754);
+emit_32(1123168289);
+emit_32(1104855066);
+emit_32(1099931897);
+emit_32(1123168289);
+emit_32(1106903040);
+emit_32(1099771150);
+emit_32(1123168289);
+emit_32(1108123661);
+emit_32(1099034001);
+emit_32(1123168289);
+emit_32(1109147648);
+emit_32(1097525730);
+emit_32(1123168289);
+emit_32(1110171661);
+emit_32(1097329331);
+emit_32(1123168289);
+emit_32(1111195648);
+emit_32(1097895877);
+emit_32(1123168289);
+emit_32(1112219661);
+emit_32(1098267283);
+emit_32(1123168289);
+emit_32(1113243648);
+emit_32(1098019609);
+emit_32(1123168289);
+emit_32(1114267661);
+emit_32(1097783994);
+emit_32(1123168289);
+emit_32(1115291648);
+emit_32(1097984587);
+emit_32(1123168289);
+emit_32(1116000263);
+emit_32(1098022755);
+emit_32(1123168289);
+emit_32(1116512256);
+emit_32(1098026110);
+emit_32(1123168289);
+emit_32(1117024263);
+emit_32(1097933206);
+emit_32(1123168289);
+emit_32(1117536256);
+emit_32(1098931503);
+emit_32(1123168289);
+emit_32(1118048263);
+emit_32(1099231973);
+emit_32(1123168289);
+emit_32(1118560256);
+emit_32(1099649463);
+emit_32(1123168289);
+emit_32(1119072263);
+emit_32(1100347343);
+emit_32(1123168289);
+emit_32(1119584256);
+emit_32(1100400558);
+emit_32(1123168289);
+emit_32(1120096263);
+emit_32(1101890794);
+emit_32(1123168289);
+emit_32(1120608322);
+emit_32(1103399223);
+emit_32(1123168289);
+emit_32(1121120289);
+emit_32(1104023703);
+emit_32(1123168289);
+emit_32(1121632256);
+emit_32(1104903930);
+emit_32(1123168289);
+emit_32(1122144223);
+emit_32(1105787670);
+emit_32(1123168289);
+emit_32(1122656322);
+emit_32(1106319507);
+emit_32(1123168289);
+emit_32(1123168289);
+emit_32(1107324096);
+emit_32(1123168289);
+emit_32(1123680256);
+emit_32(1107997229);
+emit_32(1123168289);
+emit_32(1124132848);
+emit_32(1108634344);
+emit_32(1123168289);
+emit_32(1124388897);
+emit_32(1108819601);
+emit_32(1123168289);
+emit_32(1124644880);
+emit_32(1108814096);
+emit_32(1123168289);
+emit_32(1124900864);
+emit_32(1108757106);
+emit_32(1123168289);
+emit_32(1125156848);
+emit_32(1108647897);
+emit_32(1123168289);
+emit_32(1125412897);
+emit_32(1108920920);
+emit_32(1123168289);
+emit_32(1125668880);
+emit_32(1109111000);
+emit_32(1123168289);
+emit_32(1125924864);
+emit_32(1109475302);
+emit_32(1123168289);
+emit_32(1126180848);
+emit_32(1109573422);
+emit_32(1123168289);
+emit_32(1126436897);
+emit_32(1109272140);
+emit_32(1123168289);
+emit_32(1126692880);
+emit_32(1108874101);
+emit_32(1123168289);
+emit_32(1126948864);
+emit_32(1108464710);
+emit_32(1123168289);
+emit_32(1127204848);
+emit_32(1108148460);
+emit_32(1123168289);
+emit_32(1127460897);
+emit_32(1107996416);
+emit_32(1123168289);
+emit_32(1127716880);
+emit_32(1107704781);
+emit_32(1123168289);
+emit_32(1127972864);
+emit_32(1107621603);
+emit_32(1123168289);
+emit_32(1128228848);
+emit_32(1107169798);
+emit_32(1123168289);
+emit_32(1128484897);
+emit_32(1106434222);
+emit_32(1123168289);
+emit_32(1128740880);
+emit_32(1105659953);
+emit_32(1123168289);
+emit_32(1128996864);
+emit_32(1104548410);
+emit_32(1123168289);
+emit_32(1129252848);
+emit_32(1103654289);
+emit_32(1123168289);
+emit_32(1129508897);
+emit_32(1102602673);
+emit_32(1123168289);
+emit_32(1129764880);
+emit_32(1101366401);
+emit_32(1123168289);
+emit_32(1130020864);
+emit_32(1100673240);
+emit_32(1123168289);
+emit_32(1130276848);
+emit_32(1100637012);
+emit_32(1123168289);
+emit_32(1130532897);
+emit_32(1101126015);
+emit_32(1123168289);
+emit_32(1130788880);
+emit_32(1101170999);
+emit_32(1123168289);
+emit_32(1131044864);
+emit_32(1101134194);
+emit_32(1123168289);
+emit_32(1131300848);
+emit_32(1101200569);
+emit_32(1123168289);
+emit_32(1131556897);
+emit_32(1100148952);
+emit_32(1123168289);
+emit_32(1131812880);
+emit_32(1099244241);
+emit_32(1123168289);
+emit_32(1132068864);
+emit_32(1099746247);
+emit_32(1123168289);
+emit_32(1081737216);
+emit_32(1100438045);
+emit_32(1122656322);
+emit_32(1090125824);
+emit_32(1100591871);
+emit_32(1122656322);
+emit_32(1094418484);
+emit_32(1101406352);
+emit_32(1122656322);
+emit_32(1098514432);
+emit_32(1101309359);
+emit_32(1122656322);
+emit_32(1100759066);
+emit_32(1101169112);
+emit_32(1122656322);
+emit_32(1102807040);
+emit_32(1100305872);
+emit_32(1122656322);
+emit_32(1104855066);
+emit_32(1099701682);
+emit_32(1122656322);
+emit_32(1106903040);
+emit_32(1099474561);
+emit_32(1122656322);
+emit_32(1108123661);
+emit_32(1098570950);
+emit_32(1122656322);
+emit_32(1109147648);
+emit_32(1097605421);
+emit_32(1122656322);
+emit_32(1110171661);
+emit_32(1097274386);
+emit_32(1122656322);
+emit_32(1111195648);
+emit_32(1097648413);
+emit_32(1122656322);
+emit_32(1112219661);
+emit_32(1097935199);
+emit_32(1122656322);
+emit_32(1113243648);
+emit_32(1097655229);
+emit_32(1122656322);
+emit_32(1114267661);
+emit_32(1098651795);
+emit_32(1122656322);
+emit_32(1115291648);
+emit_32(1099066193);
+emit_32(1122656322);
+emit_32(1116000263);
+emit_32(1098931189);
+emit_32(1122656322);
+emit_32(1116512256);
+emit_32(1098814849);
+emit_32(1122656322);
+emit_32(1117024263);
+emit_32(1098993264);
+emit_32(1122656322);
+emit_32(1117536256);
+emit_32(1099606157);
+emit_32(1122656322);
+emit_32(1118048263);
+emit_32(1099571344);
+emit_32(1122656322);
+emit_32(1118560256);
+emit_32(1099949408);
+emit_32(1122656322);
+emit_32(1119072263);
+emit_32(1100115817);
+emit_32(1122656322);
+emit_32(1119584256);
+emit_32(1100095947);
+emit_32(1122656322);
+emit_32(1120096263);
+emit_32(1100761740);
+emit_32(1122656322);
+emit_32(1120608322);
+emit_32(1101924191);
+emit_32(1122656322);
+emit_32(1121120289);
+emit_32(1102920810);
+emit_32(1122656322);
+emit_32(1121632256);
+emit_32(1103899499);
+emit_32(1122656322);
+emit_32(1122144223);
+emit_32(1105260918);
+emit_32(1122656322);
+emit_32(1122656322);
+emit_32(1106034347);
+emit_32(1122656322);
+emit_32(1123168289);
+emit_32(1107198004);
+emit_32(1122656322);
+emit_32(1123680256);
+emit_32(1107826495);
+emit_32(1122656322);
+emit_32(1124132848);
+emit_32(1108446937);
+emit_32(1122656322);
+emit_32(1124388897);
+emit_32(1108618065);
+emit_32(1122656322);
+emit_32(1124644880);
+emit_32(1108561835);
+emit_32(1122656322);
+emit_32(1124900864);
+emit_32(1108406410);
+emit_32(1122656322);
+emit_32(1125156848);
+emit_32(1108576174);
+emit_32(1122656322);
+emit_32(1125412897);
+emit_32(1109301448);
+emit_32(1122656322);
+emit_32(1125668880);
+emit_32(1109829249);
+emit_32(1122656322);
+emit_32(1125924864);
+emit_32(1110051154);
+emit_32(1122656322);
+emit_32(1126180848);
+emit_32(1110198478);
+emit_32(1122656322);
+emit_32(1126436897);
+emit_32(1109858268);
+emit_32(1122656322);
+emit_32(1126692880);
+emit_32(1109550301);
+emit_32(1122656322);
+emit_32(1126948864);
+emit_32(1108917669);
+emit_32(1122656322);
+emit_32(1127204848);
+emit_32(1108613005);
+emit_32(1122656322);
+emit_32(1127460897);
+emit_32(1108306375);
+emit_32(1122656322);
+emit_32(1127716880);
+emit_32(1107971382);
+emit_32(1122656322);
+emit_32(1127972864);
+emit_32(1107731022);
+emit_32(1122656322);
+emit_32(1128228848);
+emit_32(1107436241);
+emit_32(1122656322);
+emit_32(1128484897);
+emit_32(1106805103);
+emit_32(1122656322);
+emit_32(1128740880);
+emit_32(1105736132);
+emit_32(1122656322);
+emit_32(1128996864);
+emit_32(1104687818);
+emit_32(1122656322);
+emit_32(1129252848);
+emit_32(1103709969);
+emit_32(1122656322);
+emit_32(1129508897);
+emit_32(1102382734);
+emit_32(1122656322);
+emit_32(1129764880);
+emit_32(1101330121);
+emit_32(1122656322);
+emit_32(1130020864);
+emit_32(1100614520);
+emit_32(1122656322);
+emit_32(1130276848);
+emit_32(1100389233);
+emit_32(1122656322);
+emit_32(1130532897);
+emit_32(1100597690);
+emit_32(1122656322);
+emit_32(1130788880);
+emit_32(1101237636);
+emit_32(1122656322);
+emit_32(1131044864);
+emit_32(1101286500);
+emit_32(1122656322);
+emit_32(1131300848);
+emit_32(1101166386);
+emit_32(1122656322);
+emit_32(1131556897);
+emit_32(1100711041);
+emit_32(1122656322);
+emit_32(1131812880);
+emit_32(1099946053);
+emit_32(1122656322);
+emit_32(1132068864);
+emit_32(1099609932);
+emit_32(1122656322);
+emit_32(1081737216);
+emit_32(1100139620);
+emit_32(1122144223);
+emit_32(1090125824);
+emit_32(1100323697);
+emit_32(1122144223);
+emit_32(1094418484);
+emit_32(1100674708);
+emit_32(1122144223);
+emit_32(1098514432);
+emit_32(1100753299);
+emit_32(1122144223);
+emit_32(1100759066);
+emit_32(1100255278);
+emit_32(1122144223);
+emit_32(1102807040);
+emit_32(1099783052);
+emit_32(1122144223);
+emit_32(1104855066);
+emit_32(1099327131);
+emit_32(1122144223);
+emit_32(1106903040);
+emit_32(1099190764);
+emit_32(1122144223);
+emit_32(1108123661);
+emit_32(1098756443);
+emit_32(1122144223);
+emit_32(1109147648);
+emit_32(1097994967);
+emit_32(1122144223);
+emit_32(1110171661);
+emit_32(1098760743);
+emit_32(1122144223);
+emit_32(1111195648);
+emit_32(1099136762);
+emit_32(1122144223);
+emit_32(1112219661);
+emit_32(1099063729);
+emit_32(1122144223);
+emit_32(1113243648);
+emit_32(1099278634);
+emit_32(1122144223);
+emit_32(1114267661);
+emit_32(1099336883);
+emit_32(1122144223);
+emit_32(1115291648);
+emit_32(1099511261);
+emit_32(1122144223);
+emit_32(1116000263);
+emit_32(1099185311);
+emit_32(1122144223);
+emit_32(1116512256);
+emit_32(1098779931);
+emit_32(1122144223);
+emit_32(1117024263);
+emit_32(1099229561);
+emit_32(1122144223);
+emit_32(1117536256);
+emit_32(1099456787);
+emit_32(1122144223);
+emit_32(1118048263);
+emit_32(1099608673);
+emit_32(1122144223);
+emit_32(1118560256);
+emit_32(1099933417);
+emit_32(1122144223);
+emit_32(1119072263);
+emit_32(1100161640);
+emit_32(1122144223);
+emit_32(1119584256);
+emit_32(1100494039);
+emit_32(1122144223);
+emit_32(1120096263);
+emit_32(1100626841);
+emit_32(1122144223);
+emit_32(1120608322);
+emit_32(1101085173);
+emit_32(1122144223);
+emit_32(1121120289);
+emit_32(1102206573);
+emit_32(1122144223);
+emit_32(1121632256);
+emit_32(1103460303);
+emit_32(1122144223);
+emit_32(1122144223);
+emit_32(1104032825);
+emit_32(1122144223);
+emit_32(1122656322);
+emit_32(1105660740);
+emit_32(1122144223);
+emit_32(1123168289);
+emit_32(1106883065);
+emit_32(1122144223);
+emit_32(1123680256);
+emit_32(1107680480);
+emit_32(1122144223);
+emit_32(1124132848);
+emit_32(1108110344);
+emit_32(1122144223);
+emit_32(1124388897);
+emit_32(1108454854);
+emit_32(1122144223);
+emit_32(1124644880);
+emit_32(1108686065);
+emit_32(1122144223);
+emit_32(1124900864);
+emit_32(1108654057);
+emit_32(1122144223);
+emit_32(1125156848);
+emit_32(1108922519);
+emit_32(1122144223);
+emit_32(1125412897);
+emit_32(1109770450);
+emit_32(1122144223);
+emit_32(1125668880);
+emit_32(1110434487);
+emit_32(1122144223);
+emit_32(1125924864);
+emit_32(1110705884);
+emit_32(1122144223);
+emit_32(1126180848);
+emit_32(1110743214);
+emit_32(1122144223);
+emit_32(1126436897);
+emit_32(1110390656);
+emit_32(1122144223);
+emit_32(1126692880);
+emit_32(1110053093);
+emit_32(1122144223);
+emit_32(1126948864);
+emit_32(1109488042);
+emit_32(1122144223);
+emit_32(1127204848);
+emit_32(1108960713);
+emit_32(1122144223);
+emit_32(1127460897);
+emit_32(1108725701);
+emit_32(1122144223);
+emit_32(1127716880);
+emit_32(1108233840);
+emit_32(1122144223);
+emit_32(1127972864);
+emit_32(1107884455);
+emit_32(1122144223);
+emit_32(1128228848);
+emit_32(1107301971);
+emit_32(1122144223);
+emit_32(1128484897);
+emit_32(1106353639);
+emit_32(1122144223);
+emit_32(1128740880);
+emit_32(1105631956);
+emit_32(1122144223);
+emit_32(1128996864);
+emit_32(1104783920);
+emit_32(1122144223);
+emit_32(1129252848);
+emit_32(1103622046);
+emit_32(1122144223);
+emit_32(1129508897);
+emit_32(1102332926);
+emit_32(1122144223);
+emit_32(1129764880);
+emit_32(1100887622);
+emit_32(1122144223);
+emit_32(1130020864);
+emit_32(1100248410);
+emit_32(1122144223);
+emit_32(1130276848);
+emit_32(1100033242);
+emit_32(1122144223);
+emit_32(1130532897);
+emit_32(1099938346);
+emit_32(1122144223);
+emit_32(1130788880);
+emit_32(1100585370);
+emit_32(1122144223);
+emit_32(1131044864);
+emit_32(1101043650);
+emit_32(1122144223);
+emit_32(1131300848);
+emit_32(1101065565);
+emit_32(1122144223);
+emit_32(1131556897);
+emit_32(1100500540);
+emit_32(1122144223);
+emit_32(1131812880);
+emit_32(1100135373);
+emit_32(1122144223);
+emit_32(1132068864);
+emit_32(1100354840);
+emit_32(1122144223);
+emit_32(1081737216);
+emit_32(1099957115);
+emit_32(1121632256);
+emit_32(1090125824);
+emit_32(1100037593);
+emit_32(1121632256);
+emit_32(1094418484);
+emit_32(1100062445);
+emit_32(1121632256);
+emit_32(1098514432);
+emit_32(1100063284);
+emit_32(1121632256);
+emit_32(1100759066);
+emit_32(1099841195);
+emit_32(1121632256);
+emit_32(1102807040);
+emit_32(1099713898);
+emit_32(1121632256);
+emit_32(1104855066);
+emit_32(1099359951);
+emit_32(1121632256);
+emit_32(1106903040);
+emit_32(1098837289);
+emit_32(1121632256);
+emit_32(1108123661);
+emit_32(1098060399);
+emit_32(1121632256);
+emit_32(1109147648);
+emit_32(1098949381);
+emit_32(1121632256);
+emit_32(1110171661);
+emit_32(1099007001);
+emit_32(1121632256);
+emit_32(1111195648);
+emit_32(1098883950);
+emit_32(1121632256);
+emit_32(1112219661);
+emit_32(1099407242);
+emit_32(1121632256);
+emit_32(1113243648);
+emit_32(1099479174);
+emit_32(1121632256);
+emit_32(1114267661);
+emit_32(1099627076);
+emit_32(1121632256);
+emit_32(1115291648);
+emit_32(1099212207);
+emit_32(1121632256);
+emit_32(1116000263);
+emit_32(1099332898);
+emit_32(1121632256);
+emit_32(1116512256);
+emit_32(1099391985);
+emit_32(1121632256);
+emit_32(1117024263);
+emit_32(1099349203);
+emit_32(1121632256);
+emit_32(1117536256);
+emit_32(1099452960);
+emit_32(1121632256);
+emit_32(1118048263);
+emit_32(1099360476);
+emit_32(1121632256);
+emit_32(1118560256);
+emit_32(1099645374);
+emit_32(1121632256);
+emit_32(1119072263);
+emit_32(1099926864);
+emit_32(1121632256);
+emit_32(1119584256);
+emit_32(1100231737);
+emit_32(1121632256);
+emit_32(1120096263);
+emit_32(1100104545);
+emit_32(1121632256);
+emit_32(1120608322);
+emit_32(1100531630);
+emit_32(1121632256);
+emit_32(1121120289);
+emit_32(1101229824);
+emit_32(1121632256);
+emit_32(1121632256);
+emit_32(1102138835);
+emit_32(1121632256);
+emit_32(1122144223);
+emit_32(1103981340);
+emit_32(1121632256);
+emit_32(1122656322);
+emit_32(1105126595);
+emit_32(1121632256);
+emit_32(1123168289);
+emit_32(1106590722);
+emit_32(1121632256);
+emit_32(1123680256);
+emit_32(1107669182);
+emit_32(1121632256);
+emit_32(1124132848);
+emit_32(1107932296);
+emit_32(1121632256);
+emit_32(1124388897);
+emit_32(1108574129);
+emit_32(1121632256);
+emit_32(1124644880);
+emit_32(1108726278);
+emit_32(1121632256);
+emit_32(1124900864);
+emit_32(1108737393);
+emit_32(1121632256);
+emit_32(1125156848);
+emit_32(1109413095);
+emit_32(1121632256);
+emit_32(1125412897);
+emit_32(1110114933);
+emit_32(1121632256);
+emit_32(1125668880);
+emit_32(1110645303);
+emit_32(1121632256);
+emit_32(1125924864);
+emit_32(1111013117);
+emit_32(1121632256);
+emit_32(1126180848);
+emit_32(1111064655);
+emit_32(1121632256);
+emit_32(1126436897);
+emit_32(1110758890);
+emit_32(1121632256);
+emit_32(1126692880);
+emit_32(1110376107);
+emit_32(1121632256);
+emit_32(1126948864);
+emit_32(1109822407);
+emit_32(1121632256);
+emit_32(1127204848);
+emit_32(1109326797);
+emit_32(1121632256);
+emit_32(1127460897);
+emit_32(1108601838);
+emit_32(1121632256);
+emit_32(1127716880);
+emit_32(1108258010);
+emit_32(1121632256);
+emit_32(1127972864);
+emit_32(1108088245);
+emit_32(1121632256);
+emit_32(1128228848);
+emit_32(1107411154);
+emit_32(1121632256);
+emit_32(1128484897);
+emit_32(1106040377);
+emit_32(1121632256);
+emit_32(1128740880);
+emit_32(1105294629);
+emit_32(1121632256);
+emit_32(1128996864);
+emit_32(1104278664);
+emit_32(1121632256);
+emit_32(1129252848);
+emit_32(1103177554);
+emit_32(1121632256);
+emit_32(1129508897);
+emit_32(1102109580);
+emit_32(1121632256);
+emit_32(1129764880);
+emit_32(1101025824);
+emit_32(1121632256);
+emit_32(1130020864);
+emit_32(1099990984);
+emit_32(1121632256);
+emit_32(1130276848);
+emit_32(1099361681);
+emit_32(1121632256);
+emit_32(1130532897);
+emit_32(1099399011);
+emit_32(1121632256);
+emit_32(1130788880);
+emit_32(1099424229);
+emit_32(1121632256);
+emit_32(1131044864);
+emit_32(1099786407);
+emit_32(1121632256);
+emit_32(1131300848);
+emit_32(1100148585);
+emit_32(1121632256);
+emit_32(1131556897);
+emit_32(1100174118);
+emit_32(1121632256);
+emit_32(1131812880);
+emit_32(1100070047);
+emit_32(1121632256);
+emit_32(1132068864);
+emit_32(1100267704);
+emit_32(1121632256);
+emit_32(1081737216);
+emit_32(1099935672);
+emit_32(1121120289);
+emit_32(1090125824);
+emit_32(1100185285);
+emit_32(1121120289);
+emit_32(1094418484);
+emit_32(1100187225);
+emit_32(1121120289);
+emit_32(1098514432);
+emit_32(1099887280);
+emit_32(1121120289);
+emit_32(1100759066);
+emit_32(1099826148);
+emit_32(1121120289);
+emit_32(1102807040);
+emit_32(1099732563);
+emit_32(1121120289);
+emit_32(1104855066);
+emit_32(1099085749);
+emit_32(1121120289);
+emit_32(1106903040);
+emit_32(1098762735);
+emit_32(1121120289);
+emit_32(1108123661);
+emit_32(1098970248);
+emit_32(1121120289);
+emit_32(1109147648);
+emit_32(1099373740);
+emit_32(1121120289);
+emit_32(1110171661);
+emit_32(1099054658);
+emit_32(1121120289);
+emit_32(1111195648);
+emit_32(1098747635);
+emit_32(1121120289);
+emit_32(1112219661);
+emit_32(1099059272);
+emit_32(1121120289);
+emit_32(1113243648);
+emit_32(1099057280);
+emit_32(1121120289);
+emit_32(1114267661);
+emit_32(1099293943);
+emit_32(1121120289);
+emit_32(1115291648);
+emit_32(1099644535);
+emit_32(1121120289);
+emit_32(1116000263);
+emit_32(1099369441);
+emit_32(1121120289);
+emit_32(1116512256);
+emit_32(1099598817);
+emit_32(1121120289);
+emit_32(1117024263);
+emit_32(1099807641);
+emit_32(1121120289);
+emit_32(1117536256);
+emit_32(1099466382);
+emit_32(1121120289);
+emit_32(1118048263);
+emit_32(1099290640);
+emit_32(1121120289);
+emit_32(1118560256);
+emit_32(1099113641);
+emit_32(1121120289);
+emit_32(1119072263);
+emit_32(1099247124);
+emit_32(1121120289);
+emit_32(1119584256);
+emit_32(1099832754);
+emit_32(1121120289);
+emit_32(1120096263);
+emit_32(1100177054);
+emit_32(1121120289);
+emit_32(1120608322);
+emit_32(1100171549);
+emit_32(1121120289);
+emit_32(1121120289);
+emit_32(1100677172);
+emit_32(1121120289);
+emit_32(1121632256);
+emit_32(1101971063);
+emit_32(1121120289);
+emit_32(1122144223);
+emit_32(1103633737);
+emit_32(1121120289);
+emit_32(1122656322);
+emit_32(1104631195);
+emit_32(1121120289);
+emit_32(1123168289);
+emit_32(1106163951);
+emit_32(1121120289);
+emit_32(1123680256);
+emit_32(1107425676);
+emit_32(1121120289);
+emit_32(1124132848);
+emit_32(1107927394);
+emit_32(1121120289);
+emit_32(1124388897);
+emit_32(1108148145);
+emit_32(1121120289);
+emit_32(1124644880);
+emit_32(1108470268);
+emit_32(1121120289);
+emit_32(1124900864);
+emit_32(1108816246);
+emit_32(1121120289);
+emit_32(1125156848);
+emit_32(1109543145);
+emit_32(1121120289);
+emit_32(1125412897);
+emit_32(1110276781);
+emit_32(1121120289);
+emit_32(1125668880);
+emit_32(1110909649);
+emit_32(1121120289);
+emit_32(1125924864);
+emit_32(1111224091);
+emit_32(1121120289);
+emit_32(1126180848);
+emit_32(1111301135);
+emit_32(1121120289);
+emit_32(1126436897);
+emit_32(1111167992);
+emit_32(1121120289);
+emit_32(1126692880);
+emit_32(1110709345);
+emit_32(1121120289);
+emit_32(1126948864);
+emit_32(1110071837);
+emit_32(1121120289);
+emit_32(1127204848);
+emit_32(1109390262);
+emit_32(1121120289);
+emit_32(1127460897);
+emit_32(1108886238);
+emit_32(1121120289);
+emit_32(1127716880);
+emit_32(1108757814);
+emit_32(1121120289);
+emit_32(1127972864);
+emit_32(1108248258);
+emit_32(1121120289);
+emit_32(1128228848);
+emit_32(1107404862);
+emit_32(1121120289);
+emit_32(1128484897);
+emit_32(1106003467);
+emit_32(1121120289);
+emit_32(1128740880);
+emit_32(1104821354);
+emit_32(1121120289);
+emit_32(1128996864);
+emit_32(1104184607);
+emit_32(1121120289);
+emit_32(1129252848);
+emit_32(1103554570);
+emit_32(1121120289);
+emit_32(1129508897);
+emit_32(1102588989);
+emit_32(1121120289);
+emit_32(1129764880);
+emit_32(1101617378);
+emit_32(1121120289);
+emit_32(1130020864);
+emit_32(1100444598);
+emit_32(1121120289);
+emit_32(1130276848);
+emit_32(1099799619);
+emit_32(1121120289);
+emit_32(1130532897);
+emit_32(1099403939);
+emit_32(1121120289);
+emit_32(1130788880);
+emit_32(1099507276);
+emit_32(1121120289);
+emit_32(1131044864);
+emit_32(1099782737);
+emit_32(1121120289);
+emit_32(1131300848);
+emit_32(1099916535);
+emit_32(1121120289);
+emit_32(1131556897);
+emit_32(1099956486);
+emit_32(1121120289);
+emit_32(1131812880);
+emit_32(1100280182);
+emit_32(1121120289);
+emit_32(1132068864);
+emit_32(1100594020);
+emit_32(1121120289);
+emit_32(1081737216);
+emit_32(1099802817);
+emit_32(1120608322);
+emit_32(1090125824);
+emit_32(1100171706);
+emit_32(1120608322);
+emit_32(1094418484);
+emit_32(1099951820);
+emit_32(1120608322);
+emit_32(1098514432);
+emit_32(1100236666);
+emit_32(1120608322);
+emit_32(1100759066);
+emit_32(1100302621);
+emit_32(1120608322);
+emit_32(1102807040);
+emit_32(1099644797);
+emit_32(1120608322);
+emit_32(1104855066);
+emit_32(1099555458);
+emit_32(1120608322);
+emit_32(1106903040);
+emit_32(1099452645);
+emit_32(1120608322);
+emit_32(1108123661);
+emit_32(1099951138);
+emit_32(1120608322);
+emit_32(1109147648);
+emit_32(1100092696);
+emit_32(1120608322);
+emit_32(1110171661);
+emit_32(1099905735);
+emit_32(1120608322);
+emit_32(1111195648);
+emit_32(1099555563);
+emit_32(1120608322);
+emit_32(1112219661);
+emit_32(1098964743);
+emit_32(1120608322);
+emit_32(1113243648);
+emit_32(1099224475);
+emit_32(1120608322);
+emit_32(1114267661);
+emit_32(1099204185);
+emit_32(1120608322);
+emit_32(1115291648);
+emit_32(1099361419);
+emit_32(1120608322);
+emit_32(1116000263);
+emit_32(1099438385);
+emit_32(1120608322);
+emit_32(1116512256);
+emit_32(1099693294);
+emit_32(1120608322);
+emit_32(1117024263);
+emit_32(1099966448);
+emit_32(1120608322);
+emit_32(1117536256);
+emit_32(1099611085);
+emit_32(1120608322);
+emit_32(1118048263);
+emit_32(1099352087);
+emit_32(1120608322);
+emit_32(1118560256);
+emit_32(1098341627);
+emit_32(1120608322);
+emit_32(1119072263);
+emit_32(1098488322);
+emit_32(1120608322);
+emit_32(1119584256);
+emit_32(1099373688);
+emit_32(1120608322);
+emit_32(1120096263);
+emit_32(1099586286);
+emit_32(1120608322);
+emit_32(1120608322);
+emit_32(1099611819);
+emit_32(1120608322);
+emit_32(1121120289);
+emit_32(1100077125);
+emit_32(1120608322);
+emit_32(1121632256);
+emit_32(1101296094);
+emit_32(1120608322);
+emit_32(1122144223);
+emit_32(1102346872);
+emit_32(1120608322);
+emit_32(1122656322);
+emit_32(1103678512);
+emit_32(1120608322);
+emit_32(1123168289);
+emit_32(1105306478);
+emit_32(1120608322);
+emit_32(1123680256);
+emit_32(1106488852);
+emit_32(1120608322);
+emit_32(1124132848);
+emit_32(1107446438);
+emit_32(1120608322);
+emit_32(1124388897);
+emit_32(1107966506);
+emit_32(1120608322);
+emit_32(1124644880);
+emit_32(1108466205);
+emit_32(1120608322);
+emit_32(1124900864);
+emit_32(1108823481);
+emit_32(1120608322);
+emit_32(1125156848);
+emit_32(1109507624);
+emit_32(1120608322);
+emit_32(1125412897);
+emit_32(1110351387);
+emit_32(1120608322);
+emit_32(1125668880);
+emit_32(1111019749);
+emit_32(1120608322);
+emit_32(1125924864);
+emit_32(1111329971);
+emit_32(1120608322);
+emit_32(1126180848);
+emit_32(1111365308);
+emit_32(1120608322);
+emit_32(1126436897);
+emit_32(1111184166);
+emit_32(1120608322);
+emit_32(1126692880);
+emit_32(1110574760);
+emit_32(1120608322);
+emit_32(1126948864);
+emit_32(1110380328);
+emit_32(1120608322);
+emit_32(1127204848);
+emit_32(1109912165);
+emit_32(1120608322);
+emit_32(1127460897);
+emit_32(1109599191);
+emit_32(1120608322);
+emit_32(1127716880);
+emit_32(1109069372);
+emit_32(1120608322);
+emit_32(1127972864);
+emit_32(1108386487);
+emit_32(1120608322);
+emit_32(1128228848);
+emit_32(1107668422);
+emit_32(1120608322);
+emit_32(1128484897);
+emit_32(1106120173);
+emit_32(1120608322);
+emit_32(1128740880);
+emit_32(1104797657);
+emit_32(1120608322);
+emit_32(1128996864);
+emit_32(1104352117);
+emit_32(1120608322);
+emit_32(1129252848);
+emit_32(1103791338);
+emit_32(1120608322);
+emit_32(1129508897);
+emit_32(1102834355);
+emit_32(1120608322);
+emit_32(1129764880);
+emit_32(1102173438);
+emit_32(1120608322);
+emit_32(1130020864);
+emit_32(1101005534);
+emit_32(1120608322);
+emit_32(1130276848);
+emit_32(1100530582);
+emit_32(1120608322);
+emit_32(1130532897);
+emit_32(1099941020);
+emit_32(1120608322);
+emit_32(1130788880);
+emit_32(1099395393);
+emit_32(1120608322);
+emit_32(1131044864);
+emit_32(1099621676);
+emit_32(1120608322);
+emit_32(1131300848);
+emit_32(1099449605);
+emit_32(1120608322);
+emit_32(1131556897);
+emit_32(1099506595);
+emit_32(1120608322);
+emit_32(1131812880);
+emit_32(1100131336);
+emit_32(1120608322);
+emit_32(1132068864);
+emit_32(1100624377);
+emit_32(1120608322);
+emit_32(1081737216);
+emit_32(1099965451);
+emit_32(1120096263);
+emit_32(1090125824);
+emit_32(1100056678);
+emit_32(1120096263);
+emit_32(1094418484);
+emit_32(1099809423);
+emit_32(1120096263);
+emit_32(1098514432);
+emit_32(1100136789);
+emit_32(1120096263);
+emit_32(1100759066);
+emit_32(1100328573);
+emit_32(1120096263);
+emit_32(1102807040);
+emit_32(1099649149);
+emit_32(1120096263);
+emit_32(1104855066);
+emit_32(1099960680);
+emit_32(1120096263);
+emit_32(1106903040);
+emit_32(1100214383);
+emit_32(1120096263);
+emit_32(1108123661);
+emit_32(1100707214);
+emit_32(1120096263);
+emit_32(1109147648);
+emit_32(1100899838);
+emit_32(1120096263);
+emit_32(1110171661);
+emit_32(1100765934);
+emit_32(1120096263);
+emit_32(1111195648);
+emit_32(1100769552);
+emit_32(1120096263);
+emit_32(1112219661);
+emit_32(1099924609);
+emit_32(1120096263);
+emit_32(1113243648);
+emit_32(1099242301);
+emit_32(1120096263);
+emit_32(1114267661);
+emit_32(1098940101);
+emit_32(1120096263);
+emit_32(1115291648);
+emit_32(1099295726);
+emit_32(1120096263);
+emit_32(1116000263);
+emit_32(1099408343);
+emit_32(1120096263);
+emit_32(1116512256);
+emit_32(1099741895);
+emit_32(1120096263);
+emit_32(1117024263);
+emit_32(1099493854);
+emit_32(1120096263);
+emit_32(1117536256);
+emit_32(1099382810);
+emit_32(1120096263);
+emit_32(1118048263);
+emit_32(1099116734);
+emit_32(1120096263);
+emit_32(1118560256);
+emit_32(1098839491);
+emit_32(1120096263);
+emit_32(1119072263);
+emit_32(1098942461);
+emit_32(1120096263);
+emit_32(1119584256);
+emit_32(1099008626);
+emit_32(1120096263);
+emit_32(1120096263);
+emit_32(1099170002);
+emit_32(1120096263);
+emit_32(1120608322);
+emit_32(1099494064);
+emit_32(1120096263);
+emit_32(1121120289);
+emit_32(1099581830);
+emit_32(1120096263);
+emit_32(1121632256);
+emit_32(1100481875);
+emit_32(1120096263);
+emit_32(1122144223);
+emit_32(1101530032);
+emit_32(1120096263);
+emit_32(1122656322);
+emit_32(1102909853);
+emit_32(1120096263);
+emit_32(1123168289);
+emit_32(1104403812);
+emit_32(1120096263);
+emit_32(1123680256);
+emit_32(1105884611);
+emit_32(1120096263);
+emit_32(1124132848);
+emit_32(1107445731);
+emit_32(1120096263);
+emit_32(1124388897);
+emit_32(1107970254);
+emit_32(1120096263);
+emit_32(1124644880);
+emit_32(1108388505);
+emit_32(1120096263);
+emit_32(1124900864);
+emit_32(1108761877);
+emit_32(1120096263);
+emit_32(1125156848);
+emit_32(1109478133);
+emit_32(1120096263);
+emit_32(1125412897);
+emit_32(1110090973);
+emit_32(1120096263);
+emit_32(1125668880);
+emit_32(1110851033);
+emit_32(1120096263);
+emit_32(1125924864);
+emit_32(1111411497);
+emit_32(1120096263);
+emit_32(1126180848);
+emit_32(1111336655);
+emit_32(1120096263);
+emit_32(1126436897);
+emit_32(1111269415);
+emit_32(1120096263);
+emit_32(1126692880);
+emit_32(1110784292);
+emit_32(1120096263);
+emit_32(1126948864);
+emit_32(1110653508);
+emit_32(1120096263);
+emit_32(1127204848);
+emit_32(1110359330);
+emit_32(1120096263);
+emit_32(1127460897);
+emit_32(1109834623);
+emit_32(1120096263);
+emit_32(1127716880);
+emit_32(1109238009);
+emit_32(1120096263);
+emit_32(1127972864);
+emit_32(1108505212);
+emit_32(1120096263);
+emit_32(1128228848);
+emit_32(1107662209);
+emit_32(1120096263);
+emit_32(1128484897);
+emit_32(1106214755);
+emit_32(1120096263);
+emit_32(1128740880);
+emit_32(1105231400);
+emit_32(1120096263);
+emit_32(1128996864);
+emit_32(1104882277);
+emit_32(1120096263);
+emit_32(1129252848);
+emit_32(1103989781);
+emit_32(1120096263);
+emit_32(1129508897);
+emit_32(1103333268);
+emit_32(1120096263);
+emit_32(1129764880);
+emit_32(1102701186);
+emit_32(1120096263);
+emit_32(1130020864);
+emit_32(1101762396);
+emit_32(1120096263);
+emit_32(1130276848);
+emit_32(1100764257);
+emit_32(1120096263);
+emit_32(1130532897);
+emit_32(1100213020);
+emit_32(1120096263);
+emit_32(1130788880);
+emit_32(1099813093);
+emit_32(1120096263);
+emit_32(1131044864);
+emit_32(1099177080);
+emit_32(1120096263);
+emit_32(1131300848);
+emit_32(1099042862);
+emit_32(1120096263);
+emit_32(1131556897);
+emit_32(1098988336);
+emit_32(1120096263);
+emit_32(1131812880);
+emit_32(1099476815);
+emit_32(1120096263);
+emit_32(1132068864);
+emit_32(1100226285);
+emit_32(1120096263);
+emit_32(1081737216);
+emit_32(1099519545);
+emit_32(1119584256);
+emit_32(1090125824);
+emit_32(1099335991);
+emit_32(1119584256);
+emit_32(1094418484);
+emit_32(1099709442);
+emit_32(1119584256);
+emit_32(1098514432);
+emit_32(1100359978);
+emit_32(1119584256);
+emit_32(1100759066);
+emit_32(1100132490);
+emit_32(1119584256);
+emit_32(1102807040);
+emit_32(1100526073);
+emit_32(1119584256);
+emit_32(1104855066);
+emit_32(1100876716);
+emit_32(1119584256);
+emit_32(1106903040);
+emit_32(1101010724);
+emit_32(1119584256);
+emit_32(1108123661);
+emit_32(1101185208);
+emit_32(1119584256);
+emit_32(1109147648);
+emit_32(1101761557);
+emit_32(1119584256);
+emit_32(1110171661);
+emit_32(1101844080);
+emit_32(1119584256);
+emit_32(1111195648);
+emit_32(1101813409);
+emit_32(1119584256);
+emit_32(1112219661);
+emit_32(1101402839);
+emit_32(1119584256);
+emit_32(1113243648);
+emit_32(1100438936);
+emit_32(1119584256);
+emit_32(1114267661);
+emit_32(1099786984);
+emit_32(1119584256);
+emit_32(1115291648);
+emit_32(1099715523);
+emit_32(1119584256);
+emit_32(1116000263);
+emit_32(1099745985);
+emit_32(1119584256);
+emit_32(1116512256);
+emit_32(1100093902);
+emit_32(1119584256);
+emit_32(1117024263);
+emit_32(1100168351);
+emit_32(1119584256);
+emit_32(1117536256);
+emit_32(1100068946);
+emit_32(1119584256);
+emit_32(1118048263);
+emit_32(1100204894);
+emit_32(1119584256);
+emit_32(1118560256);
+emit_32(1099776865);
+emit_32(1119584256);
+emit_32(1119072263);
+emit_32(1099815715);
+emit_32(1119584256);
+emit_32(1119584256);
+emit_32(1100174957);
+emit_32(1119584256);
+emit_32(1120096263);
+emit_32(1100503528);
+emit_32(1119584256);
+emit_32(1120608322);
+emit_32(1100870425);
+emit_32(1119584256);
+emit_32(1121120289);
+emit_32(1100930771);
+emit_32(1119584256);
+emit_32(1121632256);
+emit_32(1100869219);
+emit_32(1119584256);
+emit_32(1122144223);
+emit_32(1101778439);
+emit_32(1119584256);
+emit_32(1122656322);
+emit_32(1103199574);
+emit_32(1119584256);
+emit_32(1123168289);
+emit_32(1104588361);
+emit_32(1119584256);
+emit_32(1123680256);
+emit_32(1106227809);
+emit_32(1119584256);
+emit_32(1124132848);
+emit_32(1107512970);
+emit_32(1119584256);
+emit_32(1124388897);
+emit_32(1107998251);
+emit_32(1119584256);
+emit_32(1124644880);
+emit_32(1108347008);
+emit_32(1119584256);
+emit_32(1124900864);
+emit_32(1108602048);
+emit_32(1119584256);
+emit_32(1125156848);
+emit_32(1109290831);
+emit_32(1119584256);
+emit_32(1125412897);
+emit_32(1109977176);
+emit_32(1119584256);
+emit_32(1125668880);
+emit_32(1110570959);
+emit_32(1119584256);
+emit_32(1125924864);
+emit_32(1111274737);
+emit_32(1119584256);
+emit_32(1126180848);
+emit_32(1111376973);
+emit_32(1119584256);
+emit_32(1126436897);
+emit_32(1111218586);
+emit_32(1119584256);
+emit_32(1126692880);
+emit_32(1110884090);
+emit_32(1119584256);
+emit_32(1126948864);
+emit_32(1110905140);
+emit_32(1119584256);
+emit_32(1127204848);
+emit_32(1110659642);
+emit_32(1119584256);
+emit_32(1127460897);
+emit_32(1110072466);
+emit_32(1119584256);
+emit_32(1127716880);
+emit_32(1109486102);
+emit_32(1119584256);
+emit_32(1127972864);
+emit_32(1108855960);
+emit_32(1119584256);
+emit_32(1128228848);
+emit_32(1108119781);
+emit_32(1119584256);
+emit_32(1128484897);
+emit_32(1107034689);
+emit_32(1119584256);
+emit_32(1128740880);
+emit_32(1106087772);
+emit_32(1119584256);
+emit_32(1128996864);
+emit_32(1105093617);
+emit_32(1119584256);
+emit_32(1129252848);
+emit_32(1104335182);
+emit_32(1119584256);
+emit_32(1129508897);
+emit_32(1104074192);
+emit_32(1119584256);
+emit_32(1129764880);
+emit_32(1103483057);
+emit_32(1119584256);
+emit_32(1130020864);
+emit_32(1102981208);
+emit_32(1119584256);
+emit_32(1130276848);
+emit_32(1101489714);
+emit_32(1119584256);
+emit_32(1130532897);
+emit_32(1100552235);
+emit_32(1119584256);
+emit_32(1130788880);
+emit_32(1100255278);
+emit_32(1119584256);
+emit_32(1131044864);
+emit_32(1099722392);
+emit_32(1119584256);
+emit_32(1131300848);
+emit_32(1097754634);
+emit_32(1119584256);
+emit_32(1131556897);
+emit_32(1099078199);
+emit_32(1119584256);
+emit_32(1131812880);
+emit_32(1098909588);
+emit_32(1119584256);
+emit_32(1132068864);
+emit_32(1098899364);
+emit_32(1119584256);
+emit_32(1081737216);
+emit_32(1098532992);
+emit_32(1119072263);
+emit_32(1090125824);
+emit_32(1099050359);
+emit_32(1119072263);
+emit_32(1094418484);
+emit_32(1099771203);
+emit_32(1119072263);
+emit_32(1098514432);
+emit_32(1100405277);
+emit_32(1119072263);
+emit_32(1100759066);
+emit_32(1100821823);
+emit_32(1119072263);
+emit_32(1102807040);
+emit_32(1101489399);
+emit_32(1119072263);
+emit_32(1104855066);
+emit_32(1101426590);
+emit_32(1119072263);
+emit_32(1106903040);
+emit_32(1101124023);
+emit_32(1119072263);
+emit_32(1108123661);
+emit_32(1101831497);
+emit_32(1119072263);
+emit_32(1109147648);
+emit_32(1102350123);
+emit_32(1119072263);
+emit_32(1110171661);
+emit_32(1102793199);
+emit_32(1119072263);
+emit_32(1111195648);
+emit_32(1102843111);
+emit_32(1119072263);
+emit_32(1112219661);
+emit_32(1102558318);
+emit_32(1119072263);
+emit_32(1113243648);
+emit_32(1101824891);
+emit_32(1119072263);
+emit_32(1114267661);
+emit_32(1101196113);
+emit_32(1119072263);
+emit_32(1115291648);
+emit_32(1100804365);
+emit_32(1119072263);
+emit_32(1116000263);
+emit_32(1100310538);
+emit_32(1119072263);
+emit_32(1116512256);
+emit_32(1100314680);
+emit_32(1119072263);
+emit_32(1117024263);
+emit_32(1100878604);
+emit_32(1119072263);
+emit_32(1117536256);
+emit_32(1101233180);
+emit_32(1119072263);
+emit_32(1118048263);
+emit_32(1101099486);
+emit_32(1119072263);
+emit_32(1118560256);
+emit_32(1100717123);
+emit_32(1119072263);
+emit_32(1119072263);
+emit_32(1100634758);
+emit_32(1119072263);
+emit_32(1119584256);
+emit_32(1100997670);
+emit_32(1119072263);
+emit_32(1120096263);
+emit_32(1101349205);
+emit_32(1119072263);
+emit_32(1120608322);
+emit_32(1101475873);
+emit_32(1119072263);
+emit_32(1121120289);
+emit_32(1101425646);
+emit_32(1119072263);
+emit_32(1121632256);
+emit_32(1101796422);
+emit_32(1119072263);
+emit_32(1122144223);
+emit_32(1102446120);
+emit_32(1119072263);
+emit_32(1122656322);
+emit_32(1103203559);
+emit_32(1119072263);
+emit_32(1123168289);
+emit_32(1104856849);
+emit_32(1119072263);
+emit_32(1123680256);
+emit_32(1106223877);
+emit_32(1119072263);
+emit_32(1124132848);
+emit_32(1107396421);
+emit_32(1119072263);
+emit_32(1124388897);
+emit_32(1107875018);
+emit_32(1119072263);
+emit_32(1124644880);
+emit_32(1108277173);
+emit_32(1119072263);
+emit_32(1124900864);
+emit_32(1108512814);
+emit_32(1119072263);
+emit_32(1125156848);
+emit_32(1109177296);
+emit_32(1119072263);
+emit_32(1125412897);
+emit_32(1109962811);
+emit_32(1119072263);
+emit_32(1125668880);
+emit_32(1110386698);
+emit_32(1119072263);
+emit_32(1125924864);
+emit_32(1110954895);
+emit_32(1119072263);
+emit_32(1126180848);
+emit_32(1111373146);
+emit_32(1119072263);
+emit_32(1126436897);
+emit_32(1111232741);
+emit_32(1119072263);
+emit_32(1126692880);
+emit_32(1110968474);
+emit_32(1119072263);
+emit_32(1126948864);
+emit_32(1110976076);
+emit_32(1119072263);
+emit_32(1127204848);
+emit_32(1110947948);
+emit_32(1119072263);
+emit_32(1127460897);
+emit_32(1110319458);
+emit_32(1119072263);
+emit_32(1127716880);
+emit_32(1109529802);
+emit_32(1119072263);
+emit_32(1127972864);
+emit_32(1108903985);
+emit_32(1119072263);
+emit_32(1128228848);
+emit_32(1108310439);
+emit_32(1119072263);
+emit_32(1128484897);
+emit_32(1107575387);
+emit_32(1119072263);
+emit_32(1128740880);
+emit_32(1106795613);
+emit_32(1119072263);
+emit_32(1128996864);
+emit_32(1105037099);
+emit_32(1119072263);
+emit_32(1129252848);
+emit_32(1104566131);
+emit_32(1119072263);
+emit_32(1129508897);
+emit_32(1104325640);
+emit_32(1119072263);
+emit_32(1129764880);
+emit_32(1103661315);
+emit_32(1119072263);
+emit_32(1130020864);
+emit_32(1102795191);
+emit_32(1119072263);
+emit_32(1130276848);
+emit_32(1101517868);
+emit_32(1119072263);
+emit_32(1130532897);
+emit_32(1100461113);
+emit_32(1119072263);
+emit_32(1130788880);
+emit_32(1100370097);
+emit_32(1119072263);
+emit_32(1131044864);
+emit_32(1099572602);
+emit_32(1119072263);
+emit_32(1131300848);
+emit_32(1097838100);
+emit_32(1119072263);
+emit_32(1131556897);
+emit_32(1098295594);
+emit_32(1119072263);
+emit_32(1131812880);
+emit_32(1098303459);
+emit_32(1119072263);
+emit_32(1132068864);
+emit_32(1098824601);
+emit_32(1119072263);
+emit_32(1081737216);
+emit_32(1098479410);
+emit_32(1118560256);
+emit_32(1090125824);
+emit_32(1099112959);
+emit_32(1118560256);
+emit_32(1094418484);
+emit_32(1100063546);
+emit_32(1118560256);
+emit_32(1098514432);
+emit_32(1100578082);
+emit_32(1118560256);
+emit_32(1100759066);
+emit_32(1101399327);
+emit_32(1118560256);
+emit_32(1102807040);
+emit_32(1101862745);
+emit_32(1118560256);
+emit_32(1104855066);
+emit_32(1102014684);
+emit_32(1118560256);
+emit_32(1106903040);
+emit_32(1101855457);
+emit_32(1118560256);
+emit_32(1108123661);
+emit_32(1102305349);
+emit_32(1118560256);
+emit_32(1109147648);
+emit_32(1102995679);
+emit_32(1118560256);
+emit_32(1110171661);
+emit_32(1103423603);
+emit_32(1118560256);
+emit_32(1111195648);
+emit_32(1103543455);
+emit_32(1118560256);
+emit_32(1112219661);
+emit_32(1103387741);
+emit_32(1118560256);
+emit_32(1113243648);
+emit_32(1102938374);
+emit_32(1118560256);
+emit_32(1114267661);
+emit_32(1102169244);
+emit_32(1118560256);
+emit_32(1115291648);
+emit_32(1101791704);
+emit_32(1118560256);
+emit_32(1116000263);
+emit_32(1101646581);
+emit_32(1118560256);
+emit_32(1116512256);
+emit_32(1101112698);
+emit_32(1118560256);
+emit_32(1117024263);
+emit_32(1101184998);
+emit_32(1118560256);
+emit_32(1117536256);
+emit_32(1101989727);
+emit_32(1118560256);
+emit_32(1118048263);
+emit_32(1102023229);
+emit_32(1118560256);
+emit_32(1118560256);
+emit_32(1101345377);
+emit_32(1118560256);
+emit_32(1119072263);
+emit_32(1101364199);
+emit_32(1118560256);
+emit_32(1119584256);
+emit_32(1101345325);
+emit_32(1118560256);
+emit_32(1120096263);
+emit_32(1101567780);
+emit_32(1118560256);
+emit_32(1120608322);
+emit_32(1101948047);
+emit_32(1118560256);
+emit_32(1121120289);
+emit_32(1102252343);
+emit_32(1118560256);
+emit_32(1121632256);
+emit_32(1102278400);
+emit_32(1118560256);
+emit_32(1122144223);
+emit_32(1102915882);
+emit_32(1118560256);
+emit_32(1122656322);
+emit_32(1103545342);
+emit_32(1118560256);
+emit_32(1123168289);
+emit_32(1104523873);
+emit_32(1118560256);
+emit_32(1123680256);
+emit_32(1105840623);
+emit_32(1118560256);
+emit_32(1124132848);
+emit_32(1107083500);
+emit_32(1118560256);
+emit_32(1124388897);
+emit_32(1107781668);
+emit_32(1118560256);
+emit_32(1124644880);
+emit_32(1108269990);
+emit_32(1118560256);
+emit_32(1124900864);
+emit_32(1108523300);
+emit_32(1118560256);
+emit_32(1125156848);
+emit_32(1109103110);
+emit_32(1118560256);
+emit_32(1125412897);
+emit_32(1109825526);
+emit_32(1118560256);
+emit_32(1125668880);
+emit_32(1110495330);
+emit_32(1118560256);
+emit_32(1125924864);
+emit_32(1110756478);
+emit_32(1118560256);
+emit_32(1126180848);
+emit_32(1111016630);
+emit_32(1118560256);
+emit_32(1126436897);
+emit_32(1111283388);
+emit_32(1118560256);
+emit_32(1126692880);
+emit_32(1111246530);
+emit_32(1118560256);
+emit_32(1126948864);
+emit_32(1110841937);
+emit_32(1118560256);
+emit_32(1127204848);
+emit_32(1110618826);
+emit_32(1118560256);
+emit_32(1127460897);
+emit_32(1110342972);
+emit_32(1118560256);
+emit_32(1127716880);
+emit_32(1109456191);
+emit_32(1118560256);
+emit_32(1127972864);
+emit_32(1108985774);
+emit_32(1118560256);
+emit_32(1128228848);
+emit_32(1108475956);
+emit_32(1118560256);
+emit_32(1128484897);
+emit_32(1107767512);
+emit_32(1118560256);
+emit_32(1128740880);
+emit_32(1107083552);
+emit_32(1118560256);
+emit_32(1128996864);
+emit_32(1105634525);
+emit_32(1118560256);
+emit_32(1129252848);
+emit_32(1104932871);
+emit_32(1118560256);
+emit_32(1129508897);
+emit_32(1104170766);
+emit_32(1118560256);
+emit_32(1129764880);
+emit_32(1103195904);
+emit_32(1118560256);
+emit_32(1130020864);
+emit_32(1102135532);
+emit_32(1118560256);
+emit_32(1130276848);
+emit_32(1101066089);
+emit_32(1118560256);
+emit_32(1130532897);
+emit_32(1100669413);
+emit_32(1118560256);
+emit_32(1130788880);
+emit_32(1099835795);
+emit_32(1118560256);
+emit_32(1131044864);
+emit_32(1099072641);
+emit_32(1118560256);
+emit_32(1131300848);
+emit_32(1097951976);
+emit_32(1118560256);
+emit_32(1131556897);
+emit_32(1097998742);
+emit_32(1118560256);
+emit_32(1131812880);
+emit_32(1097628595);
+emit_32(1118560256);
+emit_32(1132068864);
+emit_32(1098095945);
+emit_32(1118560256);
+emit_32(1081737216);
+emit_32(1099413271);
+emit_32(1118048263);
+emit_32(1090125824);
+emit_32(1099851366);
+emit_32(1118048263);
+emit_32(1094418484);
+emit_32(1100634810);
+emit_32(1118048263);
+emit_32(1098514432);
+emit_32(1101543191);
+emit_32(1118048263);
+emit_32(1100759066);
+emit_32(1102227020);
+emit_32(1118048263);
+emit_32(1102807040);
+emit_32(1102623329);
+emit_32(1118048263);
+emit_32(1104855066);
+emit_32(1102636122);
+emit_32(1118048263);
+emit_32(1106903040);
+emit_32(1102855746);
+emit_32(1118048263);
+emit_32(1108123661);
+emit_32(1103180228);
+emit_32(1118048263);
+emit_32(1109147648);
+emit_32(1103670700);
+emit_32(1118048263);
+emit_32(1110171661);
+emit_32(1104191894);
+emit_32(1118048263);
+emit_32(1111195648);
+emit_32(1104328733);
+emit_32(1118048263);
+emit_32(1112219661);
+emit_32(1103856769);
+emit_32(1118048263);
+emit_32(1113243648);
+emit_32(1103570665);
+emit_32(1118048263);
+emit_32(1114267661);
+emit_32(1103155744);
+emit_32(1118048263);
+emit_32(1115291648);
+emit_32(1103141221);
+emit_32(1118048263);
+emit_32(1116000263);
+emit_32(1102853230);
+emit_32(1118048263);
+emit_32(1116512256);
+emit_32(1102033034);
+emit_32(1118048263);
+emit_32(1117024263);
+emit_32(1102017724);
+emit_32(1118048263);
+emit_32(1117536256);
+emit_32(1102380584);
+emit_32(1118048263);
+emit_32(1118048263);
+emit_32(1102405698);
+emit_32(1118048263);
+emit_32(1118560256);
+emit_32(1101754689);
+emit_32(1118048263);
+emit_32(1119072263);
+emit_32(1101894202);
+emit_32(1118048263);
+emit_32(1119584256);
+emit_32(1101906471);
+emit_32(1118048263);
+emit_32(1120096263);
+emit_32(1102313056);
+emit_32(1118048263);
+emit_32(1120608322);
+emit_32(1102601309);
+emit_32(1118048263);
+emit_32(1121120289);
+emit_32(1102592606);
+emit_32(1118048263);
+emit_32(1121632256);
+emit_32(1102703493);
+emit_32(1118048263);
+emit_32(1122144223);
+emit_32(1102937378);
+emit_32(1118048263);
+emit_32(1122656322);
+emit_32(1103504867);
+emit_32(1118048263);
+emit_32(1123168289);
+emit_32(1104384675);
+emit_32(1118048263);
+emit_32(1123680256);
+emit_32(1105635049);
+emit_32(1118048263);
+emit_32(1124132848);
+emit_32(1106752255);
+emit_32(1118048263);
+emit_32(1124388897);
+emit_32(1107767879);
+emit_32(1118048263);
+emit_32(1124644880);
+emit_32(1108294474);
+emit_32(1118048263);
+emit_32(1124900864);
+emit_32(1108613634);
+emit_32(1118048263);
+emit_32(1125156848);
+emit_32(1109065177);
+emit_32(1118048263);
+emit_32(1125412897);
+emit_32(1109930095);
+emit_32(1118048263);
+emit_32(1125668880);
+emit_32(1110386383);
+emit_32(1118048263);
+emit_32(1125924864);
+emit_32(1110751995);
+emit_32(1118048263);
+emit_32(1126180848);
+emit_32(1111030602);
+emit_32(1118048263);
+emit_32(1126436897);
+emit_32(1111233554);
+emit_32(1118048263);
+emit_32(1126692880);
+emit_32(1111303704);
+emit_32(1118048263);
+emit_32(1126948864);
+emit_32(1111031703);
+emit_32(1118048263);
+emit_32(1127204848);
+emit_32(1110529488);
+emit_32(1118048263);
+emit_32(1127460897);
+emit_32(1110208545);
+emit_32(1118048263);
+emit_32(1127716880);
+emit_32(1109599375);
+emit_32(1118048263);
+emit_32(1127972864);
+emit_32(1109300609);
+emit_32(1118048263);
+emit_32(1128228848);
+emit_32(1108749189);
+emit_32(1118048263);
+emit_32(1128484897);
+emit_32(1108160047);
+emit_32(1118048263);
+emit_32(1128740880);
+emit_32(1107724180);
+emit_32(1118048263);
+emit_32(1128996864);
+emit_32(1106714873);
+emit_32(1118048263);
+emit_32(1129252848);
+emit_32(1104821512);
+emit_32(1118048263);
+emit_32(1129508897);
+emit_32(1103852103);
+emit_32(1118048263);
+emit_32(1129764880);
+emit_32(1103039771);
+emit_32(1118048263);
+emit_32(1130020864);
+emit_32(1102286212);
+emit_32(1118048263);
+emit_32(1130276848);
+emit_32(1101202509);
+emit_32(1118048263);
+emit_32(1130532897);
+emit_32(1100589197);
+emit_32(1118048263);
+emit_32(1130788880);
+emit_32(1100484811);
+emit_32(1118048263);
+emit_32(1131044864);
+emit_32(1099835113);
+emit_32(1118048263);
+emit_32(1131300848);
+emit_32(1098729600);
+emit_32(1118048263);
+emit_32(1131556897);
+emit_32(1097121608);
+emit_32(1118048263);
+emit_32(1131812880);
+emit_32(1098002203);
+emit_32(1118048263);
+emit_32(1132068864);
+emit_32(1097770887);
+emit_32(1118048263);
+emit_32(1081737216);
+emit_32(1100388447);
+emit_32(1117536256);
+emit_32(1090125824);
+emit_32(1100757493);
+emit_32(1117536256);
+emit_32(1094418484);
+emit_32(1101501091);
+emit_32(1117536256);
+emit_32(1098514432);
+emit_32(1102103236);
+emit_32(1117536256);
+emit_32(1100759066);
+emit_32(1102707845);
+emit_32(1117536256);
+emit_32(1102807040);
+emit_32(1103009572);
+emit_32(1117536256);
+emit_32(1104855066);
+emit_32(1103428898);
+emit_32(1117536256);
+emit_32(1106903040);
+emit_32(1103146831);
+emit_32(1117536256);
+emit_32(1108123661);
+emit_32(1103947576);
+emit_32(1117536256);
+emit_32(1109147648);
+emit_32(1104597484);
+emit_32(1117536256);
+emit_32(1110171661);
+emit_32(1104667424);
+emit_32(1117536256);
+emit_32(1111195648);
+emit_32(1104486230);
+emit_32(1117536256);
+emit_32(1112219661);
+emit_32(1104487068);
+emit_32(1117536256);
+emit_32(1113243648);
+emit_32(1104896904);
+emit_32(1117536256);
+emit_32(1114267661);
+emit_32(1104464524);
+emit_32(1117536256);
+emit_32(1115291648);
+emit_32(1104222355);
+emit_32(1117536256);
+emit_32(1116000263);
+emit_32(1103558974);
+emit_32(1117536256);
+emit_32(1116512256);
+emit_32(1103033480);
+emit_32(1117536256);
+emit_32(1117024263);
+emit_32(1102717544);
+emit_32(1117536256);
+emit_32(1117536256);
+emit_32(1102634340);
+emit_32(1117536256);
+emit_32(1118048263);
+emit_32(1102741976);
+emit_32(1117536256);
+emit_32(1118560256);
+emit_32(1102625007);
+emit_32(1117536256);
+emit_32(1119072263);
+emit_32(1102725618);
+emit_32(1117536256);
+emit_32(1119584256);
+emit_32(1103254520);
+emit_32(1117536256);
+emit_32(1120096263);
+emit_32(1103392722);
+emit_32(1117536256);
+emit_32(1120608322);
+emit_32(1103322992);
+emit_32(1117536256);
+emit_32(1121120289);
+emit_32(1103436395);
+emit_32(1117536256);
+emit_32(1121632256);
+emit_32(1103376417);
+emit_32(1117536256);
+emit_32(1122144223);
+emit_32(1103563325);
+emit_32(1117536256);
+emit_32(1122656322);
+emit_32(1103992612);
+emit_32(1117536256);
+emit_32(1123168289);
+emit_32(1104630514);
+emit_32(1117536256);
+emit_32(1123680256);
+emit_32(1106116556);
+emit_32(1117536256);
+emit_32(1124132848);
+emit_32(1106961236);
+emit_32(1117536256);
+emit_32(1124388897);
+emit_32(1107803950);
+emit_32(1117536256);
+emit_32(1124644880);
+emit_32(1108189276);
+emit_32(1117536256);
+emit_32(1124900864);
+emit_32(1108506129);
+emit_32(1117536256);
+emit_32(1125156848);
+emit_32(1109028792);
+emit_32(1117536256);
+emit_32(1125412897);
+emit_32(1109715216);
+emit_32(1117536256);
+emit_32(1125668880);
+emit_32(1110237171);
+emit_32(1117536256);
+emit_32(1125924864);
+emit_32(1110769507);
+emit_32(1117536256);
+emit_32(1126180848);
+emit_32(1111106100);
+emit_32(1117536256);
+emit_32(1126436897);
+emit_32(1111271906);
+emit_32(1117536256);
+emit_32(1126692880);
+emit_32(1111370210);
+emit_32(1117536256);
+emit_32(1126948864);
+emit_32(1111065310);
+emit_32(1117536256);
+emit_32(1127204848);
+emit_32(1110676210);
+emit_32(1117536256);
+emit_32(1127460897);
+emit_32(1110374587);
+emit_32(1117536256);
+emit_32(1127716880);
+emit_32(1110042162);
+emit_32(1117536256);
+emit_32(1127972864);
+emit_32(1109530614);
+emit_32(1117536256);
+emit_32(1128228848);
+emit_32(1108942678);
+emit_32(1117536256);
+emit_32(1128484897);
+emit_32(1108422689);
+emit_32(1117536256);
+emit_32(1128740880);
+emit_32(1108099491);
+emit_32(1117536256);
+emit_32(1128996864);
+emit_32(1107404915);
+emit_32(1117536256);
+emit_32(1129252848);
+emit_32(1105961366);
+emit_32(1117536256);
+emit_32(1129508897);
+emit_32(1104014161);
+emit_32(1117536256);
+emit_32(1129764880);
+emit_32(1102659977);
+emit_32(1117536256);
+emit_32(1130020864);
+emit_32(1101498941);
+emit_32(1117536256);
+emit_32(1130276848);
+emit_32(1100603667);
+emit_32(1117536256);
+emit_32(1130532897);
+emit_32(1100248567);
+emit_32(1117536256);
+emit_32(1130788880);
+emit_32(1100396993);
+emit_32(1117536256);
+emit_32(1131044864);
+emit_32(1099775974);
+emit_32(1117536256);
+emit_32(1131300848);
+emit_32(1098614781);
+emit_32(1117536256);
+emit_32(1131556897);
+emit_32(1097165439);
+emit_32(1117536256);
+emit_32(1131812880);
+emit_32(1096806092);
+emit_32(1117536256);
+emit_32(1132068864);
+emit_32(1097532755);
+emit_32(1117536256);
+emit_32(1081737216);
+emit_32(1101362836);
+emit_32(1117024263);
+emit_32(1090125824);
+emit_32(1102440982);
+emit_32(1117024263);
+emit_32(1094418484);
+emit_32(1102525602);
+emit_32(1117024263);
+emit_32(1098514432);
+emit_32(1102772542);
+emit_32(1117024263);
+emit_32(1100759066);
+emit_32(1102996623);
+emit_32(1117024263);
+emit_32(1102807040);
+emit_32(1103394295);
+emit_32(1117024263);
+emit_32(1104855066);
+emit_32(1103807853);
+emit_32(1117024263);
+emit_32(1106903040);
+emit_32(1104063968);
+emit_32(1117024263);
+emit_32(1108123661);
+emit_32(1104272477);
+emit_32(1117024263);
+emit_32(1109147648);
+emit_32(1105094404);
+emit_32(1117024263);
+emit_32(1110171661);
+emit_32(1105462297);
+emit_32(1117024263);
+emit_32(1111195648);
+emit_32(1105615756);
+emit_32(1117024263);
+emit_32(1112219661);
+emit_32(1105780539);
+emit_32(1117024263);
+emit_32(1113243648);
+emit_32(1105949622);
+emit_32(1117024263);
+emit_32(1114267661);
+emit_32(1105825523);
+emit_32(1117024263);
+emit_32(1115291648);
+emit_32(1105325457);
+emit_32(1117024263);
+emit_32(1116000263);
+emit_32(1104503217);
+emit_32(1117024263);
+emit_32(1116512256);
+emit_32(1103914389);
+emit_32(1117024263);
+emit_32(1117024263);
+emit_32(1103220703);
+emit_32(1117024263);
+emit_32(1117536256);
+emit_32(1103554989);
+emit_32(1117024263);
+emit_32(1118048263);
+emit_32(1103557663);
+emit_32(1117024263);
+emit_32(1118560256);
+emit_32(1103000555);
+emit_32(1117024263);
+emit_32(1119072263);
+emit_32(1103407455);
+emit_32(1117024263);
+emit_32(1119584256);
+emit_32(1103934783);
+emit_32(1117024263);
+emit_32(1120096263);
+emit_32(1103628861);
+emit_32(1117024263);
+emit_32(1120608322);
+emit_32(1103876221);
+emit_32(1117024263);
+emit_32(1121120289);
+emit_32(1104062762);
+emit_32(1117024263);
+emit_32(1121632256);
+emit_32(1104076446);
+emit_32(1117024263);
+emit_32(1122144223);
+emit_32(1104571479);
+emit_32(1117024263);
+emit_32(1122656322);
+emit_32(1105134302);
+emit_32(1117024263);
+emit_32(1123168289);
+emit_32(1105662312);
+emit_32(1117024263);
+emit_32(1123680256);
+emit_32(1106251717);
+emit_32(1117024263);
+emit_32(1124132848);
+emit_32(1107284512);
+emit_32(1117024263);
+emit_32(1124388897);
+emit_32(1107873183);
+emit_32(1117024263);
+emit_32(1124644880);
+emit_32(1108188149);
+emit_32(1117024263);
+emit_32(1124900864);
+emit_32(1108443241);
+emit_32(1117024263);
+emit_32(1125156848);
+emit_32(1109131028);
+emit_32(1117024263);
+emit_32(1125412897);
+emit_32(1109732884);
+emit_32(1117024263);
+emit_32(1125668880);
+emit_32(1110471632);
+emit_32(1117024263);
+emit_32(1125924864);
+emit_32(1111024494);
+emit_32(1117024263);
+emit_32(1126180848);
+emit_32(1111170666);
+emit_32(1117024263);
+emit_32(1126436897);
+emit_32(1111345332);
+emit_32(1117024263);
+emit_32(1126692880);
+emit_32(1111265011);
+emit_32(1117024263);
+emit_32(1126948864);
+emit_32(1110964620);
+emit_32(1117024263);
+emit_32(1127204848);
+emit_32(1110816430);
+emit_32(1117024263);
+emit_32(1127460897);
+emit_32(1110708847);
+emit_32(1117024263);
+emit_32(1127716880);
+emit_32(1110212162);
+emit_32(1117024263);
+emit_32(1127972864);
+emit_32(1109715111);
+emit_32(1117024263);
+emit_32(1128228848);
+emit_32(1108818579);
+emit_32(1117024263);
+emit_32(1128484897);
+emit_32(1108483873);
+emit_32(1117024263);
+emit_32(1128740880);
+emit_32(1108125627);
+emit_32(1117024263);
+emit_32(1128996864);
+emit_32(1107598718);
+emit_32(1117024263);
+emit_32(1129252848);
+emit_32(1106363390);
+emit_32(1117024263);
+emit_32(1129508897);
+emit_32(1104237822);
+emit_32(1117024263);
+emit_32(1129764880);
+emit_32(1102138258);
+emit_32(1117024263);
+emit_32(1130020864);
+emit_32(1100193202);
+emit_32(1117024263);
+emit_32(1130276848);
+emit_32(1099480433);
+emit_32(1117024263);
+emit_32(1130532897);
+emit_32(1099613759);
+emit_32(1117024263);
+emit_32(1130788880);
+emit_32(1099142005);
+emit_32(1117024263);
+emit_32(1131044864);
+emit_32(1098613732);
+emit_32(1117024263);
+emit_32(1131300848);
+emit_32(1097637718);
+emit_32(1117024263);
+emit_32(1131556897);
+emit_32(1096434057);
+emit_32(1117024263);
+emit_32(1131812880);
+emit_32(1095523684);
+emit_32(1117024263);
+emit_32(1132068864);
+emit_32(1096168243);
+emit_32(1117024263);
+emit_32(1081737216);
+emit_32(1102550401);
+emit_32(1116512256);
+emit_32(1090125824);
+emit_32(1103281835);
+emit_32(1116512256);
+emit_32(1094418484);
+emit_32(1103432620);
+emit_32(1116512256);
+emit_32(1098514432);
+emit_32(1103624300);
+emit_32(1116512256);
+emit_32(1100759066);
+emit_32(1103732880);
+emit_32(1116512256);
+emit_32(1102807040);
+emit_32(1103772569);
+emit_32(1116512256);
+emit_32(1104855066);
+emit_32(1104059145);
+emit_32(1116512256);
+emit_32(1106903040);
+emit_32(1104733694);
+emit_32(1116512256);
+emit_32(1108123661);
+emit_32(1105135927);
+emit_32(1116512256);
+emit_32(1109147648);
+emit_32(1105641446);
+emit_32(1116512256);
+emit_32(1110171661);
+emit_32(1106189117);
+emit_32(1116512256);
+emit_32(1111195648);
+emit_32(1106590984);
+emit_32(1116512256);
+emit_32(1112219661);
+emit_32(1106792730);
+emit_32(1116512256);
+emit_32(1113243648);
+emit_32(1107103528);
+emit_32(1116512256);
+emit_32(1114267661);
+emit_32(1107045751);
+emit_32(1116512256);
+emit_32(1115291648);
+emit_32(1106493886);
+emit_32(1116512256);
+emit_32(1116000263);
+emit_32(1105577011);
+emit_32(1116512256);
+emit_32(1116512256);
+emit_32(1104601992);
+emit_32(1116512256);
+emit_32(1117024263);
+emit_32(1103981498);
+emit_32(1116512256);
+emit_32(1117536256);
+emit_32(1104213076);
+emit_32(1116512256);
+emit_32(1118048263);
+emit_32(1103729577);
+emit_32(1116512256);
+emit_32(1118560256);
+emit_32(1103354344);
+emit_32(1116512256);
+emit_32(1119072263);
+emit_32(1103689836);
+emit_32(1116512256);
+emit_32(1119584256);
+emit_32(1104224505);
+emit_32(1116512256);
+emit_32(1120096263);
+emit_32(1104374714);
+emit_32(1116512256);
+emit_32(1120608322);
+emit_32(1104188696);
+emit_32(1116512256);
+emit_32(1121120289);
+emit_32(1104209773);
+emit_32(1116512256);
+emit_32(1121632256);
+emit_32(1104973765);
+emit_32(1116512256);
+emit_32(1122144223);
+emit_32(1105524110);
+emit_32(1116512256);
+emit_32(1122656322);
+emit_32(1106275992);
+emit_32(1116512256);
+emit_32(1123168289);
+emit_32(1106381373);
+emit_32(1116512256);
+emit_32(1123680256);
+emit_32(1106763527);
+emit_32(1116512256);
+emit_32(1124132848);
+emit_32(1107402293);
+emit_32(1116512256);
+emit_32(1124388897);
+emit_32(1107816822);
+emit_32(1116512256);
+emit_32(1124644880);
+emit_32(1108307293);
+emit_32(1116512256);
+emit_32(1124900864);
+emit_32(1108759098);
+emit_32(1116512256);
+emit_32(1125156848);
+emit_32(1109471632);
+emit_32(1116512256);
+emit_32(1125412897);
+emit_32(1109900027);
+emit_32(1116512256);
+emit_32(1125668880);
+emit_32(1110484111);
+emit_32(1116512256);
+emit_32(1125924864);
+emit_32(1110873316);
+emit_32(1116512256);
+emit_32(1126180848);
+emit_32(1111321923);
+emit_32(1116512256);
+emit_32(1126436897);
+emit_32(1111520628);
+emit_32(1116512256);
+emit_32(1126692880);
+emit_32(1111429507);
+emit_32(1116512256);
+emit_32(1126948864);
+emit_32(1110992722);
+emit_32(1116512256);
+emit_32(1127204848);
+emit_32(1110804503);
+emit_32(1116512256);
+emit_32(1127460897);
+emit_32(1110532633);
+emit_32(1116512256);
+emit_32(1127716880);
+emit_32(1110132130);
+emit_32(1116512256);
+emit_32(1127972864);
+emit_32(1109531112);
+emit_32(1116512256);
+emit_32(1128228848);
+emit_32(1108783425);
+emit_32(1116512256);
+emit_32(1128484897);
+emit_32(1108534467);
+emit_32(1116512256);
+emit_32(1128740880);
+emit_32(1108104918);
+emit_32(1116512256);
+emit_32(1128996864);
+emit_32(1107580866);
+emit_32(1116512256);
+emit_32(1129252848);
+emit_32(1106274314);
+emit_32(1116512256);
+emit_32(1129508897);
+emit_32(1104539025);
+emit_32(1116512256);
+emit_32(1129764880);
+emit_32(1102452516);
+emit_32(1116512256);
+emit_32(1130020864);
+emit_32(1100238029);
+emit_32(1116512256);
+emit_32(1130276848);
+emit_32(1098493670);
+emit_32(1116512256);
+emit_32(1130532897);
+emit_32(1097538732);
+emit_32(1116512256);
+emit_32(1130788880);
+emit_32(1097860435);
+emit_32(1116512256);
+emit_32(1131044864);
+emit_32(1096806826);
+emit_32(1116512256);
+emit_32(1131300848);
+emit_32(1095175137);
+emit_32(1116512256);
+emit_32(1131556897);
+emit_32(1095179751);
+emit_32(1116512256);
+emit_32(1131812880);
+emit_32(1094445538);
+emit_32(1116512256);
+emit_32(1132068864);
+emit_32(1094491675);
+emit_32(1116512256);
+emit_32(1081737216);
+emit_32(1103917954);
+emit_32(1116000263);
+emit_32(1090125824);
+emit_32(1104214281);
+emit_32(1116000263);
+emit_32(1094418484);
+emit_32(1104273211);
+emit_32(1116000263);
+emit_32(1098514432);
+emit_32(1104389236);
+emit_32(1116000263);
+emit_32(1100759066);
+emit_32(1104665746);
+emit_32(1116000263);
+emit_32(1102807040);
+emit_32(1104683886);
+emit_32(1116000263);
+emit_32(1104855066);
+emit_32(1104862354);
+emit_32(1116000263);
+emit_32(1106903040);
+emit_32(1105668342);
+emit_32(1116000263);
+emit_32(1108123661);
+emit_32(1106303097);
+emit_32(1116000263);
+emit_32(1109147648);
+emit_32(1106378228);
+emit_32(1116000263);
+emit_32(1110171661);
+emit_32(1106845054);
+emit_32(1116000263);
+emit_32(1111195648);
+emit_32(1107149298);
+emit_32(1116000263);
+emit_32(1112219661);
+emit_32(1107634553);
+emit_32(1116000263);
+emit_32(1113243648);
+emit_32(1107721139);
+emit_32(1116000263);
+emit_32(1114267661);
+emit_32(1107693457);
+emit_32(1116000263);
+emit_32(1115291648);
+emit_32(1107040823);
+emit_32(1116000263);
+emit_32(1116000263);
+emit_32(1106302678);
+emit_32(1116000263);
+emit_32(1116512256);
+emit_32(1105678251);
+emit_32(1116000263);
+emit_32(1117024263);
+emit_32(1104723575);
+emit_32(1116000263);
+emit_32(1117536256);
+emit_32(1104584219);
+emit_32(1116000263);
+emit_32(1118048263);
+emit_32(1104086408);
+emit_32(1116000263);
+emit_32(1118560256);
+emit_32(1103762398);
+emit_32(1116000263);
+emit_32(1119072263);
+emit_32(1104084573);
+emit_32(1116000263);
+emit_32(1119584256);
+emit_32(1104925583);
+emit_32(1116000263);
+emit_32(1120096263);
+emit_32(1104774273);
+emit_32(1116000263);
+emit_32(1120608322);
+emit_32(1104591244);
+emit_32(1116000263);
+emit_32(1121120289);
+emit_32(1104826283);
+emit_32(1116000263);
+emit_32(1121632256);
+emit_32(1105545973);
+emit_32(1116000263);
+emit_32(1122144223);
+emit_32(1105872919);
+emit_32(1116000263);
+emit_32(1122656322);
+emit_32(1106423946);
+emit_32(1116000263);
+emit_32(1123168289);
+emit_32(1107313243);
+emit_32(1116000263);
+emit_32(1123680256);
+emit_32(1107471709);
+emit_32(1116000263);
+emit_32(1124132848);
+emit_32(1107748166);
+emit_32(1116000263);
+emit_32(1124388897);
+emit_32(1108035319);
+emit_32(1116000263);
+emit_32(1124644880);
+emit_32(1108525135);
+emit_32(1116000263);
+emit_32(1124900864);
+emit_32(1109011254);
+emit_32(1116000263);
+emit_32(1125156848);
+emit_32(1109529539);
+emit_32(1116000263);
+emit_32(1125412897);
+emit_32(1109929073);
+emit_32(1116000263);
+emit_32(1125668880);
+emit_32(1110361244);
+emit_32(1116000263);
+emit_32(1125924864);
+emit_32(1111018701);
+emit_32(1116000263);
+emit_32(1126180848);
+emit_32(1111418392);
+emit_32(1116000263);
+emit_32(1126436897);
+emit_32(1111581943);
+emit_32(1116000263);
+emit_32(1126692880);
+emit_32(1111596912);
+emit_32(1116000263);
+emit_32(1126948864);
+emit_32(1111336970);
+emit_32(1116000263);
+emit_32(1127204848);
+emit_32(1110946611);
+emit_32(1116000263);
+emit_32(1127460897);
+emit_32(1110462222);
+emit_32(1116000263);
+emit_32(1127716880);
+emit_32(1109940398);
+emit_32(1116000263);
+emit_32(1127972864);
+emit_32(1109463846);
+emit_32(1116000263);
+emit_32(1128228848);
+emit_32(1108875307);
+emit_32(1116000263);
+emit_32(1128484897);
+emit_32(1108586607);
+emit_32(1116000263);
+emit_32(1128740880);
+emit_32(1108248442);
+emit_32(1116000263);
+emit_32(1128996864);
+emit_32(1107558426);
+emit_32(1116000263);
+emit_32(1129252848);
+emit_32(1106322391);
+emit_32(1116000263);
+emit_32(1129508897);
+emit_32(1104389131);
+emit_32(1116000263);
+emit_32(1129764880);
+emit_32(1102274835);
+emit_32(1116000263);
+emit_32(1130020864);
+emit_32(1100247571);
+emit_32(1116000263);
+emit_32(1130276848);
+emit_32(1098982516);
+emit_32(1116000263);
+emit_32(1130532897);
+emit_32(1097852990);
+emit_32(1116000263);
+emit_32(1130788880);
+emit_32(1097777388);
+emit_32(1116000263);
+emit_32(1131044864);
+emit_32(1096162057);
+emit_32(1116000263);
+emit_32(1131300848);
+emit_32(1093655750);
+emit_32(1116000263);
+emit_32(1131556897);
+emit_32(1093255194);
+emit_32(1116000263);
+emit_32(1131812880);
+emit_32(1092384509);
+emit_32(1116000263);
+emit_32(1132068864);
+emit_32(1092614651);
+emit_32(1116000263);
+emit_32(1081737216);
+emit_32(1104775951);
+emit_32(1115291648);
+emit_32(1090125824);
+emit_32(1105273081);
+emit_32(1115291648);
+emit_32(1094418484);
+emit_32(1105163033);
+emit_32(1115291648);
+emit_32(1098514432);
+emit_32(1105037623);
+emit_32(1115291648);
+emit_32(1100759066);
+emit_32(1105121038);
+emit_32(1115291648);
+emit_32(1102807040);
+emit_32(1105312455);
+emit_32(1115291648);
+emit_32(1104855066);
+emit_32(1106012694);
+emit_32(1115291648);
+emit_32(1106903040);
+emit_32(1106371779);
+emit_32(1115291648);
+emit_32(1108123661);
+emit_32(1106828329);
+emit_32(1115291648);
+emit_32(1109147648);
+emit_32(1107099071);
+emit_32(1115291648);
+emit_32(1110171661);
+emit_32(1107519026);
+emit_32(1115291648);
+emit_32(1111195648);
+emit_32(1107598272);
+emit_32(1115291648);
+emit_32(1112219661);
+emit_32(1107988605);
+emit_32(1115291648);
+emit_32(1113243648);
+emit_32(1108084340);
+emit_32(1115291648);
+emit_32(1114267661);
+emit_32(1107768272);
+emit_32(1115291648);
+emit_32(1115291648);
+emit_32(1107585375);
+emit_32(1115291648);
+emit_32(1116000263);
+emit_32(1107334686);
+emit_32(1115291648);
+emit_32(1116512256);
+emit_32(1106384729);
+emit_32(1115291648);
+emit_32(1117024263);
+emit_32(1105355237);
+emit_32(1115291648);
+emit_32(1117536256);
+emit_32(1105239160);
+emit_32(1115291648);
+emit_32(1118048263);
+emit_32(1104804472);
+emit_32(1115291648);
+emit_32(1118560256);
+emit_32(1104295703);
+emit_32(1115291648);
+emit_32(1119072263);
+emit_32(1104303725);
+emit_32(1115291648);
+emit_32(1119584256);
+emit_32(1104739566);
+emit_32(1115291648);
+emit_32(1120096263);
+emit_32(1104935911);
+emit_32(1115291648);
+emit_32(1120608322);
+emit_32(1104793148);
+emit_32(1115291648);
+emit_32(1121120289);
+emit_32(1105350990);
+emit_32(1115291648);
+emit_32(1121632256);
+emit_32(1105666821);
+emit_32(1115291648);
+emit_32(1122144223);
+emit_32(1106542854);
+emit_32(1115291648);
+emit_32(1122656322);
+emit_32(1107330282);
+emit_32(1115291648);
+emit_32(1123168289);
+emit_32(1107522722);
+emit_32(1115291648);
+emit_32(1123680256);
+emit_32(1107991908);
+emit_32(1115291648);
+emit_32(1124132848);
+emit_32(1108210273);
+emit_32(1115291648);
+emit_32(1124388897);
+emit_32(1108506863);
+emit_32(1115291648);
+emit_32(1124644880);
+emit_32(1108775220);
+emit_32(1115291648);
+emit_32(1124900864);
+emit_32(1109189670);
+emit_32(1115291648);
+emit_32(1125156848);
+emit_32(1109527233);
+emit_32(1115291648);
+emit_32(1125412897);
+emit_32(1109974057);
+emit_32(1115291648);
+emit_32(1125668880);
+emit_32(1110321240);
+emit_32(1115291648);
+emit_32(1125924864);
+emit_32(1110734825);
+emit_32(1115291648);
+emit_32(1126180848);
+emit_32(1111142197);
+emit_32(1115291648);
+emit_32(1126436897);
+emit_32(1111340456);
+emit_32(1115291648);
+emit_32(1126692880);
+emit_32(1111407224);
+emit_32(1115291648);
+emit_32(1126948864);
+emit_32(1111510535);
+emit_32(1115291648);
+emit_32(1127204848);
+emit_32(1111087042);
+emit_32(1115291648);
+emit_32(1127460897);
+emit_32(1110641816);
+emit_32(1115291648);
+emit_32(1127716880);
+emit_32(1110084734);
+emit_32(1115291648);
+emit_32(1127972864);
+emit_32(1109478107);
+emit_32(1115291648);
+emit_32(1128228848);
+emit_32(1108983703);
+emit_32(1115291648);
+emit_32(1128484897);
+emit_32(1108396684);
+emit_32(1115291648);
+emit_32(1128740880);
+emit_32(1108182303);
+emit_32(1115291648);
+emit_32(1128996864);
+emit_32(1107304776);
+emit_32(1115291648);
+emit_32(1129252848);
+emit_32(1105830714);
+emit_32(1115291648);
+emit_32(1129508897);
+emit_32(1104926999);
+emit_32(1115291648);
+emit_32(1129764880);
+emit_32(1103134825);
+emit_32(1115291648);
+emit_32(1130020864);
+emit_32(1101331694);
+emit_32(1115291648);
+emit_32(1130276848);
+emit_32(1100242905);
+emit_32(1115291648);
+emit_32(1130532897);
+emit_32(1099575381);
+emit_32(1115291648);
+emit_32(1130788880);
+emit_32(1098291610);
+emit_32(1115291648);
+emit_32(1131044864);
+emit_32(1096472330);
+emit_32(1115291648);
+emit_32(1131300848);
+emit_32(1094126875);
+emit_32(1115291648);
+emit_32(1131556897);
+emit_32(1092334691);
+emit_32(1115291648);
+emit_32(1131812880);
+emit_32(1091097822);
+emit_32(1115291648);
+emit_32(1132068864);
+emit_32(1090977194);
+emit_32(1115291648);
+emit_32(1081737216);
+emit_32(1105382343);
+emit_32(1114267661);
+emit_32(1090125824);
+emit_32(1105662155);
+emit_32(1114267661);
+emit_32(1094418484);
+emit_32(1105488092);
+emit_32(1114267661);
+emit_32(1098514432);
+emit_32(1105646479);
+emit_32(1114267661);
+emit_32(1100759066);
+emit_32(1105753591);
+emit_32(1114267661);
+emit_32(1102807040);
+emit_32(1106409108);
+emit_32(1114267661);
+emit_32(1104855066);
+emit_32(1106974396);
+emit_32(1114267661);
+emit_32(1106903040);
+emit_32(1107565006);
+emit_32(1114267661);
+emit_32(1108123661);
+emit_32(1107665538);
+emit_32(1114267661);
+emit_32(1109147648);
+emit_32(1107918481);
+emit_32(1114267661);
+emit_32(1110171661);
+emit_32(1108002577);
+emit_32(1114267661);
+emit_32(1111195648);
+emit_32(1107850848);
+emit_32(1114267661);
+emit_32(1112219661);
+emit_32(1108010494);
+emit_32(1114267661);
+emit_32(1113243648);
+emit_32(1108185815);
+emit_32(1114267661);
+emit_32(1114267661);
+emit_32(1108069791);
+emit_32(1114267661);
+emit_32(1115291648);
+emit_32(1107943490);
+emit_32(1114267661);
+emit_32(1116000263);
+emit_32(1107599924);
+emit_32(1114267661);
+emit_32(1116512256);
+emit_32(1106557691);
+emit_32(1114267661);
+emit_32(1117024263);
+emit_32(1106465102);
+emit_32(1114267661);
+emit_32(1117536256);
+emit_32(1106678120);
+emit_32(1114267661);
+emit_32(1118048263);
+emit_32(1106208044);
+emit_32(1114267661);
+emit_32(1118560256);
+emit_32(1105390469);
+emit_32(1114267661);
+emit_32(1119072263);
+emit_32(1105130632);
+emit_32(1114267661);
+emit_32(1119584256);
+emit_32(1105068923);
+emit_32(1114267661);
+emit_32(1120096263);
+emit_32(1105156532);
+emit_32(1114267661);
+emit_32(1120608322);
+emit_32(1105073537);
+emit_32(1114267661);
+emit_32(1121120289);
+emit_32(1105331225);
+emit_32(1114267661);
+emit_32(1121632256);
+emit_32(1105964145);
+emit_32(1114267661);
+emit_32(1122144223);
+emit_32(1106908702);
+emit_32(1114267661);
+emit_32(1122656322);
+emit_32(1107699250);
+emit_32(1114267661);
+emit_32(1123168289);
+emit_32(1107951485);
+emit_32(1114267661);
+emit_32(1123680256);
+emit_32(1108124448);
+emit_32(1114267661);
+emit_32(1124132848);
+emit_32(1108505998);
+emit_32(1114267661);
+emit_32(1124388897);
+emit_32(1108644332);
+emit_32(1114267661);
+emit_32(1124644880);
+emit_32(1108925429);
+emit_32(1114267661);
+emit_32(1124900864);
+emit_32(1109130320);
+emit_32(1114267661);
+emit_32(1125156848);
+emit_32(1109477189);
+emit_32(1114267661);
+emit_32(1125412897);
+emit_32(1110047693);
+emit_32(1114267661);
+emit_32(1125668880);
+emit_32(1110276833);
+emit_32(1114267661);
+emit_32(1125924864);
+emit_32(1110533420);
+emit_32(1114267661);
+emit_32(1126180848);
+emit_32(1110872975);
+emit_32(1114267635);
+emit_32(1126436897);
+emit_32(1110877064);
+emit_32(1114267635);
+emit_32(1126692880);
+emit_32(1111218743);
+emit_32(1114267661);
+emit_32(1126948864);
+emit_32(1111252874);
+emit_32(1114267661);
+emit_32(1127204848);
+emit_32(1110924067);
+emit_32(1114267635);
+emit_32(1127460897);
+emit_32(1110454855);
+emit_32(1114267635);
+emit_32(1127716880);
+emit_32(1109824949);
+emit_32(1114267661);
+emit_32(1127972864);
+emit_32(1109367508);
+emit_32(1114267661);
+emit_32(1128228848);
+emit_32(1108826469);
+emit_32(1114267661);
+emit_32(1128484897);
+emit_32(1108105521);
+emit_32(1114267661);
+emit_32(1128740880);
+emit_32(1107979010);
+emit_32(1114267661);
+emit_32(1128996864);
+emit_32(1107413408);
+emit_32(1114267661);
+emit_32(1129252848);
+emit_32(1106515224);
+emit_32(1114267661);
+emit_32(1129508897);
+emit_32(1105576277);
+emit_32(1114267661);
+emit_32(1129764880);
+emit_32(1104326584);
+emit_32(1114267661);
+emit_32(1130020864);
+emit_32(1103294261);
+emit_32(1114267661);
+emit_32(1130276848);
+emit_32(1102143501);
+emit_32(1114267661);
+emit_32(1130532897);
+emit_32(1101094348);
+emit_32(1114267661);
+emit_32(1130788880);
+emit_32(1100028785);
+emit_32(1114267661);
+emit_32(1131044864);
+emit_32(1098592446);
+emit_32(1114267661);
+emit_32(1131300848);
+emit_32(1095355492);
+emit_32(1114267661);
+emit_32(1131556897);
+emit_32(1093903738);
+emit_32(1114267661);
+emit_32(1131812880);
+emit_32(1093133979);
+emit_32(1114267661);
+emit_32(1132068864);
+emit_32(1092040083);
+emit_32(1114267661);
+emit_32(1081737216);
+emit_32(1105831238);
+emit_32(1113243648);
+emit_32(1090125824);
+emit_32(1105941548);
+emit_32(1113243648);
+emit_32(1094418484);
+emit_32(1106052330);
+emit_32(1113243648);
+emit_32(1098514432);
+emit_32(1106181987);
+emit_32(1113243648);
+emit_32(1100759066);
+emit_32(1106947762);
+emit_32(1113243648);
+emit_32(1102807040);
+emit_32(1107434170);
+emit_32(1113243648);
+emit_32(1104855066);
+emit_32(1107922597);
+emit_32(1113243648);
+emit_32(1106903040);
+emit_32(1108070236);
+emit_32(1113243648);
+emit_32(1108123661);
+emit_32(1108318408);
+emit_32(1113243648);
+emit_32(1109147648);
+emit_32(1108398991);
+emit_32(1113243648);
+emit_32(1110171661);
+emit_32(1108455247);
+emit_32(1113243648);
+emit_32(1111195648);
+emit_32(1108380929);
+emit_32(1113243648);
+emit_32(1112219661);
+emit_32(1108193129);
+emit_32(1113243648);
+emit_32(1113243648);
+emit_32(1108214940);
+emit_32(1113243648);
+emit_32(1114267661);
+emit_32(1108368189);
+emit_32(1113243648);
+emit_32(1115291648);
+emit_32(1108351228);
+emit_32(1113243648);
+emit_32(1116000263);
+emit_32(1108058728);
+emit_32(1113243648);
+emit_32(1116512256);
+emit_32(1107523561);
+emit_32(1113243648);
+emit_32(1117024263);
+emit_32(1107704624);
+emit_32(1113243648);
+emit_32(1117536256);
+emit_32(1107780384);
+emit_32(1113243648);
+emit_32(1118048263);
+emit_32(1107523797);
+emit_32(1113243648);
+emit_32(1118560256);
+emit_32(1106889671);
+emit_32(1113243648);
+emit_32(1119072263);
+emit_32(1105955127);
+emit_32(1113243648);
+emit_32(1119584256);
+emit_32(1105678513);
+emit_32(1113243648);
+emit_32(1120096263);
+emit_32(1105031175);
+emit_32(1113243648);
+emit_32(1120608322);
+emit_32(1105177346);
+emit_32(1113243648);
+emit_32(1121120289);
+emit_32(1105487043);
+emit_32(1113243648);
+emit_32(1121632256);
+emit_32(1105785782);
+emit_32(1113243648);
+emit_32(1122144223);
+emit_32(1106626950);
+emit_32(1113243648);
+emit_32(1122656322);
+emit_32(1107401638);
+emit_32(1113243648);
+emit_32(1123168289);
+emit_32(1107915047);
+emit_32(1113243648);
+emit_32(1123680256);
+emit_32(1108256070);
+emit_32(1113243648);
+emit_32(1124132848);
+emit_32(1108654529);
+emit_32(1113243648);
+emit_32(1124388897);
+emit_32(1108830034);
+emit_32(1113243648);
+emit_32(1124644880);
+emit_32(1108955156);
+emit_32(1113243648);
+emit_32(1124900864);
+emit_32(1109136769);
+emit_32(1113243648);
+emit_32(1125156848);
+emit_32(1109352907);
+emit_32(1113243648);
+emit_32(1125412897);
+emit_32(1109748534);
+emit_32(1113243648);
+emit_32(1125668880);
+emit_32(1109939926);
+emit_32(1113243648);
+emit_32(1125924864);
+emit_32(1110036867);
+emit_32(1113243648);
+emit_32(1126180848);
+emit_32(1110259401);
+emit_32(1113243648);
+emit_32(1126436897);
+emit_32(1110514257);
+emit_32(1113243648);
+emit_32(1126692880);
+emit_32(1110728167);
+emit_32(1113243648);
+emit_32(1126948864);
+emit_32(1110690470);
+emit_32(1113243648);
+emit_32(1127204848);
+emit_32(1110543172);
+emit_32(1113243648);
+emit_32(1127460897);
+emit_32(1110206867);
+emit_32(1113243648);
+emit_32(1127716880);
+emit_32(1109792994);
+emit_32(1113243648);
+emit_32(1127972864);
+emit_32(1109392779);
+emit_32(1113243648);
+emit_32(1128228848);
+emit_32(1108657596);
+emit_32(1113243648);
+emit_32(1128484897);
+emit_32(1108142902);
+emit_32(1113243648);
+emit_32(1128740880);
+emit_32(1107935625);
+emit_32(1113243648);
+emit_32(1128996864);
+emit_32(1107490216);
+emit_32(1113243648);
+emit_32(1129252848);
+emit_32(1107021844);
+emit_32(1113243648);
+emit_32(1129508897);
+emit_32(1106216328);
+emit_32(1113243648);
+emit_32(1129764880);
+emit_32(1105553103);
+emit_32(1113243648);
+emit_32(1130020864);
+emit_32(1104695106);
+emit_32(1113243648);
+emit_32(1130276848);
+emit_32(1103352404);
+emit_32(1113243648);
+emit_32(1130532897);
+emit_32(1101904950);
+emit_32(1113243648);
+emit_32(1130788880);
+emit_32(1101020476);
+emit_32(1113243648);
+emit_32(1131044864);
+emit_32(1099594623);
+emit_32(1113243648);
+emit_32(1131300848);
+emit_32(1097008782);
+emit_32(1113243648);
+emit_32(1131556897);
+emit_32(1094881640);
+emit_32(1113243648);
+emit_32(1131812880);
+emit_32(1093566726);
+emit_32(1113243648);
+emit_32(1132068864);
+emit_32(1093310244);
+emit_32(1113243648);
+emit_32(1081737216);
+emit_32(1106473438);
+emit_32(1112219661);
+emit_32(1090125824);
+emit_32(1106755138);
+emit_32(1112219661);
+emit_32(1094418484);
+emit_32(1106932662);
+emit_32(1112219661);
+emit_32(1098514432);
+emit_32(1107310071);
+emit_32(1112219661);
+emit_32(1100759066);
+emit_32(1107799179);
+emit_32(1112219661);
+emit_32(1102807040);
+emit_32(1107999693);
+emit_32(1112219661);
+emit_32(1104855066);
+emit_32(1108293059);
+emit_32(1112219661);
+emit_32(1106903040);
+emit_32(1108560839);
+emit_32(1112219661);
+emit_32(1108123661);
+emit_32(1108867783);
+emit_32(1112219661);
+emit_32(1109147648);
+emit_32(1108932769);
+emit_32(1112219661);
+emit_32(1110171661);
+emit_32(1108709527);
+emit_32(1112219661);
+emit_32(1111195648);
+emit_32(1108681661);
+emit_32(1112219661);
+emit_32(1112219661);
+emit_32(1108461250);
+emit_32(1112219661);
+emit_32(1113243648);
+emit_32(1108501751);
+emit_32(1112219661);
+emit_32(1114267661);
+emit_32(1108538058);
+emit_32(1112219661);
+emit_32(1115291648);
+emit_32(1108506155);
+emit_32(1112219661);
+emit_32(1116000263);
+emit_32(1108331069);
+emit_32(1112219661);
+emit_32(1116512256);
+emit_32(1108130713);
+emit_32(1112219661);
+emit_32(1117024263);
+emit_32(1108289153);
+emit_32(1112219661);
+emit_32(1117536256);
+emit_32(1108320872);
+emit_32(1112219661);
+emit_32(1118048263);
+emit_32(1108083946);
+emit_32(1112219661);
+emit_32(1118560256);
+emit_32(1107747196);
+emit_32(1112219661);
+emit_32(1119072263);
+emit_32(1107465942);
+emit_32(1112219661);
+emit_32(1119584256);
+emit_32(1106748480);
+emit_32(1112219661);
+emit_32(1120096263);
+emit_32(1105589856);
+emit_32(1112219661);
+emit_32(1120608322);
+emit_32(1105803398);
+emit_32(1112219661);
+emit_32(1121120289);
+emit_32(1106245426);
+emit_32(1112219661);
+emit_32(1121632256);
+emit_32(1106538345);
+emit_32(1112219661);
+emit_32(1122144223);
+emit_32(1107136191);
+emit_32(1112219661);
+emit_32(1122656322);
+emit_32(1107495066);
+emit_32(1112219661);
+emit_32(1123168289);
+emit_32(1107886552);
+emit_32(1112219661);
+emit_32(1123680256);
+emit_32(1108441668);
+emit_32(1112219661);
+emit_32(1124132848);
+emit_32(1108593266);
+emit_32(1112219661);
+emit_32(1124388897);
+emit_32(1108683470);
+emit_32(1112219661);
+emit_32(1124644880);
+emit_32(1108825211);
+emit_32(1112219661);
+emit_32(1124900864);
+emit_32(1108891271);
+emit_32(1112219661);
+emit_32(1125156848);
+emit_32(1109395715);
+emit_32(1112219661);
+emit_32(1125412897);
+emit_32(1109608864);
+emit_32(1112219661);
+emit_32(1125668880);
+emit_32(1110023576);
+emit_32(1112219661);
+emit_32(1125924864);
+emit_32(1110077237);
+emit_32(1112219661);
+emit_32(1126180848);
+emit_32(1110323678);
+emit_32(1112219661);
+emit_32(1126436897);
+emit_32(1110319510);
+emit_32(1112219661);
+emit_32(1126692880);
+emit_32(1110497559);
+emit_32(1112219635);
+emit_32(1126948864);
+emit_32(1110356630);
+emit_32(1112219661);
+emit_32(1127204848);
+emit_32(1110231745);
+emit_32(1112219661);
+emit_32(1127460897);
+emit_32(1110168568);
+emit_32(1112219661);
+emit_32(1127716880);
+emit_32(1109786440);
+emit_32(1112219661);
+emit_32(1127972864);
+emit_32(1109264984);
+emit_32(1112219661);
+emit_32(1128228848);
+emit_32(1108914445);
+emit_32(1112219661);
+emit_32(1128484897);
+emit_32(1108210640);
+emit_32(1112219661);
+emit_32(1128740880);
+emit_32(1107987897);
+emit_32(1112219661);
+emit_32(1128996864);
+emit_32(1107869644);
+emit_32(1112219661);
+emit_32(1129252848);
+emit_32(1107326534);
+emit_32(1112219661);
+emit_32(1129508897);
+emit_32(1106725831);
+emit_32(1112219661);
+emit_32(1129764880);
+emit_32(1106425466);
+emit_32(1112219661);
+emit_32(1130020864);
+emit_32(1105264955);
+emit_32(1112219661);
+emit_32(1130276848);
+emit_32(1103574860);
+emit_32(1112219661);
+emit_32(1130532897);
+emit_32(1102181460);
+emit_32(1112219661);
+emit_32(1130788880);
+emit_32(1101485677);
+emit_32(1112219661);
+emit_32(1131044864);
+emit_32(1100402288);
+emit_32(1112219661);
+emit_32(1131300848);
+emit_32(1098898421);
+emit_32(1112219661);
+emit_32(1131556897);
+emit_32(1095522425);
+emit_32(1112219661);
+emit_32(1131812880);
+emit_32(1094313732);
+emit_32(1112219661);
+emit_32(1132068864);
+emit_32(1094995201);
+emit_32(1112219661);
+emit_32(1081737216);
+emit_32(1106707585);
+emit_32(1111195648);
+emit_32(1090125824);
+emit_32(1107420879);
+emit_32(1111195648);
+emit_32(1094418484);
+emit_32(1107741455);
+emit_32(1111195648);
+emit_32(1098514432);
+emit_32(1108119388);
+emit_32(1111195648);
+emit_32(1100759066);
+emit_32(1108616649);
+emit_32(1111195648);
+emit_32(1102807040);
+emit_32(1108965851);
+emit_32(1111195648);
+emit_32(1104855066);
+emit_32(1109029919);
+emit_32(1111195648);
+emit_32(1106903040);
+emit_32(1109125602);
+emit_32(1111195648);
+emit_32(1108123661);
+emit_32(1109390551);
+emit_32(1111195648);
+emit_32(1109147648);
+emit_32(1109477215);
+emit_32(1111195648);
+emit_32(1110171661);
+emit_32(1109385334);
+emit_32(1111195648);
+emit_32(1111195648);
+emit_32(1109314608);
+emit_32(1111195648);
+emit_32(1112219661);
+emit_32(1109240919);
+emit_32(1111195648);
+emit_32(1113243648);
+emit_32(1108946400);
+emit_32(1111195648);
+emit_32(1114267661);
+emit_32(1108953006);
+emit_32(1111195648);
+emit_32(1115291648);
+emit_32(1109031911);
+emit_32(1111195648);
+emit_32(1116000263);
+emit_32(1108925062);
+emit_32(1111195648);
+emit_32(1116512256);
+emit_32(1108595887);
+emit_32(1111195648);
+emit_32(1117024263);
+emit_32(1108683941);
+emit_32(1111195648);
+emit_32(1117536256);
+emit_32(1108833809);
+emit_32(1111195648);
+emit_32(1118048263);
+emit_32(1108582282);
+emit_32(1111195648);
+emit_32(1118560256);
+emit_32(1108393093);
+emit_32(1111195648);
+emit_32(1119072263);
+emit_32(1108034008);
+emit_32(1111195648);
+emit_32(1119584256);
+emit_32(1107578926);
+emit_32(1111195648);
+emit_32(1120096263);
+emit_32(1106764313);
+emit_32(1111195648);
+emit_32(1120608322);
+emit_32(1106737365);
+emit_32(1111195648);
+emit_32(1121120289);
+emit_32(1107324568);
+emit_32(1111195648);
+emit_32(1121632256);
+emit_32(1107570511);
+emit_32(1111195648);
+emit_32(1122144223);
+emit_32(1107538818);
+emit_32(1111195648);
+emit_32(1122656322);
+emit_32(1107646926);
+emit_32(1111195648);
+emit_32(1123168289);
+emit_32(1107876984);
+emit_32(1111195648);
+emit_32(1123680256);
+emit_32(1108102060);
+emit_32(1111195648);
+emit_32(1124132848);
+emit_32(1108560812);
+emit_32(1111195648);
+emit_32(1124388897);
+emit_32(1108645328);
+emit_32(1111195648);
+emit_32(1124644880);
+emit_32(1108748770);
+emit_32(1111195648);
+emit_32(1124900864);
+emit_32(1109085782);
+emit_32(1111195648);
+emit_32(1125156848);
+emit_32(1109583226);
+emit_32(1111195648);
+emit_32(1125412897);
+emit_32(1109638486);
+emit_32(1111195648);
+emit_32(1125668880);
+emit_32(1110035425);
+emit_32(1111195648);
+emit_32(1125924864);
+emit_32(1110433989);
+emit_32(1111195648);
+emit_32(1126180848);
+emit_32(1110499420);
+emit_32(1111195648);
+emit_32(1126436897);
+emit_32(1110684860);
+emit_32(1111195648);
+emit_32(1126692880);
+emit_32(1110426858);
+emit_32(1111195648);
+emit_32(1126948864);
+emit_32(1110251405);
+emit_32(1111195648);
+emit_32(1127204848);
+emit_32(1110246503);
+emit_32(1111195648);
+emit_32(1127460897);
+emit_32(1110057366);
+emit_32(1111195648);
+emit_32(1127716880);
+emit_32(1109702135);
+emit_32(1111195648);
+emit_32(1127972864);
+emit_32(1109224404);
+emit_32(1111195648);
+emit_32(1128228848);
+emit_32(1108823035);
+emit_32(1111195648);
+emit_32(1128484897);
+emit_32(1108466703);
+emit_32(1111195648);
+emit_32(1128740880);
+emit_32(1108265009);
+emit_32(1111195648);
+emit_32(1128996864);
+emit_32(1108131919);
+emit_32(1111195648);
+emit_32(1129252848);
+emit_32(1107543668);
+emit_32(1111195648);
+emit_32(1129508897);
+emit_32(1106964749);
+emit_32(1111195648);
+emit_32(1129764880);
+emit_32(1106629467);
+emit_32(1111195648);
+emit_32(1130020864);
+emit_32(1105373587);
+emit_32(1111195648);
+emit_32(1130276848);
+emit_32(1103657645);
+emit_32(1111195648);
+emit_32(1130532897);
+emit_32(1103203244);
+emit_32(1111195648);
+emit_32(1130788880);
+emit_32(1102255384);
+emit_32(1111195648);
+emit_32(1131044864);
+emit_32(1100737203);
+emit_32(1111195648);
+emit_32(1131300848);
+emit_32(1099366557);
+emit_32(1111195648);
+emit_32(1131556897);
+emit_32(1096754817);
+emit_32(1111195648);
+emit_32(1131812880);
+emit_32(1096073871);
+emit_32(1111195648);
+emit_32(1132068864);
+emit_32(1096026581);
+emit_32(1111195648);
+emit_32(1081737216);
+emit_32(1107240944);
+emit_32(1110171661);
+emit_32(1090125824);
+emit_32(1107823611);
+emit_32(1110171661);
+emit_32(1094418484);
+emit_32(1108408821);
+emit_32(1110171661);
+emit_32(1098514432);
+emit_32(1108701925);
+emit_32(1110171661);
+emit_32(1100759066);
+emit_32(1109285326);
+emit_32(1110171661);
+emit_32(1102807040);
+emit_32(1109681609);
+emit_32(1110171661);
+emit_32(1104855066);
+emit_32(1109940345);
+emit_32(1110171661);
+emit_32(1106903040);
+emit_32(1109939952);
+emit_32(1110171661);
+emit_32(1108123661);
+emit_32(1109971121);
+emit_32(1110171661);
+emit_32(1109147648);
+emit_32(1110303834);
+emit_32(1110171661);
+emit_32(1110171661);
+emit_32(1110120962);
+emit_32(1110171661);
+emit_32(1111195648);
+emit_32(1110000979);
+emit_32(1110171661);
+emit_32(1112219661);
+emit_32(1109972484);
+emit_32(1110171661);
+emit_32(1113243648);
+emit_32(1109736686);
+emit_32(1110171661);
+emit_32(1114267661);
+emit_32(1109619612);
+emit_32(1110171661);
+emit_32(1115291648);
+emit_32(1109518608);
+emit_32(1110171661);
+emit_32(1116000263);
+emit_32(1109430003);
+emit_32(1110171661);
+emit_32(1116512256);
+emit_32(1109161909);
+emit_32(1110171661);
+emit_32(1117024263);
+emit_32(1109167492);
+emit_32(1110171661);
+emit_32(1117536256);
+emit_32(1109168515);
+emit_32(1110171661);
+emit_32(1118048263);
+emit_32(1109105626);
+emit_32(1110171661);
+emit_32(1118560256);
+emit_32(1108756686);
+emit_32(1110171661);
+emit_32(1119072263);
+emit_32(1108552555);
+emit_32(1110171661);
+emit_32(1119584256);
+emit_32(1108023286);
+emit_32(1110171661);
+emit_32(1120096263);
+emit_32(1107602178);
+emit_32(1110171661);
+emit_32(1120608322);
+emit_32(1107405649);
+emit_32(1110171661);
+emit_32(1121120289);
+emit_32(1107570616);
+emit_32(1110171661);
+emit_32(1121632256);
+emit_32(1107660164);
+emit_32(1110171661);
+emit_32(1122144223);
+emit_32(1107756004);
+emit_32(1110171661);
+emit_32(1122656322);
+emit_32(1107706800);
+emit_32(1110171661);
+emit_32(1123168289);
+emit_32(1107795667);
+emit_32(1110171661);
+emit_32(1123680256);
+emit_32(1108061218);
+emit_32(1110171661);
+emit_32(1124132848);
+emit_32(1108159365);
+emit_32(1110171661);
+emit_32(1124388897);
+emit_32(1108652615);
+emit_32(1110171661);
+emit_32(1124644880);
+emit_32(1108895151);
+emit_32(1110171661);
+emit_32(1124900864);
+emit_32(1109068900);
+emit_32(1110171661);
+emit_32(1125156848);
+emit_32(1109317911);
+emit_32(1110171661);
+emit_32(1125412897);
+emit_32(1109583646);
+emit_32(1110171661);
+emit_32(1125668880);
+emit_32(1109982314);
+emit_32(1110171661);
+emit_32(1125924864);
+emit_32(1110319589);
+emit_32(1110171661);
+emit_32(1126180848);
+emit_32(1110618800);
+emit_32(1110171635);
+emit_32(1126436897);
+emit_32(1110589833);
+emit_32(1110171661);
+emit_32(1126692880);
+emit_32(1110601236);
+emit_32(1110171661);
+emit_32(1126948864);
+emit_32(1110238219);
+emit_32(1110171661);
+emit_32(1127204848);
+emit_32(1110066804);
+emit_32(1110171661);
+emit_32(1127460897);
+emit_32(1109910933);
+emit_32(1110171661);
+emit_32(1127716880);
+emit_32(1109484739);
+emit_32(1110171661);
+emit_32(1127972864);
+emit_32(1109107907);
+emit_32(1110171661);
+emit_32(1128228848);
+emit_32(1108797633);
+emit_32(1110171661);
+emit_32(1128484897);
+emit_32(1108483428);
+emit_32(1110171661);
+emit_32(1128740880);
+emit_32(1108328081);
+emit_32(1110171661);
+emit_32(1128996864);
+emit_32(1108125627);
+emit_32(1110171661);
+emit_32(1129252848);
+emit_32(1107731808);
+emit_32(1110171661);
+emit_32(1129508897);
+emit_32(1106917982);
+emit_32(1110171661);
+emit_32(1129764880);
+emit_32(1106313688);
+emit_32(1110171661);
+emit_32(1130020864);
+emit_32(1105521174);
+emit_32(1110171661);
+emit_32(1130276848);
+emit_32(1104211450);
+emit_32(1110171661);
+emit_32(1130532897);
+emit_32(1103253052);
+emit_32(1110171661);
+emit_32(1130788880);
+emit_32(1102325744);
+emit_32(1110171661);
+emit_32(1131044864);
+emit_32(1101081451);
+emit_32(1110171661);
+emit_32(1131300848);
+emit_32(1099684171);
+emit_32(1110171661);
+emit_32(1131556897);
+emit_32(1098145962);
+emit_32(1110171661);
+emit_32(1131812880);
+emit_32(1096588198);
+emit_32(1110171661);
+emit_32(1132068864);
+emit_32(1095942590);
+emit_32(1110171661);
+emit_32(1081737216);
+emit_32(1108060956);
+emit_32(1109147648);
+emit_32(1090125824);
+emit_32(1108546971);
+emit_32(1109147648);
+emit_32(1094418484);
+emit_32(1109017939);
+emit_32(1109147648);
+emit_32(1098514432);
+emit_32(1109407144);
+emit_32(1109147648);
+emit_32(1100759066);
+emit_32(1109980401);
+emit_32(1109147648);
+emit_32(1102807040);
+emit_32(1110240972);
+emit_32(1109147648);
+emit_32(1104855066);
+emit_32(1110658358);
+emit_32(1109147648);
+emit_32(1106903040);
+emit_32(1110751524);
+emit_32(1109147648);
+emit_32(1108123661);
+emit_32(1110695844);
+emit_32(1109147648);
+emit_32(1109147648);
+emit_32(1110721089);
+emit_32(1109147648);
+emit_32(1110171661);
+emit_32(1110727406);
+emit_32(1109147648);
+emit_32(1111195648);
+emit_32(1110842173);
+emit_32(1109147648);
+emit_32(1112219661);
+emit_32(1110770765);
+emit_32(1109147648);
+emit_32(1113243648);
+emit_32(1110489091);
+emit_32(1109147648);
+emit_32(1114267661);
+emit_32(1110249518);
+emit_32(1109147648);
+emit_32(1115291648);
+emit_32(1110116087);
+emit_32(1109147648);
+emit_32(1116000263);
+emit_32(1110026722);
+emit_32(1109147648);
+emit_32(1116512256);
+emit_32(1109757343);
+emit_32(1109147648);
+emit_32(1117024263);
+emit_32(1109707325);
+emit_32(1109147648);
+emit_32(1117536256);
+emit_32(1109736109);
+emit_32(1109147648);
+emit_32(1118048263);
+emit_32(1109670940);
+emit_32(1109147648);
+emit_32(1118560256);
+emit_32(1109409425);
+emit_32(1109147648);
+emit_32(1119072263);
+emit_32(1109060459);
+emit_32(1109147648);
+emit_32(1119584256);
+emit_32(1108683601);
+emit_32(1109147648);
+emit_32(1120096263);
+emit_32(1108291643);
+emit_32(1109147648);
+emit_32(1120608322);
+emit_32(1108134645);
+emit_32(1109147648);
+emit_32(1121120289);
+emit_32(1107726382);
+emit_32(1109147648);
+emit_32(1121632256);
+emit_32(1107627056);
+emit_32(1109147648);
+emit_32(1122144223);
+emit_32(1107778260);
+emit_32(1109147648);
+emit_32(1122656322);
+emit_32(1108018568);
+emit_32(1109147648);
+emit_32(1123168289);
+emit_32(1107783031);
+emit_32(1109147648);
+emit_32(1123680256);
+emit_32(1108023470);
+emit_32(1109147648);
+emit_32(1124132848);
+emit_32(1108274551);
+emit_32(1109147648);
+emit_32(1124388897);
+emit_32(1108502721);
+emit_32(1109147648);
+emit_32(1124644880);
+emit_32(1108792679);
+emit_32(1109147648);
+emit_32(1124900864);
+emit_32(1108934997);
+emit_32(1109147648);
+emit_32(1125156848);
+emit_32(1109183483);
+emit_32(1109147648);
+emit_32(1125412897);
+emit_32(1109454645);
+emit_32(1109147648);
+emit_32(1125668880);
+emit_32(1109678699);
+emit_32(1109147648);
+emit_32(1125924864);
+emit_32(1110022658);
+emit_32(1109147648);
+emit_32(1126180848);
+emit_32(1110147151);
+emit_32(1109147648);
+emit_32(1126436897);
+emit_32(1110222596);
+emit_32(1109147648);
+emit_32(1126692880);
+emit_32(1110347035);
+emit_32(1109147648);
+emit_32(1126948864);
+emit_32(1110235231);
+emit_32(1109147648);
+emit_32(1127204848);
+emit_32(1110061194);
+emit_32(1109147648);
+emit_32(1127460897);
+emit_32(1109745022);
+emit_32(1109147648);
+emit_32(1127716880);
+emit_32(1109246162);
+emit_32(1109147648);
+emit_32(1127972864);
+emit_32(1109124003);
+emit_32(1109147648);
+emit_32(1128228848);
+emit_32(1108700011);
+emit_32(1109147648);
+emit_32(1128484897);
+emit_32(1108308525);
+emit_32(1109147648);
+emit_32(1128740880);
+emit_32(1108062844);
+emit_32(1109147648);
+emit_32(1128996864);
+emit_32(1107977306);
+emit_32(1109147648);
+emit_32(1129252848);
+emit_32(1107731205);
+emit_32(1109147648);
+emit_32(1129508897);
+emit_32(1107357781);
+emit_32(1109147648);
+emit_32(1129764880);
+emit_32(1106463529);
+emit_32(1109147648);
+emit_32(1130020864);
+emit_32(1105450081);
+emit_32(1109147648);
+emit_32(1130276848);
+emit_32(1104493307);
+emit_32(1109147648);
+emit_32(1130532897);
+emit_32(1103358434);
+emit_32(1109147648);
+emit_32(1130788880);
+emit_32(1102558632);
+emit_32(1109147648);
+emit_32(1131044864);
+emit_32(1101338404);
+emit_32(1109147648);
+emit_32(1131300848);
+emit_32(1100196558);
+emit_32(1109147648);
+emit_32(1131556897);
+emit_32(1099061264);
+emit_32(1109147648);
+emit_32(1131812880);
+emit_32(1096545521);
+emit_32(1109147648);
+emit_32(1132068864);
+emit_32(1096018716);
+emit_32(1109147648);
+emit_32(1081737216);
+emit_32(1109011386);
+emit_32(1108123661);
+emit_32(1090125824);
+emit_32(1109203904);
+emit_32(1108123661);
+emit_32(1094418484);
+emit_32(1109519263);
+emit_32(1108123661);
+emit_32(1098514432);
+emit_32(1109988842);
+emit_32(1108123661);
+emit_32(1100759066);
+emit_32(1110461461);
+emit_32(1108123635);
+emit_32(1102807040);
+emit_32(1110941919);
+emit_32(1108123635);
+emit_32(1104855066);
+emit_32(1111344415);
+emit_32(1108123661);
+emit_32(1106903040);
+emit_32(1111428956);
+emit_32(1108123661);
+emit_32(1108123661);
+emit_32(1111187862);
+emit_32(1108123635);
+emit_32(1109147648);
+emit_32(1111258851);
+emit_32(1108123635);
+emit_32(1110171661);
+emit_32(1111121199);
+emit_32(1108123661);
+emit_32(1111195648);
+emit_32(1111334951);
+emit_32(1108123661);
+emit_32(1112219661);
+emit_32(1111280871);
+emit_32(1108123635);
+emit_32(1113243648);
+emit_32(1111290597);
+emit_32(1108123635);
+emit_32(1114267661);
+emit_32(1111219660);
+emit_32(1108123661);
+emit_32(1115291648);
+emit_32(1110791212);
+emit_32(1108123661);
+emit_32(1116000263);
+emit_32(1110556043);
+emit_32(1108123635);
+emit_32(1116512256);
+emit_32(1110407643);
+emit_32(1108123635);
+emit_32(1117024263);
+emit_32(1110379174);
+emit_32(1108123661);
+emit_32(1117536256);
+emit_32(1110347979);
+emit_32(1108123661);
+emit_32(1118048263);
+emit_32(1110338280);
+emit_32(1108123661);
+emit_32(1118560256);
+emit_32(1109911536);
+emit_32(1108123661);
+emit_32(1119072263);
+emit_32(1109549908);
+emit_32(1108123661);
+emit_32(1119584256);
+emit_32(1109081142);
+emit_32(1108123661);
+emit_32(1120096263);
+emit_32(1108718492);
+emit_32(1108123661);
+emit_32(1120608322);
+emit_32(1108472470);
+emit_32(1108123661);
+emit_32(1121120289);
+emit_32(1108029604);
+emit_32(1108123661);
+emit_32(1121632256);
+emit_32(1107454879);
+emit_32(1108123661);
+emit_32(1122144223);
+emit_32(1107399252);
+emit_32(1108123661);
+emit_32(1122656322);
+emit_32(1107660793);
+emit_32(1108123661);
+emit_32(1123168289);
+emit_32(1107749241);
+emit_32(1108123661);
+emit_32(1123680256);
+emit_32(1107770448);
+emit_32(1108123661);
+emit_32(1124132848);
+emit_32(1108146730);
+emit_32(1108123661);
+emit_32(1124388897);
+emit_32(1108341608);
+emit_32(1108123661);
+emit_32(1124644880);
+emit_32(1108443057);
+emit_32(1108123661);
+emit_32(1124900864);
+emit_32(1108765442);
+emit_32(1108123661);
+emit_32(1125156848);
+emit_32(1108966061);
+emit_32(1108123661);
+emit_32(1125412897);
+emit_32(1109234287);
+emit_32(1108123661);
+emit_32(1125668880);
+emit_32(1109396423);
+emit_32(1108123661);
+emit_32(1125924864);
+emit_32(1109622050);
+emit_32(1108123661);
+emit_32(1126180848);
+emit_32(1109584826);
+emit_32(1108123661);
+emit_32(1126436897);
+emit_32(1109832945);
+emit_32(1108123661);
+emit_32(1126692880);
+emit_32(1109962759);
+emit_32(1108123661);
+emit_32(1126948864);
+emit_32(1109897773);
+emit_32(1108123661);
+emit_32(1127204848);
+emit_32(1109645800);
+emit_32(1108123661);
+emit_32(1127460897);
+emit_32(1109215386);
+emit_32(1108123661);
+emit_32(1127716880);
+emit_32(1108859027);
+emit_32(1108123661);
+emit_32(1127972864);
+emit_32(1108683050);
+emit_32(1108123661);
+emit_32(1128228848);
+emit_32(1108384704);
+emit_32(1108123661);
+emit_32(1128484897);
+emit_32(1108232031);
+emit_32(1108123661);
+emit_32(1128740880);
+emit_32(1108097027);
+emit_32(1108123661);
+emit_32(1128996864);
+emit_32(1107779178);
+emit_32(1108123661);
+emit_32(1129252848);
+emit_32(1107602938);
+emit_32(1108123661);
+emit_32(1129508897);
+emit_32(1107406278);
+emit_32(1108123661);
+emit_32(1129764880);
+emit_32(1106809874);
+emit_32(1108123661);
+emit_32(1130020864);
+emit_32(1105779438);
+emit_32(1108123661);
+emit_32(1130276848);
+emit_32(1104361030);
+emit_32(1108123661);
+emit_32(1130532897);
+emit_32(1102937430);
+emit_32(1108123661);
+emit_32(1130788880);
+emit_32(1102218107);
+emit_32(1108123661);
+emit_32(1131044864);
+emit_32(1101488456);
+emit_32(1108123661);
+emit_32(1131300848);
+emit_32(1100298741);
+emit_32(1108123661);
+emit_32(1131556897);
+emit_32(1099192756);
+emit_32(1108123661);
+emit_32(1131812880);
+emit_32(1097382704);
+emit_32(1108123661);
+emit_32(1132068864);
+emit_32(1096297952);
+emit_32(1108123661);
+emit_32(1081737216);
+emit_32(1109770397);
+emit_32(1106903040);
+emit_32(1090125824);
+emit_32(1109777737);
+emit_32(1106903040);
+emit_32(1094418484);
+emit_32(1110054299);
+emit_32(1106903040);
+emit_32(1098514432);
+emit_32(1110481751);
+emit_32(1106903040);
+emit_32(1100759066);
+emit_32(1110921734);
+emit_32(1106903040);
+emit_32(1102807040);
+emit_32(1111312643);
+emit_32(1106903040);
+emit_32(1104855066);
+emit_32(1111792130);
+emit_32(1106903040);
+emit_32(1106903040);
+emit_32(1111787124);
+emit_32(1106903040);
+emit_32(1108123661);
+emit_32(1111611697);
+emit_32(1106903040);
+emit_32(1109147648);
+emit_32(1111513262);
+emit_32(1106903040);
+emit_32(1110171661);
+emit_32(1111366278);
+emit_32(1106903040);
+emit_32(1111195648);
+emit_32(1111544090);
+emit_32(1106903040);
+emit_32(1112219661);
+emit_32(1111560762);
+emit_32(1106903040);
+emit_32(1113243648);
+emit_32(1111668713);
+emit_32(1106903040);
+emit_32(1114267661);
+emit_32(1111792235);
+emit_32(1106903040);
+emit_32(1115291648);
+emit_32(1111628474);
+emit_32(1106903040);
+emit_32(1116000263);
+emit_32(1111299169);
+emit_32(1106903040);
+emit_32(1116512256);
+emit_32(1111051180);
+emit_32(1106903040);
+emit_32(1117024263);
+emit_32(1110941447);
+emit_32(1106903040);
+emit_32(1117536256);
+emit_32(1110781408);
+emit_32(1106903040);
+emit_32(1118048263);
+emit_32(1110736162);
+emit_32(1106903040);
+emit_32(1118560256);
+emit_32(1110488462);
+emit_32(1106903040);
+emit_32(1119072263);
+emit_32(1109937383);
+emit_32(1106903040);
+emit_32(1119584256);
+emit_32(1109345724);
+emit_32(1106903040);
+emit_32(1120096263);
+emit_32(1108919032);
+emit_32(1106903040);
+emit_32(1120608322);
+emit_32(1108581522);
+emit_32(1106903040);
+emit_32(1121120289);
+emit_32(1108342132);
+emit_32(1106903040);
+emit_32(1121632256);
+emit_32(1107848908);
+emit_32(1106903040);
+emit_32(1122144223);
+emit_32(1107817451);
+emit_32(1106903040);
+emit_32(1122656322);
+emit_32(1107677518);
+emit_32(1106903040);
+emit_32(1123168289);
+emit_32(1107491160);
+emit_32(1106903040);
+emit_32(1123680256);
+emit_32(1107374427);
+emit_32(1106903040);
+emit_32(1124132848);
+emit_32(1107634238);
+emit_32(1106903040);
+emit_32(1124388897);
+emit_32(1107933318);
+emit_32(1106903040);
+emit_32(1124644880);
+emit_32(1108214022);
+emit_32(1106903040);
+emit_32(1124900864);
+emit_32(1108453936);
+emit_32(1106903040);
+emit_32(1125156848);
+emit_32(1108889960);
+emit_32(1106903040);
+emit_32(1125412897);
+emit_32(1108978801);
+emit_32(1106903040);
+emit_32(1125668880);
+emit_32(1108913553);
+emit_32(1106903040);
+emit_32(1125924864);
+emit_32(1109166234);
+emit_32(1106903040);
+emit_32(1126180848);
+emit_32(1109341451);
+emit_32(1106903040);
+emit_32(1126436897);
+emit_32(1109498502);
+emit_32(1106903040);
+emit_32(1126692880);
+emit_32(1109568048);
+emit_32(1106903040);
+emit_32(1126948864);
+emit_32(1109560892);
+emit_32(1106903040);
+emit_32(1127204848);
+emit_32(1109393539);
+emit_32(1106903040);
+emit_32(1127460897);
+emit_32(1108906790);
+emit_32(1106903040);
+emit_32(1127716880);
+emit_32(1108388794);
+emit_32(1106903040);
+emit_32(1127972864);
+emit_32(1108280685);
+emit_32(1106903040);
+emit_32(1128228848);
+emit_32(1108149246);
+emit_32(1106903040);
+emit_32(1128484897);
+emit_32(1107958379);
+emit_32(1106903040);
+emit_32(1128740880);
+emit_32(1107807725);
+emit_32(1106903040);
+emit_32(1128996864);
+emit_32(1107773594);
+emit_32(1106903040);
+emit_32(1129252848);
+emit_32(1107432414);
+emit_32(1106903040);
+emit_32(1129508897);
+emit_32(1107128327);
+emit_32(1106903040);
+emit_32(1129764880);
+emit_32(1106506678);
+emit_32(1106903040);
+emit_32(1130020864);
+emit_32(1105675629);
+emit_32(1106903040);
+emit_32(1130276848);
+emit_32(1104725148);
+emit_32(1106903040);
+emit_32(1130532897);
+emit_32(1102879234);
+emit_32(1106903040);
+emit_32(1130788880);
+emit_32(1102337697);
+emit_32(1106903040);
+emit_32(1131044864);
+emit_32(1101447194);
+emit_32(1106903040);
+emit_32(1131300848);
+emit_32(1100372404);
+emit_32(1106903040);
+emit_32(1131556897);
+emit_32(1099275803);
+emit_32(1106903040);
+emit_32(1131812880);
+emit_32(1097451700);
+emit_32(1106903040);
+emit_32(1132068864);
+emit_32(1095526829);
+emit_32(1106903040);
+emit_32(1081737216);
+emit_32(1110109952);
+emit_32(1104855014);
+emit_32(1090125824);
+emit_32(1110275732);
+emit_32(1104855066);
+emit_32(1094418484);
+emit_32(1110685778);
+emit_32(1104855014);
+emit_32(1098514432);
+emit_32(1111152735);
+emit_32(1104855066);
+emit_32(1100759066);
+emit_32(1111517587);
+emit_32(1104855014);
+emit_32(1102807040);
+emit_32(1111678596);
+emit_32(1104855066);
+emit_32(1104855066);
+emit_32(1111775642);
+emit_32(1104855014);
+emit_32(1106903040);
+emit_32(1112048193);
+emit_32(1104855066);
+emit_32(1108123661);
+emit_32(1111799470);
+emit_32(1104855014);
+emit_32(1109147648);
+emit_32(1112134622);
+emit_32(1104855066);
+emit_32(1110171661);
+emit_32(1111941867);
+emit_32(1104855014);
+emit_32(1111195648);
+emit_32(1111767463);
+emit_32(1104855066);
+emit_32(1112219661);
+emit_32(1111687011);
+emit_32(1104855014);
+emit_32(1113243648);
+emit_32(1111766309);
+emit_32(1104855066);
+emit_32(1114267661);
+emit_32(1111969340);
+emit_32(1104855014);
+emit_32(1115291648);
+emit_32(1111967505);
+emit_32(1104855066);
+emit_32(1116000263);
+emit_32(1111727355);
+emit_32(1104855014);
+emit_32(1116512256);
+emit_32(1111359540);
+emit_32(1104855066);
+emit_32(1117024263);
+emit_32(1111157847);
+emit_32(1104855014);
+emit_32(1117536256);
+emit_32(1110917304);
+emit_32(1104855066);
+emit_32(1118048263);
+emit_32(1110816929);
+emit_32(1104855014);
+emit_32(1118560256);
+emit_32(1110568783);
+emit_32(1104855066);
+emit_32(1119072263);
+emit_32(1110093490);
+emit_32(1104855014);
+emit_32(1119584256);
+emit_32(1109527311);
+emit_32(1104855066);
+emit_32(1120096263);
+emit_32(1108993586);
+emit_32(1104855014);
+emit_32(1120608322);
+emit_32(1108933555);
+emit_32(1104855066);
+emit_32(1121120289);
+emit_32(1108821698);
+emit_32(1104855014);
+emit_32(1121632256);
+emit_32(1108751234);
+emit_32(1104855066);
+emit_32(1122144223);
+emit_32(1108472837);
+emit_32(1104855014);
+emit_32(1122656322);
+emit_32(1108266844);
+emit_32(1104855066);
+emit_32(1123168289);
+emit_32(1107914103);
+emit_32(1104855014);
+emit_32(1123680256);
+emit_32(1107834175);
+emit_32(1104855066);
+emit_32(1124132848);
+emit_32(1107903539);
+emit_32(1104855014);
+emit_32(1124388897);
+emit_32(1107817215);
+emit_32(1104855066);
+emit_32(1124644880);
+emit_32(1107776661);
+emit_32(1104855014);
+emit_32(1124900864);
+emit_32(1108217378);
+emit_32(1104855066);
+emit_32(1125156848);
+emit_32(1108340821);
+emit_32(1104855014);
+emit_32(1125412897);
+emit_32(1108427643);
+emit_32(1104855066);
+emit_32(1125668880);
+emit_32(1108896016);
+emit_32(1104855014);
+emit_32(1125924864);
+emit_32(1109136271);
+emit_32(1104855066);
+emit_32(1126180848);
+emit_32(1109149745);
+emit_32(1104855014);
+emit_32(1126436897);
+emit_32(1109121932);
+emit_32(1104855066);
+emit_32(1126692880);
+emit_32(1108894600);
+emit_32(1104855014);
+emit_32(1126948864);
+emit_32(1108941734);
+emit_32(1104855066);
+emit_32(1127204848);
+emit_32(1108756031);
+emit_32(1104855014);
+emit_32(1127460897);
+emit_32(1108342132);
+emit_32(1104855066);
+emit_32(1127716880);
+emit_32(1107861281);
+emit_32(1104855014);
+emit_32(1127972864);
+emit_32(1107811264);
+emit_32(1104855066);
+emit_32(1128228848);
+emit_32(1107808905);
+emit_32(1104855014);
+emit_32(1128484897);
+emit_32(1107751705);
+emit_32(1104855066);
+emit_32(1128740880);
+emit_32(1107656337);
+emit_32(1104855014);
+emit_32(1128996864);
+emit_32(1107347820);
+emit_32(1104855066);
+emit_32(1129252848);
+emit_32(1107352119);
+emit_32(1104855014);
+emit_32(1129508897);
+emit_32(1106497084);
+emit_32(1104855066);
+emit_32(1129764880);
+emit_32(1105749344);
+emit_32(1104855014);
+emit_32(1130020864);
+emit_32(1104957407);
+emit_32(1104855066);
+emit_32(1130276848);
+emit_32(1104016048);
+emit_32(1104855014);
+emit_32(1130532897);
+emit_32(1102858578);
+emit_32(1104855066);
+emit_32(1130788880);
+emit_32(1102331511);
+emit_32(1104855014);
+emit_32(1131044864);
+emit_32(1101186518);
+emit_32(1104855066);
+emit_32(1131300848);
+emit_32(1100268490);
+emit_32(1104855066);
+emit_32(1131556897);
+emit_32(1099251266);
+emit_32(1104855066);
+emit_32(1131812880);
+emit_32(1097610874);
+emit_32(1104855066);
+emit_32(1132068864);
+emit_32(1095739900);
+emit_32(1104855066);
+emit_32(1081737216);
+emit_32(1110619796);
+emit_32(1102807040);
+emit_32(1090125824);
+emit_32(1110999800);
+emit_32(1102807040);
+emit_32(1094418484);
+emit_32(1111488489);
+emit_32(1102807040);
+emit_32(1098514432);
+emit_32(1111646011);
+emit_32(1102807040);
+emit_32(1100759066);
+emit_32(1111969235);
+emit_32(1102807040);
+emit_32(1102807040);
+emit_32(1112017758);
+emit_32(1102807040);
+emit_32(1104855066);
+emit_32(1111955341);
+emit_32(1102807040);
+emit_32(1106903040);
+emit_32(1112183747);
+emit_32(1102807040);
+emit_32(1108123661);
+emit_32(1112078287);
+emit_32(1102807040);
+emit_32(1109147648);
+emit_32(1112415640);
+emit_32(1102807040);
+emit_32(1110171661);
+emit_32(1112379359);
+emit_32(1102807040);
+emit_32(1111195648);
+emit_32(1112160154);
+emit_32(1102807040);
+emit_32(1112219661);
+emit_32(1112004362);
+emit_32(1102807040);
+emit_32(1113243648);
+emit_32(1112284594);
+emit_32(1102807040);
+emit_32(1114267661);
+emit_32(1112145815);
+emit_32(1102807040);
+emit_32(1115291648);
+emit_32(1112028165);
+emit_32(1102807040);
+emit_32(1116000263);
+emit_32(1111869699);
+emit_32(1102807040);
+emit_32(1116512256);
+emit_32(1111690130);
+emit_32(1102807040);
+emit_32(1117024263);
+emit_32(1111495488);
+emit_32(1102807040);
+emit_32(1117536256);
+emit_32(1111516565);
+emit_32(1102807040);
+emit_32(1118048263);
+emit_32(1111279455);
+emit_32(1102807040);
+emit_32(1118560256);
+emit_32(1110753647);
+emit_32(1102807040);
+emit_32(1119072263);
+emit_32(1110422245);
+emit_32(1102807040);
+emit_32(1119584256);
+emit_32(1109864350);
+emit_32(1102807040);
+emit_32(1120096263);
+emit_32(1109488566);
+emit_32(1102807040);
+emit_32(1120608322);
+emit_32(1109477320);
+emit_32(1102807040);
+emit_32(1121120289);
+emit_32(1109194755);
+emit_32(1102807040);
+emit_32(1121632256);
+emit_32(1109034743);
+emit_32(1102807040);
+emit_32(1122144223);
+emit_32(1108849800);
+emit_32(1102807040);
+emit_32(1122656322);
+emit_32(1108636598);
+emit_32(1102807040);
+emit_32(1123168289);
+emit_32(1108210719);
+emit_32(1102807040);
+emit_32(1123680256);
+emit_32(1108302496);
+emit_32(1102807040);
+emit_32(1124132848);
+emit_32(1108212213);
+emit_32(1102807040);
+emit_32(1124388897);
+emit_32(1107870640);
+emit_32(1102807040);
+emit_32(1124644880);
+emit_32(1107736422);
+emit_32(1102807040);
+emit_32(1124900864);
+emit_32(1107676522);
+emit_32(1102807040);
+emit_32(1125156848);
+emit_32(1108209094);
+emit_32(1102807040);
+emit_32(1125412897);
+emit_32(1108349734);
+emit_32(1102807040);
+emit_32(1125668880);
+emit_32(1108929675);
+emit_32(1102807040);
+emit_32(1125924864);
+emit_32(1109162643);
+emit_32(1102807040);
+emit_32(1126180848);
+emit_32(1109107540);
+emit_32(1102807040);
+emit_32(1126436897);
+emit_32(1108914654);
+emit_32(1102807040);
+emit_32(1126692880);
+emit_32(1108541388);
+emit_32(1102807040);
+emit_32(1126948864);
+emit_32(1108505081);
+emit_32(1102807040);
+emit_32(1127204848);
+emit_32(1108237222);
+emit_32(1102807040);
+emit_32(1127460897);
+emit_32(1108014924);
+emit_32(1102807040);
+emit_32(1127716880);
+emit_32(1107468589);
+emit_32(1102807040);
+emit_32(1127972864);
+emit_32(1107449269);
+emit_32(1102807040);
+emit_32(1128228848);
+emit_32(1107434458);
+emit_32(1102807040);
+emit_32(1128484897);
+emit_32(1107390916);
+emit_32(1102807040);
+emit_32(1128740880);
+emit_32(1107022787);
+emit_32(1102807040);
+emit_32(1128996864);
+emit_32(1106671200);
+emit_32(1102807040);
+emit_32(1129252848);
+emit_32(1106222724);
+emit_32(1102807040);
+emit_32(1129508897);
+emit_32(1106247575);
+emit_32(1102807040);
+emit_32(1129764880);
+emit_32(1105452230);
+emit_32(1102807040);
+emit_32(1130020864);
+emit_32(1104502273);
+emit_32(1102807040);
+emit_32(1130276848);
+emit_32(1103619634);
+emit_32(1102807040);
+emit_32(1130532897);
+emit_32(1102588831);
+emit_32(1102807040);
+emit_32(1130788880);
+emit_32(1101717150);
+emit_32(1102807040);
+emit_32(1131044864);
+emit_32(1100508142);
+emit_32(1102807040);
+emit_32(1131300848);
+emit_32(1100011589);
+emit_32(1102807040);
+emit_32(1131556897);
+emit_32(1099322674);
+emit_32(1102807040);
+emit_32(1131812880);
+emit_32(1097813040);
+emit_32(1102807040);
+emit_32(1132068864);
+emit_32(1095768526);
+emit_32(1102807040);
+emit_32(1081737216);
+emit_32(1111203643);
+emit_32(1100759014);
+emit_32(1090125824);
+emit_32(1111589362);
+emit_32(1100759014);
+emit_32(1094418484);
+emit_32(1112030917);
+emit_32(1100759014);
+emit_32(1098514432);
+emit_32(1112275996);
+emit_32(1100759014);
+emit_32(1100759066);
+emit_32(1112319197);
+emit_32(1100759014);
+emit_32(1102807040);
+emit_32(1112479393);
+emit_32(1100759014);
+emit_32(1104855066);
+emit_32(1112429638);
+emit_32(1100759014);
+emit_32(1106903040);
+emit_32(1112415247);
+emit_32(1100759014);
+emit_32(1108123661);
+emit_32(1112431998);
+emit_32(1100759014);
+emit_32(1109147648);
+emit_32(1112654453);
+emit_32(1100759014);
+emit_32(1110171661);
+emit_32(1112696396);
+emit_32(1100759014);
+emit_32(1111195648);
+emit_32(1112521022);
+emit_32(1100759014);
+emit_32(1112219661);
+emit_32(1112435904);
+emit_32(1100759014);
+emit_32(1113243648);
+emit_32(1112240292);
+emit_32(1100759014);
+emit_32(1114267661);
+emit_32(1112316209);
+emit_32(1100759014);
+emit_32(1115291648);
+emit_32(1112066150);
+emit_32(1100759014);
+emit_32(1116000263);
+emit_32(1111963651);
+emit_32(1100759014);
+emit_32(1116512256);
+emit_32(1111800886);
+emit_32(1100759014);
+emit_32(1117024263);
+emit_32(1111681296);
+emit_32(1100759014);
+emit_32(1117536256);
+emit_32(1111620767);
+emit_32(1100759014);
+emit_32(1118048263);
+emit_32(1111346774);
+emit_32(1100759014);
+emit_32(1118560256);
+emit_32(1111034272);
+emit_32(1100759014);
+emit_32(1119072263);
+emit_32(1110619088);
+emit_32(1100759014);
+emit_32(1119584256);
+emit_32(1110189723);
+emit_32(1100759014);
+emit_32(1120096263);
+emit_32(1109747512);
+emit_32(1100759014);
+emit_32(1120608322);
+emit_32(1109609965);
+emit_32(1100759014);
+emit_32(1121120289);
+emit_32(1109538216);
+emit_32(1100759014);
+emit_32(1121632256);
+emit_32(1109322341);
+emit_32(1100759014);
+emit_32(1122144223);
+emit_32(1109116505);
+emit_32(1100759014);
+emit_32(1122656322);
+emit_32(1108968237);
+emit_32(1100759014);
+emit_32(1123168289);
+emit_32(1108596962);
+emit_32(1100759014);
+emit_32(1123680256);
+emit_32(1108337885);
+emit_32(1100759014);
+emit_32(1124132848);
+emit_32(1108184583);
+emit_32(1100759014);
+emit_32(1124388897);
+emit_32(1107955103);
+emit_32(1100759014);
+emit_32(1124644880);
+emit_32(1108010677);
+emit_32(1100759014);
+emit_32(1124900864);
+emit_32(1107800306);
+emit_32(1100759014);
+emit_32(1125156848);
+emit_32(1107894626);
+emit_32(1100759014);
+emit_32(1125412897);
+emit_32(1108230616);
+emit_32(1100759014);
+emit_32(1125668880);
+emit_32(1108803374);
+emit_32(1100759014);
+emit_32(1125924864);
+emit_32(1109075454);
+emit_32(1100759014);
+emit_32(1126180848);
+emit_32(1109027350);
+emit_32(1100759014);
+emit_32(1126436897);
+emit_32(1108939951);
+emit_32(1100759014);
+emit_32(1126692880);
+emit_32(1108326744);
+emit_32(1100759014);
+emit_32(1126948864);
+emit_32(1108036865);
+emit_32(1100759014);
+emit_32(1127204848);
+emit_32(1107817923);
+emit_32(1100759014);
+emit_32(1127460897);
+emit_32(1107732464);
+emit_32(1100759014);
+emit_32(1127716880);
+emit_32(1107137554);
+emit_32(1100759014);
+emit_32(1127972864);
+emit_32(1106958562);
+emit_32(1100759014);
+emit_32(1128228848);
+emit_32(1106960135);
+emit_32(1100759014);
+emit_32(1128484897);
+emit_32(1106646873);
+emit_32(1100759014);
+emit_32(1128740880);
+emit_32(1105859497);
+emit_32(1100759014);
+emit_32(1128996864);
+emit_32(1105603382);
+emit_32(1100759014);
+emit_32(1129252848);
+emit_32(1105170530);
+emit_32(1100759014);
+emit_32(1129508897);
+emit_32(1105374164);
+emit_32(1100759014);
+emit_32(1129764880);
+emit_32(1105401636);
+emit_32(1100759014);
+emit_32(1130020864);
+emit_32(1104911427);
+emit_32(1100759014);
+emit_32(1130276848);
+emit_32(1103660424);
+emit_32(1100759014);
+emit_32(1130532897);
+emit_32(1102697778);
+emit_32(1100759014);
+emit_32(1130788880);
+emit_32(1101449239);
+emit_32(1100759066);
+emit_32(1131044864);
+emit_32(1100702810);
+emit_32(1100759066);
+emit_32(1131300848);
+emit_32(1099801611);
+emit_32(1100759066);
+emit_32(1131556897);
+emit_32(1099221015);
+emit_32(1100759066);
+emit_32(1131812880);
+emit_32(1097633733);
+emit_32(1100759066);
+emit_32(1132068864);
+emit_32(1095588276);
+emit_32(1100759066);
+emit_32(1081737216);
+emit_32(1111812866);
+emit_32(1098514432);
+emit_32(1090125824);
+emit_32(1112034614);
+emit_32(1098514432);
+emit_32(1094418484);
+emit_32(1112430949);
+emit_32(1098514432);
+emit_32(1098514432);
+emit_32(1112552899);
+emit_32(1098514432);
+emit_32(1100759066);
+emit_32(1112388901);
+emit_32(1098514432);
+emit_32(1102807040);
+emit_32(1112497324);
+emit_32(1098514432);
+emit_32(1104855066);
+emit_32(1112626351);
+emit_32(1098514432);
+emit_32(1106903040);
+emit_32(1112804164);
+emit_32(1098514432);
+emit_32(1108123661);
+emit_32(1112732048);
+emit_32(1098514432);
+emit_32(1109147648);
+emit_32(1112876043);
+emit_32(1098514432);
+emit_32(1110171661);
+emit_32(1112974741);
+emit_32(1098514432);
+emit_32(1111195648);
+emit_32(1112667141);
+emit_32(1098514432);
+emit_32(1112219661);
+emit_32(1112522411);
+emit_32(1098514432);
+emit_32(1113243648);
+emit_32(1112234315);
+emit_32(1098514432);
+emit_32(1114267661);
+emit_32(1112061562);
+emit_32(1098514432);
+emit_32(1115291648);
+emit_32(1111763216);
+emit_32(1098514432);
+emit_32(1116000263);
+emit_32(1111779207);
+emit_32(1098514432);
+emit_32(1116512256);
+emit_32(1111697732);
+emit_32(1098514432);
+emit_32(1117024263);
+emit_32(1111651097);
+emit_32(1098514432);
+emit_32(1117536256);
+emit_32(1111523564);
+emit_32(1098514432);
+emit_32(1118048263);
+emit_32(1111418916);
+emit_32(1098514432);
+emit_32(1118560256);
+emit_32(1111207811);
+emit_32(1098514432);
+emit_32(1119072263);
+emit_32(1110728743);
+emit_32(1098514432);
+emit_32(1119584256);
+emit_32(1110351885);
+emit_32(1098514432);
+emit_32(1120096263);
+emit_32(1110067354);
+emit_32(1098514432);
+emit_32(1120608322);
+emit_32(1109906476);
+emit_32(1098514432);
+emit_32(1121120289);
+emit_32(1109648474);
+emit_32(1098514432);
+emit_32(1121632256);
+emit_32(1109594787);
+emit_32(1098514432);
+emit_32(1122144223);
+emit_32(1109226711);
+emit_32(1098514432);
+emit_32(1122656322);
+emit_32(1109203825);
+emit_32(1098514432);
+emit_32(1123168289);
+emit_32(1108763659);
+emit_32(1098514432);
+emit_32(1123680256);
+emit_32(1108360770);
+emit_32(1098514432);
+emit_32(1124132848);
+emit_32(1108356628);
+emit_32(1098514432);
+emit_32(1124388897);
+emit_32(1108118838);
+emit_32(1098514432);
+emit_32(1124644880);
+emit_32(1108079411);
+emit_32(1098514432);
+emit_32(1124900864);
+emit_32(1107833179);
+emit_32(1098514432);
+emit_32(1125156848);
+emit_32(1107770841);
+emit_32(1098514432);
+emit_32(1125412897);
+emit_32(1108082531);
+emit_32(1098514432);
+emit_32(1125668880);
+emit_32(1108414667);
+emit_32(1098514432);
+emit_32(1125924864);
+emit_32(1108808670);
+emit_32(1098514432);
+emit_32(1126180848);
+emit_32(1108779572);
+emit_32(1098514432);
+emit_32(1126436897);
+emit_32(1108586686);
+emit_32(1098514432);
+emit_32(1126692880);
+emit_32(1108017650);
+emit_32(1098514432);
+emit_32(1126948864);
+emit_32(1107632508);
+emit_32(1098514432);
+emit_32(1127204848);
+emit_32(1107530849);
+emit_32(1098514432);
+emit_32(1127460897);
+emit_32(1107331357);
+emit_32(1098514432);
+emit_32(1127716880);
+emit_32(1106461065);
+emit_32(1098514432);
+emit_32(1127972864);
+emit_32(1105721295);
+emit_32(1098514432);
+emit_32(1128228848);
+emit_32(1105899395);
+emit_32(1098514432);
+emit_32(1128484897);
+emit_32(1105780959);
+emit_32(1098514432);
+emit_32(1128740880);
+emit_32(1105112806);
+emit_32(1098514432);
+emit_32(1128996864);
+emit_32(1104398988);
+emit_32(1098514432);
+emit_32(1129252848);
+emit_32(1104246420);
+emit_32(1098514432);
+emit_32(1129508897);
+emit_32(1104877715);
+emit_32(1098514432);
+emit_32(1129764880);
+emit_32(1104934024);
+emit_32(1098514432);
+emit_32(1130020864);
+emit_32(1104407062);
+emit_32(1098514432);
+emit_32(1130276848);
+emit_32(1103509009);
+emit_32(1098514432);
+emit_32(1130532897);
+emit_32(1102561359);
+emit_32(1098514432);
+emit_32(1130788880);
+emit_32(1101226941);
+emit_32(1098514432);
+emit_32(1131044864);
+emit_32(1100378223);
+emit_32(1098514432);
+emit_32(1131300848);
+emit_32(1099670330);
+emit_32(1098514432);
+emit_32(1131556897);
+emit_32(1099052247);
+emit_32(1098514432);
+emit_32(1131812880);
+emit_32(1097040344);
+emit_32(1098514432);
+emit_32(1132068864);
+emit_32(1094514429);
+emit_32(1098514432);
+emit_32(1081737216);
+emit_32(1112309314);
+emit_32(1094418380);
+emit_32(1090125824);
+emit_32(1112490036);
+emit_32(1094418380);
+emit_32(1094418484);
+emit_32(1112564590);
+emit_32(1094418380);
+emit_32(1098514432);
+emit_32(1112495017);
+emit_32(1094418380);
+emit_32(1100759066);
+emit_32(1112570934);
+emit_32(1094418380);
+emit_32(1102807040);
+emit_32(1112483797);
+emit_32(1094418380);
+emit_32(1104855066);
+emit_32(1112593269);
+emit_32(1094418380);
+emit_32(1106903040);
+emit_32(1112653955);
+emit_32(1094418380);
+emit_32(1108123661);
+emit_32(1112696973);
+emit_32(1094418380);
+emit_32(1109147648);
+emit_32(1112876358);
+emit_32(1094418380);
+emit_32(1110171661);
+emit_32(1112771972);
+emit_32(1094418380);
+emit_32(1111195648);
+emit_32(1112696658);
+emit_32(1094418380);
+emit_32(1112219661);
+emit_32(1112760438);
+emit_32(1094418380);
+emit_32(1113243648);
+emit_32(1112709844);
+emit_32(1094418380);
+emit_32(1114267661);
+emit_32(1112445708);
+emit_32(1094418380);
+emit_32(1115291648);
+emit_32(1112126810);
+emit_32(1094418380);
+emit_32(1116000263);
+emit_32(1111838268);
+emit_32(1094418380);
+emit_32(1116512256);
+emit_32(1111661530);
+emit_32(1094418380);
+emit_32(1117024263);
+emit_32(1111906163);
+emit_32(1094418380);
+emit_32(1117536256);
+emit_32(1112106389);
+emit_32(1094418380);
+emit_32(1118048263);
+emit_32(1111761879);
+emit_32(1094418380);
+emit_32(1118560256);
+emit_32(1111398128);
+emit_32(1094418380);
+emit_32(1119072263);
+emit_32(1110978645);
+emit_32(1094418380);
+emit_32(1119584256);
+emit_32(1110634319);
+emit_32(1094418380);
+emit_32(1120096263);
+emit_32(1110529776);
+emit_32(1094418380);
+emit_32(1120608322);
+emit_32(1110304358);
+emit_32(1094418380);
+emit_32(1121120289);
+emit_32(1110165710);
+emit_32(1094418380);
+emit_32(1121632256);
+emit_32(1109858216);
+emit_32(1094418380);
+emit_32(1122144223);
+emit_32(1109581365);
+emit_32(1094418380);
+emit_32(1122656322);
+emit_32(1109235859);
+emit_32(1094418380);
+emit_32(1123168289);
+emit_32(1108903907);
+emit_32(1094418380);
+emit_32(1123680256);
+emit_32(1108430973);
+emit_32(1094418380);
+emit_32(1124132848);
+emit_32(1108410683);
+emit_32(1094418380);
+emit_32(1124388897);
+emit_32(1108135038);
+emit_32(1094418380);
+emit_32(1124644880);
+emit_32(1107804973);
+emit_32(1094418380);
+emit_32(1124900864);
+emit_32(1107639901);
+emit_32(1094418380);
+emit_32(1125156848);
+emit_32(1107772126);
+emit_32(1094418380);
+emit_32(1125412897);
+emit_32(1107737261);
+emit_32(1094418380);
+emit_32(1125668880);
+emit_32(1108006063);
+emit_32(1094418380);
+emit_32(1125924864);
+emit_32(1108199919);
+emit_32(1094418380);
+emit_32(1126180848);
+emit_32(1108248678);
+emit_32(1094418380);
+emit_32(1126436897);
+emit_32(1107916253);
+emit_32(1094418380);
+emit_32(1126692880);
+emit_32(1107555149);
+emit_32(1094418380);
+emit_32(1126948864);
+emit_32(1107371177);
+emit_32(1094418380);
+emit_32(1127204848);
+emit_32(1107332275);
+emit_32(1094418380);
+emit_32(1127460897);
+emit_32(1106749686);
+emit_32(1094418380);
+emit_32(1127716880);
+emit_32(1105781640);
+emit_32(1094418380);
+emit_32(1127972864);
+emit_32(1105277223);
+emit_32(1094418380);
+emit_32(1128228848);
+emit_32(1104907757);
+emit_32(1094418380);
+emit_32(1128484897);
+emit_32(1104873049);
+emit_32(1094418380);
+emit_32(1128740880);
+emit_32(1104381896);
+emit_32(1094418380);
+emit_32(1128996864);
+emit_32(1103612294);
+emit_32(1094418380);
+emit_32(1129252848);
+emit_32(1103676519);
+emit_32(1094418380);
+emit_32(1129508897);
+emit_32(1104280132);
+emit_32(1094418380);
+emit_32(1129764880);
+emit_32(1104232789);
+emit_32(1094418380);
+emit_32(1130020864);
+emit_32(1103550533);
+emit_32(1094418380);
+emit_32(1130276848);
+emit_32(1102514592);
+emit_32(1094418380);
+emit_32(1130532897);
+emit_32(1101953866);
+emit_32(1094418380);
+emit_32(1130788880);
+emit_32(1100634653);
+emit_32(1094418380);
+emit_32(1131044864);
+emit_32(1099709337);
+emit_32(1094418380);
+emit_32(1131300848);
+emit_32(1099034526);
+emit_32(1094418380);
+emit_32(1131556897);
+emit_32(1098146172);
+emit_32(1094418380);
+emit_32(1131812880);
+emit_32(1096675754);
+emit_32(1094418380);
+emit_32(1132068864);
+emit_32(1095032426);
+emit_32(1094418380);
+emit_32(1081737216);
+emit_32(1112605380);
+emit_32(1090125824);
+emit_32(1090125824);
+emit_32(1112742534);
+emit_32(1090125824);
+emit_32(1094418484);
+emit_32(1112581997);
+emit_32(1090125824);
+emit_32(1098514432);
+emit_32(1112591984);
+emit_32(1090125824);
+emit_32(1100759066);
+emit_32(1112534732);
+emit_32(1090125824);
+emit_32(1102807040);
+emit_32(1112399387);
+emit_32(1090125824);
+emit_32(1104855066);
+emit_32(1112277857);
+emit_32(1090125824);
+emit_32(1106903040);
+emit_32(1112201599);
+emit_32(1090125824);
+emit_32(1108123661);
+emit_32(1112445472);
+emit_32(1090125824);
+emit_32(1109147648);
+emit_32(1112670418);
+emit_32(1090125824);
+emit_32(1110171661);
+emit_32(1112875572);
+emit_32(1090125824);
+emit_32(1111195648);
+emit_32(1112679095);
+emit_32(1090125824);
+emit_32(1112219661);
+emit_32(1112703500);
+emit_32(1090125824);
+emit_32(1113243648);
+emit_32(1112775511);
+emit_32(1090125824);
+emit_32(1114267661);
+emit_32(1112764999);
+emit_32(1090125824);
+emit_32(1115291648);
+emit_32(1112475330);
+emit_32(1090125824);
+emit_32(1116000263);
+emit_32(1112362661);
+emit_32(1090125824);
+emit_32(1116512256);
+emit_32(1112174966);
+emit_32(1090125824);
+emit_32(1117024263);
+emit_32(1112258039);
+emit_32(1090125824);
+emit_32(1117536256);
+emit_32(1112460755);
+emit_32(1090125824);
+emit_32(1118048263);
+emit_32(1112160312);
+emit_32(1090125824);
+emit_32(1118560256);
+emit_32(1111604462);
+emit_32(1090125824);
+emit_32(1119072263);
+emit_32(1111322578);
+emit_32(1090125824);
+emit_32(1119584256);
+emit_32(1110893291);
+emit_32(1090125824);
+emit_32(1120096263);
+emit_32(1110900736);
+emit_32(1090125824);
+emit_32(1120608322);
+emit_32(1110553369);
+emit_32(1090125824);
+emit_32(1121120289);
+emit_32(1110630518);
+emit_32(1090125824);
+emit_32(1121632256);
+emit_32(1110571431);
+emit_32(1090125824);
+emit_32(1122144223);
+emit_32(1110245900);
+emit_32(1090125824);
+emit_32(1122656322);
+emit_32(1109753463);
+emit_32(1090125824);
+emit_32(1123168289);
+emit_32(1109358386);
+emit_32(1090125824);
+emit_32(1123680256);
+emit_32(1108613530);
+emit_32(1090125824);
+emit_32(1124132848);
+emit_32(1108478368);
+emit_32(1090125824);
+emit_32(1124388897);
+emit_32(1108175854);
+emit_32(1090125824);
+emit_32(1124644880);
+emit_32(1107804527);
+emit_32(1090125824);
+emit_32(1124900864);
+emit_32(1107498500);
+emit_32(1090125824);
+emit_32(1125156848);
+emit_32(1107513704);
+emit_32(1090125824);
+emit_32(1125412897);
+emit_32(1107414562);
+emit_32(1090125824);
+emit_32(1125668880);
+emit_32(1107678934);
+emit_32(1090125824);
+emit_32(1125924864);
+emit_32(1107910564);
+emit_32(1090125824);
+emit_32(1126180848);
+emit_32(1108046853);
+emit_32(1090125824);
+emit_32(1126436897);
+emit_32(1107743028);
+emit_32(1090125824);
+emit_32(1126692880);
+emit_32(1107443817);
+emit_32(1090125824);
+emit_32(1126948864);
+emit_32(1107040246);
+emit_32(1090125824);
+emit_32(1127204848);
+emit_32(1106762321);
+emit_32(1090125824);
+emit_32(1127460897);
+emit_32(1106354582);
+emit_32(1090125824);
+emit_32(1127716880);
+emit_32(1105464079);
+emit_32(1090125824);
+emit_32(1127972864);
+emit_32(1104597169);
+emit_32(1090125824);
+emit_32(1128228848);
+emit_32(1103944902);
+emit_32(1090125824);
+emit_32(1128484897);
+emit_32(1104198028);
+emit_32(1090125824);
+emit_32(1128740880);
+emit_32(1103790342);
+emit_32(1090125824);
+emit_32(1128996864);
+emit_32(1103102686);
+emit_32(1090125824);
+emit_32(1129252848);
+emit_32(1103136555);
+emit_32(1090125824);
+emit_32(1129508897);
+emit_32(1103360688);
+emit_32(1090125824);
+emit_32(1129764880);
+emit_32(1103301339);
+emit_32(1090125824);
+emit_32(1130020864);
+emit_32(1102581596);
+emit_32(1090125824);
+emit_32(1130276848);
+emit_32(1101582723);
+emit_32(1090125824);
+emit_32(1130532897);
+emit_32(1100502427);
+emit_32(1090125824);
+emit_32(1130788880);
+emit_32(1099934623);
+emit_32(1090125824);
+emit_32(1131044864);
+emit_32(1099180854);
+emit_32(1090125824);
+emit_32(1131300848);
+emit_32(1098378012);
+emit_32(1090125824);
+emit_32(1131556897);
+emit_32(1096908852);
+emit_32(1090125824);
+emit_32(1131812880);
+emit_32(1096091278);
+emit_32(1090125824);
+emit_32(1132068864);
+emit_32(1095719453);
+emit_32(1090125824);
+emit_32(1081737216);
+emit_32(1112701298);
+emit_32(1081737216);
+emit_32(1090125824);
+emit_32(1112503694);
+emit_32(1081737216);
+emit_32(1094418484);
+emit_32(1112328084);
+emit_32(1081737216);
+emit_32(1098514432);
+emit_32(1112069951);
+emit_32(1081737216);
+emit_32(1100759066);
+emit_32(1112173655);
+emit_32(1081737216);
+emit_32(1102807040);
+emit_32(1112198559);
+emit_32(1081737216);
+emit_32(1104855066);
+emit_32(1112333694);
+emit_32(1081737216);
+emit_32(1106903040);
+emit_32(1112388744);
+emit_32(1081737216);
+emit_32(1108123661);
+emit_32(1112590726);
+emit_32(1081737216);
+emit_32(1109147648);
+emit_32(1113057735);
+emit_32(1081737216);
+emit_32(1110171661);
+emit_32(1113035296);
+emit_32(1081737216);
+emit_32(1111195648);
+emit_32(1112886896);
+emit_32(1081737216);
+emit_32(1112219661);
+emit_32(1112955971);
+emit_32(1081737216);
+emit_32(1113243648);
+emit_32(1113474440);
+emit_32(1081737216);
+emit_32(1114267661);
+emit_32(1113373252);
+emit_32(1081737216);
+emit_32(1115291648);
+emit_32(1112981923);
+emit_32(1081737216);
+emit_32(1116000263);
+emit_32(1112815462);
+emit_32(1081737216);
+emit_32(1116512256);
+emit_32(1112451711);
+emit_32(1081737216);
+emit_32(1117024263);
+emit_32(1112394144);
+emit_32(1081737216);
+emit_32(1117536256);
+emit_32(1112528414);
+emit_32(1081737216);
+emit_32(1118048263);
+emit_32(1112287950);
+emit_32(1081737216);
+emit_32(1118560256);
+emit_32(1111949653);
+emit_32(1081737216);
+emit_32(1119072263);
+emit_32(1111682685);
+emit_32(1081737216);
+emit_32(1119584256);
+emit_32(1111194678);
+emit_32(1081737216);
+emit_32(1120096263);
+emit_32(1111068639);
+emit_32(1081737216);
+emit_32(1120608322);
+emit_32(1110815303);
+emit_32(1081737216);
+emit_32(1121120289);
+emit_32(1110882674);
+emit_32(1081737216);
+emit_32(1121632256);
+emit_32(1110789010);
+emit_32(1081737216);
+emit_32(1122144223);
+emit_32(1110340062);
+emit_32(1081737216);
+emit_32(1122656322);
+emit_32(1109951539);
+emit_32(1081737216);
+emit_32(1123168289);
+emit_32(1109517848);
+emit_32(1081737216);
+emit_32(1123680256);
+emit_32(1109219108);
+emit_32(1081737216);
+emit_32(1124132848);
+emit_32(1108888571);
+emit_32(1081737216);
+emit_32(1124388897);
+emit_32(1108548203);
+emit_32(1081737216);
+emit_32(1124644880);
+emit_32(1108062057);
+emit_32(1081737216);
+emit_32(1124900864);
+emit_32(1107391755);
+emit_32(1081737216);
+emit_32(1125156848);
+emit_32(1107147201);
+emit_32(1081737216);
+emit_32(1125412897);
+emit_32(1106562515);
+emit_32(1081737216);
+emit_32(1125668880);
+emit_32(1107088323);
+emit_32(1081737216);
+emit_32(1125924864);
+emit_32(1107466728);
+emit_32(1081737216);
+emit_32(1126180848);
+emit_32(1107640477);
+emit_32(1081737216);
+emit_32(1126436897);
+emit_32(1107446858);
+emit_32(1081737216);
+emit_32(1126692880);
+emit_32(1107035003);
+emit_32(1081737216);
+emit_32(1126948864);
+emit_32(1106606398);
+emit_32(1081737216);
+emit_32(1127204848);
+emit_32(1106181305);
+emit_32(1081737216);
+emit_32(1127460897);
+emit_32(1105541831);
+emit_32(1081737216);
+emit_32(1127716880);
+emit_32(1104783501);
+emit_32(1081737216);
+emit_32(1127972864);
+emit_32(1103855197);
+emit_32(1081737216);
+emit_32(1128228848);
+emit_32(1103186310);
+emit_32(1081737216);
+emit_32(1128484897);
+emit_32(1103087482);
+emit_32(1081737216);
+emit_32(1128740880);
+emit_32(1102981471);
+emit_32(1081737216);
+emit_32(1128996864);
+emit_32(1102264716);
+emit_32(1081737216);
+emit_32(1129252848);
+emit_32(1102136581);
+emit_32(1081737216);
+emit_32(1129508897);
+emit_32(1101851735);
+emit_32(1081737216);
+emit_32(1129764880);
+emit_32(1101959109);
+emit_32(1081737216);
+emit_32(1130020864);
+emit_32(1101538001);
+emit_32(1081737216);
+emit_32(1130276848);
+emit_32(1100676386);
+emit_32(1081737216);
+emit_32(1130532897);
+emit_32(1100067740);
+emit_32(1081737216);
+emit_32(1130788880);
+emit_32(1099550582);
+emit_32(1081737216);
+emit_32(1131044864);
+emit_32(1099061684);
+emit_32(1081737216);
+emit_32(1131300848);
+emit_32(1097284243);
+emit_32(1081737216);
+emit_32(1131556897);
+emit_32(1096432799);
+emit_32(1081737216);
+emit_32(1131812880);
+emit_32(1096013998);
+emit_32(1081737216);
+emit_32(1132068864);
+emit_32(1095458043);
+emit_32(1081737216);
+emit_start(Landscape05Vtx)
+emit_32(3279552512);
+emit_32(3212673672);
+emit_32(0);
+emit_32(3279552512);
+emit_32(1041185636);
+emit_32(1081737216);
+emit_32(3279296528);
+emit_32(1059833579);
+emit_32(0);
+emit_32(3279296528);
+emit_32(1071476480);
+emit_32(1081737216);
+emit_32(3279040545);
+emit_32(1072407784);
+emit_32(0);
+emit_32(3279040545);
+emit_32(1076263523);
+emit_32(1081737216);
+emit_32(3278784496);
+emit_32(1080759692);
+emit_32(3022808678);
+emit_32(3278784496);
+emit_32(1082158660);
+emit_32(1081737216);
+emit_32(3278528512);
+emit_32(1084161503);
+emit_32(3026792956);
+emit_32(3278528512);
+emit_32(1084513929);
+emit_32(1081737216);
+emit_32(3278272528);
+emit_32(1087503650);
+emit_32(3029991200);
+emit_32(3278272528);
+emit_32(1087785717);
+emit_32(1081737216);
+emit_32(3278016545);
+emit_32(1090834682);
+emit_32(3032665494);
+emit_32(3278016545);
+emit_32(1090972056);
+emit_32(1081737216);
+emit_32(3277760496);
+emit_32(1092557314);
+emit_32(3035192119);
+emit_32(3277760496);
+emit_32(1092442569);
+emit_32(1081737216);
+emit_32(3277504512);
+emit_32(1094292446);
+emit_32(3037206586);
+emit_32(3277504512);
+emit_32(1094046974);
+emit_32(1081737216);
+emit_32(3277248528);
+emit_32(1097139854);
+emit_32(3039294743);
+emit_32(3277248528);
+emit_32(1097043280);
+emit_32(1081737216);
+emit_32(3276992545);
+emit_32(1099197999);
+emit_32(3041017018);
+emit_32(3276992545);
+emit_32(1098999818);
+emit_32(1081737216);
+emit_32(3276736496);
+emit_32(1100402917);
+emit_32(3042784259);
+emit_32(3276736496);
+emit_32(1100434742);
+emit_32(1081737216);
+emit_32(3276480512);
+emit_32(1101809268);
+emit_32(3044847030);
+emit_32(3276480512);
+emit_32(1101659007);
+emit_32(1081737216);
+emit_32(3276224528);
+emit_32(1102438046);
+emit_32(3045416976);
+emit_32(3276224528);
+emit_32(1102608545);
+emit_32(1081737216);
+emit_32(3275968545);
+emit_32(1103348997);
+emit_32(3046085013);
+emit_32(3275968545);
+emit_32(1103417836);
+emit_32(1081737216);
+emit_32(3275712496);
+emit_32(1104211817);
+emit_32(3046717804);
+emit_32(3275712496);
+emit_32(1104053168);
+emit_32(1081737216);
+emit_32(3275456512);
+emit_32(1104674187);
+emit_32(3047056805);
+emit_32(3275456512);
+emit_32(1104973450);
+emit_32(1081737216);
+emit_32(3275200528);
+emit_32(1105401165);
+emit_32(3047590024);
+emit_32(3275200528);
+emit_32(1105837477);
+emit_32(1081737216);
+emit_32(3274944545);
+emit_32(1105747352);
+emit_32(3047843880);
+emit_32(3274944545);
+emit_32(1106081743);
+emit_32(1081737216);
+emit_32(3274688496);
+emit_32(1106143871);
+emit_32(3048134678);
+emit_32(3274688496);
+emit_32(1106636492);
+emit_32(1081737216);
+emit_32(3274432512);
+emit_32(1106329416);
+emit_32(3048270754);
+emit_32(3274432512);
+emit_32(1107002917);
+emit_32(1081737216);
+emit_32(3274176528);
+emit_32(1107393459);
+emit_32(3049122304);
+emit_32(3274176528);
+emit_32(1107580184);
+emit_32(1081737216);
+emit_32(3273920545);
+emit_32(1108074955);
+emit_32(3050121892);
+emit_32(3273920545);
+emit_32(1107983729);
+emit_32(1081737216);
+emit_32(3273664496);
+emit_32(1108448641);
+emit_32(3050669976);
+emit_32(3273664496);
+emit_32(1108213550);
+emit_32(1081737216);
+emit_32(3273408512);
+emit_32(1108684230);
+emit_32(3051015487);
+emit_32(3273408512);
+emit_32(1108715137);
+emit_32(1081737216);
+emit_32(3273152528);
+emit_32(1108934132);
+emit_32(3051382020);
+emit_32(3273152528);
+emit_32(1108987871);
+emit_32(1081737216);
+emit_32(3272896545);
+emit_32(1108952377);
+emit_32(3051408760);
+emit_32(3272896545);
+emit_32(1109130582);
+emit_32(1081737216);
+emit_32(3272640496);
+emit_32(1108910775);
+emit_32(3051347803);
+emit_32(3272640496);
+emit_32(1109075454);
+emit_32(1081737216);
+emit_32(3272384512);
+emit_32(1108499366);
+emit_32(3050744391);
+emit_32(3272384512);
+emit_32(1108764813);
+emit_32(1081737216);
+emit_32(3272128528);
+emit_32(1108270907);
+emit_32(3050409260);
+emit_32(3272128528);
+emit_32(1108391939);
+emit_32(1081737216);
+emit_32(3271872545);
+emit_32(1107755506);
+emit_32(3049653324);
+emit_32(3271872545);
+emit_32(1108080224);
+emit_32(1081737216);
+emit_32(3271616496);
+emit_32(1107633190);
+emit_32(3049473972);
+emit_32(3271616496);
+emit_32(1107854728);
+emit_32(1081737216);
+emit_32(3271163904);
+emit_32(1107663336);
+emit_32(3049518128);
+emit_32(3271163904);
+emit_32(1107912740);
+emit_32(1081737216);
+emit_32(3270651937);
+emit_32(1107588075);
+emit_32(3049407737);
+emit_32(3270651937);
+emit_32(1107731730);
+emit_32(1081737216);
+emit_32(3270139970);
+emit_32(1107502327);
+emit_32(3049282041);
+emit_32(3270139970);
+emit_32(1107480989);
+emit_32(1081737216);
+emit_32(3269627871);
+emit_32(1107559370);
+emit_32(3049365692);
+emit_32(3269627871);
+emit_32(1107400013);
+emit_32(1081737216);
+emit_32(3269115904);
+emit_32(1107429425);
+emit_32(3049175080);
+emit_32(3269115904);
+emit_32(1106814855);
+emit_32(1081737216);
+emit_32(3268603937);
+emit_32(1107211531);
+emit_32(3048917619);
+emit_32(3268603937);
+emit_32(1106747641);
+emit_32(1081737216);
+emit_32(3268091970);
+emit_32(1106869381);
+emit_32(3048666666);
+emit_32(3268091970);
+emit_32(1106153570);
+emit_32(1081737216);
+emit_32(3267579911);
+emit_32(1106076710);
+emit_32(3048085420);
+emit_32(3267579911);
+emit_32(1105450553);
+emit_32(1081737216);
+emit_32(3267067904);
+emit_32(1105107773);
+emit_32(3047374784);
+emit_32(3267067904);
+emit_32(1105015289);
+emit_32(1081737216);
+emit_32(3266555911);
+emit_32(1104100511);
+emit_32(3046636088);
+emit_32(3266555911);
+emit_32(1103926185);
+emit_32(1081737216);
+emit_32(3266043904);
+emit_32(1102799385);
+emit_32(3045681976);
+emit_32(3266043904);
+emit_32(1103220965);
+emit_32(1081737216);
+emit_32(3265531911);
+emit_32(1102770130);
+emit_32(3045660513);
+emit_32(3265531911);
+emit_32(1102714556);
+emit_32(1081737216);
+emit_32(3265019904);
+emit_32(1102608335);
+emit_32(3045541854);
+emit_32(3265019904);
+emit_32(1102293972);
+emit_32(1081737216);
+emit_32(3264507911);
+emit_32(1103061372);
+emit_32(3045874083);
+emit_32(3264507911);
+emit_32(1102696206);
+emit_32(1081737216);
+emit_32(3263995904);
+emit_32(1102915777);
+emit_32(3045767298);
+emit_32(3263995904);
+emit_32(1102841119);
+emit_32(1081737216);
+emit_32(3263483911);
+emit_32(1102723888);
+emit_32(3045626560);
+emit_32(3263483911);
+emit_32(1102940104);
+emit_32(1081737216);
+emit_32(3262775296);
+emit_32(1103408189);
+emit_32(3046128466);
+emit_32(3262775296);
+emit_32(1103457681);
+emit_32(1081737216);
+emit_32(3261751309);
+emit_32(1103998484);
+emit_32(3046561321);
+emit_32(3261751309);
+emit_32(1103885553);
+emit_32(1081737216);
+emit_32(3260727296);
+emit_32(1104668105);
+emit_32(3047052407);
+emit_32(3260727296);
+emit_32(1104135953);
+emit_32(1081737216);
+emit_32(3259703309);
+emit_32(1105127381);
+emit_32(3047389210);
+emit_32(3259703309);
+emit_32(1104254180);
+emit_32(1081737216);
+emit_32(3258679296);
+emit_32(1105216196);
+emit_32(3047454301);
+emit_32(3258679296);
+emit_32(1104598218);
+emit_32(1081737216);
+emit_32(3257655309);
+emit_32(1105244507);
+emit_32(3047475059);
+emit_32(3257655309);
+emit_32(1105055869);
+emit_32(1081737216);
+emit_32(3256631296);
+emit_32(1106325379);
+emit_32(3048267763);
+emit_32(3256631296);
+emit_32(1105830661);
+emit_32(1081737216);
+emit_32(3255607309);
+emit_32(1107402398);
+emit_32(3049135410);
+emit_32(3255607309);
+emit_32(1107186156);
+emit_32(1081737216);
+emit_32(3254386688);
+emit_32(1107944119);
+emit_32(3049929961);
+emit_32(3254386688);
+emit_32(1107890222);
+emit_32(1081737216);
+emit_32(3252338714);
+emit_32(1108676916);
+emit_32(3051004756);
+emit_32(3252338714);
+emit_32(1108342578);
+emit_32(1081737216);
+emit_32(3250290688);
+emit_32(1109077105);
+emit_32(3051591719);
+emit_32(3250290688);
+emit_32(1108968106);
+emit_32(1081737216);
+emit_32(3248242714);
+emit_32(1109498895);
+emit_32(3052210436);
+emit_32(3248242714);
+emit_32(1109363314);
+emit_32(1081737216);
+emit_32(3245998080);
+emit_32(1110132051);
+emit_32(3053139040);
+emit_32(3245998080);
+emit_32(1110217982);
+emit_32(1081737216);
+emit_32(3241902132);
+emit_32(1110709318);
+emit_32(3053719532);
+emit_32(3241902132);
+emit_32(1110836747);
+emit_32(1081737216);
+emit_32(3237609472);
+emit_32(1111158922);
+emit_32(3054049253);
+emit_32(3237609472);
+emit_32(1111340011);
+emit_32(1081737216);
+emit_32(3229220864);
+emit_32(1111589126);
+emit_32(3054364725);
+emit_32(3229220864);
+emit_32(1111989472);
+emit_32(1081737216);
+emit_32(0);
+emit_32(1111989053);
+emit_32(3054658031);
+emit_32(0);
+emit_32(1112547577);
+emit_32(1081737216);
+emit_32(1081737216);
+emit_32(1112116167);
+emit_32(3054751226);
+emit_32(1081737216);
+emit_32(1112701298);
+emit_32(1081737216);
+emit_32(3279552512);
+emit_32(3209799987);
+emit_32(3229220864);
+emit_32(3279296528);
+emit_32(1059840776);
+emit_32(3229220864);
+emit_32(3279040545);
+emit_32(1077240503);
+emit_32(3229220864);
+emit_32(3278784496);
+emit_32(1082549401);
+emit_32(3229220864);
+emit_32(3278528512);
+emit_32(1085468217);
+emit_32(3229220864);
+emit_32(3278272528);
+emit_32(1088296919);
+emit_32(3229220864);
+emit_32(3278016545);
+emit_32(1090881837);
+emit_32(3229220864);
+emit_32(3277760496);
+emit_32(1092463268);
+emit_32(3229220864);
+emit_32(3277504512);
+emit_32(1093558757);
+emit_32(3229220864);
+emit_32(3277248528);
+emit_32(1096426612);
+emit_32(3229220864);
+emit_32(3276992545);
+emit_32(1099175874);
+emit_32(3229220864);
+emit_32(3276736496);
+emit_32(1099804757);
+emit_32(3229220864);
+emit_32(3276480512);
+emit_32(1101394975);
+emit_32(3229220864);
+emit_32(3276224528);
+emit_32(1102334185);
+emit_32(3229220864);
+emit_32(3275968545);
+emit_32(1103311038);
+emit_32(3229220864);
+emit_32(3275712496);
+emit_32(1104048921);
+emit_32(3229220864);
+emit_32(3275456512);
+emit_32(1104659821);
+emit_32(3229220864);
+emit_32(3275200528);
+emit_32(1105062632);
+emit_32(3229220864);
+emit_32(3274944545);
+emit_32(1105651669);
+emit_32(3229220864);
+emit_32(3274688496);
+emit_32(1106231322);
+emit_32(3229220864);
+emit_32(3274432512);
+emit_32(1107336626);
+emit_32(3229220864);
+emit_32(3274176528);
+emit_32(1107657989);
+emit_32(3229220864);
+emit_32(3273920545);
+emit_32(1108184452);
+emit_32(3229220864);
+emit_32(3273664496);
+emit_32(1108338672);
+emit_32(3229220864);
+emit_32(3273408512);
+emit_32(1108483926);
+emit_32(3229220864);
+emit_32(3273152528);
+emit_32(1108691229);
+emit_32(3229220864);
+emit_32(3272896545);
+emit_32(1108557850);
+emit_32(3229220864);
+emit_32(3272640496);
+emit_32(1108486573);
+emit_32(3229220864);
+emit_32(3272384512);
+emit_32(1108265140);
+emit_32(3229220864);
+emit_32(3272128528);
+emit_32(1108112887);
+emit_32(3229220864);
+emit_32(3271872545);
+emit_32(1107872003);
+emit_32(3229220864);
+emit_32(3271616496);
+emit_32(1107841411);
+emit_32(3229220864);
+emit_32(3271163904);
+emit_32(1107883406);
+emit_32(3229220864);
+emit_32(3270651937);
+emit_32(1107859944);
+emit_32(3229220864);
+emit_32(3270139970);
+emit_32(1107767014);
+emit_32(3229220864);
+emit_32(3269627871);
+emit_32(1107782795);
+emit_32(3229220864);
+emit_32(3269115904);
+emit_32(1107629310);
+emit_32(3229220864);
+emit_32(3268603937);
+emit_32(1107448404);
+emit_32(3229220864);
+emit_32(3268091970);
+emit_32(1107249594);
+emit_32(3229220864);
+emit_32(3267579911);
+emit_32(1106441929);
+emit_32(3229220864);
+emit_32(3267067904);
+emit_32(1105756265);
+emit_32(3229220864);
+emit_32(3266555911);
+emit_32(1104508197);
+emit_32(3229220864);
+emit_32(3266043904);
+emit_32(1103537583);
+emit_32(3229220864);
+emit_32(3265531911);
+emit_32(1103027556);
+emit_32(3229220864);
+emit_32(3265019904);
+emit_32(1102775006);
+emit_32(3229220864);
+emit_32(3264507911);
+emit_32(1103080037);
+emit_32(3229220864);
+emit_32(3263995904);
+emit_32(1103170109);
+emit_32(3229220864);
+emit_32(3263483911);
+emit_32(1103334002);
+emit_32(3229220864);
+emit_32(3262775296);
+emit_32(1103932372);
+emit_32(3229220864);
+emit_32(3261751309);
+emit_32(1104512234);
+emit_32(3229220864);
+emit_32(3260727296);
+emit_32(1105151184);
+emit_32(3229220864);
+emit_32(3259703309);
+emit_32(1105468116);
+emit_32(3229220864);
+emit_32(3258679296);
+emit_32(1105860336);
+emit_32(3229220864);
+emit_32(3257655309);
+emit_32(1105963568);
+emit_32(3229220864);
+emit_32(3256631296);
+emit_32(1106718071);
+emit_32(3229220864);
+emit_32(3255607309);
+emit_32(1107534414);
+emit_32(3229220864);
+emit_32(3254386688);
+emit_32(1108061821);
+emit_32(3229220864);
+emit_32(3252338714);
+emit_32(1108796323);
+emit_32(3229220864);
+emit_32(3250290688);
+emit_32(1109110555);
+emit_32(3229220864);
+emit_32(3248242714);
+emit_32(1109471606);
+emit_32(3229220864);
+emit_32(3245998080);
+emit_32(1109857115);
+emit_32(3229220864);
+emit_32(3241902132);
+emit_32(1110399726);
+emit_32(3229220864);
+emit_32(3237609472);
+emit_32(1110641187);
+emit_32(3229220864);
+emit_32(3229220864);
+emit_32(1111105208);
+emit_32(3229220864);
+emit_32(0);
+emit_32(1111556044);
+emit_32(3229220864);
+emit_32(1081737216);
+emit_32(1111714929);
+emit_32(3229220864);
+emit_32(3279552512);
+emit_32(1054711998);
+emit_32(3237609472);
+emit_32(3279296528);
+emit_32(1073162675);
+emit_32(3237609472);
+emit_32(3279040545);
+emit_32(1079142997);
+emit_32(3237609472);
+emit_32(3278784496);
+emit_32(1083244271);
+emit_32(3237609472);
+emit_32(3278528512);
+emit_32(1085647335);
+emit_32(3237609472);
+emit_32(3278272528);
+emit_32(1089136346);
+emit_32(3237609472);
+emit_32(3278016545);
+emit_32(1091028155);
+emit_32(3237609472);
+emit_32(3277760496);
+emit_32(1092749361);
+emit_32(3237609472);
+emit_32(3277504512);
+emit_32(1094007338);
+emit_32(3237609472);
+emit_32(3277248528);
+emit_32(1096172333);
+emit_32(3237609472);
+emit_32(3276992545);
+emit_32(1098404017);
+emit_32(3237609472);
+emit_32(3276736496);
+emit_32(1099924924);
+emit_32(3237609472);
+emit_32(3276480512);
+emit_32(1101300708);
+emit_32(3237609472);
+emit_32(3276224528);
+emit_32(1102514540);
+emit_32(3237609472);
+emit_32(3275968545);
+emit_32(1102952530);
+emit_32(3237609472);
+emit_32(3275712496);
+emit_32(1104219315);
+emit_32(3237609472);
+emit_32(3275456512);
+emit_32(1105238635);
+emit_32(3237609472);
+emit_32(3275200528);
+emit_32(1105786254);
+emit_32(3237609472);
+emit_32(3274944545);
+emit_32(1106026116);
+emit_32(3237609472);
+emit_32(3274688496);
+emit_32(1106387979);
+emit_32(3237609472);
+emit_32(3274432512);
+emit_32(1107205816);
+emit_32(3237609472);
+emit_32(3274176528);
+emit_32(1107688659);
+emit_32(3237609472);
+emit_32(3273920545);
+emit_32(1107937067);
+emit_32(3237609472);
+emit_32(3273664496);
+emit_32(1108184426);
+emit_32(3237609472);
+emit_32(3273408512);
+emit_32(1108351831);
+emit_32(3237609472);
+emit_32(3273152528);
+emit_32(1108376840);
+emit_32(3237609472);
+emit_32(3272896545);
+emit_32(1108546866);
+emit_32(3237609472);
+emit_32(3272640496);
+emit_32(1108425232);
+emit_32(3237609472);
+emit_32(3272384512);
+emit_32(1108404994);
+emit_32(3237609472);
+emit_32(3272128528);
+emit_32(1108262466);
+emit_32(3237609472);
+emit_32(3271872545);
+emit_32(1107983912);
+emit_32(3237609472);
+emit_32(3271616496);
+emit_32(1107864453);
+emit_32(3237609472);
+emit_32(3271163904);
+emit_32(1107866576);
+emit_32(3237609472);
+emit_32(3270651937);
+emit_32(1107727562);
+emit_32(3237609472);
+emit_32(3270139970);
+emit_32(1107886499);
+emit_32(3237609472);
+emit_32(3269627871);
+emit_32(1107880313);
+emit_32(3237609472);
+emit_32(3269115904);
+emit_32(1107886866);
+emit_32(3237609472);
+emit_32(3268603937);
+emit_32(1107605533);
+emit_32(3237609472);
+emit_32(3268091970);
+emit_32(1107358646);
+emit_32(3237609472);
+emit_32(3267579911);
+emit_32(1106791734);
+emit_32(3237609472);
+emit_32(3267067904);
+emit_32(1106079646);
+emit_32(3237609472);
+emit_32(3266555911);
+emit_32(1104985928);
+emit_32(3237609472);
+emit_32(3266043904);
+emit_32(1104015576);
+emit_32(3237609472);
+emit_32(3265531911);
+emit_32(1103311720);
+emit_32(3237609472);
+emit_32(3265019904);
+emit_32(1103316648);
+emit_32(3237609472);
+emit_32(3264507911);
+emit_32(1103704569);
+emit_32(3237609472);
+emit_32(3263995904);
+emit_32(1103636359);
+emit_32(3237609472);
+emit_32(3263483911);
+emit_32(1103830817);
+emit_32(3237609472);
+emit_32(3262775296);
+emit_32(1104077757);
+emit_32(3237609472);
+emit_32(3261751309);
+emit_32(1104578819);
+emit_32(3237609472);
+emit_32(3260727296);
+emit_32(1105235699);
+emit_32(3237609472);
+emit_32(3259703309);
+emit_32(1105711858);
+emit_32(3237609472);
+emit_32(3258679296);
+emit_32(1105779124);
+emit_32(3237609472);
+emit_32(3257655309);
+emit_32(1106565975);
+emit_32(3237609472);
+emit_32(3256631296);
+emit_32(1107139756);
+emit_32(3237609472);
+emit_32(3255607309);
+emit_32(1107456478);
+emit_32(3237609472);
+emit_32(3254386688);
+emit_32(1107977988);
+emit_32(3237609472);
+emit_32(3252338714);
+emit_32(1108423606);
+emit_32(3237609472);
+emit_32(3250290688);
+emit_32(1108993822);
+emit_32(3237609472);
+emit_32(3248242714);
+emit_32(1109315132);
+emit_32(3237609472);
+emit_32(3245998080);
+emit_32(1109596884);
+emit_32(3237609472);
+emit_32(3241902132);
+emit_32(1110086989);
+emit_32(3237609472);
+emit_32(3237609472);
+emit_32(1110712176);
+emit_32(3237609472);
+emit_32(3229220864);
+emit_32(1111303415);
+emit_32(3237609472);
+emit_32(0);
+emit_32(1111637125);
+emit_32(3237609472);
+emit_32(1081737216);
+emit_32(1111679959);
+emit_32(3237609472);
+emit_32(3279552512);
+emit_32(1058110391);
+emit_32(3241902132);
+emit_32(3279296528);
+emit_32(1072323898);
+emit_32(3241902132);
+emit_32(3279040545);
+emit_32(1079279857);
+emit_32(3241902132);
+emit_32(3278784496);
+emit_32(1082742465);
+emit_32(3241902132);
+emit_32(3278528512);
+emit_32(1086410992);
+emit_32(3241902132);
+emit_32(3278272528);
+emit_32(1088461147);
+emit_32(3241902132);
+emit_32(3278016545);
+emit_32(1091533338);
+emit_32(3241902132);
+emit_32(3277760496);
+emit_32(1093009303);
+emit_32(3241902132);
+emit_32(3277504512);
+emit_32(1094260359);
+emit_32(3241902132);
+emit_32(3277248528);
+emit_32(1096715285);
+emit_32(3241902132);
+emit_32(3276992545);
+emit_32(1098545575);
+emit_32(3241902132);
+emit_32(3276736496);
+emit_32(1100069260);
+emit_32(3241902132);
+emit_32(3276480512);
+emit_32(1101010882);
+emit_32(3241902132);
+emit_32(3276224528);
+emit_32(1101814458);
+emit_32(3241902132);
+emit_32(3275968545);
+emit_32(1102816372);
+emit_32(3241902132);
+emit_32(3275712496);
+emit_32(1104296175);
+emit_32(3241902132);
+emit_32(3275456512);
+emit_32(1105227573);
+emit_32(3241902132);
+emit_32(3275200528);
+emit_32(1105862695);
+emit_32(3241902132);
+emit_32(3274944545);
+emit_32(1106061767);
+emit_32(3241902132);
+emit_32(3274688496);
+emit_32(1106614157);
+emit_32(3241902132);
+emit_32(3274432512);
+emit_32(1106679117);
+emit_32(3241902132);
+emit_32(3274176528);
+emit_32(1107555097);
+emit_32(3241902132);
+emit_32(3273920545);
+emit_32(1107710706);
+emit_32(3241902132);
+emit_32(3273664496);
+emit_32(1107987399);
+emit_32(3241902132);
+emit_32(3273408512);
+emit_32(1108243985);
+emit_32(3241902132);
+emit_32(3273152528);
+emit_32(1108410132);
+emit_32(3241902132);
+emit_32(3272896545);
+emit_32(1108423370);
+emit_32(3241902132);
+emit_32(3272640496);
+emit_32(1108487858);
+emit_32(3241902132);
+emit_32(3272384512);
+emit_32(1108444525);
+emit_32(3241902132);
+emit_32(3272128528);
+emit_32(1108145681);
+emit_32(3241902132);
+emit_32(3271872545);
+emit_32(1107836142);
+emit_32(3241902132);
+emit_32(3271616496);
+emit_32(1107856825);
+emit_32(3241902132);
+emit_32(3271163904);
+emit_32(1107713065);
+emit_32(3241902132);
+emit_32(3270651937);
+emit_32(1107761431);
+emit_32(3241902132);
+emit_32(3270139970);
+emit_32(1107749346);
+emit_32(3241902132);
+emit_32(3269627871);
+emit_32(1107742242);
+emit_32(3241902132);
+emit_32(3269115904);
+emit_32(1107724468);
+emit_32(3241902132);
+emit_32(3268603937);
+emit_32(1107622651);
+emit_32(3241902132);
+emit_32(3268091970);
+emit_32(1107524085);
+emit_32(3241902132);
+emit_32(3267579911);
+emit_32(1106842380);
+emit_32(3241902132);
+emit_32(3267067904);
+emit_32(1106029733);
+emit_32(3241902132);
+emit_32(3266555911);
+emit_32(1104983674);
+emit_32(3241902132);
+emit_32(3266043904);
+emit_32(1104019456);
+emit_32(3241902132);
+emit_32(3265531911);
+emit_32(1103853571);
+emit_32(3241902132);
+emit_32(3265019904);
+emit_32(1103951666);
+emit_32(3241902132);
+emit_32(3264507911);
+emit_32(1103711542);
+emit_32(3241902132);
+emit_32(3263995904);
+emit_32(1103910404);
+emit_32(3241902132);
+emit_32(3263483911);
+emit_32(1103908517);
+emit_32(3241902132);
+emit_32(3262775296);
+emit_32(1104110577);
+emit_32(3241902132);
+emit_32(3261751309);
+emit_32(1104188172);
+emit_32(3241902132);
+emit_32(3260727296);
+emit_32(1104905241);
+emit_32(3241902132);
+emit_32(3259703309);
+emit_32(1105620212);
+emit_32(3241902132);
+emit_32(3258679296);
+emit_32(1106230221);
+emit_32(3241902132);
+emit_32(3257655309);
+emit_32(1107170322);
+emit_32(3241902132);
+emit_32(3256631296);
+emit_32(1107365357);
+emit_32(3241902132);
+emit_32(3255607309);
+emit_32(1107446569);
+emit_32(3241902132);
+emit_32(3254386688);
+emit_32(1107700744);
+emit_32(3241902132);
+emit_32(3252338714);
+emit_32(1108112651);
+emit_32(3241902132);
+emit_32(3250290688);
+emit_32(1108689473);
+emit_32(3241902132);
+emit_32(3248242714);
+emit_32(1109194519);
+emit_32(3241902132);
+emit_32(3245998080);
+emit_32(1109874285);
+emit_32(3241902132);
+emit_32(3241902132);
+emit_32(1110441774);
+emit_32(3241902132);
+emit_32(3237609472);
+emit_32(1111191218);
+emit_32(3241902132);
+emit_32(3229220864);
+emit_32(1111647243);
+emit_32(3241902132);
+emit_32(0);
+emit_32(1111674821);
+emit_32(3241902132);
+emit_32(1081737216);
+emit_32(1111917802);
+emit_32(3241902132);
+emit_32(3279552512);
+emit_32(1069567233);
+emit_32(3245998080);
+emit_32(3279296528);
+emit_32(1071989863);
+emit_32(3245998080);
+emit_32(3279040545);
+emit_32(1075944798);
+emit_32(3245998080);
+emit_32(3278784496);
+emit_32(1082325006);
+emit_32(3245998080);
+emit_32(3278528512);
+emit_32(1086766564);
+emit_32(3245998080);
+emit_32(3278272528);
+emit_32(1089466668);
+emit_32(3245998080);
+emit_32(3278016545);
+emit_32(1091111989);
+emit_32(3245998080);
+emit_32(3277760496);
+emit_32(1092605224);
+emit_32(3245998080);
+emit_32(3277504512);
+emit_32(1095055494);
+emit_32(3245998080);
+emit_32(3277248528);
+emit_32(1097329541);
+emit_32(3245998080);
+emit_32(3276992545);
+emit_32(1098231421);
+emit_32(3245998080);
+emit_32(3276736496);
+emit_32(1099798361);
+emit_32(3245998080);
+emit_32(3276480512);
+emit_32(1100629777);
+emit_32(3245998080);
+emit_32(3276224528);
+emit_32(1101582932);
+emit_32(3245998080);
+emit_32(3275968545);
+emit_32(1102756341);
+emit_32(3245998080);
+emit_32(3275712496);
+emit_32(1103822271);
+emit_32(3245998080);
+emit_32(3275456512);
+emit_32(1104867754);
+emit_32(3245998080);
+emit_32(3275200528);
+emit_32(1105394716);
+emit_32(3245998080);
+emit_32(3274944545);
+emit_32(1106013428);
+emit_32(3245998080);
+emit_32(3274688496);
+emit_32(1106248257);
+emit_32(3245998080);
+emit_32(3274432512);
+emit_32(1106783293);
+emit_32(3245998080);
+emit_32(3274176528);
+emit_32(1107441641);
+emit_32(3245998080);
+emit_32(3273920545);
+emit_32(1107472338);
+emit_32(3245998080);
+emit_32(3273664496);
+emit_32(1107780305);
+emit_32(3245998080);
+emit_32(3273408512);
+emit_32(1108116033);
+emit_32(3245998080);
+emit_32(3273152528);
+emit_32(1108228755);
+emit_32(3245998080);
+emit_32(3272896545);
+emit_32(1108513391);
+emit_32(3245998080);
+emit_32(3272640496);
+emit_32(1108457108);
+emit_32(3245998080);
+emit_32(3272384512);
+emit_32(1108243173);
+emit_32(3245998080);
+emit_32(3272128528);
+emit_32(1108176536);
+emit_32(3245998080);
+emit_32(3271872545);
+emit_32(1107871348);
+emit_32(3245998080);
+emit_32(3271616496);
+emit_32(1107923121);
+emit_32(3245998080);
+emit_32(3271163904);
+emit_32(1107614682);
+emit_32(3245998080);
+emit_32(3270651937);
+emit_32(1107505709);
+emit_32(3245998080);
+emit_32(3270139970);
+emit_32(1107594707);
+emit_32(3245998080);
+emit_32(3269627871);
+emit_32(1107597381);
+emit_32(3245998080);
+emit_32(3269115904);
+emit_32(1107730471);
+emit_32(3245998080);
+emit_32(3268603937);
+emit_32(1107619086);
+emit_32(3245998080);
+emit_32(3268091970);
+emit_32(1107455273);
+emit_32(3245998080);
+emit_32(3267579911);
+emit_32(1106610802);
+emit_32(3245998080);
+emit_32(3267067904);
+emit_32(1105479074);
+emit_32(3245998080);
+emit_32(3266555911);
+emit_32(1105028081);
+emit_32(3245998080);
+emit_32(3266043904);
+emit_32(1104895856);
+emit_32(3245998080);
+emit_32(3265531911);
+emit_32(1104167515);
+emit_32(3245998080);
+emit_32(3265019904);
+emit_32(1104032563);
+emit_32(3245998080);
+emit_32(3264507911);
+emit_32(1104102818);
+emit_32(3245998080);
+emit_32(3263995904);
+emit_32(1103636621);
+emit_32(3245998080);
+emit_32(3263483911);
+emit_32(1104117812);
+emit_32(3245998080);
+emit_32(3262775296);
+emit_32(1104170556);
+emit_32(3245998080);
+emit_32(3261751309);
+emit_32(1104075031);
+emit_32(3245998080);
+emit_32(3260727296);
+emit_32(1104866076);
+emit_32(3245998080);
+emit_32(3259703309);
+emit_32(1105674056);
+emit_32(3245998080);
+emit_32(3258679296);
+emit_32(1106593763);
+emit_32(3245998080);
+emit_32(3257655309);
+emit_32(1107479652);
+emit_32(3245998080);
+emit_32(3256631296);
+emit_32(1107477371);
+emit_32(3245998080);
+emit_32(3255607309);
+emit_32(1107602886);
+emit_32(3245998080);
+emit_32(3254386688);
+emit_32(1108002655);
+emit_32(3245998080);
+emit_32(3252338714);
+emit_32(1108265717);
+emit_32(3245998080);
+emit_32(3250290688);
+emit_32(1108946348);
+emit_32(3245998080);
+emit_32(3248242714);
+emit_32(1109570748);
+emit_32(3245998080);
+emit_32(3245998080);
+emit_32(1110334348);
+emit_32(3245998080);
+emit_32(3241902132);
+emit_32(1111046776);
+emit_32(3245998080);
+emit_32(3237609472);
+emit_32(1111662998);
+emit_32(3245998080);
+emit_32(3229220864);
+emit_32(1111752783);
+emit_32(3245998080);
+emit_32(0);
+emit_32(1112149144);
+emit_32(3245998080);
+emit_32(1081737216);
+emit_32(1112196121);
+emit_32(3245998080);
+emit_32(3279552512);
+emit_32(1069069537);
+emit_32(3248242714);
+emit_32(3279296528);
+emit_32(1070813613);
+emit_32(3248242714);
+emit_32(3279040545);
+emit_32(1077694242);
+emit_32(3248242714);
+emit_32(3278784496);
+emit_32(1083641745);
+emit_32(3248242714);
+emit_32(3278528512);
+emit_32(1087538169);
+emit_32(3248242714);
+emit_32(3278272528);
+emit_32(1089089810);
+emit_32(3248242714);
+emit_32(3278016545);
+emit_32(1090321216);
+emit_32(3248242714);
+emit_32(3277760496);
+emit_32(1092452761);
+emit_32(3248242714);
+emit_32(3277504512);
+emit_32(1094878390);
+emit_32(3248242714);
+emit_32(3277248528);
+emit_32(1096058143);
+emit_32(3248242714);
+emit_32(3276992545);
+emit_32(1098098567);
+emit_32(3248242714);
+emit_32(3276736496);
+emit_32(1099576902);
+emit_32(3248242714);
+emit_32(3276480512);
+emit_32(1100562563);
+emit_32(3248242714);
+emit_32(3276224528);
+emit_32(1101167224);
+emit_32(3248242714);
+emit_32(3275968545);
+emit_32(1102019088);
+emit_32(3248242714);
+emit_32(3275712496);
+emit_32(1103025878);
+emit_32(3248242714);
+emit_32(3275456512);
+emit_32(1104220258);
+emit_32(3248242714);
+emit_32(3275200528);
+emit_32(1104981944);
+emit_32(3248242714);
+emit_32(3274944545);
+emit_32(1105491132);
+emit_32(3248242714);
+emit_32(3274688496);
+emit_32(1105710495);
+emit_32(3248242714);
+emit_32(3274432512);
+emit_32(1106232423);
+emit_32(3248242714);
+emit_32(3274176528);
+emit_32(1106909961);
+emit_32(3248242714);
+emit_32(3273920545);
+emit_32(1107031858);
+emit_32(3248242714);
+emit_32(3273664496);
+emit_32(1107735426);
+emit_32(3248242714);
+emit_32(3273408512);
+emit_32(1108117868);
+emit_32(3248242714);
+emit_32(3273152528);
+emit_32(1108098862);
+emit_32(3248242714);
+emit_32(3272896545);
+emit_32(1108068716);
+emit_32(3248242714);
+emit_32(3272640496);
+emit_32(1108110003);
+emit_32(3248242714);
+emit_32(3272384512);
+emit_32(1108104761);
+emit_32(3248242714);
+emit_32(3272128528);
+emit_32(1108024125);
+emit_32(3248242714);
+emit_32(3271872545);
+emit_32(1107776111);
+emit_32(3248242714);
+emit_32(3271616496);
+emit_32(1107637384);
+emit_32(3248242714);
+emit_32(3271163904);
+emit_32(1107446360);
+emit_32(3248242714);
+emit_32(3270651937);
+emit_32(1107041400);
+emit_32(3248242714);
+emit_32(3270139970);
+emit_32(1107011882);
+emit_32(3248242714);
+emit_32(3269627871);
+emit_32(1107115167);
+emit_32(3248242714);
+emit_32(3269115904);
+emit_32(1107418494);
+emit_32(3248242714);
+emit_32(3268603937);
+emit_32(1107457422);
+emit_32(3248242714);
+emit_32(3268091970);
+emit_32(1106904613);
+emit_32(3248242714);
+emit_32(3267579911);
+emit_32(1106031411);
+emit_32(3248242714);
+emit_32(3267067904);
+emit_32(1105454223);
+emit_32(3248242714);
+emit_32(3266555911);
+emit_32(1105778967);
+emit_32(3248242714);
+emit_32(3266043904);
+emit_32(1105570929);
+emit_32(3248242714);
+emit_32(3265531911);
+emit_32(1104914258);
+emit_32(3248242714);
+emit_32(3265019904);
+emit_32(1104424468);
+emit_32(3248242714);
+emit_32(3264507911);
+emit_32(1104545527);
+emit_32(3248242714);
+emit_32(3263995904);
+emit_32(1104296280);
+emit_32(3248242714);
+emit_32(3263483911);
+emit_32(1103990568);
+emit_32(3248242714);
+emit_32(3262775296);
+emit_32(1104013427);
+emit_32(3248242714);
+emit_32(3261751309);
+emit_32(1104087142);
+emit_32(3248242714);
+emit_32(3260727296);
+emit_32(1104895017);
+emit_32(3248242714);
+emit_32(3259703309);
+emit_32(1105764129);
+emit_32(3248242714);
+emit_32(3258679296);
+emit_32(1106780357);
+emit_32(3248242714);
+emit_32(3257655309);
+emit_32(1107436005);
+emit_32(3248242714);
+emit_32(3256631296);
+emit_32(1107614237);
+emit_32(3248242714);
+emit_32(3255607309);
+emit_32(1107805785);
+emit_32(3248242714);
+emit_32(3254386688);
+emit_32(1108259294);
+emit_32(3248242714);
+emit_32(3252338714);
+emit_32(1108838738);
+emit_32(3248242714);
+emit_32(3250290688);
+emit_32(1109532056);
+emit_32(3248242714);
+emit_32(3248242714);
+emit_32(1110357731);
+emit_32(3248242714);
+emit_32(3245998080);
+emit_32(1111305617);
+emit_32(3248242714);
+emit_32(3241902132);
+emit_32(1111938354);
+emit_32(3248242714);
+emit_32(3237609472);
+emit_32(1112310678);
+emit_32(3248242714);
+emit_32(3229220864);
+emit_32(1112422010);
+emit_32(3248242714);
+emit_32(0);
+emit_32(1112626745);
+emit_32(3248242714);
+emit_32(1081737216);
+emit_32(1112566084);
+emit_32(3248242714);
+emit_32(3279552512);
+emit_32(1065800916);
+emit_32(3250290688);
+emit_32(3279296528);
+emit_32(1067728450);
+emit_32(3250290688);
+emit_32(3279040545);
+emit_32(1079534242);
+emit_32(3250290688);
+emit_32(3278784496);
+emit_32(1083207466);
+emit_32(3250290688);
+emit_32(3278528512);
+emit_32(1085554830);
+emit_32(3250290688);
+emit_32(3278272528);
+emit_32(1087362784);
+emit_32(3250290688);
+emit_32(3278016545);
+emit_32(1089916067);
+emit_32(3250290688);
+emit_32(3277760496);
+emit_32(1091396866);
+emit_32(3250290688);
+emit_32(3277504512);
+emit_32(1093035832);
+emit_32(3250290688);
+emit_32(3277248528);
+emit_32(1094508767);
+emit_32(3250290688);
+emit_32(3276992545);
+emit_32(1096595328);
+emit_32(3250290688);
+emit_32(3276736496);
+emit_32(1099173252);
+emit_32(3250290688);
+emit_32(3276480512);
+emit_32(1100269748);
+emit_32(3250290688);
+emit_32(3276224528);
+emit_32(1101165704);
+emit_32(3250290688);
+emit_32(3275968545);
+emit_32(1101889169);
+emit_32(3250290688);
+emit_32(3275712496);
+emit_32(1102356467);
+emit_32(3250290688);
+emit_32(3275456512);
+emit_32(1103641549);
+emit_32(3250290688);
+emit_32(3275200528);
+emit_32(1104432910);
+emit_32(3250290688);
+emit_32(3274944545);
+emit_32(1104777157);
+emit_32(3250290688);
+emit_32(3274688496);
+emit_32(1105410025);
+emit_32(3250290688);
+emit_32(3274432512);
+emit_32(1105737233);
+emit_32(3250290688);
+emit_32(3274176528);
+emit_32(1106211085);
+emit_32(3250290688);
+emit_32(3273920545);
+emit_32(1107190979);
+emit_32(3250290688);
+emit_32(3273664496);
+emit_32(1107686903);
+emit_32(3250290688);
+emit_32(3273408512);
+emit_32(1107933449);
+emit_32(3250290688);
+emit_32(3273152528);
+emit_32(1107858896);
+emit_32(3250290688);
+emit_32(3272896545);
+emit_32(1107712567);
+emit_32(3250290688);
+emit_32(3272640496);
+emit_32(1107834044);
+emit_32(3250290688);
+emit_32(3272384512);
+emit_32(1107745256);
+emit_32(3250290688);
+emit_32(3272128528);
+emit_32(1107612821);
+emit_32(3250290688);
+emit_32(3271872545);
+emit_32(1107307240);
+emit_32(3250290688);
+emit_32(3271616496);
+emit_32(1106953581);
+emit_32(3250290688);
+emit_32(3271163904);
+emit_32(1106958195);
+emit_32(3250290688);
+emit_32(3270651937);
+emit_32(1106599635);
+emit_32(3250290688);
+emit_32(3270139970);
+emit_32(1106321238);
+emit_32(3250290688);
+emit_32(3269627871);
+emit_32(1106339588);
+emit_32(3250290688);
+emit_32(3269115904);
+emit_32(1106571795);
+emit_32(3250290688);
+emit_32(3268603937);
+emit_32(1106917982);
+emit_32(3250290688);
+emit_32(3268091970);
+emit_32(1106501383);
+emit_32(3250290688);
+emit_32(3267579911);
+emit_32(1105718516);
+emit_32(3250290688);
+emit_32(3267067904);
+emit_32(1105903065);
+emit_32(3250290688);
+emit_32(3266555911);
+emit_32(1106013795);
+emit_32(3250290688);
+emit_32(3266043904);
+emit_32(1105949517);
+emit_32(3250290688);
+emit_32(3265531911);
+emit_32(1105206863);
+emit_32(3250290688);
+emit_32(3265019904);
+emit_32(1104861934);
+emit_32(3250290688);
+emit_32(3264507911);
+emit_32(1104599790);
+emit_32(3250290688);
+emit_32(3263995904);
+emit_32(1103950932);
+emit_32(3250290688);
+emit_32(3263483911);
+emit_32(1104055527);
+emit_32(3250290688);
+emit_32(3262775296);
+emit_32(1103866364);
+emit_32(3250290688);
+emit_32(3261751309);
+emit_32(1104419383);
+emit_32(3250290688);
+emit_32(3260727296);
+emit_32(1104811026);
+emit_32(3250290688);
+emit_32(3259703309);
+emit_32(1105456634);
+emit_32(3250290688);
+emit_32(3258679296);
+emit_32(1106791681);
+emit_32(3250290688);
+emit_32(3257655309);
+emit_32(1107583068);
+emit_32(3250290688);
+emit_32(3256631296);
+emit_32(1107949860);
+emit_32(3250290688);
+emit_32(3255607309);
+emit_32(1108658278);
+emit_32(3250290688);
+emit_32(3254386688);
+emit_32(1109252165);
+emit_32(3250290688);
+emit_32(3252338714);
+emit_32(1109776086);
+emit_32(3250290688);
+emit_32(3250290688);
+emit_32(1110334321);
+emit_32(3250290688);
+emit_32(3248242714);
+emit_32(1111177403);
+emit_32(3250290688);
+emit_32(3245998080);
+emit_32(1111862202);
+emit_32(3250290688);
+emit_32(3241902132);
+emit_32(1112485580);
+emit_32(3250290688);
+emit_32(3237609472);
+emit_32(1112835516);
+emit_32(3250290688);
+emit_32(3229220864);
+emit_32(1112928997);
+emit_32(3250290688);
+emit_32(0);
+emit_32(1112967689);
+emit_32(3250290688);
+emit_32(1081737216);
+emit_32(1113150456);
+emit_32(3250290688);
+emit_32(3279552512);
+emit_32(1065811150);
+emit_32(3252338714);
+emit_32(3279296528);
+emit_32(1074401378);
+emit_32(3252338714);
+emit_32(3279040545);
+emit_32(1078638548);
+emit_32(3252338714);
+emit_32(3278784496);
+emit_32(1082498734);
+emit_32(3252338714);
+emit_32(3278528512);
+emit_32(1084586134);
+emit_32(3252338714);
+emit_32(3278272528);
+emit_32(1087624907);
+emit_32(3252338714);
+emit_32(3278016545);
+emit_32(1088961422);
+emit_32(3252338714);
+emit_32(3277760496);
+emit_32(1091843412);
+emit_32(3252338714);
+emit_32(3277504512);
+emit_32(1093413739);
+emit_32(3252338714);
+emit_32(3277248528);
+emit_32(1094395206);
+emit_32(3252338714);
+emit_32(3276992545);
+emit_32(1095806484);
+emit_32(3252338714);
+emit_32(3276736496);
+emit_32(1097929536);
+emit_32(3252338714);
+emit_32(3276480512);
+emit_32(1099744988);
+emit_32(3252338714);
+emit_32(3276224528);
+emit_32(1100647340);
+emit_32(3252338714);
+emit_32(3275968545);
+emit_32(1101240992);
+emit_32(3252338714);
+emit_32(3275712496);
+emit_32(1101372693);
+emit_32(3252338714);
+emit_32(3275456512);
+emit_32(1102475638);
+emit_32(3252338714);
+emit_32(3275200528);
+emit_32(1103490240);
+emit_32(3252338714);
+emit_32(3274944545);
+emit_32(1104043416);
+emit_32(3252338714);
+emit_32(3274688496);
+emit_32(1105440696);
+emit_32(3252338714);
+emit_32(3274432512);
+emit_32(1105987161);
+emit_32(3252338714);
+emit_32(3274176528);
+emit_32(1106185395);
+emit_32(3252338714);
+emit_32(3273920545);
+emit_32(1107031700);
+emit_32(3252338714);
+emit_32(3273664496);
+emit_32(1107454932);
+emit_32(3252338714);
+emit_32(3273408512);
+emit_32(1107539368);
+emit_32(3252338714);
+emit_32(3273152528);
+emit_32(1107466152);
+emit_32(3252338714);
+emit_32(3272896545);
+emit_32(1107413067);
+emit_32(3252338714);
+emit_32(3272640496);
+emit_32(1107297960);
+emit_32(3252338714);
+emit_32(3272384512);
+emit_32(1107173310);
+emit_32(3252338714);
+emit_32(3272128528);
+emit_32(1107130371);
+emit_32(3252338714);
+emit_32(3271872545);
+emit_32(1106771653);
+emit_32(3252338714);
+emit_32(3271616496);
+emit_32(1106460803);
+emit_32(3252338714);
+emit_32(3271163904);
+emit_32(1106115455);
+emit_32(3252338714);
+emit_32(3270651937);
+emit_32(1105926344);
+emit_32(3252338714);
+emit_32(3270139970);
+emit_32(1105546602);
+emit_32(3252338714);
+emit_32(3269627871);
+emit_32(1105660477);
+emit_32(3252338714);
+emit_32(3269115904);
+emit_32(1105920367);
+emit_32(3252338714);
+emit_32(3268603937);
+emit_32(1106109897);
+emit_32(3252338714);
+emit_32(3268091970);
+emit_32(1105672798);
+emit_32(3252338714);
+emit_32(3267579911);
+emit_32(1105767537);
+emit_32(3252338714);
+emit_32(3267067904);
+emit_32(1105707139);
+emit_32(3252338714);
+emit_32(3266555911);
+emit_32(1105871241);
+emit_32(3252338714);
+emit_32(3266043904);
+emit_32(1105955599);
+emit_32(3252338714);
+emit_32(3265531911);
+emit_32(1105848435);
+emit_32(3252338714);
+emit_32(3265019904);
+emit_32(1105348264);
+emit_32(3252338714);
+emit_32(3264507911);
+emit_32(1104644040);
+emit_32(3252338714);
+emit_32(3263995904);
+emit_32(1104354371);
+emit_32(3252338714);
+emit_32(3263483911);
+emit_32(1104366902);
+emit_32(3252338714);
+emit_32(3262775296);
+emit_32(1104900103);
+emit_32(3252338714);
+emit_32(3261751309);
+emit_32(1105214885);
+emit_32(3252338714);
+emit_32(3260727296);
+emit_32(1105392147);
+emit_32(3252338714);
+emit_32(3259703309);
+emit_32(1106490111);
+emit_32(3252338714);
+emit_32(3258679296);
+emit_32(1107465837);
+emit_32(3252338714);
+emit_32(3257655309);
+emit_32(1108021897);
+emit_32(3252338714);
+emit_32(3256631296);
+emit_32(1108703366);
+emit_32(3252338714);
+emit_32(3255607309);
+emit_32(1109418128);
+emit_32(3252338714);
+emit_32(3254386688);
+emit_32(1110033669);
+emit_32(3252338714);
+emit_32(3252338714);
+emit_32(1110598065);
+emit_32(3252338714);
+emit_32(3250290688);
+emit_32(1111530878);
+emit_32(3252338714);
+emit_32(3248242714);
+emit_32(1112167127);
+emit_32(3252338714);
+emit_32(3245998080);
+emit_32(1112747776);
+emit_32(3252338714);
+emit_32(3241902132);
+emit_32(1113057631);
+emit_32(3252338714);
+emit_32(3237609472);
+emit_32(1113395220);
+emit_32(3252338714);
+emit_32(3229220864);
+emit_32(1113520262);
+emit_32(3252338714);
+emit_32(0);
+emit_32(1113746230);
+emit_32(3252338714);
+emit_32(1081737216);
+emit_32(1113988085);
+emit_32(3252338714);
+emit_32(3279552512);
+emit_32(1073007234);
+emit_32(3254386688);
+emit_32(3279296528);
+emit_32(1071855058);
+emit_32(3254386688);
+emit_32(3279040545);
+emit_32(1077504995);
+emit_32(3254386688);
+emit_32(3278784496);
+emit_32(1083853809);
+emit_32(3254386688);
+emit_32(3278528512);
+emit_32(1085433090);
+emit_32(3254386688);
+emit_32(3278272528);
+emit_32(1086653926);
+emit_32(3254386688);
+emit_32(3278016545);
+emit_32(1089328256);
+emit_32(3254386688);
+emit_32(3277760496);
+emit_32(1091680359);
+emit_32(3254386688);
+emit_32(3277504512);
+emit_32(1093386371);
+emit_32(3254386688);
+emit_32(3277248528);
+emit_32(1094430019);
+emit_32(3254386688);
+emit_32(3276992545);
+emit_32(1095762759);
+emit_32(3254386688);
+emit_32(3276736496);
+emit_32(1097278685);
+emit_32(3254386688);
+emit_32(3276480512);
+emit_32(1099307942);
+emit_32(3254386688);
+emit_32(3276224528);
+emit_32(1100328206);
+emit_32(3254386688);
+emit_32(3275968545);
+emit_32(1100510396);
+emit_32(3254386688);
+emit_32(3275712496);
+emit_32(1100754190);
+emit_32(3254386688);
+emit_32(3275456512);
+emit_32(1101542300);
+emit_32(3254386688);
+emit_32(3275200528);
+emit_32(1102303461);
+emit_32(3254386688);
+emit_32(3274944545);
+emit_32(1103597719);
+emit_32(3254386688);
+emit_32(3274688496);
+emit_32(1104967316);
+emit_32(3254386688);
+emit_32(3274432512);
+emit_32(1105690205);
+emit_32(3254386688);
+emit_32(3274176528);
+emit_32(1106034714);
+emit_32(3254386688);
+emit_32(3273920545);
+emit_32(1106220994);
+emit_32(3254386688);
+emit_32(3273664496);
+emit_32(1106826651);
+emit_32(3254386688);
+emit_32(3273408512);
+emit_32(1107242779);
+emit_32(3254386688);
+emit_32(3273152528);
+emit_32(1107302810);
+emit_32(3254386688);
+emit_32(3272896545);
+emit_32(1107370915);
+emit_32(3254386688);
+emit_32(3272640496);
+emit_32(1107004385);
+emit_32(3254386688);
+emit_32(3272384512);
+emit_32(1106217429);
+emit_32(3254386688);
+emit_32(3272128528);
+emit_32(1106380587);
+emit_32(3254386688);
+emit_32(3271872545);
+emit_32(1106492418);
+emit_32(3254386688);
+emit_32(3271616496);
+emit_32(1106313793);
+emit_32(3254386688);
+emit_32(3271163904);
+emit_32(1105860336);
+emit_32(3254386688);
+emit_32(3270651937);
+emit_32(1104962965);
+emit_32(3254386688);
+emit_32(3270139970);
+emit_32(1104709367);
+emit_32(3254386688);
+emit_32(3269627871);
+emit_32(1104850924);
+emit_32(3254386688);
+emit_32(3269115904);
+emit_32(1105116162);
+emit_32(3254386688);
+emit_32(3268603937);
+emit_32(1105713640);
+emit_32(3254386688);
+emit_32(3268091970);
+emit_32(1105431311);
+emit_32(3254386688);
+emit_32(3267579911);
+emit_32(1105504921);
+emit_32(3254386688);
+emit_32(3267067904);
+emit_32(1105722658);
+emit_32(3254386688);
+emit_32(3266555911);
+emit_32(1106419279);
+emit_32(3254386688);
+emit_32(3266043904);
+emit_32(1106556905);
+emit_32(3254386688);
+emit_32(3265531911);
+emit_32(1106183088);
+emit_32(3254386688);
+emit_32(3265019904);
+emit_32(1105580681);
+emit_32(3254386688);
+emit_32(3264507911);
+emit_32(1105335366);
+emit_32(3254386688);
+emit_32(3263995904);
+emit_32(1104986348);
+emit_32(3254386688);
+emit_32(3263483911);
+emit_32(1105341763);
+emit_32(3254386688);
+emit_32(3262775296);
+emit_32(1105698541);
+emit_32(3254386688);
+emit_32(3261751309);
+emit_32(1105960737);
+emit_32(3254386688);
+emit_32(3260727296);
+emit_32(1106331828);
+emit_32(3254386688);
+emit_32(3259703309);
+emit_32(1107459886);
+emit_32(3254386688);
+emit_32(3258679296);
+emit_32(1108153677);
+emit_32(3254386688);
+emit_32(3257655309);
+emit_32(1108782508);
+emit_32(3254386688);
+emit_32(3256631296);
+emit_32(1109432127);
+emit_32(3254386688);
+emit_32(3255607309);
+emit_32(1110052097);
+emit_32(3254386688);
+emit_32(3254386688);
+emit_32(1110875832);
+emit_32(3254386688);
+emit_32(3252338714);
+emit_32(1111641214);
+emit_32(3254386688);
+emit_32(3250290688);
+emit_32(1112331230);
+emit_32(3254386688);
+emit_32(3248242714);
+emit_32(1112948054);
+emit_32(3254386688);
+emit_32(3245998080);
+emit_32(1113423243);
+emit_32(3254386688);
+emit_32(3241902132);
+emit_32(1113710579);
+emit_32(3254386688);
+emit_32(3237609472);
+emit_32(1113669763);
+emit_32(3254386688);
+emit_32(3229220864);
+emit_32(1114121516);
+emit_32(3254386688);
+emit_32(0);
+emit_32(1114484769);
+emit_32(3254386688);
+emit_32(1081737216);
+emit_32(1114484349);
+emit_32(3254386688);
+emit_32(3279552512);
+emit_32(1072117538);
+emit_32(3255607309);
+emit_32(3279296528);
+emit_32(1066548005);
+emit_32(3255607309);
+emit_32(3279040545);
+emit_32(1074090329);
+emit_32(3255607309);
+emit_32(3278784496);
+emit_32(1080727353);
+emit_32(3255607309);
+emit_32(3278528512);
+emit_32(1083163300);
+emit_32(3255607309);
+emit_32(3278272528);
+emit_32(1085569447);
+emit_32(3255607309);
+emit_32(3278016545);
+emit_32(1089130264);
+emit_32(3255607309);
+emit_32(3277760496);
+emit_32(1091726821);
+emit_32(3255607309);
+emit_32(3277504512);
+emit_32(1092664741);
+emit_32(3255607309);
+emit_32(3277248528);
+emit_32(1094453402);
+emit_32(3255607309);
+emit_32(3276992545);
+emit_32(1095438854);
+emit_32(3255607309);
+emit_32(3276736496);
+emit_32(1096833145);
+emit_32(3255607309);
+emit_32(3276480512);
+emit_32(1097840722);
+emit_32(3255607309);
+emit_32(3276224528);
+emit_32(1099027500);
+emit_32(3255607309);
+emit_32(3275968545);
+emit_32(1099544815);
+emit_32(3255607309);
+emit_32(3275712496);
+emit_32(1099992505);
+emit_32(3255607309);
+emit_32(3275456512);
+emit_32(1100930351);
+emit_32(3255607309);
+emit_32(3275200528);
+emit_32(1102195720);
+emit_32(3255607309);
+emit_32(3274944545);
+emit_32(1103964773);
+emit_32(3255607309);
+emit_32(3274688496);
+emit_32(1105022262);
+emit_32(3255607309);
+emit_32(3274432512);
+emit_32(1105539419);
+emit_32(3255607309);
+emit_32(3274176528);
+emit_32(1106031097);
+emit_32(3255607309);
+emit_32(3273920545);
+emit_32(1106016050);
+emit_32(3255607309);
+emit_32(3273664496);
+emit_32(1106647135);
+emit_32(3255607309);
+emit_32(3273408512);
+emit_32(1106967003);
+emit_32(3255607309);
+emit_32(3273152528);
+emit_32(1107003861);
+emit_32(3255607309);
+emit_32(3272896545);
+emit_32(1107169273);
+emit_32(3255607309);
+emit_32(3272640496);
+emit_32(1106842170);
+emit_32(3255607309);
+emit_32(3272384512);
+emit_32(1105904481);
+emit_32(3255607309);
+emit_32(3272128528);
+emit_32(1105234493);
+emit_32(3255607309);
+emit_32(3271872545);
+emit_32(1105294944);
+emit_32(3255607309);
+emit_32(3271616496);
+emit_32(1105337988);
+emit_32(3255607309);
+emit_32(3271163904);
+emit_32(1104796765);
+emit_32(3255607309);
+emit_32(3270651937);
+emit_32(1104285113);
+emit_32(3255607309);
+emit_32(3270139970);
+emit_32(1103883875);
+emit_32(3255607309);
+emit_32(3269627871);
+emit_32(1103911662);
+emit_32(3255607309);
+emit_32(3269115904);
+emit_32(1104082528);
+emit_32(3255607309);
+emit_32(3268603937);
+emit_32(1105166231);
+emit_32(3255607309);
+emit_32(3268091970);
+emit_32(1105162718);
+emit_32(3255607309);
+emit_32(3267579911);
+emit_32(1105161460);
+emit_32(3255607309);
+emit_32(3267067904);
+emit_32(1105681397);
+emit_32(3255607309);
+emit_32(3266555911);
+emit_32(1106322129);
+emit_32(3255607309);
+emit_32(3266043904);
+emit_32(1106430080);
+emit_32(3255607309);
+emit_32(3265531911);
+emit_32(1106116084);
+emit_32(3255607309);
+emit_32(3265019904);
+emit_32(1105862643);
+emit_32(3255607309);
+emit_32(3264507911);
+emit_32(1105647947);
+emit_32(3255607309);
+emit_32(3263995904);
+emit_32(1105573655);
+emit_32(3255607309);
+emit_32(3263483911);
+emit_32(1105891374);
+emit_32(3255607309);
+emit_32(3262775296);
+emit_32(1106077339);
+emit_32(3255607309);
+emit_32(3261751309);
+emit_32(1106805889);
+emit_32(3255607309);
+emit_32(3260727296);
+emit_32(1107381269);
+emit_32(3255607309);
+emit_32(3259703309);
+emit_32(1107945325);
+emit_32(3255607309);
+emit_32(3258679296);
+emit_32(1108632771);
+emit_32(3255607309);
+emit_32(3257655309);
+emit_32(1109426989);
+emit_32(3255607309);
+emit_32(3256631296);
+emit_32(1110034927);
+emit_32(3255607309);
+emit_32(3255607309);
+emit_32(1110881652);
+emit_32(3255607309);
+emit_32(3254386688);
+emit_32(1111900946);
+emit_32(3255607309);
+emit_32(3252338714);
+emit_32(1112428590);
+emit_32(3255607309);
+emit_32(3250290688);
+emit_32(1112879923);
+emit_32(3255607309);
+emit_32(3248242714);
+emit_32(1113433755);
+emit_32(3255607309);
+emit_32(3245998080);
+emit_32(1113801412);
+emit_32(3255607309);
+emit_32(3241902132);
+emit_32(1113823248);
+emit_32(3255607309);
+emit_32(3237609472);
+emit_32(1114004154);
+emit_32(3255607309);
+emit_32(3229220864);
+emit_32(1114356344);
+emit_32(3255607309);
+emit_32(0);
+emit_32(1114696502);
+emit_32(3255607309);
+emit_32(1081737216);
+emit_32(1114694274);
+emit_32(3255607309);
+emit_32(3279552512);
+emit_32(1076255680);
+emit_32(3256631296);
+emit_32(3279296528);
+emit_32(1069990271);
+emit_32(3256631296);
+emit_32(3279040545);
+emit_32(1068896816);
+emit_32(3256631296);
+emit_32(3278784496);
+emit_32(1077023364);
+emit_32(3256631296);
+emit_32(3278528512);
+emit_32(1081539790);
+emit_32(3256631296);
+emit_32(3278272528);
+emit_32(1084255287);
+emit_32(3256631296);
+emit_32(3278016545);
+emit_32(1087513968);
+emit_32(3256631296);
+emit_32(3277760496);
+emit_32(1090514049);
+emit_32(3256631296);
+emit_32(3277504512);
+emit_32(1092329323);
+emit_32(3256631296);
+emit_32(3277248528);
+emit_32(1094687130);
+emit_32(3256631296);
+emit_32(3276992545);
+emit_32(1095553044);
+emit_32(3256631296);
+emit_32(3276736496);
+emit_32(1096485647);
+emit_32(3256631296);
+emit_32(3276480512);
+emit_32(1097021994);
+emit_32(3256631296);
+emit_32(3276224528);
+emit_32(1097731565);
+emit_32(3256631296);
+emit_32(3275968545);
+emit_32(1099236114);
+emit_32(3256631296);
+emit_32(3275712496);
+emit_32(1099466539);
+emit_32(3256631296);
+emit_32(3275456512);
+emit_32(1100645820);
+emit_32(3256631296);
+emit_32(3275200528);
+emit_32(1102788270);
+emit_32(3256631296);
+emit_32(3274944545);
+emit_32(1104259213);
+emit_32(3256631296);
+emit_32(3274688496);
+emit_32(1105157161);
+emit_32(3256631296);
+emit_32(3274432512);
+emit_32(1105746199);
+emit_32(3256631296);
+emit_32(3274176528);
+emit_32(1105646689);
+emit_32(3256631296);
+emit_32(3273920545);
+emit_32(1106061296);
+emit_32(3256631296);
+emit_32(3273664496);
+emit_32(1106358777);
+emit_32(3256631296);
+emit_32(3273408512);
+emit_32(1106493728);
+emit_32(3256631296);
+emit_32(3273152528);
+emit_32(1106565556);
+emit_32(3256631296);
+emit_32(3272896545);
+emit_32(1106704649);
+emit_32(3256631296);
+emit_32(3272640496);
+emit_32(1106418231);
+emit_32(3256631296);
+emit_32(3272384512);
+emit_32(1105930014);
+emit_32(3256631296);
+emit_32(3272128528);
+emit_32(1105073589);
+emit_32(3256631296);
+emit_32(3271872545);
+emit_32(1104573104);
+emit_32(3256631296);
+emit_32(3271616496);
+emit_32(1104491368);
+emit_32(3256631296);
+emit_32(3271163904);
+emit_32(1103992822);
+emit_32(3256631296);
+emit_32(3270651937);
+emit_32(1103347004);
+emit_32(3256631296);
+emit_32(3270139970);
+emit_32(1103160882);
+emit_32(3256631296);
+emit_32(3269627871);
+emit_32(1103581256);
+emit_32(3256631296);
+emit_32(3269115904);
+emit_32(1103924874);
+emit_32(3256631296);
+emit_32(3268603937);
+emit_32(1103872184);
+emit_32(3256631296);
+emit_32(3268091970);
+emit_32(1104525237);
+emit_32(3256631296);
+emit_32(3267579911);
+emit_32(1104546785);
+emit_32(3256631296);
+emit_32(3267067904);
+emit_32(1105161250);
+emit_32(3256631296);
+emit_32(3266555911);
+emit_32(1105731204);
+emit_32(3256631296);
+emit_32(3266043904);
+emit_32(1105909881);
+emit_32(3256631296);
+emit_32(3265531911);
+emit_32(1106044990);
+emit_32(3256631296);
+emit_32(3265019904);
+emit_32(1105972009);
+emit_32(3256631296);
+emit_32(3264507911);
+emit_32(1105900444);
+emit_32(3256631296);
+emit_32(3263995904);
+emit_32(1106042264);
+emit_32(3256631296);
+emit_32(3263483911);
+emit_32(1105966347);
+emit_32(3256631296);
+emit_32(3262775296);
+emit_32(1106865029);
+emit_32(3256631296);
+emit_32(3261751309);
+emit_32(1107485707);
+emit_32(3256631296);
+emit_32(3260727296);
+emit_32(1107879081);
+emit_32(3256631296);
+emit_32(3259703309);
+emit_32(1108393643);
+emit_32(3256631296);
+emit_32(3258679296);
+emit_32(1109055845);
+emit_32(3256631296);
+emit_32(3257655309);
+emit_32(1109718362);
+emit_32(3256631296);
+emit_32(3256631296);
+emit_32(1110595522);
+emit_32(3256631296);
+emit_32(3255607309);
+emit_32(1111233213);
+emit_32(3256631296);
+emit_32(3254386688);
+emit_32(1112275236);
+emit_32(3256631296);
+emit_32(3252338714);
+emit_32(1112879058);
+emit_32(3256631296);
+emit_32(3250290688);
+emit_32(1113378678);
+emit_32(3256631296);
+emit_32(3248242714);
+emit_32(1113688847);
+emit_32(3256631296);
+emit_32(3245998080);
+emit_32(1114075693);
+emit_32(3256631296);
+emit_32(3241902132);
+emit_32(1114046857);
+emit_32(3256631296);
+emit_32(3237609472);
+emit_32(1114323576);
+emit_32(3256631296);
+emit_32(3229220864);
+emit_32(1114565509);
+emit_32(3256631296);
+emit_32(0);
+emit_32(1114610047);
+emit_32(3256631296);
+emit_32(1081737216);
+emit_32(1114612538);
+emit_32(3256631296);
+emit_32(3279552512);
+emit_32(1076804295);
+emit_32(3257655309);
+emit_32(3279296528);
+emit_32(1073151266);
+emit_32(3257655309);
+emit_32(3279040545);
+emit_32(1073776846);
+emit_32(3257655309);
+emit_32(3278784496);
+emit_32(1078617493);
+emit_32(3257655309);
+emit_32(3278528512);
+emit_32(1079412439);
+emit_32(3257655309);
+emit_32(3278272528);
+emit_32(1083194359);
+emit_32(3257655309);
+emit_32(3278016545);
+emit_32(1086932302);
+emit_32(3257655309);
+emit_32(3277760496);
+emit_32(1090303516);
+emit_32(3257655309);
+emit_32(3277504512);
+emit_32(1091865904);
+emit_32(3257655309);
+emit_32(3277248528);
+emit_32(1094115865);
+emit_32(3257655309);
+emit_32(3276992545);
+emit_32(1095463705);
+emit_32(3257655309);
+emit_32(3276736496);
+emit_32(1096420531);
+emit_32(3257655309);
+emit_32(3276480512);
+emit_32(1097432511);
+emit_32(3257655309);
+emit_32(3276224528);
+emit_32(1097662883);
+emit_32(3257655309);
+emit_32(3275968545);
+emit_32(1098694263);
+emit_32(3257655309);
+emit_32(3275712496);
+emit_32(1099094871);
+emit_32(3257655309);
+emit_32(3275456512);
+emit_32(1101139542);
+emit_32(3257655309);
+emit_32(3275200528);
+emit_32(1102734583);
+emit_32(3257655309);
+emit_32(3274944545);
+emit_32(1103866521);
+emit_32(3257655309);
+emit_32(3274688496);
+emit_32(1104826178);
+emit_32(3257655309);
+emit_32(3274432512);
+emit_32(1105191869);
+emit_32(3257655309);
+emit_32(3274176528);
+emit_32(1105342759);
+emit_32(3257655309);
+emit_32(3273920545);
+emit_32(1105684804);
+emit_32(3257655309);
+emit_32(3273664496);
+emit_32(1105820647);
+emit_32(3257655309);
+emit_32(3273408512);
+emit_32(1106189903);
+emit_32(3257655309);
+emit_32(3273152528);
+emit_32(1105981447);
+emit_32(3257655309);
+emit_32(3272896545);
+emit_32(1105858134);
+emit_32(3257655309);
+emit_32(3272640496);
+emit_32(1105678146);
+emit_32(3257655309);
+emit_32(3272384512);
+emit_32(1104998826);
+emit_32(3257655309);
+emit_32(3272128528);
+emit_32(1104598218);
+emit_32(3257655309);
+emit_32(3271872545);
+emit_32(1104297643);
+emit_32(3257655309);
+emit_32(3271616496);
+emit_32(1103698487);
+emit_32(3257655309);
+emit_32(3271163904);
+emit_32(1103368290);
+emit_32(3257655309);
+emit_32(3270651937);
+emit_32(1103021107);
+emit_32(3257655309);
+emit_32(3270139970);
+emit_32(1102840332);
+emit_32(3257655309);
+emit_32(3269627871);
+emit_32(1103133042);
+emit_32(3257655309);
+emit_32(3269115904);
+emit_32(1103173570);
+emit_32(3257655309);
+emit_32(3268603937);
+emit_32(1103141274);
+emit_32(3257655309);
+emit_32(3268091970);
+emit_32(1103365407);
+emit_32(3257655309);
+emit_32(3267579911);
+emit_32(1103545342);
+emit_32(3257655309);
+emit_32(3267067904);
+emit_32(1104414140);
+emit_32(3257655309);
+emit_32(3266555911);
+emit_32(1104666532);
+emit_32(3257655309);
+emit_32(3266043904);
+emit_32(1105496480);
+emit_32(3257655309);
+emit_32(3265531911);
+emit_32(1105715423);
+emit_32(3257655309);
+emit_32(3265019904);
+emit_32(1105801196);
+emit_32(3257655309);
+emit_32(3264507911);
+emit_32(1105657070);
+emit_32(3257655309);
+emit_32(3263995904);
+emit_32(1106199708);
+emit_32(3257655309);
+emit_32(3263483911);
+emit_32(1107111182);
+emit_32(3257655309);
+emit_32(3262775296);
+emit_32(1107520468);
+emit_32(3257655309);
+emit_32(3261751309);
+emit_32(1107938194);
+emit_32(3257655309);
+emit_32(3260727296);
+emit_32(1108285168);
+emit_32(3257655309);
+emit_32(3259703309);
+emit_32(1109004937);
+emit_32(3257655309);
+emit_32(3258679296);
+emit_32(1109555675);
+emit_32(3257655309);
+emit_32(3257655309);
+emit_32(1110079124);
+emit_32(3257655309);
+emit_32(3256631296);
+emit_32(1110954659);
+emit_32(3257655309);
+emit_32(3255607309);
+emit_32(1111702136);
+emit_32(3257655309);
+emit_32(3254386688);
+emit_32(1112419205);
+emit_32(3257655309);
+emit_32(3252338714);
+emit_32(1113101723);
+emit_32(3257655309);
+emit_32(3250290688);
+emit_32(1113769509);
+emit_32(3257655309);
+emit_32(3248242714);
+emit_32(1113942393);
+emit_32(3257655309);
+emit_32(3245998080);
+emit_32(1114187760);
+emit_32(3257655309);
+emit_32(3241902132);
+emit_32(1114233451);
+emit_32(3257655309);
+emit_32(3237609472);
+emit_32(1114375009);
+emit_32(3257655309);
+emit_32(3229220864);
+emit_32(1114534052);
+emit_32(3257655309);
+emit_32(0);
+emit_32(1114534445);
+emit_32(3257655309);
+emit_32(1081737216);
+emit_32(1114510642);
+emit_32(3257655309);
+emit_32(3279552512);
+emit_32(1073972469);
+emit_32(3258679296);
+emit_32(3279296528);
+emit_32(1069063330);
+emit_32(3258679296);
+emit_32(3279040545);
+emit_32(1073401750);
+emit_32(3258679296);
+emit_32(3278784496);
+emit_32(1075865903);
+emit_32(3258679296);
+emit_32(3278528512);
+emit_32(1078931520);
+emit_32(3258679296);
+emit_32(3278272528);
+emit_32(1083096191);
+emit_32(3258679296);
+emit_32(3278016545);
+emit_32(1086698344);
+emit_32(3258679296);
+emit_32(3277760496);
+emit_32(1089640354);
+emit_32(3258679296);
+emit_32(3277504512);
+emit_32(1091993652);
+emit_32(3258679296);
+emit_32(3277248528);
+emit_32(1094077907);
+emit_32(3258679296);
+emit_32(3276992545);
+emit_32(1095184469);
+emit_32(3258679296);
+emit_32(3276736496);
+emit_32(1095896243);
+emit_32(3258679296);
+emit_32(3276480512);
+emit_32(1096633916);
+emit_32(3258679296);
+emit_32(3276224528);
+emit_32(1096975542);
+emit_32(3258679296);
+emit_32(3275968545);
+emit_32(1097889376);
+emit_32(3258679296);
+emit_32(3275712496);
+emit_32(1099541774);
+emit_32(3258679296);
+emit_32(3275456512);
+emit_32(1101179178);
+emit_32(3258679296);
+emit_32(3275200528);
+emit_32(1102317932);
+emit_32(3258679296);
+emit_32(3274944545);
+emit_32(1103521278);
+emit_32(3258679296);
+emit_32(3274688496);
+emit_32(1104345983);
+emit_32(3258679296);
+emit_32(3274432512);
+emit_32(1104852759);
+emit_32(3258679296);
+emit_32(3274176528);
+emit_32(1104831526);
+emit_32(3258679296);
+emit_32(3273920545);
+emit_32(1104946974);
+emit_32(3258679296);
+emit_32(3273664496);
+emit_32(1105281994);
+emit_32(3258679296);
+emit_32(3273408512);
+emit_32(1105386275);
+emit_32(3258679296);
+emit_32(3273152528);
+emit_32(1104804053);
+emit_32(3258679296);
+emit_32(3272896545);
+emit_32(1105020374);
+emit_32(3258679296);
+emit_32(3272640496);
+emit_32(1104527806);
+emit_32(3258679296);
+emit_32(3272384512);
+emit_32(1103824211);
+emit_32(3258679296);
+emit_32(3272128528);
+emit_32(1103687791);
+emit_32(3258679296);
+emit_32(3271872545);
+emit_32(1103464392);
+emit_32(3258679296);
+emit_32(3271616496);
+emit_32(1103011774);
+emit_32(3258679296);
+emit_32(3271163904);
+emit_32(1102466777);
+emit_32(3258679296);
+emit_32(3270651937);
+emit_32(1102908804);
+emit_32(3258679296);
+emit_32(3270139970);
+emit_32(1102728659);
+emit_32(3258679296);
+emit_32(3269627871);
+emit_32(1102517318);
+emit_32(3258679296);
+emit_32(3269115904);
+emit_32(1102387190);
+emit_32(3258679296);
+emit_32(3268603937);
+emit_32(1102173019);
+emit_32(3258679296);
+emit_32(3268091970);
+emit_32(1102448637);
+emit_32(3258679296);
+emit_32(3267579911);
+emit_32(1102804104);
+emit_32(3258679296);
+emit_32(3267067904);
+emit_32(1103652140);
+emit_32(3258679296);
+emit_32(3266555911);
+emit_32(1104033035);
+emit_32(3258679296);
+emit_32(3266043904);
+emit_32(1104794721);
+emit_32(3258679296);
+emit_32(3265531911);
+emit_32(1105280578);
+emit_32(3258679296);
+emit_32(3265019904);
+emit_32(1105555305);
+emit_32(3258679296);
+emit_32(3264507911);
+emit_32(1106497398);
+emit_32(3258679296);
+emit_32(3263995904);
+emit_32(1107356549);
+emit_32(3258679296);
+emit_32(3263483911);
+emit_32(1107738440);
+emit_32(3258679296);
+emit_32(3262775296);
+emit_32(1108026091);
+emit_32(3258679296);
+emit_32(3261751309);
+emit_32(1108412596);
+emit_32(3258679296);
+emit_32(3260727296);
+emit_32(1108935547);
+emit_32(3258679296);
+emit_32(3259703309);
+emit_32(1109269178);
+emit_32(3258679296);
+emit_32(3258679296);
+emit_32(1109856774);
+emit_32(3258679296);
+emit_32(3257655309);
+emit_32(1110673955);
+emit_32(3258679296);
+emit_32(3256631296);
+emit_32(1111396031);
+emit_32(3258679296);
+emit_32(3255607309);
+emit_32(1111904302);
+emit_32(3258679296);
+emit_32(3254386688);
+emit_32(1112640612);
+emit_32(3258679296);
+emit_32(3252338714);
+emit_32(1113308083);
+emit_32(3258679296);
+emit_32(3250290688);
+emit_32(1113763480);
+emit_32(3258679296);
+emit_32(3248242714);
+emit_32(1113823117);
+emit_32(3258679296);
+emit_32(3245998080);
+emit_32(1114289734);
+emit_32(3258679296);
+emit_32(3241902132);
+emit_32(1114547028);
+emit_32(3258679296);
+emit_32(3237609472);
+emit_32(1114378417);
+emit_32(3258679296);
+emit_32(3229220864);
+emit_32(1114468175);
+emit_32(3258679296);
+emit_32(0);
+emit_32(1114253689);
+emit_32(3258679296);
+emit_32(1081737216);
+emit_32(1114350184);
+emit_32(3258679296);
+emit_32(3279552512);
+emit_32(1076163699);
+emit_32(3259703309);
+emit_32(3279296528);
+emit_32(1074005017);
+emit_32(3259703309);
+emit_32(3279040545);
+emit_32(1074851343);
+emit_32(3259703309);
+emit_32(3278784496);
+emit_32(1075567479);
+emit_32(3259703309);
+emit_32(3278528512);
+emit_32(1076420223);
+emit_32(3259703309);
+emit_32(3278272528);
+emit_32(1083073395);
+emit_32(3259703309);
+emit_32(3278016545);
+emit_32(1087377339);
+emit_32(3259703309);
+emit_32(3277760496);
+emit_32(1090634446);
+emit_32(3259703309);
+emit_32(3277504512);
+emit_32(1092723461);
+emit_32(3259703309);
+emit_32(3277248528);
+emit_32(1094053580);
+emit_32(3259703309);
+emit_32(3276992545);
+emit_32(1095488766);
+emit_32(3259703309);
+emit_32(3276736496);
+emit_32(1096447794);
+emit_32(3259703309);
+emit_32(3276480512);
+emit_32(1096424305);
+emit_32(3259703309);
+emit_32(3276224528);
+emit_32(1096267648);
+emit_32(3259703309);
+emit_32(3275968545);
+emit_32(1098177000);
+emit_32(3259703309);
+emit_32(3275712496);
+emit_32(1099698536);
+emit_32(3259703309);
+emit_32(3275456512);
+emit_32(1100780981);
+emit_32(3259703309);
+emit_32(3275200528);
+emit_32(1102100247);
+emit_32(3259703309);
+emit_32(3274944545);
+emit_32(1103045696);
+emit_32(3259703309);
+emit_32(3274688496);
+emit_32(1103591375);
+emit_32(3259703309);
+emit_32(3274432512);
+emit_32(1104209510);
+emit_32(3259703309);
+emit_32(3274176528);
+emit_32(1104099882);
+emit_32(3259703309);
+emit_32(3273920545);
+emit_32(1104651171);
+emit_32(3259703309);
+emit_32(3273664496);
+emit_32(1104566760);
+emit_32(3259703309);
+emit_32(3273408512);
+emit_32(1104331250);
+emit_32(3259703309);
+emit_32(3273152528);
+emit_32(1103945269);
+emit_32(3259703309);
+emit_32(3272896545);
+emit_32(1103774247);
+emit_32(3259703309);
+emit_32(3272640496);
+emit_32(1103880729);
+emit_32(3259703309);
+emit_32(3272384512);
+emit_32(1103052669);
+emit_32(3259703309);
+emit_32(3272128528);
+emit_32(1102949594);
+emit_32(3259703309);
+emit_32(3271872545);
+emit_32(1102556640);
+emit_32(3259703309);
+emit_32(3271616496);
+emit_32(1102215329);
+emit_32(3259703309);
+emit_32(3271163904);
+emit_32(1102211711);
+emit_32(3259703309);
+emit_32(3270651937);
+emit_32(1102750102);
+emit_32(3259703309);
+emit_32(3270139970);
+emit_32(1102672246);
+emit_32(3259703309);
+emit_32(3269627871);
+emit_32(1102404282);
+emit_32(3259703309);
+emit_32(3269115904);
+emit_32(1101664721);
+emit_32(3259703309);
+emit_32(3268603937);
+emit_32(1101247965);
+emit_32(3259703309);
+emit_32(3268091970);
+emit_32(1101781742);
+emit_32(3259703309);
+emit_32(3267579911);
+emit_32(1102060559);
+emit_32(3259703309);
+emit_32(3267067904);
+emit_32(1102827382);
+emit_32(3259703309);
+emit_32(3266555911);
+emit_32(1103737651);
+emit_32(3259703309);
+emit_32(3266043904);
+emit_32(1104384360);
+emit_32(3259703309);
+emit_32(3265531911);
+emit_32(1104969151);
+emit_32(3259703309);
+emit_32(3265019904);
+emit_32(1106019143);
+emit_32(3259703309);
+emit_32(3264507911);
+emit_32(1106853337);
+emit_32(3259703309);
+emit_32(3263995904);
+emit_32(1107698306);
+emit_32(3259703309);
+emit_32(3263483911);
+emit_32(1108253868);
+emit_32(3259703309);
+emit_32(3262775296);
+emit_32(1108408245);
+emit_32(3259703309);
+emit_32(3261751309);
+emit_32(1108719619);
+emit_32(3259703309);
+emit_32(3260727296);
+emit_32(1109327662);
+emit_32(3259703309);
+emit_32(3259703309);
+emit_32(1109785051);
+emit_32(3259703309);
+emit_32(3258679296);
+emit_32(1110584826);
+emit_32(3259703309);
+emit_32(3257655309);
+emit_32(1111298907);
+emit_32(3259703309);
+emit_32(3256631296);
+emit_32(1111928472);
+emit_32(3259703309);
+emit_32(3255607309);
+emit_32(1112511401);
+emit_32(3259703309);
+emit_32(3254386688);
+emit_32(1113049871);
+emit_32(3259703309);
+emit_32(3252338714);
+emit_32(1113389636);
+emit_32(3259703309);
+emit_32(3250290688);
+emit_32(1113731419);
+emit_32(3259703309);
+emit_32(3248242714);
+emit_32(1114257359);
+emit_32(3259703309);
+emit_32(3245998080);
+emit_32(1114519870);
+emit_32(3259703309);
+emit_32(3241902132);
+emit_32(1114340039);
+emit_32(3259703309);
+emit_32(3237609472);
+emit_32(1114383922);
+emit_32(3259703309);
+emit_32(3229220864);
+emit_32(1114528390);
+emit_32(3259703309);
+emit_32(0);
+emit_32(1114544302);
+emit_32(3259703309);
+emit_32(1081737216);
+emit_32(1114597202);
+emit_32(3259703309);
+emit_32(3279552512);
+emit_32(1073915300);
+emit_32(3260727296);
+emit_32(3279296528);
+emit_32(1076045336);
+emit_32(3260727296);
+emit_32(3279040545);
+emit_32(1076717767);
+emit_32(3260727296);
+emit_32(3278784496);
+emit_32(1077967921);
+emit_32(3260727296);
+emit_32(3278528512);
+emit_32(1080230706);
+emit_32(3260727296);
+emit_32(3278272528);
+emit_32(1084434174);
+emit_32(3260727296);
+emit_32(3278016545);
+emit_32(1088619209);
+emit_32(3260727296);
+emit_32(3277760496);
+emit_32(1090948694);
+emit_32(3260727296);
+emit_32(3277504512);
+emit_32(1092674388);
+emit_32(3260727296);
+emit_32(3277248528);
+emit_32(1094185071);
+emit_32(3260727296);
+emit_32(3276992545);
+emit_32(1094902717);
+emit_32(3260727296);
+emit_32(3276736496);
+emit_32(1095470101);
+emit_32(3260727296);
+emit_32(3276480512);
+emit_32(1095440531);
+emit_32(3260727296);
+emit_32(3276224528);
+emit_32(1096837654);
+emit_32(3260727296);
+emit_32(3275968545);
+emit_32(1098967784);
+emit_32(3260727296);
+emit_32(3275712496);
+emit_32(1100160067);
+emit_32(3260727296);
+emit_32(3275456512);
+emit_32(1100666582);
+emit_32(3260727296);
+emit_32(3275200528);
+emit_32(1101873178);
+emit_32(3260727296);
+emit_32(3274944545);
+emit_32(1102572736);
+emit_32(3260727296);
+emit_32(3274688496);
+emit_32(1102982834);
+emit_32(3260727296);
+emit_32(3274432512);
+emit_32(1103746092);
+emit_32(3260727296);
+emit_32(3274176528);
+emit_32(1104190584);
+emit_32(3260727296);
+emit_32(3273920545);
+emit_32(1104541647);
+emit_32(3260727296);
+emit_32(3273664496);
+emit_32(1104309335);
+emit_32(3260727296);
+emit_32(3273408512);
+emit_32(1103949831);
+emit_32(3260727296);
+emit_32(3273152528);
+emit_32(1103383495);
+emit_32(3260727296);
+emit_32(3272896545);
+emit_32(1103021107);
+emit_32(3260727296);
+emit_32(3272640496);
+emit_32(1102773014);
+emit_32(3260727296);
+emit_32(3272384512);
+emit_32(1102509192);
+emit_32(3260727296);
+emit_32(3272128528);
+emit_32(1102328470);
+emit_32(3260727296);
+emit_32(3271872545);
+emit_32(1101757678);
+emit_32(3260727296);
+emit_32(3271616496);
+emit_32(1101776133);
+emit_32(3260727296);
+emit_32(3271163904);
+emit_32(1102138363);
+emit_32(3260727296);
+emit_32(3270651937);
+emit_32(1102294496);
+emit_32(3260727296);
+emit_32(3270139970);
+emit_32(1101746563);
+emit_32(3260727296);
+emit_32(3269627871);
+emit_32(1101436656);
+emit_32(3260727296);
+emit_32(3269115904);
+emit_32(1100808559);
+emit_32(3260727296);
+emit_32(3268603937);
+emit_32(1101081451);
+emit_32(3260727296);
+emit_32(3268091970);
+emit_32(1101838156);
+emit_32(3260727296);
+emit_32(3267579911);
+emit_32(1102177947);
+emit_32(3260727296);
+emit_32(3267067904);
+emit_32(1102933656);
+emit_32(3260727296);
+emit_32(3266555911);
+emit_32(1103594940);
+emit_32(3260727296);
+emit_32(3266043904);
+emit_32(1104370991);
+emit_32(3260727296);
+emit_32(3265531911);
+emit_32(1105153229);
+emit_32(3260727296);
+emit_32(3265019904);
+emit_32(1106283803);
+emit_32(3260727296);
+emit_32(3264507911);
+emit_32(1107489928);
+emit_32(3260727296);
+emit_32(3263995904);
+emit_32(1107912347);
+emit_32(3260727296);
+emit_32(3263483911);
+emit_32(1108259976);
+emit_32(3260727296);
+emit_32(3262775296);
+emit_32(1108728218);
+emit_32(3260727296);
+emit_32(3261751309);
+emit_32(1108959507);
+emit_32(3260727296);
+emit_32(3260727296);
+emit_32(1109551402);
+emit_32(3260727296);
+emit_32(3259703309);
+emit_32(1110560788);
+emit_32(3260727296);
+emit_32(3258679296);
+emit_32(1111390473);
+emit_32(3260727296);
+emit_32(3257655309);
+emit_32(1111954109);
+emit_32(3260727296);
+emit_32(3256631296);
+emit_32(1112588288);
+emit_32(3260727296);
+emit_32(3255607309);
+emit_32(1113193211);
+emit_32(3260727296);
+emit_32(3254386688);
+emit_32(1113572953);
+emit_32(3260727296);
+emit_32(3252338714);
+emit_32(1113885324);
+emit_32(3260727296);
+emit_32(3250290688);
+emit_32(1114116194);
+emit_32(3260727296);
+emit_32(3248242714);
+emit_32(1114531771);
+emit_32(3260727296);
+emit_32(3245998080);
+emit_32(1114632933);
+emit_32(3260727296);
+emit_32(3241902132);
+emit_32(1114591697);
+emit_32(3260727296);
+emit_32(3237609472);
+emit_32(1114663420);
+emit_32(3260727296);
+emit_32(3229220864);
+emit_32(1114860631);
+emit_32(3260727296);
+emit_32(0);
+emit_32(1114783587);
+emit_32(3260727296);
+emit_32(1081737216);
+emit_32(1114739258);
+emit_32(3260727296);
+emit_32(3279552512);
+emit_32(1082154906);
+emit_32(3261751309);
+emit_32(3279296528);
+emit_32(1078227213);
+emit_32(3261751309);
+emit_32(3279040545);
+emit_32(1079515745);
+emit_32(3261751309);
+emit_32(3278784496);
+emit_32(1080953133);
+emit_32(3261751309);
+emit_32(3278528512);
+emit_32(1082315317);
+emit_32(3261751309);
+emit_32(3278272528);
+emit_32(1085410084);
+emit_32(3261751309);
+emit_32(3278016545);
+emit_32(1089116884);
+emit_32(3261751309);
+emit_32(3277760496);
+emit_32(1091162058);
+emit_32(3261751309);
+emit_32(3277504512);
+emit_32(1092383922);
+emit_32(3261751309);
+emit_32(3277248528);
+emit_32(1094686500);
+emit_32(3261751309);
+emit_32(3276992545);
+emit_32(1095695440);
+emit_32(3261751309);
+emit_32(3276736496);
+emit_32(1096304558);
+emit_32(3261751309);
+emit_32(3276480512);
+emit_32(1096755970);
+emit_32(3261751309);
+emit_32(3276224528);
+emit_32(1097235484);
+emit_32(3261751309);
+emit_32(3275968545);
+emit_32(1098986081);
+emit_32(3261751309);
+emit_32(3275712496);
+emit_32(1099885602);
+emit_32(3261751309);
+emit_32(3275456512);
+emit_32(1100472805);
+emit_32(3261751309);
+emit_32(3275200528);
+emit_32(1101685588);
+emit_32(3261751309);
+emit_32(3274944545);
+emit_32(1102836243);
+emit_32(3261751309);
+emit_32(3274688496);
+emit_32(1103812048);
+emit_32(3261751309);
+emit_32(3274432512);
+emit_32(1104207518);
+emit_32(3261751309);
+emit_32(3274176528);
+emit_32(1104457970);
+emit_32(3261751309);
+emit_32(3273920545);
+emit_32(1104083891);
+emit_32(3261751309);
+emit_32(3273664496);
+emit_32(1103629805);
+emit_32(3261751309);
+emit_32(3273408512);
+emit_32(1103776553);
+emit_32(3261751309);
+emit_32(3273152528);
+emit_32(1103074794);
+emit_32(3261751309);
+emit_32(3272896545);
+emit_32(1102698250);
+emit_32(3261751309);
+emit_32(3272640496);
+emit_32(1102376914);
+emit_32(3261751309);
+emit_32(3272384512);
+emit_32(1101790760);
+emit_32(3261751309);
+emit_32(3272128528);
+emit_32(1101572184);
+emit_32(3261751309);
+emit_32(3271872545);
+emit_32(1101531028);
+emit_32(3261751309);
+emit_32(3271616496);
+emit_32(1101967498);
+emit_32(3261751309);
+emit_32(3271163904);
+emit_32(1101842874);
+emit_32(3261751309);
+emit_32(3270651937);
+emit_32(1101503398);
+emit_32(3261751309);
+emit_32(3270139970);
+emit_32(1101637406);
+emit_32(3261751309);
+emit_32(3269627871);
+emit_32(1100872627);
+emit_32(3261751309);
+emit_32(3269115904);
+emit_32(1100259629);
+emit_32(3261751309);
+emit_32(3268603937);
+emit_32(1101213676);
+emit_32(3261751309);
+emit_32(3268091970);
+emit_32(1102188118);
+emit_32(3261751309);
+emit_32(3267579911);
+emit_32(1102756499);
+emit_32(3261751309);
+emit_32(3267067904);
+emit_32(1103291744);
+emit_32(3261751309);
+emit_32(3266555911);
+emit_32(1104021763);
+emit_32(3261751309);
+emit_32(3266043904);
+emit_32(1105069185);
+emit_32(3261751309);
+emit_32(3265531911);
+emit_32(1105681659);
+emit_32(3261751309);
+emit_32(3265019904);
+emit_32(1106673612);
+emit_32(3261751309);
+emit_32(3264507911);
+emit_32(1107534728);
+emit_32(3261751309);
+emit_32(3263995904);
+emit_32(1108049579);
+emit_32(3261751309);
+emit_32(3263483911);
+emit_32(1108358411);
+emit_32(3261751309);
+emit_32(3262775296);
+emit_32(1109001765);
+emit_32(3261751309);
+emit_32(3261751309);
+emit_32(1109732911);
+emit_32(3261751309);
+emit_32(3260727296);
+emit_32(1110268628);
+emit_32(3261751309);
+emit_32(3259703309);
+emit_32(1111109324);
+emit_32(3261751309);
+emit_32(3258679296);
+emit_32(1111815854);
+emit_32(3261751309);
+emit_32(3257655309);
+emit_32(1112380434);
+emit_32(3261751309);
+emit_32(3256631296);
+emit_32(1113088511);
+emit_32(3261751309);
+emit_32(3255607309);
+emit_32(1113540657);
+emit_32(3261751309);
+emit_32(3254386688);
+emit_32(1113874498);
+emit_32(3261751309);
+emit_32(3252338714);
+emit_32(1114128672);
+emit_32(3261751309);
+emit_32(3250290688);
+emit_32(1114325883);
+emit_32(3261751309);
+emit_32(3248242714);
+emit_32(1114630023);
+emit_32(3261751309);
+emit_32(3245998080);
+emit_32(1114691181);
+emit_32(3261751309);
+emit_32(3241902132);
+emit_32(1114643497);
+emit_32(3261751309);
+emit_32(3237609472);
+emit_32(1114924410);
+emit_32(3261751309);
+emit_32(3229220864);
+emit_32(1115023894);
+emit_32(3261751309);
+emit_32(0);
+emit_32(1115026751);
+emit_32(3261751309);
+emit_32(1081737216);
+emit_32(1115049086);
+emit_32(3261751309);
+emit_32(3279552512);
+emit_32(1085379717);
+emit_32(3262775296);
+emit_32(3279296528);
+emit_32(1082515763);
+emit_32(3262775296);
+emit_32(3279040545);
+emit_32(1081713392);
+emit_32(3262775296);
+emit_32(3278784496);
+emit_32(1082674664);
+emit_32(3262775296);
+emit_32(3278528512);
+emit_32(1083857751);
+emit_32(3262775296);
+emit_32(3278272528);
+emit_32(1086391782);
+emit_32(3262775296);
+emit_32(3278016545);
+emit_32(1089887986);
+emit_32(3262775296);
+emit_32(3277760496);
+emit_32(1091366562);
+emit_32(3262775296);
+emit_32(3277504512);
+emit_32(1093480323);
+emit_32(3262775296);
+emit_32(3277248528);
+emit_32(1096367053);
+emit_32(3262775296);
+emit_32(3276992545);
+emit_32(1097288647);
+emit_32(3262775296);
+emit_32(3276736496);
+emit_32(1097900491);
+emit_32(3262775296);
+emit_32(3276480512);
+emit_32(1097387737);
+emit_32(3262775296);
+emit_32(3276224528);
+emit_32(1098997092);
+emit_32(3262775296);
+emit_32(3275968545);
+emit_32(1099406141);
+emit_32(3262775296);
+emit_32(3275712496);
+emit_32(1100061920);
+emit_32(3262775296);
+emit_32(3275456512);
+emit_32(1100936328);
+emit_32(3262775296);
+emit_32(3275200528);
+emit_32(1102376704);
+emit_32(3262775296);
+emit_32(3274944545);
+emit_32(1103402212);
+emit_32(3262775296);
+emit_32(3274688496);
+emit_32(1104153831);
+emit_32(3262775296);
+emit_32(3274432512);
+emit_32(1104171447);
+emit_32(3262775296);
+emit_32(3274176528);
+emit_32(1104486911);
+emit_32(3262775296);
+emit_32(3273920545);
+emit_32(1103965769);
+emit_32(3262775296);
+emit_32(3273664496);
+emit_32(1103343911);
+emit_32(3262775296);
+emit_32(3273408512);
+emit_32(1102855274);
+emit_32(3262775296);
+emit_32(3273152528);
+emit_32(1102990751);
+emit_32(3262775296);
+emit_32(3272896545);
+emit_32(1102516113);
+emit_32(3262775296);
+emit_32(3272640496);
+emit_32(1101872916);
+emit_32(3262775296);
+emit_32(3272384512);
+emit_32(1101340606);
+emit_32(3262775296);
+emit_32(3272128528);
+emit_32(1101093667);
+emit_32(3262775296);
+emit_32(3271872545);
+emit_32(1101409288);
+emit_32(3262775296);
+emit_32(3271616496);
+emit_32(1101315074);
+emit_32(3262775296);
+emit_32(3271163904);
+emit_32(1101239471);
+emit_32(3262775296);
+emit_32(3270651937);
+emit_32(1100955936);
+emit_32(3262775296);
+emit_32(3270139970);
+emit_32(1100734163);
+emit_32(3262775296);
+emit_32(3269627871);
+emit_32(1099873911);
+emit_32(3262775296);
+emit_32(3269115904);
+emit_32(1100253023);
+emit_32(3262775296);
+emit_32(3268603937);
+emit_32(1101062786);
+emit_32(3262775296);
+emit_32(3268091970);
+emit_32(1101695916);
+emit_32(3262775296);
+emit_32(3267579911);
+emit_32(1102727139);
+emit_32(3262775296);
+emit_32(3267067904);
+emit_32(1103290748);
+emit_32(3262775296);
+emit_32(3266555911);
+emit_32(1104346717);
+emit_32(3262775296);
+emit_32(3266043904);
+emit_32(1105063261);
+emit_32(3262775296);
+emit_32(3265531911);
+emit_32(1106002838);
+emit_32(3262775296);
+emit_32(3265019904);
+emit_32(1107066723);
+emit_32(3262775296);
+emit_32(3264507911);
+emit_32(1107631093);
+emit_32(3262775296);
+emit_32(3263995904);
+emit_32(1108240630);
+emit_32(3262775296);
+emit_32(3263483911);
+emit_32(1108980662);
+emit_32(3262775296);
+emit_32(3262775296);
+emit_32(1109633532);
+emit_32(3262775296);
+emit_32(3261751309);
+emit_32(1110425679);
+emit_32(3262775296);
+emit_32(3260727296);
+emit_32(1110943098);
+emit_32(3262775296);
+emit_32(3259703309);
+emit_32(1111573843);
+emit_32(3262775296);
+emit_32(3258679296);
+emit_32(1112066674);
+emit_32(3262775296);
+emit_32(3257655309);
+emit_32(1112658464);
+emit_32(3262775296);
+emit_32(3256631296);
+emit_32(1113241131);
+emit_32(3262775296);
+emit_32(3255607309);
+emit_32(1113628711);
+emit_32(3262775296);
+emit_32(3254386688);
+emit_32(1113998361);
+emit_32(3262775296);
+emit_32(3252338714);
+emit_32(1114315476);
+emit_32(3262775296);
+emit_32(3250290688);
+emit_32(1114404291);
+emit_32(3262775296);
+emit_32(3248242714);
+emit_32(1114257097);
+emit_32(3262775296);
+emit_32(3245998080);
+emit_32(1114167496);
+emit_32(3262775296);
+emit_32(3241902132);
+emit_32(1114396767);
+emit_32(3262775296);
+emit_32(3237609472);
+emit_32(1114735247);
+emit_32(3262775296);
+emit_32(3229220864);
+emit_32(1114903465);
+emit_32(3262775296);
+emit_32(0);
+emit_32(1115124924);
+emit_32(3262775296);
+emit_32(1081737216);
+emit_32(1115189700);
+emit_32(3262775296);
+emit_32(3279552512);
+emit_32(1086492571);
+emit_32(3263483911);
+emit_32(3279296528);
+emit_32(1084509819);
+emit_32(3263483911);
+emit_32(3279040545);
+emit_32(1084430379);
+emit_32(3263483911);
+emit_32(3278784496);
+emit_32(1085001978);
+emit_32(3263483911);
+emit_32(3278528512);
+emit_32(1084687406);
+emit_32(3263483911);
+emit_32(3278272528);
+emit_32(1087121591);
+emit_32(3263483911);
+emit_32(3278016545);
+emit_32(1090205138);
+emit_32(3263483911);
+emit_32(3277760496);
+emit_32(1091946330);
+emit_32(3263483911);
+emit_32(3277504512);
+emit_32(1094604292);
+emit_32(3263483911);
+emit_32(3277248528);
+emit_32(1096763205);
+emit_32(3263483911);
+emit_32(3276992545);
+emit_32(1098349072);
+emit_32(3263483911);
+emit_32(3276736496);
+emit_32(1098895589);
+emit_32(3263483911);
+emit_32(3276480512);
+emit_32(1099139645);
+emit_32(3263483911);
+emit_32(3276224528);
+emit_32(1099654916);
+emit_32(3263483911);
+emit_32(3275968545);
+emit_32(1100028838);
+emit_32(3263483911);
+emit_32(3275712496);
+emit_32(1100411096);
+emit_32(3263483911);
+emit_32(3275456512);
+emit_32(1101073796);
+emit_32(3263483911);
+emit_32(3275200528);
+emit_32(1102500803);
+emit_32(3263483911);
+emit_32(3274944545);
+emit_32(1103383180);
+emit_32(3263483911);
+emit_32(3274688496);
+emit_32(1103953081);
+emit_32(3263483911);
+emit_32(3274432512);
+emit_32(1104117078);
+emit_32(3263483911);
+emit_32(3274176528);
+emit_32(1104031777);
+emit_32(3263483911);
+emit_32(3273920545);
+emit_32(1103706141);
+emit_32(3263483911);
+emit_32(3273664496);
+emit_32(1103324512);
+emit_32(3263483911);
+emit_32(3273408512);
+emit_32(1102513124);
+emit_32(3263483911);
+emit_32(3273152528);
+emit_32(1102512757);
+emit_32(3263483911);
+emit_32(3272896545);
+emit_32(1102001367);
+emit_32(3263483911);
+emit_32(3272640496);
+emit_32(1101489347);
+emit_32(3263483911);
+emit_32(3272384512);
+emit_32(1101058382);
+emit_32(3263483911);
+emit_32(3272128528);
+emit_32(1100785805);
+emit_32(3263483911);
+emit_32(3271872545);
+emit_32(1100711985);
+emit_32(3263483911);
+emit_32(3271616496);
+emit_32(1100454979);
+emit_32(3263483911);
+emit_32(3271163904);
+emit_32(1100441924);
+emit_32(3263483911);
+emit_32(3270651937);
+emit_32(1100316829);
+emit_32(3263483911);
+emit_32(3270139970);
+emit_32(1099903690);
+emit_32(3263483911);
+emit_32(3269627871);
+emit_32(1099946525);
+emit_32(3263483911);
+emit_32(3269115904);
+emit_32(1100095265);
+emit_32(3263483911);
+emit_32(3268603937);
+emit_32(1100759958);
+emit_32(3263483911);
+emit_32(3268091970);
+emit_32(1101531447);
+emit_32(3263483911);
+emit_32(3267579911);
+emit_32(1102182403);
+emit_32(3263483911);
+emit_32(3267067904);
+emit_32(1102954575);
+emit_32(3263483911);
+emit_32(3266555911);
+emit_32(1103927181);
+emit_32(3263483911);
+emit_32(3266043904);
+emit_32(1104963174);
+emit_32(3263483911);
+emit_32(3265531911);
+emit_32(1106107695);
+emit_32(3263483911);
+emit_32(3265019904);
+emit_32(1106811971);
+emit_32(3263483911);
+emit_32(3264507911);
+emit_32(1107810242);
+emit_32(3263483911);
+emit_32(3263995904);
+emit_32(1108701217);
+emit_32(3263483911);
+emit_32(3263483911);
+emit_32(1109660533);
+emit_32(3263483911);
+emit_32(3262775296);
+emit_32(1110370838);
+emit_32(3263483911);
+emit_32(3261751309);
+emit_32(1111099363);
+emit_32(3263483911);
+emit_32(3260727296);
+emit_32(1111486628);
+emit_32(3263483911);
+emit_32(3259703309);
+emit_32(1111821464);
+emit_32(3263483911);
+emit_32(3258679296);
+emit_32(1112262967);
+emit_32(3263483911);
+emit_32(3257655309);
+emit_32(1112778211);
+emit_32(3263483911);
+emit_32(3256631296);
+emit_32(1113334717);
+emit_32(3263483911);
+emit_32(3255607309);
+emit_32(1113699910);
+emit_32(3263483911);
+emit_32(3254386688);
+emit_32(1113953429);
+emit_32(3263483911);
+emit_32(3252338714);
+emit_32(1114251775);
+emit_32(3263483911);
+emit_32(3250290688);
+emit_32(1114199242);
+emit_32(3263483911);
+emit_32(3248242714);
+emit_32(1113838033);
+emit_32(3263483911);
+emit_32(3245998080);
+emit_32(1113833787);
+emit_32(3263483911);
+emit_32(3241902132);
+emit_32(1114207840);
+emit_32(3263483911);
+emit_32(3237609472);
+emit_32(1114546556);
+emit_32(3263483911);
+emit_32(3229220864);
+emit_32(1114598697);
+emit_32(3263483911);
+emit_32(0);
+emit_32(1114817954);
+emit_32(3263483911);
+emit_32(1081737216);
+emit_32(1114860919);
+emit_32(3263483911);
+emit_32(3279552512);
+emit_32(1087139710);
+emit_32(3263995904);
+emit_32(3279296528);
+emit_32(1087121150);
+emit_32(3263995904);
+emit_32(3279040545);
+emit_32(1087424797);
+emit_32(3263995904);
+emit_32(3278784496);
+emit_32(1088288866);
+emit_32(3263995904);
+emit_32(3278528512);
+emit_32(1087946275);
+emit_32(3263995904);
+emit_32(3278272528);
+emit_32(1088967861);
+emit_32(3263995904);
+emit_32(3278016545);
+emit_32(1091560444);
+emit_32(3263995904);
+emit_32(3277760496);
+emit_32(1093142053);
+emit_32(3263995904);
+emit_32(3277504512);
+emit_32(1094326419);
+emit_32(3263995904);
+emit_32(3277248528);
+emit_32(1096867958);
+emit_32(3263995904);
+emit_32(3276992545);
+emit_32(1098819882);
+emit_32(3263995904);
+emit_32(3276736496);
+emit_32(1099265422);
+emit_32(3263995904);
+emit_32(3276480512);
+emit_32(1099487668);
+emit_32(3263995904);
+emit_32(3276224528);
+emit_32(1099990827);
+emit_32(3263995904);
+emit_32(3275968545);
+emit_32(1100246627);
+emit_32(3263995904);
+emit_32(3275712496);
+emit_32(1100397937);
+emit_32(3263995904);
+emit_32(3275456512);
+emit_32(1101410127);
+emit_32(3263995904);
+emit_32(3275200528);
+emit_32(1102521513);
+emit_32(3263995904);
+emit_32(3274944545);
+emit_32(1103207386);
+emit_32(3263995904);
+emit_32(3274688496);
+emit_32(1103390940);
+emit_32(3263995904);
+emit_32(3274432512);
+emit_32(1103443263);
+emit_32(3263995904);
+emit_32(3274176528);
+emit_32(1103097024);
+emit_32(3263995904);
+emit_32(3273920545);
+emit_32(1102906864);
+emit_32(3263995904);
+emit_32(3273664496);
+emit_32(1102900730);
+emit_32(3263995904);
+emit_32(3273408512);
+emit_32(1102220938);
+emit_32(3263995904);
+emit_32(3273152528);
+emit_32(1102144078);
+emit_32(3263995904);
+emit_32(3272896545);
+emit_32(1101363046);
+emit_32(3263995904);
+emit_32(3272640496);
+emit_32(1100839544);
+emit_32(3263995904);
+emit_32(3272384512);
+emit_32(1100199127);
+emit_32(3263995904);
+emit_32(3272128528);
+emit_32(1100097362);
+emit_32(3263995904);
+emit_32(3271872545);
+emit_32(1099987419);
+emit_32(3263995904);
+emit_32(3271616496);
+emit_32(1099540044);
+emit_32(3263995904);
+emit_32(3271163904);
+emit_32(1099437336);
+emit_32(3263995904);
+emit_32(3270651937);
+emit_32(1099514983);
+emit_32(3263995904);
+emit_32(3270139970);
+emit_32(1099717201);
+emit_32(3263995904);
+emit_32(3269627871);
+emit_32(1099729155);
+emit_32(3263995904);
+emit_32(3269115904);
+emit_32(1099827039);
+emit_32(3263995904);
+emit_32(3268603937);
+emit_32(1100161378);
+emit_32(3263995904);
+emit_32(3268091970);
+emit_32(1100861355);
+emit_32(3263995904);
+emit_32(3267579911);
+emit_32(1101473671);
+emit_32(3263995904);
+emit_32(3267067904);
+emit_32(1102447483);
+emit_32(3263995904);
+emit_32(3266555911);
+emit_32(1103703782);
+emit_32(3263995904);
+emit_32(3266043904);
+emit_32(1104882067);
+emit_32(3263995904);
+emit_32(3265531911);
+emit_32(1105992194);
+emit_32(3263995904);
+emit_32(3265019904);
+emit_32(1106919608);
+emit_32(3263995904);
+emit_32(3264507911);
+emit_32(1107993271);
+emit_32(3263995904);
+emit_32(3263995904);
+emit_32(1108925769);
+emit_32(3263995904);
+emit_32(3263483911);
+emit_32(1110019198);
+emit_32(3263995904);
+emit_32(3262775296);
+emit_32(1110818501);
+emit_32(3263995904);
+emit_32(3261751309);
+emit_32(1111233161);
+emit_32(3263995904);
+emit_32(3260727296);
+emit_32(1111683183);
+emit_32(3263995904);
+emit_32(3259703309);
+emit_32(1111981792);
+emit_32(3263995904);
+emit_32(3258679296);
+emit_32(1112340798);
+emit_32(3263995904);
+emit_32(3257655309);
+emit_32(1112786705);
+emit_32(3263995904);
+emit_32(3256631296);
+emit_32(1113283966);
+emit_32(3263995904);
+emit_32(3255607309);
+emit_32(1113555626);
+emit_32(3263995904);
+emit_32(3254386688);
+emit_32(1113825948);
+emit_32(3263995904);
+emit_32(3252338714);
+emit_32(1113819107);
+emit_32(3263995904);
+emit_32(3250290688);
+emit_32(1113630940);
+emit_32(3263995904);
+emit_32(3248242714);
+emit_32(1113321059);
+emit_32(3263995904);
+emit_32(3245998080);
+emit_32(1113733018);
+emit_32(3263995904);
+emit_32(3241902132);
+emit_32(1114113861);
+emit_32(3263995904);
+emit_32(3237609472);
+emit_32(1114143562);
+emit_32(3263995904);
+emit_32(3229220864);
+emit_32(1114322213);
+emit_32(3263995904);
+emit_32(0);
+emit_32(1114472841);
+emit_32(3263995904);
+emit_32(1081737216);
+emit_32(1114412994);
+emit_32(3263995904);
+emit_32(3279552512);
+emit_32(1089045854);
+emit_32(3264507911);
+emit_32(3279296528);
+emit_32(1088278862);
+emit_32(3264507911);
+emit_32(3279040545);
+emit_32(1090412714);
+emit_32(3264507911);
+emit_32(3278784496);
+emit_32(1089711259);
+emit_32(3264507911);
+emit_32(3278528512);
+emit_32(1090927439);
+emit_32(3264507911);
+emit_32(3278272528);
+emit_32(1091410686);
+emit_32(3264507911);
+emit_32(3278016545);
+emit_32(1093437227);
+emit_32(3264507911);
+emit_32(3277760496);
+emit_32(1094926205);
+emit_32(3264507911);
+emit_32(3277504512);
+emit_32(1095460140);
+emit_32(3264507911);
+emit_32(3277248528);
+emit_32(1097105460);
+emit_32(3264507911);
+emit_32(3276992545);
+emit_32(1098968413);
+emit_32(3264507911);
+emit_32(3276736496);
+emit_32(1099353345);
+emit_32(3264507911);
+emit_32(3276480512);
+emit_32(1099813618);
+emit_32(3264507911);
+emit_32(3276224528);
+emit_32(1100320499);
+emit_32(3264507911);
+emit_32(3275968545);
+emit_32(1100493829);
+emit_32(3264507911);
+emit_32(3275712496);
+emit_32(1100473906);
+emit_32(3264507911);
+emit_32(3275456512);
+emit_32(1101401948);
+emit_32(3264507911);
+emit_32(3275200528);
+emit_32(1102298848);
+emit_32(3264507911);
+emit_32(3274944545);
+emit_32(1102989230);
+emit_32(3264507911);
+emit_32(3274688496);
+emit_32(1102648967);
+emit_32(3264507911);
+emit_32(3274432512);
+emit_32(1102203952);
+emit_32(3264507911);
+emit_32(3274176528);
+emit_32(1102020923);
+emit_32(3264507911);
+emit_32(3273920545);
+emit_32(1102482244);
+emit_32(3264507911);
+emit_32(3273664496);
+emit_32(1101949515);
+emit_32(3264507911);
+emit_32(3273408512);
+emit_32(1101712379);
+emit_32(3264507911);
+emit_32(3273152528);
+emit_32(1100957195);
+emit_32(3264507911);
+emit_32(3272896545);
+emit_32(1100760377);
+emit_32(3264507911);
+emit_32(3272640496);
+emit_32(1100597271);
+emit_32(3264507911);
+emit_32(3272384512);
+emit_32(1099567360);
+emit_32(3264507911);
+emit_32(3272128528);
+emit_32(1098669307);
+emit_32(3264507911);
+emit_32(3271872545);
+emit_32(1098076022);
+emit_32(3264507911);
+emit_32(3271616496);
+emit_32(1097956485);
+emit_32(3264507911);
+emit_32(3271163904);
+emit_32(1098180565);
+emit_32(3264507911);
+emit_32(3270651937);
+emit_32(1097980812);
+emit_32(3264507911);
+emit_32(3270139970);
+emit_32(1098969042);
+emit_32(3264507911);
+emit_32(3269627871);
+emit_32(1099581411);
+emit_32(3264507911);
+emit_32(3269115904);
+emit_32(1099345900);
+emit_32(3264507911);
+emit_32(3268603937);
+emit_32(1099778595);
+emit_32(3264507911);
+emit_32(3268091970);
+emit_32(1100042784);
+emit_32(3264507911);
+emit_32(3267579911);
+emit_32(1100446643);
+emit_32(3264507911);
+emit_32(3267067904);
+emit_32(1101589486);
+emit_32(3264507911);
+emit_32(3266555911);
+emit_32(1103063522);
+emit_32(3264507911);
+emit_32(3266043904);
+emit_32(1104431599);
+emit_32(3264507911);
+emit_32(3265531911);
+emit_32(1106038332);
+emit_32(3264507911);
+emit_32(3265019904);
+emit_32(1107210011);
+emit_32(3264507911);
+emit_32(3264507911);
+emit_32(1107970254);
+emit_32(3264507911);
+emit_32(3263995904);
+emit_32(1108769794);
+emit_32(3264507911);
+emit_32(3263483911);
+emit_32(1109911929);
+emit_32(3264507911);
+emit_32(3262775296);
+emit_32(1110640427);
+emit_32(3264507911);
+emit_32(3261751309);
+emit_32(1111295551);
+emit_32(3264507911);
+emit_32(3260727296);
+emit_32(1111699227);
+emit_32(3264507911);
+emit_32(3259703309);
+emit_32(1112037130);
+emit_32(3264507911);
+emit_32(3258679296);
+emit_32(1112388927);
+emit_32(3264507911);
+emit_32(3257655309);
+emit_32(1112777766);
+emit_32(3264507911);
+emit_32(3256631296);
+emit_32(1112967610);
+emit_32(3264507911);
+emit_32(3255607309);
+emit_32(1113472080);
+emit_32(3264507911);
+emit_32(3254386688);
+emit_32(1113707171);
+emit_32(3264507911);
+emit_32(3252338714);
+emit_32(1113542073);
+emit_32(3264507911);
+emit_32(3250290688);
+emit_32(1113390370);
+emit_32(3264507911);
+emit_32(3248242714);
+emit_32(1113303574);
+emit_32(3264507911);
+emit_32(3245998080);
+emit_32(1113650705);
+emit_32(3264507911);
+emit_32(3241902132);
+emit_32(1114040330);
+emit_32(3264507911);
+emit_32(3237609472);
+emit_32(1114029556);
+emit_32(3264507911);
+emit_32(3229220864);
+emit_32(1113975580);
+emit_32(3264507911);
+emit_32(0);
+emit_32(1113691390);
+emit_32(3264507911);
+emit_32(1081737216);
+emit_32(1113723162);
+emit_32(3264507911);
+emit_32(3279552512);
+emit_32(1091448267);
+emit_32(3265019904);
+emit_32(3279296528);
+emit_32(1090852236);
+emit_32(3265019904);
+emit_32(3279040545);
+emit_32(1091224616);
+emit_32(3265019904);
+emit_32(3278784496);
+emit_32(1092115172);
+emit_32(3265019904);
+emit_32(3278528512);
+emit_32(1092387560);
+emit_32(3265019904);
+emit_32(3278272528);
+emit_32(1093982696);
+emit_32(3265019904);
+emit_32(3278016545);
+emit_32(1095925288);
+emit_32(3265019904);
+emit_32(3277760496);
+emit_32(1097267780);
+emit_32(3265019904);
+emit_32(3277504512);
+emit_32(1098458962);
+emit_32(3265019904);
+emit_32(3277248528);
+emit_32(1097176554);
+emit_32(3265019904);
+emit_32(3276992545);
+emit_32(1098529427);
+emit_32(3265019904);
+emit_32(3276736496);
+emit_32(1099386480);
+emit_32(3265019904);
+emit_32(3276480512);
+emit_32(1100029729);
+emit_32(3265019904);
+emit_32(3276224528);
+emit_32(1100574360);
+emit_32(3265019904);
+emit_32(3275968545);
+emit_32(1100451571);
+emit_32(3265019904);
+emit_32(3275712496);
+emit_32(1100757808);
+emit_32(3265019904);
+emit_32(3275456512);
+emit_32(1101452909);
+emit_32(3265019904);
+emit_32(3275200528);
+emit_32(1102452412);
+emit_32(3265019904);
+emit_32(3274944545);
+emit_32(1102489269);
+emit_32(3265019904);
+emit_32(3274688496);
+emit_32(1101956383);
+emit_32(3265019904);
+emit_32(3274432512);
+emit_32(1102164106);
+emit_32(3265019904);
+emit_32(3274176528);
+emit_32(1102017829);
+emit_32(3265019904);
+emit_32(3273920545);
+emit_32(1101687633);
+emit_32(3265019904);
+emit_32(3273664496);
+emit_32(1101190398);
+emit_32(3265019904);
+emit_32(3273408512);
+emit_32(1100930771);
+emit_32(3265019904);
+emit_32(3273152528);
+emit_32(1099875379);
+emit_32(3265019904);
+emit_32(3272896545);
+emit_32(1099988363);
+emit_32(3265019904);
+emit_32(3272640496);
+emit_32(1099466749);
+emit_32(3265019904);
+emit_32(3272384512);
+emit_32(1099025927);
+emit_32(3265019904);
+emit_32(3272128528);
+emit_32(1097133667);
+emit_32(3265019904);
+emit_32(3271872545);
+emit_32(1096125042);
+emit_32(3265019904);
+emit_32(3271616496);
+emit_32(1097217448);
+emit_32(3265019904);
+emit_32(3271163904);
+emit_32(1097530343);
+emit_32(3265019904);
+emit_32(3270651937);
+emit_32(1097021365);
+emit_32(3265019904);
+emit_32(3270139970);
+emit_32(1098337432);
+emit_32(3265019904);
+emit_32(3269627871);
+emit_32(1099231186);
+emit_32(3265019904);
+emit_32(3269115904);
+emit_32(1099058066);
+emit_32(3265019904);
+emit_32(3268603937);
+emit_32(1098845363);
+emit_32(3265019904);
+emit_32(3268091970);
+emit_32(1099724436);
+emit_32(3265019904);
+emit_32(3267579911);
+emit_32(1100562825);
+emit_32(3265019904);
+emit_32(3267067904);
+emit_32(1101564635);
+emit_32(3265019904);
+emit_32(3266555911);
+emit_32(1102663280);
+emit_32(3265019904);
+emit_32(3266043904);
+emit_32(1103783055);
+emit_32(3265019904);
+emit_32(3265531911);
+emit_32(1105695185);
+emit_32(3265019904);
+emit_32(3265019904);
+emit_32(1107222541);
+emit_32(3265019904);
+emit_32(3264507911);
+emit_32(1108142824);
+emit_32(3265019904);
+emit_32(3263995904);
+emit_32(1108595363);
+emit_32(3265019904);
+emit_32(3263483911);
+emit_32(1109574812);
+emit_32(3265019904);
+emit_32(3262775296);
+emit_32(1110596754);
+emit_32(3265019904);
+emit_32(3261751309);
+emit_32(1111223304);
+emit_32(3265019904);
+emit_32(3260727296);
+emit_32(1111571117);
+emit_32(3265019904);
+emit_32(3259703309);
+emit_32(1111962445);
+emit_32(3265019904);
+emit_32(3258679296);
+emit_32(1112404944);
+emit_32(3265019904);
+emit_32(3257655309);
+emit_32(1112735429);
+emit_32(3265019904);
+emit_32(3256631296);
+emit_32(1112827337);
+emit_32(3265019904);
+emit_32(3255607309);
+emit_32(1113233949);
+emit_32(3265019904);
+emit_32(3254386688);
+emit_32(1113414513);
+emit_32(3265019904);
+emit_32(3252338714);
+emit_32(1113420150);
+emit_32(3265019904);
+emit_32(3250290688);
+emit_32(1113163904);
+emit_32(3265019904);
+emit_32(3248242714);
+emit_32(1113052807);
+emit_32(3265019904);
+emit_32(3245998080);
+emit_32(1113343787);
+emit_32(3265019904);
+emit_32(3241902132);
+emit_32(1113698599);
+emit_32(3265019904);
+emit_32(3237609472);
+emit_32(1113628816);
+emit_32(3265019904);
+emit_32(3229220864);
+emit_32(1113662187);
+emit_32(3265019904);
+emit_32(0);
+emit_32(1113260242);
+emit_32(3265019904);
+emit_32(1081737216);
+emit_32(1113178820);
+emit_32(3265019904);
+emit_32(3279552512);
+emit_32(1093438171);
+emit_32(3265531911);
+emit_32(3279296528);
+emit_32(1092747788);
+emit_32(3265531911);
+emit_32(3279040545);
+emit_32(1093310454);
+emit_32(3265531911);
+emit_32(3278784496);
+emit_32(1094102234);
+emit_32(3265531911);
+emit_32(3278528512);
+emit_32(1095034523);
+emit_32(3265531911);
+emit_32(3278272528);
+emit_32(1096277295);
+emit_32(3265531911);
+emit_32(3278016545);
+emit_32(1097766063);
+emit_32(3265531911);
+emit_32(3277760496);
+emit_32(1099194067);
+emit_32(3265531911);
+emit_32(3277504512);
+emit_32(1099628649);
+emit_32(3265531911);
+emit_32(3277248528);
+emit_32(1099258973);
+emit_32(3265531911);
+emit_32(3276992545);
+emit_32(1098472174);
+emit_32(3265531911);
+emit_32(3276736496);
+emit_32(1099274020);
+emit_32(3265531911);
+emit_32(3276480512);
+emit_32(1099770049);
+emit_32(3265531911);
+emit_32(3276224528);
+emit_32(1100217110);
+emit_32(3265531911);
+emit_32(3275968545);
+emit_32(1099973526);
+emit_32(3265531911);
+emit_32(3275712496);
+emit_32(1100572682);
+emit_32(3265531911);
+emit_32(3275456512);
+emit_32(1101377883);
+emit_32(3265531911);
+emit_32(3275200528);
+emit_32(1101817027);
+emit_32(3265531911);
+emit_32(3274944545);
+emit_32(1101419407);
+emit_32(3265531911);
+emit_32(3274688496);
+emit_32(1101366087);
+emit_32(3265531911);
+emit_32(3274432512);
+emit_32(1101862955);
+emit_32(3265531911);
+emit_32(3274176528);
+emit_32(1101888854);
+emit_32(3265531911);
+emit_32(3273920545);
+emit_32(1101226888);
+emit_32(3265531911);
+emit_32(3273664496);
+emit_32(1100713768);
+emit_32(3265531911);
+emit_32(3273408512);
+emit_32(1099889010);
+emit_32(3265531911);
+emit_32(3273152528);
+emit_32(1098959238);
+emit_32(3265531911);
+emit_32(3272896545);
+emit_32(1098971873);
+emit_32(3265531911);
+emit_32(3272640496);
+emit_32(1098173750);
+emit_32(3265531911);
+emit_32(3272384512);
+emit_32(1096822345);
+emit_32(3265531911);
+emit_32(3272128528);
+emit_32(1095460769);
+emit_32(3265531911);
+emit_32(3271872545);
+emit_32(1095939654);
+emit_32(3265531911);
+emit_32(3271616496);
+emit_32(1096979107);
+emit_32(3265531911);
+emit_32(3271163904);
+emit_32(1096816787);
+emit_32(3265531911);
+emit_32(3270651937);
+emit_32(1096356567);
+emit_32(3265531911);
+emit_32(3270139970);
+emit_32(1097648308);
+emit_32(3265531911);
+emit_32(3269627871);
+emit_32(1098574096);
+emit_32(3265531911);
+emit_32(3269115904);
+emit_32(1097968858);
+emit_32(3265531911);
+emit_32(3268603937);
+emit_32(1098365115);
+emit_32(3265531911);
+emit_32(3268091970);
+emit_32(1099546126);
+emit_32(3265531911);
+emit_32(3267579911);
+emit_32(1100574569);
+emit_32(3265531911);
+emit_32(3267067904);
+emit_32(1101687475);
+emit_32(3265531911);
+emit_32(3266555911);
+emit_32(1102052380);
+emit_32(3265531911);
+emit_32(3266043904);
+emit_32(1103313292);
+emit_32(3265531911);
+emit_32(3265531911);
+emit_32(1105621785);
+emit_32(3265531911);
+emit_32(3265019904);
+emit_32(1107169169);
+emit_32(3265531911);
+emit_32(3264507911);
+emit_32(1107983021);
+emit_32(3265531911);
+emit_32(3263995904);
+emit_32(1108610777);
+emit_32(3265531911);
+emit_32(3263483911);
+emit_32(1109287292);
+emit_32(3265531911);
+emit_32(3262775296);
+emit_32(1110292405);
+emit_32(3265531911);
+emit_32(3261751309);
+emit_32(1110956075);
+emit_32(3265531911);
+emit_32(3260727296);
+emit_32(1111332749);
+emit_32(3265531911);
+emit_32(3259703309);
+emit_32(1111901392);
+emit_32(3265531911);
+emit_32(3258679296);
+emit_32(1112404473);
+emit_32(3265531911);
+emit_32(3257655309);
+emit_32(1112625041);
+emit_32(3265531911);
+emit_32(3256631296);
+emit_32(1112715716);
+emit_32(3265531911);
+emit_32(3255607309);
+emit_32(1112946875);
+emit_32(3265531911);
+emit_32(3254386688);
+emit_32(1113184299);
+emit_32(3265531911);
+emit_32(3252338714);
+emit_32(1112883882);
+emit_32(3265531911);
+emit_32(3250290688);
+emit_32(1112791607);
+emit_32(3265531911);
+emit_32(3248242714);
+emit_32(1112621633);
+emit_32(3265531911);
+emit_32(3245998080);
+emit_32(1113008138);
+emit_32(3265531911);
+emit_32(3241902132);
+emit_32(1113167285);
+emit_32(3265531911);
+emit_32(3237609472);
+emit_32(1113124399);
+emit_32(3265531911);
+emit_32(3229220864);
+emit_32(1112977362);
+emit_32(3265531911);
+emit_32(0);
+emit_32(1112766703);
+emit_32(3265531911);
+emit_32(1081737216);
+emit_32(1112525767);
+emit_32(3265531911);
+emit_32(3279552512);
+emit_32(1095002332);
+emit_32(3266043904);
+emit_32(3279296528);
+emit_32(1094609640);
+emit_32(3266043904);
+emit_32(3279040545);
+emit_32(1096233255);
+emit_32(3266043904);
+emit_32(3278784496);
+emit_32(1097215037);
+emit_32(3266043904);
+emit_32(3278528512);
+emit_32(1097707028);
+emit_32(3266043904);
+emit_32(3278272528);
+emit_32(1098213910);
+emit_32(3266043904);
+emit_32(3278016545);
+emit_32(1099607939);
+emit_32(3266043904);
+emit_32(3277760496);
+emit_32(1100328888);
+emit_32(3266043904);
+emit_32(3277504512);
+emit_32(1099961205);
+emit_32(3266043904);
+emit_32(3277248528);
+emit_32(1099657799);
+emit_32(3266043904);
+emit_32(3276992545);
+emit_32(1099461558);
+emit_32(3266043904);
+emit_32(3276736496);
+emit_32(1099119408);
+emit_32(3266043904);
+emit_32(3276480512);
+emit_32(1099612763);
+emit_32(3266043904);
+emit_32(3276224528);
+emit_32(1099736862);
+emit_32(3266043904);
+emit_32(3275968545);
+emit_32(1099825729);
+emit_32(3266043904);
+emit_32(3275712496);
+emit_32(1100371460);
+emit_32(3266043904);
+emit_32(3275456512);
+emit_32(1100899051);
+emit_32(3266043904);
+emit_32(3275200528);
+emit_32(1100798702);
+emit_32(3266043904);
+emit_32(3274944545);
+emit_32(1100553703);
+emit_32(3266043904);
+emit_32(3274688496);
+emit_32(1100490159);
+emit_32(3266043904);
+emit_32(3274432512);
+emit_32(1100873309);
+emit_32(3266043904);
+emit_32(3274176528);
+emit_32(1100817524);
+emit_32(3266043904);
+emit_32(3273920545);
+emit_32(1100275568);
+emit_32(3266043904);
+emit_32(3273664496);
+emit_32(1100060977);
+emit_32(3266043904);
+emit_32(3273408512);
+emit_32(1099264636);
+emit_32(3266043904);
+emit_32(3273152528);
+emit_32(1097887279);
+emit_32(3266043904);
+emit_32(3272896545);
+emit_32(1096157548);
+emit_32(3266043904);
+emit_32(3272640496);
+emit_32(1095486249);
+emit_32(3266043904);
+emit_32(3272384512);
+emit_32(1094979368);
+emit_32(3266043904);
+emit_32(3272128528);
+emit_32(1095398693);
+emit_32(3266043904);
+emit_32(3271872545);
+emit_32(1095531024);
+emit_32(3266043904);
+emit_32(3271616496);
+emit_32(1095980968);
+emit_32(3266043904);
+emit_32(3271163904);
+emit_32(1095589534);
+emit_32(3266043904);
+emit_32(3270651937);
+emit_32(1095288383);
+emit_32(3266043904);
+emit_32(3270139970);
+emit_32(1096315044);
+emit_32(3266043904);
+emit_32(3269627871);
+emit_32(1096326788);
+emit_32(3266043904);
+emit_32(3269115904);
+emit_32(1096402705);
+emit_32(3266043904);
+emit_32(3268603937);
+emit_32(1097546911);
+emit_32(3266043904);
+emit_32(3268091970);
+emit_32(1099249798);
+emit_32(3266043904);
+emit_32(3267579911);
+emit_32(1099942016);
+emit_32(3266043904);
+emit_32(3267067904);
+emit_32(1100913469);
+emit_32(3266043904);
+emit_32(3266555911);
+emit_32(1101943433);
+emit_32(3266043904);
+emit_32(3266043904);
+emit_32(1102787536);
+emit_32(3266043904);
+emit_32(3265531911);
+emit_32(1104904507);
+emit_32(3266043904);
+emit_32(3265019904);
+emit_32(1106333873);
+emit_32(3266043904);
+emit_32(3264507911);
+emit_32(1107759779);
+emit_32(3266043904);
+emit_32(3263995904);
+emit_32(1108391467);
+emit_32(3266043904);
+emit_32(3263483911);
+emit_32(1108904981);
+emit_32(3266043904);
+emit_32(3262775296);
+emit_32(1109806757);
+emit_32(3266043904);
+emit_32(3261751309);
+emit_32(1110385151);
+emit_32(3266043904);
+emit_32(3260727296);
+emit_32(1110931145);
+emit_32(3266043904);
+emit_32(3259703309);
+emit_32(1111641319);
+emit_32(3266043904);
+emit_32(3258679296);
+emit_32(1112124634);
+emit_32(3266043904);
+emit_32(3257655309);
+emit_32(1112283257);
+emit_32(3266043904);
+emit_32(3256631296);
+emit_32(1112339618);
+emit_32(3266043904);
+emit_32(3255607309);
+emit_32(1112509383);
+emit_32(3266043904);
+emit_32(3254386688);
+emit_32(1112776009);
+emit_32(3266043904);
+emit_32(3252338714);
+emit_32(1112680825);
+emit_32(3266043904);
+emit_32(3250290688);
+emit_32(1112625539);
+emit_32(3266043904);
+emit_32(3248242714);
+emit_32(1112693513);
+emit_32(3266043904);
+emit_32(3245998080);
+emit_32(1112618644);
+emit_32(3266043904);
+emit_32(3241902132);
+emit_32(1112571616);
+emit_32(3266043904);
+emit_32(3237609472);
+emit_32(1112555074);
+emit_32(3266043904);
+emit_32(3229220864);
+emit_32(1112282576);
+emit_32(3266043904);
+emit_32(0);
+emit_32(1112161675);
+emit_32(3266043904);
+emit_32(1081737216);
+emit_32(1112016683);
+emit_32(3266043904);
+emit_32(3279552512);
+emit_32(1096435525);
+emit_32(3266555911);
+emit_32(3279296528);
+emit_32(1097116575);
+emit_32(3266555911);
+emit_32(3279040545);
+emit_32(1098870633);
+emit_32(3266555911);
+emit_32(3278784496);
+emit_32(1099498730);
+emit_32(3266555911);
+emit_32(3278528512);
+emit_32(1099914596);
+emit_32(3266555911);
+emit_32(3278272528);
+emit_32(1099951872);
+emit_32(3266555911);
+emit_32(3278016545);
+emit_32(1100659976);
+emit_32(3266555911);
+emit_32(3277760496);
+emit_32(1101078253);
+emit_32(3266555911);
+emit_32(3277504512);
+emit_32(1100635177);
+emit_32(3266555911);
+emit_32(3277248528);
+emit_32(1100013948);
+emit_32(3266555911);
+emit_32(3276992545);
+emit_32(1099614650);
+emit_32(3266555911);
+emit_32(3276736496);
+emit_32(1099488402);
+emit_32(3266555911);
+emit_32(3276480512);
+emit_32(1099820591);
+emit_32(3266555911);
+emit_32(3276224528);
+emit_32(1099553833);
+emit_32(3266555911);
+emit_32(3275968545);
+emit_32(1099782999);
+emit_32(3266555911);
+emit_32(3275712496);
+emit_32(1100398566);
+emit_32(3266555911);
+emit_32(3275456512);
+emit_32(1100575303);
+emit_32(3266555911);
+emit_32(3275200528);
+emit_32(1100289986);
+emit_32(3266555911);
+emit_32(3274944545);
+emit_32(1099602382);
+emit_32(3266555911);
+emit_32(3274688496);
+emit_32(1099733506);
+emit_32(3266555911);
+emit_32(3274432512);
+emit_32(1100008915);
+emit_32(3266555911);
+emit_32(3274176528);
+emit_32(1100003777);
+emit_32(3266555911);
+emit_32(3273920545);
+emit_32(1099179753);
+emit_32(3266555911);
+emit_32(3273664496);
+emit_32(1098406953);
+emit_32(3266555911);
+emit_32(3273408512);
+emit_32(1097223320);
+emit_32(3266555911);
+emit_32(3273152528);
+emit_32(1096202217);
+emit_32(3266555911);
+emit_32(3272896545);
+emit_32(1095613442);
+emit_32(3266555911);
+emit_32(3272640496);
+emit_32(1095615539);
+emit_32(3266555911);
+emit_32(3272384512);
+emit_32(1095008728);
+emit_32(3266555911);
+emit_32(3272128528);
+emit_32(1095144623);
+emit_32(3266555911);
+emit_32(3271872545);
+emit_32(1095756572);
+emit_32(3266555911);
+emit_32(3271616496);
+emit_32(1094683564);
+emit_32(3266555911);
+emit_32(3271163904);
+emit_32(1094540119);
+emit_32(3266555911);
+emit_32(3270651937);
+emit_32(1094978843);
+emit_32(3266555911);
+emit_32(3270139970);
+emit_32(1095340707);
+emit_32(3266555911);
+emit_32(3269627871);
+emit_32(1095981597);
+emit_32(3266555911);
+emit_32(3269115904);
+emit_32(1096517838);
+emit_32(3266555911);
+emit_32(3268603937);
+emit_32(1096669463);
+emit_32(3266555911);
+emit_32(3268091970);
+emit_32(1097720555);
+emit_32(3266555911);
+emit_32(3267579911);
+emit_32(1098962122);
+emit_32(3266555911);
+emit_32(3267067904);
+emit_32(1099956067);
+emit_32(3266555911);
+emit_32(3266555911);
+emit_32(1101017750);
+emit_32(3266555911);
+emit_32(3266043904);
+emit_32(1102473436);
+emit_32(3266555911);
+emit_32(3265531911);
+emit_32(1104059040);
+emit_32(3266555911);
+emit_32(3265019904);
+emit_32(1105738491);
+emit_32(3266555911);
+emit_32(3264507911);
+emit_32(1107208438);
+emit_32(3266555911);
+emit_32(3263995904);
+emit_32(1107891008);
+emit_32(3266555911);
+emit_32(3263483911);
+emit_32(1108674504);
+emit_32(3266555911);
+emit_32(3262775296);
+emit_32(1109604067);
+emit_32(3266555911);
+emit_32(3261751309);
+emit_32(1110189120);
+emit_32(3266555911);
+emit_32(3260727296);
+emit_32(1110577670);
+emit_32(3266555911);
+emit_32(3259703309);
+emit_32(1111354953);
+emit_32(3266555911);
+emit_32(3258679296);
+emit_32(1111734537);
+emit_32(3266555911);
+emit_32(3257655309);
+emit_32(1111705518);
+emit_32(3266555911);
+emit_32(3256631296);
+emit_32(1111723527);
+emit_32(3266555911);
+emit_32(3255607309);
+emit_32(1112027955);
+emit_32(3266555911);
+emit_32(3254386688);
+emit_32(1112257410);
+emit_32(3266555911);
+emit_32(3252338714);
+emit_32(1112640297);
+emit_32(3266555911);
+emit_32(3250290688);
+emit_32(1112609967);
+emit_32(3266555911);
+emit_32(3248242714);
+emit_32(1112557696);
+emit_32(3266555911);
+emit_32(3245998080);
+emit_32(1112351231);
+emit_32(3266555911);
+emit_32(3241902132);
+emit_32(1112040774);
+emit_32(3266555911);
+emit_32(3237609472);
+emit_32(1111912900);
+emit_32(3266555911);
+emit_32(3229220864);
+emit_32(1111694639);
+emit_32(3266555911);
+emit_32(0);
+emit_32(1111678858);
+emit_32(3266555911);
+emit_32(1081737216);
+emit_32(1111401326);
+emit_32(3266555911);
+emit_32(3279552512);
+emit_32(1098118070);
+emit_32(3267067904);
+emit_32(3279296528);
+emit_32(1099747453);
+emit_32(3267067904);
+emit_32(3279040545);
+emit_32(1100611269);
+emit_32(3267067904);
+emit_32(3278784496);
+emit_32(1101443210);
+emit_32(3267067904);
+emit_32(3278528512);
+emit_32(1101232603);
+emit_32(3267067904);
+emit_32(3278272528);
+emit_32(1101611506);
+emit_32(3267067904);
+emit_32(3278016545);
+emit_32(1101693243);
+emit_32(3267067904);
+emit_32(3277760496);
+emit_32(1101466016);
+emit_32(3267067904);
+emit_32(3277504512);
+emit_32(1101285137);
+emit_32(3267067904);
+emit_32(3277248528);
+emit_32(1100667106);
+emit_32(3267067904);
+emit_32(3276992545);
+emit_32(1100084308);
+emit_32(3267067904);
+emit_32(3276736496);
+emit_32(1099746194);
+emit_32(3267067904);
+emit_32(3276480512);
+emit_32(1099973840);
+emit_32(3267067904);
+emit_32(3276224528);
+emit_32(1099985637);
+emit_32(3267067904);
+emit_32(3275968545);
+emit_32(1099784782);
+emit_32(3267067904);
+emit_32(3275712496);
+emit_32(1100330146);
+emit_32(3267067904);
+emit_32(3275456512);
+emit_32(1100180200);
+emit_32(3267067904);
+emit_32(3275200528);
+emit_32(1099997118);
+emit_32(3267067904);
+emit_32(3274944545);
+emit_32(1099326240);
+emit_32(3267067904);
+emit_32(3274688496);
+emit_32(1099003435);
+emit_32(3267067904);
+emit_32(3274432512);
+emit_32(1099218918);
+emit_32(3267067904);
+emit_32(3274176528);
+emit_32(1098944243);
+emit_32(3267067904);
+emit_32(3273920545);
+emit_32(1097839464);
+emit_32(3267067904);
+emit_32(3273664496);
+emit_32(1095942065);
+emit_32(3267067904);
+emit_32(3273408512);
+emit_32(1094895587);
+emit_32(3267067904);
+emit_32(3273152528);
+emit_32(1094953468);
+emit_32(3267067904);
+emit_32(3272896545);
+emit_32(1095007260);
+emit_32(3267067904);
+emit_32(3272640496);
+emit_32(1095264895);
+emit_32(3267067904);
+emit_32(3272384512);
+emit_32(1094611422);
+emit_32(3267067904);
+emit_32(3272128528);
+emit_32(1095079402);
+emit_32(3267067904);
+emit_32(3271872545);
+emit_32(1094441973);
+emit_32(3267067904);
+emit_32(3271616496);
+emit_32(1094236766);
+emit_32(3267067904);
+emit_32(3271163904);
+emit_32(1094323798);
+emit_32(3267067904);
+emit_32(3270651937);
+emit_32(1094165987);
+emit_32(3267067904);
+emit_32(3270139970);
+emit_32(1094226805);
+emit_32(3267067904);
+emit_32(3269627871);
+emit_32(1094579336);
+emit_32(3267067904);
+emit_32(3269115904);
+emit_32(1095352975);
+emit_32(3267067904);
+emit_32(3268603937);
+emit_32(1095436757);
+emit_32(3267067904);
+emit_32(3268091970);
+emit_32(1095935879);
+emit_32(3267067904);
+emit_32(3267579911);
+emit_32(1097439012);
+emit_32(3267067904);
+emit_32(3267067904);
+emit_32(1099223007);
+emit_32(3267067904);
+emit_32(3266555911);
+emit_32(1100974863);
+emit_32(3267067904);
+emit_32(3266043904);
+emit_32(1102518734);
+emit_32(3267067904);
+emit_32(3265531911);
+emit_32(1104318772);
+emit_32(3267067904);
+emit_32(3265019904);
+emit_32(1105646112);
+emit_32(3267067904);
+emit_32(3264507911);
+emit_32(1106403341);
+emit_32(3267067904);
+emit_32(3263995904);
+emit_32(1107600264);
+emit_32(3267067904);
+emit_32(3263483911);
+emit_32(1108414248);
+emit_32(3267067904);
+emit_32(3262775296);
+emit_32(1109181543);
+emit_32(3267067904);
+emit_32(3261751309);
+emit_32(1109764892);
+emit_32(3267067904);
+emit_32(3260727296);
+emit_32(1110292536);
+emit_32(3267067904);
+emit_32(3259703309);
+emit_32(1110846682);
+emit_32(3267067904);
+emit_32(3258679296);
+emit_32(1111130925);
+emit_32(3267067904);
+emit_32(3257655309);
+emit_32(1111171793);
+emit_32(3267067904);
+emit_32(3256631296);
+emit_32(1111317938);
+emit_32(3267067904);
+emit_32(3255607309);
+emit_32(1111635762);
+emit_32(3267067904);
+emit_32(3254386688);
+emit_32(1112164637);
+emit_32(3267067904);
+emit_32(3252338714);
+emit_32(1112290938);
+emit_32(3267067904);
+emit_32(3250290688);
+emit_32(1112478450);
+emit_32(3267067904);
+emit_32(3248242714);
+emit_32(1112372360);
+emit_32(3267067904);
+emit_32(3245998080);
+emit_32(1111917566);
+emit_32(3267067904);
+emit_32(3241902132);
+emit_32(1112023289);
+emit_32(3267067904);
+emit_32(3237609472);
+emit_32(1111655422);
+emit_32(3267067904);
+emit_32(3229220864);
+emit_32(1111168988);
+emit_32(3267067904);
+emit_32(0);
+emit_32(1110861231);
+emit_32(3267067904);
+emit_32(1081737216);
+emit_32(1110813757);
+emit_32(3267067904);
+emit_32(3279552512);
+emit_32(1100220360);
+emit_32(3267579911);
+emit_32(3279296528);
+emit_32(1101067662);
+emit_32(3267579911);
+emit_32(3279040545);
+emit_32(1102439514);
+emit_32(3267579911);
+emit_32(3278784496);
+emit_32(1103265006);
+emit_32(3267579911);
+emit_32(3278528512);
+emit_32(1103236799);
+emit_32(3267579911);
+emit_32(3278272528);
+emit_32(1103276120);
+emit_32(3267579911);
+emit_32(3278016545);
+emit_32(1103285505);
+emit_32(3267579911);
+emit_32(3277760496);
+emit_32(1102760850);
+emit_32(3267579911);
+emit_32(3277504512);
+emit_32(1101931584);
+emit_32(3267579911);
+emit_32(3277248528);
+emit_32(1101349415);
+emit_32(3267579911);
+emit_32(3276992545);
+emit_32(1100402341);
+emit_32(3267579911);
+emit_32(3276736496);
+emit_32(1100027265);
+emit_32(3267579911);
+emit_32(3276480512);
+emit_32(1100259525);
+emit_32(3267579911);
+emit_32(3276224528);
+emit_32(1100063651);
+emit_32(3267579911);
+emit_32(3275968545);
+emit_32(1099648782);
+emit_32(3267579911);
+emit_32(3275712496);
+emit_32(1100276302);
+emit_32(3267579911);
+emit_32(3275456512);
+emit_32(1100001260);
+emit_32(3267579911);
+emit_32(3275200528);
+emit_32(1099604217);
+emit_32(3267579911);
+emit_32(3274944545);
+emit_32(1099253678);
+emit_32(3267579911);
+emit_32(3274688496);
+emit_32(1098028836);
+emit_32(3267579911);
+emit_32(3274432512);
+emit_32(1097094660);
+emit_32(3267579911);
+emit_32(3274176528);
+emit_32(1096265341);
+emit_32(3267579911);
+emit_32(3273920545);
+emit_32(1095381601);
+emit_32(3267579911);
+emit_32(3273664496);
+emit_32(1094132852);
+emit_32(3267579911);
+emit_32(3273408512);
+emit_32(1094233411);
+emit_32(3267579911);
+emit_32(3273152528);
+emit_32(1094498386);
+emit_32(3267579911);
+emit_32(3272896545);
+emit_32(1093571235);
+emit_32(3267579911);
+emit_32(3272640496);
+emit_32(1093897237);
+emit_32(3267579911);
+emit_32(3272384512);
+emit_32(1093720657);
+emit_32(3267579911);
+emit_32(3272128528);
+emit_32(1094242743);
+emit_32(3267579911);
+emit_32(3271872545);
+emit_32(1094359764);
+emit_32(3267579911);
+emit_32(3271616496);
+emit_32(1093621672);
+emit_32(3267579911);
+emit_32(3271163904);
+emit_32(1093012449);
+emit_32(3267579911);
+emit_32(3270651937);
+emit_32(1092577332);
+emit_32(3267579911);
+emit_32(3270139970);
+emit_32(1093321674);
+emit_32(3267579911);
+emit_32(3269627871);
+emit_32(1093936035);
+emit_32(3267579911);
+emit_32(3269115904);
+emit_32(1093928170);
+emit_32(3267579911);
+emit_32(3268603937);
+emit_32(1094840746);
+emit_32(3267579911);
+emit_32(3268091970);
+emit_32(1094808555);
+emit_32(3267579911);
+emit_32(3267579911);
+emit_32(1096373764);
+emit_32(3267579911);
+emit_32(3267067904);
+emit_32(1099250323);
+emit_32(3267579911);
+emit_32(3266555911);
+emit_32(1100852966);
+emit_32(3267579911);
+emit_32(3266043904);
+emit_32(1102489846);
+emit_32(3267579911);
+emit_32(3265531911);
+emit_32(1104539655);
+emit_32(3267579911);
+emit_32(3265019904);
+emit_32(1105973058);
+emit_32(3267579911);
+emit_32(3264507911);
+emit_32(1106325275);
+emit_32(3267579911);
+emit_32(3263995904);
+emit_32(1107714664);
+emit_32(3267579911);
+emit_32(3263483911);
+emit_32(1108389003);
+emit_32(3267579911);
+emit_32(3262775296);
+emit_32(1108702606);
+emit_32(3267579911);
+emit_32(3261751309);
+emit_32(1109247787);
+emit_32(3267579911);
+emit_32(3260727296);
+emit_32(1109490349);
+emit_32(3267579911);
+emit_32(3259703309);
+emit_32(1110247866);
+emit_32(3267579911);
+emit_32(3258679296);
+emit_32(1110389712);
+emit_32(3267579911);
+emit_32(3257655309);
+emit_32(1110661425);
+emit_32(3267579911);
+emit_32(3256631296);
+emit_32(1111202018);
+emit_32(3267579911);
+emit_32(3255607309);
+emit_32(1111704260);
+emit_32(3267579911);
+emit_32(3254386688);
+emit_32(1112088275);
+emit_32(3267579911);
+emit_32(3252338714);
+emit_32(1111942549);
+emit_32(3267579911);
+emit_32(3250290688);
+emit_32(1111975579);
+emit_32(3267579911);
+emit_32(3248242714);
+emit_32(1111977309);
+emit_32(3267579911);
+emit_32(3245998080);
+emit_32(1111576202);
+emit_32(3267579911);
+emit_32(3241902132);
+emit_32(1111451789);
+emit_32(3267579911);
+emit_32(3237609472);
+emit_32(1111316601);
+emit_32(3267579911);
+emit_32(3229220864);
+emit_32(1111007166);
+emit_32(3267579911);
+emit_32(0);
+emit_32(1110677022);
+emit_32(3267579911);
+emit_32(1081737216);
+emit_32(1110694612);
+emit_32(3267579911);
+emit_32(3279552512);
+emit_32(1101546599);
+emit_32(3268091970);
+emit_32(3279296528);
+emit_32(1102626423);
+emit_32(3268091970);
+emit_32(3279040545);
+emit_32(1103845864);
+emit_32(3268091970);
+emit_32(3278784496);
+emit_32(1104837345);
+emit_32(3268091970);
+emit_32(3278528512);
+emit_32(1104581650);
+emit_32(3268091970);
+emit_32(3278272528);
+emit_32(1104347136);
+emit_32(3268091970);
+emit_32(3278016545);
+emit_32(1104555173);
+emit_32(3268091970);
+emit_32(3277760496);
+emit_32(1103817186);
+emit_32(3268091970);
+emit_32(3277504512);
+emit_32(1102977119);
+emit_32(3268091970);
+emit_32(3277248528);
+emit_32(1101762816);
+emit_32(3268091970);
+emit_32(3276992545);
+emit_32(1100889928);
+emit_32(3268091970);
+emit_32(3276736496);
+emit_32(1100508824);
+emit_32(3268091970);
+emit_32(3276480512);
+emit_32(1100799646);
+emit_32(3268091970);
+emit_32(3276224528);
+emit_32(1100611741);
+emit_32(3268091970);
+emit_32(3275968545);
+emit_32(1099998639);
+emit_32(3268091970);
+emit_32(3275712496);
+emit_32(1099825152);
+emit_32(3268091970);
+emit_32(3275456512);
+emit_32(1099499674);
+emit_32(3268091970);
+emit_32(3275200528);
+emit_32(1099020422);
+emit_32(3268091970);
+emit_32(3274944545);
+emit_32(1098795241);
+emit_32(3268091970);
+emit_32(3274688496);
+emit_32(1097320733);
+emit_32(3268091970);
+emit_32(3274432512);
+emit_32(1096709728);
+emit_32(3268091970);
+emit_32(3274176528);
+emit_32(1095004848);
+emit_32(3268091970);
+emit_32(3273920545);
+emit_32(1094273362);
+emit_32(3268091970);
+emit_32(3273664496);
+emit_32(1094729282);
+emit_32(3268091970);
+emit_32(3273408512);
+emit_32(1094410620);
+emit_32(3268091970);
+emit_32(3273152528);
+emit_32(1093402205);
+emit_32(3268091970);
+emit_32(3272896545);
+emit_32(1092271431);
+emit_32(3268091970);
+emit_32(3272640496);
+emit_32(1092329176);
+emit_32(3268091970);
+emit_32(3272384512);
+emit_32(1092614609);
+emit_32(3268091970);
+emit_32(3272128528);
+emit_32(1093144674);
+emit_32(3268091970);
+emit_32(3271872545);
+emit_32(1093760922);
+emit_32(3268091970);
+emit_32(3271616496);
+emit_32(1093140165);
+emit_32(3268091970);
+emit_32(3271163904);
+emit_32(1091696654);
+emit_32(3268091970);
+emit_32(3270651937);
+emit_32(1090884374);
+emit_32(3268091970);
+emit_32(3270139970);
+emit_32(1091484506);
+emit_32(3268091970);
+emit_32(3269627871);
+emit_32(1092037976);
+emit_32(3268091970);
+emit_32(3269115904);
+emit_32(1093188295);
+emit_32(3268091970);
+emit_32(3268603937);
+emit_32(1093395808);
+emit_32(3268091970);
+emit_32(3268091970);
+emit_32(1094337220);
+emit_32(3268091970);
+emit_32(3267579911);
+emit_32(1097044643);
+emit_32(3268091970);
+emit_32(3267067904);
+emit_32(1099465543);
+emit_32(3268091970);
+emit_32(3266555911);
+emit_32(1101317433);
+emit_32(3268091970);
+emit_32(3266043904);
+emit_32(1102556745);
+emit_32(3268091970);
+emit_32(3265531911);
+emit_32(1104196718);
+emit_32(3268091970);
+emit_32(3265019904);
+emit_32(1105380036);
+emit_32(3268091970);
+emit_32(3264507911);
+emit_32(1106482194);
+emit_32(3268091970);
+emit_32(3263995904);
+emit_32(1107758783);
+emit_32(3268091970);
+emit_32(3263483911);
+emit_32(1108425415);
+emit_32(3268091970);
+emit_32(3262775296);
+emit_32(1108887024);
+emit_32(3268091970);
+emit_32(3261751309);
+emit_32(1109173128);
+emit_32(3268091970);
+emit_32(3260727296);
+emit_32(1109482432);
+emit_32(3268091970);
+emit_32(3259703309);
+emit_32(1109785208);
+emit_32(3268091970);
+emit_32(3258679296);
+emit_32(1110180600);
+emit_32(3268091970);
+emit_32(3257655309);
+emit_32(1110663076);
+emit_32(3268091970);
+emit_32(3256631296);
+emit_32(1111283309);
+emit_32(3268091970);
+emit_32(3255607309);
+emit_32(1111318829);
+emit_32(3268091970);
+emit_32(3254386688);
+emit_32(1111804844);
+emit_32(3268091970);
+emit_32(3252338714);
+emit_32(1111712072);
+emit_32(3268091970);
+emit_32(3250290688);
+emit_32(1111394877);
+emit_32(3268091970);
+emit_32(3248242714);
+emit_32(1111473652);
+emit_32(3268091970);
+emit_32(3245998080);
+emit_32(1111266139);
+emit_32(3268091970);
+emit_32(3241902132);
+emit_32(1110947660);
+emit_32(3268091970);
+emit_32(3237609472);
+emit_32(1111203722);
+emit_32(3268091970);
+emit_32(3229220864);
+emit_32(1110998647);
+emit_32(3268091970);
+emit_32(0);
+emit_32(1110773727);
+emit_32(3268091970);
+emit_32(1081737216);
+emit_32(1110581209);
+emit_32(3268091970);
+emit_32(3279552512);
+emit_32(1103102267);
+emit_32(3268603937);
+emit_32(3279296528);
+emit_32(1104534831);
+emit_32(3268603937);
+emit_32(3279040545);
+emit_32(1105424810);
+emit_32(3268603937);
+emit_32(3278784496);
+emit_32(1105745989);
+emit_32(3268603937);
+emit_32(3278528512);
+emit_32(1105282046);
+emit_32(3268603937);
+emit_32(3278272528);
+emit_32(1105208436);
+emit_32(3268603937);
+emit_32(3278016545);
+emit_32(1104906394);
+emit_32(3268603937);
+emit_32(3277760496);
+emit_32(1104679063);
+emit_32(3268603937);
+emit_32(3277504512);
+emit_32(1103607680);
+emit_32(3268603937);
+emit_32(3277248528);
+emit_32(1102510188);
+emit_32(3268603937);
+emit_32(3276992545);
+emit_32(1101765385);
+emit_32(3268603937);
+emit_32(3276736496);
+emit_32(1101636986);
+emit_32(3268603937);
+emit_32(3276480512);
+emit_32(1101430207);
+emit_32(3268603937);
+emit_32(3276224528);
+emit_32(1101386534);
+emit_32(3268603937);
+emit_32(3275968545);
+emit_32(1100866283);
+emit_32(3268603937);
+emit_32(3275712496);
+emit_32(1100204370);
+emit_32(3268603937);
+emit_32(3275456512);
+emit_32(1099530240);
+emit_32(3268603937);
+emit_32(3275200528);
+emit_32(1098318663);
+emit_32(3268603937);
+emit_32(3274944545);
+emit_32(1096968831);
+emit_32(3268603937);
+emit_32(3274688496);
+emit_32(1096686764);
+emit_32(3268603937);
+emit_32(3274432512);
+emit_32(1095657901);
+emit_32(3268603937);
+emit_32(3274176528);
+emit_32(1093922718);
+emit_32(3268603937);
+emit_32(3273920545);
+emit_32(1093799720);
+emit_32(3268603937);
+emit_32(3273664496);
+emit_32(1093400527);
+emit_32(3268603937);
+emit_32(3273408512);
+emit_32(1094189371);
+emit_32(3268603937);
+emit_32(3273152528);
+emit_32(1093002383);
+emit_32(3268603937);
+emit_32(3272896545);
+emit_32(1092483505);
+emit_32(3268603937);
+emit_32(3272640496);
+emit_32(1092251707);
+emit_32(3268603937);
+emit_32(3272384512);
+emit_32(1090906562);
+emit_32(3268603937);
+emit_32(3272128528);
+emit_32(1091695983);
+emit_32(3268603937);
+emit_32(3271872545);
+emit_32(1092003666);
+emit_32(3268603937);
+emit_32(3271616496);
+emit_32(1091543866);
+emit_32(3268603937);
+emit_32(3271163904);
+emit_32(1090300789);
+emit_32(3268603937);
+emit_32(3270651937);
+emit_32(1088844569);
+emit_32(3268603937);
+emit_32(3270139970);
+emit_32(1087660223);
+emit_32(3268603937);
+emit_32(3269627871);
+emit_32(1090808153);
+emit_32(3268603937);
+emit_32(3269115904);
+emit_32(1090929306);
+emit_32(3268603937);
+emit_32(3268603937);
+emit_32(1092294940);
+emit_32(3268603937);
+emit_32(3268091970);
+emit_32(1094951266);
+emit_32(3268603937);
+emit_32(3267579911);
+emit_32(1098255958);
+emit_32(3268603937);
+emit_32(3267067904);
+emit_32(1100042365);
+emit_32(3268603937);
+emit_32(3266555911);
+emit_32(1101461717);
+emit_32(3268603937);
+emit_32(3266043904);
+emit_32(1102844841);
+emit_32(3268603937);
+emit_32(3265531911);
+emit_32(1103734872);
+emit_32(3268603937);
+emit_32(3265019904);
+emit_32(1105122348);
+emit_32(3268603937);
+emit_32(3264507911);
+emit_32(1106689969);
+emit_32(3268603937);
+emit_32(3263995904);
+emit_32(1107793438);
+emit_32(3268603937);
+emit_32(3263483911);
+emit_32(1108426280);
+emit_32(3268603937);
+emit_32(3262775296);
+emit_32(1108850534);
+emit_32(3268603937);
+emit_32(3261751309);
+emit_32(1109340009);
+emit_32(3268603937);
+emit_32(3260727296);
+emit_32(1109539003);
+emit_32(3268603937);
+emit_32(3259703309);
+emit_32(1109953715);
+emit_32(3268603937);
+emit_32(3258679296);
+emit_32(1110117502);
+emit_32(3268603937);
+emit_32(3257655309);
+emit_32(1110591485);
+emit_32(3268603937);
+emit_32(3256631296);
+emit_32(1111088562);
+emit_32(3268603937);
+emit_32(3255607309);
+emit_32(1111126206);
+emit_32(3268603937);
+emit_32(3254386688);
+emit_32(1111259559);
+emit_32(3268603937);
+emit_32(3252338714);
+emit_32(1111504191);
+emit_32(3268603937);
+emit_32(3250290688);
+emit_32(1111434068);
+emit_32(3268603937);
+emit_32(3248242714);
+emit_32(1111442299);
+emit_32(3268603937);
+emit_32(3245998080);
+emit_32(1111170010);
+emit_32(3268603937);
+emit_32(3241902132);
+emit_32(1110967137);
+emit_32(3268603937);
+emit_32(3237609472);
+emit_32(1111303415);
+emit_32(3268603937);
+emit_32(3229220864);
+emit_32(1111224012);
+emit_32(3268603937);
+emit_32(0);
+emit_32(1110873788);
+emit_32(3268603937);
+emit_32(1081737216);
+emit_32(1110663915);
+emit_32(3268603937);
+emit_32(3279552512);
+emit_32(1104677595);
+emit_32(3269115904);
+emit_32(3279296528);
+emit_32(1105454590);
+emit_32(3269115904);
+emit_32(3279040545);
+emit_32(1106154304);
+emit_32(3269115904);
+emit_32(3278784496);
+emit_32(1106277093);
+emit_32(3269115904);
+emit_32(3278528512);
+emit_32(1105875016);
+emit_32(3269115904);
+emit_32(3278272528);
+emit_32(1106034452);
+emit_32(3269115904);
+emit_32(3278016545);
+emit_32(1105655077);
+emit_32(3269115904);
+emit_32(3277760496);
+emit_32(1104930721);
+emit_32(3269115904);
+emit_32(3277504512);
+emit_32(1104001892);
+emit_32(3269115904);
+emit_32(3277248528);
+emit_32(1103101166);
+emit_32(3269115904);
+emit_32(3276992545);
+emit_32(1102785177);
+emit_32(3269115904);
+emit_32(3276736496);
+emit_32(1102764678);
+emit_32(3269115904);
+emit_32(3276480512);
+emit_32(1102751256);
+emit_32(3269115904);
+emit_32(3276224528);
+emit_32(1102164210);
+emit_32(3269115904);
+emit_32(3275968545);
+emit_32(1101552786);
+emit_32(3269115904);
+emit_32(3275712496);
+emit_32(1101117679);
+emit_32(3269115904);
+emit_32(3275456512);
+emit_32(1100386245);
+emit_32(3269115904);
+emit_32(3275200528);
+emit_32(1099326974);
+emit_32(3269115904);
+emit_32(3274944545);
+emit_32(1098796709);
+emit_32(3269115904);
+emit_32(3274688496);
+emit_32(1097716256);
+emit_32(3269115904);
+emit_32(3274432512);
+emit_32(1095916585);
+emit_32(3269115904);
+emit_32(3274176528);
+emit_32(1095486669);
+emit_32(3269115904);
+emit_32(3273920545);
+emit_32(1093398010);
+emit_32(3269115904);
+emit_32(3273664496);
+emit_32(1092921118);
+emit_32(3269115904);
+emit_32(3273408512);
+emit_32(1092252829);
+emit_32(3269115904);
+emit_32(3273152528);
+emit_32(1092749676);
+emit_32(3269115904);
+emit_32(3272896545);
+emit_32(1092530481);
+emit_32(3269115904);
+emit_32(3272640496);
+emit_32(1091486131);
+emit_32(3269115904);
+emit_32(3272384512);
+emit_32(1090876730);
+emit_32(3269115904);
+emit_32(3272128528);
+emit_32(1090142454);
+emit_32(3269115904);
+emit_32(3271872545);
+emit_32(1088793147);
+emit_32(3269115904);
+emit_32(3271616496);
+emit_32(1089015130);
+emit_32(3269115904);
+emit_32(3271163904);
+emit_32(1088303693);
+emit_32(3269115904);
+emit_32(3270651937);
+emit_32(1087535674);
+emit_32(3269115904);
+emit_32(3270139970);
+emit_32(1085670299);
+emit_32(3269115904);
+emit_32(3269627871);
+emit_32(1085625420);
+emit_32(3269115904);
+emit_32(3269115904);
+emit_32(1088308013);
+emit_32(3269115904);
+emit_32(3268603937);
+emit_32(1092417340);
+emit_32(3269115904);
+emit_32(3268091970);
+emit_32(1095410752);
+emit_32(3269115904);
+emit_32(3267579911);
+emit_32(1098094582);
+emit_32(3269115904);
+emit_32(3267067904);
+emit_32(1100161430);
+emit_32(3269115904);
+emit_32(3266555911);
+emit_32(1101552891);
+emit_32(3269115904);
+emit_32(3266043904);
+emit_32(1102765307);
+emit_32(3269115904);
+emit_32(3265531911);
+emit_32(1103641549);
+emit_32(3269115904);
+emit_32(3265019904);
+emit_32(1105704360);
+emit_32(3269115904);
+emit_32(3264507911);
+emit_32(1107288811);
+emit_32(3269115904);
+emit_32(3263995904);
+emit_32(1107972981);
+emit_32(3269115904);
+emit_32(3263483911);
+emit_32(1108646167);
+emit_32(3269115904);
+emit_32(3262775296);
+emit_32(1109009918);
+emit_32(3269115904);
+emit_32(3261751309);
+emit_32(1109314581);
+emit_32(3269115904);
+emit_32(3260727296);
+emit_32(1109742427);
+emit_32(3269115904);
+emit_32(3259703309);
+emit_32(1110003653);
+emit_32(3269115904);
+emit_32(3258679296);
+emit_32(1110284435);
+emit_32(3269115904);
+emit_32(3257655309);
+emit_32(1110677153);
+emit_32(3269115904);
+emit_32(3256631296);
+emit_32(1111084630);
+emit_32(3269115904);
+emit_32(3255607309);
+emit_32(1111141489);
+emit_32(3269115904);
+emit_32(3254386688);
+emit_32(1111299090);
+emit_32(3269115904);
+emit_32(3252338714);
+emit_32(1111545138);
+emit_32(3269115904);
+emit_32(3250290688);
+emit_32(1111299378);
+emit_32(3269115904);
+emit_32(3248242714);
+emit_32(1111477977);
+emit_32(3269115904);
+emit_32(3245998080);
+emit_32(1111335580);
+emit_32(3269115904);
+emit_32(3241902132);
+emit_32(1111332776);
+emit_32(3269115904);
+emit_32(3237609472);
+emit_32(1111510640);
+emit_32(3269115904);
+emit_32(3229220864);
+emit_32(1111358806);
+emit_32(3269115904);
+emit_32(0);
+emit_32(1111013904);
+emit_32(3269115904);
+emit_32(1081737216);
+emit_32(1110808645);
+emit_32(3269115904);
+emit_32(3279552512);
+emit_32(1105473988);
+emit_32(3269627871);
+emit_32(3279296528);
+emit_32(1106406644);
+emit_32(3269627871);
+emit_32(3279040545);
+emit_32(1106900052);
+emit_32(3269627871);
+emit_32(3278784496);
+emit_32(1106631983);
+emit_32(3269627871);
+emit_32(3278528512);
+emit_32(1106899527);
+emit_32(3269627871);
+emit_32(3278272528);
+emit_32(1107077575);
+emit_32(3269627871);
+emit_32(3278016545);
+emit_32(1106405386);
+emit_32(3269627871);
+emit_32(3277760496);
+emit_32(1105322207);
+emit_32(3269627871);
+emit_32(3277504512);
+emit_32(1104051752);
+emit_32(3269627871);
+emit_32(3277248528);
+emit_32(1103820331);
+emit_32(3269627871);
+emit_32(3276992545);
+emit_32(1103544189);
+emit_32(3269627871);
+emit_32(3276736496);
+emit_32(1104020714);
+emit_32(3269627871);
+emit_32(3276480512);
+emit_32(1104151629);
+emit_32(3269627871);
+emit_32(3276224528);
+emit_32(1103575069);
+emit_32(3269627871);
+emit_32(3275968545);
+emit_32(1102962911);
+emit_32(3269627871);
+emit_32(3275712496);
+emit_32(1102032824);
+emit_32(3269627871);
+emit_32(3275456512);
+emit_32(1101115320);
+emit_32(3269627871);
+emit_32(3275200528);
+emit_32(1100461113);
+emit_32(3269627871);
+emit_32(3274944545);
+emit_32(1099847644);
+emit_32(3269627871);
+emit_32(3274688496);
+emit_32(1099097702);
+emit_32(3269627871);
+emit_32(3274432512);
+emit_32(1097494692);
+emit_32(3269627871);
+emit_32(3274176528);
+emit_32(1096228851);
+emit_32(3269627871);
+emit_32(3273920545);
+emit_32(1094225966);
+emit_32(3269627871);
+emit_32(3273664496);
+emit_32(1093095391);
+emit_32(3269627871);
+emit_32(3273408512);
+emit_32(1092478294);
+emit_32(3269627871);
+emit_32(3273152528);
+emit_32(1092368508);
+emit_32(3269627871);
+emit_32(3272896545);
+emit_32(1091995425);
+emit_32(3269627871);
+emit_32(3272640496);
+emit_32(1090918526);
+emit_32(3269627871);
+emit_32(3272384512);
+emit_32(1090551315);
+emit_32(3269627871);
+emit_32(3272128528);
+emit_32(1089373156);
+emit_32(3269627871);
+emit_32(3271872545);
+emit_32(1087003689);
+emit_32(3269627871);
+emit_32(3271616496);
+emit_32(1086132763);
+emit_32(3269627871);
+emit_32(3271163904);
+emit_32(1085152973);
+emit_32(3269627871);
+emit_32(3270651937);
+emit_32(1085347149);
+emit_32(3269627871);
+emit_32(3270139970);
+emit_32(1084963286);
+emit_32(3269627871);
+emit_32(3269627871);
+emit_32(1086623454);
+emit_32(3269627871);
+emit_32(3269115904);
+emit_32(1089942512);
+emit_32(3269627871);
+emit_32(3268603937);
+emit_32(1092605381);
+emit_32(3269627871);
+emit_32(3268091970);
+emit_32(1095649093);
+emit_32(3269627871);
+emit_32(3267579911);
+emit_32(1098551656);
+emit_32(3269627871);
+emit_32(3267067904);
+emit_32(1100188326);
+emit_32(3269627871);
+emit_32(3266555911);
+emit_32(1101247703);
+emit_32(3269627871);
+emit_32(3266043904);
+emit_32(1102236038);
+emit_32(3269627871);
+emit_32(3265531911);
+emit_32(1104015996);
+emit_32(3269627871);
+emit_32(3265019904);
+emit_32(1106019562);
+emit_32(3269627871);
+emit_32(3264507911);
+emit_32(1107489640);
+emit_32(3269627871);
+emit_32(3263995904);
+emit_32(1107939269);
+emit_32(3269627871);
+emit_32(3263483911);
+emit_32(1108609493);
+emit_32(3269627871);
+emit_32(3262775296);
+emit_32(1108936360);
+emit_32(3269627871);
+emit_32(3261751309);
+emit_32(1109365909);
+emit_32(3269627871);
+emit_32(3260727296);
+emit_32(1109731836);
+emit_32(3269627871);
+emit_32(3259703309);
+emit_32(1110075454);
+emit_32(3269627871);
+emit_32(3258679296);
+emit_32(1110274841);
+emit_32(3269627871);
+emit_32(3257655309);
+emit_32(1110532397);
+emit_32(3269627871);
+emit_32(3256631296);
+emit_32(1110820677);
+emit_32(3269627871);
+emit_32(3255607309);
+emit_32(1110970388);
+emit_32(3269627871);
+emit_32(3254386688);
+emit_32(1111402270);
+emit_32(3269627871);
+emit_32(3252338714);
+emit_32(1111410187);
+emit_32(3269627871);
+emit_32(3250290688);
+emit_32(1111092730);
+emit_32(3269627871);
+emit_32(3248242714);
+emit_32(1111561549);
+emit_32(3269627871);
+emit_32(3245998080);
+emit_32(1111622576);
+emit_32(3269627871);
+emit_32(3241902132);
+emit_32(1111406543);
+emit_32(3269627871);
+emit_32(3237609472);
+emit_32(1111614869);
+emit_32(3269627871);
+emit_32(3229220864);
+emit_32(1111623991);
+emit_32(3269627871);
+emit_32(0);
+emit_32(1111334244);
+emit_32(3269627871);
+emit_32(1081737216);
+emit_32(1111356054);
+emit_32(3269627871);
+emit_32(3279552512);
+emit_32(1106615049);
+emit_32(3270139970);
+emit_32(3279296528);
+emit_32(1107119309);
+emit_32(3270139970);
+emit_32(3279040545);
+emit_32(1107204296);
+emit_32(3270139970);
+emit_32(3278784496);
+emit_32(1107426043);
+emit_32(3270139970);
+emit_32(3278528512);
+emit_32(1107651514);
+emit_32(3270139970);
+emit_32(3278272528);
+emit_32(1107492104);
+emit_32(3270139970);
+emit_32(3278016545);
+emit_32(1106671934);
+emit_32(3270139970);
+emit_32(3277760496);
+emit_32(1105363468);
+emit_32(3270139970);
+emit_32(3277504512);
+emit_32(1104722631);
+emit_32(3270139970);
+emit_32(3277248528);
+emit_32(1104684463);
+emit_32(3270139970);
+emit_32(3276992545);
+emit_32(1104973765);
+emit_32(3270139970);
+emit_32(3276736496);
+emit_32(1105162981);
+emit_32(3270139970);
+emit_32(3276480512);
+emit_32(1105246762);
+emit_32(3270139970);
+emit_32(3276224528);
+emit_32(1104513126);
+emit_32(3270139970);
+emit_32(3275968545);
+emit_32(1103992350);
+emit_32(3270139970);
+emit_32(3275712496);
+emit_32(1103134301);
+emit_32(3270139970);
+emit_32(3275456512);
+emit_32(1102130761);
+emit_32(3270139970);
+emit_32(3275200528);
+emit_32(1101510214);
+emit_32(3270139970);
+emit_32(3274944545);
+emit_32(1100554804);
+emit_32(3270139970);
+emit_32(3274688496);
+emit_32(1100005560);
+emit_32(3270139970);
+emit_32(3274432512);
+emit_32(1099090258);
+emit_32(3270139970);
+emit_32(3274176528);
+emit_32(1096702388);
+emit_32(3270139970);
+emit_32(3273920545);
+emit_32(1094929875);
+emit_32(3270139970);
+emit_32(3273664496);
+emit_32(1093071903);
+emit_32(3270139970);
+emit_32(3273408512);
+emit_32(1091864185);
+emit_32(3270139970);
+emit_32(3273152528);
+emit_32(1090738538);
+emit_32(3270139970);
+emit_32(3272896545);
+emit_32(1089872215);
+emit_32(3270139970);
+emit_32(3272640496);
+emit_32(1088532009);
+emit_32(3270139970);
+emit_32(3272384512);
+emit_32(1087136019);
+emit_32(3270139970);
+emit_32(3272128528);
+emit_32(1086091155);
+emit_32(3270139970);
+emit_32(3271872545);
+emit_32(1083137212);
+emit_32(3270139970);
+emit_32(3271616496);
+emit_32(1082194374);
+emit_32(3270139970);
+emit_32(3271163904);
+emit_32(1084156344);
+emit_32(3270139970);
+emit_32(3270651937);
+emit_32(1086494710);
+emit_32(3270139970);
+emit_32(3270139970);
+emit_32(1087925178);
+emit_32(3270139970);
+emit_32(3269627871);
+emit_32(1089283545);
+emit_32(3270139970);
+emit_32(3269115904);
+emit_32(1089544493);
+emit_32(3270139970);
+emit_32(3268603937);
+emit_32(1092490552);
+emit_32(3270139970);
+emit_32(3268091970);
+emit_32(1094596637);
+emit_32(3270139970);
+emit_32(3267579911);
+emit_32(1097303536);
+emit_32(3270139970);
+emit_32(3267067904);
+emit_32(1099546598);
+emit_32(3270139970);
+emit_32(3266555911);
+emit_32(1101122293);
+emit_32(3270139970);
+emit_32(3266043904);
+emit_32(1102198394);
+emit_32(3270139970);
+emit_32(3265531911);
+emit_32(1104133751);
+emit_32(3270139970);
+emit_32(3265019904);
+emit_32(1105876641);
+emit_32(3270139970);
+emit_32(3264507911);
+emit_32(1107287081);
+emit_32(3270139970);
+emit_32(3263995904);
+emit_32(1107840362);
+emit_32(3270139970);
+emit_32(3263483911);
+emit_32(1108323913);
+emit_32(3270139970);
+emit_32(3262775296);
+emit_32(1108846340);
+emit_32(3270139970);
+emit_32(3261751309);
+emit_32(1109191243);
+emit_32(3270139970);
+emit_32(3260727296);
+emit_32(1109548335);
+emit_32(3270139970);
+emit_32(3259703309);
+emit_32(1110053775);
+emit_32(3270139970);
+emit_32(3258679296);
+emit_32(1110107410);
+emit_32(3270139970);
+emit_32(3257655309);
+emit_32(1110399726);
+emit_32(3270139970);
+emit_32(3256631296);
+emit_32(1110760515);
+emit_32(3270139970);
+emit_32(3255607309);
+emit_32(1110729294);
+emit_32(3270139970);
+emit_32(3254386688);
+emit_32(1110963755);
+emit_32(3270139970);
+emit_32(3252338714);
+emit_32(1110772128);
+emit_32(3270139970);
+emit_32(3250290688);
+emit_32(1110896358);
+emit_32(3270139970);
+emit_32(3248242714);
+emit_32(1111339775);
+emit_32(3270139970);
+emit_32(3245998080);
+emit_32(1111522542);
+emit_32(3270139970);
+emit_32(3241902132);
+emit_32(1111498739);
+emit_32(3270139970);
+emit_32(3237609472);
+emit_32(1111764002);
+emit_32(3270139970);
+emit_32(3229220864);
+emit_32(1111826209);
+emit_32(3270139970);
+emit_32(0);
+emit_32(1111701062);
+emit_32(3270139970);
+emit_32(1081737216);
+emit_32(1111592455);
+emit_32(3270139970);
+emit_32(3279552512);
+emit_32(1107165027);
+emit_32(3270651937);
+emit_32(3279296528);
+emit_32(1106980268);
+emit_32(3270651937);
+emit_32(3279040545);
+emit_32(1107315707);
+emit_32(3270651937);
+emit_32(3278784496);
+emit_32(1107598272);
+emit_32(3270651937);
+emit_32(3278528512);
+emit_32(1107717469);
+emit_32(3270651937);
+emit_32(3278272528);
+emit_32(1107286557);
+emit_32(3270651937);
+emit_32(3278016545);
+emit_32(1106402712);
+emit_32(3270651937);
+emit_32(3277760496);
+emit_32(1105497896);
+emit_32(3270651937);
+emit_32(3277504512);
+emit_32(1105374898);
+emit_32(3270651937);
+emit_32(3277248528);
+emit_32(1105640659);
+emit_32(3270651937);
+emit_32(3276992545);
+emit_32(1105948416);
+emit_32(3270651937);
+emit_32(3276736496);
+emit_32(1105871923);
+emit_32(3270651937);
+emit_32(3276480512);
+emit_32(1105415268);
+emit_32(3270651937);
+emit_32(3276224528);
+emit_32(1104908386);
+emit_32(3270651937);
+emit_32(3275968545);
+emit_32(1104625166);
+emit_32(3270651937);
+emit_32(3275712496);
+emit_32(1103529981);
+emit_32(3270651937);
+emit_32(3275456512);
+emit_32(1102284535);
+emit_32(3270651937);
+emit_32(3275200528);
+emit_32(1101814668);
+emit_32(3270651937);
+emit_32(3274944545);
+emit_32(1101354395);
+emit_32(3270651937);
+emit_32(3274688496);
+emit_32(1100467772);
+emit_32(3270651937);
+emit_32(3274432512);
+emit_32(1099331902);
+emit_32(3270651937);
+emit_32(3274176528);
+emit_32(1097334469);
+emit_32(3270651937);
+emit_32(3273920545);
+emit_32(1095774713);
+emit_32(3270651937);
+emit_32(3273664496);
+emit_32(1093969274);
+emit_32(3270651937);
+emit_32(3273408512);
+emit_32(1092236870);
+emit_32(3270651937);
+emit_32(3273152528);
+emit_32(1091177242);
+emit_32(3270651937);
+emit_32(3272896545);
+emit_32(1089194521);
+emit_32(3270651937);
+emit_32(3272640496);
+emit_32(1087253250);
+emit_32(3270651937);
+emit_32(3272384512);
+emit_32(1085293042);
+emit_32(3270651937);
+emit_32(3272128528);
+emit_32(1086332055);
+emit_32(3270651937);
+emit_32(3271872545);
+emit_32(1083552217);
+emit_32(3270651937);
+emit_32(3271616496);
+emit_32(1081840228);
+emit_32(3270651937);
+emit_32(3271163904);
+emit_32(1085052373);
+emit_32(3270651937);
+emit_32(3270651937);
+emit_32(1088324601);
+emit_32(3270651937);
+emit_32(3270139970);
+emit_32(1090526128);
+emit_32(3270651937);
+emit_32(3269627871);
+emit_32(1090035353);
+emit_32(3270651937);
+emit_32(3269115904);
+emit_32(1091146088);
+emit_32(3270651937);
+emit_32(3268603937);
+emit_32(1092321972);
+emit_32(3270651937);
+emit_32(3268091970);
+emit_32(1094166931);
+emit_32(3270651937);
+emit_32(3267579911);
+emit_32(1096361705);
+emit_32(3270651937);
+emit_32(3267067904);
+emit_32(1098923167);
+emit_32(3270651937);
+emit_32(3266555911);
+emit_32(1100222510);
+emit_32(3270651937);
+emit_32(3266043904);
+emit_32(1102327683);
+emit_32(3270651937);
+emit_32(3265531911);
+emit_32(1104008865);
+emit_32(3270651937);
+emit_32(3265019904);
+emit_32(1105745465);
+emit_32(3270651937);
+emit_32(3264507911);
+emit_32(1107240472);
+emit_32(3270651937);
+emit_32(3263995904);
+emit_32(1107738152);
+emit_32(3270651937);
+emit_32(3263483911);
+emit_32(1108317333);
+emit_32(3270651937);
+emit_32(3262775296);
+emit_32(1108718230);
+emit_32(3270651937);
+emit_32(3261751309);
+emit_32(1109166313);
+emit_32(3270651937);
+emit_32(3260727296);
+emit_32(1109572767);
+emit_32(3270651937);
+emit_32(3259703309);
+emit_32(1109886999);
+emit_32(3270651937);
+emit_32(3258679296);
+emit_32(1110175934);
+emit_32(3270651937);
+emit_32(3257655309);
+emit_32(1110012409);
+emit_32(3270651937);
+emit_32(3256631296);
+emit_32(1110458420);
+emit_32(3270651937);
+emit_32(3255607309);
+emit_32(1110277908);
+emit_32(3270651937);
+emit_32(3254386688);
+emit_32(1110242571);
+emit_32(3270651937);
+emit_32(3252338714);
+emit_32(1110493941);
+emit_32(3270651937);
+emit_32(3250290688);
+emit_32(1110776139);
+emit_32(3270651937);
+emit_32(3248242714);
+emit_32(1111135643);
+emit_32(3270651937);
+emit_32(3245998080);
+emit_32(1111317021);
+emit_32(3270651937);
+emit_32(3241902132);
+emit_32(1111525111);
+emit_32(3270651937);
+emit_32(3237609472);
+emit_32(1111847102);
+emit_32(3270651937);
+emit_32(3229220864);
+emit_32(1111929704);
+emit_32(3270651937);
+emit_32(0);
+emit_32(1111847364);
+emit_32(3270651937);
+emit_32(1081737216);
+emit_32(1111930149);
+emit_32(3270651937);
+emit_32(3279552512);
+emit_32(1106982994);
+emit_32(3271163904);
+emit_32(3279296528);
+emit_32(1106990334);
+emit_32(3271163904);
+emit_32(3279040545);
+emit_32(1107378569);
+emit_32(3271163904);
+emit_32(3278784496);
+emit_32(1107553734);
+emit_32(3271163904);
+emit_32(3278528512);
+emit_32(1107478761);
+emit_32(3271163904);
+emit_32(3278272528);
+emit_32(1106962389);
+emit_32(3271163904);
+emit_32(3278016545);
+emit_32(1105953607);
+emit_32(3271163904);
+emit_32(3277760496);
+emit_32(1105995497);
+emit_32(3271163904);
+emit_32(3277504512);
+emit_32(1105958325);
+emit_32(3271163904);
+emit_32(3277248528);
+emit_32(1106168041);
+emit_32(3271163904);
+emit_32(3276992545);
+emit_32(1106461590);
+emit_32(3271163904);
+emit_32(3276736496);
+emit_32(1106400248);
+emit_32(3271163904);
+emit_32(3276480512);
+emit_32(1105590904);
+emit_32(3271163904);
+emit_32(3276224528);
+emit_32(1105294315);
+emit_32(3271163904);
+emit_32(3275968545);
+emit_32(1104823661);
+emit_32(3271163904);
+emit_32(3275712496);
+emit_32(1103994185);
+emit_32(3271163904);
+emit_32(3275456512);
+emit_32(1102728764);
+emit_32(3271163904);
+emit_32(3275200528);
+emit_32(1102137996);
+emit_32(3271163904);
+emit_32(3274944545);
+emit_32(1101349782);
+emit_32(3271163904);
+emit_32(3274688496);
+emit_32(1100398356);
+emit_32(3271163904);
+emit_32(3274432512);
+emit_32(1099098489);
+emit_32(3271163904);
+emit_32(3274176528);
+emit_32(1097575747);
+emit_32(3271163904);
+emit_32(3273920545);
+emit_32(1095747135);
+emit_32(3271163904);
+emit_32(3273664496);
+emit_32(1094011427);
+emit_32(3271163904);
+emit_32(3273408512);
+emit_32(1092817099);
+emit_32(3271163904);
+emit_32(3273152528);
+emit_32(1090935010);
+emit_32(3271163904);
+emit_32(3272896545);
+emit_32(1086813205);
+emit_32(3271163904);
+emit_32(3272640496);
+emit_32(1085254874);
+emit_32(3271163904);
+emit_32(3272384512);
+emit_32(1084610859);
+emit_32(3271163904);
+emit_32(3272128528);
+emit_32(1085403226);
+emit_32(3271163904);
+emit_32(3271872545);
+emit_32(1085803741);
+emit_32(3271163904);
+emit_32(3271616496);
+emit_32(1084901902);
+emit_32(3271163904);
+emit_32(3271163904);
+emit_32(1086653402);
+emit_32(3271163904);
+emit_32(3270651937);
+emit_32(1089541201);
+emit_32(3271163904);
+emit_32(3270139970);
+emit_32(1090924587);
+emit_32(3271163904);
+emit_32(3269627871);
+emit_32(1091193002);
+emit_32(3271163904);
+emit_32(3269115904);
+emit_32(1091042709);
+emit_32(3271163904);
+emit_32(3268603937);
+emit_32(1091824318);
+emit_32(3271163904);
+emit_32(3268091970);
+emit_32(1094207721);
+emit_32(3271163904);
+emit_32(3267579911);
+emit_32(1096193199);
+emit_32(3271163904);
+emit_32(3267067904);
+emit_32(1098383045);
+emit_32(3271163904);
+emit_32(3266555911);
+emit_32(1099615542);
+emit_32(3271163904);
+emit_32(3266043904);
+emit_32(1101433038);
+emit_32(3271163904);
+emit_32(3265531911);
+emit_32(1103595045);
+emit_32(3271163904);
+emit_32(3265019904);
+emit_32(1105129950);
+emit_32(3271163904);
+emit_32(3264507911);
+emit_32(1106326061);
+emit_32(3271163904);
+emit_32(3263995904);
+emit_32(1107411652);
+emit_32(3271163904);
+emit_32(3263483911);
+emit_32(1107887050);
+emit_32(3271163904);
+emit_32(3262775296);
+emit_32(1108492236);
+emit_32(3271163904);
+emit_32(3261751309);
+emit_32(1109105757);
+emit_32(3271163904);
+emit_32(3260727296);
+emit_32(1109424656);
+emit_32(3271163904);
+emit_32(3259703309);
+emit_32(1109901784);
+emit_32(3271163904);
+emit_32(3258679296);
+emit_32(1109885321);
+emit_32(3271163904);
+emit_32(3257655309);
+emit_32(1109822564);
+emit_32(3271163904);
+emit_32(3256631296);
+emit_32(1109824163);
+emit_32(3271163904);
+emit_32(3255607309);
+emit_32(1109730315);
+emit_32(3271163904);
+emit_32(3254386688);
+emit_32(1109803113);
+emit_32(3271163904);
+emit_32(3252338714);
+emit_32(1109995186);
+emit_32(3271163904);
+emit_32(3250290688);
+emit_32(1110434618);
+emit_32(3271163904);
+emit_32(3248242714);
+emit_32(1111024783);
+emit_32(3271163904);
+emit_32(3245998080);
+emit_32(1111309785);
+emit_32(3271163904);
+emit_32(3241902132);
+emit_32(1111384208);
+emit_32(3271163904);
+emit_32(3237609472);
+emit_32(1111783952);
+emit_32(3271163904);
+emit_32(3229220864);
+emit_32(1111918930);
+emit_32(3271163904);
+emit_32(0);
+emit_32(1112106100);
+emit_32(3271163904);
+emit_32(1081737216);
+emit_32(1112094042);
+emit_32(3271163904);
+emit_start(Landscape06Vtx)
+emit_32(3279552512);
+emit_32(1085562023);
+emit_32(1131812880);
+emit_32(3279552512);
+emit_32(1090639836);
+emit_32(1132068864);
+emit_32(3279296528);
+emit_32(1088557385);
+emit_32(1131812880);
+emit_32(3279296528);
+emit_32(1092330749);
+emit_32(1132068864);
+emit_32(3279040545);
+emit_32(1092455865);
+emit_32(1131812880);
+emit_32(3279040545);
+emit_32(1094355780);
+emit_32(1132068864);
+emit_32(3278784496);
+emit_32(1095594567);
+emit_32(1131812880);
+emit_32(3278784496);
+emit_32(1095302539);
+emit_32(1132068864);
+emit_32(3278528512);
+emit_32(1096797808);
+emit_32(1131812880);
+emit_32(3278528512);
+emit_32(1095711379);
+emit_32(1132068864);
+emit_32(3278272528);
+emit_32(1098618136);
+emit_32(1131812880);
+emit_32(3278272528);
+emit_32(1098003041);
+emit_32(1132068864);
+emit_32(3278016545);
+emit_32(1099699061);
+emit_32(1131812880);
+emit_32(3278016545);
+emit_32(1099454009);
+emit_32(1132068864);
+emit_32(3277760496);
+emit_32(1100182821);
+emit_32(1131812880);
+emit_32(3277760496);
+emit_32(1099951977);
+emit_32(1132068864);
+emit_32(3277504512);
+emit_32(1100520096);
+emit_32(1131812880);
+emit_32(3277504512);
+emit_32(1100371355);
+emit_32(1132068864);
+emit_32(3277248528);
+emit_32(1100966579);
+emit_32(1131812880);
+emit_32(3277248528);
+emit_32(1100780352);
+emit_32(1132068864);
+emit_32(3276992545);
+emit_32(1100860306);
+emit_32(1131812880);
+emit_32(3276992545);
+emit_32(1101050203);
+emit_32(1132068864);
+emit_32(3276736496);
+emit_32(1100465622);
+emit_32(1131812880);
+emit_32(3276736496);
+emit_32(1100893074);
+emit_32(1132068864);
+emit_32(3276480512);
+emit_32(1100581280);
+emit_32(1131812880);
+emit_32(3276480512);
+emit_32(1101018641);
+emit_32(1132068864);
+emit_32(3276224528);
+emit_32(1099877895);
+emit_32(1131812880);
+emit_32(3276224528);
+emit_32(1100648651);
+emit_32(1132068864);
+emit_32(3275968545);
+emit_32(1098108633);
+emit_32(1131812880);
+emit_32(3275968545);
+emit_32(1099969017);
+emit_32(1132068864);
+emit_32(3275712496);
+emit_32(1097534433);
+emit_32(1131812880);
+emit_32(3275712496);
+emit_32(1099061736);
+emit_32(1132068864);
+emit_32(3275456512);
+emit_32(1095741263);
+emit_32(1131812880);
+emit_32(3275456512);
+emit_32(1097819121);
+emit_32(1132068864);
+emit_32(3275200528);
+emit_32(1094351061);
+emit_32(1131812880);
+emit_32(3275200528);
+emit_32(1095413373);
+emit_32(1132068864);
+emit_32(3274944545);
+emit_32(1095198940);
+emit_32(1131812880);
+emit_32(3274944545);
+emit_32(1096465724);
+emit_32(1132068864);
+emit_32(3274688496);
+emit_32(1095888378);
+emit_32(1131812880);
+emit_32(3274688496);
+emit_32(1097378510);
+emit_32(1132068864);
+emit_32(3274432512);
+emit_32(1096087503);
+emit_32(1131812880);
+emit_32(3274432512);
+emit_32(1098800064);
+emit_32(1132068864);
+emit_32(3274176528);
+emit_32(1096238288);
+emit_32(1131812880);
+emit_32(3274176528);
+emit_32(1098870004);
+emit_32(1132068864);
+emit_32(3273920545);
+emit_32(1096234303);
+emit_32(1131812880);
+emit_32(3273920545);
+emit_32(1098365115);
+emit_32(1132068864);
+emit_32(3273664496);
+emit_32(1097531182);
+emit_32(1131812880);
+emit_32(3273664496);
+emit_32(1097973681);
+emit_32(1132068864);
+emit_32(3273408512);
+emit_32(1096980680);
+emit_32(1131812880);
+emit_32(3273408512);
+emit_32(1097661835);
+emit_32(1132068864);
+emit_32(3273152528);
+emit_32(1096822135);
+emit_32(1131812880);
+emit_32(3273152528);
+emit_32(1097231709);
+emit_32(1132068864);
+emit_32(3272896545);
+emit_32(1095973103);
+emit_32(1131812880);
+emit_32(3272896545);
+emit_32(1097116261);
+emit_32(1132068864);
+emit_32(3272640496);
+emit_32(1095621621);
+emit_32(1131812880);
+emit_32(3272640496);
+emit_32(1096358035);
+emit_32(1132068864);
+emit_32(3272384512);
+emit_32(1095942380);
+emit_32(1131812880);
+emit_32(3272384512);
+emit_32(1097122133);
+emit_32(1132068864);
+emit_32(3272128528);
+emit_32(1095707289);
+emit_32(1131812880);
+emit_32(3272128528);
+emit_32(1097935303);
+emit_32(1132068864);
+emit_32(3271872545);
+emit_32(1096204524);
+emit_32(1131812880);
+emit_32(3271872545);
+emit_32(1097370855);
+emit_32(1132068864);
+emit_32(3271616496);
+emit_32(1096900883);
+emit_32(1131812880);
+emit_32(3271616496);
+emit_32(1098608280);
+emit_32(1132068864);
+emit_32(3271163904);
+emit_32(1096266285);
+emit_32(1131812880);
+emit_32(3271163904);
+emit_32(1098342256);
+emit_32(1132068864);
+emit_32(3270651937);
+emit_32(1095366397);
+emit_32(1131812880);
+emit_32(3270651937);
+emit_32(1098053793);
+emit_32(1132068864);
+emit_32(3270139970);
+emit_32(1094774581);
+emit_32(1131812880);
+emit_32(3270139970);
+emit_32(1098324640);
+emit_32(1132068864);
+emit_32(3269627871);
+emit_32(1095465488);
+emit_32(1131812880);
+emit_32(3269627871);
+emit_32(1098790417);
+emit_32(1132068864);
+emit_32(3269115904);
+emit_32(1095080136);
+emit_32(1131812880);
+emit_32(3269115904);
+emit_32(1098071199);
+emit_32(1132068864);
+emit_32(3268603937);
+emit_32(1095775027);
+emit_32(1131812880);
+emit_32(3268603937);
+emit_32(1098042258);
+emit_32(1132068864);
+emit_32(3268091970);
+emit_32(1096498335);
+emit_32(1131812880);
+emit_32(3268091970);
+emit_32(1097596823);
+emit_32(1132068864);
+emit_32(3267579911);
+emit_32(1096881170);
+emit_32(1131812880);
+emit_32(3267579911);
+emit_32(1097962986);
+emit_32(1132068864);
+emit_32(3267067904);
+emit_32(1096646604);
+emit_32(1131812880);
+emit_32(3267067904);
+emit_32(1097510525);
+emit_32(1132068864);
+emit_32(3266555911);
+emit_32(1097473930);
+emit_32(1131812880);
+emit_32(3266555911);
+emit_32(1096970614);
+emit_32(1132068864);
+emit_32(3266043904);
+emit_32(1096072928);
+emit_32(1131812880);
+emit_32(3266043904);
+emit_32(1096851181);
+emit_32(1132068864);
+emit_32(3265531911);
+emit_32(1095562061);
+emit_32(1131812880);
+emit_32(3265531911);
+emit_32(1096578341);
+emit_32(1132068864);
+emit_32(3265019904);
+emit_32(1094504258);
+emit_32(1131812880);
+emit_32(3265019904);
+emit_32(1095833747);
+emit_32(1132068864);
+emit_32(3264507911);
+emit_32(1094381679);
+emit_32(1131812880);
+emit_32(3264507911);
+emit_32(1095590058);
+emit_32(1132068864);
+emit_32(3263995904);
+emit_32(1093698952);
+emit_32(1131812880);
+emit_32(3263995904);
+emit_32(1095093872);
+emit_32(1132068864);
+emit_32(3263483911);
+emit_32(1094601146);
+emit_32(1131812880);
+emit_32(3263483911);
+emit_32(1093864941);
+emit_32(1132068864);
+emit_32(3262775296);
+emit_32(1093294516);
+emit_32(1131812880);
+emit_32(3262775296);
+emit_32(1092542435);
+emit_32(1132068864);
+emit_32(3261751309);
+emit_32(1091098766);
+emit_32(1131812880);
+emit_32(3261751309);
+emit_32(1091449232);
+emit_32(1132068864);
+emit_32(3260727296);
+emit_32(1088637685);
+emit_32(1131812880);
+emit_32(3260727296);
+emit_32(1089462705);
+emit_32(1132068864);
+emit_32(3259703309);
+emit_32(1088371137);
+emit_32(1131812880);
+emit_32(3259703309);
+emit_32(1086825892);
+emit_32(1132068864);
+emit_32(3258679296);
+emit_32(1090482591);
+emit_32(1131812880);
+emit_32(3258679296);
+emit_32(1088189482);
+emit_32(1132068864);
+emit_32(3257655309);
+emit_32(1091688768);
+emit_32(1131812880);
+emit_32(3257655309);
+emit_32(1089036752);
+emit_32(1132068864);
+emit_32(3256631296);
+emit_32(1091298897);
+emit_32(1131812880);
+emit_32(3256631296);
+emit_32(1088194704);
+emit_32(1132068864);
+emit_32(3255607309);
+emit_32(1089392345);
+emit_32(1131812880);
+emit_32(3255607309);
+emit_32(1087706759);
+emit_32(1132068864);
+emit_32(3254386688);
+emit_32(1089840108);
+emit_32(1131812880);
+emit_32(3254386688);
+emit_32(1087906072);
+emit_32(1132068864);
+emit_32(3252338714);
+emit_32(1088432604);
+emit_32(1131812880);
+emit_32(3252338714);
+emit_32(1086651325);
+emit_32(1132068864);
+emit_32(3250290688);
+emit_32(1085565840);
+emit_32(1131812880);
+emit_32(3250290688);
+emit_32(1085752989);
+emit_32(1132068864);
+emit_32(3248242714);
+emit_32(1084476831);
+emit_32(1131812880);
+emit_32(3248242714);
+emit_32(1082147671);
+emit_32(1132068864);
+emit_32(3245998080);
+emit_32(1080454304);
+emit_32(1131812880);
+emit_32(3245998080);
+emit_32(1080053035);
+emit_32(1132068864);
+emit_32(3241902132);
+emit_32(1078160817);
+emit_32(1131812880);
+emit_32(3241902132);
+emit_32(1078352203);
+emit_32(1132068864);
+emit_32(3237609472);
+emit_32(1075763269);
+emit_32(1131812880);
+emit_32(3237609472);
+emit_32(1075673385);
+emit_32(1132068864);
+emit_32(3229220864);
+emit_32(1071152764);
+emit_32(1131812880);
+emit_32(3229220864);
+emit_32(1076050788);
+emit_32(1132068864);
+emit_32(0);
+emit_32(1066573591);
+emit_32(1131812880);
+emit_32(0);
+emit_32(1074500112);
+emit_32(1132068864);
+emit_32(1081737216);
+emit_32(1055384530);
+emit_32(1131812880);
+emit_32(1081737216);
+emit_32(1069740626);
+emit_32(1132068864);
+emit_32(3279552512);
+emit_32(1084680359);
+emit_32(1131556897);
+emit_32(3279296528);
+emit_32(1089160463);
+emit_32(1131556897);
+emit_32(3279040545);
+emit_32(1092855687);
+emit_32(1131556897);
+emit_32(3278784496);
+emit_32(1095505229);
+emit_32(1131556897);
+emit_32(3278528512);
+emit_32(1097158309);
+emit_32(1131556897);
+emit_32(3278272528);
+emit_32(1099096077);
+emit_32(1131556897);
+emit_32(3278016545);
+emit_32(1099862691);
+emit_32(1131556897);
+emit_32(3277760496);
+emit_32(1100235198);
+emit_32(1131556897);
+emit_32(3277504512);
+emit_32(1100353529);
+emit_32(1131556897);
+emit_32(3277248528);
+emit_32(1100744753);
+emit_32(1131556897);
+emit_32(3276992545);
+emit_32(1100450208);
+emit_32(1131556897);
+emit_32(3276736496);
+emit_32(1099944218);
+emit_32(1131556897);
+emit_32(3276480512);
+emit_32(1099578632);
+emit_32(1131556897);
+emit_32(3276224528);
+emit_32(1098095211);
+emit_32(1131556897);
+emit_32(3275968545);
+emit_32(1096681416);
+emit_32(1131556897);
+emit_32(3275712496);
+emit_32(1095628436);
+emit_32(1131556897);
+emit_32(3275456512);
+emit_32(1094488739);
+emit_32(1131556897);
+emit_32(3275200528);
+emit_32(1095225678);
+emit_32(1131556897);
+emit_32(3274944545);
+emit_32(1095742416);
+emit_32(1131556897);
+emit_32(3274688496);
+emit_32(1096313995);
+emit_32(1131556897);
+emit_32(3274432512);
+emit_32(1096609379);
+emit_32(1131556897);
+emit_32(3274176528);
+emit_32(1096643458);
+emit_32(1131556897);
+emit_32(3273920545);
+emit_32(1096377644);
+emit_32(1131556897);
+emit_32(3273664496);
+emit_32(1096630875);
+emit_32(1131556897);
+emit_32(3273408512);
+emit_32(1096367787);
+emit_32(1131556897);
+emit_32(3273152528);
+emit_32(1095764646);
+emit_32(1131556897);
+emit_32(3272896545);
+emit_32(1095369648);
+emit_32(1131556897);
+emit_32(3272640496);
+emit_32(1095202610);
+emit_32(1131556897);
+emit_32(3272384512);
+emit_32(1095378141);
+emit_32(1131556897);
+emit_32(3272128528);
+emit_32(1094896425);
+emit_32(1131556897);
+emit_32(3271872545);
+emit_32(1094491570);
+emit_32(1131556897);
+emit_32(3271616496);
+emit_32(1094140717);
+emit_32(1131556897);
+emit_32(3271163904);
+emit_32(1093673576);
+emit_32(1131556897);
+emit_32(3270651937);
+emit_32(1092775680);
+emit_32(1131556897);
+emit_32(3270139970);
+emit_32(1093246176);
+emit_32(1131556897);
+emit_32(3269627871);
+emit_32(1092835135);
+emit_32(1131556897);
+emit_32(3269115904);
+emit_32(1093700839);
+emit_32(1131556897);
+emit_32(3268603937);
+emit_32(1093815868);
+emit_32(1131556897);
+emit_32(3268091970);
+emit_32(1095128475);
+emit_32(1131556897);
+emit_32(3267579911);
+emit_32(1096138044);
+emit_32(1131556897);
+emit_32(3267067904);
+emit_32(1097063727);
+emit_32(1131556897);
+emit_32(3266555911);
+emit_32(1096790468);
+emit_32(1131556897);
+emit_32(3266043904);
+emit_32(1096105433);
+emit_32(1131556897);
+emit_32(3265531911);
+emit_32(1094675490);
+emit_32(1131556897);
+emit_32(3265019904);
+emit_32(1094279548);
+emit_32(1131556897);
+emit_32(3264507911);
+emit_32(1094433060);
+emit_32(1131556897);
+emit_32(3263995904);
+emit_32(1094244316);
+emit_32(1131556897);
+emit_32(3263483911);
+emit_32(1095101212);
+emit_32(1131556897);
+emit_32(3262775296);
+emit_32(1093870184);
+emit_32(1131556897);
+emit_32(3261751309);
+emit_32(1092196416);
+emit_32(1131556897);
+emit_32(3260727296);
+emit_32(1090926800);
+emit_32(1131556897);
+emit_32(3259703309);
+emit_32(1089315547);
+emit_32(1131556897);
+emit_32(3258679296);
+emit_32(1090882864);
+emit_32(1131556897);
+emit_32(3257655309);
+emit_32(1092302982);
+emit_32(1131556897);
+emit_32(3256631296);
+emit_32(1091679478);
+emit_32(1131556897);
+emit_32(3255607309);
+emit_32(1090777587);
+emit_32(1131556897);
+emit_32(3254386688);
+emit_32(1090588833);
+emit_32(1131556897);
+emit_32(3252338714);
+emit_32(1088391584);
+emit_32(1131556897);
+emit_32(3250290688);
+emit_32(1088187762);
+emit_32(1131556897);
+emit_32(3248242714);
+emit_32(1086074735);
+emit_32(1131556897);
+emit_32(3245998080);
+emit_32(1083035311);
+emit_32(1131556897);
+emit_32(3241902132);
+emit_32(1080697784);
+emit_32(1131556897);
+emit_32(3237609472);
+emit_32(1077335797);
+emit_32(1131556897);
+emit_32(3229220864);
+emit_32(1072342604);
+emit_32(1131556897);
+emit_32(0);
+emit_32(1073908380);
+emit_32(1131556897);
+emit_32(1081737216);
+emit_32(1074643096);
+emit_32(1131556897);
+emit_32(3279552512);
+emit_32(1085160041);
+emit_32(1131300848);
+emit_32(3279296528);
+emit_32(1090327885);
+emit_32(1131300848);
+emit_32(3279040545);
+emit_32(1093025976);
+emit_32(1131300848);
+emit_32(3278784496);
+emit_32(1095630848);
+emit_32(1131300848);
+emit_32(3278528512);
+emit_32(1097676095);
+emit_32(1131300848);
+emit_32(3278272528);
+emit_32(1099190973);
+emit_32(1131300848);
+emit_32(3278016545);
+emit_32(1099857081);
+emit_32(1131300848);
+emit_32(3277760496);
+emit_32(1100491260);
+emit_32(1131300848);
+emit_32(3277504512);
+emit_32(1100352848);
+emit_32(1131300848);
+emit_32(3277248528);
+emit_32(1100472753);
+emit_32(1131300848);
+emit_32(3276992545);
+emit_32(1100152989);
+emit_32(1131300848);
+emit_32(3276736496);
+emit_32(1099265684);
+emit_32(1131300848);
+emit_32(3276480512);
+emit_32(1098708314);
+emit_32(1131300848);
+emit_32(3276224528);
+emit_32(1096067580);
+emit_32(1131300848);
+emit_32(3275968545);
+emit_32(1096230633);
+emit_32(1131300848);
+emit_32(3275712496);
+emit_32(1096388025);
+emit_32(1131300848);
+emit_32(3275456512);
+emit_32(1094867799);
+emit_32(1131300848);
+emit_32(3275200528);
+emit_32(1096132172);
+emit_32(1131300848);
+emit_32(3274944545);
+emit_32(1097306682);
+emit_32(1131300848);
+emit_32(3274688496);
+emit_32(1097887069);
+emit_32(1131300848);
+emit_32(3274432512);
+emit_32(1097633838);
+emit_32(1131300848);
+emit_32(3274176528);
+emit_32(1098457389);
+emit_32(1131300848);
+emit_32(3273920545);
+emit_32(1097090466);
+emit_32(1131300848);
+emit_32(3273664496);
+emit_32(1096891446);
+emit_32(1131300848);
+emit_32(3273408512);
+emit_32(1095233962);
+emit_32(1131300848);
+emit_32(3273152528);
+emit_32(1094867799);
+emit_32(1131300848);
+emit_32(3272896545);
+emit_32(1094576295);
+emit_32(1131300848);
+emit_32(3272640496);
+emit_32(1093957845);
+emit_32(1131300848);
+emit_32(3272384512);
+emit_32(1093473193);
+emit_32(1131300848);
+emit_32(3272128528);
+emit_32(1093446664);
+emit_32(1131300848);
+emit_32(3271872545);
+emit_32(1093505489);
+emit_32(1131300848);
+emit_32(3271616496);
+emit_32(1092573494);
+emit_32(1131300848);
+emit_32(3271163904);
+emit_32(1092718533);
+emit_32(1131300848);
+emit_32(3270651937);
+emit_32(1091299642);
+emit_32(1131300848);
+emit_32(3270139970);
+emit_32(1091752270);
+emit_32(1131300848);
+emit_32(3269627871);
+emit_32(1092863027);
+emit_32(1131300848);
+emit_32(3269115904);
+emit_32(1093352607);
+emit_32(1131300848);
+emit_32(3268603937);
+emit_32(1094334389);
+emit_32(1131300848);
+emit_32(3268091970);
+emit_32(1095530080);
+emit_32(1131300848);
+emit_32(3267579911);
+emit_32(1096764359);
+emit_32(1131300848);
+emit_32(3267067904);
+emit_32(1096925944);
+emit_32(1131300848);
+emit_32(3266555911);
+emit_32(1096040107);
+emit_32(1131300848);
+emit_32(3266043904);
+emit_32(1094881536);
+emit_32(1131300848);
+emit_32(3265531911);
+emit_32(1094389753);
+emit_32(1131300848);
+emit_32(3265019904);
+emit_32(1094053370);
+emit_32(1131300848);
+emit_32(3264507911);
+emit_32(1094865283);
+emit_32(1131300848);
+emit_32(3263995904);
+emit_32(1095186461);
+emit_32(1131300848);
+emit_32(3263483911);
+emit_32(1095388208);
+emit_32(1131300848);
+emit_32(3262775296);
+emit_32(1094366475);
+emit_32(1131300848);
+emit_32(3261751309);
+emit_32(1093486930);
+emit_32(1131300848);
+emit_32(3260727296);
+emit_32(1091443444);
+emit_32(1131300848);
+emit_32(3259703309);
+emit_32(1090412169);
+emit_32(1131300848);
+emit_32(3258679296);
+emit_32(1091017376);
+emit_32(1131300848);
+emit_32(3257655309);
+emit_32(1091659503);
+emit_32(1131300848);
+emit_32(3256631296);
+emit_32(1091788813);
+emit_32(1131300848);
+emit_32(3255607309);
+emit_32(1091703155);
+emit_32(1131300848);
+emit_32(3254386688);
+emit_32(1091097539);
+emit_32(1131300848);
+emit_32(3252338714);
+emit_32(1090228501);
+emit_32(1131300848);
+emit_32(3250290688);
+emit_32(1089127831);
+emit_32(1131300848);
+emit_32(3248242714);
+emit_32(1087112238);
+emit_32(1131300848);
+emit_32(3245998080);
+emit_32(1085471698);
+emit_32(1131300848);
+emit_32(3241902132);
+emit_32(1083846552);
+emit_32(1131300848);
+emit_32(3237609472);
+emit_32(1082879010);
+emit_32(1131300848);
+emit_32(3229220864);
+emit_32(1080627152);
+emit_32(1131300848);
+emit_32(0);
+emit_32(1080885311);
+emit_32(1131300848);
+emit_32(1081737216);
+emit_32(1078120510);
+emit_32(1131300848);
+emit_32(3279552512);
+emit_32(1086174748);
+emit_32(1131044864);
+emit_32(3279296528);
+emit_32(1090628574);
+emit_32(1131044864);
+emit_32(3279040545);
+emit_32(1092984871);
+emit_32(1131044864);
+emit_32(3278784496);
+emit_32(1095235954);
+emit_32(1131044864);
+emit_32(3278528512);
+emit_32(1097962986);
+emit_32(1131044864);
+emit_32(3278272528);
+emit_32(1098907753);
+emit_32(1131044864);
+emit_32(3278016545);
+emit_32(1099567464);
+emit_32(1131044864);
+emit_32(3277760496);
+emit_32(1100053322);
+emit_32(1131044864);
+emit_32(3277504512);
+emit_32(1100365745);
+emit_32(1131044864);
+emit_32(3277248528);
+emit_32(1100199389);
+emit_32(1131044864);
+emit_32(3276992545);
+emit_32(1100122476);
+emit_32(1131044864);
+emit_32(3276736496);
+emit_32(1098964533);
+emit_32(1131044864);
+emit_32(3276480512);
+emit_32(1098061028);
+emit_32(1131044864);
+emit_32(3276224528);
+emit_32(1096998401);
+emit_32(1131044864);
+emit_32(3275968545);
+emit_32(1096347969);
+emit_32(1131044864);
+emit_32(3275712496);
+emit_32(1096743597);
+emit_32(1131044864);
+emit_32(3275456512);
+emit_32(1096079639);
+emit_32(1131044864);
+emit_32(3275200528);
+emit_32(1096454190);
+emit_32(1131044864);
+emit_32(3274944545);
+emit_32(1097972947);
+emit_32(1131044864);
+emit_32(3274688496);
+emit_32(1098482241);
+emit_32(1131044864);
+emit_32(3274432512);
+emit_32(1098243165);
+emit_32(1131044864);
+emit_32(3274176528);
+emit_32(1097818073);
+emit_32(1131044864);
+emit_32(3273920545);
+emit_32(1097259811);
+emit_32(1131044864);
+emit_32(3273664496);
+emit_32(1096971138);
+emit_32(1131044864);
+emit_32(3273408512);
+emit_32(1095776495);
+emit_32(1131044864);
+emit_32(3273152528);
+emit_32(1094346657);
+emit_32(1131044864);
+emit_32(3272896545);
+emit_32(1094305658);
+emit_32(1131044864);
+emit_32(3272640496);
+emit_32(1093779797);
+emit_32(1131044864);
+emit_32(3272384512);
+emit_32(1093535059);
+emit_32(1131044864);
+emit_32(3272128528);
+emit_32(1092859566);
+emit_32(1131044864);
+emit_32(3271872545);
+emit_32(1092315471);
+emit_32(1131044864);
+emit_32(3271616496);
+emit_32(1091613628);
+emit_32(1131044864);
+emit_32(3271163904);
+emit_32(1092129045);
+emit_32(1131044864);
+emit_32(3270651937);
+emit_32(1090623961);
+emit_32(1131044864);
+emit_32(3270139970);
+emit_32(1091745329);
+emit_32(1131044864);
+emit_32(3269627871);
+emit_32(1092278802);
+emit_32(1131044864);
+emit_32(3269115904);
+emit_32(1092897106);
+emit_32(1131044864);
+emit_32(3268603937);
+emit_32(1093630060);
+emit_32(1131044864);
+emit_32(3268091970);
+emit_32(1095021835);
+emit_32(1131044864);
+emit_32(3267579911);
+emit_32(1096071460);
+emit_32(1131044864);
+emit_32(3267067904);
+emit_32(1095859647);
+emit_32(1131044864);
+emit_32(3266555911);
+emit_32(1095186671);
+emit_32(1131044864);
+emit_32(3266043904);
+emit_32(1094964478);
+emit_32(1131044864);
+emit_32(3265531911);
+emit_32(1094463993);
+emit_32(1131044864);
+emit_32(3265019904);
+emit_32(1094678322);
+emit_32(1131044864);
+emit_32(3264507911);
+emit_32(1094959340);
+emit_32(1131044864);
+emit_32(3263995904);
+emit_32(1095934725);
+emit_32(1131044864);
+emit_32(3263483911);
+emit_32(1096292499);
+emit_32(1131044864);
+emit_32(3262775296);
+emit_32(1095947833);
+emit_32(1131044864);
+emit_32(3261751309);
+emit_32(1094626102);
+emit_32(1131044864);
+emit_32(3260727296);
+emit_32(1092638002);
+emit_32(1131044864);
+emit_32(3259703309);
+emit_32(1091654302);
+emit_32(1131044864);
+emit_32(3258679296);
+emit_32(1090981043);
+emit_32(1131044864);
+emit_32(3257655309);
+emit_32(1091856132);
+emit_32(1131044864);
+emit_32(3256631296);
+emit_32(1092849815);
+emit_32(1131044864);
+emit_32(3255607309);
+emit_32(1092381563);
+emit_32(1131044864);
+emit_32(3254386688);
+emit_32(1091755762);
+emit_32(1131044864);
+emit_32(3252338714);
+emit_32(1091392210);
+emit_32(1131044864);
+emit_32(3250290688);
+emit_32(1090522762);
+emit_32(1131044864);
+emit_32(3248242714);
+emit_32(1089201336);
+emit_32(1131044864);
+emit_32(3245998080);
+emit_32(1088158150);
+emit_32(1131044864);
+emit_32(3241902132);
+emit_32(1086827927);
+emit_32(1131044864);
+emit_32(3237609472);
+emit_32(1085289603);
+emit_32(1131044864);
+emit_32(3229220864);
+emit_32(1084371008);
+emit_32(1131044864);
+emit_32(0);
+emit_32(1084371155);
+emit_32(1131044864);
+emit_32(1081737216);
+emit_32(1084629524);
+emit_32(1131044864);
+emit_32(3279552512);
+emit_32(1084191198);
+emit_32(1130788880);
+emit_32(3279296528);
+emit_32(1090263187);
+emit_32(1130788880);
+emit_32(3279040545);
+emit_32(1093579624);
+emit_32(1130788880);
+emit_32(3278784496);
+emit_32(1095609772);
+emit_32(1130788880);
+emit_32(3278528512);
+emit_32(1097395392);
+emit_32(1130788880);
+emit_32(3278272528);
+emit_32(1098942775);
+emit_32(1130788880);
+emit_32(3278016545);
+emit_32(1099952973);
+emit_32(1130788880);
+emit_32(3277760496);
+emit_32(1100137051);
+emit_32(1130788880);
+emit_32(3277504512);
+emit_32(1100188117);
+emit_32(1130788880);
+emit_32(3277248528);
+emit_32(1100449631);
+emit_32(1130788880);
+emit_32(3276992545);
+emit_32(1099596091);
+emit_32(1130788880);
+emit_32(3276736496);
+emit_32(1098204263);
+emit_32(1130788880);
+emit_32(3276480512);
+emit_32(1098412510);
+emit_32(1130788880);
+emit_32(3276224528);
+emit_32(1097801505);
+emit_32(1130788880);
+emit_32(3275968545);
+emit_32(1096603507);
+emit_32(1130788880);
+emit_32(3275712496);
+emit_32(1095928224);
+emit_32(1130788880);
+emit_32(3275456512);
+emit_32(1096222035);
+emit_32(1130788880);
+emit_32(3275200528);
+emit_32(1097042546);
+emit_32(1130788880);
+emit_32(3274944545);
+emit_32(1097761554);
+emit_32(1130788880);
+emit_32(3274688496);
+emit_32(1098099720);
+emit_32(1130788880);
+emit_32(3274432512);
+emit_32(1097722862);
+emit_32(1130788880);
+emit_32(3274176528);
+emit_32(1096956563);
+emit_32(1130788880);
+emit_32(3273920545);
+emit_32(1096582850);
+emit_32(1130788880);
+emit_32(3273664496);
+emit_32(1095826303);
+emit_32(1130788880);
+emit_32(3273408512);
+emit_32(1095071538);
+emit_32(1130788880);
+emit_32(3273152528);
+emit_32(1094227434);
+emit_32(1130788880);
+emit_32(3272896545);
+emit_32(1094210132);
+emit_32(1130788880);
+emit_32(3272640496);
+emit_32(1093761027);
+emit_32(1130788880);
+emit_32(3272384512);
+emit_32(1093810520);
+emit_32(1130788880);
+emit_32(3272128528);
+emit_32(1092656772);
+emit_32(1130788880);
+emit_32(3271872545);
+emit_32(1091138738);
+emit_32(1130788880);
+emit_32(3271616496);
+emit_32(1089927035);
+emit_32(1130788880);
+emit_32(3271163904);
+emit_32(1089350360);
+emit_32(1130788880);
+emit_32(3270651937);
+emit_32(1090698210);
+emit_32(1130788880);
+emit_32(3270139970);
+emit_32(1090875577);
+emit_32(1130788880);
+emit_32(3269627871);
+emit_32(1091800075);
+emit_32(1130788880);
+emit_32(3269115904);
+emit_32(1092846354);
+emit_32(1130788880);
+emit_32(3268603937);
+emit_32(1094213173);
+emit_32(1130788880);
+emit_32(3268091970);
+emit_32(1095490444);
+emit_32(1130788880);
+emit_32(3267579911);
+emit_32(1095492331);
+emit_32(1130788880);
+emit_32(3267067904);
+emit_32(1095128475);
+emit_32(1130788880);
+emit_32(3266555911);
+emit_32(1094457387);
+emit_32(1130788880);
+emit_32(3266043904);
+emit_32(1093000915);
+emit_32(1130788880);
+emit_32(3265531911);
+emit_32(1092702700);
+emit_32(1130788880);
+emit_32(3265019904);
+emit_32(1094131489);
+emit_32(1130788880);
+emit_32(3264507911);
+emit_32(1094959759);
+emit_32(1130788880);
+emit_32(3263995904);
+emit_32(1096392743);
+emit_32(1130788880);
+emit_32(3263483911);
+emit_32(1097205809);
+emit_32(1130788880);
+emit_32(3262775296);
+emit_32(1096775893);
+emit_32(1130788880);
+emit_32(3261751309);
+emit_32(1095617217);
+emit_32(1130788880);
+emit_32(3260727296);
+emit_32(1094159591);
+emit_32(1130788880);
+emit_32(3259703309);
+emit_32(1092609701);
+emit_32(1130788880);
+emit_32(3258679296);
+emit_32(1091241058);
+emit_32(1130788880);
+emit_32(3257655309);
+emit_32(1092023201);
+emit_32(1130788880);
+emit_32(3256631296);
+emit_32(1093109862);
+emit_32(1130788880);
+emit_32(3255607309);
+emit_32(1093719399);
+emit_32(1130788880);
+emit_32(3254386688);
+emit_32(1093231077);
+emit_32(1130788880);
+emit_32(3252338714);
+emit_32(1093489761);
+emit_32(1130788880);
+emit_32(3250290688);
+emit_32(1092575423);
+emit_32(1130788880);
+emit_32(3248242714);
+emit_32(1091158975);
+emit_32(1130788880);
+emit_32(3245998080);
+emit_32(1089311227);
+emit_32(1130788880);
+emit_32(3241902132);
+emit_32(1087230748);
+emit_32(1130788880);
+emit_32(3237609472);
+emit_32(1087094936);
+emit_32(1130788880);
+emit_32(3229220864);
+emit_32(1087427439);
+emit_32(1130788880);
+emit_32(0);
+emit_32(1086716610);
+emit_32(1130788880);
+emit_32(1081737216);
+emit_32(1086083564);
+emit_32(1130788880);
+emit_32(3279552512);
+emit_32(1084064572);
+emit_32(1130532897);
+emit_32(3279296528);
+emit_32(1091219604);
+emit_32(1130532897);
+emit_32(3279040545);
+emit_32(1094461581);
+emit_32(1130532897);
+emit_32(3278784496);
+emit_32(1096451988);
+emit_32(1130532897);
+emit_32(3278528512);
+emit_32(1098531104);
+emit_32(1130532897);
+emit_32(3278272528);
+emit_32(1099322203);
+emit_32(1130532897);
+emit_32(3278016545);
+emit_32(1099673423);
+emit_32(1130532897);
+emit_32(3277760496);
+emit_32(1100210032);
+emit_32(1130532897);
+emit_32(3277504512);
+emit_32(1100192468);
+emit_32(1130532897);
+emit_32(3277248528);
+emit_32(1099743153);
+emit_32(1130532897);
+emit_32(3276992545);
+emit_32(1099219128);
+emit_32(1130532897);
+emit_32(3276736496);
+emit_32(1097733767);
+emit_32(1130532897);
+emit_32(3276480512);
+emit_32(1098251554);
+emit_32(1130532897);
+emit_32(3276224528);
+emit_32(1098330197);
+emit_32(1130532897);
+emit_32(3275968545);
+emit_32(1097354078);
+emit_32(1130532897);
+emit_32(3275712496);
+emit_32(1095686947);
+emit_32(1130532897);
+emit_32(3275456512);
+emit_32(1096170655);
+emit_32(1130532897);
+emit_32(3275200528);
+emit_32(1096848035);
+emit_32(1130532897);
+emit_32(3274944545);
+emit_32(1098161481);
+emit_32(1130532897);
+emit_32(3274688496);
+emit_32(1097829712);
+emit_32(1130532897);
+emit_32(3274432512);
+emit_32(1097057436);
+emit_32(1130532897);
+emit_32(3274176528);
+emit_32(1096473484);
+emit_32(1130532897);
+emit_32(3273920545);
+emit_32(1095842765);
+emit_32(1130532897);
+emit_32(3273664496);
+emit_32(1095539517);
+emit_32(1130532897);
+emit_32(3273408512);
+emit_32(1095213200);
+emit_32(1130532897);
+emit_32(3273152528);
+emit_32(1094205414);
+emit_32(1130532897);
+emit_32(3272896545);
+emit_32(1093845647);
+emit_32(1130532897);
+emit_32(3272640496);
+emit_32(1093546174);
+emit_32(1130532897);
+emit_32(3272384512);
+emit_32(1092377452);
+emit_32(1130532897);
+emit_32(3272128528);
+emit_32(1091313106);
+emit_32(1130532897);
+emit_32(3271872545);
+emit_32(1087954328);
+emit_32(1130532897);
+emit_32(3271616496);
+emit_32(1087060480);
+emit_32(1130532897);
+emit_32(3271163904);
+emit_32(1087580678);
+emit_32(1130532897);
+emit_32(3270651937);
+emit_32(1090126768);
+emit_32(1130532897);
+emit_32(3270139970);
+emit_32(1090624715);
+emit_32(1130532897);
+emit_32(3269627871);
+emit_32(1091647664);
+emit_32(1130532897);
+emit_32(3269115904);
+emit_32(1092856211);
+emit_32(1130532897);
+emit_32(3268603937);
+emit_32(1094224917);
+emit_32(1130532897);
+emit_32(3268091970);
+emit_32(1095671952);
+emit_32(1130532897);
+emit_32(3267579911);
+emit_32(1095628646);
+emit_32(1130532897);
+emit_32(3267067904);
+emit_32(1095567829);
+emit_32(1130532897);
+emit_32(3266555911);
+emit_32(1093630270);
+emit_32(1130532897);
+emit_32(3266043904);
+emit_32(1092684245);
+emit_32(1130532897);
+emit_32(3265531911);
+emit_32(1091861343);
+emit_32(1130532897);
+emit_32(3265019904);
+emit_32(1092755023);
+emit_32(1130532897);
+emit_32(3264507911);
+emit_32(1094570528);
+emit_32(1130532897);
+emit_32(3263995904);
+emit_32(1095357275);
+emit_32(1130532897);
+emit_32(3263483911);
+emit_32(1096480299);
+emit_32(1130532897);
+emit_32(3262775296);
+emit_32(1096746428);
+emit_32(1130532897);
+emit_32(3261751309);
+emit_32(1096329514);
+emit_32(1130532897);
+emit_32(3260727296);
+emit_32(1095223896);
+emit_32(1130532897);
+emit_32(3259703309);
+emit_32(1093955643);
+emit_32(1130532897);
+emit_32(3258679296);
+emit_32(1093246281);
+emit_32(1130532897);
+emit_32(3257655309);
+emit_32(1094172174);
+emit_32(1130532897);
+emit_32(3256631296);
+emit_32(1095280414);
+emit_32(1130532897);
+emit_32(3255607309);
+emit_32(1095624976);
+emit_32(1130532897);
+emit_32(3254386688);
+emit_32(1095264161);
+emit_32(1130532897);
+emit_32(3252338714);
+emit_32(1094911210);
+emit_32(1130532897);
+emit_32(3250290688);
+emit_32(1094226385);
+emit_32(1130532897);
+emit_32(3248242714);
+emit_32(1092124945);
+emit_32(1130532897);
+emit_32(3245998080);
+emit_32(1090831631);
+emit_32(1130532897);
+emit_32(3241902132);
+emit_32(1089226670);
+emit_32(1130532897);
+emit_32(3237609472);
+emit_32(1089629994);
+emit_32(1130532897);
+emit_32(3229220864);
+emit_32(1089284992);
+emit_32(1130532897);
+emit_32(0);
+emit_32(1088387495);
+emit_32(1130532897);
+emit_32(1081737216);
+emit_32(1088205504);
+emit_32(1130532897);
+emit_32(3279552512);
+emit_32(1083530931);
+emit_32(1130276848);
+emit_32(3279296528);
+emit_32(1090306850);
+emit_32(1130276848);
+emit_32(3279040545);
+emit_32(1093521008);
+emit_32(1130276848);
+emit_32(3278784496);
+emit_32(1096939995);
+emit_32(1130276848);
+emit_32(3278528512);
+emit_32(1098488322);
+emit_32(1130276848);
+emit_32(3278272528);
+emit_32(1099450129);
+emit_32(1130276848);
+emit_32(3278016545);
+emit_32(1099687369);
+emit_32(1130276848);
+emit_32(3277760496);
+emit_32(1099754740);
+emit_32(1130276848);
+emit_32(3277504512);
+emit_32(1099338246);
+emit_32(1130276848);
+emit_32(3277248528);
+emit_32(1099121348);
+emit_32(1130276848);
+emit_32(3276992545);
+emit_32(1097937191);
+emit_32(1130276848);
+emit_32(3276736496);
+emit_32(1097116051);
+emit_32(1130276848);
+emit_32(3276480512);
+emit_32(1097449498);
+emit_32(1130276848);
+emit_32(3276224528);
+emit_32(1097296721);
+emit_32(1130276848);
+emit_32(3275968545);
+emit_32(1096895116);
+emit_32(1130276848);
+emit_32(3275712496);
+emit_32(1095191390);
+emit_32(1130276848);
+emit_32(3275456512);
+emit_32(1095800403);
+emit_32(1130276848);
+emit_32(3275200528);
+emit_32(1096784282);
+emit_32(1130276848);
+emit_32(3274944545);
+emit_32(1097651454);
+emit_32(1130276848);
+emit_32(3274688496);
+emit_32(1097454846);
+emit_32(1130276848);
+emit_32(3274432512);
+emit_32(1096258211);
+emit_32(1130276848);
+emit_32(3274176528);
+emit_32(1096116863);
+emit_32(1130276848);
+emit_32(3273920545);
+emit_32(1096517943);
+emit_32(1130276848);
+emit_32(3273664496);
+emit_32(1095318897);
+emit_32(1130276848);
+emit_32(3273408512);
+emit_32(1094673498);
+emit_32(1130276848);
+emit_32(3273152528);
+emit_32(1093918733);
+emit_32(1130276848);
+emit_32(3272896545);
+emit_32(1093483364);
+emit_32(1130276848);
+emit_32(3272640496);
+emit_32(1092914826);
+emit_32(1130276848);
+emit_32(3272384512);
+emit_32(1091000567);
+emit_32(1130276848);
+emit_32(3272128528);
+emit_32(1089935654);
+emit_32(1130276848);
+emit_32(3271872545);
+emit_32(1086818510);
+emit_32(1130276848);
+emit_32(3271616496);
+emit_32(1085690389);
+emit_32(1130276848);
+emit_32(3271163904);
+emit_32(1086952309);
+emit_32(1130276848);
+emit_32(3270651937);
+emit_32(1088839431);
+emit_32(1130276848);
+emit_32(3270139970);
+emit_32(1089612819);
+emit_32(1130276848);
+emit_32(3269627871);
+emit_32(1091440686);
+emit_32(1130276848);
+emit_32(3269115904);
+emit_32(1092535473);
+emit_32(1130276848);
+emit_32(3268603937);
+emit_32(1092891758);
+emit_32(1130276848);
+emit_32(3268091970);
+emit_32(1094112510);
+emit_32(1130276848);
+emit_32(3267579911);
+emit_32(1095020472);
+emit_32(1130276848);
+emit_32(3267067904);
+emit_32(1094302617);
+emit_32(1130276848);
+emit_32(3266555911);
+emit_32(1094287622);
+emit_32(1130276848);
+emit_32(3266043904);
+emit_32(1092792667);
+emit_32(1130276848);
+emit_32(3265531911);
+emit_32(1093051561);
+emit_32(1130276848);
+emit_32(3265019904);
+emit_32(1093418353);
+emit_32(1130276848);
+emit_32(3264507911);
+emit_32(1094221667);
+emit_32(1130276848);
+emit_32(3263995904);
+emit_32(1095632001);
+emit_32(1130276848);
+emit_32(3263483911);
+emit_32(1097732614);
+emit_32(1130276848);
+emit_32(3262775296);
+emit_32(1098628832);
+emit_32(1130276848);
+emit_32(3261751309);
+emit_32(1097948306);
+emit_32(1130276848);
+emit_32(3260727296);
+emit_32(1097305319);
+emit_32(1130276848);
+emit_32(3259703309);
+emit_32(1096485333);
+emit_32(1130276848);
+emit_32(3258679296);
+emit_32(1095850210);
+emit_32(1130276848);
+emit_32(3257655309);
+emit_32(1095872964);
+emit_32(1130276848);
+emit_32(3256631296);
+emit_32(1096804414);
+emit_32(1130276848);
+emit_32(3255607309);
+emit_32(1096692741);
+emit_32(1130276848);
+emit_32(3254386688);
+emit_32(1096946077);
+emit_32(1130276848);
+emit_32(3252338714);
+emit_32(1096420006);
+emit_32(1130276848);
+emit_32(3250290688);
+emit_32(1094944660);
+emit_32(1130276848);
+emit_32(3248242714);
+emit_32(1093505489);
+emit_32(1130276848);
+emit_32(3245998080);
+emit_32(1092313867);
+emit_32(1130276848);
+emit_32(3241902132);
+emit_32(1091062559);
+emit_32(1130276848);
+emit_32(3237609472);
+emit_32(1091612432);
+emit_32(1130276848);
+emit_32(3229220864);
+emit_32(1091011671);
+emit_32(1130276848);
+emit_32(0);
+emit_32(1090792142);
+emit_32(1130276848);
+emit_32(1081737216);
+emit_32(1088030748);
+emit_32(1130276848);
+emit_32(3279552512);
+emit_32(1084583764);
+emit_32(1130020864);
+emit_32(3279296528);
+emit_32(1087682243);
+emit_32(1130020864);
+emit_32(3279040545);
+emit_32(1092094075);
+emit_32(1130020864);
+emit_32(3278784496);
+emit_32(1095249691);
+emit_32(1130020864);
+emit_32(3278528512);
+emit_32(1098698877);
+emit_32(1130020864);
+emit_32(3278272528);
+emit_32(1099753796);
+emit_32(1130020864);
+emit_32(3278016545);
+emit_32(1100023333);
+emit_32(1130020864);
+emit_32(3277760496);
+emit_32(1099595042);
+emit_32(1130020864);
+emit_32(3277504512);
+emit_32(1099115371);
+emit_32(1130020864);
+emit_32(3277248528);
+emit_32(1098920493);
+emit_32(1130020864);
+emit_32(3276992545);
+emit_32(1097370855);
+emit_32(1130020864);
+emit_32(3276736496);
+emit_32(1096229480);
+emit_32(1130020864);
+emit_32(3276480512);
+emit_32(1096179987);
+emit_32(1130020864);
+emit_32(3276224528);
+emit_32(1096332765);
+emit_32(1130020864);
+emit_32(3275968545);
+emit_32(1094920228);
+emit_32(1130020864);
+emit_32(3275712496);
+emit_32(1094538966);
+emit_32(1130020864);
+emit_32(3275456512);
+emit_32(1096079324);
+emit_32(1130020864);
+emit_32(3275200528);
+emit_32(1096062022);
+emit_32(1130020864);
+emit_32(3274944545);
+emit_32(1097415524);
+emit_32(1130020864);
+emit_32(3274688496);
+emit_32(1097262642);
+emit_32(1130020864);
+emit_32(3274432512);
+emit_32(1096083309);
+emit_32(1130020864);
+emit_32(3274176528);
+emit_32(1097096338);
+emit_32(1130020864);
+emit_32(3273920545);
+emit_32(1097389520);
+emit_32(1130020864);
+emit_32(3273664496);
+emit_32(1096628987);
+emit_32(1130020864);
+emit_32(3273408512);
+emit_32(1095157311);
+emit_32(1130020864);
+emit_32(3273152528);
+emit_32(1093144150);
+emit_32(1130020864);
+emit_32(3272896545);
+emit_32(1092252305);
+emit_32(1130020864);
+emit_32(3272640496);
+emit_32(1090906174);
+emit_32(1130020864);
+emit_32(3272384512);
+emit_32(1089256785);
+emit_32(1130020864);
+emit_32(3272128528);
+emit_32(1086933413);
+emit_32(1130020864);
+emit_32(3271872545);
+emit_32(1085005690);
+emit_32(1130020864);
+emit_32(3271616496);
+emit_32(1084837205);
+emit_32(1130020864);
+emit_32(3271163904);
+emit_32(1085479500);
+emit_32(1130020864);
+emit_32(3270651937);
+emit_32(1086647781);
+emit_32(1130020864);
+emit_32(3270139970);
+emit_32(1088754391);
+emit_32(1130020864);
+emit_32(3269627871);
+emit_32(1090605474);
+emit_32(1130020864);
+emit_32(3269115904);
+emit_32(1091545984);
+emit_32(1130020864);
+emit_32(3268603937);
+emit_32(1092272018);
+emit_32(1130020864);
+emit_32(3268091970);
+emit_32(1093427580);
+emit_32(1130020864);
+emit_32(3267579911);
+emit_32(1094111042);
+emit_32(1130020864);
+emit_32(3267067904);
+emit_32(1094388915);
+emit_32(1130020864);
+emit_32(3266555911);
+emit_32(1094139458);
+emit_32(1130020864);
+emit_32(3266043904);
+emit_32(1094235718);
+emit_32(1130020864);
+emit_32(3265531911);
+emit_32(1094648752);
+emit_32(1130020864);
+emit_32(3265019904);
+emit_32(1095187300);
+emit_32(1130020864);
+emit_32(3264507911);
+emit_32(1096097674);
+emit_32(1130020864);
+emit_32(3263995904);
+emit_32(1097057016);
+emit_32(1130020864);
+emit_32(3263483911);
+emit_32(1097881092);
+emit_32(1130020864);
+emit_32(3262775296);
+emit_32(1098962856);
+emit_32(1130020864);
+emit_32(3261751309);
+emit_32(1098940835);
+emit_32(1130020864);
+emit_32(3260727296);
+emit_32(1098504366);
+emit_32(1130020864);
+emit_32(3259703309);
+emit_32(1098210030);
+emit_32(1130020864);
+emit_32(3258679296);
+emit_32(1097752537);
+emit_32(1130020864);
+emit_32(3257655309);
+emit_32(1096972082);
+emit_32(1130020864);
+emit_32(3256631296);
+emit_32(1097685323);
+emit_32(1130020864);
+emit_32(3255607309);
+emit_32(1097690566);
+emit_32(1130020864);
+emit_32(3254386688);
+emit_32(1097717514);
+emit_32(1130020864);
+emit_32(3252338714);
+emit_32(1096801373);
+emit_32(1130020864);
+emit_32(3250290688);
+emit_32(1096574462);
+emit_32(1130020864);
+emit_32(3248242714);
+emit_32(1095368389);
+emit_32(1130020864);
+emit_32(3245998080);
+emit_32(1094028204);
+emit_32(1130020864);
+emit_32(3241902132);
+emit_32(1093145513);
+emit_32(1130020864);
+emit_32(3237609472);
+emit_32(1092561058);
+emit_32(1130020864);
+emit_32(3229220864);
+emit_32(1091353465);
+emit_32(1130020864);
+emit_32(0);
+emit_32(1090850872);
+emit_32(1130020864);
+emit_32(1081737216);
+emit_32(1090545737);
+emit_32(1130020864);
+emit_32(3279552512);
+emit_32(1083020778);
+emit_32(1129764880);
+emit_32(3279296528);
+emit_32(1086653695);
+emit_32(1129764880);
+emit_32(3279040545);
+emit_32(1091034835);
+emit_32(1129764880);
+emit_32(3278784496);
+emit_32(1094988805);
+emit_32(1129764880);
+emit_32(3278528512);
+emit_32(1098825335);
+emit_32(1129764880);
+emit_32(3278272528);
+emit_32(1099793485);
+emit_32(1129764880);
+emit_32(3278016545);
+emit_32(1100052431);
+emit_32(1129764880);
+emit_32(3277760496);
+emit_32(1099921673);
+emit_32(1129764880);
+emit_32(3277504512);
+emit_32(1099421608);
+emit_32(1129764880);
+emit_32(3277248528);
+emit_32(1098552915);
+emit_32(1129764880);
+emit_32(3276992545);
+emit_32(1097228773);
+emit_32(1129764880);
+emit_32(3276736496);
+emit_32(1095528822);
+emit_32(1129764880);
+emit_32(3276480512);
+emit_32(1095513932);
+emit_32(1129764880);
+emit_32(3276224528);
+emit_32(1095608094);
+emit_32(1129764880);
+emit_32(3275968545);
+emit_32(1094888666);
+emit_32(1129764880);
+emit_32(3275712496);
+emit_32(1094960493);
+emit_32(1129764880);
+emit_32(3275456512);
+emit_32(1095322147);
+emit_32(1129764880);
+emit_32(3275200528);
+emit_32(1095300232);
+emit_32(1129764880);
+emit_32(3274944545);
+emit_32(1096422103);
+emit_32(1129764880);
+emit_32(3274688496);
+emit_32(1096640836);
+emit_32(1129764880);
+emit_32(3274432512);
+emit_32(1097230031);
+emit_32(1129764880);
+emit_32(3274176528);
+emit_32(1097125279);
+emit_32(1129764880);
+emit_32(3273920545);
+emit_32(1097162084);
+emit_32(1129764880);
+emit_32(3273664496);
+emit_32(1096846777);
+emit_32(1129764880);
+emit_32(3273408512);
+emit_32(1095743360);
+emit_32(1129764880);
+emit_32(3273152528);
+emit_32(1093469838);
+emit_32(1129764880);
+emit_32(3272896545);
+emit_32(1092165598);
+emit_32(1129764880);
+emit_32(3272640496);
+emit_32(1090712261);
+emit_32(1129764880);
+emit_32(3272384512);
+emit_32(1088210873);
+emit_32(1129764880);
+emit_32(3272128528);
+emit_32(1085889095);
+emit_32(1129764880);
+emit_32(3271872545);
+emit_32(1083392330);
+emit_32(1129764880);
+emit_32(3271616496);
+emit_32(1083388073);
+emit_32(1129764880);
+emit_32(3271163904);
+emit_32(1084653180);
+emit_32(1129764880);
+emit_32(3270651937);
+emit_32(1086692618);
+emit_32(1129764880);
+emit_32(3270139970);
+emit_32(1088701795);
+emit_32(1129764880);
+emit_32(3269627871);
+emit_32(1090628616);
+emit_32(1129764880);
+emit_32(3269115904);
+emit_32(1091284553);
+emit_32(1129764880);
+emit_32(3268603937);
+emit_32(1092579376);
+emit_32(1129764880);
+emit_32(3268091970);
+emit_32(1093773715);
+emit_32(1129764880);
+emit_32(3267579911);
+emit_32(1094376856);
+emit_32(1129764880);
+emit_32(3267067904);
+emit_32(1094634281);
+emit_32(1129764880);
+emit_32(3266555911);
+emit_32(1094720789);
+emit_32(1129764880);
+emit_32(3266043904);
+emit_32(1095562586);
+emit_32(1129764880);
+emit_32(3265531911);
+emit_32(1096146957);
+emit_32(1129764880);
+emit_32(3265019904);
+emit_32(1096371248);
+emit_32(1129764880);
+emit_32(3264507911);
+emit_32(1097603115);
+emit_32(1129764880);
+emit_32(3263995904);
+emit_32(1098307233);
+emit_32(1129764880);
+emit_32(3263483911);
+emit_32(1098369729);
+emit_32(1129764880);
+emit_32(3262775296);
+emit_32(1099083075);
+emit_32(1129764880);
+emit_32(3261751309);
+emit_32(1099129946);
+emit_32(1129764880);
+emit_32(3260727296);
+emit_32(1099485099);
+emit_32(1129764880);
+emit_32(3259703309);
+emit_32(1099764335);
+emit_32(1129764880);
+emit_32(3258679296);
+emit_32(1099176713);
+emit_32(1129764880);
+emit_32(3257655309);
+emit_32(1098040266);
+emit_32(1129764880);
+emit_32(3256631296);
+emit_32(1098351798);
+emit_32(1129764880);
+emit_32(3255607309);
+emit_32(1098988388);
+emit_32(1129764880);
+emit_32(3254386688);
+emit_32(1098753193);
+emit_32(1129764880);
+emit_32(3252338714);
+emit_32(1098284479);
+emit_32(1129764880);
+emit_32(3250290688);
+emit_32(1097489554);
+emit_32(1129764880);
+emit_32(3248242714);
+emit_32(1095940702);
+emit_32(1129764880);
+emit_32(3245998080);
+emit_32(1094687549);
+emit_32(1129764880);
+emit_32(3241902132);
+emit_32(1094446272);
+emit_32(1129764880);
+emit_32(3237609472);
+emit_32(1093495318);
+emit_32(1129764880);
+emit_32(3229220864);
+emit_32(1092748208);
+emit_32(1129764880);
+emit_32(0);
+emit_32(1092091118);
+emit_32(1129764880);
+emit_32(1081737216);
+emit_32(1091835139);
+emit_32(1129764880);
+emit_32(3279552512);
+emit_32(1080463993);
+emit_32(1129508897);
+emit_32(3279296528);
+emit_32(1085016910);
+emit_32(1129508897);
+emit_32(3279040545);
+emit_32(1089825176);
+emit_32(1129508897);
+emit_32(3278784496);
+emit_32(1094698979);
+emit_32(1129508897);
+emit_32(3278528512);
+emit_32(1097809265);
+emit_32(1129508897);
+emit_32(3278272528);
+emit_32(1099171575);
+emit_32(1129508897);
+emit_32(3278016545);
+emit_32(1099886127);
+emit_32(1129508897);
+emit_32(3277760496);
+emit_32(1099484470);
+emit_32(1129508897);
+emit_32(3277504512);
+emit_32(1098929301);
+emit_32(1129508897);
+emit_32(3277248528);
+emit_32(1097703463);
+emit_32(1129508897);
+emit_32(3276992545);
+emit_32(1096695572);
+emit_32(1129508897);
+emit_32(3276736496);
+emit_32(1094705899);
+emit_32(1129508897);
+emit_32(3276480512);
+emit_32(1094521559);
+emit_32(1129508897);
+emit_32(3276224528);
+emit_32(1094382938);
+emit_32(1129508897);
+emit_32(3275968545);
+emit_32(1093723488);
+emit_32(1129508897);
+emit_32(3275712496);
+emit_32(1094327258);
+emit_32(1129508897);
+emit_32(3275456512);
+emit_32(1094643404);
+emit_32(1129508897);
+emit_32(3275200528);
+emit_32(1095341441);
+emit_32(1129508897);
+emit_32(3274944545);
+emit_32(1096856319);
+emit_32(1129508897);
+emit_32(3274688496);
+emit_32(1097642751);
+emit_32(1129508897);
+emit_32(3274432512);
+emit_32(1097737857);
+emit_32(1129508897);
+emit_32(3274176528);
+emit_32(1097157784);
+emit_32(1129508897);
+emit_32(3273920545);
+emit_32(1096063805);
+emit_32(1129508897);
+emit_32(3273664496);
+emit_32(1095072272);
+emit_32(1129508897);
+emit_32(3273408512);
+emit_32(1094164729);
+emit_32(1129508897);
+emit_32(3273152528);
+emit_32(1092558321);
+emit_32(1129508897);
+emit_32(3272896545);
+emit_32(1090029460);
+emit_32(1129508897);
+emit_32(3272640496);
+emit_32(1087566627);
+emit_32(1129508897);
+emit_32(3272384512);
+emit_32(1087370124);
+emit_32(1129508897);
+emit_32(3272128528);
+emit_32(1084743064);
+emit_32(1129508897);
+emit_32(3271872545);
+emit_32(1082700102);
+emit_32(1129508897);
+emit_32(3271616496);
+emit_32(1083566646);
+emit_32(1129508897);
+emit_32(3271163904);
+emit_32(1084803462);
+emit_32(1129508897);
+emit_32(3270651937);
+emit_32(1086593633);
+emit_32(1129508897);
+emit_32(3270139970);
+emit_32(1090542266);
+emit_32(1129508897);
+emit_32(3269627871);
+emit_32(1091515565);
+emit_32(1129508897);
+emit_32(3269115904);
+emit_32(1092537947);
+emit_32(1129508897);
+emit_32(3268603937);
+emit_32(1093041704);
+emit_32(1129508897);
+emit_32(3268091970);
+emit_32(1093964870);
+emit_32(1129508897);
+emit_32(3267579911);
+emit_32(1094427502);
+emit_32(1129508897);
+emit_32(3267067904);
+emit_32(1095046267);
+emit_32(1129508897);
+emit_32(3266555911);
+emit_32(1095386844);
+emit_32(1129508897);
+emit_32(3266043904);
+emit_32(1095993865);
+emit_32(1129508897);
+emit_32(3265531911);
+emit_32(1096745379);
+emit_32(1129508897);
+emit_32(3265019904);
+emit_32(1098208458);
+emit_32(1129508897);
+emit_32(3264507911);
+emit_32(1099059325);
+emit_32(1129508897);
+emit_32(3263995904);
+emit_32(1098961755);
+emit_32(1129508897);
+emit_32(3263483911);
+emit_32(1099315859);
+emit_32(1129508897);
+emit_32(3262775296);
+emit_32(1099329071);
+emit_32(1129508897);
+emit_32(3261751309);
+emit_32(1098988231);
+emit_32(1129508897);
+emit_32(3260727296);
+emit_32(1099657694);
+emit_32(1129508897);
+emit_32(3259703309);
+emit_32(1099596038);
+emit_32(1129508897);
+emit_32(3258679296);
+emit_32(1099042285);
+emit_32(1129508897);
+emit_32(3257655309);
+emit_32(1098921594);
+emit_32(1129508897);
+emit_32(3256631296);
+emit_32(1099409339);
+emit_32(1129508897);
+emit_32(3255607309);
+emit_32(1099994654);
+emit_32(1129508897);
+emit_32(3254386688);
+emit_32(1099682493);
+emit_32(1129508897);
+emit_32(3252338714);
+emit_32(1099586024);
+emit_32(1129508897);
+emit_32(3250290688);
+emit_32(1098985085);
+emit_32(1129508897);
+emit_32(3248242714);
+emit_32(1098287940);
+emit_32(1129508897);
+emit_32(3245998080);
+emit_32(1096812488);
+emit_32(1129508897);
+emit_32(3241902132);
+emit_32(1096132172);
+emit_32(1129508897);
+emit_32(3237609472);
+emit_32(1095219072);
+emit_32(1129508897);
+emit_32(3229220864);
+emit_32(1094487061);
+emit_32(1129508897);
+emit_32(0);
+emit_32(1093746137);
+emit_32(1129508897);
+emit_32(1081737216);
+emit_32(1093216816);
+emit_32(1129508897);
+emit_32(3279552512);
+emit_32(1080029128);
+emit_32(1129252848);
+emit_32(3279296528);
+emit_32(1082132361);
+emit_32(1129252848);
+emit_32(3279040545);
+emit_32(1088551786);
+emit_32(1129252848);
+emit_32(3278784496);
+emit_32(1092773688);
+emit_32(1129252848);
+emit_32(3278528512);
+emit_32(1095789393);
+emit_32(1129252848);
+emit_32(3278272528);
+emit_32(1098426352);
+emit_32(1129252848);
+emit_32(3278016545);
+emit_32(1099118884);
+emit_32(1129252848);
+emit_32(3277760496);
+emit_32(1098946498);
+emit_32(1129252848);
+emit_32(3277504512);
+emit_32(1098247674);
+emit_32(1129252848);
+emit_32(3277248528);
+emit_32(1097180538);
+emit_32(1129252848);
+emit_32(3276992545);
+emit_32(1095903583);
+emit_32(1129252848);
+emit_32(3276736496);
+emit_32(1093972944);
+emit_32(1129252848);
+emit_32(3276480512);
+emit_32(1094119535);
+emit_32(1129252848);
+emit_32(3276224528);
+emit_32(1094115656);
+emit_32(1129252848);
+emit_32(3275968545);
+emit_32(1093250371);
+emit_32(1129252848);
+emit_32(3275712496);
+emit_32(1093516919);
+emit_32(1129252848);
+emit_32(3275456512);
+emit_32(1094550500);
+emit_32(1129252848);
+emit_32(3275200528);
+emit_32(1095584186);
+emit_32(1129252848);
+emit_32(3274944545);
+emit_32(1097766378);
+emit_32(1129252848);
+emit_32(3274688496);
+emit_32(1097882665);
+emit_32(1129252848);
+emit_32(3274432512);
+emit_32(1097698640);
+emit_32(1129252848);
+emit_32(3274176528);
+emit_32(1096544577);
+emit_32(1129252848);
+emit_32(3273920545);
+emit_32(1095417568);
+emit_32(1129252848);
+emit_32(3273664496);
+emit_32(1093038558);
+emit_32(1129252848);
+emit_32(3273408512);
+emit_32(1092208883);
+emit_32(1129252848);
+emit_32(3273152528);
+emit_32(1091657217);
+emit_32(1129252848);
+emit_32(3272896545);
+emit_32(1088339847);
+emit_32(1129252848);
+emit_32(3272640496);
+emit_32(1087749541);
+emit_32(1129252848);
+emit_32(3272384512);
+emit_32(1086492760);
+emit_32(1129252848);
+emit_32(3272128528);
+emit_32(1084289744);
+emit_32(1129252848);
+emit_32(3271872545);
+emit_32(1084101671);
+emit_32(1129252848);
+emit_32(3271616496);
+emit_32(1084133212);
+emit_32(1129252848);
+emit_32(3271163904);
+emit_32(1084719282);
+emit_32(1129252848);
+emit_32(3270651937);
+emit_32(1088718929);
+emit_32(1129252848);
+emit_32(3270139970);
+emit_32(1091794685);
+emit_32(1129252848);
+emit_32(3269627871);
+emit_32(1093539149);
+emit_32(1129252848);
+emit_32(3269115904);
+emit_32(1093719084);
+emit_32(1129252848);
+emit_32(3268603937);
+emit_32(1094263190);
+emit_32(1129252848);
+emit_32(3268091970);
+emit_32(1095010510);
+emit_32(1129252848);
+emit_32(3267579911);
+emit_32(1095499566);
+emit_32(1129252848);
+emit_32(3267067904);
+emit_32(1095406243);
+emit_32(1129252848);
+emit_32(3266555911);
+emit_32(1095095969);
+emit_32(1129252848);
+emit_32(3266043904);
+emit_32(1095937871);
+emit_32(1129252848);
+emit_32(3265531911);
+emit_32(1096329200);
+emit_32(1129252848);
+emit_32(3265019904);
+emit_32(1097172045);
+emit_32(1129252848);
+emit_32(3264507911);
+emit_32(1098488847);
+emit_32(1129252848);
+emit_32(3263995904);
+emit_32(1099439328);
+emit_32(1129252848);
+emit_32(3263483911);
+emit_32(1099647261);
+emit_32(1129252848);
+emit_32(3262775296);
+emit_32(1099958583);
+emit_32(1129252848);
+emit_32(3261751309);
+emit_32(1099777022);
+emit_32(1129252848);
+emit_32(3260727296);
+emit_32(1099447507);
+emit_32(1129252848);
+emit_32(3259703309);
+emit_32(1099254674);
+emit_32(1129252848);
+emit_32(3258679296);
+emit_32(1099498363);
+emit_32(1129252848);
+emit_32(3257655309);
+emit_32(1099988625);
+emit_32(1129252848);
+emit_32(3256631296);
+emit_32(1100359821);
+emit_32(1129252848);
+emit_32(3255607309);
+emit_32(1100639581);
+emit_32(1129252848);
+emit_32(3254386688);
+emit_32(1100562616);
+emit_32(1129252848);
+emit_32(3252338714);
+emit_32(1100538551);
+emit_32(1129252848);
+emit_32(3250290688);
+emit_32(1099604846);
+emit_32(1129252848);
+emit_32(3248242714);
+emit_32(1098614466);
+emit_32(1129252848);
+emit_32(3245998080);
+emit_32(1097631216);
+emit_32(1129252848);
+emit_32(3241902132);
+emit_32(1097023042);
+emit_32(1129252848);
+emit_32(3237609472);
+emit_32(1096365690);
+emit_32(1129252848);
+emit_32(3229220864);
+emit_32(1095964819);
+emit_32(1129252848);
+emit_32(0);
+emit_32(1094558784);
+emit_32(1129252848);
+emit_32(1081737216);
+emit_32(1093092141);
+emit_32(1129252848);
+emit_32(3279552512);
+emit_32(1081540755);
+emit_32(1128996864);
+emit_32(3279296528);
+emit_32(1081307971);
+emit_32(1128996864);
+emit_32(3279040545);
+emit_32(1088074180);
+emit_32(1128996864);
+emit_32(3278784496);
+emit_32(1092649012);
+emit_32(1128996864);
+emit_32(3278528512);
+emit_32(1095750805);
+emit_32(1128996864);
+emit_32(3278272528);
+emit_32(1098025586);
+emit_32(1128996864);
+emit_32(3278016545);
+emit_32(1098512754);
+emit_32(1128996864);
+emit_32(3277760496);
+emit_32(1097976513);
+emit_32(1128996864);
+emit_32(3277504512);
+emit_32(1097395287);
+emit_32(1128996864);
+emit_32(3277248528);
+emit_32(1096884211);
+emit_32(1128996864);
+emit_32(3276992545);
+emit_32(1096131333);
+emit_32(1128996864);
+emit_32(3276736496);
+emit_32(1094845884);
+emit_32(1128996864);
+emit_32(3276480512);
+emit_32(1093703565);
+emit_32(1128996864);
+emit_32(3276224528);
+emit_32(1092970506);
+emit_32(1128996864);
+emit_32(3275968545);
+emit_32(1093979341);
+emit_32(1128996864);
+emit_32(3275712496);
+emit_32(1093333942);
+emit_32(1128996864);
+emit_32(3275456512);
+emit_32(1094401183);
+emit_32(1128996864);
+emit_32(3275200528);
+emit_32(1095977612);
+emit_32(1128996864);
+emit_32(3274944545);
+emit_32(1096785330);
+emit_32(1128996864);
+emit_32(3274688496);
+emit_32(1097852781);
+emit_32(1128996864);
+emit_32(3274432512);
+emit_32(1097488400);
+emit_32(1128996864);
+emit_32(3274176528);
+emit_32(1096273520);
+emit_32(1128996864);
+emit_32(3273920545);
+emit_32(1094778041);
+emit_32(1128996864);
+emit_32(3273664496);
+emit_32(1093292943);
+emit_32(1128996864);
+emit_32(3273408512);
+emit_32(1092898574);
+emit_32(1128996864);
+emit_32(3273152528);
+emit_32(1090867996);
+emit_32(1128996864);
+emit_32(3272896545);
+emit_32(1089691860);
+emit_32(1128996864);
+emit_32(3272640496);
+emit_32(1086739427);
+emit_32(1128996864);
+emit_32(3272384512);
+emit_32(1085853087);
+emit_32(1128996864);
+emit_32(3272128528);
+emit_32(1084833724);
+emit_32(1128996864);
+emit_32(3271872545);
+emit_32(1084451895);
+emit_32(1128996864);
+emit_32(3271616496);
+emit_32(1085526644);
+emit_32(1128996864);
+emit_32(3271163904);
+emit_32(1089112459);
+emit_32(1128996864);
+emit_32(3270651937);
+emit_32(1091663645);
+emit_32(1128996864);
+emit_32(3270139970);
+emit_32(1093345162);
+emit_32(1128996864);
+emit_32(3269627871);
+emit_32(1094246728);
+emit_32(1128996864);
+emit_32(3269115904);
+emit_32(1095325398);
+emit_32(1128996864);
+emit_32(3268603937);
+emit_32(1096227907);
+emit_32(1128996864);
+emit_32(3268091970);
+emit_32(1097145097);
+emit_32(1128996864);
+emit_32(3267579911);
+emit_32(1097392036);
+emit_32(1128996864);
+emit_32(3267067904);
+emit_32(1096728288);
+emit_32(1128996864);
+emit_32(3266555911);
+emit_32(1095835320);
+emit_32(1128996864);
+emit_32(3266043904);
+emit_32(1095814034);
+emit_32(1128996864);
+emit_32(3265531911);
+emit_32(1096693475);
+emit_32(1128996864);
+emit_32(3265019904);
+emit_32(1097025244);
+emit_32(1128996864);
+emit_32(3264507911);
+emit_32(1099054920);
+emit_32(1128996864);
+emit_32(3263995904);
+emit_32(1099511523);
+emit_32(1128996864);
+emit_32(3263483911);
+emit_32(1100212234);
+emit_32(1128996864);
+emit_32(3262775296);
+emit_32(1100597481);
+emit_32(1128996864);
+emit_32(3261751309);
+emit_32(1100490945);
+emit_32(1128996864);
+emit_32(3260727296);
+emit_32(1100197711);
+emit_32(1128996864);
+emit_32(3259703309);
+emit_32(1099593207);
+emit_32(1128996864);
+emit_32(3258679296);
+emit_32(1099432565);
+emit_32(1128996864);
+emit_32(3257655309);
+emit_32(1100182245);
+emit_32(1128996864);
+emit_32(3256631296);
+emit_32(1100992112);
+emit_32(1128996864);
+emit_32(3255607309);
+emit_32(1101070441);
+emit_32(1128996864);
+emit_32(3254386688);
+emit_32(1101070860);
+emit_32(1128996864);
+emit_32(3252338714);
+emit_32(1100442554);
+emit_32(1128996864);
+emit_32(3250290688);
+emit_32(1100162689);
+emit_32(1128996864);
+emit_32(3248242714);
+emit_32(1099264741);
+emit_32(1128996864);
+emit_32(3245998080);
+emit_32(1098634809);
+emit_32(1128996864);
+emit_32(3241902132);
+emit_32(1097542192);
+emit_32(1128996864);
+emit_32(3237609472);
+emit_32(1097603953);
+emit_32(1128996864);
+emit_32(3229220864);
+emit_32(1097205809);
+emit_32(1128996864);
+emit_32(0);
+emit_32(1095764961);
+emit_32(1128996864);
+emit_32(1081737216);
+emit_32(1094158228);
+emit_32(1128996864);
+emit_32(3279552512);
+emit_32(1083563940);
+emit_32(1128740880);
+emit_32(3279296528);
+emit_32(1083505514);
+emit_32(1128740880);
+emit_32(3279040545);
+emit_32(1087057166);
+emit_32(1128740880);
+emit_32(3278784496);
+emit_32(1091606046);
+emit_32(1128740880);
+emit_32(3278528512);
+emit_32(1094145750);
+emit_32(1128740880);
+emit_32(3278272528);
+emit_32(1096803366);
+emit_32(1128740880);
+emit_32(3278016545);
+emit_32(1097677459);
+emit_32(1128740880);
+emit_32(3277760496);
+emit_32(1096868377);
+emit_32(1128740880);
+emit_32(3277504512);
+emit_32(1097277637);
+emit_32(1128740880);
+emit_32(3277248528);
+emit_32(1097130626);
+emit_32(1128740880);
+emit_32(3276992545);
+emit_32(1095319526);
+emit_32(1128740880);
+emit_32(3276736496);
+emit_32(1094270635);
+emit_32(1128740880);
+emit_32(3276480512);
+emit_32(1092528657);
+emit_32(1128740880);
+emit_32(3276224528);
+emit_32(1091786055);
+emit_32(1128740880);
+emit_32(3275968545);
+emit_32(1092729228);
+emit_32(1128740880);
+emit_32(3275712496);
+emit_32(1093207379);
+emit_32(1128740880);
+emit_32(3275456512);
+emit_32(1094361966);
+emit_32(1128740880);
+emit_32(3275200528);
+emit_32(1096155975);
+emit_32(1128740880);
+emit_32(3274944545);
+emit_32(1098072457);
+emit_32(1128740880);
+emit_32(3274688496);
+emit_32(1097534957);
+emit_32(1128740880);
+emit_32(3274432512);
+emit_32(1096843212);
+emit_32(1128740880);
+emit_32(3274176528);
+emit_32(1095427215);
+emit_32(1128740880);
+emit_32(3273920545);
+emit_32(1095393870);
+emit_32(1128740880);
+emit_32(3273664496);
+emit_32(1094328831);
+emit_32(1128740880);
+emit_32(3273408512);
+emit_32(1093549005);
+emit_32(1128740880);
+emit_32(3273152528);
+emit_32(1091282907);
+emit_32(1128740880);
+emit_32(3272896545);
+emit_32(1089591113);
+emit_32(1128740880);
+emit_32(3272640496);
+emit_32(1087793476);
+emit_32(1128740880);
+emit_32(3272384512);
+emit_32(1084819170);
+emit_32(1128740880);
+emit_32(3272128528);
+emit_32(1085220523);
+emit_32(1128740880);
+emit_32(3271872545);
+emit_32(1088960395);
+emit_32(1128740880);
+emit_32(3271616496);
+emit_32(1091632869);
+emit_32(1128740880);
+emit_32(3271163904);
+emit_32(1092528154);
+emit_32(1128740880);
+emit_32(3270651937);
+emit_32(1093541036);
+emit_32(1128740880);
+emit_32(3270139970);
+emit_32(1094536554);
+emit_32(1128740880);
+emit_32(3269627871);
+emit_32(1095733504);
+emit_32(1128740880);
+emit_32(3269115904);
+emit_32(1096930453);
+emit_32(1128740880);
+emit_32(3268603937);
+emit_32(1097898289);
+emit_32(1128740880);
+emit_32(3268091970);
+emit_32(1098312162);
+emit_32(1128740880);
+emit_32(3267579911);
+emit_32(1098889088);
+emit_32(1128740880);
+emit_32(3267067904);
+emit_32(1098348023);
+emit_32(1128740880);
+emit_32(3266555911);
+emit_32(1097239783);
+emit_32(1128740880);
+emit_32(3266043904);
+emit_32(1096978163);
+emit_32(1128740880);
+emit_32(3265531911);
+emit_32(1097254987);
+emit_32(1128740880);
+emit_32(3265019904);
+emit_32(1097619682);
+emit_32(1128740880);
+emit_32(3264507911);
+emit_32(1098276300);
+emit_32(1128740880);
+emit_32(3263995904);
+emit_32(1099118097);
+emit_32(1128740880);
+emit_32(3263483911);
+emit_32(1099929276);
+emit_32(1128740880);
+emit_32(3262775296);
+emit_32(1100678011);
+emit_32(1128740880);
+emit_32(3261751309);
+emit_32(1100864396);
+emit_32(1128740880);
+emit_32(3260727296);
+emit_32(1100514486);
+emit_32(1128740880);
+emit_32(3259703309);
+emit_32(1100086300);
+emit_32(1128740880);
+emit_32(3258679296);
+emit_32(1099510946);
+emit_32(1128740880);
+emit_32(3257655309);
+emit_32(1100286840);
+emit_32(1128740880);
+emit_32(3256631296);
+emit_32(1100610850);
+emit_32(1128740880);
+emit_32(3255607309);
+emit_32(1101170370);
+emit_32(1128740880);
+emit_32(3254386688);
+emit_32(1100818206);
+emit_32(1128740880);
+emit_32(3252338714);
+emit_32(1100338640);
+emit_32(1128740880);
+emit_32(3250290688);
+emit_32(1099906469);
+emit_32(1128740880);
+emit_32(3248242714);
+emit_32(1099577688);
+emit_32(1128740880);
+emit_32(3245998080);
+emit_32(1099007892);
+emit_32(1128740880);
+emit_32(3241902132);
+emit_32(1098245472);
+emit_32(1128740880);
+emit_32(3237609472);
+emit_32(1097688783);
+emit_32(1128740880);
+emit_32(3229220864);
+emit_32(1096704380);
+emit_32(1128740880);
+emit_32(0);
+emit_32(1095305265);
+emit_32(1128740880);
+emit_32(1081737216);
+emit_32(1094837495);
+emit_32(1128740880);
+emit_32(3279552512);
+emit_32(1085717569);
+emit_32(1128484897);
+emit_32(3279296528);
+emit_32(1083562745);
+emit_32(1128484897);
+emit_32(3279040545);
+emit_32(1084856981);
+emit_32(1128484897);
+emit_32(3278784496);
+emit_32(1089938108);
+emit_32(1128484897);
+emit_32(3278528512);
+emit_32(1093643482);
+emit_32(1128484897);
+emit_32(3278272528);
+emit_32(1095378456);
+emit_32(1128484897);
+emit_32(3278016545);
+emit_32(1096701654);
+emit_32(1128484897);
+emit_32(3277760496);
+emit_32(1095991453);
+emit_32(1128484897);
+emit_32(3277504512);
+emit_32(1096837130);
+emit_32(1128484897);
+emit_32(3277248528);
+emit_32(1097429470);
+emit_32(1128484897);
+emit_32(3276992545);
+emit_32(1095425747);
+emit_32(1128484897);
+emit_32(3276736496);
+emit_32(1092456704);
+emit_32(1128484897);
+emit_32(3276480512);
+emit_32(1090579469);
+emit_32(1128484897);
+emit_32(3276224528);
+emit_32(1089853278);
+emit_32(1128484897);
+emit_32(3275968545);
+emit_32(1091601590);
+emit_32(1128484897);
+emit_32(3275712496);
+emit_32(1093452222);
+emit_32(1128484897);
+emit_32(3275456512);
+emit_32(1094872308);
+emit_32(1128484897);
+emit_32(3275200528);
+emit_32(1095959891);
+emit_32(1128484897);
+emit_32(3274944545);
+emit_32(1097078827);
+emit_32(1128484897);
+emit_32(3274688496);
+emit_32(1096858206);
+emit_32(1128484897);
+emit_32(3274432512);
+emit_32(1096053948);
+emit_32(1128484897);
+emit_32(3274176528);
+emit_32(1095523264);
+emit_32(1128484897);
+emit_32(3273920545);
+emit_32(1095300547);
+emit_32(1128484897);
+emit_32(3273664496);
+emit_32(1094152041);
+emit_32(1128484897);
+emit_32(3273408512);
+emit_32(1093293887);
+emit_32(1128484897);
+emit_32(3273152528);
+emit_32(1091954824);
+emit_32(1128484897);
+emit_32(3272896545);
+emit_32(1090264488);
+emit_32(1128484897);
+emit_32(3272640496);
+emit_32(1087964038);
+emit_32(1128484897);
+emit_32(3272384512);
+emit_32(1084913101);
+emit_32(1128484897);
+emit_32(3272128528);
+emit_32(1087644432);
+emit_32(1128484897);
+emit_32(3271872545);
+emit_32(1091545292);
+emit_32(1128484897);
+emit_32(3271616496);
+emit_32(1092949010);
+emit_32(1128484897);
+emit_32(3271163904);
+emit_32(1093888744);
+emit_32(1128484897);
+emit_32(3270651937);
+emit_32(1095009252);
+emit_32(1128484897);
+emit_32(3270139970);
+emit_32(1096532728);
+emit_32(1128484897);
+emit_32(3269627871);
+emit_32(1096831048);
+emit_32(1128484897);
+emit_32(3269115904);
+emit_32(1098431280);
+emit_32(1128484897);
+emit_32(3268603937);
+emit_32(1098981153);
+emit_32(1128484897);
+emit_32(3268091970);
+emit_32(1099259917);
+emit_32(1128484897);
+emit_32(3267579911);
+emit_32(1099047004);
+emit_32(1128484897);
+emit_32(3267067904);
+emit_32(1099189663);
+emit_32(1128484897);
+emit_32(3266555911);
+emit_32(1097994233);
+emit_32(1128484897);
+emit_32(3266043904);
+emit_32(1097616536);
+emit_32(1128484897);
+emit_32(3265531911);
+emit_32(1098345402);
+emit_32(1128484897);
+emit_32(3265019904);
+emit_32(1098214644);
+emit_32(1128484897);
+emit_32(3264507911);
+emit_32(1097712481);
+emit_32(1128484897);
+emit_32(3263995904);
+emit_32(1099049258);
+emit_32(1128484897);
+emit_32(3263483911);
+emit_32(1099930586);
+emit_32(1128484897);
+emit_32(3262775296);
+emit_32(1100537135);
+emit_32(1128484897);
+emit_32(3261751309);
+emit_32(1100755920);
+emit_32(1128484897);
+emit_32(3260727296);
+emit_32(1100566915);
+emit_32(1128484897);
+emit_32(3259703309);
+emit_32(1099988940);
+emit_32(1128484897);
+emit_32(3258679296);
+emit_32(1099547332);
+emit_32(1128484897);
+emit_32(3257655309);
+emit_32(1100698878);
+emit_32(1128484897);
+emit_32(3256631296);
+emit_32(1101203033);
+emit_32(1128484897);
+emit_32(3255607309);
+emit_32(1100897845);
+emit_32(1128484897);
+emit_32(3254386688);
+emit_32(1100472176);
+emit_32(1128484897);
+emit_32(3252338714);
+emit_32(1100121008);
+emit_32(1128484897);
+emit_32(3250290688);
+emit_32(1100059666);
+emit_32(1128484897);
+emit_32(3248242714);
+emit_32(1099700424);
+emit_32(1128484897);
+emit_32(3245998080);
+emit_32(1099220596);
+emit_32(1128484897);
+emit_32(3241902132);
+emit_32(1098230163);
+emit_32(1128484897);
+emit_32(3237609472);
+emit_32(1097298503);
+emit_32(1128484897);
+emit_32(3229220864);
+emit_32(1096617663);
+emit_32(1128484897);
+emit_32(0);
+emit_32(1095209006);
+emit_32(1128484897);
+emit_32(1081737216);
+emit_32(1096602144);
+emit_32(1128484897);
+emit_32(3279552512);
+emit_32(1086488964);
+emit_32(1128228848);
+emit_32(3279296528);
+emit_32(1085207394);
+emit_32(1128228848);
+emit_32(3279040545);
+emit_32(1083144426);
+emit_32(1128228848);
+emit_32(3278784496);
+emit_32(1087877279);
+emit_32(1128228848);
+emit_32(3278528512);
+emit_32(1092360979);
+emit_32(1128228848);
+emit_32(3278272528);
+emit_32(1094229112);
+emit_32(1128228848);
+emit_32(3278016545);
+emit_32(1095715678);
+emit_32(1128228848);
+emit_32(3277760496);
+emit_32(1095363042);
+emit_32(1128228848);
+emit_32(3277504512);
+emit_32(1095186881);
+emit_32(1128228848);
+emit_32(3277248528);
+emit_32(1096363593);
+emit_32(1128228848);
+emit_32(3276992545);
+emit_32(1094958082);
+emit_32(1128228848);
+emit_32(3276736496);
+emit_32(1091948081);
+emit_32(1128228848);
+emit_32(3276480512);
+emit_32(1089598789);
+emit_32(1128228848);
+emit_32(3276224528);
+emit_32(1090830991);
+emit_32(1128228848);
+emit_32(3275968545);
+emit_32(1092661490);
+emit_32(1128228848);
+emit_32(3275712496);
+emit_32(1094218416);
+emit_32(1128228848);
+emit_32(3275456512);
+emit_32(1095692504);
+emit_32(1128228848);
+emit_32(3275200528);
+emit_32(1096747267);
+emit_32(1128228848);
+emit_32(3274944545);
+emit_32(1096959708);
+emit_32(1128228848);
+emit_32(3274688496);
+emit_32(1096562717);
+emit_32(1128228848);
+emit_32(3274432512);
+emit_32(1095550422);
+emit_32(1128228848);
+emit_32(3274176528);
+emit_32(1095356331);
+emit_32(1128228848);
+emit_32(3273920545);
+emit_32(1094786744);
+emit_32(1128228848);
+emit_32(3273664496);
+emit_32(1094402651);
+emit_32(1128228848);
+emit_32(3273408512);
+emit_32(1093003326);
+emit_32(1128228848);
+emit_32(3273152528);
+emit_32(1091879924);
+emit_32(1128228848);
+emit_32(3272896545);
+emit_32(1090340950);
+emit_32(1128228848);
+emit_32(3272640496);
+emit_32(1088120653);
+emit_32(1128228848);
+emit_32(3272384512);
+emit_32(1090582175);
+emit_32(1128228848);
+emit_32(3272128528);
+emit_32(1091421633);
+emit_32(1128228848);
+emit_32(3271872545);
+emit_32(1093724013);
+emit_32(1128228848);
+emit_32(3271616496);
+emit_32(1095136025);
+emit_32(1128228848);
+emit_32(3271163904);
+emit_32(1096213647);
+emit_32(1128228848);
+emit_32(3270651937);
+emit_32(1096677537);
+emit_32(1128228848);
+emit_32(3270139970);
+emit_32(1097917268);
+emit_32(1128228848);
+emit_32(3269627871);
+emit_32(1098919130);
+emit_32(1128228848);
+emit_32(3269115904);
+emit_32(1099360947);
+emit_32(1128228848);
+emit_32(3268603937);
+emit_32(1099387686);
+emit_32(1128228848);
+emit_32(3268091970);
+emit_32(1099422027);
+emit_32(1128228848);
+emit_32(3267579911);
+emit_32(1099524892);
+emit_32(1128228848);
+emit_32(3267067904);
+emit_32(1099391723);
+emit_32(1128228848);
+emit_32(3266555911);
+emit_32(1098232680);
+emit_32(1128228848);
+emit_32(3266043904);
+emit_32(1097328073);
+emit_32(1128228848);
+emit_32(3265531911);
+emit_32(1098499542);
+emit_32(1128228848);
+emit_32(3265019904);
+emit_32(1098867278);
+emit_32(1128228848);
+emit_32(3264507911);
+emit_32(1097477915);
+emit_32(1128228848);
+emit_32(3263995904);
+emit_32(1098419431);
+emit_32(1128228848);
+emit_32(3263483911);
+emit_32(1099657118);
+emit_32(1128228848);
+emit_32(3262775296);
+emit_32(1100094951);
+emit_32(1128228848);
+emit_32(3261751309);
+emit_32(1100491260);
+emit_32(1128228848);
+emit_32(3260727296);
+emit_32(1100506884);
+emit_32(1128228848);
+emit_32(3259703309);
+emit_32(1099794324);
+emit_32(1128228848);
+emit_32(3258679296);
+emit_32(1099789291);
+emit_32(1128228848);
+emit_32(3257655309);
+emit_32(1100379115);
+emit_32(1128228848);
+emit_32(3256631296);
+emit_32(1100923221);
+emit_32(1128228848);
+emit_32(3255607309);
+emit_32(1100371932);
+emit_32(1128228848);
+emit_32(3254386688);
+emit_32(1100316148);
+emit_32(1128228848);
+emit_32(3252338714);
+emit_32(1100515692);
+emit_32(1128228848);
+emit_32(3250290688);
+emit_32(1100307916);
+emit_32(1128228848);
+emit_32(3248242714);
+emit_32(1099810210);
+emit_32(1128228848);
+emit_32(3245998080);
+emit_32(1099154640);
+emit_32(1128228848);
+emit_32(3241902132);
+emit_32(1098355573);
+emit_32(1128228848);
+emit_32(3237609472);
+emit_32(1097472777);
+emit_32(1128228848);
+emit_32(3229220864);
+emit_32(1096682465);
+emit_32(1128228848);
+emit_32(0);
+emit_32(1096577398);
+emit_32(1128228848);
+emit_32(1081737216);
+emit_32(1097223216);
+emit_32(1128228848);
+emit_32(3279552512);
+emit_32(1086853617);
+emit_32(1127972864);
+emit_32(3279296528);
+emit_32(1086298564);
+emit_32(1127972864);
+emit_32(3279040545);
+emit_32(1085278425);
+emit_32(1127972864);
+emit_32(3278784496);
+emit_32(1085319131);
+emit_32(1127972864);
+emit_32(3278528512);
+emit_32(1090251360);
+emit_32(1127972864);
+emit_32(3278272528);
+emit_32(1092641777);
+emit_32(1127972864);
+emit_32(3278016545);
+emit_32(1093620623);
+emit_32(1127972864);
+emit_32(3277760496);
+emit_32(1094102653);
+emit_32(1127972864);
+emit_32(3277504512);
+emit_32(1093830758);
+emit_32(1127972864);
+emit_32(3277248528);
+emit_32(1094796916);
+emit_32(1127972864);
+emit_32(3276992545);
+emit_32(1093478751);
+emit_32(1127972864);
+emit_32(3276736496);
+emit_32(1091477050);
+emit_32(1127972864);
+emit_32(3276480512);
+emit_32(1089930831);
+emit_32(1127972864);
+emit_32(3276224528);
+emit_32(1091537375);
+emit_32(1127972864);
+emit_32(3275968545);
+emit_32(1093540302);
+emit_32(1127972864);
+emit_32(3275712496);
+emit_32(1095329278);
+emit_32(1127972864);
+emit_32(3275456512);
+emit_32(1096120323);
+emit_32(1127972864);
+emit_32(3275200528);
+emit_32(1096433743);
+emit_32(1127972864);
+emit_32(3274944545);
+emit_32(1096683304);
+emit_32(1127972864);
+emit_32(3274688496);
+emit_32(1096592182);
+emit_32(1127972864);
+emit_32(3274432512);
+emit_32(1095725220);
+emit_32(1127972864);
+emit_32(3274176528);
+emit_32(1094999815);
+emit_32(1127972864);
+emit_32(3273920545);
+emit_32(1094300520);
+emit_32(1127972864);
+emit_32(3273664496);
+emit_32(1093576583);
+emit_32(1127972864);
+emit_32(3273408512);
+emit_32(1092872779);
+emit_32(1127972864);
+emit_32(3273152528);
+emit_32(1091911098);
+emit_32(1127972864);
+emit_32(3272896545);
+emit_32(1091753434);
+emit_32(1127972864);
+emit_32(3272640496);
+emit_32(1092133438);
+emit_32(1127972864);
+emit_32(3272384512);
+emit_32(1093071169);
+emit_32(1127972864);
+emit_32(3272128528);
+emit_32(1094518728);
+emit_32(1127972864);
+emit_32(3271872545);
+emit_32(1096084986);
+emit_32(1127972864);
+emit_32(3271616496);
+emit_32(1096360657);
+emit_32(1127972864);
+emit_32(3271163904);
+emit_32(1096731014);
+emit_32(1127972864);
+emit_32(3270651937);
+emit_32(1098285738);
+emit_32(1127972864);
+emit_32(3270139970);
+emit_32(1099415631);
+emit_32(1127972864);
+emit_32(3269627871);
+emit_32(1099949408);
+emit_32(1127972864);
+emit_32(3269115904);
+emit_32(1100367161);
+emit_32(1127972864);
+emit_32(3268603937);
+emit_32(1100361866);
+emit_32(1127972864);
+emit_32(3268091970);
+emit_32(1100305714);
+emit_32(1127972864);
+emit_32(3267579911);
+emit_32(1100208354);
+emit_32(1127972864);
+emit_32(3267067904);
+emit_32(1100142975);
+emit_32(1127972864);
+emit_32(3266555911);
+emit_32(1099102421);
+emit_32(1127972864);
+emit_32(3266043904);
+emit_32(1097385430);
+emit_32(1127972864);
+emit_32(3265531911);
+emit_32(1097822162);
+emit_32(1127972864);
+emit_32(3265019904);
+emit_32(1098963275);
+emit_32(1127972864);
+emit_32(3264507911);
+emit_32(1097304900);
+emit_32(1127972864);
+emit_32(3263995904);
+emit_32(1097683121);
+emit_32(1127972864);
+emit_32(3263483911);
+emit_32(1099069810);
+emit_32(1127972864);
+emit_32(3262775296);
+emit_32(1099605213);
+emit_32(1127972864);
+emit_32(3261751309);
+emit_32(1100129868);
+emit_32(1127972864);
+emit_32(3260727296);
+emit_32(1100106433);
+emit_32(1127972864);
+emit_32(3259703309);
+emit_32(1099661207);
+emit_32(1127972864);
+emit_32(3258679296);
+emit_32(1099945896);
+emit_32(1127972864);
+emit_32(3257655309);
+emit_32(1100312216);
+emit_32(1127972864);
+emit_32(3256631296);
+emit_32(1100604401);
+emit_32(1127972864);
+emit_32(3255607309);
+emit_32(1101000920);
+emit_32(1127972864);
+emit_32(3254386688);
+emit_32(1100943301);
+emit_32(1127972864);
+emit_32(3252338714);
+emit_32(1100628886);
+emit_32(1127972864);
+emit_32(3250290688);
+emit_32(1100484759);
+emit_32(1127972864);
+emit_32(3248242714);
+emit_32(1099700843);
+emit_32(1127972864);
+emit_32(3245998080);
+emit_32(1099261752);
+emit_32(1127972864);
+emit_32(3241902132);
+emit_32(1098560045);
+emit_32(1127972864);
+emit_32(3237609472);
+emit_32(1097453588);
+emit_32(1127972864);
+emit_32(3229220864);
+emit_32(1096754712);
+emit_32(1127972864);
+emit_32(0);
+emit_32(1097041812);
+emit_32(1127972864);
+emit_32(1081737216);
+emit_32(1096992739);
+emit_32(1127972864);
+emit_32(3279552512);
+emit_32(1088632086);
+emit_32(1127716880);
+emit_32(3279296528);
+emit_32(1087150511);
+emit_32(1127716880);
+emit_32(3279040545);
+emit_32(1085863719);
+emit_32(1127716880);
+emit_32(3278784496);
+emit_32(1084379313);
+emit_32(1127716880);
+emit_32(3278528512);
+emit_32(1086294621);
+emit_32(1127716880);
+emit_32(3278272528);
+emit_32(1089793845);
+emit_32(1127716880);
+emit_32(3278016545);
+emit_32(1091311124);
+emit_32(1127716880);
+emit_32(3277760496);
+emit_32(1092520195);
+emit_32(1127716880);
+emit_32(3277504512);
+emit_32(1092832933);
+emit_32(1127716880);
+emit_32(3277248528);
+emit_32(1092827899);
+emit_32(1127716880);
+emit_32(3276992545);
+emit_32(1091811620);
+emit_32(1127716880);
+emit_32(3276736496);
+emit_32(1089828825);
+emit_32(1127716880);
+emit_32(3276480512);
+emit_32(1090682052);
+emit_32(1127716880);
+emit_32(3276224528);
+emit_32(1092010839);
+emit_32(1127716880);
+emit_32(3275968545);
+emit_32(1093459876);
+emit_32(1127716880);
+emit_32(3275712496);
+emit_32(1096080897);
+emit_32(1127716880);
+emit_32(3275456512);
+emit_32(1096807455);
+emit_32(1127716880);
+emit_32(3275200528);
+emit_32(1096413086);
+emit_32(1127716880);
+emit_32(3274944545);
+emit_32(1096350381);
+emit_32(1127716880);
+emit_32(3274688496);
+emit_32(1096323642);
+emit_32(1127716880);
+emit_32(3274432512);
+emit_32(1095633784);
+emit_32(1127716880);
+emit_32(3274176528);
+emit_32(1094753714);
+emit_32(1127716880);
+emit_32(3273920545);
+emit_32(1094125198);
+emit_32(1127716880);
+emit_32(3273664496);
+emit_32(1093062361);
+emit_32(1127716880);
+emit_32(3273408512);
+emit_32(1093213041);
+emit_32(1127716880);
+emit_32(3273152528);
+emit_32(1093187876);
+emit_32(1127716880);
+emit_32(3272896545);
+emit_32(1094195347);
+emit_32(1127716880);
+emit_32(3272640496);
+emit_32(1094880172);
+emit_32(1127716880);
+emit_32(3272384512);
+emit_32(1095364719);
+emit_32(1127716880);
+emit_32(3272128528);
+emit_32(1096288829);
+emit_32(1127716880);
+emit_32(3271872545);
+emit_32(1097163132);
+emit_32(1127716880);
+emit_32(3271616496);
+emit_32(1097356385);
+emit_32(1127716880);
+emit_32(3271163904);
+emit_32(1098373084);
+emit_32(1127716880);
+emit_32(3270651937);
+emit_32(1099643172);
+emit_32(1127716880);
+emit_32(3270139970);
+emit_32(1099931949);
+emit_32(1127716880);
+emit_32(3269627871);
+emit_32(1100246260);
+emit_32(1127716880);
+emit_32(3269115904);
+emit_32(1100634600);
+emit_32(1127716880);
+emit_32(3268603937);
+emit_32(1100611741);
+emit_32(1127716880);
+emit_32(3268091970);
+emit_32(1100940417);
+emit_32(1127716880);
+emit_32(3267579911);
+emit_32(1100834564);
+emit_32(1127716880);
+emit_32(3267067904);
+emit_32(1100309804);
+emit_32(1127716880);
+emit_32(3266555911);
+emit_32(1099846386);
+emit_32(1127716880);
+emit_32(3266043904);
+emit_32(1098992216);
+emit_32(1127716880);
+emit_32(3265531911);
+emit_32(1098681051);
+emit_32(1127716880);
+emit_32(3265019904);
+emit_32(1098547986);
+emit_32(1127716880);
+emit_32(3264507911);
+emit_32(1097247857);
+emit_32(1127716880);
+emit_32(3263995904);
+emit_32(1097448345);
+emit_32(1127716880);
+emit_32(3263483911);
+emit_32(1098445645);
+emit_32(1127716880);
+emit_32(3262775296);
+emit_32(1098977798);
+emit_32(1127716880);
+emit_32(3261751309);
+emit_32(1099491390);
+emit_32(1127716880);
+emit_32(3260727296);
+emit_32(1099337145);
+emit_32(1127716880);
+emit_32(3259703309);
+emit_32(1099792908);
+emit_32(1127716880);
+emit_32(3258679296);
+emit_32(1100235722);
+emit_32(1127716880);
+emit_32(3257655309);
+emit_32(1100866336);
+emit_32(1127716880);
+emit_32(3256631296);
+emit_32(1101422448);
+emit_32(1127716880);
+emit_32(3255607309);
+emit_32(1101221855);
+emit_32(1127716880);
+emit_32(3254386688);
+emit_32(1101088005);
+emit_32(1127716880);
+emit_32(3252338714);
+emit_32(1100972556);
+emit_32(1127716880);
+emit_32(3250290688);
+emit_32(1100202325);
+emit_32(1127716880);
+emit_32(3248242714);
+emit_32(1099418409);
+emit_32(1127716880);
+emit_32(3245998080);
+emit_32(1098944243);
+emit_32(1127716880);
+emit_32(3241902132);
+emit_32(1098327366);
+emit_32(1127716880);
+emit_32(3237609472);
+emit_32(1097923455);
+emit_32(1127716880);
+emit_32(3229220864);
+emit_32(1098086089);
+emit_32(1127716880);
+emit_32(0);
+emit_32(1097086481);
+emit_32(1127716880);
+emit_32(1081737216);
+emit_32(1096797703);
+emit_32(1127716880);
+emit_32(3279552512);
+emit_32(1090697067);
+emit_32(1127460897);
+emit_32(3279296528);
+emit_32(1088464754);
+emit_32(1127460897);
+emit_32(3279040545);
+emit_32(1087359387);
+emit_32(1127460897);
+emit_32(3278784496);
+emit_32(1086695387);
+emit_32(1127460897);
+emit_32(3278528512);
+emit_32(1083514070);
+emit_32(1127460897);
+emit_32(3278272528);
+emit_32(1084835276);
+emit_32(1127460897);
+emit_32(3278016545);
+emit_32(1088646514);
+emit_32(1127460897);
+emit_32(3277760496);
+emit_32(1090551147);
+emit_32(1127460897);
+emit_32(3277504512);
+emit_32(1091910700);
+emit_32(1127460897);
+emit_32(3277248528);
+emit_32(1091808013);
+emit_32(1127460897);
+emit_32(3276992545);
+emit_32(1091196294);
+emit_32(1127460897);
+emit_32(3276736496);
+emit_32(1090026922);
+emit_32(1127460897);
+emit_32(3276480512);
+emit_32(1090912801);
+emit_32(1127460897);
+emit_32(3276224528);
+emit_32(1091162887);
+emit_32(1127460897);
+emit_32(3275968545);
+emit_32(1093409649);
+emit_32(1127460897);
+emit_32(3275712496);
+emit_32(1094918970);
+emit_32(1127460897);
+emit_32(3275456512);
+emit_32(1096294177);
+emit_32(1127460897);
+emit_32(3275200528);
+emit_32(1096363698);
+emit_32(1127460897);
+emit_32(3274944545);
+emit_32(1096394421);
+emit_32(1127460897);
+emit_32(3274688496);
+emit_32(1096326893);
+emit_32(1127460897);
+emit_32(3274432512);
+emit_32(1095806484);
+emit_32(1127460897);
+emit_32(3274176528);
+emit_32(1096379007);
+emit_32(1127460897);
+emit_32(3273920545);
+emit_32(1096041470);
+emit_32(1127460897);
+emit_32(3273664496);
+emit_32(1094485488);
+emit_32(1127460897);
+emit_32(3273408512);
+emit_32(1095082128);
+emit_32(1127460897);
+emit_32(3273152528);
+emit_32(1095898969);
+emit_32(1127460897);
+emit_32(3272896545);
+emit_32(1096463208);
+emit_32(1127460897);
+emit_32(3272640496);
+emit_32(1096556741);
+emit_32(1127460897);
+emit_32(3272384512);
+emit_32(1096834613);
+emit_32(1127460897);
+emit_32(3272128528);
+emit_32(1098017826);
+emit_32(1127460897);
+emit_32(3271872545);
+emit_32(1098909745);
+emit_32(1127460897);
+emit_32(3271616496);
+emit_32(1099379035);
+emit_32(1127460897);
+emit_32(3271163904);
+emit_32(1099621519);
+emit_32(1127460897);
+emit_32(3270651937);
+emit_32(1100273890);
+emit_32(1127460897);
+emit_32(3270139970);
+emit_32(1100651587);
+emit_32(1127460897);
+emit_32(3269627871);
+emit_32(1100583063);
+emit_32(1127460897);
+emit_32(3269115904);
+emit_32(1100899471);
+emit_32(1127460897);
+emit_32(3268603937);
+emit_32(1101366926);
+emit_32(1127460897);
+emit_32(3268091970);
+emit_32(1101899183);
+emit_32(1127460897);
+emit_32(3267579911);
+emit_32(1101822427);
+emit_32(1127460897);
+emit_32(3267067904);
+emit_32(1101218290);
+emit_32(1127460897);
+emit_32(3266555911);
+emit_32(1100574150);
+emit_32(1127460897);
+emit_32(3266043904);
+emit_32(1100108005);
+emit_32(1127460897);
+emit_32(3265531911);
+emit_32(1099514144);
+emit_32(1127460897);
+emit_32(3265019904);
+emit_32(1098172701);
+emit_32(1127460897);
+emit_32(3264507911);
+emit_32(1096910216);
+emit_32(1127460897);
+emit_32(3263995904);
+emit_32(1097118253);
+emit_32(1127460897);
+emit_32(3263483911);
+emit_32(1097919785);
+emit_32(1127460897);
+emit_32(3262775296);
+emit_32(1098225759);
+emit_32(1127460897);
+emit_32(3261751309);
+emit_32(1098294021);
+emit_32(1127460897);
+emit_32(3260727296);
+emit_32(1099564476);
+emit_32(1127460897);
+emit_32(3259703309);
+emit_32(1100155453);
+emit_32(1127460897);
+emit_32(3258679296);
+emit_32(1100660343);
+emit_32(1127460897);
+emit_32(3257655309);
+emit_32(1101117574);
+emit_32(1127460897);
+emit_32(3256631296);
+emit_32(1101606787);
+emit_32(1127460897);
+emit_32(3255607309);
+emit_32(1101430155);
+emit_32(1127460897);
+emit_32(3254386688);
+emit_32(1100673712);
+emit_32(1127460897);
+emit_32(3252338714);
+emit_32(1100216585);
+emit_32(1127460897);
+emit_32(3250290688);
+emit_32(1099492858);
+emit_32(1127460897);
+emit_32(3248242714);
+emit_32(1098998822);
+emit_32(1127460897);
+emit_32(3245998080);
+emit_32(1097972423);
+emit_32(1127460897);
+emit_32(3241902132);
+emit_32(1098463681);
+emit_32(1127460897);
+emit_32(3237609472);
+emit_32(1099098961);
+emit_32(1127460897);
+emit_32(3229220864);
+emit_32(1099075315);
+emit_32(1127460897);
+emit_32(0);
+emit_32(1098576717);
+emit_32(1127460897);
+emit_32(1081737216);
+emit_32(1097521955);
+emit_32(1127460897);
+emit_32(3279552512);
+emit_32(1091907942);
+emit_32(1127204848);
+emit_32(3279296528);
+emit_32(1090913000);
+emit_32(1127204848);
+emit_32(3279040545);
+emit_32(1089627792);
+emit_32(1127204848);
+emit_32(3278784496);
+emit_32(1088453282);
+emit_32(1127204848);
+emit_32(3278528512);
+emit_32(1085638149);
+emit_32(1127204848);
+emit_32(3278272528);
+emit_32(1082820290);
+emit_32(1127204848);
+emit_32(3278016545);
+emit_32(1084647581);
+emit_32(1127204848);
+emit_32(3277760496);
+emit_32(1086976132);
+emit_32(1127204848);
+emit_32(3277504512);
+emit_32(1089606024);
+emit_32(1127204848);
+emit_32(3277248528);
+emit_32(1090895206);
+emit_32(1127204848);
+emit_32(3276992545);
+emit_32(1090776528);
+emit_32(1127204848);
+emit_32(3276736496);
+emit_32(1089657215);
+emit_32(1127204848);
+emit_32(3276480512);
+emit_32(1090767154);
+emit_32(1127204848);
+emit_32(3276224528);
+emit_32(1091192603);
+emit_32(1127204848);
+emit_32(3275968545);
+emit_32(1093123912);
+emit_32(1127204848);
+emit_32(3275712496);
+emit_32(1094534667);
+emit_32(1127204848);
+emit_32(3275456512);
+emit_32(1096318399);
+emit_32(1127204848);
+emit_32(3275200528);
+emit_32(1097169319);
+emit_32(1127204848);
+emit_32(3274944545);
+emit_32(1096886518);
+emit_32(1127204848);
+emit_32(3274688496);
+emit_32(1097439642);
+emit_32(1127204848);
+emit_32(3274432512);
+emit_32(1096797599);
+emit_32(1127204848);
+emit_32(3274176528);
+emit_32(1096554224);
+emit_32(1127204848);
+emit_32(3273920545);
+emit_32(1096240490);
+emit_32(1127204848);
+emit_32(3273664496);
+emit_32(1096477363);
+emit_32(1127204848);
+emit_32(3273408512);
+emit_32(1097087635);
+emit_32(1127204848);
+emit_32(3273152528);
+emit_32(1097338349);
+emit_32(1127204848);
+emit_32(3272896545);
+emit_32(1097759457);
+emit_32(1127204848);
+emit_32(3272640496);
+emit_32(1097880778);
+emit_32(1127204848);
+emit_32(3272384512);
+emit_32(1098146906);
+emit_32(1127204848);
+emit_32(3272128528);
+emit_32(1099303643);
+emit_32(1127204848);
+emit_32(3271872545);
+emit_32(1099944532);
+emit_32(1127204848);
+emit_32(3271616496);
+emit_32(1100242905);
+emit_32(1127204848);
+emit_32(3271163904);
+emit_32(1100588882);
+emit_32(1127204848);
+emit_32(3270651937);
+emit_32(1100605502);
+emit_32(1127204848);
+emit_32(3270139970);
+emit_32(1100742289);
+emit_32(1127204848);
+emit_32(3269627871);
+emit_32(1101124128);
+emit_32(1127204848);
+emit_32(3269115904);
+emit_32(1101735972);
+emit_32(1127204848);
+emit_32(3268603937);
+emit_32(1102084728);
+emit_32(1127204848);
+emit_32(3268091970);
+emit_32(1102719903);
+emit_32(1127204848);
+emit_32(3267579911);
+emit_32(1102404177);
+emit_32(1127204848);
+emit_32(3267067904);
+emit_32(1101692613);
+emit_32(1127204848);
+emit_32(3266555911);
+emit_32(1101323724);
+emit_32(1127204848);
+emit_32(3266043904);
+emit_32(1100739353);
+emit_32(1127204848);
+emit_32(3265531911);
+emit_32(1100060977);
+emit_32(1127204848);
+emit_32(3265019904);
+emit_32(1098668153);
+emit_32(1127204848);
+emit_32(3264507911);
+emit_32(1097066139);
+emit_32(1127204848);
+emit_32(3263995904);
+emit_32(1097240936);
+emit_32(1127204848);
+emit_32(3263483911);
+emit_32(1098056099);
+emit_32(1127204848);
+emit_32(3262775296);
+emit_32(1098692270);
+emit_32(1127204848);
+emit_32(3261751309);
+emit_32(1099028339);
+emit_32(1127204848);
+emit_32(3260727296);
+emit_32(1099487406);
+emit_32(1127204848);
+emit_32(3259703309);
+emit_32(1100464154);
+emit_32(1127204848);
+emit_32(3258679296);
+emit_32(1100643146);
+emit_32(1127204848);
+emit_32(3257655309);
+emit_32(1100685089);
+emit_32(1127204848);
+emit_32(3256631296);
+emit_32(1100823658);
+emit_32(1127204848);
+emit_32(3255607309);
+emit_32(1100633027);
+emit_32(1127204848);
+emit_32(3254386688);
+emit_32(1100238553);
+emit_32(1127204848);
+emit_32(3252338714);
+emit_32(1099137706);
+emit_32(1127204848);
+emit_32(3250290688);
+emit_32(1098443758);
+emit_32(1127204848);
+emit_32(3248242714);
+emit_32(1098669202);
+emit_32(1127204848);
+emit_32(3245998080);
+emit_32(1099104571);
+emit_32(1127204848);
+emit_32(3241902132);
+emit_32(1099412328);
+emit_32(1127204848);
+emit_32(3237609472);
+emit_32(1099546755);
+emit_32(1127204848);
+emit_32(3229220864);
+emit_32(1099464966);
+emit_32(1127204848);
+emit_32(0);
+emit_32(1099096864);
+emit_32(1127204848);
+emit_32(1081737216);
+emit_32(1098169765);
+emit_32(1127204848);
+emit_32(3279552512);
+emit_32(1092650690);
+emit_32(1126948864);
+emit_32(3279296528);
+emit_32(1091119434);
+emit_32(1126948864);
+emit_32(3279040545);
+emit_32(1090136415);
+emit_32(1126948864);
+emit_32(3278784496);
+emit_32(1088411612);
+emit_32(1126948864);
+emit_32(3278528512);
+emit_32(1085469077);
+emit_32(1126948864);
+emit_32(3278272528);
+emit_32(1083833424);
+emit_32(1126948864);
+emit_32(3278016545);
+emit_32(1083689035);
+emit_32(1126948864);
+emit_32(3277760496);
+emit_32(1085122711);
+emit_32(1126948864);
+emit_32(3277504512);
+emit_32(1086667243);
+emit_32(1126948864);
+emit_32(3277248528);
+emit_32(1087657958);
+emit_32(1126948864);
+emit_32(3276992545);
+emit_32(1088371095);
+emit_32(1126948864);
+emit_32(3276736496);
+emit_32(1089466354);
+emit_32(1126948864);
+emit_32(3276480512);
+emit_32(1091055439);
+emit_32(1126948864);
+emit_32(3276224528);
+emit_32(1090400677);
+emit_32(1126948864);
+emit_32(3275968545);
+emit_32(1092101142);
+emit_32(1126948864);
+emit_32(3275712496);
+emit_32(1093636037);
+emit_32(1126948864);
+emit_32(3275456512);
+emit_32(1095931999);
+emit_32(1126948864);
+emit_32(3275200528);
+emit_32(1096626890);
+emit_32(1126948864);
+emit_32(3274944545);
+emit_32(1098060923);
+emit_32(1126948864);
+emit_32(3274688496);
+emit_32(1097783994);
+emit_32(1126948864);
+emit_32(3274432512);
+emit_32(1096721367);
+emit_32(1126948864);
+emit_32(3274176528);
+emit_32(1097047264);
+emit_32(1126948864);
+emit_32(3273920545);
+emit_32(1096218051);
+emit_32(1126948864);
+emit_32(3273664496);
+emit_32(1096743282);
+emit_32(1126948864);
+emit_32(3273408512);
+emit_32(1097750335);
+emit_32(1126948864);
+emit_32(3273152528);
+emit_32(1098166619);
+emit_32(1126948864);
+emit_32(3272896545);
+emit_32(1097872074);
+emit_32(1126948864);
+emit_32(3272640496);
+emit_32(1097941595);
+emit_32(1126948864);
+emit_32(3272384512);
+emit_32(1098064383);
+emit_32(1126948864);
+emit_32(3272128528);
+emit_32(1099511103);
+emit_32(1126948864);
+emit_32(3271872545);
+emit_32(1100417545);
+emit_32(1126948864);
+emit_32(3271616496);
+emit_32(1100756969);
+emit_32(1126948864);
+emit_32(3271163904);
+emit_32(1100841956);
+emit_32(1126948864);
+emit_32(3270651937);
+emit_32(1100819517);
+emit_32(1126948864);
+emit_32(3270139970);
+emit_32(1101316280);
+emit_32(1126948864);
+emit_32(3269627871);
+emit_32(1101803658);
+emit_32(1126948864);
+emit_32(3269115904);
+emit_32(1102338327);
+emit_32(1126948864);
+emit_32(3268603937);
+emit_32(1102614679);
+emit_32(1126948864);
+emit_32(3268091970);
+emit_32(1102899577);
+emit_32(1126948864);
+emit_32(3267579911);
+emit_32(1102273472);
+emit_32(1126948864);
+emit_32(3267067904);
+emit_32(1102032300);
+emit_32(1126948864);
+emit_32(3266555911);
+emit_32(1102213336);
+emit_32(1126948864);
+emit_32(3266043904);
+emit_32(1101920154);
+emit_32(1126948864);
+emit_32(3265531911);
+emit_32(1101073377);
+emit_32(1126948864);
+emit_32(3265019904);
+emit_32(1099747453);
+emit_32(1126948864);
+emit_32(3264507911);
+emit_32(1097970221);
+emit_32(1126948864);
+emit_32(3263995904);
+emit_32(1098951583);
+emit_32(1126948864);
+emit_32(3263483911);
+emit_32(1099125385);
+emit_32(1126948864);
+emit_32(3262775296);
+emit_32(1099384383);
+emit_32(1126948864);
+emit_32(3261751309);
+emit_32(1099297666);
+emit_32(1126948864);
+emit_32(3260727296);
+emit_32(1099151914);
+emit_32(1126948864);
+emit_32(3259703309);
+emit_32(1100003043);
+emit_32(1126948864);
+emit_32(3258679296);
+emit_32(1100391278);
+emit_32(1126948864);
+emit_32(3257655309);
+emit_32(1100196872);
+emit_32(1126948864);
+emit_32(3256631296);
+emit_32(1100006189);
+emit_32(1126948864);
+emit_32(3255607309);
+emit_32(1100085251);
+emit_32(1126948864);
+emit_32(3254386688);
+emit_32(1099464704);
+emit_32(1126948864);
+emit_32(3252338714);
+emit_32(1098192624);
+emit_32(1126948864);
+emit_32(3250290688);
+emit_32(1098051695);
+emit_32(1126948864);
+emit_32(3248242714);
+emit_32(1099538104);
+emit_32(1126948864);
+emit_32(3245998080);
+emit_32(1100121060);
+emit_32(1126948864);
+emit_32(3241902132);
+emit_32(1100174380);
+emit_32(1126948864);
+emit_32(3237609472);
+emit_32(1100128138);
+emit_32(1126948864);
+emit_32(3229220864);
+emit_32(1099728526);
+emit_32(1126948864);
+emit_32(0);
+emit_32(1099015494);
+emit_32(1126948864);
+emit_32(1081737216);
+emit_32(1098949119);
+emit_32(1126948864);
+emit_32(3279552512);
+emit_32(1092053820);
+emit_32(1126692880);
+emit_32(3279296528);
+emit_32(1091482168);
+emit_32(1126692880);
+emit_32(3279040545);
+emit_32(1090170556);
+emit_32(1126692880);
+emit_32(3278784496);
+emit_32(1089291577);
+emit_32(1126692880);
+emit_32(3278528512);
+emit_32(1087031308);
+emit_32(1126692880);
+emit_32(3278272528);
+emit_32(1085157335);
+emit_32(1126692880);
+emit_32(3278016545);
+emit_32(1082956060);
+emit_32(1126692880);
+emit_32(3277760496);
+emit_32(1079787745);
+emit_32(1126692880);
+emit_32(3277504512);
+emit_32(1083066831);
+emit_32(1126692880);
+emit_32(3277248528);
+emit_32(1084997260);
+emit_32(1126692880);
+emit_32(3276992545);
+emit_32(1086936056);
+emit_32(1126692880);
+emit_32(3276736496);
+emit_32(1087077194);
+emit_32(1126692880);
+emit_32(3276480512);
+emit_32(1089181120);
+emit_32(1126692880);
+emit_32(3276224528);
+emit_32(1090090592);
+emit_32(1126692880);
+emit_32(3275968545);
+emit_32(1091979287);
+emit_32(1126692880);
+emit_32(3275712496);
+emit_32(1093947779);
+emit_32(1126692880);
+emit_32(3275456512);
+emit_32(1095104148);
+emit_32(1126692880);
+emit_32(3275200528);
+emit_32(1097546806);
+emit_32(1126692880);
+emit_32(3274944545);
+emit_32(1098312476);
+emit_32(1126692880);
+emit_32(3274688496);
+emit_32(1098096050);
+emit_32(1126692880);
+emit_32(3274432512);
+emit_32(1096460062);
+emit_32(1126692880);
+emit_32(3274176528);
+emit_32(1096848350);
+emit_32(1126692880);
+emit_32(3273920545);
+emit_32(1096377539);
+emit_32(1126692880);
+emit_32(3273664496);
+emit_32(1097570714);
+emit_32(1126692880);
+emit_32(3273408512);
+emit_32(1098430756);
+emit_32(1126692880);
+emit_32(3273152528);
+emit_32(1099100848);
+emit_32(1126692880);
+emit_32(3272896545);
+emit_32(1099443103);
+emit_32(1126692880);
+emit_32(3272640496);
+emit_32(1099024459);
+emit_32(1126692880);
+emit_32(3272384512);
+emit_32(1097976827);
+emit_32(1126692880);
+emit_32(3272128528);
+emit_32(1099397281);
+emit_32(1126692880);
+emit_32(3271872545);
+emit_32(1100167250);
+emit_32(1126692880);
+emit_32(3271616496);
+emit_32(1101001916);
+emit_32(1126692880);
+emit_32(3271163904);
+emit_32(1101218133);
+emit_32(1126692880);
+emit_32(3270651937);
+emit_32(1101763445);
+emit_32(1126692880);
+emit_32(3270139970);
+emit_32(1102254703);
+emit_32(1126692880);
+emit_32(3269627871);
+emit_32(1102306188);
+emit_32(1126692880);
+emit_32(3269115904);
+emit_32(1102526179);
+emit_32(1126692880);
+emit_32(3268603937);
+emit_32(1102836453);
+emit_32(1126692880);
+emit_32(3268091970);
+emit_32(1102582120);
+emit_32(1126692880);
+emit_32(3267579911);
+emit_32(1102493673);
+emit_32(1126692880);
+emit_32(3267067904);
+emit_32(1102731752);
+emit_32(1126692880);
+emit_32(3266555911);
+emit_32(1102752566);
+emit_32(1126692880);
+emit_32(3266043904);
+emit_32(1102414243);
+emit_32(1126692880);
+emit_32(3265531911);
+emit_32(1101987945);
+emit_32(1126692880);
+emit_32(3265019904);
+emit_32(1100347133);
+emit_32(1126692880);
+emit_32(3264507911);
+emit_32(1099205706);
+emit_32(1126692880);
+emit_32(3263995904);
+emit_32(1099525784);
+emit_32(1126692880);
+emit_32(3263483911);
+emit_32(1100012533);
+emit_32(1126692880);
+emit_32(3262775296);
+emit_32(1100473434);
+emit_32(1126692880);
+emit_32(3261751309);
+emit_32(1099686268);
+emit_32(1126692880);
+emit_32(3260727296);
+emit_32(1099578474);
+emit_32(1126692880);
+emit_32(3259703309);
+emit_32(1099386952);
+emit_32(1126692880);
+emit_32(3258679296);
+emit_32(1099512257);
+emit_32(1126692880);
+emit_32(3257655309);
+emit_32(1099849269);
+emit_32(1126692880);
+emit_32(3256631296);
+emit_32(1099792017);
+emit_32(1126692880);
+emit_32(3255607309);
+emit_32(1099326974);
+emit_32(1126692880);
+emit_32(3254386688);
+emit_32(1098936798);
+emit_32(1126692880);
+emit_32(3252338714);
+emit_32(1097635096);
+emit_32(1126692880);
+emit_32(3250290688);
+emit_32(1099347316);
+emit_32(1126692880);
+emit_32(3248242714);
+emit_32(1099939237);
+emit_32(1126692880);
+emit_32(3245998080);
+emit_32(1100173489);
+emit_32(1126692880);
+emit_32(3241902132);
+emit_32(1100441086);
+emit_32(1126692880);
+emit_32(3237609472);
+emit_32(1100198130);
+emit_32(1126692880);
+emit_32(3229220864);
+emit_32(1099547122);
+emit_32(1126692880);
+emit_32(0);
+emit_32(1099279735);
+emit_32(1126692880);
+emit_32(1081737216);
+emit_32(1099508220);
+emit_32(1126692880);
+emit_32(3279552512);
+emit_32(1091859760);
+emit_32(1126436897);
+emit_32(3279296528);
+emit_32(1091230761);
+emit_32(1126436897);
+emit_32(3279040545);
+emit_32(1090930805);
+emit_32(1126436897);
+emit_32(3278784496);
+emit_32(1089555210);
+emit_32(1126436897);
+emit_32(3278528512);
+emit_32(1087108253);
+emit_32(1126436897);
+emit_32(3278272528);
+emit_32(1084241425);
+emit_32(1126436897);
+emit_32(3278016545);
+emit_32(1080584495);
+emit_32(1126436897);
+emit_32(3277760496);
+emit_32(1077009103);
+emit_32(1126436897);
+emit_32(3277504512);
+emit_32(1077476097);
+emit_32(1126436897);
+emit_32(3277248528);
+emit_32(1082163798);
+emit_32(1126436897);
+emit_32(3276992545);
+emit_32(1083224118);
+emit_32(1126436897);
+emit_32(3276736496);
+emit_32(1083925510);
+emit_32(1126436897);
+emit_32(3276480512);
+emit_32(1086781055);
+emit_32(1126436897);
+emit_32(3276224528);
+emit_32(1090787203);
+emit_32(1126436897);
+emit_32(3275968545);
+emit_32(1093020523);
+emit_32(1126436897);
+emit_32(3275712496);
+emit_32(1094356094);
+emit_32(1126436897);
+emit_32(3275456512);
+emit_32(1095272654);
+emit_32(1126436897);
+emit_32(3275200528);
+emit_32(1096919967);
+emit_32(1126436897);
+emit_32(3274944545);
+emit_32(1097664981);
+emit_32(1126436897);
+emit_32(3274688496);
+emit_32(1097850264);
+emit_32(1126436897);
+emit_32(3274432512);
+emit_32(1097462501);
+emit_32(1126436897);
+emit_32(3274176528);
+emit_32(1097374001);
+emit_32(1126436897);
+emit_32(3273920545);
+emit_32(1096574357);
+emit_32(1126436897);
+emit_32(3273664496);
+emit_32(1097971165);
+emit_32(1126436897);
+emit_32(3273408512);
+emit_32(1099181588);
+emit_32(1126436897);
+emit_32(3273152528);
+emit_32(1099865208);
+emit_32(1126436897);
+emit_32(3272896545);
+emit_32(1100222353);
+emit_32(1126436897);
+emit_32(3272640496);
+emit_32(1099751699);
+emit_32(1126436897);
+emit_32(3272384512);
+emit_32(1099151756);
+emit_32(1126436897);
+emit_32(3272128528);
+emit_32(1099314548);
+emit_32(1126436897);
+emit_32(3271872545);
+emit_32(1100567124);
+emit_32(1126436897);
+emit_32(3271616496);
+emit_32(1101301023);
+emit_32(1126436897);
+emit_32(3271163904);
+emit_32(1101937036);
+emit_32(1126436897);
+emit_32(3270651937);
+emit_32(1102452516);
+emit_32(1126436897);
+emit_32(3270139970);
+emit_32(1102878763);
+emit_32(1126436897);
+emit_32(3269627871);
+emit_32(1102764678);
+emit_32(1126436897);
+emit_32(3269115904);
+emit_32(1103315599);
+emit_32(1126436897);
+emit_32(3268603937);
+emit_32(1103337986);
+emit_32(1126436897);
+emit_32(3268091970);
+emit_32(1103125021);
+emit_32(1126436897);
+emit_32(3267579911);
+emit_32(1103452701);
+emit_32(1126436897);
+emit_32(3267067904);
+emit_32(1103518551);
+emit_32(1126436897);
+emit_32(3266555911);
+emit_32(1103087377);
+emit_32(1126436897);
+emit_32(3266043904);
+emit_32(1102707740);
+emit_32(1126436897);
+emit_32(3265531911);
+emit_32(1102273682);
+emit_32(1126436897);
+emit_32(3265019904);
+emit_32(1100733009);
+emit_32(1126436897);
+emit_32(3264507911);
+emit_32(1100143447);
+emit_32(1126436897);
+emit_32(3263995904);
+emit_32(1100648022);
+emit_32(1126436897);
+emit_32(3263483911);
+emit_32(1100809555);
+emit_32(1126436897);
+emit_32(3262775296);
+emit_32(1100886835);
+emit_32(1126436897);
+emit_32(3261751309);
+emit_32(1100168508);
+emit_32(1126436897);
+emit_32(3260727296);
+emit_32(1099798833);
+emit_32(1126436897);
+emit_32(3259703309);
+emit_32(1099326502);
+emit_32(1126436897);
+emit_32(3258679296);
+emit_32(1099188195);
+emit_32(1126436897);
+emit_32(3257655309);
+emit_32(1098951478);
+emit_32(1126436897);
+emit_32(3256631296);
+emit_32(1099140746);
+emit_32(1126436897);
+emit_32(3255607309);
+emit_32(1097892836);
+emit_32(1126436897);
+emit_32(3254386688);
+emit_32(1096986552);
+emit_32(1126436897);
+emit_32(3252338714);
+emit_32(1098931818);
+emit_32(1126436897);
+emit_32(3250290688);
+emit_32(1099424072);
+emit_32(1126436897);
+emit_32(3248242714);
+emit_32(1099604217);
+emit_32(1126436897);
+emit_32(3245998080);
+emit_32(1100206309);
+emit_32(1126436897);
+emit_32(3241902132);
+emit_32(1099889954);
+emit_32(1126436897);
+emit_32(3237609472);
+emit_32(1099854460);
+emit_32(1126436897);
+emit_32(3229220864);
+emit_32(1099540935);
+emit_32(1126436897);
+emit_32(0);
+emit_32(1099312713);
+emit_32(1126436897);
+emit_32(1081737216);
+emit_32(1099149921);
+emit_32(1126436897);
+emit_32(3279552512);
+emit_32(1091110007);
+emit_32(1126180848);
+emit_32(3279296528);
+emit_32(1090566603);
+emit_32(1126180848);
+emit_32(3279040545);
+emit_32(1089927538);
+emit_32(1126180848);
+emit_32(3278784496);
+emit_32(1088849057);
+emit_32(1126180848);
+emit_32(3278528512);
+emit_32(1085306191);
+emit_32(1126180848);
+emit_32(3278272528);
+emit_32(1084238930);
+emit_32(1126180848);
+emit_32(3278016545);
+emit_32(1082904260);
+emit_32(1126180848);
+emit_32(3277760496);
+emit_32(1078098238);
+emit_32(1126180848);
+emit_32(3277504512);
+emit_32(1077638962);
+emit_32(1126180848);
+emit_32(3277248528);
+emit_32(1076413302);
+emit_32(1126180848);
+emit_32(3276992545);
+emit_32(1076646547);
+emit_32(1126180848);
+emit_32(3276736496);
+emit_32(1080275711);
+emit_32(1126180848);
+emit_32(3276480512);
+emit_32(1085520143);
+emit_32(1126180848);
+emit_32(3276224528);
+emit_32(1089702514);
+emit_32(1126180848);
+emit_32(3275968545);
+emit_32(1092246705);
+emit_32(1126180848);
+emit_32(3275712496);
+emit_32(1093963402);
+emit_32(1126180848);
+emit_32(3275456512);
+emit_32(1095512778);
+emit_32(1126180848);
+emit_32(3275200528);
+emit_32(1096063386);
+emit_32(1126180848);
+emit_32(3274944545);
+emit_32(1098150157);
+emit_32(1126180848);
+emit_32(3274688496);
+emit_32(1098201747);
+emit_32(1126180848);
+emit_32(3274432512);
+emit_32(1098080322);
+emit_32(1126180848);
+emit_32(3274176528);
+emit_32(1097170158);
+emit_32(1126180848);
+emit_32(3273920545);
+emit_32(1097720975);
+emit_32(1126180848);
+emit_32(3273664496);
+emit_32(1098994627);
+emit_32(1126180848);
+emit_32(3273408512);
+emit_32(1099145570);
+emit_32(1126180848);
+emit_32(3273152528);
+emit_32(1100249878);
+emit_32(1126180848);
+emit_32(3272896545);
+emit_32(1100617613);
+emit_32(1126180848);
+emit_32(3272640496);
+emit_32(1100383781);
+emit_32(1126180848);
+emit_32(3272384512);
+emit_32(1099661417);
+emit_32(1126180848);
+emit_32(3272128528);
+emit_32(1099771570);
+emit_32(1126180848);
+emit_32(3271872545);
+emit_32(1100856322);
+emit_32(1126180848);
+emit_32(3271616496);
+emit_32(1101777863);
+emit_32(1126180848);
+emit_32(3271163904);
+emit_32(1102608912);
+emit_32(1126180848);
+emit_32(3270651937);
+emit_32(1103420142);
+emit_32(1126180848);
+emit_32(3270139970);
+emit_32(1104133541);
+emit_32(1126180848);
+emit_32(3269627871);
+emit_32(1104300737);
+emit_32(1126180848);
+emit_32(3269115904);
+emit_32(1104750366);
+emit_32(1126180848);
+emit_32(3268603937);
+emit_32(1104692327);
+emit_32(1126180848);
+emit_32(3268091970);
+emit_32(1104180255);
+emit_32(1126180848);
+emit_32(3267579911);
+emit_32(1104286004);
+emit_32(1126180848);
+emit_32(3267067904);
+emit_32(1104294760);
+emit_32(1126180848);
+emit_32(3266555911);
+emit_32(1103989519);
+emit_32(1126180848);
+emit_32(3266043904);
+emit_32(1103116370);
+emit_32(1126180848);
+emit_32(3265531911);
+emit_32(1102176374);
+emit_32(1126180848);
+emit_32(3265019904);
+emit_32(1101252683);
+emit_32(1126180848);
+emit_32(3264507911);
+emit_32(1100807091);
+emit_32(1126180848);
+emit_32(3263995904);
+emit_32(1101057072);
+emit_32(1126180848);
+emit_32(3263483911);
+emit_32(1101590954);
+emit_32(1126180848);
+emit_32(3262775296);
+emit_32(1101241516);
+emit_32(1126180848);
+emit_32(3261751309);
+emit_32(1100721632);
+emit_32(1126180848);
+emit_32(3260727296);
+emit_32(1100065328);
+emit_32(1126180848);
+emit_32(3259703309);
+emit_32(1099340867);
+emit_32(1126180848);
+emit_32(3258679296);
+emit_32(1099102631);
+emit_32(1126180848);
+emit_32(3257655309);
+emit_32(1098007550);
+emit_32(1126180848);
+emit_32(3256631296);
+emit_32(1097436391);
+emit_32(1126180848);
+emit_32(3255607309);
+emit_32(1097548589);
+emit_32(1126180848);
+emit_32(3254386688);
+emit_32(1097682282);
+emit_32(1126180848);
+emit_32(3252338714);
+emit_32(1099124127);
+emit_32(1126180848);
+emit_32(3250290688);
+emit_32(1098983145);
+emit_32(1126180848);
+emit_32(3248242714);
+emit_32(1099734136);
+emit_32(1126180848);
+emit_32(3245998080);
+emit_32(1099916745);
+emit_32(1126180848);
+emit_32(3241902132);
+emit_32(1099462450);
+emit_32(1126180848);
+emit_32(3237609472);
+emit_32(1099513410);
+emit_32(1126180848);
+emit_32(3229220864);
+emit_32(1099346425);
+emit_32(1126180848);
+emit_32(0);
+emit_32(1099133931);
+emit_32(1126180848);
+emit_32(1081737216);
+emit_32(1099236901);
+emit_32(1126180848);
+emit_32(3279552512);
+emit_32(1089511002);
+emit_32(1125924864);
+emit_32(3279296528);
+emit_32(1089751084);
+emit_32(1125924864);
+emit_32(3279040545);
+emit_32(1089625192);
+emit_32(1125924864);
+emit_32(3278784496);
+emit_32(1088308768);
+emit_32(1125924864);
+emit_32(3278528512);
+emit_32(1083791334);
+emit_32(1125924864);
+emit_32(3278272528);
+emit_32(1083037702);
+emit_32(1125924864);
+emit_32(3278016545);
+emit_32(1082409647);
+emit_32(1125924864);
+emit_32(3277760496);
+emit_32(1076909237);
+emit_32(1125924864);
+emit_32(3277504512);
+emit_32(1076578474);
+emit_32(1125924864);
+emit_32(3277248528);
+emit_32(1079282500);
+emit_32(1125924864);
+emit_32(3276992545);
+emit_32(1079322891);
+emit_32(1125924864);
+emit_32(3276736496);
+emit_32(1080482867);
+emit_32(1125924864);
+emit_32(3276480512);
+emit_32(1083066517);
+emit_32(1125924864);
+emit_32(3276224528);
+emit_32(1086368944);
+emit_32(1125924864);
+emit_32(3275968545);
+emit_32(1090788545);
+emit_32(1125924864);
+emit_32(3275712496);
+emit_32(1093220381);
+emit_32(1125924864);
+emit_32(3275456512);
+emit_32(1094138095);
+emit_32(1125924864);
+emit_32(3275200528);
+emit_32(1095485201);
+emit_32(1125924864);
+emit_32(3274944545);
+emit_32(1098300103);
+emit_32(1125924864);
+emit_32(3274688496);
+emit_32(1099012348);
+emit_32(1125924864);
+emit_32(3274432512);
+emit_32(1097753795);
+emit_32(1125924864);
+emit_32(3274176528);
+emit_32(1096927727);
+emit_32(1125924864);
+emit_32(3273920545);
+emit_32(1098937847);
+emit_32(1125924864);
+emit_32(3273664496);
+emit_32(1099750598);
+emit_32(1125924864);
+emit_32(3273408512);
+emit_32(1099826096);
+emit_32(1125924864);
+emit_32(3273152528);
+emit_32(1100180514);
+emit_32(1125924864);
+emit_32(3272896545);
+emit_32(1100786015);
+emit_32(1125924864);
+emit_32(3272640496);
+emit_32(1100625006);
+emit_32(1125924864);
+emit_32(3272384512);
+emit_32(1100107638);
+emit_32(1125924864);
+emit_32(3272128528);
+emit_32(1100331457);
+emit_32(1125924864);
+emit_32(3271872545);
+emit_32(1101249590);
+emit_32(1125924864);
+emit_32(3271616496);
+emit_32(1102354737);
+emit_32(1125924864);
+emit_32(3271163904);
+emit_32(1103441691);
+emit_32(1125924864);
+emit_32(3270651937);
+emit_32(1104738936);
+emit_32(1125924864);
+emit_32(3270139970);
+emit_32(1105236276);
+emit_32(1125924864);
+emit_32(3269627871);
+emit_32(1105460304);
+emit_32(1125924864);
+emit_32(3269115904);
+emit_32(1105771993);
+emit_32(1125924864);
+emit_32(3268603937);
+emit_32(1105867833);
+emit_32(1125924864);
+emit_32(3268091970);
+emit_32(1105681868);
+emit_32(1125924864);
+emit_32(3267579911);
+emit_32(1105399854);
+emit_32(1125924864);
+emit_32(3267067904);
+emit_32(1104596592);
+emit_32(1125924864);
+emit_32(3266555911);
+emit_32(1104130657);
+emit_32(1125924864);
+emit_32(3266043904);
+emit_32(1103243877);
+emit_32(1125924864);
+emit_32(3265531911);
+emit_32(1102380270);
+emit_32(1125924864);
+emit_32(3265019904);
+emit_32(1102020241);
+emit_32(1125924864);
+emit_32(3264507911);
+emit_32(1101572656);
+emit_32(1125924864);
+emit_32(3263995904);
+emit_32(1101722026);
+emit_32(1125924864);
+emit_32(3263483911);
+emit_32(1101703833);
+emit_32(1125924864);
+emit_32(3262775296);
+emit_32(1101282463);
+emit_32(1125924864);
+emit_32(3261751309);
+emit_32(1100994314);
+emit_32(1125924864);
+emit_32(3260727296);
+emit_32(1100261255);
+emit_32(1125924864);
+emit_32(3259703309);
+emit_32(1099538104);
+emit_32(1125924864);
+emit_32(3258679296);
+emit_32(1099005113);
+emit_32(1125924864);
+emit_32(3257655309);
+emit_32(1097288542);
+emit_32(1125924864);
+emit_32(3256631296);
+emit_32(1096558523);
+emit_32(1125924864);
+emit_32(3255607309);
+emit_32(1097476761);
+emit_32(1125924864);
+emit_32(3254386688);
+emit_32(1098510552);
+emit_32(1125924864);
+emit_32(3252338714);
+emit_32(1098575249);
+emit_32(1125924864);
+emit_32(3250290688);
+emit_32(1099187146);
+emit_32(1125924864);
+emit_32(3248242714);
+emit_32(1099341339);
+emit_32(1125924864);
+emit_32(3245998080);
+emit_32(1099196531);
+emit_32(1125924864);
+emit_32(3241902132);
+emit_32(1099085906);
+emit_32(1125924864);
+emit_32(3237609472);
+emit_32(1099120876);
+emit_32(1125924864);
+emit_32(3229220864);
+emit_32(1098773955);
+emit_32(1125924864);
+emit_32(0);
+emit_32(1099088580);
+emit_32(1125924864);
+emit_32(1081737216);
+emit_32(1099397648);
+emit_32(1125924864);
+emit_32(3279552512);
+emit_32(1087350222);
+emit_32(1125668880);
+emit_32(3279296528);
+emit_32(1087173453);
+emit_32(1125668880);
+emit_32(3279040545);
+emit_32(1087524370);
+emit_32(1125668880);
+emit_32(3278784496);
+emit_32(1085198146);
+emit_32(1125668880);
+emit_32(3278528512);
+emit_32(1082565654);
+emit_32(1125668880);
+emit_32(3278272528);
+emit_32(1077145753);
+emit_32(1125668880);
+emit_32(3278016545);
+emit_32(1072746264);
+emit_32(1125668880);
+emit_32(3277760496);
+emit_32(1070147557);
+emit_32(1125668880);
+emit_32(3277504512);
+emit_32(1075759536);
+emit_32(1125668880);
+emit_32(3277248528);
+emit_32(1077469889);
+emit_32(1125668880);
+emit_32(3276992545);
+emit_32(1076408479);
+emit_32(1125668880);
+emit_32(3276736496);
+emit_32(1077817429);
+emit_32(1125668880);
+emit_32(3276480512);
+emit_32(1080487943);
+emit_32(1125668880);
+emit_32(3276224528);
+emit_32(1082089831);
+emit_32(1125668880);
+emit_32(3275968545);
+emit_32(1089194856);
+emit_32(1125668880);
+emit_32(3275712496);
+emit_32(1092143819);
+emit_32(1125668880);
+emit_32(3275456512);
+emit_32(1093271971);
+emit_32(1125668880);
+emit_32(3275200528);
+emit_32(1095061157);
+emit_32(1125668880);
+emit_32(3274944545);
+emit_32(1096826225);
+emit_32(1125668880);
+emit_32(3274688496);
+emit_32(1097739220);
+emit_32(1125668880);
+emit_32(3274432512);
+emit_32(1097853200);
+emit_32(1125668880);
+emit_32(3274176528);
+emit_32(1097601856);
+emit_32(1125668880);
+emit_32(3273920545);
+emit_32(1099313866);
+emit_32(1125668880);
+emit_32(3273664496);
+emit_32(1100242538);
+emit_32(1125668880);
+emit_32(3273408512);
+emit_32(1100791520);
+emit_32(1125668880);
+emit_32(3273152528);
+emit_32(1100534671);
+emit_32(1125668880);
+emit_32(3272896545);
+emit_32(1100486803);
+emit_32(1125668880);
+emit_32(3272640496);
+emit_32(1100712667);
+emit_32(1125668880);
+emit_32(3272384512);
+emit_32(1100661549);
+emit_32(1125668880);
+emit_32(3272128528);
+emit_32(1101351407);
+emit_32(1125668880);
+emit_32(3271872545);
+emit_32(1102206154);
+emit_32(1125668880);
+emit_32(3271616496);
+emit_32(1103301286);
+emit_32(1125668880);
+emit_32(3271163904);
+emit_32(1104362760);
+emit_32(1125668880);
+emit_32(3270651937);
+emit_32(1105383916);
+emit_32(1125668880);
+emit_32(3270139970);
+emit_32(1106277093);
+emit_32(1125668880);
+emit_32(3269627871);
+emit_32(1106308235);
+emit_32(1125668880);
+emit_32(3269115904);
+emit_32(1106719801);
+emit_32(1125668880);
+emit_32(3268603937);
+emit_32(1106707323);
+emit_32(1125668880);
+emit_32(3268091970);
+emit_32(1106722475);
+emit_32(1125668880);
+emit_32(3267579911);
+emit_32(1106438259);
+emit_32(1125668880);
+emit_32(3267067904);
+emit_32(1105408609);
+emit_32(1125668880);
+emit_32(3266555911);
+emit_32(1104049917);
+emit_32(1125668880);
+emit_32(3266043904);
+emit_32(1103297564);
+emit_32(1125668880);
+emit_32(3265531911);
+emit_32(1102461429);
+emit_32(1125668880);
+emit_32(3265019904);
+emit_32(1102366533);
+emit_32(1125668880);
+emit_32(3264507911);
+emit_32(1101967340);
+emit_32(1125668880);
+emit_32(3263995904);
+emit_32(1101786146);
+emit_32(1125668880);
+emit_32(3263483911);
+emit_32(1101553258);
+emit_32(1125668880);
+emit_32(3262775296);
+emit_32(1101001340);
+emit_32(1125668880);
+emit_32(3261751309);
+emit_32(1100728448);
+emit_32(1125668880);
+emit_32(3260727296);
+emit_32(1100022546);
+emit_32(1125668880);
+emit_32(3259703309);
+emit_32(1099153224);
+emit_32(1125668880);
+emit_32(3258679296);
+emit_32(1097869977);
+emit_32(1125668880);
+emit_32(3257655309);
+emit_32(1096668099);
+emit_32(1125668880);
+emit_32(3256631296);
+emit_32(1097741107);
+emit_32(1125668880);
+emit_32(3255607309);
+emit_32(1097981755);
+emit_32(1125668880);
+emit_32(3254386688);
+emit_32(1097933206);
+emit_32(1125668880);
+emit_32(3252338714);
+emit_32(1098260572);
+emit_32(1125668880);
+emit_32(3250290688);
+emit_32(1098406219);
+emit_32(1125668880);
+emit_32(3248242714);
+emit_32(1098084516);
+emit_32(1125668880);
+emit_32(3245998080);
+emit_32(1098079168);
+emit_32(1125668880);
+emit_32(3241902132);
+emit_32(1098423520);
+emit_32(1125668880);
+emit_32(3237609472);
+emit_32(1098536662);
+emit_32(1125668880);
+emit_32(3229220864);
+emit_32(1098183711);
+emit_32(1125668880);
+emit_32(0);
+emit_32(1099109709);
+emit_32(1125668880);
+emit_32(1081737216);
+emit_32(1099796421);
+emit_32(1125668880);
+emit_32(3279552512);
+emit_32(1084599032);
+emit_32(1125412897);
+emit_32(3279296528);
+emit_32(1083540012);
+emit_32(1125412897);
+emit_32(3279040545);
+emit_32(1082794369);
+emit_32(1125412897);
+emit_32(3278784496);
+emit_32(1078855100);
+emit_32(1125412897);
+emit_32(3278528512);
+emit_32(1074302393);
+emit_32(1125412897);
+emit_32(3278272528);
+emit_32(1066993608);
+emit_32(1125412897);
+emit_32(3278016545);
+emit_32(1038259757);
+emit_32(1125412897);
+emit_32(3277760496);
+emit_32(1064430889);
+emit_32(1125412897);
+emit_32(3277504512);
+emit_32(1068992026);
+emit_32(1125412897);
+emit_32(3277248528);
+emit_32(1074031860);
+emit_32(1125412897);
+emit_32(3276992545);
+emit_32(1074904275);
+emit_32(1125412897);
+emit_32(3276736496);
+emit_32(1074708653);
+emit_32(1125412897);
+emit_32(3276480512);
+emit_32(1076428066);
+emit_32(1125412897);
+emit_32(3276224528);
+emit_32(1077918302);
+emit_32(1125412897);
+emit_32(3275968545);
+emit_32(1085074875);
+emit_32(1125412897);
+emit_32(3275712496);
+emit_32(1090557240);
+emit_32(1125412897);
+emit_32(3275456512);
+emit_32(1092638422);
+emit_32(1125412897);
+emit_32(3275200528);
+emit_32(1094944555);
+emit_32(1125412897);
+emit_32(3274944545);
+emit_32(1097008048);
+emit_32(1125412897);
+emit_32(3274688496);
+emit_32(1097387737);
+emit_32(1125412897);
+emit_32(3274432512);
+emit_32(1098056204);
+emit_32(1125412897);
+emit_32(3274176528);
+emit_32(1098092066);
+emit_32(1125412897);
+emit_32(3273920545);
+emit_32(1099683122);
+emit_32(1125412897);
+emit_32(3273664496);
+emit_32(1100803369);
+emit_32(1125412897);
+emit_32(3273408512);
+emit_32(1101115267);
+emit_32(1125412897);
+emit_32(3273152528);
+emit_32(1101294207);
+emit_32(1125412897);
+emit_32(3272896545);
+emit_32(1101133932);
+emit_32(1125412897);
+emit_32(3272640496);
+emit_32(1101242093);
+emit_32(1125412897);
+emit_32(3272384512);
+emit_32(1101498994);
+emit_32(1125412897);
+emit_32(3272128528);
+emit_32(1102385303);
+emit_32(1125412897);
+emit_32(3271872545);
+emit_32(1103696757);
+emit_32(1125412897);
+emit_32(3271616496);
+emit_32(1104690492);
+emit_32(1125412897);
+emit_32(3271163904);
+emit_32(1105923146);
+emit_32(1125412897);
+emit_32(3270651937);
+emit_32(1106797868);
+emit_32(1125412897);
+emit_32(3270139970);
+emit_32(1107151867);
+emit_32(1125412897);
+emit_32(3269627871);
+emit_32(1107261181);
+emit_32(1125412897);
+emit_32(3269115904);
+emit_32(1107270933);
+emit_32(1125412897);
+emit_32(3268603937);
+emit_32(1107353141);
+emit_32(1125412897);
+emit_32(3268091970);
+emit_32(1107243880);
+emit_32(1125412897);
+emit_32(3267579911);
+emit_32(1106494620);
+emit_32(1125412897);
+emit_32(3267067904);
+emit_32(1105521174);
+emit_32(1125412897);
+emit_32(3266555911);
+emit_32(1104449162);
+emit_32(1125412897);
+emit_32(3266043904);
+emit_32(1103510110);
+emit_32(1125412897);
+emit_32(3265531911);
+emit_32(1102747953);
+emit_32(1125412897);
+emit_32(3265019904);
+emit_32(1102196874);
+emit_32(1125412897);
+emit_32(3264507911);
+emit_32(1102074085);
+emit_32(1125412897);
+emit_32(3263995904);
+emit_32(1101784888);
+emit_32(1125412897);
+emit_32(3263483911);
+emit_32(1101295203);
+emit_32(1125412897);
+emit_32(3262775296);
+emit_32(1100689231);
+emit_32(1125412897);
+emit_32(3261751309);
+emit_32(1100003515);
+emit_32(1125412897);
+emit_32(3260727296);
+emit_32(1099230295);
+emit_32(1125412897);
+emit_32(3259703309);
+emit_32(1098733375);
+emit_32(1125412897);
+emit_32(3258679296);
+emit_32(1096895326);
+emit_32(1125412897);
+emit_32(3257655309);
+emit_32(1095571918);
+emit_32(1125412897);
+emit_32(3256631296);
+emit_32(1096896374);
+emit_32(1125412897);
+emit_32(3255607309);
+emit_32(1097195638);
+emit_32(1125412897);
+emit_32(3254386688);
+emit_32(1097122238);
+emit_32(1125412897);
+emit_32(3252338714);
+emit_32(1098028522);
+emit_32(1125412897);
+emit_32(3250290688);
+emit_32(1096753663);
+emit_32(1125412897);
+emit_32(3248242714);
+emit_32(1097797416);
+emit_32(1125412897);
+emit_32(3245998080);
+emit_32(1098329673);
+emit_32(1125412897);
+emit_32(3241902132);
+emit_32(1098215273);
+emit_32(1125412897);
+emit_32(3237609472);
+emit_32(1097896401);
+emit_32(1125412897);
+emit_32(3229220864);
+emit_32(1098533411);
+emit_32(1125412897);
+emit_32(0);
+emit_32(1099233650);
+emit_32(1125412897);
+emit_32(1081737216);
+emit_32(1100171654);
+emit_32(1125412897);
+emit_32(3279552512);
+emit_32(1085043754);
+emit_32(1125156848);
+emit_32(3279296528);
+emit_32(1082745359);
+emit_32(1125156848);
+emit_32(3279040545);
+emit_32(1077929543);
+emit_32(1125156848);
+emit_32(3278784496);
+emit_32(1077120797);
+emit_32(1125156848);
+emit_32(3278528512);
+emit_32(1070829467);
+emit_32(1125156848);
+emit_32(3278272528);
+emit_32(3196693122);
+emit_32(1125156848);
+emit_32(3278016545);
+emit_32(3203591578);
+emit_32(1125156848);
+emit_32(3277760496);
+emit_32(3178809932);
+emit_32(1125156848);
+emit_32(3277504512);
+emit_32(1062996554);
+emit_32(1125156848);
+emit_32(3277248528);
+emit_32(1067740194);
+emit_32(1125156848);
+emit_32(3276992545);
+emit_32(1071204690);
+emit_32(1125156848);
+emit_32(3276736496);
+emit_32(1074277437);
+emit_32(1125156848);
+emit_32(3276480512);
+emit_32(1077601171);
+emit_32(1125156848);
+emit_32(3276224528);
+emit_32(1081521125);
+emit_32(1125156848);
+emit_32(3275968545);
+emit_32(1082948300);
+emit_32(1125156848);
+emit_32(3275712496);
+emit_32(1087836804);
+emit_32(1125156848);
+emit_32(3275456512);
+emit_32(1091823815);
+emit_32(1125156848);
+emit_32(3275200528);
+emit_32(1094296745);
+emit_32(1125156848);
+emit_32(3274944545);
+emit_32(1095976039);
+emit_32(1125156848);
+emit_32(3274688496);
+emit_32(1097507484);
+emit_32(1125156848);
+emit_32(3274432512);
+emit_32(1097570923);
+emit_32(1125156848);
+emit_32(3274176528);
+emit_32(1098982359);
+emit_32(1125156848);
+emit_32(3273920545);
+emit_32(1100051802);
+emit_32(1125156848);
+emit_32(3273664496);
+emit_32(1100994419);
+emit_32(1125156848);
+emit_32(3273408512);
+emit_32(1102158705);
+emit_32(1125156848);
+emit_32(3273152528);
+emit_32(1102017357);
+emit_32(1125156848);
+emit_32(3272896545);
+emit_32(1102232735);
+emit_32(1125156848);
+emit_32(3272640496);
+emit_32(1101864265);
+emit_32(1125156848);
+emit_32(3272384512);
+emit_32(1102610222);
+emit_32(1125156848);
+emit_32(3272128528);
+emit_32(1103466332);
+emit_32(1125156848);
+emit_32(3271872545);
+emit_32(1104473437);
+emit_32(1125156848);
+emit_32(3271616496);
+emit_32(1106243066);
+emit_32(1125156848);
+emit_32(3271163904);
+emit_32(1107111235);
+emit_32(1125156848);
+emit_32(3270651937);
+emit_32(1107425205);
+emit_32(1125156848);
+emit_32(3270139970);
+emit_32(1107552502);
+emit_32(1125156848);
+emit_32(3269627871);
+emit_32(1107600002);
+emit_32(1125156848);
+emit_32(3269115904);
+emit_32(1107564875);
+emit_32(1125156848);
+emit_32(3268603937);
+emit_32(1107418258);
+emit_32(1125156848);
+emit_32(3268091970);
+emit_32(1107034584);
+emit_32(1125156848);
+emit_32(3267579911);
+emit_32(1106363600);
+emit_32(1125156848);
+emit_32(3267067904);
+emit_32(1105390731);
+emit_32(1125156848);
+emit_32(3266555911);
+emit_32(1104501591);
+emit_32(1125156848);
+emit_32(3266043904);
+emit_32(1103946108);
+emit_32(1125156848);
+emit_32(3265531911);
+emit_32(1102869325);
+emit_32(1125156848);
+emit_32(3265019904);
+emit_32(1101989360);
+emit_32(1125156848);
+emit_32(3264507911);
+emit_32(1101780170);
+emit_32(1125156848);
+emit_32(3263995904);
+emit_32(1101640971);
+emit_32(1125156848);
+emit_32(3263483911);
+emit_32(1101030700);
+emit_32(1125156848);
+emit_32(3262775296);
+emit_32(1100725564);
+emit_32(1125156848);
+emit_32(3261751309);
+emit_32(1099604322);
+emit_32(1125156848);
+emit_32(3260727296);
+emit_32(1099292318);
+emit_32(1125156848);
+emit_32(3259703309);
+emit_32(1098829949);
+emit_32(1125156848);
+emit_32(3258679296);
+emit_32(1097125803);
+emit_32(1125156848);
+emit_32(3257655309);
+emit_32(1096142658);
+emit_32(1125156848);
+emit_32(3256631296);
+emit_32(1095542138);
+emit_32(1125156848);
+emit_32(3255607309);
+emit_32(1096456811);
+emit_32(1125156848);
+emit_32(3254386688);
+emit_32(1096482501);
+emit_32(1125156848);
+emit_32(3252338714);
+emit_32(1096896270);
+emit_32(1125156848);
+emit_32(3250290688);
+emit_32(1096761213);
+emit_32(1125156848);
+emit_32(3248242714);
+emit_32(1096850971);
+emit_32(1125156848);
+emit_32(3245998080);
+emit_32(1096941463);
+emit_32(1125156848);
+emit_32(3241902132);
+emit_32(1096922589);
+emit_32(1125156848);
+emit_32(3237609472);
+emit_32(1097331429);
+emit_32(1125156848);
+emit_32(3229220864);
+emit_32(1098308177);
+emit_32(1125156848);
+emit_32(0);
+emit_32(1099200882);
+emit_32(1125156848);
+emit_32(1081737216);
+emit_32(1099891107);
+emit_32(1125156848);
+emit_32(3279552512);
+emit_32(1084907963);
+emit_32(1124900864);
+emit_32(3279296528);
+emit_32(1083246159);
+emit_32(1124900864);
+emit_32(3279040545);
+emit_32(1077321704);
+emit_32(1124900864);
+emit_32(3278784496);
+emit_32(1069416909);
+emit_32(1124900864);
+emit_32(3278528512);
+emit_32(1044789651);
+emit_32(1124900864);
+emit_32(3278272528);
+emit_32(3167012033);
+emit_32(1124900864);
+emit_32(3278016545);
+emit_32(3192403624);
+emit_32(1124900864);
+emit_32(3277760496);
+emit_32(3204872485);
+emit_32(1124900864);
+emit_32(3277504512);
+emit_32(1048751859);
+emit_32(1124900864);
+emit_32(3277248528);
+emit_32(1057065154);
+emit_32(1124900864);
+emit_32(3276992545);
+emit_32(1067451207);
+emit_32(1124900864);
+emit_32(3276736496);
+emit_32(1076983266);
+emit_32(1124900864);
+emit_32(3276480512);
+emit_32(1078929255);
+emit_32(1124900864);
+emit_32(3276224528);
+emit_32(1081361406);
+emit_32(1124900864);
+emit_32(3275968545);
+emit_32(1083089858);
+emit_32(1124900864);
+emit_32(3275712496);
+emit_32(1087525083);
+emit_32(1124900864);
+emit_32(3275456512);
+emit_32(1091337443);
+emit_32(1124900864);
+emit_32(3275200528);
+emit_32(1093300912);
+emit_32(1124900864);
+emit_32(3274944545);
+emit_32(1094898103);
+emit_32(1124900864);
+emit_32(3274688496);
+emit_32(1096638530);
+emit_32(1124900864);
+emit_32(3274432512);
+emit_32(1097274071);
+emit_32(1124900864);
+emit_32(3274176528);
+emit_32(1099026766);
+emit_32(1124900864);
+emit_32(3273920545);
+emit_32(1099861538);
+emit_32(1124900864);
+emit_32(3273664496);
+emit_32(1101176137);
+emit_32(1124900864);
+emit_32(3273408512);
+emit_32(1101893049);
+emit_32(1124900864);
+emit_32(3273152528);
+emit_32(1101975047);
+emit_32(1124900864);
+emit_32(3272896545);
+emit_32(1102502691);
+emit_32(1124900864);
+emit_32(3272640496);
+emit_32(1102587573);
+emit_32(1124900864);
+emit_32(3272384512);
+emit_32(1103471103);
+emit_32(1124900864);
+emit_32(3272128528);
+emit_32(1104395895);
+emit_32(1124900864);
+emit_32(3271872545);
+emit_32(1105537742);
+emit_32(1124900864);
+emit_32(3271616496);
+emit_32(1106756659);
+emit_32(1124900864);
+emit_32(3271163904);
+emit_32(1107634867);
+emit_32(1124900864);
+emit_32(3270651937);
+emit_32(1108079516);
+emit_32(1124900864);
+emit_32(3270139970);
+emit_32(1107976153);
+emit_32(1124900864);
+emit_32(3269627871);
+emit_32(1107884271);
+emit_32(1124900864);
+emit_32(3269115904);
+emit_32(1107747642);
+emit_32(1124900864);
+emit_32(3268603937);
+emit_32(1107549985);
+emit_32(1124900864);
+emit_32(3268091970);
+emit_32(1106944773);
+emit_32(1124900864);
+emit_32(3267579911);
+emit_32(1106247732);
+emit_32(1124900864);
+emit_32(3267067904);
+emit_32(1105208646);
+emit_32(1124900864);
+emit_32(3266555911);
+emit_32(1104283802);
+emit_32(1124900864);
+emit_32(3266043904);
+emit_32(1103606946);
+emit_32(1124900864);
+emit_32(3265531911);
+emit_32(1102871160);
+emit_32(1124900864);
+emit_32(3265019904);
+emit_32(1101718513);
+emit_32(1124900864);
+emit_32(3264507911);
+emit_32(1101446513);
+emit_32(1124900864);
+emit_32(3263995904);
+emit_32(1101370543);
+emit_32(1124900864);
+emit_32(3263483911);
+emit_32(1100714292);
+emit_32(1124900864);
+emit_32(3262775296);
+emit_32(1099954599);
+emit_32(1124900864);
+emit_32(3261751309);
+emit_32(1099576325);
+emit_32(1124900864);
+emit_32(3260727296);
+emit_32(1099307680);
+emit_32(1124900864);
+emit_32(3259703309);
+emit_32(1098767978);
+emit_32(1124900864);
+emit_32(3258679296);
+emit_32(1098097938);
+emit_32(1124900864);
+emit_32(3257655309);
+emit_32(1096914095);
+emit_32(1124900864);
+emit_32(3256631296);
+emit_32(1096195192);
+emit_32(1124900864);
+emit_32(3255607309);
+emit_32(1095657482);
+emit_32(1124900864);
+emit_32(3254386688);
+emit_32(1095370487);
+emit_32(1124900864);
+emit_32(3252338714);
+emit_32(1095450703);
+emit_32(1124900864);
+emit_32(3250290688);
+emit_32(1094766612);
+emit_32(1124900864);
+emit_32(3248242714);
+emit_32(1095587018);
+emit_32(1124900864);
+emit_32(3245998080);
+emit_32(1094951266);
+emit_32(1124900864);
+emit_32(3241902132);
+emit_32(1094949903);
+emit_32(1124900864);
+emit_32(3237609472);
+emit_32(1096714656);
+emit_32(1124900864);
+emit_32(3229220864);
+emit_32(1098445226);
+emit_32(1124900864);
+emit_32(0);
+emit_32(1099331587);
+emit_32(1124900864);
+emit_32(1081737216);
+emit_32(1100260206);
+emit_32(1124900864);
+emit_32(3279552512);
+emit_32(1083591665);
+emit_32(1124644880);
+emit_32(3279296528);
+emit_32(1079852212);
+emit_32(1124644880);
+emit_32(3279040545);
+emit_32(1072228855);
+emit_32(1124644880);
+emit_32(3278784496);
+emit_32(1066448684);
+emit_32(1124644880);
+emit_32(3278528512);
+emit_32(1057555518);
+emit_32(1124644880);
+emit_32(3278272528);
+emit_32(1063153790);
+emit_32(1124644880);
+emit_32(3278016545);
+emit_32(1058210333);
+emit_32(1124644880);
+emit_32(3277760496);
+emit_32(1049561427);
+emit_32(1124644880);
+emit_32(3277504512);
+emit_32(3214410567);
+emit_32(1124644880);
+emit_32(3277248528);
+emit_32(3207614251);
+emit_32(1124644880);
+emit_32(3276992545);
+emit_32(1055980993);
+emit_32(1124644880);
+emit_32(3276736496);
+emit_32(1073762292);
+emit_32(1124644880);
+emit_32(3276480512);
+emit_32(1079724747);
+emit_32(1124644880);
+emit_32(3276224528);
+emit_32(1082560411);
+emit_32(1124644880);
+emit_32(3275968545);
+emit_32(1084722260);
+emit_32(1124644880);
+emit_32(3275712496);
+emit_32(1086375571);
+emit_32(1124644880);
+emit_32(3275456512);
+emit_32(1090446500);
+emit_32(1124644880);
+emit_32(3275200528);
+emit_32(1093171832);
+emit_32(1124644880);
+emit_32(3274944545);
+emit_32(1094812015);
+emit_32(1124644880);
+emit_32(3274688496);
+emit_32(1096292290);
+emit_32(1124644880);
+emit_32(3274432512);
+emit_32(1097734921);
+emit_32(1124644880);
+emit_32(3274176528);
+emit_32(1099196531);
+emit_32(1124644880);
+emit_32(3273920545);
+emit_32(1099805229);
+emit_32(1124644880);
+emit_32(3273664496);
+emit_32(1100823187);
+emit_32(1124644880);
+emit_32(3273408512);
+emit_32(1101755685);
+emit_32(1124644880);
+emit_32(3273152528);
+emit_32(1102405698);
+emit_32(1124644880);
+emit_32(3272896545);
+emit_32(1102759225);
+emit_32(1124644880);
+emit_32(3272640496);
+emit_32(1103381607);
+emit_32(1124644880);
+emit_32(3272384512);
+emit_32(1104182510);
+emit_32(1124644880);
+emit_32(3272128528);
+emit_32(1105063995);
+emit_32(1124644880);
+emit_32(3271872545);
+emit_32(1106336390);
+emit_32(1124644880);
+emit_32(3271616496);
+emit_32(1107656416);
+emit_32(1124644880);
+emit_32(3271163904);
+emit_32(1108075925);
+emit_32(1124644880);
+emit_32(3270651937);
+emit_32(1108328763);
+emit_32(1124644880);
+emit_32(3270139970);
+emit_32(1108369080);
+emit_32(1124644880);
+emit_32(3269627871);
+emit_32(1108254366);
+emit_32(1124644880);
+emit_32(3269115904);
+emit_32(1107968551);
+emit_32(1124644880);
+emit_32(3268603937);
+emit_32(1107979456);
+emit_32(1124644880);
+emit_32(3268091970);
+emit_32(1107515802);
+emit_32(1124644880);
+emit_32(3267579911);
+emit_32(1106388084);
+emit_32(1124644880);
+emit_32(3267067904);
+emit_32(1104790841);
+emit_32(1124644880);
+emit_32(3266555911);
+emit_32(1104209563);
+emit_32(1124644880);
+emit_32(3266043904);
+emit_32(1103624405);
+emit_32(1124644880);
+emit_32(3265531911);
+emit_32(1102359613);
+emit_32(1124644880);
+emit_32(3265019904);
+emit_32(1101907257);
+emit_32(1124644880);
+emit_32(3264507911);
+emit_32(1101809058);
+emit_32(1124644880);
+emit_32(3263995904);
+emit_32(1101301128);
+emit_32(1124644880);
+emit_32(3263483911);
+emit_32(1100497289);
+emit_32(1124644880);
+emit_32(3262775296);
+emit_32(1099654863);
+emit_32(1124644880);
+emit_32(3261751309);
+emit_32(1099315701);
+emit_32(1124644880);
+emit_32(3260727296);
+emit_32(1098867697);
+emit_32(1124644880);
+emit_32(3259703309);
+emit_32(1097723491);
+emit_32(1124644880);
+emit_32(3258679296);
+emit_32(1097140063);
+emit_32(1124644880);
+emit_32(3257655309);
+emit_32(1096683933);
+emit_32(1124644880);
+emit_32(3256631296);
+emit_32(1095379399);
+emit_32(1124644880);
+emit_32(3255607309);
+emit_32(1094758747);
+emit_32(1124644880);
+emit_32(3254386688);
+emit_32(1094561405);
+emit_32(1124644880);
+emit_32(3252338714);
+emit_32(1094733582);
+emit_32(1124644880);
+emit_32(3250290688);
+emit_32(1093957845);
+emit_32(1124644880);
+emit_32(3248242714);
+emit_32(1094294123);
+emit_32(1124644880);
+emit_32(3245998080);
+emit_32(1093574905);
+emit_32(1124644880);
+emit_32(3241902132);
+emit_32(1094867799);
+emit_32(1124644880);
+emit_32(3237609472);
+emit_32(1097134821);
+emit_32(1124644880);
+emit_32(3229220864);
+emit_32(1099036099);
+emit_32(1124644880);
+emit_32(0);
+emit_32(1099596615);
+emit_32(1124644880);
+emit_32(1081737216);
+emit_32(1100859258);
+emit_32(1124644880);
+emit_32(3279552512);
+emit_32(1081904485);
+emit_32(1124388897);
+emit_32(3279296528);
+emit_32(1075136304);
+emit_32(1124388897);
+emit_32(3279040545);
+emit_32(1073454011);
+emit_32(1124388897);
+emit_32(3278784496);
+emit_32(1066813673);
+emit_32(1124388897);
+emit_32(3278528512);
+emit_32(1058745375);
+emit_32(1124388897);
+emit_32(3278272528);
+emit_32(1007923565);
+emit_32(1124388897);
+emit_32(3278016545);
+emit_32(1041418101);
+emit_32(1124388897);
+emit_32(3277760496);
+emit_32(3199617458);
+emit_32(1124388897);
+emit_32(3277504512);
+emit_32(3217487424);
+emit_32(1124388897);
+emit_32(3277248528);
+emit_32(3214749551);
+emit_32(1124388897);
+emit_32(3276992545);
+emit_32(3200772133);
+emit_32(1124388897);
+emit_32(3276736496);
+emit_32(1066640783);
+emit_32(1124388897);
+emit_32(3276480512);
+emit_32(1076373750);
+emit_32(1124388897);
+emit_32(3276224528);
+emit_32(1080280534);
+emit_32(1124388897);
+emit_32(3275968545);
+emit_32(1084212505);
+emit_32(1124388897);
+emit_32(3275712496);
+emit_32(1084220726);
+emit_32(1124388897);
+emit_32(3275456512);
+emit_32(1088347817);
+emit_32(1124388897);
+emit_32(3275200528);
+emit_32(1092688649);
+emit_32(1124388897);
+emit_32(3274944545);
+emit_32(1095110020);
+emit_32(1124388897);
+emit_32(3274688496);
+emit_32(1096019765);
+emit_32(1124388897);
+emit_32(3274432512);
+emit_32(1097191863);
+emit_32(1124388897);
+emit_32(3274176528);
+emit_32(1099076574);
+emit_32(1124388897);
+emit_32(3273920545);
+emit_32(1099798099);
+emit_32(1124388897);
+emit_32(3273664496);
+emit_32(1100653265);
+emit_32(1124388897);
+emit_32(3273408512);
+emit_32(1101516925);
+emit_32(1124388897);
+emit_32(3273152528);
+emit_32(1102653791);
+emit_32(1124388897);
+emit_32(3272896545);
+emit_32(1103041659);
+emit_32(1124388897);
+emit_32(3272640496);
+emit_32(1103477814);
+emit_32(1124388897);
+emit_32(3272384512);
+emit_32(1104761586);
+emit_32(1124388897);
+emit_32(3272128528);
+emit_32(1105735555);
+emit_32(1124388897);
+emit_32(3271872545);
+emit_32(1106382579);
+emit_32(1124388897);
+emit_32(3271616496);
+emit_32(1107704231);
+emit_32(1124388897);
+emit_32(3271163904);
+emit_32(1108131394);
+emit_32(1124388897);
+emit_32(3270651937);
+emit_32(1108458393);
+emit_32(1124388897);
+emit_32(3270139970);
+emit_32(1108511529);
+emit_32(1124388897);
+emit_32(3269627871);
+emit_32(1108351464);
+emit_32(1124388897);
+emit_32(3269115904);
+emit_32(1108007374);
+emit_32(1124388897);
+emit_32(3268603937);
+emit_32(1107999667);
+emit_32(1124388897);
+emit_32(3268091970);
+emit_32(1107747353);
+emit_32(1124388897);
+emit_32(3267579911);
+emit_32(1106761954);
+emit_32(1124388897);
+emit_32(3267067904);
+emit_32(1105151446);
+emit_32(1124388897);
+emit_32(3266555911);
+emit_32(1103997960);
+emit_32(1124388897);
+emit_32(3266043904);
+emit_32(1103338930);
+emit_32(1124388897);
+emit_32(3265531911);
+emit_32(1102310120);
+emit_32(1124388897);
+emit_32(3265019904);
+emit_32(1102078804);
+emit_32(1124388897);
+emit_32(3264507911);
+emit_32(1102132910);
+emit_32(1124388897);
+emit_32(3263995904);
+emit_32(1101260338);
+emit_32(1124388897);
+emit_32(3263483911);
+emit_32(1100505783);
+emit_32(1124388897);
+emit_32(3262775296);
+emit_32(1099485361);
+emit_32(1124388897);
+emit_32(3261751309);
+emit_32(1099317379);
+emit_32(1124388897);
+emit_32(3260727296);
+emit_32(1097990459);
+emit_32(1124388897);
+emit_32(3259703309);
+emit_32(1097342543);
+emit_32(1124388897);
+emit_32(3258679296);
+emit_32(1095513512);
+emit_32(1124388897);
+emit_32(3257655309);
+emit_32(1095404880);
+emit_32(1124388897);
+emit_32(3256631296);
+emit_32(1094651059);
+emit_32(1124388897);
+emit_32(3255607309);
+emit_32(1094446901);
+emit_32(1124388897);
+emit_32(3254386688);
+emit_32(1093497625);
+emit_32(1124388897);
+emit_32(3252338714);
+emit_32(1093705977);
+emit_32(1124388897);
+emit_32(3250290688);
+emit_32(1093119299);
+emit_32(1124388897);
+emit_32(3248242714);
+emit_32(1093472354);
+emit_32(1124388897);
+emit_32(3245998080);
+emit_32(1095171362);
+emit_32(1124388897);
+emit_32(3241902132);
+emit_32(1096014103);
+emit_32(1124388897);
+emit_32(3237609472);
+emit_32(1097783784);
+emit_32(1124388897);
+emit_32(3229220864);
+emit_32(1099140904);
+emit_32(1124388897);
+emit_32(0);
+emit_32(1099863844);
+emit_32(1124388897);
+emit_32(1081737216);
+emit_32(1100982465);
+emit_32(1124388897);
+emit_32(3279552512);
+emit_32(1076151032);
+emit_32(1124132848);
+emit_32(3279296528);
+emit_32(1074265021);
+emit_32(1124132848);
+emit_32(3279040545);
+emit_32(1059897651);
+emit_32(1124132848);
+emit_32(3278784496);
+emit_32(3197909672);
+emit_32(1124132848);
+emit_32(3278528512);
+emit_32(3211975304);
+emit_32(1124132848);
+emit_32(3278272528);
+emit_32(3212548900);
+emit_32(1124132848);
+emit_32(3278016545);
+emit_32(3214293881);
+emit_32(1124132848);
+emit_32(3277760496);
+emit_32(3216921864);
+emit_32(1124132848);
+emit_32(3277504512);
+emit_32(3222195908);
+emit_32(1124132848);
+emit_32(3277248528);
+emit_32(3221805335);
+emit_32(1124132848);
+emit_32(3276992545);
+emit_32(3213409470);
+emit_32(1124132848);
+emit_32(3276736496);
+emit_32(1032354486);
+emit_32(1124132848);
+emit_32(3276480512);
+emit_32(1066671654);
+emit_32(1124132848);
+emit_32(3276224528);
+emit_32(1078555291);
+emit_32(1124132848);
+emit_32(3275968545);
+emit_32(1082316198);
+emit_32(1124132848);
+emit_32(3275712496);
+emit_32(1084389652);
+emit_32(1124132848);
+emit_32(3275456512);
+emit_32(1090589284);
+emit_32(1124132848);
+emit_32(3275200528);
+emit_32(1093399793);
+emit_32(1124132848);
+emit_32(3274944545);
+emit_32(1094797335);
+emit_32(1124132848);
+emit_32(3274688496);
+emit_32(1095931475);
+emit_32(1124132848);
+emit_32(3274432512);
+emit_32(1097364459);
+emit_32(1124132848);
+emit_32(3274176528);
+emit_32(1098713452);
+emit_32(1124132848);
+emit_32(3273920545);
+emit_32(1099383020);
+emit_32(1124132848);
+emit_32(3273664496);
+emit_32(1100286158);
+emit_32(1124132848);
+emit_32(3273408512);
+emit_32(1101469791);
+emit_32(1124132848);
+emit_32(3273152528);
+emit_32(1102376757);
+emit_32(1124132848);
+emit_32(3272896545);
+emit_32(1103068345);
+emit_32(1124132848);
+emit_32(3272640496);
+emit_32(1104423682);
+emit_32(1124132848);
+emit_32(3272384512);
+emit_32(1104904507);
+emit_32(1124132848);
+emit_32(3272128528);
+emit_32(1106022131);
+emit_32(1124132848);
+emit_32(3271872545);
+emit_32(1106604720);
+emit_32(1124132848);
+emit_32(3271616496);
+emit_32(1107631800);
+emit_32(1124132848);
+emit_32(3271163904);
+emit_32(1108172682);
+emit_32(1124132848);
+emit_32(3270651937);
+emit_32(1108436818);
+emit_32(1124132848);
+emit_32(3270139970);
+emit_32(1108399830);
+emit_32(1124132848);
+emit_32(3269627871);
+emit_32(1108123845);
+emit_32(1124132848);
+emit_32(3269115904);
+emit_32(1108184505);
+emit_32(1124132848);
+emit_32(3268603937);
+emit_32(1108270331);
+emit_32(1124132848);
+emit_32(3268091970);
+emit_32(1107910957);
+emit_32(1124132848);
+emit_32(3267579911);
+emit_32(1107432518);
+emit_32(1124132848);
+emit_32(3267067904);
+emit_32(1105755426);
+emit_32(1124132848);
+emit_32(3266555911);
+emit_32(1104147644);
+emit_32(1124132848);
+emit_32(3266043904);
+emit_32(1103239525);
+emit_32(1124132848);
+emit_32(3265531911);
+emit_32(1102590666);
+emit_32(1124132848);
+emit_32(3265019904);
+emit_32(1101844290);
+emit_32(1124132848);
+emit_32(3264507911);
+emit_32(1101550007);
+emit_32(1124132848);
+emit_32(3263995904);
+emit_32(1101094925);
+emit_32(1124132848);
+emit_32(3263483911);
+emit_32(1100315990);
+emit_32(1124132848);
+emit_32(3262775296);
+emit_32(1099604269);
+emit_32(1124132848);
+emit_32(3261751309);
+emit_32(1098955673);
+emit_32(1124132848);
+emit_32(3260727296);
+emit_32(1096931397);
+emit_32(1124132848);
+emit_32(3259703309);
+emit_32(1095373108);
+emit_32(1124132848);
+emit_32(3258679296);
+emit_32(1094758538);
+emit_32(1124132848);
+emit_32(3257655309);
+emit_32(1094166512);
+emit_32(1124132848);
+emit_32(3256631296);
+emit_32(1094620021);
+emit_32(1124132848);
+emit_32(3255607309);
+emit_32(1094357772);
+emit_32(1124132848);
+emit_32(3254386688);
+emit_32(1093070435);
+emit_32(1124132848);
+emit_32(3252338714);
+emit_32(1092280920);
+emit_32(1124132848);
+emit_32(3250290688);
+emit_32(1092453726);
+emit_32(1124132848);
+emit_32(3248242714);
+emit_32(1094304085);
+emit_32(1124132848);
+emit_32(3245998080);
+emit_32(1096070621);
+emit_32(1124132848);
+emit_32(3241902132);
+emit_32(1096864812);
+emit_32(1124132848);
+emit_32(3237609472);
+emit_32(1098173435);
+emit_32(1124132848);
+emit_32(3229220864);
+emit_32(1099365404);
+emit_32(1124132848);
+emit_32(0);
+emit_32(1099987367);
+emit_32(1124132848);
+emit_32(1081737216);
+emit_32(1101050728);
+emit_32(1124132848);
+emit_32(3279552512);
+emit_32(1075745946);
+emit_32(1123680256);
+emit_32(3279296528);
+emit_32(1067640202);
+emit_32(1123680256);
+emit_32(3279040545);
+emit_32(3205049803);
+emit_32(1123680256);
+emit_32(3278784496);
+emit_32(3215612571);
+emit_32(1123680256);
+emit_32(3278528512);
+emit_32(3218144588);
+emit_32(1123680256);
+emit_32(3278272528);
+emit_32(3222509223);
+emit_32(1123680256);
+emit_32(3278016545);
+emit_32(3221797869);
+emit_32(1123680256);
+emit_32(3277760496);
+emit_32(3225243909);
+emit_32(1123680256);
+emit_32(3277504512);
+emit_32(3225089810);
+emit_32(1123680256);
+emit_32(3277248528);
+emit_32(3226837912);
+emit_32(1123680256);
+emit_32(3276992545);
+emit_32(3222475668);
+emit_32(1123680256);
+emit_32(3276736496);
+emit_32(3210500905);
+emit_32(1123680256);
+emit_32(3276480512);
+emit_32(1057082501);
+emit_32(1123680256);
+emit_32(3276224528);
+emit_32(1069886755);
+emit_32(1123680256);
+emit_32(3275968545);
+emit_32(1079284135);
+emit_32(1123680256);
+emit_32(3275712496);
+emit_32(1085833856);
+emit_32(1123680256);
+emit_32(3275456512);
+emit_32(1090703044);
+emit_32(1123680256);
+emit_32(3275200528);
+emit_32(1093163863);
+emit_32(1123680256);
+emit_32(3274944545);
+emit_32(1094161898);
+emit_32(1123680256);
+emit_32(3274688496);
+emit_32(1095085064);
+emit_32(1123680256);
+emit_32(3274432512);
+emit_32(1096343041);
+emit_32(1123680256);
+emit_32(3274176528);
+emit_32(1097267465);
+emit_32(1123680256);
+emit_32(3273920545);
+emit_32(1099232549);
+emit_32(1123680256);
+emit_32(3273664496);
+emit_32(1100352638);
+emit_32(1123680256);
+emit_32(3273408512);
+emit_32(1101666347);
+emit_32(1123680256);
+emit_32(3273152528);
+emit_32(1102553599);
+emit_32(1123680256);
+emit_32(3272896545);
+emit_32(1103499048);
+emit_32(1123680256);
+emit_32(3272640496);
+emit_32(1104589619);
+emit_32(1123680256);
+emit_32(3272384512);
+emit_32(1105372486);
+emit_32(1123680256);
+emit_32(3272128528);
+emit_32(1105859602);
+emit_32(1123680256);
+emit_32(3271872545);
+emit_32(1106894337);
+emit_32(1123680256);
+emit_32(3271616496);
+emit_32(1107538372);
+emit_32(1123680256);
+emit_32(3271163904);
+emit_32(1107947762);
+emit_32(1123680256);
+emit_32(3270651937);
+emit_32(1108124343);
+emit_32(1123680256);
+emit_32(3270139970);
+emit_32(1107942572);
+emit_32(1123680256);
+emit_32(3269627871);
+emit_32(1108284329);
+emit_32(1123680256);
+emit_32(3269115904);
+emit_32(1108344439);
+emit_32(1123680256);
+emit_32(3268603937);
+emit_32(1108291722);
+emit_32(1123680256);
+emit_32(3268091970);
+emit_32(1107980426);
+emit_32(1123680256);
+emit_32(3267579911);
+emit_32(1107402844);
+emit_32(1123680256);
+emit_32(3267067904);
+emit_32(1105639401);
+emit_32(1123680256);
+emit_32(3266555911);
+emit_32(1104157868);
+emit_32(1123680256);
+emit_32(3266043904);
+emit_32(1103642965);
+emit_32(1123680256);
+emit_32(3265531911);
+emit_32(1102980579);
+emit_32(1123680256);
+emit_32(3265019904);
+emit_32(1102268282);
+emit_32(1123680256);
+emit_32(3264507911);
+emit_32(1101485362);
+emit_32(1123680256);
+emit_32(3263995904);
+emit_32(1100559260);
+emit_32(1123680256);
+emit_32(3263483911);
+emit_32(1099869979);
+emit_32(1123680256);
+emit_32(3262775296);
+emit_32(1099177447);
+emit_32(1123680256);
+emit_32(3261751309);
+emit_32(1097774032);
+emit_32(1123680256);
+emit_32(3260727296);
+emit_32(1096015990);
+emit_32(1123680256);
+emit_32(3259703309);
+emit_32(1094982618);
+emit_32(1123680256);
+emit_32(3258679296);
+emit_32(1094173642);
+emit_32(1123680256);
+emit_32(3257655309);
+emit_32(1093433557);
+emit_32(1123680256);
+emit_32(3256631296);
+emit_32(1092957084);
+emit_32(1123680256);
+emit_32(3255607309);
+emit_32(1093043696);
+emit_32(1123680256);
+emit_32(3254386688);
+emit_32(1092576367);
+emit_32(1123680256);
+emit_32(3252338714);
+emit_32(1092381919);
+emit_32(1123680256);
+emit_32(3250290688);
+emit_32(1093319052);
+emit_32(1123680256);
+emit_32(3248242714);
+emit_32(1094929141);
+emit_32(1123680256);
+emit_32(3245998080);
+emit_32(1096641151);
+emit_32(1123680256);
+emit_32(3241902132);
+emit_32(1098022230);
+emit_32(1123680256);
+emit_32(3237609472);
+emit_32(1098658716);
+emit_32(1123680256);
+emit_32(3229220864);
+emit_32(1099385274);
+emit_32(1123680256);
+emit_32(0);
+emit_32(1099998324);
+emit_32(1123680256);
+emit_32(1081737216);
+emit_32(1100462372);
+emit_32(1123680256);
+emit_32(3279552512);
+emit_32(1073527831);
+emit_32(1123168289);
+emit_32(3279296528);
+emit_32(1067716203);
+emit_32(1123168289);
+emit_32(3279040545);
+emit_32(1032802545);
+emit_32(1123168289);
+emit_32(3278784496);
+emit_32(3215483554);
+emit_32(1123168289);
+emit_32(3278528512);
+emit_32(3222614416);
+emit_32(1123168289);
+emit_32(3278272528);
+emit_32(3226235358);
+emit_32(1123168289);
+emit_32(3278016545);
+emit_32(3229265659);
+emit_32(1123168289);
+emit_32(3277760496);
+emit_32(3229676575);
+emit_32(1123168289);
+emit_32(3277504512);
+emit_32(3230314529);
+emit_32(1123168289);
+emit_32(3277248528);
+emit_32(3227686797);
+emit_32(1123168289);
+emit_32(3276992545);
+emit_32(3224163288);
+emit_32(1123168289);
+emit_32(3276736496);
+emit_32(3224837816);
+emit_32(1123168289);
+emit_32(3276480512);
+emit_32(3214911115);
+emit_32(1123168289);
+emit_32(3276224528);
+emit_32(1045755414);
+emit_32(1123168289);
+emit_32(3275968545);
+emit_32(1075946895);
+emit_32(1123168289);
+emit_32(3275712496);
+emit_32(1083922239);
+emit_32(1123168289);
+emit_32(3275456512);
+emit_32(1089208404);
+emit_32(1123168289);
+emit_32(3275200528);
+emit_32(1091995729);
+emit_32(1123168289);
+emit_32(3274944545);
+emit_32(1093743097);
+emit_32(1123168289);
+emit_32(3274688496);
+emit_32(1094702019);
+emit_32(1123168289);
+emit_32(3274432512);
+emit_32(1095065456);
+emit_32(1123168289);
+emit_32(3274176528);
+emit_32(1095980443);
+emit_32(1123168289);
+emit_32(3273920545);
+emit_32(1098763574);
+emit_32(1123168289);
+emit_32(3273664496);
+emit_32(1100013791);
+emit_32(1123168289);
+emit_32(3273408512);
+emit_32(1101157106);
+emit_32(1123168289);
+emit_32(3273152528);
+emit_32(1102482401);
+emit_32(1123168289);
+emit_32(3272896545);
+emit_32(1103806543);
+emit_32(1123168289);
+emit_32(3272640496);
+emit_32(1104565135);
+emit_32(1123168289);
+emit_32(3272384512);
+emit_32(1105773671);
+emit_32(1123168289);
+emit_32(3272128528);
+emit_32(1106220312);
+emit_32(1123168289);
+emit_32(3271872545);
+emit_32(1106669942);
+emit_32(1123168289);
+emit_32(3271616496);
+emit_32(1107272401);
+emit_32(1123168289);
+emit_32(3271163904);
+emit_32(1107768771);
+emit_32(1123168289);
+emit_32(3270651937);
+emit_32(1108156770);
+emit_32(1123168289);
+emit_32(3270139970);
+emit_32(1108407039);
+emit_32(1123168289);
+emit_32(3269627871);
+emit_32(1108550903);
+emit_32(1123168289);
+emit_32(3269115904);
+emit_32(1108478263);
+emit_32(1123168289);
+emit_32(3268603937);
+emit_32(1108278274);
+emit_32(1123168289);
+emit_32(3268091970);
+emit_32(1107762925);
+emit_32(1123168289);
+emit_32(3267579911);
+emit_32(1106660819);
+emit_32(1123168289);
+emit_32(3267067904);
+emit_32(1105273658);
+emit_32(1123168289);
+emit_32(3266555911);
+emit_32(1104481668);
+emit_32(1123168289);
+emit_32(3266043904);
+emit_32(1104168826);
+emit_32(1123168289);
+emit_32(3265531911);
+emit_32(1103522536);
+emit_32(1123168289);
+emit_32(3265019904);
+emit_32(1102851185);
+emit_32(1123168289);
+emit_32(3264507911);
+emit_32(1101917061);
+emit_32(1123168289);
+emit_32(3263995904);
+emit_32(1101010095);
+emit_32(1123168289);
+emit_32(3263483911);
+emit_32(1099888329);
+emit_32(1123168289);
+emit_32(3262775296);
+emit_32(1098570531);
+emit_32(1123168289);
+emit_32(3261751309);
+emit_32(1096537866);
+emit_32(1123168289);
+emit_32(3260727296);
+emit_32(1095068497);
+emit_32(1123168289);
+emit_32(3259703309);
+emit_32(1094656406);
+emit_32(1123168289);
+emit_32(3258679296);
+emit_32(1094724039);
+emit_32(1123168289);
+emit_32(3257655309);
+emit_32(1093671584);
+emit_32(1123168289);
+emit_32(3256631296);
+emit_32(1092454407);
+emit_32(1123168289);
+emit_32(3255607309);
+emit_32(1092709935);
+emit_32(1123168289);
+emit_32(3254386688);
+emit_32(1093178858);
+emit_32(1123168289);
+emit_32(3252338714);
+emit_32(1092563312);
+emit_32(1123168289);
+emit_32(3250290688);
+emit_32(1093668753);
+emit_32(1123168289);
+emit_32(3248242714);
+emit_32(1095561013);
+emit_32(1123168289);
+emit_32(3245998080);
+emit_32(1096702388);
+emit_32(1123168289);
+emit_32(3241902132);
+emit_32(1097769524);
+emit_32(1123168289);
+emit_32(3237609472);
+emit_32(1098298111);
+emit_32(1123168289);
+emit_32(3229220864);
+emit_32(1098956931);
+emit_32(1123168289);
+emit_32(0);
+emit_32(1099464022);
+emit_32(1123168289);
+emit_32(1081737216);
+emit_32(1100235512);
+emit_32(1123168289);
+emit_32(3279552512);
+emit_32(1074513450);
+emit_32(1122656322);
+emit_32(3279296528);
+emit_32(1069684087);
+emit_32(1122656322);
+emit_32(3279040545);
+emit_32(1059117578);
+emit_32(1122656322);
+emit_32(3278784496);
+emit_32(3205587983);
+emit_32(1122656322);
+emit_32(3278528512);
+emit_32(3221291239);
+emit_32(1122656322);
+emit_32(3278272528);
+emit_32(3227143174);
+emit_32(1122656322);
+emit_32(3278016545);
+emit_32(3228890898);
+emit_32(1122656322);
+emit_32(3277760496);
+emit_32(3231744493);
+emit_32(1122656322);
+emit_32(3277504512);
+emit_32(3231183211);
+emit_32(1122656322);
+emit_32(3277248528);
+emit_32(3226713845);
+emit_32(1122656322);
+emit_32(3276992545);
+emit_32(3222588579);
+emit_32(1122656322);
+emit_32(3276736496);
+emit_32(3218835474);
+emit_32(1122656322);
+emit_32(3276480512);
+emit_32(3214447728);
+emit_32(1122656322);
+emit_32(3276224528);
+emit_32(1046529045);
+emit_32(1122656322);
+emit_32(3275968545);
+emit_32(1070915199);
+emit_32(1122656322);
+emit_32(3275712496);
+emit_32(1082866637);
+emit_32(1122656322);
+emit_32(3275456512);
+emit_32(1087021578);
+emit_32(1122656322);
+emit_32(3275200528);
+emit_32(1090529232);
+emit_32(1122656322);
+emit_32(3274944545);
+emit_32(1092317201);
+emit_32(1122656322);
+emit_32(3274688496);
+emit_32(1093426427);
+emit_32(1122656322);
+emit_32(3274432512);
+emit_32(1094040158);
+emit_32(1122656322);
+emit_32(3274176528);
+emit_32(1095262693);
+emit_32(1122656322);
+emit_32(3273920545);
+emit_32(1097468792);
+emit_32(1122656322);
+emit_32(3273664496);
+emit_32(1099540411);
+emit_32(1122656322);
+emit_32(3273408512);
+emit_32(1100993213);
+emit_32(1122656322);
+emit_32(3273152528);
+emit_32(1102819203);
+emit_32(1122656322);
+emit_32(3272896545);
+emit_32(1104470763);
+emit_32(1122656322);
+emit_32(3272640496);
+emit_32(1105442111);
+emit_32(1122656322);
+emit_32(3272384512);
+emit_32(1106127356);
+emit_32(1122656322);
+emit_32(3272128528);
+emit_32(1106807829);
+emit_32(1122656322);
+emit_32(3271872545);
+emit_32(1107212108);
+emit_32(1122656322);
+emit_32(3271616496);
+emit_32(1107339719);
+emit_32(1122656322);
+emit_32(3271163904);
+emit_32(1108016575);
+emit_32(1122656322);
+emit_32(3270651937);
+emit_32(1108361190);
+emit_32(1122656322);
+emit_32(3270139970);
+emit_32(1108677807);
+emit_32(1122656322);
+emit_32(3269627871);
+emit_32(1108698045);
+emit_32(1122656322);
+emit_32(3269115904);
+emit_32(1108670415);
+emit_32(1122656322);
+emit_32(3268603937);
+emit_32(1108385307);
+emit_32(1122656322);
+emit_32(3268091970);
+emit_32(1107664044);
+emit_32(1122656322);
+emit_32(3267579911);
+emit_32(1106926109);
+emit_32(1122656322);
+emit_32(3267067904);
+emit_32(1105983491);
+emit_32(1122656322);
+emit_32(3266555911);
+emit_32(1105752542);
+emit_32(1122656322);
+emit_32(3266043904);
+emit_32(1105343650);
+emit_32(1122656322);
+emit_32(3265531911);
+emit_32(1104481983);
+emit_32(1122656322);
+emit_32(3265019904);
+emit_32(1103536377);
+emit_32(1122656322);
+emit_32(3264507911);
+emit_32(1102421374);
+emit_32(1122656322);
+emit_32(3263995904);
+emit_32(1101252526);
+emit_32(1122656322);
+emit_32(3263483911);
+emit_32(1099947835);
+emit_32(1122656322);
+emit_32(3262775296);
+emit_32(1099066665);
+emit_32(1122656322);
+emit_32(3261751309);
+emit_32(1097029334);
+emit_32(1122656322);
+emit_32(3260727296);
+emit_32(1095561223);
+emit_32(1122656322);
+emit_32(3259703309);
+emit_32(1095286181);
+emit_32(1122656322);
+emit_32(3258679296);
+emit_32(1094900095);
+emit_32(1122656322);
+emit_32(3257655309);
+emit_32(1093810625);
+emit_32(1122656322);
+emit_32(3256631296);
+emit_32(1093100949);
+emit_32(1122656322);
+emit_32(3255607309);
+emit_32(1093720133);
+emit_32(1122656322);
+emit_32(3254386688);
+emit_32(1094140822);
+emit_32(1122656322);
+emit_32(3252338714);
+emit_32(1093200983);
+emit_32(1122656322);
+emit_32(3250290688);
+emit_32(1093279731);
+emit_32(1122656322);
+emit_32(3248242714);
+emit_32(1095297296);
+emit_32(1122656322);
+emit_32(3245998080);
+emit_32(1096326998);
+emit_32(1122656322);
+emit_32(3241902132);
+emit_32(1097208116);
+emit_32(1122656322);
+emit_32(3237609472);
+emit_32(1098363332);
+emit_32(1122656322);
+emit_32(3229220864);
+emit_32(1098960496);
+emit_32(1122656322);
+emit_32(0);
+emit_32(1099624612);
+emit_32(1122656322);
+emit_32(1081737216);
+emit_32(1100438045);
+emit_32(1122656322);
+emit_start(Landscape07Vtx)
+emit_32(1081737216);
+emit_32(1111930149);
+emit_32(3270651937);
+emit_32(1081737216);
+emit_32(1111592455);
+emit_32(3270139970);
+emit_32(1090125824);
+emit_32(1111718284);
+emit_32(3270651937);
+emit_32(1090125824);
+emit_32(1111491609);
+emit_32(3270139970);
+emit_32(1094418484);
+emit_32(1111318934);
+emit_32(3270651937);
+emit_32(1094418484);
+emit_32(1111194940);
+emit_32(3270139970);
+emit_32(1098514432);
+emit_32(1110681374);
+emit_32(3270651937);
+emit_32(1098514432);
+emit_32(1110835331);
+emit_32(3270139970);
+emit_32(1100759066);
+emit_32(1110219843);
+emit_32(3270651937);
+emit_32(1100759066);
+emit_32(1110275365);
+emit_32(3270139970);
+emit_32(1102807040);
+emit_32(1109758994);
+emit_32(3270651937);
+emit_32(1102807040);
+emit_32(1110005567);
+emit_32(3270139970);
+emit_32(1104855066);
+emit_32(1109428771);
+emit_32(3270651937);
+emit_32(1104855066);
+emit_32(1109696499);
+emit_32(3270139970);
+emit_32(1106903040);
+emit_32(1109202908);
+emit_32(3270651937);
+emit_32(1106903040);
+emit_32(1109176772);
+emit_32(3270139970);
+emit_32(1108123661);
+emit_32(1108966585);
+emit_32(3270651937);
+emit_32(1108123661);
+emit_32(1108885556);
+emit_32(3270139970);
+emit_32(1109147648);
+emit_32(1108648919);
+emit_32(3270651937);
+emit_32(1109147648);
+emit_32(1108468774);
+emit_32(3270139970);
+emit_32(1110171661);
+emit_32(1108152890);
+emit_32(3270651937);
+emit_32(1110171661);
+emit_32(1108030285);
+emit_32(3270139970);
+emit_32(1111195648);
+emit_32(1107519839);
+emit_32(3270651937);
+emit_32(1111195648);
+emit_32(1107430028);
+emit_32(3270139970);
+emit_32(1112219661);
+emit_32(1107320478);
+emit_32(3270651937);
+emit_32(1112219661);
+emit_32(1107103737);
+emit_32(3270139970);
+emit_32(1113243648);
+emit_32(1107611170);
+emit_32(3270651937);
+emit_32(1113243648);
+emit_32(1107092098);
+emit_32(3270139970);
+emit_32(1114267661);
+emit_32(1107859839);
+emit_32(3270651937);
+emit_32(1114267661);
+emit_32(1107375004);
+emit_32(3270139970);
+emit_32(1115291648);
+emit_32(1107759596);
+emit_32(3270651937);
+emit_32(1115291648);
+emit_32(1107478708);
+emit_32(3270139970);
+emit_32(1116000263);
+emit_32(1107948785);
+emit_32(3270651937);
+emit_32(1116000263);
+emit_32(1107657884);
+emit_32(3270139970);
+emit_32(1116512256);
+emit_32(1108015605);
+emit_32(3270651937);
+emit_32(1116512256);
+emit_32(1107812575);
+emit_32(3270139970);
+emit_32(1117024263);
+emit_32(1108198949);
+emit_32(3270651937);
+emit_32(1117024263);
+emit_32(1108062005);
+emit_32(3270139970);
+emit_32(1117536256);
+emit_32(1108525082);
+emit_32(3270651937);
+emit_32(1117536256);
+emit_32(1108546316);
+emit_32(3270139970);
+emit_32(1118048263);
+emit_32(1108838475);
+emit_32(3270651937);
+emit_32(1118048263);
+emit_32(1108808198);
+emit_32(3270139970);
+emit_32(1118560256);
+emit_32(1108830663);
+emit_32(3270651937);
+emit_32(1118560256);
+emit_32(1108821253);
+emit_32(3270139970);
+emit_32(1119072263);
+emit_32(1108933791);
+emit_32(3270651937);
+emit_32(1119072263);
+emit_32(1108944565);
+emit_32(3270139970);
+emit_32(1119584256);
+emit_32(1109285510);
+emit_32(3270651937);
+emit_32(1119584256);
+emit_32(1109292509);
+emit_32(3270139970);
+emit_32(1120096263);
+emit_32(1109319064);
+emit_32(3270651937);
+emit_32(1120096263);
+emit_32(1109325827);
+emit_32(3270139970);
+emit_32(1120608322);
+emit_32(1109471003);
+emit_32(3270651937);
+emit_32(1120608322);
+emit_32(1109645355);
+emit_32(3270139970);
+emit_32(1121120289);
+emit_32(1109582728);
+emit_32(3270651937);
+emit_32(1121120289);
+emit_32(1109627555);
+emit_32(3270139970);
+emit_32(1121632256);
+emit_32(1109427592);
+emit_32(3270651937);
+emit_32(1121632256);
+emit_32(1109566502);
+emit_32(3270139970);
+emit_32(1122144223);
+emit_32(1109250959);
+emit_32(3270651937);
+emit_32(1122144223);
+emit_32(1109470347);
+emit_32(3270139970);
+emit_32(1122656322);
+emit_32(1109132050);
+emit_32(3270651937);
+emit_32(1122656322);
+emit_32(1109358831);
+emit_32(3270139970);
+emit_32(1123168289);
+emit_32(1108892975);
+emit_32(3270651937);
+emit_32(1123168289);
+emit_32(1109156561);
+emit_32(3270139970);
+emit_32(1123680256);
+emit_32(1108663599);
+emit_32(3270651937);
+emit_32(1123680256);
+emit_32(1108641920);
+emit_32(3270139970);
+emit_32(1124132848);
+emit_32(1108204087);
+emit_32(3270651937);
+emit_32(1124132848);
+emit_32(1108219580);
+emit_32(3270139970);
+emit_32(1124388897);
+emit_32(1107681555);
+emit_32(3270651937);
+emit_32(1124388897);
+emit_32(1107796112);
+emit_32(3270139970);
+emit_32(1124644880);
+emit_32(1107061165);
+emit_32(3270651937);
+emit_32(1124644880);
+emit_32(1107364885);
+emit_32(3270139970);
+emit_32(1124900864);
+emit_32(1105549119);
+emit_32(3270651937);
+emit_32(1124900864);
+emit_32(1106177268);
+emit_32(3270139970);
+emit_32(1125156848);
+emit_32(1104447065);
+emit_32(3270651937);
+emit_32(1125156848);
+emit_32(1105288443);
+emit_32(3270139970);
+emit_32(1125412897);
+emit_32(1103204817);
+emit_32(3270651937);
+emit_32(1125412897);
+emit_32(1104753197);
+emit_32(3270139970);
+emit_32(1125668880);
+emit_32(1102168352);
+emit_32(3270651937);
+emit_32(1125668880);
+emit_32(1103375473);
+emit_32(3270139970);
+emit_32(1125924864);
+emit_32(1101100116);
+emit_32(3270651937);
+emit_32(1125924864);
+emit_32(1102075344);
+emit_32(3270139970);
+emit_32(1126180848);
+emit_32(1099752591);
+emit_32(3270651937);
+emit_32(1126180848);
+emit_32(1100964849);
+emit_32(3270139970);
+emit_32(1126436897);
+emit_32(1098425093);
+emit_32(3270651937);
+emit_32(1126436897);
+emit_32(1099792384);
+emit_32(3270139970);
+emit_32(1126692880);
+emit_32(1096597845);
+emit_32(3270651937);
+emit_32(1126692880);
+emit_32(1098450049);
+emit_32(3270139970);
+emit_32(1126948864);
+emit_32(1094429285);
+emit_32(3270651937);
+emit_32(1126948864);
+emit_32(1096338322);
+emit_32(3270139970);
+emit_32(1127204848);
+emit_32(1091900413);
+emit_32(3270651937);
+emit_32(1127204848);
+emit_32(1093954280);
+emit_32(3270139970);
+emit_32(1127460897);
+emit_32(1087591940);
+emit_32(3270651937);
+emit_32(1127460897);
+emit_32(1091524247);
+emit_32(3270139970);
+emit_32(1127716880);
+emit_32(1083181671);
+emit_32(3270651937);
+emit_32(1127716880);
+emit_32(1088518839);
+emit_32(3270139970);
+emit_32(1127972864);
+emit_32(1076995723);
+emit_32(3270651937);
+emit_32(1127972864);
+emit_32(1083884385);
+emit_32(3270139970);
+emit_32(1128228848);
+emit_32(1068649268);
+emit_32(3270651937);
+emit_32(1128228848);
+emit_32(1076931424);
+emit_32(3270139970);
+emit_32(1128484897);
+emit_32(3216283995);
+emit_32(3270651937);
+emit_32(1128484897);
+emit_32(1044557454);
+emit_32(3270139970);
+emit_32(1128740880);
+emit_32(3221805544);
+emit_32(3270651937);
+emit_32(1128740880);
+emit_32(3205427693);
+emit_32(3270139970);
+emit_32(1128996864);
+emit_32(3223037537);
+emit_32(3270651937);
+emit_32(1128996864);
+emit_32(3213113940);
+emit_32(3270139970);
+emit_32(1129252848);
+emit_32(3228540254);
+emit_32(3270651937);
+emit_32(1129252848);
+emit_32(3221962118);
+emit_32(3270139970);
+emit_32(1129508897);
+emit_32(3230275333);
+emit_32(3270651937);
+emit_32(1129508897);
+emit_32(3220483500);
+emit_32(3270139970);
+emit_32(1129764880);
+emit_32(3232612273);
+emit_32(3270651937);
+emit_32(1129764880);
+emit_32(3225420531);
+emit_32(3270139970);
+emit_32(1130020864);
+emit_32(3235277565);
+emit_32(3270651937);
+emit_32(1130020864);
+emit_32(3230173831);
+emit_32(3270139970);
+emit_32(1130276848);
+emit_32(3234218671);
+emit_32(3270651937);
+emit_32(1130276848);
+emit_32(3232043735);
+emit_32(3270139970);
+emit_32(1130532897);
+emit_32(3231045470);
+emit_32(3270651937);
+emit_32(1130532897);
+emit_32(3227363752);
+emit_32(3270139970);
+emit_32(1130788880);
+emit_32(3226755997);
+emit_32(3270651937);
+emit_32(1130788880);
+emit_32(3221899790);
+emit_32(3270139970);
+emit_32(1131044864);
+emit_32(3229128715);
+emit_32(3270651937);
+emit_32(1131044864);
+emit_32(3216845360);
+emit_32(3270139970);
+emit_32(1131300848);
+emit_32(3228788683);
+emit_32(3270651937);
+emit_32(1131300848);
+emit_32(3219415546);
+emit_32(3270139970);
+emit_32(1131556897);
+emit_32(3227247276);
+emit_32(3270651937);
+emit_32(1131556897);
+emit_32(3212863456);
+emit_32(3270139970);
+emit_32(1131812880);
+emit_32(3228672710);
+emit_32(3270651937);
+emit_32(1131812880);
+emit_32(3221056106);
+emit_32(3270139970);
+emit_32(1132068864);
+emit_32(3228908137);
+emit_32(3270651937);
+emit_32(1132068864);
+emit_32(3222457423);
+emit_32(3270139970);
+emit_32(1081737216);
+emit_32(1112094042);
+emit_32(3271163904);
+emit_32(1090125824);
+emit_32(1112019724);
+emit_32(3271163904);
+emit_32(1094418484);
+emit_32(1111438813);
+emit_32(3271163904);
+emit_32(1098514432);
+emit_32(1110812184);
+emit_32(3271163904);
+emit_32(1100759066);
+emit_32(1110106545);
+emit_32(3271163904);
+emit_32(1102807040);
+emit_32(1109946348);
+emit_32(3271163904);
+emit_32(1104855066);
+emit_32(1109673168);
+emit_32(3271163904);
+emit_32(1106903040);
+emit_32(1109472471);
+emit_32(3271163904);
+emit_32(1108123661);
+emit_32(1108974240);
+emit_32(3271163904);
+emit_32(1109147648);
+emit_32(1108497164);
+emit_32(3271163904);
+emit_32(1110171661);
+emit_32(1108102899);
+emit_32(3271163904);
+emit_32(1111195648);
+emit_32(1107538870);
+emit_32(3271163904);
+emit_32(1112219661);
+emit_32(1106915413);
+emit_32(3271163904);
+emit_32(1113243648);
+emit_32(1107679563);
+emit_32(3271163904);
+emit_32(1114267661);
+emit_32(1107902857);
+emit_32(3271163904);
+emit_32(1115291648);
+emit_32(1107930251);
+emit_32(3271163904);
+emit_32(1116000263);
+emit_32(1107983335);
+emit_32(3271163904);
+emit_32(1116512256);
+emit_32(1108070420);
+emit_32(3271163904);
+emit_32(1117024263);
+emit_32(1108274184);
+emit_32(3271163904);
+emit_32(1117536256);
+emit_32(1108723525);
+emit_32(3271163904);
+emit_32(1118048263);
+emit_32(1108785863);
+emit_32(3271163904);
+emit_32(1118560256);
+emit_32(1108864795);
+emit_32(3271163904);
+emit_32(1119072263);
+emit_32(1109018883);
+emit_32(3271163904);
+emit_32(1119584256);
+emit_32(1109278065);
+emit_32(3271163904);
+emit_32(1120096263);
+emit_32(1109410316);
+emit_32(3271163904);
+emit_32(1120608322);
+emit_32(1109373406);
+emit_32(3271163904);
+emit_32(1121120289);
+emit_32(1109364887);
+emit_32(3271163904);
+emit_32(1121632256);
+emit_32(1109384967);
+emit_32(3271163904);
+emit_32(1122144223);
+emit_32(1109332197);
+emit_32(3271163904);
+emit_32(1122656322);
+emit_32(1109067825);
+emit_32(3271163904);
+emit_32(1123168289);
+emit_32(1108783609);
+emit_32(3271163904);
+emit_32(1123680256);
+emit_32(1108563460);
+emit_32(3271163904);
+emit_32(1124132848);
+emit_32(1108020743);
+emit_32(3271163904);
+emit_32(1124388897);
+emit_32(1107280056);
+emit_32(3271163904);
+emit_32(1124644880);
+emit_32(1106630987);
+emit_32(3271163904);
+emit_32(1124900864);
+emit_32(1105186941);
+emit_32(3271163904);
+emit_32(1125156848);
+emit_32(1103741583);
+emit_32(3271163904);
+emit_32(1125412897);
+emit_32(1102190530);
+emit_32(3271163904);
+emit_32(1125668880);
+emit_32(1101340292);
+emit_32(3271163904);
+emit_32(1125924864);
+emit_32(1100447115);
+emit_32(3271163904);
+emit_32(1126180848);
+emit_32(1099367868);
+emit_32(3271163904);
+emit_32(1126436897);
+emit_32(1097589064);
+emit_32(3271163904);
+emit_32(1126692880);
+emit_32(1095164127);
+emit_32(3271163904);
+emit_32(1126948864);
+emit_32(1092722832);
+emit_32(3271163904);
+emit_32(1127204848);
+emit_32(1090145097);
+emit_32(3271163904);
+emit_32(1127460897);
+emit_32(1085202802);
+emit_32(3271163904);
+emit_32(1127716880);
+emit_32(1076722968);
+emit_32(3271163904);
+emit_32(1127972864);
+emit_32(1066002159);
+emit_32(3271163904);
+emit_32(1128228848);
+emit_32(3206002464);
+emit_32(3271163904);
+emit_32(1128484897);
+emit_32(3225385089);
+emit_32(3271163904);
+emit_32(1128740880);
+emit_32(3230254068);
+emit_32(3271163904);
+emit_32(1128996864);
+emit_32(3231283224);
+emit_32(3271163904);
+emit_32(1129252848);
+emit_32(3234493545);
+emit_32(3271163904);
+emit_32(1129508897);
+emit_32(3235258355);
+emit_32(3271163904);
+emit_32(1129764880);
+emit_32(3238361175);
+emit_32(3271163904);
+emit_32(1130020864);
+emit_32(3238992240);
+emit_32(3271163904);
+emit_32(1130276848);
+emit_32(3236249825);
+emit_32(3271163904);
+emit_32(1130532897);
+emit_32(3232841681);
+emit_32(3271163904);
+emit_32(1130788880);
+emit_32(3231925288);
+emit_32(3271163904);
+emit_32(1131044864);
+emit_32(3233336672);
+emit_32(3271163904);
+emit_32(1131300848);
+emit_32(3232958618);
+emit_32(3271163904);
+emit_32(1131556897);
+emit_32(3233414623);
+emit_32(3271163904);
+emit_32(1131812880);
+emit_32(3232723968);
+emit_32(3271163904);
+emit_32(1132068864);
+emit_32(3232386725);
+emit_32(3271163904);
+emit_32(1081737216);
+emit_32(1112138475);
+emit_32(3271616496);
+emit_32(1090125824);
+emit_32(1112117661);
+emit_32(3271616496);
+emit_32(1094418484);
+emit_32(1111516696);
+emit_32(3271616496);
+emit_32(1098514432);
+emit_32(1110701375);
+emit_32(3271616496);
+emit_32(1100759066);
+emit_32(1110259479);
+emit_32(3271616496);
+emit_32(1102807040);
+emit_32(1110148252);
+emit_32(3271616496);
+emit_32(1104855066);
+emit_32(1109941420);
+emit_32(3271616496);
+emit_32(1106903040);
+emit_32(1109408245);
+emit_32(3271616496);
+emit_32(1108123661);
+emit_32(1108791106);
+emit_32(3271616496);
+emit_32(1109147648);
+emit_32(1108280161);
+emit_32(3271616496);
+emit_32(1110171661);
+emit_32(1107557063);
+emit_32(3271616496);
+emit_32(1111195648);
+emit_32(1107163926);
+emit_32(3271616496);
+emit_32(1112219661);
+emit_32(1106741192);
+emit_32(3271616496);
+emit_32(1113243648);
+emit_32(1107262911);
+emit_32(3271616496);
+emit_32(1114267661);
+emit_32(1107611563);
+emit_32(3271616496);
+emit_32(1115291648);
+emit_32(1107823244);
+emit_32(3271616496);
+emit_32(1116000263);
+emit_32(1107902490);
+emit_32(3271616496);
+emit_32(1116512256);
+emit_32(1107980347);
+emit_32(3271616496);
+emit_32(1117024263);
+emit_32(1108314974);
+emit_32(3271616496);
+emit_32(1117536256);
+emit_32(1108495670);
+emit_32(3271616496);
+emit_32(1118048263);
+emit_32(1108580998);
+emit_32(3271616496);
+emit_32(1118560256);
+emit_32(1108703707);
+emit_32(3271616496);
+emit_32(1119072263);
+emit_32(1108940790);
+emit_32(3271616496);
+emit_32(1119584256);
+emit_32(1109066200);
+emit_32(3271616496);
+emit_32(1120096263);
+emit_32(1109329864);
+emit_32(3271616496);
+emit_32(1120608322);
+emit_32(1109220734);
+emit_32(3271616496);
+emit_32(1121120289);
+emit_32(1109504138);
+emit_32(3271616496);
+emit_32(1121632256);
+emit_32(1109526053);
+emit_32(3271616496);
+emit_32(1122144223);
+emit_32(1109328108);
+emit_32(3271616496);
+emit_32(1122656322);
+emit_32(1109031859);
+emit_32(3271616496);
+emit_32(1123168289);
+emit_32(1108646638);
+emit_32(3271616496);
+emit_32(1123680256);
+emit_32(1108345618);
+emit_32(3271616496);
+emit_32(1124132848);
+emit_32(1107854806);
+emit_32(3271616496);
+emit_32(1124388897);
+emit_32(1107061532);
+emit_32(3271616496);
+emit_32(1124644880);
+emit_32(1105828407);
+emit_32(3271616496);
+emit_32(1124900864);
+emit_32(1104345458);
+emit_32(3271616496);
+emit_32(1125156848);
+emit_32(1103146569);
+emit_32(3271616496);
+emit_32(1125412897);
+emit_32(1101554883);
+emit_32(3271616496);
+emit_32(1125668880);
+emit_32(1100465255);
+emit_32(3271616496);
+emit_32(1125924864);
+emit_32(1099197894);
+emit_32(3271616496);
+emit_32(1126180848);
+emit_32(1097396440);
+emit_32(3271616496);
+emit_32(1126436897);
+emit_32(1095592680);
+emit_32(3271616496);
+emit_32(1126692880);
+emit_32(1093988988);
+emit_32(3271616496);
+emit_32(1126948864);
+emit_32(1091770998);
+emit_32(3271616496);
+emit_32(1127204848);
+emit_32(1088099283);
+emit_32(3271616496);
+emit_32(1127460897);
+emit_32(1081294172);
+emit_32(3271616496);
+emit_32(1127716880);
+emit_32(1060903076);
+emit_32(3271616496);
+emit_32(1127972864);
+emit_32(1039720717);
+emit_32(3271616496);
+emit_32(1128228848);
+emit_32(3220556900);
+emit_32(3271616496);
+emit_32(1128484897);
+emit_32(3232451338);
+emit_32(3271616496);
+emit_32(1128740880);
+emit_32(3236043424);
+emit_32(3271616496);
+emit_32(1128996864);
+emit_32(3238289211);
+emit_32(3271616496);
+emit_32(1129252848);
+emit_32(3238868193);
+emit_32(3271616496);
+emit_32(1129508897);
+emit_32(3239430691);
+emit_32(3271616496);
+emit_32(1129764880);
+emit_32(3241001301);
+emit_32(3271616496);
+emit_32(1130020864);
+emit_32(3240828600);
+emit_32(3271616496);
+emit_32(1130276848);
+emit_32(3238957018);
+emit_32(3271616496);
+emit_32(1130532897);
+emit_32(3238262997);
+emit_32(3271616496);
+emit_32(1130788880);
+emit_32(3237575372);
+emit_32(3271616496);
+emit_32(1131044864);
+emit_32(3235372398);
+emit_32(3271616496);
+emit_32(1131300848);
+emit_32(3236771345);
+emit_32(3271616496);
+emit_32(1131556897);
+emit_32(3235935337);
+emit_32(3271616496);
+emit_32(1131812880);
+emit_32(3235730822);
+emit_32(3271616496);
+emit_32(1132068864);
+emit_32(3234015499);
+emit_32(3271616496);
+emit_32(1081737216);
+emit_32(1111780334);
+emit_32(3271872545);
+emit_32(1090125824);
+emit_32(1111692673);
+emit_32(3271872545);
+emit_32(1094418484);
+emit_32(1111222256);
+emit_32(3271872545);
+emit_32(1098514432);
+emit_32(1110566135);
+emit_32(3271872545);
+emit_32(1100759066);
+emit_32(1110232950);
+emit_32(3271872545);
+emit_32(1102807040);
+emit_32(1109993665);
+emit_32(3271872545);
+emit_32(1104855066);
+emit_32(1109851950);
+emit_32(3271872545);
+emit_32(1106903040);
+emit_32(1109283098);
+emit_32(3271872545);
+emit_32(1108123661);
+emit_32(1108493022);
+emit_32(3271872545);
+emit_32(1109147648);
+emit_32(1107705515);
+emit_32(3271872545);
+emit_32(1110171661);
+emit_32(1107275494);
+emit_32(3271872545);
+emit_32(1111195648);
+emit_32(1106747326);
+emit_32(3271872545);
+emit_32(1112219661);
+emit_32(1106557639);
+emit_32(3271872545);
+emit_32(1113243648);
+emit_32(1107170427);
+emit_32(3271872545);
+emit_32(1114267661);
+emit_32(1107580499);
+emit_32(3271872545);
+emit_32(1115291648);
+emit_32(1107671725);
+emit_32(3271872545);
+emit_32(1116000263);
+emit_32(1107801250);
+emit_32(3271872545);
+emit_32(1116512256);
+emit_32(1107801355);
+emit_32(3271872545);
+emit_32(1117024263);
+emit_32(1107771313);
+emit_32(3271872545);
+emit_32(1117536256);
+emit_32(1108068427);
+emit_32(3271872545);
+emit_32(1118048263);
+emit_32(1108248048);
+emit_32(3271872545);
+emit_32(1118560256);
+emit_32(1108300713);
+emit_32(3271872545);
+emit_32(1119072263);
+emit_32(1108561232);
+emit_32(3271872545);
+emit_32(1119584256);
+emit_32(1108758521);
+emit_32(3271872545);
+emit_32(1120096263);
+emit_32(1109143559);
+emit_32(3271872545);
+emit_32(1120608322);
+emit_32(1109106360);
+emit_32(3271872545);
+emit_32(1121120289);
+emit_32(1109227104);
+emit_32(3271872545);
+emit_32(1121632256);
+emit_32(1109385701);
+emit_32(3271872545);
+emit_32(1122144223);
+emit_32(1109080854);
+emit_32(3271872545);
+emit_32(1122656322);
+emit_32(1108826600);
+emit_32(3271872545);
+emit_32(1123168289);
+emit_32(1108564194);
+emit_32(3271872545);
+emit_32(1123680256);
+emit_32(1108304829);
+emit_32(3271872545);
+emit_32(1124132848);
+emit_32(1107781275);
+emit_32(3271872545);
+emit_32(1124388897);
+emit_32(1107099700);
+emit_32(3271872545);
+emit_32(1124644880);
+emit_32(1105344908);
+emit_32(3271872545);
+emit_32(1124900864);
+emit_32(1103617904);
+emit_32(3271872545);
+emit_32(1125156848);
+emit_32(1102172966);
+emit_32(3271872545);
+emit_32(1125412897);
+emit_32(1100636435);
+emit_32(3271872545);
+emit_32(1125668880);
+emit_32(1099511418);
+emit_32(3271872545);
+emit_32(1125924864);
+emit_32(1097613076);
+emit_32(3271872545);
+emit_32(1126180848);
+emit_32(1095954124);
+emit_32(3271872545);
+emit_32(1126436897);
+emit_32(1093684062);
+emit_32(3271872545);
+emit_32(1126692880);
+emit_32(1091734235);
+emit_32(3271872545);
+emit_32(1126948864);
+emit_32(1088057634);
+emit_32(3271872545);
+emit_32(1127204848);
+emit_32(1082772853);
+emit_32(3271872545);
+emit_32(1127460897);
+emit_32(1073941095);
+emit_32(3271872545);
+emit_32(1127716880);
+emit_32(3208567734);
+emit_32(3271872545);
+emit_32(1127972864);
+emit_32(3214907844);
+emit_32(3271872545);
+emit_32(1128228848);
+emit_32(3228392866);
+emit_32(3271872545);
+emit_32(1128484897);
+emit_32(3236333837);
+emit_32(3271872545);
+emit_32(1128740880);
+emit_32(3239712465);
+emit_32(3271872545);
+emit_32(1128996864);
+emit_32(3240772082);
+emit_32(3271872545);
+emit_32(1129252848);
+emit_32(3241312099);
+emit_32(3271872545);
+emit_32(1129508897);
+emit_32(3242196782);
+emit_32(3271872545);
+emit_32(1129764880);
+emit_32(3243389118);
+emit_32(3271872545);
+emit_32(1130020864);
+emit_32(3242673360);
+emit_32(3271872545);
+emit_32(1130276848);
+emit_32(3241675955);
+emit_32(3271872545);
+emit_32(1130532897);
+emit_32(3241634116);
+emit_32(3271872545);
+emit_32(1130788880);
+emit_32(3240687986);
+emit_32(3271872545);
+emit_32(1131044864);
+emit_32(3240058075);
+emit_32(3271872545);
+emit_32(1131300848);
+emit_32(3239722845);
+emit_32(3271872545);
+emit_32(1131556897);
+emit_32(3238832237);
+emit_32(3271872545);
+emit_32(1131812880);
+emit_32(3238354108);
+emit_32(3271872545);
+emit_32(1132068864);
+emit_32(3234493083);
+emit_32(3271872545);
+emit_32(1081737216);
+emit_32(1111464346);
+emit_32(3272128528);
+emit_32(1090125824);
+emit_32(1111239505);
+emit_32(3272128528);
+emit_32(1094418484);
+emit_32(1110994767);
+emit_32(3272128528);
+emit_32(1098514432);
+emit_32(1110132890);
+emit_32(3272128528);
+emit_32(1100759066);
+emit_32(1109887445);
+emit_32(3272128528);
+emit_32(1102807040);
+emit_32(1109762271);
+emit_32(3272128528);
+emit_32(1104855066);
+emit_32(1109309469);
+emit_32(3272128528);
+emit_32(1106903040);
+emit_32(1108918429);
+emit_32(3272128528);
+emit_32(1108123661);
+emit_32(1108186287);
+emit_32(3272128528);
+emit_32(1109147648);
+emit_32(1107206970);
+emit_32(3272128528);
+emit_32(1110171661);
+emit_32(1106779308);
+emit_32(3272128528);
+emit_32(1111195648);
+emit_32(1105875436);
+emit_32(3272128528);
+emit_32(1112219661);
+emit_32(1105956962);
+emit_32(3272128528);
+emit_32(1113243648);
+emit_32(1106440618);
+emit_32(3272128528);
+emit_32(1114267661);
+emit_32(1107100225);
+emit_32(3272128528);
+emit_32(1115291648);
+emit_32(1107233499);
+emit_32(3272128528);
+emit_32(1116000263);
+emit_32(1107508645);
+emit_32(3272128528);
+emit_32(1116512256);
+emit_32(1107671935);
+emit_32(3272128528);
+emit_32(1117024263);
+emit_32(1107608207);
+emit_32(3272128528);
+emit_32(1117536256);
+emit_32(1107752387);
+emit_32(3272128528);
+emit_32(1118048263);
+emit_32(1108110134);
+emit_32(3272128528);
+emit_32(1118560256);
+emit_32(1108408690);
+emit_32(3272128528);
+emit_32(1119072263);
+emit_32(1108474017);
+emit_32(3272128528);
+emit_32(1119584256);
+emit_32(1108395164);
+emit_32(3272128528);
+emit_32(1120096263);
+emit_32(1108750369);
+emit_32(3272128528);
+emit_32(1120608322);
+emit_32(1108885688);
+emit_32(3272128528);
+emit_32(1121120289);
+emit_32(1109040851);
+emit_32(3272128528);
+emit_32(1121632256);
+emit_32(1108986665);
+emit_32(3272128528);
+emit_32(1122144223);
+emit_32(1108827727);
+emit_32(3272128528);
+emit_32(1122656322);
+emit_32(1108753462);
+emit_32(3272128528);
+emit_32(1123168289);
+emit_32(1108679852);
+emit_32(3272128528);
+emit_32(1123680256);
+emit_32(1108175513);
+emit_32(3272128528);
+emit_32(1124132848);
+emit_32(1107583015);
+emit_32(3272128528);
+emit_32(1124388897);
+emit_32(1106521358);
+emit_32(3272128528);
+emit_32(1124644880);
+emit_32(1104987134);
+emit_32(3272128528);
+emit_32(1124900864);
+emit_32(1103342862);
+emit_32(3272128528);
+emit_32(1125156848);
+emit_32(1101546652);
+emit_32(3272128528);
+emit_32(1125412897);
+emit_32(1099964770);
+emit_32(3272128528);
+emit_32(1125668880);
+emit_32(1098242746);
+emit_32(3272128528);
+emit_32(1125924864);
+emit_32(1096185125);
+emit_32(3272128528);
+emit_32(1126180848);
+emit_32(1094379792);
+emit_32(3272128528);
+emit_32(1126436897);
+emit_32(1092287841);
+emit_32(3272128528);
+emit_32(1126692880);
+emit_32(1089612693);
+emit_32(3272128528);
+emit_32(1126948864);
+emit_32(1083167159);
+emit_32(3272128528);
+emit_32(1127204848);
+emit_32(1069990774);
+emit_32(3272128528);
+emit_32(1127460897);
+emit_32(1049416773);
+emit_32(3272128528);
+emit_32(1127716880);
+emit_32(3222071379);
+emit_32(3272128528);
+emit_32(1127972864);
+emit_32(3226126181);
+emit_32(3272128528);
+emit_32(1128228848);
+emit_32(3233267570);
+emit_32(3272128528);
+emit_32(1128484897);
+emit_32(3238358344);
+emit_32(3272128528);
+emit_32(1128740880);
+emit_32(3242189233);
+emit_32(3272128528);
+emit_32(1128996864);
+emit_32(3244019627);
+emit_32(3272128528);
+emit_32(1129252848);
+emit_32(3244520951);
+emit_32(3272128528);
+emit_32(1129508897);
+emit_32(3245091062);
+emit_32(3272128528);
+emit_32(1129764880);
+emit_32(3245124302);
+emit_32(3272128528);
+emit_32(1130020864);
+emit_32(3245824436);
+emit_32(3272128528);
+emit_32(1130276848);
+emit_32(3245103854);
+emit_32(3272128528);
+emit_32(1130532897);
+emit_32(3245100184);
+emit_32(3272128528);
+emit_32(1130788880);
+emit_32(3243298207);
+emit_32(3272128528);
+emit_32(1131044864);
+emit_32(3242985731);
+emit_32(3272128528);
+emit_32(1131300848);
+emit_32(3242330895);
+emit_32(3272128528);
+emit_32(1131556897);
+emit_32(3242176545);
+emit_32(3272128528);
+emit_32(1131812880);
+emit_32(3239330856);
+emit_32(3272128528);
+emit_32(1132068864);
+emit_32(3234703260);
+emit_32(3272128528);
+emit_32(1081737216);
+emit_32(1111298697);
+emit_32(3272384512);
+emit_32(1090125824);
+emit_32(1111058363);
+emit_32(3272384512);
+emit_32(1094418484);
+emit_32(1110735087);
+emit_32(3272384512);
+emit_32(1098514432);
+emit_32(1110169171);
+emit_32(3272384512);
+emit_32(1100759066);
+emit_32(1109403894);
+emit_32(3272384512);
+emit_32(1102807040);
+emit_32(1108912557);
+emit_32(3272384512);
+emit_32(1104855066);
+emit_32(1108673482);
+emit_32(3272384512);
+emit_32(1106903040);
+emit_32(1108260081);
+emit_32(3272384512);
+emit_32(1108123661);
+emit_32(1107647870);
+emit_32(3272384512);
+emit_32(1109147648);
+emit_32(1106643832);
+emit_32(3272384512);
+emit_32(1110171661);
+emit_32(1105736919);
+emit_32(3272384512);
+emit_32(1111195648);
+emit_32(1105100643);
+emit_32(3272384512);
+emit_32(1112219661);
+emit_32(1104911375);
+emit_32(3272384512);
+emit_32(1113243648);
+emit_32(1105299348);
+emit_32(3272384512);
+emit_32(1114267661);
+emit_32(1106150267);
+emit_32(3272384512);
+emit_32(1115291648);
+emit_32(1106320766);
+emit_32(3272384512);
+emit_32(1116000263);
+emit_32(1106620187);
+emit_32(3272384512);
+emit_32(1116512256);
+emit_32(1107259294);
+emit_32(3272384512);
+emit_32(1117024263);
+emit_32(1107471604);
+emit_32(3272384512);
+emit_32(1117536256);
+emit_32(1107538267);
+emit_32(3272384512);
+emit_32(1118048263);
+emit_32(1108219553);
+emit_32(3272384512);
+emit_32(1118560256);
+emit_32(1108391625);
+emit_32(3272384512);
+emit_32(1119072263);
+emit_32(1108309180);
+emit_32(3272384512);
+emit_32(1119584256);
+emit_32(1108147516);
+emit_32(3272384512);
+emit_32(1120096263);
+emit_32(1108248730);
+emit_32(3272384512);
+emit_32(1120608322);
+emit_32(1108495801);
+emit_32(3272384512);
+emit_32(1121120289);
+emit_32(1108672669);
+emit_32(3272384512);
+emit_32(1121632256);
+emit_32(1108534860);
+emit_32(3272384512);
+emit_32(1122144223);
+emit_32(1108457213);
+emit_32(3272384512);
+emit_32(1122656322);
+emit_32(1108523588);
+emit_32(3272384512);
+emit_32(1123168289);
+emit_32(1108457397);
+emit_32(3272384512);
+emit_32(1123680256);
+emit_32(1108144502);
+emit_32(3272384512);
+emit_32(1124132848);
+emit_32(1107554966);
+emit_32(3272384512);
+emit_32(1124388897);
+emit_32(1106329469);
+emit_32(3272384512);
+emit_32(1124644880);
+emit_32(1104699510);
+emit_32(3272384512);
+emit_32(1124900864);
+emit_32(1103026140);
+emit_32(3272384512);
+emit_32(1125156848);
+emit_32(1101214148);
+emit_32(3272384512);
+emit_32(1125412897);
+emit_32(1099233965);
+emit_32(3272384512);
+emit_32(1125668880);
+emit_32(1095822737);
+emit_32(3272384512);
+emit_32(1125924864);
+emit_32(1093805801);
+emit_32(3272384512);
+emit_32(1126180848);
+emit_32(1091936012);
+emit_32(3272384512);
+emit_32(1126436897);
+emit_32(1089180931);
+emit_32(3272384512);
+emit_32(1126692880);
+emit_32(1084894877);
+emit_32(3272384512);
+emit_32(1126948864);
+emit_32(1077040728);
+emit_32(3272384512);
+emit_32(1127204848);
+emit_32(1063155099);
+emit_32(3272384512);
+emit_32(1127460897);
+emit_32(3215476340);
+emit_32(3272384512);
+emit_32(1127716880);
+emit_32(3228112477);
+emit_32(3272384512);
+emit_32(1127972864);
+emit_32(3232515133);
+emit_32(3272384512);
+emit_32(1128228848);
+emit_32(3238089206);
+emit_32(3272384512);
+emit_32(1128484897);
+emit_32(3241062852);
+emit_32(3272384512);
+emit_32(1128740880);
+emit_32(3244581139);
+emit_32(3272384512);
+emit_32(1128996864);
+emit_32(3246469677);
+emit_32(3272384512);
+emit_32(1129252848);
+emit_32(3246870181);
+emit_32(3272384512);
+emit_32(1129508897);
+emit_32(3246893302);
+emit_32(3272384512);
+emit_32(1129764880);
+emit_32(3247231363);
+emit_32(3272384512);
+emit_32(1130020864);
+emit_32(3247263344);
+emit_32(3272384512);
+emit_32(1130276848);
+emit_32(3246998946);
+emit_32(3272384512);
+emit_32(1130532897);
+emit_32(3246499404);
+emit_32(3272384512);
+emit_32(1130788880);
+emit_32(3246148551);
+emit_32(3272384512);
+emit_32(1131044864);
+emit_32(3245400077);
+emit_32(3272384512);
+emit_32(1131300848);
+emit_32(3245118115);
+emit_32(3272384512);
+emit_32(1131556897);
+emit_32(3243091847);
+emit_32(3272384512);
+emit_32(1131812880);
+emit_32(3239267260);
+emit_32(3272384512);
+emit_32(1132068864);
+emit_32(3232983029);
+emit_32(3272384512);
+emit_32(1081737216);
+emit_32(1110766990);
+emit_32(3272640496);
+emit_32(1090125824);
+emit_32(1110715348);
+emit_32(3272640496);
+emit_32(1094418484);
+emit_32(1110472891);
+emit_32(3272640496);
+emit_32(1098514432);
+emit_32(1110034088);
+emit_32(3272640496);
+emit_32(1100759066);
+emit_32(1109323153);
+emit_32(3272640496);
+emit_32(1102807040);
+emit_32(1108619533);
+emit_32(3272640496);
+emit_32(1104855066);
+emit_32(1107915545);
+emit_32(3272640496);
+emit_32(1106903040);
+emit_32(1107624277);
+emit_32(3272640496);
+emit_32(1108123661);
+emit_32(1106832051);
+emit_32(3272640496);
+emit_32(1109147648);
+emit_32(1105866313);
+emit_32(3272640496);
+emit_32(1110171661);
+emit_32(1104840439);
+emit_32(3272640496);
+emit_32(1111195648);
+emit_32(1104739880);
+emit_32(3272640496);
+emit_32(1112219661);
+emit_32(1104492573);
+emit_32(3272640496);
+emit_32(1113243648);
+emit_32(1104325483);
+emit_32(3272640496);
+emit_32(1114267661);
+emit_32(1105104785);
+emit_32(3272640496);
+emit_32(1115291648);
+emit_32(1105118154);
+emit_32(3272640496);
+emit_32(1116000263);
+emit_32(1105110290);
+emit_32(3272640496);
+emit_32(1116512256);
+emit_32(1106190585);
+emit_32(3272640496);
+emit_32(1117024263);
+emit_32(1106806938);
+emit_32(3272640496);
+emit_32(1117536256);
+emit_32(1107447723);
+emit_32(3272640496);
+emit_32(1118048263);
+emit_32(1107960450);
+emit_32(3272640496);
+emit_32(1118560256);
+emit_32(1108120882);
+emit_32(3272640496);
+emit_32(1119072263);
+emit_32(1108021058);
+emit_32(3272640496);
+emit_32(1119584256);
+emit_32(1107844897);
+emit_32(3272640496);
+emit_32(1120096263);
+emit_32(1107897457);
+emit_32(3272640496);
+emit_32(1120608322);
+emit_32(1108031465);
+emit_32(3272640496);
+emit_32(1121120289);
+emit_32(1108410263);
+emit_32(3272640496);
+emit_32(1121632256);
+emit_32(1108301604);
+emit_32(3272640496);
+emit_32(1122144223);
+emit_32(1108298380);
+emit_32(3272640496);
+emit_32(1122656322);
+emit_32(1108279165);
+emit_32(3272640496);
+emit_32(1123168289);
+emit_32(1108038648);
+emit_32(3272640496);
+emit_32(1123680256);
+emit_32(1107908388);
+emit_32(3272640496);
+emit_32(1124132848);
+emit_32(1107420617);
+emit_32(3272640496);
+emit_32(1124388897);
+emit_32(1106088663);
+emit_32(3272640496);
+emit_32(1124644880);
+emit_32(1104288416);
+emit_32(3272640496);
+emit_32(1124900864);
+emit_32(1102764101);
+emit_32(3272640496);
+emit_32(1125156848);
+emit_32(1100664904);
+emit_32(3272640496);
+emit_32(1125412897);
+emit_32(1097290744);
+emit_32(3272640496);
+emit_32(1125668880);
+emit_32(1093918838);
+emit_32(3272640496);
+emit_32(1125924864);
+emit_32(1092359438);
+emit_32(3272640496);
+emit_32(1126180848);
+emit_32(1090438216);
+emit_32(3272640496);
+emit_32(1126436897);
+emit_32(1085633179);
+emit_32(3272640496);
+emit_32(1126692880);
+emit_32(1082298330);
+emit_32(3272640496);
+emit_32(1126948864);
+emit_32(1071317684);
+emit_32(3272640496);
+emit_32(1127204848);
+emit_32(3211416991);
+emit_32(3272640496);
+emit_32(1127460897);
+emit_32(3224008099);
+emit_32(3272640496);
+emit_32(1127716880);
+emit_32(3232930936);
+emit_32(3272640496);
+emit_32(1127972864);
+emit_32(3237569689);
+emit_32(3272640496);
+emit_32(1128228848);
+emit_32(3240285648);
+emit_32(3272640496);
+emit_32(1128484897);
+emit_32(3243818405);
+emit_32(3272640496);
+emit_32(1128740880);
+emit_32(3246427577);
+emit_32(3272640496);
+emit_32(1128996864);
+emit_32(3247046918);
+emit_32(3272640496);
+emit_32(1129252848);
+emit_32(3247819509);
+emit_32(3272640496);
+emit_32(1129508897);
+emit_32(3247822340);
+emit_32(3272640496);
+emit_32(1129764880);
+emit_32(3248121446);
+emit_32(3272640496);
+emit_32(1130020864);
+emit_32(3248655224);
+emit_32(3272640496);
+emit_32(1130276848);
+emit_32(3248219541);
+emit_32(3272640496);
+emit_32(1130532897);
+emit_32(3247726395);
+emit_32(3272640496);
+emit_32(1130788880);
+emit_32(3247190835);
+emit_32(3272640496);
+emit_32(1131044864);
+emit_32(3246657425);
+emit_32(3272640496);
+emit_32(1131300848);
+emit_32(3245446844);
+emit_32(3272640496);
+emit_32(1131556897);
+emit_32(3243320646);
+emit_32(3272640496);
+emit_32(1131812880);
+emit_32(3240090015);
+emit_32(3272640496);
+emit_32(1132068864);
+emit_32(3233059449);
+emit_32(3272640496);
+emit_32(1081737216);
+emit_32(1110289075);
+emit_32(3272896545);
+emit_32(1090125824);
+emit_32(1110184899);
+emit_32(3272896545);
+emit_32(1094418484);
+emit_32(1110081326);
+emit_32(3272896545);
+emit_32(1098514432);
+emit_32(1109624907);
+emit_32(3272896545);
+emit_32(1100759066);
+emit_32(1109048007);
+emit_32(3272896545);
+emit_32(1102807040);
+emit_32(1108349472);
+emit_32(3272896545);
+emit_32(1104855066);
+emit_32(1107549330);
+emit_32(3272896545);
+emit_32(1106903040);
+emit_32(1106981421);
+emit_32(3272896545);
+emit_32(1108123661);
+emit_32(1105990831);
+emit_32(3272896545);
+emit_32(1109147648);
+emit_32(1104915359);
+emit_32(3272896545);
+emit_32(1110171661);
+emit_32(1103693873);
+emit_32(3272896545);
+emit_32(1111195648);
+emit_32(1103863900);
+emit_32(3272896545);
+emit_32(1112219661);
+emit_32(1103998799);
+emit_32(3272896545);
+emit_32(1113243648);
+emit_32(1104012640);
+emit_32(3272896545);
+emit_32(1114267661);
+emit_32(1104234834);
+emit_32(3272896545);
+emit_32(1115291648);
+emit_32(1104799230);
+emit_32(3272896545);
+emit_32(1116000263);
+emit_32(1104865395);
+emit_32(3272896545);
+emit_32(1116512256);
+emit_32(1105083079);
+emit_32(3272896545);
+emit_32(1117024263);
+emit_32(1105770892);
+emit_32(3272896545);
+emit_32(1117536256);
+emit_32(1106981264);
+emit_32(3272896545);
+emit_32(1118048263);
+emit_32(1107541964);
+emit_32(3272896545);
+emit_32(1118560256);
+emit_32(1107753173);
+emit_32(3272896545);
+emit_32(1119072263);
+emit_32(1107932348);
+emit_32(3272896545);
+emit_32(1119584256);
+emit_32(1107696026);
+emit_32(3272896545);
+emit_32(1120096263);
+emit_32(1107774171);
+emit_32(3272896545);
+emit_32(1120608322);
+emit_32(1107999483);
+emit_32(3272896545);
+emit_32(1121120289);
+emit_32(1108089897);
+emit_32(3272896545);
+emit_32(1121632256);
+emit_32(1107942887);
+emit_32(3272896545);
+emit_32(1122144223);
+emit_32(1108011018);
+emit_32(3272896545);
+emit_32(1122656322);
+emit_32(1107841201);
+emit_32(3272896545);
+emit_32(1123168289);
+emit_32(1107624487);
+emit_32(3272896545);
+emit_32(1123680256);
+emit_32(1107346430);
+emit_32(3272896545);
+emit_32(1124132848);
+emit_32(1106655681);
+emit_32(3272896545);
+emit_32(1124388897);
+emit_32(1105650778);
+emit_32(3272896545);
+emit_32(1124644880);
+emit_32(1103819755);
+emit_32(3272896545);
+emit_32(1124900864);
+emit_32(1101832441);
+emit_32(3272896545);
+emit_32(1125156848);
+emit_32(1099587597);
+emit_32(3272896545);
+emit_32(1125412897);
+emit_32(1095963771);
+emit_32(3272896545);
+emit_32(1125668880);
+emit_32(1092682462);
+emit_32(3272896545);
+emit_32(1125924864);
+emit_32(1090858999);
+emit_32(3272896545);
+emit_32(1126180848);
+emit_32(1087538064);
+emit_32(3272896545);
+emit_32(1126436897);
+emit_32(1082518866);
+emit_32(3272896545);
+emit_32(1126692880);
+emit_32(1074794217);
+emit_32(3272896545);
+emit_32(1126948864);
+emit_32(1055151058);
+emit_32(3272896545);
+emit_32(1127204848);
+emit_32(3219019520);
+emit_32(3272896545);
+emit_32(1127460897);
+emit_32(3227302431);
+emit_32(3272896545);
+emit_32(1127716880);
+emit_32(3235425456);
+emit_32(3272896545);
+emit_32(1127972864);
+emit_32(3239324219);
+emit_32(3272896545);
+emit_32(1128228848);
+emit_32(3242595451);
+emit_32(3272896545);
+emit_32(1128484897);
+emit_32(3244970790);
+emit_32(3272896545);
+emit_32(1128740880);
+emit_32(3246227194);
+emit_32(3272896545);
+emit_32(1128996864);
+emit_32(3247085558);
+emit_32(3272896545);
+emit_32(1129252848);
+emit_32(3248170310);
+emit_32(3272896545);
+emit_32(1129508897);
+emit_32(3248369697);
+emit_32(3272896545);
+emit_32(1129764880);
+emit_32(3248556238);
+emit_32(3272896545);
+emit_32(1130020864);
+emit_32(3248791329);
+emit_32(3272896545);
+emit_32(1130276848);
+emit_32(3248863052);
+emit_32(3272896545);
+emit_32(1130532897);
+emit_32(3248823992);
+emit_32(3272896545);
+emit_32(1130788880);
+emit_32(3248329641);
+emit_32(3272896545);
+emit_32(1131044864);
+emit_32(3247178567);
+emit_32(3272896545);
+emit_32(1131300848);
+emit_32(3244969427);
+emit_32(3272896545);
+emit_32(1131556897);
+emit_32(3242521421);
+emit_32(3272896545);
+emit_32(1131812880);
+emit_32(3240271177);
+emit_32(3272896545);
+emit_32(1132068864);
+emit_32(3235475683);
+emit_32(3272896545);
+emit_32(1081737216);
+emit_32(1110106754);
+emit_32(3273152528);
+emit_32(1090125824);
+emit_32(1109851190);
+emit_32(3273152528);
+emit_32(1094418484);
+emit_32(1109531007);
+emit_32(3273152528);
+emit_32(1098514432);
+emit_32(1109268234);
+emit_32(3273152528);
+emit_32(1100759066);
+emit_32(1108527468);
+emit_32(3273152528);
+emit_32(1102807040);
+emit_32(1107822510);
+emit_32(3273152528);
+emit_32(1104855066);
+emit_32(1106879657);
+emit_32(3273152528);
+emit_32(1106903040);
+emit_32(1105644854);
+emit_32(3273152528);
+emit_32(1108123661);
+emit_32(1104812442);
+emit_32(3273152528);
+emit_32(1109147648);
+emit_32(1103599816);
+emit_32(3273152528);
+emit_32(1110171661);
+emit_32(1102886837);
+emit_32(3273152528);
+emit_32(1111195648);
+emit_32(1102824551);
+emit_32(3273152528);
+emit_32(1112219661);
+emit_32(1103195800);
+emit_32(3273152528);
+emit_32(1113243648);
+emit_32(1103637250);
+emit_32(3273152528);
+emit_32(1114267661);
+emit_32(1103975626);
+emit_32(3273152528);
+emit_32(1115291648);
+emit_32(1103996545);
+emit_32(3273152528);
+emit_32(1116000263);
+emit_32(1104513755);
+emit_32(3273152528);
+emit_32(1116512256);
+emit_32(1104583642);
+emit_32(3273152528);
+emit_32(1117024263);
+emit_32(1105332745);
+emit_32(3273152528);
+emit_32(1117536256);
+emit_32(1106424522);
+emit_32(3273152528);
+emit_32(1118048263);
+emit_32(1107096712);
+emit_32(3273152528);
+emit_32(1118560256);
+emit_32(1107537140);
+emit_32(3273152528);
+emit_32(1119072263);
+emit_32(1107484004);
+emit_32(3273152528);
+emit_32(1119584256);
+emit_32(1107558426);
+emit_32(3273152528);
+emit_32(1120096263);
+emit_32(1107936071);
+emit_32(3273152528);
+emit_32(1120608322);
+emit_32(1108104000);
+emit_32(3273152528);
+emit_32(1121120289);
+emit_32(1107929150);
+emit_32(3273152528);
+emit_32(1121632256);
+emit_32(1107694584);
+emit_32(3273152528);
+emit_32(1122144223);
+emit_32(1107539263);
+emit_32(3273152528);
+emit_32(1122656322);
+emit_32(1107466886);
+emit_32(3273152528);
+emit_32(1123168289);
+emit_32(1107473859);
+emit_32(3273152528);
+emit_32(1123680256);
+emit_32(1106712723);
+emit_32(3273152528);
+emit_32(1124132848);
+emit_32(1105424338);
+emit_32(3273152528);
+emit_32(1124388897);
+emit_32(1104440931);
+emit_32(3273152528);
+emit_32(1124644880);
+emit_32(1103144052);
+emit_32(3273152528);
+emit_32(1124900864);
+emit_32(1101107560);
+emit_32(3273152528);
+emit_32(1125156848);
+emit_32(1099132725);
+emit_32(3273152528);
+emit_32(1125412897);
+emit_32(1095577685);
+emit_32(3273152528);
+emit_32(1125668880);
+emit_32(1092369556);
+emit_32(3273152528);
+emit_32(1125924864);
+emit_32(1088719809);
+emit_32(3273152528);
+emit_32(1126180848);
+emit_32(1083696669);
+emit_32(3273152528);
+emit_32(1126436897);
+emit_32(1075000451);
+emit_32(3273152528);
+emit_32(1126692880);
+emit_32(1069530827);
+emit_32(3273152528);
+emit_32(1126948864);
+emit_32(3206582150);
+emit_32(3273152528);
+emit_32(1127204848);
+emit_32(3221141921);
+emit_32(3273152528);
+emit_32(1127460897);
+emit_32(3231308055);
+emit_32(3273152528);
+emit_32(1127716880);
+emit_32(3238013027);
+emit_32(3273152528);
+emit_32(1127972864);
+emit_32(3241648692);
+emit_32(3273152528);
+emit_32(1128228848);
+emit_32(3243113762);
+emit_32(3273152528);
+emit_32(1128484897);
+emit_32(3244161289);
+emit_32(3273152528);
+emit_32(1128740880);
+emit_32(3245421258);
+emit_32(3273152528);
+emit_32(1128996864);
+emit_32(3246875424);
+emit_32(3273152528);
+emit_32(1129252848);
+emit_32(3247610685);
+emit_32(3273152528);
+emit_32(1129508897);
+emit_32(3248309299);
+emit_32(3273152528);
+emit_32(1129764880);
+emit_32(3248981069);
+emit_32(3273152528);
+emit_32(1130020864);
+emit_32(3249435889);
+emit_32(3273152528);
+emit_32(1130276848);
+emit_32(3249270057);
+emit_32(3273152528);
+emit_32(1130532897);
+emit_32(3249259047);
+emit_32(3273152528);
+emit_32(1130788880);
+emit_32(3248161974);
+emit_32(3273152528);
+emit_32(1131044864);
+emit_32(3246939072);
+emit_32(3273152528);
+emit_32(1131300848);
+emit_32(3244307041);
+emit_32(3273152528);
+emit_32(1131556897);
+emit_32(3241397138);
+emit_32(3273152528);
+emit_32(1131812880);
+emit_32(3239169606);
+emit_32(3273152528);
+emit_32(1132068864);
+emit_32(3235418829);
+emit_32(3273152528);
+emit_32(1081737216);
+emit_32(1109848700);
+emit_32(3273408512);
+emit_32(1090125824);
+emit_32(1109616073);
+emit_32(3273408512);
+emit_32(1094418484);
+emit_32(1109191190);
+emit_32(3273408512);
+emit_32(1098514432);
+emit_32(1108732386);
+emit_32(3273408512);
+emit_32(1100759066);
+emit_32(1108353876);
+emit_32(3273408512);
+emit_32(1102807040);
+emit_32(1107813099);
+emit_32(3273408512);
+emit_32(1104855066);
+emit_32(1106931404);
+emit_32(3273408512);
+emit_32(1106903040);
+emit_32(1105711700);
+emit_32(3273408512);
+emit_32(1108123661);
+emit_32(1104199496);
+emit_32(3273408512);
+emit_32(1109147648);
+emit_32(1102966738);
+emit_32(3273408512);
+emit_32(1110171661);
+emit_32(1102284115);
+emit_32(3273408512);
+emit_32(1111195648);
+emit_32(1102118283);
+emit_32(3273408512);
+emit_32(1112219661);
+emit_32(1102403024);
+emit_32(3273408512);
+emit_32(1113243648);
+emit_32(1102981471);
+emit_32(3273408512);
+emit_32(1114267661);
+emit_32(1103432253);
+emit_32(3273408512);
+emit_32(1115291648);
+emit_32(1103738700);
+emit_32(3273408512);
+emit_32(1116000263);
+emit_32(1104470396);
+emit_32(3273408512);
+emit_32(1116512256);
+emit_32(1104866915);
+emit_32(3273408512);
+emit_32(1117024263);
+emit_32(1105262543);
+emit_32(3273408512);
+emit_32(1117536256);
+emit_32(1106001527);
+emit_32(3273408512);
+emit_32(1118048263);
+emit_32(1106476637);
+emit_32(3273408512);
+emit_32(1118560256);
+emit_32(1106576409);
+emit_32(3273408512);
+emit_32(1119072263);
+emit_32(1106461537);
+emit_32(3273408512);
+emit_32(1119584256);
+emit_32(1107353561);
+emit_32(3273408512);
+emit_32(1120096263);
+emit_32(1107634841);
+emit_32(3273408512);
+emit_32(1120608322);
+emit_32(1107769845);
+emit_32(3273408512);
+emit_32(1121120289);
+emit_32(1107434380);
+emit_32(3273408512);
+emit_32(1121632256);
+emit_32(1107315943);
+emit_32(3273408512);
+emit_32(1122144223);
+emit_32(1106787592);
+emit_32(3273408512);
+emit_32(1122656322);
+emit_32(1106765100);
+emit_32(3273408512);
+emit_32(1123168289);
+emit_32(1106762845);
+emit_32(3273408512);
+emit_32(1123680256);
+emit_32(1105758834);
+emit_32(3273408512);
+emit_32(1124132848);
+emit_32(1104621758);
+emit_32(3273408512);
+emit_32(1124388897);
+emit_32(1103142375);
+emit_32(3273408512);
+emit_32(1124644880);
+emit_32(1101953080);
+emit_32(3273408512);
+emit_32(1124900864);
+emit_32(1100385039);
+emit_32(3273408512);
+emit_32(1125156848);
+emit_32(1097070857);
+emit_32(3273408512);
+emit_32(1125412897);
+emit_32(1093584657);
+emit_32(3273408512);
+emit_32(1125668880);
+emit_32(1091629985);
+emit_32(3273408512);
+emit_32(1125924864);
+emit_32(1088130111);
+emit_32(3273408512);
+emit_32(1126180848);
+emit_32(1080062598);
+emit_32(3273408512);
+emit_32(1126436897);
+emit_32(1066603370);
+emit_32(3273408512);
+emit_32(1126692880);
+emit_32(3206794499);
+emit_32(3273408512);
+emit_32(1126948864);
+emit_32(3224322043);
+emit_32(3273408512);
+emit_32(1127204848);
+emit_32(3229663824);
+emit_32(3273408512);
+emit_32(1127460897);
+emit_32(3234125914);
+emit_32(3273408512);
+emit_32(1127716880);
+emit_32(3238854457);
+emit_32(3273408512);
+emit_32(1127972864);
+emit_32(3240458138);
+emit_32(3273408512);
+emit_32(1128228848);
+emit_32(3241347121);
+emit_32(3273408512);
+emit_32(1128484897);
+emit_32(3243399080);
+emit_32(3273408512);
+emit_32(1128740880);
+emit_32(3244860480);
+emit_32(3273408512);
+emit_32(1128996864);
+emit_32(3246331213);
+emit_32(3273408512);
+emit_32(1129252848);
+emit_32(3247173534);
+emit_32(3273408512);
+emit_32(1129508897);
+emit_32(3247995565);
+emit_32(3273408512);
+emit_32(1129764880);
+emit_32(3249070460);
+emit_32(3273408512);
+emit_32(1130020864);
+emit_32(3249215740);
+emit_32(3273408512);
+emit_32(1130276848);
+emit_32(3249090383);
+emit_32(3273408512);
+emit_32(1130532897);
+emit_32(3248637136);
+emit_32(3273408512);
+emit_32(1130788880);
+emit_32(3247527900);
+emit_32(3273408512);
+emit_32(1131044864);
+emit_32(3246097695);
+emit_32(3273408512);
+emit_32(1131300848);
+emit_32(3243725711);
+emit_32(3273408512);
+emit_32(1131556897);
+emit_32(3240252198);
+emit_32(3273408512);
+emit_32(1131812880);
+emit_32(3238101369);
+emit_32(3273408512);
+emit_32(1132068864);
+emit_32(3232685716);
+emit_32(3273408512);
+emit_32(1081737216);
+emit_32(1109518057);
+emit_32(3273664496);
+emit_32(1090125824);
+emit_32(1109209645);
+emit_32(3273664496);
+emit_32(1094418484);
+emit_32(1108711100);
+emit_32(3273664496);
+emit_32(1098514432);
+emit_32(1108394482);
+emit_32(3273664496);
+emit_32(1100759066);
+emit_32(1107902805);
+emit_32(3273664496);
+emit_32(1102807040);
+emit_32(1107530351);
+emit_32(3273664496);
+emit_32(1104855066);
+emit_32(1106484396);
+emit_32(3273664496);
+emit_32(1106903040);
+emit_32(1105503610);
+emit_32(3273664496);
+emit_32(1108123661);
+emit_32(1104089658);
+emit_32(3273664496);
+emit_32(1109147648);
+emit_32(1103023571);
+emit_32(3273664496);
+emit_32(1110171661);
+emit_32(1102213651);
+emit_32(3273664496);
+emit_32(1111195648);
+emit_32(1101760718);
+emit_32(3273664496);
+emit_32(1112219661);
+emit_32(1102038119);
+emit_32(3273664496);
+emit_32(1113243648);
+emit_32(1102582016);
+emit_32(3273664496);
+emit_32(1114267661);
+emit_32(1103573287);
+emit_32(3273664496);
+emit_32(1115291648);
+emit_32(1103737913);
+emit_32(3273664496);
+emit_32(1116000263);
+emit_32(1104225396);
+emit_32(3273664496);
+emit_32(1116512256);
+emit_32(1104815063);
+emit_32(3273664496);
+emit_32(1117024263);
+emit_32(1105243301);
+emit_32(3273664496);
+emit_32(1117536256);
+emit_32(1105695814);
+emit_32(3273664496);
+emit_32(1118048263);
+emit_32(1105989625);
+emit_32(3273664496);
+emit_32(1118560256);
+emit_32(1106114930);
+emit_32(3273664496);
+emit_32(1119072263);
+emit_32(1106699669);
+emit_32(3273664496);
+emit_32(1119584256);
+emit_32(1107034164);
+emit_32(3273664496);
+emit_32(1120096263);
+emit_32(1107327294);
+emit_32(3273664496);
+emit_32(1120608322);
+emit_32(1106913106);
+emit_32(3273664496);
+emit_32(1121120289);
+emit_32(1106509038);
+emit_32(3273664496);
+emit_32(1121632256);
+emit_32(1105952401);
+emit_32(3273664496);
+emit_32(1122144223);
+emit_32(1106608862);
+emit_32(3273664496);
+emit_32(1122656322);
+emit_32(1106050443);
+emit_32(3273664496);
+emit_32(1123168289);
+emit_32(1105539210);
+emit_32(3273664496);
+emit_32(1123680256);
+emit_32(1104316937);
+emit_32(3273664496);
+emit_32(1124132848);
+emit_32(1103423078);
+emit_32(3273664496);
+emit_32(1124388897);
+emit_32(1102157867);
+emit_32(3273664496);
+emit_32(1124644880);
+emit_32(1100686767);
+emit_32(3273664496);
+emit_32(1124900864);
+emit_32(1099193752);
+emit_32(3273664496);
+emit_32(1125156848);
+emit_32(1096183867);
+emit_32(3273664496);
+emit_32(1125412897);
+emit_32(1092300434);
+emit_32(3273664496);
+emit_32(1125668880);
+emit_32(1090658553);
+emit_32(3273664496);
+emit_32(1125924864);
+emit_32(1087350684);
+emit_32(3273664496);
+emit_32(1126180848);
+emit_32(1076097052);
+emit_32(3273664496);
+emit_32(1126436897);
+emit_32(1033250201);
+emit_32(3273664496);
+emit_32(1126692880);
+emit_32(3213794340);
+emit_32(3273664496);
+emit_32(1126948864);
+emit_32(3225617244);
+emit_32(3273664496);
+emit_32(1127204848);
+emit_32(3234199587);
+emit_32(3273664496);
+emit_32(1127460897);
+emit_32(3236783823);
+emit_32(3273664496);
+emit_32(1127716880);
+emit_32(3239231409);
+emit_32(3273664496);
+emit_32(1127972864);
+emit_32(3239869436);
+emit_32(3273664496);
+emit_32(1128228848);
+emit_32(3240676137);
+emit_32(3273664496);
+emit_32(1128484897);
+emit_32(3242958153);
+emit_32(3273664496);
+emit_32(1128740880);
+emit_32(3244196417);
+emit_32(3273664496);
+emit_32(1128996864);
+emit_32(3245843100);
+emit_32(3273664496);
+emit_32(1129252848);
+emit_32(3247245204);
+emit_32(3273664496);
+emit_32(1129508897);
+emit_32(3248095337);
+emit_32(3273664496);
+emit_32(1129764880);
+emit_32(3248269505);
+emit_32(3273664496);
+emit_32(1130020864);
+emit_32(3248127423);
+emit_32(3273664496);
+emit_32(1130276848);
+emit_32(3248240250);
+emit_32(3273664496);
+emit_32(1130532897);
+emit_32(3247358398);
+emit_32(3273664496);
+emit_32(1130788880);
+emit_32(3246549998);
+emit_32(3273664496);
+emit_32(1131044864);
+emit_32(3244820005);
+emit_32(3273664496);
+emit_32(1131300848);
+emit_32(3242185563);
+emit_32(3273664496);
+emit_32(1131556897);
+emit_32(3239470873);
+emit_32(3273664496);
+emit_32(1131812880);
+emit_32(3235146241);
+emit_32(3273664496);
+emit_32(1132068864);
+emit_32(3228421765);
+emit_32(3273664496);
+emit_32(1081737216);
+emit_32(1109095429);
+emit_32(3273920545);
+emit_32(1090125824);
+emit_32(1108721848);
+emit_32(3273920545);
+emit_32(1094418484);
+emit_32(1108271799);
+emit_32(3273920545);
+emit_32(1098514432);
+emit_32(1107836640);
+emit_32(3273920545);
+emit_32(1100759066);
+emit_32(1107583487);
+emit_32(3273920545);
+emit_32(1102807040);
+emit_32(1107305929);
+emit_32(3273920545);
+emit_32(1104855066);
+emit_32(1106095427);
+emit_32(3273920545);
+emit_32(1106903040);
+emit_32(1104843427);
+emit_32(3273920545);
+emit_32(1108123661);
+emit_32(1103754481);
+emit_32(3273920545);
+emit_32(1109147648);
+emit_32(1102895959);
+emit_32(3273920545);
+emit_32(1110171661);
+emit_32(1102181460);
+emit_32(3273920545);
+emit_32(1111195648);
+emit_32(1101676256);
+emit_32(3273920545);
+emit_32(1112219661);
+emit_32(1101547858);
+emit_32(3273920545);
+emit_32(1113243648);
+emit_32(1102482086);
+emit_32(3273920545);
+emit_32(1114267661);
+emit_32(1103334421);
+emit_32(3273920545);
+emit_32(1115291648);
+emit_32(1103698330);
+emit_32(3273920545);
+emit_32(1116000263);
+emit_32(1103797472);
+emit_32(3273920545);
+emit_32(1116512256);
+emit_32(1104470449);
+emit_32(3273920545);
+emit_32(1117024263);
+emit_32(1105019221);
+emit_32(3273920545);
+emit_32(1117536256);
+emit_32(1105107249);
+emit_32(3273920545);
+emit_32(1118048263);
+emit_32(1105221177);
+emit_32(3273920545);
+emit_32(1118560256);
+emit_32(1105813517);
+emit_32(3273920545);
+emit_32(1119072263);
+emit_32(1106222986);
+emit_32(3273920545);
+emit_32(1119584256);
+emit_32(1106744181);
+emit_32(3273920545);
+emit_32(1120096263);
+emit_32(1106572162);
+emit_32(3273920545);
+emit_32(1120608322);
+emit_32(1106138261);
+emit_32(3273920545);
+emit_32(1121120289);
+emit_32(1105034373);
+emit_32(3273920545);
+emit_32(1121632256);
+emit_32(1104844371);
+emit_32(3273920545);
+emit_32(1122144223);
+emit_32(1105102006);
+emit_32(3273920545);
+emit_32(1122656322);
+emit_32(1104862039);
+emit_32(3273920545);
+emit_32(1123168289);
+emit_32(1104232946);
+emit_32(3273920545);
+emit_32(1123680256);
+emit_32(1103026297);
+emit_32(3273920545);
+emit_32(1124132848);
+emit_32(1101863741);
+emit_32(3273920545);
+emit_32(1124388897);
+emit_32(1100516216);
+emit_32(3273920545);
+emit_32(1124644880);
+emit_32(1099293105);
+emit_32(3273920545);
+emit_32(1124900864);
+emit_32(1097230346);
+emit_32(3273920545);
+emit_32(1125156848);
+emit_32(1093750751);
+emit_32(3273920545);
+emit_32(1125412897);
+emit_32(1090925405);
+emit_32(3273920545);
+emit_32(1125668880);
+emit_32(1088433213);
+emit_32(3273920545);
+emit_32(1125924864);
+emit_32(1084125285);
+emit_32(3273920545);
+emit_32(1126180848);
+emit_32(1075725646);
+emit_32(3273920545);
+emit_32(1126436897);
+emit_32(1061623490);
+emit_32(3273920545);
+emit_32(1126692880);
+emit_32(3216532465);
+emit_32(3273920545);
+emit_32(1126948864);
+emit_32(3227819673);
+emit_32(3273920545);
+emit_32(1127204848);
+emit_32(3234520577);
+emit_32(3273920545);
+emit_32(1127460897);
+emit_32(3236952791);
+emit_32(3273920545);
+emit_32(1127716880);
+emit_32(3239234608);
+emit_32(3273920545);
+emit_32(1127972864);
+emit_32(3240023346);
+emit_32(3273920545);
+emit_32(1128228848);
+emit_32(3241225696);
+emit_32(3273920545);
+emit_32(1128484897);
+emit_32(3243063535);
+emit_32(3273920545);
+emit_32(1128740880);
+emit_32(3245269949);
+emit_32(3273920545);
+emit_32(1128996864);
+emit_32(3246344425);
+emit_32(3273920545);
+emit_32(1129252848);
+emit_32(3246962665);
+emit_32(3273920545);
+emit_32(1129508897);
+emit_32(3247716853);
+emit_32(3273920545);
+emit_32(1129764880);
+emit_32(3247725609);
+emit_32(3273920545);
+emit_32(1130020864);
+emit_32(3247729803);
+emit_32(3273920545);
+emit_32(1130276848);
+emit_32(3247215739);
+emit_32(3273920545);
+emit_32(1130532897);
+emit_32(3246018422);
+emit_32(3273920545);
+emit_32(1130788880);
+emit_32(3244886589);
+emit_32(3273920545);
+emit_32(1131044864);
+emit_32(3242781888);
+emit_32(3273920545);
+emit_32(1131300848);
+emit_32(3240781205);
+emit_32(3273920545);
+emit_32(1131556897);
+emit_32(3238299267);
+emit_32(3273920545);
+emit_32(1131812880);
+emit_32(3233550057);
+emit_32(3273920545);
+emit_32(1132068864);
+emit_32(3223464811);
+emit_32(3273920545);
+emit_32(1081737216);
+emit_32(1108664621);
+emit_32(3274176528);
+emit_32(1090125824);
+emit_32(1108522618);
+emit_32(3274176528);
+emit_32(1094418484);
+emit_32(1108407563);
+emit_32(3274176528);
+emit_32(1098514432);
+emit_32(1107682787);
+emit_32(3274176528);
+emit_32(1100759066);
+emit_32(1107320583);
+emit_32(3274176528);
+emit_32(1102807040);
+emit_32(1106544532);
+emit_32(3274176528);
+emit_32(1104855066);
+emit_32(1105511999);
+emit_32(3274176528);
+emit_32(1106903040);
+emit_32(1104375867);
+emit_32(3274176528);
+emit_32(1108123661);
+emit_32(1103074112);
+emit_32(3274176528);
+emit_32(1109147648);
+emit_32(1102337278);
+emit_32(3274176528);
+emit_32(1110171661);
+emit_32(1101962517);
+emit_32(3274176528);
+emit_32(1111195648);
+emit_32(1101639031);
+emit_32(3274176528);
+emit_32(1112219661);
+emit_32(1101573181);
+emit_32(3274176528);
+emit_32(1113243648);
+emit_32(1101942070);
+emit_32(3274176528);
+emit_32(1114267661);
+emit_32(1102543638);
+emit_32(3274176528);
+emit_32(1115291648);
+emit_32(1103135559);
+emit_32(3274176528);
+emit_32(1116000263);
+emit_32(1103322153);
+emit_32(3274176528);
+emit_32(1116512256);
+emit_32(1103539995);
+emit_32(3274176528);
+emit_32(1117024263);
+emit_32(1103767850);
+emit_32(3274176528);
+emit_32(1117536256);
+emit_32(1104163740);
+emit_32(3274176528);
+emit_32(1118048263);
+emit_32(1104602045);
+emit_32(3274176528);
+emit_32(1118560256);
+emit_32(1104897953);
+emit_32(3274176528);
+emit_32(1119072263);
+emit_32(1105720246);
+emit_32(3274176528);
+emit_32(1119584256);
+emit_32(1105815981);
+emit_32(3274176528);
+emit_32(1120096263);
+emit_32(1105144788);
+emit_32(3274176528);
+emit_32(1120608322);
+emit_32(1104485233);
+emit_32(3274176528);
+emit_32(1121120289);
+emit_32(1103618061);
+emit_32(3274176528);
+emit_32(1121632256);
+emit_32(1103661315);
+emit_32(3274176528);
+emit_32(1122144223);
+emit_32(1103401845);
+emit_32(3274176528);
+emit_32(1122656322);
+emit_32(1102987500);
+emit_32(3274176528);
+emit_32(1123168289);
+emit_32(1102162900);
+emit_32(3274176528);
+emit_32(1123680256);
+emit_32(1100880701);
+emit_32(3274176528);
+emit_32(1124132848);
+emit_32(1099831339);
+emit_32(3274176528);
+emit_32(1124388897);
+emit_32(1098628622);
+emit_32(3274176528);
+emit_32(1124644880);
+emit_32(1096283587);
+emit_32(3274176528);
+emit_32(1124900864);
+emit_32(1094436939);
+emit_32(3274176528);
+emit_32(1125156848);
+emit_32(1092462586);
+emit_32(3274176528);
+emit_32(1125412897);
+emit_32(1090574426);
+emit_32(3274176528);
+emit_32(1125668880);
+emit_32(1088368683);
+emit_32(3274176528);
+emit_32(1125924864);
+emit_32(1084468987);
+emit_32(3274176528);
+emit_32(1126180848);
+emit_32(1078479458);
+emit_32(3274176528);
+emit_32(1126436897);
+emit_32(1070097393);
+emit_32(3274176528);
+emit_32(1126692880);
+emit_32(3219330905);
+emit_32(3274176528);
+emit_32(1126948864);
+emit_32(3229956377);
+emit_32(3274176528);
+emit_32(1127204848);
+emit_32(3233498299);
+emit_32(3274176528);
+emit_32(1127460897);
+emit_32(3237958480);
+emit_32(3274176528);
+emit_32(1127716880);
+emit_32(3239973518);
+emit_32(3274176528);
+emit_32(1127972864);
+emit_32(3240389457);
+emit_32(3274176528);
+emit_32(1128228848);
+emit_32(3241706154);
+emit_32(3274176528);
+emit_32(1128484897);
+emit_32(3243624314);
+emit_32(3274176528);
+emit_32(1128740880);
+emit_32(3245731637);
+emit_32(3274176528);
+emit_32(1128996864);
+emit_32(3246688777);
+emit_32(3274176528);
+emit_32(1129252848);
+emit_32(3247277500);
+emit_32(3274176528);
+emit_32(1129508897);
+emit_32(3247268744);
+emit_32(3274176528);
+emit_32(1129764880);
+emit_32(3246821579);
+emit_32(3274176528);
+emit_32(1130020864);
+emit_32(3246928901);
+emit_32(3274176528);
+emit_32(1130276848);
+emit_32(3246584024);
+emit_32(3274176528);
+emit_32(1130532897);
+emit_32(3244589423);
+emit_32(3274176528);
+emit_32(1130788880);
+emit_32(3243611311);
+emit_32(3274176528);
+emit_32(1131044864);
+emit_32(3242211253);
+emit_32(3274176528);
+emit_32(1131300848);
+emit_32(3239996199);
+emit_32(3274176528);
+emit_32(1131556897);
+emit_32(3237841102);
+emit_32(3274176528);
+emit_32(1131812880);
+emit_32(3232583521);
+emit_32(3274176528);
+emit_32(1132068864);
+emit_32(3220160035);
+emit_32(3274176528);
+emit_32(1081737216);
+emit_32(1108184872);
+emit_32(3274432512);
+emit_32(1090125824);
+emit_32(1108148932);
+emit_32(3274432512);
+emit_32(1094418484);
+emit_32(1107903853);
+emit_32(3274432512);
+emit_32(1098514432);
+emit_32(1107577694);
+emit_32(3274432512);
+emit_32(1100759066);
+emit_32(1106982365);
+emit_32(3274432512);
+emit_32(1102807040);
+emit_32(1105680086);
+emit_32(3274432512);
+emit_32(1104855066);
+emit_32(1104468771);
+emit_32(3274432512);
+emit_32(1106903040);
+emit_32(1103509114);
+emit_32(3274432512);
+emit_32(1108123661);
+emit_32(1102687764);
+emit_32(3274432512);
+emit_32(1109147648);
+emit_32(1102002520);
+emit_32(3274432512);
+emit_32(1110171661);
+emit_32(1101411123);
+emit_32(3274432512);
+emit_32(1111195648);
+emit_32(1101064569);
+emit_32(3274432512);
+emit_32(1112219661);
+emit_32(1100846150);
+emit_32(3274432512);
+emit_32(1113243648);
+emit_32(1101357436);
+emit_32(3274432512);
+emit_32(1114267661);
+emit_32(1102179729);
+emit_32(3274432512);
+emit_32(1115291648);
+emit_32(1102092698);
+emit_32(3274432512);
+emit_32(1116000263);
+emit_32(1102408371);
+emit_32(3274432512);
+emit_32(1116512256);
+emit_32(1102286999);
+emit_32(3274432512);
+emit_32(1117024263);
+emit_32(1102506518);
+emit_32(3274432512);
+emit_32(1117536256);
+emit_32(1103483005);
+emit_32(3274432512);
+emit_32(1118048263);
+emit_32(1103994238);
+emit_32(3274432512);
+emit_32(1118560256);
+emit_32(1104213233);
+emit_32(3274432512);
+emit_32(1119072263);
+emit_32(1103948992);
+emit_32(3274432512);
+emit_32(1119584256);
+emit_32(1103515143);
+emit_32(3274432512);
+emit_32(1120096263);
+emit_32(1103105832);
+emit_32(3274432512);
+emit_32(1120608322);
+emit_32(1102826124);
+emit_32(3274432512);
+emit_32(1121120289);
+emit_32(1102767456);
+emit_32(3274432512);
+emit_32(1121632256);
+emit_32(1102189901);
+emit_32(3274432512);
+emit_32(1122144223);
+emit_32(1101674421);
+emit_32(3274432512);
+emit_32(1122656322);
+emit_32(1100890243);
+emit_32(3274432512);
+emit_32(1123168289);
+emit_32(1099939761);
+emit_32(3274432512);
+emit_32(1123680256);
+emit_32(1099075997);
+emit_32(3274432512);
+emit_32(1124132848);
+emit_32(1097086376);
+emit_32(3274432512);
+emit_32(1124388897);
+emit_32(1095228614);
+emit_32(3274432512);
+emit_32(1124644880);
+emit_32(1093029436);
+emit_32(3274432512);
+emit_32(1124900864);
+emit_32(1091479672);
+emit_32(3274432512);
+emit_32(1125156848);
+emit_32(1091750163);
+emit_32(3274432512);
+emit_32(1125412897);
+emit_32(1089138149);
+emit_32(3274432512);
+emit_32(1125668880);
+emit_32(1086598540);
+emit_32(3274432512);
+emit_32(1125924864);
+emit_32(1083352484);
+emit_32(3274432512);
+emit_32(1126180848);
+emit_32(1076974919);
+emit_32(3274432512);
+emit_32(1126436897);
+emit_32(1066291146);
+emit_32(3274432512);
+emit_32(1126692880);
+emit_32(3221226898);
+emit_32(3274432512);
+emit_32(1126948864);
+emit_32(3228126151);
+emit_32(3274432512);
+emit_32(1127204848);
+emit_32(3231975515);
+emit_32(3274432512);
+emit_32(1127460897);
+emit_32(3238351340);
+emit_32(3274432512);
+emit_32(1127716880);
+emit_32(3240184460);
+emit_32(3274432512);
+emit_32(1127972864);
+emit_32(3241040832);
+emit_32(3274432512);
+emit_32(1128228848);
+emit_32(3242157461);
+emit_32(3274432512);
+emit_32(1128484897);
+emit_32(3244822731);
+emit_32(3274432512);
+emit_32(1128740880);
+emit_32(3246247536);
+emit_32(3274432512);
+emit_32(1128996864);
+emit_32(3247038372);
+emit_32(3274432512);
+emit_32(1129252848);
+emit_32(3247585939);
+emit_32(3274432512);
+emit_32(1129508897);
+emit_32(3246884389);
+emit_32(3274432512);
+emit_32(1129764880);
+emit_32(3246474763);
+emit_32(3274432512);
+emit_32(1130020864);
+emit_32(3246383746);
+emit_32(3274432512);
+emit_32(1130276848);
+emit_32(3245256632);
+emit_32(3274432512);
+emit_32(1130532897);
+emit_32(3243907010);
+emit_32(3274432512);
+emit_32(1130788880);
+emit_32(3243058921);
+emit_32(3274432512);
+emit_32(1131044864);
+emit_32(3241166032);
+emit_32(3274432512);
+emit_32(1131300848);
+emit_32(3238570922);
+emit_32(3274432512);
+emit_32(1131556897);
+emit_32(3234153659);
+emit_32(3274432512);
+emit_32(1131812880);
+emit_32(3230360226);
+emit_32(3274432512);
+emit_32(1132068864);
+emit_32(3219833634);
+emit_32(3274432512);
+emit_32(1081737216);
+emit_32(1108036289);
+emit_32(3274688496);
+emit_32(1090125824);
+emit_32(1107810609);
+emit_32(3274688496);
+emit_32(1094418484);
+emit_32(1107747825);
+emit_32(3274688496);
+emit_32(1098514432);
+emit_32(1107286871);
+emit_32(3274688496);
+emit_32(1100759066);
+emit_32(1106086881);
+emit_32(3274688496);
+emit_32(1102807040);
+emit_32(1104804315);
+emit_32(3274688496);
+emit_32(1104855066);
+emit_32(1103699326);
+emit_32(3274688496);
+emit_32(1106903040);
+emit_32(1102741504);
+emit_32(3274688496);
+emit_32(1108123661);
+emit_32(1101680083);
+emit_32(3274688496);
+emit_32(1109147648);
+emit_32(1101656595);
+emit_32(3274688496);
+emit_32(1110171661);
+emit_32(1100849663);
+emit_32(3274688496);
+emit_32(1111195648);
+emit_32(1100640053);
+emit_32(3274688496);
+emit_32(1112219661);
+emit_32(1100253443);
+emit_32(3274688496);
+emit_32(1113243648);
+emit_32(1100764047);
+emit_32(3274688496);
+emit_32(1114267661);
+emit_32(1101163554);
+emit_32(3274688496);
+emit_32(1115291648);
+emit_32(1101305217);
+emit_32(3274688496);
+emit_32(1116000263);
+emit_32(1101417624);
+emit_32(3274688496);
+emit_32(1116512256);
+emit_32(1101765385);
+emit_32(3274688496);
+emit_32(1117024263);
+emit_32(1102533938);
+emit_32(3274688496);
+emit_32(1117536256);
+emit_32(1102938689);
+emit_32(3274688496);
+emit_32(1118048263);
+emit_32(1103318955);
+emit_32(3274688496);
+emit_32(1118560256);
+emit_32(1103683754);
+emit_32(3274688496);
+emit_32(1119072263);
+emit_32(1103175090);
+emit_32(3274688496);
+emit_32(1119584256);
+emit_32(1102854593);
+emit_32(3274688496);
+emit_32(1120096263);
+emit_32(1102466567);
+emit_32(3274688496);
+emit_32(1120608322);
+emit_32(1101638507);
+emit_32(3274688496);
+emit_32(1121120289);
+emit_32(1101343542);
+emit_32(3274688496);
+emit_32(1121632256);
+emit_32(1100858629);
+emit_32(3274688496);
+emit_32(1122144223);
+emit_32(1099916326);
+emit_32(3274688496);
+emit_32(1122656322);
+emit_32(1099386952);
+emit_32(3274688496);
+emit_32(1123168289);
+emit_32(1098990538);
+emit_32(3274688496);
+emit_32(1123680256);
+emit_32(1097981860);
+emit_32(3274688496);
+emit_32(1124132848);
+emit_32(1095898759);
+emit_32(3274688496);
+emit_32(1124388897);
+emit_32(1092934435);
+emit_32(3274688496);
+emit_32(1124644880);
+emit_32(1090423368);
+emit_32(3274688496);
+emit_32(1124900864);
+emit_32(1089465599);
+emit_32(3274688496);
+emit_32(1125156848);
+emit_32(1090025916);
+emit_32(3274688496);
+emit_32(1125412897);
+emit_32(1088093013);
+emit_32(3274688496);
+emit_32(1125668880);
+emit_32(1086367518);
+emit_32(3274688496);
+emit_32(1125924864);
+emit_32(1083889418);
+emit_32(3274688496);
+emit_32(1126180848);
+emit_32(1076254464);
+emit_32(3274688496);
+emit_32(1126436897);
+emit_32(1068370850);
+emit_32(3274688496);
+emit_32(1126692880);
+emit_32(3216221248);
+emit_32(3274688496);
+emit_32(1126948864);
+emit_32(3228349497);
+emit_32(3274688496);
+emit_32(1127204848);
+emit_32(3232983910);
+emit_32(3274688496);
+emit_32(1127460897);
+emit_32(3238169558);
+emit_32(3274688496);
+emit_32(1127716880);
+emit_32(3239092054);
+emit_32(3274688496);
+emit_32(1127972864);
+emit_32(3241438976);
+emit_32(3274688496);
+emit_32(1128228848);
+emit_32(3243388489);
+emit_32(3274688496);
+emit_32(1128484897);
+emit_32(3245180191);
+emit_32(3274688496);
+emit_32(1128740880);
+emit_32(3246270710);
+emit_32(3274688496);
+emit_32(1128996864);
+emit_32(3247252229);
+emit_32(3274688496);
+emit_32(1129252848);
+emit_32(3247543262);
+emit_32(3274688496);
+emit_32(1129508897);
+emit_32(3246603737);
+emit_32(3274688496);
+emit_32(1129764880);
+emit_32(3246628379);
+emit_32(3274688496);
+emit_32(1130020864);
+emit_32(3246208949);
+emit_32(3274688496);
+emit_32(1130276848);
+emit_32(3243960277);
+emit_32(3274688496);
+emit_32(1130532897);
+emit_32(3243077167);
+emit_32(3274688496);
+emit_32(1130788880);
+emit_32(3241817407);
+emit_32(3274688496);
+emit_32(1131044864);
+emit_32(3238920664);
+emit_32(3274688496);
+emit_32(1131300848);
+emit_32(3235529538);
+emit_32(3274688496);
+emit_32(1131556897);
+emit_32(3228900545);
+emit_32(3274688496);
+emit_32(1131812880);
+emit_32(3222674310);
+emit_32(3274688496);
+emit_32(1132068864);
+emit_32(3208271280);
+emit_32(3274688496);
+emit_32(1081737216);
+emit_32(1107544270);
+emit_32(3274944545);
+emit_32(1090125824);
+emit_32(1107321186);
+emit_32(3274944545);
+emit_32(1094418484);
+emit_32(1106832838);
+emit_32(3274944545);
+emit_32(1098514432);
+emit_32(1105933107);
+emit_32(3274944545);
+emit_32(1100759066);
+emit_32(1104947236);
+emit_32(3274944545);
+emit_32(1102807040);
+emit_32(1104326217);
+emit_32(3274944545);
+emit_32(1104855066);
+emit_32(1103138967);
+emit_32(3274944545);
+emit_32(1106903040);
+emit_32(1102036441);
+emit_32(3274944545);
+emit_32(1108123661);
+emit_32(1101087742);
+emit_32(3274944545);
+emit_32(1109147648);
+emit_32(1100669465);
+emit_32(3274944545);
+emit_32(1110171661);
+emit_32(1100266183);
+emit_32(3274944545);
+emit_32(1111195648);
+emit_32(1100000526);
+emit_32(3274944545);
+emit_32(1112219661);
+emit_32(1099972529);
+emit_32(3274944545);
+emit_32(1113243648);
+emit_32(1099715681);
+emit_32(3274944545);
+emit_32(1114267661);
+emit_32(1099811521);
+emit_32(3274944545);
+emit_32(1115291648);
+emit_32(1100048079);
+emit_32(3274944545);
+emit_32(1116000263);
+emit_32(1100398461);
+emit_32(3274944545);
+emit_32(1116512256);
+emit_32(1101470735);
+emit_32(3274944545);
+emit_32(1117024263);
+emit_32(1102010332);
+emit_32(3274944545);
+emit_32(1117536256);
+emit_32(1102212969);
+emit_32(3274944545);
+emit_32(1118048263);
+emit_32(1102131547);
+emit_32(3274944545);
+emit_32(1118560256);
+emit_32(1102714503);
+emit_32(3274944545);
+emit_32(1119072263);
+emit_32(1102278033);
+emit_32(3274944545);
+emit_32(1119584256);
+emit_32(1101809792);
+emit_32(3274944545);
+emit_32(1120096263);
+emit_32(1100816004);
+emit_32(3274944545);
+emit_32(1120608322);
+emit_32(1100025011);
+emit_32(3274944545);
+emit_32(1121120289);
+emit_32(1099466277);
+emit_32(3274944545);
+emit_32(1121632256);
+emit_32(1098984771);
+emit_32(3274944545);
+emit_32(1122144223);
+emit_32(1098724776);
+emit_32(3274944545);
+emit_32(1122656322);
+emit_32(1097818073);
+emit_32(3274944545);
+emit_32(1123168289);
+emit_32(1098331770);
+emit_32(3274944545);
+emit_32(1123680256);
+emit_32(1097767007);
+emit_32(3274944545);
+emit_32(1124132848);
+emit_32(1095061891);
+emit_32(3274944545);
+emit_32(1124388897);
+emit_32(1092565693);
+emit_32(3274944545);
+emit_32(1124644880);
+emit_32(1089087839);
+emit_32(3274944545);
+emit_32(1124900864);
+emit_32(1088235430);
+emit_32(3274944545);
+emit_32(1125156848);
+emit_32(1089040317);
+emit_32(3274944545);
+emit_32(1125412897);
+emit_32(1087875957);
+emit_32(3274944545);
+emit_32(1125668880);
+emit_32(1086441128);
+emit_32(3274944545);
+emit_32(1125924864);
+emit_32(1085113966);
+emit_32(3274944545);
+emit_32(1126180848);
+emit_32(1081486648);
+emit_32(3274944545);
+emit_32(1126436897);
+emit_32(1075610470);
+emit_32(3274944545);
+emit_32(1126692880);
+emit_32(3191896348);
+emit_32(3274944545);
+emit_32(1126948864);
+emit_32(3225446032);
+emit_32(3274944545);
+emit_32(1127204848);
+emit_32(3232519202);
+emit_32(3274944545);
+emit_32(1127460897);
+emit_32(3234831920);
+emit_32(3274944545);
+emit_32(1127716880);
+emit_32(3239305806);
+emit_32(3274944545);
+emit_32(1127972864);
+emit_32(3241685497);
+emit_32(3274944545);
+emit_32(1128228848);
+emit_32(3242903208);
+emit_32(3274944545);
+emit_32(1128484897);
+emit_32(3244487397);
+emit_32(3274944545);
+emit_32(1128740880);
+emit_32(3245844673);
+emit_32(3274944545);
+emit_32(1128996864);
+emit_32(3246709067);
+emit_32(3274944545);
+emit_32(1129252848);
+emit_32(3246977188);
+emit_32(3274944545);
+emit_32(1129508897);
+emit_32(3246402830);
+emit_32(3274944545);
+emit_32(1129764880);
+emit_32(3246323034);
+emit_32(3274944545);
+emit_32(1130020864);
+emit_32(3244941011);
+emit_32(3274944545);
+emit_32(1130276848);
+emit_32(3243260877);
+emit_32(3274944545);
+emit_32(1130532897);
+emit_32(3242406707);
+emit_32(3274944545);
+emit_32(1130788880);
+emit_32(3239902383);
+emit_32(3274944545);
+emit_32(1131044864);
+emit_32(3235323031);
+emit_32(3274944545);
+emit_32(1131300848);
+emit_32(3229858692);
+emit_32(3274944545);
+emit_32(1131556897);
+emit_32(3221983215);
+emit_32(3274944545);
+emit_32(1131812880);
+emit_32(3204619249);
+emit_32(3274944545);
+emit_32(1132068864);
+emit_32(1069430331);
+emit_32(3274944545);
+emit_32(1081737216);
+emit_32(1106249096);
+emit_32(3275200528);
+emit_32(1090125824);
+emit_32(1106043942);
+emit_32(3275200528);
+emit_32(1094418484);
+emit_32(1105378410);
+emit_32(3275200528);
+emit_32(1098514432);
+emit_32(1104642467);
+emit_32(3275200528);
+emit_32(1100759066);
+emit_32(1104162010);
+emit_32(3275200528);
+emit_32(1102807040);
+emit_32(1103635153);
+emit_32(3275200528);
+emit_32(1104855066);
+emit_32(1102464995);
+emit_32(3275200528);
+emit_32(1106903040);
+emit_32(1101344958);
+emit_32(3275200528);
+emit_32(1108123661);
+emit_32(1100328835);
+emit_32(3275200528);
+emit_32(1109147648);
+emit_32(1099478755);
+emit_32(3275200528);
+emit_32(1110171661);
+emit_32(1099658219);
+emit_32(3275200528);
+emit_32(1111195648);
+emit_32(1099600285);
+emit_32(3275200528);
+emit_32(1112219661);
+emit_32(1099186464);
+emit_32(3275200528);
+emit_32(1113243648);
+emit_32(1099013135);
+emit_32(3275200528);
+emit_32(1114267661);
+emit_32(1099476763);
+emit_32(3275200528);
+emit_32(1115291648);
+emit_32(1099561540);
+emit_32(3275200528);
+emit_32(1116000263);
+emit_32(1099962673);
+emit_32(3275200528);
+emit_32(1116512256);
+emit_32(1100314837);
+emit_32(3275200528);
+emit_32(1117024263);
+emit_32(1100808192);
+emit_32(3275200528);
+emit_32(1117536256);
+emit_32(1100975545);
+emit_32(3275200528);
+emit_32(1118048263);
+emit_32(1100964744);
+emit_32(3275200528);
+emit_32(1118560256);
+emit_32(1100600364);
+emit_32(3275200528);
+emit_32(1119072263);
+emit_32(1100761426);
+emit_32(3275200528);
+emit_32(1119584256);
+emit_32(1100181144);
+emit_32(3275200528);
+emit_32(1120096263);
+emit_32(1098976749);
+emit_32(3275200528);
+emit_32(1120608322);
+emit_32(1097199518);
+emit_32(3275200528);
+emit_32(1121120289);
+emit_32(1096699347);
+emit_32(3275200528);
+emit_32(1121632256);
+emit_32(1096334128);
+emit_32(3275200528);
+emit_32(1122144223);
+emit_32(1096532414);
+emit_32(3275200528);
+emit_32(1122656322);
+emit_32(1096818675);
+emit_32(3275200528);
+emit_32(1123168289);
+emit_32(1097088578);
+emit_32(3275200528);
+emit_32(1123680256);
+emit_32(1096387291);
+emit_32(3275200528);
+emit_32(1124132848);
+emit_32(1094034810);
+emit_32(3275200528);
+emit_32(1124388897);
+emit_32(1090976691);
+emit_32(3275200528);
+emit_32(1124644880);
+emit_32(1088321497);
+emit_32(3275200528);
+emit_32(1124900864);
+emit_32(1088758712);
+emit_32(3275200528);
+emit_32(1125156848);
+emit_32(1087833868);
+emit_32(3275200528);
+emit_32(1125412897);
+emit_32(1084974107);
+emit_32(3275200528);
+emit_32(1125668880);
+emit_32(1084703805);
+emit_32(3275200528);
+emit_32(1125924864);
+emit_32(1084375328);
+emit_32(3275200528);
+emit_32(1126180848);
+emit_32(1079810898);
+emit_32(3275200528);
+emit_32(1126436897);
+emit_32(1075134836);
+emit_32(3275200528);
+emit_32(1126692880);
+emit_32(1055694338);
+emit_32(3275200528);
+emit_32(1126948864);
+emit_32(3222544916);
+emit_32(3275200528);
+emit_32(1127204848);
+emit_32(3231495477);
+emit_32(3275200528);
+emit_32(1127460897);
+emit_32(3235209219);
+emit_32(3275200528);
+emit_32(1127716880);
+emit_32(3239322940);
+emit_32(3275200528);
+emit_32(1127972864);
+emit_32(3240031389);
+emit_32(3275200528);
+emit_32(1128228848);
+emit_32(3242234426);
+emit_32(3275200528);
+emit_32(1128484897);
+emit_32(3243694988);
+emit_32(3275200528);
+emit_32(1128740880);
+emit_32(3244783934);
+emit_32(3275200528);
+emit_32(1128996864);
+emit_32(3245353415);
+emit_32(3275200528);
+emit_32(1129252848);
+emit_32(3245143910);
+emit_32(3275200528);
+emit_32(1129508897);
+emit_32(3243741859);
+emit_32(3275200528);
+emit_32(1129764880);
+emit_32(3244369117);
+emit_32(3275200528);
+emit_32(1130020864);
+emit_32(3244547480);
+emit_32(3275200528);
+emit_32(1130276848);
+emit_32(3242487867);
+emit_32(3275200528);
+emit_32(1130532897);
+emit_32(3241258307);
+emit_32(3275200528);
+emit_32(1130788880);
+emit_32(3238763409);
+emit_32(3275200528);
+emit_32(1131044864);
+emit_32(3232771615);
+emit_32(3275200528);
+emit_32(1131300848);
+emit_32(3224658636);
+emit_32(3275200528);
+emit_32(1131556897);
+emit_32(3205375013);
+emit_32(3275200528);
+emit_32(1131812880);
+emit_32(1065955266);
+emit_32(3275200528);
+emit_32(1132068864);
+emit_32(1078364786);
+emit_32(3275200528);
+emit_32(1081737216);
+emit_32(1105010622);
+emit_32(3275456512);
+emit_32(1090125824);
+emit_32(1104741191);
+emit_32(3275456512);
+emit_32(1094418484);
+emit_32(1104199864);
+emit_32(3275456512);
+emit_32(1098514432);
+emit_32(1103701895);
+emit_32(3275456512);
+emit_32(1100759066);
+emit_32(1103428898);
+emit_32(3275456512);
+emit_32(1102807040);
+emit_32(1102959031);
+emit_32(3275456512);
+emit_32(1104855066);
+emit_32(1102357044);
+emit_32(3275456512);
+emit_32(1106903040);
+emit_32(1100872784);
+emit_32(3275456512);
+emit_32(1108123661);
+emit_32(1099789972);
+emit_32(3275456512);
+emit_32(1109147648);
+emit_32(1099200043);
+emit_32(3275456512);
+emit_32(1110171661);
+emit_32(1098764622);
+emit_32(3275456512);
+emit_32(1111195648);
+emit_32(1098958399);
+emit_32(3275456512);
+emit_32(1112219661);
+emit_32(1098447743);
+emit_32(3275456512);
+emit_32(1113243648);
+emit_32(1098347184);
+emit_32(3275456512);
+emit_32(1114267661);
+emit_32(1099067032);
+emit_32(3275456512);
+emit_32(1115291648);
+emit_32(1099311664);
+emit_32(3275456512);
+emit_32(1116000263);
+emit_32(1099114584);
+emit_32(3275456512);
+emit_32(1116512256);
+emit_32(1099262119);
+emit_32(3275456512);
+emit_32(1117024263);
+emit_32(1099307522);
+emit_32(3275456512);
+emit_32(1117536256);
+emit_32(1099567150);
+emit_32(3275456512);
+emit_32(1118048263);
+emit_32(1099285555);
+emit_32(3275456512);
+emit_32(1118560256);
+emit_32(1099184367);
+emit_32(3275456512);
+emit_32(1119072263);
+emit_32(1099025665);
+emit_32(3275456512);
+emit_32(1119584256);
+emit_32(1097936771);
+emit_32(3275456512);
+emit_32(1120096263);
+emit_32(1097086062);
+emit_32(3275456512);
+emit_32(1120608322);
+emit_32(1095166329);
+emit_32(3275456512);
+emit_32(1121120289);
+emit_32(1093547013);
+emit_32(3275456512);
+emit_32(1121632256);
+emit_32(1094611632);
+emit_32(3275456512);
+emit_32(1122144223);
+emit_32(1095301176);
+emit_32(3275456512);
+emit_32(1122656322);
+emit_32(1096040002);
+emit_32(3275456512);
+emit_32(1123168289);
+emit_32(1096486905);
+emit_32(3275456512);
+emit_32(1123680256);
+emit_32(1095536371);
+emit_32(3275456512);
+emit_32(1124132848);
+emit_32(1093119718);
+emit_32(3275456512);
+emit_32(1124388897);
+emit_32(1091308366);
+emit_32(3275456512);
+emit_32(1124644880);
+emit_32(1088220394);
+emit_32(3275456512);
+emit_32(1124900864);
+emit_32(1088246482);
+emit_32(3275456512);
+emit_32(1125156848);
+emit_32(1087966198);
+emit_32(3275456512);
+emit_32(1125412897);
+emit_32(1084761016);
+emit_32(3275456512);
+emit_32(1125668880);
+emit_32(1082433638);
+emit_32(3275456512);
+emit_32(1125924864);
+emit_32(1080387489);
+emit_32(3275456512);
+emit_32(1126180848);
+emit_32(1080768877);
+emit_32(3275456512);
+emit_32(1126436897);
+emit_32(1072749536);
+emit_32(3275456512);
+emit_32(1126692880);
+emit_32(1066725424);
+emit_32(3275456512);
+emit_32(1126948864);
+emit_32(3211315758);
+emit_32(3275456512);
+emit_32(1127204848);
+emit_32(3229615254);
+emit_32(3275456512);
+emit_32(1127460897);
+emit_32(3234924069);
+emit_32(3275456512);
+emit_32(1127716880);
+emit_32(3238308600);
+emit_32(3275456512);
+emit_32(1127972864);
+emit_32(3239071816);
+emit_32(3275456512);
+emit_32(1128228848);
+emit_32(3240224516);
+emit_32(3275456512);
+emit_32(1128484897);
+emit_32(3241289869);
+emit_32(3275456512);
+emit_32(1128740880);
+emit_32(3242705866);
+emit_32(3275456512);
+emit_32(1128996864);
+emit_32(3242964969);
+emit_32(3275456512);
+emit_32(1129252848);
+emit_32(3243192091);
+emit_32(3275456512);
+emit_32(1129508897);
+emit_32(3242061516);
+emit_32(3275456512);
+emit_32(1129764880);
+emit_32(3242460709);
+emit_32(3275456512);
+emit_32(1130020864);
+emit_32(3243083563);
+emit_32(3275456512);
+emit_32(1130276848);
+emit_32(3240930627);
+emit_32(3275456512);
+emit_32(1130532897);
+emit_32(3238871108);
+emit_32(3275456512);
+emit_32(1130788880);
+emit_32(3236675631);
+emit_32(3275456512);
+emit_32(1131044864);
+emit_32(3232208551);
+emit_32(3275456512);
+emit_32(1131300848);
+emit_32(3223881892);
+emit_32(3275456512);
+emit_32(1131556897);
+emit_32(1056471794);
+emit_32(3275456512);
+emit_32(1131812880);
+emit_32(1077025041);
+emit_32(3275456512);
+emit_32(1132068864);
+emit_32(1081975788);
+emit_32(3275456512);
+emit_32(1081737216);
+emit_32(1103817710);
+emit_32(3275712496);
+emit_32(1090125824);
+emit_32(1103479177);
+emit_32(3275712496);
+emit_32(1094418484);
+emit_32(1103628337);
+emit_32(3275712496);
+emit_32(1098514432);
+emit_32(1103194908);
+emit_32(3275712496);
+emit_32(1100759066);
+emit_32(1102441087);
+emit_32(3275712496);
+emit_32(1102807040);
+emit_32(1101777548);
+emit_32(3275712496);
+emit_32(1104855066);
+emit_32(1101550322);
+emit_32(3275712496);
+emit_32(1106903040);
+emit_32(1100130340);
+emit_32(3275712496);
+emit_32(1108123661);
+emit_32(1099405250);
+emit_32(3275712496);
+emit_32(1109147648);
+emit_32(1098058092);
+emit_32(3275712496);
+emit_32(1110171661);
+emit_32(1097423074);
+emit_32(3275712496);
+emit_32(1111195648);
+emit_32(1097055863);
+emit_32(3275712496);
+emit_32(1112219661);
+emit_32(1096882743);
+emit_32(3275712496);
+emit_32(1113243648);
+emit_32(1098289303);
+emit_32(3275712496);
+emit_32(1114267661);
+emit_32(1097937610);
+emit_32(3275712496);
+emit_32(1115291648);
+emit_32(1097533279);
+emit_32(3275712496);
+emit_32(1116000263);
+emit_32(1097752851);
+emit_32(3275712496);
+emit_32(1116512256);
+emit_32(1097273547);
+emit_32(3275712496);
+emit_32(1117024263);
+emit_32(1097170787);
+emit_32(3275712496);
+emit_32(1117536256);
+emit_32(1096374708);
+emit_32(3275712496);
+emit_32(1118048263);
+emit_32(1096180197);
+emit_32(3275712496);
+emit_32(1118560256);
+emit_32(1097218602);
+emit_32(3275712496);
+emit_32(1119072263);
+emit_32(1096138883);
+emit_32(3275712496);
+emit_32(1119584256);
+emit_32(1096076912);
+emit_32(3275712496);
+emit_32(1120096263);
+emit_32(1094562034);
+emit_32(3275712496);
+emit_32(1120608322);
+emit_32(1092095962);
+emit_32(3275712496);
+emit_32(1121120289);
+emit_32(1091662502);
+emit_32(3275712496);
+emit_32(1121632256);
+emit_32(1092889556);
+emit_32(3275712496);
+emit_32(1122144223);
+emit_32(1094008177);
+emit_32(3275712496);
+emit_32(1122656322);
+emit_32(1094597791);
+emit_32(3275712496);
+emit_32(1123168289);
+emit_32(1094669828);
+emit_32(3275712496);
+emit_32(1123680256);
+emit_32(1093668333);
+emit_32(3275712496);
+emit_32(1124132848);
+emit_32(1092690012);
+emit_32(3275712496);
+emit_32(1124388897);
+emit_32(1091404793);
+emit_32(3275712496);
+emit_32(1124644880);
+emit_32(1089616677);
+emit_32(3275712496);
+emit_32(1124900864);
+emit_32(1087718650);
+emit_32(3275712496);
+emit_32(1125156848);
+emit_32(1085433635);
+emit_32(3275712496);
+emit_32(1125412897);
+emit_32(1083051984);
+emit_32(3275712496);
+emit_32(1125668880);
+emit_32(1080094894);
+emit_32(3275712496);
+emit_32(1125924864);
+emit_32(1077582632);
+emit_32(3275712496);
+emit_32(1126180848);
+emit_32(1079746432);
+emit_32(3275712496);
+emit_32(1126436897);
+emit_32(1073545866);
+emit_32(3275712496);
+emit_32(1126692880);
+emit_32(1068480405);
+emit_32(3275712496);
+emit_32(1126948864);
+emit_32(3205219354);
+emit_32(3275712496);
+emit_32(1127204848);
+emit_32(3228713018);
+emit_32(3275712496);
+emit_32(1127460897);
+emit_32(3234007257);
+emit_32(3275712496);
+emit_32(1127716880);
+emit_32(3234765252);
+emit_32(3275712496);
+emit_32(1127972864);
+emit_32(3236479652);
+emit_32(3275712496);
+emit_32(1128228848);
+emit_32(3239043033);
+emit_32(3275712496);
+emit_32(1128484897);
+emit_32(3239994091);
+emit_32(3275712496);
+emit_32(1128740880);
+emit_32(3241107312);
+emit_32(3275712496);
+emit_32(1128996864);
+emit_32(3240979281);
+emit_32(3275712496);
+emit_32(1129252848);
+emit_32(3240651496);
+emit_32(3275712496);
+emit_32(1129508897);
+emit_32(3240242971);
+emit_32(3275712496);
+emit_32(1129764880);
+emit_32(3240761491);
+emit_32(3275712496);
+emit_32(1130020864);
+emit_32(3240982007);
+emit_32(3275712496);
+emit_32(1130276848);
+emit_32(3239091351);
+emit_32(3275712496);
+emit_32(1130532897);
+emit_32(3236735400);
+emit_32(3275712496);
+emit_32(1130788880);
+emit_32(3231377575);
+emit_32(3275712496);
+emit_32(1131044864);
+emit_32(3227422808);
+emit_32(3275712496);
+emit_32(1131300848);
+emit_32(3218146098);
+emit_32(3275712496);
+emit_32(1131556897);
+emit_32(1069112487);
+emit_32(3275712496);
+emit_32(1131812880);
+emit_32(1077648441);
+emit_32(3275712496);
+emit_32(1132068864);
+emit_32(1082214129);
+emit_32(3275712496);
+emit_32(1081737216);
+emit_32(1102629726);
+emit_32(3275968545);
+emit_32(1090125824);
+emit_32(1102698722);
+emit_32(3275968545);
+emit_32(1094418484);
+emit_32(1102802741);
+emit_32(3275968545);
+emit_32(1098514432);
+emit_32(1102285373);
+emit_32(3275968545);
+emit_32(1100759066);
+emit_32(1101786251);
+emit_32(3275968545);
+emit_32(1102807040);
+emit_32(1100824812);
+emit_32(3275968545);
+emit_32(1104855066);
+emit_32(1100025640);
+emit_32(3275968545);
+emit_32(1106903040);
+emit_32(1099634940);
+emit_32(3275968545);
+emit_32(1108123661);
+emit_32(1099046584);
+emit_32(3275968545);
+emit_32(1109147648);
+emit_32(1096636223);
+emit_32(3275968545);
+emit_32(1110171661);
+emit_32(1095513303);
+emit_32(3275968545);
+emit_32(1111195648);
+emit_32(1095867407);
+emit_32(3275968545);
+emit_32(1112219661);
+emit_32(1096126929);
+emit_32(3275968545);
+emit_32(1113243648);
+emit_32(1096604870);
+emit_32(3275968545);
+emit_32(1114267661);
+emit_32(1095827037);
+emit_32(3275968545);
+emit_32(1115291648);
+emit_32(1095170838);
+emit_32(3275968545);
+emit_32(1116000263);
+emit_32(1095497679);
+emit_32(3275968545);
+emit_32(1116512256);
+emit_32(1095025715);
+emit_32(3275968545);
+emit_32(1117024263);
+emit_32(1094083884);
+emit_32(3275968545);
+emit_32(1117536256);
+emit_32(1094884996);
+emit_32(3275968545);
+emit_32(1118048263);
+emit_32(1094938054);
+emit_32(3275968545);
+emit_32(1118560256);
+emit_32(1094814322);
+emit_32(3275968545);
+emit_32(1119072263);
+emit_32(1094028414);
+emit_32(3275968545);
+emit_32(1119584256);
+emit_32(1093868087);
+emit_32(3275968545);
+emit_32(1120096263);
+emit_32(1091898725);
+emit_32(3275968545);
+emit_32(1120608322);
+emit_32(1091588902);
+emit_32(3275968545);
+emit_32(1121120289);
+emit_32(1090929599);
+emit_32(3275968545);
+emit_32(1121632256);
+emit_32(1091279268);
+emit_32(3275968545);
+emit_32(1122144223);
+emit_32(1091962195);
+emit_32(3275968545);
+emit_32(1122656322);
+emit_32(1092164916);
+emit_32(3275968545);
+emit_32(1123168289);
+emit_32(1092135976);
+emit_32(3275968545);
+emit_32(1123680256);
+emit_32(1091891196);
+emit_32(3275968545);
+emit_32(1124132848);
+emit_32(1091591995);
+emit_32(3275968545);
+emit_32(1124388897);
+emit_32(1091090063);
+emit_32(3275968545);
+emit_32(1124644880);
+emit_32(1090340509);
+emit_32(3275968545);
+emit_32(1124900864);
+emit_32(1086101389);
+emit_32(3275968545);
+emit_32(1125156848);
+emit_32(1083757927);
+emit_32(3275968545);
+emit_32(1125412897);
+emit_32(1078075547);
+emit_32(3275968545);
+emit_32(1125668880);
+emit_32(1076426137);
+emit_32(3275968545);
+emit_32(1125924864);
+emit_32(1072504840);
+emit_32(3275968545);
+emit_32(1126180848);
+emit_32(1076195660);
+emit_32(3275968545);
+emit_32(1126436897);
+emit_32(1072621609);
+emit_32(3275968545);
+emit_32(1126692880);
+emit_32(1056034915);
+emit_32(3275968545);
+emit_32(1126948864);
+emit_32(3209808342);
+emit_32(3275968545);
+emit_32(1127204848);
+emit_32(3226594391);
+emit_32(3275968545);
+emit_32(1127460897);
+emit_32(3229765557);
+emit_32(3275968545);
+emit_32(1127716880);
+emit_32(3232195653);
+emit_32(3275968545);
+emit_32(1127972864);
+emit_32(3233670937);
+emit_32(3275968545);
+emit_32(1128228848);
+emit_32(3236746137);
+emit_32(3275968545);
+emit_32(1128484897);
+emit_32(3239602763);
+emit_32(3275968545);
+emit_32(1128740880);
+emit_32(3239120397);
+emit_32(3275968545);
+emit_32(1128996864);
+emit_32(3238680404);
+emit_32(3275968545);
+emit_32(1129252848);
+emit_32(3238748498);
+emit_32(3275968545);
+emit_32(1129508897);
+emit_32(3237309495);
+emit_32(3275968545);
+emit_32(1129764880);
+emit_32(3238233637);
+emit_32(3275968545);
+emit_32(1130020864);
+emit_32(3238814642);
+emit_32(3275968545);
+emit_32(1130276848);
+emit_32(3237583887);
+emit_32(3275968545);
+emit_32(1130532897);
+emit_32(3232326054);
+emit_32(3275968545);
+emit_32(1130788880);
+emit_32(3225982694);
+emit_32(3275968545);
+emit_32(1131044864);
+emit_32(3216861550);
+emit_32(3275968545);
+emit_32(1131300848);
+emit_32(1026734803);
+emit_32(3275968545);
+emit_32(1131556897);
+emit_32(1070114842);
+emit_32(3275968545);
+emit_32(1131812880);
+emit_32(1079071526);
+emit_32(3275968545);
+emit_32(1132068864);
+emit_32(1085031464);
+emit_32(3275968545);
+emit_32(1081737216);
+emit_32(1101834591);
+emit_32(3276224528);
+emit_32(1090125824);
+emit_32(1101837579);
+emit_32(3276224528);
+emit_32(1094418484);
+emit_32(1102082264);
+emit_32(3276224528);
+emit_32(1098514432);
+emit_32(1101628441);
+emit_32(3276224528);
+emit_32(1100759066);
+emit_32(1100985349);
+emit_32(3276224528);
+emit_32(1102807040);
+emit_32(1100055367);
+emit_32(3276224528);
+emit_32(1104855066);
+emit_32(1099637142);
+emit_32(3276224528);
+emit_32(1106903040);
+emit_32(1098680317);
+emit_32(3276224528);
+emit_32(1108123661);
+emit_32(1096761947);
+emit_32(3276224528);
+emit_32(1109147648);
+emit_32(1094480980);
+emit_32(3276224528);
+emit_32(1110171661);
+emit_32(1095392087);
+emit_32(3276224528);
+emit_32(1111195648);
+emit_32(1094890029);
+emit_32(3276224528);
+emit_32(1112219661);
+emit_32(1094984506);
+emit_32(3276224528);
+emit_32(1113243648);
+emit_32(1094746898);
+emit_32(3276224528);
+emit_32(1114267661);
+emit_32(1095240253);
+emit_32(3276224528);
+emit_32(1115291648);
+emit_32(1094944765);
+emit_32(3276224528);
+emit_32(1116000263);
+emit_32(1093070435);
+emit_32(3276224528);
+emit_32(1116512256);
+emit_32(1092835659);
+emit_32(3276224528);
+emit_32(1117024263);
+emit_32(1092160439);
+emit_32(3276224528);
+emit_32(1117536256);
+emit_32(1093144779);
+emit_32(3276224528);
+emit_32(1118048263);
+emit_32(1093574171);
+emit_32(3276224528);
+emit_32(1118560256);
+emit_32(1093277109);
+emit_32(3276224528);
+emit_32(1119072263);
+emit_32(1093819957);
+emit_32(3276224528);
+emit_32(1119584256);
+emit_32(1092843628);
+emit_32(3276224528);
+emit_32(1120096263);
+emit_32(1091116372);
+emit_32(3276224528);
+emit_32(1120608322);
+emit_32(1091376859);
+emit_32(3276224528);
+emit_32(1121120289);
+emit_32(1090364648);
+emit_32(3276224528);
+emit_32(1121632256);
+emit_32(1090493874);
+emit_32(3276224528);
+emit_32(1122144223);
+emit_32(1090596026);
+emit_32(3276224528);
+emit_32(1122656322);
+emit_32(1090953811);
+emit_32(3276224528);
+emit_32(1123168289);
+emit_32(1090983737);
+emit_32(3276224528);
+emit_32(1123680256);
+emit_32(1091497519);
+emit_32(3276224528);
+emit_32(1124132848);
+emit_32(1090542549);
+emit_32(3276224528);
+emit_32(1124388897);
+emit_32(1090078156);
+emit_32(3276224528);
+emit_32(1124644880);
+emit_32(1088934054);
+emit_32(3276224528);
+emit_32(1124900864);
+emit_32(1087697720);
+emit_32(3276224528);
+emit_32(1125156848);
+emit_32(1085563428);
+emit_32(3276224528);
+emit_32(1125412897);
+emit_32(1080952084);
+emit_32(3276224528);
+emit_32(1125668880);
+emit_32(1073321471);
+emit_32(3276224528);
+emit_32(1125924864);
+emit_32(1070202670);
+emit_32(3276224528);
+emit_32(1126180848);
+emit_32(1076022141);
+emit_32(3276224528);
+emit_32(1126436897);
+emit_32(1074767541);
+emit_32(3276224528);
+emit_32(1126692880);
+emit_32(1043406403);
+emit_32(3276224528);
+emit_32(1126948864);
+emit_32(3214856505);
+emit_32(3276224528);
+emit_32(1127204848);
+emit_32(3221624644);
+emit_32(3276224528);
+emit_32(1127460897);
+emit_32(3223744907);
+emit_32(3276224528);
+emit_32(1127716880);
+emit_32(3226922931);
+emit_32(3276224528);
+emit_32(1127972864);
+emit_32(3231769868);
+emit_32(3276224528);
+emit_32(1128228848);
+emit_32(3235400940);
+emit_32(3276224528);
+emit_32(1128484897);
+emit_32(3237712778);
+emit_32(3276224528);
+emit_32(1128740880);
+emit_32(3237178570);
+emit_32(3276224528);
+emit_32(1128996864);
+emit_32(3236152161);
+emit_32(3276224528);
+emit_32(1129252848);
+emit_32(3236365358);
+emit_32(3276224528);
+emit_32(1129508897);
+emit_32(3234550776);
+emit_32(3276224528);
+emit_32(1129764880);
+emit_32(3234356705);
+emit_32(3276224528);
+emit_32(1130020864);
+emit_32(3236727662);
+emit_32(3276224528);
+emit_32(1130276848);
+emit_32(3234020867);
+emit_32(3276224528);
+emit_32(1130532897);
+emit_32(3229942851);
+emit_32(3276224528);
+emit_32(1130788880);
+emit_32(3218905099);
+emit_32(3276224528);
+emit_32(1131044864);
+emit_32(1046590114);
+emit_32(3276224528);
+emit_32(1131300848);
+emit_32(1071351155);
+emit_32(3276224528);
+emit_32(1131556897);
+emit_32(1075089706);
+emit_32(3276224528);
+emit_32(1131812880);
+emit_32(1081837670);
+emit_32(3276224528);
+emit_32(1132068864);
+emit_32(1088418344);
+emit_32(3276224528);
+emit_32(1081737216);
+emit_32(1101171471);
+emit_32(3276480512);
+emit_32(1090125824);
+emit_32(1100482504);
+emit_32(3276480512);
+emit_32(1094418484);
+emit_32(1100941623);
+emit_32(3276480512);
+emit_32(1098514432);
+emit_32(1100408685);
+emit_32(3276480512);
+emit_32(1100759066);
+emit_32(1099563690);
+emit_32(3276480512);
+emit_32(1102807040);
+emit_32(1099315859);
+emit_32(3276480512);
+emit_32(1104855066);
+emit_32(1099149083);
+emit_32(3276480512);
+emit_32(1106903040);
+emit_32(1096909482);
+emit_32(3276480512);
+emit_32(1108123661);
+emit_32(1095417463);
+emit_32(3276480512);
+emit_32(1109147648);
+emit_32(1095014180);
+emit_32(3276480512);
+emit_32(1110171661);
+emit_32(1094740188);
+emit_32(3276480512);
+emit_32(1111195648);
+emit_32(1094116495);
+emit_32(3276480512);
+emit_32(1112219661);
+emit_32(1094245994);
+emit_32(3276480512);
+emit_32(1113243648);
+emit_32(1093480953);
+emit_32(3276480512);
+emit_32(1114267661);
+emit_32(1095278002);
+emit_32(3276480512);
+emit_32(1115291648);
+emit_32(1094897264);
+emit_32(3276480512);
+emit_32(1116000263);
+emit_32(1092706055);
+emit_32(3276480512);
+emit_32(1116512256);
+emit_32(1091291358);
+emit_32(3276480512);
+emit_32(1117024263);
+emit_32(1090889429);
+emit_32(3276480512);
+emit_32(1117536256);
+emit_32(1091305986);
+emit_32(3276480512);
+emit_32(1118048263);
+emit_32(1092298620);
+emit_32(3276480512);
+emit_32(1118560256);
+emit_32(1092551684);
+emit_32(3276480512);
+emit_32(1119072263);
+emit_32(1092611295);
+emit_32(3276480512);
+emit_32(1119584256);
+emit_32(1091871042);
+emit_32(3276480512);
+emit_32(1120096263);
+emit_32(1090718773);
+emit_32(3276480512);
+emit_32(1120608322);
+emit_32(1090155373);
+emit_32(3276480512);
+emit_32(1121120289);
+emit_32(1087795930);
+emit_32(3276480512);
+emit_32(1121632256);
+emit_32(1087063877);
+emit_32(3276480512);
+emit_32(1122144223);
+emit_32(1088019466);
+emit_32(3276480512);
+emit_32(1122656322);
+emit_32(1090277322);
+emit_32(3276480512);
+emit_32(1123168289);
+emit_32(1091326066);
+emit_32(3276480512);
+emit_32(1123680256);
+emit_32(1091923220);
+emit_32(3276480512);
+emit_32(1124132848);
+emit_32(1091702285);
+emit_32(3276480512);
+emit_32(1124388897);
+emit_32(1089725142);
+emit_32(3276480512);
+emit_32(1124644880);
+emit_32(1087013462);
+emit_32(3276480512);
+emit_32(1124900864);
+emit_32(1086960152);
+emit_32(3276480512);
+emit_32(1125156848);
+emit_32(1085873156);
+emit_32(3276480512);
+emit_32(1125412897);
+emit_32(1082634587);
+emit_32(3276480512);
+emit_32(1125668880);
+emit_32(1076934109);
+emit_32(3276480512);
+emit_32(1125924864);
+emit_32(1073398227);
+emit_32(3276480512);
+emit_32(1126180848);
+emit_32(1074881249);
+emit_32(3276480512);
+emit_32(1126436897);
+emit_32(1074681558);
+emit_32(3276480512);
+emit_32(1126692880);
+emit_32(1066383253);
+emit_32(3276480512);
+emit_32(1126948864);
+emit_32(3190627924);
+emit_32(3276480512);
+emit_32(1127204848);
+emit_32(3210951893);
+emit_32(3276480512);
+emit_32(1127460897);
+emit_32(3211101009);
+emit_32(3276480512);
+emit_32(1127716880);
+emit_32(3222970470);
+emit_32(3276480512);
+emit_32(1127972864);
+emit_32(3228079929);
+emit_32(3276480512);
+emit_32(1128228848);
+emit_32(3233825706);
+emit_32(3276480512);
+emit_32(1128484897);
+emit_32(3233542381);
+emit_32(3276480512);
+emit_32(1128740880);
+emit_32(3232104805);
+emit_32(3276480512);
+emit_32(1128996864);
+emit_32(3230112405);
+emit_32(3276480512);
+emit_32(1129252848);
+emit_32(3231152970);
+emit_32(3276480512);
+emit_32(1129508897);
+emit_32(3231464292);
+emit_32(3276480512);
+emit_32(1129764880);
+emit_32(3231339491);
+emit_32(3276480512);
+emit_32(1130020864);
+emit_32(3231844149);
+emit_32(3276480512);
+emit_32(1130276848);
+emit_32(3231999318);
+emit_32(3276480512);
+emit_32(1130532897);
+emit_32(3224338359);
+emit_32(3276480512);
+emit_32(1130788880);
+emit_32(1034571239);
+emit_32(3276480512);
+emit_32(1131044864);
+emit_32(1073783180);
+emit_32(3276480512);
+emit_32(1131300848);
+emit_32(1077514055);
+emit_32(3276480512);
+emit_32(1131556897);
+emit_32(1081268167);
+emit_32(3276480512);
+emit_32(1131812880);
+emit_32(1085146577);
+emit_32(3276480512);
+emit_32(1132068864);
+emit_32(1091014199);
+emit_32(3276480512);
+emit_32(1081737216);
+emit_32(1100121322);
+emit_32(3276736496);
+emit_32(1090125824);
+emit_32(1099396180);
+emit_32(3276736496);
+emit_32(1094418484);
+emit_32(1099281098);
+emit_32(3276736496);
+emit_32(1098514432);
+emit_32(1098942251);
+emit_32(3276736496);
+emit_32(1100759066);
+emit_32(1098739981);
+emit_32(3276736496);
+emit_32(1102807040);
+emit_32(1097837366);
+emit_32(3276736496);
+emit_32(1104855066);
+emit_32(1096300469);
+emit_32(3276736496);
+emit_32(1106903040);
+emit_32(1095044694);
+emit_32(3276736496);
+emit_32(1108123661);
+emit_32(1095162764);
+emit_32(3276736496);
+emit_32(1109147648);
+emit_32(1095334730);
+emit_32(3276736496);
+emit_32(1110171661);
+emit_32(1095152697);
+emit_32(3276736496);
+emit_32(1111195648);
+emit_32(1094407894);
+emit_32(3276736496);
+emit_32(1112219661);
+emit_32(1093563371);
+emit_32(3276736496);
+emit_32(1113243648);
+emit_32(1092844257);
+emit_32(3276736496);
+emit_32(1114267661);
+emit_32(1093382386);
+emit_32(3276736496);
+emit_32(1115291648);
+emit_32(1092541009);
+emit_32(3276736496);
+emit_32(1116000263);
+emit_32(1091687762);
+emit_32(3276736496);
+emit_32(1116512256);
+emit_32(1088040290);
+emit_32(3276736496);
+emit_32(1117024263);
+emit_32(1088119038);
+emit_32(3276736496);
+emit_32(1117536256);
+emit_32(1088383007);
+emit_32(3276736496);
+emit_32(1118048263);
+emit_32(1090949575);
+emit_32(3276736496);
+emit_32(1118560256);
+emit_32(1091368575);
+emit_32(3276736496);
+emit_32(1119072263);
+emit_32(1091839008);
+emit_32(3276736496);
+emit_32(1119584256);
+emit_32(1091040497);
+emit_32(3276736496);
+emit_32(1120096263);
+emit_32(1088659118);
+emit_32(3276736496);
+emit_32(1120608322);
+emit_32(1086563119);
+emit_32(3276736496);
+emit_32(1121120289);
+emit_32(1083266480);
+emit_32(3276736496);
+emit_32(1121632256);
+emit_32(1082063323);
+emit_32(3276736496);
+emit_32(1122144223);
+emit_32(1086818322);
+emit_32(3276736496);
+emit_32(1122656322);
+emit_32(1089302105);
+emit_32(3276736496);
+emit_32(1123168289);
+emit_32(1090938523);
+emit_32(3276736496);
+emit_32(1123680256);
+emit_32(1091787911);
+emit_32(3276736496);
+emit_32(1124132848);
+emit_32(1091673658);
+emit_32(3276736496);
+emit_32(1124388897);
+emit_32(1091250789);
+emit_32(3276736496);
+emit_32(1124644880);
+emit_32(1088596245);
+emit_32(3276736496);
+emit_32(1124900864);
+emit_32(1086620707);
+emit_32(3276736496);
+emit_32(1125156848);
+emit_32(1083915591);
+emit_32(3276736496);
+emit_32(1125412897);
+emit_32(1083242195);
+emit_32(3276736496);
+emit_32(1125668880);
+emit_32(1083662443);
+emit_32(3276736496);
+emit_32(1125924864);
+emit_32(1080051525);
+emit_32(3276736496);
+emit_32(1126180848);
+emit_32(1078023915);
+emit_32(3276736496);
+emit_32(1126436897);
+emit_32(1076481418);
+emit_32(3276736496);
+emit_32(1126692880);
+emit_32(1073065367);
+emit_32(3276736496);
+emit_32(1126948864);
+emit_32(1068007204);
+emit_32(3276736496);
+emit_32(1127204848);
+emit_32(1059175291);
+emit_32(3276736496);
+emit_32(1127460897);
+emit_32(3191698780);
+emit_32(3276736496);
+emit_32(1127716880);
+emit_32(3213224166);
+emit_32(3276736496);
+emit_32(1127972864);
+emit_32(3223725026);
+emit_32(3276736496);
+emit_32(1128228848);
+emit_32(3228029430);
+emit_32(3276736496);
+emit_32(1128484897);
+emit_32(3226148159);
+emit_32(3276736496);
+emit_32(1128740880);
+emit_32(3225760353);
+emit_32(3276736496);
+emit_32(1128996864);
+emit_32(3222121585);
+emit_32(3276736496);
+emit_32(1129252848);
+emit_32(3225539356);
+emit_32(3276736496);
+emit_32(1129508897);
+emit_32(3229882998);
+emit_32(3276736496);
+emit_32(1129764880);
+emit_32(3227190108);
+emit_32(3276736496);
+emit_32(1130020864);
+emit_32(3228912960);
+emit_32(3276736496);
+emit_32(1130276848);
+emit_32(3228921307);
+emit_32(3276736496);
+emit_32(1130532897);
+emit_32(3219664184);
+emit_32(3276736496);
+emit_32(1130788880);
+emit_32(1065871800);
+emit_32(3276736496);
+emit_32(1131044864);
+emit_32(1077962552);
+emit_32(3276736496);
+emit_32(1131300848);
+emit_32(1082028972);
+emit_32(3276736496);
+emit_32(1131556897);
+emit_32(1084764119);
+emit_32(3276736496);
+emit_32(1131812880);
+emit_32(1086553745);
+emit_32(3276736496);
+emit_32(1132068864);
+emit_32(1092505651);
+emit_32(3276736496);
+emit_32(1081737216);
+emit_32(1099020213);
+emit_32(3276992545);
+emit_32(1090125824);
+emit_32(1098714186);
+emit_32(3276992545);
+emit_32(1094418484);
+emit_32(1097828034);
+emit_32(3276992545);
+emit_32(1098514432);
+emit_32(1097529085);
+emit_32(3276992545);
+emit_32(1100759066);
+emit_32(1097159252);
+emit_32(3276992545);
+emit_32(1102807040);
+emit_32(1096861667);
+emit_32(3276992545);
+emit_32(1104855066);
+emit_32(1094929036);
+emit_32(3276992545);
+emit_32(1106903040);
+emit_32(1095502502);
+emit_32(3276992545);
+emit_32(1108123661);
+emit_32(1095915851);
+emit_32(3276992545);
+emit_32(1109147648);
+emit_32(1095718928);
+emit_32(3276992545);
+emit_32(1110171661);
+emit_32(1095125539);
+emit_32(3276992545);
+emit_32(1111195648);
+emit_32(1094669094);
+emit_32(3276992545);
+emit_32(1112219661);
+emit_32(1093180431);
+emit_32(3276992545);
+emit_32(1113243648);
+emit_32(1091863545);
+emit_32(3276992545);
+emit_32(1114267661);
+emit_32(1091778558);
+emit_32(3276992545);
+emit_32(1115291648);
+emit_32(1091298751);
+emit_32(3276992545);
+emit_32(1116000263);
+emit_32(1089644695);
+emit_32(3276992545);
+emit_32(1116512256);
+emit_32(1086301730);
+emit_32(3276992545);
+emit_32(1117024263);
+emit_32(1086163570);
+emit_32(3276992545);
+emit_32(1117536256);
+emit_32(1086958244);
+emit_32(3276992545);
+emit_32(1118048263);
+emit_32(1089172396);
+emit_32(3276992545);
+emit_32(1118560256);
+emit_32(1089779354);
+emit_32(3276992545);
+emit_32(1119072263);
+emit_32(1090296616);
+emit_32(3276992545);
+emit_32(1119584256);
+emit_32(1089775033);
+emit_32(3276992545);
+emit_32(1120096263);
+emit_32(1085622735);
+emit_32(3276992545);
+emit_32(1120608322);
+emit_32(1082413128);
+emit_32(3276992545);
+emit_32(1121120289);
+emit_32(1076491106);
+emit_32(3276992545);
+emit_32(1121632256);
+emit_32(1082562760);
+emit_32(3276992545);
+emit_32(1122144223);
+emit_32(1085964047);
+emit_32(3276992545);
+emit_32(1122656322);
+emit_32(1088268397);
+emit_32(3276992545);
+emit_32(1123168289);
+emit_32(1091065421);
+emit_32(3276992545);
+emit_32(1123680256);
+emit_32(1091881444);
+emit_32(3276992545);
+emit_32(1124132848);
+emit_32(1092768655);
+emit_32(3276992545);
+emit_32(1124388897);
+emit_32(1091984761);
+emit_32(3276992545);
+emit_32(1124644880);
+emit_32(1091281397);
+emit_32(3276992545);
+emit_32(1124900864);
+emit_32(1090331513);
+emit_32(3276992545);
+emit_32(1125156848);
+emit_32(1084916184);
+emit_32(3276992545);
+emit_32(1125412897);
+emit_32(1084859729);
+emit_32(3276992545);
+emit_32(1125668880);
+emit_32(1084191807);
+emit_32(3276992545);
+emit_32(1125924864);
+emit_32(1084800757);
+emit_32(3276992545);
+emit_32(1126180848);
+emit_32(1082243678);
+emit_32(3276992545);
+emit_32(1126436897);
+emit_32(1082662102);
+emit_32(3276992545);
+emit_32(1126692880);
+emit_32(1080485887);
+emit_32(3276992545);
+emit_32(1126948864);
+emit_32(1077722135);
+emit_32(3276992545);
+emit_32(1127204848);
+emit_32(1073495534);
+emit_32(3276992545);
+emit_32(1127460897);
+emit_32(1067137892);
+emit_32(3276992545);
+emit_32(1127716880);
+emit_32(3201755546);
+emit_32(3276992545);
+emit_32(1127972864);
+emit_32(3219314631);
+emit_32(3276992545);
+emit_32(1128228848);
+emit_32(3220786161);
+emit_32(3276992545);
+emit_32(1128484897);
+emit_32(3215535647);
+emit_32(3276992545);
+emit_32(1128740880);
+emit_32(3219082434);
+emit_32(3276992545);
+emit_32(1128996864);
+emit_32(3207719209);
+emit_32(3276992545);
+emit_32(1129252848);
+emit_32(3219319329);
+emit_32(3276992545);
+emit_32(1129508897);
+emit_32(3222885200);
+emit_32(3276992545);
+emit_32(1129764880);
+emit_32(3223784878);
+emit_32(3276992545);
+emit_32(1130020864);
+emit_32(3226090865);
+emit_32(3276992545);
+emit_32(1130276848);
+emit_32(3223180269);
+emit_32(3276992545);
+emit_32(1130532897);
+emit_32(3210523051);
+emit_32(3276992545);
+emit_32(1130788880);
+emit_32(1069117184);
+emit_32(3276992545);
+emit_32(1131044864);
+emit_32(1079791646);
+emit_32(3276992545);
+emit_32(1131300848);
+emit_32(1085107318);
+emit_32(3276992545);
+emit_32(1131556897);
+emit_32(1086920663);
+emit_32(3276992545);
+emit_32(1131812880);
+emit_32(1088946029);
+emit_32(3276992545);
+emit_32(1132068864);
+emit_32(1093373998);
+emit_32(3276992545);
+emit_32(1081737216);
+emit_32(1097108292);
+emit_32(3277248528);
+emit_32(1090125824);
+emit_32(1096843002);
+emit_32(3277248528);
+emit_32(1094418484);
+emit_32(1095568248);
+emit_32(3277248528);
+emit_32(1098514432);
+emit_32(1095018899);
+emit_32(3277248528);
+emit_32(1100759066);
+emit_32(1094782235);
+emit_32(3277248528);
+emit_32(1102807040);
+emit_32(1095180170);
+emit_32(3277248528);
+emit_32(1104855066);
+emit_32(1095450493);
+emit_32(3277248528);
+emit_32(1106903040);
+emit_32(1095069965);
+emit_32(3277248528);
+emit_32(1108123661);
+emit_32(1095994599);
+emit_32(3277248528);
+emit_32(1109147648);
+emit_32(1095664822);
+emit_32(3277248528);
+emit_32(1110171661);
+emit_32(1095335569);
+emit_32(3277248528);
+emit_32(1111195648);
+emit_32(1094159381);
+emit_32(3277248528);
+emit_32(1112219661);
+emit_32(1093190812);
+emit_32(3277248528);
+emit_32(1113243648);
+emit_32(1092024942);
+emit_32(3277248528);
+emit_32(1114267661);
+emit_32(1092719162);
+emit_32(3277248528);
+emit_32(1115291648);
+emit_32(1091950724);
+emit_32(3277248528);
+emit_32(1116000263);
+emit_32(1090594496);
+emit_32(3277248528);
+emit_32(1116512256);
+emit_32(1087264889);
+emit_32(3277248528);
+emit_32(1117024263);
+emit_32(1085915770);
+emit_32(3277248528);
+emit_32(1117536256);
+emit_32(1085498563);
+emit_32(3277248528);
+emit_32(1118048263);
+emit_32(1087685913);
+emit_32(3277248528);
+emit_32(1118560256);
+emit_32(1089772496);
+emit_32(3277248528);
+emit_32(1119072263);
+emit_32(1090845682);
+emit_32(3277248528);
+emit_32(1119584256);
+emit_32(1090463340);
+emit_32(3277248528);
+emit_32(1120096263);
+emit_32(1085056987);
+emit_32(3277248528);
+emit_32(1120608322);
+emit_32(1080738301);
+emit_32(3277248528);
+emit_32(1121120289);
+emit_32(1078775408);
+emit_32(3277248528);
+emit_32(1121632256);
+emit_32(1086143815);
+emit_32(3277248528);
+emit_32(1122144223);
+emit_32(1089267858);
+emit_32(3277248528);
+emit_32(1122656322);
+emit_32(1090842075);
+emit_32(3277248528);
+emit_32(1123168289);
+emit_32(1092362164);
+emit_32(3277248528);
+emit_32(1123680256);
+emit_32(1092866068);
+emit_32(3277248528);
+emit_32(1124132848);
+emit_32(1092973547);
+emit_32(3277248528);
+emit_32(1124388897);
+emit_32(1093272810);
+emit_32(3277248528);
+emit_32(1124644880);
+emit_32(1093540826);
+emit_32(3277248528);
+emit_32(1124900864);
+emit_32(1091662900);
+emit_32(3277248528);
+emit_32(1125156848);
+emit_32(1087337472);
+emit_32(3277248528);
+emit_32(1125412897);
+emit_32(1084271960);
+emit_32(3277248528);
+emit_32(1125668880);
+emit_32(1086273209);
+emit_32(3277248528);
+emit_32(1125924864);
+emit_32(1087017908);
+emit_32(3277248528);
+emit_32(1126180848);
+emit_32(1086137020);
+emit_32(3277248528);
+emit_32(1126436897);
+emit_32(1084291023);
+emit_32(3277248528);
+emit_32(1126692880);
+emit_32(1084252771);
+emit_32(3277248528);
+emit_32(1126948864);
+emit_32(1082890062);
+emit_32(3277248528);
+emit_32(1127204848);
+emit_32(1080838922);
+emit_32(3277248528);
+emit_32(1127460897);
+emit_32(1077790963);
+emit_32(3277248528);
+emit_32(1127716880);
+emit_32(1069026504);
+emit_32(3277248528);
+emit_32(1127972864);
+emit_32(3200230497);
+emit_32(3277248528);
+emit_32(1128228848);
+emit_32(3212093549);
+emit_32(3277248528);
+emit_32(1128484897);
+emit_32(3187505818);
+emit_32(3277248528);
+emit_32(1128740880);
+emit_32(3186118946);
+emit_32(3277248528);
+emit_32(1128996864);
+emit_32(3163350412);
+emit_32(3277248528);
+emit_32(1129252848);
+emit_32(3213662303);
+emit_32(3277248528);
+emit_32(1129508897);
+emit_32(3213755333);
+emit_32(3277248528);
+emit_32(1129764880);
+emit_32(3220593894);
+emit_32(3277248528);
+emit_32(1130020864);
+emit_32(3222323667);
+emit_32(3277248528);
+emit_32(1130276848);
+emit_32(3215526587);
+emit_32(3277248528);
+emit_32(1130532897);
+emit_32(1045835140);
+emit_32(3277248528);
+emit_32(1130788880);
+emit_32(1075469835);
+emit_32(3277248528);
+emit_32(1131044864);
+emit_32(1083532819);
+emit_32(3277248528);
+emit_32(1131300848);
+emit_32(1086949121);
+emit_32(3277248528);
+emit_32(1131556897);
+emit_32(1088845177);
+emit_32(3277248528);
+emit_32(1131812880);
+emit_32(1090603115);
+emit_32(3277248528);
+emit_32(1132068864);
+emit_32(1092936742);
+emit_32(3277248528);
+emit_32(1081737216);
+emit_32(1096047133);
+emit_32(3277504512);
+emit_32(1090125824);
+emit_32(1095575064);
+emit_32(3277504512);
+emit_32(1094418484);
+emit_32(1094514324);
+emit_32(3277504512);
+emit_32(1098514432);
+emit_32(1094409781);
+emit_32(3277504512);
+emit_32(1100759066);
+emit_32(1094209084);
+emit_32(3277504512);
+emit_32(1102807040);
+emit_32(1094844731);
+emit_32(3277504512);
+emit_32(1104855066);
+emit_32(1094741236);
+emit_32(3277504512);
+emit_32(1106903040);
+emit_32(1095085484);
+emit_32(3277504512);
+emit_32(1108123661);
+emit_32(1095114110);
+emit_32(3277504512);
+emit_32(1109147648);
+emit_32(1094994362);
+emit_32(3277504512);
+emit_32(1110171661);
+emit_32(1095239939);
+emit_32(3277504512);
+emit_32(1111195648);
+emit_32(1093966548);
+emit_32(3277504512);
+emit_32(1112219661);
+emit_32(1092807347);
+emit_32(3277504512);
+emit_32(1113243648);
+emit_32(1093061208);
+emit_32(3277504512);
+emit_32(1114267661);
+emit_32(1092621120);
+emit_32(3277504512);
+emit_32(1115291648);
+emit_32(1092574889);
+emit_32(3277504512);
+emit_32(1116000263);
+emit_32(1091199283);
+emit_32(3277504512);
+emit_32(1116512256);
+emit_32(1087281792);
+emit_32(3277504512);
+emit_32(1117024263);
+emit_32(1084862056);
+emit_32(3277504512);
+emit_32(1117536256);
+emit_32(1084838904);
+emit_32(3277504512);
+emit_32(1118048263);
+emit_32(1088961905);
+emit_32(3277504512);
+emit_32(1118560256);
+emit_32(1090683457);
+emit_32(3277504512);
+emit_32(1119072263);
+emit_32(1091541548);
+emit_32(3277504512);
+emit_32(1119584256);
+emit_32(1089950880);
+emit_32(3277504512);
+emit_32(1120096263);
+emit_32(1085097923);
+emit_32(3277504512);
+emit_32(1120608322);
+emit_32(1082634273);
+emit_32(3277504512);
+emit_32(1121120289);
+emit_32(1085048283);
+emit_32(3277504512);
+emit_32(1121632256);
+emit_32(1089879786);
+emit_32(3277504512);
+emit_32(1122144223);
+emit_32(1091437760);
+emit_32(3277504512);
+emit_32(1122656322);
+emit_32(1092036938);
+emit_32(3277504512);
+emit_32(1123168289);
+emit_32(1091792777);
+emit_32(3277504512);
+emit_32(1123680256);
+emit_32(1092759427);
+emit_32(3277504512);
+emit_32(1124132848);
+emit_32(1094303141);
+emit_32(3277504512);
+emit_32(1124388897);
+emit_32(1094722047);
+emit_32(3277504512);
+emit_32(1124644880);
+emit_32(1095047211);
+emit_32(3277504512);
+emit_32(1124900864);
+emit_32(1093500980);
+emit_32(3277504512);
+emit_32(1125156848);
+emit_32(1089802590);
+emit_32(3277504512);
+emit_32(1125412897);
+emit_32(1086478164);
+emit_32(3277504512);
+emit_32(1125668880);
+emit_32(1087292152);
+emit_32(3277504512);
+emit_32(1125924864);
+emit_32(1088463244);
+emit_32(3277504512);
+emit_32(1126180848);
+emit_32(1088955697);
+emit_32(3277504512);
+emit_32(1126436897);
+emit_32(1086983577);
+emit_32(3277504512);
+emit_32(1126692880);
+emit_32(1087333382);
+emit_32(3277504512);
+emit_32(1126948864);
+emit_32(1086099795);
+emit_32(3277504512);
+emit_32(1127204848);
+emit_32(1085722623);
+emit_32(3277504512);
+emit_32(1127460897);
+emit_32(1082769224);
+emit_32(3277504512);
+emit_32(1127716880);
+emit_32(1075827190);
+emit_32(3277504512);
+emit_32(1127972864);
+emit_32(1066775588);
+emit_32(3277504512);
+emit_32(1128228848);
+emit_32(1067171279);
+emit_32(3277504512);
+emit_32(1128484897);
+emit_32(1067001745);
+emit_32(3277504512);
+emit_32(1128740880);
+emit_32(1067686843);
+emit_32(3277504512);
+emit_32(1128996864);
+emit_32(1065883795);
+emit_32(3277504512);
+emit_32(1129252848);
+emit_32(1040732182);
+emit_32(3277504512);
+emit_32(1129508897);
+emit_32(3197189593);
+emit_32(3277504512);
+emit_32(1129764880);
+emit_32(3203486016);
+emit_32(3277504512);
+emit_32(1130020864);
+emit_32(3211855951);
+emit_32(3277504512);
+emit_32(1130276848);
+emit_32(3212062612);
+emit_32(3277504512);
+emit_32(1130532897);
+emit_32(1061179313);
+emit_32(3277504512);
+emit_32(1130788880);
+emit_32(1076017024);
+emit_32(3277504512);
+emit_32(1131044864);
+emit_32(1084602198);
+emit_32(3277504512);
+emit_32(1131300848);
+emit_32(1088897291);
+emit_32(3277504512);
+emit_32(1131556897);
+emit_32(1090987995);
+emit_32(3277504512);
+emit_32(1131812880);
+emit_32(1091140101);
+emit_32(3277504512);
+emit_32(1132068864);
+emit_32(1093070540);
+emit_32(3277504512);
+emit_32(1081737216);
+emit_32(1095782787);
+emit_32(3277760496);
+emit_32(1090125824);
+emit_32(1095949510);
+emit_32(3277760496);
+emit_32(1094418484);
+emit_32(1095197157);
+emit_32(3277760496);
+emit_32(1098514432);
+emit_32(1093509684);
+emit_32(3277760496);
+emit_32(1100759066);
+emit_32(1093932365);
+emit_32(3277760496);
+emit_32(1102807040);
+emit_32(1094883004);
+emit_32(3277760496);
+emit_32(1104855066);
+emit_32(1095364195);
+emit_32(3277760496);
+emit_32(1106903040);
+emit_32(1095467794);
+emit_32(3277760496);
+emit_32(1108123661);
+emit_32(1095382231);
+emit_32(3277760496);
+emit_32(1109147648);
+emit_32(1095263532);
+emit_32(3277760496);
+emit_32(1110171661);
+emit_32(1094240751);
+emit_32(3277760496);
+emit_32(1111195648);
+emit_32(1093792485);
+emit_32(3277760496);
+emit_32(1112219661);
+emit_32(1093773400);
+emit_32(3277760496);
+emit_32(1113243648);
+emit_32(1093969799);
+emit_32(3277760496);
+emit_32(1114267661);
+emit_32(1092613235);
+emit_32(3277760496);
+emit_32(1115291648);
+emit_32(1091641803);
+emit_32(3277760496);
+emit_32(1116000263);
+emit_32(1090223425);
+emit_32(3277760496);
+emit_32(1116512256);
+emit_32(1086325449);
+emit_32(3277760496);
+emit_32(1117024263);
+emit_32(1086748822);
+emit_32(3277760496);
+emit_32(1117536256);
+emit_32(1088214081);
+emit_32(3277760496);
+emit_32(1118048263);
+emit_32(1090683918);
+emit_32(3277760496);
+emit_32(1118560256);
+emit_32(1091490273);
+emit_32(3277760496);
+emit_32(1119072263);
+emit_32(1092135263);
+emit_32(3277760496);
+emit_32(1119584256);
+emit_32(1090576429);
+emit_32(3277760496);
+emit_32(1120096263);
+emit_32(1085919021);
+emit_32(3277760496);
+emit_32(1120608322);
+emit_32(1084273260);
+emit_32(3277760496);
+emit_32(1121120289);
+emit_32(1088748708);
+emit_32(3277760496);
+emit_32(1121632256);
+emit_32(1091512618);
+emit_32(3277760496);
+emit_32(1122144223);
+emit_32(1092476008);
+emit_32(3277760496);
+emit_32(1122656322);
+emit_32(1093289483);
+emit_32(3277760496);
+emit_32(1123168289);
+emit_32(1093443623);
+emit_32(3277760496);
+emit_32(1123680256);
+emit_32(1093739846);
+emit_32(3277760496);
+emit_32(1124132848);
+emit_32(1095381916);
+emit_32(3277760496);
+emit_32(1124388897);
+emit_32(1095171886);
+emit_32(3277760496);
+emit_32(1124644880);
+emit_32(1094833196);
+emit_32(3277760496);
+emit_32(1124900864);
+emit_32(1094087134);
+emit_32(3277760496);
+emit_32(1125156848);
+emit_32(1091517725);
+emit_32(3277760496);
+emit_32(1125412897);
+emit_32(1088065624);
+emit_32(3277760496);
+emit_32(1125668880);
+emit_32(1089789588);
+emit_32(3277760496);
+emit_32(1125924864);
+emit_32(1090797741);
+emit_32(3277760496);
+emit_32(1126180848);
+emit_32(1090448785);
+emit_32(3277760496);
+emit_32(1126436897);
+emit_32(1089515972);
+emit_32(3277760496);
+emit_32(1126692880);
+emit_32(1088794300);
+emit_32(3277760496);
+emit_32(1126948864);
+emit_32(1086317606);
+emit_32(3277760496);
+emit_32(1127204848);
+emit_32(1085853170);
+emit_32(3277760496);
+emit_32(1127460897);
+emit_32(1083759395);
+emit_32(3277760496);
+emit_32(1127716880);
+emit_32(1079594766);
+emit_32(3277760496);
+emit_32(1127972864);
+emit_32(1077764623);
+emit_32(3277760496);
+emit_32(1128228848);
+emit_32(1072514403);
+emit_32(3277760496);
+emit_32(1128484897);
+emit_32(1067984303);
+emit_32(3277760496);
+emit_32(1128740880);
+emit_32(1066412026);
+emit_32(3277760496);
+emit_32(1128996864);
+emit_32(1069352569);
+emit_32(3277760496);
+emit_32(1129252848);
+emit_32(1072856490);
+emit_32(3277760496);
+emit_32(1129508897);
+emit_32(1059155041);
+emit_32(3277760496);
+emit_32(1129764880);
+emit_32(1050172017);
+emit_32(3277760496);
+emit_32(1130020864);
+emit_32(3157538945);
+emit_32(3277760496);
+emit_32(1130276848);
+emit_32(3194387429);
+emit_32(3277760496);
+emit_32(1130532897);
+emit_32(1059188931);
+emit_32(3277760496);
+emit_32(1130788880);
+emit_32(1077509609);
+emit_32(3277760496);
+emit_32(1131044864);
+emit_32(1085587356);
+emit_32(3277760496);
+emit_32(1131300848);
+emit_32(1088891944);
+emit_32(3277760496);
+emit_32(1131556897);
+emit_32(1090308297);
+emit_32(3277760496);
+emit_32(1131812880);
+emit_32(1091359484);
+emit_32(3277760496);
+emit_32(1132068864);
+emit_32(1093623035);
+emit_32(3277760496);
+emit_32(1081737216);
+emit_32(1094685347);
+emit_32(3278016545);
+emit_32(1090125824);
+emit_32(1095642592);
+emit_32(3278016545);
+emit_32(1094418484);
+emit_32(1094847876);
+emit_32(3278016545);
+emit_32(1098514432);
+emit_32(1093374732);
+emit_32(3278016545);
+emit_32(1100759066);
+emit_32(1094384720);
+emit_32(3278016545);
+emit_32(1102807040);
+emit_32(1095400371);
+emit_32(3278016545);
+emit_32(1104855066);
+emit_32(1095484362);
+emit_32(3278016545);
+emit_32(1106903040);
+emit_32(1094502790);
+emit_32(3278016545);
+emit_32(1108123661);
+emit_32(1093875112);
+emit_32(3278016545);
+emit_32(1109147648);
+emit_32(1093633206);
+emit_32(3278016545);
+emit_32(1110171661);
+emit_32(1093418667);
+emit_32(3278016545);
+emit_32(1111195648);
+emit_32(1093659211);
+emit_32(3278016545);
+emit_32(1112219661);
+emit_32(1093957426);
+emit_32(3278016545);
+emit_32(1113243648);
+emit_32(1093739846);
+emit_32(3278016545);
+emit_32(1114267661);
+emit_32(1093359842);
+emit_32(3278016545);
+emit_32(1115291648);
+emit_32(1091739111);
+emit_32(3278016545);
+emit_32(1116000263);
+emit_32(1089668246);
+emit_32(3278016545);
+emit_32(1116512256);
+emit_32(1087761327);
+emit_32(3278016545);
+emit_32(1117024263);
+emit_32(1088382734);
+emit_32(3278016545);
+emit_32(1117536256);
+emit_32(1089936850);
+emit_32(3278016545);
+emit_32(1118048263);
+emit_32(1091570688);
+emit_32(3278016545);
+emit_32(1118560256);
+emit_32(1092069527);
+emit_32(3278016545);
+emit_32(1119072263);
+emit_32(1091509504);
+emit_32(3278016545);
+emit_32(1119584256);
+emit_32(1090092228);
+emit_32(3278016545);
+emit_32(1120096263);
+emit_32(1086488041);
+emit_32(3278016545);
+emit_32(1120608322);
+emit_32(1087594478);
+emit_32(3278016545);
+emit_32(1121120289);
+emit_32(1091111695);
+emit_32(3278016545);
+emit_32(1121632256);
+emit_32(1092917028);
+emit_32(3278016545);
+emit_32(1122144223);
+emit_32(1094162946);
+emit_32(3278016545);
+emit_32(1122656322);
+emit_32(1094317402);
+emit_32(3278016545);
+emit_32(1123168289);
+emit_32(1094797545);
+emit_32(3278016545);
+emit_32(1123680256);
+emit_32(1095272759);
+emit_32(3278016545);
+emit_32(1124132848);
+emit_32(1096382467);
+emit_32(3278016545);
+emit_32(1124388897);
+emit_32(1095677824);
+emit_32(3278016545);
+emit_32(1124644880);
+emit_32(1094211076);
+emit_32(3278016545);
+emit_32(1124900864);
+emit_32(1093289168);
+emit_32(3278016545);
+emit_32(1125156848);
+emit_32(1091399110);
+emit_32(3278016545);
+emit_32(1125412897);
+emit_32(1091357282);
+emit_32(3278016545);
+emit_32(1125668880);
+emit_32(1092084459);
+emit_32(3278016545);
+emit_32(1125924864);
+emit_32(1092576409);
+emit_32(3278016545);
+emit_32(1126180848);
+emit_32(1091310967);
+emit_32(3278016545);
+emit_32(1126436897);
+emit_32(1089767358);
+emit_32(3278016545);
+emit_32(1126692880);
+emit_32(1088833559);
+emit_32(3278016545);
+emit_32(1126948864);
+emit_32(1088084855);
+emit_32(3278016545);
+emit_32(1127204848);
+emit_32(1086548397);
+emit_32(3278016545);
+emit_32(1127460897);
+emit_32(1083608358);
+emit_32(3278016545);
+emit_32(1127716880);
+emit_32(1083278790);
+emit_32(3278016545);
+emit_32(1127972864);
+emit_32(1080394661);
+emit_32(3278016545);
+emit_32(1128228848);
+emit_32(1077852158);
+emit_32(3278016545);
+emit_32(1128484897);
+emit_32(1069478650);
+emit_32(3278016545);
+emit_32(1128740880);
+emit_32(1072553494);
+emit_32(3278016545);
+emit_32(1128996864);
+emit_32(1069471100);
+emit_32(3278016545);
+emit_32(1129252848);
+emit_32(1068704381);
+emit_32(3278016545);
+emit_32(1129508897);
+emit_32(1063054771);
+emit_32(3278016545);
+emit_32(1129764880);
+emit_32(1066657309);
+emit_32(3278016545);
+emit_32(1130020864);
+emit_32(1058799582);
+emit_32(3278016545);
+emit_32(1130276848);
+emit_32(1065716610);
+emit_32(3278016545);
+emit_32(1130532897);
+emit_32(1070221796);
+emit_32(3278016545);
+emit_32(1130788880);
+emit_32(1082372632);
+emit_32(3278016545);
+emit_32(1131044864);
+emit_32(1085584357);
+emit_32(3278016545);
+emit_32(1131300848);
+emit_32(1087618406);
+emit_32(3278016545);
+emit_32(1131556897);
+emit_32(1089074731);
+emit_32(3278016545);
+emit_32(1131812880);
+emit_32(1091116256);
+emit_32(3278016545);
+emit_32(1132068864);
+emit_32(1093443623);
+emit_32(3278016545);
+emit_32(1081737216);
+emit_32(1093100529);
+emit_32(3278272528);
+emit_32(1090125824);
+emit_32(1094102968);
+emit_32(3278272528);
+emit_32(1094418484);
+emit_32(1093438380);
+emit_32(3278272528);
+emit_32(1098514432);
+emit_32(1093242192);
+emit_32(3278272528);
+emit_32(1100759066);
+emit_32(1093664663);
+emit_32(3278272528);
+emit_32(1102807040);
+emit_32(1094290978);
+emit_32(3278272528);
+emit_32(1104855066);
+emit_32(1094142185);
+emit_32(3278272528);
+emit_32(1106903040);
+emit_32(1092722622);
+emit_32(3278272528);
+emit_32(1108123661);
+emit_32(1093048205);
+emit_32(3278272528);
+emit_32(1109147648);
+emit_32(1092329868);
+emit_32(3278272528);
+emit_32(1110171661);
+emit_32(1092322308);
+emit_32(3278272528);
+emit_32(1111195648);
+emit_32(1093430621);
+emit_32(3278272528);
+emit_32(1112219661);
+emit_32(1093536317);
+emit_32(3278272528);
+emit_32(1113243648);
+emit_32(1092950268);
+emit_32(3278272528);
+emit_32(1114267661);
+emit_32(1093055336);
+emit_32(3278272528);
+emit_32(1115291648);
+emit_32(1091513918);
+emit_32(3278272528);
+emit_32(1116000263);
+emit_32(1090353428);
+emit_32(3278272528);
+emit_32(1116512256);
+emit_32(1091025450);
+emit_32(3278272528);
+emit_32(1117024263);
+emit_32(1091303186);
+emit_32(3278272528);
+emit_32(1117536256);
+emit_32(1091441535);
+emit_32(3278272528);
+emit_32(1118048263);
+emit_32(1092287275);
+emit_32(3278272528);
+emit_32(1118560256);
+emit_32(1092144259);
+emit_32(3278272528);
+emit_32(1119072263);
+emit_32(1091616102);
+emit_32(3278272528);
+emit_32(1119584256);
+emit_32(1091037110);
+emit_32(3278272528);
+emit_32(1120096263);
+emit_32(1090309493);
+emit_32(3278272528);
+emit_32(1120608322);
+emit_32(1091784220);
+emit_32(3278272528);
+emit_32(1121120289);
+emit_32(1093152434);
+emit_32(3278272528);
+emit_32(1121632256);
+emit_32(1094218836);
+emit_32(3278272528);
+emit_32(1122144223);
+emit_32(1094752980);
+emit_32(3278272528);
+emit_32(1122656322);
+emit_32(1095698796);
+emit_32(3278272528);
+emit_32(1123168289);
+emit_32(1095918053);
+emit_32(3278272528);
+emit_32(1123680256);
+emit_32(1096702912);
+emit_32(3278272528);
+emit_32(1124132848);
+emit_32(1097339817);
+emit_32(3278272528);
+emit_32(1124388897);
+emit_32(1095953075);
+emit_32(3278272528);
+emit_32(1124644880);
+emit_32(1094317611);
+emit_32(3278272528);
+emit_32(1124900864);
+emit_32(1093780950);
+emit_32(3278272528);
+emit_32(1125156848);
+emit_32(1092660022);
+emit_32(3278272528);
+emit_32(1125412897);
+emit_32(1092828633);
+emit_32(3278272528);
+emit_32(1125668880);
+emit_32(1093621252);
+emit_32(3278272528);
+emit_32(1125924864);
+emit_32(1093691821);
+emit_32(3278272528);
+emit_32(1126180848);
+emit_32(1092496151);
+emit_32(3278272528);
+emit_32(1126436897);
+emit_32(1091489371);
+emit_32(3278272528);
+emit_32(1126692880);
+emit_32(1090315742);
+emit_32(3278272528);
+emit_32(1126948864);
+emit_32(1088919605);
+emit_32(3278272528);
+emit_32(1127204848);
+emit_32(1086524028);
+emit_32(3278272528);
+emit_32(1127460897);
+emit_32(1084543520);
+emit_32(3278272528);
+emit_32(1127716880);
+emit_32(1083661479);
+emit_32(3278272528);
+emit_32(1127972864);
+emit_32(1082237198);
+emit_32(3278272528);
+emit_32(1128228848);
+emit_32(1078013052);
+emit_32(3278272528);
+emit_32(1128484897);
+emit_32(1072342353);
+emit_32(3278272528);
+emit_32(1128740880);
+emit_32(1077011074);
+emit_32(3278272528);
+emit_32(1128996864);
+emit_32(1078172393);
+emit_32(3278272528);
+emit_32(1129252848);
+emit_32(1074035719);
+emit_32(3278272528);
+emit_32(1129508897);
+emit_32(1073825416);
+emit_32(3278272528);
+emit_32(1129764880);
+emit_32(1074307678);
+emit_32(3278272528);
+emit_32(1130020864);
+emit_32(1070873927);
+emit_32(3278272528);
+emit_32(1130276848);
+emit_32(1072403002);
+emit_32(3278272528);
+emit_32(1130532897);
+emit_32(1077025838);
+emit_32(3278272528);
+emit_32(1130788880);
+emit_32(1081902304);
+emit_32(3278272528);
+emit_32(1131044864);
+emit_32(1085968619);
+emit_32(3278272528);
+emit_32(1131300848);
+emit_32(1088231676);
+emit_32(3278272528);
+emit_32(1131556897);
+emit_32(1090439956);
+emit_32(3278272528);
+emit_32(1131812880);
+emit_32(1089744184);
+emit_32(3278272528);
+emit_32(1132068864);
+emit_32(1092872988);
+emit_32(3278272528);
+emit_32(1081737216);
+emit_32(1091412678);
+emit_32(3278528512);
+emit_32(1090125824);
+emit_32(1091988504);
+emit_32(3278528512);
+emit_32(1094418484);
+emit_32(1092226269);
+emit_32(3278528512);
+emit_32(1098514432);
+emit_32(1092585521);
+emit_32(3278528512);
+emit_32(1100759066);
+emit_32(1092575014);
+emit_32(3278528512);
+emit_32(1102807040);
+emit_32(1092307292);
+emit_32(3278528512);
+emit_32(1104855066);
+emit_32(1092661805);
+emit_32(3278528512);
+emit_32(1106903040);
+emit_32(1092468123);
+emit_32(3278528512);
+emit_32(1108123661);
+emit_32(1092120016);
+emit_32(3278528512);
+emit_32(1109147648);
+emit_32(1091309048);
+emit_32(3278528512);
+emit_32(1110171661);
+emit_32(1091564323);
+emit_32(3278528512);
+emit_32(1111195648);
+emit_32(1092158059);
+emit_32(3278528512);
+emit_32(1112219661);
+emit_32(1092138943);
+emit_32(3278528512);
+emit_32(1113243648);
+emit_32(1092639785);
+emit_32(3278528512);
+emit_32(1114267661);
+emit_32(1092158950);
+emit_32(3278528512);
+emit_32(1115291648);
+emit_32(1091761330);
+emit_32(3278528512);
+emit_32(1116000263);
+emit_32(1091873884);
+emit_32(3278528512);
+emit_32(1116512256);
+emit_32(1093128002);
+emit_32(3278528512);
+emit_32(1117024263);
+emit_32(1093545755);
+emit_32(3278528512);
+emit_32(1117536256);
+emit_32(1093685844);
+emit_32(3278528512);
+emit_32(1118048263);
+emit_32(1094474478);
+emit_32(3278528512);
+emit_32(1118560256);
+emit_32(1093835057);
+emit_32(3278528512);
+emit_32(1119072263);
+emit_32(1093247435);
+emit_32(3278528512);
+emit_32(1119584256);
+emit_32(1092545770);
+emit_32(3278528512);
+emit_32(1120096263);
+emit_32(1092881691);
+emit_32(3278528512);
+emit_32(1120608322);
+emit_32(1093753687);
+emit_32(3278528512);
+emit_32(1121120289);
+emit_32(1095402888);
+emit_32(3278528512);
+emit_32(1121632256);
+emit_32(1096263454);
+emit_32(3278528512);
+emit_32(1122144223);
+emit_32(1097648518);
+emit_32(3278528512);
+emit_32(1122656322);
+emit_32(1098257845);
+emit_32(3278528512);
+emit_32(1123168289);
+emit_32(1098906075);
+emit_32(3278528512);
+emit_32(1123680256);
+emit_32(1097757884);
+emit_32(3278528512);
+emit_32(1124132848);
+emit_32(1097095184);
+emit_32(3278528512);
+emit_32(1124388897);
+emit_32(1096820772);
+emit_32(3278528512);
+emit_32(1124644880);
+emit_32(1095881563);
+emit_32(3278528512);
+emit_32(1124900864);
+emit_32(1095322462);
+emit_32(3278528512);
+emit_32(1125156848);
+emit_32(1094560881);
+emit_32(3278528512);
+emit_32(1125412897);
+emit_32(1094212020);
+emit_32(3278528512);
+emit_32(1125668880);
+emit_32(1094591919);
+emit_32(3278528512);
+emit_32(1125924864);
+emit_32(1094354836);
+emit_32(3278528512);
+emit_32(1126180848);
+emit_32(1093487244);
+emit_32(3278528512);
+emit_32(1126436897);
+emit_32(1092900566);
+emit_32(3278528512);
+emit_32(1126692880);
+emit_32(1091131859);
+emit_32(3278528512);
+emit_32(1126948864);
+emit_32(1088434303);
+emit_32(3278528512);
+emit_32(1127204848);
+emit_32(1085602330);
+emit_32(3278528512);
+emit_32(1127460897);
+emit_32(1084383381);
+emit_32(3278528512);
+emit_32(1127716880);
+emit_32(1082990348);
+emit_32(3278528512);
+emit_32(1127972864);
+emit_32(1081942359);
+emit_32(3278528512);
+emit_32(1128228848);
+emit_32(1079707928);
+emit_32(3278528512);
+emit_32(1128484897);
+emit_32(1076020757);
+emit_32(3278528512);
+emit_32(1128740880);
+emit_32(1081959766);
+emit_32(3278528512);
+emit_32(1128996864);
+emit_32(1081769302);
+emit_32(3278528512);
+emit_32(1129252848);
+emit_32(1077543709);
+emit_32(3278528512);
+emit_32(1129508897);
+emit_32(1078419522);
+emit_32(3278528512);
+emit_32(1129764880);
+emit_32(1079325911);
+emit_32(3278528512);
+emit_32(1130020864);
+emit_32(1076435784);
+emit_32(3278528512);
+emit_32(1130276848);
+emit_32(1076442830);
+emit_32(3278528512);
+emit_32(1130532897);
+emit_32(1078716269);
+emit_32(3278528512);
+emit_32(1130788880);
+emit_32(1083099337);
+emit_32(3278528512);
+emit_32(1131044864);
+emit_32(1086173385);
+emit_32(3278528512);
+emit_32(1131300848);
+emit_32(1088001787);
+emit_32(3278528512);
+emit_32(1131556897);
+emit_32(1091260069);
+emit_32(3278528512);
+emit_32(1131812880);
+emit_32(1091015247);
+emit_32(3278528512);
+emit_32(1132068864);
+emit_32(1093018740);
+emit_32(3278528512);
+emit_32(1081737216);
+emit_32(1090509120);
+emit_32(3278784496);
+emit_32(1090125824);
+emit_32(1091171244);
+emit_32(3278784496);
+emit_32(1094418484);
+emit_32(1091637818);
+emit_32(3278784496);
+emit_32(1098514432);
+emit_32(1091699621);
+emit_32(3278784496);
+emit_32(1100759066);
+emit_32(1091545869);
+emit_32(3278784496);
+emit_32(1102807040);
+emit_32(1092355642);
+emit_32(3278784496);
+emit_32(1104855066);
+emit_32(1092176189);
+emit_32(3278784496);
+emit_32(1106903040);
+emit_32(1091883961);
+emit_32(3278784496);
+emit_32(1108123661);
+emit_32(1091185924);
+emit_32(3278784496);
+emit_32(1109147648);
+emit_32(1091284217);
+emit_32(3278784496);
+emit_32(1110171661);
+emit_32(1091038221);
+emit_32(3278784496);
+emit_32(1111195648);
+emit_32(1091340725);
+emit_32(3278784496);
+emit_32(1112219661);
+emit_32(1091305944);
+emit_32(3278784496);
+emit_32(1113243648);
+emit_32(1091527623);
+emit_32(3278784496);
+emit_32(1114267661);
+emit_32(1092680260);
+emit_32(3278784496);
+emit_32(1115291648);
+emit_32(1093798461);
+emit_32(3278784496);
+emit_32(1116000263);
+emit_32(1093476968);
+emit_32(3278784496);
+emit_32(1116512256);
+emit_32(1094724669);
+emit_32(3278784496);
+emit_32(1117024263);
+emit_32(1095984847);
+emit_32(3278784496);
+emit_32(1117536256);
+emit_32(1096949223);
+emit_32(3278784496);
+emit_32(1118048263);
+emit_32(1097185362);
+emit_32(3278784496);
+emit_32(1118560256);
+emit_32(1096053529);
+emit_32(3278784496);
+emit_32(1119072263);
+emit_32(1095554721);
+emit_32(3278784496);
+emit_32(1119584256);
+emit_32(1094764095);
+emit_32(3278784496);
+emit_32(1120096263);
+emit_32(1095516239);
+emit_32(3278784496);
+emit_32(1120608322);
+emit_32(1096842687);
+emit_32(3278784496);
+emit_32(1121120289);
+emit_32(1098862245);
+emit_32(3278784496);
+emit_32(1121632256);
+emit_32(1099841038);
+emit_32(3278784496);
+emit_32(1122144223);
+emit_32(1100521249);
+emit_32(3278784496);
+emit_32(1122656322);
+emit_32(1100352324);
+emit_32(3278784496);
+emit_32(1123168289);
+emit_32(1100382418);
+emit_32(3278784496);
+emit_32(1123680256);
+emit_32(1099683961);
+emit_32(3278784496);
+emit_32(1124132848);
+emit_32(1099118517);
+emit_32(3278784496);
+emit_32(1124388897);
+emit_32(1098912891);
+emit_32(3278784496);
+emit_32(1124644880);
+emit_32(1098053268);
+emit_32(3278784496);
+emit_32(1124900864);
+emit_32(1096737201);
+emit_32(3278784496);
+emit_32(1125156848);
+emit_32(1095640390);
+emit_32(3278784496);
+emit_32(1125412897);
+emit_32(1094410096);
+emit_32(3278784496);
+emit_32(1125668880);
+emit_32(1094098878);
+emit_32(3278784496);
+emit_32(1125924864);
+emit_32(1093723488);
+emit_32(3278784496);
+emit_32(1126180848);
+emit_32(1093527195);
+emit_32(3278784496);
+emit_32(1126436897);
+emit_32(1093210944);
+emit_32(3278784496);
+emit_32(1126692880);
+emit_32(1092714548);
+emit_32(3278784496);
+emit_32(1126948864);
+emit_32(1089965455);
+emit_32(3278784496);
+emit_32(1127204848);
+emit_32(1086218431);
+emit_32(3278784496);
+emit_32(1127460897);
+emit_32(1085307869);
+emit_32(3278784496);
+emit_32(1127716880);
+emit_32(1084803231);
+emit_32(3278784496);
+emit_32(1127972864);
+emit_32(1084117756);
+emit_32(3278784496);
+emit_32(1128228848);
+emit_32(1082406438);
+emit_32(3278784496);
+emit_32(1128484897);
+emit_32(1080428635);
+emit_32(3278784496);
+emit_32(1128740880);
+emit_32(1082196765);
+emit_32(3278784496);
+emit_32(1128996864);
+emit_32(1082931292);
+emit_32(3278784496);
+emit_32(1129252848);
+emit_32(1078353839);
+emit_32(3278784496);
+emit_32(1129508897);
+emit_32(1078676842);
+emit_32(3278784496);
+emit_32(1129764880);
+emit_32(1078175832);
+emit_32(3278784496);
+emit_32(1130020864);
+emit_32(1078788788);
+emit_32(3278784496);
+emit_32(1130276848);
+emit_32(1075988503);
+emit_32(3278784496);
+emit_32(1130532897);
+emit_32(1078470902);
+emit_32(3278784496);
+emit_32(1130788880);
+emit_32(1083278329);
+emit_32(3278784496);
+emit_32(1131044864);
+emit_32(1086190728);
+emit_32(3278784496);
+emit_32(1131300848);
+emit_32(1088421406);
+emit_32(3278784496);
+emit_32(1131556897);
+emit_32(1090737280);
+emit_32(3278784496);
+emit_32(1131812880);
+emit_32(1092161257);
+emit_32(3278784496);
+emit_32(1132068864);
+emit_32(1094162946);
+emit_32(3278784496);
+emit_32(1081737216);
+emit_32(1087170664);
+emit_32(3279040545);
+emit_32(1090125824);
+emit_32(1090282922);
+emit_32(3279040545);
+emit_32(1094418484);
+emit_32(1091155117);
+emit_32(3279040545);
+emit_32(1098514432);
+emit_32(1091115921);
+emit_32(3279040545);
+emit_32(1100759066);
+emit_32(1091154351);
+emit_32(3279040545);
+emit_32(1102807040);
+emit_32(1091182076);
+emit_32(3279040545);
+emit_32(1104855066);
+emit_32(1090880379);
+emit_32(3279040545);
+emit_32(1106903040);
+emit_32(1089488437);
+emit_32(3279040545);
+emit_32(1108123661);
+emit_32(1089764611);
+emit_32(3279040545);
+emit_32(1109147648);
+emit_32(1090012599);
+emit_32(3279040545);
+emit_32(1110171661);
+emit_32(1089610386);
+emit_32(3279040545);
+emit_32(1111195648);
+emit_32(1090497943);
+emit_32(3279040545);
+emit_32(1112219661);
+emit_32(1092221833);
+emit_32(3279040545);
+emit_32(1113243648);
+emit_32(1091868673);
+emit_32(3279040545);
+emit_32(1114267661);
+emit_32(1093013812);
+emit_32(3279040545);
+emit_32(1115291648);
+emit_32(1093957635);
+emit_32(3279040545);
+emit_32(1116000263);
+emit_32(1095032950);
+emit_32(3279040545);
+emit_32(1116512256);
+emit_32(1096314729);
+emit_32(3279040545);
+emit_32(1117024263);
+emit_32(1097345375);
+emit_32(3279040545);
+emit_32(1117536256);
+emit_32(1098078329);
+emit_32(3279040545);
+emit_32(1118048263);
+emit_32(1098803524);
+emit_32(3279040545);
+emit_32(1118560256);
+emit_32(1098341522);
+emit_32(3279040545);
+emit_32(1119072263);
+emit_32(1097352715);
+emit_32(3279040545);
+emit_32(1119584256);
+emit_32(1097048103);
+emit_32(3279040545);
+emit_32(1120096263);
+emit_32(1096764149);
+emit_32(3279040545);
+emit_32(1120608322);
+emit_32(1098722469);
+emit_32(3279040545);
+emit_32(1121120289);
+emit_32(1100309647);
+emit_32(3279040545);
+emit_32(1121632256);
+emit_32(1101387321);
+emit_32(3279040545);
+emit_32(1122144223);
+emit_32(1101809739);
+emit_32(3279040545);
+emit_32(1122656322);
+emit_32(1101519703);
+emit_32(3279040545);
+emit_32(1123168289);
+emit_32(1101121821);
+emit_32(3279040545);
+emit_32(1123680256);
+emit_32(1100240545);
+emit_32(3279040545);
+emit_32(1124132848);
+emit_32(1099882352);
+emit_32(3279040545);
+emit_32(1124388897);
+emit_32(1099784048);
+emit_32(3279040545);
+emit_32(1124644880);
+emit_32(1099378563);
+emit_32(3279040545);
+emit_32(1124900864);
+emit_32(1097709545);
+emit_32(3279040545);
+emit_32(1125156848);
+emit_32(1095839095);
+emit_32(3279040545);
+emit_32(1125412897);
+emit_32(1095221589);
+emit_32(3279040545);
+emit_32(1125668880);
+emit_32(1094514219);
+emit_32(3279040545);
+emit_32(1125924864);
+emit_32(1094489263);
+emit_32(3279040545);
+emit_32(1126180848);
+emit_32(1094114397);
+emit_32(3279040545);
+emit_32(1126436897);
+emit_32(1093523525);
+emit_32(3279040545);
+emit_32(1126692880);
+emit_32(1092364020);
+emit_32(3279040545);
+emit_32(1126948864);
+emit_32(1090657578);
+emit_32(3279040545);
+emit_32(1127204848);
+emit_32(1088250991);
+emit_32(3279040545);
+emit_32(1127460897);
+emit_32(1086186701);
+emit_32(3279040545);
+emit_32(1127716880);
+emit_32(1085899685);
+emit_32(3279040545);
+emit_32(1127972864);
+emit_32(1085922502);
+emit_32(3279040545);
+emit_32(1128228848);
+emit_32(1083915444);
+emit_32(3279040545);
+emit_32(1128484897);
+emit_32(1082705891);
+emit_32(3279040545);
+emit_32(1128740880);
+emit_32(1082612966);
+emit_32(3279040545);
+emit_32(1128996864);
+emit_32(1082123763);
+emit_32(3279040545);
+emit_32(1129252848);
+emit_32(1079957992);
+emit_32(3279040545);
+emit_32(1129508897);
+emit_32(1080918362);
+emit_32(3279040545);
+emit_32(1129764880);
+emit_32(1080150846);
+emit_32(3279040545);
+emit_32(1130020864);
+emit_32(1079666824);
+emit_32(3279040545);
+emit_32(1130276848);
+emit_32(1075451758);
+emit_32(3279040545);
+emit_32(1130532897);
+emit_32(1079618505);
+emit_32(3279040545);
+emit_32(1130788880);
+emit_32(1083212437);
+emit_32(3279040545);
+emit_32(1131044864);
+emit_32(1086243597);
+emit_32(3279040545);
+emit_32(1131300848);
+emit_32(1089861499);
+emit_32(3279040545);
+emit_32(1131556897);
+emit_32(1091090891);
+emit_32(3279040545);
+emit_32(1131812880);
+emit_32(1092085392);
+emit_32(3279040545);
+emit_32(1132068864);
+emit_32(1094769128);
+emit_32(3279040545);
+emit_32(1081737216);
+emit_32(1086522393);
+emit_32(3279296528);
+emit_32(1090125824);
+emit_32(1089733279);
+emit_32(3279296528);
+emit_32(1094418484);
+emit_32(1090866549);
+emit_32(3279296528);
+emit_32(1098514432);
+emit_32(1091166221);
+emit_32(3279296528);
+emit_32(1100759066);
+emit_32(1091316692);
+emit_32(3279296528);
+emit_32(1102807040);
+emit_32(1090303012);
+emit_32(3279296528);
+emit_32(1104855066);
+emit_32(1090054898);
+emit_32(3279296528);
+emit_32(1106903040);
+emit_32(1089282496);
+emit_32(3279296528);
+emit_32(1108123661);
+emit_32(1087524370);
+emit_32(3279296528);
+emit_32(1109147648);
+emit_32(1086986471);
+emit_32(3279296528);
+emit_32(1110171661);
+emit_32(1089941925);
+emit_32(3279296528);
+emit_32(1111195648);
+emit_32(1091445195);
+emit_32(3279296528);
+emit_32(1112219661);
+emit_32(1092661595);
+emit_32(3279296528);
+emit_32(1113243648);
+emit_32(1093449286);
+emit_32(3279296528);
+emit_32(1114267661);
+emit_32(1094451829);
+emit_32(3279296528);
+emit_32(1115291648);
+emit_32(1095908406);
+emit_32(3279296528);
+emit_32(1116000263);
+emit_32(1095897606);
+emit_32(3279296528);
+emit_32(1116512256);
+emit_32(1097742156);
+emit_32(3279296528);
+emit_32(1117024263);
+emit_32(1098429917);
+emit_32(3279296528);
+emit_32(1117536256);
+emit_32(1099162819);
+emit_32(3279296528);
+emit_32(1118048263);
+emit_32(1099463446);
+emit_32(3279296528);
+emit_32(1118560256);
+emit_32(1099555196);
+emit_32(3279296528);
+emit_32(1119072263);
+emit_32(1099132672);
+emit_32(3279296528);
+emit_32(1119584256);
+emit_32(1099075420);
+emit_32(3279296528);
+emit_32(1120096263);
+emit_32(1099448871);
+emit_32(3279296528);
+emit_32(1120608322);
+emit_32(1099721553);
+emit_32(3279296528);
+emit_32(1121120289);
+emit_32(1101033321);
+emit_32(3279296528);
+emit_32(1121632256);
+emit_32(1101927337);
+emit_32(3279296528);
+emit_32(1122144223);
+emit_32(1102231686);
+emit_32(3279296528);
+emit_32(1122656322);
+emit_32(1102467092);
+emit_32(3279296528);
+emit_32(1123168289);
+emit_32(1101898711);
+emit_32(3279296528);
+emit_32(1123680256);
+emit_32(1101260390);
+emit_32(3279296528);
+emit_32(1124132848);
+emit_32(1100638480);
+emit_32(3279296528);
+emit_32(1124388897);
+emit_32(1100231685);
+emit_32(3279296528);
+emit_32(1124644880);
+emit_32(1099651036);
+emit_32(3279296528);
+emit_32(1124900864);
+emit_32(1097614020);
+emit_32(3279296528);
+emit_32(1125156848);
+emit_32(1096696726);
+emit_32(3279296528);
+emit_32(1125412897);
+emit_32(1094775629);
+emit_32(3279296528);
+emit_32(1125668880);
+emit_32(1094539595);
+emit_32(3279296528);
+emit_32(1125924864);
+emit_32(1095046372);
+emit_32(3279296528);
+emit_32(1126180848);
+emit_32(1095477441);
+emit_32(3279296528);
+emit_32(1126436897);
+emit_32(1093641594);
+emit_32(3279296528);
+emit_32(1126692880);
+emit_32(1092818357);
+emit_32(3279296528);
+emit_32(1126948864);
+emit_32(1090737490);
+emit_32(3279296528);
+emit_32(1127204848);
+emit_32(1089918898);
+emit_32(3279296528);
+emit_32(1127460897);
+emit_32(1089673426);
+emit_32(3279296528);
+emit_32(1127716880);
+emit_32(1088381686);
+emit_32(3279296528);
+emit_32(1127972864);
+emit_32(1088024583);
+emit_32(3279296528);
+emit_32(1128228848);
+emit_32(1086615842);
+emit_32(3279296528);
+emit_32(1128484897);
+emit_32(1083021134);
+emit_32(3279296528);
+emit_32(1128740880);
+emit_32(1082006448);
+emit_32(3279296528);
+emit_32(1128996864);
+emit_32(1082259554);
+emit_32(3279296528);
+emit_32(1129252848);
+emit_32(1081019948);
+emit_32(3279296528);
+emit_32(1129508897);
+emit_32(1083076688);
+emit_32(3279296528);
+emit_32(1129764880);
+emit_32(1079712290);
+emit_32(3279296528);
+emit_32(1130020864);
+emit_32(1076696460);
+emit_32(3279296528);
+emit_32(1130276848);
+emit_32(1081628248);
+emit_32(3279296528);
+emit_32(1130532897);
+emit_32(1083251486);
+emit_32(3279296528);
+emit_32(1130788880);
+emit_32(1085680051);
+emit_32(3279296528);
+emit_32(1131044864);
+emit_32(1086814757);
+emit_32(3279296528);
+emit_32(1131300848);
+emit_32(1089239043);
+emit_32(3279296528);
+emit_32(1131556897);
+emit_32(1091530717);
+emit_32(3279296528);
+emit_32(1131812880);
+emit_32(1093644321);
+emit_32(3279296528);
+emit_32(1132068864);
+emit_32(1095779536);
+emit_32(3279296528);
+emit_32(1081737216);
+emit_32(1086994839);
+emit_32(3279552512);
+emit_32(1090125824);
+emit_32(1088197052);
+emit_32(3279552512);
+emit_32(1094418484);
+emit_32(1091183439);
+emit_32(3279552512);
+emit_32(1098514432);
+emit_32(1091864132);
+emit_32(3279552512);
+emit_32(1100759066);
+emit_32(1091623966);
+emit_32(3279552512);
+emit_32(1102807040);
+emit_32(1091056907);
+emit_32(3279552512);
+emit_32(1104855066);
+emit_32(1090799639);
+emit_32(3279552512);
+emit_32(1106903040);
+emit_32(1090240475);
+emit_32(3279552512);
+emit_32(1108123661);
+emit_32(1087500672);
+emit_32(3279552512);
+emit_32(1109147648);
+emit_32(1087952231);
+emit_32(3279552512);
+emit_32(1110171661);
+emit_32(1091227636);
+emit_32(3279552512);
+emit_32(1111195648);
+emit_32(1092866173);
+emit_32(3279552512);
+emit_32(1112219661);
+emit_32(1094198074);
+emit_32(3279552512);
+emit_32(1113243648);
+emit_32(1095474505);
+emit_32(3279552512);
+emit_32(1114267661);
+emit_32(1097295462);
+emit_32(3279552512);
+emit_32(1115291648);
+emit_32(1098629985);
+emit_32(3279552512);
+emit_32(1116000263);
+emit_32(1098063859);
+emit_32(3279552512);
+emit_32(1116512256);
+emit_32(1098990748);
+emit_32(3279552512);
+emit_32(1117024263);
+emit_32(1099487406);
+emit_32(3279552512);
+emit_32(1117536256);
+emit_32(1099589956);
+emit_32(3279552512);
+emit_32(1118048263);
+emit_32(1100319660);
+emit_32(3279552512);
+emit_32(1118560256);
+emit_32(1100278032);
+emit_32(3279552512);
+emit_32(1119072263);
+emit_32(1099978821);
+emit_32(3279552512);
+emit_32(1119584256);
+emit_32(1100109840);
+emit_32(3279552512);
+emit_32(1120096263);
+emit_32(1100236089);
+emit_32(3279552512);
+emit_32(1120608322);
+emit_32(1100377385);
+emit_32(3279552512);
+emit_32(1121120289);
+emit_32(1102160173);
+emit_32(3279552512);
+emit_32(1121632256);
+emit_32(1103122924);
+emit_32(3279552512);
+emit_32(1122144223);
+emit_32(1103474721);
+emit_32(3279552512);
+emit_32(1122656322);
+emit_32(1103248805);
+emit_32(3279552512);
+emit_32(1123168289);
+emit_32(1102632819);
+emit_32(3279552512);
+emit_32(1123680256);
+emit_32(1102047399);
+emit_32(3279552512);
+emit_32(1124132848);
+emit_32(1101668391);
+emit_32(3279552512);
+emit_32(1124388897);
+emit_32(1100761740);
+emit_32(3279552512);
+emit_32(1124644880);
+emit_32(1100232943);
+emit_32(3279552512);
+emit_32(1124900864);
+emit_32(1098887306);
+emit_32(3279552512);
+emit_32(1125156848);
+emit_32(1097709860);
+emit_32(3279552512);
+emit_32(1125412897);
+emit_32(1096144126);
+emit_32(3279552512);
+emit_32(1125668880);
+emit_32(1095560803);
+emit_32(3279552512);
+emit_32(1125924864);
+emit_32(1096148740);
+emit_32(3279552512);
+emit_32(1126180848);
+emit_32(1095494428);
+emit_32(3279552512);
+emit_32(1126436897);
+emit_32(1093780950);
+emit_32(3279552512);
+emit_32(1126692880);
+emit_32(1092196667);
+emit_32(3279552512);
+emit_32(1126948864);
+emit_32(1091446736);
+emit_32(3279552512);
+emit_32(1127204848);
+emit_32(1090928352);
+emit_32(3279552512);
+emit_32(1127460897);
+emit_32(1090343508);
+emit_32(3279552512);
+emit_32(1127716880);
+emit_32(1089285495);
+emit_32(3279552512);
+emit_32(1127972864);
+emit_32(1088381665);
+emit_32(3279552512);
+emit_32(1128228848);
+emit_32(1088857949);
+emit_32(3279552512);
+emit_32(1128484897);
+emit_32(1086741545);
+emit_32(3279552512);
+emit_32(1128740880);
+emit_32(1082250913);
+emit_32(3279552512);
+emit_32(1128996864);
+emit_32(1083512120);
+emit_32(3279552512);
+emit_32(1129252848);
+emit_32(1081116417);
+emit_32(3279552512);
+emit_32(1129508897);
+emit_32(1082497517);
+emit_32(3279552512);
+emit_32(1129764880);
+emit_32(1082917200);
+emit_32(3279552512);
+emit_32(1130020864);
+emit_32(1083584702);
+emit_32(3279552512);
+emit_32(1130276848);
+emit_32(1086066325);
+emit_32(3279552512);
+emit_32(1130532897);
+emit_32(1086918125);
+emit_32(3279552512);
+emit_32(1130788880);
+emit_32(1088867533);
+emit_32(3279552512);
+emit_32(1131044864);
+emit_32(1089594720);
+emit_32(3279552512);
+emit_32(1131300848);
+emit_32(1090391575);
+emit_32(3279552512);
+emit_32(1131556897);
+emit_32(1092483358);
+emit_32(3279552512);
+emit_32(1131812880);
+emit_32(1094289405);
+emit_32(3279552512);
+emit_32(1132068864);
+emit_32(1096120323);
+emit_32(3279552512);
+emit_start(Landscape08Vtx)
+emit_32(3279552512);
+emit_32(1106761482);
+emit_32(3271616496);
+emit_32(3279552512);
+emit_32(1106982994);
+emit_32(3271163904);
+emit_32(3279296528);
+emit_32(1107171947);
+emit_32(3271616496);
+emit_32(3279296528);
+emit_32(1106990334);
+emit_32(3271163904);
+emit_32(3279040545);
+emit_32(1107445390);
+emit_32(3271616496);
+emit_32(3279040545);
+emit_32(1107378569);
+emit_32(3271163904);
+emit_32(3278784496);
+emit_32(1107535462);
+emit_32(3271616496);
+emit_32(3278784496);
+emit_32(1107553734);
+emit_32(3271163904);
+emit_32(3278528512);
+emit_32(1107451314);
+emit_32(3271616496);
+emit_32(3278528512);
+emit_32(1107478761);
+emit_32(3271163904);
+emit_32(3278272528);
+emit_32(1106913945);
+emit_32(3271616496);
+emit_32(3278272528);
+emit_32(1106962389);
+emit_32(3271163904);
+emit_32(3278016545);
+emit_32(1106520939);
+emit_32(3271616496);
+emit_32(3278016545);
+emit_32(1105953607);
+emit_32(3271163904);
+emit_32(3277760496);
+emit_32(1106354163);
+emit_32(3271616496);
+emit_32(3277760496);
+emit_32(1105995497);
+emit_32(3271163904);
+emit_32(3277504512);
+emit_32(1106487909);
+emit_32(3271616496);
+emit_32(3277504512);
+emit_32(1105958325);
+emit_32(3271163904);
+emit_32(3277248528);
+emit_32(1106611588);
+emit_32(3271616496);
+emit_32(3277248528);
+emit_32(1106168041);
+emit_32(3271163904);
+emit_32(3276992545);
+emit_32(1106511659);
+emit_32(3271616496);
+emit_32(3276992545);
+emit_32(1106461590);
+emit_32(3271163904);
+emit_32(3276736496);
+emit_32(1106390601);
+emit_32(3271616496);
+emit_32(3276736496);
+emit_32(1106400248);
+emit_32(3271163904);
+emit_32(3276480512);
+emit_32(1105922621);
+emit_32(3271616496);
+emit_32(3276480512);
+emit_32(1105590904);
+emit_32(3271163904);
+emit_32(3276224528);
+emit_32(1105564690);
+emit_32(3271616496);
+emit_32(3276224528);
+emit_32(1105294315);
+emit_32(3271163904);
+emit_32(3275968545);
+emit_32(1105186941);
+emit_32(3271616496);
+emit_32(3275968545);
+emit_32(1104823661);
+emit_32(3271163904);
+emit_32(3275712496);
+emit_32(1104211817);
+emit_32(3271616496);
+emit_32(3275712496);
+emit_32(1103994185);
+emit_32(3271163904);
+emit_32(3275456512);
+emit_32(1103031068);
+emit_32(3271616496);
+emit_32(3275456512);
+emit_32(1102728764);
+emit_32(3271163904);
+emit_32(3275200528);
+emit_32(1102027162);
+emit_32(3271616496);
+emit_32(3275200528);
+emit_32(1102137996);
+emit_32(3271163904);
+emit_32(3274944545);
+emit_32(1100836923);
+emit_32(3271616496);
+emit_32(3274944545);
+emit_32(1101349782);
+emit_32(3271163904);
+emit_32(3274688496);
+emit_32(1099615804);
+emit_32(3271616496);
+emit_32(3274688496);
+emit_32(1100398356);
+emit_32(3271163904);
+emit_32(3274432512);
+emit_32(1098688915);
+emit_32(3271616496);
+emit_32(3274432512);
+emit_32(1099098489);
+emit_32(3271163904);
+emit_32(3274176528);
+emit_32(1097203188);
+emit_32(3271616496);
+emit_32(3274176528);
+emit_32(1097575747);
+emit_32(3271163904);
+emit_32(3273920545);
+emit_32(1095228300);
+emit_32(3271616496);
+emit_32(3273920545);
+emit_32(1095747135);
+emit_32(3271163904);
+emit_32(3273664496);
+emit_32(1093720657);
+emit_32(3271616496);
+emit_32(3273664496);
+emit_32(1094011427);
+emit_32(3271163904);
+emit_32(3273408512);
+emit_32(1091725553);
+emit_32(3271616496);
+emit_32(3273408512);
+emit_32(1092817099);
+emit_32(3271163904);
+emit_32(3273152528);
+emit_32(1087752037);
+emit_32(3271616496);
+emit_32(3273152528);
+emit_32(1090935010);
+emit_32(3271163904);
+emit_32(3272896545);
+emit_32(1085425309);
+emit_32(3271616496);
+emit_32(3272896545);
+emit_32(1086813205);
+emit_32(3271163904);
+emit_32(3272640496);
+emit_32(1084703847);
+emit_32(3271616496);
+emit_32(3272640496);
+emit_32(1085254874);
+emit_32(3271163904);
+emit_32(3272384512);
+emit_32(1086064186);
+emit_32(3271616496);
+emit_32(3272384512);
+emit_32(1084610859);
+emit_32(3271163904);
+emit_32(3272128528);
+emit_32(1088120192);
+emit_32(3271616496);
+emit_32(3272128528);
+emit_32(1085403226);
+emit_32(3271163904);
+emit_32(3271872545);
+emit_32(1088130111);
+emit_32(3271616496);
+emit_32(3271872545);
+emit_32(1085803741);
+emit_32(3271163904);
+emit_32(3271616496);
+emit_32(1088638754);
+emit_32(3271616496);
+emit_32(3271616496);
+emit_32(1084901902);
+emit_32(3271163904);
+emit_32(3271163904);
+emit_32(1089569596);
+emit_32(3271616496);
+emit_32(3271163904);
+emit_32(1086653402);
+emit_32(3271163904);
+emit_32(3270651937);
+emit_32(1090542371);
+emit_32(3271616496);
+emit_32(3270651937);
+emit_32(1089541201);
+emit_32(3271163904);
+emit_32(3270139970);
+emit_32(1091253725);
+emit_32(3271616496);
+emit_32(3270139970);
+emit_32(1090924587);
+emit_32(3271163904);
+emit_32(3269627871);
+emit_32(1091983785);
+emit_32(3271616496);
+emit_32(3269627871);
+emit_32(1091193002);
+emit_32(3271163904);
+emit_32(3269115904);
+emit_32(1091362609);
+emit_32(3271616496);
+emit_32(3269115904);
+emit_32(1091042709);
+emit_32(3271163904);
+emit_32(3268603937);
+emit_32(1092022341);
+emit_32(3271616496);
+emit_32(3268603937);
+emit_32(1091824318);
+emit_32(3271163904);
+emit_32(3268091970);
+emit_32(1093526356);
+emit_32(3271616496);
+emit_32(3268091970);
+emit_32(1094207721);
+emit_32(3271163904);
+emit_32(3267579911);
+emit_32(1095594567);
+emit_32(3271616496);
+emit_32(3267579911);
+emit_32(1096193199);
+emit_32(3271163904);
+emit_32(3267067904);
+emit_32(1097671796);
+emit_32(3271616496);
+emit_32(3267067904);
+emit_32(1098383045);
+emit_32(3271163904);
+emit_32(3266555911);
+emit_32(1099231658);
+emit_32(3271616496);
+emit_32(3266555911);
+emit_32(1099615542);
+emit_32(3271163904);
+emit_32(3266043904);
+emit_32(1101135662);
+emit_32(3271616496);
+emit_32(3266043904);
+emit_32(1101433038);
+emit_32(3271163904);
+emit_32(3265531911);
+emit_32(1102943093);
+emit_32(3271616496);
+emit_32(3265531911);
+emit_32(1103595045);
+emit_32(3271163904);
+emit_32(3265019904);
+emit_32(1104383889);
+emit_32(3271616496);
+emit_32(3265019904);
+emit_32(1105129950);
+emit_32(3271163904);
+emit_32(3264507911);
+emit_32(1105613344);
+emit_32(3271616496);
+emit_32(3264507911);
+emit_32(1106326061);
+emit_32(3271163904);
+emit_32(3263995904);
+emit_32(1106984409);
+emit_32(3271616496);
+emit_32(3263995904);
+emit_32(1107411652);
+emit_32(3271163904);
+emit_32(3263483911);
+emit_32(1107639822);
+emit_32(3271616496);
+emit_32(3263483911);
+emit_32(1107887050);
+emit_32(3271163904);
+emit_32(3262775296);
+emit_32(1108306507);
+emit_32(3271616496);
+emit_32(3262775296);
+emit_32(1108492236);
+emit_32(3271163904);
+emit_32(3261751309);
+emit_32(1108863825);
+emit_32(3271616496);
+emit_32(3261751309);
+emit_32(1109105757);
+emit_32(3271163904);
+emit_32(3260727296);
+emit_32(1109236279);
+emit_32(3271616496);
+emit_32(3260727296);
+emit_32(1109424656);
+emit_32(3271163904);
+emit_32(3259703309);
+emit_32(1109566004);
+emit_32(3271616496);
+emit_32(3259703309);
+emit_32(1109901784);
+emit_32(3271163904);
+emit_32(3258679296);
+emit_32(1109626611);
+emit_32(3271616496);
+emit_32(3258679296);
+emit_32(1109885321);
+emit_32(3271163904);
+emit_32(3257655309);
+emit_32(1109381454);
+emit_32(3271616496);
+emit_32(3257655309);
+emit_32(1109822564);
+emit_32(3271163904);
+emit_32(3256631296);
+emit_32(1109416817);
+emit_32(3271616496);
+emit_32(3256631296);
+emit_32(1109824163);
+emit_32(3271163904);
+emit_32(3255607309);
+emit_32(1109214704);
+emit_32(3271616496);
+emit_32(3255607309);
+emit_32(1109730315);
+emit_32(3271163904);
+emit_32(3254386688);
+emit_32(1109356052);
+emit_32(3271616496);
+emit_32(3254386688);
+emit_32(1109803113);
+emit_32(3271163904);
+emit_32(3252338714);
+emit_32(1109796533);
+emit_32(3271616496);
+emit_32(3252338714);
+emit_32(1109995186);
+emit_32(3271163904);
+emit_32(3250290688);
+emit_32(1110456690);
+emit_32(3271616496);
+emit_32(3250290688);
+emit_32(1110434618);
+emit_32(3271163904);
+emit_32(3248242714);
+emit_32(1110816797);
+emit_32(3271616496);
+emit_32(3248242714);
+emit_32(1111024783);
+emit_32(3271163904);
+emit_32(3245998080);
+emit_32(1111345699);
+emit_32(3271616496);
+emit_32(3245998080);
+emit_32(1111309785);
+emit_32(3271163904);
+emit_32(3241902132);
+emit_32(1111491032);
+emit_32(3271616496);
+emit_32(3241902132);
+emit_32(1111384208);
+emit_32(3271163904);
+emit_32(3237609472);
+emit_32(1111509356);
+emit_32(3271616496);
+emit_32(3237609472);
+emit_32(1111783952);
+emit_32(3271163904);
+emit_32(3229220864);
+emit_32(1111680693);
+emit_32(3271616496);
+emit_32(3229220864);
+emit_32(1111918930);
+emit_32(3271163904);
+emit_32(0);
+emit_32(1111962419);
+emit_32(3271616496);
+emit_32(0);
+emit_32(1112106100);
+emit_32(3271163904);
+emit_32(1081737216);
+emit_32(1112138475);
+emit_32(3271616496);
+emit_32(1081737216);
+emit_32(1112094042);
+emit_32(3271163904);
+emit_32(3279552512);
+emit_32(1106831999);
+emit_32(3271872545);
+emit_32(3279296528);
+emit_32(1107221283);
+emit_32(3271872545);
+emit_32(3279040545);
+emit_32(1107491448);
+emit_32(3271872545);
+emit_32(3278784496);
+emit_32(1107603856);
+emit_32(3271872545);
+emit_32(3278528512);
+emit_32(1107347427);
+emit_32(3271872545);
+emit_32(3278272528);
+emit_32(1107241678);
+emit_32(3271872545);
+emit_32(3278016545);
+emit_32(1107331016);
+emit_32(3271872545);
+emit_32(3277760496);
+emit_32(1107339012);
+emit_32(3271872545);
+emit_32(3277504512);
+emit_32(1106970935);
+emit_32(3271872545);
+emit_32(3277248528);
+emit_32(1106766096);
+emit_32(3271872545);
+emit_32(3276992545);
+emit_32(1106540075);
+emit_32(3271872545);
+emit_32(3276736496);
+emit_32(1106320661);
+emit_32(3271872545);
+emit_32(3276480512);
+emit_32(1106168093);
+emit_32(3271872545);
+emit_32(3276224528);
+emit_32(1105508591);
+emit_32(3271872545);
+emit_32(3275968545);
+emit_32(1104919711);
+emit_32(3271872545);
+emit_32(3275712496);
+emit_32(1103890062);
+emit_32(3271872545);
+emit_32(3275456512);
+emit_32(1102724412);
+emit_32(3271872545);
+emit_32(3275200528);
+emit_32(1101678300);
+emit_32(3271872545);
+emit_32(3274944545);
+emit_32(1100687815);
+emit_32(3271872545);
+emit_32(3274688496);
+emit_32(1100014525);
+emit_32(3271872545);
+emit_32(3274432512);
+emit_32(1099108503);
+emit_32(3271872545);
+emit_32(3274176528);
+emit_32(1097338769);
+emit_32(3271872545);
+emit_32(3273920545);
+emit_32(1095563634);
+emit_32(3271872545);
+emit_32(3273664496);
+emit_32(1093020942);
+emit_32(3271872545);
+emit_32(3273408512);
+emit_32(1090382432);
+emit_32(3271872545);
+emit_32(3273152528);
+emit_32(1088955592);
+emit_32(3271872545);
+emit_32(3272896545);
+emit_32(1086743621);
+emit_32(3271872545);
+emit_32(3272640496);
+emit_32(1086106171);
+emit_32(3271872545);
+emit_32(3272384512);
+emit_32(1087622538);
+emit_32(3271872545);
+emit_32(3272128528);
+emit_32(1089541390);
+emit_32(3271872545);
+emit_32(3271872545);
+emit_32(1090739493);
+emit_32(3271872545);
+emit_32(3271616496);
+emit_32(1091296192);
+emit_32(3271872545);
+emit_32(3271163904);
+emit_32(1091536652);
+emit_32(3271872545);
+emit_32(3270651937);
+emit_32(1092000751);
+emit_32(3271872545);
+emit_32(3270139970);
+emit_32(1092665265);
+emit_32(3271872545);
+emit_32(3269627871);
+emit_32(1092064683);
+emit_32(3271872545);
+emit_32(3269115904);
+emit_32(1092005921);
+emit_32(3271872545);
+emit_32(3268603937);
+emit_32(1092949220);
+emit_32(3271872545);
+emit_32(3268091970);
+emit_32(1093979446);
+emit_32(3271872545);
+emit_32(3267579911);
+emit_32(1095270977);
+emit_32(3271872545);
+emit_32(3267067904);
+emit_32(1097543031);
+emit_32(3271872545);
+emit_32(3266555911);
+emit_32(1099248173);
+emit_32(3271872545);
+emit_32(3266043904);
+emit_32(1100580441);
+emit_32(3271872545);
+emit_32(3265531911);
+emit_32(1102805677);
+emit_32(3271872545);
+emit_32(3265019904);
+emit_32(1104235935);
+emit_32(3271872545);
+emit_32(3264507911);
+emit_32(1105586553);
+emit_32(3271872545);
+emit_32(3263995904);
+emit_32(1106838605);
+emit_32(3271872545);
+emit_32(3263483911);
+emit_32(1107360534);
+emit_32(3271872545);
+emit_32(3262775296);
+emit_32(1107828487);
+emit_32(3271872545);
+emit_32(3261751309);
+emit_32(1108377181);
+emit_32(3271872545);
+emit_32(3260727296);
+emit_32(1108949179);
+emit_32(3271872545);
+emit_32(3259703309);
+emit_32(1109077157);
+emit_32(3271872545);
+emit_32(3258679296);
+emit_32(1109165841);
+emit_32(3271872545);
+emit_32(3257655309);
+emit_32(1109169589);
+emit_32(3271872545);
+emit_32(3256631296);
+emit_32(1108993167);
+emit_32(3271872545);
+emit_32(3255607309);
+emit_32(1108949362);
+emit_32(3271872545);
+emit_32(3254386688);
+emit_32(1109262310);
+emit_32(3271872545);
+emit_32(3252338714);
+emit_32(1109890250);
+emit_32(3271872545);
+emit_32(3250290688);
+emit_32(1110249177);
+emit_32(3271872545);
+emit_32(3248242714);
+emit_32(1110644779);
+emit_32(3271872545);
+emit_32(3245998080);
+emit_32(1111031572);
+emit_32(3271872545);
+emit_32(3241902132);
+emit_32(1111347089);
+emit_32(3271872545);
+emit_32(3237609472);
+emit_32(1111265300);
+emit_32(3271872545);
+emit_32(3229220864);
+emit_32(1111507023);
+emit_32(3271872545);
+emit_32(0);
+emit_32(1111638698);
+emit_32(3271872545);
+emit_32(1081737216);
+emit_32(1111780334);
+emit_32(3271872545);
+emit_32(3279552512);
+emit_32(1106638851);
+emit_32(3272128528);
+emit_32(3279296528);
+emit_32(1106692434);
+emit_32(3272128528);
+emit_32(3279040545);
+emit_32(1107345539);
+emit_32(3272128528);
+emit_32(3278784496);
+emit_32(1107597459);
+emit_32(3272128528);
+emit_32(3278528512);
+emit_32(1107379225);
+emit_32(3272128528);
+emit_32(3278272528);
+emit_32(1107456950);
+emit_32(3272128528);
+emit_32(3278016545);
+emit_32(1107643492);
+emit_32(3272128528);
+emit_32(3277760496);
+emit_32(1107464788);
+emit_32(3272128528);
+emit_32(3277504512);
+emit_32(1107237641);
+emit_32(3272128528);
+emit_32(3277248528);
+emit_32(1107040666);
+emit_32(3272128528);
+emit_32(3276992545);
+emit_32(1106355945);
+emit_32(3272128528);
+emit_32(3276736496);
+emit_32(1106248938);
+emit_32(3272128528);
+emit_32(3276480512);
+emit_32(1106022184);
+emit_32(3272128528);
+emit_32(3276224528);
+emit_32(1105264378);
+emit_32(3272128528);
+emit_32(3275968545);
+emit_32(1104551084);
+emit_32(3272128528);
+emit_32(3275712496);
+emit_32(1103522693);
+emit_32(3272128528);
+emit_32(3275456512);
+emit_32(1102465624);
+emit_32(3272128528);
+emit_32(3275200528);
+emit_32(1101580416);
+emit_32(3272128528);
+emit_32(3274944545);
+emit_32(1100781558);
+emit_32(3272128528);
+emit_32(3274688496);
+emit_32(1099917584);
+emit_32(3272128528);
+emit_32(3274432512);
+emit_32(1098955253);
+emit_32(3272128528);
+emit_32(3274176528);
+emit_32(1097496474);
+emit_32(3272128528);
+emit_32(3273920545);
+emit_32(1095188768);
+emit_32(3272128528);
+emit_32(3273664496);
+emit_32(1092550792);
+emit_32(3272128528);
+emit_32(3273408512);
+emit_32(1090256602);
+emit_32(3272128528);
+emit_32(3273152528);
+emit_32(1088560866);
+emit_32(3272128528);
+emit_32(3272896545);
+emit_32(1086795610);
+emit_32(3272128528);
+emit_32(3272640496);
+emit_32(1087160745);
+emit_32(3272128528);
+emit_32(3272384512);
+emit_32(1088465991);
+emit_32(3272128528);
+emit_32(3272128528);
+emit_32(1090214701);
+emit_32(3272128528);
+emit_32(3271872545);
+emit_32(1091916110);
+emit_32(3272128528);
+emit_32(3271616496);
+emit_32(1093188714);
+emit_32(3272128528);
+emit_32(3271163904);
+emit_32(1092821503);
+emit_32(3272128528);
+emit_32(3270651937);
+emit_32(1092462943);
+emit_32(3272128528);
+emit_32(3270139970);
+emit_32(1092871730);
+emit_32(3272128528);
+emit_32(3269627871);
+emit_32(1092567339);
+emit_32(3272128528);
+emit_32(3269115904);
+emit_32(1091624103);
+emit_32(3272128528);
+emit_32(3268603937);
+emit_32(1092971030);
+emit_32(3272128528);
+emit_32(3268091970);
+emit_32(1093964556);
+emit_32(3272128528);
+emit_32(3267579911);
+emit_32(1095084959);
+emit_32(3272128528);
+emit_32(3267067904);
+emit_32(1096871523);
+emit_32(3272128528);
+emit_32(3266555911);
+emit_32(1098883740);
+emit_32(3272128528);
+emit_32(3266043904);
+emit_32(1100410939);
+emit_32(3272128528);
+emit_32(3265531911);
+emit_32(1102172809);
+emit_32(3272128528);
+emit_32(3265019904);
+emit_32(1103650777);
+emit_32(3272128528);
+emit_32(3264507911);
+emit_32(1105013087);
+emit_32(3272128528);
+emit_32(3263995904);
+emit_32(1105804657);
+emit_32(3272128528);
+emit_32(3263483911);
+emit_32(1106638642);
+emit_32(3272128528);
+emit_32(3262775296);
+emit_32(1107472469);
+emit_32(3272128528);
+emit_32(3261751309);
+emit_32(1107957436);
+emit_32(3272128528);
+emit_32(3260727296);
+emit_32(1108447173);
+emit_32(3272128528);
+emit_32(3259703309);
+emit_32(1108395845);
+emit_32(3272128528);
+emit_32(3258679296);
+emit_32(1108480990);
+emit_32(3272128528);
+emit_32(3257655309);
+emit_32(1108416004);
+emit_32(3272128528);
+emit_32(3256631296);
+emit_32(1108454539);
+emit_32(3272128528);
+emit_32(3255607309);
+emit_32(1108650702);
+emit_32(3272128528);
+emit_32(3254386688);
+emit_32(1108972221);
+emit_32(3272128528);
+emit_32(3252338714);
+emit_32(1109614028);
+emit_32(3272128528);
+emit_32(3250290688);
+emit_32(1110107567);
+emit_32(3272128528);
+emit_32(3248242714);
+emit_32(1110378204);
+emit_32(3272128528);
+emit_32(3245998080);
+emit_32(1110643966);
+emit_32(3272128528);
+emit_32(3241902132);
+emit_32(1110789770);
+emit_32(3272128528);
+emit_32(3237609472);
+emit_32(1111079780);
+emit_32(3272128528);
+emit_32(3229220864);
+emit_32(1111310572);
+emit_32(3272128528);
+emit_32(0);
+emit_32(1111599245);
+emit_32(3272128528);
+emit_32(1081737216);
+emit_32(1111464346);
+emit_32(3272128528);
+emit_32(3279552512);
+emit_32(1105805967);
+emit_32(3272384512);
+emit_32(3279296528);
+emit_32(1106518894);
+emit_32(3272384512);
+emit_32(3279040545);
+emit_32(1107073958);
+emit_32(3272384512);
+emit_32(3278784496);
+emit_32(1107138550);
+emit_32(3272384512);
+emit_32(3278528512);
+emit_32(1107533837);
+emit_32(3272384512);
+emit_32(3278272528);
+emit_32(1107630542);
+emit_32(3272384512);
+emit_32(3278016545);
+emit_32(1107506050);
+emit_32(3272384512);
+emit_32(3277760496);
+emit_32(1107593265);
+emit_32(3272384512);
+emit_32(3277504512);
+emit_32(1107310490);
+emit_32(3272384512);
+emit_32(3277248528);
+emit_32(1106912058);
+emit_32(3272384512);
+emit_32(3276992545);
+emit_32(1106372356);
+emit_32(3272384512);
+emit_32(3276736496);
+emit_32(1106038489);
+emit_32(3272384512);
+emit_32(3276480512);
+emit_32(1105442531);
+emit_32(3272384512);
+emit_32(3276224528);
+emit_32(1104607235);
+emit_32(3272384512);
+emit_32(3275968545);
+emit_32(1103592686);
+emit_32(3272384512);
+emit_32(3275712496);
+emit_32(1102531265);
+emit_32(3272384512);
+emit_32(3275456512);
+emit_32(1101975100);
+emit_32(3272384512);
+emit_32(3275200528);
+emit_32(1101237322);
+emit_32(3272384512);
+emit_32(3274944545);
+emit_32(1100189794);
+emit_32(3272384512);
+emit_32(3274688496);
+emit_32(1099519335);
+emit_32(3272384512);
+emit_32(3274432512);
+emit_32(1098076861);
+emit_32(3272384512);
+emit_32(3274176528);
+emit_32(1096265132);
+emit_32(3272384512);
+emit_32(3273920545);
+emit_32(1094474583);
+emit_32(3272384512);
+emit_32(3273664496);
+emit_32(1091850260);
+emit_32(3272384512);
+emit_32(3273408512);
+emit_32(1089607366);
+emit_32(3272384512);
+emit_32(3273152528);
+emit_32(1087214767);
+emit_32(3272384512);
+emit_32(3272896545);
+emit_32(1087594331);
+emit_32(3272384512);
+emit_32(3272640496);
+emit_32(1087250901);
+emit_32(3272384512);
+emit_32(3272384512);
+emit_32(1087478526);
+emit_32(3272384512);
+emit_32(3272128528);
+emit_32(1089739004);
+emit_32(3272384512);
+emit_32(3271872545);
+emit_32(1091784944);
+emit_32(3272384512);
+emit_32(3271616496);
+emit_32(1093147086);
+emit_32(3272384512);
+emit_32(3271163904);
+emit_32(1093336249);
+emit_32(3272384512);
+emit_32(3270651937);
+emit_32(1091955799);
+emit_32(3272384512);
+emit_32(3270139970);
+emit_32(1092128436);
+emit_32(3272384512);
+emit_32(3269627871);
+emit_32(1091415572);
+emit_32(3272384512);
+emit_32(3269115904);
+emit_32(1091890787);
+emit_32(3272384512);
+emit_32(3268603937);
+emit_32(1092277691);
+emit_32(3272384512);
+emit_32(3268091970);
+emit_32(1093164912);
+emit_32(3272384512);
+emit_32(3267579911);
+emit_32(1094506355);
+emit_32(3272384512);
+emit_32(3267067904);
+emit_32(1095937556);
+emit_32(3272384512);
+emit_32(3266555911);
+emit_32(1098124362);
+emit_32(3272384512);
+emit_32(3266043904);
+emit_32(1100012533);
+emit_32(3272384512);
+emit_32(3265531911);
+emit_32(1101424440);
+emit_32(3272384512);
+emit_32(3265019904);
+emit_32(1102978797);
+emit_32(3272384512);
+emit_32(3264507911);
+emit_32(1103996754);
+emit_32(3272384512);
+emit_32(3263995904);
+emit_32(1104943566);
+emit_32(3272384512);
+emit_32(3263483911);
+emit_32(1106152836);
+emit_32(3272384512);
+emit_32(3262775296);
+emit_32(1107158211);
+emit_32(3272384512);
+emit_32(3261751309);
+emit_32(1107529328);
+emit_32(3272384512);
+emit_32(3260727296);
+emit_32(1107846470);
+emit_32(3272384512);
+emit_32(3259703309);
+emit_32(1107994739);
+emit_32(3272384512);
+emit_32(3258679296);
+emit_32(1107829064);
+emit_32(3272384512);
+emit_32(3257655309);
+emit_32(1107762165);
+emit_32(3272384512);
+emit_32(3256631296);
+emit_32(1107865711);
+emit_32(3272384512);
+emit_32(3255607309);
+emit_32(1108367403);
+emit_32(3272384512);
+emit_32(3254386688);
+emit_32(1109093568);
+emit_32(3272384512);
+emit_32(3252338714);
+emit_32(1109542411);
+emit_32(3272384512);
+emit_32(3250290688);
+emit_32(1110096793);
+emit_32(3272384512);
+emit_32(3248242714);
+emit_32(1110312223);
+emit_32(3272384512);
+emit_32(3245998080);
+emit_32(1110368505);
+emit_32(3272384512);
+emit_32(3241902132);
+emit_32(1110406752);
+emit_32(3272384512);
+emit_32(3237609472);
+emit_32(1110868545);
+emit_32(3272384512);
+emit_32(3229220864);
+emit_32(1111168464);
+emit_32(3272384512);
+emit_32(0);
+emit_32(1111261315);
+emit_32(3272384512);
+emit_32(1081737216);
+emit_32(1111298697);
+emit_32(3272384512);
+emit_32(3279552512);
+emit_32(1105376733);
+emit_32(3272640496);
+emit_32(3279296528);
+emit_32(1106021659);
+emit_32(3272640496);
+emit_32(3279040545);
+emit_32(1106269805);
+emit_32(3272640496);
+emit_32(3278784496);
+emit_32(1106578978);
+emit_32(3272640496);
+emit_32(3278528512);
+emit_32(1107451288);
+emit_32(3272640496);
+emit_32(3278272528);
+emit_32(1107638616);
+emit_32(3272640496);
+emit_32(3278016545);
+emit_32(1107539132);
+emit_32(3272640496);
+emit_32(3277760496);
+emit_32(1107436844);
+emit_32(3272640496);
+emit_32(3277504512);
+emit_32(1107235701);
+emit_32(3272640496);
+emit_32(3277248528);
+emit_32(1107161462);
+emit_32(3272640496);
+emit_32(3276992545);
+emit_32(1106065280);
+emit_32(3272640496);
+emit_32(3276736496);
+emit_32(1105372171);
+emit_32(3272640496);
+emit_32(3276480512);
+emit_32(1104578662);
+emit_32(3272640496);
+emit_32(3276224528);
+emit_32(1103665876);
+emit_32(3272640496);
+emit_32(3275968545);
+emit_32(1102629464);
+emit_32(3272640496);
+emit_32(3275712496);
+emit_32(1101635885);
+emit_32(3272640496);
+emit_32(3275456512);
+emit_32(1101146882);
+emit_32(3272640496);
+emit_32(3275200528);
+emit_32(1100175848);
+emit_32(3272640496);
+emit_32(3274944545);
+emit_32(1099030961);
+emit_32(3272640496);
+emit_32(3274688496);
+emit_32(1097580151);
+emit_32(3272640496);
+emit_32(3274432512);
+emit_32(1096760374);
+emit_32(3272640496);
+emit_32(3274176528);
+emit_32(1095282721);
+emit_32(3272640496);
+emit_32(3273920545);
+emit_32(1093280465);
+emit_32(3272640496);
+emit_32(3273664496);
+emit_32(1091084065);
+emit_32(3272640496);
+emit_32(3273408512);
+emit_32(1089099247);
+emit_32(3272640496);
+emit_32(3273152528);
+emit_32(1087789576);
+emit_32(3272640496);
+emit_32(3272896545);
+emit_32(1085020140);
+emit_32(3272640496);
+emit_32(3272640496);
+emit_32(1085329784);
+emit_32(3272640496);
+emit_32(3272384512);
+emit_32(1086214027);
+emit_32(3272640496);
+emit_32(3272128528);
+emit_32(1088756363);
+emit_32(3272640496);
+emit_32(3271872545);
+emit_32(1091099217);
+emit_32(3272640496);
+emit_32(3271616496);
+emit_32(1092281151);
+emit_32(3272640496);
+emit_32(3271163904);
+emit_32(1092410891);
+emit_32(3272640496);
+emit_32(3270651937);
+emit_32(1092270707);
+emit_32(3272640496);
+emit_32(3270139970);
+emit_32(1092436770);
+emit_32(3272640496);
+emit_32(3269627871);
+emit_32(1091996431);
+emit_32(3272640496);
+emit_32(3269115904);
+emit_32(1092130995);
+emit_32(3272640496);
+emit_32(3268603937);
+emit_32(1092506794);
+emit_32(3272640496);
+emit_32(3268091970);
+emit_32(1093085115);
+emit_32(3272640496);
+emit_32(3267579911);
+emit_32(1094064590);
+emit_32(3272640496);
+emit_32(3267067904);
+emit_32(1096463103);
+emit_32(3272640496);
+emit_32(3266555911);
+emit_32(1098582275);
+emit_32(3272640496);
+emit_32(3266043904);
+emit_32(1099782894);
+emit_32(3272640496);
+emit_32(3265531911);
+emit_32(1101033216);
+emit_32(3272640496);
+emit_32(3265019904);
+emit_32(1102204423);
+emit_32(3272640496);
+emit_32(3264507911);
+emit_32(1103112962);
+emit_32(3272640496);
+emit_32(3263995904);
+emit_32(1104476688);
+emit_32(3272640496);
+emit_32(3263483911);
+emit_32(1105600027);
+emit_32(3272640496);
+emit_32(3262775296);
+emit_32(1106773279);
+emit_32(3272640496);
+emit_32(3261751309);
+emit_32(1107254942);
+emit_32(3272640496);
+emit_32(3260727296);
+emit_32(1107325721);
+emit_32(3272640496);
+emit_32(3259703309);
+emit_32(1107680454);
+emit_32(3272640496);
+emit_32(3258679296);
+emit_32(1107700272);
+emit_32(3272640496);
+emit_32(3257655309);
+emit_32(1107704204);
+emit_32(3272640496);
+emit_32(3256631296);
+emit_32(1107913946);
+emit_32(3272640496);
+emit_32(3255607309);
+emit_32(1108409896);
+emit_32(3272640496);
+emit_32(3254386688);
+emit_32(1108866499);
+emit_32(3272640496);
+emit_32(3252338714);
+emit_32(1109485866);
+emit_32(3272640496);
+emit_32(3250290688);
+emit_32(1110027901);
+emit_32(3272640496);
+emit_32(3248242714);
+emit_32(1110441984);
+emit_32(3272640496);
+emit_32(3245998080);
+emit_32(1110489956);
+emit_32(3272640496);
+emit_32(3241902132);
+emit_32(1110446834);
+emit_32(3272640496);
+emit_32(3237609472);
+emit_32(1110725100);
+emit_32(3272640496);
+emit_32(3229220864);
+emit_32(1110855752);
+emit_32(3272640496);
+emit_32(0);
+emit_32(1110654897);
+emit_32(3272640496);
+emit_32(1081737216);
+emit_32(1110766990);
+emit_32(3272640496);
+emit_32(3279552512);
+emit_32(1104945611);
+emit_32(3272896545);
+emit_32(3279296528);
+emit_32(1105445886);
+emit_32(3272896545);
+emit_32(3279040545);
+emit_32(1105654868);
+emit_32(3272896545);
+emit_32(3278784496);
+emit_32(1106191896);
+emit_32(3272896545);
+emit_32(3278528512);
+emit_32(1106771024);
+emit_32(3272896545);
+emit_32(3278272528);
+emit_32(1107252111);
+emit_32(3272896545);
+emit_32(3278016545);
+emit_32(1107581652);
+emit_32(3272896545);
+emit_32(3277760496);
+emit_32(1107333218);
+emit_32(3272896545);
+emit_32(3277504512);
+emit_32(1106792310);
+emit_32(3272896545);
+emit_32(3277248528);
+emit_32(1106541229);
+emit_32(3272896545);
+emit_32(3276992545);
+emit_32(1105789924);
+emit_32(3272896545);
+emit_32(3276736496);
+emit_32(1104474486);
+emit_32(3272896545);
+emit_32(3276480512);
+emit_32(1103776134);
+emit_32(3272896545);
+emit_32(3276224528);
+emit_32(1102639635);
+emit_32(3272896545);
+emit_32(3275968545);
+emit_32(1101601964);
+emit_32(3272896545);
+emit_32(3275712496);
+emit_32(1100849820);
+emit_32(3272896545);
+emit_32(3275456512);
+emit_32(1100186229);
+emit_32(3272896545);
+emit_32(3275200528);
+emit_32(1099765540);
+emit_32(3272896545);
+emit_32(3274944545);
+emit_32(1098773850);
+emit_32(3272896545);
+emit_32(3274688496);
+emit_32(1097286550);
+emit_32(3272896545);
+emit_32(3274432512);
+emit_32(1095977088);
+emit_32(3272896545);
+emit_32(3274176528);
+emit_32(1094472381);
+emit_32(3272896545);
+emit_32(3273920545);
+emit_32(1093136810);
+emit_32(3272896545);
+emit_32(3273664496);
+emit_32(1090824857);
+emit_32(3272896545);
+emit_32(3273408512);
+emit_32(1088942045);
+emit_32(3272896545);
+emit_32(3273152528);
+emit_32(1087994509);
+emit_32(3272896545);
+emit_32(3272896545);
+emit_32(1085242018);
+emit_32(3272896545);
+emit_32(3272640496);
+emit_32(1082368710);
+emit_32(3272896545);
+emit_32(3272384512);
+emit_32(1083511616);
+emit_32(3272896545);
+emit_32(3272128528);
+emit_32(1086745865);
+emit_32(3272896545);
+emit_32(3271872545);
+emit_32(1089841387);
+emit_32(3272896545);
+emit_32(3271616496);
+emit_32(1091645420);
+emit_32(3272896545);
+emit_32(3271163904);
+emit_32(1091360837);
+emit_32(3272896545);
+emit_32(3270651937);
+emit_32(1091891626);
+emit_32(3272896545);
+emit_32(3270139970);
+emit_32(1091846705);
+emit_32(3272896545);
+emit_32(3269627871);
+emit_32(1092497818);
+emit_32(3272896545);
+emit_32(3269115904);
+emit_32(1091767087);
+emit_32(3272896545);
+emit_32(3268603937);
+emit_32(1092058643);
+emit_32(3272896545);
+emit_32(3268091970);
+emit_32(1092782286);
+emit_32(3272896545);
+emit_32(3267579911);
+emit_32(1093942536);
+emit_32(3272896545);
+emit_32(3267067904);
+emit_32(1096261042);
+emit_32(3272896545);
+emit_32(3266555911);
+emit_32(1098731278);
+emit_32(3272896545);
+emit_32(3266043904);
+emit_32(1099753639);
+emit_32(3272896545);
+emit_32(3265531911);
+emit_32(1100349178);
+emit_32(3272896545);
+emit_32(3265019904);
+emit_32(1101287129);
+emit_32(3272896545);
+emit_32(3264507911);
+emit_32(1102874726);
+emit_32(3272896545);
+emit_32(3263995904);
+emit_32(1104299216);
+emit_32(3272896545);
+emit_32(3263483911);
+emit_32(1105581310);
+emit_32(3272896545);
+emit_32(3262775296);
+emit_32(1106449741);
+emit_32(3272896545);
+emit_32(3261751309);
+emit_32(1106767197);
+emit_32(3272896545);
+emit_32(3260727296);
+emit_32(1106996783);
+emit_32(3272896545);
+emit_32(3259703309);
+emit_32(1107252216);
+emit_32(3272896545);
+emit_32(3258679296);
+emit_32(1107420643);
+emit_32(3272896545);
+emit_32(3257655309);
+emit_32(1107319351);
+emit_32(3272896545);
+emit_32(3256631296);
+emit_32(1107826600);
+emit_32(3272896545);
+emit_32(3255607309);
+emit_32(1108251299);
+emit_32(3272896545);
+emit_32(3254386688);
+emit_32(1108771550);
+emit_32(3272896545);
+emit_32(3252338714);
+emit_32(1109302182);
+emit_32(3272896545);
+emit_32(3250290688);
+emit_32(1110005147);
+emit_32(3272896545);
+emit_32(3248242714);
+emit_32(1110267291);
+emit_32(3272896545);
+emit_32(3245998080);
+emit_32(1110424394);
+emit_32(3272896545);
+emit_32(3241902132);
+emit_32(1110409006);
+emit_32(3272896545);
+emit_32(3237609472);
+emit_32(1110530064);
+emit_32(3272896545);
+emit_32(3229220864);
+emit_32(1110513759);
+emit_32(3272896545);
+emit_32(0);
+emit_32(1110086228);
+emit_32(3272896545);
+emit_32(1081737216);
+emit_32(1110289075);
+emit_32(3272896545);
+emit_32(3279552512);
+emit_32(1105076106);
+emit_32(3273152528);
+emit_32(3279296528);
+emit_32(1105334790);
+emit_32(3273152528);
+emit_32(3279040545);
+emit_32(1105218241);
+emit_32(3273152528);
+emit_32(3278784496);
+emit_32(1105960947);
+emit_32(3273152528);
+emit_32(3278528512);
+emit_32(1107217980);
+emit_32(3273152528);
+emit_32(3278272528);
+emit_32(1107295574);
+emit_32(3273152528);
+emit_32(3278016545);
+emit_32(1107365331);
+emit_32(3273152528);
+emit_32(3277760496);
+emit_32(1107416134);
+emit_32(3273152528);
+emit_32(3277504512);
+emit_32(1106446438);
+emit_32(3273152528);
+emit_32(3277248528);
+emit_32(1105782794);
+emit_32(3273152528);
+emit_32(3276992545);
+emit_32(1105013821);
+emit_32(3273152528);
+emit_32(3276736496);
+emit_32(1103915857);
+emit_32(3273152528);
+emit_32(3276480512);
+emit_32(1103026979);
+emit_32(3273152528);
+emit_32(3276224528);
+emit_32(1101908673);
+emit_32(3273152528);
+emit_32(3275968545);
+emit_32(1100983409);
+emit_32(3273152528);
+emit_32(3275712496);
+emit_32(1100304771);
+emit_32(3273152528);
+emit_32(3275456512);
+emit_32(1099637090);
+emit_32(3273152528);
+emit_32(3275200528);
+emit_32(1099595147);
+emit_32(3273152528);
+emit_32(3274944545);
+emit_32(1098779302);
+emit_32(3273152528);
+emit_32(3274688496);
+emit_32(1096597425);
+emit_32(3273152528);
+emit_32(3274432512);
+emit_32(1094709255);
+emit_32(3273152528);
+emit_32(3274176528);
+emit_32(1093592941);
+emit_32(3273152528);
+emit_32(3273920545);
+emit_32(1091822808);
+emit_32(3273152528);
+emit_32(3273664496);
+emit_32(1090429890);
+emit_32(3273152528);
+emit_32(3273408512);
+emit_32(1088328040);
+emit_32(3273152528);
+emit_32(3273152528);
+emit_32(1087421546);
+emit_32(3273152528);
+emit_32(3272896545);
+emit_32(1085534382);
+emit_32(3273152528);
+emit_32(3272640496);
+emit_32(1082800241);
+emit_32(3273152528);
+emit_32(3272384512);
+emit_32(1078440703);
+emit_32(3273152528);
+emit_32(3272128528);
+emit_32(1084200594);
+emit_32(3273152528);
+emit_32(3271872545);
+emit_32(1087678322);
+emit_32(3273152528);
+emit_32(3271616496);
+emit_32(1089442320);
+emit_32(3273152528);
+emit_32(3271163904);
+emit_32(1090607372);
+emit_32(3273152528);
+emit_32(3270651937);
+emit_32(1091531566);
+emit_32(3273152528);
+emit_32(3270139970);
+emit_32(1091674141);
+emit_32(3273152528);
+emit_32(3269627871);
+emit_32(1091966117);
+emit_32(3273152528);
+emit_32(3269115904);
+emit_32(1091542251);
+emit_32(3273152528);
+emit_32(3268603937);
+emit_32(1091342288);
+emit_32(3273152528);
+emit_32(3268091970);
+emit_32(1092373405);
+emit_32(3273152528);
+emit_32(3267579911);
+emit_32(1093066975);
+emit_32(3273152528);
+emit_32(3267067904);
+emit_32(1096397252);
+emit_32(3273152528);
+emit_32(3266555911);
+emit_32(1099075053);
+emit_32(3273152528);
+emit_32(3266043904);
+emit_32(1099796788);
+emit_32(3273152528);
+emit_32(3265531911);
+emit_32(1100246942);
+emit_32(3273152528);
+emit_32(3265019904);
+emit_32(1101066614);
+emit_32(3273152528);
+emit_32(3264507911);
+emit_32(1102540440);
+emit_32(3273152528);
+emit_32(3263995904);
+emit_32(1104067323);
+emit_32(3273152528);
+emit_32(3263483911);
+emit_32(1105420039);
+emit_32(3273152528);
+emit_32(3262775296);
+emit_32(1106257484);
+emit_32(3273152528);
+emit_32(3261751309);
+emit_32(1106472337);
+emit_32(3273152528);
+emit_32(3260727296);
+emit_32(1106731912);
+emit_32(3273152528);
+emit_32(3259703309);
+emit_32(1106956465);
+emit_32(3273152528);
+emit_32(3258679296);
+emit_32(1106821199);
+emit_32(3273152528);
+emit_32(3257655309);
+emit_32(1106379643);
+emit_32(3273152528);
+emit_32(3256631296);
+emit_32(1107530954);
+emit_32(3273152528);
+emit_32(3255607309);
+emit_32(1108003992);
+emit_32(3273152528);
+emit_32(3254386688);
+emit_32(1108557352);
+emit_32(3273152528);
+emit_32(3252338714);
+emit_32(1109091706);
+emit_32(3273152528);
+emit_32(3250290688);
+emit_32(1109753830);
+emit_32(3273152528);
+emit_32(3248242714);
+emit_32(1109939664);
+emit_32(3273152528);
+emit_32(3245998080);
+emit_32(1109999118);
+emit_32(3273152528);
+emit_32(3241902132);
+emit_32(1110432914);
+emit_32(3273152528);
+emit_32(3237609472);
+emit_32(1110537457);
+emit_32(3273152528);
+emit_32(3229220864);
+emit_32(1110226685);
+emit_32(3273152528);
+emit_32(0);
+emit_32(1109884928);
+emit_32(3273152528);
+emit_32(1081737216);
+emit_32(1110106754);
+emit_32(3273152528);
+emit_32(3279552512);
+emit_32(1104836087);
+emit_32(3273408512);
+emit_32(3279296528);
+emit_32(1105132991);
+emit_32(3273408512);
+emit_32(3279040545);
+emit_32(1105059486);
+emit_32(3273408512);
+emit_32(3278784496);
+emit_32(1105434981);
+emit_32(3273408512);
+emit_32(3278528512);
+emit_32(1106513389);
+emit_32(3273408512);
+emit_32(3278272528);
+emit_32(1106841489);
+emit_32(3273408512);
+emit_32(3278016545);
+emit_32(1107378805);
+emit_32(3273408512);
+emit_32(3277760496);
+emit_32(1106914784);
+emit_32(3273408512);
+emit_32(3277504512);
+emit_32(1106011069);
+emit_32(3273408512);
+emit_32(3277248528);
+emit_32(1104591349);
+emit_32(3273408512);
+emit_32(3276992545);
+emit_32(1103757469);
+emit_32(3273408512);
+emit_32(3276736496);
+emit_32(1103249329);
+emit_32(3273408512);
+emit_32(3276480512);
+emit_32(1103030387);
+emit_32(3273408512);
+emit_32(3276224528);
+emit_32(1102188275);
+emit_32(3273408512);
+emit_32(3275968545);
+emit_32(1101338667);
+emit_32(3273408512);
+emit_32(3275712496);
+emit_32(1100738567);
+emit_32(3273408512);
+emit_32(3275456512);
+emit_32(1099970956);
+emit_32(3273408512);
+emit_32(3275200528);
+emit_32(1098288778);
+emit_32(3273408512);
+emit_32(3274944545);
+emit_32(1096724093);
+emit_32(3273408512);
+emit_32(3274688496);
+emit_32(1094523761);
+emit_32(3273408512);
+emit_32(3274432512);
+emit_32(1091893849);
+emit_32(3273408512);
+emit_32(3274176528);
+emit_32(1091370138);
+emit_32(3273408512);
+emit_32(3273920545);
+emit_32(1090570504);
+emit_32(3273408512);
+emit_32(3273664496);
+emit_32(1087323819);
+emit_32(3273408512);
+emit_32(3273408512);
+emit_32(1085981977);
+emit_32(3273408512);
+emit_32(3273152528);
+emit_32(1085699218);
+emit_32(3273408512);
+emit_32(3272896545);
+emit_32(1086443980);
+emit_32(3273408512);
+emit_32(3272640496);
+emit_32(1082061813);
+emit_32(3273408512);
+emit_32(3272384512);
+emit_32(1077123943);
+emit_32(3273408512);
+emit_32(3272128528);
+emit_32(1080172783);
+emit_32(3273408512);
+emit_32(3271872545);
+emit_32(1084168381);
+emit_32(3273408512);
+emit_32(3271616496);
+emit_32(1087820404);
+emit_32(3273408512);
+emit_32(3271163904);
+emit_32(1090796682);
+emit_32(3273408512);
+emit_32(3270651937);
+emit_32(1091577148);
+emit_32(3273408512);
+emit_32(3270139970);
+emit_32(1091446925);
+emit_32(3273408512);
+emit_32(3269627871);
+emit_32(1092098762);
+emit_32(3273408512);
+emit_32(3269115904);
+emit_32(1091744595);
+emit_32(3273408512);
+emit_32(3268603937);
+emit_32(1091408191);
+emit_32(3273408512);
+emit_32(3268091970);
+emit_32(1092385663);
+emit_32(3273408512);
+emit_32(3267579911);
+emit_32(1093825829);
+emit_32(3273408512);
+emit_32(3267067904);
+emit_32(1096198128);
+emit_32(3273408512);
+emit_32(3266555911);
+emit_32(1098768607);
+emit_32(3273408512);
+emit_32(3266043904);
+emit_32(1099579471);
+emit_32(3273408512);
+emit_32(3265531911);
+emit_32(1100058880);
+emit_32(3273408512);
+emit_32(3265019904);
+emit_32(1100744596);
+emit_32(3273408512);
+emit_32(3264507911);
+emit_32(1102061083);
+emit_32(3273408512);
+emit_32(3263995904);
+emit_32(1103274338);
+emit_32(3273408512);
+emit_32(3263483911);
+emit_32(1104422791);
+emit_32(3273408512);
+emit_32(3262775296);
+emit_32(1105176612);
+emit_32(3273408512);
+emit_32(3261751309);
+emit_32(1105646007);
+emit_32(3273408512);
+emit_32(3260727296);
+emit_32(1106575308);
+emit_32(3273408512);
+emit_32(3259703309);
+emit_32(1106762741);
+emit_32(3273408512);
+emit_32(3258679296);
+emit_32(1106791472);
+emit_32(3273408512);
+emit_32(3257655309);
+emit_32(1106362447);
+emit_32(3273408512);
+emit_32(3256631296);
+emit_32(1107312824);
+emit_32(3273408512);
+emit_32(3255607309);
+emit_32(1107822143);
+emit_32(3273408512);
+emit_32(3254386688);
+emit_32(1108186890);
+emit_32(3273408512);
+emit_32(3252338714);
+emit_32(1108816848);
+emit_32(3273408512);
+emit_32(3250290688);
+emit_32(1109429689);
+emit_32(3273408512);
+emit_32(3248242714);
+emit_32(1109536408);
+emit_32(3273408512);
+emit_32(3245998080);
+emit_32(1109813992);
+emit_32(3273408512);
+emit_32(3241902132);
+emit_32(1110208099);
+emit_32(3273408512);
+emit_32(3237609472);
+emit_32(1110335213);
+emit_32(3273408512);
+emit_32(3229220864);
+emit_32(1110186263);
+emit_32(3273408512);
+emit_32(0);
+emit_32(1109755796);
+emit_32(3273408512);
+emit_32(1081737216);
+emit_32(1109848700);
+emit_32(3273408512);
+emit_32(3279552512);
+emit_32(1104733956);
+emit_32(3273664496);
+emit_32(3279296528);
+emit_32(1104666690);
+emit_32(3273664496);
+emit_32(3279040545);
+emit_32(1104540231);
+emit_32(3273664496);
+emit_32(3278784496);
+emit_32(1104872840);
+emit_32(3273664496);
+emit_32(3278528512);
+emit_32(1105814775);
+emit_32(3273664496);
+emit_32(3278272528);
+emit_32(1106809297);
+emit_32(3273664496);
+emit_32(3278016545);
+emit_32(1106966322);
+emit_32(3273664496);
+emit_32(3277760496);
+emit_32(1106369682);
+emit_32(3273664496);
+emit_32(3277504512);
+emit_32(1105145102);
+emit_32(3273664496);
+emit_32(3277248528);
+emit_32(1104371673);
+emit_32(3273664496);
+emit_32(3276992545);
+emit_32(1103102319);
+emit_32(3273664496);
+emit_32(3276736496);
+emit_32(1102915568);
+emit_32(3273664496);
+emit_32(3276480512);
+emit_32(1102916721);
+emit_32(3273664496);
+emit_32(3276224528);
+emit_32(1102503005);
+emit_32(3273664496);
+emit_32(3275968545);
+emit_32(1101360162);
+emit_32(3273664496);
+emit_32(3275712496);
+emit_32(1100655152);
+emit_32(3273664496);
+emit_32(3275456512);
+emit_32(1099898185);
+emit_32(3273664496);
+emit_32(3275200528);
+emit_32(1097164495);
+emit_32(3273664496);
+emit_32(3274944545);
+emit_32(1094617294);
+emit_32(3273664496);
+emit_32(3274688496);
+emit_32(1092199750);
+emit_32(3273664496);
+emit_32(3274432512);
+emit_32(1090062511);
+emit_32(3273664496);
+emit_32(3274176528);
+emit_32(1090680196);
+emit_32(3273664496);
+emit_32(3273920545);
+emit_32(1089407214);
+emit_32(3273664496);
+emit_32(3273664496);
+emit_32(1087342316);
+emit_32(3273664496);
+emit_32(3273408512);
+emit_32(1084811578);
+emit_32(3273664496);
+emit_32(3273152528);
+emit_32(1083587386);
+emit_32(3273664496);
+emit_32(3272896545);
+emit_32(1084521563);
+emit_32(3273664496);
+emit_32(3272640496);
+emit_32(1079059237);
+emit_32(3273664496);
+emit_32(3272384512);
+emit_32(1079341513);
+emit_32(3273664496);
+emit_32(3272128528);
+emit_32(1075719690);
+emit_32(3273664496);
+emit_32(3271872545);
+emit_32(1082462285);
+emit_32(3273664496);
+emit_32(3271616496);
+emit_32(1087277514);
+emit_32(3273664496);
+emit_32(3271163904);
+emit_32(1090505891);
+emit_32(3273664496);
+emit_32(3270651937);
+emit_32(1090927198);
+emit_32(3273664496);
+emit_32(3270139970);
+emit_32(1091146109);
+emit_32(3273664496);
+emit_32(3269627871);
+emit_32(1092080475);
+emit_32(3273664496);
+emit_32(3269115904);
+emit_32(1091780718);
+emit_32(3273664496);
+emit_32(3268603937);
+emit_32(1090802554);
+emit_32(3273664496);
+emit_32(3268091970);
+emit_32(1092320997);
+emit_32(3273664496);
+emit_32(3267579911);
+emit_32(1094564132);
+emit_32(3273664496);
+emit_32(3267067904);
+emit_32(1097435447);
+emit_32(3273664496);
+emit_32(3266555911);
+emit_32(1098963118);
+emit_32(3273664496);
+emit_32(3266043904);
+emit_32(1099774348);
+emit_32(3273664496);
+emit_32(3265531911);
+emit_32(1100067530);
+emit_32(3273664496);
+emit_32(3265019904);
+emit_32(1100332401);
+emit_32(3273664496);
+emit_32(3264507911);
+emit_32(1101386639);
+emit_32(3273664496);
+emit_32(3263995904);
+emit_32(1102851185);
+emit_32(3273664496);
+emit_32(3263483911);
+emit_32(1104372774);
+emit_32(3273664496);
+emit_32(3262775296);
+emit_32(1105071702);
+emit_32(3273664496);
+emit_32(3261751309);
+emit_32(1105296726);
+emit_32(3273664496);
+emit_32(3260727296);
+emit_32(1105674895);
+emit_32(3273664496);
+emit_32(3259703309);
+emit_32(1106000583);
+emit_32(3273664496);
+emit_32(3258679296);
+emit_32(1105931639);
+emit_32(3273664496);
+emit_32(3257655309);
+emit_32(1106021188);
+emit_32(3273664496);
+emit_32(3256631296);
+emit_32(1106564874);
+emit_32(3273664496);
+emit_32(3255607309);
+emit_32(1107568073);
+emit_32(3273664496);
+emit_32(3254386688);
+emit_32(1108016890);
+emit_32(3273664496);
+emit_32(3252338714);
+emit_32(1108734483);
+emit_32(3273664496);
+emit_32(3250290688);
+emit_32(1109191321);
+emit_32(3273664496);
+emit_32(3248242714);
+emit_32(1109295759);
+emit_32(3273664496);
+emit_32(3245998080);
+emit_32(1109358019);
+emit_32(3273664496);
+emit_32(3241902132);
+emit_32(1109703603);
+emit_32(3273664496);
+emit_32(3237609472);
+emit_32(1109859736);
+emit_32(3273664496);
+emit_32(3229220864);
+emit_32(1109838319);
+emit_32(3273664496);
+emit_32(0);
+emit_32(1109492761);
+emit_32(3273664496);
+emit_32(1081737216);
+emit_32(1109518057);
+emit_32(3273664496);
+emit_32(3279552512);
+emit_32(1104359299);
+emit_32(3273920545);
+emit_32(3279296528);
+emit_32(1104339586);
+emit_32(3273920545);
+emit_32(3279040545);
+emit_32(1104491735);
+emit_32(3273920545);
+emit_32(3278784496);
+emit_32(1104791627);
+emit_32(3273920545);
+emit_32(3278528512);
+emit_32(1105811577);
+emit_32(3273920545);
+emit_32(3278272528);
+emit_32(1106308497);
+emit_32(3273920545);
+emit_32(3278016545);
+emit_32(1106435952);
+emit_32(3273920545);
+emit_32(3277760496);
+emit_32(1105655916);
+emit_32(3273920545);
+emit_32(3277504512);
+emit_32(1104594023);
+emit_32(3273920545);
+emit_32(3277248528);
+emit_32(1103614234);
+emit_32(3273920545);
+emit_32(3276992545);
+emit_32(1103342128);
+emit_32(3273920545);
+emit_32(3276736496);
+emit_32(1102922855);
+emit_32(3273920545);
+emit_32(3276480512);
+emit_32(1102436945);
+emit_32(3273920545);
+emit_32(3276224528);
+emit_32(1101625347);
+emit_32(3273920545);
+emit_32(3275968545);
+emit_32(1100801953);
+emit_32(3273920545);
+emit_32(3275712496);
+emit_32(1100227910);
+emit_32(3273920545);
+emit_32(3275456512);
+emit_32(1099339661);
+emit_32(3273920545);
+emit_32(3275200528);
+emit_32(1096681731);
+emit_32(3273920545);
+emit_32(3274944545);
+emit_32(1093027548);
+emit_32(3273920545);
+emit_32(3274688496);
+emit_32(1089483949);
+emit_32(3273920545);
+emit_32(3274432512);
+emit_32(1087550857);
+emit_32(3273920545);
+emit_32(3274176528);
+emit_32(1088032090);
+emit_32(3273920545);
+emit_32(3273920545);
+emit_32(1088175452);
+emit_32(3273920545);
+emit_32(3273664496);
+emit_32(1087974251);
+emit_32(3273920545);
+emit_32(3273408512);
+emit_32(1084612369);
+emit_32(3273920545);
+emit_32(3273152528);
+emit_32(1083056807);
+emit_32(3273920545);
+emit_32(3272896545);
+emit_32(1083313058);
+emit_32(3273920545);
+emit_32(3272640496);
+emit_32(1077966411);
+emit_32(3273920545);
+emit_32(3272384512);
+emit_32(1077466701);
+emit_32(3273920545);
+emit_32(3272128528);
+emit_32(1076194527);
+emit_32(3273920545);
+emit_32(3271872545);
+emit_32(1078813199);
+emit_32(3273920545);
+emit_32(3271616496);
+emit_32(1084920546);
+emit_32(3273920545);
+emit_32(3271163904);
+emit_32(1087870295);
+emit_32(3273920545);
+emit_32(3270651937);
+emit_32(1089931229);
+emit_32(3273920545);
+emit_32(3270139970);
+emit_32(1090987638);
+emit_32(3273920545);
+emit_32(3269627871);
+emit_32(1091623883);
+emit_32(3273920545);
+emit_32(3269115904);
+emit_32(1091369550);
+emit_32(3273920545);
+emit_32(3268603937);
+emit_32(1090009558);
+emit_32(3273920545);
+emit_32(3268091970);
+emit_32(1093783362);
+emit_32(3273920545);
+emit_32(3267579911);
+emit_32(1095581880);
+emit_32(3273920545);
+emit_32(3267067904);
+emit_32(1097625344);
+emit_32(3273920545);
+emit_32(3266555911);
+emit_32(1099002544);
+emit_32(3273920545);
+emit_32(3266043904);
+emit_32(1099653605);
+emit_32(3273920545);
+emit_32(3265531911);
+emit_32(1100228067);
+emit_32(3273920545);
+emit_32(3265019904);
+emit_32(1100644195);
+emit_32(3273920545);
+emit_32(3264507911);
+emit_32(1101087218);
+emit_32(3273920545);
+emit_32(3263995904);
+emit_32(1102441873);
+emit_32(3273920545);
+emit_32(3263483911);
+emit_32(1103411859);
+emit_32(3273920545);
+emit_32(3262775296);
+emit_32(1104352169);
+emit_32(3273920545);
+emit_32(3261751309);
+emit_32(1104534045);
+emit_32(3273920545);
+emit_32(3260727296);
+emit_32(1104718961);
+emit_32(3273920545);
+emit_32(3259703309);
+emit_32(1105600394);
+emit_32(3273920545);
+emit_32(3258679296);
+emit_32(1105578322);
+emit_32(3273920545);
+emit_32(3257655309);
+emit_32(1105873968);
+emit_32(3273920545);
+emit_32(3256631296);
+emit_32(1105977043);
+emit_32(3273920545);
+emit_32(3255607309);
+emit_32(1107501987);
+emit_32(3273920545);
+emit_32(3254386688);
+emit_32(1108022657);
+emit_32(3273920545);
+emit_32(3252338714);
+emit_32(1108493730);
+emit_32(3273920545);
+emit_32(3250290688);
+emit_32(1108751627);
+emit_32(3273920545);
+emit_32(3248242714);
+emit_32(1108976756);
+emit_32(3273920545);
+emit_32(3245998080);
+emit_32(1109209357);
+emit_32(3273920545);
+emit_32(3241902132);
+emit_32(1109224928);
+emit_32(3273920545);
+emit_32(3237609472);
+emit_32(1109394299);
+emit_32(3273920545);
+emit_32(3229220864);
+emit_32(1109287790);
+emit_32(3273920545);
+emit_32(0);
+emit_32(1109096556);
+emit_32(3273920545);
+emit_32(1081737216);
+emit_32(1109095429);
+emit_32(3273920545);
+emit_32(3279552512);
+emit_32(1103777917);
+emit_32(3274176528);
+emit_32(3279296528);
+emit_32(1103682863);
+emit_32(3274176528);
+emit_32(3279040545);
+emit_32(1103889852);
+emit_32(3274176528);
+emit_32(3278784496);
+emit_32(1104470082);
+emit_32(3274176528);
+emit_32(3278528512);
+emit_32(1105367977);
+emit_32(3274176528);
+emit_32(3278272528);
+emit_32(1105484998);
+emit_32(3274176528);
+emit_32(3278016545);
+emit_32(1105335157);
+emit_32(3274176528);
+emit_32(3277760496);
+emit_32(1104592136);
+emit_32(3274176528);
+emit_32(3277504512);
+emit_32(1103631063);
+emit_32(3274176528);
+emit_32(3277248528);
+emit_32(1103255306);
+emit_32(3274176528);
+emit_32(3276992545);
+emit_32(1103018276);
+emit_32(3274176528);
+emit_32(3276736496);
+emit_32(1102447378);
+emit_32(3274176528);
+emit_32(3276480512);
+emit_32(1102332926);
+emit_32(3274176528);
+emit_32(3276224528);
+emit_32(1101176976);
+emit_32(3274176528);
+emit_32(3275968545);
+emit_32(1100388132);
+emit_32(3274176528);
+emit_32(3275712496);
+emit_32(1099436969);
+emit_32(3274176528);
+emit_32(3275456512);
+emit_32(1097622199);
+emit_32(3274176528);
+emit_32(3275200528);
+emit_32(1095157206);
+emit_32(3274176528);
+emit_32(3274944545);
+emit_32(1091943761);
+emit_32(3274176528);
+emit_32(3274688496);
+emit_32(1087145897);
+emit_32(3274176528);
+emit_32(3274432512);
+emit_32(1084175847);
+emit_32(3274176528);
+emit_32(3274176528);
+emit_32(1083923161);
+emit_32(3274176528);
+emit_32(3273920545);
+emit_32(1085375292);
+emit_32(3274176528);
+emit_32(3273664496);
+emit_32(1084407834);
+emit_32(3274176528);
+emit_32(3273408512);
+emit_32(1081391354);
+emit_32(3274176528);
+emit_32(3273152528);
+emit_32(1081952216);
+emit_32(3274176528);
+emit_32(3272896545);
+emit_32(1083406885);
+emit_32(3274176528);
+emit_32(3272640496);
+emit_32(1079981732);
+emit_32(3274176528);
+emit_32(3272384512);
+emit_32(1079058020);
+emit_32(3274176528);
+emit_32(3272128528);
+emit_32(1072707676);
+emit_32(3274176528);
+emit_32(3271872545);
+emit_32(1076687568);
+emit_32(3274176528);
+emit_32(3271616496);
+emit_32(1083207089);
+emit_32(3274176528);
+emit_32(3271163904);
+emit_32(1086389538);
+emit_32(3274176528);
+emit_32(3270651937);
+emit_32(1089283314);
+emit_32(3274176528);
+emit_32(3270139970);
+emit_32(1089347172);
+emit_32(3274176528);
+emit_32(3269627871);
+emit_32(1089486696);
+emit_32(3274176528);
+emit_32(3269115904);
+emit_32(1088193739);
+emit_32(3274176528);
+emit_32(3268603937);
+emit_32(1090655722);
+emit_32(3274176528);
+emit_32(3268091970);
+emit_32(1094451515);
+emit_32(3274176528);
+emit_32(3267579911);
+emit_32(1096952893);
+emit_32(3274176528);
+emit_32(3267067904);
+emit_32(1098336489);
+emit_32(3274176528);
+emit_32(3266555911);
+emit_32(1099234437);
+emit_32(3274176528);
+emit_32(3266043904);
+emit_32(1099379612);
+emit_32(3274176528);
+emit_32(3265531911);
+emit_32(1100215799);
+emit_32(3274176528);
+emit_32(3265019904);
+emit_32(1100530162);
+emit_32(3274176528);
+emit_32(3264507911);
+emit_32(1101031329);
+emit_32(3274176528);
+emit_32(3263995904);
+emit_32(1101498994);
+emit_32(3274176528);
+emit_32(3263483911);
+emit_32(1102563928);
+emit_32(3274176528);
+emit_32(3262775296);
+emit_32(1103428531);
+emit_32(3274176528);
+emit_32(3261751309);
+emit_32(1104384360);
+emit_32(3274176528);
+emit_32(3260727296);
+emit_32(1104488589);
+emit_32(3274176528);
+emit_32(3259703309);
+emit_32(1104535827);
+emit_32(3274176528);
+emit_32(3258679296);
+emit_32(1105265479);
+emit_32(3274176528);
+emit_32(3257655309);
+emit_32(1106039747);
+emit_32(3274176528);
+emit_32(3256631296);
+emit_32(1106434956);
+emit_32(3274176528);
+emit_32(3255607309);
+emit_32(1107058596);
+emit_32(3274176528);
+emit_32(3254386688);
+emit_32(1107738703);
+emit_32(3274176528);
+emit_32(3252338714);
+emit_32(1108236567);
+emit_32(3274176528);
+emit_32(3250290688);
+emit_32(1108369447);
+emit_32(3274176528);
+emit_32(3248242714);
+emit_32(1108738258);
+emit_32(3274176528);
+emit_32(3245998080);
+emit_32(1108925140);
+emit_32(3274176528);
+emit_32(3241902132);
+emit_32(1108891219);
+emit_32(3274176528);
+emit_32(3237609472);
+emit_32(1109019224);
+emit_32(3274176528);
+emit_32(3229220864);
+emit_32(1108962574);
+emit_32(3274176528);
+emit_32(0);
+emit_32(1108838921);
+emit_32(3274176528);
+emit_32(1081737216);
+emit_32(1108664621);
+emit_32(3274176528);
+emit_32(3279552512);
+emit_32(1103175247);
+emit_32(3274432512);
+emit_32(3279296528);
+emit_32(1103008996);
+emit_32(3274432512);
+emit_32(3279040545);
+emit_32(1103511840);
+emit_32(3274432512);
+emit_32(3278784496);
+emit_32(1104205736);
+emit_32(3274432512);
+emit_32(3278528512);
+emit_32(1104650804);
+emit_32(3274432512);
+emit_32(3278272528);
+emit_32(1104410365);
+emit_32(3274432512);
+emit_32(3278016545);
+emit_32(1103881359);
+emit_32(3274432512);
+emit_32(3277760496);
+emit_32(1103489768);
+emit_32(3274432512);
+emit_32(3277504512);
+emit_32(1102805048);
+emit_32(3274432512);
+emit_32(3277248528);
+emit_32(1102700452);
+emit_32(3274432512);
+emit_32(3276992545);
+emit_32(1102108688);
+emit_32(3274432512);
+emit_32(3276736496);
+emit_32(1101386429);
+emit_32(3274432512);
+emit_32(3276480512);
+emit_32(1101386115);
+emit_32(3274432512);
+emit_32(3276224528);
+emit_32(1100548774);
+emit_32(3274432512);
+emit_32(3275968545);
+emit_32(1099100534);
+emit_32(3274432512);
+emit_32(3275712496);
+emit_32(1097287388);
+emit_32(3274432512);
+emit_32(3275456512);
+emit_32(1095246545);
+emit_32(3274432512);
+emit_32(3275200528);
+emit_32(1092624685);
+emit_32(3274432512);
+emit_32(3274944545);
+emit_32(1090219567);
+emit_32(3274432512);
+emit_32(3274688496);
+emit_32(1082930516);
+emit_32(3274432512);
+emit_32(3274432512);
+emit_32(1078918434);
+emit_32(3274432512);
+emit_32(3274176528);
+emit_32(1079511215);
+emit_32(3274432512);
+emit_32(3273920545);
+emit_32(1081732351);
+emit_32(3274432512);
+emit_32(3273664496);
+emit_32(1079040698);
+emit_32(3274432512);
+emit_32(3273408512);
+emit_32(1077451183);
+emit_32(3274432512);
+emit_32(3273152528);
+emit_32(1082592749);
+emit_32(3274432512);
+emit_32(3272896545);
+emit_32(1081429857);
+emit_32(3274432512);
+emit_32(3272640496);
+emit_32(1077879421);
+emit_32(3274432512);
+emit_32(3272384512);
+emit_32(1077261516);
+emit_32(3274432512);
+emit_32(3272128528);
+emit_32(1073521036);
+emit_32(3274432512);
+emit_32(3271872545);
+emit_32(1072559785);
+emit_32(3274432512);
+emit_32(3271616496);
+emit_32(1078796380);
+emit_32(3274432512);
+emit_32(3271163904);
+emit_32(1084493587);
+emit_32(3274432512);
+emit_32(3270651937);
+emit_32(1086050198);
+emit_32(3274432512);
+emit_32(3270139970);
+emit_32(1087277451);
+emit_32(3274432512);
+emit_32(3269627871);
+emit_32(1086930582);
+emit_32(3274432512);
+emit_32(3269115904);
+emit_32(1089544619);
+emit_32(3274432512);
+emit_32(3268603937);
+emit_32(1092037839);
+emit_32(3274432512);
+emit_32(3268091970);
+emit_32(1094101185);
+emit_32(3274432512);
+emit_32(3267579911);
+emit_32(1096539125);
+emit_32(3274432512);
+emit_32(3267067904);
+emit_32(1097682387);
+emit_32(3274432512);
+emit_32(3266555911);
+emit_32(1098380005);
+emit_32(3274432512);
+emit_32(3266043904);
+emit_32(1099089471);
+emit_32(3274432512);
+emit_32(3265531911);
+emit_32(1100092801);
+emit_32(3274432512);
+emit_32(3265019904);
+emit_32(1099999687);
+emit_32(3274432512);
+emit_32(3264507911);
+emit_32(1100034290);
+emit_32(3274432512);
+emit_32(3263995904);
+emit_32(1101354920);
+emit_32(3274432512);
+emit_32(3263483911);
+emit_32(1102642361);
+emit_32(3274432512);
+emit_32(3262775296);
+emit_32(1103324617);
+emit_32(3274432512);
+emit_32(3261751309);
+emit_32(1104424364);
+emit_32(3274432512);
+emit_32(3260727296);
+emit_32(1104375238);
+emit_32(3274432512);
+emit_32(3259703309);
+emit_32(1104526075);
+emit_32(3274432512);
+emit_32(3258679296);
+emit_32(1105221963);
+emit_32(3274432512);
+emit_32(3257655309);
+emit_32(1106081009);
+emit_32(3274432512);
+emit_32(3256631296);
+emit_32(1106625692);
+emit_32(3274432512);
+emit_32(3255607309);
+emit_32(1106869957);
+emit_32(3274432512);
+emit_32(3254386688);
+emit_32(1107361976);
+emit_32(3274432512);
+emit_32(3252338714);
+emit_32(1107660584);
+emit_32(3274432512);
+emit_32(3250290688);
+emit_32(1107794539);
+emit_32(3274432512);
+emit_32(3248242714);
+emit_32(1108030993);
+emit_32(3274432512);
+emit_32(3245998080);
+emit_32(1108270855);
+emit_32(3274432512);
+emit_32(3241902132);
+emit_32(1108287055);
+emit_32(3274432512);
+emit_32(3237609472);
+emit_32(1108250041);
+emit_32(3274432512);
+emit_32(3229220864);
+emit_32(1108216958);
+emit_32(3274432512);
+emit_32(0);
+emit_32(1108239267);
+emit_32(3274432512);
+emit_32(1081737216);
+emit_32(1108184872);
+emit_32(3274432512);
+emit_32(3279552512);
+emit_32(1102812126);
+emit_32(3274688496);
+emit_32(3279296528);
+emit_32(1103117418);
+emit_32(3274688496);
+emit_32(3279040545);
+emit_32(1103649885);
+emit_32(3274688496);
+emit_32(3278784496);
+emit_32(1104097313);
+emit_32(3274688496);
+emit_32(3278528512);
+emit_32(1104444654);
+emit_32(3274688496);
+emit_32(3278272528);
+emit_32(1104063601);
+emit_32(3274688496);
+emit_32(3278016545);
+emit_32(1103545814);
+emit_32(3274688496);
+emit_32(3277760496);
+emit_32(1103584507);
+emit_32(3274688496);
+emit_32(3277504512);
+emit_32(1102679009);
+emit_32(3274688496);
+emit_32(3277248528);
+emit_32(1102258687);
+emit_32(3274688496);
+emit_32(3276992545);
+emit_32(1101507854);
+emit_32(3274688496);
+emit_32(3276736496);
+emit_32(1100690909);
+emit_32(3274688496);
+emit_32(3276480512);
+emit_32(1100132332);
+emit_32(3274688496);
+emit_32(3276224528);
+emit_32(1099019583);
+emit_32(3274688496);
+emit_32(3275968545);
+emit_32(1097127376);
+emit_32(3274688496);
+emit_32(3275712496);
+emit_32(1095215822);
+emit_32(3274688496);
+emit_32(3275456512);
+emit_32(1092786166);
+emit_32(3274688496);
+emit_32(3275200528);
+emit_32(1090176785);
+emit_32(3274688496);
+emit_32(3274944545);
+emit_32(1085473439);
+emit_32(3274688496);
+emit_32(3274688496);
+emit_32(1079921376);
+emit_32(3274688496);
+emit_32(3274432512);
+emit_32(1075489590);
+emit_32(3274688496);
+emit_32(3274176528);
+emit_32(1074320386);
+emit_32(3274688496);
+emit_32(3273920545);
+emit_32(1075278281);
+emit_32(3274688496);
+emit_32(3273664496);
+emit_32(1075627373);
+emit_32(3274688496);
+emit_32(3273408512);
+emit_32(1075421307);
+emit_32(3274688496);
+emit_32(3273152528);
+emit_32(1077995687);
+emit_32(3274688496);
+emit_32(3272896545);
+emit_32(1076187271);
+emit_32(3274688496);
+emit_32(3272640496);
+emit_32(1078197056);
+emit_32(3274688496);
+emit_32(3272384512);
+emit_32(1077490273);
+emit_32(3274688496);
+emit_32(3272128528);
+emit_32(1076221287);
+emit_32(3274688496);
+emit_32(3271872545);
+emit_32(1074908092);
+emit_32(3274688496);
+emit_32(3271616496);
+emit_32(1080775462);
+emit_32(3274688496);
+emit_32(3271163904);
+emit_32(1084715256);
+emit_32(3274688496);
+emit_32(3270651937);
+emit_32(1086583504);
+emit_32(3274688496);
+emit_32(3270139970);
+emit_32(1086842502);
+emit_32(3274688496);
+emit_32(3269627871);
+emit_32(1087987400);
+emit_32(3274688496);
+emit_32(3269115904);
+emit_32(1090173891);
+emit_32(3274688496);
+emit_32(3268603937);
+emit_32(1091923838);
+emit_32(3274688496);
+emit_32(3268091970);
+emit_32(1093947988);
+emit_32(3274688496);
+emit_32(3267579911);
+emit_32(1095834167);
+emit_32(3274688496);
+emit_32(3267067904);
+emit_32(1096733950);
+emit_32(3274688496);
+emit_32(3266555911);
+emit_32(1097836842);
+emit_32(3274688496);
+emit_32(3266043904);
+emit_32(1098556060);
+emit_32(3274688496);
+emit_32(3265531911);
+emit_32(1099108608);
+emit_32(3274688496);
+emit_32(3265019904);
+emit_32(1098963275);
+emit_32(3274688496);
+emit_32(3264507911);
+emit_32(1099819542);
+emit_32(3274688496);
+emit_32(3263995904);
+emit_32(1100942305);
+emit_32(3274688496);
+emit_32(3263483911);
+emit_32(1102197608);
+emit_32(3274688496);
+emit_32(3262775296);
+emit_32(1103022837);
+emit_32(3274688496);
+emit_32(3261751309);
+emit_32(1103801562);
+emit_32(3274688496);
+emit_32(3260727296);
+emit_32(1104507988);
+emit_32(3274688496);
+emit_32(3259703309);
+emit_32(1105154592);
+emit_32(3274688496);
+emit_32(3258679296);
+emit_32(1105464079);
+emit_32(3274688496);
+emit_32(3257655309);
+emit_32(1106093382);
+emit_32(3274688496);
+emit_32(3256631296);
+emit_32(1106574311);
+emit_32(3274688496);
+emit_32(3255607309);
+emit_32(1107051990);
+emit_32(3274688496);
+emit_32(3254386688);
+emit_32(1107119571);
+emit_32(3274688496);
+emit_32(3252338714);
+emit_32(1106870849);
+emit_32(3274688496);
+emit_32(3250290688);
+emit_32(1107053878);
+emit_32(3274688496);
+emit_32(3248242714);
+emit_32(1107270461);
+emit_32(3274688496);
+emit_32(3245998080);
+emit_32(1107546577);
+emit_32(3274688496);
+emit_32(3241902132);
+emit_32(1107761064);
+emit_32(3274688496);
+emit_32(3237609472);
+emit_32(1107768718);
+emit_32(3274688496);
+emit_32(3229220864);
+emit_32(1107959035);
+emit_32(3274688496);
+emit_32(0);
+emit_32(1108028398);
+emit_32(3274688496);
+emit_32(1081737216);
+emit_32(1108036289);
+emit_32(3274688496);
+emit_32(3279552512);
+emit_32(1102194829);
+emit_32(3274944545);
+emit_32(3279296528);
+emit_32(1102979740);
+emit_32(3274944545);
+emit_32(3279040545);
+emit_32(1103411282);
+emit_32(3274944545);
+emit_32(3278784496);
+emit_32(1104236354);
+emit_32(3274944545);
+emit_32(3278528512);
+emit_32(1103902330);
+emit_32(3274944545);
+emit_32(3278272528);
+emit_32(1103359430);
+emit_32(3274944545);
+emit_32(3278016545);
+emit_32(1103570665);
+emit_32(3274944545);
+emit_32(3277760496);
+emit_32(1102969255);
+emit_32(3274944545);
+emit_32(3277504512);
+emit_32(1102559995);
+emit_32(3274944545);
+emit_32(3277248528);
+emit_32(1101349467);
+emit_32(3274944545);
+emit_32(3276992545);
+emit_32(1100611689);
+emit_32(3274944545);
+emit_32(3276736496);
+emit_32(1099639921);
+emit_32(3274944545);
+emit_32(3276480512);
+emit_32(1098874513);
+emit_32(3274944545);
+emit_32(3276224528);
+emit_32(1096071040);
+emit_32(3274944545);
+emit_32(3275968545);
+emit_32(1094641831);
+emit_32(3274944545);
+emit_32(3275712496);
+emit_32(1092240938);
+emit_32(3274944545);
+emit_32(3275456512);
+emit_32(1090400551);
+emit_32(3274944545);
+emit_32(3275200528);
+emit_32(1086726760);
+emit_32(3274944545);
+emit_32(3274944545);
+emit_32(1082213060);
+emit_32(3274944545);
+emit_32(3274688496);
+emit_32(1073126939);
+emit_32(3274944545);
+emit_32(3274432512);
+emit_32(1071516914);
+emit_32(3274944545);
+emit_32(3274176528);
+emit_32(1065259968);
+emit_32(3274944545);
+emit_32(3273920545);
+emit_32(1065288959);
+emit_32(3274944545);
+emit_32(3273664496);
+emit_32(1065357243);
+emit_32(3274944545);
+emit_32(3273408512);
+emit_32(1069920478);
+emit_32(3274944545);
+emit_32(3273152528);
+emit_32(1062828597);
+emit_32(3274944545);
+emit_32(3272896545);
+emit_32(1067908386);
+emit_32(3274944545);
+emit_32(3272640496);
+emit_32(1068584424);
+emit_32(3274944545);
+emit_32(3272384512);
+emit_32(1063954466);
+emit_32(3274944545);
+emit_32(3272128528);
+emit_32(1068682235);
+emit_32(3274944545);
+emit_32(3271872545);
+emit_32(1074494492);
+emit_32(3274944545);
+emit_32(3271616496);
+emit_32(1082171809);
+emit_32(3274944545);
+emit_32(3271163904);
+emit_32(1085758274);
+emit_32(3274944545);
+emit_32(3270651937);
+emit_32(1088930825);
+emit_32(3274944545);
+emit_32(3270139970);
+emit_32(1088551890);
+emit_32(3274944545);
+emit_32(3269627871);
+emit_32(1090336420);
+emit_32(3274944545);
+emit_32(3269115904);
+emit_32(1090128550);
+emit_32(3274944545);
+emit_32(3268603937);
+emit_32(1092723147);
+emit_32(3274944545);
+emit_32(3268091970);
+emit_32(1094514744);
+emit_32(3274944545);
+emit_32(3267579911);
+emit_32(1095724381);
+emit_32(3274944545);
+emit_32(3267067904);
+emit_32(1096378378);
+emit_32(3274944545);
+emit_32(3266555911);
+emit_32(1096239232);
+emit_32(3274944545);
+emit_32(3266043904);
+emit_32(1097003853);
+emit_32(3274944545);
+emit_32(3265531911);
+emit_32(1097209165);
+emit_32(3274944545);
+emit_32(3265019904);
+emit_32(1098262459);
+emit_32(3274944545);
+emit_32(3264507911);
+emit_32(1099551893);
+emit_32(3274944545);
+emit_32(3263995904);
+emit_32(1100443025);
+emit_32(3274944545);
+emit_32(3263483911);
+emit_32(1101006635);
+emit_32(3274944545);
+emit_32(3262775296);
+emit_32(1102193466);
+emit_32(3274944545);
+emit_32(3261751309);
+emit_32(1103692405);
+emit_32(3274944545);
+emit_32(3260727296);
+emit_32(1104818733);
+emit_32(3274944545);
+emit_32(3259703309);
+emit_32(1105337935);
+emit_32(3274944545);
+emit_32(3258679296);
+emit_32(1105923932);
+emit_32(3274944545);
+emit_32(3257655309);
+emit_32(1106359720);
+emit_32(3274944545);
+emit_32(3256631296);
+emit_32(1106972561);
+emit_32(3274944545);
+emit_32(3255607309);
+emit_32(1106903040);
+emit_32(3274944545);
+emit_32(3254386688);
+emit_32(1106792520);
+emit_32(3274944545);
+emit_32(3252338714);
+emit_32(1106424313);
+emit_32(3274944545);
+emit_32(3250290688);
+emit_32(1106536196);
+emit_32(3274944545);
+emit_32(3248242714);
+emit_32(1106757026);
+emit_32(3274944545);
+emit_32(3245998080);
+emit_32(1107206445);
+emit_32(3274944545);
+emit_32(3241902132);
+emit_32(1107332773);
+emit_32(3274944545);
+emit_32(3237609472);
+emit_32(1107315261);
+emit_32(3274944545);
+emit_32(3229220864);
+emit_32(1107468589);
+emit_32(3274944545);
+emit_32(0);
+emit_32(1107529276);
+emit_32(3274944545);
+emit_32(1081737216);
+emit_32(1107544270);
+emit_32(3274944545);
+emit_32(3279552512);
+emit_32(1102256485);
+emit_32(3275200528);
+emit_32(3279296528);
+emit_32(1102476581);
+emit_32(3275200528);
+emit_32(3279040545);
+emit_32(1102648600);
+emit_32(3275200528);
+emit_32(3278784496);
+emit_32(1103151707);
+emit_32(3275200528);
+emit_32(3278528512);
+emit_32(1103103315);
+emit_32(3275200528);
+emit_32(3278272528);
+emit_32(1102817788);
+emit_32(3275200528);
+emit_32(3278016545);
+emit_32(1103034843);
+emit_32(3275200528);
+emit_32(3277760496);
+emit_32(1102561411);
+emit_32(3275200528);
+emit_32(3277504512);
+emit_32(1101968179);
+emit_32(3275200528);
+emit_32(3277248528);
+emit_32(1100968939);
+emit_32(3275200528);
+emit_32(3276992545);
+emit_32(1099333370);
+emit_32(3275200528);
+emit_32(3276736496);
+emit_32(1098046662);
+emit_32(3275200528);
+emit_32(3276480512);
+emit_32(1096587778);
+emit_32(3275200528);
+emit_32(3276224528);
+emit_32(1094379687);
+emit_32(3275200528);
+emit_32(3275968545);
+emit_32(1092357099);
+emit_32(3275200528);
+emit_32(3275712496);
+emit_32(1088608073);
+emit_32(3275200528);
+emit_32(3275456512);
+emit_32(1087226532);
+emit_32(3275200528);
+emit_32(3275200528);
+emit_32(1084547148);
+emit_32(3275200528);
+emit_32(3274944545);
+emit_32(1081193131);
+emit_32(3275200528);
+emit_32(3274688496);
+emit_32(1078008983);
+emit_32(3275200528);
+emit_32(3274432512);
+emit_32(1069241755);
+emit_32(3275200528);
+emit_32(3274176528);
+emit_32(1061457513);
+emit_32(3275200528);
+emit_32(3273920545);
+emit_32(1073613814);
+emit_32(3275200528);
+emit_32(3273664496);
+emit_32(1066147869);
+emit_32(3275200528);
+emit_32(3273408512);
+emit_32(1067857803);
+emit_32(3275200528);
+emit_32(3273152528);
+emit_32(3192938482);
+emit_32(3275200528);
+emit_32(3272896545);
+emit_32(3204552258);
+emit_32(3275200528);
+emit_32(3272640496);
+emit_32(3207444717);
+emit_32(3275200528);
+emit_32(3272384512);
+emit_32(1042926373);
+emit_32(3275200528);
+emit_32(3272128528);
+emit_32(1069107873);
+emit_32(3275200528);
+emit_32(3271872545);
+emit_32(1068988587);
+emit_32(3275200528);
+emit_32(3271616496);
+emit_32(1078926571);
+emit_32(3275200528);
+emit_32(3271163904);
+emit_32(1083921610);
+emit_32(3275200528);
+emit_32(3270651937);
+emit_32(1087667710);
+emit_32(3275200528);
+emit_32(3270139970);
+emit_32(1090444214);
+emit_32(3275200528);
+emit_32(3269627871);
+emit_32(1091070528);
+emit_32(3275200528);
+emit_32(3269115904);
+emit_32(1090066034);
+emit_32(3275200528);
+emit_32(3268603937);
+emit_32(1092043900);
+emit_32(3275200528);
+emit_32(3268091970);
+emit_32(1094000103);
+emit_32(3275200528);
+emit_32(3267579911);
+emit_32(1094961752);
+emit_32(3275200528);
+emit_32(3267067904);
+emit_32(1095524208);
+emit_32(3275200528);
+emit_32(3266555911);
+emit_32(1095676356);
+emit_32(3275200528);
+emit_32(3266043904);
+emit_32(1095717880);
+emit_32(3275200528);
+emit_32(3265531911);
+emit_32(1096110676);
+emit_32(3275200528);
+emit_32(3265019904);
+emit_32(1097228249);
+emit_32(3275200528);
+emit_32(3264507911);
+emit_32(1099051146);
+emit_32(3275200528);
+emit_32(3263995904);
+emit_32(1099955228);
+emit_32(3275200528);
+emit_32(3263483911);
+emit_32(1100759119);
+emit_32(3275200528);
+emit_32(3262775296);
+emit_32(1101740848);
+emit_32(3275200528);
+emit_32(3261751309);
+emit_32(1103570928);
+emit_32(3275200528);
+emit_32(3260727296);
+emit_32(1104669783);
+emit_32(3275200528);
+emit_32(3259703309);
+emit_32(1105525316);
+emit_32(3275200528);
+emit_32(3258679296);
+emit_32(1106359248);
+emit_32(3275200528);
+emit_32(3257655309);
+emit_32(1106517269);
+emit_32(3275200528);
+emit_32(3256631296);
+emit_32(1106616045);
+emit_32(3275200528);
+emit_32(3255607309);
+emit_32(1106583906);
+emit_32(3275200528);
+emit_32(3254386688);
+emit_32(1106124944);
+emit_32(3275200528);
+emit_32(3252338714);
+emit_32(1106384676);
+emit_32(3275200528);
+emit_32(3250290688);
+emit_32(1106808354);
+emit_32(3275200528);
+emit_32(3248242714);
+emit_32(1106794879);
+emit_32(3275200528);
+emit_32(3245998080);
+emit_32(1106762741);
+emit_32(3275200528);
+emit_32(3241902132);
+emit_32(1106491369);
+emit_32(3275200528);
+emit_32(3237609472);
+emit_32(1106295705);
+emit_32(3275200528);
+emit_32(3229220864);
+emit_32(1106289675);
+emit_32(3275200528);
+emit_32(0);
+emit_32(1106247261);
+emit_32(3275200528);
+emit_32(1081737216);
+emit_32(1106249096);
+emit_32(3275200528);
+emit_32(3279552512);
+emit_32(1102201697);
+emit_32(3275456512);
+emit_32(3279296528);
+emit_32(1102659820);
+emit_32(3275456512);
+emit_32(3279040545);
+emit_32(1102694528);
+emit_32(3275456512);
+emit_32(3278784496);
+emit_32(1102926001);
+emit_32(3275456512);
+emit_32(3278528512);
+emit_32(1102847567);
+emit_32(3275456512);
+emit_32(3278272528);
+emit_32(1102512443);
+emit_32(3275456512);
+emit_32(3278016545);
+emit_32(1102182928);
+emit_32(3275456512);
+emit_32(3277760496);
+emit_32(1101754112);
+emit_32(3275456512);
+emit_32(3277504512);
+emit_32(1101220178);
+emit_32(3275456512);
+emit_32(3277248528);
+emit_32(1100092591);
+emit_32(3275456512);
+emit_32(3276992545);
+emit_32(1099095081);
+emit_32(3275456512);
+emit_32(3276736496);
+emit_32(1095841821);
+emit_32(3275456512);
+emit_32(3276480512);
+emit_32(1094285106);
+emit_32(3275456512);
+emit_32(3276224528);
+emit_32(1092426242);
+emit_32(3275456512);
+emit_32(3275968545);
+emit_32(1091118752);
+emit_32(3275456512);
+emit_32(3275712496);
+emit_32(1086196076);
+emit_32(3275456512);
+emit_32(3275456512);
+emit_32(1084558955);
+emit_32(3275456512);
+emit_32(3275200528);
+emit_32(1081694099);
+emit_32(3275456512);
+emit_32(3274944545);
+emit_32(1083225900);
+emit_32(3275456512);
+emit_32(3274688496);
+emit_32(1082574231);
+emit_32(3275456512);
+emit_32(3274432512);
+emit_32(1076364145);
+emit_32(3275456512);
+emit_32(3274176528);
+emit_32(1072545021);
+emit_32(3275456512);
+emit_32(3273920545);
+emit_32(1074334018);
+emit_32(3275456512);
+emit_32(3273664496);
+emit_32(1076300014);
+emit_32(3275456512);
+emit_32(3273408512);
+emit_32(1073720181);
+emit_32(3275456512);
+emit_32(3273152528);
+emit_32(1062607037);
+emit_32(3275456512);
+emit_32(3272896545);
+emit_32(3187287312);
+emit_32(3275456512);
+emit_32(3272640496);
+emit_32(3214601911);
+emit_32(3275456512);
+emit_32(3272384512);
+emit_32(1058984736);
+emit_32(3275456512);
+emit_32(3272128528);
+emit_32(1074596288);
+emit_32(3275456512);
+emit_32(3271872545);
+emit_32(1076067859);
+emit_32(3275456512);
+emit_32(3271616496);
+emit_32(1078353210);
+emit_32(3275456512);
+emit_32(3271163904);
+emit_32(1083728860);
+emit_32(3275456512);
+emit_32(3270651937);
+emit_32(1087570235);
+emit_32(3275456512);
+emit_32(3270139970);
+emit_32(1089274527);
+emit_32(3275456512);
+emit_32(3269627871);
+emit_32(1090698305);
+emit_32(3275456512);
+emit_32(3269115904);
+emit_32(1091459088);
+emit_32(3275456512);
+emit_32(3268603937);
+emit_32(1092135063);
+emit_32(3275456512);
+emit_32(3268091970);
+emit_32(1093474242);
+emit_32(3275456512);
+emit_32(3267579911);
+emit_32(1094959235);
+emit_32(3275456512);
+emit_32(3267067904);
+emit_32(1094655672);
+emit_32(3275456512);
+emit_32(3266555911);
+emit_32(1095034523);
+emit_32(3275456512);
+emit_32(3266043904);
+emit_32(1095524522);
+emit_32(3275456512);
+emit_32(3265531911);
+emit_32(1096032557);
+emit_32(3275456512);
+emit_32(3265019904);
+emit_32(1097045482);
+emit_32(3275456512);
+emit_32(3264507911);
+emit_32(1098064278);
+emit_32(3275456512);
+emit_32(3263995904);
+emit_32(1099811573);
+emit_32(3275456512);
+emit_32(3263483911);
+emit_32(1101577899);
+emit_32(3275456512);
+emit_32(3262775296);
+emit_32(1102983515);
+emit_32(3275456512);
+emit_32(3261751309);
+emit_32(1103562015);
+emit_32(3275456512);
+emit_32(3260727296);
+emit_32(1104461116);
+emit_32(3275456512);
+emit_32(3259703309);
+emit_32(1105235752);
+emit_32(3275456512);
+emit_32(3258679296);
+emit_32(1106329049);
+emit_32(3275456512);
+emit_32(3257655309);
+emit_32(1106693744);
+emit_32(3275456512);
+emit_32(3256631296);
+emit_32(1106663703);
+emit_32(3275456512);
+emit_32(3255607309);
+emit_32(1106416710);
+emit_32(3275456512);
+emit_32(3254386688);
+emit_32(1105642390);
+emit_32(3275456512);
+emit_32(3252338714);
+emit_32(1106355631);
+emit_32(3275456512);
+emit_32(3250290688);
+emit_32(1107058020);
+emit_32(3275456512);
+emit_32(3248242714);
+emit_32(1106806414);
+emit_32(3275456512);
+emit_32(3245998080);
+emit_32(1106545790);
+emit_32(3275456512);
+emit_32(3241902132);
+emit_32(1106234783);
+emit_32(3275456512);
+emit_32(3237609472);
+emit_32(1105605637);
+emit_32(3275456512);
+emit_32(3229220864);
+emit_32(1105327922);
+emit_32(3275456512);
+emit_32(0);
+emit_32(1104886890);
+emit_32(3275456512);
+emit_32(1081737216);
+emit_32(1105010622);
+emit_32(3275456512);
+emit_32(3279552512);
+emit_32(1101796265);
+emit_32(3275712496);
+emit_32(3279296528);
+emit_32(1102154616);
+emit_32(3275712496);
+emit_32(3279040545);
+emit_32(1102271480);
+emit_32(3275712496);
+emit_32(3278784496);
+emit_32(1102377910);
+emit_32(3275712496);
+emit_32(3278528512);
+emit_32(1102537923);
+emit_32(3275712496);
+emit_32(3278272528);
+emit_32(1102370151);
+emit_32(3275712496);
+emit_32(3278016545);
+emit_32(1101809268);
+emit_32(3275712496);
+emit_32(3277760496);
+emit_32(1101123289);
+emit_32(3275712496);
+emit_32(3277504512);
+emit_32(1100805466);
+emit_32(3275712496);
+emit_32(3277248528);
+emit_32(1100000736);
+emit_32(3275712496);
+emit_32(3276992545);
+emit_32(1098896743);
+emit_32(3275712496);
+emit_32(3276736496);
+emit_32(1095489500);
+emit_32(3275712496);
+emit_32(3276480512);
+emit_32(1092604647);
+emit_32(3275712496);
+emit_32(3276224528);
+emit_32(1089231431);
+emit_32(3275712496);
+emit_32(3275968545);
+emit_32(1086808717);
+emit_32(3275712496);
+emit_32(3275712496);
+emit_32(1083957890);
+emit_32(3275712496);
+emit_32(3275456512);
+emit_32(1083971564);
+emit_32(3275712496);
+emit_32(3275200528);
+emit_32(1083249913);
+emit_32(3275712496);
+emit_32(3274944545);
+emit_32(1084720771);
+emit_32(3275712496);
+emit_32(3274688496);
+emit_32(1082599125);
+emit_32(3275712496);
+emit_32(3274432512);
+emit_32(1079874484);
+emit_32(3275712496);
+emit_32(3274176528);
+emit_32(1080545069);
+emit_32(3275712496);
+emit_32(3273920545);
+emit_32(1078235685);
+emit_32(3275712496);
+emit_32(3273664496);
+emit_32(1080867653);
+emit_32(3275712496);
+emit_32(3273408512);
+emit_32(1082567206);
+emit_32(3275712496);
+emit_32(3273152528);
+emit_32(1074733945);
+emit_32(3275712496);
+emit_32(3272896545);
+emit_32(1058342370);
+emit_32(3275712496);
+emit_32(3272640496);
+emit_32(1055267089);
+emit_32(3275712496);
+emit_32(3272384512);
+emit_32(1075522138);
+emit_32(3275712496);
+emit_32(3272128528);
+emit_32(1080234900);
+emit_32(3275712496);
+emit_32(3271872545);
+emit_32(1080374822);
+emit_32(3275712496);
+emit_32(3271616496);
+emit_32(1083014633);
+emit_32(3275712496);
+emit_32(3271163904);
+emit_32(1084734109);
+emit_32(3275712496);
+emit_32(3270651937);
+emit_32(1087494779);
+emit_32(3275712496);
+emit_32(3270139970);
+emit_32(1088284965);
+emit_32(3275712496);
+emit_32(3269627871);
+emit_32(1089959289);
+emit_32(3275712496);
+emit_32(3269115904);
+emit_32(1090565890);
+emit_32(3275712496);
+emit_32(3268603937);
+emit_32(1091730439);
+emit_32(3275712496);
+emit_32(3268091970);
+emit_32(1093621042);
+emit_32(3275712496);
+emit_32(3267579911);
+emit_32(1094912259);
+emit_32(3275712496);
+emit_32(3267067904);
+emit_32(1094344350);
+emit_32(3275712496);
+emit_32(3266555911);
+emit_32(1094347810);
+emit_32(3275712496);
+emit_32(3266043904);
+emit_32(1095166958);
+emit_32(3275712496);
+emit_32(3265531911);
+emit_32(1096161218);
+emit_32(3275712496);
+emit_32(3265019904);
+emit_32(1097215246);
+emit_32(3275712496);
+emit_32(3264507911);
+emit_32(1099003068);
+emit_32(3275712496);
+emit_32(3263995904);
+emit_32(1100476894);
+emit_32(3275712496);
+emit_32(3263483911);
+emit_32(1102488954);
+emit_32(3275712496);
+emit_32(3262775296);
+emit_32(1103829035);
+emit_32(3275712496);
+emit_32(3261751309);
+emit_32(1104228332);
+emit_32(3275712496);
+emit_32(3260727296);
+emit_32(1103954339);
+emit_32(3275712496);
+emit_32(3259703309);
+emit_32(1104646714);
+emit_32(3275712496);
+emit_32(3258679296);
+emit_32(1105727324);
+emit_32(3275712496);
+emit_32(3257655309);
+emit_32(1106170243);
+emit_32(3275712496);
+emit_32(3256631296);
+emit_32(1106312482);
+emit_32(3275712496);
+emit_32(3255607309);
+emit_32(1106119596);
+emit_32(3275712496);
+emit_32(3254386688);
+emit_32(1105456687);
+emit_32(3275712496);
+emit_32(3252338714);
+emit_32(1106005931);
+emit_32(3275712496);
+emit_32(3250290688);
+emit_32(1106493309);
+emit_32(3275712496);
+emit_32(3248242714);
+emit_32(1106443921);
+emit_32(3275712496);
+emit_32(3245998080);
+emit_32(1106444917);
+emit_32(3275712496);
+emit_32(3241902132);
+emit_32(1105728582);
+emit_32(3275712496);
+emit_32(3237609472);
+emit_32(1105301445);
+emit_32(3275712496);
+emit_32(3229220864);
+emit_32(1104221307);
+emit_32(3275712496);
+emit_32(0);
+emit_32(1103753013);
+emit_32(3275712496);
+emit_32(1081737216);
+emit_32(1103817710);
+emit_32(3275712496);
+emit_32(3279552512);
+emit_32(1101413745);
+emit_32(3275968545);
+emit_32(3279296528);
+emit_32(1101438858);
+emit_32(3275968545);
+emit_32(3279040545);
+emit_32(1101644379);
+emit_32(3275968545);
+emit_32(3278784496);
+emit_32(1102087560);
+emit_32(3275968545);
+emit_32(3278528512);
+emit_32(1102163214);
+emit_32(3275968545);
+emit_32(3278272528);
+emit_32(1102125308);
+emit_32(3275968545);
+emit_32(3278016545);
+emit_32(1101537739);
+emit_32(3275968545);
+emit_32(3277760496);
+emit_32(1100699350);
+emit_32(3275968545);
+emit_32(3277504512);
+emit_32(1099847539);
+emit_32(3275968545);
+emit_32(3277248528);
+emit_32(1099231239);
+emit_32(3275968545);
+emit_32(3276992545);
+emit_32(1097551315);
+emit_32(3275968545);
+emit_32(3276736496);
+emit_32(1094513590);
+emit_32(3275968545);
+emit_32(3276480512);
+emit_32(1092236859);
+emit_32(3275968545);
+emit_32(3276224528);
+emit_32(1087371425);
+emit_32(3275968545);
+emit_32(3275968545);
+emit_32(1086821908);
+emit_32(3275968545);
+emit_32(3275712496);
+emit_32(1087590871);
+emit_32(3275968545);
+emit_32(3275456512);
+emit_32(1086797791);
+emit_32(3275968545);
+emit_32(3275200528);
+emit_32(1085233189);
+emit_32(3275968545);
+emit_32(3274944545);
+emit_32(1084580975);
+emit_32(3275968545);
+emit_32(3274688496);
+emit_32(1083882351);
+emit_32(3275968545);
+emit_32(3274432512);
+emit_32(1082486780);
+emit_32(3275968545);
+emit_32(3274176528);
+emit_32(1085077623);
+emit_32(3275968545);
+emit_32(3273920545);
+emit_32(1084260342);
+emit_32(3275968545);
+emit_32(3273664496);
+emit_32(1083367290);
+emit_32(3275968545);
+emit_32(3273408512);
+emit_32(1083666638);
+emit_32(3275968545);
+emit_32(3273152528);
+emit_32(1078547909);
+emit_32(3275968545);
+emit_32(3272896545);
+emit_32(1066770387);
+emit_32(3275968545);
+emit_32(3272640496);
+emit_32(1075803744);
+emit_32(3275968545);
+emit_32(3272384512);
+emit_32(1082085679);
+emit_32(3275968545);
+emit_32(3272128528);
+emit_32(1084581185);
+emit_32(3275968545);
+emit_32(3271872545);
+emit_32(1085673172);
+emit_32(3275968545);
+emit_32(3271616496);
+emit_32(1085188394);
+emit_32(3275968545);
+emit_32(3271163904);
+emit_32(1084552768);
+emit_32(3275968545);
+emit_32(3270651937);
+emit_32(1087292635);
+emit_32(3275968545);
+emit_32(3270139970);
+emit_32(1089188963);
+emit_32(3275968545);
+emit_32(3269627871);
+emit_32(1090660503);
+emit_32(3275968545);
+emit_32(3269115904);
+emit_32(1089489254);
+emit_32(3275968545);
+emit_32(3268603937);
+emit_32(1091501157);
+emit_32(3275968545);
+emit_32(3268091970);
+emit_32(1093299130);
+emit_32(3275968545);
+emit_32(3267579911);
+emit_32(1093272076);
+emit_32(3275968545);
+emit_32(3267067904);
+emit_32(1093175293);
+emit_32(3275968545);
+emit_32(3266555911);
+emit_32(1094268538);
+emit_32(3275968545);
+emit_32(3266043904);
+emit_32(1094260359);
+emit_32(3275968545);
+emit_32(3265531911);
+emit_32(1097064147);
+emit_32(3275968545);
+emit_32(3265019904);
+emit_32(1098974337);
+emit_32(3275968545);
+emit_32(3264507911);
+emit_32(1099484050);
+emit_32(3275968545);
+emit_32(3263995904);
+emit_32(1101248646);
+emit_32(3275968545);
+emit_32(3263483911);
+emit_32(1102857634);
+emit_32(3275968545);
+emit_32(3262775296);
+emit_32(1103688158);
+emit_32(3275968545);
+emit_32(3261751309);
+emit_32(1104120486);
+emit_32(3275968545);
+emit_32(3260727296);
+emit_32(1103897087);
+emit_32(3275968545);
+emit_32(3259703309);
+emit_32(1103680084);
+emit_32(3275968545);
+emit_32(3258679296);
+emit_32(1104794406);
+emit_32(3275968545);
+emit_32(3257655309);
+emit_32(1105582830);
+emit_32(3275968545);
+emit_32(3256631296);
+emit_32(1105670124);
+emit_32(3275968545);
+emit_32(3255607309);
+emit_32(1105372486);
+emit_32(3275968545);
+emit_32(3254386688);
+emit_32(1104924063);
+emit_32(3275968545);
+emit_32(3252338714);
+emit_32(1105134250);
+emit_32(3275968545);
+emit_32(3250290688);
+emit_32(1105252739);
+emit_32(3275968545);
+emit_32(3248242714);
+emit_32(1105713693);
+emit_32(3275968545);
+emit_32(3245998080);
+emit_32(1105505760);
+emit_32(3275968545);
+emit_32(3241902132);
+emit_32(1104815692);
+emit_32(3275968545);
+emit_32(3237609472);
+emit_32(1104575830);
+emit_32(3275968545);
+emit_32(3229220864);
+emit_32(1103816871);
+emit_32(3275968545);
+emit_32(0);
+emit_32(1102689547);
+emit_32(3275968545);
+emit_32(1081737216);
+emit_32(1102629726);
+emit_32(3275968545);
+emit_32(3279552512);
+emit_32(1101111021);
+emit_32(3276224528);
+emit_32(3279296528);
+emit_32(1100789580);
+emit_32(3276224528);
+emit_32(3279040545);
+emit_32(1101187724);
+emit_32(3276224528);
+emit_32(3278784496);
+emit_32(1101544450);
+emit_32(3276224528);
+emit_32(3278528512);
+emit_32(1101809215);
+emit_32(3276224528);
+emit_32(3278272528);
+emit_32(1101364409);
+emit_32(3276224528);
+emit_32(3278016545);
+emit_32(1100966999);
+emit_32(3276224528);
+emit_32(3277760496);
+emit_32(1100334603);
+emit_32(3276224528);
+emit_32(3277504512);
+emit_32(1099684538);
+emit_32(3276224528);
+emit_32(3277248528);
+emit_32(1097905000);
+emit_32(3276224528);
+emit_32(3276992545);
+emit_32(1096189949);
+emit_32(3276224528);
+emit_32(3276736496);
+emit_32(1093369908);
+emit_32(3276224528);
+emit_32(3276480512);
+emit_32(1090856430);
+emit_32(3276224528);
+emit_32(3276224528);
+emit_32(1089059569);
+emit_32(3276224528);
+emit_32(3275968545);
+emit_32(1088475764);
+emit_32(3276224528);
+emit_32(3275712496);
+emit_32(1089236128);
+emit_32(3276224528);
+emit_32(3275456512);
+emit_32(1088316066);
+emit_32(3276224528);
+emit_32(3275200528);
+emit_32(1087626375);
+emit_32(3276224528);
+emit_32(3274944545);
+emit_32(1087484629);
+emit_32(3276224528);
+emit_32(3274688496);
+emit_32(1087038397);
+emit_32(3276224528);
+emit_32(3274432512);
+emit_32(1084227794);
+emit_32(3276224528);
+emit_32(3274176528);
+emit_32(1087406111);
+emit_32(3276224528);
+emit_32(3273920545);
+emit_32(1087788003);
+emit_32(3276224528);
+emit_32(3273664496);
+emit_32(1085636639);
+emit_32(3276224528);
+emit_32(3273408512);
+emit_32(1084012206);
+emit_32(3276224528);
+emit_32(3273152528);
+emit_32(1079773149);
+emit_32(3276224528);
+emit_32(3272896545);
+emit_32(1074099640);
+emit_32(3276224528);
+emit_32(3272640496);
+emit_32(1081570199);
+emit_32(3276224528);
+emit_32(3272384512);
+emit_32(1086505511);
+emit_32(3276224528);
+emit_32(3272128528);
+emit_32(1088421783);
+emit_32(3276224528);
+emit_32(3271872545);
+emit_32(1090863057);
+emit_32(3276224528);
+emit_32(3271616496);
+emit_32(1091104240);
+emit_32(3276224528);
+emit_32(3271163904);
+emit_32(1090801149);
+emit_32(3276224528);
+emit_32(3270651937);
+emit_32(1091187329);
+emit_32(3276224528);
+emit_32(3270139970);
+emit_32(1091684071);
+emit_32(3276224528);
+emit_32(3269627871);
+emit_32(1092334691);
+emit_32(3276224528);
+emit_32(3269115904);
+emit_32(1091715549);
+emit_32(3276224528);
+emit_32(3268603937);
+emit_32(1091937239);
+emit_32(3276224528);
+emit_32(3268091970);
+emit_32(1092157765);
+emit_32(3276224528);
+emit_32(3267579911);
+emit_32(1092352643);
+emit_32(3276224528);
+emit_32(3267067904);
+emit_32(1093649249);
+emit_32(3276224528);
+emit_32(3266555911);
+emit_32(1095125015);
+emit_32(3276224528);
+emit_32(3266043904);
+emit_32(1096433743);
+emit_32(3276224528);
+emit_32(3265531911);
+emit_32(1098895694);
+emit_32(3276224528);
+emit_32(3265019904);
+emit_32(1099846805);
+emit_32(3276224528);
+emit_32(3264507911);
+emit_32(1100394109);
+emit_32(3276224528);
+emit_32(3263995904);
+emit_32(1101147301);
+emit_32(3276224528);
+emit_32(3263483911);
+emit_32(1102840332);
+emit_32(3276224528);
+emit_32(3262775296);
+emit_32(1103420352);
+emit_32(3276224528);
+emit_32(3261751309);
+emit_32(1103784994);
+emit_32(3276224528);
+emit_32(3260727296);
+emit_32(1103743890);
+emit_32(3276224528);
+emit_32(3259703309);
+emit_32(1103097863);
+emit_32(3276224528);
+emit_32(3258679296);
+emit_32(1103438807);
+emit_32(3276224528);
+emit_32(3257655309);
+emit_32(1104475534);
+emit_32(3276224528);
+emit_32(3256631296);
+emit_32(1104961811);
+emit_32(3276224528);
+emit_32(3255607309);
+emit_32(1104919763);
+emit_32(3276224528);
+emit_32(3254386688);
+emit_32(1104827174);
+emit_32(3276224528);
+emit_32(3252338714);
+emit_32(1104406905);
+emit_32(3276224528);
+emit_32(3250290688);
+emit_32(1104336860);
+emit_32(3276224528);
+emit_32(3248242714);
+emit_32(1104244218);
+emit_32(3276224528);
+emit_32(3245998080);
+emit_32(1104283592);
+emit_32(3276224528);
+emit_32(3241902132);
+emit_32(1104029627);
+emit_32(3276224528);
+emit_32(3237609472);
+emit_32(1103767326);
+emit_32(3276224528);
+emit_32(3229220864);
+emit_32(1102780406);
+emit_32(3276224528);
+emit_32(0);
+emit_32(1102353111);
+emit_32(3276224528);
+emit_32(1081737216);
+emit_32(1101834591);
+emit_32(3276224528);
+emit_32(3279552512);
+emit_32(1100665376);
+emit_32(3276480512);
+emit_32(3279296528);
+emit_32(1100635911);
+emit_32(3276480512);
+emit_32(3279040545);
+emit_32(1100599001);
+emit_32(3276480512);
+emit_32(3278784496);
+emit_32(1100704593);
+emit_32(3276480512);
+emit_32(3278528512);
+emit_32(1100706847);
+emit_32(3276480512);
+emit_32(3278272528);
+emit_32(1100641940);
+emit_32(3276480512);
+emit_32(3278016545);
+emit_32(1100067373);
+emit_32(3276480512);
+emit_32(3277760496);
+emit_32(1099870817);
+emit_32(3276480512);
+emit_32(3277504512);
+emit_32(1099360738);
+emit_32(3276480512);
+emit_32(3277248528);
+emit_32(1097705875);
+emit_32(3276480512);
+emit_32(3276992545);
+emit_32(1095158989);
+emit_32(3276480512);
+emit_32(3276736496);
+emit_32(1092654884);
+emit_32(3276480512);
+emit_32(3276480512);
+emit_32(1091569199);
+emit_32(3276480512);
+emit_32(3276224528);
+emit_32(1091162174);
+emit_32(3276480512);
+emit_32(3275968545);
+emit_32(1090619556);
+emit_32(3276480512);
+emit_32(3275712496);
+emit_32(1090709283);
+emit_32(3276480512);
+emit_32(3275456512);
+emit_32(1090001987);
+emit_32(3276480512);
+emit_32(3275200528);
+emit_32(1089948027);
+emit_32(3276480512);
+emit_32(3274944545);
+emit_32(1089924476);
+emit_32(3276480512);
+emit_32(3274688496);
+emit_32(1089951446);
+emit_32(3276480512);
+emit_32(3274432512);
+emit_32(1087795175);
+emit_32(3276480512);
+emit_32(3274176528);
+emit_32(1087558449);
+emit_32(3276480512);
+emit_32(3273920545);
+emit_32(1087330845);
+emit_32(3276480512);
+emit_32(3273664496);
+emit_32(1086250308);
+emit_32(3276480512);
+emit_32(3273408512);
+emit_32(1086015469);
+emit_32(3276480512);
+emit_32(3273152528);
+emit_32(1084541779);
+emit_32(3276480512);
+emit_32(3272896545);
+emit_32(1083402271);
+emit_32(3276480512);
+emit_32(3272640496);
+emit_32(1087092084);
+emit_32(3276480512);
+emit_32(3272384512);
+emit_32(1089818319);
+emit_32(3276480512);
+emit_32(3272128528);
+emit_32(1091233068);
+emit_32(3276480512);
+emit_32(3271872545);
+emit_32(1092479059);
+emit_32(3276480512);
+emit_32(3271616496);
+emit_32(1092547835);
+emit_32(3276480512);
+emit_32(3271163904);
+emit_32(1093621252);
+emit_32(3276480512);
+emit_32(3270651937);
+emit_32(1093588327);
+emit_32(3276480512);
+emit_32(3270139970);
+emit_32(1094120689);
+emit_32(3276480512);
+emit_32(3269627871);
+emit_32(1093722230);
+emit_32(3276480512);
+emit_32(3269115904);
+emit_32(1093927017);
+emit_32(3276480512);
+emit_32(3268603937);
+emit_32(1094469340);
+emit_32(3276480512);
+emit_32(3268091970);
+emit_32(1093549320);
+emit_32(3276480512);
+emit_32(3267579911);
+emit_32(1094062283);
+emit_32(3276480512);
+emit_32(3267067904);
+emit_32(1094889505);
+emit_32(3276480512);
+emit_32(3266555911);
+emit_32(1095517287);
+emit_32(3276480512);
+emit_32(3266043904);
+emit_32(1098112303);
+emit_32(3276480512);
+emit_32(3265531911);
+emit_32(1099944847);
+emit_32(3276480512);
+emit_32(3265019904);
+emit_32(1100805204);
+emit_32(3276480512);
+emit_32(3264507911);
+emit_32(1100813068);
+emit_32(3276480512);
+emit_32(3263995904);
+emit_32(1100890191);
+emit_32(3276480512);
+emit_32(3263483911);
+emit_32(1101765018);
+emit_32(3276480512);
+emit_32(3262775296);
+emit_32(1103166125);
+emit_32(3276480512);
+emit_32(3261751309);
+emit_32(1103581413);
+emit_32(3276480512);
+emit_32(3260727296);
+emit_32(1103239001);
+emit_32(3276480512);
+emit_32(3259703309);
+emit_32(1103115059);
+emit_32(3276480512);
+emit_32(3258679296);
+emit_32(1102634916);
+emit_32(3276480512);
+emit_32(3257655309);
+emit_32(1103117366);
+emit_32(3276480512);
+emit_32(3256631296);
+emit_32(1103874962);
+emit_32(3276480512);
+emit_32(3255607309);
+emit_32(1104123108);
+emit_32(3276480512);
+emit_32(3254386688);
+emit_32(1103935308);
+emit_32(3276480512);
+emit_32(3252338714);
+emit_32(1103665666);
+emit_32(3276480512);
+emit_32(3250290688);
+emit_32(1103444679);
+emit_32(3276480512);
+emit_32(3248242714);
+emit_32(1103627551);
+emit_32(3276480512);
+emit_32(3245998080);
+emit_32(1103736865);
+emit_32(3276480512);
+emit_32(3241902132);
+emit_32(1103212210);
+emit_32(3276480512);
+emit_32(3237609472);
+emit_32(1102649124);
+emit_32(3276480512);
+emit_32(3229220864);
+emit_32(1101755266);
+emit_32(3276480512);
+emit_32(0);
+emit_32(1101465335);
+emit_32(3276480512);
+emit_32(1081737216);
+emit_32(1101171471);
+emit_32(3276480512);
+emit_32(3279552512);
+emit_32(1100210871);
+emit_32(3276736496);
+emit_32(3279296528);
+emit_32(1100433483);
+emit_32(3276736496);
+emit_32(3279040545);
+emit_32(1099833855);
+emit_32(3276736496);
+emit_32(3278784496);
+emit_32(1100155611);
+emit_32(3276736496);
+emit_32(3278528512);
+emit_32(1099838049);
+emit_32(3276736496);
+emit_32(3278272528);
+emit_32(1100058775);
+emit_32(3276736496);
+emit_32(3278016545);
+emit_32(1099672899);
+emit_32(3276736496);
+emit_32(3277760496);
+emit_32(1099187932);
+emit_32(3276736496);
+emit_32(3277504512);
+emit_32(1098271477);
+emit_32(3276736496);
+emit_32(3277248528);
+emit_32(1096846357);
+emit_32(3276736496);
+emit_32(3276992545);
+emit_32(1094240646);
+emit_32(3276736496);
+emit_32(3276736496);
+emit_32(1093510208);
+emit_32(3276736496);
+emit_32(3276480512);
+emit_32(1093157677);
+emit_32(3276736496);
+emit_32(3276224528);
+emit_32(1093135971);
+emit_32(3276736496);
+emit_32(3275968545);
+emit_32(1092174626);
+emit_32(3276736496);
+emit_32(3275712496);
+emit_32(1092008343);
+emit_32(3276736496);
+emit_32(3275456512);
+emit_32(1091657206);
+emit_32(3276736496);
+emit_32(3275200528);
+emit_32(1090624757);
+emit_32(3276736496);
+emit_32(3274944545);
+emit_32(1091109598);
+emit_32(3276736496);
+emit_32(3274688496);
+emit_32(1091299097);
+emit_32(3276736496);
+emit_32(3274432512);
+emit_32(1091108078);
+emit_32(3276736496);
+emit_32(3274176528);
+emit_32(1088708464);
+emit_32(3276736496);
+emit_32(3273920545);
+emit_32(1088400979);
+emit_32(3276736496);
+emit_32(3273664496);
+emit_32(1088671869);
+emit_32(3276736496);
+emit_32(3273408512);
+emit_32(1086687543);
+emit_32(3276736496);
+emit_32(3273152528);
+emit_32(1087251530);
+emit_32(3276736496);
+emit_32(3272896545);
+emit_32(1088748687);
+emit_32(3276736496);
+emit_32(3272640496);
+emit_32(1089984811);
+emit_32(3276736496);
+emit_32(3272384512);
+emit_32(1091974946);
+emit_32(3276736496);
+emit_32(3272128528);
+emit_32(1092819930);
+emit_32(3276736496);
+emit_32(3271872545);
+emit_32(1093160927);
+emit_32(3276736496);
+emit_32(3271616496);
+emit_32(1094132118);
+emit_32(3276736496);
+emit_32(3271163904);
+emit_32(1095157206);
+emit_32(3276736496);
+emit_32(3270651937);
+emit_32(1095618580);
+emit_32(3276736496);
+emit_32(3270139970);
+emit_32(1096186069);
+emit_32(3276736496);
+emit_32(3269627871);
+emit_32(1095671113);
+emit_32(3276736496);
+emit_32(3269115904);
+emit_32(1095678348);
+emit_32(3276736496);
+emit_32(3268603937);
+emit_32(1095989776);
+emit_32(3276736496);
+emit_32(3268091970);
+emit_32(1095663878);
+emit_32(3276736496);
+emit_32(3267579911);
+emit_32(1095691351);
+emit_32(3276736496);
+emit_32(3267067904);
+emit_32(1096383306);
+emit_32(3276736496);
+emit_32(3266555911);
+emit_32(1097384277);
+emit_32(3276736496);
+emit_32(3266043904);
+emit_32(1099122606);
+emit_32(3276736496);
+emit_32(3265531911);
+emit_32(1100558316);
+emit_32(3276736496);
+emit_32(3265019904);
+emit_32(1101303015);
+emit_32(3276736496);
+emit_32(3264507911);
+emit_32(1101081556);
+emit_32(3276736496);
+emit_32(3263995904);
+emit_32(1100970826);
+emit_32(3276736496);
+emit_32(3263483911);
+emit_32(1101242984);
+emit_32(3276736496);
+emit_32(3262775296);
+emit_32(1102057728);
+emit_32(3276736496);
+emit_32(3261751309);
+emit_32(1102727925);
+emit_32(3276736496);
+emit_32(3260727296);
+emit_32(1102747638);
+emit_32(3276736496);
+emit_32(3259703309);
+emit_32(1102584322);
+emit_32(3276736496);
+emit_32(3258679296);
+emit_32(1102811234);
+emit_32(3276736496);
+emit_32(3257655309);
+emit_32(1102829742);
+emit_32(3276736496);
+emit_32(3256631296);
+emit_32(1103344278);
+emit_32(3276736496);
+emit_32(3255607309);
+emit_32(1103685065);
+emit_32(3276736496);
+emit_32(3254386688);
+emit_32(1103826413);
+emit_32(3276736496);
+emit_32(3252338714);
+emit_32(1103104626);
+emit_32(3276736496);
+emit_32(3250290688);
+emit_32(1102261571);
+emit_32(3276736496);
+emit_32(3248242714);
+emit_32(1102829899);
+emit_32(3276736496);
+emit_32(3245998080);
+emit_32(1103020530);
+emit_32(3276736496);
+emit_32(3241902132);
+emit_32(1102258477);
+emit_32(3276736496);
+emit_32(3237609472);
+emit_32(1101911084);
+emit_32(3276736496);
+emit_32(3229220864);
+emit_32(1101090364);
+emit_32(3276736496);
+emit_32(0);
+emit_32(1100301573);
+emit_32(3276736496);
+emit_32(1081737216);
+emit_32(1100121322);
+emit_32(3276736496);
+emit_32(3279552512);
+emit_32(1099773614);
+emit_32(3276992545);
+emit_32(3279296528);
+emit_32(1099858287);
+emit_32(3276992545);
+emit_32(3279040545);
+emit_32(1099688523);
+emit_32(3276992545);
+emit_32(3278784496);
+emit_32(1099279211);
+emit_32(3276992545);
+emit_32(3278528512);
+emit_32(1098814430);
+emit_32(3276992545);
+emit_32(3278272528);
+emit_32(1099260651);
+emit_32(3276992545);
+emit_32(3278016545);
+emit_32(1099269983);
+emit_32(3276992545);
+emit_32(3277760496);
+emit_32(1097458201);
+emit_32(3276992545);
+emit_32(3277504512);
+emit_32(1096491624);
+emit_32(3276992545);
+emit_32(3277248528);
+emit_32(1094951371);
+emit_32(3276992545);
+emit_32(3276992545);
+emit_32(1094228482);
+emit_32(3276992545);
+emit_32(3276736496);
+emit_32(1094425929);
+emit_32(3276992545);
+emit_32(3276480512);
+emit_32(1094168504);
+emit_32(3276992545);
+emit_32(3276224528);
+emit_32(1094579965);
+emit_32(3276992545);
+emit_32(3275968545);
+emit_32(1094436205);
+emit_32(3276992545);
+emit_32(3275712496);
+emit_32(1093278787);
+emit_32(3276992545);
+emit_32(3275456512);
+emit_32(1093351873);
+emit_32(3276992545);
+emit_32(3275200528);
+emit_32(1092131865);
+emit_32(3276992545);
+emit_32(3274944545);
+emit_32(1092250753);
+emit_32(3276992545);
+emit_32(3274688496);
+emit_32(1092049888);
+emit_32(3276992545);
+emit_32(3274432512);
+emit_32(1092031821);
+emit_32(3276992545);
+emit_32(3274176528);
+emit_32(1090545517);
+emit_32(3276992545);
+emit_32(3273920545);
+emit_32(1087815580);
+emit_32(3276992545);
+emit_32(3273664496);
+emit_32(1088895152);
+emit_32(3276992545);
+emit_32(3273408512);
+emit_32(1089520607);
+emit_32(3276992545);
+emit_32(3273152528);
+emit_32(1091009407);
+emit_32(3276992545);
+emit_32(3272896545);
+emit_32(1091156585);
+emit_32(3276992545);
+emit_32(3272640496);
+emit_32(1092501331);
+emit_32(3276992545);
+emit_32(3272384512);
+emit_32(1093577002);
+emit_32(3276992545);
+emit_32(3272128528);
+emit_32(1094131384);
+emit_32(3276992545);
+emit_32(3271872545);
+emit_32(1095441999);
+emit_32(3276992545);
+emit_32(3271616496);
+emit_32(1096144126);
+emit_32(3276992545);
+emit_32(3271163904);
+emit_32(1097375574);
+emit_32(3276992545);
+emit_32(3270651937);
+emit_32(1097616746);
+emit_32(3276992545);
+emit_32(3270139970);
+emit_32(1098727817);
+emit_32(3276992545);
+emit_32(3269627871);
+emit_32(1098389442);
+emit_32(3276992545);
+emit_32(3269115904);
+emit_32(1097181902);
+emit_32(3276992545);
+emit_32(3268603937);
+emit_32(1097851522);
+emit_32(3276992545);
+emit_32(3268091970);
+emit_32(1097817234);
+emit_32(3276992545);
+emit_32(3267579911);
+emit_32(1098027054);
+emit_32(3276992545);
+emit_32(3267067904);
+emit_32(1098025691);
+emit_32(3276992545);
+emit_32(3266555911);
+emit_32(1099190816);
+emit_32(3276992545);
+emit_32(3266043904);
+emit_32(1100082420);
+emit_32(3276992545);
+emit_32(3265531911);
+emit_32(1100900257);
+emit_32(3276992545);
+emit_32(3265019904);
+emit_32(1101488351);
+emit_32(3276992545);
+emit_32(3264507911);
+emit_32(1101299188);
+emit_32(3276992545);
+emit_32(3263995904);
+emit_32(1101555565);
+emit_32(3276992545);
+emit_32(3263483911);
+emit_32(1101541671);
+emit_32(3276992545);
+emit_32(3262775296);
+emit_32(1101907414);
+emit_32(3276992545);
+emit_32(3261751309);
+emit_32(1102511446);
+emit_32(3276992545);
+emit_32(3260727296);
+emit_32(1102908490);
+emit_32(3276992545);
+emit_32(3259703309);
+emit_32(1102906130);
+emit_32(3276992545);
+emit_32(3258679296);
+emit_32(1102873153);
+emit_32(3276992545);
+emit_32(3257655309);
+emit_32(1103170057);
+emit_32(3276992545);
+emit_32(3256631296);
+emit_32(1103437234);
+emit_32(3276992545);
+emit_32(3255607309);
+emit_32(1103795952);
+emit_32(3276992545);
+emit_32(3254386688);
+emit_32(1103493018);
+emit_32(3276992545);
+emit_32(3252338714);
+emit_32(1102175378);
+emit_32(3276992545);
+emit_32(3250290688);
+emit_32(1101859861);
+emit_32(3276992545);
+emit_32(3248242714);
+emit_32(1102213756);
+emit_32(3276992545);
+emit_32(3245998080);
+emit_32(1102152676);
+emit_32(3276992545);
+emit_32(3241902132);
+emit_32(1101638559);
+emit_32(3276992545);
+emit_32(3237609472);
+emit_32(1101182167);
+emit_32(3276992545);
+emit_32(3229220864);
+emit_32(1100207830);
+emit_32(3276992545);
+emit_32(0);
+emit_32(1099526308);
+emit_32(3276992545);
+emit_32(1081737216);
+emit_32(1099020213);
+emit_32(3276992545);
+emit_32(3279552512);
+emit_32(1099775187);
+emit_32(3277248528);
+emit_32(3279296528);
+emit_32(1099528667);
+emit_32(3277248528);
+emit_32(3279040545);
+emit_32(1099794376);
+emit_32(3277248528);
+emit_32(3278784496);
+emit_32(1099371223);
+emit_32(3277248528);
+emit_32(3278528512);
+emit_32(1097562220);
+emit_32(3277248528);
+emit_32(3278272528);
+emit_32(1098308597);
+emit_32(3277248528);
+emit_32(3278016545);
+emit_32(1097403885);
+emit_32(3277248528);
+emit_32(3277760496);
+emit_32(1095946050);
+emit_32(3277248528);
+emit_32(3277504512);
+emit_32(1094735364);
+emit_32(3277248528);
+emit_32(3277248528);
+emit_32(1094678007);
+emit_32(3277248528);
+emit_32(3276992545);
+emit_32(1095274332);
+emit_32(3277248528);
+emit_32(3276736496);
+emit_32(1095321728);
+emit_32(3277248528);
+emit_32(3276480512);
+emit_32(1095493170);
+emit_32(3277248528);
+emit_32(3276224528);
+emit_32(1095747135);
+emit_32(3277248528);
+emit_32(3275968545);
+emit_32(1095522216);
+emit_32(3277248528);
+emit_32(3275712496);
+emit_32(1094690590);
+emit_32(3277248528);
+emit_32(3275456512);
+emit_32(1094638056);
+emit_32(3277248528);
+emit_32(3275200528);
+emit_32(1093416570);
+emit_32(3277248528);
+emit_32(3274944545);
+emit_32(1092979314);
+emit_32(3277248528);
+emit_32(3274688496);
+emit_32(1092811961);
+emit_32(3277248528);
+emit_32(3274432512);
+emit_32(1093012554);
+emit_32(3277248528);
+emit_32(3274176528);
+emit_32(1091374384);
+emit_32(3277248528);
+emit_32(3273920545);
+emit_32(1089032851);
+emit_32(3277248528);
+emit_32(3273664496);
+emit_32(1090993437);
+emit_32(3277248528);
+emit_32(3273408512);
+emit_32(1092377368);
+emit_32(3277248528);
+emit_32(3273152528);
+emit_32(1093095077);
+emit_32(3277248528);
+emit_32(3272896545);
+emit_32(1093715519);
+emit_32(3277248528);
+emit_32(3272640496);
+emit_32(1094921486);
+emit_32(3277248528);
+emit_32(3272384512);
+emit_32(1096565129);
+emit_32(3277248528);
+emit_32(3272128528);
+emit_32(1097767112);
+emit_32(3277248528);
+emit_32(3271872545);
+emit_32(1098339005);
+emit_32(3277248528);
+emit_32(3271616496);
+emit_32(1099085958);
+emit_32(3277248528);
+emit_32(3271163904);
+emit_32(1099220281);
+emit_32(3277248528);
+emit_32(3270651937);
+emit_32(1099411227);
+emit_32(3277248528);
+emit_32(3270139970);
+emit_32(1099194958);
+emit_32(3277248528);
+emit_32(3269627871);
+emit_32(1099275174);
+emit_32(3277248528);
+emit_32(3269115904);
+emit_32(1099273968);
+emit_32(3277248528);
+emit_32(3268603937);
+emit_32(1098980681);
+emit_32(3277248528);
+emit_32(3268091970);
+emit_32(1098318243);
+emit_32(3277248528);
+emit_32(3267579911);
+emit_32(1098900413);
+emit_32(3277248528);
+emit_32(3267067904);
+emit_32(1099325086);
+emit_32(3277248528);
+emit_32(3266555911);
+emit_32(1100242695);
+emit_32(3277248528);
+emit_32(3266043904);
+emit_32(1101153383);
+emit_32(3277248528);
+emit_32(3265531911);
+emit_32(1101448505);
+emit_32(3277248528);
+emit_32(3265019904);
+emit_32(1101666976);
+emit_32(3277248528);
+emit_32(3264507911);
+emit_32(1102125203);
+emit_32(3277248528);
+emit_32(3263995904);
+emit_32(1102137996);
+emit_32(3277248528);
+emit_32(3263483911);
+emit_32(1101933104);
+emit_32(3277248528);
+emit_32(3262775296);
+emit_32(1102603669);
+emit_32(3277248528);
+emit_32(3261751309);
+emit_32(1102617615);
+emit_32(3277248528);
+emit_32(3260727296);
+emit_32(1103215355);
+emit_32(3277248528);
+emit_32(3259703309);
+emit_32(1103071281);
+emit_32(3277248528);
+emit_32(3258679296);
+emit_32(1102637957);
+emit_32(3277248528);
+emit_32(3257655309);
+emit_32(1103331118);
+emit_32(3277248528);
+emit_32(3256631296);
+emit_32(1104015943);
+emit_32(3277248528);
+emit_32(3255607309);
+emit_32(1103436710);
+emit_32(3277248528);
+emit_32(3254386688);
+emit_32(1102725618);
+emit_32(3277248528);
+emit_32(3252338714);
+emit_32(1101979084);
+emit_32(3277248528);
+emit_32(3250290688);
+emit_32(1101652401);
+emit_32(3277248528);
+emit_32(3248242714);
+emit_32(1101690778);
+emit_32(3277248528);
+emit_32(3245998080);
+emit_32(1101385643);
+emit_32(3277248528);
+emit_32(3241902132);
+emit_32(1100831785);
+emit_32(3277248528);
+emit_32(3237609472);
+emit_32(1100385721);
+emit_32(3277248528);
+emit_32(3229220864);
+emit_32(1099248645);
+emit_32(3277248528);
+emit_32(0);
+emit_32(1097731041);
+emit_32(3277248528);
+emit_32(1081737216);
+emit_32(1097108292);
+emit_32(3277248528);
+emit_32(3279552512);
+emit_32(1099513148);
+emit_32(3277504512);
+emit_32(3279296528);
+emit_32(1099237687);
+emit_32(3277504512);
+emit_32(3279040545);
+emit_32(1099823002);
+emit_32(3277504512);
+emit_32(3278784496);
+emit_32(1099636094);
+emit_32(3277504512);
+emit_32(3278528512);
+emit_32(1098146172);
+emit_32(3277504512);
+emit_32(3278272528);
+emit_32(1096179673);
+emit_32(3277504512);
+emit_32(3278016545);
+emit_32(1095619209);
+emit_32(3277504512);
+emit_32(3277760496);
+emit_32(1095051510);
+emit_32(3277504512);
+emit_32(3277504512);
+emit_32(1094914041);
+emit_32(3277504512);
+emit_32(3277248528);
+emit_32(1095143680);
+emit_32(3277504512);
+emit_32(3276992545);
+emit_32(1095686213);
+emit_32(3277504512);
+emit_32(3276736496);
+emit_32(1096167719);
+emit_32(3277504512);
+emit_32(3276480512);
+emit_32(1096217212);
+emit_32(3277504512);
+emit_32(3276224528);
+emit_32(1095494009);
+emit_32(3277504512);
+emit_32(3275968545);
+emit_32(1095282721);
+emit_32(3277504512);
+emit_32(3275712496);
+emit_32(1094864024);
+emit_32(3277504512);
+emit_32(3275456512);
+emit_32(1095079402);
+emit_32(3277504512);
+emit_32(3275200528);
+emit_32(1093909506);
+emit_32(3277504512);
+emit_32(3274944545);
+emit_32(1094085876);
+emit_32(3277504512);
+emit_32(3274688496);
+emit_32(1093922193);
+emit_32(3277504512);
+emit_32(3274432512);
+emit_32(1093002173);
+emit_32(3277504512);
+emit_32(3274176528);
+emit_32(1091809376);
+emit_32(3277504512);
+emit_32(3273920545);
+emit_32(1090895154);
+emit_32(3277504512);
+emit_32(3273664496);
+emit_32(1092994938);
+emit_32(3277504512);
+emit_32(3273408512);
+emit_32(1094548613);
+emit_32(3277504512);
+emit_32(3273152528);
+emit_32(1095987783);
+emit_32(3277504512);
+emit_32(3272896545);
+emit_32(1096416022);
+emit_32(3277504512);
+emit_32(3272640496);
+emit_32(1097685323);
+emit_32(3277504512);
+emit_32(3272384512);
+emit_32(1098440927);
+emit_32(3277504512);
+emit_32(3272128528);
+emit_32(1099405512);
+emit_32(3277504512);
+emit_32(3271872545);
+emit_32(1099913599);
+emit_32(3277504512);
+emit_32(3271616496);
+emit_32(1099823422);
+emit_32(3277504512);
+emit_32(3271163904);
+emit_32(1099863373);
+emit_32(3277504512);
+emit_32(3270651937);
+emit_32(1099663042);
+emit_32(3277504512);
+emit_32(3270139970);
+emit_32(1099637929);
+emit_32(3277504512);
+emit_32(3269627871);
+emit_32(1099948936);
+emit_32(3277504512);
+emit_32(3269115904);
+emit_32(1099967024);
+emit_32(3277504512);
+emit_32(3268603937);
+emit_32(1099787770);
+emit_32(3277504512);
+emit_32(3268091970);
+emit_32(1099629540);
+emit_32(3277504512);
+emit_32(3267579911);
+emit_32(1099729889);
+emit_32(3277504512);
+emit_32(3267067904);
+emit_32(1099959737);
+emit_32(3277504512);
+emit_32(3266555911);
+emit_32(1100461585);
+emit_32(3277504512);
+emit_32(3266043904);
+emit_32(1101443996);
+emit_32(3277504512);
+emit_32(3265531911);
+emit_32(1102161904);
+emit_32(3277504512);
+emit_32(3265019904);
+emit_32(1102642623);
+emit_32(3277504512);
+emit_32(3264507911);
+emit_32(1102254703);
+emit_32(3277504512);
+emit_32(3263995904);
+emit_32(1102207464);
+emit_32(3277504512);
+emit_32(3263483911);
+emit_32(1101959424);
+emit_32(3277504512);
+emit_32(3262775296);
+emit_32(1102549248);
+emit_32(3277504512);
+emit_32(3261751309);
+emit_32(1103235488);
+emit_32(3277504512);
+emit_32(3260727296);
+emit_32(1103408923);
+emit_32(3277504512);
+emit_32(3259703309);
+emit_32(1103077258);
+emit_32(3277504512);
+emit_32(3258679296);
+emit_32(1102537084);
+emit_32(3277504512);
+emit_32(3257655309);
+emit_32(1103679455);
+emit_32(3277504512);
+emit_32(3256631296);
+emit_32(1103709654);
+emit_32(3277504512);
+emit_32(3255607309);
+emit_32(1102899891);
+emit_32(3277504512);
+emit_32(3254386688);
+emit_32(1101944534);
+emit_32(3277504512);
+emit_32(3252338714);
+emit_32(1101169793);
+emit_32(3277504512);
+emit_32(3250290688);
+emit_32(1100964273);
+emit_32(3277504512);
+emit_32(3248242714);
+emit_32(1101176085);
+emit_32(3277504512);
+emit_32(3245998080);
+emit_32(1100580284);
+emit_32(3277504512);
+emit_32(3241902132);
+emit_32(1099596143);
+emit_32(3277504512);
+emit_32(3237609472);
+emit_32(1099177394);
+emit_32(3277504512);
+emit_32(3229220864);
+emit_32(1098487274);
+emit_32(3277504512);
+emit_32(0);
+emit_32(1096586625);
+emit_32(3277504512);
+emit_32(1081737216);
+emit_32(1096047133);
+emit_32(3277504512);
+emit_32(3279552512);
+emit_32(1099302751);
+emit_32(3277760496);
+emit_32(3279296528);
+emit_32(1099310930);
+emit_32(3277760496);
+emit_32(3279040545);
+emit_32(1099757833);
+emit_32(3277760496);
+emit_32(3278784496);
+emit_32(1099826410);
+emit_32(3277760496);
+emit_32(3278528512);
+emit_32(1098603771);
+emit_32(3277760496);
+emit_32(3278272528);
+emit_32(1096803575);
+emit_32(3277760496);
+emit_32(3278016545);
+emit_32(1095899388);
+emit_32(3277760496);
+emit_32(3277760496);
+emit_32(1096413925);
+emit_32(3277760496);
+emit_32(3277504512);
+emit_32(1096685925);
+emit_32(3277760496);
+emit_32(3277248528);
+emit_32(1096488373);
+emit_32(3277760496);
+emit_32(3276992545);
+emit_32(1096023854);
+emit_32(3277760496);
+emit_32(3276736496);
+emit_32(1096726505);
+emit_32(3277760496);
+emit_32(3276480512);
+emit_32(1097672845);
+emit_32(3277760496);
+emit_32(3276224528);
+emit_32(1097630587);
+emit_32(3277760496);
+emit_32(3275968545);
+emit_32(1097242300);
+emit_32(3277760496);
+emit_32(3275712496);
+emit_32(1096015780);
+emit_32(3277760496);
+emit_32(3275456512);
+emit_32(1095966707);
+emit_32(3277760496);
+emit_32(3275200528);
+emit_32(1094654729);
+emit_32(3277760496);
+emit_32(3274944545);
+emit_32(1094504258);
+emit_32(3277760496);
+emit_32(3274688496);
+emit_32(1093927856);
+emit_32(3277760496);
+emit_32(3274432512);
+emit_32(1092392111);
+emit_32(3277760496);
+emit_32(3274176528);
+emit_32(1091411231);
+emit_32(3277760496);
+emit_32(3273920545);
+emit_32(1093339290);
+emit_32(3277760496);
+emit_32(3273664496);
+emit_32(1095670904);
+emit_32(3277760496);
+emit_32(3273408512);
+emit_32(1096393163);
+emit_32(3277760496);
+emit_32(3273152528);
+emit_32(1098248199);
+emit_32(3277760496);
+emit_32(3272896545);
+emit_32(1099000342);
+emit_32(3277760496);
+emit_32(3272640496);
+emit_32(1099390150);
+emit_32(3277760496);
+emit_32(3272384512);
+emit_32(1099453117);
+emit_32(3277760496);
+emit_32(3272128528);
+emit_32(1100216690);
+emit_32(3277760496);
+emit_32(3271872545);
+emit_32(1100387294);
+emit_32(3277760496);
+emit_32(3271616496);
+emit_32(1100623957);
+emit_32(3277760496);
+emit_32(3271163904);
+emit_32(1100583063);
+emit_32(3277760496);
+emit_32(3270651937);
+emit_32(1100270692);
+emit_32(3277760496);
+emit_32(3270139970);
+emit_32(1100221199);
+emit_32(3277760496);
+emit_32(3269627871);
+emit_32(1100837028);
+emit_32(3277760496);
+emit_32(3269115904);
+emit_32(1100744648);
+emit_32(3277760496);
+emit_32(3268603937);
+emit_32(1100729496);
+emit_32(3277760496);
+emit_32(3268091970);
+emit_32(1100349650);
+emit_32(3277760496);
+emit_32(3267579911);
+emit_32(1100277141);
+emit_32(3277760496);
+emit_32(3267067904);
+emit_32(1100539180);
+emit_32(3277760496);
+emit_32(3266555911);
+emit_32(1101285137);
+emit_32(3277760496);
+emit_32(3266043904);
+emit_32(1101760404);
+emit_32(3277760496);
+emit_32(3265531911);
+emit_32(1102151418);
+emit_32(3277760496);
+emit_32(3265019904);
+emit_32(1102545368);
+emit_32(3277760496);
+emit_32(3264507911);
+emit_32(1102327369);
+emit_32(3277760496);
+emit_32(3263995904);
+emit_32(1102437312);
+emit_32(3277760496);
+emit_32(3263483911);
+emit_32(1102836190);
+emit_32(3277760496);
+emit_32(3262775296);
+emit_32(1103463449);
+emit_32(3277760496);
+emit_32(3261751309);
+emit_32(1103612871);
+emit_32(3277760496);
+emit_32(3260727296);
+emit_32(1103521907);
+emit_32(3277760496);
+emit_32(3259703309);
+emit_32(1102694842);
+emit_32(3277760496);
+emit_32(3258679296);
+emit_32(1102314104);
+emit_32(3277760496);
+emit_32(3257655309);
+emit_32(1103092829);
+emit_32(3277760496);
+emit_32(3256631296);
+emit_32(1102811392);
+emit_32(3277760496);
+emit_32(3255607309);
+emit_32(1102399406);
+emit_32(3277760496);
+emit_32(3254386688);
+emit_32(1101424807);
+emit_32(3277760496);
+emit_32(3252338714);
+emit_32(1100416025);
+emit_32(3277760496);
+emit_32(3250290688);
+emit_32(1099956172);
+emit_32(3277760496);
+emit_32(3248242714);
+emit_32(1100071882);
+emit_32(3277760496);
+emit_32(3245998080);
+emit_32(1099877633);
+emit_32(3277760496);
+emit_32(3241902132);
+emit_32(1099019059);
+emit_32(3277760496);
+emit_32(3237609472);
+emit_32(1098372560);
+emit_32(3277760496);
+emit_32(3229220864);
+emit_32(1097025244);
+emit_32(3277760496);
+emit_32(0);
+emit_32(1095913230);
+emit_32(3277760496);
+emit_32(1081737216);
+emit_32(1095782787);
+emit_32(3277760496);
+emit_32(3279552512);
+emit_32(1098903349);
+emit_32(3278016545);
+emit_32(3279296528);
+emit_32(1099112225);
+emit_32(3278016545);
+emit_32(3279040545);
+emit_32(1099559495);
+emit_32(3278016545);
+emit_32(3278784496);
+emit_32(1099374422);
+emit_32(3278016545);
+emit_32(3278528512);
+emit_32(1099044802);
+emit_32(3278016545);
+emit_32(3278272528);
+emit_32(1099082498);
+emit_32(3278016545);
+emit_32(3278016545);
+emit_32(1098243061);
+emit_32(3278016545);
+emit_32(3277760496);
+emit_32(1097484626);
+emit_32(3278016545);
+emit_32(3277504512);
+emit_32(1098172282);
+emit_32(3278016545);
+emit_32(3277248528);
+emit_32(1097990039);
+emit_32(3278016545);
+emit_32(3276992545);
+emit_32(1097473301);
+emit_32(3278016545);
+emit_32(3276736496);
+emit_32(1098280600);
+emit_32(3278016545);
+emit_32(3276480512);
+emit_32(1098467561);
+emit_32(3278016545);
+emit_32(3276224528);
+emit_32(1098700449);
+emit_32(3278016545);
+emit_32(3275968545);
+emit_32(1097813354);
+emit_32(3278016545);
+emit_32(3275712496);
+emit_32(1097573020);
+emit_32(3278016545);
+emit_32(3275456512);
+emit_32(1096889034);
+emit_32(3278016545);
+emit_32(3275200528);
+emit_32(1095010930);
+emit_32(3278016545);
+emit_32(3274944545);
+emit_32(1094741446);
+emit_32(3278016545);
+emit_32(3274688496);
+emit_32(1093564105);
+emit_32(3278016545);
+emit_32(3274432512);
+emit_32(1092621330);
+emit_32(3278016545);
+emit_32(3274176528);
+emit_32(1092464757);
+emit_32(3278016545);
+emit_32(3273920545);
+emit_32(1094580175);
+emit_32(3278016545);
+emit_32(3273664496);
+emit_32(1096882219);
+emit_32(3278016545);
+emit_32(3273408512);
+emit_32(1098358718);
+emit_32(3278016545);
+emit_32(3273152528);
+emit_32(1099298662);
+emit_32(3278016545);
+emit_32(3272896545);
+emit_32(1099922617);
+emit_32(3278016545);
+emit_32(3272640496);
+emit_32(1100192521);
+emit_32(3278016545);
+emit_32(3272384512);
+emit_32(1100137470);
+emit_32(3278016545);
+emit_32(3272128528);
+emit_32(1101007893);
+emit_32(3278016545);
+emit_32(3271872545);
+emit_32(1101168640);
+emit_32(3278016545);
+emit_32(3271616496);
+emit_32(1100874252);
+emit_32(3278016545);
+emit_32(3271163904);
+emit_32(1100904346);
+emit_32(3278016545);
+emit_32(3270651937);
+emit_32(1100957142);
+emit_32(3278016545);
+emit_32(3270139970);
+emit_32(1101183110);
+emit_32(3278016545);
+emit_32(3269627871);
+emit_32(1101430574);
+emit_32(3278016545);
+emit_32(3269115904);
+emit_32(1101303906);
+emit_32(3278016545);
+emit_32(3268603937);
+emit_32(1101524317);
+emit_32(3278016545);
+emit_32(3268091970);
+emit_32(1101223481);
+emit_32(3278016545);
+emit_32(3267579911);
+emit_32(1100917768);
+emit_32(3278016545);
+emit_32(3267067904);
+emit_32(1100967523);
+emit_32(3278016545);
+emit_32(3266555911);
+emit_32(1101230506);
+emit_32(3278016545);
+emit_32(3266043904);
+emit_32(1101743889);
+emit_32(3278016545);
+emit_32(3265531911);
+emit_32(1102035865);
+emit_32(3278016545);
+emit_32(3265019904);
+emit_32(1102327683);
+emit_32(3278016545);
+emit_32(3264507911);
+emit_32(1102160803);
+emit_32(3278016545);
+emit_32(3263995904);
+emit_32(1102422737);
+emit_32(3278016545);
+emit_32(3263483911);
+emit_32(1102993582);
+emit_32(3278016545);
+emit_32(3262775296);
+emit_32(1103413274);
+emit_32(3278016545);
+emit_32(3261751309);
+emit_32(1103424966);
+emit_32(3278016545);
+emit_32(3260727296);
+emit_32(1102892656);
+emit_32(3278016545);
+emit_32(3259703309);
+emit_32(1102022495);
+emit_32(3278016545);
+emit_32(3258679296);
+emit_32(1101852259);
+emit_32(3278016545);
+emit_32(3257655309);
+emit_32(1102344408);
+emit_32(3278016545);
+emit_32(3256631296);
+emit_32(1102317198);
+emit_32(3278016545);
+emit_32(3255607309);
+emit_32(1101799883);
+emit_32(3278016545);
+emit_32(3254386688);
+emit_32(1100918922);
+emit_32(3278016545);
+emit_32(3252338714);
+emit_32(1099744779);
+emit_32(3278016545);
+emit_32(3250290688);
+emit_32(1098585945);
+emit_32(3278016545);
+emit_32(3248242714);
+emit_32(1098674235);
+emit_32(3278016545);
+emit_32(3245998080);
+emit_32(1098530685);
+emit_32(3278016545);
+emit_32(3241902132);
+emit_32(1097602066);
+emit_32(3278016545);
+emit_32(3237609472);
+emit_32(1097146565);
+emit_32(3278016545);
+emit_32(3229220864);
+emit_32(1096070935);
+emit_32(3278016545);
+emit_32(0);
+emit_32(1094636379);
+emit_32(3278016545);
+emit_32(1081737216);
+emit_32(1094685347);
+emit_32(3278016545);
+emit_32(3279552512);
+emit_32(1098113142);
+emit_32(3278272528);
+emit_32(3279296528);
+emit_32(1099020003);
+emit_32(3278272528);
+emit_32(3279040545);
+emit_32(1099561016);
+emit_32(3278272528);
+emit_32(3278784496);
+emit_32(1099848273);
+emit_32(3278272528);
+emit_32(3278528512);
+emit_32(1100167460);
+emit_32(3278272528);
+emit_32(3278272528);
+emit_32(1100256431);
+emit_32(3278272528);
+emit_32(3278016545);
+emit_32(1099679872);
+emit_32(3278272528);
+emit_32(3277760496);
+emit_32(1098851759);
+emit_32(3278272528);
+emit_32(3277504512);
+emit_32(1098385562);
+emit_32(3278272528);
+emit_32(3277248528);
+emit_32(1098603142);
+emit_32(3278272528);
+emit_32(3276992545);
+emit_32(1098517158);
+emit_32(3278272528);
+emit_32(3276736496);
+emit_32(1098595697);
+emit_32(3278272528);
+emit_32(3276480512);
+emit_32(1097738591);
+emit_32(3278272528);
+emit_32(3276224528);
+emit_32(1097722757);
+emit_32(3278272528);
+emit_32(3275968545);
+emit_32(1097226886);
+emit_32(3278272528);
+emit_32(3275712496);
+emit_32(1097415629);
+emit_32(3278272528);
+emit_32(3275456512);
+emit_32(1096617873);
+emit_32(3278272528);
+emit_32(3275200528);
+emit_32(1095510786);
+emit_32(3278272528);
+emit_32(3274944545);
+emit_32(1095328858);
+emit_32(3278272528);
+emit_32(3274688496);
+emit_32(1093740999);
+emit_32(3278272528);
+emit_32(3274432512);
+emit_32(1092633598);
+emit_32(3278272528);
+emit_32(3274176528);
+emit_32(1095320155);
+emit_32(3278272528);
+emit_32(3273920545);
+emit_32(1096140771);
+emit_32(3278272528);
+emit_32(3273664496);
+emit_32(1097600808);
+emit_32(3278272528);
+emit_32(3273408512);
+emit_32(1098894960);
+emit_32(3278272528);
+emit_32(3273152528);
+emit_32(1099788032);
+emit_32(3278272528);
+emit_32(3272896545);
+emit_32(1100230112);
+emit_32(3278272528);
+emit_32(3272640496);
+emit_32(1100219731);
+emit_32(3278272528);
+emit_32(3272384512);
+emit_32(1100734897);
+emit_32(3278272528);
+emit_32(3272128528);
+emit_32(1101173726);
+emit_32(3278272528);
+emit_32(3271872545);
+emit_32(1101152072);
+emit_32(3278272528);
+emit_32(3271616496);
+emit_32(1101550479);
+emit_32(3278272528);
+emit_32(3271163904);
+emit_32(1101252736);
+emit_32(3278272528);
+emit_32(3270651937);
+emit_32(1101467694);
+emit_32(3278272528);
+emit_32(3270139970);
+emit_32(1101808009);
+emit_32(3278272528);
+emit_32(3269627871);
+emit_32(1101705930);
+emit_32(3278272528);
+emit_32(3269115904);
+emit_32(1102054110);
+emit_32(3278272528);
+emit_32(3268603937);
+emit_32(1102131180);
+emit_32(3278272528);
+emit_32(3268091970);
+emit_32(1101898868);
+emit_32(3278272528);
+emit_32(3267579911);
+emit_32(1101280313);
+emit_32(3278272528);
+emit_32(3267067904);
+emit_32(1100809188);
+emit_32(3278272528);
+emit_32(3266555911);
+emit_32(1101005429);
+emit_32(3278272528);
+emit_32(3266043904);
+emit_32(1101565631);
+emit_32(3278272528);
+emit_32(3265531911);
+emit_32(1101958585);
+emit_32(3278272528);
+emit_32(3265019904);
+emit_32(1102447903);
+emit_32(3278272528);
+emit_32(3264507911);
+emit_32(1102259526);
+emit_32(3278272528);
+emit_32(3263995904);
+emit_32(1102073456);
+emit_32(3278272528);
+emit_32(3263483911);
+emit_32(1102367372);
+emit_32(3278272528);
+emit_32(3262775296);
+emit_32(1102600104);
+emit_32(3278272528);
+emit_32(3261751309);
+emit_32(1102289935);
+emit_32(3278272528);
+emit_32(3260727296);
+emit_32(1101835692);
+emit_32(3278272528);
+emit_32(3259703309);
+emit_32(1101049364);
+emit_32(3278272528);
+emit_32(3258679296);
+emit_32(1100957929);
+emit_32(3278272528);
+emit_32(3257655309);
+emit_32(1101280366);
+emit_32(3278272528);
+emit_32(3256631296);
+emit_32(1101113432);
+emit_32(3278272528);
+emit_32(3255607309);
+emit_32(1100449789);
+emit_32(3278272528);
+emit_32(3254386688);
+emit_32(1099921726);
+emit_32(3278272528);
+emit_32(3252338714);
+emit_32(1098223138);
+emit_32(3278272528);
+emit_32(3250290688);
+emit_32(1095989776);
+emit_32(3278272528);
+emit_32(3248242714);
+emit_32(1095913754);
+emit_32(3278272528);
+emit_32(3245998080);
+emit_32(1096548981);
+emit_32(3278272528);
+emit_32(3241902132);
+emit_32(1095493380);
+emit_32(3278272528);
+emit_32(3237609472);
+emit_32(1095273074);
+emit_32(3278272528);
+emit_32(3229220864);
+emit_32(1094758957);
+emit_32(3278272528);
+emit_32(0);
+emit_32(1093715414);
+emit_32(3278272528);
+emit_32(1081737216);
+emit_32(1093100529);
+emit_32(3278272528);
+emit_32(3279552512);
+emit_32(1098580387);
+emit_32(3278528512);
+emit_32(3279296528);
+emit_32(1099781479);
+emit_32(3278528512);
+emit_32(3279040545);
+emit_32(1100398041);
+emit_32(3278528512);
+emit_32(3278784496);
+emit_32(1100822715);
+emit_32(3278528512);
+emit_32(3278528512);
+emit_32(1100898841);
+emit_32(3278528512);
+emit_32(3278272528);
+emit_32(1100936538);
+emit_32(3278528512);
+emit_32(3278016545);
+emit_32(1100571528);
+emit_32(3278528512);
+emit_32(3277760496);
+emit_32(1099431674);
+emit_32(3278528512);
+emit_32(3277504512);
+emit_32(1098338586);
+emit_32(3278528512);
+emit_32(3277248528);
+emit_32(1098519046);
+emit_32(3278528512);
+emit_32(3276992545);
+emit_32(1098311533);
+emit_32(3278528512);
+emit_32(3276736496);
+emit_32(1097988991);
+emit_32(3278528512);
+emit_32(3276480512);
+emit_32(1097511993);
+emit_32(3278528512);
+emit_32(3276224528);
+emit_32(1097291373);
+emit_32(3278528512);
+emit_32(3275968545);
+emit_32(1096949852);
+emit_32(3278528512);
+emit_32(3275712496);
+emit_32(1096869007);
+emit_32(3278528512);
+emit_32(3275456512);
+emit_32(1096154717);
+emit_32(3278528512);
+emit_32(3275200528);
+emit_32(1096008126);
+emit_32(3278528512);
+emit_32(3274944545);
+emit_32(1096113612);
+emit_32(3278528512);
+emit_32(3274688496);
+emit_32(1094873986);
+emit_32(3278528512);
+emit_32(3274432512);
+emit_32(1094166512);
+emit_32(3278528512);
+emit_32(3274176528);
+emit_32(1095465592);
+emit_32(3278528512);
+emit_32(3273920545);
+emit_32(1096875193);
+emit_32(3278528512);
+emit_32(3273664496);
+emit_32(1098212128);
+emit_32(3278528512);
+emit_32(3273408512);
+emit_32(1099232497);
+emit_32(3278528512);
+emit_32(3273152528);
+emit_32(1099782003);
+emit_32(3278528512);
+emit_32(3272896545);
+emit_32(1100205261);
+emit_32(3278528512);
+emit_32(3272640496);
+emit_32(1100910690);
+emit_32(3278528512);
+emit_32(3272384512);
+emit_32(1100846098);
+emit_32(3278528512);
+emit_32(3272128528);
+emit_32(1101316856);
+emit_32(3278528512);
+emit_32(3271872545);
+emit_32(1101188668);
+emit_32(3278528512);
+emit_32(3271616496);
+emit_32(1101462451);
+emit_32(3278528512);
+emit_32(3271163904);
+emit_32(1102020713);
+emit_32(3278528512);
+emit_32(3270651937);
+emit_32(1101996543);
+emit_32(3278528512);
+emit_32(3270139970);
+emit_32(1102033138);
+emit_32(3278528512);
+emit_32(3269627871);
+emit_32(1102145231);
+emit_32(3278528512);
+emit_32(3269115904);
+emit_32(1102204423);
+emit_32(3278528512);
+emit_32(3268603937);
+emit_32(1102633396);
+emit_32(3278528512);
+emit_32(3268091970);
+emit_32(1102830685);
+emit_32(3278528512);
+emit_32(3267579911);
+emit_32(1102366271);
+emit_32(3278528512);
+emit_32(3267067904);
+emit_32(1101693819);
+emit_32(3278528512);
+emit_32(3266555911);
+emit_32(1100984300);
+emit_32(3278528512);
+emit_32(3266043904);
+emit_32(1101757311);
+emit_32(3278528512);
+emit_32(3265531911);
+emit_32(1102038486);
+emit_32(3278528512);
+emit_32(3265019904);
+emit_32(1102416078);
+emit_32(3278528512);
+emit_32(3264507911);
+emit_32(1102030360);
+emit_32(3278528512);
+emit_32(3263995904);
+emit_32(1101690831);
+emit_32(3278528512);
+emit_32(3263483911);
+emit_32(1101744256);
+emit_32(3278528512);
+emit_32(3262775296);
+emit_32(1101786199);
+emit_32(3278528512);
+emit_32(3261751309);
+emit_32(1101134142);
+emit_32(3278528512);
+emit_32(3260727296);
+emit_32(1100560990);
+emit_32(3278528512);
+emit_32(3259703309);
+emit_32(1099935148);
+emit_32(3278528512);
+emit_32(3258679296);
+emit_32(1099979765);
+emit_32(3278528512);
+emit_32(3257655309);
+emit_32(1100145597);
+emit_32(3278528512);
+emit_32(3256631296);
+emit_32(1099694499);
+emit_32(3278528512);
+emit_32(3255607309);
+emit_32(1099317589);
+emit_32(3278528512);
+emit_32(3254386688);
+emit_32(1098312896);
+emit_32(3278528512);
+emit_32(3252338714);
+emit_32(1096783967);
+emit_32(3278528512);
+emit_32(3250290688);
+emit_32(1094909218);
+emit_32(3278528512);
+emit_32(3248242714);
+emit_32(1094802158);
+emit_32(3278528512);
+emit_32(3245998080);
+emit_32(1094635749);
+emit_32(3278528512);
+emit_32(3241902132);
+emit_32(1093985423);
+emit_32(3278528512);
+emit_32(3237609472);
+emit_32(1093684376);
+emit_32(3278528512);
+emit_32(3229220864);
+emit_32(1092749885);
+emit_32(3278528512);
+emit_32(0);
+emit_32(1092334471);
+emit_32(3278528512);
+emit_32(1081737216);
+emit_32(1091412678);
+emit_32(3278528512);
+emit_32(3279552512);
+emit_32(1099246495);
+emit_32(3278784496);
+emit_32(3279296528);
+emit_32(1100406168);
+emit_32(3278784496);
+emit_32(3279040545);
+emit_32(1100809188);
+emit_32(3278784496);
+emit_32(3278784496);
+emit_32(1101173726);
+emit_32(3278784496);
+emit_32(3278528512);
+emit_32(1101440798);
+emit_32(3278784496);
+emit_32(3278272528);
+emit_32(1101323148);
+emit_32(3278784496);
+emit_32(3278016545);
+emit_32(1100602724);
+emit_32(3278784496);
+emit_32(3277760496);
+emit_32(1099957325);
+emit_32(3278784496);
+emit_32(3277504512);
+emit_32(1099164077);
+emit_32(3278784496);
+emit_32(3277248528);
+emit_32(1098681680);
+emit_32(3278784496);
+emit_32(3276992545);
+emit_32(1098343724);
+emit_32(3278784496);
+emit_32(3276736496);
+emit_32(1097173198);
+emit_32(3278784496);
+emit_32(3276480512);
+emit_32(1097496684);
+emit_32(3278784496);
+emit_32(3276224528);
+emit_32(1096577607);
+emit_32(3278784496);
+emit_32(3275968545);
+emit_32(1096202217);
+emit_32(3278784496);
+emit_32(3275712496);
+emit_32(1095980968);
+emit_32(3278784496);
+emit_32(3275456512);
+emit_32(1095241407);
+emit_32(3278784496);
+emit_32(3275200528);
+emit_32(1095384223);
+emit_32(3278784496);
+emit_32(3274944545);
+emit_32(1095777649);
+emit_32(3278784496);
+emit_32(3274688496);
+emit_32(1095404356);
+emit_32(3278784496);
+emit_32(3274432512);
+emit_32(1096055626);
+emit_32(3278784496);
+emit_32(3274176528);
+emit_32(1096762996);
+emit_32(3278784496);
+emit_32(3273920545);
+emit_32(1097732404);
+emit_32(3278784496);
+emit_32(3273664496);
+emit_32(1099124913);
+emit_32(3278784496);
+emit_32(3273408512);
+emit_32(1099487615);
+emit_32(3278784496);
+emit_32(3273152528);
+emit_32(1099905263);
+emit_32(3278784496);
+emit_32(3272896545);
+emit_32(1100576090);
+emit_32(3278784496);
+emit_32(3272640496);
+emit_32(1101366716);
+emit_32(3278784496);
+emit_32(3272384512);
+emit_32(1100955150);
+emit_32(3278784496);
+emit_32(3272128528);
+emit_32(1101465911);
+emit_32(3278784496);
+emit_32(3271872545);
+emit_32(1101897872);
+emit_32(3278784496);
+emit_32(3271616496);
+emit_32(1101968074);
+emit_32(3278784496);
+emit_32(3271163904);
+emit_32(1102322545);
+emit_32(3278784496);
+emit_32(3270651937);
+emit_32(1102468507);
+emit_32(3278784496);
+emit_32(3270139970);
+emit_32(1102636699);
+emit_32(3278784496);
+emit_32(3269627871);
+emit_32(1102593812);
+emit_32(3278784496);
+emit_32(3269115904);
+emit_32(1102955781);
+emit_32(3278784496);
+emit_32(3268603937);
+emit_32(1103423183);
+emit_32(3278784496);
+emit_32(3268091970);
+emit_32(1103413484);
+emit_32(3278784496);
+emit_32(3267579911);
+emit_32(1103118467);
+emit_32(3278784496);
+emit_32(3267067904);
+emit_32(1102692536);
+emit_32(3278784496);
+emit_32(3266555911);
+emit_32(1101705878);
+emit_32(3278784496);
+emit_32(3266043904);
+emit_32(1101340082);
+emit_32(3278784496);
+emit_32(3265531911);
+emit_32(1102200596);
+emit_32(3278784496);
+emit_32(3265019904);
+emit_32(1102209457);
+emit_32(3278784496);
+emit_32(3264507911);
+emit_32(1101833280);
+emit_32(3278784496);
+emit_32(3263995904);
+emit_32(1101273812);
+emit_32(3278784496);
+emit_32(3263483911);
+emit_32(1101051042);
+emit_32(3278784496);
+emit_32(3262775296);
+emit_32(1100997722);
+emit_32(3278784496);
+emit_32(3261751309);
+emit_32(1100555118);
+emit_32(3278784496);
+emit_32(3260727296);
+emit_32(1099388420);
+emit_32(3278784496);
+emit_32(3259703309);
+emit_32(1098921070);
+emit_32(3278784496);
+emit_32(3258679296);
+emit_32(1098291295);
+emit_32(3278784496);
+emit_32(3257655309);
+emit_32(1097914751);
+emit_32(3278784496);
+emit_32(3256631296);
+emit_32(1098783811);
+emit_32(3278784496);
+emit_32(3255607309);
+emit_32(1097200986);
+emit_32(3278784496);
+emit_32(3254386688);
+emit_32(1095754580);
+emit_32(3278784496);
+emit_32(3252338714);
+emit_32(1094603034);
+emit_32(3278784496);
+emit_32(3250290688);
+emit_32(1092756596);
+emit_32(3278784496);
+emit_32(3248242714);
+emit_32(1093057118);
+emit_32(3278784496);
+emit_32(3245998080);
+emit_32(1093385742);
+emit_32(3278784496);
+emit_32(3241902132);
+emit_32(1092478325);
+emit_32(3278784496);
+emit_32(3237609472);
+emit_32(1091460850);
+emit_32(3278784496);
+emit_32(3229220864);
+emit_32(1090737647);
+emit_32(3278784496);
+emit_32(0);
+emit_32(1090290346);
+emit_32(3278784496);
+emit_32(1081737216);
+emit_32(1090509120);
+emit_32(3278784496);
+emit_32(3279552512);
+emit_32(1099149345);
+emit_32(3279040545);
+emit_32(3279296528);
+emit_32(1100408318);
+emit_32(3279040545);
+emit_32(3279040545);
+emit_32(1100800170);
+emit_32(3279040545);
+emit_32(3278784496);
+emit_32(1101432986);
+emit_32(3279040545);
+emit_32(3278528512);
+emit_32(1101564058);
+emit_32(3279040545);
+emit_32(3278272528);
+emit_32(1101179755);
+emit_32(3279040545);
+emit_32(3278016545);
+emit_32(1100480145);
+emit_32(3279040545);
+emit_32(3277760496);
+emit_32(1099858759);
+emit_32(3279040545);
+emit_32(3277504512);
+emit_32(1099623354);
+emit_32(3279040545);
+emit_32(3277248528);
+emit_32(1098996934);
+emit_32(3279040545);
+emit_32(3276992545);
+emit_32(1098237818);
+emit_32(3279040545);
+emit_32(3276736496);
+emit_32(1097341285);
+emit_32(3279040545);
+emit_32(3276480512);
+emit_32(1096845414);
+emit_32(3279040545);
+emit_32(3276224528);
+emit_32(1095838571);
+emit_32(3279040545);
+emit_32(3275968545);
+emit_32(1095836998);
+emit_32(3279040545);
+emit_32(3275712496);
+emit_32(1095004114);
+emit_32(3279040545);
+emit_32(3275456512);
+emit_32(1094881011);
+emit_32(3279040545);
+emit_32(3275200528);
+emit_32(1094801529);
+emit_32(3279040545);
+emit_32(3274944545);
+emit_32(1093872281);
+emit_32(3279040545);
+emit_32(3274688496);
+emit_32(1094479197);
+emit_32(3279040545);
+emit_32(3274432512);
+emit_32(1096306341);
+emit_32(3279040545);
+emit_32(3274176528);
+emit_32(1096403334);
+emit_32(3279040545);
+emit_32(3273920545);
+emit_32(1097374315);
+emit_32(3279040545);
+emit_32(3273664496);
+emit_32(1098966788);
+emit_32(3279040545);
+emit_32(3273408512);
+emit_32(1099462921);
+emit_32(3279040545);
+emit_32(3273152528);
+emit_32(1099984903);
+emit_32(3279040545);
+emit_32(3272896545);
+emit_32(1101000973);
+emit_32(3279040545);
+emit_32(3272640496);
+emit_32(1101297982);
+emit_32(3279040545);
+emit_32(3272384512);
+emit_32(1101298506);
+emit_32(3279040545);
+emit_32(3272128528);
+emit_32(1101350044);
+emit_32(3279040545);
+emit_32(3271872545);
+emit_32(1102416393);
+emit_32(3279040545);
+emit_32(3271616496);
+emit_32(1102828588);
+emit_32(3279040545);
+emit_32(3271163904);
+emit_32(1103097810);
+emit_32(3279040545);
+emit_32(3270651937);
+emit_32(1103270825);
+emit_32(3279040545);
+emit_32(3270139970);
+emit_32(1103513256);
+emit_32(3279040545);
+emit_32(3269627871);
+emit_32(1103154119);
+emit_32(3279040545);
+emit_32(3269115904);
+emit_32(1103932214);
+emit_32(3279040545);
+emit_32(3268603937);
+emit_32(1103727532);
+emit_32(3279040545);
+emit_32(3268091970);
+emit_32(1103627393);
+emit_32(3279040545);
+emit_32(3267579911);
+emit_32(1103400272);
+emit_32(3279040545);
+emit_32(3267067904);
+emit_32(1103403365);
+emit_32(3279040545);
+emit_32(3266555911);
+emit_32(1102403496);
+emit_32(3279040545);
+emit_32(3266043904);
+emit_32(1101353556);
+emit_32(3279040545);
+emit_32(3265531911);
+emit_32(1101619213);
+emit_32(3279040545);
+emit_32(3265019904);
+emit_32(1102006295);
+emit_32(3279040545);
+emit_32(3264507911);
+emit_32(1101503503);
+emit_32(3279040545);
+emit_32(3263995904);
+emit_32(1100538131);
+emit_32(3279040545);
+emit_32(3263483911);
+emit_32(1100080271);
+emit_32(3279040545);
+emit_32(3262775296);
+emit_32(1099418881);
+emit_32(3279040545);
+emit_32(3261751309);
+emit_32(1099399430);
+emit_32(3279040545);
+emit_32(3260727296);
+emit_32(1099101215);
+emit_32(3279040545);
+emit_32(3259703309);
+emit_32(1097408394);
+emit_32(3279040545);
+emit_32(3258679296);
+emit_32(1096341468);
+emit_32(3279040545);
+emit_32(3257655309);
+emit_32(1095779641);
+emit_32(3279040545);
+emit_32(3256631296);
+emit_32(1094671296);
+emit_32(3279040545);
+emit_32(3255607309);
+emit_32(1094154977);
+emit_32(3279040545);
+emit_32(3254386688);
+emit_32(1092748732);
+emit_32(3279040545);
+emit_32(3252338714);
+emit_32(1091621345);
+emit_32(3279040545);
+emit_32(3250290688);
+emit_32(1090704869);
+emit_32(3279040545);
+emit_32(3248242714);
+emit_32(1090960134);
+emit_32(3279040545);
+emit_32(3245998080);
+emit_32(1090657442);
+emit_32(3279040545);
+emit_32(3241902132);
+emit_32(1089905497);
+emit_32(3279040545);
+emit_32(3237609472);
+emit_32(1088557112);
+emit_32(3279040545);
+emit_32(3229220864);
+emit_32(1086833925);
+emit_32(3279040545);
+emit_32(0);
+emit_32(1087077467);
+emit_32(3279040545);
+emit_32(1081737216);
+emit_32(1087170664);
+emit_32(3279040545);
+emit_32(3279552512);
+emit_32(1099250847);
+emit_32(3279296528);
+emit_32(3279296528);
+emit_32(1099782632);
+emit_32(3279296528);
+emit_32(3279040545);
+emit_32(1100353372);
+emit_32(3279296528);
+emit_32(3278784496);
+emit_32(1101212785);
+emit_32(3279296528);
+emit_32(3278528512);
+emit_32(1101165494);
+emit_32(3279296528);
+emit_32(3278272528);
+emit_32(1101113957);
+emit_32(3279296528);
+emit_32(3278016545);
+emit_32(1100762736);
+emit_32(3279296528);
+emit_32(3277760496);
+emit_32(1099820381);
+emit_32(3279296528);
+emit_32(3277504512);
+emit_32(1099259340);
+emit_32(3279296528);
+emit_32(3277248528);
+emit_32(1098864027);
+emit_32(3279296528);
+emit_32(3276992545);
+emit_32(1097692558);
+emit_32(3279296528);
+emit_32(3276736496);
+emit_32(1097396755);
+emit_32(3279296528);
+emit_32(3276480512);
+emit_32(1096710776);
+emit_32(3279296528);
+emit_32(3276224528);
+emit_32(1095208586);
+emit_32(3279296528);
+emit_32(3275968545);
+emit_32(1094436625);
+emit_32(3279296528);
+emit_32(3275712496);
+emit_32(1094237605);
+emit_32(3279296528);
+emit_32(3275456512);
+emit_32(1093631948);
+emit_32(3279296528);
+emit_32(3275200528);
+emit_32(1093328699);
+emit_32(3279296528);
+emit_32(3274944545);
+emit_32(1093335096);
+emit_32(3279296528);
+emit_32(3274688496);
+emit_32(1093281199);
+emit_32(3279296528);
+emit_32(3274432512);
+emit_32(1094777307);
+emit_32(3279296528);
+emit_32(3274176528);
+emit_32(1095041653);
+emit_32(3279296528);
+emit_32(3273920545);
+emit_32(1096648281);
+emit_32(3279296528);
+emit_32(3273664496);
+emit_32(1098228380);
+emit_32(3279296528);
+emit_32(3273408512);
+emit_32(1099209114);
+emit_32(3279296528);
+emit_32(3273152528);
+emit_32(1099931582);
+emit_32(3279296528);
+emit_32(3272896545);
+emit_32(1100442291);
+emit_32(3279296528);
+emit_32(3272640496);
+emit_32(1100819359);
+emit_32(3279296528);
+emit_32(3272384512);
+emit_32(1101023045);
+emit_32(3279296528);
+emit_32(3272128528);
+emit_32(1101474877);
+emit_32(3279296528);
+emit_32(3271872545);
+emit_32(1102424624);
+emit_32(3279296528);
+emit_32(3271616496);
+emit_32(1103221962);
+emit_32(3279296528);
+emit_32(3271163904);
+emit_32(1103274757);
+emit_32(3279296528);
+emit_32(3270651937);
+emit_32(1103895200);
+emit_32(3279296528);
+emit_32(3270139970);
+emit_32(1104182824);
+emit_32(3279296528);
+emit_32(3269627871);
+emit_32(1104099462);
+emit_32(3279296528);
+emit_32(3269115904);
+emit_32(1103825102);
+emit_32(3279296528);
+emit_32(3268603937);
+emit_32(1104155037);
+emit_32(3279296528);
+emit_32(3268091970);
+emit_32(1104133122);
+emit_32(3279296528);
+emit_32(3267579911);
+emit_32(1103855721);
+emit_32(3279296528);
+emit_32(3267067904);
+emit_32(1103437391);
+emit_32(3279296528);
+emit_32(3266555911);
+emit_32(1102382472);
+emit_32(3279296528);
+emit_32(3266043904);
+emit_32(1101496425);
+emit_32(3279296528);
+emit_32(3265531911);
+emit_32(1101309673);
+emit_32(3279296528);
+emit_32(3265019904);
+emit_32(1101136973);
+emit_32(3279296528);
+emit_32(3264507911);
+emit_32(1100555957);
+emit_32(3279296528);
+emit_32(3263995904);
+emit_32(1099877161);
+emit_32(3279296528);
+emit_32(3263483911);
+emit_32(1099240414);
+emit_32(3279296528);
+emit_32(3262775296);
+emit_32(1098818938);
+emit_32(3279296528);
+emit_32(3261751309);
+emit_32(1097030487);
+emit_32(3279296528);
+emit_32(3260727296);
+emit_32(1096386557);
+emit_32(3279296528);
+emit_32(3259703309);
+emit_32(1095308516);
+emit_32(3279296528);
+emit_32(3258679296);
+emit_32(1093918733);
+emit_32(3279296528);
+emit_32(3257655309);
+emit_32(1093062885);
+emit_32(3279296528);
+emit_32(3256631296);
+emit_32(1092790780);
+emit_32(3279296528);
+emit_32(3255607309);
+emit_32(1091773189);
+emit_32(3279296528);
+emit_32(3254386688);
+emit_32(1089177744);
+emit_32(3279296528);
+emit_32(3252338714);
+emit_32(1085799588);
+emit_32(3279296528);
+emit_32(3250290688);
+emit_32(1085098154);
+emit_32(3279296528);
+emit_32(3248242714);
+emit_32(1086394194);
+emit_32(3279296528);
+emit_32(3245998080);
+emit_32(1086183912);
+emit_32(3279296528);
+emit_32(3241902132);
+emit_32(1084926145);
+emit_32(3279296528);
+emit_32(3237609472);
+emit_32(1085235454);
+emit_32(3279296528);
+emit_32(3229220864);
+emit_32(1084071682);
+emit_32(3279296528);
+emit_32(0);
+emit_32(1084345968);
+emit_32(3279296528);
+emit_32(1081737216);
+emit_32(1086522393);
+emit_32(3279296528);
+emit_32(3279552512);
+emit_32(1099558709);
+emit_32(3279552512);
+emit_32(3279296528);
+emit_32(1099939394);
+emit_32(3279552512);
+emit_32(3279040545);
+emit_32(1100668731);
+emit_32(3279552512);
+emit_32(3278784496);
+emit_32(1100652321);
+emit_32(3279552512);
+emit_32(3278528512);
+emit_32(1101087375);
+emit_32(3279552512);
+emit_32(3278272528);
+emit_32(1100952319);
+emit_32(3279552512);
+emit_32(3278016545);
+emit_32(1100463787);
+emit_32(3279552512);
+emit_32(3277760496);
+emit_32(1099835428);
+emit_32(3279552512);
+emit_32(3277504512);
+emit_32(1098509084);
+emit_32(3279552512);
+emit_32(3277248528);
+emit_32(1097497838);
+emit_32(3279552512);
+emit_32(3276992545);
+emit_32(1095815817);
+emit_32(3279552512);
+emit_32(3276736496);
+emit_32(1096394106);
+emit_32(3279552512);
+emit_32(3276480512);
+emit_32(1095914488);
+emit_32(3279552512);
+emit_32(3276224528);
+emit_32(1094719216);
+emit_32(3279552512);
+emit_32(3275968545);
+emit_32(1093850681);
+emit_32(3279552512);
+emit_32(3275712496);
+emit_32(1093377773);
+emit_32(3279552512);
+emit_32(3275456512);
+emit_32(1092882845);
+emit_32(3279552512);
+emit_32(3275200528);
+emit_32(1092368613);
+emit_32(3279552512);
+emit_32(3274944545);
+emit_32(1091574149);
+emit_32(3279552512);
+emit_32(3274688496);
+emit_32(1092064893);
+emit_32(3279552512);
+emit_32(3274432512);
+emit_32(1093456206);
+emit_32(3279552512);
+emit_32(3274176528);
+emit_32(1095174193);
+emit_32(3279552512);
+emit_32(3273920545);
+emit_32(1096573098);
+emit_32(3279552512);
+emit_32(3273664496);
+emit_32(1096908852);
+emit_32(3279552512);
+emit_32(3273408512);
+emit_32(1098744804);
+emit_32(3279552512);
+emit_32(3273152528);
+emit_32(1099535483);
+emit_32(3279552512);
+emit_32(3272896545);
+emit_32(1099936825);
+emit_32(3279552512);
+emit_32(3272640496);
+emit_32(1100672506);
+emit_32(3279552512);
+emit_32(3272384512);
+emit_32(1101166805);
+emit_32(3279552512);
+emit_32(3272128528);
+emit_32(1102004250);
+emit_32(3279552512);
+emit_32(3271872545);
+emit_32(1102491838);
+emit_32(3279552512);
+emit_32(3271616496);
+emit_32(1103105779);
+emit_32(3279552512);
+emit_32(3271163904);
+emit_32(1103782950);
+emit_32(3279552512);
+emit_32(3270651937);
+emit_32(1104304878);
+emit_32(3279552512);
+emit_32(3270139970);
+emit_32(1104909802);
+emit_32(3279552512);
+emit_32(3269627871);
+emit_32(1104927680);
+emit_32(3279552512);
+emit_32(3269115904);
+emit_32(1104823452);
+emit_32(3279552512);
+emit_32(3268603937);
+emit_32(1104924063);
+emit_32(3279552512);
+emit_32(3268091970);
+emit_32(1105080143);
+emit_32(3279552512);
+emit_32(3267579911);
+emit_32(1104516533);
+emit_32(3279552512);
+emit_32(3267067904);
+emit_32(1103348315);
+emit_32(3279552512);
+emit_32(3266555911);
+emit_32(1102478049);
+emit_32(3279552512);
+emit_32(3266043904);
+emit_32(1101882406);
+emit_32(3279552512);
+emit_32(3265531911);
+emit_32(1100937324);
+emit_32(3279552512);
+emit_32(3265019904);
+emit_32(1100262828);
+emit_32(3279552512);
+emit_32(3264507911);
+emit_32(1099805963);
+emit_32(3279552512);
+emit_32(3263995904);
+emit_32(1098412301);
+emit_32(3279552512);
+emit_32(3263483911);
+emit_32(1097524052);
+emit_32(3279552512);
+emit_32(3262775296);
+emit_32(1096845309);
+emit_32(3279552512);
+emit_32(3261751309);
+emit_32(1094863186);
+emit_32(3279552512);
+emit_32(3260727296);
+emit_32(1092933596);
+emit_32(3279552512);
+emit_32(3259703309);
+emit_32(1092280658);
+emit_32(3279552512);
+emit_32(3258679296);
+emit_32(1090650752);
+emit_32(3279552512);
+emit_32(3257655309);
+emit_32(1090797762);
+emit_32(3279552512);
+emit_32(3256631296);
+emit_32(1090478271);
+emit_32(3279552512);
+emit_32(3255607309);
+emit_32(1089328172);
+emit_32(3279552512);
+emit_32(3254386688);
+emit_32(1087017593);
+emit_32(3279552512);
+emit_32(3252338714);
+emit_32(1083442180);
+emit_32(3279552512);
+emit_32(3250290688);
+emit_32(1081443237);
+emit_32(3279552512);
+emit_32(3248242714);
+emit_32(1082646268);
+emit_32(3279552512);
+emit_32(3245998080);
+emit_32(1081291445);
+emit_32(3279552512);
+emit_32(3241902132);
+emit_32(1081059249);
+emit_32(3279552512);
+emit_32(3237609472);
+emit_32(1081285406);
+emit_32(3279552512);
+emit_32(3229220864);
+emit_32(1081938249);
+emit_32(3279552512);
+emit_32(0);
+emit_32(1085708656);
+emit_32(3279552512);
+emit_32(1081737216);
+emit_32(1086994839);
+emit_32(3279552512);
+emit_start(LandscapeVtxCount)
+emit_32(2048);
+emit_32(1980);
+emit_32(2048);
+emit_32(2112);
+emit_32(2244);
+emit_32(2310);
+emit_32(2240);
+emit_32(2178);
+emit_start(LandscapeIdx)
+emit_32(Landscape01Idx);
+emit_32(Landscape02Idx);
+emit_32(Landscape03Idx);
+emit_32(Landscape04Idx);
+emit_32(Landscape05Idx);
+emit_32(Landscape06Idx);
+emit_32(Landscape07Idx);
+emit_32(Landscape08Idx);
+emit_start(Landscape01Idx)
+emit_16(0);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(2);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(4);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(6);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(8);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(10);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(12);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(14);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(16);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(18);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(20);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(22);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(24);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(26);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(28);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(30);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(32);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(34);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(36);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(38);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(40);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(42);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(44);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(46);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(48);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(50);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(52);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(54);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(56);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(58);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(60);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(62);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(64);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(66);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(68);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(70);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(72);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(74);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(76);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(78);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(80);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(82);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(84);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(86);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(88);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(90);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(92);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(94);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(96);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(98);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(100);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(102);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(104);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(106);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(108);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(110);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(112);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(114);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(116);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(118);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(120);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(122);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(124);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(126);
+emit_16(125);
+emit_16(128);
+emit_16(0);
+emit_16(129);
+emit_16(2);
+emit_16(129);
+emit_16(0);
+emit_16(129);
+emit_16(2);
+emit_16(130);
+emit_16(4);
+emit_16(130);
+emit_16(2);
+emit_16(130);
+emit_16(4);
+emit_16(131);
+emit_16(6);
+emit_16(131);
+emit_16(4);
+emit_16(131);
+emit_16(6);
+emit_16(132);
+emit_16(8);
+emit_16(132);
+emit_16(6);
+emit_16(132);
+emit_16(8);
+emit_16(133);
+emit_16(10);
+emit_16(133);
+emit_16(8);
+emit_16(133);
+emit_16(10);
+emit_16(134);
+emit_16(12);
+emit_16(134);
+emit_16(10);
+emit_16(134);
+emit_16(12);
+emit_16(135);
+emit_16(14);
+emit_16(135);
+emit_16(12);
+emit_16(135);
+emit_16(14);
+emit_16(136);
+emit_16(16);
+emit_16(136);
+emit_16(14);
+emit_16(136);
+emit_16(16);
+emit_16(137);
+emit_16(18);
+emit_16(137);
+emit_16(16);
+emit_16(137);
+emit_16(18);
+emit_16(138);
+emit_16(20);
+emit_16(138);
+emit_16(18);
+emit_16(138);
+emit_16(20);
+emit_16(139);
+emit_16(22);
+emit_16(139);
+emit_16(20);
+emit_16(139);
+emit_16(22);
+emit_16(140);
+emit_16(24);
+emit_16(140);
+emit_16(22);
+emit_16(140);
+emit_16(24);
+emit_16(141);
+emit_16(26);
+emit_16(141);
+emit_16(24);
+emit_16(141);
+emit_16(26);
+emit_16(142);
+emit_16(28);
+emit_16(142);
+emit_16(26);
+emit_16(142);
+emit_16(28);
+emit_16(143);
+emit_16(30);
+emit_16(143);
+emit_16(28);
+emit_16(143);
+emit_16(30);
+emit_16(144);
+emit_16(32);
+emit_16(144);
+emit_16(30);
+emit_16(144);
+emit_16(32);
+emit_16(145);
+emit_16(34);
+emit_16(145);
+emit_16(32);
+emit_16(145);
+emit_16(34);
+emit_16(146);
+emit_16(36);
+emit_16(146);
+emit_16(34);
+emit_16(146);
+emit_16(36);
+emit_16(147);
+emit_16(38);
+emit_16(147);
+emit_16(36);
+emit_16(147);
+emit_16(38);
+emit_16(148);
+emit_16(40);
+emit_16(148);
+emit_16(38);
+emit_16(148);
+emit_16(40);
+emit_16(149);
+emit_16(42);
+emit_16(149);
+emit_16(40);
+emit_16(149);
+emit_16(42);
+emit_16(150);
+emit_16(44);
+emit_16(150);
+emit_16(42);
+emit_16(150);
+emit_16(44);
+emit_16(151);
+emit_16(46);
+emit_16(151);
+emit_16(44);
+emit_16(151);
+emit_16(46);
+emit_16(152);
+emit_16(48);
+emit_16(152);
+emit_16(46);
+emit_16(152);
+emit_16(48);
+emit_16(153);
+emit_16(50);
+emit_16(153);
+emit_16(48);
+emit_16(153);
+emit_16(50);
+emit_16(154);
+emit_16(52);
+emit_16(154);
+emit_16(50);
+emit_16(154);
+emit_16(52);
+emit_16(155);
+emit_16(54);
+emit_16(155);
+emit_16(52);
+emit_16(155);
+emit_16(54);
+emit_16(156);
+emit_16(56);
+emit_16(156);
+emit_16(54);
+emit_16(156);
+emit_16(56);
+emit_16(157);
+emit_16(58);
+emit_16(157);
+emit_16(56);
+emit_16(157);
+emit_16(58);
+emit_16(158);
+emit_16(60);
+emit_16(158);
+emit_16(58);
+emit_16(158);
+emit_16(60);
+emit_16(159);
+emit_16(62);
+emit_16(159);
+emit_16(60);
+emit_16(159);
+emit_16(62);
+emit_16(160);
+emit_16(64);
+emit_16(160);
+emit_16(62);
+emit_16(160);
+emit_16(64);
+emit_16(161);
+emit_16(66);
+emit_16(161);
+emit_16(64);
+emit_16(161);
+emit_16(66);
+emit_16(162);
+emit_16(68);
+emit_16(162);
+emit_16(66);
+emit_16(162);
+emit_16(68);
+emit_16(163);
+emit_16(70);
+emit_16(163);
+emit_16(68);
+emit_16(163);
+emit_16(70);
+emit_16(164);
+emit_16(72);
+emit_16(164);
+emit_16(70);
+emit_16(164);
+emit_16(72);
+emit_16(165);
+emit_16(74);
+emit_16(165);
+emit_16(72);
+emit_16(165);
+emit_16(74);
+emit_16(166);
+emit_16(76);
+emit_16(166);
+emit_16(74);
+emit_16(166);
+emit_16(76);
+emit_16(167);
+emit_16(78);
+emit_16(167);
+emit_16(76);
+emit_16(167);
+emit_16(78);
+emit_16(168);
+emit_16(80);
+emit_16(168);
+emit_16(78);
+emit_16(168);
+emit_16(80);
+emit_16(169);
+emit_16(82);
+emit_16(169);
+emit_16(80);
+emit_16(169);
+emit_16(82);
+emit_16(170);
+emit_16(84);
+emit_16(170);
+emit_16(82);
+emit_16(170);
+emit_16(84);
+emit_16(171);
+emit_16(86);
+emit_16(171);
+emit_16(84);
+emit_16(171);
+emit_16(86);
+emit_16(172);
+emit_16(88);
+emit_16(172);
+emit_16(86);
+emit_16(172);
+emit_16(88);
+emit_16(173);
+emit_16(90);
+emit_16(173);
+emit_16(88);
+emit_16(173);
+emit_16(90);
+emit_16(174);
+emit_16(92);
+emit_16(174);
+emit_16(90);
+emit_16(174);
+emit_16(92);
+emit_16(175);
+emit_16(94);
+emit_16(175);
+emit_16(92);
+emit_16(175);
+emit_16(94);
+emit_16(176);
+emit_16(96);
+emit_16(176);
+emit_16(94);
+emit_16(176);
+emit_16(96);
+emit_16(177);
+emit_16(98);
+emit_16(177);
+emit_16(96);
+emit_16(177);
+emit_16(98);
+emit_16(178);
+emit_16(100);
+emit_16(178);
+emit_16(98);
+emit_16(178);
+emit_16(100);
+emit_16(179);
+emit_16(102);
+emit_16(179);
+emit_16(100);
+emit_16(179);
+emit_16(102);
+emit_16(180);
+emit_16(104);
+emit_16(180);
+emit_16(102);
+emit_16(180);
+emit_16(104);
+emit_16(181);
+emit_16(106);
+emit_16(181);
+emit_16(104);
+emit_16(181);
+emit_16(106);
+emit_16(182);
+emit_16(108);
+emit_16(182);
+emit_16(106);
+emit_16(182);
+emit_16(108);
+emit_16(183);
+emit_16(110);
+emit_16(183);
+emit_16(108);
+emit_16(183);
+emit_16(110);
+emit_16(184);
+emit_16(112);
+emit_16(184);
+emit_16(110);
+emit_16(184);
+emit_16(112);
+emit_16(185);
+emit_16(114);
+emit_16(185);
+emit_16(112);
+emit_16(185);
+emit_16(114);
+emit_16(186);
+emit_16(116);
+emit_16(186);
+emit_16(114);
+emit_16(186);
+emit_16(116);
+emit_16(187);
+emit_16(118);
+emit_16(187);
+emit_16(116);
+emit_16(187);
+emit_16(118);
+emit_16(188);
+emit_16(120);
+emit_16(188);
+emit_16(118);
+emit_16(188);
+emit_16(120);
+emit_16(189);
+emit_16(122);
+emit_16(189);
+emit_16(120);
+emit_16(189);
+emit_16(122);
+emit_16(190);
+emit_16(124);
+emit_16(190);
+emit_16(122);
+emit_16(190);
+emit_16(124);
+emit_16(191);
+emit_16(126);
+emit_16(191);
+emit_16(124);
+emit_16(192);
+emit_16(128);
+emit_16(193);
+emit_16(129);
+emit_16(193);
+emit_16(128);
+emit_16(193);
+emit_16(129);
+emit_16(194);
+emit_16(130);
+emit_16(194);
+emit_16(129);
+emit_16(194);
+emit_16(130);
+emit_16(195);
+emit_16(131);
+emit_16(195);
+emit_16(130);
+emit_16(195);
+emit_16(131);
+emit_16(196);
+emit_16(132);
+emit_16(196);
+emit_16(131);
+emit_16(196);
+emit_16(132);
+emit_16(197);
+emit_16(133);
+emit_16(197);
+emit_16(132);
+emit_16(197);
+emit_16(133);
+emit_16(198);
+emit_16(134);
+emit_16(198);
+emit_16(133);
+emit_16(198);
+emit_16(134);
+emit_16(199);
+emit_16(135);
+emit_16(199);
+emit_16(134);
+emit_16(199);
+emit_16(135);
+emit_16(200);
+emit_16(136);
+emit_16(200);
+emit_16(135);
+emit_16(200);
+emit_16(136);
+emit_16(201);
+emit_16(137);
+emit_16(201);
+emit_16(136);
+emit_16(201);
+emit_16(137);
+emit_16(202);
+emit_16(138);
+emit_16(202);
+emit_16(137);
+emit_16(202);
+emit_16(138);
+emit_16(203);
+emit_16(139);
+emit_16(203);
+emit_16(138);
+emit_16(203);
+emit_16(139);
+emit_16(204);
+emit_16(140);
+emit_16(204);
+emit_16(139);
+emit_16(204);
+emit_16(140);
+emit_16(205);
+emit_16(141);
+emit_16(205);
+emit_16(140);
+emit_16(205);
+emit_16(141);
+emit_16(206);
+emit_16(142);
+emit_16(206);
+emit_16(141);
+emit_16(206);
+emit_16(142);
+emit_16(207);
+emit_16(143);
+emit_16(207);
+emit_16(142);
+emit_16(207);
+emit_16(143);
+emit_16(208);
+emit_16(144);
+emit_16(208);
+emit_16(143);
+emit_16(208);
+emit_16(144);
+emit_16(209);
+emit_16(145);
+emit_16(209);
+emit_16(144);
+emit_16(209);
+emit_16(145);
+emit_16(210);
+emit_16(146);
+emit_16(210);
+emit_16(145);
+emit_16(210);
+emit_16(146);
+emit_16(211);
+emit_16(147);
+emit_16(211);
+emit_16(146);
+emit_16(211);
+emit_16(147);
+emit_16(212);
+emit_16(148);
+emit_16(212);
+emit_16(147);
+emit_16(212);
+emit_16(148);
+emit_16(213);
+emit_16(149);
+emit_16(213);
+emit_16(148);
+emit_16(213);
+emit_16(149);
+emit_16(214);
+emit_16(150);
+emit_16(214);
+emit_16(149);
+emit_16(214);
+emit_16(150);
+emit_16(215);
+emit_16(151);
+emit_16(215);
+emit_16(150);
+emit_16(215);
+emit_16(151);
+emit_16(216);
+emit_16(152);
+emit_16(216);
+emit_16(151);
+emit_16(216);
+emit_16(152);
+emit_16(217);
+emit_16(153);
+emit_16(217);
+emit_16(152);
+emit_16(217);
+emit_16(153);
+emit_16(218);
+emit_16(154);
+emit_16(218);
+emit_16(153);
+emit_16(218);
+emit_16(154);
+emit_16(219);
+emit_16(155);
+emit_16(219);
+emit_16(154);
+emit_16(219);
+emit_16(155);
+emit_16(220);
+emit_16(156);
+emit_16(220);
+emit_16(155);
+emit_16(220);
+emit_16(156);
+emit_16(221);
+emit_16(157);
+emit_16(221);
+emit_16(156);
+emit_16(221);
+emit_16(157);
+emit_16(222);
+emit_16(158);
+emit_16(222);
+emit_16(157);
+emit_16(222);
+emit_16(158);
+emit_16(223);
+emit_16(159);
+emit_16(223);
+emit_16(158);
+emit_16(223);
+emit_16(159);
+emit_16(224);
+emit_16(160);
+emit_16(224);
+emit_16(159);
+emit_16(224);
+emit_16(160);
+emit_16(225);
+emit_16(161);
+emit_16(225);
+emit_16(160);
+emit_16(225);
+emit_16(161);
+emit_16(226);
+emit_16(162);
+emit_16(226);
+emit_16(161);
+emit_16(226);
+emit_16(162);
+emit_16(227);
+emit_16(163);
+emit_16(227);
+emit_16(162);
+emit_16(227);
+emit_16(163);
+emit_16(228);
+emit_16(164);
+emit_16(228);
+emit_16(163);
+emit_16(228);
+emit_16(164);
+emit_16(229);
+emit_16(165);
+emit_16(229);
+emit_16(164);
+emit_16(229);
+emit_16(165);
+emit_16(230);
+emit_16(166);
+emit_16(230);
+emit_16(165);
+emit_16(230);
+emit_16(166);
+emit_16(231);
+emit_16(167);
+emit_16(231);
+emit_16(166);
+emit_16(231);
+emit_16(167);
+emit_16(232);
+emit_16(168);
+emit_16(232);
+emit_16(167);
+emit_16(232);
+emit_16(168);
+emit_16(233);
+emit_16(169);
+emit_16(233);
+emit_16(168);
+emit_16(233);
+emit_16(169);
+emit_16(234);
+emit_16(170);
+emit_16(234);
+emit_16(169);
+emit_16(234);
+emit_16(170);
+emit_16(235);
+emit_16(171);
+emit_16(235);
+emit_16(170);
+emit_16(235);
+emit_16(171);
+emit_16(236);
+emit_16(172);
+emit_16(236);
+emit_16(171);
+emit_16(236);
+emit_16(172);
+emit_16(237);
+emit_16(173);
+emit_16(237);
+emit_16(172);
+emit_16(237);
+emit_16(173);
+emit_16(238);
+emit_16(174);
+emit_16(238);
+emit_16(173);
+emit_16(238);
+emit_16(174);
+emit_16(239);
+emit_16(175);
+emit_16(239);
+emit_16(174);
+emit_16(239);
+emit_16(175);
+emit_16(240);
+emit_16(176);
+emit_16(240);
+emit_16(175);
+emit_16(240);
+emit_16(176);
+emit_16(241);
+emit_16(177);
+emit_16(241);
+emit_16(176);
+emit_16(241);
+emit_16(177);
+emit_16(242);
+emit_16(178);
+emit_16(242);
+emit_16(177);
+emit_16(242);
+emit_16(178);
+emit_16(243);
+emit_16(179);
+emit_16(243);
+emit_16(178);
+emit_16(243);
+emit_16(179);
+emit_16(244);
+emit_16(180);
+emit_16(244);
+emit_16(179);
+emit_16(244);
+emit_16(180);
+emit_16(245);
+emit_16(181);
+emit_16(245);
+emit_16(180);
+emit_16(245);
+emit_16(181);
+emit_16(246);
+emit_16(182);
+emit_16(246);
+emit_16(181);
+emit_16(246);
+emit_16(182);
+emit_16(247);
+emit_16(183);
+emit_16(247);
+emit_16(182);
+emit_16(247);
+emit_16(183);
+emit_16(248);
+emit_16(184);
+emit_16(248);
+emit_16(183);
+emit_16(248);
+emit_16(184);
+emit_16(249);
+emit_16(185);
+emit_16(249);
+emit_16(184);
+emit_16(249);
+emit_16(185);
+emit_16(250);
+emit_16(186);
+emit_16(250);
+emit_16(185);
+emit_16(250);
+emit_16(186);
+emit_16(251);
+emit_16(187);
+emit_16(251);
+emit_16(186);
+emit_16(251);
+emit_16(187);
+emit_16(252);
+emit_16(188);
+emit_16(252);
+emit_16(187);
+emit_16(252);
+emit_16(188);
+emit_16(253);
+emit_16(189);
+emit_16(253);
+emit_16(188);
+emit_16(253);
+emit_16(189);
+emit_16(254);
+emit_16(190);
+emit_16(254);
+emit_16(189);
+emit_16(254);
+emit_16(190);
+emit_16(255);
+emit_16(191);
+emit_16(255);
+emit_16(190);
+emit_16(256);
+emit_16(192);
+emit_16(257);
+emit_16(193);
+emit_16(257);
+emit_16(192);
+emit_16(257);
+emit_16(193);
+emit_16(258);
+emit_16(194);
+emit_16(258);
+emit_16(193);
+emit_16(258);
+emit_16(194);
+emit_16(259);
+emit_16(195);
+emit_16(259);
+emit_16(194);
+emit_16(259);
+emit_16(195);
+emit_16(260);
+emit_16(196);
+emit_16(260);
+emit_16(195);
+emit_16(260);
+emit_16(196);
+emit_16(261);
+emit_16(197);
+emit_16(261);
+emit_16(196);
+emit_16(261);
+emit_16(197);
+emit_16(262);
+emit_16(198);
+emit_16(262);
+emit_16(197);
+emit_16(262);
+emit_16(198);
+emit_16(263);
+emit_16(199);
+emit_16(263);
+emit_16(198);
+emit_16(263);
+emit_16(199);
+emit_16(264);
+emit_16(200);
+emit_16(264);
+emit_16(199);
+emit_16(264);
+emit_16(200);
+emit_16(265);
+emit_16(201);
+emit_16(265);
+emit_16(200);
+emit_16(265);
+emit_16(201);
+emit_16(266);
+emit_16(202);
+emit_16(266);
+emit_16(201);
+emit_16(266);
+emit_16(202);
+emit_16(267);
+emit_16(203);
+emit_16(267);
+emit_16(202);
+emit_16(267);
+emit_16(203);
+emit_16(268);
+emit_16(204);
+emit_16(268);
+emit_16(203);
+emit_16(268);
+emit_16(204);
+emit_16(269);
+emit_16(205);
+emit_16(269);
+emit_16(204);
+emit_16(269);
+emit_16(205);
+emit_16(270);
+emit_16(206);
+emit_16(270);
+emit_16(205);
+emit_16(270);
+emit_16(206);
+emit_16(271);
+emit_16(207);
+emit_16(271);
+emit_16(206);
+emit_16(271);
+emit_16(207);
+emit_16(272);
+emit_16(208);
+emit_16(272);
+emit_16(207);
+emit_16(272);
+emit_16(208);
+emit_16(273);
+emit_16(209);
+emit_16(273);
+emit_16(208);
+emit_16(273);
+emit_16(209);
+emit_16(274);
+emit_16(210);
+emit_16(274);
+emit_16(209);
+emit_16(274);
+emit_16(210);
+emit_16(275);
+emit_16(211);
+emit_16(275);
+emit_16(210);
+emit_16(275);
+emit_16(211);
+emit_16(276);
+emit_16(212);
+emit_16(276);
+emit_16(211);
+emit_16(276);
+emit_16(212);
+emit_16(277);
+emit_16(213);
+emit_16(277);
+emit_16(212);
+emit_16(277);
+emit_16(213);
+emit_16(278);
+emit_16(214);
+emit_16(278);
+emit_16(213);
+emit_16(278);
+emit_16(214);
+emit_16(279);
+emit_16(215);
+emit_16(279);
+emit_16(214);
+emit_16(279);
+emit_16(215);
+emit_16(280);
+emit_16(216);
+emit_16(280);
+emit_16(215);
+emit_16(280);
+emit_16(216);
+emit_16(281);
+emit_16(217);
+emit_16(281);
+emit_16(216);
+emit_16(281);
+emit_16(217);
+emit_16(282);
+emit_16(218);
+emit_16(282);
+emit_16(217);
+emit_16(282);
+emit_16(218);
+emit_16(283);
+emit_16(219);
+emit_16(283);
+emit_16(218);
+emit_16(283);
+emit_16(219);
+emit_16(284);
+emit_16(220);
+emit_16(284);
+emit_16(219);
+emit_16(284);
+emit_16(220);
+emit_16(285);
+emit_16(221);
+emit_16(285);
+emit_16(220);
+emit_16(285);
+emit_16(221);
+emit_16(286);
+emit_16(222);
+emit_16(286);
+emit_16(221);
+emit_16(286);
+emit_16(222);
+emit_16(287);
+emit_16(223);
+emit_16(287);
+emit_16(222);
+emit_16(287);
+emit_16(223);
+emit_16(288);
+emit_16(224);
+emit_16(288);
+emit_16(223);
+emit_16(288);
+emit_16(224);
+emit_16(289);
+emit_16(225);
+emit_16(289);
+emit_16(224);
+emit_16(289);
+emit_16(225);
+emit_16(290);
+emit_16(226);
+emit_16(290);
+emit_16(225);
+emit_16(290);
+emit_16(226);
+emit_16(291);
+emit_16(227);
+emit_16(291);
+emit_16(226);
+emit_16(291);
+emit_16(227);
+emit_16(292);
+emit_16(228);
+emit_16(292);
+emit_16(227);
+emit_16(292);
+emit_16(228);
+emit_16(293);
+emit_16(229);
+emit_16(293);
+emit_16(228);
+emit_16(293);
+emit_16(229);
+emit_16(294);
+emit_16(230);
+emit_16(294);
+emit_16(229);
+emit_16(294);
+emit_16(230);
+emit_16(295);
+emit_16(231);
+emit_16(295);
+emit_16(230);
+emit_16(295);
+emit_16(231);
+emit_16(296);
+emit_16(232);
+emit_16(296);
+emit_16(231);
+emit_16(296);
+emit_16(232);
+emit_16(297);
+emit_16(233);
+emit_16(297);
+emit_16(232);
+emit_16(297);
+emit_16(233);
+emit_16(298);
+emit_16(234);
+emit_16(298);
+emit_16(233);
+emit_16(298);
+emit_16(234);
+emit_16(299);
+emit_16(235);
+emit_16(299);
+emit_16(234);
+emit_16(299);
+emit_16(235);
+emit_16(300);
+emit_16(236);
+emit_16(300);
+emit_16(235);
+emit_16(300);
+emit_16(236);
+emit_16(301);
+emit_16(237);
+emit_16(301);
+emit_16(236);
+emit_16(301);
+emit_16(237);
+emit_16(302);
+emit_16(238);
+emit_16(302);
+emit_16(237);
+emit_16(302);
+emit_16(238);
+emit_16(303);
+emit_16(239);
+emit_16(303);
+emit_16(238);
+emit_16(303);
+emit_16(239);
+emit_16(304);
+emit_16(240);
+emit_16(304);
+emit_16(239);
+emit_16(304);
+emit_16(240);
+emit_16(305);
+emit_16(241);
+emit_16(305);
+emit_16(240);
+emit_16(305);
+emit_16(241);
+emit_16(306);
+emit_16(242);
+emit_16(306);
+emit_16(241);
+emit_16(306);
+emit_16(242);
+emit_16(307);
+emit_16(243);
+emit_16(307);
+emit_16(242);
+emit_16(307);
+emit_16(243);
+emit_16(308);
+emit_16(244);
+emit_16(308);
+emit_16(243);
+emit_16(308);
+emit_16(244);
+emit_16(309);
+emit_16(245);
+emit_16(309);
+emit_16(244);
+emit_16(309);
+emit_16(245);
+emit_16(310);
+emit_16(246);
+emit_16(310);
+emit_16(245);
+emit_16(310);
+emit_16(246);
+emit_16(311);
+emit_16(247);
+emit_16(311);
+emit_16(246);
+emit_16(311);
+emit_16(247);
+emit_16(312);
+emit_16(248);
+emit_16(312);
+emit_16(247);
+emit_16(312);
+emit_16(248);
+emit_16(313);
+emit_16(249);
+emit_16(313);
+emit_16(248);
+emit_16(313);
+emit_16(249);
+emit_16(314);
+emit_16(250);
+emit_16(314);
+emit_16(249);
+emit_16(314);
+emit_16(250);
+emit_16(315);
+emit_16(251);
+emit_16(315);
+emit_16(250);
+emit_16(315);
+emit_16(251);
+emit_16(316);
+emit_16(252);
+emit_16(316);
+emit_16(251);
+emit_16(316);
+emit_16(252);
+emit_16(317);
+emit_16(253);
+emit_16(317);
+emit_16(252);
+emit_16(317);
+emit_16(253);
+emit_16(318);
+emit_16(254);
+emit_16(318);
+emit_16(253);
+emit_16(318);
+emit_16(254);
+emit_16(319);
+emit_16(255);
+emit_16(319);
+emit_16(254);
+emit_16(320);
+emit_16(256);
+emit_16(321);
+emit_16(257);
+emit_16(321);
+emit_16(256);
+emit_16(321);
+emit_16(257);
+emit_16(322);
+emit_16(258);
+emit_16(322);
+emit_16(257);
+emit_16(322);
+emit_16(258);
+emit_16(323);
+emit_16(259);
+emit_16(323);
+emit_16(258);
+emit_16(323);
+emit_16(259);
+emit_16(324);
+emit_16(260);
+emit_16(324);
+emit_16(259);
+emit_16(324);
+emit_16(260);
+emit_16(325);
+emit_16(261);
+emit_16(325);
+emit_16(260);
+emit_16(325);
+emit_16(261);
+emit_16(326);
+emit_16(262);
+emit_16(326);
+emit_16(261);
+emit_16(326);
+emit_16(262);
+emit_16(327);
+emit_16(263);
+emit_16(327);
+emit_16(262);
+emit_16(327);
+emit_16(263);
+emit_16(328);
+emit_16(264);
+emit_16(328);
+emit_16(263);
+emit_16(328);
+emit_16(264);
+emit_16(329);
+emit_16(265);
+emit_16(329);
+emit_16(264);
+emit_16(329);
+emit_16(265);
+emit_16(330);
+emit_16(266);
+emit_16(330);
+emit_16(265);
+emit_16(330);
+emit_16(266);
+emit_16(331);
+emit_16(267);
+emit_16(331);
+emit_16(266);
+emit_16(331);
+emit_16(267);
+emit_16(332);
+emit_16(268);
+emit_16(332);
+emit_16(267);
+emit_16(332);
+emit_16(268);
+emit_16(333);
+emit_16(269);
+emit_16(333);
+emit_16(268);
+emit_16(333);
+emit_16(269);
+emit_16(334);
+emit_16(270);
+emit_16(334);
+emit_16(269);
+emit_16(334);
+emit_16(270);
+emit_16(335);
+emit_16(271);
+emit_16(335);
+emit_16(270);
+emit_16(335);
+emit_16(271);
+emit_16(336);
+emit_16(272);
+emit_16(336);
+emit_16(271);
+emit_16(336);
+emit_16(272);
+emit_16(337);
+emit_16(273);
+emit_16(337);
+emit_16(272);
+emit_16(337);
+emit_16(273);
+emit_16(338);
+emit_16(274);
+emit_16(338);
+emit_16(273);
+emit_16(338);
+emit_16(274);
+emit_16(339);
+emit_16(275);
+emit_16(339);
+emit_16(274);
+emit_16(339);
+emit_16(275);
+emit_16(340);
+emit_16(276);
+emit_16(340);
+emit_16(275);
+emit_16(340);
+emit_16(276);
+emit_16(341);
+emit_16(277);
+emit_16(341);
+emit_16(276);
+emit_16(341);
+emit_16(277);
+emit_16(342);
+emit_16(278);
+emit_16(342);
+emit_16(277);
+emit_16(342);
+emit_16(278);
+emit_16(343);
+emit_16(279);
+emit_16(343);
+emit_16(278);
+emit_16(343);
+emit_16(279);
+emit_16(344);
+emit_16(280);
+emit_16(344);
+emit_16(279);
+emit_16(344);
+emit_16(280);
+emit_16(345);
+emit_16(281);
+emit_16(345);
+emit_16(280);
+emit_16(345);
+emit_16(281);
+emit_16(346);
+emit_16(282);
+emit_16(346);
+emit_16(281);
+emit_16(346);
+emit_16(282);
+emit_16(347);
+emit_16(283);
+emit_16(347);
+emit_16(282);
+emit_16(347);
+emit_16(283);
+emit_16(348);
+emit_16(284);
+emit_16(348);
+emit_16(283);
+emit_16(348);
+emit_16(284);
+emit_16(349);
+emit_16(285);
+emit_16(349);
+emit_16(284);
+emit_16(349);
+emit_16(285);
+emit_16(350);
+emit_16(286);
+emit_16(350);
+emit_16(285);
+emit_16(350);
+emit_16(286);
+emit_16(351);
+emit_16(287);
+emit_16(351);
+emit_16(286);
+emit_16(351);
+emit_16(287);
+emit_16(352);
+emit_16(288);
+emit_16(352);
+emit_16(287);
+emit_16(352);
+emit_16(288);
+emit_16(353);
+emit_16(289);
+emit_16(353);
+emit_16(288);
+emit_16(353);
+emit_16(289);
+emit_16(354);
+emit_16(290);
+emit_16(354);
+emit_16(289);
+emit_16(354);
+emit_16(290);
+emit_16(355);
+emit_16(291);
+emit_16(355);
+emit_16(290);
+emit_16(355);
+emit_16(291);
+emit_16(356);
+emit_16(292);
+emit_16(356);
+emit_16(291);
+emit_16(356);
+emit_16(292);
+emit_16(357);
+emit_16(293);
+emit_16(357);
+emit_16(292);
+emit_16(357);
+emit_16(293);
+emit_16(358);
+emit_16(294);
+emit_16(358);
+emit_16(293);
+emit_16(358);
+emit_16(294);
+emit_16(359);
+emit_16(295);
+emit_16(359);
+emit_16(294);
+emit_16(359);
+emit_16(295);
+emit_16(360);
+emit_16(296);
+emit_16(360);
+emit_16(295);
+emit_16(360);
+emit_16(296);
+emit_16(361);
+emit_16(297);
+emit_16(361);
+emit_16(296);
+emit_16(361);
+emit_16(297);
+emit_16(362);
+emit_16(298);
+emit_16(362);
+emit_16(297);
+emit_16(362);
+emit_16(298);
+emit_16(363);
+emit_16(299);
+emit_16(363);
+emit_16(298);
+emit_16(363);
+emit_16(299);
+emit_16(364);
+emit_16(300);
+emit_16(364);
+emit_16(299);
+emit_16(364);
+emit_16(300);
+emit_16(365);
+emit_16(301);
+emit_16(365);
+emit_16(300);
+emit_16(365);
+emit_16(301);
+emit_16(366);
+emit_16(302);
+emit_16(366);
+emit_16(301);
+emit_16(366);
+emit_16(302);
+emit_16(367);
+emit_16(303);
+emit_16(367);
+emit_16(302);
+emit_16(367);
+emit_16(303);
+emit_16(368);
+emit_16(304);
+emit_16(368);
+emit_16(303);
+emit_16(368);
+emit_16(304);
+emit_16(369);
+emit_16(305);
+emit_16(369);
+emit_16(304);
+emit_16(369);
+emit_16(305);
+emit_16(370);
+emit_16(306);
+emit_16(370);
+emit_16(305);
+emit_16(370);
+emit_16(306);
+emit_16(371);
+emit_16(307);
+emit_16(371);
+emit_16(306);
+emit_16(371);
+emit_16(307);
+emit_16(372);
+emit_16(308);
+emit_16(372);
+emit_16(307);
+emit_16(372);
+emit_16(308);
+emit_16(373);
+emit_16(309);
+emit_16(373);
+emit_16(308);
+emit_16(373);
+emit_16(309);
+emit_16(374);
+emit_16(310);
+emit_16(374);
+emit_16(309);
+emit_16(374);
+emit_16(310);
+emit_16(375);
+emit_16(311);
+emit_16(375);
+emit_16(310);
+emit_16(375);
+emit_16(311);
+emit_16(376);
+emit_16(312);
+emit_16(376);
+emit_16(311);
+emit_16(376);
+emit_16(312);
+emit_16(377);
+emit_16(313);
+emit_16(377);
+emit_16(312);
+emit_16(377);
+emit_16(313);
+emit_16(378);
+emit_16(314);
+emit_16(378);
+emit_16(313);
+emit_16(378);
+emit_16(314);
+emit_16(379);
+emit_16(315);
+emit_16(379);
+emit_16(314);
+emit_16(379);
+emit_16(315);
+emit_16(380);
+emit_16(316);
+emit_16(380);
+emit_16(315);
+emit_16(380);
+emit_16(316);
+emit_16(381);
+emit_16(317);
+emit_16(381);
+emit_16(316);
+emit_16(381);
+emit_16(317);
+emit_16(382);
+emit_16(318);
+emit_16(382);
+emit_16(317);
+emit_16(382);
+emit_16(318);
+emit_16(383);
+emit_16(319);
+emit_16(383);
+emit_16(318);
+emit_16(384);
+emit_16(320);
+emit_16(385);
+emit_16(321);
+emit_16(385);
+emit_16(320);
+emit_16(385);
+emit_16(321);
+emit_16(386);
+emit_16(322);
+emit_16(386);
+emit_16(321);
+emit_16(386);
+emit_16(322);
+emit_16(387);
+emit_16(323);
+emit_16(387);
+emit_16(322);
+emit_16(387);
+emit_16(323);
+emit_16(388);
+emit_16(324);
+emit_16(388);
+emit_16(323);
+emit_16(388);
+emit_16(324);
+emit_16(389);
+emit_16(325);
+emit_16(389);
+emit_16(324);
+emit_16(389);
+emit_16(325);
+emit_16(390);
+emit_16(326);
+emit_16(390);
+emit_16(325);
+emit_16(390);
+emit_16(326);
+emit_16(391);
+emit_16(327);
+emit_16(391);
+emit_16(326);
+emit_16(391);
+emit_16(327);
+emit_16(392);
+emit_16(328);
+emit_16(392);
+emit_16(327);
+emit_16(392);
+emit_16(328);
+emit_16(393);
+emit_16(329);
+emit_16(393);
+emit_16(328);
+emit_16(393);
+emit_16(329);
+emit_16(394);
+emit_16(330);
+emit_16(394);
+emit_16(329);
+emit_16(394);
+emit_16(330);
+emit_16(395);
+emit_16(331);
+emit_16(395);
+emit_16(330);
+emit_16(395);
+emit_16(331);
+emit_16(396);
+emit_16(332);
+emit_16(396);
+emit_16(331);
+emit_16(396);
+emit_16(332);
+emit_16(397);
+emit_16(333);
+emit_16(397);
+emit_16(332);
+emit_16(397);
+emit_16(333);
+emit_16(398);
+emit_16(334);
+emit_16(398);
+emit_16(333);
+emit_16(398);
+emit_16(334);
+emit_16(399);
+emit_16(335);
+emit_16(399);
+emit_16(334);
+emit_16(399);
+emit_16(335);
+emit_16(400);
+emit_16(336);
+emit_16(400);
+emit_16(335);
+emit_16(400);
+emit_16(336);
+emit_16(401);
+emit_16(337);
+emit_16(401);
+emit_16(336);
+emit_16(401);
+emit_16(337);
+emit_16(402);
+emit_16(338);
+emit_16(402);
+emit_16(337);
+emit_16(402);
+emit_16(338);
+emit_16(403);
+emit_16(339);
+emit_16(403);
+emit_16(338);
+emit_16(403);
+emit_16(339);
+emit_16(404);
+emit_16(340);
+emit_16(404);
+emit_16(339);
+emit_16(404);
+emit_16(340);
+emit_16(405);
+emit_16(341);
+emit_16(405);
+emit_16(340);
+emit_16(405);
+emit_16(341);
+emit_16(406);
+emit_16(342);
+emit_16(406);
+emit_16(341);
+emit_16(406);
+emit_16(342);
+emit_16(407);
+emit_16(343);
+emit_16(407);
+emit_16(342);
+emit_16(407);
+emit_16(343);
+emit_16(408);
+emit_16(344);
+emit_16(408);
+emit_16(343);
+emit_16(408);
+emit_16(344);
+emit_16(409);
+emit_16(345);
+emit_16(409);
+emit_16(344);
+emit_16(409);
+emit_16(345);
+emit_16(410);
+emit_16(346);
+emit_16(410);
+emit_16(345);
+emit_16(410);
+emit_16(346);
+emit_16(411);
+emit_16(347);
+emit_16(411);
+emit_16(346);
+emit_16(411);
+emit_16(347);
+emit_16(412);
+emit_16(348);
+emit_16(412);
+emit_16(347);
+emit_16(412);
+emit_16(348);
+emit_16(413);
+emit_16(349);
+emit_16(413);
+emit_16(348);
+emit_16(413);
+emit_16(349);
+emit_16(414);
+emit_16(350);
+emit_16(414);
+emit_16(349);
+emit_16(414);
+emit_16(350);
+emit_16(415);
+emit_16(351);
+emit_16(415);
+emit_16(350);
+emit_16(415);
+emit_16(351);
+emit_16(416);
+emit_16(352);
+emit_16(416);
+emit_16(351);
+emit_16(416);
+emit_16(352);
+emit_16(417);
+emit_16(353);
+emit_16(417);
+emit_16(352);
+emit_16(417);
+emit_16(353);
+emit_16(418);
+emit_16(354);
+emit_16(418);
+emit_16(353);
+emit_16(418);
+emit_16(354);
+emit_16(419);
+emit_16(355);
+emit_16(419);
+emit_16(354);
+emit_16(419);
+emit_16(355);
+emit_16(420);
+emit_16(356);
+emit_16(420);
+emit_16(355);
+emit_16(420);
+emit_16(356);
+emit_16(421);
+emit_16(357);
+emit_16(421);
+emit_16(356);
+emit_16(421);
+emit_16(357);
+emit_16(422);
+emit_16(358);
+emit_16(422);
+emit_16(357);
+emit_16(422);
+emit_16(358);
+emit_16(423);
+emit_16(359);
+emit_16(423);
+emit_16(358);
+emit_16(423);
+emit_16(359);
+emit_16(424);
+emit_16(360);
+emit_16(424);
+emit_16(359);
+emit_16(424);
+emit_16(360);
+emit_16(425);
+emit_16(361);
+emit_16(425);
+emit_16(360);
+emit_16(425);
+emit_16(361);
+emit_16(426);
+emit_16(362);
+emit_16(426);
+emit_16(361);
+emit_16(426);
+emit_16(362);
+emit_16(427);
+emit_16(363);
+emit_16(427);
+emit_16(362);
+emit_16(427);
+emit_16(363);
+emit_16(428);
+emit_16(364);
+emit_16(428);
+emit_16(363);
+emit_16(428);
+emit_16(364);
+emit_16(429);
+emit_16(365);
+emit_16(429);
+emit_16(364);
+emit_16(429);
+emit_16(365);
+emit_16(430);
+emit_16(366);
+emit_16(430);
+emit_16(365);
+emit_16(430);
+emit_16(366);
+emit_16(431);
+emit_16(367);
+emit_16(431);
+emit_16(366);
+emit_16(431);
+emit_16(367);
+emit_16(432);
+emit_16(368);
+emit_16(432);
+emit_16(367);
+emit_16(432);
+emit_16(368);
+emit_16(433);
+emit_16(369);
+emit_16(433);
+emit_16(368);
+emit_16(433);
+emit_16(369);
+emit_16(434);
+emit_16(370);
+emit_16(434);
+emit_16(369);
+emit_16(434);
+emit_16(370);
+emit_16(435);
+emit_16(371);
+emit_16(435);
+emit_16(370);
+emit_16(435);
+emit_16(371);
+emit_16(436);
+emit_16(372);
+emit_16(436);
+emit_16(371);
+emit_16(436);
+emit_16(372);
+emit_16(437);
+emit_16(373);
+emit_16(437);
+emit_16(372);
+emit_16(437);
+emit_16(373);
+emit_16(438);
+emit_16(374);
+emit_16(438);
+emit_16(373);
+emit_16(438);
+emit_16(374);
+emit_16(439);
+emit_16(375);
+emit_16(439);
+emit_16(374);
+emit_16(439);
+emit_16(375);
+emit_16(440);
+emit_16(376);
+emit_16(440);
+emit_16(375);
+emit_16(440);
+emit_16(376);
+emit_16(441);
+emit_16(377);
+emit_16(441);
+emit_16(376);
+emit_16(441);
+emit_16(377);
+emit_16(442);
+emit_16(378);
+emit_16(442);
+emit_16(377);
+emit_16(442);
+emit_16(378);
+emit_16(443);
+emit_16(379);
+emit_16(443);
+emit_16(378);
+emit_16(443);
+emit_16(379);
+emit_16(444);
+emit_16(380);
+emit_16(444);
+emit_16(379);
+emit_16(444);
+emit_16(380);
+emit_16(445);
+emit_16(381);
+emit_16(445);
+emit_16(380);
+emit_16(445);
+emit_16(381);
+emit_16(446);
+emit_16(382);
+emit_16(446);
+emit_16(381);
+emit_16(446);
+emit_16(382);
+emit_16(447);
+emit_16(383);
+emit_16(447);
+emit_16(382);
+emit_16(448);
+emit_16(384);
+emit_16(449);
+emit_16(385);
+emit_16(449);
+emit_16(384);
+emit_16(449);
+emit_16(385);
+emit_16(450);
+emit_16(386);
+emit_16(450);
+emit_16(385);
+emit_16(450);
+emit_16(386);
+emit_16(451);
+emit_16(387);
+emit_16(451);
+emit_16(386);
+emit_16(451);
+emit_16(387);
+emit_16(452);
+emit_16(388);
+emit_16(452);
+emit_16(387);
+emit_16(452);
+emit_16(388);
+emit_16(453);
+emit_16(389);
+emit_16(453);
+emit_16(388);
+emit_16(453);
+emit_16(389);
+emit_16(454);
+emit_16(390);
+emit_16(454);
+emit_16(389);
+emit_16(454);
+emit_16(390);
+emit_16(455);
+emit_16(391);
+emit_16(455);
+emit_16(390);
+emit_16(455);
+emit_16(391);
+emit_16(456);
+emit_16(392);
+emit_16(456);
+emit_16(391);
+emit_16(456);
+emit_16(392);
+emit_16(457);
+emit_16(393);
+emit_16(457);
+emit_16(392);
+emit_16(457);
+emit_16(393);
+emit_16(458);
+emit_16(394);
+emit_16(458);
+emit_16(393);
+emit_16(458);
+emit_16(394);
+emit_16(459);
+emit_16(395);
+emit_16(459);
+emit_16(394);
+emit_16(459);
+emit_16(395);
+emit_16(460);
+emit_16(396);
+emit_16(460);
+emit_16(395);
+emit_16(460);
+emit_16(396);
+emit_16(461);
+emit_16(397);
+emit_16(461);
+emit_16(396);
+emit_16(461);
+emit_16(397);
+emit_16(462);
+emit_16(398);
+emit_16(462);
+emit_16(397);
+emit_16(462);
+emit_16(398);
+emit_16(463);
+emit_16(399);
+emit_16(463);
+emit_16(398);
+emit_16(463);
+emit_16(399);
+emit_16(464);
+emit_16(400);
+emit_16(464);
+emit_16(399);
+emit_16(464);
+emit_16(400);
+emit_16(465);
+emit_16(401);
+emit_16(465);
+emit_16(400);
+emit_16(465);
+emit_16(401);
+emit_16(466);
+emit_16(402);
+emit_16(466);
+emit_16(401);
+emit_16(466);
+emit_16(402);
+emit_16(467);
+emit_16(403);
+emit_16(467);
+emit_16(402);
+emit_16(467);
+emit_16(403);
+emit_16(468);
+emit_16(404);
+emit_16(468);
+emit_16(403);
+emit_16(468);
+emit_16(404);
+emit_16(469);
+emit_16(405);
+emit_16(469);
+emit_16(404);
+emit_16(469);
+emit_16(405);
+emit_16(470);
+emit_16(406);
+emit_16(470);
+emit_16(405);
+emit_16(470);
+emit_16(406);
+emit_16(471);
+emit_16(407);
+emit_16(471);
+emit_16(406);
+emit_16(471);
+emit_16(407);
+emit_16(472);
+emit_16(408);
+emit_16(472);
+emit_16(407);
+emit_16(472);
+emit_16(408);
+emit_16(473);
+emit_16(409);
+emit_16(473);
+emit_16(408);
+emit_16(473);
+emit_16(409);
+emit_16(474);
+emit_16(410);
+emit_16(474);
+emit_16(409);
+emit_16(474);
+emit_16(410);
+emit_16(475);
+emit_16(411);
+emit_16(475);
+emit_16(410);
+emit_16(475);
+emit_16(411);
+emit_16(476);
+emit_16(412);
+emit_16(476);
+emit_16(411);
+emit_16(476);
+emit_16(412);
+emit_16(477);
+emit_16(413);
+emit_16(477);
+emit_16(412);
+emit_16(477);
+emit_16(413);
+emit_16(478);
+emit_16(414);
+emit_16(478);
+emit_16(413);
+emit_16(478);
+emit_16(414);
+emit_16(479);
+emit_16(415);
+emit_16(479);
+emit_16(414);
+emit_16(479);
+emit_16(415);
+emit_16(480);
+emit_16(416);
+emit_16(480);
+emit_16(415);
+emit_16(480);
+emit_16(416);
+emit_16(481);
+emit_16(417);
+emit_16(481);
+emit_16(416);
+emit_16(481);
+emit_16(417);
+emit_16(482);
+emit_16(418);
+emit_16(482);
+emit_16(417);
+emit_16(482);
+emit_16(418);
+emit_16(483);
+emit_16(419);
+emit_16(483);
+emit_16(418);
+emit_16(483);
+emit_16(419);
+emit_16(484);
+emit_16(420);
+emit_16(484);
+emit_16(419);
+emit_16(484);
+emit_16(420);
+emit_16(485);
+emit_16(421);
+emit_16(485);
+emit_16(420);
+emit_16(485);
+emit_16(421);
+emit_16(486);
+emit_16(422);
+emit_16(486);
+emit_16(421);
+emit_16(486);
+emit_16(422);
+emit_16(487);
+emit_16(423);
+emit_16(487);
+emit_16(422);
+emit_16(487);
+emit_16(423);
+emit_16(488);
+emit_16(424);
+emit_16(488);
+emit_16(423);
+emit_16(488);
+emit_16(424);
+emit_16(489);
+emit_16(425);
+emit_16(489);
+emit_16(424);
+emit_16(489);
+emit_16(425);
+emit_16(490);
+emit_16(426);
+emit_16(490);
+emit_16(425);
+emit_16(490);
+emit_16(426);
+emit_16(491);
+emit_16(427);
+emit_16(491);
+emit_16(426);
+emit_16(491);
+emit_16(427);
+emit_16(492);
+emit_16(428);
+emit_16(492);
+emit_16(427);
+emit_16(492);
+emit_16(428);
+emit_16(493);
+emit_16(429);
+emit_16(493);
+emit_16(428);
+emit_16(493);
+emit_16(429);
+emit_16(494);
+emit_16(430);
+emit_16(494);
+emit_16(429);
+emit_16(494);
+emit_16(430);
+emit_16(495);
+emit_16(431);
+emit_16(495);
+emit_16(430);
+emit_16(495);
+emit_16(431);
+emit_16(496);
+emit_16(432);
+emit_16(496);
+emit_16(431);
+emit_16(496);
+emit_16(432);
+emit_16(497);
+emit_16(433);
+emit_16(497);
+emit_16(432);
+emit_16(497);
+emit_16(433);
+emit_16(498);
+emit_16(434);
+emit_16(498);
+emit_16(433);
+emit_16(498);
+emit_16(434);
+emit_16(499);
+emit_16(435);
+emit_16(499);
+emit_16(434);
+emit_16(499);
+emit_16(435);
+emit_16(500);
+emit_16(436);
+emit_16(500);
+emit_16(435);
+emit_16(500);
+emit_16(436);
+emit_16(501);
+emit_16(437);
+emit_16(501);
+emit_16(436);
+emit_16(501);
+emit_16(437);
+emit_16(502);
+emit_16(438);
+emit_16(502);
+emit_16(437);
+emit_16(502);
+emit_16(438);
+emit_16(503);
+emit_16(439);
+emit_16(503);
+emit_16(438);
+emit_16(503);
+emit_16(439);
+emit_16(504);
+emit_16(440);
+emit_16(504);
+emit_16(439);
+emit_16(504);
+emit_16(440);
+emit_16(505);
+emit_16(441);
+emit_16(505);
+emit_16(440);
+emit_16(505);
+emit_16(441);
+emit_16(506);
+emit_16(442);
+emit_16(506);
+emit_16(441);
+emit_16(506);
+emit_16(442);
+emit_16(507);
+emit_16(443);
+emit_16(507);
+emit_16(442);
+emit_16(507);
+emit_16(443);
+emit_16(508);
+emit_16(444);
+emit_16(508);
+emit_16(443);
+emit_16(508);
+emit_16(444);
+emit_16(509);
+emit_16(445);
+emit_16(509);
+emit_16(444);
+emit_16(509);
+emit_16(445);
+emit_16(510);
+emit_16(446);
+emit_16(510);
+emit_16(445);
+emit_16(510);
+emit_16(446);
+emit_16(511);
+emit_16(447);
+emit_16(511);
+emit_16(446);
+emit_16(512);
+emit_16(448);
+emit_16(513);
+emit_16(449);
+emit_16(513);
+emit_16(448);
+emit_16(513);
+emit_16(449);
+emit_16(514);
+emit_16(450);
+emit_16(514);
+emit_16(449);
+emit_16(514);
+emit_16(450);
+emit_16(515);
+emit_16(451);
+emit_16(515);
+emit_16(450);
+emit_16(515);
+emit_16(451);
+emit_16(516);
+emit_16(452);
+emit_16(516);
+emit_16(451);
+emit_16(516);
+emit_16(452);
+emit_16(517);
+emit_16(453);
+emit_16(517);
+emit_16(452);
+emit_16(517);
+emit_16(453);
+emit_16(518);
+emit_16(454);
+emit_16(518);
+emit_16(453);
+emit_16(518);
+emit_16(454);
+emit_16(519);
+emit_16(455);
+emit_16(519);
+emit_16(454);
+emit_16(519);
+emit_16(455);
+emit_16(520);
+emit_16(456);
+emit_16(520);
+emit_16(455);
+emit_16(520);
+emit_16(456);
+emit_16(521);
+emit_16(457);
+emit_16(521);
+emit_16(456);
+emit_16(521);
+emit_16(457);
+emit_16(522);
+emit_16(458);
+emit_16(522);
+emit_16(457);
+emit_16(522);
+emit_16(458);
+emit_16(523);
+emit_16(459);
+emit_16(523);
+emit_16(458);
+emit_16(523);
+emit_16(459);
+emit_16(524);
+emit_16(460);
+emit_16(524);
+emit_16(459);
+emit_16(524);
+emit_16(460);
+emit_16(525);
+emit_16(461);
+emit_16(525);
+emit_16(460);
+emit_16(525);
+emit_16(461);
+emit_16(526);
+emit_16(462);
+emit_16(526);
+emit_16(461);
+emit_16(526);
+emit_16(462);
+emit_16(527);
+emit_16(463);
+emit_16(527);
+emit_16(462);
+emit_16(527);
+emit_16(463);
+emit_16(528);
+emit_16(464);
+emit_16(528);
+emit_16(463);
+emit_16(528);
+emit_16(464);
+emit_16(529);
+emit_16(465);
+emit_16(529);
+emit_16(464);
+emit_16(529);
+emit_16(465);
+emit_16(530);
+emit_16(466);
+emit_16(530);
+emit_16(465);
+emit_16(530);
+emit_16(466);
+emit_16(531);
+emit_16(467);
+emit_16(531);
+emit_16(466);
+emit_16(531);
+emit_16(467);
+emit_16(532);
+emit_16(468);
+emit_16(532);
+emit_16(467);
+emit_16(532);
+emit_16(468);
+emit_16(533);
+emit_16(469);
+emit_16(533);
+emit_16(468);
+emit_16(533);
+emit_16(469);
+emit_16(534);
+emit_16(470);
+emit_16(534);
+emit_16(469);
+emit_16(534);
+emit_16(470);
+emit_16(535);
+emit_16(471);
+emit_16(535);
+emit_16(470);
+emit_16(535);
+emit_16(471);
+emit_16(536);
+emit_16(472);
+emit_16(536);
+emit_16(471);
+emit_16(536);
+emit_16(472);
+emit_16(537);
+emit_16(473);
+emit_16(537);
+emit_16(472);
+emit_16(537);
+emit_16(473);
+emit_16(538);
+emit_16(474);
+emit_16(538);
+emit_16(473);
+emit_16(538);
+emit_16(474);
+emit_16(539);
+emit_16(475);
+emit_16(539);
+emit_16(474);
+emit_16(539);
+emit_16(475);
+emit_16(540);
+emit_16(476);
+emit_16(540);
+emit_16(475);
+emit_16(540);
+emit_16(476);
+emit_16(541);
+emit_16(477);
+emit_16(541);
+emit_16(476);
+emit_16(541);
+emit_16(477);
+emit_16(542);
+emit_16(478);
+emit_16(542);
+emit_16(477);
+emit_16(542);
+emit_16(478);
+emit_16(543);
+emit_16(479);
+emit_16(543);
+emit_16(478);
+emit_16(543);
+emit_16(479);
+emit_16(544);
+emit_16(480);
+emit_16(544);
+emit_16(479);
+emit_16(544);
+emit_16(480);
+emit_16(545);
+emit_16(481);
+emit_16(545);
+emit_16(480);
+emit_16(545);
+emit_16(481);
+emit_16(546);
+emit_16(482);
+emit_16(546);
+emit_16(481);
+emit_16(546);
+emit_16(482);
+emit_16(547);
+emit_16(483);
+emit_16(547);
+emit_16(482);
+emit_16(547);
+emit_16(483);
+emit_16(548);
+emit_16(484);
+emit_16(548);
+emit_16(483);
+emit_16(548);
+emit_16(484);
+emit_16(549);
+emit_16(485);
+emit_16(549);
+emit_16(484);
+emit_16(549);
+emit_16(485);
+emit_16(550);
+emit_16(486);
+emit_16(550);
+emit_16(485);
+emit_16(550);
+emit_16(486);
+emit_16(551);
+emit_16(487);
+emit_16(551);
+emit_16(486);
+emit_16(551);
+emit_16(487);
+emit_16(552);
+emit_16(488);
+emit_16(552);
+emit_16(487);
+emit_16(552);
+emit_16(488);
+emit_16(553);
+emit_16(489);
+emit_16(553);
+emit_16(488);
+emit_16(553);
+emit_16(489);
+emit_16(554);
+emit_16(490);
+emit_16(554);
+emit_16(489);
+emit_16(554);
+emit_16(490);
+emit_16(555);
+emit_16(491);
+emit_16(555);
+emit_16(490);
+emit_16(555);
+emit_16(491);
+emit_16(556);
+emit_16(492);
+emit_16(556);
+emit_16(491);
+emit_16(556);
+emit_16(492);
+emit_16(557);
+emit_16(493);
+emit_16(557);
+emit_16(492);
+emit_16(557);
+emit_16(493);
+emit_16(558);
+emit_16(494);
+emit_16(558);
+emit_16(493);
+emit_16(558);
+emit_16(494);
+emit_16(559);
+emit_16(495);
+emit_16(559);
+emit_16(494);
+emit_16(559);
+emit_16(495);
+emit_16(560);
+emit_16(496);
+emit_16(560);
+emit_16(495);
+emit_16(560);
+emit_16(496);
+emit_16(561);
+emit_16(497);
+emit_16(561);
+emit_16(496);
+emit_16(561);
+emit_16(497);
+emit_16(562);
+emit_16(498);
+emit_16(562);
+emit_16(497);
+emit_16(562);
+emit_16(498);
+emit_16(563);
+emit_16(499);
+emit_16(563);
+emit_16(498);
+emit_16(563);
+emit_16(499);
+emit_16(564);
+emit_16(500);
+emit_16(564);
+emit_16(499);
+emit_16(564);
+emit_16(500);
+emit_16(565);
+emit_16(501);
+emit_16(565);
+emit_16(500);
+emit_16(565);
+emit_16(501);
+emit_16(566);
+emit_16(502);
+emit_16(566);
+emit_16(501);
+emit_16(566);
+emit_16(502);
+emit_16(567);
+emit_16(503);
+emit_16(567);
+emit_16(502);
+emit_16(567);
+emit_16(503);
+emit_16(568);
+emit_16(504);
+emit_16(568);
+emit_16(503);
+emit_16(568);
+emit_16(504);
+emit_16(569);
+emit_16(505);
+emit_16(569);
+emit_16(504);
+emit_16(569);
+emit_16(505);
+emit_16(570);
+emit_16(506);
+emit_16(570);
+emit_16(505);
+emit_16(570);
+emit_16(506);
+emit_16(571);
+emit_16(507);
+emit_16(571);
+emit_16(506);
+emit_16(571);
+emit_16(507);
+emit_16(572);
+emit_16(508);
+emit_16(572);
+emit_16(507);
+emit_16(572);
+emit_16(508);
+emit_16(573);
+emit_16(509);
+emit_16(573);
+emit_16(508);
+emit_16(573);
+emit_16(509);
+emit_16(574);
+emit_16(510);
+emit_16(574);
+emit_16(509);
+emit_16(574);
+emit_16(510);
+emit_16(575);
+emit_16(511);
+emit_16(575);
+emit_16(510);
+emit_16(576);
+emit_16(512);
+emit_16(577);
+emit_16(513);
+emit_16(577);
+emit_16(512);
+emit_16(577);
+emit_16(513);
+emit_16(578);
+emit_16(514);
+emit_16(578);
+emit_16(513);
+emit_16(578);
+emit_16(514);
+emit_16(579);
+emit_16(515);
+emit_16(579);
+emit_16(514);
+emit_16(579);
+emit_16(515);
+emit_16(580);
+emit_16(516);
+emit_16(580);
+emit_16(515);
+emit_16(580);
+emit_16(516);
+emit_16(581);
+emit_16(517);
+emit_16(581);
+emit_16(516);
+emit_16(581);
+emit_16(517);
+emit_16(582);
+emit_16(518);
+emit_16(582);
+emit_16(517);
+emit_16(582);
+emit_16(518);
+emit_16(583);
+emit_16(519);
+emit_16(583);
+emit_16(518);
+emit_16(583);
+emit_16(519);
+emit_16(584);
+emit_16(520);
+emit_16(584);
+emit_16(519);
+emit_16(584);
+emit_16(520);
+emit_16(585);
+emit_16(521);
+emit_16(585);
+emit_16(520);
+emit_16(585);
+emit_16(521);
+emit_16(586);
+emit_16(522);
+emit_16(586);
+emit_16(521);
+emit_16(586);
+emit_16(522);
+emit_16(587);
+emit_16(523);
+emit_16(587);
+emit_16(522);
+emit_16(587);
+emit_16(523);
+emit_16(588);
+emit_16(524);
+emit_16(588);
+emit_16(523);
+emit_16(588);
+emit_16(524);
+emit_16(589);
+emit_16(525);
+emit_16(589);
+emit_16(524);
+emit_16(589);
+emit_16(525);
+emit_16(590);
+emit_16(526);
+emit_16(590);
+emit_16(525);
+emit_16(590);
+emit_16(526);
+emit_16(591);
+emit_16(527);
+emit_16(591);
+emit_16(526);
+emit_16(591);
+emit_16(527);
+emit_16(592);
+emit_16(528);
+emit_16(592);
+emit_16(527);
+emit_16(592);
+emit_16(528);
+emit_16(593);
+emit_16(529);
+emit_16(593);
+emit_16(528);
+emit_16(593);
+emit_16(529);
+emit_16(594);
+emit_16(530);
+emit_16(594);
+emit_16(529);
+emit_16(594);
+emit_16(530);
+emit_16(595);
+emit_16(531);
+emit_16(595);
+emit_16(530);
+emit_16(595);
+emit_16(531);
+emit_16(596);
+emit_16(532);
+emit_16(596);
+emit_16(531);
+emit_16(596);
+emit_16(532);
+emit_16(597);
+emit_16(533);
+emit_16(597);
+emit_16(532);
+emit_16(597);
+emit_16(533);
+emit_16(598);
+emit_16(534);
+emit_16(598);
+emit_16(533);
+emit_16(598);
+emit_16(534);
+emit_16(599);
+emit_16(535);
+emit_16(599);
+emit_16(534);
+emit_16(599);
+emit_16(535);
+emit_16(600);
+emit_16(536);
+emit_16(600);
+emit_16(535);
+emit_16(600);
+emit_16(536);
+emit_16(601);
+emit_16(537);
+emit_16(601);
+emit_16(536);
+emit_16(601);
+emit_16(537);
+emit_16(602);
+emit_16(538);
+emit_16(602);
+emit_16(537);
+emit_16(602);
+emit_16(538);
+emit_16(603);
+emit_16(539);
+emit_16(603);
+emit_16(538);
+emit_16(603);
+emit_16(539);
+emit_16(604);
+emit_16(540);
+emit_16(604);
+emit_16(539);
+emit_16(604);
+emit_16(540);
+emit_16(605);
+emit_16(541);
+emit_16(605);
+emit_16(540);
+emit_16(605);
+emit_16(541);
+emit_16(606);
+emit_16(542);
+emit_16(606);
+emit_16(541);
+emit_16(606);
+emit_16(542);
+emit_16(607);
+emit_16(543);
+emit_16(607);
+emit_16(542);
+emit_16(607);
+emit_16(543);
+emit_16(608);
+emit_16(544);
+emit_16(608);
+emit_16(543);
+emit_16(608);
+emit_16(544);
+emit_16(609);
+emit_16(545);
+emit_16(609);
+emit_16(544);
+emit_16(609);
+emit_16(545);
+emit_16(610);
+emit_16(546);
+emit_16(610);
+emit_16(545);
+emit_16(610);
+emit_16(546);
+emit_16(611);
+emit_16(547);
+emit_16(611);
+emit_16(546);
+emit_16(611);
+emit_16(547);
+emit_16(612);
+emit_16(548);
+emit_16(612);
+emit_16(547);
+emit_16(612);
+emit_16(548);
+emit_16(613);
+emit_16(549);
+emit_16(613);
+emit_16(548);
+emit_16(613);
+emit_16(549);
+emit_16(614);
+emit_16(550);
+emit_16(614);
+emit_16(549);
+emit_16(614);
+emit_16(550);
+emit_16(615);
+emit_16(551);
+emit_16(615);
+emit_16(550);
+emit_16(615);
+emit_16(551);
+emit_16(616);
+emit_16(552);
+emit_16(616);
+emit_16(551);
+emit_16(616);
+emit_16(552);
+emit_16(617);
+emit_16(553);
+emit_16(617);
+emit_16(552);
+emit_16(617);
+emit_16(553);
+emit_16(618);
+emit_16(554);
+emit_16(618);
+emit_16(553);
+emit_16(618);
+emit_16(554);
+emit_16(619);
+emit_16(555);
+emit_16(619);
+emit_16(554);
+emit_16(619);
+emit_16(555);
+emit_16(620);
+emit_16(556);
+emit_16(620);
+emit_16(555);
+emit_16(620);
+emit_16(556);
+emit_16(621);
+emit_16(557);
+emit_16(621);
+emit_16(556);
+emit_16(621);
+emit_16(557);
+emit_16(622);
+emit_16(558);
+emit_16(622);
+emit_16(557);
+emit_16(622);
+emit_16(558);
+emit_16(623);
+emit_16(559);
+emit_16(623);
+emit_16(558);
+emit_16(623);
+emit_16(559);
+emit_16(624);
+emit_16(560);
+emit_16(624);
+emit_16(559);
+emit_16(624);
+emit_16(560);
+emit_16(625);
+emit_16(561);
+emit_16(625);
+emit_16(560);
+emit_16(625);
+emit_16(561);
+emit_16(626);
+emit_16(562);
+emit_16(626);
+emit_16(561);
+emit_16(626);
+emit_16(562);
+emit_16(627);
+emit_16(563);
+emit_16(627);
+emit_16(562);
+emit_16(627);
+emit_16(563);
+emit_16(628);
+emit_16(564);
+emit_16(628);
+emit_16(563);
+emit_16(628);
+emit_16(564);
+emit_16(629);
+emit_16(565);
+emit_16(629);
+emit_16(564);
+emit_16(629);
+emit_16(565);
+emit_16(630);
+emit_16(566);
+emit_16(630);
+emit_16(565);
+emit_16(630);
+emit_16(566);
+emit_16(631);
+emit_16(567);
+emit_16(631);
+emit_16(566);
+emit_16(631);
+emit_16(567);
+emit_16(632);
+emit_16(568);
+emit_16(632);
+emit_16(567);
+emit_16(632);
+emit_16(568);
+emit_16(633);
+emit_16(569);
+emit_16(633);
+emit_16(568);
+emit_16(633);
+emit_16(569);
+emit_16(634);
+emit_16(570);
+emit_16(634);
+emit_16(569);
+emit_16(634);
+emit_16(570);
+emit_16(635);
+emit_16(571);
+emit_16(635);
+emit_16(570);
+emit_16(635);
+emit_16(571);
+emit_16(636);
+emit_16(572);
+emit_16(636);
+emit_16(571);
+emit_16(636);
+emit_16(572);
+emit_16(637);
+emit_16(573);
+emit_16(637);
+emit_16(572);
+emit_16(637);
+emit_16(573);
+emit_16(638);
+emit_16(574);
+emit_16(638);
+emit_16(573);
+emit_16(638);
+emit_16(574);
+emit_16(639);
+emit_16(575);
+emit_16(639);
+emit_16(574);
+emit_16(640);
+emit_16(576);
+emit_16(641);
+emit_16(577);
+emit_16(641);
+emit_16(576);
+emit_16(641);
+emit_16(577);
+emit_16(642);
+emit_16(578);
+emit_16(642);
+emit_16(577);
+emit_16(642);
+emit_16(578);
+emit_16(643);
+emit_16(579);
+emit_16(643);
+emit_16(578);
+emit_16(643);
+emit_16(579);
+emit_16(644);
+emit_16(580);
+emit_16(644);
+emit_16(579);
+emit_16(644);
+emit_16(580);
+emit_16(645);
+emit_16(581);
+emit_16(645);
+emit_16(580);
+emit_16(645);
+emit_16(581);
+emit_16(646);
+emit_16(582);
+emit_16(646);
+emit_16(581);
+emit_16(646);
+emit_16(582);
+emit_16(647);
+emit_16(583);
+emit_16(647);
+emit_16(582);
+emit_16(647);
+emit_16(583);
+emit_16(648);
+emit_16(584);
+emit_16(648);
+emit_16(583);
+emit_16(648);
+emit_16(584);
+emit_16(649);
+emit_16(585);
+emit_16(649);
+emit_16(584);
+emit_16(649);
+emit_16(585);
+emit_16(650);
+emit_16(586);
+emit_16(650);
+emit_16(585);
+emit_16(650);
+emit_16(586);
+emit_16(651);
+emit_16(587);
+emit_16(651);
+emit_16(586);
+emit_16(651);
+emit_16(587);
+emit_16(652);
+emit_16(588);
+emit_16(652);
+emit_16(587);
+emit_16(652);
+emit_16(588);
+emit_16(653);
+emit_16(589);
+emit_16(653);
+emit_16(588);
+emit_16(653);
+emit_16(589);
+emit_16(654);
+emit_16(590);
+emit_16(654);
+emit_16(589);
+emit_16(654);
+emit_16(590);
+emit_16(655);
+emit_16(591);
+emit_16(655);
+emit_16(590);
+emit_16(655);
+emit_16(591);
+emit_16(656);
+emit_16(592);
+emit_16(656);
+emit_16(591);
+emit_16(656);
+emit_16(592);
+emit_16(657);
+emit_16(593);
+emit_16(657);
+emit_16(592);
+emit_16(657);
+emit_16(593);
+emit_16(658);
+emit_16(594);
+emit_16(658);
+emit_16(593);
+emit_16(658);
+emit_16(594);
+emit_16(659);
+emit_16(595);
+emit_16(659);
+emit_16(594);
+emit_16(659);
+emit_16(595);
+emit_16(660);
+emit_16(596);
+emit_16(660);
+emit_16(595);
+emit_16(660);
+emit_16(596);
+emit_16(661);
+emit_16(597);
+emit_16(661);
+emit_16(596);
+emit_16(661);
+emit_16(597);
+emit_16(662);
+emit_16(598);
+emit_16(662);
+emit_16(597);
+emit_16(662);
+emit_16(598);
+emit_16(663);
+emit_16(599);
+emit_16(663);
+emit_16(598);
+emit_16(663);
+emit_16(599);
+emit_16(664);
+emit_16(600);
+emit_16(664);
+emit_16(599);
+emit_16(664);
+emit_16(600);
+emit_16(665);
+emit_16(601);
+emit_16(665);
+emit_16(600);
+emit_16(665);
+emit_16(601);
+emit_16(666);
+emit_16(602);
+emit_16(666);
+emit_16(601);
+emit_16(666);
+emit_16(602);
+emit_16(667);
+emit_16(603);
+emit_16(667);
+emit_16(602);
+emit_16(667);
+emit_16(603);
+emit_16(668);
+emit_16(604);
+emit_16(668);
+emit_16(603);
+emit_16(668);
+emit_16(604);
+emit_16(669);
+emit_16(605);
+emit_16(669);
+emit_16(604);
+emit_16(669);
+emit_16(605);
+emit_16(670);
+emit_16(606);
+emit_16(670);
+emit_16(605);
+emit_16(670);
+emit_16(606);
+emit_16(671);
+emit_16(607);
+emit_16(671);
+emit_16(606);
+emit_16(671);
+emit_16(607);
+emit_16(672);
+emit_16(608);
+emit_16(672);
+emit_16(607);
+emit_16(672);
+emit_16(608);
+emit_16(673);
+emit_16(609);
+emit_16(673);
+emit_16(608);
+emit_16(673);
+emit_16(609);
+emit_16(674);
+emit_16(610);
+emit_16(674);
+emit_16(609);
+emit_16(674);
+emit_16(610);
+emit_16(675);
+emit_16(611);
+emit_16(675);
+emit_16(610);
+emit_16(675);
+emit_16(611);
+emit_16(676);
+emit_16(612);
+emit_16(676);
+emit_16(611);
+emit_16(676);
+emit_16(612);
+emit_16(677);
+emit_16(613);
+emit_16(677);
+emit_16(612);
+emit_16(677);
+emit_16(613);
+emit_16(678);
+emit_16(614);
+emit_16(678);
+emit_16(613);
+emit_16(678);
+emit_16(614);
+emit_16(679);
+emit_16(615);
+emit_16(679);
+emit_16(614);
+emit_16(679);
+emit_16(615);
+emit_16(680);
+emit_16(616);
+emit_16(680);
+emit_16(615);
+emit_16(680);
+emit_16(616);
+emit_16(681);
+emit_16(617);
+emit_16(681);
+emit_16(616);
+emit_16(681);
+emit_16(617);
+emit_16(682);
+emit_16(618);
+emit_16(682);
+emit_16(617);
+emit_16(682);
+emit_16(618);
+emit_16(683);
+emit_16(619);
+emit_16(683);
+emit_16(618);
+emit_16(683);
+emit_16(619);
+emit_16(684);
+emit_16(620);
+emit_16(684);
+emit_16(619);
+emit_16(684);
+emit_16(620);
+emit_16(685);
+emit_16(621);
+emit_16(685);
+emit_16(620);
+emit_16(685);
+emit_16(621);
+emit_16(686);
+emit_16(622);
+emit_16(686);
+emit_16(621);
+emit_16(686);
+emit_16(622);
+emit_16(687);
+emit_16(623);
+emit_16(687);
+emit_16(622);
+emit_16(687);
+emit_16(623);
+emit_16(688);
+emit_16(624);
+emit_16(688);
+emit_16(623);
+emit_16(688);
+emit_16(624);
+emit_16(689);
+emit_16(625);
+emit_16(689);
+emit_16(624);
+emit_16(689);
+emit_16(625);
+emit_16(690);
+emit_16(626);
+emit_16(690);
+emit_16(625);
+emit_16(690);
+emit_16(626);
+emit_16(691);
+emit_16(627);
+emit_16(691);
+emit_16(626);
+emit_16(691);
+emit_16(627);
+emit_16(692);
+emit_16(628);
+emit_16(692);
+emit_16(627);
+emit_16(692);
+emit_16(628);
+emit_16(693);
+emit_16(629);
+emit_16(693);
+emit_16(628);
+emit_16(693);
+emit_16(629);
+emit_16(694);
+emit_16(630);
+emit_16(694);
+emit_16(629);
+emit_16(694);
+emit_16(630);
+emit_16(695);
+emit_16(631);
+emit_16(695);
+emit_16(630);
+emit_16(695);
+emit_16(631);
+emit_16(696);
+emit_16(632);
+emit_16(696);
+emit_16(631);
+emit_16(696);
+emit_16(632);
+emit_16(697);
+emit_16(633);
+emit_16(697);
+emit_16(632);
+emit_16(697);
+emit_16(633);
+emit_16(698);
+emit_16(634);
+emit_16(698);
+emit_16(633);
+emit_16(698);
+emit_16(634);
+emit_16(699);
+emit_16(635);
+emit_16(699);
+emit_16(634);
+emit_16(699);
+emit_16(635);
+emit_16(700);
+emit_16(636);
+emit_16(700);
+emit_16(635);
+emit_16(700);
+emit_16(636);
+emit_16(701);
+emit_16(637);
+emit_16(701);
+emit_16(636);
+emit_16(701);
+emit_16(637);
+emit_16(702);
+emit_16(638);
+emit_16(702);
+emit_16(637);
+emit_16(702);
+emit_16(638);
+emit_16(703);
+emit_16(639);
+emit_16(703);
+emit_16(638);
+emit_16(704);
+emit_16(640);
+emit_16(705);
+emit_16(641);
+emit_16(705);
+emit_16(640);
+emit_16(705);
+emit_16(641);
+emit_16(706);
+emit_16(642);
+emit_16(706);
+emit_16(641);
+emit_16(706);
+emit_16(642);
+emit_16(707);
+emit_16(643);
+emit_16(707);
+emit_16(642);
+emit_16(707);
+emit_16(643);
+emit_16(708);
+emit_16(644);
+emit_16(708);
+emit_16(643);
+emit_16(708);
+emit_16(644);
+emit_16(709);
+emit_16(645);
+emit_16(709);
+emit_16(644);
+emit_16(709);
+emit_16(645);
+emit_16(710);
+emit_16(646);
+emit_16(710);
+emit_16(645);
+emit_16(710);
+emit_16(646);
+emit_16(711);
+emit_16(647);
+emit_16(711);
+emit_16(646);
+emit_16(711);
+emit_16(647);
+emit_16(712);
+emit_16(648);
+emit_16(712);
+emit_16(647);
+emit_16(712);
+emit_16(648);
+emit_16(713);
+emit_16(649);
+emit_16(713);
+emit_16(648);
+emit_16(713);
+emit_16(649);
+emit_16(714);
+emit_16(650);
+emit_16(714);
+emit_16(649);
+emit_16(714);
+emit_16(650);
+emit_16(715);
+emit_16(651);
+emit_16(715);
+emit_16(650);
+emit_16(715);
+emit_16(651);
+emit_16(716);
+emit_16(652);
+emit_16(716);
+emit_16(651);
+emit_16(716);
+emit_16(652);
+emit_16(717);
+emit_16(653);
+emit_16(717);
+emit_16(652);
+emit_16(717);
+emit_16(653);
+emit_16(718);
+emit_16(654);
+emit_16(718);
+emit_16(653);
+emit_16(718);
+emit_16(654);
+emit_16(719);
+emit_16(655);
+emit_16(719);
+emit_16(654);
+emit_16(719);
+emit_16(655);
+emit_16(720);
+emit_16(656);
+emit_16(720);
+emit_16(655);
+emit_16(720);
+emit_16(656);
+emit_16(721);
+emit_16(657);
+emit_16(721);
+emit_16(656);
+emit_16(721);
+emit_16(657);
+emit_16(722);
+emit_16(658);
+emit_16(722);
+emit_16(657);
+emit_16(722);
+emit_16(658);
+emit_16(723);
+emit_16(659);
+emit_16(723);
+emit_16(658);
+emit_16(723);
+emit_16(659);
+emit_16(724);
+emit_16(660);
+emit_16(724);
+emit_16(659);
+emit_16(724);
+emit_16(660);
+emit_16(725);
+emit_16(661);
+emit_16(725);
+emit_16(660);
+emit_16(725);
+emit_16(661);
+emit_16(726);
+emit_16(662);
+emit_16(726);
+emit_16(661);
+emit_16(726);
+emit_16(662);
+emit_16(727);
+emit_16(663);
+emit_16(727);
+emit_16(662);
+emit_16(727);
+emit_16(663);
+emit_16(728);
+emit_16(664);
+emit_16(728);
+emit_16(663);
+emit_16(728);
+emit_16(664);
+emit_16(729);
+emit_16(665);
+emit_16(729);
+emit_16(664);
+emit_16(729);
+emit_16(665);
+emit_16(730);
+emit_16(666);
+emit_16(730);
+emit_16(665);
+emit_16(730);
+emit_16(666);
+emit_16(731);
+emit_16(667);
+emit_16(731);
+emit_16(666);
+emit_16(731);
+emit_16(667);
+emit_16(732);
+emit_16(668);
+emit_16(732);
+emit_16(667);
+emit_16(732);
+emit_16(668);
+emit_16(733);
+emit_16(669);
+emit_16(733);
+emit_16(668);
+emit_16(733);
+emit_16(669);
+emit_16(734);
+emit_16(670);
+emit_16(734);
+emit_16(669);
+emit_16(734);
+emit_16(670);
+emit_16(735);
+emit_16(671);
+emit_16(735);
+emit_16(670);
+emit_16(735);
+emit_16(671);
+emit_16(736);
+emit_16(672);
+emit_16(736);
+emit_16(671);
+emit_16(736);
+emit_16(672);
+emit_16(737);
+emit_16(673);
+emit_16(737);
+emit_16(672);
+emit_16(737);
+emit_16(673);
+emit_16(738);
+emit_16(674);
+emit_16(738);
+emit_16(673);
+emit_16(738);
+emit_16(674);
+emit_16(739);
+emit_16(675);
+emit_16(739);
+emit_16(674);
+emit_16(739);
+emit_16(675);
+emit_16(740);
+emit_16(676);
+emit_16(740);
+emit_16(675);
+emit_16(740);
+emit_16(676);
+emit_16(741);
+emit_16(677);
+emit_16(741);
+emit_16(676);
+emit_16(741);
+emit_16(677);
+emit_16(742);
+emit_16(678);
+emit_16(742);
+emit_16(677);
+emit_16(742);
+emit_16(678);
+emit_16(743);
+emit_16(679);
+emit_16(743);
+emit_16(678);
+emit_16(743);
+emit_16(679);
+emit_16(744);
+emit_16(680);
+emit_16(744);
+emit_16(679);
+emit_16(744);
+emit_16(680);
+emit_16(745);
+emit_16(681);
+emit_16(745);
+emit_16(680);
+emit_16(745);
+emit_16(681);
+emit_16(746);
+emit_16(682);
+emit_16(746);
+emit_16(681);
+emit_16(746);
+emit_16(682);
+emit_16(747);
+emit_16(683);
+emit_16(747);
+emit_16(682);
+emit_16(747);
+emit_16(683);
+emit_16(748);
+emit_16(684);
+emit_16(748);
+emit_16(683);
+emit_16(748);
+emit_16(684);
+emit_16(749);
+emit_16(685);
+emit_16(749);
+emit_16(684);
+emit_16(749);
+emit_16(685);
+emit_16(750);
+emit_16(686);
+emit_16(750);
+emit_16(685);
+emit_16(750);
+emit_16(686);
+emit_16(751);
+emit_16(687);
+emit_16(751);
+emit_16(686);
+emit_16(751);
+emit_16(687);
+emit_16(752);
+emit_16(688);
+emit_16(752);
+emit_16(687);
+emit_16(752);
+emit_16(688);
+emit_16(753);
+emit_16(689);
+emit_16(753);
+emit_16(688);
+emit_16(753);
+emit_16(689);
+emit_16(754);
+emit_16(690);
+emit_16(754);
+emit_16(689);
+emit_16(754);
+emit_16(690);
+emit_16(755);
+emit_16(691);
+emit_16(755);
+emit_16(690);
+emit_16(755);
+emit_16(691);
+emit_16(756);
+emit_16(692);
+emit_16(756);
+emit_16(691);
+emit_16(756);
+emit_16(692);
+emit_16(757);
+emit_16(693);
+emit_16(757);
+emit_16(692);
+emit_16(757);
+emit_16(693);
+emit_16(758);
+emit_16(694);
+emit_16(758);
+emit_16(693);
+emit_16(758);
+emit_16(694);
+emit_16(759);
+emit_16(695);
+emit_16(759);
+emit_16(694);
+emit_16(759);
+emit_16(695);
+emit_16(760);
+emit_16(696);
+emit_16(760);
+emit_16(695);
+emit_16(760);
+emit_16(696);
+emit_16(761);
+emit_16(697);
+emit_16(761);
+emit_16(696);
+emit_16(761);
+emit_16(697);
+emit_16(762);
+emit_16(698);
+emit_16(762);
+emit_16(697);
+emit_16(762);
+emit_16(698);
+emit_16(763);
+emit_16(699);
+emit_16(763);
+emit_16(698);
+emit_16(763);
+emit_16(699);
+emit_16(764);
+emit_16(700);
+emit_16(764);
+emit_16(699);
+emit_16(764);
+emit_16(700);
+emit_16(765);
+emit_16(701);
+emit_16(765);
+emit_16(700);
+emit_16(765);
+emit_16(701);
+emit_16(766);
+emit_16(702);
+emit_16(766);
+emit_16(701);
+emit_16(766);
+emit_16(702);
+emit_16(767);
+emit_16(703);
+emit_16(767);
+emit_16(702);
+emit_16(768);
+emit_16(704);
+emit_16(769);
+emit_16(705);
+emit_16(769);
+emit_16(704);
+emit_16(769);
+emit_16(705);
+emit_16(770);
+emit_16(706);
+emit_16(770);
+emit_16(705);
+emit_16(770);
+emit_16(706);
+emit_16(771);
+emit_16(707);
+emit_16(771);
+emit_16(706);
+emit_16(771);
+emit_16(707);
+emit_16(772);
+emit_16(708);
+emit_16(772);
+emit_16(707);
+emit_16(772);
+emit_16(708);
+emit_16(773);
+emit_16(709);
+emit_16(773);
+emit_16(708);
+emit_16(773);
+emit_16(709);
+emit_16(774);
+emit_16(710);
+emit_16(774);
+emit_16(709);
+emit_16(774);
+emit_16(710);
+emit_16(775);
+emit_16(711);
+emit_16(775);
+emit_16(710);
+emit_16(775);
+emit_16(711);
+emit_16(776);
+emit_16(712);
+emit_16(776);
+emit_16(711);
+emit_16(776);
+emit_16(712);
+emit_16(777);
+emit_16(713);
+emit_16(777);
+emit_16(712);
+emit_16(777);
+emit_16(713);
+emit_16(778);
+emit_16(714);
+emit_16(778);
+emit_16(713);
+emit_16(778);
+emit_16(714);
+emit_16(779);
+emit_16(715);
+emit_16(779);
+emit_16(714);
+emit_16(779);
+emit_16(715);
+emit_16(780);
+emit_16(716);
+emit_16(780);
+emit_16(715);
+emit_16(780);
+emit_16(716);
+emit_16(781);
+emit_16(717);
+emit_16(781);
+emit_16(716);
+emit_16(781);
+emit_16(717);
+emit_16(782);
+emit_16(718);
+emit_16(782);
+emit_16(717);
+emit_16(782);
+emit_16(718);
+emit_16(783);
+emit_16(719);
+emit_16(783);
+emit_16(718);
+emit_16(783);
+emit_16(719);
+emit_16(784);
+emit_16(720);
+emit_16(784);
+emit_16(719);
+emit_16(784);
+emit_16(720);
+emit_16(785);
+emit_16(721);
+emit_16(785);
+emit_16(720);
+emit_16(785);
+emit_16(721);
+emit_16(786);
+emit_16(722);
+emit_16(786);
+emit_16(721);
+emit_16(786);
+emit_16(722);
+emit_16(787);
+emit_16(723);
+emit_16(787);
+emit_16(722);
+emit_16(787);
+emit_16(723);
+emit_16(788);
+emit_16(724);
+emit_16(788);
+emit_16(723);
+emit_16(788);
+emit_16(724);
+emit_16(789);
+emit_16(725);
+emit_16(789);
+emit_16(724);
+emit_16(789);
+emit_16(725);
+emit_16(790);
+emit_16(726);
+emit_16(790);
+emit_16(725);
+emit_16(790);
+emit_16(726);
+emit_16(791);
+emit_16(727);
+emit_16(791);
+emit_16(726);
+emit_16(791);
+emit_16(727);
+emit_16(792);
+emit_16(728);
+emit_16(792);
+emit_16(727);
+emit_16(792);
+emit_16(728);
+emit_16(793);
+emit_16(729);
+emit_16(793);
+emit_16(728);
+emit_16(793);
+emit_16(729);
+emit_16(794);
+emit_16(730);
+emit_16(794);
+emit_16(729);
+emit_16(794);
+emit_16(730);
+emit_16(795);
+emit_16(731);
+emit_16(795);
+emit_16(730);
+emit_16(795);
+emit_16(731);
+emit_16(796);
+emit_16(732);
+emit_16(796);
+emit_16(731);
+emit_16(796);
+emit_16(732);
+emit_16(797);
+emit_16(733);
+emit_16(797);
+emit_16(732);
+emit_16(797);
+emit_16(733);
+emit_16(798);
+emit_16(734);
+emit_16(798);
+emit_16(733);
+emit_16(798);
+emit_16(734);
+emit_16(799);
+emit_16(735);
+emit_16(799);
+emit_16(734);
+emit_16(799);
+emit_16(735);
+emit_16(800);
+emit_16(736);
+emit_16(800);
+emit_16(735);
+emit_16(800);
+emit_16(736);
+emit_16(801);
+emit_16(737);
+emit_16(801);
+emit_16(736);
+emit_16(801);
+emit_16(737);
+emit_16(802);
+emit_16(738);
+emit_16(802);
+emit_16(737);
+emit_16(802);
+emit_16(738);
+emit_16(803);
+emit_16(739);
+emit_16(803);
+emit_16(738);
+emit_16(803);
+emit_16(739);
+emit_16(804);
+emit_16(740);
+emit_16(804);
+emit_16(739);
+emit_16(804);
+emit_16(740);
+emit_16(805);
+emit_16(741);
+emit_16(805);
+emit_16(740);
+emit_16(805);
+emit_16(741);
+emit_16(806);
+emit_16(742);
+emit_16(806);
+emit_16(741);
+emit_16(806);
+emit_16(742);
+emit_16(807);
+emit_16(743);
+emit_16(807);
+emit_16(742);
+emit_16(807);
+emit_16(743);
+emit_16(808);
+emit_16(744);
+emit_16(808);
+emit_16(743);
+emit_16(808);
+emit_16(744);
+emit_16(809);
+emit_16(745);
+emit_16(809);
+emit_16(744);
+emit_16(809);
+emit_16(745);
+emit_16(810);
+emit_16(746);
+emit_16(810);
+emit_16(745);
+emit_16(810);
+emit_16(746);
+emit_16(811);
+emit_16(747);
+emit_16(811);
+emit_16(746);
+emit_16(811);
+emit_16(747);
+emit_16(812);
+emit_16(748);
+emit_16(812);
+emit_16(747);
+emit_16(812);
+emit_16(748);
+emit_16(813);
+emit_16(749);
+emit_16(813);
+emit_16(748);
+emit_16(813);
+emit_16(749);
+emit_16(814);
+emit_16(750);
+emit_16(814);
+emit_16(749);
+emit_16(814);
+emit_16(750);
+emit_16(815);
+emit_16(751);
+emit_16(815);
+emit_16(750);
+emit_16(815);
+emit_16(751);
+emit_16(816);
+emit_16(752);
+emit_16(816);
+emit_16(751);
+emit_16(816);
+emit_16(752);
+emit_16(817);
+emit_16(753);
+emit_16(817);
+emit_16(752);
+emit_16(817);
+emit_16(753);
+emit_16(818);
+emit_16(754);
+emit_16(818);
+emit_16(753);
+emit_16(818);
+emit_16(754);
+emit_16(819);
+emit_16(755);
+emit_16(819);
+emit_16(754);
+emit_16(819);
+emit_16(755);
+emit_16(820);
+emit_16(756);
+emit_16(820);
+emit_16(755);
+emit_16(820);
+emit_16(756);
+emit_16(821);
+emit_16(757);
+emit_16(821);
+emit_16(756);
+emit_16(821);
+emit_16(757);
+emit_16(822);
+emit_16(758);
+emit_16(822);
+emit_16(757);
+emit_16(822);
+emit_16(758);
+emit_16(823);
+emit_16(759);
+emit_16(823);
+emit_16(758);
+emit_16(823);
+emit_16(759);
+emit_16(824);
+emit_16(760);
+emit_16(824);
+emit_16(759);
+emit_16(824);
+emit_16(760);
+emit_16(825);
+emit_16(761);
+emit_16(825);
+emit_16(760);
+emit_16(825);
+emit_16(761);
+emit_16(826);
+emit_16(762);
+emit_16(826);
+emit_16(761);
+emit_16(826);
+emit_16(762);
+emit_16(827);
+emit_16(763);
+emit_16(827);
+emit_16(762);
+emit_16(827);
+emit_16(763);
+emit_16(828);
+emit_16(764);
+emit_16(828);
+emit_16(763);
+emit_16(828);
+emit_16(764);
+emit_16(829);
+emit_16(765);
+emit_16(829);
+emit_16(764);
+emit_16(829);
+emit_16(765);
+emit_16(830);
+emit_16(766);
+emit_16(830);
+emit_16(765);
+emit_16(830);
+emit_16(766);
+emit_16(831);
+emit_16(767);
+emit_16(831);
+emit_16(766);
+emit_16(832);
+emit_16(768);
+emit_16(833);
+emit_16(769);
+emit_16(833);
+emit_16(768);
+emit_16(833);
+emit_16(769);
+emit_16(834);
+emit_16(770);
+emit_16(834);
+emit_16(769);
+emit_16(834);
+emit_16(770);
+emit_16(835);
+emit_16(771);
+emit_16(835);
+emit_16(770);
+emit_16(835);
+emit_16(771);
+emit_16(836);
+emit_16(772);
+emit_16(836);
+emit_16(771);
+emit_16(836);
+emit_16(772);
+emit_16(837);
+emit_16(773);
+emit_16(837);
+emit_16(772);
+emit_16(837);
+emit_16(773);
+emit_16(838);
+emit_16(774);
+emit_16(838);
+emit_16(773);
+emit_16(838);
+emit_16(774);
+emit_16(839);
+emit_16(775);
+emit_16(839);
+emit_16(774);
+emit_16(839);
+emit_16(775);
+emit_16(840);
+emit_16(776);
+emit_16(840);
+emit_16(775);
+emit_16(840);
+emit_16(776);
+emit_16(841);
+emit_16(777);
+emit_16(841);
+emit_16(776);
+emit_16(841);
+emit_16(777);
+emit_16(842);
+emit_16(778);
+emit_16(842);
+emit_16(777);
+emit_16(842);
+emit_16(778);
+emit_16(843);
+emit_16(779);
+emit_16(843);
+emit_16(778);
+emit_16(843);
+emit_16(779);
+emit_16(844);
+emit_16(780);
+emit_16(844);
+emit_16(779);
+emit_16(844);
+emit_16(780);
+emit_16(845);
+emit_16(781);
+emit_16(845);
+emit_16(780);
+emit_16(845);
+emit_16(781);
+emit_16(846);
+emit_16(782);
+emit_16(846);
+emit_16(781);
+emit_16(846);
+emit_16(782);
+emit_16(847);
+emit_16(783);
+emit_16(847);
+emit_16(782);
+emit_16(847);
+emit_16(783);
+emit_16(848);
+emit_16(784);
+emit_16(848);
+emit_16(783);
+emit_16(848);
+emit_16(784);
+emit_16(849);
+emit_16(785);
+emit_16(849);
+emit_16(784);
+emit_16(849);
+emit_16(785);
+emit_16(850);
+emit_16(786);
+emit_16(850);
+emit_16(785);
+emit_16(850);
+emit_16(786);
+emit_16(851);
+emit_16(787);
+emit_16(851);
+emit_16(786);
+emit_16(851);
+emit_16(787);
+emit_16(852);
+emit_16(788);
+emit_16(852);
+emit_16(787);
+emit_16(852);
+emit_16(788);
+emit_16(853);
+emit_16(789);
+emit_16(853);
+emit_16(788);
+emit_16(853);
+emit_16(789);
+emit_16(854);
+emit_16(790);
+emit_16(854);
+emit_16(789);
+emit_16(854);
+emit_16(790);
+emit_16(855);
+emit_16(791);
+emit_16(855);
+emit_16(790);
+emit_16(855);
+emit_16(791);
+emit_16(856);
+emit_16(792);
+emit_16(856);
+emit_16(791);
+emit_16(856);
+emit_16(792);
+emit_16(857);
+emit_16(793);
+emit_16(857);
+emit_16(792);
+emit_16(857);
+emit_16(793);
+emit_16(858);
+emit_16(794);
+emit_16(858);
+emit_16(793);
+emit_16(858);
+emit_16(794);
+emit_16(859);
+emit_16(795);
+emit_16(859);
+emit_16(794);
+emit_16(859);
+emit_16(795);
+emit_16(860);
+emit_16(796);
+emit_16(860);
+emit_16(795);
+emit_16(860);
+emit_16(796);
+emit_16(861);
+emit_16(797);
+emit_16(861);
+emit_16(796);
+emit_16(861);
+emit_16(797);
+emit_16(862);
+emit_16(798);
+emit_16(862);
+emit_16(797);
+emit_16(862);
+emit_16(798);
+emit_16(863);
+emit_16(799);
+emit_16(863);
+emit_16(798);
+emit_16(863);
+emit_16(799);
+emit_16(864);
+emit_16(800);
+emit_16(864);
+emit_16(799);
+emit_16(864);
+emit_16(800);
+emit_16(865);
+emit_16(801);
+emit_16(865);
+emit_16(800);
+emit_16(865);
+emit_16(801);
+emit_16(866);
+emit_16(802);
+emit_16(866);
+emit_16(801);
+emit_16(866);
+emit_16(802);
+emit_16(867);
+emit_16(803);
+emit_16(867);
+emit_16(802);
+emit_16(867);
+emit_16(803);
+emit_16(868);
+emit_16(804);
+emit_16(868);
+emit_16(803);
+emit_16(868);
+emit_16(804);
+emit_16(869);
+emit_16(805);
+emit_16(869);
+emit_16(804);
+emit_16(869);
+emit_16(805);
+emit_16(870);
+emit_16(806);
+emit_16(870);
+emit_16(805);
+emit_16(870);
+emit_16(806);
+emit_16(871);
+emit_16(807);
+emit_16(871);
+emit_16(806);
+emit_16(871);
+emit_16(807);
+emit_16(872);
+emit_16(808);
+emit_16(872);
+emit_16(807);
+emit_16(872);
+emit_16(808);
+emit_16(873);
+emit_16(809);
+emit_16(873);
+emit_16(808);
+emit_16(873);
+emit_16(809);
+emit_16(874);
+emit_16(810);
+emit_16(874);
+emit_16(809);
+emit_16(874);
+emit_16(810);
+emit_16(875);
+emit_16(811);
+emit_16(875);
+emit_16(810);
+emit_16(875);
+emit_16(811);
+emit_16(876);
+emit_16(812);
+emit_16(876);
+emit_16(811);
+emit_16(876);
+emit_16(812);
+emit_16(877);
+emit_16(813);
+emit_16(877);
+emit_16(812);
+emit_16(877);
+emit_16(813);
+emit_16(878);
+emit_16(814);
+emit_16(878);
+emit_16(813);
+emit_16(878);
+emit_16(814);
+emit_16(879);
+emit_16(815);
+emit_16(879);
+emit_16(814);
+emit_16(879);
+emit_16(815);
+emit_16(880);
+emit_16(816);
+emit_16(880);
+emit_16(815);
+emit_16(880);
+emit_16(816);
+emit_16(881);
+emit_16(817);
+emit_16(881);
+emit_16(816);
+emit_16(881);
+emit_16(817);
+emit_16(882);
+emit_16(818);
+emit_16(882);
+emit_16(817);
+emit_16(882);
+emit_16(818);
+emit_16(883);
+emit_16(819);
+emit_16(883);
+emit_16(818);
+emit_16(883);
+emit_16(819);
+emit_16(884);
+emit_16(820);
+emit_16(884);
+emit_16(819);
+emit_16(884);
+emit_16(820);
+emit_16(885);
+emit_16(821);
+emit_16(885);
+emit_16(820);
+emit_16(885);
+emit_16(821);
+emit_16(886);
+emit_16(822);
+emit_16(886);
+emit_16(821);
+emit_16(886);
+emit_16(822);
+emit_16(887);
+emit_16(823);
+emit_16(887);
+emit_16(822);
+emit_16(887);
+emit_16(823);
+emit_16(888);
+emit_16(824);
+emit_16(888);
+emit_16(823);
+emit_16(888);
+emit_16(824);
+emit_16(889);
+emit_16(825);
+emit_16(889);
+emit_16(824);
+emit_16(889);
+emit_16(825);
+emit_16(890);
+emit_16(826);
+emit_16(890);
+emit_16(825);
+emit_16(890);
+emit_16(826);
+emit_16(891);
+emit_16(827);
+emit_16(891);
+emit_16(826);
+emit_16(891);
+emit_16(827);
+emit_16(892);
+emit_16(828);
+emit_16(892);
+emit_16(827);
+emit_16(892);
+emit_16(828);
+emit_16(893);
+emit_16(829);
+emit_16(893);
+emit_16(828);
+emit_16(893);
+emit_16(829);
+emit_16(894);
+emit_16(830);
+emit_16(894);
+emit_16(829);
+emit_16(894);
+emit_16(830);
+emit_16(895);
+emit_16(831);
+emit_16(895);
+emit_16(830);
+emit_16(896);
+emit_16(832);
+emit_16(897);
+emit_16(833);
+emit_16(897);
+emit_16(832);
+emit_16(897);
+emit_16(833);
+emit_16(898);
+emit_16(834);
+emit_16(898);
+emit_16(833);
+emit_16(898);
+emit_16(834);
+emit_16(899);
+emit_16(835);
+emit_16(899);
+emit_16(834);
+emit_16(899);
+emit_16(835);
+emit_16(900);
+emit_16(836);
+emit_16(900);
+emit_16(835);
+emit_16(900);
+emit_16(836);
+emit_16(901);
+emit_16(837);
+emit_16(901);
+emit_16(836);
+emit_16(901);
+emit_16(837);
+emit_16(902);
+emit_16(838);
+emit_16(902);
+emit_16(837);
+emit_16(902);
+emit_16(838);
+emit_16(903);
+emit_16(839);
+emit_16(903);
+emit_16(838);
+emit_16(903);
+emit_16(839);
+emit_16(904);
+emit_16(840);
+emit_16(904);
+emit_16(839);
+emit_16(904);
+emit_16(840);
+emit_16(905);
+emit_16(841);
+emit_16(905);
+emit_16(840);
+emit_16(905);
+emit_16(841);
+emit_16(906);
+emit_16(842);
+emit_16(906);
+emit_16(841);
+emit_16(906);
+emit_16(842);
+emit_16(907);
+emit_16(843);
+emit_16(907);
+emit_16(842);
+emit_16(907);
+emit_16(843);
+emit_16(908);
+emit_16(844);
+emit_16(908);
+emit_16(843);
+emit_16(908);
+emit_16(844);
+emit_16(909);
+emit_16(845);
+emit_16(909);
+emit_16(844);
+emit_16(909);
+emit_16(845);
+emit_16(910);
+emit_16(846);
+emit_16(910);
+emit_16(845);
+emit_16(910);
+emit_16(846);
+emit_16(911);
+emit_16(847);
+emit_16(911);
+emit_16(846);
+emit_16(911);
+emit_16(847);
+emit_16(912);
+emit_16(848);
+emit_16(912);
+emit_16(847);
+emit_16(912);
+emit_16(848);
+emit_16(913);
+emit_16(849);
+emit_16(913);
+emit_16(848);
+emit_16(913);
+emit_16(849);
+emit_16(914);
+emit_16(850);
+emit_16(914);
+emit_16(849);
+emit_16(914);
+emit_16(850);
+emit_16(915);
+emit_16(851);
+emit_16(915);
+emit_16(850);
+emit_16(915);
+emit_16(851);
+emit_16(916);
+emit_16(852);
+emit_16(916);
+emit_16(851);
+emit_16(916);
+emit_16(852);
+emit_16(917);
+emit_16(853);
+emit_16(917);
+emit_16(852);
+emit_16(917);
+emit_16(853);
+emit_16(918);
+emit_16(854);
+emit_16(918);
+emit_16(853);
+emit_16(918);
+emit_16(854);
+emit_16(919);
+emit_16(855);
+emit_16(919);
+emit_16(854);
+emit_16(919);
+emit_16(855);
+emit_16(920);
+emit_16(856);
+emit_16(920);
+emit_16(855);
+emit_16(920);
+emit_16(856);
+emit_16(921);
+emit_16(857);
+emit_16(921);
+emit_16(856);
+emit_16(921);
+emit_16(857);
+emit_16(922);
+emit_16(858);
+emit_16(922);
+emit_16(857);
+emit_16(922);
+emit_16(858);
+emit_16(923);
+emit_16(859);
+emit_16(923);
+emit_16(858);
+emit_16(923);
+emit_16(859);
+emit_16(924);
+emit_16(860);
+emit_16(924);
+emit_16(859);
+emit_16(924);
+emit_16(860);
+emit_16(925);
+emit_16(861);
+emit_16(925);
+emit_16(860);
+emit_16(925);
+emit_16(861);
+emit_16(926);
+emit_16(862);
+emit_16(926);
+emit_16(861);
+emit_16(926);
+emit_16(862);
+emit_16(927);
+emit_16(863);
+emit_16(927);
+emit_16(862);
+emit_16(927);
+emit_16(863);
+emit_16(928);
+emit_16(864);
+emit_16(928);
+emit_16(863);
+emit_16(928);
+emit_16(864);
+emit_16(929);
+emit_16(865);
+emit_16(929);
+emit_16(864);
+emit_16(929);
+emit_16(865);
+emit_16(930);
+emit_16(866);
+emit_16(930);
+emit_16(865);
+emit_16(930);
+emit_16(866);
+emit_16(931);
+emit_16(867);
+emit_16(931);
+emit_16(866);
+emit_16(931);
+emit_16(867);
+emit_16(932);
+emit_16(868);
+emit_16(932);
+emit_16(867);
+emit_16(932);
+emit_16(868);
+emit_16(933);
+emit_16(869);
+emit_16(933);
+emit_16(868);
+emit_16(933);
+emit_16(869);
+emit_16(934);
+emit_16(870);
+emit_16(934);
+emit_16(869);
+emit_16(934);
+emit_16(870);
+emit_16(935);
+emit_16(871);
+emit_16(935);
+emit_16(870);
+emit_16(935);
+emit_16(871);
+emit_16(936);
+emit_16(872);
+emit_16(936);
+emit_16(871);
+emit_16(936);
+emit_16(872);
+emit_16(937);
+emit_16(873);
+emit_16(937);
+emit_16(872);
+emit_16(937);
+emit_16(873);
+emit_16(938);
+emit_16(874);
+emit_16(938);
+emit_16(873);
+emit_16(938);
+emit_16(874);
+emit_16(939);
+emit_16(875);
+emit_16(939);
+emit_16(874);
+emit_16(939);
+emit_16(875);
+emit_16(940);
+emit_16(876);
+emit_16(940);
+emit_16(875);
+emit_16(940);
+emit_16(876);
+emit_16(941);
+emit_16(877);
+emit_16(941);
+emit_16(876);
+emit_16(941);
+emit_16(877);
+emit_16(942);
+emit_16(878);
+emit_16(942);
+emit_16(877);
+emit_16(942);
+emit_16(878);
+emit_16(943);
+emit_16(879);
+emit_16(943);
+emit_16(878);
+emit_16(943);
+emit_16(879);
+emit_16(944);
+emit_16(880);
+emit_16(944);
+emit_16(879);
+emit_16(944);
+emit_16(880);
+emit_16(945);
+emit_16(881);
+emit_16(945);
+emit_16(880);
+emit_16(945);
+emit_16(881);
+emit_16(946);
+emit_16(882);
+emit_16(946);
+emit_16(881);
+emit_16(946);
+emit_16(882);
+emit_16(947);
+emit_16(883);
+emit_16(947);
+emit_16(882);
+emit_16(947);
+emit_16(883);
+emit_16(948);
+emit_16(884);
+emit_16(948);
+emit_16(883);
+emit_16(948);
+emit_16(884);
+emit_16(949);
+emit_16(885);
+emit_16(949);
+emit_16(884);
+emit_16(949);
+emit_16(885);
+emit_16(950);
+emit_16(886);
+emit_16(950);
+emit_16(885);
+emit_16(950);
+emit_16(886);
+emit_16(951);
+emit_16(887);
+emit_16(951);
+emit_16(886);
+emit_16(951);
+emit_16(887);
+emit_16(952);
+emit_16(888);
+emit_16(952);
+emit_16(887);
+emit_16(952);
+emit_16(888);
+emit_16(953);
+emit_16(889);
+emit_16(953);
+emit_16(888);
+emit_16(953);
+emit_16(889);
+emit_16(954);
+emit_16(890);
+emit_16(954);
+emit_16(889);
+emit_16(954);
+emit_16(890);
+emit_16(955);
+emit_16(891);
+emit_16(955);
+emit_16(890);
+emit_16(955);
+emit_16(891);
+emit_16(956);
+emit_16(892);
+emit_16(956);
+emit_16(891);
+emit_16(956);
+emit_16(892);
+emit_16(957);
+emit_16(893);
+emit_16(957);
+emit_16(892);
+emit_16(957);
+emit_16(893);
+emit_16(958);
+emit_16(894);
+emit_16(958);
+emit_16(893);
+emit_16(958);
+emit_16(894);
+emit_16(959);
+emit_16(895);
+emit_16(959);
+emit_16(894);
+emit_16(960);
+emit_16(896);
+emit_16(961);
+emit_16(897);
+emit_16(961);
+emit_16(896);
+emit_16(961);
+emit_16(897);
+emit_16(962);
+emit_16(898);
+emit_16(962);
+emit_16(897);
+emit_16(962);
+emit_16(898);
+emit_16(963);
+emit_16(899);
+emit_16(963);
+emit_16(898);
+emit_16(963);
+emit_16(899);
+emit_16(964);
+emit_16(900);
+emit_16(964);
+emit_16(899);
+emit_16(964);
+emit_16(900);
+emit_16(965);
+emit_16(901);
+emit_16(965);
+emit_16(900);
+emit_16(965);
+emit_16(901);
+emit_16(966);
+emit_16(902);
+emit_16(966);
+emit_16(901);
+emit_16(966);
+emit_16(902);
+emit_16(967);
+emit_16(903);
+emit_16(967);
+emit_16(902);
+emit_16(967);
+emit_16(903);
+emit_16(968);
+emit_16(904);
+emit_16(968);
+emit_16(903);
+emit_16(968);
+emit_16(904);
+emit_16(969);
+emit_16(905);
+emit_16(969);
+emit_16(904);
+emit_16(969);
+emit_16(905);
+emit_16(970);
+emit_16(906);
+emit_16(970);
+emit_16(905);
+emit_16(970);
+emit_16(906);
+emit_16(971);
+emit_16(907);
+emit_16(971);
+emit_16(906);
+emit_16(971);
+emit_16(907);
+emit_16(972);
+emit_16(908);
+emit_16(972);
+emit_16(907);
+emit_16(972);
+emit_16(908);
+emit_16(973);
+emit_16(909);
+emit_16(973);
+emit_16(908);
+emit_16(973);
+emit_16(909);
+emit_16(974);
+emit_16(910);
+emit_16(974);
+emit_16(909);
+emit_16(974);
+emit_16(910);
+emit_16(975);
+emit_16(911);
+emit_16(975);
+emit_16(910);
+emit_16(975);
+emit_16(911);
+emit_16(976);
+emit_16(912);
+emit_16(976);
+emit_16(911);
+emit_16(976);
+emit_16(912);
+emit_16(977);
+emit_16(913);
+emit_16(977);
+emit_16(912);
+emit_16(977);
+emit_16(913);
+emit_16(978);
+emit_16(914);
+emit_16(978);
+emit_16(913);
+emit_16(978);
+emit_16(914);
+emit_16(979);
+emit_16(915);
+emit_16(979);
+emit_16(914);
+emit_16(979);
+emit_16(915);
+emit_16(980);
+emit_16(916);
+emit_16(980);
+emit_16(915);
+emit_16(980);
+emit_16(916);
+emit_16(981);
+emit_16(917);
+emit_16(981);
+emit_16(916);
+emit_16(981);
+emit_16(917);
+emit_16(982);
+emit_16(918);
+emit_16(982);
+emit_16(917);
+emit_16(982);
+emit_16(918);
+emit_16(983);
+emit_16(919);
+emit_16(983);
+emit_16(918);
+emit_16(983);
+emit_16(919);
+emit_16(984);
+emit_16(920);
+emit_16(984);
+emit_16(919);
+emit_16(984);
+emit_16(920);
+emit_16(985);
+emit_16(921);
+emit_16(985);
+emit_16(920);
+emit_16(985);
+emit_16(921);
+emit_16(986);
+emit_16(922);
+emit_16(986);
+emit_16(921);
+emit_16(986);
+emit_16(922);
+emit_16(987);
+emit_16(923);
+emit_16(987);
+emit_16(922);
+emit_16(987);
+emit_16(923);
+emit_16(988);
+emit_16(924);
+emit_16(988);
+emit_16(923);
+emit_16(988);
+emit_16(924);
+emit_16(989);
+emit_16(925);
+emit_16(989);
+emit_16(924);
+emit_16(989);
+emit_16(925);
+emit_16(990);
+emit_16(926);
+emit_16(990);
+emit_16(925);
+emit_16(990);
+emit_16(926);
+emit_16(991);
+emit_16(927);
+emit_16(991);
+emit_16(926);
+emit_16(991);
+emit_16(927);
+emit_16(992);
+emit_16(928);
+emit_16(992);
+emit_16(927);
+emit_16(992);
+emit_16(928);
+emit_16(993);
+emit_16(929);
+emit_16(993);
+emit_16(928);
+emit_16(993);
+emit_16(929);
+emit_16(994);
+emit_16(930);
+emit_16(994);
+emit_16(929);
+emit_16(994);
+emit_16(930);
+emit_16(995);
+emit_16(931);
+emit_16(995);
+emit_16(930);
+emit_16(995);
+emit_16(931);
+emit_16(996);
+emit_16(932);
+emit_16(996);
+emit_16(931);
+emit_16(996);
+emit_16(932);
+emit_16(997);
+emit_16(933);
+emit_16(997);
+emit_16(932);
+emit_16(997);
+emit_16(933);
+emit_16(998);
+emit_16(934);
+emit_16(998);
+emit_16(933);
+emit_16(998);
+emit_16(934);
+emit_16(999);
+emit_16(935);
+emit_16(999);
+emit_16(934);
+emit_16(999);
+emit_16(935);
+emit_16(1000);
+emit_16(936);
+emit_16(1000);
+emit_16(935);
+emit_16(1000);
+emit_16(936);
+emit_16(1001);
+emit_16(937);
+emit_16(1001);
+emit_16(936);
+emit_16(1001);
+emit_16(937);
+emit_16(1002);
+emit_16(938);
+emit_16(1002);
+emit_16(937);
+emit_16(1002);
+emit_16(938);
+emit_16(1003);
+emit_16(939);
+emit_16(1003);
+emit_16(938);
+emit_16(1003);
+emit_16(939);
+emit_16(1004);
+emit_16(940);
+emit_16(1004);
+emit_16(939);
+emit_16(1004);
+emit_16(940);
+emit_16(1005);
+emit_16(941);
+emit_16(1005);
+emit_16(940);
+emit_16(1005);
+emit_16(941);
+emit_16(1006);
+emit_16(942);
+emit_16(1006);
+emit_16(941);
+emit_16(1006);
+emit_16(942);
+emit_16(1007);
+emit_16(943);
+emit_16(1007);
+emit_16(942);
+emit_16(1007);
+emit_16(943);
+emit_16(1008);
+emit_16(944);
+emit_16(1008);
+emit_16(943);
+emit_16(1008);
+emit_16(944);
+emit_16(1009);
+emit_16(945);
+emit_16(1009);
+emit_16(944);
+emit_16(1009);
+emit_16(945);
+emit_16(1010);
+emit_16(946);
+emit_16(1010);
+emit_16(945);
+emit_16(1010);
+emit_16(946);
+emit_16(1011);
+emit_16(947);
+emit_16(1011);
+emit_16(946);
+emit_16(1011);
+emit_16(947);
+emit_16(1012);
+emit_16(948);
+emit_16(1012);
+emit_16(947);
+emit_16(1012);
+emit_16(948);
+emit_16(1013);
+emit_16(949);
+emit_16(1013);
+emit_16(948);
+emit_16(1013);
+emit_16(949);
+emit_16(1014);
+emit_16(950);
+emit_16(1014);
+emit_16(949);
+emit_16(1014);
+emit_16(950);
+emit_16(1015);
+emit_16(951);
+emit_16(1015);
+emit_16(950);
+emit_16(1015);
+emit_16(951);
+emit_16(1016);
+emit_16(952);
+emit_16(1016);
+emit_16(951);
+emit_16(1016);
+emit_16(952);
+emit_16(1017);
+emit_16(953);
+emit_16(1017);
+emit_16(952);
+emit_16(1017);
+emit_16(953);
+emit_16(1018);
+emit_16(954);
+emit_16(1018);
+emit_16(953);
+emit_16(1018);
+emit_16(954);
+emit_16(1019);
+emit_16(955);
+emit_16(1019);
+emit_16(954);
+emit_16(1019);
+emit_16(955);
+emit_16(1020);
+emit_16(956);
+emit_16(1020);
+emit_16(955);
+emit_16(1020);
+emit_16(956);
+emit_16(1021);
+emit_16(957);
+emit_16(1021);
+emit_16(956);
+emit_16(1021);
+emit_16(957);
+emit_16(1022);
+emit_16(958);
+emit_16(1022);
+emit_16(957);
+emit_16(1022);
+emit_16(958);
+emit_16(1023);
+emit_16(959);
+emit_16(1023);
+emit_16(958);
+emit_16(1024);
+emit_16(960);
+emit_16(1025);
+emit_16(961);
+emit_16(1025);
+emit_16(960);
+emit_16(1025);
+emit_16(961);
+emit_16(1026);
+emit_16(962);
+emit_16(1026);
+emit_16(961);
+emit_16(1026);
+emit_16(962);
+emit_16(1027);
+emit_16(963);
+emit_16(1027);
+emit_16(962);
+emit_16(1027);
+emit_16(963);
+emit_16(1028);
+emit_16(964);
+emit_16(1028);
+emit_16(963);
+emit_16(1028);
+emit_16(964);
+emit_16(1029);
+emit_16(965);
+emit_16(1029);
+emit_16(964);
+emit_16(1029);
+emit_16(965);
+emit_16(1030);
+emit_16(966);
+emit_16(1030);
+emit_16(965);
+emit_16(1030);
+emit_16(966);
+emit_16(1031);
+emit_16(967);
+emit_16(1031);
+emit_16(966);
+emit_16(1031);
+emit_16(967);
+emit_16(1032);
+emit_16(968);
+emit_16(1032);
+emit_16(967);
+emit_16(1032);
+emit_16(968);
+emit_16(1033);
+emit_16(969);
+emit_16(1033);
+emit_16(968);
+emit_16(1033);
+emit_16(969);
+emit_16(1034);
+emit_16(970);
+emit_16(1034);
+emit_16(969);
+emit_16(1034);
+emit_16(970);
+emit_16(1035);
+emit_16(971);
+emit_16(1035);
+emit_16(970);
+emit_16(1035);
+emit_16(971);
+emit_16(1036);
+emit_16(972);
+emit_16(1036);
+emit_16(971);
+emit_16(1036);
+emit_16(972);
+emit_16(1037);
+emit_16(973);
+emit_16(1037);
+emit_16(972);
+emit_16(1037);
+emit_16(973);
+emit_16(1038);
+emit_16(974);
+emit_16(1038);
+emit_16(973);
+emit_16(1038);
+emit_16(974);
+emit_16(1039);
+emit_16(975);
+emit_16(1039);
+emit_16(974);
+emit_16(1039);
+emit_16(975);
+emit_16(1040);
+emit_16(976);
+emit_16(1040);
+emit_16(975);
+emit_16(1040);
+emit_16(976);
+emit_16(1041);
+emit_16(977);
+emit_16(1041);
+emit_16(976);
+emit_16(1041);
+emit_16(977);
+emit_16(1042);
+emit_16(978);
+emit_16(1042);
+emit_16(977);
+emit_16(1042);
+emit_16(978);
+emit_16(1043);
+emit_16(979);
+emit_16(1043);
+emit_16(978);
+emit_16(1043);
+emit_16(979);
+emit_16(1044);
+emit_16(980);
+emit_16(1044);
+emit_16(979);
+emit_16(1044);
+emit_16(980);
+emit_16(1045);
+emit_16(981);
+emit_16(1045);
+emit_16(980);
+emit_16(1045);
+emit_16(981);
+emit_16(1046);
+emit_16(982);
+emit_16(1046);
+emit_16(981);
+emit_16(1046);
+emit_16(982);
+emit_16(1047);
+emit_16(983);
+emit_16(1047);
+emit_16(982);
+emit_16(1047);
+emit_16(983);
+emit_16(1048);
+emit_16(984);
+emit_16(1048);
+emit_16(983);
+emit_16(1048);
+emit_16(984);
+emit_16(1049);
+emit_16(985);
+emit_16(1049);
+emit_16(984);
+emit_16(1049);
+emit_16(985);
+emit_16(1050);
+emit_16(986);
+emit_16(1050);
+emit_16(985);
+emit_16(1050);
+emit_16(986);
+emit_16(1051);
+emit_16(987);
+emit_16(1051);
+emit_16(986);
+emit_16(1051);
+emit_16(987);
+emit_16(1052);
+emit_16(988);
+emit_16(1052);
+emit_16(987);
+emit_16(1052);
+emit_16(988);
+emit_16(1053);
+emit_16(989);
+emit_16(1053);
+emit_16(988);
+emit_16(1053);
+emit_16(989);
+emit_16(1054);
+emit_16(990);
+emit_16(1054);
+emit_16(989);
+emit_16(1054);
+emit_16(990);
+emit_16(1055);
+emit_16(991);
+emit_16(1055);
+emit_16(990);
+emit_16(1055);
+emit_16(991);
+emit_16(1056);
+emit_16(992);
+emit_16(1056);
+emit_16(991);
+emit_16(1056);
+emit_16(992);
+emit_16(1057);
+emit_16(993);
+emit_16(1057);
+emit_16(992);
+emit_16(1057);
+emit_16(993);
+emit_16(1058);
+emit_16(994);
+emit_16(1058);
+emit_16(993);
+emit_16(1058);
+emit_16(994);
+emit_16(1059);
+emit_16(995);
+emit_16(1059);
+emit_16(994);
+emit_16(1059);
+emit_16(995);
+emit_16(1060);
+emit_16(996);
+emit_16(1060);
+emit_16(995);
+emit_16(1060);
+emit_16(996);
+emit_16(1061);
+emit_16(997);
+emit_16(1061);
+emit_16(996);
+emit_16(1061);
+emit_16(997);
+emit_16(1062);
+emit_16(998);
+emit_16(1062);
+emit_16(997);
+emit_16(1062);
+emit_16(998);
+emit_16(1063);
+emit_16(999);
+emit_16(1063);
+emit_16(998);
+emit_16(1063);
+emit_16(999);
+emit_16(1064);
+emit_16(1000);
+emit_16(1064);
+emit_16(999);
+emit_16(1064);
+emit_16(1000);
+emit_16(1065);
+emit_16(1001);
+emit_16(1065);
+emit_16(1000);
+emit_16(1065);
+emit_16(1001);
+emit_16(1066);
+emit_16(1002);
+emit_16(1066);
+emit_16(1001);
+emit_16(1066);
+emit_16(1002);
+emit_16(1067);
+emit_16(1003);
+emit_16(1067);
+emit_16(1002);
+emit_16(1067);
+emit_16(1003);
+emit_16(1068);
+emit_16(1004);
+emit_16(1068);
+emit_16(1003);
+emit_16(1068);
+emit_16(1004);
+emit_16(1069);
+emit_16(1005);
+emit_16(1069);
+emit_16(1004);
+emit_16(1069);
+emit_16(1005);
+emit_16(1070);
+emit_16(1006);
+emit_16(1070);
+emit_16(1005);
+emit_16(1070);
+emit_16(1006);
+emit_16(1071);
+emit_16(1007);
+emit_16(1071);
+emit_16(1006);
+emit_16(1071);
+emit_16(1007);
+emit_16(1072);
+emit_16(1008);
+emit_16(1072);
+emit_16(1007);
+emit_16(1072);
+emit_16(1008);
+emit_16(1073);
+emit_16(1009);
+emit_16(1073);
+emit_16(1008);
+emit_16(1073);
+emit_16(1009);
+emit_16(1074);
+emit_16(1010);
+emit_16(1074);
+emit_16(1009);
+emit_16(1074);
+emit_16(1010);
+emit_16(1075);
+emit_16(1011);
+emit_16(1075);
+emit_16(1010);
+emit_16(1075);
+emit_16(1011);
+emit_16(1076);
+emit_16(1012);
+emit_16(1076);
+emit_16(1011);
+emit_16(1076);
+emit_16(1012);
+emit_16(1077);
+emit_16(1013);
+emit_16(1077);
+emit_16(1012);
+emit_16(1077);
+emit_16(1013);
+emit_16(1078);
+emit_16(1014);
+emit_16(1078);
+emit_16(1013);
+emit_16(1078);
+emit_16(1014);
+emit_16(1079);
+emit_16(1015);
+emit_16(1079);
+emit_16(1014);
+emit_16(1079);
+emit_16(1015);
+emit_16(1080);
+emit_16(1016);
+emit_16(1080);
+emit_16(1015);
+emit_16(1080);
+emit_16(1016);
+emit_16(1081);
+emit_16(1017);
+emit_16(1081);
+emit_16(1016);
+emit_16(1081);
+emit_16(1017);
+emit_16(1082);
+emit_16(1018);
+emit_16(1082);
+emit_16(1017);
+emit_16(1082);
+emit_16(1018);
+emit_16(1083);
+emit_16(1019);
+emit_16(1083);
+emit_16(1018);
+emit_16(1083);
+emit_16(1019);
+emit_16(1084);
+emit_16(1020);
+emit_16(1084);
+emit_16(1019);
+emit_16(1084);
+emit_16(1020);
+emit_16(1085);
+emit_16(1021);
+emit_16(1085);
+emit_16(1020);
+emit_16(1085);
+emit_16(1021);
+emit_16(1086);
+emit_16(1022);
+emit_16(1086);
+emit_16(1021);
+emit_16(1086);
+emit_16(1022);
+emit_16(1087);
+emit_16(1023);
+emit_16(1087);
+emit_16(1022);
+emit_16(1088);
+emit_16(1024);
+emit_16(1089);
+emit_16(1025);
+emit_16(1089);
+emit_16(1024);
+emit_16(1089);
+emit_16(1025);
+emit_16(1090);
+emit_16(1026);
+emit_16(1090);
+emit_16(1025);
+emit_16(1090);
+emit_16(1026);
+emit_16(1091);
+emit_16(1027);
+emit_16(1091);
+emit_16(1026);
+emit_16(1091);
+emit_16(1027);
+emit_16(1092);
+emit_16(1028);
+emit_16(1092);
+emit_16(1027);
+emit_16(1092);
+emit_16(1028);
+emit_16(1093);
+emit_16(1029);
+emit_16(1093);
+emit_16(1028);
+emit_16(1093);
+emit_16(1029);
+emit_16(1094);
+emit_16(1030);
+emit_16(1094);
+emit_16(1029);
+emit_16(1094);
+emit_16(1030);
+emit_16(1095);
+emit_16(1031);
+emit_16(1095);
+emit_16(1030);
+emit_16(1095);
+emit_16(1031);
+emit_16(1096);
+emit_16(1032);
+emit_16(1096);
+emit_16(1031);
+emit_16(1096);
+emit_16(1032);
+emit_16(1097);
+emit_16(1033);
+emit_16(1097);
+emit_16(1032);
+emit_16(1097);
+emit_16(1033);
+emit_16(1098);
+emit_16(1034);
+emit_16(1098);
+emit_16(1033);
+emit_16(1098);
+emit_16(1034);
+emit_16(1099);
+emit_16(1035);
+emit_16(1099);
+emit_16(1034);
+emit_16(1099);
+emit_16(1035);
+emit_16(1100);
+emit_16(1036);
+emit_16(1100);
+emit_16(1035);
+emit_16(1100);
+emit_16(1036);
+emit_16(1101);
+emit_16(1037);
+emit_16(1101);
+emit_16(1036);
+emit_16(1101);
+emit_16(1037);
+emit_16(1102);
+emit_16(1038);
+emit_16(1102);
+emit_16(1037);
+emit_16(1102);
+emit_16(1038);
+emit_16(1103);
+emit_16(1039);
+emit_16(1103);
+emit_16(1038);
+emit_16(1103);
+emit_16(1039);
+emit_16(1104);
+emit_16(1040);
+emit_16(1104);
+emit_16(1039);
+emit_16(1104);
+emit_16(1040);
+emit_16(1105);
+emit_16(1041);
+emit_16(1105);
+emit_16(1040);
+emit_16(1105);
+emit_16(1041);
+emit_16(1106);
+emit_16(1042);
+emit_16(1106);
+emit_16(1041);
+emit_16(1106);
+emit_16(1042);
+emit_16(1107);
+emit_16(1043);
+emit_16(1107);
+emit_16(1042);
+emit_16(1107);
+emit_16(1043);
+emit_16(1108);
+emit_16(1044);
+emit_16(1108);
+emit_16(1043);
+emit_16(1108);
+emit_16(1044);
+emit_16(1109);
+emit_16(1045);
+emit_16(1109);
+emit_16(1044);
+emit_16(1109);
+emit_16(1045);
+emit_16(1110);
+emit_16(1046);
+emit_16(1110);
+emit_16(1045);
+emit_16(1110);
+emit_16(1046);
+emit_16(1111);
+emit_16(1047);
+emit_16(1111);
+emit_16(1046);
+emit_16(1111);
+emit_16(1047);
+emit_16(1112);
+emit_16(1048);
+emit_16(1112);
+emit_16(1047);
+emit_16(1112);
+emit_16(1048);
+emit_16(1113);
+emit_16(1049);
+emit_16(1113);
+emit_16(1048);
+emit_16(1113);
+emit_16(1049);
+emit_16(1114);
+emit_16(1050);
+emit_16(1114);
+emit_16(1049);
+emit_16(1114);
+emit_16(1050);
+emit_16(1115);
+emit_16(1051);
+emit_16(1115);
+emit_16(1050);
+emit_16(1115);
+emit_16(1051);
+emit_16(1116);
+emit_16(1052);
+emit_16(1116);
+emit_16(1051);
+emit_16(1116);
+emit_16(1052);
+emit_16(1117);
+emit_16(1053);
+emit_16(1117);
+emit_16(1052);
+emit_16(1117);
+emit_16(1053);
+emit_16(1118);
+emit_16(1054);
+emit_16(1118);
+emit_16(1053);
+emit_16(1118);
+emit_16(1054);
+emit_16(1119);
+emit_16(1055);
+emit_16(1119);
+emit_16(1054);
+emit_16(1119);
+emit_16(1055);
+emit_16(1120);
+emit_16(1056);
+emit_16(1120);
+emit_16(1055);
+emit_16(1120);
+emit_16(1056);
+emit_16(1121);
+emit_16(1057);
+emit_16(1121);
+emit_16(1056);
+emit_16(1121);
+emit_16(1057);
+emit_16(1122);
+emit_16(1058);
+emit_16(1122);
+emit_16(1057);
+emit_16(1122);
+emit_16(1058);
+emit_16(1123);
+emit_16(1059);
+emit_16(1123);
+emit_16(1058);
+emit_16(1123);
+emit_16(1059);
+emit_16(1124);
+emit_16(1060);
+emit_16(1124);
+emit_16(1059);
+emit_16(1124);
+emit_16(1060);
+emit_16(1125);
+emit_16(1061);
+emit_16(1125);
+emit_16(1060);
+emit_16(1125);
+emit_16(1061);
+emit_16(1126);
+emit_16(1062);
+emit_16(1126);
+emit_16(1061);
+emit_16(1126);
+emit_16(1062);
+emit_16(1127);
+emit_16(1063);
+emit_16(1127);
+emit_16(1062);
+emit_16(1127);
+emit_16(1063);
+emit_16(1128);
+emit_16(1064);
+emit_16(1128);
+emit_16(1063);
+emit_16(1128);
+emit_16(1064);
+emit_16(1129);
+emit_16(1065);
+emit_16(1129);
+emit_16(1064);
+emit_16(1129);
+emit_16(1065);
+emit_16(1130);
+emit_16(1066);
+emit_16(1130);
+emit_16(1065);
+emit_16(1130);
+emit_16(1066);
+emit_16(1131);
+emit_16(1067);
+emit_16(1131);
+emit_16(1066);
+emit_16(1131);
+emit_16(1067);
+emit_16(1132);
+emit_16(1068);
+emit_16(1132);
+emit_16(1067);
+emit_16(1132);
+emit_16(1068);
+emit_16(1133);
+emit_16(1069);
+emit_16(1133);
+emit_16(1068);
+emit_16(1133);
+emit_16(1069);
+emit_16(1134);
+emit_16(1070);
+emit_16(1134);
+emit_16(1069);
+emit_16(1134);
+emit_16(1070);
+emit_16(1135);
+emit_16(1071);
+emit_16(1135);
+emit_16(1070);
+emit_16(1135);
+emit_16(1071);
+emit_16(1136);
+emit_16(1072);
+emit_16(1136);
+emit_16(1071);
+emit_16(1136);
+emit_16(1072);
+emit_16(1137);
+emit_16(1073);
+emit_16(1137);
+emit_16(1072);
+emit_16(1137);
+emit_16(1073);
+emit_16(1138);
+emit_16(1074);
+emit_16(1138);
+emit_16(1073);
+emit_16(1138);
+emit_16(1074);
+emit_16(1139);
+emit_16(1075);
+emit_16(1139);
+emit_16(1074);
+emit_16(1139);
+emit_16(1075);
+emit_16(1140);
+emit_16(1076);
+emit_16(1140);
+emit_16(1075);
+emit_16(1140);
+emit_16(1076);
+emit_16(1141);
+emit_16(1077);
+emit_16(1141);
+emit_16(1076);
+emit_16(1141);
+emit_16(1077);
+emit_16(1142);
+emit_16(1078);
+emit_16(1142);
+emit_16(1077);
+emit_16(1142);
+emit_16(1078);
+emit_16(1143);
+emit_16(1079);
+emit_16(1143);
+emit_16(1078);
+emit_16(1143);
+emit_16(1079);
+emit_16(1144);
+emit_16(1080);
+emit_16(1144);
+emit_16(1079);
+emit_16(1144);
+emit_16(1080);
+emit_16(1145);
+emit_16(1081);
+emit_16(1145);
+emit_16(1080);
+emit_16(1145);
+emit_16(1081);
+emit_16(1146);
+emit_16(1082);
+emit_16(1146);
+emit_16(1081);
+emit_16(1146);
+emit_16(1082);
+emit_16(1147);
+emit_16(1083);
+emit_16(1147);
+emit_16(1082);
+emit_16(1147);
+emit_16(1083);
+emit_16(1148);
+emit_16(1084);
+emit_16(1148);
+emit_16(1083);
+emit_16(1148);
+emit_16(1084);
+emit_16(1149);
+emit_16(1085);
+emit_16(1149);
+emit_16(1084);
+emit_16(1149);
+emit_16(1085);
+emit_16(1150);
+emit_16(1086);
+emit_16(1150);
+emit_16(1085);
+emit_16(1150);
+emit_16(1086);
+emit_16(1151);
+emit_16(1087);
+emit_16(1151);
+emit_16(1086);
+emit_16(1152);
+emit_16(1088);
+emit_16(1153);
+emit_16(1089);
+emit_16(1153);
+emit_16(1088);
+emit_16(1153);
+emit_16(1089);
+emit_16(1154);
+emit_16(1090);
+emit_16(1154);
+emit_16(1089);
+emit_16(1154);
+emit_16(1090);
+emit_16(1155);
+emit_16(1091);
+emit_16(1155);
+emit_16(1090);
+emit_16(1155);
+emit_16(1091);
+emit_16(1156);
+emit_16(1092);
+emit_16(1156);
+emit_16(1091);
+emit_16(1156);
+emit_16(1092);
+emit_16(1157);
+emit_16(1093);
+emit_16(1157);
+emit_16(1092);
+emit_16(1157);
+emit_16(1093);
+emit_16(1158);
+emit_16(1094);
+emit_16(1158);
+emit_16(1093);
+emit_16(1158);
+emit_16(1094);
+emit_16(1159);
+emit_16(1095);
+emit_16(1159);
+emit_16(1094);
+emit_16(1159);
+emit_16(1095);
+emit_16(1160);
+emit_16(1096);
+emit_16(1160);
+emit_16(1095);
+emit_16(1160);
+emit_16(1096);
+emit_16(1161);
+emit_16(1097);
+emit_16(1161);
+emit_16(1096);
+emit_16(1161);
+emit_16(1097);
+emit_16(1162);
+emit_16(1098);
+emit_16(1162);
+emit_16(1097);
+emit_16(1162);
+emit_16(1098);
+emit_16(1163);
+emit_16(1099);
+emit_16(1163);
+emit_16(1098);
+emit_16(1163);
+emit_16(1099);
+emit_16(1164);
+emit_16(1100);
+emit_16(1164);
+emit_16(1099);
+emit_16(1164);
+emit_16(1100);
+emit_16(1165);
+emit_16(1101);
+emit_16(1165);
+emit_16(1100);
+emit_16(1165);
+emit_16(1101);
+emit_16(1166);
+emit_16(1102);
+emit_16(1166);
+emit_16(1101);
+emit_16(1166);
+emit_16(1102);
+emit_16(1167);
+emit_16(1103);
+emit_16(1167);
+emit_16(1102);
+emit_16(1167);
+emit_16(1103);
+emit_16(1168);
+emit_16(1104);
+emit_16(1168);
+emit_16(1103);
+emit_16(1168);
+emit_16(1104);
+emit_16(1169);
+emit_16(1105);
+emit_16(1169);
+emit_16(1104);
+emit_16(1169);
+emit_16(1105);
+emit_16(1170);
+emit_16(1106);
+emit_16(1170);
+emit_16(1105);
+emit_16(1170);
+emit_16(1106);
+emit_16(1171);
+emit_16(1107);
+emit_16(1171);
+emit_16(1106);
+emit_16(1171);
+emit_16(1107);
+emit_16(1172);
+emit_16(1108);
+emit_16(1172);
+emit_16(1107);
+emit_16(1172);
+emit_16(1108);
+emit_16(1173);
+emit_16(1109);
+emit_16(1173);
+emit_16(1108);
+emit_16(1173);
+emit_16(1109);
+emit_16(1174);
+emit_16(1110);
+emit_16(1174);
+emit_16(1109);
+emit_16(1174);
+emit_16(1110);
+emit_16(1175);
+emit_16(1111);
+emit_16(1175);
+emit_16(1110);
+emit_16(1175);
+emit_16(1111);
+emit_16(1176);
+emit_16(1112);
+emit_16(1176);
+emit_16(1111);
+emit_16(1176);
+emit_16(1112);
+emit_16(1177);
+emit_16(1113);
+emit_16(1177);
+emit_16(1112);
+emit_16(1177);
+emit_16(1113);
+emit_16(1178);
+emit_16(1114);
+emit_16(1178);
+emit_16(1113);
+emit_16(1178);
+emit_16(1114);
+emit_16(1179);
+emit_16(1115);
+emit_16(1179);
+emit_16(1114);
+emit_16(1179);
+emit_16(1115);
+emit_16(1180);
+emit_16(1116);
+emit_16(1180);
+emit_16(1115);
+emit_16(1180);
+emit_16(1116);
+emit_16(1181);
+emit_16(1117);
+emit_16(1181);
+emit_16(1116);
+emit_16(1181);
+emit_16(1117);
+emit_16(1182);
+emit_16(1118);
+emit_16(1182);
+emit_16(1117);
+emit_16(1182);
+emit_16(1118);
+emit_16(1183);
+emit_16(1119);
+emit_16(1183);
+emit_16(1118);
+emit_16(1183);
+emit_16(1119);
+emit_16(1184);
+emit_16(1120);
+emit_16(1184);
+emit_16(1119);
+emit_16(1184);
+emit_16(1120);
+emit_16(1185);
+emit_16(1121);
+emit_16(1185);
+emit_16(1120);
+emit_16(1185);
+emit_16(1121);
+emit_16(1186);
+emit_16(1122);
+emit_16(1186);
+emit_16(1121);
+emit_16(1186);
+emit_16(1122);
+emit_16(1187);
+emit_16(1123);
+emit_16(1187);
+emit_16(1122);
+emit_16(1187);
+emit_16(1123);
+emit_16(1188);
+emit_16(1124);
+emit_16(1188);
+emit_16(1123);
+emit_16(1188);
+emit_16(1124);
+emit_16(1189);
+emit_16(1125);
+emit_16(1189);
+emit_16(1124);
+emit_16(1189);
+emit_16(1125);
+emit_16(1190);
+emit_16(1126);
+emit_16(1190);
+emit_16(1125);
+emit_16(1190);
+emit_16(1126);
+emit_16(1191);
+emit_16(1127);
+emit_16(1191);
+emit_16(1126);
+emit_16(1191);
+emit_16(1127);
+emit_16(1192);
+emit_16(1128);
+emit_16(1192);
+emit_16(1127);
+emit_16(1192);
+emit_16(1128);
+emit_16(1193);
+emit_16(1129);
+emit_16(1193);
+emit_16(1128);
+emit_16(1193);
+emit_16(1129);
+emit_16(1194);
+emit_16(1130);
+emit_16(1194);
+emit_16(1129);
+emit_16(1194);
+emit_16(1130);
+emit_16(1195);
+emit_16(1131);
+emit_16(1195);
+emit_16(1130);
+emit_16(1195);
+emit_16(1131);
+emit_16(1196);
+emit_16(1132);
+emit_16(1196);
+emit_16(1131);
+emit_16(1196);
+emit_16(1132);
+emit_16(1197);
+emit_16(1133);
+emit_16(1197);
+emit_16(1132);
+emit_16(1197);
+emit_16(1133);
+emit_16(1198);
+emit_16(1134);
+emit_16(1198);
+emit_16(1133);
+emit_16(1198);
+emit_16(1134);
+emit_16(1199);
+emit_16(1135);
+emit_16(1199);
+emit_16(1134);
+emit_16(1199);
+emit_16(1135);
+emit_16(1200);
+emit_16(1136);
+emit_16(1200);
+emit_16(1135);
+emit_16(1200);
+emit_16(1136);
+emit_16(1201);
+emit_16(1137);
+emit_16(1201);
+emit_16(1136);
+emit_16(1201);
+emit_16(1137);
+emit_16(1202);
+emit_16(1138);
+emit_16(1202);
+emit_16(1137);
+emit_16(1202);
+emit_16(1138);
+emit_16(1203);
+emit_16(1139);
+emit_16(1203);
+emit_16(1138);
+emit_16(1203);
+emit_16(1139);
+emit_16(1204);
+emit_16(1140);
+emit_16(1204);
+emit_16(1139);
+emit_16(1204);
+emit_16(1140);
+emit_16(1205);
+emit_16(1141);
+emit_16(1205);
+emit_16(1140);
+emit_16(1205);
+emit_16(1141);
+emit_16(1206);
+emit_16(1142);
+emit_16(1206);
+emit_16(1141);
+emit_16(1206);
+emit_16(1142);
+emit_16(1207);
+emit_16(1143);
+emit_16(1207);
+emit_16(1142);
+emit_16(1207);
+emit_16(1143);
+emit_16(1208);
+emit_16(1144);
+emit_16(1208);
+emit_16(1143);
+emit_16(1208);
+emit_16(1144);
+emit_16(1209);
+emit_16(1145);
+emit_16(1209);
+emit_16(1144);
+emit_16(1209);
+emit_16(1145);
+emit_16(1210);
+emit_16(1146);
+emit_16(1210);
+emit_16(1145);
+emit_16(1210);
+emit_16(1146);
+emit_16(1211);
+emit_16(1147);
+emit_16(1211);
+emit_16(1146);
+emit_16(1211);
+emit_16(1147);
+emit_16(1212);
+emit_16(1148);
+emit_16(1212);
+emit_16(1147);
+emit_16(1212);
+emit_16(1148);
+emit_16(1213);
+emit_16(1149);
+emit_16(1213);
+emit_16(1148);
+emit_16(1213);
+emit_16(1149);
+emit_16(1214);
+emit_16(1150);
+emit_16(1214);
+emit_16(1149);
+emit_16(1214);
+emit_16(1150);
+emit_16(1215);
+emit_16(1151);
+emit_16(1215);
+emit_16(1150);
+emit_16(1216);
+emit_16(1152);
+emit_16(1217);
+emit_16(1153);
+emit_16(1217);
+emit_16(1152);
+emit_16(1217);
+emit_16(1153);
+emit_16(1218);
+emit_16(1154);
+emit_16(1218);
+emit_16(1153);
+emit_16(1218);
+emit_16(1154);
+emit_16(1219);
+emit_16(1155);
+emit_16(1219);
+emit_16(1154);
+emit_16(1219);
+emit_16(1155);
+emit_16(1220);
+emit_16(1156);
+emit_16(1220);
+emit_16(1155);
+emit_16(1220);
+emit_16(1156);
+emit_16(1221);
+emit_16(1157);
+emit_16(1221);
+emit_16(1156);
+emit_16(1221);
+emit_16(1157);
+emit_16(1222);
+emit_16(1158);
+emit_16(1222);
+emit_16(1157);
+emit_16(1222);
+emit_16(1158);
+emit_16(1223);
+emit_16(1159);
+emit_16(1223);
+emit_16(1158);
+emit_16(1223);
+emit_16(1159);
+emit_16(1224);
+emit_16(1160);
+emit_16(1224);
+emit_16(1159);
+emit_16(1224);
+emit_16(1160);
+emit_16(1225);
+emit_16(1161);
+emit_16(1225);
+emit_16(1160);
+emit_16(1225);
+emit_16(1161);
+emit_16(1226);
+emit_16(1162);
+emit_16(1226);
+emit_16(1161);
+emit_16(1226);
+emit_16(1162);
+emit_16(1227);
+emit_16(1163);
+emit_16(1227);
+emit_16(1162);
+emit_16(1227);
+emit_16(1163);
+emit_16(1228);
+emit_16(1164);
+emit_16(1228);
+emit_16(1163);
+emit_16(1228);
+emit_16(1164);
+emit_16(1229);
+emit_16(1165);
+emit_16(1229);
+emit_16(1164);
+emit_16(1229);
+emit_16(1165);
+emit_16(1230);
+emit_16(1166);
+emit_16(1230);
+emit_16(1165);
+emit_16(1230);
+emit_16(1166);
+emit_16(1231);
+emit_16(1167);
+emit_16(1231);
+emit_16(1166);
+emit_16(1231);
+emit_16(1167);
+emit_16(1232);
+emit_16(1168);
+emit_16(1232);
+emit_16(1167);
+emit_16(1232);
+emit_16(1168);
+emit_16(1233);
+emit_16(1169);
+emit_16(1233);
+emit_16(1168);
+emit_16(1233);
+emit_16(1169);
+emit_16(1234);
+emit_16(1170);
+emit_16(1234);
+emit_16(1169);
+emit_16(1234);
+emit_16(1170);
+emit_16(1235);
+emit_16(1171);
+emit_16(1235);
+emit_16(1170);
+emit_16(1235);
+emit_16(1171);
+emit_16(1236);
+emit_16(1172);
+emit_16(1236);
+emit_16(1171);
+emit_16(1236);
+emit_16(1172);
+emit_16(1237);
+emit_16(1173);
+emit_16(1237);
+emit_16(1172);
+emit_16(1237);
+emit_16(1173);
+emit_16(1238);
+emit_16(1174);
+emit_16(1238);
+emit_16(1173);
+emit_16(1238);
+emit_16(1174);
+emit_16(1239);
+emit_16(1175);
+emit_16(1239);
+emit_16(1174);
+emit_16(1239);
+emit_16(1175);
+emit_16(1240);
+emit_16(1176);
+emit_16(1240);
+emit_16(1175);
+emit_16(1240);
+emit_16(1176);
+emit_16(1241);
+emit_16(1177);
+emit_16(1241);
+emit_16(1176);
+emit_16(1241);
+emit_16(1177);
+emit_16(1242);
+emit_16(1178);
+emit_16(1242);
+emit_16(1177);
+emit_16(1242);
+emit_16(1178);
+emit_16(1243);
+emit_16(1179);
+emit_16(1243);
+emit_16(1178);
+emit_16(1243);
+emit_16(1179);
+emit_16(1244);
+emit_16(1180);
+emit_16(1244);
+emit_16(1179);
+emit_16(1244);
+emit_16(1180);
+emit_16(1245);
+emit_16(1181);
+emit_16(1245);
+emit_16(1180);
+emit_16(1245);
+emit_16(1181);
+emit_16(1246);
+emit_16(1182);
+emit_16(1246);
+emit_16(1181);
+emit_16(1246);
+emit_16(1182);
+emit_16(1247);
+emit_16(1183);
+emit_16(1247);
+emit_16(1182);
+emit_16(1247);
+emit_16(1183);
+emit_16(1248);
+emit_16(1184);
+emit_16(1248);
+emit_16(1183);
+emit_16(1248);
+emit_16(1184);
+emit_16(1249);
+emit_16(1185);
+emit_16(1249);
+emit_16(1184);
+emit_16(1249);
+emit_16(1185);
+emit_16(1250);
+emit_16(1186);
+emit_16(1250);
+emit_16(1185);
+emit_16(1250);
+emit_16(1186);
+emit_16(1251);
+emit_16(1187);
+emit_16(1251);
+emit_16(1186);
+emit_16(1251);
+emit_16(1187);
+emit_16(1252);
+emit_16(1188);
+emit_16(1252);
+emit_16(1187);
+emit_16(1252);
+emit_16(1188);
+emit_16(1253);
+emit_16(1189);
+emit_16(1253);
+emit_16(1188);
+emit_16(1253);
+emit_16(1189);
+emit_16(1254);
+emit_16(1190);
+emit_16(1254);
+emit_16(1189);
+emit_16(1254);
+emit_16(1190);
+emit_16(1255);
+emit_16(1191);
+emit_16(1255);
+emit_16(1190);
+emit_16(1255);
+emit_16(1191);
+emit_16(1256);
+emit_16(1192);
+emit_16(1256);
+emit_16(1191);
+emit_16(1256);
+emit_16(1192);
+emit_16(1257);
+emit_16(1193);
+emit_16(1257);
+emit_16(1192);
+emit_16(1257);
+emit_16(1193);
+emit_16(1258);
+emit_16(1194);
+emit_16(1258);
+emit_16(1193);
+emit_16(1258);
+emit_16(1194);
+emit_16(1259);
+emit_16(1195);
+emit_16(1259);
+emit_16(1194);
+emit_16(1259);
+emit_16(1195);
+emit_16(1260);
+emit_16(1196);
+emit_16(1260);
+emit_16(1195);
+emit_16(1260);
+emit_16(1196);
+emit_16(1261);
+emit_16(1197);
+emit_16(1261);
+emit_16(1196);
+emit_16(1261);
+emit_16(1197);
+emit_16(1262);
+emit_16(1198);
+emit_16(1262);
+emit_16(1197);
+emit_16(1262);
+emit_16(1198);
+emit_16(1263);
+emit_16(1199);
+emit_16(1263);
+emit_16(1198);
+emit_16(1263);
+emit_16(1199);
+emit_16(1264);
+emit_16(1200);
+emit_16(1264);
+emit_16(1199);
+emit_16(1264);
+emit_16(1200);
+emit_16(1265);
+emit_16(1201);
+emit_16(1265);
+emit_16(1200);
+emit_16(1265);
+emit_16(1201);
+emit_16(1266);
+emit_16(1202);
+emit_16(1266);
+emit_16(1201);
+emit_16(1266);
+emit_16(1202);
+emit_16(1267);
+emit_16(1203);
+emit_16(1267);
+emit_16(1202);
+emit_16(1267);
+emit_16(1203);
+emit_16(1268);
+emit_16(1204);
+emit_16(1268);
+emit_16(1203);
+emit_16(1268);
+emit_16(1204);
+emit_16(1269);
+emit_16(1205);
+emit_16(1269);
+emit_16(1204);
+emit_16(1269);
+emit_16(1205);
+emit_16(1270);
+emit_16(1206);
+emit_16(1270);
+emit_16(1205);
+emit_16(1270);
+emit_16(1206);
+emit_16(1271);
+emit_16(1207);
+emit_16(1271);
+emit_16(1206);
+emit_16(1271);
+emit_16(1207);
+emit_16(1272);
+emit_16(1208);
+emit_16(1272);
+emit_16(1207);
+emit_16(1272);
+emit_16(1208);
+emit_16(1273);
+emit_16(1209);
+emit_16(1273);
+emit_16(1208);
+emit_16(1273);
+emit_16(1209);
+emit_16(1274);
+emit_16(1210);
+emit_16(1274);
+emit_16(1209);
+emit_16(1274);
+emit_16(1210);
+emit_16(1275);
+emit_16(1211);
+emit_16(1275);
+emit_16(1210);
+emit_16(1275);
+emit_16(1211);
+emit_16(1276);
+emit_16(1212);
+emit_16(1276);
+emit_16(1211);
+emit_16(1276);
+emit_16(1212);
+emit_16(1277);
+emit_16(1213);
+emit_16(1277);
+emit_16(1212);
+emit_16(1277);
+emit_16(1213);
+emit_16(1278);
+emit_16(1214);
+emit_16(1278);
+emit_16(1213);
+emit_16(1278);
+emit_16(1214);
+emit_16(1279);
+emit_16(1215);
+emit_16(1279);
+emit_16(1214);
+emit_16(1280);
+emit_16(1216);
+emit_16(1281);
+emit_16(1217);
+emit_16(1281);
+emit_16(1216);
+emit_16(1281);
+emit_16(1217);
+emit_16(1282);
+emit_16(1218);
+emit_16(1282);
+emit_16(1217);
+emit_16(1282);
+emit_16(1218);
+emit_16(1283);
+emit_16(1219);
+emit_16(1283);
+emit_16(1218);
+emit_16(1283);
+emit_16(1219);
+emit_16(1284);
+emit_16(1220);
+emit_16(1284);
+emit_16(1219);
+emit_16(1284);
+emit_16(1220);
+emit_16(1285);
+emit_16(1221);
+emit_16(1285);
+emit_16(1220);
+emit_16(1285);
+emit_16(1221);
+emit_16(1286);
+emit_16(1222);
+emit_16(1286);
+emit_16(1221);
+emit_16(1286);
+emit_16(1222);
+emit_16(1287);
+emit_16(1223);
+emit_16(1287);
+emit_16(1222);
+emit_16(1287);
+emit_16(1223);
+emit_16(1288);
+emit_16(1224);
+emit_16(1288);
+emit_16(1223);
+emit_16(1288);
+emit_16(1224);
+emit_16(1289);
+emit_16(1225);
+emit_16(1289);
+emit_16(1224);
+emit_16(1289);
+emit_16(1225);
+emit_16(1290);
+emit_16(1226);
+emit_16(1290);
+emit_16(1225);
+emit_16(1290);
+emit_16(1226);
+emit_16(1291);
+emit_16(1227);
+emit_16(1291);
+emit_16(1226);
+emit_16(1291);
+emit_16(1227);
+emit_16(1292);
+emit_16(1228);
+emit_16(1292);
+emit_16(1227);
+emit_16(1292);
+emit_16(1228);
+emit_16(1293);
+emit_16(1229);
+emit_16(1293);
+emit_16(1228);
+emit_16(1293);
+emit_16(1229);
+emit_16(1294);
+emit_16(1230);
+emit_16(1294);
+emit_16(1229);
+emit_16(1294);
+emit_16(1230);
+emit_16(1295);
+emit_16(1231);
+emit_16(1295);
+emit_16(1230);
+emit_16(1295);
+emit_16(1231);
+emit_16(1296);
+emit_16(1232);
+emit_16(1296);
+emit_16(1231);
+emit_16(1296);
+emit_16(1232);
+emit_16(1297);
+emit_16(1233);
+emit_16(1297);
+emit_16(1232);
+emit_16(1297);
+emit_16(1233);
+emit_16(1298);
+emit_16(1234);
+emit_16(1298);
+emit_16(1233);
+emit_16(1298);
+emit_16(1234);
+emit_16(1299);
+emit_16(1235);
+emit_16(1299);
+emit_16(1234);
+emit_16(1299);
+emit_16(1235);
+emit_16(1300);
+emit_16(1236);
+emit_16(1300);
+emit_16(1235);
+emit_16(1300);
+emit_16(1236);
+emit_16(1301);
+emit_16(1237);
+emit_16(1301);
+emit_16(1236);
+emit_16(1301);
+emit_16(1237);
+emit_16(1302);
+emit_16(1238);
+emit_16(1302);
+emit_16(1237);
+emit_16(1302);
+emit_16(1238);
+emit_16(1303);
+emit_16(1239);
+emit_16(1303);
+emit_16(1238);
+emit_16(1303);
+emit_16(1239);
+emit_16(1304);
+emit_16(1240);
+emit_16(1304);
+emit_16(1239);
+emit_16(1304);
+emit_16(1240);
+emit_16(1305);
+emit_16(1241);
+emit_16(1305);
+emit_16(1240);
+emit_16(1305);
+emit_16(1241);
+emit_16(1306);
+emit_16(1242);
+emit_16(1306);
+emit_16(1241);
+emit_16(1306);
+emit_16(1242);
+emit_16(1307);
+emit_16(1243);
+emit_16(1307);
+emit_16(1242);
+emit_16(1307);
+emit_16(1243);
+emit_16(1308);
+emit_16(1244);
+emit_16(1308);
+emit_16(1243);
+emit_16(1308);
+emit_16(1244);
+emit_16(1309);
+emit_16(1245);
+emit_16(1309);
+emit_16(1244);
+emit_16(1309);
+emit_16(1245);
+emit_16(1310);
+emit_16(1246);
+emit_16(1310);
+emit_16(1245);
+emit_16(1310);
+emit_16(1246);
+emit_16(1311);
+emit_16(1247);
+emit_16(1311);
+emit_16(1246);
+emit_16(1311);
+emit_16(1247);
+emit_16(1312);
+emit_16(1248);
+emit_16(1312);
+emit_16(1247);
+emit_16(1312);
+emit_16(1248);
+emit_16(1313);
+emit_16(1249);
+emit_16(1313);
+emit_16(1248);
+emit_16(1313);
+emit_16(1249);
+emit_16(1314);
+emit_16(1250);
+emit_16(1314);
+emit_16(1249);
+emit_16(1314);
+emit_16(1250);
+emit_16(1315);
+emit_16(1251);
+emit_16(1315);
+emit_16(1250);
+emit_16(1315);
+emit_16(1251);
+emit_16(1316);
+emit_16(1252);
+emit_16(1316);
+emit_16(1251);
+emit_16(1316);
+emit_16(1252);
+emit_16(1317);
+emit_16(1253);
+emit_16(1317);
+emit_16(1252);
+emit_16(1317);
+emit_16(1253);
+emit_16(1318);
+emit_16(1254);
+emit_16(1318);
+emit_16(1253);
+emit_16(1318);
+emit_16(1254);
+emit_16(1319);
+emit_16(1255);
+emit_16(1319);
+emit_16(1254);
+emit_16(1319);
+emit_16(1255);
+emit_16(1320);
+emit_16(1256);
+emit_16(1320);
+emit_16(1255);
+emit_16(1320);
+emit_16(1256);
+emit_16(1321);
+emit_16(1257);
+emit_16(1321);
+emit_16(1256);
+emit_16(1321);
+emit_16(1257);
+emit_16(1322);
+emit_16(1258);
+emit_16(1322);
+emit_16(1257);
+emit_16(1322);
+emit_16(1258);
+emit_16(1323);
+emit_16(1259);
+emit_16(1323);
+emit_16(1258);
+emit_16(1323);
+emit_16(1259);
+emit_16(1324);
+emit_16(1260);
+emit_16(1324);
+emit_16(1259);
+emit_16(1324);
+emit_16(1260);
+emit_16(1325);
+emit_16(1261);
+emit_16(1325);
+emit_16(1260);
+emit_16(1325);
+emit_16(1261);
+emit_16(1326);
+emit_16(1262);
+emit_16(1326);
+emit_16(1261);
+emit_16(1326);
+emit_16(1262);
+emit_16(1327);
+emit_16(1263);
+emit_16(1327);
+emit_16(1262);
+emit_16(1327);
+emit_16(1263);
+emit_16(1328);
+emit_16(1264);
+emit_16(1328);
+emit_16(1263);
+emit_16(1328);
+emit_16(1264);
+emit_16(1329);
+emit_16(1265);
+emit_16(1329);
+emit_16(1264);
+emit_16(1329);
+emit_16(1265);
+emit_16(1330);
+emit_16(1266);
+emit_16(1330);
+emit_16(1265);
+emit_16(1330);
+emit_16(1266);
+emit_16(1331);
+emit_16(1267);
+emit_16(1331);
+emit_16(1266);
+emit_16(1331);
+emit_16(1267);
+emit_16(1332);
+emit_16(1268);
+emit_16(1332);
+emit_16(1267);
+emit_16(1332);
+emit_16(1268);
+emit_16(1333);
+emit_16(1269);
+emit_16(1333);
+emit_16(1268);
+emit_16(1333);
+emit_16(1269);
+emit_16(1334);
+emit_16(1270);
+emit_16(1334);
+emit_16(1269);
+emit_16(1334);
+emit_16(1270);
+emit_16(1335);
+emit_16(1271);
+emit_16(1335);
+emit_16(1270);
+emit_16(1335);
+emit_16(1271);
+emit_16(1336);
+emit_16(1272);
+emit_16(1336);
+emit_16(1271);
+emit_16(1336);
+emit_16(1272);
+emit_16(1337);
+emit_16(1273);
+emit_16(1337);
+emit_16(1272);
+emit_16(1337);
+emit_16(1273);
+emit_16(1338);
+emit_16(1274);
+emit_16(1338);
+emit_16(1273);
+emit_16(1338);
+emit_16(1274);
+emit_16(1339);
+emit_16(1275);
+emit_16(1339);
+emit_16(1274);
+emit_16(1339);
+emit_16(1275);
+emit_16(1340);
+emit_16(1276);
+emit_16(1340);
+emit_16(1275);
+emit_16(1340);
+emit_16(1276);
+emit_16(1341);
+emit_16(1277);
+emit_16(1341);
+emit_16(1276);
+emit_16(1341);
+emit_16(1277);
+emit_16(1342);
+emit_16(1278);
+emit_16(1342);
+emit_16(1277);
+emit_16(1342);
+emit_16(1278);
+emit_16(1343);
+emit_16(1279);
+emit_16(1343);
+emit_16(1278);
+emit_16(1344);
+emit_16(1280);
+emit_16(1345);
+emit_16(1281);
+emit_16(1345);
+emit_16(1280);
+emit_16(1345);
+emit_16(1281);
+emit_16(1346);
+emit_16(1282);
+emit_16(1346);
+emit_16(1281);
+emit_16(1346);
+emit_16(1282);
+emit_16(1347);
+emit_16(1283);
+emit_16(1347);
+emit_16(1282);
+emit_16(1347);
+emit_16(1283);
+emit_16(1348);
+emit_16(1284);
+emit_16(1348);
+emit_16(1283);
+emit_16(1348);
+emit_16(1284);
+emit_16(1349);
+emit_16(1285);
+emit_16(1349);
+emit_16(1284);
+emit_16(1349);
+emit_16(1285);
+emit_16(1350);
+emit_16(1286);
+emit_16(1350);
+emit_16(1285);
+emit_16(1350);
+emit_16(1286);
+emit_16(1351);
+emit_16(1287);
+emit_16(1351);
+emit_16(1286);
+emit_16(1351);
+emit_16(1287);
+emit_16(1352);
+emit_16(1288);
+emit_16(1352);
+emit_16(1287);
+emit_16(1352);
+emit_16(1288);
+emit_16(1353);
+emit_16(1289);
+emit_16(1353);
+emit_16(1288);
+emit_16(1353);
+emit_16(1289);
+emit_16(1354);
+emit_16(1290);
+emit_16(1354);
+emit_16(1289);
+emit_16(1354);
+emit_16(1290);
+emit_16(1355);
+emit_16(1291);
+emit_16(1355);
+emit_16(1290);
+emit_16(1355);
+emit_16(1291);
+emit_16(1356);
+emit_16(1292);
+emit_16(1356);
+emit_16(1291);
+emit_16(1356);
+emit_16(1292);
+emit_16(1357);
+emit_16(1293);
+emit_16(1357);
+emit_16(1292);
+emit_16(1357);
+emit_16(1293);
+emit_16(1358);
+emit_16(1294);
+emit_16(1358);
+emit_16(1293);
+emit_16(1358);
+emit_16(1294);
+emit_16(1359);
+emit_16(1295);
+emit_16(1359);
+emit_16(1294);
+emit_16(1359);
+emit_16(1295);
+emit_16(1360);
+emit_16(1296);
+emit_16(1360);
+emit_16(1295);
+emit_16(1360);
+emit_16(1296);
+emit_16(1361);
+emit_16(1297);
+emit_16(1361);
+emit_16(1296);
+emit_16(1361);
+emit_16(1297);
+emit_16(1362);
+emit_16(1298);
+emit_16(1362);
+emit_16(1297);
+emit_16(1362);
+emit_16(1298);
+emit_16(1363);
+emit_16(1299);
+emit_16(1363);
+emit_16(1298);
+emit_16(1363);
+emit_16(1299);
+emit_16(1364);
+emit_16(1300);
+emit_16(1364);
+emit_16(1299);
+emit_16(1364);
+emit_16(1300);
+emit_16(1365);
+emit_16(1301);
+emit_16(1365);
+emit_16(1300);
+emit_16(1365);
+emit_16(1301);
+emit_16(1366);
+emit_16(1302);
+emit_16(1366);
+emit_16(1301);
+emit_16(1366);
+emit_16(1302);
+emit_16(1367);
+emit_16(1303);
+emit_16(1367);
+emit_16(1302);
+emit_16(1367);
+emit_16(1303);
+emit_16(1368);
+emit_16(1304);
+emit_16(1368);
+emit_16(1303);
+emit_16(1368);
+emit_16(1304);
+emit_16(1369);
+emit_16(1305);
+emit_16(1369);
+emit_16(1304);
+emit_16(1369);
+emit_16(1305);
+emit_16(1370);
+emit_16(1306);
+emit_16(1370);
+emit_16(1305);
+emit_16(1370);
+emit_16(1306);
+emit_16(1371);
+emit_16(1307);
+emit_16(1371);
+emit_16(1306);
+emit_16(1371);
+emit_16(1307);
+emit_16(1372);
+emit_16(1308);
+emit_16(1372);
+emit_16(1307);
+emit_16(1372);
+emit_16(1308);
+emit_16(1373);
+emit_16(1309);
+emit_16(1373);
+emit_16(1308);
+emit_16(1373);
+emit_16(1309);
+emit_16(1374);
+emit_16(1310);
+emit_16(1374);
+emit_16(1309);
+emit_16(1374);
+emit_16(1310);
+emit_16(1375);
+emit_16(1311);
+emit_16(1375);
+emit_16(1310);
+emit_16(1375);
+emit_16(1311);
+emit_16(1376);
+emit_16(1312);
+emit_16(1376);
+emit_16(1311);
+emit_16(1376);
+emit_16(1312);
+emit_16(1377);
+emit_16(1313);
+emit_16(1377);
+emit_16(1312);
+emit_16(1377);
+emit_16(1313);
+emit_16(1378);
+emit_16(1314);
+emit_16(1378);
+emit_16(1313);
+emit_16(1378);
+emit_16(1314);
+emit_16(1379);
+emit_16(1315);
+emit_16(1379);
+emit_16(1314);
+emit_16(1379);
+emit_16(1315);
+emit_16(1380);
+emit_16(1316);
+emit_16(1380);
+emit_16(1315);
+emit_16(1380);
+emit_16(1316);
+emit_16(1381);
+emit_16(1317);
+emit_16(1381);
+emit_16(1316);
+emit_16(1381);
+emit_16(1317);
+emit_16(1382);
+emit_16(1318);
+emit_16(1382);
+emit_16(1317);
+emit_16(1382);
+emit_16(1318);
+emit_16(1383);
+emit_16(1319);
+emit_16(1383);
+emit_16(1318);
+emit_16(1383);
+emit_16(1319);
+emit_16(1384);
+emit_16(1320);
+emit_16(1384);
+emit_16(1319);
+emit_16(1384);
+emit_16(1320);
+emit_16(1385);
+emit_16(1321);
+emit_16(1385);
+emit_16(1320);
+emit_16(1385);
+emit_16(1321);
+emit_16(1386);
+emit_16(1322);
+emit_16(1386);
+emit_16(1321);
+emit_16(1386);
+emit_16(1322);
+emit_16(1387);
+emit_16(1323);
+emit_16(1387);
+emit_16(1322);
+emit_16(1387);
+emit_16(1323);
+emit_16(1388);
+emit_16(1324);
+emit_16(1388);
+emit_16(1323);
+emit_16(1388);
+emit_16(1324);
+emit_16(1389);
+emit_16(1325);
+emit_16(1389);
+emit_16(1324);
+emit_16(1389);
+emit_16(1325);
+emit_16(1390);
+emit_16(1326);
+emit_16(1390);
+emit_16(1325);
+emit_16(1390);
+emit_16(1326);
+emit_16(1391);
+emit_16(1327);
+emit_16(1391);
+emit_16(1326);
+emit_16(1391);
+emit_16(1327);
+emit_16(1392);
+emit_16(1328);
+emit_16(1392);
+emit_16(1327);
+emit_16(1392);
+emit_16(1328);
+emit_16(1393);
+emit_16(1329);
+emit_16(1393);
+emit_16(1328);
+emit_16(1393);
+emit_16(1329);
+emit_16(1394);
+emit_16(1330);
+emit_16(1394);
+emit_16(1329);
+emit_16(1394);
+emit_16(1330);
+emit_16(1395);
+emit_16(1331);
+emit_16(1395);
+emit_16(1330);
+emit_16(1395);
+emit_16(1331);
+emit_16(1396);
+emit_16(1332);
+emit_16(1396);
+emit_16(1331);
+emit_16(1396);
+emit_16(1332);
+emit_16(1397);
+emit_16(1333);
+emit_16(1397);
+emit_16(1332);
+emit_16(1397);
+emit_16(1333);
+emit_16(1398);
+emit_16(1334);
+emit_16(1398);
+emit_16(1333);
+emit_16(1398);
+emit_16(1334);
+emit_16(1399);
+emit_16(1335);
+emit_16(1399);
+emit_16(1334);
+emit_16(1399);
+emit_16(1335);
+emit_16(1400);
+emit_16(1336);
+emit_16(1400);
+emit_16(1335);
+emit_16(1400);
+emit_16(1336);
+emit_16(1401);
+emit_16(1337);
+emit_16(1401);
+emit_16(1336);
+emit_16(1401);
+emit_16(1337);
+emit_16(1402);
+emit_16(1338);
+emit_16(1402);
+emit_16(1337);
+emit_16(1402);
+emit_16(1338);
+emit_16(1403);
+emit_16(1339);
+emit_16(1403);
+emit_16(1338);
+emit_16(1403);
+emit_16(1339);
+emit_16(1404);
+emit_16(1340);
+emit_16(1404);
+emit_16(1339);
+emit_16(1404);
+emit_16(1340);
+emit_16(1405);
+emit_16(1341);
+emit_16(1405);
+emit_16(1340);
+emit_16(1405);
+emit_16(1341);
+emit_16(1406);
+emit_16(1342);
+emit_16(1406);
+emit_16(1341);
+emit_16(1406);
+emit_16(1342);
+emit_16(1407);
+emit_16(1343);
+emit_16(1407);
+emit_16(1342);
+emit_16(1408);
+emit_16(1344);
+emit_16(1409);
+emit_16(1345);
+emit_16(1409);
+emit_16(1344);
+emit_16(1409);
+emit_16(1345);
+emit_16(1410);
+emit_16(1346);
+emit_16(1410);
+emit_16(1345);
+emit_16(1410);
+emit_16(1346);
+emit_16(1411);
+emit_16(1347);
+emit_16(1411);
+emit_16(1346);
+emit_16(1411);
+emit_16(1347);
+emit_16(1412);
+emit_16(1348);
+emit_16(1412);
+emit_16(1347);
+emit_16(1412);
+emit_16(1348);
+emit_16(1413);
+emit_16(1349);
+emit_16(1413);
+emit_16(1348);
+emit_16(1413);
+emit_16(1349);
+emit_16(1414);
+emit_16(1350);
+emit_16(1414);
+emit_16(1349);
+emit_16(1414);
+emit_16(1350);
+emit_16(1415);
+emit_16(1351);
+emit_16(1415);
+emit_16(1350);
+emit_16(1415);
+emit_16(1351);
+emit_16(1416);
+emit_16(1352);
+emit_16(1416);
+emit_16(1351);
+emit_16(1416);
+emit_16(1352);
+emit_16(1417);
+emit_16(1353);
+emit_16(1417);
+emit_16(1352);
+emit_16(1417);
+emit_16(1353);
+emit_16(1418);
+emit_16(1354);
+emit_16(1418);
+emit_16(1353);
+emit_16(1418);
+emit_16(1354);
+emit_16(1419);
+emit_16(1355);
+emit_16(1419);
+emit_16(1354);
+emit_16(1419);
+emit_16(1355);
+emit_16(1420);
+emit_16(1356);
+emit_16(1420);
+emit_16(1355);
+emit_16(1420);
+emit_16(1356);
+emit_16(1421);
+emit_16(1357);
+emit_16(1421);
+emit_16(1356);
+emit_16(1421);
+emit_16(1357);
+emit_16(1422);
+emit_16(1358);
+emit_16(1422);
+emit_16(1357);
+emit_16(1422);
+emit_16(1358);
+emit_16(1423);
+emit_16(1359);
+emit_16(1423);
+emit_16(1358);
+emit_16(1423);
+emit_16(1359);
+emit_16(1424);
+emit_16(1360);
+emit_16(1424);
+emit_16(1359);
+emit_16(1424);
+emit_16(1360);
+emit_16(1425);
+emit_16(1361);
+emit_16(1425);
+emit_16(1360);
+emit_16(1425);
+emit_16(1361);
+emit_16(1426);
+emit_16(1362);
+emit_16(1426);
+emit_16(1361);
+emit_16(1426);
+emit_16(1362);
+emit_16(1427);
+emit_16(1363);
+emit_16(1427);
+emit_16(1362);
+emit_16(1427);
+emit_16(1363);
+emit_16(1428);
+emit_16(1364);
+emit_16(1428);
+emit_16(1363);
+emit_16(1428);
+emit_16(1364);
+emit_16(1429);
+emit_16(1365);
+emit_16(1429);
+emit_16(1364);
+emit_16(1429);
+emit_16(1365);
+emit_16(1430);
+emit_16(1366);
+emit_16(1430);
+emit_16(1365);
+emit_16(1430);
+emit_16(1366);
+emit_16(1431);
+emit_16(1367);
+emit_16(1431);
+emit_16(1366);
+emit_16(1431);
+emit_16(1367);
+emit_16(1432);
+emit_16(1368);
+emit_16(1432);
+emit_16(1367);
+emit_16(1432);
+emit_16(1368);
+emit_16(1433);
+emit_16(1369);
+emit_16(1433);
+emit_16(1368);
+emit_16(1433);
+emit_16(1369);
+emit_16(1434);
+emit_16(1370);
+emit_16(1434);
+emit_16(1369);
+emit_16(1434);
+emit_16(1370);
+emit_16(1435);
+emit_16(1371);
+emit_16(1435);
+emit_16(1370);
+emit_16(1435);
+emit_16(1371);
+emit_16(1436);
+emit_16(1372);
+emit_16(1436);
+emit_16(1371);
+emit_16(1436);
+emit_16(1372);
+emit_16(1437);
+emit_16(1373);
+emit_16(1437);
+emit_16(1372);
+emit_16(1437);
+emit_16(1373);
+emit_16(1438);
+emit_16(1374);
+emit_16(1438);
+emit_16(1373);
+emit_16(1438);
+emit_16(1374);
+emit_16(1439);
+emit_16(1375);
+emit_16(1439);
+emit_16(1374);
+emit_16(1439);
+emit_16(1375);
+emit_16(1440);
+emit_16(1376);
+emit_16(1440);
+emit_16(1375);
+emit_16(1440);
+emit_16(1376);
+emit_16(1441);
+emit_16(1377);
+emit_16(1441);
+emit_16(1376);
+emit_16(1441);
+emit_16(1377);
+emit_16(1442);
+emit_16(1378);
+emit_16(1442);
+emit_16(1377);
+emit_16(1442);
+emit_16(1378);
+emit_16(1443);
+emit_16(1379);
+emit_16(1443);
+emit_16(1378);
+emit_16(1443);
+emit_16(1379);
+emit_16(1444);
+emit_16(1380);
+emit_16(1444);
+emit_16(1379);
+emit_16(1444);
+emit_16(1380);
+emit_16(1445);
+emit_16(1381);
+emit_16(1445);
+emit_16(1380);
+emit_16(1445);
+emit_16(1381);
+emit_16(1446);
+emit_16(1382);
+emit_16(1446);
+emit_16(1381);
+emit_16(1446);
+emit_16(1382);
+emit_16(1447);
+emit_16(1383);
+emit_16(1447);
+emit_16(1382);
+emit_16(1447);
+emit_16(1383);
+emit_16(1448);
+emit_16(1384);
+emit_16(1448);
+emit_16(1383);
+emit_16(1448);
+emit_16(1384);
+emit_16(1449);
+emit_16(1385);
+emit_16(1449);
+emit_16(1384);
+emit_16(1449);
+emit_16(1385);
+emit_16(1450);
+emit_16(1386);
+emit_16(1450);
+emit_16(1385);
+emit_16(1450);
+emit_16(1386);
+emit_16(1451);
+emit_16(1387);
+emit_16(1451);
+emit_16(1386);
+emit_16(1451);
+emit_16(1387);
+emit_16(1452);
+emit_16(1388);
+emit_16(1452);
+emit_16(1387);
+emit_16(1452);
+emit_16(1388);
+emit_16(1453);
+emit_16(1389);
+emit_16(1453);
+emit_16(1388);
+emit_16(1453);
+emit_16(1389);
+emit_16(1454);
+emit_16(1390);
+emit_16(1454);
+emit_16(1389);
+emit_16(1454);
+emit_16(1390);
+emit_16(1455);
+emit_16(1391);
+emit_16(1455);
+emit_16(1390);
+emit_16(1455);
+emit_16(1391);
+emit_16(1456);
+emit_16(1392);
+emit_16(1456);
+emit_16(1391);
+emit_16(1456);
+emit_16(1392);
+emit_16(1457);
+emit_16(1393);
+emit_16(1457);
+emit_16(1392);
+emit_16(1457);
+emit_16(1393);
+emit_16(1458);
+emit_16(1394);
+emit_16(1458);
+emit_16(1393);
+emit_16(1458);
+emit_16(1394);
+emit_16(1459);
+emit_16(1395);
+emit_16(1459);
+emit_16(1394);
+emit_16(1459);
+emit_16(1395);
+emit_16(1460);
+emit_16(1396);
+emit_16(1460);
+emit_16(1395);
+emit_16(1460);
+emit_16(1396);
+emit_16(1461);
+emit_16(1397);
+emit_16(1461);
+emit_16(1396);
+emit_16(1461);
+emit_16(1397);
+emit_16(1462);
+emit_16(1398);
+emit_16(1462);
+emit_16(1397);
+emit_16(1462);
+emit_16(1398);
+emit_16(1463);
+emit_16(1399);
+emit_16(1463);
+emit_16(1398);
+emit_16(1463);
+emit_16(1399);
+emit_16(1464);
+emit_16(1400);
+emit_16(1464);
+emit_16(1399);
+emit_16(1464);
+emit_16(1400);
+emit_16(1465);
+emit_16(1401);
+emit_16(1465);
+emit_16(1400);
+emit_16(1465);
+emit_16(1401);
+emit_16(1466);
+emit_16(1402);
+emit_16(1466);
+emit_16(1401);
+emit_16(1466);
+emit_16(1402);
+emit_16(1467);
+emit_16(1403);
+emit_16(1467);
+emit_16(1402);
+emit_16(1467);
+emit_16(1403);
+emit_16(1468);
+emit_16(1404);
+emit_16(1468);
+emit_16(1403);
+emit_16(1468);
+emit_16(1404);
+emit_16(1469);
+emit_16(1405);
+emit_16(1469);
+emit_16(1404);
+emit_16(1469);
+emit_16(1405);
+emit_16(1470);
+emit_16(1406);
+emit_16(1470);
+emit_16(1405);
+emit_16(1470);
+emit_16(1406);
+emit_16(1471);
+emit_16(1407);
+emit_16(1471);
+emit_16(1406);
+emit_16(1472);
+emit_16(1408);
+emit_16(1473);
+emit_16(1409);
+emit_16(1473);
+emit_16(1408);
+emit_16(1473);
+emit_16(1409);
+emit_16(1474);
+emit_16(1410);
+emit_16(1474);
+emit_16(1409);
+emit_16(1474);
+emit_16(1410);
+emit_16(1475);
+emit_16(1411);
+emit_16(1475);
+emit_16(1410);
+emit_16(1475);
+emit_16(1411);
+emit_16(1476);
+emit_16(1412);
+emit_16(1476);
+emit_16(1411);
+emit_16(1476);
+emit_16(1412);
+emit_16(1477);
+emit_16(1413);
+emit_16(1477);
+emit_16(1412);
+emit_16(1477);
+emit_16(1413);
+emit_16(1478);
+emit_16(1414);
+emit_16(1478);
+emit_16(1413);
+emit_16(1478);
+emit_16(1414);
+emit_16(1479);
+emit_16(1415);
+emit_16(1479);
+emit_16(1414);
+emit_16(1479);
+emit_16(1415);
+emit_16(1480);
+emit_16(1416);
+emit_16(1480);
+emit_16(1415);
+emit_16(1480);
+emit_16(1416);
+emit_16(1481);
+emit_16(1417);
+emit_16(1481);
+emit_16(1416);
+emit_16(1481);
+emit_16(1417);
+emit_16(1482);
+emit_16(1418);
+emit_16(1482);
+emit_16(1417);
+emit_16(1482);
+emit_16(1418);
+emit_16(1483);
+emit_16(1419);
+emit_16(1483);
+emit_16(1418);
+emit_16(1483);
+emit_16(1419);
+emit_16(1484);
+emit_16(1420);
+emit_16(1484);
+emit_16(1419);
+emit_16(1484);
+emit_16(1420);
+emit_16(1485);
+emit_16(1421);
+emit_16(1485);
+emit_16(1420);
+emit_16(1485);
+emit_16(1421);
+emit_16(1486);
+emit_16(1422);
+emit_16(1486);
+emit_16(1421);
+emit_16(1486);
+emit_16(1422);
+emit_16(1487);
+emit_16(1423);
+emit_16(1487);
+emit_16(1422);
+emit_16(1487);
+emit_16(1423);
+emit_16(1488);
+emit_16(1424);
+emit_16(1488);
+emit_16(1423);
+emit_16(1488);
+emit_16(1424);
+emit_16(1489);
+emit_16(1425);
+emit_16(1489);
+emit_16(1424);
+emit_16(1489);
+emit_16(1425);
+emit_16(1490);
+emit_16(1426);
+emit_16(1490);
+emit_16(1425);
+emit_16(1490);
+emit_16(1426);
+emit_16(1491);
+emit_16(1427);
+emit_16(1491);
+emit_16(1426);
+emit_16(1491);
+emit_16(1427);
+emit_16(1492);
+emit_16(1428);
+emit_16(1492);
+emit_16(1427);
+emit_16(1492);
+emit_16(1428);
+emit_16(1493);
+emit_16(1429);
+emit_16(1493);
+emit_16(1428);
+emit_16(1493);
+emit_16(1429);
+emit_16(1494);
+emit_16(1430);
+emit_16(1494);
+emit_16(1429);
+emit_16(1494);
+emit_16(1430);
+emit_16(1495);
+emit_16(1431);
+emit_16(1495);
+emit_16(1430);
+emit_16(1495);
+emit_16(1431);
+emit_16(1496);
+emit_16(1432);
+emit_16(1496);
+emit_16(1431);
+emit_16(1496);
+emit_16(1432);
+emit_16(1497);
+emit_16(1433);
+emit_16(1497);
+emit_16(1432);
+emit_16(1497);
+emit_16(1433);
+emit_16(1498);
+emit_16(1434);
+emit_16(1498);
+emit_16(1433);
+emit_16(1498);
+emit_16(1434);
+emit_16(1499);
+emit_16(1435);
+emit_16(1499);
+emit_16(1434);
+emit_16(1499);
+emit_16(1435);
+emit_16(1500);
+emit_16(1436);
+emit_16(1500);
+emit_16(1435);
+emit_16(1500);
+emit_16(1436);
+emit_16(1501);
+emit_16(1437);
+emit_16(1501);
+emit_16(1436);
+emit_16(1501);
+emit_16(1437);
+emit_16(1502);
+emit_16(1438);
+emit_16(1502);
+emit_16(1437);
+emit_16(1502);
+emit_16(1438);
+emit_16(1503);
+emit_16(1439);
+emit_16(1503);
+emit_16(1438);
+emit_16(1503);
+emit_16(1439);
+emit_16(1504);
+emit_16(1440);
+emit_16(1504);
+emit_16(1439);
+emit_16(1504);
+emit_16(1440);
+emit_16(1505);
+emit_16(1441);
+emit_16(1505);
+emit_16(1440);
+emit_16(1505);
+emit_16(1441);
+emit_16(1506);
+emit_16(1442);
+emit_16(1506);
+emit_16(1441);
+emit_16(1506);
+emit_16(1442);
+emit_16(1507);
+emit_16(1443);
+emit_16(1507);
+emit_16(1442);
+emit_16(1507);
+emit_16(1443);
+emit_16(1508);
+emit_16(1444);
+emit_16(1508);
+emit_16(1443);
+emit_16(1508);
+emit_16(1444);
+emit_16(1509);
+emit_16(1445);
+emit_16(1509);
+emit_16(1444);
+emit_16(1509);
+emit_16(1445);
+emit_16(1510);
+emit_16(1446);
+emit_16(1510);
+emit_16(1445);
+emit_16(1510);
+emit_16(1446);
+emit_16(1511);
+emit_16(1447);
+emit_16(1511);
+emit_16(1446);
+emit_16(1511);
+emit_16(1447);
+emit_16(1512);
+emit_16(1448);
+emit_16(1512);
+emit_16(1447);
+emit_16(1512);
+emit_16(1448);
+emit_16(1513);
+emit_16(1449);
+emit_16(1513);
+emit_16(1448);
+emit_16(1513);
+emit_16(1449);
+emit_16(1514);
+emit_16(1450);
+emit_16(1514);
+emit_16(1449);
+emit_16(1514);
+emit_16(1450);
+emit_16(1515);
+emit_16(1451);
+emit_16(1515);
+emit_16(1450);
+emit_16(1515);
+emit_16(1451);
+emit_16(1516);
+emit_16(1452);
+emit_16(1516);
+emit_16(1451);
+emit_16(1516);
+emit_16(1452);
+emit_16(1517);
+emit_16(1453);
+emit_16(1517);
+emit_16(1452);
+emit_16(1517);
+emit_16(1453);
+emit_16(1518);
+emit_16(1454);
+emit_16(1518);
+emit_16(1453);
+emit_16(1518);
+emit_16(1454);
+emit_16(1519);
+emit_16(1455);
+emit_16(1519);
+emit_16(1454);
+emit_16(1519);
+emit_16(1455);
+emit_16(1520);
+emit_16(1456);
+emit_16(1520);
+emit_16(1455);
+emit_16(1520);
+emit_16(1456);
+emit_16(1521);
+emit_16(1457);
+emit_16(1521);
+emit_16(1456);
+emit_16(1521);
+emit_16(1457);
+emit_16(1522);
+emit_16(1458);
+emit_16(1522);
+emit_16(1457);
+emit_16(1522);
+emit_16(1458);
+emit_16(1523);
+emit_16(1459);
+emit_16(1523);
+emit_16(1458);
+emit_16(1523);
+emit_16(1459);
+emit_16(1524);
+emit_16(1460);
+emit_16(1524);
+emit_16(1459);
+emit_16(1524);
+emit_16(1460);
+emit_16(1525);
+emit_16(1461);
+emit_16(1525);
+emit_16(1460);
+emit_16(1525);
+emit_16(1461);
+emit_16(1526);
+emit_16(1462);
+emit_16(1526);
+emit_16(1461);
+emit_16(1526);
+emit_16(1462);
+emit_16(1527);
+emit_16(1463);
+emit_16(1527);
+emit_16(1462);
+emit_16(1527);
+emit_16(1463);
+emit_16(1528);
+emit_16(1464);
+emit_16(1528);
+emit_16(1463);
+emit_16(1528);
+emit_16(1464);
+emit_16(1529);
+emit_16(1465);
+emit_16(1529);
+emit_16(1464);
+emit_16(1529);
+emit_16(1465);
+emit_16(1530);
+emit_16(1466);
+emit_16(1530);
+emit_16(1465);
+emit_16(1530);
+emit_16(1466);
+emit_16(1531);
+emit_16(1467);
+emit_16(1531);
+emit_16(1466);
+emit_16(1531);
+emit_16(1467);
+emit_16(1532);
+emit_16(1468);
+emit_16(1532);
+emit_16(1467);
+emit_16(1532);
+emit_16(1468);
+emit_16(1533);
+emit_16(1469);
+emit_16(1533);
+emit_16(1468);
+emit_16(1533);
+emit_16(1469);
+emit_16(1534);
+emit_16(1470);
+emit_16(1534);
+emit_16(1469);
+emit_16(1534);
+emit_16(1470);
+emit_16(1535);
+emit_16(1471);
+emit_16(1535);
+emit_16(1470);
+emit_16(1536);
+emit_16(1472);
+emit_16(1537);
+emit_16(1473);
+emit_16(1537);
+emit_16(1472);
+emit_16(1537);
+emit_16(1473);
+emit_16(1538);
+emit_16(1474);
+emit_16(1538);
+emit_16(1473);
+emit_16(1538);
+emit_16(1474);
+emit_16(1539);
+emit_16(1475);
+emit_16(1539);
+emit_16(1474);
+emit_16(1539);
+emit_16(1475);
+emit_16(1540);
+emit_16(1476);
+emit_16(1540);
+emit_16(1475);
+emit_16(1540);
+emit_16(1476);
+emit_16(1541);
+emit_16(1477);
+emit_16(1541);
+emit_16(1476);
+emit_16(1541);
+emit_16(1477);
+emit_16(1542);
+emit_16(1478);
+emit_16(1542);
+emit_16(1477);
+emit_16(1542);
+emit_16(1478);
+emit_16(1543);
+emit_16(1479);
+emit_16(1543);
+emit_16(1478);
+emit_16(1543);
+emit_16(1479);
+emit_16(1544);
+emit_16(1480);
+emit_16(1544);
+emit_16(1479);
+emit_16(1544);
+emit_16(1480);
+emit_16(1545);
+emit_16(1481);
+emit_16(1545);
+emit_16(1480);
+emit_16(1545);
+emit_16(1481);
+emit_16(1546);
+emit_16(1482);
+emit_16(1546);
+emit_16(1481);
+emit_16(1546);
+emit_16(1482);
+emit_16(1547);
+emit_16(1483);
+emit_16(1547);
+emit_16(1482);
+emit_16(1547);
+emit_16(1483);
+emit_16(1548);
+emit_16(1484);
+emit_16(1548);
+emit_16(1483);
+emit_16(1548);
+emit_16(1484);
+emit_16(1549);
+emit_16(1485);
+emit_16(1549);
+emit_16(1484);
+emit_16(1549);
+emit_16(1485);
+emit_16(1550);
+emit_16(1486);
+emit_16(1550);
+emit_16(1485);
+emit_16(1550);
+emit_16(1486);
+emit_16(1551);
+emit_16(1487);
+emit_16(1551);
+emit_16(1486);
+emit_16(1551);
+emit_16(1487);
+emit_16(1552);
+emit_16(1488);
+emit_16(1552);
+emit_16(1487);
+emit_16(1552);
+emit_16(1488);
+emit_16(1553);
+emit_16(1489);
+emit_16(1553);
+emit_16(1488);
+emit_16(1553);
+emit_16(1489);
+emit_16(1554);
+emit_16(1490);
+emit_16(1554);
+emit_16(1489);
+emit_16(1554);
+emit_16(1490);
+emit_16(1555);
+emit_16(1491);
+emit_16(1555);
+emit_16(1490);
+emit_16(1555);
+emit_16(1491);
+emit_16(1556);
+emit_16(1492);
+emit_16(1556);
+emit_16(1491);
+emit_16(1556);
+emit_16(1492);
+emit_16(1557);
+emit_16(1493);
+emit_16(1557);
+emit_16(1492);
+emit_16(1557);
+emit_16(1493);
+emit_16(1558);
+emit_16(1494);
+emit_16(1558);
+emit_16(1493);
+emit_16(1558);
+emit_16(1494);
+emit_16(1559);
+emit_16(1495);
+emit_16(1559);
+emit_16(1494);
+emit_16(1559);
+emit_16(1495);
+emit_16(1560);
+emit_16(1496);
+emit_16(1560);
+emit_16(1495);
+emit_16(1560);
+emit_16(1496);
+emit_16(1561);
+emit_16(1497);
+emit_16(1561);
+emit_16(1496);
+emit_16(1561);
+emit_16(1497);
+emit_16(1562);
+emit_16(1498);
+emit_16(1562);
+emit_16(1497);
+emit_16(1562);
+emit_16(1498);
+emit_16(1563);
+emit_16(1499);
+emit_16(1563);
+emit_16(1498);
+emit_16(1563);
+emit_16(1499);
+emit_16(1564);
+emit_16(1500);
+emit_16(1564);
+emit_16(1499);
+emit_16(1564);
+emit_16(1500);
+emit_16(1565);
+emit_16(1501);
+emit_16(1565);
+emit_16(1500);
+emit_16(1565);
+emit_16(1501);
+emit_16(1566);
+emit_16(1502);
+emit_16(1566);
+emit_16(1501);
+emit_16(1566);
+emit_16(1502);
+emit_16(1567);
+emit_16(1503);
+emit_16(1567);
+emit_16(1502);
+emit_16(1567);
+emit_16(1503);
+emit_16(1568);
+emit_16(1504);
+emit_16(1568);
+emit_16(1503);
+emit_16(1568);
+emit_16(1504);
+emit_16(1569);
+emit_16(1505);
+emit_16(1569);
+emit_16(1504);
+emit_16(1569);
+emit_16(1505);
+emit_16(1570);
+emit_16(1506);
+emit_16(1570);
+emit_16(1505);
+emit_16(1570);
+emit_16(1506);
+emit_16(1571);
+emit_16(1507);
+emit_16(1571);
+emit_16(1506);
+emit_16(1571);
+emit_16(1507);
+emit_16(1572);
+emit_16(1508);
+emit_16(1572);
+emit_16(1507);
+emit_16(1572);
+emit_16(1508);
+emit_16(1573);
+emit_16(1509);
+emit_16(1573);
+emit_16(1508);
+emit_16(1573);
+emit_16(1509);
+emit_16(1574);
+emit_16(1510);
+emit_16(1574);
+emit_16(1509);
+emit_16(1574);
+emit_16(1510);
+emit_16(1575);
+emit_16(1511);
+emit_16(1575);
+emit_16(1510);
+emit_16(1575);
+emit_16(1511);
+emit_16(1576);
+emit_16(1512);
+emit_16(1576);
+emit_16(1511);
+emit_16(1576);
+emit_16(1512);
+emit_16(1577);
+emit_16(1513);
+emit_16(1577);
+emit_16(1512);
+emit_16(1577);
+emit_16(1513);
+emit_16(1578);
+emit_16(1514);
+emit_16(1578);
+emit_16(1513);
+emit_16(1578);
+emit_16(1514);
+emit_16(1579);
+emit_16(1515);
+emit_16(1579);
+emit_16(1514);
+emit_16(1579);
+emit_16(1515);
+emit_16(1580);
+emit_16(1516);
+emit_16(1580);
+emit_16(1515);
+emit_16(1580);
+emit_16(1516);
+emit_16(1581);
+emit_16(1517);
+emit_16(1581);
+emit_16(1516);
+emit_16(1581);
+emit_16(1517);
+emit_16(1582);
+emit_16(1518);
+emit_16(1582);
+emit_16(1517);
+emit_16(1582);
+emit_16(1518);
+emit_16(1583);
+emit_16(1519);
+emit_16(1583);
+emit_16(1518);
+emit_16(1583);
+emit_16(1519);
+emit_16(1584);
+emit_16(1520);
+emit_16(1584);
+emit_16(1519);
+emit_16(1584);
+emit_16(1520);
+emit_16(1585);
+emit_16(1521);
+emit_16(1585);
+emit_16(1520);
+emit_16(1585);
+emit_16(1521);
+emit_16(1586);
+emit_16(1522);
+emit_16(1586);
+emit_16(1521);
+emit_16(1586);
+emit_16(1522);
+emit_16(1587);
+emit_16(1523);
+emit_16(1587);
+emit_16(1522);
+emit_16(1587);
+emit_16(1523);
+emit_16(1588);
+emit_16(1524);
+emit_16(1588);
+emit_16(1523);
+emit_16(1588);
+emit_16(1524);
+emit_16(1589);
+emit_16(1525);
+emit_16(1589);
+emit_16(1524);
+emit_16(1589);
+emit_16(1525);
+emit_16(1590);
+emit_16(1526);
+emit_16(1590);
+emit_16(1525);
+emit_16(1590);
+emit_16(1526);
+emit_16(1591);
+emit_16(1527);
+emit_16(1591);
+emit_16(1526);
+emit_16(1591);
+emit_16(1527);
+emit_16(1592);
+emit_16(1528);
+emit_16(1592);
+emit_16(1527);
+emit_16(1592);
+emit_16(1528);
+emit_16(1593);
+emit_16(1529);
+emit_16(1593);
+emit_16(1528);
+emit_16(1593);
+emit_16(1529);
+emit_16(1594);
+emit_16(1530);
+emit_16(1594);
+emit_16(1529);
+emit_16(1594);
+emit_16(1530);
+emit_16(1595);
+emit_16(1531);
+emit_16(1595);
+emit_16(1530);
+emit_16(1595);
+emit_16(1531);
+emit_16(1596);
+emit_16(1532);
+emit_16(1596);
+emit_16(1531);
+emit_16(1596);
+emit_16(1532);
+emit_16(1597);
+emit_16(1533);
+emit_16(1597);
+emit_16(1532);
+emit_16(1597);
+emit_16(1533);
+emit_16(1598);
+emit_16(1534);
+emit_16(1598);
+emit_16(1533);
+emit_16(1598);
+emit_16(1534);
+emit_16(1599);
+emit_16(1535);
+emit_16(1599);
+emit_16(1534);
+emit_16(1600);
+emit_16(1536);
+emit_16(1601);
+emit_16(1537);
+emit_16(1601);
+emit_16(1536);
+emit_16(1601);
+emit_16(1537);
+emit_16(1602);
+emit_16(1538);
+emit_16(1602);
+emit_16(1537);
+emit_16(1602);
+emit_16(1538);
+emit_16(1603);
+emit_16(1539);
+emit_16(1603);
+emit_16(1538);
+emit_16(1603);
+emit_16(1539);
+emit_16(1604);
+emit_16(1540);
+emit_16(1604);
+emit_16(1539);
+emit_16(1604);
+emit_16(1540);
+emit_16(1605);
+emit_16(1541);
+emit_16(1605);
+emit_16(1540);
+emit_16(1605);
+emit_16(1541);
+emit_16(1606);
+emit_16(1542);
+emit_16(1606);
+emit_16(1541);
+emit_16(1606);
+emit_16(1542);
+emit_16(1607);
+emit_16(1543);
+emit_16(1607);
+emit_16(1542);
+emit_16(1607);
+emit_16(1543);
+emit_16(1608);
+emit_16(1544);
+emit_16(1608);
+emit_16(1543);
+emit_16(1608);
+emit_16(1544);
+emit_16(1609);
+emit_16(1545);
+emit_16(1609);
+emit_16(1544);
+emit_16(1609);
+emit_16(1545);
+emit_16(1610);
+emit_16(1546);
+emit_16(1610);
+emit_16(1545);
+emit_16(1610);
+emit_16(1546);
+emit_16(1611);
+emit_16(1547);
+emit_16(1611);
+emit_16(1546);
+emit_16(1611);
+emit_16(1547);
+emit_16(1612);
+emit_16(1548);
+emit_16(1612);
+emit_16(1547);
+emit_16(1612);
+emit_16(1548);
+emit_16(1613);
+emit_16(1549);
+emit_16(1613);
+emit_16(1548);
+emit_16(1613);
+emit_16(1549);
+emit_16(1614);
+emit_16(1550);
+emit_16(1614);
+emit_16(1549);
+emit_16(1614);
+emit_16(1550);
+emit_16(1615);
+emit_16(1551);
+emit_16(1615);
+emit_16(1550);
+emit_16(1615);
+emit_16(1551);
+emit_16(1616);
+emit_16(1552);
+emit_16(1616);
+emit_16(1551);
+emit_16(1616);
+emit_16(1552);
+emit_16(1617);
+emit_16(1553);
+emit_16(1617);
+emit_16(1552);
+emit_16(1617);
+emit_16(1553);
+emit_16(1618);
+emit_16(1554);
+emit_16(1618);
+emit_16(1553);
+emit_16(1618);
+emit_16(1554);
+emit_16(1619);
+emit_16(1555);
+emit_16(1619);
+emit_16(1554);
+emit_16(1619);
+emit_16(1555);
+emit_16(1620);
+emit_16(1556);
+emit_16(1620);
+emit_16(1555);
+emit_16(1620);
+emit_16(1556);
+emit_16(1621);
+emit_16(1557);
+emit_16(1621);
+emit_16(1556);
+emit_16(1621);
+emit_16(1557);
+emit_16(1622);
+emit_16(1558);
+emit_16(1622);
+emit_16(1557);
+emit_16(1622);
+emit_16(1558);
+emit_16(1623);
+emit_16(1559);
+emit_16(1623);
+emit_16(1558);
+emit_16(1623);
+emit_16(1559);
+emit_16(1624);
+emit_16(1560);
+emit_16(1624);
+emit_16(1559);
+emit_16(1624);
+emit_16(1560);
+emit_16(1625);
+emit_16(1561);
+emit_16(1625);
+emit_16(1560);
+emit_16(1625);
+emit_16(1561);
+emit_16(1626);
+emit_16(1562);
+emit_16(1626);
+emit_16(1561);
+emit_16(1626);
+emit_16(1562);
+emit_16(1627);
+emit_16(1563);
+emit_16(1627);
+emit_16(1562);
+emit_16(1627);
+emit_16(1563);
+emit_16(1628);
+emit_16(1564);
+emit_16(1628);
+emit_16(1563);
+emit_16(1628);
+emit_16(1564);
+emit_16(1629);
+emit_16(1565);
+emit_16(1629);
+emit_16(1564);
+emit_16(1629);
+emit_16(1565);
+emit_16(1630);
+emit_16(1566);
+emit_16(1630);
+emit_16(1565);
+emit_16(1630);
+emit_16(1566);
+emit_16(1631);
+emit_16(1567);
+emit_16(1631);
+emit_16(1566);
+emit_16(1631);
+emit_16(1567);
+emit_16(1632);
+emit_16(1568);
+emit_16(1632);
+emit_16(1567);
+emit_16(1632);
+emit_16(1568);
+emit_16(1633);
+emit_16(1569);
+emit_16(1633);
+emit_16(1568);
+emit_16(1633);
+emit_16(1569);
+emit_16(1634);
+emit_16(1570);
+emit_16(1634);
+emit_16(1569);
+emit_16(1634);
+emit_16(1570);
+emit_16(1635);
+emit_16(1571);
+emit_16(1635);
+emit_16(1570);
+emit_16(1635);
+emit_16(1571);
+emit_16(1636);
+emit_16(1572);
+emit_16(1636);
+emit_16(1571);
+emit_16(1636);
+emit_16(1572);
+emit_16(1637);
+emit_16(1573);
+emit_16(1637);
+emit_16(1572);
+emit_16(1637);
+emit_16(1573);
+emit_16(1638);
+emit_16(1574);
+emit_16(1638);
+emit_16(1573);
+emit_16(1638);
+emit_16(1574);
+emit_16(1639);
+emit_16(1575);
+emit_16(1639);
+emit_16(1574);
+emit_16(1639);
+emit_16(1575);
+emit_16(1640);
+emit_16(1576);
+emit_16(1640);
+emit_16(1575);
+emit_16(1640);
+emit_16(1576);
+emit_16(1641);
+emit_16(1577);
+emit_16(1641);
+emit_16(1576);
+emit_16(1641);
+emit_16(1577);
+emit_16(1642);
+emit_16(1578);
+emit_16(1642);
+emit_16(1577);
+emit_16(1642);
+emit_16(1578);
+emit_16(1643);
+emit_16(1579);
+emit_16(1643);
+emit_16(1578);
+emit_16(1643);
+emit_16(1579);
+emit_16(1644);
+emit_16(1580);
+emit_16(1644);
+emit_16(1579);
+emit_16(1644);
+emit_16(1580);
+emit_16(1645);
+emit_16(1581);
+emit_16(1645);
+emit_16(1580);
+emit_16(1645);
+emit_16(1581);
+emit_16(1646);
+emit_16(1582);
+emit_16(1646);
+emit_16(1581);
+emit_16(1646);
+emit_16(1582);
+emit_16(1647);
+emit_16(1583);
+emit_16(1647);
+emit_16(1582);
+emit_16(1647);
+emit_16(1583);
+emit_16(1648);
+emit_16(1584);
+emit_16(1648);
+emit_16(1583);
+emit_16(1648);
+emit_16(1584);
+emit_16(1649);
+emit_16(1585);
+emit_16(1649);
+emit_16(1584);
+emit_16(1649);
+emit_16(1585);
+emit_16(1650);
+emit_16(1586);
+emit_16(1650);
+emit_16(1585);
+emit_16(1650);
+emit_16(1586);
+emit_16(1651);
+emit_16(1587);
+emit_16(1651);
+emit_16(1586);
+emit_16(1651);
+emit_16(1587);
+emit_16(1652);
+emit_16(1588);
+emit_16(1652);
+emit_16(1587);
+emit_16(1652);
+emit_16(1588);
+emit_16(1653);
+emit_16(1589);
+emit_16(1653);
+emit_16(1588);
+emit_16(1653);
+emit_16(1589);
+emit_16(1654);
+emit_16(1590);
+emit_16(1654);
+emit_16(1589);
+emit_16(1654);
+emit_16(1590);
+emit_16(1655);
+emit_16(1591);
+emit_16(1655);
+emit_16(1590);
+emit_16(1655);
+emit_16(1591);
+emit_16(1656);
+emit_16(1592);
+emit_16(1656);
+emit_16(1591);
+emit_16(1656);
+emit_16(1592);
+emit_16(1657);
+emit_16(1593);
+emit_16(1657);
+emit_16(1592);
+emit_16(1657);
+emit_16(1593);
+emit_16(1658);
+emit_16(1594);
+emit_16(1658);
+emit_16(1593);
+emit_16(1658);
+emit_16(1594);
+emit_16(1659);
+emit_16(1595);
+emit_16(1659);
+emit_16(1594);
+emit_16(1659);
+emit_16(1595);
+emit_16(1660);
+emit_16(1596);
+emit_16(1660);
+emit_16(1595);
+emit_16(1660);
+emit_16(1596);
+emit_16(1661);
+emit_16(1597);
+emit_16(1661);
+emit_16(1596);
+emit_16(1661);
+emit_16(1597);
+emit_16(1662);
+emit_16(1598);
+emit_16(1662);
+emit_16(1597);
+emit_16(1662);
+emit_16(1598);
+emit_16(1663);
+emit_16(1599);
+emit_16(1663);
+emit_16(1598);
+emit_16(1664);
+emit_16(1600);
+emit_16(1665);
+emit_16(1601);
+emit_16(1665);
+emit_16(1600);
+emit_16(1665);
+emit_16(1601);
+emit_16(1666);
+emit_16(1602);
+emit_16(1666);
+emit_16(1601);
+emit_16(1666);
+emit_16(1602);
+emit_16(1667);
+emit_16(1603);
+emit_16(1667);
+emit_16(1602);
+emit_16(1667);
+emit_16(1603);
+emit_16(1668);
+emit_16(1604);
+emit_16(1668);
+emit_16(1603);
+emit_16(1668);
+emit_16(1604);
+emit_16(1669);
+emit_16(1605);
+emit_16(1669);
+emit_16(1604);
+emit_16(1669);
+emit_16(1605);
+emit_16(1670);
+emit_16(1606);
+emit_16(1670);
+emit_16(1605);
+emit_16(1670);
+emit_16(1606);
+emit_16(1671);
+emit_16(1607);
+emit_16(1671);
+emit_16(1606);
+emit_16(1671);
+emit_16(1607);
+emit_16(1672);
+emit_16(1608);
+emit_16(1672);
+emit_16(1607);
+emit_16(1672);
+emit_16(1608);
+emit_16(1673);
+emit_16(1609);
+emit_16(1673);
+emit_16(1608);
+emit_16(1673);
+emit_16(1609);
+emit_16(1674);
+emit_16(1610);
+emit_16(1674);
+emit_16(1609);
+emit_16(1674);
+emit_16(1610);
+emit_16(1675);
+emit_16(1611);
+emit_16(1675);
+emit_16(1610);
+emit_16(1675);
+emit_16(1611);
+emit_16(1676);
+emit_16(1612);
+emit_16(1676);
+emit_16(1611);
+emit_16(1676);
+emit_16(1612);
+emit_16(1677);
+emit_16(1613);
+emit_16(1677);
+emit_16(1612);
+emit_16(1677);
+emit_16(1613);
+emit_16(1678);
+emit_16(1614);
+emit_16(1678);
+emit_16(1613);
+emit_16(1678);
+emit_16(1614);
+emit_16(1679);
+emit_16(1615);
+emit_16(1679);
+emit_16(1614);
+emit_16(1679);
+emit_16(1615);
+emit_16(1680);
+emit_16(1616);
+emit_16(1680);
+emit_16(1615);
+emit_16(1680);
+emit_16(1616);
+emit_16(1681);
+emit_16(1617);
+emit_16(1681);
+emit_16(1616);
+emit_16(1681);
+emit_16(1617);
+emit_16(1682);
+emit_16(1618);
+emit_16(1682);
+emit_16(1617);
+emit_16(1682);
+emit_16(1618);
+emit_16(1683);
+emit_16(1619);
+emit_16(1683);
+emit_16(1618);
+emit_16(1683);
+emit_16(1619);
+emit_16(1684);
+emit_16(1620);
+emit_16(1684);
+emit_16(1619);
+emit_16(1684);
+emit_16(1620);
+emit_16(1685);
+emit_16(1621);
+emit_16(1685);
+emit_16(1620);
+emit_16(1685);
+emit_16(1621);
+emit_16(1686);
+emit_16(1622);
+emit_16(1686);
+emit_16(1621);
+emit_16(1686);
+emit_16(1622);
+emit_16(1687);
+emit_16(1623);
+emit_16(1687);
+emit_16(1622);
+emit_16(1687);
+emit_16(1623);
+emit_16(1688);
+emit_16(1624);
+emit_16(1688);
+emit_16(1623);
+emit_16(1688);
+emit_16(1624);
+emit_16(1689);
+emit_16(1625);
+emit_16(1689);
+emit_16(1624);
+emit_16(1689);
+emit_16(1625);
+emit_16(1690);
+emit_16(1626);
+emit_16(1690);
+emit_16(1625);
+emit_16(1690);
+emit_16(1626);
+emit_16(1691);
+emit_16(1627);
+emit_16(1691);
+emit_16(1626);
+emit_16(1691);
+emit_16(1627);
+emit_16(1692);
+emit_16(1628);
+emit_16(1692);
+emit_16(1627);
+emit_16(1692);
+emit_16(1628);
+emit_16(1693);
+emit_16(1629);
+emit_16(1693);
+emit_16(1628);
+emit_16(1693);
+emit_16(1629);
+emit_16(1694);
+emit_16(1630);
+emit_16(1694);
+emit_16(1629);
+emit_16(1694);
+emit_16(1630);
+emit_16(1695);
+emit_16(1631);
+emit_16(1695);
+emit_16(1630);
+emit_16(1695);
+emit_16(1631);
+emit_16(1696);
+emit_16(1632);
+emit_16(1696);
+emit_16(1631);
+emit_16(1696);
+emit_16(1632);
+emit_16(1697);
+emit_16(1633);
+emit_16(1697);
+emit_16(1632);
+emit_16(1697);
+emit_16(1633);
+emit_16(1698);
+emit_16(1634);
+emit_16(1698);
+emit_16(1633);
+emit_16(1698);
+emit_16(1634);
+emit_16(1699);
+emit_16(1635);
+emit_16(1699);
+emit_16(1634);
+emit_16(1699);
+emit_16(1635);
+emit_16(1700);
+emit_16(1636);
+emit_16(1700);
+emit_16(1635);
+emit_16(1700);
+emit_16(1636);
+emit_16(1701);
+emit_16(1637);
+emit_16(1701);
+emit_16(1636);
+emit_16(1701);
+emit_16(1637);
+emit_16(1702);
+emit_16(1638);
+emit_16(1702);
+emit_16(1637);
+emit_16(1702);
+emit_16(1638);
+emit_16(1703);
+emit_16(1639);
+emit_16(1703);
+emit_16(1638);
+emit_16(1703);
+emit_16(1639);
+emit_16(1704);
+emit_16(1640);
+emit_16(1704);
+emit_16(1639);
+emit_16(1704);
+emit_16(1640);
+emit_16(1705);
+emit_16(1641);
+emit_16(1705);
+emit_16(1640);
+emit_16(1705);
+emit_16(1641);
+emit_16(1706);
+emit_16(1642);
+emit_16(1706);
+emit_16(1641);
+emit_16(1706);
+emit_16(1642);
+emit_16(1707);
+emit_16(1643);
+emit_16(1707);
+emit_16(1642);
+emit_16(1707);
+emit_16(1643);
+emit_16(1708);
+emit_16(1644);
+emit_16(1708);
+emit_16(1643);
+emit_16(1708);
+emit_16(1644);
+emit_16(1709);
+emit_16(1645);
+emit_16(1709);
+emit_16(1644);
+emit_16(1709);
+emit_16(1645);
+emit_16(1710);
+emit_16(1646);
+emit_16(1710);
+emit_16(1645);
+emit_16(1710);
+emit_16(1646);
+emit_16(1711);
+emit_16(1647);
+emit_16(1711);
+emit_16(1646);
+emit_16(1711);
+emit_16(1647);
+emit_16(1712);
+emit_16(1648);
+emit_16(1712);
+emit_16(1647);
+emit_16(1712);
+emit_16(1648);
+emit_16(1713);
+emit_16(1649);
+emit_16(1713);
+emit_16(1648);
+emit_16(1713);
+emit_16(1649);
+emit_16(1714);
+emit_16(1650);
+emit_16(1714);
+emit_16(1649);
+emit_16(1714);
+emit_16(1650);
+emit_16(1715);
+emit_16(1651);
+emit_16(1715);
+emit_16(1650);
+emit_16(1715);
+emit_16(1651);
+emit_16(1716);
+emit_16(1652);
+emit_16(1716);
+emit_16(1651);
+emit_16(1716);
+emit_16(1652);
+emit_16(1717);
+emit_16(1653);
+emit_16(1717);
+emit_16(1652);
+emit_16(1717);
+emit_16(1653);
+emit_16(1718);
+emit_16(1654);
+emit_16(1718);
+emit_16(1653);
+emit_16(1718);
+emit_16(1654);
+emit_16(1719);
+emit_16(1655);
+emit_16(1719);
+emit_16(1654);
+emit_16(1719);
+emit_16(1655);
+emit_16(1720);
+emit_16(1656);
+emit_16(1720);
+emit_16(1655);
+emit_16(1720);
+emit_16(1656);
+emit_16(1721);
+emit_16(1657);
+emit_16(1721);
+emit_16(1656);
+emit_16(1721);
+emit_16(1657);
+emit_16(1722);
+emit_16(1658);
+emit_16(1722);
+emit_16(1657);
+emit_16(1722);
+emit_16(1658);
+emit_16(1723);
+emit_16(1659);
+emit_16(1723);
+emit_16(1658);
+emit_16(1723);
+emit_16(1659);
+emit_16(1724);
+emit_16(1660);
+emit_16(1724);
+emit_16(1659);
+emit_16(1724);
+emit_16(1660);
+emit_16(1725);
+emit_16(1661);
+emit_16(1725);
+emit_16(1660);
+emit_16(1725);
+emit_16(1661);
+emit_16(1726);
+emit_16(1662);
+emit_16(1726);
+emit_16(1661);
+emit_16(1726);
+emit_16(1662);
+emit_16(1727);
+emit_16(1663);
+emit_16(1727);
+emit_16(1662);
+emit_16(1728);
+emit_16(1664);
+emit_16(1729);
+emit_16(1665);
+emit_16(1729);
+emit_16(1664);
+emit_16(1729);
+emit_16(1665);
+emit_16(1730);
+emit_16(1666);
+emit_16(1730);
+emit_16(1665);
+emit_16(1730);
+emit_16(1666);
+emit_16(1731);
+emit_16(1667);
+emit_16(1731);
+emit_16(1666);
+emit_16(1731);
+emit_16(1667);
+emit_16(1732);
+emit_16(1668);
+emit_16(1732);
+emit_16(1667);
+emit_16(1732);
+emit_16(1668);
+emit_16(1733);
+emit_16(1669);
+emit_16(1733);
+emit_16(1668);
+emit_16(1733);
+emit_16(1669);
+emit_16(1734);
+emit_16(1670);
+emit_16(1734);
+emit_16(1669);
+emit_16(1734);
+emit_16(1670);
+emit_16(1735);
+emit_16(1671);
+emit_16(1735);
+emit_16(1670);
+emit_16(1735);
+emit_16(1671);
+emit_16(1736);
+emit_16(1672);
+emit_16(1736);
+emit_16(1671);
+emit_16(1736);
+emit_16(1672);
+emit_16(1737);
+emit_16(1673);
+emit_16(1737);
+emit_16(1672);
+emit_16(1737);
+emit_16(1673);
+emit_16(1738);
+emit_16(1674);
+emit_16(1738);
+emit_16(1673);
+emit_16(1738);
+emit_16(1674);
+emit_16(1739);
+emit_16(1675);
+emit_16(1739);
+emit_16(1674);
+emit_16(1739);
+emit_16(1675);
+emit_16(1740);
+emit_16(1676);
+emit_16(1740);
+emit_16(1675);
+emit_16(1740);
+emit_16(1676);
+emit_16(1741);
+emit_16(1677);
+emit_16(1741);
+emit_16(1676);
+emit_16(1741);
+emit_16(1677);
+emit_16(1742);
+emit_16(1678);
+emit_16(1742);
+emit_16(1677);
+emit_16(1742);
+emit_16(1678);
+emit_16(1743);
+emit_16(1679);
+emit_16(1743);
+emit_16(1678);
+emit_16(1743);
+emit_16(1679);
+emit_16(1744);
+emit_16(1680);
+emit_16(1744);
+emit_16(1679);
+emit_16(1744);
+emit_16(1680);
+emit_16(1745);
+emit_16(1681);
+emit_16(1745);
+emit_16(1680);
+emit_16(1745);
+emit_16(1681);
+emit_16(1746);
+emit_16(1682);
+emit_16(1746);
+emit_16(1681);
+emit_16(1746);
+emit_16(1682);
+emit_16(1747);
+emit_16(1683);
+emit_16(1747);
+emit_16(1682);
+emit_16(1747);
+emit_16(1683);
+emit_16(1748);
+emit_16(1684);
+emit_16(1748);
+emit_16(1683);
+emit_16(1748);
+emit_16(1684);
+emit_16(1749);
+emit_16(1685);
+emit_16(1749);
+emit_16(1684);
+emit_16(1749);
+emit_16(1685);
+emit_16(1750);
+emit_16(1686);
+emit_16(1750);
+emit_16(1685);
+emit_16(1750);
+emit_16(1686);
+emit_16(1751);
+emit_16(1687);
+emit_16(1751);
+emit_16(1686);
+emit_16(1751);
+emit_16(1687);
+emit_16(1752);
+emit_16(1688);
+emit_16(1752);
+emit_16(1687);
+emit_16(1752);
+emit_16(1688);
+emit_16(1753);
+emit_16(1689);
+emit_16(1753);
+emit_16(1688);
+emit_16(1753);
+emit_16(1689);
+emit_16(1754);
+emit_16(1690);
+emit_16(1754);
+emit_16(1689);
+emit_16(1754);
+emit_16(1690);
+emit_16(1755);
+emit_16(1691);
+emit_16(1755);
+emit_16(1690);
+emit_16(1755);
+emit_16(1691);
+emit_16(1756);
+emit_16(1692);
+emit_16(1756);
+emit_16(1691);
+emit_16(1756);
+emit_16(1692);
+emit_16(1757);
+emit_16(1693);
+emit_16(1757);
+emit_16(1692);
+emit_16(1757);
+emit_16(1693);
+emit_16(1758);
+emit_16(1694);
+emit_16(1758);
+emit_16(1693);
+emit_16(1758);
+emit_16(1694);
+emit_16(1759);
+emit_16(1695);
+emit_16(1759);
+emit_16(1694);
+emit_16(1759);
+emit_16(1695);
+emit_16(1760);
+emit_16(1696);
+emit_16(1760);
+emit_16(1695);
+emit_16(1760);
+emit_16(1696);
+emit_16(1761);
+emit_16(1697);
+emit_16(1761);
+emit_16(1696);
+emit_16(1761);
+emit_16(1697);
+emit_16(1762);
+emit_16(1698);
+emit_16(1762);
+emit_16(1697);
+emit_16(1762);
+emit_16(1698);
+emit_16(1763);
+emit_16(1699);
+emit_16(1763);
+emit_16(1698);
+emit_16(1763);
+emit_16(1699);
+emit_16(1764);
+emit_16(1700);
+emit_16(1764);
+emit_16(1699);
+emit_16(1764);
+emit_16(1700);
+emit_16(1765);
+emit_16(1701);
+emit_16(1765);
+emit_16(1700);
+emit_16(1765);
+emit_16(1701);
+emit_16(1766);
+emit_16(1702);
+emit_16(1766);
+emit_16(1701);
+emit_16(1766);
+emit_16(1702);
+emit_16(1767);
+emit_16(1703);
+emit_16(1767);
+emit_16(1702);
+emit_16(1767);
+emit_16(1703);
+emit_16(1768);
+emit_16(1704);
+emit_16(1768);
+emit_16(1703);
+emit_16(1768);
+emit_16(1704);
+emit_16(1769);
+emit_16(1705);
+emit_16(1769);
+emit_16(1704);
+emit_16(1769);
+emit_16(1705);
+emit_16(1770);
+emit_16(1706);
+emit_16(1770);
+emit_16(1705);
+emit_16(1770);
+emit_16(1706);
+emit_16(1771);
+emit_16(1707);
+emit_16(1771);
+emit_16(1706);
+emit_16(1771);
+emit_16(1707);
+emit_16(1772);
+emit_16(1708);
+emit_16(1772);
+emit_16(1707);
+emit_16(1772);
+emit_16(1708);
+emit_16(1773);
+emit_16(1709);
+emit_16(1773);
+emit_16(1708);
+emit_16(1773);
+emit_16(1709);
+emit_16(1774);
+emit_16(1710);
+emit_16(1774);
+emit_16(1709);
+emit_16(1774);
+emit_16(1710);
+emit_16(1775);
+emit_16(1711);
+emit_16(1775);
+emit_16(1710);
+emit_16(1775);
+emit_16(1711);
+emit_16(1776);
+emit_16(1712);
+emit_16(1776);
+emit_16(1711);
+emit_16(1776);
+emit_16(1712);
+emit_16(1777);
+emit_16(1713);
+emit_16(1777);
+emit_16(1712);
+emit_16(1777);
+emit_16(1713);
+emit_16(1778);
+emit_16(1714);
+emit_16(1778);
+emit_16(1713);
+emit_16(1778);
+emit_16(1714);
+emit_16(1779);
+emit_16(1715);
+emit_16(1779);
+emit_16(1714);
+emit_16(1779);
+emit_16(1715);
+emit_16(1780);
+emit_16(1716);
+emit_16(1780);
+emit_16(1715);
+emit_16(1780);
+emit_16(1716);
+emit_16(1781);
+emit_16(1717);
+emit_16(1781);
+emit_16(1716);
+emit_16(1781);
+emit_16(1717);
+emit_16(1782);
+emit_16(1718);
+emit_16(1782);
+emit_16(1717);
+emit_16(1782);
+emit_16(1718);
+emit_16(1783);
+emit_16(1719);
+emit_16(1783);
+emit_16(1718);
+emit_16(1783);
+emit_16(1719);
+emit_16(1784);
+emit_16(1720);
+emit_16(1784);
+emit_16(1719);
+emit_16(1784);
+emit_16(1720);
+emit_16(1785);
+emit_16(1721);
+emit_16(1785);
+emit_16(1720);
+emit_16(1785);
+emit_16(1721);
+emit_16(1786);
+emit_16(1722);
+emit_16(1786);
+emit_16(1721);
+emit_16(1786);
+emit_16(1722);
+emit_16(1787);
+emit_16(1723);
+emit_16(1787);
+emit_16(1722);
+emit_16(1787);
+emit_16(1723);
+emit_16(1788);
+emit_16(1724);
+emit_16(1788);
+emit_16(1723);
+emit_16(1788);
+emit_16(1724);
+emit_16(1789);
+emit_16(1725);
+emit_16(1789);
+emit_16(1724);
+emit_16(1789);
+emit_16(1725);
+emit_16(1790);
+emit_16(1726);
+emit_16(1790);
+emit_16(1725);
+emit_16(1790);
+emit_16(1726);
+emit_16(1791);
+emit_16(1727);
+emit_16(1791);
+emit_16(1726);
+emit_16(1792);
+emit_16(1728);
+emit_16(1793);
+emit_16(1729);
+emit_16(1793);
+emit_16(1728);
+emit_16(1793);
+emit_16(1729);
+emit_16(1794);
+emit_16(1730);
+emit_16(1794);
+emit_16(1729);
+emit_16(1794);
+emit_16(1730);
+emit_16(1795);
+emit_16(1731);
+emit_16(1795);
+emit_16(1730);
+emit_16(1795);
+emit_16(1731);
+emit_16(1796);
+emit_16(1732);
+emit_16(1796);
+emit_16(1731);
+emit_16(1796);
+emit_16(1732);
+emit_16(1797);
+emit_16(1733);
+emit_16(1797);
+emit_16(1732);
+emit_16(1797);
+emit_16(1733);
+emit_16(1798);
+emit_16(1734);
+emit_16(1798);
+emit_16(1733);
+emit_16(1798);
+emit_16(1734);
+emit_16(1799);
+emit_16(1735);
+emit_16(1799);
+emit_16(1734);
+emit_16(1799);
+emit_16(1735);
+emit_16(1800);
+emit_16(1736);
+emit_16(1800);
+emit_16(1735);
+emit_16(1800);
+emit_16(1736);
+emit_16(1801);
+emit_16(1737);
+emit_16(1801);
+emit_16(1736);
+emit_16(1801);
+emit_16(1737);
+emit_16(1802);
+emit_16(1738);
+emit_16(1802);
+emit_16(1737);
+emit_16(1802);
+emit_16(1738);
+emit_16(1803);
+emit_16(1739);
+emit_16(1803);
+emit_16(1738);
+emit_16(1803);
+emit_16(1739);
+emit_16(1804);
+emit_16(1740);
+emit_16(1804);
+emit_16(1739);
+emit_16(1804);
+emit_16(1740);
+emit_16(1805);
+emit_16(1741);
+emit_16(1805);
+emit_16(1740);
+emit_16(1805);
+emit_16(1741);
+emit_16(1806);
+emit_16(1742);
+emit_16(1806);
+emit_16(1741);
+emit_16(1806);
+emit_16(1742);
+emit_16(1807);
+emit_16(1743);
+emit_16(1807);
+emit_16(1742);
+emit_16(1807);
+emit_16(1743);
+emit_16(1808);
+emit_16(1744);
+emit_16(1808);
+emit_16(1743);
+emit_16(1808);
+emit_16(1744);
+emit_16(1809);
+emit_16(1745);
+emit_16(1809);
+emit_16(1744);
+emit_16(1809);
+emit_16(1745);
+emit_16(1810);
+emit_16(1746);
+emit_16(1810);
+emit_16(1745);
+emit_16(1810);
+emit_16(1746);
+emit_16(1811);
+emit_16(1747);
+emit_16(1811);
+emit_16(1746);
+emit_16(1811);
+emit_16(1747);
+emit_16(1812);
+emit_16(1748);
+emit_16(1812);
+emit_16(1747);
+emit_16(1812);
+emit_16(1748);
+emit_16(1813);
+emit_16(1749);
+emit_16(1813);
+emit_16(1748);
+emit_16(1813);
+emit_16(1749);
+emit_16(1814);
+emit_16(1750);
+emit_16(1814);
+emit_16(1749);
+emit_16(1814);
+emit_16(1750);
+emit_16(1815);
+emit_16(1751);
+emit_16(1815);
+emit_16(1750);
+emit_16(1815);
+emit_16(1751);
+emit_16(1816);
+emit_16(1752);
+emit_16(1816);
+emit_16(1751);
+emit_16(1816);
+emit_16(1752);
+emit_16(1817);
+emit_16(1753);
+emit_16(1817);
+emit_16(1752);
+emit_16(1817);
+emit_16(1753);
+emit_16(1818);
+emit_16(1754);
+emit_16(1818);
+emit_16(1753);
+emit_16(1818);
+emit_16(1754);
+emit_16(1819);
+emit_16(1755);
+emit_16(1819);
+emit_16(1754);
+emit_16(1819);
+emit_16(1755);
+emit_16(1820);
+emit_16(1756);
+emit_16(1820);
+emit_16(1755);
+emit_16(1820);
+emit_16(1756);
+emit_16(1821);
+emit_16(1757);
+emit_16(1821);
+emit_16(1756);
+emit_16(1821);
+emit_16(1757);
+emit_16(1822);
+emit_16(1758);
+emit_16(1822);
+emit_16(1757);
+emit_16(1822);
+emit_16(1758);
+emit_16(1823);
+emit_16(1759);
+emit_16(1823);
+emit_16(1758);
+emit_16(1823);
+emit_16(1759);
+emit_16(1824);
+emit_16(1760);
+emit_16(1824);
+emit_16(1759);
+emit_16(1824);
+emit_16(1760);
+emit_16(1825);
+emit_16(1761);
+emit_16(1825);
+emit_16(1760);
+emit_16(1825);
+emit_16(1761);
+emit_16(1826);
+emit_16(1762);
+emit_16(1826);
+emit_16(1761);
+emit_16(1826);
+emit_16(1762);
+emit_16(1827);
+emit_16(1763);
+emit_16(1827);
+emit_16(1762);
+emit_16(1827);
+emit_16(1763);
+emit_16(1828);
+emit_16(1764);
+emit_16(1828);
+emit_16(1763);
+emit_16(1828);
+emit_16(1764);
+emit_16(1829);
+emit_16(1765);
+emit_16(1829);
+emit_16(1764);
+emit_16(1829);
+emit_16(1765);
+emit_16(1830);
+emit_16(1766);
+emit_16(1830);
+emit_16(1765);
+emit_16(1830);
+emit_16(1766);
+emit_16(1831);
+emit_16(1767);
+emit_16(1831);
+emit_16(1766);
+emit_16(1831);
+emit_16(1767);
+emit_16(1832);
+emit_16(1768);
+emit_16(1832);
+emit_16(1767);
+emit_16(1832);
+emit_16(1768);
+emit_16(1833);
+emit_16(1769);
+emit_16(1833);
+emit_16(1768);
+emit_16(1833);
+emit_16(1769);
+emit_16(1834);
+emit_16(1770);
+emit_16(1834);
+emit_16(1769);
+emit_16(1834);
+emit_16(1770);
+emit_16(1835);
+emit_16(1771);
+emit_16(1835);
+emit_16(1770);
+emit_16(1835);
+emit_16(1771);
+emit_16(1836);
+emit_16(1772);
+emit_16(1836);
+emit_16(1771);
+emit_16(1836);
+emit_16(1772);
+emit_16(1837);
+emit_16(1773);
+emit_16(1837);
+emit_16(1772);
+emit_16(1837);
+emit_16(1773);
+emit_16(1838);
+emit_16(1774);
+emit_16(1838);
+emit_16(1773);
+emit_16(1838);
+emit_16(1774);
+emit_16(1839);
+emit_16(1775);
+emit_16(1839);
+emit_16(1774);
+emit_16(1839);
+emit_16(1775);
+emit_16(1840);
+emit_16(1776);
+emit_16(1840);
+emit_16(1775);
+emit_16(1840);
+emit_16(1776);
+emit_16(1841);
+emit_16(1777);
+emit_16(1841);
+emit_16(1776);
+emit_16(1841);
+emit_16(1777);
+emit_16(1842);
+emit_16(1778);
+emit_16(1842);
+emit_16(1777);
+emit_16(1842);
+emit_16(1778);
+emit_16(1843);
+emit_16(1779);
+emit_16(1843);
+emit_16(1778);
+emit_16(1843);
+emit_16(1779);
+emit_16(1844);
+emit_16(1780);
+emit_16(1844);
+emit_16(1779);
+emit_16(1844);
+emit_16(1780);
+emit_16(1845);
+emit_16(1781);
+emit_16(1845);
+emit_16(1780);
+emit_16(1845);
+emit_16(1781);
+emit_16(1846);
+emit_16(1782);
+emit_16(1846);
+emit_16(1781);
+emit_16(1846);
+emit_16(1782);
+emit_16(1847);
+emit_16(1783);
+emit_16(1847);
+emit_16(1782);
+emit_16(1847);
+emit_16(1783);
+emit_16(1848);
+emit_16(1784);
+emit_16(1848);
+emit_16(1783);
+emit_16(1848);
+emit_16(1784);
+emit_16(1849);
+emit_16(1785);
+emit_16(1849);
+emit_16(1784);
+emit_16(1849);
+emit_16(1785);
+emit_16(1850);
+emit_16(1786);
+emit_16(1850);
+emit_16(1785);
+emit_16(1850);
+emit_16(1786);
+emit_16(1851);
+emit_16(1787);
+emit_16(1851);
+emit_16(1786);
+emit_16(1851);
+emit_16(1787);
+emit_16(1852);
+emit_16(1788);
+emit_16(1852);
+emit_16(1787);
+emit_16(1852);
+emit_16(1788);
+emit_16(1853);
+emit_16(1789);
+emit_16(1853);
+emit_16(1788);
+emit_16(1853);
+emit_16(1789);
+emit_16(1854);
+emit_16(1790);
+emit_16(1854);
+emit_16(1789);
+emit_16(1854);
+emit_16(1790);
+emit_16(1855);
+emit_16(1791);
+emit_16(1855);
+emit_16(1790);
+emit_16(1856);
+emit_16(1792);
+emit_16(1857);
+emit_16(1793);
+emit_16(1857);
+emit_16(1792);
+emit_16(1857);
+emit_16(1793);
+emit_16(1858);
+emit_16(1794);
+emit_16(1858);
+emit_16(1793);
+emit_16(1858);
+emit_16(1794);
+emit_16(1859);
+emit_16(1795);
+emit_16(1859);
+emit_16(1794);
+emit_16(1859);
+emit_16(1795);
+emit_16(1860);
+emit_16(1796);
+emit_16(1860);
+emit_16(1795);
+emit_16(1860);
+emit_16(1796);
+emit_16(1861);
+emit_16(1797);
+emit_16(1861);
+emit_16(1796);
+emit_16(1861);
+emit_16(1797);
+emit_16(1862);
+emit_16(1798);
+emit_16(1862);
+emit_16(1797);
+emit_16(1862);
+emit_16(1798);
+emit_16(1863);
+emit_16(1799);
+emit_16(1863);
+emit_16(1798);
+emit_16(1863);
+emit_16(1799);
+emit_16(1864);
+emit_16(1800);
+emit_16(1864);
+emit_16(1799);
+emit_16(1864);
+emit_16(1800);
+emit_16(1865);
+emit_16(1801);
+emit_16(1865);
+emit_16(1800);
+emit_16(1865);
+emit_16(1801);
+emit_16(1866);
+emit_16(1802);
+emit_16(1866);
+emit_16(1801);
+emit_16(1866);
+emit_16(1802);
+emit_16(1867);
+emit_16(1803);
+emit_16(1867);
+emit_16(1802);
+emit_16(1867);
+emit_16(1803);
+emit_16(1868);
+emit_16(1804);
+emit_16(1868);
+emit_16(1803);
+emit_16(1868);
+emit_16(1804);
+emit_16(1869);
+emit_16(1805);
+emit_16(1869);
+emit_16(1804);
+emit_16(1869);
+emit_16(1805);
+emit_16(1870);
+emit_16(1806);
+emit_16(1870);
+emit_16(1805);
+emit_16(1870);
+emit_16(1806);
+emit_16(1871);
+emit_16(1807);
+emit_16(1871);
+emit_16(1806);
+emit_16(1871);
+emit_16(1807);
+emit_16(1872);
+emit_16(1808);
+emit_16(1872);
+emit_16(1807);
+emit_16(1872);
+emit_16(1808);
+emit_16(1873);
+emit_16(1809);
+emit_16(1873);
+emit_16(1808);
+emit_16(1873);
+emit_16(1809);
+emit_16(1874);
+emit_16(1810);
+emit_16(1874);
+emit_16(1809);
+emit_16(1874);
+emit_16(1810);
+emit_16(1875);
+emit_16(1811);
+emit_16(1875);
+emit_16(1810);
+emit_16(1875);
+emit_16(1811);
+emit_16(1876);
+emit_16(1812);
+emit_16(1876);
+emit_16(1811);
+emit_16(1876);
+emit_16(1812);
+emit_16(1877);
+emit_16(1813);
+emit_16(1877);
+emit_16(1812);
+emit_16(1877);
+emit_16(1813);
+emit_16(1878);
+emit_16(1814);
+emit_16(1878);
+emit_16(1813);
+emit_16(1878);
+emit_16(1814);
+emit_16(1879);
+emit_16(1815);
+emit_16(1879);
+emit_16(1814);
+emit_16(1879);
+emit_16(1815);
+emit_16(1880);
+emit_16(1816);
+emit_16(1880);
+emit_16(1815);
+emit_16(1880);
+emit_16(1816);
+emit_16(1881);
+emit_16(1817);
+emit_16(1881);
+emit_16(1816);
+emit_16(1881);
+emit_16(1817);
+emit_16(1882);
+emit_16(1818);
+emit_16(1882);
+emit_16(1817);
+emit_16(1882);
+emit_16(1818);
+emit_16(1883);
+emit_16(1819);
+emit_16(1883);
+emit_16(1818);
+emit_16(1883);
+emit_16(1819);
+emit_16(1884);
+emit_16(1820);
+emit_16(1884);
+emit_16(1819);
+emit_16(1884);
+emit_16(1820);
+emit_16(1885);
+emit_16(1821);
+emit_16(1885);
+emit_16(1820);
+emit_16(1885);
+emit_16(1821);
+emit_16(1886);
+emit_16(1822);
+emit_16(1886);
+emit_16(1821);
+emit_16(1886);
+emit_16(1822);
+emit_16(1887);
+emit_16(1823);
+emit_16(1887);
+emit_16(1822);
+emit_16(1887);
+emit_16(1823);
+emit_16(1888);
+emit_16(1824);
+emit_16(1888);
+emit_16(1823);
+emit_16(1888);
+emit_16(1824);
+emit_16(1889);
+emit_16(1825);
+emit_16(1889);
+emit_16(1824);
+emit_16(1889);
+emit_16(1825);
+emit_16(1890);
+emit_16(1826);
+emit_16(1890);
+emit_16(1825);
+emit_16(1890);
+emit_16(1826);
+emit_16(1891);
+emit_16(1827);
+emit_16(1891);
+emit_16(1826);
+emit_16(1891);
+emit_16(1827);
+emit_16(1892);
+emit_16(1828);
+emit_16(1892);
+emit_16(1827);
+emit_16(1892);
+emit_16(1828);
+emit_16(1893);
+emit_16(1829);
+emit_16(1893);
+emit_16(1828);
+emit_16(1893);
+emit_16(1829);
+emit_16(1894);
+emit_16(1830);
+emit_16(1894);
+emit_16(1829);
+emit_16(1894);
+emit_16(1830);
+emit_16(1895);
+emit_16(1831);
+emit_16(1895);
+emit_16(1830);
+emit_16(1895);
+emit_16(1831);
+emit_16(1896);
+emit_16(1832);
+emit_16(1896);
+emit_16(1831);
+emit_16(1896);
+emit_16(1832);
+emit_16(1897);
+emit_16(1833);
+emit_16(1897);
+emit_16(1832);
+emit_16(1897);
+emit_16(1833);
+emit_16(1898);
+emit_16(1834);
+emit_16(1898);
+emit_16(1833);
+emit_16(1898);
+emit_16(1834);
+emit_16(1899);
+emit_16(1835);
+emit_16(1899);
+emit_16(1834);
+emit_16(1899);
+emit_16(1835);
+emit_16(1900);
+emit_16(1836);
+emit_16(1900);
+emit_16(1835);
+emit_16(1900);
+emit_16(1836);
+emit_16(1901);
+emit_16(1837);
+emit_16(1901);
+emit_16(1836);
+emit_16(1901);
+emit_16(1837);
+emit_16(1902);
+emit_16(1838);
+emit_16(1902);
+emit_16(1837);
+emit_16(1902);
+emit_16(1838);
+emit_16(1903);
+emit_16(1839);
+emit_16(1903);
+emit_16(1838);
+emit_16(1903);
+emit_16(1839);
+emit_16(1904);
+emit_16(1840);
+emit_16(1904);
+emit_16(1839);
+emit_16(1904);
+emit_16(1840);
+emit_16(1905);
+emit_16(1841);
+emit_16(1905);
+emit_16(1840);
+emit_16(1905);
+emit_16(1841);
+emit_16(1906);
+emit_16(1842);
+emit_16(1906);
+emit_16(1841);
+emit_16(1906);
+emit_16(1842);
+emit_16(1907);
+emit_16(1843);
+emit_16(1907);
+emit_16(1842);
+emit_16(1907);
+emit_16(1843);
+emit_16(1908);
+emit_16(1844);
+emit_16(1908);
+emit_16(1843);
+emit_16(1908);
+emit_16(1844);
+emit_16(1909);
+emit_16(1845);
+emit_16(1909);
+emit_16(1844);
+emit_16(1909);
+emit_16(1845);
+emit_16(1910);
+emit_16(1846);
+emit_16(1910);
+emit_16(1845);
+emit_16(1910);
+emit_16(1846);
+emit_16(1911);
+emit_16(1847);
+emit_16(1911);
+emit_16(1846);
+emit_16(1911);
+emit_16(1847);
+emit_16(1912);
+emit_16(1848);
+emit_16(1912);
+emit_16(1847);
+emit_16(1912);
+emit_16(1848);
+emit_16(1913);
+emit_16(1849);
+emit_16(1913);
+emit_16(1848);
+emit_16(1913);
+emit_16(1849);
+emit_16(1914);
+emit_16(1850);
+emit_16(1914);
+emit_16(1849);
+emit_16(1914);
+emit_16(1850);
+emit_16(1915);
+emit_16(1851);
+emit_16(1915);
+emit_16(1850);
+emit_16(1915);
+emit_16(1851);
+emit_16(1916);
+emit_16(1852);
+emit_16(1916);
+emit_16(1851);
+emit_16(1916);
+emit_16(1852);
+emit_16(1917);
+emit_16(1853);
+emit_16(1917);
+emit_16(1852);
+emit_16(1917);
+emit_16(1853);
+emit_16(1918);
+emit_16(1854);
+emit_16(1918);
+emit_16(1853);
+emit_16(1918);
+emit_16(1854);
+emit_16(1919);
+emit_16(1855);
+emit_16(1919);
+emit_16(1854);
+emit_16(1920);
+emit_16(1856);
+emit_16(1921);
+emit_16(1857);
+emit_16(1921);
+emit_16(1856);
+emit_16(1921);
+emit_16(1857);
+emit_16(1922);
+emit_16(1858);
+emit_16(1922);
+emit_16(1857);
+emit_16(1922);
+emit_16(1858);
+emit_16(1923);
+emit_16(1859);
+emit_16(1923);
+emit_16(1858);
+emit_16(1923);
+emit_16(1859);
+emit_16(1924);
+emit_16(1860);
+emit_16(1924);
+emit_16(1859);
+emit_16(1924);
+emit_16(1860);
+emit_16(1925);
+emit_16(1861);
+emit_16(1925);
+emit_16(1860);
+emit_16(1925);
+emit_16(1861);
+emit_16(1926);
+emit_16(1862);
+emit_16(1926);
+emit_16(1861);
+emit_16(1926);
+emit_16(1862);
+emit_16(1927);
+emit_16(1863);
+emit_16(1927);
+emit_16(1862);
+emit_16(1927);
+emit_16(1863);
+emit_16(1928);
+emit_16(1864);
+emit_16(1928);
+emit_16(1863);
+emit_16(1928);
+emit_16(1864);
+emit_16(1929);
+emit_16(1865);
+emit_16(1929);
+emit_16(1864);
+emit_16(1929);
+emit_16(1865);
+emit_16(1930);
+emit_16(1866);
+emit_16(1930);
+emit_16(1865);
+emit_16(1930);
+emit_16(1866);
+emit_16(1931);
+emit_16(1867);
+emit_16(1931);
+emit_16(1866);
+emit_16(1931);
+emit_16(1867);
+emit_16(1932);
+emit_16(1868);
+emit_16(1932);
+emit_16(1867);
+emit_16(1932);
+emit_16(1868);
+emit_16(1933);
+emit_16(1869);
+emit_16(1933);
+emit_16(1868);
+emit_16(1933);
+emit_16(1869);
+emit_16(1934);
+emit_16(1870);
+emit_16(1934);
+emit_16(1869);
+emit_16(1934);
+emit_16(1870);
+emit_16(1935);
+emit_16(1871);
+emit_16(1935);
+emit_16(1870);
+emit_16(1935);
+emit_16(1871);
+emit_16(1936);
+emit_16(1872);
+emit_16(1936);
+emit_16(1871);
+emit_16(1936);
+emit_16(1872);
+emit_16(1937);
+emit_16(1873);
+emit_16(1937);
+emit_16(1872);
+emit_16(1937);
+emit_16(1873);
+emit_16(1938);
+emit_16(1874);
+emit_16(1938);
+emit_16(1873);
+emit_16(1938);
+emit_16(1874);
+emit_16(1939);
+emit_16(1875);
+emit_16(1939);
+emit_16(1874);
+emit_16(1939);
+emit_16(1875);
+emit_16(1940);
+emit_16(1876);
+emit_16(1940);
+emit_16(1875);
+emit_16(1940);
+emit_16(1876);
+emit_16(1941);
+emit_16(1877);
+emit_16(1941);
+emit_16(1876);
+emit_16(1941);
+emit_16(1877);
+emit_16(1942);
+emit_16(1878);
+emit_16(1942);
+emit_16(1877);
+emit_16(1942);
+emit_16(1878);
+emit_16(1943);
+emit_16(1879);
+emit_16(1943);
+emit_16(1878);
+emit_16(1943);
+emit_16(1879);
+emit_16(1944);
+emit_16(1880);
+emit_16(1944);
+emit_16(1879);
+emit_16(1944);
+emit_16(1880);
+emit_16(1945);
+emit_16(1881);
+emit_16(1945);
+emit_16(1880);
+emit_16(1945);
+emit_16(1881);
+emit_16(1946);
+emit_16(1882);
+emit_16(1946);
+emit_16(1881);
+emit_16(1946);
+emit_16(1882);
+emit_16(1947);
+emit_16(1883);
+emit_16(1947);
+emit_16(1882);
+emit_16(1947);
+emit_16(1883);
+emit_16(1948);
+emit_16(1884);
+emit_16(1948);
+emit_16(1883);
+emit_16(1948);
+emit_16(1884);
+emit_16(1949);
+emit_16(1885);
+emit_16(1949);
+emit_16(1884);
+emit_16(1949);
+emit_16(1885);
+emit_16(1950);
+emit_16(1886);
+emit_16(1950);
+emit_16(1885);
+emit_16(1950);
+emit_16(1886);
+emit_16(1951);
+emit_16(1887);
+emit_16(1951);
+emit_16(1886);
+emit_16(1951);
+emit_16(1887);
+emit_16(1952);
+emit_16(1888);
+emit_16(1952);
+emit_16(1887);
+emit_16(1952);
+emit_16(1888);
+emit_16(1953);
+emit_16(1889);
+emit_16(1953);
+emit_16(1888);
+emit_16(1953);
+emit_16(1889);
+emit_16(1954);
+emit_16(1890);
+emit_16(1954);
+emit_16(1889);
+emit_16(1954);
+emit_16(1890);
+emit_16(1955);
+emit_16(1891);
+emit_16(1955);
+emit_16(1890);
+emit_16(1955);
+emit_16(1891);
+emit_16(1956);
+emit_16(1892);
+emit_16(1956);
+emit_16(1891);
+emit_16(1956);
+emit_16(1892);
+emit_16(1957);
+emit_16(1893);
+emit_16(1957);
+emit_16(1892);
+emit_16(1957);
+emit_16(1893);
+emit_16(1958);
+emit_16(1894);
+emit_16(1958);
+emit_16(1893);
+emit_16(1958);
+emit_16(1894);
+emit_16(1959);
+emit_16(1895);
+emit_16(1959);
+emit_16(1894);
+emit_16(1959);
+emit_16(1895);
+emit_16(1960);
+emit_16(1896);
+emit_16(1960);
+emit_16(1895);
+emit_16(1960);
+emit_16(1896);
+emit_16(1961);
+emit_16(1897);
+emit_16(1961);
+emit_16(1896);
+emit_16(1961);
+emit_16(1897);
+emit_16(1962);
+emit_16(1898);
+emit_16(1962);
+emit_16(1897);
+emit_16(1962);
+emit_16(1898);
+emit_16(1963);
+emit_16(1899);
+emit_16(1963);
+emit_16(1898);
+emit_16(1963);
+emit_16(1899);
+emit_16(1964);
+emit_16(1900);
+emit_16(1964);
+emit_16(1899);
+emit_16(1964);
+emit_16(1900);
+emit_16(1965);
+emit_16(1901);
+emit_16(1965);
+emit_16(1900);
+emit_16(1965);
+emit_16(1901);
+emit_16(1966);
+emit_16(1902);
+emit_16(1966);
+emit_16(1901);
+emit_16(1966);
+emit_16(1902);
+emit_16(1967);
+emit_16(1903);
+emit_16(1967);
+emit_16(1902);
+emit_16(1967);
+emit_16(1903);
+emit_16(1968);
+emit_16(1904);
+emit_16(1968);
+emit_16(1903);
+emit_16(1968);
+emit_16(1904);
+emit_16(1969);
+emit_16(1905);
+emit_16(1969);
+emit_16(1904);
+emit_16(1969);
+emit_16(1905);
+emit_16(1970);
+emit_16(1906);
+emit_16(1970);
+emit_16(1905);
+emit_16(1970);
+emit_16(1906);
+emit_16(1971);
+emit_16(1907);
+emit_16(1971);
+emit_16(1906);
+emit_16(1971);
+emit_16(1907);
+emit_16(1972);
+emit_16(1908);
+emit_16(1972);
+emit_16(1907);
+emit_16(1972);
+emit_16(1908);
+emit_16(1973);
+emit_16(1909);
+emit_16(1973);
+emit_16(1908);
+emit_16(1973);
+emit_16(1909);
+emit_16(1974);
+emit_16(1910);
+emit_16(1974);
+emit_16(1909);
+emit_16(1974);
+emit_16(1910);
+emit_16(1975);
+emit_16(1911);
+emit_16(1975);
+emit_16(1910);
+emit_16(1975);
+emit_16(1911);
+emit_16(1976);
+emit_16(1912);
+emit_16(1976);
+emit_16(1911);
+emit_16(1976);
+emit_16(1912);
+emit_16(1977);
+emit_16(1913);
+emit_16(1977);
+emit_16(1912);
+emit_16(1977);
+emit_16(1913);
+emit_16(1978);
+emit_16(1914);
+emit_16(1978);
+emit_16(1913);
+emit_16(1978);
+emit_16(1914);
+emit_16(1979);
+emit_16(1915);
+emit_16(1979);
+emit_16(1914);
+emit_16(1979);
+emit_16(1915);
+emit_16(1980);
+emit_16(1916);
+emit_16(1980);
+emit_16(1915);
+emit_16(1980);
+emit_16(1916);
+emit_16(1981);
+emit_16(1917);
+emit_16(1981);
+emit_16(1916);
+emit_16(1981);
+emit_16(1917);
+emit_16(1982);
+emit_16(1918);
+emit_16(1982);
+emit_16(1917);
+emit_16(1982);
+emit_16(1918);
+emit_16(1983);
+emit_16(1919);
+emit_16(1983);
+emit_16(1918);
+emit_16(1984);
+emit_16(1920);
+emit_16(1985);
+emit_16(1921);
+emit_16(1985);
+emit_16(1920);
+emit_16(1985);
+emit_16(1921);
+emit_16(1986);
+emit_16(1922);
+emit_16(1986);
+emit_16(1921);
+emit_16(1986);
+emit_16(1922);
+emit_16(1987);
+emit_16(1923);
+emit_16(1987);
+emit_16(1922);
+emit_16(1987);
+emit_16(1923);
+emit_16(1988);
+emit_16(1924);
+emit_16(1988);
+emit_16(1923);
+emit_16(1988);
+emit_16(1924);
+emit_16(1989);
+emit_16(1925);
+emit_16(1989);
+emit_16(1924);
+emit_16(1989);
+emit_16(1925);
+emit_16(1990);
+emit_16(1926);
+emit_16(1990);
+emit_16(1925);
+emit_16(1990);
+emit_16(1926);
+emit_16(1991);
+emit_16(1927);
+emit_16(1991);
+emit_16(1926);
+emit_16(1991);
+emit_16(1927);
+emit_16(1992);
+emit_16(1928);
+emit_16(1992);
+emit_16(1927);
+emit_16(1992);
+emit_16(1928);
+emit_16(1993);
+emit_16(1929);
+emit_16(1993);
+emit_16(1928);
+emit_16(1993);
+emit_16(1929);
+emit_16(1994);
+emit_16(1930);
+emit_16(1994);
+emit_16(1929);
+emit_16(1994);
+emit_16(1930);
+emit_16(1995);
+emit_16(1931);
+emit_16(1995);
+emit_16(1930);
+emit_16(1995);
+emit_16(1931);
+emit_16(1996);
+emit_16(1932);
+emit_16(1996);
+emit_16(1931);
+emit_16(1996);
+emit_16(1932);
+emit_16(1997);
+emit_16(1933);
+emit_16(1997);
+emit_16(1932);
+emit_16(1997);
+emit_16(1933);
+emit_16(1998);
+emit_16(1934);
+emit_16(1998);
+emit_16(1933);
+emit_16(1998);
+emit_16(1934);
+emit_16(1999);
+emit_16(1935);
+emit_16(1999);
+emit_16(1934);
+emit_16(1999);
+emit_16(1935);
+emit_16(2000);
+emit_16(1936);
+emit_16(2000);
+emit_16(1935);
+emit_16(2000);
+emit_16(1936);
+emit_16(2001);
+emit_16(1937);
+emit_16(2001);
+emit_16(1936);
+emit_16(2001);
+emit_16(1937);
+emit_16(2002);
+emit_16(1938);
+emit_16(2002);
+emit_16(1937);
+emit_16(2002);
+emit_16(1938);
+emit_16(2003);
+emit_16(1939);
+emit_16(2003);
+emit_16(1938);
+emit_16(2003);
+emit_16(1939);
+emit_16(2004);
+emit_16(1940);
+emit_16(2004);
+emit_16(1939);
+emit_16(2004);
+emit_16(1940);
+emit_16(2005);
+emit_16(1941);
+emit_16(2005);
+emit_16(1940);
+emit_16(2005);
+emit_16(1941);
+emit_16(2006);
+emit_16(1942);
+emit_16(2006);
+emit_16(1941);
+emit_16(2006);
+emit_16(1942);
+emit_16(2007);
+emit_16(1943);
+emit_16(2007);
+emit_16(1942);
+emit_16(2007);
+emit_16(1943);
+emit_16(2008);
+emit_16(1944);
+emit_16(2008);
+emit_16(1943);
+emit_16(2008);
+emit_16(1944);
+emit_16(2009);
+emit_16(1945);
+emit_16(2009);
+emit_16(1944);
+emit_16(2009);
+emit_16(1945);
+emit_16(2010);
+emit_16(1946);
+emit_16(2010);
+emit_16(1945);
+emit_16(2010);
+emit_16(1946);
+emit_16(2011);
+emit_16(1947);
+emit_16(2011);
+emit_16(1946);
+emit_16(2011);
+emit_16(1947);
+emit_16(2012);
+emit_16(1948);
+emit_16(2012);
+emit_16(1947);
+emit_16(2012);
+emit_16(1948);
+emit_16(2013);
+emit_16(1949);
+emit_16(2013);
+emit_16(1948);
+emit_16(2013);
+emit_16(1949);
+emit_16(2014);
+emit_16(1950);
+emit_16(2014);
+emit_16(1949);
+emit_16(2014);
+emit_16(1950);
+emit_16(2015);
+emit_16(1951);
+emit_16(2015);
+emit_16(1950);
+emit_16(2015);
+emit_16(1951);
+emit_16(2016);
+emit_16(1952);
+emit_16(2016);
+emit_16(1951);
+emit_16(2016);
+emit_16(1952);
+emit_16(2017);
+emit_16(1953);
+emit_16(2017);
+emit_16(1952);
+emit_16(2017);
+emit_16(1953);
+emit_16(2018);
+emit_16(1954);
+emit_16(2018);
+emit_16(1953);
+emit_16(2018);
+emit_16(1954);
+emit_16(2019);
+emit_16(1955);
+emit_16(2019);
+emit_16(1954);
+emit_16(2019);
+emit_16(1955);
+emit_16(2020);
+emit_16(1956);
+emit_16(2020);
+emit_16(1955);
+emit_16(2020);
+emit_16(1956);
+emit_16(2021);
+emit_16(1957);
+emit_16(2021);
+emit_16(1956);
+emit_16(2021);
+emit_16(1957);
+emit_16(2022);
+emit_16(1958);
+emit_16(2022);
+emit_16(1957);
+emit_16(2022);
+emit_16(1958);
+emit_16(2023);
+emit_16(1959);
+emit_16(2023);
+emit_16(1958);
+emit_16(2023);
+emit_16(1959);
+emit_16(2024);
+emit_16(1960);
+emit_16(2024);
+emit_16(1959);
+emit_16(2024);
+emit_16(1960);
+emit_16(2025);
+emit_16(1961);
+emit_16(2025);
+emit_16(1960);
+emit_16(2025);
+emit_16(1961);
+emit_16(2026);
+emit_16(1962);
+emit_16(2026);
+emit_16(1961);
+emit_16(2026);
+emit_16(1962);
+emit_16(2027);
+emit_16(1963);
+emit_16(2027);
+emit_16(1962);
+emit_16(2027);
+emit_16(1963);
+emit_16(2028);
+emit_16(1964);
+emit_16(2028);
+emit_16(1963);
+emit_16(2028);
+emit_16(1964);
+emit_16(2029);
+emit_16(1965);
+emit_16(2029);
+emit_16(1964);
+emit_16(2029);
+emit_16(1965);
+emit_16(2030);
+emit_16(1966);
+emit_16(2030);
+emit_16(1965);
+emit_16(2030);
+emit_16(1966);
+emit_16(2031);
+emit_16(1967);
+emit_16(2031);
+emit_16(1966);
+emit_16(2031);
+emit_16(1967);
+emit_16(2032);
+emit_16(1968);
+emit_16(2032);
+emit_16(1967);
+emit_16(2032);
+emit_16(1968);
+emit_16(2033);
+emit_16(1969);
+emit_16(2033);
+emit_16(1968);
+emit_16(2033);
+emit_16(1969);
+emit_16(2034);
+emit_16(1970);
+emit_16(2034);
+emit_16(1969);
+emit_16(2034);
+emit_16(1970);
+emit_16(2035);
+emit_16(1971);
+emit_16(2035);
+emit_16(1970);
+emit_16(2035);
+emit_16(1971);
+emit_16(2036);
+emit_16(1972);
+emit_16(2036);
+emit_16(1971);
+emit_16(2036);
+emit_16(1972);
+emit_16(2037);
+emit_16(1973);
+emit_16(2037);
+emit_16(1972);
+emit_16(2037);
+emit_16(1973);
+emit_16(2038);
+emit_16(1974);
+emit_16(2038);
+emit_16(1973);
+emit_16(2038);
+emit_16(1974);
+emit_16(2039);
+emit_16(1975);
+emit_16(2039);
+emit_16(1974);
+emit_16(2039);
+emit_16(1975);
+emit_16(2040);
+emit_16(1976);
+emit_16(2040);
+emit_16(1975);
+emit_16(2040);
+emit_16(1976);
+emit_16(2041);
+emit_16(1977);
+emit_16(2041);
+emit_16(1976);
+emit_16(2041);
+emit_16(1977);
+emit_16(2042);
+emit_16(1978);
+emit_16(2042);
+emit_16(1977);
+emit_16(2042);
+emit_16(1978);
+emit_16(2043);
+emit_16(1979);
+emit_16(2043);
+emit_16(1978);
+emit_16(2043);
+emit_16(1979);
+emit_16(2044);
+emit_16(1980);
+emit_16(2044);
+emit_16(1979);
+emit_16(2044);
+emit_16(1980);
+emit_16(2045);
+emit_16(1981);
+emit_16(2045);
+emit_16(1980);
+emit_16(2045);
+emit_16(1981);
+emit_16(2046);
+emit_16(1982);
+emit_16(2046);
+emit_16(1981);
+emit_16(2046);
+emit_16(1982);
+emit_16(2047);
+emit_16(1983);
+emit_16(2047);
+emit_16(1982);
+emit_start(Landscape02Idx)
+emit_16(0);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(2);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(4);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(6);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(8);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(10);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(12);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(14);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(16);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(18);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(20);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(22);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(24);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(26);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(28);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(30);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(32);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(34);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(36);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(38);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(40);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(42);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(44);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(46);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(48);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(50);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(52);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(54);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(56);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(58);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(60);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(62);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(64);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(66);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(68);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(70);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(72);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(74);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(76);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(78);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(80);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(82);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(84);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(86);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(88);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(90);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(92);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(94);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(96);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(98);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(100);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(102);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(104);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(106);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(108);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(110);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(112);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(114);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(116);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(118);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(120);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(122);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(124);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(126);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(128);
+emit_16(129);
+emit_16(128);
+emit_16(127);
+emit_16(128);
+emit_16(129);
+emit_16(130);
+emit_16(131);
+emit_16(130);
+emit_16(129);
+emit_16(132);
+emit_16(0);
+emit_16(133);
+emit_16(2);
+emit_16(133);
+emit_16(0);
+emit_16(133);
+emit_16(2);
+emit_16(134);
+emit_16(4);
+emit_16(134);
+emit_16(2);
+emit_16(134);
+emit_16(4);
+emit_16(135);
+emit_16(6);
+emit_16(135);
+emit_16(4);
+emit_16(135);
+emit_16(6);
+emit_16(136);
+emit_16(8);
+emit_16(136);
+emit_16(6);
+emit_16(136);
+emit_16(8);
+emit_16(137);
+emit_16(10);
+emit_16(137);
+emit_16(8);
+emit_16(137);
+emit_16(10);
+emit_16(138);
+emit_16(12);
+emit_16(138);
+emit_16(10);
+emit_16(138);
+emit_16(12);
+emit_16(139);
+emit_16(14);
+emit_16(139);
+emit_16(12);
+emit_16(139);
+emit_16(14);
+emit_16(140);
+emit_16(16);
+emit_16(140);
+emit_16(14);
+emit_16(140);
+emit_16(16);
+emit_16(141);
+emit_16(18);
+emit_16(141);
+emit_16(16);
+emit_16(141);
+emit_16(18);
+emit_16(142);
+emit_16(20);
+emit_16(142);
+emit_16(18);
+emit_16(142);
+emit_16(20);
+emit_16(143);
+emit_16(22);
+emit_16(143);
+emit_16(20);
+emit_16(143);
+emit_16(22);
+emit_16(144);
+emit_16(24);
+emit_16(144);
+emit_16(22);
+emit_16(144);
+emit_16(24);
+emit_16(145);
+emit_16(26);
+emit_16(145);
+emit_16(24);
+emit_16(145);
+emit_16(26);
+emit_16(146);
+emit_16(28);
+emit_16(146);
+emit_16(26);
+emit_16(146);
+emit_16(28);
+emit_16(147);
+emit_16(30);
+emit_16(147);
+emit_16(28);
+emit_16(147);
+emit_16(30);
+emit_16(148);
+emit_16(32);
+emit_16(148);
+emit_16(30);
+emit_16(148);
+emit_16(32);
+emit_16(149);
+emit_16(34);
+emit_16(149);
+emit_16(32);
+emit_16(149);
+emit_16(34);
+emit_16(150);
+emit_16(36);
+emit_16(150);
+emit_16(34);
+emit_16(150);
+emit_16(36);
+emit_16(151);
+emit_16(38);
+emit_16(151);
+emit_16(36);
+emit_16(151);
+emit_16(38);
+emit_16(152);
+emit_16(40);
+emit_16(152);
+emit_16(38);
+emit_16(152);
+emit_16(40);
+emit_16(153);
+emit_16(42);
+emit_16(153);
+emit_16(40);
+emit_16(153);
+emit_16(42);
+emit_16(154);
+emit_16(44);
+emit_16(154);
+emit_16(42);
+emit_16(154);
+emit_16(44);
+emit_16(155);
+emit_16(46);
+emit_16(155);
+emit_16(44);
+emit_16(155);
+emit_16(46);
+emit_16(156);
+emit_16(48);
+emit_16(156);
+emit_16(46);
+emit_16(156);
+emit_16(48);
+emit_16(157);
+emit_16(50);
+emit_16(157);
+emit_16(48);
+emit_16(157);
+emit_16(50);
+emit_16(158);
+emit_16(52);
+emit_16(158);
+emit_16(50);
+emit_16(158);
+emit_16(52);
+emit_16(159);
+emit_16(54);
+emit_16(159);
+emit_16(52);
+emit_16(159);
+emit_16(54);
+emit_16(160);
+emit_16(56);
+emit_16(160);
+emit_16(54);
+emit_16(160);
+emit_16(56);
+emit_16(161);
+emit_16(58);
+emit_16(161);
+emit_16(56);
+emit_16(161);
+emit_16(58);
+emit_16(162);
+emit_16(60);
+emit_16(162);
+emit_16(58);
+emit_16(162);
+emit_16(60);
+emit_16(163);
+emit_16(62);
+emit_16(163);
+emit_16(60);
+emit_16(163);
+emit_16(62);
+emit_16(164);
+emit_16(64);
+emit_16(164);
+emit_16(62);
+emit_16(164);
+emit_16(64);
+emit_16(165);
+emit_16(66);
+emit_16(165);
+emit_16(64);
+emit_16(165);
+emit_16(66);
+emit_16(166);
+emit_16(68);
+emit_16(166);
+emit_16(66);
+emit_16(166);
+emit_16(68);
+emit_16(167);
+emit_16(70);
+emit_16(167);
+emit_16(68);
+emit_16(167);
+emit_16(70);
+emit_16(168);
+emit_16(72);
+emit_16(168);
+emit_16(70);
+emit_16(168);
+emit_16(72);
+emit_16(169);
+emit_16(74);
+emit_16(169);
+emit_16(72);
+emit_16(169);
+emit_16(74);
+emit_16(170);
+emit_16(76);
+emit_16(170);
+emit_16(74);
+emit_16(170);
+emit_16(76);
+emit_16(171);
+emit_16(78);
+emit_16(171);
+emit_16(76);
+emit_16(171);
+emit_16(78);
+emit_16(172);
+emit_16(80);
+emit_16(172);
+emit_16(78);
+emit_16(172);
+emit_16(80);
+emit_16(173);
+emit_16(82);
+emit_16(173);
+emit_16(80);
+emit_16(173);
+emit_16(82);
+emit_16(174);
+emit_16(84);
+emit_16(174);
+emit_16(82);
+emit_16(174);
+emit_16(84);
+emit_16(175);
+emit_16(86);
+emit_16(175);
+emit_16(84);
+emit_16(175);
+emit_16(86);
+emit_16(176);
+emit_16(88);
+emit_16(176);
+emit_16(86);
+emit_16(176);
+emit_16(88);
+emit_16(177);
+emit_16(90);
+emit_16(177);
+emit_16(88);
+emit_16(177);
+emit_16(90);
+emit_16(178);
+emit_16(92);
+emit_16(178);
+emit_16(90);
+emit_16(178);
+emit_16(92);
+emit_16(179);
+emit_16(94);
+emit_16(179);
+emit_16(92);
+emit_16(179);
+emit_16(94);
+emit_16(180);
+emit_16(96);
+emit_16(180);
+emit_16(94);
+emit_16(180);
+emit_16(96);
+emit_16(181);
+emit_16(98);
+emit_16(181);
+emit_16(96);
+emit_16(181);
+emit_16(98);
+emit_16(182);
+emit_16(100);
+emit_16(182);
+emit_16(98);
+emit_16(182);
+emit_16(100);
+emit_16(183);
+emit_16(102);
+emit_16(183);
+emit_16(100);
+emit_16(183);
+emit_16(102);
+emit_16(184);
+emit_16(104);
+emit_16(184);
+emit_16(102);
+emit_16(184);
+emit_16(104);
+emit_16(185);
+emit_16(106);
+emit_16(185);
+emit_16(104);
+emit_16(185);
+emit_16(106);
+emit_16(186);
+emit_16(108);
+emit_16(186);
+emit_16(106);
+emit_16(186);
+emit_16(108);
+emit_16(187);
+emit_16(110);
+emit_16(187);
+emit_16(108);
+emit_16(187);
+emit_16(110);
+emit_16(188);
+emit_16(112);
+emit_16(188);
+emit_16(110);
+emit_16(188);
+emit_16(112);
+emit_16(189);
+emit_16(114);
+emit_16(189);
+emit_16(112);
+emit_16(189);
+emit_16(114);
+emit_16(190);
+emit_16(116);
+emit_16(190);
+emit_16(114);
+emit_16(190);
+emit_16(116);
+emit_16(191);
+emit_16(118);
+emit_16(191);
+emit_16(116);
+emit_16(191);
+emit_16(118);
+emit_16(192);
+emit_16(120);
+emit_16(192);
+emit_16(118);
+emit_16(192);
+emit_16(120);
+emit_16(193);
+emit_16(122);
+emit_16(193);
+emit_16(120);
+emit_16(193);
+emit_16(122);
+emit_16(194);
+emit_16(124);
+emit_16(194);
+emit_16(122);
+emit_16(194);
+emit_16(124);
+emit_16(195);
+emit_16(126);
+emit_16(195);
+emit_16(124);
+emit_16(195);
+emit_16(126);
+emit_16(196);
+emit_16(128);
+emit_16(196);
+emit_16(126);
+emit_16(196);
+emit_16(128);
+emit_16(197);
+emit_16(130);
+emit_16(197);
+emit_16(128);
+emit_16(198);
+emit_16(132);
+emit_16(199);
+emit_16(133);
+emit_16(199);
+emit_16(132);
+emit_16(199);
+emit_16(133);
+emit_16(200);
+emit_16(134);
+emit_16(200);
+emit_16(133);
+emit_16(200);
+emit_16(134);
+emit_16(201);
+emit_16(135);
+emit_16(201);
+emit_16(134);
+emit_16(201);
+emit_16(135);
+emit_16(202);
+emit_16(136);
+emit_16(202);
+emit_16(135);
+emit_16(202);
+emit_16(136);
+emit_16(203);
+emit_16(137);
+emit_16(203);
+emit_16(136);
+emit_16(203);
+emit_16(137);
+emit_16(204);
+emit_16(138);
+emit_16(204);
+emit_16(137);
+emit_16(204);
+emit_16(138);
+emit_16(205);
+emit_16(139);
+emit_16(205);
+emit_16(138);
+emit_16(205);
+emit_16(139);
+emit_16(206);
+emit_16(140);
+emit_16(206);
+emit_16(139);
+emit_16(206);
+emit_16(140);
+emit_16(207);
+emit_16(141);
+emit_16(207);
+emit_16(140);
+emit_16(207);
+emit_16(141);
+emit_16(208);
+emit_16(142);
+emit_16(208);
+emit_16(141);
+emit_16(208);
+emit_16(142);
+emit_16(209);
+emit_16(143);
+emit_16(209);
+emit_16(142);
+emit_16(209);
+emit_16(143);
+emit_16(210);
+emit_16(144);
+emit_16(210);
+emit_16(143);
+emit_16(210);
+emit_16(144);
+emit_16(211);
+emit_16(145);
+emit_16(211);
+emit_16(144);
+emit_16(211);
+emit_16(145);
+emit_16(212);
+emit_16(146);
+emit_16(212);
+emit_16(145);
+emit_16(212);
+emit_16(146);
+emit_16(213);
+emit_16(147);
+emit_16(213);
+emit_16(146);
+emit_16(213);
+emit_16(147);
+emit_16(214);
+emit_16(148);
+emit_16(214);
+emit_16(147);
+emit_16(214);
+emit_16(148);
+emit_16(215);
+emit_16(149);
+emit_16(215);
+emit_16(148);
+emit_16(215);
+emit_16(149);
+emit_16(216);
+emit_16(150);
+emit_16(216);
+emit_16(149);
+emit_16(216);
+emit_16(150);
+emit_16(217);
+emit_16(151);
+emit_16(217);
+emit_16(150);
+emit_16(217);
+emit_16(151);
+emit_16(218);
+emit_16(152);
+emit_16(218);
+emit_16(151);
+emit_16(218);
+emit_16(152);
+emit_16(219);
+emit_16(153);
+emit_16(219);
+emit_16(152);
+emit_16(219);
+emit_16(153);
+emit_16(220);
+emit_16(154);
+emit_16(220);
+emit_16(153);
+emit_16(220);
+emit_16(154);
+emit_16(221);
+emit_16(155);
+emit_16(221);
+emit_16(154);
+emit_16(221);
+emit_16(155);
+emit_16(222);
+emit_16(156);
+emit_16(222);
+emit_16(155);
+emit_16(222);
+emit_16(156);
+emit_16(223);
+emit_16(157);
+emit_16(223);
+emit_16(156);
+emit_16(223);
+emit_16(157);
+emit_16(224);
+emit_16(158);
+emit_16(224);
+emit_16(157);
+emit_16(224);
+emit_16(158);
+emit_16(225);
+emit_16(159);
+emit_16(225);
+emit_16(158);
+emit_16(225);
+emit_16(159);
+emit_16(226);
+emit_16(160);
+emit_16(226);
+emit_16(159);
+emit_16(226);
+emit_16(160);
+emit_16(227);
+emit_16(161);
+emit_16(227);
+emit_16(160);
+emit_16(227);
+emit_16(161);
+emit_16(228);
+emit_16(162);
+emit_16(228);
+emit_16(161);
+emit_16(228);
+emit_16(162);
+emit_16(229);
+emit_16(163);
+emit_16(229);
+emit_16(162);
+emit_16(229);
+emit_16(163);
+emit_16(230);
+emit_16(164);
+emit_16(230);
+emit_16(163);
+emit_16(230);
+emit_16(164);
+emit_16(231);
+emit_16(165);
+emit_16(231);
+emit_16(164);
+emit_16(231);
+emit_16(165);
+emit_16(232);
+emit_16(166);
+emit_16(232);
+emit_16(165);
+emit_16(232);
+emit_16(166);
+emit_16(233);
+emit_16(167);
+emit_16(233);
+emit_16(166);
+emit_16(233);
+emit_16(167);
+emit_16(234);
+emit_16(168);
+emit_16(234);
+emit_16(167);
+emit_16(234);
+emit_16(168);
+emit_16(235);
+emit_16(169);
+emit_16(235);
+emit_16(168);
+emit_16(235);
+emit_16(169);
+emit_16(236);
+emit_16(170);
+emit_16(236);
+emit_16(169);
+emit_16(236);
+emit_16(170);
+emit_16(237);
+emit_16(171);
+emit_16(237);
+emit_16(170);
+emit_16(237);
+emit_16(171);
+emit_16(238);
+emit_16(172);
+emit_16(238);
+emit_16(171);
+emit_16(238);
+emit_16(172);
+emit_16(239);
+emit_16(173);
+emit_16(239);
+emit_16(172);
+emit_16(239);
+emit_16(173);
+emit_16(240);
+emit_16(174);
+emit_16(240);
+emit_16(173);
+emit_16(240);
+emit_16(174);
+emit_16(241);
+emit_16(175);
+emit_16(241);
+emit_16(174);
+emit_16(241);
+emit_16(175);
+emit_16(242);
+emit_16(176);
+emit_16(242);
+emit_16(175);
+emit_16(242);
+emit_16(176);
+emit_16(243);
+emit_16(177);
+emit_16(243);
+emit_16(176);
+emit_16(243);
+emit_16(177);
+emit_16(244);
+emit_16(178);
+emit_16(244);
+emit_16(177);
+emit_16(244);
+emit_16(178);
+emit_16(245);
+emit_16(179);
+emit_16(245);
+emit_16(178);
+emit_16(245);
+emit_16(179);
+emit_16(246);
+emit_16(180);
+emit_16(246);
+emit_16(179);
+emit_16(246);
+emit_16(180);
+emit_16(247);
+emit_16(181);
+emit_16(247);
+emit_16(180);
+emit_16(247);
+emit_16(181);
+emit_16(248);
+emit_16(182);
+emit_16(248);
+emit_16(181);
+emit_16(248);
+emit_16(182);
+emit_16(249);
+emit_16(183);
+emit_16(249);
+emit_16(182);
+emit_16(249);
+emit_16(183);
+emit_16(250);
+emit_16(184);
+emit_16(250);
+emit_16(183);
+emit_16(250);
+emit_16(184);
+emit_16(251);
+emit_16(185);
+emit_16(251);
+emit_16(184);
+emit_16(251);
+emit_16(185);
+emit_16(252);
+emit_16(186);
+emit_16(252);
+emit_16(185);
+emit_16(252);
+emit_16(186);
+emit_16(253);
+emit_16(187);
+emit_16(253);
+emit_16(186);
+emit_16(253);
+emit_16(187);
+emit_16(254);
+emit_16(188);
+emit_16(254);
+emit_16(187);
+emit_16(254);
+emit_16(188);
+emit_16(255);
+emit_16(189);
+emit_16(255);
+emit_16(188);
+emit_16(255);
+emit_16(189);
+emit_16(256);
+emit_16(190);
+emit_16(256);
+emit_16(189);
+emit_16(256);
+emit_16(190);
+emit_16(257);
+emit_16(191);
+emit_16(257);
+emit_16(190);
+emit_16(257);
+emit_16(191);
+emit_16(258);
+emit_16(192);
+emit_16(258);
+emit_16(191);
+emit_16(258);
+emit_16(192);
+emit_16(259);
+emit_16(193);
+emit_16(259);
+emit_16(192);
+emit_16(259);
+emit_16(193);
+emit_16(260);
+emit_16(194);
+emit_16(260);
+emit_16(193);
+emit_16(260);
+emit_16(194);
+emit_16(261);
+emit_16(195);
+emit_16(261);
+emit_16(194);
+emit_16(261);
+emit_16(195);
+emit_16(262);
+emit_16(196);
+emit_16(262);
+emit_16(195);
+emit_16(262);
+emit_16(196);
+emit_16(263);
+emit_16(197);
+emit_16(263);
+emit_16(196);
+emit_16(264);
+emit_16(198);
+emit_16(265);
+emit_16(199);
+emit_16(265);
+emit_16(198);
+emit_16(265);
+emit_16(199);
+emit_16(266);
+emit_16(200);
+emit_16(266);
+emit_16(199);
+emit_16(266);
+emit_16(200);
+emit_16(267);
+emit_16(201);
+emit_16(267);
+emit_16(200);
+emit_16(267);
+emit_16(201);
+emit_16(268);
+emit_16(202);
+emit_16(268);
+emit_16(201);
+emit_16(268);
+emit_16(202);
+emit_16(269);
+emit_16(203);
+emit_16(269);
+emit_16(202);
+emit_16(269);
+emit_16(203);
+emit_16(270);
+emit_16(204);
+emit_16(270);
+emit_16(203);
+emit_16(270);
+emit_16(204);
+emit_16(271);
+emit_16(205);
+emit_16(271);
+emit_16(204);
+emit_16(271);
+emit_16(205);
+emit_16(272);
+emit_16(206);
+emit_16(272);
+emit_16(205);
+emit_16(272);
+emit_16(206);
+emit_16(273);
+emit_16(207);
+emit_16(273);
+emit_16(206);
+emit_16(273);
+emit_16(207);
+emit_16(274);
+emit_16(208);
+emit_16(274);
+emit_16(207);
+emit_16(274);
+emit_16(208);
+emit_16(275);
+emit_16(209);
+emit_16(275);
+emit_16(208);
+emit_16(275);
+emit_16(209);
+emit_16(276);
+emit_16(210);
+emit_16(276);
+emit_16(209);
+emit_16(276);
+emit_16(210);
+emit_16(277);
+emit_16(211);
+emit_16(277);
+emit_16(210);
+emit_16(277);
+emit_16(211);
+emit_16(278);
+emit_16(212);
+emit_16(278);
+emit_16(211);
+emit_16(278);
+emit_16(212);
+emit_16(279);
+emit_16(213);
+emit_16(279);
+emit_16(212);
+emit_16(279);
+emit_16(213);
+emit_16(280);
+emit_16(214);
+emit_16(280);
+emit_16(213);
+emit_16(280);
+emit_16(214);
+emit_16(281);
+emit_16(215);
+emit_16(281);
+emit_16(214);
+emit_16(281);
+emit_16(215);
+emit_16(282);
+emit_16(216);
+emit_16(282);
+emit_16(215);
+emit_16(282);
+emit_16(216);
+emit_16(283);
+emit_16(217);
+emit_16(283);
+emit_16(216);
+emit_16(283);
+emit_16(217);
+emit_16(284);
+emit_16(218);
+emit_16(284);
+emit_16(217);
+emit_16(284);
+emit_16(218);
+emit_16(285);
+emit_16(219);
+emit_16(285);
+emit_16(218);
+emit_16(285);
+emit_16(219);
+emit_16(286);
+emit_16(220);
+emit_16(286);
+emit_16(219);
+emit_16(286);
+emit_16(220);
+emit_16(287);
+emit_16(221);
+emit_16(287);
+emit_16(220);
+emit_16(287);
+emit_16(221);
+emit_16(288);
+emit_16(222);
+emit_16(288);
+emit_16(221);
+emit_16(288);
+emit_16(222);
+emit_16(289);
+emit_16(223);
+emit_16(289);
+emit_16(222);
+emit_16(289);
+emit_16(223);
+emit_16(290);
+emit_16(224);
+emit_16(290);
+emit_16(223);
+emit_16(290);
+emit_16(224);
+emit_16(291);
+emit_16(225);
+emit_16(291);
+emit_16(224);
+emit_16(291);
+emit_16(225);
+emit_16(292);
+emit_16(226);
+emit_16(292);
+emit_16(225);
+emit_16(292);
+emit_16(226);
+emit_16(293);
+emit_16(227);
+emit_16(293);
+emit_16(226);
+emit_16(293);
+emit_16(227);
+emit_16(294);
+emit_16(228);
+emit_16(294);
+emit_16(227);
+emit_16(294);
+emit_16(228);
+emit_16(295);
+emit_16(229);
+emit_16(295);
+emit_16(228);
+emit_16(295);
+emit_16(229);
+emit_16(296);
+emit_16(230);
+emit_16(296);
+emit_16(229);
+emit_16(296);
+emit_16(230);
+emit_16(297);
+emit_16(231);
+emit_16(297);
+emit_16(230);
+emit_16(297);
+emit_16(231);
+emit_16(298);
+emit_16(232);
+emit_16(298);
+emit_16(231);
+emit_16(298);
+emit_16(232);
+emit_16(299);
+emit_16(233);
+emit_16(299);
+emit_16(232);
+emit_16(299);
+emit_16(233);
+emit_16(300);
+emit_16(234);
+emit_16(300);
+emit_16(233);
+emit_16(300);
+emit_16(234);
+emit_16(301);
+emit_16(235);
+emit_16(301);
+emit_16(234);
+emit_16(301);
+emit_16(235);
+emit_16(302);
+emit_16(236);
+emit_16(302);
+emit_16(235);
+emit_16(302);
+emit_16(236);
+emit_16(303);
+emit_16(237);
+emit_16(303);
+emit_16(236);
+emit_16(303);
+emit_16(237);
+emit_16(304);
+emit_16(238);
+emit_16(304);
+emit_16(237);
+emit_16(304);
+emit_16(238);
+emit_16(305);
+emit_16(239);
+emit_16(305);
+emit_16(238);
+emit_16(305);
+emit_16(239);
+emit_16(306);
+emit_16(240);
+emit_16(306);
+emit_16(239);
+emit_16(306);
+emit_16(240);
+emit_16(307);
+emit_16(241);
+emit_16(307);
+emit_16(240);
+emit_16(307);
+emit_16(241);
+emit_16(308);
+emit_16(242);
+emit_16(308);
+emit_16(241);
+emit_16(308);
+emit_16(242);
+emit_16(309);
+emit_16(243);
+emit_16(309);
+emit_16(242);
+emit_16(309);
+emit_16(243);
+emit_16(310);
+emit_16(244);
+emit_16(310);
+emit_16(243);
+emit_16(310);
+emit_16(244);
+emit_16(311);
+emit_16(245);
+emit_16(311);
+emit_16(244);
+emit_16(311);
+emit_16(245);
+emit_16(312);
+emit_16(246);
+emit_16(312);
+emit_16(245);
+emit_16(312);
+emit_16(246);
+emit_16(313);
+emit_16(247);
+emit_16(313);
+emit_16(246);
+emit_16(313);
+emit_16(247);
+emit_16(314);
+emit_16(248);
+emit_16(314);
+emit_16(247);
+emit_16(314);
+emit_16(248);
+emit_16(315);
+emit_16(249);
+emit_16(315);
+emit_16(248);
+emit_16(315);
+emit_16(249);
+emit_16(316);
+emit_16(250);
+emit_16(316);
+emit_16(249);
+emit_16(316);
+emit_16(250);
+emit_16(317);
+emit_16(251);
+emit_16(317);
+emit_16(250);
+emit_16(317);
+emit_16(251);
+emit_16(318);
+emit_16(252);
+emit_16(318);
+emit_16(251);
+emit_16(318);
+emit_16(252);
+emit_16(319);
+emit_16(253);
+emit_16(319);
+emit_16(252);
+emit_16(319);
+emit_16(253);
+emit_16(320);
+emit_16(254);
+emit_16(320);
+emit_16(253);
+emit_16(320);
+emit_16(254);
+emit_16(321);
+emit_16(255);
+emit_16(321);
+emit_16(254);
+emit_16(321);
+emit_16(255);
+emit_16(322);
+emit_16(256);
+emit_16(322);
+emit_16(255);
+emit_16(322);
+emit_16(256);
+emit_16(323);
+emit_16(257);
+emit_16(323);
+emit_16(256);
+emit_16(323);
+emit_16(257);
+emit_16(324);
+emit_16(258);
+emit_16(324);
+emit_16(257);
+emit_16(324);
+emit_16(258);
+emit_16(325);
+emit_16(259);
+emit_16(325);
+emit_16(258);
+emit_16(325);
+emit_16(259);
+emit_16(326);
+emit_16(260);
+emit_16(326);
+emit_16(259);
+emit_16(326);
+emit_16(260);
+emit_16(327);
+emit_16(261);
+emit_16(327);
+emit_16(260);
+emit_16(327);
+emit_16(261);
+emit_16(328);
+emit_16(262);
+emit_16(328);
+emit_16(261);
+emit_16(328);
+emit_16(262);
+emit_16(329);
+emit_16(263);
+emit_16(329);
+emit_16(262);
+emit_16(330);
+emit_16(264);
+emit_16(331);
+emit_16(265);
+emit_16(331);
+emit_16(264);
+emit_16(331);
+emit_16(265);
+emit_16(332);
+emit_16(266);
+emit_16(332);
+emit_16(265);
+emit_16(332);
+emit_16(266);
+emit_16(333);
+emit_16(267);
+emit_16(333);
+emit_16(266);
+emit_16(333);
+emit_16(267);
+emit_16(334);
+emit_16(268);
+emit_16(334);
+emit_16(267);
+emit_16(334);
+emit_16(268);
+emit_16(335);
+emit_16(269);
+emit_16(335);
+emit_16(268);
+emit_16(335);
+emit_16(269);
+emit_16(336);
+emit_16(270);
+emit_16(336);
+emit_16(269);
+emit_16(336);
+emit_16(270);
+emit_16(337);
+emit_16(271);
+emit_16(337);
+emit_16(270);
+emit_16(337);
+emit_16(271);
+emit_16(338);
+emit_16(272);
+emit_16(338);
+emit_16(271);
+emit_16(338);
+emit_16(272);
+emit_16(339);
+emit_16(273);
+emit_16(339);
+emit_16(272);
+emit_16(339);
+emit_16(273);
+emit_16(340);
+emit_16(274);
+emit_16(340);
+emit_16(273);
+emit_16(340);
+emit_16(274);
+emit_16(341);
+emit_16(275);
+emit_16(341);
+emit_16(274);
+emit_16(341);
+emit_16(275);
+emit_16(342);
+emit_16(276);
+emit_16(342);
+emit_16(275);
+emit_16(342);
+emit_16(276);
+emit_16(343);
+emit_16(277);
+emit_16(343);
+emit_16(276);
+emit_16(343);
+emit_16(277);
+emit_16(344);
+emit_16(278);
+emit_16(344);
+emit_16(277);
+emit_16(344);
+emit_16(278);
+emit_16(345);
+emit_16(279);
+emit_16(345);
+emit_16(278);
+emit_16(345);
+emit_16(279);
+emit_16(346);
+emit_16(280);
+emit_16(346);
+emit_16(279);
+emit_16(346);
+emit_16(280);
+emit_16(347);
+emit_16(281);
+emit_16(347);
+emit_16(280);
+emit_16(347);
+emit_16(281);
+emit_16(348);
+emit_16(282);
+emit_16(348);
+emit_16(281);
+emit_16(348);
+emit_16(282);
+emit_16(349);
+emit_16(283);
+emit_16(349);
+emit_16(282);
+emit_16(349);
+emit_16(283);
+emit_16(350);
+emit_16(284);
+emit_16(350);
+emit_16(283);
+emit_16(350);
+emit_16(284);
+emit_16(351);
+emit_16(285);
+emit_16(351);
+emit_16(284);
+emit_16(351);
+emit_16(285);
+emit_16(352);
+emit_16(286);
+emit_16(352);
+emit_16(285);
+emit_16(352);
+emit_16(286);
+emit_16(353);
+emit_16(287);
+emit_16(353);
+emit_16(286);
+emit_16(353);
+emit_16(287);
+emit_16(354);
+emit_16(288);
+emit_16(354);
+emit_16(287);
+emit_16(354);
+emit_16(288);
+emit_16(355);
+emit_16(289);
+emit_16(355);
+emit_16(288);
+emit_16(355);
+emit_16(289);
+emit_16(356);
+emit_16(290);
+emit_16(356);
+emit_16(289);
+emit_16(356);
+emit_16(290);
+emit_16(357);
+emit_16(291);
+emit_16(357);
+emit_16(290);
+emit_16(357);
+emit_16(291);
+emit_16(358);
+emit_16(292);
+emit_16(358);
+emit_16(291);
+emit_16(358);
+emit_16(292);
+emit_16(359);
+emit_16(293);
+emit_16(359);
+emit_16(292);
+emit_16(359);
+emit_16(293);
+emit_16(360);
+emit_16(294);
+emit_16(360);
+emit_16(293);
+emit_16(360);
+emit_16(294);
+emit_16(361);
+emit_16(295);
+emit_16(361);
+emit_16(294);
+emit_16(361);
+emit_16(295);
+emit_16(362);
+emit_16(296);
+emit_16(362);
+emit_16(295);
+emit_16(362);
+emit_16(296);
+emit_16(363);
+emit_16(297);
+emit_16(363);
+emit_16(296);
+emit_16(363);
+emit_16(297);
+emit_16(364);
+emit_16(298);
+emit_16(364);
+emit_16(297);
+emit_16(364);
+emit_16(298);
+emit_16(365);
+emit_16(299);
+emit_16(365);
+emit_16(298);
+emit_16(365);
+emit_16(299);
+emit_16(366);
+emit_16(300);
+emit_16(366);
+emit_16(299);
+emit_16(366);
+emit_16(300);
+emit_16(367);
+emit_16(301);
+emit_16(367);
+emit_16(300);
+emit_16(367);
+emit_16(301);
+emit_16(368);
+emit_16(302);
+emit_16(368);
+emit_16(301);
+emit_16(368);
+emit_16(302);
+emit_16(369);
+emit_16(303);
+emit_16(369);
+emit_16(302);
+emit_16(369);
+emit_16(303);
+emit_16(370);
+emit_16(304);
+emit_16(370);
+emit_16(303);
+emit_16(370);
+emit_16(304);
+emit_16(371);
+emit_16(305);
+emit_16(371);
+emit_16(304);
+emit_16(371);
+emit_16(305);
+emit_16(372);
+emit_16(306);
+emit_16(372);
+emit_16(305);
+emit_16(372);
+emit_16(306);
+emit_16(373);
+emit_16(307);
+emit_16(373);
+emit_16(306);
+emit_16(373);
+emit_16(307);
+emit_16(374);
+emit_16(308);
+emit_16(374);
+emit_16(307);
+emit_16(374);
+emit_16(308);
+emit_16(375);
+emit_16(309);
+emit_16(375);
+emit_16(308);
+emit_16(375);
+emit_16(309);
+emit_16(376);
+emit_16(310);
+emit_16(376);
+emit_16(309);
+emit_16(376);
+emit_16(310);
+emit_16(377);
+emit_16(311);
+emit_16(377);
+emit_16(310);
+emit_16(377);
+emit_16(311);
+emit_16(378);
+emit_16(312);
+emit_16(378);
+emit_16(311);
+emit_16(378);
+emit_16(312);
+emit_16(379);
+emit_16(313);
+emit_16(379);
+emit_16(312);
+emit_16(379);
+emit_16(313);
+emit_16(380);
+emit_16(314);
+emit_16(380);
+emit_16(313);
+emit_16(380);
+emit_16(314);
+emit_16(381);
+emit_16(315);
+emit_16(381);
+emit_16(314);
+emit_16(381);
+emit_16(315);
+emit_16(382);
+emit_16(316);
+emit_16(382);
+emit_16(315);
+emit_16(382);
+emit_16(316);
+emit_16(383);
+emit_16(317);
+emit_16(383);
+emit_16(316);
+emit_16(383);
+emit_16(317);
+emit_16(384);
+emit_16(318);
+emit_16(384);
+emit_16(317);
+emit_16(384);
+emit_16(318);
+emit_16(385);
+emit_16(319);
+emit_16(385);
+emit_16(318);
+emit_16(385);
+emit_16(319);
+emit_16(386);
+emit_16(320);
+emit_16(386);
+emit_16(319);
+emit_16(386);
+emit_16(320);
+emit_16(387);
+emit_16(321);
+emit_16(387);
+emit_16(320);
+emit_16(387);
+emit_16(321);
+emit_16(388);
+emit_16(322);
+emit_16(388);
+emit_16(321);
+emit_16(388);
+emit_16(322);
+emit_16(389);
+emit_16(323);
+emit_16(389);
+emit_16(322);
+emit_16(389);
+emit_16(323);
+emit_16(390);
+emit_16(324);
+emit_16(390);
+emit_16(323);
+emit_16(390);
+emit_16(324);
+emit_16(391);
+emit_16(325);
+emit_16(391);
+emit_16(324);
+emit_16(391);
+emit_16(325);
+emit_16(392);
+emit_16(326);
+emit_16(392);
+emit_16(325);
+emit_16(392);
+emit_16(326);
+emit_16(393);
+emit_16(327);
+emit_16(393);
+emit_16(326);
+emit_16(393);
+emit_16(327);
+emit_16(394);
+emit_16(328);
+emit_16(394);
+emit_16(327);
+emit_16(394);
+emit_16(328);
+emit_16(395);
+emit_16(329);
+emit_16(395);
+emit_16(328);
+emit_16(396);
+emit_16(330);
+emit_16(397);
+emit_16(331);
+emit_16(397);
+emit_16(330);
+emit_16(397);
+emit_16(331);
+emit_16(398);
+emit_16(332);
+emit_16(398);
+emit_16(331);
+emit_16(398);
+emit_16(332);
+emit_16(399);
+emit_16(333);
+emit_16(399);
+emit_16(332);
+emit_16(399);
+emit_16(333);
+emit_16(400);
+emit_16(334);
+emit_16(400);
+emit_16(333);
+emit_16(400);
+emit_16(334);
+emit_16(401);
+emit_16(335);
+emit_16(401);
+emit_16(334);
+emit_16(401);
+emit_16(335);
+emit_16(402);
+emit_16(336);
+emit_16(402);
+emit_16(335);
+emit_16(402);
+emit_16(336);
+emit_16(403);
+emit_16(337);
+emit_16(403);
+emit_16(336);
+emit_16(403);
+emit_16(337);
+emit_16(404);
+emit_16(338);
+emit_16(404);
+emit_16(337);
+emit_16(404);
+emit_16(338);
+emit_16(405);
+emit_16(339);
+emit_16(405);
+emit_16(338);
+emit_16(405);
+emit_16(339);
+emit_16(406);
+emit_16(340);
+emit_16(406);
+emit_16(339);
+emit_16(406);
+emit_16(340);
+emit_16(407);
+emit_16(341);
+emit_16(407);
+emit_16(340);
+emit_16(407);
+emit_16(341);
+emit_16(408);
+emit_16(342);
+emit_16(408);
+emit_16(341);
+emit_16(408);
+emit_16(342);
+emit_16(409);
+emit_16(343);
+emit_16(409);
+emit_16(342);
+emit_16(409);
+emit_16(343);
+emit_16(410);
+emit_16(344);
+emit_16(410);
+emit_16(343);
+emit_16(410);
+emit_16(344);
+emit_16(411);
+emit_16(345);
+emit_16(411);
+emit_16(344);
+emit_16(411);
+emit_16(345);
+emit_16(412);
+emit_16(346);
+emit_16(412);
+emit_16(345);
+emit_16(412);
+emit_16(346);
+emit_16(413);
+emit_16(347);
+emit_16(413);
+emit_16(346);
+emit_16(413);
+emit_16(347);
+emit_16(414);
+emit_16(348);
+emit_16(414);
+emit_16(347);
+emit_16(414);
+emit_16(348);
+emit_16(415);
+emit_16(349);
+emit_16(415);
+emit_16(348);
+emit_16(415);
+emit_16(349);
+emit_16(416);
+emit_16(350);
+emit_16(416);
+emit_16(349);
+emit_16(416);
+emit_16(350);
+emit_16(417);
+emit_16(351);
+emit_16(417);
+emit_16(350);
+emit_16(417);
+emit_16(351);
+emit_16(418);
+emit_16(352);
+emit_16(418);
+emit_16(351);
+emit_16(418);
+emit_16(352);
+emit_16(419);
+emit_16(353);
+emit_16(419);
+emit_16(352);
+emit_16(419);
+emit_16(353);
+emit_16(420);
+emit_16(354);
+emit_16(420);
+emit_16(353);
+emit_16(420);
+emit_16(354);
+emit_16(421);
+emit_16(355);
+emit_16(421);
+emit_16(354);
+emit_16(421);
+emit_16(355);
+emit_16(422);
+emit_16(356);
+emit_16(422);
+emit_16(355);
+emit_16(422);
+emit_16(356);
+emit_16(423);
+emit_16(357);
+emit_16(423);
+emit_16(356);
+emit_16(423);
+emit_16(357);
+emit_16(424);
+emit_16(358);
+emit_16(424);
+emit_16(357);
+emit_16(424);
+emit_16(358);
+emit_16(425);
+emit_16(359);
+emit_16(425);
+emit_16(358);
+emit_16(425);
+emit_16(359);
+emit_16(426);
+emit_16(360);
+emit_16(426);
+emit_16(359);
+emit_16(426);
+emit_16(360);
+emit_16(427);
+emit_16(361);
+emit_16(427);
+emit_16(360);
+emit_16(427);
+emit_16(361);
+emit_16(428);
+emit_16(362);
+emit_16(428);
+emit_16(361);
+emit_16(428);
+emit_16(362);
+emit_16(429);
+emit_16(363);
+emit_16(429);
+emit_16(362);
+emit_16(429);
+emit_16(363);
+emit_16(430);
+emit_16(364);
+emit_16(430);
+emit_16(363);
+emit_16(430);
+emit_16(364);
+emit_16(431);
+emit_16(365);
+emit_16(431);
+emit_16(364);
+emit_16(431);
+emit_16(365);
+emit_16(432);
+emit_16(366);
+emit_16(432);
+emit_16(365);
+emit_16(432);
+emit_16(366);
+emit_16(433);
+emit_16(367);
+emit_16(433);
+emit_16(366);
+emit_16(433);
+emit_16(367);
+emit_16(434);
+emit_16(368);
+emit_16(434);
+emit_16(367);
+emit_16(434);
+emit_16(368);
+emit_16(435);
+emit_16(369);
+emit_16(435);
+emit_16(368);
+emit_16(435);
+emit_16(369);
+emit_16(436);
+emit_16(370);
+emit_16(436);
+emit_16(369);
+emit_16(436);
+emit_16(370);
+emit_16(437);
+emit_16(371);
+emit_16(437);
+emit_16(370);
+emit_16(437);
+emit_16(371);
+emit_16(438);
+emit_16(372);
+emit_16(438);
+emit_16(371);
+emit_16(438);
+emit_16(372);
+emit_16(439);
+emit_16(373);
+emit_16(439);
+emit_16(372);
+emit_16(439);
+emit_16(373);
+emit_16(440);
+emit_16(374);
+emit_16(440);
+emit_16(373);
+emit_16(440);
+emit_16(374);
+emit_16(441);
+emit_16(375);
+emit_16(441);
+emit_16(374);
+emit_16(441);
+emit_16(375);
+emit_16(442);
+emit_16(376);
+emit_16(442);
+emit_16(375);
+emit_16(442);
+emit_16(376);
+emit_16(443);
+emit_16(377);
+emit_16(443);
+emit_16(376);
+emit_16(443);
+emit_16(377);
+emit_16(444);
+emit_16(378);
+emit_16(444);
+emit_16(377);
+emit_16(444);
+emit_16(378);
+emit_16(445);
+emit_16(379);
+emit_16(445);
+emit_16(378);
+emit_16(445);
+emit_16(379);
+emit_16(446);
+emit_16(380);
+emit_16(446);
+emit_16(379);
+emit_16(446);
+emit_16(380);
+emit_16(447);
+emit_16(381);
+emit_16(447);
+emit_16(380);
+emit_16(447);
+emit_16(381);
+emit_16(448);
+emit_16(382);
+emit_16(448);
+emit_16(381);
+emit_16(448);
+emit_16(382);
+emit_16(449);
+emit_16(383);
+emit_16(449);
+emit_16(382);
+emit_16(449);
+emit_16(383);
+emit_16(450);
+emit_16(384);
+emit_16(450);
+emit_16(383);
+emit_16(450);
+emit_16(384);
+emit_16(451);
+emit_16(385);
+emit_16(451);
+emit_16(384);
+emit_16(451);
+emit_16(385);
+emit_16(452);
+emit_16(386);
+emit_16(452);
+emit_16(385);
+emit_16(452);
+emit_16(386);
+emit_16(453);
+emit_16(387);
+emit_16(453);
+emit_16(386);
+emit_16(453);
+emit_16(387);
+emit_16(454);
+emit_16(388);
+emit_16(454);
+emit_16(387);
+emit_16(454);
+emit_16(388);
+emit_16(455);
+emit_16(389);
+emit_16(455);
+emit_16(388);
+emit_16(455);
+emit_16(389);
+emit_16(456);
+emit_16(390);
+emit_16(456);
+emit_16(389);
+emit_16(456);
+emit_16(390);
+emit_16(457);
+emit_16(391);
+emit_16(457);
+emit_16(390);
+emit_16(457);
+emit_16(391);
+emit_16(458);
+emit_16(392);
+emit_16(458);
+emit_16(391);
+emit_16(458);
+emit_16(392);
+emit_16(459);
+emit_16(393);
+emit_16(459);
+emit_16(392);
+emit_16(459);
+emit_16(393);
+emit_16(460);
+emit_16(394);
+emit_16(460);
+emit_16(393);
+emit_16(460);
+emit_16(394);
+emit_16(461);
+emit_16(395);
+emit_16(461);
+emit_16(394);
+emit_16(462);
+emit_16(396);
+emit_16(463);
+emit_16(397);
+emit_16(463);
+emit_16(396);
+emit_16(463);
+emit_16(397);
+emit_16(464);
+emit_16(398);
+emit_16(464);
+emit_16(397);
+emit_16(464);
+emit_16(398);
+emit_16(465);
+emit_16(399);
+emit_16(465);
+emit_16(398);
+emit_16(465);
+emit_16(399);
+emit_16(466);
+emit_16(400);
+emit_16(466);
+emit_16(399);
+emit_16(466);
+emit_16(400);
+emit_16(467);
+emit_16(401);
+emit_16(467);
+emit_16(400);
+emit_16(467);
+emit_16(401);
+emit_16(468);
+emit_16(402);
+emit_16(468);
+emit_16(401);
+emit_16(468);
+emit_16(402);
+emit_16(469);
+emit_16(403);
+emit_16(469);
+emit_16(402);
+emit_16(469);
+emit_16(403);
+emit_16(470);
+emit_16(404);
+emit_16(470);
+emit_16(403);
+emit_16(470);
+emit_16(404);
+emit_16(471);
+emit_16(405);
+emit_16(471);
+emit_16(404);
+emit_16(471);
+emit_16(405);
+emit_16(472);
+emit_16(406);
+emit_16(472);
+emit_16(405);
+emit_16(472);
+emit_16(406);
+emit_16(473);
+emit_16(407);
+emit_16(473);
+emit_16(406);
+emit_16(473);
+emit_16(407);
+emit_16(474);
+emit_16(408);
+emit_16(474);
+emit_16(407);
+emit_16(474);
+emit_16(408);
+emit_16(475);
+emit_16(409);
+emit_16(475);
+emit_16(408);
+emit_16(475);
+emit_16(409);
+emit_16(476);
+emit_16(410);
+emit_16(476);
+emit_16(409);
+emit_16(476);
+emit_16(410);
+emit_16(477);
+emit_16(411);
+emit_16(477);
+emit_16(410);
+emit_16(477);
+emit_16(411);
+emit_16(478);
+emit_16(412);
+emit_16(478);
+emit_16(411);
+emit_16(478);
+emit_16(412);
+emit_16(479);
+emit_16(413);
+emit_16(479);
+emit_16(412);
+emit_16(479);
+emit_16(413);
+emit_16(480);
+emit_16(414);
+emit_16(480);
+emit_16(413);
+emit_16(480);
+emit_16(414);
+emit_16(481);
+emit_16(415);
+emit_16(481);
+emit_16(414);
+emit_16(481);
+emit_16(415);
+emit_16(482);
+emit_16(416);
+emit_16(482);
+emit_16(415);
+emit_16(482);
+emit_16(416);
+emit_16(483);
+emit_16(417);
+emit_16(483);
+emit_16(416);
+emit_16(483);
+emit_16(417);
+emit_16(484);
+emit_16(418);
+emit_16(484);
+emit_16(417);
+emit_16(484);
+emit_16(418);
+emit_16(485);
+emit_16(419);
+emit_16(485);
+emit_16(418);
+emit_16(485);
+emit_16(419);
+emit_16(486);
+emit_16(420);
+emit_16(486);
+emit_16(419);
+emit_16(486);
+emit_16(420);
+emit_16(487);
+emit_16(421);
+emit_16(487);
+emit_16(420);
+emit_16(487);
+emit_16(421);
+emit_16(488);
+emit_16(422);
+emit_16(488);
+emit_16(421);
+emit_16(488);
+emit_16(422);
+emit_16(489);
+emit_16(423);
+emit_16(489);
+emit_16(422);
+emit_16(489);
+emit_16(423);
+emit_16(490);
+emit_16(424);
+emit_16(490);
+emit_16(423);
+emit_16(490);
+emit_16(424);
+emit_16(491);
+emit_16(425);
+emit_16(491);
+emit_16(424);
+emit_16(491);
+emit_16(425);
+emit_16(492);
+emit_16(426);
+emit_16(492);
+emit_16(425);
+emit_16(492);
+emit_16(426);
+emit_16(493);
+emit_16(427);
+emit_16(493);
+emit_16(426);
+emit_16(493);
+emit_16(427);
+emit_16(494);
+emit_16(428);
+emit_16(494);
+emit_16(427);
+emit_16(494);
+emit_16(428);
+emit_16(495);
+emit_16(429);
+emit_16(495);
+emit_16(428);
+emit_16(495);
+emit_16(429);
+emit_16(496);
+emit_16(430);
+emit_16(496);
+emit_16(429);
+emit_16(496);
+emit_16(430);
+emit_16(497);
+emit_16(431);
+emit_16(497);
+emit_16(430);
+emit_16(497);
+emit_16(431);
+emit_16(498);
+emit_16(432);
+emit_16(498);
+emit_16(431);
+emit_16(498);
+emit_16(432);
+emit_16(499);
+emit_16(433);
+emit_16(499);
+emit_16(432);
+emit_16(499);
+emit_16(433);
+emit_16(500);
+emit_16(434);
+emit_16(500);
+emit_16(433);
+emit_16(500);
+emit_16(434);
+emit_16(501);
+emit_16(435);
+emit_16(501);
+emit_16(434);
+emit_16(501);
+emit_16(435);
+emit_16(502);
+emit_16(436);
+emit_16(502);
+emit_16(435);
+emit_16(502);
+emit_16(436);
+emit_16(503);
+emit_16(437);
+emit_16(503);
+emit_16(436);
+emit_16(503);
+emit_16(437);
+emit_16(504);
+emit_16(438);
+emit_16(504);
+emit_16(437);
+emit_16(504);
+emit_16(438);
+emit_16(505);
+emit_16(439);
+emit_16(505);
+emit_16(438);
+emit_16(505);
+emit_16(439);
+emit_16(506);
+emit_16(440);
+emit_16(506);
+emit_16(439);
+emit_16(506);
+emit_16(440);
+emit_16(507);
+emit_16(441);
+emit_16(507);
+emit_16(440);
+emit_16(507);
+emit_16(441);
+emit_16(508);
+emit_16(442);
+emit_16(508);
+emit_16(441);
+emit_16(508);
+emit_16(442);
+emit_16(509);
+emit_16(443);
+emit_16(509);
+emit_16(442);
+emit_16(509);
+emit_16(443);
+emit_16(510);
+emit_16(444);
+emit_16(510);
+emit_16(443);
+emit_16(510);
+emit_16(444);
+emit_16(511);
+emit_16(445);
+emit_16(511);
+emit_16(444);
+emit_16(511);
+emit_16(445);
+emit_16(512);
+emit_16(446);
+emit_16(512);
+emit_16(445);
+emit_16(512);
+emit_16(446);
+emit_16(513);
+emit_16(447);
+emit_16(513);
+emit_16(446);
+emit_16(513);
+emit_16(447);
+emit_16(514);
+emit_16(448);
+emit_16(514);
+emit_16(447);
+emit_16(514);
+emit_16(448);
+emit_16(515);
+emit_16(449);
+emit_16(515);
+emit_16(448);
+emit_16(515);
+emit_16(449);
+emit_16(516);
+emit_16(450);
+emit_16(516);
+emit_16(449);
+emit_16(516);
+emit_16(450);
+emit_16(517);
+emit_16(451);
+emit_16(517);
+emit_16(450);
+emit_16(517);
+emit_16(451);
+emit_16(518);
+emit_16(452);
+emit_16(518);
+emit_16(451);
+emit_16(518);
+emit_16(452);
+emit_16(519);
+emit_16(453);
+emit_16(519);
+emit_16(452);
+emit_16(519);
+emit_16(453);
+emit_16(520);
+emit_16(454);
+emit_16(520);
+emit_16(453);
+emit_16(520);
+emit_16(454);
+emit_16(521);
+emit_16(455);
+emit_16(521);
+emit_16(454);
+emit_16(521);
+emit_16(455);
+emit_16(522);
+emit_16(456);
+emit_16(522);
+emit_16(455);
+emit_16(522);
+emit_16(456);
+emit_16(523);
+emit_16(457);
+emit_16(523);
+emit_16(456);
+emit_16(523);
+emit_16(457);
+emit_16(524);
+emit_16(458);
+emit_16(524);
+emit_16(457);
+emit_16(524);
+emit_16(458);
+emit_16(525);
+emit_16(459);
+emit_16(525);
+emit_16(458);
+emit_16(525);
+emit_16(459);
+emit_16(526);
+emit_16(460);
+emit_16(526);
+emit_16(459);
+emit_16(526);
+emit_16(460);
+emit_16(527);
+emit_16(461);
+emit_16(527);
+emit_16(460);
+emit_16(528);
+emit_16(462);
+emit_16(529);
+emit_16(463);
+emit_16(529);
+emit_16(462);
+emit_16(529);
+emit_16(463);
+emit_16(530);
+emit_16(464);
+emit_16(530);
+emit_16(463);
+emit_16(530);
+emit_16(464);
+emit_16(531);
+emit_16(465);
+emit_16(531);
+emit_16(464);
+emit_16(531);
+emit_16(465);
+emit_16(532);
+emit_16(466);
+emit_16(532);
+emit_16(465);
+emit_16(532);
+emit_16(466);
+emit_16(533);
+emit_16(467);
+emit_16(533);
+emit_16(466);
+emit_16(533);
+emit_16(467);
+emit_16(534);
+emit_16(468);
+emit_16(534);
+emit_16(467);
+emit_16(534);
+emit_16(468);
+emit_16(535);
+emit_16(469);
+emit_16(535);
+emit_16(468);
+emit_16(535);
+emit_16(469);
+emit_16(536);
+emit_16(470);
+emit_16(536);
+emit_16(469);
+emit_16(536);
+emit_16(470);
+emit_16(537);
+emit_16(471);
+emit_16(537);
+emit_16(470);
+emit_16(537);
+emit_16(471);
+emit_16(538);
+emit_16(472);
+emit_16(538);
+emit_16(471);
+emit_16(538);
+emit_16(472);
+emit_16(539);
+emit_16(473);
+emit_16(539);
+emit_16(472);
+emit_16(539);
+emit_16(473);
+emit_16(540);
+emit_16(474);
+emit_16(540);
+emit_16(473);
+emit_16(540);
+emit_16(474);
+emit_16(541);
+emit_16(475);
+emit_16(541);
+emit_16(474);
+emit_16(541);
+emit_16(475);
+emit_16(542);
+emit_16(476);
+emit_16(542);
+emit_16(475);
+emit_16(542);
+emit_16(476);
+emit_16(543);
+emit_16(477);
+emit_16(543);
+emit_16(476);
+emit_16(543);
+emit_16(477);
+emit_16(544);
+emit_16(478);
+emit_16(544);
+emit_16(477);
+emit_16(544);
+emit_16(478);
+emit_16(545);
+emit_16(479);
+emit_16(545);
+emit_16(478);
+emit_16(545);
+emit_16(479);
+emit_16(546);
+emit_16(480);
+emit_16(546);
+emit_16(479);
+emit_16(546);
+emit_16(480);
+emit_16(547);
+emit_16(481);
+emit_16(547);
+emit_16(480);
+emit_16(547);
+emit_16(481);
+emit_16(548);
+emit_16(482);
+emit_16(548);
+emit_16(481);
+emit_16(548);
+emit_16(482);
+emit_16(549);
+emit_16(483);
+emit_16(549);
+emit_16(482);
+emit_16(549);
+emit_16(483);
+emit_16(550);
+emit_16(484);
+emit_16(550);
+emit_16(483);
+emit_16(550);
+emit_16(484);
+emit_16(551);
+emit_16(485);
+emit_16(551);
+emit_16(484);
+emit_16(551);
+emit_16(485);
+emit_16(552);
+emit_16(486);
+emit_16(552);
+emit_16(485);
+emit_16(552);
+emit_16(486);
+emit_16(553);
+emit_16(487);
+emit_16(553);
+emit_16(486);
+emit_16(553);
+emit_16(487);
+emit_16(554);
+emit_16(488);
+emit_16(554);
+emit_16(487);
+emit_16(554);
+emit_16(488);
+emit_16(555);
+emit_16(489);
+emit_16(555);
+emit_16(488);
+emit_16(555);
+emit_16(489);
+emit_16(556);
+emit_16(490);
+emit_16(556);
+emit_16(489);
+emit_16(556);
+emit_16(490);
+emit_16(557);
+emit_16(491);
+emit_16(557);
+emit_16(490);
+emit_16(557);
+emit_16(491);
+emit_16(558);
+emit_16(492);
+emit_16(558);
+emit_16(491);
+emit_16(558);
+emit_16(492);
+emit_16(559);
+emit_16(493);
+emit_16(559);
+emit_16(492);
+emit_16(559);
+emit_16(493);
+emit_16(560);
+emit_16(494);
+emit_16(560);
+emit_16(493);
+emit_16(560);
+emit_16(494);
+emit_16(561);
+emit_16(495);
+emit_16(561);
+emit_16(494);
+emit_16(561);
+emit_16(495);
+emit_16(562);
+emit_16(496);
+emit_16(562);
+emit_16(495);
+emit_16(562);
+emit_16(496);
+emit_16(563);
+emit_16(497);
+emit_16(563);
+emit_16(496);
+emit_16(563);
+emit_16(497);
+emit_16(564);
+emit_16(498);
+emit_16(564);
+emit_16(497);
+emit_16(564);
+emit_16(498);
+emit_16(565);
+emit_16(499);
+emit_16(565);
+emit_16(498);
+emit_16(565);
+emit_16(499);
+emit_16(566);
+emit_16(500);
+emit_16(566);
+emit_16(499);
+emit_16(566);
+emit_16(500);
+emit_16(567);
+emit_16(501);
+emit_16(567);
+emit_16(500);
+emit_16(567);
+emit_16(501);
+emit_16(568);
+emit_16(502);
+emit_16(568);
+emit_16(501);
+emit_16(568);
+emit_16(502);
+emit_16(569);
+emit_16(503);
+emit_16(569);
+emit_16(502);
+emit_16(569);
+emit_16(503);
+emit_16(570);
+emit_16(504);
+emit_16(570);
+emit_16(503);
+emit_16(570);
+emit_16(504);
+emit_16(571);
+emit_16(505);
+emit_16(571);
+emit_16(504);
+emit_16(571);
+emit_16(505);
+emit_16(572);
+emit_16(506);
+emit_16(572);
+emit_16(505);
+emit_16(572);
+emit_16(506);
+emit_16(573);
+emit_16(507);
+emit_16(573);
+emit_16(506);
+emit_16(573);
+emit_16(507);
+emit_16(574);
+emit_16(508);
+emit_16(574);
+emit_16(507);
+emit_16(574);
+emit_16(508);
+emit_16(575);
+emit_16(509);
+emit_16(575);
+emit_16(508);
+emit_16(575);
+emit_16(509);
+emit_16(576);
+emit_16(510);
+emit_16(576);
+emit_16(509);
+emit_16(576);
+emit_16(510);
+emit_16(577);
+emit_16(511);
+emit_16(577);
+emit_16(510);
+emit_16(577);
+emit_16(511);
+emit_16(578);
+emit_16(512);
+emit_16(578);
+emit_16(511);
+emit_16(578);
+emit_16(512);
+emit_16(579);
+emit_16(513);
+emit_16(579);
+emit_16(512);
+emit_16(579);
+emit_16(513);
+emit_16(580);
+emit_16(514);
+emit_16(580);
+emit_16(513);
+emit_16(580);
+emit_16(514);
+emit_16(581);
+emit_16(515);
+emit_16(581);
+emit_16(514);
+emit_16(581);
+emit_16(515);
+emit_16(582);
+emit_16(516);
+emit_16(582);
+emit_16(515);
+emit_16(582);
+emit_16(516);
+emit_16(583);
+emit_16(517);
+emit_16(583);
+emit_16(516);
+emit_16(583);
+emit_16(517);
+emit_16(584);
+emit_16(518);
+emit_16(584);
+emit_16(517);
+emit_16(584);
+emit_16(518);
+emit_16(585);
+emit_16(519);
+emit_16(585);
+emit_16(518);
+emit_16(585);
+emit_16(519);
+emit_16(586);
+emit_16(520);
+emit_16(586);
+emit_16(519);
+emit_16(586);
+emit_16(520);
+emit_16(587);
+emit_16(521);
+emit_16(587);
+emit_16(520);
+emit_16(587);
+emit_16(521);
+emit_16(588);
+emit_16(522);
+emit_16(588);
+emit_16(521);
+emit_16(588);
+emit_16(522);
+emit_16(589);
+emit_16(523);
+emit_16(589);
+emit_16(522);
+emit_16(589);
+emit_16(523);
+emit_16(590);
+emit_16(524);
+emit_16(590);
+emit_16(523);
+emit_16(590);
+emit_16(524);
+emit_16(591);
+emit_16(525);
+emit_16(591);
+emit_16(524);
+emit_16(591);
+emit_16(525);
+emit_16(592);
+emit_16(526);
+emit_16(592);
+emit_16(525);
+emit_16(592);
+emit_16(526);
+emit_16(593);
+emit_16(527);
+emit_16(593);
+emit_16(526);
+emit_16(594);
+emit_16(528);
+emit_16(595);
+emit_16(529);
+emit_16(595);
+emit_16(528);
+emit_16(595);
+emit_16(529);
+emit_16(596);
+emit_16(530);
+emit_16(596);
+emit_16(529);
+emit_16(596);
+emit_16(530);
+emit_16(597);
+emit_16(531);
+emit_16(597);
+emit_16(530);
+emit_16(597);
+emit_16(531);
+emit_16(598);
+emit_16(532);
+emit_16(598);
+emit_16(531);
+emit_16(598);
+emit_16(532);
+emit_16(599);
+emit_16(533);
+emit_16(599);
+emit_16(532);
+emit_16(599);
+emit_16(533);
+emit_16(600);
+emit_16(534);
+emit_16(600);
+emit_16(533);
+emit_16(600);
+emit_16(534);
+emit_16(601);
+emit_16(535);
+emit_16(601);
+emit_16(534);
+emit_16(601);
+emit_16(535);
+emit_16(602);
+emit_16(536);
+emit_16(602);
+emit_16(535);
+emit_16(602);
+emit_16(536);
+emit_16(603);
+emit_16(537);
+emit_16(603);
+emit_16(536);
+emit_16(603);
+emit_16(537);
+emit_16(604);
+emit_16(538);
+emit_16(604);
+emit_16(537);
+emit_16(604);
+emit_16(538);
+emit_16(605);
+emit_16(539);
+emit_16(605);
+emit_16(538);
+emit_16(605);
+emit_16(539);
+emit_16(606);
+emit_16(540);
+emit_16(606);
+emit_16(539);
+emit_16(606);
+emit_16(540);
+emit_16(607);
+emit_16(541);
+emit_16(607);
+emit_16(540);
+emit_16(607);
+emit_16(541);
+emit_16(608);
+emit_16(542);
+emit_16(608);
+emit_16(541);
+emit_16(608);
+emit_16(542);
+emit_16(609);
+emit_16(543);
+emit_16(609);
+emit_16(542);
+emit_16(609);
+emit_16(543);
+emit_16(610);
+emit_16(544);
+emit_16(610);
+emit_16(543);
+emit_16(610);
+emit_16(544);
+emit_16(611);
+emit_16(545);
+emit_16(611);
+emit_16(544);
+emit_16(611);
+emit_16(545);
+emit_16(612);
+emit_16(546);
+emit_16(612);
+emit_16(545);
+emit_16(612);
+emit_16(546);
+emit_16(613);
+emit_16(547);
+emit_16(613);
+emit_16(546);
+emit_16(613);
+emit_16(547);
+emit_16(614);
+emit_16(548);
+emit_16(614);
+emit_16(547);
+emit_16(614);
+emit_16(548);
+emit_16(615);
+emit_16(549);
+emit_16(615);
+emit_16(548);
+emit_16(615);
+emit_16(549);
+emit_16(616);
+emit_16(550);
+emit_16(616);
+emit_16(549);
+emit_16(616);
+emit_16(550);
+emit_16(617);
+emit_16(551);
+emit_16(617);
+emit_16(550);
+emit_16(617);
+emit_16(551);
+emit_16(618);
+emit_16(552);
+emit_16(618);
+emit_16(551);
+emit_16(618);
+emit_16(552);
+emit_16(619);
+emit_16(553);
+emit_16(619);
+emit_16(552);
+emit_16(619);
+emit_16(553);
+emit_16(620);
+emit_16(554);
+emit_16(620);
+emit_16(553);
+emit_16(620);
+emit_16(554);
+emit_16(621);
+emit_16(555);
+emit_16(621);
+emit_16(554);
+emit_16(621);
+emit_16(555);
+emit_16(622);
+emit_16(556);
+emit_16(622);
+emit_16(555);
+emit_16(622);
+emit_16(556);
+emit_16(623);
+emit_16(557);
+emit_16(623);
+emit_16(556);
+emit_16(623);
+emit_16(557);
+emit_16(624);
+emit_16(558);
+emit_16(624);
+emit_16(557);
+emit_16(624);
+emit_16(558);
+emit_16(625);
+emit_16(559);
+emit_16(625);
+emit_16(558);
+emit_16(625);
+emit_16(559);
+emit_16(626);
+emit_16(560);
+emit_16(626);
+emit_16(559);
+emit_16(626);
+emit_16(560);
+emit_16(627);
+emit_16(561);
+emit_16(627);
+emit_16(560);
+emit_16(627);
+emit_16(561);
+emit_16(628);
+emit_16(562);
+emit_16(628);
+emit_16(561);
+emit_16(628);
+emit_16(562);
+emit_16(629);
+emit_16(563);
+emit_16(629);
+emit_16(562);
+emit_16(629);
+emit_16(563);
+emit_16(630);
+emit_16(564);
+emit_16(630);
+emit_16(563);
+emit_16(630);
+emit_16(564);
+emit_16(631);
+emit_16(565);
+emit_16(631);
+emit_16(564);
+emit_16(631);
+emit_16(565);
+emit_16(632);
+emit_16(566);
+emit_16(632);
+emit_16(565);
+emit_16(632);
+emit_16(566);
+emit_16(633);
+emit_16(567);
+emit_16(633);
+emit_16(566);
+emit_16(633);
+emit_16(567);
+emit_16(634);
+emit_16(568);
+emit_16(634);
+emit_16(567);
+emit_16(634);
+emit_16(568);
+emit_16(635);
+emit_16(569);
+emit_16(635);
+emit_16(568);
+emit_16(635);
+emit_16(569);
+emit_16(636);
+emit_16(570);
+emit_16(636);
+emit_16(569);
+emit_16(636);
+emit_16(570);
+emit_16(637);
+emit_16(571);
+emit_16(637);
+emit_16(570);
+emit_16(637);
+emit_16(571);
+emit_16(638);
+emit_16(572);
+emit_16(638);
+emit_16(571);
+emit_16(638);
+emit_16(572);
+emit_16(639);
+emit_16(573);
+emit_16(639);
+emit_16(572);
+emit_16(639);
+emit_16(573);
+emit_16(640);
+emit_16(574);
+emit_16(640);
+emit_16(573);
+emit_16(640);
+emit_16(574);
+emit_16(641);
+emit_16(575);
+emit_16(641);
+emit_16(574);
+emit_16(641);
+emit_16(575);
+emit_16(642);
+emit_16(576);
+emit_16(642);
+emit_16(575);
+emit_16(642);
+emit_16(576);
+emit_16(643);
+emit_16(577);
+emit_16(643);
+emit_16(576);
+emit_16(643);
+emit_16(577);
+emit_16(644);
+emit_16(578);
+emit_16(644);
+emit_16(577);
+emit_16(644);
+emit_16(578);
+emit_16(645);
+emit_16(579);
+emit_16(645);
+emit_16(578);
+emit_16(645);
+emit_16(579);
+emit_16(646);
+emit_16(580);
+emit_16(646);
+emit_16(579);
+emit_16(646);
+emit_16(580);
+emit_16(647);
+emit_16(581);
+emit_16(647);
+emit_16(580);
+emit_16(647);
+emit_16(581);
+emit_16(648);
+emit_16(582);
+emit_16(648);
+emit_16(581);
+emit_16(648);
+emit_16(582);
+emit_16(649);
+emit_16(583);
+emit_16(649);
+emit_16(582);
+emit_16(649);
+emit_16(583);
+emit_16(650);
+emit_16(584);
+emit_16(650);
+emit_16(583);
+emit_16(650);
+emit_16(584);
+emit_16(651);
+emit_16(585);
+emit_16(651);
+emit_16(584);
+emit_16(651);
+emit_16(585);
+emit_16(652);
+emit_16(586);
+emit_16(652);
+emit_16(585);
+emit_16(652);
+emit_16(586);
+emit_16(653);
+emit_16(587);
+emit_16(653);
+emit_16(586);
+emit_16(653);
+emit_16(587);
+emit_16(654);
+emit_16(588);
+emit_16(654);
+emit_16(587);
+emit_16(654);
+emit_16(588);
+emit_16(655);
+emit_16(589);
+emit_16(655);
+emit_16(588);
+emit_16(655);
+emit_16(589);
+emit_16(656);
+emit_16(590);
+emit_16(656);
+emit_16(589);
+emit_16(656);
+emit_16(590);
+emit_16(657);
+emit_16(591);
+emit_16(657);
+emit_16(590);
+emit_16(657);
+emit_16(591);
+emit_16(658);
+emit_16(592);
+emit_16(658);
+emit_16(591);
+emit_16(658);
+emit_16(592);
+emit_16(659);
+emit_16(593);
+emit_16(659);
+emit_16(592);
+emit_16(660);
+emit_16(594);
+emit_16(661);
+emit_16(595);
+emit_16(661);
+emit_16(594);
+emit_16(661);
+emit_16(595);
+emit_16(662);
+emit_16(596);
+emit_16(662);
+emit_16(595);
+emit_16(662);
+emit_16(596);
+emit_16(663);
+emit_16(597);
+emit_16(663);
+emit_16(596);
+emit_16(663);
+emit_16(597);
+emit_16(664);
+emit_16(598);
+emit_16(664);
+emit_16(597);
+emit_16(664);
+emit_16(598);
+emit_16(665);
+emit_16(599);
+emit_16(665);
+emit_16(598);
+emit_16(665);
+emit_16(599);
+emit_16(666);
+emit_16(600);
+emit_16(666);
+emit_16(599);
+emit_16(666);
+emit_16(600);
+emit_16(667);
+emit_16(601);
+emit_16(667);
+emit_16(600);
+emit_16(667);
+emit_16(601);
+emit_16(668);
+emit_16(602);
+emit_16(668);
+emit_16(601);
+emit_16(668);
+emit_16(602);
+emit_16(669);
+emit_16(603);
+emit_16(669);
+emit_16(602);
+emit_16(669);
+emit_16(603);
+emit_16(670);
+emit_16(604);
+emit_16(670);
+emit_16(603);
+emit_16(670);
+emit_16(604);
+emit_16(671);
+emit_16(605);
+emit_16(671);
+emit_16(604);
+emit_16(671);
+emit_16(605);
+emit_16(672);
+emit_16(606);
+emit_16(672);
+emit_16(605);
+emit_16(672);
+emit_16(606);
+emit_16(673);
+emit_16(607);
+emit_16(673);
+emit_16(606);
+emit_16(673);
+emit_16(607);
+emit_16(674);
+emit_16(608);
+emit_16(674);
+emit_16(607);
+emit_16(674);
+emit_16(608);
+emit_16(675);
+emit_16(609);
+emit_16(675);
+emit_16(608);
+emit_16(675);
+emit_16(609);
+emit_16(676);
+emit_16(610);
+emit_16(676);
+emit_16(609);
+emit_16(676);
+emit_16(610);
+emit_16(677);
+emit_16(611);
+emit_16(677);
+emit_16(610);
+emit_16(677);
+emit_16(611);
+emit_16(678);
+emit_16(612);
+emit_16(678);
+emit_16(611);
+emit_16(678);
+emit_16(612);
+emit_16(679);
+emit_16(613);
+emit_16(679);
+emit_16(612);
+emit_16(679);
+emit_16(613);
+emit_16(680);
+emit_16(614);
+emit_16(680);
+emit_16(613);
+emit_16(680);
+emit_16(614);
+emit_16(681);
+emit_16(615);
+emit_16(681);
+emit_16(614);
+emit_16(681);
+emit_16(615);
+emit_16(682);
+emit_16(616);
+emit_16(682);
+emit_16(615);
+emit_16(682);
+emit_16(616);
+emit_16(683);
+emit_16(617);
+emit_16(683);
+emit_16(616);
+emit_16(683);
+emit_16(617);
+emit_16(684);
+emit_16(618);
+emit_16(684);
+emit_16(617);
+emit_16(684);
+emit_16(618);
+emit_16(685);
+emit_16(619);
+emit_16(685);
+emit_16(618);
+emit_16(685);
+emit_16(619);
+emit_16(686);
+emit_16(620);
+emit_16(686);
+emit_16(619);
+emit_16(686);
+emit_16(620);
+emit_16(687);
+emit_16(621);
+emit_16(687);
+emit_16(620);
+emit_16(687);
+emit_16(621);
+emit_16(688);
+emit_16(622);
+emit_16(688);
+emit_16(621);
+emit_16(688);
+emit_16(622);
+emit_16(689);
+emit_16(623);
+emit_16(689);
+emit_16(622);
+emit_16(689);
+emit_16(623);
+emit_16(690);
+emit_16(624);
+emit_16(690);
+emit_16(623);
+emit_16(690);
+emit_16(624);
+emit_16(691);
+emit_16(625);
+emit_16(691);
+emit_16(624);
+emit_16(691);
+emit_16(625);
+emit_16(692);
+emit_16(626);
+emit_16(692);
+emit_16(625);
+emit_16(692);
+emit_16(626);
+emit_16(693);
+emit_16(627);
+emit_16(693);
+emit_16(626);
+emit_16(693);
+emit_16(627);
+emit_16(694);
+emit_16(628);
+emit_16(694);
+emit_16(627);
+emit_16(694);
+emit_16(628);
+emit_16(695);
+emit_16(629);
+emit_16(695);
+emit_16(628);
+emit_16(695);
+emit_16(629);
+emit_16(696);
+emit_16(630);
+emit_16(696);
+emit_16(629);
+emit_16(696);
+emit_16(630);
+emit_16(697);
+emit_16(631);
+emit_16(697);
+emit_16(630);
+emit_16(697);
+emit_16(631);
+emit_16(698);
+emit_16(632);
+emit_16(698);
+emit_16(631);
+emit_16(698);
+emit_16(632);
+emit_16(699);
+emit_16(633);
+emit_16(699);
+emit_16(632);
+emit_16(699);
+emit_16(633);
+emit_16(700);
+emit_16(634);
+emit_16(700);
+emit_16(633);
+emit_16(700);
+emit_16(634);
+emit_16(701);
+emit_16(635);
+emit_16(701);
+emit_16(634);
+emit_16(701);
+emit_16(635);
+emit_16(702);
+emit_16(636);
+emit_16(702);
+emit_16(635);
+emit_16(702);
+emit_16(636);
+emit_16(703);
+emit_16(637);
+emit_16(703);
+emit_16(636);
+emit_16(703);
+emit_16(637);
+emit_16(704);
+emit_16(638);
+emit_16(704);
+emit_16(637);
+emit_16(704);
+emit_16(638);
+emit_16(705);
+emit_16(639);
+emit_16(705);
+emit_16(638);
+emit_16(705);
+emit_16(639);
+emit_16(706);
+emit_16(640);
+emit_16(706);
+emit_16(639);
+emit_16(706);
+emit_16(640);
+emit_16(707);
+emit_16(641);
+emit_16(707);
+emit_16(640);
+emit_16(707);
+emit_16(641);
+emit_16(708);
+emit_16(642);
+emit_16(708);
+emit_16(641);
+emit_16(708);
+emit_16(642);
+emit_16(709);
+emit_16(643);
+emit_16(709);
+emit_16(642);
+emit_16(709);
+emit_16(643);
+emit_16(710);
+emit_16(644);
+emit_16(710);
+emit_16(643);
+emit_16(710);
+emit_16(644);
+emit_16(711);
+emit_16(645);
+emit_16(711);
+emit_16(644);
+emit_16(711);
+emit_16(645);
+emit_16(712);
+emit_16(646);
+emit_16(712);
+emit_16(645);
+emit_16(712);
+emit_16(646);
+emit_16(713);
+emit_16(647);
+emit_16(713);
+emit_16(646);
+emit_16(713);
+emit_16(647);
+emit_16(714);
+emit_16(648);
+emit_16(714);
+emit_16(647);
+emit_16(714);
+emit_16(648);
+emit_16(715);
+emit_16(649);
+emit_16(715);
+emit_16(648);
+emit_16(715);
+emit_16(649);
+emit_16(716);
+emit_16(650);
+emit_16(716);
+emit_16(649);
+emit_16(716);
+emit_16(650);
+emit_16(717);
+emit_16(651);
+emit_16(717);
+emit_16(650);
+emit_16(717);
+emit_16(651);
+emit_16(718);
+emit_16(652);
+emit_16(718);
+emit_16(651);
+emit_16(718);
+emit_16(652);
+emit_16(719);
+emit_16(653);
+emit_16(719);
+emit_16(652);
+emit_16(719);
+emit_16(653);
+emit_16(720);
+emit_16(654);
+emit_16(720);
+emit_16(653);
+emit_16(720);
+emit_16(654);
+emit_16(721);
+emit_16(655);
+emit_16(721);
+emit_16(654);
+emit_16(721);
+emit_16(655);
+emit_16(722);
+emit_16(656);
+emit_16(722);
+emit_16(655);
+emit_16(722);
+emit_16(656);
+emit_16(723);
+emit_16(657);
+emit_16(723);
+emit_16(656);
+emit_16(723);
+emit_16(657);
+emit_16(724);
+emit_16(658);
+emit_16(724);
+emit_16(657);
+emit_16(724);
+emit_16(658);
+emit_16(725);
+emit_16(659);
+emit_16(725);
+emit_16(658);
+emit_16(726);
+emit_16(660);
+emit_16(727);
+emit_16(661);
+emit_16(727);
+emit_16(660);
+emit_16(727);
+emit_16(661);
+emit_16(728);
+emit_16(662);
+emit_16(728);
+emit_16(661);
+emit_16(728);
+emit_16(662);
+emit_16(729);
+emit_16(663);
+emit_16(729);
+emit_16(662);
+emit_16(729);
+emit_16(663);
+emit_16(730);
+emit_16(664);
+emit_16(730);
+emit_16(663);
+emit_16(730);
+emit_16(664);
+emit_16(731);
+emit_16(665);
+emit_16(731);
+emit_16(664);
+emit_16(731);
+emit_16(665);
+emit_16(732);
+emit_16(666);
+emit_16(732);
+emit_16(665);
+emit_16(732);
+emit_16(666);
+emit_16(733);
+emit_16(667);
+emit_16(733);
+emit_16(666);
+emit_16(733);
+emit_16(667);
+emit_16(734);
+emit_16(668);
+emit_16(734);
+emit_16(667);
+emit_16(734);
+emit_16(668);
+emit_16(735);
+emit_16(669);
+emit_16(735);
+emit_16(668);
+emit_16(735);
+emit_16(669);
+emit_16(736);
+emit_16(670);
+emit_16(736);
+emit_16(669);
+emit_16(736);
+emit_16(670);
+emit_16(737);
+emit_16(671);
+emit_16(737);
+emit_16(670);
+emit_16(737);
+emit_16(671);
+emit_16(738);
+emit_16(672);
+emit_16(738);
+emit_16(671);
+emit_16(738);
+emit_16(672);
+emit_16(739);
+emit_16(673);
+emit_16(739);
+emit_16(672);
+emit_16(739);
+emit_16(673);
+emit_16(740);
+emit_16(674);
+emit_16(740);
+emit_16(673);
+emit_16(740);
+emit_16(674);
+emit_16(741);
+emit_16(675);
+emit_16(741);
+emit_16(674);
+emit_16(741);
+emit_16(675);
+emit_16(742);
+emit_16(676);
+emit_16(742);
+emit_16(675);
+emit_16(742);
+emit_16(676);
+emit_16(743);
+emit_16(677);
+emit_16(743);
+emit_16(676);
+emit_16(743);
+emit_16(677);
+emit_16(744);
+emit_16(678);
+emit_16(744);
+emit_16(677);
+emit_16(744);
+emit_16(678);
+emit_16(745);
+emit_16(679);
+emit_16(745);
+emit_16(678);
+emit_16(745);
+emit_16(679);
+emit_16(746);
+emit_16(680);
+emit_16(746);
+emit_16(679);
+emit_16(746);
+emit_16(680);
+emit_16(747);
+emit_16(681);
+emit_16(747);
+emit_16(680);
+emit_16(747);
+emit_16(681);
+emit_16(748);
+emit_16(682);
+emit_16(748);
+emit_16(681);
+emit_16(748);
+emit_16(682);
+emit_16(749);
+emit_16(683);
+emit_16(749);
+emit_16(682);
+emit_16(749);
+emit_16(683);
+emit_16(750);
+emit_16(684);
+emit_16(750);
+emit_16(683);
+emit_16(750);
+emit_16(684);
+emit_16(751);
+emit_16(685);
+emit_16(751);
+emit_16(684);
+emit_16(751);
+emit_16(685);
+emit_16(752);
+emit_16(686);
+emit_16(752);
+emit_16(685);
+emit_16(752);
+emit_16(686);
+emit_16(753);
+emit_16(687);
+emit_16(753);
+emit_16(686);
+emit_16(753);
+emit_16(687);
+emit_16(754);
+emit_16(688);
+emit_16(754);
+emit_16(687);
+emit_16(754);
+emit_16(688);
+emit_16(755);
+emit_16(689);
+emit_16(755);
+emit_16(688);
+emit_16(755);
+emit_16(689);
+emit_16(756);
+emit_16(690);
+emit_16(756);
+emit_16(689);
+emit_16(756);
+emit_16(690);
+emit_16(757);
+emit_16(691);
+emit_16(757);
+emit_16(690);
+emit_16(757);
+emit_16(691);
+emit_16(758);
+emit_16(692);
+emit_16(758);
+emit_16(691);
+emit_16(758);
+emit_16(692);
+emit_16(759);
+emit_16(693);
+emit_16(759);
+emit_16(692);
+emit_16(759);
+emit_16(693);
+emit_16(760);
+emit_16(694);
+emit_16(760);
+emit_16(693);
+emit_16(760);
+emit_16(694);
+emit_16(761);
+emit_16(695);
+emit_16(761);
+emit_16(694);
+emit_16(761);
+emit_16(695);
+emit_16(762);
+emit_16(696);
+emit_16(762);
+emit_16(695);
+emit_16(762);
+emit_16(696);
+emit_16(763);
+emit_16(697);
+emit_16(763);
+emit_16(696);
+emit_16(763);
+emit_16(697);
+emit_16(764);
+emit_16(698);
+emit_16(764);
+emit_16(697);
+emit_16(764);
+emit_16(698);
+emit_16(765);
+emit_16(699);
+emit_16(765);
+emit_16(698);
+emit_16(765);
+emit_16(699);
+emit_16(766);
+emit_16(700);
+emit_16(766);
+emit_16(699);
+emit_16(766);
+emit_16(700);
+emit_16(767);
+emit_16(701);
+emit_16(767);
+emit_16(700);
+emit_16(767);
+emit_16(701);
+emit_16(768);
+emit_16(702);
+emit_16(768);
+emit_16(701);
+emit_16(768);
+emit_16(702);
+emit_16(769);
+emit_16(703);
+emit_16(769);
+emit_16(702);
+emit_16(769);
+emit_16(703);
+emit_16(770);
+emit_16(704);
+emit_16(770);
+emit_16(703);
+emit_16(770);
+emit_16(704);
+emit_16(771);
+emit_16(705);
+emit_16(771);
+emit_16(704);
+emit_16(771);
+emit_16(705);
+emit_16(772);
+emit_16(706);
+emit_16(772);
+emit_16(705);
+emit_16(772);
+emit_16(706);
+emit_16(773);
+emit_16(707);
+emit_16(773);
+emit_16(706);
+emit_16(773);
+emit_16(707);
+emit_16(774);
+emit_16(708);
+emit_16(774);
+emit_16(707);
+emit_16(774);
+emit_16(708);
+emit_16(775);
+emit_16(709);
+emit_16(775);
+emit_16(708);
+emit_16(775);
+emit_16(709);
+emit_16(776);
+emit_16(710);
+emit_16(776);
+emit_16(709);
+emit_16(776);
+emit_16(710);
+emit_16(777);
+emit_16(711);
+emit_16(777);
+emit_16(710);
+emit_16(777);
+emit_16(711);
+emit_16(778);
+emit_16(712);
+emit_16(778);
+emit_16(711);
+emit_16(778);
+emit_16(712);
+emit_16(779);
+emit_16(713);
+emit_16(779);
+emit_16(712);
+emit_16(779);
+emit_16(713);
+emit_16(780);
+emit_16(714);
+emit_16(780);
+emit_16(713);
+emit_16(780);
+emit_16(714);
+emit_16(781);
+emit_16(715);
+emit_16(781);
+emit_16(714);
+emit_16(781);
+emit_16(715);
+emit_16(782);
+emit_16(716);
+emit_16(782);
+emit_16(715);
+emit_16(782);
+emit_16(716);
+emit_16(783);
+emit_16(717);
+emit_16(783);
+emit_16(716);
+emit_16(783);
+emit_16(717);
+emit_16(784);
+emit_16(718);
+emit_16(784);
+emit_16(717);
+emit_16(784);
+emit_16(718);
+emit_16(785);
+emit_16(719);
+emit_16(785);
+emit_16(718);
+emit_16(785);
+emit_16(719);
+emit_16(786);
+emit_16(720);
+emit_16(786);
+emit_16(719);
+emit_16(786);
+emit_16(720);
+emit_16(787);
+emit_16(721);
+emit_16(787);
+emit_16(720);
+emit_16(787);
+emit_16(721);
+emit_16(788);
+emit_16(722);
+emit_16(788);
+emit_16(721);
+emit_16(788);
+emit_16(722);
+emit_16(789);
+emit_16(723);
+emit_16(789);
+emit_16(722);
+emit_16(789);
+emit_16(723);
+emit_16(790);
+emit_16(724);
+emit_16(790);
+emit_16(723);
+emit_16(790);
+emit_16(724);
+emit_16(791);
+emit_16(725);
+emit_16(791);
+emit_16(724);
+emit_16(792);
+emit_16(726);
+emit_16(793);
+emit_16(727);
+emit_16(793);
+emit_16(726);
+emit_16(793);
+emit_16(727);
+emit_16(794);
+emit_16(728);
+emit_16(794);
+emit_16(727);
+emit_16(794);
+emit_16(728);
+emit_16(795);
+emit_16(729);
+emit_16(795);
+emit_16(728);
+emit_16(795);
+emit_16(729);
+emit_16(796);
+emit_16(730);
+emit_16(796);
+emit_16(729);
+emit_16(796);
+emit_16(730);
+emit_16(797);
+emit_16(731);
+emit_16(797);
+emit_16(730);
+emit_16(797);
+emit_16(731);
+emit_16(798);
+emit_16(732);
+emit_16(798);
+emit_16(731);
+emit_16(798);
+emit_16(732);
+emit_16(799);
+emit_16(733);
+emit_16(799);
+emit_16(732);
+emit_16(799);
+emit_16(733);
+emit_16(800);
+emit_16(734);
+emit_16(800);
+emit_16(733);
+emit_16(800);
+emit_16(734);
+emit_16(801);
+emit_16(735);
+emit_16(801);
+emit_16(734);
+emit_16(801);
+emit_16(735);
+emit_16(802);
+emit_16(736);
+emit_16(802);
+emit_16(735);
+emit_16(802);
+emit_16(736);
+emit_16(803);
+emit_16(737);
+emit_16(803);
+emit_16(736);
+emit_16(803);
+emit_16(737);
+emit_16(804);
+emit_16(738);
+emit_16(804);
+emit_16(737);
+emit_16(804);
+emit_16(738);
+emit_16(805);
+emit_16(739);
+emit_16(805);
+emit_16(738);
+emit_16(805);
+emit_16(739);
+emit_16(806);
+emit_16(740);
+emit_16(806);
+emit_16(739);
+emit_16(806);
+emit_16(740);
+emit_16(807);
+emit_16(741);
+emit_16(807);
+emit_16(740);
+emit_16(807);
+emit_16(741);
+emit_16(808);
+emit_16(742);
+emit_16(808);
+emit_16(741);
+emit_16(808);
+emit_16(742);
+emit_16(809);
+emit_16(743);
+emit_16(809);
+emit_16(742);
+emit_16(809);
+emit_16(743);
+emit_16(810);
+emit_16(744);
+emit_16(810);
+emit_16(743);
+emit_16(810);
+emit_16(744);
+emit_16(811);
+emit_16(745);
+emit_16(811);
+emit_16(744);
+emit_16(811);
+emit_16(745);
+emit_16(812);
+emit_16(746);
+emit_16(812);
+emit_16(745);
+emit_16(812);
+emit_16(746);
+emit_16(813);
+emit_16(747);
+emit_16(813);
+emit_16(746);
+emit_16(813);
+emit_16(747);
+emit_16(814);
+emit_16(748);
+emit_16(814);
+emit_16(747);
+emit_16(814);
+emit_16(748);
+emit_16(815);
+emit_16(749);
+emit_16(815);
+emit_16(748);
+emit_16(815);
+emit_16(749);
+emit_16(816);
+emit_16(750);
+emit_16(816);
+emit_16(749);
+emit_16(816);
+emit_16(750);
+emit_16(817);
+emit_16(751);
+emit_16(817);
+emit_16(750);
+emit_16(817);
+emit_16(751);
+emit_16(818);
+emit_16(752);
+emit_16(818);
+emit_16(751);
+emit_16(818);
+emit_16(752);
+emit_16(819);
+emit_16(753);
+emit_16(819);
+emit_16(752);
+emit_16(819);
+emit_16(753);
+emit_16(820);
+emit_16(754);
+emit_16(820);
+emit_16(753);
+emit_16(820);
+emit_16(754);
+emit_16(821);
+emit_16(755);
+emit_16(821);
+emit_16(754);
+emit_16(821);
+emit_16(755);
+emit_16(822);
+emit_16(756);
+emit_16(822);
+emit_16(755);
+emit_16(822);
+emit_16(756);
+emit_16(823);
+emit_16(757);
+emit_16(823);
+emit_16(756);
+emit_16(823);
+emit_16(757);
+emit_16(824);
+emit_16(758);
+emit_16(824);
+emit_16(757);
+emit_16(824);
+emit_16(758);
+emit_16(825);
+emit_16(759);
+emit_16(825);
+emit_16(758);
+emit_16(825);
+emit_16(759);
+emit_16(826);
+emit_16(760);
+emit_16(826);
+emit_16(759);
+emit_16(826);
+emit_16(760);
+emit_16(827);
+emit_16(761);
+emit_16(827);
+emit_16(760);
+emit_16(827);
+emit_16(761);
+emit_16(828);
+emit_16(762);
+emit_16(828);
+emit_16(761);
+emit_16(828);
+emit_16(762);
+emit_16(829);
+emit_16(763);
+emit_16(829);
+emit_16(762);
+emit_16(829);
+emit_16(763);
+emit_16(830);
+emit_16(764);
+emit_16(830);
+emit_16(763);
+emit_16(830);
+emit_16(764);
+emit_16(831);
+emit_16(765);
+emit_16(831);
+emit_16(764);
+emit_16(831);
+emit_16(765);
+emit_16(832);
+emit_16(766);
+emit_16(832);
+emit_16(765);
+emit_16(832);
+emit_16(766);
+emit_16(833);
+emit_16(767);
+emit_16(833);
+emit_16(766);
+emit_16(833);
+emit_16(767);
+emit_16(834);
+emit_16(768);
+emit_16(834);
+emit_16(767);
+emit_16(834);
+emit_16(768);
+emit_16(835);
+emit_16(769);
+emit_16(835);
+emit_16(768);
+emit_16(835);
+emit_16(769);
+emit_16(836);
+emit_16(770);
+emit_16(836);
+emit_16(769);
+emit_16(836);
+emit_16(770);
+emit_16(837);
+emit_16(771);
+emit_16(837);
+emit_16(770);
+emit_16(837);
+emit_16(771);
+emit_16(838);
+emit_16(772);
+emit_16(838);
+emit_16(771);
+emit_16(838);
+emit_16(772);
+emit_16(839);
+emit_16(773);
+emit_16(839);
+emit_16(772);
+emit_16(839);
+emit_16(773);
+emit_16(840);
+emit_16(774);
+emit_16(840);
+emit_16(773);
+emit_16(840);
+emit_16(774);
+emit_16(841);
+emit_16(775);
+emit_16(841);
+emit_16(774);
+emit_16(841);
+emit_16(775);
+emit_16(842);
+emit_16(776);
+emit_16(842);
+emit_16(775);
+emit_16(842);
+emit_16(776);
+emit_16(843);
+emit_16(777);
+emit_16(843);
+emit_16(776);
+emit_16(843);
+emit_16(777);
+emit_16(844);
+emit_16(778);
+emit_16(844);
+emit_16(777);
+emit_16(844);
+emit_16(778);
+emit_16(845);
+emit_16(779);
+emit_16(845);
+emit_16(778);
+emit_16(845);
+emit_16(779);
+emit_16(846);
+emit_16(780);
+emit_16(846);
+emit_16(779);
+emit_16(846);
+emit_16(780);
+emit_16(847);
+emit_16(781);
+emit_16(847);
+emit_16(780);
+emit_16(847);
+emit_16(781);
+emit_16(848);
+emit_16(782);
+emit_16(848);
+emit_16(781);
+emit_16(848);
+emit_16(782);
+emit_16(849);
+emit_16(783);
+emit_16(849);
+emit_16(782);
+emit_16(849);
+emit_16(783);
+emit_16(850);
+emit_16(784);
+emit_16(850);
+emit_16(783);
+emit_16(850);
+emit_16(784);
+emit_16(851);
+emit_16(785);
+emit_16(851);
+emit_16(784);
+emit_16(851);
+emit_16(785);
+emit_16(852);
+emit_16(786);
+emit_16(852);
+emit_16(785);
+emit_16(852);
+emit_16(786);
+emit_16(853);
+emit_16(787);
+emit_16(853);
+emit_16(786);
+emit_16(853);
+emit_16(787);
+emit_16(854);
+emit_16(788);
+emit_16(854);
+emit_16(787);
+emit_16(854);
+emit_16(788);
+emit_16(855);
+emit_16(789);
+emit_16(855);
+emit_16(788);
+emit_16(855);
+emit_16(789);
+emit_16(856);
+emit_16(790);
+emit_16(856);
+emit_16(789);
+emit_16(856);
+emit_16(790);
+emit_16(857);
+emit_16(791);
+emit_16(857);
+emit_16(790);
+emit_16(858);
+emit_16(792);
+emit_16(859);
+emit_16(793);
+emit_16(859);
+emit_16(792);
+emit_16(859);
+emit_16(793);
+emit_16(860);
+emit_16(794);
+emit_16(860);
+emit_16(793);
+emit_16(860);
+emit_16(794);
+emit_16(861);
+emit_16(795);
+emit_16(861);
+emit_16(794);
+emit_16(861);
+emit_16(795);
+emit_16(862);
+emit_16(796);
+emit_16(862);
+emit_16(795);
+emit_16(862);
+emit_16(796);
+emit_16(863);
+emit_16(797);
+emit_16(863);
+emit_16(796);
+emit_16(863);
+emit_16(797);
+emit_16(864);
+emit_16(798);
+emit_16(864);
+emit_16(797);
+emit_16(864);
+emit_16(798);
+emit_16(865);
+emit_16(799);
+emit_16(865);
+emit_16(798);
+emit_16(865);
+emit_16(799);
+emit_16(866);
+emit_16(800);
+emit_16(866);
+emit_16(799);
+emit_16(866);
+emit_16(800);
+emit_16(867);
+emit_16(801);
+emit_16(867);
+emit_16(800);
+emit_16(867);
+emit_16(801);
+emit_16(868);
+emit_16(802);
+emit_16(868);
+emit_16(801);
+emit_16(868);
+emit_16(802);
+emit_16(869);
+emit_16(803);
+emit_16(869);
+emit_16(802);
+emit_16(869);
+emit_16(803);
+emit_16(870);
+emit_16(804);
+emit_16(870);
+emit_16(803);
+emit_16(870);
+emit_16(804);
+emit_16(871);
+emit_16(805);
+emit_16(871);
+emit_16(804);
+emit_16(871);
+emit_16(805);
+emit_16(872);
+emit_16(806);
+emit_16(872);
+emit_16(805);
+emit_16(872);
+emit_16(806);
+emit_16(873);
+emit_16(807);
+emit_16(873);
+emit_16(806);
+emit_16(873);
+emit_16(807);
+emit_16(874);
+emit_16(808);
+emit_16(874);
+emit_16(807);
+emit_16(874);
+emit_16(808);
+emit_16(875);
+emit_16(809);
+emit_16(875);
+emit_16(808);
+emit_16(875);
+emit_16(809);
+emit_16(876);
+emit_16(810);
+emit_16(876);
+emit_16(809);
+emit_16(876);
+emit_16(810);
+emit_16(877);
+emit_16(811);
+emit_16(877);
+emit_16(810);
+emit_16(877);
+emit_16(811);
+emit_16(878);
+emit_16(812);
+emit_16(878);
+emit_16(811);
+emit_16(878);
+emit_16(812);
+emit_16(879);
+emit_16(813);
+emit_16(879);
+emit_16(812);
+emit_16(879);
+emit_16(813);
+emit_16(880);
+emit_16(814);
+emit_16(880);
+emit_16(813);
+emit_16(880);
+emit_16(814);
+emit_16(881);
+emit_16(815);
+emit_16(881);
+emit_16(814);
+emit_16(881);
+emit_16(815);
+emit_16(882);
+emit_16(816);
+emit_16(882);
+emit_16(815);
+emit_16(882);
+emit_16(816);
+emit_16(883);
+emit_16(817);
+emit_16(883);
+emit_16(816);
+emit_16(883);
+emit_16(817);
+emit_16(884);
+emit_16(818);
+emit_16(884);
+emit_16(817);
+emit_16(884);
+emit_16(818);
+emit_16(885);
+emit_16(819);
+emit_16(885);
+emit_16(818);
+emit_16(885);
+emit_16(819);
+emit_16(886);
+emit_16(820);
+emit_16(886);
+emit_16(819);
+emit_16(886);
+emit_16(820);
+emit_16(887);
+emit_16(821);
+emit_16(887);
+emit_16(820);
+emit_16(887);
+emit_16(821);
+emit_16(888);
+emit_16(822);
+emit_16(888);
+emit_16(821);
+emit_16(888);
+emit_16(822);
+emit_16(889);
+emit_16(823);
+emit_16(889);
+emit_16(822);
+emit_16(889);
+emit_16(823);
+emit_16(890);
+emit_16(824);
+emit_16(890);
+emit_16(823);
+emit_16(890);
+emit_16(824);
+emit_16(891);
+emit_16(825);
+emit_16(891);
+emit_16(824);
+emit_16(891);
+emit_16(825);
+emit_16(892);
+emit_16(826);
+emit_16(892);
+emit_16(825);
+emit_16(892);
+emit_16(826);
+emit_16(893);
+emit_16(827);
+emit_16(893);
+emit_16(826);
+emit_16(893);
+emit_16(827);
+emit_16(894);
+emit_16(828);
+emit_16(894);
+emit_16(827);
+emit_16(894);
+emit_16(828);
+emit_16(895);
+emit_16(829);
+emit_16(895);
+emit_16(828);
+emit_16(895);
+emit_16(829);
+emit_16(896);
+emit_16(830);
+emit_16(896);
+emit_16(829);
+emit_16(896);
+emit_16(830);
+emit_16(897);
+emit_16(831);
+emit_16(897);
+emit_16(830);
+emit_16(897);
+emit_16(831);
+emit_16(898);
+emit_16(832);
+emit_16(898);
+emit_16(831);
+emit_16(898);
+emit_16(832);
+emit_16(899);
+emit_16(833);
+emit_16(899);
+emit_16(832);
+emit_16(899);
+emit_16(833);
+emit_16(900);
+emit_16(834);
+emit_16(900);
+emit_16(833);
+emit_16(900);
+emit_16(834);
+emit_16(901);
+emit_16(835);
+emit_16(901);
+emit_16(834);
+emit_16(901);
+emit_16(835);
+emit_16(902);
+emit_16(836);
+emit_16(902);
+emit_16(835);
+emit_16(902);
+emit_16(836);
+emit_16(903);
+emit_16(837);
+emit_16(903);
+emit_16(836);
+emit_16(903);
+emit_16(837);
+emit_16(904);
+emit_16(838);
+emit_16(904);
+emit_16(837);
+emit_16(904);
+emit_16(838);
+emit_16(905);
+emit_16(839);
+emit_16(905);
+emit_16(838);
+emit_16(905);
+emit_16(839);
+emit_16(906);
+emit_16(840);
+emit_16(906);
+emit_16(839);
+emit_16(906);
+emit_16(840);
+emit_16(907);
+emit_16(841);
+emit_16(907);
+emit_16(840);
+emit_16(907);
+emit_16(841);
+emit_16(908);
+emit_16(842);
+emit_16(908);
+emit_16(841);
+emit_16(908);
+emit_16(842);
+emit_16(909);
+emit_16(843);
+emit_16(909);
+emit_16(842);
+emit_16(909);
+emit_16(843);
+emit_16(910);
+emit_16(844);
+emit_16(910);
+emit_16(843);
+emit_16(910);
+emit_16(844);
+emit_16(911);
+emit_16(845);
+emit_16(911);
+emit_16(844);
+emit_16(911);
+emit_16(845);
+emit_16(912);
+emit_16(846);
+emit_16(912);
+emit_16(845);
+emit_16(912);
+emit_16(846);
+emit_16(913);
+emit_16(847);
+emit_16(913);
+emit_16(846);
+emit_16(913);
+emit_16(847);
+emit_16(914);
+emit_16(848);
+emit_16(914);
+emit_16(847);
+emit_16(914);
+emit_16(848);
+emit_16(915);
+emit_16(849);
+emit_16(915);
+emit_16(848);
+emit_16(915);
+emit_16(849);
+emit_16(916);
+emit_16(850);
+emit_16(916);
+emit_16(849);
+emit_16(916);
+emit_16(850);
+emit_16(917);
+emit_16(851);
+emit_16(917);
+emit_16(850);
+emit_16(917);
+emit_16(851);
+emit_16(918);
+emit_16(852);
+emit_16(918);
+emit_16(851);
+emit_16(918);
+emit_16(852);
+emit_16(919);
+emit_16(853);
+emit_16(919);
+emit_16(852);
+emit_16(919);
+emit_16(853);
+emit_16(920);
+emit_16(854);
+emit_16(920);
+emit_16(853);
+emit_16(920);
+emit_16(854);
+emit_16(921);
+emit_16(855);
+emit_16(921);
+emit_16(854);
+emit_16(921);
+emit_16(855);
+emit_16(922);
+emit_16(856);
+emit_16(922);
+emit_16(855);
+emit_16(922);
+emit_16(856);
+emit_16(923);
+emit_16(857);
+emit_16(923);
+emit_16(856);
+emit_16(924);
+emit_16(858);
+emit_16(925);
+emit_16(859);
+emit_16(925);
+emit_16(858);
+emit_16(925);
+emit_16(859);
+emit_16(926);
+emit_16(860);
+emit_16(926);
+emit_16(859);
+emit_16(926);
+emit_16(860);
+emit_16(927);
+emit_16(861);
+emit_16(927);
+emit_16(860);
+emit_16(927);
+emit_16(861);
+emit_16(928);
+emit_16(862);
+emit_16(928);
+emit_16(861);
+emit_16(928);
+emit_16(862);
+emit_16(929);
+emit_16(863);
+emit_16(929);
+emit_16(862);
+emit_16(929);
+emit_16(863);
+emit_16(930);
+emit_16(864);
+emit_16(930);
+emit_16(863);
+emit_16(930);
+emit_16(864);
+emit_16(931);
+emit_16(865);
+emit_16(931);
+emit_16(864);
+emit_16(931);
+emit_16(865);
+emit_16(932);
+emit_16(866);
+emit_16(932);
+emit_16(865);
+emit_16(932);
+emit_16(866);
+emit_16(933);
+emit_16(867);
+emit_16(933);
+emit_16(866);
+emit_16(933);
+emit_16(867);
+emit_16(934);
+emit_16(868);
+emit_16(934);
+emit_16(867);
+emit_16(934);
+emit_16(868);
+emit_16(935);
+emit_16(869);
+emit_16(935);
+emit_16(868);
+emit_16(935);
+emit_16(869);
+emit_16(936);
+emit_16(870);
+emit_16(936);
+emit_16(869);
+emit_16(936);
+emit_16(870);
+emit_16(937);
+emit_16(871);
+emit_16(937);
+emit_16(870);
+emit_16(937);
+emit_16(871);
+emit_16(938);
+emit_16(872);
+emit_16(938);
+emit_16(871);
+emit_16(938);
+emit_16(872);
+emit_16(939);
+emit_16(873);
+emit_16(939);
+emit_16(872);
+emit_16(939);
+emit_16(873);
+emit_16(940);
+emit_16(874);
+emit_16(940);
+emit_16(873);
+emit_16(940);
+emit_16(874);
+emit_16(941);
+emit_16(875);
+emit_16(941);
+emit_16(874);
+emit_16(941);
+emit_16(875);
+emit_16(942);
+emit_16(876);
+emit_16(942);
+emit_16(875);
+emit_16(942);
+emit_16(876);
+emit_16(943);
+emit_16(877);
+emit_16(943);
+emit_16(876);
+emit_16(943);
+emit_16(877);
+emit_16(944);
+emit_16(878);
+emit_16(944);
+emit_16(877);
+emit_16(944);
+emit_16(878);
+emit_16(945);
+emit_16(879);
+emit_16(945);
+emit_16(878);
+emit_16(945);
+emit_16(879);
+emit_16(946);
+emit_16(880);
+emit_16(946);
+emit_16(879);
+emit_16(946);
+emit_16(880);
+emit_16(947);
+emit_16(881);
+emit_16(947);
+emit_16(880);
+emit_16(947);
+emit_16(881);
+emit_16(948);
+emit_16(882);
+emit_16(948);
+emit_16(881);
+emit_16(948);
+emit_16(882);
+emit_16(949);
+emit_16(883);
+emit_16(949);
+emit_16(882);
+emit_16(949);
+emit_16(883);
+emit_16(950);
+emit_16(884);
+emit_16(950);
+emit_16(883);
+emit_16(950);
+emit_16(884);
+emit_16(951);
+emit_16(885);
+emit_16(951);
+emit_16(884);
+emit_16(951);
+emit_16(885);
+emit_16(952);
+emit_16(886);
+emit_16(952);
+emit_16(885);
+emit_16(952);
+emit_16(886);
+emit_16(953);
+emit_16(887);
+emit_16(953);
+emit_16(886);
+emit_16(953);
+emit_16(887);
+emit_16(954);
+emit_16(888);
+emit_16(954);
+emit_16(887);
+emit_16(954);
+emit_16(888);
+emit_16(955);
+emit_16(889);
+emit_16(955);
+emit_16(888);
+emit_16(955);
+emit_16(889);
+emit_16(956);
+emit_16(890);
+emit_16(956);
+emit_16(889);
+emit_16(956);
+emit_16(890);
+emit_16(957);
+emit_16(891);
+emit_16(957);
+emit_16(890);
+emit_16(957);
+emit_16(891);
+emit_16(958);
+emit_16(892);
+emit_16(958);
+emit_16(891);
+emit_16(958);
+emit_16(892);
+emit_16(959);
+emit_16(893);
+emit_16(959);
+emit_16(892);
+emit_16(959);
+emit_16(893);
+emit_16(960);
+emit_16(894);
+emit_16(960);
+emit_16(893);
+emit_16(960);
+emit_16(894);
+emit_16(961);
+emit_16(895);
+emit_16(961);
+emit_16(894);
+emit_16(961);
+emit_16(895);
+emit_16(962);
+emit_16(896);
+emit_16(962);
+emit_16(895);
+emit_16(962);
+emit_16(896);
+emit_16(963);
+emit_16(897);
+emit_16(963);
+emit_16(896);
+emit_16(963);
+emit_16(897);
+emit_16(964);
+emit_16(898);
+emit_16(964);
+emit_16(897);
+emit_16(964);
+emit_16(898);
+emit_16(965);
+emit_16(899);
+emit_16(965);
+emit_16(898);
+emit_16(965);
+emit_16(899);
+emit_16(966);
+emit_16(900);
+emit_16(966);
+emit_16(899);
+emit_16(966);
+emit_16(900);
+emit_16(967);
+emit_16(901);
+emit_16(967);
+emit_16(900);
+emit_16(967);
+emit_16(901);
+emit_16(968);
+emit_16(902);
+emit_16(968);
+emit_16(901);
+emit_16(968);
+emit_16(902);
+emit_16(969);
+emit_16(903);
+emit_16(969);
+emit_16(902);
+emit_16(969);
+emit_16(903);
+emit_16(970);
+emit_16(904);
+emit_16(970);
+emit_16(903);
+emit_16(970);
+emit_16(904);
+emit_16(971);
+emit_16(905);
+emit_16(971);
+emit_16(904);
+emit_16(971);
+emit_16(905);
+emit_16(972);
+emit_16(906);
+emit_16(972);
+emit_16(905);
+emit_16(972);
+emit_16(906);
+emit_16(973);
+emit_16(907);
+emit_16(973);
+emit_16(906);
+emit_16(973);
+emit_16(907);
+emit_16(974);
+emit_16(908);
+emit_16(974);
+emit_16(907);
+emit_16(974);
+emit_16(908);
+emit_16(975);
+emit_16(909);
+emit_16(975);
+emit_16(908);
+emit_16(975);
+emit_16(909);
+emit_16(976);
+emit_16(910);
+emit_16(976);
+emit_16(909);
+emit_16(976);
+emit_16(910);
+emit_16(977);
+emit_16(911);
+emit_16(977);
+emit_16(910);
+emit_16(977);
+emit_16(911);
+emit_16(978);
+emit_16(912);
+emit_16(978);
+emit_16(911);
+emit_16(978);
+emit_16(912);
+emit_16(979);
+emit_16(913);
+emit_16(979);
+emit_16(912);
+emit_16(979);
+emit_16(913);
+emit_16(980);
+emit_16(914);
+emit_16(980);
+emit_16(913);
+emit_16(980);
+emit_16(914);
+emit_16(981);
+emit_16(915);
+emit_16(981);
+emit_16(914);
+emit_16(981);
+emit_16(915);
+emit_16(982);
+emit_16(916);
+emit_16(982);
+emit_16(915);
+emit_16(982);
+emit_16(916);
+emit_16(983);
+emit_16(917);
+emit_16(983);
+emit_16(916);
+emit_16(983);
+emit_16(917);
+emit_16(984);
+emit_16(918);
+emit_16(984);
+emit_16(917);
+emit_16(984);
+emit_16(918);
+emit_16(985);
+emit_16(919);
+emit_16(985);
+emit_16(918);
+emit_16(985);
+emit_16(919);
+emit_16(986);
+emit_16(920);
+emit_16(986);
+emit_16(919);
+emit_16(986);
+emit_16(920);
+emit_16(987);
+emit_16(921);
+emit_16(987);
+emit_16(920);
+emit_16(987);
+emit_16(921);
+emit_16(988);
+emit_16(922);
+emit_16(988);
+emit_16(921);
+emit_16(988);
+emit_16(922);
+emit_16(989);
+emit_16(923);
+emit_16(989);
+emit_16(922);
+emit_16(990);
+emit_16(924);
+emit_16(991);
+emit_16(925);
+emit_16(991);
+emit_16(924);
+emit_16(991);
+emit_16(925);
+emit_16(992);
+emit_16(926);
+emit_16(992);
+emit_16(925);
+emit_16(992);
+emit_16(926);
+emit_16(993);
+emit_16(927);
+emit_16(993);
+emit_16(926);
+emit_16(993);
+emit_16(927);
+emit_16(994);
+emit_16(928);
+emit_16(994);
+emit_16(927);
+emit_16(994);
+emit_16(928);
+emit_16(995);
+emit_16(929);
+emit_16(995);
+emit_16(928);
+emit_16(995);
+emit_16(929);
+emit_16(996);
+emit_16(930);
+emit_16(996);
+emit_16(929);
+emit_16(996);
+emit_16(930);
+emit_16(997);
+emit_16(931);
+emit_16(997);
+emit_16(930);
+emit_16(997);
+emit_16(931);
+emit_16(998);
+emit_16(932);
+emit_16(998);
+emit_16(931);
+emit_16(998);
+emit_16(932);
+emit_16(999);
+emit_16(933);
+emit_16(999);
+emit_16(932);
+emit_16(999);
+emit_16(933);
+emit_16(1000);
+emit_16(934);
+emit_16(1000);
+emit_16(933);
+emit_16(1000);
+emit_16(934);
+emit_16(1001);
+emit_16(935);
+emit_16(1001);
+emit_16(934);
+emit_16(1001);
+emit_16(935);
+emit_16(1002);
+emit_16(936);
+emit_16(1002);
+emit_16(935);
+emit_16(1002);
+emit_16(936);
+emit_16(1003);
+emit_16(937);
+emit_16(1003);
+emit_16(936);
+emit_16(1003);
+emit_16(937);
+emit_16(1004);
+emit_16(938);
+emit_16(1004);
+emit_16(937);
+emit_16(1004);
+emit_16(938);
+emit_16(1005);
+emit_16(939);
+emit_16(1005);
+emit_16(938);
+emit_16(1005);
+emit_16(939);
+emit_16(1006);
+emit_16(940);
+emit_16(1006);
+emit_16(939);
+emit_16(1006);
+emit_16(940);
+emit_16(1007);
+emit_16(941);
+emit_16(1007);
+emit_16(940);
+emit_16(1007);
+emit_16(941);
+emit_16(1008);
+emit_16(942);
+emit_16(1008);
+emit_16(941);
+emit_16(1008);
+emit_16(942);
+emit_16(1009);
+emit_16(943);
+emit_16(1009);
+emit_16(942);
+emit_16(1009);
+emit_16(943);
+emit_16(1010);
+emit_16(944);
+emit_16(1010);
+emit_16(943);
+emit_16(1010);
+emit_16(944);
+emit_16(1011);
+emit_16(945);
+emit_16(1011);
+emit_16(944);
+emit_16(1011);
+emit_16(945);
+emit_16(1012);
+emit_16(946);
+emit_16(1012);
+emit_16(945);
+emit_16(1012);
+emit_16(946);
+emit_16(1013);
+emit_16(947);
+emit_16(1013);
+emit_16(946);
+emit_16(1013);
+emit_16(947);
+emit_16(1014);
+emit_16(948);
+emit_16(1014);
+emit_16(947);
+emit_16(1014);
+emit_16(948);
+emit_16(1015);
+emit_16(949);
+emit_16(1015);
+emit_16(948);
+emit_16(1015);
+emit_16(949);
+emit_16(1016);
+emit_16(950);
+emit_16(1016);
+emit_16(949);
+emit_16(1016);
+emit_16(950);
+emit_16(1017);
+emit_16(951);
+emit_16(1017);
+emit_16(950);
+emit_16(1017);
+emit_16(951);
+emit_16(1018);
+emit_16(952);
+emit_16(1018);
+emit_16(951);
+emit_16(1018);
+emit_16(952);
+emit_16(1019);
+emit_16(953);
+emit_16(1019);
+emit_16(952);
+emit_16(1019);
+emit_16(953);
+emit_16(1020);
+emit_16(954);
+emit_16(1020);
+emit_16(953);
+emit_16(1020);
+emit_16(954);
+emit_16(1021);
+emit_16(955);
+emit_16(1021);
+emit_16(954);
+emit_16(1021);
+emit_16(955);
+emit_16(1022);
+emit_16(956);
+emit_16(1022);
+emit_16(955);
+emit_16(1022);
+emit_16(956);
+emit_16(1023);
+emit_16(957);
+emit_16(1023);
+emit_16(956);
+emit_16(1023);
+emit_16(957);
+emit_16(1024);
+emit_16(958);
+emit_16(1024);
+emit_16(957);
+emit_16(1024);
+emit_16(958);
+emit_16(1025);
+emit_16(959);
+emit_16(1025);
+emit_16(958);
+emit_16(1025);
+emit_16(959);
+emit_16(1026);
+emit_16(960);
+emit_16(1026);
+emit_16(959);
+emit_16(1026);
+emit_16(960);
+emit_16(1027);
+emit_16(961);
+emit_16(1027);
+emit_16(960);
+emit_16(1027);
+emit_16(961);
+emit_16(1028);
+emit_16(962);
+emit_16(1028);
+emit_16(961);
+emit_16(1028);
+emit_16(962);
+emit_16(1029);
+emit_16(963);
+emit_16(1029);
+emit_16(962);
+emit_16(1029);
+emit_16(963);
+emit_16(1030);
+emit_16(964);
+emit_16(1030);
+emit_16(963);
+emit_16(1030);
+emit_16(964);
+emit_16(1031);
+emit_16(965);
+emit_16(1031);
+emit_16(964);
+emit_16(1031);
+emit_16(965);
+emit_16(1032);
+emit_16(966);
+emit_16(1032);
+emit_16(965);
+emit_16(1032);
+emit_16(966);
+emit_16(1033);
+emit_16(967);
+emit_16(1033);
+emit_16(966);
+emit_16(1033);
+emit_16(967);
+emit_16(1034);
+emit_16(968);
+emit_16(1034);
+emit_16(967);
+emit_16(1034);
+emit_16(968);
+emit_16(1035);
+emit_16(969);
+emit_16(1035);
+emit_16(968);
+emit_16(1035);
+emit_16(969);
+emit_16(1036);
+emit_16(970);
+emit_16(1036);
+emit_16(969);
+emit_16(1036);
+emit_16(970);
+emit_16(1037);
+emit_16(971);
+emit_16(1037);
+emit_16(970);
+emit_16(1037);
+emit_16(971);
+emit_16(1038);
+emit_16(972);
+emit_16(1038);
+emit_16(971);
+emit_16(1038);
+emit_16(972);
+emit_16(1039);
+emit_16(973);
+emit_16(1039);
+emit_16(972);
+emit_16(1039);
+emit_16(973);
+emit_16(1040);
+emit_16(974);
+emit_16(1040);
+emit_16(973);
+emit_16(1040);
+emit_16(974);
+emit_16(1041);
+emit_16(975);
+emit_16(1041);
+emit_16(974);
+emit_16(1041);
+emit_16(975);
+emit_16(1042);
+emit_16(976);
+emit_16(1042);
+emit_16(975);
+emit_16(1042);
+emit_16(976);
+emit_16(1043);
+emit_16(977);
+emit_16(1043);
+emit_16(976);
+emit_16(1043);
+emit_16(977);
+emit_16(1044);
+emit_16(978);
+emit_16(1044);
+emit_16(977);
+emit_16(1044);
+emit_16(978);
+emit_16(1045);
+emit_16(979);
+emit_16(1045);
+emit_16(978);
+emit_16(1045);
+emit_16(979);
+emit_16(1046);
+emit_16(980);
+emit_16(1046);
+emit_16(979);
+emit_16(1046);
+emit_16(980);
+emit_16(1047);
+emit_16(981);
+emit_16(1047);
+emit_16(980);
+emit_16(1047);
+emit_16(981);
+emit_16(1048);
+emit_16(982);
+emit_16(1048);
+emit_16(981);
+emit_16(1048);
+emit_16(982);
+emit_16(1049);
+emit_16(983);
+emit_16(1049);
+emit_16(982);
+emit_16(1049);
+emit_16(983);
+emit_16(1050);
+emit_16(984);
+emit_16(1050);
+emit_16(983);
+emit_16(1050);
+emit_16(984);
+emit_16(1051);
+emit_16(985);
+emit_16(1051);
+emit_16(984);
+emit_16(1051);
+emit_16(985);
+emit_16(1052);
+emit_16(986);
+emit_16(1052);
+emit_16(985);
+emit_16(1052);
+emit_16(986);
+emit_16(1053);
+emit_16(987);
+emit_16(1053);
+emit_16(986);
+emit_16(1053);
+emit_16(987);
+emit_16(1054);
+emit_16(988);
+emit_16(1054);
+emit_16(987);
+emit_16(1054);
+emit_16(988);
+emit_16(1055);
+emit_16(989);
+emit_16(1055);
+emit_16(988);
+emit_16(1056);
+emit_16(990);
+emit_16(1057);
+emit_16(991);
+emit_16(1057);
+emit_16(990);
+emit_16(1057);
+emit_16(991);
+emit_16(1058);
+emit_16(992);
+emit_16(1058);
+emit_16(991);
+emit_16(1058);
+emit_16(992);
+emit_16(1059);
+emit_16(993);
+emit_16(1059);
+emit_16(992);
+emit_16(1059);
+emit_16(993);
+emit_16(1060);
+emit_16(994);
+emit_16(1060);
+emit_16(993);
+emit_16(1060);
+emit_16(994);
+emit_16(1061);
+emit_16(995);
+emit_16(1061);
+emit_16(994);
+emit_16(1061);
+emit_16(995);
+emit_16(1062);
+emit_16(996);
+emit_16(1062);
+emit_16(995);
+emit_16(1062);
+emit_16(996);
+emit_16(1063);
+emit_16(997);
+emit_16(1063);
+emit_16(996);
+emit_16(1063);
+emit_16(997);
+emit_16(1064);
+emit_16(998);
+emit_16(1064);
+emit_16(997);
+emit_16(1064);
+emit_16(998);
+emit_16(1065);
+emit_16(999);
+emit_16(1065);
+emit_16(998);
+emit_16(1065);
+emit_16(999);
+emit_16(1066);
+emit_16(1000);
+emit_16(1066);
+emit_16(999);
+emit_16(1066);
+emit_16(1000);
+emit_16(1067);
+emit_16(1001);
+emit_16(1067);
+emit_16(1000);
+emit_16(1067);
+emit_16(1001);
+emit_16(1068);
+emit_16(1002);
+emit_16(1068);
+emit_16(1001);
+emit_16(1068);
+emit_16(1002);
+emit_16(1069);
+emit_16(1003);
+emit_16(1069);
+emit_16(1002);
+emit_16(1069);
+emit_16(1003);
+emit_16(1070);
+emit_16(1004);
+emit_16(1070);
+emit_16(1003);
+emit_16(1070);
+emit_16(1004);
+emit_16(1071);
+emit_16(1005);
+emit_16(1071);
+emit_16(1004);
+emit_16(1071);
+emit_16(1005);
+emit_16(1072);
+emit_16(1006);
+emit_16(1072);
+emit_16(1005);
+emit_16(1072);
+emit_16(1006);
+emit_16(1073);
+emit_16(1007);
+emit_16(1073);
+emit_16(1006);
+emit_16(1073);
+emit_16(1007);
+emit_16(1074);
+emit_16(1008);
+emit_16(1074);
+emit_16(1007);
+emit_16(1074);
+emit_16(1008);
+emit_16(1075);
+emit_16(1009);
+emit_16(1075);
+emit_16(1008);
+emit_16(1075);
+emit_16(1009);
+emit_16(1076);
+emit_16(1010);
+emit_16(1076);
+emit_16(1009);
+emit_16(1076);
+emit_16(1010);
+emit_16(1077);
+emit_16(1011);
+emit_16(1077);
+emit_16(1010);
+emit_16(1077);
+emit_16(1011);
+emit_16(1078);
+emit_16(1012);
+emit_16(1078);
+emit_16(1011);
+emit_16(1078);
+emit_16(1012);
+emit_16(1079);
+emit_16(1013);
+emit_16(1079);
+emit_16(1012);
+emit_16(1079);
+emit_16(1013);
+emit_16(1080);
+emit_16(1014);
+emit_16(1080);
+emit_16(1013);
+emit_16(1080);
+emit_16(1014);
+emit_16(1081);
+emit_16(1015);
+emit_16(1081);
+emit_16(1014);
+emit_16(1081);
+emit_16(1015);
+emit_16(1082);
+emit_16(1016);
+emit_16(1082);
+emit_16(1015);
+emit_16(1082);
+emit_16(1016);
+emit_16(1083);
+emit_16(1017);
+emit_16(1083);
+emit_16(1016);
+emit_16(1083);
+emit_16(1017);
+emit_16(1084);
+emit_16(1018);
+emit_16(1084);
+emit_16(1017);
+emit_16(1084);
+emit_16(1018);
+emit_16(1085);
+emit_16(1019);
+emit_16(1085);
+emit_16(1018);
+emit_16(1085);
+emit_16(1019);
+emit_16(1086);
+emit_16(1020);
+emit_16(1086);
+emit_16(1019);
+emit_16(1086);
+emit_16(1020);
+emit_16(1087);
+emit_16(1021);
+emit_16(1087);
+emit_16(1020);
+emit_16(1087);
+emit_16(1021);
+emit_16(1088);
+emit_16(1022);
+emit_16(1088);
+emit_16(1021);
+emit_16(1088);
+emit_16(1022);
+emit_16(1089);
+emit_16(1023);
+emit_16(1089);
+emit_16(1022);
+emit_16(1089);
+emit_16(1023);
+emit_16(1090);
+emit_16(1024);
+emit_16(1090);
+emit_16(1023);
+emit_16(1090);
+emit_16(1024);
+emit_16(1091);
+emit_16(1025);
+emit_16(1091);
+emit_16(1024);
+emit_16(1091);
+emit_16(1025);
+emit_16(1092);
+emit_16(1026);
+emit_16(1092);
+emit_16(1025);
+emit_16(1092);
+emit_16(1026);
+emit_16(1093);
+emit_16(1027);
+emit_16(1093);
+emit_16(1026);
+emit_16(1093);
+emit_16(1027);
+emit_16(1094);
+emit_16(1028);
+emit_16(1094);
+emit_16(1027);
+emit_16(1094);
+emit_16(1028);
+emit_16(1095);
+emit_16(1029);
+emit_16(1095);
+emit_16(1028);
+emit_16(1095);
+emit_16(1029);
+emit_16(1096);
+emit_16(1030);
+emit_16(1096);
+emit_16(1029);
+emit_16(1096);
+emit_16(1030);
+emit_16(1097);
+emit_16(1031);
+emit_16(1097);
+emit_16(1030);
+emit_16(1097);
+emit_16(1031);
+emit_16(1098);
+emit_16(1032);
+emit_16(1098);
+emit_16(1031);
+emit_16(1098);
+emit_16(1032);
+emit_16(1099);
+emit_16(1033);
+emit_16(1099);
+emit_16(1032);
+emit_16(1099);
+emit_16(1033);
+emit_16(1100);
+emit_16(1034);
+emit_16(1100);
+emit_16(1033);
+emit_16(1100);
+emit_16(1034);
+emit_16(1101);
+emit_16(1035);
+emit_16(1101);
+emit_16(1034);
+emit_16(1101);
+emit_16(1035);
+emit_16(1102);
+emit_16(1036);
+emit_16(1102);
+emit_16(1035);
+emit_16(1102);
+emit_16(1036);
+emit_16(1103);
+emit_16(1037);
+emit_16(1103);
+emit_16(1036);
+emit_16(1103);
+emit_16(1037);
+emit_16(1104);
+emit_16(1038);
+emit_16(1104);
+emit_16(1037);
+emit_16(1104);
+emit_16(1038);
+emit_16(1105);
+emit_16(1039);
+emit_16(1105);
+emit_16(1038);
+emit_16(1105);
+emit_16(1039);
+emit_16(1106);
+emit_16(1040);
+emit_16(1106);
+emit_16(1039);
+emit_16(1106);
+emit_16(1040);
+emit_16(1107);
+emit_16(1041);
+emit_16(1107);
+emit_16(1040);
+emit_16(1107);
+emit_16(1041);
+emit_16(1108);
+emit_16(1042);
+emit_16(1108);
+emit_16(1041);
+emit_16(1108);
+emit_16(1042);
+emit_16(1109);
+emit_16(1043);
+emit_16(1109);
+emit_16(1042);
+emit_16(1109);
+emit_16(1043);
+emit_16(1110);
+emit_16(1044);
+emit_16(1110);
+emit_16(1043);
+emit_16(1110);
+emit_16(1044);
+emit_16(1111);
+emit_16(1045);
+emit_16(1111);
+emit_16(1044);
+emit_16(1111);
+emit_16(1045);
+emit_16(1112);
+emit_16(1046);
+emit_16(1112);
+emit_16(1045);
+emit_16(1112);
+emit_16(1046);
+emit_16(1113);
+emit_16(1047);
+emit_16(1113);
+emit_16(1046);
+emit_16(1113);
+emit_16(1047);
+emit_16(1114);
+emit_16(1048);
+emit_16(1114);
+emit_16(1047);
+emit_16(1114);
+emit_16(1048);
+emit_16(1115);
+emit_16(1049);
+emit_16(1115);
+emit_16(1048);
+emit_16(1115);
+emit_16(1049);
+emit_16(1116);
+emit_16(1050);
+emit_16(1116);
+emit_16(1049);
+emit_16(1116);
+emit_16(1050);
+emit_16(1117);
+emit_16(1051);
+emit_16(1117);
+emit_16(1050);
+emit_16(1117);
+emit_16(1051);
+emit_16(1118);
+emit_16(1052);
+emit_16(1118);
+emit_16(1051);
+emit_16(1118);
+emit_16(1052);
+emit_16(1119);
+emit_16(1053);
+emit_16(1119);
+emit_16(1052);
+emit_16(1119);
+emit_16(1053);
+emit_16(1120);
+emit_16(1054);
+emit_16(1120);
+emit_16(1053);
+emit_16(1120);
+emit_16(1054);
+emit_16(1121);
+emit_16(1055);
+emit_16(1121);
+emit_16(1054);
+emit_16(1122);
+emit_16(1056);
+emit_16(1123);
+emit_16(1057);
+emit_16(1123);
+emit_16(1056);
+emit_16(1123);
+emit_16(1057);
+emit_16(1124);
+emit_16(1058);
+emit_16(1124);
+emit_16(1057);
+emit_16(1124);
+emit_16(1058);
+emit_16(1125);
+emit_16(1059);
+emit_16(1125);
+emit_16(1058);
+emit_16(1125);
+emit_16(1059);
+emit_16(1126);
+emit_16(1060);
+emit_16(1126);
+emit_16(1059);
+emit_16(1126);
+emit_16(1060);
+emit_16(1127);
+emit_16(1061);
+emit_16(1127);
+emit_16(1060);
+emit_16(1127);
+emit_16(1061);
+emit_16(1128);
+emit_16(1062);
+emit_16(1128);
+emit_16(1061);
+emit_16(1128);
+emit_16(1062);
+emit_16(1129);
+emit_16(1063);
+emit_16(1129);
+emit_16(1062);
+emit_16(1129);
+emit_16(1063);
+emit_16(1130);
+emit_16(1064);
+emit_16(1130);
+emit_16(1063);
+emit_16(1130);
+emit_16(1064);
+emit_16(1131);
+emit_16(1065);
+emit_16(1131);
+emit_16(1064);
+emit_16(1131);
+emit_16(1065);
+emit_16(1132);
+emit_16(1066);
+emit_16(1132);
+emit_16(1065);
+emit_16(1132);
+emit_16(1066);
+emit_16(1133);
+emit_16(1067);
+emit_16(1133);
+emit_16(1066);
+emit_16(1133);
+emit_16(1067);
+emit_16(1134);
+emit_16(1068);
+emit_16(1134);
+emit_16(1067);
+emit_16(1134);
+emit_16(1068);
+emit_16(1135);
+emit_16(1069);
+emit_16(1135);
+emit_16(1068);
+emit_16(1135);
+emit_16(1069);
+emit_16(1136);
+emit_16(1070);
+emit_16(1136);
+emit_16(1069);
+emit_16(1136);
+emit_16(1070);
+emit_16(1137);
+emit_16(1071);
+emit_16(1137);
+emit_16(1070);
+emit_16(1137);
+emit_16(1071);
+emit_16(1138);
+emit_16(1072);
+emit_16(1138);
+emit_16(1071);
+emit_16(1138);
+emit_16(1072);
+emit_16(1139);
+emit_16(1073);
+emit_16(1139);
+emit_16(1072);
+emit_16(1139);
+emit_16(1073);
+emit_16(1140);
+emit_16(1074);
+emit_16(1140);
+emit_16(1073);
+emit_16(1140);
+emit_16(1074);
+emit_16(1141);
+emit_16(1075);
+emit_16(1141);
+emit_16(1074);
+emit_16(1141);
+emit_16(1075);
+emit_16(1142);
+emit_16(1076);
+emit_16(1142);
+emit_16(1075);
+emit_16(1142);
+emit_16(1076);
+emit_16(1143);
+emit_16(1077);
+emit_16(1143);
+emit_16(1076);
+emit_16(1143);
+emit_16(1077);
+emit_16(1144);
+emit_16(1078);
+emit_16(1144);
+emit_16(1077);
+emit_16(1144);
+emit_16(1078);
+emit_16(1145);
+emit_16(1079);
+emit_16(1145);
+emit_16(1078);
+emit_16(1145);
+emit_16(1079);
+emit_16(1146);
+emit_16(1080);
+emit_16(1146);
+emit_16(1079);
+emit_16(1146);
+emit_16(1080);
+emit_16(1147);
+emit_16(1081);
+emit_16(1147);
+emit_16(1080);
+emit_16(1147);
+emit_16(1081);
+emit_16(1148);
+emit_16(1082);
+emit_16(1148);
+emit_16(1081);
+emit_16(1148);
+emit_16(1082);
+emit_16(1149);
+emit_16(1083);
+emit_16(1149);
+emit_16(1082);
+emit_16(1149);
+emit_16(1083);
+emit_16(1150);
+emit_16(1084);
+emit_16(1150);
+emit_16(1083);
+emit_16(1150);
+emit_16(1084);
+emit_16(1151);
+emit_16(1085);
+emit_16(1151);
+emit_16(1084);
+emit_16(1151);
+emit_16(1085);
+emit_16(1152);
+emit_16(1086);
+emit_16(1152);
+emit_16(1085);
+emit_16(1152);
+emit_16(1086);
+emit_16(1153);
+emit_16(1087);
+emit_16(1153);
+emit_16(1086);
+emit_16(1153);
+emit_16(1087);
+emit_16(1154);
+emit_16(1088);
+emit_16(1154);
+emit_16(1087);
+emit_16(1154);
+emit_16(1088);
+emit_16(1155);
+emit_16(1089);
+emit_16(1155);
+emit_16(1088);
+emit_16(1155);
+emit_16(1089);
+emit_16(1156);
+emit_16(1090);
+emit_16(1156);
+emit_16(1089);
+emit_16(1156);
+emit_16(1090);
+emit_16(1157);
+emit_16(1091);
+emit_16(1157);
+emit_16(1090);
+emit_16(1157);
+emit_16(1091);
+emit_16(1158);
+emit_16(1092);
+emit_16(1158);
+emit_16(1091);
+emit_16(1158);
+emit_16(1092);
+emit_16(1159);
+emit_16(1093);
+emit_16(1159);
+emit_16(1092);
+emit_16(1159);
+emit_16(1093);
+emit_16(1160);
+emit_16(1094);
+emit_16(1160);
+emit_16(1093);
+emit_16(1160);
+emit_16(1094);
+emit_16(1161);
+emit_16(1095);
+emit_16(1161);
+emit_16(1094);
+emit_16(1161);
+emit_16(1095);
+emit_16(1162);
+emit_16(1096);
+emit_16(1162);
+emit_16(1095);
+emit_16(1162);
+emit_16(1096);
+emit_16(1163);
+emit_16(1097);
+emit_16(1163);
+emit_16(1096);
+emit_16(1163);
+emit_16(1097);
+emit_16(1164);
+emit_16(1098);
+emit_16(1164);
+emit_16(1097);
+emit_16(1164);
+emit_16(1098);
+emit_16(1165);
+emit_16(1099);
+emit_16(1165);
+emit_16(1098);
+emit_16(1165);
+emit_16(1099);
+emit_16(1166);
+emit_16(1100);
+emit_16(1166);
+emit_16(1099);
+emit_16(1166);
+emit_16(1100);
+emit_16(1167);
+emit_16(1101);
+emit_16(1167);
+emit_16(1100);
+emit_16(1167);
+emit_16(1101);
+emit_16(1168);
+emit_16(1102);
+emit_16(1168);
+emit_16(1101);
+emit_16(1168);
+emit_16(1102);
+emit_16(1169);
+emit_16(1103);
+emit_16(1169);
+emit_16(1102);
+emit_16(1169);
+emit_16(1103);
+emit_16(1170);
+emit_16(1104);
+emit_16(1170);
+emit_16(1103);
+emit_16(1170);
+emit_16(1104);
+emit_16(1171);
+emit_16(1105);
+emit_16(1171);
+emit_16(1104);
+emit_16(1171);
+emit_16(1105);
+emit_16(1172);
+emit_16(1106);
+emit_16(1172);
+emit_16(1105);
+emit_16(1172);
+emit_16(1106);
+emit_16(1173);
+emit_16(1107);
+emit_16(1173);
+emit_16(1106);
+emit_16(1173);
+emit_16(1107);
+emit_16(1174);
+emit_16(1108);
+emit_16(1174);
+emit_16(1107);
+emit_16(1174);
+emit_16(1108);
+emit_16(1175);
+emit_16(1109);
+emit_16(1175);
+emit_16(1108);
+emit_16(1175);
+emit_16(1109);
+emit_16(1176);
+emit_16(1110);
+emit_16(1176);
+emit_16(1109);
+emit_16(1176);
+emit_16(1110);
+emit_16(1177);
+emit_16(1111);
+emit_16(1177);
+emit_16(1110);
+emit_16(1177);
+emit_16(1111);
+emit_16(1178);
+emit_16(1112);
+emit_16(1178);
+emit_16(1111);
+emit_16(1178);
+emit_16(1112);
+emit_16(1179);
+emit_16(1113);
+emit_16(1179);
+emit_16(1112);
+emit_16(1179);
+emit_16(1113);
+emit_16(1180);
+emit_16(1114);
+emit_16(1180);
+emit_16(1113);
+emit_16(1180);
+emit_16(1114);
+emit_16(1181);
+emit_16(1115);
+emit_16(1181);
+emit_16(1114);
+emit_16(1181);
+emit_16(1115);
+emit_16(1182);
+emit_16(1116);
+emit_16(1182);
+emit_16(1115);
+emit_16(1182);
+emit_16(1116);
+emit_16(1183);
+emit_16(1117);
+emit_16(1183);
+emit_16(1116);
+emit_16(1183);
+emit_16(1117);
+emit_16(1184);
+emit_16(1118);
+emit_16(1184);
+emit_16(1117);
+emit_16(1184);
+emit_16(1118);
+emit_16(1185);
+emit_16(1119);
+emit_16(1185);
+emit_16(1118);
+emit_16(1185);
+emit_16(1119);
+emit_16(1186);
+emit_16(1120);
+emit_16(1186);
+emit_16(1119);
+emit_16(1186);
+emit_16(1120);
+emit_16(1187);
+emit_16(1121);
+emit_16(1187);
+emit_16(1120);
+emit_16(1188);
+emit_16(1122);
+emit_16(1189);
+emit_16(1123);
+emit_16(1189);
+emit_16(1122);
+emit_16(1189);
+emit_16(1123);
+emit_16(1190);
+emit_16(1124);
+emit_16(1190);
+emit_16(1123);
+emit_16(1190);
+emit_16(1124);
+emit_16(1191);
+emit_16(1125);
+emit_16(1191);
+emit_16(1124);
+emit_16(1191);
+emit_16(1125);
+emit_16(1192);
+emit_16(1126);
+emit_16(1192);
+emit_16(1125);
+emit_16(1192);
+emit_16(1126);
+emit_16(1193);
+emit_16(1127);
+emit_16(1193);
+emit_16(1126);
+emit_16(1193);
+emit_16(1127);
+emit_16(1194);
+emit_16(1128);
+emit_16(1194);
+emit_16(1127);
+emit_16(1194);
+emit_16(1128);
+emit_16(1195);
+emit_16(1129);
+emit_16(1195);
+emit_16(1128);
+emit_16(1195);
+emit_16(1129);
+emit_16(1196);
+emit_16(1130);
+emit_16(1196);
+emit_16(1129);
+emit_16(1196);
+emit_16(1130);
+emit_16(1197);
+emit_16(1131);
+emit_16(1197);
+emit_16(1130);
+emit_16(1197);
+emit_16(1131);
+emit_16(1198);
+emit_16(1132);
+emit_16(1198);
+emit_16(1131);
+emit_16(1198);
+emit_16(1132);
+emit_16(1199);
+emit_16(1133);
+emit_16(1199);
+emit_16(1132);
+emit_16(1199);
+emit_16(1133);
+emit_16(1200);
+emit_16(1134);
+emit_16(1200);
+emit_16(1133);
+emit_16(1200);
+emit_16(1134);
+emit_16(1201);
+emit_16(1135);
+emit_16(1201);
+emit_16(1134);
+emit_16(1201);
+emit_16(1135);
+emit_16(1202);
+emit_16(1136);
+emit_16(1202);
+emit_16(1135);
+emit_16(1202);
+emit_16(1136);
+emit_16(1203);
+emit_16(1137);
+emit_16(1203);
+emit_16(1136);
+emit_16(1203);
+emit_16(1137);
+emit_16(1204);
+emit_16(1138);
+emit_16(1204);
+emit_16(1137);
+emit_16(1204);
+emit_16(1138);
+emit_16(1205);
+emit_16(1139);
+emit_16(1205);
+emit_16(1138);
+emit_16(1205);
+emit_16(1139);
+emit_16(1206);
+emit_16(1140);
+emit_16(1206);
+emit_16(1139);
+emit_16(1206);
+emit_16(1140);
+emit_16(1207);
+emit_16(1141);
+emit_16(1207);
+emit_16(1140);
+emit_16(1207);
+emit_16(1141);
+emit_16(1208);
+emit_16(1142);
+emit_16(1208);
+emit_16(1141);
+emit_16(1208);
+emit_16(1142);
+emit_16(1209);
+emit_16(1143);
+emit_16(1209);
+emit_16(1142);
+emit_16(1209);
+emit_16(1143);
+emit_16(1210);
+emit_16(1144);
+emit_16(1210);
+emit_16(1143);
+emit_16(1210);
+emit_16(1144);
+emit_16(1211);
+emit_16(1145);
+emit_16(1211);
+emit_16(1144);
+emit_16(1211);
+emit_16(1145);
+emit_16(1212);
+emit_16(1146);
+emit_16(1212);
+emit_16(1145);
+emit_16(1212);
+emit_16(1146);
+emit_16(1213);
+emit_16(1147);
+emit_16(1213);
+emit_16(1146);
+emit_16(1213);
+emit_16(1147);
+emit_16(1214);
+emit_16(1148);
+emit_16(1214);
+emit_16(1147);
+emit_16(1214);
+emit_16(1148);
+emit_16(1215);
+emit_16(1149);
+emit_16(1215);
+emit_16(1148);
+emit_16(1215);
+emit_16(1149);
+emit_16(1216);
+emit_16(1150);
+emit_16(1216);
+emit_16(1149);
+emit_16(1216);
+emit_16(1150);
+emit_16(1217);
+emit_16(1151);
+emit_16(1217);
+emit_16(1150);
+emit_16(1217);
+emit_16(1151);
+emit_16(1218);
+emit_16(1152);
+emit_16(1218);
+emit_16(1151);
+emit_16(1218);
+emit_16(1152);
+emit_16(1219);
+emit_16(1153);
+emit_16(1219);
+emit_16(1152);
+emit_16(1219);
+emit_16(1153);
+emit_16(1220);
+emit_16(1154);
+emit_16(1220);
+emit_16(1153);
+emit_16(1220);
+emit_16(1154);
+emit_16(1221);
+emit_16(1155);
+emit_16(1221);
+emit_16(1154);
+emit_16(1221);
+emit_16(1155);
+emit_16(1222);
+emit_16(1156);
+emit_16(1222);
+emit_16(1155);
+emit_16(1222);
+emit_16(1156);
+emit_16(1223);
+emit_16(1157);
+emit_16(1223);
+emit_16(1156);
+emit_16(1223);
+emit_16(1157);
+emit_16(1224);
+emit_16(1158);
+emit_16(1224);
+emit_16(1157);
+emit_16(1224);
+emit_16(1158);
+emit_16(1225);
+emit_16(1159);
+emit_16(1225);
+emit_16(1158);
+emit_16(1225);
+emit_16(1159);
+emit_16(1226);
+emit_16(1160);
+emit_16(1226);
+emit_16(1159);
+emit_16(1226);
+emit_16(1160);
+emit_16(1227);
+emit_16(1161);
+emit_16(1227);
+emit_16(1160);
+emit_16(1227);
+emit_16(1161);
+emit_16(1228);
+emit_16(1162);
+emit_16(1228);
+emit_16(1161);
+emit_16(1228);
+emit_16(1162);
+emit_16(1229);
+emit_16(1163);
+emit_16(1229);
+emit_16(1162);
+emit_16(1229);
+emit_16(1163);
+emit_16(1230);
+emit_16(1164);
+emit_16(1230);
+emit_16(1163);
+emit_16(1230);
+emit_16(1164);
+emit_16(1231);
+emit_16(1165);
+emit_16(1231);
+emit_16(1164);
+emit_16(1231);
+emit_16(1165);
+emit_16(1232);
+emit_16(1166);
+emit_16(1232);
+emit_16(1165);
+emit_16(1232);
+emit_16(1166);
+emit_16(1233);
+emit_16(1167);
+emit_16(1233);
+emit_16(1166);
+emit_16(1233);
+emit_16(1167);
+emit_16(1234);
+emit_16(1168);
+emit_16(1234);
+emit_16(1167);
+emit_16(1234);
+emit_16(1168);
+emit_16(1235);
+emit_16(1169);
+emit_16(1235);
+emit_16(1168);
+emit_16(1235);
+emit_16(1169);
+emit_16(1236);
+emit_16(1170);
+emit_16(1236);
+emit_16(1169);
+emit_16(1236);
+emit_16(1170);
+emit_16(1237);
+emit_16(1171);
+emit_16(1237);
+emit_16(1170);
+emit_16(1237);
+emit_16(1171);
+emit_16(1238);
+emit_16(1172);
+emit_16(1238);
+emit_16(1171);
+emit_16(1238);
+emit_16(1172);
+emit_16(1239);
+emit_16(1173);
+emit_16(1239);
+emit_16(1172);
+emit_16(1239);
+emit_16(1173);
+emit_16(1240);
+emit_16(1174);
+emit_16(1240);
+emit_16(1173);
+emit_16(1240);
+emit_16(1174);
+emit_16(1241);
+emit_16(1175);
+emit_16(1241);
+emit_16(1174);
+emit_16(1241);
+emit_16(1175);
+emit_16(1242);
+emit_16(1176);
+emit_16(1242);
+emit_16(1175);
+emit_16(1242);
+emit_16(1176);
+emit_16(1243);
+emit_16(1177);
+emit_16(1243);
+emit_16(1176);
+emit_16(1243);
+emit_16(1177);
+emit_16(1244);
+emit_16(1178);
+emit_16(1244);
+emit_16(1177);
+emit_16(1244);
+emit_16(1178);
+emit_16(1245);
+emit_16(1179);
+emit_16(1245);
+emit_16(1178);
+emit_16(1245);
+emit_16(1179);
+emit_16(1246);
+emit_16(1180);
+emit_16(1246);
+emit_16(1179);
+emit_16(1246);
+emit_16(1180);
+emit_16(1247);
+emit_16(1181);
+emit_16(1247);
+emit_16(1180);
+emit_16(1247);
+emit_16(1181);
+emit_16(1248);
+emit_16(1182);
+emit_16(1248);
+emit_16(1181);
+emit_16(1248);
+emit_16(1182);
+emit_16(1249);
+emit_16(1183);
+emit_16(1249);
+emit_16(1182);
+emit_16(1249);
+emit_16(1183);
+emit_16(1250);
+emit_16(1184);
+emit_16(1250);
+emit_16(1183);
+emit_16(1250);
+emit_16(1184);
+emit_16(1251);
+emit_16(1185);
+emit_16(1251);
+emit_16(1184);
+emit_16(1251);
+emit_16(1185);
+emit_16(1252);
+emit_16(1186);
+emit_16(1252);
+emit_16(1185);
+emit_16(1252);
+emit_16(1186);
+emit_16(1253);
+emit_16(1187);
+emit_16(1253);
+emit_16(1186);
+emit_16(1254);
+emit_16(1188);
+emit_16(1255);
+emit_16(1189);
+emit_16(1255);
+emit_16(1188);
+emit_16(1255);
+emit_16(1189);
+emit_16(1256);
+emit_16(1190);
+emit_16(1256);
+emit_16(1189);
+emit_16(1256);
+emit_16(1190);
+emit_16(1257);
+emit_16(1191);
+emit_16(1257);
+emit_16(1190);
+emit_16(1257);
+emit_16(1191);
+emit_16(1258);
+emit_16(1192);
+emit_16(1258);
+emit_16(1191);
+emit_16(1258);
+emit_16(1192);
+emit_16(1259);
+emit_16(1193);
+emit_16(1259);
+emit_16(1192);
+emit_16(1259);
+emit_16(1193);
+emit_16(1260);
+emit_16(1194);
+emit_16(1260);
+emit_16(1193);
+emit_16(1260);
+emit_16(1194);
+emit_16(1261);
+emit_16(1195);
+emit_16(1261);
+emit_16(1194);
+emit_16(1261);
+emit_16(1195);
+emit_16(1262);
+emit_16(1196);
+emit_16(1262);
+emit_16(1195);
+emit_16(1262);
+emit_16(1196);
+emit_16(1263);
+emit_16(1197);
+emit_16(1263);
+emit_16(1196);
+emit_16(1263);
+emit_16(1197);
+emit_16(1264);
+emit_16(1198);
+emit_16(1264);
+emit_16(1197);
+emit_16(1264);
+emit_16(1198);
+emit_16(1265);
+emit_16(1199);
+emit_16(1265);
+emit_16(1198);
+emit_16(1265);
+emit_16(1199);
+emit_16(1266);
+emit_16(1200);
+emit_16(1266);
+emit_16(1199);
+emit_16(1266);
+emit_16(1200);
+emit_16(1267);
+emit_16(1201);
+emit_16(1267);
+emit_16(1200);
+emit_16(1267);
+emit_16(1201);
+emit_16(1268);
+emit_16(1202);
+emit_16(1268);
+emit_16(1201);
+emit_16(1268);
+emit_16(1202);
+emit_16(1269);
+emit_16(1203);
+emit_16(1269);
+emit_16(1202);
+emit_16(1269);
+emit_16(1203);
+emit_16(1270);
+emit_16(1204);
+emit_16(1270);
+emit_16(1203);
+emit_16(1270);
+emit_16(1204);
+emit_16(1271);
+emit_16(1205);
+emit_16(1271);
+emit_16(1204);
+emit_16(1271);
+emit_16(1205);
+emit_16(1272);
+emit_16(1206);
+emit_16(1272);
+emit_16(1205);
+emit_16(1272);
+emit_16(1206);
+emit_16(1273);
+emit_16(1207);
+emit_16(1273);
+emit_16(1206);
+emit_16(1273);
+emit_16(1207);
+emit_16(1274);
+emit_16(1208);
+emit_16(1274);
+emit_16(1207);
+emit_16(1274);
+emit_16(1208);
+emit_16(1275);
+emit_16(1209);
+emit_16(1275);
+emit_16(1208);
+emit_16(1275);
+emit_16(1209);
+emit_16(1276);
+emit_16(1210);
+emit_16(1276);
+emit_16(1209);
+emit_16(1276);
+emit_16(1210);
+emit_16(1277);
+emit_16(1211);
+emit_16(1277);
+emit_16(1210);
+emit_16(1277);
+emit_16(1211);
+emit_16(1278);
+emit_16(1212);
+emit_16(1278);
+emit_16(1211);
+emit_16(1278);
+emit_16(1212);
+emit_16(1279);
+emit_16(1213);
+emit_16(1279);
+emit_16(1212);
+emit_16(1279);
+emit_16(1213);
+emit_16(1280);
+emit_16(1214);
+emit_16(1280);
+emit_16(1213);
+emit_16(1280);
+emit_16(1214);
+emit_16(1281);
+emit_16(1215);
+emit_16(1281);
+emit_16(1214);
+emit_16(1281);
+emit_16(1215);
+emit_16(1282);
+emit_16(1216);
+emit_16(1282);
+emit_16(1215);
+emit_16(1282);
+emit_16(1216);
+emit_16(1283);
+emit_16(1217);
+emit_16(1283);
+emit_16(1216);
+emit_16(1283);
+emit_16(1217);
+emit_16(1284);
+emit_16(1218);
+emit_16(1284);
+emit_16(1217);
+emit_16(1284);
+emit_16(1218);
+emit_16(1285);
+emit_16(1219);
+emit_16(1285);
+emit_16(1218);
+emit_16(1285);
+emit_16(1219);
+emit_16(1286);
+emit_16(1220);
+emit_16(1286);
+emit_16(1219);
+emit_16(1286);
+emit_16(1220);
+emit_16(1287);
+emit_16(1221);
+emit_16(1287);
+emit_16(1220);
+emit_16(1287);
+emit_16(1221);
+emit_16(1288);
+emit_16(1222);
+emit_16(1288);
+emit_16(1221);
+emit_16(1288);
+emit_16(1222);
+emit_16(1289);
+emit_16(1223);
+emit_16(1289);
+emit_16(1222);
+emit_16(1289);
+emit_16(1223);
+emit_16(1290);
+emit_16(1224);
+emit_16(1290);
+emit_16(1223);
+emit_16(1290);
+emit_16(1224);
+emit_16(1291);
+emit_16(1225);
+emit_16(1291);
+emit_16(1224);
+emit_16(1291);
+emit_16(1225);
+emit_16(1292);
+emit_16(1226);
+emit_16(1292);
+emit_16(1225);
+emit_16(1292);
+emit_16(1226);
+emit_16(1293);
+emit_16(1227);
+emit_16(1293);
+emit_16(1226);
+emit_16(1293);
+emit_16(1227);
+emit_16(1294);
+emit_16(1228);
+emit_16(1294);
+emit_16(1227);
+emit_16(1294);
+emit_16(1228);
+emit_16(1295);
+emit_16(1229);
+emit_16(1295);
+emit_16(1228);
+emit_16(1295);
+emit_16(1229);
+emit_16(1296);
+emit_16(1230);
+emit_16(1296);
+emit_16(1229);
+emit_16(1296);
+emit_16(1230);
+emit_16(1297);
+emit_16(1231);
+emit_16(1297);
+emit_16(1230);
+emit_16(1297);
+emit_16(1231);
+emit_16(1298);
+emit_16(1232);
+emit_16(1298);
+emit_16(1231);
+emit_16(1298);
+emit_16(1232);
+emit_16(1299);
+emit_16(1233);
+emit_16(1299);
+emit_16(1232);
+emit_16(1299);
+emit_16(1233);
+emit_16(1300);
+emit_16(1234);
+emit_16(1300);
+emit_16(1233);
+emit_16(1300);
+emit_16(1234);
+emit_16(1301);
+emit_16(1235);
+emit_16(1301);
+emit_16(1234);
+emit_16(1301);
+emit_16(1235);
+emit_16(1302);
+emit_16(1236);
+emit_16(1302);
+emit_16(1235);
+emit_16(1302);
+emit_16(1236);
+emit_16(1303);
+emit_16(1237);
+emit_16(1303);
+emit_16(1236);
+emit_16(1303);
+emit_16(1237);
+emit_16(1304);
+emit_16(1238);
+emit_16(1304);
+emit_16(1237);
+emit_16(1304);
+emit_16(1238);
+emit_16(1305);
+emit_16(1239);
+emit_16(1305);
+emit_16(1238);
+emit_16(1305);
+emit_16(1239);
+emit_16(1306);
+emit_16(1240);
+emit_16(1306);
+emit_16(1239);
+emit_16(1306);
+emit_16(1240);
+emit_16(1307);
+emit_16(1241);
+emit_16(1307);
+emit_16(1240);
+emit_16(1307);
+emit_16(1241);
+emit_16(1308);
+emit_16(1242);
+emit_16(1308);
+emit_16(1241);
+emit_16(1308);
+emit_16(1242);
+emit_16(1309);
+emit_16(1243);
+emit_16(1309);
+emit_16(1242);
+emit_16(1309);
+emit_16(1243);
+emit_16(1310);
+emit_16(1244);
+emit_16(1310);
+emit_16(1243);
+emit_16(1310);
+emit_16(1244);
+emit_16(1311);
+emit_16(1245);
+emit_16(1311);
+emit_16(1244);
+emit_16(1311);
+emit_16(1245);
+emit_16(1312);
+emit_16(1246);
+emit_16(1312);
+emit_16(1245);
+emit_16(1312);
+emit_16(1246);
+emit_16(1313);
+emit_16(1247);
+emit_16(1313);
+emit_16(1246);
+emit_16(1313);
+emit_16(1247);
+emit_16(1314);
+emit_16(1248);
+emit_16(1314);
+emit_16(1247);
+emit_16(1314);
+emit_16(1248);
+emit_16(1315);
+emit_16(1249);
+emit_16(1315);
+emit_16(1248);
+emit_16(1315);
+emit_16(1249);
+emit_16(1316);
+emit_16(1250);
+emit_16(1316);
+emit_16(1249);
+emit_16(1316);
+emit_16(1250);
+emit_16(1317);
+emit_16(1251);
+emit_16(1317);
+emit_16(1250);
+emit_16(1317);
+emit_16(1251);
+emit_16(1318);
+emit_16(1252);
+emit_16(1318);
+emit_16(1251);
+emit_16(1318);
+emit_16(1252);
+emit_16(1319);
+emit_16(1253);
+emit_16(1319);
+emit_16(1252);
+emit_16(1320);
+emit_16(1254);
+emit_16(1321);
+emit_16(1255);
+emit_16(1321);
+emit_16(1254);
+emit_16(1321);
+emit_16(1255);
+emit_16(1322);
+emit_16(1256);
+emit_16(1322);
+emit_16(1255);
+emit_16(1322);
+emit_16(1256);
+emit_16(1323);
+emit_16(1257);
+emit_16(1323);
+emit_16(1256);
+emit_16(1323);
+emit_16(1257);
+emit_16(1324);
+emit_16(1258);
+emit_16(1324);
+emit_16(1257);
+emit_16(1324);
+emit_16(1258);
+emit_16(1325);
+emit_16(1259);
+emit_16(1325);
+emit_16(1258);
+emit_16(1325);
+emit_16(1259);
+emit_16(1326);
+emit_16(1260);
+emit_16(1326);
+emit_16(1259);
+emit_16(1326);
+emit_16(1260);
+emit_16(1327);
+emit_16(1261);
+emit_16(1327);
+emit_16(1260);
+emit_16(1327);
+emit_16(1261);
+emit_16(1328);
+emit_16(1262);
+emit_16(1328);
+emit_16(1261);
+emit_16(1328);
+emit_16(1262);
+emit_16(1329);
+emit_16(1263);
+emit_16(1329);
+emit_16(1262);
+emit_16(1329);
+emit_16(1263);
+emit_16(1330);
+emit_16(1264);
+emit_16(1330);
+emit_16(1263);
+emit_16(1330);
+emit_16(1264);
+emit_16(1331);
+emit_16(1265);
+emit_16(1331);
+emit_16(1264);
+emit_16(1331);
+emit_16(1265);
+emit_16(1332);
+emit_16(1266);
+emit_16(1332);
+emit_16(1265);
+emit_16(1332);
+emit_16(1266);
+emit_16(1333);
+emit_16(1267);
+emit_16(1333);
+emit_16(1266);
+emit_16(1333);
+emit_16(1267);
+emit_16(1334);
+emit_16(1268);
+emit_16(1334);
+emit_16(1267);
+emit_16(1334);
+emit_16(1268);
+emit_16(1335);
+emit_16(1269);
+emit_16(1335);
+emit_16(1268);
+emit_16(1335);
+emit_16(1269);
+emit_16(1336);
+emit_16(1270);
+emit_16(1336);
+emit_16(1269);
+emit_16(1336);
+emit_16(1270);
+emit_16(1337);
+emit_16(1271);
+emit_16(1337);
+emit_16(1270);
+emit_16(1337);
+emit_16(1271);
+emit_16(1338);
+emit_16(1272);
+emit_16(1338);
+emit_16(1271);
+emit_16(1338);
+emit_16(1272);
+emit_16(1339);
+emit_16(1273);
+emit_16(1339);
+emit_16(1272);
+emit_16(1339);
+emit_16(1273);
+emit_16(1340);
+emit_16(1274);
+emit_16(1340);
+emit_16(1273);
+emit_16(1340);
+emit_16(1274);
+emit_16(1341);
+emit_16(1275);
+emit_16(1341);
+emit_16(1274);
+emit_16(1341);
+emit_16(1275);
+emit_16(1342);
+emit_16(1276);
+emit_16(1342);
+emit_16(1275);
+emit_16(1342);
+emit_16(1276);
+emit_16(1343);
+emit_16(1277);
+emit_16(1343);
+emit_16(1276);
+emit_16(1343);
+emit_16(1277);
+emit_16(1344);
+emit_16(1278);
+emit_16(1344);
+emit_16(1277);
+emit_16(1344);
+emit_16(1278);
+emit_16(1345);
+emit_16(1279);
+emit_16(1345);
+emit_16(1278);
+emit_16(1345);
+emit_16(1279);
+emit_16(1346);
+emit_16(1280);
+emit_16(1346);
+emit_16(1279);
+emit_16(1346);
+emit_16(1280);
+emit_16(1347);
+emit_16(1281);
+emit_16(1347);
+emit_16(1280);
+emit_16(1347);
+emit_16(1281);
+emit_16(1348);
+emit_16(1282);
+emit_16(1348);
+emit_16(1281);
+emit_16(1348);
+emit_16(1282);
+emit_16(1349);
+emit_16(1283);
+emit_16(1349);
+emit_16(1282);
+emit_16(1349);
+emit_16(1283);
+emit_16(1350);
+emit_16(1284);
+emit_16(1350);
+emit_16(1283);
+emit_16(1350);
+emit_16(1284);
+emit_16(1351);
+emit_16(1285);
+emit_16(1351);
+emit_16(1284);
+emit_16(1351);
+emit_16(1285);
+emit_16(1352);
+emit_16(1286);
+emit_16(1352);
+emit_16(1285);
+emit_16(1352);
+emit_16(1286);
+emit_16(1353);
+emit_16(1287);
+emit_16(1353);
+emit_16(1286);
+emit_16(1353);
+emit_16(1287);
+emit_16(1354);
+emit_16(1288);
+emit_16(1354);
+emit_16(1287);
+emit_16(1354);
+emit_16(1288);
+emit_16(1355);
+emit_16(1289);
+emit_16(1355);
+emit_16(1288);
+emit_16(1355);
+emit_16(1289);
+emit_16(1356);
+emit_16(1290);
+emit_16(1356);
+emit_16(1289);
+emit_16(1356);
+emit_16(1290);
+emit_16(1357);
+emit_16(1291);
+emit_16(1357);
+emit_16(1290);
+emit_16(1357);
+emit_16(1291);
+emit_16(1358);
+emit_16(1292);
+emit_16(1358);
+emit_16(1291);
+emit_16(1358);
+emit_16(1292);
+emit_16(1359);
+emit_16(1293);
+emit_16(1359);
+emit_16(1292);
+emit_16(1359);
+emit_16(1293);
+emit_16(1360);
+emit_16(1294);
+emit_16(1360);
+emit_16(1293);
+emit_16(1360);
+emit_16(1294);
+emit_16(1361);
+emit_16(1295);
+emit_16(1361);
+emit_16(1294);
+emit_16(1361);
+emit_16(1295);
+emit_16(1362);
+emit_16(1296);
+emit_16(1362);
+emit_16(1295);
+emit_16(1362);
+emit_16(1296);
+emit_16(1363);
+emit_16(1297);
+emit_16(1363);
+emit_16(1296);
+emit_16(1363);
+emit_16(1297);
+emit_16(1364);
+emit_16(1298);
+emit_16(1364);
+emit_16(1297);
+emit_16(1364);
+emit_16(1298);
+emit_16(1365);
+emit_16(1299);
+emit_16(1365);
+emit_16(1298);
+emit_16(1365);
+emit_16(1299);
+emit_16(1366);
+emit_16(1300);
+emit_16(1366);
+emit_16(1299);
+emit_16(1366);
+emit_16(1300);
+emit_16(1367);
+emit_16(1301);
+emit_16(1367);
+emit_16(1300);
+emit_16(1367);
+emit_16(1301);
+emit_16(1368);
+emit_16(1302);
+emit_16(1368);
+emit_16(1301);
+emit_16(1368);
+emit_16(1302);
+emit_16(1369);
+emit_16(1303);
+emit_16(1369);
+emit_16(1302);
+emit_16(1369);
+emit_16(1303);
+emit_16(1370);
+emit_16(1304);
+emit_16(1370);
+emit_16(1303);
+emit_16(1370);
+emit_16(1304);
+emit_16(1371);
+emit_16(1305);
+emit_16(1371);
+emit_16(1304);
+emit_16(1371);
+emit_16(1305);
+emit_16(1372);
+emit_16(1306);
+emit_16(1372);
+emit_16(1305);
+emit_16(1372);
+emit_16(1306);
+emit_16(1373);
+emit_16(1307);
+emit_16(1373);
+emit_16(1306);
+emit_16(1373);
+emit_16(1307);
+emit_16(1374);
+emit_16(1308);
+emit_16(1374);
+emit_16(1307);
+emit_16(1374);
+emit_16(1308);
+emit_16(1375);
+emit_16(1309);
+emit_16(1375);
+emit_16(1308);
+emit_16(1375);
+emit_16(1309);
+emit_16(1376);
+emit_16(1310);
+emit_16(1376);
+emit_16(1309);
+emit_16(1376);
+emit_16(1310);
+emit_16(1377);
+emit_16(1311);
+emit_16(1377);
+emit_16(1310);
+emit_16(1377);
+emit_16(1311);
+emit_16(1378);
+emit_16(1312);
+emit_16(1378);
+emit_16(1311);
+emit_16(1378);
+emit_16(1312);
+emit_16(1379);
+emit_16(1313);
+emit_16(1379);
+emit_16(1312);
+emit_16(1379);
+emit_16(1313);
+emit_16(1380);
+emit_16(1314);
+emit_16(1380);
+emit_16(1313);
+emit_16(1380);
+emit_16(1314);
+emit_16(1381);
+emit_16(1315);
+emit_16(1381);
+emit_16(1314);
+emit_16(1381);
+emit_16(1315);
+emit_16(1382);
+emit_16(1316);
+emit_16(1382);
+emit_16(1315);
+emit_16(1382);
+emit_16(1316);
+emit_16(1383);
+emit_16(1317);
+emit_16(1383);
+emit_16(1316);
+emit_16(1383);
+emit_16(1317);
+emit_16(1384);
+emit_16(1318);
+emit_16(1384);
+emit_16(1317);
+emit_16(1384);
+emit_16(1318);
+emit_16(1385);
+emit_16(1319);
+emit_16(1385);
+emit_16(1318);
+emit_16(1386);
+emit_16(1320);
+emit_16(1387);
+emit_16(1321);
+emit_16(1387);
+emit_16(1320);
+emit_16(1387);
+emit_16(1321);
+emit_16(1388);
+emit_16(1322);
+emit_16(1388);
+emit_16(1321);
+emit_16(1388);
+emit_16(1322);
+emit_16(1389);
+emit_16(1323);
+emit_16(1389);
+emit_16(1322);
+emit_16(1389);
+emit_16(1323);
+emit_16(1390);
+emit_16(1324);
+emit_16(1390);
+emit_16(1323);
+emit_16(1390);
+emit_16(1324);
+emit_16(1391);
+emit_16(1325);
+emit_16(1391);
+emit_16(1324);
+emit_16(1391);
+emit_16(1325);
+emit_16(1392);
+emit_16(1326);
+emit_16(1392);
+emit_16(1325);
+emit_16(1392);
+emit_16(1326);
+emit_16(1393);
+emit_16(1327);
+emit_16(1393);
+emit_16(1326);
+emit_16(1393);
+emit_16(1327);
+emit_16(1394);
+emit_16(1328);
+emit_16(1394);
+emit_16(1327);
+emit_16(1394);
+emit_16(1328);
+emit_16(1395);
+emit_16(1329);
+emit_16(1395);
+emit_16(1328);
+emit_16(1395);
+emit_16(1329);
+emit_16(1396);
+emit_16(1330);
+emit_16(1396);
+emit_16(1329);
+emit_16(1396);
+emit_16(1330);
+emit_16(1397);
+emit_16(1331);
+emit_16(1397);
+emit_16(1330);
+emit_16(1397);
+emit_16(1331);
+emit_16(1398);
+emit_16(1332);
+emit_16(1398);
+emit_16(1331);
+emit_16(1398);
+emit_16(1332);
+emit_16(1399);
+emit_16(1333);
+emit_16(1399);
+emit_16(1332);
+emit_16(1399);
+emit_16(1333);
+emit_16(1400);
+emit_16(1334);
+emit_16(1400);
+emit_16(1333);
+emit_16(1400);
+emit_16(1334);
+emit_16(1401);
+emit_16(1335);
+emit_16(1401);
+emit_16(1334);
+emit_16(1401);
+emit_16(1335);
+emit_16(1402);
+emit_16(1336);
+emit_16(1402);
+emit_16(1335);
+emit_16(1402);
+emit_16(1336);
+emit_16(1403);
+emit_16(1337);
+emit_16(1403);
+emit_16(1336);
+emit_16(1403);
+emit_16(1337);
+emit_16(1404);
+emit_16(1338);
+emit_16(1404);
+emit_16(1337);
+emit_16(1404);
+emit_16(1338);
+emit_16(1405);
+emit_16(1339);
+emit_16(1405);
+emit_16(1338);
+emit_16(1405);
+emit_16(1339);
+emit_16(1406);
+emit_16(1340);
+emit_16(1406);
+emit_16(1339);
+emit_16(1406);
+emit_16(1340);
+emit_16(1407);
+emit_16(1341);
+emit_16(1407);
+emit_16(1340);
+emit_16(1407);
+emit_16(1341);
+emit_16(1408);
+emit_16(1342);
+emit_16(1408);
+emit_16(1341);
+emit_16(1408);
+emit_16(1342);
+emit_16(1409);
+emit_16(1343);
+emit_16(1409);
+emit_16(1342);
+emit_16(1409);
+emit_16(1343);
+emit_16(1410);
+emit_16(1344);
+emit_16(1410);
+emit_16(1343);
+emit_16(1410);
+emit_16(1344);
+emit_16(1411);
+emit_16(1345);
+emit_16(1411);
+emit_16(1344);
+emit_16(1411);
+emit_16(1345);
+emit_16(1412);
+emit_16(1346);
+emit_16(1412);
+emit_16(1345);
+emit_16(1412);
+emit_16(1346);
+emit_16(1413);
+emit_16(1347);
+emit_16(1413);
+emit_16(1346);
+emit_16(1413);
+emit_16(1347);
+emit_16(1414);
+emit_16(1348);
+emit_16(1414);
+emit_16(1347);
+emit_16(1414);
+emit_16(1348);
+emit_16(1415);
+emit_16(1349);
+emit_16(1415);
+emit_16(1348);
+emit_16(1415);
+emit_16(1349);
+emit_16(1416);
+emit_16(1350);
+emit_16(1416);
+emit_16(1349);
+emit_16(1416);
+emit_16(1350);
+emit_16(1417);
+emit_16(1351);
+emit_16(1417);
+emit_16(1350);
+emit_16(1417);
+emit_16(1351);
+emit_16(1418);
+emit_16(1352);
+emit_16(1418);
+emit_16(1351);
+emit_16(1418);
+emit_16(1352);
+emit_16(1419);
+emit_16(1353);
+emit_16(1419);
+emit_16(1352);
+emit_16(1419);
+emit_16(1353);
+emit_16(1420);
+emit_16(1354);
+emit_16(1420);
+emit_16(1353);
+emit_16(1420);
+emit_16(1354);
+emit_16(1421);
+emit_16(1355);
+emit_16(1421);
+emit_16(1354);
+emit_16(1421);
+emit_16(1355);
+emit_16(1422);
+emit_16(1356);
+emit_16(1422);
+emit_16(1355);
+emit_16(1422);
+emit_16(1356);
+emit_16(1423);
+emit_16(1357);
+emit_16(1423);
+emit_16(1356);
+emit_16(1423);
+emit_16(1357);
+emit_16(1424);
+emit_16(1358);
+emit_16(1424);
+emit_16(1357);
+emit_16(1424);
+emit_16(1358);
+emit_16(1425);
+emit_16(1359);
+emit_16(1425);
+emit_16(1358);
+emit_16(1425);
+emit_16(1359);
+emit_16(1426);
+emit_16(1360);
+emit_16(1426);
+emit_16(1359);
+emit_16(1426);
+emit_16(1360);
+emit_16(1427);
+emit_16(1361);
+emit_16(1427);
+emit_16(1360);
+emit_16(1427);
+emit_16(1361);
+emit_16(1428);
+emit_16(1362);
+emit_16(1428);
+emit_16(1361);
+emit_16(1428);
+emit_16(1362);
+emit_16(1429);
+emit_16(1363);
+emit_16(1429);
+emit_16(1362);
+emit_16(1429);
+emit_16(1363);
+emit_16(1430);
+emit_16(1364);
+emit_16(1430);
+emit_16(1363);
+emit_16(1430);
+emit_16(1364);
+emit_16(1431);
+emit_16(1365);
+emit_16(1431);
+emit_16(1364);
+emit_16(1431);
+emit_16(1365);
+emit_16(1432);
+emit_16(1366);
+emit_16(1432);
+emit_16(1365);
+emit_16(1432);
+emit_16(1366);
+emit_16(1433);
+emit_16(1367);
+emit_16(1433);
+emit_16(1366);
+emit_16(1433);
+emit_16(1367);
+emit_16(1434);
+emit_16(1368);
+emit_16(1434);
+emit_16(1367);
+emit_16(1434);
+emit_16(1368);
+emit_16(1435);
+emit_16(1369);
+emit_16(1435);
+emit_16(1368);
+emit_16(1435);
+emit_16(1369);
+emit_16(1436);
+emit_16(1370);
+emit_16(1436);
+emit_16(1369);
+emit_16(1436);
+emit_16(1370);
+emit_16(1437);
+emit_16(1371);
+emit_16(1437);
+emit_16(1370);
+emit_16(1437);
+emit_16(1371);
+emit_16(1438);
+emit_16(1372);
+emit_16(1438);
+emit_16(1371);
+emit_16(1438);
+emit_16(1372);
+emit_16(1439);
+emit_16(1373);
+emit_16(1439);
+emit_16(1372);
+emit_16(1439);
+emit_16(1373);
+emit_16(1440);
+emit_16(1374);
+emit_16(1440);
+emit_16(1373);
+emit_16(1440);
+emit_16(1374);
+emit_16(1441);
+emit_16(1375);
+emit_16(1441);
+emit_16(1374);
+emit_16(1441);
+emit_16(1375);
+emit_16(1442);
+emit_16(1376);
+emit_16(1442);
+emit_16(1375);
+emit_16(1442);
+emit_16(1376);
+emit_16(1443);
+emit_16(1377);
+emit_16(1443);
+emit_16(1376);
+emit_16(1443);
+emit_16(1377);
+emit_16(1444);
+emit_16(1378);
+emit_16(1444);
+emit_16(1377);
+emit_16(1444);
+emit_16(1378);
+emit_16(1445);
+emit_16(1379);
+emit_16(1445);
+emit_16(1378);
+emit_16(1445);
+emit_16(1379);
+emit_16(1446);
+emit_16(1380);
+emit_16(1446);
+emit_16(1379);
+emit_16(1446);
+emit_16(1380);
+emit_16(1447);
+emit_16(1381);
+emit_16(1447);
+emit_16(1380);
+emit_16(1447);
+emit_16(1381);
+emit_16(1448);
+emit_16(1382);
+emit_16(1448);
+emit_16(1381);
+emit_16(1448);
+emit_16(1382);
+emit_16(1449);
+emit_16(1383);
+emit_16(1449);
+emit_16(1382);
+emit_16(1449);
+emit_16(1383);
+emit_16(1450);
+emit_16(1384);
+emit_16(1450);
+emit_16(1383);
+emit_16(1450);
+emit_16(1384);
+emit_16(1451);
+emit_16(1385);
+emit_16(1451);
+emit_16(1384);
+emit_16(1452);
+emit_16(1386);
+emit_16(1453);
+emit_16(1387);
+emit_16(1453);
+emit_16(1386);
+emit_16(1453);
+emit_16(1387);
+emit_16(1454);
+emit_16(1388);
+emit_16(1454);
+emit_16(1387);
+emit_16(1454);
+emit_16(1388);
+emit_16(1455);
+emit_16(1389);
+emit_16(1455);
+emit_16(1388);
+emit_16(1455);
+emit_16(1389);
+emit_16(1456);
+emit_16(1390);
+emit_16(1456);
+emit_16(1389);
+emit_16(1456);
+emit_16(1390);
+emit_16(1457);
+emit_16(1391);
+emit_16(1457);
+emit_16(1390);
+emit_16(1457);
+emit_16(1391);
+emit_16(1458);
+emit_16(1392);
+emit_16(1458);
+emit_16(1391);
+emit_16(1458);
+emit_16(1392);
+emit_16(1459);
+emit_16(1393);
+emit_16(1459);
+emit_16(1392);
+emit_16(1459);
+emit_16(1393);
+emit_16(1460);
+emit_16(1394);
+emit_16(1460);
+emit_16(1393);
+emit_16(1460);
+emit_16(1394);
+emit_16(1461);
+emit_16(1395);
+emit_16(1461);
+emit_16(1394);
+emit_16(1461);
+emit_16(1395);
+emit_16(1462);
+emit_16(1396);
+emit_16(1462);
+emit_16(1395);
+emit_16(1462);
+emit_16(1396);
+emit_16(1463);
+emit_16(1397);
+emit_16(1463);
+emit_16(1396);
+emit_16(1463);
+emit_16(1397);
+emit_16(1464);
+emit_16(1398);
+emit_16(1464);
+emit_16(1397);
+emit_16(1464);
+emit_16(1398);
+emit_16(1465);
+emit_16(1399);
+emit_16(1465);
+emit_16(1398);
+emit_16(1465);
+emit_16(1399);
+emit_16(1466);
+emit_16(1400);
+emit_16(1466);
+emit_16(1399);
+emit_16(1466);
+emit_16(1400);
+emit_16(1467);
+emit_16(1401);
+emit_16(1467);
+emit_16(1400);
+emit_16(1467);
+emit_16(1401);
+emit_16(1468);
+emit_16(1402);
+emit_16(1468);
+emit_16(1401);
+emit_16(1468);
+emit_16(1402);
+emit_16(1469);
+emit_16(1403);
+emit_16(1469);
+emit_16(1402);
+emit_16(1469);
+emit_16(1403);
+emit_16(1470);
+emit_16(1404);
+emit_16(1470);
+emit_16(1403);
+emit_16(1470);
+emit_16(1404);
+emit_16(1471);
+emit_16(1405);
+emit_16(1471);
+emit_16(1404);
+emit_16(1471);
+emit_16(1405);
+emit_16(1472);
+emit_16(1406);
+emit_16(1472);
+emit_16(1405);
+emit_16(1472);
+emit_16(1406);
+emit_16(1473);
+emit_16(1407);
+emit_16(1473);
+emit_16(1406);
+emit_16(1473);
+emit_16(1407);
+emit_16(1474);
+emit_16(1408);
+emit_16(1474);
+emit_16(1407);
+emit_16(1474);
+emit_16(1408);
+emit_16(1475);
+emit_16(1409);
+emit_16(1475);
+emit_16(1408);
+emit_16(1475);
+emit_16(1409);
+emit_16(1476);
+emit_16(1410);
+emit_16(1476);
+emit_16(1409);
+emit_16(1476);
+emit_16(1410);
+emit_16(1477);
+emit_16(1411);
+emit_16(1477);
+emit_16(1410);
+emit_16(1477);
+emit_16(1411);
+emit_16(1478);
+emit_16(1412);
+emit_16(1478);
+emit_16(1411);
+emit_16(1478);
+emit_16(1412);
+emit_16(1479);
+emit_16(1413);
+emit_16(1479);
+emit_16(1412);
+emit_16(1479);
+emit_16(1413);
+emit_16(1480);
+emit_16(1414);
+emit_16(1480);
+emit_16(1413);
+emit_16(1480);
+emit_16(1414);
+emit_16(1481);
+emit_16(1415);
+emit_16(1481);
+emit_16(1414);
+emit_16(1481);
+emit_16(1415);
+emit_16(1482);
+emit_16(1416);
+emit_16(1482);
+emit_16(1415);
+emit_16(1482);
+emit_16(1416);
+emit_16(1483);
+emit_16(1417);
+emit_16(1483);
+emit_16(1416);
+emit_16(1483);
+emit_16(1417);
+emit_16(1484);
+emit_16(1418);
+emit_16(1484);
+emit_16(1417);
+emit_16(1484);
+emit_16(1418);
+emit_16(1485);
+emit_16(1419);
+emit_16(1485);
+emit_16(1418);
+emit_16(1485);
+emit_16(1419);
+emit_16(1486);
+emit_16(1420);
+emit_16(1486);
+emit_16(1419);
+emit_16(1486);
+emit_16(1420);
+emit_16(1487);
+emit_16(1421);
+emit_16(1487);
+emit_16(1420);
+emit_16(1487);
+emit_16(1421);
+emit_16(1488);
+emit_16(1422);
+emit_16(1488);
+emit_16(1421);
+emit_16(1488);
+emit_16(1422);
+emit_16(1489);
+emit_16(1423);
+emit_16(1489);
+emit_16(1422);
+emit_16(1489);
+emit_16(1423);
+emit_16(1490);
+emit_16(1424);
+emit_16(1490);
+emit_16(1423);
+emit_16(1490);
+emit_16(1424);
+emit_16(1491);
+emit_16(1425);
+emit_16(1491);
+emit_16(1424);
+emit_16(1491);
+emit_16(1425);
+emit_16(1492);
+emit_16(1426);
+emit_16(1492);
+emit_16(1425);
+emit_16(1492);
+emit_16(1426);
+emit_16(1493);
+emit_16(1427);
+emit_16(1493);
+emit_16(1426);
+emit_16(1493);
+emit_16(1427);
+emit_16(1494);
+emit_16(1428);
+emit_16(1494);
+emit_16(1427);
+emit_16(1494);
+emit_16(1428);
+emit_16(1495);
+emit_16(1429);
+emit_16(1495);
+emit_16(1428);
+emit_16(1495);
+emit_16(1429);
+emit_16(1496);
+emit_16(1430);
+emit_16(1496);
+emit_16(1429);
+emit_16(1496);
+emit_16(1430);
+emit_16(1497);
+emit_16(1431);
+emit_16(1497);
+emit_16(1430);
+emit_16(1497);
+emit_16(1431);
+emit_16(1498);
+emit_16(1432);
+emit_16(1498);
+emit_16(1431);
+emit_16(1498);
+emit_16(1432);
+emit_16(1499);
+emit_16(1433);
+emit_16(1499);
+emit_16(1432);
+emit_16(1499);
+emit_16(1433);
+emit_16(1500);
+emit_16(1434);
+emit_16(1500);
+emit_16(1433);
+emit_16(1500);
+emit_16(1434);
+emit_16(1501);
+emit_16(1435);
+emit_16(1501);
+emit_16(1434);
+emit_16(1501);
+emit_16(1435);
+emit_16(1502);
+emit_16(1436);
+emit_16(1502);
+emit_16(1435);
+emit_16(1502);
+emit_16(1436);
+emit_16(1503);
+emit_16(1437);
+emit_16(1503);
+emit_16(1436);
+emit_16(1503);
+emit_16(1437);
+emit_16(1504);
+emit_16(1438);
+emit_16(1504);
+emit_16(1437);
+emit_16(1504);
+emit_16(1438);
+emit_16(1505);
+emit_16(1439);
+emit_16(1505);
+emit_16(1438);
+emit_16(1505);
+emit_16(1439);
+emit_16(1506);
+emit_16(1440);
+emit_16(1506);
+emit_16(1439);
+emit_16(1506);
+emit_16(1440);
+emit_16(1507);
+emit_16(1441);
+emit_16(1507);
+emit_16(1440);
+emit_16(1507);
+emit_16(1441);
+emit_16(1508);
+emit_16(1442);
+emit_16(1508);
+emit_16(1441);
+emit_16(1508);
+emit_16(1442);
+emit_16(1509);
+emit_16(1443);
+emit_16(1509);
+emit_16(1442);
+emit_16(1509);
+emit_16(1443);
+emit_16(1510);
+emit_16(1444);
+emit_16(1510);
+emit_16(1443);
+emit_16(1510);
+emit_16(1444);
+emit_16(1511);
+emit_16(1445);
+emit_16(1511);
+emit_16(1444);
+emit_16(1511);
+emit_16(1445);
+emit_16(1512);
+emit_16(1446);
+emit_16(1512);
+emit_16(1445);
+emit_16(1512);
+emit_16(1446);
+emit_16(1513);
+emit_16(1447);
+emit_16(1513);
+emit_16(1446);
+emit_16(1513);
+emit_16(1447);
+emit_16(1514);
+emit_16(1448);
+emit_16(1514);
+emit_16(1447);
+emit_16(1514);
+emit_16(1448);
+emit_16(1515);
+emit_16(1449);
+emit_16(1515);
+emit_16(1448);
+emit_16(1515);
+emit_16(1449);
+emit_16(1516);
+emit_16(1450);
+emit_16(1516);
+emit_16(1449);
+emit_16(1516);
+emit_16(1450);
+emit_16(1517);
+emit_16(1451);
+emit_16(1517);
+emit_16(1450);
+emit_16(1518);
+emit_16(1452);
+emit_16(1519);
+emit_16(1453);
+emit_16(1519);
+emit_16(1452);
+emit_16(1519);
+emit_16(1453);
+emit_16(1520);
+emit_16(1454);
+emit_16(1520);
+emit_16(1453);
+emit_16(1520);
+emit_16(1454);
+emit_16(1521);
+emit_16(1455);
+emit_16(1521);
+emit_16(1454);
+emit_16(1521);
+emit_16(1455);
+emit_16(1522);
+emit_16(1456);
+emit_16(1522);
+emit_16(1455);
+emit_16(1522);
+emit_16(1456);
+emit_16(1523);
+emit_16(1457);
+emit_16(1523);
+emit_16(1456);
+emit_16(1523);
+emit_16(1457);
+emit_16(1524);
+emit_16(1458);
+emit_16(1524);
+emit_16(1457);
+emit_16(1524);
+emit_16(1458);
+emit_16(1525);
+emit_16(1459);
+emit_16(1525);
+emit_16(1458);
+emit_16(1525);
+emit_16(1459);
+emit_16(1526);
+emit_16(1460);
+emit_16(1526);
+emit_16(1459);
+emit_16(1526);
+emit_16(1460);
+emit_16(1527);
+emit_16(1461);
+emit_16(1527);
+emit_16(1460);
+emit_16(1527);
+emit_16(1461);
+emit_16(1528);
+emit_16(1462);
+emit_16(1528);
+emit_16(1461);
+emit_16(1528);
+emit_16(1462);
+emit_16(1529);
+emit_16(1463);
+emit_16(1529);
+emit_16(1462);
+emit_16(1529);
+emit_16(1463);
+emit_16(1530);
+emit_16(1464);
+emit_16(1530);
+emit_16(1463);
+emit_16(1530);
+emit_16(1464);
+emit_16(1531);
+emit_16(1465);
+emit_16(1531);
+emit_16(1464);
+emit_16(1531);
+emit_16(1465);
+emit_16(1532);
+emit_16(1466);
+emit_16(1532);
+emit_16(1465);
+emit_16(1532);
+emit_16(1466);
+emit_16(1533);
+emit_16(1467);
+emit_16(1533);
+emit_16(1466);
+emit_16(1533);
+emit_16(1467);
+emit_16(1534);
+emit_16(1468);
+emit_16(1534);
+emit_16(1467);
+emit_16(1534);
+emit_16(1468);
+emit_16(1535);
+emit_16(1469);
+emit_16(1535);
+emit_16(1468);
+emit_16(1535);
+emit_16(1469);
+emit_16(1536);
+emit_16(1470);
+emit_16(1536);
+emit_16(1469);
+emit_16(1536);
+emit_16(1470);
+emit_16(1537);
+emit_16(1471);
+emit_16(1537);
+emit_16(1470);
+emit_16(1537);
+emit_16(1471);
+emit_16(1538);
+emit_16(1472);
+emit_16(1538);
+emit_16(1471);
+emit_16(1538);
+emit_16(1472);
+emit_16(1539);
+emit_16(1473);
+emit_16(1539);
+emit_16(1472);
+emit_16(1539);
+emit_16(1473);
+emit_16(1540);
+emit_16(1474);
+emit_16(1540);
+emit_16(1473);
+emit_16(1540);
+emit_16(1474);
+emit_16(1541);
+emit_16(1475);
+emit_16(1541);
+emit_16(1474);
+emit_16(1541);
+emit_16(1475);
+emit_16(1542);
+emit_16(1476);
+emit_16(1542);
+emit_16(1475);
+emit_16(1542);
+emit_16(1476);
+emit_16(1543);
+emit_16(1477);
+emit_16(1543);
+emit_16(1476);
+emit_16(1543);
+emit_16(1477);
+emit_16(1544);
+emit_16(1478);
+emit_16(1544);
+emit_16(1477);
+emit_16(1544);
+emit_16(1478);
+emit_16(1545);
+emit_16(1479);
+emit_16(1545);
+emit_16(1478);
+emit_16(1545);
+emit_16(1479);
+emit_16(1546);
+emit_16(1480);
+emit_16(1546);
+emit_16(1479);
+emit_16(1546);
+emit_16(1480);
+emit_16(1547);
+emit_16(1481);
+emit_16(1547);
+emit_16(1480);
+emit_16(1547);
+emit_16(1481);
+emit_16(1548);
+emit_16(1482);
+emit_16(1548);
+emit_16(1481);
+emit_16(1548);
+emit_16(1482);
+emit_16(1549);
+emit_16(1483);
+emit_16(1549);
+emit_16(1482);
+emit_16(1549);
+emit_16(1483);
+emit_16(1550);
+emit_16(1484);
+emit_16(1550);
+emit_16(1483);
+emit_16(1550);
+emit_16(1484);
+emit_16(1551);
+emit_16(1485);
+emit_16(1551);
+emit_16(1484);
+emit_16(1551);
+emit_16(1485);
+emit_16(1552);
+emit_16(1486);
+emit_16(1552);
+emit_16(1485);
+emit_16(1552);
+emit_16(1486);
+emit_16(1553);
+emit_16(1487);
+emit_16(1553);
+emit_16(1486);
+emit_16(1553);
+emit_16(1487);
+emit_16(1554);
+emit_16(1488);
+emit_16(1554);
+emit_16(1487);
+emit_16(1554);
+emit_16(1488);
+emit_16(1555);
+emit_16(1489);
+emit_16(1555);
+emit_16(1488);
+emit_16(1555);
+emit_16(1489);
+emit_16(1556);
+emit_16(1490);
+emit_16(1556);
+emit_16(1489);
+emit_16(1556);
+emit_16(1490);
+emit_16(1557);
+emit_16(1491);
+emit_16(1557);
+emit_16(1490);
+emit_16(1557);
+emit_16(1491);
+emit_16(1558);
+emit_16(1492);
+emit_16(1558);
+emit_16(1491);
+emit_16(1558);
+emit_16(1492);
+emit_16(1559);
+emit_16(1493);
+emit_16(1559);
+emit_16(1492);
+emit_16(1559);
+emit_16(1493);
+emit_16(1560);
+emit_16(1494);
+emit_16(1560);
+emit_16(1493);
+emit_16(1560);
+emit_16(1494);
+emit_16(1561);
+emit_16(1495);
+emit_16(1561);
+emit_16(1494);
+emit_16(1561);
+emit_16(1495);
+emit_16(1562);
+emit_16(1496);
+emit_16(1562);
+emit_16(1495);
+emit_16(1562);
+emit_16(1496);
+emit_16(1563);
+emit_16(1497);
+emit_16(1563);
+emit_16(1496);
+emit_16(1563);
+emit_16(1497);
+emit_16(1564);
+emit_16(1498);
+emit_16(1564);
+emit_16(1497);
+emit_16(1564);
+emit_16(1498);
+emit_16(1565);
+emit_16(1499);
+emit_16(1565);
+emit_16(1498);
+emit_16(1565);
+emit_16(1499);
+emit_16(1566);
+emit_16(1500);
+emit_16(1566);
+emit_16(1499);
+emit_16(1566);
+emit_16(1500);
+emit_16(1567);
+emit_16(1501);
+emit_16(1567);
+emit_16(1500);
+emit_16(1567);
+emit_16(1501);
+emit_16(1568);
+emit_16(1502);
+emit_16(1568);
+emit_16(1501);
+emit_16(1568);
+emit_16(1502);
+emit_16(1569);
+emit_16(1503);
+emit_16(1569);
+emit_16(1502);
+emit_16(1569);
+emit_16(1503);
+emit_16(1570);
+emit_16(1504);
+emit_16(1570);
+emit_16(1503);
+emit_16(1570);
+emit_16(1504);
+emit_16(1571);
+emit_16(1505);
+emit_16(1571);
+emit_16(1504);
+emit_16(1571);
+emit_16(1505);
+emit_16(1572);
+emit_16(1506);
+emit_16(1572);
+emit_16(1505);
+emit_16(1572);
+emit_16(1506);
+emit_16(1573);
+emit_16(1507);
+emit_16(1573);
+emit_16(1506);
+emit_16(1573);
+emit_16(1507);
+emit_16(1574);
+emit_16(1508);
+emit_16(1574);
+emit_16(1507);
+emit_16(1574);
+emit_16(1508);
+emit_16(1575);
+emit_16(1509);
+emit_16(1575);
+emit_16(1508);
+emit_16(1575);
+emit_16(1509);
+emit_16(1576);
+emit_16(1510);
+emit_16(1576);
+emit_16(1509);
+emit_16(1576);
+emit_16(1510);
+emit_16(1577);
+emit_16(1511);
+emit_16(1577);
+emit_16(1510);
+emit_16(1577);
+emit_16(1511);
+emit_16(1578);
+emit_16(1512);
+emit_16(1578);
+emit_16(1511);
+emit_16(1578);
+emit_16(1512);
+emit_16(1579);
+emit_16(1513);
+emit_16(1579);
+emit_16(1512);
+emit_16(1579);
+emit_16(1513);
+emit_16(1580);
+emit_16(1514);
+emit_16(1580);
+emit_16(1513);
+emit_16(1580);
+emit_16(1514);
+emit_16(1581);
+emit_16(1515);
+emit_16(1581);
+emit_16(1514);
+emit_16(1581);
+emit_16(1515);
+emit_16(1582);
+emit_16(1516);
+emit_16(1582);
+emit_16(1515);
+emit_16(1582);
+emit_16(1516);
+emit_16(1583);
+emit_16(1517);
+emit_16(1583);
+emit_16(1516);
+emit_16(1584);
+emit_16(1518);
+emit_16(1585);
+emit_16(1519);
+emit_16(1585);
+emit_16(1518);
+emit_16(1585);
+emit_16(1519);
+emit_16(1586);
+emit_16(1520);
+emit_16(1586);
+emit_16(1519);
+emit_16(1586);
+emit_16(1520);
+emit_16(1587);
+emit_16(1521);
+emit_16(1587);
+emit_16(1520);
+emit_16(1587);
+emit_16(1521);
+emit_16(1588);
+emit_16(1522);
+emit_16(1588);
+emit_16(1521);
+emit_16(1588);
+emit_16(1522);
+emit_16(1589);
+emit_16(1523);
+emit_16(1589);
+emit_16(1522);
+emit_16(1589);
+emit_16(1523);
+emit_16(1590);
+emit_16(1524);
+emit_16(1590);
+emit_16(1523);
+emit_16(1590);
+emit_16(1524);
+emit_16(1591);
+emit_16(1525);
+emit_16(1591);
+emit_16(1524);
+emit_16(1591);
+emit_16(1525);
+emit_16(1592);
+emit_16(1526);
+emit_16(1592);
+emit_16(1525);
+emit_16(1592);
+emit_16(1526);
+emit_16(1593);
+emit_16(1527);
+emit_16(1593);
+emit_16(1526);
+emit_16(1593);
+emit_16(1527);
+emit_16(1594);
+emit_16(1528);
+emit_16(1594);
+emit_16(1527);
+emit_16(1594);
+emit_16(1528);
+emit_16(1595);
+emit_16(1529);
+emit_16(1595);
+emit_16(1528);
+emit_16(1595);
+emit_16(1529);
+emit_16(1596);
+emit_16(1530);
+emit_16(1596);
+emit_16(1529);
+emit_16(1596);
+emit_16(1530);
+emit_16(1597);
+emit_16(1531);
+emit_16(1597);
+emit_16(1530);
+emit_16(1597);
+emit_16(1531);
+emit_16(1598);
+emit_16(1532);
+emit_16(1598);
+emit_16(1531);
+emit_16(1598);
+emit_16(1532);
+emit_16(1599);
+emit_16(1533);
+emit_16(1599);
+emit_16(1532);
+emit_16(1599);
+emit_16(1533);
+emit_16(1600);
+emit_16(1534);
+emit_16(1600);
+emit_16(1533);
+emit_16(1600);
+emit_16(1534);
+emit_16(1601);
+emit_16(1535);
+emit_16(1601);
+emit_16(1534);
+emit_16(1601);
+emit_16(1535);
+emit_16(1602);
+emit_16(1536);
+emit_16(1602);
+emit_16(1535);
+emit_16(1602);
+emit_16(1536);
+emit_16(1603);
+emit_16(1537);
+emit_16(1603);
+emit_16(1536);
+emit_16(1603);
+emit_16(1537);
+emit_16(1604);
+emit_16(1538);
+emit_16(1604);
+emit_16(1537);
+emit_16(1604);
+emit_16(1538);
+emit_16(1605);
+emit_16(1539);
+emit_16(1605);
+emit_16(1538);
+emit_16(1605);
+emit_16(1539);
+emit_16(1606);
+emit_16(1540);
+emit_16(1606);
+emit_16(1539);
+emit_16(1606);
+emit_16(1540);
+emit_16(1607);
+emit_16(1541);
+emit_16(1607);
+emit_16(1540);
+emit_16(1607);
+emit_16(1541);
+emit_16(1608);
+emit_16(1542);
+emit_16(1608);
+emit_16(1541);
+emit_16(1608);
+emit_16(1542);
+emit_16(1609);
+emit_16(1543);
+emit_16(1609);
+emit_16(1542);
+emit_16(1609);
+emit_16(1543);
+emit_16(1610);
+emit_16(1544);
+emit_16(1610);
+emit_16(1543);
+emit_16(1610);
+emit_16(1544);
+emit_16(1611);
+emit_16(1545);
+emit_16(1611);
+emit_16(1544);
+emit_16(1611);
+emit_16(1545);
+emit_16(1612);
+emit_16(1546);
+emit_16(1612);
+emit_16(1545);
+emit_16(1612);
+emit_16(1546);
+emit_16(1613);
+emit_16(1547);
+emit_16(1613);
+emit_16(1546);
+emit_16(1613);
+emit_16(1547);
+emit_16(1614);
+emit_16(1548);
+emit_16(1614);
+emit_16(1547);
+emit_16(1614);
+emit_16(1548);
+emit_16(1615);
+emit_16(1549);
+emit_16(1615);
+emit_16(1548);
+emit_16(1615);
+emit_16(1549);
+emit_16(1616);
+emit_16(1550);
+emit_16(1616);
+emit_16(1549);
+emit_16(1616);
+emit_16(1550);
+emit_16(1617);
+emit_16(1551);
+emit_16(1617);
+emit_16(1550);
+emit_16(1617);
+emit_16(1551);
+emit_16(1618);
+emit_16(1552);
+emit_16(1618);
+emit_16(1551);
+emit_16(1618);
+emit_16(1552);
+emit_16(1619);
+emit_16(1553);
+emit_16(1619);
+emit_16(1552);
+emit_16(1619);
+emit_16(1553);
+emit_16(1620);
+emit_16(1554);
+emit_16(1620);
+emit_16(1553);
+emit_16(1620);
+emit_16(1554);
+emit_16(1621);
+emit_16(1555);
+emit_16(1621);
+emit_16(1554);
+emit_16(1621);
+emit_16(1555);
+emit_16(1622);
+emit_16(1556);
+emit_16(1622);
+emit_16(1555);
+emit_16(1622);
+emit_16(1556);
+emit_16(1623);
+emit_16(1557);
+emit_16(1623);
+emit_16(1556);
+emit_16(1623);
+emit_16(1557);
+emit_16(1624);
+emit_16(1558);
+emit_16(1624);
+emit_16(1557);
+emit_16(1624);
+emit_16(1558);
+emit_16(1625);
+emit_16(1559);
+emit_16(1625);
+emit_16(1558);
+emit_16(1625);
+emit_16(1559);
+emit_16(1626);
+emit_16(1560);
+emit_16(1626);
+emit_16(1559);
+emit_16(1626);
+emit_16(1560);
+emit_16(1627);
+emit_16(1561);
+emit_16(1627);
+emit_16(1560);
+emit_16(1627);
+emit_16(1561);
+emit_16(1628);
+emit_16(1562);
+emit_16(1628);
+emit_16(1561);
+emit_16(1628);
+emit_16(1562);
+emit_16(1629);
+emit_16(1563);
+emit_16(1629);
+emit_16(1562);
+emit_16(1629);
+emit_16(1563);
+emit_16(1630);
+emit_16(1564);
+emit_16(1630);
+emit_16(1563);
+emit_16(1630);
+emit_16(1564);
+emit_16(1631);
+emit_16(1565);
+emit_16(1631);
+emit_16(1564);
+emit_16(1631);
+emit_16(1565);
+emit_16(1632);
+emit_16(1566);
+emit_16(1632);
+emit_16(1565);
+emit_16(1632);
+emit_16(1566);
+emit_16(1633);
+emit_16(1567);
+emit_16(1633);
+emit_16(1566);
+emit_16(1633);
+emit_16(1567);
+emit_16(1634);
+emit_16(1568);
+emit_16(1634);
+emit_16(1567);
+emit_16(1634);
+emit_16(1568);
+emit_16(1635);
+emit_16(1569);
+emit_16(1635);
+emit_16(1568);
+emit_16(1635);
+emit_16(1569);
+emit_16(1636);
+emit_16(1570);
+emit_16(1636);
+emit_16(1569);
+emit_16(1636);
+emit_16(1570);
+emit_16(1637);
+emit_16(1571);
+emit_16(1637);
+emit_16(1570);
+emit_16(1637);
+emit_16(1571);
+emit_16(1638);
+emit_16(1572);
+emit_16(1638);
+emit_16(1571);
+emit_16(1638);
+emit_16(1572);
+emit_16(1639);
+emit_16(1573);
+emit_16(1639);
+emit_16(1572);
+emit_16(1639);
+emit_16(1573);
+emit_16(1640);
+emit_16(1574);
+emit_16(1640);
+emit_16(1573);
+emit_16(1640);
+emit_16(1574);
+emit_16(1641);
+emit_16(1575);
+emit_16(1641);
+emit_16(1574);
+emit_16(1641);
+emit_16(1575);
+emit_16(1642);
+emit_16(1576);
+emit_16(1642);
+emit_16(1575);
+emit_16(1642);
+emit_16(1576);
+emit_16(1643);
+emit_16(1577);
+emit_16(1643);
+emit_16(1576);
+emit_16(1643);
+emit_16(1577);
+emit_16(1644);
+emit_16(1578);
+emit_16(1644);
+emit_16(1577);
+emit_16(1644);
+emit_16(1578);
+emit_16(1645);
+emit_16(1579);
+emit_16(1645);
+emit_16(1578);
+emit_16(1645);
+emit_16(1579);
+emit_16(1646);
+emit_16(1580);
+emit_16(1646);
+emit_16(1579);
+emit_16(1646);
+emit_16(1580);
+emit_16(1647);
+emit_16(1581);
+emit_16(1647);
+emit_16(1580);
+emit_16(1647);
+emit_16(1581);
+emit_16(1648);
+emit_16(1582);
+emit_16(1648);
+emit_16(1581);
+emit_16(1648);
+emit_16(1582);
+emit_16(1649);
+emit_16(1583);
+emit_16(1649);
+emit_16(1582);
+emit_16(1650);
+emit_16(1584);
+emit_16(1651);
+emit_16(1585);
+emit_16(1651);
+emit_16(1584);
+emit_16(1651);
+emit_16(1585);
+emit_16(1652);
+emit_16(1586);
+emit_16(1652);
+emit_16(1585);
+emit_16(1652);
+emit_16(1586);
+emit_16(1653);
+emit_16(1587);
+emit_16(1653);
+emit_16(1586);
+emit_16(1653);
+emit_16(1587);
+emit_16(1654);
+emit_16(1588);
+emit_16(1654);
+emit_16(1587);
+emit_16(1654);
+emit_16(1588);
+emit_16(1655);
+emit_16(1589);
+emit_16(1655);
+emit_16(1588);
+emit_16(1655);
+emit_16(1589);
+emit_16(1656);
+emit_16(1590);
+emit_16(1656);
+emit_16(1589);
+emit_16(1656);
+emit_16(1590);
+emit_16(1657);
+emit_16(1591);
+emit_16(1657);
+emit_16(1590);
+emit_16(1657);
+emit_16(1591);
+emit_16(1658);
+emit_16(1592);
+emit_16(1658);
+emit_16(1591);
+emit_16(1658);
+emit_16(1592);
+emit_16(1659);
+emit_16(1593);
+emit_16(1659);
+emit_16(1592);
+emit_16(1659);
+emit_16(1593);
+emit_16(1660);
+emit_16(1594);
+emit_16(1660);
+emit_16(1593);
+emit_16(1660);
+emit_16(1594);
+emit_16(1661);
+emit_16(1595);
+emit_16(1661);
+emit_16(1594);
+emit_16(1661);
+emit_16(1595);
+emit_16(1662);
+emit_16(1596);
+emit_16(1662);
+emit_16(1595);
+emit_16(1662);
+emit_16(1596);
+emit_16(1663);
+emit_16(1597);
+emit_16(1663);
+emit_16(1596);
+emit_16(1663);
+emit_16(1597);
+emit_16(1664);
+emit_16(1598);
+emit_16(1664);
+emit_16(1597);
+emit_16(1664);
+emit_16(1598);
+emit_16(1665);
+emit_16(1599);
+emit_16(1665);
+emit_16(1598);
+emit_16(1665);
+emit_16(1599);
+emit_16(1666);
+emit_16(1600);
+emit_16(1666);
+emit_16(1599);
+emit_16(1666);
+emit_16(1600);
+emit_16(1667);
+emit_16(1601);
+emit_16(1667);
+emit_16(1600);
+emit_16(1667);
+emit_16(1601);
+emit_16(1668);
+emit_16(1602);
+emit_16(1668);
+emit_16(1601);
+emit_16(1668);
+emit_16(1602);
+emit_16(1669);
+emit_16(1603);
+emit_16(1669);
+emit_16(1602);
+emit_16(1669);
+emit_16(1603);
+emit_16(1670);
+emit_16(1604);
+emit_16(1670);
+emit_16(1603);
+emit_16(1670);
+emit_16(1604);
+emit_16(1671);
+emit_16(1605);
+emit_16(1671);
+emit_16(1604);
+emit_16(1671);
+emit_16(1605);
+emit_16(1672);
+emit_16(1606);
+emit_16(1672);
+emit_16(1605);
+emit_16(1672);
+emit_16(1606);
+emit_16(1673);
+emit_16(1607);
+emit_16(1673);
+emit_16(1606);
+emit_16(1673);
+emit_16(1607);
+emit_16(1674);
+emit_16(1608);
+emit_16(1674);
+emit_16(1607);
+emit_16(1674);
+emit_16(1608);
+emit_16(1675);
+emit_16(1609);
+emit_16(1675);
+emit_16(1608);
+emit_16(1675);
+emit_16(1609);
+emit_16(1676);
+emit_16(1610);
+emit_16(1676);
+emit_16(1609);
+emit_16(1676);
+emit_16(1610);
+emit_16(1677);
+emit_16(1611);
+emit_16(1677);
+emit_16(1610);
+emit_16(1677);
+emit_16(1611);
+emit_16(1678);
+emit_16(1612);
+emit_16(1678);
+emit_16(1611);
+emit_16(1678);
+emit_16(1612);
+emit_16(1679);
+emit_16(1613);
+emit_16(1679);
+emit_16(1612);
+emit_16(1679);
+emit_16(1613);
+emit_16(1680);
+emit_16(1614);
+emit_16(1680);
+emit_16(1613);
+emit_16(1680);
+emit_16(1614);
+emit_16(1681);
+emit_16(1615);
+emit_16(1681);
+emit_16(1614);
+emit_16(1681);
+emit_16(1615);
+emit_16(1682);
+emit_16(1616);
+emit_16(1682);
+emit_16(1615);
+emit_16(1682);
+emit_16(1616);
+emit_16(1683);
+emit_16(1617);
+emit_16(1683);
+emit_16(1616);
+emit_16(1683);
+emit_16(1617);
+emit_16(1684);
+emit_16(1618);
+emit_16(1684);
+emit_16(1617);
+emit_16(1684);
+emit_16(1618);
+emit_16(1685);
+emit_16(1619);
+emit_16(1685);
+emit_16(1618);
+emit_16(1685);
+emit_16(1619);
+emit_16(1686);
+emit_16(1620);
+emit_16(1686);
+emit_16(1619);
+emit_16(1686);
+emit_16(1620);
+emit_16(1687);
+emit_16(1621);
+emit_16(1687);
+emit_16(1620);
+emit_16(1687);
+emit_16(1621);
+emit_16(1688);
+emit_16(1622);
+emit_16(1688);
+emit_16(1621);
+emit_16(1688);
+emit_16(1622);
+emit_16(1689);
+emit_16(1623);
+emit_16(1689);
+emit_16(1622);
+emit_16(1689);
+emit_16(1623);
+emit_16(1690);
+emit_16(1624);
+emit_16(1690);
+emit_16(1623);
+emit_16(1690);
+emit_16(1624);
+emit_16(1691);
+emit_16(1625);
+emit_16(1691);
+emit_16(1624);
+emit_16(1691);
+emit_16(1625);
+emit_16(1692);
+emit_16(1626);
+emit_16(1692);
+emit_16(1625);
+emit_16(1692);
+emit_16(1626);
+emit_16(1693);
+emit_16(1627);
+emit_16(1693);
+emit_16(1626);
+emit_16(1693);
+emit_16(1627);
+emit_16(1694);
+emit_16(1628);
+emit_16(1694);
+emit_16(1627);
+emit_16(1694);
+emit_16(1628);
+emit_16(1695);
+emit_16(1629);
+emit_16(1695);
+emit_16(1628);
+emit_16(1695);
+emit_16(1629);
+emit_16(1696);
+emit_16(1630);
+emit_16(1696);
+emit_16(1629);
+emit_16(1696);
+emit_16(1630);
+emit_16(1697);
+emit_16(1631);
+emit_16(1697);
+emit_16(1630);
+emit_16(1697);
+emit_16(1631);
+emit_16(1698);
+emit_16(1632);
+emit_16(1698);
+emit_16(1631);
+emit_16(1698);
+emit_16(1632);
+emit_16(1699);
+emit_16(1633);
+emit_16(1699);
+emit_16(1632);
+emit_16(1699);
+emit_16(1633);
+emit_16(1700);
+emit_16(1634);
+emit_16(1700);
+emit_16(1633);
+emit_16(1700);
+emit_16(1634);
+emit_16(1701);
+emit_16(1635);
+emit_16(1701);
+emit_16(1634);
+emit_16(1701);
+emit_16(1635);
+emit_16(1702);
+emit_16(1636);
+emit_16(1702);
+emit_16(1635);
+emit_16(1702);
+emit_16(1636);
+emit_16(1703);
+emit_16(1637);
+emit_16(1703);
+emit_16(1636);
+emit_16(1703);
+emit_16(1637);
+emit_16(1704);
+emit_16(1638);
+emit_16(1704);
+emit_16(1637);
+emit_16(1704);
+emit_16(1638);
+emit_16(1705);
+emit_16(1639);
+emit_16(1705);
+emit_16(1638);
+emit_16(1705);
+emit_16(1639);
+emit_16(1706);
+emit_16(1640);
+emit_16(1706);
+emit_16(1639);
+emit_16(1706);
+emit_16(1640);
+emit_16(1707);
+emit_16(1641);
+emit_16(1707);
+emit_16(1640);
+emit_16(1707);
+emit_16(1641);
+emit_16(1708);
+emit_16(1642);
+emit_16(1708);
+emit_16(1641);
+emit_16(1708);
+emit_16(1642);
+emit_16(1709);
+emit_16(1643);
+emit_16(1709);
+emit_16(1642);
+emit_16(1709);
+emit_16(1643);
+emit_16(1710);
+emit_16(1644);
+emit_16(1710);
+emit_16(1643);
+emit_16(1710);
+emit_16(1644);
+emit_16(1711);
+emit_16(1645);
+emit_16(1711);
+emit_16(1644);
+emit_16(1711);
+emit_16(1645);
+emit_16(1712);
+emit_16(1646);
+emit_16(1712);
+emit_16(1645);
+emit_16(1712);
+emit_16(1646);
+emit_16(1713);
+emit_16(1647);
+emit_16(1713);
+emit_16(1646);
+emit_16(1713);
+emit_16(1647);
+emit_16(1714);
+emit_16(1648);
+emit_16(1714);
+emit_16(1647);
+emit_16(1714);
+emit_16(1648);
+emit_16(1715);
+emit_16(1649);
+emit_16(1715);
+emit_16(1648);
+emit_16(1716);
+emit_16(1650);
+emit_16(1717);
+emit_16(1651);
+emit_16(1717);
+emit_16(1650);
+emit_16(1717);
+emit_16(1651);
+emit_16(1718);
+emit_16(1652);
+emit_16(1718);
+emit_16(1651);
+emit_16(1718);
+emit_16(1652);
+emit_16(1719);
+emit_16(1653);
+emit_16(1719);
+emit_16(1652);
+emit_16(1719);
+emit_16(1653);
+emit_16(1720);
+emit_16(1654);
+emit_16(1720);
+emit_16(1653);
+emit_16(1720);
+emit_16(1654);
+emit_16(1721);
+emit_16(1655);
+emit_16(1721);
+emit_16(1654);
+emit_16(1721);
+emit_16(1655);
+emit_16(1722);
+emit_16(1656);
+emit_16(1722);
+emit_16(1655);
+emit_16(1722);
+emit_16(1656);
+emit_16(1723);
+emit_16(1657);
+emit_16(1723);
+emit_16(1656);
+emit_16(1723);
+emit_16(1657);
+emit_16(1724);
+emit_16(1658);
+emit_16(1724);
+emit_16(1657);
+emit_16(1724);
+emit_16(1658);
+emit_16(1725);
+emit_16(1659);
+emit_16(1725);
+emit_16(1658);
+emit_16(1725);
+emit_16(1659);
+emit_16(1726);
+emit_16(1660);
+emit_16(1726);
+emit_16(1659);
+emit_16(1726);
+emit_16(1660);
+emit_16(1727);
+emit_16(1661);
+emit_16(1727);
+emit_16(1660);
+emit_16(1727);
+emit_16(1661);
+emit_16(1728);
+emit_16(1662);
+emit_16(1728);
+emit_16(1661);
+emit_16(1728);
+emit_16(1662);
+emit_16(1729);
+emit_16(1663);
+emit_16(1729);
+emit_16(1662);
+emit_16(1729);
+emit_16(1663);
+emit_16(1730);
+emit_16(1664);
+emit_16(1730);
+emit_16(1663);
+emit_16(1730);
+emit_16(1664);
+emit_16(1731);
+emit_16(1665);
+emit_16(1731);
+emit_16(1664);
+emit_16(1731);
+emit_16(1665);
+emit_16(1732);
+emit_16(1666);
+emit_16(1732);
+emit_16(1665);
+emit_16(1732);
+emit_16(1666);
+emit_16(1733);
+emit_16(1667);
+emit_16(1733);
+emit_16(1666);
+emit_16(1733);
+emit_16(1667);
+emit_16(1734);
+emit_16(1668);
+emit_16(1734);
+emit_16(1667);
+emit_16(1734);
+emit_16(1668);
+emit_16(1735);
+emit_16(1669);
+emit_16(1735);
+emit_16(1668);
+emit_16(1735);
+emit_16(1669);
+emit_16(1736);
+emit_16(1670);
+emit_16(1736);
+emit_16(1669);
+emit_16(1736);
+emit_16(1670);
+emit_16(1737);
+emit_16(1671);
+emit_16(1737);
+emit_16(1670);
+emit_16(1737);
+emit_16(1671);
+emit_16(1738);
+emit_16(1672);
+emit_16(1738);
+emit_16(1671);
+emit_16(1738);
+emit_16(1672);
+emit_16(1739);
+emit_16(1673);
+emit_16(1739);
+emit_16(1672);
+emit_16(1739);
+emit_16(1673);
+emit_16(1740);
+emit_16(1674);
+emit_16(1740);
+emit_16(1673);
+emit_16(1740);
+emit_16(1674);
+emit_16(1741);
+emit_16(1675);
+emit_16(1741);
+emit_16(1674);
+emit_16(1741);
+emit_16(1675);
+emit_16(1742);
+emit_16(1676);
+emit_16(1742);
+emit_16(1675);
+emit_16(1742);
+emit_16(1676);
+emit_16(1743);
+emit_16(1677);
+emit_16(1743);
+emit_16(1676);
+emit_16(1743);
+emit_16(1677);
+emit_16(1744);
+emit_16(1678);
+emit_16(1744);
+emit_16(1677);
+emit_16(1744);
+emit_16(1678);
+emit_16(1745);
+emit_16(1679);
+emit_16(1745);
+emit_16(1678);
+emit_16(1745);
+emit_16(1679);
+emit_16(1746);
+emit_16(1680);
+emit_16(1746);
+emit_16(1679);
+emit_16(1746);
+emit_16(1680);
+emit_16(1747);
+emit_16(1681);
+emit_16(1747);
+emit_16(1680);
+emit_16(1747);
+emit_16(1681);
+emit_16(1748);
+emit_16(1682);
+emit_16(1748);
+emit_16(1681);
+emit_16(1748);
+emit_16(1682);
+emit_16(1749);
+emit_16(1683);
+emit_16(1749);
+emit_16(1682);
+emit_16(1749);
+emit_16(1683);
+emit_16(1750);
+emit_16(1684);
+emit_16(1750);
+emit_16(1683);
+emit_16(1750);
+emit_16(1684);
+emit_16(1751);
+emit_16(1685);
+emit_16(1751);
+emit_16(1684);
+emit_16(1751);
+emit_16(1685);
+emit_16(1752);
+emit_16(1686);
+emit_16(1752);
+emit_16(1685);
+emit_16(1752);
+emit_16(1686);
+emit_16(1753);
+emit_16(1687);
+emit_16(1753);
+emit_16(1686);
+emit_16(1753);
+emit_16(1687);
+emit_16(1754);
+emit_16(1688);
+emit_16(1754);
+emit_16(1687);
+emit_16(1754);
+emit_16(1688);
+emit_16(1755);
+emit_16(1689);
+emit_16(1755);
+emit_16(1688);
+emit_16(1755);
+emit_16(1689);
+emit_16(1756);
+emit_16(1690);
+emit_16(1756);
+emit_16(1689);
+emit_16(1756);
+emit_16(1690);
+emit_16(1757);
+emit_16(1691);
+emit_16(1757);
+emit_16(1690);
+emit_16(1757);
+emit_16(1691);
+emit_16(1758);
+emit_16(1692);
+emit_16(1758);
+emit_16(1691);
+emit_16(1758);
+emit_16(1692);
+emit_16(1759);
+emit_16(1693);
+emit_16(1759);
+emit_16(1692);
+emit_16(1759);
+emit_16(1693);
+emit_16(1760);
+emit_16(1694);
+emit_16(1760);
+emit_16(1693);
+emit_16(1760);
+emit_16(1694);
+emit_16(1761);
+emit_16(1695);
+emit_16(1761);
+emit_16(1694);
+emit_16(1761);
+emit_16(1695);
+emit_16(1762);
+emit_16(1696);
+emit_16(1762);
+emit_16(1695);
+emit_16(1762);
+emit_16(1696);
+emit_16(1763);
+emit_16(1697);
+emit_16(1763);
+emit_16(1696);
+emit_16(1763);
+emit_16(1697);
+emit_16(1764);
+emit_16(1698);
+emit_16(1764);
+emit_16(1697);
+emit_16(1764);
+emit_16(1698);
+emit_16(1765);
+emit_16(1699);
+emit_16(1765);
+emit_16(1698);
+emit_16(1765);
+emit_16(1699);
+emit_16(1766);
+emit_16(1700);
+emit_16(1766);
+emit_16(1699);
+emit_16(1766);
+emit_16(1700);
+emit_16(1767);
+emit_16(1701);
+emit_16(1767);
+emit_16(1700);
+emit_16(1767);
+emit_16(1701);
+emit_16(1768);
+emit_16(1702);
+emit_16(1768);
+emit_16(1701);
+emit_16(1768);
+emit_16(1702);
+emit_16(1769);
+emit_16(1703);
+emit_16(1769);
+emit_16(1702);
+emit_16(1769);
+emit_16(1703);
+emit_16(1770);
+emit_16(1704);
+emit_16(1770);
+emit_16(1703);
+emit_16(1770);
+emit_16(1704);
+emit_16(1771);
+emit_16(1705);
+emit_16(1771);
+emit_16(1704);
+emit_16(1771);
+emit_16(1705);
+emit_16(1772);
+emit_16(1706);
+emit_16(1772);
+emit_16(1705);
+emit_16(1772);
+emit_16(1706);
+emit_16(1773);
+emit_16(1707);
+emit_16(1773);
+emit_16(1706);
+emit_16(1773);
+emit_16(1707);
+emit_16(1774);
+emit_16(1708);
+emit_16(1774);
+emit_16(1707);
+emit_16(1774);
+emit_16(1708);
+emit_16(1775);
+emit_16(1709);
+emit_16(1775);
+emit_16(1708);
+emit_16(1775);
+emit_16(1709);
+emit_16(1776);
+emit_16(1710);
+emit_16(1776);
+emit_16(1709);
+emit_16(1776);
+emit_16(1710);
+emit_16(1777);
+emit_16(1711);
+emit_16(1777);
+emit_16(1710);
+emit_16(1777);
+emit_16(1711);
+emit_16(1778);
+emit_16(1712);
+emit_16(1778);
+emit_16(1711);
+emit_16(1778);
+emit_16(1712);
+emit_16(1779);
+emit_16(1713);
+emit_16(1779);
+emit_16(1712);
+emit_16(1779);
+emit_16(1713);
+emit_16(1780);
+emit_16(1714);
+emit_16(1780);
+emit_16(1713);
+emit_16(1780);
+emit_16(1714);
+emit_16(1781);
+emit_16(1715);
+emit_16(1781);
+emit_16(1714);
+emit_16(1782);
+emit_16(1716);
+emit_16(1783);
+emit_16(1717);
+emit_16(1783);
+emit_16(1716);
+emit_16(1783);
+emit_16(1717);
+emit_16(1784);
+emit_16(1718);
+emit_16(1784);
+emit_16(1717);
+emit_16(1784);
+emit_16(1718);
+emit_16(1785);
+emit_16(1719);
+emit_16(1785);
+emit_16(1718);
+emit_16(1785);
+emit_16(1719);
+emit_16(1786);
+emit_16(1720);
+emit_16(1786);
+emit_16(1719);
+emit_16(1786);
+emit_16(1720);
+emit_16(1787);
+emit_16(1721);
+emit_16(1787);
+emit_16(1720);
+emit_16(1787);
+emit_16(1721);
+emit_16(1788);
+emit_16(1722);
+emit_16(1788);
+emit_16(1721);
+emit_16(1788);
+emit_16(1722);
+emit_16(1789);
+emit_16(1723);
+emit_16(1789);
+emit_16(1722);
+emit_16(1789);
+emit_16(1723);
+emit_16(1790);
+emit_16(1724);
+emit_16(1790);
+emit_16(1723);
+emit_16(1790);
+emit_16(1724);
+emit_16(1791);
+emit_16(1725);
+emit_16(1791);
+emit_16(1724);
+emit_16(1791);
+emit_16(1725);
+emit_16(1792);
+emit_16(1726);
+emit_16(1792);
+emit_16(1725);
+emit_16(1792);
+emit_16(1726);
+emit_16(1793);
+emit_16(1727);
+emit_16(1793);
+emit_16(1726);
+emit_16(1793);
+emit_16(1727);
+emit_16(1794);
+emit_16(1728);
+emit_16(1794);
+emit_16(1727);
+emit_16(1794);
+emit_16(1728);
+emit_16(1795);
+emit_16(1729);
+emit_16(1795);
+emit_16(1728);
+emit_16(1795);
+emit_16(1729);
+emit_16(1796);
+emit_16(1730);
+emit_16(1796);
+emit_16(1729);
+emit_16(1796);
+emit_16(1730);
+emit_16(1797);
+emit_16(1731);
+emit_16(1797);
+emit_16(1730);
+emit_16(1797);
+emit_16(1731);
+emit_16(1798);
+emit_16(1732);
+emit_16(1798);
+emit_16(1731);
+emit_16(1798);
+emit_16(1732);
+emit_16(1799);
+emit_16(1733);
+emit_16(1799);
+emit_16(1732);
+emit_16(1799);
+emit_16(1733);
+emit_16(1800);
+emit_16(1734);
+emit_16(1800);
+emit_16(1733);
+emit_16(1800);
+emit_16(1734);
+emit_16(1801);
+emit_16(1735);
+emit_16(1801);
+emit_16(1734);
+emit_16(1801);
+emit_16(1735);
+emit_16(1802);
+emit_16(1736);
+emit_16(1802);
+emit_16(1735);
+emit_16(1802);
+emit_16(1736);
+emit_16(1803);
+emit_16(1737);
+emit_16(1803);
+emit_16(1736);
+emit_16(1803);
+emit_16(1737);
+emit_16(1804);
+emit_16(1738);
+emit_16(1804);
+emit_16(1737);
+emit_16(1804);
+emit_16(1738);
+emit_16(1805);
+emit_16(1739);
+emit_16(1805);
+emit_16(1738);
+emit_16(1805);
+emit_16(1739);
+emit_16(1806);
+emit_16(1740);
+emit_16(1806);
+emit_16(1739);
+emit_16(1806);
+emit_16(1740);
+emit_16(1807);
+emit_16(1741);
+emit_16(1807);
+emit_16(1740);
+emit_16(1807);
+emit_16(1741);
+emit_16(1808);
+emit_16(1742);
+emit_16(1808);
+emit_16(1741);
+emit_16(1808);
+emit_16(1742);
+emit_16(1809);
+emit_16(1743);
+emit_16(1809);
+emit_16(1742);
+emit_16(1809);
+emit_16(1743);
+emit_16(1810);
+emit_16(1744);
+emit_16(1810);
+emit_16(1743);
+emit_16(1810);
+emit_16(1744);
+emit_16(1811);
+emit_16(1745);
+emit_16(1811);
+emit_16(1744);
+emit_16(1811);
+emit_16(1745);
+emit_16(1812);
+emit_16(1746);
+emit_16(1812);
+emit_16(1745);
+emit_16(1812);
+emit_16(1746);
+emit_16(1813);
+emit_16(1747);
+emit_16(1813);
+emit_16(1746);
+emit_16(1813);
+emit_16(1747);
+emit_16(1814);
+emit_16(1748);
+emit_16(1814);
+emit_16(1747);
+emit_16(1814);
+emit_16(1748);
+emit_16(1815);
+emit_16(1749);
+emit_16(1815);
+emit_16(1748);
+emit_16(1815);
+emit_16(1749);
+emit_16(1816);
+emit_16(1750);
+emit_16(1816);
+emit_16(1749);
+emit_16(1816);
+emit_16(1750);
+emit_16(1817);
+emit_16(1751);
+emit_16(1817);
+emit_16(1750);
+emit_16(1817);
+emit_16(1751);
+emit_16(1818);
+emit_16(1752);
+emit_16(1818);
+emit_16(1751);
+emit_16(1818);
+emit_16(1752);
+emit_16(1819);
+emit_16(1753);
+emit_16(1819);
+emit_16(1752);
+emit_16(1819);
+emit_16(1753);
+emit_16(1820);
+emit_16(1754);
+emit_16(1820);
+emit_16(1753);
+emit_16(1820);
+emit_16(1754);
+emit_16(1821);
+emit_16(1755);
+emit_16(1821);
+emit_16(1754);
+emit_16(1821);
+emit_16(1755);
+emit_16(1822);
+emit_16(1756);
+emit_16(1822);
+emit_16(1755);
+emit_16(1822);
+emit_16(1756);
+emit_16(1823);
+emit_16(1757);
+emit_16(1823);
+emit_16(1756);
+emit_16(1823);
+emit_16(1757);
+emit_16(1824);
+emit_16(1758);
+emit_16(1824);
+emit_16(1757);
+emit_16(1824);
+emit_16(1758);
+emit_16(1825);
+emit_16(1759);
+emit_16(1825);
+emit_16(1758);
+emit_16(1825);
+emit_16(1759);
+emit_16(1826);
+emit_16(1760);
+emit_16(1826);
+emit_16(1759);
+emit_16(1826);
+emit_16(1760);
+emit_16(1827);
+emit_16(1761);
+emit_16(1827);
+emit_16(1760);
+emit_16(1827);
+emit_16(1761);
+emit_16(1828);
+emit_16(1762);
+emit_16(1828);
+emit_16(1761);
+emit_16(1828);
+emit_16(1762);
+emit_16(1829);
+emit_16(1763);
+emit_16(1829);
+emit_16(1762);
+emit_16(1829);
+emit_16(1763);
+emit_16(1830);
+emit_16(1764);
+emit_16(1830);
+emit_16(1763);
+emit_16(1830);
+emit_16(1764);
+emit_16(1831);
+emit_16(1765);
+emit_16(1831);
+emit_16(1764);
+emit_16(1831);
+emit_16(1765);
+emit_16(1832);
+emit_16(1766);
+emit_16(1832);
+emit_16(1765);
+emit_16(1832);
+emit_16(1766);
+emit_16(1833);
+emit_16(1767);
+emit_16(1833);
+emit_16(1766);
+emit_16(1833);
+emit_16(1767);
+emit_16(1834);
+emit_16(1768);
+emit_16(1834);
+emit_16(1767);
+emit_16(1834);
+emit_16(1768);
+emit_16(1835);
+emit_16(1769);
+emit_16(1835);
+emit_16(1768);
+emit_16(1835);
+emit_16(1769);
+emit_16(1836);
+emit_16(1770);
+emit_16(1836);
+emit_16(1769);
+emit_16(1836);
+emit_16(1770);
+emit_16(1837);
+emit_16(1771);
+emit_16(1837);
+emit_16(1770);
+emit_16(1837);
+emit_16(1771);
+emit_16(1838);
+emit_16(1772);
+emit_16(1838);
+emit_16(1771);
+emit_16(1838);
+emit_16(1772);
+emit_16(1839);
+emit_16(1773);
+emit_16(1839);
+emit_16(1772);
+emit_16(1839);
+emit_16(1773);
+emit_16(1840);
+emit_16(1774);
+emit_16(1840);
+emit_16(1773);
+emit_16(1840);
+emit_16(1774);
+emit_16(1841);
+emit_16(1775);
+emit_16(1841);
+emit_16(1774);
+emit_16(1841);
+emit_16(1775);
+emit_16(1842);
+emit_16(1776);
+emit_16(1842);
+emit_16(1775);
+emit_16(1842);
+emit_16(1776);
+emit_16(1843);
+emit_16(1777);
+emit_16(1843);
+emit_16(1776);
+emit_16(1843);
+emit_16(1777);
+emit_16(1844);
+emit_16(1778);
+emit_16(1844);
+emit_16(1777);
+emit_16(1844);
+emit_16(1778);
+emit_16(1845);
+emit_16(1779);
+emit_16(1845);
+emit_16(1778);
+emit_16(1845);
+emit_16(1779);
+emit_16(1846);
+emit_16(1780);
+emit_16(1846);
+emit_16(1779);
+emit_16(1846);
+emit_16(1780);
+emit_16(1847);
+emit_16(1781);
+emit_16(1847);
+emit_16(1780);
+emit_16(1848);
+emit_16(1782);
+emit_16(1849);
+emit_16(1783);
+emit_16(1849);
+emit_16(1782);
+emit_16(1849);
+emit_16(1783);
+emit_16(1850);
+emit_16(1784);
+emit_16(1850);
+emit_16(1783);
+emit_16(1850);
+emit_16(1784);
+emit_16(1851);
+emit_16(1785);
+emit_16(1851);
+emit_16(1784);
+emit_16(1851);
+emit_16(1785);
+emit_16(1852);
+emit_16(1786);
+emit_16(1852);
+emit_16(1785);
+emit_16(1852);
+emit_16(1786);
+emit_16(1853);
+emit_16(1787);
+emit_16(1853);
+emit_16(1786);
+emit_16(1853);
+emit_16(1787);
+emit_16(1854);
+emit_16(1788);
+emit_16(1854);
+emit_16(1787);
+emit_16(1854);
+emit_16(1788);
+emit_16(1855);
+emit_16(1789);
+emit_16(1855);
+emit_16(1788);
+emit_16(1855);
+emit_16(1789);
+emit_16(1856);
+emit_16(1790);
+emit_16(1856);
+emit_16(1789);
+emit_16(1856);
+emit_16(1790);
+emit_16(1857);
+emit_16(1791);
+emit_16(1857);
+emit_16(1790);
+emit_16(1857);
+emit_16(1791);
+emit_16(1858);
+emit_16(1792);
+emit_16(1858);
+emit_16(1791);
+emit_16(1858);
+emit_16(1792);
+emit_16(1859);
+emit_16(1793);
+emit_16(1859);
+emit_16(1792);
+emit_16(1859);
+emit_16(1793);
+emit_16(1860);
+emit_16(1794);
+emit_16(1860);
+emit_16(1793);
+emit_16(1860);
+emit_16(1794);
+emit_16(1861);
+emit_16(1795);
+emit_16(1861);
+emit_16(1794);
+emit_16(1861);
+emit_16(1795);
+emit_16(1862);
+emit_16(1796);
+emit_16(1862);
+emit_16(1795);
+emit_16(1862);
+emit_16(1796);
+emit_16(1863);
+emit_16(1797);
+emit_16(1863);
+emit_16(1796);
+emit_16(1863);
+emit_16(1797);
+emit_16(1864);
+emit_16(1798);
+emit_16(1864);
+emit_16(1797);
+emit_16(1864);
+emit_16(1798);
+emit_16(1865);
+emit_16(1799);
+emit_16(1865);
+emit_16(1798);
+emit_16(1865);
+emit_16(1799);
+emit_16(1866);
+emit_16(1800);
+emit_16(1866);
+emit_16(1799);
+emit_16(1866);
+emit_16(1800);
+emit_16(1867);
+emit_16(1801);
+emit_16(1867);
+emit_16(1800);
+emit_16(1867);
+emit_16(1801);
+emit_16(1868);
+emit_16(1802);
+emit_16(1868);
+emit_16(1801);
+emit_16(1868);
+emit_16(1802);
+emit_16(1869);
+emit_16(1803);
+emit_16(1869);
+emit_16(1802);
+emit_16(1869);
+emit_16(1803);
+emit_16(1870);
+emit_16(1804);
+emit_16(1870);
+emit_16(1803);
+emit_16(1870);
+emit_16(1804);
+emit_16(1871);
+emit_16(1805);
+emit_16(1871);
+emit_16(1804);
+emit_16(1871);
+emit_16(1805);
+emit_16(1872);
+emit_16(1806);
+emit_16(1872);
+emit_16(1805);
+emit_16(1872);
+emit_16(1806);
+emit_16(1873);
+emit_16(1807);
+emit_16(1873);
+emit_16(1806);
+emit_16(1873);
+emit_16(1807);
+emit_16(1874);
+emit_16(1808);
+emit_16(1874);
+emit_16(1807);
+emit_16(1874);
+emit_16(1808);
+emit_16(1875);
+emit_16(1809);
+emit_16(1875);
+emit_16(1808);
+emit_16(1875);
+emit_16(1809);
+emit_16(1876);
+emit_16(1810);
+emit_16(1876);
+emit_16(1809);
+emit_16(1876);
+emit_16(1810);
+emit_16(1877);
+emit_16(1811);
+emit_16(1877);
+emit_16(1810);
+emit_16(1877);
+emit_16(1811);
+emit_16(1878);
+emit_16(1812);
+emit_16(1878);
+emit_16(1811);
+emit_16(1878);
+emit_16(1812);
+emit_16(1879);
+emit_16(1813);
+emit_16(1879);
+emit_16(1812);
+emit_16(1879);
+emit_16(1813);
+emit_16(1880);
+emit_16(1814);
+emit_16(1880);
+emit_16(1813);
+emit_16(1880);
+emit_16(1814);
+emit_16(1881);
+emit_16(1815);
+emit_16(1881);
+emit_16(1814);
+emit_16(1881);
+emit_16(1815);
+emit_16(1882);
+emit_16(1816);
+emit_16(1882);
+emit_16(1815);
+emit_16(1882);
+emit_16(1816);
+emit_16(1883);
+emit_16(1817);
+emit_16(1883);
+emit_16(1816);
+emit_16(1883);
+emit_16(1817);
+emit_16(1884);
+emit_16(1818);
+emit_16(1884);
+emit_16(1817);
+emit_16(1884);
+emit_16(1818);
+emit_16(1885);
+emit_16(1819);
+emit_16(1885);
+emit_16(1818);
+emit_16(1885);
+emit_16(1819);
+emit_16(1886);
+emit_16(1820);
+emit_16(1886);
+emit_16(1819);
+emit_16(1886);
+emit_16(1820);
+emit_16(1887);
+emit_16(1821);
+emit_16(1887);
+emit_16(1820);
+emit_16(1887);
+emit_16(1821);
+emit_16(1888);
+emit_16(1822);
+emit_16(1888);
+emit_16(1821);
+emit_16(1888);
+emit_16(1822);
+emit_16(1889);
+emit_16(1823);
+emit_16(1889);
+emit_16(1822);
+emit_16(1889);
+emit_16(1823);
+emit_16(1890);
+emit_16(1824);
+emit_16(1890);
+emit_16(1823);
+emit_16(1890);
+emit_16(1824);
+emit_16(1891);
+emit_16(1825);
+emit_16(1891);
+emit_16(1824);
+emit_16(1891);
+emit_16(1825);
+emit_16(1892);
+emit_16(1826);
+emit_16(1892);
+emit_16(1825);
+emit_16(1892);
+emit_16(1826);
+emit_16(1893);
+emit_16(1827);
+emit_16(1893);
+emit_16(1826);
+emit_16(1893);
+emit_16(1827);
+emit_16(1894);
+emit_16(1828);
+emit_16(1894);
+emit_16(1827);
+emit_16(1894);
+emit_16(1828);
+emit_16(1895);
+emit_16(1829);
+emit_16(1895);
+emit_16(1828);
+emit_16(1895);
+emit_16(1829);
+emit_16(1896);
+emit_16(1830);
+emit_16(1896);
+emit_16(1829);
+emit_16(1896);
+emit_16(1830);
+emit_16(1897);
+emit_16(1831);
+emit_16(1897);
+emit_16(1830);
+emit_16(1897);
+emit_16(1831);
+emit_16(1898);
+emit_16(1832);
+emit_16(1898);
+emit_16(1831);
+emit_16(1898);
+emit_16(1832);
+emit_16(1899);
+emit_16(1833);
+emit_16(1899);
+emit_16(1832);
+emit_16(1899);
+emit_16(1833);
+emit_16(1900);
+emit_16(1834);
+emit_16(1900);
+emit_16(1833);
+emit_16(1900);
+emit_16(1834);
+emit_16(1901);
+emit_16(1835);
+emit_16(1901);
+emit_16(1834);
+emit_16(1901);
+emit_16(1835);
+emit_16(1902);
+emit_16(1836);
+emit_16(1902);
+emit_16(1835);
+emit_16(1902);
+emit_16(1836);
+emit_16(1903);
+emit_16(1837);
+emit_16(1903);
+emit_16(1836);
+emit_16(1903);
+emit_16(1837);
+emit_16(1904);
+emit_16(1838);
+emit_16(1904);
+emit_16(1837);
+emit_16(1904);
+emit_16(1838);
+emit_16(1905);
+emit_16(1839);
+emit_16(1905);
+emit_16(1838);
+emit_16(1905);
+emit_16(1839);
+emit_16(1906);
+emit_16(1840);
+emit_16(1906);
+emit_16(1839);
+emit_16(1906);
+emit_16(1840);
+emit_16(1907);
+emit_16(1841);
+emit_16(1907);
+emit_16(1840);
+emit_16(1907);
+emit_16(1841);
+emit_16(1908);
+emit_16(1842);
+emit_16(1908);
+emit_16(1841);
+emit_16(1908);
+emit_16(1842);
+emit_16(1909);
+emit_16(1843);
+emit_16(1909);
+emit_16(1842);
+emit_16(1909);
+emit_16(1843);
+emit_16(1910);
+emit_16(1844);
+emit_16(1910);
+emit_16(1843);
+emit_16(1910);
+emit_16(1844);
+emit_16(1911);
+emit_16(1845);
+emit_16(1911);
+emit_16(1844);
+emit_16(1911);
+emit_16(1845);
+emit_16(1912);
+emit_16(1846);
+emit_16(1912);
+emit_16(1845);
+emit_16(1912);
+emit_16(1846);
+emit_16(1913);
+emit_16(1847);
+emit_16(1913);
+emit_16(1846);
+emit_16(1914);
+emit_16(1848);
+emit_16(1915);
+emit_16(1849);
+emit_16(1915);
+emit_16(1848);
+emit_16(1915);
+emit_16(1849);
+emit_16(1916);
+emit_16(1850);
+emit_16(1916);
+emit_16(1849);
+emit_16(1916);
+emit_16(1850);
+emit_16(1917);
+emit_16(1851);
+emit_16(1917);
+emit_16(1850);
+emit_16(1917);
+emit_16(1851);
+emit_16(1918);
+emit_16(1852);
+emit_16(1918);
+emit_16(1851);
+emit_16(1918);
+emit_16(1852);
+emit_16(1919);
+emit_16(1853);
+emit_16(1919);
+emit_16(1852);
+emit_16(1919);
+emit_16(1853);
+emit_16(1920);
+emit_16(1854);
+emit_16(1920);
+emit_16(1853);
+emit_16(1920);
+emit_16(1854);
+emit_16(1921);
+emit_16(1855);
+emit_16(1921);
+emit_16(1854);
+emit_16(1921);
+emit_16(1855);
+emit_16(1922);
+emit_16(1856);
+emit_16(1922);
+emit_16(1855);
+emit_16(1922);
+emit_16(1856);
+emit_16(1923);
+emit_16(1857);
+emit_16(1923);
+emit_16(1856);
+emit_16(1923);
+emit_16(1857);
+emit_16(1924);
+emit_16(1858);
+emit_16(1924);
+emit_16(1857);
+emit_16(1924);
+emit_16(1858);
+emit_16(1925);
+emit_16(1859);
+emit_16(1925);
+emit_16(1858);
+emit_16(1925);
+emit_16(1859);
+emit_16(1926);
+emit_16(1860);
+emit_16(1926);
+emit_16(1859);
+emit_16(1926);
+emit_16(1860);
+emit_16(1927);
+emit_16(1861);
+emit_16(1927);
+emit_16(1860);
+emit_16(1927);
+emit_16(1861);
+emit_16(1928);
+emit_16(1862);
+emit_16(1928);
+emit_16(1861);
+emit_16(1928);
+emit_16(1862);
+emit_16(1929);
+emit_16(1863);
+emit_16(1929);
+emit_16(1862);
+emit_16(1929);
+emit_16(1863);
+emit_16(1930);
+emit_16(1864);
+emit_16(1930);
+emit_16(1863);
+emit_16(1930);
+emit_16(1864);
+emit_16(1931);
+emit_16(1865);
+emit_16(1931);
+emit_16(1864);
+emit_16(1931);
+emit_16(1865);
+emit_16(1932);
+emit_16(1866);
+emit_16(1932);
+emit_16(1865);
+emit_16(1932);
+emit_16(1866);
+emit_16(1933);
+emit_16(1867);
+emit_16(1933);
+emit_16(1866);
+emit_16(1933);
+emit_16(1867);
+emit_16(1934);
+emit_16(1868);
+emit_16(1934);
+emit_16(1867);
+emit_16(1934);
+emit_16(1868);
+emit_16(1935);
+emit_16(1869);
+emit_16(1935);
+emit_16(1868);
+emit_16(1935);
+emit_16(1869);
+emit_16(1936);
+emit_16(1870);
+emit_16(1936);
+emit_16(1869);
+emit_16(1936);
+emit_16(1870);
+emit_16(1937);
+emit_16(1871);
+emit_16(1937);
+emit_16(1870);
+emit_16(1937);
+emit_16(1871);
+emit_16(1938);
+emit_16(1872);
+emit_16(1938);
+emit_16(1871);
+emit_16(1938);
+emit_16(1872);
+emit_16(1939);
+emit_16(1873);
+emit_16(1939);
+emit_16(1872);
+emit_16(1939);
+emit_16(1873);
+emit_16(1940);
+emit_16(1874);
+emit_16(1940);
+emit_16(1873);
+emit_16(1940);
+emit_16(1874);
+emit_16(1941);
+emit_16(1875);
+emit_16(1941);
+emit_16(1874);
+emit_16(1941);
+emit_16(1875);
+emit_16(1942);
+emit_16(1876);
+emit_16(1942);
+emit_16(1875);
+emit_16(1942);
+emit_16(1876);
+emit_16(1943);
+emit_16(1877);
+emit_16(1943);
+emit_16(1876);
+emit_16(1943);
+emit_16(1877);
+emit_16(1944);
+emit_16(1878);
+emit_16(1944);
+emit_16(1877);
+emit_16(1944);
+emit_16(1878);
+emit_16(1945);
+emit_16(1879);
+emit_16(1945);
+emit_16(1878);
+emit_16(1945);
+emit_16(1879);
+emit_16(1946);
+emit_16(1880);
+emit_16(1946);
+emit_16(1879);
+emit_16(1946);
+emit_16(1880);
+emit_16(1947);
+emit_16(1881);
+emit_16(1947);
+emit_16(1880);
+emit_16(1947);
+emit_16(1881);
+emit_16(1948);
+emit_16(1882);
+emit_16(1948);
+emit_16(1881);
+emit_16(1948);
+emit_16(1882);
+emit_16(1949);
+emit_16(1883);
+emit_16(1949);
+emit_16(1882);
+emit_16(1949);
+emit_16(1883);
+emit_16(1950);
+emit_16(1884);
+emit_16(1950);
+emit_16(1883);
+emit_16(1950);
+emit_16(1884);
+emit_16(1951);
+emit_16(1885);
+emit_16(1951);
+emit_16(1884);
+emit_16(1951);
+emit_16(1885);
+emit_16(1952);
+emit_16(1886);
+emit_16(1952);
+emit_16(1885);
+emit_16(1952);
+emit_16(1886);
+emit_16(1953);
+emit_16(1887);
+emit_16(1953);
+emit_16(1886);
+emit_16(1953);
+emit_16(1887);
+emit_16(1954);
+emit_16(1888);
+emit_16(1954);
+emit_16(1887);
+emit_16(1954);
+emit_16(1888);
+emit_16(1955);
+emit_16(1889);
+emit_16(1955);
+emit_16(1888);
+emit_16(1955);
+emit_16(1889);
+emit_16(1956);
+emit_16(1890);
+emit_16(1956);
+emit_16(1889);
+emit_16(1956);
+emit_16(1890);
+emit_16(1957);
+emit_16(1891);
+emit_16(1957);
+emit_16(1890);
+emit_16(1957);
+emit_16(1891);
+emit_16(1958);
+emit_16(1892);
+emit_16(1958);
+emit_16(1891);
+emit_16(1958);
+emit_16(1892);
+emit_16(1959);
+emit_16(1893);
+emit_16(1959);
+emit_16(1892);
+emit_16(1959);
+emit_16(1893);
+emit_16(1960);
+emit_16(1894);
+emit_16(1960);
+emit_16(1893);
+emit_16(1960);
+emit_16(1894);
+emit_16(1961);
+emit_16(1895);
+emit_16(1961);
+emit_16(1894);
+emit_16(1961);
+emit_16(1895);
+emit_16(1962);
+emit_16(1896);
+emit_16(1962);
+emit_16(1895);
+emit_16(1962);
+emit_16(1896);
+emit_16(1963);
+emit_16(1897);
+emit_16(1963);
+emit_16(1896);
+emit_16(1963);
+emit_16(1897);
+emit_16(1964);
+emit_16(1898);
+emit_16(1964);
+emit_16(1897);
+emit_16(1964);
+emit_16(1898);
+emit_16(1965);
+emit_16(1899);
+emit_16(1965);
+emit_16(1898);
+emit_16(1965);
+emit_16(1899);
+emit_16(1966);
+emit_16(1900);
+emit_16(1966);
+emit_16(1899);
+emit_16(1966);
+emit_16(1900);
+emit_16(1967);
+emit_16(1901);
+emit_16(1967);
+emit_16(1900);
+emit_16(1967);
+emit_16(1901);
+emit_16(1968);
+emit_16(1902);
+emit_16(1968);
+emit_16(1901);
+emit_16(1968);
+emit_16(1902);
+emit_16(1969);
+emit_16(1903);
+emit_16(1969);
+emit_16(1902);
+emit_16(1969);
+emit_16(1903);
+emit_16(1970);
+emit_16(1904);
+emit_16(1970);
+emit_16(1903);
+emit_16(1970);
+emit_16(1904);
+emit_16(1971);
+emit_16(1905);
+emit_16(1971);
+emit_16(1904);
+emit_16(1971);
+emit_16(1905);
+emit_16(1972);
+emit_16(1906);
+emit_16(1972);
+emit_16(1905);
+emit_16(1972);
+emit_16(1906);
+emit_16(1973);
+emit_16(1907);
+emit_16(1973);
+emit_16(1906);
+emit_16(1973);
+emit_16(1907);
+emit_16(1974);
+emit_16(1908);
+emit_16(1974);
+emit_16(1907);
+emit_16(1974);
+emit_16(1908);
+emit_16(1975);
+emit_16(1909);
+emit_16(1975);
+emit_16(1908);
+emit_16(1975);
+emit_16(1909);
+emit_16(1976);
+emit_16(1910);
+emit_16(1976);
+emit_16(1909);
+emit_16(1976);
+emit_16(1910);
+emit_16(1977);
+emit_16(1911);
+emit_16(1977);
+emit_16(1910);
+emit_16(1977);
+emit_16(1911);
+emit_16(1978);
+emit_16(1912);
+emit_16(1978);
+emit_16(1911);
+emit_16(1978);
+emit_16(1912);
+emit_16(1979);
+emit_16(1913);
+emit_16(1979);
+emit_16(1912);
+emit_start(Landscape03Idx)
+emit_16(0);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(2);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(4);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(6);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(8);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(10);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(12);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(14);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(16);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(18);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(20);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(22);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(24);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(26);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(28);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(30);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(32);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(34);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(36);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(38);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(40);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(42);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(44);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(46);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(48);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(50);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(52);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(54);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(56);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(58);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(60);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(62);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(64);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(66);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(68);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(70);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(72);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(74);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(76);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(78);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(80);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(82);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(84);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(86);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(88);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(90);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(92);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(94);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(96);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(98);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(100);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(102);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(104);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(106);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(108);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(110);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(112);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(114);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(116);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(118);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(120);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(122);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(124);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(126);
+emit_16(125);
+emit_16(128);
+emit_16(0);
+emit_16(129);
+emit_16(2);
+emit_16(129);
+emit_16(0);
+emit_16(129);
+emit_16(2);
+emit_16(130);
+emit_16(4);
+emit_16(130);
+emit_16(2);
+emit_16(130);
+emit_16(4);
+emit_16(131);
+emit_16(6);
+emit_16(131);
+emit_16(4);
+emit_16(131);
+emit_16(6);
+emit_16(132);
+emit_16(8);
+emit_16(132);
+emit_16(6);
+emit_16(132);
+emit_16(8);
+emit_16(133);
+emit_16(10);
+emit_16(133);
+emit_16(8);
+emit_16(133);
+emit_16(10);
+emit_16(134);
+emit_16(12);
+emit_16(134);
+emit_16(10);
+emit_16(134);
+emit_16(12);
+emit_16(135);
+emit_16(14);
+emit_16(135);
+emit_16(12);
+emit_16(135);
+emit_16(14);
+emit_16(136);
+emit_16(16);
+emit_16(136);
+emit_16(14);
+emit_16(136);
+emit_16(16);
+emit_16(137);
+emit_16(18);
+emit_16(137);
+emit_16(16);
+emit_16(137);
+emit_16(18);
+emit_16(138);
+emit_16(20);
+emit_16(138);
+emit_16(18);
+emit_16(138);
+emit_16(20);
+emit_16(139);
+emit_16(22);
+emit_16(139);
+emit_16(20);
+emit_16(139);
+emit_16(22);
+emit_16(140);
+emit_16(24);
+emit_16(140);
+emit_16(22);
+emit_16(140);
+emit_16(24);
+emit_16(141);
+emit_16(26);
+emit_16(141);
+emit_16(24);
+emit_16(141);
+emit_16(26);
+emit_16(142);
+emit_16(28);
+emit_16(142);
+emit_16(26);
+emit_16(142);
+emit_16(28);
+emit_16(143);
+emit_16(30);
+emit_16(143);
+emit_16(28);
+emit_16(143);
+emit_16(30);
+emit_16(144);
+emit_16(32);
+emit_16(144);
+emit_16(30);
+emit_16(144);
+emit_16(32);
+emit_16(145);
+emit_16(34);
+emit_16(145);
+emit_16(32);
+emit_16(145);
+emit_16(34);
+emit_16(146);
+emit_16(36);
+emit_16(146);
+emit_16(34);
+emit_16(146);
+emit_16(36);
+emit_16(147);
+emit_16(38);
+emit_16(147);
+emit_16(36);
+emit_16(147);
+emit_16(38);
+emit_16(148);
+emit_16(40);
+emit_16(148);
+emit_16(38);
+emit_16(148);
+emit_16(40);
+emit_16(149);
+emit_16(42);
+emit_16(149);
+emit_16(40);
+emit_16(149);
+emit_16(42);
+emit_16(150);
+emit_16(44);
+emit_16(150);
+emit_16(42);
+emit_16(150);
+emit_16(44);
+emit_16(151);
+emit_16(46);
+emit_16(151);
+emit_16(44);
+emit_16(151);
+emit_16(46);
+emit_16(152);
+emit_16(48);
+emit_16(152);
+emit_16(46);
+emit_16(152);
+emit_16(48);
+emit_16(153);
+emit_16(50);
+emit_16(153);
+emit_16(48);
+emit_16(153);
+emit_16(50);
+emit_16(154);
+emit_16(52);
+emit_16(154);
+emit_16(50);
+emit_16(154);
+emit_16(52);
+emit_16(155);
+emit_16(54);
+emit_16(155);
+emit_16(52);
+emit_16(155);
+emit_16(54);
+emit_16(156);
+emit_16(56);
+emit_16(156);
+emit_16(54);
+emit_16(156);
+emit_16(56);
+emit_16(157);
+emit_16(58);
+emit_16(157);
+emit_16(56);
+emit_16(157);
+emit_16(58);
+emit_16(158);
+emit_16(60);
+emit_16(158);
+emit_16(58);
+emit_16(158);
+emit_16(60);
+emit_16(159);
+emit_16(62);
+emit_16(159);
+emit_16(60);
+emit_16(159);
+emit_16(62);
+emit_16(160);
+emit_16(64);
+emit_16(160);
+emit_16(62);
+emit_16(160);
+emit_16(64);
+emit_16(161);
+emit_16(66);
+emit_16(161);
+emit_16(64);
+emit_16(161);
+emit_16(66);
+emit_16(162);
+emit_16(68);
+emit_16(162);
+emit_16(66);
+emit_16(162);
+emit_16(68);
+emit_16(163);
+emit_16(70);
+emit_16(163);
+emit_16(68);
+emit_16(163);
+emit_16(70);
+emit_16(164);
+emit_16(72);
+emit_16(164);
+emit_16(70);
+emit_16(164);
+emit_16(72);
+emit_16(165);
+emit_16(74);
+emit_16(165);
+emit_16(72);
+emit_16(165);
+emit_16(74);
+emit_16(166);
+emit_16(76);
+emit_16(166);
+emit_16(74);
+emit_16(166);
+emit_16(76);
+emit_16(167);
+emit_16(78);
+emit_16(167);
+emit_16(76);
+emit_16(167);
+emit_16(78);
+emit_16(168);
+emit_16(80);
+emit_16(168);
+emit_16(78);
+emit_16(168);
+emit_16(80);
+emit_16(169);
+emit_16(82);
+emit_16(169);
+emit_16(80);
+emit_16(169);
+emit_16(82);
+emit_16(170);
+emit_16(84);
+emit_16(170);
+emit_16(82);
+emit_16(170);
+emit_16(84);
+emit_16(171);
+emit_16(86);
+emit_16(171);
+emit_16(84);
+emit_16(171);
+emit_16(86);
+emit_16(172);
+emit_16(88);
+emit_16(172);
+emit_16(86);
+emit_16(172);
+emit_16(88);
+emit_16(173);
+emit_16(90);
+emit_16(173);
+emit_16(88);
+emit_16(173);
+emit_16(90);
+emit_16(174);
+emit_16(92);
+emit_16(174);
+emit_16(90);
+emit_16(174);
+emit_16(92);
+emit_16(175);
+emit_16(94);
+emit_16(175);
+emit_16(92);
+emit_16(175);
+emit_16(94);
+emit_16(176);
+emit_16(96);
+emit_16(176);
+emit_16(94);
+emit_16(176);
+emit_16(96);
+emit_16(177);
+emit_16(98);
+emit_16(177);
+emit_16(96);
+emit_16(177);
+emit_16(98);
+emit_16(178);
+emit_16(100);
+emit_16(178);
+emit_16(98);
+emit_16(178);
+emit_16(100);
+emit_16(179);
+emit_16(102);
+emit_16(179);
+emit_16(100);
+emit_16(179);
+emit_16(102);
+emit_16(180);
+emit_16(104);
+emit_16(180);
+emit_16(102);
+emit_16(180);
+emit_16(104);
+emit_16(181);
+emit_16(106);
+emit_16(181);
+emit_16(104);
+emit_16(181);
+emit_16(106);
+emit_16(182);
+emit_16(108);
+emit_16(182);
+emit_16(106);
+emit_16(182);
+emit_16(108);
+emit_16(183);
+emit_16(110);
+emit_16(183);
+emit_16(108);
+emit_16(183);
+emit_16(110);
+emit_16(184);
+emit_16(112);
+emit_16(184);
+emit_16(110);
+emit_16(184);
+emit_16(112);
+emit_16(185);
+emit_16(114);
+emit_16(185);
+emit_16(112);
+emit_16(185);
+emit_16(114);
+emit_16(186);
+emit_16(116);
+emit_16(186);
+emit_16(114);
+emit_16(186);
+emit_16(116);
+emit_16(187);
+emit_16(118);
+emit_16(187);
+emit_16(116);
+emit_16(187);
+emit_16(118);
+emit_16(188);
+emit_16(120);
+emit_16(188);
+emit_16(118);
+emit_16(188);
+emit_16(120);
+emit_16(189);
+emit_16(122);
+emit_16(189);
+emit_16(120);
+emit_16(189);
+emit_16(122);
+emit_16(190);
+emit_16(124);
+emit_16(190);
+emit_16(122);
+emit_16(190);
+emit_16(124);
+emit_16(191);
+emit_16(126);
+emit_16(191);
+emit_16(124);
+emit_16(192);
+emit_16(128);
+emit_16(193);
+emit_16(129);
+emit_16(193);
+emit_16(128);
+emit_16(193);
+emit_16(129);
+emit_16(194);
+emit_16(130);
+emit_16(194);
+emit_16(129);
+emit_16(194);
+emit_16(130);
+emit_16(195);
+emit_16(131);
+emit_16(195);
+emit_16(130);
+emit_16(195);
+emit_16(131);
+emit_16(196);
+emit_16(132);
+emit_16(196);
+emit_16(131);
+emit_16(196);
+emit_16(132);
+emit_16(197);
+emit_16(133);
+emit_16(197);
+emit_16(132);
+emit_16(197);
+emit_16(133);
+emit_16(198);
+emit_16(134);
+emit_16(198);
+emit_16(133);
+emit_16(198);
+emit_16(134);
+emit_16(199);
+emit_16(135);
+emit_16(199);
+emit_16(134);
+emit_16(199);
+emit_16(135);
+emit_16(200);
+emit_16(136);
+emit_16(200);
+emit_16(135);
+emit_16(200);
+emit_16(136);
+emit_16(201);
+emit_16(137);
+emit_16(201);
+emit_16(136);
+emit_16(201);
+emit_16(137);
+emit_16(202);
+emit_16(138);
+emit_16(202);
+emit_16(137);
+emit_16(202);
+emit_16(138);
+emit_16(203);
+emit_16(139);
+emit_16(203);
+emit_16(138);
+emit_16(203);
+emit_16(139);
+emit_16(204);
+emit_16(140);
+emit_16(204);
+emit_16(139);
+emit_16(204);
+emit_16(140);
+emit_16(205);
+emit_16(141);
+emit_16(205);
+emit_16(140);
+emit_16(205);
+emit_16(141);
+emit_16(206);
+emit_16(142);
+emit_16(206);
+emit_16(141);
+emit_16(206);
+emit_16(142);
+emit_16(207);
+emit_16(143);
+emit_16(207);
+emit_16(142);
+emit_16(207);
+emit_16(143);
+emit_16(208);
+emit_16(144);
+emit_16(208);
+emit_16(143);
+emit_16(208);
+emit_16(144);
+emit_16(209);
+emit_16(145);
+emit_16(209);
+emit_16(144);
+emit_16(209);
+emit_16(145);
+emit_16(210);
+emit_16(146);
+emit_16(210);
+emit_16(145);
+emit_16(210);
+emit_16(146);
+emit_16(211);
+emit_16(147);
+emit_16(211);
+emit_16(146);
+emit_16(211);
+emit_16(147);
+emit_16(212);
+emit_16(148);
+emit_16(212);
+emit_16(147);
+emit_16(212);
+emit_16(148);
+emit_16(213);
+emit_16(149);
+emit_16(213);
+emit_16(148);
+emit_16(213);
+emit_16(149);
+emit_16(214);
+emit_16(150);
+emit_16(214);
+emit_16(149);
+emit_16(214);
+emit_16(150);
+emit_16(215);
+emit_16(151);
+emit_16(215);
+emit_16(150);
+emit_16(215);
+emit_16(151);
+emit_16(216);
+emit_16(152);
+emit_16(216);
+emit_16(151);
+emit_16(216);
+emit_16(152);
+emit_16(217);
+emit_16(153);
+emit_16(217);
+emit_16(152);
+emit_16(217);
+emit_16(153);
+emit_16(218);
+emit_16(154);
+emit_16(218);
+emit_16(153);
+emit_16(218);
+emit_16(154);
+emit_16(219);
+emit_16(155);
+emit_16(219);
+emit_16(154);
+emit_16(219);
+emit_16(155);
+emit_16(220);
+emit_16(156);
+emit_16(220);
+emit_16(155);
+emit_16(220);
+emit_16(156);
+emit_16(221);
+emit_16(157);
+emit_16(221);
+emit_16(156);
+emit_16(221);
+emit_16(157);
+emit_16(222);
+emit_16(158);
+emit_16(222);
+emit_16(157);
+emit_16(222);
+emit_16(158);
+emit_16(223);
+emit_16(159);
+emit_16(223);
+emit_16(158);
+emit_16(223);
+emit_16(159);
+emit_16(224);
+emit_16(160);
+emit_16(224);
+emit_16(159);
+emit_16(224);
+emit_16(160);
+emit_16(225);
+emit_16(161);
+emit_16(225);
+emit_16(160);
+emit_16(225);
+emit_16(161);
+emit_16(226);
+emit_16(162);
+emit_16(226);
+emit_16(161);
+emit_16(226);
+emit_16(162);
+emit_16(227);
+emit_16(163);
+emit_16(227);
+emit_16(162);
+emit_16(227);
+emit_16(163);
+emit_16(228);
+emit_16(164);
+emit_16(228);
+emit_16(163);
+emit_16(228);
+emit_16(164);
+emit_16(229);
+emit_16(165);
+emit_16(229);
+emit_16(164);
+emit_16(229);
+emit_16(165);
+emit_16(230);
+emit_16(166);
+emit_16(230);
+emit_16(165);
+emit_16(230);
+emit_16(166);
+emit_16(231);
+emit_16(167);
+emit_16(231);
+emit_16(166);
+emit_16(231);
+emit_16(167);
+emit_16(232);
+emit_16(168);
+emit_16(232);
+emit_16(167);
+emit_16(232);
+emit_16(168);
+emit_16(233);
+emit_16(169);
+emit_16(233);
+emit_16(168);
+emit_16(233);
+emit_16(169);
+emit_16(234);
+emit_16(170);
+emit_16(234);
+emit_16(169);
+emit_16(234);
+emit_16(170);
+emit_16(235);
+emit_16(171);
+emit_16(235);
+emit_16(170);
+emit_16(235);
+emit_16(171);
+emit_16(236);
+emit_16(172);
+emit_16(236);
+emit_16(171);
+emit_16(236);
+emit_16(172);
+emit_16(237);
+emit_16(173);
+emit_16(237);
+emit_16(172);
+emit_16(237);
+emit_16(173);
+emit_16(238);
+emit_16(174);
+emit_16(238);
+emit_16(173);
+emit_16(238);
+emit_16(174);
+emit_16(239);
+emit_16(175);
+emit_16(239);
+emit_16(174);
+emit_16(239);
+emit_16(175);
+emit_16(240);
+emit_16(176);
+emit_16(240);
+emit_16(175);
+emit_16(240);
+emit_16(176);
+emit_16(241);
+emit_16(177);
+emit_16(241);
+emit_16(176);
+emit_16(241);
+emit_16(177);
+emit_16(242);
+emit_16(178);
+emit_16(242);
+emit_16(177);
+emit_16(242);
+emit_16(178);
+emit_16(243);
+emit_16(179);
+emit_16(243);
+emit_16(178);
+emit_16(243);
+emit_16(179);
+emit_16(244);
+emit_16(180);
+emit_16(244);
+emit_16(179);
+emit_16(244);
+emit_16(180);
+emit_16(245);
+emit_16(181);
+emit_16(245);
+emit_16(180);
+emit_16(245);
+emit_16(181);
+emit_16(246);
+emit_16(182);
+emit_16(246);
+emit_16(181);
+emit_16(246);
+emit_16(182);
+emit_16(247);
+emit_16(183);
+emit_16(247);
+emit_16(182);
+emit_16(247);
+emit_16(183);
+emit_16(248);
+emit_16(184);
+emit_16(248);
+emit_16(183);
+emit_16(248);
+emit_16(184);
+emit_16(249);
+emit_16(185);
+emit_16(249);
+emit_16(184);
+emit_16(249);
+emit_16(185);
+emit_16(250);
+emit_16(186);
+emit_16(250);
+emit_16(185);
+emit_16(250);
+emit_16(186);
+emit_16(251);
+emit_16(187);
+emit_16(251);
+emit_16(186);
+emit_16(251);
+emit_16(187);
+emit_16(252);
+emit_16(188);
+emit_16(252);
+emit_16(187);
+emit_16(252);
+emit_16(188);
+emit_16(253);
+emit_16(189);
+emit_16(253);
+emit_16(188);
+emit_16(253);
+emit_16(189);
+emit_16(254);
+emit_16(190);
+emit_16(254);
+emit_16(189);
+emit_16(254);
+emit_16(190);
+emit_16(255);
+emit_16(191);
+emit_16(255);
+emit_16(190);
+emit_16(256);
+emit_16(192);
+emit_16(257);
+emit_16(193);
+emit_16(257);
+emit_16(192);
+emit_16(257);
+emit_16(193);
+emit_16(258);
+emit_16(194);
+emit_16(258);
+emit_16(193);
+emit_16(258);
+emit_16(194);
+emit_16(259);
+emit_16(195);
+emit_16(259);
+emit_16(194);
+emit_16(259);
+emit_16(195);
+emit_16(260);
+emit_16(196);
+emit_16(260);
+emit_16(195);
+emit_16(260);
+emit_16(196);
+emit_16(261);
+emit_16(197);
+emit_16(261);
+emit_16(196);
+emit_16(261);
+emit_16(197);
+emit_16(262);
+emit_16(198);
+emit_16(262);
+emit_16(197);
+emit_16(262);
+emit_16(198);
+emit_16(263);
+emit_16(199);
+emit_16(263);
+emit_16(198);
+emit_16(263);
+emit_16(199);
+emit_16(264);
+emit_16(200);
+emit_16(264);
+emit_16(199);
+emit_16(264);
+emit_16(200);
+emit_16(265);
+emit_16(201);
+emit_16(265);
+emit_16(200);
+emit_16(265);
+emit_16(201);
+emit_16(266);
+emit_16(202);
+emit_16(266);
+emit_16(201);
+emit_16(266);
+emit_16(202);
+emit_16(267);
+emit_16(203);
+emit_16(267);
+emit_16(202);
+emit_16(267);
+emit_16(203);
+emit_16(268);
+emit_16(204);
+emit_16(268);
+emit_16(203);
+emit_16(268);
+emit_16(204);
+emit_16(269);
+emit_16(205);
+emit_16(269);
+emit_16(204);
+emit_16(269);
+emit_16(205);
+emit_16(270);
+emit_16(206);
+emit_16(270);
+emit_16(205);
+emit_16(270);
+emit_16(206);
+emit_16(271);
+emit_16(207);
+emit_16(271);
+emit_16(206);
+emit_16(271);
+emit_16(207);
+emit_16(272);
+emit_16(208);
+emit_16(272);
+emit_16(207);
+emit_16(272);
+emit_16(208);
+emit_16(273);
+emit_16(209);
+emit_16(273);
+emit_16(208);
+emit_16(273);
+emit_16(209);
+emit_16(274);
+emit_16(210);
+emit_16(274);
+emit_16(209);
+emit_16(274);
+emit_16(210);
+emit_16(275);
+emit_16(211);
+emit_16(275);
+emit_16(210);
+emit_16(275);
+emit_16(211);
+emit_16(276);
+emit_16(212);
+emit_16(276);
+emit_16(211);
+emit_16(276);
+emit_16(212);
+emit_16(277);
+emit_16(213);
+emit_16(277);
+emit_16(212);
+emit_16(277);
+emit_16(213);
+emit_16(278);
+emit_16(214);
+emit_16(278);
+emit_16(213);
+emit_16(278);
+emit_16(214);
+emit_16(279);
+emit_16(215);
+emit_16(279);
+emit_16(214);
+emit_16(279);
+emit_16(215);
+emit_16(280);
+emit_16(216);
+emit_16(280);
+emit_16(215);
+emit_16(280);
+emit_16(216);
+emit_16(281);
+emit_16(217);
+emit_16(281);
+emit_16(216);
+emit_16(281);
+emit_16(217);
+emit_16(282);
+emit_16(218);
+emit_16(282);
+emit_16(217);
+emit_16(282);
+emit_16(218);
+emit_16(283);
+emit_16(219);
+emit_16(283);
+emit_16(218);
+emit_16(283);
+emit_16(219);
+emit_16(284);
+emit_16(220);
+emit_16(284);
+emit_16(219);
+emit_16(284);
+emit_16(220);
+emit_16(285);
+emit_16(221);
+emit_16(285);
+emit_16(220);
+emit_16(285);
+emit_16(221);
+emit_16(286);
+emit_16(222);
+emit_16(286);
+emit_16(221);
+emit_16(286);
+emit_16(222);
+emit_16(287);
+emit_16(223);
+emit_16(287);
+emit_16(222);
+emit_16(287);
+emit_16(223);
+emit_16(288);
+emit_16(224);
+emit_16(288);
+emit_16(223);
+emit_16(288);
+emit_16(224);
+emit_16(289);
+emit_16(225);
+emit_16(289);
+emit_16(224);
+emit_16(289);
+emit_16(225);
+emit_16(290);
+emit_16(226);
+emit_16(290);
+emit_16(225);
+emit_16(290);
+emit_16(226);
+emit_16(291);
+emit_16(227);
+emit_16(291);
+emit_16(226);
+emit_16(291);
+emit_16(227);
+emit_16(292);
+emit_16(228);
+emit_16(292);
+emit_16(227);
+emit_16(292);
+emit_16(228);
+emit_16(293);
+emit_16(229);
+emit_16(293);
+emit_16(228);
+emit_16(293);
+emit_16(229);
+emit_16(294);
+emit_16(230);
+emit_16(294);
+emit_16(229);
+emit_16(294);
+emit_16(230);
+emit_16(295);
+emit_16(231);
+emit_16(295);
+emit_16(230);
+emit_16(295);
+emit_16(231);
+emit_16(296);
+emit_16(232);
+emit_16(296);
+emit_16(231);
+emit_16(296);
+emit_16(232);
+emit_16(297);
+emit_16(233);
+emit_16(297);
+emit_16(232);
+emit_16(297);
+emit_16(233);
+emit_16(298);
+emit_16(234);
+emit_16(298);
+emit_16(233);
+emit_16(298);
+emit_16(234);
+emit_16(299);
+emit_16(235);
+emit_16(299);
+emit_16(234);
+emit_16(299);
+emit_16(235);
+emit_16(300);
+emit_16(236);
+emit_16(300);
+emit_16(235);
+emit_16(300);
+emit_16(236);
+emit_16(301);
+emit_16(237);
+emit_16(301);
+emit_16(236);
+emit_16(301);
+emit_16(237);
+emit_16(302);
+emit_16(238);
+emit_16(302);
+emit_16(237);
+emit_16(302);
+emit_16(238);
+emit_16(303);
+emit_16(239);
+emit_16(303);
+emit_16(238);
+emit_16(303);
+emit_16(239);
+emit_16(304);
+emit_16(240);
+emit_16(304);
+emit_16(239);
+emit_16(304);
+emit_16(240);
+emit_16(305);
+emit_16(241);
+emit_16(305);
+emit_16(240);
+emit_16(305);
+emit_16(241);
+emit_16(306);
+emit_16(242);
+emit_16(306);
+emit_16(241);
+emit_16(306);
+emit_16(242);
+emit_16(307);
+emit_16(243);
+emit_16(307);
+emit_16(242);
+emit_16(307);
+emit_16(243);
+emit_16(308);
+emit_16(244);
+emit_16(308);
+emit_16(243);
+emit_16(308);
+emit_16(244);
+emit_16(309);
+emit_16(245);
+emit_16(309);
+emit_16(244);
+emit_16(309);
+emit_16(245);
+emit_16(310);
+emit_16(246);
+emit_16(310);
+emit_16(245);
+emit_16(310);
+emit_16(246);
+emit_16(311);
+emit_16(247);
+emit_16(311);
+emit_16(246);
+emit_16(311);
+emit_16(247);
+emit_16(312);
+emit_16(248);
+emit_16(312);
+emit_16(247);
+emit_16(312);
+emit_16(248);
+emit_16(313);
+emit_16(249);
+emit_16(313);
+emit_16(248);
+emit_16(313);
+emit_16(249);
+emit_16(314);
+emit_16(250);
+emit_16(314);
+emit_16(249);
+emit_16(314);
+emit_16(250);
+emit_16(315);
+emit_16(251);
+emit_16(315);
+emit_16(250);
+emit_16(315);
+emit_16(251);
+emit_16(316);
+emit_16(252);
+emit_16(316);
+emit_16(251);
+emit_16(316);
+emit_16(252);
+emit_16(317);
+emit_16(253);
+emit_16(317);
+emit_16(252);
+emit_16(317);
+emit_16(253);
+emit_16(318);
+emit_16(254);
+emit_16(318);
+emit_16(253);
+emit_16(318);
+emit_16(254);
+emit_16(319);
+emit_16(255);
+emit_16(319);
+emit_16(254);
+emit_16(320);
+emit_16(256);
+emit_16(321);
+emit_16(257);
+emit_16(321);
+emit_16(256);
+emit_16(321);
+emit_16(257);
+emit_16(322);
+emit_16(258);
+emit_16(322);
+emit_16(257);
+emit_16(322);
+emit_16(258);
+emit_16(323);
+emit_16(259);
+emit_16(323);
+emit_16(258);
+emit_16(323);
+emit_16(259);
+emit_16(324);
+emit_16(260);
+emit_16(324);
+emit_16(259);
+emit_16(324);
+emit_16(260);
+emit_16(325);
+emit_16(261);
+emit_16(325);
+emit_16(260);
+emit_16(325);
+emit_16(261);
+emit_16(326);
+emit_16(262);
+emit_16(326);
+emit_16(261);
+emit_16(326);
+emit_16(262);
+emit_16(327);
+emit_16(263);
+emit_16(327);
+emit_16(262);
+emit_16(327);
+emit_16(263);
+emit_16(328);
+emit_16(264);
+emit_16(328);
+emit_16(263);
+emit_16(328);
+emit_16(264);
+emit_16(329);
+emit_16(265);
+emit_16(329);
+emit_16(264);
+emit_16(329);
+emit_16(265);
+emit_16(330);
+emit_16(266);
+emit_16(330);
+emit_16(265);
+emit_16(330);
+emit_16(266);
+emit_16(331);
+emit_16(267);
+emit_16(331);
+emit_16(266);
+emit_16(331);
+emit_16(267);
+emit_16(332);
+emit_16(268);
+emit_16(332);
+emit_16(267);
+emit_16(332);
+emit_16(268);
+emit_16(333);
+emit_16(269);
+emit_16(333);
+emit_16(268);
+emit_16(333);
+emit_16(269);
+emit_16(334);
+emit_16(270);
+emit_16(334);
+emit_16(269);
+emit_16(334);
+emit_16(270);
+emit_16(335);
+emit_16(271);
+emit_16(335);
+emit_16(270);
+emit_16(335);
+emit_16(271);
+emit_16(336);
+emit_16(272);
+emit_16(336);
+emit_16(271);
+emit_16(336);
+emit_16(272);
+emit_16(337);
+emit_16(273);
+emit_16(337);
+emit_16(272);
+emit_16(337);
+emit_16(273);
+emit_16(338);
+emit_16(274);
+emit_16(338);
+emit_16(273);
+emit_16(338);
+emit_16(274);
+emit_16(339);
+emit_16(275);
+emit_16(339);
+emit_16(274);
+emit_16(339);
+emit_16(275);
+emit_16(340);
+emit_16(276);
+emit_16(340);
+emit_16(275);
+emit_16(340);
+emit_16(276);
+emit_16(341);
+emit_16(277);
+emit_16(341);
+emit_16(276);
+emit_16(341);
+emit_16(277);
+emit_16(342);
+emit_16(278);
+emit_16(342);
+emit_16(277);
+emit_16(342);
+emit_16(278);
+emit_16(343);
+emit_16(279);
+emit_16(343);
+emit_16(278);
+emit_16(343);
+emit_16(279);
+emit_16(344);
+emit_16(280);
+emit_16(344);
+emit_16(279);
+emit_16(344);
+emit_16(280);
+emit_16(345);
+emit_16(281);
+emit_16(345);
+emit_16(280);
+emit_16(345);
+emit_16(281);
+emit_16(346);
+emit_16(282);
+emit_16(346);
+emit_16(281);
+emit_16(346);
+emit_16(282);
+emit_16(347);
+emit_16(283);
+emit_16(347);
+emit_16(282);
+emit_16(347);
+emit_16(283);
+emit_16(348);
+emit_16(284);
+emit_16(348);
+emit_16(283);
+emit_16(348);
+emit_16(284);
+emit_16(349);
+emit_16(285);
+emit_16(349);
+emit_16(284);
+emit_16(349);
+emit_16(285);
+emit_16(350);
+emit_16(286);
+emit_16(350);
+emit_16(285);
+emit_16(350);
+emit_16(286);
+emit_16(351);
+emit_16(287);
+emit_16(351);
+emit_16(286);
+emit_16(351);
+emit_16(287);
+emit_16(352);
+emit_16(288);
+emit_16(352);
+emit_16(287);
+emit_16(352);
+emit_16(288);
+emit_16(353);
+emit_16(289);
+emit_16(353);
+emit_16(288);
+emit_16(353);
+emit_16(289);
+emit_16(354);
+emit_16(290);
+emit_16(354);
+emit_16(289);
+emit_16(354);
+emit_16(290);
+emit_16(355);
+emit_16(291);
+emit_16(355);
+emit_16(290);
+emit_16(355);
+emit_16(291);
+emit_16(356);
+emit_16(292);
+emit_16(356);
+emit_16(291);
+emit_16(356);
+emit_16(292);
+emit_16(357);
+emit_16(293);
+emit_16(357);
+emit_16(292);
+emit_16(357);
+emit_16(293);
+emit_16(358);
+emit_16(294);
+emit_16(358);
+emit_16(293);
+emit_16(358);
+emit_16(294);
+emit_16(359);
+emit_16(295);
+emit_16(359);
+emit_16(294);
+emit_16(359);
+emit_16(295);
+emit_16(360);
+emit_16(296);
+emit_16(360);
+emit_16(295);
+emit_16(360);
+emit_16(296);
+emit_16(361);
+emit_16(297);
+emit_16(361);
+emit_16(296);
+emit_16(361);
+emit_16(297);
+emit_16(362);
+emit_16(298);
+emit_16(362);
+emit_16(297);
+emit_16(362);
+emit_16(298);
+emit_16(363);
+emit_16(299);
+emit_16(363);
+emit_16(298);
+emit_16(363);
+emit_16(299);
+emit_16(364);
+emit_16(300);
+emit_16(364);
+emit_16(299);
+emit_16(364);
+emit_16(300);
+emit_16(365);
+emit_16(301);
+emit_16(365);
+emit_16(300);
+emit_16(365);
+emit_16(301);
+emit_16(366);
+emit_16(302);
+emit_16(366);
+emit_16(301);
+emit_16(366);
+emit_16(302);
+emit_16(367);
+emit_16(303);
+emit_16(367);
+emit_16(302);
+emit_16(367);
+emit_16(303);
+emit_16(368);
+emit_16(304);
+emit_16(368);
+emit_16(303);
+emit_16(368);
+emit_16(304);
+emit_16(369);
+emit_16(305);
+emit_16(369);
+emit_16(304);
+emit_16(369);
+emit_16(305);
+emit_16(370);
+emit_16(306);
+emit_16(370);
+emit_16(305);
+emit_16(370);
+emit_16(306);
+emit_16(371);
+emit_16(307);
+emit_16(371);
+emit_16(306);
+emit_16(371);
+emit_16(307);
+emit_16(372);
+emit_16(308);
+emit_16(372);
+emit_16(307);
+emit_16(372);
+emit_16(308);
+emit_16(373);
+emit_16(309);
+emit_16(373);
+emit_16(308);
+emit_16(373);
+emit_16(309);
+emit_16(374);
+emit_16(310);
+emit_16(374);
+emit_16(309);
+emit_16(374);
+emit_16(310);
+emit_16(375);
+emit_16(311);
+emit_16(375);
+emit_16(310);
+emit_16(375);
+emit_16(311);
+emit_16(376);
+emit_16(312);
+emit_16(376);
+emit_16(311);
+emit_16(376);
+emit_16(312);
+emit_16(377);
+emit_16(313);
+emit_16(377);
+emit_16(312);
+emit_16(377);
+emit_16(313);
+emit_16(378);
+emit_16(314);
+emit_16(378);
+emit_16(313);
+emit_16(378);
+emit_16(314);
+emit_16(379);
+emit_16(315);
+emit_16(379);
+emit_16(314);
+emit_16(379);
+emit_16(315);
+emit_16(380);
+emit_16(316);
+emit_16(380);
+emit_16(315);
+emit_16(380);
+emit_16(316);
+emit_16(381);
+emit_16(317);
+emit_16(381);
+emit_16(316);
+emit_16(381);
+emit_16(317);
+emit_16(382);
+emit_16(318);
+emit_16(382);
+emit_16(317);
+emit_16(382);
+emit_16(318);
+emit_16(383);
+emit_16(319);
+emit_16(383);
+emit_16(318);
+emit_16(384);
+emit_16(320);
+emit_16(385);
+emit_16(321);
+emit_16(385);
+emit_16(320);
+emit_16(385);
+emit_16(321);
+emit_16(386);
+emit_16(322);
+emit_16(386);
+emit_16(321);
+emit_16(386);
+emit_16(322);
+emit_16(387);
+emit_16(323);
+emit_16(387);
+emit_16(322);
+emit_16(387);
+emit_16(323);
+emit_16(388);
+emit_16(324);
+emit_16(388);
+emit_16(323);
+emit_16(388);
+emit_16(324);
+emit_16(389);
+emit_16(325);
+emit_16(389);
+emit_16(324);
+emit_16(389);
+emit_16(325);
+emit_16(390);
+emit_16(326);
+emit_16(390);
+emit_16(325);
+emit_16(390);
+emit_16(326);
+emit_16(391);
+emit_16(327);
+emit_16(391);
+emit_16(326);
+emit_16(391);
+emit_16(327);
+emit_16(392);
+emit_16(328);
+emit_16(392);
+emit_16(327);
+emit_16(392);
+emit_16(328);
+emit_16(393);
+emit_16(329);
+emit_16(393);
+emit_16(328);
+emit_16(393);
+emit_16(329);
+emit_16(394);
+emit_16(330);
+emit_16(394);
+emit_16(329);
+emit_16(394);
+emit_16(330);
+emit_16(395);
+emit_16(331);
+emit_16(395);
+emit_16(330);
+emit_16(395);
+emit_16(331);
+emit_16(396);
+emit_16(332);
+emit_16(396);
+emit_16(331);
+emit_16(396);
+emit_16(332);
+emit_16(397);
+emit_16(333);
+emit_16(397);
+emit_16(332);
+emit_16(397);
+emit_16(333);
+emit_16(398);
+emit_16(334);
+emit_16(398);
+emit_16(333);
+emit_16(398);
+emit_16(334);
+emit_16(399);
+emit_16(335);
+emit_16(399);
+emit_16(334);
+emit_16(399);
+emit_16(335);
+emit_16(400);
+emit_16(336);
+emit_16(400);
+emit_16(335);
+emit_16(400);
+emit_16(336);
+emit_16(401);
+emit_16(337);
+emit_16(401);
+emit_16(336);
+emit_16(401);
+emit_16(337);
+emit_16(402);
+emit_16(338);
+emit_16(402);
+emit_16(337);
+emit_16(402);
+emit_16(338);
+emit_16(403);
+emit_16(339);
+emit_16(403);
+emit_16(338);
+emit_16(403);
+emit_16(339);
+emit_16(404);
+emit_16(340);
+emit_16(404);
+emit_16(339);
+emit_16(404);
+emit_16(340);
+emit_16(405);
+emit_16(341);
+emit_16(405);
+emit_16(340);
+emit_16(405);
+emit_16(341);
+emit_16(406);
+emit_16(342);
+emit_16(406);
+emit_16(341);
+emit_16(406);
+emit_16(342);
+emit_16(407);
+emit_16(343);
+emit_16(407);
+emit_16(342);
+emit_16(407);
+emit_16(343);
+emit_16(408);
+emit_16(344);
+emit_16(408);
+emit_16(343);
+emit_16(408);
+emit_16(344);
+emit_16(409);
+emit_16(345);
+emit_16(409);
+emit_16(344);
+emit_16(409);
+emit_16(345);
+emit_16(410);
+emit_16(346);
+emit_16(410);
+emit_16(345);
+emit_16(410);
+emit_16(346);
+emit_16(411);
+emit_16(347);
+emit_16(411);
+emit_16(346);
+emit_16(411);
+emit_16(347);
+emit_16(412);
+emit_16(348);
+emit_16(412);
+emit_16(347);
+emit_16(412);
+emit_16(348);
+emit_16(413);
+emit_16(349);
+emit_16(413);
+emit_16(348);
+emit_16(413);
+emit_16(349);
+emit_16(414);
+emit_16(350);
+emit_16(414);
+emit_16(349);
+emit_16(414);
+emit_16(350);
+emit_16(415);
+emit_16(351);
+emit_16(415);
+emit_16(350);
+emit_16(415);
+emit_16(351);
+emit_16(416);
+emit_16(352);
+emit_16(416);
+emit_16(351);
+emit_16(416);
+emit_16(352);
+emit_16(417);
+emit_16(353);
+emit_16(417);
+emit_16(352);
+emit_16(417);
+emit_16(353);
+emit_16(418);
+emit_16(354);
+emit_16(418);
+emit_16(353);
+emit_16(418);
+emit_16(354);
+emit_16(419);
+emit_16(355);
+emit_16(419);
+emit_16(354);
+emit_16(419);
+emit_16(355);
+emit_16(420);
+emit_16(356);
+emit_16(420);
+emit_16(355);
+emit_16(420);
+emit_16(356);
+emit_16(421);
+emit_16(357);
+emit_16(421);
+emit_16(356);
+emit_16(421);
+emit_16(357);
+emit_16(422);
+emit_16(358);
+emit_16(422);
+emit_16(357);
+emit_16(422);
+emit_16(358);
+emit_16(423);
+emit_16(359);
+emit_16(423);
+emit_16(358);
+emit_16(423);
+emit_16(359);
+emit_16(424);
+emit_16(360);
+emit_16(424);
+emit_16(359);
+emit_16(424);
+emit_16(360);
+emit_16(425);
+emit_16(361);
+emit_16(425);
+emit_16(360);
+emit_16(425);
+emit_16(361);
+emit_16(426);
+emit_16(362);
+emit_16(426);
+emit_16(361);
+emit_16(426);
+emit_16(362);
+emit_16(427);
+emit_16(363);
+emit_16(427);
+emit_16(362);
+emit_16(427);
+emit_16(363);
+emit_16(428);
+emit_16(364);
+emit_16(428);
+emit_16(363);
+emit_16(428);
+emit_16(364);
+emit_16(429);
+emit_16(365);
+emit_16(429);
+emit_16(364);
+emit_16(429);
+emit_16(365);
+emit_16(430);
+emit_16(366);
+emit_16(430);
+emit_16(365);
+emit_16(430);
+emit_16(366);
+emit_16(431);
+emit_16(367);
+emit_16(431);
+emit_16(366);
+emit_16(431);
+emit_16(367);
+emit_16(432);
+emit_16(368);
+emit_16(432);
+emit_16(367);
+emit_16(432);
+emit_16(368);
+emit_16(433);
+emit_16(369);
+emit_16(433);
+emit_16(368);
+emit_16(433);
+emit_16(369);
+emit_16(434);
+emit_16(370);
+emit_16(434);
+emit_16(369);
+emit_16(434);
+emit_16(370);
+emit_16(435);
+emit_16(371);
+emit_16(435);
+emit_16(370);
+emit_16(435);
+emit_16(371);
+emit_16(436);
+emit_16(372);
+emit_16(436);
+emit_16(371);
+emit_16(436);
+emit_16(372);
+emit_16(437);
+emit_16(373);
+emit_16(437);
+emit_16(372);
+emit_16(437);
+emit_16(373);
+emit_16(438);
+emit_16(374);
+emit_16(438);
+emit_16(373);
+emit_16(438);
+emit_16(374);
+emit_16(439);
+emit_16(375);
+emit_16(439);
+emit_16(374);
+emit_16(439);
+emit_16(375);
+emit_16(440);
+emit_16(376);
+emit_16(440);
+emit_16(375);
+emit_16(440);
+emit_16(376);
+emit_16(441);
+emit_16(377);
+emit_16(441);
+emit_16(376);
+emit_16(441);
+emit_16(377);
+emit_16(442);
+emit_16(378);
+emit_16(442);
+emit_16(377);
+emit_16(442);
+emit_16(378);
+emit_16(443);
+emit_16(379);
+emit_16(443);
+emit_16(378);
+emit_16(443);
+emit_16(379);
+emit_16(444);
+emit_16(380);
+emit_16(444);
+emit_16(379);
+emit_16(444);
+emit_16(380);
+emit_16(445);
+emit_16(381);
+emit_16(445);
+emit_16(380);
+emit_16(445);
+emit_16(381);
+emit_16(446);
+emit_16(382);
+emit_16(446);
+emit_16(381);
+emit_16(446);
+emit_16(382);
+emit_16(447);
+emit_16(383);
+emit_16(447);
+emit_16(382);
+emit_16(448);
+emit_16(384);
+emit_16(449);
+emit_16(385);
+emit_16(449);
+emit_16(384);
+emit_16(449);
+emit_16(385);
+emit_16(450);
+emit_16(386);
+emit_16(450);
+emit_16(385);
+emit_16(450);
+emit_16(386);
+emit_16(451);
+emit_16(387);
+emit_16(451);
+emit_16(386);
+emit_16(451);
+emit_16(387);
+emit_16(452);
+emit_16(388);
+emit_16(452);
+emit_16(387);
+emit_16(452);
+emit_16(388);
+emit_16(453);
+emit_16(389);
+emit_16(453);
+emit_16(388);
+emit_16(453);
+emit_16(389);
+emit_16(454);
+emit_16(390);
+emit_16(454);
+emit_16(389);
+emit_16(454);
+emit_16(390);
+emit_16(455);
+emit_16(391);
+emit_16(455);
+emit_16(390);
+emit_16(455);
+emit_16(391);
+emit_16(456);
+emit_16(392);
+emit_16(456);
+emit_16(391);
+emit_16(456);
+emit_16(392);
+emit_16(457);
+emit_16(393);
+emit_16(457);
+emit_16(392);
+emit_16(457);
+emit_16(393);
+emit_16(458);
+emit_16(394);
+emit_16(458);
+emit_16(393);
+emit_16(458);
+emit_16(394);
+emit_16(459);
+emit_16(395);
+emit_16(459);
+emit_16(394);
+emit_16(459);
+emit_16(395);
+emit_16(460);
+emit_16(396);
+emit_16(460);
+emit_16(395);
+emit_16(460);
+emit_16(396);
+emit_16(461);
+emit_16(397);
+emit_16(461);
+emit_16(396);
+emit_16(461);
+emit_16(397);
+emit_16(462);
+emit_16(398);
+emit_16(462);
+emit_16(397);
+emit_16(462);
+emit_16(398);
+emit_16(463);
+emit_16(399);
+emit_16(463);
+emit_16(398);
+emit_16(463);
+emit_16(399);
+emit_16(464);
+emit_16(400);
+emit_16(464);
+emit_16(399);
+emit_16(464);
+emit_16(400);
+emit_16(465);
+emit_16(401);
+emit_16(465);
+emit_16(400);
+emit_16(465);
+emit_16(401);
+emit_16(466);
+emit_16(402);
+emit_16(466);
+emit_16(401);
+emit_16(466);
+emit_16(402);
+emit_16(467);
+emit_16(403);
+emit_16(467);
+emit_16(402);
+emit_16(467);
+emit_16(403);
+emit_16(468);
+emit_16(404);
+emit_16(468);
+emit_16(403);
+emit_16(468);
+emit_16(404);
+emit_16(469);
+emit_16(405);
+emit_16(469);
+emit_16(404);
+emit_16(469);
+emit_16(405);
+emit_16(470);
+emit_16(406);
+emit_16(470);
+emit_16(405);
+emit_16(470);
+emit_16(406);
+emit_16(471);
+emit_16(407);
+emit_16(471);
+emit_16(406);
+emit_16(471);
+emit_16(407);
+emit_16(472);
+emit_16(408);
+emit_16(472);
+emit_16(407);
+emit_16(472);
+emit_16(408);
+emit_16(473);
+emit_16(409);
+emit_16(473);
+emit_16(408);
+emit_16(473);
+emit_16(409);
+emit_16(474);
+emit_16(410);
+emit_16(474);
+emit_16(409);
+emit_16(474);
+emit_16(410);
+emit_16(475);
+emit_16(411);
+emit_16(475);
+emit_16(410);
+emit_16(475);
+emit_16(411);
+emit_16(476);
+emit_16(412);
+emit_16(476);
+emit_16(411);
+emit_16(476);
+emit_16(412);
+emit_16(477);
+emit_16(413);
+emit_16(477);
+emit_16(412);
+emit_16(477);
+emit_16(413);
+emit_16(478);
+emit_16(414);
+emit_16(478);
+emit_16(413);
+emit_16(478);
+emit_16(414);
+emit_16(479);
+emit_16(415);
+emit_16(479);
+emit_16(414);
+emit_16(479);
+emit_16(415);
+emit_16(480);
+emit_16(416);
+emit_16(480);
+emit_16(415);
+emit_16(480);
+emit_16(416);
+emit_16(481);
+emit_16(417);
+emit_16(481);
+emit_16(416);
+emit_16(481);
+emit_16(417);
+emit_16(482);
+emit_16(418);
+emit_16(482);
+emit_16(417);
+emit_16(482);
+emit_16(418);
+emit_16(483);
+emit_16(419);
+emit_16(483);
+emit_16(418);
+emit_16(483);
+emit_16(419);
+emit_16(484);
+emit_16(420);
+emit_16(484);
+emit_16(419);
+emit_16(484);
+emit_16(420);
+emit_16(485);
+emit_16(421);
+emit_16(485);
+emit_16(420);
+emit_16(485);
+emit_16(421);
+emit_16(486);
+emit_16(422);
+emit_16(486);
+emit_16(421);
+emit_16(486);
+emit_16(422);
+emit_16(487);
+emit_16(423);
+emit_16(487);
+emit_16(422);
+emit_16(487);
+emit_16(423);
+emit_16(488);
+emit_16(424);
+emit_16(488);
+emit_16(423);
+emit_16(488);
+emit_16(424);
+emit_16(489);
+emit_16(425);
+emit_16(489);
+emit_16(424);
+emit_16(489);
+emit_16(425);
+emit_16(490);
+emit_16(426);
+emit_16(490);
+emit_16(425);
+emit_16(490);
+emit_16(426);
+emit_16(491);
+emit_16(427);
+emit_16(491);
+emit_16(426);
+emit_16(491);
+emit_16(427);
+emit_16(492);
+emit_16(428);
+emit_16(492);
+emit_16(427);
+emit_16(492);
+emit_16(428);
+emit_16(493);
+emit_16(429);
+emit_16(493);
+emit_16(428);
+emit_16(493);
+emit_16(429);
+emit_16(494);
+emit_16(430);
+emit_16(494);
+emit_16(429);
+emit_16(494);
+emit_16(430);
+emit_16(495);
+emit_16(431);
+emit_16(495);
+emit_16(430);
+emit_16(495);
+emit_16(431);
+emit_16(496);
+emit_16(432);
+emit_16(496);
+emit_16(431);
+emit_16(496);
+emit_16(432);
+emit_16(497);
+emit_16(433);
+emit_16(497);
+emit_16(432);
+emit_16(497);
+emit_16(433);
+emit_16(498);
+emit_16(434);
+emit_16(498);
+emit_16(433);
+emit_16(498);
+emit_16(434);
+emit_16(499);
+emit_16(435);
+emit_16(499);
+emit_16(434);
+emit_16(499);
+emit_16(435);
+emit_16(500);
+emit_16(436);
+emit_16(500);
+emit_16(435);
+emit_16(500);
+emit_16(436);
+emit_16(501);
+emit_16(437);
+emit_16(501);
+emit_16(436);
+emit_16(501);
+emit_16(437);
+emit_16(502);
+emit_16(438);
+emit_16(502);
+emit_16(437);
+emit_16(502);
+emit_16(438);
+emit_16(503);
+emit_16(439);
+emit_16(503);
+emit_16(438);
+emit_16(503);
+emit_16(439);
+emit_16(504);
+emit_16(440);
+emit_16(504);
+emit_16(439);
+emit_16(504);
+emit_16(440);
+emit_16(505);
+emit_16(441);
+emit_16(505);
+emit_16(440);
+emit_16(505);
+emit_16(441);
+emit_16(506);
+emit_16(442);
+emit_16(506);
+emit_16(441);
+emit_16(506);
+emit_16(442);
+emit_16(507);
+emit_16(443);
+emit_16(507);
+emit_16(442);
+emit_16(507);
+emit_16(443);
+emit_16(508);
+emit_16(444);
+emit_16(508);
+emit_16(443);
+emit_16(508);
+emit_16(444);
+emit_16(509);
+emit_16(445);
+emit_16(509);
+emit_16(444);
+emit_16(509);
+emit_16(445);
+emit_16(510);
+emit_16(446);
+emit_16(510);
+emit_16(445);
+emit_16(510);
+emit_16(446);
+emit_16(511);
+emit_16(447);
+emit_16(511);
+emit_16(446);
+emit_16(512);
+emit_16(448);
+emit_16(513);
+emit_16(449);
+emit_16(513);
+emit_16(448);
+emit_16(513);
+emit_16(449);
+emit_16(514);
+emit_16(450);
+emit_16(514);
+emit_16(449);
+emit_16(514);
+emit_16(450);
+emit_16(515);
+emit_16(451);
+emit_16(515);
+emit_16(450);
+emit_16(515);
+emit_16(451);
+emit_16(516);
+emit_16(452);
+emit_16(516);
+emit_16(451);
+emit_16(516);
+emit_16(452);
+emit_16(517);
+emit_16(453);
+emit_16(517);
+emit_16(452);
+emit_16(517);
+emit_16(453);
+emit_16(518);
+emit_16(454);
+emit_16(518);
+emit_16(453);
+emit_16(518);
+emit_16(454);
+emit_16(519);
+emit_16(455);
+emit_16(519);
+emit_16(454);
+emit_16(519);
+emit_16(455);
+emit_16(520);
+emit_16(456);
+emit_16(520);
+emit_16(455);
+emit_16(520);
+emit_16(456);
+emit_16(521);
+emit_16(457);
+emit_16(521);
+emit_16(456);
+emit_16(521);
+emit_16(457);
+emit_16(522);
+emit_16(458);
+emit_16(522);
+emit_16(457);
+emit_16(522);
+emit_16(458);
+emit_16(523);
+emit_16(459);
+emit_16(523);
+emit_16(458);
+emit_16(523);
+emit_16(459);
+emit_16(524);
+emit_16(460);
+emit_16(524);
+emit_16(459);
+emit_16(524);
+emit_16(460);
+emit_16(525);
+emit_16(461);
+emit_16(525);
+emit_16(460);
+emit_16(525);
+emit_16(461);
+emit_16(526);
+emit_16(462);
+emit_16(526);
+emit_16(461);
+emit_16(526);
+emit_16(462);
+emit_16(527);
+emit_16(463);
+emit_16(527);
+emit_16(462);
+emit_16(527);
+emit_16(463);
+emit_16(528);
+emit_16(464);
+emit_16(528);
+emit_16(463);
+emit_16(528);
+emit_16(464);
+emit_16(529);
+emit_16(465);
+emit_16(529);
+emit_16(464);
+emit_16(529);
+emit_16(465);
+emit_16(530);
+emit_16(466);
+emit_16(530);
+emit_16(465);
+emit_16(530);
+emit_16(466);
+emit_16(531);
+emit_16(467);
+emit_16(531);
+emit_16(466);
+emit_16(531);
+emit_16(467);
+emit_16(532);
+emit_16(468);
+emit_16(532);
+emit_16(467);
+emit_16(532);
+emit_16(468);
+emit_16(533);
+emit_16(469);
+emit_16(533);
+emit_16(468);
+emit_16(533);
+emit_16(469);
+emit_16(534);
+emit_16(470);
+emit_16(534);
+emit_16(469);
+emit_16(534);
+emit_16(470);
+emit_16(535);
+emit_16(471);
+emit_16(535);
+emit_16(470);
+emit_16(535);
+emit_16(471);
+emit_16(536);
+emit_16(472);
+emit_16(536);
+emit_16(471);
+emit_16(536);
+emit_16(472);
+emit_16(537);
+emit_16(473);
+emit_16(537);
+emit_16(472);
+emit_16(537);
+emit_16(473);
+emit_16(538);
+emit_16(474);
+emit_16(538);
+emit_16(473);
+emit_16(538);
+emit_16(474);
+emit_16(539);
+emit_16(475);
+emit_16(539);
+emit_16(474);
+emit_16(539);
+emit_16(475);
+emit_16(540);
+emit_16(476);
+emit_16(540);
+emit_16(475);
+emit_16(540);
+emit_16(476);
+emit_16(541);
+emit_16(477);
+emit_16(541);
+emit_16(476);
+emit_16(541);
+emit_16(477);
+emit_16(542);
+emit_16(478);
+emit_16(542);
+emit_16(477);
+emit_16(542);
+emit_16(478);
+emit_16(543);
+emit_16(479);
+emit_16(543);
+emit_16(478);
+emit_16(543);
+emit_16(479);
+emit_16(544);
+emit_16(480);
+emit_16(544);
+emit_16(479);
+emit_16(544);
+emit_16(480);
+emit_16(545);
+emit_16(481);
+emit_16(545);
+emit_16(480);
+emit_16(545);
+emit_16(481);
+emit_16(546);
+emit_16(482);
+emit_16(546);
+emit_16(481);
+emit_16(546);
+emit_16(482);
+emit_16(547);
+emit_16(483);
+emit_16(547);
+emit_16(482);
+emit_16(547);
+emit_16(483);
+emit_16(548);
+emit_16(484);
+emit_16(548);
+emit_16(483);
+emit_16(548);
+emit_16(484);
+emit_16(549);
+emit_16(485);
+emit_16(549);
+emit_16(484);
+emit_16(549);
+emit_16(485);
+emit_16(550);
+emit_16(486);
+emit_16(550);
+emit_16(485);
+emit_16(550);
+emit_16(486);
+emit_16(551);
+emit_16(487);
+emit_16(551);
+emit_16(486);
+emit_16(551);
+emit_16(487);
+emit_16(552);
+emit_16(488);
+emit_16(552);
+emit_16(487);
+emit_16(552);
+emit_16(488);
+emit_16(553);
+emit_16(489);
+emit_16(553);
+emit_16(488);
+emit_16(553);
+emit_16(489);
+emit_16(554);
+emit_16(490);
+emit_16(554);
+emit_16(489);
+emit_16(554);
+emit_16(490);
+emit_16(555);
+emit_16(491);
+emit_16(555);
+emit_16(490);
+emit_16(555);
+emit_16(491);
+emit_16(556);
+emit_16(492);
+emit_16(556);
+emit_16(491);
+emit_16(556);
+emit_16(492);
+emit_16(557);
+emit_16(493);
+emit_16(557);
+emit_16(492);
+emit_16(557);
+emit_16(493);
+emit_16(558);
+emit_16(494);
+emit_16(558);
+emit_16(493);
+emit_16(558);
+emit_16(494);
+emit_16(559);
+emit_16(495);
+emit_16(559);
+emit_16(494);
+emit_16(559);
+emit_16(495);
+emit_16(560);
+emit_16(496);
+emit_16(560);
+emit_16(495);
+emit_16(560);
+emit_16(496);
+emit_16(561);
+emit_16(497);
+emit_16(561);
+emit_16(496);
+emit_16(561);
+emit_16(497);
+emit_16(562);
+emit_16(498);
+emit_16(562);
+emit_16(497);
+emit_16(562);
+emit_16(498);
+emit_16(563);
+emit_16(499);
+emit_16(563);
+emit_16(498);
+emit_16(563);
+emit_16(499);
+emit_16(564);
+emit_16(500);
+emit_16(564);
+emit_16(499);
+emit_16(564);
+emit_16(500);
+emit_16(565);
+emit_16(501);
+emit_16(565);
+emit_16(500);
+emit_16(565);
+emit_16(501);
+emit_16(566);
+emit_16(502);
+emit_16(566);
+emit_16(501);
+emit_16(566);
+emit_16(502);
+emit_16(567);
+emit_16(503);
+emit_16(567);
+emit_16(502);
+emit_16(567);
+emit_16(503);
+emit_16(568);
+emit_16(504);
+emit_16(568);
+emit_16(503);
+emit_16(568);
+emit_16(504);
+emit_16(569);
+emit_16(505);
+emit_16(569);
+emit_16(504);
+emit_16(569);
+emit_16(505);
+emit_16(570);
+emit_16(506);
+emit_16(570);
+emit_16(505);
+emit_16(570);
+emit_16(506);
+emit_16(571);
+emit_16(507);
+emit_16(571);
+emit_16(506);
+emit_16(571);
+emit_16(507);
+emit_16(572);
+emit_16(508);
+emit_16(572);
+emit_16(507);
+emit_16(572);
+emit_16(508);
+emit_16(573);
+emit_16(509);
+emit_16(573);
+emit_16(508);
+emit_16(573);
+emit_16(509);
+emit_16(574);
+emit_16(510);
+emit_16(574);
+emit_16(509);
+emit_16(574);
+emit_16(510);
+emit_16(575);
+emit_16(511);
+emit_16(575);
+emit_16(510);
+emit_16(576);
+emit_16(512);
+emit_16(577);
+emit_16(513);
+emit_16(577);
+emit_16(512);
+emit_16(577);
+emit_16(513);
+emit_16(578);
+emit_16(514);
+emit_16(578);
+emit_16(513);
+emit_16(578);
+emit_16(514);
+emit_16(579);
+emit_16(515);
+emit_16(579);
+emit_16(514);
+emit_16(579);
+emit_16(515);
+emit_16(580);
+emit_16(516);
+emit_16(580);
+emit_16(515);
+emit_16(580);
+emit_16(516);
+emit_16(581);
+emit_16(517);
+emit_16(581);
+emit_16(516);
+emit_16(581);
+emit_16(517);
+emit_16(582);
+emit_16(518);
+emit_16(582);
+emit_16(517);
+emit_16(582);
+emit_16(518);
+emit_16(583);
+emit_16(519);
+emit_16(583);
+emit_16(518);
+emit_16(583);
+emit_16(519);
+emit_16(584);
+emit_16(520);
+emit_16(584);
+emit_16(519);
+emit_16(584);
+emit_16(520);
+emit_16(585);
+emit_16(521);
+emit_16(585);
+emit_16(520);
+emit_16(585);
+emit_16(521);
+emit_16(586);
+emit_16(522);
+emit_16(586);
+emit_16(521);
+emit_16(586);
+emit_16(522);
+emit_16(587);
+emit_16(523);
+emit_16(587);
+emit_16(522);
+emit_16(587);
+emit_16(523);
+emit_16(588);
+emit_16(524);
+emit_16(588);
+emit_16(523);
+emit_16(588);
+emit_16(524);
+emit_16(589);
+emit_16(525);
+emit_16(589);
+emit_16(524);
+emit_16(589);
+emit_16(525);
+emit_16(590);
+emit_16(526);
+emit_16(590);
+emit_16(525);
+emit_16(590);
+emit_16(526);
+emit_16(591);
+emit_16(527);
+emit_16(591);
+emit_16(526);
+emit_16(591);
+emit_16(527);
+emit_16(592);
+emit_16(528);
+emit_16(592);
+emit_16(527);
+emit_16(592);
+emit_16(528);
+emit_16(593);
+emit_16(529);
+emit_16(593);
+emit_16(528);
+emit_16(593);
+emit_16(529);
+emit_16(594);
+emit_16(530);
+emit_16(594);
+emit_16(529);
+emit_16(594);
+emit_16(530);
+emit_16(595);
+emit_16(531);
+emit_16(595);
+emit_16(530);
+emit_16(595);
+emit_16(531);
+emit_16(596);
+emit_16(532);
+emit_16(596);
+emit_16(531);
+emit_16(596);
+emit_16(532);
+emit_16(597);
+emit_16(533);
+emit_16(597);
+emit_16(532);
+emit_16(597);
+emit_16(533);
+emit_16(598);
+emit_16(534);
+emit_16(598);
+emit_16(533);
+emit_16(598);
+emit_16(534);
+emit_16(599);
+emit_16(535);
+emit_16(599);
+emit_16(534);
+emit_16(599);
+emit_16(535);
+emit_16(600);
+emit_16(536);
+emit_16(600);
+emit_16(535);
+emit_16(600);
+emit_16(536);
+emit_16(601);
+emit_16(537);
+emit_16(601);
+emit_16(536);
+emit_16(601);
+emit_16(537);
+emit_16(602);
+emit_16(538);
+emit_16(602);
+emit_16(537);
+emit_16(602);
+emit_16(538);
+emit_16(603);
+emit_16(539);
+emit_16(603);
+emit_16(538);
+emit_16(603);
+emit_16(539);
+emit_16(604);
+emit_16(540);
+emit_16(604);
+emit_16(539);
+emit_16(604);
+emit_16(540);
+emit_16(605);
+emit_16(541);
+emit_16(605);
+emit_16(540);
+emit_16(605);
+emit_16(541);
+emit_16(606);
+emit_16(542);
+emit_16(606);
+emit_16(541);
+emit_16(606);
+emit_16(542);
+emit_16(607);
+emit_16(543);
+emit_16(607);
+emit_16(542);
+emit_16(607);
+emit_16(543);
+emit_16(608);
+emit_16(544);
+emit_16(608);
+emit_16(543);
+emit_16(608);
+emit_16(544);
+emit_16(609);
+emit_16(545);
+emit_16(609);
+emit_16(544);
+emit_16(609);
+emit_16(545);
+emit_16(610);
+emit_16(546);
+emit_16(610);
+emit_16(545);
+emit_16(610);
+emit_16(546);
+emit_16(611);
+emit_16(547);
+emit_16(611);
+emit_16(546);
+emit_16(611);
+emit_16(547);
+emit_16(612);
+emit_16(548);
+emit_16(612);
+emit_16(547);
+emit_16(612);
+emit_16(548);
+emit_16(613);
+emit_16(549);
+emit_16(613);
+emit_16(548);
+emit_16(613);
+emit_16(549);
+emit_16(614);
+emit_16(550);
+emit_16(614);
+emit_16(549);
+emit_16(614);
+emit_16(550);
+emit_16(615);
+emit_16(551);
+emit_16(615);
+emit_16(550);
+emit_16(615);
+emit_16(551);
+emit_16(616);
+emit_16(552);
+emit_16(616);
+emit_16(551);
+emit_16(616);
+emit_16(552);
+emit_16(617);
+emit_16(553);
+emit_16(617);
+emit_16(552);
+emit_16(617);
+emit_16(553);
+emit_16(618);
+emit_16(554);
+emit_16(618);
+emit_16(553);
+emit_16(618);
+emit_16(554);
+emit_16(619);
+emit_16(555);
+emit_16(619);
+emit_16(554);
+emit_16(619);
+emit_16(555);
+emit_16(620);
+emit_16(556);
+emit_16(620);
+emit_16(555);
+emit_16(620);
+emit_16(556);
+emit_16(621);
+emit_16(557);
+emit_16(621);
+emit_16(556);
+emit_16(621);
+emit_16(557);
+emit_16(622);
+emit_16(558);
+emit_16(622);
+emit_16(557);
+emit_16(622);
+emit_16(558);
+emit_16(623);
+emit_16(559);
+emit_16(623);
+emit_16(558);
+emit_16(623);
+emit_16(559);
+emit_16(624);
+emit_16(560);
+emit_16(624);
+emit_16(559);
+emit_16(624);
+emit_16(560);
+emit_16(625);
+emit_16(561);
+emit_16(625);
+emit_16(560);
+emit_16(625);
+emit_16(561);
+emit_16(626);
+emit_16(562);
+emit_16(626);
+emit_16(561);
+emit_16(626);
+emit_16(562);
+emit_16(627);
+emit_16(563);
+emit_16(627);
+emit_16(562);
+emit_16(627);
+emit_16(563);
+emit_16(628);
+emit_16(564);
+emit_16(628);
+emit_16(563);
+emit_16(628);
+emit_16(564);
+emit_16(629);
+emit_16(565);
+emit_16(629);
+emit_16(564);
+emit_16(629);
+emit_16(565);
+emit_16(630);
+emit_16(566);
+emit_16(630);
+emit_16(565);
+emit_16(630);
+emit_16(566);
+emit_16(631);
+emit_16(567);
+emit_16(631);
+emit_16(566);
+emit_16(631);
+emit_16(567);
+emit_16(632);
+emit_16(568);
+emit_16(632);
+emit_16(567);
+emit_16(632);
+emit_16(568);
+emit_16(633);
+emit_16(569);
+emit_16(633);
+emit_16(568);
+emit_16(633);
+emit_16(569);
+emit_16(634);
+emit_16(570);
+emit_16(634);
+emit_16(569);
+emit_16(634);
+emit_16(570);
+emit_16(635);
+emit_16(571);
+emit_16(635);
+emit_16(570);
+emit_16(635);
+emit_16(571);
+emit_16(636);
+emit_16(572);
+emit_16(636);
+emit_16(571);
+emit_16(636);
+emit_16(572);
+emit_16(637);
+emit_16(573);
+emit_16(637);
+emit_16(572);
+emit_16(637);
+emit_16(573);
+emit_16(638);
+emit_16(574);
+emit_16(638);
+emit_16(573);
+emit_16(638);
+emit_16(574);
+emit_16(639);
+emit_16(575);
+emit_16(639);
+emit_16(574);
+emit_16(640);
+emit_16(576);
+emit_16(641);
+emit_16(577);
+emit_16(641);
+emit_16(576);
+emit_16(641);
+emit_16(577);
+emit_16(642);
+emit_16(578);
+emit_16(642);
+emit_16(577);
+emit_16(642);
+emit_16(578);
+emit_16(643);
+emit_16(579);
+emit_16(643);
+emit_16(578);
+emit_16(643);
+emit_16(579);
+emit_16(644);
+emit_16(580);
+emit_16(644);
+emit_16(579);
+emit_16(644);
+emit_16(580);
+emit_16(645);
+emit_16(581);
+emit_16(645);
+emit_16(580);
+emit_16(645);
+emit_16(581);
+emit_16(646);
+emit_16(582);
+emit_16(646);
+emit_16(581);
+emit_16(646);
+emit_16(582);
+emit_16(647);
+emit_16(583);
+emit_16(647);
+emit_16(582);
+emit_16(647);
+emit_16(583);
+emit_16(648);
+emit_16(584);
+emit_16(648);
+emit_16(583);
+emit_16(648);
+emit_16(584);
+emit_16(649);
+emit_16(585);
+emit_16(649);
+emit_16(584);
+emit_16(649);
+emit_16(585);
+emit_16(650);
+emit_16(586);
+emit_16(650);
+emit_16(585);
+emit_16(650);
+emit_16(586);
+emit_16(651);
+emit_16(587);
+emit_16(651);
+emit_16(586);
+emit_16(651);
+emit_16(587);
+emit_16(652);
+emit_16(588);
+emit_16(652);
+emit_16(587);
+emit_16(652);
+emit_16(588);
+emit_16(653);
+emit_16(589);
+emit_16(653);
+emit_16(588);
+emit_16(653);
+emit_16(589);
+emit_16(654);
+emit_16(590);
+emit_16(654);
+emit_16(589);
+emit_16(654);
+emit_16(590);
+emit_16(655);
+emit_16(591);
+emit_16(655);
+emit_16(590);
+emit_16(655);
+emit_16(591);
+emit_16(656);
+emit_16(592);
+emit_16(656);
+emit_16(591);
+emit_16(656);
+emit_16(592);
+emit_16(657);
+emit_16(593);
+emit_16(657);
+emit_16(592);
+emit_16(657);
+emit_16(593);
+emit_16(658);
+emit_16(594);
+emit_16(658);
+emit_16(593);
+emit_16(658);
+emit_16(594);
+emit_16(659);
+emit_16(595);
+emit_16(659);
+emit_16(594);
+emit_16(659);
+emit_16(595);
+emit_16(660);
+emit_16(596);
+emit_16(660);
+emit_16(595);
+emit_16(660);
+emit_16(596);
+emit_16(661);
+emit_16(597);
+emit_16(661);
+emit_16(596);
+emit_16(661);
+emit_16(597);
+emit_16(662);
+emit_16(598);
+emit_16(662);
+emit_16(597);
+emit_16(662);
+emit_16(598);
+emit_16(663);
+emit_16(599);
+emit_16(663);
+emit_16(598);
+emit_16(663);
+emit_16(599);
+emit_16(664);
+emit_16(600);
+emit_16(664);
+emit_16(599);
+emit_16(664);
+emit_16(600);
+emit_16(665);
+emit_16(601);
+emit_16(665);
+emit_16(600);
+emit_16(665);
+emit_16(601);
+emit_16(666);
+emit_16(602);
+emit_16(666);
+emit_16(601);
+emit_16(666);
+emit_16(602);
+emit_16(667);
+emit_16(603);
+emit_16(667);
+emit_16(602);
+emit_16(667);
+emit_16(603);
+emit_16(668);
+emit_16(604);
+emit_16(668);
+emit_16(603);
+emit_16(668);
+emit_16(604);
+emit_16(669);
+emit_16(605);
+emit_16(669);
+emit_16(604);
+emit_16(669);
+emit_16(605);
+emit_16(670);
+emit_16(606);
+emit_16(670);
+emit_16(605);
+emit_16(670);
+emit_16(606);
+emit_16(671);
+emit_16(607);
+emit_16(671);
+emit_16(606);
+emit_16(671);
+emit_16(607);
+emit_16(672);
+emit_16(608);
+emit_16(672);
+emit_16(607);
+emit_16(672);
+emit_16(608);
+emit_16(673);
+emit_16(609);
+emit_16(673);
+emit_16(608);
+emit_16(673);
+emit_16(609);
+emit_16(674);
+emit_16(610);
+emit_16(674);
+emit_16(609);
+emit_16(674);
+emit_16(610);
+emit_16(675);
+emit_16(611);
+emit_16(675);
+emit_16(610);
+emit_16(675);
+emit_16(611);
+emit_16(676);
+emit_16(612);
+emit_16(676);
+emit_16(611);
+emit_16(676);
+emit_16(612);
+emit_16(677);
+emit_16(613);
+emit_16(677);
+emit_16(612);
+emit_16(677);
+emit_16(613);
+emit_16(678);
+emit_16(614);
+emit_16(678);
+emit_16(613);
+emit_16(678);
+emit_16(614);
+emit_16(679);
+emit_16(615);
+emit_16(679);
+emit_16(614);
+emit_16(679);
+emit_16(615);
+emit_16(680);
+emit_16(616);
+emit_16(680);
+emit_16(615);
+emit_16(680);
+emit_16(616);
+emit_16(681);
+emit_16(617);
+emit_16(681);
+emit_16(616);
+emit_16(681);
+emit_16(617);
+emit_16(682);
+emit_16(618);
+emit_16(682);
+emit_16(617);
+emit_16(682);
+emit_16(618);
+emit_16(683);
+emit_16(619);
+emit_16(683);
+emit_16(618);
+emit_16(683);
+emit_16(619);
+emit_16(684);
+emit_16(620);
+emit_16(684);
+emit_16(619);
+emit_16(684);
+emit_16(620);
+emit_16(685);
+emit_16(621);
+emit_16(685);
+emit_16(620);
+emit_16(685);
+emit_16(621);
+emit_16(686);
+emit_16(622);
+emit_16(686);
+emit_16(621);
+emit_16(686);
+emit_16(622);
+emit_16(687);
+emit_16(623);
+emit_16(687);
+emit_16(622);
+emit_16(687);
+emit_16(623);
+emit_16(688);
+emit_16(624);
+emit_16(688);
+emit_16(623);
+emit_16(688);
+emit_16(624);
+emit_16(689);
+emit_16(625);
+emit_16(689);
+emit_16(624);
+emit_16(689);
+emit_16(625);
+emit_16(690);
+emit_16(626);
+emit_16(690);
+emit_16(625);
+emit_16(690);
+emit_16(626);
+emit_16(691);
+emit_16(627);
+emit_16(691);
+emit_16(626);
+emit_16(691);
+emit_16(627);
+emit_16(692);
+emit_16(628);
+emit_16(692);
+emit_16(627);
+emit_16(692);
+emit_16(628);
+emit_16(693);
+emit_16(629);
+emit_16(693);
+emit_16(628);
+emit_16(693);
+emit_16(629);
+emit_16(694);
+emit_16(630);
+emit_16(694);
+emit_16(629);
+emit_16(694);
+emit_16(630);
+emit_16(695);
+emit_16(631);
+emit_16(695);
+emit_16(630);
+emit_16(695);
+emit_16(631);
+emit_16(696);
+emit_16(632);
+emit_16(696);
+emit_16(631);
+emit_16(696);
+emit_16(632);
+emit_16(697);
+emit_16(633);
+emit_16(697);
+emit_16(632);
+emit_16(697);
+emit_16(633);
+emit_16(698);
+emit_16(634);
+emit_16(698);
+emit_16(633);
+emit_16(698);
+emit_16(634);
+emit_16(699);
+emit_16(635);
+emit_16(699);
+emit_16(634);
+emit_16(699);
+emit_16(635);
+emit_16(700);
+emit_16(636);
+emit_16(700);
+emit_16(635);
+emit_16(700);
+emit_16(636);
+emit_16(701);
+emit_16(637);
+emit_16(701);
+emit_16(636);
+emit_16(701);
+emit_16(637);
+emit_16(702);
+emit_16(638);
+emit_16(702);
+emit_16(637);
+emit_16(702);
+emit_16(638);
+emit_16(703);
+emit_16(639);
+emit_16(703);
+emit_16(638);
+emit_16(704);
+emit_16(640);
+emit_16(705);
+emit_16(641);
+emit_16(705);
+emit_16(640);
+emit_16(705);
+emit_16(641);
+emit_16(706);
+emit_16(642);
+emit_16(706);
+emit_16(641);
+emit_16(706);
+emit_16(642);
+emit_16(707);
+emit_16(643);
+emit_16(707);
+emit_16(642);
+emit_16(707);
+emit_16(643);
+emit_16(708);
+emit_16(644);
+emit_16(708);
+emit_16(643);
+emit_16(708);
+emit_16(644);
+emit_16(709);
+emit_16(645);
+emit_16(709);
+emit_16(644);
+emit_16(709);
+emit_16(645);
+emit_16(710);
+emit_16(646);
+emit_16(710);
+emit_16(645);
+emit_16(710);
+emit_16(646);
+emit_16(711);
+emit_16(647);
+emit_16(711);
+emit_16(646);
+emit_16(711);
+emit_16(647);
+emit_16(712);
+emit_16(648);
+emit_16(712);
+emit_16(647);
+emit_16(712);
+emit_16(648);
+emit_16(713);
+emit_16(649);
+emit_16(713);
+emit_16(648);
+emit_16(713);
+emit_16(649);
+emit_16(714);
+emit_16(650);
+emit_16(714);
+emit_16(649);
+emit_16(714);
+emit_16(650);
+emit_16(715);
+emit_16(651);
+emit_16(715);
+emit_16(650);
+emit_16(715);
+emit_16(651);
+emit_16(716);
+emit_16(652);
+emit_16(716);
+emit_16(651);
+emit_16(716);
+emit_16(652);
+emit_16(717);
+emit_16(653);
+emit_16(717);
+emit_16(652);
+emit_16(717);
+emit_16(653);
+emit_16(718);
+emit_16(654);
+emit_16(718);
+emit_16(653);
+emit_16(718);
+emit_16(654);
+emit_16(719);
+emit_16(655);
+emit_16(719);
+emit_16(654);
+emit_16(719);
+emit_16(655);
+emit_16(720);
+emit_16(656);
+emit_16(720);
+emit_16(655);
+emit_16(720);
+emit_16(656);
+emit_16(721);
+emit_16(657);
+emit_16(721);
+emit_16(656);
+emit_16(721);
+emit_16(657);
+emit_16(722);
+emit_16(658);
+emit_16(722);
+emit_16(657);
+emit_16(722);
+emit_16(658);
+emit_16(723);
+emit_16(659);
+emit_16(723);
+emit_16(658);
+emit_16(723);
+emit_16(659);
+emit_16(724);
+emit_16(660);
+emit_16(724);
+emit_16(659);
+emit_16(724);
+emit_16(660);
+emit_16(725);
+emit_16(661);
+emit_16(725);
+emit_16(660);
+emit_16(725);
+emit_16(661);
+emit_16(726);
+emit_16(662);
+emit_16(726);
+emit_16(661);
+emit_16(726);
+emit_16(662);
+emit_16(727);
+emit_16(663);
+emit_16(727);
+emit_16(662);
+emit_16(727);
+emit_16(663);
+emit_16(728);
+emit_16(664);
+emit_16(728);
+emit_16(663);
+emit_16(728);
+emit_16(664);
+emit_16(729);
+emit_16(665);
+emit_16(729);
+emit_16(664);
+emit_16(729);
+emit_16(665);
+emit_16(730);
+emit_16(666);
+emit_16(730);
+emit_16(665);
+emit_16(730);
+emit_16(666);
+emit_16(731);
+emit_16(667);
+emit_16(731);
+emit_16(666);
+emit_16(731);
+emit_16(667);
+emit_16(732);
+emit_16(668);
+emit_16(732);
+emit_16(667);
+emit_16(732);
+emit_16(668);
+emit_16(733);
+emit_16(669);
+emit_16(733);
+emit_16(668);
+emit_16(733);
+emit_16(669);
+emit_16(734);
+emit_16(670);
+emit_16(734);
+emit_16(669);
+emit_16(734);
+emit_16(670);
+emit_16(735);
+emit_16(671);
+emit_16(735);
+emit_16(670);
+emit_16(735);
+emit_16(671);
+emit_16(736);
+emit_16(672);
+emit_16(736);
+emit_16(671);
+emit_16(736);
+emit_16(672);
+emit_16(737);
+emit_16(673);
+emit_16(737);
+emit_16(672);
+emit_16(737);
+emit_16(673);
+emit_16(738);
+emit_16(674);
+emit_16(738);
+emit_16(673);
+emit_16(738);
+emit_16(674);
+emit_16(739);
+emit_16(675);
+emit_16(739);
+emit_16(674);
+emit_16(739);
+emit_16(675);
+emit_16(740);
+emit_16(676);
+emit_16(740);
+emit_16(675);
+emit_16(740);
+emit_16(676);
+emit_16(741);
+emit_16(677);
+emit_16(741);
+emit_16(676);
+emit_16(741);
+emit_16(677);
+emit_16(742);
+emit_16(678);
+emit_16(742);
+emit_16(677);
+emit_16(742);
+emit_16(678);
+emit_16(743);
+emit_16(679);
+emit_16(743);
+emit_16(678);
+emit_16(743);
+emit_16(679);
+emit_16(744);
+emit_16(680);
+emit_16(744);
+emit_16(679);
+emit_16(744);
+emit_16(680);
+emit_16(745);
+emit_16(681);
+emit_16(745);
+emit_16(680);
+emit_16(745);
+emit_16(681);
+emit_16(746);
+emit_16(682);
+emit_16(746);
+emit_16(681);
+emit_16(746);
+emit_16(682);
+emit_16(747);
+emit_16(683);
+emit_16(747);
+emit_16(682);
+emit_16(747);
+emit_16(683);
+emit_16(748);
+emit_16(684);
+emit_16(748);
+emit_16(683);
+emit_16(748);
+emit_16(684);
+emit_16(749);
+emit_16(685);
+emit_16(749);
+emit_16(684);
+emit_16(749);
+emit_16(685);
+emit_16(750);
+emit_16(686);
+emit_16(750);
+emit_16(685);
+emit_16(750);
+emit_16(686);
+emit_16(751);
+emit_16(687);
+emit_16(751);
+emit_16(686);
+emit_16(751);
+emit_16(687);
+emit_16(752);
+emit_16(688);
+emit_16(752);
+emit_16(687);
+emit_16(752);
+emit_16(688);
+emit_16(753);
+emit_16(689);
+emit_16(753);
+emit_16(688);
+emit_16(753);
+emit_16(689);
+emit_16(754);
+emit_16(690);
+emit_16(754);
+emit_16(689);
+emit_16(754);
+emit_16(690);
+emit_16(755);
+emit_16(691);
+emit_16(755);
+emit_16(690);
+emit_16(755);
+emit_16(691);
+emit_16(756);
+emit_16(692);
+emit_16(756);
+emit_16(691);
+emit_16(756);
+emit_16(692);
+emit_16(757);
+emit_16(693);
+emit_16(757);
+emit_16(692);
+emit_16(757);
+emit_16(693);
+emit_16(758);
+emit_16(694);
+emit_16(758);
+emit_16(693);
+emit_16(758);
+emit_16(694);
+emit_16(759);
+emit_16(695);
+emit_16(759);
+emit_16(694);
+emit_16(759);
+emit_16(695);
+emit_16(760);
+emit_16(696);
+emit_16(760);
+emit_16(695);
+emit_16(760);
+emit_16(696);
+emit_16(761);
+emit_16(697);
+emit_16(761);
+emit_16(696);
+emit_16(761);
+emit_16(697);
+emit_16(762);
+emit_16(698);
+emit_16(762);
+emit_16(697);
+emit_16(762);
+emit_16(698);
+emit_16(763);
+emit_16(699);
+emit_16(763);
+emit_16(698);
+emit_16(763);
+emit_16(699);
+emit_16(764);
+emit_16(700);
+emit_16(764);
+emit_16(699);
+emit_16(764);
+emit_16(700);
+emit_16(765);
+emit_16(701);
+emit_16(765);
+emit_16(700);
+emit_16(765);
+emit_16(701);
+emit_16(766);
+emit_16(702);
+emit_16(766);
+emit_16(701);
+emit_16(766);
+emit_16(702);
+emit_16(767);
+emit_16(703);
+emit_16(767);
+emit_16(702);
+emit_16(768);
+emit_16(704);
+emit_16(769);
+emit_16(705);
+emit_16(769);
+emit_16(704);
+emit_16(769);
+emit_16(705);
+emit_16(770);
+emit_16(706);
+emit_16(770);
+emit_16(705);
+emit_16(770);
+emit_16(706);
+emit_16(771);
+emit_16(707);
+emit_16(771);
+emit_16(706);
+emit_16(771);
+emit_16(707);
+emit_16(772);
+emit_16(708);
+emit_16(772);
+emit_16(707);
+emit_16(772);
+emit_16(708);
+emit_16(773);
+emit_16(709);
+emit_16(773);
+emit_16(708);
+emit_16(773);
+emit_16(709);
+emit_16(774);
+emit_16(710);
+emit_16(774);
+emit_16(709);
+emit_16(774);
+emit_16(710);
+emit_16(775);
+emit_16(711);
+emit_16(775);
+emit_16(710);
+emit_16(775);
+emit_16(711);
+emit_16(776);
+emit_16(712);
+emit_16(776);
+emit_16(711);
+emit_16(776);
+emit_16(712);
+emit_16(777);
+emit_16(713);
+emit_16(777);
+emit_16(712);
+emit_16(777);
+emit_16(713);
+emit_16(778);
+emit_16(714);
+emit_16(778);
+emit_16(713);
+emit_16(778);
+emit_16(714);
+emit_16(779);
+emit_16(715);
+emit_16(779);
+emit_16(714);
+emit_16(779);
+emit_16(715);
+emit_16(780);
+emit_16(716);
+emit_16(780);
+emit_16(715);
+emit_16(780);
+emit_16(716);
+emit_16(781);
+emit_16(717);
+emit_16(781);
+emit_16(716);
+emit_16(781);
+emit_16(717);
+emit_16(782);
+emit_16(718);
+emit_16(782);
+emit_16(717);
+emit_16(782);
+emit_16(718);
+emit_16(783);
+emit_16(719);
+emit_16(783);
+emit_16(718);
+emit_16(783);
+emit_16(719);
+emit_16(784);
+emit_16(720);
+emit_16(784);
+emit_16(719);
+emit_16(784);
+emit_16(720);
+emit_16(785);
+emit_16(721);
+emit_16(785);
+emit_16(720);
+emit_16(785);
+emit_16(721);
+emit_16(786);
+emit_16(722);
+emit_16(786);
+emit_16(721);
+emit_16(786);
+emit_16(722);
+emit_16(787);
+emit_16(723);
+emit_16(787);
+emit_16(722);
+emit_16(787);
+emit_16(723);
+emit_16(788);
+emit_16(724);
+emit_16(788);
+emit_16(723);
+emit_16(788);
+emit_16(724);
+emit_16(789);
+emit_16(725);
+emit_16(789);
+emit_16(724);
+emit_16(789);
+emit_16(725);
+emit_16(790);
+emit_16(726);
+emit_16(790);
+emit_16(725);
+emit_16(790);
+emit_16(726);
+emit_16(791);
+emit_16(727);
+emit_16(791);
+emit_16(726);
+emit_16(791);
+emit_16(727);
+emit_16(792);
+emit_16(728);
+emit_16(792);
+emit_16(727);
+emit_16(792);
+emit_16(728);
+emit_16(793);
+emit_16(729);
+emit_16(793);
+emit_16(728);
+emit_16(793);
+emit_16(729);
+emit_16(794);
+emit_16(730);
+emit_16(794);
+emit_16(729);
+emit_16(794);
+emit_16(730);
+emit_16(795);
+emit_16(731);
+emit_16(795);
+emit_16(730);
+emit_16(795);
+emit_16(731);
+emit_16(796);
+emit_16(732);
+emit_16(796);
+emit_16(731);
+emit_16(796);
+emit_16(732);
+emit_16(797);
+emit_16(733);
+emit_16(797);
+emit_16(732);
+emit_16(797);
+emit_16(733);
+emit_16(798);
+emit_16(734);
+emit_16(798);
+emit_16(733);
+emit_16(798);
+emit_16(734);
+emit_16(799);
+emit_16(735);
+emit_16(799);
+emit_16(734);
+emit_16(799);
+emit_16(735);
+emit_16(800);
+emit_16(736);
+emit_16(800);
+emit_16(735);
+emit_16(800);
+emit_16(736);
+emit_16(801);
+emit_16(737);
+emit_16(801);
+emit_16(736);
+emit_16(801);
+emit_16(737);
+emit_16(802);
+emit_16(738);
+emit_16(802);
+emit_16(737);
+emit_16(802);
+emit_16(738);
+emit_16(803);
+emit_16(739);
+emit_16(803);
+emit_16(738);
+emit_16(803);
+emit_16(739);
+emit_16(804);
+emit_16(740);
+emit_16(804);
+emit_16(739);
+emit_16(804);
+emit_16(740);
+emit_16(805);
+emit_16(741);
+emit_16(805);
+emit_16(740);
+emit_16(805);
+emit_16(741);
+emit_16(806);
+emit_16(742);
+emit_16(806);
+emit_16(741);
+emit_16(806);
+emit_16(742);
+emit_16(807);
+emit_16(743);
+emit_16(807);
+emit_16(742);
+emit_16(807);
+emit_16(743);
+emit_16(808);
+emit_16(744);
+emit_16(808);
+emit_16(743);
+emit_16(808);
+emit_16(744);
+emit_16(809);
+emit_16(745);
+emit_16(809);
+emit_16(744);
+emit_16(809);
+emit_16(745);
+emit_16(810);
+emit_16(746);
+emit_16(810);
+emit_16(745);
+emit_16(810);
+emit_16(746);
+emit_16(811);
+emit_16(747);
+emit_16(811);
+emit_16(746);
+emit_16(811);
+emit_16(747);
+emit_16(812);
+emit_16(748);
+emit_16(812);
+emit_16(747);
+emit_16(812);
+emit_16(748);
+emit_16(813);
+emit_16(749);
+emit_16(813);
+emit_16(748);
+emit_16(813);
+emit_16(749);
+emit_16(814);
+emit_16(750);
+emit_16(814);
+emit_16(749);
+emit_16(814);
+emit_16(750);
+emit_16(815);
+emit_16(751);
+emit_16(815);
+emit_16(750);
+emit_16(815);
+emit_16(751);
+emit_16(816);
+emit_16(752);
+emit_16(816);
+emit_16(751);
+emit_16(816);
+emit_16(752);
+emit_16(817);
+emit_16(753);
+emit_16(817);
+emit_16(752);
+emit_16(817);
+emit_16(753);
+emit_16(818);
+emit_16(754);
+emit_16(818);
+emit_16(753);
+emit_16(818);
+emit_16(754);
+emit_16(819);
+emit_16(755);
+emit_16(819);
+emit_16(754);
+emit_16(819);
+emit_16(755);
+emit_16(820);
+emit_16(756);
+emit_16(820);
+emit_16(755);
+emit_16(820);
+emit_16(756);
+emit_16(821);
+emit_16(757);
+emit_16(821);
+emit_16(756);
+emit_16(821);
+emit_16(757);
+emit_16(822);
+emit_16(758);
+emit_16(822);
+emit_16(757);
+emit_16(822);
+emit_16(758);
+emit_16(823);
+emit_16(759);
+emit_16(823);
+emit_16(758);
+emit_16(823);
+emit_16(759);
+emit_16(824);
+emit_16(760);
+emit_16(824);
+emit_16(759);
+emit_16(824);
+emit_16(760);
+emit_16(825);
+emit_16(761);
+emit_16(825);
+emit_16(760);
+emit_16(825);
+emit_16(761);
+emit_16(826);
+emit_16(762);
+emit_16(826);
+emit_16(761);
+emit_16(826);
+emit_16(762);
+emit_16(827);
+emit_16(763);
+emit_16(827);
+emit_16(762);
+emit_16(827);
+emit_16(763);
+emit_16(828);
+emit_16(764);
+emit_16(828);
+emit_16(763);
+emit_16(828);
+emit_16(764);
+emit_16(829);
+emit_16(765);
+emit_16(829);
+emit_16(764);
+emit_16(829);
+emit_16(765);
+emit_16(830);
+emit_16(766);
+emit_16(830);
+emit_16(765);
+emit_16(830);
+emit_16(766);
+emit_16(831);
+emit_16(767);
+emit_16(831);
+emit_16(766);
+emit_16(832);
+emit_16(768);
+emit_16(833);
+emit_16(769);
+emit_16(833);
+emit_16(768);
+emit_16(833);
+emit_16(769);
+emit_16(834);
+emit_16(770);
+emit_16(834);
+emit_16(769);
+emit_16(834);
+emit_16(770);
+emit_16(835);
+emit_16(771);
+emit_16(835);
+emit_16(770);
+emit_16(835);
+emit_16(771);
+emit_16(836);
+emit_16(772);
+emit_16(836);
+emit_16(771);
+emit_16(836);
+emit_16(772);
+emit_16(837);
+emit_16(773);
+emit_16(837);
+emit_16(772);
+emit_16(837);
+emit_16(773);
+emit_16(838);
+emit_16(774);
+emit_16(838);
+emit_16(773);
+emit_16(838);
+emit_16(774);
+emit_16(839);
+emit_16(775);
+emit_16(839);
+emit_16(774);
+emit_16(839);
+emit_16(775);
+emit_16(840);
+emit_16(776);
+emit_16(840);
+emit_16(775);
+emit_16(840);
+emit_16(776);
+emit_16(841);
+emit_16(777);
+emit_16(841);
+emit_16(776);
+emit_16(841);
+emit_16(777);
+emit_16(842);
+emit_16(778);
+emit_16(842);
+emit_16(777);
+emit_16(842);
+emit_16(778);
+emit_16(843);
+emit_16(779);
+emit_16(843);
+emit_16(778);
+emit_16(843);
+emit_16(779);
+emit_16(844);
+emit_16(780);
+emit_16(844);
+emit_16(779);
+emit_16(844);
+emit_16(780);
+emit_16(845);
+emit_16(781);
+emit_16(845);
+emit_16(780);
+emit_16(845);
+emit_16(781);
+emit_16(846);
+emit_16(782);
+emit_16(846);
+emit_16(781);
+emit_16(846);
+emit_16(782);
+emit_16(847);
+emit_16(783);
+emit_16(847);
+emit_16(782);
+emit_16(847);
+emit_16(783);
+emit_16(848);
+emit_16(784);
+emit_16(848);
+emit_16(783);
+emit_16(848);
+emit_16(784);
+emit_16(849);
+emit_16(785);
+emit_16(849);
+emit_16(784);
+emit_16(849);
+emit_16(785);
+emit_16(850);
+emit_16(786);
+emit_16(850);
+emit_16(785);
+emit_16(850);
+emit_16(786);
+emit_16(851);
+emit_16(787);
+emit_16(851);
+emit_16(786);
+emit_16(851);
+emit_16(787);
+emit_16(852);
+emit_16(788);
+emit_16(852);
+emit_16(787);
+emit_16(852);
+emit_16(788);
+emit_16(853);
+emit_16(789);
+emit_16(853);
+emit_16(788);
+emit_16(853);
+emit_16(789);
+emit_16(854);
+emit_16(790);
+emit_16(854);
+emit_16(789);
+emit_16(854);
+emit_16(790);
+emit_16(855);
+emit_16(791);
+emit_16(855);
+emit_16(790);
+emit_16(855);
+emit_16(791);
+emit_16(856);
+emit_16(792);
+emit_16(856);
+emit_16(791);
+emit_16(856);
+emit_16(792);
+emit_16(857);
+emit_16(793);
+emit_16(857);
+emit_16(792);
+emit_16(857);
+emit_16(793);
+emit_16(858);
+emit_16(794);
+emit_16(858);
+emit_16(793);
+emit_16(858);
+emit_16(794);
+emit_16(859);
+emit_16(795);
+emit_16(859);
+emit_16(794);
+emit_16(859);
+emit_16(795);
+emit_16(860);
+emit_16(796);
+emit_16(860);
+emit_16(795);
+emit_16(860);
+emit_16(796);
+emit_16(861);
+emit_16(797);
+emit_16(861);
+emit_16(796);
+emit_16(861);
+emit_16(797);
+emit_16(862);
+emit_16(798);
+emit_16(862);
+emit_16(797);
+emit_16(862);
+emit_16(798);
+emit_16(863);
+emit_16(799);
+emit_16(863);
+emit_16(798);
+emit_16(863);
+emit_16(799);
+emit_16(864);
+emit_16(800);
+emit_16(864);
+emit_16(799);
+emit_16(864);
+emit_16(800);
+emit_16(865);
+emit_16(801);
+emit_16(865);
+emit_16(800);
+emit_16(865);
+emit_16(801);
+emit_16(866);
+emit_16(802);
+emit_16(866);
+emit_16(801);
+emit_16(866);
+emit_16(802);
+emit_16(867);
+emit_16(803);
+emit_16(867);
+emit_16(802);
+emit_16(867);
+emit_16(803);
+emit_16(868);
+emit_16(804);
+emit_16(868);
+emit_16(803);
+emit_16(868);
+emit_16(804);
+emit_16(869);
+emit_16(805);
+emit_16(869);
+emit_16(804);
+emit_16(869);
+emit_16(805);
+emit_16(870);
+emit_16(806);
+emit_16(870);
+emit_16(805);
+emit_16(870);
+emit_16(806);
+emit_16(871);
+emit_16(807);
+emit_16(871);
+emit_16(806);
+emit_16(871);
+emit_16(807);
+emit_16(872);
+emit_16(808);
+emit_16(872);
+emit_16(807);
+emit_16(872);
+emit_16(808);
+emit_16(873);
+emit_16(809);
+emit_16(873);
+emit_16(808);
+emit_16(873);
+emit_16(809);
+emit_16(874);
+emit_16(810);
+emit_16(874);
+emit_16(809);
+emit_16(874);
+emit_16(810);
+emit_16(875);
+emit_16(811);
+emit_16(875);
+emit_16(810);
+emit_16(875);
+emit_16(811);
+emit_16(876);
+emit_16(812);
+emit_16(876);
+emit_16(811);
+emit_16(876);
+emit_16(812);
+emit_16(877);
+emit_16(813);
+emit_16(877);
+emit_16(812);
+emit_16(877);
+emit_16(813);
+emit_16(878);
+emit_16(814);
+emit_16(878);
+emit_16(813);
+emit_16(878);
+emit_16(814);
+emit_16(879);
+emit_16(815);
+emit_16(879);
+emit_16(814);
+emit_16(879);
+emit_16(815);
+emit_16(880);
+emit_16(816);
+emit_16(880);
+emit_16(815);
+emit_16(880);
+emit_16(816);
+emit_16(881);
+emit_16(817);
+emit_16(881);
+emit_16(816);
+emit_16(881);
+emit_16(817);
+emit_16(882);
+emit_16(818);
+emit_16(882);
+emit_16(817);
+emit_16(882);
+emit_16(818);
+emit_16(883);
+emit_16(819);
+emit_16(883);
+emit_16(818);
+emit_16(883);
+emit_16(819);
+emit_16(884);
+emit_16(820);
+emit_16(884);
+emit_16(819);
+emit_16(884);
+emit_16(820);
+emit_16(885);
+emit_16(821);
+emit_16(885);
+emit_16(820);
+emit_16(885);
+emit_16(821);
+emit_16(886);
+emit_16(822);
+emit_16(886);
+emit_16(821);
+emit_16(886);
+emit_16(822);
+emit_16(887);
+emit_16(823);
+emit_16(887);
+emit_16(822);
+emit_16(887);
+emit_16(823);
+emit_16(888);
+emit_16(824);
+emit_16(888);
+emit_16(823);
+emit_16(888);
+emit_16(824);
+emit_16(889);
+emit_16(825);
+emit_16(889);
+emit_16(824);
+emit_16(889);
+emit_16(825);
+emit_16(890);
+emit_16(826);
+emit_16(890);
+emit_16(825);
+emit_16(890);
+emit_16(826);
+emit_16(891);
+emit_16(827);
+emit_16(891);
+emit_16(826);
+emit_16(891);
+emit_16(827);
+emit_16(892);
+emit_16(828);
+emit_16(892);
+emit_16(827);
+emit_16(892);
+emit_16(828);
+emit_16(893);
+emit_16(829);
+emit_16(893);
+emit_16(828);
+emit_16(893);
+emit_16(829);
+emit_16(894);
+emit_16(830);
+emit_16(894);
+emit_16(829);
+emit_16(894);
+emit_16(830);
+emit_16(895);
+emit_16(831);
+emit_16(895);
+emit_16(830);
+emit_16(896);
+emit_16(832);
+emit_16(897);
+emit_16(833);
+emit_16(897);
+emit_16(832);
+emit_16(897);
+emit_16(833);
+emit_16(898);
+emit_16(834);
+emit_16(898);
+emit_16(833);
+emit_16(898);
+emit_16(834);
+emit_16(899);
+emit_16(835);
+emit_16(899);
+emit_16(834);
+emit_16(899);
+emit_16(835);
+emit_16(900);
+emit_16(836);
+emit_16(900);
+emit_16(835);
+emit_16(900);
+emit_16(836);
+emit_16(901);
+emit_16(837);
+emit_16(901);
+emit_16(836);
+emit_16(901);
+emit_16(837);
+emit_16(902);
+emit_16(838);
+emit_16(902);
+emit_16(837);
+emit_16(902);
+emit_16(838);
+emit_16(903);
+emit_16(839);
+emit_16(903);
+emit_16(838);
+emit_16(903);
+emit_16(839);
+emit_16(904);
+emit_16(840);
+emit_16(904);
+emit_16(839);
+emit_16(904);
+emit_16(840);
+emit_16(905);
+emit_16(841);
+emit_16(905);
+emit_16(840);
+emit_16(905);
+emit_16(841);
+emit_16(906);
+emit_16(842);
+emit_16(906);
+emit_16(841);
+emit_16(906);
+emit_16(842);
+emit_16(907);
+emit_16(843);
+emit_16(907);
+emit_16(842);
+emit_16(907);
+emit_16(843);
+emit_16(908);
+emit_16(844);
+emit_16(908);
+emit_16(843);
+emit_16(908);
+emit_16(844);
+emit_16(909);
+emit_16(845);
+emit_16(909);
+emit_16(844);
+emit_16(909);
+emit_16(845);
+emit_16(910);
+emit_16(846);
+emit_16(910);
+emit_16(845);
+emit_16(910);
+emit_16(846);
+emit_16(911);
+emit_16(847);
+emit_16(911);
+emit_16(846);
+emit_16(911);
+emit_16(847);
+emit_16(912);
+emit_16(848);
+emit_16(912);
+emit_16(847);
+emit_16(912);
+emit_16(848);
+emit_16(913);
+emit_16(849);
+emit_16(913);
+emit_16(848);
+emit_16(913);
+emit_16(849);
+emit_16(914);
+emit_16(850);
+emit_16(914);
+emit_16(849);
+emit_16(914);
+emit_16(850);
+emit_16(915);
+emit_16(851);
+emit_16(915);
+emit_16(850);
+emit_16(915);
+emit_16(851);
+emit_16(916);
+emit_16(852);
+emit_16(916);
+emit_16(851);
+emit_16(916);
+emit_16(852);
+emit_16(917);
+emit_16(853);
+emit_16(917);
+emit_16(852);
+emit_16(917);
+emit_16(853);
+emit_16(918);
+emit_16(854);
+emit_16(918);
+emit_16(853);
+emit_16(918);
+emit_16(854);
+emit_16(919);
+emit_16(855);
+emit_16(919);
+emit_16(854);
+emit_16(919);
+emit_16(855);
+emit_16(920);
+emit_16(856);
+emit_16(920);
+emit_16(855);
+emit_16(920);
+emit_16(856);
+emit_16(921);
+emit_16(857);
+emit_16(921);
+emit_16(856);
+emit_16(921);
+emit_16(857);
+emit_16(922);
+emit_16(858);
+emit_16(922);
+emit_16(857);
+emit_16(922);
+emit_16(858);
+emit_16(923);
+emit_16(859);
+emit_16(923);
+emit_16(858);
+emit_16(923);
+emit_16(859);
+emit_16(924);
+emit_16(860);
+emit_16(924);
+emit_16(859);
+emit_16(924);
+emit_16(860);
+emit_16(925);
+emit_16(861);
+emit_16(925);
+emit_16(860);
+emit_16(925);
+emit_16(861);
+emit_16(926);
+emit_16(862);
+emit_16(926);
+emit_16(861);
+emit_16(926);
+emit_16(862);
+emit_16(927);
+emit_16(863);
+emit_16(927);
+emit_16(862);
+emit_16(927);
+emit_16(863);
+emit_16(928);
+emit_16(864);
+emit_16(928);
+emit_16(863);
+emit_16(928);
+emit_16(864);
+emit_16(929);
+emit_16(865);
+emit_16(929);
+emit_16(864);
+emit_16(929);
+emit_16(865);
+emit_16(930);
+emit_16(866);
+emit_16(930);
+emit_16(865);
+emit_16(930);
+emit_16(866);
+emit_16(931);
+emit_16(867);
+emit_16(931);
+emit_16(866);
+emit_16(931);
+emit_16(867);
+emit_16(932);
+emit_16(868);
+emit_16(932);
+emit_16(867);
+emit_16(932);
+emit_16(868);
+emit_16(933);
+emit_16(869);
+emit_16(933);
+emit_16(868);
+emit_16(933);
+emit_16(869);
+emit_16(934);
+emit_16(870);
+emit_16(934);
+emit_16(869);
+emit_16(934);
+emit_16(870);
+emit_16(935);
+emit_16(871);
+emit_16(935);
+emit_16(870);
+emit_16(935);
+emit_16(871);
+emit_16(936);
+emit_16(872);
+emit_16(936);
+emit_16(871);
+emit_16(936);
+emit_16(872);
+emit_16(937);
+emit_16(873);
+emit_16(937);
+emit_16(872);
+emit_16(937);
+emit_16(873);
+emit_16(938);
+emit_16(874);
+emit_16(938);
+emit_16(873);
+emit_16(938);
+emit_16(874);
+emit_16(939);
+emit_16(875);
+emit_16(939);
+emit_16(874);
+emit_16(939);
+emit_16(875);
+emit_16(940);
+emit_16(876);
+emit_16(940);
+emit_16(875);
+emit_16(940);
+emit_16(876);
+emit_16(941);
+emit_16(877);
+emit_16(941);
+emit_16(876);
+emit_16(941);
+emit_16(877);
+emit_16(942);
+emit_16(878);
+emit_16(942);
+emit_16(877);
+emit_16(942);
+emit_16(878);
+emit_16(943);
+emit_16(879);
+emit_16(943);
+emit_16(878);
+emit_16(943);
+emit_16(879);
+emit_16(944);
+emit_16(880);
+emit_16(944);
+emit_16(879);
+emit_16(944);
+emit_16(880);
+emit_16(945);
+emit_16(881);
+emit_16(945);
+emit_16(880);
+emit_16(945);
+emit_16(881);
+emit_16(946);
+emit_16(882);
+emit_16(946);
+emit_16(881);
+emit_16(946);
+emit_16(882);
+emit_16(947);
+emit_16(883);
+emit_16(947);
+emit_16(882);
+emit_16(947);
+emit_16(883);
+emit_16(948);
+emit_16(884);
+emit_16(948);
+emit_16(883);
+emit_16(948);
+emit_16(884);
+emit_16(949);
+emit_16(885);
+emit_16(949);
+emit_16(884);
+emit_16(949);
+emit_16(885);
+emit_16(950);
+emit_16(886);
+emit_16(950);
+emit_16(885);
+emit_16(950);
+emit_16(886);
+emit_16(951);
+emit_16(887);
+emit_16(951);
+emit_16(886);
+emit_16(951);
+emit_16(887);
+emit_16(952);
+emit_16(888);
+emit_16(952);
+emit_16(887);
+emit_16(952);
+emit_16(888);
+emit_16(953);
+emit_16(889);
+emit_16(953);
+emit_16(888);
+emit_16(953);
+emit_16(889);
+emit_16(954);
+emit_16(890);
+emit_16(954);
+emit_16(889);
+emit_16(954);
+emit_16(890);
+emit_16(955);
+emit_16(891);
+emit_16(955);
+emit_16(890);
+emit_16(955);
+emit_16(891);
+emit_16(956);
+emit_16(892);
+emit_16(956);
+emit_16(891);
+emit_16(956);
+emit_16(892);
+emit_16(957);
+emit_16(893);
+emit_16(957);
+emit_16(892);
+emit_16(957);
+emit_16(893);
+emit_16(958);
+emit_16(894);
+emit_16(958);
+emit_16(893);
+emit_16(958);
+emit_16(894);
+emit_16(959);
+emit_16(895);
+emit_16(959);
+emit_16(894);
+emit_16(960);
+emit_16(896);
+emit_16(961);
+emit_16(897);
+emit_16(961);
+emit_16(896);
+emit_16(961);
+emit_16(897);
+emit_16(962);
+emit_16(898);
+emit_16(962);
+emit_16(897);
+emit_16(962);
+emit_16(898);
+emit_16(963);
+emit_16(899);
+emit_16(963);
+emit_16(898);
+emit_16(963);
+emit_16(899);
+emit_16(964);
+emit_16(900);
+emit_16(964);
+emit_16(899);
+emit_16(964);
+emit_16(900);
+emit_16(965);
+emit_16(901);
+emit_16(965);
+emit_16(900);
+emit_16(965);
+emit_16(901);
+emit_16(966);
+emit_16(902);
+emit_16(966);
+emit_16(901);
+emit_16(966);
+emit_16(902);
+emit_16(967);
+emit_16(903);
+emit_16(967);
+emit_16(902);
+emit_16(967);
+emit_16(903);
+emit_16(968);
+emit_16(904);
+emit_16(968);
+emit_16(903);
+emit_16(968);
+emit_16(904);
+emit_16(969);
+emit_16(905);
+emit_16(969);
+emit_16(904);
+emit_16(969);
+emit_16(905);
+emit_16(970);
+emit_16(906);
+emit_16(970);
+emit_16(905);
+emit_16(970);
+emit_16(906);
+emit_16(971);
+emit_16(907);
+emit_16(971);
+emit_16(906);
+emit_16(971);
+emit_16(907);
+emit_16(972);
+emit_16(908);
+emit_16(972);
+emit_16(907);
+emit_16(972);
+emit_16(908);
+emit_16(973);
+emit_16(909);
+emit_16(973);
+emit_16(908);
+emit_16(973);
+emit_16(909);
+emit_16(974);
+emit_16(910);
+emit_16(974);
+emit_16(909);
+emit_16(974);
+emit_16(910);
+emit_16(975);
+emit_16(911);
+emit_16(975);
+emit_16(910);
+emit_16(975);
+emit_16(911);
+emit_16(976);
+emit_16(912);
+emit_16(976);
+emit_16(911);
+emit_16(976);
+emit_16(912);
+emit_16(977);
+emit_16(913);
+emit_16(977);
+emit_16(912);
+emit_16(977);
+emit_16(913);
+emit_16(978);
+emit_16(914);
+emit_16(978);
+emit_16(913);
+emit_16(978);
+emit_16(914);
+emit_16(979);
+emit_16(915);
+emit_16(979);
+emit_16(914);
+emit_16(979);
+emit_16(915);
+emit_16(980);
+emit_16(916);
+emit_16(980);
+emit_16(915);
+emit_16(980);
+emit_16(916);
+emit_16(981);
+emit_16(917);
+emit_16(981);
+emit_16(916);
+emit_16(981);
+emit_16(917);
+emit_16(982);
+emit_16(918);
+emit_16(982);
+emit_16(917);
+emit_16(982);
+emit_16(918);
+emit_16(983);
+emit_16(919);
+emit_16(983);
+emit_16(918);
+emit_16(983);
+emit_16(919);
+emit_16(984);
+emit_16(920);
+emit_16(984);
+emit_16(919);
+emit_16(984);
+emit_16(920);
+emit_16(985);
+emit_16(921);
+emit_16(985);
+emit_16(920);
+emit_16(985);
+emit_16(921);
+emit_16(986);
+emit_16(922);
+emit_16(986);
+emit_16(921);
+emit_16(986);
+emit_16(922);
+emit_16(987);
+emit_16(923);
+emit_16(987);
+emit_16(922);
+emit_16(987);
+emit_16(923);
+emit_16(988);
+emit_16(924);
+emit_16(988);
+emit_16(923);
+emit_16(988);
+emit_16(924);
+emit_16(989);
+emit_16(925);
+emit_16(989);
+emit_16(924);
+emit_16(989);
+emit_16(925);
+emit_16(990);
+emit_16(926);
+emit_16(990);
+emit_16(925);
+emit_16(990);
+emit_16(926);
+emit_16(991);
+emit_16(927);
+emit_16(991);
+emit_16(926);
+emit_16(991);
+emit_16(927);
+emit_16(992);
+emit_16(928);
+emit_16(992);
+emit_16(927);
+emit_16(992);
+emit_16(928);
+emit_16(993);
+emit_16(929);
+emit_16(993);
+emit_16(928);
+emit_16(993);
+emit_16(929);
+emit_16(994);
+emit_16(930);
+emit_16(994);
+emit_16(929);
+emit_16(994);
+emit_16(930);
+emit_16(995);
+emit_16(931);
+emit_16(995);
+emit_16(930);
+emit_16(995);
+emit_16(931);
+emit_16(996);
+emit_16(932);
+emit_16(996);
+emit_16(931);
+emit_16(996);
+emit_16(932);
+emit_16(997);
+emit_16(933);
+emit_16(997);
+emit_16(932);
+emit_16(997);
+emit_16(933);
+emit_16(998);
+emit_16(934);
+emit_16(998);
+emit_16(933);
+emit_16(998);
+emit_16(934);
+emit_16(999);
+emit_16(935);
+emit_16(999);
+emit_16(934);
+emit_16(999);
+emit_16(935);
+emit_16(1000);
+emit_16(936);
+emit_16(1000);
+emit_16(935);
+emit_16(1000);
+emit_16(936);
+emit_16(1001);
+emit_16(937);
+emit_16(1001);
+emit_16(936);
+emit_16(1001);
+emit_16(937);
+emit_16(1002);
+emit_16(938);
+emit_16(1002);
+emit_16(937);
+emit_16(1002);
+emit_16(938);
+emit_16(1003);
+emit_16(939);
+emit_16(1003);
+emit_16(938);
+emit_16(1003);
+emit_16(939);
+emit_16(1004);
+emit_16(940);
+emit_16(1004);
+emit_16(939);
+emit_16(1004);
+emit_16(940);
+emit_16(1005);
+emit_16(941);
+emit_16(1005);
+emit_16(940);
+emit_16(1005);
+emit_16(941);
+emit_16(1006);
+emit_16(942);
+emit_16(1006);
+emit_16(941);
+emit_16(1006);
+emit_16(942);
+emit_16(1007);
+emit_16(943);
+emit_16(1007);
+emit_16(942);
+emit_16(1007);
+emit_16(943);
+emit_16(1008);
+emit_16(944);
+emit_16(1008);
+emit_16(943);
+emit_16(1008);
+emit_16(944);
+emit_16(1009);
+emit_16(945);
+emit_16(1009);
+emit_16(944);
+emit_16(1009);
+emit_16(945);
+emit_16(1010);
+emit_16(946);
+emit_16(1010);
+emit_16(945);
+emit_16(1010);
+emit_16(946);
+emit_16(1011);
+emit_16(947);
+emit_16(1011);
+emit_16(946);
+emit_16(1011);
+emit_16(947);
+emit_16(1012);
+emit_16(948);
+emit_16(1012);
+emit_16(947);
+emit_16(1012);
+emit_16(948);
+emit_16(1013);
+emit_16(949);
+emit_16(1013);
+emit_16(948);
+emit_16(1013);
+emit_16(949);
+emit_16(1014);
+emit_16(950);
+emit_16(1014);
+emit_16(949);
+emit_16(1014);
+emit_16(950);
+emit_16(1015);
+emit_16(951);
+emit_16(1015);
+emit_16(950);
+emit_16(1015);
+emit_16(951);
+emit_16(1016);
+emit_16(952);
+emit_16(1016);
+emit_16(951);
+emit_16(1016);
+emit_16(952);
+emit_16(1017);
+emit_16(953);
+emit_16(1017);
+emit_16(952);
+emit_16(1017);
+emit_16(953);
+emit_16(1018);
+emit_16(954);
+emit_16(1018);
+emit_16(953);
+emit_16(1018);
+emit_16(954);
+emit_16(1019);
+emit_16(955);
+emit_16(1019);
+emit_16(954);
+emit_16(1019);
+emit_16(955);
+emit_16(1020);
+emit_16(956);
+emit_16(1020);
+emit_16(955);
+emit_16(1020);
+emit_16(956);
+emit_16(1021);
+emit_16(957);
+emit_16(1021);
+emit_16(956);
+emit_16(1021);
+emit_16(957);
+emit_16(1022);
+emit_16(958);
+emit_16(1022);
+emit_16(957);
+emit_16(1022);
+emit_16(958);
+emit_16(1023);
+emit_16(959);
+emit_16(1023);
+emit_16(958);
+emit_16(1024);
+emit_16(960);
+emit_16(1025);
+emit_16(961);
+emit_16(1025);
+emit_16(960);
+emit_16(1025);
+emit_16(961);
+emit_16(1026);
+emit_16(962);
+emit_16(1026);
+emit_16(961);
+emit_16(1026);
+emit_16(962);
+emit_16(1027);
+emit_16(963);
+emit_16(1027);
+emit_16(962);
+emit_16(1027);
+emit_16(963);
+emit_16(1028);
+emit_16(964);
+emit_16(1028);
+emit_16(963);
+emit_16(1028);
+emit_16(964);
+emit_16(1029);
+emit_16(965);
+emit_16(1029);
+emit_16(964);
+emit_16(1029);
+emit_16(965);
+emit_16(1030);
+emit_16(966);
+emit_16(1030);
+emit_16(965);
+emit_16(1030);
+emit_16(966);
+emit_16(1031);
+emit_16(967);
+emit_16(1031);
+emit_16(966);
+emit_16(1031);
+emit_16(967);
+emit_16(1032);
+emit_16(968);
+emit_16(1032);
+emit_16(967);
+emit_16(1032);
+emit_16(968);
+emit_16(1033);
+emit_16(969);
+emit_16(1033);
+emit_16(968);
+emit_16(1033);
+emit_16(969);
+emit_16(1034);
+emit_16(970);
+emit_16(1034);
+emit_16(969);
+emit_16(1034);
+emit_16(970);
+emit_16(1035);
+emit_16(971);
+emit_16(1035);
+emit_16(970);
+emit_16(1035);
+emit_16(971);
+emit_16(1036);
+emit_16(972);
+emit_16(1036);
+emit_16(971);
+emit_16(1036);
+emit_16(972);
+emit_16(1037);
+emit_16(973);
+emit_16(1037);
+emit_16(972);
+emit_16(1037);
+emit_16(973);
+emit_16(1038);
+emit_16(974);
+emit_16(1038);
+emit_16(973);
+emit_16(1038);
+emit_16(974);
+emit_16(1039);
+emit_16(975);
+emit_16(1039);
+emit_16(974);
+emit_16(1039);
+emit_16(975);
+emit_16(1040);
+emit_16(976);
+emit_16(1040);
+emit_16(975);
+emit_16(1040);
+emit_16(976);
+emit_16(1041);
+emit_16(977);
+emit_16(1041);
+emit_16(976);
+emit_16(1041);
+emit_16(977);
+emit_16(1042);
+emit_16(978);
+emit_16(1042);
+emit_16(977);
+emit_16(1042);
+emit_16(978);
+emit_16(1043);
+emit_16(979);
+emit_16(1043);
+emit_16(978);
+emit_16(1043);
+emit_16(979);
+emit_16(1044);
+emit_16(980);
+emit_16(1044);
+emit_16(979);
+emit_16(1044);
+emit_16(980);
+emit_16(1045);
+emit_16(981);
+emit_16(1045);
+emit_16(980);
+emit_16(1045);
+emit_16(981);
+emit_16(1046);
+emit_16(982);
+emit_16(1046);
+emit_16(981);
+emit_16(1046);
+emit_16(982);
+emit_16(1047);
+emit_16(983);
+emit_16(1047);
+emit_16(982);
+emit_16(1047);
+emit_16(983);
+emit_16(1048);
+emit_16(984);
+emit_16(1048);
+emit_16(983);
+emit_16(1048);
+emit_16(984);
+emit_16(1049);
+emit_16(985);
+emit_16(1049);
+emit_16(984);
+emit_16(1049);
+emit_16(985);
+emit_16(1050);
+emit_16(986);
+emit_16(1050);
+emit_16(985);
+emit_16(1050);
+emit_16(986);
+emit_16(1051);
+emit_16(987);
+emit_16(1051);
+emit_16(986);
+emit_16(1051);
+emit_16(987);
+emit_16(1052);
+emit_16(988);
+emit_16(1052);
+emit_16(987);
+emit_16(1052);
+emit_16(988);
+emit_16(1053);
+emit_16(989);
+emit_16(1053);
+emit_16(988);
+emit_16(1053);
+emit_16(989);
+emit_16(1054);
+emit_16(990);
+emit_16(1054);
+emit_16(989);
+emit_16(1054);
+emit_16(990);
+emit_16(1055);
+emit_16(991);
+emit_16(1055);
+emit_16(990);
+emit_16(1055);
+emit_16(991);
+emit_16(1056);
+emit_16(992);
+emit_16(1056);
+emit_16(991);
+emit_16(1056);
+emit_16(992);
+emit_16(1057);
+emit_16(993);
+emit_16(1057);
+emit_16(992);
+emit_16(1057);
+emit_16(993);
+emit_16(1058);
+emit_16(994);
+emit_16(1058);
+emit_16(993);
+emit_16(1058);
+emit_16(994);
+emit_16(1059);
+emit_16(995);
+emit_16(1059);
+emit_16(994);
+emit_16(1059);
+emit_16(995);
+emit_16(1060);
+emit_16(996);
+emit_16(1060);
+emit_16(995);
+emit_16(1060);
+emit_16(996);
+emit_16(1061);
+emit_16(997);
+emit_16(1061);
+emit_16(996);
+emit_16(1061);
+emit_16(997);
+emit_16(1062);
+emit_16(998);
+emit_16(1062);
+emit_16(997);
+emit_16(1062);
+emit_16(998);
+emit_16(1063);
+emit_16(999);
+emit_16(1063);
+emit_16(998);
+emit_16(1063);
+emit_16(999);
+emit_16(1064);
+emit_16(1000);
+emit_16(1064);
+emit_16(999);
+emit_16(1064);
+emit_16(1000);
+emit_16(1065);
+emit_16(1001);
+emit_16(1065);
+emit_16(1000);
+emit_16(1065);
+emit_16(1001);
+emit_16(1066);
+emit_16(1002);
+emit_16(1066);
+emit_16(1001);
+emit_16(1066);
+emit_16(1002);
+emit_16(1067);
+emit_16(1003);
+emit_16(1067);
+emit_16(1002);
+emit_16(1067);
+emit_16(1003);
+emit_16(1068);
+emit_16(1004);
+emit_16(1068);
+emit_16(1003);
+emit_16(1068);
+emit_16(1004);
+emit_16(1069);
+emit_16(1005);
+emit_16(1069);
+emit_16(1004);
+emit_16(1069);
+emit_16(1005);
+emit_16(1070);
+emit_16(1006);
+emit_16(1070);
+emit_16(1005);
+emit_16(1070);
+emit_16(1006);
+emit_16(1071);
+emit_16(1007);
+emit_16(1071);
+emit_16(1006);
+emit_16(1071);
+emit_16(1007);
+emit_16(1072);
+emit_16(1008);
+emit_16(1072);
+emit_16(1007);
+emit_16(1072);
+emit_16(1008);
+emit_16(1073);
+emit_16(1009);
+emit_16(1073);
+emit_16(1008);
+emit_16(1073);
+emit_16(1009);
+emit_16(1074);
+emit_16(1010);
+emit_16(1074);
+emit_16(1009);
+emit_16(1074);
+emit_16(1010);
+emit_16(1075);
+emit_16(1011);
+emit_16(1075);
+emit_16(1010);
+emit_16(1075);
+emit_16(1011);
+emit_16(1076);
+emit_16(1012);
+emit_16(1076);
+emit_16(1011);
+emit_16(1076);
+emit_16(1012);
+emit_16(1077);
+emit_16(1013);
+emit_16(1077);
+emit_16(1012);
+emit_16(1077);
+emit_16(1013);
+emit_16(1078);
+emit_16(1014);
+emit_16(1078);
+emit_16(1013);
+emit_16(1078);
+emit_16(1014);
+emit_16(1079);
+emit_16(1015);
+emit_16(1079);
+emit_16(1014);
+emit_16(1079);
+emit_16(1015);
+emit_16(1080);
+emit_16(1016);
+emit_16(1080);
+emit_16(1015);
+emit_16(1080);
+emit_16(1016);
+emit_16(1081);
+emit_16(1017);
+emit_16(1081);
+emit_16(1016);
+emit_16(1081);
+emit_16(1017);
+emit_16(1082);
+emit_16(1018);
+emit_16(1082);
+emit_16(1017);
+emit_16(1082);
+emit_16(1018);
+emit_16(1083);
+emit_16(1019);
+emit_16(1083);
+emit_16(1018);
+emit_16(1083);
+emit_16(1019);
+emit_16(1084);
+emit_16(1020);
+emit_16(1084);
+emit_16(1019);
+emit_16(1084);
+emit_16(1020);
+emit_16(1085);
+emit_16(1021);
+emit_16(1085);
+emit_16(1020);
+emit_16(1085);
+emit_16(1021);
+emit_16(1086);
+emit_16(1022);
+emit_16(1086);
+emit_16(1021);
+emit_16(1086);
+emit_16(1022);
+emit_16(1087);
+emit_16(1023);
+emit_16(1087);
+emit_16(1022);
+emit_16(1088);
+emit_16(1024);
+emit_16(1089);
+emit_16(1025);
+emit_16(1089);
+emit_16(1024);
+emit_16(1089);
+emit_16(1025);
+emit_16(1090);
+emit_16(1026);
+emit_16(1090);
+emit_16(1025);
+emit_16(1090);
+emit_16(1026);
+emit_16(1091);
+emit_16(1027);
+emit_16(1091);
+emit_16(1026);
+emit_16(1091);
+emit_16(1027);
+emit_16(1092);
+emit_16(1028);
+emit_16(1092);
+emit_16(1027);
+emit_16(1092);
+emit_16(1028);
+emit_16(1093);
+emit_16(1029);
+emit_16(1093);
+emit_16(1028);
+emit_16(1093);
+emit_16(1029);
+emit_16(1094);
+emit_16(1030);
+emit_16(1094);
+emit_16(1029);
+emit_16(1094);
+emit_16(1030);
+emit_16(1095);
+emit_16(1031);
+emit_16(1095);
+emit_16(1030);
+emit_16(1095);
+emit_16(1031);
+emit_16(1096);
+emit_16(1032);
+emit_16(1096);
+emit_16(1031);
+emit_16(1096);
+emit_16(1032);
+emit_16(1097);
+emit_16(1033);
+emit_16(1097);
+emit_16(1032);
+emit_16(1097);
+emit_16(1033);
+emit_16(1098);
+emit_16(1034);
+emit_16(1098);
+emit_16(1033);
+emit_16(1098);
+emit_16(1034);
+emit_16(1099);
+emit_16(1035);
+emit_16(1099);
+emit_16(1034);
+emit_16(1099);
+emit_16(1035);
+emit_16(1100);
+emit_16(1036);
+emit_16(1100);
+emit_16(1035);
+emit_16(1100);
+emit_16(1036);
+emit_16(1101);
+emit_16(1037);
+emit_16(1101);
+emit_16(1036);
+emit_16(1101);
+emit_16(1037);
+emit_16(1102);
+emit_16(1038);
+emit_16(1102);
+emit_16(1037);
+emit_16(1102);
+emit_16(1038);
+emit_16(1103);
+emit_16(1039);
+emit_16(1103);
+emit_16(1038);
+emit_16(1103);
+emit_16(1039);
+emit_16(1104);
+emit_16(1040);
+emit_16(1104);
+emit_16(1039);
+emit_16(1104);
+emit_16(1040);
+emit_16(1105);
+emit_16(1041);
+emit_16(1105);
+emit_16(1040);
+emit_16(1105);
+emit_16(1041);
+emit_16(1106);
+emit_16(1042);
+emit_16(1106);
+emit_16(1041);
+emit_16(1106);
+emit_16(1042);
+emit_16(1107);
+emit_16(1043);
+emit_16(1107);
+emit_16(1042);
+emit_16(1107);
+emit_16(1043);
+emit_16(1108);
+emit_16(1044);
+emit_16(1108);
+emit_16(1043);
+emit_16(1108);
+emit_16(1044);
+emit_16(1109);
+emit_16(1045);
+emit_16(1109);
+emit_16(1044);
+emit_16(1109);
+emit_16(1045);
+emit_16(1110);
+emit_16(1046);
+emit_16(1110);
+emit_16(1045);
+emit_16(1110);
+emit_16(1046);
+emit_16(1111);
+emit_16(1047);
+emit_16(1111);
+emit_16(1046);
+emit_16(1111);
+emit_16(1047);
+emit_16(1112);
+emit_16(1048);
+emit_16(1112);
+emit_16(1047);
+emit_16(1112);
+emit_16(1048);
+emit_16(1113);
+emit_16(1049);
+emit_16(1113);
+emit_16(1048);
+emit_16(1113);
+emit_16(1049);
+emit_16(1114);
+emit_16(1050);
+emit_16(1114);
+emit_16(1049);
+emit_16(1114);
+emit_16(1050);
+emit_16(1115);
+emit_16(1051);
+emit_16(1115);
+emit_16(1050);
+emit_16(1115);
+emit_16(1051);
+emit_16(1116);
+emit_16(1052);
+emit_16(1116);
+emit_16(1051);
+emit_16(1116);
+emit_16(1052);
+emit_16(1117);
+emit_16(1053);
+emit_16(1117);
+emit_16(1052);
+emit_16(1117);
+emit_16(1053);
+emit_16(1118);
+emit_16(1054);
+emit_16(1118);
+emit_16(1053);
+emit_16(1118);
+emit_16(1054);
+emit_16(1119);
+emit_16(1055);
+emit_16(1119);
+emit_16(1054);
+emit_16(1119);
+emit_16(1055);
+emit_16(1120);
+emit_16(1056);
+emit_16(1120);
+emit_16(1055);
+emit_16(1120);
+emit_16(1056);
+emit_16(1121);
+emit_16(1057);
+emit_16(1121);
+emit_16(1056);
+emit_16(1121);
+emit_16(1057);
+emit_16(1122);
+emit_16(1058);
+emit_16(1122);
+emit_16(1057);
+emit_16(1122);
+emit_16(1058);
+emit_16(1123);
+emit_16(1059);
+emit_16(1123);
+emit_16(1058);
+emit_16(1123);
+emit_16(1059);
+emit_16(1124);
+emit_16(1060);
+emit_16(1124);
+emit_16(1059);
+emit_16(1124);
+emit_16(1060);
+emit_16(1125);
+emit_16(1061);
+emit_16(1125);
+emit_16(1060);
+emit_16(1125);
+emit_16(1061);
+emit_16(1126);
+emit_16(1062);
+emit_16(1126);
+emit_16(1061);
+emit_16(1126);
+emit_16(1062);
+emit_16(1127);
+emit_16(1063);
+emit_16(1127);
+emit_16(1062);
+emit_16(1127);
+emit_16(1063);
+emit_16(1128);
+emit_16(1064);
+emit_16(1128);
+emit_16(1063);
+emit_16(1128);
+emit_16(1064);
+emit_16(1129);
+emit_16(1065);
+emit_16(1129);
+emit_16(1064);
+emit_16(1129);
+emit_16(1065);
+emit_16(1130);
+emit_16(1066);
+emit_16(1130);
+emit_16(1065);
+emit_16(1130);
+emit_16(1066);
+emit_16(1131);
+emit_16(1067);
+emit_16(1131);
+emit_16(1066);
+emit_16(1131);
+emit_16(1067);
+emit_16(1132);
+emit_16(1068);
+emit_16(1132);
+emit_16(1067);
+emit_16(1132);
+emit_16(1068);
+emit_16(1133);
+emit_16(1069);
+emit_16(1133);
+emit_16(1068);
+emit_16(1133);
+emit_16(1069);
+emit_16(1134);
+emit_16(1070);
+emit_16(1134);
+emit_16(1069);
+emit_16(1134);
+emit_16(1070);
+emit_16(1135);
+emit_16(1071);
+emit_16(1135);
+emit_16(1070);
+emit_16(1135);
+emit_16(1071);
+emit_16(1136);
+emit_16(1072);
+emit_16(1136);
+emit_16(1071);
+emit_16(1136);
+emit_16(1072);
+emit_16(1137);
+emit_16(1073);
+emit_16(1137);
+emit_16(1072);
+emit_16(1137);
+emit_16(1073);
+emit_16(1138);
+emit_16(1074);
+emit_16(1138);
+emit_16(1073);
+emit_16(1138);
+emit_16(1074);
+emit_16(1139);
+emit_16(1075);
+emit_16(1139);
+emit_16(1074);
+emit_16(1139);
+emit_16(1075);
+emit_16(1140);
+emit_16(1076);
+emit_16(1140);
+emit_16(1075);
+emit_16(1140);
+emit_16(1076);
+emit_16(1141);
+emit_16(1077);
+emit_16(1141);
+emit_16(1076);
+emit_16(1141);
+emit_16(1077);
+emit_16(1142);
+emit_16(1078);
+emit_16(1142);
+emit_16(1077);
+emit_16(1142);
+emit_16(1078);
+emit_16(1143);
+emit_16(1079);
+emit_16(1143);
+emit_16(1078);
+emit_16(1143);
+emit_16(1079);
+emit_16(1144);
+emit_16(1080);
+emit_16(1144);
+emit_16(1079);
+emit_16(1144);
+emit_16(1080);
+emit_16(1145);
+emit_16(1081);
+emit_16(1145);
+emit_16(1080);
+emit_16(1145);
+emit_16(1081);
+emit_16(1146);
+emit_16(1082);
+emit_16(1146);
+emit_16(1081);
+emit_16(1146);
+emit_16(1082);
+emit_16(1147);
+emit_16(1083);
+emit_16(1147);
+emit_16(1082);
+emit_16(1147);
+emit_16(1083);
+emit_16(1148);
+emit_16(1084);
+emit_16(1148);
+emit_16(1083);
+emit_16(1148);
+emit_16(1084);
+emit_16(1149);
+emit_16(1085);
+emit_16(1149);
+emit_16(1084);
+emit_16(1149);
+emit_16(1085);
+emit_16(1150);
+emit_16(1086);
+emit_16(1150);
+emit_16(1085);
+emit_16(1150);
+emit_16(1086);
+emit_16(1151);
+emit_16(1087);
+emit_16(1151);
+emit_16(1086);
+emit_16(1152);
+emit_16(1088);
+emit_16(1153);
+emit_16(1089);
+emit_16(1153);
+emit_16(1088);
+emit_16(1153);
+emit_16(1089);
+emit_16(1154);
+emit_16(1090);
+emit_16(1154);
+emit_16(1089);
+emit_16(1154);
+emit_16(1090);
+emit_16(1155);
+emit_16(1091);
+emit_16(1155);
+emit_16(1090);
+emit_16(1155);
+emit_16(1091);
+emit_16(1156);
+emit_16(1092);
+emit_16(1156);
+emit_16(1091);
+emit_16(1156);
+emit_16(1092);
+emit_16(1157);
+emit_16(1093);
+emit_16(1157);
+emit_16(1092);
+emit_16(1157);
+emit_16(1093);
+emit_16(1158);
+emit_16(1094);
+emit_16(1158);
+emit_16(1093);
+emit_16(1158);
+emit_16(1094);
+emit_16(1159);
+emit_16(1095);
+emit_16(1159);
+emit_16(1094);
+emit_16(1159);
+emit_16(1095);
+emit_16(1160);
+emit_16(1096);
+emit_16(1160);
+emit_16(1095);
+emit_16(1160);
+emit_16(1096);
+emit_16(1161);
+emit_16(1097);
+emit_16(1161);
+emit_16(1096);
+emit_16(1161);
+emit_16(1097);
+emit_16(1162);
+emit_16(1098);
+emit_16(1162);
+emit_16(1097);
+emit_16(1162);
+emit_16(1098);
+emit_16(1163);
+emit_16(1099);
+emit_16(1163);
+emit_16(1098);
+emit_16(1163);
+emit_16(1099);
+emit_16(1164);
+emit_16(1100);
+emit_16(1164);
+emit_16(1099);
+emit_16(1164);
+emit_16(1100);
+emit_16(1165);
+emit_16(1101);
+emit_16(1165);
+emit_16(1100);
+emit_16(1165);
+emit_16(1101);
+emit_16(1166);
+emit_16(1102);
+emit_16(1166);
+emit_16(1101);
+emit_16(1166);
+emit_16(1102);
+emit_16(1167);
+emit_16(1103);
+emit_16(1167);
+emit_16(1102);
+emit_16(1167);
+emit_16(1103);
+emit_16(1168);
+emit_16(1104);
+emit_16(1168);
+emit_16(1103);
+emit_16(1168);
+emit_16(1104);
+emit_16(1169);
+emit_16(1105);
+emit_16(1169);
+emit_16(1104);
+emit_16(1169);
+emit_16(1105);
+emit_16(1170);
+emit_16(1106);
+emit_16(1170);
+emit_16(1105);
+emit_16(1170);
+emit_16(1106);
+emit_16(1171);
+emit_16(1107);
+emit_16(1171);
+emit_16(1106);
+emit_16(1171);
+emit_16(1107);
+emit_16(1172);
+emit_16(1108);
+emit_16(1172);
+emit_16(1107);
+emit_16(1172);
+emit_16(1108);
+emit_16(1173);
+emit_16(1109);
+emit_16(1173);
+emit_16(1108);
+emit_16(1173);
+emit_16(1109);
+emit_16(1174);
+emit_16(1110);
+emit_16(1174);
+emit_16(1109);
+emit_16(1174);
+emit_16(1110);
+emit_16(1175);
+emit_16(1111);
+emit_16(1175);
+emit_16(1110);
+emit_16(1175);
+emit_16(1111);
+emit_16(1176);
+emit_16(1112);
+emit_16(1176);
+emit_16(1111);
+emit_16(1176);
+emit_16(1112);
+emit_16(1177);
+emit_16(1113);
+emit_16(1177);
+emit_16(1112);
+emit_16(1177);
+emit_16(1113);
+emit_16(1178);
+emit_16(1114);
+emit_16(1178);
+emit_16(1113);
+emit_16(1178);
+emit_16(1114);
+emit_16(1179);
+emit_16(1115);
+emit_16(1179);
+emit_16(1114);
+emit_16(1179);
+emit_16(1115);
+emit_16(1180);
+emit_16(1116);
+emit_16(1180);
+emit_16(1115);
+emit_16(1180);
+emit_16(1116);
+emit_16(1181);
+emit_16(1117);
+emit_16(1181);
+emit_16(1116);
+emit_16(1181);
+emit_16(1117);
+emit_16(1182);
+emit_16(1118);
+emit_16(1182);
+emit_16(1117);
+emit_16(1182);
+emit_16(1118);
+emit_16(1183);
+emit_16(1119);
+emit_16(1183);
+emit_16(1118);
+emit_16(1183);
+emit_16(1119);
+emit_16(1184);
+emit_16(1120);
+emit_16(1184);
+emit_16(1119);
+emit_16(1184);
+emit_16(1120);
+emit_16(1185);
+emit_16(1121);
+emit_16(1185);
+emit_16(1120);
+emit_16(1185);
+emit_16(1121);
+emit_16(1186);
+emit_16(1122);
+emit_16(1186);
+emit_16(1121);
+emit_16(1186);
+emit_16(1122);
+emit_16(1187);
+emit_16(1123);
+emit_16(1187);
+emit_16(1122);
+emit_16(1187);
+emit_16(1123);
+emit_16(1188);
+emit_16(1124);
+emit_16(1188);
+emit_16(1123);
+emit_16(1188);
+emit_16(1124);
+emit_16(1189);
+emit_16(1125);
+emit_16(1189);
+emit_16(1124);
+emit_16(1189);
+emit_16(1125);
+emit_16(1190);
+emit_16(1126);
+emit_16(1190);
+emit_16(1125);
+emit_16(1190);
+emit_16(1126);
+emit_16(1191);
+emit_16(1127);
+emit_16(1191);
+emit_16(1126);
+emit_16(1191);
+emit_16(1127);
+emit_16(1192);
+emit_16(1128);
+emit_16(1192);
+emit_16(1127);
+emit_16(1192);
+emit_16(1128);
+emit_16(1193);
+emit_16(1129);
+emit_16(1193);
+emit_16(1128);
+emit_16(1193);
+emit_16(1129);
+emit_16(1194);
+emit_16(1130);
+emit_16(1194);
+emit_16(1129);
+emit_16(1194);
+emit_16(1130);
+emit_16(1195);
+emit_16(1131);
+emit_16(1195);
+emit_16(1130);
+emit_16(1195);
+emit_16(1131);
+emit_16(1196);
+emit_16(1132);
+emit_16(1196);
+emit_16(1131);
+emit_16(1196);
+emit_16(1132);
+emit_16(1197);
+emit_16(1133);
+emit_16(1197);
+emit_16(1132);
+emit_16(1197);
+emit_16(1133);
+emit_16(1198);
+emit_16(1134);
+emit_16(1198);
+emit_16(1133);
+emit_16(1198);
+emit_16(1134);
+emit_16(1199);
+emit_16(1135);
+emit_16(1199);
+emit_16(1134);
+emit_16(1199);
+emit_16(1135);
+emit_16(1200);
+emit_16(1136);
+emit_16(1200);
+emit_16(1135);
+emit_16(1200);
+emit_16(1136);
+emit_16(1201);
+emit_16(1137);
+emit_16(1201);
+emit_16(1136);
+emit_16(1201);
+emit_16(1137);
+emit_16(1202);
+emit_16(1138);
+emit_16(1202);
+emit_16(1137);
+emit_16(1202);
+emit_16(1138);
+emit_16(1203);
+emit_16(1139);
+emit_16(1203);
+emit_16(1138);
+emit_16(1203);
+emit_16(1139);
+emit_16(1204);
+emit_16(1140);
+emit_16(1204);
+emit_16(1139);
+emit_16(1204);
+emit_16(1140);
+emit_16(1205);
+emit_16(1141);
+emit_16(1205);
+emit_16(1140);
+emit_16(1205);
+emit_16(1141);
+emit_16(1206);
+emit_16(1142);
+emit_16(1206);
+emit_16(1141);
+emit_16(1206);
+emit_16(1142);
+emit_16(1207);
+emit_16(1143);
+emit_16(1207);
+emit_16(1142);
+emit_16(1207);
+emit_16(1143);
+emit_16(1208);
+emit_16(1144);
+emit_16(1208);
+emit_16(1143);
+emit_16(1208);
+emit_16(1144);
+emit_16(1209);
+emit_16(1145);
+emit_16(1209);
+emit_16(1144);
+emit_16(1209);
+emit_16(1145);
+emit_16(1210);
+emit_16(1146);
+emit_16(1210);
+emit_16(1145);
+emit_16(1210);
+emit_16(1146);
+emit_16(1211);
+emit_16(1147);
+emit_16(1211);
+emit_16(1146);
+emit_16(1211);
+emit_16(1147);
+emit_16(1212);
+emit_16(1148);
+emit_16(1212);
+emit_16(1147);
+emit_16(1212);
+emit_16(1148);
+emit_16(1213);
+emit_16(1149);
+emit_16(1213);
+emit_16(1148);
+emit_16(1213);
+emit_16(1149);
+emit_16(1214);
+emit_16(1150);
+emit_16(1214);
+emit_16(1149);
+emit_16(1214);
+emit_16(1150);
+emit_16(1215);
+emit_16(1151);
+emit_16(1215);
+emit_16(1150);
+emit_16(1216);
+emit_16(1152);
+emit_16(1217);
+emit_16(1153);
+emit_16(1217);
+emit_16(1152);
+emit_16(1217);
+emit_16(1153);
+emit_16(1218);
+emit_16(1154);
+emit_16(1218);
+emit_16(1153);
+emit_16(1218);
+emit_16(1154);
+emit_16(1219);
+emit_16(1155);
+emit_16(1219);
+emit_16(1154);
+emit_16(1219);
+emit_16(1155);
+emit_16(1220);
+emit_16(1156);
+emit_16(1220);
+emit_16(1155);
+emit_16(1220);
+emit_16(1156);
+emit_16(1221);
+emit_16(1157);
+emit_16(1221);
+emit_16(1156);
+emit_16(1221);
+emit_16(1157);
+emit_16(1222);
+emit_16(1158);
+emit_16(1222);
+emit_16(1157);
+emit_16(1222);
+emit_16(1158);
+emit_16(1223);
+emit_16(1159);
+emit_16(1223);
+emit_16(1158);
+emit_16(1223);
+emit_16(1159);
+emit_16(1224);
+emit_16(1160);
+emit_16(1224);
+emit_16(1159);
+emit_16(1224);
+emit_16(1160);
+emit_16(1225);
+emit_16(1161);
+emit_16(1225);
+emit_16(1160);
+emit_16(1225);
+emit_16(1161);
+emit_16(1226);
+emit_16(1162);
+emit_16(1226);
+emit_16(1161);
+emit_16(1226);
+emit_16(1162);
+emit_16(1227);
+emit_16(1163);
+emit_16(1227);
+emit_16(1162);
+emit_16(1227);
+emit_16(1163);
+emit_16(1228);
+emit_16(1164);
+emit_16(1228);
+emit_16(1163);
+emit_16(1228);
+emit_16(1164);
+emit_16(1229);
+emit_16(1165);
+emit_16(1229);
+emit_16(1164);
+emit_16(1229);
+emit_16(1165);
+emit_16(1230);
+emit_16(1166);
+emit_16(1230);
+emit_16(1165);
+emit_16(1230);
+emit_16(1166);
+emit_16(1231);
+emit_16(1167);
+emit_16(1231);
+emit_16(1166);
+emit_16(1231);
+emit_16(1167);
+emit_16(1232);
+emit_16(1168);
+emit_16(1232);
+emit_16(1167);
+emit_16(1232);
+emit_16(1168);
+emit_16(1233);
+emit_16(1169);
+emit_16(1233);
+emit_16(1168);
+emit_16(1233);
+emit_16(1169);
+emit_16(1234);
+emit_16(1170);
+emit_16(1234);
+emit_16(1169);
+emit_16(1234);
+emit_16(1170);
+emit_16(1235);
+emit_16(1171);
+emit_16(1235);
+emit_16(1170);
+emit_16(1235);
+emit_16(1171);
+emit_16(1236);
+emit_16(1172);
+emit_16(1236);
+emit_16(1171);
+emit_16(1236);
+emit_16(1172);
+emit_16(1237);
+emit_16(1173);
+emit_16(1237);
+emit_16(1172);
+emit_16(1237);
+emit_16(1173);
+emit_16(1238);
+emit_16(1174);
+emit_16(1238);
+emit_16(1173);
+emit_16(1238);
+emit_16(1174);
+emit_16(1239);
+emit_16(1175);
+emit_16(1239);
+emit_16(1174);
+emit_16(1239);
+emit_16(1175);
+emit_16(1240);
+emit_16(1176);
+emit_16(1240);
+emit_16(1175);
+emit_16(1240);
+emit_16(1176);
+emit_16(1241);
+emit_16(1177);
+emit_16(1241);
+emit_16(1176);
+emit_16(1241);
+emit_16(1177);
+emit_16(1242);
+emit_16(1178);
+emit_16(1242);
+emit_16(1177);
+emit_16(1242);
+emit_16(1178);
+emit_16(1243);
+emit_16(1179);
+emit_16(1243);
+emit_16(1178);
+emit_16(1243);
+emit_16(1179);
+emit_16(1244);
+emit_16(1180);
+emit_16(1244);
+emit_16(1179);
+emit_16(1244);
+emit_16(1180);
+emit_16(1245);
+emit_16(1181);
+emit_16(1245);
+emit_16(1180);
+emit_16(1245);
+emit_16(1181);
+emit_16(1246);
+emit_16(1182);
+emit_16(1246);
+emit_16(1181);
+emit_16(1246);
+emit_16(1182);
+emit_16(1247);
+emit_16(1183);
+emit_16(1247);
+emit_16(1182);
+emit_16(1247);
+emit_16(1183);
+emit_16(1248);
+emit_16(1184);
+emit_16(1248);
+emit_16(1183);
+emit_16(1248);
+emit_16(1184);
+emit_16(1249);
+emit_16(1185);
+emit_16(1249);
+emit_16(1184);
+emit_16(1249);
+emit_16(1185);
+emit_16(1250);
+emit_16(1186);
+emit_16(1250);
+emit_16(1185);
+emit_16(1250);
+emit_16(1186);
+emit_16(1251);
+emit_16(1187);
+emit_16(1251);
+emit_16(1186);
+emit_16(1251);
+emit_16(1187);
+emit_16(1252);
+emit_16(1188);
+emit_16(1252);
+emit_16(1187);
+emit_16(1252);
+emit_16(1188);
+emit_16(1253);
+emit_16(1189);
+emit_16(1253);
+emit_16(1188);
+emit_16(1253);
+emit_16(1189);
+emit_16(1254);
+emit_16(1190);
+emit_16(1254);
+emit_16(1189);
+emit_16(1254);
+emit_16(1190);
+emit_16(1255);
+emit_16(1191);
+emit_16(1255);
+emit_16(1190);
+emit_16(1255);
+emit_16(1191);
+emit_16(1256);
+emit_16(1192);
+emit_16(1256);
+emit_16(1191);
+emit_16(1256);
+emit_16(1192);
+emit_16(1257);
+emit_16(1193);
+emit_16(1257);
+emit_16(1192);
+emit_16(1257);
+emit_16(1193);
+emit_16(1258);
+emit_16(1194);
+emit_16(1258);
+emit_16(1193);
+emit_16(1258);
+emit_16(1194);
+emit_16(1259);
+emit_16(1195);
+emit_16(1259);
+emit_16(1194);
+emit_16(1259);
+emit_16(1195);
+emit_16(1260);
+emit_16(1196);
+emit_16(1260);
+emit_16(1195);
+emit_16(1260);
+emit_16(1196);
+emit_16(1261);
+emit_16(1197);
+emit_16(1261);
+emit_16(1196);
+emit_16(1261);
+emit_16(1197);
+emit_16(1262);
+emit_16(1198);
+emit_16(1262);
+emit_16(1197);
+emit_16(1262);
+emit_16(1198);
+emit_16(1263);
+emit_16(1199);
+emit_16(1263);
+emit_16(1198);
+emit_16(1263);
+emit_16(1199);
+emit_16(1264);
+emit_16(1200);
+emit_16(1264);
+emit_16(1199);
+emit_16(1264);
+emit_16(1200);
+emit_16(1265);
+emit_16(1201);
+emit_16(1265);
+emit_16(1200);
+emit_16(1265);
+emit_16(1201);
+emit_16(1266);
+emit_16(1202);
+emit_16(1266);
+emit_16(1201);
+emit_16(1266);
+emit_16(1202);
+emit_16(1267);
+emit_16(1203);
+emit_16(1267);
+emit_16(1202);
+emit_16(1267);
+emit_16(1203);
+emit_16(1268);
+emit_16(1204);
+emit_16(1268);
+emit_16(1203);
+emit_16(1268);
+emit_16(1204);
+emit_16(1269);
+emit_16(1205);
+emit_16(1269);
+emit_16(1204);
+emit_16(1269);
+emit_16(1205);
+emit_16(1270);
+emit_16(1206);
+emit_16(1270);
+emit_16(1205);
+emit_16(1270);
+emit_16(1206);
+emit_16(1271);
+emit_16(1207);
+emit_16(1271);
+emit_16(1206);
+emit_16(1271);
+emit_16(1207);
+emit_16(1272);
+emit_16(1208);
+emit_16(1272);
+emit_16(1207);
+emit_16(1272);
+emit_16(1208);
+emit_16(1273);
+emit_16(1209);
+emit_16(1273);
+emit_16(1208);
+emit_16(1273);
+emit_16(1209);
+emit_16(1274);
+emit_16(1210);
+emit_16(1274);
+emit_16(1209);
+emit_16(1274);
+emit_16(1210);
+emit_16(1275);
+emit_16(1211);
+emit_16(1275);
+emit_16(1210);
+emit_16(1275);
+emit_16(1211);
+emit_16(1276);
+emit_16(1212);
+emit_16(1276);
+emit_16(1211);
+emit_16(1276);
+emit_16(1212);
+emit_16(1277);
+emit_16(1213);
+emit_16(1277);
+emit_16(1212);
+emit_16(1277);
+emit_16(1213);
+emit_16(1278);
+emit_16(1214);
+emit_16(1278);
+emit_16(1213);
+emit_16(1278);
+emit_16(1214);
+emit_16(1279);
+emit_16(1215);
+emit_16(1279);
+emit_16(1214);
+emit_16(1280);
+emit_16(1216);
+emit_16(1281);
+emit_16(1217);
+emit_16(1281);
+emit_16(1216);
+emit_16(1281);
+emit_16(1217);
+emit_16(1282);
+emit_16(1218);
+emit_16(1282);
+emit_16(1217);
+emit_16(1282);
+emit_16(1218);
+emit_16(1283);
+emit_16(1219);
+emit_16(1283);
+emit_16(1218);
+emit_16(1283);
+emit_16(1219);
+emit_16(1284);
+emit_16(1220);
+emit_16(1284);
+emit_16(1219);
+emit_16(1284);
+emit_16(1220);
+emit_16(1285);
+emit_16(1221);
+emit_16(1285);
+emit_16(1220);
+emit_16(1285);
+emit_16(1221);
+emit_16(1286);
+emit_16(1222);
+emit_16(1286);
+emit_16(1221);
+emit_16(1286);
+emit_16(1222);
+emit_16(1287);
+emit_16(1223);
+emit_16(1287);
+emit_16(1222);
+emit_16(1287);
+emit_16(1223);
+emit_16(1288);
+emit_16(1224);
+emit_16(1288);
+emit_16(1223);
+emit_16(1288);
+emit_16(1224);
+emit_16(1289);
+emit_16(1225);
+emit_16(1289);
+emit_16(1224);
+emit_16(1289);
+emit_16(1225);
+emit_16(1290);
+emit_16(1226);
+emit_16(1290);
+emit_16(1225);
+emit_16(1290);
+emit_16(1226);
+emit_16(1291);
+emit_16(1227);
+emit_16(1291);
+emit_16(1226);
+emit_16(1291);
+emit_16(1227);
+emit_16(1292);
+emit_16(1228);
+emit_16(1292);
+emit_16(1227);
+emit_16(1292);
+emit_16(1228);
+emit_16(1293);
+emit_16(1229);
+emit_16(1293);
+emit_16(1228);
+emit_16(1293);
+emit_16(1229);
+emit_16(1294);
+emit_16(1230);
+emit_16(1294);
+emit_16(1229);
+emit_16(1294);
+emit_16(1230);
+emit_16(1295);
+emit_16(1231);
+emit_16(1295);
+emit_16(1230);
+emit_16(1295);
+emit_16(1231);
+emit_16(1296);
+emit_16(1232);
+emit_16(1296);
+emit_16(1231);
+emit_16(1296);
+emit_16(1232);
+emit_16(1297);
+emit_16(1233);
+emit_16(1297);
+emit_16(1232);
+emit_16(1297);
+emit_16(1233);
+emit_16(1298);
+emit_16(1234);
+emit_16(1298);
+emit_16(1233);
+emit_16(1298);
+emit_16(1234);
+emit_16(1299);
+emit_16(1235);
+emit_16(1299);
+emit_16(1234);
+emit_16(1299);
+emit_16(1235);
+emit_16(1300);
+emit_16(1236);
+emit_16(1300);
+emit_16(1235);
+emit_16(1300);
+emit_16(1236);
+emit_16(1301);
+emit_16(1237);
+emit_16(1301);
+emit_16(1236);
+emit_16(1301);
+emit_16(1237);
+emit_16(1302);
+emit_16(1238);
+emit_16(1302);
+emit_16(1237);
+emit_16(1302);
+emit_16(1238);
+emit_16(1303);
+emit_16(1239);
+emit_16(1303);
+emit_16(1238);
+emit_16(1303);
+emit_16(1239);
+emit_16(1304);
+emit_16(1240);
+emit_16(1304);
+emit_16(1239);
+emit_16(1304);
+emit_16(1240);
+emit_16(1305);
+emit_16(1241);
+emit_16(1305);
+emit_16(1240);
+emit_16(1305);
+emit_16(1241);
+emit_16(1306);
+emit_16(1242);
+emit_16(1306);
+emit_16(1241);
+emit_16(1306);
+emit_16(1242);
+emit_16(1307);
+emit_16(1243);
+emit_16(1307);
+emit_16(1242);
+emit_16(1307);
+emit_16(1243);
+emit_16(1308);
+emit_16(1244);
+emit_16(1308);
+emit_16(1243);
+emit_16(1308);
+emit_16(1244);
+emit_16(1309);
+emit_16(1245);
+emit_16(1309);
+emit_16(1244);
+emit_16(1309);
+emit_16(1245);
+emit_16(1310);
+emit_16(1246);
+emit_16(1310);
+emit_16(1245);
+emit_16(1310);
+emit_16(1246);
+emit_16(1311);
+emit_16(1247);
+emit_16(1311);
+emit_16(1246);
+emit_16(1311);
+emit_16(1247);
+emit_16(1312);
+emit_16(1248);
+emit_16(1312);
+emit_16(1247);
+emit_16(1312);
+emit_16(1248);
+emit_16(1313);
+emit_16(1249);
+emit_16(1313);
+emit_16(1248);
+emit_16(1313);
+emit_16(1249);
+emit_16(1314);
+emit_16(1250);
+emit_16(1314);
+emit_16(1249);
+emit_16(1314);
+emit_16(1250);
+emit_16(1315);
+emit_16(1251);
+emit_16(1315);
+emit_16(1250);
+emit_16(1315);
+emit_16(1251);
+emit_16(1316);
+emit_16(1252);
+emit_16(1316);
+emit_16(1251);
+emit_16(1316);
+emit_16(1252);
+emit_16(1317);
+emit_16(1253);
+emit_16(1317);
+emit_16(1252);
+emit_16(1317);
+emit_16(1253);
+emit_16(1318);
+emit_16(1254);
+emit_16(1318);
+emit_16(1253);
+emit_16(1318);
+emit_16(1254);
+emit_16(1319);
+emit_16(1255);
+emit_16(1319);
+emit_16(1254);
+emit_16(1319);
+emit_16(1255);
+emit_16(1320);
+emit_16(1256);
+emit_16(1320);
+emit_16(1255);
+emit_16(1320);
+emit_16(1256);
+emit_16(1321);
+emit_16(1257);
+emit_16(1321);
+emit_16(1256);
+emit_16(1321);
+emit_16(1257);
+emit_16(1322);
+emit_16(1258);
+emit_16(1322);
+emit_16(1257);
+emit_16(1322);
+emit_16(1258);
+emit_16(1323);
+emit_16(1259);
+emit_16(1323);
+emit_16(1258);
+emit_16(1323);
+emit_16(1259);
+emit_16(1324);
+emit_16(1260);
+emit_16(1324);
+emit_16(1259);
+emit_16(1324);
+emit_16(1260);
+emit_16(1325);
+emit_16(1261);
+emit_16(1325);
+emit_16(1260);
+emit_16(1325);
+emit_16(1261);
+emit_16(1326);
+emit_16(1262);
+emit_16(1326);
+emit_16(1261);
+emit_16(1326);
+emit_16(1262);
+emit_16(1327);
+emit_16(1263);
+emit_16(1327);
+emit_16(1262);
+emit_16(1327);
+emit_16(1263);
+emit_16(1328);
+emit_16(1264);
+emit_16(1328);
+emit_16(1263);
+emit_16(1328);
+emit_16(1264);
+emit_16(1329);
+emit_16(1265);
+emit_16(1329);
+emit_16(1264);
+emit_16(1329);
+emit_16(1265);
+emit_16(1330);
+emit_16(1266);
+emit_16(1330);
+emit_16(1265);
+emit_16(1330);
+emit_16(1266);
+emit_16(1331);
+emit_16(1267);
+emit_16(1331);
+emit_16(1266);
+emit_16(1331);
+emit_16(1267);
+emit_16(1332);
+emit_16(1268);
+emit_16(1332);
+emit_16(1267);
+emit_16(1332);
+emit_16(1268);
+emit_16(1333);
+emit_16(1269);
+emit_16(1333);
+emit_16(1268);
+emit_16(1333);
+emit_16(1269);
+emit_16(1334);
+emit_16(1270);
+emit_16(1334);
+emit_16(1269);
+emit_16(1334);
+emit_16(1270);
+emit_16(1335);
+emit_16(1271);
+emit_16(1335);
+emit_16(1270);
+emit_16(1335);
+emit_16(1271);
+emit_16(1336);
+emit_16(1272);
+emit_16(1336);
+emit_16(1271);
+emit_16(1336);
+emit_16(1272);
+emit_16(1337);
+emit_16(1273);
+emit_16(1337);
+emit_16(1272);
+emit_16(1337);
+emit_16(1273);
+emit_16(1338);
+emit_16(1274);
+emit_16(1338);
+emit_16(1273);
+emit_16(1338);
+emit_16(1274);
+emit_16(1339);
+emit_16(1275);
+emit_16(1339);
+emit_16(1274);
+emit_16(1339);
+emit_16(1275);
+emit_16(1340);
+emit_16(1276);
+emit_16(1340);
+emit_16(1275);
+emit_16(1340);
+emit_16(1276);
+emit_16(1341);
+emit_16(1277);
+emit_16(1341);
+emit_16(1276);
+emit_16(1341);
+emit_16(1277);
+emit_16(1342);
+emit_16(1278);
+emit_16(1342);
+emit_16(1277);
+emit_16(1342);
+emit_16(1278);
+emit_16(1343);
+emit_16(1279);
+emit_16(1343);
+emit_16(1278);
+emit_16(1344);
+emit_16(1280);
+emit_16(1345);
+emit_16(1281);
+emit_16(1345);
+emit_16(1280);
+emit_16(1345);
+emit_16(1281);
+emit_16(1346);
+emit_16(1282);
+emit_16(1346);
+emit_16(1281);
+emit_16(1346);
+emit_16(1282);
+emit_16(1347);
+emit_16(1283);
+emit_16(1347);
+emit_16(1282);
+emit_16(1347);
+emit_16(1283);
+emit_16(1348);
+emit_16(1284);
+emit_16(1348);
+emit_16(1283);
+emit_16(1348);
+emit_16(1284);
+emit_16(1349);
+emit_16(1285);
+emit_16(1349);
+emit_16(1284);
+emit_16(1349);
+emit_16(1285);
+emit_16(1350);
+emit_16(1286);
+emit_16(1350);
+emit_16(1285);
+emit_16(1350);
+emit_16(1286);
+emit_16(1351);
+emit_16(1287);
+emit_16(1351);
+emit_16(1286);
+emit_16(1351);
+emit_16(1287);
+emit_16(1352);
+emit_16(1288);
+emit_16(1352);
+emit_16(1287);
+emit_16(1352);
+emit_16(1288);
+emit_16(1353);
+emit_16(1289);
+emit_16(1353);
+emit_16(1288);
+emit_16(1353);
+emit_16(1289);
+emit_16(1354);
+emit_16(1290);
+emit_16(1354);
+emit_16(1289);
+emit_16(1354);
+emit_16(1290);
+emit_16(1355);
+emit_16(1291);
+emit_16(1355);
+emit_16(1290);
+emit_16(1355);
+emit_16(1291);
+emit_16(1356);
+emit_16(1292);
+emit_16(1356);
+emit_16(1291);
+emit_16(1356);
+emit_16(1292);
+emit_16(1357);
+emit_16(1293);
+emit_16(1357);
+emit_16(1292);
+emit_16(1357);
+emit_16(1293);
+emit_16(1358);
+emit_16(1294);
+emit_16(1358);
+emit_16(1293);
+emit_16(1358);
+emit_16(1294);
+emit_16(1359);
+emit_16(1295);
+emit_16(1359);
+emit_16(1294);
+emit_16(1359);
+emit_16(1295);
+emit_16(1360);
+emit_16(1296);
+emit_16(1360);
+emit_16(1295);
+emit_16(1360);
+emit_16(1296);
+emit_16(1361);
+emit_16(1297);
+emit_16(1361);
+emit_16(1296);
+emit_16(1361);
+emit_16(1297);
+emit_16(1362);
+emit_16(1298);
+emit_16(1362);
+emit_16(1297);
+emit_16(1362);
+emit_16(1298);
+emit_16(1363);
+emit_16(1299);
+emit_16(1363);
+emit_16(1298);
+emit_16(1363);
+emit_16(1299);
+emit_16(1364);
+emit_16(1300);
+emit_16(1364);
+emit_16(1299);
+emit_16(1364);
+emit_16(1300);
+emit_16(1365);
+emit_16(1301);
+emit_16(1365);
+emit_16(1300);
+emit_16(1365);
+emit_16(1301);
+emit_16(1366);
+emit_16(1302);
+emit_16(1366);
+emit_16(1301);
+emit_16(1366);
+emit_16(1302);
+emit_16(1367);
+emit_16(1303);
+emit_16(1367);
+emit_16(1302);
+emit_16(1367);
+emit_16(1303);
+emit_16(1368);
+emit_16(1304);
+emit_16(1368);
+emit_16(1303);
+emit_16(1368);
+emit_16(1304);
+emit_16(1369);
+emit_16(1305);
+emit_16(1369);
+emit_16(1304);
+emit_16(1369);
+emit_16(1305);
+emit_16(1370);
+emit_16(1306);
+emit_16(1370);
+emit_16(1305);
+emit_16(1370);
+emit_16(1306);
+emit_16(1371);
+emit_16(1307);
+emit_16(1371);
+emit_16(1306);
+emit_16(1371);
+emit_16(1307);
+emit_16(1372);
+emit_16(1308);
+emit_16(1372);
+emit_16(1307);
+emit_16(1372);
+emit_16(1308);
+emit_16(1373);
+emit_16(1309);
+emit_16(1373);
+emit_16(1308);
+emit_16(1373);
+emit_16(1309);
+emit_16(1374);
+emit_16(1310);
+emit_16(1374);
+emit_16(1309);
+emit_16(1374);
+emit_16(1310);
+emit_16(1375);
+emit_16(1311);
+emit_16(1375);
+emit_16(1310);
+emit_16(1375);
+emit_16(1311);
+emit_16(1376);
+emit_16(1312);
+emit_16(1376);
+emit_16(1311);
+emit_16(1376);
+emit_16(1312);
+emit_16(1377);
+emit_16(1313);
+emit_16(1377);
+emit_16(1312);
+emit_16(1377);
+emit_16(1313);
+emit_16(1378);
+emit_16(1314);
+emit_16(1378);
+emit_16(1313);
+emit_16(1378);
+emit_16(1314);
+emit_16(1379);
+emit_16(1315);
+emit_16(1379);
+emit_16(1314);
+emit_16(1379);
+emit_16(1315);
+emit_16(1380);
+emit_16(1316);
+emit_16(1380);
+emit_16(1315);
+emit_16(1380);
+emit_16(1316);
+emit_16(1381);
+emit_16(1317);
+emit_16(1381);
+emit_16(1316);
+emit_16(1381);
+emit_16(1317);
+emit_16(1382);
+emit_16(1318);
+emit_16(1382);
+emit_16(1317);
+emit_16(1382);
+emit_16(1318);
+emit_16(1383);
+emit_16(1319);
+emit_16(1383);
+emit_16(1318);
+emit_16(1383);
+emit_16(1319);
+emit_16(1384);
+emit_16(1320);
+emit_16(1384);
+emit_16(1319);
+emit_16(1384);
+emit_16(1320);
+emit_16(1385);
+emit_16(1321);
+emit_16(1385);
+emit_16(1320);
+emit_16(1385);
+emit_16(1321);
+emit_16(1386);
+emit_16(1322);
+emit_16(1386);
+emit_16(1321);
+emit_16(1386);
+emit_16(1322);
+emit_16(1387);
+emit_16(1323);
+emit_16(1387);
+emit_16(1322);
+emit_16(1387);
+emit_16(1323);
+emit_16(1388);
+emit_16(1324);
+emit_16(1388);
+emit_16(1323);
+emit_16(1388);
+emit_16(1324);
+emit_16(1389);
+emit_16(1325);
+emit_16(1389);
+emit_16(1324);
+emit_16(1389);
+emit_16(1325);
+emit_16(1390);
+emit_16(1326);
+emit_16(1390);
+emit_16(1325);
+emit_16(1390);
+emit_16(1326);
+emit_16(1391);
+emit_16(1327);
+emit_16(1391);
+emit_16(1326);
+emit_16(1391);
+emit_16(1327);
+emit_16(1392);
+emit_16(1328);
+emit_16(1392);
+emit_16(1327);
+emit_16(1392);
+emit_16(1328);
+emit_16(1393);
+emit_16(1329);
+emit_16(1393);
+emit_16(1328);
+emit_16(1393);
+emit_16(1329);
+emit_16(1394);
+emit_16(1330);
+emit_16(1394);
+emit_16(1329);
+emit_16(1394);
+emit_16(1330);
+emit_16(1395);
+emit_16(1331);
+emit_16(1395);
+emit_16(1330);
+emit_16(1395);
+emit_16(1331);
+emit_16(1396);
+emit_16(1332);
+emit_16(1396);
+emit_16(1331);
+emit_16(1396);
+emit_16(1332);
+emit_16(1397);
+emit_16(1333);
+emit_16(1397);
+emit_16(1332);
+emit_16(1397);
+emit_16(1333);
+emit_16(1398);
+emit_16(1334);
+emit_16(1398);
+emit_16(1333);
+emit_16(1398);
+emit_16(1334);
+emit_16(1399);
+emit_16(1335);
+emit_16(1399);
+emit_16(1334);
+emit_16(1399);
+emit_16(1335);
+emit_16(1400);
+emit_16(1336);
+emit_16(1400);
+emit_16(1335);
+emit_16(1400);
+emit_16(1336);
+emit_16(1401);
+emit_16(1337);
+emit_16(1401);
+emit_16(1336);
+emit_16(1401);
+emit_16(1337);
+emit_16(1402);
+emit_16(1338);
+emit_16(1402);
+emit_16(1337);
+emit_16(1402);
+emit_16(1338);
+emit_16(1403);
+emit_16(1339);
+emit_16(1403);
+emit_16(1338);
+emit_16(1403);
+emit_16(1339);
+emit_16(1404);
+emit_16(1340);
+emit_16(1404);
+emit_16(1339);
+emit_16(1404);
+emit_16(1340);
+emit_16(1405);
+emit_16(1341);
+emit_16(1405);
+emit_16(1340);
+emit_16(1405);
+emit_16(1341);
+emit_16(1406);
+emit_16(1342);
+emit_16(1406);
+emit_16(1341);
+emit_16(1406);
+emit_16(1342);
+emit_16(1407);
+emit_16(1343);
+emit_16(1407);
+emit_16(1342);
+emit_16(1408);
+emit_16(1344);
+emit_16(1409);
+emit_16(1345);
+emit_16(1409);
+emit_16(1344);
+emit_16(1409);
+emit_16(1345);
+emit_16(1410);
+emit_16(1346);
+emit_16(1410);
+emit_16(1345);
+emit_16(1410);
+emit_16(1346);
+emit_16(1411);
+emit_16(1347);
+emit_16(1411);
+emit_16(1346);
+emit_16(1411);
+emit_16(1347);
+emit_16(1412);
+emit_16(1348);
+emit_16(1412);
+emit_16(1347);
+emit_16(1412);
+emit_16(1348);
+emit_16(1413);
+emit_16(1349);
+emit_16(1413);
+emit_16(1348);
+emit_16(1413);
+emit_16(1349);
+emit_16(1414);
+emit_16(1350);
+emit_16(1414);
+emit_16(1349);
+emit_16(1414);
+emit_16(1350);
+emit_16(1415);
+emit_16(1351);
+emit_16(1415);
+emit_16(1350);
+emit_16(1415);
+emit_16(1351);
+emit_16(1416);
+emit_16(1352);
+emit_16(1416);
+emit_16(1351);
+emit_16(1416);
+emit_16(1352);
+emit_16(1417);
+emit_16(1353);
+emit_16(1417);
+emit_16(1352);
+emit_16(1417);
+emit_16(1353);
+emit_16(1418);
+emit_16(1354);
+emit_16(1418);
+emit_16(1353);
+emit_16(1418);
+emit_16(1354);
+emit_16(1419);
+emit_16(1355);
+emit_16(1419);
+emit_16(1354);
+emit_16(1419);
+emit_16(1355);
+emit_16(1420);
+emit_16(1356);
+emit_16(1420);
+emit_16(1355);
+emit_16(1420);
+emit_16(1356);
+emit_16(1421);
+emit_16(1357);
+emit_16(1421);
+emit_16(1356);
+emit_16(1421);
+emit_16(1357);
+emit_16(1422);
+emit_16(1358);
+emit_16(1422);
+emit_16(1357);
+emit_16(1422);
+emit_16(1358);
+emit_16(1423);
+emit_16(1359);
+emit_16(1423);
+emit_16(1358);
+emit_16(1423);
+emit_16(1359);
+emit_16(1424);
+emit_16(1360);
+emit_16(1424);
+emit_16(1359);
+emit_16(1424);
+emit_16(1360);
+emit_16(1425);
+emit_16(1361);
+emit_16(1425);
+emit_16(1360);
+emit_16(1425);
+emit_16(1361);
+emit_16(1426);
+emit_16(1362);
+emit_16(1426);
+emit_16(1361);
+emit_16(1426);
+emit_16(1362);
+emit_16(1427);
+emit_16(1363);
+emit_16(1427);
+emit_16(1362);
+emit_16(1427);
+emit_16(1363);
+emit_16(1428);
+emit_16(1364);
+emit_16(1428);
+emit_16(1363);
+emit_16(1428);
+emit_16(1364);
+emit_16(1429);
+emit_16(1365);
+emit_16(1429);
+emit_16(1364);
+emit_16(1429);
+emit_16(1365);
+emit_16(1430);
+emit_16(1366);
+emit_16(1430);
+emit_16(1365);
+emit_16(1430);
+emit_16(1366);
+emit_16(1431);
+emit_16(1367);
+emit_16(1431);
+emit_16(1366);
+emit_16(1431);
+emit_16(1367);
+emit_16(1432);
+emit_16(1368);
+emit_16(1432);
+emit_16(1367);
+emit_16(1432);
+emit_16(1368);
+emit_16(1433);
+emit_16(1369);
+emit_16(1433);
+emit_16(1368);
+emit_16(1433);
+emit_16(1369);
+emit_16(1434);
+emit_16(1370);
+emit_16(1434);
+emit_16(1369);
+emit_16(1434);
+emit_16(1370);
+emit_16(1435);
+emit_16(1371);
+emit_16(1435);
+emit_16(1370);
+emit_16(1435);
+emit_16(1371);
+emit_16(1436);
+emit_16(1372);
+emit_16(1436);
+emit_16(1371);
+emit_16(1436);
+emit_16(1372);
+emit_16(1437);
+emit_16(1373);
+emit_16(1437);
+emit_16(1372);
+emit_16(1437);
+emit_16(1373);
+emit_16(1438);
+emit_16(1374);
+emit_16(1438);
+emit_16(1373);
+emit_16(1438);
+emit_16(1374);
+emit_16(1439);
+emit_16(1375);
+emit_16(1439);
+emit_16(1374);
+emit_16(1439);
+emit_16(1375);
+emit_16(1440);
+emit_16(1376);
+emit_16(1440);
+emit_16(1375);
+emit_16(1440);
+emit_16(1376);
+emit_16(1441);
+emit_16(1377);
+emit_16(1441);
+emit_16(1376);
+emit_16(1441);
+emit_16(1377);
+emit_16(1442);
+emit_16(1378);
+emit_16(1442);
+emit_16(1377);
+emit_16(1442);
+emit_16(1378);
+emit_16(1443);
+emit_16(1379);
+emit_16(1443);
+emit_16(1378);
+emit_16(1443);
+emit_16(1379);
+emit_16(1444);
+emit_16(1380);
+emit_16(1444);
+emit_16(1379);
+emit_16(1444);
+emit_16(1380);
+emit_16(1445);
+emit_16(1381);
+emit_16(1445);
+emit_16(1380);
+emit_16(1445);
+emit_16(1381);
+emit_16(1446);
+emit_16(1382);
+emit_16(1446);
+emit_16(1381);
+emit_16(1446);
+emit_16(1382);
+emit_16(1447);
+emit_16(1383);
+emit_16(1447);
+emit_16(1382);
+emit_16(1447);
+emit_16(1383);
+emit_16(1448);
+emit_16(1384);
+emit_16(1448);
+emit_16(1383);
+emit_16(1448);
+emit_16(1384);
+emit_16(1449);
+emit_16(1385);
+emit_16(1449);
+emit_16(1384);
+emit_16(1449);
+emit_16(1385);
+emit_16(1450);
+emit_16(1386);
+emit_16(1450);
+emit_16(1385);
+emit_16(1450);
+emit_16(1386);
+emit_16(1451);
+emit_16(1387);
+emit_16(1451);
+emit_16(1386);
+emit_16(1451);
+emit_16(1387);
+emit_16(1452);
+emit_16(1388);
+emit_16(1452);
+emit_16(1387);
+emit_16(1452);
+emit_16(1388);
+emit_16(1453);
+emit_16(1389);
+emit_16(1453);
+emit_16(1388);
+emit_16(1453);
+emit_16(1389);
+emit_16(1454);
+emit_16(1390);
+emit_16(1454);
+emit_16(1389);
+emit_16(1454);
+emit_16(1390);
+emit_16(1455);
+emit_16(1391);
+emit_16(1455);
+emit_16(1390);
+emit_16(1455);
+emit_16(1391);
+emit_16(1456);
+emit_16(1392);
+emit_16(1456);
+emit_16(1391);
+emit_16(1456);
+emit_16(1392);
+emit_16(1457);
+emit_16(1393);
+emit_16(1457);
+emit_16(1392);
+emit_16(1457);
+emit_16(1393);
+emit_16(1458);
+emit_16(1394);
+emit_16(1458);
+emit_16(1393);
+emit_16(1458);
+emit_16(1394);
+emit_16(1459);
+emit_16(1395);
+emit_16(1459);
+emit_16(1394);
+emit_16(1459);
+emit_16(1395);
+emit_16(1460);
+emit_16(1396);
+emit_16(1460);
+emit_16(1395);
+emit_16(1460);
+emit_16(1396);
+emit_16(1461);
+emit_16(1397);
+emit_16(1461);
+emit_16(1396);
+emit_16(1461);
+emit_16(1397);
+emit_16(1462);
+emit_16(1398);
+emit_16(1462);
+emit_16(1397);
+emit_16(1462);
+emit_16(1398);
+emit_16(1463);
+emit_16(1399);
+emit_16(1463);
+emit_16(1398);
+emit_16(1463);
+emit_16(1399);
+emit_16(1464);
+emit_16(1400);
+emit_16(1464);
+emit_16(1399);
+emit_16(1464);
+emit_16(1400);
+emit_16(1465);
+emit_16(1401);
+emit_16(1465);
+emit_16(1400);
+emit_16(1465);
+emit_16(1401);
+emit_16(1466);
+emit_16(1402);
+emit_16(1466);
+emit_16(1401);
+emit_16(1466);
+emit_16(1402);
+emit_16(1467);
+emit_16(1403);
+emit_16(1467);
+emit_16(1402);
+emit_16(1467);
+emit_16(1403);
+emit_16(1468);
+emit_16(1404);
+emit_16(1468);
+emit_16(1403);
+emit_16(1468);
+emit_16(1404);
+emit_16(1469);
+emit_16(1405);
+emit_16(1469);
+emit_16(1404);
+emit_16(1469);
+emit_16(1405);
+emit_16(1470);
+emit_16(1406);
+emit_16(1470);
+emit_16(1405);
+emit_16(1470);
+emit_16(1406);
+emit_16(1471);
+emit_16(1407);
+emit_16(1471);
+emit_16(1406);
+emit_16(1472);
+emit_16(1408);
+emit_16(1473);
+emit_16(1409);
+emit_16(1473);
+emit_16(1408);
+emit_16(1473);
+emit_16(1409);
+emit_16(1474);
+emit_16(1410);
+emit_16(1474);
+emit_16(1409);
+emit_16(1474);
+emit_16(1410);
+emit_16(1475);
+emit_16(1411);
+emit_16(1475);
+emit_16(1410);
+emit_16(1475);
+emit_16(1411);
+emit_16(1476);
+emit_16(1412);
+emit_16(1476);
+emit_16(1411);
+emit_16(1476);
+emit_16(1412);
+emit_16(1477);
+emit_16(1413);
+emit_16(1477);
+emit_16(1412);
+emit_16(1477);
+emit_16(1413);
+emit_16(1478);
+emit_16(1414);
+emit_16(1478);
+emit_16(1413);
+emit_16(1478);
+emit_16(1414);
+emit_16(1479);
+emit_16(1415);
+emit_16(1479);
+emit_16(1414);
+emit_16(1479);
+emit_16(1415);
+emit_16(1480);
+emit_16(1416);
+emit_16(1480);
+emit_16(1415);
+emit_16(1480);
+emit_16(1416);
+emit_16(1481);
+emit_16(1417);
+emit_16(1481);
+emit_16(1416);
+emit_16(1481);
+emit_16(1417);
+emit_16(1482);
+emit_16(1418);
+emit_16(1482);
+emit_16(1417);
+emit_16(1482);
+emit_16(1418);
+emit_16(1483);
+emit_16(1419);
+emit_16(1483);
+emit_16(1418);
+emit_16(1483);
+emit_16(1419);
+emit_16(1484);
+emit_16(1420);
+emit_16(1484);
+emit_16(1419);
+emit_16(1484);
+emit_16(1420);
+emit_16(1485);
+emit_16(1421);
+emit_16(1485);
+emit_16(1420);
+emit_16(1485);
+emit_16(1421);
+emit_16(1486);
+emit_16(1422);
+emit_16(1486);
+emit_16(1421);
+emit_16(1486);
+emit_16(1422);
+emit_16(1487);
+emit_16(1423);
+emit_16(1487);
+emit_16(1422);
+emit_16(1487);
+emit_16(1423);
+emit_16(1488);
+emit_16(1424);
+emit_16(1488);
+emit_16(1423);
+emit_16(1488);
+emit_16(1424);
+emit_16(1489);
+emit_16(1425);
+emit_16(1489);
+emit_16(1424);
+emit_16(1489);
+emit_16(1425);
+emit_16(1490);
+emit_16(1426);
+emit_16(1490);
+emit_16(1425);
+emit_16(1490);
+emit_16(1426);
+emit_16(1491);
+emit_16(1427);
+emit_16(1491);
+emit_16(1426);
+emit_16(1491);
+emit_16(1427);
+emit_16(1492);
+emit_16(1428);
+emit_16(1492);
+emit_16(1427);
+emit_16(1492);
+emit_16(1428);
+emit_16(1493);
+emit_16(1429);
+emit_16(1493);
+emit_16(1428);
+emit_16(1493);
+emit_16(1429);
+emit_16(1494);
+emit_16(1430);
+emit_16(1494);
+emit_16(1429);
+emit_16(1494);
+emit_16(1430);
+emit_16(1495);
+emit_16(1431);
+emit_16(1495);
+emit_16(1430);
+emit_16(1495);
+emit_16(1431);
+emit_16(1496);
+emit_16(1432);
+emit_16(1496);
+emit_16(1431);
+emit_16(1496);
+emit_16(1432);
+emit_16(1497);
+emit_16(1433);
+emit_16(1497);
+emit_16(1432);
+emit_16(1497);
+emit_16(1433);
+emit_16(1498);
+emit_16(1434);
+emit_16(1498);
+emit_16(1433);
+emit_16(1498);
+emit_16(1434);
+emit_16(1499);
+emit_16(1435);
+emit_16(1499);
+emit_16(1434);
+emit_16(1499);
+emit_16(1435);
+emit_16(1500);
+emit_16(1436);
+emit_16(1500);
+emit_16(1435);
+emit_16(1500);
+emit_16(1436);
+emit_16(1501);
+emit_16(1437);
+emit_16(1501);
+emit_16(1436);
+emit_16(1501);
+emit_16(1437);
+emit_16(1502);
+emit_16(1438);
+emit_16(1502);
+emit_16(1437);
+emit_16(1502);
+emit_16(1438);
+emit_16(1503);
+emit_16(1439);
+emit_16(1503);
+emit_16(1438);
+emit_16(1503);
+emit_16(1439);
+emit_16(1504);
+emit_16(1440);
+emit_16(1504);
+emit_16(1439);
+emit_16(1504);
+emit_16(1440);
+emit_16(1505);
+emit_16(1441);
+emit_16(1505);
+emit_16(1440);
+emit_16(1505);
+emit_16(1441);
+emit_16(1506);
+emit_16(1442);
+emit_16(1506);
+emit_16(1441);
+emit_16(1506);
+emit_16(1442);
+emit_16(1507);
+emit_16(1443);
+emit_16(1507);
+emit_16(1442);
+emit_16(1507);
+emit_16(1443);
+emit_16(1508);
+emit_16(1444);
+emit_16(1508);
+emit_16(1443);
+emit_16(1508);
+emit_16(1444);
+emit_16(1509);
+emit_16(1445);
+emit_16(1509);
+emit_16(1444);
+emit_16(1509);
+emit_16(1445);
+emit_16(1510);
+emit_16(1446);
+emit_16(1510);
+emit_16(1445);
+emit_16(1510);
+emit_16(1446);
+emit_16(1511);
+emit_16(1447);
+emit_16(1511);
+emit_16(1446);
+emit_16(1511);
+emit_16(1447);
+emit_16(1512);
+emit_16(1448);
+emit_16(1512);
+emit_16(1447);
+emit_16(1512);
+emit_16(1448);
+emit_16(1513);
+emit_16(1449);
+emit_16(1513);
+emit_16(1448);
+emit_16(1513);
+emit_16(1449);
+emit_16(1514);
+emit_16(1450);
+emit_16(1514);
+emit_16(1449);
+emit_16(1514);
+emit_16(1450);
+emit_16(1515);
+emit_16(1451);
+emit_16(1515);
+emit_16(1450);
+emit_16(1515);
+emit_16(1451);
+emit_16(1516);
+emit_16(1452);
+emit_16(1516);
+emit_16(1451);
+emit_16(1516);
+emit_16(1452);
+emit_16(1517);
+emit_16(1453);
+emit_16(1517);
+emit_16(1452);
+emit_16(1517);
+emit_16(1453);
+emit_16(1518);
+emit_16(1454);
+emit_16(1518);
+emit_16(1453);
+emit_16(1518);
+emit_16(1454);
+emit_16(1519);
+emit_16(1455);
+emit_16(1519);
+emit_16(1454);
+emit_16(1519);
+emit_16(1455);
+emit_16(1520);
+emit_16(1456);
+emit_16(1520);
+emit_16(1455);
+emit_16(1520);
+emit_16(1456);
+emit_16(1521);
+emit_16(1457);
+emit_16(1521);
+emit_16(1456);
+emit_16(1521);
+emit_16(1457);
+emit_16(1522);
+emit_16(1458);
+emit_16(1522);
+emit_16(1457);
+emit_16(1522);
+emit_16(1458);
+emit_16(1523);
+emit_16(1459);
+emit_16(1523);
+emit_16(1458);
+emit_16(1523);
+emit_16(1459);
+emit_16(1524);
+emit_16(1460);
+emit_16(1524);
+emit_16(1459);
+emit_16(1524);
+emit_16(1460);
+emit_16(1525);
+emit_16(1461);
+emit_16(1525);
+emit_16(1460);
+emit_16(1525);
+emit_16(1461);
+emit_16(1526);
+emit_16(1462);
+emit_16(1526);
+emit_16(1461);
+emit_16(1526);
+emit_16(1462);
+emit_16(1527);
+emit_16(1463);
+emit_16(1527);
+emit_16(1462);
+emit_16(1527);
+emit_16(1463);
+emit_16(1528);
+emit_16(1464);
+emit_16(1528);
+emit_16(1463);
+emit_16(1528);
+emit_16(1464);
+emit_16(1529);
+emit_16(1465);
+emit_16(1529);
+emit_16(1464);
+emit_16(1529);
+emit_16(1465);
+emit_16(1530);
+emit_16(1466);
+emit_16(1530);
+emit_16(1465);
+emit_16(1530);
+emit_16(1466);
+emit_16(1531);
+emit_16(1467);
+emit_16(1531);
+emit_16(1466);
+emit_16(1531);
+emit_16(1467);
+emit_16(1532);
+emit_16(1468);
+emit_16(1532);
+emit_16(1467);
+emit_16(1532);
+emit_16(1468);
+emit_16(1533);
+emit_16(1469);
+emit_16(1533);
+emit_16(1468);
+emit_16(1533);
+emit_16(1469);
+emit_16(1534);
+emit_16(1470);
+emit_16(1534);
+emit_16(1469);
+emit_16(1534);
+emit_16(1470);
+emit_16(1535);
+emit_16(1471);
+emit_16(1535);
+emit_16(1470);
+emit_16(1536);
+emit_16(1472);
+emit_16(1537);
+emit_16(1473);
+emit_16(1537);
+emit_16(1472);
+emit_16(1537);
+emit_16(1473);
+emit_16(1538);
+emit_16(1474);
+emit_16(1538);
+emit_16(1473);
+emit_16(1538);
+emit_16(1474);
+emit_16(1539);
+emit_16(1475);
+emit_16(1539);
+emit_16(1474);
+emit_16(1539);
+emit_16(1475);
+emit_16(1540);
+emit_16(1476);
+emit_16(1540);
+emit_16(1475);
+emit_16(1540);
+emit_16(1476);
+emit_16(1541);
+emit_16(1477);
+emit_16(1541);
+emit_16(1476);
+emit_16(1541);
+emit_16(1477);
+emit_16(1542);
+emit_16(1478);
+emit_16(1542);
+emit_16(1477);
+emit_16(1542);
+emit_16(1478);
+emit_16(1543);
+emit_16(1479);
+emit_16(1543);
+emit_16(1478);
+emit_16(1543);
+emit_16(1479);
+emit_16(1544);
+emit_16(1480);
+emit_16(1544);
+emit_16(1479);
+emit_16(1544);
+emit_16(1480);
+emit_16(1545);
+emit_16(1481);
+emit_16(1545);
+emit_16(1480);
+emit_16(1545);
+emit_16(1481);
+emit_16(1546);
+emit_16(1482);
+emit_16(1546);
+emit_16(1481);
+emit_16(1546);
+emit_16(1482);
+emit_16(1547);
+emit_16(1483);
+emit_16(1547);
+emit_16(1482);
+emit_16(1547);
+emit_16(1483);
+emit_16(1548);
+emit_16(1484);
+emit_16(1548);
+emit_16(1483);
+emit_16(1548);
+emit_16(1484);
+emit_16(1549);
+emit_16(1485);
+emit_16(1549);
+emit_16(1484);
+emit_16(1549);
+emit_16(1485);
+emit_16(1550);
+emit_16(1486);
+emit_16(1550);
+emit_16(1485);
+emit_16(1550);
+emit_16(1486);
+emit_16(1551);
+emit_16(1487);
+emit_16(1551);
+emit_16(1486);
+emit_16(1551);
+emit_16(1487);
+emit_16(1552);
+emit_16(1488);
+emit_16(1552);
+emit_16(1487);
+emit_16(1552);
+emit_16(1488);
+emit_16(1553);
+emit_16(1489);
+emit_16(1553);
+emit_16(1488);
+emit_16(1553);
+emit_16(1489);
+emit_16(1554);
+emit_16(1490);
+emit_16(1554);
+emit_16(1489);
+emit_16(1554);
+emit_16(1490);
+emit_16(1555);
+emit_16(1491);
+emit_16(1555);
+emit_16(1490);
+emit_16(1555);
+emit_16(1491);
+emit_16(1556);
+emit_16(1492);
+emit_16(1556);
+emit_16(1491);
+emit_16(1556);
+emit_16(1492);
+emit_16(1557);
+emit_16(1493);
+emit_16(1557);
+emit_16(1492);
+emit_16(1557);
+emit_16(1493);
+emit_16(1558);
+emit_16(1494);
+emit_16(1558);
+emit_16(1493);
+emit_16(1558);
+emit_16(1494);
+emit_16(1559);
+emit_16(1495);
+emit_16(1559);
+emit_16(1494);
+emit_16(1559);
+emit_16(1495);
+emit_16(1560);
+emit_16(1496);
+emit_16(1560);
+emit_16(1495);
+emit_16(1560);
+emit_16(1496);
+emit_16(1561);
+emit_16(1497);
+emit_16(1561);
+emit_16(1496);
+emit_16(1561);
+emit_16(1497);
+emit_16(1562);
+emit_16(1498);
+emit_16(1562);
+emit_16(1497);
+emit_16(1562);
+emit_16(1498);
+emit_16(1563);
+emit_16(1499);
+emit_16(1563);
+emit_16(1498);
+emit_16(1563);
+emit_16(1499);
+emit_16(1564);
+emit_16(1500);
+emit_16(1564);
+emit_16(1499);
+emit_16(1564);
+emit_16(1500);
+emit_16(1565);
+emit_16(1501);
+emit_16(1565);
+emit_16(1500);
+emit_16(1565);
+emit_16(1501);
+emit_16(1566);
+emit_16(1502);
+emit_16(1566);
+emit_16(1501);
+emit_16(1566);
+emit_16(1502);
+emit_16(1567);
+emit_16(1503);
+emit_16(1567);
+emit_16(1502);
+emit_16(1567);
+emit_16(1503);
+emit_16(1568);
+emit_16(1504);
+emit_16(1568);
+emit_16(1503);
+emit_16(1568);
+emit_16(1504);
+emit_16(1569);
+emit_16(1505);
+emit_16(1569);
+emit_16(1504);
+emit_16(1569);
+emit_16(1505);
+emit_16(1570);
+emit_16(1506);
+emit_16(1570);
+emit_16(1505);
+emit_16(1570);
+emit_16(1506);
+emit_16(1571);
+emit_16(1507);
+emit_16(1571);
+emit_16(1506);
+emit_16(1571);
+emit_16(1507);
+emit_16(1572);
+emit_16(1508);
+emit_16(1572);
+emit_16(1507);
+emit_16(1572);
+emit_16(1508);
+emit_16(1573);
+emit_16(1509);
+emit_16(1573);
+emit_16(1508);
+emit_16(1573);
+emit_16(1509);
+emit_16(1574);
+emit_16(1510);
+emit_16(1574);
+emit_16(1509);
+emit_16(1574);
+emit_16(1510);
+emit_16(1575);
+emit_16(1511);
+emit_16(1575);
+emit_16(1510);
+emit_16(1575);
+emit_16(1511);
+emit_16(1576);
+emit_16(1512);
+emit_16(1576);
+emit_16(1511);
+emit_16(1576);
+emit_16(1512);
+emit_16(1577);
+emit_16(1513);
+emit_16(1577);
+emit_16(1512);
+emit_16(1577);
+emit_16(1513);
+emit_16(1578);
+emit_16(1514);
+emit_16(1578);
+emit_16(1513);
+emit_16(1578);
+emit_16(1514);
+emit_16(1579);
+emit_16(1515);
+emit_16(1579);
+emit_16(1514);
+emit_16(1579);
+emit_16(1515);
+emit_16(1580);
+emit_16(1516);
+emit_16(1580);
+emit_16(1515);
+emit_16(1580);
+emit_16(1516);
+emit_16(1581);
+emit_16(1517);
+emit_16(1581);
+emit_16(1516);
+emit_16(1581);
+emit_16(1517);
+emit_16(1582);
+emit_16(1518);
+emit_16(1582);
+emit_16(1517);
+emit_16(1582);
+emit_16(1518);
+emit_16(1583);
+emit_16(1519);
+emit_16(1583);
+emit_16(1518);
+emit_16(1583);
+emit_16(1519);
+emit_16(1584);
+emit_16(1520);
+emit_16(1584);
+emit_16(1519);
+emit_16(1584);
+emit_16(1520);
+emit_16(1585);
+emit_16(1521);
+emit_16(1585);
+emit_16(1520);
+emit_16(1585);
+emit_16(1521);
+emit_16(1586);
+emit_16(1522);
+emit_16(1586);
+emit_16(1521);
+emit_16(1586);
+emit_16(1522);
+emit_16(1587);
+emit_16(1523);
+emit_16(1587);
+emit_16(1522);
+emit_16(1587);
+emit_16(1523);
+emit_16(1588);
+emit_16(1524);
+emit_16(1588);
+emit_16(1523);
+emit_16(1588);
+emit_16(1524);
+emit_16(1589);
+emit_16(1525);
+emit_16(1589);
+emit_16(1524);
+emit_16(1589);
+emit_16(1525);
+emit_16(1590);
+emit_16(1526);
+emit_16(1590);
+emit_16(1525);
+emit_16(1590);
+emit_16(1526);
+emit_16(1591);
+emit_16(1527);
+emit_16(1591);
+emit_16(1526);
+emit_16(1591);
+emit_16(1527);
+emit_16(1592);
+emit_16(1528);
+emit_16(1592);
+emit_16(1527);
+emit_16(1592);
+emit_16(1528);
+emit_16(1593);
+emit_16(1529);
+emit_16(1593);
+emit_16(1528);
+emit_16(1593);
+emit_16(1529);
+emit_16(1594);
+emit_16(1530);
+emit_16(1594);
+emit_16(1529);
+emit_16(1594);
+emit_16(1530);
+emit_16(1595);
+emit_16(1531);
+emit_16(1595);
+emit_16(1530);
+emit_16(1595);
+emit_16(1531);
+emit_16(1596);
+emit_16(1532);
+emit_16(1596);
+emit_16(1531);
+emit_16(1596);
+emit_16(1532);
+emit_16(1597);
+emit_16(1533);
+emit_16(1597);
+emit_16(1532);
+emit_16(1597);
+emit_16(1533);
+emit_16(1598);
+emit_16(1534);
+emit_16(1598);
+emit_16(1533);
+emit_16(1598);
+emit_16(1534);
+emit_16(1599);
+emit_16(1535);
+emit_16(1599);
+emit_16(1534);
+emit_16(1600);
+emit_16(1536);
+emit_16(1601);
+emit_16(1537);
+emit_16(1601);
+emit_16(1536);
+emit_16(1601);
+emit_16(1537);
+emit_16(1602);
+emit_16(1538);
+emit_16(1602);
+emit_16(1537);
+emit_16(1602);
+emit_16(1538);
+emit_16(1603);
+emit_16(1539);
+emit_16(1603);
+emit_16(1538);
+emit_16(1603);
+emit_16(1539);
+emit_16(1604);
+emit_16(1540);
+emit_16(1604);
+emit_16(1539);
+emit_16(1604);
+emit_16(1540);
+emit_16(1605);
+emit_16(1541);
+emit_16(1605);
+emit_16(1540);
+emit_16(1605);
+emit_16(1541);
+emit_16(1606);
+emit_16(1542);
+emit_16(1606);
+emit_16(1541);
+emit_16(1606);
+emit_16(1542);
+emit_16(1607);
+emit_16(1543);
+emit_16(1607);
+emit_16(1542);
+emit_16(1607);
+emit_16(1543);
+emit_16(1608);
+emit_16(1544);
+emit_16(1608);
+emit_16(1543);
+emit_16(1608);
+emit_16(1544);
+emit_16(1609);
+emit_16(1545);
+emit_16(1609);
+emit_16(1544);
+emit_16(1609);
+emit_16(1545);
+emit_16(1610);
+emit_16(1546);
+emit_16(1610);
+emit_16(1545);
+emit_16(1610);
+emit_16(1546);
+emit_16(1611);
+emit_16(1547);
+emit_16(1611);
+emit_16(1546);
+emit_16(1611);
+emit_16(1547);
+emit_16(1612);
+emit_16(1548);
+emit_16(1612);
+emit_16(1547);
+emit_16(1612);
+emit_16(1548);
+emit_16(1613);
+emit_16(1549);
+emit_16(1613);
+emit_16(1548);
+emit_16(1613);
+emit_16(1549);
+emit_16(1614);
+emit_16(1550);
+emit_16(1614);
+emit_16(1549);
+emit_16(1614);
+emit_16(1550);
+emit_16(1615);
+emit_16(1551);
+emit_16(1615);
+emit_16(1550);
+emit_16(1615);
+emit_16(1551);
+emit_16(1616);
+emit_16(1552);
+emit_16(1616);
+emit_16(1551);
+emit_16(1616);
+emit_16(1552);
+emit_16(1617);
+emit_16(1553);
+emit_16(1617);
+emit_16(1552);
+emit_16(1617);
+emit_16(1553);
+emit_16(1618);
+emit_16(1554);
+emit_16(1618);
+emit_16(1553);
+emit_16(1618);
+emit_16(1554);
+emit_16(1619);
+emit_16(1555);
+emit_16(1619);
+emit_16(1554);
+emit_16(1619);
+emit_16(1555);
+emit_16(1620);
+emit_16(1556);
+emit_16(1620);
+emit_16(1555);
+emit_16(1620);
+emit_16(1556);
+emit_16(1621);
+emit_16(1557);
+emit_16(1621);
+emit_16(1556);
+emit_16(1621);
+emit_16(1557);
+emit_16(1622);
+emit_16(1558);
+emit_16(1622);
+emit_16(1557);
+emit_16(1622);
+emit_16(1558);
+emit_16(1623);
+emit_16(1559);
+emit_16(1623);
+emit_16(1558);
+emit_16(1623);
+emit_16(1559);
+emit_16(1624);
+emit_16(1560);
+emit_16(1624);
+emit_16(1559);
+emit_16(1624);
+emit_16(1560);
+emit_16(1625);
+emit_16(1561);
+emit_16(1625);
+emit_16(1560);
+emit_16(1625);
+emit_16(1561);
+emit_16(1626);
+emit_16(1562);
+emit_16(1626);
+emit_16(1561);
+emit_16(1626);
+emit_16(1562);
+emit_16(1627);
+emit_16(1563);
+emit_16(1627);
+emit_16(1562);
+emit_16(1627);
+emit_16(1563);
+emit_16(1628);
+emit_16(1564);
+emit_16(1628);
+emit_16(1563);
+emit_16(1628);
+emit_16(1564);
+emit_16(1629);
+emit_16(1565);
+emit_16(1629);
+emit_16(1564);
+emit_16(1629);
+emit_16(1565);
+emit_16(1630);
+emit_16(1566);
+emit_16(1630);
+emit_16(1565);
+emit_16(1630);
+emit_16(1566);
+emit_16(1631);
+emit_16(1567);
+emit_16(1631);
+emit_16(1566);
+emit_16(1631);
+emit_16(1567);
+emit_16(1632);
+emit_16(1568);
+emit_16(1632);
+emit_16(1567);
+emit_16(1632);
+emit_16(1568);
+emit_16(1633);
+emit_16(1569);
+emit_16(1633);
+emit_16(1568);
+emit_16(1633);
+emit_16(1569);
+emit_16(1634);
+emit_16(1570);
+emit_16(1634);
+emit_16(1569);
+emit_16(1634);
+emit_16(1570);
+emit_16(1635);
+emit_16(1571);
+emit_16(1635);
+emit_16(1570);
+emit_16(1635);
+emit_16(1571);
+emit_16(1636);
+emit_16(1572);
+emit_16(1636);
+emit_16(1571);
+emit_16(1636);
+emit_16(1572);
+emit_16(1637);
+emit_16(1573);
+emit_16(1637);
+emit_16(1572);
+emit_16(1637);
+emit_16(1573);
+emit_16(1638);
+emit_16(1574);
+emit_16(1638);
+emit_16(1573);
+emit_16(1638);
+emit_16(1574);
+emit_16(1639);
+emit_16(1575);
+emit_16(1639);
+emit_16(1574);
+emit_16(1639);
+emit_16(1575);
+emit_16(1640);
+emit_16(1576);
+emit_16(1640);
+emit_16(1575);
+emit_16(1640);
+emit_16(1576);
+emit_16(1641);
+emit_16(1577);
+emit_16(1641);
+emit_16(1576);
+emit_16(1641);
+emit_16(1577);
+emit_16(1642);
+emit_16(1578);
+emit_16(1642);
+emit_16(1577);
+emit_16(1642);
+emit_16(1578);
+emit_16(1643);
+emit_16(1579);
+emit_16(1643);
+emit_16(1578);
+emit_16(1643);
+emit_16(1579);
+emit_16(1644);
+emit_16(1580);
+emit_16(1644);
+emit_16(1579);
+emit_16(1644);
+emit_16(1580);
+emit_16(1645);
+emit_16(1581);
+emit_16(1645);
+emit_16(1580);
+emit_16(1645);
+emit_16(1581);
+emit_16(1646);
+emit_16(1582);
+emit_16(1646);
+emit_16(1581);
+emit_16(1646);
+emit_16(1582);
+emit_16(1647);
+emit_16(1583);
+emit_16(1647);
+emit_16(1582);
+emit_16(1647);
+emit_16(1583);
+emit_16(1648);
+emit_16(1584);
+emit_16(1648);
+emit_16(1583);
+emit_16(1648);
+emit_16(1584);
+emit_16(1649);
+emit_16(1585);
+emit_16(1649);
+emit_16(1584);
+emit_16(1649);
+emit_16(1585);
+emit_16(1650);
+emit_16(1586);
+emit_16(1650);
+emit_16(1585);
+emit_16(1650);
+emit_16(1586);
+emit_16(1651);
+emit_16(1587);
+emit_16(1651);
+emit_16(1586);
+emit_16(1651);
+emit_16(1587);
+emit_16(1652);
+emit_16(1588);
+emit_16(1652);
+emit_16(1587);
+emit_16(1652);
+emit_16(1588);
+emit_16(1653);
+emit_16(1589);
+emit_16(1653);
+emit_16(1588);
+emit_16(1653);
+emit_16(1589);
+emit_16(1654);
+emit_16(1590);
+emit_16(1654);
+emit_16(1589);
+emit_16(1654);
+emit_16(1590);
+emit_16(1655);
+emit_16(1591);
+emit_16(1655);
+emit_16(1590);
+emit_16(1655);
+emit_16(1591);
+emit_16(1656);
+emit_16(1592);
+emit_16(1656);
+emit_16(1591);
+emit_16(1656);
+emit_16(1592);
+emit_16(1657);
+emit_16(1593);
+emit_16(1657);
+emit_16(1592);
+emit_16(1657);
+emit_16(1593);
+emit_16(1658);
+emit_16(1594);
+emit_16(1658);
+emit_16(1593);
+emit_16(1658);
+emit_16(1594);
+emit_16(1659);
+emit_16(1595);
+emit_16(1659);
+emit_16(1594);
+emit_16(1659);
+emit_16(1595);
+emit_16(1660);
+emit_16(1596);
+emit_16(1660);
+emit_16(1595);
+emit_16(1660);
+emit_16(1596);
+emit_16(1661);
+emit_16(1597);
+emit_16(1661);
+emit_16(1596);
+emit_16(1661);
+emit_16(1597);
+emit_16(1662);
+emit_16(1598);
+emit_16(1662);
+emit_16(1597);
+emit_16(1662);
+emit_16(1598);
+emit_16(1663);
+emit_16(1599);
+emit_16(1663);
+emit_16(1598);
+emit_16(1664);
+emit_16(1600);
+emit_16(1665);
+emit_16(1601);
+emit_16(1665);
+emit_16(1600);
+emit_16(1665);
+emit_16(1601);
+emit_16(1666);
+emit_16(1602);
+emit_16(1666);
+emit_16(1601);
+emit_16(1666);
+emit_16(1602);
+emit_16(1667);
+emit_16(1603);
+emit_16(1667);
+emit_16(1602);
+emit_16(1667);
+emit_16(1603);
+emit_16(1668);
+emit_16(1604);
+emit_16(1668);
+emit_16(1603);
+emit_16(1668);
+emit_16(1604);
+emit_16(1669);
+emit_16(1605);
+emit_16(1669);
+emit_16(1604);
+emit_16(1669);
+emit_16(1605);
+emit_16(1670);
+emit_16(1606);
+emit_16(1670);
+emit_16(1605);
+emit_16(1670);
+emit_16(1606);
+emit_16(1671);
+emit_16(1607);
+emit_16(1671);
+emit_16(1606);
+emit_16(1671);
+emit_16(1607);
+emit_16(1672);
+emit_16(1608);
+emit_16(1672);
+emit_16(1607);
+emit_16(1672);
+emit_16(1608);
+emit_16(1673);
+emit_16(1609);
+emit_16(1673);
+emit_16(1608);
+emit_16(1673);
+emit_16(1609);
+emit_16(1674);
+emit_16(1610);
+emit_16(1674);
+emit_16(1609);
+emit_16(1674);
+emit_16(1610);
+emit_16(1675);
+emit_16(1611);
+emit_16(1675);
+emit_16(1610);
+emit_16(1675);
+emit_16(1611);
+emit_16(1676);
+emit_16(1612);
+emit_16(1676);
+emit_16(1611);
+emit_16(1676);
+emit_16(1612);
+emit_16(1677);
+emit_16(1613);
+emit_16(1677);
+emit_16(1612);
+emit_16(1677);
+emit_16(1613);
+emit_16(1678);
+emit_16(1614);
+emit_16(1678);
+emit_16(1613);
+emit_16(1678);
+emit_16(1614);
+emit_16(1679);
+emit_16(1615);
+emit_16(1679);
+emit_16(1614);
+emit_16(1679);
+emit_16(1615);
+emit_16(1680);
+emit_16(1616);
+emit_16(1680);
+emit_16(1615);
+emit_16(1680);
+emit_16(1616);
+emit_16(1681);
+emit_16(1617);
+emit_16(1681);
+emit_16(1616);
+emit_16(1681);
+emit_16(1617);
+emit_16(1682);
+emit_16(1618);
+emit_16(1682);
+emit_16(1617);
+emit_16(1682);
+emit_16(1618);
+emit_16(1683);
+emit_16(1619);
+emit_16(1683);
+emit_16(1618);
+emit_16(1683);
+emit_16(1619);
+emit_16(1684);
+emit_16(1620);
+emit_16(1684);
+emit_16(1619);
+emit_16(1684);
+emit_16(1620);
+emit_16(1685);
+emit_16(1621);
+emit_16(1685);
+emit_16(1620);
+emit_16(1685);
+emit_16(1621);
+emit_16(1686);
+emit_16(1622);
+emit_16(1686);
+emit_16(1621);
+emit_16(1686);
+emit_16(1622);
+emit_16(1687);
+emit_16(1623);
+emit_16(1687);
+emit_16(1622);
+emit_16(1687);
+emit_16(1623);
+emit_16(1688);
+emit_16(1624);
+emit_16(1688);
+emit_16(1623);
+emit_16(1688);
+emit_16(1624);
+emit_16(1689);
+emit_16(1625);
+emit_16(1689);
+emit_16(1624);
+emit_16(1689);
+emit_16(1625);
+emit_16(1690);
+emit_16(1626);
+emit_16(1690);
+emit_16(1625);
+emit_16(1690);
+emit_16(1626);
+emit_16(1691);
+emit_16(1627);
+emit_16(1691);
+emit_16(1626);
+emit_16(1691);
+emit_16(1627);
+emit_16(1692);
+emit_16(1628);
+emit_16(1692);
+emit_16(1627);
+emit_16(1692);
+emit_16(1628);
+emit_16(1693);
+emit_16(1629);
+emit_16(1693);
+emit_16(1628);
+emit_16(1693);
+emit_16(1629);
+emit_16(1694);
+emit_16(1630);
+emit_16(1694);
+emit_16(1629);
+emit_16(1694);
+emit_16(1630);
+emit_16(1695);
+emit_16(1631);
+emit_16(1695);
+emit_16(1630);
+emit_16(1695);
+emit_16(1631);
+emit_16(1696);
+emit_16(1632);
+emit_16(1696);
+emit_16(1631);
+emit_16(1696);
+emit_16(1632);
+emit_16(1697);
+emit_16(1633);
+emit_16(1697);
+emit_16(1632);
+emit_16(1697);
+emit_16(1633);
+emit_16(1698);
+emit_16(1634);
+emit_16(1698);
+emit_16(1633);
+emit_16(1698);
+emit_16(1634);
+emit_16(1699);
+emit_16(1635);
+emit_16(1699);
+emit_16(1634);
+emit_16(1699);
+emit_16(1635);
+emit_16(1700);
+emit_16(1636);
+emit_16(1700);
+emit_16(1635);
+emit_16(1700);
+emit_16(1636);
+emit_16(1701);
+emit_16(1637);
+emit_16(1701);
+emit_16(1636);
+emit_16(1701);
+emit_16(1637);
+emit_16(1702);
+emit_16(1638);
+emit_16(1702);
+emit_16(1637);
+emit_16(1702);
+emit_16(1638);
+emit_16(1703);
+emit_16(1639);
+emit_16(1703);
+emit_16(1638);
+emit_16(1703);
+emit_16(1639);
+emit_16(1704);
+emit_16(1640);
+emit_16(1704);
+emit_16(1639);
+emit_16(1704);
+emit_16(1640);
+emit_16(1705);
+emit_16(1641);
+emit_16(1705);
+emit_16(1640);
+emit_16(1705);
+emit_16(1641);
+emit_16(1706);
+emit_16(1642);
+emit_16(1706);
+emit_16(1641);
+emit_16(1706);
+emit_16(1642);
+emit_16(1707);
+emit_16(1643);
+emit_16(1707);
+emit_16(1642);
+emit_16(1707);
+emit_16(1643);
+emit_16(1708);
+emit_16(1644);
+emit_16(1708);
+emit_16(1643);
+emit_16(1708);
+emit_16(1644);
+emit_16(1709);
+emit_16(1645);
+emit_16(1709);
+emit_16(1644);
+emit_16(1709);
+emit_16(1645);
+emit_16(1710);
+emit_16(1646);
+emit_16(1710);
+emit_16(1645);
+emit_16(1710);
+emit_16(1646);
+emit_16(1711);
+emit_16(1647);
+emit_16(1711);
+emit_16(1646);
+emit_16(1711);
+emit_16(1647);
+emit_16(1712);
+emit_16(1648);
+emit_16(1712);
+emit_16(1647);
+emit_16(1712);
+emit_16(1648);
+emit_16(1713);
+emit_16(1649);
+emit_16(1713);
+emit_16(1648);
+emit_16(1713);
+emit_16(1649);
+emit_16(1714);
+emit_16(1650);
+emit_16(1714);
+emit_16(1649);
+emit_16(1714);
+emit_16(1650);
+emit_16(1715);
+emit_16(1651);
+emit_16(1715);
+emit_16(1650);
+emit_16(1715);
+emit_16(1651);
+emit_16(1716);
+emit_16(1652);
+emit_16(1716);
+emit_16(1651);
+emit_16(1716);
+emit_16(1652);
+emit_16(1717);
+emit_16(1653);
+emit_16(1717);
+emit_16(1652);
+emit_16(1717);
+emit_16(1653);
+emit_16(1718);
+emit_16(1654);
+emit_16(1718);
+emit_16(1653);
+emit_16(1718);
+emit_16(1654);
+emit_16(1719);
+emit_16(1655);
+emit_16(1719);
+emit_16(1654);
+emit_16(1719);
+emit_16(1655);
+emit_16(1720);
+emit_16(1656);
+emit_16(1720);
+emit_16(1655);
+emit_16(1720);
+emit_16(1656);
+emit_16(1721);
+emit_16(1657);
+emit_16(1721);
+emit_16(1656);
+emit_16(1721);
+emit_16(1657);
+emit_16(1722);
+emit_16(1658);
+emit_16(1722);
+emit_16(1657);
+emit_16(1722);
+emit_16(1658);
+emit_16(1723);
+emit_16(1659);
+emit_16(1723);
+emit_16(1658);
+emit_16(1723);
+emit_16(1659);
+emit_16(1724);
+emit_16(1660);
+emit_16(1724);
+emit_16(1659);
+emit_16(1724);
+emit_16(1660);
+emit_16(1725);
+emit_16(1661);
+emit_16(1725);
+emit_16(1660);
+emit_16(1725);
+emit_16(1661);
+emit_16(1726);
+emit_16(1662);
+emit_16(1726);
+emit_16(1661);
+emit_16(1726);
+emit_16(1662);
+emit_16(1727);
+emit_16(1663);
+emit_16(1727);
+emit_16(1662);
+emit_16(1728);
+emit_16(1664);
+emit_16(1729);
+emit_16(1665);
+emit_16(1729);
+emit_16(1664);
+emit_16(1729);
+emit_16(1665);
+emit_16(1730);
+emit_16(1666);
+emit_16(1730);
+emit_16(1665);
+emit_16(1730);
+emit_16(1666);
+emit_16(1731);
+emit_16(1667);
+emit_16(1731);
+emit_16(1666);
+emit_16(1731);
+emit_16(1667);
+emit_16(1732);
+emit_16(1668);
+emit_16(1732);
+emit_16(1667);
+emit_16(1732);
+emit_16(1668);
+emit_16(1733);
+emit_16(1669);
+emit_16(1733);
+emit_16(1668);
+emit_16(1733);
+emit_16(1669);
+emit_16(1734);
+emit_16(1670);
+emit_16(1734);
+emit_16(1669);
+emit_16(1734);
+emit_16(1670);
+emit_16(1735);
+emit_16(1671);
+emit_16(1735);
+emit_16(1670);
+emit_16(1735);
+emit_16(1671);
+emit_16(1736);
+emit_16(1672);
+emit_16(1736);
+emit_16(1671);
+emit_16(1736);
+emit_16(1672);
+emit_16(1737);
+emit_16(1673);
+emit_16(1737);
+emit_16(1672);
+emit_16(1737);
+emit_16(1673);
+emit_16(1738);
+emit_16(1674);
+emit_16(1738);
+emit_16(1673);
+emit_16(1738);
+emit_16(1674);
+emit_16(1739);
+emit_16(1675);
+emit_16(1739);
+emit_16(1674);
+emit_16(1739);
+emit_16(1675);
+emit_16(1740);
+emit_16(1676);
+emit_16(1740);
+emit_16(1675);
+emit_16(1740);
+emit_16(1676);
+emit_16(1741);
+emit_16(1677);
+emit_16(1741);
+emit_16(1676);
+emit_16(1741);
+emit_16(1677);
+emit_16(1742);
+emit_16(1678);
+emit_16(1742);
+emit_16(1677);
+emit_16(1742);
+emit_16(1678);
+emit_16(1743);
+emit_16(1679);
+emit_16(1743);
+emit_16(1678);
+emit_16(1743);
+emit_16(1679);
+emit_16(1744);
+emit_16(1680);
+emit_16(1744);
+emit_16(1679);
+emit_16(1744);
+emit_16(1680);
+emit_16(1745);
+emit_16(1681);
+emit_16(1745);
+emit_16(1680);
+emit_16(1745);
+emit_16(1681);
+emit_16(1746);
+emit_16(1682);
+emit_16(1746);
+emit_16(1681);
+emit_16(1746);
+emit_16(1682);
+emit_16(1747);
+emit_16(1683);
+emit_16(1747);
+emit_16(1682);
+emit_16(1747);
+emit_16(1683);
+emit_16(1748);
+emit_16(1684);
+emit_16(1748);
+emit_16(1683);
+emit_16(1748);
+emit_16(1684);
+emit_16(1749);
+emit_16(1685);
+emit_16(1749);
+emit_16(1684);
+emit_16(1749);
+emit_16(1685);
+emit_16(1750);
+emit_16(1686);
+emit_16(1750);
+emit_16(1685);
+emit_16(1750);
+emit_16(1686);
+emit_16(1751);
+emit_16(1687);
+emit_16(1751);
+emit_16(1686);
+emit_16(1751);
+emit_16(1687);
+emit_16(1752);
+emit_16(1688);
+emit_16(1752);
+emit_16(1687);
+emit_16(1752);
+emit_16(1688);
+emit_16(1753);
+emit_16(1689);
+emit_16(1753);
+emit_16(1688);
+emit_16(1753);
+emit_16(1689);
+emit_16(1754);
+emit_16(1690);
+emit_16(1754);
+emit_16(1689);
+emit_16(1754);
+emit_16(1690);
+emit_16(1755);
+emit_16(1691);
+emit_16(1755);
+emit_16(1690);
+emit_16(1755);
+emit_16(1691);
+emit_16(1756);
+emit_16(1692);
+emit_16(1756);
+emit_16(1691);
+emit_16(1756);
+emit_16(1692);
+emit_16(1757);
+emit_16(1693);
+emit_16(1757);
+emit_16(1692);
+emit_16(1757);
+emit_16(1693);
+emit_16(1758);
+emit_16(1694);
+emit_16(1758);
+emit_16(1693);
+emit_16(1758);
+emit_16(1694);
+emit_16(1759);
+emit_16(1695);
+emit_16(1759);
+emit_16(1694);
+emit_16(1759);
+emit_16(1695);
+emit_16(1760);
+emit_16(1696);
+emit_16(1760);
+emit_16(1695);
+emit_16(1760);
+emit_16(1696);
+emit_16(1761);
+emit_16(1697);
+emit_16(1761);
+emit_16(1696);
+emit_16(1761);
+emit_16(1697);
+emit_16(1762);
+emit_16(1698);
+emit_16(1762);
+emit_16(1697);
+emit_16(1762);
+emit_16(1698);
+emit_16(1763);
+emit_16(1699);
+emit_16(1763);
+emit_16(1698);
+emit_16(1763);
+emit_16(1699);
+emit_16(1764);
+emit_16(1700);
+emit_16(1764);
+emit_16(1699);
+emit_16(1764);
+emit_16(1700);
+emit_16(1765);
+emit_16(1701);
+emit_16(1765);
+emit_16(1700);
+emit_16(1765);
+emit_16(1701);
+emit_16(1766);
+emit_16(1702);
+emit_16(1766);
+emit_16(1701);
+emit_16(1766);
+emit_16(1702);
+emit_16(1767);
+emit_16(1703);
+emit_16(1767);
+emit_16(1702);
+emit_16(1767);
+emit_16(1703);
+emit_16(1768);
+emit_16(1704);
+emit_16(1768);
+emit_16(1703);
+emit_16(1768);
+emit_16(1704);
+emit_16(1769);
+emit_16(1705);
+emit_16(1769);
+emit_16(1704);
+emit_16(1769);
+emit_16(1705);
+emit_16(1770);
+emit_16(1706);
+emit_16(1770);
+emit_16(1705);
+emit_16(1770);
+emit_16(1706);
+emit_16(1771);
+emit_16(1707);
+emit_16(1771);
+emit_16(1706);
+emit_16(1771);
+emit_16(1707);
+emit_16(1772);
+emit_16(1708);
+emit_16(1772);
+emit_16(1707);
+emit_16(1772);
+emit_16(1708);
+emit_16(1773);
+emit_16(1709);
+emit_16(1773);
+emit_16(1708);
+emit_16(1773);
+emit_16(1709);
+emit_16(1774);
+emit_16(1710);
+emit_16(1774);
+emit_16(1709);
+emit_16(1774);
+emit_16(1710);
+emit_16(1775);
+emit_16(1711);
+emit_16(1775);
+emit_16(1710);
+emit_16(1775);
+emit_16(1711);
+emit_16(1776);
+emit_16(1712);
+emit_16(1776);
+emit_16(1711);
+emit_16(1776);
+emit_16(1712);
+emit_16(1777);
+emit_16(1713);
+emit_16(1777);
+emit_16(1712);
+emit_16(1777);
+emit_16(1713);
+emit_16(1778);
+emit_16(1714);
+emit_16(1778);
+emit_16(1713);
+emit_16(1778);
+emit_16(1714);
+emit_16(1779);
+emit_16(1715);
+emit_16(1779);
+emit_16(1714);
+emit_16(1779);
+emit_16(1715);
+emit_16(1780);
+emit_16(1716);
+emit_16(1780);
+emit_16(1715);
+emit_16(1780);
+emit_16(1716);
+emit_16(1781);
+emit_16(1717);
+emit_16(1781);
+emit_16(1716);
+emit_16(1781);
+emit_16(1717);
+emit_16(1782);
+emit_16(1718);
+emit_16(1782);
+emit_16(1717);
+emit_16(1782);
+emit_16(1718);
+emit_16(1783);
+emit_16(1719);
+emit_16(1783);
+emit_16(1718);
+emit_16(1783);
+emit_16(1719);
+emit_16(1784);
+emit_16(1720);
+emit_16(1784);
+emit_16(1719);
+emit_16(1784);
+emit_16(1720);
+emit_16(1785);
+emit_16(1721);
+emit_16(1785);
+emit_16(1720);
+emit_16(1785);
+emit_16(1721);
+emit_16(1786);
+emit_16(1722);
+emit_16(1786);
+emit_16(1721);
+emit_16(1786);
+emit_16(1722);
+emit_16(1787);
+emit_16(1723);
+emit_16(1787);
+emit_16(1722);
+emit_16(1787);
+emit_16(1723);
+emit_16(1788);
+emit_16(1724);
+emit_16(1788);
+emit_16(1723);
+emit_16(1788);
+emit_16(1724);
+emit_16(1789);
+emit_16(1725);
+emit_16(1789);
+emit_16(1724);
+emit_16(1789);
+emit_16(1725);
+emit_16(1790);
+emit_16(1726);
+emit_16(1790);
+emit_16(1725);
+emit_16(1790);
+emit_16(1726);
+emit_16(1791);
+emit_16(1727);
+emit_16(1791);
+emit_16(1726);
+emit_16(1792);
+emit_16(1728);
+emit_16(1793);
+emit_16(1729);
+emit_16(1793);
+emit_16(1728);
+emit_16(1793);
+emit_16(1729);
+emit_16(1794);
+emit_16(1730);
+emit_16(1794);
+emit_16(1729);
+emit_16(1794);
+emit_16(1730);
+emit_16(1795);
+emit_16(1731);
+emit_16(1795);
+emit_16(1730);
+emit_16(1795);
+emit_16(1731);
+emit_16(1796);
+emit_16(1732);
+emit_16(1796);
+emit_16(1731);
+emit_16(1796);
+emit_16(1732);
+emit_16(1797);
+emit_16(1733);
+emit_16(1797);
+emit_16(1732);
+emit_16(1797);
+emit_16(1733);
+emit_16(1798);
+emit_16(1734);
+emit_16(1798);
+emit_16(1733);
+emit_16(1798);
+emit_16(1734);
+emit_16(1799);
+emit_16(1735);
+emit_16(1799);
+emit_16(1734);
+emit_16(1799);
+emit_16(1735);
+emit_16(1800);
+emit_16(1736);
+emit_16(1800);
+emit_16(1735);
+emit_16(1800);
+emit_16(1736);
+emit_16(1801);
+emit_16(1737);
+emit_16(1801);
+emit_16(1736);
+emit_16(1801);
+emit_16(1737);
+emit_16(1802);
+emit_16(1738);
+emit_16(1802);
+emit_16(1737);
+emit_16(1802);
+emit_16(1738);
+emit_16(1803);
+emit_16(1739);
+emit_16(1803);
+emit_16(1738);
+emit_16(1803);
+emit_16(1739);
+emit_16(1804);
+emit_16(1740);
+emit_16(1804);
+emit_16(1739);
+emit_16(1804);
+emit_16(1740);
+emit_16(1805);
+emit_16(1741);
+emit_16(1805);
+emit_16(1740);
+emit_16(1805);
+emit_16(1741);
+emit_16(1806);
+emit_16(1742);
+emit_16(1806);
+emit_16(1741);
+emit_16(1806);
+emit_16(1742);
+emit_16(1807);
+emit_16(1743);
+emit_16(1807);
+emit_16(1742);
+emit_16(1807);
+emit_16(1743);
+emit_16(1808);
+emit_16(1744);
+emit_16(1808);
+emit_16(1743);
+emit_16(1808);
+emit_16(1744);
+emit_16(1809);
+emit_16(1745);
+emit_16(1809);
+emit_16(1744);
+emit_16(1809);
+emit_16(1745);
+emit_16(1810);
+emit_16(1746);
+emit_16(1810);
+emit_16(1745);
+emit_16(1810);
+emit_16(1746);
+emit_16(1811);
+emit_16(1747);
+emit_16(1811);
+emit_16(1746);
+emit_16(1811);
+emit_16(1747);
+emit_16(1812);
+emit_16(1748);
+emit_16(1812);
+emit_16(1747);
+emit_16(1812);
+emit_16(1748);
+emit_16(1813);
+emit_16(1749);
+emit_16(1813);
+emit_16(1748);
+emit_16(1813);
+emit_16(1749);
+emit_16(1814);
+emit_16(1750);
+emit_16(1814);
+emit_16(1749);
+emit_16(1814);
+emit_16(1750);
+emit_16(1815);
+emit_16(1751);
+emit_16(1815);
+emit_16(1750);
+emit_16(1815);
+emit_16(1751);
+emit_16(1816);
+emit_16(1752);
+emit_16(1816);
+emit_16(1751);
+emit_16(1816);
+emit_16(1752);
+emit_16(1817);
+emit_16(1753);
+emit_16(1817);
+emit_16(1752);
+emit_16(1817);
+emit_16(1753);
+emit_16(1818);
+emit_16(1754);
+emit_16(1818);
+emit_16(1753);
+emit_16(1818);
+emit_16(1754);
+emit_16(1819);
+emit_16(1755);
+emit_16(1819);
+emit_16(1754);
+emit_16(1819);
+emit_16(1755);
+emit_16(1820);
+emit_16(1756);
+emit_16(1820);
+emit_16(1755);
+emit_16(1820);
+emit_16(1756);
+emit_16(1821);
+emit_16(1757);
+emit_16(1821);
+emit_16(1756);
+emit_16(1821);
+emit_16(1757);
+emit_16(1822);
+emit_16(1758);
+emit_16(1822);
+emit_16(1757);
+emit_16(1822);
+emit_16(1758);
+emit_16(1823);
+emit_16(1759);
+emit_16(1823);
+emit_16(1758);
+emit_16(1823);
+emit_16(1759);
+emit_16(1824);
+emit_16(1760);
+emit_16(1824);
+emit_16(1759);
+emit_16(1824);
+emit_16(1760);
+emit_16(1825);
+emit_16(1761);
+emit_16(1825);
+emit_16(1760);
+emit_16(1825);
+emit_16(1761);
+emit_16(1826);
+emit_16(1762);
+emit_16(1826);
+emit_16(1761);
+emit_16(1826);
+emit_16(1762);
+emit_16(1827);
+emit_16(1763);
+emit_16(1827);
+emit_16(1762);
+emit_16(1827);
+emit_16(1763);
+emit_16(1828);
+emit_16(1764);
+emit_16(1828);
+emit_16(1763);
+emit_16(1828);
+emit_16(1764);
+emit_16(1829);
+emit_16(1765);
+emit_16(1829);
+emit_16(1764);
+emit_16(1829);
+emit_16(1765);
+emit_16(1830);
+emit_16(1766);
+emit_16(1830);
+emit_16(1765);
+emit_16(1830);
+emit_16(1766);
+emit_16(1831);
+emit_16(1767);
+emit_16(1831);
+emit_16(1766);
+emit_16(1831);
+emit_16(1767);
+emit_16(1832);
+emit_16(1768);
+emit_16(1832);
+emit_16(1767);
+emit_16(1832);
+emit_16(1768);
+emit_16(1833);
+emit_16(1769);
+emit_16(1833);
+emit_16(1768);
+emit_16(1833);
+emit_16(1769);
+emit_16(1834);
+emit_16(1770);
+emit_16(1834);
+emit_16(1769);
+emit_16(1834);
+emit_16(1770);
+emit_16(1835);
+emit_16(1771);
+emit_16(1835);
+emit_16(1770);
+emit_16(1835);
+emit_16(1771);
+emit_16(1836);
+emit_16(1772);
+emit_16(1836);
+emit_16(1771);
+emit_16(1836);
+emit_16(1772);
+emit_16(1837);
+emit_16(1773);
+emit_16(1837);
+emit_16(1772);
+emit_16(1837);
+emit_16(1773);
+emit_16(1838);
+emit_16(1774);
+emit_16(1838);
+emit_16(1773);
+emit_16(1838);
+emit_16(1774);
+emit_16(1839);
+emit_16(1775);
+emit_16(1839);
+emit_16(1774);
+emit_16(1839);
+emit_16(1775);
+emit_16(1840);
+emit_16(1776);
+emit_16(1840);
+emit_16(1775);
+emit_16(1840);
+emit_16(1776);
+emit_16(1841);
+emit_16(1777);
+emit_16(1841);
+emit_16(1776);
+emit_16(1841);
+emit_16(1777);
+emit_16(1842);
+emit_16(1778);
+emit_16(1842);
+emit_16(1777);
+emit_16(1842);
+emit_16(1778);
+emit_16(1843);
+emit_16(1779);
+emit_16(1843);
+emit_16(1778);
+emit_16(1843);
+emit_16(1779);
+emit_16(1844);
+emit_16(1780);
+emit_16(1844);
+emit_16(1779);
+emit_16(1844);
+emit_16(1780);
+emit_16(1845);
+emit_16(1781);
+emit_16(1845);
+emit_16(1780);
+emit_16(1845);
+emit_16(1781);
+emit_16(1846);
+emit_16(1782);
+emit_16(1846);
+emit_16(1781);
+emit_16(1846);
+emit_16(1782);
+emit_16(1847);
+emit_16(1783);
+emit_16(1847);
+emit_16(1782);
+emit_16(1847);
+emit_16(1783);
+emit_16(1848);
+emit_16(1784);
+emit_16(1848);
+emit_16(1783);
+emit_16(1848);
+emit_16(1784);
+emit_16(1849);
+emit_16(1785);
+emit_16(1849);
+emit_16(1784);
+emit_16(1849);
+emit_16(1785);
+emit_16(1850);
+emit_16(1786);
+emit_16(1850);
+emit_16(1785);
+emit_16(1850);
+emit_16(1786);
+emit_16(1851);
+emit_16(1787);
+emit_16(1851);
+emit_16(1786);
+emit_16(1851);
+emit_16(1787);
+emit_16(1852);
+emit_16(1788);
+emit_16(1852);
+emit_16(1787);
+emit_16(1852);
+emit_16(1788);
+emit_16(1853);
+emit_16(1789);
+emit_16(1853);
+emit_16(1788);
+emit_16(1853);
+emit_16(1789);
+emit_16(1854);
+emit_16(1790);
+emit_16(1854);
+emit_16(1789);
+emit_16(1854);
+emit_16(1790);
+emit_16(1855);
+emit_16(1791);
+emit_16(1855);
+emit_16(1790);
+emit_16(1856);
+emit_16(1792);
+emit_16(1857);
+emit_16(1793);
+emit_16(1857);
+emit_16(1792);
+emit_16(1857);
+emit_16(1793);
+emit_16(1858);
+emit_16(1794);
+emit_16(1858);
+emit_16(1793);
+emit_16(1858);
+emit_16(1794);
+emit_16(1859);
+emit_16(1795);
+emit_16(1859);
+emit_16(1794);
+emit_16(1859);
+emit_16(1795);
+emit_16(1860);
+emit_16(1796);
+emit_16(1860);
+emit_16(1795);
+emit_16(1860);
+emit_16(1796);
+emit_16(1861);
+emit_16(1797);
+emit_16(1861);
+emit_16(1796);
+emit_16(1861);
+emit_16(1797);
+emit_16(1862);
+emit_16(1798);
+emit_16(1862);
+emit_16(1797);
+emit_16(1862);
+emit_16(1798);
+emit_16(1863);
+emit_16(1799);
+emit_16(1863);
+emit_16(1798);
+emit_16(1863);
+emit_16(1799);
+emit_16(1864);
+emit_16(1800);
+emit_16(1864);
+emit_16(1799);
+emit_16(1864);
+emit_16(1800);
+emit_16(1865);
+emit_16(1801);
+emit_16(1865);
+emit_16(1800);
+emit_16(1865);
+emit_16(1801);
+emit_16(1866);
+emit_16(1802);
+emit_16(1866);
+emit_16(1801);
+emit_16(1866);
+emit_16(1802);
+emit_16(1867);
+emit_16(1803);
+emit_16(1867);
+emit_16(1802);
+emit_16(1867);
+emit_16(1803);
+emit_16(1868);
+emit_16(1804);
+emit_16(1868);
+emit_16(1803);
+emit_16(1868);
+emit_16(1804);
+emit_16(1869);
+emit_16(1805);
+emit_16(1869);
+emit_16(1804);
+emit_16(1869);
+emit_16(1805);
+emit_16(1870);
+emit_16(1806);
+emit_16(1870);
+emit_16(1805);
+emit_16(1870);
+emit_16(1806);
+emit_16(1871);
+emit_16(1807);
+emit_16(1871);
+emit_16(1806);
+emit_16(1871);
+emit_16(1807);
+emit_16(1872);
+emit_16(1808);
+emit_16(1872);
+emit_16(1807);
+emit_16(1872);
+emit_16(1808);
+emit_16(1873);
+emit_16(1809);
+emit_16(1873);
+emit_16(1808);
+emit_16(1873);
+emit_16(1809);
+emit_16(1874);
+emit_16(1810);
+emit_16(1874);
+emit_16(1809);
+emit_16(1874);
+emit_16(1810);
+emit_16(1875);
+emit_16(1811);
+emit_16(1875);
+emit_16(1810);
+emit_16(1875);
+emit_16(1811);
+emit_16(1876);
+emit_16(1812);
+emit_16(1876);
+emit_16(1811);
+emit_16(1876);
+emit_16(1812);
+emit_16(1877);
+emit_16(1813);
+emit_16(1877);
+emit_16(1812);
+emit_16(1877);
+emit_16(1813);
+emit_16(1878);
+emit_16(1814);
+emit_16(1878);
+emit_16(1813);
+emit_16(1878);
+emit_16(1814);
+emit_16(1879);
+emit_16(1815);
+emit_16(1879);
+emit_16(1814);
+emit_16(1879);
+emit_16(1815);
+emit_16(1880);
+emit_16(1816);
+emit_16(1880);
+emit_16(1815);
+emit_16(1880);
+emit_16(1816);
+emit_16(1881);
+emit_16(1817);
+emit_16(1881);
+emit_16(1816);
+emit_16(1881);
+emit_16(1817);
+emit_16(1882);
+emit_16(1818);
+emit_16(1882);
+emit_16(1817);
+emit_16(1882);
+emit_16(1818);
+emit_16(1883);
+emit_16(1819);
+emit_16(1883);
+emit_16(1818);
+emit_16(1883);
+emit_16(1819);
+emit_16(1884);
+emit_16(1820);
+emit_16(1884);
+emit_16(1819);
+emit_16(1884);
+emit_16(1820);
+emit_16(1885);
+emit_16(1821);
+emit_16(1885);
+emit_16(1820);
+emit_16(1885);
+emit_16(1821);
+emit_16(1886);
+emit_16(1822);
+emit_16(1886);
+emit_16(1821);
+emit_16(1886);
+emit_16(1822);
+emit_16(1887);
+emit_16(1823);
+emit_16(1887);
+emit_16(1822);
+emit_16(1887);
+emit_16(1823);
+emit_16(1888);
+emit_16(1824);
+emit_16(1888);
+emit_16(1823);
+emit_16(1888);
+emit_16(1824);
+emit_16(1889);
+emit_16(1825);
+emit_16(1889);
+emit_16(1824);
+emit_16(1889);
+emit_16(1825);
+emit_16(1890);
+emit_16(1826);
+emit_16(1890);
+emit_16(1825);
+emit_16(1890);
+emit_16(1826);
+emit_16(1891);
+emit_16(1827);
+emit_16(1891);
+emit_16(1826);
+emit_16(1891);
+emit_16(1827);
+emit_16(1892);
+emit_16(1828);
+emit_16(1892);
+emit_16(1827);
+emit_16(1892);
+emit_16(1828);
+emit_16(1893);
+emit_16(1829);
+emit_16(1893);
+emit_16(1828);
+emit_16(1893);
+emit_16(1829);
+emit_16(1894);
+emit_16(1830);
+emit_16(1894);
+emit_16(1829);
+emit_16(1894);
+emit_16(1830);
+emit_16(1895);
+emit_16(1831);
+emit_16(1895);
+emit_16(1830);
+emit_16(1895);
+emit_16(1831);
+emit_16(1896);
+emit_16(1832);
+emit_16(1896);
+emit_16(1831);
+emit_16(1896);
+emit_16(1832);
+emit_16(1897);
+emit_16(1833);
+emit_16(1897);
+emit_16(1832);
+emit_16(1897);
+emit_16(1833);
+emit_16(1898);
+emit_16(1834);
+emit_16(1898);
+emit_16(1833);
+emit_16(1898);
+emit_16(1834);
+emit_16(1899);
+emit_16(1835);
+emit_16(1899);
+emit_16(1834);
+emit_16(1899);
+emit_16(1835);
+emit_16(1900);
+emit_16(1836);
+emit_16(1900);
+emit_16(1835);
+emit_16(1900);
+emit_16(1836);
+emit_16(1901);
+emit_16(1837);
+emit_16(1901);
+emit_16(1836);
+emit_16(1901);
+emit_16(1837);
+emit_16(1902);
+emit_16(1838);
+emit_16(1902);
+emit_16(1837);
+emit_16(1902);
+emit_16(1838);
+emit_16(1903);
+emit_16(1839);
+emit_16(1903);
+emit_16(1838);
+emit_16(1903);
+emit_16(1839);
+emit_16(1904);
+emit_16(1840);
+emit_16(1904);
+emit_16(1839);
+emit_16(1904);
+emit_16(1840);
+emit_16(1905);
+emit_16(1841);
+emit_16(1905);
+emit_16(1840);
+emit_16(1905);
+emit_16(1841);
+emit_16(1906);
+emit_16(1842);
+emit_16(1906);
+emit_16(1841);
+emit_16(1906);
+emit_16(1842);
+emit_16(1907);
+emit_16(1843);
+emit_16(1907);
+emit_16(1842);
+emit_16(1907);
+emit_16(1843);
+emit_16(1908);
+emit_16(1844);
+emit_16(1908);
+emit_16(1843);
+emit_16(1908);
+emit_16(1844);
+emit_16(1909);
+emit_16(1845);
+emit_16(1909);
+emit_16(1844);
+emit_16(1909);
+emit_16(1845);
+emit_16(1910);
+emit_16(1846);
+emit_16(1910);
+emit_16(1845);
+emit_16(1910);
+emit_16(1846);
+emit_16(1911);
+emit_16(1847);
+emit_16(1911);
+emit_16(1846);
+emit_16(1911);
+emit_16(1847);
+emit_16(1912);
+emit_16(1848);
+emit_16(1912);
+emit_16(1847);
+emit_16(1912);
+emit_16(1848);
+emit_16(1913);
+emit_16(1849);
+emit_16(1913);
+emit_16(1848);
+emit_16(1913);
+emit_16(1849);
+emit_16(1914);
+emit_16(1850);
+emit_16(1914);
+emit_16(1849);
+emit_16(1914);
+emit_16(1850);
+emit_16(1915);
+emit_16(1851);
+emit_16(1915);
+emit_16(1850);
+emit_16(1915);
+emit_16(1851);
+emit_16(1916);
+emit_16(1852);
+emit_16(1916);
+emit_16(1851);
+emit_16(1916);
+emit_16(1852);
+emit_16(1917);
+emit_16(1853);
+emit_16(1917);
+emit_16(1852);
+emit_16(1917);
+emit_16(1853);
+emit_16(1918);
+emit_16(1854);
+emit_16(1918);
+emit_16(1853);
+emit_16(1918);
+emit_16(1854);
+emit_16(1919);
+emit_16(1855);
+emit_16(1919);
+emit_16(1854);
+emit_16(1920);
+emit_16(1856);
+emit_16(1921);
+emit_16(1857);
+emit_16(1921);
+emit_16(1856);
+emit_16(1921);
+emit_16(1857);
+emit_16(1922);
+emit_16(1858);
+emit_16(1922);
+emit_16(1857);
+emit_16(1922);
+emit_16(1858);
+emit_16(1923);
+emit_16(1859);
+emit_16(1923);
+emit_16(1858);
+emit_16(1923);
+emit_16(1859);
+emit_16(1924);
+emit_16(1860);
+emit_16(1924);
+emit_16(1859);
+emit_16(1924);
+emit_16(1860);
+emit_16(1925);
+emit_16(1861);
+emit_16(1925);
+emit_16(1860);
+emit_16(1925);
+emit_16(1861);
+emit_16(1926);
+emit_16(1862);
+emit_16(1926);
+emit_16(1861);
+emit_16(1926);
+emit_16(1862);
+emit_16(1927);
+emit_16(1863);
+emit_16(1927);
+emit_16(1862);
+emit_16(1927);
+emit_16(1863);
+emit_16(1928);
+emit_16(1864);
+emit_16(1928);
+emit_16(1863);
+emit_16(1928);
+emit_16(1864);
+emit_16(1929);
+emit_16(1865);
+emit_16(1929);
+emit_16(1864);
+emit_16(1929);
+emit_16(1865);
+emit_16(1930);
+emit_16(1866);
+emit_16(1930);
+emit_16(1865);
+emit_16(1930);
+emit_16(1866);
+emit_16(1931);
+emit_16(1867);
+emit_16(1931);
+emit_16(1866);
+emit_16(1931);
+emit_16(1867);
+emit_16(1932);
+emit_16(1868);
+emit_16(1932);
+emit_16(1867);
+emit_16(1932);
+emit_16(1868);
+emit_16(1933);
+emit_16(1869);
+emit_16(1933);
+emit_16(1868);
+emit_16(1933);
+emit_16(1869);
+emit_16(1934);
+emit_16(1870);
+emit_16(1934);
+emit_16(1869);
+emit_16(1934);
+emit_16(1870);
+emit_16(1935);
+emit_16(1871);
+emit_16(1935);
+emit_16(1870);
+emit_16(1935);
+emit_16(1871);
+emit_16(1936);
+emit_16(1872);
+emit_16(1936);
+emit_16(1871);
+emit_16(1936);
+emit_16(1872);
+emit_16(1937);
+emit_16(1873);
+emit_16(1937);
+emit_16(1872);
+emit_16(1937);
+emit_16(1873);
+emit_16(1938);
+emit_16(1874);
+emit_16(1938);
+emit_16(1873);
+emit_16(1938);
+emit_16(1874);
+emit_16(1939);
+emit_16(1875);
+emit_16(1939);
+emit_16(1874);
+emit_16(1939);
+emit_16(1875);
+emit_16(1940);
+emit_16(1876);
+emit_16(1940);
+emit_16(1875);
+emit_16(1940);
+emit_16(1876);
+emit_16(1941);
+emit_16(1877);
+emit_16(1941);
+emit_16(1876);
+emit_16(1941);
+emit_16(1877);
+emit_16(1942);
+emit_16(1878);
+emit_16(1942);
+emit_16(1877);
+emit_16(1942);
+emit_16(1878);
+emit_16(1943);
+emit_16(1879);
+emit_16(1943);
+emit_16(1878);
+emit_16(1943);
+emit_16(1879);
+emit_16(1944);
+emit_16(1880);
+emit_16(1944);
+emit_16(1879);
+emit_16(1944);
+emit_16(1880);
+emit_16(1945);
+emit_16(1881);
+emit_16(1945);
+emit_16(1880);
+emit_16(1945);
+emit_16(1881);
+emit_16(1946);
+emit_16(1882);
+emit_16(1946);
+emit_16(1881);
+emit_16(1946);
+emit_16(1882);
+emit_16(1947);
+emit_16(1883);
+emit_16(1947);
+emit_16(1882);
+emit_16(1947);
+emit_16(1883);
+emit_16(1948);
+emit_16(1884);
+emit_16(1948);
+emit_16(1883);
+emit_16(1948);
+emit_16(1884);
+emit_16(1949);
+emit_16(1885);
+emit_16(1949);
+emit_16(1884);
+emit_16(1949);
+emit_16(1885);
+emit_16(1950);
+emit_16(1886);
+emit_16(1950);
+emit_16(1885);
+emit_16(1950);
+emit_16(1886);
+emit_16(1951);
+emit_16(1887);
+emit_16(1951);
+emit_16(1886);
+emit_16(1951);
+emit_16(1887);
+emit_16(1952);
+emit_16(1888);
+emit_16(1952);
+emit_16(1887);
+emit_16(1952);
+emit_16(1888);
+emit_16(1953);
+emit_16(1889);
+emit_16(1953);
+emit_16(1888);
+emit_16(1953);
+emit_16(1889);
+emit_16(1954);
+emit_16(1890);
+emit_16(1954);
+emit_16(1889);
+emit_16(1954);
+emit_16(1890);
+emit_16(1955);
+emit_16(1891);
+emit_16(1955);
+emit_16(1890);
+emit_16(1955);
+emit_16(1891);
+emit_16(1956);
+emit_16(1892);
+emit_16(1956);
+emit_16(1891);
+emit_16(1956);
+emit_16(1892);
+emit_16(1957);
+emit_16(1893);
+emit_16(1957);
+emit_16(1892);
+emit_16(1957);
+emit_16(1893);
+emit_16(1958);
+emit_16(1894);
+emit_16(1958);
+emit_16(1893);
+emit_16(1958);
+emit_16(1894);
+emit_16(1959);
+emit_16(1895);
+emit_16(1959);
+emit_16(1894);
+emit_16(1959);
+emit_16(1895);
+emit_16(1960);
+emit_16(1896);
+emit_16(1960);
+emit_16(1895);
+emit_16(1960);
+emit_16(1896);
+emit_16(1961);
+emit_16(1897);
+emit_16(1961);
+emit_16(1896);
+emit_16(1961);
+emit_16(1897);
+emit_16(1962);
+emit_16(1898);
+emit_16(1962);
+emit_16(1897);
+emit_16(1962);
+emit_16(1898);
+emit_16(1963);
+emit_16(1899);
+emit_16(1963);
+emit_16(1898);
+emit_16(1963);
+emit_16(1899);
+emit_16(1964);
+emit_16(1900);
+emit_16(1964);
+emit_16(1899);
+emit_16(1964);
+emit_16(1900);
+emit_16(1965);
+emit_16(1901);
+emit_16(1965);
+emit_16(1900);
+emit_16(1965);
+emit_16(1901);
+emit_16(1966);
+emit_16(1902);
+emit_16(1966);
+emit_16(1901);
+emit_16(1966);
+emit_16(1902);
+emit_16(1967);
+emit_16(1903);
+emit_16(1967);
+emit_16(1902);
+emit_16(1967);
+emit_16(1903);
+emit_16(1968);
+emit_16(1904);
+emit_16(1968);
+emit_16(1903);
+emit_16(1968);
+emit_16(1904);
+emit_16(1969);
+emit_16(1905);
+emit_16(1969);
+emit_16(1904);
+emit_16(1969);
+emit_16(1905);
+emit_16(1970);
+emit_16(1906);
+emit_16(1970);
+emit_16(1905);
+emit_16(1970);
+emit_16(1906);
+emit_16(1971);
+emit_16(1907);
+emit_16(1971);
+emit_16(1906);
+emit_16(1971);
+emit_16(1907);
+emit_16(1972);
+emit_16(1908);
+emit_16(1972);
+emit_16(1907);
+emit_16(1972);
+emit_16(1908);
+emit_16(1973);
+emit_16(1909);
+emit_16(1973);
+emit_16(1908);
+emit_16(1973);
+emit_16(1909);
+emit_16(1974);
+emit_16(1910);
+emit_16(1974);
+emit_16(1909);
+emit_16(1974);
+emit_16(1910);
+emit_16(1975);
+emit_16(1911);
+emit_16(1975);
+emit_16(1910);
+emit_16(1975);
+emit_16(1911);
+emit_16(1976);
+emit_16(1912);
+emit_16(1976);
+emit_16(1911);
+emit_16(1976);
+emit_16(1912);
+emit_16(1977);
+emit_16(1913);
+emit_16(1977);
+emit_16(1912);
+emit_16(1977);
+emit_16(1913);
+emit_16(1978);
+emit_16(1914);
+emit_16(1978);
+emit_16(1913);
+emit_16(1978);
+emit_16(1914);
+emit_16(1979);
+emit_16(1915);
+emit_16(1979);
+emit_16(1914);
+emit_16(1979);
+emit_16(1915);
+emit_16(1980);
+emit_16(1916);
+emit_16(1980);
+emit_16(1915);
+emit_16(1980);
+emit_16(1916);
+emit_16(1981);
+emit_16(1917);
+emit_16(1981);
+emit_16(1916);
+emit_16(1981);
+emit_16(1917);
+emit_16(1982);
+emit_16(1918);
+emit_16(1982);
+emit_16(1917);
+emit_16(1982);
+emit_16(1918);
+emit_16(1983);
+emit_16(1919);
+emit_16(1983);
+emit_16(1918);
+emit_16(1984);
+emit_16(1920);
+emit_16(1985);
+emit_16(1921);
+emit_16(1985);
+emit_16(1920);
+emit_16(1985);
+emit_16(1921);
+emit_16(1986);
+emit_16(1922);
+emit_16(1986);
+emit_16(1921);
+emit_16(1986);
+emit_16(1922);
+emit_16(1987);
+emit_16(1923);
+emit_16(1987);
+emit_16(1922);
+emit_16(1987);
+emit_16(1923);
+emit_16(1988);
+emit_16(1924);
+emit_16(1988);
+emit_16(1923);
+emit_16(1988);
+emit_16(1924);
+emit_16(1989);
+emit_16(1925);
+emit_16(1989);
+emit_16(1924);
+emit_16(1989);
+emit_16(1925);
+emit_16(1990);
+emit_16(1926);
+emit_16(1990);
+emit_16(1925);
+emit_16(1990);
+emit_16(1926);
+emit_16(1991);
+emit_16(1927);
+emit_16(1991);
+emit_16(1926);
+emit_16(1991);
+emit_16(1927);
+emit_16(1992);
+emit_16(1928);
+emit_16(1992);
+emit_16(1927);
+emit_16(1992);
+emit_16(1928);
+emit_16(1993);
+emit_16(1929);
+emit_16(1993);
+emit_16(1928);
+emit_16(1993);
+emit_16(1929);
+emit_16(1994);
+emit_16(1930);
+emit_16(1994);
+emit_16(1929);
+emit_16(1994);
+emit_16(1930);
+emit_16(1995);
+emit_16(1931);
+emit_16(1995);
+emit_16(1930);
+emit_16(1995);
+emit_16(1931);
+emit_16(1996);
+emit_16(1932);
+emit_16(1996);
+emit_16(1931);
+emit_16(1996);
+emit_16(1932);
+emit_16(1997);
+emit_16(1933);
+emit_16(1997);
+emit_16(1932);
+emit_16(1997);
+emit_16(1933);
+emit_16(1998);
+emit_16(1934);
+emit_16(1998);
+emit_16(1933);
+emit_16(1998);
+emit_16(1934);
+emit_16(1999);
+emit_16(1935);
+emit_16(1999);
+emit_16(1934);
+emit_16(1999);
+emit_16(1935);
+emit_16(2000);
+emit_16(1936);
+emit_16(2000);
+emit_16(1935);
+emit_16(2000);
+emit_16(1936);
+emit_16(2001);
+emit_16(1937);
+emit_16(2001);
+emit_16(1936);
+emit_16(2001);
+emit_16(1937);
+emit_16(2002);
+emit_16(1938);
+emit_16(2002);
+emit_16(1937);
+emit_16(2002);
+emit_16(1938);
+emit_16(2003);
+emit_16(1939);
+emit_16(2003);
+emit_16(1938);
+emit_16(2003);
+emit_16(1939);
+emit_16(2004);
+emit_16(1940);
+emit_16(2004);
+emit_16(1939);
+emit_16(2004);
+emit_16(1940);
+emit_16(2005);
+emit_16(1941);
+emit_16(2005);
+emit_16(1940);
+emit_16(2005);
+emit_16(1941);
+emit_16(2006);
+emit_16(1942);
+emit_16(2006);
+emit_16(1941);
+emit_16(2006);
+emit_16(1942);
+emit_16(2007);
+emit_16(1943);
+emit_16(2007);
+emit_16(1942);
+emit_16(2007);
+emit_16(1943);
+emit_16(2008);
+emit_16(1944);
+emit_16(2008);
+emit_16(1943);
+emit_16(2008);
+emit_16(1944);
+emit_16(2009);
+emit_16(1945);
+emit_16(2009);
+emit_16(1944);
+emit_16(2009);
+emit_16(1945);
+emit_16(2010);
+emit_16(1946);
+emit_16(2010);
+emit_16(1945);
+emit_16(2010);
+emit_16(1946);
+emit_16(2011);
+emit_16(1947);
+emit_16(2011);
+emit_16(1946);
+emit_16(2011);
+emit_16(1947);
+emit_16(2012);
+emit_16(1948);
+emit_16(2012);
+emit_16(1947);
+emit_16(2012);
+emit_16(1948);
+emit_16(2013);
+emit_16(1949);
+emit_16(2013);
+emit_16(1948);
+emit_16(2013);
+emit_16(1949);
+emit_16(2014);
+emit_16(1950);
+emit_16(2014);
+emit_16(1949);
+emit_16(2014);
+emit_16(1950);
+emit_16(2015);
+emit_16(1951);
+emit_16(2015);
+emit_16(1950);
+emit_16(2015);
+emit_16(1951);
+emit_16(2016);
+emit_16(1952);
+emit_16(2016);
+emit_16(1951);
+emit_16(2016);
+emit_16(1952);
+emit_16(2017);
+emit_16(1953);
+emit_16(2017);
+emit_16(1952);
+emit_16(2017);
+emit_16(1953);
+emit_16(2018);
+emit_16(1954);
+emit_16(2018);
+emit_16(1953);
+emit_16(2018);
+emit_16(1954);
+emit_16(2019);
+emit_16(1955);
+emit_16(2019);
+emit_16(1954);
+emit_16(2019);
+emit_16(1955);
+emit_16(2020);
+emit_16(1956);
+emit_16(2020);
+emit_16(1955);
+emit_16(2020);
+emit_16(1956);
+emit_16(2021);
+emit_16(1957);
+emit_16(2021);
+emit_16(1956);
+emit_16(2021);
+emit_16(1957);
+emit_16(2022);
+emit_16(1958);
+emit_16(2022);
+emit_16(1957);
+emit_16(2022);
+emit_16(1958);
+emit_16(2023);
+emit_16(1959);
+emit_16(2023);
+emit_16(1958);
+emit_16(2023);
+emit_16(1959);
+emit_16(2024);
+emit_16(1960);
+emit_16(2024);
+emit_16(1959);
+emit_16(2024);
+emit_16(1960);
+emit_16(2025);
+emit_16(1961);
+emit_16(2025);
+emit_16(1960);
+emit_16(2025);
+emit_16(1961);
+emit_16(2026);
+emit_16(1962);
+emit_16(2026);
+emit_16(1961);
+emit_16(2026);
+emit_16(1962);
+emit_16(2027);
+emit_16(1963);
+emit_16(2027);
+emit_16(1962);
+emit_16(2027);
+emit_16(1963);
+emit_16(2028);
+emit_16(1964);
+emit_16(2028);
+emit_16(1963);
+emit_16(2028);
+emit_16(1964);
+emit_16(2029);
+emit_16(1965);
+emit_16(2029);
+emit_16(1964);
+emit_16(2029);
+emit_16(1965);
+emit_16(2030);
+emit_16(1966);
+emit_16(2030);
+emit_16(1965);
+emit_16(2030);
+emit_16(1966);
+emit_16(2031);
+emit_16(1967);
+emit_16(2031);
+emit_16(1966);
+emit_16(2031);
+emit_16(1967);
+emit_16(2032);
+emit_16(1968);
+emit_16(2032);
+emit_16(1967);
+emit_16(2032);
+emit_16(1968);
+emit_16(2033);
+emit_16(1969);
+emit_16(2033);
+emit_16(1968);
+emit_16(2033);
+emit_16(1969);
+emit_16(2034);
+emit_16(1970);
+emit_16(2034);
+emit_16(1969);
+emit_16(2034);
+emit_16(1970);
+emit_16(2035);
+emit_16(1971);
+emit_16(2035);
+emit_16(1970);
+emit_16(2035);
+emit_16(1971);
+emit_16(2036);
+emit_16(1972);
+emit_16(2036);
+emit_16(1971);
+emit_16(2036);
+emit_16(1972);
+emit_16(2037);
+emit_16(1973);
+emit_16(2037);
+emit_16(1972);
+emit_16(2037);
+emit_16(1973);
+emit_16(2038);
+emit_16(1974);
+emit_16(2038);
+emit_16(1973);
+emit_16(2038);
+emit_16(1974);
+emit_16(2039);
+emit_16(1975);
+emit_16(2039);
+emit_16(1974);
+emit_16(2039);
+emit_16(1975);
+emit_16(2040);
+emit_16(1976);
+emit_16(2040);
+emit_16(1975);
+emit_16(2040);
+emit_16(1976);
+emit_16(2041);
+emit_16(1977);
+emit_16(2041);
+emit_16(1976);
+emit_16(2041);
+emit_16(1977);
+emit_16(2042);
+emit_16(1978);
+emit_16(2042);
+emit_16(1977);
+emit_16(2042);
+emit_16(1978);
+emit_16(2043);
+emit_16(1979);
+emit_16(2043);
+emit_16(1978);
+emit_16(2043);
+emit_16(1979);
+emit_16(2044);
+emit_16(1980);
+emit_16(2044);
+emit_16(1979);
+emit_16(2044);
+emit_16(1980);
+emit_16(2045);
+emit_16(1981);
+emit_16(2045);
+emit_16(1980);
+emit_16(2045);
+emit_16(1981);
+emit_16(2046);
+emit_16(1982);
+emit_16(2046);
+emit_16(1981);
+emit_16(2046);
+emit_16(1982);
+emit_16(2047);
+emit_16(1983);
+emit_16(2047);
+emit_16(1982);
+emit_start(Landscape04Idx)
+emit_16(0);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(2);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(4);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(6);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(8);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(10);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(12);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(14);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(16);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(18);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(20);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(22);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(24);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(26);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(28);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(30);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(32);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(34);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(36);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(38);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(40);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(42);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(44);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(46);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(48);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(50);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(52);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(54);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(56);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(58);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(60);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(62);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(64);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(66);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(68);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(70);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(72);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(74);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(76);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(78);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(80);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(82);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(84);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(86);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(88);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(90);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(92);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(94);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(96);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(98);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(100);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(102);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(104);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(106);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(108);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(110);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(112);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(114);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(116);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(118);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(120);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(122);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(124);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(126);
+emit_16(125);
+emit_16(128);
+emit_16(0);
+emit_16(129);
+emit_16(2);
+emit_16(129);
+emit_16(0);
+emit_16(129);
+emit_16(2);
+emit_16(130);
+emit_16(4);
+emit_16(130);
+emit_16(2);
+emit_16(130);
+emit_16(4);
+emit_16(131);
+emit_16(6);
+emit_16(131);
+emit_16(4);
+emit_16(131);
+emit_16(6);
+emit_16(132);
+emit_16(8);
+emit_16(132);
+emit_16(6);
+emit_16(132);
+emit_16(8);
+emit_16(133);
+emit_16(10);
+emit_16(133);
+emit_16(8);
+emit_16(133);
+emit_16(10);
+emit_16(134);
+emit_16(12);
+emit_16(134);
+emit_16(10);
+emit_16(134);
+emit_16(12);
+emit_16(135);
+emit_16(14);
+emit_16(135);
+emit_16(12);
+emit_16(135);
+emit_16(14);
+emit_16(136);
+emit_16(16);
+emit_16(136);
+emit_16(14);
+emit_16(136);
+emit_16(16);
+emit_16(137);
+emit_16(18);
+emit_16(137);
+emit_16(16);
+emit_16(137);
+emit_16(18);
+emit_16(138);
+emit_16(20);
+emit_16(138);
+emit_16(18);
+emit_16(138);
+emit_16(20);
+emit_16(139);
+emit_16(22);
+emit_16(139);
+emit_16(20);
+emit_16(139);
+emit_16(22);
+emit_16(140);
+emit_16(24);
+emit_16(140);
+emit_16(22);
+emit_16(140);
+emit_16(24);
+emit_16(141);
+emit_16(26);
+emit_16(141);
+emit_16(24);
+emit_16(141);
+emit_16(26);
+emit_16(142);
+emit_16(28);
+emit_16(142);
+emit_16(26);
+emit_16(142);
+emit_16(28);
+emit_16(143);
+emit_16(30);
+emit_16(143);
+emit_16(28);
+emit_16(143);
+emit_16(30);
+emit_16(144);
+emit_16(32);
+emit_16(144);
+emit_16(30);
+emit_16(144);
+emit_16(32);
+emit_16(145);
+emit_16(34);
+emit_16(145);
+emit_16(32);
+emit_16(145);
+emit_16(34);
+emit_16(146);
+emit_16(36);
+emit_16(146);
+emit_16(34);
+emit_16(146);
+emit_16(36);
+emit_16(147);
+emit_16(38);
+emit_16(147);
+emit_16(36);
+emit_16(147);
+emit_16(38);
+emit_16(148);
+emit_16(40);
+emit_16(148);
+emit_16(38);
+emit_16(148);
+emit_16(40);
+emit_16(149);
+emit_16(42);
+emit_16(149);
+emit_16(40);
+emit_16(149);
+emit_16(42);
+emit_16(150);
+emit_16(44);
+emit_16(150);
+emit_16(42);
+emit_16(150);
+emit_16(44);
+emit_16(151);
+emit_16(46);
+emit_16(151);
+emit_16(44);
+emit_16(151);
+emit_16(46);
+emit_16(152);
+emit_16(48);
+emit_16(152);
+emit_16(46);
+emit_16(152);
+emit_16(48);
+emit_16(153);
+emit_16(50);
+emit_16(153);
+emit_16(48);
+emit_16(153);
+emit_16(50);
+emit_16(154);
+emit_16(52);
+emit_16(154);
+emit_16(50);
+emit_16(154);
+emit_16(52);
+emit_16(155);
+emit_16(54);
+emit_16(155);
+emit_16(52);
+emit_16(155);
+emit_16(54);
+emit_16(156);
+emit_16(56);
+emit_16(156);
+emit_16(54);
+emit_16(156);
+emit_16(56);
+emit_16(157);
+emit_16(58);
+emit_16(157);
+emit_16(56);
+emit_16(157);
+emit_16(58);
+emit_16(158);
+emit_16(60);
+emit_16(158);
+emit_16(58);
+emit_16(158);
+emit_16(60);
+emit_16(159);
+emit_16(62);
+emit_16(159);
+emit_16(60);
+emit_16(159);
+emit_16(62);
+emit_16(160);
+emit_16(64);
+emit_16(160);
+emit_16(62);
+emit_16(160);
+emit_16(64);
+emit_16(161);
+emit_16(66);
+emit_16(161);
+emit_16(64);
+emit_16(161);
+emit_16(66);
+emit_16(162);
+emit_16(68);
+emit_16(162);
+emit_16(66);
+emit_16(162);
+emit_16(68);
+emit_16(163);
+emit_16(70);
+emit_16(163);
+emit_16(68);
+emit_16(163);
+emit_16(70);
+emit_16(164);
+emit_16(72);
+emit_16(164);
+emit_16(70);
+emit_16(164);
+emit_16(72);
+emit_16(165);
+emit_16(74);
+emit_16(165);
+emit_16(72);
+emit_16(165);
+emit_16(74);
+emit_16(166);
+emit_16(76);
+emit_16(166);
+emit_16(74);
+emit_16(166);
+emit_16(76);
+emit_16(167);
+emit_16(78);
+emit_16(167);
+emit_16(76);
+emit_16(167);
+emit_16(78);
+emit_16(168);
+emit_16(80);
+emit_16(168);
+emit_16(78);
+emit_16(168);
+emit_16(80);
+emit_16(169);
+emit_16(82);
+emit_16(169);
+emit_16(80);
+emit_16(169);
+emit_16(82);
+emit_16(170);
+emit_16(84);
+emit_16(170);
+emit_16(82);
+emit_16(170);
+emit_16(84);
+emit_16(171);
+emit_16(86);
+emit_16(171);
+emit_16(84);
+emit_16(171);
+emit_16(86);
+emit_16(172);
+emit_16(88);
+emit_16(172);
+emit_16(86);
+emit_16(172);
+emit_16(88);
+emit_16(173);
+emit_16(90);
+emit_16(173);
+emit_16(88);
+emit_16(173);
+emit_16(90);
+emit_16(174);
+emit_16(92);
+emit_16(174);
+emit_16(90);
+emit_16(174);
+emit_16(92);
+emit_16(175);
+emit_16(94);
+emit_16(175);
+emit_16(92);
+emit_16(175);
+emit_16(94);
+emit_16(176);
+emit_16(96);
+emit_16(176);
+emit_16(94);
+emit_16(176);
+emit_16(96);
+emit_16(177);
+emit_16(98);
+emit_16(177);
+emit_16(96);
+emit_16(177);
+emit_16(98);
+emit_16(178);
+emit_16(100);
+emit_16(178);
+emit_16(98);
+emit_16(178);
+emit_16(100);
+emit_16(179);
+emit_16(102);
+emit_16(179);
+emit_16(100);
+emit_16(179);
+emit_16(102);
+emit_16(180);
+emit_16(104);
+emit_16(180);
+emit_16(102);
+emit_16(180);
+emit_16(104);
+emit_16(181);
+emit_16(106);
+emit_16(181);
+emit_16(104);
+emit_16(181);
+emit_16(106);
+emit_16(182);
+emit_16(108);
+emit_16(182);
+emit_16(106);
+emit_16(182);
+emit_16(108);
+emit_16(183);
+emit_16(110);
+emit_16(183);
+emit_16(108);
+emit_16(183);
+emit_16(110);
+emit_16(184);
+emit_16(112);
+emit_16(184);
+emit_16(110);
+emit_16(184);
+emit_16(112);
+emit_16(185);
+emit_16(114);
+emit_16(185);
+emit_16(112);
+emit_16(185);
+emit_16(114);
+emit_16(186);
+emit_16(116);
+emit_16(186);
+emit_16(114);
+emit_16(186);
+emit_16(116);
+emit_16(187);
+emit_16(118);
+emit_16(187);
+emit_16(116);
+emit_16(187);
+emit_16(118);
+emit_16(188);
+emit_16(120);
+emit_16(188);
+emit_16(118);
+emit_16(188);
+emit_16(120);
+emit_16(189);
+emit_16(122);
+emit_16(189);
+emit_16(120);
+emit_16(189);
+emit_16(122);
+emit_16(190);
+emit_16(124);
+emit_16(190);
+emit_16(122);
+emit_16(190);
+emit_16(124);
+emit_16(191);
+emit_16(126);
+emit_16(191);
+emit_16(124);
+emit_16(192);
+emit_16(128);
+emit_16(193);
+emit_16(129);
+emit_16(193);
+emit_16(128);
+emit_16(193);
+emit_16(129);
+emit_16(194);
+emit_16(130);
+emit_16(194);
+emit_16(129);
+emit_16(194);
+emit_16(130);
+emit_16(195);
+emit_16(131);
+emit_16(195);
+emit_16(130);
+emit_16(195);
+emit_16(131);
+emit_16(196);
+emit_16(132);
+emit_16(196);
+emit_16(131);
+emit_16(196);
+emit_16(132);
+emit_16(197);
+emit_16(133);
+emit_16(197);
+emit_16(132);
+emit_16(197);
+emit_16(133);
+emit_16(198);
+emit_16(134);
+emit_16(198);
+emit_16(133);
+emit_16(198);
+emit_16(134);
+emit_16(199);
+emit_16(135);
+emit_16(199);
+emit_16(134);
+emit_16(199);
+emit_16(135);
+emit_16(200);
+emit_16(136);
+emit_16(200);
+emit_16(135);
+emit_16(200);
+emit_16(136);
+emit_16(201);
+emit_16(137);
+emit_16(201);
+emit_16(136);
+emit_16(201);
+emit_16(137);
+emit_16(202);
+emit_16(138);
+emit_16(202);
+emit_16(137);
+emit_16(202);
+emit_16(138);
+emit_16(203);
+emit_16(139);
+emit_16(203);
+emit_16(138);
+emit_16(203);
+emit_16(139);
+emit_16(204);
+emit_16(140);
+emit_16(204);
+emit_16(139);
+emit_16(204);
+emit_16(140);
+emit_16(205);
+emit_16(141);
+emit_16(205);
+emit_16(140);
+emit_16(205);
+emit_16(141);
+emit_16(206);
+emit_16(142);
+emit_16(206);
+emit_16(141);
+emit_16(206);
+emit_16(142);
+emit_16(207);
+emit_16(143);
+emit_16(207);
+emit_16(142);
+emit_16(207);
+emit_16(143);
+emit_16(208);
+emit_16(144);
+emit_16(208);
+emit_16(143);
+emit_16(208);
+emit_16(144);
+emit_16(209);
+emit_16(145);
+emit_16(209);
+emit_16(144);
+emit_16(209);
+emit_16(145);
+emit_16(210);
+emit_16(146);
+emit_16(210);
+emit_16(145);
+emit_16(210);
+emit_16(146);
+emit_16(211);
+emit_16(147);
+emit_16(211);
+emit_16(146);
+emit_16(211);
+emit_16(147);
+emit_16(212);
+emit_16(148);
+emit_16(212);
+emit_16(147);
+emit_16(212);
+emit_16(148);
+emit_16(213);
+emit_16(149);
+emit_16(213);
+emit_16(148);
+emit_16(213);
+emit_16(149);
+emit_16(214);
+emit_16(150);
+emit_16(214);
+emit_16(149);
+emit_16(214);
+emit_16(150);
+emit_16(215);
+emit_16(151);
+emit_16(215);
+emit_16(150);
+emit_16(215);
+emit_16(151);
+emit_16(216);
+emit_16(152);
+emit_16(216);
+emit_16(151);
+emit_16(216);
+emit_16(152);
+emit_16(217);
+emit_16(153);
+emit_16(217);
+emit_16(152);
+emit_16(217);
+emit_16(153);
+emit_16(218);
+emit_16(154);
+emit_16(218);
+emit_16(153);
+emit_16(218);
+emit_16(154);
+emit_16(219);
+emit_16(155);
+emit_16(219);
+emit_16(154);
+emit_16(219);
+emit_16(155);
+emit_16(220);
+emit_16(156);
+emit_16(220);
+emit_16(155);
+emit_16(220);
+emit_16(156);
+emit_16(221);
+emit_16(157);
+emit_16(221);
+emit_16(156);
+emit_16(221);
+emit_16(157);
+emit_16(222);
+emit_16(158);
+emit_16(222);
+emit_16(157);
+emit_16(222);
+emit_16(158);
+emit_16(223);
+emit_16(159);
+emit_16(223);
+emit_16(158);
+emit_16(223);
+emit_16(159);
+emit_16(224);
+emit_16(160);
+emit_16(224);
+emit_16(159);
+emit_16(224);
+emit_16(160);
+emit_16(225);
+emit_16(161);
+emit_16(225);
+emit_16(160);
+emit_16(225);
+emit_16(161);
+emit_16(226);
+emit_16(162);
+emit_16(226);
+emit_16(161);
+emit_16(226);
+emit_16(162);
+emit_16(227);
+emit_16(163);
+emit_16(227);
+emit_16(162);
+emit_16(227);
+emit_16(163);
+emit_16(228);
+emit_16(164);
+emit_16(228);
+emit_16(163);
+emit_16(228);
+emit_16(164);
+emit_16(229);
+emit_16(165);
+emit_16(229);
+emit_16(164);
+emit_16(229);
+emit_16(165);
+emit_16(230);
+emit_16(166);
+emit_16(230);
+emit_16(165);
+emit_16(230);
+emit_16(166);
+emit_16(231);
+emit_16(167);
+emit_16(231);
+emit_16(166);
+emit_16(231);
+emit_16(167);
+emit_16(232);
+emit_16(168);
+emit_16(232);
+emit_16(167);
+emit_16(232);
+emit_16(168);
+emit_16(233);
+emit_16(169);
+emit_16(233);
+emit_16(168);
+emit_16(233);
+emit_16(169);
+emit_16(234);
+emit_16(170);
+emit_16(234);
+emit_16(169);
+emit_16(234);
+emit_16(170);
+emit_16(235);
+emit_16(171);
+emit_16(235);
+emit_16(170);
+emit_16(235);
+emit_16(171);
+emit_16(236);
+emit_16(172);
+emit_16(236);
+emit_16(171);
+emit_16(236);
+emit_16(172);
+emit_16(237);
+emit_16(173);
+emit_16(237);
+emit_16(172);
+emit_16(237);
+emit_16(173);
+emit_16(238);
+emit_16(174);
+emit_16(238);
+emit_16(173);
+emit_16(238);
+emit_16(174);
+emit_16(239);
+emit_16(175);
+emit_16(239);
+emit_16(174);
+emit_16(239);
+emit_16(175);
+emit_16(240);
+emit_16(176);
+emit_16(240);
+emit_16(175);
+emit_16(240);
+emit_16(176);
+emit_16(241);
+emit_16(177);
+emit_16(241);
+emit_16(176);
+emit_16(241);
+emit_16(177);
+emit_16(242);
+emit_16(178);
+emit_16(242);
+emit_16(177);
+emit_16(242);
+emit_16(178);
+emit_16(243);
+emit_16(179);
+emit_16(243);
+emit_16(178);
+emit_16(243);
+emit_16(179);
+emit_16(244);
+emit_16(180);
+emit_16(244);
+emit_16(179);
+emit_16(244);
+emit_16(180);
+emit_16(245);
+emit_16(181);
+emit_16(245);
+emit_16(180);
+emit_16(245);
+emit_16(181);
+emit_16(246);
+emit_16(182);
+emit_16(246);
+emit_16(181);
+emit_16(246);
+emit_16(182);
+emit_16(247);
+emit_16(183);
+emit_16(247);
+emit_16(182);
+emit_16(247);
+emit_16(183);
+emit_16(248);
+emit_16(184);
+emit_16(248);
+emit_16(183);
+emit_16(248);
+emit_16(184);
+emit_16(249);
+emit_16(185);
+emit_16(249);
+emit_16(184);
+emit_16(249);
+emit_16(185);
+emit_16(250);
+emit_16(186);
+emit_16(250);
+emit_16(185);
+emit_16(250);
+emit_16(186);
+emit_16(251);
+emit_16(187);
+emit_16(251);
+emit_16(186);
+emit_16(251);
+emit_16(187);
+emit_16(252);
+emit_16(188);
+emit_16(252);
+emit_16(187);
+emit_16(252);
+emit_16(188);
+emit_16(253);
+emit_16(189);
+emit_16(253);
+emit_16(188);
+emit_16(253);
+emit_16(189);
+emit_16(254);
+emit_16(190);
+emit_16(254);
+emit_16(189);
+emit_16(254);
+emit_16(190);
+emit_16(255);
+emit_16(191);
+emit_16(255);
+emit_16(190);
+emit_16(256);
+emit_16(192);
+emit_16(257);
+emit_16(193);
+emit_16(257);
+emit_16(192);
+emit_16(257);
+emit_16(193);
+emit_16(258);
+emit_16(194);
+emit_16(258);
+emit_16(193);
+emit_16(258);
+emit_16(194);
+emit_16(259);
+emit_16(195);
+emit_16(259);
+emit_16(194);
+emit_16(259);
+emit_16(195);
+emit_16(260);
+emit_16(196);
+emit_16(260);
+emit_16(195);
+emit_16(260);
+emit_16(196);
+emit_16(261);
+emit_16(197);
+emit_16(261);
+emit_16(196);
+emit_16(261);
+emit_16(197);
+emit_16(262);
+emit_16(198);
+emit_16(262);
+emit_16(197);
+emit_16(262);
+emit_16(198);
+emit_16(263);
+emit_16(199);
+emit_16(263);
+emit_16(198);
+emit_16(263);
+emit_16(199);
+emit_16(264);
+emit_16(200);
+emit_16(264);
+emit_16(199);
+emit_16(264);
+emit_16(200);
+emit_16(265);
+emit_16(201);
+emit_16(265);
+emit_16(200);
+emit_16(265);
+emit_16(201);
+emit_16(266);
+emit_16(202);
+emit_16(266);
+emit_16(201);
+emit_16(266);
+emit_16(202);
+emit_16(267);
+emit_16(203);
+emit_16(267);
+emit_16(202);
+emit_16(267);
+emit_16(203);
+emit_16(268);
+emit_16(204);
+emit_16(268);
+emit_16(203);
+emit_16(268);
+emit_16(204);
+emit_16(269);
+emit_16(205);
+emit_16(269);
+emit_16(204);
+emit_16(269);
+emit_16(205);
+emit_16(270);
+emit_16(206);
+emit_16(270);
+emit_16(205);
+emit_16(270);
+emit_16(206);
+emit_16(271);
+emit_16(207);
+emit_16(271);
+emit_16(206);
+emit_16(271);
+emit_16(207);
+emit_16(272);
+emit_16(208);
+emit_16(272);
+emit_16(207);
+emit_16(272);
+emit_16(208);
+emit_16(273);
+emit_16(209);
+emit_16(273);
+emit_16(208);
+emit_16(273);
+emit_16(209);
+emit_16(274);
+emit_16(210);
+emit_16(274);
+emit_16(209);
+emit_16(274);
+emit_16(210);
+emit_16(275);
+emit_16(211);
+emit_16(275);
+emit_16(210);
+emit_16(275);
+emit_16(211);
+emit_16(276);
+emit_16(212);
+emit_16(276);
+emit_16(211);
+emit_16(276);
+emit_16(212);
+emit_16(277);
+emit_16(213);
+emit_16(277);
+emit_16(212);
+emit_16(277);
+emit_16(213);
+emit_16(278);
+emit_16(214);
+emit_16(278);
+emit_16(213);
+emit_16(278);
+emit_16(214);
+emit_16(279);
+emit_16(215);
+emit_16(279);
+emit_16(214);
+emit_16(279);
+emit_16(215);
+emit_16(280);
+emit_16(216);
+emit_16(280);
+emit_16(215);
+emit_16(280);
+emit_16(216);
+emit_16(281);
+emit_16(217);
+emit_16(281);
+emit_16(216);
+emit_16(281);
+emit_16(217);
+emit_16(282);
+emit_16(218);
+emit_16(282);
+emit_16(217);
+emit_16(282);
+emit_16(218);
+emit_16(283);
+emit_16(219);
+emit_16(283);
+emit_16(218);
+emit_16(283);
+emit_16(219);
+emit_16(284);
+emit_16(220);
+emit_16(284);
+emit_16(219);
+emit_16(284);
+emit_16(220);
+emit_16(285);
+emit_16(221);
+emit_16(285);
+emit_16(220);
+emit_16(285);
+emit_16(221);
+emit_16(286);
+emit_16(222);
+emit_16(286);
+emit_16(221);
+emit_16(286);
+emit_16(222);
+emit_16(287);
+emit_16(223);
+emit_16(287);
+emit_16(222);
+emit_16(287);
+emit_16(223);
+emit_16(288);
+emit_16(224);
+emit_16(288);
+emit_16(223);
+emit_16(288);
+emit_16(224);
+emit_16(289);
+emit_16(225);
+emit_16(289);
+emit_16(224);
+emit_16(289);
+emit_16(225);
+emit_16(290);
+emit_16(226);
+emit_16(290);
+emit_16(225);
+emit_16(290);
+emit_16(226);
+emit_16(291);
+emit_16(227);
+emit_16(291);
+emit_16(226);
+emit_16(291);
+emit_16(227);
+emit_16(292);
+emit_16(228);
+emit_16(292);
+emit_16(227);
+emit_16(292);
+emit_16(228);
+emit_16(293);
+emit_16(229);
+emit_16(293);
+emit_16(228);
+emit_16(293);
+emit_16(229);
+emit_16(294);
+emit_16(230);
+emit_16(294);
+emit_16(229);
+emit_16(294);
+emit_16(230);
+emit_16(295);
+emit_16(231);
+emit_16(295);
+emit_16(230);
+emit_16(295);
+emit_16(231);
+emit_16(296);
+emit_16(232);
+emit_16(296);
+emit_16(231);
+emit_16(296);
+emit_16(232);
+emit_16(297);
+emit_16(233);
+emit_16(297);
+emit_16(232);
+emit_16(297);
+emit_16(233);
+emit_16(298);
+emit_16(234);
+emit_16(298);
+emit_16(233);
+emit_16(298);
+emit_16(234);
+emit_16(299);
+emit_16(235);
+emit_16(299);
+emit_16(234);
+emit_16(299);
+emit_16(235);
+emit_16(300);
+emit_16(236);
+emit_16(300);
+emit_16(235);
+emit_16(300);
+emit_16(236);
+emit_16(301);
+emit_16(237);
+emit_16(301);
+emit_16(236);
+emit_16(301);
+emit_16(237);
+emit_16(302);
+emit_16(238);
+emit_16(302);
+emit_16(237);
+emit_16(302);
+emit_16(238);
+emit_16(303);
+emit_16(239);
+emit_16(303);
+emit_16(238);
+emit_16(303);
+emit_16(239);
+emit_16(304);
+emit_16(240);
+emit_16(304);
+emit_16(239);
+emit_16(304);
+emit_16(240);
+emit_16(305);
+emit_16(241);
+emit_16(305);
+emit_16(240);
+emit_16(305);
+emit_16(241);
+emit_16(306);
+emit_16(242);
+emit_16(306);
+emit_16(241);
+emit_16(306);
+emit_16(242);
+emit_16(307);
+emit_16(243);
+emit_16(307);
+emit_16(242);
+emit_16(307);
+emit_16(243);
+emit_16(308);
+emit_16(244);
+emit_16(308);
+emit_16(243);
+emit_16(308);
+emit_16(244);
+emit_16(309);
+emit_16(245);
+emit_16(309);
+emit_16(244);
+emit_16(309);
+emit_16(245);
+emit_16(310);
+emit_16(246);
+emit_16(310);
+emit_16(245);
+emit_16(310);
+emit_16(246);
+emit_16(311);
+emit_16(247);
+emit_16(311);
+emit_16(246);
+emit_16(311);
+emit_16(247);
+emit_16(312);
+emit_16(248);
+emit_16(312);
+emit_16(247);
+emit_16(312);
+emit_16(248);
+emit_16(313);
+emit_16(249);
+emit_16(313);
+emit_16(248);
+emit_16(313);
+emit_16(249);
+emit_16(314);
+emit_16(250);
+emit_16(314);
+emit_16(249);
+emit_16(314);
+emit_16(250);
+emit_16(315);
+emit_16(251);
+emit_16(315);
+emit_16(250);
+emit_16(315);
+emit_16(251);
+emit_16(316);
+emit_16(252);
+emit_16(316);
+emit_16(251);
+emit_16(316);
+emit_16(252);
+emit_16(317);
+emit_16(253);
+emit_16(317);
+emit_16(252);
+emit_16(317);
+emit_16(253);
+emit_16(318);
+emit_16(254);
+emit_16(318);
+emit_16(253);
+emit_16(318);
+emit_16(254);
+emit_16(319);
+emit_16(255);
+emit_16(319);
+emit_16(254);
+emit_16(320);
+emit_16(256);
+emit_16(321);
+emit_16(257);
+emit_16(321);
+emit_16(256);
+emit_16(321);
+emit_16(257);
+emit_16(322);
+emit_16(258);
+emit_16(322);
+emit_16(257);
+emit_16(322);
+emit_16(258);
+emit_16(323);
+emit_16(259);
+emit_16(323);
+emit_16(258);
+emit_16(323);
+emit_16(259);
+emit_16(324);
+emit_16(260);
+emit_16(324);
+emit_16(259);
+emit_16(324);
+emit_16(260);
+emit_16(325);
+emit_16(261);
+emit_16(325);
+emit_16(260);
+emit_16(325);
+emit_16(261);
+emit_16(326);
+emit_16(262);
+emit_16(326);
+emit_16(261);
+emit_16(326);
+emit_16(262);
+emit_16(327);
+emit_16(263);
+emit_16(327);
+emit_16(262);
+emit_16(327);
+emit_16(263);
+emit_16(328);
+emit_16(264);
+emit_16(328);
+emit_16(263);
+emit_16(328);
+emit_16(264);
+emit_16(329);
+emit_16(265);
+emit_16(329);
+emit_16(264);
+emit_16(329);
+emit_16(265);
+emit_16(330);
+emit_16(266);
+emit_16(330);
+emit_16(265);
+emit_16(330);
+emit_16(266);
+emit_16(331);
+emit_16(267);
+emit_16(331);
+emit_16(266);
+emit_16(331);
+emit_16(267);
+emit_16(332);
+emit_16(268);
+emit_16(332);
+emit_16(267);
+emit_16(332);
+emit_16(268);
+emit_16(333);
+emit_16(269);
+emit_16(333);
+emit_16(268);
+emit_16(333);
+emit_16(269);
+emit_16(334);
+emit_16(270);
+emit_16(334);
+emit_16(269);
+emit_16(334);
+emit_16(270);
+emit_16(335);
+emit_16(271);
+emit_16(335);
+emit_16(270);
+emit_16(335);
+emit_16(271);
+emit_16(336);
+emit_16(272);
+emit_16(336);
+emit_16(271);
+emit_16(336);
+emit_16(272);
+emit_16(337);
+emit_16(273);
+emit_16(337);
+emit_16(272);
+emit_16(337);
+emit_16(273);
+emit_16(338);
+emit_16(274);
+emit_16(338);
+emit_16(273);
+emit_16(338);
+emit_16(274);
+emit_16(339);
+emit_16(275);
+emit_16(339);
+emit_16(274);
+emit_16(339);
+emit_16(275);
+emit_16(340);
+emit_16(276);
+emit_16(340);
+emit_16(275);
+emit_16(340);
+emit_16(276);
+emit_16(341);
+emit_16(277);
+emit_16(341);
+emit_16(276);
+emit_16(341);
+emit_16(277);
+emit_16(342);
+emit_16(278);
+emit_16(342);
+emit_16(277);
+emit_16(342);
+emit_16(278);
+emit_16(343);
+emit_16(279);
+emit_16(343);
+emit_16(278);
+emit_16(343);
+emit_16(279);
+emit_16(344);
+emit_16(280);
+emit_16(344);
+emit_16(279);
+emit_16(344);
+emit_16(280);
+emit_16(345);
+emit_16(281);
+emit_16(345);
+emit_16(280);
+emit_16(345);
+emit_16(281);
+emit_16(346);
+emit_16(282);
+emit_16(346);
+emit_16(281);
+emit_16(346);
+emit_16(282);
+emit_16(347);
+emit_16(283);
+emit_16(347);
+emit_16(282);
+emit_16(347);
+emit_16(283);
+emit_16(348);
+emit_16(284);
+emit_16(348);
+emit_16(283);
+emit_16(348);
+emit_16(284);
+emit_16(349);
+emit_16(285);
+emit_16(349);
+emit_16(284);
+emit_16(349);
+emit_16(285);
+emit_16(350);
+emit_16(286);
+emit_16(350);
+emit_16(285);
+emit_16(350);
+emit_16(286);
+emit_16(351);
+emit_16(287);
+emit_16(351);
+emit_16(286);
+emit_16(351);
+emit_16(287);
+emit_16(352);
+emit_16(288);
+emit_16(352);
+emit_16(287);
+emit_16(352);
+emit_16(288);
+emit_16(353);
+emit_16(289);
+emit_16(353);
+emit_16(288);
+emit_16(353);
+emit_16(289);
+emit_16(354);
+emit_16(290);
+emit_16(354);
+emit_16(289);
+emit_16(354);
+emit_16(290);
+emit_16(355);
+emit_16(291);
+emit_16(355);
+emit_16(290);
+emit_16(355);
+emit_16(291);
+emit_16(356);
+emit_16(292);
+emit_16(356);
+emit_16(291);
+emit_16(356);
+emit_16(292);
+emit_16(357);
+emit_16(293);
+emit_16(357);
+emit_16(292);
+emit_16(357);
+emit_16(293);
+emit_16(358);
+emit_16(294);
+emit_16(358);
+emit_16(293);
+emit_16(358);
+emit_16(294);
+emit_16(359);
+emit_16(295);
+emit_16(359);
+emit_16(294);
+emit_16(359);
+emit_16(295);
+emit_16(360);
+emit_16(296);
+emit_16(360);
+emit_16(295);
+emit_16(360);
+emit_16(296);
+emit_16(361);
+emit_16(297);
+emit_16(361);
+emit_16(296);
+emit_16(361);
+emit_16(297);
+emit_16(362);
+emit_16(298);
+emit_16(362);
+emit_16(297);
+emit_16(362);
+emit_16(298);
+emit_16(363);
+emit_16(299);
+emit_16(363);
+emit_16(298);
+emit_16(363);
+emit_16(299);
+emit_16(364);
+emit_16(300);
+emit_16(364);
+emit_16(299);
+emit_16(364);
+emit_16(300);
+emit_16(365);
+emit_16(301);
+emit_16(365);
+emit_16(300);
+emit_16(365);
+emit_16(301);
+emit_16(366);
+emit_16(302);
+emit_16(366);
+emit_16(301);
+emit_16(366);
+emit_16(302);
+emit_16(367);
+emit_16(303);
+emit_16(367);
+emit_16(302);
+emit_16(367);
+emit_16(303);
+emit_16(368);
+emit_16(304);
+emit_16(368);
+emit_16(303);
+emit_16(368);
+emit_16(304);
+emit_16(369);
+emit_16(305);
+emit_16(369);
+emit_16(304);
+emit_16(369);
+emit_16(305);
+emit_16(370);
+emit_16(306);
+emit_16(370);
+emit_16(305);
+emit_16(370);
+emit_16(306);
+emit_16(371);
+emit_16(307);
+emit_16(371);
+emit_16(306);
+emit_16(371);
+emit_16(307);
+emit_16(372);
+emit_16(308);
+emit_16(372);
+emit_16(307);
+emit_16(372);
+emit_16(308);
+emit_16(373);
+emit_16(309);
+emit_16(373);
+emit_16(308);
+emit_16(373);
+emit_16(309);
+emit_16(374);
+emit_16(310);
+emit_16(374);
+emit_16(309);
+emit_16(374);
+emit_16(310);
+emit_16(375);
+emit_16(311);
+emit_16(375);
+emit_16(310);
+emit_16(375);
+emit_16(311);
+emit_16(376);
+emit_16(312);
+emit_16(376);
+emit_16(311);
+emit_16(376);
+emit_16(312);
+emit_16(377);
+emit_16(313);
+emit_16(377);
+emit_16(312);
+emit_16(377);
+emit_16(313);
+emit_16(378);
+emit_16(314);
+emit_16(378);
+emit_16(313);
+emit_16(378);
+emit_16(314);
+emit_16(379);
+emit_16(315);
+emit_16(379);
+emit_16(314);
+emit_16(379);
+emit_16(315);
+emit_16(380);
+emit_16(316);
+emit_16(380);
+emit_16(315);
+emit_16(380);
+emit_16(316);
+emit_16(381);
+emit_16(317);
+emit_16(381);
+emit_16(316);
+emit_16(381);
+emit_16(317);
+emit_16(382);
+emit_16(318);
+emit_16(382);
+emit_16(317);
+emit_16(382);
+emit_16(318);
+emit_16(383);
+emit_16(319);
+emit_16(383);
+emit_16(318);
+emit_16(384);
+emit_16(320);
+emit_16(385);
+emit_16(321);
+emit_16(385);
+emit_16(320);
+emit_16(385);
+emit_16(321);
+emit_16(386);
+emit_16(322);
+emit_16(386);
+emit_16(321);
+emit_16(386);
+emit_16(322);
+emit_16(387);
+emit_16(323);
+emit_16(387);
+emit_16(322);
+emit_16(387);
+emit_16(323);
+emit_16(388);
+emit_16(324);
+emit_16(388);
+emit_16(323);
+emit_16(388);
+emit_16(324);
+emit_16(389);
+emit_16(325);
+emit_16(389);
+emit_16(324);
+emit_16(389);
+emit_16(325);
+emit_16(390);
+emit_16(326);
+emit_16(390);
+emit_16(325);
+emit_16(390);
+emit_16(326);
+emit_16(391);
+emit_16(327);
+emit_16(391);
+emit_16(326);
+emit_16(391);
+emit_16(327);
+emit_16(392);
+emit_16(328);
+emit_16(392);
+emit_16(327);
+emit_16(392);
+emit_16(328);
+emit_16(393);
+emit_16(329);
+emit_16(393);
+emit_16(328);
+emit_16(393);
+emit_16(329);
+emit_16(394);
+emit_16(330);
+emit_16(394);
+emit_16(329);
+emit_16(394);
+emit_16(330);
+emit_16(395);
+emit_16(331);
+emit_16(395);
+emit_16(330);
+emit_16(395);
+emit_16(331);
+emit_16(396);
+emit_16(332);
+emit_16(396);
+emit_16(331);
+emit_16(396);
+emit_16(332);
+emit_16(397);
+emit_16(333);
+emit_16(397);
+emit_16(332);
+emit_16(397);
+emit_16(333);
+emit_16(398);
+emit_16(334);
+emit_16(398);
+emit_16(333);
+emit_16(398);
+emit_16(334);
+emit_16(399);
+emit_16(335);
+emit_16(399);
+emit_16(334);
+emit_16(399);
+emit_16(335);
+emit_16(400);
+emit_16(336);
+emit_16(400);
+emit_16(335);
+emit_16(400);
+emit_16(336);
+emit_16(401);
+emit_16(337);
+emit_16(401);
+emit_16(336);
+emit_16(401);
+emit_16(337);
+emit_16(402);
+emit_16(338);
+emit_16(402);
+emit_16(337);
+emit_16(402);
+emit_16(338);
+emit_16(403);
+emit_16(339);
+emit_16(403);
+emit_16(338);
+emit_16(403);
+emit_16(339);
+emit_16(404);
+emit_16(340);
+emit_16(404);
+emit_16(339);
+emit_16(404);
+emit_16(340);
+emit_16(405);
+emit_16(341);
+emit_16(405);
+emit_16(340);
+emit_16(405);
+emit_16(341);
+emit_16(406);
+emit_16(342);
+emit_16(406);
+emit_16(341);
+emit_16(406);
+emit_16(342);
+emit_16(407);
+emit_16(343);
+emit_16(407);
+emit_16(342);
+emit_16(407);
+emit_16(343);
+emit_16(408);
+emit_16(344);
+emit_16(408);
+emit_16(343);
+emit_16(408);
+emit_16(344);
+emit_16(409);
+emit_16(345);
+emit_16(409);
+emit_16(344);
+emit_16(409);
+emit_16(345);
+emit_16(410);
+emit_16(346);
+emit_16(410);
+emit_16(345);
+emit_16(410);
+emit_16(346);
+emit_16(411);
+emit_16(347);
+emit_16(411);
+emit_16(346);
+emit_16(411);
+emit_16(347);
+emit_16(412);
+emit_16(348);
+emit_16(412);
+emit_16(347);
+emit_16(412);
+emit_16(348);
+emit_16(413);
+emit_16(349);
+emit_16(413);
+emit_16(348);
+emit_16(413);
+emit_16(349);
+emit_16(414);
+emit_16(350);
+emit_16(414);
+emit_16(349);
+emit_16(414);
+emit_16(350);
+emit_16(415);
+emit_16(351);
+emit_16(415);
+emit_16(350);
+emit_16(415);
+emit_16(351);
+emit_16(416);
+emit_16(352);
+emit_16(416);
+emit_16(351);
+emit_16(416);
+emit_16(352);
+emit_16(417);
+emit_16(353);
+emit_16(417);
+emit_16(352);
+emit_16(417);
+emit_16(353);
+emit_16(418);
+emit_16(354);
+emit_16(418);
+emit_16(353);
+emit_16(418);
+emit_16(354);
+emit_16(419);
+emit_16(355);
+emit_16(419);
+emit_16(354);
+emit_16(419);
+emit_16(355);
+emit_16(420);
+emit_16(356);
+emit_16(420);
+emit_16(355);
+emit_16(420);
+emit_16(356);
+emit_16(421);
+emit_16(357);
+emit_16(421);
+emit_16(356);
+emit_16(421);
+emit_16(357);
+emit_16(422);
+emit_16(358);
+emit_16(422);
+emit_16(357);
+emit_16(422);
+emit_16(358);
+emit_16(423);
+emit_16(359);
+emit_16(423);
+emit_16(358);
+emit_16(423);
+emit_16(359);
+emit_16(424);
+emit_16(360);
+emit_16(424);
+emit_16(359);
+emit_16(424);
+emit_16(360);
+emit_16(425);
+emit_16(361);
+emit_16(425);
+emit_16(360);
+emit_16(425);
+emit_16(361);
+emit_16(426);
+emit_16(362);
+emit_16(426);
+emit_16(361);
+emit_16(426);
+emit_16(362);
+emit_16(427);
+emit_16(363);
+emit_16(427);
+emit_16(362);
+emit_16(427);
+emit_16(363);
+emit_16(428);
+emit_16(364);
+emit_16(428);
+emit_16(363);
+emit_16(428);
+emit_16(364);
+emit_16(429);
+emit_16(365);
+emit_16(429);
+emit_16(364);
+emit_16(429);
+emit_16(365);
+emit_16(430);
+emit_16(366);
+emit_16(430);
+emit_16(365);
+emit_16(430);
+emit_16(366);
+emit_16(431);
+emit_16(367);
+emit_16(431);
+emit_16(366);
+emit_16(431);
+emit_16(367);
+emit_16(432);
+emit_16(368);
+emit_16(432);
+emit_16(367);
+emit_16(432);
+emit_16(368);
+emit_16(433);
+emit_16(369);
+emit_16(433);
+emit_16(368);
+emit_16(433);
+emit_16(369);
+emit_16(434);
+emit_16(370);
+emit_16(434);
+emit_16(369);
+emit_16(434);
+emit_16(370);
+emit_16(435);
+emit_16(371);
+emit_16(435);
+emit_16(370);
+emit_16(435);
+emit_16(371);
+emit_16(436);
+emit_16(372);
+emit_16(436);
+emit_16(371);
+emit_16(436);
+emit_16(372);
+emit_16(437);
+emit_16(373);
+emit_16(437);
+emit_16(372);
+emit_16(437);
+emit_16(373);
+emit_16(438);
+emit_16(374);
+emit_16(438);
+emit_16(373);
+emit_16(438);
+emit_16(374);
+emit_16(439);
+emit_16(375);
+emit_16(439);
+emit_16(374);
+emit_16(439);
+emit_16(375);
+emit_16(440);
+emit_16(376);
+emit_16(440);
+emit_16(375);
+emit_16(440);
+emit_16(376);
+emit_16(441);
+emit_16(377);
+emit_16(441);
+emit_16(376);
+emit_16(441);
+emit_16(377);
+emit_16(442);
+emit_16(378);
+emit_16(442);
+emit_16(377);
+emit_16(442);
+emit_16(378);
+emit_16(443);
+emit_16(379);
+emit_16(443);
+emit_16(378);
+emit_16(443);
+emit_16(379);
+emit_16(444);
+emit_16(380);
+emit_16(444);
+emit_16(379);
+emit_16(444);
+emit_16(380);
+emit_16(445);
+emit_16(381);
+emit_16(445);
+emit_16(380);
+emit_16(445);
+emit_16(381);
+emit_16(446);
+emit_16(382);
+emit_16(446);
+emit_16(381);
+emit_16(446);
+emit_16(382);
+emit_16(447);
+emit_16(383);
+emit_16(447);
+emit_16(382);
+emit_16(448);
+emit_16(384);
+emit_16(449);
+emit_16(385);
+emit_16(449);
+emit_16(384);
+emit_16(449);
+emit_16(385);
+emit_16(450);
+emit_16(386);
+emit_16(450);
+emit_16(385);
+emit_16(450);
+emit_16(386);
+emit_16(451);
+emit_16(387);
+emit_16(451);
+emit_16(386);
+emit_16(451);
+emit_16(387);
+emit_16(452);
+emit_16(388);
+emit_16(452);
+emit_16(387);
+emit_16(452);
+emit_16(388);
+emit_16(453);
+emit_16(389);
+emit_16(453);
+emit_16(388);
+emit_16(453);
+emit_16(389);
+emit_16(454);
+emit_16(390);
+emit_16(454);
+emit_16(389);
+emit_16(454);
+emit_16(390);
+emit_16(455);
+emit_16(391);
+emit_16(455);
+emit_16(390);
+emit_16(455);
+emit_16(391);
+emit_16(456);
+emit_16(392);
+emit_16(456);
+emit_16(391);
+emit_16(456);
+emit_16(392);
+emit_16(457);
+emit_16(393);
+emit_16(457);
+emit_16(392);
+emit_16(457);
+emit_16(393);
+emit_16(458);
+emit_16(394);
+emit_16(458);
+emit_16(393);
+emit_16(458);
+emit_16(394);
+emit_16(459);
+emit_16(395);
+emit_16(459);
+emit_16(394);
+emit_16(459);
+emit_16(395);
+emit_16(460);
+emit_16(396);
+emit_16(460);
+emit_16(395);
+emit_16(460);
+emit_16(396);
+emit_16(461);
+emit_16(397);
+emit_16(461);
+emit_16(396);
+emit_16(461);
+emit_16(397);
+emit_16(462);
+emit_16(398);
+emit_16(462);
+emit_16(397);
+emit_16(462);
+emit_16(398);
+emit_16(463);
+emit_16(399);
+emit_16(463);
+emit_16(398);
+emit_16(463);
+emit_16(399);
+emit_16(464);
+emit_16(400);
+emit_16(464);
+emit_16(399);
+emit_16(464);
+emit_16(400);
+emit_16(465);
+emit_16(401);
+emit_16(465);
+emit_16(400);
+emit_16(465);
+emit_16(401);
+emit_16(466);
+emit_16(402);
+emit_16(466);
+emit_16(401);
+emit_16(466);
+emit_16(402);
+emit_16(467);
+emit_16(403);
+emit_16(467);
+emit_16(402);
+emit_16(467);
+emit_16(403);
+emit_16(468);
+emit_16(404);
+emit_16(468);
+emit_16(403);
+emit_16(468);
+emit_16(404);
+emit_16(469);
+emit_16(405);
+emit_16(469);
+emit_16(404);
+emit_16(469);
+emit_16(405);
+emit_16(470);
+emit_16(406);
+emit_16(470);
+emit_16(405);
+emit_16(470);
+emit_16(406);
+emit_16(471);
+emit_16(407);
+emit_16(471);
+emit_16(406);
+emit_16(471);
+emit_16(407);
+emit_16(472);
+emit_16(408);
+emit_16(472);
+emit_16(407);
+emit_16(472);
+emit_16(408);
+emit_16(473);
+emit_16(409);
+emit_16(473);
+emit_16(408);
+emit_16(473);
+emit_16(409);
+emit_16(474);
+emit_16(410);
+emit_16(474);
+emit_16(409);
+emit_16(474);
+emit_16(410);
+emit_16(475);
+emit_16(411);
+emit_16(475);
+emit_16(410);
+emit_16(475);
+emit_16(411);
+emit_16(476);
+emit_16(412);
+emit_16(476);
+emit_16(411);
+emit_16(476);
+emit_16(412);
+emit_16(477);
+emit_16(413);
+emit_16(477);
+emit_16(412);
+emit_16(477);
+emit_16(413);
+emit_16(478);
+emit_16(414);
+emit_16(478);
+emit_16(413);
+emit_16(478);
+emit_16(414);
+emit_16(479);
+emit_16(415);
+emit_16(479);
+emit_16(414);
+emit_16(479);
+emit_16(415);
+emit_16(480);
+emit_16(416);
+emit_16(480);
+emit_16(415);
+emit_16(480);
+emit_16(416);
+emit_16(481);
+emit_16(417);
+emit_16(481);
+emit_16(416);
+emit_16(481);
+emit_16(417);
+emit_16(482);
+emit_16(418);
+emit_16(482);
+emit_16(417);
+emit_16(482);
+emit_16(418);
+emit_16(483);
+emit_16(419);
+emit_16(483);
+emit_16(418);
+emit_16(483);
+emit_16(419);
+emit_16(484);
+emit_16(420);
+emit_16(484);
+emit_16(419);
+emit_16(484);
+emit_16(420);
+emit_16(485);
+emit_16(421);
+emit_16(485);
+emit_16(420);
+emit_16(485);
+emit_16(421);
+emit_16(486);
+emit_16(422);
+emit_16(486);
+emit_16(421);
+emit_16(486);
+emit_16(422);
+emit_16(487);
+emit_16(423);
+emit_16(487);
+emit_16(422);
+emit_16(487);
+emit_16(423);
+emit_16(488);
+emit_16(424);
+emit_16(488);
+emit_16(423);
+emit_16(488);
+emit_16(424);
+emit_16(489);
+emit_16(425);
+emit_16(489);
+emit_16(424);
+emit_16(489);
+emit_16(425);
+emit_16(490);
+emit_16(426);
+emit_16(490);
+emit_16(425);
+emit_16(490);
+emit_16(426);
+emit_16(491);
+emit_16(427);
+emit_16(491);
+emit_16(426);
+emit_16(491);
+emit_16(427);
+emit_16(492);
+emit_16(428);
+emit_16(492);
+emit_16(427);
+emit_16(492);
+emit_16(428);
+emit_16(493);
+emit_16(429);
+emit_16(493);
+emit_16(428);
+emit_16(493);
+emit_16(429);
+emit_16(494);
+emit_16(430);
+emit_16(494);
+emit_16(429);
+emit_16(494);
+emit_16(430);
+emit_16(495);
+emit_16(431);
+emit_16(495);
+emit_16(430);
+emit_16(495);
+emit_16(431);
+emit_16(496);
+emit_16(432);
+emit_16(496);
+emit_16(431);
+emit_16(496);
+emit_16(432);
+emit_16(497);
+emit_16(433);
+emit_16(497);
+emit_16(432);
+emit_16(497);
+emit_16(433);
+emit_16(498);
+emit_16(434);
+emit_16(498);
+emit_16(433);
+emit_16(498);
+emit_16(434);
+emit_16(499);
+emit_16(435);
+emit_16(499);
+emit_16(434);
+emit_16(499);
+emit_16(435);
+emit_16(500);
+emit_16(436);
+emit_16(500);
+emit_16(435);
+emit_16(500);
+emit_16(436);
+emit_16(501);
+emit_16(437);
+emit_16(501);
+emit_16(436);
+emit_16(501);
+emit_16(437);
+emit_16(502);
+emit_16(438);
+emit_16(502);
+emit_16(437);
+emit_16(502);
+emit_16(438);
+emit_16(503);
+emit_16(439);
+emit_16(503);
+emit_16(438);
+emit_16(503);
+emit_16(439);
+emit_16(504);
+emit_16(440);
+emit_16(504);
+emit_16(439);
+emit_16(504);
+emit_16(440);
+emit_16(505);
+emit_16(441);
+emit_16(505);
+emit_16(440);
+emit_16(505);
+emit_16(441);
+emit_16(506);
+emit_16(442);
+emit_16(506);
+emit_16(441);
+emit_16(506);
+emit_16(442);
+emit_16(507);
+emit_16(443);
+emit_16(507);
+emit_16(442);
+emit_16(507);
+emit_16(443);
+emit_16(508);
+emit_16(444);
+emit_16(508);
+emit_16(443);
+emit_16(508);
+emit_16(444);
+emit_16(509);
+emit_16(445);
+emit_16(509);
+emit_16(444);
+emit_16(509);
+emit_16(445);
+emit_16(510);
+emit_16(446);
+emit_16(510);
+emit_16(445);
+emit_16(510);
+emit_16(446);
+emit_16(511);
+emit_16(447);
+emit_16(511);
+emit_16(446);
+emit_16(512);
+emit_16(448);
+emit_16(513);
+emit_16(449);
+emit_16(513);
+emit_16(448);
+emit_16(513);
+emit_16(449);
+emit_16(514);
+emit_16(450);
+emit_16(514);
+emit_16(449);
+emit_16(514);
+emit_16(450);
+emit_16(515);
+emit_16(451);
+emit_16(515);
+emit_16(450);
+emit_16(515);
+emit_16(451);
+emit_16(516);
+emit_16(452);
+emit_16(516);
+emit_16(451);
+emit_16(516);
+emit_16(452);
+emit_16(517);
+emit_16(453);
+emit_16(517);
+emit_16(452);
+emit_16(517);
+emit_16(453);
+emit_16(518);
+emit_16(454);
+emit_16(518);
+emit_16(453);
+emit_16(518);
+emit_16(454);
+emit_16(519);
+emit_16(455);
+emit_16(519);
+emit_16(454);
+emit_16(519);
+emit_16(455);
+emit_16(520);
+emit_16(456);
+emit_16(520);
+emit_16(455);
+emit_16(520);
+emit_16(456);
+emit_16(521);
+emit_16(457);
+emit_16(521);
+emit_16(456);
+emit_16(521);
+emit_16(457);
+emit_16(522);
+emit_16(458);
+emit_16(522);
+emit_16(457);
+emit_16(522);
+emit_16(458);
+emit_16(523);
+emit_16(459);
+emit_16(523);
+emit_16(458);
+emit_16(523);
+emit_16(459);
+emit_16(524);
+emit_16(460);
+emit_16(524);
+emit_16(459);
+emit_16(524);
+emit_16(460);
+emit_16(525);
+emit_16(461);
+emit_16(525);
+emit_16(460);
+emit_16(525);
+emit_16(461);
+emit_16(526);
+emit_16(462);
+emit_16(526);
+emit_16(461);
+emit_16(526);
+emit_16(462);
+emit_16(527);
+emit_16(463);
+emit_16(527);
+emit_16(462);
+emit_16(527);
+emit_16(463);
+emit_16(528);
+emit_16(464);
+emit_16(528);
+emit_16(463);
+emit_16(528);
+emit_16(464);
+emit_16(529);
+emit_16(465);
+emit_16(529);
+emit_16(464);
+emit_16(529);
+emit_16(465);
+emit_16(530);
+emit_16(466);
+emit_16(530);
+emit_16(465);
+emit_16(530);
+emit_16(466);
+emit_16(531);
+emit_16(467);
+emit_16(531);
+emit_16(466);
+emit_16(531);
+emit_16(467);
+emit_16(532);
+emit_16(468);
+emit_16(532);
+emit_16(467);
+emit_16(532);
+emit_16(468);
+emit_16(533);
+emit_16(469);
+emit_16(533);
+emit_16(468);
+emit_16(533);
+emit_16(469);
+emit_16(534);
+emit_16(470);
+emit_16(534);
+emit_16(469);
+emit_16(534);
+emit_16(470);
+emit_16(535);
+emit_16(471);
+emit_16(535);
+emit_16(470);
+emit_16(535);
+emit_16(471);
+emit_16(536);
+emit_16(472);
+emit_16(536);
+emit_16(471);
+emit_16(536);
+emit_16(472);
+emit_16(537);
+emit_16(473);
+emit_16(537);
+emit_16(472);
+emit_16(537);
+emit_16(473);
+emit_16(538);
+emit_16(474);
+emit_16(538);
+emit_16(473);
+emit_16(538);
+emit_16(474);
+emit_16(539);
+emit_16(475);
+emit_16(539);
+emit_16(474);
+emit_16(539);
+emit_16(475);
+emit_16(540);
+emit_16(476);
+emit_16(540);
+emit_16(475);
+emit_16(540);
+emit_16(476);
+emit_16(541);
+emit_16(477);
+emit_16(541);
+emit_16(476);
+emit_16(541);
+emit_16(477);
+emit_16(542);
+emit_16(478);
+emit_16(542);
+emit_16(477);
+emit_16(542);
+emit_16(478);
+emit_16(543);
+emit_16(479);
+emit_16(543);
+emit_16(478);
+emit_16(543);
+emit_16(479);
+emit_16(544);
+emit_16(480);
+emit_16(544);
+emit_16(479);
+emit_16(544);
+emit_16(480);
+emit_16(545);
+emit_16(481);
+emit_16(545);
+emit_16(480);
+emit_16(545);
+emit_16(481);
+emit_16(546);
+emit_16(482);
+emit_16(546);
+emit_16(481);
+emit_16(546);
+emit_16(482);
+emit_16(547);
+emit_16(483);
+emit_16(547);
+emit_16(482);
+emit_16(547);
+emit_16(483);
+emit_16(548);
+emit_16(484);
+emit_16(548);
+emit_16(483);
+emit_16(548);
+emit_16(484);
+emit_16(549);
+emit_16(485);
+emit_16(549);
+emit_16(484);
+emit_16(549);
+emit_16(485);
+emit_16(550);
+emit_16(486);
+emit_16(550);
+emit_16(485);
+emit_16(550);
+emit_16(486);
+emit_16(551);
+emit_16(487);
+emit_16(551);
+emit_16(486);
+emit_16(551);
+emit_16(487);
+emit_16(552);
+emit_16(488);
+emit_16(552);
+emit_16(487);
+emit_16(552);
+emit_16(488);
+emit_16(553);
+emit_16(489);
+emit_16(553);
+emit_16(488);
+emit_16(553);
+emit_16(489);
+emit_16(554);
+emit_16(490);
+emit_16(554);
+emit_16(489);
+emit_16(554);
+emit_16(490);
+emit_16(555);
+emit_16(491);
+emit_16(555);
+emit_16(490);
+emit_16(555);
+emit_16(491);
+emit_16(556);
+emit_16(492);
+emit_16(556);
+emit_16(491);
+emit_16(556);
+emit_16(492);
+emit_16(557);
+emit_16(493);
+emit_16(557);
+emit_16(492);
+emit_16(557);
+emit_16(493);
+emit_16(558);
+emit_16(494);
+emit_16(558);
+emit_16(493);
+emit_16(558);
+emit_16(494);
+emit_16(559);
+emit_16(495);
+emit_16(559);
+emit_16(494);
+emit_16(559);
+emit_16(495);
+emit_16(560);
+emit_16(496);
+emit_16(560);
+emit_16(495);
+emit_16(560);
+emit_16(496);
+emit_16(561);
+emit_16(497);
+emit_16(561);
+emit_16(496);
+emit_16(561);
+emit_16(497);
+emit_16(562);
+emit_16(498);
+emit_16(562);
+emit_16(497);
+emit_16(562);
+emit_16(498);
+emit_16(563);
+emit_16(499);
+emit_16(563);
+emit_16(498);
+emit_16(563);
+emit_16(499);
+emit_16(564);
+emit_16(500);
+emit_16(564);
+emit_16(499);
+emit_16(564);
+emit_16(500);
+emit_16(565);
+emit_16(501);
+emit_16(565);
+emit_16(500);
+emit_16(565);
+emit_16(501);
+emit_16(566);
+emit_16(502);
+emit_16(566);
+emit_16(501);
+emit_16(566);
+emit_16(502);
+emit_16(567);
+emit_16(503);
+emit_16(567);
+emit_16(502);
+emit_16(567);
+emit_16(503);
+emit_16(568);
+emit_16(504);
+emit_16(568);
+emit_16(503);
+emit_16(568);
+emit_16(504);
+emit_16(569);
+emit_16(505);
+emit_16(569);
+emit_16(504);
+emit_16(569);
+emit_16(505);
+emit_16(570);
+emit_16(506);
+emit_16(570);
+emit_16(505);
+emit_16(570);
+emit_16(506);
+emit_16(571);
+emit_16(507);
+emit_16(571);
+emit_16(506);
+emit_16(571);
+emit_16(507);
+emit_16(572);
+emit_16(508);
+emit_16(572);
+emit_16(507);
+emit_16(572);
+emit_16(508);
+emit_16(573);
+emit_16(509);
+emit_16(573);
+emit_16(508);
+emit_16(573);
+emit_16(509);
+emit_16(574);
+emit_16(510);
+emit_16(574);
+emit_16(509);
+emit_16(574);
+emit_16(510);
+emit_16(575);
+emit_16(511);
+emit_16(575);
+emit_16(510);
+emit_16(576);
+emit_16(512);
+emit_16(577);
+emit_16(513);
+emit_16(577);
+emit_16(512);
+emit_16(577);
+emit_16(513);
+emit_16(578);
+emit_16(514);
+emit_16(578);
+emit_16(513);
+emit_16(578);
+emit_16(514);
+emit_16(579);
+emit_16(515);
+emit_16(579);
+emit_16(514);
+emit_16(579);
+emit_16(515);
+emit_16(580);
+emit_16(516);
+emit_16(580);
+emit_16(515);
+emit_16(580);
+emit_16(516);
+emit_16(581);
+emit_16(517);
+emit_16(581);
+emit_16(516);
+emit_16(581);
+emit_16(517);
+emit_16(582);
+emit_16(518);
+emit_16(582);
+emit_16(517);
+emit_16(582);
+emit_16(518);
+emit_16(583);
+emit_16(519);
+emit_16(583);
+emit_16(518);
+emit_16(583);
+emit_16(519);
+emit_16(584);
+emit_16(520);
+emit_16(584);
+emit_16(519);
+emit_16(584);
+emit_16(520);
+emit_16(585);
+emit_16(521);
+emit_16(585);
+emit_16(520);
+emit_16(585);
+emit_16(521);
+emit_16(586);
+emit_16(522);
+emit_16(586);
+emit_16(521);
+emit_16(586);
+emit_16(522);
+emit_16(587);
+emit_16(523);
+emit_16(587);
+emit_16(522);
+emit_16(587);
+emit_16(523);
+emit_16(588);
+emit_16(524);
+emit_16(588);
+emit_16(523);
+emit_16(588);
+emit_16(524);
+emit_16(589);
+emit_16(525);
+emit_16(589);
+emit_16(524);
+emit_16(589);
+emit_16(525);
+emit_16(590);
+emit_16(526);
+emit_16(590);
+emit_16(525);
+emit_16(590);
+emit_16(526);
+emit_16(591);
+emit_16(527);
+emit_16(591);
+emit_16(526);
+emit_16(591);
+emit_16(527);
+emit_16(592);
+emit_16(528);
+emit_16(592);
+emit_16(527);
+emit_16(592);
+emit_16(528);
+emit_16(593);
+emit_16(529);
+emit_16(593);
+emit_16(528);
+emit_16(593);
+emit_16(529);
+emit_16(594);
+emit_16(530);
+emit_16(594);
+emit_16(529);
+emit_16(594);
+emit_16(530);
+emit_16(595);
+emit_16(531);
+emit_16(595);
+emit_16(530);
+emit_16(595);
+emit_16(531);
+emit_16(596);
+emit_16(532);
+emit_16(596);
+emit_16(531);
+emit_16(596);
+emit_16(532);
+emit_16(597);
+emit_16(533);
+emit_16(597);
+emit_16(532);
+emit_16(597);
+emit_16(533);
+emit_16(598);
+emit_16(534);
+emit_16(598);
+emit_16(533);
+emit_16(598);
+emit_16(534);
+emit_16(599);
+emit_16(535);
+emit_16(599);
+emit_16(534);
+emit_16(599);
+emit_16(535);
+emit_16(600);
+emit_16(536);
+emit_16(600);
+emit_16(535);
+emit_16(600);
+emit_16(536);
+emit_16(601);
+emit_16(537);
+emit_16(601);
+emit_16(536);
+emit_16(601);
+emit_16(537);
+emit_16(602);
+emit_16(538);
+emit_16(602);
+emit_16(537);
+emit_16(602);
+emit_16(538);
+emit_16(603);
+emit_16(539);
+emit_16(603);
+emit_16(538);
+emit_16(603);
+emit_16(539);
+emit_16(604);
+emit_16(540);
+emit_16(604);
+emit_16(539);
+emit_16(604);
+emit_16(540);
+emit_16(605);
+emit_16(541);
+emit_16(605);
+emit_16(540);
+emit_16(605);
+emit_16(541);
+emit_16(606);
+emit_16(542);
+emit_16(606);
+emit_16(541);
+emit_16(606);
+emit_16(542);
+emit_16(607);
+emit_16(543);
+emit_16(607);
+emit_16(542);
+emit_16(607);
+emit_16(543);
+emit_16(608);
+emit_16(544);
+emit_16(608);
+emit_16(543);
+emit_16(608);
+emit_16(544);
+emit_16(609);
+emit_16(545);
+emit_16(609);
+emit_16(544);
+emit_16(609);
+emit_16(545);
+emit_16(610);
+emit_16(546);
+emit_16(610);
+emit_16(545);
+emit_16(610);
+emit_16(546);
+emit_16(611);
+emit_16(547);
+emit_16(611);
+emit_16(546);
+emit_16(611);
+emit_16(547);
+emit_16(612);
+emit_16(548);
+emit_16(612);
+emit_16(547);
+emit_16(612);
+emit_16(548);
+emit_16(613);
+emit_16(549);
+emit_16(613);
+emit_16(548);
+emit_16(613);
+emit_16(549);
+emit_16(614);
+emit_16(550);
+emit_16(614);
+emit_16(549);
+emit_16(614);
+emit_16(550);
+emit_16(615);
+emit_16(551);
+emit_16(615);
+emit_16(550);
+emit_16(615);
+emit_16(551);
+emit_16(616);
+emit_16(552);
+emit_16(616);
+emit_16(551);
+emit_16(616);
+emit_16(552);
+emit_16(617);
+emit_16(553);
+emit_16(617);
+emit_16(552);
+emit_16(617);
+emit_16(553);
+emit_16(618);
+emit_16(554);
+emit_16(618);
+emit_16(553);
+emit_16(618);
+emit_16(554);
+emit_16(619);
+emit_16(555);
+emit_16(619);
+emit_16(554);
+emit_16(619);
+emit_16(555);
+emit_16(620);
+emit_16(556);
+emit_16(620);
+emit_16(555);
+emit_16(620);
+emit_16(556);
+emit_16(621);
+emit_16(557);
+emit_16(621);
+emit_16(556);
+emit_16(621);
+emit_16(557);
+emit_16(622);
+emit_16(558);
+emit_16(622);
+emit_16(557);
+emit_16(622);
+emit_16(558);
+emit_16(623);
+emit_16(559);
+emit_16(623);
+emit_16(558);
+emit_16(623);
+emit_16(559);
+emit_16(624);
+emit_16(560);
+emit_16(624);
+emit_16(559);
+emit_16(624);
+emit_16(560);
+emit_16(625);
+emit_16(561);
+emit_16(625);
+emit_16(560);
+emit_16(625);
+emit_16(561);
+emit_16(626);
+emit_16(562);
+emit_16(626);
+emit_16(561);
+emit_16(626);
+emit_16(562);
+emit_16(627);
+emit_16(563);
+emit_16(627);
+emit_16(562);
+emit_16(627);
+emit_16(563);
+emit_16(628);
+emit_16(564);
+emit_16(628);
+emit_16(563);
+emit_16(628);
+emit_16(564);
+emit_16(629);
+emit_16(565);
+emit_16(629);
+emit_16(564);
+emit_16(629);
+emit_16(565);
+emit_16(630);
+emit_16(566);
+emit_16(630);
+emit_16(565);
+emit_16(630);
+emit_16(566);
+emit_16(631);
+emit_16(567);
+emit_16(631);
+emit_16(566);
+emit_16(631);
+emit_16(567);
+emit_16(632);
+emit_16(568);
+emit_16(632);
+emit_16(567);
+emit_16(632);
+emit_16(568);
+emit_16(633);
+emit_16(569);
+emit_16(633);
+emit_16(568);
+emit_16(633);
+emit_16(569);
+emit_16(634);
+emit_16(570);
+emit_16(634);
+emit_16(569);
+emit_16(634);
+emit_16(570);
+emit_16(635);
+emit_16(571);
+emit_16(635);
+emit_16(570);
+emit_16(635);
+emit_16(571);
+emit_16(636);
+emit_16(572);
+emit_16(636);
+emit_16(571);
+emit_16(636);
+emit_16(572);
+emit_16(637);
+emit_16(573);
+emit_16(637);
+emit_16(572);
+emit_16(637);
+emit_16(573);
+emit_16(638);
+emit_16(574);
+emit_16(638);
+emit_16(573);
+emit_16(638);
+emit_16(574);
+emit_16(639);
+emit_16(575);
+emit_16(639);
+emit_16(574);
+emit_16(640);
+emit_16(576);
+emit_16(641);
+emit_16(577);
+emit_16(641);
+emit_16(576);
+emit_16(641);
+emit_16(577);
+emit_16(642);
+emit_16(578);
+emit_16(642);
+emit_16(577);
+emit_16(642);
+emit_16(578);
+emit_16(643);
+emit_16(579);
+emit_16(643);
+emit_16(578);
+emit_16(643);
+emit_16(579);
+emit_16(644);
+emit_16(580);
+emit_16(644);
+emit_16(579);
+emit_16(644);
+emit_16(580);
+emit_16(645);
+emit_16(581);
+emit_16(645);
+emit_16(580);
+emit_16(645);
+emit_16(581);
+emit_16(646);
+emit_16(582);
+emit_16(646);
+emit_16(581);
+emit_16(646);
+emit_16(582);
+emit_16(647);
+emit_16(583);
+emit_16(647);
+emit_16(582);
+emit_16(647);
+emit_16(583);
+emit_16(648);
+emit_16(584);
+emit_16(648);
+emit_16(583);
+emit_16(648);
+emit_16(584);
+emit_16(649);
+emit_16(585);
+emit_16(649);
+emit_16(584);
+emit_16(649);
+emit_16(585);
+emit_16(650);
+emit_16(586);
+emit_16(650);
+emit_16(585);
+emit_16(650);
+emit_16(586);
+emit_16(651);
+emit_16(587);
+emit_16(651);
+emit_16(586);
+emit_16(651);
+emit_16(587);
+emit_16(652);
+emit_16(588);
+emit_16(652);
+emit_16(587);
+emit_16(652);
+emit_16(588);
+emit_16(653);
+emit_16(589);
+emit_16(653);
+emit_16(588);
+emit_16(653);
+emit_16(589);
+emit_16(654);
+emit_16(590);
+emit_16(654);
+emit_16(589);
+emit_16(654);
+emit_16(590);
+emit_16(655);
+emit_16(591);
+emit_16(655);
+emit_16(590);
+emit_16(655);
+emit_16(591);
+emit_16(656);
+emit_16(592);
+emit_16(656);
+emit_16(591);
+emit_16(656);
+emit_16(592);
+emit_16(657);
+emit_16(593);
+emit_16(657);
+emit_16(592);
+emit_16(657);
+emit_16(593);
+emit_16(658);
+emit_16(594);
+emit_16(658);
+emit_16(593);
+emit_16(658);
+emit_16(594);
+emit_16(659);
+emit_16(595);
+emit_16(659);
+emit_16(594);
+emit_16(659);
+emit_16(595);
+emit_16(660);
+emit_16(596);
+emit_16(660);
+emit_16(595);
+emit_16(660);
+emit_16(596);
+emit_16(661);
+emit_16(597);
+emit_16(661);
+emit_16(596);
+emit_16(661);
+emit_16(597);
+emit_16(662);
+emit_16(598);
+emit_16(662);
+emit_16(597);
+emit_16(662);
+emit_16(598);
+emit_16(663);
+emit_16(599);
+emit_16(663);
+emit_16(598);
+emit_16(663);
+emit_16(599);
+emit_16(664);
+emit_16(600);
+emit_16(664);
+emit_16(599);
+emit_16(664);
+emit_16(600);
+emit_16(665);
+emit_16(601);
+emit_16(665);
+emit_16(600);
+emit_16(665);
+emit_16(601);
+emit_16(666);
+emit_16(602);
+emit_16(666);
+emit_16(601);
+emit_16(666);
+emit_16(602);
+emit_16(667);
+emit_16(603);
+emit_16(667);
+emit_16(602);
+emit_16(667);
+emit_16(603);
+emit_16(668);
+emit_16(604);
+emit_16(668);
+emit_16(603);
+emit_16(668);
+emit_16(604);
+emit_16(669);
+emit_16(605);
+emit_16(669);
+emit_16(604);
+emit_16(669);
+emit_16(605);
+emit_16(670);
+emit_16(606);
+emit_16(670);
+emit_16(605);
+emit_16(670);
+emit_16(606);
+emit_16(671);
+emit_16(607);
+emit_16(671);
+emit_16(606);
+emit_16(671);
+emit_16(607);
+emit_16(672);
+emit_16(608);
+emit_16(672);
+emit_16(607);
+emit_16(672);
+emit_16(608);
+emit_16(673);
+emit_16(609);
+emit_16(673);
+emit_16(608);
+emit_16(673);
+emit_16(609);
+emit_16(674);
+emit_16(610);
+emit_16(674);
+emit_16(609);
+emit_16(674);
+emit_16(610);
+emit_16(675);
+emit_16(611);
+emit_16(675);
+emit_16(610);
+emit_16(675);
+emit_16(611);
+emit_16(676);
+emit_16(612);
+emit_16(676);
+emit_16(611);
+emit_16(676);
+emit_16(612);
+emit_16(677);
+emit_16(613);
+emit_16(677);
+emit_16(612);
+emit_16(677);
+emit_16(613);
+emit_16(678);
+emit_16(614);
+emit_16(678);
+emit_16(613);
+emit_16(678);
+emit_16(614);
+emit_16(679);
+emit_16(615);
+emit_16(679);
+emit_16(614);
+emit_16(679);
+emit_16(615);
+emit_16(680);
+emit_16(616);
+emit_16(680);
+emit_16(615);
+emit_16(680);
+emit_16(616);
+emit_16(681);
+emit_16(617);
+emit_16(681);
+emit_16(616);
+emit_16(681);
+emit_16(617);
+emit_16(682);
+emit_16(618);
+emit_16(682);
+emit_16(617);
+emit_16(682);
+emit_16(618);
+emit_16(683);
+emit_16(619);
+emit_16(683);
+emit_16(618);
+emit_16(683);
+emit_16(619);
+emit_16(684);
+emit_16(620);
+emit_16(684);
+emit_16(619);
+emit_16(684);
+emit_16(620);
+emit_16(685);
+emit_16(621);
+emit_16(685);
+emit_16(620);
+emit_16(685);
+emit_16(621);
+emit_16(686);
+emit_16(622);
+emit_16(686);
+emit_16(621);
+emit_16(686);
+emit_16(622);
+emit_16(687);
+emit_16(623);
+emit_16(687);
+emit_16(622);
+emit_16(687);
+emit_16(623);
+emit_16(688);
+emit_16(624);
+emit_16(688);
+emit_16(623);
+emit_16(688);
+emit_16(624);
+emit_16(689);
+emit_16(625);
+emit_16(689);
+emit_16(624);
+emit_16(689);
+emit_16(625);
+emit_16(690);
+emit_16(626);
+emit_16(690);
+emit_16(625);
+emit_16(690);
+emit_16(626);
+emit_16(691);
+emit_16(627);
+emit_16(691);
+emit_16(626);
+emit_16(691);
+emit_16(627);
+emit_16(692);
+emit_16(628);
+emit_16(692);
+emit_16(627);
+emit_16(692);
+emit_16(628);
+emit_16(693);
+emit_16(629);
+emit_16(693);
+emit_16(628);
+emit_16(693);
+emit_16(629);
+emit_16(694);
+emit_16(630);
+emit_16(694);
+emit_16(629);
+emit_16(694);
+emit_16(630);
+emit_16(695);
+emit_16(631);
+emit_16(695);
+emit_16(630);
+emit_16(695);
+emit_16(631);
+emit_16(696);
+emit_16(632);
+emit_16(696);
+emit_16(631);
+emit_16(696);
+emit_16(632);
+emit_16(697);
+emit_16(633);
+emit_16(697);
+emit_16(632);
+emit_16(697);
+emit_16(633);
+emit_16(698);
+emit_16(634);
+emit_16(698);
+emit_16(633);
+emit_16(698);
+emit_16(634);
+emit_16(699);
+emit_16(635);
+emit_16(699);
+emit_16(634);
+emit_16(699);
+emit_16(635);
+emit_16(700);
+emit_16(636);
+emit_16(700);
+emit_16(635);
+emit_16(700);
+emit_16(636);
+emit_16(701);
+emit_16(637);
+emit_16(701);
+emit_16(636);
+emit_16(701);
+emit_16(637);
+emit_16(702);
+emit_16(638);
+emit_16(702);
+emit_16(637);
+emit_16(702);
+emit_16(638);
+emit_16(703);
+emit_16(639);
+emit_16(703);
+emit_16(638);
+emit_16(704);
+emit_16(640);
+emit_16(705);
+emit_16(641);
+emit_16(705);
+emit_16(640);
+emit_16(705);
+emit_16(641);
+emit_16(706);
+emit_16(642);
+emit_16(706);
+emit_16(641);
+emit_16(706);
+emit_16(642);
+emit_16(707);
+emit_16(643);
+emit_16(707);
+emit_16(642);
+emit_16(707);
+emit_16(643);
+emit_16(708);
+emit_16(644);
+emit_16(708);
+emit_16(643);
+emit_16(708);
+emit_16(644);
+emit_16(709);
+emit_16(645);
+emit_16(709);
+emit_16(644);
+emit_16(709);
+emit_16(645);
+emit_16(710);
+emit_16(646);
+emit_16(710);
+emit_16(645);
+emit_16(710);
+emit_16(646);
+emit_16(711);
+emit_16(647);
+emit_16(711);
+emit_16(646);
+emit_16(711);
+emit_16(647);
+emit_16(712);
+emit_16(648);
+emit_16(712);
+emit_16(647);
+emit_16(712);
+emit_16(648);
+emit_16(713);
+emit_16(649);
+emit_16(713);
+emit_16(648);
+emit_16(713);
+emit_16(649);
+emit_16(714);
+emit_16(650);
+emit_16(714);
+emit_16(649);
+emit_16(714);
+emit_16(650);
+emit_16(715);
+emit_16(651);
+emit_16(715);
+emit_16(650);
+emit_16(715);
+emit_16(651);
+emit_16(716);
+emit_16(652);
+emit_16(716);
+emit_16(651);
+emit_16(716);
+emit_16(652);
+emit_16(717);
+emit_16(653);
+emit_16(717);
+emit_16(652);
+emit_16(717);
+emit_16(653);
+emit_16(718);
+emit_16(654);
+emit_16(718);
+emit_16(653);
+emit_16(718);
+emit_16(654);
+emit_16(719);
+emit_16(655);
+emit_16(719);
+emit_16(654);
+emit_16(719);
+emit_16(655);
+emit_16(720);
+emit_16(656);
+emit_16(720);
+emit_16(655);
+emit_16(720);
+emit_16(656);
+emit_16(721);
+emit_16(657);
+emit_16(721);
+emit_16(656);
+emit_16(721);
+emit_16(657);
+emit_16(722);
+emit_16(658);
+emit_16(722);
+emit_16(657);
+emit_16(722);
+emit_16(658);
+emit_16(723);
+emit_16(659);
+emit_16(723);
+emit_16(658);
+emit_16(723);
+emit_16(659);
+emit_16(724);
+emit_16(660);
+emit_16(724);
+emit_16(659);
+emit_16(724);
+emit_16(660);
+emit_16(725);
+emit_16(661);
+emit_16(725);
+emit_16(660);
+emit_16(725);
+emit_16(661);
+emit_16(726);
+emit_16(662);
+emit_16(726);
+emit_16(661);
+emit_16(726);
+emit_16(662);
+emit_16(727);
+emit_16(663);
+emit_16(727);
+emit_16(662);
+emit_16(727);
+emit_16(663);
+emit_16(728);
+emit_16(664);
+emit_16(728);
+emit_16(663);
+emit_16(728);
+emit_16(664);
+emit_16(729);
+emit_16(665);
+emit_16(729);
+emit_16(664);
+emit_16(729);
+emit_16(665);
+emit_16(730);
+emit_16(666);
+emit_16(730);
+emit_16(665);
+emit_16(730);
+emit_16(666);
+emit_16(731);
+emit_16(667);
+emit_16(731);
+emit_16(666);
+emit_16(731);
+emit_16(667);
+emit_16(732);
+emit_16(668);
+emit_16(732);
+emit_16(667);
+emit_16(732);
+emit_16(668);
+emit_16(733);
+emit_16(669);
+emit_16(733);
+emit_16(668);
+emit_16(733);
+emit_16(669);
+emit_16(734);
+emit_16(670);
+emit_16(734);
+emit_16(669);
+emit_16(734);
+emit_16(670);
+emit_16(735);
+emit_16(671);
+emit_16(735);
+emit_16(670);
+emit_16(735);
+emit_16(671);
+emit_16(736);
+emit_16(672);
+emit_16(736);
+emit_16(671);
+emit_16(736);
+emit_16(672);
+emit_16(737);
+emit_16(673);
+emit_16(737);
+emit_16(672);
+emit_16(737);
+emit_16(673);
+emit_16(738);
+emit_16(674);
+emit_16(738);
+emit_16(673);
+emit_16(738);
+emit_16(674);
+emit_16(739);
+emit_16(675);
+emit_16(739);
+emit_16(674);
+emit_16(739);
+emit_16(675);
+emit_16(740);
+emit_16(676);
+emit_16(740);
+emit_16(675);
+emit_16(740);
+emit_16(676);
+emit_16(741);
+emit_16(677);
+emit_16(741);
+emit_16(676);
+emit_16(741);
+emit_16(677);
+emit_16(742);
+emit_16(678);
+emit_16(742);
+emit_16(677);
+emit_16(742);
+emit_16(678);
+emit_16(743);
+emit_16(679);
+emit_16(743);
+emit_16(678);
+emit_16(743);
+emit_16(679);
+emit_16(744);
+emit_16(680);
+emit_16(744);
+emit_16(679);
+emit_16(744);
+emit_16(680);
+emit_16(745);
+emit_16(681);
+emit_16(745);
+emit_16(680);
+emit_16(745);
+emit_16(681);
+emit_16(746);
+emit_16(682);
+emit_16(746);
+emit_16(681);
+emit_16(746);
+emit_16(682);
+emit_16(747);
+emit_16(683);
+emit_16(747);
+emit_16(682);
+emit_16(747);
+emit_16(683);
+emit_16(748);
+emit_16(684);
+emit_16(748);
+emit_16(683);
+emit_16(748);
+emit_16(684);
+emit_16(749);
+emit_16(685);
+emit_16(749);
+emit_16(684);
+emit_16(749);
+emit_16(685);
+emit_16(750);
+emit_16(686);
+emit_16(750);
+emit_16(685);
+emit_16(750);
+emit_16(686);
+emit_16(751);
+emit_16(687);
+emit_16(751);
+emit_16(686);
+emit_16(751);
+emit_16(687);
+emit_16(752);
+emit_16(688);
+emit_16(752);
+emit_16(687);
+emit_16(752);
+emit_16(688);
+emit_16(753);
+emit_16(689);
+emit_16(753);
+emit_16(688);
+emit_16(753);
+emit_16(689);
+emit_16(754);
+emit_16(690);
+emit_16(754);
+emit_16(689);
+emit_16(754);
+emit_16(690);
+emit_16(755);
+emit_16(691);
+emit_16(755);
+emit_16(690);
+emit_16(755);
+emit_16(691);
+emit_16(756);
+emit_16(692);
+emit_16(756);
+emit_16(691);
+emit_16(756);
+emit_16(692);
+emit_16(757);
+emit_16(693);
+emit_16(757);
+emit_16(692);
+emit_16(757);
+emit_16(693);
+emit_16(758);
+emit_16(694);
+emit_16(758);
+emit_16(693);
+emit_16(758);
+emit_16(694);
+emit_16(759);
+emit_16(695);
+emit_16(759);
+emit_16(694);
+emit_16(759);
+emit_16(695);
+emit_16(760);
+emit_16(696);
+emit_16(760);
+emit_16(695);
+emit_16(760);
+emit_16(696);
+emit_16(761);
+emit_16(697);
+emit_16(761);
+emit_16(696);
+emit_16(761);
+emit_16(697);
+emit_16(762);
+emit_16(698);
+emit_16(762);
+emit_16(697);
+emit_16(762);
+emit_16(698);
+emit_16(763);
+emit_16(699);
+emit_16(763);
+emit_16(698);
+emit_16(763);
+emit_16(699);
+emit_16(764);
+emit_16(700);
+emit_16(764);
+emit_16(699);
+emit_16(764);
+emit_16(700);
+emit_16(765);
+emit_16(701);
+emit_16(765);
+emit_16(700);
+emit_16(765);
+emit_16(701);
+emit_16(766);
+emit_16(702);
+emit_16(766);
+emit_16(701);
+emit_16(766);
+emit_16(702);
+emit_16(767);
+emit_16(703);
+emit_16(767);
+emit_16(702);
+emit_16(768);
+emit_16(704);
+emit_16(769);
+emit_16(705);
+emit_16(769);
+emit_16(704);
+emit_16(769);
+emit_16(705);
+emit_16(770);
+emit_16(706);
+emit_16(770);
+emit_16(705);
+emit_16(770);
+emit_16(706);
+emit_16(771);
+emit_16(707);
+emit_16(771);
+emit_16(706);
+emit_16(771);
+emit_16(707);
+emit_16(772);
+emit_16(708);
+emit_16(772);
+emit_16(707);
+emit_16(772);
+emit_16(708);
+emit_16(773);
+emit_16(709);
+emit_16(773);
+emit_16(708);
+emit_16(773);
+emit_16(709);
+emit_16(774);
+emit_16(710);
+emit_16(774);
+emit_16(709);
+emit_16(774);
+emit_16(710);
+emit_16(775);
+emit_16(711);
+emit_16(775);
+emit_16(710);
+emit_16(775);
+emit_16(711);
+emit_16(776);
+emit_16(712);
+emit_16(776);
+emit_16(711);
+emit_16(776);
+emit_16(712);
+emit_16(777);
+emit_16(713);
+emit_16(777);
+emit_16(712);
+emit_16(777);
+emit_16(713);
+emit_16(778);
+emit_16(714);
+emit_16(778);
+emit_16(713);
+emit_16(778);
+emit_16(714);
+emit_16(779);
+emit_16(715);
+emit_16(779);
+emit_16(714);
+emit_16(779);
+emit_16(715);
+emit_16(780);
+emit_16(716);
+emit_16(780);
+emit_16(715);
+emit_16(780);
+emit_16(716);
+emit_16(781);
+emit_16(717);
+emit_16(781);
+emit_16(716);
+emit_16(781);
+emit_16(717);
+emit_16(782);
+emit_16(718);
+emit_16(782);
+emit_16(717);
+emit_16(782);
+emit_16(718);
+emit_16(783);
+emit_16(719);
+emit_16(783);
+emit_16(718);
+emit_16(783);
+emit_16(719);
+emit_16(784);
+emit_16(720);
+emit_16(784);
+emit_16(719);
+emit_16(784);
+emit_16(720);
+emit_16(785);
+emit_16(721);
+emit_16(785);
+emit_16(720);
+emit_16(785);
+emit_16(721);
+emit_16(786);
+emit_16(722);
+emit_16(786);
+emit_16(721);
+emit_16(786);
+emit_16(722);
+emit_16(787);
+emit_16(723);
+emit_16(787);
+emit_16(722);
+emit_16(787);
+emit_16(723);
+emit_16(788);
+emit_16(724);
+emit_16(788);
+emit_16(723);
+emit_16(788);
+emit_16(724);
+emit_16(789);
+emit_16(725);
+emit_16(789);
+emit_16(724);
+emit_16(789);
+emit_16(725);
+emit_16(790);
+emit_16(726);
+emit_16(790);
+emit_16(725);
+emit_16(790);
+emit_16(726);
+emit_16(791);
+emit_16(727);
+emit_16(791);
+emit_16(726);
+emit_16(791);
+emit_16(727);
+emit_16(792);
+emit_16(728);
+emit_16(792);
+emit_16(727);
+emit_16(792);
+emit_16(728);
+emit_16(793);
+emit_16(729);
+emit_16(793);
+emit_16(728);
+emit_16(793);
+emit_16(729);
+emit_16(794);
+emit_16(730);
+emit_16(794);
+emit_16(729);
+emit_16(794);
+emit_16(730);
+emit_16(795);
+emit_16(731);
+emit_16(795);
+emit_16(730);
+emit_16(795);
+emit_16(731);
+emit_16(796);
+emit_16(732);
+emit_16(796);
+emit_16(731);
+emit_16(796);
+emit_16(732);
+emit_16(797);
+emit_16(733);
+emit_16(797);
+emit_16(732);
+emit_16(797);
+emit_16(733);
+emit_16(798);
+emit_16(734);
+emit_16(798);
+emit_16(733);
+emit_16(798);
+emit_16(734);
+emit_16(799);
+emit_16(735);
+emit_16(799);
+emit_16(734);
+emit_16(799);
+emit_16(735);
+emit_16(800);
+emit_16(736);
+emit_16(800);
+emit_16(735);
+emit_16(800);
+emit_16(736);
+emit_16(801);
+emit_16(737);
+emit_16(801);
+emit_16(736);
+emit_16(801);
+emit_16(737);
+emit_16(802);
+emit_16(738);
+emit_16(802);
+emit_16(737);
+emit_16(802);
+emit_16(738);
+emit_16(803);
+emit_16(739);
+emit_16(803);
+emit_16(738);
+emit_16(803);
+emit_16(739);
+emit_16(804);
+emit_16(740);
+emit_16(804);
+emit_16(739);
+emit_16(804);
+emit_16(740);
+emit_16(805);
+emit_16(741);
+emit_16(805);
+emit_16(740);
+emit_16(805);
+emit_16(741);
+emit_16(806);
+emit_16(742);
+emit_16(806);
+emit_16(741);
+emit_16(806);
+emit_16(742);
+emit_16(807);
+emit_16(743);
+emit_16(807);
+emit_16(742);
+emit_16(807);
+emit_16(743);
+emit_16(808);
+emit_16(744);
+emit_16(808);
+emit_16(743);
+emit_16(808);
+emit_16(744);
+emit_16(809);
+emit_16(745);
+emit_16(809);
+emit_16(744);
+emit_16(809);
+emit_16(745);
+emit_16(810);
+emit_16(746);
+emit_16(810);
+emit_16(745);
+emit_16(810);
+emit_16(746);
+emit_16(811);
+emit_16(747);
+emit_16(811);
+emit_16(746);
+emit_16(811);
+emit_16(747);
+emit_16(812);
+emit_16(748);
+emit_16(812);
+emit_16(747);
+emit_16(812);
+emit_16(748);
+emit_16(813);
+emit_16(749);
+emit_16(813);
+emit_16(748);
+emit_16(813);
+emit_16(749);
+emit_16(814);
+emit_16(750);
+emit_16(814);
+emit_16(749);
+emit_16(814);
+emit_16(750);
+emit_16(815);
+emit_16(751);
+emit_16(815);
+emit_16(750);
+emit_16(815);
+emit_16(751);
+emit_16(816);
+emit_16(752);
+emit_16(816);
+emit_16(751);
+emit_16(816);
+emit_16(752);
+emit_16(817);
+emit_16(753);
+emit_16(817);
+emit_16(752);
+emit_16(817);
+emit_16(753);
+emit_16(818);
+emit_16(754);
+emit_16(818);
+emit_16(753);
+emit_16(818);
+emit_16(754);
+emit_16(819);
+emit_16(755);
+emit_16(819);
+emit_16(754);
+emit_16(819);
+emit_16(755);
+emit_16(820);
+emit_16(756);
+emit_16(820);
+emit_16(755);
+emit_16(820);
+emit_16(756);
+emit_16(821);
+emit_16(757);
+emit_16(821);
+emit_16(756);
+emit_16(821);
+emit_16(757);
+emit_16(822);
+emit_16(758);
+emit_16(822);
+emit_16(757);
+emit_16(822);
+emit_16(758);
+emit_16(823);
+emit_16(759);
+emit_16(823);
+emit_16(758);
+emit_16(823);
+emit_16(759);
+emit_16(824);
+emit_16(760);
+emit_16(824);
+emit_16(759);
+emit_16(824);
+emit_16(760);
+emit_16(825);
+emit_16(761);
+emit_16(825);
+emit_16(760);
+emit_16(825);
+emit_16(761);
+emit_16(826);
+emit_16(762);
+emit_16(826);
+emit_16(761);
+emit_16(826);
+emit_16(762);
+emit_16(827);
+emit_16(763);
+emit_16(827);
+emit_16(762);
+emit_16(827);
+emit_16(763);
+emit_16(828);
+emit_16(764);
+emit_16(828);
+emit_16(763);
+emit_16(828);
+emit_16(764);
+emit_16(829);
+emit_16(765);
+emit_16(829);
+emit_16(764);
+emit_16(829);
+emit_16(765);
+emit_16(830);
+emit_16(766);
+emit_16(830);
+emit_16(765);
+emit_16(830);
+emit_16(766);
+emit_16(831);
+emit_16(767);
+emit_16(831);
+emit_16(766);
+emit_16(832);
+emit_16(768);
+emit_16(833);
+emit_16(769);
+emit_16(833);
+emit_16(768);
+emit_16(833);
+emit_16(769);
+emit_16(834);
+emit_16(770);
+emit_16(834);
+emit_16(769);
+emit_16(834);
+emit_16(770);
+emit_16(835);
+emit_16(771);
+emit_16(835);
+emit_16(770);
+emit_16(835);
+emit_16(771);
+emit_16(836);
+emit_16(772);
+emit_16(836);
+emit_16(771);
+emit_16(836);
+emit_16(772);
+emit_16(837);
+emit_16(773);
+emit_16(837);
+emit_16(772);
+emit_16(837);
+emit_16(773);
+emit_16(838);
+emit_16(774);
+emit_16(838);
+emit_16(773);
+emit_16(838);
+emit_16(774);
+emit_16(839);
+emit_16(775);
+emit_16(839);
+emit_16(774);
+emit_16(839);
+emit_16(775);
+emit_16(840);
+emit_16(776);
+emit_16(840);
+emit_16(775);
+emit_16(840);
+emit_16(776);
+emit_16(841);
+emit_16(777);
+emit_16(841);
+emit_16(776);
+emit_16(841);
+emit_16(777);
+emit_16(842);
+emit_16(778);
+emit_16(842);
+emit_16(777);
+emit_16(842);
+emit_16(778);
+emit_16(843);
+emit_16(779);
+emit_16(843);
+emit_16(778);
+emit_16(843);
+emit_16(779);
+emit_16(844);
+emit_16(780);
+emit_16(844);
+emit_16(779);
+emit_16(844);
+emit_16(780);
+emit_16(845);
+emit_16(781);
+emit_16(845);
+emit_16(780);
+emit_16(845);
+emit_16(781);
+emit_16(846);
+emit_16(782);
+emit_16(846);
+emit_16(781);
+emit_16(846);
+emit_16(782);
+emit_16(847);
+emit_16(783);
+emit_16(847);
+emit_16(782);
+emit_16(847);
+emit_16(783);
+emit_16(848);
+emit_16(784);
+emit_16(848);
+emit_16(783);
+emit_16(848);
+emit_16(784);
+emit_16(849);
+emit_16(785);
+emit_16(849);
+emit_16(784);
+emit_16(849);
+emit_16(785);
+emit_16(850);
+emit_16(786);
+emit_16(850);
+emit_16(785);
+emit_16(850);
+emit_16(786);
+emit_16(851);
+emit_16(787);
+emit_16(851);
+emit_16(786);
+emit_16(851);
+emit_16(787);
+emit_16(852);
+emit_16(788);
+emit_16(852);
+emit_16(787);
+emit_16(852);
+emit_16(788);
+emit_16(853);
+emit_16(789);
+emit_16(853);
+emit_16(788);
+emit_16(853);
+emit_16(789);
+emit_16(854);
+emit_16(790);
+emit_16(854);
+emit_16(789);
+emit_16(854);
+emit_16(790);
+emit_16(855);
+emit_16(791);
+emit_16(855);
+emit_16(790);
+emit_16(855);
+emit_16(791);
+emit_16(856);
+emit_16(792);
+emit_16(856);
+emit_16(791);
+emit_16(856);
+emit_16(792);
+emit_16(857);
+emit_16(793);
+emit_16(857);
+emit_16(792);
+emit_16(857);
+emit_16(793);
+emit_16(858);
+emit_16(794);
+emit_16(858);
+emit_16(793);
+emit_16(858);
+emit_16(794);
+emit_16(859);
+emit_16(795);
+emit_16(859);
+emit_16(794);
+emit_16(859);
+emit_16(795);
+emit_16(860);
+emit_16(796);
+emit_16(860);
+emit_16(795);
+emit_16(860);
+emit_16(796);
+emit_16(861);
+emit_16(797);
+emit_16(861);
+emit_16(796);
+emit_16(861);
+emit_16(797);
+emit_16(862);
+emit_16(798);
+emit_16(862);
+emit_16(797);
+emit_16(862);
+emit_16(798);
+emit_16(863);
+emit_16(799);
+emit_16(863);
+emit_16(798);
+emit_16(863);
+emit_16(799);
+emit_16(864);
+emit_16(800);
+emit_16(864);
+emit_16(799);
+emit_16(864);
+emit_16(800);
+emit_16(865);
+emit_16(801);
+emit_16(865);
+emit_16(800);
+emit_16(865);
+emit_16(801);
+emit_16(866);
+emit_16(802);
+emit_16(866);
+emit_16(801);
+emit_16(866);
+emit_16(802);
+emit_16(867);
+emit_16(803);
+emit_16(867);
+emit_16(802);
+emit_16(867);
+emit_16(803);
+emit_16(868);
+emit_16(804);
+emit_16(868);
+emit_16(803);
+emit_16(868);
+emit_16(804);
+emit_16(869);
+emit_16(805);
+emit_16(869);
+emit_16(804);
+emit_16(869);
+emit_16(805);
+emit_16(870);
+emit_16(806);
+emit_16(870);
+emit_16(805);
+emit_16(870);
+emit_16(806);
+emit_16(871);
+emit_16(807);
+emit_16(871);
+emit_16(806);
+emit_16(871);
+emit_16(807);
+emit_16(872);
+emit_16(808);
+emit_16(872);
+emit_16(807);
+emit_16(872);
+emit_16(808);
+emit_16(873);
+emit_16(809);
+emit_16(873);
+emit_16(808);
+emit_16(873);
+emit_16(809);
+emit_16(874);
+emit_16(810);
+emit_16(874);
+emit_16(809);
+emit_16(874);
+emit_16(810);
+emit_16(875);
+emit_16(811);
+emit_16(875);
+emit_16(810);
+emit_16(875);
+emit_16(811);
+emit_16(876);
+emit_16(812);
+emit_16(876);
+emit_16(811);
+emit_16(876);
+emit_16(812);
+emit_16(877);
+emit_16(813);
+emit_16(877);
+emit_16(812);
+emit_16(877);
+emit_16(813);
+emit_16(878);
+emit_16(814);
+emit_16(878);
+emit_16(813);
+emit_16(878);
+emit_16(814);
+emit_16(879);
+emit_16(815);
+emit_16(879);
+emit_16(814);
+emit_16(879);
+emit_16(815);
+emit_16(880);
+emit_16(816);
+emit_16(880);
+emit_16(815);
+emit_16(880);
+emit_16(816);
+emit_16(881);
+emit_16(817);
+emit_16(881);
+emit_16(816);
+emit_16(881);
+emit_16(817);
+emit_16(882);
+emit_16(818);
+emit_16(882);
+emit_16(817);
+emit_16(882);
+emit_16(818);
+emit_16(883);
+emit_16(819);
+emit_16(883);
+emit_16(818);
+emit_16(883);
+emit_16(819);
+emit_16(884);
+emit_16(820);
+emit_16(884);
+emit_16(819);
+emit_16(884);
+emit_16(820);
+emit_16(885);
+emit_16(821);
+emit_16(885);
+emit_16(820);
+emit_16(885);
+emit_16(821);
+emit_16(886);
+emit_16(822);
+emit_16(886);
+emit_16(821);
+emit_16(886);
+emit_16(822);
+emit_16(887);
+emit_16(823);
+emit_16(887);
+emit_16(822);
+emit_16(887);
+emit_16(823);
+emit_16(888);
+emit_16(824);
+emit_16(888);
+emit_16(823);
+emit_16(888);
+emit_16(824);
+emit_16(889);
+emit_16(825);
+emit_16(889);
+emit_16(824);
+emit_16(889);
+emit_16(825);
+emit_16(890);
+emit_16(826);
+emit_16(890);
+emit_16(825);
+emit_16(890);
+emit_16(826);
+emit_16(891);
+emit_16(827);
+emit_16(891);
+emit_16(826);
+emit_16(891);
+emit_16(827);
+emit_16(892);
+emit_16(828);
+emit_16(892);
+emit_16(827);
+emit_16(892);
+emit_16(828);
+emit_16(893);
+emit_16(829);
+emit_16(893);
+emit_16(828);
+emit_16(893);
+emit_16(829);
+emit_16(894);
+emit_16(830);
+emit_16(894);
+emit_16(829);
+emit_16(894);
+emit_16(830);
+emit_16(895);
+emit_16(831);
+emit_16(895);
+emit_16(830);
+emit_16(896);
+emit_16(832);
+emit_16(897);
+emit_16(833);
+emit_16(897);
+emit_16(832);
+emit_16(897);
+emit_16(833);
+emit_16(898);
+emit_16(834);
+emit_16(898);
+emit_16(833);
+emit_16(898);
+emit_16(834);
+emit_16(899);
+emit_16(835);
+emit_16(899);
+emit_16(834);
+emit_16(899);
+emit_16(835);
+emit_16(900);
+emit_16(836);
+emit_16(900);
+emit_16(835);
+emit_16(900);
+emit_16(836);
+emit_16(901);
+emit_16(837);
+emit_16(901);
+emit_16(836);
+emit_16(901);
+emit_16(837);
+emit_16(902);
+emit_16(838);
+emit_16(902);
+emit_16(837);
+emit_16(902);
+emit_16(838);
+emit_16(903);
+emit_16(839);
+emit_16(903);
+emit_16(838);
+emit_16(903);
+emit_16(839);
+emit_16(904);
+emit_16(840);
+emit_16(904);
+emit_16(839);
+emit_16(904);
+emit_16(840);
+emit_16(905);
+emit_16(841);
+emit_16(905);
+emit_16(840);
+emit_16(905);
+emit_16(841);
+emit_16(906);
+emit_16(842);
+emit_16(906);
+emit_16(841);
+emit_16(906);
+emit_16(842);
+emit_16(907);
+emit_16(843);
+emit_16(907);
+emit_16(842);
+emit_16(907);
+emit_16(843);
+emit_16(908);
+emit_16(844);
+emit_16(908);
+emit_16(843);
+emit_16(908);
+emit_16(844);
+emit_16(909);
+emit_16(845);
+emit_16(909);
+emit_16(844);
+emit_16(909);
+emit_16(845);
+emit_16(910);
+emit_16(846);
+emit_16(910);
+emit_16(845);
+emit_16(910);
+emit_16(846);
+emit_16(911);
+emit_16(847);
+emit_16(911);
+emit_16(846);
+emit_16(911);
+emit_16(847);
+emit_16(912);
+emit_16(848);
+emit_16(912);
+emit_16(847);
+emit_16(912);
+emit_16(848);
+emit_16(913);
+emit_16(849);
+emit_16(913);
+emit_16(848);
+emit_16(913);
+emit_16(849);
+emit_16(914);
+emit_16(850);
+emit_16(914);
+emit_16(849);
+emit_16(914);
+emit_16(850);
+emit_16(915);
+emit_16(851);
+emit_16(915);
+emit_16(850);
+emit_16(915);
+emit_16(851);
+emit_16(916);
+emit_16(852);
+emit_16(916);
+emit_16(851);
+emit_16(916);
+emit_16(852);
+emit_16(917);
+emit_16(853);
+emit_16(917);
+emit_16(852);
+emit_16(917);
+emit_16(853);
+emit_16(918);
+emit_16(854);
+emit_16(918);
+emit_16(853);
+emit_16(918);
+emit_16(854);
+emit_16(919);
+emit_16(855);
+emit_16(919);
+emit_16(854);
+emit_16(919);
+emit_16(855);
+emit_16(920);
+emit_16(856);
+emit_16(920);
+emit_16(855);
+emit_16(920);
+emit_16(856);
+emit_16(921);
+emit_16(857);
+emit_16(921);
+emit_16(856);
+emit_16(921);
+emit_16(857);
+emit_16(922);
+emit_16(858);
+emit_16(922);
+emit_16(857);
+emit_16(922);
+emit_16(858);
+emit_16(923);
+emit_16(859);
+emit_16(923);
+emit_16(858);
+emit_16(923);
+emit_16(859);
+emit_16(924);
+emit_16(860);
+emit_16(924);
+emit_16(859);
+emit_16(924);
+emit_16(860);
+emit_16(925);
+emit_16(861);
+emit_16(925);
+emit_16(860);
+emit_16(925);
+emit_16(861);
+emit_16(926);
+emit_16(862);
+emit_16(926);
+emit_16(861);
+emit_16(926);
+emit_16(862);
+emit_16(927);
+emit_16(863);
+emit_16(927);
+emit_16(862);
+emit_16(927);
+emit_16(863);
+emit_16(928);
+emit_16(864);
+emit_16(928);
+emit_16(863);
+emit_16(928);
+emit_16(864);
+emit_16(929);
+emit_16(865);
+emit_16(929);
+emit_16(864);
+emit_16(929);
+emit_16(865);
+emit_16(930);
+emit_16(866);
+emit_16(930);
+emit_16(865);
+emit_16(930);
+emit_16(866);
+emit_16(931);
+emit_16(867);
+emit_16(931);
+emit_16(866);
+emit_16(931);
+emit_16(867);
+emit_16(932);
+emit_16(868);
+emit_16(932);
+emit_16(867);
+emit_16(932);
+emit_16(868);
+emit_16(933);
+emit_16(869);
+emit_16(933);
+emit_16(868);
+emit_16(933);
+emit_16(869);
+emit_16(934);
+emit_16(870);
+emit_16(934);
+emit_16(869);
+emit_16(934);
+emit_16(870);
+emit_16(935);
+emit_16(871);
+emit_16(935);
+emit_16(870);
+emit_16(935);
+emit_16(871);
+emit_16(936);
+emit_16(872);
+emit_16(936);
+emit_16(871);
+emit_16(936);
+emit_16(872);
+emit_16(937);
+emit_16(873);
+emit_16(937);
+emit_16(872);
+emit_16(937);
+emit_16(873);
+emit_16(938);
+emit_16(874);
+emit_16(938);
+emit_16(873);
+emit_16(938);
+emit_16(874);
+emit_16(939);
+emit_16(875);
+emit_16(939);
+emit_16(874);
+emit_16(939);
+emit_16(875);
+emit_16(940);
+emit_16(876);
+emit_16(940);
+emit_16(875);
+emit_16(940);
+emit_16(876);
+emit_16(941);
+emit_16(877);
+emit_16(941);
+emit_16(876);
+emit_16(941);
+emit_16(877);
+emit_16(942);
+emit_16(878);
+emit_16(942);
+emit_16(877);
+emit_16(942);
+emit_16(878);
+emit_16(943);
+emit_16(879);
+emit_16(943);
+emit_16(878);
+emit_16(943);
+emit_16(879);
+emit_16(944);
+emit_16(880);
+emit_16(944);
+emit_16(879);
+emit_16(944);
+emit_16(880);
+emit_16(945);
+emit_16(881);
+emit_16(945);
+emit_16(880);
+emit_16(945);
+emit_16(881);
+emit_16(946);
+emit_16(882);
+emit_16(946);
+emit_16(881);
+emit_16(946);
+emit_16(882);
+emit_16(947);
+emit_16(883);
+emit_16(947);
+emit_16(882);
+emit_16(947);
+emit_16(883);
+emit_16(948);
+emit_16(884);
+emit_16(948);
+emit_16(883);
+emit_16(948);
+emit_16(884);
+emit_16(949);
+emit_16(885);
+emit_16(949);
+emit_16(884);
+emit_16(949);
+emit_16(885);
+emit_16(950);
+emit_16(886);
+emit_16(950);
+emit_16(885);
+emit_16(950);
+emit_16(886);
+emit_16(951);
+emit_16(887);
+emit_16(951);
+emit_16(886);
+emit_16(951);
+emit_16(887);
+emit_16(952);
+emit_16(888);
+emit_16(952);
+emit_16(887);
+emit_16(952);
+emit_16(888);
+emit_16(953);
+emit_16(889);
+emit_16(953);
+emit_16(888);
+emit_16(953);
+emit_16(889);
+emit_16(954);
+emit_16(890);
+emit_16(954);
+emit_16(889);
+emit_16(954);
+emit_16(890);
+emit_16(955);
+emit_16(891);
+emit_16(955);
+emit_16(890);
+emit_16(955);
+emit_16(891);
+emit_16(956);
+emit_16(892);
+emit_16(956);
+emit_16(891);
+emit_16(956);
+emit_16(892);
+emit_16(957);
+emit_16(893);
+emit_16(957);
+emit_16(892);
+emit_16(957);
+emit_16(893);
+emit_16(958);
+emit_16(894);
+emit_16(958);
+emit_16(893);
+emit_16(958);
+emit_16(894);
+emit_16(959);
+emit_16(895);
+emit_16(959);
+emit_16(894);
+emit_16(960);
+emit_16(896);
+emit_16(961);
+emit_16(897);
+emit_16(961);
+emit_16(896);
+emit_16(961);
+emit_16(897);
+emit_16(962);
+emit_16(898);
+emit_16(962);
+emit_16(897);
+emit_16(962);
+emit_16(898);
+emit_16(963);
+emit_16(899);
+emit_16(963);
+emit_16(898);
+emit_16(963);
+emit_16(899);
+emit_16(964);
+emit_16(900);
+emit_16(964);
+emit_16(899);
+emit_16(964);
+emit_16(900);
+emit_16(965);
+emit_16(901);
+emit_16(965);
+emit_16(900);
+emit_16(965);
+emit_16(901);
+emit_16(966);
+emit_16(902);
+emit_16(966);
+emit_16(901);
+emit_16(966);
+emit_16(902);
+emit_16(967);
+emit_16(903);
+emit_16(967);
+emit_16(902);
+emit_16(967);
+emit_16(903);
+emit_16(968);
+emit_16(904);
+emit_16(968);
+emit_16(903);
+emit_16(968);
+emit_16(904);
+emit_16(969);
+emit_16(905);
+emit_16(969);
+emit_16(904);
+emit_16(969);
+emit_16(905);
+emit_16(970);
+emit_16(906);
+emit_16(970);
+emit_16(905);
+emit_16(970);
+emit_16(906);
+emit_16(971);
+emit_16(907);
+emit_16(971);
+emit_16(906);
+emit_16(971);
+emit_16(907);
+emit_16(972);
+emit_16(908);
+emit_16(972);
+emit_16(907);
+emit_16(972);
+emit_16(908);
+emit_16(973);
+emit_16(909);
+emit_16(973);
+emit_16(908);
+emit_16(973);
+emit_16(909);
+emit_16(974);
+emit_16(910);
+emit_16(974);
+emit_16(909);
+emit_16(974);
+emit_16(910);
+emit_16(975);
+emit_16(911);
+emit_16(975);
+emit_16(910);
+emit_16(975);
+emit_16(911);
+emit_16(976);
+emit_16(912);
+emit_16(976);
+emit_16(911);
+emit_16(976);
+emit_16(912);
+emit_16(977);
+emit_16(913);
+emit_16(977);
+emit_16(912);
+emit_16(977);
+emit_16(913);
+emit_16(978);
+emit_16(914);
+emit_16(978);
+emit_16(913);
+emit_16(978);
+emit_16(914);
+emit_16(979);
+emit_16(915);
+emit_16(979);
+emit_16(914);
+emit_16(979);
+emit_16(915);
+emit_16(980);
+emit_16(916);
+emit_16(980);
+emit_16(915);
+emit_16(980);
+emit_16(916);
+emit_16(981);
+emit_16(917);
+emit_16(981);
+emit_16(916);
+emit_16(981);
+emit_16(917);
+emit_16(982);
+emit_16(918);
+emit_16(982);
+emit_16(917);
+emit_16(982);
+emit_16(918);
+emit_16(983);
+emit_16(919);
+emit_16(983);
+emit_16(918);
+emit_16(983);
+emit_16(919);
+emit_16(984);
+emit_16(920);
+emit_16(984);
+emit_16(919);
+emit_16(984);
+emit_16(920);
+emit_16(985);
+emit_16(921);
+emit_16(985);
+emit_16(920);
+emit_16(985);
+emit_16(921);
+emit_16(986);
+emit_16(922);
+emit_16(986);
+emit_16(921);
+emit_16(986);
+emit_16(922);
+emit_16(987);
+emit_16(923);
+emit_16(987);
+emit_16(922);
+emit_16(987);
+emit_16(923);
+emit_16(988);
+emit_16(924);
+emit_16(988);
+emit_16(923);
+emit_16(988);
+emit_16(924);
+emit_16(989);
+emit_16(925);
+emit_16(989);
+emit_16(924);
+emit_16(989);
+emit_16(925);
+emit_16(990);
+emit_16(926);
+emit_16(990);
+emit_16(925);
+emit_16(990);
+emit_16(926);
+emit_16(991);
+emit_16(927);
+emit_16(991);
+emit_16(926);
+emit_16(991);
+emit_16(927);
+emit_16(992);
+emit_16(928);
+emit_16(992);
+emit_16(927);
+emit_16(992);
+emit_16(928);
+emit_16(993);
+emit_16(929);
+emit_16(993);
+emit_16(928);
+emit_16(993);
+emit_16(929);
+emit_16(994);
+emit_16(930);
+emit_16(994);
+emit_16(929);
+emit_16(994);
+emit_16(930);
+emit_16(995);
+emit_16(931);
+emit_16(995);
+emit_16(930);
+emit_16(995);
+emit_16(931);
+emit_16(996);
+emit_16(932);
+emit_16(996);
+emit_16(931);
+emit_16(996);
+emit_16(932);
+emit_16(997);
+emit_16(933);
+emit_16(997);
+emit_16(932);
+emit_16(997);
+emit_16(933);
+emit_16(998);
+emit_16(934);
+emit_16(998);
+emit_16(933);
+emit_16(998);
+emit_16(934);
+emit_16(999);
+emit_16(935);
+emit_16(999);
+emit_16(934);
+emit_16(999);
+emit_16(935);
+emit_16(1000);
+emit_16(936);
+emit_16(1000);
+emit_16(935);
+emit_16(1000);
+emit_16(936);
+emit_16(1001);
+emit_16(937);
+emit_16(1001);
+emit_16(936);
+emit_16(1001);
+emit_16(937);
+emit_16(1002);
+emit_16(938);
+emit_16(1002);
+emit_16(937);
+emit_16(1002);
+emit_16(938);
+emit_16(1003);
+emit_16(939);
+emit_16(1003);
+emit_16(938);
+emit_16(1003);
+emit_16(939);
+emit_16(1004);
+emit_16(940);
+emit_16(1004);
+emit_16(939);
+emit_16(1004);
+emit_16(940);
+emit_16(1005);
+emit_16(941);
+emit_16(1005);
+emit_16(940);
+emit_16(1005);
+emit_16(941);
+emit_16(1006);
+emit_16(942);
+emit_16(1006);
+emit_16(941);
+emit_16(1006);
+emit_16(942);
+emit_16(1007);
+emit_16(943);
+emit_16(1007);
+emit_16(942);
+emit_16(1007);
+emit_16(943);
+emit_16(1008);
+emit_16(944);
+emit_16(1008);
+emit_16(943);
+emit_16(1008);
+emit_16(944);
+emit_16(1009);
+emit_16(945);
+emit_16(1009);
+emit_16(944);
+emit_16(1009);
+emit_16(945);
+emit_16(1010);
+emit_16(946);
+emit_16(1010);
+emit_16(945);
+emit_16(1010);
+emit_16(946);
+emit_16(1011);
+emit_16(947);
+emit_16(1011);
+emit_16(946);
+emit_16(1011);
+emit_16(947);
+emit_16(1012);
+emit_16(948);
+emit_16(1012);
+emit_16(947);
+emit_16(1012);
+emit_16(948);
+emit_16(1013);
+emit_16(949);
+emit_16(1013);
+emit_16(948);
+emit_16(1013);
+emit_16(949);
+emit_16(1014);
+emit_16(950);
+emit_16(1014);
+emit_16(949);
+emit_16(1014);
+emit_16(950);
+emit_16(1015);
+emit_16(951);
+emit_16(1015);
+emit_16(950);
+emit_16(1015);
+emit_16(951);
+emit_16(1016);
+emit_16(952);
+emit_16(1016);
+emit_16(951);
+emit_16(1016);
+emit_16(952);
+emit_16(1017);
+emit_16(953);
+emit_16(1017);
+emit_16(952);
+emit_16(1017);
+emit_16(953);
+emit_16(1018);
+emit_16(954);
+emit_16(1018);
+emit_16(953);
+emit_16(1018);
+emit_16(954);
+emit_16(1019);
+emit_16(955);
+emit_16(1019);
+emit_16(954);
+emit_16(1019);
+emit_16(955);
+emit_16(1020);
+emit_16(956);
+emit_16(1020);
+emit_16(955);
+emit_16(1020);
+emit_16(956);
+emit_16(1021);
+emit_16(957);
+emit_16(1021);
+emit_16(956);
+emit_16(1021);
+emit_16(957);
+emit_16(1022);
+emit_16(958);
+emit_16(1022);
+emit_16(957);
+emit_16(1022);
+emit_16(958);
+emit_16(1023);
+emit_16(959);
+emit_16(1023);
+emit_16(958);
+emit_16(1024);
+emit_16(960);
+emit_16(1025);
+emit_16(961);
+emit_16(1025);
+emit_16(960);
+emit_16(1025);
+emit_16(961);
+emit_16(1026);
+emit_16(962);
+emit_16(1026);
+emit_16(961);
+emit_16(1026);
+emit_16(962);
+emit_16(1027);
+emit_16(963);
+emit_16(1027);
+emit_16(962);
+emit_16(1027);
+emit_16(963);
+emit_16(1028);
+emit_16(964);
+emit_16(1028);
+emit_16(963);
+emit_16(1028);
+emit_16(964);
+emit_16(1029);
+emit_16(965);
+emit_16(1029);
+emit_16(964);
+emit_16(1029);
+emit_16(965);
+emit_16(1030);
+emit_16(966);
+emit_16(1030);
+emit_16(965);
+emit_16(1030);
+emit_16(966);
+emit_16(1031);
+emit_16(967);
+emit_16(1031);
+emit_16(966);
+emit_16(1031);
+emit_16(967);
+emit_16(1032);
+emit_16(968);
+emit_16(1032);
+emit_16(967);
+emit_16(1032);
+emit_16(968);
+emit_16(1033);
+emit_16(969);
+emit_16(1033);
+emit_16(968);
+emit_16(1033);
+emit_16(969);
+emit_16(1034);
+emit_16(970);
+emit_16(1034);
+emit_16(969);
+emit_16(1034);
+emit_16(970);
+emit_16(1035);
+emit_16(971);
+emit_16(1035);
+emit_16(970);
+emit_16(1035);
+emit_16(971);
+emit_16(1036);
+emit_16(972);
+emit_16(1036);
+emit_16(971);
+emit_16(1036);
+emit_16(972);
+emit_16(1037);
+emit_16(973);
+emit_16(1037);
+emit_16(972);
+emit_16(1037);
+emit_16(973);
+emit_16(1038);
+emit_16(974);
+emit_16(1038);
+emit_16(973);
+emit_16(1038);
+emit_16(974);
+emit_16(1039);
+emit_16(975);
+emit_16(1039);
+emit_16(974);
+emit_16(1039);
+emit_16(975);
+emit_16(1040);
+emit_16(976);
+emit_16(1040);
+emit_16(975);
+emit_16(1040);
+emit_16(976);
+emit_16(1041);
+emit_16(977);
+emit_16(1041);
+emit_16(976);
+emit_16(1041);
+emit_16(977);
+emit_16(1042);
+emit_16(978);
+emit_16(1042);
+emit_16(977);
+emit_16(1042);
+emit_16(978);
+emit_16(1043);
+emit_16(979);
+emit_16(1043);
+emit_16(978);
+emit_16(1043);
+emit_16(979);
+emit_16(1044);
+emit_16(980);
+emit_16(1044);
+emit_16(979);
+emit_16(1044);
+emit_16(980);
+emit_16(1045);
+emit_16(981);
+emit_16(1045);
+emit_16(980);
+emit_16(1045);
+emit_16(981);
+emit_16(1046);
+emit_16(982);
+emit_16(1046);
+emit_16(981);
+emit_16(1046);
+emit_16(982);
+emit_16(1047);
+emit_16(983);
+emit_16(1047);
+emit_16(982);
+emit_16(1047);
+emit_16(983);
+emit_16(1048);
+emit_16(984);
+emit_16(1048);
+emit_16(983);
+emit_16(1048);
+emit_16(984);
+emit_16(1049);
+emit_16(985);
+emit_16(1049);
+emit_16(984);
+emit_16(1049);
+emit_16(985);
+emit_16(1050);
+emit_16(986);
+emit_16(1050);
+emit_16(985);
+emit_16(1050);
+emit_16(986);
+emit_16(1051);
+emit_16(987);
+emit_16(1051);
+emit_16(986);
+emit_16(1051);
+emit_16(987);
+emit_16(1052);
+emit_16(988);
+emit_16(1052);
+emit_16(987);
+emit_16(1052);
+emit_16(988);
+emit_16(1053);
+emit_16(989);
+emit_16(1053);
+emit_16(988);
+emit_16(1053);
+emit_16(989);
+emit_16(1054);
+emit_16(990);
+emit_16(1054);
+emit_16(989);
+emit_16(1054);
+emit_16(990);
+emit_16(1055);
+emit_16(991);
+emit_16(1055);
+emit_16(990);
+emit_16(1055);
+emit_16(991);
+emit_16(1056);
+emit_16(992);
+emit_16(1056);
+emit_16(991);
+emit_16(1056);
+emit_16(992);
+emit_16(1057);
+emit_16(993);
+emit_16(1057);
+emit_16(992);
+emit_16(1057);
+emit_16(993);
+emit_16(1058);
+emit_16(994);
+emit_16(1058);
+emit_16(993);
+emit_16(1058);
+emit_16(994);
+emit_16(1059);
+emit_16(995);
+emit_16(1059);
+emit_16(994);
+emit_16(1059);
+emit_16(995);
+emit_16(1060);
+emit_16(996);
+emit_16(1060);
+emit_16(995);
+emit_16(1060);
+emit_16(996);
+emit_16(1061);
+emit_16(997);
+emit_16(1061);
+emit_16(996);
+emit_16(1061);
+emit_16(997);
+emit_16(1062);
+emit_16(998);
+emit_16(1062);
+emit_16(997);
+emit_16(1062);
+emit_16(998);
+emit_16(1063);
+emit_16(999);
+emit_16(1063);
+emit_16(998);
+emit_16(1063);
+emit_16(999);
+emit_16(1064);
+emit_16(1000);
+emit_16(1064);
+emit_16(999);
+emit_16(1064);
+emit_16(1000);
+emit_16(1065);
+emit_16(1001);
+emit_16(1065);
+emit_16(1000);
+emit_16(1065);
+emit_16(1001);
+emit_16(1066);
+emit_16(1002);
+emit_16(1066);
+emit_16(1001);
+emit_16(1066);
+emit_16(1002);
+emit_16(1067);
+emit_16(1003);
+emit_16(1067);
+emit_16(1002);
+emit_16(1067);
+emit_16(1003);
+emit_16(1068);
+emit_16(1004);
+emit_16(1068);
+emit_16(1003);
+emit_16(1068);
+emit_16(1004);
+emit_16(1069);
+emit_16(1005);
+emit_16(1069);
+emit_16(1004);
+emit_16(1069);
+emit_16(1005);
+emit_16(1070);
+emit_16(1006);
+emit_16(1070);
+emit_16(1005);
+emit_16(1070);
+emit_16(1006);
+emit_16(1071);
+emit_16(1007);
+emit_16(1071);
+emit_16(1006);
+emit_16(1071);
+emit_16(1007);
+emit_16(1072);
+emit_16(1008);
+emit_16(1072);
+emit_16(1007);
+emit_16(1072);
+emit_16(1008);
+emit_16(1073);
+emit_16(1009);
+emit_16(1073);
+emit_16(1008);
+emit_16(1073);
+emit_16(1009);
+emit_16(1074);
+emit_16(1010);
+emit_16(1074);
+emit_16(1009);
+emit_16(1074);
+emit_16(1010);
+emit_16(1075);
+emit_16(1011);
+emit_16(1075);
+emit_16(1010);
+emit_16(1075);
+emit_16(1011);
+emit_16(1076);
+emit_16(1012);
+emit_16(1076);
+emit_16(1011);
+emit_16(1076);
+emit_16(1012);
+emit_16(1077);
+emit_16(1013);
+emit_16(1077);
+emit_16(1012);
+emit_16(1077);
+emit_16(1013);
+emit_16(1078);
+emit_16(1014);
+emit_16(1078);
+emit_16(1013);
+emit_16(1078);
+emit_16(1014);
+emit_16(1079);
+emit_16(1015);
+emit_16(1079);
+emit_16(1014);
+emit_16(1079);
+emit_16(1015);
+emit_16(1080);
+emit_16(1016);
+emit_16(1080);
+emit_16(1015);
+emit_16(1080);
+emit_16(1016);
+emit_16(1081);
+emit_16(1017);
+emit_16(1081);
+emit_16(1016);
+emit_16(1081);
+emit_16(1017);
+emit_16(1082);
+emit_16(1018);
+emit_16(1082);
+emit_16(1017);
+emit_16(1082);
+emit_16(1018);
+emit_16(1083);
+emit_16(1019);
+emit_16(1083);
+emit_16(1018);
+emit_16(1083);
+emit_16(1019);
+emit_16(1084);
+emit_16(1020);
+emit_16(1084);
+emit_16(1019);
+emit_16(1084);
+emit_16(1020);
+emit_16(1085);
+emit_16(1021);
+emit_16(1085);
+emit_16(1020);
+emit_16(1085);
+emit_16(1021);
+emit_16(1086);
+emit_16(1022);
+emit_16(1086);
+emit_16(1021);
+emit_16(1086);
+emit_16(1022);
+emit_16(1087);
+emit_16(1023);
+emit_16(1087);
+emit_16(1022);
+emit_16(1088);
+emit_16(1024);
+emit_16(1089);
+emit_16(1025);
+emit_16(1089);
+emit_16(1024);
+emit_16(1089);
+emit_16(1025);
+emit_16(1090);
+emit_16(1026);
+emit_16(1090);
+emit_16(1025);
+emit_16(1090);
+emit_16(1026);
+emit_16(1091);
+emit_16(1027);
+emit_16(1091);
+emit_16(1026);
+emit_16(1091);
+emit_16(1027);
+emit_16(1092);
+emit_16(1028);
+emit_16(1092);
+emit_16(1027);
+emit_16(1092);
+emit_16(1028);
+emit_16(1093);
+emit_16(1029);
+emit_16(1093);
+emit_16(1028);
+emit_16(1093);
+emit_16(1029);
+emit_16(1094);
+emit_16(1030);
+emit_16(1094);
+emit_16(1029);
+emit_16(1094);
+emit_16(1030);
+emit_16(1095);
+emit_16(1031);
+emit_16(1095);
+emit_16(1030);
+emit_16(1095);
+emit_16(1031);
+emit_16(1096);
+emit_16(1032);
+emit_16(1096);
+emit_16(1031);
+emit_16(1096);
+emit_16(1032);
+emit_16(1097);
+emit_16(1033);
+emit_16(1097);
+emit_16(1032);
+emit_16(1097);
+emit_16(1033);
+emit_16(1098);
+emit_16(1034);
+emit_16(1098);
+emit_16(1033);
+emit_16(1098);
+emit_16(1034);
+emit_16(1099);
+emit_16(1035);
+emit_16(1099);
+emit_16(1034);
+emit_16(1099);
+emit_16(1035);
+emit_16(1100);
+emit_16(1036);
+emit_16(1100);
+emit_16(1035);
+emit_16(1100);
+emit_16(1036);
+emit_16(1101);
+emit_16(1037);
+emit_16(1101);
+emit_16(1036);
+emit_16(1101);
+emit_16(1037);
+emit_16(1102);
+emit_16(1038);
+emit_16(1102);
+emit_16(1037);
+emit_16(1102);
+emit_16(1038);
+emit_16(1103);
+emit_16(1039);
+emit_16(1103);
+emit_16(1038);
+emit_16(1103);
+emit_16(1039);
+emit_16(1104);
+emit_16(1040);
+emit_16(1104);
+emit_16(1039);
+emit_16(1104);
+emit_16(1040);
+emit_16(1105);
+emit_16(1041);
+emit_16(1105);
+emit_16(1040);
+emit_16(1105);
+emit_16(1041);
+emit_16(1106);
+emit_16(1042);
+emit_16(1106);
+emit_16(1041);
+emit_16(1106);
+emit_16(1042);
+emit_16(1107);
+emit_16(1043);
+emit_16(1107);
+emit_16(1042);
+emit_16(1107);
+emit_16(1043);
+emit_16(1108);
+emit_16(1044);
+emit_16(1108);
+emit_16(1043);
+emit_16(1108);
+emit_16(1044);
+emit_16(1109);
+emit_16(1045);
+emit_16(1109);
+emit_16(1044);
+emit_16(1109);
+emit_16(1045);
+emit_16(1110);
+emit_16(1046);
+emit_16(1110);
+emit_16(1045);
+emit_16(1110);
+emit_16(1046);
+emit_16(1111);
+emit_16(1047);
+emit_16(1111);
+emit_16(1046);
+emit_16(1111);
+emit_16(1047);
+emit_16(1112);
+emit_16(1048);
+emit_16(1112);
+emit_16(1047);
+emit_16(1112);
+emit_16(1048);
+emit_16(1113);
+emit_16(1049);
+emit_16(1113);
+emit_16(1048);
+emit_16(1113);
+emit_16(1049);
+emit_16(1114);
+emit_16(1050);
+emit_16(1114);
+emit_16(1049);
+emit_16(1114);
+emit_16(1050);
+emit_16(1115);
+emit_16(1051);
+emit_16(1115);
+emit_16(1050);
+emit_16(1115);
+emit_16(1051);
+emit_16(1116);
+emit_16(1052);
+emit_16(1116);
+emit_16(1051);
+emit_16(1116);
+emit_16(1052);
+emit_16(1117);
+emit_16(1053);
+emit_16(1117);
+emit_16(1052);
+emit_16(1117);
+emit_16(1053);
+emit_16(1118);
+emit_16(1054);
+emit_16(1118);
+emit_16(1053);
+emit_16(1118);
+emit_16(1054);
+emit_16(1119);
+emit_16(1055);
+emit_16(1119);
+emit_16(1054);
+emit_16(1119);
+emit_16(1055);
+emit_16(1120);
+emit_16(1056);
+emit_16(1120);
+emit_16(1055);
+emit_16(1120);
+emit_16(1056);
+emit_16(1121);
+emit_16(1057);
+emit_16(1121);
+emit_16(1056);
+emit_16(1121);
+emit_16(1057);
+emit_16(1122);
+emit_16(1058);
+emit_16(1122);
+emit_16(1057);
+emit_16(1122);
+emit_16(1058);
+emit_16(1123);
+emit_16(1059);
+emit_16(1123);
+emit_16(1058);
+emit_16(1123);
+emit_16(1059);
+emit_16(1124);
+emit_16(1060);
+emit_16(1124);
+emit_16(1059);
+emit_16(1124);
+emit_16(1060);
+emit_16(1125);
+emit_16(1061);
+emit_16(1125);
+emit_16(1060);
+emit_16(1125);
+emit_16(1061);
+emit_16(1126);
+emit_16(1062);
+emit_16(1126);
+emit_16(1061);
+emit_16(1126);
+emit_16(1062);
+emit_16(1127);
+emit_16(1063);
+emit_16(1127);
+emit_16(1062);
+emit_16(1127);
+emit_16(1063);
+emit_16(1128);
+emit_16(1064);
+emit_16(1128);
+emit_16(1063);
+emit_16(1128);
+emit_16(1064);
+emit_16(1129);
+emit_16(1065);
+emit_16(1129);
+emit_16(1064);
+emit_16(1129);
+emit_16(1065);
+emit_16(1130);
+emit_16(1066);
+emit_16(1130);
+emit_16(1065);
+emit_16(1130);
+emit_16(1066);
+emit_16(1131);
+emit_16(1067);
+emit_16(1131);
+emit_16(1066);
+emit_16(1131);
+emit_16(1067);
+emit_16(1132);
+emit_16(1068);
+emit_16(1132);
+emit_16(1067);
+emit_16(1132);
+emit_16(1068);
+emit_16(1133);
+emit_16(1069);
+emit_16(1133);
+emit_16(1068);
+emit_16(1133);
+emit_16(1069);
+emit_16(1134);
+emit_16(1070);
+emit_16(1134);
+emit_16(1069);
+emit_16(1134);
+emit_16(1070);
+emit_16(1135);
+emit_16(1071);
+emit_16(1135);
+emit_16(1070);
+emit_16(1135);
+emit_16(1071);
+emit_16(1136);
+emit_16(1072);
+emit_16(1136);
+emit_16(1071);
+emit_16(1136);
+emit_16(1072);
+emit_16(1137);
+emit_16(1073);
+emit_16(1137);
+emit_16(1072);
+emit_16(1137);
+emit_16(1073);
+emit_16(1138);
+emit_16(1074);
+emit_16(1138);
+emit_16(1073);
+emit_16(1138);
+emit_16(1074);
+emit_16(1139);
+emit_16(1075);
+emit_16(1139);
+emit_16(1074);
+emit_16(1139);
+emit_16(1075);
+emit_16(1140);
+emit_16(1076);
+emit_16(1140);
+emit_16(1075);
+emit_16(1140);
+emit_16(1076);
+emit_16(1141);
+emit_16(1077);
+emit_16(1141);
+emit_16(1076);
+emit_16(1141);
+emit_16(1077);
+emit_16(1142);
+emit_16(1078);
+emit_16(1142);
+emit_16(1077);
+emit_16(1142);
+emit_16(1078);
+emit_16(1143);
+emit_16(1079);
+emit_16(1143);
+emit_16(1078);
+emit_16(1143);
+emit_16(1079);
+emit_16(1144);
+emit_16(1080);
+emit_16(1144);
+emit_16(1079);
+emit_16(1144);
+emit_16(1080);
+emit_16(1145);
+emit_16(1081);
+emit_16(1145);
+emit_16(1080);
+emit_16(1145);
+emit_16(1081);
+emit_16(1146);
+emit_16(1082);
+emit_16(1146);
+emit_16(1081);
+emit_16(1146);
+emit_16(1082);
+emit_16(1147);
+emit_16(1083);
+emit_16(1147);
+emit_16(1082);
+emit_16(1147);
+emit_16(1083);
+emit_16(1148);
+emit_16(1084);
+emit_16(1148);
+emit_16(1083);
+emit_16(1148);
+emit_16(1084);
+emit_16(1149);
+emit_16(1085);
+emit_16(1149);
+emit_16(1084);
+emit_16(1149);
+emit_16(1085);
+emit_16(1150);
+emit_16(1086);
+emit_16(1150);
+emit_16(1085);
+emit_16(1150);
+emit_16(1086);
+emit_16(1151);
+emit_16(1087);
+emit_16(1151);
+emit_16(1086);
+emit_16(1152);
+emit_16(1088);
+emit_16(1153);
+emit_16(1089);
+emit_16(1153);
+emit_16(1088);
+emit_16(1153);
+emit_16(1089);
+emit_16(1154);
+emit_16(1090);
+emit_16(1154);
+emit_16(1089);
+emit_16(1154);
+emit_16(1090);
+emit_16(1155);
+emit_16(1091);
+emit_16(1155);
+emit_16(1090);
+emit_16(1155);
+emit_16(1091);
+emit_16(1156);
+emit_16(1092);
+emit_16(1156);
+emit_16(1091);
+emit_16(1156);
+emit_16(1092);
+emit_16(1157);
+emit_16(1093);
+emit_16(1157);
+emit_16(1092);
+emit_16(1157);
+emit_16(1093);
+emit_16(1158);
+emit_16(1094);
+emit_16(1158);
+emit_16(1093);
+emit_16(1158);
+emit_16(1094);
+emit_16(1159);
+emit_16(1095);
+emit_16(1159);
+emit_16(1094);
+emit_16(1159);
+emit_16(1095);
+emit_16(1160);
+emit_16(1096);
+emit_16(1160);
+emit_16(1095);
+emit_16(1160);
+emit_16(1096);
+emit_16(1161);
+emit_16(1097);
+emit_16(1161);
+emit_16(1096);
+emit_16(1161);
+emit_16(1097);
+emit_16(1162);
+emit_16(1098);
+emit_16(1162);
+emit_16(1097);
+emit_16(1162);
+emit_16(1098);
+emit_16(1163);
+emit_16(1099);
+emit_16(1163);
+emit_16(1098);
+emit_16(1163);
+emit_16(1099);
+emit_16(1164);
+emit_16(1100);
+emit_16(1164);
+emit_16(1099);
+emit_16(1164);
+emit_16(1100);
+emit_16(1165);
+emit_16(1101);
+emit_16(1165);
+emit_16(1100);
+emit_16(1165);
+emit_16(1101);
+emit_16(1166);
+emit_16(1102);
+emit_16(1166);
+emit_16(1101);
+emit_16(1166);
+emit_16(1102);
+emit_16(1167);
+emit_16(1103);
+emit_16(1167);
+emit_16(1102);
+emit_16(1167);
+emit_16(1103);
+emit_16(1168);
+emit_16(1104);
+emit_16(1168);
+emit_16(1103);
+emit_16(1168);
+emit_16(1104);
+emit_16(1169);
+emit_16(1105);
+emit_16(1169);
+emit_16(1104);
+emit_16(1169);
+emit_16(1105);
+emit_16(1170);
+emit_16(1106);
+emit_16(1170);
+emit_16(1105);
+emit_16(1170);
+emit_16(1106);
+emit_16(1171);
+emit_16(1107);
+emit_16(1171);
+emit_16(1106);
+emit_16(1171);
+emit_16(1107);
+emit_16(1172);
+emit_16(1108);
+emit_16(1172);
+emit_16(1107);
+emit_16(1172);
+emit_16(1108);
+emit_16(1173);
+emit_16(1109);
+emit_16(1173);
+emit_16(1108);
+emit_16(1173);
+emit_16(1109);
+emit_16(1174);
+emit_16(1110);
+emit_16(1174);
+emit_16(1109);
+emit_16(1174);
+emit_16(1110);
+emit_16(1175);
+emit_16(1111);
+emit_16(1175);
+emit_16(1110);
+emit_16(1175);
+emit_16(1111);
+emit_16(1176);
+emit_16(1112);
+emit_16(1176);
+emit_16(1111);
+emit_16(1176);
+emit_16(1112);
+emit_16(1177);
+emit_16(1113);
+emit_16(1177);
+emit_16(1112);
+emit_16(1177);
+emit_16(1113);
+emit_16(1178);
+emit_16(1114);
+emit_16(1178);
+emit_16(1113);
+emit_16(1178);
+emit_16(1114);
+emit_16(1179);
+emit_16(1115);
+emit_16(1179);
+emit_16(1114);
+emit_16(1179);
+emit_16(1115);
+emit_16(1180);
+emit_16(1116);
+emit_16(1180);
+emit_16(1115);
+emit_16(1180);
+emit_16(1116);
+emit_16(1181);
+emit_16(1117);
+emit_16(1181);
+emit_16(1116);
+emit_16(1181);
+emit_16(1117);
+emit_16(1182);
+emit_16(1118);
+emit_16(1182);
+emit_16(1117);
+emit_16(1182);
+emit_16(1118);
+emit_16(1183);
+emit_16(1119);
+emit_16(1183);
+emit_16(1118);
+emit_16(1183);
+emit_16(1119);
+emit_16(1184);
+emit_16(1120);
+emit_16(1184);
+emit_16(1119);
+emit_16(1184);
+emit_16(1120);
+emit_16(1185);
+emit_16(1121);
+emit_16(1185);
+emit_16(1120);
+emit_16(1185);
+emit_16(1121);
+emit_16(1186);
+emit_16(1122);
+emit_16(1186);
+emit_16(1121);
+emit_16(1186);
+emit_16(1122);
+emit_16(1187);
+emit_16(1123);
+emit_16(1187);
+emit_16(1122);
+emit_16(1187);
+emit_16(1123);
+emit_16(1188);
+emit_16(1124);
+emit_16(1188);
+emit_16(1123);
+emit_16(1188);
+emit_16(1124);
+emit_16(1189);
+emit_16(1125);
+emit_16(1189);
+emit_16(1124);
+emit_16(1189);
+emit_16(1125);
+emit_16(1190);
+emit_16(1126);
+emit_16(1190);
+emit_16(1125);
+emit_16(1190);
+emit_16(1126);
+emit_16(1191);
+emit_16(1127);
+emit_16(1191);
+emit_16(1126);
+emit_16(1191);
+emit_16(1127);
+emit_16(1192);
+emit_16(1128);
+emit_16(1192);
+emit_16(1127);
+emit_16(1192);
+emit_16(1128);
+emit_16(1193);
+emit_16(1129);
+emit_16(1193);
+emit_16(1128);
+emit_16(1193);
+emit_16(1129);
+emit_16(1194);
+emit_16(1130);
+emit_16(1194);
+emit_16(1129);
+emit_16(1194);
+emit_16(1130);
+emit_16(1195);
+emit_16(1131);
+emit_16(1195);
+emit_16(1130);
+emit_16(1195);
+emit_16(1131);
+emit_16(1196);
+emit_16(1132);
+emit_16(1196);
+emit_16(1131);
+emit_16(1196);
+emit_16(1132);
+emit_16(1197);
+emit_16(1133);
+emit_16(1197);
+emit_16(1132);
+emit_16(1197);
+emit_16(1133);
+emit_16(1198);
+emit_16(1134);
+emit_16(1198);
+emit_16(1133);
+emit_16(1198);
+emit_16(1134);
+emit_16(1199);
+emit_16(1135);
+emit_16(1199);
+emit_16(1134);
+emit_16(1199);
+emit_16(1135);
+emit_16(1200);
+emit_16(1136);
+emit_16(1200);
+emit_16(1135);
+emit_16(1200);
+emit_16(1136);
+emit_16(1201);
+emit_16(1137);
+emit_16(1201);
+emit_16(1136);
+emit_16(1201);
+emit_16(1137);
+emit_16(1202);
+emit_16(1138);
+emit_16(1202);
+emit_16(1137);
+emit_16(1202);
+emit_16(1138);
+emit_16(1203);
+emit_16(1139);
+emit_16(1203);
+emit_16(1138);
+emit_16(1203);
+emit_16(1139);
+emit_16(1204);
+emit_16(1140);
+emit_16(1204);
+emit_16(1139);
+emit_16(1204);
+emit_16(1140);
+emit_16(1205);
+emit_16(1141);
+emit_16(1205);
+emit_16(1140);
+emit_16(1205);
+emit_16(1141);
+emit_16(1206);
+emit_16(1142);
+emit_16(1206);
+emit_16(1141);
+emit_16(1206);
+emit_16(1142);
+emit_16(1207);
+emit_16(1143);
+emit_16(1207);
+emit_16(1142);
+emit_16(1207);
+emit_16(1143);
+emit_16(1208);
+emit_16(1144);
+emit_16(1208);
+emit_16(1143);
+emit_16(1208);
+emit_16(1144);
+emit_16(1209);
+emit_16(1145);
+emit_16(1209);
+emit_16(1144);
+emit_16(1209);
+emit_16(1145);
+emit_16(1210);
+emit_16(1146);
+emit_16(1210);
+emit_16(1145);
+emit_16(1210);
+emit_16(1146);
+emit_16(1211);
+emit_16(1147);
+emit_16(1211);
+emit_16(1146);
+emit_16(1211);
+emit_16(1147);
+emit_16(1212);
+emit_16(1148);
+emit_16(1212);
+emit_16(1147);
+emit_16(1212);
+emit_16(1148);
+emit_16(1213);
+emit_16(1149);
+emit_16(1213);
+emit_16(1148);
+emit_16(1213);
+emit_16(1149);
+emit_16(1214);
+emit_16(1150);
+emit_16(1214);
+emit_16(1149);
+emit_16(1214);
+emit_16(1150);
+emit_16(1215);
+emit_16(1151);
+emit_16(1215);
+emit_16(1150);
+emit_16(1216);
+emit_16(1152);
+emit_16(1217);
+emit_16(1153);
+emit_16(1217);
+emit_16(1152);
+emit_16(1217);
+emit_16(1153);
+emit_16(1218);
+emit_16(1154);
+emit_16(1218);
+emit_16(1153);
+emit_16(1218);
+emit_16(1154);
+emit_16(1219);
+emit_16(1155);
+emit_16(1219);
+emit_16(1154);
+emit_16(1219);
+emit_16(1155);
+emit_16(1220);
+emit_16(1156);
+emit_16(1220);
+emit_16(1155);
+emit_16(1220);
+emit_16(1156);
+emit_16(1221);
+emit_16(1157);
+emit_16(1221);
+emit_16(1156);
+emit_16(1221);
+emit_16(1157);
+emit_16(1222);
+emit_16(1158);
+emit_16(1222);
+emit_16(1157);
+emit_16(1222);
+emit_16(1158);
+emit_16(1223);
+emit_16(1159);
+emit_16(1223);
+emit_16(1158);
+emit_16(1223);
+emit_16(1159);
+emit_16(1224);
+emit_16(1160);
+emit_16(1224);
+emit_16(1159);
+emit_16(1224);
+emit_16(1160);
+emit_16(1225);
+emit_16(1161);
+emit_16(1225);
+emit_16(1160);
+emit_16(1225);
+emit_16(1161);
+emit_16(1226);
+emit_16(1162);
+emit_16(1226);
+emit_16(1161);
+emit_16(1226);
+emit_16(1162);
+emit_16(1227);
+emit_16(1163);
+emit_16(1227);
+emit_16(1162);
+emit_16(1227);
+emit_16(1163);
+emit_16(1228);
+emit_16(1164);
+emit_16(1228);
+emit_16(1163);
+emit_16(1228);
+emit_16(1164);
+emit_16(1229);
+emit_16(1165);
+emit_16(1229);
+emit_16(1164);
+emit_16(1229);
+emit_16(1165);
+emit_16(1230);
+emit_16(1166);
+emit_16(1230);
+emit_16(1165);
+emit_16(1230);
+emit_16(1166);
+emit_16(1231);
+emit_16(1167);
+emit_16(1231);
+emit_16(1166);
+emit_16(1231);
+emit_16(1167);
+emit_16(1232);
+emit_16(1168);
+emit_16(1232);
+emit_16(1167);
+emit_16(1232);
+emit_16(1168);
+emit_16(1233);
+emit_16(1169);
+emit_16(1233);
+emit_16(1168);
+emit_16(1233);
+emit_16(1169);
+emit_16(1234);
+emit_16(1170);
+emit_16(1234);
+emit_16(1169);
+emit_16(1234);
+emit_16(1170);
+emit_16(1235);
+emit_16(1171);
+emit_16(1235);
+emit_16(1170);
+emit_16(1235);
+emit_16(1171);
+emit_16(1236);
+emit_16(1172);
+emit_16(1236);
+emit_16(1171);
+emit_16(1236);
+emit_16(1172);
+emit_16(1237);
+emit_16(1173);
+emit_16(1237);
+emit_16(1172);
+emit_16(1237);
+emit_16(1173);
+emit_16(1238);
+emit_16(1174);
+emit_16(1238);
+emit_16(1173);
+emit_16(1238);
+emit_16(1174);
+emit_16(1239);
+emit_16(1175);
+emit_16(1239);
+emit_16(1174);
+emit_16(1239);
+emit_16(1175);
+emit_16(1240);
+emit_16(1176);
+emit_16(1240);
+emit_16(1175);
+emit_16(1240);
+emit_16(1176);
+emit_16(1241);
+emit_16(1177);
+emit_16(1241);
+emit_16(1176);
+emit_16(1241);
+emit_16(1177);
+emit_16(1242);
+emit_16(1178);
+emit_16(1242);
+emit_16(1177);
+emit_16(1242);
+emit_16(1178);
+emit_16(1243);
+emit_16(1179);
+emit_16(1243);
+emit_16(1178);
+emit_16(1243);
+emit_16(1179);
+emit_16(1244);
+emit_16(1180);
+emit_16(1244);
+emit_16(1179);
+emit_16(1244);
+emit_16(1180);
+emit_16(1245);
+emit_16(1181);
+emit_16(1245);
+emit_16(1180);
+emit_16(1245);
+emit_16(1181);
+emit_16(1246);
+emit_16(1182);
+emit_16(1246);
+emit_16(1181);
+emit_16(1246);
+emit_16(1182);
+emit_16(1247);
+emit_16(1183);
+emit_16(1247);
+emit_16(1182);
+emit_16(1247);
+emit_16(1183);
+emit_16(1248);
+emit_16(1184);
+emit_16(1248);
+emit_16(1183);
+emit_16(1248);
+emit_16(1184);
+emit_16(1249);
+emit_16(1185);
+emit_16(1249);
+emit_16(1184);
+emit_16(1249);
+emit_16(1185);
+emit_16(1250);
+emit_16(1186);
+emit_16(1250);
+emit_16(1185);
+emit_16(1250);
+emit_16(1186);
+emit_16(1251);
+emit_16(1187);
+emit_16(1251);
+emit_16(1186);
+emit_16(1251);
+emit_16(1187);
+emit_16(1252);
+emit_16(1188);
+emit_16(1252);
+emit_16(1187);
+emit_16(1252);
+emit_16(1188);
+emit_16(1253);
+emit_16(1189);
+emit_16(1253);
+emit_16(1188);
+emit_16(1253);
+emit_16(1189);
+emit_16(1254);
+emit_16(1190);
+emit_16(1254);
+emit_16(1189);
+emit_16(1254);
+emit_16(1190);
+emit_16(1255);
+emit_16(1191);
+emit_16(1255);
+emit_16(1190);
+emit_16(1255);
+emit_16(1191);
+emit_16(1256);
+emit_16(1192);
+emit_16(1256);
+emit_16(1191);
+emit_16(1256);
+emit_16(1192);
+emit_16(1257);
+emit_16(1193);
+emit_16(1257);
+emit_16(1192);
+emit_16(1257);
+emit_16(1193);
+emit_16(1258);
+emit_16(1194);
+emit_16(1258);
+emit_16(1193);
+emit_16(1258);
+emit_16(1194);
+emit_16(1259);
+emit_16(1195);
+emit_16(1259);
+emit_16(1194);
+emit_16(1259);
+emit_16(1195);
+emit_16(1260);
+emit_16(1196);
+emit_16(1260);
+emit_16(1195);
+emit_16(1260);
+emit_16(1196);
+emit_16(1261);
+emit_16(1197);
+emit_16(1261);
+emit_16(1196);
+emit_16(1261);
+emit_16(1197);
+emit_16(1262);
+emit_16(1198);
+emit_16(1262);
+emit_16(1197);
+emit_16(1262);
+emit_16(1198);
+emit_16(1263);
+emit_16(1199);
+emit_16(1263);
+emit_16(1198);
+emit_16(1263);
+emit_16(1199);
+emit_16(1264);
+emit_16(1200);
+emit_16(1264);
+emit_16(1199);
+emit_16(1264);
+emit_16(1200);
+emit_16(1265);
+emit_16(1201);
+emit_16(1265);
+emit_16(1200);
+emit_16(1265);
+emit_16(1201);
+emit_16(1266);
+emit_16(1202);
+emit_16(1266);
+emit_16(1201);
+emit_16(1266);
+emit_16(1202);
+emit_16(1267);
+emit_16(1203);
+emit_16(1267);
+emit_16(1202);
+emit_16(1267);
+emit_16(1203);
+emit_16(1268);
+emit_16(1204);
+emit_16(1268);
+emit_16(1203);
+emit_16(1268);
+emit_16(1204);
+emit_16(1269);
+emit_16(1205);
+emit_16(1269);
+emit_16(1204);
+emit_16(1269);
+emit_16(1205);
+emit_16(1270);
+emit_16(1206);
+emit_16(1270);
+emit_16(1205);
+emit_16(1270);
+emit_16(1206);
+emit_16(1271);
+emit_16(1207);
+emit_16(1271);
+emit_16(1206);
+emit_16(1271);
+emit_16(1207);
+emit_16(1272);
+emit_16(1208);
+emit_16(1272);
+emit_16(1207);
+emit_16(1272);
+emit_16(1208);
+emit_16(1273);
+emit_16(1209);
+emit_16(1273);
+emit_16(1208);
+emit_16(1273);
+emit_16(1209);
+emit_16(1274);
+emit_16(1210);
+emit_16(1274);
+emit_16(1209);
+emit_16(1274);
+emit_16(1210);
+emit_16(1275);
+emit_16(1211);
+emit_16(1275);
+emit_16(1210);
+emit_16(1275);
+emit_16(1211);
+emit_16(1276);
+emit_16(1212);
+emit_16(1276);
+emit_16(1211);
+emit_16(1276);
+emit_16(1212);
+emit_16(1277);
+emit_16(1213);
+emit_16(1277);
+emit_16(1212);
+emit_16(1277);
+emit_16(1213);
+emit_16(1278);
+emit_16(1214);
+emit_16(1278);
+emit_16(1213);
+emit_16(1278);
+emit_16(1214);
+emit_16(1279);
+emit_16(1215);
+emit_16(1279);
+emit_16(1214);
+emit_16(1280);
+emit_16(1216);
+emit_16(1281);
+emit_16(1217);
+emit_16(1281);
+emit_16(1216);
+emit_16(1281);
+emit_16(1217);
+emit_16(1282);
+emit_16(1218);
+emit_16(1282);
+emit_16(1217);
+emit_16(1282);
+emit_16(1218);
+emit_16(1283);
+emit_16(1219);
+emit_16(1283);
+emit_16(1218);
+emit_16(1283);
+emit_16(1219);
+emit_16(1284);
+emit_16(1220);
+emit_16(1284);
+emit_16(1219);
+emit_16(1284);
+emit_16(1220);
+emit_16(1285);
+emit_16(1221);
+emit_16(1285);
+emit_16(1220);
+emit_16(1285);
+emit_16(1221);
+emit_16(1286);
+emit_16(1222);
+emit_16(1286);
+emit_16(1221);
+emit_16(1286);
+emit_16(1222);
+emit_16(1287);
+emit_16(1223);
+emit_16(1287);
+emit_16(1222);
+emit_16(1287);
+emit_16(1223);
+emit_16(1288);
+emit_16(1224);
+emit_16(1288);
+emit_16(1223);
+emit_16(1288);
+emit_16(1224);
+emit_16(1289);
+emit_16(1225);
+emit_16(1289);
+emit_16(1224);
+emit_16(1289);
+emit_16(1225);
+emit_16(1290);
+emit_16(1226);
+emit_16(1290);
+emit_16(1225);
+emit_16(1290);
+emit_16(1226);
+emit_16(1291);
+emit_16(1227);
+emit_16(1291);
+emit_16(1226);
+emit_16(1291);
+emit_16(1227);
+emit_16(1292);
+emit_16(1228);
+emit_16(1292);
+emit_16(1227);
+emit_16(1292);
+emit_16(1228);
+emit_16(1293);
+emit_16(1229);
+emit_16(1293);
+emit_16(1228);
+emit_16(1293);
+emit_16(1229);
+emit_16(1294);
+emit_16(1230);
+emit_16(1294);
+emit_16(1229);
+emit_16(1294);
+emit_16(1230);
+emit_16(1295);
+emit_16(1231);
+emit_16(1295);
+emit_16(1230);
+emit_16(1295);
+emit_16(1231);
+emit_16(1296);
+emit_16(1232);
+emit_16(1296);
+emit_16(1231);
+emit_16(1296);
+emit_16(1232);
+emit_16(1297);
+emit_16(1233);
+emit_16(1297);
+emit_16(1232);
+emit_16(1297);
+emit_16(1233);
+emit_16(1298);
+emit_16(1234);
+emit_16(1298);
+emit_16(1233);
+emit_16(1298);
+emit_16(1234);
+emit_16(1299);
+emit_16(1235);
+emit_16(1299);
+emit_16(1234);
+emit_16(1299);
+emit_16(1235);
+emit_16(1300);
+emit_16(1236);
+emit_16(1300);
+emit_16(1235);
+emit_16(1300);
+emit_16(1236);
+emit_16(1301);
+emit_16(1237);
+emit_16(1301);
+emit_16(1236);
+emit_16(1301);
+emit_16(1237);
+emit_16(1302);
+emit_16(1238);
+emit_16(1302);
+emit_16(1237);
+emit_16(1302);
+emit_16(1238);
+emit_16(1303);
+emit_16(1239);
+emit_16(1303);
+emit_16(1238);
+emit_16(1303);
+emit_16(1239);
+emit_16(1304);
+emit_16(1240);
+emit_16(1304);
+emit_16(1239);
+emit_16(1304);
+emit_16(1240);
+emit_16(1305);
+emit_16(1241);
+emit_16(1305);
+emit_16(1240);
+emit_16(1305);
+emit_16(1241);
+emit_16(1306);
+emit_16(1242);
+emit_16(1306);
+emit_16(1241);
+emit_16(1306);
+emit_16(1242);
+emit_16(1307);
+emit_16(1243);
+emit_16(1307);
+emit_16(1242);
+emit_16(1307);
+emit_16(1243);
+emit_16(1308);
+emit_16(1244);
+emit_16(1308);
+emit_16(1243);
+emit_16(1308);
+emit_16(1244);
+emit_16(1309);
+emit_16(1245);
+emit_16(1309);
+emit_16(1244);
+emit_16(1309);
+emit_16(1245);
+emit_16(1310);
+emit_16(1246);
+emit_16(1310);
+emit_16(1245);
+emit_16(1310);
+emit_16(1246);
+emit_16(1311);
+emit_16(1247);
+emit_16(1311);
+emit_16(1246);
+emit_16(1311);
+emit_16(1247);
+emit_16(1312);
+emit_16(1248);
+emit_16(1312);
+emit_16(1247);
+emit_16(1312);
+emit_16(1248);
+emit_16(1313);
+emit_16(1249);
+emit_16(1313);
+emit_16(1248);
+emit_16(1313);
+emit_16(1249);
+emit_16(1314);
+emit_16(1250);
+emit_16(1314);
+emit_16(1249);
+emit_16(1314);
+emit_16(1250);
+emit_16(1315);
+emit_16(1251);
+emit_16(1315);
+emit_16(1250);
+emit_16(1315);
+emit_16(1251);
+emit_16(1316);
+emit_16(1252);
+emit_16(1316);
+emit_16(1251);
+emit_16(1316);
+emit_16(1252);
+emit_16(1317);
+emit_16(1253);
+emit_16(1317);
+emit_16(1252);
+emit_16(1317);
+emit_16(1253);
+emit_16(1318);
+emit_16(1254);
+emit_16(1318);
+emit_16(1253);
+emit_16(1318);
+emit_16(1254);
+emit_16(1319);
+emit_16(1255);
+emit_16(1319);
+emit_16(1254);
+emit_16(1319);
+emit_16(1255);
+emit_16(1320);
+emit_16(1256);
+emit_16(1320);
+emit_16(1255);
+emit_16(1320);
+emit_16(1256);
+emit_16(1321);
+emit_16(1257);
+emit_16(1321);
+emit_16(1256);
+emit_16(1321);
+emit_16(1257);
+emit_16(1322);
+emit_16(1258);
+emit_16(1322);
+emit_16(1257);
+emit_16(1322);
+emit_16(1258);
+emit_16(1323);
+emit_16(1259);
+emit_16(1323);
+emit_16(1258);
+emit_16(1323);
+emit_16(1259);
+emit_16(1324);
+emit_16(1260);
+emit_16(1324);
+emit_16(1259);
+emit_16(1324);
+emit_16(1260);
+emit_16(1325);
+emit_16(1261);
+emit_16(1325);
+emit_16(1260);
+emit_16(1325);
+emit_16(1261);
+emit_16(1326);
+emit_16(1262);
+emit_16(1326);
+emit_16(1261);
+emit_16(1326);
+emit_16(1262);
+emit_16(1327);
+emit_16(1263);
+emit_16(1327);
+emit_16(1262);
+emit_16(1327);
+emit_16(1263);
+emit_16(1328);
+emit_16(1264);
+emit_16(1328);
+emit_16(1263);
+emit_16(1328);
+emit_16(1264);
+emit_16(1329);
+emit_16(1265);
+emit_16(1329);
+emit_16(1264);
+emit_16(1329);
+emit_16(1265);
+emit_16(1330);
+emit_16(1266);
+emit_16(1330);
+emit_16(1265);
+emit_16(1330);
+emit_16(1266);
+emit_16(1331);
+emit_16(1267);
+emit_16(1331);
+emit_16(1266);
+emit_16(1331);
+emit_16(1267);
+emit_16(1332);
+emit_16(1268);
+emit_16(1332);
+emit_16(1267);
+emit_16(1332);
+emit_16(1268);
+emit_16(1333);
+emit_16(1269);
+emit_16(1333);
+emit_16(1268);
+emit_16(1333);
+emit_16(1269);
+emit_16(1334);
+emit_16(1270);
+emit_16(1334);
+emit_16(1269);
+emit_16(1334);
+emit_16(1270);
+emit_16(1335);
+emit_16(1271);
+emit_16(1335);
+emit_16(1270);
+emit_16(1335);
+emit_16(1271);
+emit_16(1336);
+emit_16(1272);
+emit_16(1336);
+emit_16(1271);
+emit_16(1336);
+emit_16(1272);
+emit_16(1337);
+emit_16(1273);
+emit_16(1337);
+emit_16(1272);
+emit_16(1337);
+emit_16(1273);
+emit_16(1338);
+emit_16(1274);
+emit_16(1338);
+emit_16(1273);
+emit_16(1338);
+emit_16(1274);
+emit_16(1339);
+emit_16(1275);
+emit_16(1339);
+emit_16(1274);
+emit_16(1339);
+emit_16(1275);
+emit_16(1340);
+emit_16(1276);
+emit_16(1340);
+emit_16(1275);
+emit_16(1340);
+emit_16(1276);
+emit_16(1341);
+emit_16(1277);
+emit_16(1341);
+emit_16(1276);
+emit_16(1341);
+emit_16(1277);
+emit_16(1342);
+emit_16(1278);
+emit_16(1342);
+emit_16(1277);
+emit_16(1342);
+emit_16(1278);
+emit_16(1343);
+emit_16(1279);
+emit_16(1343);
+emit_16(1278);
+emit_16(1344);
+emit_16(1280);
+emit_16(1345);
+emit_16(1281);
+emit_16(1345);
+emit_16(1280);
+emit_16(1345);
+emit_16(1281);
+emit_16(1346);
+emit_16(1282);
+emit_16(1346);
+emit_16(1281);
+emit_16(1346);
+emit_16(1282);
+emit_16(1347);
+emit_16(1283);
+emit_16(1347);
+emit_16(1282);
+emit_16(1347);
+emit_16(1283);
+emit_16(1348);
+emit_16(1284);
+emit_16(1348);
+emit_16(1283);
+emit_16(1348);
+emit_16(1284);
+emit_16(1349);
+emit_16(1285);
+emit_16(1349);
+emit_16(1284);
+emit_16(1349);
+emit_16(1285);
+emit_16(1350);
+emit_16(1286);
+emit_16(1350);
+emit_16(1285);
+emit_16(1350);
+emit_16(1286);
+emit_16(1351);
+emit_16(1287);
+emit_16(1351);
+emit_16(1286);
+emit_16(1351);
+emit_16(1287);
+emit_16(1352);
+emit_16(1288);
+emit_16(1352);
+emit_16(1287);
+emit_16(1352);
+emit_16(1288);
+emit_16(1353);
+emit_16(1289);
+emit_16(1353);
+emit_16(1288);
+emit_16(1353);
+emit_16(1289);
+emit_16(1354);
+emit_16(1290);
+emit_16(1354);
+emit_16(1289);
+emit_16(1354);
+emit_16(1290);
+emit_16(1355);
+emit_16(1291);
+emit_16(1355);
+emit_16(1290);
+emit_16(1355);
+emit_16(1291);
+emit_16(1356);
+emit_16(1292);
+emit_16(1356);
+emit_16(1291);
+emit_16(1356);
+emit_16(1292);
+emit_16(1357);
+emit_16(1293);
+emit_16(1357);
+emit_16(1292);
+emit_16(1357);
+emit_16(1293);
+emit_16(1358);
+emit_16(1294);
+emit_16(1358);
+emit_16(1293);
+emit_16(1358);
+emit_16(1294);
+emit_16(1359);
+emit_16(1295);
+emit_16(1359);
+emit_16(1294);
+emit_16(1359);
+emit_16(1295);
+emit_16(1360);
+emit_16(1296);
+emit_16(1360);
+emit_16(1295);
+emit_16(1360);
+emit_16(1296);
+emit_16(1361);
+emit_16(1297);
+emit_16(1361);
+emit_16(1296);
+emit_16(1361);
+emit_16(1297);
+emit_16(1362);
+emit_16(1298);
+emit_16(1362);
+emit_16(1297);
+emit_16(1362);
+emit_16(1298);
+emit_16(1363);
+emit_16(1299);
+emit_16(1363);
+emit_16(1298);
+emit_16(1363);
+emit_16(1299);
+emit_16(1364);
+emit_16(1300);
+emit_16(1364);
+emit_16(1299);
+emit_16(1364);
+emit_16(1300);
+emit_16(1365);
+emit_16(1301);
+emit_16(1365);
+emit_16(1300);
+emit_16(1365);
+emit_16(1301);
+emit_16(1366);
+emit_16(1302);
+emit_16(1366);
+emit_16(1301);
+emit_16(1366);
+emit_16(1302);
+emit_16(1367);
+emit_16(1303);
+emit_16(1367);
+emit_16(1302);
+emit_16(1367);
+emit_16(1303);
+emit_16(1368);
+emit_16(1304);
+emit_16(1368);
+emit_16(1303);
+emit_16(1368);
+emit_16(1304);
+emit_16(1369);
+emit_16(1305);
+emit_16(1369);
+emit_16(1304);
+emit_16(1369);
+emit_16(1305);
+emit_16(1370);
+emit_16(1306);
+emit_16(1370);
+emit_16(1305);
+emit_16(1370);
+emit_16(1306);
+emit_16(1371);
+emit_16(1307);
+emit_16(1371);
+emit_16(1306);
+emit_16(1371);
+emit_16(1307);
+emit_16(1372);
+emit_16(1308);
+emit_16(1372);
+emit_16(1307);
+emit_16(1372);
+emit_16(1308);
+emit_16(1373);
+emit_16(1309);
+emit_16(1373);
+emit_16(1308);
+emit_16(1373);
+emit_16(1309);
+emit_16(1374);
+emit_16(1310);
+emit_16(1374);
+emit_16(1309);
+emit_16(1374);
+emit_16(1310);
+emit_16(1375);
+emit_16(1311);
+emit_16(1375);
+emit_16(1310);
+emit_16(1375);
+emit_16(1311);
+emit_16(1376);
+emit_16(1312);
+emit_16(1376);
+emit_16(1311);
+emit_16(1376);
+emit_16(1312);
+emit_16(1377);
+emit_16(1313);
+emit_16(1377);
+emit_16(1312);
+emit_16(1377);
+emit_16(1313);
+emit_16(1378);
+emit_16(1314);
+emit_16(1378);
+emit_16(1313);
+emit_16(1378);
+emit_16(1314);
+emit_16(1379);
+emit_16(1315);
+emit_16(1379);
+emit_16(1314);
+emit_16(1379);
+emit_16(1315);
+emit_16(1380);
+emit_16(1316);
+emit_16(1380);
+emit_16(1315);
+emit_16(1380);
+emit_16(1316);
+emit_16(1381);
+emit_16(1317);
+emit_16(1381);
+emit_16(1316);
+emit_16(1381);
+emit_16(1317);
+emit_16(1382);
+emit_16(1318);
+emit_16(1382);
+emit_16(1317);
+emit_16(1382);
+emit_16(1318);
+emit_16(1383);
+emit_16(1319);
+emit_16(1383);
+emit_16(1318);
+emit_16(1383);
+emit_16(1319);
+emit_16(1384);
+emit_16(1320);
+emit_16(1384);
+emit_16(1319);
+emit_16(1384);
+emit_16(1320);
+emit_16(1385);
+emit_16(1321);
+emit_16(1385);
+emit_16(1320);
+emit_16(1385);
+emit_16(1321);
+emit_16(1386);
+emit_16(1322);
+emit_16(1386);
+emit_16(1321);
+emit_16(1386);
+emit_16(1322);
+emit_16(1387);
+emit_16(1323);
+emit_16(1387);
+emit_16(1322);
+emit_16(1387);
+emit_16(1323);
+emit_16(1388);
+emit_16(1324);
+emit_16(1388);
+emit_16(1323);
+emit_16(1388);
+emit_16(1324);
+emit_16(1389);
+emit_16(1325);
+emit_16(1389);
+emit_16(1324);
+emit_16(1389);
+emit_16(1325);
+emit_16(1390);
+emit_16(1326);
+emit_16(1390);
+emit_16(1325);
+emit_16(1390);
+emit_16(1326);
+emit_16(1391);
+emit_16(1327);
+emit_16(1391);
+emit_16(1326);
+emit_16(1391);
+emit_16(1327);
+emit_16(1392);
+emit_16(1328);
+emit_16(1392);
+emit_16(1327);
+emit_16(1392);
+emit_16(1328);
+emit_16(1393);
+emit_16(1329);
+emit_16(1393);
+emit_16(1328);
+emit_16(1393);
+emit_16(1329);
+emit_16(1394);
+emit_16(1330);
+emit_16(1394);
+emit_16(1329);
+emit_16(1394);
+emit_16(1330);
+emit_16(1395);
+emit_16(1331);
+emit_16(1395);
+emit_16(1330);
+emit_16(1395);
+emit_16(1331);
+emit_16(1396);
+emit_16(1332);
+emit_16(1396);
+emit_16(1331);
+emit_16(1396);
+emit_16(1332);
+emit_16(1397);
+emit_16(1333);
+emit_16(1397);
+emit_16(1332);
+emit_16(1397);
+emit_16(1333);
+emit_16(1398);
+emit_16(1334);
+emit_16(1398);
+emit_16(1333);
+emit_16(1398);
+emit_16(1334);
+emit_16(1399);
+emit_16(1335);
+emit_16(1399);
+emit_16(1334);
+emit_16(1399);
+emit_16(1335);
+emit_16(1400);
+emit_16(1336);
+emit_16(1400);
+emit_16(1335);
+emit_16(1400);
+emit_16(1336);
+emit_16(1401);
+emit_16(1337);
+emit_16(1401);
+emit_16(1336);
+emit_16(1401);
+emit_16(1337);
+emit_16(1402);
+emit_16(1338);
+emit_16(1402);
+emit_16(1337);
+emit_16(1402);
+emit_16(1338);
+emit_16(1403);
+emit_16(1339);
+emit_16(1403);
+emit_16(1338);
+emit_16(1403);
+emit_16(1339);
+emit_16(1404);
+emit_16(1340);
+emit_16(1404);
+emit_16(1339);
+emit_16(1404);
+emit_16(1340);
+emit_16(1405);
+emit_16(1341);
+emit_16(1405);
+emit_16(1340);
+emit_16(1405);
+emit_16(1341);
+emit_16(1406);
+emit_16(1342);
+emit_16(1406);
+emit_16(1341);
+emit_16(1406);
+emit_16(1342);
+emit_16(1407);
+emit_16(1343);
+emit_16(1407);
+emit_16(1342);
+emit_16(1408);
+emit_16(1344);
+emit_16(1409);
+emit_16(1345);
+emit_16(1409);
+emit_16(1344);
+emit_16(1409);
+emit_16(1345);
+emit_16(1410);
+emit_16(1346);
+emit_16(1410);
+emit_16(1345);
+emit_16(1410);
+emit_16(1346);
+emit_16(1411);
+emit_16(1347);
+emit_16(1411);
+emit_16(1346);
+emit_16(1411);
+emit_16(1347);
+emit_16(1412);
+emit_16(1348);
+emit_16(1412);
+emit_16(1347);
+emit_16(1412);
+emit_16(1348);
+emit_16(1413);
+emit_16(1349);
+emit_16(1413);
+emit_16(1348);
+emit_16(1413);
+emit_16(1349);
+emit_16(1414);
+emit_16(1350);
+emit_16(1414);
+emit_16(1349);
+emit_16(1414);
+emit_16(1350);
+emit_16(1415);
+emit_16(1351);
+emit_16(1415);
+emit_16(1350);
+emit_16(1415);
+emit_16(1351);
+emit_16(1416);
+emit_16(1352);
+emit_16(1416);
+emit_16(1351);
+emit_16(1416);
+emit_16(1352);
+emit_16(1417);
+emit_16(1353);
+emit_16(1417);
+emit_16(1352);
+emit_16(1417);
+emit_16(1353);
+emit_16(1418);
+emit_16(1354);
+emit_16(1418);
+emit_16(1353);
+emit_16(1418);
+emit_16(1354);
+emit_16(1419);
+emit_16(1355);
+emit_16(1419);
+emit_16(1354);
+emit_16(1419);
+emit_16(1355);
+emit_16(1420);
+emit_16(1356);
+emit_16(1420);
+emit_16(1355);
+emit_16(1420);
+emit_16(1356);
+emit_16(1421);
+emit_16(1357);
+emit_16(1421);
+emit_16(1356);
+emit_16(1421);
+emit_16(1357);
+emit_16(1422);
+emit_16(1358);
+emit_16(1422);
+emit_16(1357);
+emit_16(1422);
+emit_16(1358);
+emit_16(1423);
+emit_16(1359);
+emit_16(1423);
+emit_16(1358);
+emit_16(1423);
+emit_16(1359);
+emit_16(1424);
+emit_16(1360);
+emit_16(1424);
+emit_16(1359);
+emit_16(1424);
+emit_16(1360);
+emit_16(1425);
+emit_16(1361);
+emit_16(1425);
+emit_16(1360);
+emit_16(1425);
+emit_16(1361);
+emit_16(1426);
+emit_16(1362);
+emit_16(1426);
+emit_16(1361);
+emit_16(1426);
+emit_16(1362);
+emit_16(1427);
+emit_16(1363);
+emit_16(1427);
+emit_16(1362);
+emit_16(1427);
+emit_16(1363);
+emit_16(1428);
+emit_16(1364);
+emit_16(1428);
+emit_16(1363);
+emit_16(1428);
+emit_16(1364);
+emit_16(1429);
+emit_16(1365);
+emit_16(1429);
+emit_16(1364);
+emit_16(1429);
+emit_16(1365);
+emit_16(1430);
+emit_16(1366);
+emit_16(1430);
+emit_16(1365);
+emit_16(1430);
+emit_16(1366);
+emit_16(1431);
+emit_16(1367);
+emit_16(1431);
+emit_16(1366);
+emit_16(1431);
+emit_16(1367);
+emit_16(1432);
+emit_16(1368);
+emit_16(1432);
+emit_16(1367);
+emit_16(1432);
+emit_16(1368);
+emit_16(1433);
+emit_16(1369);
+emit_16(1433);
+emit_16(1368);
+emit_16(1433);
+emit_16(1369);
+emit_16(1434);
+emit_16(1370);
+emit_16(1434);
+emit_16(1369);
+emit_16(1434);
+emit_16(1370);
+emit_16(1435);
+emit_16(1371);
+emit_16(1435);
+emit_16(1370);
+emit_16(1435);
+emit_16(1371);
+emit_16(1436);
+emit_16(1372);
+emit_16(1436);
+emit_16(1371);
+emit_16(1436);
+emit_16(1372);
+emit_16(1437);
+emit_16(1373);
+emit_16(1437);
+emit_16(1372);
+emit_16(1437);
+emit_16(1373);
+emit_16(1438);
+emit_16(1374);
+emit_16(1438);
+emit_16(1373);
+emit_16(1438);
+emit_16(1374);
+emit_16(1439);
+emit_16(1375);
+emit_16(1439);
+emit_16(1374);
+emit_16(1439);
+emit_16(1375);
+emit_16(1440);
+emit_16(1376);
+emit_16(1440);
+emit_16(1375);
+emit_16(1440);
+emit_16(1376);
+emit_16(1441);
+emit_16(1377);
+emit_16(1441);
+emit_16(1376);
+emit_16(1441);
+emit_16(1377);
+emit_16(1442);
+emit_16(1378);
+emit_16(1442);
+emit_16(1377);
+emit_16(1442);
+emit_16(1378);
+emit_16(1443);
+emit_16(1379);
+emit_16(1443);
+emit_16(1378);
+emit_16(1443);
+emit_16(1379);
+emit_16(1444);
+emit_16(1380);
+emit_16(1444);
+emit_16(1379);
+emit_16(1444);
+emit_16(1380);
+emit_16(1445);
+emit_16(1381);
+emit_16(1445);
+emit_16(1380);
+emit_16(1445);
+emit_16(1381);
+emit_16(1446);
+emit_16(1382);
+emit_16(1446);
+emit_16(1381);
+emit_16(1446);
+emit_16(1382);
+emit_16(1447);
+emit_16(1383);
+emit_16(1447);
+emit_16(1382);
+emit_16(1447);
+emit_16(1383);
+emit_16(1448);
+emit_16(1384);
+emit_16(1448);
+emit_16(1383);
+emit_16(1448);
+emit_16(1384);
+emit_16(1449);
+emit_16(1385);
+emit_16(1449);
+emit_16(1384);
+emit_16(1449);
+emit_16(1385);
+emit_16(1450);
+emit_16(1386);
+emit_16(1450);
+emit_16(1385);
+emit_16(1450);
+emit_16(1386);
+emit_16(1451);
+emit_16(1387);
+emit_16(1451);
+emit_16(1386);
+emit_16(1451);
+emit_16(1387);
+emit_16(1452);
+emit_16(1388);
+emit_16(1452);
+emit_16(1387);
+emit_16(1452);
+emit_16(1388);
+emit_16(1453);
+emit_16(1389);
+emit_16(1453);
+emit_16(1388);
+emit_16(1453);
+emit_16(1389);
+emit_16(1454);
+emit_16(1390);
+emit_16(1454);
+emit_16(1389);
+emit_16(1454);
+emit_16(1390);
+emit_16(1455);
+emit_16(1391);
+emit_16(1455);
+emit_16(1390);
+emit_16(1455);
+emit_16(1391);
+emit_16(1456);
+emit_16(1392);
+emit_16(1456);
+emit_16(1391);
+emit_16(1456);
+emit_16(1392);
+emit_16(1457);
+emit_16(1393);
+emit_16(1457);
+emit_16(1392);
+emit_16(1457);
+emit_16(1393);
+emit_16(1458);
+emit_16(1394);
+emit_16(1458);
+emit_16(1393);
+emit_16(1458);
+emit_16(1394);
+emit_16(1459);
+emit_16(1395);
+emit_16(1459);
+emit_16(1394);
+emit_16(1459);
+emit_16(1395);
+emit_16(1460);
+emit_16(1396);
+emit_16(1460);
+emit_16(1395);
+emit_16(1460);
+emit_16(1396);
+emit_16(1461);
+emit_16(1397);
+emit_16(1461);
+emit_16(1396);
+emit_16(1461);
+emit_16(1397);
+emit_16(1462);
+emit_16(1398);
+emit_16(1462);
+emit_16(1397);
+emit_16(1462);
+emit_16(1398);
+emit_16(1463);
+emit_16(1399);
+emit_16(1463);
+emit_16(1398);
+emit_16(1463);
+emit_16(1399);
+emit_16(1464);
+emit_16(1400);
+emit_16(1464);
+emit_16(1399);
+emit_16(1464);
+emit_16(1400);
+emit_16(1465);
+emit_16(1401);
+emit_16(1465);
+emit_16(1400);
+emit_16(1465);
+emit_16(1401);
+emit_16(1466);
+emit_16(1402);
+emit_16(1466);
+emit_16(1401);
+emit_16(1466);
+emit_16(1402);
+emit_16(1467);
+emit_16(1403);
+emit_16(1467);
+emit_16(1402);
+emit_16(1467);
+emit_16(1403);
+emit_16(1468);
+emit_16(1404);
+emit_16(1468);
+emit_16(1403);
+emit_16(1468);
+emit_16(1404);
+emit_16(1469);
+emit_16(1405);
+emit_16(1469);
+emit_16(1404);
+emit_16(1469);
+emit_16(1405);
+emit_16(1470);
+emit_16(1406);
+emit_16(1470);
+emit_16(1405);
+emit_16(1470);
+emit_16(1406);
+emit_16(1471);
+emit_16(1407);
+emit_16(1471);
+emit_16(1406);
+emit_16(1472);
+emit_16(1408);
+emit_16(1473);
+emit_16(1409);
+emit_16(1473);
+emit_16(1408);
+emit_16(1473);
+emit_16(1409);
+emit_16(1474);
+emit_16(1410);
+emit_16(1474);
+emit_16(1409);
+emit_16(1474);
+emit_16(1410);
+emit_16(1475);
+emit_16(1411);
+emit_16(1475);
+emit_16(1410);
+emit_16(1475);
+emit_16(1411);
+emit_16(1476);
+emit_16(1412);
+emit_16(1476);
+emit_16(1411);
+emit_16(1476);
+emit_16(1412);
+emit_16(1477);
+emit_16(1413);
+emit_16(1477);
+emit_16(1412);
+emit_16(1477);
+emit_16(1413);
+emit_16(1478);
+emit_16(1414);
+emit_16(1478);
+emit_16(1413);
+emit_16(1478);
+emit_16(1414);
+emit_16(1479);
+emit_16(1415);
+emit_16(1479);
+emit_16(1414);
+emit_16(1479);
+emit_16(1415);
+emit_16(1480);
+emit_16(1416);
+emit_16(1480);
+emit_16(1415);
+emit_16(1480);
+emit_16(1416);
+emit_16(1481);
+emit_16(1417);
+emit_16(1481);
+emit_16(1416);
+emit_16(1481);
+emit_16(1417);
+emit_16(1482);
+emit_16(1418);
+emit_16(1482);
+emit_16(1417);
+emit_16(1482);
+emit_16(1418);
+emit_16(1483);
+emit_16(1419);
+emit_16(1483);
+emit_16(1418);
+emit_16(1483);
+emit_16(1419);
+emit_16(1484);
+emit_16(1420);
+emit_16(1484);
+emit_16(1419);
+emit_16(1484);
+emit_16(1420);
+emit_16(1485);
+emit_16(1421);
+emit_16(1485);
+emit_16(1420);
+emit_16(1485);
+emit_16(1421);
+emit_16(1486);
+emit_16(1422);
+emit_16(1486);
+emit_16(1421);
+emit_16(1486);
+emit_16(1422);
+emit_16(1487);
+emit_16(1423);
+emit_16(1487);
+emit_16(1422);
+emit_16(1487);
+emit_16(1423);
+emit_16(1488);
+emit_16(1424);
+emit_16(1488);
+emit_16(1423);
+emit_16(1488);
+emit_16(1424);
+emit_16(1489);
+emit_16(1425);
+emit_16(1489);
+emit_16(1424);
+emit_16(1489);
+emit_16(1425);
+emit_16(1490);
+emit_16(1426);
+emit_16(1490);
+emit_16(1425);
+emit_16(1490);
+emit_16(1426);
+emit_16(1491);
+emit_16(1427);
+emit_16(1491);
+emit_16(1426);
+emit_16(1491);
+emit_16(1427);
+emit_16(1492);
+emit_16(1428);
+emit_16(1492);
+emit_16(1427);
+emit_16(1492);
+emit_16(1428);
+emit_16(1493);
+emit_16(1429);
+emit_16(1493);
+emit_16(1428);
+emit_16(1493);
+emit_16(1429);
+emit_16(1494);
+emit_16(1430);
+emit_16(1494);
+emit_16(1429);
+emit_16(1494);
+emit_16(1430);
+emit_16(1495);
+emit_16(1431);
+emit_16(1495);
+emit_16(1430);
+emit_16(1495);
+emit_16(1431);
+emit_16(1496);
+emit_16(1432);
+emit_16(1496);
+emit_16(1431);
+emit_16(1496);
+emit_16(1432);
+emit_16(1497);
+emit_16(1433);
+emit_16(1497);
+emit_16(1432);
+emit_16(1497);
+emit_16(1433);
+emit_16(1498);
+emit_16(1434);
+emit_16(1498);
+emit_16(1433);
+emit_16(1498);
+emit_16(1434);
+emit_16(1499);
+emit_16(1435);
+emit_16(1499);
+emit_16(1434);
+emit_16(1499);
+emit_16(1435);
+emit_16(1500);
+emit_16(1436);
+emit_16(1500);
+emit_16(1435);
+emit_16(1500);
+emit_16(1436);
+emit_16(1501);
+emit_16(1437);
+emit_16(1501);
+emit_16(1436);
+emit_16(1501);
+emit_16(1437);
+emit_16(1502);
+emit_16(1438);
+emit_16(1502);
+emit_16(1437);
+emit_16(1502);
+emit_16(1438);
+emit_16(1503);
+emit_16(1439);
+emit_16(1503);
+emit_16(1438);
+emit_16(1503);
+emit_16(1439);
+emit_16(1504);
+emit_16(1440);
+emit_16(1504);
+emit_16(1439);
+emit_16(1504);
+emit_16(1440);
+emit_16(1505);
+emit_16(1441);
+emit_16(1505);
+emit_16(1440);
+emit_16(1505);
+emit_16(1441);
+emit_16(1506);
+emit_16(1442);
+emit_16(1506);
+emit_16(1441);
+emit_16(1506);
+emit_16(1442);
+emit_16(1507);
+emit_16(1443);
+emit_16(1507);
+emit_16(1442);
+emit_16(1507);
+emit_16(1443);
+emit_16(1508);
+emit_16(1444);
+emit_16(1508);
+emit_16(1443);
+emit_16(1508);
+emit_16(1444);
+emit_16(1509);
+emit_16(1445);
+emit_16(1509);
+emit_16(1444);
+emit_16(1509);
+emit_16(1445);
+emit_16(1510);
+emit_16(1446);
+emit_16(1510);
+emit_16(1445);
+emit_16(1510);
+emit_16(1446);
+emit_16(1511);
+emit_16(1447);
+emit_16(1511);
+emit_16(1446);
+emit_16(1511);
+emit_16(1447);
+emit_16(1512);
+emit_16(1448);
+emit_16(1512);
+emit_16(1447);
+emit_16(1512);
+emit_16(1448);
+emit_16(1513);
+emit_16(1449);
+emit_16(1513);
+emit_16(1448);
+emit_16(1513);
+emit_16(1449);
+emit_16(1514);
+emit_16(1450);
+emit_16(1514);
+emit_16(1449);
+emit_16(1514);
+emit_16(1450);
+emit_16(1515);
+emit_16(1451);
+emit_16(1515);
+emit_16(1450);
+emit_16(1515);
+emit_16(1451);
+emit_16(1516);
+emit_16(1452);
+emit_16(1516);
+emit_16(1451);
+emit_16(1516);
+emit_16(1452);
+emit_16(1517);
+emit_16(1453);
+emit_16(1517);
+emit_16(1452);
+emit_16(1517);
+emit_16(1453);
+emit_16(1518);
+emit_16(1454);
+emit_16(1518);
+emit_16(1453);
+emit_16(1518);
+emit_16(1454);
+emit_16(1519);
+emit_16(1455);
+emit_16(1519);
+emit_16(1454);
+emit_16(1519);
+emit_16(1455);
+emit_16(1520);
+emit_16(1456);
+emit_16(1520);
+emit_16(1455);
+emit_16(1520);
+emit_16(1456);
+emit_16(1521);
+emit_16(1457);
+emit_16(1521);
+emit_16(1456);
+emit_16(1521);
+emit_16(1457);
+emit_16(1522);
+emit_16(1458);
+emit_16(1522);
+emit_16(1457);
+emit_16(1522);
+emit_16(1458);
+emit_16(1523);
+emit_16(1459);
+emit_16(1523);
+emit_16(1458);
+emit_16(1523);
+emit_16(1459);
+emit_16(1524);
+emit_16(1460);
+emit_16(1524);
+emit_16(1459);
+emit_16(1524);
+emit_16(1460);
+emit_16(1525);
+emit_16(1461);
+emit_16(1525);
+emit_16(1460);
+emit_16(1525);
+emit_16(1461);
+emit_16(1526);
+emit_16(1462);
+emit_16(1526);
+emit_16(1461);
+emit_16(1526);
+emit_16(1462);
+emit_16(1527);
+emit_16(1463);
+emit_16(1527);
+emit_16(1462);
+emit_16(1527);
+emit_16(1463);
+emit_16(1528);
+emit_16(1464);
+emit_16(1528);
+emit_16(1463);
+emit_16(1528);
+emit_16(1464);
+emit_16(1529);
+emit_16(1465);
+emit_16(1529);
+emit_16(1464);
+emit_16(1529);
+emit_16(1465);
+emit_16(1530);
+emit_16(1466);
+emit_16(1530);
+emit_16(1465);
+emit_16(1530);
+emit_16(1466);
+emit_16(1531);
+emit_16(1467);
+emit_16(1531);
+emit_16(1466);
+emit_16(1531);
+emit_16(1467);
+emit_16(1532);
+emit_16(1468);
+emit_16(1532);
+emit_16(1467);
+emit_16(1532);
+emit_16(1468);
+emit_16(1533);
+emit_16(1469);
+emit_16(1533);
+emit_16(1468);
+emit_16(1533);
+emit_16(1469);
+emit_16(1534);
+emit_16(1470);
+emit_16(1534);
+emit_16(1469);
+emit_16(1534);
+emit_16(1470);
+emit_16(1535);
+emit_16(1471);
+emit_16(1535);
+emit_16(1470);
+emit_16(1536);
+emit_16(1472);
+emit_16(1537);
+emit_16(1473);
+emit_16(1537);
+emit_16(1472);
+emit_16(1537);
+emit_16(1473);
+emit_16(1538);
+emit_16(1474);
+emit_16(1538);
+emit_16(1473);
+emit_16(1538);
+emit_16(1474);
+emit_16(1539);
+emit_16(1475);
+emit_16(1539);
+emit_16(1474);
+emit_16(1539);
+emit_16(1475);
+emit_16(1540);
+emit_16(1476);
+emit_16(1540);
+emit_16(1475);
+emit_16(1540);
+emit_16(1476);
+emit_16(1541);
+emit_16(1477);
+emit_16(1541);
+emit_16(1476);
+emit_16(1541);
+emit_16(1477);
+emit_16(1542);
+emit_16(1478);
+emit_16(1542);
+emit_16(1477);
+emit_16(1542);
+emit_16(1478);
+emit_16(1543);
+emit_16(1479);
+emit_16(1543);
+emit_16(1478);
+emit_16(1543);
+emit_16(1479);
+emit_16(1544);
+emit_16(1480);
+emit_16(1544);
+emit_16(1479);
+emit_16(1544);
+emit_16(1480);
+emit_16(1545);
+emit_16(1481);
+emit_16(1545);
+emit_16(1480);
+emit_16(1545);
+emit_16(1481);
+emit_16(1546);
+emit_16(1482);
+emit_16(1546);
+emit_16(1481);
+emit_16(1546);
+emit_16(1482);
+emit_16(1547);
+emit_16(1483);
+emit_16(1547);
+emit_16(1482);
+emit_16(1547);
+emit_16(1483);
+emit_16(1548);
+emit_16(1484);
+emit_16(1548);
+emit_16(1483);
+emit_16(1548);
+emit_16(1484);
+emit_16(1549);
+emit_16(1485);
+emit_16(1549);
+emit_16(1484);
+emit_16(1549);
+emit_16(1485);
+emit_16(1550);
+emit_16(1486);
+emit_16(1550);
+emit_16(1485);
+emit_16(1550);
+emit_16(1486);
+emit_16(1551);
+emit_16(1487);
+emit_16(1551);
+emit_16(1486);
+emit_16(1551);
+emit_16(1487);
+emit_16(1552);
+emit_16(1488);
+emit_16(1552);
+emit_16(1487);
+emit_16(1552);
+emit_16(1488);
+emit_16(1553);
+emit_16(1489);
+emit_16(1553);
+emit_16(1488);
+emit_16(1553);
+emit_16(1489);
+emit_16(1554);
+emit_16(1490);
+emit_16(1554);
+emit_16(1489);
+emit_16(1554);
+emit_16(1490);
+emit_16(1555);
+emit_16(1491);
+emit_16(1555);
+emit_16(1490);
+emit_16(1555);
+emit_16(1491);
+emit_16(1556);
+emit_16(1492);
+emit_16(1556);
+emit_16(1491);
+emit_16(1556);
+emit_16(1492);
+emit_16(1557);
+emit_16(1493);
+emit_16(1557);
+emit_16(1492);
+emit_16(1557);
+emit_16(1493);
+emit_16(1558);
+emit_16(1494);
+emit_16(1558);
+emit_16(1493);
+emit_16(1558);
+emit_16(1494);
+emit_16(1559);
+emit_16(1495);
+emit_16(1559);
+emit_16(1494);
+emit_16(1559);
+emit_16(1495);
+emit_16(1560);
+emit_16(1496);
+emit_16(1560);
+emit_16(1495);
+emit_16(1560);
+emit_16(1496);
+emit_16(1561);
+emit_16(1497);
+emit_16(1561);
+emit_16(1496);
+emit_16(1561);
+emit_16(1497);
+emit_16(1562);
+emit_16(1498);
+emit_16(1562);
+emit_16(1497);
+emit_16(1562);
+emit_16(1498);
+emit_16(1563);
+emit_16(1499);
+emit_16(1563);
+emit_16(1498);
+emit_16(1563);
+emit_16(1499);
+emit_16(1564);
+emit_16(1500);
+emit_16(1564);
+emit_16(1499);
+emit_16(1564);
+emit_16(1500);
+emit_16(1565);
+emit_16(1501);
+emit_16(1565);
+emit_16(1500);
+emit_16(1565);
+emit_16(1501);
+emit_16(1566);
+emit_16(1502);
+emit_16(1566);
+emit_16(1501);
+emit_16(1566);
+emit_16(1502);
+emit_16(1567);
+emit_16(1503);
+emit_16(1567);
+emit_16(1502);
+emit_16(1567);
+emit_16(1503);
+emit_16(1568);
+emit_16(1504);
+emit_16(1568);
+emit_16(1503);
+emit_16(1568);
+emit_16(1504);
+emit_16(1569);
+emit_16(1505);
+emit_16(1569);
+emit_16(1504);
+emit_16(1569);
+emit_16(1505);
+emit_16(1570);
+emit_16(1506);
+emit_16(1570);
+emit_16(1505);
+emit_16(1570);
+emit_16(1506);
+emit_16(1571);
+emit_16(1507);
+emit_16(1571);
+emit_16(1506);
+emit_16(1571);
+emit_16(1507);
+emit_16(1572);
+emit_16(1508);
+emit_16(1572);
+emit_16(1507);
+emit_16(1572);
+emit_16(1508);
+emit_16(1573);
+emit_16(1509);
+emit_16(1573);
+emit_16(1508);
+emit_16(1573);
+emit_16(1509);
+emit_16(1574);
+emit_16(1510);
+emit_16(1574);
+emit_16(1509);
+emit_16(1574);
+emit_16(1510);
+emit_16(1575);
+emit_16(1511);
+emit_16(1575);
+emit_16(1510);
+emit_16(1575);
+emit_16(1511);
+emit_16(1576);
+emit_16(1512);
+emit_16(1576);
+emit_16(1511);
+emit_16(1576);
+emit_16(1512);
+emit_16(1577);
+emit_16(1513);
+emit_16(1577);
+emit_16(1512);
+emit_16(1577);
+emit_16(1513);
+emit_16(1578);
+emit_16(1514);
+emit_16(1578);
+emit_16(1513);
+emit_16(1578);
+emit_16(1514);
+emit_16(1579);
+emit_16(1515);
+emit_16(1579);
+emit_16(1514);
+emit_16(1579);
+emit_16(1515);
+emit_16(1580);
+emit_16(1516);
+emit_16(1580);
+emit_16(1515);
+emit_16(1580);
+emit_16(1516);
+emit_16(1581);
+emit_16(1517);
+emit_16(1581);
+emit_16(1516);
+emit_16(1581);
+emit_16(1517);
+emit_16(1582);
+emit_16(1518);
+emit_16(1582);
+emit_16(1517);
+emit_16(1582);
+emit_16(1518);
+emit_16(1583);
+emit_16(1519);
+emit_16(1583);
+emit_16(1518);
+emit_16(1583);
+emit_16(1519);
+emit_16(1584);
+emit_16(1520);
+emit_16(1584);
+emit_16(1519);
+emit_16(1584);
+emit_16(1520);
+emit_16(1585);
+emit_16(1521);
+emit_16(1585);
+emit_16(1520);
+emit_16(1585);
+emit_16(1521);
+emit_16(1586);
+emit_16(1522);
+emit_16(1586);
+emit_16(1521);
+emit_16(1586);
+emit_16(1522);
+emit_16(1587);
+emit_16(1523);
+emit_16(1587);
+emit_16(1522);
+emit_16(1587);
+emit_16(1523);
+emit_16(1588);
+emit_16(1524);
+emit_16(1588);
+emit_16(1523);
+emit_16(1588);
+emit_16(1524);
+emit_16(1589);
+emit_16(1525);
+emit_16(1589);
+emit_16(1524);
+emit_16(1589);
+emit_16(1525);
+emit_16(1590);
+emit_16(1526);
+emit_16(1590);
+emit_16(1525);
+emit_16(1590);
+emit_16(1526);
+emit_16(1591);
+emit_16(1527);
+emit_16(1591);
+emit_16(1526);
+emit_16(1591);
+emit_16(1527);
+emit_16(1592);
+emit_16(1528);
+emit_16(1592);
+emit_16(1527);
+emit_16(1592);
+emit_16(1528);
+emit_16(1593);
+emit_16(1529);
+emit_16(1593);
+emit_16(1528);
+emit_16(1593);
+emit_16(1529);
+emit_16(1594);
+emit_16(1530);
+emit_16(1594);
+emit_16(1529);
+emit_16(1594);
+emit_16(1530);
+emit_16(1595);
+emit_16(1531);
+emit_16(1595);
+emit_16(1530);
+emit_16(1595);
+emit_16(1531);
+emit_16(1596);
+emit_16(1532);
+emit_16(1596);
+emit_16(1531);
+emit_16(1596);
+emit_16(1532);
+emit_16(1597);
+emit_16(1533);
+emit_16(1597);
+emit_16(1532);
+emit_16(1597);
+emit_16(1533);
+emit_16(1598);
+emit_16(1534);
+emit_16(1598);
+emit_16(1533);
+emit_16(1598);
+emit_16(1534);
+emit_16(1599);
+emit_16(1535);
+emit_16(1599);
+emit_16(1534);
+emit_16(1600);
+emit_16(1536);
+emit_16(1601);
+emit_16(1537);
+emit_16(1601);
+emit_16(1536);
+emit_16(1601);
+emit_16(1537);
+emit_16(1602);
+emit_16(1538);
+emit_16(1602);
+emit_16(1537);
+emit_16(1602);
+emit_16(1538);
+emit_16(1603);
+emit_16(1539);
+emit_16(1603);
+emit_16(1538);
+emit_16(1603);
+emit_16(1539);
+emit_16(1604);
+emit_16(1540);
+emit_16(1604);
+emit_16(1539);
+emit_16(1604);
+emit_16(1540);
+emit_16(1605);
+emit_16(1541);
+emit_16(1605);
+emit_16(1540);
+emit_16(1605);
+emit_16(1541);
+emit_16(1606);
+emit_16(1542);
+emit_16(1606);
+emit_16(1541);
+emit_16(1606);
+emit_16(1542);
+emit_16(1607);
+emit_16(1543);
+emit_16(1607);
+emit_16(1542);
+emit_16(1607);
+emit_16(1543);
+emit_16(1608);
+emit_16(1544);
+emit_16(1608);
+emit_16(1543);
+emit_16(1608);
+emit_16(1544);
+emit_16(1609);
+emit_16(1545);
+emit_16(1609);
+emit_16(1544);
+emit_16(1609);
+emit_16(1545);
+emit_16(1610);
+emit_16(1546);
+emit_16(1610);
+emit_16(1545);
+emit_16(1610);
+emit_16(1546);
+emit_16(1611);
+emit_16(1547);
+emit_16(1611);
+emit_16(1546);
+emit_16(1611);
+emit_16(1547);
+emit_16(1612);
+emit_16(1548);
+emit_16(1612);
+emit_16(1547);
+emit_16(1612);
+emit_16(1548);
+emit_16(1613);
+emit_16(1549);
+emit_16(1613);
+emit_16(1548);
+emit_16(1613);
+emit_16(1549);
+emit_16(1614);
+emit_16(1550);
+emit_16(1614);
+emit_16(1549);
+emit_16(1614);
+emit_16(1550);
+emit_16(1615);
+emit_16(1551);
+emit_16(1615);
+emit_16(1550);
+emit_16(1615);
+emit_16(1551);
+emit_16(1616);
+emit_16(1552);
+emit_16(1616);
+emit_16(1551);
+emit_16(1616);
+emit_16(1552);
+emit_16(1617);
+emit_16(1553);
+emit_16(1617);
+emit_16(1552);
+emit_16(1617);
+emit_16(1553);
+emit_16(1618);
+emit_16(1554);
+emit_16(1618);
+emit_16(1553);
+emit_16(1618);
+emit_16(1554);
+emit_16(1619);
+emit_16(1555);
+emit_16(1619);
+emit_16(1554);
+emit_16(1619);
+emit_16(1555);
+emit_16(1620);
+emit_16(1556);
+emit_16(1620);
+emit_16(1555);
+emit_16(1620);
+emit_16(1556);
+emit_16(1621);
+emit_16(1557);
+emit_16(1621);
+emit_16(1556);
+emit_16(1621);
+emit_16(1557);
+emit_16(1622);
+emit_16(1558);
+emit_16(1622);
+emit_16(1557);
+emit_16(1622);
+emit_16(1558);
+emit_16(1623);
+emit_16(1559);
+emit_16(1623);
+emit_16(1558);
+emit_16(1623);
+emit_16(1559);
+emit_16(1624);
+emit_16(1560);
+emit_16(1624);
+emit_16(1559);
+emit_16(1624);
+emit_16(1560);
+emit_16(1625);
+emit_16(1561);
+emit_16(1625);
+emit_16(1560);
+emit_16(1625);
+emit_16(1561);
+emit_16(1626);
+emit_16(1562);
+emit_16(1626);
+emit_16(1561);
+emit_16(1626);
+emit_16(1562);
+emit_16(1627);
+emit_16(1563);
+emit_16(1627);
+emit_16(1562);
+emit_16(1627);
+emit_16(1563);
+emit_16(1628);
+emit_16(1564);
+emit_16(1628);
+emit_16(1563);
+emit_16(1628);
+emit_16(1564);
+emit_16(1629);
+emit_16(1565);
+emit_16(1629);
+emit_16(1564);
+emit_16(1629);
+emit_16(1565);
+emit_16(1630);
+emit_16(1566);
+emit_16(1630);
+emit_16(1565);
+emit_16(1630);
+emit_16(1566);
+emit_16(1631);
+emit_16(1567);
+emit_16(1631);
+emit_16(1566);
+emit_16(1631);
+emit_16(1567);
+emit_16(1632);
+emit_16(1568);
+emit_16(1632);
+emit_16(1567);
+emit_16(1632);
+emit_16(1568);
+emit_16(1633);
+emit_16(1569);
+emit_16(1633);
+emit_16(1568);
+emit_16(1633);
+emit_16(1569);
+emit_16(1634);
+emit_16(1570);
+emit_16(1634);
+emit_16(1569);
+emit_16(1634);
+emit_16(1570);
+emit_16(1635);
+emit_16(1571);
+emit_16(1635);
+emit_16(1570);
+emit_16(1635);
+emit_16(1571);
+emit_16(1636);
+emit_16(1572);
+emit_16(1636);
+emit_16(1571);
+emit_16(1636);
+emit_16(1572);
+emit_16(1637);
+emit_16(1573);
+emit_16(1637);
+emit_16(1572);
+emit_16(1637);
+emit_16(1573);
+emit_16(1638);
+emit_16(1574);
+emit_16(1638);
+emit_16(1573);
+emit_16(1638);
+emit_16(1574);
+emit_16(1639);
+emit_16(1575);
+emit_16(1639);
+emit_16(1574);
+emit_16(1639);
+emit_16(1575);
+emit_16(1640);
+emit_16(1576);
+emit_16(1640);
+emit_16(1575);
+emit_16(1640);
+emit_16(1576);
+emit_16(1641);
+emit_16(1577);
+emit_16(1641);
+emit_16(1576);
+emit_16(1641);
+emit_16(1577);
+emit_16(1642);
+emit_16(1578);
+emit_16(1642);
+emit_16(1577);
+emit_16(1642);
+emit_16(1578);
+emit_16(1643);
+emit_16(1579);
+emit_16(1643);
+emit_16(1578);
+emit_16(1643);
+emit_16(1579);
+emit_16(1644);
+emit_16(1580);
+emit_16(1644);
+emit_16(1579);
+emit_16(1644);
+emit_16(1580);
+emit_16(1645);
+emit_16(1581);
+emit_16(1645);
+emit_16(1580);
+emit_16(1645);
+emit_16(1581);
+emit_16(1646);
+emit_16(1582);
+emit_16(1646);
+emit_16(1581);
+emit_16(1646);
+emit_16(1582);
+emit_16(1647);
+emit_16(1583);
+emit_16(1647);
+emit_16(1582);
+emit_16(1647);
+emit_16(1583);
+emit_16(1648);
+emit_16(1584);
+emit_16(1648);
+emit_16(1583);
+emit_16(1648);
+emit_16(1584);
+emit_16(1649);
+emit_16(1585);
+emit_16(1649);
+emit_16(1584);
+emit_16(1649);
+emit_16(1585);
+emit_16(1650);
+emit_16(1586);
+emit_16(1650);
+emit_16(1585);
+emit_16(1650);
+emit_16(1586);
+emit_16(1651);
+emit_16(1587);
+emit_16(1651);
+emit_16(1586);
+emit_16(1651);
+emit_16(1587);
+emit_16(1652);
+emit_16(1588);
+emit_16(1652);
+emit_16(1587);
+emit_16(1652);
+emit_16(1588);
+emit_16(1653);
+emit_16(1589);
+emit_16(1653);
+emit_16(1588);
+emit_16(1653);
+emit_16(1589);
+emit_16(1654);
+emit_16(1590);
+emit_16(1654);
+emit_16(1589);
+emit_16(1654);
+emit_16(1590);
+emit_16(1655);
+emit_16(1591);
+emit_16(1655);
+emit_16(1590);
+emit_16(1655);
+emit_16(1591);
+emit_16(1656);
+emit_16(1592);
+emit_16(1656);
+emit_16(1591);
+emit_16(1656);
+emit_16(1592);
+emit_16(1657);
+emit_16(1593);
+emit_16(1657);
+emit_16(1592);
+emit_16(1657);
+emit_16(1593);
+emit_16(1658);
+emit_16(1594);
+emit_16(1658);
+emit_16(1593);
+emit_16(1658);
+emit_16(1594);
+emit_16(1659);
+emit_16(1595);
+emit_16(1659);
+emit_16(1594);
+emit_16(1659);
+emit_16(1595);
+emit_16(1660);
+emit_16(1596);
+emit_16(1660);
+emit_16(1595);
+emit_16(1660);
+emit_16(1596);
+emit_16(1661);
+emit_16(1597);
+emit_16(1661);
+emit_16(1596);
+emit_16(1661);
+emit_16(1597);
+emit_16(1662);
+emit_16(1598);
+emit_16(1662);
+emit_16(1597);
+emit_16(1662);
+emit_16(1598);
+emit_16(1663);
+emit_16(1599);
+emit_16(1663);
+emit_16(1598);
+emit_16(1664);
+emit_16(1600);
+emit_16(1665);
+emit_16(1601);
+emit_16(1665);
+emit_16(1600);
+emit_16(1665);
+emit_16(1601);
+emit_16(1666);
+emit_16(1602);
+emit_16(1666);
+emit_16(1601);
+emit_16(1666);
+emit_16(1602);
+emit_16(1667);
+emit_16(1603);
+emit_16(1667);
+emit_16(1602);
+emit_16(1667);
+emit_16(1603);
+emit_16(1668);
+emit_16(1604);
+emit_16(1668);
+emit_16(1603);
+emit_16(1668);
+emit_16(1604);
+emit_16(1669);
+emit_16(1605);
+emit_16(1669);
+emit_16(1604);
+emit_16(1669);
+emit_16(1605);
+emit_16(1670);
+emit_16(1606);
+emit_16(1670);
+emit_16(1605);
+emit_16(1670);
+emit_16(1606);
+emit_16(1671);
+emit_16(1607);
+emit_16(1671);
+emit_16(1606);
+emit_16(1671);
+emit_16(1607);
+emit_16(1672);
+emit_16(1608);
+emit_16(1672);
+emit_16(1607);
+emit_16(1672);
+emit_16(1608);
+emit_16(1673);
+emit_16(1609);
+emit_16(1673);
+emit_16(1608);
+emit_16(1673);
+emit_16(1609);
+emit_16(1674);
+emit_16(1610);
+emit_16(1674);
+emit_16(1609);
+emit_16(1674);
+emit_16(1610);
+emit_16(1675);
+emit_16(1611);
+emit_16(1675);
+emit_16(1610);
+emit_16(1675);
+emit_16(1611);
+emit_16(1676);
+emit_16(1612);
+emit_16(1676);
+emit_16(1611);
+emit_16(1676);
+emit_16(1612);
+emit_16(1677);
+emit_16(1613);
+emit_16(1677);
+emit_16(1612);
+emit_16(1677);
+emit_16(1613);
+emit_16(1678);
+emit_16(1614);
+emit_16(1678);
+emit_16(1613);
+emit_16(1678);
+emit_16(1614);
+emit_16(1679);
+emit_16(1615);
+emit_16(1679);
+emit_16(1614);
+emit_16(1679);
+emit_16(1615);
+emit_16(1680);
+emit_16(1616);
+emit_16(1680);
+emit_16(1615);
+emit_16(1680);
+emit_16(1616);
+emit_16(1681);
+emit_16(1617);
+emit_16(1681);
+emit_16(1616);
+emit_16(1681);
+emit_16(1617);
+emit_16(1682);
+emit_16(1618);
+emit_16(1682);
+emit_16(1617);
+emit_16(1682);
+emit_16(1618);
+emit_16(1683);
+emit_16(1619);
+emit_16(1683);
+emit_16(1618);
+emit_16(1683);
+emit_16(1619);
+emit_16(1684);
+emit_16(1620);
+emit_16(1684);
+emit_16(1619);
+emit_16(1684);
+emit_16(1620);
+emit_16(1685);
+emit_16(1621);
+emit_16(1685);
+emit_16(1620);
+emit_16(1685);
+emit_16(1621);
+emit_16(1686);
+emit_16(1622);
+emit_16(1686);
+emit_16(1621);
+emit_16(1686);
+emit_16(1622);
+emit_16(1687);
+emit_16(1623);
+emit_16(1687);
+emit_16(1622);
+emit_16(1687);
+emit_16(1623);
+emit_16(1688);
+emit_16(1624);
+emit_16(1688);
+emit_16(1623);
+emit_16(1688);
+emit_16(1624);
+emit_16(1689);
+emit_16(1625);
+emit_16(1689);
+emit_16(1624);
+emit_16(1689);
+emit_16(1625);
+emit_16(1690);
+emit_16(1626);
+emit_16(1690);
+emit_16(1625);
+emit_16(1690);
+emit_16(1626);
+emit_16(1691);
+emit_16(1627);
+emit_16(1691);
+emit_16(1626);
+emit_16(1691);
+emit_16(1627);
+emit_16(1692);
+emit_16(1628);
+emit_16(1692);
+emit_16(1627);
+emit_16(1692);
+emit_16(1628);
+emit_16(1693);
+emit_16(1629);
+emit_16(1693);
+emit_16(1628);
+emit_16(1693);
+emit_16(1629);
+emit_16(1694);
+emit_16(1630);
+emit_16(1694);
+emit_16(1629);
+emit_16(1694);
+emit_16(1630);
+emit_16(1695);
+emit_16(1631);
+emit_16(1695);
+emit_16(1630);
+emit_16(1695);
+emit_16(1631);
+emit_16(1696);
+emit_16(1632);
+emit_16(1696);
+emit_16(1631);
+emit_16(1696);
+emit_16(1632);
+emit_16(1697);
+emit_16(1633);
+emit_16(1697);
+emit_16(1632);
+emit_16(1697);
+emit_16(1633);
+emit_16(1698);
+emit_16(1634);
+emit_16(1698);
+emit_16(1633);
+emit_16(1698);
+emit_16(1634);
+emit_16(1699);
+emit_16(1635);
+emit_16(1699);
+emit_16(1634);
+emit_16(1699);
+emit_16(1635);
+emit_16(1700);
+emit_16(1636);
+emit_16(1700);
+emit_16(1635);
+emit_16(1700);
+emit_16(1636);
+emit_16(1701);
+emit_16(1637);
+emit_16(1701);
+emit_16(1636);
+emit_16(1701);
+emit_16(1637);
+emit_16(1702);
+emit_16(1638);
+emit_16(1702);
+emit_16(1637);
+emit_16(1702);
+emit_16(1638);
+emit_16(1703);
+emit_16(1639);
+emit_16(1703);
+emit_16(1638);
+emit_16(1703);
+emit_16(1639);
+emit_16(1704);
+emit_16(1640);
+emit_16(1704);
+emit_16(1639);
+emit_16(1704);
+emit_16(1640);
+emit_16(1705);
+emit_16(1641);
+emit_16(1705);
+emit_16(1640);
+emit_16(1705);
+emit_16(1641);
+emit_16(1706);
+emit_16(1642);
+emit_16(1706);
+emit_16(1641);
+emit_16(1706);
+emit_16(1642);
+emit_16(1707);
+emit_16(1643);
+emit_16(1707);
+emit_16(1642);
+emit_16(1707);
+emit_16(1643);
+emit_16(1708);
+emit_16(1644);
+emit_16(1708);
+emit_16(1643);
+emit_16(1708);
+emit_16(1644);
+emit_16(1709);
+emit_16(1645);
+emit_16(1709);
+emit_16(1644);
+emit_16(1709);
+emit_16(1645);
+emit_16(1710);
+emit_16(1646);
+emit_16(1710);
+emit_16(1645);
+emit_16(1710);
+emit_16(1646);
+emit_16(1711);
+emit_16(1647);
+emit_16(1711);
+emit_16(1646);
+emit_16(1711);
+emit_16(1647);
+emit_16(1712);
+emit_16(1648);
+emit_16(1712);
+emit_16(1647);
+emit_16(1712);
+emit_16(1648);
+emit_16(1713);
+emit_16(1649);
+emit_16(1713);
+emit_16(1648);
+emit_16(1713);
+emit_16(1649);
+emit_16(1714);
+emit_16(1650);
+emit_16(1714);
+emit_16(1649);
+emit_16(1714);
+emit_16(1650);
+emit_16(1715);
+emit_16(1651);
+emit_16(1715);
+emit_16(1650);
+emit_16(1715);
+emit_16(1651);
+emit_16(1716);
+emit_16(1652);
+emit_16(1716);
+emit_16(1651);
+emit_16(1716);
+emit_16(1652);
+emit_16(1717);
+emit_16(1653);
+emit_16(1717);
+emit_16(1652);
+emit_16(1717);
+emit_16(1653);
+emit_16(1718);
+emit_16(1654);
+emit_16(1718);
+emit_16(1653);
+emit_16(1718);
+emit_16(1654);
+emit_16(1719);
+emit_16(1655);
+emit_16(1719);
+emit_16(1654);
+emit_16(1719);
+emit_16(1655);
+emit_16(1720);
+emit_16(1656);
+emit_16(1720);
+emit_16(1655);
+emit_16(1720);
+emit_16(1656);
+emit_16(1721);
+emit_16(1657);
+emit_16(1721);
+emit_16(1656);
+emit_16(1721);
+emit_16(1657);
+emit_16(1722);
+emit_16(1658);
+emit_16(1722);
+emit_16(1657);
+emit_16(1722);
+emit_16(1658);
+emit_16(1723);
+emit_16(1659);
+emit_16(1723);
+emit_16(1658);
+emit_16(1723);
+emit_16(1659);
+emit_16(1724);
+emit_16(1660);
+emit_16(1724);
+emit_16(1659);
+emit_16(1724);
+emit_16(1660);
+emit_16(1725);
+emit_16(1661);
+emit_16(1725);
+emit_16(1660);
+emit_16(1725);
+emit_16(1661);
+emit_16(1726);
+emit_16(1662);
+emit_16(1726);
+emit_16(1661);
+emit_16(1726);
+emit_16(1662);
+emit_16(1727);
+emit_16(1663);
+emit_16(1727);
+emit_16(1662);
+emit_16(1728);
+emit_16(1664);
+emit_16(1729);
+emit_16(1665);
+emit_16(1729);
+emit_16(1664);
+emit_16(1729);
+emit_16(1665);
+emit_16(1730);
+emit_16(1666);
+emit_16(1730);
+emit_16(1665);
+emit_16(1730);
+emit_16(1666);
+emit_16(1731);
+emit_16(1667);
+emit_16(1731);
+emit_16(1666);
+emit_16(1731);
+emit_16(1667);
+emit_16(1732);
+emit_16(1668);
+emit_16(1732);
+emit_16(1667);
+emit_16(1732);
+emit_16(1668);
+emit_16(1733);
+emit_16(1669);
+emit_16(1733);
+emit_16(1668);
+emit_16(1733);
+emit_16(1669);
+emit_16(1734);
+emit_16(1670);
+emit_16(1734);
+emit_16(1669);
+emit_16(1734);
+emit_16(1670);
+emit_16(1735);
+emit_16(1671);
+emit_16(1735);
+emit_16(1670);
+emit_16(1735);
+emit_16(1671);
+emit_16(1736);
+emit_16(1672);
+emit_16(1736);
+emit_16(1671);
+emit_16(1736);
+emit_16(1672);
+emit_16(1737);
+emit_16(1673);
+emit_16(1737);
+emit_16(1672);
+emit_16(1737);
+emit_16(1673);
+emit_16(1738);
+emit_16(1674);
+emit_16(1738);
+emit_16(1673);
+emit_16(1738);
+emit_16(1674);
+emit_16(1739);
+emit_16(1675);
+emit_16(1739);
+emit_16(1674);
+emit_16(1739);
+emit_16(1675);
+emit_16(1740);
+emit_16(1676);
+emit_16(1740);
+emit_16(1675);
+emit_16(1740);
+emit_16(1676);
+emit_16(1741);
+emit_16(1677);
+emit_16(1741);
+emit_16(1676);
+emit_16(1741);
+emit_16(1677);
+emit_16(1742);
+emit_16(1678);
+emit_16(1742);
+emit_16(1677);
+emit_16(1742);
+emit_16(1678);
+emit_16(1743);
+emit_16(1679);
+emit_16(1743);
+emit_16(1678);
+emit_16(1743);
+emit_16(1679);
+emit_16(1744);
+emit_16(1680);
+emit_16(1744);
+emit_16(1679);
+emit_16(1744);
+emit_16(1680);
+emit_16(1745);
+emit_16(1681);
+emit_16(1745);
+emit_16(1680);
+emit_16(1745);
+emit_16(1681);
+emit_16(1746);
+emit_16(1682);
+emit_16(1746);
+emit_16(1681);
+emit_16(1746);
+emit_16(1682);
+emit_16(1747);
+emit_16(1683);
+emit_16(1747);
+emit_16(1682);
+emit_16(1747);
+emit_16(1683);
+emit_16(1748);
+emit_16(1684);
+emit_16(1748);
+emit_16(1683);
+emit_16(1748);
+emit_16(1684);
+emit_16(1749);
+emit_16(1685);
+emit_16(1749);
+emit_16(1684);
+emit_16(1749);
+emit_16(1685);
+emit_16(1750);
+emit_16(1686);
+emit_16(1750);
+emit_16(1685);
+emit_16(1750);
+emit_16(1686);
+emit_16(1751);
+emit_16(1687);
+emit_16(1751);
+emit_16(1686);
+emit_16(1751);
+emit_16(1687);
+emit_16(1752);
+emit_16(1688);
+emit_16(1752);
+emit_16(1687);
+emit_16(1752);
+emit_16(1688);
+emit_16(1753);
+emit_16(1689);
+emit_16(1753);
+emit_16(1688);
+emit_16(1753);
+emit_16(1689);
+emit_16(1754);
+emit_16(1690);
+emit_16(1754);
+emit_16(1689);
+emit_16(1754);
+emit_16(1690);
+emit_16(1755);
+emit_16(1691);
+emit_16(1755);
+emit_16(1690);
+emit_16(1755);
+emit_16(1691);
+emit_16(1756);
+emit_16(1692);
+emit_16(1756);
+emit_16(1691);
+emit_16(1756);
+emit_16(1692);
+emit_16(1757);
+emit_16(1693);
+emit_16(1757);
+emit_16(1692);
+emit_16(1757);
+emit_16(1693);
+emit_16(1758);
+emit_16(1694);
+emit_16(1758);
+emit_16(1693);
+emit_16(1758);
+emit_16(1694);
+emit_16(1759);
+emit_16(1695);
+emit_16(1759);
+emit_16(1694);
+emit_16(1759);
+emit_16(1695);
+emit_16(1760);
+emit_16(1696);
+emit_16(1760);
+emit_16(1695);
+emit_16(1760);
+emit_16(1696);
+emit_16(1761);
+emit_16(1697);
+emit_16(1761);
+emit_16(1696);
+emit_16(1761);
+emit_16(1697);
+emit_16(1762);
+emit_16(1698);
+emit_16(1762);
+emit_16(1697);
+emit_16(1762);
+emit_16(1698);
+emit_16(1763);
+emit_16(1699);
+emit_16(1763);
+emit_16(1698);
+emit_16(1763);
+emit_16(1699);
+emit_16(1764);
+emit_16(1700);
+emit_16(1764);
+emit_16(1699);
+emit_16(1764);
+emit_16(1700);
+emit_16(1765);
+emit_16(1701);
+emit_16(1765);
+emit_16(1700);
+emit_16(1765);
+emit_16(1701);
+emit_16(1766);
+emit_16(1702);
+emit_16(1766);
+emit_16(1701);
+emit_16(1766);
+emit_16(1702);
+emit_16(1767);
+emit_16(1703);
+emit_16(1767);
+emit_16(1702);
+emit_16(1767);
+emit_16(1703);
+emit_16(1768);
+emit_16(1704);
+emit_16(1768);
+emit_16(1703);
+emit_16(1768);
+emit_16(1704);
+emit_16(1769);
+emit_16(1705);
+emit_16(1769);
+emit_16(1704);
+emit_16(1769);
+emit_16(1705);
+emit_16(1770);
+emit_16(1706);
+emit_16(1770);
+emit_16(1705);
+emit_16(1770);
+emit_16(1706);
+emit_16(1771);
+emit_16(1707);
+emit_16(1771);
+emit_16(1706);
+emit_16(1771);
+emit_16(1707);
+emit_16(1772);
+emit_16(1708);
+emit_16(1772);
+emit_16(1707);
+emit_16(1772);
+emit_16(1708);
+emit_16(1773);
+emit_16(1709);
+emit_16(1773);
+emit_16(1708);
+emit_16(1773);
+emit_16(1709);
+emit_16(1774);
+emit_16(1710);
+emit_16(1774);
+emit_16(1709);
+emit_16(1774);
+emit_16(1710);
+emit_16(1775);
+emit_16(1711);
+emit_16(1775);
+emit_16(1710);
+emit_16(1775);
+emit_16(1711);
+emit_16(1776);
+emit_16(1712);
+emit_16(1776);
+emit_16(1711);
+emit_16(1776);
+emit_16(1712);
+emit_16(1777);
+emit_16(1713);
+emit_16(1777);
+emit_16(1712);
+emit_16(1777);
+emit_16(1713);
+emit_16(1778);
+emit_16(1714);
+emit_16(1778);
+emit_16(1713);
+emit_16(1778);
+emit_16(1714);
+emit_16(1779);
+emit_16(1715);
+emit_16(1779);
+emit_16(1714);
+emit_16(1779);
+emit_16(1715);
+emit_16(1780);
+emit_16(1716);
+emit_16(1780);
+emit_16(1715);
+emit_16(1780);
+emit_16(1716);
+emit_16(1781);
+emit_16(1717);
+emit_16(1781);
+emit_16(1716);
+emit_16(1781);
+emit_16(1717);
+emit_16(1782);
+emit_16(1718);
+emit_16(1782);
+emit_16(1717);
+emit_16(1782);
+emit_16(1718);
+emit_16(1783);
+emit_16(1719);
+emit_16(1783);
+emit_16(1718);
+emit_16(1783);
+emit_16(1719);
+emit_16(1784);
+emit_16(1720);
+emit_16(1784);
+emit_16(1719);
+emit_16(1784);
+emit_16(1720);
+emit_16(1785);
+emit_16(1721);
+emit_16(1785);
+emit_16(1720);
+emit_16(1785);
+emit_16(1721);
+emit_16(1786);
+emit_16(1722);
+emit_16(1786);
+emit_16(1721);
+emit_16(1786);
+emit_16(1722);
+emit_16(1787);
+emit_16(1723);
+emit_16(1787);
+emit_16(1722);
+emit_16(1787);
+emit_16(1723);
+emit_16(1788);
+emit_16(1724);
+emit_16(1788);
+emit_16(1723);
+emit_16(1788);
+emit_16(1724);
+emit_16(1789);
+emit_16(1725);
+emit_16(1789);
+emit_16(1724);
+emit_16(1789);
+emit_16(1725);
+emit_16(1790);
+emit_16(1726);
+emit_16(1790);
+emit_16(1725);
+emit_16(1790);
+emit_16(1726);
+emit_16(1791);
+emit_16(1727);
+emit_16(1791);
+emit_16(1726);
+emit_16(1792);
+emit_16(1728);
+emit_16(1793);
+emit_16(1729);
+emit_16(1793);
+emit_16(1728);
+emit_16(1793);
+emit_16(1729);
+emit_16(1794);
+emit_16(1730);
+emit_16(1794);
+emit_16(1729);
+emit_16(1794);
+emit_16(1730);
+emit_16(1795);
+emit_16(1731);
+emit_16(1795);
+emit_16(1730);
+emit_16(1795);
+emit_16(1731);
+emit_16(1796);
+emit_16(1732);
+emit_16(1796);
+emit_16(1731);
+emit_16(1796);
+emit_16(1732);
+emit_16(1797);
+emit_16(1733);
+emit_16(1797);
+emit_16(1732);
+emit_16(1797);
+emit_16(1733);
+emit_16(1798);
+emit_16(1734);
+emit_16(1798);
+emit_16(1733);
+emit_16(1798);
+emit_16(1734);
+emit_16(1799);
+emit_16(1735);
+emit_16(1799);
+emit_16(1734);
+emit_16(1799);
+emit_16(1735);
+emit_16(1800);
+emit_16(1736);
+emit_16(1800);
+emit_16(1735);
+emit_16(1800);
+emit_16(1736);
+emit_16(1801);
+emit_16(1737);
+emit_16(1801);
+emit_16(1736);
+emit_16(1801);
+emit_16(1737);
+emit_16(1802);
+emit_16(1738);
+emit_16(1802);
+emit_16(1737);
+emit_16(1802);
+emit_16(1738);
+emit_16(1803);
+emit_16(1739);
+emit_16(1803);
+emit_16(1738);
+emit_16(1803);
+emit_16(1739);
+emit_16(1804);
+emit_16(1740);
+emit_16(1804);
+emit_16(1739);
+emit_16(1804);
+emit_16(1740);
+emit_16(1805);
+emit_16(1741);
+emit_16(1805);
+emit_16(1740);
+emit_16(1805);
+emit_16(1741);
+emit_16(1806);
+emit_16(1742);
+emit_16(1806);
+emit_16(1741);
+emit_16(1806);
+emit_16(1742);
+emit_16(1807);
+emit_16(1743);
+emit_16(1807);
+emit_16(1742);
+emit_16(1807);
+emit_16(1743);
+emit_16(1808);
+emit_16(1744);
+emit_16(1808);
+emit_16(1743);
+emit_16(1808);
+emit_16(1744);
+emit_16(1809);
+emit_16(1745);
+emit_16(1809);
+emit_16(1744);
+emit_16(1809);
+emit_16(1745);
+emit_16(1810);
+emit_16(1746);
+emit_16(1810);
+emit_16(1745);
+emit_16(1810);
+emit_16(1746);
+emit_16(1811);
+emit_16(1747);
+emit_16(1811);
+emit_16(1746);
+emit_16(1811);
+emit_16(1747);
+emit_16(1812);
+emit_16(1748);
+emit_16(1812);
+emit_16(1747);
+emit_16(1812);
+emit_16(1748);
+emit_16(1813);
+emit_16(1749);
+emit_16(1813);
+emit_16(1748);
+emit_16(1813);
+emit_16(1749);
+emit_16(1814);
+emit_16(1750);
+emit_16(1814);
+emit_16(1749);
+emit_16(1814);
+emit_16(1750);
+emit_16(1815);
+emit_16(1751);
+emit_16(1815);
+emit_16(1750);
+emit_16(1815);
+emit_16(1751);
+emit_16(1816);
+emit_16(1752);
+emit_16(1816);
+emit_16(1751);
+emit_16(1816);
+emit_16(1752);
+emit_16(1817);
+emit_16(1753);
+emit_16(1817);
+emit_16(1752);
+emit_16(1817);
+emit_16(1753);
+emit_16(1818);
+emit_16(1754);
+emit_16(1818);
+emit_16(1753);
+emit_16(1818);
+emit_16(1754);
+emit_16(1819);
+emit_16(1755);
+emit_16(1819);
+emit_16(1754);
+emit_16(1819);
+emit_16(1755);
+emit_16(1820);
+emit_16(1756);
+emit_16(1820);
+emit_16(1755);
+emit_16(1820);
+emit_16(1756);
+emit_16(1821);
+emit_16(1757);
+emit_16(1821);
+emit_16(1756);
+emit_16(1821);
+emit_16(1757);
+emit_16(1822);
+emit_16(1758);
+emit_16(1822);
+emit_16(1757);
+emit_16(1822);
+emit_16(1758);
+emit_16(1823);
+emit_16(1759);
+emit_16(1823);
+emit_16(1758);
+emit_16(1823);
+emit_16(1759);
+emit_16(1824);
+emit_16(1760);
+emit_16(1824);
+emit_16(1759);
+emit_16(1824);
+emit_16(1760);
+emit_16(1825);
+emit_16(1761);
+emit_16(1825);
+emit_16(1760);
+emit_16(1825);
+emit_16(1761);
+emit_16(1826);
+emit_16(1762);
+emit_16(1826);
+emit_16(1761);
+emit_16(1826);
+emit_16(1762);
+emit_16(1827);
+emit_16(1763);
+emit_16(1827);
+emit_16(1762);
+emit_16(1827);
+emit_16(1763);
+emit_16(1828);
+emit_16(1764);
+emit_16(1828);
+emit_16(1763);
+emit_16(1828);
+emit_16(1764);
+emit_16(1829);
+emit_16(1765);
+emit_16(1829);
+emit_16(1764);
+emit_16(1829);
+emit_16(1765);
+emit_16(1830);
+emit_16(1766);
+emit_16(1830);
+emit_16(1765);
+emit_16(1830);
+emit_16(1766);
+emit_16(1831);
+emit_16(1767);
+emit_16(1831);
+emit_16(1766);
+emit_16(1831);
+emit_16(1767);
+emit_16(1832);
+emit_16(1768);
+emit_16(1832);
+emit_16(1767);
+emit_16(1832);
+emit_16(1768);
+emit_16(1833);
+emit_16(1769);
+emit_16(1833);
+emit_16(1768);
+emit_16(1833);
+emit_16(1769);
+emit_16(1834);
+emit_16(1770);
+emit_16(1834);
+emit_16(1769);
+emit_16(1834);
+emit_16(1770);
+emit_16(1835);
+emit_16(1771);
+emit_16(1835);
+emit_16(1770);
+emit_16(1835);
+emit_16(1771);
+emit_16(1836);
+emit_16(1772);
+emit_16(1836);
+emit_16(1771);
+emit_16(1836);
+emit_16(1772);
+emit_16(1837);
+emit_16(1773);
+emit_16(1837);
+emit_16(1772);
+emit_16(1837);
+emit_16(1773);
+emit_16(1838);
+emit_16(1774);
+emit_16(1838);
+emit_16(1773);
+emit_16(1838);
+emit_16(1774);
+emit_16(1839);
+emit_16(1775);
+emit_16(1839);
+emit_16(1774);
+emit_16(1839);
+emit_16(1775);
+emit_16(1840);
+emit_16(1776);
+emit_16(1840);
+emit_16(1775);
+emit_16(1840);
+emit_16(1776);
+emit_16(1841);
+emit_16(1777);
+emit_16(1841);
+emit_16(1776);
+emit_16(1841);
+emit_16(1777);
+emit_16(1842);
+emit_16(1778);
+emit_16(1842);
+emit_16(1777);
+emit_16(1842);
+emit_16(1778);
+emit_16(1843);
+emit_16(1779);
+emit_16(1843);
+emit_16(1778);
+emit_16(1843);
+emit_16(1779);
+emit_16(1844);
+emit_16(1780);
+emit_16(1844);
+emit_16(1779);
+emit_16(1844);
+emit_16(1780);
+emit_16(1845);
+emit_16(1781);
+emit_16(1845);
+emit_16(1780);
+emit_16(1845);
+emit_16(1781);
+emit_16(1846);
+emit_16(1782);
+emit_16(1846);
+emit_16(1781);
+emit_16(1846);
+emit_16(1782);
+emit_16(1847);
+emit_16(1783);
+emit_16(1847);
+emit_16(1782);
+emit_16(1847);
+emit_16(1783);
+emit_16(1848);
+emit_16(1784);
+emit_16(1848);
+emit_16(1783);
+emit_16(1848);
+emit_16(1784);
+emit_16(1849);
+emit_16(1785);
+emit_16(1849);
+emit_16(1784);
+emit_16(1849);
+emit_16(1785);
+emit_16(1850);
+emit_16(1786);
+emit_16(1850);
+emit_16(1785);
+emit_16(1850);
+emit_16(1786);
+emit_16(1851);
+emit_16(1787);
+emit_16(1851);
+emit_16(1786);
+emit_16(1851);
+emit_16(1787);
+emit_16(1852);
+emit_16(1788);
+emit_16(1852);
+emit_16(1787);
+emit_16(1852);
+emit_16(1788);
+emit_16(1853);
+emit_16(1789);
+emit_16(1853);
+emit_16(1788);
+emit_16(1853);
+emit_16(1789);
+emit_16(1854);
+emit_16(1790);
+emit_16(1854);
+emit_16(1789);
+emit_16(1854);
+emit_16(1790);
+emit_16(1855);
+emit_16(1791);
+emit_16(1855);
+emit_16(1790);
+emit_16(1856);
+emit_16(1792);
+emit_16(1857);
+emit_16(1793);
+emit_16(1857);
+emit_16(1792);
+emit_16(1857);
+emit_16(1793);
+emit_16(1858);
+emit_16(1794);
+emit_16(1858);
+emit_16(1793);
+emit_16(1858);
+emit_16(1794);
+emit_16(1859);
+emit_16(1795);
+emit_16(1859);
+emit_16(1794);
+emit_16(1859);
+emit_16(1795);
+emit_16(1860);
+emit_16(1796);
+emit_16(1860);
+emit_16(1795);
+emit_16(1860);
+emit_16(1796);
+emit_16(1861);
+emit_16(1797);
+emit_16(1861);
+emit_16(1796);
+emit_16(1861);
+emit_16(1797);
+emit_16(1862);
+emit_16(1798);
+emit_16(1862);
+emit_16(1797);
+emit_16(1862);
+emit_16(1798);
+emit_16(1863);
+emit_16(1799);
+emit_16(1863);
+emit_16(1798);
+emit_16(1863);
+emit_16(1799);
+emit_16(1864);
+emit_16(1800);
+emit_16(1864);
+emit_16(1799);
+emit_16(1864);
+emit_16(1800);
+emit_16(1865);
+emit_16(1801);
+emit_16(1865);
+emit_16(1800);
+emit_16(1865);
+emit_16(1801);
+emit_16(1866);
+emit_16(1802);
+emit_16(1866);
+emit_16(1801);
+emit_16(1866);
+emit_16(1802);
+emit_16(1867);
+emit_16(1803);
+emit_16(1867);
+emit_16(1802);
+emit_16(1867);
+emit_16(1803);
+emit_16(1868);
+emit_16(1804);
+emit_16(1868);
+emit_16(1803);
+emit_16(1868);
+emit_16(1804);
+emit_16(1869);
+emit_16(1805);
+emit_16(1869);
+emit_16(1804);
+emit_16(1869);
+emit_16(1805);
+emit_16(1870);
+emit_16(1806);
+emit_16(1870);
+emit_16(1805);
+emit_16(1870);
+emit_16(1806);
+emit_16(1871);
+emit_16(1807);
+emit_16(1871);
+emit_16(1806);
+emit_16(1871);
+emit_16(1807);
+emit_16(1872);
+emit_16(1808);
+emit_16(1872);
+emit_16(1807);
+emit_16(1872);
+emit_16(1808);
+emit_16(1873);
+emit_16(1809);
+emit_16(1873);
+emit_16(1808);
+emit_16(1873);
+emit_16(1809);
+emit_16(1874);
+emit_16(1810);
+emit_16(1874);
+emit_16(1809);
+emit_16(1874);
+emit_16(1810);
+emit_16(1875);
+emit_16(1811);
+emit_16(1875);
+emit_16(1810);
+emit_16(1875);
+emit_16(1811);
+emit_16(1876);
+emit_16(1812);
+emit_16(1876);
+emit_16(1811);
+emit_16(1876);
+emit_16(1812);
+emit_16(1877);
+emit_16(1813);
+emit_16(1877);
+emit_16(1812);
+emit_16(1877);
+emit_16(1813);
+emit_16(1878);
+emit_16(1814);
+emit_16(1878);
+emit_16(1813);
+emit_16(1878);
+emit_16(1814);
+emit_16(1879);
+emit_16(1815);
+emit_16(1879);
+emit_16(1814);
+emit_16(1879);
+emit_16(1815);
+emit_16(1880);
+emit_16(1816);
+emit_16(1880);
+emit_16(1815);
+emit_16(1880);
+emit_16(1816);
+emit_16(1881);
+emit_16(1817);
+emit_16(1881);
+emit_16(1816);
+emit_16(1881);
+emit_16(1817);
+emit_16(1882);
+emit_16(1818);
+emit_16(1882);
+emit_16(1817);
+emit_16(1882);
+emit_16(1818);
+emit_16(1883);
+emit_16(1819);
+emit_16(1883);
+emit_16(1818);
+emit_16(1883);
+emit_16(1819);
+emit_16(1884);
+emit_16(1820);
+emit_16(1884);
+emit_16(1819);
+emit_16(1884);
+emit_16(1820);
+emit_16(1885);
+emit_16(1821);
+emit_16(1885);
+emit_16(1820);
+emit_16(1885);
+emit_16(1821);
+emit_16(1886);
+emit_16(1822);
+emit_16(1886);
+emit_16(1821);
+emit_16(1886);
+emit_16(1822);
+emit_16(1887);
+emit_16(1823);
+emit_16(1887);
+emit_16(1822);
+emit_16(1887);
+emit_16(1823);
+emit_16(1888);
+emit_16(1824);
+emit_16(1888);
+emit_16(1823);
+emit_16(1888);
+emit_16(1824);
+emit_16(1889);
+emit_16(1825);
+emit_16(1889);
+emit_16(1824);
+emit_16(1889);
+emit_16(1825);
+emit_16(1890);
+emit_16(1826);
+emit_16(1890);
+emit_16(1825);
+emit_16(1890);
+emit_16(1826);
+emit_16(1891);
+emit_16(1827);
+emit_16(1891);
+emit_16(1826);
+emit_16(1891);
+emit_16(1827);
+emit_16(1892);
+emit_16(1828);
+emit_16(1892);
+emit_16(1827);
+emit_16(1892);
+emit_16(1828);
+emit_16(1893);
+emit_16(1829);
+emit_16(1893);
+emit_16(1828);
+emit_16(1893);
+emit_16(1829);
+emit_16(1894);
+emit_16(1830);
+emit_16(1894);
+emit_16(1829);
+emit_16(1894);
+emit_16(1830);
+emit_16(1895);
+emit_16(1831);
+emit_16(1895);
+emit_16(1830);
+emit_16(1895);
+emit_16(1831);
+emit_16(1896);
+emit_16(1832);
+emit_16(1896);
+emit_16(1831);
+emit_16(1896);
+emit_16(1832);
+emit_16(1897);
+emit_16(1833);
+emit_16(1897);
+emit_16(1832);
+emit_16(1897);
+emit_16(1833);
+emit_16(1898);
+emit_16(1834);
+emit_16(1898);
+emit_16(1833);
+emit_16(1898);
+emit_16(1834);
+emit_16(1899);
+emit_16(1835);
+emit_16(1899);
+emit_16(1834);
+emit_16(1899);
+emit_16(1835);
+emit_16(1900);
+emit_16(1836);
+emit_16(1900);
+emit_16(1835);
+emit_16(1900);
+emit_16(1836);
+emit_16(1901);
+emit_16(1837);
+emit_16(1901);
+emit_16(1836);
+emit_16(1901);
+emit_16(1837);
+emit_16(1902);
+emit_16(1838);
+emit_16(1902);
+emit_16(1837);
+emit_16(1902);
+emit_16(1838);
+emit_16(1903);
+emit_16(1839);
+emit_16(1903);
+emit_16(1838);
+emit_16(1903);
+emit_16(1839);
+emit_16(1904);
+emit_16(1840);
+emit_16(1904);
+emit_16(1839);
+emit_16(1904);
+emit_16(1840);
+emit_16(1905);
+emit_16(1841);
+emit_16(1905);
+emit_16(1840);
+emit_16(1905);
+emit_16(1841);
+emit_16(1906);
+emit_16(1842);
+emit_16(1906);
+emit_16(1841);
+emit_16(1906);
+emit_16(1842);
+emit_16(1907);
+emit_16(1843);
+emit_16(1907);
+emit_16(1842);
+emit_16(1907);
+emit_16(1843);
+emit_16(1908);
+emit_16(1844);
+emit_16(1908);
+emit_16(1843);
+emit_16(1908);
+emit_16(1844);
+emit_16(1909);
+emit_16(1845);
+emit_16(1909);
+emit_16(1844);
+emit_16(1909);
+emit_16(1845);
+emit_16(1910);
+emit_16(1846);
+emit_16(1910);
+emit_16(1845);
+emit_16(1910);
+emit_16(1846);
+emit_16(1911);
+emit_16(1847);
+emit_16(1911);
+emit_16(1846);
+emit_16(1911);
+emit_16(1847);
+emit_16(1912);
+emit_16(1848);
+emit_16(1912);
+emit_16(1847);
+emit_16(1912);
+emit_16(1848);
+emit_16(1913);
+emit_16(1849);
+emit_16(1913);
+emit_16(1848);
+emit_16(1913);
+emit_16(1849);
+emit_16(1914);
+emit_16(1850);
+emit_16(1914);
+emit_16(1849);
+emit_16(1914);
+emit_16(1850);
+emit_16(1915);
+emit_16(1851);
+emit_16(1915);
+emit_16(1850);
+emit_16(1915);
+emit_16(1851);
+emit_16(1916);
+emit_16(1852);
+emit_16(1916);
+emit_16(1851);
+emit_16(1916);
+emit_16(1852);
+emit_16(1917);
+emit_16(1853);
+emit_16(1917);
+emit_16(1852);
+emit_16(1917);
+emit_16(1853);
+emit_16(1918);
+emit_16(1854);
+emit_16(1918);
+emit_16(1853);
+emit_16(1918);
+emit_16(1854);
+emit_16(1919);
+emit_16(1855);
+emit_16(1919);
+emit_16(1854);
+emit_16(1920);
+emit_16(1856);
+emit_16(1921);
+emit_16(1857);
+emit_16(1921);
+emit_16(1856);
+emit_16(1921);
+emit_16(1857);
+emit_16(1922);
+emit_16(1858);
+emit_16(1922);
+emit_16(1857);
+emit_16(1922);
+emit_16(1858);
+emit_16(1923);
+emit_16(1859);
+emit_16(1923);
+emit_16(1858);
+emit_16(1923);
+emit_16(1859);
+emit_16(1924);
+emit_16(1860);
+emit_16(1924);
+emit_16(1859);
+emit_16(1924);
+emit_16(1860);
+emit_16(1925);
+emit_16(1861);
+emit_16(1925);
+emit_16(1860);
+emit_16(1925);
+emit_16(1861);
+emit_16(1926);
+emit_16(1862);
+emit_16(1926);
+emit_16(1861);
+emit_16(1926);
+emit_16(1862);
+emit_16(1927);
+emit_16(1863);
+emit_16(1927);
+emit_16(1862);
+emit_16(1927);
+emit_16(1863);
+emit_16(1928);
+emit_16(1864);
+emit_16(1928);
+emit_16(1863);
+emit_16(1928);
+emit_16(1864);
+emit_16(1929);
+emit_16(1865);
+emit_16(1929);
+emit_16(1864);
+emit_16(1929);
+emit_16(1865);
+emit_16(1930);
+emit_16(1866);
+emit_16(1930);
+emit_16(1865);
+emit_16(1930);
+emit_16(1866);
+emit_16(1931);
+emit_16(1867);
+emit_16(1931);
+emit_16(1866);
+emit_16(1931);
+emit_16(1867);
+emit_16(1932);
+emit_16(1868);
+emit_16(1932);
+emit_16(1867);
+emit_16(1932);
+emit_16(1868);
+emit_16(1933);
+emit_16(1869);
+emit_16(1933);
+emit_16(1868);
+emit_16(1933);
+emit_16(1869);
+emit_16(1934);
+emit_16(1870);
+emit_16(1934);
+emit_16(1869);
+emit_16(1934);
+emit_16(1870);
+emit_16(1935);
+emit_16(1871);
+emit_16(1935);
+emit_16(1870);
+emit_16(1935);
+emit_16(1871);
+emit_16(1936);
+emit_16(1872);
+emit_16(1936);
+emit_16(1871);
+emit_16(1936);
+emit_16(1872);
+emit_16(1937);
+emit_16(1873);
+emit_16(1937);
+emit_16(1872);
+emit_16(1937);
+emit_16(1873);
+emit_16(1938);
+emit_16(1874);
+emit_16(1938);
+emit_16(1873);
+emit_16(1938);
+emit_16(1874);
+emit_16(1939);
+emit_16(1875);
+emit_16(1939);
+emit_16(1874);
+emit_16(1939);
+emit_16(1875);
+emit_16(1940);
+emit_16(1876);
+emit_16(1940);
+emit_16(1875);
+emit_16(1940);
+emit_16(1876);
+emit_16(1941);
+emit_16(1877);
+emit_16(1941);
+emit_16(1876);
+emit_16(1941);
+emit_16(1877);
+emit_16(1942);
+emit_16(1878);
+emit_16(1942);
+emit_16(1877);
+emit_16(1942);
+emit_16(1878);
+emit_16(1943);
+emit_16(1879);
+emit_16(1943);
+emit_16(1878);
+emit_16(1943);
+emit_16(1879);
+emit_16(1944);
+emit_16(1880);
+emit_16(1944);
+emit_16(1879);
+emit_16(1944);
+emit_16(1880);
+emit_16(1945);
+emit_16(1881);
+emit_16(1945);
+emit_16(1880);
+emit_16(1945);
+emit_16(1881);
+emit_16(1946);
+emit_16(1882);
+emit_16(1946);
+emit_16(1881);
+emit_16(1946);
+emit_16(1882);
+emit_16(1947);
+emit_16(1883);
+emit_16(1947);
+emit_16(1882);
+emit_16(1947);
+emit_16(1883);
+emit_16(1948);
+emit_16(1884);
+emit_16(1948);
+emit_16(1883);
+emit_16(1948);
+emit_16(1884);
+emit_16(1949);
+emit_16(1885);
+emit_16(1949);
+emit_16(1884);
+emit_16(1949);
+emit_16(1885);
+emit_16(1950);
+emit_16(1886);
+emit_16(1950);
+emit_16(1885);
+emit_16(1950);
+emit_16(1886);
+emit_16(1951);
+emit_16(1887);
+emit_16(1951);
+emit_16(1886);
+emit_16(1951);
+emit_16(1887);
+emit_16(1952);
+emit_16(1888);
+emit_16(1952);
+emit_16(1887);
+emit_16(1952);
+emit_16(1888);
+emit_16(1953);
+emit_16(1889);
+emit_16(1953);
+emit_16(1888);
+emit_16(1953);
+emit_16(1889);
+emit_16(1954);
+emit_16(1890);
+emit_16(1954);
+emit_16(1889);
+emit_16(1954);
+emit_16(1890);
+emit_16(1955);
+emit_16(1891);
+emit_16(1955);
+emit_16(1890);
+emit_16(1955);
+emit_16(1891);
+emit_16(1956);
+emit_16(1892);
+emit_16(1956);
+emit_16(1891);
+emit_16(1956);
+emit_16(1892);
+emit_16(1957);
+emit_16(1893);
+emit_16(1957);
+emit_16(1892);
+emit_16(1957);
+emit_16(1893);
+emit_16(1958);
+emit_16(1894);
+emit_16(1958);
+emit_16(1893);
+emit_16(1958);
+emit_16(1894);
+emit_16(1959);
+emit_16(1895);
+emit_16(1959);
+emit_16(1894);
+emit_16(1959);
+emit_16(1895);
+emit_16(1960);
+emit_16(1896);
+emit_16(1960);
+emit_16(1895);
+emit_16(1960);
+emit_16(1896);
+emit_16(1961);
+emit_16(1897);
+emit_16(1961);
+emit_16(1896);
+emit_16(1961);
+emit_16(1897);
+emit_16(1962);
+emit_16(1898);
+emit_16(1962);
+emit_16(1897);
+emit_16(1962);
+emit_16(1898);
+emit_16(1963);
+emit_16(1899);
+emit_16(1963);
+emit_16(1898);
+emit_16(1963);
+emit_16(1899);
+emit_16(1964);
+emit_16(1900);
+emit_16(1964);
+emit_16(1899);
+emit_16(1964);
+emit_16(1900);
+emit_16(1965);
+emit_16(1901);
+emit_16(1965);
+emit_16(1900);
+emit_16(1965);
+emit_16(1901);
+emit_16(1966);
+emit_16(1902);
+emit_16(1966);
+emit_16(1901);
+emit_16(1966);
+emit_16(1902);
+emit_16(1967);
+emit_16(1903);
+emit_16(1967);
+emit_16(1902);
+emit_16(1967);
+emit_16(1903);
+emit_16(1968);
+emit_16(1904);
+emit_16(1968);
+emit_16(1903);
+emit_16(1968);
+emit_16(1904);
+emit_16(1969);
+emit_16(1905);
+emit_16(1969);
+emit_16(1904);
+emit_16(1969);
+emit_16(1905);
+emit_16(1970);
+emit_16(1906);
+emit_16(1970);
+emit_16(1905);
+emit_16(1970);
+emit_16(1906);
+emit_16(1971);
+emit_16(1907);
+emit_16(1971);
+emit_16(1906);
+emit_16(1971);
+emit_16(1907);
+emit_16(1972);
+emit_16(1908);
+emit_16(1972);
+emit_16(1907);
+emit_16(1972);
+emit_16(1908);
+emit_16(1973);
+emit_16(1909);
+emit_16(1973);
+emit_16(1908);
+emit_16(1973);
+emit_16(1909);
+emit_16(1974);
+emit_16(1910);
+emit_16(1974);
+emit_16(1909);
+emit_16(1974);
+emit_16(1910);
+emit_16(1975);
+emit_16(1911);
+emit_16(1975);
+emit_16(1910);
+emit_16(1975);
+emit_16(1911);
+emit_16(1976);
+emit_16(1912);
+emit_16(1976);
+emit_16(1911);
+emit_16(1976);
+emit_16(1912);
+emit_16(1977);
+emit_16(1913);
+emit_16(1977);
+emit_16(1912);
+emit_16(1977);
+emit_16(1913);
+emit_16(1978);
+emit_16(1914);
+emit_16(1978);
+emit_16(1913);
+emit_16(1978);
+emit_16(1914);
+emit_16(1979);
+emit_16(1915);
+emit_16(1979);
+emit_16(1914);
+emit_16(1979);
+emit_16(1915);
+emit_16(1980);
+emit_16(1916);
+emit_16(1980);
+emit_16(1915);
+emit_16(1980);
+emit_16(1916);
+emit_16(1981);
+emit_16(1917);
+emit_16(1981);
+emit_16(1916);
+emit_16(1981);
+emit_16(1917);
+emit_16(1982);
+emit_16(1918);
+emit_16(1982);
+emit_16(1917);
+emit_16(1982);
+emit_16(1918);
+emit_16(1983);
+emit_16(1919);
+emit_16(1983);
+emit_16(1918);
+emit_16(1984);
+emit_16(1920);
+emit_16(1985);
+emit_16(1921);
+emit_16(1985);
+emit_16(1920);
+emit_16(1985);
+emit_16(1921);
+emit_16(1986);
+emit_16(1922);
+emit_16(1986);
+emit_16(1921);
+emit_16(1986);
+emit_16(1922);
+emit_16(1987);
+emit_16(1923);
+emit_16(1987);
+emit_16(1922);
+emit_16(1987);
+emit_16(1923);
+emit_16(1988);
+emit_16(1924);
+emit_16(1988);
+emit_16(1923);
+emit_16(1988);
+emit_16(1924);
+emit_16(1989);
+emit_16(1925);
+emit_16(1989);
+emit_16(1924);
+emit_16(1989);
+emit_16(1925);
+emit_16(1990);
+emit_16(1926);
+emit_16(1990);
+emit_16(1925);
+emit_16(1990);
+emit_16(1926);
+emit_16(1991);
+emit_16(1927);
+emit_16(1991);
+emit_16(1926);
+emit_16(1991);
+emit_16(1927);
+emit_16(1992);
+emit_16(1928);
+emit_16(1992);
+emit_16(1927);
+emit_16(1992);
+emit_16(1928);
+emit_16(1993);
+emit_16(1929);
+emit_16(1993);
+emit_16(1928);
+emit_16(1993);
+emit_16(1929);
+emit_16(1994);
+emit_16(1930);
+emit_16(1994);
+emit_16(1929);
+emit_16(1994);
+emit_16(1930);
+emit_16(1995);
+emit_16(1931);
+emit_16(1995);
+emit_16(1930);
+emit_16(1995);
+emit_16(1931);
+emit_16(1996);
+emit_16(1932);
+emit_16(1996);
+emit_16(1931);
+emit_16(1996);
+emit_16(1932);
+emit_16(1997);
+emit_16(1933);
+emit_16(1997);
+emit_16(1932);
+emit_16(1997);
+emit_16(1933);
+emit_16(1998);
+emit_16(1934);
+emit_16(1998);
+emit_16(1933);
+emit_16(1998);
+emit_16(1934);
+emit_16(1999);
+emit_16(1935);
+emit_16(1999);
+emit_16(1934);
+emit_16(1999);
+emit_16(1935);
+emit_16(2000);
+emit_16(1936);
+emit_16(2000);
+emit_16(1935);
+emit_16(2000);
+emit_16(1936);
+emit_16(2001);
+emit_16(1937);
+emit_16(2001);
+emit_16(1936);
+emit_16(2001);
+emit_16(1937);
+emit_16(2002);
+emit_16(1938);
+emit_16(2002);
+emit_16(1937);
+emit_16(2002);
+emit_16(1938);
+emit_16(2003);
+emit_16(1939);
+emit_16(2003);
+emit_16(1938);
+emit_16(2003);
+emit_16(1939);
+emit_16(2004);
+emit_16(1940);
+emit_16(2004);
+emit_16(1939);
+emit_16(2004);
+emit_16(1940);
+emit_16(2005);
+emit_16(1941);
+emit_16(2005);
+emit_16(1940);
+emit_16(2005);
+emit_16(1941);
+emit_16(2006);
+emit_16(1942);
+emit_16(2006);
+emit_16(1941);
+emit_16(2006);
+emit_16(1942);
+emit_16(2007);
+emit_16(1943);
+emit_16(2007);
+emit_16(1942);
+emit_16(2007);
+emit_16(1943);
+emit_16(2008);
+emit_16(1944);
+emit_16(2008);
+emit_16(1943);
+emit_16(2008);
+emit_16(1944);
+emit_16(2009);
+emit_16(1945);
+emit_16(2009);
+emit_16(1944);
+emit_16(2009);
+emit_16(1945);
+emit_16(2010);
+emit_16(1946);
+emit_16(2010);
+emit_16(1945);
+emit_16(2010);
+emit_16(1946);
+emit_16(2011);
+emit_16(1947);
+emit_16(2011);
+emit_16(1946);
+emit_16(2011);
+emit_16(1947);
+emit_16(2012);
+emit_16(1948);
+emit_16(2012);
+emit_16(1947);
+emit_16(2012);
+emit_16(1948);
+emit_16(2013);
+emit_16(1949);
+emit_16(2013);
+emit_16(1948);
+emit_16(2013);
+emit_16(1949);
+emit_16(2014);
+emit_16(1950);
+emit_16(2014);
+emit_16(1949);
+emit_16(2014);
+emit_16(1950);
+emit_16(2015);
+emit_16(1951);
+emit_16(2015);
+emit_16(1950);
+emit_16(2015);
+emit_16(1951);
+emit_16(2016);
+emit_16(1952);
+emit_16(2016);
+emit_16(1951);
+emit_16(2016);
+emit_16(1952);
+emit_16(2017);
+emit_16(1953);
+emit_16(2017);
+emit_16(1952);
+emit_16(2017);
+emit_16(1953);
+emit_16(2018);
+emit_16(1954);
+emit_16(2018);
+emit_16(1953);
+emit_16(2018);
+emit_16(1954);
+emit_16(2019);
+emit_16(1955);
+emit_16(2019);
+emit_16(1954);
+emit_16(2019);
+emit_16(1955);
+emit_16(2020);
+emit_16(1956);
+emit_16(2020);
+emit_16(1955);
+emit_16(2020);
+emit_16(1956);
+emit_16(2021);
+emit_16(1957);
+emit_16(2021);
+emit_16(1956);
+emit_16(2021);
+emit_16(1957);
+emit_16(2022);
+emit_16(1958);
+emit_16(2022);
+emit_16(1957);
+emit_16(2022);
+emit_16(1958);
+emit_16(2023);
+emit_16(1959);
+emit_16(2023);
+emit_16(1958);
+emit_16(2023);
+emit_16(1959);
+emit_16(2024);
+emit_16(1960);
+emit_16(2024);
+emit_16(1959);
+emit_16(2024);
+emit_16(1960);
+emit_16(2025);
+emit_16(1961);
+emit_16(2025);
+emit_16(1960);
+emit_16(2025);
+emit_16(1961);
+emit_16(2026);
+emit_16(1962);
+emit_16(2026);
+emit_16(1961);
+emit_16(2026);
+emit_16(1962);
+emit_16(2027);
+emit_16(1963);
+emit_16(2027);
+emit_16(1962);
+emit_16(2027);
+emit_16(1963);
+emit_16(2028);
+emit_16(1964);
+emit_16(2028);
+emit_16(1963);
+emit_16(2028);
+emit_16(1964);
+emit_16(2029);
+emit_16(1965);
+emit_16(2029);
+emit_16(1964);
+emit_16(2029);
+emit_16(1965);
+emit_16(2030);
+emit_16(1966);
+emit_16(2030);
+emit_16(1965);
+emit_16(2030);
+emit_16(1966);
+emit_16(2031);
+emit_16(1967);
+emit_16(2031);
+emit_16(1966);
+emit_16(2031);
+emit_16(1967);
+emit_16(2032);
+emit_16(1968);
+emit_16(2032);
+emit_16(1967);
+emit_16(2032);
+emit_16(1968);
+emit_16(2033);
+emit_16(1969);
+emit_16(2033);
+emit_16(1968);
+emit_16(2033);
+emit_16(1969);
+emit_16(2034);
+emit_16(1970);
+emit_16(2034);
+emit_16(1969);
+emit_16(2034);
+emit_16(1970);
+emit_16(2035);
+emit_16(1971);
+emit_16(2035);
+emit_16(1970);
+emit_16(2035);
+emit_16(1971);
+emit_16(2036);
+emit_16(1972);
+emit_16(2036);
+emit_16(1971);
+emit_16(2036);
+emit_16(1972);
+emit_16(2037);
+emit_16(1973);
+emit_16(2037);
+emit_16(1972);
+emit_16(2037);
+emit_16(1973);
+emit_16(2038);
+emit_16(1974);
+emit_16(2038);
+emit_16(1973);
+emit_16(2038);
+emit_16(1974);
+emit_16(2039);
+emit_16(1975);
+emit_16(2039);
+emit_16(1974);
+emit_16(2039);
+emit_16(1975);
+emit_16(2040);
+emit_16(1976);
+emit_16(2040);
+emit_16(1975);
+emit_16(2040);
+emit_16(1976);
+emit_16(2041);
+emit_16(1977);
+emit_16(2041);
+emit_16(1976);
+emit_16(2041);
+emit_16(1977);
+emit_16(2042);
+emit_16(1978);
+emit_16(2042);
+emit_16(1977);
+emit_16(2042);
+emit_16(1978);
+emit_16(2043);
+emit_16(1979);
+emit_16(2043);
+emit_16(1978);
+emit_16(2043);
+emit_16(1979);
+emit_16(2044);
+emit_16(1980);
+emit_16(2044);
+emit_16(1979);
+emit_16(2044);
+emit_16(1980);
+emit_16(2045);
+emit_16(1981);
+emit_16(2045);
+emit_16(1980);
+emit_16(2045);
+emit_16(1981);
+emit_16(2046);
+emit_16(1982);
+emit_16(2046);
+emit_16(1981);
+emit_16(2046);
+emit_16(1982);
+emit_16(2047);
+emit_16(1983);
+emit_16(2047);
+emit_16(1982);
+emit_16(2048);
+emit_16(1984);
+emit_16(2049);
+emit_16(1985);
+emit_16(2049);
+emit_16(1984);
+emit_16(2049);
+emit_16(1985);
+emit_16(2050);
+emit_16(1986);
+emit_16(2050);
+emit_16(1985);
+emit_16(2050);
+emit_16(1986);
+emit_16(2051);
+emit_16(1987);
+emit_16(2051);
+emit_16(1986);
+emit_16(2051);
+emit_16(1987);
+emit_16(2052);
+emit_16(1988);
+emit_16(2052);
+emit_16(1987);
+emit_16(2052);
+emit_16(1988);
+emit_16(2053);
+emit_16(1989);
+emit_16(2053);
+emit_16(1988);
+emit_16(2053);
+emit_16(1989);
+emit_16(2054);
+emit_16(1990);
+emit_16(2054);
+emit_16(1989);
+emit_16(2054);
+emit_16(1990);
+emit_16(2055);
+emit_16(1991);
+emit_16(2055);
+emit_16(1990);
+emit_16(2055);
+emit_16(1991);
+emit_16(2056);
+emit_16(1992);
+emit_16(2056);
+emit_16(1991);
+emit_16(2056);
+emit_16(1992);
+emit_16(2057);
+emit_16(1993);
+emit_16(2057);
+emit_16(1992);
+emit_16(2057);
+emit_16(1993);
+emit_16(2058);
+emit_16(1994);
+emit_16(2058);
+emit_16(1993);
+emit_16(2058);
+emit_16(1994);
+emit_16(2059);
+emit_16(1995);
+emit_16(2059);
+emit_16(1994);
+emit_16(2059);
+emit_16(1995);
+emit_16(2060);
+emit_16(1996);
+emit_16(2060);
+emit_16(1995);
+emit_16(2060);
+emit_16(1996);
+emit_16(2061);
+emit_16(1997);
+emit_16(2061);
+emit_16(1996);
+emit_16(2061);
+emit_16(1997);
+emit_16(2062);
+emit_16(1998);
+emit_16(2062);
+emit_16(1997);
+emit_16(2062);
+emit_16(1998);
+emit_16(2063);
+emit_16(1999);
+emit_16(2063);
+emit_16(1998);
+emit_16(2063);
+emit_16(1999);
+emit_16(2064);
+emit_16(2000);
+emit_16(2064);
+emit_16(1999);
+emit_16(2064);
+emit_16(2000);
+emit_16(2065);
+emit_16(2001);
+emit_16(2065);
+emit_16(2000);
+emit_16(2065);
+emit_16(2001);
+emit_16(2066);
+emit_16(2002);
+emit_16(2066);
+emit_16(2001);
+emit_16(2066);
+emit_16(2002);
+emit_16(2067);
+emit_16(2003);
+emit_16(2067);
+emit_16(2002);
+emit_16(2067);
+emit_16(2003);
+emit_16(2068);
+emit_16(2004);
+emit_16(2068);
+emit_16(2003);
+emit_16(2068);
+emit_16(2004);
+emit_16(2069);
+emit_16(2005);
+emit_16(2069);
+emit_16(2004);
+emit_16(2069);
+emit_16(2005);
+emit_16(2070);
+emit_16(2006);
+emit_16(2070);
+emit_16(2005);
+emit_16(2070);
+emit_16(2006);
+emit_16(2071);
+emit_16(2007);
+emit_16(2071);
+emit_16(2006);
+emit_16(2071);
+emit_16(2007);
+emit_16(2072);
+emit_16(2008);
+emit_16(2072);
+emit_16(2007);
+emit_16(2072);
+emit_16(2008);
+emit_16(2073);
+emit_16(2009);
+emit_16(2073);
+emit_16(2008);
+emit_16(2073);
+emit_16(2009);
+emit_16(2074);
+emit_16(2010);
+emit_16(2074);
+emit_16(2009);
+emit_16(2074);
+emit_16(2010);
+emit_16(2075);
+emit_16(2011);
+emit_16(2075);
+emit_16(2010);
+emit_16(2075);
+emit_16(2011);
+emit_16(2076);
+emit_16(2012);
+emit_16(2076);
+emit_16(2011);
+emit_16(2076);
+emit_16(2012);
+emit_16(2077);
+emit_16(2013);
+emit_16(2077);
+emit_16(2012);
+emit_16(2077);
+emit_16(2013);
+emit_16(2078);
+emit_16(2014);
+emit_16(2078);
+emit_16(2013);
+emit_16(2078);
+emit_16(2014);
+emit_16(2079);
+emit_16(2015);
+emit_16(2079);
+emit_16(2014);
+emit_16(2079);
+emit_16(2015);
+emit_16(2080);
+emit_16(2016);
+emit_16(2080);
+emit_16(2015);
+emit_16(2080);
+emit_16(2016);
+emit_16(2081);
+emit_16(2017);
+emit_16(2081);
+emit_16(2016);
+emit_16(2081);
+emit_16(2017);
+emit_16(2082);
+emit_16(2018);
+emit_16(2082);
+emit_16(2017);
+emit_16(2082);
+emit_16(2018);
+emit_16(2083);
+emit_16(2019);
+emit_16(2083);
+emit_16(2018);
+emit_16(2083);
+emit_16(2019);
+emit_16(2084);
+emit_16(2020);
+emit_16(2084);
+emit_16(2019);
+emit_16(2084);
+emit_16(2020);
+emit_16(2085);
+emit_16(2021);
+emit_16(2085);
+emit_16(2020);
+emit_16(2085);
+emit_16(2021);
+emit_16(2086);
+emit_16(2022);
+emit_16(2086);
+emit_16(2021);
+emit_16(2086);
+emit_16(2022);
+emit_16(2087);
+emit_16(2023);
+emit_16(2087);
+emit_16(2022);
+emit_16(2087);
+emit_16(2023);
+emit_16(2088);
+emit_16(2024);
+emit_16(2088);
+emit_16(2023);
+emit_16(2088);
+emit_16(2024);
+emit_16(2089);
+emit_16(2025);
+emit_16(2089);
+emit_16(2024);
+emit_16(2089);
+emit_16(2025);
+emit_16(2090);
+emit_16(2026);
+emit_16(2090);
+emit_16(2025);
+emit_16(2090);
+emit_16(2026);
+emit_16(2091);
+emit_16(2027);
+emit_16(2091);
+emit_16(2026);
+emit_16(2091);
+emit_16(2027);
+emit_16(2092);
+emit_16(2028);
+emit_16(2092);
+emit_16(2027);
+emit_16(2092);
+emit_16(2028);
+emit_16(2093);
+emit_16(2029);
+emit_16(2093);
+emit_16(2028);
+emit_16(2093);
+emit_16(2029);
+emit_16(2094);
+emit_16(2030);
+emit_16(2094);
+emit_16(2029);
+emit_16(2094);
+emit_16(2030);
+emit_16(2095);
+emit_16(2031);
+emit_16(2095);
+emit_16(2030);
+emit_16(2095);
+emit_16(2031);
+emit_16(2096);
+emit_16(2032);
+emit_16(2096);
+emit_16(2031);
+emit_16(2096);
+emit_16(2032);
+emit_16(2097);
+emit_16(2033);
+emit_16(2097);
+emit_16(2032);
+emit_16(2097);
+emit_16(2033);
+emit_16(2098);
+emit_16(2034);
+emit_16(2098);
+emit_16(2033);
+emit_16(2098);
+emit_16(2034);
+emit_16(2099);
+emit_16(2035);
+emit_16(2099);
+emit_16(2034);
+emit_16(2099);
+emit_16(2035);
+emit_16(2100);
+emit_16(2036);
+emit_16(2100);
+emit_16(2035);
+emit_16(2100);
+emit_16(2036);
+emit_16(2101);
+emit_16(2037);
+emit_16(2101);
+emit_16(2036);
+emit_16(2101);
+emit_16(2037);
+emit_16(2102);
+emit_16(2038);
+emit_16(2102);
+emit_16(2037);
+emit_16(2102);
+emit_16(2038);
+emit_16(2103);
+emit_16(2039);
+emit_16(2103);
+emit_16(2038);
+emit_16(2103);
+emit_16(2039);
+emit_16(2104);
+emit_16(2040);
+emit_16(2104);
+emit_16(2039);
+emit_16(2104);
+emit_16(2040);
+emit_16(2105);
+emit_16(2041);
+emit_16(2105);
+emit_16(2040);
+emit_16(2105);
+emit_16(2041);
+emit_16(2106);
+emit_16(2042);
+emit_16(2106);
+emit_16(2041);
+emit_16(2106);
+emit_16(2042);
+emit_16(2107);
+emit_16(2043);
+emit_16(2107);
+emit_16(2042);
+emit_16(2107);
+emit_16(2043);
+emit_16(2108);
+emit_16(2044);
+emit_16(2108);
+emit_16(2043);
+emit_16(2108);
+emit_16(2044);
+emit_16(2109);
+emit_16(2045);
+emit_16(2109);
+emit_16(2044);
+emit_16(2109);
+emit_16(2045);
+emit_16(2110);
+emit_16(2046);
+emit_16(2110);
+emit_16(2045);
+emit_16(2110);
+emit_16(2046);
+emit_16(2111);
+emit_16(2047);
+emit_16(2111);
+emit_16(2046);
+emit_start(Landscape05Idx)
+emit_16(0);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(2);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(4);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(6);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(8);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(10);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(12);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(14);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(16);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(18);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(20);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(22);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(24);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(26);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(28);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(30);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(32);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(34);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(36);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(38);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(40);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(42);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(44);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(46);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(48);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(50);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(52);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(54);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(56);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(58);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(60);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(62);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(64);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(66);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(68);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(70);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(72);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(74);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(76);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(78);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(80);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(82);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(84);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(86);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(88);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(90);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(92);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(94);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(96);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(98);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(100);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(102);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(104);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(106);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(108);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(110);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(112);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(114);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(116);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(118);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(120);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(122);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(124);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(126);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(128);
+emit_16(129);
+emit_16(128);
+emit_16(127);
+emit_16(128);
+emit_16(129);
+emit_16(130);
+emit_16(131);
+emit_16(130);
+emit_16(129);
+emit_16(132);
+emit_16(0);
+emit_16(133);
+emit_16(2);
+emit_16(133);
+emit_16(0);
+emit_16(133);
+emit_16(2);
+emit_16(134);
+emit_16(4);
+emit_16(134);
+emit_16(2);
+emit_16(134);
+emit_16(4);
+emit_16(135);
+emit_16(6);
+emit_16(135);
+emit_16(4);
+emit_16(135);
+emit_16(6);
+emit_16(136);
+emit_16(8);
+emit_16(136);
+emit_16(6);
+emit_16(136);
+emit_16(8);
+emit_16(137);
+emit_16(10);
+emit_16(137);
+emit_16(8);
+emit_16(137);
+emit_16(10);
+emit_16(138);
+emit_16(12);
+emit_16(138);
+emit_16(10);
+emit_16(138);
+emit_16(12);
+emit_16(139);
+emit_16(14);
+emit_16(139);
+emit_16(12);
+emit_16(139);
+emit_16(14);
+emit_16(140);
+emit_16(16);
+emit_16(140);
+emit_16(14);
+emit_16(140);
+emit_16(16);
+emit_16(141);
+emit_16(18);
+emit_16(141);
+emit_16(16);
+emit_16(141);
+emit_16(18);
+emit_16(142);
+emit_16(20);
+emit_16(142);
+emit_16(18);
+emit_16(142);
+emit_16(20);
+emit_16(143);
+emit_16(22);
+emit_16(143);
+emit_16(20);
+emit_16(143);
+emit_16(22);
+emit_16(144);
+emit_16(24);
+emit_16(144);
+emit_16(22);
+emit_16(144);
+emit_16(24);
+emit_16(145);
+emit_16(26);
+emit_16(145);
+emit_16(24);
+emit_16(145);
+emit_16(26);
+emit_16(146);
+emit_16(28);
+emit_16(146);
+emit_16(26);
+emit_16(146);
+emit_16(28);
+emit_16(147);
+emit_16(30);
+emit_16(147);
+emit_16(28);
+emit_16(147);
+emit_16(30);
+emit_16(148);
+emit_16(32);
+emit_16(148);
+emit_16(30);
+emit_16(148);
+emit_16(32);
+emit_16(149);
+emit_16(34);
+emit_16(149);
+emit_16(32);
+emit_16(149);
+emit_16(34);
+emit_16(150);
+emit_16(36);
+emit_16(150);
+emit_16(34);
+emit_16(150);
+emit_16(36);
+emit_16(151);
+emit_16(38);
+emit_16(151);
+emit_16(36);
+emit_16(151);
+emit_16(38);
+emit_16(152);
+emit_16(40);
+emit_16(152);
+emit_16(38);
+emit_16(152);
+emit_16(40);
+emit_16(153);
+emit_16(42);
+emit_16(153);
+emit_16(40);
+emit_16(153);
+emit_16(42);
+emit_16(154);
+emit_16(44);
+emit_16(154);
+emit_16(42);
+emit_16(154);
+emit_16(44);
+emit_16(155);
+emit_16(46);
+emit_16(155);
+emit_16(44);
+emit_16(155);
+emit_16(46);
+emit_16(156);
+emit_16(48);
+emit_16(156);
+emit_16(46);
+emit_16(156);
+emit_16(48);
+emit_16(157);
+emit_16(50);
+emit_16(157);
+emit_16(48);
+emit_16(157);
+emit_16(50);
+emit_16(158);
+emit_16(52);
+emit_16(158);
+emit_16(50);
+emit_16(158);
+emit_16(52);
+emit_16(159);
+emit_16(54);
+emit_16(159);
+emit_16(52);
+emit_16(159);
+emit_16(54);
+emit_16(160);
+emit_16(56);
+emit_16(160);
+emit_16(54);
+emit_16(160);
+emit_16(56);
+emit_16(161);
+emit_16(58);
+emit_16(161);
+emit_16(56);
+emit_16(161);
+emit_16(58);
+emit_16(162);
+emit_16(60);
+emit_16(162);
+emit_16(58);
+emit_16(162);
+emit_16(60);
+emit_16(163);
+emit_16(62);
+emit_16(163);
+emit_16(60);
+emit_16(163);
+emit_16(62);
+emit_16(164);
+emit_16(64);
+emit_16(164);
+emit_16(62);
+emit_16(164);
+emit_16(64);
+emit_16(165);
+emit_16(66);
+emit_16(165);
+emit_16(64);
+emit_16(165);
+emit_16(66);
+emit_16(166);
+emit_16(68);
+emit_16(166);
+emit_16(66);
+emit_16(166);
+emit_16(68);
+emit_16(167);
+emit_16(70);
+emit_16(167);
+emit_16(68);
+emit_16(167);
+emit_16(70);
+emit_16(168);
+emit_16(72);
+emit_16(168);
+emit_16(70);
+emit_16(168);
+emit_16(72);
+emit_16(169);
+emit_16(74);
+emit_16(169);
+emit_16(72);
+emit_16(169);
+emit_16(74);
+emit_16(170);
+emit_16(76);
+emit_16(170);
+emit_16(74);
+emit_16(170);
+emit_16(76);
+emit_16(171);
+emit_16(78);
+emit_16(171);
+emit_16(76);
+emit_16(171);
+emit_16(78);
+emit_16(172);
+emit_16(80);
+emit_16(172);
+emit_16(78);
+emit_16(172);
+emit_16(80);
+emit_16(173);
+emit_16(82);
+emit_16(173);
+emit_16(80);
+emit_16(173);
+emit_16(82);
+emit_16(174);
+emit_16(84);
+emit_16(174);
+emit_16(82);
+emit_16(174);
+emit_16(84);
+emit_16(175);
+emit_16(86);
+emit_16(175);
+emit_16(84);
+emit_16(175);
+emit_16(86);
+emit_16(176);
+emit_16(88);
+emit_16(176);
+emit_16(86);
+emit_16(176);
+emit_16(88);
+emit_16(177);
+emit_16(90);
+emit_16(177);
+emit_16(88);
+emit_16(177);
+emit_16(90);
+emit_16(178);
+emit_16(92);
+emit_16(178);
+emit_16(90);
+emit_16(178);
+emit_16(92);
+emit_16(179);
+emit_16(94);
+emit_16(179);
+emit_16(92);
+emit_16(179);
+emit_16(94);
+emit_16(180);
+emit_16(96);
+emit_16(180);
+emit_16(94);
+emit_16(180);
+emit_16(96);
+emit_16(181);
+emit_16(98);
+emit_16(181);
+emit_16(96);
+emit_16(181);
+emit_16(98);
+emit_16(182);
+emit_16(100);
+emit_16(182);
+emit_16(98);
+emit_16(182);
+emit_16(100);
+emit_16(183);
+emit_16(102);
+emit_16(183);
+emit_16(100);
+emit_16(183);
+emit_16(102);
+emit_16(184);
+emit_16(104);
+emit_16(184);
+emit_16(102);
+emit_16(184);
+emit_16(104);
+emit_16(185);
+emit_16(106);
+emit_16(185);
+emit_16(104);
+emit_16(185);
+emit_16(106);
+emit_16(186);
+emit_16(108);
+emit_16(186);
+emit_16(106);
+emit_16(186);
+emit_16(108);
+emit_16(187);
+emit_16(110);
+emit_16(187);
+emit_16(108);
+emit_16(187);
+emit_16(110);
+emit_16(188);
+emit_16(112);
+emit_16(188);
+emit_16(110);
+emit_16(188);
+emit_16(112);
+emit_16(189);
+emit_16(114);
+emit_16(189);
+emit_16(112);
+emit_16(189);
+emit_16(114);
+emit_16(190);
+emit_16(116);
+emit_16(190);
+emit_16(114);
+emit_16(190);
+emit_16(116);
+emit_16(191);
+emit_16(118);
+emit_16(191);
+emit_16(116);
+emit_16(191);
+emit_16(118);
+emit_16(192);
+emit_16(120);
+emit_16(192);
+emit_16(118);
+emit_16(192);
+emit_16(120);
+emit_16(193);
+emit_16(122);
+emit_16(193);
+emit_16(120);
+emit_16(193);
+emit_16(122);
+emit_16(194);
+emit_16(124);
+emit_16(194);
+emit_16(122);
+emit_16(194);
+emit_16(124);
+emit_16(195);
+emit_16(126);
+emit_16(195);
+emit_16(124);
+emit_16(195);
+emit_16(126);
+emit_16(196);
+emit_16(128);
+emit_16(196);
+emit_16(126);
+emit_16(196);
+emit_16(128);
+emit_16(197);
+emit_16(130);
+emit_16(197);
+emit_16(128);
+emit_16(198);
+emit_16(132);
+emit_16(199);
+emit_16(133);
+emit_16(199);
+emit_16(132);
+emit_16(199);
+emit_16(133);
+emit_16(200);
+emit_16(134);
+emit_16(200);
+emit_16(133);
+emit_16(200);
+emit_16(134);
+emit_16(201);
+emit_16(135);
+emit_16(201);
+emit_16(134);
+emit_16(201);
+emit_16(135);
+emit_16(202);
+emit_16(136);
+emit_16(202);
+emit_16(135);
+emit_16(202);
+emit_16(136);
+emit_16(203);
+emit_16(137);
+emit_16(203);
+emit_16(136);
+emit_16(203);
+emit_16(137);
+emit_16(204);
+emit_16(138);
+emit_16(204);
+emit_16(137);
+emit_16(204);
+emit_16(138);
+emit_16(205);
+emit_16(139);
+emit_16(205);
+emit_16(138);
+emit_16(205);
+emit_16(139);
+emit_16(206);
+emit_16(140);
+emit_16(206);
+emit_16(139);
+emit_16(206);
+emit_16(140);
+emit_16(207);
+emit_16(141);
+emit_16(207);
+emit_16(140);
+emit_16(207);
+emit_16(141);
+emit_16(208);
+emit_16(142);
+emit_16(208);
+emit_16(141);
+emit_16(208);
+emit_16(142);
+emit_16(209);
+emit_16(143);
+emit_16(209);
+emit_16(142);
+emit_16(209);
+emit_16(143);
+emit_16(210);
+emit_16(144);
+emit_16(210);
+emit_16(143);
+emit_16(210);
+emit_16(144);
+emit_16(211);
+emit_16(145);
+emit_16(211);
+emit_16(144);
+emit_16(211);
+emit_16(145);
+emit_16(212);
+emit_16(146);
+emit_16(212);
+emit_16(145);
+emit_16(212);
+emit_16(146);
+emit_16(213);
+emit_16(147);
+emit_16(213);
+emit_16(146);
+emit_16(213);
+emit_16(147);
+emit_16(214);
+emit_16(148);
+emit_16(214);
+emit_16(147);
+emit_16(214);
+emit_16(148);
+emit_16(215);
+emit_16(149);
+emit_16(215);
+emit_16(148);
+emit_16(215);
+emit_16(149);
+emit_16(216);
+emit_16(150);
+emit_16(216);
+emit_16(149);
+emit_16(216);
+emit_16(150);
+emit_16(217);
+emit_16(151);
+emit_16(217);
+emit_16(150);
+emit_16(217);
+emit_16(151);
+emit_16(218);
+emit_16(152);
+emit_16(218);
+emit_16(151);
+emit_16(218);
+emit_16(152);
+emit_16(219);
+emit_16(153);
+emit_16(219);
+emit_16(152);
+emit_16(219);
+emit_16(153);
+emit_16(220);
+emit_16(154);
+emit_16(220);
+emit_16(153);
+emit_16(220);
+emit_16(154);
+emit_16(221);
+emit_16(155);
+emit_16(221);
+emit_16(154);
+emit_16(221);
+emit_16(155);
+emit_16(222);
+emit_16(156);
+emit_16(222);
+emit_16(155);
+emit_16(222);
+emit_16(156);
+emit_16(223);
+emit_16(157);
+emit_16(223);
+emit_16(156);
+emit_16(223);
+emit_16(157);
+emit_16(224);
+emit_16(158);
+emit_16(224);
+emit_16(157);
+emit_16(224);
+emit_16(158);
+emit_16(225);
+emit_16(159);
+emit_16(225);
+emit_16(158);
+emit_16(225);
+emit_16(159);
+emit_16(226);
+emit_16(160);
+emit_16(226);
+emit_16(159);
+emit_16(226);
+emit_16(160);
+emit_16(227);
+emit_16(161);
+emit_16(227);
+emit_16(160);
+emit_16(227);
+emit_16(161);
+emit_16(228);
+emit_16(162);
+emit_16(228);
+emit_16(161);
+emit_16(228);
+emit_16(162);
+emit_16(229);
+emit_16(163);
+emit_16(229);
+emit_16(162);
+emit_16(229);
+emit_16(163);
+emit_16(230);
+emit_16(164);
+emit_16(230);
+emit_16(163);
+emit_16(230);
+emit_16(164);
+emit_16(231);
+emit_16(165);
+emit_16(231);
+emit_16(164);
+emit_16(231);
+emit_16(165);
+emit_16(232);
+emit_16(166);
+emit_16(232);
+emit_16(165);
+emit_16(232);
+emit_16(166);
+emit_16(233);
+emit_16(167);
+emit_16(233);
+emit_16(166);
+emit_16(233);
+emit_16(167);
+emit_16(234);
+emit_16(168);
+emit_16(234);
+emit_16(167);
+emit_16(234);
+emit_16(168);
+emit_16(235);
+emit_16(169);
+emit_16(235);
+emit_16(168);
+emit_16(235);
+emit_16(169);
+emit_16(236);
+emit_16(170);
+emit_16(236);
+emit_16(169);
+emit_16(236);
+emit_16(170);
+emit_16(237);
+emit_16(171);
+emit_16(237);
+emit_16(170);
+emit_16(237);
+emit_16(171);
+emit_16(238);
+emit_16(172);
+emit_16(238);
+emit_16(171);
+emit_16(238);
+emit_16(172);
+emit_16(239);
+emit_16(173);
+emit_16(239);
+emit_16(172);
+emit_16(239);
+emit_16(173);
+emit_16(240);
+emit_16(174);
+emit_16(240);
+emit_16(173);
+emit_16(240);
+emit_16(174);
+emit_16(241);
+emit_16(175);
+emit_16(241);
+emit_16(174);
+emit_16(241);
+emit_16(175);
+emit_16(242);
+emit_16(176);
+emit_16(242);
+emit_16(175);
+emit_16(242);
+emit_16(176);
+emit_16(243);
+emit_16(177);
+emit_16(243);
+emit_16(176);
+emit_16(243);
+emit_16(177);
+emit_16(244);
+emit_16(178);
+emit_16(244);
+emit_16(177);
+emit_16(244);
+emit_16(178);
+emit_16(245);
+emit_16(179);
+emit_16(245);
+emit_16(178);
+emit_16(245);
+emit_16(179);
+emit_16(246);
+emit_16(180);
+emit_16(246);
+emit_16(179);
+emit_16(246);
+emit_16(180);
+emit_16(247);
+emit_16(181);
+emit_16(247);
+emit_16(180);
+emit_16(247);
+emit_16(181);
+emit_16(248);
+emit_16(182);
+emit_16(248);
+emit_16(181);
+emit_16(248);
+emit_16(182);
+emit_16(249);
+emit_16(183);
+emit_16(249);
+emit_16(182);
+emit_16(249);
+emit_16(183);
+emit_16(250);
+emit_16(184);
+emit_16(250);
+emit_16(183);
+emit_16(250);
+emit_16(184);
+emit_16(251);
+emit_16(185);
+emit_16(251);
+emit_16(184);
+emit_16(251);
+emit_16(185);
+emit_16(252);
+emit_16(186);
+emit_16(252);
+emit_16(185);
+emit_16(252);
+emit_16(186);
+emit_16(253);
+emit_16(187);
+emit_16(253);
+emit_16(186);
+emit_16(253);
+emit_16(187);
+emit_16(254);
+emit_16(188);
+emit_16(254);
+emit_16(187);
+emit_16(254);
+emit_16(188);
+emit_16(255);
+emit_16(189);
+emit_16(255);
+emit_16(188);
+emit_16(255);
+emit_16(189);
+emit_16(256);
+emit_16(190);
+emit_16(256);
+emit_16(189);
+emit_16(256);
+emit_16(190);
+emit_16(257);
+emit_16(191);
+emit_16(257);
+emit_16(190);
+emit_16(257);
+emit_16(191);
+emit_16(258);
+emit_16(192);
+emit_16(258);
+emit_16(191);
+emit_16(258);
+emit_16(192);
+emit_16(259);
+emit_16(193);
+emit_16(259);
+emit_16(192);
+emit_16(259);
+emit_16(193);
+emit_16(260);
+emit_16(194);
+emit_16(260);
+emit_16(193);
+emit_16(260);
+emit_16(194);
+emit_16(261);
+emit_16(195);
+emit_16(261);
+emit_16(194);
+emit_16(261);
+emit_16(195);
+emit_16(262);
+emit_16(196);
+emit_16(262);
+emit_16(195);
+emit_16(262);
+emit_16(196);
+emit_16(263);
+emit_16(197);
+emit_16(263);
+emit_16(196);
+emit_16(264);
+emit_16(198);
+emit_16(265);
+emit_16(199);
+emit_16(265);
+emit_16(198);
+emit_16(265);
+emit_16(199);
+emit_16(266);
+emit_16(200);
+emit_16(266);
+emit_16(199);
+emit_16(266);
+emit_16(200);
+emit_16(267);
+emit_16(201);
+emit_16(267);
+emit_16(200);
+emit_16(267);
+emit_16(201);
+emit_16(268);
+emit_16(202);
+emit_16(268);
+emit_16(201);
+emit_16(268);
+emit_16(202);
+emit_16(269);
+emit_16(203);
+emit_16(269);
+emit_16(202);
+emit_16(269);
+emit_16(203);
+emit_16(270);
+emit_16(204);
+emit_16(270);
+emit_16(203);
+emit_16(270);
+emit_16(204);
+emit_16(271);
+emit_16(205);
+emit_16(271);
+emit_16(204);
+emit_16(271);
+emit_16(205);
+emit_16(272);
+emit_16(206);
+emit_16(272);
+emit_16(205);
+emit_16(272);
+emit_16(206);
+emit_16(273);
+emit_16(207);
+emit_16(273);
+emit_16(206);
+emit_16(273);
+emit_16(207);
+emit_16(274);
+emit_16(208);
+emit_16(274);
+emit_16(207);
+emit_16(274);
+emit_16(208);
+emit_16(275);
+emit_16(209);
+emit_16(275);
+emit_16(208);
+emit_16(275);
+emit_16(209);
+emit_16(276);
+emit_16(210);
+emit_16(276);
+emit_16(209);
+emit_16(276);
+emit_16(210);
+emit_16(277);
+emit_16(211);
+emit_16(277);
+emit_16(210);
+emit_16(277);
+emit_16(211);
+emit_16(278);
+emit_16(212);
+emit_16(278);
+emit_16(211);
+emit_16(278);
+emit_16(212);
+emit_16(279);
+emit_16(213);
+emit_16(279);
+emit_16(212);
+emit_16(279);
+emit_16(213);
+emit_16(280);
+emit_16(214);
+emit_16(280);
+emit_16(213);
+emit_16(280);
+emit_16(214);
+emit_16(281);
+emit_16(215);
+emit_16(281);
+emit_16(214);
+emit_16(281);
+emit_16(215);
+emit_16(282);
+emit_16(216);
+emit_16(282);
+emit_16(215);
+emit_16(282);
+emit_16(216);
+emit_16(283);
+emit_16(217);
+emit_16(283);
+emit_16(216);
+emit_16(283);
+emit_16(217);
+emit_16(284);
+emit_16(218);
+emit_16(284);
+emit_16(217);
+emit_16(284);
+emit_16(218);
+emit_16(285);
+emit_16(219);
+emit_16(285);
+emit_16(218);
+emit_16(285);
+emit_16(219);
+emit_16(286);
+emit_16(220);
+emit_16(286);
+emit_16(219);
+emit_16(286);
+emit_16(220);
+emit_16(287);
+emit_16(221);
+emit_16(287);
+emit_16(220);
+emit_16(287);
+emit_16(221);
+emit_16(288);
+emit_16(222);
+emit_16(288);
+emit_16(221);
+emit_16(288);
+emit_16(222);
+emit_16(289);
+emit_16(223);
+emit_16(289);
+emit_16(222);
+emit_16(289);
+emit_16(223);
+emit_16(290);
+emit_16(224);
+emit_16(290);
+emit_16(223);
+emit_16(290);
+emit_16(224);
+emit_16(291);
+emit_16(225);
+emit_16(291);
+emit_16(224);
+emit_16(291);
+emit_16(225);
+emit_16(292);
+emit_16(226);
+emit_16(292);
+emit_16(225);
+emit_16(292);
+emit_16(226);
+emit_16(293);
+emit_16(227);
+emit_16(293);
+emit_16(226);
+emit_16(293);
+emit_16(227);
+emit_16(294);
+emit_16(228);
+emit_16(294);
+emit_16(227);
+emit_16(294);
+emit_16(228);
+emit_16(295);
+emit_16(229);
+emit_16(295);
+emit_16(228);
+emit_16(295);
+emit_16(229);
+emit_16(296);
+emit_16(230);
+emit_16(296);
+emit_16(229);
+emit_16(296);
+emit_16(230);
+emit_16(297);
+emit_16(231);
+emit_16(297);
+emit_16(230);
+emit_16(297);
+emit_16(231);
+emit_16(298);
+emit_16(232);
+emit_16(298);
+emit_16(231);
+emit_16(298);
+emit_16(232);
+emit_16(299);
+emit_16(233);
+emit_16(299);
+emit_16(232);
+emit_16(299);
+emit_16(233);
+emit_16(300);
+emit_16(234);
+emit_16(300);
+emit_16(233);
+emit_16(300);
+emit_16(234);
+emit_16(301);
+emit_16(235);
+emit_16(301);
+emit_16(234);
+emit_16(301);
+emit_16(235);
+emit_16(302);
+emit_16(236);
+emit_16(302);
+emit_16(235);
+emit_16(302);
+emit_16(236);
+emit_16(303);
+emit_16(237);
+emit_16(303);
+emit_16(236);
+emit_16(303);
+emit_16(237);
+emit_16(304);
+emit_16(238);
+emit_16(304);
+emit_16(237);
+emit_16(304);
+emit_16(238);
+emit_16(305);
+emit_16(239);
+emit_16(305);
+emit_16(238);
+emit_16(305);
+emit_16(239);
+emit_16(306);
+emit_16(240);
+emit_16(306);
+emit_16(239);
+emit_16(306);
+emit_16(240);
+emit_16(307);
+emit_16(241);
+emit_16(307);
+emit_16(240);
+emit_16(307);
+emit_16(241);
+emit_16(308);
+emit_16(242);
+emit_16(308);
+emit_16(241);
+emit_16(308);
+emit_16(242);
+emit_16(309);
+emit_16(243);
+emit_16(309);
+emit_16(242);
+emit_16(309);
+emit_16(243);
+emit_16(310);
+emit_16(244);
+emit_16(310);
+emit_16(243);
+emit_16(310);
+emit_16(244);
+emit_16(311);
+emit_16(245);
+emit_16(311);
+emit_16(244);
+emit_16(311);
+emit_16(245);
+emit_16(312);
+emit_16(246);
+emit_16(312);
+emit_16(245);
+emit_16(312);
+emit_16(246);
+emit_16(313);
+emit_16(247);
+emit_16(313);
+emit_16(246);
+emit_16(313);
+emit_16(247);
+emit_16(314);
+emit_16(248);
+emit_16(314);
+emit_16(247);
+emit_16(314);
+emit_16(248);
+emit_16(315);
+emit_16(249);
+emit_16(315);
+emit_16(248);
+emit_16(315);
+emit_16(249);
+emit_16(316);
+emit_16(250);
+emit_16(316);
+emit_16(249);
+emit_16(316);
+emit_16(250);
+emit_16(317);
+emit_16(251);
+emit_16(317);
+emit_16(250);
+emit_16(317);
+emit_16(251);
+emit_16(318);
+emit_16(252);
+emit_16(318);
+emit_16(251);
+emit_16(318);
+emit_16(252);
+emit_16(319);
+emit_16(253);
+emit_16(319);
+emit_16(252);
+emit_16(319);
+emit_16(253);
+emit_16(320);
+emit_16(254);
+emit_16(320);
+emit_16(253);
+emit_16(320);
+emit_16(254);
+emit_16(321);
+emit_16(255);
+emit_16(321);
+emit_16(254);
+emit_16(321);
+emit_16(255);
+emit_16(322);
+emit_16(256);
+emit_16(322);
+emit_16(255);
+emit_16(322);
+emit_16(256);
+emit_16(323);
+emit_16(257);
+emit_16(323);
+emit_16(256);
+emit_16(323);
+emit_16(257);
+emit_16(324);
+emit_16(258);
+emit_16(324);
+emit_16(257);
+emit_16(324);
+emit_16(258);
+emit_16(325);
+emit_16(259);
+emit_16(325);
+emit_16(258);
+emit_16(325);
+emit_16(259);
+emit_16(326);
+emit_16(260);
+emit_16(326);
+emit_16(259);
+emit_16(326);
+emit_16(260);
+emit_16(327);
+emit_16(261);
+emit_16(327);
+emit_16(260);
+emit_16(327);
+emit_16(261);
+emit_16(328);
+emit_16(262);
+emit_16(328);
+emit_16(261);
+emit_16(328);
+emit_16(262);
+emit_16(329);
+emit_16(263);
+emit_16(329);
+emit_16(262);
+emit_16(330);
+emit_16(264);
+emit_16(331);
+emit_16(265);
+emit_16(331);
+emit_16(264);
+emit_16(331);
+emit_16(265);
+emit_16(332);
+emit_16(266);
+emit_16(332);
+emit_16(265);
+emit_16(332);
+emit_16(266);
+emit_16(333);
+emit_16(267);
+emit_16(333);
+emit_16(266);
+emit_16(333);
+emit_16(267);
+emit_16(334);
+emit_16(268);
+emit_16(334);
+emit_16(267);
+emit_16(334);
+emit_16(268);
+emit_16(335);
+emit_16(269);
+emit_16(335);
+emit_16(268);
+emit_16(335);
+emit_16(269);
+emit_16(336);
+emit_16(270);
+emit_16(336);
+emit_16(269);
+emit_16(336);
+emit_16(270);
+emit_16(337);
+emit_16(271);
+emit_16(337);
+emit_16(270);
+emit_16(337);
+emit_16(271);
+emit_16(338);
+emit_16(272);
+emit_16(338);
+emit_16(271);
+emit_16(338);
+emit_16(272);
+emit_16(339);
+emit_16(273);
+emit_16(339);
+emit_16(272);
+emit_16(339);
+emit_16(273);
+emit_16(340);
+emit_16(274);
+emit_16(340);
+emit_16(273);
+emit_16(340);
+emit_16(274);
+emit_16(341);
+emit_16(275);
+emit_16(341);
+emit_16(274);
+emit_16(341);
+emit_16(275);
+emit_16(342);
+emit_16(276);
+emit_16(342);
+emit_16(275);
+emit_16(342);
+emit_16(276);
+emit_16(343);
+emit_16(277);
+emit_16(343);
+emit_16(276);
+emit_16(343);
+emit_16(277);
+emit_16(344);
+emit_16(278);
+emit_16(344);
+emit_16(277);
+emit_16(344);
+emit_16(278);
+emit_16(345);
+emit_16(279);
+emit_16(345);
+emit_16(278);
+emit_16(345);
+emit_16(279);
+emit_16(346);
+emit_16(280);
+emit_16(346);
+emit_16(279);
+emit_16(346);
+emit_16(280);
+emit_16(347);
+emit_16(281);
+emit_16(347);
+emit_16(280);
+emit_16(347);
+emit_16(281);
+emit_16(348);
+emit_16(282);
+emit_16(348);
+emit_16(281);
+emit_16(348);
+emit_16(282);
+emit_16(349);
+emit_16(283);
+emit_16(349);
+emit_16(282);
+emit_16(349);
+emit_16(283);
+emit_16(350);
+emit_16(284);
+emit_16(350);
+emit_16(283);
+emit_16(350);
+emit_16(284);
+emit_16(351);
+emit_16(285);
+emit_16(351);
+emit_16(284);
+emit_16(351);
+emit_16(285);
+emit_16(352);
+emit_16(286);
+emit_16(352);
+emit_16(285);
+emit_16(352);
+emit_16(286);
+emit_16(353);
+emit_16(287);
+emit_16(353);
+emit_16(286);
+emit_16(353);
+emit_16(287);
+emit_16(354);
+emit_16(288);
+emit_16(354);
+emit_16(287);
+emit_16(354);
+emit_16(288);
+emit_16(355);
+emit_16(289);
+emit_16(355);
+emit_16(288);
+emit_16(355);
+emit_16(289);
+emit_16(356);
+emit_16(290);
+emit_16(356);
+emit_16(289);
+emit_16(356);
+emit_16(290);
+emit_16(357);
+emit_16(291);
+emit_16(357);
+emit_16(290);
+emit_16(357);
+emit_16(291);
+emit_16(358);
+emit_16(292);
+emit_16(358);
+emit_16(291);
+emit_16(358);
+emit_16(292);
+emit_16(359);
+emit_16(293);
+emit_16(359);
+emit_16(292);
+emit_16(359);
+emit_16(293);
+emit_16(360);
+emit_16(294);
+emit_16(360);
+emit_16(293);
+emit_16(360);
+emit_16(294);
+emit_16(361);
+emit_16(295);
+emit_16(361);
+emit_16(294);
+emit_16(361);
+emit_16(295);
+emit_16(362);
+emit_16(296);
+emit_16(362);
+emit_16(295);
+emit_16(362);
+emit_16(296);
+emit_16(363);
+emit_16(297);
+emit_16(363);
+emit_16(296);
+emit_16(363);
+emit_16(297);
+emit_16(364);
+emit_16(298);
+emit_16(364);
+emit_16(297);
+emit_16(364);
+emit_16(298);
+emit_16(365);
+emit_16(299);
+emit_16(365);
+emit_16(298);
+emit_16(365);
+emit_16(299);
+emit_16(366);
+emit_16(300);
+emit_16(366);
+emit_16(299);
+emit_16(366);
+emit_16(300);
+emit_16(367);
+emit_16(301);
+emit_16(367);
+emit_16(300);
+emit_16(367);
+emit_16(301);
+emit_16(368);
+emit_16(302);
+emit_16(368);
+emit_16(301);
+emit_16(368);
+emit_16(302);
+emit_16(369);
+emit_16(303);
+emit_16(369);
+emit_16(302);
+emit_16(369);
+emit_16(303);
+emit_16(370);
+emit_16(304);
+emit_16(370);
+emit_16(303);
+emit_16(370);
+emit_16(304);
+emit_16(371);
+emit_16(305);
+emit_16(371);
+emit_16(304);
+emit_16(371);
+emit_16(305);
+emit_16(372);
+emit_16(306);
+emit_16(372);
+emit_16(305);
+emit_16(372);
+emit_16(306);
+emit_16(373);
+emit_16(307);
+emit_16(373);
+emit_16(306);
+emit_16(373);
+emit_16(307);
+emit_16(374);
+emit_16(308);
+emit_16(374);
+emit_16(307);
+emit_16(374);
+emit_16(308);
+emit_16(375);
+emit_16(309);
+emit_16(375);
+emit_16(308);
+emit_16(375);
+emit_16(309);
+emit_16(376);
+emit_16(310);
+emit_16(376);
+emit_16(309);
+emit_16(376);
+emit_16(310);
+emit_16(377);
+emit_16(311);
+emit_16(377);
+emit_16(310);
+emit_16(377);
+emit_16(311);
+emit_16(378);
+emit_16(312);
+emit_16(378);
+emit_16(311);
+emit_16(378);
+emit_16(312);
+emit_16(379);
+emit_16(313);
+emit_16(379);
+emit_16(312);
+emit_16(379);
+emit_16(313);
+emit_16(380);
+emit_16(314);
+emit_16(380);
+emit_16(313);
+emit_16(380);
+emit_16(314);
+emit_16(381);
+emit_16(315);
+emit_16(381);
+emit_16(314);
+emit_16(381);
+emit_16(315);
+emit_16(382);
+emit_16(316);
+emit_16(382);
+emit_16(315);
+emit_16(382);
+emit_16(316);
+emit_16(383);
+emit_16(317);
+emit_16(383);
+emit_16(316);
+emit_16(383);
+emit_16(317);
+emit_16(384);
+emit_16(318);
+emit_16(384);
+emit_16(317);
+emit_16(384);
+emit_16(318);
+emit_16(385);
+emit_16(319);
+emit_16(385);
+emit_16(318);
+emit_16(385);
+emit_16(319);
+emit_16(386);
+emit_16(320);
+emit_16(386);
+emit_16(319);
+emit_16(386);
+emit_16(320);
+emit_16(387);
+emit_16(321);
+emit_16(387);
+emit_16(320);
+emit_16(387);
+emit_16(321);
+emit_16(388);
+emit_16(322);
+emit_16(388);
+emit_16(321);
+emit_16(388);
+emit_16(322);
+emit_16(389);
+emit_16(323);
+emit_16(389);
+emit_16(322);
+emit_16(389);
+emit_16(323);
+emit_16(390);
+emit_16(324);
+emit_16(390);
+emit_16(323);
+emit_16(390);
+emit_16(324);
+emit_16(391);
+emit_16(325);
+emit_16(391);
+emit_16(324);
+emit_16(391);
+emit_16(325);
+emit_16(392);
+emit_16(326);
+emit_16(392);
+emit_16(325);
+emit_16(392);
+emit_16(326);
+emit_16(393);
+emit_16(327);
+emit_16(393);
+emit_16(326);
+emit_16(393);
+emit_16(327);
+emit_16(394);
+emit_16(328);
+emit_16(394);
+emit_16(327);
+emit_16(394);
+emit_16(328);
+emit_16(395);
+emit_16(329);
+emit_16(395);
+emit_16(328);
+emit_16(396);
+emit_16(330);
+emit_16(397);
+emit_16(331);
+emit_16(397);
+emit_16(330);
+emit_16(397);
+emit_16(331);
+emit_16(398);
+emit_16(332);
+emit_16(398);
+emit_16(331);
+emit_16(398);
+emit_16(332);
+emit_16(399);
+emit_16(333);
+emit_16(399);
+emit_16(332);
+emit_16(399);
+emit_16(333);
+emit_16(400);
+emit_16(334);
+emit_16(400);
+emit_16(333);
+emit_16(400);
+emit_16(334);
+emit_16(401);
+emit_16(335);
+emit_16(401);
+emit_16(334);
+emit_16(401);
+emit_16(335);
+emit_16(402);
+emit_16(336);
+emit_16(402);
+emit_16(335);
+emit_16(402);
+emit_16(336);
+emit_16(403);
+emit_16(337);
+emit_16(403);
+emit_16(336);
+emit_16(403);
+emit_16(337);
+emit_16(404);
+emit_16(338);
+emit_16(404);
+emit_16(337);
+emit_16(404);
+emit_16(338);
+emit_16(405);
+emit_16(339);
+emit_16(405);
+emit_16(338);
+emit_16(405);
+emit_16(339);
+emit_16(406);
+emit_16(340);
+emit_16(406);
+emit_16(339);
+emit_16(406);
+emit_16(340);
+emit_16(407);
+emit_16(341);
+emit_16(407);
+emit_16(340);
+emit_16(407);
+emit_16(341);
+emit_16(408);
+emit_16(342);
+emit_16(408);
+emit_16(341);
+emit_16(408);
+emit_16(342);
+emit_16(409);
+emit_16(343);
+emit_16(409);
+emit_16(342);
+emit_16(409);
+emit_16(343);
+emit_16(410);
+emit_16(344);
+emit_16(410);
+emit_16(343);
+emit_16(410);
+emit_16(344);
+emit_16(411);
+emit_16(345);
+emit_16(411);
+emit_16(344);
+emit_16(411);
+emit_16(345);
+emit_16(412);
+emit_16(346);
+emit_16(412);
+emit_16(345);
+emit_16(412);
+emit_16(346);
+emit_16(413);
+emit_16(347);
+emit_16(413);
+emit_16(346);
+emit_16(413);
+emit_16(347);
+emit_16(414);
+emit_16(348);
+emit_16(414);
+emit_16(347);
+emit_16(414);
+emit_16(348);
+emit_16(415);
+emit_16(349);
+emit_16(415);
+emit_16(348);
+emit_16(415);
+emit_16(349);
+emit_16(416);
+emit_16(350);
+emit_16(416);
+emit_16(349);
+emit_16(416);
+emit_16(350);
+emit_16(417);
+emit_16(351);
+emit_16(417);
+emit_16(350);
+emit_16(417);
+emit_16(351);
+emit_16(418);
+emit_16(352);
+emit_16(418);
+emit_16(351);
+emit_16(418);
+emit_16(352);
+emit_16(419);
+emit_16(353);
+emit_16(419);
+emit_16(352);
+emit_16(419);
+emit_16(353);
+emit_16(420);
+emit_16(354);
+emit_16(420);
+emit_16(353);
+emit_16(420);
+emit_16(354);
+emit_16(421);
+emit_16(355);
+emit_16(421);
+emit_16(354);
+emit_16(421);
+emit_16(355);
+emit_16(422);
+emit_16(356);
+emit_16(422);
+emit_16(355);
+emit_16(422);
+emit_16(356);
+emit_16(423);
+emit_16(357);
+emit_16(423);
+emit_16(356);
+emit_16(423);
+emit_16(357);
+emit_16(424);
+emit_16(358);
+emit_16(424);
+emit_16(357);
+emit_16(424);
+emit_16(358);
+emit_16(425);
+emit_16(359);
+emit_16(425);
+emit_16(358);
+emit_16(425);
+emit_16(359);
+emit_16(426);
+emit_16(360);
+emit_16(426);
+emit_16(359);
+emit_16(426);
+emit_16(360);
+emit_16(427);
+emit_16(361);
+emit_16(427);
+emit_16(360);
+emit_16(427);
+emit_16(361);
+emit_16(428);
+emit_16(362);
+emit_16(428);
+emit_16(361);
+emit_16(428);
+emit_16(362);
+emit_16(429);
+emit_16(363);
+emit_16(429);
+emit_16(362);
+emit_16(429);
+emit_16(363);
+emit_16(430);
+emit_16(364);
+emit_16(430);
+emit_16(363);
+emit_16(430);
+emit_16(364);
+emit_16(431);
+emit_16(365);
+emit_16(431);
+emit_16(364);
+emit_16(431);
+emit_16(365);
+emit_16(432);
+emit_16(366);
+emit_16(432);
+emit_16(365);
+emit_16(432);
+emit_16(366);
+emit_16(433);
+emit_16(367);
+emit_16(433);
+emit_16(366);
+emit_16(433);
+emit_16(367);
+emit_16(434);
+emit_16(368);
+emit_16(434);
+emit_16(367);
+emit_16(434);
+emit_16(368);
+emit_16(435);
+emit_16(369);
+emit_16(435);
+emit_16(368);
+emit_16(435);
+emit_16(369);
+emit_16(436);
+emit_16(370);
+emit_16(436);
+emit_16(369);
+emit_16(436);
+emit_16(370);
+emit_16(437);
+emit_16(371);
+emit_16(437);
+emit_16(370);
+emit_16(437);
+emit_16(371);
+emit_16(438);
+emit_16(372);
+emit_16(438);
+emit_16(371);
+emit_16(438);
+emit_16(372);
+emit_16(439);
+emit_16(373);
+emit_16(439);
+emit_16(372);
+emit_16(439);
+emit_16(373);
+emit_16(440);
+emit_16(374);
+emit_16(440);
+emit_16(373);
+emit_16(440);
+emit_16(374);
+emit_16(441);
+emit_16(375);
+emit_16(441);
+emit_16(374);
+emit_16(441);
+emit_16(375);
+emit_16(442);
+emit_16(376);
+emit_16(442);
+emit_16(375);
+emit_16(442);
+emit_16(376);
+emit_16(443);
+emit_16(377);
+emit_16(443);
+emit_16(376);
+emit_16(443);
+emit_16(377);
+emit_16(444);
+emit_16(378);
+emit_16(444);
+emit_16(377);
+emit_16(444);
+emit_16(378);
+emit_16(445);
+emit_16(379);
+emit_16(445);
+emit_16(378);
+emit_16(445);
+emit_16(379);
+emit_16(446);
+emit_16(380);
+emit_16(446);
+emit_16(379);
+emit_16(446);
+emit_16(380);
+emit_16(447);
+emit_16(381);
+emit_16(447);
+emit_16(380);
+emit_16(447);
+emit_16(381);
+emit_16(448);
+emit_16(382);
+emit_16(448);
+emit_16(381);
+emit_16(448);
+emit_16(382);
+emit_16(449);
+emit_16(383);
+emit_16(449);
+emit_16(382);
+emit_16(449);
+emit_16(383);
+emit_16(450);
+emit_16(384);
+emit_16(450);
+emit_16(383);
+emit_16(450);
+emit_16(384);
+emit_16(451);
+emit_16(385);
+emit_16(451);
+emit_16(384);
+emit_16(451);
+emit_16(385);
+emit_16(452);
+emit_16(386);
+emit_16(452);
+emit_16(385);
+emit_16(452);
+emit_16(386);
+emit_16(453);
+emit_16(387);
+emit_16(453);
+emit_16(386);
+emit_16(453);
+emit_16(387);
+emit_16(454);
+emit_16(388);
+emit_16(454);
+emit_16(387);
+emit_16(454);
+emit_16(388);
+emit_16(455);
+emit_16(389);
+emit_16(455);
+emit_16(388);
+emit_16(455);
+emit_16(389);
+emit_16(456);
+emit_16(390);
+emit_16(456);
+emit_16(389);
+emit_16(456);
+emit_16(390);
+emit_16(457);
+emit_16(391);
+emit_16(457);
+emit_16(390);
+emit_16(457);
+emit_16(391);
+emit_16(458);
+emit_16(392);
+emit_16(458);
+emit_16(391);
+emit_16(458);
+emit_16(392);
+emit_16(459);
+emit_16(393);
+emit_16(459);
+emit_16(392);
+emit_16(459);
+emit_16(393);
+emit_16(460);
+emit_16(394);
+emit_16(460);
+emit_16(393);
+emit_16(460);
+emit_16(394);
+emit_16(461);
+emit_16(395);
+emit_16(461);
+emit_16(394);
+emit_16(462);
+emit_16(396);
+emit_16(463);
+emit_16(397);
+emit_16(463);
+emit_16(396);
+emit_16(463);
+emit_16(397);
+emit_16(464);
+emit_16(398);
+emit_16(464);
+emit_16(397);
+emit_16(464);
+emit_16(398);
+emit_16(465);
+emit_16(399);
+emit_16(465);
+emit_16(398);
+emit_16(465);
+emit_16(399);
+emit_16(466);
+emit_16(400);
+emit_16(466);
+emit_16(399);
+emit_16(466);
+emit_16(400);
+emit_16(467);
+emit_16(401);
+emit_16(467);
+emit_16(400);
+emit_16(467);
+emit_16(401);
+emit_16(468);
+emit_16(402);
+emit_16(468);
+emit_16(401);
+emit_16(468);
+emit_16(402);
+emit_16(469);
+emit_16(403);
+emit_16(469);
+emit_16(402);
+emit_16(469);
+emit_16(403);
+emit_16(470);
+emit_16(404);
+emit_16(470);
+emit_16(403);
+emit_16(470);
+emit_16(404);
+emit_16(471);
+emit_16(405);
+emit_16(471);
+emit_16(404);
+emit_16(471);
+emit_16(405);
+emit_16(472);
+emit_16(406);
+emit_16(472);
+emit_16(405);
+emit_16(472);
+emit_16(406);
+emit_16(473);
+emit_16(407);
+emit_16(473);
+emit_16(406);
+emit_16(473);
+emit_16(407);
+emit_16(474);
+emit_16(408);
+emit_16(474);
+emit_16(407);
+emit_16(474);
+emit_16(408);
+emit_16(475);
+emit_16(409);
+emit_16(475);
+emit_16(408);
+emit_16(475);
+emit_16(409);
+emit_16(476);
+emit_16(410);
+emit_16(476);
+emit_16(409);
+emit_16(476);
+emit_16(410);
+emit_16(477);
+emit_16(411);
+emit_16(477);
+emit_16(410);
+emit_16(477);
+emit_16(411);
+emit_16(478);
+emit_16(412);
+emit_16(478);
+emit_16(411);
+emit_16(478);
+emit_16(412);
+emit_16(479);
+emit_16(413);
+emit_16(479);
+emit_16(412);
+emit_16(479);
+emit_16(413);
+emit_16(480);
+emit_16(414);
+emit_16(480);
+emit_16(413);
+emit_16(480);
+emit_16(414);
+emit_16(481);
+emit_16(415);
+emit_16(481);
+emit_16(414);
+emit_16(481);
+emit_16(415);
+emit_16(482);
+emit_16(416);
+emit_16(482);
+emit_16(415);
+emit_16(482);
+emit_16(416);
+emit_16(483);
+emit_16(417);
+emit_16(483);
+emit_16(416);
+emit_16(483);
+emit_16(417);
+emit_16(484);
+emit_16(418);
+emit_16(484);
+emit_16(417);
+emit_16(484);
+emit_16(418);
+emit_16(485);
+emit_16(419);
+emit_16(485);
+emit_16(418);
+emit_16(485);
+emit_16(419);
+emit_16(486);
+emit_16(420);
+emit_16(486);
+emit_16(419);
+emit_16(486);
+emit_16(420);
+emit_16(487);
+emit_16(421);
+emit_16(487);
+emit_16(420);
+emit_16(487);
+emit_16(421);
+emit_16(488);
+emit_16(422);
+emit_16(488);
+emit_16(421);
+emit_16(488);
+emit_16(422);
+emit_16(489);
+emit_16(423);
+emit_16(489);
+emit_16(422);
+emit_16(489);
+emit_16(423);
+emit_16(490);
+emit_16(424);
+emit_16(490);
+emit_16(423);
+emit_16(490);
+emit_16(424);
+emit_16(491);
+emit_16(425);
+emit_16(491);
+emit_16(424);
+emit_16(491);
+emit_16(425);
+emit_16(492);
+emit_16(426);
+emit_16(492);
+emit_16(425);
+emit_16(492);
+emit_16(426);
+emit_16(493);
+emit_16(427);
+emit_16(493);
+emit_16(426);
+emit_16(493);
+emit_16(427);
+emit_16(494);
+emit_16(428);
+emit_16(494);
+emit_16(427);
+emit_16(494);
+emit_16(428);
+emit_16(495);
+emit_16(429);
+emit_16(495);
+emit_16(428);
+emit_16(495);
+emit_16(429);
+emit_16(496);
+emit_16(430);
+emit_16(496);
+emit_16(429);
+emit_16(496);
+emit_16(430);
+emit_16(497);
+emit_16(431);
+emit_16(497);
+emit_16(430);
+emit_16(497);
+emit_16(431);
+emit_16(498);
+emit_16(432);
+emit_16(498);
+emit_16(431);
+emit_16(498);
+emit_16(432);
+emit_16(499);
+emit_16(433);
+emit_16(499);
+emit_16(432);
+emit_16(499);
+emit_16(433);
+emit_16(500);
+emit_16(434);
+emit_16(500);
+emit_16(433);
+emit_16(500);
+emit_16(434);
+emit_16(501);
+emit_16(435);
+emit_16(501);
+emit_16(434);
+emit_16(501);
+emit_16(435);
+emit_16(502);
+emit_16(436);
+emit_16(502);
+emit_16(435);
+emit_16(502);
+emit_16(436);
+emit_16(503);
+emit_16(437);
+emit_16(503);
+emit_16(436);
+emit_16(503);
+emit_16(437);
+emit_16(504);
+emit_16(438);
+emit_16(504);
+emit_16(437);
+emit_16(504);
+emit_16(438);
+emit_16(505);
+emit_16(439);
+emit_16(505);
+emit_16(438);
+emit_16(505);
+emit_16(439);
+emit_16(506);
+emit_16(440);
+emit_16(506);
+emit_16(439);
+emit_16(506);
+emit_16(440);
+emit_16(507);
+emit_16(441);
+emit_16(507);
+emit_16(440);
+emit_16(507);
+emit_16(441);
+emit_16(508);
+emit_16(442);
+emit_16(508);
+emit_16(441);
+emit_16(508);
+emit_16(442);
+emit_16(509);
+emit_16(443);
+emit_16(509);
+emit_16(442);
+emit_16(509);
+emit_16(443);
+emit_16(510);
+emit_16(444);
+emit_16(510);
+emit_16(443);
+emit_16(510);
+emit_16(444);
+emit_16(511);
+emit_16(445);
+emit_16(511);
+emit_16(444);
+emit_16(511);
+emit_16(445);
+emit_16(512);
+emit_16(446);
+emit_16(512);
+emit_16(445);
+emit_16(512);
+emit_16(446);
+emit_16(513);
+emit_16(447);
+emit_16(513);
+emit_16(446);
+emit_16(513);
+emit_16(447);
+emit_16(514);
+emit_16(448);
+emit_16(514);
+emit_16(447);
+emit_16(514);
+emit_16(448);
+emit_16(515);
+emit_16(449);
+emit_16(515);
+emit_16(448);
+emit_16(515);
+emit_16(449);
+emit_16(516);
+emit_16(450);
+emit_16(516);
+emit_16(449);
+emit_16(516);
+emit_16(450);
+emit_16(517);
+emit_16(451);
+emit_16(517);
+emit_16(450);
+emit_16(517);
+emit_16(451);
+emit_16(518);
+emit_16(452);
+emit_16(518);
+emit_16(451);
+emit_16(518);
+emit_16(452);
+emit_16(519);
+emit_16(453);
+emit_16(519);
+emit_16(452);
+emit_16(519);
+emit_16(453);
+emit_16(520);
+emit_16(454);
+emit_16(520);
+emit_16(453);
+emit_16(520);
+emit_16(454);
+emit_16(521);
+emit_16(455);
+emit_16(521);
+emit_16(454);
+emit_16(521);
+emit_16(455);
+emit_16(522);
+emit_16(456);
+emit_16(522);
+emit_16(455);
+emit_16(522);
+emit_16(456);
+emit_16(523);
+emit_16(457);
+emit_16(523);
+emit_16(456);
+emit_16(523);
+emit_16(457);
+emit_16(524);
+emit_16(458);
+emit_16(524);
+emit_16(457);
+emit_16(524);
+emit_16(458);
+emit_16(525);
+emit_16(459);
+emit_16(525);
+emit_16(458);
+emit_16(525);
+emit_16(459);
+emit_16(526);
+emit_16(460);
+emit_16(526);
+emit_16(459);
+emit_16(526);
+emit_16(460);
+emit_16(527);
+emit_16(461);
+emit_16(527);
+emit_16(460);
+emit_16(528);
+emit_16(462);
+emit_16(529);
+emit_16(463);
+emit_16(529);
+emit_16(462);
+emit_16(529);
+emit_16(463);
+emit_16(530);
+emit_16(464);
+emit_16(530);
+emit_16(463);
+emit_16(530);
+emit_16(464);
+emit_16(531);
+emit_16(465);
+emit_16(531);
+emit_16(464);
+emit_16(531);
+emit_16(465);
+emit_16(532);
+emit_16(466);
+emit_16(532);
+emit_16(465);
+emit_16(532);
+emit_16(466);
+emit_16(533);
+emit_16(467);
+emit_16(533);
+emit_16(466);
+emit_16(533);
+emit_16(467);
+emit_16(534);
+emit_16(468);
+emit_16(534);
+emit_16(467);
+emit_16(534);
+emit_16(468);
+emit_16(535);
+emit_16(469);
+emit_16(535);
+emit_16(468);
+emit_16(535);
+emit_16(469);
+emit_16(536);
+emit_16(470);
+emit_16(536);
+emit_16(469);
+emit_16(536);
+emit_16(470);
+emit_16(537);
+emit_16(471);
+emit_16(537);
+emit_16(470);
+emit_16(537);
+emit_16(471);
+emit_16(538);
+emit_16(472);
+emit_16(538);
+emit_16(471);
+emit_16(538);
+emit_16(472);
+emit_16(539);
+emit_16(473);
+emit_16(539);
+emit_16(472);
+emit_16(539);
+emit_16(473);
+emit_16(540);
+emit_16(474);
+emit_16(540);
+emit_16(473);
+emit_16(540);
+emit_16(474);
+emit_16(541);
+emit_16(475);
+emit_16(541);
+emit_16(474);
+emit_16(541);
+emit_16(475);
+emit_16(542);
+emit_16(476);
+emit_16(542);
+emit_16(475);
+emit_16(542);
+emit_16(476);
+emit_16(543);
+emit_16(477);
+emit_16(543);
+emit_16(476);
+emit_16(543);
+emit_16(477);
+emit_16(544);
+emit_16(478);
+emit_16(544);
+emit_16(477);
+emit_16(544);
+emit_16(478);
+emit_16(545);
+emit_16(479);
+emit_16(545);
+emit_16(478);
+emit_16(545);
+emit_16(479);
+emit_16(546);
+emit_16(480);
+emit_16(546);
+emit_16(479);
+emit_16(546);
+emit_16(480);
+emit_16(547);
+emit_16(481);
+emit_16(547);
+emit_16(480);
+emit_16(547);
+emit_16(481);
+emit_16(548);
+emit_16(482);
+emit_16(548);
+emit_16(481);
+emit_16(548);
+emit_16(482);
+emit_16(549);
+emit_16(483);
+emit_16(549);
+emit_16(482);
+emit_16(549);
+emit_16(483);
+emit_16(550);
+emit_16(484);
+emit_16(550);
+emit_16(483);
+emit_16(550);
+emit_16(484);
+emit_16(551);
+emit_16(485);
+emit_16(551);
+emit_16(484);
+emit_16(551);
+emit_16(485);
+emit_16(552);
+emit_16(486);
+emit_16(552);
+emit_16(485);
+emit_16(552);
+emit_16(486);
+emit_16(553);
+emit_16(487);
+emit_16(553);
+emit_16(486);
+emit_16(553);
+emit_16(487);
+emit_16(554);
+emit_16(488);
+emit_16(554);
+emit_16(487);
+emit_16(554);
+emit_16(488);
+emit_16(555);
+emit_16(489);
+emit_16(555);
+emit_16(488);
+emit_16(555);
+emit_16(489);
+emit_16(556);
+emit_16(490);
+emit_16(556);
+emit_16(489);
+emit_16(556);
+emit_16(490);
+emit_16(557);
+emit_16(491);
+emit_16(557);
+emit_16(490);
+emit_16(557);
+emit_16(491);
+emit_16(558);
+emit_16(492);
+emit_16(558);
+emit_16(491);
+emit_16(558);
+emit_16(492);
+emit_16(559);
+emit_16(493);
+emit_16(559);
+emit_16(492);
+emit_16(559);
+emit_16(493);
+emit_16(560);
+emit_16(494);
+emit_16(560);
+emit_16(493);
+emit_16(560);
+emit_16(494);
+emit_16(561);
+emit_16(495);
+emit_16(561);
+emit_16(494);
+emit_16(561);
+emit_16(495);
+emit_16(562);
+emit_16(496);
+emit_16(562);
+emit_16(495);
+emit_16(562);
+emit_16(496);
+emit_16(563);
+emit_16(497);
+emit_16(563);
+emit_16(496);
+emit_16(563);
+emit_16(497);
+emit_16(564);
+emit_16(498);
+emit_16(564);
+emit_16(497);
+emit_16(564);
+emit_16(498);
+emit_16(565);
+emit_16(499);
+emit_16(565);
+emit_16(498);
+emit_16(565);
+emit_16(499);
+emit_16(566);
+emit_16(500);
+emit_16(566);
+emit_16(499);
+emit_16(566);
+emit_16(500);
+emit_16(567);
+emit_16(501);
+emit_16(567);
+emit_16(500);
+emit_16(567);
+emit_16(501);
+emit_16(568);
+emit_16(502);
+emit_16(568);
+emit_16(501);
+emit_16(568);
+emit_16(502);
+emit_16(569);
+emit_16(503);
+emit_16(569);
+emit_16(502);
+emit_16(569);
+emit_16(503);
+emit_16(570);
+emit_16(504);
+emit_16(570);
+emit_16(503);
+emit_16(570);
+emit_16(504);
+emit_16(571);
+emit_16(505);
+emit_16(571);
+emit_16(504);
+emit_16(571);
+emit_16(505);
+emit_16(572);
+emit_16(506);
+emit_16(572);
+emit_16(505);
+emit_16(572);
+emit_16(506);
+emit_16(573);
+emit_16(507);
+emit_16(573);
+emit_16(506);
+emit_16(573);
+emit_16(507);
+emit_16(574);
+emit_16(508);
+emit_16(574);
+emit_16(507);
+emit_16(574);
+emit_16(508);
+emit_16(575);
+emit_16(509);
+emit_16(575);
+emit_16(508);
+emit_16(575);
+emit_16(509);
+emit_16(576);
+emit_16(510);
+emit_16(576);
+emit_16(509);
+emit_16(576);
+emit_16(510);
+emit_16(577);
+emit_16(511);
+emit_16(577);
+emit_16(510);
+emit_16(577);
+emit_16(511);
+emit_16(578);
+emit_16(512);
+emit_16(578);
+emit_16(511);
+emit_16(578);
+emit_16(512);
+emit_16(579);
+emit_16(513);
+emit_16(579);
+emit_16(512);
+emit_16(579);
+emit_16(513);
+emit_16(580);
+emit_16(514);
+emit_16(580);
+emit_16(513);
+emit_16(580);
+emit_16(514);
+emit_16(581);
+emit_16(515);
+emit_16(581);
+emit_16(514);
+emit_16(581);
+emit_16(515);
+emit_16(582);
+emit_16(516);
+emit_16(582);
+emit_16(515);
+emit_16(582);
+emit_16(516);
+emit_16(583);
+emit_16(517);
+emit_16(583);
+emit_16(516);
+emit_16(583);
+emit_16(517);
+emit_16(584);
+emit_16(518);
+emit_16(584);
+emit_16(517);
+emit_16(584);
+emit_16(518);
+emit_16(585);
+emit_16(519);
+emit_16(585);
+emit_16(518);
+emit_16(585);
+emit_16(519);
+emit_16(586);
+emit_16(520);
+emit_16(586);
+emit_16(519);
+emit_16(586);
+emit_16(520);
+emit_16(587);
+emit_16(521);
+emit_16(587);
+emit_16(520);
+emit_16(587);
+emit_16(521);
+emit_16(588);
+emit_16(522);
+emit_16(588);
+emit_16(521);
+emit_16(588);
+emit_16(522);
+emit_16(589);
+emit_16(523);
+emit_16(589);
+emit_16(522);
+emit_16(589);
+emit_16(523);
+emit_16(590);
+emit_16(524);
+emit_16(590);
+emit_16(523);
+emit_16(590);
+emit_16(524);
+emit_16(591);
+emit_16(525);
+emit_16(591);
+emit_16(524);
+emit_16(591);
+emit_16(525);
+emit_16(592);
+emit_16(526);
+emit_16(592);
+emit_16(525);
+emit_16(592);
+emit_16(526);
+emit_16(593);
+emit_16(527);
+emit_16(593);
+emit_16(526);
+emit_16(594);
+emit_16(528);
+emit_16(595);
+emit_16(529);
+emit_16(595);
+emit_16(528);
+emit_16(595);
+emit_16(529);
+emit_16(596);
+emit_16(530);
+emit_16(596);
+emit_16(529);
+emit_16(596);
+emit_16(530);
+emit_16(597);
+emit_16(531);
+emit_16(597);
+emit_16(530);
+emit_16(597);
+emit_16(531);
+emit_16(598);
+emit_16(532);
+emit_16(598);
+emit_16(531);
+emit_16(598);
+emit_16(532);
+emit_16(599);
+emit_16(533);
+emit_16(599);
+emit_16(532);
+emit_16(599);
+emit_16(533);
+emit_16(600);
+emit_16(534);
+emit_16(600);
+emit_16(533);
+emit_16(600);
+emit_16(534);
+emit_16(601);
+emit_16(535);
+emit_16(601);
+emit_16(534);
+emit_16(601);
+emit_16(535);
+emit_16(602);
+emit_16(536);
+emit_16(602);
+emit_16(535);
+emit_16(602);
+emit_16(536);
+emit_16(603);
+emit_16(537);
+emit_16(603);
+emit_16(536);
+emit_16(603);
+emit_16(537);
+emit_16(604);
+emit_16(538);
+emit_16(604);
+emit_16(537);
+emit_16(604);
+emit_16(538);
+emit_16(605);
+emit_16(539);
+emit_16(605);
+emit_16(538);
+emit_16(605);
+emit_16(539);
+emit_16(606);
+emit_16(540);
+emit_16(606);
+emit_16(539);
+emit_16(606);
+emit_16(540);
+emit_16(607);
+emit_16(541);
+emit_16(607);
+emit_16(540);
+emit_16(607);
+emit_16(541);
+emit_16(608);
+emit_16(542);
+emit_16(608);
+emit_16(541);
+emit_16(608);
+emit_16(542);
+emit_16(609);
+emit_16(543);
+emit_16(609);
+emit_16(542);
+emit_16(609);
+emit_16(543);
+emit_16(610);
+emit_16(544);
+emit_16(610);
+emit_16(543);
+emit_16(610);
+emit_16(544);
+emit_16(611);
+emit_16(545);
+emit_16(611);
+emit_16(544);
+emit_16(611);
+emit_16(545);
+emit_16(612);
+emit_16(546);
+emit_16(612);
+emit_16(545);
+emit_16(612);
+emit_16(546);
+emit_16(613);
+emit_16(547);
+emit_16(613);
+emit_16(546);
+emit_16(613);
+emit_16(547);
+emit_16(614);
+emit_16(548);
+emit_16(614);
+emit_16(547);
+emit_16(614);
+emit_16(548);
+emit_16(615);
+emit_16(549);
+emit_16(615);
+emit_16(548);
+emit_16(615);
+emit_16(549);
+emit_16(616);
+emit_16(550);
+emit_16(616);
+emit_16(549);
+emit_16(616);
+emit_16(550);
+emit_16(617);
+emit_16(551);
+emit_16(617);
+emit_16(550);
+emit_16(617);
+emit_16(551);
+emit_16(618);
+emit_16(552);
+emit_16(618);
+emit_16(551);
+emit_16(618);
+emit_16(552);
+emit_16(619);
+emit_16(553);
+emit_16(619);
+emit_16(552);
+emit_16(619);
+emit_16(553);
+emit_16(620);
+emit_16(554);
+emit_16(620);
+emit_16(553);
+emit_16(620);
+emit_16(554);
+emit_16(621);
+emit_16(555);
+emit_16(621);
+emit_16(554);
+emit_16(621);
+emit_16(555);
+emit_16(622);
+emit_16(556);
+emit_16(622);
+emit_16(555);
+emit_16(622);
+emit_16(556);
+emit_16(623);
+emit_16(557);
+emit_16(623);
+emit_16(556);
+emit_16(623);
+emit_16(557);
+emit_16(624);
+emit_16(558);
+emit_16(624);
+emit_16(557);
+emit_16(624);
+emit_16(558);
+emit_16(625);
+emit_16(559);
+emit_16(625);
+emit_16(558);
+emit_16(625);
+emit_16(559);
+emit_16(626);
+emit_16(560);
+emit_16(626);
+emit_16(559);
+emit_16(626);
+emit_16(560);
+emit_16(627);
+emit_16(561);
+emit_16(627);
+emit_16(560);
+emit_16(627);
+emit_16(561);
+emit_16(628);
+emit_16(562);
+emit_16(628);
+emit_16(561);
+emit_16(628);
+emit_16(562);
+emit_16(629);
+emit_16(563);
+emit_16(629);
+emit_16(562);
+emit_16(629);
+emit_16(563);
+emit_16(630);
+emit_16(564);
+emit_16(630);
+emit_16(563);
+emit_16(630);
+emit_16(564);
+emit_16(631);
+emit_16(565);
+emit_16(631);
+emit_16(564);
+emit_16(631);
+emit_16(565);
+emit_16(632);
+emit_16(566);
+emit_16(632);
+emit_16(565);
+emit_16(632);
+emit_16(566);
+emit_16(633);
+emit_16(567);
+emit_16(633);
+emit_16(566);
+emit_16(633);
+emit_16(567);
+emit_16(634);
+emit_16(568);
+emit_16(634);
+emit_16(567);
+emit_16(634);
+emit_16(568);
+emit_16(635);
+emit_16(569);
+emit_16(635);
+emit_16(568);
+emit_16(635);
+emit_16(569);
+emit_16(636);
+emit_16(570);
+emit_16(636);
+emit_16(569);
+emit_16(636);
+emit_16(570);
+emit_16(637);
+emit_16(571);
+emit_16(637);
+emit_16(570);
+emit_16(637);
+emit_16(571);
+emit_16(638);
+emit_16(572);
+emit_16(638);
+emit_16(571);
+emit_16(638);
+emit_16(572);
+emit_16(639);
+emit_16(573);
+emit_16(639);
+emit_16(572);
+emit_16(639);
+emit_16(573);
+emit_16(640);
+emit_16(574);
+emit_16(640);
+emit_16(573);
+emit_16(640);
+emit_16(574);
+emit_16(641);
+emit_16(575);
+emit_16(641);
+emit_16(574);
+emit_16(641);
+emit_16(575);
+emit_16(642);
+emit_16(576);
+emit_16(642);
+emit_16(575);
+emit_16(642);
+emit_16(576);
+emit_16(643);
+emit_16(577);
+emit_16(643);
+emit_16(576);
+emit_16(643);
+emit_16(577);
+emit_16(644);
+emit_16(578);
+emit_16(644);
+emit_16(577);
+emit_16(644);
+emit_16(578);
+emit_16(645);
+emit_16(579);
+emit_16(645);
+emit_16(578);
+emit_16(645);
+emit_16(579);
+emit_16(646);
+emit_16(580);
+emit_16(646);
+emit_16(579);
+emit_16(646);
+emit_16(580);
+emit_16(647);
+emit_16(581);
+emit_16(647);
+emit_16(580);
+emit_16(647);
+emit_16(581);
+emit_16(648);
+emit_16(582);
+emit_16(648);
+emit_16(581);
+emit_16(648);
+emit_16(582);
+emit_16(649);
+emit_16(583);
+emit_16(649);
+emit_16(582);
+emit_16(649);
+emit_16(583);
+emit_16(650);
+emit_16(584);
+emit_16(650);
+emit_16(583);
+emit_16(650);
+emit_16(584);
+emit_16(651);
+emit_16(585);
+emit_16(651);
+emit_16(584);
+emit_16(651);
+emit_16(585);
+emit_16(652);
+emit_16(586);
+emit_16(652);
+emit_16(585);
+emit_16(652);
+emit_16(586);
+emit_16(653);
+emit_16(587);
+emit_16(653);
+emit_16(586);
+emit_16(653);
+emit_16(587);
+emit_16(654);
+emit_16(588);
+emit_16(654);
+emit_16(587);
+emit_16(654);
+emit_16(588);
+emit_16(655);
+emit_16(589);
+emit_16(655);
+emit_16(588);
+emit_16(655);
+emit_16(589);
+emit_16(656);
+emit_16(590);
+emit_16(656);
+emit_16(589);
+emit_16(656);
+emit_16(590);
+emit_16(657);
+emit_16(591);
+emit_16(657);
+emit_16(590);
+emit_16(657);
+emit_16(591);
+emit_16(658);
+emit_16(592);
+emit_16(658);
+emit_16(591);
+emit_16(658);
+emit_16(592);
+emit_16(659);
+emit_16(593);
+emit_16(659);
+emit_16(592);
+emit_16(660);
+emit_16(594);
+emit_16(661);
+emit_16(595);
+emit_16(661);
+emit_16(594);
+emit_16(661);
+emit_16(595);
+emit_16(662);
+emit_16(596);
+emit_16(662);
+emit_16(595);
+emit_16(662);
+emit_16(596);
+emit_16(663);
+emit_16(597);
+emit_16(663);
+emit_16(596);
+emit_16(663);
+emit_16(597);
+emit_16(664);
+emit_16(598);
+emit_16(664);
+emit_16(597);
+emit_16(664);
+emit_16(598);
+emit_16(665);
+emit_16(599);
+emit_16(665);
+emit_16(598);
+emit_16(665);
+emit_16(599);
+emit_16(666);
+emit_16(600);
+emit_16(666);
+emit_16(599);
+emit_16(666);
+emit_16(600);
+emit_16(667);
+emit_16(601);
+emit_16(667);
+emit_16(600);
+emit_16(667);
+emit_16(601);
+emit_16(668);
+emit_16(602);
+emit_16(668);
+emit_16(601);
+emit_16(668);
+emit_16(602);
+emit_16(669);
+emit_16(603);
+emit_16(669);
+emit_16(602);
+emit_16(669);
+emit_16(603);
+emit_16(670);
+emit_16(604);
+emit_16(670);
+emit_16(603);
+emit_16(670);
+emit_16(604);
+emit_16(671);
+emit_16(605);
+emit_16(671);
+emit_16(604);
+emit_16(671);
+emit_16(605);
+emit_16(672);
+emit_16(606);
+emit_16(672);
+emit_16(605);
+emit_16(672);
+emit_16(606);
+emit_16(673);
+emit_16(607);
+emit_16(673);
+emit_16(606);
+emit_16(673);
+emit_16(607);
+emit_16(674);
+emit_16(608);
+emit_16(674);
+emit_16(607);
+emit_16(674);
+emit_16(608);
+emit_16(675);
+emit_16(609);
+emit_16(675);
+emit_16(608);
+emit_16(675);
+emit_16(609);
+emit_16(676);
+emit_16(610);
+emit_16(676);
+emit_16(609);
+emit_16(676);
+emit_16(610);
+emit_16(677);
+emit_16(611);
+emit_16(677);
+emit_16(610);
+emit_16(677);
+emit_16(611);
+emit_16(678);
+emit_16(612);
+emit_16(678);
+emit_16(611);
+emit_16(678);
+emit_16(612);
+emit_16(679);
+emit_16(613);
+emit_16(679);
+emit_16(612);
+emit_16(679);
+emit_16(613);
+emit_16(680);
+emit_16(614);
+emit_16(680);
+emit_16(613);
+emit_16(680);
+emit_16(614);
+emit_16(681);
+emit_16(615);
+emit_16(681);
+emit_16(614);
+emit_16(681);
+emit_16(615);
+emit_16(682);
+emit_16(616);
+emit_16(682);
+emit_16(615);
+emit_16(682);
+emit_16(616);
+emit_16(683);
+emit_16(617);
+emit_16(683);
+emit_16(616);
+emit_16(683);
+emit_16(617);
+emit_16(684);
+emit_16(618);
+emit_16(684);
+emit_16(617);
+emit_16(684);
+emit_16(618);
+emit_16(685);
+emit_16(619);
+emit_16(685);
+emit_16(618);
+emit_16(685);
+emit_16(619);
+emit_16(686);
+emit_16(620);
+emit_16(686);
+emit_16(619);
+emit_16(686);
+emit_16(620);
+emit_16(687);
+emit_16(621);
+emit_16(687);
+emit_16(620);
+emit_16(687);
+emit_16(621);
+emit_16(688);
+emit_16(622);
+emit_16(688);
+emit_16(621);
+emit_16(688);
+emit_16(622);
+emit_16(689);
+emit_16(623);
+emit_16(689);
+emit_16(622);
+emit_16(689);
+emit_16(623);
+emit_16(690);
+emit_16(624);
+emit_16(690);
+emit_16(623);
+emit_16(690);
+emit_16(624);
+emit_16(691);
+emit_16(625);
+emit_16(691);
+emit_16(624);
+emit_16(691);
+emit_16(625);
+emit_16(692);
+emit_16(626);
+emit_16(692);
+emit_16(625);
+emit_16(692);
+emit_16(626);
+emit_16(693);
+emit_16(627);
+emit_16(693);
+emit_16(626);
+emit_16(693);
+emit_16(627);
+emit_16(694);
+emit_16(628);
+emit_16(694);
+emit_16(627);
+emit_16(694);
+emit_16(628);
+emit_16(695);
+emit_16(629);
+emit_16(695);
+emit_16(628);
+emit_16(695);
+emit_16(629);
+emit_16(696);
+emit_16(630);
+emit_16(696);
+emit_16(629);
+emit_16(696);
+emit_16(630);
+emit_16(697);
+emit_16(631);
+emit_16(697);
+emit_16(630);
+emit_16(697);
+emit_16(631);
+emit_16(698);
+emit_16(632);
+emit_16(698);
+emit_16(631);
+emit_16(698);
+emit_16(632);
+emit_16(699);
+emit_16(633);
+emit_16(699);
+emit_16(632);
+emit_16(699);
+emit_16(633);
+emit_16(700);
+emit_16(634);
+emit_16(700);
+emit_16(633);
+emit_16(700);
+emit_16(634);
+emit_16(701);
+emit_16(635);
+emit_16(701);
+emit_16(634);
+emit_16(701);
+emit_16(635);
+emit_16(702);
+emit_16(636);
+emit_16(702);
+emit_16(635);
+emit_16(702);
+emit_16(636);
+emit_16(703);
+emit_16(637);
+emit_16(703);
+emit_16(636);
+emit_16(703);
+emit_16(637);
+emit_16(704);
+emit_16(638);
+emit_16(704);
+emit_16(637);
+emit_16(704);
+emit_16(638);
+emit_16(705);
+emit_16(639);
+emit_16(705);
+emit_16(638);
+emit_16(705);
+emit_16(639);
+emit_16(706);
+emit_16(640);
+emit_16(706);
+emit_16(639);
+emit_16(706);
+emit_16(640);
+emit_16(707);
+emit_16(641);
+emit_16(707);
+emit_16(640);
+emit_16(707);
+emit_16(641);
+emit_16(708);
+emit_16(642);
+emit_16(708);
+emit_16(641);
+emit_16(708);
+emit_16(642);
+emit_16(709);
+emit_16(643);
+emit_16(709);
+emit_16(642);
+emit_16(709);
+emit_16(643);
+emit_16(710);
+emit_16(644);
+emit_16(710);
+emit_16(643);
+emit_16(710);
+emit_16(644);
+emit_16(711);
+emit_16(645);
+emit_16(711);
+emit_16(644);
+emit_16(711);
+emit_16(645);
+emit_16(712);
+emit_16(646);
+emit_16(712);
+emit_16(645);
+emit_16(712);
+emit_16(646);
+emit_16(713);
+emit_16(647);
+emit_16(713);
+emit_16(646);
+emit_16(713);
+emit_16(647);
+emit_16(714);
+emit_16(648);
+emit_16(714);
+emit_16(647);
+emit_16(714);
+emit_16(648);
+emit_16(715);
+emit_16(649);
+emit_16(715);
+emit_16(648);
+emit_16(715);
+emit_16(649);
+emit_16(716);
+emit_16(650);
+emit_16(716);
+emit_16(649);
+emit_16(716);
+emit_16(650);
+emit_16(717);
+emit_16(651);
+emit_16(717);
+emit_16(650);
+emit_16(717);
+emit_16(651);
+emit_16(718);
+emit_16(652);
+emit_16(718);
+emit_16(651);
+emit_16(718);
+emit_16(652);
+emit_16(719);
+emit_16(653);
+emit_16(719);
+emit_16(652);
+emit_16(719);
+emit_16(653);
+emit_16(720);
+emit_16(654);
+emit_16(720);
+emit_16(653);
+emit_16(720);
+emit_16(654);
+emit_16(721);
+emit_16(655);
+emit_16(721);
+emit_16(654);
+emit_16(721);
+emit_16(655);
+emit_16(722);
+emit_16(656);
+emit_16(722);
+emit_16(655);
+emit_16(722);
+emit_16(656);
+emit_16(723);
+emit_16(657);
+emit_16(723);
+emit_16(656);
+emit_16(723);
+emit_16(657);
+emit_16(724);
+emit_16(658);
+emit_16(724);
+emit_16(657);
+emit_16(724);
+emit_16(658);
+emit_16(725);
+emit_16(659);
+emit_16(725);
+emit_16(658);
+emit_16(726);
+emit_16(660);
+emit_16(727);
+emit_16(661);
+emit_16(727);
+emit_16(660);
+emit_16(727);
+emit_16(661);
+emit_16(728);
+emit_16(662);
+emit_16(728);
+emit_16(661);
+emit_16(728);
+emit_16(662);
+emit_16(729);
+emit_16(663);
+emit_16(729);
+emit_16(662);
+emit_16(729);
+emit_16(663);
+emit_16(730);
+emit_16(664);
+emit_16(730);
+emit_16(663);
+emit_16(730);
+emit_16(664);
+emit_16(731);
+emit_16(665);
+emit_16(731);
+emit_16(664);
+emit_16(731);
+emit_16(665);
+emit_16(732);
+emit_16(666);
+emit_16(732);
+emit_16(665);
+emit_16(732);
+emit_16(666);
+emit_16(733);
+emit_16(667);
+emit_16(733);
+emit_16(666);
+emit_16(733);
+emit_16(667);
+emit_16(734);
+emit_16(668);
+emit_16(734);
+emit_16(667);
+emit_16(734);
+emit_16(668);
+emit_16(735);
+emit_16(669);
+emit_16(735);
+emit_16(668);
+emit_16(735);
+emit_16(669);
+emit_16(736);
+emit_16(670);
+emit_16(736);
+emit_16(669);
+emit_16(736);
+emit_16(670);
+emit_16(737);
+emit_16(671);
+emit_16(737);
+emit_16(670);
+emit_16(737);
+emit_16(671);
+emit_16(738);
+emit_16(672);
+emit_16(738);
+emit_16(671);
+emit_16(738);
+emit_16(672);
+emit_16(739);
+emit_16(673);
+emit_16(739);
+emit_16(672);
+emit_16(739);
+emit_16(673);
+emit_16(740);
+emit_16(674);
+emit_16(740);
+emit_16(673);
+emit_16(740);
+emit_16(674);
+emit_16(741);
+emit_16(675);
+emit_16(741);
+emit_16(674);
+emit_16(741);
+emit_16(675);
+emit_16(742);
+emit_16(676);
+emit_16(742);
+emit_16(675);
+emit_16(742);
+emit_16(676);
+emit_16(743);
+emit_16(677);
+emit_16(743);
+emit_16(676);
+emit_16(743);
+emit_16(677);
+emit_16(744);
+emit_16(678);
+emit_16(744);
+emit_16(677);
+emit_16(744);
+emit_16(678);
+emit_16(745);
+emit_16(679);
+emit_16(745);
+emit_16(678);
+emit_16(745);
+emit_16(679);
+emit_16(746);
+emit_16(680);
+emit_16(746);
+emit_16(679);
+emit_16(746);
+emit_16(680);
+emit_16(747);
+emit_16(681);
+emit_16(747);
+emit_16(680);
+emit_16(747);
+emit_16(681);
+emit_16(748);
+emit_16(682);
+emit_16(748);
+emit_16(681);
+emit_16(748);
+emit_16(682);
+emit_16(749);
+emit_16(683);
+emit_16(749);
+emit_16(682);
+emit_16(749);
+emit_16(683);
+emit_16(750);
+emit_16(684);
+emit_16(750);
+emit_16(683);
+emit_16(750);
+emit_16(684);
+emit_16(751);
+emit_16(685);
+emit_16(751);
+emit_16(684);
+emit_16(751);
+emit_16(685);
+emit_16(752);
+emit_16(686);
+emit_16(752);
+emit_16(685);
+emit_16(752);
+emit_16(686);
+emit_16(753);
+emit_16(687);
+emit_16(753);
+emit_16(686);
+emit_16(753);
+emit_16(687);
+emit_16(754);
+emit_16(688);
+emit_16(754);
+emit_16(687);
+emit_16(754);
+emit_16(688);
+emit_16(755);
+emit_16(689);
+emit_16(755);
+emit_16(688);
+emit_16(755);
+emit_16(689);
+emit_16(756);
+emit_16(690);
+emit_16(756);
+emit_16(689);
+emit_16(756);
+emit_16(690);
+emit_16(757);
+emit_16(691);
+emit_16(757);
+emit_16(690);
+emit_16(757);
+emit_16(691);
+emit_16(758);
+emit_16(692);
+emit_16(758);
+emit_16(691);
+emit_16(758);
+emit_16(692);
+emit_16(759);
+emit_16(693);
+emit_16(759);
+emit_16(692);
+emit_16(759);
+emit_16(693);
+emit_16(760);
+emit_16(694);
+emit_16(760);
+emit_16(693);
+emit_16(760);
+emit_16(694);
+emit_16(761);
+emit_16(695);
+emit_16(761);
+emit_16(694);
+emit_16(761);
+emit_16(695);
+emit_16(762);
+emit_16(696);
+emit_16(762);
+emit_16(695);
+emit_16(762);
+emit_16(696);
+emit_16(763);
+emit_16(697);
+emit_16(763);
+emit_16(696);
+emit_16(763);
+emit_16(697);
+emit_16(764);
+emit_16(698);
+emit_16(764);
+emit_16(697);
+emit_16(764);
+emit_16(698);
+emit_16(765);
+emit_16(699);
+emit_16(765);
+emit_16(698);
+emit_16(765);
+emit_16(699);
+emit_16(766);
+emit_16(700);
+emit_16(766);
+emit_16(699);
+emit_16(766);
+emit_16(700);
+emit_16(767);
+emit_16(701);
+emit_16(767);
+emit_16(700);
+emit_16(767);
+emit_16(701);
+emit_16(768);
+emit_16(702);
+emit_16(768);
+emit_16(701);
+emit_16(768);
+emit_16(702);
+emit_16(769);
+emit_16(703);
+emit_16(769);
+emit_16(702);
+emit_16(769);
+emit_16(703);
+emit_16(770);
+emit_16(704);
+emit_16(770);
+emit_16(703);
+emit_16(770);
+emit_16(704);
+emit_16(771);
+emit_16(705);
+emit_16(771);
+emit_16(704);
+emit_16(771);
+emit_16(705);
+emit_16(772);
+emit_16(706);
+emit_16(772);
+emit_16(705);
+emit_16(772);
+emit_16(706);
+emit_16(773);
+emit_16(707);
+emit_16(773);
+emit_16(706);
+emit_16(773);
+emit_16(707);
+emit_16(774);
+emit_16(708);
+emit_16(774);
+emit_16(707);
+emit_16(774);
+emit_16(708);
+emit_16(775);
+emit_16(709);
+emit_16(775);
+emit_16(708);
+emit_16(775);
+emit_16(709);
+emit_16(776);
+emit_16(710);
+emit_16(776);
+emit_16(709);
+emit_16(776);
+emit_16(710);
+emit_16(777);
+emit_16(711);
+emit_16(777);
+emit_16(710);
+emit_16(777);
+emit_16(711);
+emit_16(778);
+emit_16(712);
+emit_16(778);
+emit_16(711);
+emit_16(778);
+emit_16(712);
+emit_16(779);
+emit_16(713);
+emit_16(779);
+emit_16(712);
+emit_16(779);
+emit_16(713);
+emit_16(780);
+emit_16(714);
+emit_16(780);
+emit_16(713);
+emit_16(780);
+emit_16(714);
+emit_16(781);
+emit_16(715);
+emit_16(781);
+emit_16(714);
+emit_16(781);
+emit_16(715);
+emit_16(782);
+emit_16(716);
+emit_16(782);
+emit_16(715);
+emit_16(782);
+emit_16(716);
+emit_16(783);
+emit_16(717);
+emit_16(783);
+emit_16(716);
+emit_16(783);
+emit_16(717);
+emit_16(784);
+emit_16(718);
+emit_16(784);
+emit_16(717);
+emit_16(784);
+emit_16(718);
+emit_16(785);
+emit_16(719);
+emit_16(785);
+emit_16(718);
+emit_16(785);
+emit_16(719);
+emit_16(786);
+emit_16(720);
+emit_16(786);
+emit_16(719);
+emit_16(786);
+emit_16(720);
+emit_16(787);
+emit_16(721);
+emit_16(787);
+emit_16(720);
+emit_16(787);
+emit_16(721);
+emit_16(788);
+emit_16(722);
+emit_16(788);
+emit_16(721);
+emit_16(788);
+emit_16(722);
+emit_16(789);
+emit_16(723);
+emit_16(789);
+emit_16(722);
+emit_16(789);
+emit_16(723);
+emit_16(790);
+emit_16(724);
+emit_16(790);
+emit_16(723);
+emit_16(790);
+emit_16(724);
+emit_16(791);
+emit_16(725);
+emit_16(791);
+emit_16(724);
+emit_16(792);
+emit_16(726);
+emit_16(793);
+emit_16(727);
+emit_16(793);
+emit_16(726);
+emit_16(793);
+emit_16(727);
+emit_16(794);
+emit_16(728);
+emit_16(794);
+emit_16(727);
+emit_16(794);
+emit_16(728);
+emit_16(795);
+emit_16(729);
+emit_16(795);
+emit_16(728);
+emit_16(795);
+emit_16(729);
+emit_16(796);
+emit_16(730);
+emit_16(796);
+emit_16(729);
+emit_16(796);
+emit_16(730);
+emit_16(797);
+emit_16(731);
+emit_16(797);
+emit_16(730);
+emit_16(797);
+emit_16(731);
+emit_16(798);
+emit_16(732);
+emit_16(798);
+emit_16(731);
+emit_16(798);
+emit_16(732);
+emit_16(799);
+emit_16(733);
+emit_16(799);
+emit_16(732);
+emit_16(799);
+emit_16(733);
+emit_16(800);
+emit_16(734);
+emit_16(800);
+emit_16(733);
+emit_16(800);
+emit_16(734);
+emit_16(801);
+emit_16(735);
+emit_16(801);
+emit_16(734);
+emit_16(801);
+emit_16(735);
+emit_16(802);
+emit_16(736);
+emit_16(802);
+emit_16(735);
+emit_16(802);
+emit_16(736);
+emit_16(803);
+emit_16(737);
+emit_16(803);
+emit_16(736);
+emit_16(803);
+emit_16(737);
+emit_16(804);
+emit_16(738);
+emit_16(804);
+emit_16(737);
+emit_16(804);
+emit_16(738);
+emit_16(805);
+emit_16(739);
+emit_16(805);
+emit_16(738);
+emit_16(805);
+emit_16(739);
+emit_16(806);
+emit_16(740);
+emit_16(806);
+emit_16(739);
+emit_16(806);
+emit_16(740);
+emit_16(807);
+emit_16(741);
+emit_16(807);
+emit_16(740);
+emit_16(807);
+emit_16(741);
+emit_16(808);
+emit_16(742);
+emit_16(808);
+emit_16(741);
+emit_16(808);
+emit_16(742);
+emit_16(809);
+emit_16(743);
+emit_16(809);
+emit_16(742);
+emit_16(809);
+emit_16(743);
+emit_16(810);
+emit_16(744);
+emit_16(810);
+emit_16(743);
+emit_16(810);
+emit_16(744);
+emit_16(811);
+emit_16(745);
+emit_16(811);
+emit_16(744);
+emit_16(811);
+emit_16(745);
+emit_16(812);
+emit_16(746);
+emit_16(812);
+emit_16(745);
+emit_16(812);
+emit_16(746);
+emit_16(813);
+emit_16(747);
+emit_16(813);
+emit_16(746);
+emit_16(813);
+emit_16(747);
+emit_16(814);
+emit_16(748);
+emit_16(814);
+emit_16(747);
+emit_16(814);
+emit_16(748);
+emit_16(815);
+emit_16(749);
+emit_16(815);
+emit_16(748);
+emit_16(815);
+emit_16(749);
+emit_16(816);
+emit_16(750);
+emit_16(816);
+emit_16(749);
+emit_16(816);
+emit_16(750);
+emit_16(817);
+emit_16(751);
+emit_16(817);
+emit_16(750);
+emit_16(817);
+emit_16(751);
+emit_16(818);
+emit_16(752);
+emit_16(818);
+emit_16(751);
+emit_16(818);
+emit_16(752);
+emit_16(819);
+emit_16(753);
+emit_16(819);
+emit_16(752);
+emit_16(819);
+emit_16(753);
+emit_16(820);
+emit_16(754);
+emit_16(820);
+emit_16(753);
+emit_16(820);
+emit_16(754);
+emit_16(821);
+emit_16(755);
+emit_16(821);
+emit_16(754);
+emit_16(821);
+emit_16(755);
+emit_16(822);
+emit_16(756);
+emit_16(822);
+emit_16(755);
+emit_16(822);
+emit_16(756);
+emit_16(823);
+emit_16(757);
+emit_16(823);
+emit_16(756);
+emit_16(823);
+emit_16(757);
+emit_16(824);
+emit_16(758);
+emit_16(824);
+emit_16(757);
+emit_16(824);
+emit_16(758);
+emit_16(825);
+emit_16(759);
+emit_16(825);
+emit_16(758);
+emit_16(825);
+emit_16(759);
+emit_16(826);
+emit_16(760);
+emit_16(826);
+emit_16(759);
+emit_16(826);
+emit_16(760);
+emit_16(827);
+emit_16(761);
+emit_16(827);
+emit_16(760);
+emit_16(827);
+emit_16(761);
+emit_16(828);
+emit_16(762);
+emit_16(828);
+emit_16(761);
+emit_16(828);
+emit_16(762);
+emit_16(829);
+emit_16(763);
+emit_16(829);
+emit_16(762);
+emit_16(829);
+emit_16(763);
+emit_16(830);
+emit_16(764);
+emit_16(830);
+emit_16(763);
+emit_16(830);
+emit_16(764);
+emit_16(831);
+emit_16(765);
+emit_16(831);
+emit_16(764);
+emit_16(831);
+emit_16(765);
+emit_16(832);
+emit_16(766);
+emit_16(832);
+emit_16(765);
+emit_16(832);
+emit_16(766);
+emit_16(833);
+emit_16(767);
+emit_16(833);
+emit_16(766);
+emit_16(833);
+emit_16(767);
+emit_16(834);
+emit_16(768);
+emit_16(834);
+emit_16(767);
+emit_16(834);
+emit_16(768);
+emit_16(835);
+emit_16(769);
+emit_16(835);
+emit_16(768);
+emit_16(835);
+emit_16(769);
+emit_16(836);
+emit_16(770);
+emit_16(836);
+emit_16(769);
+emit_16(836);
+emit_16(770);
+emit_16(837);
+emit_16(771);
+emit_16(837);
+emit_16(770);
+emit_16(837);
+emit_16(771);
+emit_16(838);
+emit_16(772);
+emit_16(838);
+emit_16(771);
+emit_16(838);
+emit_16(772);
+emit_16(839);
+emit_16(773);
+emit_16(839);
+emit_16(772);
+emit_16(839);
+emit_16(773);
+emit_16(840);
+emit_16(774);
+emit_16(840);
+emit_16(773);
+emit_16(840);
+emit_16(774);
+emit_16(841);
+emit_16(775);
+emit_16(841);
+emit_16(774);
+emit_16(841);
+emit_16(775);
+emit_16(842);
+emit_16(776);
+emit_16(842);
+emit_16(775);
+emit_16(842);
+emit_16(776);
+emit_16(843);
+emit_16(777);
+emit_16(843);
+emit_16(776);
+emit_16(843);
+emit_16(777);
+emit_16(844);
+emit_16(778);
+emit_16(844);
+emit_16(777);
+emit_16(844);
+emit_16(778);
+emit_16(845);
+emit_16(779);
+emit_16(845);
+emit_16(778);
+emit_16(845);
+emit_16(779);
+emit_16(846);
+emit_16(780);
+emit_16(846);
+emit_16(779);
+emit_16(846);
+emit_16(780);
+emit_16(847);
+emit_16(781);
+emit_16(847);
+emit_16(780);
+emit_16(847);
+emit_16(781);
+emit_16(848);
+emit_16(782);
+emit_16(848);
+emit_16(781);
+emit_16(848);
+emit_16(782);
+emit_16(849);
+emit_16(783);
+emit_16(849);
+emit_16(782);
+emit_16(849);
+emit_16(783);
+emit_16(850);
+emit_16(784);
+emit_16(850);
+emit_16(783);
+emit_16(850);
+emit_16(784);
+emit_16(851);
+emit_16(785);
+emit_16(851);
+emit_16(784);
+emit_16(851);
+emit_16(785);
+emit_16(852);
+emit_16(786);
+emit_16(852);
+emit_16(785);
+emit_16(852);
+emit_16(786);
+emit_16(853);
+emit_16(787);
+emit_16(853);
+emit_16(786);
+emit_16(853);
+emit_16(787);
+emit_16(854);
+emit_16(788);
+emit_16(854);
+emit_16(787);
+emit_16(854);
+emit_16(788);
+emit_16(855);
+emit_16(789);
+emit_16(855);
+emit_16(788);
+emit_16(855);
+emit_16(789);
+emit_16(856);
+emit_16(790);
+emit_16(856);
+emit_16(789);
+emit_16(856);
+emit_16(790);
+emit_16(857);
+emit_16(791);
+emit_16(857);
+emit_16(790);
+emit_16(858);
+emit_16(792);
+emit_16(859);
+emit_16(793);
+emit_16(859);
+emit_16(792);
+emit_16(859);
+emit_16(793);
+emit_16(860);
+emit_16(794);
+emit_16(860);
+emit_16(793);
+emit_16(860);
+emit_16(794);
+emit_16(861);
+emit_16(795);
+emit_16(861);
+emit_16(794);
+emit_16(861);
+emit_16(795);
+emit_16(862);
+emit_16(796);
+emit_16(862);
+emit_16(795);
+emit_16(862);
+emit_16(796);
+emit_16(863);
+emit_16(797);
+emit_16(863);
+emit_16(796);
+emit_16(863);
+emit_16(797);
+emit_16(864);
+emit_16(798);
+emit_16(864);
+emit_16(797);
+emit_16(864);
+emit_16(798);
+emit_16(865);
+emit_16(799);
+emit_16(865);
+emit_16(798);
+emit_16(865);
+emit_16(799);
+emit_16(866);
+emit_16(800);
+emit_16(866);
+emit_16(799);
+emit_16(866);
+emit_16(800);
+emit_16(867);
+emit_16(801);
+emit_16(867);
+emit_16(800);
+emit_16(867);
+emit_16(801);
+emit_16(868);
+emit_16(802);
+emit_16(868);
+emit_16(801);
+emit_16(868);
+emit_16(802);
+emit_16(869);
+emit_16(803);
+emit_16(869);
+emit_16(802);
+emit_16(869);
+emit_16(803);
+emit_16(870);
+emit_16(804);
+emit_16(870);
+emit_16(803);
+emit_16(870);
+emit_16(804);
+emit_16(871);
+emit_16(805);
+emit_16(871);
+emit_16(804);
+emit_16(871);
+emit_16(805);
+emit_16(872);
+emit_16(806);
+emit_16(872);
+emit_16(805);
+emit_16(872);
+emit_16(806);
+emit_16(873);
+emit_16(807);
+emit_16(873);
+emit_16(806);
+emit_16(873);
+emit_16(807);
+emit_16(874);
+emit_16(808);
+emit_16(874);
+emit_16(807);
+emit_16(874);
+emit_16(808);
+emit_16(875);
+emit_16(809);
+emit_16(875);
+emit_16(808);
+emit_16(875);
+emit_16(809);
+emit_16(876);
+emit_16(810);
+emit_16(876);
+emit_16(809);
+emit_16(876);
+emit_16(810);
+emit_16(877);
+emit_16(811);
+emit_16(877);
+emit_16(810);
+emit_16(877);
+emit_16(811);
+emit_16(878);
+emit_16(812);
+emit_16(878);
+emit_16(811);
+emit_16(878);
+emit_16(812);
+emit_16(879);
+emit_16(813);
+emit_16(879);
+emit_16(812);
+emit_16(879);
+emit_16(813);
+emit_16(880);
+emit_16(814);
+emit_16(880);
+emit_16(813);
+emit_16(880);
+emit_16(814);
+emit_16(881);
+emit_16(815);
+emit_16(881);
+emit_16(814);
+emit_16(881);
+emit_16(815);
+emit_16(882);
+emit_16(816);
+emit_16(882);
+emit_16(815);
+emit_16(882);
+emit_16(816);
+emit_16(883);
+emit_16(817);
+emit_16(883);
+emit_16(816);
+emit_16(883);
+emit_16(817);
+emit_16(884);
+emit_16(818);
+emit_16(884);
+emit_16(817);
+emit_16(884);
+emit_16(818);
+emit_16(885);
+emit_16(819);
+emit_16(885);
+emit_16(818);
+emit_16(885);
+emit_16(819);
+emit_16(886);
+emit_16(820);
+emit_16(886);
+emit_16(819);
+emit_16(886);
+emit_16(820);
+emit_16(887);
+emit_16(821);
+emit_16(887);
+emit_16(820);
+emit_16(887);
+emit_16(821);
+emit_16(888);
+emit_16(822);
+emit_16(888);
+emit_16(821);
+emit_16(888);
+emit_16(822);
+emit_16(889);
+emit_16(823);
+emit_16(889);
+emit_16(822);
+emit_16(889);
+emit_16(823);
+emit_16(890);
+emit_16(824);
+emit_16(890);
+emit_16(823);
+emit_16(890);
+emit_16(824);
+emit_16(891);
+emit_16(825);
+emit_16(891);
+emit_16(824);
+emit_16(891);
+emit_16(825);
+emit_16(892);
+emit_16(826);
+emit_16(892);
+emit_16(825);
+emit_16(892);
+emit_16(826);
+emit_16(893);
+emit_16(827);
+emit_16(893);
+emit_16(826);
+emit_16(893);
+emit_16(827);
+emit_16(894);
+emit_16(828);
+emit_16(894);
+emit_16(827);
+emit_16(894);
+emit_16(828);
+emit_16(895);
+emit_16(829);
+emit_16(895);
+emit_16(828);
+emit_16(895);
+emit_16(829);
+emit_16(896);
+emit_16(830);
+emit_16(896);
+emit_16(829);
+emit_16(896);
+emit_16(830);
+emit_16(897);
+emit_16(831);
+emit_16(897);
+emit_16(830);
+emit_16(897);
+emit_16(831);
+emit_16(898);
+emit_16(832);
+emit_16(898);
+emit_16(831);
+emit_16(898);
+emit_16(832);
+emit_16(899);
+emit_16(833);
+emit_16(899);
+emit_16(832);
+emit_16(899);
+emit_16(833);
+emit_16(900);
+emit_16(834);
+emit_16(900);
+emit_16(833);
+emit_16(900);
+emit_16(834);
+emit_16(901);
+emit_16(835);
+emit_16(901);
+emit_16(834);
+emit_16(901);
+emit_16(835);
+emit_16(902);
+emit_16(836);
+emit_16(902);
+emit_16(835);
+emit_16(902);
+emit_16(836);
+emit_16(903);
+emit_16(837);
+emit_16(903);
+emit_16(836);
+emit_16(903);
+emit_16(837);
+emit_16(904);
+emit_16(838);
+emit_16(904);
+emit_16(837);
+emit_16(904);
+emit_16(838);
+emit_16(905);
+emit_16(839);
+emit_16(905);
+emit_16(838);
+emit_16(905);
+emit_16(839);
+emit_16(906);
+emit_16(840);
+emit_16(906);
+emit_16(839);
+emit_16(906);
+emit_16(840);
+emit_16(907);
+emit_16(841);
+emit_16(907);
+emit_16(840);
+emit_16(907);
+emit_16(841);
+emit_16(908);
+emit_16(842);
+emit_16(908);
+emit_16(841);
+emit_16(908);
+emit_16(842);
+emit_16(909);
+emit_16(843);
+emit_16(909);
+emit_16(842);
+emit_16(909);
+emit_16(843);
+emit_16(910);
+emit_16(844);
+emit_16(910);
+emit_16(843);
+emit_16(910);
+emit_16(844);
+emit_16(911);
+emit_16(845);
+emit_16(911);
+emit_16(844);
+emit_16(911);
+emit_16(845);
+emit_16(912);
+emit_16(846);
+emit_16(912);
+emit_16(845);
+emit_16(912);
+emit_16(846);
+emit_16(913);
+emit_16(847);
+emit_16(913);
+emit_16(846);
+emit_16(913);
+emit_16(847);
+emit_16(914);
+emit_16(848);
+emit_16(914);
+emit_16(847);
+emit_16(914);
+emit_16(848);
+emit_16(915);
+emit_16(849);
+emit_16(915);
+emit_16(848);
+emit_16(915);
+emit_16(849);
+emit_16(916);
+emit_16(850);
+emit_16(916);
+emit_16(849);
+emit_16(916);
+emit_16(850);
+emit_16(917);
+emit_16(851);
+emit_16(917);
+emit_16(850);
+emit_16(917);
+emit_16(851);
+emit_16(918);
+emit_16(852);
+emit_16(918);
+emit_16(851);
+emit_16(918);
+emit_16(852);
+emit_16(919);
+emit_16(853);
+emit_16(919);
+emit_16(852);
+emit_16(919);
+emit_16(853);
+emit_16(920);
+emit_16(854);
+emit_16(920);
+emit_16(853);
+emit_16(920);
+emit_16(854);
+emit_16(921);
+emit_16(855);
+emit_16(921);
+emit_16(854);
+emit_16(921);
+emit_16(855);
+emit_16(922);
+emit_16(856);
+emit_16(922);
+emit_16(855);
+emit_16(922);
+emit_16(856);
+emit_16(923);
+emit_16(857);
+emit_16(923);
+emit_16(856);
+emit_16(924);
+emit_16(858);
+emit_16(925);
+emit_16(859);
+emit_16(925);
+emit_16(858);
+emit_16(925);
+emit_16(859);
+emit_16(926);
+emit_16(860);
+emit_16(926);
+emit_16(859);
+emit_16(926);
+emit_16(860);
+emit_16(927);
+emit_16(861);
+emit_16(927);
+emit_16(860);
+emit_16(927);
+emit_16(861);
+emit_16(928);
+emit_16(862);
+emit_16(928);
+emit_16(861);
+emit_16(928);
+emit_16(862);
+emit_16(929);
+emit_16(863);
+emit_16(929);
+emit_16(862);
+emit_16(929);
+emit_16(863);
+emit_16(930);
+emit_16(864);
+emit_16(930);
+emit_16(863);
+emit_16(930);
+emit_16(864);
+emit_16(931);
+emit_16(865);
+emit_16(931);
+emit_16(864);
+emit_16(931);
+emit_16(865);
+emit_16(932);
+emit_16(866);
+emit_16(932);
+emit_16(865);
+emit_16(932);
+emit_16(866);
+emit_16(933);
+emit_16(867);
+emit_16(933);
+emit_16(866);
+emit_16(933);
+emit_16(867);
+emit_16(934);
+emit_16(868);
+emit_16(934);
+emit_16(867);
+emit_16(934);
+emit_16(868);
+emit_16(935);
+emit_16(869);
+emit_16(935);
+emit_16(868);
+emit_16(935);
+emit_16(869);
+emit_16(936);
+emit_16(870);
+emit_16(936);
+emit_16(869);
+emit_16(936);
+emit_16(870);
+emit_16(937);
+emit_16(871);
+emit_16(937);
+emit_16(870);
+emit_16(937);
+emit_16(871);
+emit_16(938);
+emit_16(872);
+emit_16(938);
+emit_16(871);
+emit_16(938);
+emit_16(872);
+emit_16(939);
+emit_16(873);
+emit_16(939);
+emit_16(872);
+emit_16(939);
+emit_16(873);
+emit_16(940);
+emit_16(874);
+emit_16(940);
+emit_16(873);
+emit_16(940);
+emit_16(874);
+emit_16(941);
+emit_16(875);
+emit_16(941);
+emit_16(874);
+emit_16(941);
+emit_16(875);
+emit_16(942);
+emit_16(876);
+emit_16(942);
+emit_16(875);
+emit_16(942);
+emit_16(876);
+emit_16(943);
+emit_16(877);
+emit_16(943);
+emit_16(876);
+emit_16(943);
+emit_16(877);
+emit_16(944);
+emit_16(878);
+emit_16(944);
+emit_16(877);
+emit_16(944);
+emit_16(878);
+emit_16(945);
+emit_16(879);
+emit_16(945);
+emit_16(878);
+emit_16(945);
+emit_16(879);
+emit_16(946);
+emit_16(880);
+emit_16(946);
+emit_16(879);
+emit_16(946);
+emit_16(880);
+emit_16(947);
+emit_16(881);
+emit_16(947);
+emit_16(880);
+emit_16(947);
+emit_16(881);
+emit_16(948);
+emit_16(882);
+emit_16(948);
+emit_16(881);
+emit_16(948);
+emit_16(882);
+emit_16(949);
+emit_16(883);
+emit_16(949);
+emit_16(882);
+emit_16(949);
+emit_16(883);
+emit_16(950);
+emit_16(884);
+emit_16(950);
+emit_16(883);
+emit_16(950);
+emit_16(884);
+emit_16(951);
+emit_16(885);
+emit_16(951);
+emit_16(884);
+emit_16(951);
+emit_16(885);
+emit_16(952);
+emit_16(886);
+emit_16(952);
+emit_16(885);
+emit_16(952);
+emit_16(886);
+emit_16(953);
+emit_16(887);
+emit_16(953);
+emit_16(886);
+emit_16(953);
+emit_16(887);
+emit_16(954);
+emit_16(888);
+emit_16(954);
+emit_16(887);
+emit_16(954);
+emit_16(888);
+emit_16(955);
+emit_16(889);
+emit_16(955);
+emit_16(888);
+emit_16(955);
+emit_16(889);
+emit_16(956);
+emit_16(890);
+emit_16(956);
+emit_16(889);
+emit_16(956);
+emit_16(890);
+emit_16(957);
+emit_16(891);
+emit_16(957);
+emit_16(890);
+emit_16(957);
+emit_16(891);
+emit_16(958);
+emit_16(892);
+emit_16(958);
+emit_16(891);
+emit_16(958);
+emit_16(892);
+emit_16(959);
+emit_16(893);
+emit_16(959);
+emit_16(892);
+emit_16(959);
+emit_16(893);
+emit_16(960);
+emit_16(894);
+emit_16(960);
+emit_16(893);
+emit_16(960);
+emit_16(894);
+emit_16(961);
+emit_16(895);
+emit_16(961);
+emit_16(894);
+emit_16(961);
+emit_16(895);
+emit_16(962);
+emit_16(896);
+emit_16(962);
+emit_16(895);
+emit_16(962);
+emit_16(896);
+emit_16(963);
+emit_16(897);
+emit_16(963);
+emit_16(896);
+emit_16(963);
+emit_16(897);
+emit_16(964);
+emit_16(898);
+emit_16(964);
+emit_16(897);
+emit_16(964);
+emit_16(898);
+emit_16(965);
+emit_16(899);
+emit_16(965);
+emit_16(898);
+emit_16(965);
+emit_16(899);
+emit_16(966);
+emit_16(900);
+emit_16(966);
+emit_16(899);
+emit_16(966);
+emit_16(900);
+emit_16(967);
+emit_16(901);
+emit_16(967);
+emit_16(900);
+emit_16(967);
+emit_16(901);
+emit_16(968);
+emit_16(902);
+emit_16(968);
+emit_16(901);
+emit_16(968);
+emit_16(902);
+emit_16(969);
+emit_16(903);
+emit_16(969);
+emit_16(902);
+emit_16(969);
+emit_16(903);
+emit_16(970);
+emit_16(904);
+emit_16(970);
+emit_16(903);
+emit_16(970);
+emit_16(904);
+emit_16(971);
+emit_16(905);
+emit_16(971);
+emit_16(904);
+emit_16(971);
+emit_16(905);
+emit_16(972);
+emit_16(906);
+emit_16(972);
+emit_16(905);
+emit_16(972);
+emit_16(906);
+emit_16(973);
+emit_16(907);
+emit_16(973);
+emit_16(906);
+emit_16(973);
+emit_16(907);
+emit_16(974);
+emit_16(908);
+emit_16(974);
+emit_16(907);
+emit_16(974);
+emit_16(908);
+emit_16(975);
+emit_16(909);
+emit_16(975);
+emit_16(908);
+emit_16(975);
+emit_16(909);
+emit_16(976);
+emit_16(910);
+emit_16(976);
+emit_16(909);
+emit_16(976);
+emit_16(910);
+emit_16(977);
+emit_16(911);
+emit_16(977);
+emit_16(910);
+emit_16(977);
+emit_16(911);
+emit_16(978);
+emit_16(912);
+emit_16(978);
+emit_16(911);
+emit_16(978);
+emit_16(912);
+emit_16(979);
+emit_16(913);
+emit_16(979);
+emit_16(912);
+emit_16(979);
+emit_16(913);
+emit_16(980);
+emit_16(914);
+emit_16(980);
+emit_16(913);
+emit_16(980);
+emit_16(914);
+emit_16(981);
+emit_16(915);
+emit_16(981);
+emit_16(914);
+emit_16(981);
+emit_16(915);
+emit_16(982);
+emit_16(916);
+emit_16(982);
+emit_16(915);
+emit_16(982);
+emit_16(916);
+emit_16(983);
+emit_16(917);
+emit_16(983);
+emit_16(916);
+emit_16(983);
+emit_16(917);
+emit_16(984);
+emit_16(918);
+emit_16(984);
+emit_16(917);
+emit_16(984);
+emit_16(918);
+emit_16(985);
+emit_16(919);
+emit_16(985);
+emit_16(918);
+emit_16(985);
+emit_16(919);
+emit_16(986);
+emit_16(920);
+emit_16(986);
+emit_16(919);
+emit_16(986);
+emit_16(920);
+emit_16(987);
+emit_16(921);
+emit_16(987);
+emit_16(920);
+emit_16(987);
+emit_16(921);
+emit_16(988);
+emit_16(922);
+emit_16(988);
+emit_16(921);
+emit_16(988);
+emit_16(922);
+emit_16(989);
+emit_16(923);
+emit_16(989);
+emit_16(922);
+emit_16(990);
+emit_16(924);
+emit_16(991);
+emit_16(925);
+emit_16(991);
+emit_16(924);
+emit_16(991);
+emit_16(925);
+emit_16(992);
+emit_16(926);
+emit_16(992);
+emit_16(925);
+emit_16(992);
+emit_16(926);
+emit_16(993);
+emit_16(927);
+emit_16(993);
+emit_16(926);
+emit_16(993);
+emit_16(927);
+emit_16(994);
+emit_16(928);
+emit_16(994);
+emit_16(927);
+emit_16(994);
+emit_16(928);
+emit_16(995);
+emit_16(929);
+emit_16(995);
+emit_16(928);
+emit_16(995);
+emit_16(929);
+emit_16(996);
+emit_16(930);
+emit_16(996);
+emit_16(929);
+emit_16(996);
+emit_16(930);
+emit_16(997);
+emit_16(931);
+emit_16(997);
+emit_16(930);
+emit_16(997);
+emit_16(931);
+emit_16(998);
+emit_16(932);
+emit_16(998);
+emit_16(931);
+emit_16(998);
+emit_16(932);
+emit_16(999);
+emit_16(933);
+emit_16(999);
+emit_16(932);
+emit_16(999);
+emit_16(933);
+emit_16(1000);
+emit_16(934);
+emit_16(1000);
+emit_16(933);
+emit_16(1000);
+emit_16(934);
+emit_16(1001);
+emit_16(935);
+emit_16(1001);
+emit_16(934);
+emit_16(1001);
+emit_16(935);
+emit_16(1002);
+emit_16(936);
+emit_16(1002);
+emit_16(935);
+emit_16(1002);
+emit_16(936);
+emit_16(1003);
+emit_16(937);
+emit_16(1003);
+emit_16(936);
+emit_16(1003);
+emit_16(937);
+emit_16(1004);
+emit_16(938);
+emit_16(1004);
+emit_16(937);
+emit_16(1004);
+emit_16(938);
+emit_16(1005);
+emit_16(939);
+emit_16(1005);
+emit_16(938);
+emit_16(1005);
+emit_16(939);
+emit_16(1006);
+emit_16(940);
+emit_16(1006);
+emit_16(939);
+emit_16(1006);
+emit_16(940);
+emit_16(1007);
+emit_16(941);
+emit_16(1007);
+emit_16(940);
+emit_16(1007);
+emit_16(941);
+emit_16(1008);
+emit_16(942);
+emit_16(1008);
+emit_16(941);
+emit_16(1008);
+emit_16(942);
+emit_16(1009);
+emit_16(943);
+emit_16(1009);
+emit_16(942);
+emit_16(1009);
+emit_16(943);
+emit_16(1010);
+emit_16(944);
+emit_16(1010);
+emit_16(943);
+emit_16(1010);
+emit_16(944);
+emit_16(1011);
+emit_16(945);
+emit_16(1011);
+emit_16(944);
+emit_16(1011);
+emit_16(945);
+emit_16(1012);
+emit_16(946);
+emit_16(1012);
+emit_16(945);
+emit_16(1012);
+emit_16(946);
+emit_16(1013);
+emit_16(947);
+emit_16(1013);
+emit_16(946);
+emit_16(1013);
+emit_16(947);
+emit_16(1014);
+emit_16(948);
+emit_16(1014);
+emit_16(947);
+emit_16(1014);
+emit_16(948);
+emit_16(1015);
+emit_16(949);
+emit_16(1015);
+emit_16(948);
+emit_16(1015);
+emit_16(949);
+emit_16(1016);
+emit_16(950);
+emit_16(1016);
+emit_16(949);
+emit_16(1016);
+emit_16(950);
+emit_16(1017);
+emit_16(951);
+emit_16(1017);
+emit_16(950);
+emit_16(1017);
+emit_16(951);
+emit_16(1018);
+emit_16(952);
+emit_16(1018);
+emit_16(951);
+emit_16(1018);
+emit_16(952);
+emit_16(1019);
+emit_16(953);
+emit_16(1019);
+emit_16(952);
+emit_16(1019);
+emit_16(953);
+emit_16(1020);
+emit_16(954);
+emit_16(1020);
+emit_16(953);
+emit_16(1020);
+emit_16(954);
+emit_16(1021);
+emit_16(955);
+emit_16(1021);
+emit_16(954);
+emit_16(1021);
+emit_16(955);
+emit_16(1022);
+emit_16(956);
+emit_16(1022);
+emit_16(955);
+emit_16(1022);
+emit_16(956);
+emit_16(1023);
+emit_16(957);
+emit_16(1023);
+emit_16(956);
+emit_16(1023);
+emit_16(957);
+emit_16(1024);
+emit_16(958);
+emit_16(1024);
+emit_16(957);
+emit_16(1024);
+emit_16(958);
+emit_16(1025);
+emit_16(959);
+emit_16(1025);
+emit_16(958);
+emit_16(1025);
+emit_16(959);
+emit_16(1026);
+emit_16(960);
+emit_16(1026);
+emit_16(959);
+emit_16(1026);
+emit_16(960);
+emit_16(1027);
+emit_16(961);
+emit_16(1027);
+emit_16(960);
+emit_16(1027);
+emit_16(961);
+emit_16(1028);
+emit_16(962);
+emit_16(1028);
+emit_16(961);
+emit_16(1028);
+emit_16(962);
+emit_16(1029);
+emit_16(963);
+emit_16(1029);
+emit_16(962);
+emit_16(1029);
+emit_16(963);
+emit_16(1030);
+emit_16(964);
+emit_16(1030);
+emit_16(963);
+emit_16(1030);
+emit_16(964);
+emit_16(1031);
+emit_16(965);
+emit_16(1031);
+emit_16(964);
+emit_16(1031);
+emit_16(965);
+emit_16(1032);
+emit_16(966);
+emit_16(1032);
+emit_16(965);
+emit_16(1032);
+emit_16(966);
+emit_16(1033);
+emit_16(967);
+emit_16(1033);
+emit_16(966);
+emit_16(1033);
+emit_16(967);
+emit_16(1034);
+emit_16(968);
+emit_16(1034);
+emit_16(967);
+emit_16(1034);
+emit_16(968);
+emit_16(1035);
+emit_16(969);
+emit_16(1035);
+emit_16(968);
+emit_16(1035);
+emit_16(969);
+emit_16(1036);
+emit_16(970);
+emit_16(1036);
+emit_16(969);
+emit_16(1036);
+emit_16(970);
+emit_16(1037);
+emit_16(971);
+emit_16(1037);
+emit_16(970);
+emit_16(1037);
+emit_16(971);
+emit_16(1038);
+emit_16(972);
+emit_16(1038);
+emit_16(971);
+emit_16(1038);
+emit_16(972);
+emit_16(1039);
+emit_16(973);
+emit_16(1039);
+emit_16(972);
+emit_16(1039);
+emit_16(973);
+emit_16(1040);
+emit_16(974);
+emit_16(1040);
+emit_16(973);
+emit_16(1040);
+emit_16(974);
+emit_16(1041);
+emit_16(975);
+emit_16(1041);
+emit_16(974);
+emit_16(1041);
+emit_16(975);
+emit_16(1042);
+emit_16(976);
+emit_16(1042);
+emit_16(975);
+emit_16(1042);
+emit_16(976);
+emit_16(1043);
+emit_16(977);
+emit_16(1043);
+emit_16(976);
+emit_16(1043);
+emit_16(977);
+emit_16(1044);
+emit_16(978);
+emit_16(1044);
+emit_16(977);
+emit_16(1044);
+emit_16(978);
+emit_16(1045);
+emit_16(979);
+emit_16(1045);
+emit_16(978);
+emit_16(1045);
+emit_16(979);
+emit_16(1046);
+emit_16(980);
+emit_16(1046);
+emit_16(979);
+emit_16(1046);
+emit_16(980);
+emit_16(1047);
+emit_16(981);
+emit_16(1047);
+emit_16(980);
+emit_16(1047);
+emit_16(981);
+emit_16(1048);
+emit_16(982);
+emit_16(1048);
+emit_16(981);
+emit_16(1048);
+emit_16(982);
+emit_16(1049);
+emit_16(983);
+emit_16(1049);
+emit_16(982);
+emit_16(1049);
+emit_16(983);
+emit_16(1050);
+emit_16(984);
+emit_16(1050);
+emit_16(983);
+emit_16(1050);
+emit_16(984);
+emit_16(1051);
+emit_16(985);
+emit_16(1051);
+emit_16(984);
+emit_16(1051);
+emit_16(985);
+emit_16(1052);
+emit_16(986);
+emit_16(1052);
+emit_16(985);
+emit_16(1052);
+emit_16(986);
+emit_16(1053);
+emit_16(987);
+emit_16(1053);
+emit_16(986);
+emit_16(1053);
+emit_16(987);
+emit_16(1054);
+emit_16(988);
+emit_16(1054);
+emit_16(987);
+emit_16(1054);
+emit_16(988);
+emit_16(1055);
+emit_16(989);
+emit_16(1055);
+emit_16(988);
+emit_16(1056);
+emit_16(990);
+emit_16(1057);
+emit_16(991);
+emit_16(1057);
+emit_16(990);
+emit_16(1057);
+emit_16(991);
+emit_16(1058);
+emit_16(992);
+emit_16(1058);
+emit_16(991);
+emit_16(1058);
+emit_16(992);
+emit_16(1059);
+emit_16(993);
+emit_16(1059);
+emit_16(992);
+emit_16(1059);
+emit_16(993);
+emit_16(1060);
+emit_16(994);
+emit_16(1060);
+emit_16(993);
+emit_16(1060);
+emit_16(994);
+emit_16(1061);
+emit_16(995);
+emit_16(1061);
+emit_16(994);
+emit_16(1061);
+emit_16(995);
+emit_16(1062);
+emit_16(996);
+emit_16(1062);
+emit_16(995);
+emit_16(1062);
+emit_16(996);
+emit_16(1063);
+emit_16(997);
+emit_16(1063);
+emit_16(996);
+emit_16(1063);
+emit_16(997);
+emit_16(1064);
+emit_16(998);
+emit_16(1064);
+emit_16(997);
+emit_16(1064);
+emit_16(998);
+emit_16(1065);
+emit_16(999);
+emit_16(1065);
+emit_16(998);
+emit_16(1065);
+emit_16(999);
+emit_16(1066);
+emit_16(1000);
+emit_16(1066);
+emit_16(999);
+emit_16(1066);
+emit_16(1000);
+emit_16(1067);
+emit_16(1001);
+emit_16(1067);
+emit_16(1000);
+emit_16(1067);
+emit_16(1001);
+emit_16(1068);
+emit_16(1002);
+emit_16(1068);
+emit_16(1001);
+emit_16(1068);
+emit_16(1002);
+emit_16(1069);
+emit_16(1003);
+emit_16(1069);
+emit_16(1002);
+emit_16(1069);
+emit_16(1003);
+emit_16(1070);
+emit_16(1004);
+emit_16(1070);
+emit_16(1003);
+emit_16(1070);
+emit_16(1004);
+emit_16(1071);
+emit_16(1005);
+emit_16(1071);
+emit_16(1004);
+emit_16(1071);
+emit_16(1005);
+emit_16(1072);
+emit_16(1006);
+emit_16(1072);
+emit_16(1005);
+emit_16(1072);
+emit_16(1006);
+emit_16(1073);
+emit_16(1007);
+emit_16(1073);
+emit_16(1006);
+emit_16(1073);
+emit_16(1007);
+emit_16(1074);
+emit_16(1008);
+emit_16(1074);
+emit_16(1007);
+emit_16(1074);
+emit_16(1008);
+emit_16(1075);
+emit_16(1009);
+emit_16(1075);
+emit_16(1008);
+emit_16(1075);
+emit_16(1009);
+emit_16(1076);
+emit_16(1010);
+emit_16(1076);
+emit_16(1009);
+emit_16(1076);
+emit_16(1010);
+emit_16(1077);
+emit_16(1011);
+emit_16(1077);
+emit_16(1010);
+emit_16(1077);
+emit_16(1011);
+emit_16(1078);
+emit_16(1012);
+emit_16(1078);
+emit_16(1011);
+emit_16(1078);
+emit_16(1012);
+emit_16(1079);
+emit_16(1013);
+emit_16(1079);
+emit_16(1012);
+emit_16(1079);
+emit_16(1013);
+emit_16(1080);
+emit_16(1014);
+emit_16(1080);
+emit_16(1013);
+emit_16(1080);
+emit_16(1014);
+emit_16(1081);
+emit_16(1015);
+emit_16(1081);
+emit_16(1014);
+emit_16(1081);
+emit_16(1015);
+emit_16(1082);
+emit_16(1016);
+emit_16(1082);
+emit_16(1015);
+emit_16(1082);
+emit_16(1016);
+emit_16(1083);
+emit_16(1017);
+emit_16(1083);
+emit_16(1016);
+emit_16(1083);
+emit_16(1017);
+emit_16(1084);
+emit_16(1018);
+emit_16(1084);
+emit_16(1017);
+emit_16(1084);
+emit_16(1018);
+emit_16(1085);
+emit_16(1019);
+emit_16(1085);
+emit_16(1018);
+emit_16(1085);
+emit_16(1019);
+emit_16(1086);
+emit_16(1020);
+emit_16(1086);
+emit_16(1019);
+emit_16(1086);
+emit_16(1020);
+emit_16(1087);
+emit_16(1021);
+emit_16(1087);
+emit_16(1020);
+emit_16(1087);
+emit_16(1021);
+emit_16(1088);
+emit_16(1022);
+emit_16(1088);
+emit_16(1021);
+emit_16(1088);
+emit_16(1022);
+emit_16(1089);
+emit_16(1023);
+emit_16(1089);
+emit_16(1022);
+emit_16(1089);
+emit_16(1023);
+emit_16(1090);
+emit_16(1024);
+emit_16(1090);
+emit_16(1023);
+emit_16(1090);
+emit_16(1024);
+emit_16(1091);
+emit_16(1025);
+emit_16(1091);
+emit_16(1024);
+emit_16(1091);
+emit_16(1025);
+emit_16(1092);
+emit_16(1026);
+emit_16(1092);
+emit_16(1025);
+emit_16(1092);
+emit_16(1026);
+emit_16(1093);
+emit_16(1027);
+emit_16(1093);
+emit_16(1026);
+emit_16(1093);
+emit_16(1027);
+emit_16(1094);
+emit_16(1028);
+emit_16(1094);
+emit_16(1027);
+emit_16(1094);
+emit_16(1028);
+emit_16(1095);
+emit_16(1029);
+emit_16(1095);
+emit_16(1028);
+emit_16(1095);
+emit_16(1029);
+emit_16(1096);
+emit_16(1030);
+emit_16(1096);
+emit_16(1029);
+emit_16(1096);
+emit_16(1030);
+emit_16(1097);
+emit_16(1031);
+emit_16(1097);
+emit_16(1030);
+emit_16(1097);
+emit_16(1031);
+emit_16(1098);
+emit_16(1032);
+emit_16(1098);
+emit_16(1031);
+emit_16(1098);
+emit_16(1032);
+emit_16(1099);
+emit_16(1033);
+emit_16(1099);
+emit_16(1032);
+emit_16(1099);
+emit_16(1033);
+emit_16(1100);
+emit_16(1034);
+emit_16(1100);
+emit_16(1033);
+emit_16(1100);
+emit_16(1034);
+emit_16(1101);
+emit_16(1035);
+emit_16(1101);
+emit_16(1034);
+emit_16(1101);
+emit_16(1035);
+emit_16(1102);
+emit_16(1036);
+emit_16(1102);
+emit_16(1035);
+emit_16(1102);
+emit_16(1036);
+emit_16(1103);
+emit_16(1037);
+emit_16(1103);
+emit_16(1036);
+emit_16(1103);
+emit_16(1037);
+emit_16(1104);
+emit_16(1038);
+emit_16(1104);
+emit_16(1037);
+emit_16(1104);
+emit_16(1038);
+emit_16(1105);
+emit_16(1039);
+emit_16(1105);
+emit_16(1038);
+emit_16(1105);
+emit_16(1039);
+emit_16(1106);
+emit_16(1040);
+emit_16(1106);
+emit_16(1039);
+emit_16(1106);
+emit_16(1040);
+emit_16(1107);
+emit_16(1041);
+emit_16(1107);
+emit_16(1040);
+emit_16(1107);
+emit_16(1041);
+emit_16(1108);
+emit_16(1042);
+emit_16(1108);
+emit_16(1041);
+emit_16(1108);
+emit_16(1042);
+emit_16(1109);
+emit_16(1043);
+emit_16(1109);
+emit_16(1042);
+emit_16(1109);
+emit_16(1043);
+emit_16(1110);
+emit_16(1044);
+emit_16(1110);
+emit_16(1043);
+emit_16(1110);
+emit_16(1044);
+emit_16(1111);
+emit_16(1045);
+emit_16(1111);
+emit_16(1044);
+emit_16(1111);
+emit_16(1045);
+emit_16(1112);
+emit_16(1046);
+emit_16(1112);
+emit_16(1045);
+emit_16(1112);
+emit_16(1046);
+emit_16(1113);
+emit_16(1047);
+emit_16(1113);
+emit_16(1046);
+emit_16(1113);
+emit_16(1047);
+emit_16(1114);
+emit_16(1048);
+emit_16(1114);
+emit_16(1047);
+emit_16(1114);
+emit_16(1048);
+emit_16(1115);
+emit_16(1049);
+emit_16(1115);
+emit_16(1048);
+emit_16(1115);
+emit_16(1049);
+emit_16(1116);
+emit_16(1050);
+emit_16(1116);
+emit_16(1049);
+emit_16(1116);
+emit_16(1050);
+emit_16(1117);
+emit_16(1051);
+emit_16(1117);
+emit_16(1050);
+emit_16(1117);
+emit_16(1051);
+emit_16(1118);
+emit_16(1052);
+emit_16(1118);
+emit_16(1051);
+emit_16(1118);
+emit_16(1052);
+emit_16(1119);
+emit_16(1053);
+emit_16(1119);
+emit_16(1052);
+emit_16(1119);
+emit_16(1053);
+emit_16(1120);
+emit_16(1054);
+emit_16(1120);
+emit_16(1053);
+emit_16(1120);
+emit_16(1054);
+emit_16(1121);
+emit_16(1055);
+emit_16(1121);
+emit_16(1054);
+emit_16(1122);
+emit_16(1056);
+emit_16(1123);
+emit_16(1057);
+emit_16(1123);
+emit_16(1056);
+emit_16(1123);
+emit_16(1057);
+emit_16(1124);
+emit_16(1058);
+emit_16(1124);
+emit_16(1057);
+emit_16(1124);
+emit_16(1058);
+emit_16(1125);
+emit_16(1059);
+emit_16(1125);
+emit_16(1058);
+emit_16(1125);
+emit_16(1059);
+emit_16(1126);
+emit_16(1060);
+emit_16(1126);
+emit_16(1059);
+emit_16(1126);
+emit_16(1060);
+emit_16(1127);
+emit_16(1061);
+emit_16(1127);
+emit_16(1060);
+emit_16(1127);
+emit_16(1061);
+emit_16(1128);
+emit_16(1062);
+emit_16(1128);
+emit_16(1061);
+emit_16(1128);
+emit_16(1062);
+emit_16(1129);
+emit_16(1063);
+emit_16(1129);
+emit_16(1062);
+emit_16(1129);
+emit_16(1063);
+emit_16(1130);
+emit_16(1064);
+emit_16(1130);
+emit_16(1063);
+emit_16(1130);
+emit_16(1064);
+emit_16(1131);
+emit_16(1065);
+emit_16(1131);
+emit_16(1064);
+emit_16(1131);
+emit_16(1065);
+emit_16(1132);
+emit_16(1066);
+emit_16(1132);
+emit_16(1065);
+emit_16(1132);
+emit_16(1066);
+emit_16(1133);
+emit_16(1067);
+emit_16(1133);
+emit_16(1066);
+emit_16(1133);
+emit_16(1067);
+emit_16(1134);
+emit_16(1068);
+emit_16(1134);
+emit_16(1067);
+emit_16(1134);
+emit_16(1068);
+emit_16(1135);
+emit_16(1069);
+emit_16(1135);
+emit_16(1068);
+emit_16(1135);
+emit_16(1069);
+emit_16(1136);
+emit_16(1070);
+emit_16(1136);
+emit_16(1069);
+emit_16(1136);
+emit_16(1070);
+emit_16(1137);
+emit_16(1071);
+emit_16(1137);
+emit_16(1070);
+emit_16(1137);
+emit_16(1071);
+emit_16(1138);
+emit_16(1072);
+emit_16(1138);
+emit_16(1071);
+emit_16(1138);
+emit_16(1072);
+emit_16(1139);
+emit_16(1073);
+emit_16(1139);
+emit_16(1072);
+emit_16(1139);
+emit_16(1073);
+emit_16(1140);
+emit_16(1074);
+emit_16(1140);
+emit_16(1073);
+emit_16(1140);
+emit_16(1074);
+emit_16(1141);
+emit_16(1075);
+emit_16(1141);
+emit_16(1074);
+emit_16(1141);
+emit_16(1075);
+emit_16(1142);
+emit_16(1076);
+emit_16(1142);
+emit_16(1075);
+emit_16(1142);
+emit_16(1076);
+emit_16(1143);
+emit_16(1077);
+emit_16(1143);
+emit_16(1076);
+emit_16(1143);
+emit_16(1077);
+emit_16(1144);
+emit_16(1078);
+emit_16(1144);
+emit_16(1077);
+emit_16(1144);
+emit_16(1078);
+emit_16(1145);
+emit_16(1079);
+emit_16(1145);
+emit_16(1078);
+emit_16(1145);
+emit_16(1079);
+emit_16(1146);
+emit_16(1080);
+emit_16(1146);
+emit_16(1079);
+emit_16(1146);
+emit_16(1080);
+emit_16(1147);
+emit_16(1081);
+emit_16(1147);
+emit_16(1080);
+emit_16(1147);
+emit_16(1081);
+emit_16(1148);
+emit_16(1082);
+emit_16(1148);
+emit_16(1081);
+emit_16(1148);
+emit_16(1082);
+emit_16(1149);
+emit_16(1083);
+emit_16(1149);
+emit_16(1082);
+emit_16(1149);
+emit_16(1083);
+emit_16(1150);
+emit_16(1084);
+emit_16(1150);
+emit_16(1083);
+emit_16(1150);
+emit_16(1084);
+emit_16(1151);
+emit_16(1085);
+emit_16(1151);
+emit_16(1084);
+emit_16(1151);
+emit_16(1085);
+emit_16(1152);
+emit_16(1086);
+emit_16(1152);
+emit_16(1085);
+emit_16(1152);
+emit_16(1086);
+emit_16(1153);
+emit_16(1087);
+emit_16(1153);
+emit_16(1086);
+emit_16(1153);
+emit_16(1087);
+emit_16(1154);
+emit_16(1088);
+emit_16(1154);
+emit_16(1087);
+emit_16(1154);
+emit_16(1088);
+emit_16(1155);
+emit_16(1089);
+emit_16(1155);
+emit_16(1088);
+emit_16(1155);
+emit_16(1089);
+emit_16(1156);
+emit_16(1090);
+emit_16(1156);
+emit_16(1089);
+emit_16(1156);
+emit_16(1090);
+emit_16(1157);
+emit_16(1091);
+emit_16(1157);
+emit_16(1090);
+emit_16(1157);
+emit_16(1091);
+emit_16(1158);
+emit_16(1092);
+emit_16(1158);
+emit_16(1091);
+emit_16(1158);
+emit_16(1092);
+emit_16(1159);
+emit_16(1093);
+emit_16(1159);
+emit_16(1092);
+emit_16(1159);
+emit_16(1093);
+emit_16(1160);
+emit_16(1094);
+emit_16(1160);
+emit_16(1093);
+emit_16(1160);
+emit_16(1094);
+emit_16(1161);
+emit_16(1095);
+emit_16(1161);
+emit_16(1094);
+emit_16(1161);
+emit_16(1095);
+emit_16(1162);
+emit_16(1096);
+emit_16(1162);
+emit_16(1095);
+emit_16(1162);
+emit_16(1096);
+emit_16(1163);
+emit_16(1097);
+emit_16(1163);
+emit_16(1096);
+emit_16(1163);
+emit_16(1097);
+emit_16(1164);
+emit_16(1098);
+emit_16(1164);
+emit_16(1097);
+emit_16(1164);
+emit_16(1098);
+emit_16(1165);
+emit_16(1099);
+emit_16(1165);
+emit_16(1098);
+emit_16(1165);
+emit_16(1099);
+emit_16(1166);
+emit_16(1100);
+emit_16(1166);
+emit_16(1099);
+emit_16(1166);
+emit_16(1100);
+emit_16(1167);
+emit_16(1101);
+emit_16(1167);
+emit_16(1100);
+emit_16(1167);
+emit_16(1101);
+emit_16(1168);
+emit_16(1102);
+emit_16(1168);
+emit_16(1101);
+emit_16(1168);
+emit_16(1102);
+emit_16(1169);
+emit_16(1103);
+emit_16(1169);
+emit_16(1102);
+emit_16(1169);
+emit_16(1103);
+emit_16(1170);
+emit_16(1104);
+emit_16(1170);
+emit_16(1103);
+emit_16(1170);
+emit_16(1104);
+emit_16(1171);
+emit_16(1105);
+emit_16(1171);
+emit_16(1104);
+emit_16(1171);
+emit_16(1105);
+emit_16(1172);
+emit_16(1106);
+emit_16(1172);
+emit_16(1105);
+emit_16(1172);
+emit_16(1106);
+emit_16(1173);
+emit_16(1107);
+emit_16(1173);
+emit_16(1106);
+emit_16(1173);
+emit_16(1107);
+emit_16(1174);
+emit_16(1108);
+emit_16(1174);
+emit_16(1107);
+emit_16(1174);
+emit_16(1108);
+emit_16(1175);
+emit_16(1109);
+emit_16(1175);
+emit_16(1108);
+emit_16(1175);
+emit_16(1109);
+emit_16(1176);
+emit_16(1110);
+emit_16(1176);
+emit_16(1109);
+emit_16(1176);
+emit_16(1110);
+emit_16(1177);
+emit_16(1111);
+emit_16(1177);
+emit_16(1110);
+emit_16(1177);
+emit_16(1111);
+emit_16(1178);
+emit_16(1112);
+emit_16(1178);
+emit_16(1111);
+emit_16(1178);
+emit_16(1112);
+emit_16(1179);
+emit_16(1113);
+emit_16(1179);
+emit_16(1112);
+emit_16(1179);
+emit_16(1113);
+emit_16(1180);
+emit_16(1114);
+emit_16(1180);
+emit_16(1113);
+emit_16(1180);
+emit_16(1114);
+emit_16(1181);
+emit_16(1115);
+emit_16(1181);
+emit_16(1114);
+emit_16(1181);
+emit_16(1115);
+emit_16(1182);
+emit_16(1116);
+emit_16(1182);
+emit_16(1115);
+emit_16(1182);
+emit_16(1116);
+emit_16(1183);
+emit_16(1117);
+emit_16(1183);
+emit_16(1116);
+emit_16(1183);
+emit_16(1117);
+emit_16(1184);
+emit_16(1118);
+emit_16(1184);
+emit_16(1117);
+emit_16(1184);
+emit_16(1118);
+emit_16(1185);
+emit_16(1119);
+emit_16(1185);
+emit_16(1118);
+emit_16(1185);
+emit_16(1119);
+emit_16(1186);
+emit_16(1120);
+emit_16(1186);
+emit_16(1119);
+emit_16(1186);
+emit_16(1120);
+emit_16(1187);
+emit_16(1121);
+emit_16(1187);
+emit_16(1120);
+emit_16(1188);
+emit_16(1122);
+emit_16(1189);
+emit_16(1123);
+emit_16(1189);
+emit_16(1122);
+emit_16(1189);
+emit_16(1123);
+emit_16(1190);
+emit_16(1124);
+emit_16(1190);
+emit_16(1123);
+emit_16(1190);
+emit_16(1124);
+emit_16(1191);
+emit_16(1125);
+emit_16(1191);
+emit_16(1124);
+emit_16(1191);
+emit_16(1125);
+emit_16(1192);
+emit_16(1126);
+emit_16(1192);
+emit_16(1125);
+emit_16(1192);
+emit_16(1126);
+emit_16(1193);
+emit_16(1127);
+emit_16(1193);
+emit_16(1126);
+emit_16(1193);
+emit_16(1127);
+emit_16(1194);
+emit_16(1128);
+emit_16(1194);
+emit_16(1127);
+emit_16(1194);
+emit_16(1128);
+emit_16(1195);
+emit_16(1129);
+emit_16(1195);
+emit_16(1128);
+emit_16(1195);
+emit_16(1129);
+emit_16(1196);
+emit_16(1130);
+emit_16(1196);
+emit_16(1129);
+emit_16(1196);
+emit_16(1130);
+emit_16(1197);
+emit_16(1131);
+emit_16(1197);
+emit_16(1130);
+emit_16(1197);
+emit_16(1131);
+emit_16(1198);
+emit_16(1132);
+emit_16(1198);
+emit_16(1131);
+emit_16(1198);
+emit_16(1132);
+emit_16(1199);
+emit_16(1133);
+emit_16(1199);
+emit_16(1132);
+emit_16(1199);
+emit_16(1133);
+emit_16(1200);
+emit_16(1134);
+emit_16(1200);
+emit_16(1133);
+emit_16(1200);
+emit_16(1134);
+emit_16(1201);
+emit_16(1135);
+emit_16(1201);
+emit_16(1134);
+emit_16(1201);
+emit_16(1135);
+emit_16(1202);
+emit_16(1136);
+emit_16(1202);
+emit_16(1135);
+emit_16(1202);
+emit_16(1136);
+emit_16(1203);
+emit_16(1137);
+emit_16(1203);
+emit_16(1136);
+emit_16(1203);
+emit_16(1137);
+emit_16(1204);
+emit_16(1138);
+emit_16(1204);
+emit_16(1137);
+emit_16(1204);
+emit_16(1138);
+emit_16(1205);
+emit_16(1139);
+emit_16(1205);
+emit_16(1138);
+emit_16(1205);
+emit_16(1139);
+emit_16(1206);
+emit_16(1140);
+emit_16(1206);
+emit_16(1139);
+emit_16(1206);
+emit_16(1140);
+emit_16(1207);
+emit_16(1141);
+emit_16(1207);
+emit_16(1140);
+emit_16(1207);
+emit_16(1141);
+emit_16(1208);
+emit_16(1142);
+emit_16(1208);
+emit_16(1141);
+emit_16(1208);
+emit_16(1142);
+emit_16(1209);
+emit_16(1143);
+emit_16(1209);
+emit_16(1142);
+emit_16(1209);
+emit_16(1143);
+emit_16(1210);
+emit_16(1144);
+emit_16(1210);
+emit_16(1143);
+emit_16(1210);
+emit_16(1144);
+emit_16(1211);
+emit_16(1145);
+emit_16(1211);
+emit_16(1144);
+emit_16(1211);
+emit_16(1145);
+emit_16(1212);
+emit_16(1146);
+emit_16(1212);
+emit_16(1145);
+emit_16(1212);
+emit_16(1146);
+emit_16(1213);
+emit_16(1147);
+emit_16(1213);
+emit_16(1146);
+emit_16(1213);
+emit_16(1147);
+emit_16(1214);
+emit_16(1148);
+emit_16(1214);
+emit_16(1147);
+emit_16(1214);
+emit_16(1148);
+emit_16(1215);
+emit_16(1149);
+emit_16(1215);
+emit_16(1148);
+emit_16(1215);
+emit_16(1149);
+emit_16(1216);
+emit_16(1150);
+emit_16(1216);
+emit_16(1149);
+emit_16(1216);
+emit_16(1150);
+emit_16(1217);
+emit_16(1151);
+emit_16(1217);
+emit_16(1150);
+emit_16(1217);
+emit_16(1151);
+emit_16(1218);
+emit_16(1152);
+emit_16(1218);
+emit_16(1151);
+emit_16(1218);
+emit_16(1152);
+emit_16(1219);
+emit_16(1153);
+emit_16(1219);
+emit_16(1152);
+emit_16(1219);
+emit_16(1153);
+emit_16(1220);
+emit_16(1154);
+emit_16(1220);
+emit_16(1153);
+emit_16(1220);
+emit_16(1154);
+emit_16(1221);
+emit_16(1155);
+emit_16(1221);
+emit_16(1154);
+emit_16(1221);
+emit_16(1155);
+emit_16(1222);
+emit_16(1156);
+emit_16(1222);
+emit_16(1155);
+emit_16(1222);
+emit_16(1156);
+emit_16(1223);
+emit_16(1157);
+emit_16(1223);
+emit_16(1156);
+emit_16(1223);
+emit_16(1157);
+emit_16(1224);
+emit_16(1158);
+emit_16(1224);
+emit_16(1157);
+emit_16(1224);
+emit_16(1158);
+emit_16(1225);
+emit_16(1159);
+emit_16(1225);
+emit_16(1158);
+emit_16(1225);
+emit_16(1159);
+emit_16(1226);
+emit_16(1160);
+emit_16(1226);
+emit_16(1159);
+emit_16(1226);
+emit_16(1160);
+emit_16(1227);
+emit_16(1161);
+emit_16(1227);
+emit_16(1160);
+emit_16(1227);
+emit_16(1161);
+emit_16(1228);
+emit_16(1162);
+emit_16(1228);
+emit_16(1161);
+emit_16(1228);
+emit_16(1162);
+emit_16(1229);
+emit_16(1163);
+emit_16(1229);
+emit_16(1162);
+emit_16(1229);
+emit_16(1163);
+emit_16(1230);
+emit_16(1164);
+emit_16(1230);
+emit_16(1163);
+emit_16(1230);
+emit_16(1164);
+emit_16(1231);
+emit_16(1165);
+emit_16(1231);
+emit_16(1164);
+emit_16(1231);
+emit_16(1165);
+emit_16(1232);
+emit_16(1166);
+emit_16(1232);
+emit_16(1165);
+emit_16(1232);
+emit_16(1166);
+emit_16(1233);
+emit_16(1167);
+emit_16(1233);
+emit_16(1166);
+emit_16(1233);
+emit_16(1167);
+emit_16(1234);
+emit_16(1168);
+emit_16(1234);
+emit_16(1167);
+emit_16(1234);
+emit_16(1168);
+emit_16(1235);
+emit_16(1169);
+emit_16(1235);
+emit_16(1168);
+emit_16(1235);
+emit_16(1169);
+emit_16(1236);
+emit_16(1170);
+emit_16(1236);
+emit_16(1169);
+emit_16(1236);
+emit_16(1170);
+emit_16(1237);
+emit_16(1171);
+emit_16(1237);
+emit_16(1170);
+emit_16(1237);
+emit_16(1171);
+emit_16(1238);
+emit_16(1172);
+emit_16(1238);
+emit_16(1171);
+emit_16(1238);
+emit_16(1172);
+emit_16(1239);
+emit_16(1173);
+emit_16(1239);
+emit_16(1172);
+emit_16(1239);
+emit_16(1173);
+emit_16(1240);
+emit_16(1174);
+emit_16(1240);
+emit_16(1173);
+emit_16(1240);
+emit_16(1174);
+emit_16(1241);
+emit_16(1175);
+emit_16(1241);
+emit_16(1174);
+emit_16(1241);
+emit_16(1175);
+emit_16(1242);
+emit_16(1176);
+emit_16(1242);
+emit_16(1175);
+emit_16(1242);
+emit_16(1176);
+emit_16(1243);
+emit_16(1177);
+emit_16(1243);
+emit_16(1176);
+emit_16(1243);
+emit_16(1177);
+emit_16(1244);
+emit_16(1178);
+emit_16(1244);
+emit_16(1177);
+emit_16(1244);
+emit_16(1178);
+emit_16(1245);
+emit_16(1179);
+emit_16(1245);
+emit_16(1178);
+emit_16(1245);
+emit_16(1179);
+emit_16(1246);
+emit_16(1180);
+emit_16(1246);
+emit_16(1179);
+emit_16(1246);
+emit_16(1180);
+emit_16(1247);
+emit_16(1181);
+emit_16(1247);
+emit_16(1180);
+emit_16(1247);
+emit_16(1181);
+emit_16(1248);
+emit_16(1182);
+emit_16(1248);
+emit_16(1181);
+emit_16(1248);
+emit_16(1182);
+emit_16(1249);
+emit_16(1183);
+emit_16(1249);
+emit_16(1182);
+emit_16(1249);
+emit_16(1183);
+emit_16(1250);
+emit_16(1184);
+emit_16(1250);
+emit_16(1183);
+emit_16(1250);
+emit_16(1184);
+emit_16(1251);
+emit_16(1185);
+emit_16(1251);
+emit_16(1184);
+emit_16(1251);
+emit_16(1185);
+emit_16(1252);
+emit_16(1186);
+emit_16(1252);
+emit_16(1185);
+emit_16(1252);
+emit_16(1186);
+emit_16(1253);
+emit_16(1187);
+emit_16(1253);
+emit_16(1186);
+emit_16(1254);
+emit_16(1188);
+emit_16(1255);
+emit_16(1189);
+emit_16(1255);
+emit_16(1188);
+emit_16(1255);
+emit_16(1189);
+emit_16(1256);
+emit_16(1190);
+emit_16(1256);
+emit_16(1189);
+emit_16(1256);
+emit_16(1190);
+emit_16(1257);
+emit_16(1191);
+emit_16(1257);
+emit_16(1190);
+emit_16(1257);
+emit_16(1191);
+emit_16(1258);
+emit_16(1192);
+emit_16(1258);
+emit_16(1191);
+emit_16(1258);
+emit_16(1192);
+emit_16(1259);
+emit_16(1193);
+emit_16(1259);
+emit_16(1192);
+emit_16(1259);
+emit_16(1193);
+emit_16(1260);
+emit_16(1194);
+emit_16(1260);
+emit_16(1193);
+emit_16(1260);
+emit_16(1194);
+emit_16(1261);
+emit_16(1195);
+emit_16(1261);
+emit_16(1194);
+emit_16(1261);
+emit_16(1195);
+emit_16(1262);
+emit_16(1196);
+emit_16(1262);
+emit_16(1195);
+emit_16(1262);
+emit_16(1196);
+emit_16(1263);
+emit_16(1197);
+emit_16(1263);
+emit_16(1196);
+emit_16(1263);
+emit_16(1197);
+emit_16(1264);
+emit_16(1198);
+emit_16(1264);
+emit_16(1197);
+emit_16(1264);
+emit_16(1198);
+emit_16(1265);
+emit_16(1199);
+emit_16(1265);
+emit_16(1198);
+emit_16(1265);
+emit_16(1199);
+emit_16(1266);
+emit_16(1200);
+emit_16(1266);
+emit_16(1199);
+emit_16(1266);
+emit_16(1200);
+emit_16(1267);
+emit_16(1201);
+emit_16(1267);
+emit_16(1200);
+emit_16(1267);
+emit_16(1201);
+emit_16(1268);
+emit_16(1202);
+emit_16(1268);
+emit_16(1201);
+emit_16(1268);
+emit_16(1202);
+emit_16(1269);
+emit_16(1203);
+emit_16(1269);
+emit_16(1202);
+emit_16(1269);
+emit_16(1203);
+emit_16(1270);
+emit_16(1204);
+emit_16(1270);
+emit_16(1203);
+emit_16(1270);
+emit_16(1204);
+emit_16(1271);
+emit_16(1205);
+emit_16(1271);
+emit_16(1204);
+emit_16(1271);
+emit_16(1205);
+emit_16(1272);
+emit_16(1206);
+emit_16(1272);
+emit_16(1205);
+emit_16(1272);
+emit_16(1206);
+emit_16(1273);
+emit_16(1207);
+emit_16(1273);
+emit_16(1206);
+emit_16(1273);
+emit_16(1207);
+emit_16(1274);
+emit_16(1208);
+emit_16(1274);
+emit_16(1207);
+emit_16(1274);
+emit_16(1208);
+emit_16(1275);
+emit_16(1209);
+emit_16(1275);
+emit_16(1208);
+emit_16(1275);
+emit_16(1209);
+emit_16(1276);
+emit_16(1210);
+emit_16(1276);
+emit_16(1209);
+emit_16(1276);
+emit_16(1210);
+emit_16(1277);
+emit_16(1211);
+emit_16(1277);
+emit_16(1210);
+emit_16(1277);
+emit_16(1211);
+emit_16(1278);
+emit_16(1212);
+emit_16(1278);
+emit_16(1211);
+emit_16(1278);
+emit_16(1212);
+emit_16(1279);
+emit_16(1213);
+emit_16(1279);
+emit_16(1212);
+emit_16(1279);
+emit_16(1213);
+emit_16(1280);
+emit_16(1214);
+emit_16(1280);
+emit_16(1213);
+emit_16(1280);
+emit_16(1214);
+emit_16(1281);
+emit_16(1215);
+emit_16(1281);
+emit_16(1214);
+emit_16(1281);
+emit_16(1215);
+emit_16(1282);
+emit_16(1216);
+emit_16(1282);
+emit_16(1215);
+emit_16(1282);
+emit_16(1216);
+emit_16(1283);
+emit_16(1217);
+emit_16(1283);
+emit_16(1216);
+emit_16(1283);
+emit_16(1217);
+emit_16(1284);
+emit_16(1218);
+emit_16(1284);
+emit_16(1217);
+emit_16(1284);
+emit_16(1218);
+emit_16(1285);
+emit_16(1219);
+emit_16(1285);
+emit_16(1218);
+emit_16(1285);
+emit_16(1219);
+emit_16(1286);
+emit_16(1220);
+emit_16(1286);
+emit_16(1219);
+emit_16(1286);
+emit_16(1220);
+emit_16(1287);
+emit_16(1221);
+emit_16(1287);
+emit_16(1220);
+emit_16(1287);
+emit_16(1221);
+emit_16(1288);
+emit_16(1222);
+emit_16(1288);
+emit_16(1221);
+emit_16(1288);
+emit_16(1222);
+emit_16(1289);
+emit_16(1223);
+emit_16(1289);
+emit_16(1222);
+emit_16(1289);
+emit_16(1223);
+emit_16(1290);
+emit_16(1224);
+emit_16(1290);
+emit_16(1223);
+emit_16(1290);
+emit_16(1224);
+emit_16(1291);
+emit_16(1225);
+emit_16(1291);
+emit_16(1224);
+emit_16(1291);
+emit_16(1225);
+emit_16(1292);
+emit_16(1226);
+emit_16(1292);
+emit_16(1225);
+emit_16(1292);
+emit_16(1226);
+emit_16(1293);
+emit_16(1227);
+emit_16(1293);
+emit_16(1226);
+emit_16(1293);
+emit_16(1227);
+emit_16(1294);
+emit_16(1228);
+emit_16(1294);
+emit_16(1227);
+emit_16(1294);
+emit_16(1228);
+emit_16(1295);
+emit_16(1229);
+emit_16(1295);
+emit_16(1228);
+emit_16(1295);
+emit_16(1229);
+emit_16(1296);
+emit_16(1230);
+emit_16(1296);
+emit_16(1229);
+emit_16(1296);
+emit_16(1230);
+emit_16(1297);
+emit_16(1231);
+emit_16(1297);
+emit_16(1230);
+emit_16(1297);
+emit_16(1231);
+emit_16(1298);
+emit_16(1232);
+emit_16(1298);
+emit_16(1231);
+emit_16(1298);
+emit_16(1232);
+emit_16(1299);
+emit_16(1233);
+emit_16(1299);
+emit_16(1232);
+emit_16(1299);
+emit_16(1233);
+emit_16(1300);
+emit_16(1234);
+emit_16(1300);
+emit_16(1233);
+emit_16(1300);
+emit_16(1234);
+emit_16(1301);
+emit_16(1235);
+emit_16(1301);
+emit_16(1234);
+emit_16(1301);
+emit_16(1235);
+emit_16(1302);
+emit_16(1236);
+emit_16(1302);
+emit_16(1235);
+emit_16(1302);
+emit_16(1236);
+emit_16(1303);
+emit_16(1237);
+emit_16(1303);
+emit_16(1236);
+emit_16(1303);
+emit_16(1237);
+emit_16(1304);
+emit_16(1238);
+emit_16(1304);
+emit_16(1237);
+emit_16(1304);
+emit_16(1238);
+emit_16(1305);
+emit_16(1239);
+emit_16(1305);
+emit_16(1238);
+emit_16(1305);
+emit_16(1239);
+emit_16(1306);
+emit_16(1240);
+emit_16(1306);
+emit_16(1239);
+emit_16(1306);
+emit_16(1240);
+emit_16(1307);
+emit_16(1241);
+emit_16(1307);
+emit_16(1240);
+emit_16(1307);
+emit_16(1241);
+emit_16(1308);
+emit_16(1242);
+emit_16(1308);
+emit_16(1241);
+emit_16(1308);
+emit_16(1242);
+emit_16(1309);
+emit_16(1243);
+emit_16(1309);
+emit_16(1242);
+emit_16(1309);
+emit_16(1243);
+emit_16(1310);
+emit_16(1244);
+emit_16(1310);
+emit_16(1243);
+emit_16(1310);
+emit_16(1244);
+emit_16(1311);
+emit_16(1245);
+emit_16(1311);
+emit_16(1244);
+emit_16(1311);
+emit_16(1245);
+emit_16(1312);
+emit_16(1246);
+emit_16(1312);
+emit_16(1245);
+emit_16(1312);
+emit_16(1246);
+emit_16(1313);
+emit_16(1247);
+emit_16(1313);
+emit_16(1246);
+emit_16(1313);
+emit_16(1247);
+emit_16(1314);
+emit_16(1248);
+emit_16(1314);
+emit_16(1247);
+emit_16(1314);
+emit_16(1248);
+emit_16(1315);
+emit_16(1249);
+emit_16(1315);
+emit_16(1248);
+emit_16(1315);
+emit_16(1249);
+emit_16(1316);
+emit_16(1250);
+emit_16(1316);
+emit_16(1249);
+emit_16(1316);
+emit_16(1250);
+emit_16(1317);
+emit_16(1251);
+emit_16(1317);
+emit_16(1250);
+emit_16(1317);
+emit_16(1251);
+emit_16(1318);
+emit_16(1252);
+emit_16(1318);
+emit_16(1251);
+emit_16(1318);
+emit_16(1252);
+emit_16(1319);
+emit_16(1253);
+emit_16(1319);
+emit_16(1252);
+emit_16(1320);
+emit_16(1254);
+emit_16(1321);
+emit_16(1255);
+emit_16(1321);
+emit_16(1254);
+emit_16(1321);
+emit_16(1255);
+emit_16(1322);
+emit_16(1256);
+emit_16(1322);
+emit_16(1255);
+emit_16(1322);
+emit_16(1256);
+emit_16(1323);
+emit_16(1257);
+emit_16(1323);
+emit_16(1256);
+emit_16(1323);
+emit_16(1257);
+emit_16(1324);
+emit_16(1258);
+emit_16(1324);
+emit_16(1257);
+emit_16(1324);
+emit_16(1258);
+emit_16(1325);
+emit_16(1259);
+emit_16(1325);
+emit_16(1258);
+emit_16(1325);
+emit_16(1259);
+emit_16(1326);
+emit_16(1260);
+emit_16(1326);
+emit_16(1259);
+emit_16(1326);
+emit_16(1260);
+emit_16(1327);
+emit_16(1261);
+emit_16(1327);
+emit_16(1260);
+emit_16(1327);
+emit_16(1261);
+emit_16(1328);
+emit_16(1262);
+emit_16(1328);
+emit_16(1261);
+emit_16(1328);
+emit_16(1262);
+emit_16(1329);
+emit_16(1263);
+emit_16(1329);
+emit_16(1262);
+emit_16(1329);
+emit_16(1263);
+emit_16(1330);
+emit_16(1264);
+emit_16(1330);
+emit_16(1263);
+emit_16(1330);
+emit_16(1264);
+emit_16(1331);
+emit_16(1265);
+emit_16(1331);
+emit_16(1264);
+emit_16(1331);
+emit_16(1265);
+emit_16(1332);
+emit_16(1266);
+emit_16(1332);
+emit_16(1265);
+emit_16(1332);
+emit_16(1266);
+emit_16(1333);
+emit_16(1267);
+emit_16(1333);
+emit_16(1266);
+emit_16(1333);
+emit_16(1267);
+emit_16(1334);
+emit_16(1268);
+emit_16(1334);
+emit_16(1267);
+emit_16(1334);
+emit_16(1268);
+emit_16(1335);
+emit_16(1269);
+emit_16(1335);
+emit_16(1268);
+emit_16(1335);
+emit_16(1269);
+emit_16(1336);
+emit_16(1270);
+emit_16(1336);
+emit_16(1269);
+emit_16(1336);
+emit_16(1270);
+emit_16(1337);
+emit_16(1271);
+emit_16(1337);
+emit_16(1270);
+emit_16(1337);
+emit_16(1271);
+emit_16(1338);
+emit_16(1272);
+emit_16(1338);
+emit_16(1271);
+emit_16(1338);
+emit_16(1272);
+emit_16(1339);
+emit_16(1273);
+emit_16(1339);
+emit_16(1272);
+emit_16(1339);
+emit_16(1273);
+emit_16(1340);
+emit_16(1274);
+emit_16(1340);
+emit_16(1273);
+emit_16(1340);
+emit_16(1274);
+emit_16(1341);
+emit_16(1275);
+emit_16(1341);
+emit_16(1274);
+emit_16(1341);
+emit_16(1275);
+emit_16(1342);
+emit_16(1276);
+emit_16(1342);
+emit_16(1275);
+emit_16(1342);
+emit_16(1276);
+emit_16(1343);
+emit_16(1277);
+emit_16(1343);
+emit_16(1276);
+emit_16(1343);
+emit_16(1277);
+emit_16(1344);
+emit_16(1278);
+emit_16(1344);
+emit_16(1277);
+emit_16(1344);
+emit_16(1278);
+emit_16(1345);
+emit_16(1279);
+emit_16(1345);
+emit_16(1278);
+emit_16(1345);
+emit_16(1279);
+emit_16(1346);
+emit_16(1280);
+emit_16(1346);
+emit_16(1279);
+emit_16(1346);
+emit_16(1280);
+emit_16(1347);
+emit_16(1281);
+emit_16(1347);
+emit_16(1280);
+emit_16(1347);
+emit_16(1281);
+emit_16(1348);
+emit_16(1282);
+emit_16(1348);
+emit_16(1281);
+emit_16(1348);
+emit_16(1282);
+emit_16(1349);
+emit_16(1283);
+emit_16(1349);
+emit_16(1282);
+emit_16(1349);
+emit_16(1283);
+emit_16(1350);
+emit_16(1284);
+emit_16(1350);
+emit_16(1283);
+emit_16(1350);
+emit_16(1284);
+emit_16(1351);
+emit_16(1285);
+emit_16(1351);
+emit_16(1284);
+emit_16(1351);
+emit_16(1285);
+emit_16(1352);
+emit_16(1286);
+emit_16(1352);
+emit_16(1285);
+emit_16(1352);
+emit_16(1286);
+emit_16(1353);
+emit_16(1287);
+emit_16(1353);
+emit_16(1286);
+emit_16(1353);
+emit_16(1287);
+emit_16(1354);
+emit_16(1288);
+emit_16(1354);
+emit_16(1287);
+emit_16(1354);
+emit_16(1288);
+emit_16(1355);
+emit_16(1289);
+emit_16(1355);
+emit_16(1288);
+emit_16(1355);
+emit_16(1289);
+emit_16(1356);
+emit_16(1290);
+emit_16(1356);
+emit_16(1289);
+emit_16(1356);
+emit_16(1290);
+emit_16(1357);
+emit_16(1291);
+emit_16(1357);
+emit_16(1290);
+emit_16(1357);
+emit_16(1291);
+emit_16(1358);
+emit_16(1292);
+emit_16(1358);
+emit_16(1291);
+emit_16(1358);
+emit_16(1292);
+emit_16(1359);
+emit_16(1293);
+emit_16(1359);
+emit_16(1292);
+emit_16(1359);
+emit_16(1293);
+emit_16(1360);
+emit_16(1294);
+emit_16(1360);
+emit_16(1293);
+emit_16(1360);
+emit_16(1294);
+emit_16(1361);
+emit_16(1295);
+emit_16(1361);
+emit_16(1294);
+emit_16(1361);
+emit_16(1295);
+emit_16(1362);
+emit_16(1296);
+emit_16(1362);
+emit_16(1295);
+emit_16(1362);
+emit_16(1296);
+emit_16(1363);
+emit_16(1297);
+emit_16(1363);
+emit_16(1296);
+emit_16(1363);
+emit_16(1297);
+emit_16(1364);
+emit_16(1298);
+emit_16(1364);
+emit_16(1297);
+emit_16(1364);
+emit_16(1298);
+emit_16(1365);
+emit_16(1299);
+emit_16(1365);
+emit_16(1298);
+emit_16(1365);
+emit_16(1299);
+emit_16(1366);
+emit_16(1300);
+emit_16(1366);
+emit_16(1299);
+emit_16(1366);
+emit_16(1300);
+emit_16(1367);
+emit_16(1301);
+emit_16(1367);
+emit_16(1300);
+emit_16(1367);
+emit_16(1301);
+emit_16(1368);
+emit_16(1302);
+emit_16(1368);
+emit_16(1301);
+emit_16(1368);
+emit_16(1302);
+emit_16(1369);
+emit_16(1303);
+emit_16(1369);
+emit_16(1302);
+emit_16(1369);
+emit_16(1303);
+emit_16(1370);
+emit_16(1304);
+emit_16(1370);
+emit_16(1303);
+emit_16(1370);
+emit_16(1304);
+emit_16(1371);
+emit_16(1305);
+emit_16(1371);
+emit_16(1304);
+emit_16(1371);
+emit_16(1305);
+emit_16(1372);
+emit_16(1306);
+emit_16(1372);
+emit_16(1305);
+emit_16(1372);
+emit_16(1306);
+emit_16(1373);
+emit_16(1307);
+emit_16(1373);
+emit_16(1306);
+emit_16(1373);
+emit_16(1307);
+emit_16(1374);
+emit_16(1308);
+emit_16(1374);
+emit_16(1307);
+emit_16(1374);
+emit_16(1308);
+emit_16(1375);
+emit_16(1309);
+emit_16(1375);
+emit_16(1308);
+emit_16(1375);
+emit_16(1309);
+emit_16(1376);
+emit_16(1310);
+emit_16(1376);
+emit_16(1309);
+emit_16(1376);
+emit_16(1310);
+emit_16(1377);
+emit_16(1311);
+emit_16(1377);
+emit_16(1310);
+emit_16(1377);
+emit_16(1311);
+emit_16(1378);
+emit_16(1312);
+emit_16(1378);
+emit_16(1311);
+emit_16(1378);
+emit_16(1312);
+emit_16(1379);
+emit_16(1313);
+emit_16(1379);
+emit_16(1312);
+emit_16(1379);
+emit_16(1313);
+emit_16(1380);
+emit_16(1314);
+emit_16(1380);
+emit_16(1313);
+emit_16(1380);
+emit_16(1314);
+emit_16(1381);
+emit_16(1315);
+emit_16(1381);
+emit_16(1314);
+emit_16(1381);
+emit_16(1315);
+emit_16(1382);
+emit_16(1316);
+emit_16(1382);
+emit_16(1315);
+emit_16(1382);
+emit_16(1316);
+emit_16(1383);
+emit_16(1317);
+emit_16(1383);
+emit_16(1316);
+emit_16(1383);
+emit_16(1317);
+emit_16(1384);
+emit_16(1318);
+emit_16(1384);
+emit_16(1317);
+emit_16(1384);
+emit_16(1318);
+emit_16(1385);
+emit_16(1319);
+emit_16(1385);
+emit_16(1318);
+emit_16(1386);
+emit_16(1320);
+emit_16(1387);
+emit_16(1321);
+emit_16(1387);
+emit_16(1320);
+emit_16(1387);
+emit_16(1321);
+emit_16(1388);
+emit_16(1322);
+emit_16(1388);
+emit_16(1321);
+emit_16(1388);
+emit_16(1322);
+emit_16(1389);
+emit_16(1323);
+emit_16(1389);
+emit_16(1322);
+emit_16(1389);
+emit_16(1323);
+emit_16(1390);
+emit_16(1324);
+emit_16(1390);
+emit_16(1323);
+emit_16(1390);
+emit_16(1324);
+emit_16(1391);
+emit_16(1325);
+emit_16(1391);
+emit_16(1324);
+emit_16(1391);
+emit_16(1325);
+emit_16(1392);
+emit_16(1326);
+emit_16(1392);
+emit_16(1325);
+emit_16(1392);
+emit_16(1326);
+emit_16(1393);
+emit_16(1327);
+emit_16(1393);
+emit_16(1326);
+emit_16(1393);
+emit_16(1327);
+emit_16(1394);
+emit_16(1328);
+emit_16(1394);
+emit_16(1327);
+emit_16(1394);
+emit_16(1328);
+emit_16(1395);
+emit_16(1329);
+emit_16(1395);
+emit_16(1328);
+emit_16(1395);
+emit_16(1329);
+emit_16(1396);
+emit_16(1330);
+emit_16(1396);
+emit_16(1329);
+emit_16(1396);
+emit_16(1330);
+emit_16(1397);
+emit_16(1331);
+emit_16(1397);
+emit_16(1330);
+emit_16(1397);
+emit_16(1331);
+emit_16(1398);
+emit_16(1332);
+emit_16(1398);
+emit_16(1331);
+emit_16(1398);
+emit_16(1332);
+emit_16(1399);
+emit_16(1333);
+emit_16(1399);
+emit_16(1332);
+emit_16(1399);
+emit_16(1333);
+emit_16(1400);
+emit_16(1334);
+emit_16(1400);
+emit_16(1333);
+emit_16(1400);
+emit_16(1334);
+emit_16(1401);
+emit_16(1335);
+emit_16(1401);
+emit_16(1334);
+emit_16(1401);
+emit_16(1335);
+emit_16(1402);
+emit_16(1336);
+emit_16(1402);
+emit_16(1335);
+emit_16(1402);
+emit_16(1336);
+emit_16(1403);
+emit_16(1337);
+emit_16(1403);
+emit_16(1336);
+emit_16(1403);
+emit_16(1337);
+emit_16(1404);
+emit_16(1338);
+emit_16(1404);
+emit_16(1337);
+emit_16(1404);
+emit_16(1338);
+emit_16(1405);
+emit_16(1339);
+emit_16(1405);
+emit_16(1338);
+emit_16(1405);
+emit_16(1339);
+emit_16(1406);
+emit_16(1340);
+emit_16(1406);
+emit_16(1339);
+emit_16(1406);
+emit_16(1340);
+emit_16(1407);
+emit_16(1341);
+emit_16(1407);
+emit_16(1340);
+emit_16(1407);
+emit_16(1341);
+emit_16(1408);
+emit_16(1342);
+emit_16(1408);
+emit_16(1341);
+emit_16(1408);
+emit_16(1342);
+emit_16(1409);
+emit_16(1343);
+emit_16(1409);
+emit_16(1342);
+emit_16(1409);
+emit_16(1343);
+emit_16(1410);
+emit_16(1344);
+emit_16(1410);
+emit_16(1343);
+emit_16(1410);
+emit_16(1344);
+emit_16(1411);
+emit_16(1345);
+emit_16(1411);
+emit_16(1344);
+emit_16(1411);
+emit_16(1345);
+emit_16(1412);
+emit_16(1346);
+emit_16(1412);
+emit_16(1345);
+emit_16(1412);
+emit_16(1346);
+emit_16(1413);
+emit_16(1347);
+emit_16(1413);
+emit_16(1346);
+emit_16(1413);
+emit_16(1347);
+emit_16(1414);
+emit_16(1348);
+emit_16(1414);
+emit_16(1347);
+emit_16(1414);
+emit_16(1348);
+emit_16(1415);
+emit_16(1349);
+emit_16(1415);
+emit_16(1348);
+emit_16(1415);
+emit_16(1349);
+emit_16(1416);
+emit_16(1350);
+emit_16(1416);
+emit_16(1349);
+emit_16(1416);
+emit_16(1350);
+emit_16(1417);
+emit_16(1351);
+emit_16(1417);
+emit_16(1350);
+emit_16(1417);
+emit_16(1351);
+emit_16(1418);
+emit_16(1352);
+emit_16(1418);
+emit_16(1351);
+emit_16(1418);
+emit_16(1352);
+emit_16(1419);
+emit_16(1353);
+emit_16(1419);
+emit_16(1352);
+emit_16(1419);
+emit_16(1353);
+emit_16(1420);
+emit_16(1354);
+emit_16(1420);
+emit_16(1353);
+emit_16(1420);
+emit_16(1354);
+emit_16(1421);
+emit_16(1355);
+emit_16(1421);
+emit_16(1354);
+emit_16(1421);
+emit_16(1355);
+emit_16(1422);
+emit_16(1356);
+emit_16(1422);
+emit_16(1355);
+emit_16(1422);
+emit_16(1356);
+emit_16(1423);
+emit_16(1357);
+emit_16(1423);
+emit_16(1356);
+emit_16(1423);
+emit_16(1357);
+emit_16(1424);
+emit_16(1358);
+emit_16(1424);
+emit_16(1357);
+emit_16(1424);
+emit_16(1358);
+emit_16(1425);
+emit_16(1359);
+emit_16(1425);
+emit_16(1358);
+emit_16(1425);
+emit_16(1359);
+emit_16(1426);
+emit_16(1360);
+emit_16(1426);
+emit_16(1359);
+emit_16(1426);
+emit_16(1360);
+emit_16(1427);
+emit_16(1361);
+emit_16(1427);
+emit_16(1360);
+emit_16(1427);
+emit_16(1361);
+emit_16(1428);
+emit_16(1362);
+emit_16(1428);
+emit_16(1361);
+emit_16(1428);
+emit_16(1362);
+emit_16(1429);
+emit_16(1363);
+emit_16(1429);
+emit_16(1362);
+emit_16(1429);
+emit_16(1363);
+emit_16(1430);
+emit_16(1364);
+emit_16(1430);
+emit_16(1363);
+emit_16(1430);
+emit_16(1364);
+emit_16(1431);
+emit_16(1365);
+emit_16(1431);
+emit_16(1364);
+emit_16(1431);
+emit_16(1365);
+emit_16(1432);
+emit_16(1366);
+emit_16(1432);
+emit_16(1365);
+emit_16(1432);
+emit_16(1366);
+emit_16(1433);
+emit_16(1367);
+emit_16(1433);
+emit_16(1366);
+emit_16(1433);
+emit_16(1367);
+emit_16(1434);
+emit_16(1368);
+emit_16(1434);
+emit_16(1367);
+emit_16(1434);
+emit_16(1368);
+emit_16(1435);
+emit_16(1369);
+emit_16(1435);
+emit_16(1368);
+emit_16(1435);
+emit_16(1369);
+emit_16(1436);
+emit_16(1370);
+emit_16(1436);
+emit_16(1369);
+emit_16(1436);
+emit_16(1370);
+emit_16(1437);
+emit_16(1371);
+emit_16(1437);
+emit_16(1370);
+emit_16(1437);
+emit_16(1371);
+emit_16(1438);
+emit_16(1372);
+emit_16(1438);
+emit_16(1371);
+emit_16(1438);
+emit_16(1372);
+emit_16(1439);
+emit_16(1373);
+emit_16(1439);
+emit_16(1372);
+emit_16(1439);
+emit_16(1373);
+emit_16(1440);
+emit_16(1374);
+emit_16(1440);
+emit_16(1373);
+emit_16(1440);
+emit_16(1374);
+emit_16(1441);
+emit_16(1375);
+emit_16(1441);
+emit_16(1374);
+emit_16(1441);
+emit_16(1375);
+emit_16(1442);
+emit_16(1376);
+emit_16(1442);
+emit_16(1375);
+emit_16(1442);
+emit_16(1376);
+emit_16(1443);
+emit_16(1377);
+emit_16(1443);
+emit_16(1376);
+emit_16(1443);
+emit_16(1377);
+emit_16(1444);
+emit_16(1378);
+emit_16(1444);
+emit_16(1377);
+emit_16(1444);
+emit_16(1378);
+emit_16(1445);
+emit_16(1379);
+emit_16(1445);
+emit_16(1378);
+emit_16(1445);
+emit_16(1379);
+emit_16(1446);
+emit_16(1380);
+emit_16(1446);
+emit_16(1379);
+emit_16(1446);
+emit_16(1380);
+emit_16(1447);
+emit_16(1381);
+emit_16(1447);
+emit_16(1380);
+emit_16(1447);
+emit_16(1381);
+emit_16(1448);
+emit_16(1382);
+emit_16(1448);
+emit_16(1381);
+emit_16(1448);
+emit_16(1382);
+emit_16(1449);
+emit_16(1383);
+emit_16(1449);
+emit_16(1382);
+emit_16(1449);
+emit_16(1383);
+emit_16(1450);
+emit_16(1384);
+emit_16(1450);
+emit_16(1383);
+emit_16(1450);
+emit_16(1384);
+emit_16(1451);
+emit_16(1385);
+emit_16(1451);
+emit_16(1384);
+emit_16(1452);
+emit_16(1386);
+emit_16(1453);
+emit_16(1387);
+emit_16(1453);
+emit_16(1386);
+emit_16(1453);
+emit_16(1387);
+emit_16(1454);
+emit_16(1388);
+emit_16(1454);
+emit_16(1387);
+emit_16(1454);
+emit_16(1388);
+emit_16(1455);
+emit_16(1389);
+emit_16(1455);
+emit_16(1388);
+emit_16(1455);
+emit_16(1389);
+emit_16(1456);
+emit_16(1390);
+emit_16(1456);
+emit_16(1389);
+emit_16(1456);
+emit_16(1390);
+emit_16(1457);
+emit_16(1391);
+emit_16(1457);
+emit_16(1390);
+emit_16(1457);
+emit_16(1391);
+emit_16(1458);
+emit_16(1392);
+emit_16(1458);
+emit_16(1391);
+emit_16(1458);
+emit_16(1392);
+emit_16(1459);
+emit_16(1393);
+emit_16(1459);
+emit_16(1392);
+emit_16(1459);
+emit_16(1393);
+emit_16(1460);
+emit_16(1394);
+emit_16(1460);
+emit_16(1393);
+emit_16(1460);
+emit_16(1394);
+emit_16(1461);
+emit_16(1395);
+emit_16(1461);
+emit_16(1394);
+emit_16(1461);
+emit_16(1395);
+emit_16(1462);
+emit_16(1396);
+emit_16(1462);
+emit_16(1395);
+emit_16(1462);
+emit_16(1396);
+emit_16(1463);
+emit_16(1397);
+emit_16(1463);
+emit_16(1396);
+emit_16(1463);
+emit_16(1397);
+emit_16(1464);
+emit_16(1398);
+emit_16(1464);
+emit_16(1397);
+emit_16(1464);
+emit_16(1398);
+emit_16(1465);
+emit_16(1399);
+emit_16(1465);
+emit_16(1398);
+emit_16(1465);
+emit_16(1399);
+emit_16(1466);
+emit_16(1400);
+emit_16(1466);
+emit_16(1399);
+emit_16(1466);
+emit_16(1400);
+emit_16(1467);
+emit_16(1401);
+emit_16(1467);
+emit_16(1400);
+emit_16(1467);
+emit_16(1401);
+emit_16(1468);
+emit_16(1402);
+emit_16(1468);
+emit_16(1401);
+emit_16(1468);
+emit_16(1402);
+emit_16(1469);
+emit_16(1403);
+emit_16(1469);
+emit_16(1402);
+emit_16(1469);
+emit_16(1403);
+emit_16(1470);
+emit_16(1404);
+emit_16(1470);
+emit_16(1403);
+emit_16(1470);
+emit_16(1404);
+emit_16(1471);
+emit_16(1405);
+emit_16(1471);
+emit_16(1404);
+emit_16(1471);
+emit_16(1405);
+emit_16(1472);
+emit_16(1406);
+emit_16(1472);
+emit_16(1405);
+emit_16(1472);
+emit_16(1406);
+emit_16(1473);
+emit_16(1407);
+emit_16(1473);
+emit_16(1406);
+emit_16(1473);
+emit_16(1407);
+emit_16(1474);
+emit_16(1408);
+emit_16(1474);
+emit_16(1407);
+emit_16(1474);
+emit_16(1408);
+emit_16(1475);
+emit_16(1409);
+emit_16(1475);
+emit_16(1408);
+emit_16(1475);
+emit_16(1409);
+emit_16(1476);
+emit_16(1410);
+emit_16(1476);
+emit_16(1409);
+emit_16(1476);
+emit_16(1410);
+emit_16(1477);
+emit_16(1411);
+emit_16(1477);
+emit_16(1410);
+emit_16(1477);
+emit_16(1411);
+emit_16(1478);
+emit_16(1412);
+emit_16(1478);
+emit_16(1411);
+emit_16(1478);
+emit_16(1412);
+emit_16(1479);
+emit_16(1413);
+emit_16(1479);
+emit_16(1412);
+emit_16(1479);
+emit_16(1413);
+emit_16(1480);
+emit_16(1414);
+emit_16(1480);
+emit_16(1413);
+emit_16(1480);
+emit_16(1414);
+emit_16(1481);
+emit_16(1415);
+emit_16(1481);
+emit_16(1414);
+emit_16(1481);
+emit_16(1415);
+emit_16(1482);
+emit_16(1416);
+emit_16(1482);
+emit_16(1415);
+emit_16(1482);
+emit_16(1416);
+emit_16(1483);
+emit_16(1417);
+emit_16(1483);
+emit_16(1416);
+emit_16(1483);
+emit_16(1417);
+emit_16(1484);
+emit_16(1418);
+emit_16(1484);
+emit_16(1417);
+emit_16(1484);
+emit_16(1418);
+emit_16(1485);
+emit_16(1419);
+emit_16(1485);
+emit_16(1418);
+emit_16(1485);
+emit_16(1419);
+emit_16(1486);
+emit_16(1420);
+emit_16(1486);
+emit_16(1419);
+emit_16(1486);
+emit_16(1420);
+emit_16(1487);
+emit_16(1421);
+emit_16(1487);
+emit_16(1420);
+emit_16(1487);
+emit_16(1421);
+emit_16(1488);
+emit_16(1422);
+emit_16(1488);
+emit_16(1421);
+emit_16(1488);
+emit_16(1422);
+emit_16(1489);
+emit_16(1423);
+emit_16(1489);
+emit_16(1422);
+emit_16(1489);
+emit_16(1423);
+emit_16(1490);
+emit_16(1424);
+emit_16(1490);
+emit_16(1423);
+emit_16(1490);
+emit_16(1424);
+emit_16(1491);
+emit_16(1425);
+emit_16(1491);
+emit_16(1424);
+emit_16(1491);
+emit_16(1425);
+emit_16(1492);
+emit_16(1426);
+emit_16(1492);
+emit_16(1425);
+emit_16(1492);
+emit_16(1426);
+emit_16(1493);
+emit_16(1427);
+emit_16(1493);
+emit_16(1426);
+emit_16(1493);
+emit_16(1427);
+emit_16(1494);
+emit_16(1428);
+emit_16(1494);
+emit_16(1427);
+emit_16(1494);
+emit_16(1428);
+emit_16(1495);
+emit_16(1429);
+emit_16(1495);
+emit_16(1428);
+emit_16(1495);
+emit_16(1429);
+emit_16(1496);
+emit_16(1430);
+emit_16(1496);
+emit_16(1429);
+emit_16(1496);
+emit_16(1430);
+emit_16(1497);
+emit_16(1431);
+emit_16(1497);
+emit_16(1430);
+emit_16(1497);
+emit_16(1431);
+emit_16(1498);
+emit_16(1432);
+emit_16(1498);
+emit_16(1431);
+emit_16(1498);
+emit_16(1432);
+emit_16(1499);
+emit_16(1433);
+emit_16(1499);
+emit_16(1432);
+emit_16(1499);
+emit_16(1433);
+emit_16(1500);
+emit_16(1434);
+emit_16(1500);
+emit_16(1433);
+emit_16(1500);
+emit_16(1434);
+emit_16(1501);
+emit_16(1435);
+emit_16(1501);
+emit_16(1434);
+emit_16(1501);
+emit_16(1435);
+emit_16(1502);
+emit_16(1436);
+emit_16(1502);
+emit_16(1435);
+emit_16(1502);
+emit_16(1436);
+emit_16(1503);
+emit_16(1437);
+emit_16(1503);
+emit_16(1436);
+emit_16(1503);
+emit_16(1437);
+emit_16(1504);
+emit_16(1438);
+emit_16(1504);
+emit_16(1437);
+emit_16(1504);
+emit_16(1438);
+emit_16(1505);
+emit_16(1439);
+emit_16(1505);
+emit_16(1438);
+emit_16(1505);
+emit_16(1439);
+emit_16(1506);
+emit_16(1440);
+emit_16(1506);
+emit_16(1439);
+emit_16(1506);
+emit_16(1440);
+emit_16(1507);
+emit_16(1441);
+emit_16(1507);
+emit_16(1440);
+emit_16(1507);
+emit_16(1441);
+emit_16(1508);
+emit_16(1442);
+emit_16(1508);
+emit_16(1441);
+emit_16(1508);
+emit_16(1442);
+emit_16(1509);
+emit_16(1443);
+emit_16(1509);
+emit_16(1442);
+emit_16(1509);
+emit_16(1443);
+emit_16(1510);
+emit_16(1444);
+emit_16(1510);
+emit_16(1443);
+emit_16(1510);
+emit_16(1444);
+emit_16(1511);
+emit_16(1445);
+emit_16(1511);
+emit_16(1444);
+emit_16(1511);
+emit_16(1445);
+emit_16(1512);
+emit_16(1446);
+emit_16(1512);
+emit_16(1445);
+emit_16(1512);
+emit_16(1446);
+emit_16(1513);
+emit_16(1447);
+emit_16(1513);
+emit_16(1446);
+emit_16(1513);
+emit_16(1447);
+emit_16(1514);
+emit_16(1448);
+emit_16(1514);
+emit_16(1447);
+emit_16(1514);
+emit_16(1448);
+emit_16(1515);
+emit_16(1449);
+emit_16(1515);
+emit_16(1448);
+emit_16(1515);
+emit_16(1449);
+emit_16(1516);
+emit_16(1450);
+emit_16(1516);
+emit_16(1449);
+emit_16(1516);
+emit_16(1450);
+emit_16(1517);
+emit_16(1451);
+emit_16(1517);
+emit_16(1450);
+emit_16(1518);
+emit_16(1452);
+emit_16(1519);
+emit_16(1453);
+emit_16(1519);
+emit_16(1452);
+emit_16(1519);
+emit_16(1453);
+emit_16(1520);
+emit_16(1454);
+emit_16(1520);
+emit_16(1453);
+emit_16(1520);
+emit_16(1454);
+emit_16(1521);
+emit_16(1455);
+emit_16(1521);
+emit_16(1454);
+emit_16(1521);
+emit_16(1455);
+emit_16(1522);
+emit_16(1456);
+emit_16(1522);
+emit_16(1455);
+emit_16(1522);
+emit_16(1456);
+emit_16(1523);
+emit_16(1457);
+emit_16(1523);
+emit_16(1456);
+emit_16(1523);
+emit_16(1457);
+emit_16(1524);
+emit_16(1458);
+emit_16(1524);
+emit_16(1457);
+emit_16(1524);
+emit_16(1458);
+emit_16(1525);
+emit_16(1459);
+emit_16(1525);
+emit_16(1458);
+emit_16(1525);
+emit_16(1459);
+emit_16(1526);
+emit_16(1460);
+emit_16(1526);
+emit_16(1459);
+emit_16(1526);
+emit_16(1460);
+emit_16(1527);
+emit_16(1461);
+emit_16(1527);
+emit_16(1460);
+emit_16(1527);
+emit_16(1461);
+emit_16(1528);
+emit_16(1462);
+emit_16(1528);
+emit_16(1461);
+emit_16(1528);
+emit_16(1462);
+emit_16(1529);
+emit_16(1463);
+emit_16(1529);
+emit_16(1462);
+emit_16(1529);
+emit_16(1463);
+emit_16(1530);
+emit_16(1464);
+emit_16(1530);
+emit_16(1463);
+emit_16(1530);
+emit_16(1464);
+emit_16(1531);
+emit_16(1465);
+emit_16(1531);
+emit_16(1464);
+emit_16(1531);
+emit_16(1465);
+emit_16(1532);
+emit_16(1466);
+emit_16(1532);
+emit_16(1465);
+emit_16(1532);
+emit_16(1466);
+emit_16(1533);
+emit_16(1467);
+emit_16(1533);
+emit_16(1466);
+emit_16(1533);
+emit_16(1467);
+emit_16(1534);
+emit_16(1468);
+emit_16(1534);
+emit_16(1467);
+emit_16(1534);
+emit_16(1468);
+emit_16(1535);
+emit_16(1469);
+emit_16(1535);
+emit_16(1468);
+emit_16(1535);
+emit_16(1469);
+emit_16(1536);
+emit_16(1470);
+emit_16(1536);
+emit_16(1469);
+emit_16(1536);
+emit_16(1470);
+emit_16(1537);
+emit_16(1471);
+emit_16(1537);
+emit_16(1470);
+emit_16(1537);
+emit_16(1471);
+emit_16(1538);
+emit_16(1472);
+emit_16(1538);
+emit_16(1471);
+emit_16(1538);
+emit_16(1472);
+emit_16(1539);
+emit_16(1473);
+emit_16(1539);
+emit_16(1472);
+emit_16(1539);
+emit_16(1473);
+emit_16(1540);
+emit_16(1474);
+emit_16(1540);
+emit_16(1473);
+emit_16(1540);
+emit_16(1474);
+emit_16(1541);
+emit_16(1475);
+emit_16(1541);
+emit_16(1474);
+emit_16(1541);
+emit_16(1475);
+emit_16(1542);
+emit_16(1476);
+emit_16(1542);
+emit_16(1475);
+emit_16(1542);
+emit_16(1476);
+emit_16(1543);
+emit_16(1477);
+emit_16(1543);
+emit_16(1476);
+emit_16(1543);
+emit_16(1477);
+emit_16(1544);
+emit_16(1478);
+emit_16(1544);
+emit_16(1477);
+emit_16(1544);
+emit_16(1478);
+emit_16(1545);
+emit_16(1479);
+emit_16(1545);
+emit_16(1478);
+emit_16(1545);
+emit_16(1479);
+emit_16(1546);
+emit_16(1480);
+emit_16(1546);
+emit_16(1479);
+emit_16(1546);
+emit_16(1480);
+emit_16(1547);
+emit_16(1481);
+emit_16(1547);
+emit_16(1480);
+emit_16(1547);
+emit_16(1481);
+emit_16(1548);
+emit_16(1482);
+emit_16(1548);
+emit_16(1481);
+emit_16(1548);
+emit_16(1482);
+emit_16(1549);
+emit_16(1483);
+emit_16(1549);
+emit_16(1482);
+emit_16(1549);
+emit_16(1483);
+emit_16(1550);
+emit_16(1484);
+emit_16(1550);
+emit_16(1483);
+emit_16(1550);
+emit_16(1484);
+emit_16(1551);
+emit_16(1485);
+emit_16(1551);
+emit_16(1484);
+emit_16(1551);
+emit_16(1485);
+emit_16(1552);
+emit_16(1486);
+emit_16(1552);
+emit_16(1485);
+emit_16(1552);
+emit_16(1486);
+emit_16(1553);
+emit_16(1487);
+emit_16(1553);
+emit_16(1486);
+emit_16(1553);
+emit_16(1487);
+emit_16(1554);
+emit_16(1488);
+emit_16(1554);
+emit_16(1487);
+emit_16(1554);
+emit_16(1488);
+emit_16(1555);
+emit_16(1489);
+emit_16(1555);
+emit_16(1488);
+emit_16(1555);
+emit_16(1489);
+emit_16(1556);
+emit_16(1490);
+emit_16(1556);
+emit_16(1489);
+emit_16(1556);
+emit_16(1490);
+emit_16(1557);
+emit_16(1491);
+emit_16(1557);
+emit_16(1490);
+emit_16(1557);
+emit_16(1491);
+emit_16(1558);
+emit_16(1492);
+emit_16(1558);
+emit_16(1491);
+emit_16(1558);
+emit_16(1492);
+emit_16(1559);
+emit_16(1493);
+emit_16(1559);
+emit_16(1492);
+emit_16(1559);
+emit_16(1493);
+emit_16(1560);
+emit_16(1494);
+emit_16(1560);
+emit_16(1493);
+emit_16(1560);
+emit_16(1494);
+emit_16(1561);
+emit_16(1495);
+emit_16(1561);
+emit_16(1494);
+emit_16(1561);
+emit_16(1495);
+emit_16(1562);
+emit_16(1496);
+emit_16(1562);
+emit_16(1495);
+emit_16(1562);
+emit_16(1496);
+emit_16(1563);
+emit_16(1497);
+emit_16(1563);
+emit_16(1496);
+emit_16(1563);
+emit_16(1497);
+emit_16(1564);
+emit_16(1498);
+emit_16(1564);
+emit_16(1497);
+emit_16(1564);
+emit_16(1498);
+emit_16(1565);
+emit_16(1499);
+emit_16(1565);
+emit_16(1498);
+emit_16(1565);
+emit_16(1499);
+emit_16(1566);
+emit_16(1500);
+emit_16(1566);
+emit_16(1499);
+emit_16(1566);
+emit_16(1500);
+emit_16(1567);
+emit_16(1501);
+emit_16(1567);
+emit_16(1500);
+emit_16(1567);
+emit_16(1501);
+emit_16(1568);
+emit_16(1502);
+emit_16(1568);
+emit_16(1501);
+emit_16(1568);
+emit_16(1502);
+emit_16(1569);
+emit_16(1503);
+emit_16(1569);
+emit_16(1502);
+emit_16(1569);
+emit_16(1503);
+emit_16(1570);
+emit_16(1504);
+emit_16(1570);
+emit_16(1503);
+emit_16(1570);
+emit_16(1504);
+emit_16(1571);
+emit_16(1505);
+emit_16(1571);
+emit_16(1504);
+emit_16(1571);
+emit_16(1505);
+emit_16(1572);
+emit_16(1506);
+emit_16(1572);
+emit_16(1505);
+emit_16(1572);
+emit_16(1506);
+emit_16(1573);
+emit_16(1507);
+emit_16(1573);
+emit_16(1506);
+emit_16(1573);
+emit_16(1507);
+emit_16(1574);
+emit_16(1508);
+emit_16(1574);
+emit_16(1507);
+emit_16(1574);
+emit_16(1508);
+emit_16(1575);
+emit_16(1509);
+emit_16(1575);
+emit_16(1508);
+emit_16(1575);
+emit_16(1509);
+emit_16(1576);
+emit_16(1510);
+emit_16(1576);
+emit_16(1509);
+emit_16(1576);
+emit_16(1510);
+emit_16(1577);
+emit_16(1511);
+emit_16(1577);
+emit_16(1510);
+emit_16(1577);
+emit_16(1511);
+emit_16(1578);
+emit_16(1512);
+emit_16(1578);
+emit_16(1511);
+emit_16(1578);
+emit_16(1512);
+emit_16(1579);
+emit_16(1513);
+emit_16(1579);
+emit_16(1512);
+emit_16(1579);
+emit_16(1513);
+emit_16(1580);
+emit_16(1514);
+emit_16(1580);
+emit_16(1513);
+emit_16(1580);
+emit_16(1514);
+emit_16(1581);
+emit_16(1515);
+emit_16(1581);
+emit_16(1514);
+emit_16(1581);
+emit_16(1515);
+emit_16(1582);
+emit_16(1516);
+emit_16(1582);
+emit_16(1515);
+emit_16(1582);
+emit_16(1516);
+emit_16(1583);
+emit_16(1517);
+emit_16(1583);
+emit_16(1516);
+emit_16(1584);
+emit_16(1518);
+emit_16(1585);
+emit_16(1519);
+emit_16(1585);
+emit_16(1518);
+emit_16(1585);
+emit_16(1519);
+emit_16(1586);
+emit_16(1520);
+emit_16(1586);
+emit_16(1519);
+emit_16(1586);
+emit_16(1520);
+emit_16(1587);
+emit_16(1521);
+emit_16(1587);
+emit_16(1520);
+emit_16(1587);
+emit_16(1521);
+emit_16(1588);
+emit_16(1522);
+emit_16(1588);
+emit_16(1521);
+emit_16(1588);
+emit_16(1522);
+emit_16(1589);
+emit_16(1523);
+emit_16(1589);
+emit_16(1522);
+emit_16(1589);
+emit_16(1523);
+emit_16(1590);
+emit_16(1524);
+emit_16(1590);
+emit_16(1523);
+emit_16(1590);
+emit_16(1524);
+emit_16(1591);
+emit_16(1525);
+emit_16(1591);
+emit_16(1524);
+emit_16(1591);
+emit_16(1525);
+emit_16(1592);
+emit_16(1526);
+emit_16(1592);
+emit_16(1525);
+emit_16(1592);
+emit_16(1526);
+emit_16(1593);
+emit_16(1527);
+emit_16(1593);
+emit_16(1526);
+emit_16(1593);
+emit_16(1527);
+emit_16(1594);
+emit_16(1528);
+emit_16(1594);
+emit_16(1527);
+emit_16(1594);
+emit_16(1528);
+emit_16(1595);
+emit_16(1529);
+emit_16(1595);
+emit_16(1528);
+emit_16(1595);
+emit_16(1529);
+emit_16(1596);
+emit_16(1530);
+emit_16(1596);
+emit_16(1529);
+emit_16(1596);
+emit_16(1530);
+emit_16(1597);
+emit_16(1531);
+emit_16(1597);
+emit_16(1530);
+emit_16(1597);
+emit_16(1531);
+emit_16(1598);
+emit_16(1532);
+emit_16(1598);
+emit_16(1531);
+emit_16(1598);
+emit_16(1532);
+emit_16(1599);
+emit_16(1533);
+emit_16(1599);
+emit_16(1532);
+emit_16(1599);
+emit_16(1533);
+emit_16(1600);
+emit_16(1534);
+emit_16(1600);
+emit_16(1533);
+emit_16(1600);
+emit_16(1534);
+emit_16(1601);
+emit_16(1535);
+emit_16(1601);
+emit_16(1534);
+emit_16(1601);
+emit_16(1535);
+emit_16(1602);
+emit_16(1536);
+emit_16(1602);
+emit_16(1535);
+emit_16(1602);
+emit_16(1536);
+emit_16(1603);
+emit_16(1537);
+emit_16(1603);
+emit_16(1536);
+emit_16(1603);
+emit_16(1537);
+emit_16(1604);
+emit_16(1538);
+emit_16(1604);
+emit_16(1537);
+emit_16(1604);
+emit_16(1538);
+emit_16(1605);
+emit_16(1539);
+emit_16(1605);
+emit_16(1538);
+emit_16(1605);
+emit_16(1539);
+emit_16(1606);
+emit_16(1540);
+emit_16(1606);
+emit_16(1539);
+emit_16(1606);
+emit_16(1540);
+emit_16(1607);
+emit_16(1541);
+emit_16(1607);
+emit_16(1540);
+emit_16(1607);
+emit_16(1541);
+emit_16(1608);
+emit_16(1542);
+emit_16(1608);
+emit_16(1541);
+emit_16(1608);
+emit_16(1542);
+emit_16(1609);
+emit_16(1543);
+emit_16(1609);
+emit_16(1542);
+emit_16(1609);
+emit_16(1543);
+emit_16(1610);
+emit_16(1544);
+emit_16(1610);
+emit_16(1543);
+emit_16(1610);
+emit_16(1544);
+emit_16(1611);
+emit_16(1545);
+emit_16(1611);
+emit_16(1544);
+emit_16(1611);
+emit_16(1545);
+emit_16(1612);
+emit_16(1546);
+emit_16(1612);
+emit_16(1545);
+emit_16(1612);
+emit_16(1546);
+emit_16(1613);
+emit_16(1547);
+emit_16(1613);
+emit_16(1546);
+emit_16(1613);
+emit_16(1547);
+emit_16(1614);
+emit_16(1548);
+emit_16(1614);
+emit_16(1547);
+emit_16(1614);
+emit_16(1548);
+emit_16(1615);
+emit_16(1549);
+emit_16(1615);
+emit_16(1548);
+emit_16(1615);
+emit_16(1549);
+emit_16(1616);
+emit_16(1550);
+emit_16(1616);
+emit_16(1549);
+emit_16(1616);
+emit_16(1550);
+emit_16(1617);
+emit_16(1551);
+emit_16(1617);
+emit_16(1550);
+emit_16(1617);
+emit_16(1551);
+emit_16(1618);
+emit_16(1552);
+emit_16(1618);
+emit_16(1551);
+emit_16(1618);
+emit_16(1552);
+emit_16(1619);
+emit_16(1553);
+emit_16(1619);
+emit_16(1552);
+emit_16(1619);
+emit_16(1553);
+emit_16(1620);
+emit_16(1554);
+emit_16(1620);
+emit_16(1553);
+emit_16(1620);
+emit_16(1554);
+emit_16(1621);
+emit_16(1555);
+emit_16(1621);
+emit_16(1554);
+emit_16(1621);
+emit_16(1555);
+emit_16(1622);
+emit_16(1556);
+emit_16(1622);
+emit_16(1555);
+emit_16(1622);
+emit_16(1556);
+emit_16(1623);
+emit_16(1557);
+emit_16(1623);
+emit_16(1556);
+emit_16(1623);
+emit_16(1557);
+emit_16(1624);
+emit_16(1558);
+emit_16(1624);
+emit_16(1557);
+emit_16(1624);
+emit_16(1558);
+emit_16(1625);
+emit_16(1559);
+emit_16(1625);
+emit_16(1558);
+emit_16(1625);
+emit_16(1559);
+emit_16(1626);
+emit_16(1560);
+emit_16(1626);
+emit_16(1559);
+emit_16(1626);
+emit_16(1560);
+emit_16(1627);
+emit_16(1561);
+emit_16(1627);
+emit_16(1560);
+emit_16(1627);
+emit_16(1561);
+emit_16(1628);
+emit_16(1562);
+emit_16(1628);
+emit_16(1561);
+emit_16(1628);
+emit_16(1562);
+emit_16(1629);
+emit_16(1563);
+emit_16(1629);
+emit_16(1562);
+emit_16(1629);
+emit_16(1563);
+emit_16(1630);
+emit_16(1564);
+emit_16(1630);
+emit_16(1563);
+emit_16(1630);
+emit_16(1564);
+emit_16(1631);
+emit_16(1565);
+emit_16(1631);
+emit_16(1564);
+emit_16(1631);
+emit_16(1565);
+emit_16(1632);
+emit_16(1566);
+emit_16(1632);
+emit_16(1565);
+emit_16(1632);
+emit_16(1566);
+emit_16(1633);
+emit_16(1567);
+emit_16(1633);
+emit_16(1566);
+emit_16(1633);
+emit_16(1567);
+emit_16(1634);
+emit_16(1568);
+emit_16(1634);
+emit_16(1567);
+emit_16(1634);
+emit_16(1568);
+emit_16(1635);
+emit_16(1569);
+emit_16(1635);
+emit_16(1568);
+emit_16(1635);
+emit_16(1569);
+emit_16(1636);
+emit_16(1570);
+emit_16(1636);
+emit_16(1569);
+emit_16(1636);
+emit_16(1570);
+emit_16(1637);
+emit_16(1571);
+emit_16(1637);
+emit_16(1570);
+emit_16(1637);
+emit_16(1571);
+emit_16(1638);
+emit_16(1572);
+emit_16(1638);
+emit_16(1571);
+emit_16(1638);
+emit_16(1572);
+emit_16(1639);
+emit_16(1573);
+emit_16(1639);
+emit_16(1572);
+emit_16(1639);
+emit_16(1573);
+emit_16(1640);
+emit_16(1574);
+emit_16(1640);
+emit_16(1573);
+emit_16(1640);
+emit_16(1574);
+emit_16(1641);
+emit_16(1575);
+emit_16(1641);
+emit_16(1574);
+emit_16(1641);
+emit_16(1575);
+emit_16(1642);
+emit_16(1576);
+emit_16(1642);
+emit_16(1575);
+emit_16(1642);
+emit_16(1576);
+emit_16(1643);
+emit_16(1577);
+emit_16(1643);
+emit_16(1576);
+emit_16(1643);
+emit_16(1577);
+emit_16(1644);
+emit_16(1578);
+emit_16(1644);
+emit_16(1577);
+emit_16(1644);
+emit_16(1578);
+emit_16(1645);
+emit_16(1579);
+emit_16(1645);
+emit_16(1578);
+emit_16(1645);
+emit_16(1579);
+emit_16(1646);
+emit_16(1580);
+emit_16(1646);
+emit_16(1579);
+emit_16(1646);
+emit_16(1580);
+emit_16(1647);
+emit_16(1581);
+emit_16(1647);
+emit_16(1580);
+emit_16(1647);
+emit_16(1581);
+emit_16(1648);
+emit_16(1582);
+emit_16(1648);
+emit_16(1581);
+emit_16(1648);
+emit_16(1582);
+emit_16(1649);
+emit_16(1583);
+emit_16(1649);
+emit_16(1582);
+emit_16(1650);
+emit_16(1584);
+emit_16(1651);
+emit_16(1585);
+emit_16(1651);
+emit_16(1584);
+emit_16(1651);
+emit_16(1585);
+emit_16(1652);
+emit_16(1586);
+emit_16(1652);
+emit_16(1585);
+emit_16(1652);
+emit_16(1586);
+emit_16(1653);
+emit_16(1587);
+emit_16(1653);
+emit_16(1586);
+emit_16(1653);
+emit_16(1587);
+emit_16(1654);
+emit_16(1588);
+emit_16(1654);
+emit_16(1587);
+emit_16(1654);
+emit_16(1588);
+emit_16(1655);
+emit_16(1589);
+emit_16(1655);
+emit_16(1588);
+emit_16(1655);
+emit_16(1589);
+emit_16(1656);
+emit_16(1590);
+emit_16(1656);
+emit_16(1589);
+emit_16(1656);
+emit_16(1590);
+emit_16(1657);
+emit_16(1591);
+emit_16(1657);
+emit_16(1590);
+emit_16(1657);
+emit_16(1591);
+emit_16(1658);
+emit_16(1592);
+emit_16(1658);
+emit_16(1591);
+emit_16(1658);
+emit_16(1592);
+emit_16(1659);
+emit_16(1593);
+emit_16(1659);
+emit_16(1592);
+emit_16(1659);
+emit_16(1593);
+emit_16(1660);
+emit_16(1594);
+emit_16(1660);
+emit_16(1593);
+emit_16(1660);
+emit_16(1594);
+emit_16(1661);
+emit_16(1595);
+emit_16(1661);
+emit_16(1594);
+emit_16(1661);
+emit_16(1595);
+emit_16(1662);
+emit_16(1596);
+emit_16(1662);
+emit_16(1595);
+emit_16(1662);
+emit_16(1596);
+emit_16(1663);
+emit_16(1597);
+emit_16(1663);
+emit_16(1596);
+emit_16(1663);
+emit_16(1597);
+emit_16(1664);
+emit_16(1598);
+emit_16(1664);
+emit_16(1597);
+emit_16(1664);
+emit_16(1598);
+emit_16(1665);
+emit_16(1599);
+emit_16(1665);
+emit_16(1598);
+emit_16(1665);
+emit_16(1599);
+emit_16(1666);
+emit_16(1600);
+emit_16(1666);
+emit_16(1599);
+emit_16(1666);
+emit_16(1600);
+emit_16(1667);
+emit_16(1601);
+emit_16(1667);
+emit_16(1600);
+emit_16(1667);
+emit_16(1601);
+emit_16(1668);
+emit_16(1602);
+emit_16(1668);
+emit_16(1601);
+emit_16(1668);
+emit_16(1602);
+emit_16(1669);
+emit_16(1603);
+emit_16(1669);
+emit_16(1602);
+emit_16(1669);
+emit_16(1603);
+emit_16(1670);
+emit_16(1604);
+emit_16(1670);
+emit_16(1603);
+emit_16(1670);
+emit_16(1604);
+emit_16(1671);
+emit_16(1605);
+emit_16(1671);
+emit_16(1604);
+emit_16(1671);
+emit_16(1605);
+emit_16(1672);
+emit_16(1606);
+emit_16(1672);
+emit_16(1605);
+emit_16(1672);
+emit_16(1606);
+emit_16(1673);
+emit_16(1607);
+emit_16(1673);
+emit_16(1606);
+emit_16(1673);
+emit_16(1607);
+emit_16(1674);
+emit_16(1608);
+emit_16(1674);
+emit_16(1607);
+emit_16(1674);
+emit_16(1608);
+emit_16(1675);
+emit_16(1609);
+emit_16(1675);
+emit_16(1608);
+emit_16(1675);
+emit_16(1609);
+emit_16(1676);
+emit_16(1610);
+emit_16(1676);
+emit_16(1609);
+emit_16(1676);
+emit_16(1610);
+emit_16(1677);
+emit_16(1611);
+emit_16(1677);
+emit_16(1610);
+emit_16(1677);
+emit_16(1611);
+emit_16(1678);
+emit_16(1612);
+emit_16(1678);
+emit_16(1611);
+emit_16(1678);
+emit_16(1612);
+emit_16(1679);
+emit_16(1613);
+emit_16(1679);
+emit_16(1612);
+emit_16(1679);
+emit_16(1613);
+emit_16(1680);
+emit_16(1614);
+emit_16(1680);
+emit_16(1613);
+emit_16(1680);
+emit_16(1614);
+emit_16(1681);
+emit_16(1615);
+emit_16(1681);
+emit_16(1614);
+emit_16(1681);
+emit_16(1615);
+emit_16(1682);
+emit_16(1616);
+emit_16(1682);
+emit_16(1615);
+emit_16(1682);
+emit_16(1616);
+emit_16(1683);
+emit_16(1617);
+emit_16(1683);
+emit_16(1616);
+emit_16(1683);
+emit_16(1617);
+emit_16(1684);
+emit_16(1618);
+emit_16(1684);
+emit_16(1617);
+emit_16(1684);
+emit_16(1618);
+emit_16(1685);
+emit_16(1619);
+emit_16(1685);
+emit_16(1618);
+emit_16(1685);
+emit_16(1619);
+emit_16(1686);
+emit_16(1620);
+emit_16(1686);
+emit_16(1619);
+emit_16(1686);
+emit_16(1620);
+emit_16(1687);
+emit_16(1621);
+emit_16(1687);
+emit_16(1620);
+emit_16(1687);
+emit_16(1621);
+emit_16(1688);
+emit_16(1622);
+emit_16(1688);
+emit_16(1621);
+emit_16(1688);
+emit_16(1622);
+emit_16(1689);
+emit_16(1623);
+emit_16(1689);
+emit_16(1622);
+emit_16(1689);
+emit_16(1623);
+emit_16(1690);
+emit_16(1624);
+emit_16(1690);
+emit_16(1623);
+emit_16(1690);
+emit_16(1624);
+emit_16(1691);
+emit_16(1625);
+emit_16(1691);
+emit_16(1624);
+emit_16(1691);
+emit_16(1625);
+emit_16(1692);
+emit_16(1626);
+emit_16(1692);
+emit_16(1625);
+emit_16(1692);
+emit_16(1626);
+emit_16(1693);
+emit_16(1627);
+emit_16(1693);
+emit_16(1626);
+emit_16(1693);
+emit_16(1627);
+emit_16(1694);
+emit_16(1628);
+emit_16(1694);
+emit_16(1627);
+emit_16(1694);
+emit_16(1628);
+emit_16(1695);
+emit_16(1629);
+emit_16(1695);
+emit_16(1628);
+emit_16(1695);
+emit_16(1629);
+emit_16(1696);
+emit_16(1630);
+emit_16(1696);
+emit_16(1629);
+emit_16(1696);
+emit_16(1630);
+emit_16(1697);
+emit_16(1631);
+emit_16(1697);
+emit_16(1630);
+emit_16(1697);
+emit_16(1631);
+emit_16(1698);
+emit_16(1632);
+emit_16(1698);
+emit_16(1631);
+emit_16(1698);
+emit_16(1632);
+emit_16(1699);
+emit_16(1633);
+emit_16(1699);
+emit_16(1632);
+emit_16(1699);
+emit_16(1633);
+emit_16(1700);
+emit_16(1634);
+emit_16(1700);
+emit_16(1633);
+emit_16(1700);
+emit_16(1634);
+emit_16(1701);
+emit_16(1635);
+emit_16(1701);
+emit_16(1634);
+emit_16(1701);
+emit_16(1635);
+emit_16(1702);
+emit_16(1636);
+emit_16(1702);
+emit_16(1635);
+emit_16(1702);
+emit_16(1636);
+emit_16(1703);
+emit_16(1637);
+emit_16(1703);
+emit_16(1636);
+emit_16(1703);
+emit_16(1637);
+emit_16(1704);
+emit_16(1638);
+emit_16(1704);
+emit_16(1637);
+emit_16(1704);
+emit_16(1638);
+emit_16(1705);
+emit_16(1639);
+emit_16(1705);
+emit_16(1638);
+emit_16(1705);
+emit_16(1639);
+emit_16(1706);
+emit_16(1640);
+emit_16(1706);
+emit_16(1639);
+emit_16(1706);
+emit_16(1640);
+emit_16(1707);
+emit_16(1641);
+emit_16(1707);
+emit_16(1640);
+emit_16(1707);
+emit_16(1641);
+emit_16(1708);
+emit_16(1642);
+emit_16(1708);
+emit_16(1641);
+emit_16(1708);
+emit_16(1642);
+emit_16(1709);
+emit_16(1643);
+emit_16(1709);
+emit_16(1642);
+emit_16(1709);
+emit_16(1643);
+emit_16(1710);
+emit_16(1644);
+emit_16(1710);
+emit_16(1643);
+emit_16(1710);
+emit_16(1644);
+emit_16(1711);
+emit_16(1645);
+emit_16(1711);
+emit_16(1644);
+emit_16(1711);
+emit_16(1645);
+emit_16(1712);
+emit_16(1646);
+emit_16(1712);
+emit_16(1645);
+emit_16(1712);
+emit_16(1646);
+emit_16(1713);
+emit_16(1647);
+emit_16(1713);
+emit_16(1646);
+emit_16(1713);
+emit_16(1647);
+emit_16(1714);
+emit_16(1648);
+emit_16(1714);
+emit_16(1647);
+emit_16(1714);
+emit_16(1648);
+emit_16(1715);
+emit_16(1649);
+emit_16(1715);
+emit_16(1648);
+emit_16(1716);
+emit_16(1650);
+emit_16(1717);
+emit_16(1651);
+emit_16(1717);
+emit_16(1650);
+emit_16(1717);
+emit_16(1651);
+emit_16(1718);
+emit_16(1652);
+emit_16(1718);
+emit_16(1651);
+emit_16(1718);
+emit_16(1652);
+emit_16(1719);
+emit_16(1653);
+emit_16(1719);
+emit_16(1652);
+emit_16(1719);
+emit_16(1653);
+emit_16(1720);
+emit_16(1654);
+emit_16(1720);
+emit_16(1653);
+emit_16(1720);
+emit_16(1654);
+emit_16(1721);
+emit_16(1655);
+emit_16(1721);
+emit_16(1654);
+emit_16(1721);
+emit_16(1655);
+emit_16(1722);
+emit_16(1656);
+emit_16(1722);
+emit_16(1655);
+emit_16(1722);
+emit_16(1656);
+emit_16(1723);
+emit_16(1657);
+emit_16(1723);
+emit_16(1656);
+emit_16(1723);
+emit_16(1657);
+emit_16(1724);
+emit_16(1658);
+emit_16(1724);
+emit_16(1657);
+emit_16(1724);
+emit_16(1658);
+emit_16(1725);
+emit_16(1659);
+emit_16(1725);
+emit_16(1658);
+emit_16(1725);
+emit_16(1659);
+emit_16(1726);
+emit_16(1660);
+emit_16(1726);
+emit_16(1659);
+emit_16(1726);
+emit_16(1660);
+emit_16(1727);
+emit_16(1661);
+emit_16(1727);
+emit_16(1660);
+emit_16(1727);
+emit_16(1661);
+emit_16(1728);
+emit_16(1662);
+emit_16(1728);
+emit_16(1661);
+emit_16(1728);
+emit_16(1662);
+emit_16(1729);
+emit_16(1663);
+emit_16(1729);
+emit_16(1662);
+emit_16(1729);
+emit_16(1663);
+emit_16(1730);
+emit_16(1664);
+emit_16(1730);
+emit_16(1663);
+emit_16(1730);
+emit_16(1664);
+emit_16(1731);
+emit_16(1665);
+emit_16(1731);
+emit_16(1664);
+emit_16(1731);
+emit_16(1665);
+emit_16(1732);
+emit_16(1666);
+emit_16(1732);
+emit_16(1665);
+emit_16(1732);
+emit_16(1666);
+emit_16(1733);
+emit_16(1667);
+emit_16(1733);
+emit_16(1666);
+emit_16(1733);
+emit_16(1667);
+emit_16(1734);
+emit_16(1668);
+emit_16(1734);
+emit_16(1667);
+emit_16(1734);
+emit_16(1668);
+emit_16(1735);
+emit_16(1669);
+emit_16(1735);
+emit_16(1668);
+emit_16(1735);
+emit_16(1669);
+emit_16(1736);
+emit_16(1670);
+emit_16(1736);
+emit_16(1669);
+emit_16(1736);
+emit_16(1670);
+emit_16(1737);
+emit_16(1671);
+emit_16(1737);
+emit_16(1670);
+emit_16(1737);
+emit_16(1671);
+emit_16(1738);
+emit_16(1672);
+emit_16(1738);
+emit_16(1671);
+emit_16(1738);
+emit_16(1672);
+emit_16(1739);
+emit_16(1673);
+emit_16(1739);
+emit_16(1672);
+emit_16(1739);
+emit_16(1673);
+emit_16(1740);
+emit_16(1674);
+emit_16(1740);
+emit_16(1673);
+emit_16(1740);
+emit_16(1674);
+emit_16(1741);
+emit_16(1675);
+emit_16(1741);
+emit_16(1674);
+emit_16(1741);
+emit_16(1675);
+emit_16(1742);
+emit_16(1676);
+emit_16(1742);
+emit_16(1675);
+emit_16(1742);
+emit_16(1676);
+emit_16(1743);
+emit_16(1677);
+emit_16(1743);
+emit_16(1676);
+emit_16(1743);
+emit_16(1677);
+emit_16(1744);
+emit_16(1678);
+emit_16(1744);
+emit_16(1677);
+emit_16(1744);
+emit_16(1678);
+emit_16(1745);
+emit_16(1679);
+emit_16(1745);
+emit_16(1678);
+emit_16(1745);
+emit_16(1679);
+emit_16(1746);
+emit_16(1680);
+emit_16(1746);
+emit_16(1679);
+emit_16(1746);
+emit_16(1680);
+emit_16(1747);
+emit_16(1681);
+emit_16(1747);
+emit_16(1680);
+emit_16(1747);
+emit_16(1681);
+emit_16(1748);
+emit_16(1682);
+emit_16(1748);
+emit_16(1681);
+emit_16(1748);
+emit_16(1682);
+emit_16(1749);
+emit_16(1683);
+emit_16(1749);
+emit_16(1682);
+emit_16(1749);
+emit_16(1683);
+emit_16(1750);
+emit_16(1684);
+emit_16(1750);
+emit_16(1683);
+emit_16(1750);
+emit_16(1684);
+emit_16(1751);
+emit_16(1685);
+emit_16(1751);
+emit_16(1684);
+emit_16(1751);
+emit_16(1685);
+emit_16(1752);
+emit_16(1686);
+emit_16(1752);
+emit_16(1685);
+emit_16(1752);
+emit_16(1686);
+emit_16(1753);
+emit_16(1687);
+emit_16(1753);
+emit_16(1686);
+emit_16(1753);
+emit_16(1687);
+emit_16(1754);
+emit_16(1688);
+emit_16(1754);
+emit_16(1687);
+emit_16(1754);
+emit_16(1688);
+emit_16(1755);
+emit_16(1689);
+emit_16(1755);
+emit_16(1688);
+emit_16(1755);
+emit_16(1689);
+emit_16(1756);
+emit_16(1690);
+emit_16(1756);
+emit_16(1689);
+emit_16(1756);
+emit_16(1690);
+emit_16(1757);
+emit_16(1691);
+emit_16(1757);
+emit_16(1690);
+emit_16(1757);
+emit_16(1691);
+emit_16(1758);
+emit_16(1692);
+emit_16(1758);
+emit_16(1691);
+emit_16(1758);
+emit_16(1692);
+emit_16(1759);
+emit_16(1693);
+emit_16(1759);
+emit_16(1692);
+emit_16(1759);
+emit_16(1693);
+emit_16(1760);
+emit_16(1694);
+emit_16(1760);
+emit_16(1693);
+emit_16(1760);
+emit_16(1694);
+emit_16(1761);
+emit_16(1695);
+emit_16(1761);
+emit_16(1694);
+emit_16(1761);
+emit_16(1695);
+emit_16(1762);
+emit_16(1696);
+emit_16(1762);
+emit_16(1695);
+emit_16(1762);
+emit_16(1696);
+emit_16(1763);
+emit_16(1697);
+emit_16(1763);
+emit_16(1696);
+emit_16(1763);
+emit_16(1697);
+emit_16(1764);
+emit_16(1698);
+emit_16(1764);
+emit_16(1697);
+emit_16(1764);
+emit_16(1698);
+emit_16(1765);
+emit_16(1699);
+emit_16(1765);
+emit_16(1698);
+emit_16(1765);
+emit_16(1699);
+emit_16(1766);
+emit_16(1700);
+emit_16(1766);
+emit_16(1699);
+emit_16(1766);
+emit_16(1700);
+emit_16(1767);
+emit_16(1701);
+emit_16(1767);
+emit_16(1700);
+emit_16(1767);
+emit_16(1701);
+emit_16(1768);
+emit_16(1702);
+emit_16(1768);
+emit_16(1701);
+emit_16(1768);
+emit_16(1702);
+emit_16(1769);
+emit_16(1703);
+emit_16(1769);
+emit_16(1702);
+emit_16(1769);
+emit_16(1703);
+emit_16(1770);
+emit_16(1704);
+emit_16(1770);
+emit_16(1703);
+emit_16(1770);
+emit_16(1704);
+emit_16(1771);
+emit_16(1705);
+emit_16(1771);
+emit_16(1704);
+emit_16(1771);
+emit_16(1705);
+emit_16(1772);
+emit_16(1706);
+emit_16(1772);
+emit_16(1705);
+emit_16(1772);
+emit_16(1706);
+emit_16(1773);
+emit_16(1707);
+emit_16(1773);
+emit_16(1706);
+emit_16(1773);
+emit_16(1707);
+emit_16(1774);
+emit_16(1708);
+emit_16(1774);
+emit_16(1707);
+emit_16(1774);
+emit_16(1708);
+emit_16(1775);
+emit_16(1709);
+emit_16(1775);
+emit_16(1708);
+emit_16(1775);
+emit_16(1709);
+emit_16(1776);
+emit_16(1710);
+emit_16(1776);
+emit_16(1709);
+emit_16(1776);
+emit_16(1710);
+emit_16(1777);
+emit_16(1711);
+emit_16(1777);
+emit_16(1710);
+emit_16(1777);
+emit_16(1711);
+emit_16(1778);
+emit_16(1712);
+emit_16(1778);
+emit_16(1711);
+emit_16(1778);
+emit_16(1712);
+emit_16(1779);
+emit_16(1713);
+emit_16(1779);
+emit_16(1712);
+emit_16(1779);
+emit_16(1713);
+emit_16(1780);
+emit_16(1714);
+emit_16(1780);
+emit_16(1713);
+emit_16(1780);
+emit_16(1714);
+emit_16(1781);
+emit_16(1715);
+emit_16(1781);
+emit_16(1714);
+emit_16(1782);
+emit_16(1716);
+emit_16(1783);
+emit_16(1717);
+emit_16(1783);
+emit_16(1716);
+emit_16(1783);
+emit_16(1717);
+emit_16(1784);
+emit_16(1718);
+emit_16(1784);
+emit_16(1717);
+emit_16(1784);
+emit_16(1718);
+emit_16(1785);
+emit_16(1719);
+emit_16(1785);
+emit_16(1718);
+emit_16(1785);
+emit_16(1719);
+emit_16(1786);
+emit_16(1720);
+emit_16(1786);
+emit_16(1719);
+emit_16(1786);
+emit_16(1720);
+emit_16(1787);
+emit_16(1721);
+emit_16(1787);
+emit_16(1720);
+emit_16(1787);
+emit_16(1721);
+emit_16(1788);
+emit_16(1722);
+emit_16(1788);
+emit_16(1721);
+emit_16(1788);
+emit_16(1722);
+emit_16(1789);
+emit_16(1723);
+emit_16(1789);
+emit_16(1722);
+emit_16(1789);
+emit_16(1723);
+emit_16(1790);
+emit_16(1724);
+emit_16(1790);
+emit_16(1723);
+emit_16(1790);
+emit_16(1724);
+emit_16(1791);
+emit_16(1725);
+emit_16(1791);
+emit_16(1724);
+emit_16(1791);
+emit_16(1725);
+emit_16(1792);
+emit_16(1726);
+emit_16(1792);
+emit_16(1725);
+emit_16(1792);
+emit_16(1726);
+emit_16(1793);
+emit_16(1727);
+emit_16(1793);
+emit_16(1726);
+emit_16(1793);
+emit_16(1727);
+emit_16(1794);
+emit_16(1728);
+emit_16(1794);
+emit_16(1727);
+emit_16(1794);
+emit_16(1728);
+emit_16(1795);
+emit_16(1729);
+emit_16(1795);
+emit_16(1728);
+emit_16(1795);
+emit_16(1729);
+emit_16(1796);
+emit_16(1730);
+emit_16(1796);
+emit_16(1729);
+emit_16(1796);
+emit_16(1730);
+emit_16(1797);
+emit_16(1731);
+emit_16(1797);
+emit_16(1730);
+emit_16(1797);
+emit_16(1731);
+emit_16(1798);
+emit_16(1732);
+emit_16(1798);
+emit_16(1731);
+emit_16(1798);
+emit_16(1732);
+emit_16(1799);
+emit_16(1733);
+emit_16(1799);
+emit_16(1732);
+emit_16(1799);
+emit_16(1733);
+emit_16(1800);
+emit_16(1734);
+emit_16(1800);
+emit_16(1733);
+emit_16(1800);
+emit_16(1734);
+emit_16(1801);
+emit_16(1735);
+emit_16(1801);
+emit_16(1734);
+emit_16(1801);
+emit_16(1735);
+emit_16(1802);
+emit_16(1736);
+emit_16(1802);
+emit_16(1735);
+emit_16(1802);
+emit_16(1736);
+emit_16(1803);
+emit_16(1737);
+emit_16(1803);
+emit_16(1736);
+emit_16(1803);
+emit_16(1737);
+emit_16(1804);
+emit_16(1738);
+emit_16(1804);
+emit_16(1737);
+emit_16(1804);
+emit_16(1738);
+emit_16(1805);
+emit_16(1739);
+emit_16(1805);
+emit_16(1738);
+emit_16(1805);
+emit_16(1739);
+emit_16(1806);
+emit_16(1740);
+emit_16(1806);
+emit_16(1739);
+emit_16(1806);
+emit_16(1740);
+emit_16(1807);
+emit_16(1741);
+emit_16(1807);
+emit_16(1740);
+emit_16(1807);
+emit_16(1741);
+emit_16(1808);
+emit_16(1742);
+emit_16(1808);
+emit_16(1741);
+emit_16(1808);
+emit_16(1742);
+emit_16(1809);
+emit_16(1743);
+emit_16(1809);
+emit_16(1742);
+emit_16(1809);
+emit_16(1743);
+emit_16(1810);
+emit_16(1744);
+emit_16(1810);
+emit_16(1743);
+emit_16(1810);
+emit_16(1744);
+emit_16(1811);
+emit_16(1745);
+emit_16(1811);
+emit_16(1744);
+emit_16(1811);
+emit_16(1745);
+emit_16(1812);
+emit_16(1746);
+emit_16(1812);
+emit_16(1745);
+emit_16(1812);
+emit_16(1746);
+emit_16(1813);
+emit_16(1747);
+emit_16(1813);
+emit_16(1746);
+emit_16(1813);
+emit_16(1747);
+emit_16(1814);
+emit_16(1748);
+emit_16(1814);
+emit_16(1747);
+emit_16(1814);
+emit_16(1748);
+emit_16(1815);
+emit_16(1749);
+emit_16(1815);
+emit_16(1748);
+emit_16(1815);
+emit_16(1749);
+emit_16(1816);
+emit_16(1750);
+emit_16(1816);
+emit_16(1749);
+emit_16(1816);
+emit_16(1750);
+emit_16(1817);
+emit_16(1751);
+emit_16(1817);
+emit_16(1750);
+emit_16(1817);
+emit_16(1751);
+emit_16(1818);
+emit_16(1752);
+emit_16(1818);
+emit_16(1751);
+emit_16(1818);
+emit_16(1752);
+emit_16(1819);
+emit_16(1753);
+emit_16(1819);
+emit_16(1752);
+emit_16(1819);
+emit_16(1753);
+emit_16(1820);
+emit_16(1754);
+emit_16(1820);
+emit_16(1753);
+emit_16(1820);
+emit_16(1754);
+emit_16(1821);
+emit_16(1755);
+emit_16(1821);
+emit_16(1754);
+emit_16(1821);
+emit_16(1755);
+emit_16(1822);
+emit_16(1756);
+emit_16(1822);
+emit_16(1755);
+emit_16(1822);
+emit_16(1756);
+emit_16(1823);
+emit_16(1757);
+emit_16(1823);
+emit_16(1756);
+emit_16(1823);
+emit_16(1757);
+emit_16(1824);
+emit_16(1758);
+emit_16(1824);
+emit_16(1757);
+emit_16(1824);
+emit_16(1758);
+emit_16(1825);
+emit_16(1759);
+emit_16(1825);
+emit_16(1758);
+emit_16(1825);
+emit_16(1759);
+emit_16(1826);
+emit_16(1760);
+emit_16(1826);
+emit_16(1759);
+emit_16(1826);
+emit_16(1760);
+emit_16(1827);
+emit_16(1761);
+emit_16(1827);
+emit_16(1760);
+emit_16(1827);
+emit_16(1761);
+emit_16(1828);
+emit_16(1762);
+emit_16(1828);
+emit_16(1761);
+emit_16(1828);
+emit_16(1762);
+emit_16(1829);
+emit_16(1763);
+emit_16(1829);
+emit_16(1762);
+emit_16(1829);
+emit_16(1763);
+emit_16(1830);
+emit_16(1764);
+emit_16(1830);
+emit_16(1763);
+emit_16(1830);
+emit_16(1764);
+emit_16(1831);
+emit_16(1765);
+emit_16(1831);
+emit_16(1764);
+emit_16(1831);
+emit_16(1765);
+emit_16(1832);
+emit_16(1766);
+emit_16(1832);
+emit_16(1765);
+emit_16(1832);
+emit_16(1766);
+emit_16(1833);
+emit_16(1767);
+emit_16(1833);
+emit_16(1766);
+emit_16(1833);
+emit_16(1767);
+emit_16(1834);
+emit_16(1768);
+emit_16(1834);
+emit_16(1767);
+emit_16(1834);
+emit_16(1768);
+emit_16(1835);
+emit_16(1769);
+emit_16(1835);
+emit_16(1768);
+emit_16(1835);
+emit_16(1769);
+emit_16(1836);
+emit_16(1770);
+emit_16(1836);
+emit_16(1769);
+emit_16(1836);
+emit_16(1770);
+emit_16(1837);
+emit_16(1771);
+emit_16(1837);
+emit_16(1770);
+emit_16(1837);
+emit_16(1771);
+emit_16(1838);
+emit_16(1772);
+emit_16(1838);
+emit_16(1771);
+emit_16(1838);
+emit_16(1772);
+emit_16(1839);
+emit_16(1773);
+emit_16(1839);
+emit_16(1772);
+emit_16(1839);
+emit_16(1773);
+emit_16(1840);
+emit_16(1774);
+emit_16(1840);
+emit_16(1773);
+emit_16(1840);
+emit_16(1774);
+emit_16(1841);
+emit_16(1775);
+emit_16(1841);
+emit_16(1774);
+emit_16(1841);
+emit_16(1775);
+emit_16(1842);
+emit_16(1776);
+emit_16(1842);
+emit_16(1775);
+emit_16(1842);
+emit_16(1776);
+emit_16(1843);
+emit_16(1777);
+emit_16(1843);
+emit_16(1776);
+emit_16(1843);
+emit_16(1777);
+emit_16(1844);
+emit_16(1778);
+emit_16(1844);
+emit_16(1777);
+emit_16(1844);
+emit_16(1778);
+emit_16(1845);
+emit_16(1779);
+emit_16(1845);
+emit_16(1778);
+emit_16(1845);
+emit_16(1779);
+emit_16(1846);
+emit_16(1780);
+emit_16(1846);
+emit_16(1779);
+emit_16(1846);
+emit_16(1780);
+emit_16(1847);
+emit_16(1781);
+emit_16(1847);
+emit_16(1780);
+emit_16(1848);
+emit_16(1782);
+emit_16(1849);
+emit_16(1783);
+emit_16(1849);
+emit_16(1782);
+emit_16(1849);
+emit_16(1783);
+emit_16(1850);
+emit_16(1784);
+emit_16(1850);
+emit_16(1783);
+emit_16(1850);
+emit_16(1784);
+emit_16(1851);
+emit_16(1785);
+emit_16(1851);
+emit_16(1784);
+emit_16(1851);
+emit_16(1785);
+emit_16(1852);
+emit_16(1786);
+emit_16(1852);
+emit_16(1785);
+emit_16(1852);
+emit_16(1786);
+emit_16(1853);
+emit_16(1787);
+emit_16(1853);
+emit_16(1786);
+emit_16(1853);
+emit_16(1787);
+emit_16(1854);
+emit_16(1788);
+emit_16(1854);
+emit_16(1787);
+emit_16(1854);
+emit_16(1788);
+emit_16(1855);
+emit_16(1789);
+emit_16(1855);
+emit_16(1788);
+emit_16(1855);
+emit_16(1789);
+emit_16(1856);
+emit_16(1790);
+emit_16(1856);
+emit_16(1789);
+emit_16(1856);
+emit_16(1790);
+emit_16(1857);
+emit_16(1791);
+emit_16(1857);
+emit_16(1790);
+emit_16(1857);
+emit_16(1791);
+emit_16(1858);
+emit_16(1792);
+emit_16(1858);
+emit_16(1791);
+emit_16(1858);
+emit_16(1792);
+emit_16(1859);
+emit_16(1793);
+emit_16(1859);
+emit_16(1792);
+emit_16(1859);
+emit_16(1793);
+emit_16(1860);
+emit_16(1794);
+emit_16(1860);
+emit_16(1793);
+emit_16(1860);
+emit_16(1794);
+emit_16(1861);
+emit_16(1795);
+emit_16(1861);
+emit_16(1794);
+emit_16(1861);
+emit_16(1795);
+emit_16(1862);
+emit_16(1796);
+emit_16(1862);
+emit_16(1795);
+emit_16(1862);
+emit_16(1796);
+emit_16(1863);
+emit_16(1797);
+emit_16(1863);
+emit_16(1796);
+emit_16(1863);
+emit_16(1797);
+emit_16(1864);
+emit_16(1798);
+emit_16(1864);
+emit_16(1797);
+emit_16(1864);
+emit_16(1798);
+emit_16(1865);
+emit_16(1799);
+emit_16(1865);
+emit_16(1798);
+emit_16(1865);
+emit_16(1799);
+emit_16(1866);
+emit_16(1800);
+emit_16(1866);
+emit_16(1799);
+emit_16(1866);
+emit_16(1800);
+emit_16(1867);
+emit_16(1801);
+emit_16(1867);
+emit_16(1800);
+emit_16(1867);
+emit_16(1801);
+emit_16(1868);
+emit_16(1802);
+emit_16(1868);
+emit_16(1801);
+emit_16(1868);
+emit_16(1802);
+emit_16(1869);
+emit_16(1803);
+emit_16(1869);
+emit_16(1802);
+emit_16(1869);
+emit_16(1803);
+emit_16(1870);
+emit_16(1804);
+emit_16(1870);
+emit_16(1803);
+emit_16(1870);
+emit_16(1804);
+emit_16(1871);
+emit_16(1805);
+emit_16(1871);
+emit_16(1804);
+emit_16(1871);
+emit_16(1805);
+emit_16(1872);
+emit_16(1806);
+emit_16(1872);
+emit_16(1805);
+emit_16(1872);
+emit_16(1806);
+emit_16(1873);
+emit_16(1807);
+emit_16(1873);
+emit_16(1806);
+emit_16(1873);
+emit_16(1807);
+emit_16(1874);
+emit_16(1808);
+emit_16(1874);
+emit_16(1807);
+emit_16(1874);
+emit_16(1808);
+emit_16(1875);
+emit_16(1809);
+emit_16(1875);
+emit_16(1808);
+emit_16(1875);
+emit_16(1809);
+emit_16(1876);
+emit_16(1810);
+emit_16(1876);
+emit_16(1809);
+emit_16(1876);
+emit_16(1810);
+emit_16(1877);
+emit_16(1811);
+emit_16(1877);
+emit_16(1810);
+emit_16(1877);
+emit_16(1811);
+emit_16(1878);
+emit_16(1812);
+emit_16(1878);
+emit_16(1811);
+emit_16(1878);
+emit_16(1812);
+emit_16(1879);
+emit_16(1813);
+emit_16(1879);
+emit_16(1812);
+emit_16(1879);
+emit_16(1813);
+emit_16(1880);
+emit_16(1814);
+emit_16(1880);
+emit_16(1813);
+emit_16(1880);
+emit_16(1814);
+emit_16(1881);
+emit_16(1815);
+emit_16(1881);
+emit_16(1814);
+emit_16(1881);
+emit_16(1815);
+emit_16(1882);
+emit_16(1816);
+emit_16(1882);
+emit_16(1815);
+emit_16(1882);
+emit_16(1816);
+emit_16(1883);
+emit_16(1817);
+emit_16(1883);
+emit_16(1816);
+emit_16(1883);
+emit_16(1817);
+emit_16(1884);
+emit_16(1818);
+emit_16(1884);
+emit_16(1817);
+emit_16(1884);
+emit_16(1818);
+emit_16(1885);
+emit_16(1819);
+emit_16(1885);
+emit_16(1818);
+emit_16(1885);
+emit_16(1819);
+emit_16(1886);
+emit_16(1820);
+emit_16(1886);
+emit_16(1819);
+emit_16(1886);
+emit_16(1820);
+emit_16(1887);
+emit_16(1821);
+emit_16(1887);
+emit_16(1820);
+emit_16(1887);
+emit_16(1821);
+emit_16(1888);
+emit_16(1822);
+emit_16(1888);
+emit_16(1821);
+emit_16(1888);
+emit_16(1822);
+emit_16(1889);
+emit_16(1823);
+emit_16(1889);
+emit_16(1822);
+emit_16(1889);
+emit_16(1823);
+emit_16(1890);
+emit_16(1824);
+emit_16(1890);
+emit_16(1823);
+emit_16(1890);
+emit_16(1824);
+emit_16(1891);
+emit_16(1825);
+emit_16(1891);
+emit_16(1824);
+emit_16(1891);
+emit_16(1825);
+emit_16(1892);
+emit_16(1826);
+emit_16(1892);
+emit_16(1825);
+emit_16(1892);
+emit_16(1826);
+emit_16(1893);
+emit_16(1827);
+emit_16(1893);
+emit_16(1826);
+emit_16(1893);
+emit_16(1827);
+emit_16(1894);
+emit_16(1828);
+emit_16(1894);
+emit_16(1827);
+emit_16(1894);
+emit_16(1828);
+emit_16(1895);
+emit_16(1829);
+emit_16(1895);
+emit_16(1828);
+emit_16(1895);
+emit_16(1829);
+emit_16(1896);
+emit_16(1830);
+emit_16(1896);
+emit_16(1829);
+emit_16(1896);
+emit_16(1830);
+emit_16(1897);
+emit_16(1831);
+emit_16(1897);
+emit_16(1830);
+emit_16(1897);
+emit_16(1831);
+emit_16(1898);
+emit_16(1832);
+emit_16(1898);
+emit_16(1831);
+emit_16(1898);
+emit_16(1832);
+emit_16(1899);
+emit_16(1833);
+emit_16(1899);
+emit_16(1832);
+emit_16(1899);
+emit_16(1833);
+emit_16(1900);
+emit_16(1834);
+emit_16(1900);
+emit_16(1833);
+emit_16(1900);
+emit_16(1834);
+emit_16(1901);
+emit_16(1835);
+emit_16(1901);
+emit_16(1834);
+emit_16(1901);
+emit_16(1835);
+emit_16(1902);
+emit_16(1836);
+emit_16(1902);
+emit_16(1835);
+emit_16(1902);
+emit_16(1836);
+emit_16(1903);
+emit_16(1837);
+emit_16(1903);
+emit_16(1836);
+emit_16(1903);
+emit_16(1837);
+emit_16(1904);
+emit_16(1838);
+emit_16(1904);
+emit_16(1837);
+emit_16(1904);
+emit_16(1838);
+emit_16(1905);
+emit_16(1839);
+emit_16(1905);
+emit_16(1838);
+emit_16(1905);
+emit_16(1839);
+emit_16(1906);
+emit_16(1840);
+emit_16(1906);
+emit_16(1839);
+emit_16(1906);
+emit_16(1840);
+emit_16(1907);
+emit_16(1841);
+emit_16(1907);
+emit_16(1840);
+emit_16(1907);
+emit_16(1841);
+emit_16(1908);
+emit_16(1842);
+emit_16(1908);
+emit_16(1841);
+emit_16(1908);
+emit_16(1842);
+emit_16(1909);
+emit_16(1843);
+emit_16(1909);
+emit_16(1842);
+emit_16(1909);
+emit_16(1843);
+emit_16(1910);
+emit_16(1844);
+emit_16(1910);
+emit_16(1843);
+emit_16(1910);
+emit_16(1844);
+emit_16(1911);
+emit_16(1845);
+emit_16(1911);
+emit_16(1844);
+emit_16(1911);
+emit_16(1845);
+emit_16(1912);
+emit_16(1846);
+emit_16(1912);
+emit_16(1845);
+emit_16(1912);
+emit_16(1846);
+emit_16(1913);
+emit_16(1847);
+emit_16(1913);
+emit_16(1846);
+emit_16(1914);
+emit_16(1848);
+emit_16(1915);
+emit_16(1849);
+emit_16(1915);
+emit_16(1848);
+emit_16(1915);
+emit_16(1849);
+emit_16(1916);
+emit_16(1850);
+emit_16(1916);
+emit_16(1849);
+emit_16(1916);
+emit_16(1850);
+emit_16(1917);
+emit_16(1851);
+emit_16(1917);
+emit_16(1850);
+emit_16(1917);
+emit_16(1851);
+emit_16(1918);
+emit_16(1852);
+emit_16(1918);
+emit_16(1851);
+emit_16(1918);
+emit_16(1852);
+emit_16(1919);
+emit_16(1853);
+emit_16(1919);
+emit_16(1852);
+emit_16(1919);
+emit_16(1853);
+emit_16(1920);
+emit_16(1854);
+emit_16(1920);
+emit_16(1853);
+emit_16(1920);
+emit_16(1854);
+emit_16(1921);
+emit_16(1855);
+emit_16(1921);
+emit_16(1854);
+emit_16(1921);
+emit_16(1855);
+emit_16(1922);
+emit_16(1856);
+emit_16(1922);
+emit_16(1855);
+emit_16(1922);
+emit_16(1856);
+emit_16(1923);
+emit_16(1857);
+emit_16(1923);
+emit_16(1856);
+emit_16(1923);
+emit_16(1857);
+emit_16(1924);
+emit_16(1858);
+emit_16(1924);
+emit_16(1857);
+emit_16(1924);
+emit_16(1858);
+emit_16(1925);
+emit_16(1859);
+emit_16(1925);
+emit_16(1858);
+emit_16(1925);
+emit_16(1859);
+emit_16(1926);
+emit_16(1860);
+emit_16(1926);
+emit_16(1859);
+emit_16(1926);
+emit_16(1860);
+emit_16(1927);
+emit_16(1861);
+emit_16(1927);
+emit_16(1860);
+emit_16(1927);
+emit_16(1861);
+emit_16(1928);
+emit_16(1862);
+emit_16(1928);
+emit_16(1861);
+emit_16(1928);
+emit_16(1862);
+emit_16(1929);
+emit_16(1863);
+emit_16(1929);
+emit_16(1862);
+emit_16(1929);
+emit_16(1863);
+emit_16(1930);
+emit_16(1864);
+emit_16(1930);
+emit_16(1863);
+emit_16(1930);
+emit_16(1864);
+emit_16(1931);
+emit_16(1865);
+emit_16(1931);
+emit_16(1864);
+emit_16(1931);
+emit_16(1865);
+emit_16(1932);
+emit_16(1866);
+emit_16(1932);
+emit_16(1865);
+emit_16(1932);
+emit_16(1866);
+emit_16(1933);
+emit_16(1867);
+emit_16(1933);
+emit_16(1866);
+emit_16(1933);
+emit_16(1867);
+emit_16(1934);
+emit_16(1868);
+emit_16(1934);
+emit_16(1867);
+emit_16(1934);
+emit_16(1868);
+emit_16(1935);
+emit_16(1869);
+emit_16(1935);
+emit_16(1868);
+emit_16(1935);
+emit_16(1869);
+emit_16(1936);
+emit_16(1870);
+emit_16(1936);
+emit_16(1869);
+emit_16(1936);
+emit_16(1870);
+emit_16(1937);
+emit_16(1871);
+emit_16(1937);
+emit_16(1870);
+emit_16(1937);
+emit_16(1871);
+emit_16(1938);
+emit_16(1872);
+emit_16(1938);
+emit_16(1871);
+emit_16(1938);
+emit_16(1872);
+emit_16(1939);
+emit_16(1873);
+emit_16(1939);
+emit_16(1872);
+emit_16(1939);
+emit_16(1873);
+emit_16(1940);
+emit_16(1874);
+emit_16(1940);
+emit_16(1873);
+emit_16(1940);
+emit_16(1874);
+emit_16(1941);
+emit_16(1875);
+emit_16(1941);
+emit_16(1874);
+emit_16(1941);
+emit_16(1875);
+emit_16(1942);
+emit_16(1876);
+emit_16(1942);
+emit_16(1875);
+emit_16(1942);
+emit_16(1876);
+emit_16(1943);
+emit_16(1877);
+emit_16(1943);
+emit_16(1876);
+emit_16(1943);
+emit_16(1877);
+emit_16(1944);
+emit_16(1878);
+emit_16(1944);
+emit_16(1877);
+emit_16(1944);
+emit_16(1878);
+emit_16(1945);
+emit_16(1879);
+emit_16(1945);
+emit_16(1878);
+emit_16(1945);
+emit_16(1879);
+emit_16(1946);
+emit_16(1880);
+emit_16(1946);
+emit_16(1879);
+emit_16(1946);
+emit_16(1880);
+emit_16(1947);
+emit_16(1881);
+emit_16(1947);
+emit_16(1880);
+emit_16(1947);
+emit_16(1881);
+emit_16(1948);
+emit_16(1882);
+emit_16(1948);
+emit_16(1881);
+emit_16(1948);
+emit_16(1882);
+emit_16(1949);
+emit_16(1883);
+emit_16(1949);
+emit_16(1882);
+emit_16(1949);
+emit_16(1883);
+emit_16(1950);
+emit_16(1884);
+emit_16(1950);
+emit_16(1883);
+emit_16(1950);
+emit_16(1884);
+emit_16(1951);
+emit_16(1885);
+emit_16(1951);
+emit_16(1884);
+emit_16(1951);
+emit_16(1885);
+emit_16(1952);
+emit_16(1886);
+emit_16(1952);
+emit_16(1885);
+emit_16(1952);
+emit_16(1886);
+emit_16(1953);
+emit_16(1887);
+emit_16(1953);
+emit_16(1886);
+emit_16(1953);
+emit_16(1887);
+emit_16(1954);
+emit_16(1888);
+emit_16(1954);
+emit_16(1887);
+emit_16(1954);
+emit_16(1888);
+emit_16(1955);
+emit_16(1889);
+emit_16(1955);
+emit_16(1888);
+emit_16(1955);
+emit_16(1889);
+emit_16(1956);
+emit_16(1890);
+emit_16(1956);
+emit_16(1889);
+emit_16(1956);
+emit_16(1890);
+emit_16(1957);
+emit_16(1891);
+emit_16(1957);
+emit_16(1890);
+emit_16(1957);
+emit_16(1891);
+emit_16(1958);
+emit_16(1892);
+emit_16(1958);
+emit_16(1891);
+emit_16(1958);
+emit_16(1892);
+emit_16(1959);
+emit_16(1893);
+emit_16(1959);
+emit_16(1892);
+emit_16(1959);
+emit_16(1893);
+emit_16(1960);
+emit_16(1894);
+emit_16(1960);
+emit_16(1893);
+emit_16(1960);
+emit_16(1894);
+emit_16(1961);
+emit_16(1895);
+emit_16(1961);
+emit_16(1894);
+emit_16(1961);
+emit_16(1895);
+emit_16(1962);
+emit_16(1896);
+emit_16(1962);
+emit_16(1895);
+emit_16(1962);
+emit_16(1896);
+emit_16(1963);
+emit_16(1897);
+emit_16(1963);
+emit_16(1896);
+emit_16(1963);
+emit_16(1897);
+emit_16(1964);
+emit_16(1898);
+emit_16(1964);
+emit_16(1897);
+emit_16(1964);
+emit_16(1898);
+emit_16(1965);
+emit_16(1899);
+emit_16(1965);
+emit_16(1898);
+emit_16(1965);
+emit_16(1899);
+emit_16(1966);
+emit_16(1900);
+emit_16(1966);
+emit_16(1899);
+emit_16(1966);
+emit_16(1900);
+emit_16(1967);
+emit_16(1901);
+emit_16(1967);
+emit_16(1900);
+emit_16(1967);
+emit_16(1901);
+emit_16(1968);
+emit_16(1902);
+emit_16(1968);
+emit_16(1901);
+emit_16(1968);
+emit_16(1902);
+emit_16(1969);
+emit_16(1903);
+emit_16(1969);
+emit_16(1902);
+emit_16(1969);
+emit_16(1903);
+emit_16(1970);
+emit_16(1904);
+emit_16(1970);
+emit_16(1903);
+emit_16(1970);
+emit_16(1904);
+emit_16(1971);
+emit_16(1905);
+emit_16(1971);
+emit_16(1904);
+emit_16(1971);
+emit_16(1905);
+emit_16(1972);
+emit_16(1906);
+emit_16(1972);
+emit_16(1905);
+emit_16(1972);
+emit_16(1906);
+emit_16(1973);
+emit_16(1907);
+emit_16(1973);
+emit_16(1906);
+emit_16(1973);
+emit_16(1907);
+emit_16(1974);
+emit_16(1908);
+emit_16(1974);
+emit_16(1907);
+emit_16(1974);
+emit_16(1908);
+emit_16(1975);
+emit_16(1909);
+emit_16(1975);
+emit_16(1908);
+emit_16(1975);
+emit_16(1909);
+emit_16(1976);
+emit_16(1910);
+emit_16(1976);
+emit_16(1909);
+emit_16(1976);
+emit_16(1910);
+emit_16(1977);
+emit_16(1911);
+emit_16(1977);
+emit_16(1910);
+emit_16(1977);
+emit_16(1911);
+emit_16(1978);
+emit_16(1912);
+emit_16(1978);
+emit_16(1911);
+emit_16(1978);
+emit_16(1912);
+emit_16(1979);
+emit_16(1913);
+emit_16(1979);
+emit_16(1912);
+emit_16(1980);
+emit_16(1914);
+emit_16(1981);
+emit_16(1915);
+emit_16(1981);
+emit_16(1914);
+emit_16(1981);
+emit_16(1915);
+emit_16(1982);
+emit_16(1916);
+emit_16(1982);
+emit_16(1915);
+emit_16(1982);
+emit_16(1916);
+emit_16(1983);
+emit_16(1917);
+emit_16(1983);
+emit_16(1916);
+emit_16(1983);
+emit_16(1917);
+emit_16(1984);
+emit_16(1918);
+emit_16(1984);
+emit_16(1917);
+emit_16(1984);
+emit_16(1918);
+emit_16(1985);
+emit_16(1919);
+emit_16(1985);
+emit_16(1918);
+emit_16(1985);
+emit_16(1919);
+emit_16(1986);
+emit_16(1920);
+emit_16(1986);
+emit_16(1919);
+emit_16(1986);
+emit_16(1920);
+emit_16(1987);
+emit_16(1921);
+emit_16(1987);
+emit_16(1920);
+emit_16(1987);
+emit_16(1921);
+emit_16(1988);
+emit_16(1922);
+emit_16(1988);
+emit_16(1921);
+emit_16(1988);
+emit_16(1922);
+emit_16(1989);
+emit_16(1923);
+emit_16(1989);
+emit_16(1922);
+emit_16(1989);
+emit_16(1923);
+emit_16(1990);
+emit_16(1924);
+emit_16(1990);
+emit_16(1923);
+emit_16(1990);
+emit_16(1924);
+emit_16(1991);
+emit_16(1925);
+emit_16(1991);
+emit_16(1924);
+emit_16(1991);
+emit_16(1925);
+emit_16(1992);
+emit_16(1926);
+emit_16(1992);
+emit_16(1925);
+emit_16(1992);
+emit_16(1926);
+emit_16(1993);
+emit_16(1927);
+emit_16(1993);
+emit_16(1926);
+emit_16(1993);
+emit_16(1927);
+emit_16(1994);
+emit_16(1928);
+emit_16(1994);
+emit_16(1927);
+emit_16(1994);
+emit_16(1928);
+emit_16(1995);
+emit_16(1929);
+emit_16(1995);
+emit_16(1928);
+emit_16(1995);
+emit_16(1929);
+emit_16(1996);
+emit_16(1930);
+emit_16(1996);
+emit_16(1929);
+emit_16(1996);
+emit_16(1930);
+emit_16(1997);
+emit_16(1931);
+emit_16(1997);
+emit_16(1930);
+emit_16(1997);
+emit_16(1931);
+emit_16(1998);
+emit_16(1932);
+emit_16(1998);
+emit_16(1931);
+emit_16(1998);
+emit_16(1932);
+emit_16(1999);
+emit_16(1933);
+emit_16(1999);
+emit_16(1932);
+emit_16(1999);
+emit_16(1933);
+emit_16(2000);
+emit_16(1934);
+emit_16(2000);
+emit_16(1933);
+emit_16(2000);
+emit_16(1934);
+emit_16(2001);
+emit_16(1935);
+emit_16(2001);
+emit_16(1934);
+emit_16(2001);
+emit_16(1935);
+emit_16(2002);
+emit_16(1936);
+emit_16(2002);
+emit_16(1935);
+emit_16(2002);
+emit_16(1936);
+emit_16(2003);
+emit_16(1937);
+emit_16(2003);
+emit_16(1936);
+emit_16(2003);
+emit_16(1937);
+emit_16(2004);
+emit_16(1938);
+emit_16(2004);
+emit_16(1937);
+emit_16(2004);
+emit_16(1938);
+emit_16(2005);
+emit_16(1939);
+emit_16(2005);
+emit_16(1938);
+emit_16(2005);
+emit_16(1939);
+emit_16(2006);
+emit_16(1940);
+emit_16(2006);
+emit_16(1939);
+emit_16(2006);
+emit_16(1940);
+emit_16(2007);
+emit_16(1941);
+emit_16(2007);
+emit_16(1940);
+emit_16(2007);
+emit_16(1941);
+emit_16(2008);
+emit_16(1942);
+emit_16(2008);
+emit_16(1941);
+emit_16(2008);
+emit_16(1942);
+emit_16(2009);
+emit_16(1943);
+emit_16(2009);
+emit_16(1942);
+emit_16(2009);
+emit_16(1943);
+emit_16(2010);
+emit_16(1944);
+emit_16(2010);
+emit_16(1943);
+emit_16(2010);
+emit_16(1944);
+emit_16(2011);
+emit_16(1945);
+emit_16(2011);
+emit_16(1944);
+emit_16(2011);
+emit_16(1945);
+emit_16(2012);
+emit_16(1946);
+emit_16(2012);
+emit_16(1945);
+emit_16(2012);
+emit_16(1946);
+emit_16(2013);
+emit_16(1947);
+emit_16(2013);
+emit_16(1946);
+emit_16(2013);
+emit_16(1947);
+emit_16(2014);
+emit_16(1948);
+emit_16(2014);
+emit_16(1947);
+emit_16(2014);
+emit_16(1948);
+emit_16(2015);
+emit_16(1949);
+emit_16(2015);
+emit_16(1948);
+emit_16(2015);
+emit_16(1949);
+emit_16(2016);
+emit_16(1950);
+emit_16(2016);
+emit_16(1949);
+emit_16(2016);
+emit_16(1950);
+emit_16(2017);
+emit_16(1951);
+emit_16(2017);
+emit_16(1950);
+emit_16(2017);
+emit_16(1951);
+emit_16(2018);
+emit_16(1952);
+emit_16(2018);
+emit_16(1951);
+emit_16(2018);
+emit_16(1952);
+emit_16(2019);
+emit_16(1953);
+emit_16(2019);
+emit_16(1952);
+emit_16(2019);
+emit_16(1953);
+emit_16(2020);
+emit_16(1954);
+emit_16(2020);
+emit_16(1953);
+emit_16(2020);
+emit_16(1954);
+emit_16(2021);
+emit_16(1955);
+emit_16(2021);
+emit_16(1954);
+emit_16(2021);
+emit_16(1955);
+emit_16(2022);
+emit_16(1956);
+emit_16(2022);
+emit_16(1955);
+emit_16(2022);
+emit_16(1956);
+emit_16(2023);
+emit_16(1957);
+emit_16(2023);
+emit_16(1956);
+emit_16(2023);
+emit_16(1957);
+emit_16(2024);
+emit_16(1958);
+emit_16(2024);
+emit_16(1957);
+emit_16(2024);
+emit_16(1958);
+emit_16(2025);
+emit_16(1959);
+emit_16(2025);
+emit_16(1958);
+emit_16(2025);
+emit_16(1959);
+emit_16(2026);
+emit_16(1960);
+emit_16(2026);
+emit_16(1959);
+emit_16(2026);
+emit_16(1960);
+emit_16(2027);
+emit_16(1961);
+emit_16(2027);
+emit_16(1960);
+emit_16(2027);
+emit_16(1961);
+emit_16(2028);
+emit_16(1962);
+emit_16(2028);
+emit_16(1961);
+emit_16(2028);
+emit_16(1962);
+emit_16(2029);
+emit_16(1963);
+emit_16(2029);
+emit_16(1962);
+emit_16(2029);
+emit_16(1963);
+emit_16(2030);
+emit_16(1964);
+emit_16(2030);
+emit_16(1963);
+emit_16(2030);
+emit_16(1964);
+emit_16(2031);
+emit_16(1965);
+emit_16(2031);
+emit_16(1964);
+emit_16(2031);
+emit_16(1965);
+emit_16(2032);
+emit_16(1966);
+emit_16(2032);
+emit_16(1965);
+emit_16(2032);
+emit_16(1966);
+emit_16(2033);
+emit_16(1967);
+emit_16(2033);
+emit_16(1966);
+emit_16(2033);
+emit_16(1967);
+emit_16(2034);
+emit_16(1968);
+emit_16(2034);
+emit_16(1967);
+emit_16(2034);
+emit_16(1968);
+emit_16(2035);
+emit_16(1969);
+emit_16(2035);
+emit_16(1968);
+emit_16(2035);
+emit_16(1969);
+emit_16(2036);
+emit_16(1970);
+emit_16(2036);
+emit_16(1969);
+emit_16(2036);
+emit_16(1970);
+emit_16(2037);
+emit_16(1971);
+emit_16(2037);
+emit_16(1970);
+emit_16(2037);
+emit_16(1971);
+emit_16(2038);
+emit_16(1972);
+emit_16(2038);
+emit_16(1971);
+emit_16(2038);
+emit_16(1972);
+emit_16(2039);
+emit_16(1973);
+emit_16(2039);
+emit_16(1972);
+emit_16(2039);
+emit_16(1973);
+emit_16(2040);
+emit_16(1974);
+emit_16(2040);
+emit_16(1973);
+emit_16(2040);
+emit_16(1974);
+emit_16(2041);
+emit_16(1975);
+emit_16(2041);
+emit_16(1974);
+emit_16(2041);
+emit_16(1975);
+emit_16(2042);
+emit_16(1976);
+emit_16(2042);
+emit_16(1975);
+emit_16(2042);
+emit_16(1976);
+emit_16(2043);
+emit_16(1977);
+emit_16(2043);
+emit_16(1976);
+emit_16(2043);
+emit_16(1977);
+emit_16(2044);
+emit_16(1978);
+emit_16(2044);
+emit_16(1977);
+emit_16(2044);
+emit_16(1978);
+emit_16(2045);
+emit_16(1979);
+emit_16(2045);
+emit_16(1978);
+emit_16(2046);
+emit_16(1980);
+emit_16(2047);
+emit_16(1981);
+emit_16(2047);
+emit_16(1980);
+emit_16(2047);
+emit_16(1981);
+emit_16(2048);
+emit_16(1982);
+emit_16(2048);
+emit_16(1981);
+emit_16(2048);
+emit_16(1982);
+emit_16(2049);
+emit_16(1983);
+emit_16(2049);
+emit_16(1982);
+emit_16(2049);
+emit_16(1983);
+emit_16(2050);
+emit_16(1984);
+emit_16(2050);
+emit_16(1983);
+emit_16(2050);
+emit_16(1984);
+emit_16(2051);
+emit_16(1985);
+emit_16(2051);
+emit_16(1984);
+emit_16(2051);
+emit_16(1985);
+emit_16(2052);
+emit_16(1986);
+emit_16(2052);
+emit_16(1985);
+emit_16(2052);
+emit_16(1986);
+emit_16(2053);
+emit_16(1987);
+emit_16(2053);
+emit_16(1986);
+emit_16(2053);
+emit_16(1987);
+emit_16(2054);
+emit_16(1988);
+emit_16(2054);
+emit_16(1987);
+emit_16(2054);
+emit_16(1988);
+emit_16(2055);
+emit_16(1989);
+emit_16(2055);
+emit_16(1988);
+emit_16(2055);
+emit_16(1989);
+emit_16(2056);
+emit_16(1990);
+emit_16(2056);
+emit_16(1989);
+emit_16(2056);
+emit_16(1990);
+emit_16(2057);
+emit_16(1991);
+emit_16(2057);
+emit_16(1990);
+emit_16(2057);
+emit_16(1991);
+emit_16(2058);
+emit_16(1992);
+emit_16(2058);
+emit_16(1991);
+emit_16(2058);
+emit_16(1992);
+emit_16(2059);
+emit_16(1993);
+emit_16(2059);
+emit_16(1992);
+emit_16(2059);
+emit_16(1993);
+emit_16(2060);
+emit_16(1994);
+emit_16(2060);
+emit_16(1993);
+emit_16(2060);
+emit_16(1994);
+emit_16(2061);
+emit_16(1995);
+emit_16(2061);
+emit_16(1994);
+emit_16(2061);
+emit_16(1995);
+emit_16(2062);
+emit_16(1996);
+emit_16(2062);
+emit_16(1995);
+emit_16(2062);
+emit_16(1996);
+emit_16(2063);
+emit_16(1997);
+emit_16(2063);
+emit_16(1996);
+emit_16(2063);
+emit_16(1997);
+emit_16(2064);
+emit_16(1998);
+emit_16(2064);
+emit_16(1997);
+emit_16(2064);
+emit_16(1998);
+emit_16(2065);
+emit_16(1999);
+emit_16(2065);
+emit_16(1998);
+emit_16(2065);
+emit_16(1999);
+emit_16(2066);
+emit_16(2000);
+emit_16(2066);
+emit_16(1999);
+emit_16(2066);
+emit_16(2000);
+emit_16(2067);
+emit_16(2001);
+emit_16(2067);
+emit_16(2000);
+emit_16(2067);
+emit_16(2001);
+emit_16(2068);
+emit_16(2002);
+emit_16(2068);
+emit_16(2001);
+emit_16(2068);
+emit_16(2002);
+emit_16(2069);
+emit_16(2003);
+emit_16(2069);
+emit_16(2002);
+emit_16(2069);
+emit_16(2003);
+emit_16(2070);
+emit_16(2004);
+emit_16(2070);
+emit_16(2003);
+emit_16(2070);
+emit_16(2004);
+emit_16(2071);
+emit_16(2005);
+emit_16(2071);
+emit_16(2004);
+emit_16(2071);
+emit_16(2005);
+emit_16(2072);
+emit_16(2006);
+emit_16(2072);
+emit_16(2005);
+emit_16(2072);
+emit_16(2006);
+emit_16(2073);
+emit_16(2007);
+emit_16(2073);
+emit_16(2006);
+emit_16(2073);
+emit_16(2007);
+emit_16(2074);
+emit_16(2008);
+emit_16(2074);
+emit_16(2007);
+emit_16(2074);
+emit_16(2008);
+emit_16(2075);
+emit_16(2009);
+emit_16(2075);
+emit_16(2008);
+emit_16(2075);
+emit_16(2009);
+emit_16(2076);
+emit_16(2010);
+emit_16(2076);
+emit_16(2009);
+emit_16(2076);
+emit_16(2010);
+emit_16(2077);
+emit_16(2011);
+emit_16(2077);
+emit_16(2010);
+emit_16(2077);
+emit_16(2011);
+emit_16(2078);
+emit_16(2012);
+emit_16(2078);
+emit_16(2011);
+emit_16(2078);
+emit_16(2012);
+emit_16(2079);
+emit_16(2013);
+emit_16(2079);
+emit_16(2012);
+emit_16(2079);
+emit_16(2013);
+emit_16(2080);
+emit_16(2014);
+emit_16(2080);
+emit_16(2013);
+emit_16(2080);
+emit_16(2014);
+emit_16(2081);
+emit_16(2015);
+emit_16(2081);
+emit_16(2014);
+emit_16(2081);
+emit_16(2015);
+emit_16(2082);
+emit_16(2016);
+emit_16(2082);
+emit_16(2015);
+emit_16(2082);
+emit_16(2016);
+emit_16(2083);
+emit_16(2017);
+emit_16(2083);
+emit_16(2016);
+emit_16(2083);
+emit_16(2017);
+emit_16(2084);
+emit_16(2018);
+emit_16(2084);
+emit_16(2017);
+emit_16(2084);
+emit_16(2018);
+emit_16(2085);
+emit_16(2019);
+emit_16(2085);
+emit_16(2018);
+emit_16(2085);
+emit_16(2019);
+emit_16(2086);
+emit_16(2020);
+emit_16(2086);
+emit_16(2019);
+emit_16(2086);
+emit_16(2020);
+emit_16(2087);
+emit_16(2021);
+emit_16(2087);
+emit_16(2020);
+emit_16(2087);
+emit_16(2021);
+emit_16(2088);
+emit_16(2022);
+emit_16(2088);
+emit_16(2021);
+emit_16(2088);
+emit_16(2022);
+emit_16(2089);
+emit_16(2023);
+emit_16(2089);
+emit_16(2022);
+emit_16(2089);
+emit_16(2023);
+emit_16(2090);
+emit_16(2024);
+emit_16(2090);
+emit_16(2023);
+emit_16(2090);
+emit_16(2024);
+emit_16(2091);
+emit_16(2025);
+emit_16(2091);
+emit_16(2024);
+emit_16(2091);
+emit_16(2025);
+emit_16(2092);
+emit_16(2026);
+emit_16(2092);
+emit_16(2025);
+emit_16(2092);
+emit_16(2026);
+emit_16(2093);
+emit_16(2027);
+emit_16(2093);
+emit_16(2026);
+emit_16(2093);
+emit_16(2027);
+emit_16(2094);
+emit_16(2028);
+emit_16(2094);
+emit_16(2027);
+emit_16(2094);
+emit_16(2028);
+emit_16(2095);
+emit_16(2029);
+emit_16(2095);
+emit_16(2028);
+emit_16(2095);
+emit_16(2029);
+emit_16(2096);
+emit_16(2030);
+emit_16(2096);
+emit_16(2029);
+emit_16(2096);
+emit_16(2030);
+emit_16(2097);
+emit_16(2031);
+emit_16(2097);
+emit_16(2030);
+emit_16(2097);
+emit_16(2031);
+emit_16(2098);
+emit_16(2032);
+emit_16(2098);
+emit_16(2031);
+emit_16(2098);
+emit_16(2032);
+emit_16(2099);
+emit_16(2033);
+emit_16(2099);
+emit_16(2032);
+emit_16(2099);
+emit_16(2033);
+emit_16(2100);
+emit_16(2034);
+emit_16(2100);
+emit_16(2033);
+emit_16(2100);
+emit_16(2034);
+emit_16(2101);
+emit_16(2035);
+emit_16(2101);
+emit_16(2034);
+emit_16(2101);
+emit_16(2035);
+emit_16(2102);
+emit_16(2036);
+emit_16(2102);
+emit_16(2035);
+emit_16(2102);
+emit_16(2036);
+emit_16(2103);
+emit_16(2037);
+emit_16(2103);
+emit_16(2036);
+emit_16(2103);
+emit_16(2037);
+emit_16(2104);
+emit_16(2038);
+emit_16(2104);
+emit_16(2037);
+emit_16(2104);
+emit_16(2038);
+emit_16(2105);
+emit_16(2039);
+emit_16(2105);
+emit_16(2038);
+emit_16(2105);
+emit_16(2039);
+emit_16(2106);
+emit_16(2040);
+emit_16(2106);
+emit_16(2039);
+emit_16(2106);
+emit_16(2040);
+emit_16(2107);
+emit_16(2041);
+emit_16(2107);
+emit_16(2040);
+emit_16(2107);
+emit_16(2041);
+emit_16(2108);
+emit_16(2042);
+emit_16(2108);
+emit_16(2041);
+emit_16(2108);
+emit_16(2042);
+emit_16(2109);
+emit_16(2043);
+emit_16(2109);
+emit_16(2042);
+emit_16(2109);
+emit_16(2043);
+emit_16(2110);
+emit_16(2044);
+emit_16(2110);
+emit_16(2043);
+emit_16(2110);
+emit_16(2044);
+emit_16(2111);
+emit_16(2045);
+emit_16(2111);
+emit_16(2044);
+emit_16(2112);
+emit_16(2046);
+emit_16(2113);
+emit_16(2047);
+emit_16(2113);
+emit_16(2046);
+emit_16(2113);
+emit_16(2047);
+emit_16(2114);
+emit_16(2048);
+emit_16(2114);
+emit_16(2047);
+emit_16(2114);
+emit_16(2048);
+emit_16(2115);
+emit_16(2049);
+emit_16(2115);
+emit_16(2048);
+emit_16(2115);
+emit_16(2049);
+emit_16(2116);
+emit_16(2050);
+emit_16(2116);
+emit_16(2049);
+emit_16(2116);
+emit_16(2050);
+emit_16(2117);
+emit_16(2051);
+emit_16(2117);
+emit_16(2050);
+emit_16(2117);
+emit_16(2051);
+emit_16(2118);
+emit_16(2052);
+emit_16(2118);
+emit_16(2051);
+emit_16(2118);
+emit_16(2052);
+emit_16(2119);
+emit_16(2053);
+emit_16(2119);
+emit_16(2052);
+emit_16(2119);
+emit_16(2053);
+emit_16(2120);
+emit_16(2054);
+emit_16(2120);
+emit_16(2053);
+emit_16(2120);
+emit_16(2054);
+emit_16(2121);
+emit_16(2055);
+emit_16(2121);
+emit_16(2054);
+emit_16(2121);
+emit_16(2055);
+emit_16(2122);
+emit_16(2056);
+emit_16(2122);
+emit_16(2055);
+emit_16(2122);
+emit_16(2056);
+emit_16(2123);
+emit_16(2057);
+emit_16(2123);
+emit_16(2056);
+emit_16(2123);
+emit_16(2057);
+emit_16(2124);
+emit_16(2058);
+emit_16(2124);
+emit_16(2057);
+emit_16(2124);
+emit_16(2058);
+emit_16(2125);
+emit_16(2059);
+emit_16(2125);
+emit_16(2058);
+emit_16(2125);
+emit_16(2059);
+emit_16(2126);
+emit_16(2060);
+emit_16(2126);
+emit_16(2059);
+emit_16(2126);
+emit_16(2060);
+emit_16(2127);
+emit_16(2061);
+emit_16(2127);
+emit_16(2060);
+emit_16(2127);
+emit_16(2061);
+emit_16(2128);
+emit_16(2062);
+emit_16(2128);
+emit_16(2061);
+emit_16(2128);
+emit_16(2062);
+emit_16(2129);
+emit_16(2063);
+emit_16(2129);
+emit_16(2062);
+emit_16(2129);
+emit_16(2063);
+emit_16(2130);
+emit_16(2064);
+emit_16(2130);
+emit_16(2063);
+emit_16(2130);
+emit_16(2064);
+emit_16(2131);
+emit_16(2065);
+emit_16(2131);
+emit_16(2064);
+emit_16(2131);
+emit_16(2065);
+emit_16(2132);
+emit_16(2066);
+emit_16(2132);
+emit_16(2065);
+emit_16(2132);
+emit_16(2066);
+emit_16(2133);
+emit_16(2067);
+emit_16(2133);
+emit_16(2066);
+emit_16(2133);
+emit_16(2067);
+emit_16(2134);
+emit_16(2068);
+emit_16(2134);
+emit_16(2067);
+emit_16(2134);
+emit_16(2068);
+emit_16(2135);
+emit_16(2069);
+emit_16(2135);
+emit_16(2068);
+emit_16(2135);
+emit_16(2069);
+emit_16(2136);
+emit_16(2070);
+emit_16(2136);
+emit_16(2069);
+emit_16(2136);
+emit_16(2070);
+emit_16(2137);
+emit_16(2071);
+emit_16(2137);
+emit_16(2070);
+emit_16(2137);
+emit_16(2071);
+emit_16(2138);
+emit_16(2072);
+emit_16(2138);
+emit_16(2071);
+emit_16(2138);
+emit_16(2072);
+emit_16(2139);
+emit_16(2073);
+emit_16(2139);
+emit_16(2072);
+emit_16(2139);
+emit_16(2073);
+emit_16(2140);
+emit_16(2074);
+emit_16(2140);
+emit_16(2073);
+emit_16(2140);
+emit_16(2074);
+emit_16(2141);
+emit_16(2075);
+emit_16(2141);
+emit_16(2074);
+emit_16(2141);
+emit_16(2075);
+emit_16(2142);
+emit_16(2076);
+emit_16(2142);
+emit_16(2075);
+emit_16(2142);
+emit_16(2076);
+emit_16(2143);
+emit_16(2077);
+emit_16(2143);
+emit_16(2076);
+emit_16(2143);
+emit_16(2077);
+emit_16(2144);
+emit_16(2078);
+emit_16(2144);
+emit_16(2077);
+emit_16(2144);
+emit_16(2078);
+emit_16(2145);
+emit_16(2079);
+emit_16(2145);
+emit_16(2078);
+emit_16(2145);
+emit_16(2079);
+emit_16(2146);
+emit_16(2080);
+emit_16(2146);
+emit_16(2079);
+emit_16(2146);
+emit_16(2080);
+emit_16(2147);
+emit_16(2081);
+emit_16(2147);
+emit_16(2080);
+emit_16(2147);
+emit_16(2081);
+emit_16(2148);
+emit_16(2082);
+emit_16(2148);
+emit_16(2081);
+emit_16(2148);
+emit_16(2082);
+emit_16(2149);
+emit_16(2083);
+emit_16(2149);
+emit_16(2082);
+emit_16(2149);
+emit_16(2083);
+emit_16(2150);
+emit_16(2084);
+emit_16(2150);
+emit_16(2083);
+emit_16(2150);
+emit_16(2084);
+emit_16(2151);
+emit_16(2085);
+emit_16(2151);
+emit_16(2084);
+emit_16(2151);
+emit_16(2085);
+emit_16(2152);
+emit_16(2086);
+emit_16(2152);
+emit_16(2085);
+emit_16(2152);
+emit_16(2086);
+emit_16(2153);
+emit_16(2087);
+emit_16(2153);
+emit_16(2086);
+emit_16(2153);
+emit_16(2087);
+emit_16(2154);
+emit_16(2088);
+emit_16(2154);
+emit_16(2087);
+emit_16(2154);
+emit_16(2088);
+emit_16(2155);
+emit_16(2089);
+emit_16(2155);
+emit_16(2088);
+emit_16(2155);
+emit_16(2089);
+emit_16(2156);
+emit_16(2090);
+emit_16(2156);
+emit_16(2089);
+emit_16(2156);
+emit_16(2090);
+emit_16(2157);
+emit_16(2091);
+emit_16(2157);
+emit_16(2090);
+emit_16(2157);
+emit_16(2091);
+emit_16(2158);
+emit_16(2092);
+emit_16(2158);
+emit_16(2091);
+emit_16(2158);
+emit_16(2092);
+emit_16(2159);
+emit_16(2093);
+emit_16(2159);
+emit_16(2092);
+emit_16(2159);
+emit_16(2093);
+emit_16(2160);
+emit_16(2094);
+emit_16(2160);
+emit_16(2093);
+emit_16(2160);
+emit_16(2094);
+emit_16(2161);
+emit_16(2095);
+emit_16(2161);
+emit_16(2094);
+emit_16(2161);
+emit_16(2095);
+emit_16(2162);
+emit_16(2096);
+emit_16(2162);
+emit_16(2095);
+emit_16(2162);
+emit_16(2096);
+emit_16(2163);
+emit_16(2097);
+emit_16(2163);
+emit_16(2096);
+emit_16(2163);
+emit_16(2097);
+emit_16(2164);
+emit_16(2098);
+emit_16(2164);
+emit_16(2097);
+emit_16(2164);
+emit_16(2098);
+emit_16(2165);
+emit_16(2099);
+emit_16(2165);
+emit_16(2098);
+emit_16(2165);
+emit_16(2099);
+emit_16(2166);
+emit_16(2100);
+emit_16(2166);
+emit_16(2099);
+emit_16(2166);
+emit_16(2100);
+emit_16(2167);
+emit_16(2101);
+emit_16(2167);
+emit_16(2100);
+emit_16(2167);
+emit_16(2101);
+emit_16(2168);
+emit_16(2102);
+emit_16(2168);
+emit_16(2101);
+emit_16(2168);
+emit_16(2102);
+emit_16(2169);
+emit_16(2103);
+emit_16(2169);
+emit_16(2102);
+emit_16(2169);
+emit_16(2103);
+emit_16(2170);
+emit_16(2104);
+emit_16(2170);
+emit_16(2103);
+emit_16(2170);
+emit_16(2104);
+emit_16(2171);
+emit_16(2105);
+emit_16(2171);
+emit_16(2104);
+emit_16(2171);
+emit_16(2105);
+emit_16(2172);
+emit_16(2106);
+emit_16(2172);
+emit_16(2105);
+emit_16(2172);
+emit_16(2106);
+emit_16(2173);
+emit_16(2107);
+emit_16(2173);
+emit_16(2106);
+emit_16(2173);
+emit_16(2107);
+emit_16(2174);
+emit_16(2108);
+emit_16(2174);
+emit_16(2107);
+emit_16(2174);
+emit_16(2108);
+emit_16(2175);
+emit_16(2109);
+emit_16(2175);
+emit_16(2108);
+emit_16(2175);
+emit_16(2109);
+emit_16(2176);
+emit_16(2110);
+emit_16(2176);
+emit_16(2109);
+emit_16(2176);
+emit_16(2110);
+emit_16(2177);
+emit_16(2111);
+emit_16(2177);
+emit_16(2110);
+emit_16(2178);
+emit_16(2112);
+emit_16(2179);
+emit_16(2113);
+emit_16(2179);
+emit_16(2112);
+emit_16(2179);
+emit_16(2113);
+emit_16(2180);
+emit_16(2114);
+emit_16(2180);
+emit_16(2113);
+emit_16(2180);
+emit_16(2114);
+emit_16(2181);
+emit_16(2115);
+emit_16(2181);
+emit_16(2114);
+emit_16(2181);
+emit_16(2115);
+emit_16(2182);
+emit_16(2116);
+emit_16(2182);
+emit_16(2115);
+emit_16(2182);
+emit_16(2116);
+emit_16(2183);
+emit_16(2117);
+emit_16(2183);
+emit_16(2116);
+emit_16(2183);
+emit_16(2117);
+emit_16(2184);
+emit_16(2118);
+emit_16(2184);
+emit_16(2117);
+emit_16(2184);
+emit_16(2118);
+emit_16(2185);
+emit_16(2119);
+emit_16(2185);
+emit_16(2118);
+emit_16(2185);
+emit_16(2119);
+emit_16(2186);
+emit_16(2120);
+emit_16(2186);
+emit_16(2119);
+emit_16(2186);
+emit_16(2120);
+emit_16(2187);
+emit_16(2121);
+emit_16(2187);
+emit_16(2120);
+emit_16(2187);
+emit_16(2121);
+emit_16(2188);
+emit_16(2122);
+emit_16(2188);
+emit_16(2121);
+emit_16(2188);
+emit_16(2122);
+emit_16(2189);
+emit_16(2123);
+emit_16(2189);
+emit_16(2122);
+emit_16(2189);
+emit_16(2123);
+emit_16(2190);
+emit_16(2124);
+emit_16(2190);
+emit_16(2123);
+emit_16(2190);
+emit_16(2124);
+emit_16(2191);
+emit_16(2125);
+emit_16(2191);
+emit_16(2124);
+emit_16(2191);
+emit_16(2125);
+emit_16(2192);
+emit_16(2126);
+emit_16(2192);
+emit_16(2125);
+emit_16(2192);
+emit_16(2126);
+emit_16(2193);
+emit_16(2127);
+emit_16(2193);
+emit_16(2126);
+emit_16(2193);
+emit_16(2127);
+emit_16(2194);
+emit_16(2128);
+emit_16(2194);
+emit_16(2127);
+emit_16(2194);
+emit_16(2128);
+emit_16(2195);
+emit_16(2129);
+emit_16(2195);
+emit_16(2128);
+emit_16(2195);
+emit_16(2129);
+emit_16(2196);
+emit_16(2130);
+emit_16(2196);
+emit_16(2129);
+emit_16(2196);
+emit_16(2130);
+emit_16(2197);
+emit_16(2131);
+emit_16(2197);
+emit_16(2130);
+emit_16(2197);
+emit_16(2131);
+emit_16(2198);
+emit_16(2132);
+emit_16(2198);
+emit_16(2131);
+emit_16(2198);
+emit_16(2132);
+emit_16(2199);
+emit_16(2133);
+emit_16(2199);
+emit_16(2132);
+emit_16(2199);
+emit_16(2133);
+emit_16(2200);
+emit_16(2134);
+emit_16(2200);
+emit_16(2133);
+emit_16(2200);
+emit_16(2134);
+emit_16(2201);
+emit_16(2135);
+emit_16(2201);
+emit_16(2134);
+emit_16(2201);
+emit_16(2135);
+emit_16(2202);
+emit_16(2136);
+emit_16(2202);
+emit_16(2135);
+emit_16(2202);
+emit_16(2136);
+emit_16(2203);
+emit_16(2137);
+emit_16(2203);
+emit_16(2136);
+emit_16(2203);
+emit_16(2137);
+emit_16(2204);
+emit_16(2138);
+emit_16(2204);
+emit_16(2137);
+emit_16(2204);
+emit_16(2138);
+emit_16(2205);
+emit_16(2139);
+emit_16(2205);
+emit_16(2138);
+emit_16(2205);
+emit_16(2139);
+emit_16(2206);
+emit_16(2140);
+emit_16(2206);
+emit_16(2139);
+emit_16(2206);
+emit_16(2140);
+emit_16(2207);
+emit_16(2141);
+emit_16(2207);
+emit_16(2140);
+emit_16(2207);
+emit_16(2141);
+emit_16(2208);
+emit_16(2142);
+emit_16(2208);
+emit_16(2141);
+emit_16(2208);
+emit_16(2142);
+emit_16(2209);
+emit_16(2143);
+emit_16(2209);
+emit_16(2142);
+emit_16(2209);
+emit_16(2143);
+emit_16(2210);
+emit_16(2144);
+emit_16(2210);
+emit_16(2143);
+emit_16(2210);
+emit_16(2144);
+emit_16(2211);
+emit_16(2145);
+emit_16(2211);
+emit_16(2144);
+emit_16(2211);
+emit_16(2145);
+emit_16(2212);
+emit_16(2146);
+emit_16(2212);
+emit_16(2145);
+emit_16(2212);
+emit_16(2146);
+emit_16(2213);
+emit_16(2147);
+emit_16(2213);
+emit_16(2146);
+emit_16(2213);
+emit_16(2147);
+emit_16(2214);
+emit_16(2148);
+emit_16(2214);
+emit_16(2147);
+emit_16(2214);
+emit_16(2148);
+emit_16(2215);
+emit_16(2149);
+emit_16(2215);
+emit_16(2148);
+emit_16(2215);
+emit_16(2149);
+emit_16(2216);
+emit_16(2150);
+emit_16(2216);
+emit_16(2149);
+emit_16(2216);
+emit_16(2150);
+emit_16(2217);
+emit_16(2151);
+emit_16(2217);
+emit_16(2150);
+emit_16(2217);
+emit_16(2151);
+emit_16(2218);
+emit_16(2152);
+emit_16(2218);
+emit_16(2151);
+emit_16(2218);
+emit_16(2152);
+emit_16(2219);
+emit_16(2153);
+emit_16(2219);
+emit_16(2152);
+emit_16(2219);
+emit_16(2153);
+emit_16(2220);
+emit_16(2154);
+emit_16(2220);
+emit_16(2153);
+emit_16(2220);
+emit_16(2154);
+emit_16(2221);
+emit_16(2155);
+emit_16(2221);
+emit_16(2154);
+emit_16(2221);
+emit_16(2155);
+emit_16(2222);
+emit_16(2156);
+emit_16(2222);
+emit_16(2155);
+emit_16(2222);
+emit_16(2156);
+emit_16(2223);
+emit_16(2157);
+emit_16(2223);
+emit_16(2156);
+emit_16(2223);
+emit_16(2157);
+emit_16(2224);
+emit_16(2158);
+emit_16(2224);
+emit_16(2157);
+emit_16(2224);
+emit_16(2158);
+emit_16(2225);
+emit_16(2159);
+emit_16(2225);
+emit_16(2158);
+emit_16(2225);
+emit_16(2159);
+emit_16(2226);
+emit_16(2160);
+emit_16(2226);
+emit_16(2159);
+emit_16(2226);
+emit_16(2160);
+emit_16(2227);
+emit_16(2161);
+emit_16(2227);
+emit_16(2160);
+emit_16(2227);
+emit_16(2161);
+emit_16(2228);
+emit_16(2162);
+emit_16(2228);
+emit_16(2161);
+emit_16(2228);
+emit_16(2162);
+emit_16(2229);
+emit_16(2163);
+emit_16(2229);
+emit_16(2162);
+emit_16(2229);
+emit_16(2163);
+emit_16(2230);
+emit_16(2164);
+emit_16(2230);
+emit_16(2163);
+emit_16(2230);
+emit_16(2164);
+emit_16(2231);
+emit_16(2165);
+emit_16(2231);
+emit_16(2164);
+emit_16(2231);
+emit_16(2165);
+emit_16(2232);
+emit_16(2166);
+emit_16(2232);
+emit_16(2165);
+emit_16(2232);
+emit_16(2166);
+emit_16(2233);
+emit_16(2167);
+emit_16(2233);
+emit_16(2166);
+emit_16(2233);
+emit_16(2167);
+emit_16(2234);
+emit_16(2168);
+emit_16(2234);
+emit_16(2167);
+emit_16(2234);
+emit_16(2168);
+emit_16(2235);
+emit_16(2169);
+emit_16(2235);
+emit_16(2168);
+emit_16(2235);
+emit_16(2169);
+emit_16(2236);
+emit_16(2170);
+emit_16(2236);
+emit_16(2169);
+emit_16(2236);
+emit_16(2170);
+emit_16(2237);
+emit_16(2171);
+emit_16(2237);
+emit_16(2170);
+emit_16(2237);
+emit_16(2171);
+emit_16(2238);
+emit_16(2172);
+emit_16(2238);
+emit_16(2171);
+emit_16(2238);
+emit_16(2172);
+emit_16(2239);
+emit_16(2173);
+emit_16(2239);
+emit_16(2172);
+emit_16(2239);
+emit_16(2173);
+emit_16(2240);
+emit_16(2174);
+emit_16(2240);
+emit_16(2173);
+emit_16(2240);
+emit_16(2174);
+emit_16(2241);
+emit_16(2175);
+emit_16(2241);
+emit_16(2174);
+emit_16(2241);
+emit_16(2175);
+emit_16(2242);
+emit_16(2176);
+emit_16(2242);
+emit_16(2175);
+emit_16(2242);
+emit_16(2176);
+emit_16(2243);
+emit_16(2177);
+emit_16(2243);
+emit_16(2176);
+emit_start(Landscape06Idx)
+emit_16(0);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(2);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(4);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(6);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(8);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(10);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(12);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(14);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(16);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(18);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(20);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(22);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(24);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(26);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(28);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(30);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(32);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(34);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(36);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(38);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(40);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(42);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(44);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(46);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(48);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(50);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(52);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(54);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(56);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(58);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(60);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(62);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(64);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(66);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(68);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(70);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(72);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(74);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(76);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(78);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(80);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(82);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(84);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(86);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(88);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(90);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(92);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(94);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(96);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(98);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(100);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(102);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(104);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(106);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(108);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(110);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(112);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(114);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(116);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(118);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(120);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(122);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(124);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(126);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(128);
+emit_16(129);
+emit_16(128);
+emit_16(127);
+emit_16(128);
+emit_16(129);
+emit_16(130);
+emit_16(131);
+emit_16(130);
+emit_16(129);
+emit_16(132);
+emit_16(0);
+emit_16(133);
+emit_16(2);
+emit_16(133);
+emit_16(0);
+emit_16(133);
+emit_16(2);
+emit_16(134);
+emit_16(4);
+emit_16(134);
+emit_16(2);
+emit_16(134);
+emit_16(4);
+emit_16(135);
+emit_16(6);
+emit_16(135);
+emit_16(4);
+emit_16(135);
+emit_16(6);
+emit_16(136);
+emit_16(8);
+emit_16(136);
+emit_16(6);
+emit_16(136);
+emit_16(8);
+emit_16(137);
+emit_16(10);
+emit_16(137);
+emit_16(8);
+emit_16(137);
+emit_16(10);
+emit_16(138);
+emit_16(12);
+emit_16(138);
+emit_16(10);
+emit_16(138);
+emit_16(12);
+emit_16(139);
+emit_16(14);
+emit_16(139);
+emit_16(12);
+emit_16(139);
+emit_16(14);
+emit_16(140);
+emit_16(16);
+emit_16(140);
+emit_16(14);
+emit_16(140);
+emit_16(16);
+emit_16(141);
+emit_16(18);
+emit_16(141);
+emit_16(16);
+emit_16(141);
+emit_16(18);
+emit_16(142);
+emit_16(20);
+emit_16(142);
+emit_16(18);
+emit_16(142);
+emit_16(20);
+emit_16(143);
+emit_16(22);
+emit_16(143);
+emit_16(20);
+emit_16(143);
+emit_16(22);
+emit_16(144);
+emit_16(24);
+emit_16(144);
+emit_16(22);
+emit_16(144);
+emit_16(24);
+emit_16(145);
+emit_16(26);
+emit_16(145);
+emit_16(24);
+emit_16(145);
+emit_16(26);
+emit_16(146);
+emit_16(28);
+emit_16(146);
+emit_16(26);
+emit_16(146);
+emit_16(28);
+emit_16(147);
+emit_16(30);
+emit_16(147);
+emit_16(28);
+emit_16(147);
+emit_16(30);
+emit_16(148);
+emit_16(32);
+emit_16(148);
+emit_16(30);
+emit_16(148);
+emit_16(32);
+emit_16(149);
+emit_16(34);
+emit_16(149);
+emit_16(32);
+emit_16(149);
+emit_16(34);
+emit_16(150);
+emit_16(36);
+emit_16(150);
+emit_16(34);
+emit_16(150);
+emit_16(36);
+emit_16(151);
+emit_16(38);
+emit_16(151);
+emit_16(36);
+emit_16(151);
+emit_16(38);
+emit_16(152);
+emit_16(40);
+emit_16(152);
+emit_16(38);
+emit_16(152);
+emit_16(40);
+emit_16(153);
+emit_16(42);
+emit_16(153);
+emit_16(40);
+emit_16(153);
+emit_16(42);
+emit_16(154);
+emit_16(44);
+emit_16(154);
+emit_16(42);
+emit_16(154);
+emit_16(44);
+emit_16(155);
+emit_16(46);
+emit_16(155);
+emit_16(44);
+emit_16(155);
+emit_16(46);
+emit_16(156);
+emit_16(48);
+emit_16(156);
+emit_16(46);
+emit_16(156);
+emit_16(48);
+emit_16(157);
+emit_16(50);
+emit_16(157);
+emit_16(48);
+emit_16(157);
+emit_16(50);
+emit_16(158);
+emit_16(52);
+emit_16(158);
+emit_16(50);
+emit_16(158);
+emit_16(52);
+emit_16(159);
+emit_16(54);
+emit_16(159);
+emit_16(52);
+emit_16(159);
+emit_16(54);
+emit_16(160);
+emit_16(56);
+emit_16(160);
+emit_16(54);
+emit_16(160);
+emit_16(56);
+emit_16(161);
+emit_16(58);
+emit_16(161);
+emit_16(56);
+emit_16(161);
+emit_16(58);
+emit_16(162);
+emit_16(60);
+emit_16(162);
+emit_16(58);
+emit_16(162);
+emit_16(60);
+emit_16(163);
+emit_16(62);
+emit_16(163);
+emit_16(60);
+emit_16(163);
+emit_16(62);
+emit_16(164);
+emit_16(64);
+emit_16(164);
+emit_16(62);
+emit_16(164);
+emit_16(64);
+emit_16(165);
+emit_16(66);
+emit_16(165);
+emit_16(64);
+emit_16(165);
+emit_16(66);
+emit_16(166);
+emit_16(68);
+emit_16(166);
+emit_16(66);
+emit_16(166);
+emit_16(68);
+emit_16(167);
+emit_16(70);
+emit_16(167);
+emit_16(68);
+emit_16(167);
+emit_16(70);
+emit_16(168);
+emit_16(72);
+emit_16(168);
+emit_16(70);
+emit_16(168);
+emit_16(72);
+emit_16(169);
+emit_16(74);
+emit_16(169);
+emit_16(72);
+emit_16(169);
+emit_16(74);
+emit_16(170);
+emit_16(76);
+emit_16(170);
+emit_16(74);
+emit_16(170);
+emit_16(76);
+emit_16(171);
+emit_16(78);
+emit_16(171);
+emit_16(76);
+emit_16(171);
+emit_16(78);
+emit_16(172);
+emit_16(80);
+emit_16(172);
+emit_16(78);
+emit_16(172);
+emit_16(80);
+emit_16(173);
+emit_16(82);
+emit_16(173);
+emit_16(80);
+emit_16(173);
+emit_16(82);
+emit_16(174);
+emit_16(84);
+emit_16(174);
+emit_16(82);
+emit_16(174);
+emit_16(84);
+emit_16(175);
+emit_16(86);
+emit_16(175);
+emit_16(84);
+emit_16(175);
+emit_16(86);
+emit_16(176);
+emit_16(88);
+emit_16(176);
+emit_16(86);
+emit_16(176);
+emit_16(88);
+emit_16(177);
+emit_16(90);
+emit_16(177);
+emit_16(88);
+emit_16(177);
+emit_16(90);
+emit_16(178);
+emit_16(92);
+emit_16(178);
+emit_16(90);
+emit_16(178);
+emit_16(92);
+emit_16(179);
+emit_16(94);
+emit_16(179);
+emit_16(92);
+emit_16(179);
+emit_16(94);
+emit_16(180);
+emit_16(96);
+emit_16(180);
+emit_16(94);
+emit_16(180);
+emit_16(96);
+emit_16(181);
+emit_16(98);
+emit_16(181);
+emit_16(96);
+emit_16(181);
+emit_16(98);
+emit_16(182);
+emit_16(100);
+emit_16(182);
+emit_16(98);
+emit_16(182);
+emit_16(100);
+emit_16(183);
+emit_16(102);
+emit_16(183);
+emit_16(100);
+emit_16(183);
+emit_16(102);
+emit_16(184);
+emit_16(104);
+emit_16(184);
+emit_16(102);
+emit_16(184);
+emit_16(104);
+emit_16(185);
+emit_16(106);
+emit_16(185);
+emit_16(104);
+emit_16(185);
+emit_16(106);
+emit_16(186);
+emit_16(108);
+emit_16(186);
+emit_16(106);
+emit_16(186);
+emit_16(108);
+emit_16(187);
+emit_16(110);
+emit_16(187);
+emit_16(108);
+emit_16(187);
+emit_16(110);
+emit_16(188);
+emit_16(112);
+emit_16(188);
+emit_16(110);
+emit_16(188);
+emit_16(112);
+emit_16(189);
+emit_16(114);
+emit_16(189);
+emit_16(112);
+emit_16(189);
+emit_16(114);
+emit_16(190);
+emit_16(116);
+emit_16(190);
+emit_16(114);
+emit_16(190);
+emit_16(116);
+emit_16(191);
+emit_16(118);
+emit_16(191);
+emit_16(116);
+emit_16(191);
+emit_16(118);
+emit_16(192);
+emit_16(120);
+emit_16(192);
+emit_16(118);
+emit_16(192);
+emit_16(120);
+emit_16(193);
+emit_16(122);
+emit_16(193);
+emit_16(120);
+emit_16(193);
+emit_16(122);
+emit_16(194);
+emit_16(124);
+emit_16(194);
+emit_16(122);
+emit_16(194);
+emit_16(124);
+emit_16(195);
+emit_16(126);
+emit_16(195);
+emit_16(124);
+emit_16(195);
+emit_16(126);
+emit_16(196);
+emit_16(128);
+emit_16(196);
+emit_16(126);
+emit_16(196);
+emit_16(128);
+emit_16(197);
+emit_16(130);
+emit_16(197);
+emit_16(128);
+emit_16(198);
+emit_16(132);
+emit_16(199);
+emit_16(133);
+emit_16(199);
+emit_16(132);
+emit_16(199);
+emit_16(133);
+emit_16(200);
+emit_16(134);
+emit_16(200);
+emit_16(133);
+emit_16(200);
+emit_16(134);
+emit_16(201);
+emit_16(135);
+emit_16(201);
+emit_16(134);
+emit_16(201);
+emit_16(135);
+emit_16(202);
+emit_16(136);
+emit_16(202);
+emit_16(135);
+emit_16(202);
+emit_16(136);
+emit_16(203);
+emit_16(137);
+emit_16(203);
+emit_16(136);
+emit_16(203);
+emit_16(137);
+emit_16(204);
+emit_16(138);
+emit_16(204);
+emit_16(137);
+emit_16(204);
+emit_16(138);
+emit_16(205);
+emit_16(139);
+emit_16(205);
+emit_16(138);
+emit_16(205);
+emit_16(139);
+emit_16(206);
+emit_16(140);
+emit_16(206);
+emit_16(139);
+emit_16(206);
+emit_16(140);
+emit_16(207);
+emit_16(141);
+emit_16(207);
+emit_16(140);
+emit_16(207);
+emit_16(141);
+emit_16(208);
+emit_16(142);
+emit_16(208);
+emit_16(141);
+emit_16(208);
+emit_16(142);
+emit_16(209);
+emit_16(143);
+emit_16(209);
+emit_16(142);
+emit_16(209);
+emit_16(143);
+emit_16(210);
+emit_16(144);
+emit_16(210);
+emit_16(143);
+emit_16(210);
+emit_16(144);
+emit_16(211);
+emit_16(145);
+emit_16(211);
+emit_16(144);
+emit_16(211);
+emit_16(145);
+emit_16(212);
+emit_16(146);
+emit_16(212);
+emit_16(145);
+emit_16(212);
+emit_16(146);
+emit_16(213);
+emit_16(147);
+emit_16(213);
+emit_16(146);
+emit_16(213);
+emit_16(147);
+emit_16(214);
+emit_16(148);
+emit_16(214);
+emit_16(147);
+emit_16(214);
+emit_16(148);
+emit_16(215);
+emit_16(149);
+emit_16(215);
+emit_16(148);
+emit_16(215);
+emit_16(149);
+emit_16(216);
+emit_16(150);
+emit_16(216);
+emit_16(149);
+emit_16(216);
+emit_16(150);
+emit_16(217);
+emit_16(151);
+emit_16(217);
+emit_16(150);
+emit_16(217);
+emit_16(151);
+emit_16(218);
+emit_16(152);
+emit_16(218);
+emit_16(151);
+emit_16(218);
+emit_16(152);
+emit_16(219);
+emit_16(153);
+emit_16(219);
+emit_16(152);
+emit_16(219);
+emit_16(153);
+emit_16(220);
+emit_16(154);
+emit_16(220);
+emit_16(153);
+emit_16(220);
+emit_16(154);
+emit_16(221);
+emit_16(155);
+emit_16(221);
+emit_16(154);
+emit_16(221);
+emit_16(155);
+emit_16(222);
+emit_16(156);
+emit_16(222);
+emit_16(155);
+emit_16(222);
+emit_16(156);
+emit_16(223);
+emit_16(157);
+emit_16(223);
+emit_16(156);
+emit_16(223);
+emit_16(157);
+emit_16(224);
+emit_16(158);
+emit_16(224);
+emit_16(157);
+emit_16(224);
+emit_16(158);
+emit_16(225);
+emit_16(159);
+emit_16(225);
+emit_16(158);
+emit_16(225);
+emit_16(159);
+emit_16(226);
+emit_16(160);
+emit_16(226);
+emit_16(159);
+emit_16(226);
+emit_16(160);
+emit_16(227);
+emit_16(161);
+emit_16(227);
+emit_16(160);
+emit_16(227);
+emit_16(161);
+emit_16(228);
+emit_16(162);
+emit_16(228);
+emit_16(161);
+emit_16(228);
+emit_16(162);
+emit_16(229);
+emit_16(163);
+emit_16(229);
+emit_16(162);
+emit_16(229);
+emit_16(163);
+emit_16(230);
+emit_16(164);
+emit_16(230);
+emit_16(163);
+emit_16(230);
+emit_16(164);
+emit_16(231);
+emit_16(165);
+emit_16(231);
+emit_16(164);
+emit_16(231);
+emit_16(165);
+emit_16(232);
+emit_16(166);
+emit_16(232);
+emit_16(165);
+emit_16(232);
+emit_16(166);
+emit_16(233);
+emit_16(167);
+emit_16(233);
+emit_16(166);
+emit_16(233);
+emit_16(167);
+emit_16(234);
+emit_16(168);
+emit_16(234);
+emit_16(167);
+emit_16(234);
+emit_16(168);
+emit_16(235);
+emit_16(169);
+emit_16(235);
+emit_16(168);
+emit_16(235);
+emit_16(169);
+emit_16(236);
+emit_16(170);
+emit_16(236);
+emit_16(169);
+emit_16(236);
+emit_16(170);
+emit_16(237);
+emit_16(171);
+emit_16(237);
+emit_16(170);
+emit_16(237);
+emit_16(171);
+emit_16(238);
+emit_16(172);
+emit_16(238);
+emit_16(171);
+emit_16(238);
+emit_16(172);
+emit_16(239);
+emit_16(173);
+emit_16(239);
+emit_16(172);
+emit_16(239);
+emit_16(173);
+emit_16(240);
+emit_16(174);
+emit_16(240);
+emit_16(173);
+emit_16(240);
+emit_16(174);
+emit_16(241);
+emit_16(175);
+emit_16(241);
+emit_16(174);
+emit_16(241);
+emit_16(175);
+emit_16(242);
+emit_16(176);
+emit_16(242);
+emit_16(175);
+emit_16(242);
+emit_16(176);
+emit_16(243);
+emit_16(177);
+emit_16(243);
+emit_16(176);
+emit_16(243);
+emit_16(177);
+emit_16(244);
+emit_16(178);
+emit_16(244);
+emit_16(177);
+emit_16(244);
+emit_16(178);
+emit_16(245);
+emit_16(179);
+emit_16(245);
+emit_16(178);
+emit_16(245);
+emit_16(179);
+emit_16(246);
+emit_16(180);
+emit_16(246);
+emit_16(179);
+emit_16(246);
+emit_16(180);
+emit_16(247);
+emit_16(181);
+emit_16(247);
+emit_16(180);
+emit_16(247);
+emit_16(181);
+emit_16(248);
+emit_16(182);
+emit_16(248);
+emit_16(181);
+emit_16(248);
+emit_16(182);
+emit_16(249);
+emit_16(183);
+emit_16(249);
+emit_16(182);
+emit_16(249);
+emit_16(183);
+emit_16(250);
+emit_16(184);
+emit_16(250);
+emit_16(183);
+emit_16(250);
+emit_16(184);
+emit_16(251);
+emit_16(185);
+emit_16(251);
+emit_16(184);
+emit_16(251);
+emit_16(185);
+emit_16(252);
+emit_16(186);
+emit_16(252);
+emit_16(185);
+emit_16(252);
+emit_16(186);
+emit_16(253);
+emit_16(187);
+emit_16(253);
+emit_16(186);
+emit_16(253);
+emit_16(187);
+emit_16(254);
+emit_16(188);
+emit_16(254);
+emit_16(187);
+emit_16(254);
+emit_16(188);
+emit_16(255);
+emit_16(189);
+emit_16(255);
+emit_16(188);
+emit_16(255);
+emit_16(189);
+emit_16(256);
+emit_16(190);
+emit_16(256);
+emit_16(189);
+emit_16(256);
+emit_16(190);
+emit_16(257);
+emit_16(191);
+emit_16(257);
+emit_16(190);
+emit_16(257);
+emit_16(191);
+emit_16(258);
+emit_16(192);
+emit_16(258);
+emit_16(191);
+emit_16(258);
+emit_16(192);
+emit_16(259);
+emit_16(193);
+emit_16(259);
+emit_16(192);
+emit_16(259);
+emit_16(193);
+emit_16(260);
+emit_16(194);
+emit_16(260);
+emit_16(193);
+emit_16(260);
+emit_16(194);
+emit_16(261);
+emit_16(195);
+emit_16(261);
+emit_16(194);
+emit_16(261);
+emit_16(195);
+emit_16(262);
+emit_16(196);
+emit_16(262);
+emit_16(195);
+emit_16(262);
+emit_16(196);
+emit_16(263);
+emit_16(197);
+emit_16(263);
+emit_16(196);
+emit_16(264);
+emit_16(198);
+emit_16(265);
+emit_16(199);
+emit_16(265);
+emit_16(198);
+emit_16(265);
+emit_16(199);
+emit_16(266);
+emit_16(200);
+emit_16(266);
+emit_16(199);
+emit_16(266);
+emit_16(200);
+emit_16(267);
+emit_16(201);
+emit_16(267);
+emit_16(200);
+emit_16(267);
+emit_16(201);
+emit_16(268);
+emit_16(202);
+emit_16(268);
+emit_16(201);
+emit_16(268);
+emit_16(202);
+emit_16(269);
+emit_16(203);
+emit_16(269);
+emit_16(202);
+emit_16(269);
+emit_16(203);
+emit_16(270);
+emit_16(204);
+emit_16(270);
+emit_16(203);
+emit_16(270);
+emit_16(204);
+emit_16(271);
+emit_16(205);
+emit_16(271);
+emit_16(204);
+emit_16(271);
+emit_16(205);
+emit_16(272);
+emit_16(206);
+emit_16(272);
+emit_16(205);
+emit_16(272);
+emit_16(206);
+emit_16(273);
+emit_16(207);
+emit_16(273);
+emit_16(206);
+emit_16(273);
+emit_16(207);
+emit_16(274);
+emit_16(208);
+emit_16(274);
+emit_16(207);
+emit_16(274);
+emit_16(208);
+emit_16(275);
+emit_16(209);
+emit_16(275);
+emit_16(208);
+emit_16(275);
+emit_16(209);
+emit_16(276);
+emit_16(210);
+emit_16(276);
+emit_16(209);
+emit_16(276);
+emit_16(210);
+emit_16(277);
+emit_16(211);
+emit_16(277);
+emit_16(210);
+emit_16(277);
+emit_16(211);
+emit_16(278);
+emit_16(212);
+emit_16(278);
+emit_16(211);
+emit_16(278);
+emit_16(212);
+emit_16(279);
+emit_16(213);
+emit_16(279);
+emit_16(212);
+emit_16(279);
+emit_16(213);
+emit_16(280);
+emit_16(214);
+emit_16(280);
+emit_16(213);
+emit_16(280);
+emit_16(214);
+emit_16(281);
+emit_16(215);
+emit_16(281);
+emit_16(214);
+emit_16(281);
+emit_16(215);
+emit_16(282);
+emit_16(216);
+emit_16(282);
+emit_16(215);
+emit_16(282);
+emit_16(216);
+emit_16(283);
+emit_16(217);
+emit_16(283);
+emit_16(216);
+emit_16(283);
+emit_16(217);
+emit_16(284);
+emit_16(218);
+emit_16(284);
+emit_16(217);
+emit_16(284);
+emit_16(218);
+emit_16(285);
+emit_16(219);
+emit_16(285);
+emit_16(218);
+emit_16(285);
+emit_16(219);
+emit_16(286);
+emit_16(220);
+emit_16(286);
+emit_16(219);
+emit_16(286);
+emit_16(220);
+emit_16(287);
+emit_16(221);
+emit_16(287);
+emit_16(220);
+emit_16(287);
+emit_16(221);
+emit_16(288);
+emit_16(222);
+emit_16(288);
+emit_16(221);
+emit_16(288);
+emit_16(222);
+emit_16(289);
+emit_16(223);
+emit_16(289);
+emit_16(222);
+emit_16(289);
+emit_16(223);
+emit_16(290);
+emit_16(224);
+emit_16(290);
+emit_16(223);
+emit_16(290);
+emit_16(224);
+emit_16(291);
+emit_16(225);
+emit_16(291);
+emit_16(224);
+emit_16(291);
+emit_16(225);
+emit_16(292);
+emit_16(226);
+emit_16(292);
+emit_16(225);
+emit_16(292);
+emit_16(226);
+emit_16(293);
+emit_16(227);
+emit_16(293);
+emit_16(226);
+emit_16(293);
+emit_16(227);
+emit_16(294);
+emit_16(228);
+emit_16(294);
+emit_16(227);
+emit_16(294);
+emit_16(228);
+emit_16(295);
+emit_16(229);
+emit_16(295);
+emit_16(228);
+emit_16(295);
+emit_16(229);
+emit_16(296);
+emit_16(230);
+emit_16(296);
+emit_16(229);
+emit_16(296);
+emit_16(230);
+emit_16(297);
+emit_16(231);
+emit_16(297);
+emit_16(230);
+emit_16(297);
+emit_16(231);
+emit_16(298);
+emit_16(232);
+emit_16(298);
+emit_16(231);
+emit_16(298);
+emit_16(232);
+emit_16(299);
+emit_16(233);
+emit_16(299);
+emit_16(232);
+emit_16(299);
+emit_16(233);
+emit_16(300);
+emit_16(234);
+emit_16(300);
+emit_16(233);
+emit_16(300);
+emit_16(234);
+emit_16(301);
+emit_16(235);
+emit_16(301);
+emit_16(234);
+emit_16(301);
+emit_16(235);
+emit_16(302);
+emit_16(236);
+emit_16(302);
+emit_16(235);
+emit_16(302);
+emit_16(236);
+emit_16(303);
+emit_16(237);
+emit_16(303);
+emit_16(236);
+emit_16(303);
+emit_16(237);
+emit_16(304);
+emit_16(238);
+emit_16(304);
+emit_16(237);
+emit_16(304);
+emit_16(238);
+emit_16(305);
+emit_16(239);
+emit_16(305);
+emit_16(238);
+emit_16(305);
+emit_16(239);
+emit_16(306);
+emit_16(240);
+emit_16(306);
+emit_16(239);
+emit_16(306);
+emit_16(240);
+emit_16(307);
+emit_16(241);
+emit_16(307);
+emit_16(240);
+emit_16(307);
+emit_16(241);
+emit_16(308);
+emit_16(242);
+emit_16(308);
+emit_16(241);
+emit_16(308);
+emit_16(242);
+emit_16(309);
+emit_16(243);
+emit_16(309);
+emit_16(242);
+emit_16(309);
+emit_16(243);
+emit_16(310);
+emit_16(244);
+emit_16(310);
+emit_16(243);
+emit_16(310);
+emit_16(244);
+emit_16(311);
+emit_16(245);
+emit_16(311);
+emit_16(244);
+emit_16(311);
+emit_16(245);
+emit_16(312);
+emit_16(246);
+emit_16(312);
+emit_16(245);
+emit_16(312);
+emit_16(246);
+emit_16(313);
+emit_16(247);
+emit_16(313);
+emit_16(246);
+emit_16(313);
+emit_16(247);
+emit_16(314);
+emit_16(248);
+emit_16(314);
+emit_16(247);
+emit_16(314);
+emit_16(248);
+emit_16(315);
+emit_16(249);
+emit_16(315);
+emit_16(248);
+emit_16(315);
+emit_16(249);
+emit_16(316);
+emit_16(250);
+emit_16(316);
+emit_16(249);
+emit_16(316);
+emit_16(250);
+emit_16(317);
+emit_16(251);
+emit_16(317);
+emit_16(250);
+emit_16(317);
+emit_16(251);
+emit_16(318);
+emit_16(252);
+emit_16(318);
+emit_16(251);
+emit_16(318);
+emit_16(252);
+emit_16(319);
+emit_16(253);
+emit_16(319);
+emit_16(252);
+emit_16(319);
+emit_16(253);
+emit_16(320);
+emit_16(254);
+emit_16(320);
+emit_16(253);
+emit_16(320);
+emit_16(254);
+emit_16(321);
+emit_16(255);
+emit_16(321);
+emit_16(254);
+emit_16(321);
+emit_16(255);
+emit_16(322);
+emit_16(256);
+emit_16(322);
+emit_16(255);
+emit_16(322);
+emit_16(256);
+emit_16(323);
+emit_16(257);
+emit_16(323);
+emit_16(256);
+emit_16(323);
+emit_16(257);
+emit_16(324);
+emit_16(258);
+emit_16(324);
+emit_16(257);
+emit_16(324);
+emit_16(258);
+emit_16(325);
+emit_16(259);
+emit_16(325);
+emit_16(258);
+emit_16(325);
+emit_16(259);
+emit_16(326);
+emit_16(260);
+emit_16(326);
+emit_16(259);
+emit_16(326);
+emit_16(260);
+emit_16(327);
+emit_16(261);
+emit_16(327);
+emit_16(260);
+emit_16(327);
+emit_16(261);
+emit_16(328);
+emit_16(262);
+emit_16(328);
+emit_16(261);
+emit_16(328);
+emit_16(262);
+emit_16(329);
+emit_16(263);
+emit_16(329);
+emit_16(262);
+emit_16(330);
+emit_16(264);
+emit_16(331);
+emit_16(265);
+emit_16(331);
+emit_16(264);
+emit_16(331);
+emit_16(265);
+emit_16(332);
+emit_16(266);
+emit_16(332);
+emit_16(265);
+emit_16(332);
+emit_16(266);
+emit_16(333);
+emit_16(267);
+emit_16(333);
+emit_16(266);
+emit_16(333);
+emit_16(267);
+emit_16(334);
+emit_16(268);
+emit_16(334);
+emit_16(267);
+emit_16(334);
+emit_16(268);
+emit_16(335);
+emit_16(269);
+emit_16(335);
+emit_16(268);
+emit_16(335);
+emit_16(269);
+emit_16(336);
+emit_16(270);
+emit_16(336);
+emit_16(269);
+emit_16(336);
+emit_16(270);
+emit_16(337);
+emit_16(271);
+emit_16(337);
+emit_16(270);
+emit_16(337);
+emit_16(271);
+emit_16(338);
+emit_16(272);
+emit_16(338);
+emit_16(271);
+emit_16(338);
+emit_16(272);
+emit_16(339);
+emit_16(273);
+emit_16(339);
+emit_16(272);
+emit_16(339);
+emit_16(273);
+emit_16(340);
+emit_16(274);
+emit_16(340);
+emit_16(273);
+emit_16(340);
+emit_16(274);
+emit_16(341);
+emit_16(275);
+emit_16(341);
+emit_16(274);
+emit_16(341);
+emit_16(275);
+emit_16(342);
+emit_16(276);
+emit_16(342);
+emit_16(275);
+emit_16(342);
+emit_16(276);
+emit_16(343);
+emit_16(277);
+emit_16(343);
+emit_16(276);
+emit_16(343);
+emit_16(277);
+emit_16(344);
+emit_16(278);
+emit_16(344);
+emit_16(277);
+emit_16(344);
+emit_16(278);
+emit_16(345);
+emit_16(279);
+emit_16(345);
+emit_16(278);
+emit_16(345);
+emit_16(279);
+emit_16(346);
+emit_16(280);
+emit_16(346);
+emit_16(279);
+emit_16(346);
+emit_16(280);
+emit_16(347);
+emit_16(281);
+emit_16(347);
+emit_16(280);
+emit_16(347);
+emit_16(281);
+emit_16(348);
+emit_16(282);
+emit_16(348);
+emit_16(281);
+emit_16(348);
+emit_16(282);
+emit_16(349);
+emit_16(283);
+emit_16(349);
+emit_16(282);
+emit_16(349);
+emit_16(283);
+emit_16(350);
+emit_16(284);
+emit_16(350);
+emit_16(283);
+emit_16(350);
+emit_16(284);
+emit_16(351);
+emit_16(285);
+emit_16(351);
+emit_16(284);
+emit_16(351);
+emit_16(285);
+emit_16(352);
+emit_16(286);
+emit_16(352);
+emit_16(285);
+emit_16(352);
+emit_16(286);
+emit_16(353);
+emit_16(287);
+emit_16(353);
+emit_16(286);
+emit_16(353);
+emit_16(287);
+emit_16(354);
+emit_16(288);
+emit_16(354);
+emit_16(287);
+emit_16(354);
+emit_16(288);
+emit_16(355);
+emit_16(289);
+emit_16(355);
+emit_16(288);
+emit_16(355);
+emit_16(289);
+emit_16(356);
+emit_16(290);
+emit_16(356);
+emit_16(289);
+emit_16(356);
+emit_16(290);
+emit_16(357);
+emit_16(291);
+emit_16(357);
+emit_16(290);
+emit_16(357);
+emit_16(291);
+emit_16(358);
+emit_16(292);
+emit_16(358);
+emit_16(291);
+emit_16(358);
+emit_16(292);
+emit_16(359);
+emit_16(293);
+emit_16(359);
+emit_16(292);
+emit_16(359);
+emit_16(293);
+emit_16(360);
+emit_16(294);
+emit_16(360);
+emit_16(293);
+emit_16(360);
+emit_16(294);
+emit_16(361);
+emit_16(295);
+emit_16(361);
+emit_16(294);
+emit_16(361);
+emit_16(295);
+emit_16(362);
+emit_16(296);
+emit_16(362);
+emit_16(295);
+emit_16(362);
+emit_16(296);
+emit_16(363);
+emit_16(297);
+emit_16(363);
+emit_16(296);
+emit_16(363);
+emit_16(297);
+emit_16(364);
+emit_16(298);
+emit_16(364);
+emit_16(297);
+emit_16(364);
+emit_16(298);
+emit_16(365);
+emit_16(299);
+emit_16(365);
+emit_16(298);
+emit_16(365);
+emit_16(299);
+emit_16(366);
+emit_16(300);
+emit_16(366);
+emit_16(299);
+emit_16(366);
+emit_16(300);
+emit_16(367);
+emit_16(301);
+emit_16(367);
+emit_16(300);
+emit_16(367);
+emit_16(301);
+emit_16(368);
+emit_16(302);
+emit_16(368);
+emit_16(301);
+emit_16(368);
+emit_16(302);
+emit_16(369);
+emit_16(303);
+emit_16(369);
+emit_16(302);
+emit_16(369);
+emit_16(303);
+emit_16(370);
+emit_16(304);
+emit_16(370);
+emit_16(303);
+emit_16(370);
+emit_16(304);
+emit_16(371);
+emit_16(305);
+emit_16(371);
+emit_16(304);
+emit_16(371);
+emit_16(305);
+emit_16(372);
+emit_16(306);
+emit_16(372);
+emit_16(305);
+emit_16(372);
+emit_16(306);
+emit_16(373);
+emit_16(307);
+emit_16(373);
+emit_16(306);
+emit_16(373);
+emit_16(307);
+emit_16(374);
+emit_16(308);
+emit_16(374);
+emit_16(307);
+emit_16(374);
+emit_16(308);
+emit_16(375);
+emit_16(309);
+emit_16(375);
+emit_16(308);
+emit_16(375);
+emit_16(309);
+emit_16(376);
+emit_16(310);
+emit_16(376);
+emit_16(309);
+emit_16(376);
+emit_16(310);
+emit_16(377);
+emit_16(311);
+emit_16(377);
+emit_16(310);
+emit_16(377);
+emit_16(311);
+emit_16(378);
+emit_16(312);
+emit_16(378);
+emit_16(311);
+emit_16(378);
+emit_16(312);
+emit_16(379);
+emit_16(313);
+emit_16(379);
+emit_16(312);
+emit_16(379);
+emit_16(313);
+emit_16(380);
+emit_16(314);
+emit_16(380);
+emit_16(313);
+emit_16(380);
+emit_16(314);
+emit_16(381);
+emit_16(315);
+emit_16(381);
+emit_16(314);
+emit_16(381);
+emit_16(315);
+emit_16(382);
+emit_16(316);
+emit_16(382);
+emit_16(315);
+emit_16(382);
+emit_16(316);
+emit_16(383);
+emit_16(317);
+emit_16(383);
+emit_16(316);
+emit_16(383);
+emit_16(317);
+emit_16(384);
+emit_16(318);
+emit_16(384);
+emit_16(317);
+emit_16(384);
+emit_16(318);
+emit_16(385);
+emit_16(319);
+emit_16(385);
+emit_16(318);
+emit_16(385);
+emit_16(319);
+emit_16(386);
+emit_16(320);
+emit_16(386);
+emit_16(319);
+emit_16(386);
+emit_16(320);
+emit_16(387);
+emit_16(321);
+emit_16(387);
+emit_16(320);
+emit_16(387);
+emit_16(321);
+emit_16(388);
+emit_16(322);
+emit_16(388);
+emit_16(321);
+emit_16(388);
+emit_16(322);
+emit_16(389);
+emit_16(323);
+emit_16(389);
+emit_16(322);
+emit_16(389);
+emit_16(323);
+emit_16(390);
+emit_16(324);
+emit_16(390);
+emit_16(323);
+emit_16(390);
+emit_16(324);
+emit_16(391);
+emit_16(325);
+emit_16(391);
+emit_16(324);
+emit_16(391);
+emit_16(325);
+emit_16(392);
+emit_16(326);
+emit_16(392);
+emit_16(325);
+emit_16(392);
+emit_16(326);
+emit_16(393);
+emit_16(327);
+emit_16(393);
+emit_16(326);
+emit_16(393);
+emit_16(327);
+emit_16(394);
+emit_16(328);
+emit_16(394);
+emit_16(327);
+emit_16(394);
+emit_16(328);
+emit_16(395);
+emit_16(329);
+emit_16(395);
+emit_16(328);
+emit_16(396);
+emit_16(330);
+emit_16(397);
+emit_16(331);
+emit_16(397);
+emit_16(330);
+emit_16(397);
+emit_16(331);
+emit_16(398);
+emit_16(332);
+emit_16(398);
+emit_16(331);
+emit_16(398);
+emit_16(332);
+emit_16(399);
+emit_16(333);
+emit_16(399);
+emit_16(332);
+emit_16(399);
+emit_16(333);
+emit_16(400);
+emit_16(334);
+emit_16(400);
+emit_16(333);
+emit_16(400);
+emit_16(334);
+emit_16(401);
+emit_16(335);
+emit_16(401);
+emit_16(334);
+emit_16(401);
+emit_16(335);
+emit_16(402);
+emit_16(336);
+emit_16(402);
+emit_16(335);
+emit_16(402);
+emit_16(336);
+emit_16(403);
+emit_16(337);
+emit_16(403);
+emit_16(336);
+emit_16(403);
+emit_16(337);
+emit_16(404);
+emit_16(338);
+emit_16(404);
+emit_16(337);
+emit_16(404);
+emit_16(338);
+emit_16(405);
+emit_16(339);
+emit_16(405);
+emit_16(338);
+emit_16(405);
+emit_16(339);
+emit_16(406);
+emit_16(340);
+emit_16(406);
+emit_16(339);
+emit_16(406);
+emit_16(340);
+emit_16(407);
+emit_16(341);
+emit_16(407);
+emit_16(340);
+emit_16(407);
+emit_16(341);
+emit_16(408);
+emit_16(342);
+emit_16(408);
+emit_16(341);
+emit_16(408);
+emit_16(342);
+emit_16(409);
+emit_16(343);
+emit_16(409);
+emit_16(342);
+emit_16(409);
+emit_16(343);
+emit_16(410);
+emit_16(344);
+emit_16(410);
+emit_16(343);
+emit_16(410);
+emit_16(344);
+emit_16(411);
+emit_16(345);
+emit_16(411);
+emit_16(344);
+emit_16(411);
+emit_16(345);
+emit_16(412);
+emit_16(346);
+emit_16(412);
+emit_16(345);
+emit_16(412);
+emit_16(346);
+emit_16(413);
+emit_16(347);
+emit_16(413);
+emit_16(346);
+emit_16(413);
+emit_16(347);
+emit_16(414);
+emit_16(348);
+emit_16(414);
+emit_16(347);
+emit_16(414);
+emit_16(348);
+emit_16(415);
+emit_16(349);
+emit_16(415);
+emit_16(348);
+emit_16(415);
+emit_16(349);
+emit_16(416);
+emit_16(350);
+emit_16(416);
+emit_16(349);
+emit_16(416);
+emit_16(350);
+emit_16(417);
+emit_16(351);
+emit_16(417);
+emit_16(350);
+emit_16(417);
+emit_16(351);
+emit_16(418);
+emit_16(352);
+emit_16(418);
+emit_16(351);
+emit_16(418);
+emit_16(352);
+emit_16(419);
+emit_16(353);
+emit_16(419);
+emit_16(352);
+emit_16(419);
+emit_16(353);
+emit_16(420);
+emit_16(354);
+emit_16(420);
+emit_16(353);
+emit_16(420);
+emit_16(354);
+emit_16(421);
+emit_16(355);
+emit_16(421);
+emit_16(354);
+emit_16(421);
+emit_16(355);
+emit_16(422);
+emit_16(356);
+emit_16(422);
+emit_16(355);
+emit_16(422);
+emit_16(356);
+emit_16(423);
+emit_16(357);
+emit_16(423);
+emit_16(356);
+emit_16(423);
+emit_16(357);
+emit_16(424);
+emit_16(358);
+emit_16(424);
+emit_16(357);
+emit_16(424);
+emit_16(358);
+emit_16(425);
+emit_16(359);
+emit_16(425);
+emit_16(358);
+emit_16(425);
+emit_16(359);
+emit_16(426);
+emit_16(360);
+emit_16(426);
+emit_16(359);
+emit_16(426);
+emit_16(360);
+emit_16(427);
+emit_16(361);
+emit_16(427);
+emit_16(360);
+emit_16(427);
+emit_16(361);
+emit_16(428);
+emit_16(362);
+emit_16(428);
+emit_16(361);
+emit_16(428);
+emit_16(362);
+emit_16(429);
+emit_16(363);
+emit_16(429);
+emit_16(362);
+emit_16(429);
+emit_16(363);
+emit_16(430);
+emit_16(364);
+emit_16(430);
+emit_16(363);
+emit_16(430);
+emit_16(364);
+emit_16(431);
+emit_16(365);
+emit_16(431);
+emit_16(364);
+emit_16(431);
+emit_16(365);
+emit_16(432);
+emit_16(366);
+emit_16(432);
+emit_16(365);
+emit_16(432);
+emit_16(366);
+emit_16(433);
+emit_16(367);
+emit_16(433);
+emit_16(366);
+emit_16(433);
+emit_16(367);
+emit_16(434);
+emit_16(368);
+emit_16(434);
+emit_16(367);
+emit_16(434);
+emit_16(368);
+emit_16(435);
+emit_16(369);
+emit_16(435);
+emit_16(368);
+emit_16(435);
+emit_16(369);
+emit_16(436);
+emit_16(370);
+emit_16(436);
+emit_16(369);
+emit_16(436);
+emit_16(370);
+emit_16(437);
+emit_16(371);
+emit_16(437);
+emit_16(370);
+emit_16(437);
+emit_16(371);
+emit_16(438);
+emit_16(372);
+emit_16(438);
+emit_16(371);
+emit_16(438);
+emit_16(372);
+emit_16(439);
+emit_16(373);
+emit_16(439);
+emit_16(372);
+emit_16(439);
+emit_16(373);
+emit_16(440);
+emit_16(374);
+emit_16(440);
+emit_16(373);
+emit_16(440);
+emit_16(374);
+emit_16(441);
+emit_16(375);
+emit_16(441);
+emit_16(374);
+emit_16(441);
+emit_16(375);
+emit_16(442);
+emit_16(376);
+emit_16(442);
+emit_16(375);
+emit_16(442);
+emit_16(376);
+emit_16(443);
+emit_16(377);
+emit_16(443);
+emit_16(376);
+emit_16(443);
+emit_16(377);
+emit_16(444);
+emit_16(378);
+emit_16(444);
+emit_16(377);
+emit_16(444);
+emit_16(378);
+emit_16(445);
+emit_16(379);
+emit_16(445);
+emit_16(378);
+emit_16(445);
+emit_16(379);
+emit_16(446);
+emit_16(380);
+emit_16(446);
+emit_16(379);
+emit_16(446);
+emit_16(380);
+emit_16(447);
+emit_16(381);
+emit_16(447);
+emit_16(380);
+emit_16(447);
+emit_16(381);
+emit_16(448);
+emit_16(382);
+emit_16(448);
+emit_16(381);
+emit_16(448);
+emit_16(382);
+emit_16(449);
+emit_16(383);
+emit_16(449);
+emit_16(382);
+emit_16(449);
+emit_16(383);
+emit_16(450);
+emit_16(384);
+emit_16(450);
+emit_16(383);
+emit_16(450);
+emit_16(384);
+emit_16(451);
+emit_16(385);
+emit_16(451);
+emit_16(384);
+emit_16(451);
+emit_16(385);
+emit_16(452);
+emit_16(386);
+emit_16(452);
+emit_16(385);
+emit_16(452);
+emit_16(386);
+emit_16(453);
+emit_16(387);
+emit_16(453);
+emit_16(386);
+emit_16(453);
+emit_16(387);
+emit_16(454);
+emit_16(388);
+emit_16(454);
+emit_16(387);
+emit_16(454);
+emit_16(388);
+emit_16(455);
+emit_16(389);
+emit_16(455);
+emit_16(388);
+emit_16(455);
+emit_16(389);
+emit_16(456);
+emit_16(390);
+emit_16(456);
+emit_16(389);
+emit_16(456);
+emit_16(390);
+emit_16(457);
+emit_16(391);
+emit_16(457);
+emit_16(390);
+emit_16(457);
+emit_16(391);
+emit_16(458);
+emit_16(392);
+emit_16(458);
+emit_16(391);
+emit_16(458);
+emit_16(392);
+emit_16(459);
+emit_16(393);
+emit_16(459);
+emit_16(392);
+emit_16(459);
+emit_16(393);
+emit_16(460);
+emit_16(394);
+emit_16(460);
+emit_16(393);
+emit_16(460);
+emit_16(394);
+emit_16(461);
+emit_16(395);
+emit_16(461);
+emit_16(394);
+emit_16(462);
+emit_16(396);
+emit_16(463);
+emit_16(397);
+emit_16(463);
+emit_16(396);
+emit_16(463);
+emit_16(397);
+emit_16(464);
+emit_16(398);
+emit_16(464);
+emit_16(397);
+emit_16(464);
+emit_16(398);
+emit_16(465);
+emit_16(399);
+emit_16(465);
+emit_16(398);
+emit_16(465);
+emit_16(399);
+emit_16(466);
+emit_16(400);
+emit_16(466);
+emit_16(399);
+emit_16(466);
+emit_16(400);
+emit_16(467);
+emit_16(401);
+emit_16(467);
+emit_16(400);
+emit_16(467);
+emit_16(401);
+emit_16(468);
+emit_16(402);
+emit_16(468);
+emit_16(401);
+emit_16(468);
+emit_16(402);
+emit_16(469);
+emit_16(403);
+emit_16(469);
+emit_16(402);
+emit_16(469);
+emit_16(403);
+emit_16(470);
+emit_16(404);
+emit_16(470);
+emit_16(403);
+emit_16(470);
+emit_16(404);
+emit_16(471);
+emit_16(405);
+emit_16(471);
+emit_16(404);
+emit_16(471);
+emit_16(405);
+emit_16(472);
+emit_16(406);
+emit_16(472);
+emit_16(405);
+emit_16(472);
+emit_16(406);
+emit_16(473);
+emit_16(407);
+emit_16(473);
+emit_16(406);
+emit_16(473);
+emit_16(407);
+emit_16(474);
+emit_16(408);
+emit_16(474);
+emit_16(407);
+emit_16(474);
+emit_16(408);
+emit_16(475);
+emit_16(409);
+emit_16(475);
+emit_16(408);
+emit_16(475);
+emit_16(409);
+emit_16(476);
+emit_16(410);
+emit_16(476);
+emit_16(409);
+emit_16(476);
+emit_16(410);
+emit_16(477);
+emit_16(411);
+emit_16(477);
+emit_16(410);
+emit_16(477);
+emit_16(411);
+emit_16(478);
+emit_16(412);
+emit_16(478);
+emit_16(411);
+emit_16(478);
+emit_16(412);
+emit_16(479);
+emit_16(413);
+emit_16(479);
+emit_16(412);
+emit_16(479);
+emit_16(413);
+emit_16(480);
+emit_16(414);
+emit_16(480);
+emit_16(413);
+emit_16(480);
+emit_16(414);
+emit_16(481);
+emit_16(415);
+emit_16(481);
+emit_16(414);
+emit_16(481);
+emit_16(415);
+emit_16(482);
+emit_16(416);
+emit_16(482);
+emit_16(415);
+emit_16(482);
+emit_16(416);
+emit_16(483);
+emit_16(417);
+emit_16(483);
+emit_16(416);
+emit_16(483);
+emit_16(417);
+emit_16(484);
+emit_16(418);
+emit_16(484);
+emit_16(417);
+emit_16(484);
+emit_16(418);
+emit_16(485);
+emit_16(419);
+emit_16(485);
+emit_16(418);
+emit_16(485);
+emit_16(419);
+emit_16(486);
+emit_16(420);
+emit_16(486);
+emit_16(419);
+emit_16(486);
+emit_16(420);
+emit_16(487);
+emit_16(421);
+emit_16(487);
+emit_16(420);
+emit_16(487);
+emit_16(421);
+emit_16(488);
+emit_16(422);
+emit_16(488);
+emit_16(421);
+emit_16(488);
+emit_16(422);
+emit_16(489);
+emit_16(423);
+emit_16(489);
+emit_16(422);
+emit_16(489);
+emit_16(423);
+emit_16(490);
+emit_16(424);
+emit_16(490);
+emit_16(423);
+emit_16(490);
+emit_16(424);
+emit_16(491);
+emit_16(425);
+emit_16(491);
+emit_16(424);
+emit_16(491);
+emit_16(425);
+emit_16(492);
+emit_16(426);
+emit_16(492);
+emit_16(425);
+emit_16(492);
+emit_16(426);
+emit_16(493);
+emit_16(427);
+emit_16(493);
+emit_16(426);
+emit_16(493);
+emit_16(427);
+emit_16(494);
+emit_16(428);
+emit_16(494);
+emit_16(427);
+emit_16(494);
+emit_16(428);
+emit_16(495);
+emit_16(429);
+emit_16(495);
+emit_16(428);
+emit_16(495);
+emit_16(429);
+emit_16(496);
+emit_16(430);
+emit_16(496);
+emit_16(429);
+emit_16(496);
+emit_16(430);
+emit_16(497);
+emit_16(431);
+emit_16(497);
+emit_16(430);
+emit_16(497);
+emit_16(431);
+emit_16(498);
+emit_16(432);
+emit_16(498);
+emit_16(431);
+emit_16(498);
+emit_16(432);
+emit_16(499);
+emit_16(433);
+emit_16(499);
+emit_16(432);
+emit_16(499);
+emit_16(433);
+emit_16(500);
+emit_16(434);
+emit_16(500);
+emit_16(433);
+emit_16(500);
+emit_16(434);
+emit_16(501);
+emit_16(435);
+emit_16(501);
+emit_16(434);
+emit_16(501);
+emit_16(435);
+emit_16(502);
+emit_16(436);
+emit_16(502);
+emit_16(435);
+emit_16(502);
+emit_16(436);
+emit_16(503);
+emit_16(437);
+emit_16(503);
+emit_16(436);
+emit_16(503);
+emit_16(437);
+emit_16(504);
+emit_16(438);
+emit_16(504);
+emit_16(437);
+emit_16(504);
+emit_16(438);
+emit_16(505);
+emit_16(439);
+emit_16(505);
+emit_16(438);
+emit_16(505);
+emit_16(439);
+emit_16(506);
+emit_16(440);
+emit_16(506);
+emit_16(439);
+emit_16(506);
+emit_16(440);
+emit_16(507);
+emit_16(441);
+emit_16(507);
+emit_16(440);
+emit_16(507);
+emit_16(441);
+emit_16(508);
+emit_16(442);
+emit_16(508);
+emit_16(441);
+emit_16(508);
+emit_16(442);
+emit_16(509);
+emit_16(443);
+emit_16(509);
+emit_16(442);
+emit_16(509);
+emit_16(443);
+emit_16(510);
+emit_16(444);
+emit_16(510);
+emit_16(443);
+emit_16(510);
+emit_16(444);
+emit_16(511);
+emit_16(445);
+emit_16(511);
+emit_16(444);
+emit_16(511);
+emit_16(445);
+emit_16(512);
+emit_16(446);
+emit_16(512);
+emit_16(445);
+emit_16(512);
+emit_16(446);
+emit_16(513);
+emit_16(447);
+emit_16(513);
+emit_16(446);
+emit_16(513);
+emit_16(447);
+emit_16(514);
+emit_16(448);
+emit_16(514);
+emit_16(447);
+emit_16(514);
+emit_16(448);
+emit_16(515);
+emit_16(449);
+emit_16(515);
+emit_16(448);
+emit_16(515);
+emit_16(449);
+emit_16(516);
+emit_16(450);
+emit_16(516);
+emit_16(449);
+emit_16(516);
+emit_16(450);
+emit_16(517);
+emit_16(451);
+emit_16(517);
+emit_16(450);
+emit_16(517);
+emit_16(451);
+emit_16(518);
+emit_16(452);
+emit_16(518);
+emit_16(451);
+emit_16(518);
+emit_16(452);
+emit_16(519);
+emit_16(453);
+emit_16(519);
+emit_16(452);
+emit_16(519);
+emit_16(453);
+emit_16(520);
+emit_16(454);
+emit_16(520);
+emit_16(453);
+emit_16(520);
+emit_16(454);
+emit_16(521);
+emit_16(455);
+emit_16(521);
+emit_16(454);
+emit_16(521);
+emit_16(455);
+emit_16(522);
+emit_16(456);
+emit_16(522);
+emit_16(455);
+emit_16(522);
+emit_16(456);
+emit_16(523);
+emit_16(457);
+emit_16(523);
+emit_16(456);
+emit_16(523);
+emit_16(457);
+emit_16(524);
+emit_16(458);
+emit_16(524);
+emit_16(457);
+emit_16(524);
+emit_16(458);
+emit_16(525);
+emit_16(459);
+emit_16(525);
+emit_16(458);
+emit_16(525);
+emit_16(459);
+emit_16(526);
+emit_16(460);
+emit_16(526);
+emit_16(459);
+emit_16(526);
+emit_16(460);
+emit_16(527);
+emit_16(461);
+emit_16(527);
+emit_16(460);
+emit_16(528);
+emit_16(462);
+emit_16(529);
+emit_16(463);
+emit_16(529);
+emit_16(462);
+emit_16(529);
+emit_16(463);
+emit_16(530);
+emit_16(464);
+emit_16(530);
+emit_16(463);
+emit_16(530);
+emit_16(464);
+emit_16(531);
+emit_16(465);
+emit_16(531);
+emit_16(464);
+emit_16(531);
+emit_16(465);
+emit_16(532);
+emit_16(466);
+emit_16(532);
+emit_16(465);
+emit_16(532);
+emit_16(466);
+emit_16(533);
+emit_16(467);
+emit_16(533);
+emit_16(466);
+emit_16(533);
+emit_16(467);
+emit_16(534);
+emit_16(468);
+emit_16(534);
+emit_16(467);
+emit_16(534);
+emit_16(468);
+emit_16(535);
+emit_16(469);
+emit_16(535);
+emit_16(468);
+emit_16(535);
+emit_16(469);
+emit_16(536);
+emit_16(470);
+emit_16(536);
+emit_16(469);
+emit_16(536);
+emit_16(470);
+emit_16(537);
+emit_16(471);
+emit_16(537);
+emit_16(470);
+emit_16(537);
+emit_16(471);
+emit_16(538);
+emit_16(472);
+emit_16(538);
+emit_16(471);
+emit_16(538);
+emit_16(472);
+emit_16(539);
+emit_16(473);
+emit_16(539);
+emit_16(472);
+emit_16(539);
+emit_16(473);
+emit_16(540);
+emit_16(474);
+emit_16(540);
+emit_16(473);
+emit_16(540);
+emit_16(474);
+emit_16(541);
+emit_16(475);
+emit_16(541);
+emit_16(474);
+emit_16(541);
+emit_16(475);
+emit_16(542);
+emit_16(476);
+emit_16(542);
+emit_16(475);
+emit_16(542);
+emit_16(476);
+emit_16(543);
+emit_16(477);
+emit_16(543);
+emit_16(476);
+emit_16(543);
+emit_16(477);
+emit_16(544);
+emit_16(478);
+emit_16(544);
+emit_16(477);
+emit_16(544);
+emit_16(478);
+emit_16(545);
+emit_16(479);
+emit_16(545);
+emit_16(478);
+emit_16(545);
+emit_16(479);
+emit_16(546);
+emit_16(480);
+emit_16(546);
+emit_16(479);
+emit_16(546);
+emit_16(480);
+emit_16(547);
+emit_16(481);
+emit_16(547);
+emit_16(480);
+emit_16(547);
+emit_16(481);
+emit_16(548);
+emit_16(482);
+emit_16(548);
+emit_16(481);
+emit_16(548);
+emit_16(482);
+emit_16(549);
+emit_16(483);
+emit_16(549);
+emit_16(482);
+emit_16(549);
+emit_16(483);
+emit_16(550);
+emit_16(484);
+emit_16(550);
+emit_16(483);
+emit_16(550);
+emit_16(484);
+emit_16(551);
+emit_16(485);
+emit_16(551);
+emit_16(484);
+emit_16(551);
+emit_16(485);
+emit_16(552);
+emit_16(486);
+emit_16(552);
+emit_16(485);
+emit_16(552);
+emit_16(486);
+emit_16(553);
+emit_16(487);
+emit_16(553);
+emit_16(486);
+emit_16(553);
+emit_16(487);
+emit_16(554);
+emit_16(488);
+emit_16(554);
+emit_16(487);
+emit_16(554);
+emit_16(488);
+emit_16(555);
+emit_16(489);
+emit_16(555);
+emit_16(488);
+emit_16(555);
+emit_16(489);
+emit_16(556);
+emit_16(490);
+emit_16(556);
+emit_16(489);
+emit_16(556);
+emit_16(490);
+emit_16(557);
+emit_16(491);
+emit_16(557);
+emit_16(490);
+emit_16(557);
+emit_16(491);
+emit_16(558);
+emit_16(492);
+emit_16(558);
+emit_16(491);
+emit_16(558);
+emit_16(492);
+emit_16(559);
+emit_16(493);
+emit_16(559);
+emit_16(492);
+emit_16(559);
+emit_16(493);
+emit_16(560);
+emit_16(494);
+emit_16(560);
+emit_16(493);
+emit_16(560);
+emit_16(494);
+emit_16(561);
+emit_16(495);
+emit_16(561);
+emit_16(494);
+emit_16(561);
+emit_16(495);
+emit_16(562);
+emit_16(496);
+emit_16(562);
+emit_16(495);
+emit_16(562);
+emit_16(496);
+emit_16(563);
+emit_16(497);
+emit_16(563);
+emit_16(496);
+emit_16(563);
+emit_16(497);
+emit_16(564);
+emit_16(498);
+emit_16(564);
+emit_16(497);
+emit_16(564);
+emit_16(498);
+emit_16(565);
+emit_16(499);
+emit_16(565);
+emit_16(498);
+emit_16(565);
+emit_16(499);
+emit_16(566);
+emit_16(500);
+emit_16(566);
+emit_16(499);
+emit_16(566);
+emit_16(500);
+emit_16(567);
+emit_16(501);
+emit_16(567);
+emit_16(500);
+emit_16(567);
+emit_16(501);
+emit_16(568);
+emit_16(502);
+emit_16(568);
+emit_16(501);
+emit_16(568);
+emit_16(502);
+emit_16(569);
+emit_16(503);
+emit_16(569);
+emit_16(502);
+emit_16(569);
+emit_16(503);
+emit_16(570);
+emit_16(504);
+emit_16(570);
+emit_16(503);
+emit_16(570);
+emit_16(504);
+emit_16(571);
+emit_16(505);
+emit_16(571);
+emit_16(504);
+emit_16(571);
+emit_16(505);
+emit_16(572);
+emit_16(506);
+emit_16(572);
+emit_16(505);
+emit_16(572);
+emit_16(506);
+emit_16(573);
+emit_16(507);
+emit_16(573);
+emit_16(506);
+emit_16(573);
+emit_16(507);
+emit_16(574);
+emit_16(508);
+emit_16(574);
+emit_16(507);
+emit_16(574);
+emit_16(508);
+emit_16(575);
+emit_16(509);
+emit_16(575);
+emit_16(508);
+emit_16(575);
+emit_16(509);
+emit_16(576);
+emit_16(510);
+emit_16(576);
+emit_16(509);
+emit_16(576);
+emit_16(510);
+emit_16(577);
+emit_16(511);
+emit_16(577);
+emit_16(510);
+emit_16(577);
+emit_16(511);
+emit_16(578);
+emit_16(512);
+emit_16(578);
+emit_16(511);
+emit_16(578);
+emit_16(512);
+emit_16(579);
+emit_16(513);
+emit_16(579);
+emit_16(512);
+emit_16(579);
+emit_16(513);
+emit_16(580);
+emit_16(514);
+emit_16(580);
+emit_16(513);
+emit_16(580);
+emit_16(514);
+emit_16(581);
+emit_16(515);
+emit_16(581);
+emit_16(514);
+emit_16(581);
+emit_16(515);
+emit_16(582);
+emit_16(516);
+emit_16(582);
+emit_16(515);
+emit_16(582);
+emit_16(516);
+emit_16(583);
+emit_16(517);
+emit_16(583);
+emit_16(516);
+emit_16(583);
+emit_16(517);
+emit_16(584);
+emit_16(518);
+emit_16(584);
+emit_16(517);
+emit_16(584);
+emit_16(518);
+emit_16(585);
+emit_16(519);
+emit_16(585);
+emit_16(518);
+emit_16(585);
+emit_16(519);
+emit_16(586);
+emit_16(520);
+emit_16(586);
+emit_16(519);
+emit_16(586);
+emit_16(520);
+emit_16(587);
+emit_16(521);
+emit_16(587);
+emit_16(520);
+emit_16(587);
+emit_16(521);
+emit_16(588);
+emit_16(522);
+emit_16(588);
+emit_16(521);
+emit_16(588);
+emit_16(522);
+emit_16(589);
+emit_16(523);
+emit_16(589);
+emit_16(522);
+emit_16(589);
+emit_16(523);
+emit_16(590);
+emit_16(524);
+emit_16(590);
+emit_16(523);
+emit_16(590);
+emit_16(524);
+emit_16(591);
+emit_16(525);
+emit_16(591);
+emit_16(524);
+emit_16(591);
+emit_16(525);
+emit_16(592);
+emit_16(526);
+emit_16(592);
+emit_16(525);
+emit_16(592);
+emit_16(526);
+emit_16(593);
+emit_16(527);
+emit_16(593);
+emit_16(526);
+emit_16(594);
+emit_16(528);
+emit_16(595);
+emit_16(529);
+emit_16(595);
+emit_16(528);
+emit_16(595);
+emit_16(529);
+emit_16(596);
+emit_16(530);
+emit_16(596);
+emit_16(529);
+emit_16(596);
+emit_16(530);
+emit_16(597);
+emit_16(531);
+emit_16(597);
+emit_16(530);
+emit_16(597);
+emit_16(531);
+emit_16(598);
+emit_16(532);
+emit_16(598);
+emit_16(531);
+emit_16(598);
+emit_16(532);
+emit_16(599);
+emit_16(533);
+emit_16(599);
+emit_16(532);
+emit_16(599);
+emit_16(533);
+emit_16(600);
+emit_16(534);
+emit_16(600);
+emit_16(533);
+emit_16(600);
+emit_16(534);
+emit_16(601);
+emit_16(535);
+emit_16(601);
+emit_16(534);
+emit_16(601);
+emit_16(535);
+emit_16(602);
+emit_16(536);
+emit_16(602);
+emit_16(535);
+emit_16(602);
+emit_16(536);
+emit_16(603);
+emit_16(537);
+emit_16(603);
+emit_16(536);
+emit_16(603);
+emit_16(537);
+emit_16(604);
+emit_16(538);
+emit_16(604);
+emit_16(537);
+emit_16(604);
+emit_16(538);
+emit_16(605);
+emit_16(539);
+emit_16(605);
+emit_16(538);
+emit_16(605);
+emit_16(539);
+emit_16(606);
+emit_16(540);
+emit_16(606);
+emit_16(539);
+emit_16(606);
+emit_16(540);
+emit_16(607);
+emit_16(541);
+emit_16(607);
+emit_16(540);
+emit_16(607);
+emit_16(541);
+emit_16(608);
+emit_16(542);
+emit_16(608);
+emit_16(541);
+emit_16(608);
+emit_16(542);
+emit_16(609);
+emit_16(543);
+emit_16(609);
+emit_16(542);
+emit_16(609);
+emit_16(543);
+emit_16(610);
+emit_16(544);
+emit_16(610);
+emit_16(543);
+emit_16(610);
+emit_16(544);
+emit_16(611);
+emit_16(545);
+emit_16(611);
+emit_16(544);
+emit_16(611);
+emit_16(545);
+emit_16(612);
+emit_16(546);
+emit_16(612);
+emit_16(545);
+emit_16(612);
+emit_16(546);
+emit_16(613);
+emit_16(547);
+emit_16(613);
+emit_16(546);
+emit_16(613);
+emit_16(547);
+emit_16(614);
+emit_16(548);
+emit_16(614);
+emit_16(547);
+emit_16(614);
+emit_16(548);
+emit_16(615);
+emit_16(549);
+emit_16(615);
+emit_16(548);
+emit_16(615);
+emit_16(549);
+emit_16(616);
+emit_16(550);
+emit_16(616);
+emit_16(549);
+emit_16(616);
+emit_16(550);
+emit_16(617);
+emit_16(551);
+emit_16(617);
+emit_16(550);
+emit_16(617);
+emit_16(551);
+emit_16(618);
+emit_16(552);
+emit_16(618);
+emit_16(551);
+emit_16(618);
+emit_16(552);
+emit_16(619);
+emit_16(553);
+emit_16(619);
+emit_16(552);
+emit_16(619);
+emit_16(553);
+emit_16(620);
+emit_16(554);
+emit_16(620);
+emit_16(553);
+emit_16(620);
+emit_16(554);
+emit_16(621);
+emit_16(555);
+emit_16(621);
+emit_16(554);
+emit_16(621);
+emit_16(555);
+emit_16(622);
+emit_16(556);
+emit_16(622);
+emit_16(555);
+emit_16(622);
+emit_16(556);
+emit_16(623);
+emit_16(557);
+emit_16(623);
+emit_16(556);
+emit_16(623);
+emit_16(557);
+emit_16(624);
+emit_16(558);
+emit_16(624);
+emit_16(557);
+emit_16(624);
+emit_16(558);
+emit_16(625);
+emit_16(559);
+emit_16(625);
+emit_16(558);
+emit_16(625);
+emit_16(559);
+emit_16(626);
+emit_16(560);
+emit_16(626);
+emit_16(559);
+emit_16(626);
+emit_16(560);
+emit_16(627);
+emit_16(561);
+emit_16(627);
+emit_16(560);
+emit_16(627);
+emit_16(561);
+emit_16(628);
+emit_16(562);
+emit_16(628);
+emit_16(561);
+emit_16(628);
+emit_16(562);
+emit_16(629);
+emit_16(563);
+emit_16(629);
+emit_16(562);
+emit_16(629);
+emit_16(563);
+emit_16(630);
+emit_16(564);
+emit_16(630);
+emit_16(563);
+emit_16(630);
+emit_16(564);
+emit_16(631);
+emit_16(565);
+emit_16(631);
+emit_16(564);
+emit_16(631);
+emit_16(565);
+emit_16(632);
+emit_16(566);
+emit_16(632);
+emit_16(565);
+emit_16(632);
+emit_16(566);
+emit_16(633);
+emit_16(567);
+emit_16(633);
+emit_16(566);
+emit_16(633);
+emit_16(567);
+emit_16(634);
+emit_16(568);
+emit_16(634);
+emit_16(567);
+emit_16(634);
+emit_16(568);
+emit_16(635);
+emit_16(569);
+emit_16(635);
+emit_16(568);
+emit_16(635);
+emit_16(569);
+emit_16(636);
+emit_16(570);
+emit_16(636);
+emit_16(569);
+emit_16(636);
+emit_16(570);
+emit_16(637);
+emit_16(571);
+emit_16(637);
+emit_16(570);
+emit_16(637);
+emit_16(571);
+emit_16(638);
+emit_16(572);
+emit_16(638);
+emit_16(571);
+emit_16(638);
+emit_16(572);
+emit_16(639);
+emit_16(573);
+emit_16(639);
+emit_16(572);
+emit_16(639);
+emit_16(573);
+emit_16(640);
+emit_16(574);
+emit_16(640);
+emit_16(573);
+emit_16(640);
+emit_16(574);
+emit_16(641);
+emit_16(575);
+emit_16(641);
+emit_16(574);
+emit_16(641);
+emit_16(575);
+emit_16(642);
+emit_16(576);
+emit_16(642);
+emit_16(575);
+emit_16(642);
+emit_16(576);
+emit_16(643);
+emit_16(577);
+emit_16(643);
+emit_16(576);
+emit_16(643);
+emit_16(577);
+emit_16(644);
+emit_16(578);
+emit_16(644);
+emit_16(577);
+emit_16(644);
+emit_16(578);
+emit_16(645);
+emit_16(579);
+emit_16(645);
+emit_16(578);
+emit_16(645);
+emit_16(579);
+emit_16(646);
+emit_16(580);
+emit_16(646);
+emit_16(579);
+emit_16(646);
+emit_16(580);
+emit_16(647);
+emit_16(581);
+emit_16(647);
+emit_16(580);
+emit_16(647);
+emit_16(581);
+emit_16(648);
+emit_16(582);
+emit_16(648);
+emit_16(581);
+emit_16(648);
+emit_16(582);
+emit_16(649);
+emit_16(583);
+emit_16(649);
+emit_16(582);
+emit_16(649);
+emit_16(583);
+emit_16(650);
+emit_16(584);
+emit_16(650);
+emit_16(583);
+emit_16(650);
+emit_16(584);
+emit_16(651);
+emit_16(585);
+emit_16(651);
+emit_16(584);
+emit_16(651);
+emit_16(585);
+emit_16(652);
+emit_16(586);
+emit_16(652);
+emit_16(585);
+emit_16(652);
+emit_16(586);
+emit_16(653);
+emit_16(587);
+emit_16(653);
+emit_16(586);
+emit_16(653);
+emit_16(587);
+emit_16(654);
+emit_16(588);
+emit_16(654);
+emit_16(587);
+emit_16(654);
+emit_16(588);
+emit_16(655);
+emit_16(589);
+emit_16(655);
+emit_16(588);
+emit_16(655);
+emit_16(589);
+emit_16(656);
+emit_16(590);
+emit_16(656);
+emit_16(589);
+emit_16(656);
+emit_16(590);
+emit_16(657);
+emit_16(591);
+emit_16(657);
+emit_16(590);
+emit_16(657);
+emit_16(591);
+emit_16(658);
+emit_16(592);
+emit_16(658);
+emit_16(591);
+emit_16(658);
+emit_16(592);
+emit_16(659);
+emit_16(593);
+emit_16(659);
+emit_16(592);
+emit_16(660);
+emit_16(594);
+emit_16(661);
+emit_16(595);
+emit_16(661);
+emit_16(594);
+emit_16(661);
+emit_16(595);
+emit_16(662);
+emit_16(596);
+emit_16(662);
+emit_16(595);
+emit_16(662);
+emit_16(596);
+emit_16(663);
+emit_16(597);
+emit_16(663);
+emit_16(596);
+emit_16(663);
+emit_16(597);
+emit_16(664);
+emit_16(598);
+emit_16(664);
+emit_16(597);
+emit_16(664);
+emit_16(598);
+emit_16(665);
+emit_16(599);
+emit_16(665);
+emit_16(598);
+emit_16(665);
+emit_16(599);
+emit_16(666);
+emit_16(600);
+emit_16(666);
+emit_16(599);
+emit_16(666);
+emit_16(600);
+emit_16(667);
+emit_16(601);
+emit_16(667);
+emit_16(600);
+emit_16(667);
+emit_16(601);
+emit_16(668);
+emit_16(602);
+emit_16(668);
+emit_16(601);
+emit_16(668);
+emit_16(602);
+emit_16(669);
+emit_16(603);
+emit_16(669);
+emit_16(602);
+emit_16(669);
+emit_16(603);
+emit_16(670);
+emit_16(604);
+emit_16(670);
+emit_16(603);
+emit_16(670);
+emit_16(604);
+emit_16(671);
+emit_16(605);
+emit_16(671);
+emit_16(604);
+emit_16(671);
+emit_16(605);
+emit_16(672);
+emit_16(606);
+emit_16(672);
+emit_16(605);
+emit_16(672);
+emit_16(606);
+emit_16(673);
+emit_16(607);
+emit_16(673);
+emit_16(606);
+emit_16(673);
+emit_16(607);
+emit_16(674);
+emit_16(608);
+emit_16(674);
+emit_16(607);
+emit_16(674);
+emit_16(608);
+emit_16(675);
+emit_16(609);
+emit_16(675);
+emit_16(608);
+emit_16(675);
+emit_16(609);
+emit_16(676);
+emit_16(610);
+emit_16(676);
+emit_16(609);
+emit_16(676);
+emit_16(610);
+emit_16(677);
+emit_16(611);
+emit_16(677);
+emit_16(610);
+emit_16(677);
+emit_16(611);
+emit_16(678);
+emit_16(612);
+emit_16(678);
+emit_16(611);
+emit_16(678);
+emit_16(612);
+emit_16(679);
+emit_16(613);
+emit_16(679);
+emit_16(612);
+emit_16(679);
+emit_16(613);
+emit_16(680);
+emit_16(614);
+emit_16(680);
+emit_16(613);
+emit_16(680);
+emit_16(614);
+emit_16(681);
+emit_16(615);
+emit_16(681);
+emit_16(614);
+emit_16(681);
+emit_16(615);
+emit_16(682);
+emit_16(616);
+emit_16(682);
+emit_16(615);
+emit_16(682);
+emit_16(616);
+emit_16(683);
+emit_16(617);
+emit_16(683);
+emit_16(616);
+emit_16(683);
+emit_16(617);
+emit_16(684);
+emit_16(618);
+emit_16(684);
+emit_16(617);
+emit_16(684);
+emit_16(618);
+emit_16(685);
+emit_16(619);
+emit_16(685);
+emit_16(618);
+emit_16(685);
+emit_16(619);
+emit_16(686);
+emit_16(620);
+emit_16(686);
+emit_16(619);
+emit_16(686);
+emit_16(620);
+emit_16(687);
+emit_16(621);
+emit_16(687);
+emit_16(620);
+emit_16(687);
+emit_16(621);
+emit_16(688);
+emit_16(622);
+emit_16(688);
+emit_16(621);
+emit_16(688);
+emit_16(622);
+emit_16(689);
+emit_16(623);
+emit_16(689);
+emit_16(622);
+emit_16(689);
+emit_16(623);
+emit_16(690);
+emit_16(624);
+emit_16(690);
+emit_16(623);
+emit_16(690);
+emit_16(624);
+emit_16(691);
+emit_16(625);
+emit_16(691);
+emit_16(624);
+emit_16(691);
+emit_16(625);
+emit_16(692);
+emit_16(626);
+emit_16(692);
+emit_16(625);
+emit_16(692);
+emit_16(626);
+emit_16(693);
+emit_16(627);
+emit_16(693);
+emit_16(626);
+emit_16(693);
+emit_16(627);
+emit_16(694);
+emit_16(628);
+emit_16(694);
+emit_16(627);
+emit_16(694);
+emit_16(628);
+emit_16(695);
+emit_16(629);
+emit_16(695);
+emit_16(628);
+emit_16(695);
+emit_16(629);
+emit_16(696);
+emit_16(630);
+emit_16(696);
+emit_16(629);
+emit_16(696);
+emit_16(630);
+emit_16(697);
+emit_16(631);
+emit_16(697);
+emit_16(630);
+emit_16(697);
+emit_16(631);
+emit_16(698);
+emit_16(632);
+emit_16(698);
+emit_16(631);
+emit_16(698);
+emit_16(632);
+emit_16(699);
+emit_16(633);
+emit_16(699);
+emit_16(632);
+emit_16(699);
+emit_16(633);
+emit_16(700);
+emit_16(634);
+emit_16(700);
+emit_16(633);
+emit_16(700);
+emit_16(634);
+emit_16(701);
+emit_16(635);
+emit_16(701);
+emit_16(634);
+emit_16(701);
+emit_16(635);
+emit_16(702);
+emit_16(636);
+emit_16(702);
+emit_16(635);
+emit_16(702);
+emit_16(636);
+emit_16(703);
+emit_16(637);
+emit_16(703);
+emit_16(636);
+emit_16(703);
+emit_16(637);
+emit_16(704);
+emit_16(638);
+emit_16(704);
+emit_16(637);
+emit_16(704);
+emit_16(638);
+emit_16(705);
+emit_16(639);
+emit_16(705);
+emit_16(638);
+emit_16(705);
+emit_16(639);
+emit_16(706);
+emit_16(640);
+emit_16(706);
+emit_16(639);
+emit_16(706);
+emit_16(640);
+emit_16(707);
+emit_16(641);
+emit_16(707);
+emit_16(640);
+emit_16(707);
+emit_16(641);
+emit_16(708);
+emit_16(642);
+emit_16(708);
+emit_16(641);
+emit_16(708);
+emit_16(642);
+emit_16(709);
+emit_16(643);
+emit_16(709);
+emit_16(642);
+emit_16(709);
+emit_16(643);
+emit_16(710);
+emit_16(644);
+emit_16(710);
+emit_16(643);
+emit_16(710);
+emit_16(644);
+emit_16(711);
+emit_16(645);
+emit_16(711);
+emit_16(644);
+emit_16(711);
+emit_16(645);
+emit_16(712);
+emit_16(646);
+emit_16(712);
+emit_16(645);
+emit_16(712);
+emit_16(646);
+emit_16(713);
+emit_16(647);
+emit_16(713);
+emit_16(646);
+emit_16(713);
+emit_16(647);
+emit_16(714);
+emit_16(648);
+emit_16(714);
+emit_16(647);
+emit_16(714);
+emit_16(648);
+emit_16(715);
+emit_16(649);
+emit_16(715);
+emit_16(648);
+emit_16(715);
+emit_16(649);
+emit_16(716);
+emit_16(650);
+emit_16(716);
+emit_16(649);
+emit_16(716);
+emit_16(650);
+emit_16(717);
+emit_16(651);
+emit_16(717);
+emit_16(650);
+emit_16(717);
+emit_16(651);
+emit_16(718);
+emit_16(652);
+emit_16(718);
+emit_16(651);
+emit_16(718);
+emit_16(652);
+emit_16(719);
+emit_16(653);
+emit_16(719);
+emit_16(652);
+emit_16(719);
+emit_16(653);
+emit_16(720);
+emit_16(654);
+emit_16(720);
+emit_16(653);
+emit_16(720);
+emit_16(654);
+emit_16(721);
+emit_16(655);
+emit_16(721);
+emit_16(654);
+emit_16(721);
+emit_16(655);
+emit_16(722);
+emit_16(656);
+emit_16(722);
+emit_16(655);
+emit_16(722);
+emit_16(656);
+emit_16(723);
+emit_16(657);
+emit_16(723);
+emit_16(656);
+emit_16(723);
+emit_16(657);
+emit_16(724);
+emit_16(658);
+emit_16(724);
+emit_16(657);
+emit_16(724);
+emit_16(658);
+emit_16(725);
+emit_16(659);
+emit_16(725);
+emit_16(658);
+emit_16(726);
+emit_16(660);
+emit_16(727);
+emit_16(661);
+emit_16(727);
+emit_16(660);
+emit_16(727);
+emit_16(661);
+emit_16(728);
+emit_16(662);
+emit_16(728);
+emit_16(661);
+emit_16(728);
+emit_16(662);
+emit_16(729);
+emit_16(663);
+emit_16(729);
+emit_16(662);
+emit_16(729);
+emit_16(663);
+emit_16(730);
+emit_16(664);
+emit_16(730);
+emit_16(663);
+emit_16(730);
+emit_16(664);
+emit_16(731);
+emit_16(665);
+emit_16(731);
+emit_16(664);
+emit_16(731);
+emit_16(665);
+emit_16(732);
+emit_16(666);
+emit_16(732);
+emit_16(665);
+emit_16(732);
+emit_16(666);
+emit_16(733);
+emit_16(667);
+emit_16(733);
+emit_16(666);
+emit_16(733);
+emit_16(667);
+emit_16(734);
+emit_16(668);
+emit_16(734);
+emit_16(667);
+emit_16(734);
+emit_16(668);
+emit_16(735);
+emit_16(669);
+emit_16(735);
+emit_16(668);
+emit_16(735);
+emit_16(669);
+emit_16(736);
+emit_16(670);
+emit_16(736);
+emit_16(669);
+emit_16(736);
+emit_16(670);
+emit_16(737);
+emit_16(671);
+emit_16(737);
+emit_16(670);
+emit_16(737);
+emit_16(671);
+emit_16(738);
+emit_16(672);
+emit_16(738);
+emit_16(671);
+emit_16(738);
+emit_16(672);
+emit_16(739);
+emit_16(673);
+emit_16(739);
+emit_16(672);
+emit_16(739);
+emit_16(673);
+emit_16(740);
+emit_16(674);
+emit_16(740);
+emit_16(673);
+emit_16(740);
+emit_16(674);
+emit_16(741);
+emit_16(675);
+emit_16(741);
+emit_16(674);
+emit_16(741);
+emit_16(675);
+emit_16(742);
+emit_16(676);
+emit_16(742);
+emit_16(675);
+emit_16(742);
+emit_16(676);
+emit_16(743);
+emit_16(677);
+emit_16(743);
+emit_16(676);
+emit_16(743);
+emit_16(677);
+emit_16(744);
+emit_16(678);
+emit_16(744);
+emit_16(677);
+emit_16(744);
+emit_16(678);
+emit_16(745);
+emit_16(679);
+emit_16(745);
+emit_16(678);
+emit_16(745);
+emit_16(679);
+emit_16(746);
+emit_16(680);
+emit_16(746);
+emit_16(679);
+emit_16(746);
+emit_16(680);
+emit_16(747);
+emit_16(681);
+emit_16(747);
+emit_16(680);
+emit_16(747);
+emit_16(681);
+emit_16(748);
+emit_16(682);
+emit_16(748);
+emit_16(681);
+emit_16(748);
+emit_16(682);
+emit_16(749);
+emit_16(683);
+emit_16(749);
+emit_16(682);
+emit_16(749);
+emit_16(683);
+emit_16(750);
+emit_16(684);
+emit_16(750);
+emit_16(683);
+emit_16(750);
+emit_16(684);
+emit_16(751);
+emit_16(685);
+emit_16(751);
+emit_16(684);
+emit_16(751);
+emit_16(685);
+emit_16(752);
+emit_16(686);
+emit_16(752);
+emit_16(685);
+emit_16(752);
+emit_16(686);
+emit_16(753);
+emit_16(687);
+emit_16(753);
+emit_16(686);
+emit_16(753);
+emit_16(687);
+emit_16(754);
+emit_16(688);
+emit_16(754);
+emit_16(687);
+emit_16(754);
+emit_16(688);
+emit_16(755);
+emit_16(689);
+emit_16(755);
+emit_16(688);
+emit_16(755);
+emit_16(689);
+emit_16(756);
+emit_16(690);
+emit_16(756);
+emit_16(689);
+emit_16(756);
+emit_16(690);
+emit_16(757);
+emit_16(691);
+emit_16(757);
+emit_16(690);
+emit_16(757);
+emit_16(691);
+emit_16(758);
+emit_16(692);
+emit_16(758);
+emit_16(691);
+emit_16(758);
+emit_16(692);
+emit_16(759);
+emit_16(693);
+emit_16(759);
+emit_16(692);
+emit_16(759);
+emit_16(693);
+emit_16(760);
+emit_16(694);
+emit_16(760);
+emit_16(693);
+emit_16(760);
+emit_16(694);
+emit_16(761);
+emit_16(695);
+emit_16(761);
+emit_16(694);
+emit_16(761);
+emit_16(695);
+emit_16(762);
+emit_16(696);
+emit_16(762);
+emit_16(695);
+emit_16(762);
+emit_16(696);
+emit_16(763);
+emit_16(697);
+emit_16(763);
+emit_16(696);
+emit_16(763);
+emit_16(697);
+emit_16(764);
+emit_16(698);
+emit_16(764);
+emit_16(697);
+emit_16(764);
+emit_16(698);
+emit_16(765);
+emit_16(699);
+emit_16(765);
+emit_16(698);
+emit_16(765);
+emit_16(699);
+emit_16(766);
+emit_16(700);
+emit_16(766);
+emit_16(699);
+emit_16(766);
+emit_16(700);
+emit_16(767);
+emit_16(701);
+emit_16(767);
+emit_16(700);
+emit_16(767);
+emit_16(701);
+emit_16(768);
+emit_16(702);
+emit_16(768);
+emit_16(701);
+emit_16(768);
+emit_16(702);
+emit_16(769);
+emit_16(703);
+emit_16(769);
+emit_16(702);
+emit_16(769);
+emit_16(703);
+emit_16(770);
+emit_16(704);
+emit_16(770);
+emit_16(703);
+emit_16(770);
+emit_16(704);
+emit_16(771);
+emit_16(705);
+emit_16(771);
+emit_16(704);
+emit_16(771);
+emit_16(705);
+emit_16(772);
+emit_16(706);
+emit_16(772);
+emit_16(705);
+emit_16(772);
+emit_16(706);
+emit_16(773);
+emit_16(707);
+emit_16(773);
+emit_16(706);
+emit_16(773);
+emit_16(707);
+emit_16(774);
+emit_16(708);
+emit_16(774);
+emit_16(707);
+emit_16(774);
+emit_16(708);
+emit_16(775);
+emit_16(709);
+emit_16(775);
+emit_16(708);
+emit_16(775);
+emit_16(709);
+emit_16(776);
+emit_16(710);
+emit_16(776);
+emit_16(709);
+emit_16(776);
+emit_16(710);
+emit_16(777);
+emit_16(711);
+emit_16(777);
+emit_16(710);
+emit_16(777);
+emit_16(711);
+emit_16(778);
+emit_16(712);
+emit_16(778);
+emit_16(711);
+emit_16(778);
+emit_16(712);
+emit_16(779);
+emit_16(713);
+emit_16(779);
+emit_16(712);
+emit_16(779);
+emit_16(713);
+emit_16(780);
+emit_16(714);
+emit_16(780);
+emit_16(713);
+emit_16(780);
+emit_16(714);
+emit_16(781);
+emit_16(715);
+emit_16(781);
+emit_16(714);
+emit_16(781);
+emit_16(715);
+emit_16(782);
+emit_16(716);
+emit_16(782);
+emit_16(715);
+emit_16(782);
+emit_16(716);
+emit_16(783);
+emit_16(717);
+emit_16(783);
+emit_16(716);
+emit_16(783);
+emit_16(717);
+emit_16(784);
+emit_16(718);
+emit_16(784);
+emit_16(717);
+emit_16(784);
+emit_16(718);
+emit_16(785);
+emit_16(719);
+emit_16(785);
+emit_16(718);
+emit_16(785);
+emit_16(719);
+emit_16(786);
+emit_16(720);
+emit_16(786);
+emit_16(719);
+emit_16(786);
+emit_16(720);
+emit_16(787);
+emit_16(721);
+emit_16(787);
+emit_16(720);
+emit_16(787);
+emit_16(721);
+emit_16(788);
+emit_16(722);
+emit_16(788);
+emit_16(721);
+emit_16(788);
+emit_16(722);
+emit_16(789);
+emit_16(723);
+emit_16(789);
+emit_16(722);
+emit_16(789);
+emit_16(723);
+emit_16(790);
+emit_16(724);
+emit_16(790);
+emit_16(723);
+emit_16(790);
+emit_16(724);
+emit_16(791);
+emit_16(725);
+emit_16(791);
+emit_16(724);
+emit_16(792);
+emit_16(726);
+emit_16(793);
+emit_16(727);
+emit_16(793);
+emit_16(726);
+emit_16(793);
+emit_16(727);
+emit_16(794);
+emit_16(728);
+emit_16(794);
+emit_16(727);
+emit_16(794);
+emit_16(728);
+emit_16(795);
+emit_16(729);
+emit_16(795);
+emit_16(728);
+emit_16(795);
+emit_16(729);
+emit_16(796);
+emit_16(730);
+emit_16(796);
+emit_16(729);
+emit_16(796);
+emit_16(730);
+emit_16(797);
+emit_16(731);
+emit_16(797);
+emit_16(730);
+emit_16(797);
+emit_16(731);
+emit_16(798);
+emit_16(732);
+emit_16(798);
+emit_16(731);
+emit_16(798);
+emit_16(732);
+emit_16(799);
+emit_16(733);
+emit_16(799);
+emit_16(732);
+emit_16(799);
+emit_16(733);
+emit_16(800);
+emit_16(734);
+emit_16(800);
+emit_16(733);
+emit_16(800);
+emit_16(734);
+emit_16(801);
+emit_16(735);
+emit_16(801);
+emit_16(734);
+emit_16(801);
+emit_16(735);
+emit_16(802);
+emit_16(736);
+emit_16(802);
+emit_16(735);
+emit_16(802);
+emit_16(736);
+emit_16(803);
+emit_16(737);
+emit_16(803);
+emit_16(736);
+emit_16(803);
+emit_16(737);
+emit_16(804);
+emit_16(738);
+emit_16(804);
+emit_16(737);
+emit_16(804);
+emit_16(738);
+emit_16(805);
+emit_16(739);
+emit_16(805);
+emit_16(738);
+emit_16(805);
+emit_16(739);
+emit_16(806);
+emit_16(740);
+emit_16(806);
+emit_16(739);
+emit_16(806);
+emit_16(740);
+emit_16(807);
+emit_16(741);
+emit_16(807);
+emit_16(740);
+emit_16(807);
+emit_16(741);
+emit_16(808);
+emit_16(742);
+emit_16(808);
+emit_16(741);
+emit_16(808);
+emit_16(742);
+emit_16(809);
+emit_16(743);
+emit_16(809);
+emit_16(742);
+emit_16(809);
+emit_16(743);
+emit_16(810);
+emit_16(744);
+emit_16(810);
+emit_16(743);
+emit_16(810);
+emit_16(744);
+emit_16(811);
+emit_16(745);
+emit_16(811);
+emit_16(744);
+emit_16(811);
+emit_16(745);
+emit_16(812);
+emit_16(746);
+emit_16(812);
+emit_16(745);
+emit_16(812);
+emit_16(746);
+emit_16(813);
+emit_16(747);
+emit_16(813);
+emit_16(746);
+emit_16(813);
+emit_16(747);
+emit_16(814);
+emit_16(748);
+emit_16(814);
+emit_16(747);
+emit_16(814);
+emit_16(748);
+emit_16(815);
+emit_16(749);
+emit_16(815);
+emit_16(748);
+emit_16(815);
+emit_16(749);
+emit_16(816);
+emit_16(750);
+emit_16(816);
+emit_16(749);
+emit_16(816);
+emit_16(750);
+emit_16(817);
+emit_16(751);
+emit_16(817);
+emit_16(750);
+emit_16(817);
+emit_16(751);
+emit_16(818);
+emit_16(752);
+emit_16(818);
+emit_16(751);
+emit_16(818);
+emit_16(752);
+emit_16(819);
+emit_16(753);
+emit_16(819);
+emit_16(752);
+emit_16(819);
+emit_16(753);
+emit_16(820);
+emit_16(754);
+emit_16(820);
+emit_16(753);
+emit_16(820);
+emit_16(754);
+emit_16(821);
+emit_16(755);
+emit_16(821);
+emit_16(754);
+emit_16(821);
+emit_16(755);
+emit_16(822);
+emit_16(756);
+emit_16(822);
+emit_16(755);
+emit_16(822);
+emit_16(756);
+emit_16(823);
+emit_16(757);
+emit_16(823);
+emit_16(756);
+emit_16(823);
+emit_16(757);
+emit_16(824);
+emit_16(758);
+emit_16(824);
+emit_16(757);
+emit_16(824);
+emit_16(758);
+emit_16(825);
+emit_16(759);
+emit_16(825);
+emit_16(758);
+emit_16(825);
+emit_16(759);
+emit_16(826);
+emit_16(760);
+emit_16(826);
+emit_16(759);
+emit_16(826);
+emit_16(760);
+emit_16(827);
+emit_16(761);
+emit_16(827);
+emit_16(760);
+emit_16(827);
+emit_16(761);
+emit_16(828);
+emit_16(762);
+emit_16(828);
+emit_16(761);
+emit_16(828);
+emit_16(762);
+emit_16(829);
+emit_16(763);
+emit_16(829);
+emit_16(762);
+emit_16(829);
+emit_16(763);
+emit_16(830);
+emit_16(764);
+emit_16(830);
+emit_16(763);
+emit_16(830);
+emit_16(764);
+emit_16(831);
+emit_16(765);
+emit_16(831);
+emit_16(764);
+emit_16(831);
+emit_16(765);
+emit_16(832);
+emit_16(766);
+emit_16(832);
+emit_16(765);
+emit_16(832);
+emit_16(766);
+emit_16(833);
+emit_16(767);
+emit_16(833);
+emit_16(766);
+emit_16(833);
+emit_16(767);
+emit_16(834);
+emit_16(768);
+emit_16(834);
+emit_16(767);
+emit_16(834);
+emit_16(768);
+emit_16(835);
+emit_16(769);
+emit_16(835);
+emit_16(768);
+emit_16(835);
+emit_16(769);
+emit_16(836);
+emit_16(770);
+emit_16(836);
+emit_16(769);
+emit_16(836);
+emit_16(770);
+emit_16(837);
+emit_16(771);
+emit_16(837);
+emit_16(770);
+emit_16(837);
+emit_16(771);
+emit_16(838);
+emit_16(772);
+emit_16(838);
+emit_16(771);
+emit_16(838);
+emit_16(772);
+emit_16(839);
+emit_16(773);
+emit_16(839);
+emit_16(772);
+emit_16(839);
+emit_16(773);
+emit_16(840);
+emit_16(774);
+emit_16(840);
+emit_16(773);
+emit_16(840);
+emit_16(774);
+emit_16(841);
+emit_16(775);
+emit_16(841);
+emit_16(774);
+emit_16(841);
+emit_16(775);
+emit_16(842);
+emit_16(776);
+emit_16(842);
+emit_16(775);
+emit_16(842);
+emit_16(776);
+emit_16(843);
+emit_16(777);
+emit_16(843);
+emit_16(776);
+emit_16(843);
+emit_16(777);
+emit_16(844);
+emit_16(778);
+emit_16(844);
+emit_16(777);
+emit_16(844);
+emit_16(778);
+emit_16(845);
+emit_16(779);
+emit_16(845);
+emit_16(778);
+emit_16(845);
+emit_16(779);
+emit_16(846);
+emit_16(780);
+emit_16(846);
+emit_16(779);
+emit_16(846);
+emit_16(780);
+emit_16(847);
+emit_16(781);
+emit_16(847);
+emit_16(780);
+emit_16(847);
+emit_16(781);
+emit_16(848);
+emit_16(782);
+emit_16(848);
+emit_16(781);
+emit_16(848);
+emit_16(782);
+emit_16(849);
+emit_16(783);
+emit_16(849);
+emit_16(782);
+emit_16(849);
+emit_16(783);
+emit_16(850);
+emit_16(784);
+emit_16(850);
+emit_16(783);
+emit_16(850);
+emit_16(784);
+emit_16(851);
+emit_16(785);
+emit_16(851);
+emit_16(784);
+emit_16(851);
+emit_16(785);
+emit_16(852);
+emit_16(786);
+emit_16(852);
+emit_16(785);
+emit_16(852);
+emit_16(786);
+emit_16(853);
+emit_16(787);
+emit_16(853);
+emit_16(786);
+emit_16(853);
+emit_16(787);
+emit_16(854);
+emit_16(788);
+emit_16(854);
+emit_16(787);
+emit_16(854);
+emit_16(788);
+emit_16(855);
+emit_16(789);
+emit_16(855);
+emit_16(788);
+emit_16(855);
+emit_16(789);
+emit_16(856);
+emit_16(790);
+emit_16(856);
+emit_16(789);
+emit_16(856);
+emit_16(790);
+emit_16(857);
+emit_16(791);
+emit_16(857);
+emit_16(790);
+emit_16(858);
+emit_16(792);
+emit_16(859);
+emit_16(793);
+emit_16(859);
+emit_16(792);
+emit_16(859);
+emit_16(793);
+emit_16(860);
+emit_16(794);
+emit_16(860);
+emit_16(793);
+emit_16(860);
+emit_16(794);
+emit_16(861);
+emit_16(795);
+emit_16(861);
+emit_16(794);
+emit_16(861);
+emit_16(795);
+emit_16(862);
+emit_16(796);
+emit_16(862);
+emit_16(795);
+emit_16(862);
+emit_16(796);
+emit_16(863);
+emit_16(797);
+emit_16(863);
+emit_16(796);
+emit_16(863);
+emit_16(797);
+emit_16(864);
+emit_16(798);
+emit_16(864);
+emit_16(797);
+emit_16(864);
+emit_16(798);
+emit_16(865);
+emit_16(799);
+emit_16(865);
+emit_16(798);
+emit_16(865);
+emit_16(799);
+emit_16(866);
+emit_16(800);
+emit_16(866);
+emit_16(799);
+emit_16(866);
+emit_16(800);
+emit_16(867);
+emit_16(801);
+emit_16(867);
+emit_16(800);
+emit_16(867);
+emit_16(801);
+emit_16(868);
+emit_16(802);
+emit_16(868);
+emit_16(801);
+emit_16(868);
+emit_16(802);
+emit_16(869);
+emit_16(803);
+emit_16(869);
+emit_16(802);
+emit_16(869);
+emit_16(803);
+emit_16(870);
+emit_16(804);
+emit_16(870);
+emit_16(803);
+emit_16(870);
+emit_16(804);
+emit_16(871);
+emit_16(805);
+emit_16(871);
+emit_16(804);
+emit_16(871);
+emit_16(805);
+emit_16(872);
+emit_16(806);
+emit_16(872);
+emit_16(805);
+emit_16(872);
+emit_16(806);
+emit_16(873);
+emit_16(807);
+emit_16(873);
+emit_16(806);
+emit_16(873);
+emit_16(807);
+emit_16(874);
+emit_16(808);
+emit_16(874);
+emit_16(807);
+emit_16(874);
+emit_16(808);
+emit_16(875);
+emit_16(809);
+emit_16(875);
+emit_16(808);
+emit_16(875);
+emit_16(809);
+emit_16(876);
+emit_16(810);
+emit_16(876);
+emit_16(809);
+emit_16(876);
+emit_16(810);
+emit_16(877);
+emit_16(811);
+emit_16(877);
+emit_16(810);
+emit_16(877);
+emit_16(811);
+emit_16(878);
+emit_16(812);
+emit_16(878);
+emit_16(811);
+emit_16(878);
+emit_16(812);
+emit_16(879);
+emit_16(813);
+emit_16(879);
+emit_16(812);
+emit_16(879);
+emit_16(813);
+emit_16(880);
+emit_16(814);
+emit_16(880);
+emit_16(813);
+emit_16(880);
+emit_16(814);
+emit_16(881);
+emit_16(815);
+emit_16(881);
+emit_16(814);
+emit_16(881);
+emit_16(815);
+emit_16(882);
+emit_16(816);
+emit_16(882);
+emit_16(815);
+emit_16(882);
+emit_16(816);
+emit_16(883);
+emit_16(817);
+emit_16(883);
+emit_16(816);
+emit_16(883);
+emit_16(817);
+emit_16(884);
+emit_16(818);
+emit_16(884);
+emit_16(817);
+emit_16(884);
+emit_16(818);
+emit_16(885);
+emit_16(819);
+emit_16(885);
+emit_16(818);
+emit_16(885);
+emit_16(819);
+emit_16(886);
+emit_16(820);
+emit_16(886);
+emit_16(819);
+emit_16(886);
+emit_16(820);
+emit_16(887);
+emit_16(821);
+emit_16(887);
+emit_16(820);
+emit_16(887);
+emit_16(821);
+emit_16(888);
+emit_16(822);
+emit_16(888);
+emit_16(821);
+emit_16(888);
+emit_16(822);
+emit_16(889);
+emit_16(823);
+emit_16(889);
+emit_16(822);
+emit_16(889);
+emit_16(823);
+emit_16(890);
+emit_16(824);
+emit_16(890);
+emit_16(823);
+emit_16(890);
+emit_16(824);
+emit_16(891);
+emit_16(825);
+emit_16(891);
+emit_16(824);
+emit_16(891);
+emit_16(825);
+emit_16(892);
+emit_16(826);
+emit_16(892);
+emit_16(825);
+emit_16(892);
+emit_16(826);
+emit_16(893);
+emit_16(827);
+emit_16(893);
+emit_16(826);
+emit_16(893);
+emit_16(827);
+emit_16(894);
+emit_16(828);
+emit_16(894);
+emit_16(827);
+emit_16(894);
+emit_16(828);
+emit_16(895);
+emit_16(829);
+emit_16(895);
+emit_16(828);
+emit_16(895);
+emit_16(829);
+emit_16(896);
+emit_16(830);
+emit_16(896);
+emit_16(829);
+emit_16(896);
+emit_16(830);
+emit_16(897);
+emit_16(831);
+emit_16(897);
+emit_16(830);
+emit_16(897);
+emit_16(831);
+emit_16(898);
+emit_16(832);
+emit_16(898);
+emit_16(831);
+emit_16(898);
+emit_16(832);
+emit_16(899);
+emit_16(833);
+emit_16(899);
+emit_16(832);
+emit_16(899);
+emit_16(833);
+emit_16(900);
+emit_16(834);
+emit_16(900);
+emit_16(833);
+emit_16(900);
+emit_16(834);
+emit_16(901);
+emit_16(835);
+emit_16(901);
+emit_16(834);
+emit_16(901);
+emit_16(835);
+emit_16(902);
+emit_16(836);
+emit_16(902);
+emit_16(835);
+emit_16(902);
+emit_16(836);
+emit_16(903);
+emit_16(837);
+emit_16(903);
+emit_16(836);
+emit_16(903);
+emit_16(837);
+emit_16(904);
+emit_16(838);
+emit_16(904);
+emit_16(837);
+emit_16(904);
+emit_16(838);
+emit_16(905);
+emit_16(839);
+emit_16(905);
+emit_16(838);
+emit_16(905);
+emit_16(839);
+emit_16(906);
+emit_16(840);
+emit_16(906);
+emit_16(839);
+emit_16(906);
+emit_16(840);
+emit_16(907);
+emit_16(841);
+emit_16(907);
+emit_16(840);
+emit_16(907);
+emit_16(841);
+emit_16(908);
+emit_16(842);
+emit_16(908);
+emit_16(841);
+emit_16(908);
+emit_16(842);
+emit_16(909);
+emit_16(843);
+emit_16(909);
+emit_16(842);
+emit_16(909);
+emit_16(843);
+emit_16(910);
+emit_16(844);
+emit_16(910);
+emit_16(843);
+emit_16(910);
+emit_16(844);
+emit_16(911);
+emit_16(845);
+emit_16(911);
+emit_16(844);
+emit_16(911);
+emit_16(845);
+emit_16(912);
+emit_16(846);
+emit_16(912);
+emit_16(845);
+emit_16(912);
+emit_16(846);
+emit_16(913);
+emit_16(847);
+emit_16(913);
+emit_16(846);
+emit_16(913);
+emit_16(847);
+emit_16(914);
+emit_16(848);
+emit_16(914);
+emit_16(847);
+emit_16(914);
+emit_16(848);
+emit_16(915);
+emit_16(849);
+emit_16(915);
+emit_16(848);
+emit_16(915);
+emit_16(849);
+emit_16(916);
+emit_16(850);
+emit_16(916);
+emit_16(849);
+emit_16(916);
+emit_16(850);
+emit_16(917);
+emit_16(851);
+emit_16(917);
+emit_16(850);
+emit_16(917);
+emit_16(851);
+emit_16(918);
+emit_16(852);
+emit_16(918);
+emit_16(851);
+emit_16(918);
+emit_16(852);
+emit_16(919);
+emit_16(853);
+emit_16(919);
+emit_16(852);
+emit_16(919);
+emit_16(853);
+emit_16(920);
+emit_16(854);
+emit_16(920);
+emit_16(853);
+emit_16(920);
+emit_16(854);
+emit_16(921);
+emit_16(855);
+emit_16(921);
+emit_16(854);
+emit_16(921);
+emit_16(855);
+emit_16(922);
+emit_16(856);
+emit_16(922);
+emit_16(855);
+emit_16(922);
+emit_16(856);
+emit_16(923);
+emit_16(857);
+emit_16(923);
+emit_16(856);
+emit_16(924);
+emit_16(858);
+emit_16(925);
+emit_16(859);
+emit_16(925);
+emit_16(858);
+emit_16(925);
+emit_16(859);
+emit_16(926);
+emit_16(860);
+emit_16(926);
+emit_16(859);
+emit_16(926);
+emit_16(860);
+emit_16(927);
+emit_16(861);
+emit_16(927);
+emit_16(860);
+emit_16(927);
+emit_16(861);
+emit_16(928);
+emit_16(862);
+emit_16(928);
+emit_16(861);
+emit_16(928);
+emit_16(862);
+emit_16(929);
+emit_16(863);
+emit_16(929);
+emit_16(862);
+emit_16(929);
+emit_16(863);
+emit_16(930);
+emit_16(864);
+emit_16(930);
+emit_16(863);
+emit_16(930);
+emit_16(864);
+emit_16(931);
+emit_16(865);
+emit_16(931);
+emit_16(864);
+emit_16(931);
+emit_16(865);
+emit_16(932);
+emit_16(866);
+emit_16(932);
+emit_16(865);
+emit_16(932);
+emit_16(866);
+emit_16(933);
+emit_16(867);
+emit_16(933);
+emit_16(866);
+emit_16(933);
+emit_16(867);
+emit_16(934);
+emit_16(868);
+emit_16(934);
+emit_16(867);
+emit_16(934);
+emit_16(868);
+emit_16(935);
+emit_16(869);
+emit_16(935);
+emit_16(868);
+emit_16(935);
+emit_16(869);
+emit_16(936);
+emit_16(870);
+emit_16(936);
+emit_16(869);
+emit_16(936);
+emit_16(870);
+emit_16(937);
+emit_16(871);
+emit_16(937);
+emit_16(870);
+emit_16(937);
+emit_16(871);
+emit_16(938);
+emit_16(872);
+emit_16(938);
+emit_16(871);
+emit_16(938);
+emit_16(872);
+emit_16(939);
+emit_16(873);
+emit_16(939);
+emit_16(872);
+emit_16(939);
+emit_16(873);
+emit_16(940);
+emit_16(874);
+emit_16(940);
+emit_16(873);
+emit_16(940);
+emit_16(874);
+emit_16(941);
+emit_16(875);
+emit_16(941);
+emit_16(874);
+emit_16(941);
+emit_16(875);
+emit_16(942);
+emit_16(876);
+emit_16(942);
+emit_16(875);
+emit_16(942);
+emit_16(876);
+emit_16(943);
+emit_16(877);
+emit_16(943);
+emit_16(876);
+emit_16(943);
+emit_16(877);
+emit_16(944);
+emit_16(878);
+emit_16(944);
+emit_16(877);
+emit_16(944);
+emit_16(878);
+emit_16(945);
+emit_16(879);
+emit_16(945);
+emit_16(878);
+emit_16(945);
+emit_16(879);
+emit_16(946);
+emit_16(880);
+emit_16(946);
+emit_16(879);
+emit_16(946);
+emit_16(880);
+emit_16(947);
+emit_16(881);
+emit_16(947);
+emit_16(880);
+emit_16(947);
+emit_16(881);
+emit_16(948);
+emit_16(882);
+emit_16(948);
+emit_16(881);
+emit_16(948);
+emit_16(882);
+emit_16(949);
+emit_16(883);
+emit_16(949);
+emit_16(882);
+emit_16(949);
+emit_16(883);
+emit_16(950);
+emit_16(884);
+emit_16(950);
+emit_16(883);
+emit_16(950);
+emit_16(884);
+emit_16(951);
+emit_16(885);
+emit_16(951);
+emit_16(884);
+emit_16(951);
+emit_16(885);
+emit_16(952);
+emit_16(886);
+emit_16(952);
+emit_16(885);
+emit_16(952);
+emit_16(886);
+emit_16(953);
+emit_16(887);
+emit_16(953);
+emit_16(886);
+emit_16(953);
+emit_16(887);
+emit_16(954);
+emit_16(888);
+emit_16(954);
+emit_16(887);
+emit_16(954);
+emit_16(888);
+emit_16(955);
+emit_16(889);
+emit_16(955);
+emit_16(888);
+emit_16(955);
+emit_16(889);
+emit_16(956);
+emit_16(890);
+emit_16(956);
+emit_16(889);
+emit_16(956);
+emit_16(890);
+emit_16(957);
+emit_16(891);
+emit_16(957);
+emit_16(890);
+emit_16(957);
+emit_16(891);
+emit_16(958);
+emit_16(892);
+emit_16(958);
+emit_16(891);
+emit_16(958);
+emit_16(892);
+emit_16(959);
+emit_16(893);
+emit_16(959);
+emit_16(892);
+emit_16(959);
+emit_16(893);
+emit_16(960);
+emit_16(894);
+emit_16(960);
+emit_16(893);
+emit_16(960);
+emit_16(894);
+emit_16(961);
+emit_16(895);
+emit_16(961);
+emit_16(894);
+emit_16(961);
+emit_16(895);
+emit_16(962);
+emit_16(896);
+emit_16(962);
+emit_16(895);
+emit_16(962);
+emit_16(896);
+emit_16(963);
+emit_16(897);
+emit_16(963);
+emit_16(896);
+emit_16(963);
+emit_16(897);
+emit_16(964);
+emit_16(898);
+emit_16(964);
+emit_16(897);
+emit_16(964);
+emit_16(898);
+emit_16(965);
+emit_16(899);
+emit_16(965);
+emit_16(898);
+emit_16(965);
+emit_16(899);
+emit_16(966);
+emit_16(900);
+emit_16(966);
+emit_16(899);
+emit_16(966);
+emit_16(900);
+emit_16(967);
+emit_16(901);
+emit_16(967);
+emit_16(900);
+emit_16(967);
+emit_16(901);
+emit_16(968);
+emit_16(902);
+emit_16(968);
+emit_16(901);
+emit_16(968);
+emit_16(902);
+emit_16(969);
+emit_16(903);
+emit_16(969);
+emit_16(902);
+emit_16(969);
+emit_16(903);
+emit_16(970);
+emit_16(904);
+emit_16(970);
+emit_16(903);
+emit_16(970);
+emit_16(904);
+emit_16(971);
+emit_16(905);
+emit_16(971);
+emit_16(904);
+emit_16(971);
+emit_16(905);
+emit_16(972);
+emit_16(906);
+emit_16(972);
+emit_16(905);
+emit_16(972);
+emit_16(906);
+emit_16(973);
+emit_16(907);
+emit_16(973);
+emit_16(906);
+emit_16(973);
+emit_16(907);
+emit_16(974);
+emit_16(908);
+emit_16(974);
+emit_16(907);
+emit_16(974);
+emit_16(908);
+emit_16(975);
+emit_16(909);
+emit_16(975);
+emit_16(908);
+emit_16(975);
+emit_16(909);
+emit_16(976);
+emit_16(910);
+emit_16(976);
+emit_16(909);
+emit_16(976);
+emit_16(910);
+emit_16(977);
+emit_16(911);
+emit_16(977);
+emit_16(910);
+emit_16(977);
+emit_16(911);
+emit_16(978);
+emit_16(912);
+emit_16(978);
+emit_16(911);
+emit_16(978);
+emit_16(912);
+emit_16(979);
+emit_16(913);
+emit_16(979);
+emit_16(912);
+emit_16(979);
+emit_16(913);
+emit_16(980);
+emit_16(914);
+emit_16(980);
+emit_16(913);
+emit_16(980);
+emit_16(914);
+emit_16(981);
+emit_16(915);
+emit_16(981);
+emit_16(914);
+emit_16(981);
+emit_16(915);
+emit_16(982);
+emit_16(916);
+emit_16(982);
+emit_16(915);
+emit_16(982);
+emit_16(916);
+emit_16(983);
+emit_16(917);
+emit_16(983);
+emit_16(916);
+emit_16(983);
+emit_16(917);
+emit_16(984);
+emit_16(918);
+emit_16(984);
+emit_16(917);
+emit_16(984);
+emit_16(918);
+emit_16(985);
+emit_16(919);
+emit_16(985);
+emit_16(918);
+emit_16(985);
+emit_16(919);
+emit_16(986);
+emit_16(920);
+emit_16(986);
+emit_16(919);
+emit_16(986);
+emit_16(920);
+emit_16(987);
+emit_16(921);
+emit_16(987);
+emit_16(920);
+emit_16(987);
+emit_16(921);
+emit_16(988);
+emit_16(922);
+emit_16(988);
+emit_16(921);
+emit_16(988);
+emit_16(922);
+emit_16(989);
+emit_16(923);
+emit_16(989);
+emit_16(922);
+emit_16(990);
+emit_16(924);
+emit_16(991);
+emit_16(925);
+emit_16(991);
+emit_16(924);
+emit_16(991);
+emit_16(925);
+emit_16(992);
+emit_16(926);
+emit_16(992);
+emit_16(925);
+emit_16(992);
+emit_16(926);
+emit_16(993);
+emit_16(927);
+emit_16(993);
+emit_16(926);
+emit_16(993);
+emit_16(927);
+emit_16(994);
+emit_16(928);
+emit_16(994);
+emit_16(927);
+emit_16(994);
+emit_16(928);
+emit_16(995);
+emit_16(929);
+emit_16(995);
+emit_16(928);
+emit_16(995);
+emit_16(929);
+emit_16(996);
+emit_16(930);
+emit_16(996);
+emit_16(929);
+emit_16(996);
+emit_16(930);
+emit_16(997);
+emit_16(931);
+emit_16(997);
+emit_16(930);
+emit_16(997);
+emit_16(931);
+emit_16(998);
+emit_16(932);
+emit_16(998);
+emit_16(931);
+emit_16(998);
+emit_16(932);
+emit_16(999);
+emit_16(933);
+emit_16(999);
+emit_16(932);
+emit_16(999);
+emit_16(933);
+emit_16(1000);
+emit_16(934);
+emit_16(1000);
+emit_16(933);
+emit_16(1000);
+emit_16(934);
+emit_16(1001);
+emit_16(935);
+emit_16(1001);
+emit_16(934);
+emit_16(1001);
+emit_16(935);
+emit_16(1002);
+emit_16(936);
+emit_16(1002);
+emit_16(935);
+emit_16(1002);
+emit_16(936);
+emit_16(1003);
+emit_16(937);
+emit_16(1003);
+emit_16(936);
+emit_16(1003);
+emit_16(937);
+emit_16(1004);
+emit_16(938);
+emit_16(1004);
+emit_16(937);
+emit_16(1004);
+emit_16(938);
+emit_16(1005);
+emit_16(939);
+emit_16(1005);
+emit_16(938);
+emit_16(1005);
+emit_16(939);
+emit_16(1006);
+emit_16(940);
+emit_16(1006);
+emit_16(939);
+emit_16(1006);
+emit_16(940);
+emit_16(1007);
+emit_16(941);
+emit_16(1007);
+emit_16(940);
+emit_16(1007);
+emit_16(941);
+emit_16(1008);
+emit_16(942);
+emit_16(1008);
+emit_16(941);
+emit_16(1008);
+emit_16(942);
+emit_16(1009);
+emit_16(943);
+emit_16(1009);
+emit_16(942);
+emit_16(1009);
+emit_16(943);
+emit_16(1010);
+emit_16(944);
+emit_16(1010);
+emit_16(943);
+emit_16(1010);
+emit_16(944);
+emit_16(1011);
+emit_16(945);
+emit_16(1011);
+emit_16(944);
+emit_16(1011);
+emit_16(945);
+emit_16(1012);
+emit_16(946);
+emit_16(1012);
+emit_16(945);
+emit_16(1012);
+emit_16(946);
+emit_16(1013);
+emit_16(947);
+emit_16(1013);
+emit_16(946);
+emit_16(1013);
+emit_16(947);
+emit_16(1014);
+emit_16(948);
+emit_16(1014);
+emit_16(947);
+emit_16(1014);
+emit_16(948);
+emit_16(1015);
+emit_16(949);
+emit_16(1015);
+emit_16(948);
+emit_16(1015);
+emit_16(949);
+emit_16(1016);
+emit_16(950);
+emit_16(1016);
+emit_16(949);
+emit_16(1016);
+emit_16(950);
+emit_16(1017);
+emit_16(951);
+emit_16(1017);
+emit_16(950);
+emit_16(1017);
+emit_16(951);
+emit_16(1018);
+emit_16(952);
+emit_16(1018);
+emit_16(951);
+emit_16(1018);
+emit_16(952);
+emit_16(1019);
+emit_16(953);
+emit_16(1019);
+emit_16(952);
+emit_16(1019);
+emit_16(953);
+emit_16(1020);
+emit_16(954);
+emit_16(1020);
+emit_16(953);
+emit_16(1020);
+emit_16(954);
+emit_16(1021);
+emit_16(955);
+emit_16(1021);
+emit_16(954);
+emit_16(1021);
+emit_16(955);
+emit_16(1022);
+emit_16(956);
+emit_16(1022);
+emit_16(955);
+emit_16(1022);
+emit_16(956);
+emit_16(1023);
+emit_16(957);
+emit_16(1023);
+emit_16(956);
+emit_16(1023);
+emit_16(957);
+emit_16(1024);
+emit_16(958);
+emit_16(1024);
+emit_16(957);
+emit_16(1024);
+emit_16(958);
+emit_16(1025);
+emit_16(959);
+emit_16(1025);
+emit_16(958);
+emit_16(1025);
+emit_16(959);
+emit_16(1026);
+emit_16(960);
+emit_16(1026);
+emit_16(959);
+emit_16(1026);
+emit_16(960);
+emit_16(1027);
+emit_16(961);
+emit_16(1027);
+emit_16(960);
+emit_16(1027);
+emit_16(961);
+emit_16(1028);
+emit_16(962);
+emit_16(1028);
+emit_16(961);
+emit_16(1028);
+emit_16(962);
+emit_16(1029);
+emit_16(963);
+emit_16(1029);
+emit_16(962);
+emit_16(1029);
+emit_16(963);
+emit_16(1030);
+emit_16(964);
+emit_16(1030);
+emit_16(963);
+emit_16(1030);
+emit_16(964);
+emit_16(1031);
+emit_16(965);
+emit_16(1031);
+emit_16(964);
+emit_16(1031);
+emit_16(965);
+emit_16(1032);
+emit_16(966);
+emit_16(1032);
+emit_16(965);
+emit_16(1032);
+emit_16(966);
+emit_16(1033);
+emit_16(967);
+emit_16(1033);
+emit_16(966);
+emit_16(1033);
+emit_16(967);
+emit_16(1034);
+emit_16(968);
+emit_16(1034);
+emit_16(967);
+emit_16(1034);
+emit_16(968);
+emit_16(1035);
+emit_16(969);
+emit_16(1035);
+emit_16(968);
+emit_16(1035);
+emit_16(969);
+emit_16(1036);
+emit_16(970);
+emit_16(1036);
+emit_16(969);
+emit_16(1036);
+emit_16(970);
+emit_16(1037);
+emit_16(971);
+emit_16(1037);
+emit_16(970);
+emit_16(1037);
+emit_16(971);
+emit_16(1038);
+emit_16(972);
+emit_16(1038);
+emit_16(971);
+emit_16(1038);
+emit_16(972);
+emit_16(1039);
+emit_16(973);
+emit_16(1039);
+emit_16(972);
+emit_16(1039);
+emit_16(973);
+emit_16(1040);
+emit_16(974);
+emit_16(1040);
+emit_16(973);
+emit_16(1040);
+emit_16(974);
+emit_16(1041);
+emit_16(975);
+emit_16(1041);
+emit_16(974);
+emit_16(1041);
+emit_16(975);
+emit_16(1042);
+emit_16(976);
+emit_16(1042);
+emit_16(975);
+emit_16(1042);
+emit_16(976);
+emit_16(1043);
+emit_16(977);
+emit_16(1043);
+emit_16(976);
+emit_16(1043);
+emit_16(977);
+emit_16(1044);
+emit_16(978);
+emit_16(1044);
+emit_16(977);
+emit_16(1044);
+emit_16(978);
+emit_16(1045);
+emit_16(979);
+emit_16(1045);
+emit_16(978);
+emit_16(1045);
+emit_16(979);
+emit_16(1046);
+emit_16(980);
+emit_16(1046);
+emit_16(979);
+emit_16(1046);
+emit_16(980);
+emit_16(1047);
+emit_16(981);
+emit_16(1047);
+emit_16(980);
+emit_16(1047);
+emit_16(981);
+emit_16(1048);
+emit_16(982);
+emit_16(1048);
+emit_16(981);
+emit_16(1048);
+emit_16(982);
+emit_16(1049);
+emit_16(983);
+emit_16(1049);
+emit_16(982);
+emit_16(1049);
+emit_16(983);
+emit_16(1050);
+emit_16(984);
+emit_16(1050);
+emit_16(983);
+emit_16(1050);
+emit_16(984);
+emit_16(1051);
+emit_16(985);
+emit_16(1051);
+emit_16(984);
+emit_16(1051);
+emit_16(985);
+emit_16(1052);
+emit_16(986);
+emit_16(1052);
+emit_16(985);
+emit_16(1052);
+emit_16(986);
+emit_16(1053);
+emit_16(987);
+emit_16(1053);
+emit_16(986);
+emit_16(1053);
+emit_16(987);
+emit_16(1054);
+emit_16(988);
+emit_16(1054);
+emit_16(987);
+emit_16(1054);
+emit_16(988);
+emit_16(1055);
+emit_16(989);
+emit_16(1055);
+emit_16(988);
+emit_16(1056);
+emit_16(990);
+emit_16(1057);
+emit_16(991);
+emit_16(1057);
+emit_16(990);
+emit_16(1057);
+emit_16(991);
+emit_16(1058);
+emit_16(992);
+emit_16(1058);
+emit_16(991);
+emit_16(1058);
+emit_16(992);
+emit_16(1059);
+emit_16(993);
+emit_16(1059);
+emit_16(992);
+emit_16(1059);
+emit_16(993);
+emit_16(1060);
+emit_16(994);
+emit_16(1060);
+emit_16(993);
+emit_16(1060);
+emit_16(994);
+emit_16(1061);
+emit_16(995);
+emit_16(1061);
+emit_16(994);
+emit_16(1061);
+emit_16(995);
+emit_16(1062);
+emit_16(996);
+emit_16(1062);
+emit_16(995);
+emit_16(1062);
+emit_16(996);
+emit_16(1063);
+emit_16(997);
+emit_16(1063);
+emit_16(996);
+emit_16(1063);
+emit_16(997);
+emit_16(1064);
+emit_16(998);
+emit_16(1064);
+emit_16(997);
+emit_16(1064);
+emit_16(998);
+emit_16(1065);
+emit_16(999);
+emit_16(1065);
+emit_16(998);
+emit_16(1065);
+emit_16(999);
+emit_16(1066);
+emit_16(1000);
+emit_16(1066);
+emit_16(999);
+emit_16(1066);
+emit_16(1000);
+emit_16(1067);
+emit_16(1001);
+emit_16(1067);
+emit_16(1000);
+emit_16(1067);
+emit_16(1001);
+emit_16(1068);
+emit_16(1002);
+emit_16(1068);
+emit_16(1001);
+emit_16(1068);
+emit_16(1002);
+emit_16(1069);
+emit_16(1003);
+emit_16(1069);
+emit_16(1002);
+emit_16(1069);
+emit_16(1003);
+emit_16(1070);
+emit_16(1004);
+emit_16(1070);
+emit_16(1003);
+emit_16(1070);
+emit_16(1004);
+emit_16(1071);
+emit_16(1005);
+emit_16(1071);
+emit_16(1004);
+emit_16(1071);
+emit_16(1005);
+emit_16(1072);
+emit_16(1006);
+emit_16(1072);
+emit_16(1005);
+emit_16(1072);
+emit_16(1006);
+emit_16(1073);
+emit_16(1007);
+emit_16(1073);
+emit_16(1006);
+emit_16(1073);
+emit_16(1007);
+emit_16(1074);
+emit_16(1008);
+emit_16(1074);
+emit_16(1007);
+emit_16(1074);
+emit_16(1008);
+emit_16(1075);
+emit_16(1009);
+emit_16(1075);
+emit_16(1008);
+emit_16(1075);
+emit_16(1009);
+emit_16(1076);
+emit_16(1010);
+emit_16(1076);
+emit_16(1009);
+emit_16(1076);
+emit_16(1010);
+emit_16(1077);
+emit_16(1011);
+emit_16(1077);
+emit_16(1010);
+emit_16(1077);
+emit_16(1011);
+emit_16(1078);
+emit_16(1012);
+emit_16(1078);
+emit_16(1011);
+emit_16(1078);
+emit_16(1012);
+emit_16(1079);
+emit_16(1013);
+emit_16(1079);
+emit_16(1012);
+emit_16(1079);
+emit_16(1013);
+emit_16(1080);
+emit_16(1014);
+emit_16(1080);
+emit_16(1013);
+emit_16(1080);
+emit_16(1014);
+emit_16(1081);
+emit_16(1015);
+emit_16(1081);
+emit_16(1014);
+emit_16(1081);
+emit_16(1015);
+emit_16(1082);
+emit_16(1016);
+emit_16(1082);
+emit_16(1015);
+emit_16(1082);
+emit_16(1016);
+emit_16(1083);
+emit_16(1017);
+emit_16(1083);
+emit_16(1016);
+emit_16(1083);
+emit_16(1017);
+emit_16(1084);
+emit_16(1018);
+emit_16(1084);
+emit_16(1017);
+emit_16(1084);
+emit_16(1018);
+emit_16(1085);
+emit_16(1019);
+emit_16(1085);
+emit_16(1018);
+emit_16(1085);
+emit_16(1019);
+emit_16(1086);
+emit_16(1020);
+emit_16(1086);
+emit_16(1019);
+emit_16(1086);
+emit_16(1020);
+emit_16(1087);
+emit_16(1021);
+emit_16(1087);
+emit_16(1020);
+emit_16(1087);
+emit_16(1021);
+emit_16(1088);
+emit_16(1022);
+emit_16(1088);
+emit_16(1021);
+emit_16(1088);
+emit_16(1022);
+emit_16(1089);
+emit_16(1023);
+emit_16(1089);
+emit_16(1022);
+emit_16(1089);
+emit_16(1023);
+emit_16(1090);
+emit_16(1024);
+emit_16(1090);
+emit_16(1023);
+emit_16(1090);
+emit_16(1024);
+emit_16(1091);
+emit_16(1025);
+emit_16(1091);
+emit_16(1024);
+emit_16(1091);
+emit_16(1025);
+emit_16(1092);
+emit_16(1026);
+emit_16(1092);
+emit_16(1025);
+emit_16(1092);
+emit_16(1026);
+emit_16(1093);
+emit_16(1027);
+emit_16(1093);
+emit_16(1026);
+emit_16(1093);
+emit_16(1027);
+emit_16(1094);
+emit_16(1028);
+emit_16(1094);
+emit_16(1027);
+emit_16(1094);
+emit_16(1028);
+emit_16(1095);
+emit_16(1029);
+emit_16(1095);
+emit_16(1028);
+emit_16(1095);
+emit_16(1029);
+emit_16(1096);
+emit_16(1030);
+emit_16(1096);
+emit_16(1029);
+emit_16(1096);
+emit_16(1030);
+emit_16(1097);
+emit_16(1031);
+emit_16(1097);
+emit_16(1030);
+emit_16(1097);
+emit_16(1031);
+emit_16(1098);
+emit_16(1032);
+emit_16(1098);
+emit_16(1031);
+emit_16(1098);
+emit_16(1032);
+emit_16(1099);
+emit_16(1033);
+emit_16(1099);
+emit_16(1032);
+emit_16(1099);
+emit_16(1033);
+emit_16(1100);
+emit_16(1034);
+emit_16(1100);
+emit_16(1033);
+emit_16(1100);
+emit_16(1034);
+emit_16(1101);
+emit_16(1035);
+emit_16(1101);
+emit_16(1034);
+emit_16(1101);
+emit_16(1035);
+emit_16(1102);
+emit_16(1036);
+emit_16(1102);
+emit_16(1035);
+emit_16(1102);
+emit_16(1036);
+emit_16(1103);
+emit_16(1037);
+emit_16(1103);
+emit_16(1036);
+emit_16(1103);
+emit_16(1037);
+emit_16(1104);
+emit_16(1038);
+emit_16(1104);
+emit_16(1037);
+emit_16(1104);
+emit_16(1038);
+emit_16(1105);
+emit_16(1039);
+emit_16(1105);
+emit_16(1038);
+emit_16(1105);
+emit_16(1039);
+emit_16(1106);
+emit_16(1040);
+emit_16(1106);
+emit_16(1039);
+emit_16(1106);
+emit_16(1040);
+emit_16(1107);
+emit_16(1041);
+emit_16(1107);
+emit_16(1040);
+emit_16(1107);
+emit_16(1041);
+emit_16(1108);
+emit_16(1042);
+emit_16(1108);
+emit_16(1041);
+emit_16(1108);
+emit_16(1042);
+emit_16(1109);
+emit_16(1043);
+emit_16(1109);
+emit_16(1042);
+emit_16(1109);
+emit_16(1043);
+emit_16(1110);
+emit_16(1044);
+emit_16(1110);
+emit_16(1043);
+emit_16(1110);
+emit_16(1044);
+emit_16(1111);
+emit_16(1045);
+emit_16(1111);
+emit_16(1044);
+emit_16(1111);
+emit_16(1045);
+emit_16(1112);
+emit_16(1046);
+emit_16(1112);
+emit_16(1045);
+emit_16(1112);
+emit_16(1046);
+emit_16(1113);
+emit_16(1047);
+emit_16(1113);
+emit_16(1046);
+emit_16(1113);
+emit_16(1047);
+emit_16(1114);
+emit_16(1048);
+emit_16(1114);
+emit_16(1047);
+emit_16(1114);
+emit_16(1048);
+emit_16(1115);
+emit_16(1049);
+emit_16(1115);
+emit_16(1048);
+emit_16(1115);
+emit_16(1049);
+emit_16(1116);
+emit_16(1050);
+emit_16(1116);
+emit_16(1049);
+emit_16(1116);
+emit_16(1050);
+emit_16(1117);
+emit_16(1051);
+emit_16(1117);
+emit_16(1050);
+emit_16(1117);
+emit_16(1051);
+emit_16(1118);
+emit_16(1052);
+emit_16(1118);
+emit_16(1051);
+emit_16(1118);
+emit_16(1052);
+emit_16(1119);
+emit_16(1053);
+emit_16(1119);
+emit_16(1052);
+emit_16(1119);
+emit_16(1053);
+emit_16(1120);
+emit_16(1054);
+emit_16(1120);
+emit_16(1053);
+emit_16(1120);
+emit_16(1054);
+emit_16(1121);
+emit_16(1055);
+emit_16(1121);
+emit_16(1054);
+emit_16(1122);
+emit_16(1056);
+emit_16(1123);
+emit_16(1057);
+emit_16(1123);
+emit_16(1056);
+emit_16(1123);
+emit_16(1057);
+emit_16(1124);
+emit_16(1058);
+emit_16(1124);
+emit_16(1057);
+emit_16(1124);
+emit_16(1058);
+emit_16(1125);
+emit_16(1059);
+emit_16(1125);
+emit_16(1058);
+emit_16(1125);
+emit_16(1059);
+emit_16(1126);
+emit_16(1060);
+emit_16(1126);
+emit_16(1059);
+emit_16(1126);
+emit_16(1060);
+emit_16(1127);
+emit_16(1061);
+emit_16(1127);
+emit_16(1060);
+emit_16(1127);
+emit_16(1061);
+emit_16(1128);
+emit_16(1062);
+emit_16(1128);
+emit_16(1061);
+emit_16(1128);
+emit_16(1062);
+emit_16(1129);
+emit_16(1063);
+emit_16(1129);
+emit_16(1062);
+emit_16(1129);
+emit_16(1063);
+emit_16(1130);
+emit_16(1064);
+emit_16(1130);
+emit_16(1063);
+emit_16(1130);
+emit_16(1064);
+emit_16(1131);
+emit_16(1065);
+emit_16(1131);
+emit_16(1064);
+emit_16(1131);
+emit_16(1065);
+emit_16(1132);
+emit_16(1066);
+emit_16(1132);
+emit_16(1065);
+emit_16(1132);
+emit_16(1066);
+emit_16(1133);
+emit_16(1067);
+emit_16(1133);
+emit_16(1066);
+emit_16(1133);
+emit_16(1067);
+emit_16(1134);
+emit_16(1068);
+emit_16(1134);
+emit_16(1067);
+emit_16(1134);
+emit_16(1068);
+emit_16(1135);
+emit_16(1069);
+emit_16(1135);
+emit_16(1068);
+emit_16(1135);
+emit_16(1069);
+emit_16(1136);
+emit_16(1070);
+emit_16(1136);
+emit_16(1069);
+emit_16(1136);
+emit_16(1070);
+emit_16(1137);
+emit_16(1071);
+emit_16(1137);
+emit_16(1070);
+emit_16(1137);
+emit_16(1071);
+emit_16(1138);
+emit_16(1072);
+emit_16(1138);
+emit_16(1071);
+emit_16(1138);
+emit_16(1072);
+emit_16(1139);
+emit_16(1073);
+emit_16(1139);
+emit_16(1072);
+emit_16(1139);
+emit_16(1073);
+emit_16(1140);
+emit_16(1074);
+emit_16(1140);
+emit_16(1073);
+emit_16(1140);
+emit_16(1074);
+emit_16(1141);
+emit_16(1075);
+emit_16(1141);
+emit_16(1074);
+emit_16(1141);
+emit_16(1075);
+emit_16(1142);
+emit_16(1076);
+emit_16(1142);
+emit_16(1075);
+emit_16(1142);
+emit_16(1076);
+emit_16(1143);
+emit_16(1077);
+emit_16(1143);
+emit_16(1076);
+emit_16(1143);
+emit_16(1077);
+emit_16(1144);
+emit_16(1078);
+emit_16(1144);
+emit_16(1077);
+emit_16(1144);
+emit_16(1078);
+emit_16(1145);
+emit_16(1079);
+emit_16(1145);
+emit_16(1078);
+emit_16(1145);
+emit_16(1079);
+emit_16(1146);
+emit_16(1080);
+emit_16(1146);
+emit_16(1079);
+emit_16(1146);
+emit_16(1080);
+emit_16(1147);
+emit_16(1081);
+emit_16(1147);
+emit_16(1080);
+emit_16(1147);
+emit_16(1081);
+emit_16(1148);
+emit_16(1082);
+emit_16(1148);
+emit_16(1081);
+emit_16(1148);
+emit_16(1082);
+emit_16(1149);
+emit_16(1083);
+emit_16(1149);
+emit_16(1082);
+emit_16(1149);
+emit_16(1083);
+emit_16(1150);
+emit_16(1084);
+emit_16(1150);
+emit_16(1083);
+emit_16(1150);
+emit_16(1084);
+emit_16(1151);
+emit_16(1085);
+emit_16(1151);
+emit_16(1084);
+emit_16(1151);
+emit_16(1085);
+emit_16(1152);
+emit_16(1086);
+emit_16(1152);
+emit_16(1085);
+emit_16(1152);
+emit_16(1086);
+emit_16(1153);
+emit_16(1087);
+emit_16(1153);
+emit_16(1086);
+emit_16(1153);
+emit_16(1087);
+emit_16(1154);
+emit_16(1088);
+emit_16(1154);
+emit_16(1087);
+emit_16(1154);
+emit_16(1088);
+emit_16(1155);
+emit_16(1089);
+emit_16(1155);
+emit_16(1088);
+emit_16(1155);
+emit_16(1089);
+emit_16(1156);
+emit_16(1090);
+emit_16(1156);
+emit_16(1089);
+emit_16(1156);
+emit_16(1090);
+emit_16(1157);
+emit_16(1091);
+emit_16(1157);
+emit_16(1090);
+emit_16(1157);
+emit_16(1091);
+emit_16(1158);
+emit_16(1092);
+emit_16(1158);
+emit_16(1091);
+emit_16(1158);
+emit_16(1092);
+emit_16(1159);
+emit_16(1093);
+emit_16(1159);
+emit_16(1092);
+emit_16(1159);
+emit_16(1093);
+emit_16(1160);
+emit_16(1094);
+emit_16(1160);
+emit_16(1093);
+emit_16(1160);
+emit_16(1094);
+emit_16(1161);
+emit_16(1095);
+emit_16(1161);
+emit_16(1094);
+emit_16(1161);
+emit_16(1095);
+emit_16(1162);
+emit_16(1096);
+emit_16(1162);
+emit_16(1095);
+emit_16(1162);
+emit_16(1096);
+emit_16(1163);
+emit_16(1097);
+emit_16(1163);
+emit_16(1096);
+emit_16(1163);
+emit_16(1097);
+emit_16(1164);
+emit_16(1098);
+emit_16(1164);
+emit_16(1097);
+emit_16(1164);
+emit_16(1098);
+emit_16(1165);
+emit_16(1099);
+emit_16(1165);
+emit_16(1098);
+emit_16(1165);
+emit_16(1099);
+emit_16(1166);
+emit_16(1100);
+emit_16(1166);
+emit_16(1099);
+emit_16(1166);
+emit_16(1100);
+emit_16(1167);
+emit_16(1101);
+emit_16(1167);
+emit_16(1100);
+emit_16(1167);
+emit_16(1101);
+emit_16(1168);
+emit_16(1102);
+emit_16(1168);
+emit_16(1101);
+emit_16(1168);
+emit_16(1102);
+emit_16(1169);
+emit_16(1103);
+emit_16(1169);
+emit_16(1102);
+emit_16(1169);
+emit_16(1103);
+emit_16(1170);
+emit_16(1104);
+emit_16(1170);
+emit_16(1103);
+emit_16(1170);
+emit_16(1104);
+emit_16(1171);
+emit_16(1105);
+emit_16(1171);
+emit_16(1104);
+emit_16(1171);
+emit_16(1105);
+emit_16(1172);
+emit_16(1106);
+emit_16(1172);
+emit_16(1105);
+emit_16(1172);
+emit_16(1106);
+emit_16(1173);
+emit_16(1107);
+emit_16(1173);
+emit_16(1106);
+emit_16(1173);
+emit_16(1107);
+emit_16(1174);
+emit_16(1108);
+emit_16(1174);
+emit_16(1107);
+emit_16(1174);
+emit_16(1108);
+emit_16(1175);
+emit_16(1109);
+emit_16(1175);
+emit_16(1108);
+emit_16(1175);
+emit_16(1109);
+emit_16(1176);
+emit_16(1110);
+emit_16(1176);
+emit_16(1109);
+emit_16(1176);
+emit_16(1110);
+emit_16(1177);
+emit_16(1111);
+emit_16(1177);
+emit_16(1110);
+emit_16(1177);
+emit_16(1111);
+emit_16(1178);
+emit_16(1112);
+emit_16(1178);
+emit_16(1111);
+emit_16(1178);
+emit_16(1112);
+emit_16(1179);
+emit_16(1113);
+emit_16(1179);
+emit_16(1112);
+emit_16(1179);
+emit_16(1113);
+emit_16(1180);
+emit_16(1114);
+emit_16(1180);
+emit_16(1113);
+emit_16(1180);
+emit_16(1114);
+emit_16(1181);
+emit_16(1115);
+emit_16(1181);
+emit_16(1114);
+emit_16(1181);
+emit_16(1115);
+emit_16(1182);
+emit_16(1116);
+emit_16(1182);
+emit_16(1115);
+emit_16(1182);
+emit_16(1116);
+emit_16(1183);
+emit_16(1117);
+emit_16(1183);
+emit_16(1116);
+emit_16(1183);
+emit_16(1117);
+emit_16(1184);
+emit_16(1118);
+emit_16(1184);
+emit_16(1117);
+emit_16(1184);
+emit_16(1118);
+emit_16(1185);
+emit_16(1119);
+emit_16(1185);
+emit_16(1118);
+emit_16(1185);
+emit_16(1119);
+emit_16(1186);
+emit_16(1120);
+emit_16(1186);
+emit_16(1119);
+emit_16(1186);
+emit_16(1120);
+emit_16(1187);
+emit_16(1121);
+emit_16(1187);
+emit_16(1120);
+emit_16(1188);
+emit_16(1122);
+emit_16(1189);
+emit_16(1123);
+emit_16(1189);
+emit_16(1122);
+emit_16(1189);
+emit_16(1123);
+emit_16(1190);
+emit_16(1124);
+emit_16(1190);
+emit_16(1123);
+emit_16(1190);
+emit_16(1124);
+emit_16(1191);
+emit_16(1125);
+emit_16(1191);
+emit_16(1124);
+emit_16(1191);
+emit_16(1125);
+emit_16(1192);
+emit_16(1126);
+emit_16(1192);
+emit_16(1125);
+emit_16(1192);
+emit_16(1126);
+emit_16(1193);
+emit_16(1127);
+emit_16(1193);
+emit_16(1126);
+emit_16(1193);
+emit_16(1127);
+emit_16(1194);
+emit_16(1128);
+emit_16(1194);
+emit_16(1127);
+emit_16(1194);
+emit_16(1128);
+emit_16(1195);
+emit_16(1129);
+emit_16(1195);
+emit_16(1128);
+emit_16(1195);
+emit_16(1129);
+emit_16(1196);
+emit_16(1130);
+emit_16(1196);
+emit_16(1129);
+emit_16(1196);
+emit_16(1130);
+emit_16(1197);
+emit_16(1131);
+emit_16(1197);
+emit_16(1130);
+emit_16(1197);
+emit_16(1131);
+emit_16(1198);
+emit_16(1132);
+emit_16(1198);
+emit_16(1131);
+emit_16(1198);
+emit_16(1132);
+emit_16(1199);
+emit_16(1133);
+emit_16(1199);
+emit_16(1132);
+emit_16(1199);
+emit_16(1133);
+emit_16(1200);
+emit_16(1134);
+emit_16(1200);
+emit_16(1133);
+emit_16(1200);
+emit_16(1134);
+emit_16(1201);
+emit_16(1135);
+emit_16(1201);
+emit_16(1134);
+emit_16(1201);
+emit_16(1135);
+emit_16(1202);
+emit_16(1136);
+emit_16(1202);
+emit_16(1135);
+emit_16(1202);
+emit_16(1136);
+emit_16(1203);
+emit_16(1137);
+emit_16(1203);
+emit_16(1136);
+emit_16(1203);
+emit_16(1137);
+emit_16(1204);
+emit_16(1138);
+emit_16(1204);
+emit_16(1137);
+emit_16(1204);
+emit_16(1138);
+emit_16(1205);
+emit_16(1139);
+emit_16(1205);
+emit_16(1138);
+emit_16(1205);
+emit_16(1139);
+emit_16(1206);
+emit_16(1140);
+emit_16(1206);
+emit_16(1139);
+emit_16(1206);
+emit_16(1140);
+emit_16(1207);
+emit_16(1141);
+emit_16(1207);
+emit_16(1140);
+emit_16(1207);
+emit_16(1141);
+emit_16(1208);
+emit_16(1142);
+emit_16(1208);
+emit_16(1141);
+emit_16(1208);
+emit_16(1142);
+emit_16(1209);
+emit_16(1143);
+emit_16(1209);
+emit_16(1142);
+emit_16(1209);
+emit_16(1143);
+emit_16(1210);
+emit_16(1144);
+emit_16(1210);
+emit_16(1143);
+emit_16(1210);
+emit_16(1144);
+emit_16(1211);
+emit_16(1145);
+emit_16(1211);
+emit_16(1144);
+emit_16(1211);
+emit_16(1145);
+emit_16(1212);
+emit_16(1146);
+emit_16(1212);
+emit_16(1145);
+emit_16(1212);
+emit_16(1146);
+emit_16(1213);
+emit_16(1147);
+emit_16(1213);
+emit_16(1146);
+emit_16(1213);
+emit_16(1147);
+emit_16(1214);
+emit_16(1148);
+emit_16(1214);
+emit_16(1147);
+emit_16(1214);
+emit_16(1148);
+emit_16(1215);
+emit_16(1149);
+emit_16(1215);
+emit_16(1148);
+emit_16(1215);
+emit_16(1149);
+emit_16(1216);
+emit_16(1150);
+emit_16(1216);
+emit_16(1149);
+emit_16(1216);
+emit_16(1150);
+emit_16(1217);
+emit_16(1151);
+emit_16(1217);
+emit_16(1150);
+emit_16(1217);
+emit_16(1151);
+emit_16(1218);
+emit_16(1152);
+emit_16(1218);
+emit_16(1151);
+emit_16(1218);
+emit_16(1152);
+emit_16(1219);
+emit_16(1153);
+emit_16(1219);
+emit_16(1152);
+emit_16(1219);
+emit_16(1153);
+emit_16(1220);
+emit_16(1154);
+emit_16(1220);
+emit_16(1153);
+emit_16(1220);
+emit_16(1154);
+emit_16(1221);
+emit_16(1155);
+emit_16(1221);
+emit_16(1154);
+emit_16(1221);
+emit_16(1155);
+emit_16(1222);
+emit_16(1156);
+emit_16(1222);
+emit_16(1155);
+emit_16(1222);
+emit_16(1156);
+emit_16(1223);
+emit_16(1157);
+emit_16(1223);
+emit_16(1156);
+emit_16(1223);
+emit_16(1157);
+emit_16(1224);
+emit_16(1158);
+emit_16(1224);
+emit_16(1157);
+emit_16(1224);
+emit_16(1158);
+emit_16(1225);
+emit_16(1159);
+emit_16(1225);
+emit_16(1158);
+emit_16(1225);
+emit_16(1159);
+emit_16(1226);
+emit_16(1160);
+emit_16(1226);
+emit_16(1159);
+emit_16(1226);
+emit_16(1160);
+emit_16(1227);
+emit_16(1161);
+emit_16(1227);
+emit_16(1160);
+emit_16(1227);
+emit_16(1161);
+emit_16(1228);
+emit_16(1162);
+emit_16(1228);
+emit_16(1161);
+emit_16(1228);
+emit_16(1162);
+emit_16(1229);
+emit_16(1163);
+emit_16(1229);
+emit_16(1162);
+emit_16(1229);
+emit_16(1163);
+emit_16(1230);
+emit_16(1164);
+emit_16(1230);
+emit_16(1163);
+emit_16(1230);
+emit_16(1164);
+emit_16(1231);
+emit_16(1165);
+emit_16(1231);
+emit_16(1164);
+emit_16(1231);
+emit_16(1165);
+emit_16(1232);
+emit_16(1166);
+emit_16(1232);
+emit_16(1165);
+emit_16(1232);
+emit_16(1166);
+emit_16(1233);
+emit_16(1167);
+emit_16(1233);
+emit_16(1166);
+emit_16(1233);
+emit_16(1167);
+emit_16(1234);
+emit_16(1168);
+emit_16(1234);
+emit_16(1167);
+emit_16(1234);
+emit_16(1168);
+emit_16(1235);
+emit_16(1169);
+emit_16(1235);
+emit_16(1168);
+emit_16(1235);
+emit_16(1169);
+emit_16(1236);
+emit_16(1170);
+emit_16(1236);
+emit_16(1169);
+emit_16(1236);
+emit_16(1170);
+emit_16(1237);
+emit_16(1171);
+emit_16(1237);
+emit_16(1170);
+emit_16(1237);
+emit_16(1171);
+emit_16(1238);
+emit_16(1172);
+emit_16(1238);
+emit_16(1171);
+emit_16(1238);
+emit_16(1172);
+emit_16(1239);
+emit_16(1173);
+emit_16(1239);
+emit_16(1172);
+emit_16(1239);
+emit_16(1173);
+emit_16(1240);
+emit_16(1174);
+emit_16(1240);
+emit_16(1173);
+emit_16(1240);
+emit_16(1174);
+emit_16(1241);
+emit_16(1175);
+emit_16(1241);
+emit_16(1174);
+emit_16(1241);
+emit_16(1175);
+emit_16(1242);
+emit_16(1176);
+emit_16(1242);
+emit_16(1175);
+emit_16(1242);
+emit_16(1176);
+emit_16(1243);
+emit_16(1177);
+emit_16(1243);
+emit_16(1176);
+emit_16(1243);
+emit_16(1177);
+emit_16(1244);
+emit_16(1178);
+emit_16(1244);
+emit_16(1177);
+emit_16(1244);
+emit_16(1178);
+emit_16(1245);
+emit_16(1179);
+emit_16(1245);
+emit_16(1178);
+emit_16(1245);
+emit_16(1179);
+emit_16(1246);
+emit_16(1180);
+emit_16(1246);
+emit_16(1179);
+emit_16(1246);
+emit_16(1180);
+emit_16(1247);
+emit_16(1181);
+emit_16(1247);
+emit_16(1180);
+emit_16(1247);
+emit_16(1181);
+emit_16(1248);
+emit_16(1182);
+emit_16(1248);
+emit_16(1181);
+emit_16(1248);
+emit_16(1182);
+emit_16(1249);
+emit_16(1183);
+emit_16(1249);
+emit_16(1182);
+emit_16(1249);
+emit_16(1183);
+emit_16(1250);
+emit_16(1184);
+emit_16(1250);
+emit_16(1183);
+emit_16(1250);
+emit_16(1184);
+emit_16(1251);
+emit_16(1185);
+emit_16(1251);
+emit_16(1184);
+emit_16(1251);
+emit_16(1185);
+emit_16(1252);
+emit_16(1186);
+emit_16(1252);
+emit_16(1185);
+emit_16(1252);
+emit_16(1186);
+emit_16(1253);
+emit_16(1187);
+emit_16(1253);
+emit_16(1186);
+emit_16(1254);
+emit_16(1188);
+emit_16(1255);
+emit_16(1189);
+emit_16(1255);
+emit_16(1188);
+emit_16(1255);
+emit_16(1189);
+emit_16(1256);
+emit_16(1190);
+emit_16(1256);
+emit_16(1189);
+emit_16(1256);
+emit_16(1190);
+emit_16(1257);
+emit_16(1191);
+emit_16(1257);
+emit_16(1190);
+emit_16(1257);
+emit_16(1191);
+emit_16(1258);
+emit_16(1192);
+emit_16(1258);
+emit_16(1191);
+emit_16(1258);
+emit_16(1192);
+emit_16(1259);
+emit_16(1193);
+emit_16(1259);
+emit_16(1192);
+emit_16(1259);
+emit_16(1193);
+emit_16(1260);
+emit_16(1194);
+emit_16(1260);
+emit_16(1193);
+emit_16(1260);
+emit_16(1194);
+emit_16(1261);
+emit_16(1195);
+emit_16(1261);
+emit_16(1194);
+emit_16(1261);
+emit_16(1195);
+emit_16(1262);
+emit_16(1196);
+emit_16(1262);
+emit_16(1195);
+emit_16(1262);
+emit_16(1196);
+emit_16(1263);
+emit_16(1197);
+emit_16(1263);
+emit_16(1196);
+emit_16(1263);
+emit_16(1197);
+emit_16(1264);
+emit_16(1198);
+emit_16(1264);
+emit_16(1197);
+emit_16(1264);
+emit_16(1198);
+emit_16(1265);
+emit_16(1199);
+emit_16(1265);
+emit_16(1198);
+emit_16(1265);
+emit_16(1199);
+emit_16(1266);
+emit_16(1200);
+emit_16(1266);
+emit_16(1199);
+emit_16(1266);
+emit_16(1200);
+emit_16(1267);
+emit_16(1201);
+emit_16(1267);
+emit_16(1200);
+emit_16(1267);
+emit_16(1201);
+emit_16(1268);
+emit_16(1202);
+emit_16(1268);
+emit_16(1201);
+emit_16(1268);
+emit_16(1202);
+emit_16(1269);
+emit_16(1203);
+emit_16(1269);
+emit_16(1202);
+emit_16(1269);
+emit_16(1203);
+emit_16(1270);
+emit_16(1204);
+emit_16(1270);
+emit_16(1203);
+emit_16(1270);
+emit_16(1204);
+emit_16(1271);
+emit_16(1205);
+emit_16(1271);
+emit_16(1204);
+emit_16(1271);
+emit_16(1205);
+emit_16(1272);
+emit_16(1206);
+emit_16(1272);
+emit_16(1205);
+emit_16(1272);
+emit_16(1206);
+emit_16(1273);
+emit_16(1207);
+emit_16(1273);
+emit_16(1206);
+emit_16(1273);
+emit_16(1207);
+emit_16(1274);
+emit_16(1208);
+emit_16(1274);
+emit_16(1207);
+emit_16(1274);
+emit_16(1208);
+emit_16(1275);
+emit_16(1209);
+emit_16(1275);
+emit_16(1208);
+emit_16(1275);
+emit_16(1209);
+emit_16(1276);
+emit_16(1210);
+emit_16(1276);
+emit_16(1209);
+emit_16(1276);
+emit_16(1210);
+emit_16(1277);
+emit_16(1211);
+emit_16(1277);
+emit_16(1210);
+emit_16(1277);
+emit_16(1211);
+emit_16(1278);
+emit_16(1212);
+emit_16(1278);
+emit_16(1211);
+emit_16(1278);
+emit_16(1212);
+emit_16(1279);
+emit_16(1213);
+emit_16(1279);
+emit_16(1212);
+emit_16(1279);
+emit_16(1213);
+emit_16(1280);
+emit_16(1214);
+emit_16(1280);
+emit_16(1213);
+emit_16(1280);
+emit_16(1214);
+emit_16(1281);
+emit_16(1215);
+emit_16(1281);
+emit_16(1214);
+emit_16(1281);
+emit_16(1215);
+emit_16(1282);
+emit_16(1216);
+emit_16(1282);
+emit_16(1215);
+emit_16(1282);
+emit_16(1216);
+emit_16(1283);
+emit_16(1217);
+emit_16(1283);
+emit_16(1216);
+emit_16(1283);
+emit_16(1217);
+emit_16(1284);
+emit_16(1218);
+emit_16(1284);
+emit_16(1217);
+emit_16(1284);
+emit_16(1218);
+emit_16(1285);
+emit_16(1219);
+emit_16(1285);
+emit_16(1218);
+emit_16(1285);
+emit_16(1219);
+emit_16(1286);
+emit_16(1220);
+emit_16(1286);
+emit_16(1219);
+emit_16(1286);
+emit_16(1220);
+emit_16(1287);
+emit_16(1221);
+emit_16(1287);
+emit_16(1220);
+emit_16(1287);
+emit_16(1221);
+emit_16(1288);
+emit_16(1222);
+emit_16(1288);
+emit_16(1221);
+emit_16(1288);
+emit_16(1222);
+emit_16(1289);
+emit_16(1223);
+emit_16(1289);
+emit_16(1222);
+emit_16(1289);
+emit_16(1223);
+emit_16(1290);
+emit_16(1224);
+emit_16(1290);
+emit_16(1223);
+emit_16(1290);
+emit_16(1224);
+emit_16(1291);
+emit_16(1225);
+emit_16(1291);
+emit_16(1224);
+emit_16(1291);
+emit_16(1225);
+emit_16(1292);
+emit_16(1226);
+emit_16(1292);
+emit_16(1225);
+emit_16(1292);
+emit_16(1226);
+emit_16(1293);
+emit_16(1227);
+emit_16(1293);
+emit_16(1226);
+emit_16(1293);
+emit_16(1227);
+emit_16(1294);
+emit_16(1228);
+emit_16(1294);
+emit_16(1227);
+emit_16(1294);
+emit_16(1228);
+emit_16(1295);
+emit_16(1229);
+emit_16(1295);
+emit_16(1228);
+emit_16(1295);
+emit_16(1229);
+emit_16(1296);
+emit_16(1230);
+emit_16(1296);
+emit_16(1229);
+emit_16(1296);
+emit_16(1230);
+emit_16(1297);
+emit_16(1231);
+emit_16(1297);
+emit_16(1230);
+emit_16(1297);
+emit_16(1231);
+emit_16(1298);
+emit_16(1232);
+emit_16(1298);
+emit_16(1231);
+emit_16(1298);
+emit_16(1232);
+emit_16(1299);
+emit_16(1233);
+emit_16(1299);
+emit_16(1232);
+emit_16(1299);
+emit_16(1233);
+emit_16(1300);
+emit_16(1234);
+emit_16(1300);
+emit_16(1233);
+emit_16(1300);
+emit_16(1234);
+emit_16(1301);
+emit_16(1235);
+emit_16(1301);
+emit_16(1234);
+emit_16(1301);
+emit_16(1235);
+emit_16(1302);
+emit_16(1236);
+emit_16(1302);
+emit_16(1235);
+emit_16(1302);
+emit_16(1236);
+emit_16(1303);
+emit_16(1237);
+emit_16(1303);
+emit_16(1236);
+emit_16(1303);
+emit_16(1237);
+emit_16(1304);
+emit_16(1238);
+emit_16(1304);
+emit_16(1237);
+emit_16(1304);
+emit_16(1238);
+emit_16(1305);
+emit_16(1239);
+emit_16(1305);
+emit_16(1238);
+emit_16(1305);
+emit_16(1239);
+emit_16(1306);
+emit_16(1240);
+emit_16(1306);
+emit_16(1239);
+emit_16(1306);
+emit_16(1240);
+emit_16(1307);
+emit_16(1241);
+emit_16(1307);
+emit_16(1240);
+emit_16(1307);
+emit_16(1241);
+emit_16(1308);
+emit_16(1242);
+emit_16(1308);
+emit_16(1241);
+emit_16(1308);
+emit_16(1242);
+emit_16(1309);
+emit_16(1243);
+emit_16(1309);
+emit_16(1242);
+emit_16(1309);
+emit_16(1243);
+emit_16(1310);
+emit_16(1244);
+emit_16(1310);
+emit_16(1243);
+emit_16(1310);
+emit_16(1244);
+emit_16(1311);
+emit_16(1245);
+emit_16(1311);
+emit_16(1244);
+emit_16(1311);
+emit_16(1245);
+emit_16(1312);
+emit_16(1246);
+emit_16(1312);
+emit_16(1245);
+emit_16(1312);
+emit_16(1246);
+emit_16(1313);
+emit_16(1247);
+emit_16(1313);
+emit_16(1246);
+emit_16(1313);
+emit_16(1247);
+emit_16(1314);
+emit_16(1248);
+emit_16(1314);
+emit_16(1247);
+emit_16(1314);
+emit_16(1248);
+emit_16(1315);
+emit_16(1249);
+emit_16(1315);
+emit_16(1248);
+emit_16(1315);
+emit_16(1249);
+emit_16(1316);
+emit_16(1250);
+emit_16(1316);
+emit_16(1249);
+emit_16(1316);
+emit_16(1250);
+emit_16(1317);
+emit_16(1251);
+emit_16(1317);
+emit_16(1250);
+emit_16(1317);
+emit_16(1251);
+emit_16(1318);
+emit_16(1252);
+emit_16(1318);
+emit_16(1251);
+emit_16(1318);
+emit_16(1252);
+emit_16(1319);
+emit_16(1253);
+emit_16(1319);
+emit_16(1252);
+emit_16(1320);
+emit_16(1254);
+emit_16(1321);
+emit_16(1255);
+emit_16(1321);
+emit_16(1254);
+emit_16(1321);
+emit_16(1255);
+emit_16(1322);
+emit_16(1256);
+emit_16(1322);
+emit_16(1255);
+emit_16(1322);
+emit_16(1256);
+emit_16(1323);
+emit_16(1257);
+emit_16(1323);
+emit_16(1256);
+emit_16(1323);
+emit_16(1257);
+emit_16(1324);
+emit_16(1258);
+emit_16(1324);
+emit_16(1257);
+emit_16(1324);
+emit_16(1258);
+emit_16(1325);
+emit_16(1259);
+emit_16(1325);
+emit_16(1258);
+emit_16(1325);
+emit_16(1259);
+emit_16(1326);
+emit_16(1260);
+emit_16(1326);
+emit_16(1259);
+emit_16(1326);
+emit_16(1260);
+emit_16(1327);
+emit_16(1261);
+emit_16(1327);
+emit_16(1260);
+emit_16(1327);
+emit_16(1261);
+emit_16(1328);
+emit_16(1262);
+emit_16(1328);
+emit_16(1261);
+emit_16(1328);
+emit_16(1262);
+emit_16(1329);
+emit_16(1263);
+emit_16(1329);
+emit_16(1262);
+emit_16(1329);
+emit_16(1263);
+emit_16(1330);
+emit_16(1264);
+emit_16(1330);
+emit_16(1263);
+emit_16(1330);
+emit_16(1264);
+emit_16(1331);
+emit_16(1265);
+emit_16(1331);
+emit_16(1264);
+emit_16(1331);
+emit_16(1265);
+emit_16(1332);
+emit_16(1266);
+emit_16(1332);
+emit_16(1265);
+emit_16(1332);
+emit_16(1266);
+emit_16(1333);
+emit_16(1267);
+emit_16(1333);
+emit_16(1266);
+emit_16(1333);
+emit_16(1267);
+emit_16(1334);
+emit_16(1268);
+emit_16(1334);
+emit_16(1267);
+emit_16(1334);
+emit_16(1268);
+emit_16(1335);
+emit_16(1269);
+emit_16(1335);
+emit_16(1268);
+emit_16(1335);
+emit_16(1269);
+emit_16(1336);
+emit_16(1270);
+emit_16(1336);
+emit_16(1269);
+emit_16(1336);
+emit_16(1270);
+emit_16(1337);
+emit_16(1271);
+emit_16(1337);
+emit_16(1270);
+emit_16(1337);
+emit_16(1271);
+emit_16(1338);
+emit_16(1272);
+emit_16(1338);
+emit_16(1271);
+emit_16(1338);
+emit_16(1272);
+emit_16(1339);
+emit_16(1273);
+emit_16(1339);
+emit_16(1272);
+emit_16(1339);
+emit_16(1273);
+emit_16(1340);
+emit_16(1274);
+emit_16(1340);
+emit_16(1273);
+emit_16(1340);
+emit_16(1274);
+emit_16(1341);
+emit_16(1275);
+emit_16(1341);
+emit_16(1274);
+emit_16(1341);
+emit_16(1275);
+emit_16(1342);
+emit_16(1276);
+emit_16(1342);
+emit_16(1275);
+emit_16(1342);
+emit_16(1276);
+emit_16(1343);
+emit_16(1277);
+emit_16(1343);
+emit_16(1276);
+emit_16(1343);
+emit_16(1277);
+emit_16(1344);
+emit_16(1278);
+emit_16(1344);
+emit_16(1277);
+emit_16(1344);
+emit_16(1278);
+emit_16(1345);
+emit_16(1279);
+emit_16(1345);
+emit_16(1278);
+emit_16(1345);
+emit_16(1279);
+emit_16(1346);
+emit_16(1280);
+emit_16(1346);
+emit_16(1279);
+emit_16(1346);
+emit_16(1280);
+emit_16(1347);
+emit_16(1281);
+emit_16(1347);
+emit_16(1280);
+emit_16(1347);
+emit_16(1281);
+emit_16(1348);
+emit_16(1282);
+emit_16(1348);
+emit_16(1281);
+emit_16(1348);
+emit_16(1282);
+emit_16(1349);
+emit_16(1283);
+emit_16(1349);
+emit_16(1282);
+emit_16(1349);
+emit_16(1283);
+emit_16(1350);
+emit_16(1284);
+emit_16(1350);
+emit_16(1283);
+emit_16(1350);
+emit_16(1284);
+emit_16(1351);
+emit_16(1285);
+emit_16(1351);
+emit_16(1284);
+emit_16(1351);
+emit_16(1285);
+emit_16(1352);
+emit_16(1286);
+emit_16(1352);
+emit_16(1285);
+emit_16(1352);
+emit_16(1286);
+emit_16(1353);
+emit_16(1287);
+emit_16(1353);
+emit_16(1286);
+emit_16(1353);
+emit_16(1287);
+emit_16(1354);
+emit_16(1288);
+emit_16(1354);
+emit_16(1287);
+emit_16(1354);
+emit_16(1288);
+emit_16(1355);
+emit_16(1289);
+emit_16(1355);
+emit_16(1288);
+emit_16(1355);
+emit_16(1289);
+emit_16(1356);
+emit_16(1290);
+emit_16(1356);
+emit_16(1289);
+emit_16(1356);
+emit_16(1290);
+emit_16(1357);
+emit_16(1291);
+emit_16(1357);
+emit_16(1290);
+emit_16(1357);
+emit_16(1291);
+emit_16(1358);
+emit_16(1292);
+emit_16(1358);
+emit_16(1291);
+emit_16(1358);
+emit_16(1292);
+emit_16(1359);
+emit_16(1293);
+emit_16(1359);
+emit_16(1292);
+emit_16(1359);
+emit_16(1293);
+emit_16(1360);
+emit_16(1294);
+emit_16(1360);
+emit_16(1293);
+emit_16(1360);
+emit_16(1294);
+emit_16(1361);
+emit_16(1295);
+emit_16(1361);
+emit_16(1294);
+emit_16(1361);
+emit_16(1295);
+emit_16(1362);
+emit_16(1296);
+emit_16(1362);
+emit_16(1295);
+emit_16(1362);
+emit_16(1296);
+emit_16(1363);
+emit_16(1297);
+emit_16(1363);
+emit_16(1296);
+emit_16(1363);
+emit_16(1297);
+emit_16(1364);
+emit_16(1298);
+emit_16(1364);
+emit_16(1297);
+emit_16(1364);
+emit_16(1298);
+emit_16(1365);
+emit_16(1299);
+emit_16(1365);
+emit_16(1298);
+emit_16(1365);
+emit_16(1299);
+emit_16(1366);
+emit_16(1300);
+emit_16(1366);
+emit_16(1299);
+emit_16(1366);
+emit_16(1300);
+emit_16(1367);
+emit_16(1301);
+emit_16(1367);
+emit_16(1300);
+emit_16(1367);
+emit_16(1301);
+emit_16(1368);
+emit_16(1302);
+emit_16(1368);
+emit_16(1301);
+emit_16(1368);
+emit_16(1302);
+emit_16(1369);
+emit_16(1303);
+emit_16(1369);
+emit_16(1302);
+emit_16(1369);
+emit_16(1303);
+emit_16(1370);
+emit_16(1304);
+emit_16(1370);
+emit_16(1303);
+emit_16(1370);
+emit_16(1304);
+emit_16(1371);
+emit_16(1305);
+emit_16(1371);
+emit_16(1304);
+emit_16(1371);
+emit_16(1305);
+emit_16(1372);
+emit_16(1306);
+emit_16(1372);
+emit_16(1305);
+emit_16(1372);
+emit_16(1306);
+emit_16(1373);
+emit_16(1307);
+emit_16(1373);
+emit_16(1306);
+emit_16(1373);
+emit_16(1307);
+emit_16(1374);
+emit_16(1308);
+emit_16(1374);
+emit_16(1307);
+emit_16(1374);
+emit_16(1308);
+emit_16(1375);
+emit_16(1309);
+emit_16(1375);
+emit_16(1308);
+emit_16(1375);
+emit_16(1309);
+emit_16(1376);
+emit_16(1310);
+emit_16(1376);
+emit_16(1309);
+emit_16(1376);
+emit_16(1310);
+emit_16(1377);
+emit_16(1311);
+emit_16(1377);
+emit_16(1310);
+emit_16(1377);
+emit_16(1311);
+emit_16(1378);
+emit_16(1312);
+emit_16(1378);
+emit_16(1311);
+emit_16(1378);
+emit_16(1312);
+emit_16(1379);
+emit_16(1313);
+emit_16(1379);
+emit_16(1312);
+emit_16(1379);
+emit_16(1313);
+emit_16(1380);
+emit_16(1314);
+emit_16(1380);
+emit_16(1313);
+emit_16(1380);
+emit_16(1314);
+emit_16(1381);
+emit_16(1315);
+emit_16(1381);
+emit_16(1314);
+emit_16(1381);
+emit_16(1315);
+emit_16(1382);
+emit_16(1316);
+emit_16(1382);
+emit_16(1315);
+emit_16(1382);
+emit_16(1316);
+emit_16(1383);
+emit_16(1317);
+emit_16(1383);
+emit_16(1316);
+emit_16(1383);
+emit_16(1317);
+emit_16(1384);
+emit_16(1318);
+emit_16(1384);
+emit_16(1317);
+emit_16(1384);
+emit_16(1318);
+emit_16(1385);
+emit_16(1319);
+emit_16(1385);
+emit_16(1318);
+emit_16(1386);
+emit_16(1320);
+emit_16(1387);
+emit_16(1321);
+emit_16(1387);
+emit_16(1320);
+emit_16(1387);
+emit_16(1321);
+emit_16(1388);
+emit_16(1322);
+emit_16(1388);
+emit_16(1321);
+emit_16(1388);
+emit_16(1322);
+emit_16(1389);
+emit_16(1323);
+emit_16(1389);
+emit_16(1322);
+emit_16(1389);
+emit_16(1323);
+emit_16(1390);
+emit_16(1324);
+emit_16(1390);
+emit_16(1323);
+emit_16(1390);
+emit_16(1324);
+emit_16(1391);
+emit_16(1325);
+emit_16(1391);
+emit_16(1324);
+emit_16(1391);
+emit_16(1325);
+emit_16(1392);
+emit_16(1326);
+emit_16(1392);
+emit_16(1325);
+emit_16(1392);
+emit_16(1326);
+emit_16(1393);
+emit_16(1327);
+emit_16(1393);
+emit_16(1326);
+emit_16(1393);
+emit_16(1327);
+emit_16(1394);
+emit_16(1328);
+emit_16(1394);
+emit_16(1327);
+emit_16(1394);
+emit_16(1328);
+emit_16(1395);
+emit_16(1329);
+emit_16(1395);
+emit_16(1328);
+emit_16(1395);
+emit_16(1329);
+emit_16(1396);
+emit_16(1330);
+emit_16(1396);
+emit_16(1329);
+emit_16(1396);
+emit_16(1330);
+emit_16(1397);
+emit_16(1331);
+emit_16(1397);
+emit_16(1330);
+emit_16(1397);
+emit_16(1331);
+emit_16(1398);
+emit_16(1332);
+emit_16(1398);
+emit_16(1331);
+emit_16(1398);
+emit_16(1332);
+emit_16(1399);
+emit_16(1333);
+emit_16(1399);
+emit_16(1332);
+emit_16(1399);
+emit_16(1333);
+emit_16(1400);
+emit_16(1334);
+emit_16(1400);
+emit_16(1333);
+emit_16(1400);
+emit_16(1334);
+emit_16(1401);
+emit_16(1335);
+emit_16(1401);
+emit_16(1334);
+emit_16(1401);
+emit_16(1335);
+emit_16(1402);
+emit_16(1336);
+emit_16(1402);
+emit_16(1335);
+emit_16(1402);
+emit_16(1336);
+emit_16(1403);
+emit_16(1337);
+emit_16(1403);
+emit_16(1336);
+emit_16(1403);
+emit_16(1337);
+emit_16(1404);
+emit_16(1338);
+emit_16(1404);
+emit_16(1337);
+emit_16(1404);
+emit_16(1338);
+emit_16(1405);
+emit_16(1339);
+emit_16(1405);
+emit_16(1338);
+emit_16(1405);
+emit_16(1339);
+emit_16(1406);
+emit_16(1340);
+emit_16(1406);
+emit_16(1339);
+emit_16(1406);
+emit_16(1340);
+emit_16(1407);
+emit_16(1341);
+emit_16(1407);
+emit_16(1340);
+emit_16(1407);
+emit_16(1341);
+emit_16(1408);
+emit_16(1342);
+emit_16(1408);
+emit_16(1341);
+emit_16(1408);
+emit_16(1342);
+emit_16(1409);
+emit_16(1343);
+emit_16(1409);
+emit_16(1342);
+emit_16(1409);
+emit_16(1343);
+emit_16(1410);
+emit_16(1344);
+emit_16(1410);
+emit_16(1343);
+emit_16(1410);
+emit_16(1344);
+emit_16(1411);
+emit_16(1345);
+emit_16(1411);
+emit_16(1344);
+emit_16(1411);
+emit_16(1345);
+emit_16(1412);
+emit_16(1346);
+emit_16(1412);
+emit_16(1345);
+emit_16(1412);
+emit_16(1346);
+emit_16(1413);
+emit_16(1347);
+emit_16(1413);
+emit_16(1346);
+emit_16(1413);
+emit_16(1347);
+emit_16(1414);
+emit_16(1348);
+emit_16(1414);
+emit_16(1347);
+emit_16(1414);
+emit_16(1348);
+emit_16(1415);
+emit_16(1349);
+emit_16(1415);
+emit_16(1348);
+emit_16(1415);
+emit_16(1349);
+emit_16(1416);
+emit_16(1350);
+emit_16(1416);
+emit_16(1349);
+emit_16(1416);
+emit_16(1350);
+emit_16(1417);
+emit_16(1351);
+emit_16(1417);
+emit_16(1350);
+emit_16(1417);
+emit_16(1351);
+emit_16(1418);
+emit_16(1352);
+emit_16(1418);
+emit_16(1351);
+emit_16(1418);
+emit_16(1352);
+emit_16(1419);
+emit_16(1353);
+emit_16(1419);
+emit_16(1352);
+emit_16(1419);
+emit_16(1353);
+emit_16(1420);
+emit_16(1354);
+emit_16(1420);
+emit_16(1353);
+emit_16(1420);
+emit_16(1354);
+emit_16(1421);
+emit_16(1355);
+emit_16(1421);
+emit_16(1354);
+emit_16(1421);
+emit_16(1355);
+emit_16(1422);
+emit_16(1356);
+emit_16(1422);
+emit_16(1355);
+emit_16(1422);
+emit_16(1356);
+emit_16(1423);
+emit_16(1357);
+emit_16(1423);
+emit_16(1356);
+emit_16(1423);
+emit_16(1357);
+emit_16(1424);
+emit_16(1358);
+emit_16(1424);
+emit_16(1357);
+emit_16(1424);
+emit_16(1358);
+emit_16(1425);
+emit_16(1359);
+emit_16(1425);
+emit_16(1358);
+emit_16(1425);
+emit_16(1359);
+emit_16(1426);
+emit_16(1360);
+emit_16(1426);
+emit_16(1359);
+emit_16(1426);
+emit_16(1360);
+emit_16(1427);
+emit_16(1361);
+emit_16(1427);
+emit_16(1360);
+emit_16(1427);
+emit_16(1361);
+emit_16(1428);
+emit_16(1362);
+emit_16(1428);
+emit_16(1361);
+emit_16(1428);
+emit_16(1362);
+emit_16(1429);
+emit_16(1363);
+emit_16(1429);
+emit_16(1362);
+emit_16(1429);
+emit_16(1363);
+emit_16(1430);
+emit_16(1364);
+emit_16(1430);
+emit_16(1363);
+emit_16(1430);
+emit_16(1364);
+emit_16(1431);
+emit_16(1365);
+emit_16(1431);
+emit_16(1364);
+emit_16(1431);
+emit_16(1365);
+emit_16(1432);
+emit_16(1366);
+emit_16(1432);
+emit_16(1365);
+emit_16(1432);
+emit_16(1366);
+emit_16(1433);
+emit_16(1367);
+emit_16(1433);
+emit_16(1366);
+emit_16(1433);
+emit_16(1367);
+emit_16(1434);
+emit_16(1368);
+emit_16(1434);
+emit_16(1367);
+emit_16(1434);
+emit_16(1368);
+emit_16(1435);
+emit_16(1369);
+emit_16(1435);
+emit_16(1368);
+emit_16(1435);
+emit_16(1369);
+emit_16(1436);
+emit_16(1370);
+emit_16(1436);
+emit_16(1369);
+emit_16(1436);
+emit_16(1370);
+emit_16(1437);
+emit_16(1371);
+emit_16(1437);
+emit_16(1370);
+emit_16(1437);
+emit_16(1371);
+emit_16(1438);
+emit_16(1372);
+emit_16(1438);
+emit_16(1371);
+emit_16(1438);
+emit_16(1372);
+emit_16(1439);
+emit_16(1373);
+emit_16(1439);
+emit_16(1372);
+emit_16(1439);
+emit_16(1373);
+emit_16(1440);
+emit_16(1374);
+emit_16(1440);
+emit_16(1373);
+emit_16(1440);
+emit_16(1374);
+emit_16(1441);
+emit_16(1375);
+emit_16(1441);
+emit_16(1374);
+emit_16(1441);
+emit_16(1375);
+emit_16(1442);
+emit_16(1376);
+emit_16(1442);
+emit_16(1375);
+emit_16(1442);
+emit_16(1376);
+emit_16(1443);
+emit_16(1377);
+emit_16(1443);
+emit_16(1376);
+emit_16(1443);
+emit_16(1377);
+emit_16(1444);
+emit_16(1378);
+emit_16(1444);
+emit_16(1377);
+emit_16(1444);
+emit_16(1378);
+emit_16(1445);
+emit_16(1379);
+emit_16(1445);
+emit_16(1378);
+emit_16(1445);
+emit_16(1379);
+emit_16(1446);
+emit_16(1380);
+emit_16(1446);
+emit_16(1379);
+emit_16(1446);
+emit_16(1380);
+emit_16(1447);
+emit_16(1381);
+emit_16(1447);
+emit_16(1380);
+emit_16(1447);
+emit_16(1381);
+emit_16(1448);
+emit_16(1382);
+emit_16(1448);
+emit_16(1381);
+emit_16(1448);
+emit_16(1382);
+emit_16(1449);
+emit_16(1383);
+emit_16(1449);
+emit_16(1382);
+emit_16(1449);
+emit_16(1383);
+emit_16(1450);
+emit_16(1384);
+emit_16(1450);
+emit_16(1383);
+emit_16(1450);
+emit_16(1384);
+emit_16(1451);
+emit_16(1385);
+emit_16(1451);
+emit_16(1384);
+emit_16(1452);
+emit_16(1386);
+emit_16(1453);
+emit_16(1387);
+emit_16(1453);
+emit_16(1386);
+emit_16(1453);
+emit_16(1387);
+emit_16(1454);
+emit_16(1388);
+emit_16(1454);
+emit_16(1387);
+emit_16(1454);
+emit_16(1388);
+emit_16(1455);
+emit_16(1389);
+emit_16(1455);
+emit_16(1388);
+emit_16(1455);
+emit_16(1389);
+emit_16(1456);
+emit_16(1390);
+emit_16(1456);
+emit_16(1389);
+emit_16(1456);
+emit_16(1390);
+emit_16(1457);
+emit_16(1391);
+emit_16(1457);
+emit_16(1390);
+emit_16(1457);
+emit_16(1391);
+emit_16(1458);
+emit_16(1392);
+emit_16(1458);
+emit_16(1391);
+emit_16(1458);
+emit_16(1392);
+emit_16(1459);
+emit_16(1393);
+emit_16(1459);
+emit_16(1392);
+emit_16(1459);
+emit_16(1393);
+emit_16(1460);
+emit_16(1394);
+emit_16(1460);
+emit_16(1393);
+emit_16(1460);
+emit_16(1394);
+emit_16(1461);
+emit_16(1395);
+emit_16(1461);
+emit_16(1394);
+emit_16(1461);
+emit_16(1395);
+emit_16(1462);
+emit_16(1396);
+emit_16(1462);
+emit_16(1395);
+emit_16(1462);
+emit_16(1396);
+emit_16(1463);
+emit_16(1397);
+emit_16(1463);
+emit_16(1396);
+emit_16(1463);
+emit_16(1397);
+emit_16(1464);
+emit_16(1398);
+emit_16(1464);
+emit_16(1397);
+emit_16(1464);
+emit_16(1398);
+emit_16(1465);
+emit_16(1399);
+emit_16(1465);
+emit_16(1398);
+emit_16(1465);
+emit_16(1399);
+emit_16(1466);
+emit_16(1400);
+emit_16(1466);
+emit_16(1399);
+emit_16(1466);
+emit_16(1400);
+emit_16(1467);
+emit_16(1401);
+emit_16(1467);
+emit_16(1400);
+emit_16(1467);
+emit_16(1401);
+emit_16(1468);
+emit_16(1402);
+emit_16(1468);
+emit_16(1401);
+emit_16(1468);
+emit_16(1402);
+emit_16(1469);
+emit_16(1403);
+emit_16(1469);
+emit_16(1402);
+emit_16(1469);
+emit_16(1403);
+emit_16(1470);
+emit_16(1404);
+emit_16(1470);
+emit_16(1403);
+emit_16(1470);
+emit_16(1404);
+emit_16(1471);
+emit_16(1405);
+emit_16(1471);
+emit_16(1404);
+emit_16(1471);
+emit_16(1405);
+emit_16(1472);
+emit_16(1406);
+emit_16(1472);
+emit_16(1405);
+emit_16(1472);
+emit_16(1406);
+emit_16(1473);
+emit_16(1407);
+emit_16(1473);
+emit_16(1406);
+emit_16(1473);
+emit_16(1407);
+emit_16(1474);
+emit_16(1408);
+emit_16(1474);
+emit_16(1407);
+emit_16(1474);
+emit_16(1408);
+emit_16(1475);
+emit_16(1409);
+emit_16(1475);
+emit_16(1408);
+emit_16(1475);
+emit_16(1409);
+emit_16(1476);
+emit_16(1410);
+emit_16(1476);
+emit_16(1409);
+emit_16(1476);
+emit_16(1410);
+emit_16(1477);
+emit_16(1411);
+emit_16(1477);
+emit_16(1410);
+emit_16(1477);
+emit_16(1411);
+emit_16(1478);
+emit_16(1412);
+emit_16(1478);
+emit_16(1411);
+emit_16(1478);
+emit_16(1412);
+emit_16(1479);
+emit_16(1413);
+emit_16(1479);
+emit_16(1412);
+emit_16(1479);
+emit_16(1413);
+emit_16(1480);
+emit_16(1414);
+emit_16(1480);
+emit_16(1413);
+emit_16(1480);
+emit_16(1414);
+emit_16(1481);
+emit_16(1415);
+emit_16(1481);
+emit_16(1414);
+emit_16(1481);
+emit_16(1415);
+emit_16(1482);
+emit_16(1416);
+emit_16(1482);
+emit_16(1415);
+emit_16(1482);
+emit_16(1416);
+emit_16(1483);
+emit_16(1417);
+emit_16(1483);
+emit_16(1416);
+emit_16(1483);
+emit_16(1417);
+emit_16(1484);
+emit_16(1418);
+emit_16(1484);
+emit_16(1417);
+emit_16(1484);
+emit_16(1418);
+emit_16(1485);
+emit_16(1419);
+emit_16(1485);
+emit_16(1418);
+emit_16(1485);
+emit_16(1419);
+emit_16(1486);
+emit_16(1420);
+emit_16(1486);
+emit_16(1419);
+emit_16(1486);
+emit_16(1420);
+emit_16(1487);
+emit_16(1421);
+emit_16(1487);
+emit_16(1420);
+emit_16(1487);
+emit_16(1421);
+emit_16(1488);
+emit_16(1422);
+emit_16(1488);
+emit_16(1421);
+emit_16(1488);
+emit_16(1422);
+emit_16(1489);
+emit_16(1423);
+emit_16(1489);
+emit_16(1422);
+emit_16(1489);
+emit_16(1423);
+emit_16(1490);
+emit_16(1424);
+emit_16(1490);
+emit_16(1423);
+emit_16(1490);
+emit_16(1424);
+emit_16(1491);
+emit_16(1425);
+emit_16(1491);
+emit_16(1424);
+emit_16(1491);
+emit_16(1425);
+emit_16(1492);
+emit_16(1426);
+emit_16(1492);
+emit_16(1425);
+emit_16(1492);
+emit_16(1426);
+emit_16(1493);
+emit_16(1427);
+emit_16(1493);
+emit_16(1426);
+emit_16(1493);
+emit_16(1427);
+emit_16(1494);
+emit_16(1428);
+emit_16(1494);
+emit_16(1427);
+emit_16(1494);
+emit_16(1428);
+emit_16(1495);
+emit_16(1429);
+emit_16(1495);
+emit_16(1428);
+emit_16(1495);
+emit_16(1429);
+emit_16(1496);
+emit_16(1430);
+emit_16(1496);
+emit_16(1429);
+emit_16(1496);
+emit_16(1430);
+emit_16(1497);
+emit_16(1431);
+emit_16(1497);
+emit_16(1430);
+emit_16(1497);
+emit_16(1431);
+emit_16(1498);
+emit_16(1432);
+emit_16(1498);
+emit_16(1431);
+emit_16(1498);
+emit_16(1432);
+emit_16(1499);
+emit_16(1433);
+emit_16(1499);
+emit_16(1432);
+emit_16(1499);
+emit_16(1433);
+emit_16(1500);
+emit_16(1434);
+emit_16(1500);
+emit_16(1433);
+emit_16(1500);
+emit_16(1434);
+emit_16(1501);
+emit_16(1435);
+emit_16(1501);
+emit_16(1434);
+emit_16(1501);
+emit_16(1435);
+emit_16(1502);
+emit_16(1436);
+emit_16(1502);
+emit_16(1435);
+emit_16(1502);
+emit_16(1436);
+emit_16(1503);
+emit_16(1437);
+emit_16(1503);
+emit_16(1436);
+emit_16(1503);
+emit_16(1437);
+emit_16(1504);
+emit_16(1438);
+emit_16(1504);
+emit_16(1437);
+emit_16(1504);
+emit_16(1438);
+emit_16(1505);
+emit_16(1439);
+emit_16(1505);
+emit_16(1438);
+emit_16(1505);
+emit_16(1439);
+emit_16(1506);
+emit_16(1440);
+emit_16(1506);
+emit_16(1439);
+emit_16(1506);
+emit_16(1440);
+emit_16(1507);
+emit_16(1441);
+emit_16(1507);
+emit_16(1440);
+emit_16(1507);
+emit_16(1441);
+emit_16(1508);
+emit_16(1442);
+emit_16(1508);
+emit_16(1441);
+emit_16(1508);
+emit_16(1442);
+emit_16(1509);
+emit_16(1443);
+emit_16(1509);
+emit_16(1442);
+emit_16(1509);
+emit_16(1443);
+emit_16(1510);
+emit_16(1444);
+emit_16(1510);
+emit_16(1443);
+emit_16(1510);
+emit_16(1444);
+emit_16(1511);
+emit_16(1445);
+emit_16(1511);
+emit_16(1444);
+emit_16(1511);
+emit_16(1445);
+emit_16(1512);
+emit_16(1446);
+emit_16(1512);
+emit_16(1445);
+emit_16(1512);
+emit_16(1446);
+emit_16(1513);
+emit_16(1447);
+emit_16(1513);
+emit_16(1446);
+emit_16(1513);
+emit_16(1447);
+emit_16(1514);
+emit_16(1448);
+emit_16(1514);
+emit_16(1447);
+emit_16(1514);
+emit_16(1448);
+emit_16(1515);
+emit_16(1449);
+emit_16(1515);
+emit_16(1448);
+emit_16(1515);
+emit_16(1449);
+emit_16(1516);
+emit_16(1450);
+emit_16(1516);
+emit_16(1449);
+emit_16(1516);
+emit_16(1450);
+emit_16(1517);
+emit_16(1451);
+emit_16(1517);
+emit_16(1450);
+emit_16(1518);
+emit_16(1452);
+emit_16(1519);
+emit_16(1453);
+emit_16(1519);
+emit_16(1452);
+emit_16(1519);
+emit_16(1453);
+emit_16(1520);
+emit_16(1454);
+emit_16(1520);
+emit_16(1453);
+emit_16(1520);
+emit_16(1454);
+emit_16(1521);
+emit_16(1455);
+emit_16(1521);
+emit_16(1454);
+emit_16(1521);
+emit_16(1455);
+emit_16(1522);
+emit_16(1456);
+emit_16(1522);
+emit_16(1455);
+emit_16(1522);
+emit_16(1456);
+emit_16(1523);
+emit_16(1457);
+emit_16(1523);
+emit_16(1456);
+emit_16(1523);
+emit_16(1457);
+emit_16(1524);
+emit_16(1458);
+emit_16(1524);
+emit_16(1457);
+emit_16(1524);
+emit_16(1458);
+emit_16(1525);
+emit_16(1459);
+emit_16(1525);
+emit_16(1458);
+emit_16(1525);
+emit_16(1459);
+emit_16(1526);
+emit_16(1460);
+emit_16(1526);
+emit_16(1459);
+emit_16(1526);
+emit_16(1460);
+emit_16(1527);
+emit_16(1461);
+emit_16(1527);
+emit_16(1460);
+emit_16(1527);
+emit_16(1461);
+emit_16(1528);
+emit_16(1462);
+emit_16(1528);
+emit_16(1461);
+emit_16(1528);
+emit_16(1462);
+emit_16(1529);
+emit_16(1463);
+emit_16(1529);
+emit_16(1462);
+emit_16(1529);
+emit_16(1463);
+emit_16(1530);
+emit_16(1464);
+emit_16(1530);
+emit_16(1463);
+emit_16(1530);
+emit_16(1464);
+emit_16(1531);
+emit_16(1465);
+emit_16(1531);
+emit_16(1464);
+emit_16(1531);
+emit_16(1465);
+emit_16(1532);
+emit_16(1466);
+emit_16(1532);
+emit_16(1465);
+emit_16(1532);
+emit_16(1466);
+emit_16(1533);
+emit_16(1467);
+emit_16(1533);
+emit_16(1466);
+emit_16(1533);
+emit_16(1467);
+emit_16(1534);
+emit_16(1468);
+emit_16(1534);
+emit_16(1467);
+emit_16(1534);
+emit_16(1468);
+emit_16(1535);
+emit_16(1469);
+emit_16(1535);
+emit_16(1468);
+emit_16(1535);
+emit_16(1469);
+emit_16(1536);
+emit_16(1470);
+emit_16(1536);
+emit_16(1469);
+emit_16(1536);
+emit_16(1470);
+emit_16(1537);
+emit_16(1471);
+emit_16(1537);
+emit_16(1470);
+emit_16(1537);
+emit_16(1471);
+emit_16(1538);
+emit_16(1472);
+emit_16(1538);
+emit_16(1471);
+emit_16(1538);
+emit_16(1472);
+emit_16(1539);
+emit_16(1473);
+emit_16(1539);
+emit_16(1472);
+emit_16(1539);
+emit_16(1473);
+emit_16(1540);
+emit_16(1474);
+emit_16(1540);
+emit_16(1473);
+emit_16(1540);
+emit_16(1474);
+emit_16(1541);
+emit_16(1475);
+emit_16(1541);
+emit_16(1474);
+emit_16(1541);
+emit_16(1475);
+emit_16(1542);
+emit_16(1476);
+emit_16(1542);
+emit_16(1475);
+emit_16(1542);
+emit_16(1476);
+emit_16(1543);
+emit_16(1477);
+emit_16(1543);
+emit_16(1476);
+emit_16(1543);
+emit_16(1477);
+emit_16(1544);
+emit_16(1478);
+emit_16(1544);
+emit_16(1477);
+emit_16(1544);
+emit_16(1478);
+emit_16(1545);
+emit_16(1479);
+emit_16(1545);
+emit_16(1478);
+emit_16(1545);
+emit_16(1479);
+emit_16(1546);
+emit_16(1480);
+emit_16(1546);
+emit_16(1479);
+emit_16(1546);
+emit_16(1480);
+emit_16(1547);
+emit_16(1481);
+emit_16(1547);
+emit_16(1480);
+emit_16(1547);
+emit_16(1481);
+emit_16(1548);
+emit_16(1482);
+emit_16(1548);
+emit_16(1481);
+emit_16(1548);
+emit_16(1482);
+emit_16(1549);
+emit_16(1483);
+emit_16(1549);
+emit_16(1482);
+emit_16(1549);
+emit_16(1483);
+emit_16(1550);
+emit_16(1484);
+emit_16(1550);
+emit_16(1483);
+emit_16(1550);
+emit_16(1484);
+emit_16(1551);
+emit_16(1485);
+emit_16(1551);
+emit_16(1484);
+emit_16(1551);
+emit_16(1485);
+emit_16(1552);
+emit_16(1486);
+emit_16(1552);
+emit_16(1485);
+emit_16(1552);
+emit_16(1486);
+emit_16(1553);
+emit_16(1487);
+emit_16(1553);
+emit_16(1486);
+emit_16(1553);
+emit_16(1487);
+emit_16(1554);
+emit_16(1488);
+emit_16(1554);
+emit_16(1487);
+emit_16(1554);
+emit_16(1488);
+emit_16(1555);
+emit_16(1489);
+emit_16(1555);
+emit_16(1488);
+emit_16(1555);
+emit_16(1489);
+emit_16(1556);
+emit_16(1490);
+emit_16(1556);
+emit_16(1489);
+emit_16(1556);
+emit_16(1490);
+emit_16(1557);
+emit_16(1491);
+emit_16(1557);
+emit_16(1490);
+emit_16(1557);
+emit_16(1491);
+emit_16(1558);
+emit_16(1492);
+emit_16(1558);
+emit_16(1491);
+emit_16(1558);
+emit_16(1492);
+emit_16(1559);
+emit_16(1493);
+emit_16(1559);
+emit_16(1492);
+emit_16(1559);
+emit_16(1493);
+emit_16(1560);
+emit_16(1494);
+emit_16(1560);
+emit_16(1493);
+emit_16(1560);
+emit_16(1494);
+emit_16(1561);
+emit_16(1495);
+emit_16(1561);
+emit_16(1494);
+emit_16(1561);
+emit_16(1495);
+emit_16(1562);
+emit_16(1496);
+emit_16(1562);
+emit_16(1495);
+emit_16(1562);
+emit_16(1496);
+emit_16(1563);
+emit_16(1497);
+emit_16(1563);
+emit_16(1496);
+emit_16(1563);
+emit_16(1497);
+emit_16(1564);
+emit_16(1498);
+emit_16(1564);
+emit_16(1497);
+emit_16(1564);
+emit_16(1498);
+emit_16(1565);
+emit_16(1499);
+emit_16(1565);
+emit_16(1498);
+emit_16(1565);
+emit_16(1499);
+emit_16(1566);
+emit_16(1500);
+emit_16(1566);
+emit_16(1499);
+emit_16(1566);
+emit_16(1500);
+emit_16(1567);
+emit_16(1501);
+emit_16(1567);
+emit_16(1500);
+emit_16(1567);
+emit_16(1501);
+emit_16(1568);
+emit_16(1502);
+emit_16(1568);
+emit_16(1501);
+emit_16(1568);
+emit_16(1502);
+emit_16(1569);
+emit_16(1503);
+emit_16(1569);
+emit_16(1502);
+emit_16(1569);
+emit_16(1503);
+emit_16(1570);
+emit_16(1504);
+emit_16(1570);
+emit_16(1503);
+emit_16(1570);
+emit_16(1504);
+emit_16(1571);
+emit_16(1505);
+emit_16(1571);
+emit_16(1504);
+emit_16(1571);
+emit_16(1505);
+emit_16(1572);
+emit_16(1506);
+emit_16(1572);
+emit_16(1505);
+emit_16(1572);
+emit_16(1506);
+emit_16(1573);
+emit_16(1507);
+emit_16(1573);
+emit_16(1506);
+emit_16(1573);
+emit_16(1507);
+emit_16(1574);
+emit_16(1508);
+emit_16(1574);
+emit_16(1507);
+emit_16(1574);
+emit_16(1508);
+emit_16(1575);
+emit_16(1509);
+emit_16(1575);
+emit_16(1508);
+emit_16(1575);
+emit_16(1509);
+emit_16(1576);
+emit_16(1510);
+emit_16(1576);
+emit_16(1509);
+emit_16(1576);
+emit_16(1510);
+emit_16(1577);
+emit_16(1511);
+emit_16(1577);
+emit_16(1510);
+emit_16(1577);
+emit_16(1511);
+emit_16(1578);
+emit_16(1512);
+emit_16(1578);
+emit_16(1511);
+emit_16(1578);
+emit_16(1512);
+emit_16(1579);
+emit_16(1513);
+emit_16(1579);
+emit_16(1512);
+emit_16(1579);
+emit_16(1513);
+emit_16(1580);
+emit_16(1514);
+emit_16(1580);
+emit_16(1513);
+emit_16(1580);
+emit_16(1514);
+emit_16(1581);
+emit_16(1515);
+emit_16(1581);
+emit_16(1514);
+emit_16(1581);
+emit_16(1515);
+emit_16(1582);
+emit_16(1516);
+emit_16(1582);
+emit_16(1515);
+emit_16(1582);
+emit_16(1516);
+emit_16(1583);
+emit_16(1517);
+emit_16(1583);
+emit_16(1516);
+emit_16(1584);
+emit_16(1518);
+emit_16(1585);
+emit_16(1519);
+emit_16(1585);
+emit_16(1518);
+emit_16(1585);
+emit_16(1519);
+emit_16(1586);
+emit_16(1520);
+emit_16(1586);
+emit_16(1519);
+emit_16(1586);
+emit_16(1520);
+emit_16(1587);
+emit_16(1521);
+emit_16(1587);
+emit_16(1520);
+emit_16(1587);
+emit_16(1521);
+emit_16(1588);
+emit_16(1522);
+emit_16(1588);
+emit_16(1521);
+emit_16(1588);
+emit_16(1522);
+emit_16(1589);
+emit_16(1523);
+emit_16(1589);
+emit_16(1522);
+emit_16(1589);
+emit_16(1523);
+emit_16(1590);
+emit_16(1524);
+emit_16(1590);
+emit_16(1523);
+emit_16(1590);
+emit_16(1524);
+emit_16(1591);
+emit_16(1525);
+emit_16(1591);
+emit_16(1524);
+emit_16(1591);
+emit_16(1525);
+emit_16(1592);
+emit_16(1526);
+emit_16(1592);
+emit_16(1525);
+emit_16(1592);
+emit_16(1526);
+emit_16(1593);
+emit_16(1527);
+emit_16(1593);
+emit_16(1526);
+emit_16(1593);
+emit_16(1527);
+emit_16(1594);
+emit_16(1528);
+emit_16(1594);
+emit_16(1527);
+emit_16(1594);
+emit_16(1528);
+emit_16(1595);
+emit_16(1529);
+emit_16(1595);
+emit_16(1528);
+emit_16(1595);
+emit_16(1529);
+emit_16(1596);
+emit_16(1530);
+emit_16(1596);
+emit_16(1529);
+emit_16(1596);
+emit_16(1530);
+emit_16(1597);
+emit_16(1531);
+emit_16(1597);
+emit_16(1530);
+emit_16(1597);
+emit_16(1531);
+emit_16(1598);
+emit_16(1532);
+emit_16(1598);
+emit_16(1531);
+emit_16(1598);
+emit_16(1532);
+emit_16(1599);
+emit_16(1533);
+emit_16(1599);
+emit_16(1532);
+emit_16(1599);
+emit_16(1533);
+emit_16(1600);
+emit_16(1534);
+emit_16(1600);
+emit_16(1533);
+emit_16(1600);
+emit_16(1534);
+emit_16(1601);
+emit_16(1535);
+emit_16(1601);
+emit_16(1534);
+emit_16(1601);
+emit_16(1535);
+emit_16(1602);
+emit_16(1536);
+emit_16(1602);
+emit_16(1535);
+emit_16(1602);
+emit_16(1536);
+emit_16(1603);
+emit_16(1537);
+emit_16(1603);
+emit_16(1536);
+emit_16(1603);
+emit_16(1537);
+emit_16(1604);
+emit_16(1538);
+emit_16(1604);
+emit_16(1537);
+emit_16(1604);
+emit_16(1538);
+emit_16(1605);
+emit_16(1539);
+emit_16(1605);
+emit_16(1538);
+emit_16(1605);
+emit_16(1539);
+emit_16(1606);
+emit_16(1540);
+emit_16(1606);
+emit_16(1539);
+emit_16(1606);
+emit_16(1540);
+emit_16(1607);
+emit_16(1541);
+emit_16(1607);
+emit_16(1540);
+emit_16(1607);
+emit_16(1541);
+emit_16(1608);
+emit_16(1542);
+emit_16(1608);
+emit_16(1541);
+emit_16(1608);
+emit_16(1542);
+emit_16(1609);
+emit_16(1543);
+emit_16(1609);
+emit_16(1542);
+emit_16(1609);
+emit_16(1543);
+emit_16(1610);
+emit_16(1544);
+emit_16(1610);
+emit_16(1543);
+emit_16(1610);
+emit_16(1544);
+emit_16(1611);
+emit_16(1545);
+emit_16(1611);
+emit_16(1544);
+emit_16(1611);
+emit_16(1545);
+emit_16(1612);
+emit_16(1546);
+emit_16(1612);
+emit_16(1545);
+emit_16(1612);
+emit_16(1546);
+emit_16(1613);
+emit_16(1547);
+emit_16(1613);
+emit_16(1546);
+emit_16(1613);
+emit_16(1547);
+emit_16(1614);
+emit_16(1548);
+emit_16(1614);
+emit_16(1547);
+emit_16(1614);
+emit_16(1548);
+emit_16(1615);
+emit_16(1549);
+emit_16(1615);
+emit_16(1548);
+emit_16(1615);
+emit_16(1549);
+emit_16(1616);
+emit_16(1550);
+emit_16(1616);
+emit_16(1549);
+emit_16(1616);
+emit_16(1550);
+emit_16(1617);
+emit_16(1551);
+emit_16(1617);
+emit_16(1550);
+emit_16(1617);
+emit_16(1551);
+emit_16(1618);
+emit_16(1552);
+emit_16(1618);
+emit_16(1551);
+emit_16(1618);
+emit_16(1552);
+emit_16(1619);
+emit_16(1553);
+emit_16(1619);
+emit_16(1552);
+emit_16(1619);
+emit_16(1553);
+emit_16(1620);
+emit_16(1554);
+emit_16(1620);
+emit_16(1553);
+emit_16(1620);
+emit_16(1554);
+emit_16(1621);
+emit_16(1555);
+emit_16(1621);
+emit_16(1554);
+emit_16(1621);
+emit_16(1555);
+emit_16(1622);
+emit_16(1556);
+emit_16(1622);
+emit_16(1555);
+emit_16(1622);
+emit_16(1556);
+emit_16(1623);
+emit_16(1557);
+emit_16(1623);
+emit_16(1556);
+emit_16(1623);
+emit_16(1557);
+emit_16(1624);
+emit_16(1558);
+emit_16(1624);
+emit_16(1557);
+emit_16(1624);
+emit_16(1558);
+emit_16(1625);
+emit_16(1559);
+emit_16(1625);
+emit_16(1558);
+emit_16(1625);
+emit_16(1559);
+emit_16(1626);
+emit_16(1560);
+emit_16(1626);
+emit_16(1559);
+emit_16(1626);
+emit_16(1560);
+emit_16(1627);
+emit_16(1561);
+emit_16(1627);
+emit_16(1560);
+emit_16(1627);
+emit_16(1561);
+emit_16(1628);
+emit_16(1562);
+emit_16(1628);
+emit_16(1561);
+emit_16(1628);
+emit_16(1562);
+emit_16(1629);
+emit_16(1563);
+emit_16(1629);
+emit_16(1562);
+emit_16(1629);
+emit_16(1563);
+emit_16(1630);
+emit_16(1564);
+emit_16(1630);
+emit_16(1563);
+emit_16(1630);
+emit_16(1564);
+emit_16(1631);
+emit_16(1565);
+emit_16(1631);
+emit_16(1564);
+emit_16(1631);
+emit_16(1565);
+emit_16(1632);
+emit_16(1566);
+emit_16(1632);
+emit_16(1565);
+emit_16(1632);
+emit_16(1566);
+emit_16(1633);
+emit_16(1567);
+emit_16(1633);
+emit_16(1566);
+emit_16(1633);
+emit_16(1567);
+emit_16(1634);
+emit_16(1568);
+emit_16(1634);
+emit_16(1567);
+emit_16(1634);
+emit_16(1568);
+emit_16(1635);
+emit_16(1569);
+emit_16(1635);
+emit_16(1568);
+emit_16(1635);
+emit_16(1569);
+emit_16(1636);
+emit_16(1570);
+emit_16(1636);
+emit_16(1569);
+emit_16(1636);
+emit_16(1570);
+emit_16(1637);
+emit_16(1571);
+emit_16(1637);
+emit_16(1570);
+emit_16(1637);
+emit_16(1571);
+emit_16(1638);
+emit_16(1572);
+emit_16(1638);
+emit_16(1571);
+emit_16(1638);
+emit_16(1572);
+emit_16(1639);
+emit_16(1573);
+emit_16(1639);
+emit_16(1572);
+emit_16(1639);
+emit_16(1573);
+emit_16(1640);
+emit_16(1574);
+emit_16(1640);
+emit_16(1573);
+emit_16(1640);
+emit_16(1574);
+emit_16(1641);
+emit_16(1575);
+emit_16(1641);
+emit_16(1574);
+emit_16(1641);
+emit_16(1575);
+emit_16(1642);
+emit_16(1576);
+emit_16(1642);
+emit_16(1575);
+emit_16(1642);
+emit_16(1576);
+emit_16(1643);
+emit_16(1577);
+emit_16(1643);
+emit_16(1576);
+emit_16(1643);
+emit_16(1577);
+emit_16(1644);
+emit_16(1578);
+emit_16(1644);
+emit_16(1577);
+emit_16(1644);
+emit_16(1578);
+emit_16(1645);
+emit_16(1579);
+emit_16(1645);
+emit_16(1578);
+emit_16(1645);
+emit_16(1579);
+emit_16(1646);
+emit_16(1580);
+emit_16(1646);
+emit_16(1579);
+emit_16(1646);
+emit_16(1580);
+emit_16(1647);
+emit_16(1581);
+emit_16(1647);
+emit_16(1580);
+emit_16(1647);
+emit_16(1581);
+emit_16(1648);
+emit_16(1582);
+emit_16(1648);
+emit_16(1581);
+emit_16(1648);
+emit_16(1582);
+emit_16(1649);
+emit_16(1583);
+emit_16(1649);
+emit_16(1582);
+emit_16(1650);
+emit_16(1584);
+emit_16(1651);
+emit_16(1585);
+emit_16(1651);
+emit_16(1584);
+emit_16(1651);
+emit_16(1585);
+emit_16(1652);
+emit_16(1586);
+emit_16(1652);
+emit_16(1585);
+emit_16(1652);
+emit_16(1586);
+emit_16(1653);
+emit_16(1587);
+emit_16(1653);
+emit_16(1586);
+emit_16(1653);
+emit_16(1587);
+emit_16(1654);
+emit_16(1588);
+emit_16(1654);
+emit_16(1587);
+emit_16(1654);
+emit_16(1588);
+emit_16(1655);
+emit_16(1589);
+emit_16(1655);
+emit_16(1588);
+emit_16(1655);
+emit_16(1589);
+emit_16(1656);
+emit_16(1590);
+emit_16(1656);
+emit_16(1589);
+emit_16(1656);
+emit_16(1590);
+emit_16(1657);
+emit_16(1591);
+emit_16(1657);
+emit_16(1590);
+emit_16(1657);
+emit_16(1591);
+emit_16(1658);
+emit_16(1592);
+emit_16(1658);
+emit_16(1591);
+emit_16(1658);
+emit_16(1592);
+emit_16(1659);
+emit_16(1593);
+emit_16(1659);
+emit_16(1592);
+emit_16(1659);
+emit_16(1593);
+emit_16(1660);
+emit_16(1594);
+emit_16(1660);
+emit_16(1593);
+emit_16(1660);
+emit_16(1594);
+emit_16(1661);
+emit_16(1595);
+emit_16(1661);
+emit_16(1594);
+emit_16(1661);
+emit_16(1595);
+emit_16(1662);
+emit_16(1596);
+emit_16(1662);
+emit_16(1595);
+emit_16(1662);
+emit_16(1596);
+emit_16(1663);
+emit_16(1597);
+emit_16(1663);
+emit_16(1596);
+emit_16(1663);
+emit_16(1597);
+emit_16(1664);
+emit_16(1598);
+emit_16(1664);
+emit_16(1597);
+emit_16(1664);
+emit_16(1598);
+emit_16(1665);
+emit_16(1599);
+emit_16(1665);
+emit_16(1598);
+emit_16(1665);
+emit_16(1599);
+emit_16(1666);
+emit_16(1600);
+emit_16(1666);
+emit_16(1599);
+emit_16(1666);
+emit_16(1600);
+emit_16(1667);
+emit_16(1601);
+emit_16(1667);
+emit_16(1600);
+emit_16(1667);
+emit_16(1601);
+emit_16(1668);
+emit_16(1602);
+emit_16(1668);
+emit_16(1601);
+emit_16(1668);
+emit_16(1602);
+emit_16(1669);
+emit_16(1603);
+emit_16(1669);
+emit_16(1602);
+emit_16(1669);
+emit_16(1603);
+emit_16(1670);
+emit_16(1604);
+emit_16(1670);
+emit_16(1603);
+emit_16(1670);
+emit_16(1604);
+emit_16(1671);
+emit_16(1605);
+emit_16(1671);
+emit_16(1604);
+emit_16(1671);
+emit_16(1605);
+emit_16(1672);
+emit_16(1606);
+emit_16(1672);
+emit_16(1605);
+emit_16(1672);
+emit_16(1606);
+emit_16(1673);
+emit_16(1607);
+emit_16(1673);
+emit_16(1606);
+emit_16(1673);
+emit_16(1607);
+emit_16(1674);
+emit_16(1608);
+emit_16(1674);
+emit_16(1607);
+emit_16(1674);
+emit_16(1608);
+emit_16(1675);
+emit_16(1609);
+emit_16(1675);
+emit_16(1608);
+emit_16(1675);
+emit_16(1609);
+emit_16(1676);
+emit_16(1610);
+emit_16(1676);
+emit_16(1609);
+emit_16(1676);
+emit_16(1610);
+emit_16(1677);
+emit_16(1611);
+emit_16(1677);
+emit_16(1610);
+emit_16(1677);
+emit_16(1611);
+emit_16(1678);
+emit_16(1612);
+emit_16(1678);
+emit_16(1611);
+emit_16(1678);
+emit_16(1612);
+emit_16(1679);
+emit_16(1613);
+emit_16(1679);
+emit_16(1612);
+emit_16(1679);
+emit_16(1613);
+emit_16(1680);
+emit_16(1614);
+emit_16(1680);
+emit_16(1613);
+emit_16(1680);
+emit_16(1614);
+emit_16(1681);
+emit_16(1615);
+emit_16(1681);
+emit_16(1614);
+emit_16(1681);
+emit_16(1615);
+emit_16(1682);
+emit_16(1616);
+emit_16(1682);
+emit_16(1615);
+emit_16(1682);
+emit_16(1616);
+emit_16(1683);
+emit_16(1617);
+emit_16(1683);
+emit_16(1616);
+emit_16(1683);
+emit_16(1617);
+emit_16(1684);
+emit_16(1618);
+emit_16(1684);
+emit_16(1617);
+emit_16(1684);
+emit_16(1618);
+emit_16(1685);
+emit_16(1619);
+emit_16(1685);
+emit_16(1618);
+emit_16(1685);
+emit_16(1619);
+emit_16(1686);
+emit_16(1620);
+emit_16(1686);
+emit_16(1619);
+emit_16(1686);
+emit_16(1620);
+emit_16(1687);
+emit_16(1621);
+emit_16(1687);
+emit_16(1620);
+emit_16(1687);
+emit_16(1621);
+emit_16(1688);
+emit_16(1622);
+emit_16(1688);
+emit_16(1621);
+emit_16(1688);
+emit_16(1622);
+emit_16(1689);
+emit_16(1623);
+emit_16(1689);
+emit_16(1622);
+emit_16(1689);
+emit_16(1623);
+emit_16(1690);
+emit_16(1624);
+emit_16(1690);
+emit_16(1623);
+emit_16(1690);
+emit_16(1624);
+emit_16(1691);
+emit_16(1625);
+emit_16(1691);
+emit_16(1624);
+emit_16(1691);
+emit_16(1625);
+emit_16(1692);
+emit_16(1626);
+emit_16(1692);
+emit_16(1625);
+emit_16(1692);
+emit_16(1626);
+emit_16(1693);
+emit_16(1627);
+emit_16(1693);
+emit_16(1626);
+emit_16(1693);
+emit_16(1627);
+emit_16(1694);
+emit_16(1628);
+emit_16(1694);
+emit_16(1627);
+emit_16(1694);
+emit_16(1628);
+emit_16(1695);
+emit_16(1629);
+emit_16(1695);
+emit_16(1628);
+emit_16(1695);
+emit_16(1629);
+emit_16(1696);
+emit_16(1630);
+emit_16(1696);
+emit_16(1629);
+emit_16(1696);
+emit_16(1630);
+emit_16(1697);
+emit_16(1631);
+emit_16(1697);
+emit_16(1630);
+emit_16(1697);
+emit_16(1631);
+emit_16(1698);
+emit_16(1632);
+emit_16(1698);
+emit_16(1631);
+emit_16(1698);
+emit_16(1632);
+emit_16(1699);
+emit_16(1633);
+emit_16(1699);
+emit_16(1632);
+emit_16(1699);
+emit_16(1633);
+emit_16(1700);
+emit_16(1634);
+emit_16(1700);
+emit_16(1633);
+emit_16(1700);
+emit_16(1634);
+emit_16(1701);
+emit_16(1635);
+emit_16(1701);
+emit_16(1634);
+emit_16(1701);
+emit_16(1635);
+emit_16(1702);
+emit_16(1636);
+emit_16(1702);
+emit_16(1635);
+emit_16(1702);
+emit_16(1636);
+emit_16(1703);
+emit_16(1637);
+emit_16(1703);
+emit_16(1636);
+emit_16(1703);
+emit_16(1637);
+emit_16(1704);
+emit_16(1638);
+emit_16(1704);
+emit_16(1637);
+emit_16(1704);
+emit_16(1638);
+emit_16(1705);
+emit_16(1639);
+emit_16(1705);
+emit_16(1638);
+emit_16(1705);
+emit_16(1639);
+emit_16(1706);
+emit_16(1640);
+emit_16(1706);
+emit_16(1639);
+emit_16(1706);
+emit_16(1640);
+emit_16(1707);
+emit_16(1641);
+emit_16(1707);
+emit_16(1640);
+emit_16(1707);
+emit_16(1641);
+emit_16(1708);
+emit_16(1642);
+emit_16(1708);
+emit_16(1641);
+emit_16(1708);
+emit_16(1642);
+emit_16(1709);
+emit_16(1643);
+emit_16(1709);
+emit_16(1642);
+emit_16(1709);
+emit_16(1643);
+emit_16(1710);
+emit_16(1644);
+emit_16(1710);
+emit_16(1643);
+emit_16(1710);
+emit_16(1644);
+emit_16(1711);
+emit_16(1645);
+emit_16(1711);
+emit_16(1644);
+emit_16(1711);
+emit_16(1645);
+emit_16(1712);
+emit_16(1646);
+emit_16(1712);
+emit_16(1645);
+emit_16(1712);
+emit_16(1646);
+emit_16(1713);
+emit_16(1647);
+emit_16(1713);
+emit_16(1646);
+emit_16(1713);
+emit_16(1647);
+emit_16(1714);
+emit_16(1648);
+emit_16(1714);
+emit_16(1647);
+emit_16(1714);
+emit_16(1648);
+emit_16(1715);
+emit_16(1649);
+emit_16(1715);
+emit_16(1648);
+emit_16(1716);
+emit_16(1650);
+emit_16(1717);
+emit_16(1651);
+emit_16(1717);
+emit_16(1650);
+emit_16(1717);
+emit_16(1651);
+emit_16(1718);
+emit_16(1652);
+emit_16(1718);
+emit_16(1651);
+emit_16(1718);
+emit_16(1652);
+emit_16(1719);
+emit_16(1653);
+emit_16(1719);
+emit_16(1652);
+emit_16(1719);
+emit_16(1653);
+emit_16(1720);
+emit_16(1654);
+emit_16(1720);
+emit_16(1653);
+emit_16(1720);
+emit_16(1654);
+emit_16(1721);
+emit_16(1655);
+emit_16(1721);
+emit_16(1654);
+emit_16(1721);
+emit_16(1655);
+emit_16(1722);
+emit_16(1656);
+emit_16(1722);
+emit_16(1655);
+emit_16(1722);
+emit_16(1656);
+emit_16(1723);
+emit_16(1657);
+emit_16(1723);
+emit_16(1656);
+emit_16(1723);
+emit_16(1657);
+emit_16(1724);
+emit_16(1658);
+emit_16(1724);
+emit_16(1657);
+emit_16(1724);
+emit_16(1658);
+emit_16(1725);
+emit_16(1659);
+emit_16(1725);
+emit_16(1658);
+emit_16(1725);
+emit_16(1659);
+emit_16(1726);
+emit_16(1660);
+emit_16(1726);
+emit_16(1659);
+emit_16(1726);
+emit_16(1660);
+emit_16(1727);
+emit_16(1661);
+emit_16(1727);
+emit_16(1660);
+emit_16(1727);
+emit_16(1661);
+emit_16(1728);
+emit_16(1662);
+emit_16(1728);
+emit_16(1661);
+emit_16(1728);
+emit_16(1662);
+emit_16(1729);
+emit_16(1663);
+emit_16(1729);
+emit_16(1662);
+emit_16(1729);
+emit_16(1663);
+emit_16(1730);
+emit_16(1664);
+emit_16(1730);
+emit_16(1663);
+emit_16(1730);
+emit_16(1664);
+emit_16(1731);
+emit_16(1665);
+emit_16(1731);
+emit_16(1664);
+emit_16(1731);
+emit_16(1665);
+emit_16(1732);
+emit_16(1666);
+emit_16(1732);
+emit_16(1665);
+emit_16(1732);
+emit_16(1666);
+emit_16(1733);
+emit_16(1667);
+emit_16(1733);
+emit_16(1666);
+emit_16(1733);
+emit_16(1667);
+emit_16(1734);
+emit_16(1668);
+emit_16(1734);
+emit_16(1667);
+emit_16(1734);
+emit_16(1668);
+emit_16(1735);
+emit_16(1669);
+emit_16(1735);
+emit_16(1668);
+emit_16(1735);
+emit_16(1669);
+emit_16(1736);
+emit_16(1670);
+emit_16(1736);
+emit_16(1669);
+emit_16(1736);
+emit_16(1670);
+emit_16(1737);
+emit_16(1671);
+emit_16(1737);
+emit_16(1670);
+emit_16(1737);
+emit_16(1671);
+emit_16(1738);
+emit_16(1672);
+emit_16(1738);
+emit_16(1671);
+emit_16(1738);
+emit_16(1672);
+emit_16(1739);
+emit_16(1673);
+emit_16(1739);
+emit_16(1672);
+emit_16(1739);
+emit_16(1673);
+emit_16(1740);
+emit_16(1674);
+emit_16(1740);
+emit_16(1673);
+emit_16(1740);
+emit_16(1674);
+emit_16(1741);
+emit_16(1675);
+emit_16(1741);
+emit_16(1674);
+emit_16(1741);
+emit_16(1675);
+emit_16(1742);
+emit_16(1676);
+emit_16(1742);
+emit_16(1675);
+emit_16(1742);
+emit_16(1676);
+emit_16(1743);
+emit_16(1677);
+emit_16(1743);
+emit_16(1676);
+emit_16(1743);
+emit_16(1677);
+emit_16(1744);
+emit_16(1678);
+emit_16(1744);
+emit_16(1677);
+emit_16(1744);
+emit_16(1678);
+emit_16(1745);
+emit_16(1679);
+emit_16(1745);
+emit_16(1678);
+emit_16(1745);
+emit_16(1679);
+emit_16(1746);
+emit_16(1680);
+emit_16(1746);
+emit_16(1679);
+emit_16(1746);
+emit_16(1680);
+emit_16(1747);
+emit_16(1681);
+emit_16(1747);
+emit_16(1680);
+emit_16(1747);
+emit_16(1681);
+emit_16(1748);
+emit_16(1682);
+emit_16(1748);
+emit_16(1681);
+emit_16(1748);
+emit_16(1682);
+emit_16(1749);
+emit_16(1683);
+emit_16(1749);
+emit_16(1682);
+emit_16(1749);
+emit_16(1683);
+emit_16(1750);
+emit_16(1684);
+emit_16(1750);
+emit_16(1683);
+emit_16(1750);
+emit_16(1684);
+emit_16(1751);
+emit_16(1685);
+emit_16(1751);
+emit_16(1684);
+emit_16(1751);
+emit_16(1685);
+emit_16(1752);
+emit_16(1686);
+emit_16(1752);
+emit_16(1685);
+emit_16(1752);
+emit_16(1686);
+emit_16(1753);
+emit_16(1687);
+emit_16(1753);
+emit_16(1686);
+emit_16(1753);
+emit_16(1687);
+emit_16(1754);
+emit_16(1688);
+emit_16(1754);
+emit_16(1687);
+emit_16(1754);
+emit_16(1688);
+emit_16(1755);
+emit_16(1689);
+emit_16(1755);
+emit_16(1688);
+emit_16(1755);
+emit_16(1689);
+emit_16(1756);
+emit_16(1690);
+emit_16(1756);
+emit_16(1689);
+emit_16(1756);
+emit_16(1690);
+emit_16(1757);
+emit_16(1691);
+emit_16(1757);
+emit_16(1690);
+emit_16(1757);
+emit_16(1691);
+emit_16(1758);
+emit_16(1692);
+emit_16(1758);
+emit_16(1691);
+emit_16(1758);
+emit_16(1692);
+emit_16(1759);
+emit_16(1693);
+emit_16(1759);
+emit_16(1692);
+emit_16(1759);
+emit_16(1693);
+emit_16(1760);
+emit_16(1694);
+emit_16(1760);
+emit_16(1693);
+emit_16(1760);
+emit_16(1694);
+emit_16(1761);
+emit_16(1695);
+emit_16(1761);
+emit_16(1694);
+emit_16(1761);
+emit_16(1695);
+emit_16(1762);
+emit_16(1696);
+emit_16(1762);
+emit_16(1695);
+emit_16(1762);
+emit_16(1696);
+emit_16(1763);
+emit_16(1697);
+emit_16(1763);
+emit_16(1696);
+emit_16(1763);
+emit_16(1697);
+emit_16(1764);
+emit_16(1698);
+emit_16(1764);
+emit_16(1697);
+emit_16(1764);
+emit_16(1698);
+emit_16(1765);
+emit_16(1699);
+emit_16(1765);
+emit_16(1698);
+emit_16(1765);
+emit_16(1699);
+emit_16(1766);
+emit_16(1700);
+emit_16(1766);
+emit_16(1699);
+emit_16(1766);
+emit_16(1700);
+emit_16(1767);
+emit_16(1701);
+emit_16(1767);
+emit_16(1700);
+emit_16(1767);
+emit_16(1701);
+emit_16(1768);
+emit_16(1702);
+emit_16(1768);
+emit_16(1701);
+emit_16(1768);
+emit_16(1702);
+emit_16(1769);
+emit_16(1703);
+emit_16(1769);
+emit_16(1702);
+emit_16(1769);
+emit_16(1703);
+emit_16(1770);
+emit_16(1704);
+emit_16(1770);
+emit_16(1703);
+emit_16(1770);
+emit_16(1704);
+emit_16(1771);
+emit_16(1705);
+emit_16(1771);
+emit_16(1704);
+emit_16(1771);
+emit_16(1705);
+emit_16(1772);
+emit_16(1706);
+emit_16(1772);
+emit_16(1705);
+emit_16(1772);
+emit_16(1706);
+emit_16(1773);
+emit_16(1707);
+emit_16(1773);
+emit_16(1706);
+emit_16(1773);
+emit_16(1707);
+emit_16(1774);
+emit_16(1708);
+emit_16(1774);
+emit_16(1707);
+emit_16(1774);
+emit_16(1708);
+emit_16(1775);
+emit_16(1709);
+emit_16(1775);
+emit_16(1708);
+emit_16(1775);
+emit_16(1709);
+emit_16(1776);
+emit_16(1710);
+emit_16(1776);
+emit_16(1709);
+emit_16(1776);
+emit_16(1710);
+emit_16(1777);
+emit_16(1711);
+emit_16(1777);
+emit_16(1710);
+emit_16(1777);
+emit_16(1711);
+emit_16(1778);
+emit_16(1712);
+emit_16(1778);
+emit_16(1711);
+emit_16(1778);
+emit_16(1712);
+emit_16(1779);
+emit_16(1713);
+emit_16(1779);
+emit_16(1712);
+emit_16(1779);
+emit_16(1713);
+emit_16(1780);
+emit_16(1714);
+emit_16(1780);
+emit_16(1713);
+emit_16(1780);
+emit_16(1714);
+emit_16(1781);
+emit_16(1715);
+emit_16(1781);
+emit_16(1714);
+emit_16(1782);
+emit_16(1716);
+emit_16(1783);
+emit_16(1717);
+emit_16(1783);
+emit_16(1716);
+emit_16(1783);
+emit_16(1717);
+emit_16(1784);
+emit_16(1718);
+emit_16(1784);
+emit_16(1717);
+emit_16(1784);
+emit_16(1718);
+emit_16(1785);
+emit_16(1719);
+emit_16(1785);
+emit_16(1718);
+emit_16(1785);
+emit_16(1719);
+emit_16(1786);
+emit_16(1720);
+emit_16(1786);
+emit_16(1719);
+emit_16(1786);
+emit_16(1720);
+emit_16(1787);
+emit_16(1721);
+emit_16(1787);
+emit_16(1720);
+emit_16(1787);
+emit_16(1721);
+emit_16(1788);
+emit_16(1722);
+emit_16(1788);
+emit_16(1721);
+emit_16(1788);
+emit_16(1722);
+emit_16(1789);
+emit_16(1723);
+emit_16(1789);
+emit_16(1722);
+emit_16(1789);
+emit_16(1723);
+emit_16(1790);
+emit_16(1724);
+emit_16(1790);
+emit_16(1723);
+emit_16(1790);
+emit_16(1724);
+emit_16(1791);
+emit_16(1725);
+emit_16(1791);
+emit_16(1724);
+emit_16(1791);
+emit_16(1725);
+emit_16(1792);
+emit_16(1726);
+emit_16(1792);
+emit_16(1725);
+emit_16(1792);
+emit_16(1726);
+emit_16(1793);
+emit_16(1727);
+emit_16(1793);
+emit_16(1726);
+emit_16(1793);
+emit_16(1727);
+emit_16(1794);
+emit_16(1728);
+emit_16(1794);
+emit_16(1727);
+emit_16(1794);
+emit_16(1728);
+emit_16(1795);
+emit_16(1729);
+emit_16(1795);
+emit_16(1728);
+emit_16(1795);
+emit_16(1729);
+emit_16(1796);
+emit_16(1730);
+emit_16(1796);
+emit_16(1729);
+emit_16(1796);
+emit_16(1730);
+emit_16(1797);
+emit_16(1731);
+emit_16(1797);
+emit_16(1730);
+emit_16(1797);
+emit_16(1731);
+emit_16(1798);
+emit_16(1732);
+emit_16(1798);
+emit_16(1731);
+emit_16(1798);
+emit_16(1732);
+emit_16(1799);
+emit_16(1733);
+emit_16(1799);
+emit_16(1732);
+emit_16(1799);
+emit_16(1733);
+emit_16(1800);
+emit_16(1734);
+emit_16(1800);
+emit_16(1733);
+emit_16(1800);
+emit_16(1734);
+emit_16(1801);
+emit_16(1735);
+emit_16(1801);
+emit_16(1734);
+emit_16(1801);
+emit_16(1735);
+emit_16(1802);
+emit_16(1736);
+emit_16(1802);
+emit_16(1735);
+emit_16(1802);
+emit_16(1736);
+emit_16(1803);
+emit_16(1737);
+emit_16(1803);
+emit_16(1736);
+emit_16(1803);
+emit_16(1737);
+emit_16(1804);
+emit_16(1738);
+emit_16(1804);
+emit_16(1737);
+emit_16(1804);
+emit_16(1738);
+emit_16(1805);
+emit_16(1739);
+emit_16(1805);
+emit_16(1738);
+emit_16(1805);
+emit_16(1739);
+emit_16(1806);
+emit_16(1740);
+emit_16(1806);
+emit_16(1739);
+emit_16(1806);
+emit_16(1740);
+emit_16(1807);
+emit_16(1741);
+emit_16(1807);
+emit_16(1740);
+emit_16(1807);
+emit_16(1741);
+emit_16(1808);
+emit_16(1742);
+emit_16(1808);
+emit_16(1741);
+emit_16(1808);
+emit_16(1742);
+emit_16(1809);
+emit_16(1743);
+emit_16(1809);
+emit_16(1742);
+emit_16(1809);
+emit_16(1743);
+emit_16(1810);
+emit_16(1744);
+emit_16(1810);
+emit_16(1743);
+emit_16(1810);
+emit_16(1744);
+emit_16(1811);
+emit_16(1745);
+emit_16(1811);
+emit_16(1744);
+emit_16(1811);
+emit_16(1745);
+emit_16(1812);
+emit_16(1746);
+emit_16(1812);
+emit_16(1745);
+emit_16(1812);
+emit_16(1746);
+emit_16(1813);
+emit_16(1747);
+emit_16(1813);
+emit_16(1746);
+emit_16(1813);
+emit_16(1747);
+emit_16(1814);
+emit_16(1748);
+emit_16(1814);
+emit_16(1747);
+emit_16(1814);
+emit_16(1748);
+emit_16(1815);
+emit_16(1749);
+emit_16(1815);
+emit_16(1748);
+emit_16(1815);
+emit_16(1749);
+emit_16(1816);
+emit_16(1750);
+emit_16(1816);
+emit_16(1749);
+emit_16(1816);
+emit_16(1750);
+emit_16(1817);
+emit_16(1751);
+emit_16(1817);
+emit_16(1750);
+emit_16(1817);
+emit_16(1751);
+emit_16(1818);
+emit_16(1752);
+emit_16(1818);
+emit_16(1751);
+emit_16(1818);
+emit_16(1752);
+emit_16(1819);
+emit_16(1753);
+emit_16(1819);
+emit_16(1752);
+emit_16(1819);
+emit_16(1753);
+emit_16(1820);
+emit_16(1754);
+emit_16(1820);
+emit_16(1753);
+emit_16(1820);
+emit_16(1754);
+emit_16(1821);
+emit_16(1755);
+emit_16(1821);
+emit_16(1754);
+emit_16(1821);
+emit_16(1755);
+emit_16(1822);
+emit_16(1756);
+emit_16(1822);
+emit_16(1755);
+emit_16(1822);
+emit_16(1756);
+emit_16(1823);
+emit_16(1757);
+emit_16(1823);
+emit_16(1756);
+emit_16(1823);
+emit_16(1757);
+emit_16(1824);
+emit_16(1758);
+emit_16(1824);
+emit_16(1757);
+emit_16(1824);
+emit_16(1758);
+emit_16(1825);
+emit_16(1759);
+emit_16(1825);
+emit_16(1758);
+emit_16(1825);
+emit_16(1759);
+emit_16(1826);
+emit_16(1760);
+emit_16(1826);
+emit_16(1759);
+emit_16(1826);
+emit_16(1760);
+emit_16(1827);
+emit_16(1761);
+emit_16(1827);
+emit_16(1760);
+emit_16(1827);
+emit_16(1761);
+emit_16(1828);
+emit_16(1762);
+emit_16(1828);
+emit_16(1761);
+emit_16(1828);
+emit_16(1762);
+emit_16(1829);
+emit_16(1763);
+emit_16(1829);
+emit_16(1762);
+emit_16(1829);
+emit_16(1763);
+emit_16(1830);
+emit_16(1764);
+emit_16(1830);
+emit_16(1763);
+emit_16(1830);
+emit_16(1764);
+emit_16(1831);
+emit_16(1765);
+emit_16(1831);
+emit_16(1764);
+emit_16(1831);
+emit_16(1765);
+emit_16(1832);
+emit_16(1766);
+emit_16(1832);
+emit_16(1765);
+emit_16(1832);
+emit_16(1766);
+emit_16(1833);
+emit_16(1767);
+emit_16(1833);
+emit_16(1766);
+emit_16(1833);
+emit_16(1767);
+emit_16(1834);
+emit_16(1768);
+emit_16(1834);
+emit_16(1767);
+emit_16(1834);
+emit_16(1768);
+emit_16(1835);
+emit_16(1769);
+emit_16(1835);
+emit_16(1768);
+emit_16(1835);
+emit_16(1769);
+emit_16(1836);
+emit_16(1770);
+emit_16(1836);
+emit_16(1769);
+emit_16(1836);
+emit_16(1770);
+emit_16(1837);
+emit_16(1771);
+emit_16(1837);
+emit_16(1770);
+emit_16(1837);
+emit_16(1771);
+emit_16(1838);
+emit_16(1772);
+emit_16(1838);
+emit_16(1771);
+emit_16(1838);
+emit_16(1772);
+emit_16(1839);
+emit_16(1773);
+emit_16(1839);
+emit_16(1772);
+emit_16(1839);
+emit_16(1773);
+emit_16(1840);
+emit_16(1774);
+emit_16(1840);
+emit_16(1773);
+emit_16(1840);
+emit_16(1774);
+emit_16(1841);
+emit_16(1775);
+emit_16(1841);
+emit_16(1774);
+emit_16(1841);
+emit_16(1775);
+emit_16(1842);
+emit_16(1776);
+emit_16(1842);
+emit_16(1775);
+emit_16(1842);
+emit_16(1776);
+emit_16(1843);
+emit_16(1777);
+emit_16(1843);
+emit_16(1776);
+emit_16(1843);
+emit_16(1777);
+emit_16(1844);
+emit_16(1778);
+emit_16(1844);
+emit_16(1777);
+emit_16(1844);
+emit_16(1778);
+emit_16(1845);
+emit_16(1779);
+emit_16(1845);
+emit_16(1778);
+emit_16(1845);
+emit_16(1779);
+emit_16(1846);
+emit_16(1780);
+emit_16(1846);
+emit_16(1779);
+emit_16(1846);
+emit_16(1780);
+emit_16(1847);
+emit_16(1781);
+emit_16(1847);
+emit_16(1780);
+emit_16(1848);
+emit_16(1782);
+emit_16(1849);
+emit_16(1783);
+emit_16(1849);
+emit_16(1782);
+emit_16(1849);
+emit_16(1783);
+emit_16(1850);
+emit_16(1784);
+emit_16(1850);
+emit_16(1783);
+emit_16(1850);
+emit_16(1784);
+emit_16(1851);
+emit_16(1785);
+emit_16(1851);
+emit_16(1784);
+emit_16(1851);
+emit_16(1785);
+emit_16(1852);
+emit_16(1786);
+emit_16(1852);
+emit_16(1785);
+emit_16(1852);
+emit_16(1786);
+emit_16(1853);
+emit_16(1787);
+emit_16(1853);
+emit_16(1786);
+emit_16(1853);
+emit_16(1787);
+emit_16(1854);
+emit_16(1788);
+emit_16(1854);
+emit_16(1787);
+emit_16(1854);
+emit_16(1788);
+emit_16(1855);
+emit_16(1789);
+emit_16(1855);
+emit_16(1788);
+emit_16(1855);
+emit_16(1789);
+emit_16(1856);
+emit_16(1790);
+emit_16(1856);
+emit_16(1789);
+emit_16(1856);
+emit_16(1790);
+emit_16(1857);
+emit_16(1791);
+emit_16(1857);
+emit_16(1790);
+emit_16(1857);
+emit_16(1791);
+emit_16(1858);
+emit_16(1792);
+emit_16(1858);
+emit_16(1791);
+emit_16(1858);
+emit_16(1792);
+emit_16(1859);
+emit_16(1793);
+emit_16(1859);
+emit_16(1792);
+emit_16(1859);
+emit_16(1793);
+emit_16(1860);
+emit_16(1794);
+emit_16(1860);
+emit_16(1793);
+emit_16(1860);
+emit_16(1794);
+emit_16(1861);
+emit_16(1795);
+emit_16(1861);
+emit_16(1794);
+emit_16(1861);
+emit_16(1795);
+emit_16(1862);
+emit_16(1796);
+emit_16(1862);
+emit_16(1795);
+emit_16(1862);
+emit_16(1796);
+emit_16(1863);
+emit_16(1797);
+emit_16(1863);
+emit_16(1796);
+emit_16(1863);
+emit_16(1797);
+emit_16(1864);
+emit_16(1798);
+emit_16(1864);
+emit_16(1797);
+emit_16(1864);
+emit_16(1798);
+emit_16(1865);
+emit_16(1799);
+emit_16(1865);
+emit_16(1798);
+emit_16(1865);
+emit_16(1799);
+emit_16(1866);
+emit_16(1800);
+emit_16(1866);
+emit_16(1799);
+emit_16(1866);
+emit_16(1800);
+emit_16(1867);
+emit_16(1801);
+emit_16(1867);
+emit_16(1800);
+emit_16(1867);
+emit_16(1801);
+emit_16(1868);
+emit_16(1802);
+emit_16(1868);
+emit_16(1801);
+emit_16(1868);
+emit_16(1802);
+emit_16(1869);
+emit_16(1803);
+emit_16(1869);
+emit_16(1802);
+emit_16(1869);
+emit_16(1803);
+emit_16(1870);
+emit_16(1804);
+emit_16(1870);
+emit_16(1803);
+emit_16(1870);
+emit_16(1804);
+emit_16(1871);
+emit_16(1805);
+emit_16(1871);
+emit_16(1804);
+emit_16(1871);
+emit_16(1805);
+emit_16(1872);
+emit_16(1806);
+emit_16(1872);
+emit_16(1805);
+emit_16(1872);
+emit_16(1806);
+emit_16(1873);
+emit_16(1807);
+emit_16(1873);
+emit_16(1806);
+emit_16(1873);
+emit_16(1807);
+emit_16(1874);
+emit_16(1808);
+emit_16(1874);
+emit_16(1807);
+emit_16(1874);
+emit_16(1808);
+emit_16(1875);
+emit_16(1809);
+emit_16(1875);
+emit_16(1808);
+emit_16(1875);
+emit_16(1809);
+emit_16(1876);
+emit_16(1810);
+emit_16(1876);
+emit_16(1809);
+emit_16(1876);
+emit_16(1810);
+emit_16(1877);
+emit_16(1811);
+emit_16(1877);
+emit_16(1810);
+emit_16(1877);
+emit_16(1811);
+emit_16(1878);
+emit_16(1812);
+emit_16(1878);
+emit_16(1811);
+emit_16(1878);
+emit_16(1812);
+emit_16(1879);
+emit_16(1813);
+emit_16(1879);
+emit_16(1812);
+emit_16(1879);
+emit_16(1813);
+emit_16(1880);
+emit_16(1814);
+emit_16(1880);
+emit_16(1813);
+emit_16(1880);
+emit_16(1814);
+emit_16(1881);
+emit_16(1815);
+emit_16(1881);
+emit_16(1814);
+emit_16(1881);
+emit_16(1815);
+emit_16(1882);
+emit_16(1816);
+emit_16(1882);
+emit_16(1815);
+emit_16(1882);
+emit_16(1816);
+emit_16(1883);
+emit_16(1817);
+emit_16(1883);
+emit_16(1816);
+emit_16(1883);
+emit_16(1817);
+emit_16(1884);
+emit_16(1818);
+emit_16(1884);
+emit_16(1817);
+emit_16(1884);
+emit_16(1818);
+emit_16(1885);
+emit_16(1819);
+emit_16(1885);
+emit_16(1818);
+emit_16(1885);
+emit_16(1819);
+emit_16(1886);
+emit_16(1820);
+emit_16(1886);
+emit_16(1819);
+emit_16(1886);
+emit_16(1820);
+emit_16(1887);
+emit_16(1821);
+emit_16(1887);
+emit_16(1820);
+emit_16(1887);
+emit_16(1821);
+emit_16(1888);
+emit_16(1822);
+emit_16(1888);
+emit_16(1821);
+emit_16(1888);
+emit_16(1822);
+emit_16(1889);
+emit_16(1823);
+emit_16(1889);
+emit_16(1822);
+emit_16(1889);
+emit_16(1823);
+emit_16(1890);
+emit_16(1824);
+emit_16(1890);
+emit_16(1823);
+emit_16(1890);
+emit_16(1824);
+emit_16(1891);
+emit_16(1825);
+emit_16(1891);
+emit_16(1824);
+emit_16(1891);
+emit_16(1825);
+emit_16(1892);
+emit_16(1826);
+emit_16(1892);
+emit_16(1825);
+emit_16(1892);
+emit_16(1826);
+emit_16(1893);
+emit_16(1827);
+emit_16(1893);
+emit_16(1826);
+emit_16(1893);
+emit_16(1827);
+emit_16(1894);
+emit_16(1828);
+emit_16(1894);
+emit_16(1827);
+emit_16(1894);
+emit_16(1828);
+emit_16(1895);
+emit_16(1829);
+emit_16(1895);
+emit_16(1828);
+emit_16(1895);
+emit_16(1829);
+emit_16(1896);
+emit_16(1830);
+emit_16(1896);
+emit_16(1829);
+emit_16(1896);
+emit_16(1830);
+emit_16(1897);
+emit_16(1831);
+emit_16(1897);
+emit_16(1830);
+emit_16(1897);
+emit_16(1831);
+emit_16(1898);
+emit_16(1832);
+emit_16(1898);
+emit_16(1831);
+emit_16(1898);
+emit_16(1832);
+emit_16(1899);
+emit_16(1833);
+emit_16(1899);
+emit_16(1832);
+emit_16(1899);
+emit_16(1833);
+emit_16(1900);
+emit_16(1834);
+emit_16(1900);
+emit_16(1833);
+emit_16(1900);
+emit_16(1834);
+emit_16(1901);
+emit_16(1835);
+emit_16(1901);
+emit_16(1834);
+emit_16(1901);
+emit_16(1835);
+emit_16(1902);
+emit_16(1836);
+emit_16(1902);
+emit_16(1835);
+emit_16(1902);
+emit_16(1836);
+emit_16(1903);
+emit_16(1837);
+emit_16(1903);
+emit_16(1836);
+emit_16(1903);
+emit_16(1837);
+emit_16(1904);
+emit_16(1838);
+emit_16(1904);
+emit_16(1837);
+emit_16(1904);
+emit_16(1838);
+emit_16(1905);
+emit_16(1839);
+emit_16(1905);
+emit_16(1838);
+emit_16(1905);
+emit_16(1839);
+emit_16(1906);
+emit_16(1840);
+emit_16(1906);
+emit_16(1839);
+emit_16(1906);
+emit_16(1840);
+emit_16(1907);
+emit_16(1841);
+emit_16(1907);
+emit_16(1840);
+emit_16(1907);
+emit_16(1841);
+emit_16(1908);
+emit_16(1842);
+emit_16(1908);
+emit_16(1841);
+emit_16(1908);
+emit_16(1842);
+emit_16(1909);
+emit_16(1843);
+emit_16(1909);
+emit_16(1842);
+emit_16(1909);
+emit_16(1843);
+emit_16(1910);
+emit_16(1844);
+emit_16(1910);
+emit_16(1843);
+emit_16(1910);
+emit_16(1844);
+emit_16(1911);
+emit_16(1845);
+emit_16(1911);
+emit_16(1844);
+emit_16(1911);
+emit_16(1845);
+emit_16(1912);
+emit_16(1846);
+emit_16(1912);
+emit_16(1845);
+emit_16(1912);
+emit_16(1846);
+emit_16(1913);
+emit_16(1847);
+emit_16(1913);
+emit_16(1846);
+emit_16(1914);
+emit_16(1848);
+emit_16(1915);
+emit_16(1849);
+emit_16(1915);
+emit_16(1848);
+emit_16(1915);
+emit_16(1849);
+emit_16(1916);
+emit_16(1850);
+emit_16(1916);
+emit_16(1849);
+emit_16(1916);
+emit_16(1850);
+emit_16(1917);
+emit_16(1851);
+emit_16(1917);
+emit_16(1850);
+emit_16(1917);
+emit_16(1851);
+emit_16(1918);
+emit_16(1852);
+emit_16(1918);
+emit_16(1851);
+emit_16(1918);
+emit_16(1852);
+emit_16(1919);
+emit_16(1853);
+emit_16(1919);
+emit_16(1852);
+emit_16(1919);
+emit_16(1853);
+emit_16(1920);
+emit_16(1854);
+emit_16(1920);
+emit_16(1853);
+emit_16(1920);
+emit_16(1854);
+emit_16(1921);
+emit_16(1855);
+emit_16(1921);
+emit_16(1854);
+emit_16(1921);
+emit_16(1855);
+emit_16(1922);
+emit_16(1856);
+emit_16(1922);
+emit_16(1855);
+emit_16(1922);
+emit_16(1856);
+emit_16(1923);
+emit_16(1857);
+emit_16(1923);
+emit_16(1856);
+emit_16(1923);
+emit_16(1857);
+emit_16(1924);
+emit_16(1858);
+emit_16(1924);
+emit_16(1857);
+emit_16(1924);
+emit_16(1858);
+emit_16(1925);
+emit_16(1859);
+emit_16(1925);
+emit_16(1858);
+emit_16(1925);
+emit_16(1859);
+emit_16(1926);
+emit_16(1860);
+emit_16(1926);
+emit_16(1859);
+emit_16(1926);
+emit_16(1860);
+emit_16(1927);
+emit_16(1861);
+emit_16(1927);
+emit_16(1860);
+emit_16(1927);
+emit_16(1861);
+emit_16(1928);
+emit_16(1862);
+emit_16(1928);
+emit_16(1861);
+emit_16(1928);
+emit_16(1862);
+emit_16(1929);
+emit_16(1863);
+emit_16(1929);
+emit_16(1862);
+emit_16(1929);
+emit_16(1863);
+emit_16(1930);
+emit_16(1864);
+emit_16(1930);
+emit_16(1863);
+emit_16(1930);
+emit_16(1864);
+emit_16(1931);
+emit_16(1865);
+emit_16(1931);
+emit_16(1864);
+emit_16(1931);
+emit_16(1865);
+emit_16(1932);
+emit_16(1866);
+emit_16(1932);
+emit_16(1865);
+emit_16(1932);
+emit_16(1866);
+emit_16(1933);
+emit_16(1867);
+emit_16(1933);
+emit_16(1866);
+emit_16(1933);
+emit_16(1867);
+emit_16(1934);
+emit_16(1868);
+emit_16(1934);
+emit_16(1867);
+emit_16(1934);
+emit_16(1868);
+emit_16(1935);
+emit_16(1869);
+emit_16(1935);
+emit_16(1868);
+emit_16(1935);
+emit_16(1869);
+emit_16(1936);
+emit_16(1870);
+emit_16(1936);
+emit_16(1869);
+emit_16(1936);
+emit_16(1870);
+emit_16(1937);
+emit_16(1871);
+emit_16(1937);
+emit_16(1870);
+emit_16(1937);
+emit_16(1871);
+emit_16(1938);
+emit_16(1872);
+emit_16(1938);
+emit_16(1871);
+emit_16(1938);
+emit_16(1872);
+emit_16(1939);
+emit_16(1873);
+emit_16(1939);
+emit_16(1872);
+emit_16(1939);
+emit_16(1873);
+emit_16(1940);
+emit_16(1874);
+emit_16(1940);
+emit_16(1873);
+emit_16(1940);
+emit_16(1874);
+emit_16(1941);
+emit_16(1875);
+emit_16(1941);
+emit_16(1874);
+emit_16(1941);
+emit_16(1875);
+emit_16(1942);
+emit_16(1876);
+emit_16(1942);
+emit_16(1875);
+emit_16(1942);
+emit_16(1876);
+emit_16(1943);
+emit_16(1877);
+emit_16(1943);
+emit_16(1876);
+emit_16(1943);
+emit_16(1877);
+emit_16(1944);
+emit_16(1878);
+emit_16(1944);
+emit_16(1877);
+emit_16(1944);
+emit_16(1878);
+emit_16(1945);
+emit_16(1879);
+emit_16(1945);
+emit_16(1878);
+emit_16(1945);
+emit_16(1879);
+emit_16(1946);
+emit_16(1880);
+emit_16(1946);
+emit_16(1879);
+emit_16(1946);
+emit_16(1880);
+emit_16(1947);
+emit_16(1881);
+emit_16(1947);
+emit_16(1880);
+emit_16(1947);
+emit_16(1881);
+emit_16(1948);
+emit_16(1882);
+emit_16(1948);
+emit_16(1881);
+emit_16(1948);
+emit_16(1882);
+emit_16(1949);
+emit_16(1883);
+emit_16(1949);
+emit_16(1882);
+emit_16(1949);
+emit_16(1883);
+emit_16(1950);
+emit_16(1884);
+emit_16(1950);
+emit_16(1883);
+emit_16(1950);
+emit_16(1884);
+emit_16(1951);
+emit_16(1885);
+emit_16(1951);
+emit_16(1884);
+emit_16(1951);
+emit_16(1885);
+emit_16(1952);
+emit_16(1886);
+emit_16(1952);
+emit_16(1885);
+emit_16(1952);
+emit_16(1886);
+emit_16(1953);
+emit_16(1887);
+emit_16(1953);
+emit_16(1886);
+emit_16(1953);
+emit_16(1887);
+emit_16(1954);
+emit_16(1888);
+emit_16(1954);
+emit_16(1887);
+emit_16(1954);
+emit_16(1888);
+emit_16(1955);
+emit_16(1889);
+emit_16(1955);
+emit_16(1888);
+emit_16(1955);
+emit_16(1889);
+emit_16(1956);
+emit_16(1890);
+emit_16(1956);
+emit_16(1889);
+emit_16(1956);
+emit_16(1890);
+emit_16(1957);
+emit_16(1891);
+emit_16(1957);
+emit_16(1890);
+emit_16(1957);
+emit_16(1891);
+emit_16(1958);
+emit_16(1892);
+emit_16(1958);
+emit_16(1891);
+emit_16(1958);
+emit_16(1892);
+emit_16(1959);
+emit_16(1893);
+emit_16(1959);
+emit_16(1892);
+emit_16(1959);
+emit_16(1893);
+emit_16(1960);
+emit_16(1894);
+emit_16(1960);
+emit_16(1893);
+emit_16(1960);
+emit_16(1894);
+emit_16(1961);
+emit_16(1895);
+emit_16(1961);
+emit_16(1894);
+emit_16(1961);
+emit_16(1895);
+emit_16(1962);
+emit_16(1896);
+emit_16(1962);
+emit_16(1895);
+emit_16(1962);
+emit_16(1896);
+emit_16(1963);
+emit_16(1897);
+emit_16(1963);
+emit_16(1896);
+emit_16(1963);
+emit_16(1897);
+emit_16(1964);
+emit_16(1898);
+emit_16(1964);
+emit_16(1897);
+emit_16(1964);
+emit_16(1898);
+emit_16(1965);
+emit_16(1899);
+emit_16(1965);
+emit_16(1898);
+emit_16(1965);
+emit_16(1899);
+emit_16(1966);
+emit_16(1900);
+emit_16(1966);
+emit_16(1899);
+emit_16(1966);
+emit_16(1900);
+emit_16(1967);
+emit_16(1901);
+emit_16(1967);
+emit_16(1900);
+emit_16(1967);
+emit_16(1901);
+emit_16(1968);
+emit_16(1902);
+emit_16(1968);
+emit_16(1901);
+emit_16(1968);
+emit_16(1902);
+emit_16(1969);
+emit_16(1903);
+emit_16(1969);
+emit_16(1902);
+emit_16(1969);
+emit_16(1903);
+emit_16(1970);
+emit_16(1904);
+emit_16(1970);
+emit_16(1903);
+emit_16(1970);
+emit_16(1904);
+emit_16(1971);
+emit_16(1905);
+emit_16(1971);
+emit_16(1904);
+emit_16(1971);
+emit_16(1905);
+emit_16(1972);
+emit_16(1906);
+emit_16(1972);
+emit_16(1905);
+emit_16(1972);
+emit_16(1906);
+emit_16(1973);
+emit_16(1907);
+emit_16(1973);
+emit_16(1906);
+emit_16(1973);
+emit_16(1907);
+emit_16(1974);
+emit_16(1908);
+emit_16(1974);
+emit_16(1907);
+emit_16(1974);
+emit_16(1908);
+emit_16(1975);
+emit_16(1909);
+emit_16(1975);
+emit_16(1908);
+emit_16(1975);
+emit_16(1909);
+emit_16(1976);
+emit_16(1910);
+emit_16(1976);
+emit_16(1909);
+emit_16(1976);
+emit_16(1910);
+emit_16(1977);
+emit_16(1911);
+emit_16(1977);
+emit_16(1910);
+emit_16(1977);
+emit_16(1911);
+emit_16(1978);
+emit_16(1912);
+emit_16(1978);
+emit_16(1911);
+emit_16(1978);
+emit_16(1912);
+emit_16(1979);
+emit_16(1913);
+emit_16(1979);
+emit_16(1912);
+emit_16(1980);
+emit_16(1914);
+emit_16(1981);
+emit_16(1915);
+emit_16(1981);
+emit_16(1914);
+emit_16(1981);
+emit_16(1915);
+emit_16(1982);
+emit_16(1916);
+emit_16(1982);
+emit_16(1915);
+emit_16(1982);
+emit_16(1916);
+emit_16(1983);
+emit_16(1917);
+emit_16(1983);
+emit_16(1916);
+emit_16(1983);
+emit_16(1917);
+emit_16(1984);
+emit_16(1918);
+emit_16(1984);
+emit_16(1917);
+emit_16(1984);
+emit_16(1918);
+emit_16(1985);
+emit_16(1919);
+emit_16(1985);
+emit_16(1918);
+emit_16(1985);
+emit_16(1919);
+emit_16(1986);
+emit_16(1920);
+emit_16(1986);
+emit_16(1919);
+emit_16(1986);
+emit_16(1920);
+emit_16(1987);
+emit_16(1921);
+emit_16(1987);
+emit_16(1920);
+emit_16(1987);
+emit_16(1921);
+emit_16(1988);
+emit_16(1922);
+emit_16(1988);
+emit_16(1921);
+emit_16(1988);
+emit_16(1922);
+emit_16(1989);
+emit_16(1923);
+emit_16(1989);
+emit_16(1922);
+emit_16(1989);
+emit_16(1923);
+emit_16(1990);
+emit_16(1924);
+emit_16(1990);
+emit_16(1923);
+emit_16(1990);
+emit_16(1924);
+emit_16(1991);
+emit_16(1925);
+emit_16(1991);
+emit_16(1924);
+emit_16(1991);
+emit_16(1925);
+emit_16(1992);
+emit_16(1926);
+emit_16(1992);
+emit_16(1925);
+emit_16(1992);
+emit_16(1926);
+emit_16(1993);
+emit_16(1927);
+emit_16(1993);
+emit_16(1926);
+emit_16(1993);
+emit_16(1927);
+emit_16(1994);
+emit_16(1928);
+emit_16(1994);
+emit_16(1927);
+emit_16(1994);
+emit_16(1928);
+emit_16(1995);
+emit_16(1929);
+emit_16(1995);
+emit_16(1928);
+emit_16(1995);
+emit_16(1929);
+emit_16(1996);
+emit_16(1930);
+emit_16(1996);
+emit_16(1929);
+emit_16(1996);
+emit_16(1930);
+emit_16(1997);
+emit_16(1931);
+emit_16(1997);
+emit_16(1930);
+emit_16(1997);
+emit_16(1931);
+emit_16(1998);
+emit_16(1932);
+emit_16(1998);
+emit_16(1931);
+emit_16(1998);
+emit_16(1932);
+emit_16(1999);
+emit_16(1933);
+emit_16(1999);
+emit_16(1932);
+emit_16(1999);
+emit_16(1933);
+emit_16(2000);
+emit_16(1934);
+emit_16(2000);
+emit_16(1933);
+emit_16(2000);
+emit_16(1934);
+emit_16(2001);
+emit_16(1935);
+emit_16(2001);
+emit_16(1934);
+emit_16(2001);
+emit_16(1935);
+emit_16(2002);
+emit_16(1936);
+emit_16(2002);
+emit_16(1935);
+emit_16(2002);
+emit_16(1936);
+emit_16(2003);
+emit_16(1937);
+emit_16(2003);
+emit_16(1936);
+emit_16(2003);
+emit_16(1937);
+emit_16(2004);
+emit_16(1938);
+emit_16(2004);
+emit_16(1937);
+emit_16(2004);
+emit_16(1938);
+emit_16(2005);
+emit_16(1939);
+emit_16(2005);
+emit_16(1938);
+emit_16(2005);
+emit_16(1939);
+emit_16(2006);
+emit_16(1940);
+emit_16(2006);
+emit_16(1939);
+emit_16(2006);
+emit_16(1940);
+emit_16(2007);
+emit_16(1941);
+emit_16(2007);
+emit_16(1940);
+emit_16(2007);
+emit_16(1941);
+emit_16(2008);
+emit_16(1942);
+emit_16(2008);
+emit_16(1941);
+emit_16(2008);
+emit_16(1942);
+emit_16(2009);
+emit_16(1943);
+emit_16(2009);
+emit_16(1942);
+emit_16(2009);
+emit_16(1943);
+emit_16(2010);
+emit_16(1944);
+emit_16(2010);
+emit_16(1943);
+emit_16(2010);
+emit_16(1944);
+emit_16(2011);
+emit_16(1945);
+emit_16(2011);
+emit_16(1944);
+emit_16(2011);
+emit_16(1945);
+emit_16(2012);
+emit_16(1946);
+emit_16(2012);
+emit_16(1945);
+emit_16(2012);
+emit_16(1946);
+emit_16(2013);
+emit_16(1947);
+emit_16(2013);
+emit_16(1946);
+emit_16(2013);
+emit_16(1947);
+emit_16(2014);
+emit_16(1948);
+emit_16(2014);
+emit_16(1947);
+emit_16(2014);
+emit_16(1948);
+emit_16(2015);
+emit_16(1949);
+emit_16(2015);
+emit_16(1948);
+emit_16(2015);
+emit_16(1949);
+emit_16(2016);
+emit_16(1950);
+emit_16(2016);
+emit_16(1949);
+emit_16(2016);
+emit_16(1950);
+emit_16(2017);
+emit_16(1951);
+emit_16(2017);
+emit_16(1950);
+emit_16(2017);
+emit_16(1951);
+emit_16(2018);
+emit_16(1952);
+emit_16(2018);
+emit_16(1951);
+emit_16(2018);
+emit_16(1952);
+emit_16(2019);
+emit_16(1953);
+emit_16(2019);
+emit_16(1952);
+emit_16(2019);
+emit_16(1953);
+emit_16(2020);
+emit_16(1954);
+emit_16(2020);
+emit_16(1953);
+emit_16(2020);
+emit_16(1954);
+emit_16(2021);
+emit_16(1955);
+emit_16(2021);
+emit_16(1954);
+emit_16(2021);
+emit_16(1955);
+emit_16(2022);
+emit_16(1956);
+emit_16(2022);
+emit_16(1955);
+emit_16(2022);
+emit_16(1956);
+emit_16(2023);
+emit_16(1957);
+emit_16(2023);
+emit_16(1956);
+emit_16(2023);
+emit_16(1957);
+emit_16(2024);
+emit_16(1958);
+emit_16(2024);
+emit_16(1957);
+emit_16(2024);
+emit_16(1958);
+emit_16(2025);
+emit_16(1959);
+emit_16(2025);
+emit_16(1958);
+emit_16(2025);
+emit_16(1959);
+emit_16(2026);
+emit_16(1960);
+emit_16(2026);
+emit_16(1959);
+emit_16(2026);
+emit_16(1960);
+emit_16(2027);
+emit_16(1961);
+emit_16(2027);
+emit_16(1960);
+emit_16(2027);
+emit_16(1961);
+emit_16(2028);
+emit_16(1962);
+emit_16(2028);
+emit_16(1961);
+emit_16(2028);
+emit_16(1962);
+emit_16(2029);
+emit_16(1963);
+emit_16(2029);
+emit_16(1962);
+emit_16(2029);
+emit_16(1963);
+emit_16(2030);
+emit_16(1964);
+emit_16(2030);
+emit_16(1963);
+emit_16(2030);
+emit_16(1964);
+emit_16(2031);
+emit_16(1965);
+emit_16(2031);
+emit_16(1964);
+emit_16(2031);
+emit_16(1965);
+emit_16(2032);
+emit_16(1966);
+emit_16(2032);
+emit_16(1965);
+emit_16(2032);
+emit_16(1966);
+emit_16(2033);
+emit_16(1967);
+emit_16(2033);
+emit_16(1966);
+emit_16(2033);
+emit_16(1967);
+emit_16(2034);
+emit_16(1968);
+emit_16(2034);
+emit_16(1967);
+emit_16(2034);
+emit_16(1968);
+emit_16(2035);
+emit_16(1969);
+emit_16(2035);
+emit_16(1968);
+emit_16(2035);
+emit_16(1969);
+emit_16(2036);
+emit_16(1970);
+emit_16(2036);
+emit_16(1969);
+emit_16(2036);
+emit_16(1970);
+emit_16(2037);
+emit_16(1971);
+emit_16(2037);
+emit_16(1970);
+emit_16(2037);
+emit_16(1971);
+emit_16(2038);
+emit_16(1972);
+emit_16(2038);
+emit_16(1971);
+emit_16(2038);
+emit_16(1972);
+emit_16(2039);
+emit_16(1973);
+emit_16(2039);
+emit_16(1972);
+emit_16(2039);
+emit_16(1973);
+emit_16(2040);
+emit_16(1974);
+emit_16(2040);
+emit_16(1973);
+emit_16(2040);
+emit_16(1974);
+emit_16(2041);
+emit_16(1975);
+emit_16(2041);
+emit_16(1974);
+emit_16(2041);
+emit_16(1975);
+emit_16(2042);
+emit_16(1976);
+emit_16(2042);
+emit_16(1975);
+emit_16(2042);
+emit_16(1976);
+emit_16(2043);
+emit_16(1977);
+emit_16(2043);
+emit_16(1976);
+emit_16(2043);
+emit_16(1977);
+emit_16(2044);
+emit_16(1978);
+emit_16(2044);
+emit_16(1977);
+emit_16(2044);
+emit_16(1978);
+emit_16(2045);
+emit_16(1979);
+emit_16(2045);
+emit_16(1978);
+emit_16(2046);
+emit_16(1980);
+emit_16(2047);
+emit_16(1981);
+emit_16(2047);
+emit_16(1980);
+emit_16(2047);
+emit_16(1981);
+emit_16(2048);
+emit_16(1982);
+emit_16(2048);
+emit_16(1981);
+emit_16(2048);
+emit_16(1982);
+emit_16(2049);
+emit_16(1983);
+emit_16(2049);
+emit_16(1982);
+emit_16(2049);
+emit_16(1983);
+emit_16(2050);
+emit_16(1984);
+emit_16(2050);
+emit_16(1983);
+emit_16(2050);
+emit_16(1984);
+emit_16(2051);
+emit_16(1985);
+emit_16(2051);
+emit_16(1984);
+emit_16(2051);
+emit_16(1985);
+emit_16(2052);
+emit_16(1986);
+emit_16(2052);
+emit_16(1985);
+emit_16(2052);
+emit_16(1986);
+emit_16(2053);
+emit_16(1987);
+emit_16(2053);
+emit_16(1986);
+emit_16(2053);
+emit_16(1987);
+emit_16(2054);
+emit_16(1988);
+emit_16(2054);
+emit_16(1987);
+emit_16(2054);
+emit_16(1988);
+emit_16(2055);
+emit_16(1989);
+emit_16(2055);
+emit_16(1988);
+emit_16(2055);
+emit_16(1989);
+emit_16(2056);
+emit_16(1990);
+emit_16(2056);
+emit_16(1989);
+emit_16(2056);
+emit_16(1990);
+emit_16(2057);
+emit_16(1991);
+emit_16(2057);
+emit_16(1990);
+emit_16(2057);
+emit_16(1991);
+emit_16(2058);
+emit_16(1992);
+emit_16(2058);
+emit_16(1991);
+emit_16(2058);
+emit_16(1992);
+emit_16(2059);
+emit_16(1993);
+emit_16(2059);
+emit_16(1992);
+emit_16(2059);
+emit_16(1993);
+emit_16(2060);
+emit_16(1994);
+emit_16(2060);
+emit_16(1993);
+emit_16(2060);
+emit_16(1994);
+emit_16(2061);
+emit_16(1995);
+emit_16(2061);
+emit_16(1994);
+emit_16(2061);
+emit_16(1995);
+emit_16(2062);
+emit_16(1996);
+emit_16(2062);
+emit_16(1995);
+emit_16(2062);
+emit_16(1996);
+emit_16(2063);
+emit_16(1997);
+emit_16(2063);
+emit_16(1996);
+emit_16(2063);
+emit_16(1997);
+emit_16(2064);
+emit_16(1998);
+emit_16(2064);
+emit_16(1997);
+emit_16(2064);
+emit_16(1998);
+emit_16(2065);
+emit_16(1999);
+emit_16(2065);
+emit_16(1998);
+emit_16(2065);
+emit_16(1999);
+emit_16(2066);
+emit_16(2000);
+emit_16(2066);
+emit_16(1999);
+emit_16(2066);
+emit_16(2000);
+emit_16(2067);
+emit_16(2001);
+emit_16(2067);
+emit_16(2000);
+emit_16(2067);
+emit_16(2001);
+emit_16(2068);
+emit_16(2002);
+emit_16(2068);
+emit_16(2001);
+emit_16(2068);
+emit_16(2002);
+emit_16(2069);
+emit_16(2003);
+emit_16(2069);
+emit_16(2002);
+emit_16(2069);
+emit_16(2003);
+emit_16(2070);
+emit_16(2004);
+emit_16(2070);
+emit_16(2003);
+emit_16(2070);
+emit_16(2004);
+emit_16(2071);
+emit_16(2005);
+emit_16(2071);
+emit_16(2004);
+emit_16(2071);
+emit_16(2005);
+emit_16(2072);
+emit_16(2006);
+emit_16(2072);
+emit_16(2005);
+emit_16(2072);
+emit_16(2006);
+emit_16(2073);
+emit_16(2007);
+emit_16(2073);
+emit_16(2006);
+emit_16(2073);
+emit_16(2007);
+emit_16(2074);
+emit_16(2008);
+emit_16(2074);
+emit_16(2007);
+emit_16(2074);
+emit_16(2008);
+emit_16(2075);
+emit_16(2009);
+emit_16(2075);
+emit_16(2008);
+emit_16(2075);
+emit_16(2009);
+emit_16(2076);
+emit_16(2010);
+emit_16(2076);
+emit_16(2009);
+emit_16(2076);
+emit_16(2010);
+emit_16(2077);
+emit_16(2011);
+emit_16(2077);
+emit_16(2010);
+emit_16(2077);
+emit_16(2011);
+emit_16(2078);
+emit_16(2012);
+emit_16(2078);
+emit_16(2011);
+emit_16(2078);
+emit_16(2012);
+emit_16(2079);
+emit_16(2013);
+emit_16(2079);
+emit_16(2012);
+emit_16(2079);
+emit_16(2013);
+emit_16(2080);
+emit_16(2014);
+emit_16(2080);
+emit_16(2013);
+emit_16(2080);
+emit_16(2014);
+emit_16(2081);
+emit_16(2015);
+emit_16(2081);
+emit_16(2014);
+emit_16(2081);
+emit_16(2015);
+emit_16(2082);
+emit_16(2016);
+emit_16(2082);
+emit_16(2015);
+emit_16(2082);
+emit_16(2016);
+emit_16(2083);
+emit_16(2017);
+emit_16(2083);
+emit_16(2016);
+emit_16(2083);
+emit_16(2017);
+emit_16(2084);
+emit_16(2018);
+emit_16(2084);
+emit_16(2017);
+emit_16(2084);
+emit_16(2018);
+emit_16(2085);
+emit_16(2019);
+emit_16(2085);
+emit_16(2018);
+emit_16(2085);
+emit_16(2019);
+emit_16(2086);
+emit_16(2020);
+emit_16(2086);
+emit_16(2019);
+emit_16(2086);
+emit_16(2020);
+emit_16(2087);
+emit_16(2021);
+emit_16(2087);
+emit_16(2020);
+emit_16(2087);
+emit_16(2021);
+emit_16(2088);
+emit_16(2022);
+emit_16(2088);
+emit_16(2021);
+emit_16(2088);
+emit_16(2022);
+emit_16(2089);
+emit_16(2023);
+emit_16(2089);
+emit_16(2022);
+emit_16(2089);
+emit_16(2023);
+emit_16(2090);
+emit_16(2024);
+emit_16(2090);
+emit_16(2023);
+emit_16(2090);
+emit_16(2024);
+emit_16(2091);
+emit_16(2025);
+emit_16(2091);
+emit_16(2024);
+emit_16(2091);
+emit_16(2025);
+emit_16(2092);
+emit_16(2026);
+emit_16(2092);
+emit_16(2025);
+emit_16(2092);
+emit_16(2026);
+emit_16(2093);
+emit_16(2027);
+emit_16(2093);
+emit_16(2026);
+emit_16(2093);
+emit_16(2027);
+emit_16(2094);
+emit_16(2028);
+emit_16(2094);
+emit_16(2027);
+emit_16(2094);
+emit_16(2028);
+emit_16(2095);
+emit_16(2029);
+emit_16(2095);
+emit_16(2028);
+emit_16(2095);
+emit_16(2029);
+emit_16(2096);
+emit_16(2030);
+emit_16(2096);
+emit_16(2029);
+emit_16(2096);
+emit_16(2030);
+emit_16(2097);
+emit_16(2031);
+emit_16(2097);
+emit_16(2030);
+emit_16(2097);
+emit_16(2031);
+emit_16(2098);
+emit_16(2032);
+emit_16(2098);
+emit_16(2031);
+emit_16(2098);
+emit_16(2032);
+emit_16(2099);
+emit_16(2033);
+emit_16(2099);
+emit_16(2032);
+emit_16(2099);
+emit_16(2033);
+emit_16(2100);
+emit_16(2034);
+emit_16(2100);
+emit_16(2033);
+emit_16(2100);
+emit_16(2034);
+emit_16(2101);
+emit_16(2035);
+emit_16(2101);
+emit_16(2034);
+emit_16(2101);
+emit_16(2035);
+emit_16(2102);
+emit_16(2036);
+emit_16(2102);
+emit_16(2035);
+emit_16(2102);
+emit_16(2036);
+emit_16(2103);
+emit_16(2037);
+emit_16(2103);
+emit_16(2036);
+emit_16(2103);
+emit_16(2037);
+emit_16(2104);
+emit_16(2038);
+emit_16(2104);
+emit_16(2037);
+emit_16(2104);
+emit_16(2038);
+emit_16(2105);
+emit_16(2039);
+emit_16(2105);
+emit_16(2038);
+emit_16(2105);
+emit_16(2039);
+emit_16(2106);
+emit_16(2040);
+emit_16(2106);
+emit_16(2039);
+emit_16(2106);
+emit_16(2040);
+emit_16(2107);
+emit_16(2041);
+emit_16(2107);
+emit_16(2040);
+emit_16(2107);
+emit_16(2041);
+emit_16(2108);
+emit_16(2042);
+emit_16(2108);
+emit_16(2041);
+emit_16(2108);
+emit_16(2042);
+emit_16(2109);
+emit_16(2043);
+emit_16(2109);
+emit_16(2042);
+emit_16(2109);
+emit_16(2043);
+emit_16(2110);
+emit_16(2044);
+emit_16(2110);
+emit_16(2043);
+emit_16(2110);
+emit_16(2044);
+emit_16(2111);
+emit_16(2045);
+emit_16(2111);
+emit_16(2044);
+emit_16(2112);
+emit_16(2046);
+emit_16(2113);
+emit_16(2047);
+emit_16(2113);
+emit_16(2046);
+emit_16(2113);
+emit_16(2047);
+emit_16(2114);
+emit_16(2048);
+emit_16(2114);
+emit_16(2047);
+emit_16(2114);
+emit_16(2048);
+emit_16(2115);
+emit_16(2049);
+emit_16(2115);
+emit_16(2048);
+emit_16(2115);
+emit_16(2049);
+emit_16(2116);
+emit_16(2050);
+emit_16(2116);
+emit_16(2049);
+emit_16(2116);
+emit_16(2050);
+emit_16(2117);
+emit_16(2051);
+emit_16(2117);
+emit_16(2050);
+emit_16(2117);
+emit_16(2051);
+emit_16(2118);
+emit_16(2052);
+emit_16(2118);
+emit_16(2051);
+emit_16(2118);
+emit_16(2052);
+emit_16(2119);
+emit_16(2053);
+emit_16(2119);
+emit_16(2052);
+emit_16(2119);
+emit_16(2053);
+emit_16(2120);
+emit_16(2054);
+emit_16(2120);
+emit_16(2053);
+emit_16(2120);
+emit_16(2054);
+emit_16(2121);
+emit_16(2055);
+emit_16(2121);
+emit_16(2054);
+emit_16(2121);
+emit_16(2055);
+emit_16(2122);
+emit_16(2056);
+emit_16(2122);
+emit_16(2055);
+emit_16(2122);
+emit_16(2056);
+emit_16(2123);
+emit_16(2057);
+emit_16(2123);
+emit_16(2056);
+emit_16(2123);
+emit_16(2057);
+emit_16(2124);
+emit_16(2058);
+emit_16(2124);
+emit_16(2057);
+emit_16(2124);
+emit_16(2058);
+emit_16(2125);
+emit_16(2059);
+emit_16(2125);
+emit_16(2058);
+emit_16(2125);
+emit_16(2059);
+emit_16(2126);
+emit_16(2060);
+emit_16(2126);
+emit_16(2059);
+emit_16(2126);
+emit_16(2060);
+emit_16(2127);
+emit_16(2061);
+emit_16(2127);
+emit_16(2060);
+emit_16(2127);
+emit_16(2061);
+emit_16(2128);
+emit_16(2062);
+emit_16(2128);
+emit_16(2061);
+emit_16(2128);
+emit_16(2062);
+emit_16(2129);
+emit_16(2063);
+emit_16(2129);
+emit_16(2062);
+emit_16(2129);
+emit_16(2063);
+emit_16(2130);
+emit_16(2064);
+emit_16(2130);
+emit_16(2063);
+emit_16(2130);
+emit_16(2064);
+emit_16(2131);
+emit_16(2065);
+emit_16(2131);
+emit_16(2064);
+emit_16(2131);
+emit_16(2065);
+emit_16(2132);
+emit_16(2066);
+emit_16(2132);
+emit_16(2065);
+emit_16(2132);
+emit_16(2066);
+emit_16(2133);
+emit_16(2067);
+emit_16(2133);
+emit_16(2066);
+emit_16(2133);
+emit_16(2067);
+emit_16(2134);
+emit_16(2068);
+emit_16(2134);
+emit_16(2067);
+emit_16(2134);
+emit_16(2068);
+emit_16(2135);
+emit_16(2069);
+emit_16(2135);
+emit_16(2068);
+emit_16(2135);
+emit_16(2069);
+emit_16(2136);
+emit_16(2070);
+emit_16(2136);
+emit_16(2069);
+emit_16(2136);
+emit_16(2070);
+emit_16(2137);
+emit_16(2071);
+emit_16(2137);
+emit_16(2070);
+emit_16(2137);
+emit_16(2071);
+emit_16(2138);
+emit_16(2072);
+emit_16(2138);
+emit_16(2071);
+emit_16(2138);
+emit_16(2072);
+emit_16(2139);
+emit_16(2073);
+emit_16(2139);
+emit_16(2072);
+emit_16(2139);
+emit_16(2073);
+emit_16(2140);
+emit_16(2074);
+emit_16(2140);
+emit_16(2073);
+emit_16(2140);
+emit_16(2074);
+emit_16(2141);
+emit_16(2075);
+emit_16(2141);
+emit_16(2074);
+emit_16(2141);
+emit_16(2075);
+emit_16(2142);
+emit_16(2076);
+emit_16(2142);
+emit_16(2075);
+emit_16(2142);
+emit_16(2076);
+emit_16(2143);
+emit_16(2077);
+emit_16(2143);
+emit_16(2076);
+emit_16(2143);
+emit_16(2077);
+emit_16(2144);
+emit_16(2078);
+emit_16(2144);
+emit_16(2077);
+emit_16(2144);
+emit_16(2078);
+emit_16(2145);
+emit_16(2079);
+emit_16(2145);
+emit_16(2078);
+emit_16(2145);
+emit_16(2079);
+emit_16(2146);
+emit_16(2080);
+emit_16(2146);
+emit_16(2079);
+emit_16(2146);
+emit_16(2080);
+emit_16(2147);
+emit_16(2081);
+emit_16(2147);
+emit_16(2080);
+emit_16(2147);
+emit_16(2081);
+emit_16(2148);
+emit_16(2082);
+emit_16(2148);
+emit_16(2081);
+emit_16(2148);
+emit_16(2082);
+emit_16(2149);
+emit_16(2083);
+emit_16(2149);
+emit_16(2082);
+emit_16(2149);
+emit_16(2083);
+emit_16(2150);
+emit_16(2084);
+emit_16(2150);
+emit_16(2083);
+emit_16(2150);
+emit_16(2084);
+emit_16(2151);
+emit_16(2085);
+emit_16(2151);
+emit_16(2084);
+emit_16(2151);
+emit_16(2085);
+emit_16(2152);
+emit_16(2086);
+emit_16(2152);
+emit_16(2085);
+emit_16(2152);
+emit_16(2086);
+emit_16(2153);
+emit_16(2087);
+emit_16(2153);
+emit_16(2086);
+emit_16(2153);
+emit_16(2087);
+emit_16(2154);
+emit_16(2088);
+emit_16(2154);
+emit_16(2087);
+emit_16(2154);
+emit_16(2088);
+emit_16(2155);
+emit_16(2089);
+emit_16(2155);
+emit_16(2088);
+emit_16(2155);
+emit_16(2089);
+emit_16(2156);
+emit_16(2090);
+emit_16(2156);
+emit_16(2089);
+emit_16(2156);
+emit_16(2090);
+emit_16(2157);
+emit_16(2091);
+emit_16(2157);
+emit_16(2090);
+emit_16(2157);
+emit_16(2091);
+emit_16(2158);
+emit_16(2092);
+emit_16(2158);
+emit_16(2091);
+emit_16(2158);
+emit_16(2092);
+emit_16(2159);
+emit_16(2093);
+emit_16(2159);
+emit_16(2092);
+emit_16(2159);
+emit_16(2093);
+emit_16(2160);
+emit_16(2094);
+emit_16(2160);
+emit_16(2093);
+emit_16(2160);
+emit_16(2094);
+emit_16(2161);
+emit_16(2095);
+emit_16(2161);
+emit_16(2094);
+emit_16(2161);
+emit_16(2095);
+emit_16(2162);
+emit_16(2096);
+emit_16(2162);
+emit_16(2095);
+emit_16(2162);
+emit_16(2096);
+emit_16(2163);
+emit_16(2097);
+emit_16(2163);
+emit_16(2096);
+emit_16(2163);
+emit_16(2097);
+emit_16(2164);
+emit_16(2098);
+emit_16(2164);
+emit_16(2097);
+emit_16(2164);
+emit_16(2098);
+emit_16(2165);
+emit_16(2099);
+emit_16(2165);
+emit_16(2098);
+emit_16(2165);
+emit_16(2099);
+emit_16(2166);
+emit_16(2100);
+emit_16(2166);
+emit_16(2099);
+emit_16(2166);
+emit_16(2100);
+emit_16(2167);
+emit_16(2101);
+emit_16(2167);
+emit_16(2100);
+emit_16(2167);
+emit_16(2101);
+emit_16(2168);
+emit_16(2102);
+emit_16(2168);
+emit_16(2101);
+emit_16(2168);
+emit_16(2102);
+emit_16(2169);
+emit_16(2103);
+emit_16(2169);
+emit_16(2102);
+emit_16(2169);
+emit_16(2103);
+emit_16(2170);
+emit_16(2104);
+emit_16(2170);
+emit_16(2103);
+emit_16(2170);
+emit_16(2104);
+emit_16(2171);
+emit_16(2105);
+emit_16(2171);
+emit_16(2104);
+emit_16(2171);
+emit_16(2105);
+emit_16(2172);
+emit_16(2106);
+emit_16(2172);
+emit_16(2105);
+emit_16(2172);
+emit_16(2106);
+emit_16(2173);
+emit_16(2107);
+emit_16(2173);
+emit_16(2106);
+emit_16(2173);
+emit_16(2107);
+emit_16(2174);
+emit_16(2108);
+emit_16(2174);
+emit_16(2107);
+emit_16(2174);
+emit_16(2108);
+emit_16(2175);
+emit_16(2109);
+emit_16(2175);
+emit_16(2108);
+emit_16(2175);
+emit_16(2109);
+emit_16(2176);
+emit_16(2110);
+emit_16(2176);
+emit_16(2109);
+emit_16(2176);
+emit_16(2110);
+emit_16(2177);
+emit_16(2111);
+emit_16(2177);
+emit_16(2110);
+emit_16(2178);
+emit_16(2112);
+emit_16(2179);
+emit_16(2113);
+emit_16(2179);
+emit_16(2112);
+emit_16(2179);
+emit_16(2113);
+emit_16(2180);
+emit_16(2114);
+emit_16(2180);
+emit_16(2113);
+emit_16(2180);
+emit_16(2114);
+emit_16(2181);
+emit_16(2115);
+emit_16(2181);
+emit_16(2114);
+emit_16(2181);
+emit_16(2115);
+emit_16(2182);
+emit_16(2116);
+emit_16(2182);
+emit_16(2115);
+emit_16(2182);
+emit_16(2116);
+emit_16(2183);
+emit_16(2117);
+emit_16(2183);
+emit_16(2116);
+emit_16(2183);
+emit_16(2117);
+emit_16(2184);
+emit_16(2118);
+emit_16(2184);
+emit_16(2117);
+emit_16(2184);
+emit_16(2118);
+emit_16(2185);
+emit_16(2119);
+emit_16(2185);
+emit_16(2118);
+emit_16(2185);
+emit_16(2119);
+emit_16(2186);
+emit_16(2120);
+emit_16(2186);
+emit_16(2119);
+emit_16(2186);
+emit_16(2120);
+emit_16(2187);
+emit_16(2121);
+emit_16(2187);
+emit_16(2120);
+emit_16(2187);
+emit_16(2121);
+emit_16(2188);
+emit_16(2122);
+emit_16(2188);
+emit_16(2121);
+emit_16(2188);
+emit_16(2122);
+emit_16(2189);
+emit_16(2123);
+emit_16(2189);
+emit_16(2122);
+emit_16(2189);
+emit_16(2123);
+emit_16(2190);
+emit_16(2124);
+emit_16(2190);
+emit_16(2123);
+emit_16(2190);
+emit_16(2124);
+emit_16(2191);
+emit_16(2125);
+emit_16(2191);
+emit_16(2124);
+emit_16(2191);
+emit_16(2125);
+emit_16(2192);
+emit_16(2126);
+emit_16(2192);
+emit_16(2125);
+emit_16(2192);
+emit_16(2126);
+emit_16(2193);
+emit_16(2127);
+emit_16(2193);
+emit_16(2126);
+emit_16(2193);
+emit_16(2127);
+emit_16(2194);
+emit_16(2128);
+emit_16(2194);
+emit_16(2127);
+emit_16(2194);
+emit_16(2128);
+emit_16(2195);
+emit_16(2129);
+emit_16(2195);
+emit_16(2128);
+emit_16(2195);
+emit_16(2129);
+emit_16(2196);
+emit_16(2130);
+emit_16(2196);
+emit_16(2129);
+emit_16(2196);
+emit_16(2130);
+emit_16(2197);
+emit_16(2131);
+emit_16(2197);
+emit_16(2130);
+emit_16(2197);
+emit_16(2131);
+emit_16(2198);
+emit_16(2132);
+emit_16(2198);
+emit_16(2131);
+emit_16(2198);
+emit_16(2132);
+emit_16(2199);
+emit_16(2133);
+emit_16(2199);
+emit_16(2132);
+emit_16(2199);
+emit_16(2133);
+emit_16(2200);
+emit_16(2134);
+emit_16(2200);
+emit_16(2133);
+emit_16(2200);
+emit_16(2134);
+emit_16(2201);
+emit_16(2135);
+emit_16(2201);
+emit_16(2134);
+emit_16(2201);
+emit_16(2135);
+emit_16(2202);
+emit_16(2136);
+emit_16(2202);
+emit_16(2135);
+emit_16(2202);
+emit_16(2136);
+emit_16(2203);
+emit_16(2137);
+emit_16(2203);
+emit_16(2136);
+emit_16(2203);
+emit_16(2137);
+emit_16(2204);
+emit_16(2138);
+emit_16(2204);
+emit_16(2137);
+emit_16(2204);
+emit_16(2138);
+emit_16(2205);
+emit_16(2139);
+emit_16(2205);
+emit_16(2138);
+emit_16(2205);
+emit_16(2139);
+emit_16(2206);
+emit_16(2140);
+emit_16(2206);
+emit_16(2139);
+emit_16(2206);
+emit_16(2140);
+emit_16(2207);
+emit_16(2141);
+emit_16(2207);
+emit_16(2140);
+emit_16(2207);
+emit_16(2141);
+emit_16(2208);
+emit_16(2142);
+emit_16(2208);
+emit_16(2141);
+emit_16(2208);
+emit_16(2142);
+emit_16(2209);
+emit_16(2143);
+emit_16(2209);
+emit_16(2142);
+emit_16(2209);
+emit_16(2143);
+emit_16(2210);
+emit_16(2144);
+emit_16(2210);
+emit_16(2143);
+emit_16(2210);
+emit_16(2144);
+emit_16(2211);
+emit_16(2145);
+emit_16(2211);
+emit_16(2144);
+emit_16(2211);
+emit_16(2145);
+emit_16(2212);
+emit_16(2146);
+emit_16(2212);
+emit_16(2145);
+emit_16(2212);
+emit_16(2146);
+emit_16(2213);
+emit_16(2147);
+emit_16(2213);
+emit_16(2146);
+emit_16(2213);
+emit_16(2147);
+emit_16(2214);
+emit_16(2148);
+emit_16(2214);
+emit_16(2147);
+emit_16(2214);
+emit_16(2148);
+emit_16(2215);
+emit_16(2149);
+emit_16(2215);
+emit_16(2148);
+emit_16(2215);
+emit_16(2149);
+emit_16(2216);
+emit_16(2150);
+emit_16(2216);
+emit_16(2149);
+emit_16(2216);
+emit_16(2150);
+emit_16(2217);
+emit_16(2151);
+emit_16(2217);
+emit_16(2150);
+emit_16(2217);
+emit_16(2151);
+emit_16(2218);
+emit_16(2152);
+emit_16(2218);
+emit_16(2151);
+emit_16(2218);
+emit_16(2152);
+emit_16(2219);
+emit_16(2153);
+emit_16(2219);
+emit_16(2152);
+emit_16(2219);
+emit_16(2153);
+emit_16(2220);
+emit_16(2154);
+emit_16(2220);
+emit_16(2153);
+emit_16(2220);
+emit_16(2154);
+emit_16(2221);
+emit_16(2155);
+emit_16(2221);
+emit_16(2154);
+emit_16(2221);
+emit_16(2155);
+emit_16(2222);
+emit_16(2156);
+emit_16(2222);
+emit_16(2155);
+emit_16(2222);
+emit_16(2156);
+emit_16(2223);
+emit_16(2157);
+emit_16(2223);
+emit_16(2156);
+emit_16(2223);
+emit_16(2157);
+emit_16(2224);
+emit_16(2158);
+emit_16(2224);
+emit_16(2157);
+emit_16(2224);
+emit_16(2158);
+emit_16(2225);
+emit_16(2159);
+emit_16(2225);
+emit_16(2158);
+emit_16(2225);
+emit_16(2159);
+emit_16(2226);
+emit_16(2160);
+emit_16(2226);
+emit_16(2159);
+emit_16(2226);
+emit_16(2160);
+emit_16(2227);
+emit_16(2161);
+emit_16(2227);
+emit_16(2160);
+emit_16(2227);
+emit_16(2161);
+emit_16(2228);
+emit_16(2162);
+emit_16(2228);
+emit_16(2161);
+emit_16(2228);
+emit_16(2162);
+emit_16(2229);
+emit_16(2163);
+emit_16(2229);
+emit_16(2162);
+emit_16(2229);
+emit_16(2163);
+emit_16(2230);
+emit_16(2164);
+emit_16(2230);
+emit_16(2163);
+emit_16(2230);
+emit_16(2164);
+emit_16(2231);
+emit_16(2165);
+emit_16(2231);
+emit_16(2164);
+emit_16(2231);
+emit_16(2165);
+emit_16(2232);
+emit_16(2166);
+emit_16(2232);
+emit_16(2165);
+emit_16(2232);
+emit_16(2166);
+emit_16(2233);
+emit_16(2167);
+emit_16(2233);
+emit_16(2166);
+emit_16(2233);
+emit_16(2167);
+emit_16(2234);
+emit_16(2168);
+emit_16(2234);
+emit_16(2167);
+emit_16(2234);
+emit_16(2168);
+emit_16(2235);
+emit_16(2169);
+emit_16(2235);
+emit_16(2168);
+emit_16(2235);
+emit_16(2169);
+emit_16(2236);
+emit_16(2170);
+emit_16(2236);
+emit_16(2169);
+emit_16(2236);
+emit_16(2170);
+emit_16(2237);
+emit_16(2171);
+emit_16(2237);
+emit_16(2170);
+emit_16(2237);
+emit_16(2171);
+emit_16(2238);
+emit_16(2172);
+emit_16(2238);
+emit_16(2171);
+emit_16(2238);
+emit_16(2172);
+emit_16(2239);
+emit_16(2173);
+emit_16(2239);
+emit_16(2172);
+emit_16(2239);
+emit_16(2173);
+emit_16(2240);
+emit_16(2174);
+emit_16(2240);
+emit_16(2173);
+emit_16(2240);
+emit_16(2174);
+emit_16(2241);
+emit_16(2175);
+emit_16(2241);
+emit_16(2174);
+emit_16(2241);
+emit_16(2175);
+emit_16(2242);
+emit_16(2176);
+emit_16(2242);
+emit_16(2175);
+emit_16(2242);
+emit_16(2176);
+emit_16(2243);
+emit_16(2177);
+emit_16(2243);
+emit_16(2176);
+emit_16(2244);
+emit_16(2178);
+emit_16(2245);
+emit_16(2179);
+emit_16(2245);
+emit_16(2178);
+emit_16(2245);
+emit_16(2179);
+emit_16(2246);
+emit_16(2180);
+emit_16(2246);
+emit_16(2179);
+emit_16(2246);
+emit_16(2180);
+emit_16(2247);
+emit_16(2181);
+emit_16(2247);
+emit_16(2180);
+emit_16(2247);
+emit_16(2181);
+emit_16(2248);
+emit_16(2182);
+emit_16(2248);
+emit_16(2181);
+emit_16(2248);
+emit_16(2182);
+emit_16(2249);
+emit_16(2183);
+emit_16(2249);
+emit_16(2182);
+emit_16(2249);
+emit_16(2183);
+emit_16(2250);
+emit_16(2184);
+emit_16(2250);
+emit_16(2183);
+emit_16(2250);
+emit_16(2184);
+emit_16(2251);
+emit_16(2185);
+emit_16(2251);
+emit_16(2184);
+emit_16(2251);
+emit_16(2185);
+emit_16(2252);
+emit_16(2186);
+emit_16(2252);
+emit_16(2185);
+emit_16(2252);
+emit_16(2186);
+emit_16(2253);
+emit_16(2187);
+emit_16(2253);
+emit_16(2186);
+emit_16(2253);
+emit_16(2187);
+emit_16(2254);
+emit_16(2188);
+emit_16(2254);
+emit_16(2187);
+emit_16(2254);
+emit_16(2188);
+emit_16(2255);
+emit_16(2189);
+emit_16(2255);
+emit_16(2188);
+emit_16(2255);
+emit_16(2189);
+emit_16(2256);
+emit_16(2190);
+emit_16(2256);
+emit_16(2189);
+emit_16(2256);
+emit_16(2190);
+emit_16(2257);
+emit_16(2191);
+emit_16(2257);
+emit_16(2190);
+emit_16(2257);
+emit_16(2191);
+emit_16(2258);
+emit_16(2192);
+emit_16(2258);
+emit_16(2191);
+emit_16(2258);
+emit_16(2192);
+emit_16(2259);
+emit_16(2193);
+emit_16(2259);
+emit_16(2192);
+emit_16(2259);
+emit_16(2193);
+emit_16(2260);
+emit_16(2194);
+emit_16(2260);
+emit_16(2193);
+emit_16(2260);
+emit_16(2194);
+emit_16(2261);
+emit_16(2195);
+emit_16(2261);
+emit_16(2194);
+emit_16(2261);
+emit_16(2195);
+emit_16(2262);
+emit_16(2196);
+emit_16(2262);
+emit_16(2195);
+emit_16(2262);
+emit_16(2196);
+emit_16(2263);
+emit_16(2197);
+emit_16(2263);
+emit_16(2196);
+emit_16(2263);
+emit_16(2197);
+emit_16(2264);
+emit_16(2198);
+emit_16(2264);
+emit_16(2197);
+emit_16(2264);
+emit_16(2198);
+emit_16(2265);
+emit_16(2199);
+emit_16(2265);
+emit_16(2198);
+emit_16(2265);
+emit_16(2199);
+emit_16(2266);
+emit_16(2200);
+emit_16(2266);
+emit_16(2199);
+emit_16(2266);
+emit_16(2200);
+emit_16(2267);
+emit_16(2201);
+emit_16(2267);
+emit_16(2200);
+emit_16(2267);
+emit_16(2201);
+emit_16(2268);
+emit_16(2202);
+emit_16(2268);
+emit_16(2201);
+emit_16(2268);
+emit_16(2202);
+emit_16(2269);
+emit_16(2203);
+emit_16(2269);
+emit_16(2202);
+emit_16(2269);
+emit_16(2203);
+emit_16(2270);
+emit_16(2204);
+emit_16(2270);
+emit_16(2203);
+emit_16(2270);
+emit_16(2204);
+emit_16(2271);
+emit_16(2205);
+emit_16(2271);
+emit_16(2204);
+emit_16(2271);
+emit_16(2205);
+emit_16(2272);
+emit_16(2206);
+emit_16(2272);
+emit_16(2205);
+emit_16(2272);
+emit_16(2206);
+emit_16(2273);
+emit_16(2207);
+emit_16(2273);
+emit_16(2206);
+emit_16(2273);
+emit_16(2207);
+emit_16(2274);
+emit_16(2208);
+emit_16(2274);
+emit_16(2207);
+emit_16(2274);
+emit_16(2208);
+emit_16(2275);
+emit_16(2209);
+emit_16(2275);
+emit_16(2208);
+emit_16(2275);
+emit_16(2209);
+emit_16(2276);
+emit_16(2210);
+emit_16(2276);
+emit_16(2209);
+emit_16(2276);
+emit_16(2210);
+emit_16(2277);
+emit_16(2211);
+emit_16(2277);
+emit_16(2210);
+emit_16(2277);
+emit_16(2211);
+emit_16(2278);
+emit_16(2212);
+emit_16(2278);
+emit_16(2211);
+emit_16(2278);
+emit_16(2212);
+emit_16(2279);
+emit_16(2213);
+emit_16(2279);
+emit_16(2212);
+emit_16(2279);
+emit_16(2213);
+emit_16(2280);
+emit_16(2214);
+emit_16(2280);
+emit_16(2213);
+emit_16(2280);
+emit_16(2214);
+emit_16(2281);
+emit_16(2215);
+emit_16(2281);
+emit_16(2214);
+emit_16(2281);
+emit_16(2215);
+emit_16(2282);
+emit_16(2216);
+emit_16(2282);
+emit_16(2215);
+emit_16(2282);
+emit_16(2216);
+emit_16(2283);
+emit_16(2217);
+emit_16(2283);
+emit_16(2216);
+emit_16(2283);
+emit_16(2217);
+emit_16(2284);
+emit_16(2218);
+emit_16(2284);
+emit_16(2217);
+emit_16(2284);
+emit_16(2218);
+emit_16(2285);
+emit_16(2219);
+emit_16(2285);
+emit_16(2218);
+emit_16(2285);
+emit_16(2219);
+emit_16(2286);
+emit_16(2220);
+emit_16(2286);
+emit_16(2219);
+emit_16(2286);
+emit_16(2220);
+emit_16(2287);
+emit_16(2221);
+emit_16(2287);
+emit_16(2220);
+emit_16(2287);
+emit_16(2221);
+emit_16(2288);
+emit_16(2222);
+emit_16(2288);
+emit_16(2221);
+emit_16(2288);
+emit_16(2222);
+emit_16(2289);
+emit_16(2223);
+emit_16(2289);
+emit_16(2222);
+emit_16(2289);
+emit_16(2223);
+emit_16(2290);
+emit_16(2224);
+emit_16(2290);
+emit_16(2223);
+emit_16(2290);
+emit_16(2224);
+emit_16(2291);
+emit_16(2225);
+emit_16(2291);
+emit_16(2224);
+emit_16(2291);
+emit_16(2225);
+emit_16(2292);
+emit_16(2226);
+emit_16(2292);
+emit_16(2225);
+emit_16(2292);
+emit_16(2226);
+emit_16(2293);
+emit_16(2227);
+emit_16(2293);
+emit_16(2226);
+emit_16(2293);
+emit_16(2227);
+emit_16(2294);
+emit_16(2228);
+emit_16(2294);
+emit_16(2227);
+emit_16(2294);
+emit_16(2228);
+emit_16(2295);
+emit_16(2229);
+emit_16(2295);
+emit_16(2228);
+emit_16(2295);
+emit_16(2229);
+emit_16(2296);
+emit_16(2230);
+emit_16(2296);
+emit_16(2229);
+emit_16(2296);
+emit_16(2230);
+emit_16(2297);
+emit_16(2231);
+emit_16(2297);
+emit_16(2230);
+emit_16(2297);
+emit_16(2231);
+emit_16(2298);
+emit_16(2232);
+emit_16(2298);
+emit_16(2231);
+emit_16(2298);
+emit_16(2232);
+emit_16(2299);
+emit_16(2233);
+emit_16(2299);
+emit_16(2232);
+emit_16(2299);
+emit_16(2233);
+emit_16(2300);
+emit_16(2234);
+emit_16(2300);
+emit_16(2233);
+emit_16(2300);
+emit_16(2234);
+emit_16(2301);
+emit_16(2235);
+emit_16(2301);
+emit_16(2234);
+emit_16(2301);
+emit_16(2235);
+emit_16(2302);
+emit_16(2236);
+emit_16(2302);
+emit_16(2235);
+emit_16(2302);
+emit_16(2236);
+emit_16(2303);
+emit_16(2237);
+emit_16(2303);
+emit_16(2236);
+emit_16(2303);
+emit_16(2237);
+emit_16(2304);
+emit_16(2238);
+emit_16(2304);
+emit_16(2237);
+emit_16(2304);
+emit_16(2238);
+emit_16(2305);
+emit_16(2239);
+emit_16(2305);
+emit_16(2238);
+emit_16(2305);
+emit_16(2239);
+emit_16(2306);
+emit_16(2240);
+emit_16(2306);
+emit_16(2239);
+emit_16(2306);
+emit_16(2240);
+emit_16(2307);
+emit_16(2241);
+emit_16(2307);
+emit_16(2240);
+emit_16(2307);
+emit_16(2241);
+emit_16(2308);
+emit_16(2242);
+emit_16(2308);
+emit_16(2241);
+emit_16(2308);
+emit_16(2242);
+emit_16(2309);
+emit_16(2243);
+emit_16(2309);
+emit_16(2242);
+emit_start(Landscape07Idx)
+emit_16(0);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(2);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(4);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(6);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(8);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(10);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(12);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(14);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(16);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(18);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(20);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(22);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(24);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(26);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(28);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(30);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(32);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(34);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(36);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(38);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(40);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(42);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(44);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(46);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(48);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(50);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(52);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(54);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(56);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(58);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(60);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(62);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(64);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(66);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(68);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(70);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(72);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(74);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(76);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(78);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(80);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(82);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(84);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(86);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(88);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(90);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(92);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(94);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(96);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(98);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(100);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(102);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(104);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(106);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(108);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(110);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(112);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(114);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(116);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(118);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(120);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(122);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(124);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(126);
+emit_16(125);
+emit_16(128);
+emit_16(0);
+emit_16(129);
+emit_16(2);
+emit_16(129);
+emit_16(0);
+emit_16(129);
+emit_16(2);
+emit_16(130);
+emit_16(4);
+emit_16(130);
+emit_16(2);
+emit_16(130);
+emit_16(4);
+emit_16(131);
+emit_16(6);
+emit_16(131);
+emit_16(4);
+emit_16(131);
+emit_16(6);
+emit_16(132);
+emit_16(8);
+emit_16(132);
+emit_16(6);
+emit_16(132);
+emit_16(8);
+emit_16(133);
+emit_16(10);
+emit_16(133);
+emit_16(8);
+emit_16(133);
+emit_16(10);
+emit_16(134);
+emit_16(12);
+emit_16(134);
+emit_16(10);
+emit_16(134);
+emit_16(12);
+emit_16(135);
+emit_16(14);
+emit_16(135);
+emit_16(12);
+emit_16(135);
+emit_16(14);
+emit_16(136);
+emit_16(16);
+emit_16(136);
+emit_16(14);
+emit_16(136);
+emit_16(16);
+emit_16(137);
+emit_16(18);
+emit_16(137);
+emit_16(16);
+emit_16(137);
+emit_16(18);
+emit_16(138);
+emit_16(20);
+emit_16(138);
+emit_16(18);
+emit_16(138);
+emit_16(20);
+emit_16(139);
+emit_16(22);
+emit_16(139);
+emit_16(20);
+emit_16(139);
+emit_16(22);
+emit_16(140);
+emit_16(24);
+emit_16(140);
+emit_16(22);
+emit_16(140);
+emit_16(24);
+emit_16(141);
+emit_16(26);
+emit_16(141);
+emit_16(24);
+emit_16(141);
+emit_16(26);
+emit_16(142);
+emit_16(28);
+emit_16(142);
+emit_16(26);
+emit_16(142);
+emit_16(28);
+emit_16(143);
+emit_16(30);
+emit_16(143);
+emit_16(28);
+emit_16(143);
+emit_16(30);
+emit_16(144);
+emit_16(32);
+emit_16(144);
+emit_16(30);
+emit_16(144);
+emit_16(32);
+emit_16(145);
+emit_16(34);
+emit_16(145);
+emit_16(32);
+emit_16(145);
+emit_16(34);
+emit_16(146);
+emit_16(36);
+emit_16(146);
+emit_16(34);
+emit_16(146);
+emit_16(36);
+emit_16(147);
+emit_16(38);
+emit_16(147);
+emit_16(36);
+emit_16(147);
+emit_16(38);
+emit_16(148);
+emit_16(40);
+emit_16(148);
+emit_16(38);
+emit_16(148);
+emit_16(40);
+emit_16(149);
+emit_16(42);
+emit_16(149);
+emit_16(40);
+emit_16(149);
+emit_16(42);
+emit_16(150);
+emit_16(44);
+emit_16(150);
+emit_16(42);
+emit_16(150);
+emit_16(44);
+emit_16(151);
+emit_16(46);
+emit_16(151);
+emit_16(44);
+emit_16(151);
+emit_16(46);
+emit_16(152);
+emit_16(48);
+emit_16(152);
+emit_16(46);
+emit_16(152);
+emit_16(48);
+emit_16(153);
+emit_16(50);
+emit_16(153);
+emit_16(48);
+emit_16(153);
+emit_16(50);
+emit_16(154);
+emit_16(52);
+emit_16(154);
+emit_16(50);
+emit_16(154);
+emit_16(52);
+emit_16(155);
+emit_16(54);
+emit_16(155);
+emit_16(52);
+emit_16(155);
+emit_16(54);
+emit_16(156);
+emit_16(56);
+emit_16(156);
+emit_16(54);
+emit_16(156);
+emit_16(56);
+emit_16(157);
+emit_16(58);
+emit_16(157);
+emit_16(56);
+emit_16(157);
+emit_16(58);
+emit_16(158);
+emit_16(60);
+emit_16(158);
+emit_16(58);
+emit_16(158);
+emit_16(60);
+emit_16(159);
+emit_16(62);
+emit_16(159);
+emit_16(60);
+emit_16(159);
+emit_16(62);
+emit_16(160);
+emit_16(64);
+emit_16(160);
+emit_16(62);
+emit_16(160);
+emit_16(64);
+emit_16(161);
+emit_16(66);
+emit_16(161);
+emit_16(64);
+emit_16(161);
+emit_16(66);
+emit_16(162);
+emit_16(68);
+emit_16(162);
+emit_16(66);
+emit_16(162);
+emit_16(68);
+emit_16(163);
+emit_16(70);
+emit_16(163);
+emit_16(68);
+emit_16(163);
+emit_16(70);
+emit_16(164);
+emit_16(72);
+emit_16(164);
+emit_16(70);
+emit_16(164);
+emit_16(72);
+emit_16(165);
+emit_16(74);
+emit_16(165);
+emit_16(72);
+emit_16(165);
+emit_16(74);
+emit_16(166);
+emit_16(76);
+emit_16(166);
+emit_16(74);
+emit_16(166);
+emit_16(76);
+emit_16(167);
+emit_16(78);
+emit_16(167);
+emit_16(76);
+emit_16(167);
+emit_16(78);
+emit_16(168);
+emit_16(80);
+emit_16(168);
+emit_16(78);
+emit_16(168);
+emit_16(80);
+emit_16(169);
+emit_16(82);
+emit_16(169);
+emit_16(80);
+emit_16(169);
+emit_16(82);
+emit_16(170);
+emit_16(84);
+emit_16(170);
+emit_16(82);
+emit_16(170);
+emit_16(84);
+emit_16(171);
+emit_16(86);
+emit_16(171);
+emit_16(84);
+emit_16(171);
+emit_16(86);
+emit_16(172);
+emit_16(88);
+emit_16(172);
+emit_16(86);
+emit_16(172);
+emit_16(88);
+emit_16(173);
+emit_16(90);
+emit_16(173);
+emit_16(88);
+emit_16(173);
+emit_16(90);
+emit_16(174);
+emit_16(92);
+emit_16(174);
+emit_16(90);
+emit_16(174);
+emit_16(92);
+emit_16(175);
+emit_16(94);
+emit_16(175);
+emit_16(92);
+emit_16(175);
+emit_16(94);
+emit_16(176);
+emit_16(96);
+emit_16(176);
+emit_16(94);
+emit_16(176);
+emit_16(96);
+emit_16(177);
+emit_16(98);
+emit_16(177);
+emit_16(96);
+emit_16(177);
+emit_16(98);
+emit_16(178);
+emit_16(100);
+emit_16(178);
+emit_16(98);
+emit_16(178);
+emit_16(100);
+emit_16(179);
+emit_16(102);
+emit_16(179);
+emit_16(100);
+emit_16(179);
+emit_16(102);
+emit_16(180);
+emit_16(104);
+emit_16(180);
+emit_16(102);
+emit_16(180);
+emit_16(104);
+emit_16(181);
+emit_16(106);
+emit_16(181);
+emit_16(104);
+emit_16(181);
+emit_16(106);
+emit_16(182);
+emit_16(108);
+emit_16(182);
+emit_16(106);
+emit_16(182);
+emit_16(108);
+emit_16(183);
+emit_16(110);
+emit_16(183);
+emit_16(108);
+emit_16(183);
+emit_16(110);
+emit_16(184);
+emit_16(112);
+emit_16(184);
+emit_16(110);
+emit_16(184);
+emit_16(112);
+emit_16(185);
+emit_16(114);
+emit_16(185);
+emit_16(112);
+emit_16(185);
+emit_16(114);
+emit_16(186);
+emit_16(116);
+emit_16(186);
+emit_16(114);
+emit_16(186);
+emit_16(116);
+emit_16(187);
+emit_16(118);
+emit_16(187);
+emit_16(116);
+emit_16(187);
+emit_16(118);
+emit_16(188);
+emit_16(120);
+emit_16(188);
+emit_16(118);
+emit_16(188);
+emit_16(120);
+emit_16(189);
+emit_16(122);
+emit_16(189);
+emit_16(120);
+emit_16(189);
+emit_16(122);
+emit_16(190);
+emit_16(124);
+emit_16(190);
+emit_16(122);
+emit_16(190);
+emit_16(124);
+emit_16(191);
+emit_16(126);
+emit_16(191);
+emit_16(124);
+emit_16(192);
+emit_16(128);
+emit_16(193);
+emit_16(129);
+emit_16(193);
+emit_16(128);
+emit_16(193);
+emit_16(129);
+emit_16(194);
+emit_16(130);
+emit_16(194);
+emit_16(129);
+emit_16(194);
+emit_16(130);
+emit_16(195);
+emit_16(131);
+emit_16(195);
+emit_16(130);
+emit_16(195);
+emit_16(131);
+emit_16(196);
+emit_16(132);
+emit_16(196);
+emit_16(131);
+emit_16(196);
+emit_16(132);
+emit_16(197);
+emit_16(133);
+emit_16(197);
+emit_16(132);
+emit_16(197);
+emit_16(133);
+emit_16(198);
+emit_16(134);
+emit_16(198);
+emit_16(133);
+emit_16(198);
+emit_16(134);
+emit_16(199);
+emit_16(135);
+emit_16(199);
+emit_16(134);
+emit_16(199);
+emit_16(135);
+emit_16(200);
+emit_16(136);
+emit_16(200);
+emit_16(135);
+emit_16(200);
+emit_16(136);
+emit_16(201);
+emit_16(137);
+emit_16(201);
+emit_16(136);
+emit_16(201);
+emit_16(137);
+emit_16(202);
+emit_16(138);
+emit_16(202);
+emit_16(137);
+emit_16(202);
+emit_16(138);
+emit_16(203);
+emit_16(139);
+emit_16(203);
+emit_16(138);
+emit_16(203);
+emit_16(139);
+emit_16(204);
+emit_16(140);
+emit_16(204);
+emit_16(139);
+emit_16(204);
+emit_16(140);
+emit_16(205);
+emit_16(141);
+emit_16(205);
+emit_16(140);
+emit_16(205);
+emit_16(141);
+emit_16(206);
+emit_16(142);
+emit_16(206);
+emit_16(141);
+emit_16(206);
+emit_16(142);
+emit_16(207);
+emit_16(143);
+emit_16(207);
+emit_16(142);
+emit_16(207);
+emit_16(143);
+emit_16(208);
+emit_16(144);
+emit_16(208);
+emit_16(143);
+emit_16(208);
+emit_16(144);
+emit_16(209);
+emit_16(145);
+emit_16(209);
+emit_16(144);
+emit_16(209);
+emit_16(145);
+emit_16(210);
+emit_16(146);
+emit_16(210);
+emit_16(145);
+emit_16(210);
+emit_16(146);
+emit_16(211);
+emit_16(147);
+emit_16(211);
+emit_16(146);
+emit_16(211);
+emit_16(147);
+emit_16(212);
+emit_16(148);
+emit_16(212);
+emit_16(147);
+emit_16(212);
+emit_16(148);
+emit_16(213);
+emit_16(149);
+emit_16(213);
+emit_16(148);
+emit_16(213);
+emit_16(149);
+emit_16(214);
+emit_16(150);
+emit_16(214);
+emit_16(149);
+emit_16(214);
+emit_16(150);
+emit_16(215);
+emit_16(151);
+emit_16(215);
+emit_16(150);
+emit_16(215);
+emit_16(151);
+emit_16(216);
+emit_16(152);
+emit_16(216);
+emit_16(151);
+emit_16(216);
+emit_16(152);
+emit_16(217);
+emit_16(153);
+emit_16(217);
+emit_16(152);
+emit_16(217);
+emit_16(153);
+emit_16(218);
+emit_16(154);
+emit_16(218);
+emit_16(153);
+emit_16(218);
+emit_16(154);
+emit_16(219);
+emit_16(155);
+emit_16(219);
+emit_16(154);
+emit_16(219);
+emit_16(155);
+emit_16(220);
+emit_16(156);
+emit_16(220);
+emit_16(155);
+emit_16(220);
+emit_16(156);
+emit_16(221);
+emit_16(157);
+emit_16(221);
+emit_16(156);
+emit_16(221);
+emit_16(157);
+emit_16(222);
+emit_16(158);
+emit_16(222);
+emit_16(157);
+emit_16(222);
+emit_16(158);
+emit_16(223);
+emit_16(159);
+emit_16(223);
+emit_16(158);
+emit_16(223);
+emit_16(159);
+emit_16(224);
+emit_16(160);
+emit_16(224);
+emit_16(159);
+emit_16(224);
+emit_16(160);
+emit_16(225);
+emit_16(161);
+emit_16(225);
+emit_16(160);
+emit_16(225);
+emit_16(161);
+emit_16(226);
+emit_16(162);
+emit_16(226);
+emit_16(161);
+emit_16(226);
+emit_16(162);
+emit_16(227);
+emit_16(163);
+emit_16(227);
+emit_16(162);
+emit_16(227);
+emit_16(163);
+emit_16(228);
+emit_16(164);
+emit_16(228);
+emit_16(163);
+emit_16(228);
+emit_16(164);
+emit_16(229);
+emit_16(165);
+emit_16(229);
+emit_16(164);
+emit_16(229);
+emit_16(165);
+emit_16(230);
+emit_16(166);
+emit_16(230);
+emit_16(165);
+emit_16(230);
+emit_16(166);
+emit_16(231);
+emit_16(167);
+emit_16(231);
+emit_16(166);
+emit_16(231);
+emit_16(167);
+emit_16(232);
+emit_16(168);
+emit_16(232);
+emit_16(167);
+emit_16(232);
+emit_16(168);
+emit_16(233);
+emit_16(169);
+emit_16(233);
+emit_16(168);
+emit_16(233);
+emit_16(169);
+emit_16(234);
+emit_16(170);
+emit_16(234);
+emit_16(169);
+emit_16(234);
+emit_16(170);
+emit_16(235);
+emit_16(171);
+emit_16(235);
+emit_16(170);
+emit_16(235);
+emit_16(171);
+emit_16(236);
+emit_16(172);
+emit_16(236);
+emit_16(171);
+emit_16(236);
+emit_16(172);
+emit_16(237);
+emit_16(173);
+emit_16(237);
+emit_16(172);
+emit_16(237);
+emit_16(173);
+emit_16(238);
+emit_16(174);
+emit_16(238);
+emit_16(173);
+emit_16(238);
+emit_16(174);
+emit_16(239);
+emit_16(175);
+emit_16(239);
+emit_16(174);
+emit_16(239);
+emit_16(175);
+emit_16(240);
+emit_16(176);
+emit_16(240);
+emit_16(175);
+emit_16(240);
+emit_16(176);
+emit_16(241);
+emit_16(177);
+emit_16(241);
+emit_16(176);
+emit_16(241);
+emit_16(177);
+emit_16(242);
+emit_16(178);
+emit_16(242);
+emit_16(177);
+emit_16(242);
+emit_16(178);
+emit_16(243);
+emit_16(179);
+emit_16(243);
+emit_16(178);
+emit_16(243);
+emit_16(179);
+emit_16(244);
+emit_16(180);
+emit_16(244);
+emit_16(179);
+emit_16(244);
+emit_16(180);
+emit_16(245);
+emit_16(181);
+emit_16(245);
+emit_16(180);
+emit_16(245);
+emit_16(181);
+emit_16(246);
+emit_16(182);
+emit_16(246);
+emit_16(181);
+emit_16(246);
+emit_16(182);
+emit_16(247);
+emit_16(183);
+emit_16(247);
+emit_16(182);
+emit_16(247);
+emit_16(183);
+emit_16(248);
+emit_16(184);
+emit_16(248);
+emit_16(183);
+emit_16(248);
+emit_16(184);
+emit_16(249);
+emit_16(185);
+emit_16(249);
+emit_16(184);
+emit_16(249);
+emit_16(185);
+emit_16(250);
+emit_16(186);
+emit_16(250);
+emit_16(185);
+emit_16(250);
+emit_16(186);
+emit_16(251);
+emit_16(187);
+emit_16(251);
+emit_16(186);
+emit_16(251);
+emit_16(187);
+emit_16(252);
+emit_16(188);
+emit_16(252);
+emit_16(187);
+emit_16(252);
+emit_16(188);
+emit_16(253);
+emit_16(189);
+emit_16(253);
+emit_16(188);
+emit_16(253);
+emit_16(189);
+emit_16(254);
+emit_16(190);
+emit_16(254);
+emit_16(189);
+emit_16(254);
+emit_16(190);
+emit_16(255);
+emit_16(191);
+emit_16(255);
+emit_16(190);
+emit_16(256);
+emit_16(192);
+emit_16(257);
+emit_16(193);
+emit_16(257);
+emit_16(192);
+emit_16(257);
+emit_16(193);
+emit_16(258);
+emit_16(194);
+emit_16(258);
+emit_16(193);
+emit_16(258);
+emit_16(194);
+emit_16(259);
+emit_16(195);
+emit_16(259);
+emit_16(194);
+emit_16(259);
+emit_16(195);
+emit_16(260);
+emit_16(196);
+emit_16(260);
+emit_16(195);
+emit_16(260);
+emit_16(196);
+emit_16(261);
+emit_16(197);
+emit_16(261);
+emit_16(196);
+emit_16(261);
+emit_16(197);
+emit_16(262);
+emit_16(198);
+emit_16(262);
+emit_16(197);
+emit_16(262);
+emit_16(198);
+emit_16(263);
+emit_16(199);
+emit_16(263);
+emit_16(198);
+emit_16(263);
+emit_16(199);
+emit_16(264);
+emit_16(200);
+emit_16(264);
+emit_16(199);
+emit_16(264);
+emit_16(200);
+emit_16(265);
+emit_16(201);
+emit_16(265);
+emit_16(200);
+emit_16(265);
+emit_16(201);
+emit_16(266);
+emit_16(202);
+emit_16(266);
+emit_16(201);
+emit_16(266);
+emit_16(202);
+emit_16(267);
+emit_16(203);
+emit_16(267);
+emit_16(202);
+emit_16(267);
+emit_16(203);
+emit_16(268);
+emit_16(204);
+emit_16(268);
+emit_16(203);
+emit_16(268);
+emit_16(204);
+emit_16(269);
+emit_16(205);
+emit_16(269);
+emit_16(204);
+emit_16(269);
+emit_16(205);
+emit_16(270);
+emit_16(206);
+emit_16(270);
+emit_16(205);
+emit_16(270);
+emit_16(206);
+emit_16(271);
+emit_16(207);
+emit_16(271);
+emit_16(206);
+emit_16(271);
+emit_16(207);
+emit_16(272);
+emit_16(208);
+emit_16(272);
+emit_16(207);
+emit_16(272);
+emit_16(208);
+emit_16(273);
+emit_16(209);
+emit_16(273);
+emit_16(208);
+emit_16(273);
+emit_16(209);
+emit_16(274);
+emit_16(210);
+emit_16(274);
+emit_16(209);
+emit_16(274);
+emit_16(210);
+emit_16(275);
+emit_16(211);
+emit_16(275);
+emit_16(210);
+emit_16(275);
+emit_16(211);
+emit_16(276);
+emit_16(212);
+emit_16(276);
+emit_16(211);
+emit_16(276);
+emit_16(212);
+emit_16(277);
+emit_16(213);
+emit_16(277);
+emit_16(212);
+emit_16(277);
+emit_16(213);
+emit_16(278);
+emit_16(214);
+emit_16(278);
+emit_16(213);
+emit_16(278);
+emit_16(214);
+emit_16(279);
+emit_16(215);
+emit_16(279);
+emit_16(214);
+emit_16(279);
+emit_16(215);
+emit_16(280);
+emit_16(216);
+emit_16(280);
+emit_16(215);
+emit_16(280);
+emit_16(216);
+emit_16(281);
+emit_16(217);
+emit_16(281);
+emit_16(216);
+emit_16(281);
+emit_16(217);
+emit_16(282);
+emit_16(218);
+emit_16(282);
+emit_16(217);
+emit_16(282);
+emit_16(218);
+emit_16(283);
+emit_16(219);
+emit_16(283);
+emit_16(218);
+emit_16(283);
+emit_16(219);
+emit_16(284);
+emit_16(220);
+emit_16(284);
+emit_16(219);
+emit_16(284);
+emit_16(220);
+emit_16(285);
+emit_16(221);
+emit_16(285);
+emit_16(220);
+emit_16(285);
+emit_16(221);
+emit_16(286);
+emit_16(222);
+emit_16(286);
+emit_16(221);
+emit_16(286);
+emit_16(222);
+emit_16(287);
+emit_16(223);
+emit_16(287);
+emit_16(222);
+emit_16(287);
+emit_16(223);
+emit_16(288);
+emit_16(224);
+emit_16(288);
+emit_16(223);
+emit_16(288);
+emit_16(224);
+emit_16(289);
+emit_16(225);
+emit_16(289);
+emit_16(224);
+emit_16(289);
+emit_16(225);
+emit_16(290);
+emit_16(226);
+emit_16(290);
+emit_16(225);
+emit_16(290);
+emit_16(226);
+emit_16(291);
+emit_16(227);
+emit_16(291);
+emit_16(226);
+emit_16(291);
+emit_16(227);
+emit_16(292);
+emit_16(228);
+emit_16(292);
+emit_16(227);
+emit_16(292);
+emit_16(228);
+emit_16(293);
+emit_16(229);
+emit_16(293);
+emit_16(228);
+emit_16(293);
+emit_16(229);
+emit_16(294);
+emit_16(230);
+emit_16(294);
+emit_16(229);
+emit_16(294);
+emit_16(230);
+emit_16(295);
+emit_16(231);
+emit_16(295);
+emit_16(230);
+emit_16(295);
+emit_16(231);
+emit_16(296);
+emit_16(232);
+emit_16(296);
+emit_16(231);
+emit_16(296);
+emit_16(232);
+emit_16(297);
+emit_16(233);
+emit_16(297);
+emit_16(232);
+emit_16(297);
+emit_16(233);
+emit_16(298);
+emit_16(234);
+emit_16(298);
+emit_16(233);
+emit_16(298);
+emit_16(234);
+emit_16(299);
+emit_16(235);
+emit_16(299);
+emit_16(234);
+emit_16(299);
+emit_16(235);
+emit_16(300);
+emit_16(236);
+emit_16(300);
+emit_16(235);
+emit_16(300);
+emit_16(236);
+emit_16(301);
+emit_16(237);
+emit_16(301);
+emit_16(236);
+emit_16(301);
+emit_16(237);
+emit_16(302);
+emit_16(238);
+emit_16(302);
+emit_16(237);
+emit_16(302);
+emit_16(238);
+emit_16(303);
+emit_16(239);
+emit_16(303);
+emit_16(238);
+emit_16(303);
+emit_16(239);
+emit_16(304);
+emit_16(240);
+emit_16(304);
+emit_16(239);
+emit_16(304);
+emit_16(240);
+emit_16(305);
+emit_16(241);
+emit_16(305);
+emit_16(240);
+emit_16(305);
+emit_16(241);
+emit_16(306);
+emit_16(242);
+emit_16(306);
+emit_16(241);
+emit_16(306);
+emit_16(242);
+emit_16(307);
+emit_16(243);
+emit_16(307);
+emit_16(242);
+emit_16(307);
+emit_16(243);
+emit_16(308);
+emit_16(244);
+emit_16(308);
+emit_16(243);
+emit_16(308);
+emit_16(244);
+emit_16(309);
+emit_16(245);
+emit_16(309);
+emit_16(244);
+emit_16(309);
+emit_16(245);
+emit_16(310);
+emit_16(246);
+emit_16(310);
+emit_16(245);
+emit_16(310);
+emit_16(246);
+emit_16(311);
+emit_16(247);
+emit_16(311);
+emit_16(246);
+emit_16(311);
+emit_16(247);
+emit_16(312);
+emit_16(248);
+emit_16(312);
+emit_16(247);
+emit_16(312);
+emit_16(248);
+emit_16(313);
+emit_16(249);
+emit_16(313);
+emit_16(248);
+emit_16(313);
+emit_16(249);
+emit_16(314);
+emit_16(250);
+emit_16(314);
+emit_16(249);
+emit_16(314);
+emit_16(250);
+emit_16(315);
+emit_16(251);
+emit_16(315);
+emit_16(250);
+emit_16(315);
+emit_16(251);
+emit_16(316);
+emit_16(252);
+emit_16(316);
+emit_16(251);
+emit_16(316);
+emit_16(252);
+emit_16(317);
+emit_16(253);
+emit_16(317);
+emit_16(252);
+emit_16(317);
+emit_16(253);
+emit_16(318);
+emit_16(254);
+emit_16(318);
+emit_16(253);
+emit_16(318);
+emit_16(254);
+emit_16(319);
+emit_16(255);
+emit_16(319);
+emit_16(254);
+emit_16(320);
+emit_16(256);
+emit_16(321);
+emit_16(257);
+emit_16(321);
+emit_16(256);
+emit_16(321);
+emit_16(257);
+emit_16(322);
+emit_16(258);
+emit_16(322);
+emit_16(257);
+emit_16(322);
+emit_16(258);
+emit_16(323);
+emit_16(259);
+emit_16(323);
+emit_16(258);
+emit_16(323);
+emit_16(259);
+emit_16(324);
+emit_16(260);
+emit_16(324);
+emit_16(259);
+emit_16(324);
+emit_16(260);
+emit_16(325);
+emit_16(261);
+emit_16(325);
+emit_16(260);
+emit_16(325);
+emit_16(261);
+emit_16(326);
+emit_16(262);
+emit_16(326);
+emit_16(261);
+emit_16(326);
+emit_16(262);
+emit_16(327);
+emit_16(263);
+emit_16(327);
+emit_16(262);
+emit_16(327);
+emit_16(263);
+emit_16(328);
+emit_16(264);
+emit_16(328);
+emit_16(263);
+emit_16(328);
+emit_16(264);
+emit_16(329);
+emit_16(265);
+emit_16(329);
+emit_16(264);
+emit_16(329);
+emit_16(265);
+emit_16(330);
+emit_16(266);
+emit_16(330);
+emit_16(265);
+emit_16(330);
+emit_16(266);
+emit_16(331);
+emit_16(267);
+emit_16(331);
+emit_16(266);
+emit_16(331);
+emit_16(267);
+emit_16(332);
+emit_16(268);
+emit_16(332);
+emit_16(267);
+emit_16(332);
+emit_16(268);
+emit_16(333);
+emit_16(269);
+emit_16(333);
+emit_16(268);
+emit_16(333);
+emit_16(269);
+emit_16(334);
+emit_16(270);
+emit_16(334);
+emit_16(269);
+emit_16(334);
+emit_16(270);
+emit_16(335);
+emit_16(271);
+emit_16(335);
+emit_16(270);
+emit_16(335);
+emit_16(271);
+emit_16(336);
+emit_16(272);
+emit_16(336);
+emit_16(271);
+emit_16(336);
+emit_16(272);
+emit_16(337);
+emit_16(273);
+emit_16(337);
+emit_16(272);
+emit_16(337);
+emit_16(273);
+emit_16(338);
+emit_16(274);
+emit_16(338);
+emit_16(273);
+emit_16(338);
+emit_16(274);
+emit_16(339);
+emit_16(275);
+emit_16(339);
+emit_16(274);
+emit_16(339);
+emit_16(275);
+emit_16(340);
+emit_16(276);
+emit_16(340);
+emit_16(275);
+emit_16(340);
+emit_16(276);
+emit_16(341);
+emit_16(277);
+emit_16(341);
+emit_16(276);
+emit_16(341);
+emit_16(277);
+emit_16(342);
+emit_16(278);
+emit_16(342);
+emit_16(277);
+emit_16(342);
+emit_16(278);
+emit_16(343);
+emit_16(279);
+emit_16(343);
+emit_16(278);
+emit_16(343);
+emit_16(279);
+emit_16(344);
+emit_16(280);
+emit_16(344);
+emit_16(279);
+emit_16(344);
+emit_16(280);
+emit_16(345);
+emit_16(281);
+emit_16(345);
+emit_16(280);
+emit_16(345);
+emit_16(281);
+emit_16(346);
+emit_16(282);
+emit_16(346);
+emit_16(281);
+emit_16(346);
+emit_16(282);
+emit_16(347);
+emit_16(283);
+emit_16(347);
+emit_16(282);
+emit_16(347);
+emit_16(283);
+emit_16(348);
+emit_16(284);
+emit_16(348);
+emit_16(283);
+emit_16(348);
+emit_16(284);
+emit_16(349);
+emit_16(285);
+emit_16(349);
+emit_16(284);
+emit_16(349);
+emit_16(285);
+emit_16(350);
+emit_16(286);
+emit_16(350);
+emit_16(285);
+emit_16(350);
+emit_16(286);
+emit_16(351);
+emit_16(287);
+emit_16(351);
+emit_16(286);
+emit_16(351);
+emit_16(287);
+emit_16(352);
+emit_16(288);
+emit_16(352);
+emit_16(287);
+emit_16(352);
+emit_16(288);
+emit_16(353);
+emit_16(289);
+emit_16(353);
+emit_16(288);
+emit_16(353);
+emit_16(289);
+emit_16(354);
+emit_16(290);
+emit_16(354);
+emit_16(289);
+emit_16(354);
+emit_16(290);
+emit_16(355);
+emit_16(291);
+emit_16(355);
+emit_16(290);
+emit_16(355);
+emit_16(291);
+emit_16(356);
+emit_16(292);
+emit_16(356);
+emit_16(291);
+emit_16(356);
+emit_16(292);
+emit_16(357);
+emit_16(293);
+emit_16(357);
+emit_16(292);
+emit_16(357);
+emit_16(293);
+emit_16(358);
+emit_16(294);
+emit_16(358);
+emit_16(293);
+emit_16(358);
+emit_16(294);
+emit_16(359);
+emit_16(295);
+emit_16(359);
+emit_16(294);
+emit_16(359);
+emit_16(295);
+emit_16(360);
+emit_16(296);
+emit_16(360);
+emit_16(295);
+emit_16(360);
+emit_16(296);
+emit_16(361);
+emit_16(297);
+emit_16(361);
+emit_16(296);
+emit_16(361);
+emit_16(297);
+emit_16(362);
+emit_16(298);
+emit_16(362);
+emit_16(297);
+emit_16(362);
+emit_16(298);
+emit_16(363);
+emit_16(299);
+emit_16(363);
+emit_16(298);
+emit_16(363);
+emit_16(299);
+emit_16(364);
+emit_16(300);
+emit_16(364);
+emit_16(299);
+emit_16(364);
+emit_16(300);
+emit_16(365);
+emit_16(301);
+emit_16(365);
+emit_16(300);
+emit_16(365);
+emit_16(301);
+emit_16(366);
+emit_16(302);
+emit_16(366);
+emit_16(301);
+emit_16(366);
+emit_16(302);
+emit_16(367);
+emit_16(303);
+emit_16(367);
+emit_16(302);
+emit_16(367);
+emit_16(303);
+emit_16(368);
+emit_16(304);
+emit_16(368);
+emit_16(303);
+emit_16(368);
+emit_16(304);
+emit_16(369);
+emit_16(305);
+emit_16(369);
+emit_16(304);
+emit_16(369);
+emit_16(305);
+emit_16(370);
+emit_16(306);
+emit_16(370);
+emit_16(305);
+emit_16(370);
+emit_16(306);
+emit_16(371);
+emit_16(307);
+emit_16(371);
+emit_16(306);
+emit_16(371);
+emit_16(307);
+emit_16(372);
+emit_16(308);
+emit_16(372);
+emit_16(307);
+emit_16(372);
+emit_16(308);
+emit_16(373);
+emit_16(309);
+emit_16(373);
+emit_16(308);
+emit_16(373);
+emit_16(309);
+emit_16(374);
+emit_16(310);
+emit_16(374);
+emit_16(309);
+emit_16(374);
+emit_16(310);
+emit_16(375);
+emit_16(311);
+emit_16(375);
+emit_16(310);
+emit_16(375);
+emit_16(311);
+emit_16(376);
+emit_16(312);
+emit_16(376);
+emit_16(311);
+emit_16(376);
+emit_16(312);
+emit_16(377);
+emit_16(313);
+emit_16(377);
+emit_16(312);
+emit_16(377);
+emit_16(313);
+emit_16(378);
+emit_16(314);
+emit_16(378);
+emit_16(313);
+emit_16(378);
+emit_16(314);
+emit_16(379);
+emit_16(315);
+emit_16(379);
+emit_16(314);
+emit_16(379);
+emit_16(315);
+emit_16(380);
+emit_16(316);
+emit_16(380);
+emit_16(315);
+emit_16(380);
+emit_16(316);
+emit_16(381);
+emit_16(317);
+emit_16(381);
+emit_16(316);
+emit_16(381);
+emit_16(317);
+emit_16(382);
+emit_16(318);
+emit_16(382);
+emit_16(317);
+emit_16(382);
+emit_16(318);
+emit_16(383);
+emit_16(319);
+emit_16(383);
+emit_16(318);
+emit_16(384);
+emit_16(320);
+emit_16(385);
+emit_16(321);
+emit_16(385);
+emit_16(320);
+emit_16(385);
+emit_16(321);
+emit_16(386);
+emit_16(322);
+emit_16(386);
+emit_16(321);
+emit_16(386);
+emit_16(322);
+emit_16(387);
+emit_16(323);
+emit_16(387);
+emit_16(322);
+emit_16(387);
+emit_16(323);
+emit_16(388);
+emit_16(324);
+emit_16(388);
+emit_16(323);
+emit_16(388);
+emit_16(324);
+emit_16(389);
+emit_16(325);
+emit_16(389);
+emit_16(324);
+emit_16(389);
+emit_16(325);
+emit_16(390);
+emit_16(326);
+emit_16(390);
+emit_16(325);
+emit_16(390);
+emit_16(326);
+emit_16(391);
+emit_16(327);
+emit_16(391);
+emit_16(326);
+emit_16(391);
+emit_16(327);
+emit_16(392);
+emit_16(328);
+emit_16(392);
+emit_16(327);
+emit_16(392);
+emit_16(328);
+emit_16(393);
+emit_16(329);
+emit_16(393);
+emit_16(328);
+emit_16(393);
+emit_16(329);
+emit_16(394);
+emit_16(330);
+emit_16(394);
+emit_16(329);
+emit_16(394);
+emit_16(330);
+emit_16(395);
+emit_16(331);
+emit_16(395);
+emit_16(330);
+emit_16(395);
+emit_16(331);
+emit_16(396);
+emit_16(332);
+emit_16(396);
+emit_16(331);
+emit_16(396);
+emit_16(332);
+emit_16(397);
+emit_16(333);
+emit_16(397);
+emit_16(332);
+emit_16(397);
+emit_16(333);
+emit_16(398);
+emit_16(334);
+emit_16(398);
+emit_16(333);
+emit_16(398);
+emit_16(334);
+emit_16(399);
+emit_16(335);
+emit_16(399);
+emit_16(334);
+emit_16(399);
+emit_16(335);
+emit_16(400);
+emit_16(336);
+emit_16(400);
+emit_16(335);
+emit_16(400);
+emit_16(336);
+emit_16(401);
+emit_16(337);
+emit_16(401);
+emit_16(336);
+emit_16(401);
+emit_16(337);
+emit_16(402);
+emit_16(338);
+emit_16(402);
+emit_16(337);
+emit_16(402);
+emit_16(338);
+emit_16(403);
+emit_16(339);
+emit_16(403);
+emit_16(338);
+emit_16(403);
+emit_16(339);
+emit_16(404);
+emit_16(340);
+emit_16(404);
+emit_16(339);
+emit_16(404);
+emit_16(340);
+emit_16(405);
+emit_16(341);
+emit_16(405);
+emit_16(340);
+emit_16(405);
+emit_16(341);
+emit_16(406);
+emit_16(342);
+emit_16(406);
+emit_16(341);
+emit_16(406);
+emit_16(342);
+emit_16(407);
+emit_16(343);
+emit_16(407);
+emit_16(342);
+emit_16(407);
+emit_16(343);
+emit_16(408);
+emit_16(344);
+emit_16(408);
+emit_16(343);
+emit_16(408);
+emit_16(344);
+emit_16(409);
+emit_16(345);
+emit_16(409);
+emit_16(344);
+emit_16(409);
+emit_16(345);
+emit_16(410);
+emit_16(346);
+emit_16(410);
+emit_16(345);
+emit_16(410);
+emit_16(346);
+emit_16(411);
+emit_16(347);
+emit_16(411);
+emit_16(346);
+emit_16(411);
+emit_16(347);
+emit_16(412);
+emit_16(348);
+emit_16(412);
+emit_16(347);
+emit_16(412);
+emit_16(348);
+emit_16(413);
+emit_16(349);
+emit_16(413);
+emit_16(348);
+emit_16(413);
+emit_16(349);
+emit_16(414);
+emit_16(350);
+emit_16(414);
+emit_16(349);
+emit_16(414);
+emit_16(350);
+emit_16(415);
+emit_16(351);
+emit_16(415);
+emit_16(350);
+emit_16(415);
+emit_16(351);
+emit_16(416);
+emit_16(352);
+emit_16(416);
+emit_16(351);
+emit_16(416);
+emit_16(352);
+emit_16(417);
+emit_16(353);
+emit_16(417);
+emit_16(352);
+emit_16(417);
+emit_16(353);
+emit_16(418);
+emit_16(354);
+emit_16(418);
+emit_16(353);
+emit_16(418);
+emit_16(354);
+emit_16(419);
+emit_16(355);
+emit_16(419);
+emit_16(354);
+emit_16(419);
+emit_16(355);
+emit_16(420);
+emit_16(356);
+emit_16(420);
+emit_16(355);
+emit_16(420);
+emit_16(356);
+emit_16(421);
+emit_16(357);
+emit_16(421);
+emit_16(356);
+emit_16(421);
+emit_16(357);
+emit_16(422);
+emit_16(358);
+emit_16(422);
+emit_16(357);
+emit_16(422);
+emit_16(358);
+emit_16(423);
+emit_16(359);
+emit_16(423);
+emit_16(358);
+emit_16(423);
+emit_16(359);
+emit_16(424);
+emit_16(360);
+emit_16(424);
+emit_16(359);
+emit_16(424);
+emit_16(360);
+emit_16(425);
+emit_16(361);
+emit_16(425);
+emit_16(360);
+emit_16(425);
+emit_16(361);
+emit_16(426);
+emit_16(362);
+emit_16(426);
+emit_16(361);
+emit_16(426);
+emit_16(362);
+emit_16(427);
+emit_16(363);
+emit_16(427);
+emit_16(362);
+emit_16(427);
+emit_16(363);
+emit_16(428);
+emit_16(364);
+emit_16(428);
+emit_16(363);
+emit_16(428);
+emit_16(364);
+emit_16(429);
+emit_16(365);
+emit_16(429);
+emit_16(364);
+emit_16(429);
+emit_16(365);
+emit_16(430);
+emit_16(366);
+emit_16(430);
+emit_16(365);
+emit_16(430);
+emit_16(366);
+emit_16(431);
+emit_16(367);
+emit_16(431);
+emit_16(366);
+emit_16(431);
+emit_16(367);
+emit_16(432);
+emit_16(368);
+emit_16(432);
+emit_16(367);
+emit_16(432);
+emit_16(368);
+emit_16(433);
+emit_16(369);
+emit_16(433);
+emit_16(368);
+emit_16(433);
+emit_16(369);
+emit_16(434);
+emit_16(370);
+emit_16(434);
+emit_16(369);
+emit_16(434);
+emit_16(370);
+emit_16(435);
+emit_16(371);
+emit_16(435);
+emit_16(370);
+emit_16(435);
+emit_16(371);
+emit_16(436);
+emit_16(372);
+emit_16(436);
+emit_16(371);
+emit_16(436);
+emit_16(372);
+emit_16(437);
+emit_16(373);
+emit_16(437);
+emit_16(372);
+emit_16(437);
+emit_16(373);
+emit_16(438);
+emit_16(374);
+emit_16(438);
+emit_16(373);
+emit_16(438);
+emit_16(374);
+emit_16(439);
+emit_16(375);
+emit_16(439);
+emit_16(374);
+emit_16(439);
+emit_16(375);
+emit_16(440);
+emit_16(376);
+emit_16(440);
+emit_16(375);
+emit_16(440);
+emit_16(376);
+emit_16(441);
+emit_16(377);
+emit_16(441);
+emit_16(376);
+emit_16(441);
+emit_16(377);
+emit_16(442);
+emit_16(378);
+emit_16(442);
+emit_16(377);
+emit_16(442);
+emit_16(378);
+emit_16(443);
+emit_16(379);
+emit_16(443);
+emit_16(378);
+emit_16(443);
+emit_16(379);
+emit_16(444);
+emit_16(380);
+emit_16(444);
+emit_16(379);
+emit_16(444);
+emit_16(380);
+emit_16(445);
+emit_16(381);
+emit_16(445);
+emit_16(380);
+emit_16(445);
+emit_16(381);
+emit_16(446);
+emit_16(382);
+emit_16(446);
+emit_16(381);
+emit_16(446);
+emit_16(382);
+emit_16(447);
+emit_16(383);
+emit_16(447);
+emit_16(382);
+emit_16(448);
+emit_16(384);
+emit_16(449);
+emit_16(385);
+emit_16(449);
+emit_16(384);
+emit_16(449);
+emit_16(385);
+emit_16(450);
+emit_16(386);
+emit_16(450);
+emit_16(385);
+emit_16(450);
+emit_16(386);
+emit_16(451);
+emit_16(387);
+emit_16(451);
+emit_16(386);
+emit_16(451);
+emit_16(387);
+emit_16(452);
+emit_16(388);
+emit_16(452);
+emit_16(387);
+emit_16(452);
+emit_16(388);
+emit_16(453);
+emit_16(389);
+emit_16(453);
+emit_16(388);
+emit_16(453);
+emit_16(389);
+emit_16(454);
+emit_16(390);
+emit_16(454);
+emit_16(389);
+emit_16(454);
+emit_16(390);
+emit_16(455);
+emit_16(391);
+emit_16(455);
+emit_16(390);
+emit_16(455);
+emit_16(391);
+emit_16(456);
+emit_16(392);
+emit_16(456);
+emit_16(391);
+emit_16(456);
+emit_16(392);
+emit_16(457);
+emit_16(393);
+emit_16(457);
+emit_16(392);
+emit_16(457);
+emit_16(393);
+emit_16(458);
+emit_16(394);
+emit_16(458);
+emit_16(393);
+emit_16(458);
+emit_16(394);
+emit_16(459);
+emit_16(395);
+emit_16(459);
+emit_16(394);
+emit_16(459);
+emit_16(395);
+emit_16(460);
+emit_16(396);
+emit_16(460);
+emit_16(395);
+emit_16(460);
+emit_16(396);
+emit_16(461);
+emit_16(397);
+emit_16(461);
+emit_16(396);
+emit_16(461);
+emit_16(397);
+emit_16(462);
+emit_16(398);
+emit_16(462);
+emit_16(397);
+emit_16(462);
+emit_16(398);
+emit_16(463);
+emit_16(399);
+emit_16(463);
+emit_16(398);
+emit_16(463);
+emit_16(399);
+emit_16(464);
+emit_16(400);
+emit_16(464);
+emit_16(399);
+emit_16(464);
+emit_16(400);
+emit_16(465);
+emit_16(401);
+emit_16(465);
+emit_16(400);
+emit_16(465);
+emit_16(401);
+emit_16(466);
+emit_16(402);
+emit_16(466);
+emit_16(401);
+emit_16(466);
+emit_16(402);
+emit_16(467);
+emit_16(403);
+emit_16(467);
+emit_16(402);
+emit_16(467);
+emit_16(403);
+emit_16(468);
+emit_16(404);
+emit_16(468);
+emit_16(403);
+emit_16(468);
+emit_16(404);
+emit_16(469);
+emit_16(405);
+emit_16(469);
+emit_16(404);
+emit_16(469);
+emit_16(405);
+emit_16(470);
+emit_16(406);
+emit_16(470);
+emit_16(405);
+emit_16(470);
+emit_16(406);
+emit_16(471);
+emit_16(407);
+emit_16(471);
+emit_16(406);
+emit_16(471);
+emit_16(407);
+emit_16(472);
+emit_16(408);
+emit_16(472);
+emit_16(407);
+emit_16(472);
+emit_16(408);
+emit_16(473);
+emit_16(409);
+emit_16(473);
+emit_16(408);
+emit_16(473);
+emit_16(409);
+emit_16(474);
+emit_16(410);
+emit_16(474);
+emit_16(409);
+emit_16(474);
+emit_16(410);
+emit_16(475);
+emit_16(411);
+emit_16(475);
+emit_16(410);
+emit_16(475);
+emit_16(411);
+emit_16(476);
+emit_16(412);
+emit_16(476);
+emit_16(411);
+emit_16(476);
+emit_16(412);
+emit_16(477);
+emit_16(413);
+emit_16(477);
+emit_16(412);
+emit_16(477);
+emit_16(413);
+emit_16(478);
+emit_16(414);
+emit_16(478);
+emit_16(413);
+emit_16(478);
+emit_16(414);
+emit_16(479);
+emit_16(415);
+emit_16(479);
+emit_16(414);
+emit_16(479);
+emit_16(415);
+emit_16(480);
+emit_16(416);
+emit_16(480);
+emit_16(415);
+emit_16(480);
+emit_16(416);
+emit_16(481);
+emit_16(417);
+emit_16(481);
+emit_16(416);
+emit_16(481);
+emit_16(417);
+emit_16(482);
+emit_16(418);
+emit_16(482);
+emit_16(417);
+emit_16(482);
+emit_16(418);
+emit_16(483);
+emit_16(419);
+emit_16(483);
+emit_16(418);
+emit_16(483);
+emit_16(419);
+emit_16(484);
+emit_16(420);
+emit_16(484);
+emit_16(419);
+emit_16(484);
+emit_16(420);
+emit_16(485);
+emit_16(421);
+emit_16(485);
+emit_16(420);
+emit_16(485);
+emit_16(421);
+emit_16(486);
+emit_16(422);
+emit_16(486);
+emit_16(421);
+emit_16(486);
+emit_16(422);
+emit_16(487);
+emit_16(423);
+emit_16(487);
+emit_16(422);
+emit_16(487);
+emit_16(423);
+emit_16(488);
+emit_16(424);
+emit_16(488);
+emit_16(423);
+emit_16(488);
+emit_16(424);
+emit_16(489);
+emit_16(425);
+emit_16(489);
+emit_16(424);
+emit_16(489);
+emit_16(425);
+emit_16(490);
+emit_16(426);
+emit_16(490);
+emit_16(425);
+emit_16(490);
+emit_16(426);
+emit_16(491);
+emit_16(427);
+emit_16(491);
+emit_16(426);
+emit_16(491);
+emit_16(427);
+emit_16(492);
+emit_16(428);
+emit_16(492);
+emit_16(427);
+emit_16(492);
+emit_16(428);
+emit_16(493);
+emit_16(429);
+emit_16(493);
+emit_16(428);
+emit_16(493);
+emit_16(429);
+emit_16(494);
+emit_16(430);
+emit_16(494);
+emit_16(429);
+emit_16(494);
+emit_16(430);
+emit_16(495);
+emit_16(431);
+emit_16(495);
+emit_16(430);
+emit_16(495);
+emit_16(431);
+emit_16(496);
+emit_16(432);
+emit_16(496);
+emit_16(431);
+emit_16(496);
+emit_16(432);
+emit_16(497);
+emit_16(433);
+emit_16(497);
+emit_16(432);
+emit_16(497);
+emit_16(433);
+emit_16(498);
+emit_16(434);
+emit_16(498);
+emit_16(433);
+emit_16(498);
+emit_16(434);
+emit_16(499);
+emit_16(435);
+emit_16(499);
+emit_16(434);
+emit_16(499);
+emit_16(435);
+emit_16(500);
+emit_16(436);
+emit_16(500);
+emit_16(435);
+emit_16(500);
+emit_16(436);
+emit_16(501);
+emit_16(437);
+emit_16(501);
+emit_16(436);
+emit_16(501);
+emit_16(437);
+emit_16(502);
+emit_16(438);
+emit_16(502);
+emit_16(437);
+emit_16(502);
+emit_16(438);
+emit_16(503);
+emit_16(439);
+emit_16(503);
+emit_16(438);
+emit_16(503);
+emit_16(439);
+emit_16(504);
+emit_16(440);
+emit_16(504);
+emit_16(439);
+emit_16(504);
+emit_16(440);
+emit_16(505);
+emit_16(441);
+emit_16(505);
+emit_16(440);
+emit_16(505);
+emit_16(441);
+emit_16(506);
+emit_16(442);
+emit_16(506);
+emit_16(441);
+emit_16(506);
+emit_16(442);
+emit_16(507);
+emit_16(443);
+emit_16(507);
+emit_16(442);
+emit_16(507);
+emit_16(443);
+emit_16(508);
+emit_16(444);
+emit_16(508);
+emit_16(443);
+emit_16(508);
+emit_16(444);
+emit_16(509);
+emit_16(445);
+emit_16(509);
+emit_16(444);
+emit_16(509);
+emit_16(445);
+emit_16(510);
+emit_16(446);
+emit_16(510);
+emit_16(445);
+emit_16(510);
+emit_16(446);
+emit_16(511);
+emit_16(447);
+emit_16(511);
+emit_16(446);
+emit_16(512);
+emit_16(448);
+emit_16(513);
+emit_16(449);
+emit_16(513);
+emit_16(448);
+emit_16(513);
+emit_16(449);
+emit_16(514);
+emit_16(450);
+emit_16(514);
+emit_16(449);
+emit_16(514);
+emit_16(450);
+emit_16(515);
+emit_16(451);
+emit_16(515);
+emit_16(450);
+emit_16(515);
+emit_16(451);
+emit_16(516);
+emit_16(452);
+emit_16(516);
+emit_16(451);
+emit_16(516);
+emit_16(452);
+emit_16(517);
+emit_16(453);
+emit_16(517);
+emit_16(452);
+emit_16(517);
+emit_16(453);
+emit_16(518);
+emit_16(454);
+emit_16(518);
+emit_16(453);
+emit_16(518);
+emit_16(454);
+emit_16(519);
+emit_16(455);
+emit_16(519);
+emit_16(454);
+emit_16(519);
+emit_16(455);
+emit_16(520);
+emit_16(456);
+emit_16(520);
+emit_16(455);
+emit_16(520);
+emit_16(456);
+emit_16(521);
+emit_16(457);
+emit_16(521);
+emit_16(456);
+emit_16(521);
+emit_16(457);
+emit_16(522);
+emit_16(458);
+emit_16(522);
+emit_16(457);
+emit_16(522);
+emit_16(458);
+emit_16(523);
+emit_16(459);
+emit_16(523);
+emit_16(458);
+emit_16(523);
+emit_16(459);
+emit_16(524);
+emit_16(460);
+emit_16(524);
+emit_16(459);
+emit_16(524);
+emit_16(460);
+emit_16(525);
+emit_16(461);
+emit_16(525);
+emit_16(460);
+emit_16(525);
+emit_16(461);
+emit_16(526);
+emit_16(462);
+emit_16(526);
+emit_16(461);
+emit_16(526);
+emit_16(462);
+emit_16(527);
+emit_16(463);
+emit_16(527);
+emit_16(462);
+emit_16(527);
+emit_16(463);
+emit_16(528);
+emit_16(464);
+emit_16(528);
+emit_16(463);
+emit_16(528);
+emit_16(464);
+emit_16(529);
+emit_16(465);
+emit_16(529);
+emit_16(464);
+emit_16(529);
+emit_16(465);
+emit_16(530);
+emit_16(466);
+emit_16(530);
+emit_16(465);
+emit_16(530);
+emit_16(466);
+emit_16(531);
+emit_16(467);
+emit_16(531);
+emit_16(466);
+emit_16(531);
+emit_16(467);
+emit_16(532);
+emit_16(468);
+emit_16(532);
+emit_16(467);
+emit_16(532);
+emit_16(468);
+emit_16(533);
+emit_16(469);
+emit_16(533);
+emit_16(468);
+emit_16(533);
+emit_16(469);
+emit_16(534);
+emit_16(470);
+emit_16(534);
+emit_16(469);
+emit_16(534);
+emit_16(470);
+emit_16(535);
+emit_16(471);
+emit_16(535);
+emit_16(470);
+emit_16(535);
+emit_16(471);
+emit_16(536);
+emit_16(472);
+emit_16(536);
+emit_16(471);
+emit_16(536);
+emit_16(472);
+emit_16(537);
+emit_16(473);
+emit_16(537);
+emit_16(472);
+emit_16(537);
+emit_16(473);
+emit_16(538);
+emit_16(474);
+emit_16(538);
+emit_16(473);
+emit_16(538);
+emit_16(474);
+emit_16(539);
+emit_16(475);
+emit_16(539);
+emit_16(474);
+emit_16(539);
+emit_16(475);
+emit_16(540);
+emit_16(476);
+emit_16(540);
+emit_16(475);
+emit_16(540);
+emit_16(476);
+emit_16(541);
+emit_16(477);
+emit_16(541);
+emit_16(476);
+emit_16(541);
+emit_16(477);
+emit_16(542);
+emit_16(478);
+emit_16(542);
+emit_16(477);
+emit_16(542);
+emit_16(478);
+emit_16(543);
+emit_16(479);
+emit_16(543);
+emit_16(478);
+emit_16(543);
+emit_16(479);
+emit_16(544);
+emit_16(480);
+emit_16(544);
+emit_16(479);
+emit_16(544);
+emit_16(480);
+emit_16(545);
+emit_16(481);
+emit_16(545);
+emit_16(480);
+emit_16(545);
+emit_16(481);
+emit_16(546);
+emit_16(482);
+emit_16(546);
+emit_16(481);
+emit_16(546);
+emit_16(482);
+emit_16(547);
+emit_16(483);
+emit_16(547);
+emit_16(482);
+emit_16(547);
+emit_16(483);
+emit_16(548);
+emit_16(484);
+emit_16(548);
+emit_16(483);
+emit_16(548);
+emit_16(484);
+emit_16(549);
+emit_16(485);
+emit_16(549);
+emit_16(484);
+emit_16(549);
+emit_16(485);
+emit_16(550);
+emit_16(486);
+emit_16(550);
+emit_16(485);
+emit_16(550);
+emit_16(486);
+emit_16(551);
+emit_16(487);
+emit_16(551);
+emit_16(486);
+emit_16(551);
+emit_16(487);
+emit_16(552);
+emit_16(488);
+emit_16(552);
+emit_16(487);
+emit_16(552);
+emit_16(488);
+emit_16(553);
+emit_16(489);
+emit_16(553);
+emit_16(488);
+emit_16(553);
+emit_16(489);
+emit_16(554);
+emit_16(490);
+emit_16(554);
+emit_16(489);
+emit_16(554);
+emit_16(490);
+emit_16(555);
+emit_16(491);
+emit_16(555);
+emit_16(490);
+emit_16(555);
+emit_16(491);
+emit_16(556);
+emit_16(492);
+emit_16(556);
+emit_16(491);
+emit_16(556);
+emit_16(492);
+emit_16(557);
+emit_16(493);
+emit_16(557);
+emit_16(492);
+emit_16(557);
+emit_16(493);
+emit_16(558);
+emit_16(494);
+emit_16(558);
+emit_16(493);
+emit_16(558);
+emit_16(494);
+emit_16(559);
+emit_16(495);
+emit_16(559);
+emit_16(494);
+emit_16(559);
+emit_16(495);
+emit_16(560);
+emit_16(496);
+emit_16(560);
+emit_16(495);
+emit_16(560);
+emit_16(496);
+emit_16(561);
+emit_16(497);
+emit_16(561);
+emit_16(496);
+emit_16(561);
+emit_16(497);
+emit_16(562);
+emit_16(498);
+emit_16(562);
+emit_16(497);
+emit_16(562);
+emit_16(498);
+emit_16(563);
+emit_16(499);
+emit_16(563);
+emit_16(498);
+emit_16(563);
+emit_16(499);
+emit_16(564);
+emit_16(500);
+emit_16(564);
+emit_16(499);
+emit_16(564);
+emit_16(500);
+emit_16(565);
+emit_16(501);
+emit_16(565);
+emit_16(500);
+emit_16(565);
+emit_16(501);
+emit_16(566);
+emit_16(502);
+emit_16(566);
+emit_16(501);
+emit_16(566);
+emit_16(502);
+emit_16(567);
+emit_16(503);
+emit_16(567);
+emit_16(502);
+emit_16(567);
+emit_16(503);
+emit_16(568);
+emit_16(504);
+emit_16(568);
+emit_16(503);
+emit_16(568);
+emit_16(504);
+emit_16(569);
+emit_16(505);
+emit_16(569);
+emit_16(504);
+emit_16(569);
+emit_16(505);
+emit_16(570);
+emit_16(506);
+emit_16(570);
+emit_16(505);
+emit_16(570);
+emit_16(506);
+emit_16(571);
+emit_16(507);
+emit_16(571);
+emit_16(506);
+emit_16(571);
+emit_16(507);
+emit_16(572);
+emit_16(508);
+emit_16(572);
+emit_16(507);
+emit_16(572);
+emit_16(508);
+emit_16(573);
+emit_16(509);
+emit_16(573);
+emit_16(508);
+emit_16(573);
+emit_16(509);
+emit_16(574);
+emit_16(510);
+emit_16(574);
+emit_16(509);
+emit_16(574);
+emit_16(510);
+emit_16(575);
+emit_16(511);
+emit_16(575);
+emit_16(510);
+emit_16(576);
+emit_16(512);
+emit_16(577);
+emit_16(513);
+emit_16(577);
+emit_16(512);
+emit_16(577);
+emit_16(513);
+emit_16(578);
+emit_16(514);
+emit_16(578);
+emit_16(513);
+emit_16(578);
+emit_16(514);
+emit_16(579);
+emit_16(515);
+emit_16(579);
+emit_16(514);
+emit_16(579);
+emit_16(515);
+emit_16(580);
+emit_16(516);
+emit_16(580);
+emit_16(515);
+emit_16(580);
+emit_16(516);
+emit_16(581);
+emit_16(517);
+emit_16(581);
+emit_16(516);
+emit_16(581);
+emit_16(517);
+emit_16(582);
+emit_16(518);
+emit_16(582);
+emit_16(517);
+emit_16(582);
+emit_16(518);
+emit_16(583);
+emit_16(519);
+emit_16(583);
+emit_16(518);
+emit_16(583);
+emit_16(519);
+emit_16(584);
+emit_16(520);
+emit_16(584);
+emit_16(519);
+emit_16(584);
+emit_16(520);
+emit_16(585);
+emit_16(521);
+emit_16(585);
+emit_16(520);
+emit_16(585);
+emit_16(521);
+emit_16(586);
+emit_16(522);
+emit_16(586);
+emit_16(521);
+emit_16(586);
+emit_16(522);
+emit_16(587);
+emit_16(523);
+emit_16(587);
+emit_16(522);
+emit_16(587);
+emit_16(523);
+emit_16(588);
+emit_16(524);
+emit_16(588);
+emit_16(523);
+emit_16(588);
+emit_16(524);
+emit_16(589);
+emit_16(525);
+emit_16(589);
+emit_16(524);
+emit_16(589);
+emit_16(525);
+emit_16(590);
+emit_16(526);
+emit_16(590);
+emit_16(525);
+emit_16(590);
+emit_16(526);
+emit_16(591);
+emit_16(527);
+emit_16(591);
+emit_16(526);
+emit_16(591);
+emit_16(527);
+emit_16(592);
+emit_16(528);
+emit_16(592);
+emit_16(527);
+emit_16(592);
+emit_16(528);
+emit_16(593);
+emit_16(529);
+emit_16(593);
+emit_16(528);
+emit_16(593);
+emit_16(529);
+emit_16(594);
+emit_16(530);
+emit_16(594);
+emit_16(529);
+emit_16(594);
+emit_16(530);
+emit_16(595);
+emit_16(531);
+emit_16(595);
+emit_16(530);
+emit_16(595);
+emit_16(531);
+emit_16(596);
+emit_16(532);
+emit_16(596);
+emit_16(531);
+emit_16(596);
+emit_16(532);
+emit_16(597);
+emit_16(533);
+emit_16(597);
+emit_16(532);
+emit_16(597);
+emit_16(533);
+emit_16(598);
+emit_16(534);
+emit_16(598);
+emit_16(533);
+emit_16(598);
+emit_16(534);
+emit_16(599);
+emit_16(535);
+emit_16(599);
+emit_16(534);
+emit_16(599);
+emit_16(535);
+emit_16(600);
+emit_16(536);
+emit_16(600);
+emit_16(535);
+emit_16(600);
+emit_16(536);
+emit_16(601);
+emit_16(537);
+emit_16(601);
+emit_16(536);
+emit_16(601);
+emit_16(537);
+emit_16(602);
+emit_16(538);
+emit_16(602);
+emit_16(537);
+emit_16(602);
+emit_16(538);
+emit_16(603);
+emit_16(539);
+emit_16(603);
+emit_16(538);
+emit_16(603);
+emit_16(539);
+emit_16(604);
+emit_16(540);
+emit_16(604);
+emit_16(539);
+emit_16(604);
+emit_16(540);
+emit_16(605);
+emit_16(541);
+emit_16(605);
+emit_16(540);
+emit_16(605);
+emit_16(541);
+emit_16(606);
+emit_16(542);
+emit_16(606);
+emit_16(541);
+emit_16(606);
+emit_16(542);
+emit_16(607);
+emit_16(543);
+emit_16(607);
+emit_16(542);
+emit_16(607);
+emit_16(543);
+emit_16(608);
+emit_16(544);
+emit_16(608);
+emit_16(543);
+emit_16(608);
+emit_16(544);
+emit_16(609);
+emit_16(545);
+emit_16(609);
+emit_16(544);
+emit_16(609);
+emit_16(545);
+emit_16(610);
+emit_16(546);
+emit_16(610);
+emit_16(545);
+emit_16(610);
+emit_16(546);
+emit_16(611);
+emit_16(547);
+emit_16(611);
+emit_16(546);
+emit_16(611);
+emit_16(547);
+emit_16(612);
+emit_16(548);
+emit_16(612);
+emit_16(547);
+emit_16(612);
+emit_16(548);
+emit_16(613);
+emit_16(549);
+emit_16(613);
+emit_16(548);
+emit_16(613);
+emit_16(549);
+emit_16(614);
+emit_16(550);
+emit_16(614);
+emit_16(549);
+emit_16(614);
+emit_16(550);
+emit_16(615);
+emit_16(551);
+emit_16(615);
+emit_16(550);
+emit_16(615);
+emit_16(551);
+emit_16(616);
+emit_16(552);
+emit_16(616);
+emit_16(551);
+emit_16(616);
+emit_16(552);
+emit_16(617);
+emit_16(553);
+emit_16(617);
+emit_16(552);
+emit_16(617);
+emit_16(553);
+emit_16(618);
+emit_16(554);
+emit_16(618);
+emit_16(553);
+emit_16(618);
+emit_16(554);
+emit_16(619);
+emit_16(555);
+emit_16(619);
+emit_16(554);
+emit_16(619);
+emit_16(555);
+emit_16(620);
+emit_16(556);
+emit_16(620);
+emit_16(555);
+emit_16(620);
+emit_16(556);
+emit_16(621);
+emit_16(557);
+emit_16(621);
+emit_16(556);
+emit_16(621);
+emit_16(557);
+emit_16(622);
+emit_16(558);
+emit_16(622);
+emit_16(557);
+emit_16(622);
+emit_16(558);
+emit_16(623);
+emit_16(559);
+emit_16(623);
+emit_16(558);
+emit_16(623);
+emit_16(559);
+emit_16(624);
+emit_16(560);
+emit_16(624);
+emit_16(559);
+emit_16(624);
+emit_16(560);
+emit_16(625);
+emit_16(561);
+emit_16(625);
+emit_16(560);
+emit_16(625);
+emit_16(561);
+emit_16(626);
+emit_16(562);
+emit_16(626);
+emit_16(561);
+emit_16(626);
+emit_16(562);
+emit_16(627);
+emit_16(563);
+emit_16(627);
+emit_16(562);
+emit_16(627);
+emit_16(563);
+emit_16(628);
+emit_16(564);
+emit_16(628);
+emit_16(563);
+emit_16(628);
+emit_16(564);
+emit_16(629);
+emit_16(565);
+emit_16(629);
+emit_16(564);
+emit_16(629);
+emit_16(565);
+emit_16(630);
+emit_16(566);
+emit_16(630);
+emit_16(565);
+emit_16(630);
+emit_16(566);
+emit_16(631);
+emit_16(567);
+emit_16(631);
+emit_16(566);
+emit_16(631);
+emit_16(567);
+emit_16(632);
+emit_16(568);
+emit_16(632);
+emit_16(567);
+emit_16(632);
+emit_16(568);
+emit_16(633);
+emit_16(569);
+emit_16(633);
+emit_16(568);
+emit_16(633);
+emit_16(569);
+emit_16(634);
+emit_16(570);
+emit_16(634);
+emit_16(569);
+emit_16(634);
+emit_16(570);
+emit_16(635);
+emit_16(571);
+emit_16(635);
+emit_16(570);
+emit_16(635);
+emit_16(571);
+emit_16(636);
+emit_16(572);
+emit_16(636);
+emit_16(571);
+emit_16(636);
+emit_16(572);
+emit_16(637);
+emit_16(573);
+emit_16(637);
+emit_16(572);
+emit_16(637);
+emit_16(573);
+emit_16(638);
+emit_16(574);
+emit_16(638);
+emit_16(573);
+emit_16(638);
+emit_16(574);
+emit_16(639);
+emit_16(575);
+emit_16(639);
+emit_16(574);
+emit_16(640);
+emit_16(576);
+emit_16(641);
+emit_16(577);
+emit_16(641);
+emit_16(576);
+emit_16(641);
+emit_16(577);
+emit_16(642);
+emit_16(578);
+emit_16(642);
+emit_16(577);
+emit_16(642);
+emit_16(578);
+emit_16(643);
+emit_16(579);
+emit_16(643);
+emit_16(578);
+emit_16(643);
+emit_16(579);
+emit_16(644);
+emit_16(580);
+emit_16(644);
+emit_16(579);
+emit_16(644);
+emit_16(580);
+emit_16(645);
+emit_16(581);
+emit_16(645);
+emit_16(580);
+emit_16(645);
+emit_16(581);
+emit_16(646);
+emit_16(582);
+emit_16(646);
+emit_16(581);
+emit_16(646);
+emit_16(582);
+emit_16(647);
+emit_16(583);
+emit_16(647);
+emit_16(582);
+emit_16(647);
+emit_16(583);
+emit_16(648);
+emit_16(584);
+emit_16(648);
+emit_16(583);
+emit_16(648);
+emit_16(584);
+emit_16(649);
+emit_16(585);
+emit_16(649);
+emit_16(584);
+emit_16(649);
+emit_16(585);
+emit_16(650);
+emit_16(586);
+emit_16(650);
+emit_16(585);
+emit_16(650);
+emit_16(586);
+emit_16(651);
+emit_16(587);
+emit_16(651);
+emit_16(586);
+emit_16(651);
+emit_16(587);
+emit_16(652);
+emit_16(588);
+emit_16(652);
+emit_16(587);
+emit_16(652);
+emit_16(588);
+emit_16(653);
+emit_16(589);
+emit_16(653);
+emit_16(588);
+emit_16(653);
+emit_16(589);
+emit_16(654);
+emit_16(590);
+emit_16(654);
+emit_16(589);
+emit_16(654);
+emit_16(590);
+emit_16(655);
+emit_16(591);
+emit_16(655);
+emit_16(590);
+emit_16(655);
+emit_16(591);
+emit_16(656);
+emit_16(592);
+emit_16(656);
+emit_16(591);
+emit_16(656);
+emit_16(592);
+emit_16(657);
+emit_16(593);
+emit_16(657);
+emit_16(592);
+emit_16(657);
+emit_16(593);
+emit_16(658);
+emit_16(594);
+emit_16(658);
+emit_16(593);
+emit_16(658);
+emit_16(594);
+emit_16(659);
+emit_16(595);
+emit_16(659);
+emit_16(594);
+emit_16(659);
+emit_16(595);
+emit_16(660);
+emit_16(596);
+emit_16(660);
+emit_16(595);
+emit_16(660);
+emit_16(596);
+emit_16(661);
+emit_16(597);
+emit_16(661);
+emit_16(596);
+emit_16(661);
+emit_16(597);
+emit_16(662);
+emit_16(598);
+emit_16(662);
+emit_16(597);
+emit_16(662);
+emit_16(598);
+emit_16(663);
+emit_16(599);
+emit_16(663);
+emit_16(598);
+emit_16(663);
+emit_16(599);
+emit_16(664);
+emit_16(600);
+emit_16(664);
+emit_16(599);
+emit_16(664);
+emit_16(600);
+emit_16(665);
+emit_16(601);
+emit_16(665);
+emit_16(600);
+emit_16(665);
+emit_16(601);
+emit_16(666);
+emit_16(602);
+emit_16(666);
+emit_16(601);
+emit_16(666);
+emit_16(602);
+emit_16(667);
+emit_16(603);
+emit_16(667);
+emit_16(602);
+emit_16(667);
+emit_16(603);
+emit_16(668);
+emit_16(604);
+emit_16(668);
+emit_16(603);
+emit_16(668);
+emit_16(604);
+emit_16(669);
+emit_16(605);
+emit_16(669);
+emit_16(604);
+emit_16(669);
+emit_16(605);
+emit_16(670);
+emit_16(606);
+emit_16(670);
+emit_16(605);
+emit_16(670);
+emit_16(606);
+emit_16(671);
+emit_16(607);
+emit_16(671);
+emit_16(606);
+emit_16(671);
+emit_16(607);
+emit_16(672);
+emit_16(608);
+emit_16(672);
+emit_16(607);
+emit_16(672);
+emit_16(608);
+emit_16(673);
+emit_16(609);
+emit_16(673);
+emit_16(608);
+emit_16(673);
+emit_16(609);
+emit_16(674);
+emit_16(610);
+emit_16(674);
+emit_16(609);
+emit_16(674);
+emit_16(610);
+emit_16(675);
+emit_16(611);
+emit_16(675);
+emit_16(610);
+emit_16(675);
+emit_16(611);
+emit_16(676);
+emit_16(612);
+emit_16(676);
+emit_16(611);
+emit_16(676);
+emit_16(612);
+emit_16(677);
+emit_16(613);
+emit_16(677);
+emit_16(612);
+emit_16(677);
+emit_16(613);
+emit_16(678);
+emit_16(614);
+emit_16(678);
+emit_16(613);
+emit_16(678);
+emit_16(614);
+emit_16(679);
+emit_16(615);
+emit_16(679);
+emit_16(614);
+emit_16(679);
+emit_16(615);
+emit_16(680);
+emit_16(616);
+emit_16(680);
+emit_16(615);
+emit_16(680);
+emit_16(616);
+emit_16(681);
+emit_16(617);
+emit_16(681);
+emit_16(616);
+emit_16(681);
+emit_16(617);
+emit_16(682);
+emit_16(618);
+emit_16(682);
+emit_16(617);
+emit_16(682);
+emit_16(618);
+emit_16(683);
+emit_16(619);
+emit_16(683);
+emit_16(618);
+emit_16(683);
+emit_16(619);
+emit_16(684);
+emit_16(620);
+emit_16(684);
+emit_16(619);
+emit_16(684);
+emit_16(620);
+emit_16(685);
+emit_16(621);
+emit_16(685);
+emit_16(620);
+emit_16(685);
+emit_16(621);
+emit_16(686);
+emit_16(622);
+emit_16(686);
+emit_16(621);
+emit_16(686);
+emit_16(622);
+emit_16(687);
+emit_16(623);
+emit_16(687);
+emit_16(622);
+emit_16(687);
+emit_16(623);
+emit_16(688);
+emit_16(624);
+emit_16(688);
+emit_16(623);
+emit_16(688);
+emit_16(624);
+emit_16(689);
+emit_16(625);
+emit_16(689);
+emit_16(624);
+emit_16(689);
+emit_16(625);
+emit_16(690);
+emit_16(626);
+emit_16(690);
+emit_16(625);
+emit_16(690);
+emit_16(626);
+emit_16(691);
+emit_16(627);
+emit_16(691);
+emit_16(626);
+emit_16(691);
+emit_16(627);
+emit_16(692);
+emit_16(628);
+emit_16(692);
+emit_16(627);
+emit_16(692);
+emit_16(628);
+emit_16(693);
+emit_16(629);
+emit_16(693);
+emit_16(628);
+emit_16(693);
+emit_16(629);
+emit_16(694);
+emit_16(630);
+emit_16(694);
+emit_16(629);
+emit_16(694);
+emit_16(630);
+emit_16(695);
+emit_16(631);
+emit_16(695);
+emit_16(630);
+emit_16(695);
+emit_16(631);
+emit_16(696);
+emit_16(632);
+emit_16(696);
+emit_16(631);
+emit_16(696);
+emit_16(632);
+emit_16(697);
+emit_16(633);
+emit_16(697);
+emit_16(632);
+emit_16(697);
+emit_16(633);
+emit_16(698);
+emit_16(634);
+emit_16(698);
+emit_16(633);
+emit_16(698);
+emit_16(634);
+emit_16(699);
+emit_16(635);
+emit_16(699);
+emit_16(634);
+emit_16(699);
+emit_16(635);
+emit_16(700);
+emit_16(636);
+emit_16(700);
+emit_16(635);
+emit_16(700);
+emit_16(636);
+emit_16(701);
+emit_16(637);
+emit_16(701);
+emit_16(636);
+emit_16(701);
+emit_16(637);
+emit_16(702);
+emit_16(638);
+emit_16(702);
+emit_16(637);
+emit_16(702);
+emit_16(638);
+emit_16(703);
+emit_16(639);
+emit_16(703);
+emit_16(638);
+emit_16(704);
+emit_16(640);
+emit_16(705);
+emit_16(641);
+emit_16(705);
+emit_16(640);
+emit_16(705);
+emit_16(641);
+emit_16(706);
+emit_16(642);
+emit_16(706);
+emit_16(641);
+emit_16(706);
+emit_16(642);
+emit_16(707);
+emit_16(643);
+emit_16(707);
+emit_16(642);
+emit_16(707);
+emit_16(643);
+emit_16(708);
+emit_16(644);
+emit_16(708);
+emit_16(643);
+emit_16(708);
+emit_16(644);
+emit_16(709);
+emit_16(645);
+emit_16(709);
+emit_16(644);
+emit_16(709);
+emit_16(645);
+emit_16(710);
+emit_16(646);
+emit_16(710);
+emit_16(645);
+emit_16(710);
+emit_16(646);
+emit_16(711);
+emit_16(647);
+emit_16(711);
+emit_16(646);
+emit_16(711);
+emit_16(647);
+emit_16(712);
+emit_16(648);
+emit_16(712);
+emit_16(647);
+emit_16(712);
+emit_16(648);
+emit_16(713);
+emit_16(649);
+emit_16(713);
+emit_16(648);
+emit_16(713);
+emit_16(649);
+emit_16(714);
+emit_16(650);
+emit_16(714);
+emit_16(649);
+emit_16(714);
+emit_16(650);
+emit_16(715);
+emit_16(651);
+emit_16(715);
+emit_16(650);
+emit_16(715);
+emit_16(651);
+emit_16(716);
+emit_16(652);
+emit_16(716);
+emit_16(651);
+emit_16(716);
+emit_16(652);
+emit_16(717);
+emit_16(653);
+emit_16(717);
+emit_16(652);
+emit_16(717);
+emit_16(653);
+emit_16(718);
+emit_16(654);
+emit_16(718);
+emit_16(653);
+emit_16(718);
+emit_16(654);
+emit_16(719);
+emit_16(655);
+emit_16(719);
+emit_16(654);
+emit_16(719);
+emit_16(655);
+emit_16(720);
+emit_16(656);
+emit_16(720);
+emit_16(655);
+emit_16(720);
+emit_16(656);
+emit_16(721);
+emit_16(657);
+emit_16(721);
+emit_16(656);
+emit_16(721);
+emit_16(657);
+emit_16(722);
+emit_16(658);
+emit_16(722);
+emit_16(657);
+emit_16(722);
+emit_16(658);
+emit_16(723);
+emit_16(659);
+emit_16(723);
+emit_16(658);
+emit_16(723);
+emit_16(659);
+emit_16(724);
+emit_16(660);
+emit_16(724);
+emit_16(659);
+emit_16(724);
+emit_16(660);
+emit_16(725);
+emit_16(661);
+emit_16(725);
+emit_16(660);
+emit_16(725);
+emit_16(661);
+emit_16(726);
+emit_16(662);
+emit_16(726);
+emit_16(661);
+emit_16(726);
+emit_16(662);
+emit_16(727);
+emit_16(663);
+emit_16(727);
+emit_16(662);
+emit_16(727);
+emit_16(663);
+emit_16(728);
+emit_16(664);
+emit_16(728);
+emit_16(663);
+emit_16(728);
+emit_16(664);
+emit_16(729);
+emit_16(665);
+emit_16(729);
+emit_16(664);
+emit_16(729);
+emit_16(665);
+emit_16(730);
+emit_16(666);
+emit_16(730);
+emit_16(665);
+emit_16(730);
+emit_16(666);
+emit_16(731);
+emit_16(667);
+emit_16(731);
+emit_16(666);
+emit_16(731);
+emit_16(667);
+emit_16(732);
+emit_16(668);
+emit_16(732);
+emit_16(667);
+emit_16(732);
+emit_16(668);
+emit_16(733);
+emit_16(669);
+emit_16(733);
+emit_16(668);
+emit_16(733);
+emit_16(669);
+emit_16(734);
+emit_16(670);
+emit_16(734);
+emit_16(669);
+emit_16(734);
+emit_16(670);
+emit_16(735);
+emit_16(671);
+emit_16(735);
+emit_16(670);
+emit_16(735);
+emit_16(671);
+emit_16(736);
+emit_16(672);
+emit_16(736);
+emit_16(671);
+emit_16(736);
+emit_16(672);
+emit_16(737);
+emit_16(673);
+emit_16(737);
+emit_16(672);
+emit_16(737);
+emit_16(673);
+emit_16(738);
+emit_16(674);
+emit_16(738);
+emit_16(673);
+emit_16(738);
+emit_16(674);
+emit_16(739);
+emit_16(675);
+emit_16(739);
+emit_16(674);
+emit_16(739);
+emit_16(675);
+emit_16(740);
+emit_16(676);
+emit_16(740);
+emit_16(675);
+emit_16(740);
+emit_16(676);
+emit_16(741);
+emit_16(677);
+emit_16(741);
+emit_16(676);
+emit_16(741);
+emit_16(677);
+emit_16(742);
+emit_16(678);
+emit_16(742);
+emit_16(677);
+emit_16(742);
+emit_16(678);
+emit_16(743);
+emit_16(679);
+emit_16(743);
+emit_16(678);
+emit_16(743);
+emit_16(679);
+emit_16(744);
+emit_16(680);
+emit_16(744);
+emit_16(679);
+emit_16(744);
+emit_16(680);
+emit_16(745);
+emit_16(681);
+emit_16(745);
+emit_16(680);
+emit_16(745);
+emit_16(681);
+emit_16(746);
+emit_16(682);
+emit_16(746);
+emit_16(681);
+emit_16(746);
+emit_16(682);
+emit_16(747);
+emit_16(683);
+emit_16(747);
+emit_16(682);
+emit_16(747);
+emit_16(683);
+emit_16(748);
+emit_16(684);
+emit_16(748);
+emit_16(683);
+emit_16(748);
+emit_16(684);
+emit_16(749);
+emit_16(685);
+emit_16(749);
+emit_16(684);
+emit_16(749);
+emit_16(685);
+emit_16(750);
+emit_16(686);
+emit_16(750);
+emit_16(685);
+emit_16(750);
+emit_16(686);
+emit_16(751);
+emit_16(687);
+emit_16(751);
+emit_16(686);
+emit_16(751);
+emit_16(687);
+emit_16(752);
+emit_16(688);
+emit_16(752);
+emit_16(687);
+emit_16(752);
+emit_16(688);
+emit_16(753);
+emit_16(689);
+emit_16(753);
+emit_16(688);
+emit_16(753);
+emit_16(689);
+emit_16(754);
+emit_16(690);
+emit_16(754);
+emit_16(689);
+emit_16(754);
+emit_16(690);
+emit_16(755);
+emit_16(691);
+emit_16(755);
+emit_16(690);
+emit_16(755);
+emit_16(691);
+emit_16(756);
+emit_16(692);
+emit_16(756);
+emit_16(691);
+emit_16(756);
+emit_16(692);
+emit_16(757);
+emit_16(693);
+emit_16(757);
+emit_16(692);
+emit_16(757);
+emit_16(693);
+emit_16(758);
+emit_16(694);
+emit_16(758);
+emit_16(693);
+emit_16(758);
+emit_16(694);
+emit_16(759);
+emit_16(695);
+emit_16(759);
+emit_16(694);
+emit_16(759);
+emit_16(695);
+emit_16(760);
+emit_16(696);
+emit_16(760);
+emit_16(695);
+emit_16(760);
+emit_16(696);
+emit_16(761);
+emit_16(697);
+emit_16(761);
+emit_16(696);
+emit_16(761);
+emit_16(697);
+emit_16(762);
+emit_16(698);
+emit_16(762);
+emit_16(697);
+emit_16(762);
+emit_16(698);
+emit_16(763);
+emit_16(699);
+emit_16(763);
+emit_16(698);
+emit_16(763);
+emit_16(699);
+emit_16(764);
+emit_16(700);
+emit_16(764);
+emit_16(699);
+emit_16(764);
+emit_16(700);
+emit_16(765);
+emit_16(701);
+emit_16(765);
+emit_16(700);
+emit_16(765);
+emit_16(701);
+emit_16(766);
+emit_16(702);
+emit_16(766);
+emit_16(701);
+emit_16(766);
+emit_16(702);
+emit_16(767);
+emit_16(703);
+emit_16(767);
+emit_16(702);
+emit_16(768);
+emit_16(704);
+emit_16(769);
+emit_16(705);
+emit_16(769);
+emit_16(704);
+emit_16(769);
+emit_16(705);
+emit_16(770);
+emit_16(706);
+emit_16(770);
+emit_16(705);
+emit_16(770);
+emit_16(706);
+emit_16(771);
+emit_16(707);
+emit_16(771);
+emit_16(706);
+emit_16(771);
+emit_16(707);
+emit_16(772);
+emit_16(708);
+emit_16(772);
+emit_16(707);
+emit_16(772);
+emit_16(708);
+emit_16(773);
+emit_16(709);
+emit_16(773);
+emit_16(708);
+emit_16(773);
+emit_16(709);
+emit_16(774);
+emit_16(710);
+emit_16(774);
+emit_16(709);
+emit_16(774);
+emit_16(710);
+emit_16(775);
+emit_16(711);
+emit_16(775);
+emit_16(710);
+emit_16(775);
+emit_16(711);
+emit_16(776);
+emit_16(712);
+emit_16(776);
+emit_16(711);
+emit_16(776);
+emit_16(712);
+emit_16(777);
+emit_16(713);
+emit_16(777);
+emit_16(712);
+emit_16(777);
+emit_16(713);
+emit_16(778);
+emit_16(714);
+emit_16(778);
+emit_16(713);
+emit_16(778);
+emit_16(714);
+emit_16(779);
+emit_16(715);
+emit_16(779);
+emit_16(714);
+emit_16(779);
+emit_16(715);
+emit_16(780);
+emit_16(716);
+emit_16(780);
+emit_16(715);
+emit_16(780);
+emit_16(716);
+emit_16(781);
+emit_16(717);
+emit_16(781);
+emit_16(716);
+emit_16(781);
+emit_16(717);
+emit_16(782);
+emit_16(718);
+emit_16(782);
+emit_16(717);
+emit_16(782);
+emit_16(718);
+emit_16(783);
+emit_16(719);
+emit_16(783);
+emit_16(718);
+emit_16(783);
+emit_16(719);
+emit_16(784);
+emit_16(720);
+emit_16(784);
+emit_16(719);
+emit_16(784);
+emit_16(720);
+emit_16(785);
+emit_16(721);
+emit_16(785);
+emit_16(720);
+emit_16(785);
+emit_16(721);
+emit_16(786);
+emit_16(722);
+emit_16(786);
+emit_16(721);
+emit_16(786);
+emit_16(722);
+emit_16(787);
+emit_16(723);
+emit_16(787);
+emit_16(722);
+emit_16(787);
+emit_16(723);
+emit_16(788);
+emit_16(724);
+emit_16(788);
+emit_16(723);
+emit_16(788);
+emit_16(724);
+emit_16(789);
+emit_16(725);
+emit_16(789);
+emit_16(724);
+emit_16(789);
+emit_16(725);
+emit_16(790);
+emit_16(726);
+emit_16(790);
+emit_16(725);
+emit_16(790);
+emit_16(726);
+emit_16(791);
+emit_16(727);
+emit_16(791);
+emit_16(726);
+emit_16(791);
+emit_16(727);
+emit_16(792);
+emit_16(728);
+emit_16(792);
+emit_16(727);
+emit_16(792);
+emit_16(728);
+emit_16(793);
+emit_16(729);
+emit_16(793);
+emit_16(728);
+emit_16(793);
+emit_16(729);
+emit_16(794);
+emit_16(730);
+emit_16(794);
+emit_16(729);
+emit_16(794);
+emit_16(730);
+emit_16(795);
+emit_16(731);
+emit_16(795);
+emit_16(730);
+emit_16(795);
+emit_16(731);
+emit_16(796);
+emit_16(732);
+emit_16(796);
+emit_16(731);
+emit_16(796);
+emit_16(732);
+emit_16(797);
+emit_16(733);
+emit_16(797);
+emit_16(732);
+emit_16(797);
+emit_16(733);
+emit_16(798);
+emit_16(734);
+emit_16(798);
+emit_16(733);
+emit_16(798);
+emit_16(734);
+emit_16(799);
+emit_16(735);
+emit_16(799);
+emit_16(734);
+emit_16(799);
+emit_16(735);
+emit_16(800);
+emit_16(736);
+emit_16(800);
+emit_16(735);
+emit_16(800);
+emit_16(736);
+emit_16(801);
+emit_16(737);
+emit_16(801);
+emit_16(736);
+emit_16(801);
+emit_16(737);
+emit_16(802);
+emit_16(738);
+emit_16(802);
+emit_16(737);
+emit_16(802);
+emit_16(738);
+emit_16(803);
+emit_16(739);
+emit_16(803);
+emit_16(738);
+emit_16(803);
+emit_16(739);
+emit_16(804);
+emit_16(740);
+emit_16(804);
+emit_16(739);
+emit_16(804);
+emit_16(740);
+emit_16(805);
+emit_16(741);
+emit_16(805);
+emit_16(740);
+emit_16(805);
+emit_16(741);
+emit_16(806);
+emit_16(742);
+emit_16(806);
+emit_16(741);
+emit_16(806);
+emit_16(742);
+emit_16(807);
+emit_16(743);
+emit_16(807);
+emit_16(742);
+emit_16(807);
+emit_16(743);
+emit_16(808);
+emit_16(744);
+emit_16(808);
+emit_16(743);
+emit_16(808);
+emit_16(744);
+emit_16(809);
+emit_16(745);
+emit_16(809);
+emit_16(744);
+emit_16(809);
+emit_16(745);
+emit_16(810);
+emit_16(746);
+emit_16(810);
+emit_16(745);
+emit_16(810);
+emit_16(746);
+emit_16(811);
+emit_16(747);
+emit_16(811);
+emit_16(746);
+emit_16(811);
+emit_16(747);
+emit_16(812);
+emit_16(748);
+emit_16(812);
+emit_16(747);
+emit_16(812);
+emit_16(748);
+emit_16(813);
+emit_16(749);
+emit_16(813);
+emit_16(748);
+emit_16(813);
+emit_16(749);
+emit_16(814);
+emit_16(750);
+emit_16(814);
+emit_16(749);
+emit_16(814);
+emit_16(750);
+emit_16(815);
+emit_16(751);
+emit_16(815);
+emit_16(750);
+emit_16(815);
+emit_16(751);
+emit_16(816);
+emit_16(752);
+emit_16(816);
+emit_16(751);
+emit_16(816);
+emit_16(752);
+emit_16(817);
+emit_16(753);
+emit_16(817);
+emit_16(752);
+emit_16(817);
+emit_16(753);
+emit_16(818);
+emit_16(754);
+emit_16(818);
+emit_16(753);
+emit_16(818);
+emit_16(754);
+emit_16(819);
+emit_16(755);
+emit_16(819);
+emit_16(754);
+emit_16(819);
+emit_16(755);
+emit_16(820);
+emit_16(756);
+emit_16(820);
+emit_16(755);
+emit_16(820);
+emit_16(756);
+emit_16(821);
+emit_16(757);
+emit_16(821);
+emit_16(756);
+emit_16(821);
+emit_16(757);
+emit_16(822);
+emit_16(758);
+emit_16(822);
+emit_16(757);
+emit_16(822);
+emit_16(758);
+emit_16(823);
+emit_16(759);
+emit_16(823);
+emit_16(758);
+emit_16(823);
+emit_16(759);
+emit_16(824);
+emit_16(760);
+emit_16(824);
+emit_16(759);
+emit_16(824);
+emit_16(760);
+emit_16(825);
+emit_16(761);
+emit_16(825);
+emit_16(760);
+emit_16(825);
+emit_16(761);
+emit_16(826);
+emit_16(762);
+emit_16(826);
+emit_16(761);
+emit_16(826);
+emit_16(762);
+emit_16(827);
+emit_16(763);
+emit_16(827);
+emit_16(762);
+emit_16(827);
+emit_16(763);
+emit_16(828);
+emit_16(764);
+emit_16(828);
+emit_16(763);
+emit_16(828);
+emit_16(764);
+emit_16(829);
+emit_16(765);
+emit_16(829);
+emit_16(764);
+emit_16(829);
+emit_16(765);
+emit_16(830);
+emit_16(766);
+emit_16(830);
+emit_16(765);
+emit_16(830);
+emit_16(766);
+emit_16(831);
+emit_16(767);
+emit_16(831);
+emit_16(766);
+emit_16(832);
+emit_16(768);
+emit_16(833);
+emit_16(769);
+emit_16(833);
+emit_16(768);
+emit_16(833);
+emit_16(769);
+emit_16(834);
+emit_16(770);
+emit_16(834);
+emit_16(769);
+emit_16(834);
+emit_16(770);
+emit_16(835);
+emit_16(771);
+emit_16(835);
+emit_16(770);
+emit_16(835);
+emit_16(771);
+emit_16(836);
+emit_16(772);
+emit_16(836);
+emit_16(771);
+emit_16(836);
+emit_16(772);
+emit_16(837);
+emit_16(773);
+emit_16(837);
+emit_16(772);
+emit_16(837);
+emit_16(773);
+emit_16(838);
+emit_16(774);
+emit_16(838);
+emit_16(773);
+emit_16(838);
+emit_16(774);
+emit_16(839);
+emit_16(775);
+emit_16(839);
+emit_16(774);
+emit_16(839);
+emit_16(775);
+emit_16(840);
+emit_16(776);
+emit_16(840);
+emit_16(775);
+emit_16(840);
+emit_16(776);
+emit_16(841);
+emit_16(777);
+emit_16(841);
+emit_16(776);
+emit_16(841);
+emit_16(777);
+emit_16(842);
+emit_16(778);
+emit_16(842);
+emit_16(777);
+emit_16(842);
+emit_16(778);
+emit_16(843);
+emit_16(779);
+emit_16(843);
+emit_16(778);
+emit_16(843);
+emit_16(779);
+emit_16(844);
+emit_16(780);
+emit_16(844);
+emit_16(779);
+emit_16(844);
+emit_16(780);
+emit_16(845);
+emit_16(781);
+emit_16(845);
+emit_16(780);
+emit_16(845);
+emit_16(781);
+emit_16(846);
+emit_16(782);
+emit_16(846);
+emit_16(781);
+emit_16(846);
+emit_16(782);
+emit_16(847);
+emit_16(783);
+emit_16(847);
+emit_16(782);
+emit_16(847);
+emit_16(783);
+emit_16(848);
+emit_16(784);
+emit_16(848);
+emit_16(783);
+emit_16(848);
+emit_16(784);
+emit_16(849);
+emit_16(785);
+emit_16(849);
+emit_16(784);
+emit_16(849);
+emit_16(785);
+emit_16(850);
+emit_16(786);
+emit_16(850);
+emit_16(785);
+emit_16(850);
+emit_16(786);
+emit_16(851);
+emit_16(787);
+emit_16(851);
+emit_16(786);
+emit_16(851);
+emit_16(787);
+emit_16(852);
+emit_16(788);
+emit_16(852);
+emit_16(787);
+emit_16(852);
+emit_16(788);
+emit_16(853);
+emit_16(789);
+emit_16(853);
+emit_16(788);
+emit_16(853);
+emit_16(789);
+emit_16(854);
+emit_16(790);
+emit_16(854);
+emit_16(789);
+emit_16(854);
+emit_16(790);
+emit_16(855);
+emit_16(791);
+emit_16(855);
+emit_16(790);
+emit_16(855);
+emit_16(791);
+emit_16(856);
+emit_16(792);
+emit_16(856);
+emit_16(791);
+emit_16(856);
+emit_16(792);
+emit_16(857);
+emit_16(793);
+emit_16(857);
+emit_16(792);
+emit_16(857);
+emit_16(793);
+emit_16(858);
+emit_16(794);
+emit_16(858);
+emit_16(793);
+emit_16(858);
+emit_16(794);
+emit_16(859);
+emit_16(795);
+emit_16(859);
+emit_16(794);
+emit_16(859);
+emit_16(795);
+emit_16(860);
+emit_16(796);
+emit_16(860);
+emit_16(795);
+emit_16(860);
+emit_16(796);
+emit_16(861);
+emit_16(797);
+emit_16(861);
+emit_16(796);
+emit_16(861);
+emit_16(797);
+emit_16(862);
+emit_16(798);
+emit_16(862);
+emit_16(797);
+emit_16(862);
+emit_16(798);
+emit_16(863);
+emit_16(799);
+emit_16(863);
+emit_16(798);
+emit_16(863);
+emit_16(799);
+emit_16(864);
+emit_16(800);
+emit_16(864);
+emit_16(799);
+emit_16(864);
+emit_16(800);
+emit_16(865);
+emit_16(801);
+emit_16(865);
+emit_16(800);
+emit_16(865);
+emit_16(801);
+emit_16(866);
+emit_16(802);
+emit_16(866);
+emit_16(801);
+emit_16(866);
+emit_16(802);
+emit_16(867);
+emit_16(803);
+emit_16(867);
+emit_16(802);
+emit_16(867);
+emit_16(803);
+emit_16(868);
+emit_16(804);
+emit_16(868);
+emit_16(803);
+emit_16(868);
+emit_16(804);
+emit_16(869);
+emit_16(805);
+emit_16(869);
+emit_16(804);
+emit_16(869);
+emit_16(805);
+emit_16(870);
+emit_16(806);
+emit_16(870);
+emit_16(805);
+emit_16(870);
+emit_16(806);
+emit_16(871);
+emit_16(807);
+emit_16(871);
+emit_16(806);
+emit_16(871);
+emit_16(807);
+emit_16(872);
+emit_16(808);
+emit_16(872);
+emit_16(807);
+emit_16(872);
+emit_16(808);
+emit_16(873);
+emit_16(809);
+emit_16(873);
+emit_16(808);
+emit_16(873);
+emit_16(809);
+emit_16(874);
+emit_16(810);
+emit_16(874);
+emit_16(809);
+emit_16(874);
+emit_16(810);
+emit_16(875);
+emit_16(811);
+emit_16(875);
+emit_16(810);
+emit_16(875);
+emit_16(811);
+emit_16(876);
+emit_16(812);
+emit_16(876);
+emit_16(811);
+emit_16(876);
+emit_16(812);
+emit_16(877);
+emit_16(813);
+emit_16(877);
+emit_16(812);
+emit_16(877);
+emit_16(813);
+emit_16(878);
+emit_16(814);
+emit_16(878);
+emit_16(813);
+emit_16(878);
+emit_16(814);
+emit_16(879);
+emit_16(815);
+emit_16(879);
+emit_16(814);
+emit_16(879);
+emit_16(815);
+emit_16(880);
+emit_16(816);
+emit_16(880);
+emit_16(815);
+emit_16(880);
+emit_16(816);
+emit_16(881);
+emit_16(817);
+emit_16(881);
+emit_16(816);
+emit_16(881);
+emit_16(817);
+emit_16(882);
+emit_16(818);
+emit_16(882);
+emit_16(817);
+emit_16(882);
+emit_16(818);
+emit_16(883);
+emit_16(819);
+emit_16(883);
+emit_16(818);
+emit_16(883);
+emit_16(819);
+emit_16(884);
+emit_16(820);
+emit_16(884);
+emit_16(819);
+emit_16(884);
+emit_16(820);
+emit_16(885);
+emit_16(821);
+emit_16(885);
+emit_16(820);
+emit_16(885);
+emit_16(821);
+emit_16(886);
+emit_16(822);
+emit_16(886);
+emit_16(821);
+emit_16(886);
+emit_16(822);
+emit_16(887);
+emit_16(823);
+emit_16(887);
+emit_16(822);
+emit_16(887);
+emit_16(823);
+emit_16(888);
+emit_16(824);
+emit_16(888);
+emit_16(823);
+emit_16(888);
+emit_16(824);
+emit_16(889);
+emit_16(825);
+emit_16(889);
+emit_16(824);
+emit_16(889);
+emit_16(825);
+emit_16(890);
+emit_16(826);
+emit_16(890);
+emit_16(825);
+emit_16(890);
+emit_16(826);
+emit_16(891);
+emit_16(827);
+emit_16(891);
+emit_16(826);
+emit_16(891);
+emit_16(827);
+emit_16(892);
+emit_16(828);
+emit_16(892);
+emit_16(827);
+emit_16(892);
+emit_16(828);
+emit_16(893);
+emit_16(829);
+emit_16(893);
+emit_16(828);
+emit_16(893);
+emit_16(829);
+emit_16(894);
+emit_16(830);
+emit_16(894);
+emit_16(829);
+emit_16(894);
+emit_16(830);
+emit_16(895);
+emit_16(831);
+emit_16(895);
+emit_16(830);
+emit_16(896);
+emit_16(832);
+emit_16(897);
+emit_16(833);
+emit_16(897);
+emit_16(832);
+emit_16(897);
+emit_16(833);
+emit_16(898);
+emit_16(834);
+emit_16(898);
+emit_16(833);
+emit_16(898);
+emit_16(834);
+emit_16(899);
+emit_16(835);
+emit_16(899);
+emit_16(834);
+emit_16(899);
+emit_16(835);
+emit_16(900);
+emit_16(836);
+emit_16(900);
+emit_16(835);
+emit_16(900);
+emit_16(836);
+emit_16(901);
+emit_16(837);
+emit_16(901);
+emit_16(836);
+emit_16(901);
+emit_16(837);
+emit_16(902);
+emit_16(838);
+emit_16(902);
+emit_16(837);
+emit_16(902);
+emit_16(838);
+emit_16(903);
+emit_16(839);
+emit_16(903);
+emit_16(838);
+emit_16(903);
+emit_16(839);
+emit_16(904);
+emit_16(840);
+emit_16(904);
+emit_16(839);
+emit_16(904);
+emit_16(840);
+emit_16(905);
+emit_16(841);
+emit_16(905);
+emit_16(840);
+emit_16(905);
+emit_16(841);
+emit_16(906);
+emit_16(842);
+emit_16(906);
+emit_16(841);
+emit_16(906);
+emit_16(842);
+emit_16(907);
+emit_16(843);
+emit_16(907);
+emit_16(842);
+emit_16(907);
+emit_16(843);
+emit_16(908);
+emit_16(844);
+emit_16(908);
+emit_16(843);
+emit_16(908);
+emit_16(844);
+emit_16(909);
+emit_16(845);
+emit_16(909);
+emit_16(844);
+emit_16(909);
+emit_16(845);
+emit_16(910);
+emit_16(846);
+emit_16(910);
+emit_16(845);
+emit_16(910);
+emit_16(846);
+emit_16(911);
+emit_16(847);
+emit_16(911);
+emit_16(846);
+emit_16(911);
+emit_16(847);
+emit_16(912);
+emit_16(848);
+emit_16(912);
+emit_16(847);
+emit_16(912);
+emit_16(848);
+emit_16(913);
+emit_16(849);
+emit_16(913);
+emit_16(848);
+emit_16(913);
+emit_16(849);
+emit_16(914);
+emit_16(850);
+emit_16(914);
+emit_16(849);
+emit_16(914);
+emit_16(850);
+emit_16(915);
+emit_16(851);
+emit_16(915);
+emit_16(850);
+emit_16(915);
+emit_16(851);
+emit_16(916);
+emit_16(852);
+emit_16(916);
+emit_16(851);
+emit_16(916);
+emit_16(852);
+emit_16(917);
+emit_16(853);
+emit_16(917);
+emit_16(852);
+emit_16(917);
+emit_16(853);
+emit_16(918);
+emit_16(854);
+emit_16(918);
+emit_16(853);
+emit_16(918);
+emit_16(854);
+emit_16(919);
+emit_16(855);
+emit_16(919);
+emit_16(854);
+emit_16(919);
+emit_16(855);
+emit_16(920);
+emit_16(856);
+emit_16(920);
+emit_16(855);
+emit_16(920);
+emit_16(856);
+emit_16(921);
+emit_16(857);
+emit_16(921);
+emit_16(856);
+emit_16(921);
+emit_16(857);
+emit_16(922);
+emit_16(858);
+emit_16(922);
+emit_16(857);
+emit_16(922);
+emit_16(858);
+emit_16(923);
+emit_16(859);
+emit_16(923);
+emit_16(858);
+emit_16(923);
+emit_16(859);
+emit_16(924);
+emit_16(860);
+emit_16(924);
+emit_16(859);
+emit_16(924);
+emit_16(860);
+emit_16(925);
+emit_16(861);
+emit_16(925);
+emit_16(860);
+emit_16(925);
+emit_16(861);
+emit_16(926);
+emit_16(862);
+emit_16(926);
+emit_16(861);
+emit_16(926);
+emit_16(862);
+emit_16(927);
+emit_16(863);
+emit_16(927);
+emit_16(862);
+emit_16(927);
+emit_16(863);
+emit_16(928);
+emit_16(864);
+emit_16(928);
+emit_16(863);
+emit_16(928);
+emit_16(864);
+emit_16(929);
+emit_16(865);
+emit_16(929);
+emit_16(864);
+emit_16(929);
+emit_16(865);
+emit_16(930);
+emit_16(866);
+emit_16(930);
+emit_16(865);
+emit_16(930);
+emit_16(866);
+emit_16(931);
+emit_16(867);
+emit_16(931);
+emit_16(866);
+emit_16(931);
+emit_16(867);
+emit_16(932);
+emit_16(868);
+emit_16(932);
+emit_16(867);
+emit_16(932);
+emit_16(868);
+emit_16(933);
+emit_16(869);
+emit_16(933);
+emit_16(868);
+emit_16(933);
+emit_16(869);
+emit_16(934);
+emit_16(870);
+emit_16(934);
+emit_16(869);
+emit_16(934);
+emit_16(870);
+emit_16(935);
+emit_16(871);
+emit_16(935);
+emit_16(870);
+emit_16(935);
+emit_16(871);
+emit_16(936);
+emit_16(872);
+emit_16(936);
+emit_16(871);
+emit_16(936);
+emit_16(872);
+emit_16(937);
+emit_16(873);
+emit_16(937);
+emit_16(872);
+emit_16(937);
+emit_16(873);
+emit_16(938);
+emit_16(874);
+emit_16(938);
+emit_16(873);
+emit_16(938);
+emit_16(874);
+emit_16(939);
+emit_16(875);
+emit_16(939);
+emit_16(874);
+emit_16(939);
+emit_16(875);
+emit_16(940);
+emit_16(876);
+emit_16(940);
+emit_16(875);
+emit_16(940);
+emit_16(876);
+emit_16(941);
+emit_16(877);
+emit_16(941);
+emit_16(876);
+emit_16(941);
+emit_16(877);
+emit_16(942);
+emit_16(878);
+emit_16(942);
+emit_16(877);
+emit_16(942);
+emit_16(878);
+emit_16(943);
+emit_16(879);
+emit_16(943);
+emit_16(878);
+emit_16(943);
+emit_16(879);
+emit_16(944);
+emit_16(880);
+emit_16(944);
+emit_16(879);
+emit_16(944);
+emit_16(880);
+emit_16(945);
+emit_16(881);
+emit_16(945);
+emit_16(880);
+emit_16(945);
+emit_16(881);
+emit_16(946);
+emit_16(882);
+emit_16(946);
+emit_16(881);
+emit_16(946);
+emit_16(882);
+emit_16(947);
+emit_16(883);
+emit_16(947);
+emit_16(882);
+emit_16(947);
+emit_16(883);
+emit_16(948);
+emit_16(884);
+emit_16(948);
+emit_16(883);
+emit_16(948);
+emit_16(884);
+emit_16(949);
+emit_16(885);
+emit_16(949);
+emit_16(884);
+emit_16(949);
+emit_16(885);
+emit_16(950);
+emit_16(886);
+emit_16(950);
+emit_16(885);
+emit_16(950);
+emit_16(886);
+emit_16(951);
+emit_16(887);
+emit_16(951);
+emit_16(886);
+emit_16(951);
+emit_16(887);
+emit_16(952);
+emit_16(888);
+emit_16(952);
+emit_16(887);
+emit_16(952);
+emit_16(888);
+emit_16(953);
+emit_16(889);
+emit_16(953);
+emit_16(888);
+emit_16(953);
+emit_16(889);
+emit_16(954);
+emit_16(890);
+emit_16(954);
+emit_16(889);
+emit_16(954);
+emit_16(890);
+emit_16(955);
+emit_16(891);
+emit_16(955);
+emit_16(890);
+emit_16(955);
+emit_16(891);
+emit_16(956);
+emit_16(892);
+emit_16(956);
+emit_16(891);
+emit_16(956);
+emit_16(892);
+emit_16(957);
+emit_16(893);
+emit_16(957);
+emit_16(892);
+emit_16(957);
+emit_16(893);
+emit_16(958);
+emit_16(894);
+emit_16(958);
+emit_16(893);
+emit_16(958);
+emit_16(894);
+emit_16(959);
+emit_16(895);
+emit_16(959);
+emit_16(894);
+emit_16(960);
+emit_16(896);
+emit_16(961);
+emit_16(897);
+emit_16(961);
+emit_16(896);
+emit_16(961);
+emit_16(897);
+emit_16(962);
+emit_16(898);
+emit_16(962);
+emit_16(897);
+emit_16(962);
+emit_16(898);
+emit_16(963);
+emit_16(899);
+emit_16(963);
+emit_16(898);
+emit_16(963);
+emit_16(899);
+emit_16(964);
+emit_16(900);
+emit_16(964);
+emit_16(899);
+emit_16(964);
+emit_16(900);
+emit_16(965);
+emit_16(901);
+emit_16(965);
+emit_16(900);
+emit_16(965);
+emit_16(901);
+emit_16(966);
+emit_16(902);
+emit_16(966);
+emit_16(901);
+emit_16(966);
+emit_16(902);
+emit_16(967);
+emit_16(903);
+emit_16(967);
+emit_16(902);
+emit_16(967);
+emit_16(903);
+emit_16(968);
+emit_16(904);
+emit_16(968);
+emit_16(903);
+emit_16(968);
+emit_16(904);
+emit_16(969);
+emit_16(905);
+emit_16(969);
+emit_16(904);
+emit_16(969);
+emit_16(905);
+emit_16(970);
+emit_16(906);
+emit_16(970);
+emit_16(905);
+emit_16(970);
+emit_16(906);
+emit_16(971);
+emit_16(907);
+emit_16(971);
+emit_16(906);
+emit_16(971);
+emit_16(907);
+emit_16(972);
+emit_16(908);
+emit_16(972);
+emit_16(907);
+emit_16(972);
+emit_16(908);
+emit_16(973);
+emit_16(909);
+emit_16(973);
+emit_16(908);
+emit_16(973);
+emit_16(909);
+emit_16(974);
+emit_16(910);
+emit_16(974);
+emit_16(909);
+emit_16(974);
+emit_16(910);
+emit_16(975);
+emit_16(911);
+emit_16(975);
+emit_16(910);
+emit_16(975);
+emit_16(911);
+emit_16(976);
+emit_16(912);
+emit_16(976);
+emit_16(911);
+emit_16(976);
+emit_16(912);
+emit_16(977);
+emit_16(913);
+emit_16(977);
+emit_16(912);
+emit_16(977);
+emit_16(913);
+emit_16(978);
+emit_16(914);
+emit_16(978);
+emit_16(913);
+emit_16(978);
+emit_16(914);
+emit_16(979);
+emit_16(915);
+emit_16(979);
+emit_16(914);
+emit_16(979);
+emit_16(915);
+emit_16(980);
+emit_16(916);
+emit_16(980);
+emit_16(915);
+emit_16(980);
+emit_16(916);
+emit_16(981);
+emit_16(917);
+emit_16(981);
+emit_16(916);
+emit_16(981);
+emit_16(917);
+emit_16(982);
+emit_16(918);
+emit_16(982);
+emit_16(917);
+emit_16(982);
+emit_16(918);
+emit_16(983);
+emit_16(919);
+emit_16(983);
+emit_16(918);
+emit_16(983);
+emit_16(919);
+emit_16(984);
+emit_16(920);
+emit_16(984);
+emit_16(919);
+emit_16(984);
+emit_16(920);
+emit_16(985);
+emit_16(921);
+emit_16(985);
+emit_16(920);
+emit_16(985);
+emit_16(921);
+emit_16(986);
+emit_16(922);
+emit_16(986);
+emit_16(921);
+emit_16(986);
+emit_16(922);
+emit_16(987);
+emit_16(923);
+emit_16(987);
+emit_16(922);
+emit_16(987);
+emit_16(923);
+emit_16(988);
+emit_16(924);
+emit_16(988);
+emit_16(923);
+emit_16(988);
+emit_16(924);
+emit_16(989);
+emit_16(925);
+emit_16(989);
+emit_16(924);
+emit_16(989);
+emit_16(925);
+emit_16(990);
+emit_16(926);
+emit_16(990);
+emit_16(925);
+emit_16(990);
+emit_16(926);
+emit_16(991);
+emit_16(927);
+emit_16(991);
+emit_16(926);
+emit_16(991);
+emit_16(927);
+emit_16(992);
+emit_16(928);
+emit_16(992);
+emit_16(927);
+emit_16(992);
+emit_16(928);
+emit_16(993);
+emit_16(929);
+emit_16(993);
+emit_16(928);
+emit_16(993);
+emit_16(929);
+emit_16(994);
+emit_16(930);
+emit_16(994);
+emit_16(929);
+emit_16(994);
+emit_16(930);
+emit_16(995);
+emit_16(931);
+emit_16(995);
+emit_16(930);
+emit_16(995);
+emit_16(931);
+emit_16(996);
+emit_16(932);
+emit_16(996);
+emit_16(931);
+emit_16(996);
+emit_16(932);
+emit_16(997);
+emit_16(933);
+emit_16(997);
+emit_16(932);
+emit_16(997);
+emit_16(933);
+emit_16(998);
+emit_16(934);
+emit_16(998);
+emit_16(933);
+emit_16(998);
+emit_16(934);
+emit_16(999);
+emit_16(935);
+emit_16(999);
+emit_16(934);
+emit_16(999);
+emit_16(935);
+emit_16(1000);
+emit_16(936);
+emit_16(1000);
+emit_16(935);
+emit_16(1000);
+emit_16(936);
+emit_16(1001);
+emit_16(937);
+emit_16(1001);
+emit_16(936);
+emit_16(1001);
+emit_16(937);
+emit_16(1002);
+emit_16(938);
+emit_16(1002);
+emit_16(937);
+emit_16(1002);
+emit_16(938);
+emit_16(1003);
+emit_16(939);
+emit_16(1003);
+emit_16(938);
+emit_16(1003);
+emit_16(939);
+emit_16(1004);
+emit_16(940);
+emit_16(1004);
+emit_16(939);
+emit_16(1004);
+emit_16(940);
+emit_16(1005);
+emit_16(941);
+emit_16(1005);
+emit_16(940);
+emit_16(1005);
+emit_16(941);
+emit_16(1006);
+emit_16(942);
+emit_16(1006);
+emit_16(941);
+emit_16(1006);
+emit_16(942);
+emit_16(1007);
+emit_16(943);
+emit_16(1007);
+emit_16(942);
+emit_16(1007);
+emit_16(943);
+emit_16(1008);
+emit_16(944);
+emit_16(1008);
+emit_16(943);
+emit_16(1008);
+emit_16(944);
+emit_16(1009);
+emit_16(945);
+emit_16(1009);
+emit_16(944);
+emit_16(1009);
+emit_16(945);
+emit_16(1010);
+emit_16(946);
+emit_16(1010);
+emit_16(945);
+emit_16(1010);
+emit_16(946);
+emit_16(1011);
+emit_16(947);
+emit_16(1011);
+emit_16(946);
+emit_16(1011);
+emit_16(947);
+emit_16(1012);
+emit_16(948);
+emit_16(1012);
+emit_16(947);
+emit_16(1012);
+emit_16(948);
+emit_16(1013);
+emit_16(949);
+emit_16(1013);
+emit_16(948);
+emit_16(1013);
+emit_16(949);
+emit_16(1014);
+emit_16(950);
+emit_16(1014);
+emit_16(949);
+emit_16(1014);
+emit_16(950);
+emit_16(1015);
+emit_16(951);
+emit_16(1015);
+emit_16(950);
+emit_16(1015);
+emit_16(951);
+emit_16(1016);
+emit_16(952);
+emit_16(1016);
+emit_16(951);
+emit_16(1016);
+emit_16(952);
+emit_16(1017);
+emit_16(953);
+emit_16(1017);
+emit_16(952);
+emit_16(1017);
+emit_16(953);
+emit_16(1018);
+emit_16(954);
+emit_16(1018);
+emit_16(953);
+emit_16(1018);
+emit_16(954);
+emit_16(1019);
+emit_16(955);
+emit_16(1019);
+emit_16(954);
+emit_16(1019);
+emit_16(955);
+emit_16(1020);
+emit_16(956);
+emit_16(1020);
+emit_16(955);
+emit_16(1020);
+emit_16(956);
+emit_16(1021);
+emit_16(957);
+emit_16(1021);
+emit_16(956);
+emit_16(1021);
+emit_16(957);
+emit_16(1022);
+emit_16(958);
+emit_16(1022);
+emit_16(957);
+emit_16(1022);
+emit_16(958);
+emit_16(1023);
+emit_16(959);
+emit_16(1023);
+emit_16(958);
+emit_16(1024);
+emit_16(960);
+emit_16(1025);
+emit_16(961);
+emit_16(1025);
+emit_16(960);
+emit_16(1025);
+emit_16(961);
+emit_16(1026);
+emit_16(962);
+emit_16(1026);
+emit_16(961);
+emit_16(1026);
+emit_16(962);
+emit_16(1027);
+emit_16(963);
+emit_16(1027);
+emit_16(962);
+emit_16(1027);
+emit_16(963);
+emit_16(1028);
+emit_16(964);
+emit_16(1028);
+emit_16(963);
+emit_16(1028);
+emit_16(964);
+emit_16(1029);
+emit_16(965);
+emit_16(1029);
+emit_16(964);
+emit_16(1029);
+emit_16(965);
+emit_16(1030);
+emit_16(966);
+emit_16(1030);
+emit_16(965);
+emit_16(1030);
+emit_16(966);
+emit_16(1031);
+emit_16(967);
+emit_16(1031);
+emit_16(966);
+emit_16(1031);
+emit_16(967);
+emit_16(1032);
+emit_16(968);
+emit_16(1032);
+emit_16(967);
+emit_16(1032);
+emit_16(968);
+emit_16(1033);
+emit_16(969);
+emit_16(1033);
+emit_16(968);
+emit_16(1033);
+emit_16(969);
+emit_16(1034);
+emit_16(970);
+emit_16(1034);
+emit_16(969);
+emit_16(1034);
+emit_16(970);
+emit_16(1035);
+emit_16(971);
+emit_16(1035);
+emit_16(970);
+emit_16(1035);
+emit_16(971);
+emit_16(1036);
+emit_16(972);
+emit_16(1036);
+emit_16(971);
+emit_16(1036);
+emit_16(972);
+emit_16(1037);
+emit_16(973);
+emit_16(1037);
+emit_16(972);
+emit_16(1037);
+emit_16(973);
+emit_16(1038);
+emit_16(974);
+emit_16(1038);
+emit_16(973);
+emit_16(1038);
+emit_16(974);
+emit_16(1039);
+emit_16(975);
+emit_16(1039);
+emit_16(974);
+emit_16(1039);
+emit_16(975);
+emit_16(1040);
+emit_16(976);
+emit_16(1040);
+emit_16(975);
+emit_16(1040);
+emit_16(976);
+emit_16(1041);
+emit_16(977);
+emit_16(1041);
+emit_16(976);
+emit_16(1041);
+emit_16(977);
+emit_16(1042);
+emit_16(978);
+emit_16(1042);
+emit_16(977);
+emit_16(1042);
+emit_16(978);
+emit_16(1043);
+emit_16(979);
+emit_16(1043);
+emit_16(978);
+emit_16(1043);
+emit_16(979);
+emit_16(1044);
+emit_16(980);
+emit_16(1044);
+emit_16(979);
+emit_16(1044);
+emit_16(980);
+emit_16(1045);
+emit_16(981);
+emit_16(1045);
+emit_16(980);
+emit_16(1045);
+emit_16(981);
+emit_16(1046);
+emit_16(982);
+emit_16(1046);
+emit_16(981);
+emit_16(1046);
+emit_16(982);
+emit_16(1047);
+emit_16(983);
+emit_16(1047);
+emit_16(982);
+emit_16(1047);
+emit_16(983);
+emit_16(1048);
+emit_16(984);
+emit_16(1048);
+emit_16(983);
+emit_16(1048);
+emit_16(984);
+emit_16(1049);
+emit_16(985);
+emit_16(1049);
+emit_16(984);
+emit_16(1049);
+emit_16(985);
+emit_16(1050);
+emit_16(986);
+emit_16(1050);
+emit_16(985);
+emit_16(1050);
+emit_16(986);
+emit_16(1051);
+emit_16(987);
+emit_16(1051);
+emit_16(986);
+emit_16(1051);
+emit_16(987);
+emit_16(1052);
+emit_16(988);
+emit_16(1052);
+emit_16(987);
+emit_16(1052);
+emit_16(988);
+emit_16(1053);
+emit_16(989);
+emit_16(1053);
+emit_16(988);
+emit_16(1053);
+emit_16(989);
+emit_16(1054);
+emit_16(990);
+emit_16(1054);
+emit_16(989);
+emit_16(1054);
+emit_16(990);
+emit_16(1055);
+emit_16(991);
+emit_16(1055);
+emit_16(990);
+emit_16(1055);
+emit_16(991);
+emit_16(1056);
+emit_16(992);
+emit_16(1056);
+emit_16(991);
+emit_16(1056);
+emit_16(992);
+emit_16(1057);
+emit_16(993);
+emit_16(1057);
+emit_16(992);
+emit_16(1057);
+emit_16(993);
+emit_16(1058);
+emit_16(994);
+emit_16(1058);
+emit_16(993);
+emit_16(1058);
+emit_16(994);
+emit_16(1059);
+emit_16(995);
+emit_16(1059);
+emit_16(994);
+emit_16(1059);
+emit_16(995);
+emit_16(1060);
+emit_16(996);
+emit_16(1060);
+emit_16(995);
+emit_16(1060);
+emit_16(996);
+emit_16(1061);
+emit_16(997);
+emit_16(1061);
+emit_16(996);
+emit_16(1061);
+emit_16(997);
+emit_16(1062);
+emit_16(998);
+emit_16(1062);
+emit_16(997);
+emit_16(1062);
+emit_16(998);
+emit_16(1063);
+emit_16(999);
+emit_16(1063);
+emit_16(998);
+emit_16(1063);
+emit_16(999);
+emit_16(1064);
+emit_16(1000);
+emit_16(1064);
+emit_16(999);
+emit_16(1064);
+emit_16(1000);
+emit_16(1065);
+emit_16(1001);
+emit_16(1065);
+emit_16(1000);
+emit_16(1065);
+emit_16(1001);
+emit_16(1066);
+emit_16(1002);
+emit_16(1066);
+emit_16(1001);
+emit_16(1066);
+emit_16(1002);
+emit_16(1067);
+emit_16(1003);
+emit_16(1067);
+emit_16(1002);
+emit_16(1067);
+emit_16(1003);
+emit_16(1068);
+emit_16(1004);
+emit_16(1068);
+emit_16(1003);
+emit_16(1068);
+emit_16(1004);
+emit_16(1069);
+emit_16(1005);
+emit_16(1069);
+emit_16(1004);
+emit_16(1069);
+emit_16(1005);
+emit_16(1070);
+emit_16(1006);
+emit_16(1070);
+emit_16(1005);
+emit_16(1070);
+emit_16(1006);
+emit_16(1071);
+emit_16(1007);
+emit_16(1071);
+emit_16(1006);
+emit_16(1071);
+emit_16(1007);
+emit_16(1072);
+emit_16(1008);
+emit_16(1072);
+emit_16(1007);
+emit_16(1072);
+emit_16(1008);
+emit_16(1073);
+emit_16(1009);
+emit_16(1073);
+emit_16(1008);
+emit_16(1073);
+emit_16(1009);
+emit_16(1074);
+emit_16(1010);
+emit_16(1074);
+emit_16(1009);
+emit_16(1074);
+emit_16(1010);
+emit_16(1075);
+emit_16(1011);
+emit_16(1075);
+emit_16(1010);
+emit_16(1075);
+emit_16(1011);
+emit_16(1076);
+emit_16(1012);
+emit_16(1076);
+emit_16(1011);
+emit_16(1076);
+emit_16(1012);
+emit_16(1077);
+emit_16(1013);
+emit_16(1077);
+emit_16(1012);
+emit_16(1077);
+emit_16(1013);
+emit_16(1078);
+emit_16(1014);
+emit_16(1078);
+emit_16(1013);
+emit_16(1078);
+emit_16(1014);
+emit_16(1079);
+emit_16(1015);
+emit_16(1079);
+emit_16(1014);
+emit_16(1079);
+emit_16(1015);
+emit_16(1080);
+emit_16(1016);
+emit_16(1080);
+emit_16(1015);
+emit_16(1080);
+emit_16(1016);
+emit_16(1081);
+emit_16(1017);
+emit_16(1081);
+emit_16(1016);
+emit_16(1081);
+emit_16(1017);
+emit_16(1082);
+emit_16(1018);
+emit_16(1082);
+emit_16(1017);
+emit_16(1082);
+emit_16(1018);
+emit_16(1083);
+emit_16(1019);
+emit_16(1083);
+emit_16(1018);
+emit_16(1083);
+emit_16(1019);
+emit_16(1084);
+emit_16(1020);
+emit_16(1084);
+emit_16(1019);
+emit_16(1084);
+emit_16(1020);
+emit_16(1085);
+emit_16(1021);
+emit_16(1085);
+emit_16(1020);
+emit_16(1085);
+emit_16(1021);
+emit_16(1086);
+emit_16(1022);
+emit_16(1086);
+emit_16(1021);
+emit_16(1086);
+emit_16(1022);
+emit_16(1087);
+emit_16(1023);
+emit_16(1087);
+emit_16(1022);
+emit_16(1088);
+emit_16(1024);
+emit_16(1089);
+emit_16(1025);
+emit_16(1089);
+emit_16(1024);
+emit_16(1089);
+emit_16(1025);
+emit_16(1090);
+emit_16(1026);
+emit_16(1090);
+emit_16(1025);
+emit_16(1090);
+emit_16(1026);
+emit_16(1091);
+emit_16(1027);
+emit_16(1091);
+emit_16(1026);
+emit_16(1091);
+emit_16(1027);
+emit_16(1092);
+emit_16(1028);
+emit_16(1092);
+emit_16(1027);
+emit_16(1092);
+emit_16(1028);
+emit_16(1093);
+emit_16(1029);
+emit_16(1093);
+emit_16(1028);
+emit_16(1093);
+emit_16(1029);
+emit_16(1094);
+emit_16(1030);
+emit_16(1094);
+emit_16(1029);
+emit_16(1094);
+emit_16(1030);
+emit_16(1095);
+emit_16(1031);
+emit_16(1095);
+emit_16(1030);
+emit_16(1095);
+emit_16(1031);
+emit_16(1096);
+emit_16(1032);
+emit_16(1096);
+emit_16(1031);
+emit_16(1096);
+emit_16(1032);
+emit_16(1097);
+emit_16(1033);
+emit_16(1097);
+emit_16(1032);
+emit_16(1097);
+emit_16(1033);
+emit_16(1098);
+emit_16(1034);
+emit_16(1098);
+emit_16(1033);
+emit_16(1098);
+emit_16(1034);
+emit_16(1099);
+emit_16(1035);
+emit_16(1099);
+emit_16(1034);
+emit_16(1099);
+emit_16(1035);
+emit_16(1100);
+emit_16(1036);
+emit_16(1100);
+emit_16(1035);
+emit_16(1100);
+emit_16(1036);
+emit_16(1101);
+emit_16(1037);
+emit_16(1101);
+emit_16(1036);
+emit_16(1101);
+emit_16(1037);
+emit_16(1102);
+emit_16(1038);
+emit_16(1102);
+emit_16(1037);
+emit_16(1102);
+emit_16(1038);
+emit_16(1103);
+emit_16(1039);
+emit_16(1103);
+emit_16(1038);
+emit_16(1103);
+emit_16(1039);
+emit_16(1104);
+emit_16(1040);
+emit_16(1104);
+emit_16(1039);
+emit_16(1104);
+emit_16(1040);
+emit_16(1105);
+emit_16(1041);
+emit_16(1105);
+emit_16(1040);
+emit_16(1105);
+emit_16(1041);
+emit_16(1106);
+emit_16(1042);
+emit_16(1106);
+emit_16(1041);
+emit_16(1106);
+emit_16(1042);
+emit_16(1107);
+emit_16(1043);
+emit_16(1107);
+emit_16(1042);
+emit_16(1107);
+emit_16(1043);
+emit_16(1108);
+emit_16(1044);
+emit_16(1108);
+emit_16(1043);
+emit_16(1108);
+emit_16(1044);
+emit_16(1109);
+emit_16(1045);
+emit_16(1109);
+emit_16(1044);
+emit_16(1109);
+emit_16(1045);
+emit_16(1110);
+emit_16(1046);
+emit_16(1110);
+emit_16(1045);
+emit_16(1110);
+emit_16(1046);
+emit_16(1111);
+emit_16(1047);
+emit_16(1111);
+emit_16(1046);
+emit_16(1111);
+emit_16(1047);
+emit_16(1112);
+emit_16(1048);
+emit_16(1112);
+emit_16(1047);
+emit_16(1112);
+emit_16(1048);
+emit_16(1113);
+emit_16(1049);
+emit_16(1113);
+emit_16(1048);
+emit_16(1113);
+emit_16(1049);
+emit_16(1114);
+emit_16(1050);
+emit_16(1114);
+emit_16(1049);
+emit_16(1114);
+emit_16(1050);
+emit_16(1115);
+emit_16(1051);
+emit_16(1115);
+emit_16(1050);
+emit_16(1115);
+emit_16(1051);
+emit_16(1116);
+emit_16(1052);
+emit_16(1116);
+emit_16(1051);
+emit_16(1116);
+emit_16(1052);
+emit_16(1117);
+emit_16(1053);
+emit_16(1117);
+emit_16(1052);
+emit_16(1117);
+emit_16(1053);
+emit_16(1118);
+emit_16(1054);
+emit_16(1118);
+emit_16(1053);
+emit_16(1118);
+emit_16(1054);
+emit_16(1119);
+emit_16(1055);
+emit_16(1119);
+emit_16(1054);
+emit_16(1119);
+emit_16(1055);
+emit_16(1120);
+emit_16(1056);
+emit_16(1120);
+emit_16(1055);
+emit_16(1120);
+emit_16(1056);
+emit_16(1121);
+emit_16(1057);
+emit_16(1121);
+emit_16(1056);
+emit_16(1121);
+emit_16(1057);
+emit_16(1122);
+emit_16(1058);
+emit_16(1122);
+emit_16(1057);
+emit_16(1122);
+emit_16(1058);
+emit_16(1123);
+emit_16(1059);
+emit_16(1123);
+emit_16(1058);
+emit_16(1123);
+emit_16(1059);
+emit_16(1124);
+emit_16(1060);
+emit_16(1124);
+emit_16(1059);
+emit_16(1124);
+emit_16(1060);
+emit_16(1125);
+emit_16(1061);
+emit_16(1125);
+emit_16(1060);
+emit_16(1125);
+emit_16(1061);
+emit_16(1126);
+emit_16(1062);
+emit_16(1126);
+emit_16(1061);
+emit_16(1126);
+emit_16(1062);
+emit_16(1127);
+emit_16(1063);
+emit_16(1127);
+emit_16(1062);
+emit_16(1127);
+emit_16(1063);
+emit_16(1128);
+emit_16(1064);
+emit_16(1128);
+emit_16(1063);
+emit_16(1128);
+emit_16(1064);
+emit_16(1129);
+emit_16(1065);
+emit_16(1129);
+emit_16(1064);
+emit_16(1129);
+emit_16(1065);
+emit_16(1130);
+emit_16(1066);
+emit_16(1130);
+emit_16(1065);
+emit_16(1130);
+emit_16(1066);
+emit_16(1131);
+emit_16(1067);
+emit_16(1131);
+emit_16(1066);
+emit_16(1131);
+emit_16(1067);
+emit_16(1132);
+emit_16(1068);
+emit_16(1132);
+emit_16(1067);
+emit_16(1132);
+emit_16(1068);
+emit_16(1133);
+emit_16(1069);
+emit_16(1133);
+emit_16(1068);
+emit_16(1133);
+emit_16(1069);
+emit_16(1134);
+emit_16(1070);
+emit_16(1134);
+emit_16(1069);
+emit_16(1134);
+emit_16(1070);
+emit_16(1135);
+emit_16(1071);
+emit_16(1135);
+emit_16(1070);
+emit_16(1135);
+emit_16(1071);
+emit_16(1136);
+emit_16(1072);
+emit_16(1136);
+emit_16(1071);
+emit_16(1136);
+emit_16(1072);
+emit_16(1137);
+emit_16(1073);
+emit_16(1137);
+emit_16(1072);
+emit_16(1137);
+emit_16(1073);
+emit_16(1138);
+emit_16(1074);
+emit_16(1138);
+emit_16(1073);
+emit_16(1138);
+emit_16(1074);
+emit_16(1139);
+emit_16(1075);
+emit_16(1139);
+emit_16(1074);
+emit_16(1139);
+emit_16(1075);
+emit_16(1140);
+emit_16(1076);
+emit_16(1140);
+emit_16(1075);
+emit_16(1140);
+emit_16(1076);
+emit_16(1141);
+emit_16(1077);
+emit_16(1141);
+emit_16(1076);
+emit_16(1141);
+emit_16(1077);
+emit_16(1142);
+emit_16(1078);
+emit_16(1142);
+emit_16(1077);
+emit_16(1142);
+emit_16(1078);
+emit_16(1143);
+emit_16(1079);
+emit_16(1143);
+emit_16(1078);
+emit_16(1143);
+emit_16(1079);
+emit_16(1144);
+emit_16(1080);
+emit_16(1144);
+emit_16(1079);
+emit_16(1144);
+emit_16(1080);
+emit_16(1145);
+emit_16(1081);
+emit_16(1145);
+emit_16(1080);
+emit_16(1145);
+emit_16(1081);
+emit_16(1146);
+emit_16(1082);
+emit_16(1146);
+emit_16(1081);
+emit_16(1146);
+emit_16(1082);
+emit_16(1147);
+emit_16(1083);
+emit_16(1147);
+emit_16(1082);
+emit_16(1147);
+emit_16(1083);
+emit_16(1148);
+emit_16(1084);
+emit_16(1148);
+emit_16(1083);
+emit_16(1148);
+emit_16(1084);
+emit_16(1149);
+emit_16(1085);
+emit_16(1149);
+emit_16(1084);
+emit_16(1149);
+emit_16(1085);
+emit_16(1150);
+emit_16(1086);
+emit_16(1150);
+emit_16(1085);
+emit_16(1150);
+emit_16(1086);
+emit_16(1151);
+emit_16(1087);
+emit_16(1151);
+emit_16(1086);
+emit_16(1152);
+emit_16(1088);
+emit_16(1153);
+emit_16(1089);
+emit_16(1153);
+emit_16(1088);
+emit_16(1153);
+emit_16(1089);
+emit_16(1154);
+emit_16(1090);
+emit_16(1154);
+emit_16(1089);
+emit_16(1154);
+emit_16(1090);
+emit_16(1155);
+emit_16(1091);
+emit_16(1155);
+emit_16(1090);
+emit_16(1155);
+emit_16(1091);
+emit_16(1156);
+emit_16(1092);
+emit_16(1156);
+emit_16(1091);
+emit_16(1156);
+emit_16(1092);
+emit_16(1157);
+emit_16(1093);
+emit_16(1157);
+emit_16(1092);
+emit_16(1157);
+emit_16(1093);
+emit_16(1158);
+emit_16(1094);
+emit_16(1158);
+emit_16(1093);
+emit_16(1158);
+emit_16(1094);
+emit_16(1159);
+emit_16(1095);
+emit_16(1159);
+emit_16(1094);
+emit_16(1159);
+emit_16(1095);
+emit_16(1160);
+emit_16(1096);
+emit_16(1160);
+emit_16(1095);
+emit_16(1160);
+emit_16(1096);
+emit_16(1161);
+emit_16(1097);
+emit_16(1161);
+emit_16(1096);
+emit_16(1161);
+emit_16(1097);
+emit_16(1162);
+emit_16(1098);
+emit_16(1162);
+emit_16(1097);
+emit_16(1162);
+emit_16(1098);
+emit_16(1163);
+emit_16(1099);
+emit_16(1163);
+emit_16(1098);
+emit_16(1163);
+emit_16(1099);
+emit_16(1164);
+emit_16(1100);
+emit_16(1164);
+emit_16(1099);
+emit_16(1164);
+emit_16(1100);
+emit_16(1165);
+emit_16(1101);
+emit_16(1165);
+emit_16(1100);
+emit_16(1165);
+emit_16(1101);
+emit_16(1166);
+emit_16(1102);
+emit_16(1166);
+emit_16(1101);
+emit_16(1166);
+emit_16(1102);
+emit_16(1167);
+emit_16(1103);
+emit_16(1167);
+emit_16(1102);
+emit_16(1167);
+emit_16(1103);
+emit_16(1168);
+emit_16(1104);
+emit_16(1168);
+emit_16(1103);
+emit_16(1168);
+emit_16(1104);
+emit_16(1169);
+emit_16(1105);
+emit_16(1169);
+emit_16(1104);
+emit_16(1169);
+emit_16(1105);
+emit_16(1170);
+emit_16(1106);
+emit_16(1170);
+emit_16(1105);
+emit_16(1170);
+emit_16(1106);
+emit_16(1171);
+emit_16(1107);
+emit_16(1171);
+emit_16(1106);
+emit_16(1171);
+emit_16(1107);
+emit_16(1172);
+emit_16(1108);
+emit_16(1172);
+emit_16(1107);
+emit_16(1172);
+emit_16(1108);
+emit_16(1173);
+emit_16(1109);
+emit_16(1173);
+emit_16(1108);
+emit_16(1173);
+emit_16(1109);
+emit_16(1174);
+emit_16(1110);
+emit_16(1174);
+emit_16(1109);
+emit_16(1174);
+emit_16(1110);
+emit_16(1175);
+emit_16(1111);
+emit_16(1175);
+emit_16(1110);
+emit_16(1175);
+emit_16(1111);
+emit_16(1176);
+emit_16(1112);
+emit_16(1176);
+emit_16(1111);
+emit_16(1176);
+emit_16(1112);
+emit_16(1177);
+emit_16(1113);
+emit_16(1177);
+emit_16(1112);
+emit_16(1177);
+emit_16(1113);
+emit_16(1178);
+emit_16(1114);
+emit_16(1178);
+emit_16(1113);
+emit_16(1178);
+emit_16(1114);
+emit_16(1179);
+emit_16(1115);
+emit_16(1179);
+emit_16(1114);
+emit_16(1179);
+emit_16(1115);
+emit_16(1180);
+emit_16(1116);
+emit_16(1180);
+emit_16(1115);
+emit_16(1180);
+emit_16(1116);
+emit_16(1181);
+emit_16(1117);
+emit_16(1181);
+emit_16(1116);
+emit_16(1181);
+emit_16(1117);
+emit_16(1182);
+emit_16(1118);
+emit_16(1182);
+emit_16(1117);
+emit_16(1182);
+emit_16(1118);
+emit_16(1183);
+emit_16(1119);
+emit_16(1183);
+emit_16(1118);
+emit_16(1183);
+emit_16(1119);
+emit_16(1184);
+emit_16(1120);
+emit_16(1184);
+emit_16(1119);
+emit_16(1184);
+emit_16(1120);
+emit_16(1185);
+emit_16(1121);
+emit_16(1185);
+emit_16(1120);
+emit_16(1185);
+emit_16(1121);
+emit_16(1186);
+emit_16(1122);
+emit_16(1186);
+emit_16(1121);
+emit_16(1186);
+emit_16(1122);
+emit_16(1187);
+emit_16(1123);
+emit_16(1187);
+emit_16(1122);
+emit_16(1187);
+emit_16(1123);
+emit_16(1188);
+emit_16(1124);
+emit_16(1188);
+emit_16(1123);
+emit_16(1188);
+emit_16(1124);
+emit_16(1189);
+emit_16(1125);
+emit_16(1189);
+emit_16(1124);
+emit_16(1189);
+emit_16(1125);
+emit_16(1190);
+emit_16(1126);
+emit_16(1190);
+emit_16(1125);
+emit_16(1190);
+emit_16(1126);
+emit_16(1191);
+emit_16(1127);
+emit_16(1191);
+emit_16(1126);
+emit_16(1191);
+emit_16(1127);
+emit_16(1192);
+emit_16(1128);
+emit_16(1192);
+emit_16(1127);
+emit_16(1192);
+emit_16(1128);
+emit_16(1193);
+emit_16(1129);
+emit_16(1193);
+emit_16(1128);
+emit_16(1193);
+emit_16(1129);
+emit_16(1194);
+emit_16(1130);
+emit_16(1194);
+emit_16(1129);
+emit_16(1194);
+emit_16(1130);
+emit_16(1195);
+emit_16(1131);
+emit_16(1195);
+emit_16(1130);
+emit_16(1195);
+emit_16(1131);
+emit_16(1196);
+emit_16(1132);
+emit_16(1196);
+emit_16(1131);
+emit_16(1196);
+emit_16(1132);
+emit_16(1197);
+emit_16(1133);
+emit_16(1197);
+emit_16(1132);
+emit_16(1197);
+emit_16(1133);
+emit_16(1198);
+emit_16(1134);
+emit_16(1198);
+emit_16(1133);
+emit_16(1198);
+emit_16(1134);
+emit_16(1199);
+emit_16(1135);
+emit_16(1199);
+emit_16(1134);
+emit_16(1199);
+emit_16(1135);
+emit_16(1200);
+emit_16(1136);
+emit_16(1200);
+emit_16(1135);
+emit_16(1200);
+emit_16(1136);
+emit_16(1201);
+emit_16(1137);
+emit_16(1201);
+emit_16(1136);
+emit_16(1201);
+emit_16(1137);
+emit_16(1202);
+emit_16(1138);
+emit_16(1202);
+emit_16(1137);
+emit_16(1202);
+emit_16(1138);
+emit_16(1203);
+emit_16(1139);
+emit_16(1203);
+emit_16(1138);
+emit_16(1203);
+emit_16(1139);
+emit_16(1204);
+emit_16(1140);
+emit_16(1204);
+emit_16(1139);
+emit_16(1204);
+emit_16(1140);
+emit_16(1205);
+emit_16(1141);
+emit_16(1205);
+emit_16(1140);
+emit_16(1205);
+emit_16(1141);
+emit_16(1206);
+emit_16(1142);
+emit_16(1206);
+emit_16(1141);
+emit_16(1206);
+emit_16(1142);
+emit_16(1207);
+emit_16(1143);
+emit_16(1207);
+emit_16(1142);
+emit_16(1207);
+emit_16(1143);
+emit_16(1208);
+emit_16(1144);
+emit_16(1208);
+emit_16(1143);
+emit_16(1208);
+emit_16(1144);
+emit_16(1209);
+emit_16(1145);
+emit_16(1209);
+emit_16(1144);
+emit_16(1209);
+emit_16(1145);
+emit_16(1210);
+emit_16(1146);
+emit_16(1210);
+emit_16(1145);
+emit_16(1210);
+emit_16(1146);
+emit_16(1211);
+emit_16(1147);
+emit_16(1211);
+emit_16(1146);
+emit_16(1211);
+emit_16(1147);
+emit_16(1212);
+emit_16(1148);
+emit_16(1212);
+emit_16(1147);
+emit_16(1212);
+emit_16(1148);
+emit_16(1213);
+emit_16(1149);
+emit_16(1213);
+emit_16(1148);
+emit_16(1213);
+emit_16(1149);
+emit_16(1214);
+emit_16(1150);
+emit_16(1214);
+emit_16(1149);
+emit_16(1214);
+emit_16(1150);
+emit_16(1215);
+emit_16(1151);
+emit_16(1215);
+emit_16(1150);
+emit_16(1216);
+emit_16(1152);
+emit_16(1217);
+emit_16(1153);
+emit_16(1217);
+emit_16(1152);
+emit_16(1217);
+emit_16(1153);
+emit_16(1218);
+emit_16(1154);
+emit_16(1218);
+emit_16(1153);
+emit_16(1218);
+emit_16(1154);
+emit_16(1219);
+emit_16(1155);
+emit_16(1219);
+emit_16(1154);
+emit_16(1219);
+emit_16(1155);
+emit_16(1220);
+emit_16(1156);
+emit_16(1220);
+emit_16(1155);
+emit_16(1220);
+emit_16(1156);
+emit_16(1221);
+emit_16(1157);
+emit_16(1221);
+emit_16(1156);
+emit_16(1221);
+emit_16(1157);
+emit_16(1222);
+emit_16(1158);
+emit_16(1222);
+emit_16(1157);
+emit_16(1222);
+emit_16(1158);
+emit_16(1223);
+emit_16(1159);
+emit_16(1223);
+emit_16(1158);
+emit_16(1223);
+emit_16(1159);
+emit_16(1224);
+emit_16(1160);
+emit_16(1224);
+emit_16(1159);
+emit_16(1224);
+emit_16(1160);
+emit_16(1225);
+emit_16(1161);
+emit_16(1225);
+emit_16(1160);
+emit_16(1225);
+emit_16(1161);
+emit_16(1226);
+emit_16(1162);
+emit_16(1226);
+emit_16(1161);
+emit_16(1226);
+emit_16(1162);
+emit_16(1227);
+emit_16(1163);
+emit_16(1227);
+emit_16(1162);
+emit_16(1227);
+emit_16(1163);
+emit_16(1228);
+emit_16(1164);
+emit_16(1228);
+emit_16(1163);
+emit_16(1228);
+emit_16(1164);
+emit_16(1229);
+emit_16(1165);
+emit_16(1229);
+emit_16(1164);
+emit_16(1229);
+emit_16(1165);
+emit_16(1230);
+emit_16(1166);
+emit_16(1230);
+emit_16(1165);
+emit_16(1230);
+emit_16(1166);
+emit_16(1231);
+emit_16(1167);
+emit_16(1231);
+emit_16(1166);
+emit_16(1231);
+emit_16(1167);
+emit_16(1232);
+emit_16(1168);
+emit_16(1232);
+emit_16(1167);
+emit_16(1232);
+emit_16(1168);
+emit_16(1233);
+emit_16(1169);
+emit_16(1233);
+emit_16(1168);
+emit_16(1233);
+emit_16(1169);
+emit_16(1234);
+emit_16(1170);
+emit_16(1234);
+emit_16(1169);
+emit_16(1234);
+emit_16(1170);
+emit_16(1235);
+emit_16(1171);
+emit_16(1235);
+emit_16(1170);
+emit_16(1235);
+emit_16(1171);
+emit_16(1236);
+emit_16(1172);
+emit_16(1236);
+emit_16(1171);
+emit_16(1236);
+emit_16(1172);
+emit_16(1237);
+emit_16(1173);
+emit_16(1237);
+emit_16(1172);
+emit_16(1237);
+emit_16(1173);
+emit_16(1238);
+emit_16(1174);
+emit_16(1238);
+emit_16(1173);
+emit_16(1238);
+emit_16(1174);
+emit_16(1239);
+emit_16(1175);
+emit_16(1239);
+emit_16(1174);
+emit_16(1239);
+emit_16(1175);
+emit_16(1240);
+emit_16(1176);
+emit_16(1240);
+emit_16(1175);
+emit_16(1240);
+emit_16(1176);
+emit_16(1241);
+emit_16(1177);
+emit_16(1241);
+emit_16(1176);
+emit_16(1241);
+emit_16(1177);
+emit_16(1242);
+emit_16(1178);
+emit_16(1242);
+emit_16(1177);
+emit_16(1242);
+emit_16(1178);
+emit_16(1243);
+emit_16(1179);
+emit_16(1243);
+emit_16(1178);
+emit_16(1243);
+emit_16(1179);
+emit_16(1244);
+emit_16(1180);
+emit_16(1244);
+emit_16(1179);
+emit_16(1244);
+emit_16(1180);
+emit_16(1245);
+emit_16(1181);
+emit_16(1245);
+emit_16(1180);
+emit_16(1245);
+emit_16(1181);
+emit_16(1246);
+emit_16(1182);
+emit_16(1246);
+emit_16(1181);
+emit_16(1246);
+emit_16(1182);
+emit_16(1247);
+emit_16(1183);
+emit_16(1247);
+emit_16(1182);
+emit_16(1247);
+emit_16(1183);
+emit_16(1248);
+emit_16(1184);
+emit_16(1248);
+emit_16(1183);
+emit_16(1248);
+emit_16(1184);
+emit_16(1249);
+emit_16(1185);
+emit_16(1249);
+emit_16(1184);
+emit_16(1249);
+emit_16(1185);
+emit_16(1250);
+emit_16(1186);
+emit_16(1250);
+emit_16(1185);
+emit_16(1250);
+emit_16(1186);
+emit_16(1251);
+emit_16(1187);
+emit_16(1251);
+emit_16(1186);
+emit_16(1251);
+emit_16(1187);
+emit_16(1252);
+emit_16(1188);
+emit_16(1252);
+emit_16(1187);
+emit_16(1252);
+emit_16(1188);
+emit_16(1253);
+emit_16(1189);
+emit_16(1253);
+emit_16(1188);
+emit_16(1253);
+emit_16(1189);
+emit_16(1254);
+emit_16(1190);
+emit_16(1254);
+emit_16(1189);
+emit_16(1254);
+emit_16(1190);
+emit_16(1255);
+emit_16(1191);
+emit_16(1255);
+emit_16(1190);
+emit_16(1255);
+emit_16(1191);
+emit_16(1256);
+emit_16(1192);
+emit_16(1256);
+emit_16(1191);
+emit_16(1256);
+emit_16(1192);
+emit_16(1257);
+emit_16(1193);
+emit_16(1257);
+emit_16(1192);
+emit_16(1257);
+emit_16(1193);
+emit_16(1258);
+emit_16(1194);
+emit_16(1258);
+emit_16(1193);
+emit_16(1258);
+emit_16(1194);
+emit_16(1259);
+emit_16(1195);
+emit_16(1259);
+emit_16(1194);
+emit_16(1259);
+emit_16(1195);
+emit_16(1260);
+emit_16(1196);
+emit_16(1260);
+emit_16(1195);
+emit_16(1260);
+emit_16(1196);
+emit_16(1261);
+emit_16(1197);
+emit_16(1261);
+emit_16(1196);
+emit_16(1261);
+emit_16(1197);
+emit_16(1262);
+emit_16(1198);
+emit_16(1262);
+emit_16(1197);
+emit_16(1262);
+emit_16(1198);
+emit_16(1263);
+emit_16(1199);
+emit_16(1263);
+emit_16(1198);
+emit_16(1263);
+emit_16(1199);
+emit_16(1264);
+emit_16(1200);
+emit_16(1264);
+emit_16(1199);
+emit_16(1264);
+emit_16(1200);
+emit_16(1265);
+emit_16(1201);
+emit_16(1265);
+emit_16(1200);
+emit_16(1265);
+emit_16(1201);
+emit_16(1266);
+emit_16(1202);
+emit_16(1266);
+emit_16(1201);
+emit_16(1266);
+emit_16(1202);
+emit_16(1267);
+emit_16(1203);
+emit_16(1267);
+emit_16(1202);
+emit_16(1267);
+emit_16(1203);
+emit_16(1268);
+emit_16(1204);
+emit_16(1268);
+emit_16(1203);
+emit_16(1268);
+emit_16(1204);
+emit_16(1269);
+emit_16(1205);
+emit_16(1269);
+emit_16(1204);
+emit_16(1269);
+emit_16(1205);
+emit_16(1270);
+emit_16(1206);
+emit_16(1270);
+emit_16(1205);
+emit_16(1270);
+emit_16(1206);
+emit_16(1271);
+emit_16(1207);
+emit_16(1271);
+emit_16(1206);
+emit_16(1271);
+emit_16(1207);
+emit_16(1272);
+emit_16(1208);
+emit_16(1272);
+emit_16(1207);
+emit_16(1272);
+emit_16(1208);
+emit_16(1273);
+emit_16(1209);
+emit_16(1273);
+emit_16(1208);
+emit_16(1273);
+emit_16(1209);
+emit_16(1274);
+emit_16(1210);
+emit_16(1274);
+emit_16(1209);
+emit_16(1274);
+emit_16(1210);
+emit_16(1275);
+emit_16(1211);
+emit_16(1275);
+emit_16(1210);
+emit_16(1275);
+emit_16(1211);
+emit_16(1276);
+emit_16(1212);
+emit_16(1276);
+emit_16(1211);
+emit_16(1276);
+emit_16(1212);
+emit_16(1277);
+emit_16(1213);
+emit_16(1277);
+emit_16(1212);
+emit_16(1277);
+emit_16(1213);
+emit_16(1278);
+emit_16(1214);
+emit_16(1278);
+emit_16(1213);
+emit_16(1278);
+emit_16(1214);
+emit_16(1279);
+emit_16(1215);
+emit_16(1279);
+emit_16(1214);
+emit_16(1280);
+emit_16(1216);
+emit_16(1281);
+emit_16(1217);
+emit_16(1281);
+emit_16(1216);
+emit_16(1281);
+emit_16(1217);
+emit_16(1282);
+emit_16(1218);
+emit_16(1282);
+emit_16(1217);
+emit_16(1282);
+emit_16(1218);
+emit_16(1283);
+emit_16(1219);
+emit_16(1283);
+emit_16(1218);
+emit_16(1283);
+emit_16(1219);
+emit_16(1284);
+emit_16(1220);
+emit_16(1284);
+emit_16(1219);
+emit_16(1284);
+emit_16(1220);
+emit_16(1285);
+emit_16(1221);
+emit_16(1285);
+emit_16(1220);
+emit_16(1285);
+emit_16(1221);
+emit_16(1286);
+emit_16(1222);
+emit_16(1286);
+emit_16(1221);
+emit_16(1286);
+emit_16(1222);
+emit_16(1287);
+emit_16(1223);
+emit_16(1287);
+emit_16(1222);
+emit_16(1287);
+emit_16(1223);
+emit_16(1288);
+emit_16(1224);
+emit_16(1288);
+emit_16(1223);
+emit_16(1288);
+emit_16(1224);
+emit_16(1289);
+emit_16(1225);
+emit_16(1289);
+emit_16(1224);
+emit_16(1289);
+emit_16(1225);
+emit_16(1290);
+emit_16(1226);
+emit_16(1290);
+emit_16(1225);
+emit_16(1290);
+emit_16(1226);
+emit_16(1291);
+emit_16(1227);
+emit_16(1291);
+emit_16(1226);
+emit_16(1291);
+emit_16(1227);
+emit_16(1292);
+emit_16(1228);
+emit_16(1292);
+emit_16(1227);
+emit_16(1292);
+emit_16(1228);
+emit_16(1293);
+emit_16(1229);
+emit_16(1293);
+emit_16(1228);
+emit_16(1293);
+emit_16(1229);
+emit_16(1294);
+emit_16(1230);
+emit_16(1294);
+emit_16(1229);
+emit_16(1294);
+emit_16(1230);
+emit_16(1295);
+emit_16(1231);
+emit_16(1295);
+emit_16(1230);
+emit_16(1295);
+emit_16(1231);
+emit_16(1296);
+emit_16(1232);
+emit_16(1296);
+emit_16(1231);
+emit_16(1296);
+emit_16(1232);
+emit_16(1297);
+emit_16(1233);
+emit_16(1297);
+emit_16(1232);
+emit_16(1297);
+emit_16(1233);
+emit_16(1298);
+emit_16(1234);
+emit_16(1298);
+emit_16(1233);
+emit_16(1298);
+emit_16(1234);
+emit_16(1299);
+emit_16(1235);
+emit_16(1299);
+emit_16(1234);
+emit_16(1299);
+emit_16(1235);
+emit_16(1300);
+emit_16(1236);
+emit_16(1300);
+emit_16(1235);
+emit_16(1300);
+emit_16(1236);
+emit_16(1301);
+emit_16(1237);
+emit_16(1301);
+emit_16(1236);
+emit_16(1301);
+emit_16(1237);
+emit_16(1302);
+emit_16(1238);
+emit_16(1302);
+emit_16(1237);
+emit_16(1302);
+emit_16(1238);
+emit_16(1303);
+emit_16(1239);
+emit_16(1303);
+emit_16(1238);
+emit_16(1303);
+emit_16(1239);
+emit_16(1304);
+emit_16(1240);
+emit_16(1304);
+emit_16(1239);
+emit_16(1304);
+emit_16(1240);
+emit_16(1305);
+emit_16(1241);
+emit_16(1305);
+emit_16(1240);
+emit_16(1305);
+emit_16(1241);
+emit_16(1306);
+emit_16(1242);
+emit_16(1306);
+emit_16(1241);
+emit_16(1306);
+emit_16(1242);
+emit_16(1307);
+emit_16(1243);
+emit_16(1307);
+emit_16(1242);
+emit_16(1307);
+emit_16(1243);
+emit_16(1308);
+emit_16(1244);
+emit_16(1308);
+emit_16(1243);
+emit_16(1308);
+emit_16(1244);
+emit_16(1309);
+emit_16(1245);
+emit_16(1309);
+emit_16(1244);
+emit_16(1309);
+emit_16(1245);
+emit_16(1310);
+emit_16(1246);
+emit_16(1310);
+emit_16(1245);
+emit_16(1310);
+emit_16(1246);
+emit_16(1311);
+emit_16(1247);
+emit_16(1311);
+emit_16(1246);
+emit_16(1311);
+emit_16(1247);
+emit_16(1312);
+emit_16(1248);
+emit_16(1312);
+emit_16(1247);
+emit_16(1312);
+emit_16(1248);
+emit_16(1313);
+emit_16(1249);
+emit_16(1313);
+emit_16(1248);
+emit_16(1313);
+emit_16(1249);
+emit_16(1314);
+emit_16(1250);
+emit_16(1314);
+emit_16(1249);
+emit_16(1314);
+emit_16(1250);
+emit_16(1315);
+emit_16(1251);
+emit_16(1315);
+emit_16(1250);
+emit_16(1315);
+emit_16(1251);
+emit_16(1316);
+emit_16(1252);
+emit_16(1316);
+emit_16(1251);
+emit_16(1316);
+emit_16(1252);
+emit_16(1317);
+emit_16(1253);
+emit_16(1317);
+emit_16(1252);
+emit_16(1317);
+emit_16(1253);
+emit_16(1318);
+emit_16(1254);
+emit_16(1318);
+emit_16(1253);
+emit_16(1318);
+emit_16(1254);
+emit_16(1319);
+emit_16(1255);
+emit_16(1319);
+emit_16(1254);
+emit_16(1319);
+emit_16(1255);
+emit_16(1320);
+emit_16(1256);
+emit_16(1320);
+emit_16(1255);
+emit_16(1320);
+emit_16(1256);
+emit_16(1321);
+emit_16(1257);
+emit_16(1321);
+emit_16(1256);
+emit_16(1321);
+emit_16(1257);
+emit_16(1322);
+emit_16(1258);
+emit_16(1322);
+emit_16(1257);
+emit_16(1322);
+emit_16(1258);
+emit_16(1323);
+emit_16(1259);
+emit_16(1323);
+emit_16(1258);
+emit_16(1323);
+emit_16(1259);
+emit_16(1324);
+emit_16(1260);
+emit_16(1324);
+emit_16(1259);
+emit_16(1324);
+emit_16(1260);
+emit_16(1325);
+emit_16(1261);
+emit_16(1325);
+emit_16(1260);
+emit_16(1325);
+emit_16(1261);
+emit_16(1326);
+emit_16(1262);
+emit_16(1326);
+emit_16(1261);
+emit_16(1326);
+emit_16(1262);
+emit_16(1327);
+emit_16(1263);
+emit_16(1327);
+emit_16(1262);
+emit_16(1327);
+emit_16(1263);
+emit_16(1328);
+emit_16(1264);
+emit_16(1328);
+emit_16(1263);
+emit_16(1328);
+emit_16(1264);
+emit_16(1329);
+emit_16(1265);
+emit_16(1329);
+emit_16(1264);
+emit_16(1329);
+emit_16(1265);
+emit_16(1330);
+emit_16(1266);
+emit_16(1330);
+emit_16(1265);
+emit_16(1330);
+emit_16(1266);
+emit_16(1331);
+emit_16(1267);
+emit_16(1331);
+emit_16(1266);
+emit_16(1331);
+emit_16(1267);
+emit_16(1332);
+emit_16(1268);
+emit_16(1332);
+emit_16(1267);
+emit_16(1332);
+emit_16(1268);
+emit_16(1333);
+emit_16(1269);
+emit_16(1333);
+emit_16(1268);
+emit_16(1333);
+emit_16(1269);
+emit_16(1334);
+emit_16(1270);
+emit_16(1334);
+emit_16(1269);
+emit_16(1334);
+emit_16(1270);
+emit_16(1335);
+emit_16(1271);
+emit_16(1335);
+emit_16(1270);
+emit_16(1335);
+emit_16(1271);
+emit_16(1336);
+emit_16(1272);
+emit_16(1336);
+emit_16(1271);
+emit_16(1336);
+emit_16(1272);
+emit_16(1337);
+emit_16(1273);
+emit_16(1337);
+emit_16(1272);
+emit_16(1337);
+emit_16(1273);
+emit_16(1338);
+emit_16(1274);
+emit_16(1338);
+emit_16(1273);
+emit_16(1338);
+emit_16(1274);
+emit_16(1339);
+emit_16(1275);
+emit_16(1339);
+emit_16(1274);
+emit_16(1339);
+emit_16(1275);
+emit_16(1340);
+emit_16(1276);
+emit_16(1340);
+emit_16(1275);
+emit_16(1340);
+emit_16(1276);
+emit_16(1341);
+emit_16(1277);
+emit_16(1341);
+emit_16(1276);
+emit_16(1341);
+emit_16(1277);
+emit_16(1342);
+emit_16(1278);
+emit_16(1342);
+emit_16(1277);
+emit_16(1342);
+emit_16(1278);
+emit_16(1343);
+emit_16(1279);
+emit_16(1343);
+emit_16(1278);
+emit_16(1344);
+emit_16(1280);
+emit_16(1345);
+emit_16(1281);
+emit_16(1345);
+emit_16(1280);
+emit_16(1345);
+emit_16(1281);
+emit_16(1346);
+emit_16(1282);
+emit_16(1346);
+emit_16(1281);
+emit_16(1346);
+emit_16(1282);
+emit_16(1347);
+emit_16(1283);
+emit_16(1347);
+emit_16(1282);
+emit_16(1347);
+emit_16(1283);
+emit_16(1348);
+emit_16(1284);
+emit_16(1348);
+emit_16(1283);
+emit_16(1348);
+emit_16(1284);
+emit_16(1349);
+emit_16(1285);
+emit_16(1349);
+emit_16(1284);
+emit_16(1349);
+emit_16(1285);
+emit_16(1350);
+emit_16(1286);
+emit_16(1350);
+emit_16(1285);
+emit_16(1350);
+emit_16(1286);
+emit_16(1351);
+emit_16(1287);
+emit_16(1351);
+emit_16(1286);
+emit_16(1351);
+emit_16(1287);
+emit_16(1352);
+emit_16(1288);
+emit_16(1352);
+emit_16(1287);
+emit_16(1352);
+emit_16(1288);
+emit_16(1353);
+emit_16(1289);
+emit_16(1353);
+emit_16(1288);
+emit_16(1353);
+emit_16(1289);
+emit_16(1354);
+emit_16(1290);
+emit_16(1354);
+emit_16(1289);
+emit_16(1354);
+emit_16(1290);
+emit_16(1355);
+emit_16(1291);
+emit_16(1355);
+emit_16(1290);
+emit_16(1355);
+emit_16(1291);
+emit_16(1356);
+emit_16(1292);
+emit_16(1356);
+emit_16(1291);
+emit_16(1356);
+emit_16(1292);
+emit_16(1357);
+emit_16(1293);
+emit_16(1357);
+emit_16(1292);
+emit_16(1357);
+emit_16(1293);
+emit_16(1358);
+emit_16(1294);
+emit_16(1358);
+emit_16(1293);
+emit_16(1358);
+emit_16(1294);
+emit_16(1359);
+emit_16(1295);
+emit_16(1359);
+emit_16(1294);
+emit_16(1359);
+emit_16(1295);
+emit_16(1360);
+emit_16(1296);
+emit_16(1360);
+emit_16(1295);
+emit_16(1360);
+emit_16(1296);
+emit_16(1361);
+emit_16(1297);
+emit_16(1361);
+emit_16(1296);
+emit_16(1361);
+emit_16(1297);
+emit_16(1362);
+emit_16(1298);
+emit_16(1362);
+emit_16(1297);
+emit_16(1362);
+emit_16(1298);
+emit_16(1363);
+emit_16(1299);
+emit_16(1363);
+emit_16(1298);
+emit_16(1363);
+emit_16(1299);
+emit_16(1364);
+emit_16(1300);
+emit_16(1364);
+emit_16(1299);
+emit_16(1364);
+emit_16(1300);
+emit_16(1365);
+emit_16(1301);
+emit_16(1365);
+emit_16(1300);
+emit_16(1365);
+emit_16(1301);
+emit_16(1366);
+emit_16(1302);
+emit_16(1366);
+emit_16(1301);
+emit_16(1366);
+emit_16(1302);
+emit_16(1367);
+emit_16(1303);
+emit_16(1367);
+emit_16(1302);
+emit_16(1367);
+emit_16(1303);
+emit_16(1368);
+emit_16(1304);
+emit_16(1368);
+emit_16(1303);
+emit_16(1368);
+emit_16(1304);
+emit_16(1369);
+emit_16(1305);
+emit_16(1369);
+emit_16(1304);
+emit_16(1369);
+emit_16(1305);
+emit_16(1370);
+emit_16(1306);
+emit_16(1370);
+emit_16(1305);
+emit_16(1370);
+emit_16(1306);
+emit_16(1371);
+emit_16(1307);
+emit_16(1371);
+emit_16(1306);
+emit_16(1371);
+emit_16(1307);
+emit_16(1372);
+emit_16(1308);
+emit_16(1372);
+emit_16(1307);
+emit_16(1372);
+emit_16(1308);
+emit_16(1373);
+emit_16(1309);
+emit_16(1373);
+emit_16(1308);
+emit_16(1373);
+emit_16(1309);
+emit_16(1374);
+emit_16(1310);
+emit_16(1374);
+emit_16(1309);
+emit_16(1374);
+emit_16(1310);
+emit_16(1375);
+emit_16(1311);
+emit_16(1375);
+emit_16(1310);
+emit_16(1375);
+emit_16(1311);
+emit_16(1376);
+emit_16(1312);
+emit_16(1376);
+emit_16(1311);
+emit_16(1376);
+emit_16(1312);
+emit_16(1377);
+emit_16(1313);
+emit_16(1377);
+emit_16(1312);
+emit_16(1377);
+emit_16(1313);
+emit_16(1378);
+emit_16(1314);
+emit_16(1378);
+emit_16(1313);
+emit_16(1378);
+emit_16(1314);
+emit_16(1379);
+emit_16(1315);
+emit_16(1379);
+emit_16(1314);
+emit_16(1379);
+emit_16(1315);
+emit_16(1380);
+emit_16(1316);
+emit_16(1380);
+emit_16(1315);
+emit_16(1380);
+emit_16(1316);
+emit_16(1381);
+emit_16(1317);
+emit_16(1381);
+emit_16(1316);
+emit_16(1381);
+emit_16(1317);
+emit_16(1382);
+emit_16(1318);
+emit_16(1382);
+emit_16(1317);
+emit_16(1382);
+emit_16(1318);
+emit_16(1383);
+emit_16(1319);
+emit_16(1383);
+emit_16(1318);
+emit_16(1383);
+emit_16(1319);
+emit_16(1384);
+emit_16(1320);
+emit_16(1384);
+emit_16(1319);
+emit_16(1384);
+emit_16(1320);
+emit_16(1385);
+emit_16(1321);
+emit_16(1385);
+emit_16(1320);
+emit_16(1385);
+emit_16(1321);
+emit_16(1386);
+emit_16(1322);
+emit_16(1386);
+emit_16(1321);
+emit_16(1386);
+emit_16(1322);
+emit_16(1387);
+emit_16(1323);
+emit_16(1387);
+emit_16(1322);
+emit_16(1387);
+emit_16(1323);
+emit_16(1388);
+emit_16(1324);
+emit_16(1388);
+emit_16(1323);
+emit_16(1388);
+emit_16(1324);
+emit_16(1389);
+emit_16(1325);
+emit_16(1389);
+emit_16(1324);
+emit_16(1389);
+emit_16(1325);
+emit_16(1390);
+emit_16(1326);
+emit_16(1390);
+emit_16(1325);
+emit_16(1390);
+emit_16(1326);
+emit_16(1391);
+emit_16(1327);
+emit_16(1391);
+emit_16(1326);
+emit_16(1391);
+emit_16(1327);
+emit_16(1392);
+emit_16(1328);
+emit_16(1392);
+emit_16(1327);
+emit_16(1392);
+emit_16(1328);
+emit_16(1393);
+emit_16(1329);
+emit_16(1393);
+emit_16(1328);
+emit_16(1393);
+emit_16(1329);
+emit_16(1394);
+emit_16(1330);
+emit_16(1394);
+emit_16(1329);
+emit_16(1394);
+emit_16(1330);
+emit_16(1395);
+emit_16(1331);
+emit_16(1395);
+emit_16(1330);
+emit_16(1395);
+emit_16(1331);
+emit_16(1396);
+emit_16(1332);
+emit_16(1396);
+emit_16(1331);
+emit_16(1396);
+emit_16(1332);
+emit_16(1397);
+emit_16(1333);
+emit_16(1397);
+emit_16(1332);
+emit_16(1397);
+emit_16(1333);
+emit_16(1398);
+emit_16(1334);
+emit_16(1398);
+emit_16(1333);
+emit_16(1398);
+emit_16(1334);
+emit_16(1399);
+emit_16(1335);
+emit_16(1399);
+emit_16(1334);
+emit_16(1399);
+emit_16(1335);
+emit_16(1400);
+emit_16(1336);
+emit_16(1400);
+emit_16(1335);
+emit_16(1400);
+emit_16(1336);
+emit_16(1401);
+emit_16(1337);
+emit_16(1401);
+emit_16(1336);
+emit_16(1401);
+emit_16(1337);
+emit_16(1402);
+emit_16(1338);
+emit_16(1402);
+emit_16(1337);
+emit_16(1402);
+emit_16(1338);
+emit_16(1403);
+emit_16(1339);
+emit_16(1403);
+emit_16(1338);
+emit_16(1403);
+emit_16(1339);
+emit_16(1404);
+emit_16(1340);
+emit_16(1404);
+emit_16(1339);
+emit_16(1404);
+emit_16(1340);
+emit_16(1405);
+emit_16(1341);
+emit_16(1405);
+emit_16(1340);
+emit_16(1405);
+emit_16(1341);
+emit_16(1406);
+emit_16(1342);
+emit_16(1406);
+emit_16(1341);
+emit_16(1406);
+emit_16(1342);
+emit_16(1407);
+emit_16(1343);
+emit_16(1407);
+emit_16(1342);
+emit_16(1408);
+emit_16(1344);
+emit_16(1409);
+emit_16(1345);
+emit_16(1409);
+emit_16(1344);
+emit_16(1409);
+emit_16(1345);
+emit_16(1410);
+emit_16(1346);
+emit_16(1410);
+emit_16(1345);
+emit_16(1410);
+emit_16(1346);
+emit_16(1411);
+emit_16(1347);
+emit_16(1411);
+emit_16(1346);
+emit_16(1411);
+emit_16(1347);
+emit_16(1412);
+emit_16(1348);
+emit_16(1412);
+emit_16(1347);
+emit_16(1412);
+emit_16(1348);
+emit_16(1413);
+emit_16(1349);
+emit_16(1413);
+emit_16(1348);
+emit_16(1413);
+emit_16(1349);
+emit_16(1414);
+emit_16(1350);
+emit_16(1414);
+emit_16(1349);
+emit_16(1414);
+emit_16(1350);
+emit_16(1415);
+emit_16(1351);
+emit_16(1415);
+emit_16(1350);
+emit_16(1415);
+emit_16(1351);
+emit_16(1416);
+emit_16(1352);
+emit_16(1416);
+emit_16(1351);
+emit_16(1416);
+emit_16(1352);
+emit_16(1417);
+emit_16(1353);
+emit_16(1417);
+emit_16(1352);
+emit_16(1417);
+emit_16(1353);
+emit_16(1418);
+emit_16(1354);
+emit_16(1418);
+emit_16(1353);
+emit_16(1418);
+emit_16(1354);
+emit_16(1419);
+emit_16(1355);
+emit_16(1419);
+emit_16(1354);
+emit_16(1419);
+emit_16(1355);
+emit_16(1420);
+emit_16(1356);
+emit_16(1420);
+emit_16(1355);
+emit_16(1420);
+emit_16(1356);
+emit_16(1421);
+emit_16(1357);
+emit_16(1421);
+emit_16(1356);
+emit_16(1421);
+emit_16(1357);
+emit_16(1422);
+emit_16(1358);
+emit_16(1422);
+emit_16(1357);
+emit_16(1422);
+emit_16(1358);
+emit_16(1423);
+emit_16(1359);
+emit_16(1423);
+emit_16(1358);
+emit_16(1423);
+emit_16(1359);
+emit_16(1424);
+emit_16(1360);
+emit_16(1424);
+emit_16(1359);
+emit_16(1424);
+emit_16(1360);
+emit_16(1425);
+emit_16(1361);
+emit_16(1425);
+emit_16(1360);
+emit_16(1425);
+emit_16(1361);
+emit_16(1426);
+emit_16(1362);
+emit_16(1426);
+emit_16(1361);
+emit_16(1426);
+emit_16(1362);
+emit_16(1427);
+emit_16(1363);
+emit_16(1427);
+emit_16(1362);
+emit_16(1427);
+emit_16(1363);
+emit_16(1428);
+emit_16(1364);
+emit_16(1428);
+emit_16(1363);
+emit_16(1428);
+emit_16(1364);
+emit_16(1429);
+emit_16(1365);
+emit_16(1429);
+emit_16(1364);
+emit_16(1429);
+emit_16(1365);
+emit_16(1430);
+emit_16(1366);
+emit_16(1430);
+emit_16(1365);
+emit_16(1430);
+emit_16(1366);
+emit_16(1431);
+emit_16(1367);
+emit_16(1431);
+emit_16(1366);
+emit_16(1431);
+emit_16(1367);
+emit_16(1432);
+emit_16(1368);
+emit_16(1432);
+emit_16(1367);
+emit_16(1432);
+emit_16(1368);
+emit_16(1433);
+emit_16(1369);
+emit_16(1433);
+emit_16(1368);
+emit_16(1433);
+emit_16(1369);
+emit_16(1434);
+emit_16(1370);
+emit_16(1434);
+emit_16(1369);
+emit_16(1434);
+emit_16(1370);
+emit_16(1435);
+emit_16(1371);
+emit_16(1435);
+emit_16(1370);
+emit_16(1435);
+emit_16(1371);
+emit_16(1436);
+emit_16(1372);
+emit_16(1436);
+emit_16(1371);
+emit_16(1436);
+emit_16(1372);
+emit_16(1437);
+emit_16(1373);
+emit_16(1437);
+emit_16(1372);
+emit_16(1437);
+emit_16(1373);
+emit_16(1438);
+emit_16(1374);
+emit_16(1438);
+emit_16(1373);
+emit_16(1438);
+emit_16(1374);
+emit_16(1439);
+emit_16(1375);
+emit_16(1439);
+emit_16(1374);
+emit_16(1439);
+emit_16(1375);
+emit_16(1440);
+emit_16(1376);
+emit_16(1440);
+emit_16(1375);
+emit_16(1440);
+emit_16(1376);
+emit_16(1441);
+emit_16(1377);
+emit_16(1441);
+emit_16(1376);
+emit_16(1441);
+emit_16(1377);
+emit_16(1442);
+emit_16(1378);
+emit_16(1442);
+emit_16(1377);
+emit_16(1442);
+emit_16(1378);
+emit_16(1443);
+emit_16(1379);
+emit_16(1443);
+emit_16(1378);
+emit_16(1443);
+emit_16(1379);
+emit_16(1444);
+emit_16(1380);
+emit_16(1444);
+emit_16(1379);
+emit_16(1444);
+emit_16(1380);
+emit_16(1445);
+emit_16(1381);
+emit_16(1445);
+emit_16(1380);
+emit_16(1445);
+emit_16(1381);
+emit_16(1446);
+emit_16(1382);
+emit_16(1446);
+emit_16(1381);
+emit_16(1446);
+emit_16(1382);
+emit_16(1447);
+emit_16(1383);
+emit_16(1447);
+emit_16(1382);
+emit_16(1447);
+emit_16(1383);
+emit_16(1448);
+emit_16(1384);
+emit_16(1448);
+emit_16(1383);
+emit_16(1448);
+emit_16(1384);
+emit_16(1449);
+emit_16(1385);
+emit_16(1449);
+emit_16(1384);
+emit_16(1449);
+emit_16(1385);
+emit_16(1450);
+emit_16(1386);
+emit_16(1450);
+emit_16(1385);
+emit_16(1450);
+emit_16(1386);
+emit_16(1451);
+emit_16(1387);
+emit_16(1451);
+emit_16(1386);
+emit_16(1451);
+emit_16(1387);
+emit_16(1452);
+emit_16(1388);
+emit_16(1452);
+emit_16(1387);
+emit_16(1452);
+emit_16(1388);
+emit_16(1453);
+emit_16(1389);
+emit_16(1453);
+emit_16(1388);
+emit_16(1453);
+emit_16(1389);
+emit_16(1454);
+emit_16(1390);
+emit_16(1454);
+emit_16(1389);
+emit_16(1454);
+emit_16(1390);
+emit_16(1455);
+emit_16(1391);
+emit_16(1455);
+emit_16(1390);
+emit_16(1455);
+emit_16(1391);
+emit_16(1456);
+emit_16(1392);
+emit_16(1456);
+emit_16(1391);
+emit_16(1456);
+emit_16(1392);
+emit_16(1457);
+emit_16(1393);
+emit_16(1457);
+emit_16(1392);
+emit_16(1457);
+emit_16(1393);
+emit_16(1458);
+emit_16(1394);
+emit_16(1458);
+emit_16(1393);
+emit_16(1458);
+emit_16(1394);
+emit_16(1459);
+emit_16(1395);
+emit_16(1459);
+emit_16(1394);
+emit_16(1459);
+emit_16(1395);
+emit_16(1460);
+emit_16(1396);
+emit_16(1460);
+emit_16(1395);
+emit_16(1460);
+emit_16(1396);
+emit_16(1461);
+emit_16(1397);
+emit_16(1461);
+emit_16(1396);
+emit_16(1461);
+emit_16(1397);
+emit_16(1462);
+emit_16(1398);
+emit_16(1462);
+emit_16(1397);
+emit_16(1462);
+emit_16(1398);
+emit_16(1463);
+emit_16(1399);
+emit_16(1463);
+emit_16(1398);
+emit_16(1463);
+emit_16(1399);
+emit_16(1464);
+emit_16(1400);
+emit_16(1464);
+emit_16(1399);
+emit_16(1464);
+emit_16(1400);
+emit_16(1465);
+emit_16(1401);
+emit_16(1465);
+emit_16(1400);
+emit_16(1465);
+emit_16(1401);
+emit_16(1466);
+emit_16(1402);
+emit_16(1466);
+emit_16(1401);
+emit_16(1466);
+emit_16(1402);
+emit_16(1467);
+emit_16(1403);
+emit_16(1467);
+emit_16(1402);
+emit_16(1467);
+emit_16(1403);
+emit_16(1468);
+emit_16(1404);
+emit_16(1468);
+emit_16(1403);
+emit_16(1468);
+emit_16(1404);
+emit_16(1469);
+emit_16(1405);
+emit_16(1469);
+emit_16(1404);
+emit_16(1469);
+emit_16(1405);
+emit_16(1470);
+emit_16(1406);
+emit_16(1470);
+emit_16(1405);
+emit_16(1470);
+emit_16(1406);
+emit_16(1471);
+emit_16(1407);
+emit_16(1471);
+emit_16(1406);
+emit_16(1472);
+emit_16(1408);
+emit_16(1473);
+emit_16(1409);
+emit_16(1473);
+emit_16(1408);
+emit_16(1473);
+emit_16(1409);
+emit_16(1474);
+emit_16(1410);
+emit_16(1474);
+emit_16(1409);
+emit_16(1474);
+emit_16(1410);
+emit_16(1475);
+emit_16(1411);
+emit_16(1475);
+emit_16(1410);
+emit_16(1475);
+emit_16(1411);
+emit_16(1476);
+emit_16(1412);
+emit_16(1476);
+emit_16(1411);
+emit_16(1476);
+emit_16(1412);
+emit_16(1477);
+emit_16(1413);
+emit_16(1477);
+emit_16(1412);
+emit_16(1477);
+emit_16(1413);
+emit_16(1478);
+emit_16(1414);
+emit_16(1478);
+emit_16(1413);
+emit_16(1478);
+emit_16(1414);
+emit_16(1479);
+emit_16(1415);
+emit_16(1479);
+emit_16(1414);
+emit_16(1479);
+emit_16(1415);
+emit_16(1480);
+emit_16(1416);
+emit_16(1480);
+emit_16(1415);
+emit_16(1480);
+emit_16(1416);
+emit_16(1481);
+emit_16(1417);
+emit_16(1481);
+emit_16(1416);
+emit_16(1481);
+emit_16(1417);
+emit_16(1482);
+emit_16(1418);
+emit_16(1482);
+emit_16(1417);
+emit_16(1482);
+emit_16(1418);
+emit_16(1483);
+emit_16(1419);
+emit_16(1483);
+emit_16(1418);
+emit_16(1483);
+emit_16(1419);
+emit_16(1484);
+emit_16(1420);
+emit_16(1484);
+emit_16(1419);
+emit_16(1484);
+emit_16(1420);
+emit_16(1485);
+emit_16(1421);
+emit_16(1485);
+emit_16(1420);
+emit_16(1485);
+emit_16(1421);
+emit_16(1486);
+emit_16(1422);
+emit_16(1486);
+emit_16(1421);
+emit_16(1486);
+emit_16(1422);
+emit_16(1487);
+emit_16(1423);
+emit_16(1487);
+emit_16(1422);
+emit_16(1487);
+emit_16(1423);
+emit_16(1488);
+emit_16(1424);
+emit_16(1488);
+emit_16(1423);
+emit_16(1488);
+emit_16(1424);
+emit_16(1489);
+emit_16(1425);
+emit_16(1489);
+emit_16(1424);
+emit_16(1489);
+emit_16(1425);
+emit_16(1490);
+emit_16(1426);
+emit_16(1490);
+emit_16(1425);
+emit_16(1490);
+emit_16(1426);
+emit_16(1491);
+emit_16(1427);
+emit_16(1491);
+emit_16(1426);
+emit_16(1491);
+emit_16(1427);
+emit_16(1492);
+emit_16(1428);
+emit_16(1492);
+emit_16(1427);
+emit_16(1492);
+emit_16(1428);
+emit_16(1493);
+emit_16(1429);
+emit_16(1493);
+emit_16(1428);
+emit_16(1493);
+emit_16(1429);
+emit_16(1494);
+emit_16(1430);
+emit_16(1494);
+emit_16(1429);
+emit_16(1494);
+emit_16(1430);
+emit_16(1495);
+emit_16(1431);
+emit_16(1495);
+emit_16(1430);
+emit_16(1495);
+emit_16(1431);
+emit_16(1496);
+emit_16(1432);
+emit_16(1496);
+emit_16(1431);
+emit_16(1496);
+emit_16(1432);
+emit_16(1497);
+emit_16(1433);
+emit_16(1497);
+emit_16(1432);
+emit_16(1497);
+emit_16(1433);
+emit_16(1498);
+emit_16(1434);
+emit_16(1498);
+emit_16(1433);
+emit_16(1498);
+emit_16(1434);
+emit_16(1499);
+emit_16(1435);
+emit_16(1499);
+emit_16(1434);
+emit_16(1499);
+emit_16(1435);
+emit_16(1500);
+emit_16(1436);
+emit_16(1500);
+emit_16(1435);
+emit_16(1500);
+emit_16(1436);
+emit_16(1501);
+emit_16(1437);
+emit_16(1501);
+emit_16(1436);
+emit_16(1501);
+emit_16(1437);
+emit_16(1502);
+emit_16(1438);
+emit_16(1502);
+emit_16(1437);
+emit_16(1502);
+emit_16(1438);
+emit_16(1503);
+emit_16(1439);
+emit_16(1503);
+emit_16(1438);
+emit_16(1503);
+emit_16(1439);
+emit_16(1504);
+emit_16(1440);
+emit_16(1504);
+emit_16(1439);
+emit_16(1504);
+emit_16(1440);
+emit_16(1505);
+emit_16(1441);
+emit_16(1505);
+emit_16(1440);
+emit_16(1505);
+emit_16(1441);
+emit_16(1506);
+emit_16(1442);
+emit_16(1506);
+emit_16(1441);
+emit_16(1506);
+emit_16(1442);
+emit_16(1507);
+emit_16(1443);
+emit_16(1507);
+emit_16(1442);
+emit_16(1507);
+emit_16(1443);
+emit_16(1508);
+emit_16(1444);
+emit_16(1508);
+emit_16(1443);
+emit_16(1508);
+emit_16(1444);
+emit_16(1509);
+emit_16(1445);
+emit_16(1509);
+emit_16(1444);
+emit_16(1509);
+emit_16(1445);
+emit_16(1510);
+emit_16(1446);
+emit_16(1510);
+emit_16(1445);
+emit_16(1510);
+emit_16(1446);
+emit_16(1511);
+emit_16(1447);
+emit_16(1511);
+emit_16(1446);
+emit_16(1511);
+emit_16(1447);
+emit_16(1512);
+emit_16(1448);
+emit_16(1512);
+emit_16(1447);
+emit_16(1512);
+emit_16(1448);
+emit_16(1513);
+emit_16(1449);
+emit_16(1513);
+emit_16(1448);
+emit_16(1513);
+emit_16(1449);
+emit_16(1514);
+emit_16(1450);
+emit_16(1514);
+emit_16(1449);
+emit_16(1514);
+emit_16(1450);
+emit_16(1515);
+emit_16(1451);
+emit_16(1515);
+emit_16(1450);
+emit_16(1515);
+emit_16(1451);
+emit_16(1516);
+emit_16(1452);
+emit_16(1516);
+emit_16(1451);
+emit_16(1516);
+emit_16(1452);
+emit_16(1517);
+emit_16(1453);
+emit_16(1517);
+emit_16(1452);
+emit_16(1517);
+emit_16(1453);
+emit_16(1518);
+emit_16(1454);
+emit_16(1518);
+emit_16(1453);
+emit_16(1518);
+emit_16(1454);
+emit_16(1519);
+emit_16(1455);
+emit_16(1519);
+emit_16(1454);
+emit_16(1519);
+emit_16(1455);
+emit_16(1520);
+emit_16(1456);
+emit_16(1520);
+emit_16(1455);
+emit_16(1520);
+emit_16(1456);
+emit_16(1521);
+emit_16(1457);
+emit_16(1521);
+emit_16(1456);
+emit_16(1521);
+emit_16(1457);
+emit_16(1522);
+emit_16(1458);
+emit_16(1522);
+emit_16(1457);
+emit_16(1522);
+emit_16(1458);
+emit_16(1523);
+emit_16(1459);
+emit_16(1523);
+emit_16(1458);
+emit_16(1523);
+emit_16(1459);
+emit_16(1524);
+emit_16(1460);
+emit_16(1524);
+emit_16(1459);
+emit_16(1524);
+emit_16(1460);
+emit_16(1525);
+emit_16(1461);
+emit_16(1525);
+emit_16(1460);
+emit_16(1525);
+emit_16(1461);
+emit_16(1526);
+emit_16(1462);
+emit_16(1526);
+emit_16(1461);
+emit_16(1526);
+emit_16(1462);
+emit_16(1527);
+emit_16(1463);
+emit_16(1527);
+emit_16(1462);
+emit_16(1527);
+emit_16(1463);
+emit_16(1528);
+emit_16(1464);
+emit_16(1528);
+emit_16(1463);
+emit_16(1528);
+emit_16(1464);
+emit_16(1529);
+emit_16(1465);
+emit_16(1529);
+emit_16(1464);
+emit_16(1529);
+emit_16(1465);
+emit_16(1530);
+emit_16(1466);
+emit_16(1530);
+emit_16(1465);
+emit_16(1530);
+emit_16(1466);
+emit_16(1531);
+emit_16(1467);
+emit_16(1531);
+emit_16(1466);
+emit_16(1531);
+emit_16(1467);
+emit_16(1532);
+emit_16(1468);
+emit_16(1532);
+emit_16(1467);
+emit_16(1532);
+emit_16(1468);
+emit_16(1533);
+emit_16(1469);
+emit_16(1533);
+emit_16(1468);
+emit_16(1533);
+emit_16(1469);
+emit_16(1534);
+emit_16(1470);
+emit_16(1534);
+emit_16(1469);
+emit_16(1534);
+emit_16(1470);
+emit_16(1535);
+emit_16(1471);
+emit_16(1535);
+emit_16(1470);
+emit_16(1536);
+emit_16(1472);
+emit_16(1537);
+emit_16(1473);
+emit_16(1537);
+emit_16(1472);
+emit_16(1537);
+emit_16(1473);
+emit_16(1538);
+emit_16(1474);
+emit_16(1538);
+emit_16(1473);
+emit_16(1538);
+emit_16(1474);
+emit_16(1539);
+emit_16(1475);
+emit_16(1539);
+emit_16(1474);
+emit_16(1539);
+emit_16(1475);
+emit_16(1540);
+emit_16(1476);
+emit_16(1540);
+emit_16(1475);
+emit_16(1540);
+emit_16(1476);
+emit_16(1541);
+emit_16(1477);
+emit_16(1541);
+emit_16(1476);
+emit_16(1541);
+emit_16(1477);
+emit_16(1542);
+emit_16(1478);
+emit_16(1542);
+emit_16(1477);
+emit_16(1542);
+emit_16(1478);
+emit_16(1543);
+emit_16(1479);
+emit_16(1543);
+emit_16(1478);
+emit_16(1543);
+emit_16(1479);
+emit_16(1544);
+emit_16(1480);
+emit_16(1544);
+emit_16(1479);
+emit_16(1544);
+emit_16(1480);
+emit_16(1545);
+emit_16(1481);
+emit_16(1545);
+emit_16(1480);
+emit_16(1545);
+emit_16(1481);
+emit_16(1546);
+emit_16(1482);
+emit_16(1546);
+emit_16(1481);
+emit_16(1546);
+emit_16(1482);
+emit_16(1547);
+emit_16(1483);
+emit_16(1547);
+emit_16(1482);
+emit_16(1547);
+emit_16(1483);
+emit_16(1548);
+emit_16(1484);
+emit_16(1548);
+emit_16(1483);
+emit_16(1548);
+emit_16(1484);
+emit_16(1549);
+emit_16(1485);
+emit_16(1549);
+emit_16(1484);
+emit_16(1549);
+emit_16(1485);
+emit_16(1550);
+emit_16(1486);
+emit_16(1550);
+emit_16(1485);
+emit_16(1550);
+emit_16(1486);
+emit_16(1551);
+emit_16(1487);
+emit_16(1551);
+emit_16(1486);
+emit_16(1551);
+emit_16(1487);
+emit_16(1552);
+emit_16(1488);
+emit_16(1552);
+emit_16(1487);
+emit_16(1552);
+emit_16(1488);
+emit_16(1553);
+emit_16(1489);
+emit_16(1553);
+emit_16(1488);
+emit_16(1553);
+emit_16(1489);
+emit_16(1554);
+emit_16(1490);
+emit_16(1554);
+emit_16(1489);
+emit_16(1554);
+emit_16(1490);
+emit_16(1555);
+emit_16(1491);
+emit_16(1555);
+emit_16(1490);
+emit_16(1555);
+emit_16(1491);
+emit_16(1556);
+emit_16(1492);
+emit_16(1556);
+emit_16(1491);
+emit_16(1556);
+emit_16(1492);
+emit_16(1557);
+emit_16(1493);
+emit_16(1557);
+emit_16(1492);
+emit_16(1557);
+emit_16(1493);
+emit_16(1558);
+emit_16(1494);
+emit_16(1558);
+emit_16(1493);
+emit_16(1558);
+emit_16(1494);
+emit_16(1559);
+emit_16(1495);
+emit_16(1559);
+emit_16(1494);
+emit_16(1559);
+emit_16(1495);
+emit_16(1560);
+emit_16(1496);
+emit_16(1560);
+emit_16(1495);
+emit_16(1560);
+emit_16(1496);
+emit_16(1561);
+emit_16(1497);
+emit_16(1561);
+emit_16(1496);
+emit_16(1561);
+emit_16(1497);
+emit_16(1562);
+emit_16(1498);
+emit_16(1562);
+emit_16(1497);
+emit_16(1562);
+emit_16(1498);
+emit_16(1563);
+emit_16(1499);
+emit_16(1563);
+emit_16(1498);
+emit_16(1563);
+emit_16(1499);
+emit_16(1564);
+emit_16(1500);
+emit_16(1564);
+emit_16(1499);
+emit_16(1564);
+emit_16(1500);
+emit_16(1565);
+emit_16(1501);
+emit_16(1565);
+emit_16(1500);
+emit_16(1565);
+emit_16(1501);
+emit_16(1566);
+emit_16(1502);
+emit_16(1566);
+emit_16(1501);
+emit_16(1566);
+emit_16(1502);
+emit_16(1567);
+emit_16(1503);
+emit_16(1567);
+emit_16(1502);
+emit_16(1567);
+emit_16(1503);
+emit_16(1568);
+emit_16(1504);
+emit_16(1568);
+emit_16(1503);
+emit_16(1568);
+emit_16(1504);
+emit_16(1569);
+emit_16(1505);
+emit_16(1569);
+emit_16(1504);
+emit_16(1569);
+emit_16(1505);
+emit_16(1570);
+emit_16(1506);
+emit_16(1570);
+emit_16(1505);
+emit_16(1570);
+emit_16(1506);
+emit_16(1571);
+emit_16(1507);
+emit_16(1571);
+emit_16(1506);
+emit_16(1571);
+emit_16(1507);
+emit_16(1572);
+emit_16(1508);
+emit_16(1572);
+emit_16(1507);
+emit_16(1572);
+emit_16(1508);
+emit_16(1573);
+emit_16(1509);
+emit_16(1573);
+emit_16(1508);
+emit_16(1573);
+emit_16(1509);
+emit_16(1574);
+emit_16(1510);
+emit_16(1574);
+emit_16(1509);
+emit_16(1574);
+emit_16(1510);
+emit_16(1575);
+emit_16(1511);
+emit_16(1575);
+emit_16(1510);
+emit_16(1575);
+emit_16(1511);
+emit_16(1576);
+emit_16(1512);
+emit_16(1576);
+emit_16(1511);
+emit_16(1576);
+emit_16(1512);
+emit_16(1577);
+emit_16(1513);
+emit_16(1577);
+emit_16(1512);
+emit_16(1577);
+emit_16(1513);
+emit_16(1578);
+emit_16(1514);
+emit_16(1578);
+emit_16(1513);
+emit_16(1578);
+emit_16(1514);
+emit_16(1579);
+emit_16(1515);
+emit_16(1579);
+emit_16(1514);
+emit_16(1579);
+emit_16(1515);
+emit_16(1580);
+emit_16(1516);
+emit_16(1580);
+emit_16(1515);
+emit_16(1580);
+emit_16(1516);
+emit_16(1581);
+emit_16(1517);
+emit_16(1581);
+emit_16(1516);
+emit_16(1581);
+emit_16(1517);
+emit_16(1582);
+emit_16(1518);
+emit_16(1582);
+emit_16(1517);
+emit_16(1582);
+emit_16(1518);
+emit_16(1583);
+emit_16(1519);
+emit_16(1583);
+emit_16(1518);
+emit_16(1583);
+emit_16(1519);
+emit_16(1584);
+emit_16(1520);
+emit_16(1584);
+emit_16(1519);
+emit_16(1584);
+emit_16(1520);
+emit_16(1585);
+emit_16(1521);
+emit_16(1585);
+emit_16(1520);
+emit_16(1585);
+emit_16(1521);
+emit_16(1586);
+emit_16(1522);
+emit_16(1586);
+emit_16(1521);
+emit_16(1586);
+emit_16(1522);
+emit_16(1587);
+emit_16(1523);
+emit_16(1587);
+emit_16(1522);
+emit_16(1587);
+emit_16(1523);
+emit_16(1588);
+emit_16(1524);
+emit_16(1588);
+emit_16(1523);
+emit_16(1588);
+emit_16(1524);
+emit_16(1589);
+emit_16(1525);
+emit_16(1589);
+emit_16(1524);
+emit_16(1589);
+emit_16(1525);
+emit_16(1590);
+emit_16(1526);
+emit_16(1590);
+emit_16(1525);
+emit_16(1590);
+emit_16(1526);
+emit_16(1591);
+emit_16(1527);
+emit_16(1591);
+emit_16(1526);
+emit_16(1591);
+emit_16(1527);
+emit_16(1592);
+emit_16(1528);
+emit_16(1592);
+emit_16(1527);
+emit_16(1592);
+emit_16(1528);
+emit_16(1593);
+emit_16(1529);
+emit_16(1593);
+emit_16(1528);
+emit_16(1593);
+emit_16(1529);
+emit_16(1594);
+emit_16(1530);
+emit_16(1594);
+emit_16(1529);
+emit_16(1594);
+emit_16(1530);
+emit_16(1595);
+emit_16(1531);
+emit_16(1595);
+emit_16(1530);
+emit_16(1595);
+emit_16(1531);
+emit_16(1596);
+emit_16(1532);
+emit_16(1596);
+emit_16(1531);
+emit_16(1596);
+emit_16(1532);
+emit_16(1597);
+emit_16(1533);
+emit_16(1597);
+emit_16(1532);
+emit_16(1597);
+emit_16(1533);
+emit_16(1598);
+emit_16(1534);
+emit_16(1598);
+emit_16(1533);
+emit_16(1598);
+emit_16(1534);
+emit_16(1599);
+emit_16(1535);
+emit_16(1599);
+emit_16(1534);
+emit_16(1600);
+emit_16(1536);
+emit_16(1601);
+emit_16(1537);
+emit_16(1601);
+emit_16(1536);
+emit_16(1601);
+emit_16(1537);
+emit_16(1602);
+emit_16(1538);
+emit_16(1602);
+emit_16(1537);
+emit_16(1602);
+emit_16(1538);
+emit_16(1603);
+emit_16(1539);
+emit_16(1603);
+emit_16(1538);
+emit_16(1603);
+emit_16(1539);
+emit_16(1604);
+emit_16(1540);
+emit_16(1604);
+emit_16(1539);
+emit_16(1604);
+emit_16(1540);
+emit_16(1605);
+emit_16(1541);
+emit_16(1605);
+emit_16(1540);
+emit_16(1605);
+emit_16(1541);
+emit_16(1606);
+emit_16(1542);
+emit_16(1606);
+emit_16(1541);
+emit_16(1606);
+emit_16(1542);
+emit_16(1607);
+emit_16(1543);
+emit_16(1607);
+emit_16(1542);
+emit_16(1607);
+emit_16(1543);
+emit_16(1608);
+emit_16(1544);
+emit_16(1608);
+emit_16(1543);
+emit_16(1608);
+emit_16(1544);
+emit_16(1609);
+emit_16(1545);
+emit_16(1609);
+emit_16(1544);
+emit_16(1609);
+emit_16(1545);
+emit_16(1610);
+emit_16(1546);
+emit_16(1610);
+emit_16(1545);
+emit_16(1610);
+emit_16(1546);
+emit_16(1611);
+emit_16(1547);
+emit_16(1611);
+emit_16(1546);
+emit_16(1611);
+emit_16(1547);
+emit_16(1612);
+emit_16(1548);
+emit_16(1612);
+emit_16(1547);
+emit_16(1612);
+emit_16(1548);
+emit_16(1613);
+emit_16(1549);
+emit_16(1613);
+emit_16(1548);
+emit_16(1613);
+emit_16(1549);
+emit_16(1614);
+emit_16(1550);
+emit_16(1614);
+emit_16(1549);
+emit_16(1614);
+emit_16(1550);
+emit_16(1615);
+emit_16(1551);
+emit_16(1615);
+emit_16(1550);
+emit_16(1615);
+emit_16(1551);
+emit_16(1616);
+emit_16(1552);
+emit_16(1616);
+emit_16(1551);
+emit_16(1616);
+emit_16(1552);
+emit_16(1617);
+emit_16(1553);
+emit_16(1617);
+emit_16(1552);
+emit_16(1617);
+emit_16(1553);
+emit_16(1618);
+emit_16(1554);
+emit_16(1618);
+emit_16(1553);
+emit_16(1618);
+emit_16(1554);
+emit_16(1619);
+emit_16(1555);
+emit_16(1619);
+emit_16(1554);
+emit_16(1619);
+emit_16(1555);
+emit_16(1620);
+emit_16(1556);
+emit_16(1620);
+emit_16(1555);
+emit_16(1620);
+emit_16(1556);
+emit_16(1621);
+emit_16(1557);
+emit_16(1621);
+emit_16(1556);
+emit_16(1621);
+emit_16(1557);
+emit_16(1622);
+emit_16(1558);
+emit_16(1622);
+emit_16(1557);
+emit_16(1622);
+emit_16(1558);
+emit_16(1623);
+emit_16(1559);
+emit_16(1623);
+emit_16(1558);
+emit_16(1623);
+emit_16(1559);
+emit_16(1624);
+emit_16(1560);
+emit_16(1624);
+emit_16(1559);
+emit_16(1624);
+emit_16(1560);
+emit_16(1625);
+emit_16(1561);
+emit_16(1625);
+emit_16(1560);
+emit_16(1625);
+emit_16(1561);
+emit_16(1626);
+emit_16(1562);
+emit_16(1626);
+emit_16(1561);
+emit_16(1626);
+emit_16(1562);
+emit_16(1627);
+emit_16(1563);
+emit_16(1627);
+emit_16(1562);
+emit_16(1627);
+emit_16(1563);
+emit_16(1628);
+emit_16(1564);
+emit_16(1628);
+emit_16(1563);
+emit_16(1628);
+emit_16(1564);
+emit_16(1629);
+emit_16(1565);
+emit_16(1629);
+emit_16(1564);
+emit_16(1629);
+emit_16(1565);
+emit_16(1630);
+emit_16(1566);
+emit_16(1630);
+emit_16(1565);
+emit_16(1630);
+emit_16(1566);
+emit_16(1631);
+emit_16(1567);
+emit_16(1631);
+emit_16(1566);
+emit_16(1631);
+emit_16(1567);
+emit_16(1632);
+emit_16(1568);
+emit_16(1632);
+emit_16(1567);
+emit_16(1632);
+emit_16(1568);
+emit_16(1633);
+emit_16(1569);
+emit_16(1633);
+emit_16(1568);
+emit_16(1633);
+emit_16(1569);
+emit_16(1634);
+emit_16(1570);
+emit_16(1634);
+emit_16(1569);
+emit_16(1634);
+emit_16(1570);
+emit_16(1635);
+emit_16(1571);
+emit_16(1635);
+emit_16(1570);
+emit_16(1635);
+emit_16(1571);
+emit_16(1636);
+emit_16(1572);
+emit_16(1636);
+emit_16(1571);
+emit_16(1636);
+emit_16(1572);
+emit_16(1637);
+emit_16(1573);
+emit_16(1637);
+emit_16(1572);
+emit_16(1637);
+emit_16(1573);
+emit_16(1638);
+emit_16(1574);
+emit_16(1638);
+emit_16(1573);
+emit_16(1638);
+emit_16(1574);
+emit_16(1639);
+emit_16(1575);
+emit_16(1639);
+emit_16(1574);
+emit_16(1639);
+emit_16(1575);
+emit_16(1640);
+emit_16(1576);
+emit_16(1640);
+emit_16(1575);
+emit_16(1640);
+emit_16(1576);
+emit_16(1641);
+emit_16(1577);
+emit_16(1641);
+emit_16(1576);
+emit_16(1641);
+emit_16(1577);
+emit_16(1642);
+emit_16(1578);
+emit_16(1642);
+emit_16(1577);
+emit_16(1642);
+emit_16(1578);
+emit_16(1643);
+emit_16(1579);
+emit_16(1643);
+emit_16(1578);
+emit_16(1643);
+emit_16(1579);
+emit_16(1644);
+emit_16(1580);
+emit_16(1644);
+emit_16(1579);
+emit_16(1644);
+emit_16(1580);
+emit_16(1645);
+emit_16(1581);
+emit_16(1645);
+emit_16(1580);
+emit_16(1645);
+emit_16(1581);
+emit_16(1646);
+emit_16(1582);
+emit_16(1646);
+emit_16(1581);
+emit_16(1646);
+emit_16(1582);
+emit_16(1647);
+emit_16(1583);
+emit_16(1647);
+emit_16(1582);
+emit_16(1647);
+emit_16(1583);
+emit_16(1648);
+emit_16(1584);
+emit_16(1648);
+emit_16(1583);
+emit_16(1648);
+emit_16(1584);
+emit_16(1649);
+emit_16(1585);
+emit_16(1649);
+emit_16(1584);
+emit_16(1649);
+emit_16(1585);
+emit_16(1650);
+emit_16(1586);
+emit_16(1650);
+emit_16(1585);
+emit_16(1650);
+emit_16(1586);
+emit_16(1651);
+emit_16(1587);
+emit_16(1651);
+emit_16(1586);
+emit_16(1651);
+emit_16(1587);
+emit_16(1652);
+emit_16(1588);
+emit_16(1652);
+emit_16(1587);
+emit_16(1652);
+emit_16(1588);
+emit_16(1653);
+emit_16(1589);
+emit_16(1653);
+emit_16(1588);
+emit_16(1653);
+emit_16(1589);
+emit_16(1654);
+emit_16(1590);
+emit_16(1654);
+emit_16(1589);
+emit_16(1654);
+emit_16(1590);
+emit_16(1655);
+emit_16(1591);
+emit_16(1655);
+emit_16(1590);
+emit_16(1655);
+emit_16(1591);
+emit_16(1656);
+emit_16(1592);
+emit_16(1656);
+emit_16(1591);
+emit_16(1656);
+emit_16(1592);
+emit_16(1657);
+emit_16(1593);
+emit_16(1657);
+emit_16(1592);
+emit_16(1657);
+emit_16(1593);
+emit_16(1658);
+emit_16(1594);
+emit_16(1658);
+emit_16(1593);
+emit_16(1658);
+emit_16(1594);
+emit_16(1659);
+emit_16(1595);
+emit_16(1659);
+emit_16(1594);
+emit_16(1659);
+emit_16(1595);
+emit_16(1660);
+emit_16(1596);
+emit_16(1660);
+emit_16(1595);
+emit_16(1660);
+emit_16(1596);
+emit_16(1661);
+emit_16(1597);
+emit_16(1661);
+emit_16(1596);
+emit_16(1661);
+emit_16(1597);
+emit_16(1662);
+emit_16(1598);
+emit_16(1662);
+emit_16(1597);
+emit_16(1662);
+emit_16(1598);
+emit_16(1663);
+emit_16(1599);
+emit_16(1663);
+emit_16(1598);
+emit_16(1664);
+emit_16(1600);
+emit_16(1665);
+emit_16(1601);
+emit_16(1665);
+emit_16(1600);
+emit_16(1665);
+emit_16(1601);
+emit_16(1666);
+emit_16(1602);
+emit_16(1666);
+emit_16(1601);
+emit_16(1666);
+emit_16(1602);
+emit_16(1667);
+emit_16(1603);
+emit_16(1667);
+emit_16(1602);
+emit_16(1667);
+emit_16(1603);
+emit_16(1668);
+emit_16(1604);
+emit_16(1668);
+emit_16(1603);
+emit_16(1668);
+emit_16(1604);
+emit_16(1669);
+emit_16(1605);
+emit_16(1669);
+emit_16(1604);
+emit_16(1669);
+emit_16(1605);
+emit_16(1670);
+emit_16(1606);
+emit_16(1670);
+emit_16(1605);
+emit_16(1670);
+emit_16(1606);
+emit_16(1671);
+emit_16(1607);
+emit_16(1671);
+emit_16(1606);
+emit_16(1671);
+emit_16(1607);
+emit_16(1672);
+emit_16(1608);
+emit_16(1672);
+emit_16(1607);
+emit_16(1672);
+emit_16(1608);
+emit_16(1673);
+emit_16(1609);
+emit_16(1673);
+emit_16(1608);
+emit_16(1673);
+emit_16(1609);
+emit_16(1674);
+emit_16(1610);
+emit_16(1674);
+emit_16(1609);
+emit_16(1674);
+emit_16(1610);
+emit_16(1675);
+emit_16(1611);
+emit_16(1675);
+emit_16(1610);
+emit_16(1675);
+emit_16(1611);
+emit_16(1676);
+emit_16(1612);
+emit_16(1676);
+emit_16(1611);
+emit_16(1676);
+emit_16(1612);
+emit_16(1677);
+emit_16(1613);
+emit_16(1677);
+emit_16(1612);
+emit_16(1677);
+emit_16(1613);
+emit_16(1678);
+emit_16(1614);
+emit_16(1678);
+emit_16(1613);
+emit_16(1678);
+emit_16(1614);
+emit_16(1679);
+emit_16(1615);
+emit_16(1679);
+emit_16(1614);
+emit_16(1679);
+emit_16(1615);
+emit_16(1680);
+emit_16(1616);
+emit_16(1680);
+emit_16(1615);
+emit_16(1680);
+emit_16(1616);
+emit_16(1681);
+emit_16(1617);
+emit_16(1681);
+emit_16(1616);
+emit_16(1681);
+emit_16(1617);
+emit_16(1682);
+emit_16(1618);
+emit_16(1682);
+emit_16(1617);
+emit_16(1682);
+emit_16(1618);
+emit_16(1683);
+emit_16(1619);
+emit_16(1683);
+emit_16(1618);
+emit_16(1683);
+emit_16(1619);
+emit_16(1684);
+emit_16(1620);
+emit_16(1684);
+emit_16(1619);
+emit_16(1684);
+emit_16(1620);
+emit_16(1685);
+emit_16(1621);
+emit_16(1685);
+emit_16(1620);
+emit_16(1685);
+emit_16(1621);
+emit_16(1686);
+emit_16(1622);
+emit_16(1686);
+emit_16(1621);
+emit_16(1686);
+emit_16(1622);
+emit_16(1687);
+emit_16(1623);
+emit_16(1687);
+emit_16(1622);
+emit_16(1687);
+emit_16(1623);
+emit_16(1688);
+emit_16(1624);
+emit_16(1688);
+emit_16(1623);
+emit_16(1688);
+emit_16(1624);
+emit_16(1689);
+emit_16(1625);
+emit_16(1689);
+emit_16(1624);
+emit_16(1689);
+emit_16(1625);
+emit_16(1690);
+emit_16(1626);
+emit_16(1690);
+emit_16(1625);
+emit_16(1690);
+emit_16(1626);
+emit_16(1691);
+emit_16(1627);
+emit_16(1691);
+emit_16(1626);
+emit_16(1691);
+emit_16(1627);
+emit_16(1692);
+emit_16(1628);
+emit_16(1692);
+emit_16(1627);
+emit_16(1692);
+emit_16(1628);
+emit_16(1693);
+emit_16(1629);
+emit_16(1693);
+emit_16(1628);
+emit_16(1693);
+emit_16(1629);
+emit_16(1694);
+emit_16(1630);
+emit_16(1694);
+emit_16(1629);
+emit_16(1694);
+emit_16(1630);
+emit_16(1695);
+emit_16(1631);
+emit_16(1695);
+emit_16(1630);
+emit_16(1695);
+emit_16(1631);
+emit_16(1696);
+emit_16(1632);
+emit_16(1696);
+emit_16(1631);
+emit_16(1696);
+emit_16(1632);
+emit_16(1697);
+emit_16(1633);
+emit_16(1697);
+emit_16(1632);
+emit_16(1697);
+emit_16(1633);
+emit_16(1698);
+emit_16(1634);
+emit_16(1698);
+emit_16(1633);
+emit_16(1698);
+emit_16(1634);
+emit_16(1699);
+emit_16(1635);
+emit_16(1699);
+emit_16(1634);
+emit_16(1699);
+emit_16(1635);
+emit_16(1700);
+emit_16(1636);
+emit_16(1700);
+emit_16(1635);
+emit_16(1700);
+emit_16(1636);
+emit_16(1701);
+emit_16(1637);
+emit_16(1701);
+emit_16(1636);
+emit_16(1701);
+emit_16(1637);
+emit_16(1702);
+emit_16(1638);
+emit_16(1702);
+emit_16(1637);
+emit_16(1702);
+emit_16(1638);
+emit_16(1703);
+emit_16(1639);
+emit_16(1703);
+emit_16(1638);
+emit_16(1703);
+emit_16(1639);
+emit_16(1704);
+emit_16(1640);
+emit_16(1704);
+emit_16(1639);
+emit_16(1704);
+emit_16(1640);
+emit_16(1705);
+emit_16(1641);
+emit_16(1705);
+emit_16(1640);
+emit_16(1705);
+emit_16(1641);
+emit_16(1706);
+emit_16(1642);
+emit_16(1706);
+emit_16(1641);
+emit_16(1706);
+emit_16(1642);
+emit_16(1707);
+emit_16(1643);
+emit_16(1707);
+emit_16(1642);
+emit_16(1707);
+emit_16(1643);
+emit_16(1708);
+emit_16(1644);
+emit_16(1708);
+emit_16(1643);
+emit_16(1708);
+emit_16(1644);
+emit_16(1709);
+emit_16(1645);
+emit_16(1709);
+emit_16(1644);
+emit_16(1709);
+emit_16(1645);
+emit_16(1710);
+emit_16(1646);
+emit_16(1710);
+emit_16(1645);
+emit_16(1710);
+emit_16(1646);
+emit_16(1711);
+emit_16(1647);
+emit_16(1711);
+emit_16(1646);
+emit_16(1711);
+emit_16(1647);
+emit_16(1712);
+emit_16(1648);
+emit_16(1712);
+emit_16(1647);
+emit_16(1712);
+emit_16(1648);
+emit_16(1713);
+emit_16(1649);
+emit_16(1713);
+emit_16(1648);
+emit_16(1713);
+emit_16(1649);
+emit_16(1714);
+emit_16(1650);
+emit_16(1714);
+emit_16(1649);
+emit_16(1714);
+emit_16(1650);
+emit_16(1715);
+emit_16(1651);
+emit_16(1715);
+emit_16(1650);
+emit_16(1715);
+emit_16(1651);
+emit_16(1716);
+emit_16(1652);
+emit_16(1716);
+emit_16(1651);
+emit_16(1716);
+emit_16(1652);
+emit_16(1717);
+emit_16(1653);
+emit_16(1717);
+emit_16(1652);
+emit_16(1717);
+emit_16(1653);
+emit_16(1718);
+emit_16(1654);
+emit_16(1718);
+emit_16(1653);
+emit_16(1718);
+emit_16(1654);
+emit_16(1719);
+emit_16(1655);
+emit_16(1719);
+emit_16(1654);
+emit_16(1719);
+emit_16(1655);
+emit_16(1720);
+emit_16(1656);
+emit_16(1720);
+emit_16(1655);
+emit_16(1720);
+emit_16(1656);
+emit_16(1721);
+emit_16(1657);
+emit_16(1721);
+emit_16(1656);
+emit_16(1721);
+emit_16(1657);
+emit_16(1722);
+emit_16(1658);
+emit_16(1722);
+emit_16(1657);
+emit_16(1722);
+emit_16(1658);
+emit_16(1723);
+emit_16(1659);
+emit_16(1723);
+emit_16(1658);
+emit_16(1723);
+emit_16(1659);
+emit_16(1724);
+emit_16(1660);
+emit_16(1724);
+emit_16(1659);
+emit_16(1724);
+emit_16(1660);
+emit_16(1725);
+emit_16(1661);
+emit_16(1725);
+emit_16(1660);
+emit_16(1725);
+emit_16(1661);
+emit_16(1726);
+emit_16(1662);
+emit_16(1726);
+emit_16(1661);
+emit_16(1726);
+emit_16(1662);
+emit_16(1727);
+emit_16(1663);
+emit_16(1727);
+emit_16(1662);
+emit_16(1728);
+emit_16(1664);
+emit_16(1729);
+emit_16(1665);
+emit_16(1729);
+emit_16(1664);
+emit_16(1729);
+emit_16(1665);
+emit_16(1730);
+emit_16(1666);
+emit_16(1730);
+emit_16(1665);
+emit_16(1730);
+emit_16(1666);
+emit_16(1731);
+emit_16(1667);
+emit_16(1731);
+emit_16(1666);
+emit_16(1731);
+emit_16(1667);
+emit_16(1732);
+emit_16(1668);
+emit_16(1732);
+emit_16(1667);
+emit_16(1732);
+emit_16(1668);
+emit_16(1733);
+emit_16(1669);
+emit_16(1733);
+emit_16(1668);
+emit_16(1733);
+emit_16(1669);
+emit_16(1734);
+emit_16(1670);
+emit_16(1734);
+emit_16(1669);
+emit_16(1734);
+emit_16(1670);
+emit_16(1735);
+emit_16(1671);
+emit_16(1735);
+emit_16(1670);
+emit_16(1735);
+emit_16(1671);
+emit_16(1736);
+emit_16(1672);
+emit_16(1736);
+emit_16(1671);
+emit_16(1736);
+emit_16(1672);
+emit_16(1737);
+emit_16(1673);
+emit_16(1737);
+emit_16(1672);
+emit_16(1737);
+emit_16(1673);
+emit_16(1738);
+emit_16(1674);
+emit_16(1738);
+emit_16(1673);
+emit_16(1738);
+emit_16(1674);
+emit_16(1739);
+emit_16(1675);
+emit_16(1739);
+emit_16(1674);
+emit_16(1739);
+emit_16(1675);
+emit_16(1740);
+emit_16(1676);
+emit_16(1740);
+emit_16(1675);
+emit_16(1740);
+emit_16(1676);
+emit_16(1741);
+emit_16(1677);
+emit_16(1741);
+emit_16(1676);
+emit_16(1741);
+emit_16(1677);
+emit_16(1742);
+emit_16(1678);
+emit_16(1742);
+emit_16(1677);
+emit_16(1742);
+emit_16(1678);
+emit_16(1743);
+emit_16(1679);
+emit_16(1743);
+emit_16(1678);
+emit_16(1743);
+emit_16(1679);
+emit_16(1744);
+emit_16(1680);
+emit_16(1744);
+emit_16(1679);
+emit_16(1744);
+emit_16(1680);
+emit_16(1745);
+emit_16(1681);
+emit_16(1745);
+emit_16(1680);
+emit_16(1745);
+emit_16(1681);
+emit_16(1746);
+emit_16(1682);
+emit_16(1746);
+emit_16(1681);
+emit_16(1746);
+emit_16(1682);
+emit_16(1747);
+emit_16(1683);
+emit_16(1747);
+emit_16(1682);
+emit_16(1747);
+emit_16(1683);
+emit_16(1748);
+emit_16(1684);
+emit_16(1748);
+emit_16(1683);
+emit_16(1748);
+emit_16(1684);
+emit_16(1749);
+emit_16(1685);
+emit_16(1749);
+emit_16(1684);
+emit_16(1749);
+emit_16(1685);
+emit_16(1750);
+emit_16(1686);
+emit_16(1750);
+emit_16(1685);
+emit_16(1750);
+emit_16(1686);
+emit_16(1751);
+emit_16(1687);
+emit_16(1751);
+emit_16(1686);
+emit_16(1751);
+emit_16(1687);
+emit_16(1752);
+emit_16(1688);
+emit_16(1752);
+emit_16(1687);
+emit_16(1752);
+emit_16(1688);
+emit_16(1753);
+emit_16(1689);
+emit_16(1753);
+emit_16(1688);
+emit_16(1753);
+emit_16(1689);
+emit_16(1754);
+emit_16(1690);
+emit_16(1754);
+emit_16(1689);
+emit_16(1754);
+emit_16(1690);
+emit_16(1755);
+emit_16(1691);
+emit_16(1755);
+emit_16(1690);
+emit_16(1755);
+emit_16(1691);
+emit_16(1756);
+emit_16(1692);
+emit_16(1756);
+emit_16(1691);
+emit_16(1756);
+emit_16(1692);
+emit_16(1757);
+emit_16(1693);
+emit_16(1757);
+emit_16(1692);
+emit_16(1757);
+emit_16(1693);
+emit_16(1758);
+emit_16(1694);
+emit_16(1758);
+emit_16(1693);
+emit_16(1758);
+emit_16(1694);
+emit_16(1759);
+emit_16(1695);
+emit_16(1759);
+emit_16(1694);
+emit_16(1759);
+emit_16(1695);
+emit_16(1760);
+emit_16(1696);
+emit_16(1760);
+emit_16(1695);
+emit_16(1760);
+emit_16(1696);
+emit_16(1761);
+emit_16(1697);
+emit_16(1761);
+emit_16(1696);
+emit_16(1761);
+emit_16(1697);
+emit_16(1762);
+emit_16(1698);
+emit_16(1762);
+emit_16(1697);
+emit_16(1762);
+emit_16(1698);
+emit_16(1763);
+emit_16(1699);
+emit_16(1763);
+emit_16(1698);
+emit_16(1763);
+emit_16(1699);
+emit_16(1764);
+emit_16(1700);
+emit_16(1764);
+emit_16(1699);
+emit_16(1764);
+emit_16(1700);
+emit_16(1765);
+emit_16(1701);
+emit_16(1765);
+emit_16(1700);
+emit_16(1765);
+emit_16(1701);
+emit_16(1766);
+emit_16(1702);
+emit_16(1766);
+emit_16(1701);
+emit_16(1766);
+emit_16(1702);
+emit_16(1767);
+emit_16(1703);
+emit_16(1767);
+emit_16(1702);
+emit_16(1767);
+emit_16(1703);
+emit_16(1768);
+emit_16(1704);
+emit_16(1768);
+emit_16(1703);
+emit_16(1768);
+emit_16(1704);
+emit_16(1769);
+emit_16(1705);
+emit_16(1769);
+emit_16(1704);
+emit_16(1769);
+emit_16(1705);
+emit_16(1770);
+emit_16(1706);
+emit_16(1770);
+emit_16(1705);
+emit_16(1770);
+emit_16(1706);
+emit_16(1771);
+emit_16(1707);
+emit_16(1771);
+emit_16(1706);
+emit_16(1771);
+emit_16(1707);
+emit_16(1772);
+emit_16(1708);
+emit_16(1772);
+emit_16(1707);
+emit_16(1772);
+emit_16(1708);
+emit_16(1773);
+emit_16(1709);
+emit_16(1773);
+emit_16(1708);
+emit_16(1773);
+emit_16(1709);
+emit_16(1774);
+emit_16(1710);
+emit_16(1774);
+emit_16(1709);
+emit_16(1774);
+emit_16(1710);
+emit_16(1775);
+emit_16(1711);
+emit_16(1775);
+emit_16(1710);
+emit_16(1775);
+emit_16(1711);
+emit_16(1776);
+emit_16(1712);
+emit_16(1776);
+emit_16(1711);
+emit_16(1776);
+emit_16(1712);
+emit_16(1777);
+emit_16(1713);
+emit_16(1777);
+emit_16(1712);
+emit_16(1777);
+emit_16(1713);
+emit_16(1778);
+emit_16(1714);
+emit_16(1778);
+emit_16(1713);
+emit_16(1778);
+emit_16(1714);
+emit_16(1779);
+emit_16(1715);
+emit_16(1779);
+emit_16(1714);
+emit_16(1779);
+emit_16(1715);
+emit_16(1780);
+emit_16(1716);
+emit_16(1780);
+emit_16(1715);
+emit_16(1780);
+emit_16(1716);
+emit_16(1781);
+emit_16(1717);
+emit_16(1781);
+emit_16(1716);
+emit_16(1781);
+emit_16(1717);
+emit_16(1782);
+emit_16(1718);
+emit_16(1782);
+emit_16(1717);
+emit_16(1782);
+emit_16(1718);
+emit_16(1783);
+emit_16(1719);
+emit_16(1783);
+emit_16(1718);
+emit_16(1783);
+emit_16(1719);
+emit_16(1784);
+emit_16(1720);
+emit_16(1784);
+emit_16(1719);
+emit_16(1784);
+emit_16(1720);
+emit_16(1785);
+emit_16(1721);
+emit_16(1785);
+emit_16(1720);
+emit_16(1785);
+emit_16(1721);
+emit_16(1786);
+emit_16(1722);
+emit_16(1786);
+emit_16(1721);
+emit_16(1786);
+emit_16(1722);
+emit_16(1787);
+emit_16(1723);
+emit_16(1787);
+emit_16(1722);
+emit_16(1787);
+emit_16(1723);
+emit_16(1788);
+emit_16(1724);
+emit_16(1788);
+emit_16(1723);
+emit_16(1788);
+emit_16(1724);
+emit_16(1789);
+emit_16(1725);
+emit_16(1789);
+emit_16(1724);
+emit_16(1789);
+emit_16(1725);
+emit_16(1790);
+emit_16(1726);
+emit_16(1790);
+emit_16(1725);
+emit_16(1790);
+emit_16(1726);
+emit_16(1791);
+emit_16(1727);
+emit_16(1791);
+emit_16(1726);
+emit_16(1792);
+emit_16(1728);
+emit_16(1793);
+emit_16(1729);
+emit_16(1793);
+emit_16(1728);
+emit_16(1793);
+emit_16(1729);
+emit_16(1794);
+emit_16(1730);
+emit_16(1794);
+emit_16(1729);
+emit_16(1794);
+emit_16(1730);
+emit_16(1795);
+emit_16(1731);
+emit_16(1795);
+emit_16(1730);
+emit_16(1795);
+emit_16(1731);
+emit_16(1796);
+emit_16(1732);
+emit_16(1796);
+emit_16(1731);
+emit_16(1796);
+emit_16(1732);
+emit_16(1797);
+emit_16(1733);
+emit_16(1797);
+emit_16(1732);
+emit_16(1797);
+emit_16(1733);
+emit_16(1798);
+emit_16(1734);
+emit_16(1798);
+emit_16(1733);
+emit_16(1798);
+emit_16(1734);
+emit_16(1799);
+emit_16(1735);
+emit_16(1799);
+emit_16(1734);
+emit_16(1799);
+emit_16(1735);
+emit_16(1800);
+emit_16(1736);
+emit_16(1800);
+emit_16(1735);
+emit_16(1800);
+emit_16(1736);
+emit_16(1801);
+emit_16(1737);
+emit_16(1801);
+emit_16(1736);
+emit_16(1801);
+emit_16(1737);
+emit_16(1802);
+emit_16(1738);
+emit_16(1802);
+emit_16(1737);
+emit_16(1802);
+emit_16(1738);
+emit_16(1803);
+emit_16(1739);
+emit_16(1803);
+emit_16(1738);
+emit_16(1803);
+emit_16(1739);
+emit_16(1804);
+emit_16(1740);
+emit_16(1804);
+emit_16(1739);
+emit_16(1804);
+emit_16(1740);
+emit_16(1805);
+emit_16(1741);
+emit_16(1805);
+emit_16(1740);
+emit_16(1805);
+emit_16(1741);
+emit_16(1806);
+emit_16(1742);
+emit_16(1806);
+emit_16(1741);
+emit_16(1806);
+emit_16(1742);
+emit_16(1807);
+emit_16(1743);
+emit_16(1807);
+emit_16(1742);
+emit_16(1807);
+emit_16(1743);
+emit_16(1808);
+emit_16(1744);
+emit_16(1808);
+emit_16(1743);
+emit_16(1808);
+emit_16(1744);
+emit_16(1809);
+emit_16(1745);
+emit_16(1809);
+emit_16(1744);
+emit_16(1809);
+emit_16(1745);
+emit_16(1810);
+emit_16(1746);
+emit_16(1810);
+emit_16(1745);
+emit_16(1810);
+emit_16(1746);
+emit_16(1811);
+emit_16(1747);
+emit_16(1811);
+emit_16(1746);
+emit_16(1811);
+emit_16(1747);
+emit_16(1812);
+emit_16(1748);
+emit_16(1812);
+emit_16(1747);
+emit_16(1812);
+emit_16(1748);
+emit_16(1813);
+emit_16(1749);
+emit_16(1813);
+emit_16(1748);
+emit_16(1813);
+emit_16(1749);
+emit_16(1814);
+emit_16(1750);
+emit_16(1814);
+emit_16(1749);
+emit_16(1814);
+emit_16(1750);
+emit_16(1815);
+emit_16(1751);
+emit_16(1815);
+emit_16(1750);
+emit_16(1815);
+emit_16(1751);
+emit_16(1816);
+emit_16(1752);
+emit_16(1816);
+emit_16(1751);
+emit_16(1816);
+emit_16(1752);
+emit_16(1817);
+emit_16(1753);
+emit_16(1817);
+emit_16(1752);
+emit_16(1817);
+emit_16(1753);
+emit_16(1818);
+emit_16(1754);
+emit_16(1818);
+emit_16(1753);
+emit_16(1818);
+emit_16(1754);
+emit_16(1819);
+emit_16(1755);
+emit_16(1819);
+emit_16(1754);
+emit_16(1819);
+emit_16(1755);
+emit_16(1820);
+emit_16(1756);
+emit_16(1820);
+emit_16(1755);
+emit_16(1820);
+emit_16(1756);
+emit_16(1821);
+emit_16(1757);
+emit_16(1821);
+emit_16(1756);
+emit_16(1821);
+emit_16(1757);
+emit_16(1822);
+emit_16(1758);
+emit_16(1822);
+emit_16(1757);
+emit_16(1822);
+emit_16(1758);
+emit_16(1823);
+emit_16(1759);
+emit_16(1823);
+emit_16(1758);
+emit_16(1823);
+emit_16(1759);
+emit_16(1824);
+emit_16(1760);
+emit_16(1824);
+emit_16(1759);
+emit_16(1824);
+emit_16(1760);
+emit_16(1825);
+emit_16(1761);
+emit_16(1825);
+emit_16(1760);
+emit_16(1825);
+emit_16(1761);
+emit_16(1826);
+emit_16(1762);
+emit_16(1826);
+emit_16(1761);
+emit_16(1826);
+emit_16(1762);
+emit_16(1827);
+emit_16(1763);
+emit_16(1827);
+emit_16(1762);
+emit_16(1827);
+emit_16(1763);
+emit_16(1828);
+emit_16(1764);
+emit_16(1828);
+emit_16(1763);
+emit_16(1828);
+emit_16(1764);
+emit_16(1829);
+emit_16(1765);
+emit_16(1829);
+emit_16(1764);
+emit_16(1829);
+emit_16(1765);
+emit_16(1830);
+emit_16(1766);
+emit_16(1830);
+emit_16(1765);
+emit_16(1830);
+emit_16(1766);
+emit_16(1831);
+emit_16(1767);
+emit_16(1831);
+emit_16(1766);
+emit_16(1831);
+emit_16(1767);
+emit_16(1832);
+emit_16(1768);
+emit_16(1832);
+emit_16(1767);
+emit_16(1832);
+emit_16(1768);
+emit_16(1833);
+emit_16(1769);
+emit_16(1833);
+emit_16(1768);
+emit_16(1833);
+emit_16(1769);
+emit_16(1834);
+emit_16(1770);
+emit_16(1834);
+emit_16(1769);
+emit_16(1834);
+emit_16(1770);
+emit_16(1835);
+emit_16(1771);
+emit_16(1835);
+emit_16(1770);
+emit_16(1835);
+emit_16(1771);
+emit_16(1836);
+emit_16(1772);
+emit_16(1836);
+emit_16(1771);
+emit_16(1836);
+emit_16(1772);
+emit_16(1837);
+emit_16(1773);
+emit_16(1837);
+emit_16(1772);
+emit_16(1837);
+emit_16(1773);
+emit_16(1838);
+emit_16(1774);
+emit_16(1838);
+emit_16(1773);
+emit_16(1838);
+emit_16(1774);
+emit_16(1839);
+emit_16(1775);
+emit_16(1839);
+emit_16(1774);
+emit_16(1839);
+emit_16(1775);
+emit_16(1840);
+emit_16(1776);
+emit_16(1840);
+emit_16(1775);
+emit_16(1840);
+emit_16(1776);
+emit_16(1841);
+emit_16(1777);
+emit_16(1841);
+emit_16(1776);
+emit_16(1841);
+emit_16(1777);
+emit_16(1842);
+emit_16(1778);
+emit_16(1842);
+emit_16(1777);
+emit_16(1842);
+emit_16(1778);
+emit_16(1843);
+emit_16(1779);
+emit_16(1843);
+emit_16(1778);
+emit_16(1843);
+emit_16(1779);
+emit_16(1844);
+emit_16(1780);
+emit_16(1844);
+emit_16(1779);
+emit_16(1844);
+emit_16(1780);
+emit_16(1845);
+emit_16(1781);
+emit_16(1845);
+emit_16(1780);
+emit_16(1845);
+emit_16(1781);
+emit_16(1846);
+emit_16(1782);
+emit_16(1846);
+emit_16(1781);
+emit_16(1846);
+emit_16(1782);
+emit_16(1847);
+emit_16(1783);
+emit_16(1847);
+emit_16(1782);
+emit_16(1847);
+emit_16(1783);
+emit_16(1848);
+emit_16(1784);
+emit_16(1848);
+emit_16(1783);
+emit_16(1848);
+emit_16(1784);
+emit_16(1849);
+emit_16(1785);
+emit_16(1849);
+emit_16(1784);
+emit_16(1849);
+emit_16(1785);
+emit_16(1850);
+emit_16(1786);
+emit_16(1850);
+emit_16(1785);
+emit_16(1850);
+emit_16(1786);
+emit_16(1851);
+emit_16(1787);
+emit_16(1851);
+emit_16(1786);
+emit_16(1851);
+emit_16(1787);
+emit_16(1852);
+emit_16(1788);
+emit_16(1852);
+emit_16(1787);
+emit_16(1852);
+emit_16(1788);
+emit_16(1853);
+emit_16(1789);
+emit_16(1853);
+emit_16(1788);
+emit_16(1853);
+emit_16(1789);
+emit_16(1854);
+emit_16(1790);
+emit_16(1854);
+emit_16(1789);
+emit_16(1854);
+emit_16(1790);
+emit_16(1855);
+emit_16(1791);
+emit_16(1855);
+emit_16(1790);
+emit_16(1856);
+emit_16(1792);
+emit_16(1857);
+emit_16(1793);
+emit_16(1857);
+emit_16(1792);
+emit_16(1857);
+emit_16(1793);
+emit_16(1858);
+emit_16(1794);
+emit_16(1858);
+emit_16(1793);
+emit_16(1858);
+emit_16(1794);
+emit_16(1859);
+emit_16(1795);
+emit_16(1859);
+emit_16(1794);
+emit_16(1859);
+emit_16(1795);
+emit_16(1860);
+emit_16(1796);
+emit_16(1860);
+emit_16(1795);
+emit_16(1860);
+emit_16(1796);
+emit_16(1861);
+emit_16(1797);
+emit_16(1861);
+emit_16(1796);
+emit_16(1861);
+emit_16(1797);
+emit_16(1862);
+emit_16(1798);
+emit_16(1862);
+emit_16(1797);
+emit_16(1862);
+emit_16(1798);
+emit_16(1863);
+emit_16(1799);
+emit_16(1863);
+emit_16(1798);
+emit_16(1863);
+emit_16(1799);
+emit_16(1864);
+emit_16(1800);
+emit_16(1864);
+emit_16(1799);
+emit_16(1864);
+emit_16(1800);
+emit_16(1865);
+emit_16(1801);
+emit_16(1865);
+emit_16(1800);
+emit_16(1865);
+emit_16(1801);
+emit_16(1866);
+emit_16(1802);
+emit_16(1866);
+emit_16(1801);
+emit_16(1866);
+emit_16(1802);
+emit_16(1867);
+emit_16(1803);
+emit_16(1867);
+emit_16(1802);
+emit_16(1867);
+emit_16(1803);
+emit_16(1868);
+emit_16(1804);
+emit_16(1868);
+emit_16(1803);
+emit_16(1868);
+emit_16(1804);
+emit_16(1869);
+emit_16(1805);
+emit_16(1869);
+emit_16(1804);
+emit_16(1869);
+emit_16(1805);
+emit_16(1870);
+emit_16(1806);
+emit_16(1870);
+emit_16(1805);
+emit_16(1870);
+emit_16(1806);
+emit_16(1871);
+emit_16(1807);
+emit_16(1871);
+emit_16(1806);
+emit_16(1871);
+emit_16(1807);
+emit_16(1872);
+emit_16(1808);
+emit_16(1872);
+emit_16(1807);
+emit_16(1872);
+emit_16(1808);
+emit_16(1873);
+emit_16(1809);
+emit_16(1873);
+emit_16(1808);
+emit_16(1873);
+emit_16(1809);
+emit_16(1874);
+emit_16(1810);
+emit_16(1874);
+emit_16(1809);
+emit_16(1874);
+emit_16(1810);
+emit_16(1875);
+emit_16(1811);
+emit_16(1875);
+emit_16(1810);
+emit_16(1875);
+emit_16(1811);
+emit_16(1876);
+emit_16(1812);
+emit_16(1876);
+emit_16(1811);
+emit_16(1876);
+emit_16(1812);
+emit_16(1877);
+emit_16(1813);
+emit_16(1877);
+emit_16(1812);
+emit_16(1877);
+emit_16(1813);
+emit_16(1878);
+emit_16(1814);
+emit_16(1878);
+emit_16(1813);
+emit_16(1878);
+emit_16(1814);
+emit_16(1879);
+emit_16(1815);
+emit_16(1879);
+emit_16(1814);
+emit_16(1879);
+emit_16(1815);
+emit_16(1880);
+emit_16(1816);
+emit_16(1880);
+emit_16(1815);
+emit_16(1880);
+emit_16(1816);
+emit_16(1881);
+emit_16(1817);
+emit_16(1881);
+emit_16(1816);
+emit_16(1881);
+emit_16(1817);
+emit_16(1882);
+emit_16(1818);
+emit_16(1882);
+emit_16(1817);
+emit_16(1882);
+emit_16(1818);
+emit_16(1883);
+emit_16(1819);
+emit_16(1883);
+emit_16(1818);
+emit_16(1883);
+emit_16(1819);
+emit_16(1884);
+emit_16(1820);
+emit_16(1884);
+emit_16(1819);
+emit_16(1884);
+emit_16(1820);
+emit_16(1885);
+emit_16(1821);
+emit_16(1885);
+emit_16(1820);
+emit_16(1885);
+emit_16(1821);
+emit_16(1886);
+emit_16(1822);
+emit_16(1886);
+emit_16(1821);
+emit_16(1886);
+emit_16(1822);
+emit_16(1887);
+emit_16(1823);
+emit_16(1887);
+emit_16(1822);
+emit_16(1887);
+emit_16(1823);
+emit_16(1888);
+emit_16(1824);
+emit_16(1888);
+emit_16(1823);
+emit_16(1888);
+emit_16(1824);
+emit_16(1889);
+emit_16(1825);
+emit_16(1889);
+emit_16(1824);
+emit_16(1889);
+emit_16(1825);
+emit_16(1890);
+emit_16(1826);
+emit_16(1890);
+emit_16(1825);
+emit_16(1890);
+emit_16(1826);
+emit_16(1891);
+emit_16(1827);
+emit_16(1891);
+emit_16(1826);
+emit_16(1891);
+emit_16(1827);
+emit_16(1892);
+emit_16(1828);
+emit_16(1892);
+emit_16(1827);
+emit_16(1892);
+emit_16(1828);
+emit_16(1893);
+emit_16(1829);
+emit_16(1893);
+emit_16(1828);
+emit_16(1893);
+emit_16(1829);
+emit_16(1894);
+emit_16(1830);
+emit_16(1894);
+emit_16(1829);
+emit_16(1894);
+emit_16(1830);
+emit_16(1895);
+emit_16(1831);
+emit_16(1895);
+emit_16(1830);
+emit_16(1895);
+emit_16(1831);
+emit_16(1896);
+emit_16(1832);
+emit_16(1896);
+emit_16(1831);
+emit_16(1896);
+emit_16(1832);
+emit_16(1897);
+emit_16(1833);
+emit_16(1897);
+emit_16(1832);
+emit_16(1897);
+emit_16(1833);
+emit_16(1898);
+emit_16(1834);
+emit_16(1898);
+emit_16(1833);
+emit_16(1898);
+emit_16(1834);
+emit_16(1899);
+emit_16(1835);
+emit_16(1899);
+emit_16(1834);
+emit_16(1899);
+emit_16(1835);
+emit_16(1900);
+emit_16(1836);
+emit_16(1900);
+emit_16(1835);
+emit_16(1900);
+emit_16(1836);
+emit_16(1901);
+emit_16(1837);
+emit_16(1901);
+emit_16(1836);
+emit_16(1901);
+emit_16(1837);
+emit_16(1902);
+emit_16(1838);
+emit_16(1902);
+emit_16(1837);
+emit_16(1902);
+emit_16(1838);
+emit_16(1903);
+emit_16(1839);
+emit_16(1903);
+emit_16(1838);
+emit_16(1903);
+emit_16(1839);
+emit_16(1904);
+emit_16(1840);
+emit_16(1904);
+emit_16(1839);
+emit_16(1904);
+emit_16(1840);
+emit_16(1905);
+emit_16(1841);
+emit_16(1905);
+emit_16(1840);
+emit_16(1905);
+emit_16(1841);
+emit_16(1906);
+emit_16(1842);
+emit_16(1906);
+emit_16(1841);
+emit_16(1906);
+emit_16(1842);
+emit_16(1907);
+emit_16(1843);
+emit_16(1907);
+emit_16(1842);
+emit_16(1907);
+emit_16(1843);
+emit_16(1908);
+emit_16(1844);
+emit_16(1908);
+emit_16(1843);
+emit_16(1908);
+emit_16(1844);
+emit_16(1909);
+emit_16(1845);
+emit_16(1909);
+emit_16(1844);
+emit_16(1909);
+emit_16(1845);
+emit_16(1910);
+emit_16(1846);
+emit_16(1910);
+emit_16(1845);
+emit_16(1910);
+emit_16(1846);
+emit_16(1911);
+emit_16(1847);
+emit_16(1911);
+emit_16(1846);
+emit_16(1911);
+emit_16(1847);
+emit_16(1912);
+emit_16(1848);
+emit_16(1912);
+emit_16(1847);
+emit_16(1912);
+emit_16(1848);
+emit_16(1913);
+emit_16(1849);
+emit_16(1913);
+emit_16(1848);
+emit_16(1913);
+emit_16(1849);
+emit_16(1914);
+emit_16(1850);
+emit_16(1914);
+emit_16(1849);
+emit_16(1914);
+emit_16(1850);
+emit_16(1915);
+emit_16(1851);
+emit_16(1915);
+emit_16(1850);
+emit_16(1915);
+emit_16(1851);
+emit_16(1916);
+emit_16(1852);
+emit_16(1916);
+emit_16(1851);
+emit_16(1916);
+emit_16(1852);
+emit_16(1917);
+emit_16(1853);
+emit_16(1917);
+emit_16(1852);
+emit_16(1917);
+emit_16(1853);
+emit_16(1918);
+emit_16(1854);
+emit_16(1918);
+emit_16(1853);
+emit_16(1918);
+emit_16(1854);
+emit_16(1919);
+emit_16(1855);
+emit_16(1919);
+emit_16(1854);
+emit_16(1920);
+emit_16(1856);
+emit_16(1921);
+emit_16(1857);
+emit_16(1921);
+emit_16(1856);
+emit_16(1921);
+emit_16(1857);
+emit_16(1922);
+emit_16(1858);
+emit_16(1922);
+emit_16(1857);
+emit_16(1922);
+emit_16(1858);
+emit_16(1923);
+emit_16(1859);
+emit_16(1923);
+emit_16(1858);
+emit_16(1923);
+emit_16(1859);
+emit_16(1924);
+emit_16(1860);
+emit_16(1924);
+emit_16(1859);
+emit_16(1924);
+emit_16(1860);
+emit_16(1925);
+emit_16(1861);
+emit_16(1925);
+emit_16(1860);
+emit_16(1925);
+emit_16(1861);
+emit_16(1926);
+emit_16(1862);
+emit_16(1926);
+emit_16(1861);
+emit_16(1926);
+emit_16(1862);
+emit_16(1927);
+emit_16(1863);
+emit_16(1927);
+emit_16(1862);
+emit_16(1927);
+emit_16(1863);
+emit_16(1928);
+emit_16(1864);
+emit_16(1928);
+emit_16(1863);
+emit_16(1928);
+emit_16(1864);
+emit_16(1929);
+emit_16(1865);
+emit_16(1929);
+emit_16(1864);
+emit_16(1929);
+emit_16(1865);
+emit_16(1930);
+emit_16(1866);
+emit_16(1930);
+emit_16(1865);
+emit_16(1930);
+emit_16(1866);
+emit_16(1931);
+emit_16(1867);
+emit_16(1931);
+emit_16(1866);
+emit_16(1931);
+emit_16(1867);
+emit_16(1932);
+emit_16(1868);
+emit_16(1932);
+emit_16(1867);
+emit_16(1932);
+emit_16(1868);
+emit_16(1933);
+emit_16(1869);
+emit_16(1933);
+emit_16(1868);
+emit_16(1933);
+emit_16(1869);
+emit_16(1934);
+emit_16(1870);
+emit_16(1934);
+emit_16(1869);
+emit_16(1934);
+emit_16(1870);
+emit_16(1935);
+emit_16(1871);
+emit_16(1935);
+emit_16(1870);
+emit_16(1935);
+emit_16(1871);
+emit_16(1936);
+emit_16(1872);
+emit_16(1936);
+emit_16(1871);
+emit_16(1936);
+emit_16(1872);
+emit_16(1937);
+emit_16(1873);
+emit_16(1937);
+emit_16(1872);
+emit_16(1937);
+emit_16(1873);
+emit_16(1938);
+emit_16(1874);
+emit_16(1938);
+emit_16(1873);
+emit_16(1938);
+emit_16(1874);
+emit_16(1939);
+emit_16(1875);
+emit_16(1939);
+emit_16(1874);
+emit_16(1939);
+emit_16(1875);
+emit_16(1940);
+emit_16(1876);
+emit_16(1940);
+emit_16(1875);
+emit_16(1940);
+emit_16(1876);
+emit_16(1941);
+emit_16(1877);
+emit_16(1941);
+emit_16(1876);
+emit_16(1941);
+emit_16(1877);
+emit_16(1942);
+emit_16(1878);
+emit_16(1942);
+emit_16(1877);
+emit_16(1942);
+emit_16(1878);
+emit_16(1943);
+emit_16(1879);
+emit_16(1943);
+emit_16(1878);
+emit_16(1943);
+emit_16(1879);
+emit_16(1944);
+emit_16(1880);
+emit_16(1944);
+emit_16(1879);
+emit_16(1944);
+emit_16(1880);
+emit_16(1945);
+emit_16(1881);
+emit_16(1945);
+emit_16(1880);
+emit_16(1945);
+emit_16(1881);
+emit_16(1946);
+emit_16(1882);
+emit_16(1946);
+emit_16(1881);
+emit_16(1946);
+emit_16(1882);
+emit_16(1947);
+emit_16(1883);
+emit_16(1947);
+emit_16(1882);
+emit_16(1947);
+emit_16(1883);
+emit_16(1948);
+emit_16(1884);
+emit_16(1948);
+emit_16(1883);
+emit_16(1948);
+emit_16(1884);
+emit_16(1949);
+emit_16(1885);
+emit_16(1949);
+emit_16(1884);
+emit_16(1949);
+emit_16(1885);
+emit_16(1950);
+emit_16(1886);
+emit_16(1950);
+emit_16(1885);
+emit_16(1950);
+emit_16(1886);
+emit_16(1951);
+emit_16(1887);
+emit_16(1951);
+emit_16(1886);
+emit_16(1951);
+emit_16(1887);
+emit_16(1952);
+emit_16(1888);
+emit_16(1952);
+emit_16(1887);
+emit_16(1952);
+emit_16(1888);
+emit_16(1953);
+emit_16(1889);
+emit_16(1953);
+emit_16(1888);
+emit_16(1953);
+emit_16(1889);
+emit_16(1954);
+emit_16(1890);
+emit_16(1954);
+emit_16(1889);
+emit_16(1954);
+emit_16(1890);
+emit_16(1955);
+emit_16(1891);
+emit_16(1955);
+emit_16(1890);
+emit_16(1955);
+emit_16(1891);
+emit_16(1956);
+emit_16(1892);
+emit_16(1956);
+emit_16(1891);
+emit_16(1956);
+emit_16(1892);
+emit_16(1957);
+emit_16(1893);
+emit_16(1957);
+emit_16(1892);
+emit_16(1957);
+emit_16(1893);
+emit_16(1958);
+emit_16(1894);
+emit_16(1958);
+emit_16(1893);
+emit_16(1958);
+emit_16(1894);
+emit_16(1959);
+emit_16(1895);
+emit_16(1959);
+emit_16(1894);
+emit_16(1959);
+emit_16(1895);
+emit_16(1960);
+emit_16(1896);
+emit_16(1960);
+emit_16(1895);
+emit_16(1960);
+emit_16(1896);
+emit_16(1961);
+emit_16(1897);
+emit_16(1961);
+emit_16(1896);
+emit_16(1961);
+emit_16(1897);
+emit_16(1962);
+emit_16(1898);
+emit_16(1962);
+emit_16(1897);
+emit_16(1962);
+emit_16(1898);
+emit_16(1963);
+emit_16(1899);
+emit_16(1963);
+emit_16(1898);
+emit_16(1963);
+emit_16(1899);
+emit_16(1964);
+emit_16(1900);
+emit_16(1964);
+emit_16(1899);
+emit_16(1964);
+emit_16(1900);
+emit_16(1965);
+emit_16(1901);
+emit_16(1965);
+emit_16(1900);
+emit_16(1965);
+emit_16(1901);
+emit_16(1966);
+emit_16(1902);
+emit_16(1966);
+emit_16(1901);
+emit_16(1966);
+emit_16(1902);
+emit_16(1967);
+emit_16(1903);
+emit_16(1967);
+emit_16(1902);
+emit_16(1967);
+emit_16(1903);
+emit_16(1968);
+emit_16(1904);
+emit_16(1968);
+emit_16(1903);
+emit_16(1968);
+emit_16(1904);
+emit_16(1969);
+emit_16(1905);
+emit_16(1969);
+emit_16(1904);
+emit_16(1969);
+emit_16(1905);
+emit_16(1970);
+emit_16(1906);
+emit_16(1970);
+emit_16(1905);
+emit_16(1970);
+emit_16(1906);
+emit_16(1971);
+emit_16(1907);
+emit_16(1971);
+emit_16(1906);
+emit_16(1971);
+emit_16(1907);
+emit_16(1972);
+emit_16(1908);
+emit_16(1972);
+emit_16(1907);
+emit_16(1972);
+emit_16(1908);
+emit_16(1973);
+emit_16(1909);
+emit_16(1973);
+emit_16(1908);
+emit_16(1973);
+emit_16(1909);
+emit_16(1974);
+emit_16(1910);
+emit_16(1974);
+emit_16(1909);
+emit_16(1974);
+emit_16(1910);
+emit_16(1975);
+emit_16(1911);
+emit_16(1975);
+emit_16(1910);
+emit_16(1975);
+emit_16(1911);
+emit_16(1976);
+emit_16(1912);
+emit_16(1976);
+emit_16(1911);
+emit_16(1976);
+emit_16(1912);
+emit_16(1977);
+emit_16(1913);
+emit_16(1977);
+emit_16(1912);
+emit_16(1977);
+emit_16(1913);
+emit_16(1978);
+emit_16(1914);
+emit_16(1978);
+emit_16(1913);
+emit_16(1978);
+emit_16(1914);
+emit_16(1979);
+emit_16(1915);
+emit_16(1979);
+emit_16(1914);
+emit_16(1979);
+emit_16(1915);
+emit_16(1980);
+emit_16(1916);
+emit_16(1980);
+emit_16(1915);
+emit_16(1980);
+emit_16(1916);
+emit_16(1981);
+emit_16(1917);
+emit_16(1981);
+emit_16(1916);
+emit_16(1981);
+emit_16(1917);
+emit_16(1982);
+emit_16(1918);
+emit_16(1982);
+emit_16(1917);
+emit_16(1982);
+emit_16(1918);
+emit_16(1983);
+emit_16(1919);
+emit_16(1983);
+emit_16(1918);
+emit_16(1984);
+emit_16(1920);
+emit_16(1985);
+emit_16(1921);
+emit_16(1985);
+emit_16(1920);
+emit_16(1985);
+emit_16(1921);
+emit_16(1986);
+emit_16(1922);
+emit_16(1986);
+emit_16(1921);
+emit_16(1986);
+emit_16(1922);
+emit_16(1987);
+emit_16(1923);
+emit_16(1987);
+emit_16(1922);
+emit_16(1987);
+emit_16(1923);
+emit_16(1988);
+emit_16(1924);
+emit_16(1988);
+emit_16(1923);
+emit_16(1988);
+emit_16(1924);
+emit_16(1989);
+emit_16(1925);
+emit_16(1989);
+emit_16(1924);
+emit_16(1989);
+emit_16(1925);
+emit_16(1990);
+emit_16(1926);
+emit_16(1990);
+emit_16(1925);
+emit_16(1990);
+emit_16(1926);
+emit_16(1991);
+emit_16(1927);
+emit_16(1991);
+emit_16(1926);
+emit_16(1991);
+emit_16(1927);
+emit_16(1992);
+emit_16(1928);
+emit_16(1992);
+emit_16(1927);
+emit_16(1992);
+emit_16(1928);
+emit_16(1993);
+emit_16(1929);
+emit_16(1993);
+emit_16(1928);
+emit_16(1993);
+emit_16(1929);
+emit_16(1994);
+emit_16(1930);
+emit_16(1994);
+emit_16(1929);
+emit_16(1994);
+emit_16(1930);
+emit_16(1995);
+emit_16(1931);
+emit_16(1995);
+emit_16(1930);
+emit_16(1995);
+emit_16(1931);
+emit_16(1996);
+emit_16(1932);
+emit_16(1996);
+emit_16(1931);
+emit_16(1996);
+emit_16(1932);
+emit_16(1997);
+emit_16(1933);
+emit_16(1997);
+emit_16(1932);
+emit_16(1997);
+emit_16(1933);
+emit_16(1998);
+emit_16(1934);
+emit_16(1998);
+emit_16(1933);
+emit_16(1998);
+emit_16(1934);
+emit_16(1999);
+emit_16(1935);
+emit_16(1999);
+emit_16(1934);
+emit_16(1999);
+emit_16(1935);
+emit_16(2000);
+emit_16(1936);
+emit_16(2000);
+emit_16(1935);
+emit_16(2000);
+emit_16(1936);
+emit_16(2001);
+emit_16(1937);
+emit_16(2001);
+emit_16(1936);
+emit_16(2001);
+emit_16(1937);
+emit_16(2002);
+emit_16(1938);
+emit_16(2002);
+emit_16(1937);
+emit_16(2002);
+emit_16(1938);
+emit_16(2003);
+emit_16(1939);
+emit_16(2003);
+emit_16(1938);
+emit_16(2003);
+emit_16(1939);
+emit_16(2004);
+emit_16(1940);
+emit_16(2004);
+emit_16(1939);
+emit_16(2004);
+emit_16(1940);
+emit_16(2005);
+emit_16(1941);
+emit_16(2005);
+emit_16(1940);
+emit_16(2005);
+emit_16(1941);
+emit_16(2006);
+emit_16(1942);
+emit_16(2006);
+emit_16(1941);
+emit_16(2006);
+emit_16(1942);
+emit_16(2007);
+emit_16(1943);
+emit_16(2007);
+emit_16(1942);
+emit_16(2007);
+emit_16(1943);
+emit_16(2008);
+emit_16(1944);
+emit_16(2008);
+emit_16(1943);
+emit_16(2008);
+emit_16(1944);
+emit_16(2009);
+emit_16(1945);
+emit_16(2009);
+emit_16(1944);
+emit_16(2009);
+emit_16(1945);
+emit_16(2010);
+emit_16(1946);
+emit_16(2010);
+emit_16(1945);
+emit_16(2010);
+emit_16(1946);
+emit_16(2011);
+emit_16(1947);
+emit_16(2011);
+emit_16(1946);
+emit_16(2011);
+emit_16(1947);
+emit_16(2012);
+emit_16(1948);
+emit_16(2012);
+emit_16(1947);
+emit_16(2012);
+emit_16(1948);
+emit_16(2013);
+emit_16(1949);
+emit_16(2013);
+emit_16(1948);
+emit_16(2013);
+emit_16(1949);
+emit_16(2014);
+emit_16(1950);
+emit_16(2014);
+emit_16(1949);
+emit_16(2014);
+emit_16(1950);
+emit_16(2015);
+emit_16(1951);
+emit_16(2015);
+emit_16(1950);
+emit_16(2015);
+emit_16(1951);
+emit_16(2016);
+emit_16(1952);
+emit_16(2016);
+emit_16(1951);
+emit_16(2016);
+emit_16(1952);
+emit_16(2017);
+emit_16(1953);
+emit_16(2017);
+emit_16(1952);
+emit_16(2017);
+emit_16(1953);
+emit_16(2018);
+emit_16(1954);
+emit_16(2018);
+emit_16(1953);
+emit_16(2018);
+emit_16(1954);
+emit_16(2019);
+emit_16(1955);
+emit_16(2019);
+emit_16(1954);
+emit_16(2019);
+emit_16(1955);
+emit_16(2020);
+emit_16(1956);
+emit_16(2020);
+emit_16(1955);
+emit_16(2020);
+emit_16(1956);
+emit_16(2021);
+emit_16(1957);
+emit_16(2021);
+emit_16(1956);
+emit_16(2021);
+emit_16(1957);
+emit_16(2022);
+emit_16(1958);
+emit_16(2022);
+emit_16(1957);
+emit_16(2022);
+emit_16(1958);
+emit_16(2023);
+emit_16(1959);
+emit_16(2023);
+emit_16(1958);
+emit_16(2023);
+emit_16(1959);
+emit_16(2024);
+emit_16(1960);
+emit_16(2024);
+emit_16(1959);
+emit_16(2024);
+emit_16(1960);
+emit_16(2025);
+emit_16(1961);
+emit_16(2025);
+emit_16(1960);
+emit_16(2025);
+emit_16(1961);
+emit_16(2026);
+emit_16(1962);
+emit_16(2026);
+emit_16(1961);
+emit_16(2026);
+emit_16(1962);
+emit_16(2027);
+emit_16(1963);
+emit_16(2027);
+emit_16(1962);
+emit_16(2027);
+emit_16(1963);
+emit_16(2028);
+emit_16(1964);
+emit_16(2028);
+emit_16(1963);
+emit_16(2028);
+emit_16(1964);
+emit_16(2029);
+emit_16(1965);
+emit_16(2029);
+emit_16(1964);
+emit_16(2029);
+emit_16(1965);
+emit_16(2030);
+emit_16(1966);
+emit_16(2030);
+emit_16(1965);
+emit_16(2030);
+emit_16(1966);
+emit_16(2031);
+emit_16(1967);
+emit_16(2031);
+emit_16(1966);
+emit_16(2031);
+emit_16(1967);
+emit_16(2032);
+emit_16(1968);
+emit_16(2032);
+emit_16(1967);
+emit_16(2032);
+emit_16(1968);
+emit_16(2033);
+emit_16(1969);
+emit_16(2033);
+emit_16(1968);
+emit_16(2033);
+emit_16(1969);
+emit_16(2034);
+emit_16(1970);
+emit_16(2034);
+emit_16(1969);
+emit_16(2034);
+emit_16(1970);
+emit_16(2035);
+emit_16(1971);
+emit_16(2035);
+emit_16(1970);
+emit_16(2035);
+emit_16(1971);
+emit_16(2036);
+emit_16(1972);
+emit_16(2036);
+emit_16(1971);
+emit_16(2036);
+emit_16(1972);
+emit_16(2037);
+emit_16(1973);
+emit_16(2037);
+emit_16(1972);
+emit_16(2037);
+emit_16(1973);
+emit_16(2038);
+emit_16(1974);
+emit_16(2038);
+emit_16(1973);
+emit_16(2038);
+emit_16(1974);
+emit_16(2039);
+emit_16(1975);
+emit_16(2039);
+emit_16(1974);
+emit_16(2039);
+emit_16(1975);
+emit_16(2040);
+emit_16(1976);
+emit_16(2040);
+emit_16(1975);
+emit_16(2040);
+emit_16(1976);
+emit_16(2041);
+emit_16(1977);
+emit_16(2041);
+emit_16(1976);
+emit_16(2041);
+emit_16(1977);
+emit_16(2042);
+emit_16(1978);
+emit_16(2042);
+emit_16(1977);
+emit_16(2042);
+emit_16(1978);
+emit_16(2043);
+emit_16(1979);
+emit_16(2043);
+emit_16(1978);
+emit_16(2043);
+emit_16(1979);
+emit_16(2044);
+emit_16(1980);
+emit_16(2044);
+emit_16(1979);
+emit_16(2044);
+emit_16(1980);
+emit_16(2045);
+emit_16(1981);
+emit_16(2045);
+emit_16(1980);
+emit_16(2045);
+emit_16(1981);
+emit_16(2046);
+emit_16(1982);
+emit_16(2046);
+emit_16(1981);
+emit_16(2046);
+emit_16(1982);
+emit_16(2047);
+emit_16(1983);
+emit_16(2047);
+emit_16(1982);
+emit_16(2048);
+emit_16(1984);
+emit_16(2049);
+emit_16(1985);
+emit_16(2049);
+emit_16(1984);
+emit_16(2049);
+emit_16(1985);
+emit_16(2050);
+emit_16(1986);
+emit_16(2050);
+emit_16(1985);
+emit_16(2050);
+emit_16(1986);
+emit_16(2051);
+emit_16(1987);
+emit_16(2051);
+emit_16(1986);
+emit_16(2051);
+emit_16(1987);
+emit_16(2052);
+emit_16(1988);
+emit_16(2052);
+emit_16(1987);
+emit_16(2052);
+emit_16(1988);
+emit_16(2053);
+emit_16(1989);
+emit_16(2053);
+emit_16(1988);
+emit_16(2053);
+emit_16(1989);
+emit_16(2054);
+emit_16(1990);
+emit_16(2054);
+emit_16(1989);
+emit_16(2054);
+emit_16(1990);
+emit_16(2055);
+emit_16(1991);
+emit_16(2055);
+emit_16(1990);
+emit_16(2055);
+emit_16(1991);
+emit_16(2056);
+emit_16(1992);
+emit_16(2056);
+emit_16(1991);
+emit_16(2056);
+emit_16(1992);
+emit_16(2057);
+emit_16(1993);
+emit_16(2057);
+emit_16(1992);
+emit_16(2057);
+emit_16(1993);
+emit_16(2058);
+emit_16(1994);
+emit_16(2058);
+emit_16(1993);
+emit_16(2058);
+emit_16(1994);
+emit_16(2059);
+emit_16(1995);
+emit_16(2059);
+emit_16(1994);
+emit_16(2059);
+emit_16(1995);
+emit_16(2060);
+emit_16(1996);
+emit_16(2060);
+emit_16(1995);
+emit_16(2060);
+emit_16(1996);
+emit_16(2061);
+emit_16(1997);
+emit_16(2061);
+emit_16(1996);
+emit_16(2061);
+emit_16(1997);
+emit_16(2062);
+emit_16(1998);
+emit_16(2062);
+emit_16(1997);
+emit_16(2062);
+emit_16(1998);
+emit_16(2063);
+emit_16(1999);
+emit_16(2063);
+emit_16(1998);
+emit_16(2063);
+emit_16(1999);
+emit_16(2064);
+emit_16(2000);
+emit_16(2064);
+emit_16(1999);
+emit_16(2064);
+emit_16(2000);
+emit_16(2065);
+emit_16(2001);
+emit_16(2065);
+emit_16(2000);
+emit_16(2065);
+emit_16(2001);
+emit_16(2066);
+emit_16(2002);
+emit_16(2066);
+emit_16(2001);
+emit_16(2066);
+emit_16(2002);
+emit_16(2067);
+emit_16(2003);
+emit_16(2067);
+emit_16(2002);
+emit_16(2067);
+emit_16(2003);
+emit_16(2068);
+emit_16(2004);
+emit_16(2068);
+emit_16(2003);
+emit_16(2068);
+emit_16(2004);
+emit_16(2069);
+emit_16(2005);
+emit_16(2069);
+emit_16(2004);
+emit_16(2069);
+emit_16(2005);
+emit_16(2070);
+emit_16(2006);
+emit_16(2070);
+emit_16(2005);
+emit_16(2070);
+emit_16(2006);
+emit_16(2071);
+emit_16(2007);
+emit_16(2071);
+emit_16(2006);
+emit_16(2071);
+emit_16(2007);
+emit_16(2072);
+emit_16(2008);
+emit_16(2072);
+emit_16(2007);
+emit_16(2072);
+emit_16(2008);
+emit_16(2073);
+emit_16(2009);
+emit_16(2073);
+emit_16(2008);
+emit_16(2073);
+emit_16(2009);
+emit_16(2074);
+emit_16(2010);
+emit_16(2074);
+emit_16(2009);
+emit_16(2074);
+emit_16(2010);
+emit_16(2075);
+emit_16(2011);
+emit_16(2075);
+emit_16(2010);
+emit_16(2075);
+emit_16(2011);
+emit_16(2076);
+emit_16(2012);
+emit_16(2076);
+emit_16(2011);
+emit_16(2076);
+emit_16(2012);
+emit_16(2077);
+emit_16(2013);
+emit_16(2077);
+emit_16(2012);
+emit_16(2077);
+emit_16(2013);
+emit_16(2078);
+emit_16(2014);
+emit_16(2078);
+emit_16(2013);
+emit_16(2078);
+emit_16(2014);
+emit_16(2079);
+emit_16(2015);
+emit_16(2079);
+emit_16(2014);
+emit_16(2079);
+emit_16(2015);
+emit_16(2080);
+emit_16(2016);
+emit_16(2080);
+emit_16(2015);
+emit_16(2080);
+emit_16(2016);
+emit_16(2081);
+emit_16(2017);
+emit_16(2081);
+emit_16(2016);
+emit_16(2081);
+emit_16(2017);
+emit_16(2082);
+emit_16(2018);
+emit_16(2082);
+emit_16(2017);
+emit_16(2082);
+emit_16(2018);
+emit_16(2083);
+emit_16(2019);
+emit_16(2083);
+emit_16(2018);
+emit_16(2083);
+emit_16(2019);
+emit_16(2084);
+emit_16(2020);
+emit_16(2084);
+emit_16(2019);
+emit_16(2084);
+emit_16(2020);
+emit_16(2085);
+emit_16(2021);
+emit_16(2085);
+emit_16(2020);
+emit_16(2085);
+emit_16(2021);
+emit_16(2086);
+emit_16(2022);
+emit_16(2086);
+emit_16(2021);
+emit_16(2086);
+emit_16(2022);
+emit_16(2087);
+emit_16(2023);
+emit_16(2087);
+emit_16(2022);
+emit_16(2087);
+emit_16(2023);
+emit_16(2088);
+emit_16(2024);
+emit_16(2088);
+emit_16(2023);
+emit_16(2088);
+emit_16(2024);
+emit_16(2089);
+emit_16(2025);
+emit_16(2089);
+emit_16(2024);
+emit_16(2089);
+emit_16(2025);
+emit_16(2090);
+emit_16(2026);
+emit_16(2090);
+emit_16(2025);
+emit_16(2090);
+emit_16(2026);
+emit_16(2091);
+emit_16(2027);
+emit_16(2091);
+emit_16(2026);
+emit_16(2091);
+emit_16(2027);
+emit_16(2092);
+emit_16(2028);
+emit_16(2092);
+emit_16(2027);
+emit_16(2092);
+emit_16(2028);
+emit_16(2093);
+emit_16(2029);
+emit_16(2093);
+emit_16(2028);
+emit_16(2093);
+emit_16(2029);
+emit_16(2094);
+emit_16(2030);
+emit_16(2094);
+emit_16(2029);
+emit_16(2094);
+emit_16(2030);
+emit_16(2095);
+emit_16(2031);
+emit_16(2095);
+emit_16(2030);
+emit_16(2095);
+emit_16(2031);
+emit_16(2096);
+emit_16(2032);
+emit_16(2096);
+emit_16(2031);
+emit_16(2096);
+emit_16(2032);
+emit_16(2097);
+emit_16(2033);
+emit_16(2097);
+emit_16(2032);
+emit_16(2097);
+emit_16(2033);
+emit_16(2098);
+emit_16(2034);
+emit_16(2098);
+emit_16(2033);
+emit_16(2098);
+emit_16(2034);
+emit_16(2099);
+emit_16(2035);
+emit_16(2099);
+emit_16(2034);
+emit_16(2099);
+emit_16(2035);
+emit_16(2100);
+emit_16(2036);
+emit_16(2100);
+emit_16(2035);
+emit_16(2100);
+emit_16(2036);
+emit_16(2101);
+emit_16(2037);
+emit_16(2101);
+emit_16(2036);
+emit_16(2101);
+emit_16(2037);
+emit_16(2102);
+emit_16(2038);
+emit_16(2102);
+emit_16(2037);
+emit_16(2102);
+emit_16(2038);
+emit_16(2103);
+emit_16(2039);
+emit_16(2103);
+emit_16(2038);
+emit_16(2103);
+emit_16(2039);
+emit_16(2104);
+emit_16(2040);
+emit_16(2104);
+emit_16(2039);
+emit_16(2104);
+emit_16(2040);
+emit_16(2105);
+emit_16(2041);
+emit_16(2105);
+emit_16(2040);
+emit_16(2105);
+emit_16(2041);
+emit_16(2106);
+emit_16(2042);
+emit_16(2106);
+emit_16(2041);
+emit_16(2106);
+emit_16(2042);
+emit_16(2107);
+emit_16(2043);
+emit_16(2107);
+emit_16(2042);
+emit_16(2107);
+emit_16(2043);
+emit_16(2108);
+emit_16(2044);
+emit_16(2108);
+emit_16(2043);
+emit_16(2108);
+emit_16(2044);
+emit_16(2109);
+emit_16(2045);
+emit_16(2109);
+emit_16(2044);
+emit_16(2109);
+emit_16(2045);
+emit_16(2110);
+emit_16(2046);
+emit_16(2110);
+emit_16(2045);
+emit_16(2110);
+emit_16(2046);
+emit_16(2111);
+emit_16(2047);
+emit_16(2111);
+emit_16(2046);
+emit_16(2112);
+emit_16(2048);
+emit_16(2113);
+emit_16(2049);
+emit_16(2113);
+emit_16(2048);
+emit_16(2113);
+emit_16(2049);
+emit_16(2114);
+emit_16(2050);
+emit_16(2114);
+emit_16(2049);
+emit_16(2114);
+emit_16(2050);
+emit_16(2115);
+emit_16(2051);
+emit_16(2115);
+emit_16(2050);
+emit_16(2115);
+emit_16(2051);
+emit_16(2116);
+emit_16(2052);
+emit_16(2116);
+emit_16(2051);
+emit_16(2116);
+emit_16(2052);
+emit_16(2117);
+emit_16(2053);
+emit_16(2117);
+emit_16(2052);
+emit_16(2117);
+emit_16(2053);
+emit_16(2118);
+emit_16(2054);
+emit_16(2118);
+emit_16(2053);
+emit_16(2118);
+emit_16(2054);
+emit_16(2119);
+emit_16(2055);
+emit_16(2119);
+emit_16(2054);
+emit_16(2119);
+emit_16(2055);
+emit_16(2120);
+emit_16(2056);
+emit_16(2120);
+emit_16(2055);
+emit_16(2120);
+emit_16(2056);
+emit_16(2121);
+emit_16(2057);
+emit_16(2121);
+emit_16(2056);
+emit_16(2121);
+emit_16(2057);
+emit_16(2122);
+emit_16(2058);
+emit_16(2122);
+emit_16(2057);
+emit_16(2122);
+emit_16(2058);
+emit_16(2123);
+emit_16(2059);
+emit_16(2123);
+emit_16(2058);
+emit_16(2123);
+emit_16(2059);
+emit_16(2124);
+emit_16(2060);
+emit_16(2124);
+emit_16(2059);
+emit_16(2124);
+emit_16(2060);
+emit_16(2125);
+emit_16(2061);
+emit_16(2125);
+emit_16(2060);
+emit_16(2125);
+emit_16(2061);
+emit_16(2126);
+emit_16(2062);
+emit_16(2126);
+emit_16(2061);
+emit_16(2126);
+emit_16(2062);
+emit_16(2127);
+emit_16(2063);
+emit_16(2127);
+emit_16(2062);
+emit_16(2127);
+emit_16(2063);
+emit_16(2128);
+emit_16(2064);
+emit_16(2128);
+emit_16(2063);
+emit_16(2128);
+emit_16(2064);
+emit_16(2129);
+emit_16(2065);
+emit_16(2129);
+emit_16(2064);
+emit_16(2129);
+emit_16(2065);
+emit_16(2130);
+emit_16(2066);
+emit_16(2130);
+emit_16(2065);
+emit_16(2130);
+emit_16(2066);
+emit_16(2131);
+emit_16(2067);
+emit_16(2131);
+emit_16(2066);
+emit_16(2131);
+emit_16(2067);
+emit_16(2132);
+emit_16(2068);
+emit_16(2132);
+emit_16(2067);
+emit_16(2132);
+emit_16(2068);
+emit_16(2133);
+emit_16(2069);
+emit_16(2133);
+emit_16(2068);
+emit_16(2133);
+emit_16(2069);
+emit_16(2134);
+emit_16(2070);
+emit_16(2134);
+emit_16(2069);
+emit_16(2134);
+emit_16(2070);
+emit_16(2135);
+emit_16(2071);
+emit_16(2135);
+emit_16(2070);
+emit_16(2135);
+emit_16(2071);
+emit_16(2136);
+emit_16(2072);
+emit_16(2136);
+emit_16(2071);
+emit_16(2136);
+emit_16(2072);
+emit_16(2137);
+emit_16(2073);
+emit_16(2137);
+emit_16(2072);
+emit_16(2137);
+emit_16(2073);
+emit_16(2138);
+emit_16(2074);
+emit_16(2138);
+emit_16(2073);
+emit_16(2138);
+emit_16(2074);
+emit_16(2139);
+emit_16(2075);
+emit_16(2139);
+emit_16(2074);
+emit_16(2139);
+emit_16(2075);
+emit_16(2140);
+emit_16(2076);
+emit_16(2140);
+emit_16(2075);
+emit_16(2140);
+emit_16(2076);
+emit_16(2141);
+emit_16(2077);
+emit_16(2141);
+emit_16(2076);
+emit_16(2141);
+emit_16(2077);
+emit_16(2142);
+emit_16(2078);
+emit_16(2142);
+emit_16(2077);
+emit_16(2142);
+emit_16(2078);
+emit_16(2143);
+emit_16(2079);
+emit_16(2143);
+emit_16(2078);
+emit_16(2143);
+emit_16(2079);
+emit_16(2144);
+emit_16(2080);
+emit_16(2144);
+emit_16(2079);
+emit_16(2144);
+emit_16(2080);
+emit_16(2145);
+emit_16(2081);
+emit_16(2145);
+emit_16(2080);
+emit_16(2145);
+emit_16(2081);
+emit_16(2146);
+emit_16(2082);
+emit_16(2146);
+emit_16(2081);
+emit_16(2146);
+emit_16(2082);
+emit_16(2147);
+emit_16(2083);
+emit_16(2147);
+emit_16(2082);
+emit_16(2147);
+emit_16(2083);
+emit_16(2148);
+emit_16(2084);
+emit_16(2148);
+emit_16(2083);
+emit_16(2148);
+emit_16(2084);
+emit_16(2149);
+emit_16(2085);
+emit_16(2149);
+emit_16(2084);
+emit_16(2149);
+emit_16(2085);
+emit_16(2150);
+emit_16(2086);
+emit_16(2150);
+emit_16(2085);
+emit_16(2150);
+emit_16(2086);
+emit_16(2151);
+emit_16(2087);
+emit_16(2151);
+emit_16(2086);
+emit_16(2151);
+emit_16(2087);
+emit_16(2152);
+emit_16(2088);
+emit_16(2152);
+emit_16(2087);
+emit_16(2152);
+emit_16(2088);
+emit_16(2153);
+emit_16(2089);
+emit_16(2153);
+emit_16(2088);
+emit_16(2153);
+emit_16(2089);
+emit_16(2154);
+emit_16(2090);
+emit_16(2154);
+emit_16(2089);
+emit_16(2154);
+emit_16(2090);
+emit_16(2155);
+emit_16(2091);
+emit_16(2155);
+emit_16(2090);
+emit_16(2155);
+emit_16(2091);
+emit_16(2156);
+emit_16(2092);
+emit_16(2156);
+emit_16(2091);
+emit_16(2156);
+emit_16(2092);
+emit_16(2157);
+emit_16(2093);
+emit_16(2157);
+emit_16(2092);
+emit_16(2157);
+emit_16(2093);
+emit_16(2158);
+emit_16(2094);
+emit_16(2158);
+emit_16(2093);
+emit_16(2158);
+emit_16(2094);
+emit_16(2159);
+emit_16(2095);
+emit_16(2159);
+emit_16(2094);
+emit_16(2159);
+emit_16(2095);
+emit_16(2160);
+emit_16(2096);
+emit_16(2160);
+emit_16(2095);
+emit_16(2160);
+emit_16(2096);
+emit_16(2161);
+emit_16(2097);
+emit_16(2161);
+emit_16(2096);
+emit_16(2161);
+emit_16(2097);
+emit_16(2162);
+emit_16(2098);
+emit_16(2162);
+emit_16(2097);
+emit_16(2162);
+emit_16(2098);
+emit_16(2163);
+emit_16(2099);
+emit_16(2163);
+emit_16(2098);
+emit_16(2163);
+emit_16(2099);
+emit_16(2164);
+emit_16(2100);
+emit_16(2164);
+emit_16(2099);
+emit_16(2164);
+emit_16(2100);
+emit_16(2165);
+emit_16(2101);
+emit_16(2165);
+emit_16(2100);
+emit_16(2165);
+emit_16(2101);
+emit_16(2166);
+emit_16(2102);
+emit_16(2166);
+emit_16(2101);
+emit_16(2166);
+emit_16(2102);
+emit_16(2167);
+emit_16(2103);
+emit_16(2167);
+emit_16(2102);
+emit_16(2167);
+emit_16(2103);
+emit_16(2168);
+emit_16(2104);
+emit_16(2168);
+emit_16(2103);
+emit_16(2168);
+emit_16(2104);
+emit_16(2169);
+emit_16(2105);
+emit_16(2169);
+emit_16(2104);
+emit_16(2169);
+emit_16(2105);
+emit_16(2170);
+emit_16(2106);
+emit_16(2170);
+emit_16(2105);
+emit_16(2170);
+emit_16(2106);
+emit_16(2171);
+emit_16(2107);
+emit_16(2171);
+emit_16(2106);
+emit_16(2171);
+emit_16(2107);
+emit_16(2172);
+emit_16(2108);
+emit_16(2172);
+emit_16(2107);
+emit_16(2172);
+emit_16(2108);
+emit_16(2173);
+emit_16(2109);
+emit_16(2173);
+emit_16(2108);
+emit_16(2173);
+emit_16(2109);
+emit_16(2174);
+emit_16(2110);
+emit_16(2174);
+emit_16(2109);
+emit_16(2174);
+emit_16(2110);
+emit_16(2175);
+emit_16(2111);
+emit_16(2175);
+emit_16(2110);
+emit_16(2176);
+emit_16(2112);
+emit_16(2177);
+emit_16(2113);
+emit_16(2177);
+emit_16(2112);
+emit_16(2177);
+emit_16(2113);
+emit_16(2178);
+emit_16(2114);
+emit_16(2178);
+emit_16(2113);
+emit_16(2178);
+emit_16(2114);
+emit_16(2179);
+emit_16(2115);
+emit_16(2179);
+emit_16(2114);
+emit_16(2179);
+emit_16(2115);
+emit_16(2180);
+emit_16(2116);
+emit_16(2180);
+emit_16(2115);
+emit_16(2180);
+emit_16(2116);
+emit_16(2181);
+emit_16(2117);
+emit_16(2181);
+emit_16(2116);
+emit_16(2181);
+emit_16(2117);
+emit_16(2182);
+emit_16(2118);
+emit_16(2182);
+emit_16(2117);
+emit_16(2182);
+emit_16(2118);
+emit_16(2183);
+emit_16(2119);
+emit_16(2183);
+emit_16(2118);
+emit_16(2183);
+emit_16(2119);
+emit_16(2184);
+emit_16(2120);
+emit_16(2184);
+emit_16(2119);
+emit_16(2184);
+emit_16(2120);
+emit_16(2185);
+emit_16(2121);
+emit_16(2185);
+emit_16(2120);
+emit_16(2185);
+emit_16(2121);
+emit_16(2186);
+emit_16(2122);
+emit_16(2186);
+emit_16(2121);
+emit_16(2186);
+emit_16(2122);
+emit_16(2187);
+emit_16(2123);
+emit_16(2187);
+emit_16(2122);
+emit_16(2187);
+emit_16(2123);
+emit_16(2188);
+emit_16(2124);
+emit_16(2188);
+emit_16(2123);
+emit_16(2188);
+emit_16(2124);
+emit_16(2189);
+emit_16(2125);
+emit_16(2189);
+emit_16(2124);
+emit_16(2189);
+emit_16(2125);
+emit_16(2190);
+emit_16(2126);
+emit_16(2190);
+emit_16(2125);
+emit_16(2190);
+emit_16(2126);
+emit_16(2191);
+emit_16(2127);
+emit_16(2191);
+emit_16(2126);
+emit_16(2191);
+emit_16(2127);
+emit_16(2192);
+emit_16(2128);
+emit_16(2192);
+emit_16(2127);
+emit_16(2192);
+emit_16(2128);
+emit_16(2193);
+emit_16(2129);
+emit_16(2193);
+emit_16(2128);
+emit_16(2193);
+emit_16(2129);
+emit_16(2194);
+emit_16(2130);
+emit_16(2194);
+emit_16(2129);
+emit_16(2194);
+emit_16(2130);
+emit_16(2195);
+emit_16(2131);
+emit_16(2195);
+emit_16(2130);
+emit_16(2195);
+emit_16(2131);
+emit_16(2196);
+emit_16(2132);
+emit_16(2196);
+emit_16(2131);
+emit_16(2196);
+emit_16(2132);
+emit_16(2197);
+emit_16(2133);
+emit_16(2197);
+emit_16(2132);
+emit_16(2197);
+emit_16(2133);
+emit_16(2198);
+emit_16(2134);
+emit_16(2198);
+emit_16(2133);
+emit_16(2198);
+emit_16(2134);
+emit_16(2199);
+emit_16(2135);
+emit_16(2199);
+emit_16(2134);
+emit_16(2199);
+emit_16(2135);
+emit_16(2200);
+emit_16(2136);
+emit_16(2200);
+emit_16(2135);
+emit_16(2200);
+emit_16(2136);
+emit_16(2201);
+emit_16(2137);
+emit_16(2201);
+emit_16(2136);
+emit_16(2201);
+emit_16(2137);
+emit_16(2202);
+emit_16(2138);
+emit_16(2202);
+emit_16(2137);
+emit_16(2202);
+emit_16(2138);
+emit_16(2203);
+emit_16(2139);
+emit_16(2203);
+emit_16(2138);
+emit_16(2203);
+emit_16(2139);
+emit_16(2204);
+emit_16(2140);
+emit_16(2204);
+emit_16(2139);
+emit_16(2204);
+emit_16(2140);
+emit_16(2205);
+emit_16(2141);
+emit_16(2205);
+emit_16(2140);
+emit_16(2205);
+emit_16(2141);
+emit_16(2206);
+emit_16(2142);
+emit_16(2206);
+emit_16(2141);
+emit_16(2206);
+emit_16(2142);
+emit_16(2207);
+emit_16(2143);
+emit_16(2207);
+emit_16(2142);
+emit_16(2207);
+emit_16(2143);
+emit_16(2208);
+emit_16(2144);
+emit_16(2208);
+emit_16(2143);
+emit_16(2208);
+emit_16(2144);
+emit_16(2209);
+emit_16(2145);
+emit_16(2209);
+emit_16(2144);
+emit_16(2209);
+emit_16(2145);
+emit_16(2210);
+emit_16(2146);
+emit_16(2210);
+emit_16(2145);
+emit_16(2210);
+emit_16(2146);
+emit_16(2211);
+emit_16(2147);
+emit_16(2211);
+emit_16(2146);
+emit_16(2211);
+emit_16(2147);
+emit_16(2212);
+emit_16(2148);
+emit_16(2212);
+emit_16(2147);
+emit_16(2212);
+emit_16(2148);
+emit_16(2213);
+emit_16(2149);
+emit_16(2213);
+emit_16(2148);
+emit_16(2213);
+emit_16(2149);
+emit_16(2214);
+emit_16(2150);
+emit_16(2214);
+emit_16(2149);
+emit_16(2214);
+emit_16(2150);
+emit_16(2215);
+emit_16(2151);
+emit_16(2215);
+emit_16(2150);
+emit_16(2215);
+emit_16(2151);
+emit_16(2216);
+emit_16(2152);
+emit_16(2216);
+emit_16(2151);
+emit_16(2216);
+emit_16(2152);
+emit_16(2217);
+emit_16(2153);
+emit_16(2217);
+emit_16(2152);
+emit_16(2217);
+emit_16(2153);
+emit_16(2218);
+emit_16(2154);
+emit_16(2218);
+emit_16(2153);
+emit_16(2218);
+emit_16(2154);
+emit_16(2219);
+emit_16(2155);
+emit_16(2219);
+emit_16(2154);
+emit_16(2219);
+emit_16(2155);
+emit_16(2220);
+emit_16(2156);
+emit_16(2220);
+emit_16(2155);
+emit_16(2220);
+emit_16(2156);
+emit_16(2221);
+emit_16(2157);
+emit_16(2221);
+emit_16(2156);
+emit_16(2221);
+emit_16(2157);
+emit_16(2222);
+emit_16(2158);
+emit_16(2222);
+emit_16(2157);
+emit_16(2222);
+emit_16(2158);
+emit_16(2223);
+emit_16(2159);
+emit_16(2223);
+emit_16(2158);
+emit_16(2223);
+emit_16(2159);
+emit_16(2224);
+emit_16(2160);
+emit_16(2224);
+emit_16(2159);
+emit_16(2224);
+emit_16(2160);
+emit_16(2225);
+emit_16(2161);
+emit_16(2225);
+emit_16(2160);
+emit_16(2225);
+emit_16(2161);
+emit_16(2226);
+emit_16(2162);
+emit_16(2226);
+emit_16(2161);
+emit_16(2226);
+emit_16(2162);
+emit_16(2227);
+emit_16(2163);
+emit_16(2227);
+emit_16(2162);
+emit_16(2227);
+emit_16(2163);
+emit_16(2228);
+emit_16(2164);
+emit_16(2228);
+emit_16(2163);
+emit_16(2228);
+emit_16(2164);
+emit_16(2229);
+emit_16(2165);
+emit_16(2229);
+emit_16(2164);
+emit_16(2229);
+emit_16(2165);
+emit_16(2230);
+emit_16(2166);
+emit_16(2230);
+emit_16(2165);
+emit_16(2230);
+emit_16(2166);
+emit_16(2231);
+emit_16(2167);
+emit_16(2231);
+emit_16(2166);
+emit_16(2231);
+emit_16(2167);
+emit_16(2232);
+emit_16(2168);
+emit_16(2232);
+emit_16(2167);
+emit_16(2232);
+emit_16(2168);
+emit_16(2233);
+emit_16(2169);
+emit_16(2233);
+emit_16(2168);
+emit_16(2233);
+emit_16(2169);
+emit_16(2234);
+emit_16(2170);
+emit_16(2234);
+emit_16(2169);
+emit_16(2234);
+emit_16(2170);
+emit_16(2235);
+emit_16(2171);
+emit_16(2235);
+emit_16(2170);
+emit_16(2235);
+emit_16(2171);
+emit_16(2236);
+emit_16(2172);
+emit_16(2236);
+emit_16(2171);
+emit_16(2236);
+emit_16(2172);
+emit_16(2237);
+emit_16(2173);
+emit_16(2237);
+emit_16(2172);
+emit_16(2237);
+emit_16(2173);
+emit_16(2238);
+emit_16(2174);
+emit_16(2238);
+emit_16(2173);
+emit_16(2238);
+emit_16(2174);
+emit_16(2239);
+emit_16(2175);
+emit_16(2239);
+emit_16(2174);
+emit_start(Landscape08Idx)
+emit_16(0);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(2);
+emit_16(1);
+emit_16(2);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(4);
+emit_16(3);
+emit_16(4);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(6);
+emit_16(5);
+emit_16(6);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(8);
+emit_16(7);
+emit_16(8);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(10);
+emit_16(9);
+emit_16(10);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(12);
+emit_16(11);
+emit_16(12);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(14);
+emit_16(13);
+emit_16(14);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(16);
+emit_16(15);
+emit_16(16);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(18);
+emit_16(17);
+emit_16(18);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(20);
+emit_16(19);
+emit_16(20);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(22);
+emit_16(21);
+emit_16(22);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(24);
+emit_16(23);
+emit_16(24);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(26);
+emit_16(25);
+emit_16(26);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(28);
+emit_16(27);
+emit_16(28);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(30);
+emit_16(29);
+emit_16(30);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(32);
+emit_16(31);
+emit_16(32);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(34);
+emit_16(33);
+emit_16(34);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(36);
+emit_16(35);
+emit_16(36);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(38);
+emit_16(37);
+emit_16(38);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(40);
+emit_16(39);
+emit_16(40);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(42);
+emit_16(41);
+emit_16(42);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(44);
+emit_16(43);
+emit_16(44);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(46);
+emit_16(45);
+emit_16(46);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(48);
+emit_16(47);
+emit_16(48);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(50);
+emit_16(49);
+emit_16(50);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(52);
+emit_16(51);
+emit_16(52);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(54);
+emit_16(53);
+emit_16(54);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(56);
+emit_16(55);
+emit_16(56);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(58);
+emit_16(57);
+emit_16(58);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(60);
+emit_16(59);
+emit_16(60);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(62);
+emit_16(61);
+emit_16(62);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(64);
+emit_16(63);
+emit_16(64);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(66);
+emit_16(65);
+emit_16(66);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(68);
+emit_16(67);
+emit_16(68);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(70);
+emit_16(69);
+emit_16(70);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(72);
+emit_16(71);
+emit_16(72);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(74);
+emit_16(73);
+emit_16(74);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(76);
+emit_16(75);
+emit_16(76);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(78);
+emit_16(77);
+emit_16(78);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(80);
+emit_16(79);
+emit_16(80);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(82);
+emit_16(81);
+emit_16(82);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(84);
+emit_16(83);
+emit_16(84);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(86);
+emit_16(85);
+emit_16(86);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(88);
+emit_16(87);
+emit_16(88);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(90);
+emit_16(89);
+emit_16(90);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(92);
+emit_16(91);
+emit_16(92);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(94);
+emit_16(93);
+emit_16(94);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(96);
+emit_16(95);
+emit_16(96);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(98);
+emit_16(97);
+emit_16(98);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(100);
+emit_16(99);
+emit_16(100);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(102);
+emit_16(101);
+emit_16(102);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(104);
+emit_16(103);
+emit_16(104);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(106);
+emit_16(105);
+emit_16(106);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(108);
+emit_16(107);
+emit_16(108);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(110);
+emit_16(109);
+emit_16(110);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(112);
+emit_16(111);
+emit_16(112);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(114);
+emit_16(113);
+emit_16(114);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(116);
+emit_16(115);
+emit_16(116);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(118);
+emit_16(117);
+emit_16(118);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(120);
+emit_16(119);
+emit_16(120);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(122);
+emit_16(121);
+emit_16(122);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(124);
+emit_16(123);
+emit_16(124);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(126);
+emit_16(125);
+emit_16(126);
+emit_16(127);
+emit_16(128);
+emit_16(129);
+emit_16(128);
+emit_16(127);
+emit_16(128);
+emit_16(129);
+emit_16(130);
+emit_16(131);
+emit_16(130);
+emit_16(129);
+emit_16(132);
+emit_16(0);
+emit_16(133);
+emit_16(2);
+emit_16(133);
+emit_16(0);
+emit_16(133);
+emit_16(2);
+emit_16(134);
+emit_16(4);
+emit_16(134);
+emit_16(2);
+emit_16(134);
+emit_16(4);
+emit_16(135);
+emit_16(6);
+emit_16(135);
+emit_16(4);
+emit_16(135);
+emit_16(6);
+emit_16(136);
+emit_16(8);
+emit_16(136);
+emit_16(6);
+emit_16(136);
+emit_16(8);
+emit_16(137);
+emit_16(10);
+emit_16(137);
+emit_16(8);
+emit_16(137);
+emit_16(10);
+emit_16(138);
+emit_16(12);
+emit_16(138);
+emit_16(10);
+emit_16(138);
+emit_16(12);
+emit_16(139);
+emit_16(14);
+emit_16(139);
+emit_16(12);
+emit_16(139);
+emit_16(14);
+emit_16(140);
+emit_16(16);
+emit_16(140);
+emit_16(14);
+emit_16(140);
+emit_16(16);
+emit_16(141);
+emit_16(18);
+emit_16(141);
+emit_16(16);
+emit_16(141);
+emit_16(18);
+emit_16(142);
+emit_16(20);
+emit_16(142);
+emit_16(18);
+emit_16(142);
+emit_16(20);
+emit_16(143);
+emit_16(22);
+emit_16(143);
+emit_16(20);
+emit_16(143);
+emit_16(22);
+emit_16(144);
+emit_16(24);
+emit_16(144);
+emit_16(22);
+emit_16(144);
+emit_16(24);
+emit_16(145);
+emit_16(26);
+emit_16(145);
+emit_16(24);
+emit_16(145);
+emit_16(26);
+emit_16(146);
+emit_16(28);
+emit_16(146);
+emit_16(26);
+emit_16(146);
+emit_16(28);
+emit_16(147);
+emit_16(30);
+emit_16(147);
+emit_16(28);
+emit_16(147);
+emit_16(30);
+emit_16(148);
+emit_16(32);
+emit_16(148);
+emit_16(30);
+emit_16(148);
+emit_16(32);
+emit_16(149);
+emit_16(34);
+emit_16(149);
+emit_16(32);
+emit_16(149);
+emit_16(34);
+emit_16(150);
+emit_16(36);
+emit_16(150);
+emit_16(34);
+emit_16(150);
+emit_16(36);
+emit_16(151);
+emit_16(38);
+emit_16(151);
+emit_16(36);
+emit_16(151);
+emit_16(38);
+emit_16(152);
+emit_16(40);
+emit_16(152);
+emit_16(38);
+emit_16(152);
+emit_16(40);
+emit_16(153);
+emit_16(42);
+emit_16(153);
+emit_16(40);
+emit_16(153);
+emit_16(42);
+emit_16(154);
+emit_16(44);
+emit_16(154);
+emit_16(42);
+emit_16(154);
+emit_16(44);
+emit_16(155);
+emit_16(46);
+emit_16(155);
+emit_16(44);
+emit_16(155);
+emit_16(46);
+emit_16(156);
+emit_16(48);
+emit_16(156);
+emit_16(46);
+emit_16(156);
+emit_16(48);
+emit_16(157);
+emit_16(50);
+emit_16(157);
+emit_16(48);
+emit_16(157);
+emit_16(50);
+emit_16(158);
+emit_16(52);
+emit_16(158);
+emit_16(50);
+emit_16(158);
+emit_16(52);
+emit_16(159);
+emit_16(54);
+emit_16(159);
+emit_16(52);
+emit_16(159);
+emit_16(54);
+emit_16(160);
+emit_16(56);
+emit_16(160);
+emit_16(54);
+emit_16(160);
+emit_16(56);
+emit_16(161);
+emit_16(58);
+emit_16(161);
+emit_16(56);
+emit_16(161);
+emit_16(58);
+emit_16(162);
+emit_16(60);
+emit_16(162);
+emit_16(58);
+emit_16(162);
+emit_16(60);
+emit_16(163);
+emit_16(62);
+emit_16(163);
+emit_16(60);
+emit_16(163);
+emit_16(62);
+emit_16(164);
+emit_16(64);
+emit_16(164);
+emit_16(62);
+emit_16(164);
+emit_16(64);
+emit_16(165);
+emit_16(66);
+emit_16(165);
+emit_16(64);
+emit_16(165);
+emit_16(66);
+emit_16(166);
+emit_16(68);
+emit_16(166);
+emit_16(66);
+emit_16(166);
+emit_16(68);
+emit_16(167);
+emit_16(70);
+emit_16(167);
+emit_16(68);
+emit_16(167);
+emit_16(70);
+emit_16(168);
+emit_16(72);
+emit_16(168);
+emit_16(70);
+emit_16(168);
+emit_16(72);
+emit_16(169);
+emit_16(74);
+emit_16(169);
+emit_16(72);
+emit_16(169);
+emit_16(74);
+emit_16(170);
+emit_16(76);
+emit_16(170);
+emit_16(74);
+emit_16(170);
+emit_16(76);
+emit_16(171);
+emit_16(78);
+emit_16(171);
+emit_16(76);
+emit_16(171);
+emit_16(78);
+emit_16(172);
+emit_16(80);
+emit_16(172);
+emit_16(78);
+emit_16(172);
+emit_16(80);
+emit_16(173);
+emit_16(82);
+emit_16(173);
+emit_16(80);
+emit_16(173);
+emit_16(82);
+emit_16(174);
+emit_16(84);
+emit_16(174);
+emit_16(82);
+emit_16(174);
+emit_16(84);
+emit_16(175);
+emit_16(86);
+emit_16(175);
+emit_16(84);
+emit_16(175);
+emit_16(86);
+emit_16(176);
+emit_16(88);
+emit_16(176);
+emit_16(86);
+emit_16(176);
+emit_16(88);
+emit_16(177);
+emit_16(90);
+emit_16(177);
+emit_16(88);
+emit_16(177);
+emit_16(90);
+emit_16(178);
+emit_16(92);
+emit_16(178);
+emit_16(90);
+emit_16(178);
+emit_16(92);
+emit_16(179);
+emit_16(94);
+emit_16(179);
+emit_16(92);
+emit_16(179);
+emit_16(94);
+emit_16(180);
+emit_16(96);
+emit_16(180);
+emit_16(94);
+emit_16(180);
+emit_16(96);
+emit_16(181);
+emit_16(98);
+emit_16(181);
+emit_16(96);
+emit_16(181);
+emit_16(98);
+emit_16(182);
+emit_16(100);
+emit_16(182);
+emit_16(98);
+emit_16(182);
+emit_16(100);
+emit_16(183);
+emit_16(102);
+emit_16(183);
+emit_16(100);
+emit_16(183);
+emit_16(102);
+emit_16(184);
+emit_16(104);
+emit_16(184);
+emit_16(102);
+emit_16(184);
+emit_16(104);
+emit_16(185);
+emit_16(106);
+emit_16(185);
+emit_16(104);
+emit_16(185);
+emit_16(106);
+emit_16(186);
+emit_16(108);
+emit_16(186);
+emit_16(106);
+emit_16(186);
+emit_16(108);
+emit_16(187);
+emit_16(110);
+emit_16(187);
+emit_16(108);
+emit_16(187);
+emit_16(110);
+emit_16(188);
+emit_16(112);
+emit_16(188);
+emit_16(110);
+emit_16(188);
+emit_16(112);
+emit_16(189);
+emit_16(114);
+emit_16(189);
+emit_16(112);
+emit_16(189);
+emit_16(114);
+emit_16(190);
+emit_16(116);
+emit_16(190);
+emit_16(114);
+emit_16(190);
+emit_16(116);
+emit_16(191);
+emit_16(118);
+emit_16(191);
+emit_16(116);
+emit_16(191);
+emit_16(118);
+emit_16(192);
+emit_16(120);
+emit_16(192);
+emit_16(118);
+emit_16(192);
+emit_16(120);
+emit_16(193);
+emit_16(122);
+emit_16(193);
+emit_16(120);
+emit_16(193);
+emit_16(122);
+emit_16(194);
+emit_16(124);
+emit_16(194);
+emit_16(122);
+emit_16(194);
+emit_16(124);
+emit_16(195);
+emit_16(126);
+emit_16(195);
+emit_16(124);
+emit_16(195);
+emit_16(126);
+emit_16(196);
+emit_16(128);
+emit_16(196);
+emit_16(126);
+emit_16(196);
+emit_16(128);
+emit_16(197);
+emit_16(130);
+emit_16(197);
+emit_16(128);
+emit_16(198);
+emit_16(132);
+emit_16(199);
+emit_16(133);
+emit_16(199);
+emit_16(132);
+emit_16(199);
+emit_16(133);
+emit_16(200);
+emit_16(134);
+emit_16(200);
+emit_16(133);
+emit_16(200);
+emit_16(134);
+emit_16(201);
+emit_16(135);
+emit_16(201);
+emit_16(134);
+emit_16(201);
+emit_16(135);
+emit_16(202);
+emit_16(136);
+emit_16(202);
+emit_16(135);
+emit_16(202);
+emit_16(136);
+emit_16(203);
+emit_16(137);
+emit_16(203);
+emit_16(136);
+emit_16(203);
+emit_16(137);
+emit_16(204);
+emit_16(138);
+emit_16(204);
+emit_16(137);
+emit_16(204);
+emit_16(138);
+emit_16(205);
+emit_16(139);
+emit_16(205);
+emit_16(138);
+emit_16(205);
+emit_16(139);
+emit_16(206);
+emit_16(140);
+emit_16(206);
+emit_16(139);
+emit_16(206);
+emit_16(140);
+emit_16(207);
+emit_16(141);
+emit_16(207);
+emit_16(140);
+emit_16(207);
+emit_16(141);
+emit_16(208);
+emit_16(142);
+emit_16(208);
+emit_16(141);
+emit_16(208);
+emit_16(142);
+emit_16(209);
+emit_16(143);
+emit_16(209);
+emit_16(142);
+emit_16(209);
+emit_16(143);
+emit_16(210);
+emit_16(144);
+emit_16(210);
+emit_16(143);
+emit_16(210);
+emit_16(144);
+emit_16(211);
+emit_16(145);
+emit_16(211);
+emit_16(144);
+emit_16(211);
+emit_16(145);
+emit_16(212);
+emit_16(146);
+emit_16(212);
+emit_16(145);
+emit_16(212);
+emit_16(146);
+emit_16(213);
+emit_16(147);
+emit_16(213);
+emit_16(146);
+emit_16(213);
+emit_16(147);
+emit_16(214);
+emit_16(148);
+emit_16(214);
+emit_16(147);
+emit_16(214);
+emit_16(148);
+emit_16(215);
+emit_16(149);
+emit_16(215);
+emit_16(148);
+emit_16(215);
+emit_16(149);
+emit_16(216);
+emit_16(150);
+emit_16(216);
+emit_16(149);
+emit_16(216);
+emit_16(150);
+emit_16(217);
+emit_16(151);
+emit_16(217);
+emit_16(150);
+emit_16(217);
+emit_16(151);
+emit_16(218);
+emit_16(152);
+emit_16(218);
+emit_16(151);
+emit_16(218);
+emit_16(152);
+emit_16(219);
+emit_16(153);
+emit_16(219);
+emit_16(152);
+emit_16(219);
+emit_16(153);
+emit_16(220);
+emit_16(154);
+emit_16(220);
+emit_16(153);
+emit_16(220);
+emit_16(154);
+emit_16(221);
+emit_16(155);
+emit_16(221);
+emit_16(154);
+emit_16(221);
+emit_16(155);
+emit_16(222);
+emit_16(156);
+emit_16(222);
+emit_16(155);
+emit_16(222);
+emit_16(156);
+emit_16(223);
+emit_16(157);
+emit_16(223);
+emit_16(156);
+emit_16(223);
+emit_16(157);
+emit_16(224);
+emit_16(158);
+emit_16(224);
+emit_16(157);
+emit_16(224);
+emit_16(158);
+emit_16(225);
+emit_16(159);
+emit_16(225);
+emit_16(158);
+emit_16(225);
+emit_16(159);
+emit_16(226);
+emit_16(160);
+emit_16(226);
+emit_16(159);
+emit_16(226);
+emit_16(160);
+emit_16(227);
+emit_16(161);
+emit_16(227);
+emit_16(160);
+emit_16(227);
+emit_16(161);
+emit_16(228);
+emit_16(162);
+emit_16(228);
+emit_16(161);
+emit_16(228);
+emit_16(162);
+emit_16(229);
+emit_16(163);
+emit_16(229);
+emit_16(162);
+emit_16(229);
+emit_16(163);
+emit_16(230);
+emit_16(164);
+emit_16(230);
+emit_16(163);
+emit_16(230);
+emit_16(164);
+emit_16(231);
+emit_16(165);
+emit_16(231);
+emit_16(164);
+emit_16(231);
+emit_16(165);
+emit_16(232);
+emit_16(166);
+emit_16(232);
+emit_16(165);
+emit_16(232);
+emit_16(166);
+emit_16(233);
+emit_16(167);
+emit_16(233);
+emit_16(166);
+emit_16(233);
+emit_16(167);
+emit_16(234);
+emit_16(168);
+emit_16(234);
+emit_16(167);
+emit_16(234);
+emit_16(168);
+emit_16(235);
+emit_16(169);
+emit_16(235);
+emit_16(168);
+emit_16(235);
+emit_16(169);
+emit_16(236);
+emit_16(170);
+emit_16(236);
+emit_16(169);
+emit_16(236);
+emit_16(170);
+emit_16(237);
+emit_16(171);
+emit_16(237);
+emit_16(170);
+emit_16(237);
+emit_16(171);
+emit_16(238);
+emit_16(172);
+emit_16(238);
+emit_16(171);
+emit_16(238);
+emit_16(172);
+emit_16(239);
+emit_16(173);
+emit_16(239);
+emit_16(172);
+emit_16(239);
+emit_16(173);
+emit_16(240);
+emit_16(174);
+emit_16(240);
+emit_16(173);
+emit_16(240);
+emit_16(174);
+emit_16(241);
+emit_16(175);
+emit_16(241);
+emit_16(174);
+emit_16(241);
+emit_16(175);
+emit_16(242);
+emit_16(176);
+emit_16(242);
+emit_16(175);
+emit_16(242);
+emit_16(176);
+emit_16(243);
+emit_16(177);
+emit_16(243);
+emit_16(176);
+emit_16(243);
+emit_16(177);
+emit_16(244);
+emit_16(178);
+emit_16(244);
+emit_16(177);
+emit_16(244);
+emit_16(178);
+emit_16(245);
+emit_16(179);
+emit_16(245);
+emit_16(178);
+emit_16(245);
+emit_16(179);
+emit_16(246);
+emit_16(180);
+emit_16(246);
+emit_16(179);
+emit_16(246);
+emit_16(180);
+emit_16(247);
+emit_16(181);
+emit_16(247);
+emit_16(180);
+emit_16(247);
+emit_16(181);
+emit_16(248);
+emit_16(182);
+emit_16(248);
+emit_16(181);
+emit_16(248);
+emit_16(182);
+emit_16(249);
+emit_16(183);
+emit_16(249);
+emit_16(182);
+emit_16(249);
+emit_16(183);
+emit_16(250);
+emit_16(184);
+emit_16(250);
+emit_16(183);
+emit_16(250);
+emit_16(184);
+emit_16(251);
+emit_16(185);
+emit_16(251);
+emit_16(184);
+emit_16(251);
+emit_16(185);
+emit_16(252);
+emit_16(186);
+emit_16(252);
+emit_16(185);
+emit_16(252);
+emit_16(186);
+emit_16(253);
+emit_16(187);
+emit_16(253);
+emit_16(186);
+emit_16(253);
+emit_16(187);
+emit_16(254);
+emit_16(188);
+emit_16(254);
+emit_16(187);
+emit_16(254);
+emit_16(188);
+emit_16(255);
+emit_16(189);
+emit_16(255);
+emit_16(188);
+emit_16(255);
+emit_16(189);
+emit_16(256);
+emit_16(190);
+emit_16(256);
+emit_16(189);
+emit_16(256);
+emit_16(190);
+emit_16(257);
+emit_16(191);
+emit_16(257);
+emit_16(190);
+emit_16(257);
+emit_16(191);
+emit_16(258);
+emit_16(192);
+emit_16(258);
+emit_16(191);
+emit_16(258);
+emit_16(192);
+emit_16(259);
+emit_16(193);
+emit_16(259);
+emit_16(192);
+emit_16(259);
+emit_16(193);
+emit_16(260);
+emit_16(194);
+emit_16(260);
+emit_16(193);
+emit_16(260);
+emit_16(194);
+emit_16(261);
+emit_16(195);
+emit_16(261);
+emit_16(194);
+emit_16(261);
+emit_16(195);
+emit_16(262);
+emit_16(196);
+emit_16(262);
+emit_16(195);
+emit_16(262);
+emit_16(196);
+emit_16(263);
+emit_16(197);
+emit_16(263);
+emit_16(196);
+emit_16(264);
+emit_16(198);
+emit_16(265);
+emit_16(199);
+emit_16(265);
+emit_16(198);
+emit_16(265);
+emit_16(199);
+emit_16(266);
+emit_16(200);
+emit_16(266);
+emit_16(199);
+emit_16(266);
+emit_16(200);
+emit_16(267);
+emit_16(201);
+emit_16(267);
+emit_16(200);
+emit_16(267);
+emit_16(201);
+emit_16(268);
+emit_16(202);
+emit_16(268);
+emit_16(201);
+emit_16(268);
+emit_16(202);
+emit_16(269);
+emit_16(203);
+emit_16(269);
+emit_16(202);
+emit_16(269);
+emit_16(203);
+emit_16(270);
+emit_16(204);
+emit_16(270);
+emit_16(203);
+emit_16(270);
+emit_16(204);
+emit_16(271);
+emit_16(205);
+emit_16(271);
+emit_16(204);
+emit_16(271);
+emit_16(205);
+emit_16(272);
+emit_16(206);
+emit_16(272);
+emit_16(205);
+emit_16(272);
+emit_16(206);
+emit_16(273);
+emit_16(207);
+emit_16(273);
+emit_16(206);
+emit_16(273);
+emit_16(207);
+emit_16(274);
+emit_16(208);
+emit_16(274);
+emit_16(207);
+emit_16(274);
+emit_16(208);
+emit_16(275);
+emit_16(209);
+emit_16(275);
+emit_16(208);
+emit_16(275);
+emit_16(209);
+emit_16(276);
+emit_16(210);
+emit_16(276);
+emit_16(209);
+emit_16(276);
+emit_16(210);
+emit_16(277);
+emit_16(211);
+emit_16(277);
+emit_16(210);
+emit_16(277);
+emit_16(211);
+emit_16(278);
+emit_16(212);
+emit_16(278);
+emit_16(211);
+emit_16(278);
+emit_16(212);
+emit_16(279);
+emit_16(213);
+emit_16(279);
+emit_16(212);
+emit_16(279);
+emit_16(213);
+emit_16(280);
+emit_16(214);
+emit_16(280);
+emit_16(213);
+emit_16(280);
+emit_16(214);
+emit_16(281);
+emit_16(215);
+emit_16(281);
+emit_16(214);
+emit_16(281);
+emit_16(215);
+emit_16(282);
+emit_16(216);
+emit_16(282);
+emit_16(215);
+emit_16(282);
+emit_16(216);
+emit_16(283);
+emit_16(217);
+emit_16(283);
+emit_16(216);
+emit_16(283);
+emit_16(217);
+emit_16(284);
+emit_16(218);
+emit_16(284);
+emit_16(217);
+emit_16(284);
+emit_16(218);
+emit_16(285);
+emit_16(219);
+emit_16(285);
+emit_16(218);
+emit_16(285);
+emit_16(219);
+emit_16(286);
+emit_16(220);
+emit_16(286);
+emit_16(219);
+emit_16(286);
+emit_16(220);
+emit_16(287);
+emit_16(221);
+emit_16(287);
+emit_16(220);
+emit_16(287);
+emit_16(221);
+emit_16(288);
+emit_16(222);
+emit_16(288);
+emit_16(221);
+emit_16(288);
+emit_16(222);
+emit_16(289);
+emit_16(223);
+emit_16(289);
+emit_16(222);
+emit_16(289);
+emit_16(223);
+emit_16(290);
+emit_16(224);
+emit_16(290);
+emit_16(223);
+emit_16(290);
+emit_16(224);
+emit_16(291);
+emit_16(225);
+emit_16(291);
+emit_16(224);
+emit_16(291);
+emit_16(225);
+emit_16(292);
+emit_16(226);
+emit_16(292);
+emit_16(225);
+emit_16(292);
+emit_16(226);
+emit_16(293);
+emit_16(227);
+emit_16(293);
+emit_16(226);
+emit_16(293);
+emit_16(227);
+emit_16(294);
+emit_16(228);
+emit_16(294);
+emit_16(227);
+emit_16(294);
+emit_16(228);
+emit_16(295);
+emit_16(229);
+emit_16(295);
+emit_16(228);
+emit_16(295);
+emit_16(229);
+emit_16(296);
+emit_16(230);
+emit_16(296);
+emit_16(229);
+emit_16(296);
+emit_16(230);
+emit_16(297);
+emit_16(231);
+emit_16(297);
+emit_16(230);
+emit_16(297);
+emit_16(231);
+emit_16(298);
+emit_16(232);
+emit_16(298);
+emit_16(231);
+emit_16(298);
+emit_16(232);
+emit_16(299);
+emit_16(233);
+emit_16(299);
+emit_16(232);
+emit_16(299);
+emit_16(233);
+emit_16(300);
+emit_16(234);
+emit_16(300);
+emit_16(233);
+emit_16(300);
+emit_16(234);
+emit_16(301);
+emit_16(235);
+emit_16(301);
+emit_16(234);
+emit_16(301);
+emit_16(235);
+emit_16(302);
+emit_16(236);
+emit_16(302);
+emit_16(235);
+emit_16(302);
+emit_16(236);
+emit_16(303);
+emit_16(237);
+emit_16(303);
+emit_16(236);
+emit_16(303);
+emit_16(237);
+emit_16(304);
+emit_16(238);
+emit_16(304);
+emit_16(237);
+emit_16(304);
+emit_16(238);
+emit_16(305);
+emit_16(239);
+emit_16(305);
+emit_16(238);
+emit_16(305);
+emit_16(239);
+emit_16(306);
+emit_16(240);
+emit_16(306);
+emit_16(239);
+emit_16(306);
+emit_16(240);
+emit_16(307);
+emit_16(241);
+emit_16(307);
+emit_16(240);
+emit_16(307);
+emit_16(241);
+emit_16(308);
+emit_16(242);
+emit_16(308);
+emit_16(241);
+emit_16(308);
+emit_16(242);
+emit_16(309);
+emit_16(243);
+emit_16(309);
+emit_16(242);
+emit_16(309);
+emit_16(243);
+emit_16(310);
+emit_16(244);
+emit_16(310);
+emit_16(243);
+emit_16(310);
+emit_16(244);
+emit_16(311);
+emit_16(245);
+emit_16(311);
+emit_16(244);
+emit_16(311);
+emit_16(245);
+emit_16(312);
+emit_16(246);
+emit_16(312);
+emit_16(245);
+emit_16(312);
+emit_16(246);
+emit_16(313);
+emit_16(247);
+emit_16(313);
+emit_16(246);
+emit_16(313);
+emit_16(247);
+emit_16(314);
+emit_16(248);
+emit_16(314);
+emit_16(247);
+emit_16(314);
+emit_16(248);
+emit_16(315);
+emit_16(249);
+emit_16(315);
+emit_16(248);
+emit_16(315);
+emit_16(249);
+emit_16(316);
+emit_16(250);
+emit_16(316);
+emit_16(249);
+emit_16(316);
+emit_16(250);
+emit_16(317);
+emit_16(251);
+emit_16(317);
+emit_16(250);
+emit_16(317);
+emit_16(251);
+emit_16(318);
+emit_16(252);
+emit_16(318);
+emit_16(251);
+emit_16(318);
+emit_16(252);
+emit_16(319);
+emit_16(253);
+emit_16(319);
+emit_16(252);
+emit_16(319);
+emit_16(253);
+emit_16(320);
+emit_16(254);
+emit_16(320);
+emit_16(253);
+emit_16(320);
+emit_16(254);
+emit_16(321);
+emit_16(255);
+emit_16(321);
+emit_16(254);
+emit_16(321);
+emit_16(255);
+emit_16(322);
+emit_16(256);
+emit_16(322);
+emit_16(255);
+emit_16(322);
+emit_16(256);
+emit_16(323);
+emit_16(257);
+emit_16(323);
+emit_16(256);
+emit_16(323);
+emit_16(257);
+emit_16(324);
+emit_16(258);
+emit_16(324);
+emit_16(257);
+emit_16(324);
+emit_16(258);
+emit_16(325);
+emit_16(259);
+emit_16(325);
+emit_16(258);
+emit_16(325);
+emit_16(259);
+emit_16(326);
+emit_16(260);
+emit_16(326);
+emit_16(259);
+emit_16(326);
+emit_16(260);
+emit_16(327);
+emit_16(261);
+emit_16(327);
+emit_16(260);
+emit_16(327);
+emit_16(261);
+emit_16(328);
+emit_16(262);
+emit_16(328);
+emit_16(261);
+emit_16(328);
+emit_16(262);
+emit_16(329);
+emit_16(263);
+emit_16(329);
+emit_16(262);
+emit_16(330);
+emit_16(264);
+emit_16(331);
+emit_16(265);
+emit_16(331);
+emit_16(264);
+emit_16(331);
+emit_16(265);
+emit_16(332);
+emit_16(266);
+emit_16(332);
+emit_16(265);
+emit_16(332);
+emit_16(266);
+emit_16(333);
+emit_16(267);
+emit_16(333);
+emit_16(266);
+emit_16(333);
+emit_16(267);
+emit_16(334);
+emit_16(268);
+emit_16(334);
+emit_16(267);
+emit_16(334);
+emit_16(268);
+emit_16(335);
+emit_16(269);
+emit_16(335);
+emit_16(268);
+emit_16(335);
+emit_16(269);
+emit_16(336);
+emit_16(270);
+emit_16(336);
+emit_16(269);
+emit_16(336);
+emit_16(270);
+emit_16(337);
+emit_16(271);
+emit_16(337);
+emit_16(270);
+emit_16(337);
+emit_16(271);
+emit_16(338);
+emit_16(272);
+emit_16(338);
+emit_16(271);
+emit_16(338);
+emit_16(272);
+emit_16(339);
+emit_16(273);
+emit_16(339);
+emit_16(272);
+emit_16(339);
+emit_16(273);
+emit_16(340);
+emit_16(274);
+emit_16(340);
+emit_16(273);
+emit_16(340);
+emit_16(274);
+emit_16(341);
+emit_16(275);
+emit_16(341);
+emit_16(274);
+emit_16(341);
+emit_16(275);
+emit_16(342);
+emit_16(276);
+emit_16(342);
+emit_16(275);
+emit_16(342);
+emit_16(276);
+emit_16(343);
+emit_16(277);
+emit_16(343);
+emit_16(276);
+emit_16(343);
+emit_16(277);
+emit_16(344);
+emit_16(278);
+emit_16(344);
+emit_16(277);
+emit_16(344);
+emit_16(278);
+emit_16(345);
+emit_16(279);
+emit_16(345);
+emit_16(278);
+emit_16(345);
+emit_16(279);
+emit_16(346);
+emit_16(280);
+emit_16(346);
+emit_16(279);
+emit_16(346);
+emit_16(280);
+emit_16(347);
+emit_16(281);
+emit_16(347);
+emit_16(280);
+emit_16(347);
+emit_16(281);
+emit_16(348);
+emit_16(282);
+emit_16(348);
+emit_16(281);
+emit_16(348);
+emit_16(282);
+emit_16(349);
+emit_16(283);
+emit_16(349);
+emit_16(282);
+emit_16(349);
+emit_16(283);
+emit_16(350);
+emit_16(284);
+emit_16(350);
+emit_16(283);
+emit_16(350);
+emit_16(284);
+emit_16(351);
+emit_16(285);
+emit_16(351);
+emit_16(284);
+emit_16(351);
+emit_16(285);
+emit_16(352);
+emit_16(286);
+emit_16(352);
+emit_16(285);
+emit_16(352);
+emit_16(286);
+emit_16(353);
+emit_16(287);
+emit_16(353);
+emit_16(286);
+emit_16(353);
+emit_16(287);
+emit_16(354);
+emit_16(288);
+emit_16(354);
+emit_16(287);
+emit_16(354);
+emit_16(288);
+emit_16(355);
+emit_16(289);
+emit_16(355);
+emit_16(288);
+emit_16(355);
+emit_16(289);
+emit_16(356);
+emit_16(290);
+emit_16(356);
+emit_16(289);
+emit_16(356);
+emit_16(290);
+emit_16(357);
+emit_16(291);
+emit_16(357);
+emit_16(290);
+emit_16(357);
+emit_16(291);
+emit_16(358);
+emit_16(292);
+emit_16(358);
+emit_16(291);
+emit_16(358);
+emit_16(292);
+emit_16(359);
+emit_16(293);
+emit_16(359);
+emit_16(292);
+emit_16(359);
+emit_16(293);
+emit_16(360);
+emit_16(294);
+emit_16(360);
+emit_16(293);
+emit_16(360);
+emit_16(294);
+emit_16(361);
+emit_16(295);
+emit_16(361);
+emit_16(294);
+emit_16(361);
+emit_16(295);
+emit_16(362);
+emit_16(296);
+emit_16(362);
+emit_16(295);
+emit_16(362);
+emit_16(296);
+emit_16(363);
+emit_16(297);
+emit_16(363);
+emit_16(296);
+emit_16(363);
+emit_16(297);
+emit_16(364);
+emit_16(298);
+emit_16(364);
+emit_16(297);
+emit_16(364);
+emit_16(298);
+emit_16(365);
+emit_16(299);
+emit_16(365);
+emit_16(298);
+emit_16(365);
+emit_16(299);
+emit_16(366);
+emit_16(300);
+emit_16(366);
+emit_16(299);
+emit_16(366);
+emit_16(300);
+emit_16(367);
+emit_16(301);
+emit_16(367);
+emit_16(300);
+emit_16(367);
+emit_16(301);
+emit_16(368);
+emit_16(302);
+emit_16(368);
+emit_16(301);
+emit_16(368);
+emit_16(302);
+emit_16(369);
+emit_16(303);
+emit_16(369);
+emit_16(302);
+emit_16(369);
+emit_16(303);
+emit_16(370);
+emit_16(304);
+emit_16(370);
+emit_16(303);
+emit_16(370);
+emit_16(304);
+emit_16(371);
+emit_16(305);
+emit_16(371);
+emit_16(304);
+emit_16(371);
+emit_16(305);
+emit_16(372);
+emit_16(306);
+emit_16(372);
+emit_16(305);
+emit_16(372);
+emit_16(306);
+emit_16(373);
+emit_16(307);
+emit_16(373);
+emit_16(306);
+emit_16(373);
+emit_16(307);
+emit_16(374);
+emit_16(308);
+emit_16(374);
+emit_16(307);
+emit_16(374);
+emit_16(308);
+emit_16(375);
+emit_16(309);
+emit_16(375);
+emit_16(308);
+emit_16(375);
+emit_16(309);
+emit_16(376);
+emit_16(310);
+emit_16(376);
+emit_16(309);
+emit_16(376);
+emit_16(310);
+emit_16(377);
+emit_16(311);
+emit_16(377);
+emit_16(310);
+emit_16(377);
+emit_16(311);
+emit_16(378);
+emit_16(312);
+emit_16(378);
+emit_16(311);
+emit_16(378);
+emit_16(312);
+emit_16(379);
+emit_16(313);
+emit_16(379);
+emit_16(312);
+emit_16(379);
+emit_16(313);
+emit_16(380);
+emit_16(314);
+emit_16(380);
+emit_16(313);
+emit_16(380);
+emit_16(314);
+emit_16(381);
+emit_16(315);
+emit_16(381);
+emit_16(314);
+emit_16(381);
+emit_16(315);
+emit_16(382);
+emit_16(316);
+emit_16(382);
+emit_16(315);
+emit_16(382);
+emit_16(316);
+emit_16(383);
+emit_16(317);
+emit_16(383);
+emit_16(316);
+emit_16(383);
+emit_16(317);
+emit_16(384);
+emit_16(318);
+emit_16(384);
+emit_16(317);
+emit_16(384);
+emit_16(318);
+emit_16(385);
+emit_16(319);
+emit_16(385);
+emit_16(318);
+emit_16(385);
+emit_16(319);
+emit_16(386);
+emit_16(320);
+emit_16(386);
+emit_16(319);
+emit_16(386);
+emit_16(320);
+emit_16(387);
+emit_16(321);
+emit_16(387);
+emit_16(320);
+emit_16(387);
+emit_16(321);
+emit_16(388);
+emit_16(322);
+emit_16(388);
+emit_16(321);
+emit_16(388);
+emit_16(322);
+emit_16(389);
+emit_16(323);
+emit_16(389);
+emit_16(322);
+emit_16(389);
+emit_16(323);
+emit_16(390);
+emit_16(324);
+emit_16(390);
+emit_16(323);
+emit_16(390);
+emit_16(324);
+emit_16(391);
+emit_16(325);
+emit_16(391);
+emit_16(324);
+emit_16(391);
+emit_16(325);
+emit_16(392);
+emit_16(326);
+emit_16(392);
+emit_16(325);
+emit_16(392);
+emit_16(326);
+emit_16(393);
+emit_16(327);
+emit_16(393);
+emit_16(326);
+emit_16(393);
+emit_16(327);
+emit_16(394);
+emit_16(328);
+emit_16(394);
+emit_16(327);
+emit_16(394);
+emit_16(328);
+emit_16(395);
+emit_16(329);
+emit_16(395);
+emit_16(328);
+emit_16(396);
+emit_16(330);
+emit_16(397);
+emit_16(331);
+emit_16(397);
+emit_16(330);
+emit_16(397);
+emit_16(331);
+emit_16(398);
+emit_16(332);
+emit_16(398);
+emit_16(331);
+emit_16(398);
+emit_16(332);
+emit_16(399);
+emit_16(333);
+emit_16(399);
+emit_16(332);
+emit_16(399);
+emit_16(333);
+emit_16(400);
+emit_16(334);
+emit_16(400);
+emit_16(333);
+emit_16(400);
+emit_16(334);
+emit_16(401);
+emit_16(335);
+emit_16(401);
+emit_16(334);
+emit_16(401);
+emit_16(335);
+emit_16(402);
+emit_16(336);
+emit_16(402);
+emit_16(335);
+emit_16(402);
+emit_16(336);
+emit_16(403);
+emit_16(337);
+emit_16(403);
+emit_16(336);
+emit_16(403);
+emit_16(337);
+emit_16(404);
+emit_16(338);
+emit_16(404);
+emit_16(337);
+emit_16(404);
+emit_16(338);
+emit_16(405);
+emit_16(339);
+emit_16(405);
+emit_16(338);
+emit_16(405);
+emit_16(339);
+emit_16(406);
+emit_16(340);
+emit_16(406);
+emit_16(339);
+emit_16(406);
+emit_16(340);
+emit_16(407);
+emit_16(341);
+emit_16(407);
+emit_16(340);
+emit_16(407);
+emit_16(341);
+emit_16(408);
+emit_16(342);
+emit_16(408);
+emit_16(341);
+emit_16(408);
+emit_16(342);
+emit_16(409);
+emit_16(343);
+emit_16(409);
+emit_16(342);
+emit_16(409);
+emit_16(343);
+emit_16(410);
+emit_16(344);
+emit_16(410);
+emit_16(343);
+emit_16(410);
+emit_16(344);
+emit_16(411);
+emit_16(345);
+emit_16(411);
+emit_16(344);
+emit_16(411);
+emit_16(345);
+emit_16(412);
+emit_16(346);
+emit_16(412);
+emit_16(345);
+emit_16(412);
+emit_16(346);
+emit_16(413);
+emit_16(347);
+emit_16(413);
+emit_16(346);
+emit_16(413);
+emit_16(347);
+emit_16(414);
+emit_16(348);
+emit_16(414);
+emit_16(347);
+emit_16(414);
+emit_16(348);
+emit_16(415);
+emit_16(349);
+emit_16(415);
+emit_16(348);
+emit_16(415);
+emit_16(349);
+emit_16(416);
+emit_16(350);
+emit_16(416);
+emit_16(349);
+emit_16(416);
+emit_16(350);
+emit_16(417);
+emit_16(351);
+emit_16(417);
+emit_16(350);
+emit_16(417);
+emit_16(351);
+emit_16(418);
+emit_16(352);
+emit_16(418);
+emit_16(351);
+emit_16(418);
+emit_16(352);
+emit_16(419);
+emit_16(353);
+emit_16(419);
+emit_16(352);
+emit_16(419);
+emit_16(353);
+emit_16(420);
+emit_16(354);
+emit_16(420);
+emit_16(353);
+emit_16(420);
+emit_16(354);
+emit_16(421);
+emit_16(355);
+emit_16(421);
+emit_16(354);
+emit_16(421);
+emit_16(355);
+emit_16(422);
+emit_16(356);
+emit_16(422);
+emit_16(355);
+emit_16(422);
+emit_16(356);
+emit_16(423);
+emit_16(357);
+emit_16(423);
+emit_16(356);
+emit_16(423);
+emit_16(357);
+emit_16(424);
+emit_16(358);
+emit_16(424);
+emit_16(357);
+emit_16(424);
+emit_16(358);
+emit_16(425);
+emit_16(359);
+emit_16(425);
+emit_16(358);
+emit_16(425);
+emit_16(359);
+emit_16(426);
+emit_16(360);
+emit_16(426);
+emit_16(359);
+emit_16(426);
+emit_16(360);
+emit_16(427);
+emit_16(361);
+emit_16(427);
+emit_16(360);
+emit_16(427);
+emit_16(361);
+emit_16(428);
+emit_16(362);
+emit_16(428);
+emit_16(361);
+emit_16(428);
+emit_16(362);
+emit_16(429);
+emit_16(363);
+emit_16(429);
+emit_16(362);
+emit_16(429);
+emit_16(363);
+emit_16(430);
+emit_16(364);
+emit_16(430);
+emit_16(363);
+emit_16(430);
+emit_16(364);
+emit_16(431);
+emit_16(365);
+emit_16(431);
+emit_16(364);
+emit_16(431);
+emit_16(365);
+emit_16(432);
+emit_16(366);
+emit_16(432);
+emit_16(365);
+emit_16(432);
+emit_16(366);
+emit_16(433);
+emit_16(367);
+emit_16(433);
+emit_16(366);
+emit_16(433);
+emit_16(367);
+emit_16(434);
+emit_16(368);
+emit_16(434);
+emit_16(367);
+emit_16(434);
+emit_16(368);
+emit_16(435);
+emit_16(369);
+emit_16(435);
+emit_16(368);
+emit_16(435);
+emit_16(369);
+emit_16(436);
+emit_16(370);
+emit_16(436);
+emit_16(369);
+emit_16(436);
+emit_16(370);
+emit_16(437);
+emit_16(371);
+emit_16(437);
+emit_16(370);
+emit_16(437);
+emit_16(371);
+emit_16(438);
+emit_16(372);
+emit_16(438);
+emit_16(371);
+emit_16(438);
+emit_16(372);
+emit_16(439);
+emit_16(373);
+emit_16(439);
+emit_16(372);
+emit_16(439);
+emit_16(373);
+emit_16(440);
+emit_16(374);
+emit_16(440);
+emit_16(373);
+emit_16(440);
+emit_16(374);
+emit_16(441);
+emit_16(375);
+emit_16(441);
+emit_16(374);
+emit_16(441);
+emit_16(375);
+emit_16(442);
+emit_16(376);
+emit_16(442);
+emit_16(375);
+emit_16(442);
+emit_16(376);
+emit_16(443);
+emit_16(377);
+emit_16(443);
+emit_16(376);
+emit_16(443);
+emit_16(377);
+emit_16(444);
+emit_16(378);
+emit_16(444);
+emit_16(377);
+emit_16(444);
+emit_16(378);
+emit_16(445);
+emit_16(379);
+emit_16(445);
+emit_16(378);
+emit_16(445);
+emit_16(379);
+emit_16(446);
+emit_16(380);
+emit_16(446);
+emit_16(379);
+emit_16(446);
+emit_16(380);
+emit_16(447);
+emit_16(381);
+emit_16(447);
+emit_16(380);
+emit_16(447);
+emit_16(381);
+emit_16(448);
+emit_16(382);
+emit_16(448);
+emit_16(381);
+emit_16(448);
+emit_16(382);
+emit_16(449);
+emit_16(383);
+emit_16(449);
+emit_16(382);
+emit_16(449);
+emit_16(383);
+emit_16(450);
+emit_16(384);
+emit_16(450);
+emit_16(383);
+emit_16(450);
+emit_16(384);
+emit_16(451);
+emit_16(385);
+emit_16(451);
+emit_16(384);
+emit_16(451);
+emit_16(385);
+emit_16(452);
+emit_16(386);
+emit_16(452);
+emit_16(385);
+emit_16(452);
+emit_16(386);
+emit_16(453);
+emit_16(387);
+emit_16(453);
+emit_16(386);
+emit_16(453);
+emit_16(387);
+emit_16(454);
+emit_16(388);
+emit_16(454);
+emit_16(387);
+emit_16(454);
+emit_16(388);
+emit_16(455);
+emit_16(389);
+emit_16(455);
+emit_16(388);
+emit_16(455);
+emit_16(389);
+emit_16(456);
+emit_16(390);
+emit_16(456);
+emit_16(389);
+emit_16(456);
+emit_16(390);
+emit_16(457);
+emit_16(391);
+emit_16(457);
+emit_16(390);
+emit_16(457);
+emit_16(391);
+emit_16(458);
+emit_16(392);
+emit_16(458);
+emit_16(391);
+emit_16(458);
+emit_16(392);
+emit_16(459);
+emit_16(393);
+emit_16(459);
+emit_16(392);
+emit_16(459);
+emit_16(393);
+emit_16(460);
+emit_16(394);
+emit_16(460);
+emit_16(393);
+emit_16(460);
+emit_16(394);
+emit_16(461);
+emit_16(395);
+emit_16(461);
+emit_16(394);
+emit_16(462);
+emit_16(396);
+emit_16(463);
+emit_16(397);
+emit_16(463);
+emit_16(396);
+emit_16(463);
+emit_16(397);
+emit_16(464);
+emit_16(398);
+emit_16(464);
+emit_16(397);
+emit_16(464);
+emit_16(398);
+emit_16(465);
+emit_16(399);
+emit_16(465);
+emit_16(398);
+emit_16(465);
+emit_16(399);
+emit_16(466);
+emit_16(400);
+emit_16(466);
+emit_16(399);
+emit_16(466);
+emit_16(400);
+emit_16(467);
+emit_16(401);
+emit_16(467);
+emit_16(400);
+emit_16(467);
+emit_16(401);
+emit_16(468);
+emit_16(402);
+emit_16(468);
+emit_16(401);
+emit_16(468);
+emit_16(402);
+emit_16(469);
+emit_16(403);
+emit_16(469);
+emit_16(402);
+emit_16(469);
+emit_16(403);
+emit_16(470);
+emit_16(404);
+emit_16(470);
+emit_16(403);
+emit_16(470);
+emit_16(404);
+emit_16(471);
+emit_16(405);
+emit_16(471);
+emit_16(404);
+emit_16(471);
+emit_16(405);
+emit_16(472);
+emit_16(406);
+emit_16(472);
+emit_16(405);
+emit_16(472);
+emit_16(406);
+emit_16(473);
+emit_16(407);
+emit_16(473);
+emit_16(406);
+emit_16(473);
+emit_16(407);
+emit_16(474);
+emit_16(408);
+emit_16(474);
+emit_16(407);
+emit_16(474);
+emit_16(408);
+emit_16(475);
+emit_16(409);
+emit_16(475);
+emit_16(408);
+emit_16(475);
+emit_16(409);
+emit_16(476);
+emit_16(410);
+emit_16(476);
+emit_16(409);
+emit_16(476);
+emit_16(410);
+emit_16(477);
+emit_16(411);
+emit_16(477);
+emit_16(410);
+emit_16(477);
+emit_16(411);
+emit_16(478);
+emit_16(412);
+emit_16(478);
+emit_16(411);
+emit_16(478);
+emit_16(412);
+emit_16(479);
+emit_16(413);
+emit_16(479);
+emit_16(412);
+emit_16(479);
+emit_16(413);
+emit_16(480);
+emit_16(414);
+emit_16(480);
+emit_16(413);
+emit_16(480);
+emit_16(414);
+emit_16(481);
+emit_16(415);
+emit_16(481);
+emit_16(414);
+emit_16(481);
+emit_16(415);
+emit_16(482);
+emit_16(416);
+emit_16(482);
+emit_16(415);
+emit_16(482);
+emit_16(416);
+emit_16(483);
+emit_16(417);
+emit_16(483);
+emit_16(416);
+emit_16(483);
+emit_16(417);
+emit_16(484);
+emit_16(418);
+emit_16(484);
+emit_16(417);
+emit_16(484);
+emit_16(418);
+emit_16(485);
+emit_16(419);
+emit_16(485);
+emit_16(418);
+emit_16(485);
+emit_16(419);
+emit_16(486);
+emit_16(420);
+emit_16(486);
+emit_16(419);
+emit_16(486);
+emit_16(420);
+emit_16(487);
+emit_16(421);
+emit_16(487);
+emit_16(420);
+emit_16(487);
+emit_16(421);
+emit_16(488);
+emit_16(422);
+emit_16(488);
+emit_16(421);
+emit_16(488);
+emit_16(422);
+emit_16(489);
+emit_16(423);
+emit_16(489);
+emit_16(422);
+emit_16(489);
+emit_16(423);
+emit_16(490);
+emit_16(424);
+emit_16(490);
+emit_16(423);
+emit_16(490);
+emit_16(424);
+emit_16(491);
+emit_16(425);
+emit_16(491);
+emit_16(424);
+emit_16(491);
+emit_16(425);
+emit_16(492);
+emit_16(426);
+emit_16(492);
+emit_16(425);
+emit_16(492);
+emit_16(426);
+emit_16(493);
+emit_16(427);
+emit_16(493);
+emit_16(426);
+emit_16(493);
+emit_16(427);
+emit_16(494);
+emit_16(428);
+emit_16(494);
+emit_16(427);
+emit_16(494);
+emit_16(428);
+emit_16(495);
+emit_16(429);
+emit_16(495);
+emit_16(428);
+emit_16(495);
+emit_16(429);
+emit_16(496);
+emit_16(430);
+emit_16(496);
+emit_16(429);
+emit_16(496);
+emit_16(430);
+emit_16(497);
+emit_16(431);
+emit_16(497);
+emit_16(430);
+emit_16(497);
+emit_16(431);
+emit_16(498);
+emit_16(432);
+emit_16(498);
+emit_16(431);
+emit_16(498);
+emit_16(432);
+emit_16(499);
+emit_16(433);
+emit_16(499);
+emit_16(432);
+emit_16(499);
+emit_16(433);
+emit_16(500);
+emit_16(434);
+emit_16(500);
+emit_16(433);
+emit_16(500);
+emit_16(434);
+emit_16(501);
+emit_16(435);
+emit_16(501);
+emit_16(434);
+emit_16(501);
+emit_16(435);
+emit_16(502);
+emit_16(436);
+emit_16(502);
+emit_16(435);
+emit_16(502);
+emit_16(436);
+emit_16(503);
+emit_16(437);
+emit_16(503);
+emit_16(436);
+emit_16(503);
+emit_16(437);
+emit_16(504);
+emit_16(438);
+emit_16(504);
+emit_16(437);
+emit_16(504);
+emit_16(438);
+emit_16(505);
+emit_16(439);
+emit_16(505);
+emit_16(438);
+emit_16(505);
+emit_16(439);
+emit_16(506);
+emit_16(440);
+emit_16(506);
+emit_16(439);
+emit_16(506);
+emit_16(440);
+emit_16(507);
+emit_16(441);
+emit_16(507);
+emit_16(440);
+emit_16(507);
+emit_16(441);
+emit_16(508);
+emit_16(442);
+emit_16(508);
+emit_16(441);
+emit_16(508);
+emit_16(442);
+emit_16(509);
+emit_16(443);
+emit_16(509);
+emit_16(442);
+emit_16(509);
+emit_16(443);
+emit_16(510);
+emit_16(444);
+emit_16(510);
+emit_16(443);
+emit_16(510);
+emit_16(444);
+emit_16(511);
+emit_16(445);
+emit_16(511);
+emit_16(444);
+emit_16(511);
+emit_16(445);
+emit_16(512);
+emit_16(446);
+emit_16(512);
+emit_16(445);
+emit_16(512);
+emit_16(446);
+emit_16(513);
+emit_16(447);
+emit_16(513);
+emit_16(446);
+emit_16(513);
+emit_16(447);
+emit_16(514);
+emit_16(448);
+emit_16(514);
+emit_16(447);
+emit_16(514);
+emit_16(448);
+emit_16(515);
+emit_16(449);
+emit_16(515);
+emit_16(448);
+emit_16(515);
+emit_16(449);
+emit_16(516);
+emit_16(450);
+emit_16(516);
+emit_16(449);
+emit_16(516);
+emit_16(450);
+emit_16(517);
+emit_16(451);
+emit_16(517);
+emit_16(450);
+emit_16(517);
+emit_16(451);
+emit_16(518);
+emit_16(452);
+emit_16(518);
+emit_16(451);
+emit_16(518);
+emit_16(452);
+emit_16(519);
+emit_16(453);
+emit_16(519);
+emit_16(452);
+emit_16(519);
+emit_16(453);
+emit_16(520);
+emit_16(454);
+emit_16(520);
+emit_16(453);
+emit_16(520);
+emit_16(454);
+emit_16(521);
+emit_16(455);
+emit_16(521);
+emit_16(454);
+emit_16(521);
+emit_16(455);
+emit_16(522);
+emit_16(456);
+emit_16(522);
+emit_16(455);
+emit_16(522);
+emit_16(456);
+emit_16(523);
+emit_16(457);
+emit_16(523);
+emit_16(456);
+emit_16(523);
+emit_16(457);
+emit_16(524);
+emit_16(458);
+emit_16(524);
+emit_16(457);
+emit_16(524);
+emit_16(458);
+emit_16(525);
+emit_16(459);
+emit_16(525);
+emit_16(458);
+emit_16(525);
+emit_16(459);
+emit_16(526);
+emit_16(460);
+emit_16(526);
+emit_16(459);
+emit_16(526);
+emit_16(460);
+emit_16(527);
+emit_16(461);
+emit_16(527);
+emit_16(460);
+emit_16(528);
+emit_16(462);
+emit_16(529);
+emit_16(463);
+emit_16(529);
+emit_16(462);
+emit_16(529);
+emit_16(463);
+emit_16(530);
+emit_16(464);
+emit_16(530);
+emit_16(463);
+emit_16(530);
+emit_16(464);
+emit_16(531);
+emit_16(465);
+emit_16(531);
+emit_16(464);
+emit_16(531);
+emit_16(465);
+emit_16(532);
+emit_16(466);
+emit_16(532);
+emit_16(465);
+emit_16(532);
+emit_16(466);
+emit_16(533);
+emit_16(467);
+emit_16(533);
+emit_16(466);
+emit_16(533);
+emit_16(467);
+emit_16(534);
+emit_16(468);
+emit_16(534);
+emit_16(467);
+emit_16(534);
+emit_16(468);
+emit_16(535);
+emit_16(469);
+emit_16(535);
+emit_16(468);
+emit_16(535);
+emit_16(469);
+emit_16(536);
+emit_16(470);
+emit_16(536);
+emit_16(469);
+emit_16(536);
+emit_16(470);
+emit_16(537);
+emit_16(471);
+emit_16(537);
+emit_16(470);
+emit_16(537);
+emit_16(471);
+emit_16(538);
+emit_16(472);
+emit_16(538);
+emit_16(471);
+emit_16(538);
+emit_16(472);
+emit_16(539);
+emit_16(473);
+emit_16(539);
+emit_16(472);
+emit_16(539);
+emit_16(473);
+emit_16(540);
+emit_16(474);
+emit_16(540);
+emit_16(473);
+emit_16(540);
+emit_16(474);
+emit_16(541);
+emit_16(475);
+emit_16(541);
+emit_16(474);
+emit_16(541);
+emit_16(475);
+emit_16(542);
+emit_16(476);
+emit_16(542);
+emit_16(475);
+emit_16(542);
+emit_16(476);
+emit_16(543);
+emit_16(477);
+emit_16(543);
+emit_16(476);
+emit_16(543);
+emit_16(477);
+emit_16(544);
+emit_16(478);
+emit_16(544);
+emit_16(477);
+emit_16(544);
+emit_16(478);
+emit_16(545);
+emit_16(479);
+emit_16(545);
+emit_16(478);
+emit_16(545);
+emit_16(479);
+emit_16(546);
+emit_16(480);
+emit_16(546);
+emit_16(479);
+emit_16(546);
+emit_16(480);
+emit_16(547);
+emit_16(481);
+emit_16(547);
+emit_16(480);
+emit_16(547);
+emit_16(481);
+emit_16(548);
+emit_16(482);
+emit_16(548);
+emit_16(481);
+emit_16(548);
+emit_16(482);
+emit_16(549);
+emit_16(483);
+emit_16(549);
+emit_16(482);
+emit_16(549);
+emit_16(483);
+emit_16(550);
+emit_16(484);
+emit_16(550);
+emit_16(483);
+emit_16(550);
+emit_16(484);
+emit_16(551);
+emit_16(485);
+emit_16(551);
+emit_16(484);
+emit_16(551);
+emit_16(485);
+emit_16(552);
+emit_16(486);
+emit_16(552);
+emit_16(485);
+emit_16(552);
+emit_16(486);
+emit_16(553);
+emit_16(487);
+emit_16(553);
+emit_16(486);
+emit_16(553);
+emit_16(487);
+emit_16(554);
+emit_16(488);
+emit_16(554);
+emit_16(487);
+emit_16(554);
+emit_16(488);
+emit_16(555);
+emit_16(489);
+emit_16(555);
+emit_16(488);
+emit_16(555);
+emit_16(489);
+emit_16(556);
+emit_16(490);
+emit_16(556);
+emit_16(489);
+emit_16(556);
+emit_16(490);
+emit_16(557);
+emit_16(491);
+emit_16(557);
+emit_16(490);
+emit_16(557);
+emit_16(491);
+emit_16(558);
+emit_16(492);
+emit_16(558);
+emit_16(491);
+emit_16(558);
+emit_16(492);
+emit_16(559);
+emit_16(493);
+emit_16(559);
+emit_16(492);
+emit_16(559);
+emit_16(493);
+emit_16(560);
+emit_16(494);
+emit_16(560);
+emit_16(493);
+emit_16(560);
+emit_16(494);
+emit_16(561);
+emit_16(495);
+emit_16(561);
+emit_16(494);
+emit_16(561);
+emit_16(495);
+emit_16(562);
+emit_16(496);
+emit_16(562);
+emit_16(495);
+emit_16(562);
+emit_16(496);
+emit_16(563);
+emit_16(497);
+emit_16(563);
+emit_16(496);
+emit_16(563);
+emit_16(497);
+emit_16(564);
+emit_16(498);
+emit_16(564);
+emit_16(497);
+emit_16(564);
+emit_16(498);
+emit_16(565);
+emit_16(499);
+emit_16(565);
+emit_16(498);
+emit_16(565);
+emit_16(499);
+emit_16(566);
+emit_16(500);
+emit_16(566);
+emit_16(499);
+emit_16(566);
+emit_16(500);
+emit_16(567);
+emit_16(501);
+emit_16(567);
+emit_16(500);
+emit_16(567);
+emit_16(501);
+emit_16(568);
+emit_16(502);
+emit_16(568);
+emit_16(501);
+emit_16(568);
+emit_16(502);
+emit_16(569);
+emit_16(503);
+emit_16(569);
+emit_16(502);
+emit_16(569);
+emit_16(503);
+emit_16(570);
+emit_16(504);
+emit_16(570);
+emit_16(503);
+emit_16(570);
+emit_16(504);
+emit_16(571);
+emit_16(505);
+emit_16(571);
+emit_16(504);
+emit_16(571);
+emit_16(505);
+emit_16(572);
+emit_16(506);
+emit_16(572);
+emit_16(505);
+emit_16(572);
+emit_16(506);
+emit_16(573);
+emit_16(507);
+emit_16(573);
+emit_16(506);
+emit_16(573);
+emit_16(507);
+emit_16(574);
+emit_16(508);
+emit_16(574);
+emit_16(507);
+emit_16(574);
+emit_16(508);
+emit_16(575);
+emit_16(509);
+emit_16(575);
+emit_16(508);
+emit_16(575);
+emit_16(509);
+emit_16(576);
+emit_16(510);
+emit_16(576);
+emit_16(509);
+emit_16(576);
+emit_16(510);
+emit_16(577);
+emit_16(511);
+emit_16(577);
+emit_16(510);
+emit_16(577);
+emit_16(511);
+emit_16(578);
+emit_16(512);
+emit_16(578);
+emit_16(511);
+emit_16(578);
+emit_16(512);
+emit_16(579);
+emit_16(513);
+emit_16(579);
+emit_16(512);
+emit_16(579);
+emit_16(513);
+emit_16(580);
+emit_16(514);
+emit_16(580);
+emit_16(513);
+emit_16(580);
+emit_16(514);
+emit_16(581);
+emit_16(515);
+emit_16(581);
+emit_16(514);
+emit_16(581);
+emit_16(515);
+emit_16(582);
+emit_16(516);
+emit_16(582);
+emit_16(515);
+emit_16(582);
+emit_16(516);
+emit_16(583);
+emit_16(517);
+emit_16(583);
+emit_16(516);
+emit_16(583);
+emit_16(517);
+emit_16(584);
+emit_16(518);
+emit_16(584);
+emit_16(517);
+emit_16(584);
+emit_16(518);
+emit_16(585);
+emit_16(519);
+emit_16(585);
+emit_16(518);
+emit_16(585);
+emit_16(519);
+emit_16(586);
+emit_16(520);
+emit_16(586);
+emit_16(519);
+emit_16(586);
+emit_16(520);
+emit_16(587);
+emit_16(521);
+emit_16(587);
+emit_16(520);
+emit_16(587);
+emit_16(521);
+emit_16(588);
+emit_16(522);
+emit_16(588);
+emit_16(521);
+emit_16(588);
+emit_16(522);
+emit_16(589);
+emit_16(523);
+emit_16(589);
+emit_16(522);
+emit_16(589);
+emit_16(523);
+emit_16(590);
+emit_16(524);
+emit_16(590);
+emit_16(523);
+emit_16(590);
+emit_16(524);
+emit_16(591);
+emit_16(525);
+emit_16(591);
+emit_16(524);
+emit_16(591);
+emit_16(525);
+emit_16(592);
+emit_16(526);
+emit_16(592);
+emit_16(525);
+emit_16(592);
+emit_16(526);
+emit_16(593);
+emit_16(527);
+emit_16(593);
+emit_16(526);
+emit_16(594);
+emit_16(528);
+emit_16(595);
+emit_16(529);
+emit_16(595);
+emit_16(528);
+emit_16(595);
+emit_16(529);
+emit_16(596);
+emit_16(530);
+emit_16(596);
+emit_16(529);
+emit_16(596);
+emit_16(530);
+emit_16(597);
+emit_16(531);
+emit_16(597);
+emit_16(530);
+emit_16(597);
+emit_16(531);
+emit_16(598);
+emit_16(532);
+emit_16(598);
+emit_16(531);
+emit_16(598);
+emit_16(532);
+emit_16(599);
+emit_16(533);
+emit_16(599);
+emit_16(532);
+emit_16(599);
+emit_16(533);
+emit_16(600);
+emit_16(534);
+emit_16(600);
+emit_16(533);
+emit_16(600);
+emit_16(534);
+emit_16(601);
+emit_16(535);
+emit_16(601);
+emit_16(534);
+emit_16(601);
+emit_16(535);
+emit_16(602);
+emit_16(536);
+emit_16(602);
+emit_16(535);
+emit_16(602);
+emit_16(536);
+emit_16(603);
+emit_16(537);
+emit_16(603);
+emit_16(536);
+emit_16(603);
+emit_16(537);
+emit_16(604);
+emit_16(538);
+emit_16(604);
+emit_16(537);
+emit_16(604);
+emit_16(538);
+emit_16(605);
+emit_16(539);
+emit_16(605);
+emit_16(538);
+emit_16(605);
+emit_16(539);
+emit_16(606);
+emit_16(540);
+emit_16(606);
+emit_16(539);
+emit_16(606);
+emit_16(540);
+emit_16(607);
+emit_16(541);
+emit_16(607);
+emit_16(540);
+emit_16(607);
+emit_16(541);
+emit_16(608);
+emit_16(542);
+emit_16(608);
+emit_16(541);
+emit_16(608);
+emit_16(542);
+emit_16(609);
+emit_16(543);
+emit_16(609);
+emit_16(542);
+emit_16(609);
+emit_16(543);
+emit_16(610);
+emit_16(544);
+emit_16(610);
+emit_16(543);
+emit_16(610);
+emit_16(544);
+emit_16(611);
+emit_16(545);
+emit_16(611);
+emit_16(544);
+emit_16(611);
+emit_16(545);
+emit_16(612);
+emit_16(546);
+emit_16(612);
+emit_16(545);
+emit_16(612);
+emit_16(546);
+emit_16(613);
+emit_16(547);
+emit_16(613);
+emit_16(546);
+emit_16(613);
+emit_16(547);
+emit_16(614);
+emit_16(548);
+emit_16(614);
+emit_16(547);
+emit_16(614);
+emit_16(548);
+emit_16(615);
+emit_16(549);
+emit_16(615);
+emit_16(548);
+emit_16(615);
+emit_16(549);
+emit_16(616);
+emit_16(550);
+emit_16(616);
+emit_16(549);
+emit_16(616);
+emit_16(550);
+emit_16(617);
+emit_16(551);
+emit_16(617);
+emit_16(550);
+emit_16(617);
+emit_16(551);
+emit_16(618);
+emit_16(552);
+emit_16(618);
+emit_16(551);
+emit_16(618);
+emit_16(552);
+emit_16(619);
+emit_16(553);
+emit_16(619);
+emit_16(552);
+emit_16(619);
+emit_16(553);
+emit_16(620);
+emit_16(554);
+emit_16(620);
+emit_16(553);
+emit_16(620);
+emit_16(554);
+emit_16(621);
+emit_16(555);
+emit_16(621);
+emit_16(554);
+emit_16(621);
+emit_16(555);
+emit_16(622);
+emit_16(556);
+emit_16(622);
+emit_16(555);
+emit_16(622);
+emit_16(556);
+emit_16(623);
+emit_16(557);
+emit_16(623);
+emit_16(556);
+emit_16(623);
+emit_16(557);
+emit_16(624);
+emit_16(558);
+emit_16(624);
+emit_16(557);
+emit_16(624);
+emit_16(558);
+emit_16(625);
+emit_16(559);
+emit_16(625);
+emit_16(558);
+emit_16(625);
+emit_16(559);
+emit_16(626);
+emit_16(560);
+emit_16(626);
+emit_16(559);
+emit_16(626);
+emit_16(560);
+emit_16(627);
+emit_16(561);
+emit_16(627);
+emit_16(560);
+emit_16(627);
+emit_16(561);
+emit_16(628);
+emit_16(562);
+emit_16(628);
+emit_16(561);
+emit_16(628);
+emit_16(562);
+emit_16(629);
+emit_16(563);
+emit_16(629);
+emit_16(562);
+emit_16(629);
+emit_16(563);
+emit_16(630);
+emit_16(564);
+emit_16(630);
+emit_16(563);
+emit_16(630);
+emit_16(564);
+emit_16(631);
+emit_16(565);
+emit_16(631);
+emit_16(564);
+emit_16(631);
+emit_16(565);
+emit_16(632);
+emit_16(566);
+emit_16(632);
+emit_16(565);
+emit_16(632);
+emit_16(566);
+emit_16(633);
+emit_16(567);
+emit_16(633);
+emit_16(566);
+emit_16(633);
+emit_16(567);
+emit_16(634);
+emit_16(568);
+emit_16(634);
+emit_16(567);
+emit_16(634);
+emit_16(568);
+emit_16(635);
+emit_16(569);
+emit_16(635);
+emit_16(568);
+emit_16(635);
+emit_16(569);
+emit_16(636);
+emit_16(570);
+emit_16(636);
+emit_16(569);
+emit_16(636);
+emit_16(570);
+emit_16(637);
+emit_16(571);
+emit_16(637);
+emit_16(570);
+emit_16(637);
+emit_16(571);
+emit_16(638);
+emit_16(572);
+emit_16(638);
+emit_16(571);
+emit_16(638);
+emit_16(572);
+emit_16(639);
+emit_16(573);
+emit_16(639);
+emit_16(572);
+emit_16(639);
+emit_16(573);
+emit_16(640);
+emit_16(574);
+emit_16(640);
+emit_16(573);
+emit_16(640);
+emit_16(574);
+emit_16(641);
+emit_16(575);
+emit_16(641);
+emit_16(574);
+emit_16(641);
+emit_16(575);
+emit_16(642);
+emit_16(576);
+emit_16(642);
+emit_16(575);
+emit_16(642);
+emit_16(576);
+emit_16(643);
+emit_16(577);
+emit_16(643);
+emit_16(576);
+emit_16(643);
+emit_16(577);
+emit_16(644);
+emit_16(578);
+emit_16(644);
+emit_16(577);
+emit_16(644);
+emit_16(578);
+emit_16(645);
+emit_16(579);
+emit_16(645);
+emit_16(578);
+emit_16(645);
+emit_16(579);
+emit_16(646);
+emit_16(580);
+emit_16(646);
+emit_16(579);
+emit_16(646);
+emit_16(580);
+emit_16(647);
+emit_16(581);
+emit_16(647);
+emit_16(580);
+emit_16(647);
+emit_16(581);
+emit_16(648);
+emit_16(582);
+emit_16(648);
+emit_16(581);
+emit_16(648);
+emit_16(582);
+emit_16(649);
+emit_16(583);
+emit_16(649);
+emit_16(582);
+emit_16(649);
+emit_16(583);
+emit_16(650);
+emit_16(584);
+emit_16(650);
+emit_16(583);
+emit_16(650);
+emit_16(584);
+emit_16(651);
+emit_16(585);
+emit_16(651);
+emit_16(584);
+emit_16(651);
+emit_16(585);
+emit_16(652);
+emit_16(586);
+emit_16(652);
+emit_16(585);
+emit_16(652);
+emit_16(586);
+emit_16(653);
+emit_16(587);
+emit_16(653);
+emit_16(586);
+emit_16(653);
+emit_16(587);
+emit_16(654);
+emit_16(588);
+emit_16(654);
+emit_16(587);
+emit_16(654);
+emit_16(588);
+emit_16(655);
+emit_16(589);
+emit_16(655);
+emit_16(588);
+emit_16(655);
+emit_16(589);
+emit_16(656);
+emit_16(590);
+emit_16(656);
+emit_16(589);
+emit_16(656);
+emit_16(590);
+emit_16(657);
+emit_16(591);
+emit_16(657);
+emit_16(590);
+emit_16(657);
+emit_16(591);
+emit_16(658);
+emit_16(592);
+emit_16(658);
+emit_16(591);
+emit_16(658);
+emit_16(592);
+emit_16(659);
+emit_16(593);
+emit_16(659);
+emit_16(592);
+emit_16(660);
+emit_16(594);
+emit_16(661);
+emit_16(595);
+emit_16(661);
+emit_16(594);
+emit_16(661);
+emit_16(595);
+emit_16(662);
+emit_16(596);
+emit_16(662);
+emit_16(595);
+emit_16(662);
+emit_16(596);
+emit_16(663);
+emit_16(597);
+emit_16(663);
+emit_16(596);
+emit_16(663);
+emit_16(597);
+emit_16(664);
+emit_16(598);
+emit_16(664);
+emit_16(597);
+emit_16(664);
+emit_16(598);
+emit_16(665);
+emit_16(599);
+emit_16(665);
+emit_16(598);
+emit_16(665);
+emit_16(599);
+emit_16(666);
+emit_16(600);
+emit_16(666);
+emit_16(599);
+emit_16(666);
+emit_16(600);
+emit_16(667);
+emit_16(601);
+emit_16(667);
+emit_16(600);
+emit_16(667);
+emit_16(601);
+emit_16(668);
+emit_16(602);
+emit_16(668);
+emit_16(601);
+emit_16(668);
+emit_16(602);
+emit_16(669);
+emit_16(603);
+emit_16(669);
+emit_16(602);
+emit_16(669);
+emit_16(603);
+emit_16(670);
+emit_16(604);
+emit_16(670);
+emit_16(603);
+emit_16(670);
+emit_16(604);
+emit_16(671);
+emit_16(605);
+emit_16(671);
+emit_16(604);
+emit_16(671);
+emit_16(605);
+emit_16(672);
+emit_16(606);
+emit_16(672);
+emit_16(605);
+emit_16(672);
+emit_16(606);
+emit_16(673);
+emit_16(607);
+emit_16(673);
+emit_16(606);
+emit_16(673);
+emit_16(607);
+emit_16(674);
+emit_16(608);
+emit_16(674);
+emit_16(607);
+emit_16(674);
+emit_16(608);
+emit_16(675);
+emit_16(609);
+emit_16(675);
+emit_16(608);
+emit_16(675);
+emit_16(609);
+emit_16(676);
+emit_16(610);
+emit_16(676);
+emit_16(609);
+emit_16(676);
+emit_16(610);
+emit_16(677);
+emit_16(611);
+emit_16(677);
+emit_16(610);
+emit_16(677);
+emit_16(611);
+emit_16(678);
+emit_16(612);
+emit_16(678);
+emit_16(611);
+emit_16(678);
+emit_16(612);
+emit_16(679);
+emit_16(613);
+emit_16(679);
+emit_16(612);
+emit_16(679);
+emit_16(613);
+emit_16(680);
+emit_16(614);
+emit_16(680);
+emit_16(613);
+emit_16(680);
+emit_16(614);
+emit_16(681);
+emit_16(615);
+emit_16(681);
+emit_16(614);
+emit_16(681);
+emit_16(615);
+emit_16(682);
+emit_16(616);
+emit_16(682);
+emit_16(615);
+emit_16(682);
+emit_16(616);
+emit_16(683);
+emit_16(617);
+emit_16(683);
+emit_16(616);
+emit_16(683);
+emit_16(617);
+emit_16(684);
+emit_16(618);
+emit_16(684);
+emit_16(617);
+emit_16(684);
+emit_16(618);
+emit_16(685);
+emit_16(619);
+emit_16(685);
+emit_16(618);
+emit_16(685);
+emit_16(619);
+emit_16(686);
+emit_16(620);
+emit_16(686);
+emit_16(619);
+emit_16(686);
+emit_16(620);
+emit_16(687);
+emit_16(621);
+emit_16(687);
+emit_16(620);
+emit_16(687);
+emit_16(621);
+emit_16(688);
+emit_16(622);
+emit_16(688);
+emit_16(621);
+emit_16(688);
+emit_16(622);
+emit_16(689);
+emit_16(623);
+emit_16(689);
+emit_16(622);
+emit_16(689);
+emit_16(623);
+emit_16(690);
+emit_16(624);
+emit_16(690);
+emit_16(623);
+emit_16(690);
+emit_16(624);
+emit_16(691);
+emit_16(625);
+emit_16(691);
+emit_16(624);
+emit_16(691);
+emit_16(625);
+emit_16(692);
+emit_16(626);
+emit_16(692);
+emit_16(625);
+emit_16(692);
+emit_16(626);
+emit_16(693);
+emit_16(627);
+emit_16(693);
+emit_16(626);
+emit_16(693);
+emit_16(627);
+emit_16(694);
+emit_16(628);
+emit_16(694);
+emit_16(627);
+emit_16(694);
+emit_16(628);
+emit_16(695);
+emit_16(629);
+emit_16(695);
+emit_16(628);
+emit_16(695);
+emit_16(629);
+emit_16(696);
+emit_16(630);
+emit_16(696);
+emit_16(629);
+emit_16(696);
+emit_16(630);
+emit_16(697);
+emit_16(631);
+emit_16(697);
+emit_16(630);
+emit_16(697);
+emit_16(631);
+emit_16(698);
+emit_16(632);
+emit_16(698);
+emit_16(631);
+emit_16(698);
+emit_16(632);
+emit_16(699);
+emit_16(633);
+emit_16(699);
+emit_16(632);
+emit_16(699);
+emit_16(633);
+emit_16(700);
+emit_16(634);
+emit_16(700);
+emit_16(633);
+emit_16(700);
+emit_16(634);
+emit_16(701);
+emit_16(635);
+emit_16(701);
+emit_16(634);
+emit_16(701);
+emit_16(635);
+emit_16(702);
+emit_16(636);
+emit_16(702);
+emit_16(635);
+emit_16(702);
+emit_16(636);
+emit_16(703);
+emit_16(637);
+emit_16(703);
+emit_16(636);
+emit_16(703);
+emit_16(637);
+emit_16(704);
+emit_16(638);
+emit_16(704);
+emit_16(637);
+emit_16(704);
+emit_16(638);
+emit_16(705);
+emit_16(639);
+emit_16(705);
+emit_16(638);
+emit_16(705);
+emit_16(639);
+emit_16(706);
+emit_16(640);
+emit_16(706);
+emit_16(639);
+emit_16(706);
+emit_16(640);
+emit_16(707);
+emit_16(641);
+emit_16(707);
+emit_16(640);
+emit_16(707);
+emit_16(641);
+emit_16(708);
+emit_16(642);
+emit_16(708);
+emit_16(641);
+emit_16(708);
+emit_16(642);
+emit_16(709);
+emit_16(643);
+emit_16(709);
+emit_16(642);
+emit_16(709);
+emit_16(643);
+emit_16(710);
+emit_16(644);
+emit_16(710);
+emit_16(643);
+emit_16(710);
+emit_16(644);
+emit_16(711);
+emit_16(645);
+emit_16(711);
+emit_16(644);
+emit_16(711);
+emit_16(645);
+emit_16(712);
+emit_16(646);
+emit_16(712);
+emit_16(645);
+emit_16(712);
+emit_16(646);
+emit_16(713);
+emit_16(647);
+emit_16(713);
+emit_16(646);
+emit_16(713);
+emit_16(647);
+emit_16(714);
+emit_16(648);
+emit_16(714);
+emit_16(647);
+emit_16(714);
+emit_16(648);
+emit_16(715);
+emit_16(649);
+emit_16(715);
+emit_16(648);
+emit_16(715);
+emit_16(649);
+emit_16(716);
+emit_16(650);
+emit_16(716);
+emit_16(649);
+emit_16(716);
+emit_16(650);
+emit_16(717);
+emit_16(651);
+emit_16(717);
+emit_16(650);
+emit_16(717);
+emit_16(651);
+emit_16(718);
+emit_16(652);
+emit_16(718);
+emit_16(651);
+emit_16(718);
+emit_16(652);
+emit_16(719);
+emit_16(653);
+emit_16(719);
+emit_16(652);
+emit_16(719);
+emit_16(653);
+emit_16(720);
+emit_16(654);
+emit_16(720);
+emit_16(653);
+emit_16(720);
+emit_16(654);
+emit_16(721);
+emit_16(655);
+emit_16(721);
+emit_16(654);
+emit_16(721);
+emit_16(655);
+emit_16(722);
+emit_16(656);
+emit_16(722);
+emit_16(655);
+emit_16(722);
+emit_16(656);
+emit_16(723);
+emit_16(657);
+emit_16(723);
+emit_16(656);
+emit_16(723);
+emit_16(657);
+emit_16(724);
+emit_16(658);
+emit_16(724);
+emit_16(657);
+emit_16(724);
+emit_16(658);
+emit_16(725);
+emit_16(659);
+emit_16(725);
+emit_16(658);
+emit_16(726);
+emit_16(660);
+emit_16(727);
+emit_16(661);
+emit_16(727);
+emit_16(660);
+emit_16(727);
+emit_16(661);
+emit_16(728);
+emit_16(662);
+emit_16(728);
+emit_16(661);
+emit_16(728);
+emit_16(662);
+emit_16(729);
+emit_16(663);
+emit_16(729);
+emit_16(662);
+emit_16(729);
+emit_16(663);
+emit_16(730);
+emit_16(664);
+emit_16(730);
+emit_16(663);
+emit_16(730);
+emit_16(664);
+emit_16(731);
+emit_16(665);
+emit_16(731);
+emit_16(664);
+emit_16(731);
+emit_16(665);
+emit_16(732);
+emit_16(666);
+emit_16(732);
+emit_16(665);
+emit_16(732);
+emit_16(666);
+emit_16(733);
+emit_16(667);
+emit_16(733);
+emit_16(666);
+emit_16(733);
+emit_16(667);
+emit_16(734);
+emit_16(668);
+emit_16(734);
+emit_16(667);
+emit_16(734);
+emit_16(668);
+emit_16(735);
+emit_16(669);
+emit_16(735);
+emit_16(668);
+emit_16(735);
+emit_16(669);
+emit_16(736);
+emit_16(670);
+emit_16(736);
+emit_16(669);
+emit_16(736);
+emit_16(670);
+emit_16(737);
+emit_16(671);
+emit_16(737);
+emit_16(670);
+emit_16(737);
+emit_16(671);
+emit_16(738);
+emit_16(672);
+emit_16(738);
+emit_16(671);
+emit_16(738);
+emit_16(672);
+emit_16(739);
+emit_16(673);
+emit_16(739);
+emit_16(672);
+emit_16(739);
+emit_16(673);
+emit_16(740);
+emit_16(674);
+emit_16(740);
+emit_16(673);
+emit_16(740);
+emit_16(674);
+emit_16(741);
+emit_16(675);
+emit_16(741);
+emit_16(674);
+emit_16(741);
+emit_16(675);
+emit_16(742);
+emit_16(676);
+emit_16(742);
+emit_16(675);
+emit_16(742);
+emit_16(676);
+emit_16(743);
+emit_16(677);
+emit_16(743);
+emit_16(676);
+emit_16(743);
+emit_16(677);
+emit_16(744);
+emit_16(678);
+emit_16(744);
+emit_16(677);
+emit_16(744);
+emit_16(678);
+emit_16(745);
+emit_16(679);
+emit_16(745);
+emit_16(678);
+emit_16(745);
+emit_16(679);
+emit_16(746);
+emit_16(680);
+emit_16(746);
+emit_16(679);
+emit_16(746);
+emit_16(680);
+emit_16(747);
+emit_16(681);
+emit_16(747);
+emit_16(680);
+emit_16(747);
+emit_16(681);
+emit_16(748);
+emit_16(682);
+emit_16(748);
+emit_16(681);
+emit_16(748);
+emit_16(682);
+emit_16(749);
+emit_16(683);
+emit_16(749);
+emit_16(682);
+emit_16(749);
+emit_16(683);
+emit_16(750);
+emit_16(684);
+emit_16(750);
+emit_16(683);
+emit_16(750);
+emit_16(684);
+emit_16(751);
+emit_16(685);
+emit_16(751);
+emit_16(684);
+emit_16(751);
+emit_16(685);
+emit_16(752);
+emit_16(686);
+emit_16(752);
+emit_16(685);
+emit_16(752);
+emit_16(686);
+emit_16(753);
+emit_16(687);
+emit_16(753);
+emit_16(686);
+emit_16(753);
+emit_16(687);
+emit_16(754);
+emit_16(688);
+emit_16(754);
+emit_16(687);
+emit_16(754);
+emit_16(688);
+emit_16(755);
+emit_16(689);
+emit_16(755);
+emit_16(688);
+emit_16(755);
+emit_16(689);
+emit_16(756);
+emit_16(690);
+emit_16(756);
+emit_16(689);
+emit_16(756);
+emit_16(690);
+emit_16(757);
+emit_16(691);
+emit_16(757);
+emit_16(690);
+emit_16(757);
+emit_16(691);
+emit_16(758);
+emit_16(692);
+emit_16(758);
+emit_16(691);
+emit_16(758);
+emit_16(692);
+emit_16(759);
+emit_16(693);
+emit_16(759);
+emit_16(692);
+emit_16(759);
+emit_16(693);
+emit_16(760);
+emit_16(694);
+emit_16(760);
+emit_16(693);
+emit_16(760);
+emit_16(694);
+emit_16(761);
+emit_16(695);
+emit_16(761);
+emit_16(694);
+emit_16(761);
+emit_16(695);
+emit_16(762);
+emit_16(696);
+emit_16(762);
+emit_16(695);
+emit_16(762);
+emit_16(696);
+emit_16(763);
+emit_16(697);
+emit_16(763);
+emit_16(696);
+emit_16(763);
+emit_16(697);
+emit_16(764);
+emit_16(698);
+emit_16(764);
+emit_16(697);
+emit_16(764);
+emit_16(698);
+emit_16(765);
+emit_16(699);
+emit_16(765);
+emit_16(698);
+emit_16(765);
+emit_16(699);
+emit_16(766);
+emit_16(700);
+emit_16(766);
+emit_16(699);
+emit_16(766);
+emit_16(700);
+emit_16(767);
+emit_16(701);
+emit_16(767);
+emit_16(700);
+emit_16(767);
+emit_16(701);
+emit_16(768);
+emit_16(702);
+emit_16(768);
+emit_16(701);
+emit_16(768);
+emit_16(702);
+emit_16(769);
+emit_16(703);
+emit_16(769);
+emit_16(702);
+emit_16(769);
+emit_16(703);
+emit_16(770);
+emit_16(704);
+emit_16(770);
+emit_16(703);
+emit_16(770);
+emit_16(704);
+emit_16(771);
+emit_16(705);
+emit_16(771);
+emit_16(704);
+emit_16(771);
+emit_16(705);
+emit_16(772);
+emit_16(706);
+emit_16(772);
+emit_16(705);
+emit_16(772);
+emit_16(706);
+emit_16(773);
+emit_16(707);
+emit_16(773);
+emit_16(706);
+emit_16(773);
+emit_16(707);
+emit_16(774);
+emit_16(708);
+emit_16(774);
+emit_16(707);
+emit_16(774);
+emit_16(708);
+emit_16(775);
+emit_16(709);
+emit_16(775);
+emit_16(708);
+emit_16(775);
+emit_16(709);
+emit_16(776);
+emit_16(710);
+emit_16(776);
+emit_16(709);
+emit_16(776);
+emit_16(710);
+emit_16(777);
+emit_16(711);
+emit_16(777);
+emit_16(710);
+emit_16(777);
+emit_16(711);
+emit_16(778);
+emit_16(712);
+emit_16(778);
+emit_16(711);
+emit_16(778);
+emit_16(712);
+emit_16(779);
+emit_16(713);
+emit_16(779);
+emit_16(712);
+emit_16(779);
+emit_16(713);
+emit_16(780);
+emit_16(714);
+emit_16(780);
+emit_16(713);
+emit_16(780);
+emit_16(714);
+emit_16(781);
+emit_16(715);
+emit_16(781);
+emit_16(714);
+emit_16(781);
+emit_16(715);
+emit_16(782);
+emit_16(716);
+emit_16(782);
+emit_16(715);
+emit_16(782);
+emit_16(716);
+emit_16(783);
+emit_16(717);
+emit_16(783);
+emit_16(716);
+emit_16(783);
+emit_16(717);
+emit_16(784);
+emit_16(718);
+emit_16(784);
+emit_16(717);
+emit_16(784);
+emit_16(718);
+emit_16(785);
+emit_16(719);
+emit_16(785);
+emit_16(718);
+emit_16(785);
+emit_16(719);
+emit_16(786);
+emit_16(720);
+emit_16(786);
+emit_16(719);
+emit_16(786);
+emit_16(720);
+emit_16(787);
+emit_16(721);
+emit_16(787);
+emit_16(720);
+emit_16(787);
+emit_16(721);
+emit_16(788);
+emit_16(722);
+emit_16(788);
+emit_16(721);
+emit_16(788);
+emit_16(722);
+emit_16(789);
+emit_16(723);
+emit_16(789);
+emit_16(722);
+emit_16(789);
+emit_16(723);
+emit_16(790);
+emit_16(724);
+emit_16(790);
+emit_16(723);
+emit_16(790);
+emit_16(724);
+emit_16(791);
+emit_16(725);
+emit_16(791);
+emit_16(724);
+emit_16(792);
+emit_16(726);
+emit_16(793);
+emit_16(727);
+emit_16(793);
+emit_16(726);
+emit_16(793);
+emit_16(727);
+emit_16(794);
+emit_16(728);
+emit_16(794);
+emit_16(727);
+emit_16(794);
+emit_16(728);
+emit_16(795);
+emit_16(729);
+emit_16(795);
+emit_16(728);
+emit_16(795);
+emit_16(729);
+emit_16(796);
+emit_16(730);
+emit_16(796);
+emit_16(729);
+emit_16(796);
+emit_16(730);
+emit_16(797);
+emit_16(731);
+emit_16(797);
+emit_16(730);
+emit_16(797);
+emit_16(731);
+emit_16(798);
+emit_16(732);
+emit_16(798);
+emit_16(731);
+emit_16(798);
+emit_16(732);
+emit_16(799);
+emit_16(733);
+emit_16(799);
+emit_16(732);
+emit_16(799);
+emit_16(733);
+emit_16(800);
+emit_16(734);
+emit_16(800);
+emit_16(733);
+emit_16(800);
+emit_16(734);
+emit_16(801);
+emit_16(735);
+emit_16(801);
+emit_16(734);
+emit_16(801);
+emit_16(735);
+emit_16(802);
+emit_16(736);
+emit_16(802);
+emit_16(735);
+emit_16(802);
+emit_16(736);
+emit_16(803);
+emit_16(737);
+emit_16(803);
+emit_16(736);
+emit_16(803);
+emit_16(737);
+emit_16(804);
+emit_16(738);
+emit_16(804);
+emit_16(737);
+emit_16(804);
+emit_16(738);
+emit_16(805);
+emit_16(739);
+emit_16(805);
+emit_16(738);
+emit_16(805);
+emit_16(739);
+emit_16(806);
+emit_16(740);
+emit_16(806);
+emit_16(739);
+emit_16(806);
+emit_16(740);
+emit_16(807);
+emit_16(741);
+emit_16(807);
+emit_16(740);
+emit_16(807);
+emit_16(741);
+emit_16(808);
+emit_16(742);
+emit_16(808);
+emit_16(741);
+emit_16(808);
+emit_16(742);
+emit_16(809);
+emit_16(743);
+emit_16(809);
+emit_16(742);
+emit_16(809);
+emit_16(743);
+emit_16(810);
+emit_16(744);
+emit_16(810);
+emit_16(743);
+emit_16(810);
+emit_16(744);
+emit_16(811);
+emit_16(745);
+emit_16(811);
+emit_16(744);
+emit_16(811);
+emit_16(745);
+emit_16(812);
+emit_16(746);
+emit_16(812);
+emit_16(745);
+emit_16(812);
+emit_16(746);
+emit_16(813);
+emit_16(747);
+emit_16(813);
+emit_16(746);
+emit_16(813);
+emit_16(747);
+emit_16(814);
+emit_16(748);
+emit_16(814);
+emit_16(747);
+emit_16(814);
+emit_16(748);
+emit_16(815);
+emit_16(749);
+emit_16(815);
+emit_16(748);
+emit_16(815);
+emit_16(749);
+emit_16(816);
+emit_16(750);
+emit_16(816);
+emit_16(749);
+emit_16(816);
+emit_16(750);
+emit_16(817);
+emit_16(751);
+emit_16(817);
+emit_16(750);
+emit_16(817);
+emit_16(751);
+emit_16(818);
+emit_16(752);
+emit_16(818);
+emit_16(751);
+emit_16(818);
+emit_16(752);
+emit_16(819);
+emit_16(753);
+emit_16(819);
+emit_16(752);
+emit_16(819);
+emit_16(753);
+emit_16(820);
+emit_16(754);
+emit_16(820);
+emit_16(753);
+emit_16(820);
+emit_16(754);
+emit_16(821);
+emit_16(755);
+emit_16(821);
+emit_16(754);
+emit_16(821);
+emit_16(755);
+emit_16(822);
+emit_16(756);
+emit_16(822);
+emit_16(755);
+emit_16(822);
+emit_16(756);
+emit_16(823);
+emit_16(757);
+emit_16(823);
+emit_16(756);
+emit_16(823);
+emit_16(757);
+emit_16(824);
+emit_16(758);
+emit_16(824);
+emit_16(757);
+emit_16(824);
+emit_16(758);
+emit_16(825);
+emit_16(759);
+emit_16(825);
+emit_16(758);
+emit_16(825);
+emit_16(759);
+emit_16(826);
+emit_16(760);
+emit_16(826);
+emit_16(759);
+emit_16(826);
+emit_16(760);
+emit_16(827);
+emit_16(761);
+emit_16(827);
+emit_16(760);
+emit_16(827);
+emit_16(761);
+emit_16(828);
+emit_16(762);
+emit_16(828);
+emit_16(761);
+emit_16(828);
+emit_16(762);
+emit_16(829);
+emit_16(763);
+emit_16(829);
+emit_16(762);
+emit_16(829);
+emit_16(763);
+emit_16(830);
+emit_16(764);
+emit_16(830);
+emit_16(763);
+emit_16(830);
+emit_16(764);
+emit_16(831);
+emit_16(765);
+emit_16(831);
+emit_16(764);
+emit_16(831);
+emit_16(765);
+emit_16(832);
+emit_16(766);
+emit_16(832);
+emit_16(765);
+emit_16(832);
+emit_16(766);
+emit_16(833);
+emit_16(767);
+emit_16(833);
+emit_16(766);
+emit_16(833);
+emit_16(767);
+emit_16(834);
+emit_16(768);
+emit_16(834);
+emit_16(767);
+emit_16(834);
+emit_16(768);
+emit_16(835);
+emit_16(769);
+emit_16(835);
+emit_16(768);
+emit_16(835);
+emit_16(769);
+emit_16(836);
+emit_16(770);
+emit_16(836);
+emit_16(769);
+emit_16(836);
+emit_16(770);
+emit_16(837);
+emit_16(771);
+emit_16(837);
+emit_16(770);
+emit_16(837);
+emit_16(771);
+emit_16(838);
+emit_16(772);
+emit_16(838);
+emit_16(771);
+emit_16(838);
+emit_16(772);
+emit_16(839);
+emit_16(773);
+emit_16(839);
+emit_16(772);
+emit_16(839);
+emit_16(773);
+emit_16(840);
+emit_16(774);
+emit_16(840);
+emit_16(773);
+emit_16(840);
+emit_16(774);
+emit_16(841);
+emit_16(775);
+emit_16(841);
+emit_16(774);
+emit_16(841);
+emit_16(775);
+emit_16(842);
+emit_16(776);
+emit_16(842);
+emit_16(775);
+emit_16(842);
+emit_16(776);
+emit_16(843);
+emit_16(777);
+emit_16(843);
+emit_16(776);
+emit_16(843);
+emit_16(777);
+emit_16(844);
+emit_16(778);
+emit_16(844);
+emit_16(777);
+emit_16(844);
+emit_16(778);
+emit_16(845);
+emit_16(779);
+emit_16(845);
+emit_16(778);
+emit_16(845);
+emit_16(779);
+emit_16(846);
+emit_16(780);
+emit_16(846);
+emit_16(779);
+emit_16(846);
+emit_16(780);
+emit_16(847);
+emit_16(781);
+emit_16(847);
+emit_16(780);
+emit_16(847);
+emit_16(781);
+emit_16(848);
+emit_16(782);
+emit_16(848);
+emit_16(781);
+emit_16(848);
+emit_16(782);
+emit_16(849);
+emit_16(783);
+emit_16(849);
+emit_16(782);
+emit_16(849);
+emit_16(783);
+emit_16(850);
+emit_16(784);
+emit_16(850);
+emit_16(783);
+emit_16(850);
+emit_16(784);
+emit_16(851);
+emit_16(785);
+emit_16(851);
+emit_16(784);
+emit_16(851);
+emit_16(785);
+emit_16(852);
+emit_16(786);
+emit_16(852);
+emit_16(785);
+emit_16(852);
+emit_16(786);
+emit_16(853);
+emit_16(787);
+emit_16(853);
+emit_16(786);
+emit_16(853);
+emit_16(787);
+emit_16(854);
+emit_16(788);
+emit_16(854);
+emit_16(787);
+emit_16(854);
+emit_16(788);
+emit_16(855);
+emit_16(789);
+emit_16(855);
+emit_16(788);
+emit_16(855);
+emit_16(789);
+emit_16(856);
+emit_16(790);
+emit_16(856);
+emit_16(789);
+emit_16(856);
+emit_16(790);
+emit_16(857);
+emit_16(791);
+emit_16(857);
+emit_16(790);
+emit_16(858);
+emit_16(792);
+emit_16(859);
+emit_16(793);
+emit_16(859);
+emit_16(792);
+emit_16(859);
+emit_16(793);
+emit_16(860);
+emit_16(794);
+emit_16(860);
+emit_16(793);
+emit_16(860);
+emit_16(794);
+emit_16(861);
+emit_16(795);
+emit_16(861);
+emit_16(794);
+emit_16(861);
+emit_16(795);
+emit_16(862);
+emit_16(796);
+emit_16(862);
+emit_16(795);
+emit_16(862);
+emit_16(796);
+emit_16(863);
+emit_16(797);
+emit_16(863);
+emit_16(796);
+emit_16(863);
+emit_16(797);
+emit_16(864);
+emit_16(798);
+emit_16(864);
+emit_16(797);
+emit_16(864);
+emit_16(798);
+emit_16(865);
+emit_16(799);
+emit_16(865);
+emit_16(798);
+emit_16(865);
+emit_16(799);
+emit_16(866);
+emit_16(800);
+emit_16(866);
+emit_16(799);
+emit_16(866);
+emit_16(800);
+emit_16(867);
+emit_16(801);
+emit_16(867);
+emit_16(800);
+emit_16(867);
+emit_16(801);
+emit_16(868);
+emit_16(802);
+emit_16(868);
+emit_16(801);
+emit_16(868);
+emit_16(802);
+emit_16(869);
+emit_16(803);
+emit_16(869);
+emit_16(802);
+emit_16(869);
+emit_16(803);
+emit_16(870);
+emit_16(804);
+emit_16(870);
+emit_16(803);
+emit_16(870);
+emit_16(804);
+emit_16(871);
+emit_16(805);
+emit_16(871);
+emit_16(804);
+emit_16(871);
+emit_16(805);
+emit_16(872);
+emit_16(806);
+emit_16(872);
+emit_16(805);
+emit_16(872);
+emit_16(806);
+emit_16(873);
+emit_16(807);
+emit_16(873);
+emit_16(806);
+emit_16(873);
+emit_16(807);
+emit_16(874);
+emit_16(808);
+emit_16(874);
+emit_16(807);
+emit_16(874);
+emit_16(808);
+emit_16(875);
+emit_16(809);
+emit_16(875);
+emit_16(808);
+emit_16(875);
+emit_16(809);
+emit_16(876);
+emit_16(810);
+emit_16(876);
+emit_16(809);
+emit_16(876);
+emit_16(810);
+emit_16(877);
+emit_16(811);
+emit_16(877);
+emit_16(810);
+emit_16(877);
+emit_16(811);
+emit_16(878);
+emit_16(812);
+emit_16(878);
+emit_16(811);
+emit_16(878);
+emit_16(812);
+emit_16(879);
+emit_16(813);
+emit_16(879);
+emit_16(812);
+emit_16(879);
+emit_16(813);
+emit_16(880);
+emit_16(814);
+emit_16(880);
+emit_16(813);
+emit_16(880);
+emit_16(814);
+emit_16(881);
+emit_16(815);
+emit_16(881);
+emit_16(814);
+emit_16(881);
+emit_16(815);
+emit_16(882);
+emit_16(816);
+emit_16(882);
+emit_16(815);
+emit_16(882);
+emit_16(816);
+emit_16(883);
+emit_16(817);
+emit_16(883);
+emit_16(816);
+emit_16(883);
+emit_16(817);
+emit_16(884);
+emit_16(818);
+emit_16(884);
+emit_16(817);
+emit_16(884);
+emit_16(818);
+emit_16(885);
+emit_16(819);
+emit_16(885);
+emit_16(818);
+emit_16(885);
+emit_16(819);
+emit_16(886);
+emit_16(820);
+emit_16(886);
+emit_16(819);
+emit_16(886);
+emit_16(820);
+emit_16(887);
+emit_16(821);
+emit_16(887);
+emit_16(820);
+emit_16(887);
+emit_16(821);
+emit_16(888);
+emit_16(822);
+emit_16(888);
+emit_16(821);
+emit_16(888);
+emit_16(822);
+emit_16(889);
+emit_16(823);
+emit_16(889);
+emit_16(822);
+emit_16(889);
+emit_16(823);
+emit_16(890);
+emit_16(824);
+emit_16(890);
+emit_16(823);
+emit_16(890);
+emit_16(824);
+emit_16(891);
+emit_16(825);
+emit_16(891);
+emit_16(824);
+emit_16(891);
+emit_16(825);
+emit_16(892);
+emit_16(826);
+emit_16(892);
+emit_16(825);
+emit_16(892);
+emit_16(826);
+emit_16(893);
+emit_16(827);
+emit_16(893);
+emit_16(826);
+emit_16(893);
+emit_16(827);
+emit_16(894);
+emit_16(828);
+emit_16(894);
+emit_16(827);
+emit_16(894);
+emit_16(828);
+emit_16(895);
+emit_16(829);
+emit_16(895);
+emit_16(828);
+emit_16(895);
+emit_16(829);
+emit_16(896);
+emit_16(830);
+emit_16(896);
+emit_16(829);
+emit_16(896);
+emit_16(830);
+emit_16(897);
+emit_16(831);
+emit_16(897);
+emit_16(830);
+emit_16(897);
+emit_16(831);
+emit_16(898);
+emit_16(832);
+emit_16(898);
+emit_16(831);
+emit_16(898);
+emit_16(832);
+emit_16(899);
+emit_16(833);
+emit_16(899);
+emit_16(832);
+emit_16(899);
+emit_16(833);
+emit_16(900);
+emit_16(834);
+emit_16(900);
+emit_16(833);
+emit_16(900);
+emit_16(834);
+emit_16(901);
+emit_16(835);
+emit_16(901);
+emit_16(834);
+emit_16(901);
+emit_16(835);
+emit_16(902);
+emit_16(836);
+emit_16(902);
+emit_16(835);
+emit_16(902);
+emit_16(836);
+emit_16(903);
+emit_16(837);
+emit_16(903);
+emit_16(836);
+emit_16(903);
+emit_16(837);
+emit_16(904);
+emit_16(838);
+emit_16(904);
+emit_16(837);
+emit_16(904);
+emit_16(838);
+emit_16(905);
+emit_16(839);
+emit_16(905);
+emit_16(838);
+emit_16(905);
+emit_16(839);
+emit_16(906);
+emit_16(840);
+emit_16(906);
+emit_16(839);
+emit_16(906);
+emit_16(840);
+emit_16(907);
+emit_16(841);
+emit_16(907);
+emit_16(840);
+emit_16(907);
+emit_16(841);
+emit_16(908);
+emit_16(842);
+emit_16(908);
+emit_16(841);
+emit_16(908);
+emit_16(842);
+emit_16(909);
+emit_16(843);
+emit_16(909);
+emit_16(842);
+emit_16(909);
+emit_16(843);
+emit_16(910);
+emit_16(844);
+emit_16(910);
+emit_16(843);
+emit_16(910);
+emit_16(844);
+emit_16(911);
+emit_16(845);
+emit_16(911);
+emit_16(844);
+emit_16(911);
+emit_16(845);
+emit_16(912);
+emit_16(846);
+emit_16(912);
+emit_16(845);
+emit_16(912);
+emit_16(846);
+emit_16(913);
+emit_16(847);
+emit_16(913);
+emit_16(846);
+emit_16(913);
+emit_16(847);
+emit_16(914);
+emit_16(848);
+emit_16(914);
+emit_16(847);
+emit_16(914);
+emit_16(848);
+emit_16(915);
+emit_16(849);
+emit_16(915);
+emit_16(848);
+emit_16(915);
+emit_16(849);
+emit_16(916);
+emit_16(850);
+emit_16(916);
+emit_16(849);
+emit_16(916);
+emit_16(850);
+emit_16(917);
+emit_16(851);
+emit_16(917);
+emit_16(850);
+emit_16(917);
+emit_16(851);
+emit_16(918);
+emit_16(852);
+emit_16(918);
+emit_16(851);
+emit_16(918);
+emit_16(852);
+emit_16(919);
+emit_16(853);
+emit_16(919);
+emit_16(852);
+emit_16(919);
+emit_16(853);
+emit_16(920);
+emit_16(854);
+emit_16(920);
+emit_16(853);
+emit_16(920);
+emit_16(854);
+emit_16(921);
+emit_16(855);
+emit_16(921);
+emit_16(854);
+emit_16(921);
+emit_16(855);
+emit_16(922);
+emit_16(856);
+emit_16(922);
+emit_16(855);
+emit_16(922);
+emit_16(856);
+emit_16(923);
+emit_16(857);
+emit_16(923);
+emit_16(856);
+emit_16(924);
+emit_16(858);
+emit_16(925);
+emit_16(859);
+emit_16(925);
+emit_16(858);
+emit_16(925);
+emit_16(859);
+emit_16(926);
+emit_16(860);
+emit_16(926);
+emit_16(859);
+emit_16(926);
+emit_16(860);
+emit_16(927);
+emit_16(861);
+emit_16(927);
+emit_16(860);
+emit_16(927);
+emit_16(861);
+emit_16(928);
+emit_16(862);
+emit_16(928);
+emit_16(861);
+emit_16(928);
+emit_16(862);
+emit_16(929);
+emit_16(863);
+emit_16(929);
+emit_16(862);
+emit_16(929);
+emit_16(863);
+emit_16(930);
+emit_16(864);
+emit_16(930);
+emit_16(863);
+emit_16(930);
+emit_16(864);
+emit_16(931);
+emit_16(865);
+emit_16(931);
+emit_16(864);
+emit_16(931);
+emit_16(865);
+emit_16(932);
+emit_16(866);
+emit_16(932);
+emit_16(865);
+emit_16(932);
+emit_16(866);
+emit_16(933);
+emit_16(867);
+emit_16(933);
+emit_16(866);
+emit_16(933);
+emit_16(867);
+emit_16(934);
+emit_16(868);
+emit_16(934);
+emit_16(867);
+emit_16(934);
+emit_16(868);
+emit_16(935);
+emit_16(869);
+emit_16(935);
+emit_16(868);
+emit_16(935);
+emit_16(869);
+emit_16(936);
+emit_16(870);
+emit_16(936);
+emit_16(869);
+emit_16(936);
+emit_16(870);
+emit_16(937);
+emit_16(871);
+emit_16(937);
+emit_16(870);
+emit_16(937);
+emit_16(871);
+emit_16(938);
+emit_16(872);
+emit_16(938);
+emit_16(871);
+emit_16(938);
+emit_16(872);
+emit_16(939);
+emit_16(873);
+emit_16(939);
+emit_16(872);
+emit_16(939);
+emit_16(873);
+emit_16(940);
+emit_16(874);
+emit_16(940);
+emit_16(873);
+emit_16(940);
+emit_16(874);
+emit_16(941);
+emit_16(875);
+emit_16(941);
+emit_16(874);
+emit_16(941);
+emit_16(875);
+emit_16(942);
+emit_16(876);
+emit_16(942);
+emit_16(875);
+emit_16(942);
+emit_16(876);
+emit_16(943);
+emit_16(877);
+emit_16(943);
+emit_16(876);
+emit_16(943);
+emit_16(877);
+emit_16(944);
+emit_16(878);
+emit_16(944);
+emit_16(877);
+emit_16(944);
+emit_16(878);
+emit_16(945);
+emit_16(879);
+emit_16(945);
+emit_16(878);
+emit_16(945);
+emit_16(879);
+emit_16(946);
+emit_16(880);
+emit_16(946);
+emit_16(879);
+emit_16(946);
+emit_16(880);
+emit_16(947);
+emit_16(881);
+emit_16(947);
+emit_16(880);
+emit_16(947);
+emit_16(881);
+emit_16(948);
+emit_16(882);
+emit_16(948);
+emit_16(881);
+emit_16(948);
+emit_16(882);
+emit_16(949);
+emit_16(883);
+emit_16(949);
+emit_16(882);
+emit_16(949);
+emit_16(883);
+emit_16(950);
+emit_16(884);
+emit_16(950);
+emit_16(883);
+emit_16(950);
+emit_16(884);
+emit_16(951);
+emit_16(885);
+emit_16(951);
+emit_16(884);
+emit_16(951);
+emit_16(885);
+emit_16(952);
+emit_16(886);
+emit_16(952);
+emit_16(885);
+emit_16(952);
+emit_16(886);
+emit_16(953);
+emit_16(887);
+emit_16(953);
+emit_16(886);
+emit_16(953);
+emit_16(887);
+emit_16(954);
+emit_16(888);
+emit_16(954);
+emit_16(887);
+emit_16(954);
+emit_16(888);
+emit_16(955);
+emit_16(889);
+emit_16(955);
+emit_16(888);
+emit_16(955);
+emit_16(889);
+emit_16(956);
+emit_16(890);
+emit_16(956);
+emit_16(889);
+emit_16(956);
+emit_16(890);
+emit_16(957);
+emit_16(891);
+emit_16(957);
+emit_16(890);
+emit_16(957);
+emit_16(891);
+emit_16(958);
+emit_16(892);
+emit_16(958);
+emit_16(891);
+emit_16(958);
+emit_16(892);
+emit_16(959);
+emit_16(893);
+emit_16(959);
+emit_16(892);
+emit_16(959);
+emit_16(893);
+emit_16(960);
+emit_16(894);
+emit_16(960);
+emit_16(893);
+emit_16(960);
+emit_16(894);
+emit_16(961);
+emit_16(895);
+emit_16(961);
+emit_16(894);
+emit_16(961);
+emit_16(895);
+emit_16(962);
+emit_16(896);
+emit_16(962);
+emit_16(895);
+emit_16(962);
+emit_16(896);
+emit_16(963);
+emit_16(897);
+emit_16(963);
+emit_16(896);
+emit_16(963);
+emit_16(897);
+emit_16(964);
+emit_16(898);
+emit_16(964);
+emit_16(897);
+emit_16(964);
+emit_16(898);
+emit_16(965);
+emit_16(899);
+emit_16(965);
+emit_16(898);
+emit_16(965);
+emit_16(899);
+emit_16(966);
+emit_16(900);
+emit_16(966);
+emit_16(899);
+emit_16(966);
+emit_16(900);
+emit_16(967);
+emit_16(901);
+emit_16(967);
+emit_16(900);
+emit_16(967);
+emit_16(901);
+emit_16(968);
+emit_16(902);
+emit_16(968);
+emit_16(901);
+emit_16(968);
+emit_16(902);
+emit_16(969);
+emit_16(903);
+emit_16(969);
+emit_16(902);
+emit_16(969);
+emit_16(903);
+emit_16(970);
+emit_16(904);
+emit_16(970);
+emit_16(903);
+emit_16(970);
+emit_16(904);
+emit_16(971);
+emit_16(905);
+emit_16(971);
+emit_16(904);
+emit_16(971);
+emit_16(905);
+emit_16(972);
+emit_16(906);
+emit_16(972);
+emit_16(905);
+emit_16(972);
+emit_16(906);
+emit_16(973);
+emit_16(907);
+emit_16(973);
+emit_16(906);
+emit_16(973);
+emit_16(907);
+emit_16(974);
+emit_16(908);
+emit_16(974);
+emit_16(907);
+emit_16(974);
+emit_16(908);
+emit_16(975);
+emit_16(909);
+emit_16(975);
+emit_16(908);
+emit_16(975);
+emit_16(909);
+emit_16(976);
+emit_16(910);
+emit_16(976);
+emit_16(909);
+emit_16(976);
+emit_16(910);
+emit_16(977);
+emit_16(911);
+emit_16(977);
+emit_16(910);
+emit_16(977);
+emit_16(911);
+emit_16(978);
+emit_16(912);
+emit_16(978);
+emit_16(911);
+emit_16(978);
+emit_16(912);
+emit_16(979);
+emit_16(913);
+emit_16(979);
+emit_16(912);
+emit_16(979);
+emit_16(913);
+emit_16(980);
+emit_16(914);
+emit_16(980);
+emit_16(913);
+emit_16(980);
+emit_16(914);
+emit_16(981);
+emit_16(915);
+emit_16(981);
+emit_16(914);
+emit_16(981);
+emit_16(915);
+emit_16(982);
+emit_16(916);
+emit_16(982);
+emit_16(915);
+emit_16(982);
+emit_16(916);
+emit_16(983);
+emit_16(917);
+emit_16(983);
+emit_16(916);
+emit_16(983);
+emit_16(917);
+emit_16(984);
+emit_16(918);
+emit_16(984);
+emit_16(917);
+emit_16(984);
+emit_16(918);
+emit_16(985);
+emit_16(919);
+emit_16(985);
+emit_16(918);
+emit_16(985);
+emit_16(919);
+emit_16(986);
+emit_16(920);
+emit_16(986);
+emit_16(919);
+emit_16(986);
+emit_16(920);
+emit_16(987);
+emit_16(921);
+emit_16(987);
+emit_16(920);
+emit_16(987);
+emit_16(921);
+emit_16(988);
+emit_16(922);
+emit_16(988);
+emit_16(921);
+emit_16(988);
+emit_16(922);
+emit_16(989);
+emit_16(923);
+emit_16(989);
+emit_16(922);
+emit_16(990);
+emit_16(924);
+emit_16(991);
+emit_16(925);
+emit_16(991);
+emit_16(924);
+emit_16(991);
+emit_16(925);
+emit_16(992);
+emit_16(926);
+emit_16(992);
+emit_16(925);
+emit_16(992);
+emit_16(926);
+emit_16(993);
+emit_16(927);
+emit_16(993);
+emit_16(926);
+emit_16(993);
+emit_16(927);
+emit_16(994);
+emit_16(928);
+emit_16(994);
+emit_16(927);
+emit_16(994);
+emit_16(928);
+emit_16(995);
+emit_16(929);
+emit_16(995);
+emit_16(928);
+emit_16(995);
+emit_16(929);
+emit_16(996);
+emit_16(930);
+emit_16(996);
+emit_16(929);
+emit_16(996);
+emit_16(930);
+emit_16(997);
+emit_16(931);
+emit_16(997);
+emit_16(930);
+emit_16(997);
+emit_16(931);
+emit_16(998);
+emit_16(932);
+emit_16(998);
+emit_16(931);
+emit_16(998);
+emit_16(932);
+emit_16(999);
+emit_16(933);
+emit_16(999);
+emit_16(932);
+emit_16(999);
+emit_16(933);
+emit_16(1000);
+emit_16(934);
+emit_16(1000);
+emit_16(933);
+emit_16(1000);
+emit_16(934);
+emit_16(1001);
+emit_16(935);
+emit_16(1001);
+emit_16(934);
+emit_16(1001);
+emit_16(935);
+emit_16(1002);
+emit_16(936);
+emit_16(1002);
+emit_16(935);
+emit_16(1002);
+emit_16(936);
+emit_16(1003);
+emit_16(937);
+emit_16(1003);
+emit_16(936);
+emit_16(1003);
+emit_16(937);
+emit_16(1004);
+emit_16(938);
+emit_16(1004);
+emit_16(937);
+emit_16(1004);
+emit_16(938);
+emit_16(1005);
+emit_16(939);
+emit_16(1005);
+emit_16(938);
+emit_16(1005);
+emit_16(939);
+emit_16(1006);
+emit_16(940);
+emit_16(1006);
+emit_16(939);
+emit_16(1006);
+emit_16(940);
+emit_16(1007);
+emit_16(941);
+emit_16(1007);
+emit_16(940);
+emit_16(1007);
+emit_16(941);
+emit_16(1008);
+emit_16(942);
+emit_16(1008);
+emit_16(941);
+emit_16(1008);
+emit_16(942);
+emit_16(1009);
+emit_16(943);
+emit_16(1009);
+emit_16(942);
+emit_16(1009);
+emit_16(943);
+emit_16(1010);
+emit_16(944);
+emit_16(1010);
+emit_16(943);
+emit_16(1010);
+emit_16(944);
+emit_16(1011);
+emit_16(945);
+emit_16(1011);
+emit_16(944);
+emit_16(1011);
+emit_16(945);
+emit_16(1012);
+emit_16(946);
+emit_16(1012);
+emit_16(945);
+emit_16(1012);
+emit_16(946);
+emit_16(1013);
+emit_16(947);
+emit_16(1013);
+emit_16(946);
+emit_16(1013);
+emit_16(947);
+emit_16(1014);
+emit_16(948);
+emit_16(1014);
+emit_16(947);
+emit_16(1014);
+emit_16(948);
+emit_16(1015);
+emit_16(949);
+emit_16(1015);
+emit_16(948);
+emit_16(1015);
+emit_16(949);
+emit_16(1016);
+emit_16(950);
+emit_16(1016);
+emit_16(949);
+emit_16(1016);
+emit_16(950);
+emit_16(1017);
+emit_16(951);
+emit_16(1017);
+emit_16(950);
+emit_16(1017);
+emit_16(951);
+emit_16(1018);
+emit_16(952);
+emit_16(1018);
+emit_16(951);
+emit_16(1018);
+emit_16(952);
+emit_16(1019);
+emit_16(953);
+emit_16(1019);
+emit_16(952);
+emit_16(1019);
+emit_16(953);
+emit_16(1020);
+emit_16(954);
+emit_16(1020);
+emit_16(953);
+emit_16(1020);
+emit_16(954);
+emit_16(1021);
+emit_16(955);
+emit_16(1021);
+emit_16(954);
+emit_16(1021);
+emit_16(955);
+emit_16(1022);
+emit_16(956);
+emit_16(1022);
+emit_16(955);
+emit_16(1022);
+emit_16(956);
+emit_16(1023);
+emit_16(957);
+emit_16(1023);
+emit_16(956);
+emit_16(1023);
+emit_16(957);
+emit_16(1024);
+emit_16(958);
+emit_16(1024);
+emit_16(957);
+emit_16(1024);
+emit_16(958);
+emit_16(1025);
+emit_16(959);
+emit_16(1025);
+emit_16(958);
+emit_16(1025);
+emit_16(959);
+emit_16(1026);
+emit_16(960);
+emit_16(1026);
+emit_16(959);
+emit_16(1026);
+emit_16(960);
+emit_16(1027);
+emit_16(961);
+emit_16(1027);
+emit_16(960);
+emit_16(1027);
+emit_16(961);
+emit_16(1028);
+emit_16(962);
+emit_16(1028);
+emit_16(961);
+emit_16(1028);
+emit_16(962);
+emit_16(1029);
+emit_16(963);
+emit_16(1029);
+emit_16(962);
+emit_16(1029);
+emit_16(963);
+emit_16(1030);
+emit_16(964);
+emit_16(1030);
+emit_16(963);
+emit_16(1030);
+emit_16(964);
+emit_16(1031);
+emit_16(965);
+emit_16(1031);
+emit_16(964);
+emit_16(1031);
+emit_16(965);
+emit_16(1032);
+emit_16(966);
+emit_16(1032);
+emit_16(965);
+emit_16(1032);
+emit_16(966);
+emit_16(1033);
+emit_16(967);
+emit_16(1033);
+emit_16(966);
+emit_16(1033);
+emit_16(967);
+emit_16(1034);
+emit_16(968);
+emit_16(1034);
+emit_16(967);
+emit_16(1034);
+emit_16(968);
+emit_16(1035);
+emit_16(969);
+emit_16(1035);
+emit_16(968);
+emit_16(1035);
+emit_16(969);
+emit_16(1036);
+emit_16(970);
+emit_16(1036);
+emit_16(969);
+emit_16(1036);
+emit_16(970);
+emit_16(1037);
+emit_16(971);
+emit_16(1037);
+emit_16(970);
+emit_16(1037);
+emit_16(971);
+emit_16(1038);
+emit_16(972);
+emit_16(1038);
+emit_16(971);
+emit_16(1038);
+emit_16(972);
+emit_16(1039);
+emit_16(973);
+emit_16(1039);
+emit_16(972);
+emit_16(1039);
+emit_16(973);
+emit_16(1040);
+emit_16(974);
+emit_16(1040);
+emit_16(973);
+emit_16(1040);
+emit_16(974);
+emit_16(1041);
+emit_16(975);
+emit_16(1041);
+emit_16(974);
+emit_16(1041);
+emit_16(975);
+emit_16(1042);
+emit_16(976);
+emit_16(1042);
+emit_16(975);
+emit_16(1042);
+emit_16(976);
+emit_16(1043);
+emit_16(977);
+emit_16(1043);
+emit_16(976);
+emit_16(1043);
+emit_16(977);
+emit_16(1044);
+emit_16(978);
+emit_16(1044);
+emit_16(977);
+emit_16(1044);
+emit_16(978);
+emit_16(1045);
+emit_16(979);
+emit_16(1045);
+emit_16(978);
+emit_16(1045);
+emit_16(979);
+emit_16(1046);
+emit_16(980);
+emit_16(1046);
+emit_16(979);
+emit_16(1046);
+emit_16(980);
+emit_16(1047);
+emit_16(981);
+emit_16(1047);
+emit_16(980);
+emit_16(1047);
+emit_16(981);
+emit_16(1048);
+emit_16(982);
+emit_16(1048);
+emit_16(981);
+emit_16(1048);
+emit_16(982);
+emit_16(1049);
+emit_16(983);
+emit_16(1049);
+emit_16(982);
+emit_16(1049);
+emit_16(983);
+emit_16(1050);
+emit_16(984);
+emit_16(1050);
+emit_16(983);
+emit_16(1050);
+emit_16(984);
+emit_16(1051);
+emit_16(985);
+emit_16(1051);
+emit_16(984);
+emit_16(1051);
+emit_16(985);
+emit_16(1052);
+emit_16(986);
+emit_16(1052);
+emit_16(985);
+emit_16(1052);
+emit_16(986);
+emit_16(1053);
+emit_16(987);
+emit_16(1053);
+emit_16(986);
+emit_16(1053);
+emit_16(987);
+emit_16(1054);
+emit_16(988);
+emit_16(1054);
+emit_16(987);
+emit_16(1054);
+emit_16(988);
+emit_16(1055);
+emit_16(989);
+emit_16(1055);
+emit_16(988);
+emit_16(1056);
+emit_16(990);
+emit_16(1057);
+emit_16(991);
+emit_16(1057);
+emit_16(990);
+emit_16(1057);
+emit_16(991);
+emit_16(1058);
+emit_16(992);
+emit_16(1058);
+emit_16(991);
+emit_16(1058);
+emit_16(992);
+emit_16(1059);
+emit_16(993);
+emit_16(1059);
+emit_16(992);
+emit_16(1059);
+emit_16(993);
+emit_16(1060);
+emit_16(994);
+emit_16(1060);
+emit_16(993);
+emit_16(1060);
+emit_16(994);
+emit_16(1061);
+emit_16(995);
+emit_16(1061);
+emit_16(994);
+emit_16(1061);
+emit_16(995);
+emit_16(1062);
+emit_16(996);
+emit_16(1062);
+emit_16(995);
+emit_16(1062);
+emit_16(996);
+emit_16(1063);
+emit_16(997);
+emit_16(1063);
+emit_16(996);
+emit_16(1063);
+emit_16(997);
+emit_16(1064);
+emit_16(998);
+emit_16(1064);
+emit_16(997);
+emit_16(1064);
+emit_16(998);
+emit_16(1065);
+emit_16(999);
+emit_16(1065);
+emit_16(998);
+emit_16(1065);
+emit_16(999);
+emit_16(1066);
+emit_16(1000);
+emit_16(1066);
+emit_16(999);
+emit_16(1066);
+emit_16(1000);
+emit_16(1067);
+emit_16(1001);
+emit_16(1067);
+emit_16(1000);
+emit_16(1067);
+emit_16(1001);
+emit_16(1068);
+emit_16(1002);
+emit_16(1068);
+emit_16(1001);
+emit_16(1068);
+emit_16(1002);
+emit_16(1069);
+emit_16(1003);
+emit_16(1069);
+emit_16(1002);
+emit_16(1069);
+emit_16(1003);
+emit_16(1070);
+emit_16(1004);
+emit_16(1070);
+emit_16(1003);
+emit_16(1070);
+emit_16(1004);
+emit_16(1071);
+emit_16(1005);
+emit_16(1071);
+emit_16(1004);
+emit_16(1071);
+emit_16(1005);
+emit_16(1072);
+emit_16(1006);
+emit_16(1072);
+emit_16(1005);
+emit_16(1072);
+emit_16(1006);
+emit_16(1073);
+emit_16(1007);
+emit_16(1073);
+emit_16(1006);
+emit_16(1073);
+emit_16(1007);
+emit_16(1074);
+emit_16(1008);
+emit_16(1074);
+emit_16(1007);
+emit_16(1074);
+emit_16(1008);
+emit_16(1075);
+emit_16(1009);
+emit_16(1075);
+emit_16(1008);
+emit_16(1075);
+emit_16(1009);
+emit_16(1076);
+emit_16(1010);
+emit_16(1076);
+emit_16(1009);
+emit_16(1076);
+emit_16(1010);
+emit_16(1077);
+emit_16(1011);
+emit_16(1077);
+emit_16(1010);
+emit_16(1077);
+emit_16(1011);
+emit_16(1078);
+emit_16(1012);
+emit_16(1078);
+emit_16(1011);
+emit_16(1078);
+emit_16(1012);
+emit_16(1079);
+emit_16(1013);
+emit_16(1079);
+emit_16(1012);
+emit_16(1079);
+emit_16(1013);
+emit_16(1080);
+emit_16(1014);
+emit_16(1080);
+emit_16(1013);
+emit_16(1080);
+emit_16(1014);
+emit_16(1081);
+emit_16(1015);
+emit_16(1081);
+emit_16(1014);
+emit_16(1081);
+emit_16(1015);
+emit_16(1082);
+emit_16(1016);
+emit_16(1082);
+emit_16(1015);
+emit_16(1082);
+emit_16(1016);
+emit_16(1083);
+emit_16(1017);
+emit_16(1083);
+emit_16(1016);
+emit_16(1083);
+emit_16(1017);
+emit_16(1084);
+emit_16(1018);
+emit_16(1084);
+emit_16(1017);
+emit_16(1084);
+emit_16(1018);
+emit_16(1085);
+emit_16(1019);
+emit_16(1085);
+emit_16(1018);
+emit_16(1085);
+emit_16(1019);
+emit_16(1086);
+emit_16(1020);
+emit_16(1086);
+emit_16(1019);
+emit_16(1086);
+emit_16(1020);
+emit_16(1087);
+emit_16(1021);
+emit_16(1087);
+emit_16(1020);
+emit_16(1087);
+emit_16(1021);
+emit_16(1088);
+emit_16(1022);
+emit_16(1088);
+emit_16(1021);
+emit_16(1088);
+emit_16(1022);
+emit_16(1089);
+emit_16(1023);
+emit_16(1089);
+emit_16(1022);
+emit_16(1089);
+emit_16(1023);
+emit_16(1090);
+emit_16(1024);
+emit_16(1090);
+emit_16(1023);
+emit_16(1090);
+emit_16(1024);
+emit_16(1091);
+emit_16(1025);
+emit_16(1091);
+emit_16(1024);
+emit_16(1091);
+emit_16(1025);
+emit_16(1092);
+emit_16(1026);
+emit_16(1092);
+emit_16(1025);
+emit_16(1092);
+emit_16(1026);
+emit_16(1093);
+emit_16(1027);
+emit_16(1093);
+emit_16(1026);
+emit_16(1093);
+emit_16(1027);
+emit_16(1094);
+emit_16(1028);
+emit_16(1094);
+emit_16(1027);
+emit_16(1094);
+emit_16(1028);
+emit_16(1095);
+emit_16(1029);
+emit_16(1095);
+emit_16(1028);
+emit_16(1095);
+emit_16(1029);
+emit_16(1096);
+emit_16(1030);
+emit_16(1096);
+emit_16(1029);
+emit_16(1096);
+emit_16(1030);
+emit_16(1097);
+emit_16(1031);
+emit_16(1097);
+emit_16(1030);
+emit_16(1097);
+emit_16(1031);
+emit_16(1098);
+emit_16(1032);
+emit_16(1098);
+emit_16(1031);
+emit_16(1098);
+emit_16(1032);
+emit_16(1099);
+emit_16(1033);
+emit_16(1099);
+emit_16(1032);
+emit_16(1099);
+emit_16(1033);
+emit_16(1100);
+emit_16(1034);
+emit_16(1100);
+emit_16(1033);
+emit_16(1100);
+emit_16(1034);
+emit_16(1101);
+emit_16(1035);
+emit_16(1101);
+emit_16(1034);
+emit_16(1101);
+emit_16(1035);
+emit_16(1102);
+emit_16(1036);
+emit_16(1102);
+emit_16(1035);
+emit_16(1102);
+emit_16(1036);
+emit_16(1103);
+emit_16(1037);
+emit_16(1103);
+emit_16(1036);
+emit_16(1103);
+emit_16(1037);
+emit_16(1104);
+emit_16(1038);
+emit_16(1104);
+emit_16(1037);
+emit_16(1104);
+emit_16(1038);
+emit_16(1105);
+emit_16(1039);
+emit_16(1105);
+emit_16(1038);
+emit_16(1105);
+emit_16(1039);
+emit_16(1106);
+emit_16(1040);
+emit_16(1106);
+emit_16(1039);
+emit_16(1106);
+emit_16(1040);
+emit_16(1107);
+emit_16(1041);
+emit_16(1107);
+emit_16(1040);
+emit_16(1107);
+emit_16(1041);
+emit_16(1108);
+emit_16(1042);
+emit_16(1108);
+emit_16(1041);
+emit_16(1108);
+emit_16(1042);
+emit_16(1109);
+emit_16(1043);
+emit_16(1109);
+emit_16(1042);
+emit_16(1109);
+emit_16(1043);
+emit_16(1110);
+emit_16(1044);
+emit_16(1110);
+emit_16(1043);
+emit_16(1110);
+emit_16(1044);
+emit_16(1111);
+emit_16(1045);
+emit_16(1111);
+emit_16(1044);
+emit_16(1111);
+emit_16(1045);
+emit_16(1112);
+emit_16(1046);
+emit_16(1112);
+emit_16(1045);
+emit_16(1112);
+emit_16(1046);
+emit_16(1113);
+emit_16(1047);
+emit_16(1113);
+emit_16(1046);
+emit_16(1113);
+emit_16(1047);
+emit_16(1114);
+emit_16(1048);
+emit_16(1114);
+emit_16(1047);
+emit_16(1114);
+emit_16(1048);
+emit_16(1115);
+emit_16(1049);
+emit_16(1115);
+emit_16(1048);
+emit_16(1115);
+emit_16(1049);
+emit_16(1116);
+emit_16(1050);
+emit_16(1116);
+emit_16(1049);
+emit_16(1116);
+emit_16(1050);
+emit_16(1117);
+emit_16(1051);
+emit_16(1117);
+emit_16(1050);
+emit_16(1117);
+emit_16(1051);
+emit_16(1118);
+emit_16(1052);
+emit_16(1118);
+emit_16(1051);
+emit_16(1118);
+emit_16(1052);
+emit_16(1119);
+emit_16(1053);
+emit_16(1119);
+emit_16(1052);
+emit_16(1119);
+emit_16(1053);
+emit_16(1120);
+emit_16(1054);
+emit_16(1120);
+emit_16(1053);
+emit_16(1120);
+emit_16(1054);
+emit_16(1121);
+emit_16(1055);
+emit_16(1121);
+emit_16(1054);
+emit_16(1122);
+emit_16(1056);
+emit_16(1123);
+emit_16(1057);
+emit_16(1123);
+emit_16(1056);
+emit_16(1123);
+emit_16(1057);
+emit_16(1124);
+emit_16(1058);
+emit_16(1124);
+emit_16(1057);
+emit_16(1124);
+emit_16(1058);
+emit_16(1125);
+emit_16(1059);
+emit_16(1125);
+emit_16(1058);
+emit_16(1125);
+emit_16(1059);
+emit_16(1126);
+emit_16(1060);
+emit_16(1126);
+emit_16(1059);
+emit_16(1126);
+emit_16(1060);
+emit_16(1127);
+emit_16(1061);
+emit_16(1127);
+emit_16(1060);
+emit_16(1127);
+emit_16(1061);
+emit_16(1128);
+emit_16(1062);
+emit_16(1128);
+emit_16(1061);
+emit_16(1128);
+emit_16(1062);
+emit_16(1129);
+emit_16(1063);
+emit_16(1129);
+emit_16(1062);
+emit_16(1129);
+emit_16(1063);
+emit_16(1130);
+emit_16(1064);
+emit_16(1130);
+emit_16(1063);
+emit_16(1130);
+emit_16(1064);
+emit_16(1131);
+emit_16(1065);
+emit_16(1131);
+emit_16(1064);
+emit_16(1131);
+emit_16(1065);
+emit_16(1132);
+emit_16(1066);
+emit_16(1132);
+emit_16(1065);
+emit_16(1132);
+emit_16(1066);
+emit_16(1133);
+emit_16(1067);
+emit_16(1133);
+emit_16(1066);
+emit_16(1133);
+emit_16(1067);
+emit_16(1134);
+emit_16(1068);
+emit_16(1134);
+emit_16(1067);
+emit_16(1134);
+emit_16(1068);
+emit_16(1135);
+emit_16(1069);
+emit_16(1135);
+emit_16(1068);
+emit_16(1135);
+emit_16(1069);
+emit_16(1136);
+emit_16(1070);
+emit_16(1136);
+emit_16(1069);
+emit_16(1136);
+emit_16(1070);
+emit_16(1137);
+emit_16(1071);
+emit_16(1137);
+emit_16(1070);
+emit_16(1137);
+emit_16(1071);
+emit_16(1138);
+emit_16(1072);
+emit_16(1138);
+emit_16(1071);
+emit_16(1138);
+emit_16(1072);
+emit_16(1139);
+emit_16(1073);
+emit_16(1139);
+emit_16(1072);
+emit_16(1139);
+emit_16(1073);
+emit_16(1140);
+emit_16(1074);
+emit_16(1140);
+emit_16(1073);
+emit_16(1140);
+emit_16(1074);
+emit_16(1141);
+emit_16(1075);
+emit_16(1141);
+emit_16(1074);
+emit_16(1141);
+emit_16(1075);
+emit_16(1142);
+emit_16(1076);
+emit_16(1142);
+emit_16(1075);
+emit_16(1142);
+emit_16(1076);
+emit_16(1143);
+emit_16(1077);
+emit_16(1143);
+emit_16(1076);
+emit_16(1143);
+emit_16(1077);
+emit_16(1144);
+emit_16(1078);
+emit_16(1144);
+emit_16(1077);
+emit_16(1144);
+emit_16(1078);
+emit_16(1145);
+emit_16(1079);
+emit_16(1145);
+emit_16(1078);
+emit_16(1145);
+emit_16(1079);
+emit_16(1146);
+emit_16(1080);
+emit_16(1146);
+emit_16(1079);
+emit_16(1146);
+emit_16(1080);
+emit_16(1147);
+emit_16(1081);
+emit_16(1147);
+emit_16(1080);
+emit_16(1147);
+emit_16(1081);
+emit_16(1148);
+emit_16(1082);
+emit_16(1148);
+emit_16(1081);
+emit_16(1148);
+emit_16(1082);
+emit_16(1149);
+emit_16(1083);
+emit_16(1149);
+emit_16(1082);
+emit_16(1149);
+emit_16(1083);
+emit_16(1150);
+emit_16(1084);
+emit_16(1150);
+emit_16(1083);
+emit_16(1150);
+emit_16(1084);
+emit_16(1151);
+emit_16(1085);
+emit_16(1151);
+emit_16(1084);
+emit_16(1151);
+emit_16(1085);
+emit_16(1152);
+emit_16(1086);
+emit_16(1152);
+emit_16(1085);
+emit_16(1152);
+emit_16(1086);
+emit_16(1153);
+emit_16(1087);
+emit_16(1153);
+emit_16(1086);
+emit_16(1153);
+emit_16(1087);
+emit_16(1154);
+emit_16(1088);
+emit_16(1154);
+emit_16(1087);
+emit_16(1154);
+emit_16(1088);
+emit_16(1155);
+emit_16(1089);
+emit_16(1155);
+emit_16(1088);
+emit_16(1155);
+emit_16(1089);
+emit_16(1156);
+emit_16(1090);
+emit_16(1156);
+emit_16(1089);
+emit_16(1156);
+emit_16(1090);
+emit_16(1157);
+emit_16(1091);
+emit_16(1157);
+emit_16(1090);
+emit_16(1157);
+emit_16(1091);
+emit_16(1158);
+emit_16(1092);
+emit_16(1158);
+emit_16(1091);
+emit_16(1158);
+emit_16(1092);
+emit_16(1159);
+emit_16(1093);
+emit_16(1159);
+emit_16(1092);
+emit_16(1159);
+emit_16(1093);
+emit_16(1160);
+emit_16(1094);
+emit_16(1160);
+emit_16(1093);
+emit_16(1160);
+emit_16(1094);
+emit_16(1161);
+emit_16(1095);
+emit_16(1161);
+emit_16(1094);
+emit_16(1161);
+emit_16(1095);
+emit_16(1162);
+emit_16(1096);
+emit_16(1162);
+emit_16(1095);
+emit_16(1162);
+emit_16(1096);
+emit_16(1163);
+emit_16(1097);
+emit_16(1163);
+emit_16(1096);
+emit_16(1163);
+emit_16(1097);
+emit_16(1164);
+emit_16(1098);
+emit_16(1164);
+emit_16(1097);
+emit_16(1164);
+emit_16(1098);
+emit_16(1165);
+emit_16(1099);
+emit_16(1165);
+emit_16(1098);
+emit_16(1165);
+emit_16(1099);
+emit_16(1166);
+emit_16(1100);
+emit_16(1166);
+emit_16(1099);
+emit_16(1166);
+emit_16(1100);
+emit_16(1167);
+emit_16(1101);
+emit_16(1167);
+emit_16(1100);
+emit_16(1167);
+emit_16(1101);
+emit_16(1168);
+emit_16(1102);
+emit_16(1168);
+emit_16(1101);
+emit_16(1168);
+emit_16(1102);
+emit_16(1169);
+emit_16(1103);
+emit_16(1169);
+emit_16(1102);
+emit_16(1169);
+emit_16(1103);
+emit_16(1170);
+emit_16(1104);
+emit_16(1170);
+emit_16(1103);
+emit_16(1170);
+emit_16(1104);
+emit_16(1171);
+emit_16(1105);
+emit_16(1171);
+emit_16(1104);
+emit_16(1171);
+emit_16(1105);
+emit_16(1172);
+emit_16(1106);
+emit_16(1172);
+emit_16(1105);
+emit_16(1172);
+emit_16(1106);
+emit_16(1173);
+emit_16(1107);
+emit_16(1173);
+emit_16(1106);
+emit_16(1173);
+emit_16(1107);
+emit_16(1174);
+emit_16(1108);
+emit_16(1174);
+emit_16(1107);
+emit_16(1174);
+emit_16(1108);
+emit_16(1175);
+emit_16(1109);
+emit_16(1175);
+emit_16(1108);
+emit_16(1175);
+emit_16(1109);
+emit_16(1176);
+emit_16(1110);
+emit_16(1176);
+emit_16(1109);
+emit_16(1176);
+emit_16(1110);
+emit_16(1177);
+emit_16(1111);
+emit_16(1177);
+emit_16(1110);
+emit_16(1177);
+emit_16(1111);
+emit_16(1178);
+emit_16(1112);
+emit_16(1178);
+emit_16(1111);
+emit_16(1178);
+emit_16(1112);
+emit_16(1179);
+emit_16(1113);
+emit_16(1179);
+emit_16(1112);
+emit_16(1179);
+emit_16(1113);
+emit_16(1180);
+emit_16(1114);
+emit_16(1180);
+emit_16(1113);
+emit_16(1180);
+emit_16(1114);
+emit_16(1181);
+emit_16(1115);
+emit_16(1181);
+emit_16(1114);
+emit_16(1181);
+emit_16(1115);
+emit_16(1182);
+emit_16(1116);
+emit_16(1182);
+emit_16(1115);
+emit_16(1182);
+emit_16(1116);
+emit_16(1183);
+emit_16(1117);
+emit_16(1183);
+emit_16(1116);
+emit_16(1183);
+emit_16(1117);
+emit_16(1184);
+emit_16(1118);
+emit_16(1184);
+emit_16(1117);
+emit_16(1184);
+emit_16(1118);
+emit_16(1185);
+emit_16(1119);
+emit_16(1185);
+emit_16(1118);
+emit_16(1185);
+emit_16(1119);
+emit_16(1186);
+emit_16(1120);
+emit_16(1186);
+emit_16(1119);
+emit_16(1186);
+emit_16(1120);
+emit_16(1187);
+emit_16(1121);
+emit_16(1187);
+emit_16(1120);
+emit_16(1188);
+emit_16(1122);
+emit_16(1189);
+emit_16(1123);
+emit_16(1189);
+emit_16(1122);
+emit_16(1189);
+emit_16(1123);
+emit_16(1190);
+emit_16(1124);
+emit_16(1190);
+emit_16(1123);
+emit_16(1190);
+emit_16(1124);
+emit_16(1191);
+emit_16(1125);
+emit_16(1191);
+emit_16(1124);
+emit_16(1191);
+emit_16(1125);
+emit_16(1192);
+emit_16(1126);
+emit_16(1192);
+emit_16(1125);
+emit_16(1192);
+emit_16(1126);
+emit_16(1193);
+emit_16(1127);
+emit_16(1193);
+emit_16(1126);
+emit_16(1193);
+emit_16(1127);
+emit_16(1194);
+emit_16(1128);
+emit_16(1194);
+emit_16(1127);
+emit_16(1194);
+emit_16(1128);
+emit_16(1195);
+emit_16(1129);
+emit_16(1195);
+emit_16(1128);
+emit_16(1195);
+emit_16(1129);
+emit_16(1196);
+emit_16(1130);
+emit_16(1196);
+emit_16(1129);
+emit_16(1196);
+emit_16(1130);
+emit_16(1197);
+emit_16(1131);
+emit_16(1197);
+emit_16(1130);
+emit_16(1197);
+emit_16(1131);
+emit_16(1198);
+emit_16(1132);
+emit_16(1198);
+emit_16(1131);
+emit_16(1198);
+emit_16(1132);
+emit_16(1199);
+emit_16(1133);
+emit_16(1199);
+emit_16(1132);
+emit_16(1199);
+emit_16(1133);
+emit_16(1200);
+emit_16(1134);
+emit_16(1200);
+emit_16(1133);
+emit_16(1200);
+emit_16(1134);
+emit_16(1201);
+emit_16(1135);
+emit_16(1201);
+emit_16(1134);
+emit_16(1201);
+emit_16(1135);
+emit_16(1202);
+emit_16(1136);
+emit_16(1202);
+emit_16(1135);
+emit_16(1202);
+emit_16(1136);
+emit_16(1203);
+emit_16(1137);
+emit_16(1203);
+emit_16(1136);
+emit_16(1203);
+emit_16(1137);
+emit_16(1204);
+emit_16(1138);
+emit_16(1204);
+emit_16(1137);
+emit_16(1204);
+emit_16(1138);
+emit_16(1205);
+emit_16(1139);
+emit_16(1205);
+emit_16(1138);
+emit_16(1205);
+emit_16(1139);
+emit_16(1206);
+emit_16(1140);
+emit_16(1206);
+emit_16(1139);
+emit_16(1206);
+emit_16(1140);
+emit_16(1207);
+emit_16(1141);
+emit_16(1207);
+emit_16(1140);
+emit_16(1207);
+emit_16(1141);
+emit_16(1208);
+emit_16(1142);
+emit_16(1208);
+emit_16(1141);
+emit_16(1208);
+emit_16(1142);
+emit_16(1209);
+emit_16(1143);
+emit_16(1209);
+emit_16(1142);
+emit_16(1209);
+emit_16(1143);
+emit_16(1210);
+emit_16(1144);
+emit_16(1210);
+emit_16(1143);
+emit_16(1210);
+emit_16(1144);
+emit_16(1211);
+emit_16(1145);
+emit_16(1211);
+emit_16(1144);
+emit_16(1211);
+emit_16(1145);
+emit_16(1212);
+emit_16(1146);
+emit_16(1212);
+emit_16(1145);
+emit_16(1212);
+emit_16(1146);
+emit_16(1213);
+emit_16(1147);
+emit_16(1213);
+emit_16(1146);
+emit_16(1213);
+emit_16(1147);
+emit_16(1214);
+emit_16(1148);
+emit_16(1214);
+emit_16(1147);
+emit_16(1214);
+emit_16(1148);
+emit_16(1215);
+emit_16(1149);
+emit_16(1215);
+emit_16(1148);
+emit_16(1215);
+emit_16(1149);
+emit_16(1216);
+emit_16(1150);
+emit_16(1216);
+emit_16(1149);
+emit_16(1216);
+emit_16(1150);
+emit_16(1217);
+emit_16(1151);
+emit_16(1217);
+emit_16(1150);
+emit_16(1217);
+emit_16(1151);
+emit_16(1218);
+emit_16(1152);
+emit_16(1218);
+emit_16(1151);
+emit_16(1218);
+emit_16(1152);
+emit_16(1219);
+emit_16(1153);
+emit_16(1219);
+emit_16(1152);
+emit_16(1219);
+emit_16(1153);
+emit_16(1220);
+emit_16(1154);
+emit_16(1220);
+emit_16(1153);
+emit_16(1220);
+emit_16(1154);
+emit_16(1221);
+emit_16(1155);
+emit_16(1221);
+emit_16(1154);
+emit_16(1221);
+emit_16(1155);
+emit_16(1222);
+emit_16(1156);
+emit_16(1222);
+emit_16(1155);
+emit_16(1222);
+emit_16(1156);
+emit_16(1223);
+emit_16(1157);
+emit_16(1223);
+emit_16(1156);
+emit_16(1223);
+emit_16(1157);
+emit_16(1224);
+emit_16(1158);
+emit_16(1224);
+emit_16(1157);
+emit_16(1224);
+emit_16(1158);
+emit_16(1225);
+emit_16(1159);
+emit_16(1225);
+emit_16(1158);
+emit_16(1225);
+emit_16(1159);
+emit_16(1226);
+emit_16(1160);
+emit_16(1226);
+emit_16(1159);
+emit_16(1226);
+emit_16(1160);
+emit_16(1227);
+emit_16(1161);
+emit_16(1227);
+emit_16(1160);
+emit_16(1227);
+emit_16(1161);
+emit_16(1228);
+emit_16(1162);
+emit_16(1228);
+emit_16(1161);
+emit_16(1228);
+emit_16(1162);
+emit_16(1229);
+emit_16(1163);
+emit_16(1229);
+emit_16(1162);
+emit_16(1229);
+emit_16(1163);
+emit_16(1230);
+emit_16(1164);
+emit_16(1230);
+emit_16(1163);
+emit_16(1230);
+emit_16(1164);
+emit_16(1231);
+emit_16(1165);
+emit_16(1231);
+emit_16(1164);
+emit_16(1231);
+emit_16(1165);
+emit_16(1232);
+emit_16(1166);
+emit_16(1232);
+emit_16(1165);
+emit_16(1232);
+emit_16(1166);
+emit_16(1233);
+emit_16(1167);
+emit_16(1233);
+emit_16(1166);
+emit_16(1233);
+emit_16(1167);
+emit_16(1234);
+emit_16(1168);
+emit_16(1234);
+emit_16(1167);
+emit_16(1234);
+emit_16(1168);
+emit_16(1235);
+emit_16(1169);
+emit_16(1235);
+emit_16(1168);
+emit_16(1235);
+emit_16(1169);
+emit_16(1236);
+emit_16(1170);
+emit_16(1236);
+emit_16(1169);
+emit_16(1236);
+emit_16(1170);
+emit_16(1237);
+emit_16(1171);
+emit_16(1237);
+emit_16(1170);
+emit_16(1237);
+emit_16(1171);
+emit_16(1238);
+emit_16(1172);
+emit_16(1238);
+emit_16(1171);
+emit_16(1238);
+emit_16(1172);
+emit_16(1239);
+emit_16(1173);
+emit_16(1239);
+emit_16(1172);
+emit_16(1239);
+emit_16(1173);
+emit_16(1240);
+emit_16(1174);
+emit_16(1240);
+emit_16(1173);
+emit_16(1240);
+emit_16(1174);
+emit_16(1241);
+emit_16(1175);
+emit_16(1241);
+emit_16(1174);
+emit_16(1241);
+emit_16(1175);
+emit_16(1242);
+emit_16(1176);
+emit_16(1242);
+emit_16(1175);
+emit_16(1242);
+emit_16(1176);
+emit_16(1243);
+emit_16(1177);
+emit_16(1243);
+emit_16(1176);
+emit_16(1243);
+emit_16(1177);
+emit_16(1244);
+emit_16(1178);
+emit_16(1244);
+emit_16(1177);
+emit_16(1244);
+emit_16(1178);
+emit_16(1245);
+emit_16(1179);
+emit_16(1245);
+emit_16(1178);
+emit_16(1245);
+emit_16(1179);
+emit_16(1246);
+emit_16(1180);
+emit_16(1246);
+emit_16(1179);
+emit_16(1246);
+emit_16(1180);
+emit_16(1247);
+emit_16(1181);
+emit_16(1247);
+emit_16(1180);
+emit_16(1247);
+emit_16(1181);
+emit_16(1248);
+emit_16(1182);
+emit_16(1248);
+emit_16(1181);
+emit_16(1248);
+emit_16(1182);
+emit_16(1249);
+emit_16(1183);
+emit_16(1249);
+emit_16(1182);
+emit_16(1249);
+emit_16(1183);
+emit_16(1250);
+emit_16(1184);
+emit_16(1250);
+emit_16(1183);
+emit_16(1250);
+emit_16(1184);
+emit_16(1251);
+emit_16(1185);
+emit_16(1251);
+emit_16(1184);
+emit_16(1251);
+emit_16(1185);
+emit_16(1252);
+emit_16(1186);
+emit_16(1252);
+emit_16(1185);
+emit_16(1252);
+emit_16(1186);
+emit_16(1253);
+emit_16(1187);
+emit_16(1253);
+emit_16(1186);
+emit_16(1254);
+emit_16(1188);
+emit_16(1255);
+emit_16(1189);
+emit_16(1255);
+emit_16(1188);
+emit_16(1255);
+emit_16(1189);
+emit_16(1256);
+emit_16(1190);
+emit_16(1256);
+emit_16(1189);
+emit_16(1256);
+emit_16(1190);
+emit_16(1257);
+emit_16(1191);
+emit_16(1257);
+emit_16(1190);
+emit_16(1257);
+emit_16(1191);
+emit_16(1258);
+emit_16(1192);
+emit_16(1258);
+emit_16(1191);
+emit_16(1258);
+emit_16(1192);
+emit_16(1259);
+emit_16(1193);
+emit_16(1259);
+emit_16(1192);
+emit_16(1259);
+emit_16(1193);
+emit_16(1260);
+emit_16(1194);
+emit_16(1260);
+emit_16(1193);
+emit_16(1260);
+emit_16(1194);
+emit_16(1261);
+emit_16(1195);
+emit_16(1261);
+emit_16(1194);
+emit_16(1261);
+emit_16(1195);
+emit_16(1262);
+emit_16(1196);
+emit_16(1262);
+emit_16(1195);
+emit_16(1262);
+emit_16(1196);
+emit_16(1263);
+emit_16(1197);
+emit_16(1263);
+emit_16(1196);
+emit_16(1263);
+emit_16(1197);
+emit_16(1264);
+emit_16(1198);
+emit_16(1264);
+emit_16(1197);
+emit_16(1264);
+emit_16(1198);
+emit_16(1265);
+emit_16(1199);
+emit_16(1265);
+emit_16(1198);
+emit_16(1265);
+emit_16(1199);
+emit_16(1266);
+emit_16(1200);
+emit_16(1266);
+emit_16(1199);
+emit_16(1266);
+emit_16(1200);
+emit_16(1267);
+emit_16(1201);
+emit_16(1267);
+emit_16(1200);
+emit_16(1267);
+emit_16(1201);
+emit_16(1268);
+emit_16(1202);
+emit_16(1268);
+emit_16(1201);
+emit_16(1268);
+emit_16(1202);
+emit_16(1269);
+emit_16(1203);
+emit_16(1269);
+emit_16(1202);
+emit_16(1269);
+emit_16(1203);
+emit_16(1270);
+emit_16(1204);
+emit_16(1270);
+emit_16(1203);
+emit_16(1270);
+emit_16(1204);
+emit_16(1271);
+emit_16(1205);
+emit_16(1271);
+emit_16(1204);
+emit_16(1271);
+emit_16(1205);
+emit_16(1272);
+emit_16(1206);
+emit_16(1272);
+emit_16(1205);
+emit_16(1272);
+emit_16(1206);
+emit_16(1273);
+emit_16(1207);
+emit_16(1273);
+emit_16(1206);
+emit_16(1273);
+emit_16(1207);
+emit_16(1274);
+emit_16(1208);
+emit_16(1274);
+emit_16(1207);
+emit_16(1274);
+emit_16(1208);
+emit_16(1275);
+emit_16(1209);
+emit_16(1275);
+emit_16(1208);
+emit_16(1275);
+emit_16(1209);
+emit_16(1276);
+emit_16(1210);
+emit_16(1276);
+emit_16(1209);
+emit_16(1276);
+emit_16(1210);
+emit_16(1277);
+emit_16(1211);
+emit_16(1277);
+emit_16(1210);
+emit_16(1277);
+emit_16(1211);
+emit_16(1278);
+emit_16(1212);
+emit_16(1278);
+emit_16(1211);
+emit_16(1278);
+emit_16(1212);
+emit_16(1279);
+emit_16(1213);
+emit_16(1279);
+emit_16(1212);
+emit_16(1279);
+emit_16(1213);
+emit_16(1280);
+emit_16(1214);
+emit_16(1280);
+emit_16(1213);
+emit_16(1280);
+emit_16(1214);
+emit_16(1281);
+emit_16(1215);
+emit_16(1281);
+emit_16(1214);
+emit_16(1281);
+emit_16(1215);
+emit_16(1282);
+emit_16(1216);
+emit_16(1282);
+emit_16(1215);
+emit_16(1282);
+emit_16(1216);
+emit_16(1283);
+emit_16(1217);
+emit_16(1283);
+emit_16(1216);
+emit_16(1283);
+emit_16(1217);
+emit_16(1284);
+emit_16(1218);
+emit_16(1284);
+emit_16(1217);
+emit_16(1284);
+emit_16(1218);
+emit_16(1285);
+emit_16(1219);
+emit_16(1285);
+emit_16(1218);
+emit_16(1285);
+emit_16(1219);
+emit_16(1286);
+emit_16(1220);
+emit_16(1286);
+emit_16(1219);
+emit_16(1286);
+emit_16(1220);
+emit_16(1287);
+emit_16(1221);
+emit_16(1287);
+emit_16(1220);
+emit_16(1287);
+emit_16(1221);
+emit_16(1288);
+emit_16(1222);
+emit_16(1288);
+emit_16(1221);
+emit_16(1288);
+emit_16(1222);
+emit_16(1289);
+emit_16(1223);
+emit_16(1289);
+emit_16(1222);
+emit_16(1289);
+emit_16(1223);
+emit_16(1290);
+emit_16(1224);
+emit_16(1290);
+emit_16(1223);
+emit_16(1290);
+emit_16(1224);
+emit_16(1291);
+emit_16(1225);
+emit_16(1291);
+emit_16(1224);
+emit_16(1291);
+emit_16(1225);
+emit_16(1292);
+emit_16(1226);
+emit_16(1292);
+emit_16(1225);
+emit_16(1292);
+emit_16(1226);
+emit_16(1293);
+emit_16(1227);
+emit_16(1293);
+emit_16(1226);
+emit_16(1293);
+emit_16(1227);
+emit_16(1294);
+emit_16(1228);
+emit_16(1294);
+emit_16(1227);
+emit_16(1294);
+emit_16(1228);
+emit_16(1295);
+emit_16(1229);
+emit_16(1295);
+emit_16(1228);
+emit_16(1295);
+emit_16(1229);
+emit_16(1296);
+emit_16(1230);
+emit_16(1296);
+emit_16(1229);
+emit_16(1296);
+emit_16(1230);
+emit_16(1297);
+emit_16(1231);
+emit_16(1297);
+emit_16(1230);
+emit_16(1297);
+emit_16(1231);
+emit_16(1298);
+emit_16(1232);
+emit_16(1298);
+emit_16(1231);
+emit_16(1298);
+emit_16(1232);
+emit_16(1299);
+emit_16(1233);
+emit_16(1299);
+emit_16(1232);
+emit_16(1299);
+emit_16(1233);
+emit_16(1300);
+emit_16(1234);
+emit_16(1300);
+emit_16(1233);
+emit_16(1300);
+emit_16(1234);
+emit_16(1301);
+emit_16(1235);
+emit_16(1301);
+emit_16(1234);
+emit_16(1301);
+emit_16(1235);
+emit_16(1302);
+emit_16(1236);
+emit_16(1302);
+emit_16(1235);
+emit_16(1302);
+emit_16(1236);
+emit_16(1303);
+emit_16(1237);
+emit_16(1303);
+emit_16(1236);
+emit_16(1303);
+emit_16(1237);
+emit_16(1304);
+emit_16(1238);
+emit_16(1304);
+emit_16(1237);
+emit_16(1304);
+emit_16(1238);
+emit_16(1305);
+emit_16(1239);
+emit_16(1305);
+emit_16(1238);
+emit_16(1305);
+emit_16(1239);
+emit_16(1306);
+emit_16(1240);
+emit_16(1306);
+emit_16(1239);
+emit_16(1306);
+emit_16(1240);
+emit_16(1307);
+emit_16(1241);
+emit_16(1307);
+emit_16(1240);
+emit_16(1307);
+emit_16(1241);
+emit_16(1308);
+emit_16(1242);
+emit_16(1308);
+emit_16(1241);
+emit_16(1308);
+emit_16(1242);
+emit_16(1309);
+emit_16(1243);
+emit_16(1309);
+emit_16(1242);
+emit_16(1309);
+emit_16(1243);
+emit_16(1310);
+emit_16(1244);
+emit_16(1310);
+emit_16(1243);
+emit_16(1310);
+emit_16(1244);
+emit_16(1311);
+emit_16(1245);
+emit_16(1311);
+emit_16(1244);
+emit_16(1311);
+emit_16(1245);
+emit_16(1312);
+emit_16(1246);
+emit_16(1312);
+emit_16(1245);
+emit_16(1312);
+emit_16(1246);
+emit_16(1313);
+emit_16(1247);
+emit_16(1313);
+emit_16(1246);
+emit_16(1313);
+emit_16(1247);
+emit_16(1314);
+emit_16(1248);
+emit_16(1314);
+emit_16(1247);
+emit_16(1314);
+emit_16(1248);
+emit_16(1315);
+emit_16(1249);
+emit_16(1315);
+emit_16(1248);
+emit_16(1315);
+emit_16(1249);
+emit_16(1316);
+emit_16(1250);
+emit_16(1316);
+emit_16(1249);
+emit_16(1316);
+emit_16(1250);
+emit_16(1317);
+emit_16(1251);
+emit_16(1317);
+emit_16(1250);
+emit_16(1317);
+emit_16(1251);
+emit_16(1318);
+emit_16(1252);
+emit_16(1318);
+emit_16(1251);
+emit_16(1318);
+emit_16(1252);
+emit_16(1319);
+emit_16(1253);
+emit_16(1319);
+emit_16(1252);
+emit_16(1320);
+emit_16(1254);
+emit_16(1321);
+emit_16(1255);
+emit_16(1321);
+emit_16(1254);
+emit_16(1321);
+emit_16(1255);
+emit_16(1322);
+emit_16(1256);
+emit_16(1322);
+emit_16(1255);
+emit_16(1322);
+emit_16(1256);
+emit_16(1323);
+emit_16(1257);
+emit_16(1323);
+emit_16(1256);
+emit_16(1323);
+emit_16(1257);
+emit_16(1324);
+emit_16(1258);
+emit_16(1324);
+emit_16(1257);
+emit_16(1324);
+emit_16(1258);
+emit_16(1325);
+emit_16(1259);
+emit_16(1325);
+emit_16(1258);
+emit_16(1325);
+emit_16(1259);
+emit_16(1326);
+emit_16(1260);
+emit_16(1326);
+emit_16(1259);
+emit_16(1326);
+emit_16(1260);
+emit_16(1327);
+emit_16(1261);
+emit_16(1327);
+emit_16(1260);
+emit_16(1327);
+emit_16(1261);
+emit_16(1328);
+emit_16(1262);
+emit_16(1328);
+emit_16(1261);
+emit_16(1328);
+emit_16(1262);
+emit_16(1329);
+emit_16(1263);
+emit_16(1329);
+emit_16(1262);
+emit_16(1329);
+emit_16(1263);
+emit_16(1330);
+emit_16(1264);
+emit_16(1330);
+emit_16(1263);
+emit_16(1330);
+emit_16(1264);
+emit_16(1331);
+emit_16(1265);
+emit_16(1331);
+emit_16(1264);
+emit_16(1331);
+emit_16(1265);
+emit_16(1332);
+emit_16(1266);
+emit_16(1332);
+emit_16(1265);
+emit_16(1332);
+emit_16(1266);
+emit_16(1333);
+emit_16(1267);
+emit_16(1333);
+emit_16(1266);
+emit_16(1333);
+emit_16(1267);
+emit_16(1334);
+emit_16(1268);
+emit_16(1334);
+emit_16(1267);
+emit_16(1334);
+emit_16(1268);
+emit_16(1335);
+emit_16(1269);
+emit_16(1335);
+emit_16(1268);
+emit_16(1335);
+emit_16(1269);
+emit_16(1336);
+emit_16(1270);
+emit_16(1336);
+emit_16(1269);
+emit_16(1336);
+emit_16(1270);
+emit_16(1337);
+emit_16(1271);
+emit_16(1337);
+emit_16(1270);
+emit_16(1337);
+emit_16(1271);
+emit_16(1338);
+emit_16(1272);
+emit_16(1338);
+emit_16(1271);
+emit_16(1338);
+emit_16(1272);
+emit_16(1339);
+emit_16(1273);
+emit_16(1339);
+emit_16(1272);
+emit_16(1339);
+emit_16(1273);
+emit_16(1340);
+emit_16(1274);
+emit_16(1340);
+emit_16(1273);
+emit_16(1340);
+emit_16(1274);
+emit_16(1341);
+emit_16(1275);
+emit_16(1341);
+emit_16(1274);
+emit_16(1341);
+emit_16(1275);
+emit_16(1342);
+emit_16(1276);
+emit_16(1342);
+emit_16(1275);
+emit_16(1342);
+emit_16(1276);
+emit_16(1343);
+emit_16(1277);
+emit_16(1343);
+emit_16(1276);
+emit_16(1343);
+emit_16(1277);
+emit_16(1344);
+emit_16(1278);
+emit_16(1344);
+emit_16(1277);
+emit_16(1344);
+emit_16(1278);
+emit_16(1345);
+emit_16(1279);
+emit_16(1345);
+emit_16(1278);
+emit_16(1345);
+emit_16(1279);
+emit_16(1346);
+emit_16(1280);
+emit_16(1346);
+emit_16(1279);
+emit_16(1346);
+emit_16(1280);
+emit_16(1347);
+emit_16(1281);
+emit_16(1347);
+emit_16(1280);
+emit_16(1347);
+emit_16(1281);
+emit_16(1348);
+emit_16(1282);
+emit_16(1348);
+emit_16(1281);
+emit_16(1348);
+emit_16(1282);
+emit_16(1349);
+emit_16(1283);
+emit_16(1349);
+emit_16(1282);
+emit_16(1349);
+emit_16(1283);
+emit_16(1350);
+emit_16(1284);
+emit_16(1350);
+emit_16(1283);
+emit_16(1350);
+emit_16(1284);
+emit_16(1351);
+emit_16(1285);
+emit_16(1351);
+emit_16(1284);
+emit_16(1351);
+emit_16(1285);
+emit_16(1352);
+emit_16(1286);
+emit_16(1352);
+emit_16(1285);
+emit_16(1352);
+emit_16(1286);
+emit_16(1353);
+emit_16(1287);
+emit_16(1353);
+emit_16(1286);
+emit_16(1353);
+emit_16(1287);
+emit_16(1354);
+emit_16(1288);
+emit_16(1354);
+emit_16(1287);
+emit_16(1354);
+emit_16(1288);
+emit_16(1355);
+emit_16(1289);
+emit_16(1355);
+emit_16(1288);
+emit_16(1355);
+emit_16(1289);
+emit_16(1356);
+emit_16(1290);
+emit_16(1356);
+emit_16(1289);
+emit_16(1356);
+emit_16(1290);
+emit_16(1357);
+emit_16(1291);
+emit_16(1357);
+emit_16(1290);
+emit_16(1357);
+emit_16(1291);
+emit_16(1358);
+emit_16(1292);
+emit_16(1358);
+emit_16(1291);
+emit_16(1358);
+emit_16(1292);
+emit_16(1359);
+emit_16(1293);
+emit_16(1359);
+emit_16(1292);
+emit_16(1359);
+emit_16(1293);
+emit_16(1360);
+emit_16(1294);
+emit_16(1360);
+emit_16(1293);
+emit_16(1360);
+emit_16(1294);
+emit_16(1361);
+emit_16(1295);
+emit_16(1361);
+emit_16(1294);
+emit_16(1361);
+emit_16(1295);
+emit_16(1362);
+emit_16(1296);
+emit_16(1362);
+emit_16(1295);
+emit_16(1362);
+emit_16(1296);
+emit_16(1363);
+emit_16(1297);
+emit_16(1363);
+emit_16(1296);
+emit_16(1363);
+emit_16(1297);
+emit_16(1364);
+emit_16(1298);
+emit_16(1364);
+emit_16(1297);
+emit_16(1364);
+emit_16(1298);
+emit_16(1365);
+emit_16(1299);
+emit_16(1365);
+emit_16(1298);
+emit_16(1365);
+emit_16(1299);
+emit_16(1366);
+emit_16(1300);
+emit_16(1366);
+emit_16(1299);
+emit_16(1366);
+emit_16(1300);
+emit_16(1367);
+emit_16(1301);
+emit_16(1367);
+emit_16(1300);
+emit_16(1367);
+emit_16(1301);
+emit_16(1368);
+emit_16(1302);
+emit_16(1368);
+emit_16(1301);
+emit_16(1368);
+emit_16(1302);
+emit_16(1369);
+emit_16(1303);
+emit_16(1369);
+emit_16(1302);
+emit_16(1369);
+emit_16(1303);
+emit_16(1370);
+emit_16(1304);
+emit_16(1370);
+emit_16(1303);
+emit_16(1370);
+emit_16(1304);
+emit_16(1371);
+emit_16(1305);
+emit_16(1371);
+emit_16(1304);
+emit_16(1371);
+emit_16(1305);
+emit_16(1372);
+emit_16(1306);
+emit_16(1372);
+emit_16(1305);
+emit_16(1372);
+emit_16(1306);
+emit_16(1373);
+emit_16(1307);
+emit_16(1373);
+emit_16(1306);
+emit_16(1373);
+emit_16(1307);
+emit_16(1374);
+emit_16(1308);
+emit_16(1374);
+emit_16(1307);
+emit_16(1374);
+emit_16(1308);
+emit_16(1375);
+emit_16(1309);
+emit_16(1375);
+emit_16(1308);
+emit_16(1375);
+emit_16(1309);
+emit_16(1376);
+emit_16(1310);
+emit_16(1376);
+emit_16(1309);
+emit_16(1376);
+emit_16(1310);
+emit_16(1377);
+emit_16(1311);
+emit_16(1377);
+emit_16(1310);
+emit_16(1377);
+emit_16(1311);
+emit_16(1378);
+emit_16(1312);
+emit_16(1378);
+emit_16(1311);
+emit_16(1378);
+emit_16(1312);
+emit_16(1379);
+emit_16(1313);
+emit_16(1379);
+emit_16(1312);
+emit_16(1379);
+emit_16(1313);
+emit_16(1380);
+emit_16(1314);
+emit_16(1380);
+emit_16(1313);
+emit_16(1380);
+emit_16(1314);
+emit_16(1381);
+emit_16(1315);
+emit_16(1381);
+emit_16(1314);
+emit_16(1381);
+emit_16(1315);
+emit_16(1382);
+emit_16(1316);
+emit_16(1382);
+emit_16(1315);
+emit_16(1382);
+emit_16(1316);
+emit_16(1383);
+emit_16(1317);
+emit_16(1383);
+emit_16(1316);
+emit_16(1383);
+emit_16(1317);
+emit_16(1384);
+emit_16(1318);
+emit_16(1384);
+emit_16(1317);
+emit_16(1384);
+emit_16(1318);
+emit_16(1385);
+emit_16(1319);
+emit_16(1385);
+emit_16(1318);
+emit_16(1386);
+emit_16(1320);
+emit_16(1387);
+emit_16(1321);
+emit_16(1387);
+emit_16(1320);
+emit_16(1387);
+emit_16(1321);
+emit_16(1388);
+emit_16(1322);
+emit_16(1388);
+emit_16(1321);
+emit_16(1388);
+emit_16(1322);
+emit_16(1389);
+emit_16(1323);
+emit_16(1389);
+emit_16(1322);
+emit_16(1389);
+emit_16(1323);
+emit_16(1390);
+emit_16(1324);
+emit_16(1390);
+emit_16(1323);
+emit_16(1390);
+emit_16(1324);
+emit_16(1391);
+emit_16(1325);
+emit_16(1391);
+emit_16(1324);
+emit_16(1391);
+emit_16(1325);
+emit_16(1392);
+emit_16(1326);
+emit_16(1392);
+emit_16(1325);
+emit_16(1392);
+emit_16(1326);
+emit_16(1393);
+emit_16(1327);
+emit_16(1393);
+emit_16(1326);
+emit_16(1393);
+emit_16(1327);
+emit_16(1394);
+emit_16(1328);
+emit_16(1394);
+emit_16(1327);
+emit_16(1394);
+emit_16(1328);
+emit_16(1395);
+emit_16(1329);
+emit_16(1395);
+emit_16(1328);
+emit_16(1395);
+emit_16(1329);
+emit_16(1396);
+emit_16(1330);
+emit_16(1396);
+emit_16(1329);
+emit_16(1396);
+emit_16(1330);
+emit_16(1397);
+emit_16(1331);
+emit_16(1397);
+emit_16(1330);
+emit_16(1397);
+emit_16(1331);
+emit_16(1398);
+emit_16(1332);
+emit_16(1398);
+emit_16(1331);
+emit_16(1398);
+emit_16(1332);
+emit_16(1399);
+emit_16(1333);
+emit_16(1399);
+emit_16(1332);
+emit_16(1399);
+emit_16(1333);
+emit_16(1400);
+emit_16(1334);
+emit_16(1400);
+emit_16(1333);
+emit_16(1400);
+emit_16(1334);
+emit_16(1401);
+emit_16(1335);
+emit_16(1401);
+emit_16(1334);
+emit_16(1401);
+emit_16(1335);
+emit_16(1402);
+emit_16(1336);
+emit_16(1402);
+emit_16(1335);
+emit_16(1402);
+emit_16(1336);
+emit_16(1403);
+emit_16(1337);
+emit_16(1403);
+emit_16(1336);
+emit_16(1403);
+emit_16(1337);
+emit_16(1404);
+emit_16(1338);
+emit_16(1404);
+emit_16(1337);
+emit_16(1404);
+emit_16(1338);
+emit_16(1405);
+emit_16(1339);
+emit_16(1405);
+emit_16(1338);
+emit_16(1405);
+emit_16(1339);
+emit_16(1406);
+emit_16(1340);
+emit_16(1406);
+emit_16(1339);
+emit_16(1406);
+emit_16(1340);
+emit_16(1407);
+emit_16(1341);
+emit_16(1407);
+emit_16(1340);
+emit_16(1407);
+emit_16(1341);
+emit_16(1408);
+emit_16(1342);
+emit_16(1408);
+emit_16(1341);
+emit_16(1408);
+emit_16(1342);
+emit_16(1409);
+emit_16(1343);
+emit_16(1409);
+emit_16(1342);
+emit_16(1409);
+emit_16(1343);
+emit_16(1410);
+emit_16(1344);
+emit_16(1410);
+emit_16(1343);
+emit_16(1410);
+emit_16(1344);
+emit_16(1411);
+emit_16(1345);
+emit_16(1411);
+emit_16(1344);
+emit_16(1411);
+emit_16(1345);
+emit_16(1412);
+emit_16(1346);
+emit_16(1412);
+emit_16(1345);
+emit_16(1412);
+emit_16(1346);
+emit_16(1413);
+emit_16(1347);
+emit_16(1413);
+emit_16(1346);
+emit_16(1413);
+emit_16(1347);
+emit_16(1414);
+emit_16(1348);
+emit_16(1414);
+emit_16(1347);
+emit_16(1414);
+emit_16(1348);
+emit_16(1415);
+emit_16(1349);
+emit_16(1415);
+emit_16(1348);
+emit_16(1415);
+emit_16(1349);
+emit_16(1416);
+emit_16(1350);
+emit_16(1416);
+emit_16(1349);
+emit_16(1416);
+emit_16(1350);
+emit_16(1417);
+emit_16(1351);
+emit_16(1417);
+emit_16(1350);
+emit_16(1417);
+emit_16(1351);
+emit_16(1418);
+emit_16(1352);
+emit_16(1418);
+emit_16(1351);
+emit_16(1418);
+emit_16(1352);
+emit_16(1419);
+emit_16(1353);
+emit_16(1419);
+emit_16(1352);
+emit_16(1419);
+emit_16(1353);
+emit_16(1420);
+emit_16(1354);
+emit_16(1420);
+emit_16(1353);
+emit_16(1420);
+emit_16(1354);
+emit_16(1421);
+emit_16(1355);
+emit_16(1421);
+emit_16(1354);
+emit_16(1421);
+emit_16(1355);
+emit_16(1422);
+emit_16(1356);
+emit_16(1422);
+emit_16(1355);
+emit_16(1422);
+emit_16(1356);
+emit_16(1423);
+emit_16(1357);
+emit_16(1423);
+emit_16(1356);
+emit_16(1423);
+emit_16(1357);
+emit_16(1424);
+emit_16(1358);
+emit_16(1424);
+emit_16(1357);
+emit_16(1424);
+emit_16(1358);
+emit_16(1425);
+emit_16(1359);
+emit_16(1425);
+emit_16(1358);
+emit_16(1425);
+emit_16(1359);
+emit_16(1426);
+emit_16(1360);
+emit_16(1426);
+emit_16(1359);
+emit_16(1426);
+emit_16(1360);
+emit_16(1427);
+emit_16(1361);
+emit_16(1427);
+emit_16(1360);
+emit_16(1427);
+emit_16(1361);
+emit_16(1428);
+emit_16(1362);
+emit_16(1428);
+emit_16(1361);
+emit_16(1428);
+emit_16(1362);
+emit_16(1429);
+emit_16(1363);
+emit_16(1429);
+emit_16(1362);
+emit_16(1429);
+emit_16(1363);
+emit_16(1430);
+emit_16(1364);
+emit_16(1430);
+emit_16(1363);
+emit_16(1430);
+emit_16(1364);
+emit_16(1431);
+emit_16(1365);
+emit_16(1431);
+emit_16(1364);
+emit_16(1431);
+emit_16(1365);
+emit_16(1432);
+emit_16(1366);
+emit_16(1432);
+emit_16(1365);
+emit_16(1432);
+emit_16(1366);
+emit_16(1433);
+emit_16(1367);
+emit_16(1433);
+emit_16(1366);
+emit_16(1433);
+emit_16(1367);
+emit_16(1434);
+emit_16(1368);
+emit_16(1434);
+emit_16(1367);
+emit_16(1434);
+emit_16(1368);
+emit_16(1435);
+emit_16(1369);
+emit_16(1435);
+emit_16(1368);
+emit_16(1435);
+emit_16(1369);
+emit_16(1436);
+emit_16(1370);
+emit_16(1436);
+emit_16(1369);
+emit_16(1436);
+emit_16(1370);
+emit_16(1437);
+emit_16(1371);
+emit_16(1437);
+emit_16(1370);
+emit_16(1437);
+emit_16(1371);
+emit_16(1438);
+emit_16(1372);
+emit_16(1438);
+emit_16(1371);
+emit_16(1438);
+emit_16(1372);
+emit_16(1439);
+emit_16(1373);
+emit_16(1439);
+emit_16(1372);
+emit_16(1439);
+emit_16(1373);
+emit_16(1440);
+emit_16(1374);
+emit_16(1440);
+emit_16(1373);
+emit_16(1440);
+emit_16(1374);
+emit_16(1441);
+emit_16(1375);
+emit_16(1441);
+emit_16(1374);
+emit_16(1441);
+emit_16(1375);
+emit_16(1442);
+emit_16(1376);
+emit_16(1442);
+emit_16(1375);
+emit_16(1442);
+emit_16(1376);
+emit_16(1443);
+emit_16(1377);
+emit_16(1443);
+emit_16(1376);
+emit_16(1443);
+emit_16(1377);
+emit_16(1444);
+emit_16(1378);
+emit_16(1444);
+emit_16(1377);
+emit_16(1444);
+emit_16(1378);
+emit_16(1445);
+emit_16(1379);
+emit_16(1445);
+emit_16(1378);
+emit_16(1445);
+emit_16(1379);
+emit_16(1446);
+emit_16(1380);
+emit_16(1446);
+emit_16(1379);
+emit_16(1446);
+emit_16(1380);
+emit_16(1447);
+emit_16(1381);
+emit_16(1447);
+emit_16(1380);
+emit_16(1447);
+emit_16(1381);
+emit_16(1448);
+emit_16(1382);
+emit_16(1448);
+emit_16(1381);
+emit_16(1448);
+emit_16(1382);
+emit_16(1449);
+emit_16(1383);
+emit_16(1449);
+emit_16(1382);
+emit_16(1449);
+emit_16(1383);
+emit_16(1450);
+emit_16(1384);
+emit_16(1450);
+emit_16(1383);
+emit_16(1450);
+emit_16(1384);
+emit_16(1451);
+emit_16(1385);
+emit_16(1451);
+emit_16(1384);
+emit_16(1452);
+emit_16(1386);
+emit_16(1453);
+emit_16(1387);
+emit_16(1453);
+emit_16(1386);
+emit_16(1453);
+emit_16(1387);
+emit_16(1454);
+emit_16(1388);
+emit_16(1454);
+emit_16(1387);
+emit_16(1454);
+emit_16(1388);
+emit_16(1455);
+emit_16(1389);
+emit_16(1455);
+emit_16(1388);
+emit_16(1455);
+emit_16(1389);
+emit_16(1456);
+emit_16(1390);
+emit_16(1456);
+emit_16(1389);
+emit_16(1456);
+emit_16(1390);
+emit_16(1457);
+emit_16(1391);
+emit_16(1457);
+emit_16(1390);
+emit_16(1457);
+emit_16(1391);
+emit_16(1458);
+emit_16(1392);
+emit_16(1458);
+emit_16(1391);
+emit_16(1458);
+emit_16(1392);
+emit_16(1459);
+emit_16(1393);
+emit_16(1459);
+emit_16(1392);
+emit_16(1459);
+emit_16(1393);
+emit_16(1460);
+emit_16(1394);
+emit_16(1460);
+emit_16(1393);
+emit_16(1460);
+emit_16(1394);
+emit_16(1461);
+emit_16(1395);
+emit_16(1461);
+emit_16(1394);
+emit_16(1461);
+emit_16(1395);
+emit_16(1462);
+emit_16(1396);
+emit_16(1462);
+emit_16(1395);
+emit_16(1462);
+emit_16(1396);
+emit_16(1463);
+emit_16(1397);
+emit_16(1463);
+emit_16(1396);
+emit_16(1463);
+emit_16(1397);
+emit_16(1464);
+emit_16(1398);
+emit_16(1464);
+emit_16(1397);
+emit_16(1464);
+emit_16(1398);
+emit_16(1465);
+emit_16(1399);
+emit_16(1465);
+emit_16(1398);
+emit_16(1465);
+emit_16(1399);
+emit_16(1466);
+emit_16(1400);
+emit_16(1466);
+emit_16(1399);
+emit_16(1466);
+emit_16(1400);
+emit_16(1467);
+emit_16(1401);
+emit_16(1467);
+emit_16(1400);
+emit_16(1467);
+emit_16(1401);
+emit_16(1468);
+emit_16(1402);
+emit_16(1468);
+emit_16(1401);
+emit_16(1468);
+emit_16(1402);
+emit_16(1469);
+emit_16(1403);
+emit_16(1469);
+emit_16(1402);
+emit_16(1469);
+emit_16(1403);
+emit_16(1470);
+emit_16(1404);
+emit_16(1470);
+emit_16(1403);
+emit_16(1470);
+emit_16(1404);
+emit_16(1471);
+emit_16(1405);
+emit_16(1471);
+emit_16(1404);
+emit_16(1471);
+emit_16(1405);
+emit_16(1472);
+emit_16(1406);
+emit_16(1472);
+emit_16(1405);
+emit_16(1472);
+emit_16(1406);
+emit_16(1473);
+emit_16(1407);
+emit_16(1473);
+emit_16(1406);
+emit_16(1473);
+emit_16(1407);
+emit_16(1474);
+emit_16(1408);
+emit_16(1474);
+emit_16(1407);
+emit_16(1474);
+emit_16(1408);
+emit_16(1475);
+emit_16(1409);
+emit_16(1475);
+emit_16(1408);
+emit_16(1475);
+emit_16(1409);
+emit_16(1476);
+emit_16(1410);
+emit_16(1476);
+emit_16(1409);
+emit_16(1476);
+emit_16(1410);
+emit_16(1477);
+emit_16(1411);
+emit_16(1477);
+emit_16(1410);
+emit_16(1477);
+emit_16(1411);
+emit_16(1478);
+emit_16(1412);
+emit_16(1478);
+emit_16(1411);
+emit_16(1478);
+emit_16(1412);
+emit_16(1479);
+emit_16(1413);
+emit_16(1479);
+emit_16(1412);
+emit_16(1479);
+emit_16(1413);
+emit_16(1480);
+emit_16(1414);
+emit_16(1480);
+emit_16(1413);
+emit_16(1480);
+emit_16(1414);
+emit_16(1481);
+emit_16(1415);
+emit_16(1481);
+emit_16(1414);
+emit_16(1481);
+emit_16(1415);
+emit_16(1482);
+emit_16(1416);
+emit_16(1482);
+emit_16(1415);
+emit_16(1482);
+emit_16(1416);
+emit_16(1483);
+emit_16(1417);
+emit_16(1483);
+emit_16(1416);
+emit_16(1483);
+emit_16(1417);
+emit_16(1484);
+emit_16(1418);
+emit_16(1484);
+emit_16(1417);
+emit_16(1484);
+emit_16(1418);
+emit_16(1485);
+emit_16(1419);
+emit_16(1485);
+emit_16(1418);
+emit_16(1485);
+emit_16(1419);
+emit_16(1486);
+emit_16(1420);
+emit_16(1486);
+emit_16(1419);
+emit_16(1486);
+emit_16(1420);
+emit_16(1487);
+emit_16(1421);
+emit_16(1487);
+emit_16(1420);
+emit_16(1487);
+emit_16(1421);
+emit_16(1488);
+emit_16(1422);
+emit_16(1488);
+emit_16(1421);
+emit_16(1488);
+emit_16(1422);
+emit_16(1489);
+emit_16(1423);
+emit_16(1489);
+emit_16(1422);
+emit_16(1489);
+emit_16(1423);
+emit_16(1490);
+emit_16(1424);
+emit_16(1490);
+emit_16(1423);
+emit_16(1490);
+emit_16(1424);
+emit_16(1491);
+emit_16(1425);
+emit_16(1491);
+emit_16(1424);
+emit_16(1491);
+emit_16(1425);
+emit_16(1492);
+emit_16(1426);
+emit_16(1492);
+emit_16(1425);
+emit_16(1492);
+emit_16(1426);
+emit_16(1493);
+emit_16(1427);
+emit_16(1493);
+emit_16(1426);
+emit_16(1493);
+emit_16(1427);
+emit_16(1494);
+emit_16(1428);
+emit_16(1494);
+emit_16(1427);
+emit_16(1494);
+emit_16(1428);
+emit_16(1495);
+emit_16(1429);
+emit_16(1495);
+emit_16(1428);
+emit_16(1495);
+emit_16(1429);
+emit_16(1496);
+emit_16(1430);
+emit_16(1496);
+emit_16(1429);
+emit_16(1496);
+emit_16(1430);
+emit_16(1497);
+emit_16(1431);
+emit_16(1497);
+emit_16(1430);
+emit_16(1497);
+emit_16(1431);
+emit_16(1498);
+emit_16(1432);
+emit_16(1498);
+emit_16(1431);
+emit_16(1498);
+emit_16(1432);
+emit_16(1499);
+emit_16(1433);
+emit_16(1499);
+emit_16(1432);
+emit_16(1499);
+emit_16(1433);
+emit_16(1500);
+emit_16(1434);
+emit_16(1500);
+emit_16(1433);
+emit_16(1500);
+emit_16(1434);
+emit_16(1501);
+emit_16(1435);
+emit_16(1501);
+emit_16(1434);
+emit_16(1501);
+emit_16(1435);
+emit_16(1502);
+emit_16(1436);
+emit_16(1502);
+emit_16(1435);
+emit_16(1502);
+emit_16(1436);
+emit_16(1503);
+emit_16(1437);
+emit_16(1503);
+emit_16(1436);
+emit_16(1503);
+emit_16(1437);
+emit_16(1504);
+emit_16(1438);
+emit_16(1504);
+emit_16(1437);
+emit_16(1504);
+emit_16(1438);
+emit_16(1505);
+emit_16(1439);
+emit_16(1505);
+emit_16(1438);
+emit_16(1505);
+emit_16(1439);
+emit_16(1506);
+emit_16(1440);
+emit_16(1506);
+emit_16(1439);
+emit_16(1506);
+emit_16(1440);
+emit_16(1507);
+emit_16(1441);
+emit_16(1507);
+emit_16(1440);
+emit_16(1507);
+emit_16(1441);
+emit_16(1508);
+emit_16(1442);
+emit_16(1508);
+emit_16(1441);
+emit_16(1508);
+emit_16(1442);
+emit_16(1509);
+emit_16(1443);
+emit_16(1509);
+emit_16(1442);
+emit_16(1509);
+emit_16(1443);
+emit_16(1510);
+emit_16(1444);
+emit_16(1510);
+emit_16(1443);
+emit_16(1510);
+emit_16(1444);
+emit_16(1511);
+emit_16(1445);
+emit_16(1511);
+emit_16(1444);
+emit_16(1511);
+emit_16(1445);
+emit_16(1512);
+emit_16(1446);
+emit_16(1512);
+emit_16(1445);
+emit_16(1512);
+emit_16(1446);
+emit_16(1513);
+emit_16(1447);
+emit_16(1513);
+emit_16(1446);
+emit_16(1513);
+emit_16(1447);
+emit_16(1514);
+emit_16(1448);
+emit_16(1514);
+emit_16(1447);
+emit_16(1514);
+emit_16(1448);
+emit_16(1515);
+emit_16(1449);
+emit_16(1515);
+emit_16(1448);
+emit_16(1515);
+emit_16(1449);
+emit_16(1516);
+emit_16(1450);
+emit_16(1516);
+emit_16(1449);
+emit_16(1516);
+emit_16(1450);
+emit_16(1517);
+emit_16(1451);
+emit_16(1517);
+emit_16(1450);
+emit_16(1518);
+emit_16(1452);
+emit_16(1519);
+emit_16(1453);
+emit_16(1519);
+emit_16(1452);
+emit_16(1519);
+emit_16(1453);
+emit_16(1520);
+emit_16(1454);
+emit_16(1520);
+emit_16(1453);
+emit_16(1520);
+emit_16(1454);
+emit_16(1521);
+emit_16(1455);
+emit_16(1521);
+emit_16(1454);
+emit_16(1521);
+emit_16(1455);
+emit_16(1522);
+emit_16(1456);
+emit_16(1522);
+emit_16(1455);
+emit_16(1522);
+emit_16(1456);
+emit_16(1523);
+emit_16(1457);
+emit_16(1523);
+emit_16(1456);
+emit_16(1523);
+emit_16(1457);
+emit_16(1524);
+emit_16(1458);
+emit_16(1524);
+emit_16(1457);
+emit_16(1524);
+emit_16(1458);
+emit_16(1525);
+emit_16(1459);
+emit_16(1525);
+emit_16(1458);
+emit_16(1525);
+emit_16(1459);
+emit_16(1526);
+emit_16(1460);
+emit_16(1526);
+emit_16(1459);
+emit_16(1526);
+emit_16(1460);
+emit_16(1527);
+emit_16(1461);
+emit_16(1527);
+emit_16(1460);
+emit_16(1527);
+emit_16(1461);
+emit_16(1528);
+emit_16(1462);
+emit_16(1528);
+emit_16(1461);
+emit_16(1528);
+emit_16(1462);
+emit_16(1529);
+emit_16(1463);
+emit_16(1529);
+emit_16(1462);
+emit_16(1529);
+emit_16(1463);
+emit_16(1530);
+emit_16(1464);
+emit_16(1530);
+emit_16(1463);
+emit_16(1530);
+emit_16(1464);
+emit_16(1531);
+emit_16(1465);
+emit_16(1531);
+emit_16(1464);
+emit_16(1531);
+emit_16(1465);
+emit_16(1532);
+emit_16(1466);
+emit_16(1532);
+emit_16(1465);
+emit_16(1532);
+emit_16(1466);
+emit_16(1533);
+emit_16(1467);
+emit_16(1533);
+emit_16(1466);
+emit_16(1533);
+emit_16(1467);
+emit_16(1534);
+emit_16(1468);
+emit_16(1534);
+emit_16(1467);
+emit_16(1534);
+emit_16(1468);
+emit_16(1535);
+emit_16(1469);
+emit_16(1535);
+emit_16(1468);
+emit_16(1535);
+emit_16(1469);
+emit_16(1536);
+emit_16(1470);
+emit_16(1536);
+emit_16(1469);
+emit_16(1536);
+emit_16(1470);
+emit_16(1537);
+emit_16(1471);
+emit_16(1537);
+emit_16(1470);
+emit_16(1537);
+emit_16(1471);
+emit_16(1538);
+emit_16(1472);
+emit_16(1538);
+emit_16(1471);
+emit_16(1538);
+emit_16(1472);
+emit_16(1539);
+emit_16(1473);
+emit_16(1539);
+emit_16(1472);
+emit_16(1539);
+emit_16(1473);
+emit_16(1540);
+emit_16(1474);
+emit_16(1540);
+emit_16(1473);
+emit_16(1540);
+emit_16(1474);
+emit_16(1541);
+emit_16(1475);
+emit_16(1541);
+emit_16(1474);
+emit_16(1541);
+emit_16(1475);
+emit_16(1542);
+emit_16(1476);
+emit_16(1542);
+emit_16(1475);
+emit_16(1542);
+emit_16(1476);
+emit_16(1543);
+emit_16(1477);
+emit_16(1543);
+emit_16(1476);
+emit_16(1543);
+emit_16(1477);
+emit_16(1544);
+emit_16(1478);
+emit_16(1544);
+emit_16(1477);
+emit_16(1544);
+emit_16(1478);
+emit_16(1545);
+emit_16(1479);
+emit_16(1545);
+emit_16(1478);
+emit_16(1545);
+emit_16(1479);
+emit_16(1546);
+emit_16(1480);
+emit_16(1546);
+emit_16(1479);
+emit_16(1546);
+emit_16(1480);
+emit_16(1547);
+emit_16(1481);
+emit_16(1547);
+emit_16(1480);
+emit_16(1547);
+emit_16(1481);
+emit_16(1548);
+emit_16(1482);
+emit_16(1548);
+emit_16(1481);
+emit_16(1548);
+emit_16(1482);
+emit_16(1549);
+emit_16(1483);
+emit_16(1549);
+emit_16(1482);
+emit_16(1549);
+emit_16(1483);
+emit_16(1550);
+emit_16(1484);
+emit_16(1550);
+emit_16(1483);
+emit_16(1550);
+emit_16(1484);
+emit_16(1551);
+emit_16(1485);
+emit_16(1551);
+emit_16(1484);
+emit_16(1551);
+emit_16(1485);
+emit_16(1552);
+emit_16(1486);
+emit_16(1552);
+emit_16(1485);
+emit_16(1552);
+emit_16(1486);
+emit_16(1553);
+emit_16(1487);
+emit_16(1553);
+emit_16(1486);
+emit_16(1553);
+emit_16(1487);
+emit_16(1554);
+emit_16(1488);
+emit_16(1554);
+emit_16(1487);
+emit_16(1554);
+emit_16(1488);
+emit_16(1555);
+emit_16(1489);
+emit_16(1555);
+emit_16(1488);
+emit_16(1555);
+emit_16(1489);
+emit_16(1556);
+emit_16(1490);
+emit_16(1556);
+emit_16(1489);
+emit_16(1556);
+emit_16(1490);
+emit_16(1557);
+emit_16(1491);
+emit_16(1557);
+emit_16(1490);
+emit_16(1557);
+emit_16(1491);
+emit_16(1558);
+emit_16(1492);
+emit_16(1558);
+emit_16(1491);
+emit_16(1558);
+emit_16(1492);
+emit_16(1559);
+emit_16(1493);
+emit_16(1559);
+emit_16(1492);
+emit_16(1559);
+emit_16(1493);
+emit_16(1560);
+emit_16(1494);
+emit_16(1560);
+emit_16(1493);
+emit_16(1560);
+emit_16(1494);
+emit_16(1561);
+emit_16(1495);
+emit_16(1561);
+emit_16(1494);
+emit_16(1561);
+emit_16(1495);
+emit_16(1562);
+emit_16(1496);
+emit_16(1562);
+emit_16(1495);
+emit_16(1562);
+emit_16(1496);
+emit_16(1563);
+emit_16(1497);
+emit_16(1563);
+emit_16(1496);
+emit_16(1563);
+emit_16(1497);
+emit_16(1564);
+emit_16(1498);
+emit_16(1564);
+emit_16(1497);
+emit_16(1564);
+emit_16(1498);
+emit_16(1565);
+emit_16(1499);
+emit_16(1565);
+emit_16(1498);
+emit_16(1565);
+emit_16(1499);
+emit_16(1566);
+emit_16(1500);
+emit_16(1566);
+emit_16(1499);
+emit_16(1566);
+emit_16(1500);
+emit_16(1567);
+emit_16(1501);
+emit_16(1567);
+emit_16(1500);
+emit_16(1567);
+emit_16(1501);
+emit_16(1568);
+emit_16(1502);
+emit_16(1568);
+emit_16(1501);
+emit_16(1568);
+emit_16(1502);
+emit_16(1569);
+emit_16(1503);
+emit_16(1569);
+emit_16(1502);
+emit_16(1569);
+emit_16(1503);
+emit_16(1570);
+emit_16(1504);
+emit_16(1570);
+emit_16(1503);
+emit_16(1570);
+emit_16(1504);
+emit_16(1571);
+emit_16(1505);
+emit_16(1571);
+emit_16(1504);
+emit_16(1571);
+emit_16(1505);
+emit_16(1572);
+emit_16(1506);
+emit_16(1572);
+emit_16(1505);
+emit_16(1572);
+emit_16(1506);
+emit_16(1573);
+emit_16(1507);
+emit_16(1573);
+emit_16(1506);
+emit_16(1573);
+emit_16(1507);
+emit_16(1574);
+emit_16(1508);
+emit_16(1574);
+emit_16(1507);
+emit_16(1574);
+emit_16(1508);
+emit_16(1575);
+emit_16(1509);
+emit_16(1575);
+emit_16(1508);
+emit_16(1575);
+emit_16(1509);
+emit_16(1576);
+emit_16(1510);
+emit_16(1576);
+emit_16(1509);
+emit_16(1576);
+emit_16(1510);
+emit_16(1577);
+emit_16(1511);
+emit_16(1577);
+emit_16(1510);
+emit_16(1577);
+emit_16(1511);
+emit_16(1578);
+emit_16(1512);
+emit_16(1578);
+emit_16(1511);
+emit_16(1578);
+emit_16(1512);
+emit_16(1579);
+emit_16(1513);
+emit_16(1579);
+emit_16(1512);
+emit_16(1579);
+emit_16(1513);
+emit_16(1580);
+emit_16(1514);
+emit_16(1580);
+emit_16(1513);
+emit_16(1580);
+emit_16(1514);
+emit_16(1581);
+emit_16(1515);
+emit_16(1581);
+emit_16(1514);
+emit_16(1581);
+emit_16(1515);
+emit_16(1582);
+emit_16(1516);
+emit_16(1582);
+emit_16(1515);
+emit_16(1582);
+emit_16(1516);
+emit_16(1583);
+emit_16(1517);
+emit_16(1583);
+emit_16(1516);
+emit_16(1584);
+emit_16(1518);
+emit_16(1585);
+emit_16(1519);
+emit_16(1585);
+emit_16(1518);
+emit_16(1585);
+emit_16(1519);
+emit_16(1586);
+emit_16(1520);
+emit_16(1586);
+emit_16(1519);
+emit_16(1586);
+emit_16(1520);
+emit_16(1587);
+emit_16(1521);
+emit_16(1587);
+emit_16(1520);
+emit_16(1587);
+emit_16(1521);
+emit_16(1588);
+emit_16(1522);
+emit_16(1588);
+emit_16(1521);
+emit_16(1588);
+emit_16(1522);
+emit_16(1589);
+emit_16(1523);
+emit_16(1589);
+emit_16(1522);
+emit_16(1589);
+emit_16(1523);
+emit_16(1590);
+emit_16(1524);
+emit_16(1590);
+emit_16(1523);
+emit_16(1590);
+emit_16(1524);
+emit_16(1591);
+emit_16(1525);
+emit_16(1591);
+emit_16(1524);
+emit_16(1591);
+emit_16(1525);
+emit_16(1592);
+emit_16(1526);
+emit_16(1592);
+emit_16(1525);
+emit_16(1592);
+emit_16(1526);
+emit_16(1593);
+emit_16(1527);
+emit_16(1593);
+emit_16(1526);
+emit_16(1593);
+emit_16(1527);
+emit_16(1594);
+emit_16(1528);
+emit_16(1594);
+emit_16(1527);
+emit_16(1594);
+emit_16(1528);
+emit_16(1595);
+emit_16(1529);
+emit_16(1595);
+emit_16(1528);
+emit_16(1595);
+emit_16(1529);
+emit_16(1596);
+emit_16(1530);
+emit_16(1596);
+emit_16(1529);
+emit_16(1596);
+emit_16(1530);
+emit_16(1597);
+emit_16(1531);
+emit_16(1597);
+emit_16(1530);
+emit_16(1597);
+emit_16(1531);
+emit_16(1598);
+emit_16(1532);
+emit_16(1598);
+emit_16(1531);
+emit_16(1598);
+emit_16(1532);
+emit_16(1599);
+emit_16(1533);
+emit_16(1599);
+emit_16(1532);
+emit_16(1599);
+emit_16(1533);
+emit_16(1600);
+emit_16(1534);
+emit_16(1600);
+emit_16(1533);
+emit_16(1600);
+emit_16(1534);
+emit_16(1601);
+emit_16(1535);
+emit_16(1601);
+emit_16(1534);
+emit_16(1601);
+emit_16(1535);
+emit_16(1602);
+emit_16(1536);
+emit_16(1602);
+emit_16(1535);
+emit_16(1602);
+emit_16(1536);
+emit_16(1603);
+emit_16(1537);
+emit_16(1603);
+emit_16(1536);
+emit_16(1603);
+emit_16(1537);
+emit_16(1604);
+emit_16(1538);
+emit_16(1604);
+emit_16(1537);
+emit_16(1604);
+emit_16(1538);
+emit_16(1605);
+emit_16(1539);
+emit_16(1605);
+emit_16(1538);
+emit_16(1605);
+emit_16(1539);
+emit_16(1606);
+emit_16(1540);
+emit_16(1606);
+emit_16(1539);
+emit_16(1606);
+emit_16(1540);
+emit_16(1607);
+emit_16(1541);
+emit_16(1607);
+emit_16(1540);
+emit_16(1607);
+emit_16(1541);
+emit_16(1608);
+emit_16(1542);
+emit_16(1608);
+emit_16(1541);
+emit_16(1608);
+emit_16(1542);
+emit_16(1609);
+emit_16(1543);
+emit_16(1609);
+emit_16(1542);
+emit_16(1609);
+emit_16(1543);
+emit_16(1610);
+emit_16(1544);
+emit_16(1610);
+emit_16(1543);
+emit_16(1610);
+emit_16(1544);
+emit_16(1611);
+emit_16(1545);
+emit_16(1611);
+emit_16(1544);
+emit_16(1611);
+emit_16(1545);
+emit_16(1612);
+emit_16(1546);
+emit_16(1612);
+emit_16(1545);
+emit_16(1612);
+emit_16(1546);
+emit_16(1613);
+emit_16(1547);
+emit_16(1613);
+emit_16(1546);
+emit_16(1613);
+emit_16(1547);
+emit_16(1614);
+emit_16(1548);
+emit_16(1614);
+emit_16(1547);
+emit_16(1614);
+emit_16(1548);
+emit_16(1615);
+emit_16(1549);
+emit_16(1615);
+emit_16(1548);
+emit_16(1615);
+emit_16(1549);
+emit_16(1616);
+emit_16(1550);
+emit_16(1616);
+emit_16(1549);
+emit_16(1616);
+emit_16(1550);
+emit_16(1617);
+emit_16(1551);
+emit_16(1617);
+emit_16(1550);
+emit_16(1617);
+emit_16(1551);
+emit_16(1618);
+emit_16(1552);
+emit_16(1618);
+emit_16(1551);
+emit_16(1618);
+emit_16(1552);
+emit_16(1619);
+emit_16(1553);
+emit_16(1619);
+emit_16(1552);
+emit_16(1619);
+emit_16(1553);
+emit_16(1620);
+emit_16(1554);
+emit_16(1620);
+emit_16(1553);
+emit_16(1620);
+emit_16(1554);
+emit_16(1621);
+emit_16(1555);
+emit_16(1621);
+emit_16(1554);
+emit_16(1621);
+emit_16(1555);
+emit_16(1622);
+emit_16(1556);
+emit_16(1622);
+emit_16(1555);
+emit_16(1622);
+emit_16(1556);
+emit_16(1623);
+emit_16(1557);
+emit_16(1623);
+emit_16(1556);
+emit_16(1623);
+emit_16(1557);
+emit_16(1624);
+emit_16(1558);
+emit_16(1624);
+emit_16(1557);
+emit_16(1624);
+emit_16(1558);
+emit_16(1625);
+emit_16(1559);
+emit_16(1625);
+emit_16(1558);
+emit_16(1625);
+emit_16(1559);
+emit_16(1626);
+emit_16(1560);
+emit_16(1626);
+emit_16(1559);
+emit_16(1626);
+emit_16(1560);
+emit_16(1627);
+emit_16(1561);
+emit_16(1627);
+emit_16(1560);
+emit_16(1627);
+emit_16(1561);
+emit_16(1628);
+emit_16(1562);
+emit_16(1628);
+emit_16(1561);
+emit_16(1628);
+emit_16(1562);
+emit_16(1629);
+emit_16(1563);
+emit_16(1629);
+emit_16(1562);
+emit_16(1629);
+emit_16(1563);
+emit_16(1630);
+emit_16(1564);
+emit_16(1630);
+emit_16(1563);
+emit_16(1630);
+emit_16(1564);
+emit_16(1631);
+emit_16(1565);
+emit_16(1631);
+emit_16(1564);
+emit_16(1631);
+emit_16(1565);
+emit_16(1632);
+emit_16(1566);
+emit_16(1632);
+emit_16(1565);
+emit_16(1632);
+emit_16(1566);
+emit_16(1633);
+emit_16(1567);
+emit_16(1633);
+emit_16(1566);
+emit_16(1633);
+emit_16(1567);
+emit_16(1634);
+emit_16(1568);
+emit_16(1634);
+emit_16(1567);
+emit_16(1634);
+emit_16(1568);
+emit_16(1635);
+emit_16(1569);
+emit_16(1635);
+emit_16(1568);
+emit_16(1635);
+emit_16(1569);
+emit_16(1636);
+emit_16(1570);
+emit_16(1636);
+emit_16(1569);
+emit_16(1636);
+emit_16(1570);
+emit_16(1637);
+emit_16(1571);
+emit_16(1637);
+emit_16(1570);
+emit_16(1637);
+emit_16(1571);
+emit_16(1638);
+emit_16(1572);
+emit_16(1638);
+emit_16(1571);
+emit_16(1638);
+emit_16(1572);
+emit_16(1639);
+emit_16(1573);
+emit_16(1639);
+emit_16(1572);
+emit_16(1639);
+emit_16(1573);
+emit_16(1640);
+emit_16(1574);
+emit_16(1640);
+emit_16(1573);
+emit_16(1640);
+emit_16(1574);
+emit_16(1641);
+emit_16(1575);
+emit_16(1641);
+emit_16(1574);
+emit_16(1641);
+emit_16(1575);
+emit_16(1642);
+emit_16(1576);
+emit_16(1642);
+emit_16(1575);
+emit_16(1642);
+emit_16(1576);
+emit_16(1643);
+emit_16(1577);
+emit_16(1643);
+emit_16(1576);
+emit_16(1643);
+emit_16(1577);
+emit_16(1644);
+emit_16(1578);
+emit_16(1644);
+emit_16(1577);
+emit_16(1644);
+emit_16(1578);
+emit_16(1645);
+emit_16(1579);
+emit_16(1645);
+emit_16(1578);
+emit_16(1645);
+emit_16(1579);
+emit_16(1646);
+emit_16(1580);
+emit_16(1646);
+emit_16(1579);
+emit_16(1646);
+emit_16(1580);
+emit_16(1647);
+emit_16(1581);
+emit_16(1647);
+emit_16(1580);
+emit_16(1647);
+emit_16(1581);
+emit_16(1648);
+emit_16(1582);
+emit_16(1648);
+emit_16(1581);
+emit_16(1648);
+emit_16(1582);
+emit_16(1649);
+emit_16(1583);
+emit_16(1649);
+emit_16(1582);
+emit_16(1650);
+emit_16(1584);
+emit_16(1651);
+emit_16(1585);
+emit_16(1651);
+emit_16(1584);
+emit_16(1651);
+emit_16(1585);
+emit_16(1652);
+emit_16(1586);
+emit_16(1652);
+emit_16(1585);
+emit_16(1652);
+emit_16(1586);
+emit_16(1653);
+emit_16(1587);
+emit_16(1653);
+emit_16(1586);
+emit_16(1653);
+emit_16(1587);
+emit_16(1654);
+emit_16(1588);
+emit_16(1654);
+emit_16(1587);
+emit_16(1654);
+emit_16(1588);
+emit_16(1655);
+emit_16(1589);
+emit_16(1655);
+emit_16(1588);
+emit_16(1655);
+emit_16(1589);
+emit_16(1656);
+emit_16(1590);
+emit_16(1656);
+emit_16(1589);
+emit_16(1656);
+emit_16(1590);
+emit_16(1657);
+emit_16(1591);
+emit_16(1657);
+emit_16(1590);
+emit_16(1657);
+emit_16(1591);
+emit_16(1658);
+emit_16(1592);
+emit_16(1658);
+emit_16(1591);
+emit_16(1658);
+emit_16(1592);
+emit_16(1659);
+emit_16(1593);
+emit_16(1659);
+emit_16(1592);
+emit_16(1659);
+emit_16(1593);
+emit_16(1660);
+emit_16(1594);
+emit_16(1660);
+emit_16(1593);
+emit_16(1660);
+emit_16(1594);
+emit_16(1661);
+emit_16(1595);
+emit_16(1661);
+emit_16(1594);
+emit_16(1661);
+emit_16(1595);
+emit_16(1662);
+emit_16(1596);
+emit_16(1662);
+emit_16(1595);
+emit_16(1662);
+emit_16(1596);
+emit_16(1663);
+emit_16(1597);
+emit_16(1663);
+emit_16(1596);
+emit_16(1663);
+emit_16(1597);
+emit_16(1664);
+emit_16(1598);
+emit_16(1664);
+emit_16(1597);
+emit_16(1664);
+emit_16(1598);
+emit_16(1665);
+emit_16(1599);
+emit_16(1665);
+emit_16(1598);
+emit_16(1665);
+emit_16(1599);
+emit_16(1666);
+emit_16(1600);
+emit_16(1666);
+emit_16(1599);
+emit_16(1666);
+emit_16(1600);
+emit_16(1667);
+emit_16(1601);
+emit_16(1667);
+emit_16(1600);
+emit_16(1667);
+emit_16(1601);
+emit_16(1668);
+emit_16(1602);
+emit_16(1668);
+emit_16(1601);
+emit_16(1668);
+emit_16(1602);
+emit_16(1669);
+emit_16(1603);
+emit_16(1669);
+emit_16(1602);
+emit_16(1669);
+emit_16(1603);
+emit_16(1670);
+emit_16(1604);
+emit_16(1670);
+emit_16(1603);
+emit_16(1670);
+emit_16(1604);
+emit_16(1671);
+emit_16(1605);
+emit_16(1671);
+emit_16(1604);
+emit_16(1671);
+emit_16(1605);
+emit_16(1672);
+emit_16(1606);
+emit_16(1672);
+emit_16(1605);
+emit_16(1672);
+emit_16(1606);
+emit_16(1673);
+emit_16(1607);
+emit_16(1673);
+emit_16(1606);
+emit_16(1673);
+emit_16(1607);
+emit_16(1674);
+emit_16(1608);
+emit_16(1674);
+emit_16(1607);
+emit_16(1674);
+emit_16(1608);
+emit_16(1675);
+emit_16(1609);
+emit_16(1675);
+emit_16(1608);
+emit_16(1675);
+emit_16(1609);
+emit_16(1676);
+emit_16(1610);
+emit_16(1676);
+emit_16(1609);
+emit_16(1676);
+emit_16(1610);
+emit_16(1677);
+emit_16(1611);
+emit_16(1677);
+emit_16(1610);
+emit_16(1677);
+emit_16(1611);
+emit_16(1678);
+emit_16(1612);
+emit_16(1678);
+emit_16(1611);
+emit_16(1678);
+emit_16(1612);
+emit_16(1679);
+emit_16(1613);
+emit_16(1679);
+emit_16(1612);
+emit_16(1679);
+emit_16(1613);
+emit_16(1680);
+emit_16(1614);
+emit_16(1680);
+emit_16(1613);
+emit_16(1680);
+emit_16(1614);
+emit_16(1681);
+emit_16(1615);
+emit_16(1681);
+emit_16(1614);
+emit_16(1681);
+emit_16(1615);
+emit_16(1682);
+emit_16(1616);
+emit_16(1682);
+emit_16(1615);
+emit_16(1682);
+emit_16(1616);
+emit_16(1683);
+emit_16(1617);
+emit_16(1683);
+emit_16(1616);
+emit_16(1683);
+emit_16(1617);
+emit_16(1684);
+emit_16(1618);
+emit_16(1684);
+emit_16(1617);
+emit_16(1684);
+emit_16(1618);
+emit_16(1685);
+emit_16(1619);
+emit_16(1685);
+emit_16(1618);
+emit_16(1685);
+emit_16(1619);
+emit_16(1686);
+emit_16(1620);
+emit_16(1686);
+emit_16(1619);
+emit_16(1686);
+emit_16(1620);
+emit_16(1687);
+emit_16(1621);
+emit_16(1687);
+emit_16(1620);
+emit_16(1687);
+emit_16(1621);
+emit_16(1688);
+emit_16(1622);
+emit_16(1688);
+emit_16(1621);
+emit_16(1688);
+emit_16(1622);
+emit_16(1689);
+emit_16(1623);
+emit_16(1689);
+emit_16(1622);
+emit_16(1689);
+emit_16(1623);
+emit_16(1690);
+emit_16(1624);
+emit_16(1690);
+emit_16(1623);
+emit_16(1690);
+emit_16(1624);
+emit_16(1691);
+emit_16(1625);
+emit_16(1691);
+emit_16(1624);
+emit_16(1691);
+emit_16(1625);
+emit_16(1692);
+emit_16(1626);
+emit_16(1692);
+emit_16(1625);
+emit_16(1692);
+emit_16(1626);
+emit_16(1693);
+emit_16(1627);
+emit_16(1693);
+emit_16(1626);
+emit_16(1693);
+emit_16(1627);
+emit_16(1694);
+emit_16(1628);
+emit_16(1694);
+emit_16(1627);
+emit_16(1694);
+emit_16(1628);
+emit_16(1695);
+emit_16(1629);
+emit_16(1695);
+emit_16(1628);
+emit_16(1695);
+emit_16(1629);
+emit_16(1696);
+emit_16(1630);
+emit_16(1696);
+emit_16(1629);
+emit_16(1696);
+emit_16(1630);
+emit_16(1697);
+emit_16(1631);
+emit_16(1697);
+emit_16(1630);
+emit_16(1697);
+emit_16(1631);
+emit_16(1698);
+emit_16(1632);
+emit_16(1698);
+emit_16(1631);
+emit_16(1698);
+emit_16(1632);
+emit_16(1699);
+emit_16(1633);
+emit_16(1699);
+emit_16(1632);
+emit_16(1699);
+emit_16(1633);
+emit_16(1700);
+emit_16(1634);
+emit_16(1700);
+emit_16(1633);
+emit_16(1700);
+emit_16(1634);
+emit_16(1701);
+emit_16(1635);
+emit_16(1701);
+emit_16(1634);
+emit_16(1701);
+emit_16(1635);
+emit_16(1702);
+emit_16(1636);
+emit_16(1702);
+emit_16(1635);
+emit_16(1702);
+emit_16(1636);
+emit_16(1703);
+emit_16(1637);
+emit_16(1703);
+emit_16(1636);
+emit_16(1703);
+emit_16(1637);
+emit_16(1704);
+emit_16(1638);
+emit_16(1704);
+emit_16(1637);
+emit_16(1704);
+emit_16(1638);
+emit_16(1705);
+emit_16(1639);
+emit_16(1705);
+emit_16(1638);
+emit_16(1705);
+emit_16(1639);
+emit_16(1706);
+emit_16(1640);
+emit_16(1706);
+emit_16(1639);
+emit_16(1706);
+emit_16(1640);
+emit_16(1707);
+emit_16(1641);
+emit_16(1707);
+emit_16(1640);
+emit_16(1707);
+emit_16(1641);
+emit_16(1708);
+emit_16(1642);
+emit_16(1708);
+emit_16(1641);
+emit_16(1708);
+emit_16(1642);
+emit_16(1709);
+emit_16(1643);
+emit_16(1709);
+emit_16(1642);
+emit_16(1709);
+emit_16(1643);
+emit_16(1710);
+emit_16(1644);
+emit_16(1710);
+emit_16(1643);
+emit_16(1710);
+emit_16(1644);
+emit_16(1711);
+emit_16(1645);
+emit_16(1711);
+emit_16(1644);
+emit_16(1711);
+emit_16(1645);
+emit_16(1712);
+emit_16(1646);
+emit_16(1712);
+emit_16(1645);
+emit_16(1712);
+emit_16(1646);
+emit_16(1713);
+emit_16(1647);
+emit_16(1713);
+emit_16(1646);
+emit_16(1713);
+emit_16(1647);
+emit_16(1714);
+emit_16(1648);
+emit_16(1714);
+emit_16(1647);
+emit_16(1714);
+emit_16(1648);
+emit_16(1715);
+emit_16(1649);
+emit_16(1715);
+emit_16(1648);
+emit_16(1716);
+emit_16(1650);
+emit_16(1717);
+emit_16(1651);
+emit_16(1717);
+emit_16(1650);
+emit_16(1717);
+emit_16(1651);
+emit_16(1718);
+emit_16(1652);
+emit_16(1718);
+emit_16(1651);
+emit_16(1718);
+emit_16(1652);
+emit_16(1719);
+emit_16(1653);
+emit_16(1719);
+emit_16(1652);
+emit_16(1719);
+emit_16(1653);
+emit_16(1720);
+emit_16(1654);
+emit_16(1720);
+emit_16(1653);
+emit_16(1720);
+emit_16(1654);
+emit_16(1721);
+emit_16(1655);
+emit_16(1721);
+emit_16(1654);
+emit_16(1721);
+emit_16(1655);
+emit_16(1722);
+emit_16(1656);
+emit_16(1722);
+emit_16(1655);
+emit_16(1722);
+emit_16(1656);
+emit_16(1723);
+emit_16(1657);
+emit_16(1723);
+emit_16(1656);
+emit_16(1723);
+emit_16(1657);
+emit_16(1724);
+emit_16(1658);
+emit_16(1724);
+emit_16(1657);
+emit_16(1724);
+emit_16(1658);
+emit_16(1725);
+emit_16(1659);
+emit_16(1725);
+emit_16(1658);
+emit_16(1725);
+emit_16(1659);
+emit_16(1726);
+emit_16(1660);
+emit_16(1726);
+emit_16(1659);
+emit_16(1726);
+emit_16(1660);
+emit_16(1727);
+emit_16(1661);
+emit_16(1727);
+emit_16(1660);
+emit_16(1727);
+emit_16(1661);
+emit_16(1728);
+emit_16(1662);
+emit_16(1728);
+emit_16(1661);
+emit_16(1728);
+emit_16(1662);
+emit_16(1729);
+emit_16(1663);
+emit_16(1729);
+emit_16(1662);
+emit_16(1729);
+emit_16(1663);
+emit_16(1730);
+emit_16(1664);
+emit_16(1730);
+emit_16(1663);
+emit_16(1730);
+emit_16(1664);
+emit_16(1731);
+emit_16(1665);
+emit_16(1731);
+emit_16(1664);
+emit_16(1731);
+emit_16(1665);
+emit_16(1732);
+emit_16(1666);
+emit_16(1732);
+emit_16(1665);
+emit_16(1732);
+emit_16(1666);
+emit_16(1733);
+emit_16(1667);
+emit_16(1733);
+emit_16(1666);
+emit_16(1733);
+emit_16(1667);
+emit_16(1734);
+emit_16(1668);
+emit_16(1734);
+emit_16(1667);
+emit_16(1734);
+emit_16(1668);
+emit_16(1735);
+emit_16(1669);
+emit_16(1735);
+emit_16(1668);
+emit_16(1735);
+emit_16(1669);
+emit_16(1736);
+emit_16(1670);
+emit_16(1736);
+emit_16(1669);
+emit_16(1736);
+emit_16(1670);
+emit_16(1737);
+emit_16(1671);
+emit_16(1737);
+emit_16(1670);
+emit_16(1737);
+emit_16(1671);
+emit_16(1738);
+emit_16(1672);
+emit_16(1738);
+emit_16(1671);
+emit_16(1738);
+emit_16(1672);
+emit_16(1739);
+emit_16(1673);
+emit_16(1739);
+emit_16(1672);
+emit_16(1739);
+emit_16(1673);
+emit_16(1740);
+emit_16(1674);
+emit_16(1740);
+emit_16(1673);
+emit_16(1740);
+emit_16(1674);
+emit_16(1741);
+emit_16(1675);
+emit_16(1741);
+emit_16(1674);
+emit_16(1741);
+emit_16(1675);
+emit_16(1742);
+emit_16(1676);
+emit_16(1742);
+emit_16(1675);
+emit_16(1742);
+emit_16(1676);
+emit_16(1743);
+emit_16(1677);
+emit_16(1743);
+emit_16(1676);
+emit_16(1743);
+emit_16(1677);
+emit_16(1744);
+emit_16(1678);
+emit_16(1744);
+emit_16(1677);
+emit_16(1744);
+emit_16(1678);
+emit_16(1745);
+emit_16(1679);
+emit_16(1745);
+emit_16(1678);
+emit_16(1745);
+emit_16(1679);
+emit_16(1746);
+emit_16(1680);
+emit_16(1746);
+emit_16(1679);
+emit_16(1746);
+emit_16(1680);
+emit_16(1747);
+emit_16(1681);
+emit_16(1747);
+emit_16(1680);
+emit_16(1747);
+emit_16(1681);
+emit_16(1748);
+emit_16(1682);
+emit_16(1748);
+emit_16(1681);
+emit_16(1748);
+emit_16(1682);
+emit_16(1749);
+emit_16(1683);
+emit_16(1749);
+emit_16(1682);
+emit_16(1749);
+emit_16(1683);
+emit_16(1750);
+emit_16(1684);
+emit_16(1750);
+emit_16(1683);
+emit_16(1750);
+emit_16(1684);
+emit_16(1751);
+emit_16(1685);
+emit_16(1751);
+emit_16(1684);
+emit_16(1751);
+emit_16(1685);
+emit_16(1752);
+emit_16(1686);
+emit_16(1752);
+emit_16(1685);
+emit_16(1752);
+emit_16(1686);
+emit_16(1753);
+emit_16(1687);
+emit_16(1753);
+emit_16(1686);
+emit_16(1753);
+emit_16(1687);
+emit_16(1754);
+emit_16(1688);
+emit_16(1754);
+emit_16(1687);
+emit_16(1754);
+emit_16(1688);
+emit_16(1755);
+emit_16(1689);
+emit_16(1755);
+emit_16(1688);
+emit_16(1755);
+emit_16(1689);
+emit_16(1756);
+emit_16(1690);
+emit_16(1756);
+emit_16(1689);
+emit_16(1756);
+emit_16(1690);
+emit_16(1757);
+emit_16(1691);
+emit_16(1757);
+emit_16(1690);
+emit_16(1757);
+emit_16(1691);
+emit_16(1758);
+emit_16(1692);
+emit_16(1758);
+emit_16(1691);
+emit_16(1758);
+emit_16(1692);
+emit_16(1759);
+emit_16(1693);
+emit_16(1759);
+emit_16(1692);
+emit_16(1759);
+emit_16(1693);
+emit_16(1760);
+emit_16(1694);
+emit_16(1760);
+emit_16(1693);
+emit_16(1760);
+emit_16(1694);
+emit_16(1761);
+emit_16(1695);
+emit_16(1761);
+emit_16(1694);
+emit_16(1761);
+emit_16(1695);
+emit_16(1762);
+emit_16(1696);
+emit_16(1762);
+emit_16(1695);
+emit_16(1762);
+emit_16(1696);
+emit_16(1763);
+emit_16(1697);
+emit_16(1763);
+emit_16(1696);
+emit_16(1763);
+emit_16(1697);
+emit_16(1764);
+emit_16(1698);
+emit_16(1764);
+emit_16(1697);
+emit_16(1764);
+emit_16(1698);
+emit_16(1765);
+emit_16(1699);
+emit_16(1765);
+emit_16(1698);
+emit_16(1765);
+emit_16(1699);
+emit_16(1766);
+emit_16(1700);
+emit_16(1766);
+emit_16(1699);
+emit_16(1766);
+emit_16(1700);
+emit_16(1767);
+emit_16(1701);
+emit_16(1767);
+emit_16(1700);
+emit_16(1767);
+emit_16(1701);
+emit_16(1768);
+emit_16(1702);
+emit_16(1768);
+emit_16(1701);
+emit_16(1768);
+emit_16(1702);
+emit_16(1769);
+emit_16(1703);
+emit_16(1769);
+emit_16(1702);
+emit_16(1769);
+emit_16(1703);
+emit_16(1770);
+emit_16(1704);
+emit_16(1770);
+emit_16(1703);
+emit_16(1770);
+emit_16(1704);
+emit_16(1771);
+emit_16(1705);
+emit_16(1771);
+emit_16(1704);
+emit_16(1771);
+emit_16(1705);
+emit_16(1772);
+emit_16(1706);
+emit_16(1772);
+emit_16(1705);
+emit_16(1772);
+emit_16(1706);
+emit_16(1773);
+emit_16(1707);
+emit_16(1773);
+emit_16(1706);
+emit_16(1773);
+emit_16(1707);
+emit_16(1774);
+emit_16(1708);
+emit_16(1774);
+emit_16(1707);
+emit_16(1774);
+emit_16(1708);
+emit_16(1775);
+emit_16(1709);
+emit_16(1775);
+emit_16(1708);
+emit_16(1775);
+emit_16(1709);
+emit_16(1776);
+emit_16(1710);
+emit_16(1776);
+emit_16(1709);
+emit_16(1776);
+emit_16(1710);
+emit_16(1777);
+emit_16(1711);
+emit_16(1777);
+emit_16(1710);
+emit_16(1777);
+emit_16(1711);
+emit_16(1778);
+emit_16(1712);
+emit_16(1778);
+emit_16(1711);
+emit_16(1778);
+emit_16(1712);
+emit_16(1779);
+emit_16(1713);
+emit_16(1779);
+emit_16(1712);
+emit_16(1779);
+emit_16(1713);
+emit_16(1780);
+emit_16(1714);
+emit_16(1780);
+emit_16(1713);
+emit_16(1780);
+emit_16(1714);
+emit_16(1781);
+emit_16(1715);
+emit_16(1781);
+emit_16(1714);
+emit_16(1782);
+emit_16(1716);
+emit_16(1783);
+emit_16(1717);
+emit_16(1783);
+emit_16(1716);
+emit_16(1783);
+emit_16(1717);
+emit_16(1784);
+emit_16(1718);
+emit_16(1784);
+emit_16(1717);
+emit_16(1784);
+emit_16(1718);
+emit_16(1785);
+emit_16(1719);
+emit_16(1785);
+emit_16(1718);
+emit_16(1785);
+emit_16(1719);
+emit_16(1786);
+emit_16(1720);
+emit_16(1786);
+emit_16(1719);
+emit_16(1786);
+emit_16(1720);
+emit_16(1787);
+emit_16(1721);
+emit_16(1787);
+emit_16(1720);
+emit_16(1787);
+emit_16(1721);
+emit_16(1788);
+emit_16(1722);
+emit_16(1788);
+emit_16(1721);
+emit_16(1788);
+emit_16(1722);
+emit_16(1789);
+emit_16(1723);
+emit_16(1789);
+emit_16(1722);
+emit_16(1789);
+emit_16(1723);
+emit_16(1790);
+emit_16(1724);
+emit_16(1790);
+emit_16(1723);
+emit_16(1790);
+emit_16(1724);
+emit_16(1791);
+emit_16(1725);
+emit_16(1791);
+emit_16(1724);
+emit_16(1791);
+emit_16(1725);
+emit_16(1792);
+emit_16(1726);
+emit_16(1792);
+emit_16(1725);
+emit_16(1792);
+emit_16(1726);
+emit_16(1793);
+emit_16(1727);
+emit_16(1793);
+emit_16(1726);
+emit_16(1793);
+emit_16(1727);
+emit_16(1794);
+emit_16(1728);
+emit_16(1794);
+emit_16(1727);
+emit_16(1794);
+emit_16(1728);
+emit_16(1795);
+emit_16(1729);
+emit_16(1795);
+emit_16(1728);
+emit_16(1795);
+emit_16(1729);
+emit_16(1796);
+emit_16(1730);
+emit_16(1796);
+emit_16(1729);
+emit_16(1796);
+emit_16(1730);
+emit_16(1797);
+emit_16(1731);
+emit_16(1797);
+emit_16(1730);
+emit_16(1797);
+emit_16(1731);
+emit_16(1798);
+emit_16(1732);
+emit_16(1798);
+emit_16(1731);
+emit_16(1798);
+emit_16(1732);
+emit_16(1799);
+emit_16(1733);
+emit_16(1799);
+emit_16(1732);
+emit_16(1799);
+emit_16(1733);
+emit_16(1800);
+emit_16(1734);
+emit_16(1800);
+emit_16(1733);
+emit_16(1800);
+emit_16(1734);
+emit_16(1801);
+emit_16(1735);
+emit_16(1801);
+emit_16(1734);
+emit_16(1801);
+emit_16(1735);
+emit_16(1802);
+emit_16(1736);
+emit_16(1802);
+emit_16(1735);
+emit_16(1802);
+emit_16(1736);
+emit_16(1803);
+emit_16(1737);
+emit_16(1803);
+emit_16(1736);
+emit_16(1803);
+emit_16(1737);
+emit_16(1804);
+emit_16(1738);
+emit_16(1804);
+emit_16(1737);
+emit_16(1804);
+emit_16(1738);
+emit_16(1805);
+emit_16(1739);
+emit_16(1805);
+emit_16(1738);
+emit_16(1805);
+emit_16(1739);
+emit_16(1806);
+emit_16(1740);
+emit_16(1806);
+emit_16(1739);
+emit_16(1806);
+emit_16(1740);
+emit_16(1807);
+emit_16(1741);
+emit_16(1807);
+emit_16(1740);
+emit_16(1807);
+emit_16(1741);
+emit_16(1808);
+emit_16(1742);
+emit_16(1808);
+emit_16(1741);
+emit_16(1808);
+emit_16(1742);
+emit_16(1809);
+emit_16(1743);
+emit_16(1809);
+emit_16(1742);
+emit_16(1809);
+emit_16(1743);
+emit_16(1810);
+emit_16(1744);
+emit_16(1810);
+emit_16(1743);
+emit_16(1810);
+emit_16(1744);
+emit_16(1811);
+emit_16(1745);
+emit_16(1811);
+emit_16(1744);
+emit_16(1811);
+emit_16(1745);
+emit_16(1812);
+emit_16(1746);
+emit_16(1812);
+emit_16(1745);
+emit_16(1812);
+emit_16(1746);
+emit_16(1813);
+emit_16(1747);
+emit_16(1813);
+emit_16(1746);
+emit_16(1813);
+emit_16(1747);
+emit_16(1814);
+emit_16(1748);
+emit_16(1814);
+emit_16(1747);
+emit_16(1814);
+emit_16(1748);
+emit_16(1815);
+emit_16(1749);
+emit_16(1815);
+emit_16(1748);
+emit_16(1815);
+emit_16(1749);
+emit_16(1816);
+emit_16(1750);
+emit_16(1816);
+emit_16(1749);
+emit_16(1816);
+emit_16(1750);
+emit_16(1817);
+emit_16(1751);
+emit_16(1817);
+emit_16(1750);
+emit_16(1817);
+emit_16(1751);
+emit_16(1818);
+emit_16(1752);
+emit_16(1818);
+emit_16(1751);
+emit_16(1818);
+emit_16(1752);
+emit_16(1819);
+emit_16(1753);
+emit_16(1819);
+emit_16(1752);
+emit_16(1819);
+emit_16(1753);
+emit_16(1820);
+emit_16(1754);
+emit_16(1820);
+emit_16(1753);
+emit_16(1820);
+emit_16(1754);
+emit_16(1821);
+emit_16(1755);
+emit_16(1821);
+emit_16(1754);
+emit_16(1821);
+emit_16(1755);
+emit_16(1822);
+emit_16(1756);
+emit_16(1822);
+emit_16(1755);
+emit_16(1822);
+emit_16(1756);
+emit_16(1823);
+emit_16(1757);
+emit_16(1823);
+emit_16(1756);
+emit_16(1823);
+emit_16(1757);
+emit_16(1824);
+emit_16(1758);
+emit_16(1824);
+emit_16(1757);
+emit_16(1824);
+emit_16(1758);
+emit_16(1825);
+emit_16(1759);
+emit_16(1825);
+emit_16(1758);
+emit_16(1825);
+emit_16(1759);
+emit_16(1826);
+emit_16(1760);
+emit_16(1826);
+emit_16(1759);
+emit_16(1826);
+emit_16(1760);
+emit_16(1827);
+emit_16(1761);
+emit_16(1827);
+emit_16(1760);
+emit_16(1827);
+emit_16(1761);
+emit_16(1828);
+emit_16(1762);
+emit_16(1828);
+emit_16(1761);
+emit_16(1828);
+emit_16(1762);
+emit_16(1829);
+emit_16(1763);
+emit_16(1829);
+emit_16(1762);
+emit_16(1829);
+emit_16(1763);
+emit_16(1830);
+emit_16(1764);
+emit_16(1830);
+emit_16(1763);
+emit_16(1830);
+emit_16(1764);
+emit_16(1831);
+emit_16(1765);
+emit_16(1831);
+emit_16(1764);
+emit_16(1831);
+emit_16(1765);
+emit_16(1832);
+emit_16(1766);
+emit_16(1832);
+emit_16(1765);
+emit_16(1832);
+emit_16(1766);
+emit_16(1833);
+emit_16(1767);
+emit_16(1833);
+emit_16(1766);
+emit_16(1833);
+emit_16(1767);
+emit_16(1834);
+emit_16(1768);
+emit_16(1834);
+emit_16(1767);
+emit_16(1834);
+emit_16(1768);
+emit_16(1835);
+emit_16(1769);
+emit_16(1835);
+emit_16(1768);
+emit_16(1835);
+emit_16(1769);
+emit_16(1836);
+emit_16(1770);
+emit_16(1836);
+emit_16(1769);
+emit_16(1836);
+emit_16(1770);
+emit_16(1837);
+emit_16(1771);
+emit_16(1837);
+emit_16(1770);
+emit_16(1837);
+emit_16(1771);
+emit_16(1838);
+emit_16(1772);
+emit_16(1838);
+emit_16(1771);
+emit_16(1838);
+emit_16(1772);
+emit_16(1839);
+emit_16(1773);
+emit_16(1839);
+emit_16(1772);
+emit_16(1839);
+emit_16(1773);
+emit_16(1840);
+emit_16(1774);
+emit_16(1840);
+emit_16(1773);
+emit_16(1840);
+emit_16(1774);
+emit_16(1841);
+emit_16(1775);
+emit_16(1841);
+emit_16(1774);
+emit_16(1841);
+emit_16(1775);
+emit_16(1842);
+emit_16(1776);
+emit_16(1842);
+emit_16(1775);
+emit_16(1842);
+emit_16(1776);
+emit_16(1843);
+emit_16(1777);
+emit_16(1843);
+emit_16(1776);
+emit_16(1843);
+emit_16(1777);
+emit_16(1844);
+emit_16(1778);
+emit_16(1844);
+emit_16(1777);
+emit_16(1844);
+emit_16(1778);
+emit_16(1845);
+emit_16(1779);
+emit_16(1845);
+emit_16(1778);
+emit_16(1845);
+emit_16(1779);
+emit_16(1846);
+emit_16(1780);
+emit_16(1846);
+emit_16(1779);
+emit_16(1846);
+emit_16(1780);
+emit_16(1847);
+emit_16(1781);
+emit_16(1847);
+emit_16(1780);
+emit_16(1848);
+emit_16(1782);
+emit_16(1849);
+emit_16(1783);
+emit_16(1849);
+emit_16(1782);
+emit_16(1849);
+emit_16(1783);
+emit_16(1850);
+emit_16(1784);
+emit_16(1850);
+emit_16(1783);
+emit_16(1850);
+emit_16(1784);
+emit_16(1851);
+emit_16(1785);
+emit_16(1851);
+emit_16(1784);
+emit_16(1851);
+emit_16(1785);
+emit_16(1852);
+emit_16(1786);
+emit_16(1852);
+emit_16(1785);
+emit_16(1852);
+emit_16(1786);
+emit_16(1853);
+emit_16(1787);
+emit_16(1853);
+emit_16(1786);
+emit_16(1853);
+emit_16(1787);
+emit_16(1854);
+emit_16(1788);
+emit_16(1854);
+emit_16(1787);
+emit_16(1854);
+emit_16(1788);
+emit_16(1855);
+emit_16(1789);
+emit_16(1855);
+emit_16(1788);
+emit_16(1855);
+emit_16(1789);
+emit_16(1856);
+emit_16(1790);
+emit_16(1856);
+emit_16(1789);
+emit_16(1856);
+emit_16(1790);
+emit_16(1857);
+emit_16(1791);
+emit_16(1857);
+emit_16(1790);
+emit_16(1857);
+emit_16(1791);
+emit_16(1858);
+emit_16(1792);
+emit_16(1858);
+emit_16(1791);
+emit_16(1858);
+emit_16(1792);
+emit_16(1859);
+emit_16(1793);
+emit_16(1859);
+emit_16(1792);
+emit_16(1859);
+emit_16(1793);
+emit_16(1860);
+emit_16(1794);
+emit_16(1860);
+emit_16(1793);
+emit_16(1860);
+emit_16(1794);
+emit_16(1861);
+emit_16(1795);
+emit_16(1861);
+emit_16(1794);
+emit_16(1861);
+emit_16(1795);
+emit_16(1862);
+emit_16(1796);
+emit_16(1862);
+emit_16(1795);
+emit_16(1862);
+emit_16(1796);
+emit_16(1863);
+emit_16(1797);
+emit_16(1863);
+emit_16(1796);
+emit_16(1863);
+emit_16(1797);
+emit_16(1864);
+emit_16(1798);
+emit_16(1864);
+emit_16(1797);
+emit_16(1864);
+emit_16(1798);
+emit_16(1865);
+emit_16(1799);
+emit_16(1865);
+emit_16(1798);
+emit_16(1865);
+emit_16(1799);
+emit_16(1866);
+emit_16(1800);
+emit_16(1866);
+emit_16(1799);
+emit_16(1866);
+emit_16(1800);
+emit_16(1867);
+emit_16(1801);
+emit_16(1867);
+emit_16(1800);
+emit_16(1867);
+emit_16(1801);
+emit_16(1868);
+emit_16(1802);
+emit_16(1868);
+emit_16(1801);
+emit_16(1868);
+emit_16(1802);
+emit_16(1869);
+emit_16(1803);
+emit_16(1869);
+emit_16(1802);
+emit_16(1869);
+emit_16(1803);
+emit_16(1870);
+emit_16(1804);
+emit_16(1870);
+emit_16(1803);
+emit_16(1870);
+emit_16(1804);
+emit_16(1871);
+emit_16(1805);
+emit_16(1871);
+emit_16(1804);
+emit_16(1871);
+emit_16(1805);
+emit_16(1872);
+emit_16(1806);
+emit_16(1872);
+emit_16(1805);
+emit_16(1872);
+emit_16(1806);
+emit_16(1873);
+emit_16(1807);
+emit_16(1873);
+emit_16(1806);
+emit_16(1873);
+emit_16(1807);
+emit_16(1874);
+emit_16(1808);
+emit_16(1874);
+emit_16(1807);
+emit_16(1874);
+emit_16(1808);
+emit_16(1875);
+emit_16(1809);
+emit_16(1875);
+emit_16(1808);
+emit_16(1875);
+emit_16(1809);
+emit_16(1876);
+emit_16(1810);
+emit_16(1876);
+emit_16(1809);
+emit_16(1876);
+emit_16(1810);
+emit_16(1877);
+emit_16(1811);
+emit_16(1877);
+emit_16(1810);
+emit_16(1877);
+emit_16(1811);
+emit_16(1878);
+emit_16(1812);
+emit_16(1878);
+emit_16(1811);
+emit_16(1878);
+emit_16(1812);
+emit_16(1879);
+emit_16(1813);
+emit_16(1879);
+emit_16(1812);
+emit_16(1879);
+emit_16(1813);
+emit_16(1880);
+emit_16(1814);
+emit_16(1880);
+emit_16(1813);
+emit_16(1880);
+emit_16(1814);
+emit_16(1881);
+emit_16(1815);
+emit_16(1881);
+emit_16(1814);
+emit_16(1881);
+emit_16(1815);
+emit_16(1882);
+emit_16(1816);
+emit_16(1882);
+emit_16(1815);
+emit_16(1882);
+emit_16(1816);
+emit_16(1883);
+emit_16(1817);
+emit_16(1883);
+emit_16(1816);
+emit_16(1883);
+emit_16(1817);
+emit_16(1884);
+emit_16(1818);
+emit_16(1884);
+emit_16(1817);
+emit_16(1884);
+emit_16(1818);
+emit_16(1885);
+emit_16(1819);
+emit_16(1885);
+emit_16(1818);
+emit_16(1885);
+emit_16(1819);
+emit_16(1886);
+emit_16(1820);
+emit_16(1886);
+emit_16(1819);
+emit_16(1886);
+emit_16(1820);
+emit_16(1887);
+emit_16(1821);
+emit_16(1887);
+emit_16(1820);
+emit_16(1887);
+emit_16(1821);
+emit_16(1888);
+emit_16(1822);
+emit_16(1888);
+emit_16(1821);
+emit_16(1888);
+emit_16(1822);
+emit_16(1889);
+emit_16(1823);
+emit_16(1889);
+emit_16(1822);
+emit_16(1889);
+emit_16(1823);
+emit_16(1890);
+emit_16(1824);
+emit_16(1890);
+emit_16(1823);
+emit_16(1890);
+emit_16(1824);
+emit_16(1891);
+emit_16(1825);
+emit_16(1891);
+emit_16(1824);
+emit_16(1891);
+emit_16(1825);
+emit_16(1892);
+emit_16(1826);
+emit_16(1892);
+emit_16(1825);
+emit_16(1892);
+emit_16(1826);
+emit_16(1893);
+emit_16(1827);
+emit_16(1893);
+emit_16(1826);
+emit_16(1893);
+emit_16(1827);
+emit_16(1894);
+emit_16(1828);
+emit_16(1894);
+emit_16(1827);
+emit_16(1894);
+emit_16(1828);
+emit_16(1895);
+emit_16(1829);
+emit_16(1895);
+emit_16(1828);
+emit_16(1895);
+emit_16(1829);
+emit_16(1896);
+emit_16(1830);
+emit_16(1896);
+emit_16(1829);
+emit_16(1896);
+emit_16(1830);
+emit_16(1897);
+emit_16(1831);
+emit_16(1897);
+emit_16(1830);
+emit_16(1897);
+emit_16(1831);
+emit_16(1898);
+emit_16(1832);
+emit_16(1898);
+emit_16(1831);
+emit_16(1898);
+emit_16(1832);
+emit_16(1899);
+emit_16(1833);
+emit_16(1899);
+emit_16(1832);
+emit_16(1899);
+emit_16(1833);
+emit_16(1900);
+emit_16(1834);
+emit_16(1900);
+emit_16(1833);
+emit_16(1900);
+emit_16(1834);
+emit_16(1901);
+emit_16(1835);
+emit_16(1901);
+emit_16(1834);
+emit_16(1901);
+emit_16(1835);
+emit_16(1902);
+emit_16(1836);
+emit_16(1902);
+emit_16(1835);
+emit_16(1902);
+emit_16(1836);
+emit_16(1903);
+emit_16(1837);
+emit_16(1903);
+emit_16(1836);
+emit_16(1903);
+emit_16(1837);
+emit_16(1904);
+emit_16(1838);
+emit_16(1904);
+emit_16(1837);
+emit_16(1904);
+emit_16(1838);
+emit_16(1905);
+emit_16(1839);
+emit_16(1905);
+emit_16(1838);
+emit_16(1905);
+emit_16(1839);
+emit_16(1906);
+emit_16(1840);
+emit_16(1906);
+emit_16(1839);
+emit_16(1906);
+emit_16(1840);
+emit_16(1907);
+emit_16(1841);
+emit_16(1907);
+emit_16(1840);
+emit_16(1907);
+emit_16(1841);
+emit_16(1908);
+emit_16(1842);
+emit_16(1908);
+emit_16(1841);
+emit_16(1908);
+emit_16(1842);
+emit_16(1909);
+emit_16(1843);
+emit_16(1909);
+emit_16(1842);
+emit_16(1909);
+emit_16(1843);
+emit_16(1910);
+emit_16(1844);
+emit_16(1910);
+emit_16(1843);
+emit_16(1910);
+emit_16(1844);
+emit_16(1911);
+emit_16(1845);
+emit_16(1911);
+emit_16(1844);
+emit_16(1911);
+emit_16(1845);
+emit_16(1912);
+emit_16(1846);
+emit_16(1912);
+emit_16(1845);
+emit_16(1912);
+emit_16(1846);
+emit_16(1913);
+emit_16(1847);
+emit_16(1913);
+emit_16(1846);
+emit_16(1914);
+emit_16(1848);
+emit_16(1915);
+emit_16(1849);
+emit_16(1915);
+emit_16(1848);
+emit_16(1915);
+emit_16(1849);
+emit_16(1916);
+emit_16(1850);
+emit_16(1916);
+emit_16(1849);
+emit_16(1916);
+emit_16(1850);
+emit_16(1917);
+emit_16(1851);
+emit_16(1917);
+emit_16(1850);
+emit_16(1917);
+emit_16(1851);
+emit_16(1918);
+emit_16(1852);
+emit_16(1918);
+emit_16(1851);
+emit_16(1918);
+emit_16(1852);
+emit_16(1919);
+emit_16(1853);
+emit_16(1919);
+emit_16(1852);
+emit_16(1919);
+emit_16(1853);
+emit_16(1920);
+emit_16(1854);
+emit_16(1920);
+emit_16(1853);
+emit_16(1920);
+emit_16(1854);
+emit_16(1921);
+emit_16(1855);
+emit_16(1921);
+emit_16(1854);
+emit_16(1921);
+emit_16(1855);
+emit_16(1922);
+emit_16(1856);
+emit_16(1922);
+emit_16(1855);
+emit_16(1922);
+emit_16(1856);
+emit_16(1923);
+emit_16(1857);
+emit_16(1923);
+emit_16(1856);
+emit_16(1923);
+emit_16(1857);
+emit_16(1924);
+emit_16(1858);
+emit_16(1924);
+emit_16(1857);
+emit_16(1924);
+emit_16(1858);
+emit_16(1925);
+emit_16(1859);
+emit_16(1925);
+emit_16(1858);
+emit_16(1925);
+emit_16(1859);
+emit_16(1926);
+emit_16(1860);
+emit_16(1926);
+emit_16(1859);
+emit_16(1926);
+emit_16(1860);
+emit_16(1927);
+emit_16(1861);
+emit_16(1927);
+emit_16(1860);
+emit_16(1927);
+emit_16(1861);
+emit_16(1928);
+emit_16(1862);
+emit_16(1928);
+emit_16(1861);
+emit_16(1928);
+emit_16(1862);
+emit_16(1929);
+emit_16(1863);
+emit_16(1929);
+emit_16(1862);
+emit_16(1929);
+emit_16(1863);
+emit_16(1930);
+emit_16(1864);
+emit_16(1930);
+emit_16(1863);
+emit_16(1930);
+emit_16(1864);
+emit_16(1931);
+emit_16(1865);
+emit_16(1931);
+emit_16(1864);
+emit_16(1931);
+emit_16(1865);
+emit_16(1932);
+emit_16(1866);
+emit_16(1932);
+emit_16(1865);
+emit_16(1932);
+emit_16(1866);
+emit_16(1933);
+emit_16(1867);
+emit_16(1933);
+emit_16(1866);
+emit_16(1933);
+emit_16(1867);
+emit_16(1934);
+emit_16(1868);
+emit_16(1934);
+emit_16(1867);
+emit_16(1934);
+emit_16(1868);
+emit_16(1935);
+emit_16(1869);
+emit_16(1935);
+emit_16(1868);
+emit_16(1935);
+emit_16(1869);
+emit_16(1936);
+emit_16(1870);
+emit_16(1936);
+emit_16(1869);
+emit_16(1936);
+emit_16(1870);
+emit_16(1937);
+emit_16(1871);
+emit_16(1937);
+emit_16(1870);
+emit_16(1937);
+emit_16(1871);
+emit_16(1938);
+emit_16(1872);
+emit_16(1938);
+emit_16(1871);
+emit_16(1938);
+emit_16(1872);
+emit_16(1939);
+emit_16(1873);
+emit_16(1939);
+emit_16(1872);
+emit_16(1939);
+emit_16(1873);
+emit_16(1940);
+emit_16(1874);
+emit_16(1940);
+emit_16(1873);
+emit_16(1940);
+emit_16(1874);
+emit_16(1941);
+emit_16(1875);
+emit_16(1941);
+emit_16(1874);
+emit_16(1941);
+emit_16(1875);
+emit_16(1942);
+emit_16(1876);
+emit_16(1942);
+emit_16(1875);
+emit_16(1942);
+emit_16(1876);
+emit_16(1943);
+emit_16(1877);
+emit_16(1943);
+emit_16(1876);
+emit_16(1943);
+emit_16(1877);
+emit_16(1944);
+emit_16(1878);
+emit_16(1944);
+emit_16(1877);
+emit_16(1944);
+emit_16(1878);
+emit_16(1945);
+emit_16(1879);
+emit_16(1945);
+emit_16(1878);
+emit_16(1945);
+emit_16(1879);
+emit_16(1946);
+emit_16(1880);
+emit_16(1946);
+emit_16(1879);
+emit_16(1946);
+emit_16(1880);
+emit_16(1947);
+emit_16(1881);
+emit_16(1947);
+emit_16(1880);
+emit_16(1947);
+emit_16(1881);
+emit_16(1948);
+emit_16(1882);
+emit_16(1948);
+emit_16(1881);
+emit_16(1948);
+emit_16(1882);
+emit_16(1949);
+emit_16(1883);
+emit_16(1949);
+emit_16(1882);
+emit_16(1949);
+emit_16(1883);
+emit_16(1950);
+emit_16(1884);
+emit_16(1950);
+emit_16(1883);
+emit_16(1950);
+emit_16(1884);
+emit_16(1951);
+emit_16(1885);
+emit_16(1951);
+emit_16(1884);
+emit_16(1951);
+emit_16(1885);
+emit_16(1952);
+emit_16(1886);
+emit_16(1952);
+emit_16(1885);
+emit_16(1952);
+emit_16(1886);
+emit_16(1953);
+emit_16(1887);
+emit_16(1953);
+emit_16(1886);
+emit_16(1953);
+emit_16(1887);
+emit_16(1954);
+emit_16(1888);
+emit_16(1954);
+emit_16(1887);
+emit_16(1954);
+emit_16(1888);
+emit_16(1955);
+emit_16(1889);
+emit_16(1955);
+emit_16(1888);
+emit_16(1955);
+emit_16(1889);
+emit_16(1956);
+emit_16(1890);
+emit_16(1956);
+emit_16(1889);
+emit_16(1956);
+emit_16(1890);
+emit_16(1957);
+emit_16(1891);
+emit_16(1957);
+emit_16(1890);
+emit_16(1957);
+emit_16(1891);
+emit_16(1958);
+emit_16(1892);
+emit_16(1958);
+emit_16(1891);
+emit_16(1958);
+emit_16(1892);
+emit_16(1959);
+emit_16(1893);
+emit_16(1959);
+emit_16(1892);
+emit_16(1959);
+emit_16(1893);
+emit_16(1960);
+emit_16(1894);
+emit_16(1960);
+emit_16(1893);
+emit_16(1960);
+emit_16(1894);
+emit_16(1961);
+emit_16(1895);
+emit_16(1961);
+emit_16(1894);
+emit_16(1961);
+emit_16(1895);
+emit_16(1962);
+emit_16(1896);
+emit_16(1962);
+emit_16(1895);
+emit_16(1962);
+emit_16(1896);
+emit_16(1963);
+emit_16(1897);
+emit_16(1963);
+emit_16(1896);
+emit_16(1963);
+emit_16(1897);
+emit_16(1964);
+emit_16(1898);
+emit_16(1964);
+emit_16(1897);
+emit_16(1964);
+emit_16(1898);
+emit_16(1965);
+emit_16(1899);
+emit_16(1965);
+emit_16(1898);
+emit_16(1965);
+emit_16(1899);
+emit_16(1966);
+emit_16(1900);
+emit_16(1966);
+emit_16(1899);
+emit_16(1966);
+emit_16(1900);
+emit_16(1967);
+emit_16(1901);
+emit_16(1967);
+emit_16(1900);
+emit_16(1967);
+emit_16(1901);
+emit_16(1968);
+emit_16(1902);
+emit_16(1968);
+emit_16(1901);
+emit_16(1968);
+emit_16(1902);
+emit_16(1969);
+emit_16(1903);
+emit_16(1969);
+emit_16(1902);
+emit_16(1969);
+emit_16(1903);
+emit_16(1970);
+emit_16(1904);
+emit_16(1970);
+emit_16(1903);
+emit_16(1970);
+emit_16(1904);
+emit_16(1971);
+emit_16(1905);
+emit_16(1971);
+emit_16(1904);
+emit_16(1971);
+emit_16(1905);
+emit_16(1972);
+emit_16(1906);
+emit_16(1972);
+emit_16(1905);
+emit_16(1972);
+emit_16(1906);
+emit_16(1973);
+emit_16(1907);
+emit_16(1973);
+emit_16(1906);
+emit_16(1973);
+emit_16(1907);
+emit_16(1974);
+emit_16(1908);
+emit_16(1974);
+emit_16(1907);
+emit_16(1974);
+emit_16(1908);
+emit_16(1975);
+emit_16(1909);
+emit_16(1975);
+emit_16(1908);
+emit_16(1975);
+emit_16(1909);
+emit_16(1976);
+emit_16(1910);
+emit_16(1976);
+emit_16(1909);
+emit_16(1976);
+emit_16(1910);
+emit_16(1977);
+emit_16(1911);
+emit_16(1977);
+emit_16(1910);
+emit_16(1977);
+emit_16(1911);
+emit_16(1978);
+emit_16(1912);
+emit_16(1978);
+emit_16(1911);
+emit_16(1978);
+emit_16(1912);
+emit_16(1979);
+emit_16(1913);
+emit_16(1979);
+emit_16(1912);
+emit_16(1980);
+emit_16(1914);
+emit_16(1981);
+emit_16(1915);
+emit_16(1981);
+emit_16(1914);
+emit_16(1981);
+emit_16(1915);
+emit_16(1982);
+emit_16(1916);
+emit_16(1982);
+emit_16(1915);
+emit_16(1982);
+emit_16(1916);
+emit_16(1983);
+emit_16(1917);
+emit_16(1983);
+emit_16(1916);
+emit_16(1983);
+emit_16(1917);
+emit_16(1984);
+emit_16(1918);
+emit_16(1984);
+emit_16(1917);
+emit_16(1984);
+emit_16(1918);
+emit_16(1985);
+emit_16(1919);
+emit_16(1985);
+emit_16(1918);
+emit_16(1985);
+emit_16(1919);
+emit_16(1986);
+emit_16(1920);
+emit_16(1986);
+emit_16(1919);
+emit_16(1986);
+emit_16(1920);
+emit_16(1987);
+emit_16(1921);
+emit_16(1987);
+emit_16(1920);
+emit_16(1987);
+emit_16(1921);
+emit_16(1988);
+emit_16(1922);
+emit_16(1988);
+emit_16(1921);
+emit_16(1988);
+emit_16(1922);
+emit_16(1989);
+emit_16(1923);
+emit_16(1989);
+emit_16(1922);
+emit_16(1989);
+emit_16(1923);
+emit_16(1990);
+emit_16(1924);
+emit_16(1990);
+emit_16(1923);
+emit_16(1990);
+emit_16(1924);
+emit_16(1991);
+emit_16(1925);
+emit_16(1991);
+emit_16(1924);
+emit_16(1991);
+emit_16(1925);
+emit_16(1992);
+emit_16(1926);
+emit_16(1992);
+emit_16(1925);
+emit_16(1992);
+emit_16(1926);
+emit_16(1993);
+emit_16(1927);
+emit_16(1993);
+emit_16(1926);
+emit_16(1993);
+emit_16(1927);
+emit_16(1994);
+emit_16(1928);
+emit_16(1994);
+emit_16(1927);
+emit_16(1994);
+emit_16(1928);
+emit_16(1995);
+emit_16(1929);
+emit_16(1995);
+emit_16(1928);
+emit_16(1995);
+emit_16(1929);
+emit_16(1996);
+emit_16(1930);
+emit_16(1996);
+emit_16(1929);
+emit_16(1996);
+emit_16(1930);
+emit_16(1997);
+emit_16(1931);
+emit_16(1997);
+emit_16(1930);
+emit_16(1997);
+emit_16(1931);
+emit_16(1998);
+emit_16(1932);
+emit_16(1998);
+emit_16(1931);
+emit_16(1998);
+emit_16(1932);
+emit_16(1999);
+emit_16(1933);
+emit_16(1999);
+emit_16(1932);
+emit_16(1999);
+emit_16(1933);
+emit_16(2000);
+emit_16(1934);
+emit_16(2000);
+emit_16(1933);
+emit_16(2000);
+emit_16(1934);
+emit_16(2001);
+emit_16(1935);
+emit_16(2001);
+emit_16(1934);
+emit_16(2001);
+emit_16(1935);
+emit_16(2002);
+emit_16(1936);
+emit_16(2002);
+emit_16(1935);
+emit_16(2002);
+emit_16(1936);
+emit_16(2003);
+emit_16(1937);
+emit_16(2003);
+emit_16(1936);
+emit_16(2003);
+emit_16(1937);
+emit_16(2004);
+emit_16(1938);
+emit_16(2004);
+emit_16(1937);
+emit_16(2004);
+emit_16(1938);
+emit_16(2005);
+emit_16(1939);
+emit_16(2005);
+emit_16(1938);
+emit_16(2005);
+emit_16(1939);
+emit_16(2006);
+emit_16(1940);
+emit_16(2006);
+emit_16(1939);
+emit_16(2006);
+emit_16(1940);
+emit_16(2007);
+emit_16(1941);
+emit_16(2007);
+emit_16(1940);
+emit_16(2007);
+emit_16(1941);
+emit_16(2008);
+emit_16(1942);
+emit_16(2008);
+emit_16(1941);
+emit_16(2008);
+emit_16(1942);
+emit_16(2009);
+emit_16(1943);
+emit_16(2009);
+emit_16(1942);
+emit_16(2009);
+emit_16(1943);
+emit_16(2010);
+emit_16(1944);
+emit_16(2010);
+emit_16(1943);
+emit_16(2010);
+emit_16(1944);
+emit_16(2011);
+emit_16(1945);
+emit_16(2011);
+emit_16(1944);
+emit_16(2011);
+emit_16(1945);
+emit_16(2012);
+emit_16(1946);
+emit_16(2012);
+emit_16(1945);
+emit_16(2012);
+emit_16(1946);
+emit_16(2013);
+emit_16(1947);
+emit_16(2013);
+emit_16(1946);
+emit_16(2013);
+emit_16(1947);
+emit_16(2014);
+emit_16(1948);
+emit_16(2014);
+emit_16(1947);
+emit_16(2014);
+emit_16(1948);
+emit_16(2015);
+emit_16(1949);
+emit_16(2015);
+emit_16(1948);
+emit_16(2015);
+emit_16(1949);
+emit_16(2016);
+emit_16(1950);
+emit_16(2016);
+emit_16(1949);
+emit_16(2016);
+emit_16(1950);
+emit_16(2017);
+emit_16(1951);
+emit_16(2017);
+emit_16(1950);
+emit_16(2017);
+emit_16(1951);
+emit_16(2018);
+emit_16(1952);
+emit_16(2018);
+emit_16(1951);
+emit_16(2018);
+emit_16(1952);
+emit_16(2019);
+emit_16(1953);
+emit_16(2019);
+emit_16(1952);
+emit_16(2019);
+emit_16(1953);
+emit_16(2020);
+emit_16(1954);
+emit_16(2020);
+emit_16(1953);
+emit_16(2020);
+emit_16(1954);
+emit_16(2021);
+emit_16(1955);
+emit_16(2021);
+emit_16(1954);
+emit_16(2021);
+emit_16(1955);
+emit_16(2022);
+emit_16(1956);
+emit_16(2022);
+emit_16(1955);
+emit_16(2022);
+emit_16(1956);
+emit_16(2023);
+emit_16(1957);
+emit_16(2023);
+emit_16(1956);
+emit_16(2023);
+emit_16(1957);
+emit_16(2024);
+emit_16(1958);
+emit_16(2024);
+emit_16(1957);
+emit_16(2024);
+emit_16(1958);
+emit_16(2025);
+emit_16(1959);
+emit_16(2025);
+emit_16(1958);
+emit_16(2025);
+emit_16(1959);
+emit_16(2026);
+emit_16(1960);
+emit_16(2026);
+emit_16(1959);
+emit_16(2026);
+emit_16(1960);
+emit_16(2027);
+emit_16(1961);
+emit_16(2027);
+emit_16(1960);
+emit_16(2027);
+emit_16(1961);
+emit_16(2028);
+emit_16(1962);
+emit_16(2028);
+emit_16(1961);
+emit_16(2028);
+emit_16(1962);
+emit_16(2029);
+emit_16(1963);
+emit_16(2029);
+emit_16(1962);
+emit_16(2029);
+emit_16(1963);
+emit_16(2030);
+emit_16(1964);
+emit_16(2030);
+emit_16(1963);
+emit_16(2030);
+emit_16(1964);
+emit_16(2031);
+emit_16(1965);
+emit_16(2031);
+emit_16(1964);
+emit_16(2031);
+emit_16(1965);
+emit_16(2032);
+emit_16(1966);
+emit_16(2032);
+emit_16(1965);
+emit_16(2032);
+emit_16(1966);
+emit_16(2033);
+emit_16(1967);
+emit_16(2033);
+emit_16(1966);
+emit_16(2033);
+emit_16(1967);
+emit_16(2034);
+emit_16(1968);
+emit_16(2034);
+emit_16(1967);
+emit_16(2034);
+emit_16(1968);
+emit_16(2035);
+emit_16(1969);
+emit_16(2035);
+emit_16(1968);
+emit_16(2035);
+emit_16(1969);
+emit_16(2036);
+emit_16(1970);
+emit_16(2036);
+emit_16(1969);
+emit_16(2036);
+emit_16(1970);
+emit_16(2037);
+emit_16(1971);
+emit_16(2037);
+emit_16(1970);
+emit_16(2037);
+emit_16(1971);
+emit_16(2038);
+emit_16(1972);
+emit_16(2038);
+emit_16(1971);
+emit_16(2038);
+emit_16(1972);
+emit_16(2039);
+emit_16(1973);
+emit_16(2039);
+emit_16(1972);
+emit_16(2039);
+emit_16(1973);
+emit_16(2040);
+emit_16(1974);
+emit_16(2040);
+emit_16(1973);
+emit_16(2040);
+emit_16(1974);
+emit_16(2041);
+emit_16(1975);
+emit_16(2041);
+emit_16(1974);
+emit_16(2041);
+emit_16(1975);
+emit_16(2042);
+emit_16(1976);
+emit_16(2042);
+emit_16(1975);
+emit_16(2042);
+emit_16(1976);
+emit_16(2043);
+emit_16(1977);
+emit_16(2043);
+emit_16(1976);
+emit_16(2043);
+emit_16(1977);
+emit_16(2044);
+emit_16(1978);
+emit_16(2044);
+emit_16(1977);
+emit_16(2044);
+emit_16(1978);
+emit_16(2045);
+emit_16(1979);
+emit_16(2045);
+emit_16(1978);
+emit_16(2046);
+emit_16(1980);
+emit_16(2047);
+emit_16(1981);
+emit_16(2047);
+emit_16(1980);
+emit_16(2047);
+emit_16(1981);
+emit_16(2048);
+emit_16(1982);
+emit_16(2048);
+emit_16(1981);
+emit_16(2048);
+emit_16(1982);
+emit_16(2049);
+emit_16(1983);
+emit_16(2049);
+emit_16(1982);
+emit_16(2049);
+emit_16(1983);
+emit_16(2050);
+emit_16(1984);
+emit_16(2050);
+emit_16(1983);
+emit_16(2050);
+emit_16(1984);
+emit_16(2051);
+emit_16(1985);
+emit_16(2051);
+emit_16(1984);
+emit_16(2051);
+emit_16(1985);
+emit_16(2052);
+emit_16(1986);
+emit_16(2052);
+emit_16(1985);
+emit_16(2052);
+emit_16(1986);
+emit_16(2053);
+emit_16(1987);
+emit_16(2053);
+emit_16(1986);
+emit_16(2053);
+emit_16(1987);
+emit_16(2054);
+emit_16(1988);
+emit_16(2054);
+emit_16(1987);
+emit_16(2054);
+emit_16(1988);
+emit_16(2055);
+emit_16(1989);
+emit_16(2055);
+emit_16(1988);
+emit_16(2055);
+emit_16(1989);
+emit_16(2056);
+emit_16(1990);
+emit_16(2056);
+emit_16(1989);
+emit_16(2056);
+emit_16(1990);
+emit_16(2057);
+emit_16(1991);
+emit_16(2057);
+emit_16(1990);
+emit_16(2057);
+emit_16(1991);
+emit_16(2058);
+emit_16(1992);
+emit_16(2058);
+emit_16(1991);
+emit_16(2058);
+emit_16(1992);
+emit_16(2059);
+emit_16(1993);
+emit_16(2059);
+emit_16(1992);
+emit_16(2059);
+emit_16(1993);
+emit_16(2060);
+emit_16(1994);
+emit_16(2060);
+emit_16(1993);
+emit_16(2060);
+emit_16(1994);
+emit_16(2061);
+emit_16(1995);
+emit_16(2061);
+emit_16(1994);
+emit_16(2061);
+emit_16(1995);
+emit_16(2062);
+emit_16(1996);
+emit_16(2062);
+emit_16(1995);
+emit_16(2062);
+emit_16(1996);
+emit_16(2063);
+emit_16(1997);
+emit_16(2063);
+emit_16(1996);
+emit_16(2063);
+emit_16(1997);
+emit_16(2064);
+emit_16(1998);
+emit_16(2064);
+emit_16(1997);
+emit_16(2064);
+emit_16(1998);
+emit_16(2065);
+emit_16(1999);
+emit_16(2065);
+emit_16(1998);
+emit_16(2065);
+emit_16(1999);
+emit_16(2066);
+emit_16(2000);
+emit_16(2066);
+emit_16(1999);
+emit_16(2066);
+emit_16(2000);
+emit_16(2067);
+emit_16(2001);
+emit_16(2067);
+emit_16(2000);
+emit_16(2067);
+emit_16(2001);
+emit_16(2068);
+emit_16(2002);
+emit_16(2068);
+emit_16(2001);
+emit_16(2068);
+emit_16(2002);
+emit_16(2069);
+emit_16(2003);
+emit_16(2069);
+emit_16(2002);
+emit_16(2069);
+emit_16(2003);
+emit_16(2070);
+emit_16(2004);
+emit_16(2070);
+emit_16(2003);
+emit_16(2070);
+emit_16(2004);
+emit_16(2071);
+emit_16(2005);
+emit_16(2071);
+emit_16(2004);
+emit_16(2071);
+emit_16(2005);
+emit_16(2072);
+emit_16(2006);
+emit_16(2072);
+emit_16(2005);
+emit_16(2072);
+emit_16(2006);
+emit_16(2073);
+emit_16(2007);
+emit_16(2073);
+emit_16(2006);
+emit_16(2073);
+emit_16(2007);
+emit_16(2074);
+emit_16(2008);
+emit_16(2074);
+emit_16(2007);
+emit_16(2074);
+emit_16(2008);
+emit_16(2075);
+emit_16(2009);
+emit_16(2075);
+emit_16(2008);
+emit_16(2075);
+emit_16(2009);
+emit_16(2076);
+emit_16(2010);
+emit_16(2076);
+emit_16(2009);
+emit_16(2076);
+emit_16(2010);
+emit_16(2077);
+emit_16(2011);
+emit_16(2077);
+emit_16(2010);
+emit_16(2077);
+emit_16(2011);
+emit_16(2078);
+emit_16(2012);
+emit_16(2078);
+emit_16(2011);
+emit_16(2078);
+emit_16(2012);
+emit_16(2079);
+emit_16(2013);
+emit_16(2079);
+emit_16(2012);
+emit_16(2079);
+emit_16(2013);
+emit_16(2080);
+emit_16(2014);
+emit_16(2080);
+emit_16(2013);
+emit_16(2080);
+emit_16(2014);
+emit_16(2081);
+emit_16(2015);
+emit_16(2081);
+emit_16(2014);
+emit_16(2081);
+emit_16(2015);
+emit_16(2082);
+emit_16(2016);
+emit_16(2082);
+emit_16(2015);
+emit_16(2082);
+emit_16(2016);
+emit_16(2083);
+emit_16(2017);
+emit_16(2083);
+emit_16(2016);
+emit_16(2083);
+emit_16(2017);
+emit_16(2084);
+emit_16(2018);
+emit_16(2084);
+emit_16(2017);
+emit_16(2084);
+emit_16(2018);
+emit_16(2085);
+emit_16(2019);
+emit_16(2085);
+emit_16(2018);
+emit_16(2085);
+emit_16(2019);
+emit_16(2086);
+emit_16(2020);
+emit_16(2086);
+emit_16(2019);
+emit_16(2086);
+emit_16(2020);
+emit_16(2087);
+emit_16(2021);
+emit_16(2087);
+emit_16(2020);
+emit_16(2087);
+emit_16(2021);
+emit_16(2088);
+emit_16(2022);
+emit_16(2088);
+emit_16(2021);
+emit_16(2088);
+emit_16(2022);
+emit_16(2089);
+emit_16(2023);
+emit_16(2089);
+emit_16(2022);
+emit_16(2089);
+emit_16(2023);
+emit_16(2090);
+emit_16(2024);
+emit_16(2090);
+emit_16(2023);
+emit_16(2090);
+emit_16(2024);
+emit_16(2091);
+emit_16(2025);
+emit_16(2091);
+emit_16(2024);
+emit_16(2091);
+emit_16(2025);
+emit_16(2092);
+emit_16(2026);
+emit_16(2092);
+emit_16(2025);
+emit_16(2092);
+emit_16(2026);
+emit_16(2093);
+emit_16(2027);
+emit_16(2093);
+emit_16(2026);
+emit_16(2093);
+emit_16(2027);
+emit_16(2094);
+emit_16(2028);
+emit_16(2094);
+emit_16(2027);
+emit_16(2094);
+emit_16(2028);
+emit_16(2095);
+emit_16(2029);
+emit_16(2095);
+emit_16(2028);
+emit_16(2095);
+emit_16(2029);
+emit_16(2096);
+emit_16(2030);
+emit_16(2096);
+emit_16(2029);
+emit_16(2096);
+emit_16(2030);
+emit_16(2097);
+emit_16(2031);
+emit_16(2097);
+emit_16(2030);
+emit_16(2097);
+emit_16(2031);
+emit_16(2098);
+emit_16(2032);
+emit_16(2098);
+emit_16(2031);
+emit_16(2098);
+emit_16(2032);
+emit_16(2099);
+emit_16(2033);
+emit_16(2099);
+emit_16(2032);
+emit_16(2099);
+emit_16(2033);
+emit_16(2100);
+emit_16(2034);
+emit_16(2100);
+emit_16(2033);
+emit_16(2100);
+emit_16(2034);
+emit_16(2101);
+emit_16(2035);
+emit_16(2101);
+emit_16(2034);
+emit_16(2101);
+emit_16(2035);
+emit_16(2102);
+emit_16(2036);
+emit_16(2102);
+emit_16(2035);
+emit_16(2102);
+emit_16(2036);
+emit_16(2103);
+emit_16(2037);
+emit_16(2103);
+emit_16(2036);
+emit_16(2103);
+emit_16(2037);
+emit_16(2104);
+emit_16(2038);
+emit_16(2104);
+emit_16(2037);
+emit_16(2104);
+emit_16(2038);
+emit_16(2105);
+emit_16(2039);
+emit_16(2105);
+emit_16(2038);
+emit_16(2105);
+emit_16(2039);
+emit_16(2106);
+emit_16(2040);
+emit_16(2106);
+emit_16(2039);
+emit_16(2106);
+emit_16(2040);
+emit_16(2107);
+emit_16(2041);
+emit_16(2107);
+emit_16(2040);
+emit_16(2107);
+emit_16(2041);
+emit_16(2108);
+emit_16(2042);
+emit_16(2108);
+emit_16(2041);
+emit_16(2108);
+emit_16(2042);
+emit_16(2109);
+emit_16(2043);
+emit_16(2109);
+emit_16(2042);
+emit_16(2109);
+emit_16(2043);
+emit_16(2110);
+emit_16(2044);
+emit_16(2110);
+emit_16(2043);
+emit_16(2110);
+emit_16(2044);
+emit_16(2111);
+emit_16(2045);
+emit_16(2111);
+emit_16(2044);
+emit_16(2112);
+emit_16(2046);
+emit_16(2113);
+emit_16(2047);
+emit_16(2113);
+emit_16(2046);
+emit_16(2113);
+emit_16(2047);
+emit_16(2114);
+emit_16(2048);
+emit_16(2114);
+emit_16(2047);
+emit_16(2114);
+emit_16(2048);
+emit_16(2115);
+emit_16(2049);
+emit_16(2115);
+emit_16(2048);
+emit_16(2115);
+emit_16(2049);
+emit_16(2116);
+emit_16(2050);
+emit_16(2116);
+emit_16(2049);
+emit_16(2116);
+emit_16(2050);
+emit_16(2117);
+emit_16(2051);
+emit_16(2117);
+emit_16(2050);
+emit_16(2117);
+emit_16(2051);
+emit_16(2118);
+emit_16(2052);
+emit_16(2118);
+emit_16(2051);
+emit_16(2118);
+emit_16(2052);
+emit_16(2119);
+emit_16(2053);
+emit_16(2119);
+emit_16(2052);
+emit_16(2119);
+emit_16(2053);
+emit_16(2120);
+emit_16(2054);
+emit_16(2120);
+emit_16(2053);
+emit_16(2120);
+emit_16(2054);
+emit_16(2121);
+emit_16(2055);
+emit_16(2121);
+emit_16(2054);
+emit_16(2121);
+emit_16(2055);
+emit_16(2122);
+emit_16(2056);
+emit_16(2122);
+emit_16(2055);
+emit_16(2122);
+emit_16(2056);
+emit_16(2123);
+emit_16(2057);
+emit_16(2123);
+emit_16(2056);
+emit_16(2123);
+emit_16(2057);
+emit_16(2124);
+emit_16(2058);
+emit_16(2124);
+emit_16(2057);
+emit_16(2124);
+emit_16(2058);
+emit_16(2125);
+emit_16(2059);
+emit_16(2125);
+emit_16(2058);
+emit_16(2125);
+emit_16(2059);
+emit_16(2126);
+emit_16(2060);
+emit_16(2126);
+emit_16(2059);
+emit_16(2126);
+emit_16(2060);
+emit_16(2127);
+emit_16(2061);
+emit_16(2127);
+emit_16(2060);
+emit_16(2127);
+emit_16(2061);
+emit_16(2128);
+emit_16(2062);
+emit_16(2128);
+emit_16(2061);
+emit_16(2128);
+emit_16(2062);
+emit_16(2129);
+emit_16(2063);
+emit_16(2129);
+emit_16(2062);
+emit_16(2129);
+emit_16(2063);
+emit_16(2130);
+emit_16(2064);
+emit_16(2130);
+emit_16(2063);
+emit_16(2130);
+emit_16(2064);
+emit_16(2131);
+emit_16(2065);
+emit_16(2131);
+emit_16(2064);
+emit_16(2131);
+emit_16(2065);
+emit_16(2132);
+emit_16(2066);
+emit_16(2132);
+emit_16(2065);
+emit_16(2132);
+emit_16(2066);
+emit_16(2133);
+emit_16(2067);
+emit_16(2133);
+emit_16(2066);
+emit_16(2133);
+emit_16(2067);
+emit_16(2134);
+emit_16(2068);
+emit_16(2134);
+emit_16(2067);
+emit_16(2134);
+emit_16(2068);
+emit_16(2135);
+emit_16(2069);
+emit_16(2135);
+emit_16(2068);
+emit_16(2135);
+emit_16(2069);
+emit_16(2136);
+emit_16(2070);
+emit_16(2136);
+emit_16(2069);
+emit_16(2136);
+emit_16(2070);
+emit_16(2137);
+emit_16(2071);
+emit_16(2137);
+emit_16(2070);
+emit_16(2137);
+emit_16(2071);
+emit_16(2138);
+emit_16(2072);
+emit_16(2138);
+emit_16(2071);
+emit_16(2138);
+emit_16(2072);
+emit_16(2139);
+emit_16(2073);
+emit_16(2139);
+emit_16(2072);
+emit_16(2139);
+emit_16(2073);
+emit_16(2140);
+emit_16(2074);
+emit_16(2140);
+emit_16(2073);
+emit_16(2140);
+emit_16(2074);
+emit_16(2141);
+emit_16(2075);
+emit_16(2141);
+emit_16(2074);
+emit_16(2141);
+emit_16(2075);
+emit_16(2142);
+emit_16(2076);
+emit_16(2142);
+emit_16(2075);
+emit_16(2142);
+emit_16(2076);
+emit_16(2143);
+emit_16(2077);
+emit_16(2143);
+emit_16(2076);
+emit_16(2143);
+emit_16(2077);
+emit_16(2144);
+emit_16(2078);
+emit_16(2144);
+emit_16(2077);
+emit_16(2144);
+emit_16(2078);
+emit_16(2145);
+emit_16(2079);
+emit_16(2145);
+emit_16(2078);
+emit_16(2145);
+emit_16(2079);
+emit_16(2146);
+emit_16(2080);
+emit_16(2146);
+emit_16(2079);
+emit_16(2146);
+emit_16(2080);
+emit_16(2147);
+emit_16(2081);
+emit_16(2147);
+emit_16(2080);
+emit_16(2147);
+emit_16(2081);
+emit_16(2148);
+emit_16(2082);
+emit_16(2148);
+emit_16(2081);
+emit_16(2148);
+emit_16(2082);
+emit_16(2149);
+emit_16(2083);
+emit_16(2149);
+emit_16(2082);
+emit_16(2149);
+emit_16(2083);
+emit_16(2150);
+emit_16(2084);
+emit_16(2150);
+emit_16(2083);
+emit_16(2150);
+emit_16(2084);
+emit_16(2151);
+emit_16(2085);
+emit_16(2151);
+emit_16(2084);
+emit_16(2151);
+emit_16(2085);
+emit_16(2152);
+emit_16(2086);
+emit_16(2152);
+emit_16(2085);
+emit_16(2152);
+emit_16(2086);
+emit_16(2153);
+emit_16(2087);
+emit_16(2153);
+emit_16(2086);
+emit_16(2153);
+emit_16(2087);
+emit_16(2154);
+emit_16(2088);
+emit_16(2154);
+emit_16(2087);
+emit_16(2154);
+emit_16(2088);
+emit_16(2155);
+emit_16(2089);
+emit_16(2155);
+emit_16(2088);
+emit_16(2155);
+emit_16(2089);
+emit_16(2156);
+emit_16(2090);
+emit_16(2156);
+emit_16(2089);
+emit_16(2156);
+emit_16(2090);
+emit_16(2157);
+emit_16(2091);
+emit_16(2157);
+emit_16(2090);
+emit_16(2157);
+emit_16(2091);
+emit_16(2158);
+emit_16(2092);
+emit_16(2158);
+emit_16(2091);
+emit_16(2158);
+emit_16(2092);
+emit_16(2159);
+emit_16(2093);
+emit_16(2159);
+emit_16(2092);
+emit_16(2159);
+emit_16(2093);
+emit_16(2160);
+emit_16(2094);
+emit_16(2160);
+emit_16(2093);
+emit_16(2160);
+emit_16(2094);
+emit_16(2161);
+emit_16(2095);
+emit_16(2161);
+emit_16(2094);
+emit_16(2161);
+emit_16(2095);
+emit_16(2162);
+emit_16(2096);
+emit_16(2162);
+emit_16(2095);
+emit_16(2162);
+emit_16(2096);
+emit_16(2163);
+emit_16(2097);
+emit_16(2163);
+emit_16(2096);
+emit_16(2163);
+emit_16(2097);
+emit_16(2164);
+emit_16(2098);
+emit_16(2164);
+emit_16(2097);
+emit_16(2164);
+emit_16(2098);
+emit_16(2165);
+emit_16(2099);
+emit_16(2165);
+emit_16(2098);
+emit_16(2165);
+emit_16(2099);
+emit_16(2166);
+emit_16(2100);
+emit_16(2166);
+emit_16(2099);
+emit_16(2166);
+emit_16(2100);
+emit_16(2167);
+emit_16(2101);
+emit_16(2167);
+emit_16(2100);
+emit_16(2167);
+emit_16(2101);
+emit_16(2168);
+emit_16(2102);
+emit_16(2168);
+emit_16(2101);
+emit_16(2168);
+emit_16(2102);
+emit_16(2169);
+emit_16(2103);
+emit_16(2169);
+emit_16(2102);
+emit_16(2169);
+emit_16(2103);
+emit_16(2170);
+emit_16(2104);
+emit_16(2170);
+emit_16(2103);
+emit_16(2170);
+emit_16(2104);
+emit_16(2171);
+emit_16(2105);
+emit_16(2171);
+emit_16(2104);
+emit_16(2171);
+emit_16(2105);
+emit_16(2172);
+emit_16(2106);
+emit_16(2172);
+emit_16(2105);
+emit_16(2172);
+emit_16(2106);
+emit_16(2173);
+emit_16(2107);
+emit_16(2173);
+emit_16(2106);
+emit_16(2173);
+emit_16(2107);
+emit_16(2174);
+emit_16(2108);
+emit_16(2174);
+emit_16(2107);
+emit_16(2174);
+emit_16(2108);
+emit_16(2175);
+emit_16(2109);
+emit_16(2175);
+emit_16(2108);
+emit_16(2175);
+emit_16(2109);
+emit_16(2176);
+emit_16(2110);
+emit_16(2176);
+emit_16(2109);
+emit_16(2176);
+emit_16(2110);
+emit_16(2177);
+emit_16(2111);
+emit_16(2177);
+emit_16(2110);
+emit_start(LandscapeIdxCount)
+emit_32(11718);
+emit_32(11310);
+emit_32(11718);
+emit_32(12096);
+emit_32(12870);
+emit_32(13260);
+emit_32(12852);
+emit_32(12480);
+emit_start(_ZTV14BenchmarkDemo4)
+emit_32(0);
+emit_32(_ZTI14BenchmarkDemo4);
+emit_32(_ZN15DemoApplication6myinitEv__index__);
+emit_32(_ZN15DemoApplication16getDynamicsWorldEv__index__);
+emit_32(_ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape__index__);
+emit_32(_ZN14BenchmarkDemo4D1Ev__index__);
+emit_32(_ZN14BenchmarkDemo4D0Ev__index__);
+emit_32(_ZN13BenchmarkDemo20clientMoveAndDisplayEv__index__);
+emit_32(_ZN13BenchmarkDemo15displayCallbackEv__index__);
+emit_start(_ZTI14BenchmarkDemo4)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS14BenchmarkDemo4);
+emit_32(_ZTI13BenchmarkDemo);
+emit_start(_ZTS14BenchmarkDemo4)
+emit_string('14BenchmarkDemo4\x00');
+emit_start(_ZL14benchmarkDemo4)
+emit_32(_ZTV14BenchmarkDemo4+8);
+emit_32(0);
+emit_32(1566444395);
+emit_fill(0,1);
+emit_fill(0,3);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_8(1);
+emit_fill(0,3);
+emit_fill(0,1);
+emit_fill(0,3);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_8(1);
+emit_fill(0,3);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(4);
+emit_32(0);
+emit_32(0);
+emit_start(_ZTI21btBroadphaseInterface)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS21btBroadphaseInterface);
+emit_start(_ZTS21btBroadphaseInterface)
+emit_string('21btBroadphaseInterface\x00');
+emit_start(_ZTI25btOverlappingPairCallback)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS25btOverlappingPairCallback);
+emit_start(_ZTS25btOverlappingPairCallback)
+emit_string('25btOverlappingPairCallback\x00');
+emit_start(_ZTI22btOverlappingPairCache)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS22btOverlappingPairCache);
+emit_32(_ZTI25btOverlappingPairCallback);
+emit_start(_ZTS22btOverlappingPairCache)
+emit_string('22btOverlappingPairCache\x00');
+emit_start(_ZTV15btNullPairCache)
+emit_32(0);
+emit_32(_ZTI15btNullPairCache);
+emit_32(_ZN15btNullPairCacheD1Ev__index__);
+emit_32(_ZN15btNullPairCacheD0Ev__index__);
+emit_32(_ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__);
+emit_32(_ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__);
+emit_32(_ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__);
+emit_32(_ZN15btNullPairCache26getOverlappingPairArrayPtrEv__index__);
+emit_32(_ZNK15btNullPairCache26getOverlappingPairArrayPtrEv__index__);
+emit_32(_ZN15btNullPairCache23getOverlappingPairArrayEv__index__);
+emit_32(_ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__);
+emit_32(_ZNK15btNullPairCache22getNumOverlappingPairsEv__index__);
+emit_32(_ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__);
+emit_32(_ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__);
+emit_32(_ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__);
+emit_32(_ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1___index__);
+emit_32(_ZN15btNullPairCache18hasDeferredRemovalEv__index__);
+emit_32(_ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__);
+emit_32(_ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher__index__);
+emit_start(_ZTI15btNullPairCache)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS15btNullPairCache);
+emit_32(_ZTI22btOverlappingPairCache);
+emit_start(_ZTS15btNullPairCache)
+emit_string('15btNullPairCache\x00');
+emit_start(_2E_str11)
+emit_string('handle > 0 && handle < m_maxHandles\x00');
+emit_start(_2E_str112)
+emit_string('../../../../src/BulletCollision/BroadphaseCollision/btAxisSweep3.h\x00');
+emit_start(_2E_str213)
+emit_string('m_firstFreeHandle\x00');
+emit_start(_2E_str314)
+emit_string('!pair.m_algorithm\x00');
+emit_start(_ZTV20btAxisSweep3InternalItE)
+emit_32(0);
+emit_32(_ZTI20btAxisSweep3InternalItE);
+emit_32(_ZN20btAxisSweep3InternalItED1Ev__index__);
+emit_32(_ZN20btAxisSweep3InternalItED0Ev__index__);
+emit_32(_ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4___index__);
+emit_32(_ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__);
+emit_32(_ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher__index__);
+emit_32(_ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4___index__);
+emit_32(_ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3___index__);
+emit_32(_ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback__index__);
+emit_32(_ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher__index__);
+emit_32(_ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__);
+emit_32(_ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__);
+emit_32(_ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2___index__);
+emit_32(_ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher__index__);
+emit_32(_ZN20btAxisSweep3InternalItE10printStatsEv__index__);
+emit_start(_ZTI20btAxisSweep3InternalItE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS20btAxisSweep3InternalItE);
+emit_32(_ZTI21btBroadphaseInterface);
+emit_start(_ZTS20btAxisSweep3InternalItE)
+emit_string('20btAxisSweep3InternalItE\x00');
+emit_start(_ZTV12btAxisSweep3)
+emit_32(0);
+emit_32(_ZTI12btAxisSweep3);
+emit_32(_ZN12btAxisSweep3D1Ev__index__);
+emit_32(_ZN12btAxisSweep3D0Ev__index__);
+emit_32(_ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4___index__);
+emit_32(_ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__);
+emit_32(_ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher__index__);
+emit_32(_ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4___index__);
+emit_32(_ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3___index__);
+emit_32(_ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback__index__);
+emit_32(_ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher__index__);
+emit_32(_ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__);
+emit_32(_ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__);
+emit_32(_ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2___index__);
+emit_32(_ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher__index__);
+emit_32(_ZN20btAxisSweep3InternalItE10printStatsEv__index__);
+emit_start(_ZTI12btAxisSweep3)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS12btAxisSweep3);
+emit_32(_ZTI20btAxisSweep3InternalItE);
+emit_start(_ZTS12btAxisSweep3)
+emit_string('12btAxisSweep3\x00');
+emit_start(_ZTV20btCollisionAlgorithm)
+emit_32(0);
+emit_32(_ZTI20btCollisionAlgorithm);
+emit_32(_ZN20btCollisionAlgorithmD1Ev__index__);
+emit_32(_ZN20btCollisionAlgorithmD0Ev__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_start(_ZTI20btCollisionAlgorithm)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS20btCollisionAlgorithm);
+emit_start(_ZTS20btCollisionAlgorithm)
+emit_string('20btCollisionAlgorithm\x00');
+emit_start(_ZTIN6btDbvt8ICollideE)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTSN6btDbvt8ICollideE);
+emit_start(_ZTSN6btDbvt8ICollideE)
+emit_string('N6btDbvt8ICollideE\x00');
+emit_start(_2E_str1118)
+emit_string('../../../../src/BulletCollision/BroadphaseCollision/btDbvt.cpp\x00');
+emit_start(_2E_str22)
+emit_string('n==p->childs[i]\x00');
+emit_start(_ZTV18btDbvtTreeCollider)
+emit_32(0);
+emit_32(_ZTI18btDbvtTreeCollider);
+emit_32(_ZN18btDbvtTreeColliderD1Ev__index__);
+emit_32(_ZN18btDbvtTreeColliderD0Ev__index__);
+emit_32(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2___index__);
+emit_32(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode__index__);
+emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__);
+emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__);
+emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__);
+emit_start(_ZTI18btDbvtTreeCollider)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS18btDbvtTreeCollider);
+emit_32(_ZTIN6btDbvt8ICollideE);
+emit_start(_ZTS18btDbvtTreeCollider)
+emit_string('18btDbvtTreeCollider\x00');
+emit_start(_ZTV19BroadphaseRayTester)
+emit_32(0);
+emit_32(_ZTI19BroadphaseRayTester);
+emit_32(_ZN19BroadphaseRayTesterD1Ev__index__);
+emit_32(_ZN19BroadphaseRayTesterD0Ev__index__);
+emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__);
+emit_32(_ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode__index__);
+emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__);
+emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__);
+emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__);
+emit_start(_ZTI19BroadphaseRayTester)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS19BroadphaseRayTester);
+emit_32(_ZTIN6btDbvt8ICollideE);
+emit_start(_ZTS19BroadphaseRayTester)
+emit_string('19BroadphaseRayTester\x00');
+emit_start(_ZTV20BroadphaseAabbTester)
+emit_32(0);
+emit_32(_ZTI20BroadphaseAabbTester);
+emit_32(_ZN20BroadphaseAabbTesterD1Ev__index__);
+emit_32(_ZN20BroadphaseAabbTesterD0Ev__index__);
+emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__);
+emit_32(_ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode__index__);
+emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__);
+emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__);
+emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__);
+emit_start(_ZTI20BroadphaseAabbTester)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS20BroadphaseAabbTester);
+emit_32(_ZTIN6btDbvt8ICollideE);
+emit_start(_ZTS20BroadphaseAabbTester)
+emit_string('20BroadphaseAabbTester\x00');
+emit_start(_2E_str18)
+emit_string('../../../../src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp\x00');
+emit_start(_ZTV16btDbvtBroadphase)
+emit_32(0);
+emit_32(_ZTI16btDbvtBroadphase);
+emit_32(_ZN16btDbvtBroadphaseD1Ev__index__);
+emit_32(_ZN16btDbvtBroadphaseD0Ev__index__);
+emit_32(_ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3___index__);
+emit_32(_ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__);
+emit_32(_ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher__index__);
+emit_32(_ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3___index__);
+emit_32(_ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2___index__);
+emit_32(_ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback__index__);
+emit_32(_ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher__index__);
+emit_32(_ZN16btDbvtBroadphase23getOverlappingPairCacheEv__index__);
+emit_32(_ZNK16btDbvtBroadphase23getOverlappingPairCacheEv__index__);
+emit_32(_ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1___index__);
+emit_32(_ZN16btDbvtBroadphase9resetPoolEP12btDispatcher__index__);
+emit_32(_ZN16btDbvtBroadphase10printStatsEv__index__);
+emit_start(_ZTI16btDbvtBroadphase)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS16btDbvtBroadphase);
+emit_32(_ZTI21btBroadphaseInterface);
+emit_start(_ZTS16btDbvtBroadphase)
+emit_string('16btDbvtBroadphase\x00');
+emit_start(_ZTV12btDispatcher)
+emit_32(0);
+emit_32(_ZTI12btDispatcher);
+emit_32(_ZN12btDispatcherD1Ev__index__);
+emit_32(_ZN12btDispatcherD0Ev__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_start(_ZTI12btDispatcher)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS12btDispatcher);
+emit_start(_ZTS12btDispatcher)
+emit_string('12btDispatcher\x00');
+emit_start(_ZTI21btNodeOverlapCallback)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS21btNodeOverlapCallback);
+emit_start(_ZTS21btNodeOverlapCallback)
+emit_string('21btNodeOverlapCallback\x00');
+emit_start(_2E_str10)
+emit_string('0\x00');
+emit_start(_2E_str212)
+emit_string('m_useQuantization\x00');
+emit_start(_2E_str313)
+emit_string('../../../../src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h\x00');
+emit_start(_2E_str414)
+emit_string('point.getX() <= m_bvhAabbMax.getX()\x00');
+emit_start(_2E_str515)
+emit_string('point.getY() <= m_bvhAabbMax.getY()\x00');
+emit_start(_2E_str616)
+emit_string('point.getZ() <= m_bvhAabbMax.getZ()\x00');
+emit_start(_2E_str717)
+emit_string('point.getX() >= m_bvhAabbMin.getX()\x00');
+emit_start(_2E_str820)
+emit_string('point.getY() >= m_bvhAabbMin.getY()\x00');
+emit_start(_2E_str9)
+emit_string('point.getZ() >= m_bvhAabbMin.getZ()\x00');
+emit_start(_ZTI17btOverlapCallback)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS17btOverlapCallback);
+emit_start(_ZTS17btOverlapCallback)
+emit_string('17btOverlapCallback\x00');
+emit_start(_ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback)
+emit_32(0);
+emit_32(_ZTIZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback);
+emit_32(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev__index__);
+emit_32(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev__index__);
+emit_32(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair__index__);
+emit_start(_ZTIZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback);
+emit_32(_ZTI17btOverlapCallback);
+emit_start(_ZTSZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback)
+emit_string('ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback\x00');
+emit_start(_ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback)
+emit_32(0);
+emit_32(_ZTIZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback);
+emit_32(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev__index__);
+emit_32(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev__index__);
+emit_32(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair__index__);
+emit_start(_ZTIZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback);
+emit_32(_ZTI17btOverlapCallback);
+emit_start(_ZTSZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback)
+emit_string('ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback\x00');
+emit_start(_ZTV28btHashedOverlappingPairCache)
+emit_32(0);
+emit_32(_ZTI28btHashedOverlappingPairCache);
+emit_32(_ZN28btHashedOverlappingPairCacheD1Ev__index__);
+emit_32(_ZN28btHashedOverlappingPairCacheD0Ev__index__);
+emit_32(_ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__);
+emit_32(_ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__);
+emit_32(_ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__);
+emit_32(_ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__);
+emit_32(_ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__);
+emit_32(_ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv__index__);
+emit_32(_ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__);
+emit_32(_ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv__index__);
+emit_32(_ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__);
+emit_32(_ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__);
+emit_32(_ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__);
+emit_32(_ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1___index__);
+emit_32(_ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv__index__);
+emit_32(_ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__);
+emit_32(_ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher__index__);
+emit_start(_ZTI28btHashedOverlappingPairCache)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS28btHashedOverlappingPairCache);
+emit_32(_ZTI22btOverlappingPairCache);
+emit_start(_ZTS28btHashedOverlappingPairCache)
+emit_string('28btHashedOverlappingPairCache\x00');
+emit_start(_2E_str121)
+emit_string('../../../../src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp\x00');
+emit_start(_2E_str222)
+emit_string('index < m_overlappingPairArray.size()\x00');
+emit_start(_2E_str323)
+emit_string('../../../../src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h\x00');
+emit_start(_2E_str424)
+emit_string('pair->m_pProxy0->getUid() == proxyId1\x00');
+emit_start(_2E_str525)
+emit_string('pair->m_pProxy1->getUid() == proxyId2\x00');
+emit_start(_2E_str626)
+emit_string('pairIndex < m_overlappingPairArray.size()\x00');
+emit_start(_2E_str727)
+emit_string('index != BT_NULL_PAIR\x00');
+emit_start(_2E_str32)
+emit_string('btOptimizedBvhNodeData\x00');
+emit_start(_2E_str133)
+emit_string('btQuantizedBvhNodeData\x00');
+emit_start(_2E_str234)
+emit_string('btBvhSubtreeInfoData\x00');
+emit_start(_2E_str335)
+emit_string('btQuantizedBvhFloatData\x00');
+emit_start(_ZTV14btQuantizedBvh)
+emit_32(0);
+emit_32(_ZTI14btQuantizedBvh);
+emit_32(_ZN14btQuantizedBvhD1Ev__index__);
+emit_32(_ZN14btQuantizedBvhD0Ev__index__);
+emit_32(_ZNK14btQuantizedBvh9serializeEPvjb__index__);
+emit_32(_ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv__index__);
+emit_32(_ZNK14btQuantizedBvh9serializeEPvP12btSerializer__index__);
+emit_32(_ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData__index__);
+emit_32(_ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData__index__);
+emit_start(_ZTI14btQuantizedBvh)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS14btQuantizedBvh);
+emit_start(_ZTS14btQuantizedBvh)
+emit_string('14btQuantizedBvh\x00');
+emit_start(_2E_str537)
+emit_string('../../../../src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp\x00');
+emit_start(_2E_str638)
+emit_string('m_subtreeHeaderCount == m_SubtreeHeaders.size()\x00');
+emit_start(_2E_str739)
+emit_string('isLeafNode()\x00');
+emit_start(_2E_str941)
+emit_string('!isLeafNode()\x00');
+emit_start(_2E_str1143)
+emit_string('walkIterations < subTreeSize\x00');
+emit_start(_2E_str1844)
+emit_string('!m_useQuantization\x00');
+emit_start(_2E_str1921)
+emit_string('walkIterations < m_curNodeIndex\x00');
+emit_start(_2E_str21)
+emit_string('!unbal\x00');
+emit_start(_2E_str2246)
+emit_string('numIndices>0\x00');
+emit_start(_ZTV30btActivatingCollisionAlgorithm)
+emit_32(0);
+emit_32(_ZTI30btActivatingCollisionAlgorithm);
+emit_32(_ZN30btActivatingCollisionAlgorithmD1Ev__index__);
+emit_32(_ZN30btActivatingCollisionAlgorithmD0Ev__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_start(_ZTI30btActivatingCollisionAlgorithm)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS30btActivatingCollisionAlgorithm);
+emit_32(_ZTI20btCollisionAlgorithm);
+emit_start(_ZTS30btActivatingCollisionAlgorithm)
+emit_string('30btActivatingCollisionAlgorithm\x00');
+emit_start(_2E_str59)
+emit_string('m_manifoldPtr\x00');
+emit_start(_2E_str160)
+emit_string('../../../../src/BulletCollision/CollisionDispatch/btManifoldResult.h\x00');
+emit_start(_ZTV26btBoxBoxCollisionAlgorithm)
+emit_32(0);
+emit_32(_ZTI26btBoxBoxCollisionAlgorithm);
+emit_32(_ZN26btBoxBoxCollisionAlgorithmD1Ev__index__);
+emit_32(_ZN26btBoxBoxCollisionAlgorithmD0Ev__index__);
+emit_32(_ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
+emit_start(_ZTI26btBoxBoxCollisionAlgorithm)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS26btBoxBoxCollisionAlgorithm);
+emit_32(_ZTI30btActivatingCollisionAlgorithm);
+emit_start(_ZTS26btBoxBoxCollisionAlgorithm)
+emit_string('26btBoxBoxCollisionAlgorithm\x00');
+emit_start(_ZTI36btDiscreteCollisionDetectorInterface)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS36btDiscreteCollisionDetectorInterface);
+emit_start(_ZTS36btDiscreteCollisionDetectorInterface)
+emit_string('36btDiscreteCollisionDetectorInterface\x00');
+emit_start(_ZTV16btBoxBoxDetector)
+emit_32(0);
+emit_32(_ZTI16btBoxBoxDetector);
+emit_32(_ZN16btBoxBoxDetectorD1Ev__index__);
+emit_32(_ZN16btBoxBoxDetectorD0Ev__index__);
+emit_32(_ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__);
+emit_start(_ZTI16btBoxBoxDetector)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS16btBoxBoxDetector);
+emit_32(_ZTI36btDiscreteCollisionDetectorInterface);
+emit_start(_ZTS16btBoxBoxDetector)
+emit_string('16btBoxBoxDetector\x00');
+emit_start(_2E_str65)
+emit_string('*iret != i0\x00');
+emit_start(_2E_str166)
+emit_string('../../../../src/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp\x00');
+emit_start(_ZTIN36btDiscreteCollisionDetectorInterface6ResultE)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTSN36btDiscreteCollisionDetectorInterface6ResultE);
+emit_start(_ZTSN36btDiscreteCollisionDetectorInterface6ResultE)
+emit_string('N36btDiscreteCollisionDetectorInterface6ResultE\x00');
+emit_start(_ZTV23btCollisionPairCallback)
+emit_32(0);
+emit_32(_ZTI23btCollisionPairCallback);
+emit_32(_ZN23btCollisionPairCallbackD1Ev__index__);
+emit_32(_ZN23btCollisionPairCallbackD0Ev__index__);
+emit_32(_ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair__index__);
+emit_start(_ZTI23btCollisionPairCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS23btCollisionPairCallback);
+emit_32(_ZTI17btOverlapCallback);
+emit_start(_ZTS23btCollisionPairCallback)
+emit_string('23btCollisionPairCallback\x00');
+emit_start(_2E_str169)
+emit_string('../../../../src/LinearMath/btPoolAllocator.h\x00');
+emit_start(_2E_str270)
+emit_string('!size || size<=m_elemSize\x00');
+emit_start(_2E_str371)
+emit_string('m_freeCount>0\x00');
+emit_start(_2E_str472)
+emit_string('findIndex < m_manifoldsPtr.size()\x00');
+emit_start(_2E_str573)
+emit_string('../../../../src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp\x00');
+emit_start(_ZTV21btCollisionDispatcher)
+emit_32(0);
+emit_32(_ZTI21btCollisionDispatcher);
+emit_32(_ZN21btCollisionDispatcherD1Ev__index__);
+emit_32(_ZN21btCollisionDispatcherD0Ev__index__);
+emit_32(_ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold__index__);
+emit_32(_ZN21btCollisionDispatcher14getNewManifoldEPvS0___index__);
+emit_32(_ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold__index__);
+emit_32(_ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold__index__);
+emit_32(_ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1___index__);
+emit_32(_ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1___index__);
+emit_32(_ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher__index__);
+emit_32(_ZNK21btCollisionDispatcher15getNumManifoldsEv__index__);
+emit_32(_ZN21btCollisionDispatcher26getManifoldByIndexInternalEi__index__);
+emit_32(_ZN21btCollisionDispatcher26getInternalManifoldPointerEv__index__);
+emit_32(_ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi__index__);
+emit_32(_ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv__index__);
+emit_start(_ZTI21btCollisionDispatcher)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS21btCollisionDispatcher);
+emit_32(_ZTI12btDispatcher);
+emit_start(_ZTS21btCollisionDispatcher)
+emit_string('21btCollisionDispatcher\x00');
+emit_start(_2E_str674)
+emit_string('m_doubleDispatch[i][j]\x00');
+emit_start(_2E_str775)
+emit_string('body0\x00');
+emit_start(_2E_str876)
+emit_string('body1\x00');
+emit_start(_2E_str977)
+emit_string('warning btCollisionDispatcher::needsCollision: static-static collision!\x0a\x00');
+emit_start(_ZTV17btCollisionObject)
+emit_32(0);
+emit_32(_ZTI17btCollisionObject);
+emit_32(_ZN17btCollisionObject24checkCollideWithOverrideEPS___index__);
+emit_32(_ZN17btCollisionObjectD1Ev__index__);
+emit_32(_ZN17btCollisionObjectD0Ev__index__);
+emit_32(_ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape__index__);
+emit_32(_ZNK17btCollisionObject28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK17btCollisionObject9serializeEPvP12btSerializer__index__);
+emit_32(_ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer__index__);
+emit_start(_ZTI17btCollisionObject)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS17btCollisionObject);
+emit_start(_ZTS17btCollisionObject)
+emit_string('17btCollisionObject\x00');
+emit_start(_2E_str78)
+emit_string('btCollisionObjectFloatData\x00');
+emit_start(_ZTIN16btCollisionWorld20ConvexResultCallbackE)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTSN16btCollisionWorld20ConvexResultCallbackE);
+emit_start(_ZTSN16btCollisionWorld20ConvexResultCallbackE)
+emit_string('N16btCollisionWorld20ConvexResultCallbackE\x00');
+emit_start(_ZTI30btConvexPenetrationDepthSolver)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS30btConvexPenetrationDepthSolver);
+emit_start(_ZTS30btConvexPenetrationDepthSolver)
+emit_string('30btConvexPenetrationDepthSolver\x00');
+emit_start(_ZTVN12btConvexCast10CastResultE)
+emit_32(0);
+emit_32(_ZTIN12btConvexCast10CastResultE);
+emit_32(_ZN12btConvexCast10CastResult9DebugDrawEf__index__);
+emit_32(_ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform__index__);
+emit_32(_ZN12btConvexCast10CastResultD1Ev__index__);
+emit_32(_ZN12btConvexCast10CastResultD0Ev__index__);
+emit_start(_ZTIN12btConvexCast10CastResultE)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTSN12btConvexCast10CastResultE);
+emit_start(_ZTSN12btConvexCast10CastResultE)
+emit_string('N12btConvexCast10CastResultE\x00');
+emit_start(_ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2)
+emit_32(0);
+emit_32(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2);
+emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev__index__);
+emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev__index__);
+emit_32(_ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy__index__);
+emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb__index__);
+emit_start(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2);
+emit_32(_ZTIN16btCollisionWorld17RayResultCallbackE);
+emit_start(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2)
+emit_string('ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2\x00');
+emit_start(_ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder)
+emit_32(0);
+emit_32(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder);
+emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev__index__);
+emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev__index__);
+emit_32(_ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__);
+emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb__index__);
+emit_start(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder);
+emit_32(_ZTIN16btCollisionWorld20ConvexResultCallbackE);
+emit_start(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder)
+emit_string('ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder\x00');
+emit_start(_ZTI24btBroadphaseAabbCallback)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS24btBroadphaseAabbCallback);
+emit_start(_ZTS24btBroadphaseAabbCallback)
+emit_string('24btBroadphaseAabbCallback\x00');
+emit_start(_ZTI23btBroadphaseRayCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS23btBroadphaseRayCallback);
+emit_32(_ZTI24btBroadphaseAabbCallback);
+emit_start(_ZTS23btBroadphaseRayCallback)
+emit_string('23btBroadphaseRayCallback\x00');
+emit_start(_ZTV17DebugDrawcallback)
+emit_32(0);
+emit_32(_ZTI17DebugDrawcallback);
+emit_32(_ZN17DebugDrawcallbackD1Ev__index__);
+emit_32(_ZN17DebugDrawcallbackD0Ev__index__);
+emit_32(_ZN17DebugDrawcallback15processTriangleEP9btVector3ii__index__);
+emit_32(_ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__);
+emit_32(4294967292);
+emit_32(_ZTI17DebugDrawcallback);
+emit_32(_ZThn4_N17DebugDrawcallbackD1Ev__index__);
+emit_32(_ZThn4_N17DebugDrawcallbackD0Ev__index__);
+emit_32(_ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__);
+emit_start(_ZTI17DebugDrawcallback)
+emit_32(_ZTVN10__cxxabiv121__vmi_class_type_infoE+8);
+emit_32(_ZTS17DebugDrawcallback);
+emit_32(0);
+emit_32(2);
+emit_32(_ZTI18btTriangleCallback);
+emit_32(2);
+emit_32(_ZTI31btInternalTriangleIndexCallback);
+emit_32(1026);
+emit_start(_ZTS17DebugDrawcallback)
+emit_string('17DebugDrawcallback\x00');
+emit_start(_ZTI18btTriangleCallback)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS18btTriangleCallback);
+emit_start(_ZTS18btTriangleCallback)
+emit_string('18btTriangleCallback\x00');
+emit_start(_ZTI31btInternalTriangleIndexCallback)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS31btInternalTriangleIndexCallback);
+emit_start(_ZTS31btInternalTriangleIndexCallback)
+emit_string('31btInternalTriangleIndexCallback\x00');
+emit_start(_ZTV16btCollisionWorld)
+emit_32(0);
+emit_32(_ZTI16btCollisionWorld);
+emit_32(_ZN16btCollisionWorldD1Ev__index__);
+emit_32(_ZN16btCollisionWorldD0Ev__index__);
+emit_32(_ZN16btCollisionWorld11updateAabbsEv__index__);
+emit_32(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__);
+emit_32(_ZN16btCollisionWorld14getDebugDrawerEv__index__);
+emit_32(_ZN16btCollisionWorld14debugDrawWorldEv__index__);
+emit_32(_ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3__index__);
+emit_32(_ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE__index__);
+emit_32(_ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss__index__);
+emit_32(_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject__index__);
+emit_32(_ZN16btCollisionWorld33performDiscreteCollisionDetectionEv__index__);
+emit_32(_ZN16btCollisionWorld9serializeEP12btSerializer__index__);
+emit_start(_ZTI16btCollisionWorld)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS16btCollisionWorld);
+emit_start(_ZTS16btCollisionWorld)
+emit_string('16btCollisionWorld\x00');
+emit_start(_ZTI16btManifoldResult)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS16btManifoldResult);
+emit_32(_ZTIN36btDiscreteCollisionDetectorInterface6ResultE);
+emit_start(_ZTS16btManifoldResult)
+emit_string('16btManifoldResult\x00');
+emit_start(_ZTV21btSingleSweepCallback)
+emit_32(0);
+emit_32(_ZTI21btSingleSweepCallback);
+emit_32(_ZN21btSingleSweepCallbackD1Ev__index__);
+emit_32(_ZN21btSingleSweepCallbackD0Ev__index__);
+emit_32(_ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy__index__);
+emit_start(_ZTI21btSingleSweepCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS21btSingleSweepCallback);
+emit_32(_ZTI23btBroadphaseRayCallback);
+emit_start(_ZTS21btSingleSweepCallback)
+emit_string('21btSingleSweepCallback\x00');
+emit_start(_ZTV19btSingleRayCallback)
+emit_32(0);
+emit_32(_ZTI19btSingleRayCallback);
+emit_32(_ZN19btSingleRayCallbackD1Ev__index__);
+emit_32(_ZN19btSingleRayCallbackD0Ev__index__);
+emit_32(_ZN19btSingleRayCallback7processEPK17btBroadphaseProxy__index__);
+emit_start(_ZTI19btSingleRayCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS19btSingleRayCallback);
+emit_32(_ZTI23btBroadphaseRayCallback);
+emit_start(_ZTS19btSingleRayCallback)
+emit_string('19btSingleRayCallback\x00');
+emit_start(_2E_str382)
+emit_string('index < m_cachedPoints\x00');
+emit_start(_2E_str483)
+emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h\x00');
+emit_start(_2E_str584)
+emit_string('s != btScalar(0.0)\x00');
+emit_start(_2E_str685)
+emit_string('../../../../src/LinearMath/btQuaternion.h\x00');
+emit_start(_2E_str786)
+emit_string('collisionObject\x00');
+emit_start(_2E_str887)
+emit_string('../../../../src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp\x00');
+emit_start(_2E_str988)
+emit_string('m_collisionObjects.findLinearSearch(collisionObject) == m_collisionObjects.size()\x00');
+emit_start(_ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0)
+emit_32(0);
+emit_32(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0);
+emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v__index__);
+emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v__index__);
+emit_32(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__);
+emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii__index__);
+emit_start(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0);
+emit_32(_ZTI28btTriangleConvexcastCallback);
+emit_start(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0)
+emit_string('ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0\x00');
+emit_start(_ZTI28btTriangleConvexcastCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS28btTriangleConvexcastCallback);
+emit_32(_ZTI18btTriangleCallback);
+emit_start(_ZTS28btTriangleConvexcastCallback)
+emit_string('28btTriangleConvexcastCallback\x00');
+emit_start(_ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback)
+emit_32(0);
+emit_32(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback);
+emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev__index__);
+emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev__index__);
+emit_32(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__);
+emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii__index__);
+emit_start(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback);
+emit_32(_ZTI28btTriangleConvexcastCallback);
+emit_start(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback)
+emit_string('ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback\x00');
+emit_start(_ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0)
+emit_32(0);
+emit_32(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0);
+emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v__index__);
+emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v__index__);
+emit_32(_ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii__index__);
+emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii__index__);
+emit_start(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0);
+emit_32(_ZTI25btTriangleRaycastCallback);
+emit_start(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0)
+emit_string('ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0\x00');
+emit_start(_ZTI25btTriangleRaycastCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS25btTriangleRaycastCallback);
+emit_32(_ZTI18btTriangleCallback);
+emit_start(_ZTS25btTriangleRaycastCallback)
+emit_string('25btTriangleRaycastCallback\x00');
+emit_start(_ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback)
+emit_32(0);
+emit_32(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback);
+emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev__index__);
+emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev__index__);
+emit_32(_ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii__index__);
+emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii__index__);
+emit_start(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback);
+emit_32(_ZTI25btTriangleRaycastCallback);
+emit_start(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback)
+emit_string('ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback\x00');
+emit_start(_2E_str1089)
+emit_string('convexSweepTest\x00');
+emit_start(_2E_str1190)
+emit_string('performDiscreteCollisionDetection\x00');
+emit_start(_2E_str1291)
+emit_string('calculateOverlappingPairs\x00');
+emit_start(_2E_str1392)
+emit_string('dispatchAllCollisionPairs\x00');
+emit_start(_2E_str1493)
+emit_string('convexSweepCompound\x00');
+emit_start(_2E_str1594)
+emit_string('Overflow in AABB, object removed from simulation\x00');
+emit_start(_2E_str1695)
+emit_string('If you can reproduce this, please email bugs@continuousphysics.com\x0a\x00');
+emit_start(_2E_str1796)
+emit_string('Please include above information, your Platform, version of OS.\x0a\x00');
+emit_start(_2E_str1897)
+emit_string('Thanks.\x0a\x00');
+emit_start(_2E_str1998)
+emit_string('updateAabbs\x00');
+emit_start(_ZTV22btCompoundLeafCallback)
+emit_32(0);
+emit_32(_ZTI22btCompoundLeafCallback);
+emit_32(_ZN22btCompoundLeafCallbackD1Ev__index__);
+emit_32(_ZN22btCompoundLeafCallbackD0Ev__index__);
+emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__);
+emit_32(_ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode__index__);
+emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__);
+emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__);
+emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__);
+emit_start(_ZTI22btCompoundLeafCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS22btCompoundLeafCallback);
+emit_32(_ZTIN6btDbvt8ICollideE);
+emit_start(_ZTS22btCompoundLeafCallback)
+emit_string('22btCompoundLeafCallback\x00');
+emit_start(_2E_str99)
+emit_string('colObj->getCollisionShape()->isCompound()\x00');
+emit_start(_2E_str1100)
+emit_string('../../../../src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp\x00');
+emit_start(_2E_str2101)
+emit_string('localAabbMin.getX() <= localAabbMax.getX()\x00');
+emit_start(_2E_str3102)
+emit_string('../../../../src/LinearMath/btAabbUtil2.h\x00');
+emit_start(_2E_str4103)
+emit_string('localAabbMin.getY() <= localAabbMax.getY()\x00');
+emit_start(_2E_str5104)
+emit_string('localAabbMin.getZ() <= localAabbMax.getZ()\x00');
+emit_start(_2E_str6105)
+emit_string('index>=0\x00');
+emit_start(_2E_str7106)
+emit_string('index<compoundShape->getNumChildShapes()\x00');
+emit_start(_ZTV28btCompoundCollisionAlgorithm)
+emit_32(0);
+emit_32(_ZTI28btCompoundCollisionAlgorithm);
+emit_32(_ZN28btCompoundCollisionAlgorithmD1Ev__index__);
+emit_32(_ZN28btCompoundCollisionAlgorithmD0Ev__index__);
+emit_32(_ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
+emit_start(_ZTI28btCompoundCollisionAlgorithm)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS28btCompoundCollisionAlgorithm);
+emit_32(_ZTI30btActivatingCollisionAlgorithm);
+emit_start(_ZTS28btCompoundCollisionAlgorithm)
+emit_string('28btCompoundCollisionAlgorithm\x00');
+emit_start(_2E_str109)
+emit_string('Triangle\x00');
+emit_start(_ZTV24btConvexTriangleCallback)
+emit_32(0);
+emit_32(_ZTI24btConvexTriangleCallback);
+emit_32(_ZN24btConvexTriangleCallbackD1Ev__index__);
+emit_32(_ZN24btConvexTriangleCallbackD0Ev__index__);
+emit_32(_ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii__index__);
+emit_start(_ZTI24btConvexTriangleCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS24btConvexTriangleCallback);
+emit_32(_ZTI18btTriangleCallback);
+emit_start(_ZTS24btConvexTriangleCallback)
+emit_string('24btConvexTriangleCallback\x00');
+emit_start(_ZTVZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback)
+emit_32(0);
+emit_32(_ZTIZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback);
+emit_32(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev__index__);
+emit_32(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev__index__);
+emit_32(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii__index__);
+emit_start(_ZTIZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback);
+emit_32(_ZTI18btTriangleCallback);
+emit_start(_ZTSZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback)
+emit_string('ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback\x00');
+emit_start(_ZTV15btTriangleShape)
+emit_32(0);
+emit_32(_ZTI15btTriangleShape);
+emit_32(_ZN15btTriangleShapeD1Ev__index__);
+emit_32(_ZN15btTriangleShapeD0Ev__index__);
+emit_32(_ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
+emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
+emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
+emit_32(_ZN21btConvexInternalShape15setLocalScalingERK9btVector3__index__);
+emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__);
+emit_32(_ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3__index__);
+emit_32(_ZNK15btTriangleShape7getNameEv__index__);
+emit_32(_ZN21btConvexInternalShape9setMarginEf__index__);
+emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__);
+emit_32(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__);
+emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
+emit_32(_ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3__index__);
+emit_32(_ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
+emit_32(_ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__);
+emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv__index__);
+emit_32(_ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3__index__);
+emit_32(_ZNK15btTriangleShape14getNumVerticesEv__index__);
+emit_32(_ZNK15btTriangleShape11getNumEdgesEv__index__);
+emit_32(_ZNK15btTriangleShape7getEdgeEiR9btVector3S1___index__);
+emit_32(_ZNK15btTriangleShape9getVertexEiR9btVector3__index__);
+emit_32(_ZNK15btTriangleShape12getNumPlanesEv__index__);
+emit_32(_ZNK15btTriangleShape8getPlaneER9btVector3S1_i__index__);
+emit_32(_ZNK15btTriangleShape8isInsideERK9btVector3f__index__);
+emit_32(_ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1___index__);
+emit_start(_ZTI15btTriangleShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS15btTriangleShape);
+emit_32(_ZTI23btPolyhedralConvexShape);
+emit_start(_ZTS15btTriangleShape)
+emit_string('15btTriangleShape\x00');
+emit_start(_ZTI23btPolyhedralConvexShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS23btPolyhedralConvexShape);
+emit_32(_ZTI21btConvexInternalShape);
+emit_start(_ZTS23btPolyhedralConvexShape)
+emit_string('23btPolyhedralConvexShape\x00');
+emit_start(_ZTI21btConvexInternalShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS21btConvexInternalShape);
+emit_32(_ZTI13btConvexShape);
+emit_start(_ZTS21btConvexInternalShape)
+emit_string('21btConvexInternalShape\x00');
+emit_start(_ZTI13btConvexShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS13btConvexShape);
+emit_32(_ZTI16btCollisionShape);
+emit_start(_ZTS13btConvexShape)
+emit_string('13btConvexShape\x00');
+emit_start(_ZTI16btCollisionShape)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS16btCollisionShape);
+emit_start(_ZTS16btCollisionShape)
+emit_string('16btCollisionShape\x00');
+emit_start(_2E_str1110)
+emit_string('btConvexInternalShapeData\x00');
+emit_start(_2E_str3112)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleShape.h\x00');
+emit_start(_ZTV33btConvexConcaveCollisionAlgorithm)
+emit_32(0);
+emit_32(_ZTI33btConvexConcaveCollisionAlgorithm);
+emit_32(_ZN33btConvexConcaveCollisionAlgorithmD1Ev__index__);
+emit_32(_ZN33btConvexConcaveCollisionAlgorithmD0Ev__index__);
+emit_32(_ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
+emit_start(_ZTI33btConvexConcaveCollisionAlgorithm)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS33btConvexConcaveCollisionAlgorithm);
+emit_32(_ZTI30btActivatingCollisionAlgorithm);
+emit_start(_ZTS33btConvexConcaveCollisionAlgorithm)
+emit_string('33btConvexConcaveCollisionAlgorithm\x00');
+emit_start(_ZTI30btCollisionAlgorithmCreateFunc)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS30btCollisionAlgorithmCreateFunc);
+emit_start(_ZTS30btCollisionAlgorithmCreateFunc)
+emit_string('30btCollisionAlgorithmCreateFunc\x00');
+emit_start(_ZTVN23btConvexConvexAlgorithm10CreateFuncE)
+emit_32(0);
+emit_32(_ZTIN23btConvexConvexAlgorithm10CreateFuncE);
+emit_32(_ZN23btConvexConvexAlgorithm10CreateFuncD1Ev__index__);
+emit_32(_ZN23btConvexConvexAlgorithm10CreateFuncD0Ev__index__);
+emit_32(_ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
+emit_start(_ZTIN23btConvexConvexAlgorithm10CreateFuncE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN23btConvexConvexAlgorithm10CreateFuncE);
+emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
+emit_start(_ZTSN23btConvexConvexAlgorithm10CreateFuncE)
+emit_string('N23btConvexConvexAlgorithm10CreateFuncE\x00');
+emit_start(_ZTV24btPerturbedContactResult)
+emit_32(0);
+emit_32(_ZTI24btPerturbedContactResult);
+emit_32(_ZN24btPerturbedContactResultD1Ev__index__);
+emit_32(_ZN24btPerturbedContactResultD0Ev__index__);
+emit_32(_ZN16btManifoldResult20setShapeIdentifiersAEii__index__);
+emit_32(_ZN16btManifoldResult20setShapeIdentifiersBEii__index__);
+emit_32(_ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f__index__);
+emit_start(_ZTI24btPerturbedContactResult)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS24btPerturbedContactResult);
+emit_32(_ZTI16btManifoldResult);
+emit_start(_ZTS24btPerturbedContactResult)
+emit_string('24btPerturbedContactResult\x00');
+emit_start(_2E_str115)
+emit_string('d != btScalar(0.0)\x00');
+emit_start(_2E_str4119)
+emit_string('normalOnB.length2()>=(SIMD_EPSILON*SIMD_EPSILON)\x00');
+emit_start(_2E_str5120)
+emit_string('../../../../src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp\x00');
+emit_start(_ZTV23btConvexConvexAlgorithm)
+emit_32(0);
+emit_32(_ZTI23btConvexConvexAlgorithm);
+emit_32(_ZN23btConvexConvexAlgorithmD1Ev__index__);
+emit_32(_ZN23btConvexConvexAlgorithmD0Ev__index__);
+emit_32(_ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
+emit_start(_ZTI23btConvexConvexAlgorithm)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS23btConvexConvexAlgorithm);
+emit_32(_ZTI30btActivatingCollisionAlgorithm);
+emit_start(_ZTS23btConvexConvexAlgorithm)
+emit_string('23btConvexConvexAlgorithm\x00');
+emit_start(_ZTV31btConvexPlaneCollisionAlgorithm)
+emit_32(0);
+emit_32(_ZTI31btConvexPlaneCollisionAlgorithm);
+emit_32(_ZN31btConvexPlaneCollisionAlgorithmD1Ev__index__);
+emit_32(_ZN31btConvexPlaneCollisionAlgorithmD0Ev__index__);
+emit_32(_ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
+emit_start(_ZTI31btConvexPlaneCollisionAlgorithm)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS31btConvexPlaneCollisionAlgorithm);
+emit_32(_ZTI20btCollisionAlgorithm);
+emit_start(_ZTS31btConvexPlaneCollisionAlgorithm)
+emit_string('31btConvexPlaneCollisionAlgorithm\x00');
+emit_start(_ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE)
+emit_32(0);
+emit_32(_ZTIN31btConvexPlaneCollisionAlgorithm10CreateFuncE);
+emit_32(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev__index__);
+emit_32(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev__index__);
+emit_32(_ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
+emit_start(_ZTIN31btConvexPlaneCollisionAlgorithm10CreateFuncE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN31btConvexPlaneCollisionAlgorithm10CreateFuncE);
+emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
+emit_start(_ZTSN31btConvexPlaneCollisionAlgorithm10CreateFuncE)
+emit_string('N31btConvexPlaneCollisionAlgorithm10CreateFuncE\x00');
+emit_start(_ZTI24btCollisionConfiguration)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS24btCollisionConfiguration);
+emit_start(_ZTS24btCollisionConfiguration)
+emit_string('24btCollisionConfiguration\x00');
+emit_start(_ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE)
+emit_32(0);
+emit_32(_ZTIN33btConvexConcaveCollisionAlgorithm10CreateFuncE);
+emit_32(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev__index__);
+emit_32(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev__index__);
+emit_32(_ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
+emit_start(_ZTIN33btConvexConcaveCollisionAlgorithm10CreateFuncE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN33btConvexConcaveCollisionAlgorithm10CreateFuncE);
+emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
+emit_start(_ZTSN33btConvexConcaveCollisionAlgorithm10CreateFuncE)
+emit_string('N33btConvexConcaveCollisionAlgorithm10CreateFuncE\x00');
+emit_start(_ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE)
+emit_32(0);
+emit_32(_ZTIN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE);
+emit_32(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev__index__);
+emit_32(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev__index__);
+emit_32(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
+emit_start(_ZTIN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE);
+emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
+emit_start(_ZTSN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE)
+emit_string('N33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE\x00');
+emit_start(_ZTVN28btCompoundCollisionAlgorithm10CreateFuncE)
+emit_32(0);
+emit_32(_ZTIN28btCompoundCollisionAlgorithm10CreateFuncE);
+emit_32(_ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev__index__);
+emit_32(_ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev__index__);
+emit_32(_ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
+emit_start(_ZTIN28btCompoundCollisionAlgorithm10CreateFuncE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN28btCompoundCollisionAlgorithm10CreateFuncE);
+emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
+emit_start(_ZTSN28btCompoundCollisionAlgorithm10CreateFuncE)
+emit_string('N28btCompoundCollisionAlgorithm10CreateFuncE\x00');
+emit_start(_ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE)
+emit_32(0);
+emit_32(_ZTIN28btCompoundCollisionAlgorithm17SwappedCreateFuncE);
+emit_32(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev__index__);
+emit_32(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev__index__);
+emit_32(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
+emit_start(_ZTIN28btCompoundCollisionAlgorithm17SwappedCreateFuncE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN28btCompoundCollisionAlgorithm17SwappedCreateFuncE);
+emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
+emit_start(_ZTSN28btCompoundCollisionAlgorithm17SwappedCreateFuncE)
+emit_string('N28btCompoundCollisionAlgorithm17SwappedCreateFuncE\x00');
+emit_start(_ZTVN16btEmptyAlgorithm10CreateFuncE)
+emit_32(0);
+emit_32(_ZTIN16btEmptyAlgorithm10CreateFuncE);
+emit_32(_ZN16btEmptyAlgorithm10CreateFuncD1Ev__index__);
+emit_32(_ZN16btEmptyAlgorithm10CreateFuncD0Ev__index__);
+emit_32(_ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
+emit_start(_ZTIN16btEmptyAlgorithm10CreateFuncE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN16btEmptyAlgorithm10CreateFuncE);
+emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
+emit_start(_ZTSN16btEmptyAlgorithm10CreateFuncE)
+emit_string('N16btEmptyAlgorithm10CreateFuncE\x00');
+emit_start(_ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE)
+emit_32(0);
+emit_32(_ZTIN32btSphereSphereCollisionAlgorithm10CreateFuncE);
+emit_32(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev__index__);
+emit_32(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev__index__);
+emit_32(_ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
+emit_start(_ZTIN32btSphereSphereCollisionAlgorithm10CreateFuncE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN32btSphereSphereCollisionAlgorithm10CreateFuncE);
+emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
+emit_start(_ZTSN32btSphereSphereCollisionAlgorithm10CreateFuncE)
+emit_string('N32btSphereSphereCollisionAlgorithm10CreateFuncE\x00');
+emit_start(_ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE)
+emit_32(0);
+emit_32(_ZTIN34btSphereTriangleCollisionAlgorithm10CreateFuncE);
+emit_32(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev__index__);
+emit_32(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev__index__);
+emit_32(_ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
+emit_start(_ZTIN34btSphereTriangleCollisionAlgorithm10CreateFuncE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN34btSphereTriangleCollisionAlgorithm10CreateFuncE);
+emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
+emit_start(_ZTSN34btSphereTriangleCollisionAlgorithm10CreateFuncE)
+emit_string('N34btSphereTriangleCollisionAlgorithm10CreateFuncE\x00');
+emit_start(_ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE)
+emit_32(0);
+emit_32(_ZTIN26btBoxBoxCollisionAlgorithm10CreateFuncE);
+emit_32(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev__index__);
+emit_32(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev__index__);
+emit_32(_ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__);
+emit_start(_ZTIN26btBoxBoxCollisionAlgorithm10CreateFuncE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN26btBoxBoxCollisionAlgorithm10CreateFuncE);
+emit_32(_ZTI30btCollisionAlgorithmCreateFunc);
+emit_start(_ZTSN26btBoxBoxCollisionAlgorithm10CreateFuncE)
+emit_string('N26btBoxBoxCollisionAlgorithm10CreateFuncE\x00');
+emit_start(_2E_str128)
+emit_string('usedsize==0\x00');
+emit_start(_2E_str1129)
+emit_string('../../../../src/LinearMath/btStackAlloc.h\x00');
+emit_start(_ZTV31btDefaultCollisionConfiguration)
+emit_32(0);
+emit_32(_ZTI31btDefaultCollisionConfiguration);
+emit_32(_ZN31btDefaultCollisionConfigurationD1Ev__index__);
+emit_32(_ZN31btDefaultCollisionConfigurationD0Ev__index__);
+emit_32(_ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv__index__);
+emit_32(_ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv__index__);
+emit_32(_ZN31btDefaultCollisionConfiguration17getStackAllocatorEv__index__);
+emit_32(_ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii__index__);
+emit_32(_ZN31btDefaultCollisionConfiguration16getSimplexSolverEv__index__);
+emit_start(_ZTI31btDefaultCollisionConfiguration)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS31btDefaultCollisionConfiguration);
+emit_32(_ZTI24btCollisionConfiguration);
+emit_start(_ZTS31btDefaultCollisionConfiguration)
+emit_string('31btDefaultCollisionConfiguration\x00');
+emit_start(_ZTV16btEmptyAlgorithm)
+emit_32(0);
+emit_32(_ZTI16btEmptyAlgorithm);
+emit_32(_ZN16btEmptyAlgorithmD1Ev__index__);
+emit_32(_ZN16btEmptyAlgorithmD0Ev__index__);
+emit_32(_ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
+emit_start(_ZTI16btEmptyAlgorithm)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS16btEmptyAlgorithm);
+emit_32(_ZTI20btCollisionAlgorithm);
+emit_start(_ZTS16btEmptyAlgorithm)
+emit_string('16btEmptyAlgorithm\x00');
+emit_start(_ZTV16btManifoldResult)
+emit_32(0);
+emit_32(_ZTI16btManifoldResult);
+emit_32(_ZN16btManifoldResultD1Ev__index__);
+emit_32(_ZN16btManifoldResultD0Ev__index__);
+emit_32(_ZN16btManifoldResult20setShapeIdentifiersAEii__index__);
+emit_32(_ZN16btManifoldResult20setShapeIdentifiersBEii__index__);
+emit_32(_ZN16btManifoldResult15addContactPointERK9btVector3S2_f__index__);
+emit_start(_2E_str2149)
+emit_string('validContactDistance(newPoint)\x00');
+emit_start(_2E_str3150)
+emit_string('lifeTime>=0\x00');
+emit_start(_2E_str5152)
+emit_string('../../../../src/BulletCollision/CollisionDispatch/btManifoldResult.cpp\x00');
+emit_start(_2E_str155)
+emit_string('islandUnionFindAndQuickSort\x00');
+emit_start(_2E_str1156)
+emit_string('(colObj0->getIslandTag() == islandId) || (colObj0->getIslandTag() == -1)\x00');
+emit_start(_2E_str2157)
+emit_string('../../../../src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp\x00');
+emit_start(_2E_str3158)
+emit_string('processIslands\x00');
+emit_start(_ZTV25btSimulationIslandManager)
+emit_32(0);
+emit_32(_ZTI25btSimulationIslandManager);
+emit_32(_ZN25btSimulationIslandManagerD1Ev__index__);
+emit_32(_ZN25btSimulationIslandManagerD0Ev__index__);
+emit_32(_ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher__index__);
+emit_32(_ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld__index__);
+emit_start(_ZTI25btSimulationIslandManager)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS25btSimulationIslandManager);
+emit_start(_ZTS25btSimulationIslandManager)
+emit_string('25btSimulationIslandManager\x00');
+emit_start(_ZTV32btSphereSphereCollisionAlgorithm)
+emit_32(0);
+emit_32(_ZTI32btSphereSphereCollisionAlgorithm);
+emit_32(_ZN32btSphereSphereCollisionAlgorithmD1Ev__index__);
+emit_32(_ZN32btSphereSphereCollisionAlgorithmD0Ev__index__);
+emit_32(_ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
+emit_start(_ZTI32btSphereSphereCollisionAlgorithm)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS32btSphereSphereCollisionAlgorithm);
+emit_32(_ZTI30btActivatingCollisionAlgorithm);
+emit_start(_ZTS32btSphereSphereCollisionAlgorithm)
+emit_string('32btSphereSphereCollisionAlgorithm\x00');
+emit_start(_ZTV34btSphereTriangleCollisionAlgorithm)
+emit_32(0);
+emit_32(_ZTI34btSphereTriangleCollisionAlgorithm);
+emit_32(_ZN34btSphereTriangleCollisionAlgorithmD1Ev__index__);
+emit_32(_ZN34btSphereTriangleCollisionAlgorithmD0Ev__index__);
+emit_32(_ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__);
+emit_32(_ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__);
+emit_start(_ZTI34btSphereTriangleCollisionAlgorithm)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS34btSphereTriangleCollisionAlgorithm);
+emit_32(_ZTI30btActivatingCollisionAlgorithm);
+emit_start(_ZTS34btSphereTriangleCollisionAlgorithm)
+emit_string('34btSphereTriangleCollisionAlgorithm\x00');
+emit_start(_ZTV22SphereTriangleDetector)
+emit_32(0);
+emit_32(_ZTI22SphereTriangleDetector);
+emit_32(_ZN22SphereTriangleDetectorD1Ev__index__);
+emit_32(_ZN22SphereTriangleDetectorD0Ev__index__);
+emit_32(_ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__);
+emit_start(_ZTI22SphereTriangleDetector)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS22SphereTriangleDetector);
+emit_32(_ZTI36btDiscreteCollisionDetectorInterface);
+emit_start(_ZTS22SphereTriangleDetector)
+emit_string('22SphereTriangleDetector\x00');
+emit_start(_2E_str173)
+emit_string('Box\x00');
+emit_start(_2E_str2175)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btBoxShape.h\x00');
+emit_start(_ZTV10btBoxShape)
+emit_32(0);
+emit_32(_ZTI10btBoxShape);
+emit_32(_ZN10btBoxShapeD1Ev__index__);
+emit_32(_ZN10btBoxShapeD0Ev__index__);
+emit_32(_ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
+emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
+emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
+emit_32(_ZN10btBoxShape15setLocalScalingERK9btVector3__index__);
+emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__);
+emit_32(_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3__index__);
+emit_32(_ZNK10btBoxShape7getNameEv__index__);
+emit_32(_ZN10btBoxShape9setMarginEf__index__);
+emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__);
+emit_32(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__);
+emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
+emit_32(_ZNK10btBoxShape24localGetSupportingVertexERK9btVector3__index__);
+emit_32(_ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
+emit_32(_ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__);
+emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv__index__);
+emit_32(_ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3__index__);
+emit_32(_ZNK10btBoxShape14getNumVerticesEv__index__);
+emit_32(_ZNK10btBoxShape11getNumEdgesEv__index__);
+emit_32(_ZNK10btBoxShape7getEdgeEiR9btVector3S1___index__);
+emit_32(_ZNK10btBoxShape9getVertexEiR9btVector3__index__);
+emit_32(_ZNK10btBoxShape12getNumPlanesEv__index__);
+emit_32(_ZNK10btBoxShape8getPlaneER9btVector3S1_i__index__);
+emit_32(_ZNK10btBoxShape8isInsideERK9btVector3f__index__);
+emit_32(_ZNK10btBoxShape16getPlaneEquationER9btVector4i__index__);
+emit_start(_ZTI10btBoxShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS10btBoxShape);
+emit_32(_ZTI23btPolyhedralConvexShape);
+emit_start(_ZTS10btBoxShape)
+emit_string('10btBoxShape\x00');
+emit_start(_2E_str181)
+emit_string('BVHTRIANGLEMESH\x00');
+emit_start(_ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
+emit_32(0);
+emit_32(_ZTIZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback);
+emit_32(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__);
+emit_32(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__);
+emit_32(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__);
+emit_start(_ZTIZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback);
+emit_32(_ZTI21btNodeOverlapCallback);
+emit_start(_ZTSZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
+emit_string('ZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback\x00');
+emit_start(_ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback)
+emit_32(0);
+emit_32(_ZTIZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback);
+emit_32(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev__index__);
+emit_32(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev__index__);
+emit_32(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii__index__);
+emit_start(_ZTIZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback);
+emit_32(_ZTI21btNodeOverlapCallback);
+emit_start(_ZTSZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback)
+emit_string('ZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback\x00');
+emit_start(_ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
+emit_32(0);
+emit_32(_ZTIZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback);
+emit_32(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__);
+emit_32(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__);
+emit_32(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__);
+emit_start(_ZTIZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback);
+emit_32(_ZTI21btNodeOverlapCallback);
+emit_start(_ZTSZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback)
+emit_string('ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback\x00');
+emit_start(_2E_str5186)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleMeshShape.h\x00');
+emit_start(_2E_str6187)
+emit_string('indicestype==PHY_INTEGER||indicestype==PHY_SHORT\x00');
+emit_start(_2E_str7188)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp\x00');
+emit_start(_2E_str8189)
+emit_string('btTriangleMeshShapeData\x00');
+emit_start(_ZTV22btBvhTriangleMeshShape)
+emit_32(0);
+emit_32(_ZTI22btBvhTriangleMeshShape);
+emit_32(_ZN22btBvhTriangleMeshShapeD1Ev__index__);
+emit_32(_ZN22btBvhTriangleMeshShapeD0Ev__index__);
+emit_32(_ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
+emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
+emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
+emit_32(_ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3__index__);
+emit_32(_ZNK19btTriangleMeshShape15getLocalScalingEv__index__);
+emit_32(_ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3__index__);
+emit_32(_ZNK22btBvhTriangleMeshShape7getNameEv__index__);
+emit_32(_ZN14btConcaveShape9setMarginEf__index__);
+emit_32(_ZNK14btConcaveShape9getMarginEv__index__);
+emit_32(_ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer__index__);
+emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
+emit_32(_ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__);
+emit_32(_ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3__index__);
+emit_32(_ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
+emit_32(_ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer__index__);
+emit_32(_ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer__index__);
+emit_start(_ZTI22btBvhTriangleMeshShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS22btBvhTriangleMeshShape);
+emit_32(_ZTI19btTriangleMeshShape);
+emit_start(_ZTS22btBvhTriangleMeshShape)
+emit_string('22btBvhTriangleMeshShape\x00');
+emit_start(_ZTI19btTriangleMeshShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS19btTriangleMeshShape);
+emit_32(_ZTI14btConcaveShape);
+emit_start(_ZTS19btTriangleMeshShape)
+emit_string('19btTriangleMeshShape\x00');
+emit_start(_ZTI14btConcaveShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS14btConcaveShape);
+emit_32(_ZTI16btCollisionShape);
+emit_start(_ZTS14btConcaveShape)
+emit_string('14btConcaveShape\x00');
+emit_start(_2E_str194)
+emit_string('CapsuleShape\x00');
+emit_start(_2E_str4198)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btConvexInternalShape.h\x00');
+emit_start(_2E_str6199)
+emit_string('btCapsuleShapeData\x00');
+emit_start(_ZTV14btCapsuleShape)
+emit_32(0);
+emit_32(_ZTI14btCapsuleShape);
+emit_32(_ZN14btCapsuleShapeD1Ev__index__);
+emit_32(_ZN14btCapsuleShapeD0Ev__index__);
+emit_32(_ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
+emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
+emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
+emit_32(_ZN14btCapsuleShape15setLocalScalingERK9btVector3__index__);
+emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__);
+emit_32(_ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3__index__);
+emit_32(_ZNK14btCapsuleShape7getNameEv__index__);
+emit_32(_ZN14btCapsuleShape9setMarginEf__index__);
+emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__);
+emit_32(_ZNK14btCapsuleShape28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK14btCapsuleShape9serializeEPvP12btSerializer__index__);
+emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
+emit_32(_ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3__index__);
+emit_32(_ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
+emit_32(_ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__);
+emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__);
+emit_32(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__);
+emit_start(_ZTI14btCapsuleShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS14btCapsuleShape);
+emit_32(_ZTI21btConvexInternalShape);
+emit_start(_ZTS14btCapsuleShape)
+emit_string('14btCapsuleShape\x00');
+emit_start(_2E_str200)
+emit_string('btCollisionShapeData\x00');
+emit_start(_ZTV14btConcaveShape)
+emit_32(0);
+emit_32(_ZTI14btConcaveShape);
+emit_32(_ZN14btConcaveShapeD1Ev__index__);
+emit_32(_ZN14btConcaveShapeD0Ev__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
+emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
+emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(_ZN14btConcaveShape9setMarginEf__index__);
+emit_32(_ZNK14btConcaveShape9getMarginEv__index__);
+emit_32(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK16btCollisionShape9serializeEPvP12btSerializer__index__);
+emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_start(_2E_str219)
+emit_string('Convex\x00');
+emit_start(_2E_str3222)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btConvexHullShape.cpp\x00');
+emit_start(_ZTV17btConvexHullShape)
+emit_32(0);
+emit_32(_ZTI17btConvexHullShape);
+emit_32(_ZN17btConvexHullShapeD1Ev__index__);
+emit_32(_ZN17btConvexHullShapeD0Ev__index__);
+emit_32(_ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
+emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
+emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
+emit_32(_ZN17btConvexHullShape15setLocalScalingERK9btVector3__index__);
+emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__);
+emit_32(_ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3__index__);
+emit_32(_ZNK17btConvexHullShape7getNameEv__index__);
+emit_32(_ZN21btConvexInternalShape9setMarginEf__index__);
+emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__);
+emit_32(_ZNK17btConvexHullShape28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK17btConvexHullShape9serializeEPvP12btSerializer__index__);
+emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
+emit_32(_ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3__index__);
+emit_32(_ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
+emit_32(_ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__);
+emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__);
+emit_32(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__);
+emit_32(_ZNK17btConvexHullShape14getNumVerticesEv__index__);
+emit_32(_ZNK17btConvexHullShape11getNumEdgesEv__index__);
+emit_32(_ZNK17btConvexHullShape7getEdgeEiR9btVector3S1___index__);
+emit_32(_ZNK17btConvexHullShape9getVertexEiR9btVector3__index__);
+emit_32(_ZNK17btConvexHullShape12getNumPlanesEv__index__);
+emit_32(_ZNK17btConvexHullShape8getPlaneER9btVector3S1_i__index__);
+emit_32(_ZNK17btConvexHullShape8isInsideERK9btVector3f__index__);
+emit_start(_ZTI17btConvexHullShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS17btConvexHullShape);
+emit_32(_ZTI34btPolyhedralConvexAabbCachingShape);
+emit_start(_ZTS17btConvexHullShape)
+emit_string('17btConvexHullShape\x00');
+emit_start(_ZTI34btPolyhedralConvexAabbCachingShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS34btPolyhedralConvexAabbCachingShape);
+emit_32(_ZTI23btPolyhedralConvexShape);
+emit_start(_ZTS34btPolyhedralConvexAabbCachingShape)
+emit_string('34btPolyhedralConvexAabbCachingShape\x00');
+emit_start(_2E_str5223)
+emit_string('btVector3FloatData\x00');
+emit_start(_2E_str6224)
+emit_string('btConvexHullShapeData\x00');
+emit_start(_2E_str6232)
+emit_string('m_isLocalAabbValid\x00');
+emit_start(_ZTV13btConvexShape)
+emit_32(0);
+emit_32(_ZTI13btConvexShape);
+emit_32(_ZN13btConvexShapeD1Ev__index__);
+emit_32(_ZN13btConvexShapeD0Ev__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
+emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
+emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK16btCollisionShape9serializeEPvP12btSerializer__index__);
+emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_start(_2E_str6249)
+emit_string('ptIndex >= 0\x00');
+emit_start(_2E_str7250)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btConvexShape.cpp\x00');
+emit_start(_ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback)
+emit_32(0);
+emit_32(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback);
+emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev__index__);
+emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev__index__);
+emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__);
+emit_start(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback);
+emit_32(_ZTI31btInternalTriangleIndexCallback);
+emit_start(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback)
+emit_string('ZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback\x00');
+emit_start(_ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback)
+emit_32(0);
+emit_32(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback);
+emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev__index__);
+emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev__index__);
+emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__);
+emit_start(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback);
+emit_32(_ZTI31btInternalTriangleIndexCallback);
+emit_start(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback)
+emit_string('ZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback\x00');
+emit_start(_2E_str10306)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp\x00');
+emit_start(_2E_str18314)
+emit_string('partId < (1<<MAX_NUM_PARTS_IN_BITS)\x00');
+emit_start(_2E_str19315)
+emit_string('triangleIndex < (1<<(31-MAX_NUM_PARTS_IN_BITS))\x00');
+emit_start(_2E_str20316)
+emit_string('triangleIndex>=0\x00');
+emit_start(_ZTV14btOptimizedBvh)
+emit_32(0);
+emit_32(_ZTI14btOptimizedBvh);
+emit_32(_ZN14btOptimizedBvhD1Ev__index__);
+emit_32(_ZN14btOptimizedBvhD0Ev__index__);
+emit_32(_ZNK14btQuantizedBvh9serializeEPvjb__index__);
+emit_32(_ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv__index__);
+emit_32(_ZNK14btQuantizedBvh9serializeEPvP12btSerializer__index__);
+emit_32(_ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData__index__);
+emit_32(_ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData__index__);
+emit_32(_ZNK14btOptimizedBvh16serializeInPlaceEPvjb__index__);
+emit_start(_ZTI14btOptimizedBvh)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS14btOptimizedBvh);
+emit_32(_ZTI14btQuantizedBvh);
+emit_start(_ZTS14btOptimizedBvh)
+emit_string('14btOptimizedBvh\x00');
+emit_start(_2E_str7331)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h\x00');
+emit_start(_2E_str342)
+emit_string('SPHERE\x00');
+emit_start(_ZTV13btSphereShape)
+emit_32(0);
+emit_32(_ZTI13btSphereShape);
+emit_32(_ZN13btSphereShapeD1Ev__index__);
+emit_32(_ZN13btSphereShapeD0Ev__index__);
+emit_32(_ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
+emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
+emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
+emit_32(_ZN21btConvexInternalShape15setLocalScalingERK9btVector3__index__);
+emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__);
+emit_32(_ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3__index__);
+emit_32(_ZNK13btSphereShape7getNameEv__index__);
+emit_32(_ZN13btSphereShape9setMarginEf__index__);
+emit_32(_ZNK13btSphereShape9getMarginEv__index__);
+emit_32(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__);
+emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
+emit_32(_ZNK13btSphereShape24localGetSupportingVertexERK9btVector3__index__);
+emit_32(_ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
+emit_32(_ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__);
+emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__);
+emit_32(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__);
+emit_start(_ZTI13btSphereShape)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS13btSphereShape);
+emit_32(_ZTI21btConvexInternalShape);
+emit_start(_ZTS13btSphereShape)
+emit_string('13btSphereShape\x00');
+emit_start(_2E_str349)
+emit_string('btIntIndexData\x00');
+emit_start(_2E_str1350)
+emit_string('btShortIntIndexTripletData\x00');
+emit_start(_2E_str3352)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp\x00');
+emit_start(_2E_str5354)
+emit_string('btVector3DoubleData\x00');
+emit_start(_2E_str6355)
+emit_string('(type == PHY_FLOAT) || (type == PHY_DOUBLE)\x00');
+emit_start(_2E_str7356)
+emit_string('btMeshPartData\x00');
+emit_start(_2E_str8357)
+emit_string('btStridingMeshInterfaceData\x00');
+emit_start(_2E_str9358)
+emit_string('(gfxindextype == PHY_INTEGER) || (gfxindextype == PHY_SHORT)\x00');
+emit_start(_ZTV23btStridingMeshInterface)
+emit_32(0);
+emit_32(_ZTI23btStridingMeshInterface);
+emit_32(_ZN23btStridingMeshInterfaceD1Ev__index__);
+emit_32(_ZN23btStridingMeshInterfaceD0Ev__index__);
+emit_32(_ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4___index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(_ZNK23btStridingMeshInterface14hasPremadeAabbEv__index__);
+emit_32(_ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2___index__);
+emit_32(_ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1___index__);
+emit_32(_ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK23btStridingMeshInterface9serializeEPvP12btSerializer__index__);
+emit_start(_ZTI23btStridingMeshInterface)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS23btStridingMeshInterface);
+emit_start(_ZTS23btStridingMeshInterface)
+emit_string('23btStridingMeshInterface\x00');
+emit_start(_ZTV31btInternalTriangleIndexCallback)
+emit_32(0);
+emit_32(_ZTI31btInternalTriangleIndexCallback);
+emit_32(_ZN31btInternalTriangleIndexCallbackD1Ev__index__);
+emit_32(_ZN31btInternalTriangleIndexCallbackD0Ev__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_start(_ZTV18btTriangleCallback)
+emit_32(0);
+emit_32(_ZTI18btTriangleCallback);
+emit_32(_ZN18btTriangleCallbackD1Ev__index__);
+emit_32(_ZN18btTriangleCallbackD0Ev__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_start(_2E_str367)
+emit_string('subpart< getNumSubParts()\x00');
+emit_start(_2E_str1368)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp\x00');
+emit_start(_ZTV26btTriangleIndexVertexArray)
+emit_32(0);
+emit_32(_ZTI26btTriangleIndexVertexArray);
+emit_32(_ZN26btTriangleIndexVertexArrayD1Ev__index__);
+emit_32(_ZN26btTriangleIndexVertexArrayD0Ev__index__);
+emit_32(_ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4___index__);
+emit_32(_ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i__index__);
+emit_32(_ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i__index__);
+emit_32(_ZN26btTriangleIndexVertexArray16unLockVertexBaseEi__index__);
+emit_32(_ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi__index__);
+emit_32(_ZNK26btTriangleIndexVertexArray14getNumSubPartsEv__index__);
+emit_32(_ZN26btTriangleIndexVertexArray19preallocateVerticesEi__index__);
+emit_32(_ZN26btTriangleIndexVertexArray18preallocateIndicesEi__index__);
+emit_32(_ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv__index__);
+emit_32(_ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2___index__);
+emit_32(_ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1___index__);
+emit_32(_ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK23btStridingMeshInterface9serializeEPvP12btSerializer__index__);
+emit_start(_ZTI26btTriangleIndexVertexArray)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS26btTriangleIndexVertexArray);
+emit_32(_ZTI23btStridingMeshInterface);
+emit_start(_ZTS26btTriangleIndexVertexArray)
+emit_string('26btTriangleIndexVertexArray\x00');
+emit_start(_2E_str372)
+emit_string('TRIANGLEMESH\x00');
+emit_start(_ZTV21SupportVertexCallback)
+emit_32(0);
+emit_32(_ZTI21SupportVertexCallback);
+emit_32(_ZN21SupportVertexCallbackD1Ev__index__);
+emit_32(_ZN21SupportVertexCallbackD0Ev__index__);
+emit_32(_ZN21SupportVertexCallback15processTriangleEP9btVector3ii__index__);
+emit_start(_ZTI21SupportVertexCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS21SupportVertexCallback);
+emit_32(_ZTI18btTriangleCallback);
+emit_start(_ZTS21SupportVertexCallback)
+emit_string('21SupportVertexCallback\x00');
+emit_start(_ZTVZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback)
+emit_32(0);
+emit_32(_ZTIZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback);
+emit_32(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev__index__);
+emit_32(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev__index__);
+emit_32(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii__index__);
+emit_start(_ZTIZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback);
+emit_32(_ZTI31btInternalTriangleIndexCallback);
+emit_start(_ZTSZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback)
+emit_string('ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback\x00');
+emit_start(_2E_str3375)
+emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp\x00');
+emit_start(_ZTV19btTriangleMeshShape)
+emit_32(0);
+emit_32(_ZTI19btTriangleMeshShape);
+emit_32(_ZN19btTriangleMeshShapeD1Ev__index__);
+emit_32(_ZN19btTriangleMeshShapeD0Ev__index__);
+emit_32(_ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4___index__);
+emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__);
+emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__);
+emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__);
+emit_32(_ZN19btTriangleMeshShape15setLocalScalingERK9btVector3__index__);
+emit_32(_ZNK19btTriangleMeshShape15getLocalScalingEv__index__);
+emit_32(_ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3__index__);
+emit_32(_ZNK19btTriangleMeshShape7getNameEv__index__);
+emit_32(_ZN14btConcaveShape9setMarginEf__index__);
+emit_32(_ZNK14btConcaveShape9getMarginEv__index__);
+emit_32(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK16btCollisionShape9serializeEPvP12btSerializer__index__);
+emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__);
+emit_32(_ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__);
+emit_32(_ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3__index__);
+emit_32(_ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__);
+emit_start(_ZTV16btPointCollector)
+emit_32(0);
+emit_32(_ZTI16btPointCollector);
+emit_32(_ZN16btPointCollectorD1Ev__index__);
+emit_32(_ZN16btPointCollectorD0Ev__index__);
+emit_32(_ZN16btPointCollector20setShapeIdentifiersAEii__index__);
+emit_32(_ZN16btPointCollector20setShapeIdentifiersBEii__index__);
+emit_32(_ZN16btPointCollector15addContactPointERK9btVector3S2_f__index__);
+emit_start(_ZTI16btPointCollector)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS16btPointCollector);
+emit_32(_ZTIN36btDiscreteCollisionDetectorInterface6ResultE);
+emit_start(_ZTS16btPointCollector)
+emit_string('16btPointCollector\x00');
+emit_start(_ZTV27btContinuousConvexCollision)
+emit_32(0);
+emit_32(_ZTI27btContinuousConvexCollision);
+emit_32(_ZN27btContinuousConvexCollisionD1Ev__index__);
+emit_32(_ZN27btContinuousConvexCollisionD0Ev__index__);
+emit_32(_ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__);
+emit_start(_ZTI27btContinuousConvexCollision)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS27btContinuousConvexCollision);
+emit_32(_ZTI12btConvexCast);
+emit_start(_ZTS27btContinuousConvexCollision)
+emit_string('27btContinuousConvexCollision\x00');
+emit_start(_ZTI12btConvexCast)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS12btConvexCast);
+emit_start(_ZTS12btConvexCast)
+emit_string('12btConvexCast\x00');
+emit_start(_ZTV12btConvexCast)
+emit_32(0);
+emit_32(_ZTI12btConvexCast);
+emit_32(_ZN12btConvexCastD1Ev__index__);
+emit_32(_ZN12btConvexCastD0Ev__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_start(_ZTV15btGjkConvexCast)
+emit_32(0);
+emit_32(_ZTI15btGjkConvexCast);
+emit_32(_ZN15btGjkConvexCastD1Ev__index__);
+emit_32(_ZN15btGjkConvexCastD0Ev__index__);
+emit_32(_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__);
+emit_start(_ZTI15btGjkConvexCast)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS15btGjkConvexCast);
+emit_32(_ZTI12btConvexCast);
+emit_start(_ZTS15btGjkConvexCast)
+emit_string('15btGjkConvexCast\x00');
+emit_start(_ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3)
+emit_32(1);
+emit_32(2);
+emit_32(0);
+emit_start(_ZZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonEE4i2m3)
+emit_32(2);
+emit_32(0);
+emit_32(1);
+emit_start(_ZTV30btGjkEpaPenetrationDepthSolver)
+emit_32(0);
+emit_32(_ZTI30btGjkEpaPenetrationDepthSolver);
+emit_32(_ZN30btGjkEpaPenetrationDepthSolverD1Ev__index__);
+emit_32(_ZN30btGjkEpaPenetrationDepthSolverD0Ev__index__);
+emit_32(_ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc__index__);
+emit_start(_ZTI30btGjkEpaPenetrationDepthSolver)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS30btGjkEpaPenetrationDepthSolver);
+emit_32(_ZTI30btConvexPenetrationDepthSolver);
+emit_start(_ZTS30btGjkEpaPenetrationDepthSolver)
+emit_string('30btGjkEpaPenetrationDepthSolver\x00');
+emit_start(_ZTV17btGjkPairDetector)
+emit_32(0);
+emit_32(_ZTI17btGjkPairDetector);
+emit_32(_ZN17btGjkPairDetectorD1Ev__index__);
+emit_32(_ZN17btGjkPairDetectorD0Ev__index__);
+emit_32(_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__);
+emit_start(_ZTI17btGjkPairDetector)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS17btGjkPairDetector);
+emit_32(_ZTI36btDiscreteCollisionDetectorInterface);
+emit_start(_ZTS17btGjkPairDetector)
+emit_string('17btGjkPairDetector\x00');
+emit_start(_2E_str425)
+emit_string('btGjkPairDetector maxIter exceeded:%i\x0a\x00');
+emit_start(_2E_str1426)
+emit_string('sepAxis=(%f,%f,%f), squaredDistance = %f, shapeTypeA=%i,shapeTypeB=%i\x0a\x00');
+emit_start(_2E_str2427)
+emit_string('s > btScalar(0.0)\x00');
+emit_start(_2E_str3428)
+emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp\x00');
+emit_start(gContactBreakingThreshold)
+emit_32(1017370378);
+emit_start(_2E_str434)
+emit_string('m_pointCache[lastUsedIndex].m_userPersistentData==0\x00');
+emit_start(_2E_str3437)
+emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp\x00');
+emit_start(_2E_str4438)
+emit_string('m_pointCache[insertIndex].m_userPersistentData==0\x00');
+emit_start(_ZTV28btTriangleConvexcastCallback)
+emit_32(0);
+emit_32(_ZTI28btTriangleConvexcastCallback);
+emit_32(_ZN28btTriangleConvexcastCallbackD1Ev__index__);
+emit_32(_ZN28btTriangleConvexcastCallbackD0Ev__index__);
+emit_32(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_start(_ZTV22btSubsimplexConvexCast)
+emit_32(0);
+emit_32(_ZTI22btSubsimplexConvexCast);
+emit_32(_ZN22btSubsimplexConvexCastD1Ev__index__);
+emit_32(_ZN22btSubsimplexConvexCastD0Ev__index__);
+emit_32(_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__);
+emit_start(_ZTI22btSubsimplexConvexCast)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS22btSubsimplexConvexCast);
+emit_32(_ZTI12btConvexCast);
+emit_start(_ZTS22btSubsimplexConvexCast)
+emit_string('22btSubsimplexConvexCast\x00');
+emit_start(_2E_str457)
+emit_string('m_numVertices>0\x00');
+emit_start(_2E_str1458)
+emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp\x00');
+emit_start(_ZTVN16btCollisionWorld27ClosestConvexResultCallbackE)
+emit_32(0);
+emit_32(_ZTIN16btCollisionWorld27ClosestConvexResultCallbackE);
+emit_32(_ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev__index__);
+emit_32(_ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev__index__);
+emit_32(_ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__);
+emit_32(_ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb__index__);
+emit_start(_ZTIN16btCollisionWorld27ClosestConvexResultCallbackE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN16btCollisionWorld27ClosestConvexResultCallbackE);
+emit_32(_ZTIN16btCollisionWorld20ConvexResultCallbackE);
+emit_start(_ZTSN16btCollisionWorld27ClosestConvexResultCallbackE)
+emit_string('N16btCollisionWorld27ClosestConvexResultCallbackE\x00');
+emit_start(_2E_str36)
+emit_string('convexResult.m_hitFraction <= m_closestHitFraction\x00');
+emit_start(_2E_str239)
+emit_string('btConeTwistConstraintData\x00');
+emit_start(_ZTV21btConeTwistConstraint)
+emit_32(0);
+emit_32(_ZTI21btConeTwistConstraint);
+emit_32(_ZN21btConeTwistConstraintD1Ev__index__);
+emit_32(_ZN21btConeTwistConstraintD0Ev__index__);
+emit_32(_ZN21btConeTwistConstraint13buildJacobianEv__index__);
+emit_32(_ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif__index__);
+emit_32(_ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__);
+emit_32(_ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__);
+emit_32(_ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__);
+emit_32(_ZN21btConeTwistConstraint8setParamEifi__index__);
+emit_32(_ZNK21btConeTwistConstraint8getParamEii__index__);
+emit_32(_ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK21btConeTwistConstraint9serializeEPvP12btSerializer__index__);
+emit_start(_ZTI21btConeTwistConstraint)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS21btConeTwistConstraint);
+emit_32(_ZTI17btTypedConstraint);
+emit_start(_ZTS21btConeTwistConstraint)
+emit_string('21btConeTwistConstraint\x00');
+emit_start(_2E_str1340)
+emit_string('m_flags & BT_CONETWIST_FLAGS_LIN_ERP\x00');
+emit_start(_2E_str24)
+emit_string('../../../../src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp\x00');
+emit_start(_2E_str442)
+emit_string('m_flags & BT_CONETWIST_FLAGS_LIN_CFM\x00');
+emit_start(_2E_str543)
+emit_string('m_flags & BT_CONETWIST_FLAGS_ANG_CFM\x00');
+emit_start(_2E_str846)
+emit_string('m_Adiag > btScalar(0.0)\x00');
+emit_start(_2E_str947)
+emit_string('../../../../src/BulletDynamics/ConstraintSolver/btJacobianEntry.h\x00');
+emit_start(_2E_str1149)
+emit_string('!m_useSolveConstraintObsolete\x00');
+emit_start(_2E_str29)
+emit_string('btHingeConstraintFloatData\x00');
+emit_start(_ZTV17btHingeConstraint)
+emit_32(0);
+emit_32(_ZTI17btHingeConstraint);
+emit_32(_ZN17btHingeConstraintD1Ev__index__);
+emit_32(_ZN17btHingeConstraintD0Ev__index__);
+emit_32(_ZN17btHingeConstraint13buildJacobianEv__index__);
+emit_32(_ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif__index__);
+emit_32(_ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__);
+emit_32(_ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__);
+emit_32(_ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__);
+emit_32(_ZN17btHingeConstraint8setParamEifi__index__);
+emit_32(_ZNK17btHingeConstraint8getParamEii__index__);
+emit_32(_ZNK17btHingeConstraint28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK17btHingeConstraint9serializeEPvP12btSerializer__index__);
+emit_start(_ZTI17btHingeConstraint)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS17btHingeConstraint);
+emit_32(_ZTI17btTypedConstraint);
+emit_start(_ZTS17btHingeConstraint)
+emit_string('17btHingeConstraint\x00');
+emit_start(_2E_str130)
+emit_string('m_flags & BT_HINGE_FLAGS_ERP_STOP\x00');
+emit_start(_2E_str231)
+emit_string('../../../../src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp\x00');
+emit_start(_2E_str332)
+emit_string('m_flags & BT_HINGE_FLAGS_CFM_STOP\x00');
+emit_start(_2E_str433)
+emit_string('m_flags & BT_HINGE_FLAGS_CFM_NORM\x00');
+emit_start(_ZTI18btConstraintSolver)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS18btConstraintSolver);
+emit_start(_ZTS18btConstraintSolver)
+emit_string('18btConstraintSolver\x00');
+emit_start(_ZTV35btSequentialImpulseConstraintSolver)
+emit_32(0);
+emit_32(_ZTI35btSequentialImpulseConstraintSolver);
+emit_32(_ZN35btSequentialImpulseConstraintSolverD1Ev__index__);
+emit_32(_ZN35btSequentialImpulseConstraintSolverD0Ev__index__);
+emit_32(_ZN18btConstraintSolver12prepareSolveEii__index__);
+emit_32(_ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher__index__);
+emit_32(_ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__);
+emit_32(_ZN35btSequentialImpulseConstraintSolver5resetEv__index__);
+emit_32(_ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__);
+emit_32(_ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__);
+emit_32(_ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__);
+emit_32(_ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__);
+emit_start(_ZTI35btSequentialImpulseConstraintSolver)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS35btSequentialImpulseConstraintSolver);
+emit_32(_ZTI18btConstraintSolver);
+emit_start(_ZTS35btSequentialImpulseConstraintSolver)
+emit_string('35btSequentialImpulseConstraintSolver\x00');
+emit_start(_2E_str248)
+emit_string('m_constraintRefs.size()==0\x00');
+emit_start(_2E_str34955)
+emit_string('../../../../src/BulletDynamics/Dynamics/btRigidBody.h\x00');
+emit_start(_2E_str450)
+emit_string('solveGroup\x00');
+emit_start(_2E_str551)
+emit_string('bodies\x00');
+emit_start(_2E_str652)
+emit_string('../../../../src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp\x00');
+emit_start(_2E_str753)
+emit_string('numBodies\x00');
+emit_start(_2E_str854)
+emit_string('solveGroupCacheFriendlyIterations\x00');
+emit_start(_2E_str955)
+emit_string('pt\x00');
+emit_start(_2E_str1056)
+emit_string('solveGroupCacheFriendlySetup\x00');
+emit_start(_2E_str1157)
+emit_string('currentRow<totalNumRows\x00');
+emit_start(_2E_str76)
+emit_string('btTypedConstraintData\x00');
+emit_start(_ZTI23btDiscreteDynamicsWorld)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS23btDiscreteDynamicsWorld);
+emit_32(_ZTI15btDynamicsWorld);
+emit_start(_ZTS23btDiscreteDynamicsWorld)
+emit_string('23btDiscreteDynamicsWorld\x00');
+emit_start(_ZTI15btDynamicsWorld)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS15btDynamicsWorld);
+emit_32(_ZTI16btCollisionWorld);
+emit_start(_ZTS15btDynamicsWorld)
+emit_string('15btDynamicsWorld\x00');
+emit_start(_ZTIN25btSimulationIslandManager14IslandCallbackE)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTSN25btSimulationIslandManager14IslandCallbackE);
+emit_start(_ZTSN25btSimulationIslandManager14IslandCallbackE)
+emit_string('N25btSimulationIslandManager14IslandCallbackE\x00');
+emit_start(_ZTV34btClosestNotMeConvexResultCallback)
+emit_32(0);
+emit_32(_ZTI34btClosestNotMeConvexResultCallback);
+emit_32(_ZN34btClosestNotMeConvexResultCallbackD1Ev__index__);
+emit_32(_ZN34btClosestNotMeConvexResultCallbackD0Ev__index__);
+emit_32(_ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__);
+emit_32(_ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb__index__);
+emit_start(_ZTI34btClosestNotMeConvexResultCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS34btClosestNotMeConvexResultCallback);
+emit_32(_ZTIN16btCollisionWorld27ClosestConvexResultCallbackE);
+emit_start(_ZTS34btClosestNotMeConvexResultCallback)
+emit_string('34btClosestNotMeConvexResultCallback\x00');
+emit_start(_ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback)
+emit_32(0);
+emit_32(_ZTIZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback);
+emit_32(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev__index__);
+emit_32(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev__index__);
+emit_32(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii__index__);
+emit_start(_ZTIZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback);
+emit_32(_ZTIN25btSimulationIslandManager14IslandCallbackE);
+emit_start(_ZTSZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback)
+emit_string('ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback\x00');
+emit_start(_2E_str87)
+emit_string('predictUnconstraintMotion\x00');
+emit_start(_2E_str188)
+emit_string('calculateSimulationIslands\x00');
+emit_start(_2E_str289)
+emit_string('updateActions\x00');
+emit_start(_2E_str794)
+emit_string('integrateTransforms\x00');
+emit_start(_2E_str895)
+emit_string('CCD motion clamping\x00');
+emit_start(_2E_str996)
+emit_string('solveConstraints\x00');
+emit_start(_2E_str1097)
+emit_string('updateActivationState\x00');
+emit_start(_2E_str1198)
+emit_string('internalSingleStepSimulation\x00');
+emit_start(_2E_str1299)
+emit_string('stepSimulation\x00');
+emit_start(_2E_str13100)
+emit_string('body\x00');
+emit_start(_2E_str1461)
+emit_string('../../../../src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp\x00');
+emit_start(_2E_str1562)
+emit_string('synchronizeMotionStates\x00');
+emit_start(_2E_str16101)
+emit_string('debugDrawWorld\x00');
+emit_start(_ZTV15btDynamicsWorld)
+emit_32(0);
+emit_32(_ZTI15btDynamicsWorld);
+emit_32(_ZN15btDynamicsWorldD1Ev__index__);
+emit_32(_ZN15btDynamicsWorldD0Ev__index__);
+emit_32(_ZN16btCollisionWorld11updateAabbsEv__index__);
+emit_32(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__);
+emit_32(_ZN16btCollisionWorld14getDebugDrawerEv__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(_ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3__index__);
+emit_32(_ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE__index__);
+emit_32(_ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss__index__);
+emit_32(_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject__index__);
+emit_32(_ZN16btCollisionWorld33performDiscreteCollisionDetectionEv__index__);
+emit_32(_ZN16btCollisionWorld9serializeEP12btSerializer__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(_ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb__index__);
+emit_32(_ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(_ZNK15btDynamicsWorld17getNumConstraintsEv__index__);
+emit_32(_ZN15btDynamicsWorld13getConstraintEi__index__);
+emit_32(_ZNK15btDynamicsWorld13getConstraintEi__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(__cxa_pure_virtual__index__);
+emit_32(_ZN15btDynamicsWorld10addVehicleEP17btActionInterface__index__);
+emit_32(_ZN15btDynamicsWorld13removeVehicleEP17btActionInterface__index__);
+emit_32(_ZN15btDynamicsWorld12addCharacterEP17btActionInterface__index__);
+emit_32(_ZN15btDynamicsWorld15removeCharacterEP17btActionInterface__index__);
+emit_start(_ZTV23btDiscreteDynamicsWorld)
+emit_32(0);
+emit_32(_ZTI23btDiscreteDynamicsWorld);
+emit_32(_ZN23btDiscreteDynamicsWorldD1Ev__index__);
+emit_32(_ZN23btDiscreteDynamicsWorldD0Ev__index__);
+emit_32(_ZN16btCollisionWorld11updateAabbsEv__index__);
+emit_32(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__);
+emit_32(_ZN16btCollisionWorld14getDebugDrawerEv__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld14debugDrawWorldEv__index__);
+emit_32(_ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3__index__);
+emit_32(_ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject__index__);
+emit_32(_ZN16btCollisionWorld33performDiscreteCollisionDetectionEv__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld14stepSimulationEfif__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3__index__);
+emit_32(_ZNK23btDiscreteDynamicsWorld10getGravityEv__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld19getConstraintSolverEv__index__);
+emit_32(_ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld13getConstraintEi__index__);
+emit_32(_ZNK23btDiscreteDynamicsWorld13getConstraintEi__index__);
+emit_32(_ZNK23btDiscreteDynamicsWorld12getWorldTypeEv__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld11clearForcesEv__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld19integrateTransformsEf__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld18saveKinematicStateEf__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld12applyGravityEv__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld11setNumTasksEi__index__);
+emit_32(_ZN23btDiscreteDynamicsWorld14updateVehiclesEf__index__);
+emit_start(_ZTV11btRigidBody)
+emit_32(0);
+emit_32(_ZTI11btRigidBody);
+emit_32(_ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject__index__);
+emit_32(_ZN11btRigidBodyD1Ev__index__);
+emit_32(_ZN11btRigidBodyD0Ev__index__);
+emit_32(_ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape__index__);
+emit_32(_ZNK11btRigidBody28calculateSerializeBufferSizeEv__index__);
+emit_32(_ZNK11btRigidBody9serializeEPvP12btSerializer__index__);
+emit_32(_ZNK11btRigidBody21serializeSingleObjectEP12btSerializer__index__);
+emit_start(_ZTI11btRigidBody)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS11btRigidBody);
+emit_32(_ZTI17btCollisionObject);
+emit_start(_ZTS11btRigidBody)
+emit_string('11btRigidBody\x00');
+emit_start(_2E_str4144)
+emit_string('btRigidBodyFloatData\x00');
+emit_start(_ZN15CProfileManager11CurrentNodeE)
+emit_32(_ZN15CProfileManager4RootE);
+emit_start(_2E_str729)
+emit_string('Root\x00');
+emit_start(llvm_2E_eh_2E_catch_2E_all_2E_value)
+emit_32(0);
+emit_start(_ZTIN4__rw10__rw_facetE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN4__rw10__rw_facetE);
+emit_32(_ZTIN4__rw17__rw_synchronizedE);
+emit_start(_ZTSN4__rw10__rw_facetE)
+emit_string('N4__rw10__rw_facetE\x00');
+emit_start(_ZTIN4__rw17__rw_synchronizedE)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTSN4__rw17__rw_synchronizedE);
+emit_start(_ZTSN4__rw17__rw_synchronizedE)
+emit_string('N4__rw17__rw_synchronizedE\x00');
+emit_start(_2E_str4131)
+emit_string('exception\x00');
+emit_start(_2E_str15132)
+emit_string('unexpected exception\x00');
+emit_start(_2E_str26)
+emit_fill(0,1);
+emit_start(_2E_str3133)
+emit_string('Exception: %s.\x0a\x00');
+emit_start(_2E_str47)
+emit_string('bad_alloc: out of memory\x00');
+emit_start(_2E_str5134)
+emit_string('unknown exception\x00');
+emit_start(_ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer)
+emit_string('rwstderr:1\x00');
+emit_start(_2E_str7136)
+emit_string('%d\x00');
+emit_start(_ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset)
+emit_32(1);
+emit_start(_ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat)
+emit_32(4294967295);
+emit_start(_ZZN4__rw10__rw_throwEizE6errors)
+emit_32(_2E_str8137);
+emit_32(_2E_str9138);
+emit_32(_2E_str10139);
+emit_32(_2E_str11140);
+emit_32(_2E_str12141);
+emit_32(_2E_str138142);
+emit_32(_2E_str14143);
+emit_32(_2E_str159144);
+emit_32(_2E_str16145);
+emit_32(_2E_str17146);
+emit_32(_2E_str18147);
+emit_32(_2E_str19148);
+emit_32(_2E_str20149);
+emit_32(_2E_str21150);
+emit_32(_2E_str22151);
+emit_32(_2E_str23152);
+emit_32(_2E_str24153);
+emit_32(_2E_str25154);
+emit_32(_2E_str2610);
+emit_32(_2E_str27);
+emit_32(_2E_str28155);
+emit_32(_2E_str29156);
+emit_32(_2E_str30);
+emit_32(_2E_str31);
+emit_32(_2E_str32157);
+emit_start(_2E_str8137)
+emit_string('%s: %s: unspecified error\x00');
+emit_start(_2E_str9138)
+emit_string('%s: %s: exception\x00');
+emit_start(_2E_str10139)
+emit_string('%s: %s: unexpected exception\x00');
+emit_start(_2E_str11140)
+emit_string('%s: %s: bad_alloc: out of memory\x00');
+emit_start(_2E_str12141)
+emit_string('%s: %s: bad cast\x00');
+emit_start(_2E_str138142)
+emit_string('%s: %s: logic error\x00');
+emit_start(_2E_str14143)
+emit_string('%s: %s: domain error\x00');
+emit_start(_2E_str159144)
+emit_string('%s: %s: invalid argument\x00');
+emit_start(_2E_str16145)
+emit_string('%s: %s: length error: size %u out of range [0, %u)\x00');
+emit_start(_2E_str17146)
+emit_string('%s: %s: argument value %u out of range [0, %u)\x00');
+emit_start(_2E_str18147)
+emit_string('%s: %s: runtime error\x00');
+emit_start(_2E_str19148)
+emit_string('%s: %s: range error: invalid range [%d, %d)\x00');
+emit_start(_2E_str20149)
+emit_string('%s: %s: overflow error\x00');
+emit_start(_2E_str21150)
+emit_string('%s: %s: underflow error\x00');
+emit_start(_2E_str22151)
+emit_string('%s: stream object has set ios::failbit\x00');
+emit_start(_2E_str23152)
+emit_string('%s: stream object has set ios::badbit\x00');
+emit_start(_2E_str24153)
+emit_string('%s: stream object has set ios::eofbit\x00');
+emit_start(_2E_str25154)
+emit_string('%s: stream object has set %s\x00');
+emit_start(_2E_str2610)
+emit_string('%s: %s: facet %u not found in locale (\x22%s\x22)\x00');
+emit_start(_2E_str27)
+emit_string('%s: %s: bad locale name: \x22%s\x22\x00');
+emit_start(_2E_str28155)
+emit_string('%s: %s: failed to construct locale name\x00');
+emit_start(_2E_str29156)
+emit_string('%s: %s: conversion failed\x00');
+emit_start(_2E_str30)
+emit_string('%s: %s: invalid pointer %p\x00');
+emit_start(_2E_str31)
+emit_string('%s: %s: transformation failed\x00');
+emit_start(_2E_str32157)
+emit_string('%s: %s: bad category value: %#x\x00');
+emit_start(_2E_str33)
+emit_string('LC_COLLATE\x00');
+emit_start(_2E_str134)
+emit_string('LC_CTYPE\x00');
+emit_start(_2E_str235)
+emit_string('LC_MONETARY\x00');
+emit_start(_2E_str336)
+emit_string('LC_NUMERIC\x00');
+emit_start(_2E_str437)
+emit_string('LC_TIME\x00');
+emit_start(_ZTVN4__rw10__rw_facetE)
+emit_32(0);
+emit_32(_ZTIN4__rw10__rw_facetE);
+emit_32(_ZN4__rw10__rw_facetD1Ev__index__);
+emit_32(_ZN4__rw10__rw_facetD0Ev__index__);
+emit_start(_2E_str538)
+emit_string('C\x00');
+emit_start(_ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE10std_facets)
+emit_32(_ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf);
+emit_start(_ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE17std_facet_bufsize)
+emit_32(416);
+emit_start(_ZZN4__rw10__rw_facetD4EvE9destroyed)
+emit_string('*** destroyed facet ***\x00');
+emit_start(_ZN4__rw9__rw_catsE)
+emit_32(1);
+emit_32(_2E_str33);
+emit_32(8193);
+emit_32(2);
+emit_32(_2E_str134);
+emit_32(49158);
+emit_32(3);
+emit_32(_2E_str235);
+emit_32(983160);
+emit_32(4);
+emit_32(_2E_str336);
+emit_32(7340928);
+emit_32(5);
+emit_32(_2E_str437);
+emit_32(25168896);
+emit_32(1);
+emit_32(_2E_str33);
+emit_32(8193);
+emit_start(_2E_str785)
+emit_string(';\x00');
+emit_start(_ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7locales)
+emit_32(_ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf);
+emit_start(_ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize)
+emit_32(8);
+emit_start(_2E_str292167)
+emit_string('LC_\x00');
+emit_start(_2E_str10100175)
+emit_string('locale::locale (const char*)\x00');
+emit_start(_2E_str12102177)
+emit_string('../stdcxx/locale_combine.cpp:650\x00');
+emit_start(_ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs)
+emit_32(_ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf);
+emit_start(_ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize)
+emit_32(8);
+emit_start(_2E_str115180)
+emit_string('../stdcxx/messages.cpp:308\x00');
+emit_start(_2E_str1116181)
+emit_string('__rw_cat_close (int cat)\x00');
+emit_start(_2E_str2131)
+emit_string('.\x00');
+emit_start(_2E_str4133)
+emit_string(',\x00');
+emit_start(_ZTVSt8messagesIcE)
+emit_32(0);
+emit_32(_ZTISt8messagesIcE);
+emit_32(_ZNSt8messagesIcED1Ev__index__);
+emit_32(_ZNSt8messagesIcED0Ev__index__);
+emit_32(_ZNKSt8messagesIcE7do_openERKSsRKSt6locale__index__);
+emit_32(_ZNKSt8messagesIcE6do_getEiiiRKSs__index__);
+emit_32(_ZNKSt8messagesIcE8do_closeEi__index__);
+emit_start(_ZTISt8messagesIcE)
+emit_32(_ZTVN10__cxxabiv121__vmi_class_type_infoE+8);
+emit_32(_ZTSSt8messagesIcE);
+emit_32(0);
+emit_32(2);
+emit_32(_ZTIN4__rw10__rw_facetE);
+emit_32(2);
+emit_32(_ZTISt13messages_base);
+emit_32(2);
+emit_start(_ZTSSt8messagesIcE)
+emit_string('St8messagesIcE\x00');
+emit_start(_ZTISt13messages_base)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTSSt13messages_base);
+emit_start(_ZTSSt13messages_base)
+emit_string('St13messages_base\x00');
+emit_start(_2E_str2360)
+emit_string('../stdcxx/include/string.cc:88\x00');
+emit_start(_2E_str3361)
+emit_string('basic_string::_C_get_rep (size_type, size_type)\x00');
+emit_start(_2E_str4362)
+emit_string('../stdcxx/include/string.cc:95\x00');
+emit_start(_ZTVSt9type_info)
+emit_32(0);
+emit_32(_ZTISt9type_info);
+emit_32(_ZNSt9type_infoD1Ev__index__);
+emit_32(_ZNSt9type_infoD0Ev__index__);
+emit_32(_ZNKSt9type_info15__is_function_pEv__index__);
+emit_32(_ZNKSt9type_info10__do_catchEPKS_PPvj__index__);
+emit_start(_ZTISt9type_info)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTSSt9type_info);
+emit_start(_ZTSSt9type_info)
+emit_string('St9type_info\x00');
+emit_start(_2E_str643)
+emit_string('tlsf_create: Pool size must be between %d and %d bytes.\x0a\x00');
+emit_start(_2E_str1648)
+emit_string('rb\x00');
+emit_start(_2E_str4651)
+emit_string('rb+\x00');
+emit_start(_2E_str5652)
+emit_string('wb+\x00');
+emit_start(my_ctype)
+emit_32(0);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(40);
+emit_32(40);
+emit_32(40);
+emit_32(40);
+emit_32(40);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(32);
+emit_32(72);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(132);
+emit_32(132);
+emit_32(132);
+emit_32(132);
+emit_32(132);
+emit_32(132);
+emit_32(132);
+emit_32(132);
+emit_32(132);
+emit_32(132);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(129);
+emit_32(129);
+emit_32(129);
+emit_32(129);
+emit_32(129);
+emit_32(129);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(1);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(130);
+emit_32(130);
+emit_32(130);
+emit_32(130);
+emit_32(130);
+emit_32(130);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(2);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(16);
+emit_32(32);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_32(0);
+emit_start(_ZL8nextRand)
+emit_32(1);
+emit_start(_2E_str7654)
+emit_string('inf\x00');
+emit_start(_2E_str9655)
+emit_string('nan\x00');
+emit_start(_ZL8pad_line)
+emit_string('                \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00');
+emit_string('0000000000000000\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00');
+emit_start(_ZTI14CFileInterface)
+emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
+emit_32(_ZTS14CFileInterface);
+emit_start(_ZTS14CFileInterface)
+emit_string('14CFileInterface\x00');
+emit_start(_ZTV11CFileSystem)
+emit_32(0);
+emit_32(_ZTI11CFileSystem);
+emit_32(_ZNK11CFileSystem12IsFileSystemEv__index__);
+emit_32(_ZN11CFileSystem5freadEPvjj__index__);
+emit_32(_ZN11CFileSystem6fwriteEPKvjj__index__);
+emit_32(_ZN11CFileSystem6fflushEv__index__);
+emit_32(_ZN11CFileSystem6fcloseEv__index__);
+emit_32(_ZN11CFileSystem5ftellEv__index__);
+emit_32(_ZN11CFileSystem4feofEv__index__);
+emit_32(_ZN11CFileSystem5fseekEli__index__);
+emit_32(_ZN11CFileSystem6ungetcEi__index__);
+emit_start(_ZTI11CFileSystem)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS11CFileSystem);
+emit_32(_ZTI14CFileInterface);
+emit_start(_ZTS11CFileSystem)
+emit_string('11CFileSystem\x00');
+emit_start(_ZL13s_file_stdout)
+emit_32(_ZTV11CFileStdout+8);
+emit_start(_ZTV7CFileLS)
+emit_32(0);
+emit_32(_ZTI7CFileLS);
+emit_32(_ZNK14CFileInterface12IsFileSystemEv__index__);
+emit_32(_ZN7CFileLS5freadEPvjj__index__);
+emit_32(_ZN7CFileLS6fwriteEPKvjj__index__);
+emit_32(_ZN7CFileLS6fflushEv__index__);
+emit_32(_ZN7CFileLS6fcloseEv__index__);
+emit_32(_ZN7CFileLS5ftellEv__index__);
+emit_32(_ZN7CFileLS4feofEv__index__);
+emit_32(_ZN7CFileLS5fseekEli__index__);
+emit_32(_ZN7CFileLS6ungetcEi__index__);
+emit_start(_ZTI7CFileLS)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS7CFileLS);
+emit_32(_ZTI14CFileInterface);
+emit_start(_ZTS7CFileLS)
+emit_string('7CFileLS\x00');
+emit_start(_ZTV10CFileCloud)
+emit_32(0);
+emit_32(_ZTI10CFileCloud);
+emit_32(_ZNK14CFileInterface12IsFileSystemEv__index__);
+emit_32(_ZN10CFileCloud5freadEPvjj__index__);
+emit_32(_ZN10CFileCloud6fwriteEPKvjj__index__);
+emit_32(_ZN10CFileCloud6fflushEv__index__);
+emit_32(_ZN10CFileCloud6fcloseEv__index__);
+emit_32(_ZN10CFileCloud5ftellEv__index__);
+emit_32(_ZN10CFileCloud4feofEv__index__);
+emit_32(_ZN10CFileCloud5fseekEli__index__);
+emit_32(_ZN10CFileCloud6ungetcEi__index__);
+emit_start(_ZTI10CFileCloud)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS10CFileCloud);
+emit_32(_ZTI14CFileInterface);
+emit_start(_ZTS10CFileCloud)
+emit_string('10CFileCloud\x00');
+emit_start(_ZTV11CFileStdout)
+emit_32(0);
+emit_32(_ZTI11CFileStdout);
+emit_32(_ZNK14CFileInterface12IsFileSystemEv__index__);
+emit_32(_ZN11CFileStdout5freadEPvjj__index__);
+emit_32(_ZN11CFileStdout6fwriteEPKvjj__index__);
+emit_32(_ZN11CFileStdout6fflushEv__index__);
+emit_32(_ZN11CFileStdout6fcloseEv__index__);
+emit_32(_ZN11CFileStdout5ftellEv__index__);
+emit_32(_ZN11CFileStdout4feofEv__index__);
+emit_32(_ZN11CFileStdout5fseekEli__index__);
+emit_32(_ZN11CFileStdout6ungetcEi__index__);
+emit_start(_ZTI11CFileStdout)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTS11CFileStdout);
+emit_32(_ZTI14CFileInterface);
+emit_start(_ZTS11CFileStdout)
+emit_string('11CFileStdout\x00');
+emit_start(_2E_str31677)
+emit_string('r+b\x00');
+emit_start(_2E_str32678)
+emit_string('w+b\x00');
+emit_start(_2E_str33679)
+emit_string('/ls/\x00');
+emit_start(_2E_str34680)
+emit_string('/cloud/\x00');
+emit_start(_2E_str35681)
+emit_string('trying to open file (%s) with write attributes (%s)\x0a\x00');
+emit_start(_2E_str37683)
+emit_string('/ls\x00');
+emit_start(_2E_str38684)
+emit_string('(null)\x00');
+emit_start(_ZN12mandreel_b64L9b64_charsE)
+emit_string('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x00');
+emit_start(_ZN12mandreel_b64L11b64_indexesE)
+emit_string('\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff\xff?456789:;<=\xff\xff\xff\xff\xff\xff\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff\xff\xff\x1a\x1b\x1c\x1d\x1e\x1f !\x22#$%&\x27()*+,-./0123\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff');
+emit_start(_ZL25s_mandreel_internal_width)
+emit_32(1024);
+emit_start(_ZL26s_mandreel_internal_height)
+emit_32(768);
+emit_start(_2E_str779)
+emit_string('mandreel.fat\x00');
+emit_start(_2E_str3782)
+emit_string('asynctexture\x00');
+emit_start(_2E_str4783)
+emit_string('warning: asynctexture data not valid\x00');
+emit_start(_2E_str5784)
+emit_string('packtexture\x00');
+emit_start(_2E_str6785)
+emit_string('unpackedtextures\x00');
+emit_start(_ZTVN10__cxxabiv120__si_class_type_infoE)
+emit_32(0);
+emit_32(_ZTIN10__cxxabiv120__si_class_type_infoE);
+emit_32(_ZN10__cxxabiv120__si_class_type_infoD1Ev__index__);
+emit_32(_ZN10__cxxabiv120__si_class_type_infoD0Ev__index__);
+emit_32(_ZNKSt9type_info15__is_function_pEv__index__);
+emit_32(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__);
+emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__);
+emit_32(_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__);
+emit_32(_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__);
+emit_32(_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__);
+emit_start(_ZTIN10__cxxabiv120__si_class_type_infoE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN10__cxxabiv120__si_class_type_infoE);
+emit_32(_ZTIN10__cxxabiv117__class_type_infoE);
+emit_start(_ZTSN10__cxxabiv120__si_class_type_infoE)
+emit_string('N10__cxxabiv120__si_class_type_infoE\x00');
+emit_start(_ZTIN10__cxxabiv117__class_type_infoE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN10__cxxabiv117__class_type_infoE);
+emit_32(_ZTISt9type_info);
+emit_start(_ZTSN10__cxxabiv117__class_type_infoE)
+emit_string('N10__cxxabiv117__class_type_infoE\x00');
+emit_start(_ZTVN10__cxxabiv117__class_type_infoE)
+emit_32(0);
+emit_32(_ZTIN10__cxxabiv117__class_type_infoE);
+emit_32(_ZN10__cxxabiv117__class_type_infoD1Ev__index__);
+emit_32(_ZN10__cxxabiv117__class_type_infoD0Ev__index__);
+emit_32(_ZNKSt9type_info15__is_function_pEv__index__);
+emit_32(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__);
+emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__);
+emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE__index__);
+emit_32(_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE__index__);
+emit_32(_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2___index__);
+emit_start(_ZTVN10__cxxabiv121__vmi_class_type_infoE)
+emit_32(0);
+emit_32(_ZTIN10__cxxabiv121__vmi_class_type_infoE);
+emit_32(_ZN10__cxxabiv121__vmi_class_type_infoD1Ev__index__);
+emit_32(_ZN10__cxxabiv121__vmi_class_type_infoD0Ev__index__);
+emit_32(_ZNKSt9type_info15__is_function_pEv__index__);
+emit_32(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__);
+emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__);
+emit_32(_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__);
+emit_32(_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__);
+emit_32(_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__);
+emit_start(_ZTIN10__cxxabiv121__vmi_class_type_infoE)
+emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
+emit_32(_ZTSN10__cxxabiv121__vmi_class_type_infoE);
+emit_32(_ZTIN10__cxxabiv117__class_type_infoE);
+emit_start(_ZTSN10__cxxabiv121__vmi_class_type_infoE)
+emit_string('N10__cxxabiv121__vmi_class_type_infoE\x00');
+emit_start(_2E_str221)
+emit_string('g_bInit\x00');
+emit_start(_2E_str1222)
+emit_string('MandreelAudioLib.cpp\x00');
+emit_start(_2E_str3224)
+emit_string('Mandreel_Audio_GetSoundDuration warning: sound duration not found(%s)\x0a\x00');
+emit_start(_2E_str4225)
+emit_string('sandbox\x00');
+emit_start(_2E_str12233)
+emit_string('%s%s\x00');
+emit_start(_2E_str22243)
+emit_string('LoadSoundDuractions\x0a\x00');
+emit_start(_2E_str24245)
+emit_string('error: mandreel.fat file not found. Maybe the working folder is not correctly set???\x0a\x00');
+emit_start(_2E_str26247)
+emit_string('version\x00');
+emit_start(_2E_str27248)
+emit_string('1.4\x00');
+emit_start(_2E_str28249)
+emit_string('ERROR: mandreel.fat version number is (%s) instead of (%s)\x0a\x00');
+emit_start(_2E_str29250)
+emit_string('audiofile\x00');
+emit_start(_2E_str30251)
+emit_string('??\x00');
+emit_start(_2E_str31252)
+emit_string('warning: audiofile(%s) duration can\x27t be read, invalid mandreel.fat file?\x0a\x00');
+emit_start(_2E_str32253)
+emit_string('file\x00');
+emit_start(_2E_str33254)
+emit_string('dir\x00');
+emit_start(_2E_str34255)
+emit_string('!g_bInit\x00');
+emit_start(_2E_str35256)
+emit_string('Mandreel_Audio_Init()\x00');
+emit_start(_ZL13s_fifo_errors)
+emit_32(0);
+emit_32(_ZL13s_fifo_errors+8);
+emit_32(0);
+emit_32(_ZL13s_fifo_errors+8);
+emit_32(0);
+emit_32(0);
+emit_start(llvm_2E_global_ctors)
+emit_32(65535);
+emit_32(_GLOBAL__I_Landscape02Vtx__index__);
+emit_32(65535);
+emit_32(_GLOBAL__I__ZN7btClockC2Ev__index__);
+emit_32(65535);
+emit_32(_GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE__index__);
+emit_32(65535);
+emit_32(_GLOBAL__I__mandreel_create_tcp_socket__index__);
+emit_32(65535);
+emit_32(_GLOBAL__I__ZN5my_gl14glAttachShaderEjj__index__);
+emit_start(llvm_2E_global_dtors)
+emit_32(65535);
+emit_32(_GLOBAL__D_Landscape02Vtx__index__);
+emit_32(65535);
+emit_32(_GLOBAL__D__Z6mymainiPPc__index__);
+emit_32(65535);
+emit_32(_GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj__index__);
+emit_32(65535);
+emit_32(_GLOBAL__D__ZN7btClockC2Ev__index__);
+emit_32(65535);
+emit_32(_GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE__index__);
+emit_32(65535);
+emit_32(_GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv__index__);
+emit_32(65535);
+emit_32(_GLOBAL__D__ZN5my_gl14glAttachShaderEjj__index__);
+emit_start(llvm_2E_used)
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value);
+mandreel_call_constructors(llvm_2E_global_ctors,5,stackPos);
+}
+var _GLOBAL__D_Landscape02Vtx__index__ = register_delegate(_GLOBAL__D_Landscape02Vtx);
+var _GLOBAL__D__Z6mymainiPPc__index__ = register_delegate(_GLOBAL__D__Z6mymainiPPc);
+var _GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj__index__ = register_delegate(_GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj);
+var _GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE__index__ = register_delegate(_GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE);
+var _GLOBAL__D__ZN5my_gl14glAttachShaderEjj__index__ = register_delegate(_GLOBAL__D__ZN5my_gl14glAttachShaderEjj);
+var _GLOBAL__D__ZN7btClockC2Ev__index__ = register_delegate(_GLOBAL__D__ZN7btClockC2Ev);
+var _GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv__index__ = register_delegate(_GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv);
+var _GLOBAL__I_Landscape02Vtx__index__ = register_delegate(_GLOBAL__I_Landscape02Vtx);
+var _GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE__index__ = register_delegate(_GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE);
+var _GLOBAL__I__ZN5my_gl14glAttachShaderEjj__index__ = register_delegate(_GLOBAL__I__ZN5my_gl14glAttachShaderEjj);
+var _GLOBAL__I__ZN7btClockC2Ev__index__ = register_delegate(_GLOBAL__I__ZN7btClockC2Ev);
+var _GLOBAL__I__mandreel_create_tcp_socket__index__ = register_delegate(_GLOBAL__I__mandreel_create_tcp_socket);
+var _Z31MandreelDefaultDebugMsgCallbackiPKc__index__ = register_delegate(_Z31MandreelDefaultDebugMsgCallbackiPKc);
+var _ZN10CFileCloud4feofEv__index__ = register_delegate(_ZN10CFileCloud4feofEv);
+var _ZN10CFileCloud5freadEPvjj__index__ = register_delegate(_ZN10CFileCloud5freadEPvjj);
+var _ZN10CFileCloud5fseekEli__index__ = register_delegate(_ZN10CFileCloud5fseekEli);
+var _ZN10CFileCloud5ftellEv__index__ = register_delegate(_ZN10CFileCloud5ftellEv);
+var _ZN10CFileCloud6fcloseEv__index__ = register_delegate(_ZN10CFileCloud6fcloseEv);
+var _ZN10CFileCloud6fflushEv__index__ = register_delegate(_ZN10CFileCloud6fflushEv);
+var _ZN10CFileCloud6fwriteEPKvjj__index__ = register_delegate(_ZN10CFileCloud6fwriteEPKvjj);
+var _ZN10CFileCloud6ungetcEi__index__ = register_delegate(_ZN10CFileCloud6ungetcEi);
+var _ZN10__cxxabiv117__class_type_infoD0Ev__index__ = register_delegate(_ZN10__cxxabiv117__class_type_infoD0Ev);
+var _ZN10__cxxabiv117__class_type_infoD1Ev__index__ = register_delegate(_ZN10__cxxabiv117__class_type_infoD1Ev);
+var _ZN10__cxxabiv120__si_class_type_infoD0Ev__index__ = register_delegate(_ZN10__cxxabiv120__si_class_type_infoD0Ev);
+var _ZN10__cxxabiv120__si_class_type_infoD1Ev__index__ = register_delegate(_ZN10__cxxabiv120__si_class_type_infoD1Ev);
+var _ZN10__cxxabiv121__vmi_class_type_infoD0Ev__index__ = register_delegate(_ZN10__cxxabiv121__vmi_class_type_infoD0Ev);
+var _ZN10__cxxabiv121__vmi_class_type_infoD1Ev__index__ = register_delegate(_ZN10__cxxabiv121__vmi_class_type_infoD1Ev);
+var _ZN10btBoxShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN10btBoxShape15setLocalScalingERK9btVector3);
+var _ZN10btBoxShape9setMarginEf__index__ = register_delegate(_ZN10btBoxShape9setMarginEf);
+var _ZN10btBoxShapeD0Ev__index__ = register_delegate(_ZN10btBoxShapeD0Ev);
+var _ZN10btBoxShapeD1Ev__index__ = register_delegate(_ZN10btBoxShapeD1Ev);
+var _ZN11CFileStdout4feofEv__index__ = register_delegate(_ZN11CFileStdout4feofEv);
+var _ZN11CFileStdout5freadEPvjj__index__ = register_delegate(_ZN11CFileStdout5freadEPvjj);
+var _ZN11CFileStdout5fseekEli__index__ = register_delegate(_ZN11CFileStdout5fseekEli);
+var _ZN11CFileStdout5ftellEv__index__ = register_delegate(_ZN11CFileStdout5ftellEv);
+var _ZN11CFileStdout6fcloseEv__index__ = register_delegate(_ZN11CFileStdout6fcloseEv);
+var _ZN11CFileStdout6fflushEv__index__ = register_delegate(_ZN11CFileStdout6fflushEv);
+var _ZN11CFileStdout6fwriteEPKvjj__index__ = register_delegate(_ZN11CFileStdout6fwriteEPKvjj);
+var _ZN11CFileStdout6ungetcEi__index__ = register_delegate(_ZN11CFileStdout6ungetcEi);
+var _ZN11CFileSystem4feofEv__index__ = register_delegate(_ZN11CFileSystem4feofEv);
+var _ZN11CFileSystem5freadEPvjj__index__ = register_delegate(_ZN11CFileSystem5freadEPvjj);
+var _ZN11CFileSystem5fseekEli__index__ = register_delegate(_ZN11CFileSystem5fseekEli);
+var _ZN11CFileSystem5ftellEv__index__ = register_delegate(_ZN11CFileSystem5ftellEv);
+var _ZN11CFileSystem6fcloseEv__index__ = register_delegate(_ZN11CFileSystem6fcloseEv);
+var _ZN11CFileSystem6fflushEv__index__ = register_delegate(_ZN11CFileSystem6fflushEv);
+var _ZN11CFileSystem6fwriteEPKvjj__index__ = register_delegate(_ZN11CFileSystem6fwriteEPKvjj);
+var _ZN11CFileSystem6ungetcEi__index__ = register_delegate(_ZN11CFileSystem6ungetcEi);
+var _ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject__index__ = register_delegate(_ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject);
+var _ZN11btRigidBodyD0Ev__index__ = register_delegate(_ZN11btRigidBodyD0Ev);
+var _ZN11btRigidBodyD1Ev__index__ = register_delegate(_ZN11btRigidBodyD1Ev);
+var _ZN12btAxisSweep3D0Ev__index__ = register_delegate(_ZN12btAxisSweep3D0Ev);
+var _ZN12btAxisSweep3D1Ev__index__ = register_delegate(_ZN12btAxisSweep3D1Ev);
+var _ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform__index__ = register_delegate(_ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform);
+var _ZN12btConvexCast10CastResult9DebugDrawEf__index__ = register_delegate(_ZN12btConvexCast10CastResult9DebugDrawEf);
+var _ZN12btConvexCast10CastResultD0Ev__index__ = register_delegate(_ZN12btConvexCast10CastResultD0Ev);
+var _ZN12btConvexCast10CastResultD1Ev__index__ = register_delegate(_ZN12btConvexCast10CastResultD1Ev);
+var _ZN12btConvexCastD0Ev__index__ = register_delegate(_ZN12btConvexCastD0Ev);
+var _ZN12btConvexCastD1Ev__index__ = register_delegate(_ZN12btConvexCastD1Ev);
+var _ZN12btDispatcherD0Ev__index__ = register_delegate(_ZN12btDispatcherD0Ev);
+var _ZN12btDispatcherD1Ev__index__ = register_delegate(_ZN12btDispatcherD1Ev);
+var _ZN13BenchmarkDemo15displayCallbackEv__index__ = register_delegate(_ZN13BenchmarkDemo15displayCallbackEv);
+var _ZN13BenchmarkDemo20clientMoveAndDisplayEv__index__ = register_delegate(_ZN13BenchmarkDemo20clientMoveAndDisplayEv);
+var _ZN13BenchmarkDemoD0Ev__index__ = register_delegate(_ZN13BenchmarkDemoD0Ev);
+var _ZN13BenchmarkDemoD1Ev__index__ = register_delegate(_ZN13BenchmarkDemoD1Ev);
+var _ZN13btConvexShapeD0Ev__index__ = register_delegate(_ZN13btConvexShapeD0Ev);
+var _ZN13btConvexShapeD1Ev__index__ = register_delegate(_ZN13btConvexShapeD1Ev);
+var _ZN13btSphereShape9setMarginEf__index__ = register_delegate(_ZN13btSphereShape9setMarginEf);
+var _ZN13btSphereShapeD0Ev__index__ = register_delegate(_ZN13btSphereShapeD0Ev);
+var _ZN13btSphereShapeD1Ev__index__ = register_delegate(_ZN13btSphereShapeD1Ev);
+var _ZN14BenchmarkDemo4D0Ev__index__ = register_delegate(_ZN14BenchmarkDemo4D0Ev);
+var _ZN14BenchmarkDemo4D1Ev__index__ = register_delegate(_ZN14BenchmarkDemo4D1Ev);
+var _ZN14btCapsuleShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN14btCapsuleShape15setLocalScalingERK9btVector3);
+var _ZN14btCapsuleShape9setMarginEf__index__ = register_delegate(_ZN14btCapsuleShape9setMarginEf);
+var _ZN14btCapsuleShapeD0Ev__index__ = register_delegate(_ZN14btCapsuleShapeD0Ev);
+var _ZN14btCapsuleShapeD1Ev__index__ = register_delegate(_ZN14btCapsuleShapeD1Ev);
+var _ZN14btConcaveShape9setMarginEf__index__ = register_delegate(_ZN14btConcaveShape9setMarginEf);
+var _ZN14btConcaveShapeD0Ev__index__ = register_delegate(_ZN14btConcaveShapeD0Ev);
+var _ZN14btConcaveShapeD1Ev__index__ = register_delegate(_ZN14btConcaveShapeD1Ev);
+var _ZN14btOptimizedBvhD0Ev__index__ = register_delegate(_ZN14btOptimizedBvhD0Ev);
+var _ZN14btOptimizedBvhD1Ev__index__ = register_delegate(_ZN14btOptimizedBvhD1Ev);
+var _ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData__index__ = register_delegate(_ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData);
+var _ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData__index__ = register_delegate(_ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData);
+var _ZN14btQuantizedBvhD0Ev__index__ = register_delegate(_ZN14btQuantizedBvhD0Ev);
+var _ZN14btQuantizedBvhD1Ev__index__ = register_delegate(_ZN14btQuantizedBvhD1Ev);
+var _ZN15DemoApplication16getDynamicsWorldEv__index__ = register_delegate(_ZN15DemoApplication16getDynamicsWorldEv);
+var _ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape__index__ = register_delegate(_ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape);
+var _ZN15DemoApplication6myinitEv__index__ = register_delegate(_ZN15DemoApplication6myinitEv);
+var _ZN15btDynamicsWorld10addVehicleEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld10addVehicleEP17btActionInterface);
+var _ZN15btDynamicsWorld12addCharacterEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld12addCharacterEP17btActionInterface);
+var _ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb__index__ = register_delegate(_ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb);
+var _ZN15btDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZN15btDynamicsWorld13getConstraintEi);
+var _ZN15btDynamicsWorld13removeVehicleEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld13removeVehicleEP17btActionInterface);
+var _ZN15btDynamicsWorld15removeCharacterEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld15removeCharacterEP17btActionInterface);
+var _ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint__index__ = register_delegate(_ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint);
+var _ZN15btDynamicsWorldD0Ev__index__ = register_delegate(_ZN15btDynamicsWorldD0Ev);
+var _ZN15btDynamicsWorldD1Ev__index__ = register_delegate(_ZN15btDynamicsWorldD1Ev);
+var _ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__ = register_delegate(_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE);
+var _ZN15btGjkConvexCastD0Ev__index__ = register_delegate(_ZN15btGjkConvexCastD0Ev);
+var _ZN15btGjkConvexCastD1Ev__index__ = register_delegate(_ZN15btGjkConvexCastD1Ev);
+var _ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1_);
+var _ZN15btNullPairCache18hasDeferredRemovalEv__index__ = register_delegate(_ZN15btNullPairCache18hasDeferredRemovalEv);
+var _ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher);
+var _ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher);
+var _ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher);
+var _ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher);
+var _ZN15btNullPairCache23getOverlappingPairArrayEv__index__ = register_delegate(_ZN15btNullPairCache23getOverlappingPairArrayEv);
+var _ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__ = register_delegate(_ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback);
+var _ZN15btNullPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZN15btNullPairCache26getOverlappingPairArrayPtrEv);
+var _ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher);
+var _ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__ = register_delegate(_ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback);
+var _ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher);
+var _ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1_);
+var _ZN15btNullPairCacheD0Ev__index__ = register_delegate(_ZN15btNullPairCacheD0Ev);
+var _ZN15btNullPairCacheD1Ev__index__ = register_delegate(_ZN15btNullPairCacheD1Ev);
+var _ZN15btTriangleShapeD0Ev__index__ = register_delegate(_ZN15btTriangleShapeD0Ev);
+var _ZN15btTriangleShapeD1Ev__index__ = register_delegate(_ZN15btTriangleShapeD1Ev);
+var _ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__ = register_delegate(_ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb);
+var _ZN16btBoxBoxDetectorD0Ev__index__ = register_delegate(_ZN16btBoxBoxDetectorD0Ev);
+var _ZN16btBoxBoxDetectorD1Ev__index__ = register_delegate(_ZN16btBoxBoxDetectorD1Ev);
+var _ZN16btCollisionWorld11updateAabbsEv__index__ = register_delegate(_ZN16btCollisionWorld11updateAabbsEv);
+var _ZN16btCollisionWorld14debugDrawWorldEv__index__ = register_delegate(_ZN16btCollisionWorld14debugDrawWorldEv);
+var _ZN16btCollisionWorld14getDebugDrawerEv__index__ = register_delegate(_ZN16btCollisionWorld14getDebugDrawerEv);
+var _ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__ = register_delegate(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw);
+var _ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3__index__ = register_delegate(_ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3);
+var _ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss__index__ = register_delegate(_ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss);
+var _ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject__index__ = register_delegate(_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject);
+var _ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb__index__ = register_delegate(_ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb);
+var _ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev__index__ = register_delegate(_ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev);
+var _ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev__index__ = register_delegate(_ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev);
+var _ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb__index__ = register_delegate(_ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb);
+var _ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev__index__ = register_delegate(_ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev);
+var _ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev__index__ = register_delegate(_ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev);
+var _ZN16btCollisionWorld33performDiscreteCollisionDetectionEv__index__ = register_delegate(_ZN16btCollisionWorld33performDiscreteCollisionDetectionEv);
+var _ZN16btCollisionWorld9serializeEP12btSerializer__index__ = register_delegate(_ZN16btCollisionWorld9serializeEP12btSerializer);
+var _ZN16btCollisionWorldD0Ev__index__ = register_delegate(_ZN16btCollisionWorldD0Ev);
+var _ZN16btCollisionWorldD1Ev__index__ = register_delegate(_ZN16btCollisionWorldD1Ev);
+var _ZN16btDbvtBroadphase10printStatsEv__index__ = register_delegate(_ZN16btDbvtBroadphase10printStatsEv);
+var _ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3___index__ = register_delegate(_ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3_);
+var _ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher);
+var _ZN16btDbvtBroadphase23getOverlappingPairCacheEv__index__ = register_delegate(_ZN16btDbvtBroadphase23getOverlappingPairCacheEv);
+var _ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher);
+var _ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2___index__ = register_delegate(_ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2_);
+var _ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher);
+var _ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback__index__ = register_delegate(_ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback);
+var _ZN16btDbvtBroadphase9resetPoolEP12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase9resetPoolEP12btDispatcher);
+var _ZN16btDbvtBroadphaseD0Ev__index__ = register_delegate(_ZN16btDbvtBroadphaseD0Ev);
+var _ZN16btDbvtBroadphaseD1Ev__index__ = register_delegate(_ZN16btDbvtBroadphaseD1Ev);
+var _ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
+var _ZN16btEmptyAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN16btEmptyAlgorithm10CreateFuncD0Ev);
+var _ZN16btEmptyAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN16btEmptyAlgorithm10CreateFuncD1Ev);
+var _ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
+var _ZN16btEmptyAlgorithmD0Ev__index__ = register_delegate(_ZN16btEmptyAlgorithmD0Ev);
+var _ZN16btEmptyAlgorithmD1Ev__index__ = register_delegate(_ZN16btEmptyAlgorithmD1Ev);
+var _ZN16btManifoldResult15addContactPointERK9btVector3S2_f__index__ = register_delegate(_ZN16btManifoldResult15addContactPointERK9btVector3S2_f);
+var _ZN16btManifoldResult20setShapeIdentifiersAEii__index__ = register_delegate(_ZN16btManifoldResult20setShapeIdentifiersAEii);
+var _ZN16btManifoldResult20setShapeIdentifiersBEii__index__ = register_delegate(_ZN16btManifoldResult20setShapeIdentifiersBEii);
+var _ZN16btManifoldResultD0Ev__index__ = register_delegate(_ZN16btManifoldResultD0Ev);
+var _ZN16btManifoldResultD1Ev__index__ = register_delegate(_ZN16btManifoldResultD1Ev);
+var _ZN16btPointCollector15addContactPointERK9btVector3S2_f__index__ = register_delegate(_ZN16btPointCollector15addContactPointERK9btVector3S2_f);
+var _ZN16btPointCollector20setShapeIdentifiersAEii__index__ = register_delegate(_ZN16btPointCollector20setShapeIdentifiersAEii);
+var _ZN16btPointCollector20setShapeIdentifiersBEii__index__ = register_delegate(_ZN16btPointCollector20setShapeIdentifiersBEii);
+var _ZN16btPointCollectorD0Ev__index__ = register_delegate(_ZN16btPointCollectorD0Ev);
+var _ZN16btPointCollectorD1Ev__index__ = register_delegate(_ZN16btPointCollectorD1Ev);
+var _ZN17DebugDrawcallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN17DebugDrawcallback15processTriangleEP9btVector3ii);
+var _ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__ = register_delegate(_ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii);
+var _ZN17DebugDrawcallbackD0Ev__index__ = register_delegate(_ZN17DebugDrawcallbackD0Ev);
+var _ZN17DebugDrawcallbackD1Ev__index__ = register_delegate(_ZN17DebugDrawcallbackD1Ev);
+var _ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape__index__ = register_delegate(_ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape);
+var _ZN17btCollisionObject24checkCollideWithOverrideEPS___index__ = register_delegate(_ZN17btCollisionObject24checkCollideWithOverrideEPS_);
+var _ZN17btCollisionObjectD0Ev__index__ = register_delegate(_ZN17btCollisionObjectD0Ev);
+var _ZN17btCollisionObjectD1Ev__index__ = register_delegate(_ZN17btCollisionObjectD1Ev);
+var _ZN17btConvexHullShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN17btConvexHullShape15setLocalScalingERK9btVector3);
+var _ZN17btConvexHullShapeD0Ev__index__ = register_delegate(_ZN17btConvexHullShapeD0Ev);
+var _ZN17btConvexHullShapeD1Ev__index__ = register_delegate(_ZN17btConvexHullShapeD1Ev);
+var _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__ = register_delegate(_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb);
+var _ZN17btGjkPairDetectorD0Ev__index__ = register_delegate(_ZN17btGjkPairDetectorD0Ev);
+var _ZN17btGjkPairDetectorD1Ev__index__ = register_delegate(_ZN17btGjkPairDetectorD1Ev);
+var _ZN17btHingeConstraint13buildJacobianEv__index__ = register_delegate(_ZN17btHingeConstraint13buildJacobianEv);
+var _ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__ = register_delegate(_ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E);
+var _ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__ = register_delegate(_ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E);
+var _ZN17btHingeConstraint8setParamEifi__index__ = register_delegate(_ZN17btHingeConstraint8setParamEifi);
+var _ZN17btHingeConstraintD0Ev__index__ = register_delegate(_ZN17btHingeConstraintD0Ev);
+var _ZN17btHingeConstraintD1Ev__index__ = register_delegate(_ZN17btHingeConstraintD1Ev);
+var _ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif__index__ = register_delegate(_ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif);
+var _ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__ = register_delegate(_ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f);
+var _ZN18btConstraintSolver12prepareSolveEii__index__ = register_delegate(_ZN18btConstraintSolver12prepareSolveEii);
+var _ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc);
+var _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode);
+var _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2___index__ = register_delegate(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2_);
+var _ZN18btDbvtTreeColliderD0Ev__index__ = register_delegate(_ZN18btDbvtTreeColliderD0Ev);
+var _ZN18btDbvtTreeColliderD1Ev__index__ = register_delegate(_ZN18btDbvtTreeColliderD1Ev);
+var _ZN18btTriangleCallbackD0Ev__index__ = register_delegate(_ZN18btTriangleCallbackD0Ev);
+var _ZN18btTriangleCallbackD1Ev__index__ = register_delegate(_ZN18btTriangleCallbackD1Ev);
+var _ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode);
+var _ZN19BroadphaseRayTesterD0Ev__index__ = register_delegate(_ZN19BroadphaseRayTesterD0Ev);
+var _ZN19BroadphaseRayTesterD1Ev__index__ = register_delegate(_ZN19BroadphaseRayTesterD1Ev);
+var _ZN19btSingleRayCallback7processEPK17btBroadphaseProxy__index__ = register_delegate(_ZN19btSingleRayCallback7processEPK17btBroadphaseProxy);
+var _ZN19btSingleRayCallbackD0Ev__index__ = register_delegate(_ZN19btSingleRayCallbackD0Ev);
+var _ZN19btSingleRayCallbackD1Ev__index__ = register_delegate(_ZN19btSingleRayCallbackD1Ev);
+var _ZN19btTriangleMeshShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN19btTriangleMeshShape15setLocalScalingERK9btVector3);
+var _ZN19btTriangleMeshShapeD0Ev__index__ = register_delegate(_ZN19btTriangleMeshShapeD0Ev);
+var _ZN19btTriangleMeshShapeD1Ev__index__ = register_delegate(_ZN19btTriangleMeshShapeD1Ev);
+var _ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode);
+var _ZN20BroadphaseAabbTesterD0Ev__index__ = register_delegate(_ZN20BroadphaseAabbTesterD0Ev);
+var _ZN20BroadphaseAabbTesterD1Ev__index__ = register_delegate(_ZN20BroadphaseAabbTesterD1Ev);
+var _ZN20btAxisSweep3InternalItE10printStatsEv__index__ = register_delegate(_ZN20btAxisSweep3InternalItE10printStatsEv);
+var _ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4___index__ = register_delegate(_ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4_);
+var _ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher);
+var _ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__ = register_delegate(_ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv);
+var _ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher);
+var _ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3___index__ = register_delegate(_ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3_);
+var _ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher);
+var _ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback__index__ = register_delegate(_ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback);
+var _ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher);
+var _ZN20btAxisSweep3InternalItED0Ev__index__ = register_delegate(_ZN20btAxisSweep3InternalItED0Ev);
+var _ZN20btAxisSweep3InternalItED1Ev__index__ = register_delegate(_ZN20btAxisSweep3InternalItED1Ev);
+var _ZN20btCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN20btCollisionAlgorithmD0Ev);
+var _ZN20btCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN20btCollisionAlgorithmD1Ev);
+var _ZN20btDefaultMotionState17setWorldTransformERK11btTransform__index__ = register_delegate(_ZN20btDefaultMotionState17setWorldTransformERK11btTransform);
+var _ZN20btDefaultMotionStateD0Ev__index__ = register_delegate(_ZN20btDefaultMotionStateD0Ev);
+var _ZN20btDefaultMotionStateD1Ev__index__ = register_delegate(_ZN20btDefaultMotionStateD1Ev);
+var _ZN21SupportVertexCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN21SupportVertexCallback15processTriangleEP9btVector3ii);
+var _ZN21SupportVertexCallbackD0Ev__index__ = register_delegate(_ZN21SupportVertexCallbackD0Ev);
+var _ZN21SupportVertexCallbackD1Ev__index__ = register_delegate(_ZN21SupportVertexCallbackD1Ev);
+var _ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold__index__ = register_delegate(_ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold);
+var _ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold__index__ = register_delegate(_ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold);
+var _ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1___index__ = register_delegate(_ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1_);
+var _ZN21btCollisionDispatcher14getNewManifoldEPvS0___index__ = register_delegate(_ZN21btCollisionDispatcher14getNewManifoldEPvS0_);
+var _ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1___index__ = register_delegate(_ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1_);
+var _ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold__index__ = register_delegate(_ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold);
+var _ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo__index__ = register_delegate(_ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo);
+var _ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv__index__ = register_delegate(_ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv);
+var _ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher__index__ = register_delegate(_ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher);
+var _ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi__index__ = register_delegate(_ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi);
+var _ZN21btCollisionDispatcher26getInternalManifoldPointerEv__index__ = register_delegate(_ZN21btCollisionDispatcher26getInternalManifoldPointerEv);
+var _ZN21btCollisionDispatcher26getManifoldByIndexInternalEi__index__ = register_delegate(_ZN21btCollisionDispatcher26getManifoldByIndexInternalEi);
+var _ZN21btCollisionDispatcherD0Ev__index__ = register_delegate(_ZN21btCollisionDispatcherD0Ev);
+var _ZN21btCollisionDispatcherD1Ev__index__ = register_delegate(_ZN21btCollisionDispatcherD1Ev);
+var _ZN21btConeTwistConstraint13buildJacobianEv__index__ = register_delegate(_ZN21btConeTwistConstraint13buildJacobianEv);
+var _ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__ = register_delegate(_ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f);
+var _ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__ = register_delegate(_ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E);
+var _ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__ = register_delegate(_ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E);
+var _ZN21btConeTwistConstraint8setParamEifi__index__ = register_delegate(_ZN21btConeTwistConstraint8setParamEifi);
+var _ZN21btConeTwistConstraintD0Ev__index__ = register_delegate(_ZN21btConeTwistConstraintD0Ev);
+var _ZN21btConeTwistConstraintD1Ev__index__ = register_delegate(_ZN21btConeTwistConstraintD1Ev);
+var _ZN21btConvexInternalShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN21btConvexInternalShape15setLocalScalingERK9btVector3);
+var _ZN21btConvexInternalShape9setMarginEf__index__ = register_delegate(_ZN21btConvexInternalShape9setMarginEf);
+var _ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy__index__ = register_delegate(_ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy);
+var _ZN21btSingleSweepCallbackD0Ev__index__ = register_delegate(_ZN21btSingleSweepCallbackD0Ev);
+var _ZN21btSingleSweepCallbackD1Ev__index__ = register_delegate(_ZN21btSingleSweepCallbackD1Ev);
+var _ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__ = register_delegate(_ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb);
+var _ZN22SphereTriangleDetectorD0Ev__index__ = register_delegate(_ZN22SphereTriangleDetectorD0Ev);
+var _ZN22SphereTriangleDetectorD1Ev__index__ = register_delegate(_ZN22SphereTriangleDetectorD1Ev);
+var _ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3);
+var _ZN22btBvhTriangleMeshShapeD0Ev__index__ = register_delegate(_ZN22btBvhTriangleMeshShapeD0Ev);
+var _ZN22btBvhTriangleMeshShapeD1Ev__index__ = register_delegate(_ZN22btBvhTriangleMeshShapeD1Ev);
+var _ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode);
+var _ZN22btCompoundLeafCallbackD0Ev__index__ = register_delegate(_ZN22btCompoundLeafCallbackD0Ev);
+var _ZN22btCompoundLeafCallbackD1Ev__index__ = register_delegate(_ZN22btCompoundLeafCallbackD1Ev);
+var _ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__ = register_delegate(_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE);
+var _ZN22btSubsimplexConvexCastD0Ev__index__ = register_delegate(_ZN22btSubsimplexConvexCastD0Ev);
+var _ZN22btSubsimplexConvexCastD1Ev__index__ = register_delegate(_ZN22btSubsimplexConvexCastD1Ev);
+var _ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair__index__ = register_delegate(_ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair);
+var _ZN23btCollisionPairCallbackD0Ev__index__ = register_delegate(_ZN23btCollisionPairCallbackD0Ev);
+var _ZN23btCollisionPairCallbackD1Ev__index__ = register_delegate(_ZN23btCollisionPairCallbackD1Ev);
+var _ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
+var _ZN23btConvexConvexAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithm10CreateFuncD0Ev);
+var _ZN23btConvexConvexAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithm10CreateFuncD1Ev);
+var _ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
+var _ZN23btConvexConvexAlgorithmD0Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithmD0Ev);
+var _ZN23btConvexConvexAlgorithmD1Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithmD1Ev);
+var _ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface);
+var _ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3);
+var _ZN23btDiscreteDynamicsWorld11clearForcesEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld11clearForcesEv);
+var _ZN23btDiscreteDynamicsWorld11setNumTasksEi__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld11setNumTasksEi);
+var _ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface);
+var _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody);
+var _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss);
+var _ZN23btDiscreteDynamicsWorld12applyGravityEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12applyGravityEv);
+var _ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface);
+var _ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb);
+var _ZN23btDiscreteDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld13getConstraintEi);
+var _ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface);
+var _ZN23btDiscreteDynamicsWorld14debugDrawWorldEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld14debugDrawWorldEv);
+var _ZN23btDiscreteDynamicsWorld14stepSimulationEfif__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld14stepSimulationEfif);
+var _ZN23btDiscreteDynamicsWorld14updateVehiclesEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld14updateVehiclesEf);
+var _ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface);
+var _ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody);
+var _ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint);
+var _ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo);
+var _ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss);
+var _ZN23btDiscreteDynamicsWorld18saveKinematicStateEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld18saveKinematicStateEf);
+var _ZN23btDiscreteDynamicsWorld19getConstraintSolverEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld19getConstraintSolverEv);
+var _ZN23btDiscreteDynamicsWorld19integrateTransformsEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld19integrateTransformsEf);
+var _ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver);
+var _ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject);
+var _ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv);
+var _ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf);
+var _ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv);
+var _ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf);
+var _ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface);
+var _ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer);
+var _ZN23btDiscreteDynamicsWorldD0Ev__index__ = register_delegate(_ZN23btDiscreteDynamicsWorldD0Ev);
+var _ZN23btDiscreteDynamicsWorldD1Ev__index__ = register_delegate(_ZN23btDiscreteDynamicsWorldD1Ev);
+var _ZN23btStridingMeshInterfaceD0Ev__index__ = register_delegate(_ZN23btStridingMeshInterfaceD0Ev);
+var _ZN23btStridingMeshInterfaceD1Ev__index__ = register_delegate(_ZN23btStridingMeshInterfaceD1Ev);
+var _ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii);
+var _ZN24btConvexTriangleCallbackD0Ev__index__ = register_delegate(_ZN24btConvexTriangleCallbackD0Ev);
+var _ZN24btConvexTriangleCallbackD1Ev__index__ = register_delegate(_ZN24btConvexTriangleCallbackD1Ev);
+var _ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f__index__ = register_delegate(_ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f);
+var _ZN24btPerturbedContactResultD0Ev__index__ = register_delegate(_ZN24btPerturbedContactResultD0Ev);
+var _ZN24btPerturbedContactResultD1Ev__index__ = register_delegate(_ZN24btPerturbedContactResultD1Ev);
+var _ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher__index__ = register_delegate(_ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher);
+var _ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld__index__ = register_delegate(_ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld);
+var _ZN25btSimulationIslandManagerD0Ev__index__ = register_delegate(_ZN25btSimulationIslandManagerD0Ev);
+var _ZN25btSimulationIslandManagerD1Ev__index__ = register_delegate(_ZN25btSimulationIslandManagerD1Ev);
+var _ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii);
+var _ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
+var _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev);
+var _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev);
+var _ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
+var _ZN26btBoxBoxCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithmD0Ev);
+var _ZN26btBoxBoxCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithmD1Ev);
+var _ZN26btTriangleIndexVertexArray16unLockVertexBaseEi__index__ = register_delegate(_ZN26btTriangleIndexVertexArray16unLockVertexBaseEi);
+var _ZN26btTriangleIndexVertexArray18preallocateIndicesEi__index__ = register_delegate(_ZN26btTriangleIndexVertexArray18preallocateIndicesEi);
+var _ZN26btTriangleIndexVertexArray19preallocateVerticesEi__index__ = register_delegate(_ZN26btTriangleIndexVertexArray19preallocateVerticesEi);
+var _ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i__index__ = register_delegate(_ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i);
+var _ZN26btTriangleIndexVertexArrayD0Ev__index__ = register_delegate(_ZN26btTriangleIndexVertexArrayD0Ev);
+var _ZN26btTriangleIndexVertexArrayD1Ev__index__ = register_delegate(_ZN26btTriangleIndexVertexArrayD1Ev);
+var _ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__ = register_delegate(_ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE);
+var _ZN27btContinuousConvexCollisionD0Ev__index__ = register_delegate(_ZN27btContinuousConvexCollisionD0Ev);
+var _ZN27btContinuousConvexCollisionD1Ev__index__ = register_delegate(_ZN27btContinuousConvexCollisionD1Ev);
+var _ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
+var _ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev);
+var _ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev);
+var _ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
+var _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev);
+var _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev);
+var _ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
+var _ZN28btCompoundCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithmD0Ev);
+var _ZN28btCompoundCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithmD1Ev);
+var _ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1_);
+var _ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv__index__ = register_delegate(_ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv);
+var _ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher);
+var _ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher);
+var _ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher);
+var _ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher);
+var _ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv__index__ = register_delegate(_ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv);
+var _ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__ = register_delegate(_ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback);
+var _ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv);
+var _ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher);
+var _ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__ = register_delegate(_ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback);
+var _ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher);
+var _ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1_);
+var _ZN28btHashedOverlappingPairCacheD0Ev__index__ = register_delegate(_ZN28btHashedOverlappingPairCacheD0Ev);
+var _ZN28btHashedOverlappingPairCacheD1Ev__index__ = register_delegate(_ZN28btHashedOverlappingPairCacheD1Ev);
+var _ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii);
+var _ZN28btTriangleConvexcastCallbackD0Ev__index__ = register_delegate(_ZN28btTriangleConvexcastCallbackD0Ev);
+var _ZN28btTriangleConvexcastCallbackD1Ev__index__ = register_delegate(_ZN28btTriangleConvexcastCallbackD1Ev);
+var _ZN30btActivatingCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN30btActivatingCollisionAlgorithmD0Ev);
+var _ZN30btActivatingCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN30btActivatingCollisionAlgorithmD1Ev);
+var _ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc);
+var _ZN30btGjkEpaPenetrationDepthSolverD0Ev__index__ = register_delegate(_ZN30btGjkEpaPenetrationDepthSolverD0Ev);
+var _ZN30btGjkEpaPenetrationDepthSolverD1Ev__index__ = register_delegate(_ZN30btGjkEpaPenetrationDepthSolverD1Ev);
+var _ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
+var _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev);
+var _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev);
+var _ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
+var _ZN31btConvexPlaneCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithmD0Ev);
+var _ZN31btConvexPlaneCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithmD1Ev);
+var _ZN31btDefaultCollisionConfiguration16getSimplexSolverEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration16getSimplexSolverEv);
+var _ZN31btDefaultCollisionConfiguration17getStackAllocatorEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration17getStackAllocatorEv);
+var _ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv);
+var _ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv);
+var _ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii);
+var _ZN31btDefaultCollisionConfigurationD0Ev__index__ = register_delegate(_ZN31btDefaultCollisionConfigurationD0Ev);
+var _ZN31btDefaultCollisionConfigurationD1Ev__index__ = register_delegate(_ZN31btDefaultCollisionConfigurationD1Ev);
+var _ZN31btInternalTriangleIndexCallbackD0Ev__index__ = register_delegate(_ZN31btInternalTriangleIndexCallbackD0Ev);
+var _ZN31btInternalTriangleIndexCallbackD1Ev__index__ = register_delegate(_ZN31btInternalTriangleIndexCallbackD1Ev);
+var _ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
+var _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev);
+var _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev);
+var _ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
+var _ZN32btSphereSphereCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithmD0Ev);
+var _ZN32btSphereSphereCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithmD1Ev);
+var _ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
+var _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev);
+var _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev);
+var _ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
+var _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev);
+var _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev);
+var _ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
+var _ZN33btConvexConcaveCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithmD0Ev);
+var _ZN33btConvexConcaveCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithmD1Ev);
+var _ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb__index__ = register_delegate(_ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb);
+var _ZN34btClosestNotMeConvexResultCallbackD0Ev__index__ = register_delegate(_ZN34btClosestNotMeConvexResultCallbackD0Ev);
+var _ZN34btClosestNotMeConvexResultCallbackD1Ev__index__ = register_delegate(_ZN34btClosestNotMeConvexResultCallbackD1Ev);
+var _ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_);
+var _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev);
+var _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev);
+var _ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult);
+var _ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE);
+var _ZN34btSphereTriangleCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithmD0Ev);
+var _ZN34btSphereTriangleCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithmD1Ev);
+var _ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher);
+var _ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc);
+var _ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc);
+var _ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc);
+var _ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc);
+var _ZN35btSequentialImpulseConstraintSolver5resetEv__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver5resetEv);
+var _ZN35btSequentialImpulseConstraintSolverD0Ev__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolverD0Ev);
+var _ZN35btSequentialImpulseConstraintSolverD1Ev__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolverD1Ev);
+var _ZN4__rw10__rw_facetD0Ev__index__ = register_delegate(_ZN4__rw10__rw_facetD0Ev);
+var _ZN4__rw10__rw_facetD1Ev__index__ = register_delegate(_ZN4__rw10__rw_facetD1Ev);
+var _ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__ = register_delegate(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode);
+var _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__ = register_delegate(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3_);
+var _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__ = register_delegate(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef);
+var _ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__ = register_delegate(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode);
+var _ZN7CFileLS4feofEv__index__ = register_delegate(_ZN7CFileLS4feofEv);
+var _ZN7CFileLS5freadEPvjj__index__ = register_delegate(_ZN7CFileLS5freadEPvjj);
+var _ZN7CFileLS5fseekEli__index__ = register_delegate(_ZN7CFileLS5fseekEli);
+var _ZN7CFileLS5ftellEv__index__ = register_delegate(_ZN7CFileLS5ftellEv);
+var _ZN7CFileLS6fcloseEv__index__ = register_delegate(_ZN7CFileLS6fcloseEv);
+var _ZN7CFileLS6fflushEv__index__ = register_delegate(_ZN7CFileLS6fflushEv);
+var _ZN7CFileLS6fwriteEPKvjj__index__ = register_delegate(_ZN7CFileLS6fwriteEPKvjj);
+var _ZN7CFileLS6ungetcEi__index__ = register_delegate(_ZN7CFileLS6ungetcEi);
+var _ZN7RagDollD0Ev__index__ = register_delegate(_ZN7RagDollD0Ev);
+var _ZN7RagDollD1Ev__index__ = register_delegate(_ZN7RagDollD1Ev);
+var _ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj);
+var _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE);
+var _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv);
+var _ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE);
+var _ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2___index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_);
+var _ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__ = register_delegate(_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE);
+var _ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__ = register_delegate(_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE);
+var _ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__ = register_delegate(_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_);
+var _ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__ = register_delegate(_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE);
+var _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__ = register_delegate(_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE);
+var _ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__ = register_delegate(_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_);
+var _ZNK10btBoxShape11getNumEdgesEv__index__ = register_delegate(_ZNK10btBoxShape11getNumEdgesEv);
+var _ZNK10btBoxShape12getNumPlanesEv__index__ = register_delegate(_ZNK10btBoxShape12getNumPlanesEv);
+var _ZNK10btBoxShape14getNumVerticesEv__index__ = register_delegate(_ZNK10btBoxShape14getNumVerticesEv);
+var _ZNK10btBoxShape16getPlaneEquationER9btVector4i__index__ = register_delegate(_ZNK10btBoxShape16getPlaneEquationER9btVector4i);
+var _ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3);
+var _ZNK10btBoxShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK10btBoxShape24localGetSupportingVertexERK9btVector3);
+var _ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3__index__ = register_delegate(_ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3);
+var _ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv__index__ = register_delegate(_ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv);
+var _ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3);
+var _ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i);
+var _ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4_);
+var _ZNK10btBoxShape7getEdgeEiR9btVector3S1___index__ = register_delegate(_ZNK10btBoxShape7getEdgeEiR9btVector3S1_);
+var _ZNK10btBoxShape7getNameEv__index__ = register_delegate(_ZNK10btBoxShape7getNameEv);
+var _ZNK10btBoxShape8getPlaneER9btVector3S1_i__index__ = register_delegate(_ZNK10btBoxShape8getPlaneER9btVector3S1_i);
+var _ZNK10btBoxShape8isInsideERK9btVector3f__index__ = register_delegate(_ZNK10btBoxShape8isInsideERK9btVector3f);
+var _ZNK10btBoxShape9getVertexEiR9btVector3__index__ = register_delegate(_ZNK10btBoxShape9getVertexEiR9btVector3);
+var _ZNK11CFileSystem12IsFileSystemEv__index__ = register_delegate(_ZNK11CFileSystem12IsFileSystemEv);
+var _ZNK11btRigidBody21serializeSingleObjectEP12btSerializer__index__ = register_delegate(_ZNK11btRigidBody21serializeSingleObjectEP12btSerializer);
+var _ZNK11btRigidBody28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK11btRigidBody28calculateSerializeBufferSizeEv);
+var _ZNK11btRigidBody9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK11btRigidBody9serializeEPvP12btSerializer);
+var _ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3__index__ = register_delegate(_ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3);
+var _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3__index__ = register_delegate(_ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3);
+var _ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3);
+var _ZNK13btSphereShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK13btSphereShape24localGetSupportingVertexERK9btVector3);
+var _ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3);
+var _ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i);
+var _ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4_);
+var _ZNK13btSphereShape7getNameEv__index__ = register_delegate(_ZNK13btSphereShape7getNameEv);
+var _ZNK13btSphereShape9getMarginEv__index__ = register_delegate(_ZNK13btSphereShape9getMarginEv);
+var _ZNK14CFileInterface12IsFileSystemEv__index__ = register_delegate(_ZNK14CFileInterface12IsFileSystemEv);
+var _ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3);
+var _ZNK14btCapsuleShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK14btCapsuleShape28calculateSerializeBufferSizeEv);
+var _ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3);
+var _ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i);
+var _ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4_);
+var _ZNK14btCapsuleShape7getNameEv__index__ = register_delegate(_ZNK14btCapsuleShape7getNameEv);
+var _ZNK14btCapsuleShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK14btCapsuleShape9serializeEPvP12btSerializer);
+var _ZNK14btConcaveShape9getMarginEv__index__ = register_delegate(_ZNK14btConcaveShape9getMarginEv);
+var _ZNK14btOptimizedBvh16serializeInPlaceEPvjb__index__ = register_delegate(_ZNK14btOptimizedBvh16serializeInPlaceEPvjb);
+var _ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv__index__ = register_delegate(_ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv);
+var _ZNK14btQuantizedBvh9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK14btQuantizedBvh9serializeEPvP12btSerializer);
+var _ZNK14btQuantizedBvh9serializeEPvjb__index__ = register_delegate(_ZNK14btQuantizedBvh9serializeEPvjb);
+var _ZNK15btDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZNK15btDynamicsWorld13getConstraintEi);
+var _ZNK15btDynamicsWorld17getNumConstraintsEv__index__ = register_delegate(_ZNK15btDynamicsWorld17getNumConstraintsEv);
+var _ZNK15btNullPairCache22getNumOverlappingPairsEv__index__ = register_delegate(_ZNK15btNullPairCache22getNumOverlappingPairsEv);
+var _ZNK15btNullPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZNK15btNullPairCache26getOverlappingPairArrayPtrEv);
+var _ZNK15btTriangleShape11getNumEdgesEv__index__ = register_delegate(_ZNK15btTriangleShape11getNumEdgesEv);
+var _ZNK15btTriangleShape12getNumPlanesEv__index__ = register_delegate(_ZNK15btTriangleShape12getNumPlanesEv);
+var _ZNK15btTriangleShape14getNumVerticesEv__index__ = register_delegate(_ZNK15btTriangleShape14getNumVerticesEv);
+var _ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1___index__ = register_delegate(_ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1_);
+var _ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3);
+var _ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3__index__ = register_delegate(_ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3);
+var _ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv__index__ = register_delegate(_ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv);
+var _ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3);
+var _ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i);
+var _ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4_);
+var _ZNK15btTriangleShape7getEdgeEiR9btVector3S1___index__ = register_delegate(_ZNK15btTriangleShape7getEdgeEiR9btVector3S1_);
+var _ZNK15btTriangleShape7getNameEv__index__ = register_delegate(_ZNK15btTriangleShape7getNameEv);
+var _ZNK15btTriangleShape8getPlaneER9btVector3S1_i__index__ = register_delegate(_ZNK15btTriangleShape8getPlaneER9btVector3S1_i);
+var _ZNK15btTriangleShape8isInsideERK9btVector3f__index__ = register_delegate(_ZNK15btTriangleShape8isInsideERK9btVector3f);
+var _ZNK15btTriangleShape9getVertexEiR9btVector3__index__ = register_delegate(_ZNK15btTriangleShape9getVertexEiR9btVector3);
+var _ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__ = register_delegate(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf);
+var _ZNK16btCollisionShape20getAngularMotionDiscEv__index__ = register_delegate(_ZNK16btCollisionShape20getAngularMotionDiscEv);
+var _ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__ = register_delegate(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer);
+var _ZNK16btCollisionShape27getContactBreakingThresholdEf__index__ = register_delegate(_ZNK16btCollisionShape27getContactBreakingThresholdEf);
+var _ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv);
+var _ZNK16btCollisionShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK16btCollisionShape9serializeEPvP12btSerializer);
+var _ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy__index__ = register_delegate(_ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy);
+var _ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__ = register_delegate(_ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy);
+var _ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE__index__ = register_delegate(_ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE);
+var _ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1___index__ = register_delegate(_ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1_);
+var _ZNK16btDbvtBroadphase23getOverlappingPairCacheEv__index__ = register_delegate(_ZNK16btDbvtBroadphase23getOverlappingPairCacheEv);
+var _ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3___index__ = register_delegate(_ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3_);
+var _ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer__index__ = register_delegate(_ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer);
+var _ZNK17btCollisionObject28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK17btCollisionObject28calculateSerializeBufferSizeEv);
+var _ZNK17btCollisionObject9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK17btCollisionObject9serializeEPvP12btSerializer);
+var _ZNK17btConvexHullShape11getNumEdgesEv__index__ = register_delegate(_ZNK17btConvexHullShape11getNumEdgesEv);
+var _ZNK17btConvexHullShape12getNumPlanesEv__index__ = register_delegate(_ZNK17btConvexHullShape12getNumPlanesEv);
+var _ZNK17btConvexHullShape14getNumVerticesEv__index__ = register_delegate(_ZNK17btConvexHullShape14getNumVerticesEv);
+var _ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3);
+var _ZNK17btConvexHullShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK17btConvexHullShape28calculateSerializeBufferSizeEv);
+var _ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3);
+var _ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i);
+var _ZNK17btConvexHullShape7getEdgeEiR9btVector3S1___index__ = register_delegate(_ZNK17btConvexHullShape7getEdgeEiR9btVector3S1_);
+var _ZNK17btConvexHullShape7getNameEv__index__ = register_delegate(_ZNK17btConvexHullShape7getNameEv);
+var _ZNK17btConvexHullShape8getPlaneER9btVector3S1_i__index__ = register_delegate(_ZNK17btConvexHullShape8getPlaneER9btVector3S1_i);
+var _ZNK17btConvexHullShape8isInsideERK9btVector3f__index__ = register_delegate(_ZNK17btConvexHullShape8isInsideERK9btVector3f);
+var _ZNK17btConvexHullShape9getVertexEiR9btVector3__index__ = register_delegate(_ZNK17btConvexHullShape9getVertexEiR9btVector3);
+var _ZNK17btConvexHullShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK17btConvexHullShape9serializeEPvP12btSerializer);
+var _ZNK17btHingeConstraint28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK17btHingeConstraint28calculateSerializeBufferSizeEv);
+var _ZNK17btHingeConstraint8getParamEii__index__ = register_delegate(_ZNK17btHingeConstraint8getParamEii);
+var _ZNK17btHingeConstraint9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK17btHingeConstraint9serializeEPvP12btSerializer);
+var _ZNK19btTriangleMeshShape15getLocalScalingEv__index__ = register_delegate(_ZNK19btTriangleMeshShape15getLocalScalingEv);
+var _ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__ = register_delegate(_ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_);
+var _ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3);
+var _ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3);
+var _ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3);
+var _ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4_);
+var _ZNK19btTriangleMeshShape7getNameEv__index__ = register_delegate(_ZNK19btTriangleMeshShape7getNameEv);
+var _ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2___index__ = register_delegate(_ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2_);
+var _ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__ = register_delegate(_ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv);
+var _ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4___index__ = register_delegate(_ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4_);
+var _ZNK20btDefaultMotionState17getWorldTransformER11btTransform__index__ = register_delegate(_ZNK20btDefaultMotionState17getWorldTransformER11btTransform);
+var _ZNK21btCollisionDispatcher15getNumManifoldsEv__index__ = register_delegate(_ZNK21btCollisionDispatcher15getNumManifoldsEv);
+var _ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv);
+var _ZNK21btConeTwistConstraint8getParamEii__index__ = register_delegate(_ZNK21btConeTwistConstraint8getParamEii);
+var _ZNK21btConeTwistConstraint9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK21btConeTwistConstraint9serializeEPvP12btSerializer);
+var _ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4_);
+var _ZNK21btConvexInternalShape15getLocalScalingEv__index__ = register_delegate(_ZNK21btConvexInternalShape15getLocalScalingEv);
+var _ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3);
+var _ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv);
+var _ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__ = register_delegate(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3);
+var _ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__ = register_delegate(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv);
+var _ZNK21btConvexInternalShape9getMarginEv__index__ = register_delegate(_ZNK21btConvexInternalShape9getMarginEv);
+var _ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer);
+var _ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer);
+var _ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__ = register_delegate(_ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_);
+var _ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv);
+var _ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer);
+var _ZNK22btBvhTriangleMeshShape7getNameEv__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape7getNameEv);
+var _ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer);
+var _ZNK23btDiscreteDynamicsWorld10getGravityEv__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld10getGravityEv);
+var _ZNK23btDiscreteDynamicsWorld12getWorldTypeEv__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld12getWorldTypeEv);
+var _ZNK23btDiscreteDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld13getConstraintEi);
+var _ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv);
+var _ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3);
+var _ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1___index__ = register_delegate(_ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1_);
+var _ZNK23btStridingMeshInterface14hasPremadeAabbEv__index__ = register_delegate(_ZNK23btStridingMeshInterface14hasPremadeAabbEv);
+var _ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2___index__ = register_delegate(_ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2_);
+var _ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4___index__ = register_delegate(_ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4_);
+var _ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv);
+var _ZNK23btStridingMeshInterface9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK23btStridingMeshInterface9serializeEPvP12btSerializer);
+var _ZNK26btTriangleIndexVertexArray14getNumSubPartsEv__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14getNumSubPartsEv);
+var _ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1___index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1_);
+var _ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv);
+var _ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2___index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2_);
+var _ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi);
+var _ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i);
+var _ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv__index__ = register_delegate(_ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv);
+var _ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv);
+var _ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__ = register_delegate(_ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy);
+var _ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4_);
+var _ZNKSt8messagesIcE6do_getEiiiRKSs__index__ = register_delegate(_ZNKSt8messagesIcE6do_getEiiiRKSs);
+var _ZNKSt8messagesIcE7do_openERKSsRKSt6locale__index__ = register_delegate(_ZNKSt8messagesIcE7do_openERKSsRKSt6locale);
+var _ZNKSt8messagesIcE8do_closeEi__index__ = register_delegate(_ZNKSt8messagesIcE8do_closeEi);
+var _ZNKSt9type_info10__do_catchEPKS_PPvj__index__ = register_delegate(_ZNKSt9type_info10__do_catchEPKS_PPvj);
+var _ZNKSt9type_info15__is_function_pEv__index__ = register_delegate(_ZNKSt9type_info15__is_function_pEv);
+var _ZNSt8messagesIcED0Ev__index__ = register_delegate(_ZNSt8messagesIcED0Ev);
+var _ZNSt8messagesIcED1Ev__index__ = register_delegate(_ZNSt8messagesIcED1Ev);
+var _ZNSt9type_infoD0Ev__index__ = register_delegate(_ZNSt9type_infoD0Ev);
+var _ZNSt9type_infoD1Ev__index__ = register_delegate(_ZNSt9type_infoD1Ev);
+var _ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__ = register_delegate(_ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii);
+var _ZThn4_N17DebugDrawcallbackD0Ev__index__ = register_delegate(_ZThn4_N17DebugDrawcallbackD0Ev);
+var _ZThn4_N17DebugDrawcallbackD1Ev__index__ = register_delegate(_ZThn4_N17DebugDrawcallbackD1Ev);
+var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii);
+var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev);
+var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev);
+var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii);
+var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev);
+var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev);
+var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb);
+var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev);
+var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev);
+var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii);
+var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii);
+var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v);
+var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev);
+var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v);
+var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev);
+var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb);
+var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev);
+var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev);
+var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii);
+var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii);
+var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v);
+var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev);
+var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v);
+var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev);
+var _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii);
+var _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev);
+var _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev);
+var _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii);
+var _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev);
+var _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev);
+var _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii__index__ = register_delegate(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii);
+var _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev__index__ = register_delegate(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev);
+var _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev__index__ = register_delegate(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev);
+var _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair);
+var _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev);
+var _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev);
+var _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair);
+var _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev);
+var _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev);
+var _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii);
+var _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev__index__ = register_delegate(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev);
+var _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev__index__ = register_delegate(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev);
+var _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii__index__ = register_delegate(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii);
+var _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev__index__ = register_delegate(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev);
+var _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev__index__ = register_delegate(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev);
+var _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__ = register_delegate(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii);
+var _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__ = register_delegate(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev);
+var _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__ = register_delegate(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev);
+var __cxa_pure_virtual__index__ = register_delegate(__cxa_pure_virtual);
+var __fwrite__index__ = register_delegate(__fwrite);
+var __mandreel_internal_SetResolution__index__ = register_delegate(__mandreel_internal_SetResolution);
+var __resize__index__ = register_delegate(__resize);
+var cmpfacets__index__ = register_delegate(cmpfacets);
+var cmplocales__index__ = register_delegate(cmplocales);
+var iMandreel_TextureAsync_GetPackOffset__index__ = register_delegate(iMandreel_TextureAsync_GetPackOffset);
+var iMandreel_TextureAsync_IsCompressed__index__ = register_delegate(iMandreel_TextureAsync_IsCompressed);
+var imandreel_restore_glcontext__index__ = register_delegate(imandreel_restore_glcontext);
+var imandreel_viewport_resize__index__ = register_delegate(imandreel_viewport_resize);
+var mandreel_flash_tcp_onError__index__ = register_delegate(mandreel_flash_tcp_onError);
+var swrite__index__ = register_delegate(swrite);
+var _objc_sections = {};
+var _objc_sections_size = {};
+
+// End of mandreel.js file.
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/navier-stokes.js b/suite/pts/deviceTests/browserbench/assets/octane/navier-stokes.js
new file mode 100644
index 0000000..a33e7cd
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/navier-stokes.js
@@ -0,0 +1,409 @@
+/**
+ * Copyright 2012 the V8 project authors. All rights reserved.
+ * Copyright 2009 Oliver Hunt <http://nerget.com>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+var NavierStokes = new BenchmarkSuite('NavierStokes', 1484000,
+                                      [new Benchmark('NavierStokes',
+                                                     runNavierStokes,
+                                                     setupNavierStokes,
+                                                     tearDownNavierStokes,
+                                                     16)]);
+
+var solver = null;
+var nsFrameCounter = 0;
+
+function runNavierStokes()
+{
+    solver.update();
+    nsFrameCounter++;
+
+    if(nsFrameCounter==15)
+        checkResult(solver.getDens());
+}
+
+function checkResult(dens) {
+
+    this.result = 0;
+    for (var i=7000;i<7100;i++) {
+        this.result+=~~((dens[i]*10));
+    }
+
+    if (this.result!=74) {
+        alert("checksum failed: " + this.result);
+    }
+}
+
+function setupNavierStokes()
+{
+    solver = new FluidField(null);
+    solver.setResolution(128, 128);
+    solver.setIterations(20);
+    solver.setDisplayFunction(function(){});
+    solver.setUICallback(prepareFrame);
+    solver.reset();
+}
+
+function tearDownNavierStokes()
+{
+    solver = null;
+}
+
+function addPoints(field) {
+    var n = 64;
+    for (var i = 1; i <= n; i++) {
+        field.setVelocity(i, i, n, n);
+        field.setDensity(i, i, 5);
+        field.setVelocity(i, n - i, -n, -n);
+        field.setDensity(i, n - i, 20);
+        field.setVelocity(128 - i, n + i, -n, -n);
+        field.setDensity(128 - i, n + i, 30);
+    }
+}
+
+var framesTillAddingPoints = 0;
+var framesBetweenAddingPoints = 5;
+
+function prepareFrame(field)
+{
+    if (framesTillAddingPoints == 0) {
+        addPoints(field);
+        framesTillAddingPoints = framesBetweenAddingPoints;
+        framesBetweenAddingPoints++;
+    } else {
+        framesTillAddingPoints--;
+    }
+}
+
+// Code from Oliver Hunt (http://nerget.com/fluidSim/pressure.js) starts here.
+function FluidField(canvas) {
+    function addFields(x, s, dt)
+    {
+        for (var i=0; i<size ; i++ ) x[i] += dt*s[i];
+    }
+
+    function set_bnd(b, x)
+    {
+        if (b===1) {
+            for (var i = 1; i <= width; i++) {
+                x[i] =  x[i + rowSize];
+                x[i + (height+1) *rowSize] = x[i + height * rowSize];
+            }
+
+            for (var j = 1; i <= height; i++) {
+                x[j * rowSize] = -x[1 + j * rowSize];
+                x[(width + 1) + j * rowSize] = -x[width + j * rowSize];
+            }
+        } else if (b === 2) {
+            for (var i = 1; i <= width; i++) {
+                x[i] = -x[i + rowSize];
+                x[i + (height + 1) * rowSize] = -x[i + height * rowSize];
+            }
+
+            for (var j = 1; j <= height; j++) {
+                x[j * rowSize] =  x[1 + j * rowSize];
+                x[(width + 1) + j * rowSize] =  x[width + j * rowSize];
+            }
+        } else {
+            for (var i = 1; i <= width; i++) {
+                x[i] =  x[i + rowSize];
+                x[i + (height + 1) * rowSize] = x[i + height * rowSize];
+            }
+
+            for (var j = 1; j <= height; j++) {
+                x[j * rowSize] =  x[1 + j * rowSize];
+                x[(width + 1) + j * rowSize] =  x[width + j * rowSize];
+            }
+        }
+        var maxEdge = (height + 1) * rowSize;
+        x[0]                 = 0.5 * (x[1] + x[rowSize]);
+        x[maxEdge]           = 0.5 * (x[1 + maxEdge] + x[height * rowSize]);
+        x[(width+1)]         = 0.5 * (x[width] + x[(width + 1) + rowSize]);
+        x[(width+1)+maxEdge] = 0.5 * (x[width + maxEdge] + x[(width + 1) + height * rowSize]);
+    }
+
+    function lin_solve(b, x, x0, a, c)
+    {
+        if (a === 0 && c === 1) {
+            for (var j=1 ; j<=height; j++) {
+                var currentRow = j * rowSize;
+                ++currentRow;
+                for (var i = 0; i < width; i++) {
+                    x[currentRow] = x0[currentRow];
+                    ++currentRow;
+                }
+            }
+            set_bnd(b, x);
+        } else {
+            var invC = 1 / c;
+            for (var k=0 ; k<iterations; k++) {
+                for (var j=1 ; j<=height; j++) {
+                    var lastRow = (j - 1) * rowSize;
+                    var currentRow = j * rowSize;
+                    var nextRow = (j + 1) * rowSize;
+                    var lastX = x[currentRow];
+                    ++currentRow;
+                    for (var i=1; i<=width; i++)
+                        lastX = x[currentRow] = (x0[currentRow] + a*(lastX+x[++currentRow]+x[++lastRow]+x[++nextRow])) * invC;
+                }
+                set_bnd(b, x);
+            }
+        }
+    }
+
+    function diffuse(b, x, x0, dt)
+    {
+        var a = 0;
+        lin_solve(b, x, x0, a, 1 + 4*a);
+    }
+
+    function lin_solve2(x, x0, y, y0, a, c)
+    {
+        if (a === 0 && c === 1) {
+            for (var j=1 ; j <= height; j++) {
+                var currentRow = j * rowSize;
+                ++currentRow;
+                for (var i = 0; i < width; i++) {
+                    x[currentRow] = x0[currentRow];
+                    y[currentRow] = y0[currentRow];
+                    ++currentRow;
+                }
+            }
+            set_bnd(1, x);
+            set_bnd(2, y);
+        } else {
+            var invC = 1/c;
+            for (var k=0 ; k<iterations; k++) {
+                for (var j=1 ; j <= height; j++) {
+                    var lastRow = (j - 1) * rowSize;
+                    var currentRow = j * rowSize;
+                    var nextRow = (j + 1) * rowSize;
+                    var lastX = x[currentRow];
+                    var lastY = y[currentRow];
+                    ++currentRow;
+                    for (var i = 1; i <= width; i++) {
+                        lastX = x[currentRow] = (x0[currentRow] + a * (lastX + x[currentRow] + x[lastRow] + x[nextRow])) * invC;
+                        lastY = y[currentRow] = (y0[currentRow] + a * (lastY + y[++currentRow] + y[++lastRow] + y[++nextRow])) * invC;
+                    }
+                }
+                set_bnd(1, x);
+                set_bnd(2, y);
+            }
+        }
+    }
+
+    function diffuse2(x, x0, y, y0, dt)
+    {
+        var a = 0;
+        lin_solve2(x, x0, y, y0, a, 1 + 4 * a);
+    }
+
+    function advect(b, d, d0, u, v, dt)
+    {
+        var Wdt0 = dt * width;
+        var Hdt0 = dt * height;
+        var Wp5 = width + 0.5;
+        var Hp5 = height + 0.5;
+        for (var j = 1; j<= height; j++) {
+            var pos = j * rowSize;
+            for (var i = 1; i <= width; i++) {
+                var x = i - Wdt0 * u[++pos];
+                var y = j - Hdt0 * v[pos];
+                if (x < 0.5)
+                    x = 0.5;
+                else if (x > Wp5)
+                    x = Wp5;
+                var i0 = x | 0;
+                var i1 = i0 + 1;
+                if (y < 0.5)
+                    y = 0.5;
+                else if (y > Hp5)
+                    y = Hp5;
+                var j0 = y | 0;
+                var j1 = j0 + 1;
+                var s1 = x - i0;
+                var s0 = 1 - s1;
+                var t1 = y - j0;
+                var t0 = 1 - t1;
+                var row1 = j0 * rowSize;
+                var row2 = j1 * rowSize;
+                d[pos] = s0 * (t0 * d0[i0 + row1] + t1 * d0[i0 + row2]) + s1 * (t0 * d0[i1 + row1] + t1 * d0[i1 + row2]);
+            }
+        }
+        set_bnd(b, d);
+    }
+
+    function project(u, v, p, div)
+    {
+        var h = -0.5 / Math.sqrt(width * height);
+        for (var j = 1 ; j <= height; j++ ) {
+            var row = j * rowSize;
+            var previousRow = (j - 1) * rowSize;
+            var prevValue = row - 1;
+            var currentRow = row;
+            var nextValue = row + 1;
+            var nextRow = (j + 1) * rowSize;
+            for (var i = 1; i <= width; i++ ) {
+                div[++currentRow] = h * (u[++nextValue] - u[++prevValue] + v[++nextRow] - v[++previousRow]);
+                p[currentRow] = 0;
+            }
+        }
+        set_bnd(0, div);
+        set_bnd(0, p);
+
+        lin_solve(0, p, div, 1, 4 );
+        var wScale = 0.5 * width;
+        var hScale = 0.5 * height;
+        for (var j = 1; j<= height; j++ ) {
+            var prevPos = j * rowSize - 1;
+            var currentPos = j * rowSize;
+            var nextPos = j * rowSize + 1;
+            var prevRow = (j - 1) * rowSize;
+            var currentRow = j * rowSize;
+            var nextRow = (j + 1) * rowSize;
+
+            for (var i = 1; i<= width; i++) {
+                u[++currentPos] -= wScale * (p[++nextPos] - p[++prevPos]);
+                v[currentPos]   -= hScale * (p[++nextRow] - p[++prevRow]);
+            }
+        }
+        set_bnd(1, u);
+        set_bnd(2, v);
+    }
+
+    function dens_step(x, x0, u, v, dt)
+    {
+        addFields(x, x0, dt);
+        diffuse(0, x0, x, dt );
+        advect(0, x, x0, u, v, dt );
+    }
+
+    function vel_step(u, v, u0, v0, dt)
+    {
+        addFields(u, u0, dt );
+        addFields(v, v0, dt );
+        var temp = u0; u0 = u; u = temp;
+        var temp = v0; v0 = v; v = temp;
+        diffuse2(u,u0,v,v0, dt);
+        project(u, v, u0, v0);
+        var temp = u0; u0 = u; u = temp;
+        var temp = v0; v0 = v; v = temp;
+        advect(1, u, u0, u0, v0, dt);
+        advect(2, v, v0, u0, v0, dt);
+        project(u, v, u0, v0 );
+    }
+    var uiCallback = function(d,u,v) {};
+
+    function Field(dens, u, v) {
+        // Just exposing the fields here rather than using accessors is a measurable win during display (maybe 5%)
+        // but makes the code ugly.
+        this.setDensity = function(x, y, d) {
+             dens[(x + 1) + (y + 1) * rowSize] = d;
+        }
+        this.getDensity = function(x, y) {
+             return dens[(x + 1) + (y + 1) * rowSize];
+        }
+        this.setVelocity = function(x, y, xv, yv) {
+             u[(x + 1) + (y + 1) * rowSize] = xv;
+             v[(x + 1) + (y + 1) * rowSize] = yv;
+        }
+        this.getXVelocity = function(x, y) {
+             return u[(x + 1) + (y + 1) * rowSize];
+        }
+        this.getYVelocity = function(x, y) {
+             return v[(x + 1) + (y + 1) * rowSize];
+        }
+        this.width = function() { return width; }
+        this.height = function() { return height; }
+    }
+    function queryUI(d, u, v)
+    {
+        for (var i = 0; i < size; i++)
+            u[i] = v[i] = d[i] = 0.0;
+        uiCallback(new Field(d, u, v));
+    }
+
+    this.update = function () {
+        queryUI(dens_prev, u_prev, v_prev);
+        vel_step(u, v, u_prev, v_prev, dt);
+        dens_step(dens, dens_prev, u, v, dt);
+        displayFunc(new Field(dens, u, v));
+    }
+    this.setDisplayFunction = function(func) {
+        displayFunc = func;
+    }
+
+    this.iterations = function() { return iterations; }
+    this.setIterations = function(iters) {
+        if (iters > 0 && iters <= 100)
+           iterations = iters;
+    }
+    this.setUICallback = function(callback) {
+        uiCallback = callback;
+    }
+    var iterations = 10;
+    var visc = 0.5;
+    var dt = 0.1;
+    var dens;
+    var dens_prev;
+    var u;
+    var u_prev;
+    var v;
+    var v_prev;
+    var width;
+    var height;
+    var rowSize;
+    var size;
+    var displayFunc;
+    function reset()
+    {
+        rowSize = width + 2;
+        size = (width+2)*(height+2);
+        dens = new Array(size);
+        dens_prev = new Array(size);
+        u = new Array(size);
+        u_prev = new Array(size);
+        v = new Array(size);
+        v_prev = new Array(size);
+        for (var i = 0; i < size; i++)
+            dens_prev[i] = u_prev[i] = v_prev[i] = dens[i] = u[i] = v[i] = 0;
+    }
+    this.reset = reset;
+    this.getDens = function()
+    {
+        return dens;
+    }
+    this.setResolution = function (hRes, wRes)
+    {
+        var res = wRes * hRes;
+        if (res > 0 && res < 1000000 && (wRes != width || hRes != height)) {
+            width = wRes;
+            height = hRes;
+            reset();
+            return true;
+        }
+        return false;
+    }
+    this.setResolution(64, 64);
+}
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/pdfjs.js b/suite/pts/deviceTests/browserbench/assets/octane/pdfjs.js
new file mode 100644
index 0000000..a915220
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/pdfjs.js
@@ -0,0 +1,33056 @@
+// Portions copyright 2012 Google, Inc.
+// Portions copyright 2011 Mozilla Foundation. All rights reserved.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+// The PDF-JS code in this file has been written by Mozilla.
+// It is available in its latest version from:
+//
+//   https://github.com/mozilla/pdf.js
+
+
+//////// Benchmark set-up. (c) by Google. ////////
+
+var pdf_file = "test.pdf";
+var canvas_logs = [];
+
+var PdfJS = new BenchmarkSuite("PdfJS", 9000000, [
+  new Benchmark("PdfJS", runPdfJS, setupPdfJS, tearDownPdfJS, 4)
+]);
+
+function setupPdfJS() {
+  // Check for Typed Arrays support, throw error if not.
+  if (!(typeof Uint8Array != "undefined" &&
+    typeof Float64Array != "undefined" &&
+    typeof (new Uint8Array(0)).subarray != "undefined")) {
+      throw "TypedArrayUnsupported";
+    }
+
+  PdfJS_window.__resources__[pdf_file] = buffer(PdfJS_window.atob(getPDF()));
+}
+
+function runPdfJS() {
+  PDFJS.getDocument(pdf_file).then(function(pdf) {
+    var canvas = PdfJS_window.document.getElementById('canvas');
+    var context = canvas.getContext('2d');
+    var renderContext = {canvasContext: context};
+    canvas_logs.push(context.__log__);
+
+    // Cycle through all pages.
+    function renderPages(i, j) {
+      if (i > j) return;
+      context.clearRect(0, 0, canvas.width, canvas.height);
+      pdf.getPage(i).then(function(page) {
+        renderContext.viewport = page.getViewport(1);
+        canvas.height = renderContext.viewport.height;
+        canvas.width = renderContext.viewport.width;
+        page.render(renderContext).then(renderPages.bind(null, i + 1, j));
+      });
+    }
+    renderPages(1, pdf.numPages);
+  });
+
+  // Wait for everything to complete.
+  PdfJS_window.flushTimeouts();
+}
+
+function tearDownPdfJS() {
+  // Should produce 36788 939524096 for all runs.
+  for (var i = 0; i < canvas_logs.length; ++i) {
+    var log_length = canvas_logs[i].length;
+    var log_hash = hash(canvas_logs[i].join(" "));
+    var expected_length = 36788;
+    var expected_hash = 939524096;
+    if (log_length !== expected_length || log_hash !== expected_hash) {
+      var message = "PdfJS produced incorrect output: " +
+          "expected " + expected_length + " " + expected_hash + ", " +
+          "got " + log_length + " " + log_hash;
+      console.log(message + "\n");
+      throw message;
+    }
+  }
+  // Allow GC of global state.
+  delete this.PDFJS;
+  delete this.PdfJS_window;
+}
+
+function buffer(s) {
+  var b = new ArrayBuffer(s.length);
+  var a = new Uint8Array(b);
+  for (var i = 0; i < s.length; ++i) a[i] = s.charCodeAt(i);
+  return b;
+}
+
+function hash(s) {
+  var up = Math.floor((s.length + 3) / 4);
+  var h = 0;
+  for (var i = 0; 4*i - 3 < s.length; i += 4) {
+    for (var j = 0; j < 4 && i + j < s.length; ++j)
+      h = (h + s.charCodeAt(i + j) << (8*j)) | 0;
+  }
+  return h;
+}
+
+
+///////// Mocks of relevant browser functionality. (c) by Google. ////////
+
+// Every acces to window will be redirected to PdfJS_window.
+var PdfJS_window = Object.create(this);
+
+function PdfJS_windowInstall(name, x) {
+  Object.defineProperty(PdfJS_window, name, {value: x});
+}
+
+PdfJS_windowInstall("setTimeout", function(cmd, delay) {
+  PdfJS_window.__timeouts__.push(cmd);
+});
+
+PdfJS_windowInstall("flushTimeouts", function() {
+  while (PdfJS_window.__timeouts__.length != 0) {
+    var next = PdfJS_window.__timeouts__.pop();
+    if (typeof next === "function")
+      next({data: "{}"});
+    else
+      eval(next);
+  }
+});
+
+PdfJS_windowInstall("window", PdfJS_window);
+
+PdfJS_window.__timeouts__ = [];
+PdfJS_window.__resources__ = {};
+
+
+// Base64 encoding/decoding is based on code by Grant Galitz.
+PdfJS_window.__to64__ = [
+  "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
+  "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
+  "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
+  "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
+  "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/", "="
+];
+
+PdfJS_windowInstall("btoa", function(data) {
+  var result = "";
+  if (data.length > 0) {
+    var i = 0;
+    while (i < data.length) {
+      var b1 = data.charCodeAt(i++) & 0xff;
+      var b2 = data.charCodeAt(i++ < data.length ? i-1 : 0) & 0xff;
+      var b3 = data.charCodeAt(i++ < data.length ? i-1 : 0) & 0xff;
+      result += PdfJS_window.__to64__[b1 >> 2];
+      if (i === data.length + 2) {
+        result += PdfJS_window.__to64__[(b1 & 0x3) << 4] + "==";
+      } else {
+        result += PdfJS_window.__to64__[((b1 & 0x3) << 4) | (b2 >> 4)];
+        if (i === data.length + 1) {
+          result += PdfJS_window.__to64__[(b2 & 0xF) << 2] + "=";
+        } else {
+          result += PdfJS_window.__to64__[((b2 & 0xF) << 2) | (b3 >> 6)] +
+	      PdfJS_window.__to64__[b3 & 0x3F];
+        }
+      }
+    }
+  }
+  return result;
+});
+
+PdfJS_window.__from64__ =
+  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+
+PdfJS_windowInstall("atob", function(data) {
+  var result = "";
+  var i = 0;
+  while (i < data.length) {
+    var x1 = PdfJS_window.__from64__.indexOf(data.charAt(i++));
+    var x2 = PdfJS_window.__from64__.indexOf(data.charAt(i++));
+    var x3 = PdfJS_window.__from64__.indexOf(data.charAt(i++));
+    var x4 = PdfJS_window.__from64__.indexOf(data.charAt(i++));
+    result += String.fromCharCode((x1 << 2) | (x2 >> 4));
+    if (x3 != 0x40) {
+       result += String.fromCharCode(((x2 & 0x0F) << 4) | (x3 >> 2));
+       if (x4 != 0x40) {
+         result += String.fromCharCode(((x3 & 0x03) << 6) | x4);
+      }
+    }
+  }
+  return result;
+});
+
+
+PdfJS_windowInstall("XMLHttpRequest", function() {
+  this.open = function(type, url, some_bool) {
+    this.url = url;
+  }
+  this.overrideMimeType = function() {}
+  this.send = function() {
+    this.response = PdfJS_window.__resources__[this.url];
+    this.readyState = 4;
+    this.status = 0;
+    this.onreadystatechange();
+  }
+});
+
+PdfJS_windowInstall("console", this.console ? this.console : {
+  log: function(s) {
+    // To verify that the test produces the right results,
+    // uncomment this code.
+    /*
+    var re = new RegExp("%d", "g");
+    var args = arguments;
+    var i = 0;
+    print(s.replace(re, function() { return args[++i] }));
+    */
+  }
+});
+
+PdfJS_windowInstall("location", {
+  protocol: ""
+});
+
+PdfJS_windowInstall("Event", function() {
+  this.initEvent = function(name) {
+    this.name = name;
+  }
+});
+
+PdfJS_windowInstall("Element", function(type) {
+  this.__listeners__ = {};
+  this.element_type = type;
+  this.insertBefore = function() {};
+  this.addEventListener = function(name, listener) {
+    this.__listeners__[name] = listener;
+  };
+  this.removeEventListener = function(name) {
+    delete this.__listeners__[name];
+  };
+  this.dispatchEvent = function(event) {
+    this.__listeners__[event.name](event)
+  };
+  this.getElementsByTagName = function(name) {
+    if (name === "head") {
+      return [{appendChild: function() {}}]
+    }
+  };
+  this.appendChild = function() {};
+  this.setAttribute = function() {};
+  this.sheet = {
+    cssRules: [],
+    insertRule: function() {}
+  };
+});
+
+PdfJS_windowInstall("Context", function() {
+  this.__log__ = [];
+  this.save = function() {
+    this.__log__.push("save","\n");
+  }
+  this.restore = function() {
+    this.__log__.push("restore","\n");
+  }
+  this.transform = function(a,b,c,d,e,f) {
+    this.__log__.push("transform",a,b,c,d,e,f,"\n");
+  }
+  this.translate = function(x,y) {
+    this.__log__.push("translate",x,y,"\n");
+  }
+  this.scale = function(x,y) {
+    this.__log__.push("scale",x,y,"\n");
+  }
+  this.rect = function(x,y,w,h) {
+    this.__log__.push("rect",x,y,w,h,"\n");
+  }
+  this.clip = function() {
+    this.__log__.push("clip","\n");
+  }
+  this.fill = function() {
+    this.__log__.push("fill","\n");
+  }
+  this.stroke = function() {
+    this.__log__.push("stroke","\n");
+  }
+  this.beginPath = function() {
+    this.__log__.push("beginPath","\n");
+  }
+  this.closePath = function() {
+    this.__log__.push("closePath","\n");
+  }
+  this.moveTo = function(x,y) {
+    this.__log__.push("moveTo",x,y,"\n");
+  }
+  this.lineTo = function(x,y) {
+    this.__log__.push("lineTo",x,y,"\n");
+  }
+  this.fillRect = function(x,y,w,h) {
+    this.__log__.push("fillRect",x,y,w,h,"\n");
+  }
+  this.fillText = function(s,x,y,w) {
+    this.__log__.push("fillText",s,x,y,"\n");
+  }
+  this.strokeText = function(s,x,y,w) {
+    this.__log__.push("strokeText",s,x,y,"\n");
+  }
+  this.getImageData = function(x,y,w,h) {
+    this.__log__.push("getImageData",x,y,w,h,"\n");
+    return {data: []};
+  }
+  this.putImageData = function(data,x,y) {
+    this.__log__.push("putImageData","{...}",x,y,"\n");
+  }
+  this.drawImage = function(image,x,y) {
+    this.__log__.push("drawImage","<elem>",x,y,"\n");
+  }
+  this.getParameter = function(name) {
+    this.__log__.push("getParameter",name,"\n");
+    return null;
+  }
+  this.enable = function() {
+    this.__log__.push("enable","\n");
+  }
+  this.disable = function() {
+    this.__log__.push("disable","\n");
+  }
+  this.depthFunc = function(param) {
+    this.__log__.push("depthFunc",param,"\n");
+  }
+  this.clearColor = function(r,g,b,a) {
+    this.__log__.push("clearColor",r,g,b,a,"\n");
+  }
+  this.clear = function(m) {
+    this.__log__.push("clear",m,"\n");
+  }
+  this.clearRect = function(x,y,w,h) {
+    this.__log__.push("createRect",x,y,w,h,"\n");
+  }
+});
+
+PdfJS_windowInstall("Canvas", function() {
+  this.getContext = function() {
+    return new PdfJS_window.Context();
+  }
+  this.width = 100;
+  this.height = 100;
+  this.style = { visibility: "visibile" };
+});
+
+PdfJS_windowInstall("document", {
+  body : new PdfJS_window.Element("body"),
+  documentElement : new PdfJS_window.Element("document"),
+  createElement : function(element_type) {
+    var element;
+    if (element_type === "canvas") {
+      element = new PdfJS_window.Canvas();
+    } else {
+      element = new PdfJS_window.Element(element_type);
+    }
+    element.parentNode = new PdfJS_window.Element("dummy_parent");
+    return element;
+  },
+  getElementById : function(name) {
+    if (name === "canvas") {
+      return new PdfJS_window.Canvas();
+    } else {
+      return undefined;
+    }
+  },
+  getElementsByTagName : function(element) {
+    if (element === "script") {
+      return new Array(new this.createElement(element));
+    }
+  },
+  createEvent : function() { return new PdfJS_window.Event() }
+});
+
+PdfJS_window.window.addEventListener = function(name, listener) {
+  PdfJS_window.setTimeout(listener)
+}
+
+PdfJS_windowInstall("Worker", undefined);
+
+
+///////// The PDF we want to render, encoded in base64. ////////
+
+function getPDF() {
+  return "JVBERi0xLjQKJdDUxdgKMyAwIG9iaiA8PAovTGVuZ3RoIDMxMTAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjalVlLk+O2Eb7Pr1B8MadqRfP9uGX9iu2yEyc7VU7V7h4wFCTRQ5EKQM7u5pK/nq8flMhdeVO5iECj0Wh0N7o/QF8/3H31fVxs4jJM4jzbPOw3cZGEZVRtyjgP4zrfPOw2r4PfjvdJEXy436ZREnx/X9bB1DdjO/SmE9qvbjg4czq1/UEIv5hxtM7fv3346avvk3gTx2Gd5wmtkBR1WOX1pgiTrBT5b6IoFda4XLJukzwL87jebNMizDGHuX8ajj1WgUY/TIej9S+oUwY/9n5sx4nUsvdx0At1Pzjh/daM5h6EZ/qxo+39032eB+b8glbeZBm2XWy2cRrWs1rfHE13ol2wgIf7Kg7sU9/qRFXhfhsH/7nP6igYDhiB8KEzIjOFKdNcZVYiM4uTupCpf8G0qg6G0T7eb2meO8i8bVqHRVqvJ7767btvv/trKFPd76fjnxsfNrSeahl6KzZMk00d1kVSkAlzGLuAqKwKy0pFvXz0ozPNKOzVgnsbF3GYRwk1wlTt/RIGSPIi8MN+pPXe3SdVYJwVKuleBbYZTpb5yuA0zGOm30njNJCZHNxihQfs586+f0EbT4J2FLb2cxKcTm1PZ15ycKPpSRWdPA6qJi01ugmLNdyklrNi2TiDRTN8Ochkf7x6ncu+bNfBxlmaBL/dVyl1tzDW1IyTszvhEztUSzvUqjtGrfEfpMUKkVzXjpaCNEovo8VldGcfp4OOYj9xsJPxsxtI/nO7syrZyKcZus7y6RPGYc9bi3RThWyKLI7pu6mj6WkBdY5mpFYRNKYXkvpOqM5uJ097ZOZhJu6mRhn2UG4iO0j3vDrzBSkmpvcwYJ7FwTcDu+eZzSqemlMGpnemP0zmYP1Ke3XJuTO0alZEkNo39jxONC/L66BrT+3oZYxMQLTxqMziEvr5IAQo+djZkxc+jgejky6bp87VXMa1sAK2UCUpch1iYJHrWIHPKj75I9gSMvfgSThO60VlkB9NQ+o9YYEyiYIfSaN+ntEq09lIiFsnfYlMEeaPgwSfziGnEv0akoMM7a0hZ3kZRpQIdbkb9D+7m5bipKqgjxvbhmyDQM2Q3o8tEq/bDm5HKhLLLNdLl88tNTrz7w/Sss/3dKC7yRCfCpJQxGgjwTK69nEardAODlvoeHotEQkie6qEp7a3NCb3jeJ/eI4CEZ+XrFQU2PeGsg4XjDq+WJWGTqZvz9ggL11SlPlRZ8lWQBud1bnJHPwy4O2zipIcxyGOmbyjCbm5bWaS6Q4DNDye/Itb6vNaWVxQkkPY2jm/EUmCPC5JfBycj2arEYy6xgxHOyF24SjpvonyiGMdbUOq0TRdXQTtSdlBOy/h4jdRnDUthwYm/SirIwW2B9vzeQRVcgTr2N9KPAdzslucX3YC54akLmd7eSgVc35Ng1cty6TRi0/VfWXwQQYkqZayd2o8saF1VFJoGfipaaz3+6lbLUaZiRPrKupvBs18BrYpFOOUnqYZcu9oOo4/UG+VHaJzXNL3qLMQtJ2Q5DS6DtlECnO2Qf1Js4LBDZQAQCjmohzDRTEOJKyeUv0isSgGk2T6Tyo1ZidxWAFa8ewHzh1pVq9yB/VnOh80+gKYnc6jdFh5fHf2hKMLUMDxn0fYXEx5hJu8MTC9idNMN4feZXNfqCgpL2gtUwxrtCgUt5IMK1gsrJ1R/FPEnhUXzRZ/IRrJicwomfhBWrIRYCHbnYWy1uJargTPgWDfn7uhHWUe52cWuZM01VMUjhoUlwXkFN6IesSeOv1Rqw+Fwsk8SXWk+NF4aTprnAy/E5Nx8HCx4OgjBfJAd7yKSg6jzS0I80mdirN1fc7inA1NA2Qz6iMpdXKWBQkAFjdm4qIVM9qgzyXR0UwkaS+JkYbmmu4seY0oXGTAdykG4R+jrgcOq4KMxGWmyBZJFR14xHZ7bXv5EpICcpeOUaKRz7ymch5brrNH6TrbcHZuJVHrzHFWQRf+Uultf57G9SIUH7fytTtMiywdFRcIR+2d7XRBirksyjWHR8VyRaIP08hLUtt4YRHIAAJq+NSNyJoFAM0DZ8czVRS2+lVorpbMFvlOJd3UfWcp3feMaoHeaGpCRrGO4BKRyJ38xQpOmnsC0+pcBu/10tQrOZPrhSIQucj/jxVRxeg80agC/+K6qY9Kp57ASaORpqWU5uhbaeVIa43wYRyp4BGh06qtE5RxhWRY0HxrSa/QTxjPjnBdKxdKAr2428E/CLOjTIkD/79lnhgkyEVOmLtWqtwtpwFxtb1xlF9Kcji0xo/ii3JlI+CNYgYvYmz6CshMS4QgIZVFrSgJZ9IZAZ2TWVnMaUE6C/cR8yXRob1Wy/5LMJ4e/4+28LeJVgN+6IfR6IlFb49rzcDXSy+EB85prrfuS6VczU+9X1qH3RmCOQ+/EK4Q8mudV+Vv+WEgCh4pZuk8A+UAPU/dTjivt5+YLjpmZ3BVkN47gKRbuvdcBVJyPb8rZEnw1IvWSKWsGUYpimloXYLSK86gWClTRmi6C2Eg03tpKgUlGbXZuKel5DT4h/WoIpcMB8qrjy+lN7T/edyFbKg/KiMPArOSwGtcCBgkiqxl6NnACsr0MiA3dGpcK+elcBGdz3S9tkZyhdAnxYjJfJWmGZzkE2B0P6FiU1TublSS+eRD2QzTVo8MWQ1rOfkC8nth4dwKigYbzEW+qJPk0wp61VDnzDcUSbIgUDCIUN8e+kUZwJhHaF/wOx3GHCUchfeGV8RqrqXo42OLAjowNE6jOji08/2Zu0Y+AhG6ySp/r7nMybA6qz9Yxto4K5xEWZ7FgeLagf3q7FWcRtVi3yxsUCzUqg79zW34dme3lCFS2zCYwrICb0hTflQBdHsphEWxTgWIyAS5DoJ0NNenA6Hw0QPLvIRQtTRREwC0F5YZvJLA4XSW+yQ4BOSli4pKKl0y9u0yaen23sObNDev2AP0YIAv/PY7LeWE5IfJsdvAxQeVHhmmA/uUoASnYtAUtYIL+FCKh3QFj9BsvVeDWQTBCu9tM6nJQG4dUJddHjihb4Xb893qjxJYHq+9JSSxfZ4sokcGVK04mC/wVvhENXlQoS8ANQzr5XKf5rlA3qvkeJFxiX0OYth2p5LGi0StLbR8e+Iwriu55dzYFWzR2iu0y2ZTZuUC9suAZNByZqjgIRi7F6IM0gGwvnHto4D3JTcsls/vL0tx8yHhGzUHe1XRDXd+hFRtribytzCMGAon8GqoqPzEUBhnQ2FIrikfpEOG4hONzNdbYbxI3DvLMJ3azur7GnVW6WdeXa0fsSFbt+SE+5VNApoG2kZVFSzkvLnlpS09yaXzkxVaLR2NrM6XibbQ+zc15MK5t26+aSjmLbgu9v5s5pEv6L0OGVauwcRA+93x20aR8K1Q6fORk4HPvwss8iBkCxClexs/nitYoIEFCptfC+ZklF0MmF4qyOVBtLw+iPKoQljr6L1NwNPddw93/7qLoVm0iTdlsonzIoyrbNOc7l6/jTY70KF3mNbV5h1znTZxFYV5VKLdbV7d/f3ua/qXJyk3eViXJT8eVFmYlDEgQB2iLn38H0xSbaqwLgr+PygLAZs22zSsonr11ABwuXpqQH+nWRLNvSPbUyuuq4wfzcr5URBZuXUNP7Zp3+gsI5/F/y7onexpUKGDLnSiuK85RCv6XwptwCF+d67K4FXXHo5syU45nH1u/bzYM7O76yGk/zryqsI3gu91l+asezP87k/Hmes+5GNHtbTkuY5JdSRMjDBAef3DdKijtx/xEbWq31K0AtxotFZlMN8S5cpWycMXfR+Nn5efh+S6V9G7SHtoBaygdzUaMbPR5NEpXngzWm+yd8N+f8PpSRlmdQ1uqexc1+ioFmUgtq3FthlArt217Edqs4Oo8bMBCket/qd0Zf9o0CsKfR+dvEpk8t8PfZtu8Nat2WSrWRycp8eu9cd5nYW5OIUUxXUJhu7c4iTIjVmsAmRUVXG87nNlE+vcwKGXUlZHmQXg3TFUyINfO2vknYYKcjNJey4PIPqVeYgydLvt3vgj/Su5U25OrxpeW2/HUR8q6WbY71Yiy2DP/1lQHRlFoj60LZedH7aFrO+XFV2whLJ4qV3s9AdD/1fW9B/Xn8L5hZEYojrmKEiSsI5jmKkOq+szpWal/wISIDWMCmVuZHN0cmVhbQplbmRvYmoKMiAwIG9iaiA8PAovVHlwZSAvUGFnZQovQ29udGVudHMgMyAwIFIKL1Jlc291cmNlcyAxIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUuMjc2IDg0MS44OV0KL1BhcmVudCAxMyAwIFIKPj4gZW5kb2JqCjEgMCBvYmogPDwKL0ZvbnQgPDwgL0YxNiA0IDAgUiAvRjIxIDUgMCBSIC9GMTcgNiAwIFIgL0YzMiA3IDAgUiAvRjggOCAwIFIgL0YzNCA5IDAgUiAvRjI3IDEwIDAgUiAvRjI4IDExIDAgUiAvRjMxIDEyIDAgUiA+PgovUHJvY1NldCBbIC9QREYgL1RleHQgXQo+PiBlbmRvYmoKMTQgMCBvYmoKWzUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNV0KZW5kb2JqCjE1IDAgb2JqClsyODUuNSA1MTMuOSA4NTYuNSA1MTMuOSA4NTYuNSA3OTkuNCAyODUuNSAzOTkuNyAzOTkuNyA1MTMuOSA3OTkuNCAyODUuNSAzNDIuNiAyODUuNSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSAyODUuNSAyODUuNSAyODUuNSA3OTkuNCA0ODUuMyA0ODUuMyA3OTkuNCA3NzAuNyA3MjcuOSA3NDIuMyA3ODUgNjk5LjQgNjcwLjggODA2LjUgNzcwLjcgMzcxIDUyOC4xIDc5OS4yIDY0Mi4zIDk0MiA3NzAuNyA3OTkuNCA2OTkuNCA3OTkuNCA3NTYuNSA1NzEgNzQyLjMgNzcwLjcgNzcwLjcgMTA1Ni4yIDc3MC43IDc3MC43IDYyOC4xIDI4NS41IDUxMy45IDI4NS41IDUxMy45IDI4NS41IDI4NS41IDUxMy45IDU3MSA0NTYuOCA1NzEgNDU3LjIgMzE0IDUxMy45IDU3MSAyODUuNSAzMTQgNTQyLjQgMjg1LjUgODU2LjUgNTcxIDUxMy45IDU3MSA1NDIuNCA0MDIgNDA1LjQgMzk5LjcgNTcxIDU0Mi40IDc0Mi4zIDU0Mi40IDU0Mi40XQplbmRvYmoKMTYgMCBvYmoKWzYzOC45XQplbmRvYmoKMTcgMCBvYmoKWzU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDMxMi41IDMxMi41IDM0Mi42IDg3NSA1MzEuMiA1MzEuMiA4NzUgODQ5LjUgNzk5LjggODEyLjUgODYyLjMgNzM4LjQgNzA3LjIgODg0LjMgODc5LjYgNDE5IDU4MSA4ODAuOCA2NzUuOSAxMDY3LjEgODc5LjYgODQ0LjkgNzY4LjUgODQ0LjkgODM5LjEgNjI1IDc4Mi40IDg2NC42IDg0OS41IDExNjIgODQ5LjUgODQ5LjUgNjg3LjUgMzEyLjUgNTgxIDMxMi41IDU2Mi41IDMxMi41IDMxMi41IDU0Ni45IDYyNSA1MDAgNjI1IDUxMy4zIDM0My43IDU2Mi41IDYyNSAzMTIuNSAzNDMuNyA1OTMuNyAzMTIuNSA5MzcuNSA2MjUgNTYyLjUgNjI1IDU5My43IDQ1OS41IDQ0My44IDQzNy41IDYyNV0KZW5kb2JqCjE4IDAgb2JqCls1ODMuMyA1NTUuNiA1NTUuNiA4MzMuMyA4MzMuMyAyNzcuOCAzMDUuNiA1MDAgNTAwIDUwMCA1MDAgNTAwIDc1MCA0NDQuNCA1MDAgNzIyLjIgNzc3LjggNTAwIDkwMi44IDEwMTMuOSA3NzcuOCAyNzcuOCAyNzcuOCA1MDAgODMzLjMgNTAwIDgzMy4zIDc3Ny44IDI3Ny44IDM4OC45IDM4OC45IDUwMCA3NzcuOCAyNzcuOCAzMzMuMyAyNzcuOCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDI3Ny44IDI3Ny44IDI3Ny44IDc3Ny44IDQ3Mi4yIDQ3Mi4yIDc3Ny44IDc1MCA3MDguMyA3MjIuMiA3NjMuOSA2ODAuNiA2NTIuOCA3ODQuNyA3NTAgMzYxLjEgNTEzLjkgNzc3LjggNjI1IDkxNi43IDc1MCA3NzcuOCA2ODAuNiA3NzcuOCA3MzYuMSA1NTUuNiA3MjIuMiA3NTAgNzUwIDEwMjcuOCA3NTAgNzUwIDYxMS4xIDI3Ny44IDUwMCAyNzcuOCA1MDAgMjc3LjggMjc3LjggNTAwIDU1NS42IDQ0NC40IDU1NS42IDQ0NC40IDMwNS42IDUwMCA1NTUuNiAyNzcuOCAzMDUuNiA1MjcuOCAyNzcuOCA4MzMuMyA1NTUuNiA1MDAgNTU1LjYgNTI3LjggMzkxLjcgMzk0LjQgMzg4LjkgNTU1LjYgNTI3LjggNzIyLjIgNTI3LjggNTI3LjggNDQ0LjRdCmVuZG9iagoxOSAwIG9iagpbODY5LjQgODE4LjEgODMwLjYgODgxLjkgNzU1LjYgNzIzLjYgOTA0LjIgOTAwIDQzNi4xIDU5NC40IDkwMS40IDY5MS43IDEwOTEuNyA5MDAgODYzLjkgNzg2LjEgODYzLjkgODYyLjUgNjM4LjkgODAwIDg4NC43IDg2OS40IDExODguOSA4NjkuNCA4NjkuNCA3MDIuOCAzMTkuNCA2MDIuOCAzMTkuNCA1NzUgMzE5LjQgMzE5LjQgNTU5IDYzOC45IDUxMS4xIDYzOC45IDUyNy4xIDM1MS40IDU3NSA2MzguOSAzMTkuNCAzNTEuNCA2MDYuOSAzMTkuNCA5NTguMyA2MzguOSA1NzUgNjM4LjkgNjA2LjkgNDczLjYgNDUzLjYgNDQ3LjJdCmVuZG9iagoyMCAwIG9iagpbMjcyIDMyNi40IDI3MiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiAyNzIgMjcyIDI3MiA3NjEuNiA0NjIuNCA0NjIuNCA3NjEuNiA3MzQgNjkzLjQgNzA3LjIgNzQ3LjggNjY2LjIgNjM5IDc2OC4zIDczNCAzNTMuMiA1MDMgNzYxLjIgNjExLjggODk3LjIgNzM0IDc2MS42IDY2Ni4yIDc2MS42IDcyMC42IDU0NCA3MDcuMiA3MzQgNzM0IDEwMDYgNzM0IDczNCA1OTguNCAyNzIgNDg5LjYgMjcyIDQ4OS42IDI3MiAyNzIgNDg5LjYgNTQ0IDQzNS4yIDU0NCA0MzUuMiAyOTkuMiA0ODkuNiA1NDQgMjcyIDI5OS4yIDUxNi44IDI3MiA4MTYgNTQ0IDQ4OS42IDU0NCA1MTYuOCAzODAuOCAzODYuMiAzODAuOCA1NDQgNTE2LjggNzA3LjIgNTE2LjggNTE2LjggNDM1LjIgNDg5LjYgOTc5LjIgNDg5LjYgNDg5LjYgNDg5LjZdCmVuZG9iagoyMSAwIG9iagpbNTAwXQplbmRvYmoKMjIgMCBvYmoKWzYwMi4xIDcyNi4zIDY5My4zIDMyNy42IDQ3MS41IDcxOS40IDU3NiA4NTAgNjkzLjMgNzE5LjggNjI4LjIgNzE5LjggNjgwLjUgNTEwLjkgNjY3LjYgNjkzLjMgNjkzLjMgOTU0LjUgNjkzLjMgNjkzLjMgNTYzLjEgMjQ5LjYgNDU4LjYgMjQ5LjYgNDU4LjYgMjQ5LjYgMjQ5LjYgNDU4LjYgNTEwLjkgNDA2LjQgNTEwLjkgNDA2LjQgMjc1LjggNDU4LjYgNTEwLjkgMjQ5LjYgMjc1LjggNDg0LjcgMjQ5LjYgNzcyLjEgNTEwLjkgNDU4LjYgNTEwLjkgNDg0LjcgMzU0LjEgMzU5LjQgMzU0LjEgNTEwLjkgNDg0LjcgNjY3LjYgNDg0LjcgNDg0LjddCmVuZG9iagoyMyAwIG9iaiA8PAovTGVuZ3RoMSAxNDc4Ci9MZW5ndGgyIDg1MTgKL0xlbmd0aDMgMAovTGVuZ3RoIDk1MDQgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjajbYFUBtaEzaMuxa3ErRAcXd3Kw7FAwQIFgjBvbh78aItLsWtWPHiFHfXAm1x60d7733t/2e+bzKTnN19dvc8K2fCQKOhzSZlBbEAyUOcYGxc7JzCABk1aQMuTgAnJw87Jyc3BgODDhjmAPpHj8GgB4K6giFOwv+BkIGCgLAnnSwQ9gRUgzgBlN0cAFw8AC5+YS4BYU5OADcnp9A/QAhUGCALdAdbAdTYAcoQJ5ArBoMMxNkLCraxhT3l+ecIYLJkBnAJCQmw/nEHSDmCoGBLoBNADQizBTk+ZbQEOgC0IZZgEMzrv0IwidrCYM7CHBweHh7sQEdXdgjURpyZFeABhtkCtECuIKg7yArwmzJAHegI+psaOwYDQMcW7PqXQRtiDfMAQkGAJ4UD2BLk5Prk4uZkBYICnrIDtJVUAa+cQU5/gVX/ArAC/i4OgIud61/h/vb+HQjs9McZaGkJcXQGOnmBnWwA1mAHEOCVvCo7zBPGCgA6Wf0GAh1cIU/+QHcg2AFo8QT4c3UgQF5KEwB8Yvg3P1dLKNgZ5sruCnb4zZHjd5inMss5WclAHB1BTjBXjN/3kwVDQZZPdffi+Lu59k4QDyeffyRrsJOV9W8aVm7OHLpOYBc3kJLs35gnFca/dTYgGICPk5NTgF8QAHIBgDwtbTl+J9Dxcgb9MXL9Vj9x8PNxhjgDrJ9ogPzA1qCnHwwfV6A7CACDuoH8fP7T8N8SBhcXwApsCQNYgGzAThj/jv6kBln/JT/1Hwr2BBhxPo0fF4Dz9+dfJ5OnCbOCODl4/Rv+p8UcmoYqWrJqL/+m/C+jtDTEE+DDxscPYOPm4wRwcfHzAgSeDn7/HedfFfiH/R+tBhD89+3+I6KSkzUEIPQXiafq/UPE/e/JYPp7bZgB/51BHfI0zyAA07/H35iTj9Py6Yvr/3kJ/rj8/83+7yj/1/H/3xvJuzk4/LEz/QX4/9iBjmAHr78RT/PsBnvaDTXI04Y4/S9UH/TXQktDHKz+16YEAz5tiJSTjcO/ygh2lQd7gqw0wDBL27+G6J8uPAV3ADuBNCCu4N8PDoCNi5Pzf2xPO2dp//SouD716o8J9LRS/51SzskSYvV797if+g6EQoFeGE+tf5L4AD5cT0tqBfL8M9sADnYnCOzJBfBEzg9gDYFi/O4oPx+AQ+q36o8kJADgAP5bEgRwWPxbEgJwWP5L4uLiBXBA/0N8iuP6HyI/gAP2R/yv21q6QaFPm/xnnp6o/CP/eTZAIE+QJcbCLMRSJMSuNqT9ukaKwoNtZ0xsmmFHP52ZzWcB+sntFgc1lbk6+80a9FIqdagHb3lLjulCcpH6weeopR41vDVZs+3O994sUWtypw1jfoK4f7zoSKqujwqdkk1Hctf3wcVXL8gesQW+U5khz8VNEEejgODao1fBs66vbGkkbHZHc7eaXwXzvmyKLVY3xjio+CtDvkXODCktCoyNCo3l2Zkn7teLy+lnueO/qJUTX2L4HcfyvPcxXOeOu5nxXqnQ4XbtIqMnMySlQrx4NjLJ6CO9/1aZZM6n5EPMmtjcO4HI+MHFkN6kGRU9Mlp/DVJoSCmbWFagaicBfVeuh2UW1EHPclwdwPiCug7NJ5ShRME6uYpuqMQshxIccPNAR6WdZABv9fJT9/Ou4xPdThbfpHhSYa7YvTHH55diBJsdOf789zcoHOXASQVV5FRruFW6RfVXxFOj2vl+clpDrrH1RT5Gfb/y2T9csdkh2oX7foA5Gq8K92J6CpJojN1ZaNTvJ59+e3jfmWA7ZNRQQ3hBFDyBZ9YhFLE1AeN+5EluFPgewqrETSKN8608R3BQOX2Nc4bQ0ZVSF0F/QvPWyuCYhnKyTwJn+iGn41uZxJLmybNj3m8grWjFWEyT6Sj2DOcAs4lRSonsoG3Bk3fCkAPhJl1ytyLZZEMjxwxTjkFgw/TybsAsbxpag8M572DSDPEOTFXUn5FaPzO0wkMVKGTzTAOt28V2QzMwcyyPuMvOvWqSOfTUxPWjixbtw0T1QCjdfQLopIuqKfXmAdlQJUBD8SwRKp8leiWnXFB7lylCsT7Jru5/VBqoN13jgqaq/NJsEs1uun4TA/b42l1loYD6E8jYDS1D9UzTJU5UL0lJajaU/PBGCNiOarb6gvFQXrZJSIFOr+39jaS7fdQQrJldjtLXu7zTsACcJfJO/SPWKxVqDsFbMtoztEm8UkWpRYGOWQlx2vJ3hTkksOO3Qx4iLJM7EQ58mJ2Y8vLY0vrbt1yh2s9pHvsQirhZGo4pUL6OmlPECAobJLQG/XDQLSdHbQ5RKjiXMPIoRyDfHLFEZzTcMy8mmyzN7VitwXK1UgTJf0h7QdzM4rq7jz01EaRjJfRVGrheFI33JnTRKG4EmEj/1qaWq+3eGhfVeD8VlfMAXeDbc6DWuCk+U+a9KokdPt0XGkePVe42ujanL9ANet/oX5M6z76poqYkm0z4lBsUm/+65e1jV0j1IGis2F7y1bjmlj60Wa73+Glh3yVf8w4TM0i9otjaTiTOSoIuwYH2Jf9xOVWPDcJuvM/NBT7LzerJtzSySUwCVm3NbRzuD20FdxWML0qcKsmMzWtNNKNDgoX3cTZXWnr4HcicOC2EwhxN2s++sx5xLJa8N35Nz09u9DJIVy6Krr85Ri3/1TET9ngtu+z9hmr1Zhmp8QXLhuS1N8+L4g+ME6n8H0LOuNOWUaI6GZBfMqWeZ9oHmteSyq49ctQOIqTaMz0bSoqLt0/Hc67GgZlfmh5If74NJ92c+WisGOR/+JrA7LL0S1L9IxHaHYElQxeuPxMhzSKGsvucKw6uX/qAkMusx+7Eus9WHn/Ys6ox17FkfLWQDPRrRk22z85v9l5EMkZlqDHWCtTjt+C/hRmu3SEZQ6kCfPlS1Yqb+Wjr3rB0VON2Uh0vHorWxIylysbF1LG2qf60tnuZkng83PGp8wv85VHuUA6tJ2fPlS0dYvmam5Hkot/G/gLtbDDGkJVSohwLOivArnPXZLfPnb0b5tmCRlSKfppkL9f92qGg+oOfVTg7G0gZc69u4EImIRU14IMYdanKFnGDLLadU7USrRehQTgF1rJso+81Y3t+xOcLe/F9cE57z8IxHhwhgWdNzJFFi1uPBMWHsMmPSYMA1oxTvRbXHO+u1PsdKUvsgDZshefTWAX9opYOpf2n443PvbVlFJusED+qxpbwI+W8HYH1dVEbIyybTBjkDTrYfEUc/mSfZPKaeRYJunCBLPjitFV8bV1AMTevzRy+Nw61PeBFbyMzPhSjdbNxKq4uV2FothrhfQGioX+WzF4aRrQuOxK2XLRM2wZPLrLfrC3I6W1v8aYcQWIFzU2QzL2R58ioZ5VTj4wLXQOdDriVHe8cfK0/x/EdvMMSLKFivjj0Lr8Xb+GB4pffgY3IWGdiLW5FsmTRpxjxWcXqwIruo7ub09IlRyehEa6MW7bwq528O6JSI7wkBPiKb33Yn7H2YHYCmGg8fWorXpveH0J2WTckDM+aJHdvtQg1pMHiP7cnjt6fHi+5R+jJzxhL2dp/hKQ3ViGv42ULIlGjIGQgnZ6yoHT2U0WqK5FruhcL8SJ4t/2K5J27cgzCBTgJMlPJ5hyuWZgMLLxD/SV6OqrLZLNzMX+zylRk/oo7LbrloYh0yduCB5lzC/PLBRupjl6NT3s1+rWZ4mlCtGm4UQeIwEF6YHMTOy2O6p43Rv17KGC76zaCuEVcvFMMlFvMo5k8wZb5gtNrcu1bKWluHN2FMpo+gBNtbSWCQsD4LvQZ7IyvapmMJzZFjDru81g72XwrEkkJbs+sr5FW5sZHcb4gpViCkLIcaNMFlieebZWtF82Wvd4X7cEqgXAlzGsd20GgTvIF4QrkaCjoKiSOqQpL38pVV+la7NTkdjoDT813Gjkz0Ur52vh1mRZOuYJXIG4TrxUT3pp6/BZlsw8tscONcRTAxH6wSlAPI+Ma/vRM6lRMbPwaegHQ2zYNuGTZcfS8YAJdVVD+EDPuH66huXnM+yzd+M5CMHCiZdIAezZDrbTmU31M5bP54s1nYAznuPX0aOYB6GkpVp7/9grXz0zMnrn4TFRRkQAr1mrTaf73O9Y5rBpdzmMlvmdV9u1agq0CDefPxcGYESgRjR9BANPOkLrsHPWpAkrJthrbZ/s55tVG0vLhHausqgxfHXUps9v3CeqlQYHtLPQ11E4Qzw0eFQDeRc9PPfoOowKj7piH0HRrXREy3sfo2Np3ZJoodi0/k25D6hKjUGzawqlt0tYgq8vYNAxUuuSEXe22ke9L25aZvuYAuC/2W+Zy6zo/BhcUswI26tczPr0iNZqISBozM5aI04d9ER0M5RBpicVqoN3Voqx0XOmpys1irrosJcySizOGDupzYXVPTyZBUt5PEMB5bc1GLjBLj0SdGXdILtoEHcSMK0s4AuRcXBZSQs4FeU1nJ4c3cTsnZXMbKYH3QgJYW0XNXRM+lUPFWc/KDWnqzczZoIsOC/Esp20u8G+ySN9tUy60zkflw7CQVGXgbaYwhJ0slNEjblVbe13iyVMGoHt2fKa9Qohl6lp6dcq4e5UCIKL1HwlOtQzHG+M1BK/7U90GYbMBb58vIUWQ8PY3R2+JutDqw6SNRfKlSq6RTe4LC5Gf115QWJMOeXh5+SoS5vschun6E4s6dI4AH9W+UyGnY8F1BOKfuC7Ntcyv45pNtvfejc2Iy49F96ZFuSdphg/Z4eY+4pMjJN1W5fATMbyzDESkKxrwb0jATIv68moXGRsRhDAVmRj+ArigzZX5YxwUDtjtkcd0w3Y1BdOSHhyGetV7JLCmNAT7o8ucvU/y39TqTzJvZ6V4sKMNfrkwWKFiH4utyUcSmT2sFFxm9+VeLuy7hQ7zCW41bh5tbFideIPHwYr7Xd2GLz0JO+9hMovktKvEEgb4OmLcGa7eom/TGIoeK4QjVf553VD0xv1l2TBKtarMdlvq2MsSqiVBhHjCt5Q3XtHsnjJTC/25jG86dUtS/RaMlXbII6DUOcO3wyTKNhRYOV0bwrtLshKk5KXDgCRUpqwf5Pjd7G+PqfhiDbSwzDmWbj+V+KAKmVcJrhPhxkdv9i7KP5NlVH0z4ms288g+VJGX5A48XNfeSRMR0GUYsRdB3FLFkpY2P4HZF/mhy/Xs4DYEGkcoamH3j9LKZxx+M8CrCfdd9ho/dfPf0cS3LbfvdOfVQ50uyoMnOnimot86liP4vSQloIeHIA7+Dn/m9b3pfCLbN/UFJr90Kj/MmWT2n4n64HIiYNFUCIUYvEdwsQRlObn/SLYhIm8F4OSk4VQdb1TcU2QVZwij2D8i25IjT3F/vPzl87gRBmnHg0Y2gQks4nfamdynD2Es3/vkUgYgLs9FOiNm2sY5dvHjWvkPjUqwVPFmT/Agzd0UTTpYP5bRSvPlI1NqxcXa8b7PC541RtEnvMu12olmpOOknoRcp8DcjOqnNUdH7uR0B2goSfu+GFOvJrgSeMj9+nldUb1wzN9arj8XixlGoCmIjv2tThSLwdOBMYiiGGP2vBLvxF/adlNsXb6+YI2W27jFhHU7YPqjJBTEVILjIL/H0hf1WuB+IXZx3rwI86OztgRDM9j3S/QNzBfOCO2K2EL0hkJATewme0qAxHVowqmB/M0EXuNkmQc37yreXGiXFYfFiay/EXP1DaoNb3E+z/7DigIjHIezenAPA24q1YJIZTsseRcbPk0YPobUef8Q65DwpsfPQy2TCJ8Dzgf9/XhFYCEnu0Vp2pYdjeFWnKRodNEu9pvLR2+vWYevzL8eaGsBS2cXKvkE41vBXSu6jpCpjBO0Be4iOEuEND/mwJytPe/kdWEyUfyPV6cXSyHyN9ToeZCes75gvNJ32/sKqrhewzqLAj9E5ZZONx+7XCL1/WXqC24cX5P9FNsDbbFbMdxi7XKK//ogskbQGd/URL/93XQMIU+c9XU2O5X83XJKEXxmLgN8isJnklZCuw5WRrgTYl3GMe2KMk7cwwyKmPJ07cpRmw7jreaeu6iMo5VJpJe2guzhhDRDxfUSib94/ZBf9o0Mneenn1rJjMzmi1wePVfo7agpDCzq7zOkk6pPIs0vrTudwgO5yLWI4yJ0aqmWob95DFSZl6T3XZDVr8yInj7n0FCvQzGdSOVh4VS52A466H1Y7m9i9ptGrFI+ULOhnaLnuxX8btZhUy7jyi3TIMCqkpOLO/NOAm2sbWycOW83NYJ3FesWZ5mLDr4H0lr+tqWJhEiJ2sAyR+Nq3j+yiQtQeIAG/PFm2/R9H+8D0RA/1XQKsx3Vqw+LQCJALxDbFOL1EGuaVz7FKESwlhZ5gbY3UM5Q0Ckq6rFZImYvkTKGuPRoJ1mh4Utpf0kcwFso/3gc5urHYvDweV7lg11xxk9LZ5MA/wxB0S7JrYTudJ7GQruWHe6c8DcMqfBCAupjZ/Te/gmmPd1RCOKOqp9V1beErrwij+q6ycKO0eAAwDlmlHFq3XtmWXaJ0Vm4WaH2nGprXq1L7rLTuEmDlpYRbDQPuue4ZlreFGiGI27MLhvrPoBbgkucCzQe2y3t47WsPQ2idXzZ4b4kTxRmQbTp4160ZIbZtJ6dBE0T0a+Q3hHriWj/WessMZfsT02Eyr3lFbI0hksdMyqyFENTlt1Xh0w7ogUGpAMJpOw5+9QTigct2DyKxBEDcKGlyvEXPYgaAtdJqXRfnsdrvWy21N0op9LR2YBnesdM3Xgvp2JqtcRQ30X741E7ml2lryyX0VfAJdxjRuGBbD7r9h39ul7kpHp+x/yjg+MUvwu3sVJYwHpaTOsy3GjncRFthCSQh7kXIw8TXl1gX1mgjhrp6waXQOnOrEq9N4ucCOnazfAoKb45hMH1OcGQlgQjAzGJVzdJRJmBfpqa3kKNn0zp6A316Jccm879UmtG1kHj+dnTn+uixhy9x4FL9QYFRJUS/EmQ8ZPPGwpmj6uBefezjmfJVJcf247VHWiYphdy3p5q3X2VnWl/Z8IWDn+1rfHTmvnFsfs9b9R4ebecsl7AmJFQp+N7EYSIY2gCDhSBJhZ0PHosUu9pOnUSvKwenD6ScVCRaCeg/+GQLqtuKgllGjVlbrhuaKBVWk+BKWAdvE1itK1UrC8lKtm8v5UlVsN/KVFNcGADhx9Dj60zrFB69Cw/iFPdVZXvYgFu7CBRlfqnWxRbHDz/rI2Z+y0Chuou5L1cdXN/gb8Sc70KDY/B9zGPT88w4VQ1r3ae+Vx1p8PGQCnsFJeW/cZsaMVSuVLp3S/geNRwhwh8V2q3VkBFpc7nH12JCEwFVbjS77xYbDhSTntLFgUqDrUBWKJgQiO7wRTL3gd9d5X36GSDS5WeBgb9dAhKkFCBaMy4rstl/JkNzBJly03hoZfazzuD21CYAGn7zsDiNSTa40FXE8a06qVNk2z7n996tOtVT72OV80e7a6/pGvNNYqebgF+jLTMoEE5msq7SbJsULuXvai2VlUKWYkSeiCEfNqK2HQqubgkRoxYcxWku+eWfVh5ZMg/RESzrFqo8ZA+165t9kstvDh4SSko6eWlqX3kNox/mjJu4P34zvFggcdz7jwSrEITW+nqFj2RZBVdtyAGJZX5aCDx06E9OHVEL0DfymtliU8ZN6Fuct9++YjzaPIaU7u1zVZ7RaVlO5a5mQg58Hng3G0ZeWRqg0OzxYbrGUXNow/8kbCST705I0Db+XHmK1YtfEF6YtXrVZtiRHGh0quJUQDeMnTUmiZYuHCOyGPdCYd6UQS3JRVwICl1q4KeKWET14OknugSdpiGxAtXK4jH3Buv834Uvc8SruvZSkm6lnbLuMrwqPCRPW/hT8JlbbS3fgsiPKJvlw6HG0QP0wDauqYIY9HxEOdzvPpf1rR8klLR6AW73y1cCA/hTSgvO/RnWfRexT9Xq4QtzrJqn9mYoZmZNORxhkZVHbIpDBvMXHvX7b9U8E1Cy7c2S4KayCkkLq0BXZay42wSih3RZ0wa1JwKf6WhuTPVyNZy1J8vqlqU4wccRM9ZbZ4uaFWKLClkSUgAlT/r6eBuPHqZ7i9V/mqyKXT0X880rzXkjtnfmIjwjUae8NmWUrZM09S6LsJycbJiWsVdyvbK+NF0CZEdNdcpU5aJR1r+qRjurQVcPh+YptK4r30onEvBmzuMHPbsz5aRbHuMSVZzHhM1io/lHJcoeQANiCAY6hyex78MLdUyKrC/tukbL479RUgUPEmSAkQO7aQtc8Ex/Wgxe1bTsbYwiM6ydR9A9ngMvTpe+O5bJSzchKeHrJ4g/apb1xtnaFnR4gyoUC2riFP9jZ6fnhem2t6AV61sAd+A0a50oq5EKjOb7dIAZFfJwGftr8QSD5RJ8sJwSEUTePHO0ToZk7EeMszVt1EqHLoLfpwKLcXfcaOqxXbsXgGpjwfC52YgSHKJAKSl746JTvwMmfK/klBoEPB0wYtbR26jmZedO3rceSHOV9Sud5ok+6lyorlANpTnvg0AMs4XTtfJeLdX9GSkpYNKVffuPEe5XM1KK8iYjLmHtwy3OwzZp5cxFCSuVjYpgg5B5Dkx9W6NjYIH2Lg8685v7wXxZV1Yk/s7GK9XcI141LDON1xRemGzHATjZd3NOlgieydJd424MiJEKSaysh/dOFcQUAuxZoo0743EvAMfh99r5LOoyOi6JNnnwaXEMIUPQUk/Dh43EKY2OKazawnE7wzn4CGJR4g7VOugIDvyh7U6G+HhfkcUWSf84DdUaWCg0x0Tbifl4T8z2tuaFoIx55BsfypNKEApJ9VotTq1QaMSw33eg17WYMi/m1miLe/gsoNSs0FTXptMgF7EFSwosbSFxDbk7ivpG3VwJHTJJT8/zrJ2dpl7EWgWqPc1+4AGxvJskhpN2PH6G3NWua2LnUlYEZvyUINqjtT6cgO7lZvuWl4epGHvhOj5QSbwQ3zPnbcuP/K4eZPpd+XWiLioMPiAFjyMReFHGPN3vAi6PZhnqZrS6f37JHMFsTW68u0kxyBA0gFb0YQaWmqNj/UMr1JYITrp/kki7KbGmIgavuwkW3aI3XfYcWKWjFFB1W7Yf1XGOmAE9g1bZL+Az+p6ubDhEvZ1B/xmJ49sXpkW6jwpem3HHEVhmte4GgxMCHyUxnK17dvjjjtzPg97xr4epegsBwTKRTsk55tzvN5Ikspw4NgnFELx8uqDIqOVNTakxQKRCTA2X9PtHXl0PVww2QR+dhfLDZrRffvFW93IbArW2Zs2rQKfEmohuGHzzEv2KHBZ7/ZtGJSHYpsxluWTRTC99sfMt1aDVlUR8Z8UeCsnTKcFw5n0hMcy4UP7NobRLvJZzCxFXRgr9RbF6d0QYH4Q1fxWZ+y0UYrIAn18KZdldyRPk9g7pI+Zi1HNjl3MB0V7fNm3K28ldIPIF9m+1bVSENL/CNTiri6jw6Dw8h4TFHCs4abye8nz2fsAbxfJ7N01T9HHhud6KIadp3j8J+VxSD/pTSIr+Pq6hn8Fv7SqYFuu9H1FUmb6+u1Ep6lNCGF26EP+PVnZe1Wly7NGedvbCprCn3ppc/4Yt+p0GNvwX45MDVzEp8KoPcnPTXSn5nnCD8LVi61j8AFqsTiD5Sy1YvSvlr6tpwNx+Q6Ja34SBBh8cubJXSup82TlPv2kPW9upmfGjai/5EEx9wE2Z1YfVoofAg/de/MVmku3r0P+Da5ApISQW6yQJhF3XZi7iDw8U2oI9yGxEIWhyvfdcz741rItjJMmkRuvJmtETZwmv8rPpbiJF3y3YMdCRaxQH3+OZ1zxvGEsous+r1ORAQ6i5q9eIQwSmZtgTD2ijpaUPlbZibDtc0p+tP/VduQaikOT0TwJP2hcPXDc+wsuKojudqIO+/aKhIa8L6dzkXjB/luJ9FAzaqz5zi2ek1AgGXXufvQdmvgEJupNAaZLAktFP5aTrX1F35tB7reoeIGBjOItrDmXi0fve7ZQhKztzcTeoTXlaw14KvdDnAa0vtJEvmpz/nlxuuibpzDmUp/McLrvpxFVRbGgPguxeQxuRyYMdIu/LWn0XMPv+KCR8D1Vb8fChu8kXc1ttiuCR8y0h+9b58OJuPyKwSukZHvtz4OUC3sO2838jZbkcxbCmYdT2mHl0hZo77HWB+FE/ZSgonUaucwJmXBZ1gyj2u/SAjBnE7eRWL+JWums9Ym4phjSI3eYF1dY12mvVyVq40zb45e4ppRd2KbqjfK1Jnb+INcDN3Fpa5Kd4nhpE8ZsITiWCS2plzT99BgLUCyuIIge42DEM4Rf2fpKysBjSboI94gbLI6eJpDPulMUJdXGITm4cPhO4M2PEYEqS6NwK//dlzh2YzpNe6XjYu28ZZjXCO8xsGg9KH00e7BnpoKVkHO5KztNBBrTduOnLqBten30j32fZwj2WzgdWr5jP2+60Vo8tqmsbfdvr9wo1FXG3GmB6/nFP2nV1MFwc41fZD2G1DNm6KG+xV7ycycbOfmRwDtg0z1urLPHWF7HZelt0kAeweD3aI7XRZKTR9TDvjtu7fLTLzQ9Rdzyl9x3Bd0b7zJfRvckF39+sLstR9Y/Sb4OGHi/aGJRa90fwnv12a36fNjCTUXe9JkgvSmTENRcXczoqq0qu5d+08MzUlvB8Ch0yLKxQYdeS1Ua4kf8QXEmR4TXhvsrdxyzH4MbvzirWcGVMhlfMh23BlV9mm7TvMRlE0segnhgOB3qevTqugTE1facdsHvetRtBzEOtqJFy32hY+kxVNqBQzG9oKkaOVo4QLbIlnlHPF/aUr3QKYQ0ebz2EVENkfBcysraJzKZKA7KicFkn9GuSBtJShU5DrvJMJLc6TNrD1pM79NzuNk9JeZ62RjO4ijM/8kkp0Mb9ypkMpAYPTorH0mYDWWAQ63nR3OjzJgxe9J56QCWv43KDV0/Ek5JoMtFzJywIyZnore8nNfHH6+Q7poWAAaJ1XDxYTnn6N65iw6vhC74UK/H8JrEh3d7t4kZGsfF8SzdXyWHRUiShEjy97T6z8csf/ZvjMaYHMh37UIIJo9K8N0ZeE3iwYocT9lHHvdK1VKSIYaoTKcjP2RG2oZp2XhG0fzgrDvBuoQZ66drglJwAAo2xzE1TRQK3jn2BDdlzLFy4MPN7tDq3alXRmr6DmxJpyxGp5uO0arPupzkcDbOOVxQXGtrA3+7ntBKbj+P2EWTWt3iyjtkHm/GtPGmtrwFX7fqXms/VFw7pd13lNsriHed+XlUvIqyWNUKrfHWvN9mbWunSriwbsNWzWn5IMYBXa3E0CU1+RhsPnhQkQQjlmDUSvXnDaOmzh2SicHK49cECECv9vHuNu+X0iv7gdczqePM/Eh+VxBe7w83QV54lPhf4KQFL3wtwNplhcoWG9U+4Qv6SJkvuLriggRIRVEFJ7r6MRpc9s2Fkt+4q/VIBVFkwDsVB0xewpv8oNwEJ+0LH2TfTsIyylDwTND7744ZO2DpyQNQhu52KzvZrkssXupT5z6l6VW+Ghq6BImrF0nyj5G8iJ5hr8+TKt50bhQM056KZzF9TXX7ccAZKIlJOtVv4gMocbW9RP9y73Nthqcazo5/KX1Y79T7k+So0Etft1/bf7RP5qLoNnhcWPhGAl2yLxL+/tMCn3vmZnzexhhDNGiFg1opnaVQ+ajb1Gmwja4clZiAeRHBaJ2XrB/nE7bm01+6xS+tjJAxTER07pj154eL1pm9R2u9NYteQ/a8QoLRMbkOjwr3396JyTvIdbEFJxNTUQy3RssfVJrVmyhKpo+Zb++tUfgPpSTlbJVE3agfQ6h3f9DZrsu03rJ+GYZ9cdEJhYlGSqcA3nK+0e3+GhIQCTAncn7PdLCReS+XG5K1lNwsEzHgK7akREVHj2JH0h1d60NF76uAu2AP/SJCKZ5xHUfXay1Ulu9tJyHCp1Bp+uJBnwmVJpKLBVsselXzbdWXOHi6OGtVv9VCheaOFZ6EW6lhQVEEC5FnxPXThMPcUpN7XY2KD+TMcr0VgbwDqxOC7NFC7Hbw+s2w3A+I6ka7kXNGQZUh2l3nL86DpE3eSOy428tDIlZIabTsDjaK5D/Tqp3RwNYaITHZz2nQFX0S92iK+VkwK1MTaX3PZCUmolnQsggxMjl3mx1vsQb4jg7Eul2FRLO25sbYxCUjlB8jV+Mb1ZA9m5txyBPtL8gWvrR1zbsc0ioQN8dgje31l9VwXCkXAdfdSMNu/Eew7eAakZreyCOS36yHmA5gDM9qu/sXWm+tp+f1fc++rw96Zdc/6iDHuZFTes+oWsP1WqXurehJ+f2wN4sukf+5eCFLid/D/A9GatEbzbQP2WZ1kgJhZpefTIo+LpvvpyJSsZYd6++AO04DgqTfHiMZZl+yq3QRZd3NRmmnjmAmwUOHSqd0v2armaF/r2rbQUTajI2Hy3fwhQ665wo1JHP6uGUly4QEdezA9NbIeg+tPHQgZuQ9D/eHj5c70ikIIMbOrGeGmBpaaIvCzcTGdbMWFLFqvBMLMfBMjk06+LTo1NUIhV8Pgi/iI7W6xAHWNA/Q5QbphrIt4SGj1EgLPE8POiXYqeNiodwBPd3Gt8I96x/aiSken22PjxvLGKmDj8mEMAha6dEFhsckPvySvvzU21vDHSJC2Rc00sXwMgi8eFymsXDRf0IKrPjGhsBdi0CM6jEi/n8AGodoJwplbmRzdHJlYW0KZW5kb2JqCjI0IDAgb2JqIDw8Ci9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL1FaS1JETStDTUJYMTAKL0ZsYWdzIDQKL0ZvbnRCQm94IFstNTYgLTI1MCAxMTY0IDc1MF0KL0FzY2VudCA2OTQKL0NhcEhlaWdodCA2ODYKL0Rlc2NlbnQgLTE5NAovSXRhbGljQW5nbGUgMAovU3RlbVYgMTE0Ci9YSGVpZ2h0IDQ0NAovQ2hhclNldCAoL0EvYS9iL2Mvci9zL3QpCi9Gb250RmlsZSAyMyAwIFIKPj4gZW5kb2JqCjI1IDAgb2JqIDw8Ci9MZW5ndGgxIDE1MjYKL0xlbmd0aDIgNzE5MwovTGVuZ3RoMyAwCi9MZW5ndGggODE5NCAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqNtwVUVN8bLgwiIS2dcihphu6QlpQGSYeZAQaGGRgapEtCBJFWKelS6QaRbqQ7JBQJSSm56K//37fWvWvWmjnPm/vZ+3n3OsPOrGvApwBF2cBUUUg3PkF+ASlASVvRVFAIEBAQ5hcQEMJnZzeEuyFgf9nx2Y1haFc4Cin1rwglNAzsdm1TBrtdB2qjkICGOwIQFAYExaQExaUEBAAhAQHJvwJRaClAGewBhwLa/IAGCglzxWdXQjl7o+F29m7Xff56BDghXICgpKQ47+90QMEJhoZDwEhAG+xmD3O67ggBIwADFAQOc/P+TwlOGXs3N2cpEMjT05Mf7OTKj0LbyXHxAp5wN3tAH+YKQ3vAoMAvyoAO2An2JzV+fHbA0B7u+ofDAGXr5glGw4BrAwIOgSFdr1PckVAYGrjuDhioawEPnGHIP4K1/gjgBf7cHECQX/Dvcn9m/yoER/5OBkMgKCdnMNIbjrQDbOEIGPBAVYvfzcuNFwAjob8CwQhX1HU+2AMMR4BtrgN+Lx0MqCroAeBrhn/yc4Wg4c5urvyucMQvjqBfZa63WQUJVUI5OcGQbq74v9anDEfDINf77g3683AdkShPpO9fyBaOhNr+ogF1dwYZIeEu7jB15T9jrk34/9jsYG6AqICAgLiYJABzAWBeEHvQrwaG3s6w307BX+ZrDn6+zihnwPaaBswPbgu7/sH3dQV7wAA3tDvMz/ffjv8ifEFBAAqHuAE2MDs4Ev+f6tdmmO0f+Pr80XAvwFzgWn6CgMCvz99PltcKg6KQCO9/wn8fMUjNVE1NUY/nT8p/OxUVUV6AL5+oMMAnJCoICAoKSwLiogKA33/r/L0Df7H/bdUFw/9cncA/FdWRtihA8g8S17v3FxGPP5XB+efYcAH/7aCDutYzDOD8R/4WAqICkOsvwf/nIfid8v+n/V9V/q/y/98VqbojEL/9nH8E/H/8YCc4wvvPiGs9u7tdz4Y26npCkP8bagL7Y6AVUQjo//rU3cDXE6KAtEP8vY1wV1W4FwyqC3eD2P8hor9O4bo4Ao6E6aJc4b8uHIBPUEDgf3zXMwdxvL5UXK/P6rcLdj1S/22pgoSgoL9mT0hUDACj0WBvfIFrgQmJigK+gtdDCoV5/dY2AOJHotyuU4Brcn6ALQqN/+tExYUBkPov028kKQmAIH+jX+sBQf8FRQEQ/B8oeO1F/gsKAiDU31DkutL1dfgvtwgAQv8LigEgt39BcQDk/hv+hx3EHY2+nvzf+rum/hf+fc3AYF4wCP70BAoiHerwPrTxx1sFek++tUHZT+xrJilcfL7T6Cb3M2LcRK7yl8GL6GOFxJ4PpHOrKpxH92aYLn236ipxI+oT9BrOH19Yx+uPrDXgTw1TdQ692VKo6GC8xcBneG/98aXLY+MgR6w6zBYN9kwXdwli3WzyH54f1bwqOopm+8Mn1vTWy8U0CS6KRvmeGsVYBOWPsWfZvBqnYcFx42PE4ybb8yIZOzr+RJYxdMWkEc+D7/ftqXCur9mSUOzpuM98iaGQaystG60ZDSPWEVn/yF1fxc0kDepJ34K8Zxrh0Xm2jFYTNXJNJGAXkXfMLdMyRX1Dy300X6yDlIpIVkfCn0H0VtgVe74gDDKaacgyK8TzRy8FrXPwXfWaNy6pfKJLx16iQ+Q7Hd22dYUiUtufI+6EHnHK4zRvRmwmTYpN0WZ3dkj6j3JUPr8KuBc/JWST5Wbe5gv2ItpuviH+47vf0JAaEu+1+aHhw205w2EMhh5WcK+gPXOGNM6j7dcm3Z1lZFeOcpj0hU9Hbmg69L9b1GjxIb5q13m9BQmRn7GSWT+9R3hjadLFcM09dApaZA4biU1zkNJoQ97s0zyPYhUyyH5r/mKr45WiDZl8f4k2ZjAq9L14eQEY/CYpMpuDrjbC7jD/RJdRarBypHD0CcEXaLki9PnjEfWi4Z2w+1aeT7RJyoqHYKzKyruCr4qFTRJyWiP5+4cPWjT4qcQmy8YYZVIMabV7vrFUyYWiaThpS3SCuyhfJxGuhLCmy9WYObQd22f3VPGkGP30LL/6vop/UckW97l9eMVi2USHXymX03jUYldnfZ0hs+lDrfBtYuwxBfl9hDWpa1uhdrhuzUkRQXOst62Bd8HyRIvN0u2B9keS7ozOsZ3HuivdcW913NETXFqy7vaFsePBo93Kg9NZ9W26Y9FW+X40NbVM2K2tY/if+QoGfYy4B2bvCJds+B+v3s/1pA7xWdOTujHeg9vARDyxPMD/YoQS4lVfRJXjQZNcRMeZFkwmYyYTJTaVJqo5O5ZWgfmJx+fitlpTlgAmV2sA+mFJQpTUZDlFDyQbk0qRqDBLXN14POgSe2It0+SqLl3fkqjqpeRHbDOzdEanxxBqVGjEu7ignmB1C6dwHYxwf2Tqi69r24THmbQCFrSXtlqE6eibUxM3ExuDHny88sebmR/Yjk0vbSXBxJLGDOXs5ZhZZwpKbrN9F0J0AcqFmCSHKKd0XdIWSGCG9J7pd3JakBSE1g+SZ9/8OD3aknbB5rxHnsA8zMI4dyBZEaMPyIqb7fsVvpyLs+TZ8oGF0Rjjmqf23qLDcaria+ZeXG1dEsmjYJt+Yaxsxlee1FaWOmYyo5nkXFVOuJNdW53lb+h+krs38WCrQpAyvoT5NIjBH5x+V1zkTcgGdsyXudGWDlxe2XqeviJjVWrIunCH8Ns+2i4Jxw4C+2/W2Ns4iAbKDQUkXtwiOG2tKrjmWKe1i2isRWovK988lW0gAyo1DIdQTqQ6XCqdawt9ftQvii7TenYglUPzueJN99lSafOA/9JPSCbZpPajWwVLkeTMtpLWcrpfy/3wVN8UHpfKYU+tp5AnVqfgruGJJDQySvjAbhjh8WjQbGOf0jrepiWUkeO9719mVdyNaSRX7n+bbMGf66YkdZJaBh+FdSjP0FgETrLQj8Y4pzT4+ungK0EM9LvEwm+HHXJmxTv9C/JDsQMSK7pmmE6bcTisTjBl3cORtIInYvX08S9OJfM8ZO1VWq1NOTu948J1fqTgckrS5W9QQ0UnZLIXTEWKsBtEyZmf7RGaKqXjvFW5o3EcW9xcQ2oxNWZpmkVBU590p7Is/WIawV071k8v9ZChik+OwblH/DixVqv+vLJryux1l5J/RRfi6PSoJIqsAZoq+GZAChR0Btgx81J04TfN+T3NItYb5NnDlRQ29gWaE/WeIia21MqqqleIxDGYpZluYHq78CyvF38nGtWoTAxQ2MLGubXuceIAQg+Pz7wMMWPUJeUSeWs7wfPA2dT6iZs/IJpk/kzfjE3GPlNpwTOlien7uYiuAvkLT3ubloD7p8JwFb/Q4Cpzklynbz4nifqUP9gYP11gmatkiviSh3109tEHmZx+Iea71RBUALZWx16vSnCyTyiC2e5zNNYGbpi7pNfk4/G/mlAScGcwyj5h/NZ0t2htlldh5JYnHwuPSAXbQq7caN2bFFnWMtg9TW6TG40qkeVuN617+DSaXnQR2DAO5kTkHJhBn+0V2kckxb2PfvZRzktnuzB7wXn1mStW3qs6Na3A6Qe59nIHGZ9QTw8/bWUWvKJrxZjRkN7T4LFwwh9kYtCgPRej6f3gSEseO+EUJMmCo0MIPFIebTNv2gM27cU8fRVIIDKyC2Uefun9JLoYSrmLeKPcUY9dFSaTv9lqdvIclgoyB5U+zU8wQJ6+6Vj1Z30aYH2bO9yS8XWVBXyPmfJUYwD+stelL8VJA9CsAGybMp94cxucYhL7HUfC1YzFPME1mNTLbE7vwz1kSH3M9OittMY3BHS+6rukHTPPcov3uGs9aByUtQkY8N+5sJ7XuHWpFKwuLyP6PRebwJDQxzW/ctvPXetRkvZUYFEzi/hrzeZPBFg7JxsN+5/D5yW8HwDRvvv7cW8eZ3o84rrzgV85nIFBOGt6PVGTLZGWImfzVmojwCsc8D4taXTetf2VMnXD0if9q8iE3A+GRNWB/ZB3uMVC3+JD2IMuvJUttCtvG0jen9rTe9o4/gpte6iWb3VhISoakci6Ou1BaR72cKiSi3KDSvOzQa4VQ6U/si61VJvO9JxX4m6OOJioE8r2M3k+kcDKDWRCFjTlPdQS0PKRJh/voESkVk/Tl2tadgAjzES5ESrXgKKDfZ0xS3eeTqSDh/LBSO7pPte6snn2uOSY1RmbRaxF8ymxFpOuad+ijw1xXoZZOGT0xO8qaJuLnVprStP2gRDJfFnQyhLAqTNWaRRXzlcJu2pCB2TE7LsT6hfXeccYOiKo5Oo5lt7f3/5EuCA5Esz3guu05dz9HX6rOw8FohJ69Fmk6kutTyFEyzUigeqHoQaOuRR2iccg3UXYeoy8SaTOj2htSu56orc62PDdHS3bA1vVMVC+PEEORv8LFOlgvzV4gDlzjmhF8aub5ZFPsEUTdTp2ycILfVAqWuTN1uYWlfZZQRLVOEb6pKpnQPcuTJQj1nI/oNKsVXfgjnM3ZuzkZHUeuly+WzcOHNpDMqiVwMGHRd+BPwShvF0UPXcirOaXa4hJu8GRNpP1DNnK2m0ld+PZaOYERyZfeu3NwIXAOdUfzZ7aDwzjypVdNVL69OjrK8/aQnxxb50HNRkuNNccCpUZ08aX6bgujsae75MENLMrhszYx+zPsjFM8i4fyGWsR9AdoL5oJs+w3H81VE48RpIJ1BYLDSqSFhgNiHNovOOs3m1g7Eof2S+FCOqqz8ctn/AjMvXGMB16VNkdMgp0K/EFdxp8bIR6yt6ZBC5o8zhp1oTWdXbZ8rLMgYT9cz6WS58fJ4lng8TbSmX7UHwb+uyBUetLyCQGDcVqhnvIdcwrMQWBLx/sWyn0VSXfZhhOEPrGcWbfTdljWwyLC5DqO7RvoTu5OnqmfeXQuoFbkEE4Rf+NPU71BrVx6NXME7WVbo+aYBz5RwZSS1tSGjBn/c7+6h6SHwErkunFGDGZffMyD0/Mkd3J1aWHXQs3YrfwKD4tNS9PhEh8ZTtrYWWB4Q3Lko07MhIwfrddsA3NSnoWk9FHUEZWGFxJqOtJr1IlmX80xKbTEDojk31ZcPWExcEUu8HUFetSG0039VWlvPLbq3GtC5ZN5m/ctjQ86cyYRgqR8UO9Nwh55YXJWle9xJO+i7HSt1yBmQ+iZJ+ssnaTn18S9CT2uOdSR9tk14ISFtVaKuZYgfu6JxaFFo9sllfH2Y7Rss1cA/JxoDy6E8lYmXQUuaIR6detafEy/kzRwlUaxepVfXUgtSJXEsxCY8xMvnqX0eu2oN16/laJS4pjomxS+LcYPsBMsDH8aXnj/H3z3bK0z6pgrHoDj3ujOfAv1Z4bo96sl9C0qxsf+nbDSdldexf90y2wYKeRPz5ZcsbuzuBLre2DherfyI+Qz835hmWuraplTLzGu/deqjMLUXLW4Qpel9icblarHzWOsm041LjdmDXXvJXbr44p86huJ5ZPfufIUprvYIsKR83PgO0O+DHhyTKKcLLa0Z1j1zOd9LI82TsIQ/VrSuiCc3ul0B2KuoSPfurcC5XUikpDct7yaQ+sezCxG0WSyS6kVhLf2ahsZBpbhgpWjxrvndrwhrBEaKJUBaA2cWC6+m+0V/0ZC7Yialb9JY7POX032gek5vDxUqt+LljywTRqpmzoEvsgQePylO8yLvrte05cecgGswOizjqtq1zTX3cavKd+tcnIC3Yr8IZjvvs+0o/+Wcdeua8qTHthR5qbkbsQfTdb229qtqBbOEPZsdv+0VOLDLQ7VG7xu/QJvE6B3rp5J5ISH6VqPZIKcTzSSR+L/sGEfJR95jFJOc4llJY4m/r8MxvrNpHY6Yjvz128i+KNlbJqC1WPI6NvJowELYGIHXx2L2xzu8ox0u0wBzH/XDIlgjHKOZbnz60cEUrvd71J6ufYGX4ycQ2zI6tNxlVfPgBhUGiTpnqXBvRQjG34H5i5NG0XzjDB1bPDgtjyMpT6DNO5vUKKOizPizaSuA6Z4BmYmG4iZulJxhhjlk5rkUHGnzDiZx6cJwQFlh01ctlhwH/W4e+z893QMOrMNLd9a2gqPgbipwuDRFBFB+EZ3XzCe2IvviuhnS0y9JXhls+mpNRqf8Wyw08ntMdRuu5hLCuR3PNMPJtAr/2GVeuThrw+rfbajxkE3sXhRQkhbw+HRElG9O+BfG239JS++xVDe1vxuieP/adW0RVfmMuxRBouM0bijhpibHVzUDXbgS3an3isOHhTiHfErEGzJr72UwM9uz2gyJG0r/0OGxUGfqM/tzUifAhGXMOjxqs/Ry1POFDfKlio8PdJ1/J1UbDA0B+1Z+OKlvLRMdDQmvdmcLB6/fFF13PGKsy4ToY7XKOGw/7DmmZYCpRnugLYz4JxNHSp/Dnl/CVX7rbnLni0rVhdseCFYDdzNUWYim7Qy9pj6YwGg3VIp94Xsj8VxF6Z8MARnLPzkN8IFBGrEA+6fxxPtcX886BK5/CyzSF75YEIY0ETxXSzzfzV2pu6p5huWar73vvrFWtH3+/u+h546pnzmEVpPM92qcXnqVu+R7C76oTkXXTQRqrYqhM6ERToqzGWG90srXxIXC7xIe2HThh1Qc7VK03SKCl6y49vFJmLOqh15AM1KKN2NzgmFfiPHVt9ZXS7PyTLr7GBbLJX2SH6lUHhy8hG5pvcIav7aVmSFBQSUUxzOiTu1oavvqYJVhMy3d3hxoa90bG6m++u/vjoNJTnakKgsIqFQIoAMw5KbYC7V1r8QazMyPPoAYvK5HkA4/De/pas6rN2mU6mTJIRc5YwLwEKjNurlwSpR2a+vsFP2w8XmPhDaQi3Jfq6OKrNblW2DViD2e2gRP4NAXE2q5uaJmPFW0aZPuH7mMfZ0b06r8Kzj3nVgWHYDvzWxg2EXPXFRukyZDUnvBWbB4RQzBzxp8DyCTvhW88kaNbBfmlCSW4CaUA/Gyb/EhZJHSMf8MGYFxqIacEmnVfixmCo38pOoS3RpvwtoHZYK8P1oW+kciWrCMGPEGVfcKGFg3QNGzKXFNqbwTEwoKlCmMThnLBGCP5053jOWuk2NabgBJSY+KL3AqyiQjwnwtKSJ2P+tafED1s8UJx9qj51I9ARJKRe7RjJUZrviWUj06+YSHb8uEv64Uo8QVkLolXVd6qIl/L45XquJD45B69cCGKLIcfMxeXe20dUkTQUStFvd3iJxWhnHu8b0W6+NxfqKvT9Udu/tu57aF3BEHUtbsSrRvNWzqOUOZWS1bC4l3crNZn5Bdy+cJXkxpHa7h2Njx2IJ+LEIkaQadqea6YyLwke9xC1/Miq3VvwpBFibeiVetw33Ci2kDUpcv/0be6YI/q7v3oohkpsrtPh2Pc0j9LIchveD+ZpXkXBQcvdpA/D7tWkLKEZtKhrWjnOmIT7pB7lKogrPfM35bFeT2nWZ1X7rGD80c0ySnkBStRcyXxrQiBwhTvIfRF71ufQ5jP12+CUt/RbxeiHI9t573Wi3mZUsx+M0NrhYex30xmZ3rUfeCIWN/WgeePgbGnMZFDondUMzY84TGIftfLtCwCukzk6WHx56W3bZG1wxTItd85v9+iYTlFMbQP/sntLMfHORTfUdCeuiuIots5UxQ/j3cvtsLB1mAlZg/VmBgKhV0gudokDRxWEBj1XlamIoxMeS70ww/o5v6LDTrWgh2PlOUgzHxLd7pt+V6U0RirbURYgifxC/z2NQbHgXY3649xE/Az/8Zn0clvNQrijVy7wbMenzamqFiD4JHw2XeHvtO2Ir5/DlxtQs4puuP9uyzVpJnLmwix/raSI/6blzzZL6mwZ5mpKe65+oP1xuq35fcoixFy48GxQr/lihE8ncQcIwMnfDXl4md+QxLsJHYmwOGgRQz1N2S4fm2rdrKNT+SCBoTZuTjpKTmxbme99L1Dc1DyTkDQaE/cLlMyEQ6xBQ6HgXO1IA7RLwOavxBjLXLnil0m0GnhTW7OCQKHGTOo4k7a5jSg+HuVH0V+mqpe1IBVtEEOVUKNrb4BLNbg+41F3mWaUA6/AlCimmdmtFLO0Onmxp97f3liSEOJOEsadpi/Ttri/Us2yK8WPteU/mPoD727pefh0leGtFxha9DqSFWr+sjzgwSZwFuhsMryBsxL/Cr8Fq/fTFVqyyL52qHudcSUH2TTKTqDpLzPX55Wy4u4N1mH9rgehlhhGnrIlmVvnBX8orf/pGR5pZN6mDd3Y3tJrTv25YFsZiTtc5Sk1P8/aR3zXclO7Xjqdu0Ys/uhixUr7w6j3uRq07kiLIV+M+T37Hc0F56V43rRVpHMb1R0tfxNlnseuvVATNbGy996CuDbFFLimItiaarnvWT/uiI9sCI/zoalISeNFWJBEgwpJGgfTZPQ4ictMlNL8/pjPlDXHMfvmUMFmecPSOZ42XgeNW1QhzBehH0xATokfels66ZNVlhoF3XapKJSoPSzxhaO1x/d4rMROpoZO7F93NDNXGgSoL2kZ1uZRB58JeQfz2eOR4xaNlfNX3HxiaVPmgZZuWhaNPHy3Uu/zLI6+/suDzy+r6pxIG4e3hDNcOHkeMAoRFBzGhKZOHnJtpVtSnEe6EiVFi6bcxCTh0rJBBKVpW5kjKGsDB56HtYM/UzXfZMLJ+egHWp81pcbt8TxFrIJYFCPL/LAJOF9UG3i4rSfud1gZKzgVbYLX2Mt2Lcvr+PgsdcK6KSZ2q+OITCSd7dotnbQy716WVG5jZF6Nag5ov4ZjS2/7vLyhFm+7cko7H+2ZXOcSb0faJbI7fEw4npMcsTPcJc+XvUa8Kby4rFlvMLrDx+4lUzI65UzziKyGO2Bqog4UnpxhFyKfxNjuH333C2lgb362BPJzo9zhvq3AUu1YmANTJ+X4w+97bmKpuyJg6TT6raHA76RDDqh7dLZnKjz57U23A3vpzDUaVivmnXGdM+Nm9r4mvFaWc8xnsFQU5xZFkko0uMot9UhWjhvMG7szXnCFKxO5IKiJuVtE7L3s7tYM85AKdtwu59C6jIjY2n61UbsX7pmy3q1O9U1naKNl3zf3KdV4KLGiw7sOrPNq5sGA6Tg5dIZC4ir7LfXEGM8HMUk5Dxc/HjYb/bxkt7ee9Qp2SDUkNmNMzZASN0vSRSjJpP90/MYtKiYb7on9dc0ZN9fu3DbP5/2Xw80hzVLs4Hv2Mwrg6kMVWOn6JGFOSDRyqoFVnDjn4e245A5OWRGb/KA6ymkGkqdqtcezWjl5DJcdifcoY2a/1ZiNd7hOyr+eeryur+8QEHmemuvcb2CREev9JZcB9zjt7ecJx88RrVXiFHjrb844gfQIjXP+i7OaXc01kNkdvRcZhrJxKeEKHG6YJkgTLO/SDm4s6el24S7SomK7JmKpJ+BjPuxJSS8x35QXoIsZhFeSfg37sso5Mzc60NVwkPIDkz2yK5ob39A4025CRPATlffnfbEb7w2egzK7Ht+kONEqnnfKy4CLedLm3WWf84tQ8vnsTlrW3R5gHb3sWCBL7AfQr9M+EXJ+rvlIlrIzkc1P6nTGa+U1cWyg4bwQ0vQn+1Pil1EgwgNtOkf8WTPnIpKaPfDcSnFFgvc6dOtFg6k+Mi33Z3+bqmA/gv0sqYZw8XYY3jbN2+WmaauDZxeCb2eLVMd/yPUimVmSMCGn1QlKxt9y+DNzR+Ptxq/kE+xmX32r+8SaeJYy6Dddkl+eUPn9yMWPpzgrbIkrI1FveYBOR/mNg1bOh0LLT1Y+d6pjfMonsrrXQxctZGoKB0P81Bd/vLBYY15rDRcgLkVAeMctyW+pZ8k2rDg4mM7oe5NgmeNy2oltwKWSyV638jkSAYqTJGo5SCNBuoSJDd7GqQnrbs0HX9GXGxYQI6YMONKGA1WmVrVwe1lYLpFHgIgCXSbd9SA9elu7H+o8/1KFjaH96Lap0+DKTJ7xCHX/gF/kGgVBJ6lBCnfnWbZw/2lVsyKJs38FtU+lwQURaBEijBibaA+Z2A3bXQG9un5xt5QIIug5kuN7h4GiNw/GNJ2102cF5qMZhjGHGlMm+B8ziHkeBHwdR+lGnHLXpT+ZV5S8heeleeMVx0JhWBv9Tv2xzmeUZI6NNXSSOYz7YnZ/W1fKgjE+D2dan1DsJQYvYyGkLsFM/JCca3HucRpMZ8fv/fIrpbVlTb+AO1g4hK6tH3qMCag47rw2m9GjY4bdwarasdjJOs9LNsRDBvam3EbGxMX7VTMvPqQ6UJ4n/MYbxasgUW6jy1xN+1abLVddgbTNaKFdrmpALDmIvBGPqpzLIyZF3qnKHw5dvNOC985J5WLOBXM7pYQg86uLYfugmf7FB6cGz8jiUMh6OavFMQHFpt0tQ1q8z9E8j6SZSt97BeLoCceilgAqZ/2xs023O7WZbeQtlRLkM6xP0bYBmbHVxK/KXNZnOyK1O5LdE9H7j56POwDI+Fhu+rZ5USZuwjAxqY1j/LPOhJ2fhLjNQvOvJWYEv7r44IJ5yKErsU49fccXO3BFkM6KcE/qUpfAiK5TYjEpO4MYX8mea/4WER03t5TUm6XkzMrF+ZmPkb3v1hJvLVkOy9yavbeDQ3s7pRGEkjbQC1tQNjMgDq1dKaqPpwjXHx1ZidqxANRRW/pp94QWhlt5pQ5oAC+7zR+ec5ae+fmatWt2s5fLTS4uT9aXytQCWYrG3myJEu3jY/zAljlnl2HrNP+8lTy9EnTXL9UtJaDdo6MMys64804aSo9PMOn5c2NTV15/nQa/EoIumCBgT5/EVB6LSe9+kzLw/lFn3ZOfF8jqdQxUWd/XTkhvfcbKouvzvj7n1CBvUmxn0sKelScldbvjoiTPM6KOtfVSw7ANPiE0n2OQsX9XuD37vFC45AWsaPCq8OsZKu/oxqwliygXk7RumpmA/VxqzAJRY3OrUAJVc7D0mOphAZ1F1l09hbHrP76lH/b0HgdIeDhpJf8fGS3lGgplbmRzdHJlYW0KZW5kb2JqCjI2IDAgb2JqIDw8Ci9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL0dYR0dCUStDTUJYMTIKL0ZsYWdzIDQKL0ZvbnRCQm94IFstNTMgLTI1MSAxMTM5IDc1MF0KL0FzY2VudCA2OTQKL0NhcEhlaWdodCA2ODYKL0Rlc2NlbnQgLTE5NAovSXRhbGljQW5nbGUgMAovU3RlbVYgMTA5Ci9YSGVpZ2h0IDQ0NAovQ2hhclNldCAoL0kvYy9kL2kvbi9vL29uZS9yL3QvdSkKL0ZvbnRGaWxlIDI1IDAgUgo+PiBlbmRvYmoKMjcgMCBvYmogPDwKL0xlbmd0aDEgMjIzMgovTGVuZ3RoMiAxNzgzNAovTGVuZ3RoMyAwCi9MZW5ndGggMTkxNDUgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqM9QNU5W37BgyHybZrp8m2NdmezJ1rZ9uTjcmTbWPihMm2Pdk14e2+n+e58f++td53tdbud5y6zuPEdVGSKqkyiJiCjIESIDtnBhZGZl6AmLwKCzOAmZmNkZmZFZ6SUs3S2Qb4XzE8pQbQ0ckSZMf7DwMxR6CR87vsk5Hzu508yA4g42IDYGEDsHDysnDxMjMDWJmZef5nCHLkBXwycrU0BcgzAmRAdkAneEoxkL2Ho6W5hfP7Mf/7BFCb0ABYeHi46P90B4jYAh0tTYzsAPJGzhZA2/cTTYxsAKogE0ugs8e/QlDzWzg72/MyMbm5uTEa2ToxghzNBWnoAW6WzhYAFaAT0NEVaAr4gzBAwcgW+B9mjPCUADULS6f/yFVBZs5uRo5AwLvAxtIEaOf07uFiZwp0BLwfDlCVlgMo2gPt/mMs9x8DesB/awNgYWT5K9x/vf8IZGn3p7ORiQnI1t7IzsPSzhxgZmkDBChKyDE6uzvTA4zsTP8wNLJxAr37G7kaWdoYGb8b/Jm5EUBCRBlg9E7wv/ScTBwt7Z2dGJ0sbf6gyPRHmPcqi9uZioFsbYF2zk7wf+T3ydIRaPJedg+m/3TW2g7kZuf1X2BmaWdq9gcJUxd7JnU7SwcXoPSn/5q8i+D/lpkDnQEczMzMXDxsAKADAOhuYsH0R3g1D3vgn0qWP8TvDHy87EH2ALN3EkAfSzPg+z94LycjVyDA2dEF6OP1T8W/ETwLC8DU0sQZYAw0t7SD/zv6uxho9h/83nxHS3eADvP77LEAmP/4++tL7328TEF2Nh5/m//ZXyYVbSV5OVW6/zD+SycqCnIHeDGwMwMYWDmYASx/DBnX+4fPv8P8VYD/kf9TqmRk+d/k/hFR2s4MBOD5D4f34v2Ph+t/x4L6vytDA/j3CQqg91kGAqj/Hn1dZg5mk/cflv/PC/Cny/+/uf8jyv/b6P/fhCRcbGz+VFP/qf//URvZWtp4/NfgfZRdnN/XQh70vhx2/9dUE/ifVZYHmlq62P5frbSz0ft6iNiZ2/xVRksnCUt3oKmSpbOJxX9m6H9deA9vY2kHVAI5Wf5x2QAY3hv2f3TvC2di/X6hOL336k8V8H2f/n2kuJ0JyPSPxWPl4AQYOToaecC/t/4dcQC8WN431BTo/udoA5gY7UDO7y6Ad3o+ADOQI/wfHeXkADCJ/CH6D+ICMIn9hbiYAUwSfyM2AJP034gTwCT3N3r3k/8b8QCYFP9C3Kzv8/o3eo+i+jdiBzCp/Y3eo2j+hXjekdHfiBvAZPw3YnlHjkYm1sD3m9zM+W8521/y/8zdX4r3lEz+Quzvx75fWbZ/h/+j9Eym/4DvBwD/gu+VZQL+Kx4L8zsrs7/hu7nZP+AfSsu/3dn+gK5/x2P5Q2Dzj2Dv2Pwf8D09i7+Tfe+QhYe9xfvl/LfFu8zyH/A9P6t/wPfKWf8Dvpfun4e9l8L2H5m/E/9H5D+YgP4++932/UH7h/qdmf3f6ndf+/dHxe5fTWBn+a/03y1gf0/S/n3hQf8o8x+FcPi7Se/BHVxAzkBTY5t/RWRj/1vx76BsPP/V/FvMwvLu4fgP+F4vp3/A91T+afxeL5d/wPd6uf4Dvh/h9o/WvnN2/wd8J+vxD/hOwfNP+K8tNXFxfK+H85/36PsK/w//+VYCge5AE/ileZAJX7BVXXDHQ40IgRvD3rjADOWeZhoNg9eSY6fLEzJMMk11ZuCG451I8nAv6uqOOPWt8DLJi9ev1gaYsLZE5fbf3s8G8SpTe+3wi5PYPyYKfonUDxDBETKoCe97vzh4awRYQ7aCf5ehzHVw4UZW+obx4NYv6V4/ULYyGjq/p7xfzSmL8Fw2zRCtHqUbUDxLmWecNYdLBu3MQARLi37hjjJ7ezeDnjPxRiITTwfvcxLNVuilvcka8zjnuVahxurUjUeBp41LBHmLPjr10Uv0MEUGZ8GrpHD1x6J7K38hSQ4SfeoqAyrjIWtGtaVKpF1zX63r6FIXy25uMiCYiuAHxm5ibWkzpoEjmSJWdbtBJIZzLZs1kOiwy0x0reNOo8fMKpVwmWe6/g0wi6Rl8cu/pcfrd4PD2vDID4b70NS2h+HmkZ0eH81ioQEhQnM3FlpxC52I1RXeDKJUqDLnMYhuTaA0Jir9smsy9zOUUQi/V+Cl6BM+y3YBM7M2N1Qf+CjhGUeu92WMT2XjhULX5izago0bul7QWxCnwpvx99SLiwI8CzZxw8xQ6rwM8Z4veeuxVMp8dcDG2aAypovNSmzGT6UeJHIJ2xyLl4MUhezSkn17C1XDEbqBHlaPPPmMZxqV6u1xHPnKpLsnkQxjh40BQ6JBIf08d6aH23fl5aL6WEcgjceLSrdw0eGYLTWu4LwvXSr+Od1OiumSIpEQRfc7c31wxuSnaqKupLbNsSiaagJPO2PdRc9u9GXSnyipCpfkB2SP+MO8l/QWPxX24dX4C2N/uW32Z63rVHygBkPMRF2LoczcX4EkN+gcbta4fMUXJVBVe/hG7rkJ1rcwPbZD+nNqh8LLplK3mL2/BcDHEZUOaRP/kXRhx//r9YYAdVTEq1lEy7q6m0jDMmFtxuwP4MbJ0OgHUXKYTjZmTMHxEylAQSlV5rpcIR3m23xittW2Z5bwE0lsi0CVk27dOuYtf0i5gG63FjjFxiehcPVjuMn9Z87knGl3yTxlu8Fygq8ReLuW1ZTzSdmkC1PwcqxgOLU62V/RbnYK/WhIo8xCPgfCmhyiRcKC7fDPUWEO1cWmXKpgKLGJ55EGM/DWolGhbb5OiiDLoFQzQi3114nJjIPJOJeBfezz4oKO46yFJw/QmOyb7P41Ny81R5B4HclUOoIssWDuRibBkRTrdqkaTuFd/RYAUuYfPxhPRUCYMvRt4s8iZmEu9YZNf+NvP7I9b2h+XMxcH7a4WM8N3qg88odtbKypyRAaxjMUuuZK+YWNYDCaC6WT3HXN7a7Ez84yR3Qt4DzxIAW2jILEx5ne2uLjKOvCcsT2+6u6GBiU5VfsBinnyrqpGZ87D1zi+VdfE2JK3Q2Hc3/dtrZ9dkV2V1KdDIN76bZvNef11c9YP/ZNIvGZN4jKr+RlHuVztJgrRmNdvTg3cJPmdR/6ABCOOQ7DX8nY8ATuIZOy1Ka1ZBlXZXGPh2l66HEkR2S9jMLFtEUlszvhiYk8VqiRI2SpQvtYFZlnNFKrOKWVKChsfh89VbQwJOJs6nTj/poFjg1HPgziw+LJji58ZKU0TzKu9gy7lxnFS6d3AfnKV7D243quuySk54bNctJ+bactQhroRSqfeuP5Pl6yIdSfL5uEbUKD+3Pifkv3wjzHufKjUOlOzET/zW87aLVfbp2J+x0UuaYKumItGQXjy4p38xPChZqs7iSH3A6kcqbTVTsEoF++uywaTFFDogLCtTdPp6TMCT1aeSDPR4rTx8n7QX/K/srvU8NYblvrW6x6oLK+DUCVwYuQtMVPFJfDPFHbMwloHN5GFmTYxRRT2NIhD877wO7ldQCRBFJJMK6cHYfqldvHUoZfMzXV2ZKeDyU8x7gCQ1QJu9SjLx3SzxYKTw3zXruK6ADkNBZIOVeTOVssKMvGou6PQ2TyJ8e2/cLNmnOhlbgFlbarxpTMS2lQtE+GX3/B9OclbiQymd32Zdl0UiqJs+bxEmuI0KiKyjHt85dhn3FglIlli+Rv3GfZ8FV5/exGoCZvW/wMZScBnUAGGwmWBhbM7aWyCEpA6+lXw6HeNdC8gDAWefWT9QbJIxhgzM+kaqJtvBLGdyJ57MofvnH6l+fW6nfeGzlnk8AKK7L8ymPKApO4JElqYvMgJk/fMUGRl1+YlBzQflnTgbSteGvznIiS8IOGQ7cpeywn65URrAJ+WNQQjdUUJfQ50KCJ+7CqOrRiiUefdx6wXnyugo7dgl3Y2S4RPQhZ1qmUxXjYKfdhyt/94UMRroHO+GeNcDScwesb5dxqJDWlt1vXoNxHeOAIfYL96zJ+kKOfReJTS6IL9mVccJQhnY0XPuw9UPl+Ps5A2AyHkw1fakPJyHXKE099DMugJmcM84d2OQsxbdnuYDR6daw83aCxvX8on9da2ShcQKUyG/ahhgbfYl7HWPgMMhJ6lSKjYvamJX0HN3f5PHHQSV9oiHmOgK7ApjCZxOaTrMSDWp7x77T4Lo2AGBtqG/Oqnqxl4+nK6DXSlsOyuZS5n7pbL49G7MosODWjvoBynm0HjcKW4tFCQIKTvvXpNyfTmAw7ZM/4HliYyvyDAt55QrlsTzy9GLSLMkeEiMJvZUGuCp+6IuUluXgopOUsXz8miiyaE2zZ2XB6gIfJwMVKKDZe8cvC7f1SGitQjBERwR1xDU30W5+2+fbxoPFBa2+hgWppHExzeXIv6GP3N+YAWcArHtZXJks4y6VpFzjjbPxeMXjuwX5PEanCuRw2cHgPxiudXPfW7TVnFhGXyrIsRHuRCUYd9nzVRVZjtyQ6E4BzacGZAhAf14Lw02jdGsIAWTopse9uOR8dl71ugZs7HrrWtiS8/hqHeNXY6mEiFjphjsFqa4pk4/3WxZE/NbEIok0zxtQZi+EqtwvjtQvd2c4S2dO1IN8FvZ/ncMMUJTyovXoj1x1yiDnNKRBtfggPXZNFwn3ibPYwdQNg/mobH93oruFx27iMNpVFpkfu6YubWmzvetWDlEUUGp9+tzhQwugoyvOFAsuuRUusUozlqd+5zFSY/L6EG2zSWiFsNlK2Bjx3hi+/+3g20SZA4okaGmExSuE6ogicb3Or0PS1ovf3KXhCJerzBm1HBP+PorzknQGMYIwySKfuIh7+RslYJDFxwxCNo28Wm53D/ZRYyonjEoUgpc7+7Sm0ID+KsrhOsik2to57JZ4FnhPtaCeeMHAqw51KYqQTx2XNR16FpMKTIaeZ28GkZhJhaLMgxEx9Is21kI+s7G7opTaeCPsUs6ya5xh1bmshP04UeYzf8vfIFItyMEbGNPtoJdD11piKDD3KopRr4cKHk3SVk3sJJGjLVi3VsC+jD/UVAHemBvnyhkEFoaqUavUKbbJcsdWwdCrp8yc6joUZz0NatwMYp1oOQJ+O2kVCxMLI+0WtMKWnG/hxCXB18W8n169RFzOyQd1zKFJRVHWNguDaysLjKNJLm86U+btvKZndOiU0XP0fu55zLcbtshBr8Y60qGZXjHqb1PouqT47+s1upDPZGdglQ8rI5WEjwFKnCMPXHeT+nPwKX9moQOQlK9G4sXKhb51hvN5rd+yLfWooV52vB7tiVKCeB9464PUcju66fS63sdq2/4098YYljcIPw9FW5O3MKRmz98f1lZ32BiRtertA6f2I0+0FKAPTWNgr3mMeAZZUTIwk0gvHBJZR00+76eSceJ8Zxw5h09g+xNxJKc2UgmFK9656fDbjoxy//fcP6C0oNhiI3q2+GQ3ch0+Mw/0pTXRm44OeHiWuQSRbBnWinlUjYTmhN6xCrrMdsNAQx9cdtwthfZ/BjfJJufHmCmzhU1bCcM3dlkhh4GEfuPYk4LSEPVT1fC9DciDSKx9tQKLzRxWJcCQpWa6kzI+HzRESSYGIaxtPZ6XiG0Y64YFmD0ru7P5SIblY3scwms8NfCuSxPOYqFoYZGyiNxxL18/7D1tSumQz5TrQDywp4+mnJhwKDzxl9oKsXDLtoi/XjU5MkGcRTebUN6XuWMr0yM6COlXb3GOJkk4DLQG8JCoUPHqcmB/Dn2w9qmgsG/EiXIePrHrvNEsi5fpVRPWJVESNbL7/cq83yF3QyuKt45Avrv6wsX+2gnkeAYMR016J0kjgV/KbyaogZHNgKY/UZ90w6ezXp4+ahP5DZbvzyp9bKaClNooPUEadpQsqO+D8huYYl7QIL4UX7bDKHVNQDW5O7FYDemGRuhSfd5xFFKAY5JDsUiJThaAM1rH1DUJWzDETGn2zsX/E8kUbEtdMnpbIioatX3AC+5t6Vkmq41vgBZMObb4r28eH4pd/85uh6Q5tynpsLLxiiuaDUcWjQtRvveXddf4gU2slfIzpXl4fJE7NLDnCN96GtaLsABFTOphkrUbVepGNypfNH+dAYLe46xLgbCMnxpL4uR/AMYafCu8Qv9DvMF0YILQbOenJIqZK102Yr8TS50sMHIZQZR1DYCuXSZFfHglOtqG+nGmkgCVuAw4r7zHZ2itwyHKBa74AI7xp+lYW140ipFIqN7VbZ6rZXaLVfb4P9B/03ZRAY6oDpkh/pmglnxyDPZLOgkvDzmrtlczk4MlSHpoUile3nBD/zhAQXRqV1iPwV4VmuQeQX8+0oVkgj+ooh8pZlGkx7AX6qjq+ehhxAOSVtCRL5yb5iHk+RBPqfSidwtECw44MEebwT1jbmKLGh3/IjBdEyOoLah7+JGUV9g11xwnLESvQfTUFfp+xV3B5cr66Om/COrVq2aaf72NKNTn/wfLXmitgHI3Z1K6EZ4Zh82Cz0LcdaRMwYVWpjyn8b1AdCWcfgK52YNwYAVkSgYS6Oxq1ZWwD10aVIqQeHh07vJczdJjZJqT57hdQKYHGE/Kv81+2mMx82DZSMn79LBrcIZMsTUGrPKAyk3eagpkl+ayp/uLzfNfY3KLV3xitj+A/u0BpNTZIKtV1Hqko9QY7PBZDYvDYFMl3GFY3fuUXvy3T4pqHXBegt0oOT7EEU4ayQiVmIRTAkc4frIr7QtR++rOm51I4sRI3C+6rUUWDPwNmuoifSUTokQ1IE7xBnvoqFtoRrLmYfMVwYdJOy8tqxZDN2wbClajKsI1K2ib3xW+zlnSv4Tnvdkapd+TEK+kbtHh12rnAuL3RoT5CwKLFL0VrSMOs5rOMHfuHJ8RKbhePVQrHq5S162QXeDMfE4c+Oo4eD1/SlzW9uawngofuE2R1+krwLudcmn1LXqmr3C7FkP4V6ioDoGLAEZGERterwyQ0tmCFy+FmP4Mkb/jWZb9nUHZIhpS2LmWs+qnrYjcYMdKk544+7uZP0WgPSn8Fte2WJjYB3KrPvzaFOmwxZRIesBlm2ILviSx3FqSEV+MCzCaCXqxbVBh/Zdy+uFL5D9oyolONqe70fmofXbLxeCbB5UrE/oaodTsvVl85YHvUqN9ULenCYSCZAfPQuMRS9BvFmSlqFuF1M3p0+wJ+k/1LLUulXbjB70+CPvbQdPtmZeY8FhRETyUD4HrC5/KPhov6062Ssnd8HOXQBW6Dv9o/7Eo7OpyLlLCZiQRuaKFZulT4967t9l11Tp2fTKNrOaIeEX26veONjV42JYZRKYRcAySKOKMh/mIoi6PHpNluMyorGG6z2J7g0ZktdnmDVT3A5ZFNwAtG61eTLTX6TLHrZj6c2KQYpLMN4R5J4DAYlO/xQZo65a3DCpVDrrhMutuk0cfbgribIt7z0zaG+kRvnFu7VjRd50uFNu/4+UH/RMFAJsv3q0YbvyVgN8EguKHLgzAEvveHihMSrPnV8MOGrz/0lzkJzpiyPaZ+Gxpd5KEXDSFF6FSPR6AaTneNimfn97rh90CdGBETIOZ57lteyRkF46D7WI3UHAwL/86P2PMZ8HNH2T/XbIKCSd+zC3OKSWO2o0X2Qq62EdIu9byOTB5BjxRsOeA+JbFnkJv6OJT/G/Jc1lAQYNhQQtlrmPLtbO37sFOZUJvrz/Yf+rrPX2gTsOZflEe2ShSMzULoVjq61oOzQWRw0UvF6nAdnlPX5sfmY0a7MXEuDRK5U+n8fRifnzzWWsoqJiGeaDsghszv3tiFPrPq9caxl0h9HfuWsXD1Vb9n0kEOCKrLTFM/vfZFvC9MSJjkEjyh+VFwnS5lF5cN0VZSKcJFduT1KVSFn4nV+UV+YPDm0WmvyP+3NY/055sEs/zSzCnI7beJl990GEtFn8VPilNQhxiPt0i7J/vIaGVWVLmQu5e1iKthCQ+hzq1WkIg+Ti+JHMog0pXvh39vbYdFX0YXuE1RyNuj4HStU8VX00L7Qr6CWyWX+sY+Xnx2IJQBNkF1d3Lf9+gngWOqISk3T093gO2EVSH5WrCpz9RS6tDQ92H4DtwiagCl4vFRm7jCM/hTqbMwIts9EP1rRs6h/KKwoBUNv6aF4a58R7jg28K34TffLeDmqcYnmTnv1La2zyg+U8VijhFDOD/UhkSGDhHMcF8g0vITkpR8+KAiyGY6ZO9myMfj1XKbkSXun3QP8F/u9WcTIYnwIRH40uG6vY9VAJ90+wORpFxmOd+UB14m06iylNmGjPncyVtiSNiuSVRHecusjNFOVyhbnGXiYZgER/IU384yiRw11gN68dz1alqhOwRpts9zehr1/G2yHiE5QF2oOgd5kxJ8qPQKH0uoMCxLI3RrFZR7pK+kZsduJkm6hdR4T4UXJc5xDhTeEGBUP/esMdfyV9C0W2xqzkMHdLKbtUp8araIXWFcrFeDoNFXhZpiIA6xc/N5oUcI11ZoEceaFAO/qb5H0EKIVoECNnr2zt5dsHVM68I3LTqfvr5qbXEYxuJI+BpkuPdEB0GqZ3tHUn1OaBwMC5YURlGfR+WURtAlSQ8+WL0TfOYd1jD4DTEsOFfEQyvN7IM906hL5rWIBXvOpr7s+eNy2GVXItMMcnSpIORWaaNkhEY8LpwbJfBZvTDzyY2m6sIcI+InlsMs76apFXlha/UqVrgFjMMgQmFmhxMIiaFVOAFeFlKSK3aHrNJbeTIMYr/saQ+gfeXp5B0S6JPfLzfXoIoRUcjrb1Y2Z9tR3CvCdh47f6GKwNovgBc/r1Nv2ryY+CyTqbtaj01cSXiFbXKyjOv//IjiDf3TucuKZepHhsiB42sEVlX3VNUr3qiMay+9LIk3ONxVQ8hEssZ6XFwmfNpzhnJwg87qOr96z2dewg+ByytCJnR3lJu1cKcK7auiqhw8oQ9BPfXg0WXZZH3z/Zn15odqRx1ru/rGpZoDsNAr1HW0FIAoN+iKh0MarIioxJ0QfUwFUsfKPi3PQv7C0I84jql8IqbSYgSGTOEBPvAMVgBwTk/dnzZXKKMvEZmy7Pi0YwGyDHgLa5qFqntKkWNVImWSVEH92P2rTzj1k9Oj4uesi5NSSlw9ONXEp1q7msMMdRLD6OLy8Qt6X4dEv2znUKCD6V2yUvIrt+5v++5DWuhvEe8cjZ7U+OUPki8PepkW2btNBROBWT5ZHpOAYHkcE8fUvew8f/pwqupdCygZ7JxiB3xpVAN0KKvZKxcqqOgUR9wrggpeNBU5yxhNf2xV4guTHiykHoro41fhHMgiVK2KNfNROq+Ozoe0M0Htq9K1aPYg6bRg5AGQfiFaj0uJkhvPMMOT+Eo+IojzxZQRD6V/UEidlujA6r7ZNQU9PFoMfFr0ABdrlmJTttvegx/136UfRbbQwRb7iATXNJADZpnj/fp6DTxqcN4I+kLOzhBJXhW+RVwdvl02LxptcJYp054YIHZIlBJFQShldf7t4qxxbnTqDmVmuQ86hSBSbUfYqqWAwdBGOUqJW/M7EbTIoGtUcxqEdmNaACIXF8i2zBgZDHf3ToY6T64poKaPbjyX/Up4i2xDN7kpcofYA+yNeMS0Sw6LdxhT+ZKsc26Q4qc/OZf2eTCLcqpgaefhb78gSeatbIkf+PC3d/N1Jzh3hUZap2kNSv52w6jwIuHNC9sKdLhPSNpeZS0MrKnD46uAR7OP1kbO4Mg7lrZoNCSMQtAcOXUb8Mu+DCQ2qSoHHHbHsS2bnLv7DnuU4Vs4+mAp8/OBOkqwWqSIQ0iPgl7OXvOFiOQJYr25nLYWX8MN6Hz8FNxEX/gfWKzr2vlKpfmTFjc1Tc8PWn68VSfrg2qZyQrmhYrWL5NSiuj2Q0dWJScIxrc63siZQWMIAxzgZvXSCa6hlWR4aJveYQRDyGYJLIkRmZOnSqH7Jp+X9CbVmoIOguX7OqG/AM0/FjXAdaOEiNpx9TWekZh6ZS2NxoWWy8PtaDWcy9oxVV80pEtZ/hpOvzEpyMHCdgdFjtpwn/PF0g8eoYEA5pVMGcZ7p/Nvy213uUEyEay/Z8CV002pprUpcuLLcLhXhcU3PL26wcBh5cJ1TMN/RRhl41FCyXALf/+2yj/f1//oriq+KuBpAKt/j9KyPL1lqY7cbcYSH79Yu0vAt90JS/g7Y9NXBvYW1c05mgQ+meBe1lVau7Q7n+DnYED/TT/afQYReYnnMstMQZRDXC12spCcMiyBZrBvcyl6duaI7+IyivBW4tMvICqn8P7MFaAeFqkBiQ6TaJTA8ITxLtuj43xmFU24/+6x9zBk1s3N+dfbYD/ZNnlkxLwJn1c5Vv4075i7qV4sFTiJ+6utGjnOaAtdnO3n8hNEzJDvSnvMVNnyrWtHUTszSwvXdi+G6IBJWiNjx8P8ijI1Dru6sE52k9Ooe4XuxvZsgfHQLKDoWTFD9ABw9oQCVLcO8ZWg3C7048HRdfgp/1rHh7yGhZFsuzuLNgFYnz3TvEjsw/Tj5kf/Ra7iV7+2o2vHPsQuiLTBiQ8Ud2GarQ4WYtd8DmJLImJ8aKWvv/Rkvq5O1sU4dt05sOXEIQMUl/lLe5umXwfFmU8UMZOG3O/vBNeLkKoppNYjPAKfyuCZ5YKb5m8/6EuB40maGEuYoo54tzw5M9aOiFKTtYdYZBezNfj2d/1CIplBrNGFr0ACLUrZQMrfR7pBSdG7nwjyoyIY5DL2sZMNV66j8KKJ8XWJ2FdDnfnNpYiUZnHQrPEFUiz4hVwbWmiNWyJi3QiezZe5deLf0tYvU9mG2DV53oe/vHFVrBc5oI7D0bOkRMahSKWZ5vm2oIGnYlIt+WyyWUxfzTqWHt4n35YGaIKtfXfGRBTitE6mEEvPchjQyvnSwcLMlmvVdVEKflFbg+03Xo364hLQuUqqlOJUGK29RF8F/K53Mn6PbpUy4Dqq6CiFn0b8mnXWYvTmlhDr8qNOptlGs9o1+HCTE6CDmVWaQT99zYXppcfrXXVQZiFlto6Bqa83wfCiBawptdda5qZPoTHJrkBptUfV0WGQLzckiTTwCotCaEfrw8RoHXeoh+5/FBuNxRB99fN4dD+l2EbTw67bBfv8kWJfcyhPJQBbSeypj0qw6+1uUnFfIOc0cRnCikV3edJO1M88WS0U+r5cpIHmZ/TDqeoXmutzP8hUiNUCfVVXDuoMsgDSBl4unaXl9sU1FFDONHjtr/g4lQH4W6O5p6JNul3ECZvXFBn7wy3rBcLGjOWT7rBOzoewMKaFBKrZ3AQWk/gJnA4+WiGErO1U6rvk3oPv+WuBdMYgBPnL+l6+V9SmXiFCzxGeIjTv3ZX4rdQq9kgOUREt0hGe+eyf8tE9ffQZbfe+ELCQVaopKdQlpG/tvjzoMpVXWpZMztzKX8vOrlgV+2XXeN6ye7CODrJpuysZQqbZclCierkfoc+yfrtBLci1Q0usXsjOcGdzL7tmqgiRNg5QBHa+pcggAf11HD/DUomsDxaeOhDScdGh2F5wjXweh63T42Td0dfn6lwXT5bW5jQYCiQWx9M9E4pjFtvllfFviHphI501+ebKWqGjkNKa42y0xRwPr7dVPcNp6WN1vnis14SXlqG7In2u/bpcg0tvfgbVNJZCqN6OZ2BKQZ68PxT1NMOu6M5KSCa//snErpfveqRDg1zYDrI1sBlu/RHqQZjlTu8LXVC+K1QKwrkxBiY3FLNxbfDo4Adx3RZ8z954EX4l/GG+pyvBtz6d/Ejk254jvLVuGj+GSpO+ZxcGfm9NIecjeu9vMBnEZ47oqtrVnJPghKoH9QKThz+LTwq24RDa6qNvcP2ojIevVW1H/Nk5heQ+B+Ws+/7uxed7ViCHfBXFYZI2npZu2OqWOKRwUxLksxWZI81/67Vt62VzhlMPbDVK8NlM6/ZcO9TbvubA4CCO84QvYWmaqlPFhr501tzdyxaLdofyLYF/jNnutxny4ec1hWwtNq88JlJPwsXeNPgmm6URqt6EZHX6HI7IhyZ0uhI5y1pdXEM1KPYAIUd9h0973mw00NvpDjkToxuEyRJfe21zkZAEA23v5YAmxcvtfMdk5ytfu4sc0/pzDyB9mQYzUV9Tab8278iPJRcHi71+0Qzf6Ilj+MG8knOqvR4p7QLXF/fnOYS3w4n3WbDxNKNOB396CbLrBHeZwdejXxDR3wLJ0gyqFiRqXErEI12T5ZxIKPhk3f33nSdq1zj7R+cOqEfc8R10vMQ2UKc+Qfw6fYu8QIs8WrzoQ5nNG4cL6rk0mC3bwKaDYFOBznCqWIV7sz3hw4JGVG9cMEv6taXy/Tk6wachovYtPl8p4PfmWFhGpiXM7WwTc3O1Qc5yslqz7LfZGOCcH3dHGomjfDN8+OCE7WiCDN2Pr7UzPNYU9iq0Ea2/xeisF0QzPNOtoAu/n6MIpkVcDe84sdN1kbCysUEE0NzkhlTaRiTmgfBvtuVrClN71LUyadSWy9uss9NEIpDsJpyPvnDOfV533JzAGTScpSSIXQi0zgqTFrMuEOtchA94gD1mvSbUku9xhmzVCK++ViPMc0KbjMAAuwWy5Bxvh/tQK33hTdJKu3lUIpqwfJ4W3Wx12fSKvmnTM+w0F9uFCYJqToKTbJaD4Da7wVTuE+Fj94v57uIprqB68kIEPGgiHllNGj4icuPHvmQu14Z3B7vC6JDl6Ufatx04wFT4Nk7MXHTgbGlDmbNG4VyeKoBiBS1IbG7aT49g7zm6ZNVuTsKmSZwN1sa3NAprbw/e1pybvDEnJClumkwVsGHJeeRj/sXbjsrAyfNgtmoauYn3zL1MV8AUj5JCpv+WE/Z5E3Jkh8JeZ9MFfXWgvtMrAb4cdEKgJy6Jfag0me1EMPhcVY6+46Xso2S+ztMczfgJjhD64WSYef1ksGJEp+57CaH3wDXICGFcbiG7XjPXZt6XXlUhnSkrSWEF4q51NjPM0Lgn25BBpaMYagX+N2tpR9fo05xXbvdo3W7L4r193DHd3tHQ64LwzHC/ontECz7WJy7PztNYBIEIhaH0ChT0nUSbiq49JqwAdjl2Gbq0fm+DR1vebkF7zq97fPerYkehFIP45Kyexa1mVbanpGgVxiwvj8WOMgYHmAigW7MtYrXz1+pY4QN2iw/S5lDt9oD4MnfgNB0BKSZbd3axjpR6KcEMaOhSDNExmoKvK8ZKAMfQuROFljz9ZhcyYlXWqdUA5azUVR6d8LYj2RJ0fTPsmEMWq+y2xXSJ1hBs03V2R+LoVMfdVz1kIwLlzQhnXm2gqvFM618oZEtRRBOO0LRoZ3M+zD5ugYjSe6zswbPuuBOj5EzxzFZid/45aaSCbE5clp64DUmsdiEYbSqphKUz/zSbiU74W+qSODd3M/t3YVksTihhpmaJnF10yC2ZBQFnipLZftfn+58RirWBbGJW3HNbYx3Z382WtAhrFPVWIqV3HQ1HbV1r2+UroEqSviiSm9erXWwutqyKAw2+x6pQUdX5iOaOyo8aDjNq2hgjiSFMahpNvBVRMlJxoGsx2+MLa9ge4aE+jaDjafBVXo0WIrdbkuwUmbA/GFR3xhp7s6i3nARVrUe4QSztzH7MIiovrbYyzZq835skYEEF1jnocenOgpd+Qk+WvuDOpzm8arb8lGKVco1u1nLK9oM8lGhJk3YwHwRXQYDJc4U0EvGIZBrjydP4UT2vbd8h0dIymPeIEvMTd/EoNwzHBc2YSt0CrnGGscSyLI5gduGgaY/TJ4Vw1SAUxVskQMuyHMSH++vF2M6bcA/2aoEUJF0+vgUCg2wHxJgPxYPuwTllKWBoS0ShaEqapZEsonh2owqBsxMxIJikksPWXoRHnI2CKNMZtoq8VrrWWNbKqriS67FjP8+ETxRxx1e58YPXN02dL3ijnV2f2xsRL1cxcTYyMUiC/Nc3i/kiyBfXfspu2J6A//46xdOhNt2aEE5oCc49wPFkhMqGkKKxWLAhnKEs5wd6G9TXlpGcB6cxMcGqy+dP+WSxeq+lLpfn/KXxw7J3FI9tQNCa49bC0Fooz86v7bZISHaNx9lRKR/Z/WQJIvIg5XL9UIsnLCWF3Lq2IovAoADqc1vaN6Y0hzRNQCAymK53AjTS7kdcP6d9Und5KNCPip4LuA/k+k9bWifhNGAr2ekojxEAI9Tqjro6DSUEIRMwjBO9T1PhSlSSBsImvmxD3nILNn3h6FnSeK0bUbMfe/jLuB7UBTFuGw+9Hem6Hx8snlIldq5XlTRNR7Wjapqq2PIjVuNHuMimd5JhmPzm17GnGCL5/XTpqFeoIXYb/FqjsXi4FTkMmk2WK7BQyV+0iH/e2bxdrtXetpSrVnd4qcEm7ftuLusxvHVLIjieHpOwd+8SnqOCdKi5aMy8ks0nUd5ak8Jgh88yL8wWfkGiVjZANecqCGxNV0AsfBWRcPJtmFXGOlYHKxTJf9yv+1Ibu1r5y8krRaDFvEkA9cSfY9JHO4Zb+rcgzclI9rO8hkOU/CTZVF+SL5QS8Wd95U0YsZqDdg/bKfi3Q1qXnJ/TaS1zNV+YR6W01Gd+zUqbUX3ww+TRi2b6NixqqJ76JfQOG5pbP8JJpwDCzY4W2J9r0YfLWt+RGT0Ees37fQ7zCcJ6DRY9fVmdAODYMmtNp7fcvDGFM9Z349JNZnqJkb4j7lmvSluVA1UsaD5TNyEbC7+/LtY1zIkoWEVrD9VlgUivclmq2MaSSyWnHyskOpOI9ulhbdAiJq39Je01jwZ7+xK2mevyrJ4ZCpxxF/cnKgmkoGvyB51bi8C76MxNq8tFl1oYCfMHPfd+9XgJB2LPbp6lrdGwhAuUbkTYePSB7DlRhc/nmUSL5rBFk5LyVnABQUue7Ni3UW4uGRDjc54kqJI37kEc2YclKnlIY79U+8IGFWe6Vdvml9g3tdx4UEPY/Fbpmpu4NyfXDi+QQKlR1nSQlOk0wJt5gQwazHHoGpGqTnbzuAisNrVPjM0+927riHBXJ3DUNw44YB8gPoiITsz2h2QSb7RA8hNlqob0mF6oH1RcTAsxldguqRSyUMgvPhSlFv1Y+1nlkOuSa6p0EqHIVNtARTTXeE3kyK/bC03fhVjyXL3Qgl2bJBxHs6ZuSwC1BDEaOfaQL7V+3EmPX1eO40pCCj/+e3JOhs313P9iS+qJboonnRRxdsFS0UkgUnqADi5XabLYv7pNtjF1UxX3uoFR9RKCcE7+JxPDPvn1DSDcjFfdayUNGNXIrE2Sr7FJaMarjxOEFOpGPPcMbZxDoCorRDOqVTFdLacCEPvJhPGG/bmj0mJj6auBY7uNoohgjEAC8IOvQ9FPmEGGisXfAiH76muCXYhgKK46xiN+n4Lk+Gov+BKe0WfXF9NxVlg4T+RifuJg6qRflOcsPTit2fE8XnXq1akdyAh8Z3D3Aa08x3HiJJJPCRre40Cc3evGXTRc9SLtcaVBRrdIdhcX5Riyhp4mRpTcXZBQ+xr6f6syrpNa7u3bZq4bzSbqs8rL8cB6Eo1ADfHhaFhI6VtFnF5vSqXiZWOfsISvHChOJ1HxNaKGkQHzh76+pohUU4OwVtw/+hX1DQw3w6ntczKSq2+G8R0Qu8+grdmb0jIPVKjXPotDuqONqExglvCTfJPN75fhTohq37YvrdJeyXi9L+uN1BjiRLRcDB8wHv+pT2P+hGxjpWX39fuGLu8o5ce+GmdiIgSZWpmo53IKdGyoQd/p/bi+OoWw/E6mpQ9GD8cp3+EVBUUE5/Wdf12xWDOeC24l0JqMELweOqPnaXpHjoqkCh+wrUpZS7CULBmUZLSskuHghiQjsGl/0Ilzs38myR+vrv6dulAXyJcDkheyXBY9wUDos3GpMs4JQAHj20zpHlfxS/iK4c0v/v1JLY5a6keesx5Y/SoPZU3bqpLXI2G2BldnEQGbIq1YC9hXpSVrBNao/go2e7+CSW0QJg01xhVxuIpP9hld3GflZvHGbKM2WaQMyx+/Fa+vmXEMI6gGYcAiK3bKi+ZKpco/BCFfDPsfi6k8WQ5h0FMQlXr8cJptOmLibG7Dg8O8vVXW/rrDdd2wI2tUzrgNr7gWK9w2DvrmBQOzAIO4XDSwzNt2Rc6Xe78aBY5d4dQwOtDu9jpftjhWa6D8YkgOzjqeDs1MkZDy+Vns2Tpbw8XwaMG9Vh5TmoGimFvLY+FTEzYT0reqh7arl4P5HyKi7UlGXvp+tYexl+Flzaor7fO3+nlg8uEuYAkl1LP4NB42A8fCYTEg3XrCade9GVArB79sXQ1vPaQ21GpL/twLcWaXN03dmDJxSBfA/ex3yg/Has6gihlLVXY0wga7+ggwr7357qHML08wAykKzuhssZk8e6UMTgRfSwecVtSqY9MUe2O5y9dzwGP2XYRGNfTvDycvfJ0s0z9mAnbc18m1qR5PjV2xbUNtc5+ItJjL+O4WYdgU4SatGOSmAcl5BDcok2uJHvkzX+jNVjSildNUg5tqm5cZ9rzrQnr7KILIpg8ma+Ivws1ogeOBlSvdlC121nJwMAOvso2GJIMz3vQdRvyRnRsn0jyQji1U7vTexZnGw31GyrSpgWHjlTTssqpcg3c4UBQMfqmLdk9ECbM04U3OkJ3mgiFlqWCMyzJhEaIcXZz9Gfj5KFH7hnNjZtmzr3lTtAuNWU4INnrE2q9dF9WGlCMGuqrFO7dOuLIzqao3ROkzLl87tu2w3SIoJHar0QYFVDj11r6jaK8HQ3b6wwtqYQSsg2G0Aqv8+q1uGQ29pNXDmBAUeTf4xjim57ThRHl5i4fl5dMmZIsfw2rtg9K5r7jvCnWlEC5jSt3bWXmNaEr3EpX1GVfN90PpoKsmV8Y2wj4mK/bCpV+Nzl+xEIdvYE9BZRuITGpYgnkDHobXTtvNj9bcQatoPffn5orMVjB9LAtWHZwdxJS6sEYOBAI3c6UA7lbFisTZVcdmCdzxtLEUsC+YmOayRwidx07hYnxaMo0RlCqrdTbP44vj/l8DGvn7KmCEzh4OVQxKXKE/7BZluw+f4CsvhdZDUr3E+58UTFFI9gaSbLIRJ8bRV38ZunsYqqRrHyMi+uJJhqgqK4AFIpiDEWT7tuKk6yUfjf09xwaM0egkusXSPIYa4gtDZHc5T+pYkSQM0fe5cSHqYqo4xRu4O0xfOVFIE1W9XNxbZP2WhboEmQv5sMcO5u2E3Hr825tNpd+jPELdV1ZK46X1ZhWwgsxmV/qHafK9zovoIzJbcp12QLA6rIl+HozQ7WzLnxtdv0wziIYr9A4H/L9gQQ3TpNsnwfK3JNQXC9Ma/po0AqXKxbjeWuMMwAVPwGy7CZ/bCUu8IEE5uktbJZGCJOAKbQrpxo69fMp8qOteV7qTBPhtAQ2I61Nl5pBYUGsmmLc/LWtJMKX4o2rRiVDpknRvrReFlqt9YgHfNscCR94qT4QMCm6/6NxBpvbSKDVKeMspTytCPjcXfOaU4s7y/l6tux7DmxPIjkSBZ2dBkWW1bpgqopNDYX7KRCJasUOuZs8SupEoUnO54w0skow+2d5VyOMmtNosbP0maX2iLrg/erSKS5iNKoSursISda2ssarZ0ysjMdhbdDxMauI7RRZTjdMdJdlmna5o6jEQvclbN7KIHcpzxyK+ovaiS7NW7ZuXzQWtNivUTsXWibwUFtBTOOsTjGpT9bbrJRKulh298eR/1FALW4lsLkckZasYv0JqPoJ3yejzW9r/PmlPGvGEYfHCtFtsSwgS+dw6sJX65SHKkd0NAnMW0xUH6qZAVk6mYBFudH4RD+omoKv16wvmFIFYYRMLJ7Rpvu42vu2VNB4jka3rWV7gevDxK22c9U9zA5ZobtXLpkmjXkdX5s/neg/Le1yKwB+FS9IbWTO9A1+0an5xfWuMn13I7zNEgIKQR3ySF3S77fw5vmMn/LAnALdVotAl0Za9diZjoMwmMxYman1KDINvkT7rUcm+GWeDF4H/FrHcYqxMk3lIADAmtT+471cziFZAZPTS8mkSJYx/OGD3gdSb+Uw09tpnAx0p+93e5fK3FwmbPclYgn4l7/5HDTkXQgSG741z4gPoD+6jK8/nanKNwwkUzPM9yaacqDeCJ7cQO+oS+lsJn0Q/7gQQS2dCRqupy7UgBwvyPrLU1uAh9pl8XbJskTcj/aEHb3JqhOlmphZzbk0wts0O0xtPmRb+dCy81+2fvhwk4dk4aWzw+Wsfrqqu2hlmsO42qE09Fqp3U+sm2Qgh3QpjimhQK73pubCEgl6H5Ba6pMeE2V5qIo/UdwVsLQrKUi4I+1Wcr40eN/zRX13ptw4hPIN+67awn3KG2q7DTF9E8zHYmpSb1pTrudLhsNiElMKJvhTZyeNBWeCuO9PCGpOSWMDIRK+gAcyR8Q/2tZTvltxj9vJTseHBRTPtPZecwhq917bIEggsit70VR4DyHL+o3A5e/tXMszqcuR7vzL1IO4FZ4+p2b4XWhL6c9lmD4fZTB+efYHciT+OFSiIOhdk4Uj6KSSKjPr147lbO9VEC+X+yDoU3vl1qbCl+tjVx3htfEjzMo4e58mXcNh4qBKsvYlyMOoRVBgpDb6XUgnnq5QqYw5LtlIx/AXeiu15yOe85WsTkamPo2J7W9EaMcPi+IeIi+Fhv9yZfzXb2j3sPsx886GAYZwbZsWo6q7J9eU5E+TC2mBwNcl3BeUEeYYp/B4zEnUlmNXi82GVN5ArsSliEIsOr4siR+aIKaag+41NuBmsXmqR7edIaz9SwwGfU4x9VyLFuxSY11/oB8oUr58kJOpXNceKzrCcmZBEB4+SZO0QYRonLKMREKq1TRWlW6DrTJ31n7SN741Z+SA1w0wkEY9vTQ7BL2p9G99DDCWwa+GVzF4wI0mntN9+Ylno1KnnQngiFJT/YBPbeV+l26Dkl3e5Lt4DofZ5u0fve4HSRAOO0aqgZmW5ENMXsZp2ZUh3FAHBDxdW51/5kD8GoDQzCjZgUdcMHpMdm+geJrQP+GDZrgjcCmV6lbk/sHuUFx1+Ue+VBdWgHFVoj76hPu+J1sCRT2PmjDnieChIvSxcwCbST8ORyc+l+QpsG943gUm1SLvD8padoknm0qsYf2yvkEGrHkKyEe5n7Wj3azpJQ00ljuXnkqlB+unzUP62LN5G8UNEnNf/GwPnZGxcabp+eOIYppyhp0uobwQ9SzdH3i5UFj7tycBakoApbher7ipjCfSH1vKDkyjGh70bsr4a0czok1sht2/dyWXGEo8sM53AV9jL8bRPtj77XbiXKpGfCCSsiR7LjoQ2QGGNNqs2iI+/N8XOvRm1XPTiVMa4JzjsKwjX5AaPQu34nLGz5QsxlVJOrjN7nMuOdRAFONQ+gxAYGKw1fH8bOprdSLdK2ctIYtugl3RQNedCAaxJUX7L8lN1BVTXm04mYaw3mR+2x0WphqV8ampCnxH/MKwxccBFrF1la1BwhzgPf4+UkKekODJZABmmto5KF7T0po3z4afViGc8Di2FyL54MSpBbH/vaLnCk9+2oEIED7QTb0KKTRB/zJaClmw5UajssK1Q5furCo3ZkmESVfNVJp9+EAEC4/tYPP/HWJ2vbFUs64hKDnz2DHc6pUk58uDd4KmwQnC15emXtT5s+BFWIZnLr1ctTzB7q3eccPo2Z8g3vDVeWkhmHu6OJ4xcmrrJzjsUU6ed5tVg2/SEuPueMIuNMn2Xlls/DppK3eRuWn80qtVKf2jjN9v0mvNuwOU/V79n8w3cNL+A19tLS307eGSJmOkOP5R+LNE3bQqevwUUb1XweyHLV9aU4lj5kpO8WR02bwuC+gyPB40F5o5ce281gmPQaOhTfMXCOM+0gm63c49ZxRJjxjawWUIczltA3RvIQlIM6aOrZyrVXYsthNdbO1QtU9G22PjZ9Bh+wRrWWS9WlZ7PE5USzSgfLxt3so/AYhxfTtwnW77T9auXD/nhqa10ugTNoj6HkIA/R46U9mHANaAnckTB0lpbctv8BJsBDfGFnjE2rcg5h+i+fL/gMcOYyczt5O6nauWSNtKV46hrcwJyuGloPfVLU/TusiJ0xTl/ArmKUheHDRbL1XtEGLNdCa1Vf64O5GORvNo540fhynY9KsPBEp+c+TJQwPOdXbmpKkvf+GmENXDelYZ7VCO1YL7iejhuexylTKycMi5jaKN72XXqLfU09ZKmLLpBYnENQugBMHlePQhsaF5PnvgqxAkykKexT5zDYPZjKgcYT1siFNTlOOhKfE5ZTwsAXo9nvHajdWmalFk9U5AOOL1iQTJ6o7ateGg2DQWU9dp/Jpc3281aE9a7gTp1WemRkomFi503uGqq9zlu5hYa2ZVjzxGhvLV2g/oCvoSP4tdnCIcSqcPpSfiTR36sMBmKQAAM+NWH4aJVgbeLrgCg1cx86N3KniP7iXjGl6WCi37Iieyr95d9psZg2Pq3iXyKb4bEzGBJ9fIRuqS/C6Q93Am0WFykvgdvi2ce3YpALSXDK47RDPzcbp/JpCGORQuVYdk9r4k8FscQ3qfId9kW9+82ifOJwoYrsO2C2G7m30PSDuiL+2xIhszL6dQTRnNDbYk+lA1yXuvN9edTeCSN7ACeDFNVWOkG16HnHbF9VIWG42umd70tIxo+TaFH5a3glJRRmhtAThDPpK9CNdCPRF3hYk2adaHMmI1BWmsSPo1CT6bNpEVevxkjmqAHlQcn9c2WzfS219OuQOx+1JsP1OrQ0NVgCUpELifbkhjIoTBQnWPRUdrugw8eOZAbsV4+lfeZWrPMXiJtCAkiccS2QqdmwKVisMpY5YQ1dPX8sYX782J+igGktf3ymw9f/CUqlzyO/OdSiJlO8Lgs1Bhv6YNW6NqSbglUp1ASvryL2tNHMoPKFOsAsuTMahiNr2Re2T0vE0eNEpBXEJaiqHDmAyOuP/yX6k/Yws6whltdLzrQvJWr3JWNn5/vlFerF8Bmyw2HxLCz67dGv6WkSltmsceEIE9MiuMJ4+v3fOopkoTYeCu8Io82W2WCsLYbvkaBTeH3+1TOw/lJ2qej8EjVIXhUZMHq5DZhG5R7z//0MdLuKlo/Rs6oA1WG9J507rp5WHusQKPgIIjUP3cxNw6Z8aftGg6kjNNnno1CNwMcX9ukUfaCwx07nmcW03XQTLesf+SNC4RxxdgBVlbjD/W5qmgu/N+S7TLzzysK/HkPWayEiH1S4F/ukeaN+J9u4nzWU7SVq/SCe70m/cCmEtDTMT0gf3DvFF3GyLDdpexoaDVK7irpVGJOlhJfkhLThB5DN3V0D9pAckSliBwDLShqBYXOZZV1tp/2HjE9Aw44KAU9lfUu+mOhvPD3EYQgqeVGmhPiqy6xDCr8Ouq/oinfZFrDamOhpbDq+Ae6J9YyQ5EH4vKMtmkaqDsqZJcxikh9o389rSjIEBWds61TL3rMekZga1AUfvoorGcImB1rHf61YIwGnuLcItgQlxeFJjgTC6l+9hAnv6jVycEBIUVZdAw/rsipiK0ix6teGkbHX4ndyUvADxYKi8PZDwgMOhFg/W1/loFPlhrfkeYCHSC+FV3mq/cos88ARkt7ngYJegub+/W2nDbvKRDUea3qu0AtxuD5w01p6cK48hyOKW+UmQQVBu8z1XcswRAZ70PVlMBcfl1UIUz3kEtFASTbvEka+rCTCEt7U1lD0MUXwXwSJ/nqHSWvifCjwJKLqjG1Jn6QdeG5Oar+ZD8BmBz0JxO8yNYGJDDEB4nK8D0uCUJhoy5qezCWWvtdsK7wxuHTJj18jrDBNYUhejOaOiojT7oiBiMFTHhqxTZCE7N2bw8MvB7D3To2XY/6U8zvWXIt7FJIQUIoJPhJs2O7elPtu6/ssBikvzylkZa19Ch4OitqoQHGrmiceuIzJuUO2UdxsdZI4JDmzVLMLk+/tKJqdC0cn1WRptWTfDTQnL/f7H/dk+n4cpj5DMmQ8nNAG9+1lFPH0zzwuINv5nOdiSk1jQSSbzg7N+WBtY+JH8YHjm0mq1xzbBDysRYMh7GNhdAZb/TKA+QbO2xRrIJN+HHgEqkU7VQipSfzI8kRqacDxDT4QlHKDPIu4eXLyXeZSP6Nxo82gdOvEzlxBXtf8vw3Dw7KvrYkM4rhiDyFpTai3gbzU5zSY4kIT6vgcvkCEJpvGtk7J3BlyeJIwyS6dF4+enKF2MhzbLuYuN+7FgFfRPWKpVg+lGnfEm7Uq0BdBD/wjaQ/VM9SpsCDBJgoqrQnETlDpxwSoaC8+aH6FFXOEQEYQ6Is3JFutL6k5T8J3JC7A+THKXQStO9PzV6SyJMZBU2Mzr7RjDiYK0C69PCFkRorRzwfXG2yfxIrljMUWlyFKZyNZlTHw5Rlg5sPOJWug5vRwA8WslUho83t4Hk9iK6ArZDS3SLX56CVVu3HGa/uERVyzRtX1R24tHEpk8MUl1l+lv5/AjgJx/ZP2C578oV5apsunveomjb9J4Y5drIC75QhTaCMK4xctaAqlG9JTGquwpgPXjnfYWVUFsBG4xIIH2dDrKY3ToEMS3kFpWLrCK+MSvwjy1Yz87LnEAe5MUnKDeNhOcaZG4BLTKeoBIaySfKcfiX07sO4BS2lkGYEN13+HxIWw5RWpJPBEB761OY9l0yWQpPYlWQlzUXApaQZ134E75wwHzykSIjpGiZmQrcP1w5zg6YcW9Fu920cM2ydDW6sCxdftcQRDu56AqnrVLnwtdYf8PDa2d1r0cYpyooIxaiFcECXAOYpcN1Is+c27qv4vGiGL6wQJ2cgA/t7ybJGJpIZ10X8iU+0xni/4EOHRvqL6ed87H10e05MiMBbuJXL2ODh+wQ9YU5eiKTxgFr+0qurcMn/dkmUoj7iHzY5GTh1LZNRjQN3/X2Dw1hEmcJaNEiIeUj/DwpJsMOI6OUM15OSUCs/rjdZwqY3pkZckpqjWwL8WnhSp2uoPf4xEJfsbpV5Bb963EFBjtn98Rvueq10YkzEv+mHXgjw5lC2xQtN5SgqgOVwaDdnl2utzPb6yaAB7nqlGlBibGCDqiG1iJ8okR9keh7HtLuoHCQ/XsF4Yl8uUAkZw3vdGMizLxB26VGIq0PWNORjyh9VMunnRfU+YsWzHwMLtxSVIO2AfV5Ygxpn9oJZmAw3XlHF/4Bz9IOmBZm9ntVn+DUpg9OmUYetKAKw4aO2lIpGTG1celOq70cQAk9PxkDKvWNmqB+Q9RQG/M/gRw6AOBo+eIob/VgwR6/pNOYcTMja8B/V5Rnh9sb8gfrOiYYrgYl7Jk55QgfaeM8kPJVPcXd5yW0WSbgLQhMVbOJ8lgl0AV3QXqd5RQMbXP5pQw6xX4Erk+YgjWVVQciHGpX5L0Ph4wDLQDslLyILjs4ONymjHqjBIJTU04Cv/CSbWhaoABrmO0aT6hwwtI9d4E1XH1bJI8tJ4IoELLyIVbOMyWztHCDEGVXc8Nw3ohDlY1mH+GSLFzdtjhS+HGN0y5Bc9qvSFRAh06NVod/YZlAJ8enIkFV9gS4JpW99HjmqzScFlcf/dmtJOw0VYSa5oFNndIXYTOF7yxGzQVutsWkhBves52wTxwedfQ5ZODtRDlVxV88cvnEVcWaO0+mSkFbcdgTH8MlxhXGa29NmUA22Zjx/UlMFrbpe6Fltwc0inD7nklF7E2odan6Mh2O2h9F6bcUuMASV+IxVPNUtHeIbsG84Z/jpQIYPOMDpz//AVSZPkWbv4gHRj1sgOyI3RYwLqaM/HBKjknWvu5PplYQsOPW9LRNFBrAb/sJoFW8LXfB8Voq9srTpcgP1bIflzXmFRjgGCRbqWyQXcFA+iG8VygWg2jDCq3xA9a/qSu4dl3lOa7ppi9SwJZJj94+0L1PD27u9IgsRl9s1u8zo1UEhyhe5eOOM9j9L0iTfpmbzmnA+1fDwzk/eK25ccdvz+ho343AJRHHcm2JI9EJOVtm5W5KZFuLaktkjeK3h/3TlSasEIQDitjRrEn+ZF3Wt+riFsAf7NXedZCr7YmyIJudIaS77ECXIcjAV/enwHLbPnL2kTbQi82+B3FbufxIpTld1ZykJaUNcw+qLDzaObKgGZA17jMaTlROlwOFEAqAaGtRsUkiOEuvi7tuW3sP3lZaZkT8VGITEhnM4R90aEbLwyPPQx/woHpVxlOzQPnjLuYDM3X8NVKhovw2z/n6czdhtoaduL0XihEJJHimI+tb7nlXWmvjBYoTXeWONjhJzWJEAS6wUtRS/iAawEcGZxFeHuSIaeXMx0WFZLdFX5XpqmItAIQDcE8chGNMpglolPrq4YX2rUNPnDa7oNAzjUMrdlHSGhB7R3fqBdvc5R4KNAVeKIevtcU0410kXpjXl+JmA2Nhopn7g4gdKJI0F8Bsd/odJr5tXPtVQWWH3AjTGUV+UB0l55yBpQ/lO/mQvCKieA5VyGkPDjGmZUUQ2FSOh1FfaLK/uhnNXjOCORsWqLlkHW3+/KTOQlQCEhWVtDr1/ZOsSJMZZPiSnuPL5IQm9ZaYY0Dl+7knP+nOhF82rXCIlV5pR8pBCXgQImyYpHeWlPiPyHqTdvxfWekc7y+SDCrXFjWFMA50gV1ZbJIvhg1JiSFl3BmWhUA8IQAFvbF8GVQvngL5yxH+rjdrCnz3+Ulu7vKTYdmogqoxiXcR1hbN/hOmo9PLdbFZXBYv9p/6QJ3850XnuqlhcDDQiZs5y1sNUNuK8Wbear3QJbNLW6ezgGbmleEQCHoQyhiVforzK/dLxGuHHzbXgY4n7K/sJatVLImGNgD5iJvt9bDFyFo50se4AhMiqcErEMI7X2eXW/oGeorridrhOhXhoVow9J8zeKldQkwRVkDtDs9FExZrRMJVCM6hK1njA/Ne2O12TvNsoq6avSmEqoj+/oiK57l+vUVz7JsFUStgB1YHowm+r2UZTsCiX8KTddvOgbjdG/JXdhkS0236CHImkfPHMHuqo2zKKIiFGPn7yaJoEEBSdc3Q3gjjuwkAp+Z9gaOsMrSKBiId5slXTl6ItbE52prLq7f66XLhGpUWyIPkv2tcFOgTFB/kr6ZLkDl+egDrOVLKxzpl1aWm/7w9SSSN4z5FnuH+EPoqggHMgWJuTMCXEsDs7fU3H6AJlVes9m06yk1IJDd1S2D9KPRwRsuXrZTL2UuWk2gQwCK3JrmndjxCZgnQAKEad5kxQ2E/A3c2tqLXqVvOGc1Z1jgTuCBb4OmedGZ/SOiSzPyY7MVk78T9JCNRWxGzeEKou6/TcxCXAWzwb45QLdBJeZ+QMChHBorH1/ulBVeSUpiiXtv6blMlewyNMQeukHN8qd7K5g/jKMkN59Rj0znKTLhV6Mt59KxFLtEdHwpFZV+ohizyj708aChr/vK7LfuoFdZuFWGbOLkz33HxszURk7GFo/rWff1wgyzJCqoL/QATMcpU1deTRRdTO1OzLhAsv1YD8Ggf1FTdsY72P/QaJOz0m0CqISs6IXaYkCiIKHI53waHbm8tPJdvA6dpMpth+DJXzmlke1B4/HJ6NSZU6bMKhNtu54vd3eLZOfZMZjQQuXJvjq5IL4gkLh4+i8CdJjMt8grHXv7TkdGQXUW5uJaPcnDTW1ftimXJ0a5IKZW5kc3RyZWFtCmVuZG9iagoyOCAwIG9iaiA8PAovVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9SWlBNTFMrQ01SMTAKL0ZsYWdzIDQKL0ZvbnRCQm94IFstNDAgLTI1MCAxMDA5IDc1MF0KL0FzY2VudCA2OTQKL0NhcEhlaWdodCA2ODMKL0Rlc2NlbnQgLTE5NAovSXRhbGljQW5nbGUgMAovU3RlbVYgNjkKL1hIZWlnaHQgNDMxCi9DaGFyU2V0ICgvQS9DL0YvSS9ML00vTy9SL1MvVC9XL2EvYi9icmFja2V0bGVmdC9icmFja2V0cmlnaHQvYy9jb21tYS9kL2UvZWlnaHQvZi9mZi9maS9maXZlL2ZsL2cvaC9oeXBoZW4vaS9qL2svbC9tL24vby9vbmUvcC9wYXJlbmxlZnQvcGFyZW5yaWdodC9wZXJpb2QvcS9xdW90ZWRibGxlZnQvcXVvdGVkYmxyaWdodC9xdW90ZXJpZ2h0L3Ivcy90L3Uvdi93L3gveS96KQovRm9udEZpbGUgMjcgMCBSCj4+IGVuZG9iagoyOSAwIG9iaiA8PAovTGVuZ3RoMSAxOTc3Ci9MZW5ndGgyIDEzMDU1Ci9MZW5ndGgzIDAKL0xlbmd0aCAxNDI3MSAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o23BVSb2xYtjLu7E9zdHYpT3KVQLECQ4O7uFKe4F3d3l1Io7q4tFIo7lMeRe3ru/f8x3hsZI/nmsj3n3mvtJDQUqhosEub2pkAZe7ALCwcruyBAUkmdgxPAzs7Fys7OiURDowlysQX+bUai0QY6OYPswYL/CpB0Apq4vNqkTFxe45TswQAFV1sABxeAg1eQg0+QnR3Ayc4u8J9AeydBgJSJG8gcoMQKULAHA52RaCTtHTydQJZWLq/L/OcRQG/GAOAQEOBj/jMdIGEHdAKZmYABSiYuVkC71xXNTGwBGvZmIKCL53+VoBe2cnFxEGRjc3d3ZzWxc2a1d7IUZWAGuINcrADqQGegkxvQHPCHYICyiR3wL2WsSDQATSuQ8192DXsLF3cTJyDg1WALMgOCnV8zXMHmQCfA6+IADXlFgIoDEPxXsOJfAcyAv/cGwMHK8U+5v7P/KAQC/5lsYmZmb+dgAvYEgS0BFiBbIEBFRpHVxcOFGWACNv8j0MTW2f4138TNBGRrYvoa8CdzE4CMhBrA5FXg3/KczZxADi7OrM4g2z8ksv1R5nWXpcHmkvZ2dkCwizPSH/ykQE5As9dt92T762RtwPbuYO+/gQUIbG7xhwhzVwc2LTDI0RUoL/V3yKsJ6bfNEugC4GFnZ+cT4AYAHQFADzMrtj/Ka3o6AP90cvxhflXg6+1g7wCweBUB9AVZAF8/kLydTdyAABcnV6Cv978d/42QODgA5iAzF4Ap0BIERvpd/dUMtPgLvx6+E8gDYMD+2nscAPY/Xv88Gb62l7k92Nbzd/if58umKvdGV0qN6S/F//jevLH3AHizcHEDWDh5OAAC/PwAPh52gO9/V/lH/3+0/2lVNQH9zY39d0F5sIU9QOAvCa979x8Zbn93Bf3fE8MA+O8VlO1fWxkIoP/d+e/YedjNXt84/p/7/8+U/7+2/6PK/63z/5eQjKut7Z9u+j/9/x+3iR3I1vPvgNdOdnV5nQol+9fZAP9vqA7wr0lWApqDXO3+1yvvYvI6HRJgS9t/thHkLAPyAJqrglzMrP5qof+cwmt5WxAYqGrvDPrjrgGwcLCz/4/vdd7MbF7vE+fXs/rTBXwdp/9eUhpsZm/+x9xx8vACTJycTDyR2F/bi5OHB+DN8Tqg5kCPPzsbwMYKtnd5TQG8yvMFWNg7If1xorx8ADbJP0x/IX4Am9RvJABgk/4H8XEA2GR/I04Am9xvxAVgk/+NuAFsCr/Ra03lfxD/a6TGb/QaqfkbvXLR+QcJvCKT31xeI01cfjtfi5r+Rq9Ezf5B3K+hr/eR3e9kDs7XWuYgoBPQ+fUu+sf6OmRswH/BV0kW/0CeP5C9q9O//K/ULf8FX5ex+hfkAbCB/gV5AWzW/4KvBGz+BV/p2/4LvvK3+w052AFs4N9EXlPBr73wL/8rb/vfcl+T7f/L/crc4bf7lYjD65zZm/8r4pX6v4RxvFL/vS08r07n1wvpt/u1wu+df21ENhd3+3+5X/m5/gu+SnP7E/5Xn5q5Ojm93t9/3iSvTfwf/OeXBRDoATRDWl6wNxMKsa4P6byrlSB2Z9n/KjJLs6/zkYHFe9mpy/UBDT6FoSYraNPpRiLlcz/G2q40/bX4Cvmz94+2Rvjw9iS1jkefp/cJ6tP7HUhLU3jDk0U/JBqGSBFJWDTFD3yeHX20A22g2yB7FGjyHF350VQLsO/cB2U9GobKV8fDFvbVDmp43yI/lc+wxGrFvAssmaPJN82eJ6CEc2EhRWDEOvNAn7u+mcXKnXwhV0hgQvI9juUq9tbf4oy7n/dar9TkdO4lpCbUJyCFvsYan6b1fvM9VQF/0bu0eNNpPG0er2ti2y6Zw/Y7vde+svqd0+GFES3NpCA9IQEbNI58dMxmu1yiXQlFIhx39tmawqaH/AVfm6kzs0oi6EXFlq+BRx1ZYL/vIbfB6zs8PW69LmO4uhVuSgM5eIAnnBQyt4EWLaJw33LkKRZ/492I2frYOk5TqwCasTRpW1fAjmVWvXvg4bomxec1j1H5uXMFr5kIt8NdRlucsyuzTPvhnoMJZ3M7QiPIFJqmpiCR77XtKblSyEzE0XgN2aSuNwJtxLBEsVQpWRl5bVxNqsgj7w3r938gM2TWfO8Ycke6ixg62sUp1yp/kaipyuPPwixClIP/EHffAhW+PeGKJzu1LSi1gRW+rRAR94s+rOBSp6r/cqL78tSwkIVdmLXcUuMNOoqybTK2fo5KvOLpbH4cD7GRQOMAzi/BkrftjLA+P2WQgkJevAciASvhAeUL0sybhDmPjp1Q+KJd1uxGaR4/UuvVhn7R6Q4cnvgfhkZ2gghRPgsReup/Vr12aYXZLYDCE32pW1pz+EbGEaihXQvp+2FE8FPvRrnJpTm71eCit7+/sB3cPKf7yXhu6kMYbqglz7AfdFDq6CkE0n0wCbGAbJBVQIzf5MnlHIMwl8Y0AWqoeU8FlMIAxAK+IpkjY/R1Dw1x6K6wOx1HnnPgpZGylFthc0wORhar7GCjBrjTQ//0Z1Eintds5iNrtkZ0ktIVOUPYqvDnlpifbs+qs1YBVMIc8lQq7/ed14s6Bkdlbi1dawd2T/BMt6xXmVzgwu5ekhLzzx5Rc+1UKxg86B52P9By8nobO1gsWKFH4t9OPmHAx4Jgni3PSZUqJt91KMNXXqKdk9WJaWeUzuB7zGTqAn+aETuAPo29RelLRz9M41vrF1P7SIuXyQ01qD84x5D2q4iJKNJObZAOW4B3e0meD67AhH+fTioLapqSXJe98HysNeOe6WjSfN3wzWEqzgyq2EiiZYmJZ/OpxKf6aaO9lnJjuA/XAngZPKyHoBSm4JhuBViPGhTBvsKDtclTPV/1b5OWI/sCfjVThy6HtloPuF4U5YZ04U5ij2KMFuSbdz7x8zfT9AXSV7J9wz3isB0omGCbTD+v78CTlaihQpUb0YGNXYWcmAaJXIacrx8rwg0GEeE6KnEySLUiB0SeYT1PYwl4rnEdks9a1XO1blsvsGlH2DvbS7Hjg+hSWbYyy+r5sVOmXeRfJDwYxwuptynWLMnVoQnkAjQgSCqE1Pu0IU60tgKOxShsP8UqLVdOc1piq3xfZcUJ1RzkSyJ4aHafTPJnEGuDLpZE2MxL1TbF4TPascnMKbtWEKo0Q0VS7k1mvERdjpUl6f1UtLXsk5k4N0AWoVX0YjZRvVnwHe1zqe2c/3YS74xVBi+sASLn8mbTVG48Gbn+lpvWVcaObaeqDw2D9kgrmt1Z+2JFNikWlghtpwnSt0q8K4W4AeePIe9JC8frE9NhPeP8l4l8vNWDCmJ5BxtzxtLepH3gs5a/JYIPxA8PGP3ImUb03GCCE/lUQoPy8lGcjxtZ/AUC94ibPpGkk1UE8idggtw4Z8aKzqFyZpfJI8VtQtc3rF4sehxTdoELU4pUMC3IqPlDU/5sbjwjbRv3ucOS045H7NM2DxCaLO+DkRV6po34ucb78bh9cklbIyO4cd+VZhZHAfH26U3gywaieF3Hr0/weS0+Ue5KUU5JZjgCm6q49Hs5wjb8HfA1QinlfCNybEmFLdxp6ityBB083VWzAXAL+1pNuIvMMiQ+E4xrwTEh0NiVUSbk+w6RaATByhooUwYUtFWw2PEk+0PU/j7zt3Y0UKKaXZM2tdsIh06uobV64krgqBbXrzrGNGJE6Gr8pFfuslyWpAG/hDqRzYvhWtdsx+wRJ4jaOJ9RkrS2L69de3l3PkouRNMQDelpXtOpX8WMEFnPQOTaL3CQKpWDfRV/fWCCOEsSVPnVxDZufCse/G02dzZuHxcC9zN3a1xjhQISWsgblOjxUeoKPZP5WjlcRIkEf0t2PHm1ZMJL4Q0huLRHNx/hE174OdnlPXGXWEfdsBjR7c8fHOTxq2hq6cl0r9xSxg74fDkaBSBtKyRq3q5UB0CS8xZjIqSmGib1YTBlPGzV2SZcvefFvaRLJfwxxbVmbMOoidJMX11mmDOAzsujvsRi0EcvXXUsoUDB5SwIC2SUKDhaKxxHgdX/VT4q7dyoPB1j12g2VX7Oyrp6L4oS3h8xe5ElqtYTTttGnDriUb3/Y7zNC/wRrScizEaytNbCUYdlOeU5mNcx0h6e8aMDE+uNpbWtfp4TmZUL8YevYlyCnMUuy+fLnrTEMukU7sI3juSnaCe1HTKsSrNo3gRl20IZEuzgB9PEajG3QWw95a9MCmnDuzXYQ7y0edTHmY/xwsieWEdUDui3k7XQYKLgK+taVs29FGSI63CC77QVmOH8+3O5XnVD2bL2EQK943OURvhV9wHqGEXYHuE++hRGQ+jd7tImixZ1Mz8/t4DsXrJiubmJ2UyrlV+O6YjSb6DfrvZz7Xdhnl8c1gVWqFhNKkiMpGc0dIoalWAJuOXOxnsyEsPTydu5tM5WC5orU52mBRUmK84SH5ioe+QNUIQ+mVN0qSNDJmf6R2Q0MZ7nwQX27Akc5OFrVA9JmWPbLA0QJZpS1z5on4+ElRu5pHL7WvEAEzbklCOcBuWq5IuZVVrgeem2igm3JzFtCxrIwzKRQl7ClFWOCFaoPEwgEMdUNHMQtPdZOuhbKBSaWvS7PXU3EbtKKQxrvBbXxBdZmwPK7nFReE4iISZZPiRJKTbyvHdalts/rHK0DCqpYSNz+lYShPHdcqJGlSYp2gNQaX7Uk9rrkTcn8Wz2Y+jjWPtkfsGTnvk6fQijYM6dfay5cURBgYTSg6ppSEwYC7goIfywxgUm0ZCqqThy2NaS9vMssDStCv17qimPOfY0o4o0Ik88ap2WptUD4bqtW49AB/F7Bsj7OcJxagfJzIzhH6QYTOP0rUpxiPOdK6qP2tGJKg75YyMuZpLG7fN5O+yZcYP1AdX8PJV6EvRDdIeJERwKGcgMKEQ12MmzImNgMWmHuLhtE0fMgqh3NfdHdAxf3nMvk3b7vtXLr2FqMl8QNTLb0I7mHcZil9YfdmEefcbBJmSoBN1AA/0BKuQNVbO5PGDMT8Qg/jc8vxgPhkPSPLbAXeLkfdKPUFKqL6LteUBqHPnr1WOjVvByrwmyXrko7l1+gQ3VVrW7WJ/DwHbjy0TSwPO2S1M2HulqL8V7DkDn7KC5U7138ZM5SuIuc9KM+IUh01JzQleU5Cq6V9s1GNMb5pBd/ViruufteQwJM+184MohMXntO6Lhqvi1vakCDsU3tRWTWFQKe/WQTWe9l78GzltJHfDx2XEnADgQX3VDFbAwE97y6StKUZoUplxZHMhzlJKIzVm7DNB95hdko4+Rz5HNz12Bh4MYa+KNGoEhDP+IKhzMlF9f5nQDuMvyyFmyDvwiEtHoX9Mh0LPvNSDfTQHzabjZCRMoq9yjq+wgEZnKDaflbGgqZJkASRbLoij4LeaWDbdypXrcAdtkKRUBXXB3isPjfiT5YnTPOAFOuzflnFZaGio3UKzZDIMAbeEOB0VyNW0knY+vnsV4ZJkapqZKyW0T/oj0CM+nIZTWeTDmK0o1ry7FoCUV2Hwy3CDJHXMvJBBMH2K+HJdmP2dPflvyPvQ42Z4TbVd4vaMcESqijmQEtQ8diizcQylevscIqeuqyoDaXErzSH8B4x5lZsB6sGUrKAnko8L6TVrA3VQDqt156A28V/z2QsZoI0VTBqflGVTRwhMObynG1uqEKbyZ00fytovVBB0iDjR/CcpNsG7B+DlHE2QHdyg4IfAtaZ+KJAueskTZtogAviWPyImOkcfEOD2sR2Dj4MtKjrQ/WW3figs/Poavcu7Vgnyc1FhIcuLHyJ6KjGLyHorAeILPUBuwAZSGvpDNMjg9Q70Jy9Ka2JyjduogYcRP/U5cJnjsIz+GKMgsdhJHvsN2RGlk0ergemsTL0BUw62+f0EtR9saLGliS0vXMUMKRN3nSFriyfVM4G8gZkNpX4DTbt+tKblaLmkbuAgMysZgNJLxJSKnEkNRJT6Iaw1ggXs69Uslshvwsz5LzkpEkHEj0R4GkEe+PVtixYB/R6dXcDMcd6UfFJWLHUsaGbHgc4AlQAuf1TWEtmHhxIe+3Ryg1ukHbmEBKPJEqmHtn7AZREF1kRAYJAUFqKi7Akvwn0T3ZQcnkYu9IB5qrFW/1DBb63wLTMZTX6l25Wt0RD3uuLO2s0UKi8rgyqVYOyMUcEoM+UEUC0I8xDB2HeSnqOehJmowgym919JKf1IZE/LzXS1Fb8W8MxcNiRolQhhDG0+9RyW3bO+Gh4W01Xqydyt+jsplwmygVKPxEhmkLtWCgHQVbsFV4FWXTbsZa1wbD3ez29hrwKe5vh/oyG2YwTGsFFGV9A15WnvPuTYyZ/N8jYNN+2MYCvlQCFgny7eYCFssn3oX08WuZtHH1p5wgxj1SE64eZqZA6TQ2PHhjEuSmRKKXYgH4wZwCV7LWseH3zL42aRkjC8r0UlEl6yqi0qStG8qGfk+GIaZK75xbaV3/zg6RAuYl1VgRD+d69aIZffB+S7pMWzfUwxSjgl4K64s/jHmB87HW4uawb31+2DOjdqiftCCUz7fNGwYDUkBtkfU9AR3MV/0Cf+XlpOQgLrw0QIeG795wV9d2VLuDpQVQtbntRIwD1WIX4011N8168Gg1bHOuCtv4T9L1iXY7HtiV/htuMpRHdLzo00q8zUA3NA32eTxyZAthb4nsStZEHkvJT7KcJEiJsUGa7jLgR18perYT+Afflx5Xu+ZWBQFB5RmSXCJSd/Esapj5L5Bg9yE3Q9MgzWb1PJRuShlatMipW50mhZZDo+MryYGxz83fuMxHk8pZN7aZps7M3IS4hEjEhhbOkMXVctSXpTVB8EHV27eZiVYpoU5iHiHzb5HH01nn5ObEKX/0uiq0zVb7OWTqTneuKstr7RbY8G4WRjC248LP272rXrFSDgtS51nwo3FvZpxXwl96UPE/WUqR5B2wScUULjYXkGQwhuL0DzC7B+k6p+g4EHee3JUjdxWyPShkHnElkN+nUj83SwLcYtHoV0TOOJ39L7HmQRPkQd4mllwmshKaVkhqlV1QcanDnMR+cZeMd6/6DKzIjxQIk9xmTISkb7gC/8UdllMFFDOWO4b37SVlyPNW3fOHhA5dQai147vjMPg3/gXcSh8LS9jjF2s7SlTNEhvGYx1ZjSzvBZf8rOzsXArleRfHxvBDglDRRXQdNAX/2CEGTw+DF0Skgfic2ip4GxOCVJTrGjgqy9y6EVtwTMX/8agbtj3YiW2YmAX6iBGdexRmMbODON+IGbv1XCR2bKGIL/jqvxGDp3uGLLhLA5/SFunHDeGQpd3Dpih23HJ5u/rfOc5kZ1xQr/qK8ARedLF3rvnvPwxYhDu1hU28uAK/1ut80ihLKpnxLsifMkLBYg8hkDazV47pUgaYpjdvPEe+Ix3MBI9fVPjF3wOkpV5hYolWMUKb9rYr28wrzPV/e4L7V54hYLjqhDdVHcYsGVrnnb3VQlo0OstDGk+qLgE+n9o298lsLXolLCB38nHEv28kBu63UTu2ywe8X6ypX73BbbsUgeH9lspAyzV/dfFgNqMmIVHpnx86s/xnAeg9+llb7K93GBOjUkMJQ9HDM2YvgcETse0hzTCMgaP3TdV7ysRs7d1ht3mL76bGP0FZz9MvnoZd2nXro1UxlysadB5CVe4vGAScko35BS30r3c8lWEKY/10OV90wwzXcCnflWGlcupkhwnxlnMbW6dUIdF6jxkEi1vUpaY5tLpoDeRxJeA3JgwIseVvPQCJBNjlXEfx91I84+w+RvbX7kOiaBnB9qpt4/YLn1mlNQfWliMY4i3alDKhHgPlB58hnIHLP0uAm71AK7lBnW2F/T2ncsvcHOBlkTpttLox+5JLa19CyFMATH+DlfmKw26tjgfpHRdyXEKcmSR28hMOZWggFWo+5GMwMXFu02Q+qquB3+bxPc0abAGVso7ddx8uDzPNOnZbfTAzH7o9P5gYuvJJ00BDoJT1aQSp5rm5StDTZ/BaVf2dK8tHaUojW8itfFJ0JdgYsh1ouAZm8z7zF+DsQjAuVjm77GD83fkEoULMtlLNo1spu+ud7/Xu8mv3x58hmpBhs5Xw9rAusyGlKqbO7p8tLlzTi2wEm3OMA5NyDWJLVOtpfezplGtDmsd/SyKjtQkq2Obohg4LQaVnh2+13R2/+kGZj2hjLYvysr1GoK2i0wCMowaIyYodo7mIU7A7J0qCqUsPeUGytBO+f3zdVPY9jHs594+nJQZDAivUBiSmNw0JsqkvQDiVpyV1uBy7R25qPTE6xXCplgO2ZXcWzmPqB099M5DzfqJmYrPkM7xLAMOGjFwFX2SDfV5joJIQdACAh5AMzhD9VlvL8k66PB2MU+Vdo0F1gOmLU0q4ydjyiVAIOKwTUKWDadEpug+LUmwUf36d0J1r2kRC8zIw1SGO0trifUkOo9w0zeq5sI1u8VGM3HMsxToA/lu8/t2S8gKFAl1jMLVdWwa9VCj/VAiSuMCvrqkBqvqXNsPEpxMysHmPyh33CBkeBGlrxMNTlnR87/O6isrB0kRk+72fyO3IsCNKfQhxzp7+02UZyaalYf+7fYD7qwoE3xYMBN3h+e8eCnuBmx23NSb+Z8GeuStncnXiJWkLMZPmDEpkckJ5xMJFMUlLD5l1+raSk68iObUmNaxtxXu1UCi3Paq2BN6GlZj1psLVJfeJCRjgvNR/4ic7zeNH8Ac+1YAdLDX9CpQPXsrgAp8b7eHs6FSC/VrOYzAvd9dxZVReeQOzQbCwywqO/1Fu3CuT6BSrt+Rv5bzc9EkJtd5wdeLi0X/+cyrgmDWQI0MOKZRfHFa9K6ohHeD04a92aY6m/kUBcobxQ7LuCYDP9kTLT502n5YB3fMIklLxaI0OsB/l3QSPK+9JMXcnztWw4ARKdyDSPiOszOerdNEDI3H702WYCeptdQi1KLm8ot4N9ugOkp/sxwL03o4o9FHD1qNm3z0QFIYVx84ufQT335v/0Eq1PlygR9yUq7iIXsVZkzpSi7te9tZ3jcuiJN069OOKp/QAQf+s9AFEfIXR0yxmc5Q7BYRaWk04BS06A5vzttAXwvOc3eTBEMTUVFrmc8tdaG/kNJy0sqfnTtDm6cgWi8QoxJH4buftOOjeZKguh6/FA0KMYInTKkvNKrdTqyevrAE8HtOfImv22r+9ZNM5AzkvNobQ+5En82GegpEh+Cn045oe9CPVGTn409XxEUdYShrlX5QapsYG58OeJss1R+yR0ul8QKpS3r0BI3C/Nl3f3uF16Z9EsLU1CNl47iB1aAKK3+abBfrMCwEYjb1EY69Olmev/bFBNE75mPVJoFlxG1/7zEOXCAyae5LY5GcNnV++n5C1Hn+FLW1gj/Q6VwExez4ReXA5NlAo+O22Iah5QFjzAk7KPdrpSSSZnndiF/J+bH5XahRwM10VJf0C7klt8P6gA183aq6XS41fEve9CEHHqU9TFCjYbbfDL2vqkpqIejlSzM/sYiuKdZK+AZjY29mhmUZbbvCA1EaF9a8gUoKZRi2HCcayWR/dTb+mEVKrjihpNEbNi8FeRI4Aj+74dbcGZj9Ql/TOFCSplfOAj3jltTkDwZPJxF/lBb4inGDkPDw0IVmlPIcrT08UZT2M8WRN+FJmdXzM2VJufbtlg8plqzDyRZP3FYJV08T1Eee2Vm2wdraDdRDfaThUkdeUOkXGXoOW+hv5PS2diqWW+DLQE69AlKEJc+fpT8dmFlMsjgyDsEVBeDLpNp7GJi7RkIgHoaSq8opcJhZXSCPr71rDZy3p0OLcQcoOT2TtDvAbAY2TKvylcjiofjFq0Jd0TeiP8zd0lbz1juHWI5pxqkEf6P7Epwep6zs82GmFLqc5PPJkWvisQvptqXwUd5Vn1z14g0kKfdUq0fvVH7eJHFLHbRC/lXg93fh/NaRAc0/276aHdCpidRvnbslQrZsN/djehoVvuxt52uvn2F9fuCaS/3a6Uv841C9We5g7LZk0fwLez7rw5T9vLopTNUMBAI1c7ip1u43WER3S32xcqkQUCs9FurPXr0sT8GnfXVXScUJca5KBNcvRDJyyG7BH144r7hcxrvwvhO6twdzvnM72H6suCzpxqbFulVeUP2SdBDCChD98pPbOyhodwc++hfPBkx1u4RgD4m3PUMGAsUec9r4815kWgAkB4H/idqvfp1MdKhUSlkYqlEIZ2ZhtbiFWsCN7+1GhuAPK6pJd3Yrpu4PtQcnKdcfed6JnEbtlrwrfFYJU0+aJyTLnRwdsnesJZ4HSyL30s4g0jA3tIf7IqL3BcCKFvRjPmiUF91UYXq7YF3pDE9YQdfkmaqtoeozD5pBT6suSFvWzGQHZTJUiYi6x23jPJc3pqoimDRHXZQxuRiuoJtoU7mhre2lLk1Lju1huwrZWqfC0Uvue9I8HrgrmfkF2502fNzevxiRQ0l6Lq+aieb16vgi/nIUTs4CVfoRp2ZKX+S0xZuHLzrufcw17EBTm7A0d+K2NlFZOUynNVXsSBMUucse3Et7ffCmtANxSJa1Qqx9mR9J7chIdXa38htzvhvoNAHptCcHtXeFbV/IZKH1A2U59bSfWh9G2Jp/VqkT8NlYptT4Fz8SyEcX+8tW/sQtcBX0DxDGazdjeZ+hF5BAkBnRe2JCEqoQeK9WmLVz5MV0O8P00dtBDjzDDhnOpkLJZTjeBFfrCIXlwjx51g2o9fU39QjEi88MNE10lUZeCQ4y1nHmCzpxvqIm21ZZ4YM/Y35BzMfVurc0pt6XKCRf8ZzOfqSYRbcFhJTt3n9YUlq0UszARijYVKB1HYuCB8AXWMU7SAIGn+HvtAL2fMKCES7j88mMTX6eYKIxiruk4TC8lXazdQIZH1AYWIAJghBWOrDVjBjxwoanaEqgxjZd2xo9cs9oxtFrna1Wxg4fr5Rdi83LyzC2ZrK1H7ISpTCof630f/PBAbUk3jZVJ/vJE/hs5QzRRS9k0vOHt6lGl3hFruThPN5psQ5HyDpQXEhBFrIFhpUPBwbY3MrmnK+8F7OiDRN+IIbU0BJZXlXTdF2m3Oy0A/WcfM7CP3SNC+gTETNlHTqii188l5JpKKkowVxHsukKaMQtn9Tj4gE+nkhqiVK63hapKq57HYudij0P8wcT79Q30iUWNCcmf/Sto23duG8XVMbtM0mA5JXWZ3yeQY/OTeO04uXpbxU/3KBKNVIGIHmLed08exfOjZ28mOrdfiTe7ZnoZ9MrvLf5aZeW7KVWtwH7eDlKN5H19uGxhvJd6Qs00eMM5rFHmQ8lxJqr0qFAco7sVf92N1TCtzckethFo/RnqFtJhRg9NVkVHwwXdiW6o6TEn5dxOexkr/RQgAVEG35e0t4pngmL6fl5e99sadlrrcOTJnjZ7jrdVGvAeTEHVRxx9NiWewqN+y+BJ9/QyWqg5nPlLpqsJK7CwT8ci+wx4MIvC5Sfcy6DT/fS+xo8ke+fpXrN81JI98qtciJuT849CB9dJ4XS5GTMRPg2XEMarYPwOC4Vv05wNF9dVBqAUD54M7kC6e9tc5z3qHL0JTsE1RXcq/FCctp0cTrJ7vM/xd8U5+JXeWAshQdb1Fb4AEF6JqpCyA7zrCKViFlFvRWWuAJyyeoHe9ElvdnimgKeoYR4W4EtRr2KOaQd88+aYndRk619KsYN1c/x4A5nL7IxBgmeH+9Dao6IZE5HON8SUQJ4JgeEmbchOJAHovWQI5S3irGidpbIA1GlkryEJw9zD7NURj0riamXBNxfzr9DjLZIPVJkCxJmz3FcH/fp/JxZENido0F9z9jc8qWW2RuLz4s0Y5wdtu1OusgTpWz0JzNoWcIkzBPqVH6tym8YJBjCP+sjZU3+JLfnMcCIpSy5gSAToy7ChHJj2N3F996NHCEtRP50pp8ST8VjIgJ0gXmDlXAT6iAZk19IgKFHl6glOPGVRO8Lsdv7bjVJdKCJnrOoXRGiUszkcE2c8F30DLG2QcAK9fvd8V2xEyWbrnYlDzcVJtfq3qklhVQW+7xY1G26GY+Hz9IRQr1C3qZFUYEtEaW/qvmC3B6Q2ySYXCzN9yTIHhGyYXfZg0prP+yMYYTJCx6pa2F6PFyqyDU6OkSRf43tXY+v8jcYcwQxUKRXoNbd3VNy6IWwphjCP9j9HEe1P9yv/nDlPVxJW128HFsUxcsdkWk5vdiO+6Pcy799wCPlBEsy4od3M7eIv0UkVc1NPVu2rdmkrnuHXZ10746MotFuBX/ObJVc3Db7lb02rE/1r22ITi+8Uf8j95m8DGxrZW+VTjrlw9zHM5umGVmz0FHLkZV9nBorf4nqys41WmfDgdwtso/9So0d4EOcthzpT8scDPfmF/mwek+tii3w78MXcYRDIMc+5DdX4PZwdCHMDu1mPkAk1H0Cm0gt4MLsOcuSBjDkWGr5nMlVSME0ygAMdnWDGhGvEjk/EfVdEjI0k43s8rwNm2EbdPGGY/S+d2GV/W7cbgL1yA6Pfdq3WrKEa4Q400tUfy8f54OfTBXKfRZHVbNhGmvbJhloEKdXfwvt/awdQ2B15VWpu+tn/aJw2OFKqegeEzfi+wtW7HxDnnb3CV2fmVyn9hliiBLLj9OffbrQcbECSxWu96l5BTpgkDTlm7jgPCUOuuP4jUPZsrfbhu4nXS7DnjmBTmWoT0e76oALcLz83J5J4Ze38NCmQZc52uYn5V7pDqqYF6lRStLkYolbAfElmTYWfKcRlbZIh19aZ664GCKl98qTOXYy16wwvgXp2R0pFzXzPfPWTlw/wZqoSiPT3JFfRfelzpNpjGzT3Gh61Nb1JGEzBuhIfI9/qfa4CcrRQPdyDLgESwzAc1Cai740oP7Ur4/GgC+orpuzYx3ncZA1//7YWYso1dcyvwVsW/f8QYP/FS7Etj0YdFzMdbhWvR3cHLupuvX6F+6HWoBlDEV7lQlOlN6Xjw4fupvzutDdcIVTAhsIBJdfJn9F4BRfjyQsPiSI064UFqIyKyO9wZV9OB3AfS9H6eFnCzWrsppJwSTB6fFrv+rzE+untzvoSv4mYsNqfp5wUTuJLVEDTGV0Pso1H6f5C1FHdxsx54wOXtzjSeIzgtDWRB4+JC0/52DYClDEQOvKtufXv0RGUlCOdB+ndF/tLUGTCCmNLZIIbXmH2Gb+tIgeSsXWPGux1yutdvJ5h/BpSNpfBaFgzMVGTdXXB4CKMRDX+a0hQMRO+jKbKaKnNfhhbq+B86IiZv4dvVhPXki4SBhhLJYSRPS6RTVSMAycSlYMuvRN06iLgwtjVO3RcywPb/zxVMlNjBdjFwlr/eZjw2lBjMnlwA+i+BXhB3FtaOaGsNP6tao79rrT2w70VhQiXaPqOoCXNgRZWylV+1X/CtJDnU467Uymwq4mhWil1M+yT5W/aqoEpIvo9K3mZiyVnVHx5LuPUZbls7+kgiCPLlyPQjVdaB9jxwAKqhg7EedIFSq5wV+4b486lHFYlBomCDyQpyJ7GuAmRITFpyzbVUrssiA2ZlTCK9dwNSe1bFzaAPmiCpqC0+++7Dk1myGQH9Tg2eH+UowuNUFL/J6DsC3I9pVXM0oO2j9r+FC1Ct6Ky3475uGXWZQv0wkLgEL5hdl0vdxlexyDcpNE7Mxk2zO8h5pttd1LzyzPKWtBBSXnxLjpsmgp/+3x/nDfXi0PHh4ULOqRaPNqbm1zut8bIQaim/aFTnx5Ghlxvbqi9AS0RZXUJKipd2QQylkk9qiSnl4ytxCtLLBBP2i4R+XQ9Iy3oSbm5TxxHisZJ8eQtHA4MJoq1umqpaqbPYcL/ACqdg8e80MXI58/W3en3BIWAt1I+6qJPzZhf7yanhZO01rce5/KpBGprdBVrDiQWYiFsWYzVb141FLFoW2CjMuamECpY9OPay+vhE4Q272IWzQxl7WVV0AKhbkbcyGbC0eu607X8APvncg7pGuFOOUd/icDDSJfGjil+CkHF0cf8ub4jSpJw4xBPmS5npgi7I3aOmmTfESWEewEKNBbKpG8RVHv8EuQo9tZzXwroaU9kGaEu7rzYKDhXoqGRiz/zXEoafZVTQmIi2Ra+mOdFjft0/i2PyHJgDuWtcQRY9s7vdblVRuOWJ6ZojUspTnGQZiNTu53krVXD8GTJLu4FPg3yRvNdbH5b01GtVg765YiN+XyOeoRdMECV8KeAhhuttlYSJMAJshDtK9rPLEJHSrfoMMfCn00Cs9uQzcK7J1o+049hA4RiIfS1vgQThBlK3atvnnB3UYRiEwEeHrXHiByzcOrJK5m1AasIhdg27B8jUcOkS3IldDlhBL6aV047aGcXETzltPVGKIGWnrsko5BOFn1wcgWTb+XnGuijX2MlLAxTVrUg4GEPkaaqCZT3eZ9EV3Z7apnhf6LTg19FSadXECGcryd7nKJBzHIMZx5VWKiYKxSw0rrcA+7KpFVgt5f8NnwyG9hbBNOcluDuqmed1jQw2U4LYzZuGbsfIvTMZe/dalVcxFTe3hK82YUmSnFXUxKMDnIcsrqLD/uW26XkqN6kUI+zD3NtjymE6nhVQhzQEafRecmTl6cHW6WjkTCXKhSyw9WEhE1kVbYY/XgvKr59YYMRn5046riLTK5x+vASZ4WvtLxcaTkr4JD15JTNAltyjv1Mc8n3R2Lie9/HDxdEPnAw9hSqI4uTVDcz5wVCBaXOuTFSpm1pUyaeQ57RnO+W+A+D7THeijQYfE9S8x9iVc98+haj9MLjjsmMzttns+QQiH2xbpPL9XeAyR/RzBsUp10KzrQeW+scq/Xn1+auUZtYMH/sfuptUe1Lt1urJ5i3cuHd1DxBoRC8BZhjRl5RV6MkM7CMADaC9NKROO6+BETiRtCDr81rITXZwAhVpHNEd1JFhNET1zZcM4vRZ5ZPtyCtDSbXO6JS0aple/Q7anHxiiWIRpCfa0oWqVsg4cnyieh45bRn6ooLnpB5sXdvjIUp3w3yeMnp+qcrAA3/y4dgcTsglFu2ALfs0saOjiyfRPCijMnemxMQxc7HrkQtnp7Cu3dF3YOMM7MG06KvYjZEm8DqySsrC4hUfKf01s3E0KVNoIfa/ALiGTo5x+PbK/tCoyMTsh9RDhd7z3Lo+xtgTKWDqWJkTVR8DxWCRNK1OImdJQ8zTVdtWkRNSXr6Obv3GGItJr2SzyWq77d2B6zU6KxDPrQw0zmjnlW6KW2Ey18CZyvtZlGFsv9RgXusMDKQX2DwWb+pPtDRZA1ay4V9MNxP8Zw1pQrz0+SE63mbaOxcTsGhnvLjihyt6fZpPkUkSlMOGjv2uxUO+UpJ5cyFZ73uO6EiT889n6inrPzAxq1GlF5vc6nBdVFiLC+4jpJY5XUMYMGXYsmZGmZgBVBXom1SsI3fH4pBhg/2S9sSfqQoa6nJ9li02vyBOQ/9csQARcXIPngaI7NQp23Hy22qDrnecWJFDRmA0dOrqknE2OVkD4cRi0rpFV7oUwnhlLuZEIPhlm5SzHqzOD3odIJMT99T9pfQpijn/y87tG2GZqRoKA1nTWhVWqDApEFKfqYwrx3GySNqcfLtK+oM6MhNH7mn6+zggYFdFX+dX4KJZ6L38E3k386Vr0R4Yob4I43RVFzev0N/oqvvT9unFRIJ+LFQ5hkN3YJlG/rODzFEY4cNrfkBHrSMqKfs7672W+EPGayvKvvbcReqyv1sMMe8NWgTxCJWsA+oy2wWlwVGk62eBQEvevpK6Cz5FLnw+D1i9gSBa+/d2P5TisohcKZtpn05dPP9T5CVHp9/YGpPUwPOPay0ks8ej5dn5fds8hDEvixXvprGB/TAnow237B2/Ds/ZV5V87JBG77FJ8ksy7d8rI3SgTXeS67HfPnYlgBNv6HHdCzTVIgsRzihLW0C1d8PL0YpBLm3TCmfT1s5I6FgKBChVxqvcuMN4EtZMU0YYpX69P4M1YVxfCGbDGLD7XTWDn6pr74kJ8lImACjfAPrmjOCI55bdtX0gwWvqgBAmMsuKF3SRYmevwS8erRfyacfhAeaRH3peMEIX+QdYKqQSYcOaZQsM5hRkeL6LyMCrmJS1PGY1UQIqKLLMkMhJ7+3IR9+CugP6qObNgTtewTEYEc4vQDJwn3Ae7CHn+Z8pLSEtunIKVw3hGflUV1qoPwJOkSV4MR4VAvnaO4moZrXq8H7XpDitKayLOu2RuM/urOEgB7z0kSR64B9AFbS1EMtTAECUHMlErtcvVe6h4G0OmR63B302F/mPsA/tGvg7p+cWF0TRB+PJqIkdo5mtAKmfH5ZCWa9nuotjZ87WpqxCR+byi9AF+MEtcx/EXldt8ar+B4z4vGZRX1biP6mVKX2Dp9TOl3QgaD40/+rhkBuxWxDbjdWHnKBjviuGGizbDti809L2qKT+RkIaLbJRF1nFw2XTq8g/nhmdPXl0ElAhWlpw6a7FTlmz0YuLiwNkRn4jmzM2nXjz4tX5fO4NTXxF6uCAmG10c6mIqrMs+dCo2ceOv43aBsPkMd1lKOpku5Lvdn/QBAr7JWmQKXVcPJLh2Espe+SF6FMJa9NFY8jU97K7vtJ+A5jN1PAcdaSTCgkxZEX/rC5bhFSbmZayiSGbP8frrOdGHKiJe9HMwxyRhiWMh6d0iYv42Fx9v99BLC9h5JTP9kxJdwMKWxc/3rl/rT0GIuaocQ62o4heHb0fcBzIxMhORK3dUZJu/20ZyYjd7dns71lAqxjW8if83jp+9rxGA/jM27dnE9vwpOFdBTye4kIuTASpbrnlSxeY76wf+s1E3tOgnOghxqY4UqeaoeC6mLef0Bf9JQ84FgKlv5yFw5DfPTY70lvaRvzbV8/c/tYQvohM/LaB7O06Hm3tKgfZ1wz25aSMWIRMVOUNkjjTXupow2bm+V5I1imYOVqmxJR0Ap3liBLlKj7yzVubz3sw7t/ml8OMDp4YG7xNcIrQ0qC3LWcpSPkQ/iE1csVBBgAVKU5ojwobKGWtjXa11gjvPT81uTXUrCYX4erQmDd5UjWsiNDkjGGL72jbbW+Pa2cj9SDnC9B4hGPaCrgs6/OG8LuhlGVeWKsRIx02myjd/P9d5NrkeL+TS+4Mcbu18yrYq6z960eZPwy9MQIlK9KJP2BYkQ8Mbf4eOaB4Ugi6LHpPQFt5DT3REGFIs3WNry0Z7HRGZjkwt7M4CcKJ3GBryMTvobxftC0xQJ2sKvtg9ORUwA+9K+v6DSAVtMnWQHQo1sYUmIJLMXIj/S3r6FQNCAce3DUnjIzUf5NrVbLNMc2L6ScNFrchwM88uYnffSyjm5ZQQsAUDRI5PoH5QQkwvgpWVAmmPcJuegsoh3d5gQkiz/Sfxtn8/nLOrb1BzPVN3SvmADTjMIrTmJqtZl+dn0/gojtzk2UI2LTWH00nGj815PCmqjmsRzwxZ7MDqKGUg/n0wEyZIuD0c2afuyuHUmeWmTL4PMLUZ++K1xxVbpi4h2e3LjLwUegQ8B7kVt51iIX7+noMYj7llH+GjUtczQ0I3c5eWzM0PQaLqux73ffJPxBsxONNsUGeXiV1IFQeun/bHdipDK1e3MlPZSfkd0T9PWmeL84+ARFLUruplkObBrYpxHgh01t0PlgfpTiMhh/KaZINGNY7Nc4EMRZZzx/iF4WD/d73EpWpH97JZKBUrqLogKIEjvsyHH1looBW7s2D742E3wqHeHaciNtqDkruwRJzm+3doi332pVCkuAH0PGkBAMOW+8nJ/g/BUtUHj1Ch7aU5CS2OPa8hiykR1htSzsBxhO1xZF94/41axBaqrCD7oc77elUqdNXrDtahLxPmUdKxpHulU1EbiFyNsfJdIijZN2oZhlzFBdFjdwcSI064BcK0Xmhe0ULUNqMwWwdxPzDkRVeq9ntNv0jzq5OSyvRraJMfpdn8Y9lBd48kw/uSHqlH7BOsHm/2TuRBx3hIY+V6nOZagPIWWXuVqRs6OvakOk085RHWhzBPRk5JHDsmt+udiExVXIBE1tMP9o4byQloPs9hSt7By6U9uPGNEdyxsqoW1nW8enBpM65kIMyNL52u8h3v2+gn676irIQr2bwgoPGqVI5sgo6G5aYr1qcRTi7BmsgJcNviVuOZBMi/K5DScs+9Hm3TcOj/brEPUvP962/iSDkWbxAdAdl6Ndi7aDTzk2FJ0nYtzvhiVmX/62DRvOytw4M6PcC30JajQiU2D42uRoTIVkY2t8dRxsdebZE3s2NEOkOY6o22i6IJSMQ1j9bwa/K+I3Mmd/nnZ85aUA/ZQtCy0G65UuUaIdrPvU8cbIjT4FmGpYeK9kk/3ExXQzV0/eny57NZ2zQyYbzCSVJDOk1jBkiJN+jMYUquFZ1FHHu2Q9/K2CafTv9bG0cP00cib+uDtQge+NBxffoZdC5QPqoPp8EF83lmGiZ6Qedvd2To/mzi56Fa2SlkbJduXTl3jN1mC0HqoyoumJsz2FSGGX5c347kFP0wBA915gHJxc9VrNumpuwC/DvFhn10IkpJGYeeDriRuk3lKdtZiL9NdZA6iVR0Vc8EvujA/PfAn7TDdEI25C+iRZec46OUmOQsQ8VBtHQaC2EOuxa6OQ4+gweit5qUMzM7N7ZyKslwDaUfrZ6lcXMeBrTmciRlHrtr2fKsybkCVNLScxUxM/nfu79mDDIvrRWirocM+AdCr/agX9u/pfctd3EiWO8O4lUcSrMXGfEwVtwQX1t1CdEYOwTLkdwlvRnm5BDFKn5VehgCt3my6Dr2o6w1vzy1qpdvDg+okMi4sRQNCK2OUm5ttR3yUAv2v3AdJzAy3i8cssGK3HG2JbOBVAfDmaZPolKNzD7AnMUkLdPFpCRmUmhwtRjrTfCDSmMNnjMg8bdFtTVEPoNt3JZdf1/xMzBPTT5dGJlQ8me9hBKE//bSkThPQS4sX22Lf5Shd7JaS4Yd/TK/UTgfbn7LlGJtdVtU9IU1BSHKIi5bVQo6hQvoTPfThqu8wHecKvP7AkSYiJE22OVT++Dxs+KDXV+PEmeDYZ0Owwi1kcIZFPmKO5IzB4CNYfSUmT5TpKag2Ma5bMvZ/AHCfxQkKZW5kc3RyZWFtCmVuZG9iagozMCAwIG9iaiA8PAovVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9QSEJYRFErQ01SMTIKL0ZsYWdzIDQKL0ZvbnRCQm94IFstMzQgLTI1MSA5ODggNzUwXQovQXNjZW50IDY5NAovQ2FwSGVpZ2h0IDY4MwovRGVzY2VudCAtMTk0Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViA2NQovWEhlaWdodCA0MzEKL0NoYXJTZXQgKC9DL0QvRS9HL0gvSS9KL04vUy9UL1cvYS9hdC9iL2MvY29tbWEvZGllcmVzaXMvZS9mL2ZvdXIvZy9oL2kvai9rL2wvbS9uL25pbmUvby9vbmUvcC9wZXJpb2Qvci9zL3NpeC90L3R3by91L3YpCi9Gb250RmlsZSAyOSAwIFIKPj4gZW5kb2JqCjMxIDAgb2JqIDw8Ci9MZW5ndGgxIDE2NDkKL0xlbmd0aDIgOTQzMQovTGVuZ3RoMyAwCi9MZW5ndGggMTA0OTAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqNtgVQXNkWLox78ODSBHcPFtylcQ8ODTTSjUtw9wQI7pbgBHcI7u7ukuAEDxAemZk7M/f+f9V7dar6nG/Jt/e39lq7mpZKVYNV3AJqBpKBQlxYOdk4BAGSQHVOPgAHBzcbBwcXGi2tJtjFDvSXGY1WG+TkDIZCBP8VIOkEMnV5tkmZujzHAaEQgIKrHYCTG8D5WpCTT5CDA8DFwSHwn0CokyBAytQNbAEAsgEUoBCQMxqtJNTB0wlsZe3yvMx/PgEM5owATgEBPpY/0gHi9iAnsLkpBAA0dbEG2T+vaG5qB9CAmoNBLp7/RcHwxtrFxUGQnd3d3Z3N1N6ZDepkJcLIAnAHu1gD1EHOICc3kAXgt2CAsqk96E9lbGi0AE1rsPOfdg2opYu7qRMI8GywA5uDIM7PGa4QC5AT4HlxgIa8EkDFAQT5M1jpzwAWwF+1AXCycf5N91f2byIw5I9kU3NzqL2DKcQTDLECWILtQAAVGSU2Fw8XFoApxOJ3oKmdM/Q539TNFGxnavYc8MfOTQEy4moA02eBf8lzNncCO7g4szmD7X5LZP9N81xlaYiFJNTeHgRxcUb7vT8psBPI/Lnsnux/nqwtBOoO8foLWIIhFpa/RVi4OrBrQcCOriB5qb9Cnk1o/9isQC4AXg4ODj4BXgDIEQDyMLdm/02v6ekA+sPJ+dv8rMDHywHqALB8FgHyAVuCnl9oXs6mbiCAi5MryMfr347/RmicnAALsLkLwAxkBYag/cP+bAZZ/omfD98J7AF4y/Hce5wAjt/P31+Gz+1lAYXYef4T/sf5sito6gEVlZn/VPy3T0IC6gHwYuXmBrBy8XIABHh4AXw8AgCf/2b5W/9/tP9hVTUF/7U3jn8I5SGWUIDAnxKea/cfGW5/dQXDXxPDCPjvFZShz60MAjD80/kGHLwc5s8/nP/P/f9Hyv9f2/9m+b91/v9uSMbVzu4PN8Mf/v+P29QebOf5V8BzJ7u6PE8FEPo8G5D/DdUB/TnJQJAF2NX+f73yLqbP0yEOsbL7u4xgZxmwB8hCFexibv1nC/3nFJ7p7cAQkCrUGfz7rgGwcnJw/I/ved7MbZ/vE+fns/rDBXoep/9eUhpiDrX4PXdcvK8Bpk5Opp5oHM/txcXLC/DifB5QC5DHH50NYGeDQF2eUwDP8nwAllAntN8nyscBYJf5bfoT8QHYgX8j/mef6j/o2afzNxJ4Rqb/IAEAu/nfiPO5e9lB/4LcAHarf0EeALv1vyAvgB38L8gPYLf7F3xmtv8Hcj5vCfIv+LwQ9F/wmdnpX/CZ2flf8DWA3eVf8FmB6z+Q65nK8w/4X/U1d3Vyer53/piA5+L/B/9xyYFAHiBztMU5qLlQsE11cOttpTipO+vumPA07a5OCiOr16JTm+tPTORExi8ZgetO1+KJg13YK9vSDFdiS5SPXodNtchhzR/VWu69H4zj1Cd3W9AWJgj6xgsOxWt6yVHJWDXF9rwfHb21A2zhm2C/KtDmOLryY6rm4d2698h61PSWLI+Ezu2q7X15rYj+UDLFGqMVbRBQOEOba5Y5S/QKyYWVHIUJ98wDa+bqeho3e/yJUiGOGc3nKIb7k5f+Btf7u9l3q2WaXM4dxDTE+kTk8Fe4I5N0XhLfkhQI572KPkdhN7INc+U9KmQaHkWgLShQMRjt+nd72YwpdiJLHV1vRNJ5gELbhvdu/H2QUM7eybRK1qJE7emE6Ml6dAo326uRQRMGcdjM4bD1r7963866HitMFqYRgM38X4xwtK81Rb5/6ZSMj8YgqK2fVRLrw+LqobFQ0Nl+ZpUn3Rvh1M1fJ6GHo4d5sK46LZoou5SXg424rJrK1461mt65lyxiEmWM8qO1hRg3RgjTPvDNbfScjCZw635c+1MRUA5uk3pnftJTX7Ytwfw8mkqzUncz+cbHytZRIFMOl/DoBUHclVf5I7u4V/ityG2oesjxHX5SF922zuzBFU/At2smjy3rqdZ1nrA6cnn3JIcXQ/FvsqT45870uLUJv7ml9U9WPMpTsD2EPEAnVsO1qg2BMt31LA/rB/3NOu3RQecsmjWzlGb9KCZrbEOalkikr3/iMFj8JJNXF4ARe8NYMveQ/4slmKxDI/rjjX8tc7aV6diS+smrj2/O7GX9Mxn9yKY3a7BIyrqMxWGQ8Xo9vkiDyQ3YpK2OfkzVnuynD0WoOu8LwdtbVX1pzeg7WfKQ1viQmnDZ4ZNHYxUrZtmkDFnATN8y/UwEaGLR68rgglYGwNC2GnWO0chv+VQN5GhVsOPnwbXe7lntU7SpHtFBncejGn0DfkQKvys2pCyHX521u4gz6EN//PQxzitSduBmKPIOS9htkVVk8IUAPm7/A66vWCNylDl2quGooQLJOtHw+7ZaYVQetJzzBXfw2TyF3IvCqzQuAuXOMNMraQvL07CoyDxnosxZqTUUPOxxVi9Po0S1ZvyEbXsyLEp/91hZTGm/DQzBtm+ZaN4kgh1GKy+vZN4Zy7vnDC1Y+ovd7234+5U/0L5J/qDzRabNMFS+cvyyl/TuNc5k1JizO9V4ghwRrgqTAHBo6hVcVa6bBF70VUXvpgijZWESxNDHYvJDhMRSDQn4VxskmzthDk/ORigh2sWVTFw5WMPn5U6IX3EekVEBbAuuF3+yKe14mbFipfEitziKKWK+lFCG4bZRTE84oYht3nutGm/hy4JcqPGH/lXXd+9OqZAX2ogxt7IEs/3aAkeOYk3IyHG4PgupPkg1cKefi3m7yIUgkkyRTbgY4tt2aollZfFZcjsYAKVOUDDHpSnfPtkGYpVUseqP2R9KynGKkcqoiKCjX2jSG1Y1nExxJA0vLdUJqM/hYWwZz3dGxc3Kirddn2BixeV/GmxJLHIv1NHT7FrrC9r2P3Gh+uE9M2Y9wIzMxDL5uCCApWvtyVvqZ85N+wnHOu2YdI3PhkXFYzqs4WolRdM1vHGpXbFbTS3Rh/5CV17rE8wHB1/Cohf+8XOJncWPfVPN0JZrh5VxUuBBgFvCPaRkpW/2SCcszKLVkaAWkXUmumyJcAvL1TO4P73Mb/jjkD8LRUh0kXwl+cmXLhlbIYwbdXLeuSW5sm8G3rHHUIQ75JuDV939/rtMeX1BOhkcisNSoZqppeg1S8GyE8MXK5qzQafJO7a3SHzz3TOsuZ9/dcD/qlOxTJdgrILXmpS0lOZnq3khr8PhtbbVLzvz+SQk4RtqHZ5E1U3kaIgEnjqxA7V1yyoSDubB1y1F4/Wwq6/Ay+tFby2pyLXU0tkoptFjpt7Fs84pVQ/79qxKJ4qDl5tR/OPsukOaxC/52tSDJdhd8THcb3W5Am58dYa0o6oAzUFGN9ZS4IMftZ1fQRmUmkJFb7/lc7ZTzG6Ly7crfsJT4zyvvEdYCzRr0b6CH54Bq2+e1vX98s0fHtmBjxZ4oqYnRTIobCjOwlxCdxg7KItT4OUtrUSyegfPFxtgJStXHj4uyRDwfnH6fqk2hI01V+7NBjHKKDFWBH+LlMLaor7ZQo2f7IwHoQpdywl8YMhgr17ftvAGTt/DvPjBC0/kRjLQsraRjP1KhHD+STBlwM+ft0jRhWm2I2zXp/e7Up8ZOIqIVnnEdIX9J7nNf7Q8rfJXD9fuoti+6rq1kpnLaTHHx3N/18ba+JRoQA+fzxS3AaNNBKP+dYv7PudKn/67K0KM2g5O70HokyIRsCbDAs1sJLWtU6AKttH1Y4Szpt6DtXz+hh+FfYihxWrXmwoMHnxcvPKJq5KrD1HCv/KbrrNcm3THhNWhFzMmhcj7a5kV2nezJJ9MaPDYRd7Vm/EtZj3S2+zLEyOxRNCAd6HfeO4nt7va2ZamR7gKGMV0yvPplbVKt0NohYYiL5biQ5g5hKUZS5gYVZMX3+ZbCdvVMs1prMJc3PW7t2boxRPE26npzHgyPYIYAekwXOB7znQleF+TcyWFe4M2qK+kjaL18apvanPGVOyGPaHDkMys6qWJcl/sYqU4QlkADvMRp794PuYjhq94n1sQDHvvODC5EZBKZGjEDkZ4pUOZf2ZzUYgGTdBaWnhDOWu+c1RQd6dL3sbJ/ua2zaN+F0v3STItuxF4EqartP2qQ6Q4ZTUXnl0GPDJQjwx05zXWmwx0LEhoo7wzhxKufQ2xMWtWn2wZN8lJLn015mNIFEuJEx8c6VHQoUG/yOWZfYp/Nk8X1QNZ4tp1abVB9P+hVqgxd3xce047dqpQJTnTvfpD3kep40OExtv28p/Wimnr3z4W8TAo9ZCfJByURyXjZbMVlr0i5OPItku20R4Pb56qBsnfs3gMdSrz+XUva6d4fMdabUyIDZkLGHBaVcaqsoHaIoiH1zfXpVJOAUQHx9/cqXP4vF3lS5/OJfP7smnQVOsOKuxJvHDnntTM2dTa5JLFQ5j2Gx6Q36dUcbzSC0pcLF8xCUG/FcKcTLMjyUjl+/TamAsorENIp+hH4z0xT8/aMrpYciICk6FeBXXhx0E9A1PZOCAy7zR8ZUNoflOV1U6idoi2wNF1Ga4u3C0/wVvytknL/ohrp+jGLZr9Lu6tbnJk6PdUeTe1j6m4rHlGdftsHYytH4UNrFQzCsoSGs49GY/qsAlR65kwwkXftlt9pZ34uBz1KuIHYMkXI9JubLn8nRJeypjgvXOhedupNNJusnCvJ5o3jP6TCjHzRsXIDpMkKC/NmDpLxNUnBUFgRcB6s1hALQU36/kO/46CUGVEojfOx+iArNm1bpJXPOrNjaPl9jCEVf9aTEOD6UNllwQoyi51ItDvmHzTmd+uHrAb5hPvKEN+tpUNA0ASq77C3XkSGJ0uJiZyW9YKUxXCDTxeIUy++4XuybbbCYc9Y0minT9LgtS4wVmIBh8QmLdIu0mRrRPnEI7rxeGAZjFLI5b26r0gU6/KB47vCqCloo8NgV2dyplqpLYbpQehutko/nbN13qeopkbRcOL7cCSB3xiN9btJaMv8qBPU6ykyPABDcmiorXaGDF2pbJvX2WOSgrRdPjlFiGVuCAeMdSpTX3CRYuf4q0PXdMsveiwHL9rvEwzH5EKE5BvQZBAmc67ecsuGXdjg6siSkOVDsWr+9KB4OjF8ms1yy4f3bOKQGrCLbyZn4qmpSPPkmsqavflkr6ZpxAVB4ynfL/OCpZ6YwxW3wwvdtRNkPH17Fz7FleiyMhj0NkS7uuazPSdqyI4HK+RQI6Qq5ZMQ7oa4qQE7WDfsrGpDj2LFWJluYQGf1S3FyluIgzj5Vr4tLm4zGQJnbtdb3u/DvNHScWy7kK0OGXrs5XQzyPHB4plVh6VRQ/6B+nNRcmN4evfzrq9uDN31xQafWczqhteD7ZikiWgPAl62fANEtWMFA5ubj1LsS3XqhXTbwigROjHBSdgN3M1xx+//+LQ0tDgULdSljpjkh5HsVh+KIwwqbi92SiBexFfDkESAPZM76WdfLJAnet5bXRkRrAL+qZbWeQpcEedATv5zT4CibS6TFoRZFxdmCNZBujOZv3CAONHL7Gy9h4Hmqkfk+RKPcfn/OCi2J3PDD+QfNfHKHPMKIhIcZ+UJbYYie1RGZxImzLY6247Sr5fjfWyeB03oTAswRyhorwe6RIeRbxWpGc2GU39ZV5Qmu+AQNuHUEmNFmBHVfPVvkDwEuY3REQFOfxk/IHJNySyKlo8NhblrTUW/INSZLsGqpvgzoZS7i3BZNX65AHlXL7kGzguq9KS3nL1at4qO8ckkmbKnqvo02DR2Zn5mU04L+jUJsXWLxTBphX7MDrUhZSQCdeDihdUDsaiWZ3mbrr+LKijvjYR4LUcyk/9bz6Hz+GxEJIPG55readeikiUB2Efa0gHua8HCi8j0tg8rWmd0HN4/vLfkULszrWLQbIxyTUkJ8DU9dCsRxtpubF76ESAfdIXAV8TDDEoCzOMwrpneMFEc05fmn7W+xzkqgou8+U9SFSKpfHuvOO+30ryFF6/HGj7kDv74Kb/UVoFHqk5YtBqE1ae6DuWZfT3C91Jrq0KdkeBetvajeojECmDhXsVk6iaeWipVKO/Kf3FVieGxotwQo5L5YyiSSRJ0bqmDWVfjAAGafKoOguZN2/6gHGb3668W9H5NF2HLM10iiItzLcLn3oDIguPlyOPXqg2siUMzdx8WZWVzOkhsMtP4FNrYrHjAGqHPaBFqA5TEOJgM8zXPab8xHc+oVplh8XY6ghSU7oYQbSYl2oCZImWGagirsR7LMPha6EEIdZxQ2vfA2EwkmEyDxkA597a4q/qEFAP5WEvWKgvZyOV1DfYPxeGodnEsa3WnQb/nEN36E7/4LG+5VGqEWPvjjVmc1y0TefHMottXVcHTegR8WyoNdS/BcMr4bBsYNcXY2CN2gaJA7tQqxYCehEe1GxxQjD8BJSSBx/2xN9nN4gNXyu4XbEAHqQ6aqZojGc9mt5rvGPv26Fx702WjimJxNfbxLSThek7vM1LTfbdso55FbUfX/1Vu0Ix6O2slpbQVYnqa07U7ab8SGK3/Y2hBp4EZMp2h1euigzIEGuvABD2VRqemXyeyWmu5KsBEf+87dtskcwkXNLtUY3rixJe+iKCsbM0QFctZWaadhr3CiRl2rZy9BzFyuTSxrn0ZMx6h5RWSUXNJRaFWF0P/TplGVJXi0CWWbDhSmaFpMpjoJ4ApM6n9d2i/t4bhQJ3qHJ2HJgvUdytT9L8Ps2o/7LjLbrJOphCYinuGnq6zRcZRKFJUdQXv/6BxnFAGqNvCumeJYvRTMh0mv6KmCi6mr8dMmwfhR/V3MA0+PR9+4AazX6NmOJqxToO0ewh9autxiFb+s47eZgnduGkFiNTp3f1BSaYSRSPr3NKX8eRzUAkT3vWOwiMuxL6mMlqhG/U6x6R7Qlbszewqy/iOSPnQeVlZhVB0z7ZCZAWmdAP8s6PeyLHrmVVAFgleCvIsM6cqiTBqrLbemaBnYsnrIQgkTLsBzFbu2RI4YABjqJP+I/chQvmYI+bLzcQtOZ3Bj5Z2x/yVN7u1P6QGZqbbdJh7OKpfyPq/4H422qv3JhfKJA4XquYxZyRYyecObtX6mVfxPolcW6a78uNL6k/3gSARwd3PaRMah3V3C2LHJLaZEqWG+9KqBkUYsTo4X0muoRPJCioTB7OGY/z2y2fAlTYofaf3SIusGwiaqshghOg71mfpu2XTsrr4Yy5g6cjAiTTv4xheu5GiVL2aVBjTjag+mvoCUbn+4IPC+RsxrVjeilyGap//MyzkwmjZO7SthV8GGXlS2tM6MwR0svsh2OXuDYRqg5Pb7g1sd8schMmNXVI3bnuL5RGrwFXCSmDSGKbcyRodI+jYn0PEKnRgGZ4GsHiJzdRMkT8bLer0XSc5qKh1OmEVJErEsJIVZe/+rYWDQkf58MEhxBl+SE/a6UcE7YOkR6A+XglM2pHCmbYY2kVRprp03UY3TaWPyZAa3o0V4Vt9JwnStQAQ5i8hnS7BPGSatbr6YjRrMypoX3yQI/ce0K5dhIWxPIuokjGgnqGg+y3ajoB8kVfxe1r2WtM77lmpOIdTJ5AokynHW45y4wmqi7nvPxaZ2sSFwShVXqcAt1Y2bM/3fywvL3tS9eq736OW1tciq2VXAvcXOsDAmfQNSVx6MJzkosFo0MLBYLjDuu9UrejxFuRNOx1avaS/Q15X0U9Okm7Le6GU/9kIFuyPs/N6NHssNPEVtCtbxZIbSNXiPBN/skjEX7uOFDMnOJpm29JPLDEFHjsm/XFkUrt5amLI3+gakuH6zn6lcKq5+jBl/gBAEvq0VQgW/HJA9i0u2RaPDJC+HDmBXNm4GwuhF8NtoLfUxWxc/TnORaNww4iunVzn2v+R+oT8LXWDF9afFAeth1wZi3McFEulqbJrs9RqnI7Ab0vSxIZH5S+2fra6PVofowU0Z0UZYODYgFhcgUTKKJWqxmqVgknU4Q8ooJ8fDrxlg/up7UV7FbKw1m1xguvAMOWhM1RXBOBgXrxS0olMdJSarax4CMU04PmvAxzqkLYrwi5Zxwl87TJHvxxBJkpFA4XD/HAV8eP8BoKeI5EP+wTdCpTMsSoJxfifumHvFPFFy9BQQjN3u0zrK8FCHSJNII1HEWdMeEPXj15VR+esOrkMFM3SmMh3di/naeIMUKbHQ2fon0IfaNuWGhJJSd27Kww/nVUsuf6K2U7As+n5V8fXXPvpGdcr+QnKRbmll5SKob+QjsNPR6LL0UPbSEYDu4qAPO+iL9UGnFZnmJXIZio1cOFeUrb4/Is0uJBWQXw66c79nIK/vG3MpEKoZLALGDPAoRV8BZN2mlfxhr06VtPZZkc3YGM1EIk+kaSSZUy5RYM24cnyY4UuJVr/VBUkUQjRdTLjR6NLMVU3DfIIOSypZug4s9byvPkXcAeEZ0oNXs37NbCaZ2f1EGBebKQ0XTcYRt1+9MZMmu6wT2gjAHMSKLaDEOvBlZ6zSk8rQj6WUd/kvPpU2QjH2QmzXyALcK+A/723GZ6PzqyuWPd8wB7+166jYngUY5UJhnfmPfaFJOtxshIrsv1V1Vaey0D1XFjHjrPBj/SDW7xfC8BefKClAzCEtrYE6PDet67SkDWTJUAVo/9ScHHJemwytZ50mvZyBdjWkwAGfrg4EN/Ed6ar+/Z9Uw5WAfhKgpDGDPvDVxhfwZOhO3detr6nd72/6DLViyZOQ9w0sCM5ul5r4Ey3ng1sCpsVKXKPer4JUCGdHjpA66y8O2dLbl3m0EvpaXgEft67UKKIfNV2eSc18cR8R1UYCIWyzAhsU7CdMcrahiVYZRrBtJMLVzoy64g2chJYxkrvh3buoZwR9FGGGLDsksQdhHUsW6tibhjIwGIyQh84DqQKxvVXahP+CbmMVsQY16nV4Cwsm9xCvnpTE40zt1ynX1wMN86N6KT7zPPqo/00OvrDbuLPYt8NEKMwkVnicpAHvRicXdRk4ym+UHjtIApNjdFLmCRbNSfKzNyxysynvlFZKmyxBopze3SCRPhYZUnAUf4Hg+XLU2PY7lLi2gIi0vVlDettZJQ8oU/z8Yh6tMZKtm6jxTpu835diaeIJtVOO91dcsTnJSVzMTZKSVFW3pRLTYKt+qeOIVCYQG+KCnJKWyy6+zr6iAZhyQse4wo518UYZbBDIIi8NP5khrJX3Oa32NQ38B0iu/JlRZ/JPmFMcVNGreUrX7pKzyEmn10m+TGMSEi18InZ6gjdobRGJTz2UQu1ThHaVzLZLAV65N7ST1d6GX6XsPwt1V7Gol9Fx5aD9DcEiPakYqGRGgFh3Wx341CxJoGaT3wyBR2A2hijhjzrTcg9TGbmkeW0QOZ2e1FjzjJOqK5Grw3jvAVAfrTmSMpp5doj1pPUKVuIWxzaWQn3maeXYJ+xDePUG2jebZddhLypY5wMnqBbH5WrQavDa9VGeZXLRZMomxHk956Frii7kBs2PrF5rIB61tiOoulJZc+EsV49SSax897VoxG8imWXIiHP6q8l0+CnbWY3dGjWAr142GcKIWE9NBEz2Bz9PdvgmKzLaMJh9UjVkP6OW1I59slrfpelbZR9EnFDC6aBWXWxInV491kdne8DLVDP4t0Frv3K9V0+FWG4Ic1NNLDm73V2p7mR1wpQmzni2Sx5VJRaxSbzmlvlIQ7rRSTeEe/7LjeadBi3gDQp9YxCB7mgVUI1fvxYfLLKiXyKjpT4XDM4n3kTRllDOAha92EMVHxyU38isnYqeXFeC+C/kz9p8uFqgjLtlqqTNOFTnaJ6g9dpJ15XPNfRJv0U4upSj7UaJJPPGpMg/vxWtNXNgc2uvv4YC2EaNCeGJphM181BfLQmeqw8u8MVPChsioecwN5huiR1WZGjtkYZaxZ0QM/vtCJT8u2TG8sw2VzDeJuEfZM3RInqGY3p/QWh8c4lbt1w+6yyByxpTFiG36UMLoL8dI5tdzfU/em0zLTkSQR/jnPHSMU8G16nl/XDMJouR1RAseZb3AjU2Jlt6ROg0oaxnxI5AnhWaYKsXcJWrRi+cXEkOj73rilBDr7S+ODl/kAktJkOiPvIDDhfffgzn6GVLNF1DxulB6HVKpizpyeiQ1GRr6c6CSygjmIfcNHza0koy7xJrRGnLZO4dK8/D0wlZVyofMH0nvnNhMWeTPeK+cc3w71r8bU3XFTEZH3aNZrrzWT44ycn3BHklO2XNAQ8k54cRqrLF0dOlkQajOSTwoXE2HmPLlO6q1anHQCrUlzsltT4+Yr9dDJHOunZElrTL2AsMSNH1ypkC6O9F912P76wVyBgjF+S8QkHOrMiHg0hhG6N55hE6b2MeWJbVhdhanXiPKttJBvyZBRPRHXYruh9RaiZkYkQUNBuTBkPytXa3rNcAGRcB0rlrTzyl0vzA582mntfLu7qeqEqRCohRbLL9GfJVc1sQXO34c3s8FK6SJDoaLAjOJvUsHk23TgmH1MMJ3n06WAV8SyItIR8xPkrZGz1VVrHDDCYEg7I854B8J2Iq+GocM05y6kaGqpkSQ2Vuuqca8EIwMmbThCucCVqSWfXRUhCV6tE8ko6qTMCdffxrvZuiW/r9E2hnb2sGrqE7x0OnbTuVZpP/Xy4Gk7yI7J+pjWZRhaVbGoMOw4K9zG0E9SYu0YPe/mtI6S1+dAwu6N2p83wmJfnrNFdNk/T8lDNNFjl83ItK7ZTBx7hEDKHxmn5+9Te1+LD50bfEeqaH9TL/zd2bZn3m4754CLfG/Rlrs8fjftJ8mUFa3NCt9LwVHRiYePtmsR+1iCdpU8xtqxwVEi5dwTj/IkIwmYLztO/cU8eSw3LUvpZ7HVpctF6jOmnXf1KAvRwHvQyK8R7zHHfPkDdzK/cVqepUiEHimEviGiVG8UpSS5f4ivayq1X9AgS8ddp1l2sN+rEpXW91qtIXPXxy3NArIZZ6mo2BEskwNbtGEQxNNNbwhiEBKoGeZSX5VXcWB0q4r4H6bXkN6F8aVby3WNwSdtqSyeIagjXH7qhqIPHt81lXFiE6UasC1L7IrwrPF+ooMPDjrBkLbiJnkMniFPQS98vSxdcHZoxVTMibrTB1xxPTEasKbz/V7ZcdAgghOnlDHYFks5IpQUH9Krf5rlro6gijsnvk0SxVvIUNdyBGPyvngu3eDUFiGjBo6yMt5n+4etXIGbnOQOXb5kgS1YPe/tocndQvu3ypHtIs+tglYVESo/2W2Gwgf1jNJHe6L+1Z1iRmpj4qLv45ozMbj3hSstkcMAvY64UtfPonh5HgTkrOkCVF+4X79Y3kR5eQmGV9S+O0D2wLbhH1Di0+tXP/Nzn4tWWawWYqHsl8/RGUp4h453IWBwtYQVTbJekWSoouSDXReGH+Gt+nqZOa98ul4tVJfOFUPX1pb6NG+Or7USfUaO5m0F6VY0Wgpx5laeuK/UtSUz4eTAVRjBffEsXdhIlautcBaRI3T9J4sN9oNJN4kVYWDdwGXA0zs0cZ7qw+ixxoSmoIblADsAtMRZSBEhgNf9awVtqZtxmnZdE6hznUEL/Z1QhO0ynRSB264bDghKiDlrTZXo+WsqQTzkZmk4R3cC2SdJqIOiWupM+QtsBZeukt+68THF2XyOv5bJEv55BUKKZhBlwDv3idw9RWbJntQBYoP0CCA3BbnY0XRqplpqs2uDxKmodqVbx8zk8ZXw6i4qa+qD/FXvWmCu/3bIKlwB04lw3mJKakYrY1YqgjJlZwV9qZTJt0+Jr2OotuFCQU6AOYxo2Rh0L6mvEnI1qVquck3RWVRo2STjOyE0E/I7WezClXbp9yKuyVuuPr6CAu3cFSkIrMBRxt7hrZbpDOrXNT88qm2hmuMeWftpMYqG9NY+oFnYhnpCNsdzSdO8+IlUUlikZVq9dCAN97epc6YjPZrverZWMlkjbZhRH0zI0T7x10S7hCkuEE3ZHwyGgU71PJosaZZyk06/Mbk2hlkoxhsxQw3DGpXHadU8XC1BpQgVvOR38d6eFuYrFy0OzBtOy1J61nChZVnBxnae8ePSsWvYDNWXSpTkAyKDj4tn/PRfE9fWHeRvy/XeODzuBNJ8YUgiht91AKqrt8JDGNuLZi9fv/+03INlvCsti1IYjOO8ywtvgjeaa8AuOWg5efidCogD/IGcLSd+wnV5oIafX7DV3MQEL31oxk+qX+rMSlPMb9qPRuE76wZTGREW4NYQTwsvIbutgT2nfHHE5aVdYIId9rpUIqaMXhU1sOvIjGnmcSw6wr3AQN8xjU+ROJWw6lEL6TK546yTI4eYcr/ZfoZC+LwE7YOyK7JXOg9tMF5S8KnkVCoelk6YeKqhPqvLLYSXei1TbM3X7d5Kjb918MJNhMfK63iMWa8/9ruPgHIRDqOAvNCiDBCdn7Sq/hY+LtvOjUVikJPWRSXLmPN0Casyf86+27r/Y2fIJZyYmavhNY9zqSpfZ41RwZlRUDBtTeL2Gwa3FUn3B/dZFPOBl5e7VD2o1NacxgyUZGVhNdGt7RChqGSXc0cFe1kZkxSwGVOlZ3jQO8RrLptCQlRW8An2hcEoCKVwyCJPeiHKSHVE6aRYRm0NH36aTdU0+64vcXS7Ekg82GqsoOLKrC4zIWano58l/IILv0PjIAF/IkETi+iUSxTNwBIn4ubQP7DUk3BUsbNFJmLDs+NdE81DWyqxfQYy2ejD1dSN2PePlTMd0qU2oWzrcPR2Zoovj0LsrRWULw5YRmCKwTQhV/p1iAPqsbMyJ7ISyWNNm+2lTauQ9OWB2pWrzvzHQsMCKUf7+KJiWRHVt32ix2IauEUdoiwJXCNpQq6qy8ARu7XafPM+hfIWlhcn7ilqrNOFL6tqb3ztUMY+7ZLqwtbEPqaTl4ZjcOqJ5pMceICU6dSHNEfRDN5MWy9ve+K3uHy8rGZF6upem0pZXG/qiKtMzW6J/tACn4pdoJ7kadHOIv9TBEC3s++TiTed79xeCsztn7eiVq0kboy2cWhIIPfiX8tceR3uoVU0s7ULi+lG8HCaGfvNbT51VpaqNvROTLYPgGD4YmR83LDtmmcIPvreKGMk/9tIUPsYJXzk+VRc/sBnM89fawvdstso2XMsZlqNLps/42Ye8wQH1wC9ljbMMMg4MO91XDRglfFEnbJ22sLu2pdMNpNarHjnASxVSZq9yOrRRN+FeRdfiRi98oOLJZ7VYj0K8bflInPJGWWSZZJ/cMrND0DfKczGpWuPbnvzToBkXVRWzcmw4gdRQ7Npl+CUtCcwhOL0VQlOlaajXiaWHuziqI5yAOnOxFwfsAocjq20FzbAteZyJMHq3fzuhVG9G9qpECWreYV2vPZEUOTq0aQh/QAp7mKo8uPHOvJHh7LUUv0h5Q6zm6zwkJOYsC9+P93L3qYEc9XzO0Bb7hha2dHRtQPxyjN5joKg/KT8kFpOiPaXaHcfQ5XbD2/T1GyGjCtDjW3FBbpvvpPKmKE+7HkuyFR/FB6vF17RsUIXQQmvflNEHDDCaAHUSwTm0JErGk8JNjawEEnQL4ZnSptHSssqmtjSnLdSUcBHwd1vm4DH3SUOFcrMG3808h0SWJMXEPgwyTmYeunfkhUv4mjesNPOeaHgn09RnqiSy5EM5xcMj7GMssjTcydosn7yBQawXSM4NCvIxbik14emIUo2aMIs9LdmIYYylaC4fmUq6/5A9jmND4J9I9NKF5hXfDAgX8YYN+e2OTd60XOe9ZG2Hh12uZ3+YbBs29neHrCR8DZ2fAFvdfesRyly4dDfvC3sddCm6P28DNfxTZtxbOAn84Gc71G619xptHCqFZpZo1LEJYMYZ6Dd8YK9jBYW0fhG3yKnc4pVm2sJdKx7ZgNWWfaqNp/EHuJx6fjM7AZSN5ac3FwmATVZ7XdNLFvloe6rwU07kcUE6mdwYs3BT3Dt5NjIevG5SyNtffIfN+orsPaVxr+Haw8QDimri365mB2O0foR7bO3D7cYQw4smpDXi6NHQ933DdeWn0Db3hQ/a6T3wYv8zOnItj95Bw36uFHzyef/AHsKXDUKZW5kc3RyZWFtCmVuZG9iagozMiAwIG9iaiA8PAovVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9KVFlNS04rQ01SMTcKL0ZsYWdzIDQKL0ZvbnRCQm94IFstMzMgLTI1MCA5NDUgNzQ5XQovQXNjZW50IDY5NAovQ2FwSGVpZ2h0IDY4MwovRGVzY2VudCAtMTk1Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViA1MwovWEhlaWdodCA0MzAKL0NoYXJTZXQgKC9GL00vUC9XL2EvYy9lL2cvaC9pL2wvbS9uL28vci9zL3QvdS95KQovRm9udEZpbGUgMzEgMCBSCj4+IGVuZG9iagozMyAwIG9iaiA8PAovTGVuZ3RoMSAyMDEyCi9MZW5ndGgyIDE0MzExCi9MZW5ndGgzIDAKL0xlbmd0aCAxNTU0MyAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o33BVAc2NYFCuPuwbVxdwju7u4uDXSQxl2COwQnOAQN7u4e3CVo8OBBgvOYmXtn5n7/X/VedRV91va1z96nC2pyVQ1mMUuwOVAa7ODKzM7Cxg+QUFLnA7CxcbKwsXEgUVNrglztgH9Jkai1gc4uILAD/7/0Es5AM9c3maSZ65uZEtgBIO9mB2DnBLC/52fn4WdjA3CwsfH91xDszA+QNHMHWQKUWADyYAegCxK1BNjRyxlkbeP6luW/RwCdBT2AnY+Ph+lPd4CYPdAZZGHmAFAyc7UB2r9ltDCzA2iALUBAV6//CUEnaOPq6sjPyurh4cFiZu/CAna2FqZnAniAXG0A6kAXoLM70BLwB12Aspk98E9iLEjUAE0bkMtfYg2wlauHmTMQ8CawA1kAHVzeHNwcLIHOgLfcAA05RYCKI9DhL2PFvwyYAP9pDYCdhf3vcP/x/iMQyOFPZzMLC7C9o5mDF8jBGmAFsgMCVKQVWVw9XZkAZg6Wfxia2bmA3/zN3M1AdmbmbwZ/Fm4GkBZTA5i98fsPOxcLZ5CjqwuLC8juD4asf4R5a7KUg6UE2N4e6ODqgvRHfZIgZ6DFW9e9WP+8VlsHsIeDz19nK5CDpdUfFCzdHFm1HEBObkA5yf9YvImQ/pFZA10B3GxsbDx8HACgEwDoaWHD+kdwTS9H4J9K9j/Eb/X7+TiCHQFWbxSAfiAr4NsXko+LmTsQ4OrsBvTz+bfifxESOzvAEmThCjAHWoMckP6J/iYGWv2F327eGeQJMGB7Gzx2ANsfn79PRm+zZQl2sPP6x/zPy2XVVJCXlZVj/JPw3ypxcbAnwIeZkw/AzMHNBmBn43wP4Hk7+P1vlL/5/5f7n1JVM9B/amP7J6KcgxUYwPcXhbfe/ZeG+39mgu4/60IP+N8MyuC3OQYC6P4Ze0M2bjaLtz/s/5+H/0+X/38z/0eU/5ex/7/1SLvZ2f2ppftD/f+jNbMH2Xn9R/82xW6ubxuhBH7bC4f/a6oD/GuJlYCWIDf7/6uVczV72wwxB2u7v5sIcpEGeQItVUGuFjZ/DdB/7+AtvB3IAagKdgH98cwAmNnZ2P6P7m3XLGzfnhKXt5v6UwV8W6X/TSnlYAG2/GPnOLjfA8ycnc28kN4u/g1xA3zY35bTEuj551wDWFkcwK5vLoA3en4AK7Az0h/3+Z4HwCrxh+hPxMMBYJX9B70HsCr+jXjZAKyq/yBOAKvGP4jrbSD/QbwAVt2/Ed9bBrN/0JvO/B/E/oaczSxsgW9PsZXrP3LOv+V/Tc/fCj4Aq8XfiOst7durY/9P+D9ayGr5L/iWAPg3fOsQK/B/4nG+JXrrjp2Z/b983ppg9Y/PHwjs5vwv/ZuP9b/gWxE2/5TE/Ya8HG3eXtF/LN5koH/Bt4bY/gu+dcTuX/CN4b+KYX/j808o7jdXh7e5+Jf+jSD4n+xvzuD/Ub9V7/iP+o2/49vGgf/VIfa38v9Fjv2tVpd/wTcP13/Bt/xu/4Jvpbv/C75l9/gHcryV7vkv+Fap1z+lvLl6A53/Kv1/JtrCzdn57ZX/88V5G/f/4j9/UoBAT6AF0soi2EIg5ENdSMddjRiRB/PepNAc9Z5OOj2zz4pzp9sDGnwKfXVW0KbzrVjKaB/G2o4U3Y3oKtmzz3FrA3x4W5Ja+6Pvk0mC+sxeO9LyNO7QVOGxWP0gCSIxs6bovu+zk692oC10K2S3PHWekxsvmmrBuzuPARnP+sGv38fDFvfU9qvfKyA/fZ1ljtWKMQwsmafON89ewKeAc2UmQWDAuvBEn7+5ncPKnXolk09gRPI7ieUs8tHf4oi7X/Ber9DkcOkhoCLQxyeBvsEan6HxET9Mlcdb8iktWhta9mwVLCLLRWVKW2PGYDnkyKwGqUc7NPfXuo+vdLHv5qUAQmiJht7tJtWWNWObOFOo4FS3m0S/c63ltAWSHHZZia933Gr3Wn1II17lm61/BSzwkCfVouZEekys6/L3oHDm5xbKe5xPFJ4mpMsp4H7YfrQi0HnCe5YjPGGxdZcYG9cxWeeujS2x/q6jf5Omc6vy5L9mRK5A4TnSP7wcOePsdiI/XxQjIj2x+v74Xj4bzykSQhi68FLc+MuMFRqtIEdXgnnCbiKxRiWcN242jDBrq+3mvlnnj9Eu1UqKD5d9gYlr+K5bfgZYq5Q4aQaO+wl7JugmyPCnlwXvRI/04E9XsG/JR1sfXaYxJ8nc/NeWYFgjeJWAZBIcjD4Ji5746FQMDSe+RY9rYbb02c01kg8nw6MonBKzUclRWqmd74jhJD3G7i+Oklg/9afMRCVWfOGBdkvW4Hi9dm9fnww8QfGP2PdyvR1TsKT4tmdFrp89FSrC8rNpeLjobPxG076xQPzZbl/2OitvTErLIERfOqiuzFTt2ovedGMGb+3O2hJIIC2XVuSsxTwk7/9KFO15Y33KFaage1aJGu/TuxJQUf87KSMFNWSf54jqpWHvMl1FVOnx6xcRw8wxODoiRexImB9lcRkI3tS5MAuECsryT0mmA+WFs36LOu9bCgby8MUQYlWJMN4rH8VkUkTxmLZ3rCW5LSgjfdE40xX9xQCaG2B68ZT7nsWgwkqR2oPcjOTKLkBlFzQy/kqNOgiIy198dKTMF2cs8Fta/dj+eIdDO1RbV6yuYZxXhDunOtb42Sxc+uaoBp6uyz+7Dr/hFo0SrbWnLCRkHbvie3fI12Vxuhk5Yhp40T7M3P2diV0yv0jm7XR+nz0vMQiqFnv+O5igSNpvfsVzJe8+GBv+fB1oE95xeT4Apo5YD257w5IzrTWusya7XTQTM0PyNbn5JRYBExrlvGCnHOeaXKhI4iwPSEaWlNVYp+f4KgSJc9FmTc97UU1MQz7bC6xyuX0ys8CH8XSuJO9eR1AUR5Ho6fjkRoEWjomvIPkzThUDnDrTYXHvLWiradcdK0KQtW1E/rj+eem7cHPrxs7LMGnsclOIdUjyl7nQD0LCxOy1Acly9nwP5KaP+jT5WvmYOBp6WWpjYCDm3kgd4lL3IQqbTLEw4Lk2U4T/hOVy/wvgSNlyKN8oFaf7TiuRu7r8q9BZIf8szAJzGdH6vDcp2Xv0hGx8GOs1LBq1nRp9OYNGQZ0UU5Emqv4CsP87e/Jd1UHIyeNTSaHgq8lYtDT3l7Vhiv3dmx8Dvau4rbXjpYFcOMqHbvr6TSLZ6Irqjmqnvzq+2NxVBRJ9+yCwd2xxbQSkW2ucCCXYq0J8hMIwXycINWtHYJQc/6r0vGIsQLPq4GatvVW6/uUOWsgll6G68L1hXUDBT8jg6hxiuCurx83PqR15vfajW3jqhh7y7ohT6o63NZd7dP5h5wBbfuT8iFgt9J/mgOaauh/8GxPbiflp5o5bUiuMp9hsmJWQYhaWui+Q2eWZiu+sTBSuFZpOz5af4+RZIO1iY/3O+rwoVu2reshNKFdLPM1nfztyKxu8MKh7uaQlUx3zm7Oe1osC9D6LfVN4gHnnY1W6sumfzlM1R/Yb8R5hWziLvreMbhlyHAUfW20QMbLH+D1Jq4z4VBO9BL5V1pBdZI91i9D0lyOImOf6gYCKojakYUfKd1J5ocdxTW3xqWBqEOglpVOTlxihz52Jmsbn/TKFHIWqm7CWHcpssUOm33nOUe6P4Z2vX37CL7n9RDj8AJu/5pWDLmtsHJST+UnkI0Usr1htfxhkXEzXhsILlo1JQ43O/JrT/kTfGp1O2U9QBmQLIVcurEu8yUZXdjlFBevPUXOmnZk13K9wO4feGTnHe/td2kF91l/sGu8IvvOatMLKlH74MOUpIa1ZMfBFh6KD3Z04myYtSRtP1E+cN1mnpKSgbdQ1D5bPCsHa+gnu98YOvMsS4roCiT1JPLKfp8HNMDmLvoT1ulju/fcKsvEb6GtBPvcpUkm6GUsbvikm0miwwgzX9EeRbl2gMfZ8QDwu6YDUeY9wZHITnD1IbQ5/TDhH8bU0K5P06RQpcvSqFMaX7gg6jUN4i4icITYwkIiWMIr6MCpfORAFD22RhxhqvsBRGBP1l47zu252+M5RCGRlH8UVfsYa4f7noitG6P6J1NSbFn6tuLFbePpjm19jgiXrrqvL/lBFH9hR1HKqmDn9Pqd8IVvTRMLWcGM2wodhuMAy9WFqDKDTbppuP8gj2yxmWnVv6O4PISNnnF/UNyq+pjul0HUIB/VRVwcnl+gNXykLSXq1cpoq4rnBRXESLrWOPa2230QdVFss83MHjWoCAn8snNHQ9SGP0+mxsOLd6Hdr+0ZHM/KIzQT5cX2Fb/qI9Lh51IqyVePV0fru+yznPQ398g73MoWKlmOG76h9fb583Vv5xxZqyRLfLQX5jKcQjRpxntc+wW/gbfAu+M2e/XyFKf9d2OlU2OKmFpU7G7PizPpBceqyI4ZZrGajUkQ0ZDLDafKm5k67c5DuyOwGgrKc12tLm1CQS5Zei6Rf7iGRt8m2YSx+YEL98cZX4HrSG45RNnM8oMiAyCAHQA76zSE+zuObxwRt8jmdKLcuMJHtfoaZRSnGYcU9QZEJIRtrkXIkdWpcQ8nPHPv3Am6x8r3S15u5cbOKzsclhYMf6FCB9zCbxVdqotvQTa8i91juqmyGsoEbHQ64/vlnbDe5/nVctPuz6z0yLT1WSBBF+FzPIL7yCl0bcHlnBuEUl+pcnfe8Pvv0iu7ZzuQFIJTtY92oR81wv3KsSDknC9TYvHmvbOUgIxST8r4J2nEouy9WX1SoS11t0Hc2Fs3RjeFtHhCOauf1r/iIVNsD55cvWaCx/cy5tBe8JQHo8hVTCWOsCdCI5Y1tDyozs4pXjDFnFkGucpAxWKq5F/2xTA3DeNWT54YzqFPEiCNEbLojkx/e/FuhU5XASs6zXdiv/m73YTLtiPCo3fjnhtJtVJykg4lzbhvsuTmYPCo9jNXjU42tQJklqGCAi8ajP6Hku6Iq1mBK+ea1GKVBzyzGQZpt4q+Wmh9Z8hNssofibAu9CVHWPQZaGfOQJlOQ0PjgPQi5Pzu2/xD2DVLWaKXRLnt9FmwllYA8YSkuLSDN+FnRkREYcNKkHf+4Xlxl7zFbIhPMhtP7HlddLwvlSJaGzzoyBL5A+H6FfRxEOqpTndYvJzKUFjJYP1LMQRTWl3KhJ+A1F2QNxr1fKWmrfWyH+hCJDTpoMSqq1HlUq+rzMul+T6CQxz5kIooj62PqGXiAEe95VYNkYl1nbTgo1+waeUaWWRsXHcFtP0CdCyT+7ct22kMMwxrAqQny9jiBCd49hXXy+5ZapHyzf1/yslX/AplDLCcGlPmNKkQbpysBBTuDNslbGnMMjjESWXgK+BoD3PNI+0xnzyBsMHAnw3fYUHPWa8FiziMFuxIK5VfZVYmt8YtOqnBhQt5/WjIATd081BPR1NwhoJHhIqImpR6xWQbzmCQNLE5fl4sdgcaDQ56oEfxzvnjyZdMUjCICz3dfFVli43MgHWvLJ46JpMhe9fu40gtMp4Yvk0DF9nmpxoizkvInFJOKfDGvr//2GUXM+dRZ68Jwv0od2JpuoN3z8IfEpvVpcjscl58qKRAZnQZs14HPlvjtN20PajN1gJ7ww6R2uzL4JHB4OTrk2m5oHQ3hQ46QgOd5zMtA5XXmtz5O9D16uBVymSvXuvZlK3kjglA6hJtvHD5r9CBn9lhe1lTLLL3BET12MWtBrful5HGbI60Xv+sd55YmaGNmJVvGqMl1CPOdekd/u+8JHtwsaN21fGYYmp0I8aKL9IXl/aRYeeRdGCaWtHyIC3U8+GaohgE8r5RC/FKR57zh5JW1r8LDTq2ywW4uVUsBtJwCfcOnnxISx3LU95Vd6Rw+CSOhU3xFQ/mGRKiC/tpmiiWWFg3G9DQfPZdCvZ7NyFShk49bb7mucx2Fl0kJGbYxszBnBl0dQ3o0aPBNNRll0IlQNnfCHlNOVFzcQfBMfA97J7lgw8REmUUImdqyXTG6dKIr9P0XvmiMRVIMWVXoJHISl4iT8G40+ckeTyathPoUSh1/mCOpId2Vs4x2rRzMt0Ybzongkmp09hST4BX8/Duk8IXuuZDrEbVIF3P3diRXooiZ/o4BKmGvM6Fj5h++B1EVkt1ka7Li5S9t46TNY6ysfbvre0Gw1jP2i/cwIhoDeNL3KkQYUr0OPHODGydam3FRWkk/rVbWC5Y6pNDQpz2fK+2L2vu7wlbnTT6HwZZIFqqbHRMv3W06EPROMiwI3UFB/ah230zZ5HhOPBk+3LopXnL9STJxAITfj0bo2NT1jXf7EBgH4J5MZ2j2SUq7dPVsHkE3x1nsnbWDSqLRXiwCkA+qFR/FXHrXXeEKk9N/9jTI+rKxzk2z0/NCYkgpimZWYv0J+okKi3uSygY+eEpgkcz+o5ZnGb3v58E99WJHK0QGPemxFNl373pc0AiZg5HIGIIOugaFmJKpuGC9j/fQbEPMbS+I3UUi5DWlvNk2dU2sNSg2NNe7pbrmkyas1kmfGtL10pCJNXDPTPmyMNJW6wtdoOCjUR1f7ywEB7+VLotIzgTOXxtV399m7CHudeNmvIoPy4jg1vFSNFAElLrO8kndaeDTj2DNDorvevKDzbZ/hlodIlRHS9KkmRAJvtCh8ty8ZiqnKtK2Uc+ZsD92a0JvV73ng/ZylI5q+TUgvIVxYbhJK+EJ7a+o3E4/O3iuvQ8bv5F8U39OqsK2TvFYk59xHTlHIAYwTBksu0APGBnwyHiZOPK68Vam4EwKTshnNNM7l6OgQDSILNPq8uCS6VsKT6Wb3N7OqV+uxr/hgrIU1OmEATU4GsOGcT8BbZwe0TzxmFs9UCrGq9fMri+uheGcV8Ne331dLSUzy/zFEIGGrY7NaHnYw+SRkjf8Q7vEPq8h3r/jSmzmZZ7+9M5XbtcrqyigOYNIFA+p4NOrGHVsBpvDByBCeJNgHKckkRH6VzSiaCEShYv5r/p+9OKgPUqv3xYw8jTHtttuiz9dAl6sl3Vg1wmlDMjUSfA8oLEE5ukL8R40pfU2AyeDe9ncmJDxFCPgNdM2xuJO4n6T9JPbvXeEnqK7+6QuT8MVOVuyNxnuLUn3mxeoc/PpKEWqRQWQCnfaSmcuq8x3+rMQSw5i8jqWw2lUKT6HIkIe1/E30WY9VgdoPL5PccmT75idDvlDiI+nsaoows3S+fys7rq1BgPxqaxu6m/zPiBNVBkmTNGVjb6JSuleobYaZc5PeYGBCoKvo5CcGE7vlxV0A9Wsyr6NIz6NKWGUCtY+pD8doau2WE4P2OxjyIcRdwbFA0B76HjyI6uiemB5ovBSZADB3gpc7oxV/2qwmNeUmzaIcurqiJj3lYumWpK/2VKFBrJHWlCN3cQx3HawfkhQPHyIZktiNUHJ9N1LOXMw295edTyBtYDpXax9IzJw/JPvjrA4I1u8Ehpx1KVhbAwst7mkncGGTgtGe9aHI2H5PbdLunj1tdKt6bTB8H6lx7MsgWAt6Zrp083GsuX29xauA3RXPWOkPfVwavZHfvT2Nojt7xqO3rV1gprYnbfWIR0Socjos9RyzgMiMZcbunvqJ7uOPViTfX62XxUmPG3V4kTIcQpMccVZb1+7MNVO7+9F4mf3fu79fmqp5oKy32EbQXISaqLBGOwVDZlYUxx6KeyzTHRBJlmErcAJPchM7P2OViL002kEU4I5OXEZmqyVnqLYjP+zU/DBIh7b6XcWq4w4DocbCzBTdJX1One18yhlWMut71GIfTUb9wb82N4sWP7acUA25lKioRns5oN8SoJV+KLK7oe7iAjCp9FEte0tIL+w1Qd2jH9zAEWx3X+84g01s3cKQFu2y2glj0bn2Gq4eEkgHizRy8TKeBfU7gLvl1YjFYurKFktM6XBQC+qzBvJTS8x9J0pE9/j5q5xNoNLqHP+PYWSt2tcjtF3MXl6I8WkLDjngBgGOYfU6lwJ4wM1crlOrBI8XDXtxKyai89RezH6dU9YFlEcqwuftDDCChcEJhHEY9K60aTNL6UXqlMSeK8D8GAcdHMb0+RIEmHEFAHGMTcJDH1BmSFglqNUwweNs+1bwr0VmHg9ObcTL3xdl0qRd8ik4+w5JD3dV9Px/IUysFWW1QdOkKXXylTy1l9hHxwUXXZ9xJ30vhl9IEhptHrRE191Po6LOg25+QXqwh+74q5z1IiBK++VqK/Lc+JHCoLm4/MEWsAZqc/5eEvUQoe3iXiptGkssuwzbmlSmj7JMzQEMZRWqThPLPEjszPXdciYYVBI65p3wHOkD6pIMwoCdkhU4x2xhzXp9SDozIK0XxWQSCGKatv1E2fyx2MfRSMi1rtU+LPrdp1rjeP2+ZWK+Vy+oryE5s44iYYwSCY+6KWbYATMCULImQtLXAINzuJaRadLjKiDSIpHPhJRKvBEk2XP/3w4HFH/kJBlyyGWKbxHQxxsXLd+SKDuPSNkhRl5lEp/Z/1BbD2J1jPcXFzVUrB6p8h4No5pjhy9P999Yc9+GVmePKGWQbCqllWjDmqkD0pIaZzPT5fE4Ls65/aDGAejcrDlMcUPdwjp94hSN4kG5yzo+ZNz+srKQZJEJDt9B2Q2+DgxX3zJsC4UDoS5Z6NZuOkUth9w5oQZ4cOCGbnavRZES3E2YLPjpsUXzgz0yFo6km8QK0iYTZ8wY1IikxMuJxLIi0qYfctu1LWVnN8jWlJhfoj9Xe5RBSTMbauMPaWjZjFluf2F6tqThGSKfzkSEJFzeNsQ78C+ZwNAd/Ce+Q5Uz976SOlwb7+LvaFSA/WyEobv0eeh4sagPHyHZgvhaRGV/flV+8t8L1+FbJ8Tbw3HaOEUJudlweSvX0sBC5nXBcEsgRoZcIwjeKI06J1RCYYDM0Y92eY6m/nkBcobRY4rOGb9Z2yJVvEddvHrDu1zSFKSsSgNjvCHEs78lzVXJJh78ydqGDBCX3YhEg6xf4xn6zQSQePy+pAm2EtoLTcLNKu5vhDtZBtURelvfsXC/DCU0eCrB63GRTayLyGIow+cWj7DA+/uPUgGCseehMVcaYvClOH0oqm/D/9dnA8vt844+AEUU6TUif1jKZYlTsAPb1MdYjEwm+2R/JiTUZyNS+XBabPQq+4YW3LPcffBFhrN31kbJlZrEc2u75d0wovQVP92nr8C9hnTWjzydMi3eijnwwsgeXRpKKfHqTPA12q6KfHFlyjArga3hwMCbYmL4rfdHiRw8XPTEe2hnPIME/dtleK4rZIUKR3fpE2R+leZq1AlWp0bxF+17tkO7k5JPPjqnbc8vRgnpQ72jroYsbVJzscPJW2RvLM0JbaQJLnrVn2KGrLyX+fBl8AXLsaObtgWngNo2mgA5eu13bV/qLfjL7JsudGPQj1T8AyHI1e2rbwvdyKI96Hs3IIZcd0H37My8JxMrLtOrj8b9RtJJ5SEQC5JccuF56L2Hp68OpcBil6eLVNl565dojlwqL+3g5LCRUKZ6MkSweNqlJWnKLhj/vH0wVbrckDaTLzavrE8iyzYZfPoT+kEeFHphr/rSstLWmury/dzr1vr3Fr0dRXWsVAm5tCgpdgUBPOmyVuYaDcCgrUrJNx68BCKiVDy7XphO6awptC85ZBa+EXXZBfdYzIXkPJb3FalCgl50Dqbh+GU+E5lDmEiPtCkSG6grRdBRvKkTdJ/NjL8ACxhEBwZsWoOoDCukfgUGv3qyIaMpAGx/7WLu4boM+ERRvNaEPFzlK2hrxBz/HqoQfIeLeYJ7Uh0hZ0NhO9sg3KG3WmwRPdMHrsR09UX8ZH+rRNPGe3XNKcMiu6bOeIsO/QbcKbQZSrPe8u7tS+Nt67ze6CgvTyCZXkKZ8cZEehyCcJs9yxQZtbGS1JOin4Pij3KOmSy7yOU/4i+jmPBB3YNoztpdY2khkveCnAqSileVGbCIJkDG1xlBWn6VAJEcRXKI2KkV3Y2FR2pxIVb6iLa8MVN6A4bm/tzF+bH1fazWlcsHirFRL2aD4P0q2Rh8BE8zipcFLXpJZpAncnDBYHBcaPDyF6j+oj86Oal+rNVH/Ly/RqI5lfvBeRyIuwxaS7N3C86zlre4PpFJRik0LaPFugvwm1LIQEhvITNNZ8wlScmXmyq0eRnrBQLcXCj4sZyE4qVy0viY0KlSEvr9xXpq1zRvvWZdNgRDY2XVQY+JJdnaf96v45DoeJP/UE5jzmf1NCk3z7ZsFR4ID5ppkUkNdyoGZcANlepezO4kfiQWZ/kEqAthWdBRd/8EOvPG7mq/Y3LG5qapNftoKKeLN5B9ivtjt1L2C8ZaIoVLQ8HIjspdnk/P7pfH1DdE+ZEaviwavOYD2f14A6FPIkvPfFCyYUkmULcxq5+Fuf5IVHN+4vXYvfEWoP8KZ7MznS0LOjUzU3b1EjyRUpReBcNVkULQArjlUZaes6tE0zTzz+pI6oDd+t2ej9GCkbn2jdRxEDCVm16tX/06XRIhWK3L5MiVbeQyUu7DgzJ6yEn1amJiE11SLOwMuMPXKEedeU2LapEbEuBoXiokvOCuXtwJqrMVL4QoXpxcOiHHHrE16WdSrMlcAdqE/uQs25bhuMlSTnfu35XMuDzxDSvJfWSG4xDB92QZQoOwN2eBjEKTnEGdJbsEoh9eWrE+1XWuEBWJkYFv43yTSR/yvArwUR7Uau/xAHmDH6rFxDN8gP0yBPUnvROunaNX+Bm5X35SGNmzMUTCH/xLrwzsibniRiBYm0T3ZlylWhvMHzZ0k3hKSQ85Kfo1NJuHoGctxRFFQD/LvjrR8XRVQETN5jQVBcVRJjNWaXufdYAsMosjr2vaAulfdt0QXcGDuENh9kUGoAMD2h6izZs7Gq8rePtgFyXZu5eiWTEQgnyG9y8Sz2JIcBdYGFfPrghWRjQvx+LsjCfCOAdl+jXfFROo95ROAUmIXz/iXZnfF4aIz6cPqBZ2CGPPZQYiaVMYkM0bEy09nsTZlMmtkto/040cn+ryPvDAnXDo3S2ymb4WavU3nTP72Uxa7Zqhd2nJNJUreQtDkfRPKpJqlNL3l8YIjFPox/HEp/ViOv7EgBWCCUJaKTIUBHmVeBt5pk1acK46XfMhKHvrK5rz0F7VCZRUuRXZMeYQRETcbbSOy3jDfl8t19f0QWJJwiXfGhBXquGzW2qMa881Yta4pPx46qXsi8zHBIwosa79SXk2p2IuYzcIQy/aJwWm7HRfwHV3U61otn9ZtG4jqopBPzzLDfHIftDPKovT7TlE9Rvpp0sU0osmqe52LcFdrhweMj7BiLBLuFahtigMj5zP2apOh5pMeobH9m5LzfBfp5ZkAcFCObB3DGVocsPrh1K+KNt1QUc6PDSq7O7xWco48PLmdIn7nGST0PA4Ql1XyUSmZBdjHl+b85FnQvGtJL6968jJZHFDJqwz2ytWNFyggNbfXZXez9Dtao62RQrSySHVGlbEca4V9+XU6IJJTjm7XMhyD14aKImG+kOx0RKhRVISabDc+F5Z7pQ/lpU+izty6z0Ja6Q4wL9PmsrrTz9RWIwsemFZnVIYimI3vC9lu0kgiuCxEIeUaNsDi5l6IiKsNyqh14iyV4hj0v8vNKnBowxmb2sPaYxcWVwJpHNbzY+e3bHZ5t8eJXuQ4udhPn3Wx6bRTexT4onGGXU4Nj6k1NKb9SACm5vhdW7fFTLnYLXI8W5bX4rsXdxh8s//LPSk0POQPHd1HuSMmUjmUnr+S74aewL4k2/f8ywYJ7wVzTzPDAi7n4q1CBMHlsvR03MT2c8a/LJudP4JtdD0PBgir9FQRQivubQ6J625+uW743XYQ3LU70zT3sR1NyWcibilLg7ZtC+dsujaJwoBVIhk+LQiKiUKfGpbTfw7c08EF4mRPY484WUa5lcHmo8/NGTYT4jotHSdZP7mMrfik89zfNplSY2zgNjpazeF/JpMxIaXPjFbKBu7/UY7fMs00Z09TELbLuX1bcrJb786ZPvekWoz7FNaDZhHuoS39fwBh2tspBsI1GMN/gm/U4HESRPplS2XSSJvIvm6u6+Uzy/36dH34UKwMJocyboLkZpd/UmR9ZNwLTSbaXpcMcz4ef5JaVkgphnx3Oqge/4/lYbTpYf8gTkcD/wOY8+o220cNWysM+F9lWWyX14YlA55YeTmQeoPAU7k5Nt68wYtKo2XXGaoy0w9/ilRbTsSXKDe2yEXbLJvWHlCF2osIhewUdCTiYzXTKDRRQJjrBTboMRjDu/ao3uLbBVVHDmKqvBFk71FHiK+0Q496z3lOrom8Sl7WfyG8YQDIPzHjVyWnVlZuQEDqy2uiaXHl5MjdDJXkXOsdDQbLmQGvRBI0UtUf1q5NcPKlGYHYlkuC1/7Q1hTQhacWRMCPsWz+lxHsigW1vygMVxGoCdH+73Bcugr8GqWzDRDUGTF6bRZD+yp1T0WI1k/acCexfBtNeymD5p1yuVnRBxh7iQfq8VKaQrmlnBaJi7H130k936zmo/VJI0l2pd+ndzaZ0EAeghrcVvRl5WIpvGLNtFh17Gjyfw89Fqki1ZNos7Q8TsQiFvhJ/ZD+gkZcQbTPeHxssZGKbOut+rDwoEsH26orKY4inG/up+t3j7JdB8T6LWvi7cAkdgsPZ6SUx5NT/5By6+8hMfzxUcRVpQ2QNiNnVyyZcSxbbfy1fFSCI9HVlI7Cct6Ab3yoQTLsZstj9jwMxLK4fOjeJpvbU5qjGMxQMHmHJBGHqtnB9/aWaTfuwPbjprUmjL2dMgMxFbHRcvsOLs+/zBNAtz7rEfo4/x3foIey/ejdq2AU1jzCM57tjsnLtaGrxYz1mZsgyyAqpnebBGvGf1B6T1lO2f3ol0umx340U0a5BDdfadwSnuQBsygKw3cJNLNPzQrFVKy5XTOyKa9id9/QgvkgXAinI9oVX3s1vih4B3fZpgyrZXA/IuuMwtlbJUvz2OK5LN1G44Qd4k8uGD7X3MrATmpaN6cChZFQeEwlAkgQCzYSAeBehXMOYvUyPmiE8Qly7Ee3LrEDHG/TVxml2bEvEcX2vrIlMVvIA4Iy60PwbX6n5h87j06TYLPDL16mxkNNf5ypw4FCTTAYlLKZEk6o+RnzUNCM0nmII9w+LqMmFF6eQ2/XnJu3od8ykNJi/08FYJEzSJBGz5GP37Kfaa1LVhPtoZ2y1rclpDwzJumY4LYbbmMGBfjUw5ojaCIze2s3KboDwT906nLKuiivN9R4ZiiX6rRcANzaawmiYaDPs6tSloW3PLtiiu1EsYSqzYIiT8wFu+eyUwcwqQzdFz3r5jjXIa6mfFxeK7hjNlwu7SUlTLFLZk/0gr+qMx3jqAcw2e6vDXyJYqZmOGabryjg1m281O2wq2+9p6070+CnHctkWVdectUQF7fBeJopn5UwnfqHYaMcGPjGuFpYJMOs8jvsM9dJ9dzPfwY5HvtHUM1DldLlfrcnchcEIDuQpwT/z1tpP6Jt75KFGNsyC3wDLxfxlpfk8QsdpVtIg9raZO8H2AA75EqLLfWFl2JhRFqQO/SM+XU5BugHZ/54GHFeWDZ6pJyFSKb7r5HbDqIxvRsjPU+acgmiE6mzzsLRYOipQxDBYWyi/Y9dKtwm7KYfa3d2q3C8slKKjkN8KpIluve/39FQDFA37nVT3Yw/rUA7ntVcoa/ASKS+49GLomRn/NL/xF+7l3W/pOOsCrASdEIytNPTB5gQpse4EHmBB3Oq+LnGzKiZdyhXw/C9Mhr5YXYmlGbJllELYgVvOxrN6Rj/N70XTx622hY/eID+1oGaaGAmUV5H2tYEejKS4Lr/0uIKQUwg5BJk7Nq/qY7rUtT64zQo7aTy8N9VtfwvceQ35Lw53drvyIGYnqh9/fTy9+Rp2Wq+lqaxW1cxsW9v/q0RHk7q/73HhC28en5d8FWSTx6dujAio0RcCwM9Xc9xJWhuQVbuPxWwC/xmSZFMK3QKQQL5uaRBM6/qfRjg8wnASo454mGph+Xs4dBefRzXg9xtPzfXaYftxr6Ff6M4bk4oVlOx3YxR+yU4TFyYhpU2NKfxxVRInXaqEs7q8sf8+Qqz/PZhSU5GdYai+4Rlu9zHCTYZrBidBoJ+lAm+tW0u+Or+l2DyRsgbwIjVqXXlxBevVBn//eGRs+3yMoFgCa5Y8eHbha7Hj41kobLMQYW5bWa0cfce5fHelB4ZEGpb7rmP/SQMMXnsUflk8Sl7RKdiNh3hQXC3ciZM+Uz8ty0ZuSPyyjw+V+S7Hp94V0I+kO5RmV3iBHoGs5PZj8yY6kOkNshRpxhKfHGa7CBF3uUzFUmNLXSiborcUcyyEJhMMDSGhzscauhlMaNB9XSj54dRfy3npjjfKD8zamlpITNipTx6SPwbH+1ZQwrFfqcmPkhQZ4Mf2PwwWJweMZHzMq4gNWniwLW5jCrCEbQ3wR3KwuqSCijf00YbdnMvf6KqRzhz99LCgqXm4mLbuIJzXXlM+SIGwtBS7O8YuWROHbmCFAj1DBhED7IYhcKW78zP6pJTNo+Jv7Z6QFix5UVc3zYhK71OxR/0Ppif+lxYI+2jcEoUp2Q3gnekx6Kyoy9qZgEAxHmZKbak591IDe+pkw7nUuy9kDZFFqPu6hm8g3mCcbz64cyP72vB1HayIB9R3cGrQaf6sGViUDSrSZqtJCylMhWUp1LNGGro+wTvQ/JhzNHS5cHHjqdrnP2jHIVuuCBrdTBTO8x2XKO1krZZU0Tb88MwkRHpbyuBjbr62lseWIFMyVDMtaKaHqNd+2lfRT1zqblmTwVUxEwDi16N99j3SvrOSRwK3VYwt9/LiTBSQU3P98zvT8mExXUXfLaGwQUms6JZq04Xxz1DaqSa3bRlBEC/lRpIMEaHA+7fApw6BvoR7dw3Lk7KYy4f3m5IUPx5U/gjd7IMUz5BzadkKbBRU8qgFdKlyQDjhpSDqvxfw258gibECq3/z13hxy4tZApg1Q1BXOEcBDp8208XA0PSXMNI4NMWtl70YwnXhTRIVcy1yEliQCPU9pVBRa0n8liGv2PHqTj4/aBJkZJQf/nRpInGNaX+S8rBEemiXZognQKD5GuIUvS7JFhHrZjNLZGh5Ebpgzuk0DnT+2ojL2xya6pXyDrc9cQVhg4EDsHt/2+VmHk7K1RR8eEi1Mp0OxTvfO+Xf1F9vj+gz0zMSJGbrOa3Z/FfN4uVquWlm5CjX+jDAhPYl4k51Dzr0TfcqBVcNSxwdTi3KMGJLyAt5ryanDClbW67FcXVktbluX+Yr7h7od11O4bF3P9Yc674gInxEbLTrrUng1Mwb/acRkDtwTORGkHzkUnmTYEjeKQiMyw7VaQjyasE3nkx0u+OpbbDLLzNbbfd+wk+nEs6qDe8Jm5b39rVweDXPpG/eZa+3yEIc3Y2nHDziZNr/kPDfCYL0jpBlCGhelw4ez+63vfIWuROrrmBUwyEuRbe1bwoC5o2dxnfDJjUzqgtsR8LWCNMvZSpV5reYZHTT3m3wQ1+r6QaLnK36pksTLpLpcJW3vJ7mCVzgbufvSu3NyhB0YXmB4KDMeLyLnjsWDDLnbQ9kdiTyV9kcQ9pAOT+S5LUrnqPB7knwiDyb0bB/un+qXsEi7NTLRnnsp97FslI05qO1kdvvZP5a45QEnFE/GYpkVlNg6tE/+zAOStj8+GSMWl2c9xlII+n87hkJyWF1774y3sVSJaNzLNgVmm4RwdhxDNOijCf2KidgEicVlvtdc8RqkR2OAU0Ohi0Q4bx+Tqt/KZNO1GCuSATPZBDzeJy0pOGsPFKbclvEUUyggd0aXqgv+gcZ+mEOMcZrightxl9z9pH0JeV+ukEuf9p0cu7qTmyghrXIef6E/FG94oTYrKyz/PRLLg82xzhm6uDCizWvheRioil/cdWkKEClo1X46AH4uuCTs8JyqfXQO/ohyZqxpLbSLwFyIIP1x3LPekR+7cKhOKLZCij1ZzU9aqrtcaeE8QV/dR/nBwATNu3rwKm3BKYGpSxB2OGYGjmwlqCvZffzJYB6C5uwEaF94AyJSr/NRwvZAEH8+IT0DLqCSIDXX+gPHOpWE2Knl/D36KDhkOx6dl52ABWHQn26nJgBji6OOQPMQxKxf5QkN8k+7B89F1bFaGebwOPOqVnEjeWY6HCGvBYR2yP7zUwbyijWYwlcf1HzSj0K+iiUZCXvjKsWyUMYdm/X32hGwxuj64FPSWYzKc8n4U/i2o0P3h2rX16eAogjXkJRSIcLEj6HqgXh5QA+DYcyO5ZURtxX49gSIlEwAVN0Y0SLqAs6BX9yYW39uAbhwFKqXI72SSw58t02EGUN4FXi59R0w8CXPR6OdgcskJGyZU7p/keF99kVzvPChk6D5LoOQu4Oqye9hVeqOIrnYL/Eb1iv3kYw5oTrOOXBKYkSvlH25eDd0wmICSMqKpzWuvSmnzkHW0x5GC/LhEfrYTzCjBzfp5UJqc+W/K+zp97syWVFYKYDErCsslOa0YgPgqcaqsOaajrWPpgFTCyng4FznFlsArfYKLyxMDSp5C8V5I8cKyPIVfEvXpeOP88i06dN2rhWtLyXhtWfpVq8PdeadTbvAqYOktqqmLGra+eubot556u3U98NsONsMaPqDdz2wwHRn6681RtAPtIqp3Uhf0JVc/Ed3LjxcVLsS9c/cHS7xRcdpkBXXU8ZLDp7giiAxJQd5rGaujhp4hj5jX72cDGQbfLXHwPvkSbJLeyC2TyjmMNdcI6V2AqI67cV06zEVOcrbfMYhGOJa9dyp409Iv8JfjDhqNUCWzNLad2pgn+ePQqmyOn4qED7HKaiQf5+2FOEUN/vOJQW/3EY+sQHfD7/hY/TtJJ2Pc41zcH/InfBPcgm0ohHQj9WvuMxfYncS1izzbyEDTwYZItoy4bW2koOAuFJ5Fte9cWoqdtvKHRaMBMplmuNDNs/5oKDH9EBacRQoZ030aCYohPh4Q3QZZd4VyRuzh128cSWFz/OXwD2ZkkPCJY8oXGIp1Wxd6QllrLJrlXQ0H3sexXh+Hc1v2RAY0HUC1ammB0VlYeiMheDBDRhyXjXK3ktIRWkE0oZKoUWuzY5p5wJ1a8ZMBRaDamwT3TzlDjwauSAB/zUvrSHNEoqBM19AeGYVTysVQHC7Vp6UH3t1OdrI/uBLGbMpnetjN4s072abv+ahooauTJwcH1sAZF1wGmlgpLXZhSVXkp8GwnyXtAAcxWbKbY4Cl09+K+JvLX2R+bpPnzL9DJUS3EBjgpadWnUdfZMkPOjggezNzpjWRottD0ob5sSrhlLis+wRZmTlNU4pA2y6r8TDBpDqa69Bl3QHu98u+i7ZpDjn8oR/KY/B8yXJVTE35bQpajjEMteMnCMxF9GFJgH7vtTatmt+bqghhdEhAcB2DJQiFRe+LkNchEIv4DIAw4NWIOUJzDuxoY6D2OtbyMu4dXHO28CUtZdViHaD9DWSvTDN6XOPLPcGWXVd19LHfWXiQ2m1T3n8RXuBVK9RBwVVuKrMEvD2Y93LhTuzJBcE8/dXbJywk15ijgYSqLaxSkTrpJDGuu4hB/KjjU3Kk0ieVaJr4S6o6aY4GJC3Q1cSz3VYYzT9AvABu61FE7BA1vWin1NJgOp2i+aMlE0nwSnAoFgBu6ZlDy4Sr14Y9fEjnn7HJLNPxzu3ogGb7J25uP0HV80cdfQXgnVqD/uMyiz25dBDW7kKyBvZp3TEifYweVeQuwwFChUkAgRdfqKkL05GoH1zOAU9notdNBSf3mik86pDHsek+cOBa5ZLlP+B7tICy27o6hg+kqFtDt7z8KKJ6HAzG2zEDjqxkpIBwxrJryWzz7KMWoB9lOOuTatD1pfITDPXxQy4ymFmSoVHUU0KlLiM/R2OT2YU32Ag8nZzwwXCW1sF6JM1Bh/RfOlZOAa6TcbuL83SxH6cQYNhpTk5Z/sWakZ+4/cmpB9zEXDP6CGKF0sOcX+6dMGJXw2HdpyHkPmawy2PdI1V/oPiKtGGGRwj5Rti8CwoxfSDxJ6iFXhR8fIxNge4vEVuDEAmMV4kDih9ZOXOVIYlFD29MN4zmL4ngJJB85TfP0fKM/3m1ZMPrVyzFuEt+l1vD1jX84hwdnCSkHTyZWwpTuODN1uefXiJzbBFUnk6vrLar0u8ZLLnbAI6/ix6Le+nJ+8ppkM72M8gLYUSAufA5jGMFnuJOcN8Q9UJ2EZL3a6P6KhwcLS4RBZat9V2Eyrkx3IuRCqMaDSSWrdCbogoLwuGZMS3ObxjOIgU3y1FJt6LIRR97UFlO/cJpcQyxGKrRIVaw+0VvKes3VJWwsgtkxZIZ0PzmDmqdezJXUytrQTJDVLclgoyWE99Hd0jFmGN55ejFlOVmp4m/Mydtf8hGGXswJmSZNo7jW3yddtjpUhAgSp+eufR3rknY+650Vbk8++guJRNyN6L5I3xdSH97BoNmou19qFN4tbXwwvDnDQPr6YfpvjLGBELuxJGdiZx0uuWeXvu4deLIgaebCxekZLUU7Z75lFRvLR9Q6EKlFRGUocsGVSfzLQD8qmnmnwoMK3O1J43t8uY4VdkUyxY/bqRr/ttr3P8ZGGigcUZLBo2ByRdCHupPcDJw31NX2TdT1k/TA0ACDy0TXfoQeE/eR0/TRY2UX70grH6tHpeXf8Y1t1TosAj2ouvdpUq3fItuFVJgn2cKtE/ufkH5M/n544A2p254rQsFb7fxfEQCbNxDV9wTo3ZQFS0fRpgCJnVneShAxSLgheZLXKqMQ5DkkfJLmw4eTW52YbmvCuXuVYY/M/Iukm29P4c5x865gTWZBGapMXrXzwyRhDsdnT2oq2M3Rfu9iwhE2h2fhSgBGiHHaDBqUxX26m2wxdsYsoSq47zRj+74p4Wjzr135NDTkjHvNLWNLezkc/8JA/UCkexTSfYw4QXUtkmqmh1RCHWFQqLn0ndWiv0r5/Zy91u6wi5VFVnKTr6dvZLPVLirJBAWpIxx/M1xauxdLa0Is25DK4WmuWuaHXyHIH0h2ZvI2lcdPdT3iCnXuN8NuLBkIr5ZL2wbjHoAKaZVNQjcSr2qB6f5ptNfE4v3kJNWaAMdbuHTpigvfckij8kplW6lqqpE7rSKK3HvVZ9SnD7GocaP7VW1vZ3TCMBELgH8fP3+FncO1/jySTO+gax7B2sAitbF2+u4o4Kux08d4YO16cFHV8n3vkhNhv0ZtiG6qkwf2Sx3w7ZZXM31SjuA0VHv5cKn4KZ7eoUcNG52MwUpXWFGpjMMjUJkBpbGvV+Koqsn2Eyxnr5e9dZQZTkeitdf8pPeUhinc6ytMIB0ZFUsmwpG2t56KJT38QHUiriKcU0bJSeNb6u3DvSag1r9a4zFs8CIp2Erwa6i2HhCIxOzgBMKt92kEp+788106vXRsBRE3WP9IeYLc+sfqkilM/ZkcBBtP+ZPs4oaGA5yviJaH3cJSn9aeIR5sfljv6w3QVfiLIYA86wp8Xnjayj+vReI7xxU4gbrFEvyal09sTPR2H8uvhMSZcPqMFQSPkzHYPsBzZavgw3v9pDtNnhTomiFGGdU+K2N6ZlNAWe+oTk4dyGkkaDfOG32M6hJhhtNmI27ewac3bv3COjc0e9femqzZLdTANgiprYkeEhNmJvL+7xJ8r2omx0PounJr5X+yzgdyYgqkA1hiEe2ayrmycZsuDAS850FE1xY8zDnqgWnLTIx4GUj3k5obmRV8Uv1IBFJLxqWVTCm8oR5RnOgnMb0sFMrucshODxGjn/ovIFgjHO+RgPz0AUFlrg+f4meZ75VtgTbVSVrfIi2zDOsB/j4dRekm9rL+lT3AC8ly2OUwRPaRtUsTF+2OSwyhap3HO8hUlmPUS5Nsrhvf/HUnXVb9o5yuBHHTzaEOJpbZ5LnYfCdhHMNheSrpsJyx14Bde4QRWXOOvwzhR3SuUFq7BFMyZvf2Mh5JPLSayimIUujpLJ4ASUCnGT3wWm/DylutQs3cIfNnZ/1CGNs214jiDmG8tfXaXuSkDOClWRkyCFY3hdU7uf9rlikjmvaUIXaltF0TjhtVlS5vRbVhdLCrcT8CBMIbOlaSmUAkScfkcBZ3ocrTBdbq9mt6n8XmvuR2Uc/GkXh3t8UtxzIT5eJdZThFxlm3Ou92hi2+w6MPzipdReAdV7mMF9pqlbE0EKM486oFiobzMoUXWINSJDs7PeHYoPPz1uYQd5tLBcynwiJbIlV2k/JxGVywrtXsGmd8AeHeEO1gJb5QyN6yf5rvVQrMRiPQYX0zWTx49p+uXIQiTT1Rqx1FCLlPiqoBSI1qO1fUMzQZ/Y2JgZZBk7QCcJwct7CsWxMUf3P6tldzsXx2y3Z848INzKXS0cwwkLObEpvtY/doZs1+Odc7ohxVpowCGX2VRLnLE/NXGT4OZKHkyLJrVpHtOf6cW8+I6sNnEfKi6mzByOfOaW3zJyFdU8JKbWWkGJitwIRWuhIcCr9lJX7pzU08GCePT2D78SflzbWi693kkFOaoJLZFTs7ci2OMOvy5a+jeT4PRauWprRofMfNCUUW8OMoZagSXpz0hHJ+QIfHM3chkWY3d/gwtDQ8sOFU1Wi2HYNQD5V92AnkUho5L2qzE3h1Irwu0GF4Dfgu+j8klQ8G9buehbS1QZscYgSYMJCesX/ffvkI9qZSUhZHWgvokQXwhjNqGxMAU6CAESxfO4ghL7qz1l+c1X08ztHH/apN5UkxCNhmJn5q+1hMzzgNMXpdogJZL8MhSEcW4+Ep+df6UgYe+n79wEMrdSeGhgNFTrQC6uHnB/v2TN//n/AEGINnUKZW5kc3RyZWFtCmVuZG9iagozNCAwIG9iaiA8PAovVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9US0pISEkrQ01SOQovRmxhZ3MgNAovRm9udEJCb3ggWy0zOSAtMjUwIDEwMzYgNzUwXQovQXNjZW50IDY5NAovQ2FwSGVpZ2h0IDY4MwovRGVzY2VudCAtMTk0Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViA3NAovWEhlaWdodCA0MzEKL0NoYXJTZXQgKC9DL0gvTC9QL1MvVC9YL2EvYi9icmFja2V0bGVmdC9icmFja2V0cmlnaHQvYy9jb21tYS9kL2UvZWlnaHQvZXhjbGFtL2YvZm91ci9nL2gvaHlwaGVuL2kvay9sL20vbi9uaW5lL28vb25lL3AvcGVyaW9kL3Ivcy90L3Uvdi93L3gveS96ZXJvKQovRm9udEZpbGUgMzMgMCBSCj4+IGVuZG9iagozNSAwIG9iaiA8PAovTGVuZ3RoMSAxNDA4Ci9MZW5ndGgyIDYwMzkKL0xlbmd0aDMgMAovTGVuZ3RoIDY5OTggICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjajXgHVFPr0jYC0qQjSDcgvSYgvXeQ3kFqSAIEQoIkdJBepTfpCEoHAeldqQLSBQEVpChdelFBvujx3HvP/f+1vm9lrWS/M8/MvM87z+y9VzjZDIwFlaAoB5g6CokRBAkBpQEqusaWICAACBQVAgJFSDg5TeAYBOxvOwmnGcwDDUchpf8DoeIBA2OwNlUwBgvURSEB9zwRAJAoACQuDZKQBgIBIkCg1N9AlIc0QBXsBYcCdIUA91BIGJqEUwXl7usBd3LGYOv8fQnggfACQFJSEgK/wwFKbjAPOASMBOiCMc4wN2xFCBgBMEZB4DCM7z9S8Mg6YzDu0sLC3t7eQmA3tBDKw0meVwDgDcc4A4xgaJiHFwwK+EUZoAd2g/2hJkTCCTBxhqP/chijHDHeYA8YAGtAwCEwJBob4omEwjwA2OoAYy0dgL47DPkXWOcvgADgz+EAQEKgf6X7E/0rERz5OxgMgaDc3MFIXzjSCeAIR8AA+uo6QhgfjAAAjIT+AoIRaBQ2HuwFhiPADljA762DAepKhgAwluEffmiIB9wdgxZCwxG/OAr/SoM9ZjUkVAXl5gZDYtAkv/anCveAQbDn7iv8p7muSJQ30v/vlSMcCXX8RQPq6S5sioQ/8IRpqf7BYE0k/7Y5wTAAMaCUuLgYCAB7AID5QJyFfxUw8XWH/Xb+NmM5BPq7o9wBjlgasEC4Iwz7Q+KPBnvBABgPT1ig/386/rkiAYEAUDgEA3CAOcGRJP/OjjXDHP9aY/vvAfcBWAGx8gMBgL8+/7qywSoMikIifP8N/91iYVM1rfuW5vx/KP/LqayM8gH4C4pIAQSlxIEAEAgkDpCQEAME/jPPv07gb/a/rQZg+J/d/UdGLaQjCiD1Fwns6f1NxOuPMnj+jA0v4J8V9FBYPcMAPP+WvzVQDAjBfoH+z0PwO+T/p/1fWf5X+f/3jtQ9EYjffp6/AP+PH+wGR/j+QWD17InBzoYuCjshyP+GmsP+GmhdGBTu6fbfXi0MGDsjSkgnrM4FQXeFgHf/ssPR6nAfGNQAjoE4/6Wlv5uBrYGAI2EGKDT8130HGwUE/pcPO3oQV+y9BY1t2W8XDDtZ/6yrhoSgoL9GUERMHAD28AD7kmAVgF2JAfxB2FmFwnx+SxwgLIREYbAhACzHQIAjyoPkV2NFAcJgNJYzHO2K7YPzLyfJPwpAPD08sDP4WwnY6n+vfw88DOYDg5DMz6IgMuEuL8I7zmuVmLwFP48SLC13xSRZ9keLYbjePfF31iHM1ph6oGwPraYfeWwwVx45ORvAxPf1fMzH+lVuyGKGZgEGR61/VXlfsHDo29ErJxgrFMXoNC7xOGaVai/ZkIXC3grfijvVfPYiQqJHdP35l2eXXej1+1LbADdAySklWwYTJl4pv2sb95ElG8cyZtjSmjKB2sMq09NEy3T8EvcRPOFMuSOO4ZvvqlVC1vDHj69zB/ofix4WaffWiFdH0jDc9LvHlj+SMshAm5x7rxmNw6UsdqpSnp7EzlDsFsm1iGcvsfhjumigPXlQ1LPRSU8l5Ib+wzdNnvUosVm5/J7FQ2a7tRyTb8Jk9C0pMc4CtY85lDlroDinw5l7NaKIgl58OlYAQX3X+yvdaVRp2ZmlDu5CUxzhwzBR2y8T9Of28dnJIBGbdDmE5OCnp8riBghW9xFH84UL2XQADSMnjYEWnh6by7LnyB0BoZOn/fBKi9upyOONltcdwz1R+yiOryy0UyFJFp3Z231byc1aYqdvqcz41MQxddrvUN12vIn5idNBRgX5+AbtXRoy9xWl5ibYE81EKQpNqN6Z6KzjZOoRW0pHKAVPU5LTuH4tZ3m+UCX+5olcaItcumQw8OH7if1rqoY7iZR1qzcMe75dt01y8NgXFiGy1S7ouu9sX6rHfQ9zNwnetJ10saFsORWyLzG7WKD80zTIjqbsoXWBY/yPhJP148a9Agul+uj7iJi07qmgVbunb1g67w8kMGe+nNjp7eROX/fRbPx+ir9P4zCsIT3IHl6MqGxKFGtT+ThAG2NqNQDW6ThuIfLoeePYdPyNFGR1JnN3LcTddqNRb8/9R8UDZVUANQX3XISU6Gq1bjCXlD8+abRZkCrZiSQ1GXiiMVRkFimE4+zYRLKGUNBeoCvatuJ41BJLVf9dw33/tJf5I01bHbPwvUE/yBlecai65A8vA9EPn4Qt9MVf+yqhuuu+PtxetzF/wKQaqttKEG15d6n0KLKFqsgyceZNkYWB2r7OpciqnUjrjerWcpRmuj8J6JbPFMPNoS3u7g5PhoB2FNn56XdzvdssRtlqaYclu1mtidO4xz+40lYzEbfVr+isg3SocI2cQc9Z1fMdDkqqxwP5oxBkKuc2gJLi9z08ROHMXo4zqDB+x3H6XN3t3dv1gWcIBWYI32I0+9dq2yCjqi82FW6Ra5Rv4aXh2hX6Q1MJbFo34l5Mv/ixTn9iRPXTDjNtLpPV/eYgc9BTkedOBYbvTSnN9A3TJ7n+AasnJ4aBYNHP6mUIvPSuI0kf/ComwmdTmBRNc6WynuoVmXq2BbPFiZ9kKm3DN8PMUPWP33u15e+kKPTUp92WScutkxv5IC8QPrBaWtllzV75rSk9+9ak0e51LyOV9Lli/FxDVWcSBvJpRTuB/EG6kVyKTldqungHR8S6kta5gS1uRX2W93w2TQlUa0jTz5UHciYa5vMjiTV2KGTHeNjUQKve0V97rHwUzRhB+nXUsqajcFd4x+tV4rhVYeuPOdYWHU79QsXtLM2wyFRq2UUD7oR7T0feB3klzwgMcDSwO5uW6ioc128rLKe6882GS3iRv7sl994AhA5c1aBIVXymlyJmuy+aHmPyuV7SsS0SwOhrWBIV1qrPG95AVgWUmP4yxUkeQRyuQfrse4qR31OaoyPHTf+oCVsqVecPx7JrRf5ZWSvK6SNbs4HfXw7M56NFHLlVjnwXV2rtBp9PP1e0gbBKptYhGSUecIcxfLmmHX1x11Vf7tbuz0rFWVNAStkHhMBHA5Tao8VbX1xx32bxkUsQPcCzWmAj2Dn73jw2tzFtjWoPtX3H0cwV9/no0IZKEpGeuNaMbuUKD38lnLSyYsubzWbyuS8YTHaEu1z1dX6ifpkupNOYvVAmcSP9wtMWxziGREnsMEtcWY7qfZEX8n2WySpRdVZi3XgHe8TkWTmNjTDBqGBQoH/05MCQYsF0Bv8j5mw4+bXLcgh4zB059H61YfrTjH8FmV55KM6eMyf6W8Xmfj4Ap/Xdst4zutC1z1VmC2tjg2Hd4PJsm+MNhRkBUtzdQwdMISI105lSPPlKP9qrx66UwGjzTb1UkjHAFs9gl83Q/Yz4VRLTWauH+FnHK5ni+vsZG90Da15zrFKupL5UCXSNmim+7jKMqkPvVgGpLgy7oNwJ6X2jcJuqjzkOfhoqCuycoQGwj8XebBt1GaPi8SPFRgYbHF+aW6WvOt/yDnUmqN2Z2yiGclf1fu5mEmxtIn0tgiPM1A/gPEgIjJrvZoqb+3CL1G0koub+BWNfkQ655PjL4/l4yMhR4zjq5jxuVWyOjmbx2zbtD8dHTfm8mSeED/L5372HWPqm94+2FxfkXCOhsdN9E3dpL6hYTwikNiO4ZOI+zh2vmzgtxxiXDT2jgCp8rLOgxafhCbMMi+g7c9Uzb7R8uas+J7uhHFifsela/76XcMlol2dhZtxWZI6TEoirdHG54xbejhM3RrGJCHALQ02/3im/y2D4uY22OrzQN48mIDVxwes29R7/w6RnBax9aWqNkIS3L+bxUnQHtt8JV5+y0G1j5iLwLjRh2ZHzBioNm156X9fZNcQDSUt2yL4SFuTbNIIKlW4lvYxL4w9Yr+VZazWbOViK1SirQkiEajsymd/0W/QosNuV+6HB7s9dcXck0kIXUMLTTd+bXhe5x+An/KG+ad5vSqf3fnhAa4zqNdaBu4IU35aBarvuTbGM942/txwpDS5HVRFF179eZphrUVpLa33ViUF01Y1pXhZa4ZiE+KDHdItYIgxi+BqewGDliSWOJV043q4LUfSs55ogXgmiskQ4e/xE714oB5Bl7mdIQ2WvmQK8m5o6xu9oXXKgP6C7WB565eJrkh0f0tto5jb45fEyw4PSN04qwwzJR8l7cy/bsq9J+V1v/2wSrbIYJNyHediW3J8Zeb0UxcK3+1gqbsBjfEbrUSHKpcZ0V/uUxselsE2IWIBg9JzfAVQ7++KAtFcrB6Gqs2d4H0805KzJQBCJOu447OSWnbDsXCKACe6AhM/J4wokQuL41MTuPIZGHTxDJWT426hUyHP8xFMn9nNim4jme4pqw5m+7hL7VlDvR8juaPFoNepQMrFf29vQ6WO8ey4fyJaGPFRoNjY6b6xnu45Uxyzm4fHrq4tzN7KbCPAYmQ3nzR0h9hL7pPZyu+eGzXDmIMY195en/Qmsw4SE6BRcMV8hi7BEPOap0ee8B1+Yi0wKd3FKTqEg7YIi18rKN7EuH4Mqi4iYkEC/WxUaz1mWbz+IaU7cBpebG25y+oVP09970Tpn8YyxqEcUo+UL7Ot6KoQ/fSem3yr1zjOWMNU7am9DU9zda9T5KstO6hYzvfY89KehY0gJ5I1nVFN4jlJhfDVMOxbSJ13r8oMd2dJ8o4s6LI64o/G0vVIpXOAUFxl+Fn/admAUMe/EglKKU2+tNt9WiIV2D+57syZuv/n7R2+UWBZ4iZFfT8dv1M+YdKRR9WYlvdcZWyK/t713uGmrCi+7tCrZl0bL5n1oEelhO7i5aBr1PSAHJ+MOwTcxs/Btx0nT2K0HBiGBZxdTAXJXcdnY95keMf0Ag16CDXS21EEpa0Lg2udUPhIWfid3pWCBWoFXcgEulSJiVCpDoRI5JzOkKXsZNY2P55gpg4Q2hdXLmJiGWkeARRkYo9zltlhcIXZmbxipMyNDN7lB8BPY2qyb++HXe1GoBsXaupWMkCu7/S2lqSDR0hVD2s1uZVaz44cc+1JqRW10SS5yJI9sFACVG3n+3tdr7CjERM+K1b86TXfX381TztpYy9lRKqukXu588GJ8f4Ti9tLLxcm7jYSxrFHPkia+gp4bONK/Ja46Epg17i8QP17tuM78xONZqVXyx1de9p9IOxrrfsTfOu4O8jnT4LgqYAov3hoXCixsHbvxJq257NaH8S710aw0SG1ddnKoHH31K0e2W9du8410VggRCK97E/TFGEm28SjOzz/K9iODtHQq9upxabk9zv/4VN6C7bVbOuxgWHEMQUdufsU+ZaaiuXGeJ/nW9dZM8nVZ3/NcPU8ycBrhVnFZZ79QycAeLkavobgvGiHygrLFVUnLJor3lu45RVCTcdGXK8uMeWQjY2g8AUFW4gxXGZ9tAstgMvcFRBGHYoX+gqt5KEB2aaz/2eOzLtZJxt1a6qut+Qr+NAh5dXCTbOFDX263HbRslulmiJQ7m10Xbqlhx8LJGneJXo5Gw97y9Ux5ctz+stGXLjYN1MgjUQv5e4V+CvOqu8FyeucR1zodkGQs8f4PbjlY8sizz0vybTzqGhp1LfMVPUetxJ7jfAAEH8VorvaQJap6r7Se2zwLJu1kSqLdhj7xV0uhHS7ufeQdMs+wnEUlxEFrtrzuzIjJPfVz5XB15bC5u11Di78PcWwp/F5D2a6Cb56heDhy9EM07/Sx+22EYc2TVMMvWTH4DstltMLuR9caj54wm6Q+6FKflMS3+zmjRJXSjdymMXxLeFXkpp3gz+UnIzvTnU8Q4na4agWXeDNO17Cd+/SAm4/u8oFFsMk15CFGlmkmzvVQmEihXMSNgTd/ZNzxuLVmN315pejc9w7Pao0954J/BRNlKVuHIWuuMJALveTTeuy4rlzJXzXj8WhPbWnPCjO54KSvzRxv+JTjO8cLuZuMn0Lf5SpsQRVFIbyUNqIVjBnkWzPMMzicfLqBmsy9jFmbxfkyKtCny5nXhzzcOxlqQTddLgvUqRgpu6MhEWgWTPquBvfZiop1Rps7L3417ynBz1y729lURbx1Mzyt33OKG2/o6raRNNaHkz0Y8OJqqhk+U1n6LKqH06RzH13vbWLg6Z9Mh+5oG689N8h/xC+YV11eaProcZ36iem5AXu79lhkJH9lx5RlF0yCRgFYyZN+SgSHMjFl6zTIOLkSSr2i5rHUEkyKQ9g/P/kqYz9Du/5FaYJIU7rh+ZNlS00WB1Bq40q75qB/i3fYoJGt5WQ2A7kAyRMO9bK3GZqq84dmjAruh4S+k49bbxoscqrLtYf2DA4oRxGczp8WamjPGTjXP9RrsGrB1xq224oOViHaN6HzW5xyJF4nlp3OSIu7CLlmfxf7VFYDzd7j7rhc/shhH2hETEARSrgQZF0WTLWiJ+LqWAQ+QnnekxDNC6Lcajj0Wt7qPg7Sfm/un6s7vSiq8C4xvlz30OabtDmDzE0qr9tJEZSZ1y1WZK6HK99OIY4ptaBJFDJY1pJRKGAzeRYNELrRjKbbwTs1tVl7HpYiN2kR+/PGZYpYw8vYYI9gXYy8r1xNJN9qiIMKXtdDW7JOTD+TkkddIYK76by/JP3i6Jr18dlcwRCzTgjudlihQSqXBAZDgXvqqeEno+10d+FoMp5VptmTl32zXub7B+P0jB6vzpH9ixOVh/UK3ffC2oVT1NnFTYVqgfLrBLjH/B+0DafDgQzsw9OVk3LbIQfozcXdMB/UPZvldxVsb7wvxPU/CgU+yg/GbI8EiVHtF5mtjJTX81dRFTdXVb+8YJGIrTdFh2Y/ny0f8F3/PNyXSmhSEKcidqHh4bRiStBHKfaGIzHqcRxXQG1iY3cs0cP0jxoVa3OS+Y+3yAprCHS9Pi/xuNzClIatLgHIDsaLkAe7OTZjNv2GuG/M6SP055IZo93IheKeJlTvExtZdd2ayETpybrc+UL0kzt0va8DVE0zR/5SJvA2xX6EtW5QHmSWR3oOllincBoRuUpzP+suq3a0UxR+ef/Gs57ydQoaxbhck6o0wAw3+JSdc0A7wN5QO/BT0evVQ0/VyNzUGPLAI67gyz5JKaHL2dL2dQdGL2UIf5BaN78C6ZBYSTQXQurYotVAfgLpdEyspb4urdCDSZtLIjA21R+DDJC7iKi4WRV/qtSXkA9xNf/uWlxU3ok7YlHDHfbiK0sJXS4FbY+saemLd3rvJXVQUJf36HfkopRR8qRZd5gYDzImMdwW6VBaKX41ibp9vTUCoixonKR/v81hnFtrnnAUw42BA8r89ncJtMVQRi+GR5a4kQSWGac/b3uj3GmON7PYstT6DPIk1BVQ9ON9LgYUUiuH1ew5r5xSlWPz4sb65w2+JhzLKNsaJuqXp4p+6+ZTviFaH+aJbMfjaF7SGiDfuiqw0yeA/bR/S3I7k+Plkn1ooKAUraFwX/Fn3XpYcL7C3KvBoa2p2sZrrJQ7zmt4NrElDvvdxJeb7VuVdlsispPnoxkD/PiUOxjmnopaq/HcumiGe4U/y/UVn3HqJmuFLm6SYUoa57wIwiJnrBlbhR1WJ3sPdc3UaYeBYldj/K5an0XMpeQdMwLLmwGUE+d9TceimKimyqu2QpeKyJLeAPbShi/HX5NmSQoGh6xop3VinQtwEyypaet551BiEq60Sz9T73AGEWqmWOMIVPmMBRyja9A+u8Wa+bLq2lSra1Fz10d3nUtvtN4Xn6CPwHETWJx0NhY0v0+dSI43do+eu7n2bFiubO2Dt97nvHowokI6huNcX2zJYC3cu9duIkYNGMumvSgaMzHCbvt58pvTg59SwDpHtQEeGXd2uZ/DjpB3QjmuGujdGZWR7ZDVWGL9bwfb9tTDRKXuKZn+LUtlWuK3VDK0L1XwhL1r89xuElZ+GDZ+y/Hc8AfrpIrOcdFRcgudT6Y38aeuEpYI9ZbFnOtcZA/Zw9fUUuVHIwOaZOzxKfpJvX5wnt9eqDGx2oXMEtjshcJwY9k1HpsyusQvVRKE+8buY7x8ZqQ9oYbJdJ73fe1uvjCBsqdWPHXgX3+lH2kzh6jx+cQt7n24Km7xQoWyW1WbVZ+Q4VWUYw6Pk6K3jWOJWdZIj9VW0MPtOJD6t01WWwolUa8q4sEV/RyvqRrmJpFrXqQkft8/m7Qsfh8Bzn+86XDnNOeaVY6f73jKDAc+DFT13nVG7DHUSGnHnqc/QtE/Se66r7l89370mvz35Jp1X8Uv/VetpsvfiX7/pdCrKTMI8c/Yl/VVdpAoR7Bx+SS27V9XLI96u5dOJAgtxH/f6bm2ZY3TM4r7hT0z6Izb8+twAC2b/HvRH8CG+Fu9HU9tZ56n0fPOZAn6N+snttbqz34XoTQq62mg8Hm9sU10O9qwn+jYW9lpInml49L4sj0/h/1dBSLHYf/UT6a1LlPLd8Za7d31VyNbMe4eZa66pM2KBIo9MK6XT0TTMxG9wzEY47MvfZwsIbu8G8LuRoPni/MvK9jpRRo9STLVYCli5/x987Xo0vuH3IxEN+taS08yP607RBu+YDzerzVGUBe49J8CkhgY/Qi9GHAoF4NXHnIK0Wj7WevdLIwNX79YPaNT2yIUWIWZiUxRyeneQtHw3hQMuQcZNPv0THqK0XReZLJFfggU/e51KjtFt6F525Mw/cuTyeS7fPp+P9qEIC1HLpC0Skuui6UPc3PjNIk7W3LbEtRplvRZDafnr/e3BJTEkMNaS+qx6cK5ChdvYrOWyWzAaKEGPb71FyZt9YBJqaSr0SYFORPWKcZP7BtuSwDWKqdrTzwqDr2gH/V8MH1rPM4Cqot5OTd77Mp6NrxIRn0PmGmWM+35N+fNFVD4UJngyufMTVz5OK8rlfK0eu1dqerOj5G+3j45DF/D+jvEuvviS6YF304iaPBqffN+Zn4nPTemvs5w/9tmysIgAtGcf0IP+1JLfZh3Oi0qV/HZVTxhUbjHxQJP9XJ39NsAjeNJdFDdOpDCJ3NF1d2WaKljiVTstMr4rY5xvBlDmOnG4SjgBXcsEI1yPtKqdal9lX0t6ojl0+xmtl2NykFqqTPF5A8EiTOaNV2vir6EqCz/WKJoKK+0KX4DovWWe+fTVvxke9P4686LzjVi4IsjtqICxUP/cmOgwEoYrfpkhlFltHKjAX8bjuQ6b80dDriFAwc82dQvQlqTGZV9e1fIddJrZ+DEOZbNJqe6sRK68DTeCP9BhcPuBZG+8tURp9obk83U3NyF2ciUCOYDrkKqhGNkglTjng6RaFxWPRl/5Zfo9ISGNMo2P4zA1ToVO7UNYTmVtV1mUCquOvZBGC77SGNSjTWRPXQMggcSL+lXm7LjwWUQo/EhOOzn2ncgx106YSNWsAbR8FkX/Q9W6JGrCmVuZHN0cmVhbQplbmRvYmoKMzYgMCBvYmogPDwKL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvVUVJWllXK0NNU1kxMAovRmxhZ3MgNAovRm9udEJCb3ggWy0yOSAtOTYwIDExMTYgNzc1XQovQXNjZW50IDc1MAovQ2FwSGVpZ2h0IDY4MwovRGVzY2VudCAtMTk0Ci9JdGFsaWNBbmdsZSAtMTQKL1N0ZW1WIDQwCi9YSGVpZ2h0IDQzMQovQ2hhclNldCAoL2FzdGVyaXNrbWF0aCkKL0ZvbnRGaWxlIDM1IDAgUgo+PiBlbmRvYmoKMzcgMCBvYmogPDwKL0xlbmd0aDEgMTM5OQovTGVuZ3RoMiA2MDg1Ci9MZW5ndGgzIDAKL0xlbmd0aCA3MDQ3ICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o12B1RTa9MuAtKrNBGQANIhJPSq0ntvUhQCCRAhCSShhCIovfcivQgoXQSp0hTpCAgIKE2lg9JBpPxRz/nOf75717p37bX23u/MMzPv884ze21eLiNTUWUoygGmgUJiRcFAkDxAVd/UShoAAkkAQSBxCl5eMzjWDfaXmYLXAobGwFFI+f8FUEXDIFi8TQ2CxeP0UUiAjqcbACwBAEvLg2XkQSCAOAgk9zcQhZYHqEG84FCAPhCgg0LCMBS8qih3HBru7ILFl/n7FSDgKAgAy8nJiPwOBygjYGi4IwQJ0IdgXWAIfEVHiBvAFOUIh2Fx/0ohoOiCxbrLi4l5e3sDIQgMEIV2vikoAvCGY10AJjAMDO0FgwJ+EQYYQBCwP8yAFLwAMxc45o/dFOWE9YagYQC8wQ3uCENi8BGeSCgMDcAXB5hq6wEM3WHIP2C9PwARwF9nAwADwf9J91f0r0Rw5O9giKMjCuEOQeLgSGeAE9wNBjDU0ANifbAiAAgS+gsIccOg8PEQLwjcDeKAB/zeOQSgoWwMgOAJ/kUP44iGu2MxQAzc7RdFsV9p8KesjoSqohAIGBKLofi1PzU4GuaIP3ac2J/OuiJR3ki/vxZOcCTU6RcJqKe7mDkS7uEJ01b7C4I3Ufxjc4ZhAVIgOWlpSRkAzAMA83F0EfuV3gznDvvtBP8y4xkE+Lmj3AFOeBKwALgTDP+g8MNAvGAALNoTFuD3vx3/XlGAwQAo3BELcIA5w5EU/2THm2FOf9b45qPhPgAbEF57YADo1/Wft7t4eUFRSDfcP/Df/RXTNDe0NNMV/sP4Pz4VFZQPwE9UEiAqJymLl6u4HEBGVhoQ8O8s/+H/N/ffViMI/K+9gf5JqI10QgHk/lDAn93fNLz+UoXAXxMjCPh3BQMUXsowgMA/yrcFSYEc8Tfw/7f+f4f832T/K8v/S/n/vSENTze3326B3/7/ww1BwN1wfwHwSvbE4qdCH4WfDeR/Qy1hfyZZHwaFeyL+26uNheCnQxnpjFe4KFgSCJL8Y4djNOA+MKgRHOvo8kdHf7cCX8MNjoQZoTDwXx8cfBQI9F8+/NA5uuI/Khh8w367YPiZ+ndddaQjCvpr+MSlpAEQNBqCowDhNSYuJQXwA+OnFArz+S1vgBgQicLiQwB4jgEAJxSa4ldbJQBiEAyeMxzjiu+Cyy8nxb8KOHqi0fjp+60DfPW/179HHQbzgTlSTE+iHBVC7teGtB7XKLN5iy4NkcwvtkUmWHVHSGH5PuT7ueiRZmqOeajYQyuvDqQbTT0LG530ZxP6djzsY9uZ/XAuTSsPS6De/UVlW7Sg78depzPsOhR1zfmdTHrkF/rvicYctPY2xDb8yZaTp6EyXRIrVctPztowK9ZyGwAEoOSQjiuNDRurnNu2QRhtxXVjEdtvZUsXdwVtk+Fppm3+7owwGh53pNIaw/oD98Um7nH/7Gxv9tvudIndQt3X1dKVYQysjL46XLkDST2sTInZOg0YAj4VqUPVZ6kJ3KzFiDC+OSJE7TiYnf1G3BtWEAJQyn5/QBkecSkJrZWvdH3zfpVSq2LiIGLy6b5v6traSI7bPGPk65nHodaOZ8XefncZDG32CZcAzKodt2zIMkZZrODMGtU8O8e+lYHuB2kEWaPddBcbdE2QMr4E7PRZAj0SA3yk+GCofsCQxNezzSC8tpOEXDd7xcVucfTQ4mKfv3nGg8RpiS/L+6mQD/LFOtb6TdXklazG7ZdPCKV5HjCktZqU5y8jjjUXUzrYgQUQferU6IZm/x7bOSIB8jUL8OyEC/DB5dI9tZhhrUP989AJGdLsW9ZSSs9SbXX1MwxsKmpLMNJP51fvyNNGjLx6KhWaP6S9qKjyssUhnZ9anTncsL05o61ViLNVXHVTgWz1Fq8/uj0Yd71067G2EMdnYvCoaVxsZaprN00WtjZ+I9rUk+rgmTChXMEI5UKqtDbikQ1NgagrCfCRJWk0XfKu/PDngepnrLU037K5nPYJrqRuyun3sohgwqH7V9vLIebsN+a0+PQ2F+06JhWvRvRBxH8GdTMosGwJHsiKjPPKSz3/VmzwlWoDaWMxSd+gEhn3lejVrWBJJgnOOlc1kQq29mWOLrf1XTRisGt9aHd3uVXuZwZv5VmiSX7egDVRoeKCg6FvoGRVjYVQ5Nu24esVmhy+7Zrc9tmLoIOsVu73npsp7g/oBB/yX6GgUJ6Hse/0bOurX3ocLsFASOSYMJOgqz6vTIfWYGwbryWhqXypfpqxAN7Ya5kXoJKtPKHrZTyXWxgYba0pneQHU7AXf7oOFsOpLH0K8rNzgYae3n1eaeZ+KQqX0ZvkkHpqsijEA9RM1qL7Sh8BUs7cICAkZ7Cxc2EQuMTS/9rkNNLdj4Frm8pch1lt1Yps6WJEQAvdw8bW+l73JMCeUepOpfzjt8L3I15xSkhXPrvM0LSj1OM6GtJpyez5YkvyDqHL9xWPUTesFppssenFKoeux30tav+fDoiSH3lhpwjEzYCC7Z4cSoXkjLCuxhlFjPHnlpe1ULWcvBCupvNRHirymqwo5VcVfAVywYcGNdPrYVxS2elJtipaQlphK8BZiRP6qC5eKoKLsmjnlyWGm8ETOYq6DsbT8RZZLTuc68YHPvqgR5lf67/n003n6tFWu/XS7R/0bQ4HzXJRNotZta3UKK6hBeO0CqDKJXWUChKTRRvlURbU56/TtDkQYU/iVLgCvh8RhSglnSx3RnvZSWbWIjCLyzLlFYtrl0cIWd/rhzhI2AGqijHMoywfI6nortfBbcEXRlA2tHlPyz3PLvAMevt7k8haRJTi+tTrR1mUcLrruDs/LbH30j4bqSdAHnEXYTiytIhiHKlXHJ+7tmIHfnKuGMlt7gykvYUCYysaprWxN3ruUuoe31xbjFo5lnVw+3iZfW2/6lOUtH71JiufboE5BhhLKRj3zEh6Wj2eZCLdozC+TwoFI2bVelUadtiN+QAe8GX7IHUS8hCiC2qYxp7KvtnkuK5W50j0aFRNIJsswz1IJGQzfjKI5c1wx6c6lvACCekj25eKD+b9Ys76KESkaqRItotuBvoPBLN396VoMn7Su0harJJWW/c5dX0QmFg9EUv7NUwwieeDULdpCiFY7fv91w9+tozPUNtk+dymZavppBAvSr0qPJgn4GBZHcsdPc2TSb5eyPjF7WYeNViSqO/DEz+EKt/YS+VlqTg4mlw+MVLQ79vJ99Win85NcDtmYf2wA2Oyu8p9mlzDyuz7FK3XugZzxr6r1Q7kfZKVDLjKfXO7TOUhQnEVerx9HgC0CtsqdSsCgqPHdVXBocfK63O7l4Ib2bOXJIuFYBp3glJuTjrFBUkKuspSpr4/Tb1iEHfDXubny/SMe7QpxQx6ThcFH07kU6LT7cvcSq9QvnlkDFW6ytXTmmvn7vEpI8rnnPCwqSGbfNqWLXqVpo5djt7vKbfhmJSfXM+8bMUxg0ih95A6H6vZpRLUcre29r1kkkUBZrajNW0mqi8bCeS7Bi72glMLt88d/AOpgy5pJtl5kjXvHvjnKRtzf37onUGCatQjBYu2N1zN1uGL/dx+Y/g7O5zR5NLrwIKVFS29ca/xxsPww55ui5tstm0Ha+FgYlsQcSW1mOIYTmvTX3q+9Lbf45yzNzEKTSxblz77aVDzCdIzgUD9ompSN+5113Y8nhB6L6Sze6PRTjZnt5jn6LoEB3kTvDSUrruJmWMxySxV3XGCslKkIczhUs0rC1xaobvriFCWMESmwuhV7eYlpWYeixGCq2QH4cpMvExDc7Z5nQzsCeJscwM/p9n3FEHFd31Rwq0bR6eTDa8aQYdjq559F/I255WFl9kb6xO1F/S/nhioEFVVP09meP0ybVbTuKt/7VtBSG1LhNUkxLI+wsNfd/KlzOGaBlkF1xno3nnoVw6FjiE+noCKi8FhMu1S674njLt0nbEsedQD7VfDkrocdaeM1V+V73WTsVe2BBHLzRf1hzfMM9Dy8MUeeVPZ7g34BqDkDHdlf/Zbc2A0buZqvI5V/Ob/Kbcj8pLpzJ1Pkhvn4+mnln3sN/2PB6Y8RzK+WOwurJPKWqKK2yZkLdNcXwzEQFtjFKT4Su19PiTto1ghBTLWCJrq3Ox9YaMsipS1ZFIlmmkXEhoKpae6kOAIG+tmj74UD1KNcMfryrxaU/lEL6GONdItD0XW+68R9dSEfmQJjdr2OZp727BeFGt2n8etMH+kzsw+vDQ28Qln/W65AOOQ5d1dDHSfkdJO1+An26zXkLrMlXpyhxo+rqKgiOSvELIVJbCn3iXfZfok7nbhg4wicRxRZ7F9rhIv0Ce+afTY7UTf+W1wPavmTMD7afHbN3L3b4U8knVa293KWiBjfLGHDnJuYZyIne9KC460quOKsi8LPCJRRKQ2exIQhDMX/Ci+l0ksN1dLDOJpL7pP+WbG8EbHADLXvUCzQW63rJ6KO/BphX+KxM/yABKBYi0im5yw+0SzVQ6FQPT0j+X6awScM5Zviax1NKU4HFO3nTwVGtx5xPKauhgnl546K9BecwgLcxHceAxw2qJqsmdMNX7sW1ga83MQqYV6o/hslRj1tWr2TrFl6NE00c6FcccLxVlnTibrhQ8GbXvh+g3EjVycE1xq0o/KV3nP3uKuzd4vXPO42x2DrdbNY4DsEM4YMXC30DOvWgUvqkaYCTwLOVCgiy+Magvwzuw66U/1/jB0J2LQVjgFVkNSdqP+hZqqZUVg9WVu1Rqz/S+921hFyQP+9g+kKf1uUIJbAzsUU6VRLKtq4lyNwqgVWirFm7HN4zsFpwlb4yFXfOmxD9T00mdM3lPT08qEUXpwE3VLrhCIu8dZ3DcHUUL8qY4WbxTO8hCILFRDSvPfemrQG5xuVhKtSfl2FzbTfzQpDtLIE+fgER+cVqNou3z/no+a2tip9vE7hIHfyZoiSVQlT4+DzTAp6JxygDfqcE17Irb2wpB9PqVHoTD+aq/1BOdM+tcjEcRcgxvp+13gBBdTeSRfBA0BdeISy6T1fuLjOlFT8QqNKp/KweetTjUNmLCki0RkEwDwlJC4taDnpMi0pi45t3JBbL/8HEgQKD3zyjAPSPA+35wwZoTGI1DpiX83dG1Wk8c1oQJ41m5va/tiNCwoa5DAa32+qad+3Mrj9CgA5LEBssNde17ScoQ4wr6+MI0U/V4fN29871kHaqe4pqC4L4fMFNZDZeFHygSgHfUS9oV7ywDrrKvkk4RjGF1bcrJ7pVoCk+bv4uSSclgeLN2yBCtoTvtnpRyJxRCduN6xtGUYg1gg619IysssDBtTbqE0GfxGhJEtlfmZ0FSEzKzp9LkW52UI9c8bQ7GPXuoLFVtmYZY7cyveET/RU0GhCeIOlUgJmp329VIyF6Js7UQ77lcuLbT3DAvk23TfVeDvCqa8kgZce9r7Y69u9fVC7IWuqIBjPiIUW1yiOdlhP6/0zUvJUe9ns967CMy7x4/HPiGuJrRiftAATdoU/K5ETaYxMS20sLK+VjSfoJBLCzo7+yYYraPRGMBgkpHqOp4d+QroMuOmVfSwRXJoz8CDA8XA2OSr87EfZucgv9PlpzGNzHlKXW2lBvYNqrXBVSgM1xFfckgZSnqfV3mW0hplwkYyySVNGR4ZRSxaX35av79UEXA/7NRGKpLrczJV65Oib/kSr9dzfGJW6aOtziqOC1y03aVielDYemGO2QrR3o4Y0P5Yvzdlrn/qJLcRVY5JUGalpVnAi+AynfRBbw8+1sy3InnuWulQXjCffvX6hOyYXs72bMeqX2Bp/2fRLta2G2Np5/6nAhmzRuGyOo9h5WlGJR20Hx2Ew39C5/oj7lxgPqle1WWJePZZA2dDWqktzc98vJ6y4vOKiWQk4N33nkGvexJn7qFk7cZ3zq2MNJF5sxvEhXrtA4Nf6/MRFMepZalmFPS72uMDLoI0hbyV9z67DdpRXJlPKwzQXTNhhPVKf+9KLS87yxo7/+q7mxpBLn1k4f7cfb2efz5qj+fN0ojU6FzYC1t+odkPJzLirfd0SCXzbuxeBt6Zi5197TZNPqJ9qeABJ+0FYtK19LES6RyW99ZVQqmnk3T3ZqhVGz64iWFshW98MGX2yZ3tmCQVYk6mAy4vfnKKS0vFEPRYH5m5iU4f5PfmL3ME/xACQc2/beDCy7Joa9ero7/7x3y55suHSOhuz7NPO6VpD9JtXaLsK4gbGWHUrvqc+mpM1Utg2C9NcOnuI5EtgaSuvNUE+CkyR76f15SKo6DywWS0A0itKtvHOL4Yzu9bTPs6Z5WL7vygGLSRoW9duFRn5dhV881A6sNeBaUCW1gF+0DnyqnZ4gyOxSdamVuUxodYTaTUr8rr/TvVss47ZmlMwr59y7w/ZnYmiwyuSNunkD7mTfpB06oPdB13k+VWsup836Z1WBHVfauempc0lDzK9za53aFpz1cnA9DOoX3RJzK52arJr9JNznIBpurZclebrAMRhV5fceW0R0MHOznWH6SqIQ+ZCgKR5rM/TK5HVhQrCBgvPdnVwoRJmccyy/YMUAutd9oXyIfs8RVJp7h2WwdZV34caq4u7ErdDC4pu08NJoUhervnyPqf3cOV1kXJ1mu5xiPvpWp9YWmeuGNYpHP54XPRqcvpcyrXtn3YTzR4X+g7ACojbdOJOgjMU/ausbWWONwS6HOE67VTQyp2JA92bwPUed3J0S6GnaBlM9p3uQkRpChfnORD0xOT3sy3BsdnwHmzM1fLLiyriWPKe95ZIUn6J/V87WyT0ZIxJ0D2b62PNarNNApgAq++63qaT0Y2Md+WJZA6+CEjF7wmvx69olhpYJ5WjQsMMchKWZk0x6lQ9DOdHvOsk8ul3/voxnmdxKOuhTmca7pIbgDtNyTzqmc1zk4789E5gFUs8Qe0XIZsynRkoCsQbFEDNuFFjBMmi0JaPF6ReQgEmWZUJRJyeAK/RBDSx5tdefyw1r2kaPMCwWx5SJT0tkC4U1/BGPWoOdEiOfjumucsn2W74tTCG1Hr8yS7idDxwRWYH3xEckHn/bzQ9fdvsqW/toragjkPv4Q8dF59YsZIKP+hWY0sXaGw15Yu76SD4Q0zrfO7SFRjQdHUzHuIddgjos0RdUzwbWms0y5Njp+9/GcC7FireHknj+heCZSSLSDuSUR4R0yPgVY50zCg8f7hm9CutcaaV6SEss6PvTJQ51uCnFSNyeoeQp0Pn79VG3tPJEE6x8Cb08RDtXUT6OI7sPz6+uBNYresbBpMZxrY+oJ7D8T30UQ/kOp0Yhqoy5C8lzW3HSHDbzVlkFGQSDMYiGMAsXxKySUUoq8CJAcJr4slzYSX0NyZhb8x0Jp82ggp+EEunog4yNUAtNYUmTUw5ryJp/riRBNNL9LYpP3U1npI7b4eGY08fDLB/2ai70744SrF8iZHkEYtNiFlpYrT+SSJacukz2HpPrQMRzs3coiItfsZz9Wyyh+ZHcQ4LgQwO7nCGgx4gBMMOOxtBa+ocqZ/aOFJW5PfZuQX96qPEmXJciL5TlL7rMzd9VbKm4Rhpskp+mHf06uM75ZDNxfe1hUKZeFUIXbL9BE3P66ndG1acB+MGB4Kk4wbohi9rgEyvSR8vOPfeFP2R8Pc1HTSdF2kzjXbLAPYaerjVEUCbI+frC/xFRpNxb2jpdXYd/Y10gmvOYyv2Imdp/94LuNp0V+WS1cSFDejx+I3wqMslYUdzmp+YKXFG/dcRW9M//kVDBkxTbUB1yCmX7fiGuYJEeCLXrIpgJzCWjo31I5/SvfVbdK9iiT5+Q3lx+2Un1r0G69KOWUkhhAM0+WKLHEH1da0Ssjjf0ko5HQKpFAyQzzB7EFmlhMfgoazlReVW/NqS2BKAd8YXTQsdJhfUCeV5nSDRFv7yVZJogt/NJsd8MuAvHGv1Htk2+70DUbK+Rcx0qfGKXldIZN3QFi7XEfSPL9jnCFmI3pLHPA5mXu79Jvhc9fDpTaY/QtKllhiaNP6wvPy0imhVTTw5jXWIGQ9Vif8xcObeTGnukVsGarxR7MkU8WRSr15w5NYLu9nQ6G5EvwGP3drnVezYCICalnuBbsnht+KsFM2o0aCAzQDXX1HJwq+lvTP6raYjusOb0ObSs18Vbb2NvrM0HM6WyYWKGcF+sqasnHB5UNv5IXredJash6vkmQOooe1dOI9QUQmjY34YCPXxsSdIFbfnOKEL6P96A3TBb18EWxsIPPHL7ueFdRnW6SI8PNDH0pKt8tpjmLXCGrG6GzXoStFHzsUb5iIdW6ak9ePvPq8krVKae+7+eWWh2fH03cl5AEvWAdmX7hXsLdr9PfXZnLeOm2kWvRgzRJUimKelf9kt2jqDTIUeCEW2uZh1JVtMnH+9iy77Sgmp16yO+QFtig24DDa9Im7acdGggbrdlndXm/bElPr6Gzptnnt1oVMRaumPUsrNM+kjF1cfWE5z8TspU3nXX+CVKFRhoV7yQ+GBJkZFscb7opPt/B+kx+uC7c5i+z7EZ/qd3leT9o9fTOmxebBgkOhuKpn7mg2T56jS/XXs5SRhxFjXCXb2kFSjnVdvsnG6tyCYU4Jq5pxFFCSLjdn5KQlq+M7y9mlkAVsOY6b7i3Rqr5+sO5y2neC4u1n1jd+sPVh5mnk2Tgl7q7hsv1DxYS45w+uR1Il4sJ8/RJM7rJjB3NG27XKj+qD3vJ92xHYO/TgrHuCSXeW34dvhzdFNPeeBYH1NJONXAhuW1pmRt10pbDsNF+vadixZxPcdPf5bFru0CLLGt44PiWJk6pIIA4v5JdNvQXOXGUR6dh67yckoix6SugkN0ywlTduUItzvUf8wbKiYO5BUX2ygvMDI0OMoQtylz92mTlHWWIYHBg68Vbi8lFV3rPR93WhLgUFsESBngzetytaXoTrz7c6t8Tv6k/LzdaExeWG2KY2MxoqGV9TfyZbaL/A8JJ29Wi0JW9/p7PBYfbK4mvu0Z8T+VEt3wnhbSrYmLFzOV6j2FvX6+I3HhBi6m2EU8qzsoL10t+dFZjsd6HpZIvjBOaSCNAr9diAgpOlKRVjTRiXsaVJxcpJ+PLk88tPesqxJjWR9xlseho1dc5I5rl9lK/JbWnFGIQxXyvPhN6mDpe8iauab7oan93Xf8+kZox789KC3pHHegfgYwdu7MMYh7o+Oo2kbBKoQhmF46C1S2tuaxORCiPVPrLwSj58fqcjQKoLE3g5iBLbEKSx/zNsMK3p0BROox4JHaJStVI45lnkyYzmcuSaD2HrKU1CSRhyRuF2m220rHbnyby9Im/NlBA08XM/uMdwychaMd49fzpfq8qiJzHvkDDgaYlxb5U5gcIb5nxz02zTbJlMpQ54r5KIVJmPKtWjc/QmkIsR/VDwOOx/ALLUoVYKZW5kc3RyZWFtCmVuZG9iagozOCAwIG9iaiA8PAovVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9HVU9XVEsrQ01TWTYKL0ZsYWdzIDQKL0ZvbnRCQm94IFstNCAtOTQ4IDEzMjkgNzg2XQovQXNjZW50IDc1MAovQ2FwSGVpZ2h0IDY4MwovRGVzY2VudCAtMTk0Ci9JdGFsaWNBbmdsZSAtMTQKL1N0ZW1WIDUyCi9YSGVpZ2h0IDQzMQovQ2hhclNldCAoL2FzdGVyaXNrbWF0aCkKL0ZvbnRGaWxlIDM3IDAgUgo+PiBlbmRvYmoKMzkgMCBvYmogPDwKL0xlbmd0aDEgMTQyOAovTGVuZ3RoMiA2Mjk3Ci9MZW5ndGgzIDAKL0xlbmd0aCA3MjYyICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o10B1RTa7M2VSA0AZUmsEFAkZLQpal0kSJNpEMIIQRCAiEJIEWqFEWk916lg3REutJ7U5AiTRABaaKAXiznnO98/7/WvStr7eyZeWbeed55ZvNx6xoIK9pibOBqGDROWFQEIgsoaxsaygAQiLgIBCIG4uMzROJQ8D9uEJ8RHOuKxKBl/wOgjIVDcac+FSjuFKeNQQO38ShAVBwQlZIVlZaFQAAxCETmLyAGKwuoQAlIW0BbBLiNQcNdQXzKGGcPLBJhjzs95q9X4ApMABCVkZEW+pUOKDrBsUgYFA1oQ3H2cKfTE2FQFGCAgSHhOI9/lbgib4/DOcuCwW5ubiJQJ1cRDBZxXUAIcEPi7AF9uCscS4DbAj8JAzpQJ/hvZiIgPsDQHun622+AscO5QbFw4NSBQsLgaNfTDDzaFo4FTg8HDDS0gDvOcPRvsNZvgBDw524AURHRv8v9yf5ZCIn+lQyFwTBOzlC0BxKNAOyQKDhwR01LBOeOEwKgaNufQCjKFXOaDyVAkSiozSngV+dQQE1RD4CeEvxDzxWGRTrjXEVckaifFME/y5zesiraVhnj5ARH41xBP/tTQWLhsNNr9wD/nqwjGuOG9vxj2CHRtnY/SdjincF30UgXPFxD5Q/k1AX6x4eA4wBJCARyTVwUgLsAcHeYPfhneUMPZ/iv4C/3KQNvT2eMM2B3SgLujbSDn/6BPF2hBDiAw+Lh3p7/Gfi3BRIVBWyRMBxgA0cg0aB/qp+64Xa/7dPhY5HugBnkVHuiAOTn7+83i1N52WLQKI9/4L/mC9ZW01ZRVBP8zfjvmJISxh3wFJYChMXExQFJCTFASuYa4P3vIn/T/4v6L68uFPmnNcg/9TTQdhhA5jeD06v7iwXhjyiu/FkYAeDfJ+hgTpUMB678I3xziCQEdvoQ/T/L/1fK/0/1P6v8b8L/74bU8CjUr/CVX/H/Jwx1QqI8/gBOhYzHnS6FNuZ0NdD/Db0H/73I2nBbJN7pv6MaOOjpciiiEai/rxHpqoZ0h9vqInEw+19y+WsIp9VRSDRcF+OK/PmlAYRFIZD/ip1uG8zx9GviejqqXyH46TL9+0RVNAxj+3PrxCSlACgWC/UAQU7FJSYpCXiKnq6nLdz9l64BsAgagztNAU7ZeQN2GCzo50BFIWIA+JfvtykKAcDo/zBFATDmP0wJAIz9Zf6rCRgeiz1dzV8qOe3wL/vXdwAOd4fDQG8mMDC5QIfKwBeH5YrsbsLLAwqjfMv3EgSEPd9gm/Df6ChiBcpS/OewB4qx3W1nZxZVr+zffMt14vmxvooiuCFar/HI69gqUn94uRE0NXTh1WDOR8XnnRxUF4UNb654nbh4Gfk5ktYTN9/my3DBX6PTzWI6dOtQd3/eWTjd93BiWW+lTEqT+rhwRDj87mNzv/wxvkyb1HEWnjM4YQ7Kq4zb7vRj+wejjOmDP7huRwqCvDfCxXM9TefFnnwdv/+u2FDMtYWVl9WUhYN0n7FvmN9T6UPcbeZJz4K8x3MKk2kQARGiKXRr1raSreUBOJdbTFh9UtBnJ89mmEj6OaBzyI8K+G5L5Eqyn7DAh5Gs3RbXqTvqHyLTrYDJbN4VijH5WOEPOU+uVdl8sFrRI3hHsdVWvl43FeHyad2fG2meZj/nniOnJHhcbVzPP5Mu8ABTmcgIOip5CdX4bE2cm6e4JdLL1BqEseoERvyLbFMTLd5sPLvpGk/qzN0+PRkv1/y1WfB4fhOAFWgnPxC4C1x1yk1rHYnMkhBkxfBmkXDdrQpQhcWoXi05tiJVB0Xun++hsBUpbrybPSozeHjwNvdSgsXKNW7aeANvMDQ+vzHnQtEaT9cB14jENVUjedrriTpyKWw1oxRpM8sHTWYyvezR3Lk8OY5Wj0Yf8hLpD4/aMI8nDCM6dylpuvFP3AtGjbTtN8a0eMV1SRKmP50beePRSCeZUnxOqBnDMyR9OWS14eqZT6o5gfJkFabEP0bX8mGNnwv7ba6FY3mt1VqWKGfzwRWp37AHe59eBL07bLPwjZZV2t8lXdYw5/WJVxiLzKpa9x0MCajNepJw4U3vucOulK5m7qX1uMrWCr2WKoOrZFZaAx5Lxj2Iq03cl5Tk1GzPeXyToSWoiTS4t/Hfm/FlHlwdgYVqmo2svSz55rBXAgqY+UxbOWeYImzvUJcwRtYSRSk7UbneZwPrHM1yZ//qM4TgdGQhgzxIssw2jbMYKKjifywujnj8WXxl3c1J7AtZyxNnpccpGn2+5HShsj4RLsVqdPNr/qF4+XeWLETbGqoKg1eHbw+JlJi6PRyBbZKJ+zFMXGPfMKmYEBE966Cp6BouV5+73dH45Iv1gL7lmAeXsp4EpUdjyJPZLrplmprX/J6s+IhtPYQaaIg1l4Cq1M3cqntWntXX2gLqga92KKh7oNxA7haEnAaGsDPZ/N+aGTAydrVvkXovnKvaOmeHPSic9MawSMoLDk971Uinzftb7lIwKhHhC6lkXddWOYJLEgNfe0h/XMqieBGRqn952bCJIrQxaIhkyBPmh00Bb9tshN23w/d57NfNvqJgEbbSPLF/65MGuF44iMwurhstuQ69En8/Nu6R3X3uSyd5QYR3pvgXc0SmKzxG7XdVu9O/uZUcngjvEV8kutn44MwisEZyoeYNElg6gmoIJlDrr5/ta67QjfuR91LO+IUyIAVv+siR3CK46RAKn+wxq26R/sx8IGzpEEWc9d5s69xbVhAbIvRJucyjs6HiJTRT7UGvmFWetbJFfQ0JpYLx0VTUTSVOe5TdVlZ4dp98PeYTM8OIGQ4gJCbG9Dy77m+00ile4JT4o1SGudV/O1XhnnNeiOAiaiKiFT0ZzCWOyCi4JP1KtkfPj6X1ZrWuz4jwBv7maIXKlpE5u6vBsyi57+5yoIDbpcWDtKWXnSPiiXdADR43+r5HWCp37zPufNWgreF9ekvdJAM3as1GG0hJv2Y+zayV4sB3YlecMkDq/nptw+BMMsXbx9iNdzMvC85BvssppKHkypfafTO0hzWuYwDltWoeEJXTq9nnEY17hRqxlrI95+94NeNFLN8P6zCs4nfZUtxsrDeGZRokr1fmHM5S2t6+HURT3rEN+bS3a/w0b7ubw/kgncxsALf7bp6Jk7wb/4HLkm8qb8ea4/I+CGL4IJOGTMOTiitIykEhk/UbSZ9b2BRVd1Nu89tQysbeTumHrIddCScvzwxObzB1fn0r6/kt79wz+v30huAbqFtVLxIFduJXr0XcKbXLyXIyRguFPedM6J2Lp9VNImlCIr9PdVsY89PFflI6cvdkS5DkeF1sd1H1Zchs6UsVdtz86v0JGXSvR6ZSEGdnB5C8iBOkWpJ4HEL2vec8vVCG8yRv1k13/hMvzq2OAolbPhKMm49vSxco+c8nyWclD7UVnVOu6NZdGSJO8Wv1xt//0OaV+gXRzkCMFb6QxCDLlvEBv0S8m8m6N2/WrvLBXA6QN96fsXZjG4VEcIZ2a9hbjJKU61h4LPICXmLTC7XHP5zPL/CzKHGAXjrzPAjLnbk0rn4btk5EpZZ6wGmShgn3pmxWTMgbYDoaXcin6BX4GHGCUO06ZITp28YjiBpWd7+mC1mpnU3Oxngx4ZfMit+fOxjT0xCGned1LYubJ9PfCj96dja6t19kjfBxp95CPjXpQGPwgcEzeiPhBGHlMHvD1+5qdKDYizjej/45OUyDHzZjr+lvaqexTVJAxMRXkv1mUeHlltmOpVrfZItK6Km1uK68HePRah+j+cHprxD2Jc0A63B0NvYz9YknqazTD8904jdzzBhdkwWHFHr/UAAZcf68paSD77PiocaoxEsn6tW6te+mAywlzLTjzD/V+Q0w5BPvl4RErnrYSPnntD19vTiU605uP55APQQ4yNTcR3SJJHa17YAb3kuoMXMtJeWEZeXkTs/RxShKH50nM/B+eoVlctWrrc6tiYHf/S4HcPM5wam6itjPhqI+qjaBWEBbWotSOQAELztZ7CwPEeUYVRx8PuoV41I3xkGWwnIiK8n1ubNJjbjadSf8kEnTcvvDg6692cQ+dvUg7l6lxDA6Z8toJmIm+eOEV/oqGV5ZF/mdK49I3gV2xys4s2zb0n9oUngXRib+2kFl+QdhrSuuZHdGFPTqI/TwjP4NdJdK/o4qu+81Nip/0cHWHy0TYqCisNurSlw4C596R6ZetRn88ybijsyHTPa3b+GJfbI6usgKGj5F58WEL41k6WWkfVqgKL9MNfjgbcqQeoYoeRE/BYS7SXgb7rrhKXtL+J6f76poxX7DMTN8Vr22YeER6Rh5oekbr7ZgAVUZGV6pgk+5+d90bgCBpi2apuvZOYQD+NjM9G7vDVzXB+x084MMMd8Drdpz8ypTW0nWLsS1hJDCe53cY6QGac7EX0rOpNdJAGq0e75z6yL9va0hGYW0zw9Fx9+IF5a03o8+rixAJi6c5IHs3i/E4eq8SJo3TCuveF3dWfEzjuLlVVUlfv6O3f3aElI3n1K2aeEb1SI12L7Mgl5kiJK+HlFcny6EfdZrEvVuN8zp5TemNN4ZwGWwvsNRSK8y0r6NnfPMrmRgZH4qt5KFZUV06mt7hYP1Q9ZbZ9rVFGi7W5qiPAM1T6YjbHp4S6FxNDVzU4UyLynNvJjk/c6ZN/hg7lksJfRmeCs4y+neuiMNoqBmMKr27yJqMn6xeovXIPfGpVXkyTuDPfuyVw3UxViSqSr9RMb3TPeUL2+mIOiUdF+U98JDkDTnzc6o9oatDuGRHoSmm+7Ore7xA2EkIaOWuWeC6YXMeyA/Zr8u8W3rONz4PDepSKsf8Hjt5gOvAs0W3a9nJRTBIWd3fCuE7y0MpMamfkoa2WS0jH93znRJQ1gme6IzPEO3zIeJNQYZGB2lsW2y+B7LVUR3R7tCsv8s9kcRd7AtaTqif2HI113IO1Doy/SFT1lJarfQqk2ctUnGnCo8X0fpLDKCiE9QvPy0jPOThCYRk+vefowZFTZ3jzRYDDwTu8Wk3yp8Jn02skFBo6aU7Bg4exmUt+oLBJOK+PB0dD3YW8Klf7rDcl9YXP+IPmzlTa1pv1l8fGQ0/8hit73K9y9e5Yp6c+rKtwBZ88thddbQ8OGARbH6A08FTMZ1cjzZEP8TyEn9XGOMHPxhKUTUwmiAslMMVnCYk/LkuXVSxsNo5Y7bon6M4PRhrbJ732kTTGCO3ZU5OaFDlOQcVPvt3rD8a2+JtZS9Cio6EQF8L0yKuGREHkfuVN9I3mVJIm6Eh1YOCfr6j9O16474HWxpSAh5X8rwIFKdCk48sOAz7LvedxKw/ZbRW6jVgCqH+8HVB60iuzk0VNEJhATc8pD0wy+7HMxmrHdqs9u4KvTJDotMaoKZHnaf2diPM0gxGCuUHE9DCV6n63/ygqiiDkUvVbZ8t9SkYevZ5ZKCr1ZZznxkFFsK5ccWlrKOYkAni00zufhIJQFPYv49ICIi3pE76WHpKjr1275Y36OAm3p+kVeJmJkIw95jkvfFneanknbAr/YLyp4Xp7NWWdGH7vo0rw2p220TMatvFEZGS8T4C+WWPFpXyJM8OuTLfFtvsaSaeivMDt097ev+6JX+xaqdb+laYK7L9YA0pUhK7eJnOPmXwab8wKdlwcHs0BF17+Uglg9t9NjKTJDPFwGaIgt53ljy7TIxfHUOu/wJQX5nUkeXyStLsetYnc0xp49ahELXpOTV8CjnHbmCxiYl/ZSLAiXPMMVrRuvl7dsG31fkO/wT5KCdepyij/H3ISGaHXwc+t0EYjRCLtKzlLDvWNTJvjm05DMViu61DKIIbbl2c7ax0OSgdrzuyhRbqfv2m9gruNdc/MYmO8KNJdJXi9h3IFvu0QJ9qps45WY3OQSUR1Syw8LM7jlKhGr+g2n4Sk6fhs0TxIWn465u84bh/EXP8kz76k4EVIJulbA+xBXCaWr6pLLqaH3aJL9M1txIYZsqzagafE1+tNDaRjHnGLLEEXQRKyJQE4uqOsiM7XK3qmTmvBGiV3JvWFwsiCLpCqpg8SMtR9jKsJffnUkbYbW41WELkbiLpfqpuirnY+THKhZVju7Mq5DXJVuotJW2aZFzKZCBlxO7slro9ls1N8++3i8pz7GemO9WC0DoWfVogN6fJ0cfueiWNTbUFlldSUBMqbNr8jt1NODq7retHZdYERdiqCetJfLvS+QIh0tTijpu2dK7xj51KzB3pzVNj7pGWkW75mGemKRfQ8KeNTeysT2IIuq7OcbpO50ctDuz0lZdxUtWULbdf+lRN3sb9HKt55j/U+RzJh9NlMPwspHS5ufN6Pt3qx6AjUVpDDKXXBTqvtvzS+N3i8jU94wKPlAqWo21indoH399v+DTZhmUjFshgQRXkpCo88u/7joam4z1HmHZPrSfrW5/tPQNEtidA3szUv4xIvY6fSBRzV4kRiqkSWDOU08pptjY7NKscoeGuEPAd/huVAhYx5c0veGuMYNgzkdWognr4A+RPGHkZ3XNzI/miQIalhSNG6BsXsgcsrgYmlvoEi7HeiG2WurRG9SRt8OtPMQtGdrIYf2H3l4XoDhmuiaq4/AL8qTv5UQJUTczZz0ZVEeKi7p66Wlpks5ltYKTVDekBW/QsVtXjwlKtxlyjJEndIeAs9J9ssWistTgy4/DajWSdyUFDEoZjN9wEXTCquABKdFBXVRKI6XNTh5toR1WohMSuOPOz58yvoyh4iFucT9A4pouIMP3X2cGwxlL+trNi4lHX9zfehKFulgYbMFnk0vmfIJIneGSVqdkF2jCvS83mzcKHdbJfDn13ef1Hcu84ITVx2O0HCQE67CiY4L1cLATPagzxDjDvq7gJP469kJFs2yADJxd1GBPR3ljnhe2MnXIRxNK33dun5erLU/IMFP7jFjYoPKdd8dGmfB0hdjD1wYk0gv4bL9Yq4hAOk/3FNrYt7wbspdMd5AvRXuCC1Ep1B607TWWXnpHaZnlWoMhsGZ+1qFb6CiBGUqqwYKer11e9nCWdpZ3tC3en+mSNQ4btAf3KLNex94b375KLyhsWvxxTsh2ttDDLrPAiTCWbIGj+i5HxsFu/ZbBD1M1xWoRE3bvVjFj+ad5E9J33syXdXWsGwzwSnYXeIVSt8ZjR7UOxpZ2axW+udE7PYc4sRtRnh1bpopD+SVShxjeQeNYs6UmtXmMewMWLx74ubxYVnliB+lxcpW5wdGRlmSVFLHihL5lvagYpDjJ4DSS1MAKmpgpiYZGbWXFEX14vOlgh+67OzWd+LhdOS25HpqNqwU/nlntWGki2iFMz0zOvdV1uajKq6NrafUmyN/26wdCRd1BPg+9YTqRshnwvdmroIkuz23ET9RLmnEvXolv9EfNBzt/rmzmeyXhPLYtC1KUehQa0KYvI6kP6TpVRRbkXxqkIlO+tsYzjScKMI0LVqdR9/ENdZKZWMtRRcSHlUpyB2titAwa43XGOaMO7HXtl1S239boRyayCL8MLK1nM9hZW3kUuNp4g8pvJ295PMfg2hEZVxh3YbxQz+AF6sAiwqAO88VKM9IXgHU3jxIFdCWqTXKCq+3SE1ZbtwaKtXt8JqjQlz4XmGXBVf7XS00L5OBjaq2eOpcyPEc+effckPY4RICYEuxZDWqDsmjmrXGmeTw0V1kvfNBT5td0PYNH9Yzdrk3yOis1SYKc5cWGqE6oGSMQAy/n+Ak9XbesNIryBJ6/fqelz7Jw9UkFey25Xhui27iMCJ9kJDQUxVPIZ/X0GcdTrYHAHB4Jwkx9btubZwTf9kbT1/vc5KDl8b7NozmTm4daYaHnPB/0EeYaIgX9KB4N6Fw1uRDdK+iCtDik3ARbagkscoZVhXFEsTt5zImyKeyGBGuuVzM9oU0s8/FEVuM8R9Bvb1x+GCxWacsmVL3UlDzAMIQN2cRFzj3v/hJzIPxCbSaoJI8xLOdMiBqKlVqLyiOU1O7VitoN7Q++Vln+765CWxniHnOy10+RdLSySY43LI02xbY95m4sDs22zacVo3u0OJBMh/xW4AbmGZRzsbu3w/Mk3pKydBHCy4DABG6VQe/tZhLWnUSO+7OUplvAsJtpnrLNtjy+it9qWQiDhxa63soU21f5KRzde+T2Mh19pWYejtC5dweQ8DWM01oaiw1rPUZYZEYdsu8G9Rk5ldWWEOdp27t/WUrX5d+6MuSZzr6y4484yhqynMhm7jqh6sgZi+r1+lTRcGXD1rFrma15A5w5MNMQfst3LIbUZfD2Zbdipc1sXGkTe75vvN+DNMSdd9Z3KjJy52Bje/XRNKXmKZpXd8EJ/QxHVWdL6ygTXyCeVsqYHshDCEtKkbV7nPc0FeIfLOlFWkBlzsoPthjJC5dow20svWZ9s13Ys1t4OiwH+yb5UUwZXmsRrusI5I9hPYUarhZGhrV97CjZMuBkRsTBOiJLjNW6Mlq3GxQINW5LSWrXQFUXwcMOR0983V41XRgmvWFaquPkr3z3wcOqb1O0x5ETEbFyKN8WGJmcpUJ+4ZcXYKIeVb9LH+eDXHgNnMfZqdgNWyi2mQEasIiLpqJqPzXnilRcBP3nkrze9Xbrfj0VZsXBwiGOyxPoPCkyijsFJ+oji7wLlCr9UXtcZnqNq9dc5XVUpBIQsmU6sQXeEdci+pvw0d7ZUFp4vsLDz5ISftUCi0uSzP74J7VIfP5t+l1RDm2zj1VPnZPcRut55kO81BDeTLZ4jX7rPMJJwuCc7xnvi92By3dPWr9qTpWEUrtbQISubdHofVaTUrmo03Zc95lGXm8DJoOQFMKfNWXkwXPORQo0iVZeZJl/rAJRei45CWg/8c66ZvO9f0HoQAhQfwkTgIHQ6+Sxkxz+ADZnTUgR5RWylTAYcexg6MzmI3diP1MYDm27bKrtmHFLyyXyBa0Yk5Zq9MRK84my8Bj51OubC+F07GE1NALnNCw0SJgv6VhyjpgSVW/rXnL0HqDjLV9Oi5CyIva9YbNuO5d8mEVxd0HFswz84SXBZnYO0Sw9OBTC/p4i/odKjXB7TllG+oSGdLelc9Ctp4mfgw7Q8lsYVHimFDhTPkiBGYhr2U2fkPmuazQ7auMwV55O8wmnRf9ijt1f4gSyVhgZ0hBHU8oW6sX1hTF8TCFnU8HQNq397sOqXfib6+18MYbc189uuXS4fMnLZVyk4xw4GUnhm/P09XGrVeZEn6wNmMwpKYXdNHCv9UibTDTzOjwrYAL+Ed60XoZJGzBu4lgw962mnVXmfeipnSXMtirHxK6cekl+0CvR1NyIKPAE3yu1I9+2c18xvfdcImfCxY6jveiXGjXQGoKhE7OncIRpQnXZRuKOD6NpvVTu19x74WPwc4rmiqJtiwxS5Q0rDTWhm7WtgoalMlZsZavZPY54uUcOkj9Yols2YoQD+nRlTTdWk5fx+qFuz9wcJR6aUQZTv832XogZJGbSaGYK1Q34zL60ryRZziUT9drPG8qqxr1HnhcnLUt0eB5MgEtR9KSHlZ6VX/GSnBwqDM7de+da68ZaQW4ZYwDOlyg5THCpGWvmUxXMK5bjkHPc4r/W12CheT08Of3JVZ4lv3YGa0WDR01mfUmB6xzjokLQc3ukfG6xsIT19/vTqKeVAylXqMyCWRsky4VaZsT7Vibuv8GGxC7XToegrvebyXdbtw9p5HgLpTWptCKqTLk+yf8P4ygJngplbmRzdHJlYW0KZW5kb2JqCjQwIDAgb2JqIDw8Ci9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL01GTURBRitDTVRUOQovRmxhZ3MgNAovRm9udEJCb3ggWy02IC0yMzMgNTQyIDY5OF0KL0FzY2VudCA2MTEKL0NhcEhlaWdodCA2MTEKL0Rlc2NlbnQgLTIyMgovSXRhbGljQW5nbGUgMAovU3RlbVYgNzQKL1hIZWlnaHQgNDMxCi9DaGFyU2V0ICgvZi9uL28vcikKL0ZvbnRGaWxlIDM5IDAgUgo+PiBlbmRvYmoKNyAwIG9iaiA8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9RWktSRE0rQ01CWDEwCi9Gb250RGVzY3JpcHRvciAyNCAwIFIKL0ZpcnN0Q2hhciA2NQovTGFzdENoYXIgMTE2Ci9XaWR0aHMgMTkgMCBSCj4+IGVuZG9iago5IDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0dYR0dCUStDTUJYMTIKL0ZvbnREZXNjcmlwdG9yIDI2IDAgUgovRmlyc3RDaGFyIDQ5Ci9MYXN0Q2hhciAxMTcKL1dpZHRocyAxNyAwIFIKPj4gZW5kb2JqCjggMCBvYmogPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvUlpQTUxTK0NNUjEwCi9Gb250RGVzY3JpcHRvciAyOCAwIFIKL0ZpcnN0Q2hhciAxMQovTGFzdENoYXIgMTIyCi9XaWR0aHMgMTggMCBSCj4+IGVuZG9iago2IDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1BIQlhEUStDTVIxMgovRm9udERlc2NyaXB0b3IgMzAgMCBSCi9GaXJzdENoYXIgNDQKL0xhc3RDaGFyIDEyNwovV2lkdGhzIDIwIDAgUgo+PiBlbmRvYmoKNCAwIG9iaiA8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9KVFlNS04rQ01SMTcKL0ZvbnREZXNjcmlwdG9yIDMyIDAgUgovRmlyc3RDaGFyIDcwCi9MYXN0Q2hhciAxMjEKL1dpZHRocyAyMiAwIFIKPj4gZW5kb2JqCjExIDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1RLSkhISStDTVI5Ci9Gb250RGVzY3JpcHRvciAzNCAwIFIKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIgMTIxCi9XaWR0aHMgMTUgMCBSCj4+IGVuZG9iago1IDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1VFSVpZVytDTVNZMTAKL0ZvbnREZXNjcmlwdG9yIDM2IDAgUgovRmlyc3RDaGFyIDMKL0xhc3RDaGFyIDMKL1dpZHRocyAyMSAwIFIKPj4gZW5kb2JqCjEwIDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0dVT1dUSytDTVNZNgovRm9udERlc2NyaXB0b3IgMzggMCBSCi9GaXJzdENoYXIgMwovTGFzdENoYXIgMwovV2lkdGhzIDE2IDAgUgo+PiBlbmRvYmoKMTIgMCBvYmogPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvTUZNREFGK0NNVFQ5Ci9Gb250RGVzY3JpcHRvciA0MCAwIFIKL0ZpcnN0Q2hhciAxMDIKL0xhc3RDaGFyIDExNAovV2lkdGhzIDE0IDAgUgo+PiBlbmRvYmoKMTMgMCBvYmogPDwKL1R5cGUgL1BhZ2VzCi9Db3VudCAxCi9LaWRzIFsyIDAgUl0KPj4gZW5kb2JqCjQxIDAgb2JqIDw8Ci9UeXBlIC9DYXRhbG9nCi9QYWdlcyAxMyAwIFIKPj4gZW5kb2JqCjQyIDAgb2JqIDw8Ci9Qcm9kdWNlciAocGRmVGVYLTEuNDAuMTApCi9DcmVhdG9yIChUZVgpCi9DcmVhdGlvbkRhdGUgKEQ6MjAxMjA2MTExODA4NDYrMDInMDAnKQovTW9kRGF0ZSAoRDoyMDEyMDYxMTE4MDg0NiswMicwMCcpCi9UcmFwcGVkIC9GYWxzZQovUFRFWC5GdWxsYmFubmVyIChUaGlzIGlzIHBkZlRlWCwgVmVyc2lvbiAzLjE0MTU5MjYtMS40MC4xMC0yLjIgKFRlWCBMaXZlIDIwMDkvRGViaWFuKSBrcGF0aHNlYSB2ZXJzaW9uIDUuMC4wKQo+PiBlbmRvYmoKeHJlZgowIDQzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMzMxNiAwMDAwMCBuIAowMDAwMDAzMjA0IDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDEwODgzNCAwMDAwMCBuIAowMDAwMTA5MTEyIDAwMDAwIG4gCjAwMDAxMDg2OTUgMDAwMDAgbiAKMDAwMDEwODI3NiAwMDAwMCBuIAowMDAwMTA4NTU2IDAwMDAwIG4gCjAwMDAxMDg0MTYgMDAwMDAgbiAKMDAwMDEwOTI0OSAwMDAwMCBuIAowMDAwMTA4OTczIDAwMDAwIG4gCjAwMDAxMDkzODYgMDAwMDAgbiAKMDAwMDEwOTUyNyAwMDAwMCBuIAowMDAwMDAzNDc0IDAwMDAwIG4gCjAwMDAwMDM1NDQgMDAwMDAgbiAKMDAwMDAwNDA3MSAwMDAwMCBuIAowMDAwMDA0MDk1IDAwMDAwIG4gCjAwMDAwMDQ1MDEgMDAwMDAgbiAKMDAwMDAwNTEyMyAwMDAwMCBuIAowMDAwMDA1NDQxIDAwMDAwIG4gCjAwMDAwMDU5MDYgMDAwMDAgbiAKMDAwMDAwNTkyOCAwMDAwMCBuIAowMDAwMDA2MjU0IDAwMDAwIG4gCjAwMDAwMTU4NzcgMDAwMDAgbiAKMDAwMDAxNjEwOCAwMDAwMCBuIAowMDAwMDI0NDIxIDAwMDAwIG4gCjAwMDAwMjQ2NjAgMDAwMDAgbiAKMDAwMDA0MzkyNSAwMDAwMCBuIAowMDAwMDQ0MzQyIDAwMDAwIG4gCjAwMDAwNTg3MzMgMDAwMDAgbiAKMDAwMDA1OTA1NiAwMDAwMCBuIAowMDAwMDY5NjY1IDAwMDAwIG4gCjAwMDAwNjk5MTcgMDAwMDAgbiAKMDAwMDA4NTU4MCAwMDAwMCBuIAowMDAwMDg1OTMxIDAwMDAwIG4gCjAwMDAwOTMwNDggMDAwMDAgbiAKMDAwMDA5MzI3OSAwMDAwMCBuIAowMDAwMTAwNDQ1IDAwMDAwIG4gCjAwMDAxMDA2NzQgMDAwMDAgbiAKMDAwMDEwODA1NSAwMDAwMCBuIAowMDAwMTA5NTg1IDAwMDAwIG4gCjAwMDAxMDk2MzYgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSA0MwovUm9vdCA0MSAwIFIKL0luZm8gNDIgMCBSCi9JRCBbPEE1MTIyOERDMEI2RDhERTcwNDA5QjM4RUY1MDJDQkYwPiA8QTUxMjI4REMwQjZEOERFNzA0MDlCMzhFRjUwMkNCRjA+XSA+PgpzdGFydHhyZWYKMTA5OTAyCiUlRU9GCg=="
+}
+
+
+///////// Rest taken from generated pdf.js. (c) by Mozilla. ////////
+///////// File unchanged, except that all references to DOM- ////////
+///////// specific global names have been prefixed by PdfJS_window., ////////
+///////// to avoid interference with the benchmark runner script. ////////
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+var PDFJS = {};
+
+(function pdfjsWrapper() {
+  // Use strict in our context only - users might not want it
+  'use strict';
+
+  PDFJS.build = '3cc61f0';
+
+  // Files are inserted below - see Makefile
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var globalScope = (typeof PdfJS_window.window === 'undefined') ? this : PdfJS_window.window;
+
+var isWorker = (typeof PdfJS_window.window == 'undefined');
+
+var ERRORS = 0, WARNINGS = 1, TODOS = 5;
+var verbosity = WARNINGS;
+
+// The global PDFJS object exposes the API
+// In production, it will be declared outside a global wrapper
+// In development, it will be declared here
+if (!globalScope.PDFJS) {
+  globalScope.PDFJS = {};
+}
+
+// getPdf()
+// Convenience function to perform binary Ajax GET
+// Usage: getPdf('http://...', callback)
+//        getPdf({
+//                 url:String ,
+//                 [,progress:Function, error:Function]
+//               },
+//               callback)
+function getPdf(arg, callback) {
+  var params = arg;
+  if (typeof arg === 'string')
+    params = { url: arg };
+
+  var xhr = new PdfJS_window.XMLHttpRequest();
+  xhr.open('GET', params.url);
+  xhr.mozResponseType = xhr.responseType = 'arraybuffer';
+  var protocol = params.url.indexOf(':') < 0 ? PdfJS_window.window.location.protocol :
+    params.url.substring(0, params.url.indexOf(':') + 1);
+  xhr.expected = (protocol === 'http:' || protocol === 'https:') ? 200 : 0;
+
+  if ('progress' in params)
+    xhr.onprogress = params.progress || undefined;
+
+  if ('error' in params)
+    xhr.onerror = params.error || undefined;
+
+  xhr.onreadystatechange = function getPdfOnreadystatechange(e) {
+    if (xhr.readyState === 4) {
+      if (xhr.status === xhr.expected) {
+        var data = (xhr.mozResponseArrayBuffer || xhr.mozResponse ||
+                    xhr.responseArrayBuffer || xhr.response);
+        callback(data);
+      } else if (params.error) {
+        params.error(e);
+      }
+    }
+  };
+  xhr.send(null);
+}
+globalScope.PDFJS.getPdf = getPdf;
+globalScope.PDFJS.pdfBug = false;
+
+var Page = (function PageClosure() {
+  function Page(xref, pageNumber, pageDict, ref) {
+    this.pageNumber = pageNumber;
+    this.pageDict = pageDict;
+    this.xref = xref;
+    this.ref = ref;
+
+    this.displayReadyPromise = null;
+  }
+
+  Page.prototype = {
+    getPageProp: function Page_getPageProp(key) {
+      return this.pageDict.get(key);
+    },
+    inheritPageProp: function Page_inheritPageProp(key) {
+      var dict = this.pageDict;
+      var obj = dict.get(key);
+      while (obj === undefined) {
+        dict = dict.get('Parent');
+        if (!dict)
+          break;
+        obj = dict.get(key);
+      }
+      return obj;
+    },
+    get content() {
+      return shadow(this, 'content', this.getPageProp('Contents'));
+    },
+    get resources() {
+      return shadow(this, 'resources', this.inheritPageProp('Resources'));
+    },
+    get mediaBox() {
+      var obj = this.inheritPageProp('MediaBox');
+      // Reset invalid media box to letter size.
+      if (!isArray(obj) || obj.length !== 4)
+        obj = [0, 0, 612, 792];
+      return shadow(this, 'mediaBox', obj);
+    },
+    get view() {
+      var mediaBox = this.mediaBox;
+      var cropBox = this.inheritPageProp('CropBox');
+      if (!isArray(cropBox) || cropBox.length !== 4)
+        return shadow(this, 'view', mediaBox);
+
+      // From the spec, 6th ed., p.963:
+      // "The crop, bleed, trim, and art boxes should not ordinarily
+      // extend beyond the boundaries of the media box. If they do, they are
+      // effectively reduced to their intersection with the media box."
+      cropBox = Util.intersect(cropBox, mediaBox);
+      if (!cropBox)
+        return shadow(this, 'view', mediaBox);
+
+      return shadow(this, 'view', cropBox);
+    },
+    get annotations() {
+      return shadow(this, 'annotations', this.inheritPageProp('Annots'));
+    },
+    get rotate() {
+      var rotate = this.inheritPageProp('Rotate') || 0;
+      // Normalize rotation so it's a multiple of 90 and between 0 and 270
+      if (rotate % 90 != 0) {
+        rotate = 0;
+      } else if (rotate >= 360) {
+        rotate = rotate % 360;
+      } else if (rotate < 0) {
+        // The spec doesn't cover negatives, assume its counterclockwise
+        // rotation. The following is the other implementation of modulo.
+        rotate = ((rotate % 360) + 360) % 360;
+      }
+      return shadow(this, 'rotate', rotate);
+    },
+
+    getOperatorList: function Page_getOperatorList(handler, dependency) {
+      var xref = this.xref;
+      var content = this.content;
+      var resources = this.resources;
+      if (isArray(content)) {
+        // fetching items
+        var streams = [];
+        var i, n = content.length;
+        for (i = 0; i < n; ++i)
+          streams.push(xref.fetchIfRef(content[i]));
+        content = new StreamsSequenceStream(streams);
+      } else if (isStream(content)) {
+        content.reset();
+      } else if (!content) {
+        // replacing non-existent page content with empty one
+        content = new Stream(new Uint8Array(0));
+      }
+
+      var pe = this.pe = new PartialEvaluator(
+                                xref, handler, 'p' + this.pageNumber + '_');
+
+      return pe.getOperatorList(content, resources, dependency);
+    },
+
+    getLinks: function Page_getLinks() {
+      var links = [];
+      var annotations = pageGetAnnotations();
+      var i, n = annotations.length;
+      for (i = 0; i < n; ++i) {
+        if (annotations[i].type != 'Link')
+          continue;
+        links.push(annotations[i]);
+      }
+      return links;
+    },
+    getAnnotations: function Page_getAnnotations() {
+      var xref = this.xref;
+      function getInheritableProperty(annotation, name) {
+        var item = annotation;
+        while (item && !item.has(name)) {
+          item = item.get('Parent');
+        }
+        if (!item)
+          return null;
+        return item.get(name);
+      }
+      function isValidUrl(url) {
+        if (!url)
+          return false;
+        var colon = url.indexOf(':');
+        if (colon < 0)
+          return false;
+        var protocol = url.substr(0, colon);
+        switch (protocol) {
+          case 'http':
+          case 'https':
+          case 'ftp':
+          case 'mailto':
+            return true;
+          default:
+            return false;
+        }
+      }
+
+      var annotations = this.annotations || [];
+      var i, n = annotations.length;
+      var items = [];
+      for (i = 0; i < n; ++i) {
+        var annotationRef = annotations[i];
+        var annotation = xref.fetch(annotationRef);
+        if (!isDict(annotation))
+          continue;
+        var subtype = annotation.get('Subtype');
+        if (!isName(subtype))
+          continue;
+        var rect = annotation.get('Rect');
+
+        var item = {};
+        item.type = subtype.name;
+        item.rect = rect;
+        switch (subtype.name) {
+          case 'Link':
+            var a = annotation.get('A');
+            if (a) {
+              switch (a.get('S').name) {
+                case 'URI':
+                  var url = a.get('URI');
+                  // TODO: pdf spec mentions urls can be relative to a Base
+                  // entry in the dictionary.
+                  if (!isValidUrl(url))
+                    url = '';
+                  item.url = url;
+                  break;
+                case 'GoTo':
+                  item.dest = a.get('D');
+                  break;
+                default:
+                  TODO('other link types');
+              }
+            } else if (annotation.has('Dest')) {
+              // simple destination link
+              var dest = annotation.get('Dest');
+              item.dest = isName(dest) ? dest.name : dest;
+            }
+            break;
+          case 'Widget':
+            var fieldType = getInheritableProperty(annotation, 'FT');
+            if (!isName(fieldType))
+              break;
+            item.fieldType = fieldType.name;
+            // Building the full field name by collecting the field and
+            // its ancestors 'T' properties and joining them using '.'.
+            var fieldName = [];
+            var namedItem = annotation, ref = annotationRef;
+            while (namedItem) {
+              var parent = namedItem.get('Parent');
+              var parentRef = namedItem.getRaw('Parent');
+              var name = namedItem.get('T');
+              if (name) {
+                fieldName.unshift(stringToPDFString(name));
+              } else {
+                // The field name is absent, that means more than one field
+                // with the same name may exist. Replacing the empty name
+                // with the '`' plus index in the parent's 'Kids' array.
+                // This is not in the PDF spec but necessary to id the
+                // the input controls.
+                var kids = parent.get('Kids');
+                var j, jj;
+                for (j = 0, jj = kids.length; j < jj; j++) {
+                  var kidRef = kids[j];
+                  if (kidRef.num == ref.num && kidRef.gen == ref.gen)
+                    break;
+                }
+                fieldName.unshift('`' + j);
+              }
+              namedItem = parent;
+              ref = parentRef;
+            }
+            item.fullName = fieldName.join('.');
+            var alternativeText = stringToPDFString(annotation.get('TU') || '');
+            item.alternativeText = alternativeText;
+            var da = getInheritableProperty(annotation, 'DA') || '';
+            var m = /([\d\.]+)\sTf/.exec(da);
+            if (m)
+              item.fontSize = parseFloat(m[1]);
+            item.textAlignment = getInheritableProperty(annotation, 'Q');
+            item.flags = getInheritableProperty(annotation, 'Ff') || 0;
+            break;
+          case 'Text':
+            var content = annotation.get('Contents');
+            var title = annotation.get('T');
+            item.content = stringToPDFString(content || '');
+            item.title = stringToPDFString(title || '');
+            item.name = !annotation.has('Name') ? 'Note' :
+              annotation.get('Name').name;
+            break;
+          default:
+            TODO('unimplemented annotation type: ' + subtype.name);
+            break;
+        }
+        items.push(item);
+      }
+      return items;
+    }
+  };
+
+  return Page;
+})();
+
+/**
+ * The `PDFDocument` holds all the data of the PDF file. Compared to the
+ * `PDFDoc`, this one doesn't have any job management code.
+ * Right now there exists one PDFDocument on the main thread + one object
+ * for each worker. If there is no worker support enabled, there are two
+ * `PDFDocument` objects on the main thread created.
+ */
+var PDFDocument = (function PDFDocumentClosure() {
+  function PDFDocument(arg, callback) {
+    if (isStream(arg))
+      init.call(this, arg);
+    else if (isArrayBuffer(arg))
+      init.call(this, new Stream(arg));
+    else
+      error('PDFDocument: Unknown argument type');
+  }
+
+  function init(stream) {
+    assertWellFormed(stream.length > 0, 'stream must have data');
+    this.stream = stream;
+    this.setup();
+    this.acroForm = this.catalog.catDict.get('AcroForm');
+  }
+
+  function find(stream, needle, limit, backwards) {
+    var pos = stream.pos;
+    var end = stream.end;
+    var str = '';
+    if (pos + limit > end)
+      limit = end - pos;
+    for (var n = 0; n < limit; ++n)
+      str += stream.getChar();
+    stream.pos = pos;
+    var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle);
+    if (index == -1)
+      return false; /* not found */
+    stream.pos += index;
+    return true; /* found */
+  }
+
+  PDFDocument.prototype = {
+    get linearization() {
+      var length = this.stream.length;
+      var linearization = false;
+      if (length) {
+        linearization = new Linearization(this.stream);
+        if (linearization.length != length)
+          linearization = false;
+      }
+      // shadow the prototype getter with a data property
+      return shadow(this, 'linearization', linearization);
+    },
+    get startXRef() {
+      var stream = this.stream;
+      var startXRef = 0;
+      var linearization = this.linearization;
+      if (linearization) {
+        // Find end of first obj.
+        stream.reset();
+        if (find(stream, 'endobj', 1024))
+          startXRef = stream.pos + 6;
+      } else {
+        // Find startxref by jumping backward from the end of the file.
+        var step = 1024;
+        var found = false, pos = stream.end;
+        while (!found && pos > 0) {
+          pos -= step - 'startxref'.length;
+          if (pos < 0)
+            pos = 0;
+          stream.pos = pos;
+          found = find(stream, 'startxref', step, true);
+        }
+        if (found) {
+          stream.skip(9);
+          var ch;
+          do {
+            ch = stream.getChar();
+          } while (Lexer.isSpace(ch));
+          var str = '';
+          while ((ch - '0') <= 9) {
+            str += ch;
+            ch = stream.getChar();
+          }
+          startXRef = parseInt(str, 10);
+          if (isNaN(startXRef))
+            startXRef = 0;
+        }
+      }
+      // shadow the prototype getter with a data property
+      return shadow(this, 'startXRef', startXRef);
+    },
+    get mainXRefEntriesOffset() {
+      var mainXRefEntriesOffset = 0;
+      var linearization = this.linearization;
+      if (linearization)
+        mainXRefEntriesOffset = linearization.mainXRefEntriesOffset;
+      // shadow the prototype getter with a data property
+      return shadow(this, 'mainXRefEntriesOffset', mainXRefEntriesOffset);
+    },
+    // Find the header, remove leading garbage and setup the stream
+    // starting from the header.
+    checkHeader: function PDFDocument_checkHeader() {
+      var stream = this.stream;
+      stream.reset();
+      if (find(stream, '%PDF-', 1024)) {
+        // Found the header, trim off any garbage before it.
+        stream.moveStart();
+        return;
+      }
+      // May not be a PDF file, continue anyway.
+    },
+    setup: function PDFDocument_setup(ownerPassword, userPassword) {
+      this.checkHeader();
+      var xref = new XRef(this.stream,
+                          this.startXRef,
+                          this.mainXRefEntriesOffset);
+      this.xref = xref;
+      this.catalog = new Catalog(xref);
+    },
+    get numPages() {
+      var linearization = this.linearization;
+      var num = linearization ? linearization.numPages : this.catalog.numPages;
+      // shadow the prototype getter
+      return shadow(this, 'numPages', num);
+    },
+    getDocumentInfo: function PDFDocument_getDocumentInfo() {
+      var info;
+      if (this.xref.trailer.has('Info')) {
+        var infoDict = this.xref.trailer.get('Info');
+
+        info = {};
+        infoDict.forEach(function(key, value) {
+          info[key] = typeof value !== 'string' ? value :
+            stringToPDFString(value);
+        });
+      }
+
+      return shadow(this, 'getDocumentInfo', info);
+    },
+    getFingerprint: function PDFDocument_getFingerprint() {
+      var xref = this.xref, fileID;
+      if (xref.trailer.has('ID')) {
+        fileID = '';
+        var id = xref.trailer.get('ID')[0];
+        id.split('').forEach(function(el) {
+          fileID += Number(el.charCodeAt(0)).toString(16);
+        });
+      } else {
+        // If we got no fileID, then we generate one,
+        // from the first 100 bytes of PDF
+        var data = this.stream.bytes.subarray(0, 100);
+        var hash = calculateMD5(data, 0, data.length);
+        fileID = '';
+        for (var i = 0, length = hash.length; i < length; i++) {
+          fileID += Number(hash[i]).toString(16);
+        }
+      }
+
+      return shadow(this, 'getFingerprint', fileID);
+    },
+    getPage: function PDFDocument_getPage(n) {
+      return this.catalog.getPage(n);
+    }
+  };
+
+  return PDFDocument;
+})();
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+function log(msg) {
+  if (PdfJS_window.console && PdfJS_window.console.log)
+    PdfJS_window.console.log(msg);
+  else if (print)
+    print(msg);
+}
+
+function warn(msg) {
+  if (verbosity >= WARNINGS)
+    log('Warning: ' + msg);
+}
+
+function backtrace() {
+  try {
+    throw new Error();
+  } catch (e) {
+    return e.stack ? e.stack.split('\n').slice(2).join('\n') : '';
+  }
+}
+
+function error(msg) {
+  log('Error: ' + msg);
+  log(backtrace());
+  throw new Error(msg);
+}
+
+function TODO(what) {
+  if (verbosity >= TODOS)
+    log('TODO: ' + what);
+}
+
+function malformed(msg) {
+  error('Malformed PDF: ' + msg);
+}
+
+function assert(cond, msg) {
+  if (!cond)
+    error(msg);
+}
+
+// In a well-formed PDF, |cond| holds.  If it doesn't, subsequent
+// behavior is undefined.
+function assertWellFormed(cond, msg) {
+  if (!cond)
+    malformed(msg);
+}
+
+function shadow(obj, prop, value) {
+  Object.defineProperty(obj, prop, { value: value,
+                                     enumerable: true,
+                                     configurable: true,
+                                     writable: false });
+  return value;
+}
+
+function bytesToString(bytes) {
+  var str = '';
+  var length = bytes.length;
+  for (var n = 0; n < length; ++n)
+    str += String.fromCharCode(bytes[n]);
+  return str;
+}
+
+function stringToBytes(str) {
+  var length = str.length;
+  var bytes = new Uint8Array(length);
+  for (var n = 0; n < length; ++n)
+    bytes[n] = str.charCodeAt(n) & 0xFF;
+  return bytes;
+}
+
+var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
+
+var Util = PDFJS.Util = (function UtilClosure() {
+  function Util() {}
+
+  Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {
+    var ri = (255 * r) | 0, gi = (255 * g) | 0, bi = (255 * b) | 0;
+    return 'rgb(' + ri + ',' + gi + ',' + bi + ')';
+  };
+
+  Util.makeCssCmyk = function Util_makeCssCmyk(c, m, y, k) {
+    c = (new DeviceCmykCS()).getRgb([c, m, y, k]);
+    var ri = (255 * c[0]) | 0, gi = (255 * c[1]) | 0, bi = (255 * c[2]) | 0;
+    return 'rgb(' + ri + ',' + gi + ',' + bi + ')';
+  };
+
+  // For 2d affine transforms
+  Util.applyTransform = function Util_applyTransform(p, m) {
+    var xt = p[0] * m[0] + p[1] * m[2] + m[4];
+    var yt = p[0] * m[1] + p[1] * m[3] + m[5];
+    return [xt, yt];
+  };
+
+  Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {
+    var d = m[0] * m[3] - m[1] * m[2];
+    var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
+    var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
+    return [xt, yt];
+  };
+
+  Util.inverseTransform = function Util_inverseTransform(m) {
+    var d = m[0] * m[3] - m[1] * m[2];
+    return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d,
+      (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];
+  };
+
+  // Apply a generic 3d matrix M on a 3-vector v:
+  //   | a b c |   | X |
+  //   | d e f | x | Y |
+  //   | g h i |   | Z |
+  // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],
+  // with v as [X,Y,Z]
+  Util.apply3dTransform = function Util_apply3dTransform(m, v) {
+    return [
+      m[0] * v[0] + m[1] * v[1] + m[2] * v[2],
+      m[3] * v[0] + m[4] * v[1] + m[5] * v[2],
+      m[6] * v[0] + m[7] * v[1] + m[8] * v[2]
+    ];
+  }
+
+  // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)
+  // For coordinate systems whose origin lies in the bottom-left, this
+  // means normalization to (BL,TR) ordering. For systems with origin in the
+  // top-left, this means (TL,BR) ordering.
+  Util.normalizeRect = function Util_normalizeRect(rect) {
+    var r = rect.slice(0); // clone rect
+    if (rect[0] > rect[2]) {
+      r[0] = rect[2];
+      r[2] = rect[0];
+    }
+    if (rect[1] > rect[3]) {
+      r[1] = rect[3];
+      r[3] = rect[1];
+    }
+    return r;
+  }
+
+  // Returns a rectangle [x1, y1, x2, y2] corresponding to the
+  // intersection of rect1 and rect2. If no intersection, returns 'false'
+  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]
+  Util.intersect = function Util_intersect(rect1, rect2) {
+    function compare(a, b) {
+      return a - b;
+    };
+
+    // Order points along the axes
+    var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),
+        orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),
+        result = [];
+
+    rect1 = Util.normalizeRect(rect1);
+    rect2 = Util.normalizeRect(rect2);
+
+    // X: first and second points belong to different rectangles?
+    if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||
+        (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) {
+      // Intersection must be between second and third points
+      result[0] = orderedX[1];
+      result[2] = orderedX[2];
+    } else {
+      return false;
+    }
+
+    // Y: first and second points belong to different rectangles?
+    if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||
+        (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) {
+      // Intersection must be between second and third points
+      result[1] = orderedY[1];
+      result[3] = orderedY[2];
+    } else {
+      return false;
+    }
+
+    return result;
+  };
+
+  Util.sign = function Util_sign(num) {
+    return num < 0 ? -1 : 1;
+  };
+
+  return Util;
+})();
+
+var PageViewport = PDFJS.PageViewport = (function PageViewportClosure() {
+  function PageViewport(viewBox, scale, rotate, offsetX, offsetY) {
+    // creating transform to convert pdf coordinate system to the normal
+    // canvas like coordinates taking in account scale and rotation
+    var centerX = (viewBox[2] + viewBox[0]) / 2;
+    var centerY = (viewBox[3] + viewBox[1]) / 2;
+    var rotateA, rotateB, rotateC, rotateD;
+    switch (rotate) {
+      case -180:
+      case 180:
+        rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1;
+        break;
+      case -270:
+      case 90:
+        rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0;
+        break;
+      case -90:
+      case 270:
+        rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0;
+        break;
+      case 360:
+      case 0:
+      default:
+        rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1;
+        break;
+    }
+    var offsetCanvasX, offsetCanvasY;
+    var width, height;
+    if (rotateA == 0) {
+      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
+      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
+      width = Math.abs(viewBox[3] - viewBox[1]) * scale;
+      height = Math.abs(viewBox[2] - viewBox[0]) * scale;
+    } else {
+      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
+      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
+      width = Math.abs(viewBox[2] - viewBox[0]) * scale;
+      height = Math.abs(viewBox[3] - viewBox[1]) * scale;
+    }
+    // creating transform for the following operations:
+    // translate(-centerX, -centerY), rotate and flip vertically,
+    // scale, and translate(offsetCanvasX, offsetCanvasY)
+    this.transform = [
+      rotateA * scale,
+      rotateB * scale,
+      rotateC * scale,
+      rotateD * scale,
+      offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,
+      offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY
+    ];
+
+    this.offsetX = offsetX;
+    this.offsetY = offsetY;
+    this.width = width;
+    this.height = height;
+    this.fontScale = scale;
+  }
+  PageViewport.prototype = {
+    convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) {
+      return Util.applyTransform([x, y], this.transform);
+    },
+    convertToViewportRectangle:
+      function PageViewport_convertToViewportRectangle(rect) {
+      var tl = Util.applyTransform([rect[0], rect[1]], this.transform);
+      var br = Util.applyTransform([rect[2], rect[3]], this.transform);
+      return [tl[0], tl[1], br[0], br[1]];
+    },
+    convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) {
+      return Util.applyInverseTransform([x, y], this.transform);
+    }
+  };
+  return PageViewport;
+})();
+
+var PDFStringTranslateTable = [
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,
+  0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,
+  0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,
+  0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC
+];
+
+function stringToPDFString(str) {
+  var i, n = str.length, str2 = '';
+  if (str[0] === '\xFE' && str[1] === '\xFF') {
+    // UTF16BE BOM
+    for (i = 2; i < n; i += 2)
+      str2 += String.fromCharCode(
+        (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1));
+  } else {
+    for (i = 0; i < n; ++i) {
+      var code = PDFStringTranslateTable[str.charCodeAt(i)];
+      str2 += code ? String.fromCharCode(code) : str.charAt(i);
+    }
+  }
+  return str2;
+}
+
+function isBool(v) {
+  return typeof v == 'boolean';
+}
+
+function isInt(v) {
+  return typeof v == 'number' && ((v | 0) == v);
+}
+
+function isNum(v) {
+  return typeof v == 'number';
+}
+
+function isString(v) {
+  return typeof v == 'string';
+}
+
+function isNull(v) {
+  return v === null;
+}
+
+function isName(v) {
+  return v instanceof Name;
+}
+
+function isCmd(v, cmd) {
+  return v instanceof Cmd && (!cmd || v.cmd == cmd);
+}
+
+function isDict(v, type) {
+  return v instanceof Dict && (!type || v.get('Type').name == type);
+}
+
+function isArray(v) {
+  return v instanceof Array;
+}
+
+function isStream(v) {
+  return typeof v == 'object' && v != null && ('getChar' in v);
+}
+
+function isArrayBuffer(v) {
+  return typeof v == 'object' && v != null && ('byteLength' in v);
+}
+
+function isRef(v) {
+  return v instanceof Ref;
+}
+
+function isPDFFunction(v) {
+  var fnDict;
+  if (typeof v != 'object')
+    return false;
+  else if (isDict(v))
+    fnDict = v;
+  else if (isStream(v))
+    fnDict = v.dict;
+  else
+    return false;
+  return fnDict.has('FunctionType');
+}
+
+/**
+ * 'Promise' object.
+ * Each object that is stored in PDFObjects is based on a Promise object that
+ * contains the status of the object and the data. There migth be situations,
+ * where a function want to use the value of an object, but it isn't ready at
+ * that time. To get a notification, once the object is ready to be used, s.o.
+ * can add a callback using the `then` method on the promise that then calls
+ * the callback once the object gets resolved.
+ * A promise can get resolved only once and only once the data of the promise
+ * can be set. If any of these happens twice or the data is required before
+ * it was set, an exception is throw.
+ */
+var Promise = PDFJS.Promise = (function PromiseClosure() {
+  var EMPTY_PROMISE = {};
+
+  /**
+   * If `data` is passed in this constructor, the promise is created resolved.
+   * If there isn't data, it isn't resolved at the beginning.
+   */
+  function Promise(name, data) {
+    this.name = name;
+    this.isRejected = false;
+    this.error = null;
+    // If you build a promise and pass in some data it's already resolved.
+    if (data != null) {
+      this.isResolved = true;
+      this._data = data;
+      this.hasData = true;
+    } else {
+      this.isResolved = false;
+      this._data = EMPTY_PROMISE;
+    }
+    this.callbacks = [];
+    this.errbacks = [];
+    this.progressbacks = [];
+  };
+  /**
+   * Builds a promise that is resolved when all the passed in promises are
+   * resolved.
+   * @param {Promise[]} promises Array of promises to wait for.
+   * @return {Promise} New dependant promise.
+   */
+  Promise.all = function Promise_all(promises) {
+    var deferred = new Promise();
+    var unresolved = promises.length;
+    var results = [];
+    if (unresolved === 0) {
+      deferred.resolve(results);
+      return deferred;
+    }
+    for (var i = 0, ii = promises.length; i < ii; ++i) {
+      var promise = promises[i];
+      promise.then((function(i) {
+        return function(value) {
+          results[i] = value;
+          unresolved--;
+          if (unresolved === 0)
+            deferred.resolve(results);
+        };
+      })(i));
+    }
+    return deferred;
+  };
+  Promise.prototype = {
+    hasData: false,
+
+    set data(value) {
+      if (value === undefined) {
+        return;
+      }
+      if (this._data !== EMPTY_PROMISE) {
+        error('Promise ' + this.name +
+              ': Cannot set the data of a promise twice');
+      }
+      this._data = value;
+      this.hasData = true;
+
+      if (this.onDataCallback) {
+        this.onDataCallback(value);
+      }
+    },
+
+    get data() {
+      if (this._data === EMPTY_PROMISE) {
+        error('Promise ' + this.name + ': Cannot get data that isn\'t set');
+      }
+      return this._data;
+    },
+
+    onData: function Promise_onData(callback) {
+      if (this._data !== EMPTY_PROMISE) {
+        callback(this._data);
+      } else {
+        this.onDataCallback = callback;
+      }
+    },
+
+    resolve: function Promise_resolve(data) {
+      if (this.isResolved) {
+        error('A Promise can be resolved only once ' + this.name);
+      }
+      if (this.isRejected) {
+        error('The Promise was already rejected ' + this.name);
+      }
+
+      this.isResolved = true;
+      this.data = data || null;
+      var callbacks = this.callbacks;
+
+      for (var i = 0, ii = callbacks.length; i < ii; i++) {
+        callbacks[i].call(null, data);
+      }
+    },
+
+    progress: function Promise_progress(data) {
+      var callbacks = this.progressbacks;
+      for (var i = 0, ii = callbacks.length; i < ii; i++) {
+        callbacks[i].call(null, data);
+      }
+    },
+
+    reject: function Promise_reject(reason) {
+      if (this.isRejected) {
+        error('A Promise can be rejected only once ' + this.name);
+      }
+      if (this.isResolved) {
+        error('The Promise was already resolved ' + this.name);
+      }
+
+      this.isRejected = true;
+      this.error = reason || null;
+      var errbacks = this.errbacks;
+
+      for (var i = 0, ii = errbacks.length; i < ii; i++) {
+        errbacks[i].call(null, reason);
+      }
+    },
+
+    then: function Promise_then(callback, errback, progressback) {
+      if (!callback) {
+        error('Requiring callback' + this.name);
+      }
+
+      // If the promise is already resolved, call the callback directly.
+      if (this.isResolved) {
+        var data = this.data;
+        callback.call(null, data);
+      } else if (this.isRejected && errback) {
+        var error = this.error;
+        errback.call(null, error);
+      } else {
+        this.callbacks.push(callback);
+        if (errback)
+          this.errbacks.push(errback);
+      }
+
+      if (progressback)
+        this.progressbacks.push(progressback);
+    }
+  };
+
+  return Promise;
+})();
+
+var StatTimer = (function StatTimerClosure() {
+  function rpad(str, pad, length) {
+    while (str.length < length)
+      str += pad;
+    return str;
+  }
+  function StatTimer() {
+    this.started = {};
+    this.times = [];
+    this.enabled = true;
+  }
+  StatTimer.prototype = {
+    time: function StatTimer_time(name) {
+      if (!this.enabled)
+        return;
+      if (name in this.started)
+        throw 'Timer is already running for ' + name;
+      this.started[name] = Date.now();
+    },
+    timeEnd: function StatTimer_timeEnd(name) {
+      if (!this.enabled)
+        return;
+      if (!(name in this.started))
+        throw 'Timer has not been started for ' + name;
+      this.times.push({
+        'name': name,
+        'start': this.started[name],
+        'end': Date.now()
+      });
+      // Remove timer from started so it can be called again.
+      delete this.started[name];
+    },
+    toString: function StatTimer_toString() {
+      var times = this.times;
+      var out = '';
+      // Find the longest name for padding purposes.
+      var longest = 0;
+      for (var i = 0, ii = times.length; i < ii; ++i) {
+        var name = times[i]['name'];
+        if (name.length > longest)
+          longest = name.length;
+      }
+      for (var i = 0, ii = times.length; i < ii; ++i) {
+        var span = times[i];
+        var duration = span.end - span.start;
+        out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n';
+      }
+      return out;
+    }
+  };
+  return StatTimer;
+})();
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+/**
+ * This is the main entry point for loading a PDF and interacting with it.
+ * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR)
+ * is used, which means it must follow the same origin rules that any XHR does
+ * e.g. No cross domain requests without CORS.
+ *
+ * @param {string|TypedAray} source Either a url to a PDF is located or a
+ * typed array already populated with data.
+ * @return {Promise} A promise that is resolved with {PDFDocumentProxy} object.
+ */
+PDFJS.getDocument = function getDocument(source) {
+  var promise = new PDFJS.Promise();
+  var transport = new WorkerTransport(promise);
+  if (typeof source === 'string') {
+    // fetch url
+    PDFJS.getPdf(
+      {
+        url: source,
+        progress: function getPDFProgress(evt) {
+          if (evt.lengthComputable)
+            promise.progress({
+              loaded: evt.loaded,
+              total: evt.total
+            });
+        },
+        error: function getPDFError(e) {
+          promise.reject('Unexpected server response of ' +
+            e.target.status + '.');
+        }
+      },
+      function getPDFLoad(data) {
+        transport.sendData(data);
+      });
+  } else {
+    // assuming the source is array, instantiating directly from it
+    transport.sendData(source);
+  }
+  return promise;
+};
+
+/**
+ * Proxy to a PDFDocument in the worker thread. Also, contains commonly used
+ * properties that can be read synchronously.
+ */
+var PDFDocumentProxy = (function PDFDocumentProxyClosure() {
+  function PDFDocumentProxy(pdfInfo, transport) {
+    this.pdfInfo = pdfInfo;
+    this.transport = transport;
+  }
+  PDFDocumentProxy.prototype = {
+    /**
+     * @return {number} Total number of pages the PDF contains.
+     */
+    get numPages() {
+      return this.pdfInfo.numPages;
+    },
+    /**
+     * @return {string} A unique ID to identify a PDF. Not guaranteed to be
+     * unique.
+     */
+    get fingerprint() {
+      return this.pdfInfo.fingerprint;
+    },
+    /**
+     * @param {number} The page number to get. The first page is 1.
+     * @return {Promise} A promise that is resolved with a {PDFPageProxy}
+     * object.
+     */
+    getPage: function PDFDocumentProxy_getPage(number) {
+      return this.transport.getPage(number);
+    },
+    /**
+     * @return {Promise} A promise that is resolved with a lookup table for
+     * mapping named destinations to reference numbers.
+     */
+    getDestinations: function PDFDocumentProxy_getDestinations() {
+      var promise = new PDFJS.Promise();
+      var destinations = this.pdfInfo.destinations;
+      promise.resolve(destinations);
+      return promise;
+    },
+    /**
+     * @return {Promise} A promise that is resolved with an {array} that is a
+     * tree outline (if it has one) of the PDF. The tree is in the format of:
+     * [
+     *  {
+     *   title: string,
+     *   bold: boolean,
+     *   italic: boolean,
+     *   color: rgb array,
+     *   dest: dest obj,
+     *   items: array of more items like this
+     *  },
+     *  ...
+     * ].
+     */
+    getOutline: function PDFDocumentProxy_getOutline() {
+      var promise = new PDFJS.Promise();
+      var outline = this.pdfInfo.outline;
+      promise.resolve(outline);
+      return promise;
+    },
+    /**
+     * @return {Promise} A promise that is resolved with an {object} that has
+     * info and metadata properties.  Info is an {object} filled with anything
+     * available in the information dictionary and similarly metadata is a
+     * {Metadata} object with information from the metadata section of the PDF.
+     */
+    getMetadata: function PDFDocumentProxy_getMetadata() {
+      var promise = new PDFJS.Promise();
+      var info = this.pdfInfo.info;
+      var metadata = this.pdfInfo.metadata;
+      promise.resolve({
+        info: info,
+        metadata: metadata ? new PDFJS.Metadata(metadata) : null
+      });
+      return promise;
+    },
+    destroy: function PDFDocumentProxy_destroy() {
+      this.transport.destroy();
+    }
+  };
+  return PDFDocumentProxy;
+})();
+
+var PDFPageProxy = (function PDFPageProxyClosure() {
+  function PDFPageProxy(pageInfo, transport) {
+    this.pageInfo = pageInfo;
+    this.transport = transport;
+    this.stats = new StatTimer();
+    this.stats.enabled = !!globalScope.PDFJS.enableStats;
+    this.objs = transport.objs;
+    this.renderInProgress = false;
+  }
+  PDFPageProxy.prototype = {
+    /**
+     * @return {number} Page number of the page. First page is 1.
+     */
+    get pageNumber() {
+      return this.pageInfo.pageIndex + 1;
+    },
+    /**
+     * @return {number} The number of degrees the page is rotated clockwise.
+     */
+    get rotate() {
+      return this.pageInfo.rotate;
+    },
+    /**
+     * @return {object} The reference that points to this page. It has 'num' and
+     * 'gen' properties.
+     */
+    get ref() {
+      return this.pageInfo.ref;
+    },
+    /**
+     * @return {array} An array of the visible portion of the PDF page in the
+     * user space units - [x1, y1, x2, y2].
+     */
+    get view() {
+      return this.pageInfo.view;
+    },
+    /**
+     * @param {number} scale The desired scale of the viewport.
+     * @param {number} rotate Degrees to rotate the viewport. If omitted this
+     * defaults to the page rotation.
+     * @return {PageViewport} Contains 'width' and 'height' properties along
+     * with transforms required for rendering.
+     */
+    getViewport: function PDFPageProxy_getViewport(scale, rotate) {
+      if (arguments.length < 2)
+        rotate = this.rotate;
+      return new PDFJS.PageViewport(this.view, scale, rotate, 0, 0);
+    },
+    /**
+     * @return {Promise} A promise that is resolved with an {array} of the
+     * annotation objects.
+     */
+    getAnnotations: function PDFPageProxy_getAnnotations() {
+      if (this.annotationsPromise)
+        return this.annotationsPromise;
+
+      var promise = new PDFJS.Promise();
+      this.annotationsPromise = promise;
+      this.transport.getAnnotations(this.pageInfo.pageIndex);
+      return promise;
+    },
+    /**
+     * Begins the process of rendering a page to the desired context.
+     * @param {object} params A parameter object that supports:
+     * {
+     *   canvasContext(required): A 2D context of a DOM Canvas object.,
+     *   textLayer(optional): An object that has beginLayout, endLayout, and
+     *                        appendText functions.
+     * }.
+     * @return {Promise} A promise that is resolved when the page finishes
+     * rendering.
+     */
+    render: function PDFPageProxy_render(params) {
+      this.renderInProgress = true;
+
+      var promise = new Promise();
+      var stats = this.stats;
+      stats.time('Overall');
+      // If there is no displayReadyPromise yet, then the operatorList was never
+      // requested before. Make the request and create the promise.
+      if (!this.displayReadyPromise) {
+        this.displayReadyPromise = new Promise();
+        this.destroyed = false;
+
+        this.stats.time('Page Request');
+        this.transport.messageHandler.send('RenderPageRequest', {
+          pageIndex: this.pageNumber - 1
+        });
+      }
+
+      var self = this;
+      function complete(error) {
+        self.renderInProgress = false;
+        if (self.destroyed) {
+          delete self.operatorList;
+          delete self.displayReadyPromise;
+        }
+
+        if (error)
+          promise.reject(error);
+        else
+          promise.resolve();
+      };
+
+      // Once the operatorList and fonts are loaded, do the actual rendering.
+      this.displayReadyPromise.then(
+        function pageDisplayReadyPromise() {
+          if (self.destroyed) {
+            complete();
+            return;
+          }
+
+          var gfx = new CanvasGraphics(params.canvasContext,
+            this.objs, params.textLayer);
+          try {
+           this.display(gfx, params.viewport, complete);
+          } catch (e) {
+            complete(e);
+          }
+        }.bind(this),
+        function pageDisplayReadPromiseError(reason) {
+          complete(reason);
+        }
+      );
+
+      return promise;
+    },
+    /**
+     * For internal use only.
+     */
+    startRenderingFromOperatorList:
+      function PDFPageProxy_startRenderingFromOperatorList(operatorList,
+                                                           fonts) {
+      var self = this;
+      this.operatorList = operatorList;
+
+      var displayContinuation = function pageDisplayContinuation() {
+        // Always defer call to display() to work around bug in
+        // Firefox error reporting from XHR callbacks.
+        PdfJS_window.setTimeout(function pageSetTimeout() {
+          self.displayReadyPromise.resolve();
+        });
+      };
+
+      this.ensureFonts(fonts,
+        function pageStartRenderingFromOperatorListEnsureFonts() {
+          displayContinuation();
+        }
+      );
+    },
+    /**
+     * For internal use only.
+     */
+    ensureFonts: function PDFPageProxy_ensureFonts(fonts, callback) {
+      this.stats.time('Font Loading');
+      // Convert the font names to the corresponding font obj.
+      for (var i = 0, ii = fonts.length; i < ii; i++) {
+        fonts[i] = this.objs.objs[fonts[i]].data;
+      }
+
+      // Load all the fonts
+      FontLoader.bind(
+        fonts,
+        function pageEnsureFontsFontObjs(fontObjs) {
+          this.stats.timeEnd('Font Loading');
+
+          callback.call(this);
+        }.bind(this)
+      );
+    },
+    /**
+     * For internal use only.
+     */
+    display: function PDFPageProxy_display(gfx, viewport, callback) {
+      var stats = this.stats;
+      stats.time('Rendering');
+
+      gfx.beginDrawing(viewport);
+
+      var startIdx = 0;
+      var length = this.operatorList.fnArray.length;
+      var operatorList = this.operatorList;
+      var stepper = null;
+      if (PDFJS.pdfBug && StepperManager.enabled) {
+        stepper = StepperManager.create(this.pageNumber - 1);
+        stepper.init(operatorList);
+        stepper.nextBreakPoint = stepper.getNextBreakPoint();
+      }
+
+      var self = this;
+      function next() {
+        startIdx =
+          gfx.executeOperatorList(operatorList, startIdx, next, stepper);
+        if (startIdx == length) {
+          gfx.endDrawing();
+          stats.timeEnd('Rendering');
+          stats.timeEnd('Overall');
+          if (callback) callback();
+        }
+      }
+      next();
+    },
+    /**
+     * Stub for future feature.
+     */
+    getTextContent: function PDFPageProxy_getTextContent() {
+      var promise = new PDFJS.Promise();
+      var textContent = 'page text'; // not implemented
+      promise.resolve(textContent);
+      return promise;
+    },
+    /**
+     * Stub for future feature.
+     */
+    getOperationList: function PDFPageProxy_getOperationList() {
+      var promise = new PDFJS.Promise();
+      var operationList = { // not implemented
+        dependencyFontsID: null,
+        operatorList: null
+      };
+      promise.resolve(operationList);
+      return promise;
+    },
+    /**
+     * Destroys resources allocated by the page.
+     */
+    destroy: function PDFPageProxy_destroy() {
+      this.destroyed = true;
+
+      if (!this.renderInProgress) {
+        delete this.operatorList;
+        delete this.displayReadyPromise;
+      }
+    }
+  };
+  return PDFPageProxy;
+})();
+/**
+ * For internal use only.
+ */
+var WorkerTransport = (function WorkerTransportClosure() {
+  function WorkerTransport(promise) {
+    this.workerReadyPromise = promise;
+    this.objs = new PDFObjects();
+
+    this.pageCache = [];
+    this.pagePromises = [];
+    this.fontsLoading = {};
+
+    // If worker support isn't disabled explicit and the browser has worker
+    // support, create a new web worker and test if it/the browser fullfills
+    // all requirements to run parts of pdf.js in a web worker.
+    // Right now, the requirement is, that an Uint8Array is still an Uint8Array
+    // as it arrives on the worker. Chrome added this with version 15.
+    if (!globalScope.PDFJS.disableWorker && typeof PdfJS_window.Worker !== 'undefined') {
+      var workerSrc = PDFJS.workerSrc;
+      if (typeof workerSrc === 'undefined') {
+        error('No PDFJS.workerSrc specified');
+      }
+
+      try {
+        var worker;
+        if (PDFJS.isFirefoxExtension) {
+          // The firefox extension can't load the worker from the resource://
+          // url so we have to inline the script and then use the blob loader.
+          var bb = new MozBlobBuilder();
+          bb.append(PdfJS_window.document.querySelector('#PDFJS_SCRIPT_TAG').textContent);
+          var blobUrl = PdfJS_window.window.URL.createObjectURL(bb.getBlob());
+          worker = new Worker(blobUrl);
+        } else {
+          // Some versions of FF can't create a worker on localhost, see:
+          // https://bugzilla.mozilla.org/show_bug.cgi?id=683280
+          worker = new Worker(workerSrc);
+        }
+
+        var messageHandler = new MessageHandler('main', worker);
+        this.messageHandler = messageHandler;
+
+        messageHandler.on('test', function transportTest(supportTypedArray) {
+          if (supportTypedArray) {
+            this.worker = worker;
+            this.setupMessageHandler(messageHandler);
+          } else {
+            globalScope.PDFJS.disableWorker = true;
+            this.setupFakeWorker();
+          }
+        }.bind(this));
+
+        var testObj = new Uint8Array(1);
+        // Some versions of Opera throw a DATA_CLONE_ERR on
+        // serializing the typed array.
+        messageHandler.send('test', testObj);
+        return;
+      } catch (e) {
+        warn('The worker has been disabled.');
+      }
+    }
+    // Either workers are disabled, not supported or have thrown an exception.
+    // Thus, we fallback to a faked worker.
+    globalScope.PDFJS.disableWorker = true;
+    this.setupFakeWorker();
+  }
+  WorkerTransport.prototype = {
+    destroy: function WorkerTransport_destroy() {
+      if (this.worker)
+        this.worker.terminate();
+
+      this.pageCache = [];
+      this.pagePromises = [];
+    },
+    setupFakeWorker: function WorkerTransport_setupFakeWorker() {
+      // If we don't use a worker, just post/sendMessage to the main thread.
+      var fakeWorker = {
+        postMessage: function WorkerTransport_postMessage(obj) {
+          fakeWorker.onmessage({data: obj});
+        },
+        terminate: function WorkerTransport_terminate() {}
+      };
+
+      var messageHandler = new MessageHandler('main', fakeWorker);
+      this.setupMessageHandler(messageHandler);
+
+      // If the main thread is our worker, setup the handling for the messages
+      // the main thread sends to it self.
+      WorkerMessageHandler.setup(messageHandler);
+    },
+
+    setupMessageHandler:
+      function WorkerTransport_setupMessageHandler(messageHandler) {
+      this.messageHandler = messageHandler;
+
+      messageHandler.on('GetDoc', function transportDoc(data) {
+        var pdfInfo = data.pdfInfo;
+        var pdfDocument = new PDFDocumentProxy(pdfInfo, this);
+        this.pdfDocument = pdfDocument;
+        this.workerReadyPromise.resolve(pdfDocument);
+      }, this);
+
+      messageHandler.on('GetPage', function transportPage(data) {
+        var pageInfo = data.pageInfo;
+        var page = new PDFPageProxy(pageInfo, this);
+        this.pageCache[pageInfo.pageIndex] = page;
+        var promise = this.pagePromises[pageInfo.pageIndex];
+        promise.resolve(page);
+      }, this);
+
+      messageHandler.on('GetAnnotations', function transportAnnotations(data) {
+        var annotations = data.annotations;
+        var promise = this.pageCache[data.pageIndex].annotationsPromise;
+        promise.resolve(annotations);
+      }, this);
+
+      messageHandler.on('RenderPage', function transportRender(data) {
+        var page = this.pageCache[data.pageIndex];
+        var depFonts = data.depFonts;
+
+        page.stats.timeEnd('Page Request');
+        page.startRenderingFromOperatorList(data.operatorList, depFonts);
+      }, this);
+
+      messageHandler.on('obj', function transportObj(data) {
+        var id = data[0];
+        var type = data[1];
+        if (this.objs.hasData(id))
+          return;
+
+        switch (type) {
+          case 'JpegStream':
+            var imageData = data[2];
+            loadJpegStream(id, imageData, this.objs);
+            break;
+          case 'Image':
+            var imageData = data[2];
+            this.objs.resolve(id, imageData);
+            break;
+          case 'Font':
+            var name = data[2];
+            var file = data[3];
+            var properties = data[4];
+
+            if (file) {
+              // Rewrap the ArrayBuffer in a stream.
+              var fontFileDict = new Dict();
+              file = new Stream(file, 0, file.length, fontFileDict);
+            }
+
+            // At this point, only the font object is created but the font is
+            // not yet attached to the DOM. This is done in `FontLoader.bind`.
+            var font = new Font(name, file, properties);
+            this.objs.resolve(id, font);
+            break;
+          default:
+            error('Got unkown object type ' + type);
+        }
+      }, this);
+
+      messageHandler.on('PageError', function transportError(data) {
+        var page = this.pageCache[data.pageNum - 1];
+        if (page.displayReadyPromise)
+          page.displayReadyPromise.reject(data.error);
+        else
+          error(data.error);
+      }, this);
+
+      messageHandler.on('JpegDecode', function(data, promise) {
+        var imageData = data[0];
+        var components = data[1];
+        if (components != 3 && components != 1)
+          error('Only 3 component or 1 component can be returned');
+
+        var img = new Image();
+        img.onload = (function messageHandler_onloadClosure() {
+          var width = img.width;
+          var height = img.height;
+          var size = width * height;
+          var rgbaLength = size * 4;
+          var buf = new Uint8Array(size * components);
+          var tmpCanvas = createScratchCanvas(width, height);
+          var tmpCtx = tmpCanvas.getContext('2d');
+          tmpCtx.drawImage(img, 0, 0);
+          var data = tmpCtx.getImageData(0, 0, width, height).data;
+
+          if (components == 3) {
+            for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {
+              buf[j] = data[i];
+              buf[j + 1] = data[i + 1];
+              buf[j + 2] = data[i + 2];
+            }
+          } else if (components == 1) {
+            for (var i = 0, j = 0; i < rgbaLength; i += 4, j++) {
+              buf[j] = data[i];
+            }
+          }
+          promise.resolve({ data: buf, width: width, height: height});
+        }).bind(this);
+        var src = 'data:image/jpeg;base64,' + PdfJS_window.window.btoa(imageData);
+        img.src = src;
+      });
+    },
+
+    sendData: function WorkerTransport_sendData(data) {
+      this.messageHandler.send('GetDocRequest', data);
+    },
+
+    getPage: function WorkerTransport_getPage(pageNumber, promise) {
+      var pageIndex = pageNumber - 1;
+      if (pageIndex in this.pagePromises)
+        return this.pagePromises[pageIndex];
+      var promise = new PDFJS.Promise('Page ' + pageNumber);
+      this.pagePromises[pageIndex] = promise;
+      this.messageHandler.send('GetPageRequest', { pageIndex: pageIndex });
+      return promise;
+    },
+
+    getAnnotations: function WorkerTransport_getAnnotations(pageIndex) {
+      this.messageHandler.send('GetAnnotationsRequest',
+        { pageIndex: pageIndex });
+    }
+  };
+  return WorkerTransport;
+
+})();
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+// <canvas> contexts store most of the state we need natively.
+// However, PDF needs a bit more state, which we store here.
+
+var TextRenderingMode = {
+  FILL: 0,
+  STROKE: 1,
+  FILL_STROKE: 2,
+  INVISIBLE: 3,
+  FILL_ADD_TO_PATH: 4,
+  STROKE_ADD_TO_PATH: 5,
+  FILL_STROKE_ADD_TO_PATH: 6,
+  ADD_TO_PATH: 7
+};
+
+// Minimal font size that would be used during canvas fillText operations.
+var MIN_FONT_SIZE = 1;
+
+function createScratchCanvas(width, height) {
+  var canvas = PdfJS_window.document.createElement('canvas');
+  canvas.width = width;
+  canvas.height = height;
+  return canvas;
+}
+
+function addContextCurrentTransform(ctx) {
+  // If the context doesn't expose a `mozCurrentTransform`, add a JS based on.
+  if (!ctx.mozCurrentTransform) {
+    // Store the original context
+    ctx._originalSave = ctx.save;
+    ctx._originalRestore = ctx.restore;
+    ctx._originalRotate = ctx.rotate;
+    ctx._originalScale = ctx.scale;
+    ctx._originalTranslate = ctx.translate;
+    ctx._originalTransform = ctx.transform;
+
+    ctx._transformMatrix = [1, 0, 0, 1, 0, 0];
+    ctx._transformStack = [];
+
+    Object.defineProperty(ctx, 'mozCurrentTransform', {
+      get: function getCurrentTransform() {
+        return this._transformMatrix;
+      }
+    });
+
+    Object.defineProperty(ctx, 'mozCurrentTransformInverse', {
+      get: function getCurrentTransformInverse() {
+        // Calculation done using WolframAlpha:
+        // http://www.wolframalpha.com/input/?
+        //   i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}}
+
+        var m = this._transformMatrix;
+        var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5];
+
+        var ad_bc = a * d - b * c;
+        var bc_ad = b * c - a * d;
+
+        return [
+          d / ad_bc,
+          b / bc_ad,
+          c / bc_ad,
+          a / ad_bc,
+          (d * e - c * f) / bc_ad,
+          (b * e - a * f) / ad_bc
+        ];
+      }
+    });
+
+    ctx.save = function ctxSave() {
+      var old = this._transformMatrix;
+      this._transformStack.push(old);
+      this._transformMatrix = old.slice(0, 6);
+
+      this._originalSave();
+    };
+
+    ctx.restore = function ctxRestore() {
+      var prev = this._transformStack.pop();
+      if (prev) {
+        this._transformMatrix = prev;
+        this._originalRestore();
+      }
+    };
+
+    ctx.translate = function ctxTranslate(x, y) {
+      var m = this._transformMatrix;
+      m[4] = m[0] * x + m[2] * y + m[4];
+      m[5] = m[1] * x + m[3] * y + m[5];
+
+      this._originalTranslate(x, y);
+    };
+
+    ctx.scale = function ctxScale(x, y) {
+      var m = this._transformMatrix;
+      m[0] = m[0] * x;
+      m[1] = m[1] * x;
+      m[2] = m[2] * y;
+      m[3] = m[3] * y;
+
+      this._originalScale(x, y);
+    };
+
+    ctx.transform = function ctxTransform(a, b, c, d, e, f) {
+      var m = this._transformMatrix;
+      this._transformMatrix = [
+        m[0] * a + m[2] * b,
+        m[1] * a + m[3] * b,
+        m[0] * c + m[2] * d,
+        m[1] * c + m[3] * d,
+        m[0] * e + m[2] * f + m[4],
+        m[1] * e + m[3] * f + m[5]
+      ];
+
+      ctx._originalTransform(a, b, c, d, e, f);
+    };
+
+    ctx.rotate = function ctxRotate(angle) {
+      var cosValue = Math.cos(angle);
+      var sinValue = Math.sin(angle);
+
+      var m = this._transformMatrix;
+      this._transformMatrix = [
+        m[0] * cosValue + m[2] * sinValue,
+        m[1] * cosValue + m[3] * sinValue,
+        m[0] * (-sinValue) + m[2] * cosValue,
+        m[1] * (-sinValue) + m[3] * cosValue,
+        m[4],
+        m[5]
+      ];
+
+      this._originalRotate(angle);
+    };
+  }
+}
+
+var CanvasExtraState = (function CanvasExtraStateClosure() {
+  function CanvasExtraState(old) {
+    // Are soft masks and alpha values shapes or opacities?
+    this.alphaIsShape = false;
+    this.fontSize = 0;
+    this.fontSizeScale = 1;
+    this.textMatrix = IDENTITY_MATRIX;
+    this.fontMatrix = IDENTITY_MATRIX;
+    this.leading = 0;
+    // Current point (in user coordinates)
+    this.x = 0;
+    this.y = 0;
+    // Start of text line (in text coordinates)
+    this.lineX = 0;
+    this.lineY = 0;
+    // Character and word spacing
+    this.charSpacing = 0;
+    this.wordSpacing = 0;
+    this.textHScale = 1;
+    this.textRenderingMode = TextRenderingMode.FILL;
+    // Color spaces
+    this.fillColorSpace = new DeviceGrayCS();
+    this.fillColorSpaceObj = null;
+    this.strokeColorSpace = new DeviceGrayCS();
+    this.strokeColorSpaceObj = null;
+    this.fillColorObj = null;
+    this.strokeColorObj = null;
+    // Default fore and background colors
+    this.fillColor = '#000000';
+    this.strokeColor = '#000000';
+    // Note: fill alpha applies to all non-stroking operations
+    this.fillAlpha = 1;
+    this.strokeAlpha = 1;
+    this.lineWidth = 1;
+
+    this.old = old;
+  }
+
+  CanvasExtraState.prototype = {
+    clone: function CanvasExtraState_clone() {
+      return Object.create(this);
+    },
+    setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {
+      this.x = x;
+      this.y = y;
+    }
+  };
+  return CanvasExtraState;
+})();
+
+var CanvasGraphics = (function CanvasGraphicsClosure() {
+  // Defines the time the executeOperatorList is going to be executing
+  // before it stops and shedules a continue of execution.
+  var kExecutionTime = 15;
+
+  function CanvasGraphics(canvasCtx, objs, textLayer) {
+    this.ctx = canvasCtx;
+    this.current = new CanvasExtraState();
+    this.stateStack = [];
+    this.pendingClip = null;
+    this.res = null;
+    this.xobjs = null;
+    this.objs = objs;
+    this.textLayer = textLayer;
+    if (canvasCtx) {
+      addContextCurrentTransform(canvasCtx);
+    }
+  }
+
+  var LINE_CAP_STYLES = ['butt', 'round', 'square'];
+  var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];
+  var NORMAL_CLIP = {};
+  var EO_CLIP = {};
+
+  CanvasGraphics.prototype = {
+    slowCommands: {
+      'stroke': true,
+      'closeStroke': true,
+      'fill': true,
+      'eoFill': true,
+      'fillStroke': true,
+      'eoFillStroke': true,
+      'closeFillStroke': true,
+      'closeEOFillStroke': true,
+      'showText': true,
+      'showSpacedText': true,
+      'setStrokeColorSpace': true,
+      'setFillColorSpace': true,
+      'setStrokeColor': true,
+      'setStrokeColorN': true,
+      'setFillColor': true,
+      'setFillColorN': true,
+      'setStrokeGray': true,
+      'setFillGray': true,
+      'setStrokeRGBColor': true,
+      'setFillRGBColor': true,
+      'setStrokeCMYKColor': true,
+      'setFillCMYKColor': true,
+      'paintJpegXObject': true,
+      'paintImageXObject': true,
+      'paintImageMaskXObject': true,
+      'shadingFill': true
+    },
+
+    beginDrawing: function CanvasGraphics_beginDrawing(viewport) {
+      var transform = viewport.transform;
+      this.ctx.save();
+      this.ctx.transform.apply(this.ctx, transform);
+
+      if (this.textLayer)
+        this.textLayer.beginLayout();
+    },
+
+    executeOperatorList: function CanvasGraphics_executeOperatorList(
+                                    operatorList,
+                                    executionStartIdx, continueCallback,
+                                    stepper) {
+      var argsArray = operatorList.argsArray;
+      var fnArray = operatorList.fnArray;
+      var i = executionStartIdx || 0;
+      var argsArrayLen = argsArray.length;
+
+      // Sometimes the OperatorList to execute is empty.
+      if (argsArrayLen == i) {
+        return i;
+      }
+
+      var executionEndIdx;
+      var endTime = Date.now() + kExecutionTime;
+
+      var objs = this.objs;
+      var fnName;
+      var slowCommands = this.slowCommands;
+
+      while (true) {
+        if (stepper && i === stepper.nextBreakPoint) {
+          stepper.breakIt(i, continueCallback);
+          return i;
+        }
+
+        fnName = fnArray[i];
+
+        if (fnName !== 'dependency') {
+          this[fnName].apply(this, argsArray[i]);
+        } else {
+          var deps = argsArray[i];
+          for (var n = 0, nn = deps.length; n < nn; n++) {
+            var depObjId = deps[n];
+
+            // If the promise isn't resolved yet, add the continueCallback
+            // to the promise and bail out.
+            if (!objs.isResolved(depObjId)) {
+              objs.get(depObjId, continueCallback);
+              return i;
+            }
+          }
+        }
+
+        i++;
+
+        // If the entire operatorList was executed, stop as were done.
+        if (i == argsArrayLen) {
+          return i;
+        }
+
+        // If the execution took longer then a certain amount of time, shedule
+        // to continue exeution after a short delay.
+        // However, this is only possible if a 'continueCallback' is passed in.
+        if (continueCallback && slowCommands[fnName] && Date.now() > endTime) {
+          PdfJS_window.setTimeout(continueCallback, 0);
+          return i;
+        }
+
+        // If the operatorList isn't executed completely yet OR the execution
+        // time was short enough, do another execution round.
+      }
+    },
+
+    endDrawing: function CanvasGraphics_endDrawing() {
+      this.ctx.restore();
+
+      if (this.textLayer)
+        this.textLayer.endLayout();
+    },
+
+    // Graphics state
+    setLineWidth: function CanvasGraphics_setLineWidth(width) {
+      this.current.lineWidth = width;
+      this.ctx.lineWidth = width;
+    },
+    setLineCap: function CanvasGraphics_setLineCap(style) {
+      this.ctx.lineCap = LINE_CAP_STYLES[style];
+    },
+    setLineJoin: function CanvasGraphics_setLineJoin(style) {
+      this.ctx.lineJoin = LINE_JOIN_STYLES[style];
+    },
+    setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {
+      this.ctx.miterLimit = limit;
+    },
+    setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {
+      this.ctx.mozDash = dashArray;
+      this.ctx.mozDashOffset = dashPhase;
+      this.ctx.webkitLineDash = dashArray;
+      this.ctx.webkitLineDashOffset = dashPhase;
+    },
+    setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {
+      TODO('set rendering intent: ' + intent);
+    },
+    setFlatness: function CanvasGraphics_setFlatness(flatness) {
+      TODO('set flatness: ' + flatness);
+    },
+    setGState: function CanvasGraphics_setGState(states) {
+      for (var i = 0, ii = states.length; i < ii; i++) {
+        var state = states[i];
+        var key = state[0];
+        var value = state[1];
+
+        switch (key) {
+          case 'LW':
+            this.setLineWidth(value);
+            break;
+          case 'LC':
+            this.setLineCap(value);
+            break;
+          case 'LJ':
+            this.setLineJoin(value);
+            break;
+          case 'ML':
+            this.setMiterLimit(value);
+            break;
+          case 'D':
+            this.setDash(value[0], value[1]);
+            break;
+          case 'RI':
+            this.setRenderingIntent(value);
+            break;
+          case 'FL':
+            this.setFlatness(value);
+            break;
+          case 'Font':
+            this.setFont(state[1], state[2]);
+            break;
+          case 'CA':
+            this.current.strokeAlpha = state[1];
+            break;
+          case 'ca':
+            this.current.fillAlpha = state[1];
+            this.ctx.globalAlpha = state[1];
+            break;
+        }
+      }
+    },
+    save: function CanvasGraphics_save() {
+      this.ctx.save();
+      var old = this.current;
+      this.stateStack.push(old);
+      this.current = old.clone();
+    },
+    restore: function CanvasGraphics_restore() {
+      var prev = this.stateStack.pop();
+      if (prev) {
+        this.current = prev;
+        this.ctx.restore();
+      }
+    },
+    transform: function CanvasGraphics_transform(a, b, c, d, e, f) {
+      this.ctx.transform(a, b, c, d, e, f);
+    },
+
+    // Path
+    moveTo: function CanvasGraphics_moveTo(x, y) {
+      this.ctx.moveTo(x, y);
+      this.current.setCurrentPoint(x, y);
+    },
+    lineTo: function CanvasGraphics_lineTo(x, y) {
+      this.ctx.lineTo(x, y);
+      this.current.setCurrentPoint(x, y);
+    },
+    curveTo: function CanvasGraphics_curveTo(x1, y1, x2, y2, x3, y3) {
+      this.ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);
+      this.current.setCurrentPoint(x3, y3);
+    },
+    curveTo2: function CanvasGraphics_curveTo2(x2, y2, x3, y3) {
+      var current = this.current;
+      this.ctx.bezierCurveTo(current.x, current.y, x2, y2, x3, y3);
+      current.setCurrentPoint(x3, y3);
+    },
+    curveTo3: function CanvasGraphics_curveTo3(x1, y1, x3, y3) {
+      this.curveTo(x1, y1, x3, y3, x3, y3);
+      this.current.setCurrentPoint(x3, y3);
+    },
+    closePath: function CanvasGraphics_closePath() {
+      this.ctx.closePath();
+    },
+    rectangle: function CanvasGraphics_rectangle(x, y, width, height) {
+      this.ctx.rect(x, y, width, height);
+    },
+    stroke: function CanvasGraphics_stroke(consumePath) {
+      consumePath = typeof consumePath !== 'undefined' ? consumePath : true;
+      var ctx = this.ctx;
+      var strokeColor = this.current.strokeColor;
+      if (this.current.lineWidth === 0)
+        ctx.lineWidth = this.getSinglePixelWidth();
+      // For stroke we want to temporarily change the global alpha to the
+      // stroking alpha.
+      ctx.globalAlpha = this.current.strokeAlpha;
+      if (strokeColor && strokeColor.hasOwnProperty('type') &&
+          strokeColor.type === 'Pattern') {
+        // for patterns, we transform to pattern space, calculate
+        // the pattern, call stroke, and restore to user space
+        ctx.save();
+        ctx.strokeStyle = strokeColor.getPattern(ctx);
+        ctx.stroke();
+        ctx.restore();
+      } else {
+        ctx.stroke();
+      }
+      if (consumePath)
+        this.consumePath();
+      // Restore the global alpha to the fill alpha
+      ctx.globalAlpha = this.current.fillAlpha;
+    },
+    closeStroke: function CanvasGraphics_closeStroke() {
+      this.closePath();
+      this.stroke();
+    },
+    fill: function CanvasGraphics_fill(consumePath) {
+      consumePath = typeof consumePath !== 'undefined' ? consumePath : true;
+      var ctx = this.ctx;
+      var fillColor = this.current.fillColor;
+
+      if (fillColor && fillColor.hasOwnProperty('type') &&
+          fillColor.type === 'Pattern') {
+        ctx.save();
+        ctx.fillStyle = fillColor.getPattern(ctx);
+        ctx.fill();
+        ctx.restore();
+      } else {
+        ctx.fill();
+      }
+      if (consumePath)
+        this.consumePath();
+    },
+    eoFill: function CanvasGraphics_eoFill() {
+      var savedFillRule = this.setEOFillRule();
+      this.fill();
+      this.restoreFillRule(savedFillRule);
+    },
+    fillStroke: function CanvasGraphics_fillStroke() {
+      this.fill(false);
+      this.stroke(false);
+
+      this.consumePath();
+    },
+    eoFillStroke: function CanvasGraphics_eoFillStroke() {
+      var savedFillRule = this.setEOFillRule();
+      this.fillStroke();
+      this.restoreFillRule(savedFillRule);
+    },
+    closeFillStroke: function CanvasGraphics_closeFillStroke() {
+      this.closePath();
+      this.fillStroke();
+    },
+    closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {
+      var savedFillRule = this.setEOFillRule();
+      this.closePath();
+      this.fillStroke();
+      this.restoreFillRule(savedFillRule);
+    },
+    endPath: function CanvasGraphics_endPath() {
+      this.consumePath();
+    },
+
+    // Clipping
+    clip: function CanvasGraphics_clip() {
+      this.pendingClip = NORMAL_CLIP;
+    },
+    eoClip: function CanvasGraphics_eoClip() {
+      this.pendingClip = EO_CLIP;
+    },
+
+    // Text
+    beginText: function CanvasGraphics_beginText() {
+      this.current.textMatrix = IDENTITY_MATRIX;
+      this.current.x = this.current.lineX = 0;
+      this.current.y = this.current.lineY = 0;
+    },
+    endText: function CanvasGraphics_endText() {
+    },
+    setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {
+      this.current.charSpacing = spacing;
+    },
+    setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {
+      this.current.wordSpacing = spacing;
+    },
+    setHScale: function CanvasGraphics_setHScale(scale) {
+      this.current.textHScale = scale / 100;
+    },
+    setLeading: function CanvasGraphics_setLeading(leading) {
+      this.current.leading = -leading;
+    },
+    setFont: function CanvasGraphics_setFont(fontRefName, size) {
+      var fontObj = this.objs.get(fontRefName);
+      var current = this.current;
+
+      if (!fontObj)
+        error('Can\'t find font for ' + fontRefName);
+
+      // Slice-clone matrix so we can manipulate it without affecting original
+      if (fontObj.fontMatrix)
+        current.fontMatrix = fontObj.fontMatrix.slice(0);
+      else
+        current.fontMatrix = IDENTITY_MATRIX.slice(0);
+
+      // A valid matrix needs all main diagonal elements to be non-zero
+      // This also ensures we bypass FF bugzilla bug #719844.
+      if (current.fontMatrix[0] === 0 ||
+          current.fontMatrix[3] === 0) {
+        warn('Invalid font matrix for font ' + fontRefName);
+      }
+
+      // The spec for Tf (setFont) says that 'size' specifies the font 'scale',
+      // and in some docs this can be negative (inverted x-y axes).
+      // We implement this condition with fontMatrix.
+      if (size < 0) {
+        size = -size;
+        current.fontMatrix[0] *= -1;
+        current.fontMatrix[3] *= -1;
+      }
+
+      this.current.font = fontObj;
+      this.current.fontSize = size;
+
+      if (fontObj.coded)
+        return; // we don't need ctx.font for Type3 fonts
+
+      var name = fontObj.loadedName || 'sans-serif';
+      var bold = fontObj.black ? (fontObj.bold ? 'bolder' : 'bold') :
+                                 (fontObj.bold ? 'bold' : 'normal');
+
+      var italic = fontObj.italic ? 'italic' : 'normal';
+      var serif = fontObj.isSerifFont ? 'serif' : 'sans-serif';
+      var typeface = '"' + name + '", ' + serif;
+
+      // Some font backends cannot handle fonts below certain size.
+      // Keeping the font at minimal size and using the fontSizeScale to change
+      // the current transformation matrix before the fillText/strokeText.
+      // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227
+      var browserFontSize = size >= MIN_FONT_SIZE ? size : MIN_FONT_SIZE;
+      this.current.fontSizeScale = browserFontSize != MIN_FONT_SIZE ? 1.0 :
+                                   size / MIN_FONT_SIZE;
+
+      var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface;
+      this.ctx.font = rule;
+    },
+    setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {
+      if (mode >= TextRenderingMode.FILL_ADD_TO_PATH)
+        TODO('unsupported text rendering mode: ' + mode);
+      this.current.textRenderingMode = mode;
+    },
+    setTextRise: function CanvasGraphics_setTextRise(rise) {
+      TODO('text rise: ' + rise);
+    },
+    moveText: function CanvasGraphics_moveText(x, y) {
+      this.current.x = this.current.lineX += x;
+      this.current.y = this.current.lineY += y;
+    },
+    setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {
+      this.setLeading(-y);
+      this.moveText(x, y);
+    },
+    setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {
+      this.current.textMatrix = [a, b, c, d, e, f];
+
+      this.current.x = this.current.lineX = 0;
+      this.current.y = this.current.lineY = 0;
+    },
+    nextLine: function CanvasGraphics_nextLine() {
+      this.moveText(0, this.current.leading);
+    },
+    applyTextTransforms: function CanvasGraphics_applyTextTransforms() {
+      var ctx = this.ctx;
+      var current = this.current;
+      var textHScale = current.textHScale;
+      var fontMatrix = current.fontMatrix || IDENTITY_MATRIX;
+
+      ctx.transform.apply(ctx, current.textMatrix);
+      ctx.scale(1, -1);
+      ctx.translate(current.x, -1 * current.y);
+      ctx.transform.apply(ctx, fontMatrix);
+      ctx.scale(textHScale, 1);
+    },
+    getTextGeometry: function CanvasGraphics_getTextGeometry() {
+      var geometry = {};
+      var ctx = this.ctx;
+      var font = this.current.font;
+      var ctxMatrix = ctx.mozCurrentTransform;
+      if (ctxMatrix) {
+        var bl = Util.applyTransform([0, 0], ctxMatrix);
+        var tr = Util.applyTransform([1, 1], ctxMatrix);
+        geometry.x = bl[0];
+        geometry.y = bl[1];
+        geometry.hScale = tr[0] - bl[0];
+        geometry.vScale = tr[1] - bl[1];
+      }
+      geometry.spaceWidth = font.spaceWidth;
+      return geometry;
+    },
+
+    showText: function CanvasGraphics_showText(str, skipTextSelection) {
+      var ctx = this.ctx;
+      var current = this.current;
+      var font = current.font;
+      var glyphs = font.charsToGlyphs(str);
+      var fontSize = current.fontSize;
+      var fontSizeScale = current.fontSizeScale;
+      var charSpacing = current.charSpacing;
+      var wordSpacing = current.wordSpacing;
+      var textHScale = current.textHScale;
+      var fontMatrix = current.fontMatrix || IDENTITY_MATRIX;
+      var textHScale2 = textHScale * fontMatrix[0];
+      var glyphsLength = glyphs.length;
+      var textLayer = this.textLayer;
+      var text = {str: '', length: 0, canvasWidth: 0, geom: {}};
+      var textSelection = textLayer && !skipTextSelection ? true : false;
+      var textRenderingMode = current.textRenderingMode;
+
+      // Type3 fonts - each glyph is a "mini-PDF"
+      if (font.coded) {
+        ctx.save();
+        ctx.transform.apply(ctx, current.textMatrix);
+        ctx.translate(current.x, current.y);
+
+        ctx.scale(textHScale, 1);
+
+        if (textSelection) {
+          this.save();
+          ctx.scale(1, -1);
+          text.geom = this.getTextGeometry();
+          this.restore();
+        }
+        for (var i = 0; i < glyphsLength; ++i) {
+
+          var glyph = glyphs[i];
+          if (glyph === null) {
+            // word break
+            this.ctx.translate(wordSpacing, 0);
+            continue;
+          }
+
+          this.save();
+          ctx.scale(fontSize, fontSize);
+          ctx.transform.apply(ctx, fontMatrix);
+          this.executeOperatorList(glyph.operatorList);
+          this.restore();
+
+          var transformed = Util.applyTransform([glyph.width, 0], fontMatrix);
+          var width = transformed[0] * fontSize +
+              Util.sign(current.fontMatrix[0]) * charSpacing;
+
+          ctx.translate(width, 0);
+          current.x += width * textHScale;
+
+          text.str += glyph.unicode;
+          text.length++;
+          text.canvasWidth += width;
+        }
+        ctx.restore();
+      } else {
+        ctx.save();
+        this.applyTextTransforms();
+
+        var lineWidth = current.lineWidth;
+        var scale = Math.abs(current.textMatrix[0] * fontMatrix[0]);
+        if (scale == 0 || lineWidth == 0)
+          lineWidth = this.getSinglePixelWidth();
+        else
+          lineWidth /= scale;
+
+        if (textSelection)
+          text.geom = this.getTextGeometry();
+
+        if (fontSizeScale != 1.0) {
+          ctx.scale(fontSizeScale, fontSizeScale);
+          lineWidth /= fontSizeScale;
+        }
+
+        ctx.lineWidth = lineWidth;
+
+        var x = 0;
+        for (var i = 0; i < glyphsLength; ++i) {
+          var glyph = glyphs[i];
+          if (glyph === null) {
+            // word break
+            x += Util.sign(current.fontMatrix[0]) * wordSpacing;
+            continue;
+          }
+
+          var character = glyph.fontChar;
+          var charWidth = glyph.width * fontSize * 0.001 +
+              Util.sign(current.fontMatrix[0]) * charSpacing;
+
+          if (!glyph.disabled) {
+            var scaledX = x / fontSizeScale;
+            switch (textRenderingMode) {
+              default: // other unsupported rendering modes
+              case TextRenderingMode.FILL:
+              case TextRenderingMode.FILL_ADD_TO_PATH:
+                ctx.fillText(character, scaledX, 0);
+                break;
+              case TextRenderingMode.STROKE:
+              case TextRenderingMode.STROKE_ADD_TO_PATH:
+                ctx.strokeText(character, scaledX, 0);
+                break;
+              case TextRenderingMode.FILL_STROKE:
+              case TextRenderingMode.FILL_STROKE_ADD_TO_PATH:
+                ctx.fillText(character, scaledX, 0);
+                ctx.strokeText(character, scaledX, 0);
+                break;
+              case TextRenderingMode.INVISIBLE:
+                break;
+            }
+          }
+
+          x += charWidth;
+
+          var glyphUnicode = glyph.unicode === ' ' ? '\u00A0' : glyph.unicode;
+          var glyphUnicodeLength = glyphUnicode.length;
+          //reverse an arabic ligature
+          if (glyphUnicodeLength > 1 &&
+              isRTLRangeFor(glyphUnicode.charCodeAt(0))) {
+            for (var ii = glyphUnicodeLength - 1; ii >= 0; ii--)
+              text.str += glyphUnicode[ii];
+          } else
+            text.str += glyphUnicode;
+          text.length += glyphUnicodeLength;
+          text.canvasWidth += charWidth;
+        }
+        current.x += x * textHScale2;
+        ctx.restore();
+      }
+
+      if (textSelection)
+        this.textLayer.appendText(text, font.loadedName, fontSize);
+
+      return text;
+    },
+    showSpacedText: function CanvasGraphics_showSpacedText(arr) {
+      var ctx = this.ctx;
+      var current = this.current;
+      var font = current.font;
+      var fontSize = current.fontSize;
+      var textHScale = current.textHScale;
+      if (!font.coded)
+        textHScale *= (current.fontMatrix || IDENTITY_MATRIX)[0];
+      var arrLength = arr.length;
+      var textLayer = this.textLayer;
+      var text = {str: '', length: 0, canvasWidth: 0, geom: {}};
+      var textSelection = textLayer ? true : false;
+
+      if (textSelection) {
+        ctx.save();
+        // Type3 fonts - each glyph is a "mini-PDF" (see also showText)
+        if (font.coded) {
+          ctx.transform.apply(ctx, current.textMatrix);
+          ctx.scale(1, -1);
+          ctx.translate(current.x, -1 * current.y);
+          ctx.scale(textHScale, 1);
+        } else
+          this.applyTextTransforms();
+        text.geom = this.getTextGeometry();
+        ctx.restore();
+      }
+
+      for (var i = 0; i < arrLength; ++i) {
+        var e = arr[i];
+        if (isNum(e)) {
+          var spacingLength = -e * 0.001 * fontSize * textHScale;
+          current.x += spacingLength;
+
+          if (textSelection) {
+            // Emulate precise spacing via HTML spaces
+            text.canvasWidth += spacingLength;
+            if (e < 0 && text.geom.spaceWidth > 0) { // avoid div by zero
+              var numFakeSpaces = Math.round(-e / text.geom.spaceWidth);
+              if (numFakeSpaces > 0) {
+                text.str += '\u00A0';
+                text.length++;
+              }
+            }
+          }
+        } else if (isString(e)) {
+          var shownText = this.showText(e, true);
+
+          if (textSelection) {
+            if (shownText.str === ' ') {
+              text.str += '\u00A0';
+            } else {
+              text.str += shownText.str;
+            }
+            text.canvasWidth += shownText.canvasWidth;
+            text.length += shownText.length;
+          }
+        } else {
+          malformed('TJ array element ' + e + ' is not string or num');
+        }
+      }
+
+      if (textSelection)
+        this.textLayer.appendText(text, font.loadedName, fontSize);
+    },
+    nextLineShowText: function CanvasGraphics_nextLineShowText(text) {
+      this.nextLine();
+      this.showText(text);
+    },
+    nextLineSetSpacingShowText:
+      function CanvasGraphics_nextLineSetSpacingShowText(wordSpacing,
+                                                         charSpacing,
+                                                         text) {
+      this.setWordSpacing(wordSpacing);
+      this.setCharSpacing(charSpacing);
+      this.nextLineShowText(text);
+    },
+
+    // Type3 fonts
+    setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {
+      // We can safely ignore this since the width should be the same
+      // as the width in the Widths array.
+    },
+    setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth,
+                                                                        yWidth,
+                                                                        llx,
+                                                                        lly,
+                                                                        urx,
+                                                                        ury) {
+      // TODO According to the spec we're also suppose to ignore any operators
+      // that set color or include images while processing this type3 font.
+      this.rectangle(llx, lly, urx - llx, ury - lly);
+      this.clip();
+      this.endPath();
+    },
+
+    // Color
+    setStrokeColorSpace: function CanvasGraphics_setStrokeColorSpace(raw) {
+      this.current.strokeColorSpace = ColorSpace.fromIR(raw);
+    },
+    setFillColorSpace: function CanvasGraphics_setFillColorSpace(raw) {
+      this.current.fillColorSpace = ColorSpace.fromIR(raw);
+    },
+    setStrokeColor: function CanvasGraphics_setStrokeColor(/*...*/) {
+      var cs = this.current.strokeColorSpace;
+      var rgbColor = cs.getRgb(arguments);
+      var color = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);
+      this.ctx.strokeStyle = color;
+      this.current.strokeColor = color;
+    },
+    getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR, cs) {
+      if (IR[0] == 'TilingPattern') {
+        var args = IR[1];
+        var base = cs.base;
+        var color;
+        if (base) {
+          var baseComps = base.numComps;
+
+          color = [];
+          for (var i = 0; i < baseComps; ++i)
+            color.push(args[i]);
+
+          color = base.getRgb(color);
+        }
+        var pattern = new TilingPattern(IR, color, this.ctx, this.objs);
+      } else if (IR[0] == 'RadialAxial' || IR[0] == 'Dummy') {
+        var pattern = Pattern.shadingFromIR(IR);
+      } else {
+        error('Unkown IR type ' + IR[0]);
+      }
+      return pattern;
+    },
+    setStrokeColorN: function CanvasGraphics_setStrokeColorN(/*...*/) {
+      var cs = this.current.strokeColorSpace;
+
+      if (cs.name == 'Pattern') {
+        this.current.strokeColor = this.getColorN_Pattern(arguments, cs);
+      } else {
+        this.setStrokeColor.apply(this, arguments);
+      }
+    },
+    setFillColor: function CanvasGraphics_setFillColor(/*...*/) {
+      var cs = this.current.fillColorSpace;
+      var rgbColor = cs.getRgb(arguments);
+      var color = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);
+      this.ctx.fillStyle = color;
+      this.current.fillColor = color;
+    },
+    setFillColorN: function CanvasGraphics_setFillColorN(/*...*/) {
+      var cs = this.current.fillColorSpace;
+
+      if (cs.name == 'Pattern') {
+        this.current.fillColor = this.getColorN_Pattern(arguments, cs);
+      } else {
+        this.setFillColor.apply(this, arguments);
+      }
+    },
+    setStrokeGray: function CanvasGraphics_setStrokeGray(gray) {
+      if (!(this.current.strokeColorSpace instanceof DeviceGrayCS))
+        this.current.strokeColorSpace = new DeviceGrayCS();
+
+      var color = Util.makeCssRgb(gray, gray, gray);
+      this.ctx.strokeStyle = color;
+      this.current.strokeColor = color;
+    },
+    setFillGray: function CanvasGraphics_setFillGray(gray) {
+      if (!(this.current.fillColorSpace instanceof DeviceGrayCS))
+        this.current.fillColorSpace = new DeviceGrayCS();
+
+      var color = Util.makeCssRgb(gray, gray, gray);
+      this.ctx.fillStyle = color;
+      this.current.fillColor = color;
+    },
+    setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {
+      if (!(this.current.strokeColorSpace instanceof DeviceRgbCS))
+        this.current.strokeColorSpace = new DeviceRgbCS();
+
+      var color = Util.makeCssRgb(r, g, b);
+      this.ctx.strokeStyle = color;
+      this.current.strokeColor = color;
+    },
+    setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {
+      if (!(this.current.fillColorSpace instanceof DeviceRgbCS))
+        this.current.fillColorSpace = new DeviceRgbCS();
+
+      var color = Util.makeCssRgb(r, g, b);
+      this.ctx.fillStyle = color;
+      this.current.fillColor = color;
+    },
+    setStrokeCMYKColor: function CanvasGraphics_setStrokeCMYKColor(c, m, y, k) {
+      if (!(this.current.strokeColorSpace instanceof DeviceCmykCS))
+        this.current.strokeColorSpace = new DeviceCmykCS();
+
+      var color = Util.makeCssCmyk(c, m, y, k);
+      this.ctx.strokeStyle = color;
+      this.current.strokeColor = color;
+    },
+    setFillCMYKColor: function CanvasGraphics_setFillCMYKColor(c, m, y, k) {
+      if (!(this.current.fillColorSpace instanceof DeviceCmykCS))
+        this.current.fillColorSpace = new DeviceCmykCS();
+
+      var color = Util.makeCssCmyk(c, m, y, k);
+      this.ctx.fillStyle = color;
+      this.current.fillColor = color;
+    },
+
+    shadingFill: function CanvasGraphics_shadingFill(patternIR) {
+      var ctx = this.ctx;
+
+      this.save();
+      var pattern = Pattern.shadingFromIR(patternIR);
+      ctx.fillStyle = pattern.getPattern(ctx);
+
+      var inv = ctx.mozCurrentTransformInverse;
+      if (inv) {
+        var canvas = ctx.canvas;
+        var width = canvas.width;
+        var height = canvas.height;
+
+        var bl = Util.applyTransform([0, 0], inv);
+        var br = Util.applyTransform([0, height], inv);
+        var ul = Util.applyTransform([width, 0], inv);
+        var ur = Util.applyTransform([width, height], inv);
+
+        var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);
+        var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);
+        var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);
+        var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);
+
+        this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);
+      } else {
+        // HACK to draw the gradient onto an infinite rectangle.
+        // PDF gradients are drawn across the entire image while
+        // Canvas only allows gradients to be drawn in a rectangle
+        // The following bug should allow us to remove this.
+        // https://bugzilla.mozilla.org/show_bug.cgi?id=664884
+
+        this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);
+      }
+
+      this.restore();
+    },
+
+    // Images
+    beginInlineImage: function CanvasGraphics_beginInlineImage() {
+      error('Should not call beginInlineImage');
+    },
+    beginImageData: function CanvasGraphics_beginImageData() {
+      error('Should not call beginImageData');
+    },
+
+    paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix,
+                                                                        bbox) {
+      this.save();
+
+      if (matrix && isArray(matrix) && 6 == matrix.length)
+        this.transform.apply(this, matrix);
+
+      if (bbox && isArray(bbox) && 4 == bbox.length) {
+        var width = bbox[2] - bbox[0];
+        var height = bbox[3] - bbox[1];
+        this.rectangle(bbox[0], bbox[1], width, height);
+        this.clip();
+        this.endPath();
+      }
+    },
+
+    paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {
+      this.restore();
+    },
+
+    paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {
+      var domImage = this.objs.get(objId);
+      if (!domImage) {
+        error('Dependent image isn\'t ready yet');
+      }
+
+      this.save();
+
+      var ctx = this.ctx;
+      // scale the image to the unit square
+      ctx.scale(1 / w, -1 / h);
+
+      ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height,
+                    0, -h, w, h);
+
+      this.restore();
+    },
+
+    paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(
+                             imgArray, inverseDecode, width, height) {
+      function applyStencilMask(buffer, inverseDecode) {
+        var imgArrayPos = 0;
+        var i, j, mask, buf;
+        // removing making non-masked pixels transparent
+        var bufferPos = 3; // alpha component offset
+        for (i = 0; i < height; i++) {
+          mask = 0;
+          for (j = 0; j < width; j++) {
+            if (!mask) {
+              buf = imgArray[imgArrayPos++];
+              mask = 128;
+            }
+            if (!(buf & mask) == inverseDecode) {
+              buffer[bufferPos] = 0;
+            }
+            bufferPos += 4;
+            mask >>= 1;
+          }
+        }
+      }
+
+      this.save();
+
+      var ctx = this.ctx;
+      var w = width, h = height;
+      // scale the image to the unit square
+      ctx.scale(1 / w, -1 / h);
+
+      var tmpCanvas = createScratchCanvas(w, h);
+      var tmpCtx = tmpCanvas.getContext('2d');
+
+      var fillColor = this.current.fillColor;
+      tmpCtx.fillStyle = (fillColor && fillColor.hasOwnProperty('type') &&
+                          fillColor.type === 'Pattern') ?
+                          fillColor.getPattern(tmpCtx) : fillColor;
+      tmpCtx.fillRect(0, 0, w, h);
+
+      var imgData = tmpCtx.getImageData(0, 0, w, h);
+      var pixels = imgData.data;
+
+      applyStencilMask(pixels, inverseDecode);
+
+      tmpCtx.putImageData(imgData, 0, 0);
+      ctx.drawImage(tmpCanvas, 0, -h);
+      this.restore();
+    },
+
+    paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {
+      var imgData = this.objs.get(objId);
+      if (!imgData)
+        error('Dependent image isn\'t ready yet');
+
+      this.save();
+      var ctx = this.ctx;
+      var w = imgData.width;
+      var h = imgData.height;
+      // scale the image to the unit square
+      ctx.scale(1 / w, -1 / h);
+
+      var tmpCanvas = createScratchCanvas(w, h);
+      var tmpCtx = tmpCanvas.getContext('2d');
+      this.putBinaryImageData(tmpCtx, imgData, w, h);
+
+      ctx.drawImage(tmpCanvas, 0, -h);
+      this.restore();
+    },
+
+    putBinaryImageData: function CanvasGraphics_putBinaryImageData() {
+      //
+    },
+
+    // Marked content
+
+    markPoint: function CanvasGraphics_markPoint(tag) {
+      TODO('Marked content');
+    },
+    markPointProps: function CanvasGraphics_markPointProps(tag, properties) {
+      TODO('Marked content');
+    },
+    beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {
+      TODO('Marked content');
+    },
+    beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(
+                                        tag, properties) {
+      TODO('Marked content');
+    },
+    endMarkedContent: function CanvasGraphics_endMarkedContent() {
+      TODO('Marked content');
+    },
+
+    // Compatibility
+
+    beginCompat: function CanvasGraphics_beginCompat() {
+      TODO('ignore undefined operators (should we do that anyway?)');
+    },
+    endCompat: function CanvasGraphics_endCompat() {
+      TODO('stop ignoring undefined operators');
+    },
+
+    // Helper functions
+
+    consumePath: function CanvasGraphics_consumePath() {
+      if (this.pendingClip) {
+        var savedFillRule = null;
+        if (this.pendingClip == EO_CLIP)
+          savedFillRule = this.setEOFillRule();
+
+        this.ctx.clip();
+
+        this.pendingClip = null;
+        if (savedFillRule !== null)
+          this.restoreFillRule(savedFillRule);
+      }
+      this.ctx.beginPath();
+    },
+    // We generally keep the canvas context set for
+    // nonzero-winding, and just set evenodd for the operations
+    // that need them.
+    setEOFillRule: function CanvasGraphics_setEOFillRule() {
+      var savedFillRule = this.ctx.mozFillRule;
+      this.ctx.mozFillRule = 'evenodd';
+      return savedFillRule;
+    },
+    restoreFillRule: function CanvasGraphics_restoreFillRule(rule) {
+      this.ctx.mozFillRule = rule;
+    },
+    getSinglePixelWidth: function CanvasGraphics_getSinglePixelWidth(scale) {
+      var inverse = this.ctx.mozCurrentTransformInverse;
+      return Math.abs(inverse[0] + inverse[2]);
+    }
+  };
+
+  return CanvasGraphics;
+})();
+
+if (!isWorker) {
+  // Feature detection if the browser can use an Uint8Array directly as imgData.
+  var canvas = PdfJS_window.document.createElement('canvas');
+  canvas.width = 1;
+  canvas.height = 1;
+  var ctx = canvas.getContext('2d');
+
+  try {
+    ctx.putImageData({
+      width: 1,
+      height: 1,
+      data: new Uint8Array(4)
+    }, 0, 0);
+
+    CanvasGraphics.prototype.putBinaryImageData =
+      function CanvasGraphicsPutBinaryImageDataNative(ctx, imgData) {
+        ctx.putImageData(imgData, 0, 0);
+      };
+  } catch (e) {
+    CanvasGraphics.prototype.putBinaryImageData =
+      function CanvasGraphicsPutBinaryImageDataShim(ctx, imgData, w, h) {
+        var tmpImgData = ctx.getImageData(0, 0, w, h);
+
+        // Copy over the imageData pixel by pixel.
+        var tmpImgDataPixels = tmpImgData.data;
+        var len = tmpImgDataPixels.length;
+
+        while (len--) {
+          tmpImgDataPixels[len] = imgData.data[len];
+        }
+
+        ctx.putImageData(tmpImgData, 0, 0);
+      };
+  }
+}
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var Name = (function NameClosure() {
+  function Name(name) {
+    this.name = name;
+  }
+
+  Name.prototype = {};
+
+  return Name;
+})();
+
+var Cmd = (function CmdClosure() {
+  function Cmd(cmd) {
+    this.cmd = cmd;
+  }
+
+  Cmd.prototype = {};
+
+  var cmdCache = {};
+
+  Cmd.get = function Cmd_get(cmd) {
+    var cmdValue = cmdCache[cmd];
+    if (cmdValue)
+      return cmdValue;
+
+    return cmdCache[cmd] = new Cmd(cmd);
+  };
+
+  return Cmd;
+})();
+
+var Dict = (function DictClosure() {
+  // xref is optional
+  function Dict(xref) {
+    // Map should only be used internally, use functions below to access.
+    var map = Object.create(null);
+
+    this.assignXref = function Dict_assignXref(newXref) {
+      xref = newXref;
+    };
+
+    // automatically dereferences Ref objects
+    this.get = function Dict_get(key1, key2, key3) {
+      var value;
+      if (typeof (value = map[key1]) != 'undefined' || key1 in map ||
+          typeof key2 == 'undefined') {
+        return xref ? xref.fetchIfRef(value) : value;
+      }
+      if (typeof (value = map[key2]) != 'undefined' || key2 in map ||
+          typeof key3 == 'undefined') {
+        return xref ? xref.fetchIfRef(value) : value;
+      }
+      value = map[key3] || null;
+      return xref ? xref.fetchIfRef(value) : value;
+    };
+
+    // no dereferencing
+    this.getRaw = function Dict_getRaw(key) {
+      return map[key];
+    };
+
+    // creates new map and dereferences all Refs
+    this.getAll = function Dict_getAll() {
+      var all = {};
+      for (var key in map) {
+        var obj = this.get(key);
+        all[key] = obj instanceof Dict ? obj.getAll() : obj;
+      }
+      return all;
+    };
+
+    this.set = function Dict_set(key, value) {
+      map[key] = value;
+    };
+
+    this.has = function Dict_has(key) {
+      return key in map;
+    };
+
+    this.forEach = function Dict_forEach(callback) {
+      for (var key in map) {
+        callback(key, this.get(key));
+      }
+    };
+  };
+
+  return Dict;
+})();
+
+var Ref = (function RefClosure() {
+  function Ref(num, gen) {
+    this.num = num;
+    this.gen = gen;
+  }
+
+  Ref.prototype = {};
+
+  return Ref;
+})();
+
+// The reference is identified by number and generation,
+// this structure stores only one instance of the reference.
+var RefSet = (function RefSetClosure() {
+  function RefSet() {
+    this.dict = {};
+  }
+
+  RefSet.prototype = {
+    has: function RefSet_has(ref) {
+      return !!this.dict['R' + ref.num + '.' + ref.gen];
+    },
+
+    put: function RefSet_put(ref) {
+      this.dict['R' + ref.num + '.' + ref.gen] = ref;
+    }
+  };
+
+  return RefSet;
+})();
+
+var Catalog = (function CatalogClosure() {
+  function Catalog(xref) {
+    this.xref = xref;
+    var obj = xref.getCatalogObj();
+    assertWellFormed(isDict(obj), 'catalog object is not a dictionary');
+    this.catDict = obj;
+  }
+
+  Catalog.prototype = {
+    get metadata() {
+      var stream = this.catDict.get('Metadata');
+      var metadata;
+      if (stream && isDict(stream.dict)) {
+        var type = stream.dict.get('Type');
+        var subtype = stream.dict.get('Subtype');
+
+        if (isName(type) && isName(subtype) &&
+            type.name === 'Metadata' && subtype.name === 'XML') {
+          metadata = stringToPDFString(bytesToString(stream.getBytes()));
+        }
+      }
+
+      return shadow(this, 'metadata', metadata);
+    },
+    get toplevelPagesDict() {
+      var pagesObj = this.catDict.get('Pages');
+      assertWellFormed(isDict(pagesObj), 'invalid top-level pages dictionary');
+      // shadow the prototype getter
+      return shadow(this, 'toplevelPagesDict', pagesObj);
+    },
+    get documentOutline() {
+      var xref = this.xref;
+      var obj = this.catDict.get('Outlines');
+      var root = { items: [] };
+      if (isDict(obj)) {
+        obj = obj.getRaw('First');
+        var processed = new RefSet();
+        if (isRef(obj)) {
+          var queue = [{obj: obj, parent: root}];
+          // to avoid recursion keeping track of the items
+          // in the processed dictionary
+          processed.put(obj);
+          while (queue.length > 0) {
+            var i = queue.shift();
+            var outlineDict = xref.fetchIfRef(i.obj);
+            if (outlineDict === null)
+              continue;
+            if (!outlineDict.has('Title'))
+              error('Invalid outline item');
+            var dest = outlineDict.get('A');
+            if (dest)
+              dest = dest.get('D');
+            else if (outlineDict.has('Dest')) {
+              dest = outlineDict.getRaw('Dest');
+              if (isName(dest))
+                dest = dest.name;
+            }
+            var title = outlineDict.get('Title');
+            var outlineItem = {
+              dest: dest,
+              title: stringToPDFString(title),
+              color: outlineDict.get('C') || [0, 0, 0],
+              count: outlineDict.get('Count'),
+              bold: !!(outlineDict.get('F') & 2),
+              italic: !!(outlineDict.get('F') & 1),
+              items: []
+            };
+            i.parent.items.push(outlineItem);
+            obj = outlineDict.getRaw('First');
+            if (isRef(obj) && !processed.has(obj)) {
+              queue.push({obj: obj, parent: outlineItem});
+              processed.put(obj);
+            }
+            obj = outlineDict.getRaw('Next');
+            if (isRef(obj) && !processed.has(obj)) {
+              queue.push({obj: obj, parent: i.parent});
+              processed.put(obj);
+            }
+          }
+        }
+      }
+      obj = root.items.length > 0 ? root.items : null;
+      return shadow(this, 'documentOutline', obj);
+    },
+    get numPages() {
+      var obj = this.toplevelPagesDict.get('Count');
+      assertWellFormed(
+        isInt(obj),
+        'page count in top level pages object is not an integer'
+      );
+      // shadow the prototype getter
+      return shadow(this, 'num', obj);
+    },
+    traverseKids: function Catalog_traverseKids(pagesDict) {
+      var pageCache = this.pageCache;
+      var kids = pagesDict.get('Kids');
+      assertWellFormed(isArray(kids),
+                       'page dictionary kids object is not an array');
+      for (var i = 0, ii = kids.length; i < ii; ++i) {
+        var kid = kids[i];
+        assertWellFormed(isRef(kid),
+                        'page dictionary kid is not a reference');
+        var obj = this.xref.fetch(kid);
+        if (isDict(obj, 'Page') || (isDict(obj) && !obj.has('Kids'))) {
+          pageCache.push(new Page(this.xref, pageCache.length, obj, kid));
+        } else { // must be a child page dictionary
+          assertWellFormed(
+            isDict(obj),
+            'page dictionary kid reference points to wrong type of object'
+          );
+          this.traverseKids(obj);
+        }
+      }
+    },
+    get destinations() {
+      function fetchDestination(dest) {
+        return isDict(dest) ? dest.get('D') : dest;
+      }
+
+      var xref = this.xref;
+      var dests = {}, nameTreeRef, nameDictionaryRef;
+      var obj = this.catDict.get('Names');
+      if (obj)
+        nameTreeRef = obj.getRaw('Dests');
+      else if (this.catDict.has('Dests'))
+        nameDictionaryRef = this.catDict.get('Dests');
+
+      if (nameDictionaryRef) {
+        // reading simple destination dictionary
+        obj = nameDictionaryRef;
+        obj.forEach(function catalogForEach(key, value) {
+          if (!value) return;
+          dests[key] = fetchDestination(value);
+        });
+      }
+      if (nameTreeRef) {
+        // reading name tree
+        var processed = new RefSet();
+        processed.put(nameTreeRef);
+        var queue = [nameTreeRef];
+        while (queue.length > 0) {
+          var i, n;
+          obj = xref.fetch(queue.shift());
+          if (obj.has('Kids')) {
+            var kids = obj.get('Kids');
+            for (i = 0, n = kids.length; i < n; i++) {
+              var kid = kids[i];
+              if (processed.has(kid))
+                error('invalid destinations');
+              queue.push(kid);
+              processed.put(kid);
+            }
+            continue;
+          }
+          var names = obj.get('Names');
+          for (i = 0, n = names.length; i < n; i += 2) {
+            dests[names[i]] = fetchDestination(xref.fetchIfRef(names[i + 1]));
+          }
+        }
+      }
+      return shadow(this, 'destinations', dests);
+    },
+    getPage: function Catalog_getPage(n) {
+      var pageCache = this.pageCache;
+      if (!pageCache) {
+        pageCache = this.pageCache = [];
+        this.traverseKids(this.toplevelPagesDict);
+      }
+      return this.pageCache[n - 1];
+    }
+  };
+
+  return Catalog;
+})();
+
+var XRef = (function XRefClosure() {
+  function XRef(stream, startXRef, mainXRefEntriesOffset) {
+    this.stream = stream;
+    this.entries = [];
+    this.xrefstms = {};
+    var trailerDict = this.readXRef(startXRef);
+    trailerDict.assignXref(this);
+    this.trailer = trailerDict;
+    // prepare the XRef cache
+    this.cache = [];
+
+    var encrypt = trailerDict.get('Encrypt');
+    if (encrypt) {
+      var fileId = trailerDict.get('ID');
+      this.encrypt = new CipherTransformFactory(encrypt,
+                                                fileId[0] /*, password */);
+    }
+
+    // get the root dictionary (catalog) object
+    if (!(this.root = trailerDict.get('Root')))
+      error('Invalid root reference');
+  }
+
+  XRef.prototype = {
+    readXRefTable: function XRef_readXRefTable(parser) {
+      // Example of cross-reference table:
+      // xref
+      // 0 1                    <-- subsection header (first obj #, obj count)
+      // 0000000000 65535 f     <-- actual object (offset, generation #, f/n)
+      // 23 2                   <-- subsection header ... and so on ...
+      // 0000025518 00002 n
+      // 0000025635 00000 n
+      // trailer
+      // ...
+
+      // Outer loop is over subsection headers
+      var obj;
+      while (!isCmd(obj = parser.getObj(), 'trailer')) {
+        var first = obj,
+            count = parser.getObj();
+
+        if (!isInt(first) || !isInt(count))
+          error('Invalid XRef table: wrong types in subsection header');
+
+        // Inner loop is over objects themselves
+        for (var i = 0; i < count; i++) {
+          var entry = {};
+          entry.offset = parser.getObj();
+          entry.gen = parser.getObj();
+          var type = parser.getObj();
+
+          if (isCmd(type, 'f'))
+            entry.free = true;
+          else if (isCmd(type, 'n'))
+            entry.uncompressed = true;
+
+          // Validate entry obj
+          if (!isInt(entry.offset) || !isInt(entry.gen) ||
+              !(entry.free || entry.uncompressed)) {
+            error('Invalid entry in XRef subsection: ' + first + ', ' + count);
+          }
+
+          if (!this.entries[i + first])
+            this.entries[i + first] = entry;
+        }
+      }
+
+      // Sanity check: as per spec, first object must be free
+      if (this.entries[0] && !this.entries[0].free)
+        error('Invalid XRef table: unexpected first object');
+
+      // Sanity check
+      if (!isCmd(obj, 'trailer'))
+        error('Invalid XRef table: could not find trailer dictionary');
+
+      // Read trailer dictionary, e.g.
+      // trailer
+      //    << /Size 22
+      //      /Root 20R
+      //      /Info 10R
+      //      /ID [ <81b14aafa313db63dbd6f981e49f94f4> ]
+      //    >>
+      // The parser goes through the entire stream << ... >> and provides
+      // a getter interface for the key-value table
+      var dict = parser.getObj();
+      if (!isDict(dict))
+        error('Invalid XRef table: could not parse trailer dictionary');
+
+      return dict;
+    },
+    readXRefStream: function XRef_readXRefStream(stream) {
+      var streamParameters = stream.parameters;
+      var byteWidths = streamParameters.get('W');
+      var range = streamParameters.get('Index');
+      if (!range)
+        range = [0, streamParameters.get('Size')];
+      var i, j;
+      while (range.length > 0) {
+        var first = range[0], n = range[1];
+        if (!isInt(first) || !isInt(n))
+          error('Invalid XRef range fields: ' + first + ', ' + n);
+        var typeFieldWidth = byteWidths[0];
+        var offsetFieldWidth = byteWidths[1];
+        var generationFieldWidth = byteWidths[2];
+        if (!isInt(typeFieldWidth) || !isInt(offsetFieldWidth) ||
+            !isInt(generationFieldWidth)) {
+          error('Invalid XRef entry fields length: ' + first + ', ' + n);
+        }
+        for (i = 0; i < n; ++i) {
+          var type = 0, offset = 0, generation = 0;
+          for (j = 0; j < typeFieldWidth; ++j)
+            type = (type << 8) | stream.getByte();
+          // if type field is absent, its default value = 1
+          if (typeFieldWidth == 0)
+            type = 1;
+          for (j = 0; j < offsetFieldWidth; ++j)
+            offset = (offset << 8) | stream.getByte();
+          for (j = 0; j < generationFieldWidth; ++j)
+            generation = (generation << 8) | stream.getByte();
+          var entry = {};
+          entry.offset = offset;
+          entry.gen = generation;
+          switch (type) {
+            case 0:
+              entry.free = true;
+              break;
+            case 1:
+              entry.uncompressed = true;
+              break;
+            case 2:
+              break;
+            default:
+              error('Invalid XRef entry type: ' + type);
+          }
+          if (!this.entries[first + i])
+            this.entries[first + i] = entry;
+        }
+        range.splice(0, 2);
+      }
+      return streamParameters;
+    },
+    indexObjects: function XRef_indexObjects() {
+      // Simple scan through the PDF content to find objects,
+      // trailers and XRef streams.
+      function readToken(data, offset) {
+        var token = '', ch = data[offset];
+        while (ch !== 13 && ch !== 10) {
+          if (++offset >= data.length)
+            break;
+          token += String.fromCharCode(ch);
+          ch = data[offset];
+        }
+        return token;
+      }
+      function skipUntil(data, offset, what) {
+        var length = what.length, dataLength = data.length;
+        var skipped = 0;
+        // finding byte sequence
+        while (offset < dataLength) {
+          var i = 0;
+          while (i < length && data[offset + i] == what[i])
+            ++i;
+          if (i >= length)
+            break; // sequence found
+
+          offset++;
+          skipped++;
+        }
+        return skipped;
+      }
+      var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);
+      var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114,
+                                          101, 102]);
+      var endobjBytes = new Uint8Array([101, 110, 100, 111, 98, 106]);
+      var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);
+
+      var stream = this.stream;
+      stream.pos = 0;
+      var buffer = stream.getBytes();
+      var position = stream.start, length = buffer.length;
+      var trailers = [], xrefStms = [];
+      var state = 0;
+      var currentToken;
+      while (position < length) {
+        var ch = buffer[position];
+        if (ch === 32 || ch === 9 || ch === 13 || ch === 10) {
+          ++position;
+          continue;
+        }
+        if (ch === 37) { // %-comment
+          do {
+            ++position;
+            ch = buffer[position];
+          } while (ch !== 13 && ch !== 10);
+          continue;
+        }
+        var token = readToken(buffer, position);
+        var m;
+        if (token === 'xref') {
+          position += skipUntil(buffer, position, trailerBytes);
+          trailers.push(position);
+          position += skipUntil(buffer, position, startxrefBytes);
+        } else if ((m = /^(\d+)\s+(\d+)\s+obj\b/.exec(token))) {
+          this.entries[m[1]] = {
+            offset: position,
+            gen: m[2] | 0,
+            uncompressed: true
+          };
+
+          var contentLength = skipUntil(buffer, position, endobjBytes) + 7;
+          var content = buffer.subarray(position, position + contentLength);
+
+          // checking XRef stream suspect
+          // (it shall have '/XRef' and next char is not a letter)
+          var xrefTagOffset = skipUntil(content, 0, xrefBytes);
+          if (xrefTagOffset < contentLength &&
+              content[xrefTagOffset + 5] < 64) {
+            xrefStms.push(position);
+            this.xrefstms[position] = 1; // don't read it recursively
+          }
+
+          position += contentLength;
+        } else
+          position += token.length + 1;
+      }
+      // reading XRef streams
+      for (var i = 0, ii = xrefStms.length; i < ii; ++i) {
+          this.readXRef(xrefStms[i], true);
+      }
+      // finding main trailer
+      var dict;
+      for (var i = 0, ii = trailers.length; i < ii; ++i) {
+        stream.pos = trailers[i];
+        var parser = new Parser(new Lexer(stream), true, null);
+        var obj = parser.getObj();
+        if (!isCmd(obj, 'trailer'))
+          continue;
+        // read the trailer dictionary
+        if (!isDict(dict = parser.getObj()))
+          continue;
+        // taking the first one with 'ID'
+        if (dict.has('ID'))
+          return dict;
+      }
+      // no tailer with 'ID', taking last one (if exists)
+      if (dict)
+        return dict;
+      // nothing helps
+      error('Invalid PDF structure');
+    },
+    readXRef: function XRef_readXRef(startXRef, recoveryMode) {
+      var stream = this.stream;
+      stream.pos = startXRef;
+
+      try {
+        var parser = new Parser(new Lexer(stream), true, null);
+        var obj = parser.getObj();
+        var dict;
+
+        // Get dictionary
+        if (isCmd(obj, 'xref')) {
+          // Parse end-of-file XRef
+          dict = this.readXRefTable(parser);
+
+          // Recursively get other XRefs 'XRefStm', if any
+          obj = dict.get('XRefStm');
+          if (isInt(obj)) {
+            var pos = obj;
+            // ignore previously loaded xref streams
+            // (possible infinite recursion)
+            if (!(pos in this.xrefstms)) {
+              this.xrefstms[pos] = 1;
+              this.readXRef(pos);
+            }
+          }
+        } else if (isInt(obj)) {
+          // Parse in-stream XRef
+          if (!isInt(parser.getObj()) ||
+              !isCmd(parser.getObj(), 'obj') ||
+              !isStream(obj = parser.getObj())) {
+            error('Invalid XRef stream');
+          }
+          dict = this.readXRefStream(obj);
+          if (!dict)
+            error('Failed to read XRef stream');
+        }
+
+        // Recursively get previous dictionary, if any
+        obj = dict.get('Prev');
+        if (isInt(obj))
+          this.readXRef(obj, recoveryMode);
+        else if (isRef(obj)) {
+          // The spec says Prev must not be a reference, i.e. "/Prev NNN"
+          // This is a fallback for non-compliant PDFs, i.e. "/Prev NNN 0 R"
+          this.readXRef(obj.num, recoveryMode);
+        }
+
+        return dict;
+      } catch (e) {
+        log('(while reading XRef): ' + e);
+      }
+
+      if (recoveryMode)
+        return;
+
+      warn('Indexing all PDF objects');
+      return this.indexObjects();
+    },
+    getEntry: function XRef_getEntry(i) {
+      var e = this.entries[i];
+      if (e === null)
+        return null;
+      return e.free ? null : e; // returns null is the entry is free
+    },
+    fetchIfRef: function XRef_fetchIfRef(obj) {
+      if (!isRef(obj))
+        return obj;
+      return this.fetch(obj);
+    },
+    fetch: function XRef_fetch(ref, suppressEncryption) {
+      assertWellFormed(isRef(ref), 'ref object is not a reference');
+      var num = ref.num;
+      if (num in this.cache)
+        return this.cache[num];
+
+      var e = this.getEntry(num);
+
+      // the referenced entry can be free
+      if (e === null)
+        return (this.cache[num] = e);
+
+      var gen = ref.gen;
+      var stream, parser;
+      if (e.uncompressed) {
+        if (e.gen != gen)
+          error('inconsistent generation in XRef');
+        stream = this.stream.makeSubStream(e.offset);
+        parser = new Parser(new Lexer(stream), true, this);
+        var obj1 = parser.getObj();
+        var obj2 = parser.getObj();
+        var obj3 = parser.getObj();
+        if (!isInt(obj1) || obj1 != num ||
+            !isInt(obj2) || obj2 != gen ||
+            !isCmd(obj3)) {
+          error('bad XRef entry');
+        }
+        if (!isCmd(obj3, 'obj')) {
+          // some bad pdfs use "obj1234" and really mean 1234
+          if (obj3.cmd.indexOf('obj') == 0) {
+            num = parseInt(obj3.cmd.substring(3), 10);
+            if (!isNaN(num))
+              return num;
+          }
+          error('bad XRef entry');
+        }
+        if (this.encrypt && !suppressEncryption) {
+          try {
+            e = parser.getObj(this.encrypt.createCipherTransform(num, gen));
+          } catch (ex) {
+            // almost all streams must be encrypted, but sometimes
+            // they are not probably due to some broken generators
+            // re-trying without encryption
+            return this.fetch(ref, true);
+          }
+        } else {
+          e = parser.getObj();
+        }
+        // Don't cache streams since they are mutable (except images).
+        if (!isStream(e) || e instanceof JpegStream)
+          this.cache[num] = e;
+        return e;
+      }
+
+      // compressed entry
+      stream = this.fetch(new Ref(e.offset, 0));
+      if (!isStream(stream))
+        error('bad ObjStm stream');
+      var first = stream.parameters.get('First');
+      var n = stream.parameters.get('N');
+      if (!isInt(first) || !isInt(n)) {
+        error('invalid first and n parameters for ObjStm stream');
+      }
+      parser = new Parser(new Lexer(stream), false, this);
+      var i, entries = [], nums = [];
+      // read the object numbers to populate cache
+      for (i = 0; i < n; ++i) {
+        num = parser.getObj();
+        if (!isInt(num)) {
+          error('invalid object number in the ObjStm stream: ' + num);
+        }
+        nums.push(num);
+        var offset = parser.getObj();
+        if (!isInt(offset)) {
+          error('invalid object offset in the ObjStm stream: ' + offset);
+        }
+      }
+      // read stream objects for cache
+      for (i = 0; i < n; ++i) {
+        entries.push(parser.getObj());
+        this.cache[nums[i]] = entries[i];
+      }
+      e = entries[e.gen];
+      if (!e) {
+        error('bad XRef entry for compressed object');
+      }
+      return e;
+    },
+    getCatalogObj: function XRef_getCatalogObj() {
+      return this.root;
+    }
+  };
+
+  return XRef;
+})();
+
+/**
+ * A PDF document and page is built of many objects. E.g. there are objects
+ * for fonts, images, rendering code and such. These objects might get processed
+ * inside of a worker. The `PDFObjects` implements some basic functions to
+ * manage these objects.
+ */
+var PDFObjects = (function PDFObjectsClosure() {
+  function PDFObjects() {
+    this.objs = {};
+  }
+
+  PDFObjects.prototype = {
+    objs: null,
+
+    /**
+     * Internal function.
+     * Ensures there is an object defined for `objId`. Stores `data` on the
+     * object *if* it is created.
+     */
+    ensureObj: function PDFObjects_ensureObj(objId, data) {
+      if (this.objs[objId])
+        return this.objs[objId];
+      return this.objs[objId] = new Promise(objId, data);
+    },
+
+    /**
+     * If called *without* callback, this returns the data of `objId` but the
+     * object needs to be resolved. If it isn't, this function throws.
+     *
+     * If called *with* a callback, the callback is called with the data of the
+     * object once the object is resolved. That means, if you call this
+     * function and the object is already resolved, the callback gets called
+     * right away.
+     */
+    get: function PDFObjects_get(objId, callback) {
+      // If there is a callback, then the get can be async and the object is
+      // not required to be resolved right now
+      if (callback) {
+        this.ensureObj(objId).then(callback);
+        return null;
+      }
+
+      // If there isn't a callback, the user expects to get the resolved data
+      // directly.
+      var obj = this.objs[objId];
+
+      // If there isn't an object yet or the object isn't resolved, then the
+      // data isn't ready yet!
+      if (!obj || !obj.isResolved)
+        error('Requesting object that isn\'t resolved yet ' + objId);
+
+      return obj.data;
+    },
+
+    /**
+     * Resolves the object `objId` with optional `data`.
+     */
+    resolve: function PDFObjects_resolve(objId, data) {
+      var objs = this.objs;
+
+      // In case there is a promise already on this object, just resolve it.
+      if (objs[objId]) {
+        objs[objId].resolve(data);
+      } else {
+        this.ensureObj(objId, data);
+      }
+    },
+
+    onData: function PDFObjects_onData(objId, callback) {
+      this.ensureObj(objId).onData(callback);
+    },
+
+    isResolved: function PDFObjects_isResolved(objId) {
+      var objs = this.objs;
+      if (!objs[objId]) {
+        return false;
+      } else {
+        return objs[objId].isResolved;
+      }
+    },
+
+    hasData: function PDFObjects_hasData(objId) {
+      var objs = this.objs;
+      if (!objs[objId]) {
+        return false;
+      } else {
+        return objs[objId].hasData;
+      }
+    },
+
+    /**
+     * Sets the data of an object but *doesn't* resolve it.
+     */
+    setData: function PDFObjects_setData(objId, data) {
+      // Watchout! If you call `this.ensureObj(objId, data)` you're going to
+      // create a *resolved* promise which shouldn't be the case!
+      this.ensureObj(objId).data = data;
+    }
+  };
+  return PDFObjects;
+})();
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var PDFFunction = (function PDFFunctionClosure() {
+  var CONSTRUCT_SAMPLED = 0;
+  var CONSTRUCT_INTERPOLATED = 2;
+  var CONSTRUCT_STICHED = 3;
+  var CONSTRUCT_POSTSCRIPT = 4;
+
+  return {
+    getSampleArray: function PDFFunction_getSampleArray(size, outputSize, bps,
+                                                       str) {
+      var length = 1;
+      for (var i = 0, ii = size.length; i < ii; i++)
+        length *= size[i];
+      length *= outputSize;
+
+      var array = [];
+      var codeSize = 0;
+      var codeBuf = 0;
+      // 32 is a valid bps so shifting won't work
+      var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1);
+
+      var strBytes = str.getBytes((length * bps + 7) / 8);
+      var strIdx = 0;
+      for (var i = 0; i < length; i++) {
+        while (codeSize < bps) {
+          codeBuf <<= 8;
+          codeBuf |= strBytes[strIdx++];
+          codeSize += 8;
+        }
+        codeSize -= bps;
+        array.push((codeBuf >> codeSize) * sampleMul);
+        codeBuf &= (1 << codeSize) - 1;
+      }
+      return array;
+    },
+
+    getIR: function PDFFunction_getIR(xref, fn) {
+      var dict = fn.dict;
+      if (!dict)
+        dict = fn;
+
+      var types = [this.constructSampled,
+                   null,
+                   this.constructInterpolated,
+                   this.constructStiched,
+                   this.constructPostScript];
+
+      var typeNum = dict.get('FunctionType');
+      var typeFn = types[typeNum];
+      if (!typeFn)
+        error('Unknown type of function');
+
+      return typeFn.call(this, fn, dict, xref);
+    },
+
+    fromIR: function PDFFunction_fromIR(IR) {
+      var type = IR[0];
+      switch (type) {
+        case CONSTRUCT_SAMPLED:
+          return this.constructSampledFromIR(IR);
+        case CONSTRUCT_INTERPOLATED:
+          return this.constructInterpolatedFromIR(IR);
+        case CONSTRUCT_STICHED:
+          return this.constructStichedFromIR(IR);
+        case CONSTRUCT_POSTSCRIPT:
+        default:
+          return this.constructPostScriptFromIR(IR);
+      }
+    },
+
+    parse: function PDFFunction_parse(xref, fn) {
+      var IR = this.getIR(xref, fn);
+      return this.fromIR(IR);
+    },
+
+    constructSampled: function PDFFunction_constructSampled(str, dict) {
+      function toMultiArray(arr) {
+        var inputLength = arr.length;
+        var outputLength = arr.length / 2;
+        var out = [];
+        var index = 0;
+        for (var i = 0; i < inputLength; i += 2) {
+          out[index] = [arr[i], arr[i + 1]];
+          ++index;
+        }
+        return out;
+      }
+      var domain = dict.get('Domain');
+      var range = dict.get('Range');
+
+      if (!domain || !range)
+        error('No domain or range');
+
+      var inputSize = domain.length / 2;
+      var outputSize = range.length / 2;
+
+      domain = toMultiArray(domain);
+      range = toMultiArray(range);
+
+      var size = dict.get('Size');
+      var bps = dict.get('BitsPerSample');
+      var order = dict.get('Order');
+      if (!order)
+        order = 1;
+      if (order !== 1)
+        error('No support for cubic spline interpolation: ' + order);
+
+      var encode = dict.get('Encode');
+      if (!encode) {
+        encode = [];
+        for (var i = 0; i < inputSize; ++i) {
+          encode.push(0);
+          encode.push(size[i] - 1);
+        }
+      }
+      encode = toMultiArray(encode);
+
+      var decode = dict.get('Decode');
+      if (!decode)
+        decode = range;
+      else
+        decode = toMultiArray(decode);
+
+      var samples = this.getSampleArray(size, outputSize, bps, str);
+
+      return [
+        CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size,
+        outputSize, Math.pow(2, bps) - 1, range
+      ];
+    },
+
+    constructSampledFromIR: function PDFFunction_constructSampledFromIR(IR) {
+      // See chapter 3, page 109 of the PDF reference
+      function interpolate(x, xmin, xmax, ymin, ymax) {
+        return ymin + ((x - xmin) * ((ymax - ymin) / (xmax - xmin)));
+      }
+
+      return function constructSampledFromIRResult(args) {
+        // See chapter 3, page 110 of the PDF reference.
+        var m = IR[1];
+        var domain = IR[2];
+        var encode = IR[3];
+        var decode = IR[4];
+        var samples = IR[5];
+        var size = IR[6];
+        var n = IR[7];
+        var mask = IR[8];
+        var range = IR[9];
+
+        if (m != args.length)
+          error('Incorrect number of arguments: ' + inputSize + ' != ' +
+                args.length);
+
+        var x = args;
+
+        // Building the cube vertices: its part and sample index
+        // http://rjwagner49.com/Mathematics/Interpolation.pdf
+        var cubeVertices = 1 << m;
+        var cubeN = new Float64Array(cubeVertices);
+        var cubeVertex = new Uint32Array(cubeVertices);
+        for (var j = 0; j < cubeVertices; j++)
+          cubeN[j] = 1;
+
+        var k = n, pos = 1;
+        // Map x_i to y_j for 0 <= i < m using the sampled function.
+        for (var i = 0; i < m; ++i) {
+          // x_i' = min(max(x_i, Domain_2i), Domain_2i+1)
+          var domain_2i = domain[i][0];
+          var domain_2i_1 = domain[i][1];
+          var xi = Math.min(Math.max(x[i], domain_2i), domain_2i_1);
+
+          // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1,
+          //                   Encode_2i, Encode_2i+1)
+          var e = interpolate(xi, domain_2i, domain_2i_1,
+                              encode[i][0], encode[i][1]);
+
+          // e_i' = min(max(e_i, 0), Size_i - 1)
+          var size_i = size[i];
+          e = Math.min(Math.max(e, 0), size_i - 1);
+
+          // Adjusting the cube: N and vertex sample index
+          var e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1;
+          var n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0);
+          var n1 = e - e0; // (e - e0) / (e1 - e0);
+          var offset0 = e0 * k;
+          var offset1 = offset0 + k; // e1 * k
+          for (var j = 0; j < cubeVertices; j++) {
+            if (j & pos) {
+              cubeN[j] *= n1;
+              cubeVertex[j] += offset1;
+            } else {
+              cubeN[j] *= n0;
+              cubeVertex[j] += offset0;
+            }
+          }
+
+          k *= size_i;
+          pos <<= 1;
+        }
+
+        var y = new Float64Array(n);
+        for (var j = 0; j < n; ++j) {
+          // Sum all cube vertices' samples portions
+          var rj = 0;
+          for (var i = 0; i < cubeVertices; i++)
+            rj += samples[cubeVertex[i] + j] * cubeN[i];
+
+          // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1,
+          //                    Decode_2j, Decode_2j+1)
+          rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);
+
+          // y_j = min(max(r_j, range_2j), range_2j+1)
+          y[j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);
+        }
+
+        return y;
+      }
+    },
+
+    constructInterpolated: function PDFFunction_constructInterpolated(str,
+                                                                      dict) {
+      var c0 = dict.get('C0') || [0];
+      var c1 = dict.get('C1') || [1];
+      var n = dict.get('N');
+
+      if (!isArray(c0) || !isArray(c1))
+        error('Illegal dictionary for interpolated function');
+
+      var length = c0.length;
+      var diff = [];
+      for (var i = 0; i < length; ++i)
+        diff.push(c1[i] - c0[i]);
+
+      return [CONSTRUCT_INTERPOLATED, c0, diff, n];
+    },
+
+    constructInterpolatedFromIR:
+      function PDFFunction_constructInterpolatedFromIR(IR) {
+      var c0 = IR[1];
+      var diff = IR[2];
+      var n = IR[3];
+
+      var length = diff.length;
+
+      return function constructInterpolatedFromIRResult(args) {
+        var x = n == 1 ? args[0] : Math.pow(args[0], n);
+
+        var out = [];
+        for (var j = 0; j < length; ++j)
+          out.push(c0[j] + (x * diff[j]));
+
+        return out;
+
+      }
+    },
+
+    constructStiched: function PDFFunction_constructStiched(fn, dict, xref) {
+      var domain = dict.get('Domain');
+
+      if (!domain)
+        error('No domain');
+
+      var inputSize = domain.length / 2;
+      if (inputSize != 1)
+        error('Bad domain for stiched function');
+
+      var fnRefs = dict.get('Functions');
+      var fns = [];
+      for (var i = 0, ii = fnRefs.length; i < ii; ++i)
+        fns.push(PDFFunction.getIR(xref, xref.fetchIfRef(fnRefs[i])));
+
+      var bounds = dict.get('Bounds');
+      var encode = dict.get('Encode');
+
+      return [CONSTRUCT_STICHED, domain, bounds, encode, fns];
+    },
+
+    constructStichedFromIR: function PDFFunction_constructStichedFromIR(IR) {
+      var domain = IR[1];
+      var bounds = IR[2];
+      var encode = IR[3];
+      var fnsIR = IR[4];
+      var fns = [];
+
+      for (var i = 0, ii = fnsIR.length; i < ii; i++) {
+        fns.push(PDFFunction.fromIR(fnsIR[i]));
+      }
+
+      return function constructStichedFromIRResult(args) {
+        var clip = function constructStichedFromIRClip(v, min, max) {
+          if (v > max)
+            v = max;
+          else if (v < min)
+            v = min;
+          return v;
+        };
+
+        // clip to domain
+        var v = clip(args[0], domain[0], domain[1]);
+        // calulate which bound the value is in
+        for (var i = 0, ii = bounds.length; i < ii; ++i) {
+          if (v < bounds[i])
+            break;
+        }
+
+        // encode value into domain of function
+        var dmin = domain[0];
+        if (i > 0)
+          dmin = bounds[i - 1];
+        var dmax = domain[1];
+        if (i < bounds.length)
+          dmax = bounds[i];
+
+        var rmin = encode[2 * i];
+        var rmax = encode[2 * i + 1];
+
+        var v2 = rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);
+
+        // call the appropropriate function
+        return fns[i]([v2]);
+      };
+    },
+
+    constructPostScript: function PDFFunction_constructPostScript(fn, dict,
+                                                                  xref) {
+      var domain = dict.get('Domain');
+      var range = dict.get('Range');
+
+      if (!domain)
+        error('No domain.');
+
+      if (!range)
+        error('No range.');
+
+      var lexer = new PostScriptLexer(fn);
+      var parser = new PostScriptParser(lexer);
+      var code = parser.parse();
+
+      return [CONSTRUCT_POSTSCRIPT, domain, range, code];
+    },
+
+    constructPostScriptFromIR: function PDFFunction_constructPostScriptFromIR(
+                                          IR) {
+      var domain = IR[1];
+      var range = IR[2];
+      var code = IR[3];
+      var numOutputs = range.length / 2;
+      var evaluator = new PostScriptEvaluator(code);
+      // Cache the values for a big speed up, the cache size is limited though
+      // since the number of possible values can be huge from a PS function.
+      var cache = new FunctionCache();
+      return function constructPostScriptFromIRResult(args) {
+        var initialStack = [];
+        for (var i = 0, ii = (domain.length / 2); i < ii; ++i) {
+          initialStack.push(args[i]);
+        }
+
+        var key = initialStack.join('_');
+        if (cache.has(key))
+          return cache.get(key);
+
+        var stack = evaluator.execute(initialStack);
+        var transformed = [];
+        for (i = numOutputs - 1; i >= 0; --i) {
+          var out = stack.pop();
+          var rangeIndex = 2 * i;
+          if (out < range[rangeIndex])
+            out = range[rangeIndex];
+          else if (out > range[rangeIndex + 1])
+            out = range[rangeIndex + 1];
+          transformed[i] = out;
+        }
+        cache.set(key, transformed);
+        return transformed;
+      };
+    }
+  };
+})();
+
+var FunctionCache = (function FunctionCacheClosure() {
+  // Of 10 PDF's with type4 functions the maxium number of distinct values seen
+  // was 256. This still may need some tweaking in the future though.
+  var MAX_CACHE_SIZE = 1024;
+  function FunctionCache() {
+    this.cache = {};
+    this.total = 0;
+  }
+  FunctionCache.prototype = {
+    has: function FunctionCache_has(key) {
+      return key in this.cache;
+    },
+    get: function FunctionCache_get(key) {
+      return this.cache[key];
+    },
+    set: function FunctionCache_set(key, value) {
+      if (this.total < MAX_CACHE_SIZE) {
+        this.cache[key] = value;
+        this.total++;
+      }
+    }
+  };
+  return FunctionCache;
+})();
+
+var PostScriptStack = (function PostScriptStackClosure() {
+  var MAX_STACK_SIZE = 100;
+  function PostScriptStack(initialStack) {
+    this.stack = initialStack || [];
+  }
+
+  PostScriptStack.prototype = {
+    push: function PostScriptStack_push(value) {
+      if (this.stack.length >= MAX_STACK_SIZE)
+        error('PostScript function stack overflow.');
+      this.stack.push(value);
+    },
+    pop: function PostScriptStack_pop() {
+      if (this.stack.length <= 0)
+        error('PostScript function stack underflow.');
+      return this.stack.pop();
+    },
+    copy: function PostScriptStack_copy(n) {
+      if (this.stack.length + n >= MAX_STACK_SIZE)
+        error('PostScript function stack overflow.');
+      var stack = this.stack;
+      for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++)
+        stack.push(stack[i]);
+    },
+    index: function PostScriptStack_index(n) {
+      this.push(this.stack[this.stack.length - n - 1]);
+    },
+    // rotate the last n stack elements p times
+    roll: function PostScriptStack_roll(n, p) {
+      var stack = this.stack;
+      var l = stack.length - n;
+      var r = stack.length - 1, c = l + (p - Math.floor(p / n) * n), i, j, t;
+      for (i = l, j = r; i < j; i++, j--) {
+        t = stack[i]; stack[i] = stack[j]; stack[j] = t;
+      }
+      for (i = l, j = c - 1; i < j; i++, j--) {
+        t = stack[i]; stack[i] = stack[j]; stack[j] = t;
+      }
+      for (i = c, j = r; i < j; i++, j--) {
+        t = stack[i]; stack[i] = stack[j]; stack[j] = t;
+      }
+    }
+  };
+  return PostScriptStack;
+})();
+var PostScriptEvaluator = (function PostScriptEvaluatorClosure() {
+  function PostScriptEvaluator(operators, operands) {
+    this.operators = operators;
+    this.operands = operands;
+  }
+  PostScriptEvaluator.prototype = {
+    execute: function PostScriptEvaluator_execute(initialStack) {
+      var stack = new PostScriptStack(initialStack);
+      var counter = 0;
+      var operators = this.operators;
+      var length = operators.length;
+      var operator, a, b;
+      while (counter < length) {
+        operator = operators[counter++];
+        if (typeof operator == 'number') {
+          // Operator is really an operand and should be pushed to the stack.
+          stack.push(operator);
+          continue;
+        }
+        switch (operator) {
+          // non standard ps operators
+          case 'jz': // jump if false
+            b = stack.pop();
+            a = stack.pop();
+            if (!a)
+              counter = b;
+            break;
+          case 'j': // jump
+            a = stack.pop();
+            counter = a;
+            break;
+
+          // all ps operators in alphabetical order (excluding if/ifelse)
+          case 'abs':
+            a = stack.pop();
+            stack.push(Math.abs(a));
+            break;
+          case 'add':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(a + b);
+            break;
+          case 'and':
+            b = stack.pop();
+            a = stack.pop();
+            if (isBool(a) && isBool(b))
+              stack.push(a && b);
+            else
+              stack.push(a & b);
+            break;
+          case 'atan':
+            a = stack.pop();
+            stack.push(Math.atan(a));
+            break;
+          case 'bitshift':
+            b = stack.pop();
+            a = stack.pop();
+            if (a > 0)
+              stack.push(a << b);
+            else
+              stack.push(a >> b);
+            break;
+          case 'ceiling':
+            a = stack.pop();
+            stack.push(Math.ceil(a));
+            break;
+          case 'copy':
+            a = stack.pop();
+            stack.copy(a);
+            break;
+          case 'cos':
+            a = stack.pop();
+            stack.push(Math.cos(a));
+            break;
+          case 'cvi':
+            a = stack.pop() | 0;
+            stack.push(a);
+            break;
+          case 'cvr':
+            // noop
+            break;
+          case 'div':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(a / b);
+            break;
+          case 'dup':
+            stack.copy(1);
+            break;
+          case 'eq':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(a == b);
+            break;
+          case 'exch':
+            stack.roll(2, 1);
+            break;
+          case 'exp':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(Math.pow(a, b));
+            break;
+          case 'false':
+            stack.push(false);
+            break;
+          case 'floor':
+            a = stack.pop();
+            stack.push(Math.floor(a));
+            break;
+          case 'ge':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(a >= b);
+            break;
+          case 'gt':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(a > b);
+            break;
+          case 'idiv':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push((a / b) | 0);
+            break;
+          case 'index':
+            a = stack.pop();
+            stack.index(a);
+            break;
+          case 'le':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(a <= b);
+            break;
+          case 'ln':
+            a = stack.pop();
+            stack.push(Math.log(a));
+            break;
+          case 'log':
+            a = stack.pop();
+            stack.push(Math.log(a) / Math.LN10);
+            break;
+          case 'lt':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(a < b);
+            break;
+          case 'mod':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(a % b);
+            break;
+          case 'mul':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(a * b);
+            break;
+          case 'ne':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(a != b);
+            break;
+          case 'neg':
+            a = stack.pop();
+            stack.push(-b);
+            break;
+          case 'not':
+            a = stack.pop();
+            if (isBool(a) && isBool(b))
+              stack.push(a && b);
+            else
+              stack.push(a & b);
+            break;
+          case 'or':
+            b = stack.pop();
+            a = stack.pop();
+            if (isBool(a) && isBool(b))
+              stack.push(a || b);
+            else
+              stack.push(a | b);
+            break;
+          case 'pop':
+            stack.pop();
+            break;
+          case 'roll':
+            b = stack.pop();
+            a = stack.pop();
+            stack.roll(a, b);
+            break;
+          case 'round':
+            a = stack.pop();
+            stack.push(Math.round(a));
+            break;
+          case 'sin':
+            a = stack.pop();
+            stack.push(Math.sin(a));
+            break;
+          case 'sqrt':
+            a = stack.pop();
+            stack.push(Math.sqrt(a));
+            break;
+          case 'sub':
+            b = stack.pop();
+            a = stack.pop();
+            stack.push(a - b);
+            break;
+          case 'true':
+            stack.push(true);
+            break;
+          case 'truncate':
+            a = stack.pop();
+            a = a < 0 ? Math.ceil(a) : Math.floor(a);
+            stack.push(a);
+            break;
+          case 'xor':
+            b = stack.pop();
+            a = stack.pop();
+            if (isBool(a) && isBool(b))
+              stack.push(a != b);
+            else
+              stack.push(a ^ b);
+            break;
+          default:
+            error('Unknown operator ' + operator);
+            break;
+        }
+      }
+      return stack.stack;
+    }
+  };
+  return PostScriptEvaluator;
+})();
+
+var PostScriptParser = (function PostScriptParserClosure() {
+  function PostScriptParser(lexer) {
+    this.lexer = lexer;
+    this.operators = [];
+    this.token;
+    this.prev;
+  }
+  PostScriptParser.prototype = {
+    nextToken: function PostScriptParser_nextToken() {
+      this.prev = this.token;
+      this.token = this.lexer.getToken();
+    },
+    accept: function PostScriptParser_accept(type) {
+      if (this.token.type == type) {
+        this.nextToken();
+        return true;
+      }
+      return false;
+    },
+    expect: function PostScriptParser_expect(type) {
+      if (this.accept(type))
+        return true;
+      error('Unexpected symbol: found ' + this.token.type + ' expected ' +
+            type + '.');
+    },
+    parse: function PostScriptParser_parse() {
+      this.nextToken();
+      this.expect(PostScriptTokenTypes.LBRACE);
+      this.parseBlock();
+      this.expect(PostScriptTokenTypes.RBRACE);
+      return this.operators;
+    },
+    parseBlock: function PostScriptParser_parseBlock() {
+      while (true) {
+        if (this.accept(PostScriptTokenTypes.NUMBER)) {
+          this.operators.push(this.prev.value);
+        } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {
+          this.operators.push(this.prev.value);
+        } else if (this.accept(PostScriptTokenTypes.LBRACE)) {
+          this.parseCondition();
+        } else {
+          return;
+        }
+      }
+    },
+    parseCondition: function PostScriptParser_parseCondition() {
+      // Add two place holders that will be updated later
+      var conditionLocation = this.operators.length;
+      this.operators.push(null, null);
+
+      this.parseBlock();
+      this.expect(PostScriptTokenTypes.RBRACE);
+      if (this.accept(PostScriptTokenTypes.IF)) {
+        // The true block is right after the 'if' so it just falls through on
+        // true else it jumps and skips the true block.
+        this.operators[conditionLocation] = this.operators.length;
+        this.operators[conditionLocation + 1] = 'jz';
+      } else if (this.accept(PostScriptTokenTypes.LBRACE)) {
+        var jumpLocation = this.operators.length;
+        this.operators.push(null, null);
+        var endOfTrue = this.operators.length;
+        this.parseBlock();
+        this.expect(PostScriptTokenTypes.RBRACE);
+        this.expect(PostScriptTokenTypes.IFELSE);
+        // The jump is added at the end of the true block to skip the false
+        // block.
+        this.operators[jumpLocation] = this.operators.length;
+        this.operators[jumpLocation + 1] = 'j';
+
+        this.operators[conditionLocation] = endOfTrue;
+        this.operators[conditionLocation + 1] = 'jz';
+      } else {
+        error('PS Function: error parsing conditional.');
+      }
+    }
+  };
+  return PostScriptParser;
+})();
+
+var PostScriptTokenTypes = {
+  LBRACE: 0,
+  RBRACE: 1,
+  NUMBER: 2,
+  OPERATOR: 3,
+  IF: 4,
+  IFELSE: 5
+};
+
+var PostScriptToken = (function PostScriptTokenClosure() {
+  function PostScriptToken(type, value) {
+    this.type = type;
+    this.value = value;
+  }
+
+  var opCache = {};
+
+  PostScriptToken.getOperator = function PostScriptToken_getOperator(op) {
+    var opValue = opCache[op];
+    if (opValue)
+      return opValue;
+
+    return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);
+  };
+
+  PostScriptToken.LBRACE = new PostScriptToken(PostScriptTokenTypes.LBRACE,
+                                                '{');
+  PostScriptToken.RBRACE = new PostScriptToken(PostScriptTokenTypes.RBRACE,
+                                                '}');
+  PostScriptToken.IF = new PostScriptToken(PostScriptTokenTypes.IF, 'IF');
+  PostScriptToken.IFELSE = new PostScriptToken(PostScriptTokenTypes.IFELSE,
+                                                'IFELSE');
+  return PostScriptToken;
+})();
+
+var PostScriptLexer = (function PostScriptLexerClosure() {
+  function PostScriptLexer(stream) {
+    this.stream = stream;
+  }
+  PostScriptLexer.prototype = {
+    getToken: function PostScriptLexer_getToken() {
+      var s = '';
+      var ch;
+      var comment = false;
+      var stream = this.stream;
+
+      // skip comments
+      while (true) {
+        if (!(ch = stream.getChar()))
+          return EOF;
+
+        if (comment) {
+          if (ch == '\x0a' || ch == '\x0d')
+            comment = false;
+        } else if (ch == '%') {
+          comment = true;
+        } else if (!Lexer.isSpace(ch)) {
+          break;
+        }
+      }
+      switch (ch) {
+        case '0': case '1': case '2': case '3': case '4':
+        case '5': case '6': case '7': case '8': case '9':
+        case '+': case '-': case '.':
+          return new PostScriptToken(PostScriptTokenTypes.NUMBER,
+                                      this.getNumber(ch));
+        case '{':
+          return PostScriptToken.LBRACE;
+        case '}':
+          return PostScriptToken.RBRACE;
+      }
+      // operator
+      var str = ch.toLowerCase();
+      while (true) {
+        ch = stream.lookChar();
+        if (ch === null)
+          break;
+        ch = ch.toLowerCase();
+        if (ch >= 'a' && ch <= 'z')
+          str += ch;
+        else
+          break;
+        stream.skip();
+      }
+      switch (str) {
+        case 'if':
+          return PostScriptToken.IF;
+        case 'ifelse':
+          return PostScriptToken.IFELSE;
+        default:
+          return PostScriptToken.getOperator(str);
+      }
+    },
+    getNumber: function PostScriptLexer_getNumber(ch) {
+      var str = ch;
+      var stream = this.stream;
+      while (true) {
+        ch = stream.lookChar();
+        if ((ch >= '0' && ch <= '9') || ch == '-' || ch == '.')
+          str += ch;
+        else
+          break;
+        stream.skip();
+      }
+      var value = parseFloat(str);
+      if (isNaN(value))
+        error('Invalid floating point number: ' + value);
+      return value;
+    }
+  };
+  return PostScriptLexer;
+})();
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var ISOAdobeCharset = [
+  '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar',
+  'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright',
+  'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero',
+  'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight',
+  'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question',
+  'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+  'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+  'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore',
+  'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
+  'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+  'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent',
+  'sterling', 'fraction', 'yen', 'florin', 'section', 'currency',
+  'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft',
+  'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl',
+  'periodcentered', 'paragraph', 'bullet', 'quotesinglbase',
+  'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis',
+  'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde',
+  'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla',
+  'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine',
+  'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash',
+  'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu',
+  'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter',
+  'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior',
+  'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright',
+  'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde',
+  'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute',
+  'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex',
+  'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex',
+  'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute',
+  'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla',
+  'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex',
+  'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis',
+  'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis',
+  'ugrave', 'yacute', 'ydieresis', 'zcaron'
+];
+
+var ExpertCharset = [
+  '.notdef', 'space', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle',
+  'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior',
+  'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma',
+  'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle',
+  'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle',
+  'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle',
+  'colon', 'semicolon', 'commasuperior', 'threequartersemdash',
+  'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior',
+  'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior',
+  'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior',
+  'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior',
+  'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall',
+  'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall',
+  'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall',
+  'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall',
+  'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary',
+  'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle',
+  'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall',
+  'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall',
+  'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall',
+  'Cedillasmall', 'onequarter', 'onehalf', 'threequarters',
+  'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths',
+  'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior',
+  'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior',
+  'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior',
+  'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior',
+  'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior',
+  'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior',
+  'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall',
+  'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall',
+  'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall',
+  'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall',
+  'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall',
+  'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall',
+  'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall',
+  'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall',
+  'Ydieresissmall'
+];
+
+var ExpertSubsetCharset = [
+  '.notdef', 'space', 'dollaroldstyle', 'dollarsuperior',
+  'parenleftsuperior', 'parenrightsuperior', 'twodotenleader',
+  'onedotenleader', 'comma', 'hyphen', 'period', 'fraction',
+  'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle',
+  'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle',
+  'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior',
+  'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior',
+  'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior',
+  'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior',
+  'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior',
+  'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted',
+  'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter',
+  'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths',
+  'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior',
+  'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior',
+  'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior',
+  'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior',
+  'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior',
+  'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior',
+  'periodinferior', 'commainferior'
+];
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var CIDToUnicodeMaps = {
+  'Adobe-Japan1': [[32, 160], {f: 12, c: 33}, [45, 8209], {f: 46, c: 46}, 165,
+    {f: 2, c: 93}, [95, 818], [96, 768], {f: 27, c: 97}, 166, 125, [732, 771],
+    [700, 8217], 92, [699, 8216], 124, [126, 8764], {f: 3, c: 161}, 8260, 402,
+    0, 164, 8220, 171, {f: 2, c: 8249}, {f: 2, c: 64257}, [8210, 8211], 0, 0,
+    [183, 8729], 0, 8226, 8218, 8222, 8221, 187, 0, 0, 191, {f: 2, c: 769},
+    [175, 772], {f: 3, c: 774}, 778, [184, 807], 779, 808, 780, [822, 8212],
+    198, 170, 321, 216, 338, 186, 230, 305, 322, 248, 339, 223, 173, 169, 172,
+    174, 0, 0, {f: 2, c: 178}, 181, 185, {f: 3, c: 188}, {f: 6, c: 192},
+    {f: 16, c: 199}, 0, {f: 6, c: 217}, {f: 6, c: 224}, {f: 16, c: 231}, 0,
+    {f: 7, c: 249}, 352, 376, 381, [773, 8254], 353, 8482, 382, 0, 8194,
+    {s: 91}, 65512, {s: 3}, {f: 63, c: 65377}, {s: 243}, [8195, 12288],
+    {f: 2, c: 12289}, 65292, 65294, 12539, {f: 2, c: 65306}, 65311, 65281,
+    {f: 2, c: 12443}, 180, 65344, 168, 65342, 65507, 65343, {f: 2, c: 12541},
+    {f: 2, c: 12445}, 12291, 20189, {f: 3, c: 12293}, 12540, 8213, 8208, 65295,
+    65340, [12316, 65374], 8214, 65372, 8230, 8229, {s: 4}, {f: 2, c: 65288},
+    {f: 2, c: 12308}, 65339, 65341, 65371, 65373, {f: 10, c: 12296}, 65291,
+    [8722, 65293], 177, 215, 247, 65309, 8800, 65308, 65310, {f: 2, c: 8806},
+    8734, 8756, 9794, 9792, 176, {f: 2, c: 8242}, 8451, 65509, 65284,
+    {f: 2, c: 65504}, 65285, 65283, 65286, 65290, 65312, 167, 9734, 9733, 9675,
+    9679, 9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8251, 12306,
+    8594, {f: 2, c: 8592}, 8595, 12307, 8712, 8715, {f: 2, c: 8838},
+    {f: 2, c: 8834}, 8746, 8745, {f: 2, c: 8743}, 65506, 8658, 8660, 8704,
+    8707, 8736, 8869, 8978, 8706, 8711, 8801, 8786, {f: 2, c: 8810}, 8730,
+    8765, 8733, 8757, {f: 2, c: 8747}, 8491, 8240, 9839, 9837, 9834,
+    {f: 2, c: 8224}, 182, 9711, {f: 10, c: 65296}, {f: 26, c: 65313},
+    {f: 26, c: 65345}, {f: 83, c: 12353}, {f: 86, c: 12449}, {f: 17, c: 913},
+    {f: 7, c: 931}, {f: 17, c: 945}, {f: 7, c: 963}, {f: 6, c: 1040}, 1025,
+    {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, 20124, 21782, 23043, 38463,
+    21696, 24859, 25384, 23030, 36898, 33909, 33564, 31312, 24746, 25569,
+    28197, 26093, 33894, 33446, 39925, 26771, 22311, 26017, 25201, 23451,
+    22992, 34427, 39156, 32098, 32190, 39822, 25110, 31903, 34999, 23433,
+    24245, 25353, 26263, 26696, 38343, 38797, 26447, 20197, 20234, 20301,
+    20381, 20553, 22258, 22839, 22996, 23041, 23561, 24799, 24847, 24944,
+    26131, 26885, 28858, 30031, 30064, 31227, 32173, 32239, 32963, 33806,
+    [12176, 34915], 35586, 36949, 36986, 21307, 20117, 20133, 22495, 32946,
+    37057, 30959, [12032, 19968], 22769, 28322, 36920, 31282, 33576, 33419,
+    39983, 20801, 21360, 21693, 21729, 22240, 23035, 24341, 39154, 28139,
+    32996, 34093, 38498, 38512, 38560, 38907, 21515, 21491, 23431, 28879,
+    [12155, 32701], 36802, [12204, 38632], 21359, 40284, 31418, 19985, 30867,
+    [12165, 33276], 28198, 22040, 21764, 27421, 34074, 39995, 23013, 21417,
+    28006, [12128, 29916], 38287, 22082, 20113, 36939, 38642, 33615, 39180,
+    21473, 21942, 23344, 24433, 26144, 26355, 26628, 27704, 27891, 27945,
+    29787, 30408, 31310, 38964, 33521, 34907, 35424, 37613, 28082, 30123,
+    30410, 39365, 24742, 35585, 36234, 38322, 27022, 21421, 20870, 22290,
+    22576, 22852, 23476, 24310, 24616, 25513, 25588, 27839, 28436, 28814,
+    28948, 29017, 29141, 29503, 32257, 33398, 33489, 34199, 36960, 37467,
+    40219, 22633, 26044, 27738, 29989, 20985, 22830, 22885, 24448, 24540,
+    25276, 26106, 27178, 27431, 27572, 29579, 32705, 35158, 40236, 40206,
+    [12009, 40644], 23713, 27798, 33659, 20740, 23627, 25014, 33222, 26742,
+    29281, [12036, 20057], 20474, 21368, 24681, 28201, 31311, [12211, 38899],
+    19979, 21270, 20206, 20309, 20285, 20385, 20339, 21152, 21487, 22025,
+    22799, 23233, 23478, 23521, 31185, 26247, 26524, 26550, 27468, 27827,
+    [12117, 28779], 29634, 31117, [12146, 31166], 31292, 31623, 33457, 33499,
+    33540, 33655, 33775, 33747, 34662, 35506, 22057, 36008, 36838, 36942,
+    38686, 34442, 20420, 23784, 25105, [12123, 29273], 30011, 33253, 33469,
+    34558, 36032, 38597, 39187, 39381, 20171, 20250, 35299, 22238, 22602,
+    22730, 24315, 24555, 24618, 24724, 24674, 25040, 25106, 25296, 25913,
+    39745, 26214, 26800, 28023, 28784, 30028, 30342, 32117, 33445, 34809,
+    38283, 38542, [12185, 35997], 20977, 21182, 22806, 21683, 23475, 23830,
+    24936, 27010, 28079, 30861, 33995, 34903, 35442, 37799, 39608, 28012,
+    39336, 34521, 22435, 26623, 34510, 37390, 21123, 22151, 21508, 24275,
+    25313, 25785, 26684, 26680, 27579, 29554, 30906, 31339, 35226,
+    [12179, 35282], 36203, 36611, 37101, 38307, 38548, [12208, 38761], 23398,
+    23731, 27005, {f: 2, c: 38989}, 25499, 31520, 27179, 27263, 26806, 39949,
+    28511, 21106, 21917, 24688, 25324, 27963, 28167, 28369, 33883, 35088,
+    36676, 19988, 39993, 21494, 26907, 27194, 38788, 26666, 20828, 31427,
+    33970, 37340, 37772, 22107, 40232, 26658, 33541, 33841, 31909, 21000,
+    33477, [12129, 29926], 20094, 20355, 20896, 23506, 21002, 21208, 21223,
+    24059, 21914, 22570, 23014, 23436, 23448, 23515, [12082, 24178], 24185,
+    24739, 24863, 24931, 25022, 25563, 25954, 26577, 26707, 26874, 27454,
+    27475, 27735, 28450, 28567, 28485, 29872, [12130, 29976], 30435, 30475,
+    31487, 31649, 31777, 32233, [12152, 32566], 32752, 32925, 33382, 33694,
+    35251, 35532, 36011, 36996, 37969, 38291, 38289, 38306, 38501, 38867,
+    39208, 33304, 20024, 21547, 23736, 24012, 29609, 30284, 30524, 23721,
+    32747, 36107, 38593, 38929, 38996, 39000, 20225, 20238, 21361, 21916,
+    22120, 22522, 22855, 23305, 23492, 23696, 24076, 24190, 24524, 25582,
+    26426, 26071, 26082, 26399, 26827, 26820, 27231, 24112, 27589, 27671,
+    27773, 30079, 31048, 23395, 31232, 32000, 24509, 35215, 35352, 36020,
+    36215, 36556, 36637, 39138, 39438, [12004, 12225, 39740], [12018, 20096],
+    20605, 20736, 22931, 23452, 25135, 25216, 25836, 27450, 29344, 30097,
+    31047, 32681, 34811, 35516, 35696, 25516, 33738, 38816, 21513, 21507,
+    21931, 26708, 27224, 35440, 30759, 26485, [12233, 40653], 21364, 23458,
+    33050, 34384, 36870, 19992, 20037, 20167, 20241, 21450, 21560, 23470,
+    [12088, 24339], 24613, 25937, 26429, 27714, 27762, 27875, 28792, 29699,
+    31350, 31406, 31496, 32026, 31998, 32102, 26087, [12124, 29275], 21435,
+    23621, 24040, 25298, 25312, 25369, 28192, 34394, 35377, 36317, 37624,
+    28417, 31142, [12226, 39770], 20136, {f: 2, c: 20139}, 20379, 20384, 20689,
+    20807, 31478, 20849, 20982, 21332, 21281, 21375, 21483, 21932, 22659,
+    23777, 24375, 24394, 24623, 24656, 24685, 25375, 25945, 27211, 27841,
+    29378, 29421, 30703, 33016, 33029, 33288, 34126, 37111, 37857, 38911,
+    39255, 39514, 20208, 20957, 23597, 26241, 26989, 23616, 26354, 26997,
+    [12127, 29577], 26704, 31873, 20677, 21220, 22343, [12081, 24062], 37670,
+    [12100, 26020], 27427, 27453, 29748, 31105, 31165, 31563, 32202, 33465,
+    33740, 34943, 35167, 35641, 36817, [12198, 37329], 21535, 37504, 20061,
+    20534, 21477, 21306, 29399, 29590, 30697, 33510, 36527, 39366, 39368,
+    39378, 20855, 24858, 34398, 21936, 31354, 20598, 23507, 36935, 38533,
+    20018, 27355, 37351, 23633, 23624, 25496, 31391, 27795, 38772, 36705,
+    31402, 29066, 38536, 31874, 26647, 32368, 26705, 37740, 21234, 21531,
+    34219, 35347, 32676, 36557, 37089, 21350, 34952, 31041, 20418, 20670,
+    21009, 20804, 21843, 22317, 29674, 22411, 22865, 24418, 24452, 24693,
+    24950, 24935, 25001, 25522, 25658, 25964, 26223, 26690, 28179, 30054,
+    31293, 31995, 32076, 32153, 32331, 32619, 33550, 33610, 34509, 35336,
+    35427, 35686, 36605, 38938, 40335, 33464, 36814, 39912, 21127, 25119,
+    25731, 28608, 38553, 26689, 20625, [12107, 27424], 27770, 28500,
+    [12147, 31348], 32080, [12174, 34880], 35363, [12105, 26376], 20214, 20537,
+    20518, 20581, 20860, 21048, 21091, 21927, 22287, 22533, 23244, 24314,
+    25010, 25080, 25331, 25458, 26908, 27177, 29309, [12125, 29356], 29486,
+    30740, 30831, 32121, 30476, 32937, [12178, 35211], 35609, 36066, 36562,
+    36963, 37749, 38522, 38997, 39443, 40568, 20803, 21407, 21427, 24187,
+    24358, 28187, 28304, [12126, 29572], 29694, 32067, 33335, [12180, 35328],
+    35578, 38480, 20046, 20491, 21476, 21628, 22266, 22993, 23396,
+    [12080, 24049], 24235, 24359, [12094, 25144], 25925, 26543, 28246, 29392,
+    31946, 34996, 32929, 32993, 33776, [11969, 34382], 35463, 36328, 37431,
+    38599, 39015, [12238, 40723], 20116, 20114, 20237, 21320, 21577, 21566,
+    23087, 24460, 24481, 24735, 26791, 27278, 29786, 30849, 35486, 35492,
+    35703, 37264, 20062, 39881, 20132, 20348, 20399, 20505, 20502, 20809,
+    20844, 21151, 21177, 21246, 21402, [12061, 21475], 21521, 21518, 21897,
+    22353, 22434, 22909, 23380, 23389, 23439, [12079, 24037], 24039, 24055,
+    24184, 24195, 24218, 24247, 24344, 24658, 24908, 25239, 25304, 25511,
+    25915, 26114, 26179, 26356, 26477, 26657, 26775, 27083, 27743, 27946,
+    28009, 28207, 28317, 30002, 30343, 30828, 31295, 31968, 32005, 32024,
+    32094, 32177, 32789, 32771, 32943, 32945, 33108, 33167, 33322, 33618,
+    [12175, 34892], 34913, 35611, 36002, 36092, 37066, 37237, 37489, 30783,
+    37628, 38308, 38477, 38917, [12217, 39321], [12220, 39640], 40251, 21083,
+    21163, 21495, 21512, 22741, 25335, 28640, 35946, 36703, 40633, 20811,
+    21051, 21578, 22269, 31296, 37239, 40288, [12234, 40658], 29508, 28425,
+    33136, 29969, 24573, 24794, [12219, 39592], 29403, 36796, 27492, 38915,
+    20170, 22256, 22372, 22718, 23130, 24680, 25031, 26127, 26118, 26681,
+    26801, 28151, 30165, 32058, [12169, 33390], 39746, 20123, 20304, 21449,
+    21766, 23919, 24038, 24046, 26619, 27801, 29811, 30722, 35408, 37782,
+    35039, 22352, 24231, 25387, 20661, 20652, 20877, 26368, 21705, 22622,
+    22971, 23472, 24425, 25165, 25505, 26685, 27507, 28168, 28797, 37319,
+    29312, 30741, 30758, 31085, 25998, 32048, 33756, 35009, 36617, 38555,
+    21092, 22312, 26448, 32618, 36001, 20916, 22338, 38442, 22586, 27018,
+    32948, 21682, 23822, 22524, 30869, 40442, 20316, 21066, 21643, 25662,
+    26152, 26388, 26613, 31364, 31574, 32034, 37679, 26716, 39853, 31545,
+    21273, 20874, 21047, 23519, 25334, 25774, 25830, 26413, 27578, 34217,
+    38609, 30352, 39894, 25420, 37638, 39851, [12139, 30399], 26194, 19977,
+    20632, 21442, [12077, 23665], 24808, 25746, 25955, 26719, 29158, 29642,
+    29987, 31639, 32386, 34453, 35715, 36059, 37240, 39184, 26028, 26283,
+    27531, 20181, 20180, 20282, 20351, 21050, 21496, 21490, 21987, 22235,
+    [12064, 22763], 22987, 22985, 23039, [12070, 23376], 23629, 24066, 24107,
+    24535, 24605, 25351, [12096, 25903], 23388, 26031, 26045, 26088, 26525,
+    [12108, 27490], 27515, [12114, 27663], 29509, 31049, 31169, [12151, 31992],
+    32025, 32043, 32930, 33026, [12164, 33267], 35222, 35422, 35433, 35430,
+    35468, 35566, 36039, 36060, 38604, 39164, [12013, 27503], 20107, 20284,
+    20365, 20816, 23383, 23546, 24904, 25345, 26178, 27425, 28363, 27835,
+    29246, 29885, 30164, 30913, [12144, 31034], [12157, 32780], [12159, 32819],
+    [12163, 33258], 33940, 36766, 27728, [12229, 40575], 24335, 35672, 40235,
+    31482, 36600, 23437, 38635, 19971, 21489, 22519, 22833, 23241, 23460,
+    24713, 28287, 28422, 30142, 36074, 23455, 34048, 31712, 20594, 26612,
+    33437, 23649, 34122, 32286, 33294, 20889, 23556, 25448, 36198, 26012,
+    29038, 31038, 32023, 32773, 35613, [12190, 36554], 36974, 34503, 37034,
+    20511, 21242, 23610, 26451, 28796, 29237, 37196, 37320, 37675, 33509,
+    23490, 24369, 24825, 20027, 21462, 23432, [12095, 25163], 26417, 27530,
+    29417, 29664, 31278, 33131, 36259, 37202, [12216, 39318], 20754, 21463,
+    21610, 23551, 25480, 27193, 32172, 38656, 22234, 21454, 21608, 23447,
+    23601, 24030, 20462, 24833, 25342, 27954, 31168, 31179, 32066, 32333,
+    32722, 33261, [12168, 33311], 33936, 34886, 35186, 35728, 36468, 36655,
+    36913, 37195, 37228, 38598, 37276, 20160, 20303, 20805, [12055, 21313],
+    24467, 25102, 26580, 27713, 28171, 29539, 32294, 37325, 37507, 21460,
+    22809, 23487, 28113, 31069, 32302, 31899, 22654, 29087, 20986, 34899,
+    36848, 20426, 23803, 26149, 30636, 31459, 33308, 39423, 20934, 24490,
+    26092, 26991, 27529, 28147, 28310, 28516, 30462, 32020, 24033, 36981,
+    37255, 38918, 20966, 21021, 25152, 26257, 26329, 28186, 24246, 32210,
+    32626, 26360, 34223, 34295, 35576, 21161, 21465, [12069, 22899], 24207,
+    24464, 24661, 37604, 38500, 20663, 20767, 21213, 21280, 21319, 21484,
+    21736, 21830, 21809, 22039, 22888, 22974, 23100, 23477, 23558,
+    [12073, 23567], 23569, 23578, 24196, 24202, 24288, 24432, 25215, 25220,
+    25307, 25484, 25463, 26119, 26124, 26157, 26230, 26494, 26786, 27167,
+    27189, 27836, 28040, 28169, 28248, 28988, 28966, 29031, 30151, 30465,
+    30813, 30977, 31077, 31216, 31456, 31505, 31911, 32057, 32918, 33750,
+    33931, 34121, 34909, 35059, 35359, 35388, 35412, 35443, 35937, 36062,
+    37284, 37478, 37758, 37912, 38556, 38808, 19978, 19976, 19998, 20055,
+    20887, 21104, 22478, 22580, 22732, 23330, 24120, 24773, 25854, 26465,
+    26454, 27972, 29366, 30067, 31331, 33976, 35698, 37304, 37664, 22065,
+    22516, 39166, 25325, 26893, 27542, 29165, 32340, 32887, [12170, 33394],
+    35302, [12215, 39135], 34645, 36785, 23611, 20280, 20449, 20405, 21767,
+    23072, 23517, 23529, [12092, 24515], 24910, 25391, 26032, 26187, 26862,
+    27035, 28024, 28145, 30003, 30137, 30495, 31070, 31206, 32051,
+    [12162, 33251], 33455, 34218, 35242, 35386, [12189, 36523], [12191, 36763],
+    36914, 37341, 38663, [12040, 20154], 20161, 20995, 22645, 22764, 23563,
+    29978, 23613, 33102, 35338, 36805, 38499, 38765, 31525, 35535, 38920,
+    37218, 22259, 21416, 36887, 21561, 22402, 24101, 25512, [12116, 27700],
+    28810, 30561, 31883, 32736, 34928, 36930, 37204, 37648, 37656, 38543,
+    29790, 39620, 23815, 23913, 25968, 26530, 36264, 38619, 25454, 26441,
+    26905, 33733, 38935, 38592, 35070, 28548, 25722, [12072, 23544], 19990,
+    28716, 30045, 26159, 20932, 21046, 21218, 22995, 24449, 24615, 25104,
+    25919, 25972, 26143, 26228, 26866, 26646, 27491, 28165, 29298,
+    [12131, 29983], 30427, 31934, 32854, 22768, 35069, [11972, 35199], 35488,
+    35475, 35531, 36893, 37266, [11992, 38738], 38745, [12011, 25993], 31246,
+    33030, 38587, 24109, 24796, 25114, 26021, 26132, 26512, [12143, 30707],
+    31309, 31821, 32318, 33034, 36012, [12186, 36196], 36321, 36447, 30889,
+    20999, 25305, 25509, 25666, 25240, 35373, 31363, 31680, 35500, 38634,
+    32118, [12166, 33292], 34633, 20185, 20808, 21315, 21344, 23459, 23554,
+    23574, 24029, 25126, 25159, 25776, 26643, 26676, 27849, 27973, 27927,
+    26579, 28508, 29006, 29053, 26059, 31359, 31661, 32218, 32330, 32680,
+    33146, [12167, 33307], 33337, 34214, 35438, 36046, 36341, 36984, 36983,
+    37549, 37521, 38275, 39854, 21069, 21892, 28472, 28982, 20840, 31109,
+    32341, 33203, 31950, 22092, 22609, 23720, 25514, 26366, 26365, 26970,
+    29401, 30095, 30094, 30990, 31062, 31199, 31895, 32032, 32068, 34311,
+    35380, 38459, 36961, [12239, 40736], 20711, 21109, 21452, 21474, 20489,
+    21930, 22766, 22863, 29245, 23435, 23652, 21277, 24803, 24819, 25436,
+    25475, 25407, 25531, 25805, 26089, 26361, 24035, 27085, 27133, 28437,
+    29157, 20105, 30185, 30456, 31379, 31967, 32207, 32156, 32865, 33609,
+    33624, 33900, 33980, 34299, 35013, [12187, 36208], 36865, 36973, 37783,
+    38684, 39442, 20687, 22679, 24974, 33235, 34101, 36104, 36896, 20419,
+    20596, 21063, 21363, 24687, 25417, 26463, 28204, [12188, 36275], 36895,
+    20439, 23646, 36042, 26063, 32154, 21330, 34966, 20854, 25539, 23384,
+    23403, 23562, 25613, 26449, 36956, 20182, 22810, 22826, 27760, 35409,
+    21822, 22549, 22949, 24816, 25171, 26561, 33333, 26965, 38464, 39364,
+    39464, 20307, 22534, 23550, 32784, 23729, 24111, 24453, 24608, 24907,
+    25140, 26367, 27888, 28382, 32974, 33151, 33492, 34955, 36024, 36864,
+    36910, 38538, 40667, 39899, 20195, 21488, [12068, 22823], 31532, 37261,
+    38988, 40441, 28381, 28711, 21331, 21828, 23429, 25176, 25246, 25299,
+    27810, 28655, 29730, 35351, 37944, 28609, 35582, 33592, 20967, 34552,
+    21482, 21481, 20294, 36948, [12192, 36784], 22890, 33073, 24061, 31466,
+    36799, 26842, [12181, 35895], 29432, 40008, 27197, 35504, 20025, 21336,
+    22022, 22374, 25285, 25506, 26086, 27470, 28129, 28251, 28845, 30701,
+    31471, 31658, 32187, 32829, 32966, 34507, 35477, 37723, 22243, 22727,
+    24382, 26029, 26262, 27264, 27573, 30007, 35527, 20516, 30693, 22320,
+    24347, 24677, 26234, 27744, 30196, 31258, 32622, 33268, 34584, 36933,
+    39347, 31689, 30044, [12149, 31481], 31569, 33988, 36880, 31209, 31378,
+    33590, 23265, 30528, 20013, 20210, 23449, 24544, 25277, 26172, 26609,
+    27880, [12173, 34411], 34935, 35387, 37198, 37619, 39376, 27159, 28710,
+    29482, 33511, 33879, 36015, 19969, 20806, 20939, 21899, 23541, 24086,
+    24115, 24193, 24340, 24373, 24427, 24500, 25074, 25361, 26274, 26397,
+    28526, 29266, 30010, 30522, 32884, 33081, 33144, 34678, 35519, 35548,
+    36229, 36339, 37530, [11985, 12199, 38263], 38914, [12227, 40165], 21189,
+    25431, 30452, 26389, 27784, 29645, 36035, 37806, 38515, 27941, 22684,
+    26894, 27084, 36861, 37786, 30171, 36890, 22618, 26626, 25524, 27131,
+    20291, 28460, 26584, 36795, 34086, 32180, 37716, 26943, 28528, 22378,
+    22775, 23340, 32044, [12118, 29226], 21514, 37347, 40372, 20141, 20302,
+    20572, 20597, 21059, 35998, 21576, 22564, 23450, 24093, 24213, 24237,
+    24311, 24351, 24716, 25269, 25402, 25552, 26799, 27712, 30855, 31118,
+    31243, 32224, 33351, 35330, 35558, 36420, 36883, 37048, 37165, 37336,
+    [12237, 40718], 27877, 25688, 25826, 25973, 28404, 30340, 31515, 36969,
+    37841, 28346, 21746, 24505, 25764, 36685, 36845, 37444, 20856, 22635,
+    22825, 23637, 24215, 28155, 32399, 29980, 36028, 36578, 39003, 28857,
+    20253, 27583, 28593, [12133, 30000], 38651, 20814, 21520, 22581, 22615,
+    22956, 23648, 24466, [12099, 26007], 26460, 28193, 30331, 33759, 36077,
+    36884, 37117, 37709, 30757, 30778, 21162, 24230, [12063, 22303], 22900,
+    24594, 20498, 20826, 20908, 20941, [12049, 20992], 21776, 22612, 22616,
+    22871, 23445, 23798, 23947, 24764, 25237, 25645, 26481, 26691, 26812,
+    26847, 30423, 28120, 28271, 28059, 28783, 29128, 24403, 30168, 31095,
+    31561, 31572, 31570, 31958, 32113, 21040, 33891, 34153, 34276, 35342,
+    35588, [12182, 35910], 36367, 36867, 36879, 37913, 38518, 38957, 39472,
+    38360, 20685, 21205, 21516, 22530, 23566, 24999, 25758, 27934, 30643,
+    31461, 33012, 33796, 36947, 37509, 23776, 40199, 21311, 24471, 24499,
+    28060, 29305, 30563, 31167, 31716, 27602, 29420, 35501, 26627, 27233,
+    20984, 31361, 26932, 23626, 40182, 33515, 23493, [12195, 37193], 28702,
+    22136, 23663, 24775, 25958, 27788, 35930, 36929, 38931, 21585, 26311,
+    37389, 22856, 37027, 20869, 20045, 20970, 34201, 35598, 28760, 25466,
+    37707, 26978, 39348, 32260, 30071, 21335, 26976, 36575, 38627, 27741,
+    [12038, 20108], 23612, 24336, 36841, 21250, 36049, [12161, 32905], 34425,
+    24319, [12103, 26085], 20083, [12042, 20837], 22914, 23615, 38894, 20219,
+    22922, 24525, 35469, 28641, 31152, 31074, 23527, 33905, 29483, 29105,
+    24180, 24565, 25467, 25754, 29123, 31896, 20035, 24316, 20043, 22492,
+    22178, 24745, 28611, 32013, 33021, 33075, 33215, 36786, 35223, 34468,
+    24052, 25226, 25773, 35207, 26487, 27874, 27966, 29750, 30772, 23110,
+    32629, 33453, [12218, 39340], 20467, 24259, 25309, 25490, 25943, 26479,
+    30403, 29260, 32972, 32954, 36649, 37197, 20493, 22521, 23186, 26757,
+    26995, 29028, 29437, 36023, 22770, 36064, 38506, 36889, 34687, 31204,
+    30695, 33833, 20271, 21093, 21338, 25293, 26575, 27850, [12137, 30333],
+    31636, 31893, 33334, 34180, 36843, 26333, 28448, 29190, 32283, 33707,
+    39361, [12008, 40614], 20989, 31665, 30834, 31672, 32903, 31560, 27368,
+    24161, 32908, 30033, 30048, [12043, 20843], 37474, 28300, 30330, 37271,
+    39658, 20240, 32624, 25244, 31567, 38309, 40169, 22138, 22617, 34532,
+    38588, 20276, 21028, 21322, 21453, 21467, 24070, 25644, 26001, 26495,
+    27710, 27726, 29256, 29359, 29677, 30036, 32321, 33324, 34281, 36009,
+    31684, [12196, 37318], 29033, 38930, 39151, 25405, 26217, 30058, 30436,
+    30928, 34115, 34542, 21290, 21329, 21542, 22915, 24199, 24444, 24754,
+    25161, 25209, 25259, 26000, [12112, 27604], 27852, 30130, [12138, 30382],
+    30865, 31192, 32203, 32631, 32933, 34987, 35513, 36027, 36991,
+    [12206, 38750], [12214, 39131], 27147, 31800, 20633, 23614, 24494, 26503,
+    27608, 29749, 30473, 32654, [12240, 40763], 26570, 31255, 21305,
+    [12134, 30091], 39661, 24422, 33181, 33777, 32920, 24380, 24517, 30050,
+    31558, 36924, 26727, 23019, 23195, 32016, 30334, 35628, 20469, 24426,
+    27161, 27703, 28418, 29922, 31080, 34920, 35413, 35961, 24287, 25551,
+    30149, 31186, 33495, 37672, 37618, 33948, 34541, 39981, 21697, 24428,
+    25996, 27996, 28693, 36007, 36051, 38971, 25935, 29942, 19981, 20184,
+    22496, 22827, 23142, 23500, 20904, 24067, 24220, 24598, 25206, 25975,
+    26023, 26222, 28014, [12119, 29238], 31526, 33104, 33178, 33433, 35676,
+    36000, 36070, 36212, [12201, 38428], 38468, 20398, 25771, 27494, 33310,
+    33889, 34154, 37096, 23553, 26963, [12213, 39080], 33914, 34135, 20239,
+    21103, 24489, 24133, 26381, 31119, 33145, 35079, 35206, 28149, 24343,
+    25173, 27832, 20175, 29289, 39826, 20998, 21563, 22132, 22707, 24996,
+    25198, 28954, 22894, 31881, 31966, 32027, 38640, [12098, 25991], 32862,
+    19993, 20341, 20853, 22592, 24163, 24179, 24330, 26564, 20006, 34109,
+    38281, 38491, [12150, 31859], [12212, 38913], 20731, 22721, 30294, 30887,
+    21029, 30629, 34065, 31622, 20559, 22793, [12122, 29255], 31687, 32232,
+    36794, 36820, 36941, 20415, 21193, 23081, 24321, 38829, 20445, 33303,
+    37610, 22275, 25429, 27497, 29995, 35036, 36628, 31298, 21215, 22675,
+    24917, 25098, 26286, [11935, 27597], 31807, 33769, 20515, 20472, 21253,
+    21574, 22577, 22857, 23453, 23792, 23791, 23849, 24214, 25265, 25447,
+    25918, [12101, 26041], 26379, 27861, 27873, 28921, 30770, 32299, 32990,
+    33459, 33804, 34028, 34562, 35090, 35370, 35914, 37030, 37586, 39165,
+    40179, 40300, 20047, 20129, 20621, 21078, 22346, 22952, 24125,
+    {f: 2, c: 24536}, 25151, 26292, 26395, 26576, 26834, 20882, 32033, 32938,
+    33192, 35584, 35980, 36031, 37502, 38450, 21536, 38956, 21271, 20693,
+    [12056, 21340], 22696, 25778, 26420, 29287, 30566, 31302, 37350, 21187,
+    27809, 27526, 22528, 24140, 22868, 26412, 32763, 20961, 30406, 25705,
+    30952, 39764, [12231, 40635], 22475, 22969, 26151, 26522, 27598, 21737,
+    27097, 24149, 33180, 26517, 39850, 26622, 40018, 26717, 20134, 20451,
+    [12060, 21448], 25273, 26411, 27819, 36804, 20397, 32365, 40639, 19975,
+    24930, 28288, 28459, 34067, 21619, 26410, 39749, [11922, 24051], 31637,
+    23724, 23494, 34588, 28234, 34001, 31252, 33032, 22937, 31885,
+    [11936, 27665], 30496, 21209, 22818, 28961, 29279, [12141, 30683], 38695,
+    40289, 26891, 23167, 23064, 20901, 21517, 21629, 26126, 30431, 36855,
+    37528, 40180, 23018, 29277, 28357, 20813, 26825, 32191, 32236,
+    [12207, 38754], 40634, 25720, 27169, 33538, 22916, 23391, [12113, 27611],
+    29467, 30450, 32178, 32791, 33945, 20786, [12106, 26408], 40665,
+    [12140, 30446], 26466, 21247, 39173, 23588, 25147, 31870, 36016, 21839,
+    24758, 32011, [12200, 38272], 21249, 20063, 20918, 22812, 29242, 32822,
+    37326, 24357, [12142, 30690], 21380, 24441, 32004, 34220, 35379, 36493,
+    38742, 26611, 34222, 37971, 24841, 24840, 27833, 30290, 35565, 36664,
+    21807, 20305, 20778, 21191, 21451, 23461, 24189, 24736, 24962, 25558,
+    26377, 26586, 28263, 28044, {f: 2, c: 29494}, 30001, 31056, 35029, 35480,
+    36938, [12194, 37009], 37109, 38596, 34701, [12067, 22805], 20104, 20313,
+    19982, 35465, 36671, 38928, 20653, 24188, 22934, 23481, 24248, 25562,
+    25594, 25793, 26332, 26954, 27096, 27915, 28342, 29076, [12132, 29992],
+    31407, [12154, 32650], 32768, 33865, 33993, 35201, 35617, 36362, 36965,
+    38525, 39178, 24958, 25233, 27442, 27779, 28020, 32716, 32764, 28096,
+    32645, 34746, 35064, 26469, 33713, 38972, 38647, 27931, 32097, 33853,
+    37226, 20081, 21365, 23888, 27396, 28651, 34253, 34349, 35239, 21033,
+    21519, 23653, 26446, 26792, 29702, 29827, 30178, 35023, 35041,
+    [12197, 37324], 38626, 38520, 24459, 29575, [12148, 31435], 33870, 25504,
+    30053, 21129, 27969, 28316, 29705, 30041, 30827, 31890, 38534,
+    [12015, 31452], [12243, 40845], 20406, 24942, 26053, 34396, 20102, 20142,
+    20698, 20001, 20940, 23534, 26009, 26753, 28092, 29471, 30274, 30637,
+    31260, 31975, 33391, 35538, 36988, 37327, 38517, 38936, [12050, 21147],
+    32209, 20523, 21400, 26519, 28107, 29136, 29747, 33256, 36650, 38563,
+    40023, 40607, 29792, 22593, 28057, 32047, 39006, 20196, 20278, 20363,
+    20919, 21169, 23994, 24604, 29618, 31036, 33491, 37428, 38583, 38646,
+    38666, 40599, 40802, 26278, 27508, 21015, 21155, 28872, 35010, 24265,
+    24651, 24976, 28451, 29001, 31806, 32244, 32879, 34030, 36899, 37676,
+    21570, 39791, 27347, 28809, 36034, 36335, 38706, 21172, 23105, 24266,
+    24324, 26391, 27004, 27028, 28010, 28431, 29282, 29436, 31725,
+    [12156, 32769], 32894, 34635, 37070, 20845, 40595, 31108, 32907, 37682,
+    35542, 20525, 21644, 35441, 27498, 36036, 33031, 24785, 26528, 40434,
+    20121, 20120, 39952, 35435, 34241, 34152, 26880, 28286, 30871, 33109,
+    24332, 19984, 19989, 20010, 20017, [12034, 20022], 20028, [12035, 20031],
+    20034, 20054, 20056, 20098, [12037, 20101], 35947, 20106, 33298, 24333,
+    20110, {f: 2, c: 20126}, [12039, 20128], 20130, 20144, 20147, 20150, 20174,
+    20173, 20164, 20166, 20162, 20183, 20190, 20205, 20191, 20215, 20233,
+    20314, 20272, 20315, 20317, 20311, 20295, 20342, 20360, 20367, 20376,
+    20347, 20329, 20336, 20369, 20335, 20358, 20374, 20760, 20436, 20447,
+    20430, 20440, 20443, 20433, 20442, 20432, {f: 2, c: 20452}, 20506, 20520,
+    20500, 20522, 20517, 20485, 20252, 20470, 20513, 20521, 20524, 20478,
+    20463, 20497, 20486, 20547, 20551, 26371, 20565, 20560, 20552, 20570,
+    20566, 20588, 20600, 20608, 20634, 20613, 20660, 20658, {f: 2, c: 20681},
+    20659, 20674, 20694, 20702, 20709, 20717, 20707, 20718, 20729, 20725,
+    20745, {f: 2, c: 20737}, 20758, 20757, 20756, 20762, 20769, 20794, 20791,
+    20796, 20795, [12041, 20799], [11918, 20800], 20818, 20812, 20820, 20834,
+    31480, {f: 2, c: 20841}, 20846, 20864, [12044, 20866], 22232, 20876, 20873,
+    20879, 20881, 20883, 20885, [12045, 20886], 20900, 20902, 20898,
+    {f: 2, c: 20905}, [12046, 20907], 20915, {f: 2, c: 20913}, 20912, 20917,
+    20925, 20933, 20937, 20955, [12047, 20960], 34389, 20969, 20973, 20976,
+    [12048, 20981], 20990, 20996, 21003, 21012, 21006, 21031, 21034, 21038,
+    21043, 21049, 21071, 21060, {f: 2, c: 21067}, 21086, 21076, 21098, 21108,
+    21097, 21107, 21119, 21117, 21133, 21140, 21138, 21105, 21128, 21137,
+    36776, 36775, {f: 2, c: 21164}, 21180, 21173, 21185, 21197, 21207, 21214,
+    21219, 21222, 39149, 21216, 21235, 21237, 21240, [12051, 21241], 21254,
+    21256, 30008, 21261, 21264, 21263, [12052, 21269], [12053, 21274], 21283,
+    21295, 21297, 21299, [12054, 21304], 21312, 21318, 21317, 19991, 21321,
+    21325, 20950, 21342, [12057, 21353], 21358, 22808, 21371, 21367,
+    [12058, 21378], 21398, 21408, 21414, 21413, 21422, 21424, [12059, 21430],
+    21443, 31762, 38617, 21471, 26364, 29166, 21486, 21480, 21485, 21498,
+    21505, 21565, 21568, {f: 2, c: 21548}, 21564, 21550, 21558, 21545, 21533,
+    21582, 21647, 21621, 21646, 21599, 21617, 21623, 21616, 21650, 21627,
+    21632, 21622, 21636, 21648, 21638, 21703, 21666, 21688, 21669, 21676,
+    21700, 21704, 21672, 21675, 21698, 21668, 21694, 21692, 21720,
+    {f: 2, c: 21733}, 21775, 21780, 21757, 21742, 21741, 21754, 21730, 21817,
+    21824, 21859, 21836, 21806, 21852, 21829, {f: 2, c: 21846}, 21816, 21811,
+    21853, 21913, 21888, 21679, 21898, 21919, 21883, 21886, 21912, 21918,
+    21934, 21884, 21891, 21929, 21895, 21928, 21978, 21957, 21983, 21956,
+    21980, 21988, 21972, 22036, 22007, 22038, 22014, 22013, 22043, 22009,
+    22094, 22096, 29151, 22068, 22070, 22066, 22072, 22123, 22116, 22063,
+    22124, 22122, 22150, 22144, 22154, 22176, 22164, 22159, 22181, 22190,
+    22198, 22196, 22210, 22204, 22209, 22211, 22208, 22216, 22222, 22225,
+    22227, [12062, 22231], 22254, 22265, 22272, 22271, 22276, 22281, 22280,
+    22283, 22285, 22291, 22296, 22294, 21959, 22300, 22310, {f: 2, c: 22327},
+    22350, 22331, 22336, 22351, 22377, 22464, 22408, 22369, 22399, 22409,
+    22419, 22432, 22451, 22436, 22442, 22448, 22467, 22470, 22484,
+    {f: 2, c: 22482}, 22538, 22486, 22499, 22539, 22553, 22557, 22642, 22561,
+    22626, 22603, 22640, 27584, 22610, 22589, 22649, 22661, 22713, 22687,
+    22699, 22714, 22750, 22715, 22712, 22702, 22725, 22739, 22737, 22743,
+    22745, 22744, 22757, 22748, 22756, 22751, 22767, 22778, 22777,
+    {f: 3, c: 22779}, [12065, 22786], [12066, 22794], 22800, 22811, 26790,
+    22821, {f: 2, c: 22828}, 22834, 22840, 22846, 31442, 22869, 22864, 22862,
+    22874, 22872, 22882, 22880, 22887, 22892, 22889, 22904, 22913, 22941,
+    20318, 20395, 22947, 22962, 22982, 23016, 23004, 22925, {f: 2, c: 23001},
+    23077, 23071, 23057, 23068, 23049, 23066, 23104, 23148, 23113,
+    {f: 2, c: 23093}, 23138, 23146, 23194, 23228, 23230, 23243, 23234, 23229,
+    23267, 23255, 23270, 23273, 23254, {f: 2, c: 23290}, 23308, 23307, 23318,
+    23346, 23248, 23338, 23350, 23358, 23363, 23365, 23360, 23377, 23381,
+    {f: 2, c: 23386}, 23397, 23401, 23408, 23411, 23413, 23416, 25992, 23418,
+    [12071, 23424], 23427, 23462, 23480, 23491, 23495, 23497, 23508, 23504,
+    23524, 23526, 23522, 23518, 23525, 23531, 23536, 23542, 23539, 23557,
+    {f: 2, c: 23559}, 23565, 23571, 23584, [11920, 12074, 23586], 23592,
+    [12075, 23608], 23609, 23617, 23622, 23630, 23635, 23632, 23631, 23409,
+    23660, [12076, 23662], 20066, 23670, 23673, 23692, 23697, 23700, 22939,
+    23723, 23739, 23734, 23740, 23735, 23749, 23742, 23751, 23769, 23785,
+    23805, 23802, 23789, 23948, 23786, 23819, 23829, 23831, 23900, 23839,
+    23835, 23825, 23828, 23842, 23834, 23833, 23832, 23884, 23890, 23886,
+    23883, 23916, 23923, 23926, 23943, 23940, 23938, 23970, 23965, 23980,
+    23982, 23997, 23952, 23991, 23996, 24009, 24013, 24019, 24018, 24022,
+    [12078, 24027], 24043, 24050, 24053, 24075, 24090, 24089, 24081, 24091,
+    {f: 2, c: 24118}, 24132, 24131, 24128, 24142, 24151, 24148, 24159, 24162,
+    24164, 24135, {f: 2, c: 24181}, [11923, 12083, 24186], 40636,
+    [12084, 24191], 24224, {f: 2, c: 24257}, 24264, 24272, 24271, 24278, 24291,
+    24285, {f: 2, c: 24282}, 24290, 24289, {f: 2, c: 24296}, 24300, 24305,
+    24307, 24304, [12085, 24308], 24312, [12086, 24318], 24323, 24329, 24413,
+    24412, [12087, 24331], 24337, 24342, 24361, 24365, 24376, 24385, 24392,
+    24396, 24398, 24367, [11924, 24401], {f: 2, c: 24406}, 24409,
+    [12090, 24417], 24429, [12091, 24435], 24439, 24451, 24450, 24447, 24458,
+    24456, 24465, 24455, 24478, 24473, 24472, 24480, 24488, 24493, 24508,
+    24534, 24571, 24548, 24568, 24561, 24541, 24755, 24575, 24609, 24672,
+    24601, 24592, 24617, 24590, 24625, 24603, 24597, 24619, 24614, 24591,
+    24634, 24666, 24641, 24682, 24695, 24671, 24650, 24646, 24653, 24675,
+    24643, 24676, 24642, 24684, 24683, 24665, 24705, 24717, 24807, 24707,
+    24730, 24708, 24731, {f: 2, c: 24726}, 24722, 24743, 24715, 24801, 24760,
+    24800, 24787, 24756, 24560, 24765, 24774, 24757, 24792, 24909, 24853,
+    24838, {f: 2, c: 24822}, 24832, 24820, 24826, 24835, 24865, 24827, 24817,
+    {f: 2, c: 24845}, 24903, 24894, 24872, 24871, 24906, 24895, 24892, 24876,
+    24884, 24893, 24898, 24900, 24947, 24951, {f: 3, c: 24920}, 24939, 24948,
+    24943, 24933, 24945, 24927, 24925, 24915, 24949, 24985, 24982, 24967,
+    25004, 24980, 24986, 24970, 24977, 25003, 25006, 25036, 25034, 25033,
+    25079, 25032, 25027, 25030, 25018, 25035, 32633, 25037, 25062, 25059,
+    25078, 25082, 25076, 25087, 25085, 25084, 25086, 25088, [12093, 25096],
+    25097, 25101, 25100, 25108, 25115, 25118, 25121, 25130, 25134, 25136,
+    {f: 2, c: 25138}, 25153, 25166, 25182, 25187, 25179, 25184, 25192, 25212,
+    25218, 25225, 25214, {f: 2, c: 25234}, 25238, 25300, 25219, 25236, 25303,
+    25297, 25275, 25295, 25343, 25286, 25812, 25288, 25308, 25292, 25290,
+    25282, 25287, 25243, 25289, 25356, 25326, 25329, 25383, 25346, 25352,
+    25327, 25333, 25424, 25406, 25421, 25628, 25423, 25494, 25486, 25472,
+    25515, 25462, 25507, 25487, 25481, 25503, 25525, 25451, 25449, 25534,
+    25577, 25536, 25542, 25571, 25545, 25554, 25590, 25540, 25622, 25652,
+    25606, 25619, 25638, 25654, 25885, 25623, 25640, 25615, 25703, 25711,
+    25718, 25678, 25898, 25749, 25747, 25765, 25769, 25736, 25788, 25818,
+    25810, 25797, 25799, 25787, 25816, 25794, 25841, 25831, 33289,
+    {f: 2, c: 25824}, 25260, 25827, 25839, 25900, 25846, 25844, 25842, 25850,
+    25856, 25853, 25880, 25884, 25861, 25892, 25891, 25899, [12097, 25908],
+    [11929, 25909], 25911, 25910, 25912, 30027, 25928, 25942, 25941, 25933,
+    25944, 25950, 25949, 25970, 25976, {f: 2, c: 25986}, 35722, 26011, 26015,
+    26027, 26039, 26051, 26054, 26049, 26052, 26060, 26066, 26075, 26073,
+    [12102, 26080], [11931, 26081], 26097, 26482, 26122, 26115, 26107, 26483,
+    {f: 2, c: 26165}, 26164, 26140, 26191, 26180, 26185, 26177, 26206, 26205,
+    26212, {f: 2, c: 26215}, 26207, 26210, 26224, 26243, 26248, 26254, 26249,
+    26244, 26264, 26269, 26305, 26297, 26313, 26302, 26300, 26308, 26296,
+    26326, 26330, 26336, 26175, 26342, 26345, [12104, 26352], 26357, 26359,
+    26383, 26390, 26398, {f: 2, c: 26406}, 38712, 26414, 26431, 26422, 26433,
+    26424, 26423, 26438, 26462, 26464, 26457, {f: 2, c: 26467}, 26505, 26480,
+    26537, 26492, 26474, 26508, 26507, 26534, 26529, 26501, 26551, 26607,
+    26548, 26604, 26547, 26601, 26552, 26596, 26590, 26589, 26594, 26606,
+    26553, 26574, 26566, 26599, 27292, 26654, 26694, 26665, 26688, 26701,
+    26674, 26702, 26803, 26667, 26713, 26723, 26743, 26751, 26783, 26767,
+    26797, 26772, 26781, 26779, 26755, 27310, 26809, 26740, 26805, 26784,
+    26810, 26895, 26765, 26750, 26881, 26826, 26888, 26840, 26914, 26918,
+    26849, 26892, 26829, 26836, 26855, 26837, 26934, 26898, 26884, 26839,
+    26851, 26917, 26873, 26848, 26863, 26920, 26922, 26906, 26915, 26913,
+    26822, 27001, 26999, 26972, 27000, 26987, 26964, 27006, 26990, 26937,
+    26996, 26941, 26969, 26928, 26977, 26974, 26973, 27009, 26986, 27058,
+    27054, 27088, 27071, 27073, 27091, 27070, 27086, 23528, 27082, 27101,
+    27067, 27075, 27047, 27182, 27025, 27040, 27036, 27029, 27060, 27102,
+    27112, 27138, 27163, 27135, 27402, 27129, 27122, 27111, 27141, 27057,
+    27166, 27117, 27156, 27115, 27146, 27154, 27329, 27171, 27155, 27204,
+    27148, 27250, 27190, 27256, 27207, 27234, 27225, 27238, 27208, 27192,
+    27170, 27280, 27277, 27296, 27268, {f: 2, c: 27298}, 27287, 34327, 27323,
+    27331, 27330, 27320, 27315, 27308, 27358, 27345, 27359, 27306, 27354,
+    27370, 27387, 27397, 34326, 27386, 27410, 27414, 39729, 27423, 27448,
+    27447, 30428, 27449, 39150, 27463, 27459, 27465, 27472, 27481, 27476,
+    27483, 27487, 27489, 27512, [12109, 27513], {f: 2, c: 27519}, 27524, 27523,
+    27533, 27544, 27541, 27550, 27556, {f: 2, c: 27562}, 27567, 27570, 27569,
+    [12110, 27571], 27575, 27580, 27590, [12111, 27595], 27603, 27615, 27628,
+    27627, 27635, 27631, 40638, 27656, 27667, [12115, 27668], 27675, 27684,
+    27683, 27742, 27733, 27746, 27754, 27778, 27789, 27802, 27777, 27803,
+    27774, 27752, 27763, 27794, 27792, 27844, 27889, 27859, 27837, 27863,
+    27845, 27869, 27822, 27825, 27838, 27834, 27867, 27887, 27865, 27882,
+    27935, 34893, 27958, 27947, 27965, 27960, 27929, 27957, 27955, 27922,
+    27916, 28003, 28051, 28004, 27994, 28025, 27993, 28046, 28053, 28644,
+    28037, 28153, 28181, 28170, 28085, 28103, 28134, 28088, 28102, 28140,
+    28126, 28108, 28136, 28114, 28101, 28154, 28121, 28132, 28117, 28138,
+    28142, 28205, 28270, 28206, 28185, 28274, 28255, 28222, 28195, 28267,
+    28203, 28278, 28237, 28191, 28227, 28218, 28238, 28196, 28415, 28189,
+    28216, 28290, 28330, 28312, 28361, 28343, 28371, 28349, 28335, 28356,
+    28338, {f: 2, c: 28372}, 28303, 28325, 28354, 28319, 28481, 28433, 28748,
+    28396, 28408, 28414, 28479, 28402, 28465, 28399, 28466, 28364, 28478,
+    28435, 28407, 28550, 28538, 28536, 28545, 28544, 28527, 28507, 28659,
+    28525, 28546, 28540, 28504, 28558, 28561, 28610, 28518, 28595, 28579,
+    28577, 28580, 28601, 28614, 28586, 28639, 28629, 28652, 28628, 28632,
+    28657, 28654, 28635, 28681, 28683, 28666, 28689, 28673, 28687, 28670,
+    28699, 28698, 28532, 28701, 28696, 28703, 28720, 28734, 28722, 28753,
+    28771, 28825, 28818, 28847, 28913, 28844, 28856, 28851, 28846, 28895,
+    28875, 28893, 28889, 28937, 28925, 28956, 28953, 29029, 29013, 29064,
+    29030, 29026, 29004, 29014, 29036, 29071, 29179, 29060, 29077, 29096,
+    29100, 29143, 29113, 29118, 29138, 29129, 29140, 29134, 29152, 29164,
+    29159, 29173, 29180, 29177, 29183, 29197, 29200, 29211, 29224, 29229,
+    29228, 29232, 29234, [12120, 29243], 29244, [12121, 29247], 29248, 29254,
+    29259, 29272, 29300, 29310, 29314, 29313, 29319, 29330, 29334, 29346,
+    29351, 29369, 29362, 29379, 29382, 29380, 29390, 29394, 29410,
+    {f: 2, c: 29408}, 29433, 29431, 20495, 29463, 29450, 29468, 29462, 29469,
+    29492, 29487, 29481, 29477, 29502, {f: 2, c: 29518}, 40664, 29527, 29546,
+    29544, 29552, 29560, 29557, 29563, 29562, 29640, 29619, 29646, 29627,
+    29632, 29669, 29678, 29662, 29858, 29701, 29807, 29733, 29688, 29746,
+    29754, 29781, 29759, 29791, 29785, 29761, 29788, 29801, 29808, 29795,
+    29802, 29814, 29822, 29835, 29854, 29863, 29898, 29903, 29908, 29681,
+    29920, 29923, 29927, 29929, 29934, 29938, {f: 2, c: 29936}, 29944, 29943,
+    29956, 29955, 29957, 29964, 29966, 29965, 29973, 29971, 29982, 29990,
+    29996, 30012, 30020, 30029, 30026, 30025, 30043, 30022, 30042, 30057,
+    30052, 30055, 30059, 30061, 30072, 30070, {f: 2, c: 30086}, 30068, 30090,
+    30089, 30082, 30100, 30106, 30109, 30117, 30115, 30146, 30131, 30147,
+    30133, 30141, 30136, 30140, 30129, 30157, 30154, 30162, 30169, 30179,
+    30174, {f: 2, c: 30206}, 30204, 30209, 30192, 30202, {f: 2, c: 30194},
+    30219, 30221, 30217, 30239, 30247, {f: 3, c: 30240}, 30244, 30260, 30256,
+    30267, {f: 2, c: 30279}, 30278, 30300, 30296, {f: 2, c: 30305},
+    {f: 3, c: 30312}, 30311, 30316, 30320, 30322, [12136, 30326], 30328, 30332,
+    30336, 30339, 30344, 30347, 30350, 30358, 30355, {f: 2, c: 30361}, 30384,
+    30388, {f: 3, c: 30392}, 30402, 30413, 30422, 30418, 30430, 30433, 30437,
+    30439, 30442, 34351, 30459, 30472, 30471, 30468, 30505, 30500, 30494,
+    {f: 2, c: 30501}, 30491, {f: 2, c: 30519}, 30535, 30554, 30568, 30571,
+    30555, 30565, 30591, 30590, 30585, 30606, 30603, 30609, 30624, 30622,
+    30640, 30646, 30649, 30655, {f: 2, c: 30652}, 30651, 30663, 30669, 30679,
+    30682, 30684, 30691, 30702, 30716, 30732, 30738, 31014, 30752, 31018,
+    30789, 30862, 30836, 30854, 30844, 30874, 30860, 30883, 30901, 30890,
+    30895, 30929, 30918, 30923, 30932, 30910, 30908, 30917, 30922, 30956,
+    30951, 30938, 30973, 30964, 30983, 30994, 30993, 31001, 31020, 31019,
+    31040, 31072, 31063, 31071, 31066, 31061, 31059, 31098, 31103, 31114,
+    31133, 31143, 40779, 31146, 31150, 31155, {f: 2, c: 31161}, 31177, 31189,
+    31207, 31212, 31201, 31203, 31240, 31245, {f: 2, c: 31256}, 31264, 31263,
+    31104, 31281, 31291, 31294, 31287, 31299, 31319, 31305, {f: 2, c: 31329},
+    31337, 40861, 31344, 31353, 31357, 31368, 31383, 31381, 31384, 31382,
+    31401, 31432, 31408, 31414, 31429, 31428, 31423, 36995, 31431, 31434,
+    31437, 31439, 31445, 31443, {f: 2, c: 31449}, 31453, {f: 2, c: 31457},
+    31462, 31469, 31472, 31490, 31503, 31498, 31494, 31539, {f: 2, c: 31512},
+    31518, 31541, 31528, 31542, 31568, 31610, 31492, 31565, 31499, 31564,
+    31557, 31605, 31589, 31604, 31591, {f: 2, c: 31600}, 31596, 31598, 31645,
+    31640, 31647, 31629, 31644, 31642, 31627, 31634, 31631, 31581, 31641,
+    31691, 31681, 31692, 31695, 31668, 31686, 31709, 31721, 31761, 31764,
+    31718, 31717, 31840, 31744, 31751, 31763, 31731, 31735, 31767, 31757,
+    31734, 31779, 31783, 31786, 31775, 31799, 31787, 31805, 31820, 31811,
+    31828, 31823, 31808, 31824, 31832, 31839, 31844, 31830, 31845, 31852,
+    31861, 31875, 31888, 31908, 31917, 31906, 31915, 31905, 31912, 31923,
+    31922, 31921, 31918, 31929, 31933, 31936, 31941, 31938, 31960, 31954,
+    31964, 31970, 39739, 31983, 31986, 31988, 31990, 31994, 32006, 32002,
+    32028, 32021, 32010, 32069, 32075, 32046, 32050, 32063, 32053, 32070,
+    32115, 32086, 32078, 32114, 32104, 32110, 32079, 32099, 32147, 32137,
+    32091, 32143, 32125, 32155, 32186, 32174, 32163, 32181, 32199, 32189,
+    32171, 32317, 32162, 32175, 32220, 32184, 32159, 32176, 32216, 32221,
+    32228, 32222, 32251, 32242, 32225, 32261, 32266, 32291, 32289, 32274,
+    32305, 32287, 32265, 32267, 32290, 32326, 32358, 32315, 32309, 32313,
+    32323, 32311, 32306, 32314, 32359, 32349, 32342, 32350, {f: 2, c: 32345},
+    32377, 32362, 32361, 32380, 32379, 32387, 32213, 32381, 36782, 32383,
+    {f: 2, c: 32392}, 32396, 32402, 32400, {f: 2, c: 32403}, 32406, 32398,
+    {f: 2, c: 32411}, 32568, 32570, 32581, {f: 3, c: 32588}, 32592,
+    [12153, 32593], 32597, 32596, 32600, {f: 2, c: 32607}, {f: 2, c: 32616},
+    32615, 32632, 32642, 32646, 32643, 32648, 32647, 32652, 32660, 32670,
+    32669, 32666, 32675, 32687, 32690, 32697, 32686, 32694, 32696, 35697,
+    {f: 2, c: 32709}, 32714, 32725, 32724, 32737, 32742, 32745, 32755, 32761,
+    39132, 32774, 32772, 32779, [12158, 32786], {f: 2, c: 32792}, 32796, 32801,
+    32808, 32831, 32827, 32842, 32838, 32850, 32856, 32858, 32863, 32866,
+    32872, 32883, 32882, 32880, 32886, 32889, 32893, [12160, 32895], 32900,
+    32902, 32901, 32923, 32915, 32922, 32941, 20880, 32940, 32987, 32997,
+    32985, 32989, 32964, 32986, 32982, 33033, 33007, 33009, 33051, 33065,
+    33059, 33071, 33099, 38539, 33094, 33086, 33107, 33105, 33020, 33137,
+    33134, {f: 2, c: 33125}, 33140, 33155, 33160, 33162, 33152, 33154, 33184,
+    33173, 33188, 33187, 33119, 33171, 33193, 33200, 33205, 33214, 33208,
+    33213, 33216, 33218, 33210, 33225, 33229, 33233, 33241, 33240, 33224,
+    33242, {f: 2, c: 33247}, 33255, {f: 2, c: 33274}, 33278, {f: 2, c: 33281},
+    33285, 33287, 33290, 33293, 33296, 33302, 33321, 33323, 33336, 33331,
+    33344, 33369, 33368, 33373, 33370, 33375, 33380, 33378, 33384,
+    {f: 2, c: 33386}, 33326, 33393, 33399, [12171, 33400], 33406, 33421, 33426,
+    33451, 33439, 33467, 33452, 33505, 33507, 33503, 33490, 33524, 33523,
+    33530, 33683, 33539, 33531, 33529, 33502, 33542, 33500, 33545, 33497,
+    33589, 33588, 33558, 33586, 33585, 33600, 33593, 33616, 33605, 33583,
+    33579, {f: 2, c: 33559}, 33669, 33690, 33706, 33695, 33698, 33686, 33571,
+    33678, 33671, 33674, 33660, 33717, 33651, 33653, 33696, 33673, 33704,
+    33780, 33811, 33771, 33742, 33789, 33795, 33752, 33803, 33729, 33783,
+    33799, 33760, 33778, 33805, 33826, 33824, 33725, 33848, 34054, 33787,
+    33901, 33834, 33852, 34138, 33924, 33911, 33899, 33965, 33902, 33922,
+    33897, 33862, 33836, 33903, 33913, 33845, 33994, 33890, 33977, 33983,
+    33951, 34009, 33997, 33979, 34010, 34000, 33985, 33990, 34006, 33953,
+    34081, 34047, 34036, {f: 2, c: 34071}, 34092, 34079, 34069, 34068, 34044,
+    34112, 34147, 34136, 34120, 34113, 34306, 34123, 34133, 34176, 34212,
+    34184, 34193, 34186, 34216, 34157, 34196, 34203, 34282, 34183, 34204,
+    34167, 34174, 34192, 34249, 34234, 34255, 34233, 34256, 34261, 34269,
+    34277, 34268, 34297, 34314, 34323, 34315, 34302, 34298, 34310, 34338,
+    34330, 34352, 34367, [12172, 34381], 20053, 34388, 34399, 34407, 34417,
+    34451, 34467, {f: 2, c: 34473}, {f: 2, c: 34443}, 34486, 34479, 34500,
+    34502, 34480, 34505, 34851, 34475, 34516, 34526, 34537, 34540, 34527,
+    34523, 34543, 34578, 34566, 34568, 34560, 34563, 34555, 34577, 34569,
+    34573, 34553, 34570, 34612, 34623, 34615, 34619, 34597, 34601, 34586,
+    34656, 34655, 34680, 34636, 34638, 34676, 34647, 34664, 34670, 34649,
+    34643, 34659, 34666, 34821, 34722, 34719, 34690, 34735, 34763, 34749,
+    34752, 34768, 38614, 34731, 34756, 34739, 34759, 34758, 34747, 34799,
+    34802, 34784, 34831, 34829, 34814, {f: 2, c: 34806}, 34830, 34770, 34833,
+    34838, 34837, 34850, 34849, 34865, 34870, 34873, 34855, 34875, 34884,
+    34882, 34898, 34905, 34910, 34914, 34923, 34945, 34942, 34974, 34933,
+    34941, 34997, 34930, 34946, 34967, 34962, 34990, 34969, 34978, 34957,
+    34980, 34992, 35007, 34993, {f: 2, c: 35011}, 35028, {f: 2, c: 35032},
+    35037, 35065, 35074, 35068, 35060, 35048, 35058, 35076, 35084, 35082,
+    35091, 35139, 35102, 35109, {f: 2, c: 35114}, 35137, 35140, 35131, 35126,
+    35128, 35148, 35101, 35168, 35166, 35174, 35172, 35181, 35178, 35183,
+    35188, 35191, [12177, 35198], 35203, 35208, 35210, 35219, 35224, 35233,
+    35241, 35238, 35244, 35247, 35250, 35258, 35261, {f: 2, c: 35263}, 35290,
+    {f: 2, c: 35292}, 35303, 35316, 35320, 35331, 35350, 35344, 35340, 35355,
+    35357, 35365, 35382, 35393, 35419, 35410, 35398, 35400, 35452, 35437,
+    35436, 35426, 35461, 35458, 35460, 35496, 35489, 35473, {f: 2, c: 35493},
+    35482, 35491, 35524, 35533, 35522, 35546, 35563, 35571, 35559, 35556,
+    35569, 35604, 35552, 35554, 35575, 35550, 35547, 35596, 35591, 35610,
+    35553, 35606, 35600, 35607, 35616, 35635, 38827, 35622, 35627, 35646,
+    35624, 35649, 35660, 35663, 35662, 35657, 35670, 35675, 35674, 35691,
+    35679, 35692, 35695, 35700, 35709, 35712, 35724, 35726, {f: 2, c: 35730},
+    35734, {f: 2, c: 35737}, 35898, 35905, 35903, 35912, 35916, 35918, 35920,
+    [12183, 35925], 35938, 35948, [12184, 35960], 35962, 35970, 35977, 35973,
+    35978, {f: 2, c: 35981}, 35988, 35964, 35992, 25117, 36013, 36010, 36029,
+    {f: 2, c: 36018}, 36014, 36022, 36040, 36033, 36068, 36067, 36058, 36093,
+    {f: 2, c: 36090}, {f: 2, c: 36100}, 36106, 36103, 36111, 36109, 36112,
+    40782, 36115, 36045, 36116, 36118, 36199, 36205, 36209, 36211, 36225,
+    36249, 36290, 36286, 36282, 36303, 36314, 36310, 36300, 36315, 36299,
+    {f: 2, c: 36330}, 36319, 36323, 36348, {f: 2, c: 36360}, 36351,
+    {f: 2, c: 36381}, 36368, 36383, 36418, 36405, 36400, 36404, 36426, 36423,
+    36425, 36428, 36432, 36424, 36441, 36452, 36448, 36394, 36451, 36437,
+    36470, 36466, 36476, 36481, 36487, 36485, 36484, 36491, 36490, 36499,
+    36497, 36500, 36505, 36522, 36513, 36524, 36528, 36550, 36529, 36542,
+    36549, 36552, 36555, 36571, 36579, 36604, 36603, 36587, 36606, 36618,
+    36613, 36629, 36626, 36633, 36627, 36636, 36639, 36635, 36620, 36646,
+    36659, 36667, 36665, 36677, 36674, 36670, 36684, 36681, 36678, 36686,
+    36695, 36700, {f: 3, c: 36706}, 36764, 36767, 36771, 36781, 36783, 36791,
+    36826, 36837, 36834, 36842, 36847, 36999, 36852, 36869, {f: 2, c: 36857},
+    36881, 36885, 36897, 36877, 36894, 36886, 36875, 36903, 36918, 36917,
+    36921, 36856, {f: 4, c: 36943}, 36878, 36937, 36926, 36950, 36952, 36958,
+    36968, 36975, 36982, 38568, 36978, 36994, 36989, 36993, 36992, 37002,
+    37001, 37007, 37032, 37039, 37041, 37045, 37090, 37092, 25160, 37083,
+    37122, 37138, 37145, 37170, 37168, 37194, 37206, 37208, 37219, 37221,
+    37225, 37235, 37234, 37259, 37257, 37250, 37282, 37291, 37295, 37290,
+    37301, 37300, 37306, {f: 2, c: 37312}, 37321, 37323, 37328, 37334, 37343,
+    37345, 37339, 37372, {f: 2, c: 37365}, 37406, 37375, 37396, 37420, 37397,
+    37393, 37470, 37463, 37445, 37449, 37476, 37448, 37525, 37439, 37451,
+    37456, 37532, 37526, 37523, 37531, 37466, 37583, 37561, 37559, 37609,
+    37647, 37626, 37700, 37678, 37657, 37666, 37658, 37667, 37690, 37685,
+    37691, 37724, 37728, 37756, 37742, 37718, 37808, {f: 2, c: 37804}, 37780,
+    37817, {f: 2, c: 37846}, 37864, 37861, 37848, 37827, 37853, 37840, 37832,
+    37860, 37914, 37908, 37907, 37891, 37895, 37904, 37942, 37931, 37941,
+    37921, 37946, 37953, 37970, 37956, 37979, 37984, 37986, 37982, 37994,
+    37417, 38000, 38005, 38007, 38013, 37978, 38012, 38014, 38017, 38015,
+    38274, 38279, 38282, 38292, 38294, {f: 2, c: 38296}, 38304, 38312, 38311,
+    38317, 38332, 38331, 38329, 38334, 38346, 28662, 38339, 38349, 38348,
+    38357, 38356, 38358, 38364, 38369, 38373, 38370, 38433, 38440,
+    {f: 2, c: 38446}, 38466, 38476, 38479, 38475, 38519, 38492, 38494, 38493,
+    38495, 38502, 38514, 38508, 38541, 38552, 38549, 38551, 38570, 38567,
+    {f: 2, c: 38577}, 38576, 38580, [12202, 38582], 38584, [12203, 38585],
+    38606, 38603, 38601, 38605, 35149, 38620, 38669, 38613, 38649, 38660,
+    38662, 38664, 38675, 38670, 38673, 38671, 38678, 38681, 38692, 38698,
+    38704, 38713, {f: 2, c: 38717}, 38724, 38726, 38728, 38722, 38729, 38748,
+    38752, 38756, 38758, 38760, 21202, 38763, 38769, 38777, 38789, 38780,
+    38785, 38778, 38790, 38795, {f: 2, c: 38799}, 38812, 38824, 38822, 38819,
+    {f: 2, c: 38835}, 38851, 38854, 38856, [12209, 38859], 38876,
+    [12210, 38893], 40783, 38898, 31455, 38902, 38901, 38927, 38924, 38968,
+    38948, 38945, 38967, 38973, 38982, 38991, 38987, 39019, {f: 3, c: 39023},
+    39028, 39027, 39082, 39087, 39089, 39094, 39108, 39107, 39110, 39145,
+    39147, 39171, 39177, 39186, 39188, 39192, 39201, {f: 2, c: 39197}, 39204,
+    39200, 39212, 39214, {f: 2, c: 39229}, 39234, 39241, 39237, 39248, 39243,
+    {f: 2, c: 39249}, 39244, 39253, {f: 2, c: 39319}, 39333, {f: 2, c: 39341},
+    39356, 39391, 39387, 39389, 39384, 39377, {f: 2, c: 39405},
+    {f: 2, c: 39409}, 39419, 39416, 39425, 39439, 39429, 39394, 39449, 39467,
+    39479, 39493, 39490, 39488, 39491, 39486, 39509, 39501, 39515, 39511,
+    39519, 39522, 39525, 39524, 39529, 39531, 39530, 39597, 39600, 39612,
+    39616, 39631, 39633, {f: 2, c: 39635}, 39646, [12221, 39647],
+    {f: 2, c: 39650}, 39654, 39663, 39659, 39662, 39668, 39665, 39671, 39675,
+    39686, 39704, 39706, 39711, {f: 2, c: 39714}, [12222, 39717],
+    {f: 4, c: 39719}, 39726, [12223, 39727], [12224, 39730], 39748, 39747,
+    39759, {f: 2, c: 39757}, 39761, 39768, 39796, 39827, 39811, 39825,
+    {f: 2, c: 39830}, {f: 2, c: 39839}, 39848, 39860, 39872, 39882, 39865,
+    39878, 39887, {f: 2, c: 39889}, 39907, 39906, 39908, 39892, 39905, 39994,
+    39922, 39921, 39920, 39957, 39956, 39945, 39955, 39948, 39942, 39944,
+    39954, 39946, 39940, 39982, 39963, 39973, 39972, 39969, 39984, 40007,
+    39986, 40006, 39998, 40026, 40032, 40039, 40054, 40056, 40167, 40172,
+    40176, 40201, 40200, 40171, 40195, 40198, 40234, 40230, 40367, 40227,
+    40223, 40260, 40213, 40210, 40257, 40255, 40254, 40262, 40264,
+    {f: 2, c: 40285}, 40292, 40273, 40272, 40281, 40306, 40329, 40327, 40363,
+    40303, 40314, 40346, 40356, 40361, 40370, 40388, 40385, 40379, 40376,
+    40378, 40390, 40399, 40386, 40409, 40403, 40440, 40422, 40429, 40431,
+    40445, {f: 2, c: 40474}, 40478, [12228, 40565], 40569, 40573, 40577, 40584,
+    {f: 2, c: 40587}, 40594, 40597, 40593, 40605, [12230, 40613], 40617, 40632,
+    40618, 40621, 38753, 40652, {f: 3, c: 40654}, 40660, 40668, 40670, 40669,
+    40672, 40677, 40680, 40687, 40692, {f: 2, c: 40694}, [12235, 40697],
+    {f: 2, c: 40699}, [12236, 40701], {f: 2, c: 40711}, 30391, 40725, 40737,
+    40748, 40766, [12241, 40778], [12242, 40786], 40788, 40803,
+    {f: 3, c: 40799}, {f: 2, c: 40806}, 40812, 40810, 40823, 40818, 40822,
+    40853, [12244, 40860], [12245, 40864], 22575, 27079, 36953, 29796, 0,
+    {f: 76, c: 9472}, {f: 20, c: 9312}, {f: 10, c: 8544}, 13129, 13076, 0,
+    13133, 0, 13095, 0, 13110, 13137, 0, 13069, 13094, 0, 13099, 13130, 0,
+    {f: 3, c: 13212}, {f: 2, c: 13198}, 13252, 13217, 12317, 12319, 8470,
+    13261, 0, {f: 5, c: 12964}, {f: 2, c: 12849}, 12857, 13182, 13181, 13180,
+    8750, 8721, {s: 3}, 8735, 8895, 0, 0, 21854, {s: 7}, 167133, 0, 0, 28976,
+    0, 40407, {s: 4}, 64054, 0, 0, 22169, 15694, {s: 4}, 20448, 0, 0, 36544, 0,
+    194797, {s: 4}, 153716, 32363, 33606, 167670, {s: 3}, 40572, 0, 0, 26171,
+    0, 40628, {s: 4}, 26629, {s: 5}, 23650, 0, 194780, 0, 32353, 0, 0, 64070,
+    {s: 5}, 34083, 37292, {s: 7}, 34796, {s: 8}, 25620, 0, 0, 39506, {s: 4},
+    64074, 0, 194692, {s: 4}, 31774, {s: 6}, 64016, 25681, 0, 0, 63980, 22625,
+    39002, 0, 194679, {s: 3}, 31153, 0, 28678, {s: 9}, 22218, {s: 3}, 21085, 0,
+    28497, 37297, {s: 10}, 64106, {s: 6}, 38960, 0, 40629, {s: 9}, 33802,
+    63939, {f: 2, c: 63890}, 63897, 0, 34847, 194575, 0, 194771, 194584,
+    {s: 7}, 137754, 23643, {s: 4}, 25890, 0, 0, 26618, 0, 26766, 0, 148432,
+    194848, {s: 21}, 34110, {s: 15}, 30562, {s: 12}, 65075, 0,
+    {f: 2, c: 65073}, {s: 4}, 65072, {f: 2, c: 65077}, {f: 2, c: 65081}, 0, 0,
+    {f: 2, c: 65079}, {f: 2, c: 65087}, {f: 2, c: 65085}, {f: 4, c: 65089},
+    {f: 2, c: 65083}, {s: 41}, {f: 3, c: 12436}, 0, 0, 22099, {s: 41}, 65508,
+    65287, 65282, 0, 9665, 9655, 8681, 8679, 8678, 8680, 9634, 9831, 9825,
+    9828, 9826, 13216, 13218, {f: 2, c: 13220}, 13207, 8467, 13208, 13235,
+    13234, 13233, 13232, {f: 3, c: 13189}, 13259, 13200, 13268, 13206, 13090,
+    13078, 13080, 13077, 13059, 13091, 13143, 13122, 13113, 13115, 13056,
+    13105, 13127, 13086, 13098, 0, 13183, 8481, 9742, 12342, 12320, {s: 3},
+    {f: 9, c: 9352}, {f: 20, c: 9332}, 12881, {f: 10, c: 8560},
+    {f: 10, c: 12882}, {f: 26, c: 9372}, 12867, 12861, 12863, 12852, 12856,
+    12851, 12860, 12866, 12862, 12854, 12853, 12859, 12864, 12858, 12976,
+    12973, 12969, 12975, 12948, 12970, 12952, 12971, 12946, 12945, 12947,
+    12972, 12974, 12950, {s: 8}, {f: 3, c: 9131}, 0, {f: 3, c: 9127}, 0, 13260,
+    13061, 0, 0, 13215, 13219, 13222, 0, 0, 12958, {f: 2, c: 13192}, 13256,
+    8749, 0, 12848, {f: 6, c: 12842}, 12855, 12865, 10145, {s: 3}, 9673, 9824,
+    9829, 9827, 9830, {f: 4, c: 9728}, 9758, {f: 2, c: 9756}, 9759, 12953,
+    9450, {f: 2, c: 8554}, {s: 3}, {f: 8, c: 9601}, 9615, 9614, 9613, 9612,
+    9611, 9610, 9609, {f: 2, c: 9620}, {f: 2, c: 9581}, 9584, 9583, 9552, 9566,
+    9578, 9569, {f: 2, c: 9698}, 9701, 9700, 0, 0, {f: 3, c: 9585}, {s: 20},
+    20956, 29081, {f: 9, c: 10102}, {s: 3}, {f: 2, c: 8570}, {s: 3}, 8575,
+    8458, 8457, 0, 0, 12292, 8646, {f: 2, c: 8644}, 0, {f: 4, c: 12535}, 0, 0,
+    12957, {s: 3}, 13179, {s: 3}, 13107, 13134, {s: 30}, 32394, 35100, 37704,
+    37512, 34012, 20425, 28859, 26161, 26824, 37625, 26363, 24389,
+    [12033, 20008], 20193, 20220, 20224, 20227, 20281, 20310, 20370, 20362,
+    20378, 20372, 20429, 20544, 20514, 20479, 20510, 20550, 20592, 20546,
+    20628, 20724, 20696, 20810, 20836, 20893, 20926, 20972, 21013, 21148,
+    21158, 21184, 21211, 21248, 0, 21284, 21362, 21395, 21426, 21469, 64014,
+    21660, 21642, 21673, 21759, 21894, 22361, 22373, 22444, 22472, 22471,
+    64015, 0, 22686, 22706, 22795, 22867, 22875, 22877, 22883, 22948, 22970,
+    23382, 23488, 29999, 23512, 0, 23582, 23718, 23738, 23797, 23847, 23891, 0,
+    23874, 23917, {f: 2, c: 23992}, 24016, 24353, 24372, 24423, 24503, 24542,
+    24669, 24709, 24714, 24798, 24789, 24864, 24818, 24849, 24887, 24880,
+    24984, 25107, 25254, 25589, 25696, 25757, 25806, 25934, 26112, 26133,
+    26121, 26158, 0, 26148, 26213, 26199, 26201, 64018, 26227, 26265, 26272,
+    26290, 26303, 26362, 26382, 0, 26470, 26555, 26706, 26560, 0, 26692, 26831,
+    64019, 26984, 64020, 27032, 27106, 27184, 27243, 27206, 27251, 27262,
+    27362, 27364, 27606, 27711, 27740, 27782, 27759, 27866, 27908, 28039,
+    28015, 28054, 28076, 28111, 28152, 28146, 28156, 28217, 28252, 28199,
+    28220, 28351, 28552, 28597, 28661, 28677, 28679, 28712, 28805, 28843,
+    28943, 28932, 29020, {f: 2, c: 28998}, 0, 29121, 29182, 29361, 29374,
+    29476, 64022, 29559, 29629, 29641, 29654, 29667, 29650, 29703, 29685,
+    29734, 29738, 29737, 29742, 0, 29833, 29855, 29953, 30063, 30338, 30364,
+    30366, 30363, 30374, 64023, 30534, 21167, 30753, 30798, 30820, 30842,
+    31024, {f: 3, c: 64024}, 31124, 64027, 31131, 31441, 31463, 64028, 31467,
+    31646, 64029, 32072, 0, 32183, 32160, 32214, 32338, 32583, 32673, 64030,
+    33537, 33634, 33663, 33735, 33782, 33864, 33972, 34131, 34137, 34155,
+    64031, 34224, {f: 2, c: 64032}, 34823, 35061, 35346, 35383, 35449, 35495,
+    35518, 35551, 64034, 35574, 35667, 35711, 36080, 36084, 36114, 36214,
+    64035, 36559, 0, 64037, 36967, 37086, 64038, 37141, 37159, 37338, 37335,
+    37342, {f: 2, c: 37357}, {f: 2, c: 37348}, 37382, 37392, 37386, 37434,
+    37440, 37436, 37454, 37465, 37457, 37433, 37479, 37543, {f: 2, c: 37495},
+    37607, 37591, 37593, 37584, 64039, 37589, 37600, 37587, 37669, 37665,
+    37627, 64040, 37662, 37631, 37661, 37634, 37744, 37719, 37796, 37830,
+    37854, 37880, 37937, 37957, 37960, 38290, 0, 64041, 38557, 38575, 38707,
+    38715, 38723, 38733, 38735, [12205, 38737], 0, 38999, 39013,
+    {f: 2, c: 64042}, 39207, 64044, 39326, 39502, 39641, 39644, 39797, 39794,
+    39823, 39857, 39867, 39936, 40304, 40299, 64045, 40473, 40657, {s: 636},
+    8364, 8486, 0, 0, 64256, {f: 2, c: 64259}, 257, 299, 363, 275, 333, 256,
+    298, 362, 274, 332, {f: 4, c: 8539}, {f: 2, c: 8531}, 8304,
+    {f: 6, c: 8308}, {f: 10, c: 8320}, 461, 282, 0, 7868, 463, 0, 296, 465, 0,
+    467, 366, 360, 462, 283, 0, 7869, 464, 0, 297, 466, 0, 468, 367, 361, 593,
+    8049, 8048, 509, 0, 596, 0, 0, 601, 0, 0, 602, 0, 0, 603, 8051, 8050, 0,
+    331, 629, 652, 0, 0, 658, 643, 720, {s: 682}, {f: 10, c: 12832}, {s: 108},
+    {f: 4, c: 12892}, {f: 15, c: 12977}, {s: 50}, {f: 26, c: 9424},
+    {f: 26, c: 9398}, {s: 48}, {f: 47, c: 13008}, 0, {f: 10, c: 12928}, 12944,
+    {f: 6, c: 12938}, 0, 12959, {s: 6}, {f: 2, c: 12960}, 12955, 12954, 12963,
+    12962, 12951, 0, 12956, 12949, {s: 6}, 9676, {s: 11}, 10111,
+    {f: 10, c: 9451}, {s: 510}, 8414, {s: 815}, 13274, {s: 3}, 8448, 13250, 0,
+    0, 8453, 0, 13169, 0, 0, 13197, 13211, {s: 3}, {f: 2, c: 13271}, {s: 3},
+    {f: 2, c: 13057}, 13060, 13062, 0, 13064, 0, 13063, 13066, 0, 13065, 0,
+    13067, 0, 13068, {f: 6, c: 13070}, 0, 13079, 0, 13081, 0, {f: 4, c: 13082},
+    {f: 3, c: 13087}, 13092, 0, 13093, 0, 0, {f: 2, c: 13096}, 0, 13101, 0, 0,
+    {f: 3, c: 13102}, 13106, 0, 0, {f: 2, c: 13108}, 13116, {s: 3}, 13111, 0,
+    13112, 13114, 13117, 13121, {f: 3, c: 13118}, {f: 4, c: 13123}, 13128,
+    {f: 2, c: 13131}, {f: 2, c: 13135}, 0, 0, 13138, 13140, 0, 0, 13139,
+    {f: 2, c: 13141}, {s: 132}, 8501, 976, 8714, 8463, 0, 981, 987, 977, 0,
+    {f: 2, c: 9832}, 9836, {s: 5}, 12347, 0, {f: 3, c: 12339}, 8252, 8265,
+    {s: 5}, 8723, 0, 8771, {f: 2, c: 8818}, {s: 6}, {f: 2, c: 12312},
+    {f: 2, c: 65375}, {s: 10}, 9115, {f: 2, c: 9117}, 9120, {s: 4}, 9121,
+    {f: 2, c: 9123}, 9126, {s: 12}, [9116, 9119, 9122, 9125, 9130], {s: 8},
+    9986, 0, 0, 12349, 0, 12447, 0, 0, 8709, 8864, 8854, 8856, 8853, 8855,
+    {s: 4}, 9664, 9654, {s: 4}, 8656, 8596, {f: 2, c: 8600}, {f: 2, c: 8598},
+    8652, 8651, {s: 10}, 12336, 8967, {s: 8}, 10048, 10047, {s: 7}, 9643, 0,
+    9642, 0, 10010, {s: 12}, 9702, {s: 4}, 10070, {s: 379}, {f: 2, c: 65093},
+    {s: 679}, 64103, 64098, 32227, [12232, 40643], 28331, 64082, 64061, 64069,
+    64062, 27114, 28212, 64096, 64071, 64056, 64066, 64078, 34395, 64105,
+    64052, 64099, 25581, 25802, 30799, 64084, 63856, 64077, 64097, 64072,
+    64076, {f: 2, c: 64091}, 64081, 64067, 64090, 28041, 29376, 0, 194885,
+    64086, 64080, 64049, 64059, 24034, 64063, 64101, 21373, 64055, 64095,
+    24501, 64064, 0, 64083, 0, 64085, 64104, 64068, 64089, 26202, 64053, 64075,
+    64100, 64065, 64048, 0, 64057, 64051, 27493, 64058, 27599, 64050, 25150,
+    64079, 63773, 63964, 63798, 28122, 63952, 26310, 27511, 64087, 37706, 0,
+    37636, {s: 120}, 133390, {s: 120}, 35999, 11991, [11965, 158033], {s: 5},
+    37555, 38321, 0, 0, 194812, {s: 13}, 194965, {s: 8}, 194794, 0, 26478,
+    11974, 0, 194594, {s: 13}, 13314, 0, 0, 26083, {s: 4}, 134071, {s: 10},
+    171339, 0, 194611, 24378, {s: 8}, 11945, 0, 20465, {s: 7}, 63753, {s: 7},
+    11964, 0, 0, 194732, 26435, {s: 3}, 133732, 35329, 25142, 0, 0, 21555,
+    23067, {s: 3}, 25221, 0, 0, 194819, {s: 6}, 21567, {s: 9}, 27506, {s: 4},
+    29986, 19256, 0, 0, 24063, {s: 6}, 194827, 29626, 134047, {s: 3}, 194600,
+    0, 194849, {s: 5}, 194623, {s: 16}, 194675, {f: 2, c: 11916}, 23577,
+    {s: 3}, 131083, 23426, 194642, {s: 5}, 11997, [11999, 39136],
+    [11998, 169599], 14221, 0, [11927, 14586], 0, 194887, 0, [11909, 20155],
+    131490, {s: 7}, 13599, 0, 194738, 0, 0, [11971, 35200], {s: 4}, 31237,
+    {s: 4}, 35498, 0, 32085, 0, 28568, {s: 7}, 25591, 30246, {s: 4},
+    [11978, 163767], {s: 5}, 146686, {s: 5}, 13351, 0, 0, 33067, 0, 0, 194842,
+    {s: 5}, 11950, {s: 5}, 194714, {s: 3}, 194831, {s: 19}, 22305, 135741,
+    194586, 0, 64003, {s: 7}, 21534, 15240, 20839, {s: 4}, 63839, {s: 9},
+    20023, {s: 13}, [11946, 150804], 24421, 23020, 194658, 0, 24217, {s: 46},
+    13416, {s: 8}, 21200, {s: 9}, 26625, 0, 195024, 195039, {s: 5}, 153215, 0,
+    0, 11959, {s: 4}, 36534, 63775, {s: 3}, 63875, {s: 5}, 31867, 63906, 0,
+    63898, 0, [11961, 32770], 157360, {s: 4}, [11911, 132648], 0, 0, 131210,
+    194604, [11915, 13630], {s: 4}, 21589, 0, 22841, 0, 0, 23414, 194669,
+    23572, 14306, 23782, 0, 20040, 0, 0, 194742, {s: 4}, 158105, 25371, 0, 0,
+    26211, 0, 194779, 0, 0, 27126, 27014, {s: 3}, 27596, 0, 28183, 0, 0, 27818,
+    {s: 3}, [11942, 20012], 0, 0, 29935, 30069, 30188, 30286, 16305, 30570,
+    30633, {s: 6}, 31571, 0, 0, 16996, {s: 3}, 194924, 0, 0, 32328, {s: 5},
+    11955, {s: 4}, 33089, 17491, 0, [11966, 33401], [11967, 64094],
+    [11968, 64093], 0, 20857, 33626, {s: 3}, 17701, 0, 34292, 131248, {s: 4},
+    34429, 0, 13358, 35014, {s: 6}, 18406, {s: 8}, 36808, {s: 19}, 166279, 0,
+    0, 167447, 0, 0, 38969, {s: 6}, 39432, {s: 4}, 39903, {s: 10}, 148206,
+    {s: 5}, 21385, 0, 64017, 194785, 0, 146622, 132625, 0, {f: 2, c: 19972},
+    19999, 20011, {f: 2, c: 20015}, {f: 2, c: 20032}, 20036, [11907, 20058],
+    20095, 20109, 20118, 20153, 20176, 20192, 20221, 20223, 20235, 20245,
+    20320, 20283, 20297, 20308, 20346, {f: 2, c: 20349}, 20375, 20414, 20431,
+    20477, {f: 2, c: 20480}, 20496, 20507, 20519, 20526, 20567, 20582, 20586,
+    20539, 20623, 20630, 20636, 20684, 20710, 20713, 20719, 20744, 20747,
+    20752, 20763, 20766, 20831, 20897, 20924, 0, 20974, 20980, 20993,
+    [11913, 20994], 21011, 21065, 21089, 21094, 21139, 21192, 21232,
+    {f: 2, c: 21258}, 21310, 21324, 21323, 21345, 21356, 21419, 21466, 21478,
+    21493, 21543, 21581, 21606, 21611, 21620, 21645, 21654, 21665, 21677,
+    21689, 21695, 21702, 21709, 21774, 21803, 21813, 21834, 21856, 0, 21896,
+    21902, 22024, {f: 2, c: 22030}, 22071, 22079, 22089, 22091, 22095, 22118,
+    22121, 22127, {f: 2, c: 22129}, 22165, 22170, {f: 2, c: 22188}, 22193,
+    22217, 22237, 22244, 22282, 22293, 22307, 22319, {f: 2, c: 22323}, 22348,
+    22384, 22412, 22428, 22456, 22502, 22509, {f: 2, c: 22517}, 22527, 22537,
+    22560, 22578, 22652, 22656, 22697, 22734, 22736, 22740, 22746, 22761,
+    22796, 22820, 22831, 22881, 22893, 22986, 22994, 23005, {f: 2, c: 23011},
+    23044, 23052, 23075, 23111, 23125, 23139, 23149, 23166, 23198, 23207,
+    23212, 23219, 23264, 23296, 23321, 23333, 23341, 23361, 23420,
+    {f: 2, c: 23422}, 23434, [11919, 23587], 23595, 23600, 23651, 23657, 23676,
+    23755, 23762, 23796, 23844, 23846, 23875, 23878, 23882, 23954, 23956,
+    23961, 23968, 24024, 24032, 24056, 24064, 24082, {f: 2, c: 24084}, 24088,
+    24110, 24152, {f: 2, c: 24171}, 24232, 24234, {f: 2, c: 24254}, 0, 24274,
+    24327, 24334, {f: 2, c: 24348}, 24354, 24360, 24374, 24379, 24384,
+    [12089, 24400], 24408, 24420, 24457, 24476, 24487, 24484, 24495, 24504,
+    [11926, 24516], 24521, 24545, 24553, 24557, 24572, 24599, 24602, 24627,
+    24673, 24703, 24734, 24740, 24752, 24779, 24795, 24824, {f: 3, c: 24850},
+    24860, 24956, 24973, 24991, 25000, 25026, 25055, 25109, 25129, 25155,
+    25158, [11928, 25164], 25169, 25174, 25284, 25340, 25354, 25357, 25368,
+    25401, {f: 2, c: 25410}, 25445, 25460, 25469, 25476, 25479, 25488, 25502,
+    25553, 25564, 25609, 25616, 25634, 25684, 25691, 25709, 25723,
+    {f: 2, c: 25790}, 25829, 25847, 25851, 25860, 25878, 25881, 25927, 25959,
+    25985, 25989, 26050, 26096, 26098, 26156, 26188, {f: 2, c: 26203}, 26209,
+    26219, 0, 26276, 26312, 26348, 26373, 26387, 26419, 26440, 26444, 26486,
+    26491, 26544, 26546, 26617, 26583, 26585, 26608, 26668, {f: 2, c: 26672},
+    26715, 26738, 26741, 26746, 26756, 26789, 26802, 26832, 26838, 26856,
+    26861, {f: 2, c: 26864}, 26876, 26897, 26899, 26933, 26939, 26967, 26979,
+    26994, {f: 2, c: 27007}, 27046, 27053, 27063, {f: 2, c: 27094}, 27137,
+    27151, 27157, 27176, 27188, 27198, 27205, {f: 2, c: 27216}, 27222, 27227,
+    27267, 27273, 27281, {f: 3, c: 27293}, 27356, 27367, 27372, 27422, 27428,
+    27445, 27462, 27478, 27488, 27522, 27582, 27617, 27633, 27664, 27699,
+    [11937, 27701], 11938, 27737, 27766, 27771, 27781, 27797, 27804, 27856,
+    27860, 27862, 27872, {f: 2, c: 27883}, 27886, 27914, 27918, 27921, 27950,
+    27991, 27998, 28005, 28034, 28095, 28100, 28106, 28118, 28137, 28194,
+    28241, 28359, 28362, 28366, 28413, 28442, 28458, 28463, 28467, 28506,
+    28510, 28514, 28541, 28555, 28557, 28562, 28564, 28570, {f: 2, c: 28583},
+    28598, 28634, 28638, 0, 28729, 28732, 0, 28756, {f: 2, c: 28765}, 28772,
+    [11939, 28780], 28798, 28801, 28821, 28855, {f: 2, c: 28883}, 28888, 28892,
+    28935, 28960, 28977, 29002, 29010, 29024, 29049, 29074, 0, 29131, 29139,
+    29142, 29184, 29213, 29227, 29240, 29249, 29267, {f: 2, c: 29269}, 29276,
+    29325, [11944, 29357], 29364, 29383, 29435, {f: 2, c: 29444}, 29480, 29489,
+    29507, 29548, 29564, 29571, {f: 2, c: 29573}, 29589, {f: 3, c: 29598},
+    29606, 29611, 29621, 29623, 29628, 29647, 29657, 29673, 29684, 29693,
+    29700, 29706, {f: 2, c: 29722}, 29732, 29736, 29740, {f: 3, c: 29743},
+    29753, 29764, 29767, 29771, 29773, 29777, 29783, 29798, 29803, 29809,
+    29824, {f: 3, c: 29829}, 29840, 29848, 29852, 29856, 29859, 29864, 29867,
+    29877, 29887, 29896, 29914, 29918, 30030, 30073, 30081, 30096,
+    [12135, 30098], 30099, 30132, 30180, 30201, 30208, 30218, {f: 2, c: 30229},
+    30233, 30238, 30253, 30261, 30275, 30283, 30309, 30317, 30319, 30321,
+    30324, {f: 2, c: 30372}, 30405, 30412, 30444, 30460, 30516, 30518, 30556,
+    {f: 2, c: 30559}, 30578, 30589, 30613, 30634, 30694, 30704, 30708, 30726,
+    30754, {f: 2, c: 30765}, 30768, 30773, 30824, 30878, 30920, 30924, 30926,
+    30948, {f: 2, c: 30944}, 30962, 30967, 30971, 31025, 0, [11949, 31035],
+    31037, 31045, {f: 2, c: 31067}, 31115, 31126, 31128, [12145, 31160], 31163,
+    31178, 31194, 31235, 31241, 31249, 31262, 31277, 31289, 31301, 31308,
+    31325, 0, 31341, 31352, 31392, 31395, 31411, {f: 2, c: 31419}, 31430,
+    31495, 31508, 31527, 31537, 31559, 31566, 31584, 31593, 31597, 31602,
+    31633, 31663, 31703, 31705, 31755, 31759, 31776, 31782, 31793, 31798,
+    31825, 31833, 31847, 31854, 31856, 31932, 31935, {f: 2, c: 31944}, 31959,
+    31961, 31965, 31979, {f: 3, c: 32007}, 32019, 32029, 32035, 32065, 32083,
+    32089, 32093, 32122, 32134, {f: 2, c: 32139}, 32204, 32235, 32241, 32249,
+    32264, 32273, 32277, 32288, 32327, 32354, 32366, 32371, 32397, 32401,
+    32408, 32580, 32591, [11947, 11954, 32594], [11953, 32595], 32609, 32657,
+    32703, 32718, 32735, 32741, 32748, {f: 2, c: 32750}, 32762, 32782, 32785,
+    32788, 32804, 32806, 32826, 32828, 32864, 32881, 32885, 32926, 32934,
+    32939, {f: 2, c: 32983}, 33046, 33048, 33082, 33098, 33100, 33153, 33156,
+    33204, 33231, 33273, 33283, 33313, 33330, 33332, 33350, 33355, 33359,
+    33422, 33454, 33463, 33470, 33478, 33534, 33603, 33617, 33621, 33670,
+    33677, 33682, 33688, 33705, {f: 2, c: 33727}, 33770, 33807, 33809, 33866,
+    33910, 33960, 33967, 33984, 33986, 34032, 34045, 34060, 34100, 34142,
+    34191, 34231, 34254, 34221, 34322, 34345, 34386, 34403, 34412, 34415,
+    34426, 34445, 34449, 34456, {f: 2, c: 34471}, 34554, 34557, 34571, 34579,
+    34585, 34590, 34600, 34622, 34673, 34696, 34713, {f: 2, c: 34732}, 34741,
+    34774, 34795, 34797, 34817, 0, 34822, 34827, 34836, 34844, 34902, 34911,
+    [11970, 34916], 34968, 34986, {f: 2, c: 35005}, 35018, 35026, 35035,
+    {f: 2, c: 35056}, 35078, {f: 3, c: 35096}, 35111, 35120, 35134, 35195,
+    35284, 35286, 35301, 35313, 35335, 35343, 35349, 35362, 35406, 35455,
+    35572, 35615, 35639, {f: 2, c: 35651}, 35668, 35740, 35742, 35911, 35924,
+    35955, 36004, 36057, 36065, 36088, 36094, 36123, 36201, 36204, 36228,
+    36237, 36245, 36262, 36294, 36302, 36324, 36332, 36384, 36427, 36460,
+    36464, 36474, 36498, 36526, 36531, 36561, 36564, 36601, 36631, 36662,
+    36774, [12193, 36789], [11981, 36790], 0, 36832, 36836, 36854, 36866,
+    36908, 36932, 37000, 37013, 37017, 37019, 37026, 37044, 37079, 37085,
+    37108, 37143, 37148, 37169, 37178, 37181, 37192, 37211, 37217, 37220,
+    37262, 37278, 37288, {f: 2, c: 37293}, 37298, 37308, 37360, 37367, 37371,
+    37383, 37416, 37427, 37432, 37443, 37447, 37455, 37472, 37570,
+    {f: 2, c: 37579}, 37599, 37645, 37653, 37663, 37671, 37703, 37714, 0,
+    37738, 37741, 37787, 37818, 37801, 37825, 37834, 37858, 37882, 37885,
+    37903, 37940, 37951, 37973, 37995, 38002, [11986, 38264], 38310, 38313, 0,
+    38324, 38333, 38362, [11983, 11990, 38429], 38465, 38488, 38532, 38564,
+    38569, 38610, 195060, 38622, 38633, 38641, 38658, 38665, 38746, 38755,
+    38766, 38771, 38810, 38818, {f: 2, c: 38837}, 38873, 38878, 38900, 38922,
+    38926, 38942, 38947, 38955, 38974, {f: 2, c: 38994}, 39001, 39020, 39096,
+    39098, 39103, 39112, 39141, {f: 2, c: 39218}, 39232, 39245, 39260, 39263,
+    39345, {f: 2, c: 39353}, 39369, 39426, 39446, 39460, 39463,
+    {f: 2, c: 39469}, 39478, 39480, 39498, 39510, {f: 2, c: 39605}, 39673,
+    39683, 39712, {f: 2, c: 39731}, 39795, 39801, 39847, 39873, 39879, 39895,
+    39911, 39915, 39927, 39930, 39933, 39947, 39975, 39978, 39990, 40001,
+    40019, 40035, 40048, 40055, 40194, 40258, 40263, 40291, 40297, 40316,
+    40318, 40333, 40369, 40387, 40391, 40406, 40415, 40427, 40436, 40469,
+    40477, 40612, 40616, 40620, 40679, 40686, 40720, 40722, 40727, 40729,
+    40751, 40759, 40761, 40769, 40773, 40791, 40808, 40817, 40821, 40848,
+    40852, 40866, 0, 13317, 194564, 22048, 24267, 11925, 0, 144954, 0, 28665,
+    28390, 29107, [11940, 64073], {s: 4}, [11980, 64102], 0, 23986, 0, 20435,
+    20697, 20720, 20931, 22134, 27220, 27905, 28112, 28226, 28377, 29668,
+    29729, 30060, 30801, 34805, 144382, 29608, 15091, 13531, 17420, 16010, 0,
+    0, 19432, 0, 16090, 15138, 0, 17786, 16531, 0, 18021, 16643, 17043, 18094,
+    13448, 140809, {f: 3, c: 63584}, 63610, 63615, {s: 23}, {f: 2, c: 8836},
+    {f: 2, c: 8842}, 8713, 0, {f: 2, c: 8965}, {s: 9}, {f: 2, c: 8741},
+    {s: 14}, 8802, 0, 8773, 8776, {f: 2, c: 8822}, {s: 4}, 8487, {s: 209},
+    {f: 2, c: 8922}, 8533, 8984, {f: 2, c: 7742}, {f: 2, c: 504}, 470, 472,
+    474, 476, 260, 728, 317, 346, 350, 356, 377, 379, 261, 731, 318, 347, 711,
+    351, 357, 378, 733, 380, 340, 258, 313, 262, 268, 280, 270, 323, 327, 336,
+    344, 368, 354, 341, 259, 314, 263, 269, 281, 271, 273, 324, 328, 337, 345,
+    369, 355, 729, 264, 284, 292, 308, 348, 364, 265, 285, 293, 309, 349, 365,
+    625, 651, 638, 620, 622, 633, 648, 598, 627, 637, 642, 656, 635, 621, 607,
+    626, 669, 654, 609, 624, 641, 295, 661, 660, 614, 664, 450, 595, 599, 644,
+    608, 403, 616, 649, 600, 604, 606, 592, 623, 650, 612, 594, 653, 613, 674,
+    673, 597, 657, 634, 615, 865, 712, 716, 721, 8255, 783, {f: 5, c: 741}, 0,
+    0, 805, 812, 825, 796, {f: 2, c: 799}, 829, 809, 815, 734, 804, 816, 828,
+    820, {f: 2, c: 797}, {f: 2, c: 792}, 810, {f: 2, c: 826}, 794, {s: 3},
+    {f: 2, c: 610}, 618, 628, 630, 632, 640, 655, 665, 668, 671, 688, 690, 695,
+    704, {f: 2, c: 736}, {s: 6}, 8862, {s: 287}, 12348, 12543, 0,
+    {f: 2, c: 12310}, 9838, 9835, {f: 2, c: 10548}, 10687, 0, 12448, 0,
+    {f: 2, c: 10746}, {s: 13}, 962, {f: 10, c: 9461}, {f: 2, c: 9750}, 9649,
+    {f: 10, c: 12784}, 0, {f: 6, c: 12794}, {f: 15, c: 9150}, 0, 0, 10003, 0,
+    9251, 9166, {f: 4, c: 9680}, {f: 2, c: 8263}, 0, 8273, 8258,
+    {f: 16, c: 12688}, {s: 13}, {f: 2, c: 9136}, {f: 12, c: 9842},
+    {f: 2, c: 12441}, 8413, {s: 450}, 20296, 20319, 20330, 20332, 20494, 20504,
+    20545, 20722, 20688, 20742, 20739, 20789, 20821, 20823, 13493, 20938,
+    20962, 21079, 21196, 21206, 21243, 21276, 21347, 21405, 21522, 21631,
+    21640, 21840, 21889, 21933, 21966, 22075, 22174, 22185, 22195, 22391,
+    22396, 135963, 22479, 22500, 22628, 22665, 136302, 22738, 22752, 34369,
+    22923, 22930, 22979, 23059, 23143, 23159, 23172, 23236, 137405, 23421,
+    23443, 23570, 64060, 136884, 23674, 23695, 23711, 23715, 23722, 23760,
+    138804, 23821, 23879, 23937, 23972, 23975, 24011, 24158, 24313, 24320,
+    24322, 24355, 24381, 24404, 24445, 24589, 24596, 24600, 24629, 24647,
+    24733, 24788, 24797, 24875, 25020, 25017, 25122, 25178, 25199, 25302,
+    25468, 25573, 25721, 25796, 25808, 25897, 26013, 26170, 26146, 26155,
+    26160, 26163, 26184, 143812, {f: 2, c: 26231}, 26253, 26299, 26331, 26344,
+    26439, 26497, 26515, 26520, 26523, 26620, 26653, 26787, 26890, 26953,
+    144836, 26946, 26980, 27045, 27087, 15286, 15299, 27113, 27125, 145215,
+    27195, 145251, 27284, 27301, 15375, 27419, 27436, 27495, 27561, 27565,
+    27607, 27647, 27653, 27764, 27800, 27899, 27846, 27953, 27961, 27967,
+    27992, 28052, 28074, 28123, 28125, 28228, 28254, 28337, 28353, 28432,
+    28505, 28513, 28542, 28556, 28576, 28604, 28615, 28618, 28656, 28750,
+    28789, 28836, 28900, 28971, 28958, 28974, 29009, 29032, 29061, 29063,
+    29114, 29124, 29205, 15935, 29339, 149489, 29479, 29520, 29542, 29602,
+    29739, 29766, 29794, 29805, 29862, 29865, 29897, 29951, 29975, 16242,
+    30158, 30210, 30216, 30308, 30337, 30365, 30378, 30390, 30414, 30420,
+    30438, 30449, 30474, 30489, {f: 2, c: 30541}, 30586, 30592, 30612, 30688,
+    152718, 30787, 30830, 30896, 152846, 30893, 30976, 31004, 31022, 31028,
+    31046, 31097, 31176, 153457, 31188, 31198, 31211, 31213, 31365, 154052,
+    31438, 31485, 31506, 31533, 31547, 31599, 31745, 31795, 155041, 31853,
+    31865, 31887, 31892, 31904, 31957, 32049, 32092, 32131, 32166, 32194,
+    32296, 32663, 32731, 32821, 32823, 32970, 32992, 33011, 33120,
+    {f: 2, c: 33127}, 33133, 33211, 33226, 33239, 17499, 33376, 33396, 158463,
+    33441, {f: 2, c: 33443}, 33449, 33471, 33493, 33533, 33536, 33570, 33581,
+    33594, 33607, 33661, 33703, 33743, 33745, 33761, 33793, 33798, 33887,
+    33904, 33907, 33925, 33950, 33978, 159296, 34098, 34078, 34095, 34148,
+    34170, 34188, 34210, 34251, 34285, 34303, {f: 2, c: 34308}, 34320, 159988,
+    34328, 34360, 34391, 34402, 17821, 34421, 34488, 34556, 34695, 17898,
+    34826, 34832, 35022, 161412, 35122, 35129, 35136, 35220, 35318, 35399,
+    35421, 35425, 35445, 35536, 35654, 35673, 35689, 35741, 35913, 35944,
+    36271, 36305, 36311, 36387, 36413, 36475, 164471, 18500, 36602, 36638,
+    36653, 36692, 164813, 36840, 36846, 36872, 36909, 37015, 37043, 37054,
+    {f: 2, c: 37060}, 37063, 37103, 37140, 37142, {f: 2, c: 37154}, 37167,
+    37172, 37251, 37361, 37705, {f: 2, c: 37732}, 37795, 37855, 37892, 37939,
+    37962, 37987, 38001, 38286, 38303, 38316, 38326, 38347, 38352, 38355,
+    18864, 38366, 38565, 38639, 38734, 38805, 38830, 38842, 38849, 38857,
+    38875, 38998, 39143, 39256, 39427, 39617, 39619, 39630, 39638, 39682,
+    39688, 19479, 39725, 39774, 39782, 39812, 39818, 39838, 39886, 39909,
+    39928, 39971, {f: 2, c: 40015}, 40037, {f: 2, c: 40221}, 40259, 40274,
+    40330, 40342, 40384, 40364, 40380, 172432, 40423, 40455, 40606, 40623,
+    40855, 131209, 19970, 19983, 19986, 20009, 20014, 20039, 131234, 20049,
+    13318, 131236, 20073, 20125, 13356, 20156, 20163, 20168, 20203, 20186,
+    20209, 20213, 20246, 20324, 20279, 20286, 20312, 131603, {f: 2, c: 20343},
+    20354, 20357, 20454, 20402, 20421, 20427, 20434, 13418, 20466, 20499,
+    20508, 20558, 20563, 20579, 20643, 20616, {f: 2, c: 20626}, 20629, 20650,
+    131883, 20657, {f: 2, c: 20666}, 20676, 20679, 20723, 131969, 20686,
+    131953, 20692, 20705, 13458, 132089, 20759, 132170, 20832, 132361, 20851,
+    20867, 20875, 13500, 20888, 20899, 20909, 13511, 132566, 20979, 21010,
+    21014, 132943, 21077, 21084, 21100, 21111, 21124, 21122, 133127, 21144,
+    133178, 21156, {f: 2, c: 21178}, 21194, 21201, 133305, 21239, 21301, 21314,
+    133500, 133533, 21351, 21370, 21412, 21428, 133843, 21431, 21440, 133917,
+    {f: 2, c: 13661}, 21461, 13667, 21492, 21540, 21544, 13678, 21571, 21602,
+    21612, 21653, 21664, 21670, 21678, 21687, 21690, 21699, 134469, 21740,
+    21743, 21745, 21747, {f: 2, c: 21760}, 21769, 21820, 21825, 13734, 21831,
+    13736, 21860, 134625, 21885, 21890, 21905, 13765, 21970, 134805, 134765,
+    21951, 21961, 21964, 21969, 21981, 13786, 21986, 134756, 21993, 22056,
+    135007, 22023, 22032, 22064, 13812, 22077, 22080, 22087, 22110, 22112,
+    22125, 13829, 22152, 22156, 22173, 22184, 22194, 22213, 22221, 22239,
+    22248, {f: 2, c: 22262}, 135681, 135765, 22313, 135803, {f: 2, c: 22341},
+    22349, 135796, 22376, 22383, {f: 3, c: 22387}, 22395, 135908, 135895,
+    22426, {f: 2, c: 22429}, 22440, 22487, 135933, 22476, 135990, 136004,
+    22494, 22512, 13898, 22520, 22523, 22525, 22532, 22558, 22567, 22585,
+    136132, 22601, 22604, 22631, {f: 2, c: 22666}, 22669, {f: 2, c: 22671},
+    22676, 22685, 22698, 22705, 136301, 22723, 22733, 22754, {f: 2, c: 22771},
+    {f: 2, c: 22789}, 22797, 22804, 136663, 13969, 22845, 13977, 22854, 13974,
+    158761, 22879, 136775, {f: 2, c: 22901}, 22908, 22943, 22958, 22972, 22984,
+    22989, 23006, 23015, 23022, 136966, 137026, 14031, 23053, 23063, 23079,
+    23085, 23141, 23162, 23179, 23196, {f: 2, c: 23199}, 23202, 23217, 23221,
+    23226, 23231, 23258, 23260, 23269, 23280, 23278, 23285, 23304, 23319,
+    23348, 23372, 23378, 23400, 23407, 23425, 23428, 137667, 23446, 23468,
+    {f: 2, c: 14177}, 23502, 23510, 14188, 14187, 23537, 23549, 14197, 23555,
+    23593, 138326, 23647, {f: 2, c: 23655}, 23664, 138541, 138565, 138616,
+    138594, 23688, 23690, 14273, 138657, 138652, 23712, 23714, 23719, 138642,
+    23725, 23733, 138679, 23753, 138720, 138803, 23814, 23824, 23851, 23837,
+    23840, 23857, 23865, 14312, 23905, 23914, 14324, 23920, 139038, 14333,
+    23944, 14336, 23959, 23984, 23988, 139126, 24017, 24023, 139258, 24036,
+    24041, 14383, 14390, 14400, 24095, 24126, 24137, 14428, 24150, 14433,
+    {f: 2, c: 24173}, 139643, 24229, 24236, 24249, 24262, 24281, 140062, 24317,
+    24328, 140205, 24350, 24391, 24419, 24434, 24446, 24463, 24482, 24519,
+    24523, {f: 3, c: 24530}, 24546, {f: 2, c: 24558}, 24563, 14615, 24610,
+    24612, 14618, 24652, 24725, 24744, 141043, 24753, 24766, 24776, 24793,
+    24814, 24821, 24848, 24857, 24862, 24890, 14703, 24897, 24902, 24928,
+    141403, {f: 2, c: 24978}, 24983, 24997, 25005, 141483, 25045, 25053, 25077,
+    141711, 25123, 25170, 25185, 25188, 25211, 25197, 25203, 25241, 25301,
+    142008, 25341, 25347, 25360, {f: 2, c: 142159}, 25394, 25397,
+    {f: 2, c: 25403}, 25409, 25412, 25422, 142150, 25433, 142365, 142246,
+    25452, 25497, 142372, 25492, 25533, {f: 2, c: 25556}, 25568,
+    {f: 2, c: 25579}, 25586, 25630, 25637, 25641, 25647, 25690, 25693, 25715,
+    25725, 25735, 25745, 25759, {f: 2, c: 25803}, 25813, 25815, 142817, 25828,
+    25855, 14958, 25871, 25876, 14963, 25886, 25906, 25924, 25940, 25963,
+    25978, 25988, 25994, 26034, 26037, 26040, 26047, 26057, 26068, 15062,
+    26105, 26108, 26116, 26120, 26145, 26154, 26181, 26193, 26190, 15082,
+    143811, 143861, 143798, 26218, {f: 2, c: 26220}, 26235, 26240, 26256,
+    26258, 15118, 26285, 26289, 26293, 15130, 15132, 15063, 26369, 26386,
+    144242, 26393, 144339, 144338, 26445, 26452, 26461, 144336, 144356, 144341,
+    26484, 144346, 26514, 144351, 33635, 26640, 26563, 26568, 26578, 26587,
+    26615, 144458, 144465, 144459, 26648, 26655, 26669, 144485, 26675, 26683,
+    26686, 26693, 26697, 26700, 26709, 26711, 15223, 26731, 26734, 26748,
+    26754, 26768, 26774, 15213, {f: 3, c: 26776}, 26780, {f: 2, c: 26794},
+    26804, 26811, 26875, 144612, 144730, 26819, 26821, 26828, 26841,
+    {f: 2, c: 26852}, 26860, 26871, 26883, 26887, 15239, 144788, 15245, 26950,
+    26985, 26988, 27002, 27026, 15268, 27030, 27056, 27066, 27068, 27072,
+    27089, 144953, 144967, 144952, 27107, {f: 2, c: 27118}, 27123, 15309,
+    27124, 27134, 27153, 27162, 27165, 145180, {f: 2, c: 27186}, 27199, 27209,
+    27258, 27214, 27218, 27236, 145164, 27275, 15344, 27297, 145252, 27307,
+    27325, 27334, 27348, 27344, 27357, 145407, 145383, {f: 3, c: 27377}, 27389,
+    145444, 27403, {f: 3, c: 27407}, 145469, 27415, 15398, 27439, 27466, 27480,
+    27500, 27509, [11934, 27514], 27521, 27547, 27566, 146072, 27581,
+    {f: 3, c: 27591}, 27610, {f: 2, c: 27622}, 27630, 27650, 27658, 27662,
+    27702, 146559, 27725, 27739, 27757, 27780, 27785, 15555, 27796, 27799,
+    27821, 27842, 15570, 27868, 27881, 27885, 146688, 27904, 27940,
+    {f: 2, c: 27942}, 27751, 27951, 27964, 27995, 28000, 28016,
+    {f: 2, c: 28032}, 28042, 28045, 28049, 28056, 146752, 146938, 146937,
+    146899, 28075, 28078, 28084, 28098, 27956, 28104, 28110, 28127, 28150,
+    28214, 28190, 15633, 28210, {f: 2, c: 28232}, {f: 2, c: 28235}, 28239,
+    {f: 2, c: 28243}, 28247, 28259, 15646, 28307, 28327, 28340, 28355, 28469,
+    28395, 28409, 28411, 28426, 28428, 28440, 28453, 28470, 28476, 147326,
+    28498, 28503, 28512, 28520, 28560, 28566, 28606, 28575, 28581, 28591,
+    15716, {f: 2, c: 28616}, 28649, 147606, 28668, 28672, 28682, 28707, 147715,
+    28730, 28739, 28743, 28747, 15770, 28773, 28777, 28782, 28790, 28806,
+    28823, 147910, 28831, 28849, 147966, 28908, 28874, 28881, 28931, 28934,
+    28936, 28940, 15808, 28975, 29008, 29011, 29022, 15828, 29078, 29056,
+    29083, 29088, 29090, {f: 2, c: 29102}, 148412, 29145, 29148, 29191, 15877,
+    29236, 29241, 29250, 29271, 29283, 149033, {f: 2, c: 29294}, 29304, 29311,
+    29326, 149157, 29358, 29360, 29377, 15968, 29388, 15974, 15976, 29427,
+    29434, 29447, 29458, {f: 2, c: 29464}, 16003, 29497, 29484, 29491, 29501,
+    29522, 16020, 29547, 149654, {f: 2, c: 29550}, 29553, 29569, 29578, 29588,
+    29592, 29596, 29605, 29625, 29631, 29637, 29643, 29665, 29671, 29689,
+    29715, 29690, 29697, 29779, 29760, 29763, 29778, 29789, 29825, 29832,
+    150093, 29842, 29847, 29849, 29857, 29861, 29866, 29881, 29883, 29882,
+    29910, 29912, 29931, 150358, 29946, 150383, 29984, 29988, 29994, 16215,
+    150550, {f: 2, c: 30013}, 30016, 30024, 30032, 30034, 30066, 30065, 30074,
+    {f: 2, c: 30077}, 30092, 16245, 30114, 16247, 30128, 30135,
+    {f: 2, c: 30143}, 30150, 30159, 30163, 30173, {f: 2, c: 30175}, 30183,
+    30190, 30193, 30211, 30232, 30215, 30223, 16302, 151054, 30227,
+    {f: 2, c: 30235}, 151095, 30245, 30248, 30268, 30259, 151146, 16329, 30273,
+    151179, 30281, 30293, 16343, 30318, 30357, 30369, 30368, {f: 2, c: 30375},
+    30383, 151626, 30409, 151637, 30440, 151842, 30487, 30490, 30509, 30517,
+    151977, 16441, 152037, 152013, 30552, 152094, 30588, 152140, 16472, 30618,
+    30623, 30626, 30628, {f: 2, c: 30686}, 30692, 30698, 30700, 30715, 152622,
+    30725, 30729, 30733, 30745, 30764, 30791, 30826, 152793, 30858, 30868,
+    30884, 30877, 30879, 30907, 30933, 30950, {f: 2, c: 30969}, 30974, 152999,
+    30992, 31003, 31013, 31050, 31064, 16645, 31079, 31090, 31125, 31137,
+    31145, 31156, 31170, 31175, {f: 2, c: 31180}, 31190, 16712, 153513, 153524,
+    16719, 31242, 31253, 31259, 16739, 31288, 31303, 31318, 31321, 31324,
+    31327, 31335, 31338, 31349, 31362, 31370, 31376, 31404, 154068, 16820,
+    31417, 31422, 16831, 31436, 31464, 31476, 154340, 154339, 154353, 31549,
+    31530, {f: 2, c: 31534}, 16870, 16883, 31615, 31553, 16878, 31573, 31609,
+    31588, 31590, 31603, 154546, 16903, 31632, 31643, 16910, 31669, 31676,
+    31685, 31690, 154699, 154724, 31700, 31702, 31706, 31722, 31728, 31747,
+    31758, 31813, 31818, 31831, 31838, 31841, 31849, 31855, 155182, 155222,
+    155237, 31910, 155234, {f: 2, c: 31926}, 155352, 31940, 155330, 31949,
+    155368, 155427, 31974, 155484, 31989, 32003, 17094, 32018, 32030, 155616,
+    155604, {f: 2, c: 32061}, 32064, 32071, 155660, 155643, 17110, 32090,
+    32106, 32112, 17117, 32127, 155671, 32136, 32151, 155744, 32157, 32167,
+    32170, 32182, 32192, 32215, 32217, 32230, 17154, 155885, 64088, 32272,
+    32279, 32285, 32295, 32300, 32325, 32373, 32382, {f: 2, c: 32390}, 17195,
+    32410, 17219, 32572, 32571, 32574, 32579, 13505, 156272, 156294,
+    {f: 2, c: 32611}, 32621, {f: 2, c: 32637}, 32656, 20859, 146702, 32662,
+    32668, 32685, 156674, 32707, 32719, 32739, 32754, 32778, 32776, 32790,
+    32812, 32816, 32835, 32870, 32891, 32921, 32924, 32932, 32935, 32952,
+    157310, 32965, 32981, 32998, 33037, 33013, 33019, 17390, 33077, 33054,
+    17392, 33060, 33063, 33068, 157469, 33085, 17416, 33129, 17431, 17436,
+    33157, 17442, 33176, 33202, 33217, 33219, 33238, 33243, 157917, 33252,
+    157930, 33260, 33277, 33279, 158063, 33284, 158173, 33305, 33314, 158238,
+    33340, 33353, 33349, 158296, 17526, 17530, 33367, 158348, 33372, 33379,
+    158391, 17553, 33405, 33407, 33411, 33418, 33427, {f: 2, c: 33447}, 33458,
+    33460, 33466, 33468, 33506, 33512, 33527, {f: 2, c: 33543}, 33548, 33620,
+    33563, 33565, 33584, 33596, 33604, 33623, 17598, 17620, 17587,
+    {f: 2, c: 33684}, 33691, 33693, 33737, 33744, 33748, 33757, 33765, 33785,
+    33813, 158835, 33815, 33849, 33871, {f: 2, c: 33873}, {f: 2, c: 33881},
+    33884, 158941, 33893, 33912, 33916, 33921, 17677, 33943, 33958, 33982,
+    17672, {f: 2, c: 33998}, 34003, 159333, 34023, 34026, 34031, 34033, 34042,
+    34075, {f: 2, c: 34084}, 34091, 34127, 34159, 17731, 34129,
+    {f: 2, c: 34145}, 159636, 34171, 34173, 34175, 34177, 34182, 34195, 34205,
+    34207, 159736, {f: 2, c: 159734}, 34236, 34247, 34250, {f: 2, c: 34264},
+    34271, 34273, 34278, 34294, 34304, 34321, 34334, 34337, 34340, 34343,
+    160013, 34361, 34364, 160057, 34368, 34387, 34390, 34423, 34439, 34441,
+    {f: 2, c: 34460}, 34481, 34483, 34497, 34499, 34513, 34517, 34519, 34531,
+    34534, 17848, 34565, 34567, 34574, 34576, 34591, 34593, 34595, 34609,
+    34618, 34624, 34627, 34641, 34648, {f: 2, c: 34660}, 34674, 34684, 160731,
+    160730, 34727, 34697, 34699, 34707, 34720, 160766, 17893, 34750, 160784,
+    34753, 34766, 34783, 160841, 34787, {f: 2, c: 34789}, 34794, 34835, 34856,
+    34862, 34866, 34876, 17935, 34890, 34904, 161301, 161300, 34921, 161329,
+    34927, 34976, 35004, 35008, 161427, 35025, 35027, 17985, 35073, 161550,
+    35127, 161571, 35138, 35141, 35145, 161618, 35170, 35209, 35216, 35231,
+    35248, 35255, 35288, 35307, 18081, 35315, 35325, 35327, 18095, 35345,
+    35348, 162181, 35361, 35381, 35390, 35397, 35405, 35416, 35502, 35472,
+    35511, 35543, 35580, 162436, 35594, 35589, 35597, 35612, 35629, 18188,
+    35665, 35678, 35702, 35713, 35723, {f: 2, c: 35732}, 35897, 162739, 35901,
+    162750, 162759, 35909, 35919, 35927, 35945, 35949, 163000, 35987, 35986,
+    35993, 18276, 35995, 36054, 36053, 163232, 36081, 163344, 36105, 36110,
+    36296, 36313, 36364, 18429, 36349, 36358, 163978, 36372, 36374,
+    {f: 2, c: 36385}, 36391, 164027, 18454, 36406, 36409, 36436, 36450, 36461,
+    36463, 36504, 36510, 36533, 36539, 164482, 18510, 164595, 36608, 36616,
+    36651, 36672, 36682, 36696, 164876, 36772, 36788, 164949, 36801, 36806,
+    64036, 36810, 36813, 36819, 36821, 36849, 36853, 36859, 36876, 36919,
+    165227, 36931, 36957, {f: 2, c: 165320}, 36997, 37004, 37008, 37025, 18613,
+    37040, 37046, 37059, 37064, 165591, 37084, 37087, 165626, 37110, 37106,
+    37120, 37099, {f: 2, c: 37118}, 37124, 37126, 37144, 37150, 37175, 37177,
+    {f: 2, c: 37190}, 37207, 37209, 37236, 37241, 37253, 37299, 37302,
+    {f: 2, c: 37315}, 166217, 166214, 37356, 37377, {f: 2, c: 37398}, 166251,
+    37442, 37450, 37462, 37473, 37477, 37480, 166280, {f: 2, c: 37500}, 37503,
+    37513, 37517, 37527, 37529, 37535, 37547, {f: 2, c: 166330}, 37554,
+    {f: 2, c: 37567}, 37574, 37582, 37605, 37649, 166430, 166441, 37623, 37673,
+    166513, 166467, 37713, 37722, 37739, 37745, 37747, 37793, 166553, 166605,
+    37768, 37771, 37775, 37790, 37877, 166628, 166621, 37873, 37831, 37852,
+    37863, 37897, {f: 2, c: 37910}, 37883, 37938, 37947, 166849, 166895, 37997,
+    37999, 38265, 38278, {f: 2, c: 38284}, 167184, 167281, 38344, 167419,
+    167455, 38444, {f: 2, c: 38451}, 167478, 38460, 38497, 167561, 38530,
+    167659, 38554, 167730, 18919, 38579, 38586, 38589, 18938, 167928, 38616,
+    38618, 38621, 18948, 38676, 38691, 18985, 38710, 38721, 38727, 38743,
+    38747, 38762, 168608, 168625, 38806, 38814, {f: 2, c: 38833}, 38846, 38860,
+    38865, 38868, 38872, 38881, 38897, 38916, 38925, 38932, 38934, 19132,
+    169104, {f: 2, c: 38962}, 38949, 38983, 39014, 39083, 39085, 39088, 169423,
+    39095, {f: 2, c: 39099}, 39106, 39111, 39115, 39137, 39139, 39146,
+    {f: 2, c: 39152}, 39155, 39176, 19259, 169712, {f: 2, c: 39190}, 169753,
+    {f: 3, c: 39194}, 169808, 39217, {f: 3, c: 39226}, 39233, 39238, 39246,
+    39264, 39331, 39334, 39357, 39359, 39363, 39380, 39385, 39390, 170182,
+    39408, 39417, 39420, 39434, 39441, 39450, 39456, 39473, 39492, 39500,
+    39512, 19394, 39599, 19402, 39607, 19410, 39609, 170610, 39622, 39632,
+    39634, 39637, 39648, 39653, 39657, 39692, 39696, 39698, 39702, 39708,
+    39723, 39741, 19488, 39755, 39779, 39781, {f: 2, c: 39787},
+    {f: 2, c: 39798}, 39846, 39852, 171483, 39858, 39864, 39870, 39923, 39896,
+    39901, 39914, 39919, 39918, 171541, 171658, 171593, 39958,
+    {f: 3, c: 39960}, 39965, 39970, 39977, 171716, 39985, 39991, 40005, 40028,
+    171753, {f: 2, c: 40009}, 171739, 40020, 40024, 40027, 40029, 40031,
+    {f: 3, c: 40041}, {f: 2, c: 40045}, 40050, 40053, 40058, 40166, 40178,
+    40203, [171982, 171991], 40209, {f: 2, c: 40215}, 172079, 19652, 172058,
+    40242, 19665, 40266, 40287, 40290, 172281, 172162, 40307, {f: 2, c: 40310},
+    40324, 40345, 40353, 40383, 40373, 40377, 40381, 40393, 40410, 40416,
+    40419, 19719, 40458, 40450, 40461, 40476, 40571, 139800, 40576, 40581,
+    40603, 172940, 40637, 173111, 40671, 40703, 40706, 19831, 40707, 40762,
+    40765, 40774, 40787, 40789, 40792, 173553, 40797, 173570, 40809, 40813,
+    40816, 173746, 11948, 13844, 14509, 15820, 16348, 17854, 17936, 19326,
+    19512, 19681, 19980, {f: 2, c: 20003}, 20089, 20211, 20236, 20249, 20267,
+    20270, 20273, 20356, 20382, 20407, 20484, 20492, 20556, 20575, 20578,
+    20599, 20622, 20638, 20642, 20675, 20712, 20721, 20734, 20743,
+    {f: 3, c: 20748}, 20787, 20792, 20852, 20868, 20920, 20922, 20936, 20943,
+    20945, {f: 2, c: 20947}, 20952, 20959, 20997, 21030, 21032, 21035,
+    {f: 2, c: 21041}, 21045, 21052, 21082, 21088, 21102, {f: 2, c: 21112},
+    21130, 21132, 21217, 21225, 21233, 21251, 21265, 21279, 21293, 21298,
+    21309, 21349, 21357, 21369, 21374, 21396, 21401, 21418, 21423, 21434,
+    21441, {f: 2, c: 21444}, 21472, 21523, 21546, 21553, {f: 2, c: 21556},
+    21580, 21671, 21674, 21681, 21691, 21710, 21738, 21756, 21765, 21768,
+    21781, 21799, 21802, 21814, 21841, 21862, 21903, 21906, 21908, 21924,
+    21938, 21955, 21958, 21971, 21979, 21996, 21998, 22001, 22006, 22008,
+    22021, 22029, {f: 2, c: 22033}, 22060, 22069, 22073, 22093, 22100, 22149,
+    22175, 22182, 22199, 22220, 22223, 22233, 22241, 22251, 22253, 22257,
+    22279, 22284, {f: 2, c: 22298}, 22301, 22316, 22318, {f: 2, c: 22333},
+    22367, 22379, 22381, 22394, 22403, 22423, 22446, 22485, 22503, 22541,
+    22566, 22605, 22607, 22623, 22637, 22655, 22657, 22680, 22716, 22815,
+    22819, 22873, 22905, 22935, 22959, 22963, 23007, 23025, 23032, 23218,
+    23224, 23274, 23286, 23323, 23325, 23329, 23352, 23479, 23511, 23520,
+    23583, 23594, 23596, 23606, 23641, 23644, 23661, 23773, 23809, 23860,
+    23869, 23897, 23934, 23939, 24007, 24057, 24104, 24114, 24117, 24155,
+    24168, 24170, 24183, 24192, 24203, 24243, 24253, 24273, {f: 2, c: 24276},
+    24397, 24492, 24554, 24583, 24649, 24660, 24679, 24763, 24772, 24829,
+    24842, 24854, 24874, 24886, 24926, 24932, 24955, 24957, 24959, 24989,
+    25016, 25052, 25058, 25061, 25064, 25092, 25095, 25137, 25145, 25149,
+    25210, 25232, 25256, 25306, 25332, 25366, 25386, 25398, 25414, 25419,
+    25427, 25457, 25461, 25471, 25474, 25482, {f: 2, c: 25518}, 25578,
+    {f: 2, c: 25592}, 25618, 25624, 25632, 25636, 25642, 25653, 25661, 25663,
+    25682, 25695, 25716, 25744, {f: 2, c: 25752}, 25772, 25779, 25837, 25840,
+    25883, 25887, 25902, 25929, 25952, 26002, 26005, 26036, 26046, 26056,
+    26062, 26064, 26079, 26238, {f: 2, c: 26251}, 26291, 26304, 26319, 26405,
+    26421, 26453, 26496, 26511, 26513, 26532, 26545, 26549, 26558, 26664,
+    26758, 26859, 26869, 26903, 26931, 26936, 26971, 26981, 27048, 27051,
+    27055, 27109, 27121, 27210, 27221, 27239, 27249, 27311, {f: 2, c: 27336},
+    27395, 27451, 27455, {f: 2, c: 27517}, 27568, 27639, 27641, 27652, 27657,
+    27661, 27692, 27722, 27730, 27732, 27769, 27820, 27828, 27858, 28001,
+    28028, 28089, 28144, 28229, 28275, 28283, 28285, 28297, 28348,
+    {f: 2, c: 28378}, 28454, 28457, 28464, 28551, 28573, 28590, 28599, 28685,
+    28704, 28745, 28824, 28848, {f: 2, c: 28885}, 28997, 29106, 29172, 29207,
+    29215, 29251, {f: 2, c: 29263}, 29274, 29280, 29288, 29303, 29316, 29385,
+    29413, 29428, 29442, 29451, 29470, 29474, {f: 2, c: 29498}, 29517, 29528,
+    29543, 29810, 29871, 29919, 29924, 29940, 29947, 29974, 29985, 30015,
+    30046, 30105, 30116, 30145, 30148, 30156, 30167, 30172, 30177, 30191,
+    30212, 30220, 30237, 30258, 30264, 30277, 30282, 30303, 30381, 30397,
+    30425, 30443, 30448, 30457, 30464, 30478, 30498, 30504, 30511, 30521,
+    30526, 30533, 30538, 30543, 30558, 30564, 30567, 30572, 30596,
+    {f: 2, c: 30604}, 30614, 30631, 30639, 30647, 30654, 30665, 30673, 30681,
+    30705, 30775, 30812, 30846, 30872, 30881, 30897, 30899, 30921, 30931,
+    30988, 31007, {f: 2, c: 31015}, 31039, 31042, 31060, 31083, 31100, 31147,
+    31172, 31210, 31234, 31244, 31280, 31290, 31300, 31360, 31366, 31380,
+    31413, 31421, 31486, 31531, 31607, 31648, 31660, 31664, 31720, 31730,
+    31736, 31740, 31742, 31753, 31784, 31791, 31810, {f: 2, c: 31826},
+    {f: 3, c: 31835}, 31858, 31869, 31879, 31902, 31930, 31943, 31955, 31962,
+    32060, 32077, 32130, 32133, 32141, 32145, 32158, 32179, 32185, 32208,
+    32229, {f: 2, c: 32245}, 32303, 32310, 32324, 32367, 32376, 32385, 32573,
+    32603, 32605, 32613, 32625, {f: 2, c: 32639}, 32651, 32674,
+    {f: 3, c: 32765}, 32775, 32781, 32798, 32825, 32904, 32910, 32975, 32980,
+    33005, 33008, 33015, 33018, 33022, 33027, 33047, 33072, 33111, 33135,
+    33139, 33163, 33168, 33179, 33182, 33227, 33237, {f: 2, c: 33245}, 33249,
+    33263, 33270, 33280, 33291, {f: 2, c: 33299}, 33306, 33338, 33348, 33389,
+    33412, 33417, 33425, 33450, 33456, 33488, 33514, 33519, 33526, 33622,
+    33656, 33784, 33788, 33880, 33939, 33969, 33981, 34043, 34118, 34134,
+    34141, 34181, 34200, 34370, 34374, 34496, 34580, 34594, 34606, 34617,
+    34653, 34683, 34700, 34702, {f: 2, c: 34711}, 34718, 34723, 34734, 34751,
+    34761, 34778, 34840, 34843, 34861, 34874, 34885, 34891, 34894, 34901,
+    34906, 34926, {f: 3, c: 34970}, 35021, 35040, 35055, {f: 2, c: 35086},
+    35110, 35125, 35162, 35164, 35179, 35184, 35196, 35237, 35253, 35260,
+    35285, 35401, 35415, 35431, 35454, 35462, 35478, 35510, 35529, 35537,
+    35549, 35564, 35573, 35590, 35599, 35601, 35653, 35666, 35693, 35704,
+    35708, 35710, 35717, 35743, 35915, 35923, 35963, 36026, 36037, 36041,
+    36050, 36076, 36085, 36087, 36097, 36099, 36119, 36124, 36206, 36241,
+    36255, 36267, 36274, 36309, 36327, {f: 2, c: 36337}, 36340, 36353, 36363,
+    36390, 36401, {f: 2, c: 36416}, 36429, 36431, 36444, 36449, 36457, 36465,
+    36469, 36471, 36489, 36496, 36501, 36506, 36519, 36521, 36525, 36584,
+    36592, 36615, 36632, 36645, 36647, 36652, 36661, 36666, 36675, 36679,
+    36689, 36693, {f: 3, c: 36768}, 36773, 36868, 36891, 36911, 36940, 36955,
+    36976, 36980, 36985, 37003, 37016, 37024, 37042, 37053, 37065, 37104,
+    37125, 37157, 37210, 37223, 37242, 37258, 37265, 37269, 37296, 37307,
+    37309, 37314, 37317, 37376, 37385, 37411, 37494, 37518, 37551,
+    {f: 2, c: 37563}, 37569, 37571, 37573, 37576, 37652, 37683, 37686, 37720,
+    37759, 37762, 37770, 37819, 37836, 37862, 37881, 37890, {f: 2, c: 37901},
+    37934, 37964, 38280, 38305, 38335, 38342, 38345, {f: 2, c: 38353}, 38368,
+    38372, 38374, 38436, 38449, 38456, 38461, 38484, 38516, 38523, 38527,
+    38529, 38531, 38537, 38550, 38574, 38659, 38683, {f: 2, c: 38689}, 38696,
+    38705, 38759, 38774, 38781, 38783, 38809, 38815, 38828, 38841, 38861,
+    38880, 38895, 38919, 38950, 38958, {f: 2, c: 39010}, 39092, 39109, 39170,
+    39185, 39189, 39221, 39240, 39252, 39262, 39393, 39436, 39440, 39459,
+    39489, 39505, {f: 2, c: 39613}, 39681, 39689, 39691, {f: 2, c: 39693},
+    39705, 39733, 39752, 39765, 39784, 39808, 39814, 39824, 39837, 39856,
+    39871, 39880, 39935, 39938, 39964, 39989, 40004, 40022, 40033, 40040,
+    40240, 40253, 40298, 40315, 40421, 40425, 40435, 40570, {f: 3, c: 40578},
+    40624, 40676, 40688, 40690, 40713, 40719, 40724, 40731, 40738, 40742,
+    {f: 2, c: 40746}, 40756, 40794, 40815, 40862, 40869, 131317, 151044,
+    151538, 163187, 194581, 194630, 194713, 194726, 194789, 195038, 13790,
+    {s: 4}, 172722, 0, 0, 131416, {s: 4}, 132529, 0, 0, 132844, {s: 6}, 134488,
+    {s: 21}, 154060, {s: 9}, 14756, 14776, 142914, 0, 0, 14940, 0, 0, 143339,
+    0, 0, 162228, 0, 15044, 15051, {s: 5}, 14981, {s: 8}, 15347, 27384, {s: 5},
+    15665, {s: 9}, 147531, 0, 15936, 14497, {s: 34}, 158878, {s: 12}, 18207,
+    162876, {s: 4}, 18462, {s: 71}, 39709, 39724, 20482, 20958, 21255, 23532,
+    63784, 26142, 63785, 28746, 64021, 21857, 27706, 31328, 156492, 34819,
+    38315, 38741, 171581, 173594],
+  'Adobe-Korea1': [{f: 95, c: 32}, 8361, 8208, 169, 0, 0, [12288, 12644],
+    {f: 2, c: 12289}, 12539, 8229, [8230, 8943], 168, 12291, {f: 2, c: 8211},
+    8214, 65340, 65374, {f: 2, c: 8216}, {f: 2, c: 8220}, {f: 2, c: 12308},
+    {f: 10, c: 12296}, 177, 215, 247, 8800, {f: 2, c: 8804}, 8734, 8756, 176,
+    {f: 2, c: 8242}, 8451, 8491, {f: 2, c: 65504}, 65509, 9794, 9792, 8736,
+    8869, 8978, 8706, 8711, 8801, 8786, 167, 8251, 9734, 9733, 9675, 9679,
+    9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8594,
+    {f: 2, c: 8592}, {f: 2, c: 8595}, 12307, 171, 187, 8730, 8765, 8733, 8757,
+    {f: 2, c: 8747}, 8712, 8715, {f: 2, c: 8838}, {f: 2, c: 8834}, 8746, 8745,
+    {f: 2, c: 8743}, 65506, 8658, 8660, 8704, 8707, 180, 732, 711, 728, 733,
+    730, 729, 184, 731, 161, 191, 8758, 8750, 8721, 8719, 164, 8457, 8240,
+    9665, 9664, 9655, 9654, 9828, {f: 2, c: 9824}, 9829, 9831, 9827, 9673,
+    9672, 9635, {f: 2, c: 9680}, 9618, {f: 2, c: 9636}, 9640, 9639, 9638, 9641,
+    9832, 9743, 9742, 9756, 9758, 182, {f: 2, c: 8224}, 8597, 8599, 8601, 8598,
+    8600, 9837, {f: 2, c: 9833}, 9836, 12927, 12828, 8470, 13255, 8482, 13250,
+    13272, 8481, {f: 59, c: 65281}, 65510, {f: 33, c: 65341}, 65507,
+    {f: 51, c: 12593}, {f: 42, c: 12645}, {f: 10, c: 8560}, {f: 10, c: 8544},
+    {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945}, {f: 7, c: 963}, 9472,
+    9474, 9484, 9488, 9496, 9492, 9500, 9516, 9508, 9524, 9532, 9473, 9475,
+    9487, 9491, 9499, 9495, 9507, 9523, 9515, 9531, 9547, 9504, 9519, 9512,
+    9527, 9535, 9501, 9520, 9509, 9528, 9538, 9490, 9489, 9498, 9497, 9494,
+    9493, 9486, 9485, {f: 2, c: 9502}, {f: 2, c: 9505}, {f: 2, c: 9510},
+    {f: 2, c: 9513}, {f: 2, c: 9517}, {f: 2, c: 9521}, {f: 2, c: 9525},
+    {f: 2, c: 9529}, {f: 2, c: 9533}, {f: 2, c: 9536}, {f: 8, c: 9539},
+    {f: 3, c: 13205}, 8467, 13208, 13252, {f: 4, c: 13219}, {f: 10, c: 13209},
+    13258, {f: 3, c: 13197}, 13263, {f: 2, c: 13192}, 13256, {f: 2, c: 13223},
+    {f: 10, c: 13232}, {f: 5, c: 13184}, {f: 6, c: 13242}, {f: 5, c: 13200},
+    8486, {f: 2, c: 13248}, {f: 3, c: 13194}, 13270, 13253, {f: 3, c: 13229},
+    13275, {f: 4, c: 13225}, 13277, 13264, 13267, 13251, 13257, 13276, 13254,
+    198, 208, 170, 294, 306, 319, 321, 216, 338, 186, 222, 358, 330,
+    {f: 28, c: 12896}, {f: 26, c: 9424}, {f: 15, c: 9312}, 189,
+    {f: 2, c: 8531}, 188, 190, {f: 4, c: 8539}, 230, 273, 240, 295, 305, 307,
+    312, 320, 322, 248, 339, 223, 254, 359, 331, 329, {f: 28, c: 12800},
+    {f: 26, c: 9372}, {f: 15, c: 9332}, 185, {f: 2, c: 178}, 8308, 8319,
+    {f: 4, c: 8321}, {f: 83, c: 12353}, {f: 86, c: 12449}, {f: 6, c: 1040},
+    1025, {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, {f: 2, c: 44032}, 44036,
+    {f: 4, c: 44039}, {f: 8, c: 44048}, {f: 5, c: 44057}, 44064, 44068,
+    {f: 2, c: 44076}, {f: 3, c: 44079}, {f: 2, c: 44088}, 44092, 44096, 44107,
+    44109, 44116, 44120, 44124, {f: 2, c: 44144}, 44148, {f: 2, c: 44151},
+    44154, {f: 2, c: 44160}, {f: 4, c: 44163}, {f: 4, c: 44169}, 44176, 44180,
+    {f: 2, c: 44188}, {f: 3, c: 44191}, {f: 3, c: 44200}, 44204,
+    {f: 2, c: 44207}, {f: 2, c: 44216}, {f: 3, c: 44219}, 44225, 44228, 44232,
+    44236, 44245, 44247, {f: 2, c: 44256}, 44260, {f: 2, c: 44263}, 44266,
+    44268, {f: 3, c: 44271}, 44275, {f: 2, c: 44277}, {f: 2, c: 44284}, 44288,
+    44292, 44294, {f: 2, c: 44300}, 44303, 44305, 44312, 44316, 44320, 44329,
+    {f: 2, c: 44332}, {f: 2, c: 44340}, 44344, 44348, {f: 2, c: 44356}, 44359,
+    44361, 44368, 44372, 44376, 44385, 44387, {f: 2, c: 44396}, 44400,
+    {f: 4, c: 44403}, {f: 3, c: 44411}, 44415, {f: 2, c: 44417},
+    {f: 2, c: 44424}, 44428, 44432, {f: 2, c: 44444}, 44452, 44471,
+    {f: 2, c: 44480}, 44484, 44488, {f: 2, c: 44496}, 44499, 44508, 44512,
+    44516, {f: 2, c: 44536}, 44540, {f: 3, c: 44543}, {f: 2, c: 44552}, 44555,
+    44557, 44564, {f: 2, c: 44592}, 44596, {f: 2, c: 44599}, 44602,
+    {f: 2, c: 44608}, 44611, {f: 2, c: 44613}, 44618, {f: 3, c: 44620}, 44624,
+    44628, 44630, {f: 2, c: 44636}, {f: 3, c: 44639}, 44645, {f: 2, c: 44648},
+    44652, 44656, {f: 2, c: 44664}, {f: 3, c: 44667}, {f: 2, c: 44676}, 44684,
+    {f: 3, c: 44732}, 44736, 44740, {f: 2, c: 44748}, {f: 3, c: 44751},
+    {f: 2, c: 44760}, 44764, 44776, 44779, 44781, 44788, 44792, 44796,
+    {f: 2, c: 44807}, 44813, 44816, {f: 2, c: 44844}, 44848, 44850, 44852,
+    {f: 2, c: 44860}, 44863, {f: 3, c: 44865}, {f: 2, c: 44872}, 44880,
+    {f: 2, c: 44892}, {f: 2, c: 44900}, 44921, 44928, 44932, 44936,
+    {f: 2, c: 44944}, 44949, 44956, {f: 2, c: 44984}, 44988, 44992,
+    {f: 3, c: 44999}, 45003, {f: 2, c: 45005}, 45012, 45020, {f: 2, c: 45032},
+    {f: 2, c: 45040}, 45044, 45048, {f: 2, c: 45056}, 45060, 45068, 45072,
+    45076, {f: 2, c: 45084}, 45096, {f: 2, c: 45124}, 45128, 45130, 45132,
+    45134, {f: 3, c: 45139}, 45143, 45145, 45149, {f: 2, c: 45180}, 45184,
+    45188, {f: 2, c: 45196}, 45199, 45201, {f: 3, c: 45208}, 45212,
+    {f: 4, c: 45215}, {f: 2, c: 45224}, {f: 5, c: 45227}, 45233,
+    {f: 3, c: 45235}, 45240, 45244, {f: 2, c: 45252}, {f: 3, c: 45255},
+    {f: 2, c: 45264}, 45268, 45272, 45280, 45285, {f: 2, c: 45320},
+    {f: 2, c: 45323}, 45328, {f: 2, c: 45330}, {f: 2, c: 45336},
+    {f: 3, c: 45339}, {f: 3, c: 45347}, 45352, 45356, {f: 2, c: 45364},
+    {f: 3, c: 45367}, {f: 2, c: 45376}, 45380, 45384, {f: 2, c: 45392},
+    {f: 2, c: 45396}, 45400, 45404, 45408, {f: 2, c: 45432}, 45436, 45440,
+    45442, {f: 2, c: 45448}, 45451, 45453, {f: 3, c: 45458}, 45464, 45468,
+    45480, 45516, 45520, 45524, {f: 2, c: 45532}, 45535, {f: 2, c: 45544},
+    45548, 45552, 45561, 45563, 45565, {f: 2, c: 45572}, 45576,
+    {f: 2, c: 45579}, {f: 2, c: 45588}, 45591, 45593, 45600, 45620, 45628,
+    45656, 45660, 45664, {f: 2, c: 45672}, {f: 2, c: 45684}, 45692,
+    {f: 2, c: 45700}, 45705, {f: 2, c: 45712}, 45716, {f: 3, c: 45720},
+    {f: 2, c: 45728}, 45731, {f: 2, c: 45733}, 45738, 45740, 45744, 45748,
+    {f: 2, c: 45768}, 45772, 45776, 45778, {f: 2, c: 45784}, 45787, 45789,
+    45794, {f: 3, c: 45796}, 45800, {f: 5, c: 45803}, {f: 3, c: 45811},
+    {f: 5, c: 45815}, {f: 3, c: 45823}, 45828, 45832, {f: 2, c: 45840},
+    {f: 3, c: 45843}, 45852, {f: 3, c: 45908}, 45912, {f: 2, c: 45915},
+    {f: 2, c: 45918}, {f: 2, c: 45924}, 45927, 45929, 45931, 45934,
+    {f: 2, c: 45936}, 45940, 45944, {f: 2, c: 45952}, {f: 3, c: 45955}, 45964,
+    45968, 45972, {f: 2, c: 45984}, 45992, 45996, {f: 2, c: 46020}, 46024,
+    {f: 2, c: 46027}, 46030, 46032, {f: 2, c: 46036}, 46039, 46041, 46043,
+    46045, 46048, 46052, 46056, 46076, 46096, 46104, 46108, 46112,
+    {f: 2, c: 46120}, 46123, 46132, {f: 2, c: 46160}, 46164, 46168,
+    {f: 2, c: 46176}, 46179, 46181, 46188, 46208, 46216, 46237, 46244, 46248,
+    46252, 46261, 46263, 46265, 46272, 46276, 46280, 46288, 46293,
+    {f: 2, c: 46300}, 46304, {f: 2, c: 46307}, 46310, {f: 2, c: 46316}, 46319,
+    46321, 46328, {f: 2, c: 46356}, 46360, {f: 2, c: 46363}, {f: 2, c: 46372},
+    {f: 4, c: 46375}, {f: 2, c: 46384}, 46388, 46392, {f: 2, c: 46400},
+    {f: 3, c: 46403}, {f: 3, c: 46411}, 46416, 46420, {f: 2, c: 46428},
+    {f: 3, c: 46431}, {f: 2, c: 46496}, 46500, 46504, {f: 2, c: 46506},
+    {f: 2, c: 46512}, {f: 3, c: 46515}, {f: 3, c: 46523}, 46528, 46532,
+    {f: 2, c: 46540}, {f: 3, c: 46543}, 46552, 46572, {f: 2, c: 46608}, 46612,
+    46616, 46629, 46636, 46644, 46664, 46692, 46696, {f: 2, c: 46748}, 46752,
+    46756, {f: 2, c: 46763}, 46769, 46804, 46832, 46836, 46840,
+    {f: 2, c: 46848}, 46853, {f: 2, c: 46888}, 46892, {f: 2, c: 46895},
+    {f: 2, c: 46904}, 46907, 46916, 46920, 46924, {f: 2, c: 46932}, 46944,
+    46948, 46952, {f: 2, c: 46960}, 46963, 46965, {f: 2, c: 46972}, 46976,
+    46980, {f: 2, c: 46988}, {f: 4, c: 46991}, {f: 4, c: 46998}, 47004, 47008,
+    {f: 2, c: 47016}, {f: 3, c: 47019}, {f: 2, c: 47028}, 47032, 47047, 47049,
+    {f: 2, c: 47084}, 47088, 47092, {f: 2, c: 47100}, {f: 3, c: 47103},
+    {f: 3, c: 47111}, 47116, 47120, {f: 2, c: 47128}, 47131, 47133,
+    {f: 2, c: 47140}, 47144, 47148, {f: 2, c: 47156}, {f: 3, c: 47159}, 47168,
+    47172, 47185, 47187, {f: 2, c: 47196}, 47200, 47204, {f: 2, c: 47212},
+    47215, 47217, 47224, 47228, 47245, 47272, 47280, 47284, 47288,
+    {f: 2, c: 47296}, 47299, 47301, 47308, 47312, 47316, 47325, 47327, 47329,
+    {f: 2, c: 47336}, 47340, 47344, {f: 2, c: 47352}, 47355, 47357, 47364,
+    47384, 47392, {f: 2, c: 47420}, 47424, 47428, 47436, 47439, 47441,
+    {f: 2, c: 47448}, 47452, 47456, {f: 2, c: 47464}, 47467, 47469,
+    {f: 2, c: 47476}, 47480, 47484, {f: 2, c: 47492}, 47495, {f: 2, c: 47497},
+    {f: 2, c: 47501}, {f: 2, c: 47532}, 47536, 47540, {f: 2, c: 47548}, 47551,
+    47553, {f: 2, c: 47560}, 47564, {f: 5, c: 47566}, {f: 2, c: 47576}, 47579,
+    {f: 2, c: 47581}, 47585, {f: 3, c: 47587}, 47592, 47596, {f: 2, c: 47604},
+    {f: 4, c: 47607}, {f: 2, c: 47616}, 47624, 47637, {f: 2, c: 47672}, 47676,
+    47680, 47682, {f: 2, c: 47688}, 47691, {f: 2, c: 47693}, {f: 3, c: 47699},
+    47704, 47708, {f: 2, c: 47716}, {f: 3, c: 47719}, {f: 2, c: 47728}, 47732,
+    47736, {f: 3, c: 47747}, 47751, 47756, {f: 2, c: 47784}, {f: 2, c: 47787},
+    47792, 47794, {f: 2, c: 47800}, 47803, 47805, 47812, 47816,
+    {f: 2, c: 47832}, 47868, 47872, 47876, 47885, 47887, 47889, 47896, 47900,
+    47904, 47913, 47915, {f: 3, c: 47924}, 47928, {f: 4, c: 47931},
+    {f: 2, c: 47940}, 47943, 47945, 47949, {f: 2, c: 47951}, 47956, 47960,
+    47969, 47971, 47980, 48008, 48012, 48016, 48036, 48040, 48044, 48052,
+    48055, 48064, 48068, 48072, 48080, 48083, {f: 2, c: 48120}, 48124,
+    {f: 2, c: 48127}, 48130, {f: 2, c: 48136}, {f: 3, c: 48139}, 48143, 48145,
+    {f: 5, c: 48148}, {f: 5, c: 48155}, {f: 2, c: 48164}, 48167, 48169, 48173,
+    {f: 2, c: 48176}, 48180, 48184, {f: 2, c: 48192}, {f: 3, c: 48195}, 48201,
+    {f: 2, c: 48204}, 48208, 48221, {f: 2, c: 48260}, 48264, {f: 2, c: 48267},
+    48270, {f: 2, c: 48276}, 48279, {f: 2, c: 48281}, {f: 2, c: 48288}, 48292,
+    {f: 2, c: 48295}, {f: 2, c: 48304}, {f: 3, c: 48307}, {f: 2, c: 48316},
+    48320, 48324, 48333, {f: 3, c: 48335}, 48341, 48344, 48348,
+    {f: 3, c: 48372}, 48376, 48380, {f: 2, c: 48388}, 48391, 48393, 48400,
+    48404, 48420, 48428, 48448, {f: 2, c: 48456}, 48460, 48464,
+    {f: 2, c: 48472}, 48484, 48488, {f: 2, c: 48512}, 48516, {f: 4, c: 48519},
+    {f: 2, c: 48528}, 48531, 48533, {f: 2, c: 48537}, 48540, 48548, 48560,
+    48568, {f: 2, c: 48596}, 48600, 48604, 48617, 48624, 48628, 48632, 48640,
+    48643, 48645, {f: 2, c: 48652}, 48656, 48660, {f: 2, c: 48668}, 48671,
+    {f: 2, c: 48708}, 48712, 48716, 48718, {f: 2, c: 48724}, 48727,
+    {f: 3, c: 48729}, {f: 2, c: 48736}, 48740, 48744, 48746, {f: 2, c: 48752},
+    {f: 3, c: 48755}, {f: 3, c: 48763}, 48768, 48772, {f: 2, c: 48780},
+    {f: 3, c: 48783}, {f: 2, c: 48792}, 48808, {f: 2, c: 48848}, 48852,
+    {f: 2, c: 48855}, 48864, {f: 3, c: 48867}, 48876, 48897, {f: 2, c: 48904},
+    {f: 2, c: 48920}, {f: 3, c: 48923}, {f: 2, c: 48960}, 48964, 48968,
+    {f: 2, c: 48976}, 48981, 49044, 49072, 49093, {f: 2, c: 49100}, 49104,
+    49108, 49116, 49119, 49121, 49212, 49233, 49240, 49244, 49248,
+    {f: 2, c: 49256}, {f: 2, c: 49296}, 49300, 49304, {f: 2, c: 49312}, 49315,
+    49317, {f: 2, c: 49324}, {f: 2, c: 49327}, {f: 4, c: 49331},
+    {f: 2, c: 49340}, {f: 3, c: 49343}, 49349, {f: 2, c: 49352}, 49356, 49360,
+    {f: 2, c: 49368}, {f: 3, c: 49371}, {f: 2, c: 49380}, 49384, 49388,
+    {f: 2, c: 49396}, 49399, 49401, 49408, 49412, 49416, 49424, 49429,
+    {f: 5, c: 49436}, {f: 2, c: 49443}, {f: 2, c: 49446}, {f: 2, c: 49452},
+    {f: 3, c: 49455}, 49462, {f: 2, c: 49464}, 49468, 49472, {f: 2, c: 49480},
+    {f: 3, c: 49483}, {f: 2, c: 49492}, 49496, 49500, {f: 2, c: 49508},
+    {f: 3, c: 49511}, 49520, 49524, 49528, 49541, {f: 3, c: 49548}, 49552,
+    49556, 49558, {f: 2, c: 49564}, 49567, 49569, 49573, {f: 2, c: 49576},
+    49580, 49584, 49597, 49604, 49608, 49612, 49620, {f: 2, c: 49623}, 49632,
+    49636, 49640, {f: 2, c: 49648}, 49651, {f: 2, c: 49660}, 49664, 49668,
+    {f: 2, c: 49676}, 49679, 49681, {f: 2, c: 49688}, 49692, {f: 2, c: 49695},
+    {f: 2, c: 49704}, 49707, 49709, 49711, {f: 2, c: 49713}, 49716, 49736,
+    {f: 2, c: 49744}, 49748, 49752, 49760, 49765, {f: 2, c: 49772}, 49776,
+    49780, {f: 2, c: 49788}, 49791, 49793, {f: 2, c: 49800}, 49808, 49816,
+    49819, 49821, {f: 2, c: 49828}, 49832, {f: 2, c: 49836}, {f: 2, c: 49844},
+    49847, 49849, {f: 2, c: 49884}, 49888, {f: 2, c: 49891}, {f: 3, c: 49899},
+    49903, 49905, 49910, {f: 2, c: 49912}, {f: 2, c: 49915}, 49920,
+    {f: 2, c: 49928}, {f: 2, c: 49932}, {f: 3, c: 49939}, 49944, 49948,
+    {f: 2, c: 49956}, {f: 2, c: 49960}, 49989, {f: 2, c: 50024}, 50028, 50032,
+    50034, {f: 2, c: 50040}, {f: 2, c: 50044}, 50052, 50056, 50060, 50112,
+    {f: 2, c: 50136}, 50140, {f: 2, c: 50143}, 50146, {f: 2, c: 50152}, 50157,
+    {f: 2, c: 50164}, 50168, 50184, 50192, 50212, 50220, 50224, 50228,
+    {f: 2, c: 50236}, 50248, {f: 2, c: 50276}, 50280, 50284, {f: 2, c: 50292},
+    50297, 50304, 50324, 50332, 50360, 50364, 50409, {f: 2, c: 50416}, 50420,
+    50424, 50426, {f: 3, c: 50431}, 50444, 50448, 50452, 50460,
+    {f: 2, c: 50472}, 50476, 50480, {f: 2, c: 50488}, 50491, 50493,
+    {f: 2, c: 50500}, {f: 3, c: 50504}, {f: 3, c: 50508}, {f: 3, c: 50515},
+    {f: 3, c: 50519}, {f: 2, c: 50525}, {f: 2, c: 50528}, 50532, 50536,
+    {f: 2, c: 50544}, {f: 3, c: 50547}, {f: 2, c: 50556}, 50560, 50564, 50567,
+    {f: 2, c: 50572}, 50575, 50577, 50581, {f: 2, c: 50583}, 50588, 50592,
+    50601, {f: 2, c: 50612}, {f: 2, c: 50616}, {f: 4, c: 50619},
+    {f: 7, c: 50628}, 50636, 50638, {f: 2, c: 50640}, 50644, 50648,
+    {f: 2, c: 50656}, 50659, 50661, {f: 3, c: 50668}, 50672, 50676,
+    {f: 2, c: 50678}, {f: 6, c: 50684}, {f: 4, c: 50693}, 50700, 50704,
+    {f: 2, c: 50712}, {f: 2, c: 50715}, {f: 2, c: 50724}, 50728,
+    {f: 3, c: 50732}, 50736, {f: 3, c: 50739}, 50743, 50745, 50747,
+    {f: 2, c: 50752}, 50756, 50760, {f: 2, c: 50768}, {f: 3, c: 50771},
+    {f: 2, c: 50780}, 50784, 50796, 50799, 50801, {f: 2, c: 50808}, 50812,
+    50816, {f: 2, c: 50824}, 50827, 50829, {f: 2, c: 50836}, 50840, 50844,
+    {f: 2, c: 50852}, 50855, 50857, {f: 2, c: 50864}, 50868, {f: 3, c: 50872},
+    {f: 2, c: 50880}, 50883, 50885, {f: 2, c: 50892}, 50896, 50900,
+    {f: 2, c: 50908}, {f: 2, c: 50912}, {f: 2, c: 50920}, 50924, 50928,
+    {f: 2, c: 50936}, 50941, {f: 2, c: 50948}, 50952, 50956, {f: 2, c: 50964},
+    50967, 50969, {f: 2, c: 50976}, 50980, 50984, {f: 2, c: 50992}, 50995,
+    50997, 50999, {f: 2, c: 51004}, 51008, 51012, 51018, {f: 2, c: 51020},
+    51023, {f: 8, c: 51025}, 51036, 51040, 51048, 51051, {f: 2, c: 51060},
+    51064, {f: 3, c: 51068}, {f: 3, c: 51075}, {f: 4, c: 51079}, 51086,
+    {f: 2, c: 51088}, 51092, {f: 3, c: 51094}, 51098, {f: 2, c: 51104},
+    {f: 4, c: 51107}, {f: 2, c: 51116}, 51120, 51124, {f: 2, c: 51132},
+    {f: 3, c: 51135}, {f: 2, c: 51144}, 51148, 51150, 51152, 51160, 51165,
+    51172, 51176, 51180, {f: 2, c: 51200}, 51204, 51208, 51210,
+    {f: 2, c: 51216}, 51219, {f: 2, c: 51221}, {f: 2, c: 51228}, 51232, 51236,
+    {f: 2, c: 51244}, 51247, 51249, 51256, 51260, 51264, {f: 2, c: 51272},
+    {f: 2, c: 51276}, 51284, {f: 2, c: 51312}, 51316, 51320, 51322,
+    {f: 2, c: 51328}, 51331, {f: 3, c: 51333}, {f: 3, c: 51339}, 51348, 51357,
+    51359, 51361, 51368, {f: 2, c: 51388}, 51396, 51400, 51404,
+    {f: 2, c: 51412}, 51415, 51417, {f: 2, c: 51424}, 51428, 51445,
+    {f: 2, c: 51452}, 51456, {f: 3, c: 51460}, {f: 2, c: 51468}, 51471, 51473,
+    51480, 51500, 51508, {f: 2, c: 51536}, 51540, 51544, {f: 2, c: 51552},
+    51555, 51564, 51568, 51572, 51580, {f: 2, c: 51592}, 51596, 51600,
+    {f: 2, c: 51608}, 51611, 51613, {f: 2, c: 51648}, 51652, {f: 2, c: 51655},
+    51658, {f: 2, c: 51664}, 51667, {f: 2, c: 51669}, {f: 2, c: 51673},
+    {f: 2, c: 51676}, 51680, 51682, 51684, 51687, {f: 2, c: 51692},
+    {f: 3, c: 51695}, {f: 2, c: 51704}, 51708, 51712, {f: 2, c: 51720},
+    {f: 3, c: 51723}, 51732, 51736, 51753, {f: 2, c: 51788}, 51792, 51796,
+    {f: 2, c: 51804}, {f: 3, c: 51807}, 51816, 51837, 51844, 51864,
+    {f: 2, c: 51900}, 51904, 51908, {f: 2, c: 51916}, 51919, 51921, 51923,
+    {f: 2, c: 51928}, 51936, 51948, 51956, 51976, 51984, 51988, 51992,
+    {f: 2, c: 52000}, 52033, {f: 2, c: 52040}, 52044, 52048, {f: 2, c: 52056},
+    52061, 52068, {f: 2, c: 52088}, 52124, 52152, 52180, 52196, 52199, 52201,
+    {f: 2, c: 52236}, 52240, 52244, {f: 2, c: 52252}, {f: 2, c: 52257},
+    {f: 3, c: 52263}, 52268, 52270, 52272, {f: 2, c: 52280}, {f: 4, c: 52283},
+    {f: 2, c: 52292}, 52296, 52300, {f: 2, c: 52308}, {f: 3, c: 52311}, 52320,
+    52324, 52326, 52328, 52336, 52341, {f: 2, c: 52376}, 52380, 52384,
+    {f: 2, c: 52392}, {f: 3, c: 52395}, {f: 2, c: 52404}, 52408, 52412,
+    {f: 2, c: 52420}, 52423, 52425, 52432, 52436, 52452, 52460, 52464, 52481,
+    {f: 2, c: 52488}, 52492, 52496, {f: 2, c: 52504}, 52507, 52509, 52516,
+    52520, 52524, 52537, 52572, 52576, 52580, {f: 2, c: 52588}, 52591, 52593,
+    52600, 52616, {f: 2, c: 52628}, 52632, 52636, {f: 2, c: 52644}, 52647,
+    52649, 52656, 52676, 52684, 52688, 52712, 52716, 52720, {f: 2, c: 52728},
+    52731, 52733, 52740, 52744, 52748, 52756, 52761, {f: 2, c: 52768}, 52772,
+    52776, {f: 2, c: 52784}, 52787, 52789, {f: 2, c: 52824}, 52828,
+    {f: 3, c: 52831}, {f: 2, c: 52840}, 52843, 52845, {f: 2, c: 52852}, 52856,
+    52860, {f: 2, c: 52868}, 52871, 52873, {f: 2, c: 52880}, 52884, 52888,
+    {f: 2, c: 52896}, {f: 3, c: 52899}, {f: 2, c: 52908}, 52929,
+    {f: 2, c: 52964}, 52968, {f: 2, c: 52971}, {f: 2, c: 52980},
+    {f: 3, c: 52983}, {f: 2, c: 52992}, 52996, 53000, {f: 2, c: 53008}, 53011,
+    53013, 53020, 53024, 53028, {f: 2, c: 53036}, {f: 3, c: 53039}, 53048,
+    {f: 2, c: 53076}, 53080, 53084, {f: 2, c: 53092}, 53095, 53097,
+    {f: 2, c: 53104}, 53108, 53112, 53120, 53125, 53132, 53153, 53160, 53168,
+    53188, {f: 2, c: 53216}, 53220, 53224, {f: 2, c: 53232}, 53235, 53237,
+    53244, 53248, 53252, 53265, 53272, 53293, {f: 2, c: 53300}, 53304, 53308,
+    {f: 2, c: 53316}, 53319, 53321, 53328, 53332, 53336, 53344,
+    {f: 2, c: 53356}, 53360, 53364, {f: 2, c: 53372}, 53377, {f: 2, c: 53412},
+    53416, 53420, {f: 2, c: 53428}, 53431, 53433, {f: 2, c: 53440}, 53444,
+    {f: 2, c: 53448}, {f: 2, c: 53456}, {f: 3, c: 53459}, {f: 2, c: 53468},
+    53472, 53476, {f: 2, c: 53484}, {f: 3, c: 53487}, 53496, 53517,
+    {f: 2, c: 53552}, 53556, 53560, 53562, {f: 2, c: 53568}, {f: 3, c: 53571},
+    {f: 2, c: 53580}, 53584, 53588, {f: 2, c: 53596}, 53599, 53601, 53608,
+    53612, 53628, 53636, 53640, {f: 2, c: 53664}, 53668, 53672,
+    {f: 2, c: 53680}, 53683, 53685, 53690, 53692, 53696, 53720, 53748, 53752,
+    53767, 53769, 53776, {f: 2, c: 53804}, 53808, 53812, {f: 2, c: 53820},
+    53823, 53825, 53832, 53852, 53860, {f: 2, c: 53888}, 53892, 53896,
+    {f: 2, c: 53904}, 53909, 53916, 53920, 53924, 53932, 53937,
+    {f: 2, c: 53944}, 53948, {f: 2, c: 53951}, 53954, {f: 2, c: 53960}, 53963,
+    53972, 53976, 53980, {f: 2, c: 53988}, {f: 2, c: 54000}, 54004, 54008,
+    {f: 2, c: 54016}, 54019, 54021, {f: 3, c: 54028}, 54032, 54036, 54038,
+    {f: 2, c: 54044}, {f: 3, c: 54047}, 54053, {f: 2, c: 54056}, 54060, 54064,
+    {f: 2, c: 54072}, {f: 3, c: 54075}, {f: 2, c: 54084}, {f: 2, c: 54140},
+    54144, 54148, {f: 2, c: 54156}, {f: 3, c: 54159}, {f: 2, c: 54168}, 54172,
+    54176, {f: 2, c: 54184}, 54187, 54189, 54196, 54200, 54204,
+    {f: 2, c: 54212}, {f: 2, c: 54216}, 54224, 54232, 54241, 54243,
+    {f: 2, c: 54252}, 54256, 54260, {f: 2, c: 54268}, 54271, 54273, 54280,
+    54301, 54336, 54340, 54364, 54368, 54372, 54381, 54383, {f: 2, c: 54392},
+    54396, {f: 2, c: 54399}, 54402, {f: 2, c: 54408}, 54411, 54413, 54420,
+    54441, 54476, 54480, 54484, 54492, 54495, 54504, 54508, 54512, 54520,
+    54523, 54525, 54532, 54536, 54540, {f: 2, c: 54548}, 54551,
+    {f: 2, c: 54588}, 54592, 54596, {f: 2, c: 54604}, 54607, 54609,
+    {f: 2, c: 54616}, 54620, 54624, 54629, {f: 2, c: 54632}, 54635, 54637,
+    {f: 2, c: 54644}, 54648, 54652, {f: 2, c: 54660}, {f: 3, c: 54663}, 54672,
+    54693, {f: 2, c: 54728}, 54732, 54736, 54738, {f: 2, c: 54744}, 54747,
+    54749, {f: 2, c: 54756}, 54760, 54764, {f: 2, c: 54772}, 54775, 54777,
+    {f: 2, c: 54784}, 54788, 54792, {f: 2, c: 54800}, {f: 3, c: 54803}, 54812,
+    54816, 54820, 54829, {f: 2, c: 54840}, 54844, 54848, 54853,
+    {f: 2, c: 54856}, 54859, 54861, 54865, {f: 2, c: 54868}, 54872, 54876,
+    54887, 54889, {f: 2, c: 54896}, 54900, 54915, 54917, {f: 2, c: 54924},
+    54928, 54932, 54941, 54943, 54945, 54952, 54956, 54960, 54969, 54971,
+    {f: 2, c: 54980}, 54984, 54988, 54993, 54996, 54999, 55001, 55008, 55012,
+    55016, 55024, 55029, {f: 2, c: 55036}, 55040, 55044, 55057,
+    {f: 2, c: 55064}, 55068, 55072, {f: 2, c: 55080}, 55083, 55085,
+    {f: 2, c: 55092}, 55096, 55100, 55108, 55111, 55113, {f: 2, c: 55120},
+    55124, {f: 4, c: 55126}, {f: 2, c: 55136}, 55139, 55141, 55145, 55148,
+    55152, 55156, {f: 2, c: 55164}, 55169, {f: 2, c: 55176}, 55180, 55184,
+    {f: 2, c: 55192}, 55195, 55197, 20285, 20339, 20551, 20729, 21152, 21487,
+    21621, 21733, 22025, 23233, 23478, 26247, {f: 2, c: 26550}, 26607, 27468,
+    29634, 30146, 31292, 33499, 33540, 34903, 34952, 35382, [36040, 63747],
+    36303, 36603, 36838, 39381, 21051, 21364, 21508, 24682, 24932, 27580,
+    29647, 33050, 35258, [12179, 35282], 38307, 20355, 21002, 22718, 22904,
+    23014, [12082, 24178], 24185, 25031, 25536, 26438, 26604, 26751, 28567,
+    30286, 30475, 30965, 31240, 31487, 31777, 32925, [12169, 33390], 33393,
+    35563, 38291, 20075, 21917, 26359, 28212, 30883, 31469, 33883, 35088,
+    34638, 38824, 21208, 22350, 22570, 23884, 24863, 25022, 25121, 25954,
+    26577, 27204, 28187, [12130, 29976], 30131, 30435, 30640, 32058, 37039,
+    {f: 2, c: 37969}, 40853, 21283, 23724, 30002, 32987, 37440, 38296, 21083,
+    22536, 23004, 23713, 23831, 24247, 24378, 24394, 24951, 27743, 30074,
+    30086, 31968, 32115, 32177, 32652, 33108, 33313, 34193, 35137, 35611,
+    37628, [38477, 64009], 40007, 20171, 20215, 20491, 20977, 22607, 24887,
+    24894, 24936, 25913, 27114, 28433, 30117, 30342, 30422, 31623, 33445,
+    33995, 37799, 38283, 21888, 23458, 22353, 31923, 32697, 37301, 20520,
+    21435, 23621, 24040, 25298, 25454, 25818, 25831, 28192, 28844, 31067,
+    36317, 36382, 36989, 37445, 37624, 20094, 20214, 20581, [12081, 24062],
+    24314, 24838, 26967, 33137, 34388, 36423, 37749, 39467, 20062, 20625,
+    26480, 26688, 20745, 21133, 21138, 27298, 30652, 37392, 40660, 21163,
+    24623, 36850, 20552, 25001, 25581, 25802, 26684, 27268, 28608, 33160,
+    35233, 38548, 22533, 29309, [12125, 29356], 29956, 32121, 32365, 32937,
+    [12178, 35211, 64010], 35700, 36963, 40273, 25225, 27770, 28500, 32080,
+    32570, 35363, 20860, 24906, 31645, 35609, 37463, 37772, 20140, 20435,
+    20510, 20670, 20742, 21185, 21197, 21375, 22384, 22659, 24218, 24465,
+    24950, 25004, 25806, 25964, 26223, 26299, [26356, 63745], 26775, 28039,
+    28805, 28913, 29855, 29861, 29898, 30169, 30828, 30956, 31455, 31478,
+    32069, 32147, 32789, 32831, 33051, 33686, 35686, 36629, 36885, 37857,
+    38915, 38968, 39514, 39912, 20418, 21843, 22586, [22865, 63753], 23395,
+    23622, 24760, 25106, 26690, 26800, 26856, 28330, 30028, 30328, 30926,
+    31293, 31995, 32363, 32380, 35336, 35489, 35903, 38542, 40388, 21476,
+    21481, 21578, 21617, 22266, 22993, 23396, 23611, 24235, 25335, 25911,
+    25925, 25970, 26272, 26543, 27073, 27837, 30204, 30352, 30590, 31295,
+    32660, 32771, 32929, 33167, 33510, 33533, 33776, 34241, 34865, 34996,
+    35493, 36764, 37678, 38599, 39015, [12220, 39640], [12238, 40723], 21741,
+    26011, 26354, 26767, 31296, [12181, 35895], 40288, 22256, 22372, 23825,
+    26118, 26801, 26829, 28414, 29736, 34974, 39908, 27752, [12219, 39592],
+    20379, 20844, 20849, 21151, 23380, [12079, 24037], 24656, 24685, 25329,
+    25511, 25915, 29657, 31354, 34467, 36002, 38799, [20018, 63749], 23521,
+    [12093, 25096], 26524, [12128, 29916], 31185, 33747, 35463, 35506, 36328,
+    36942, 37707, 38982, [24275, 64011], 27112, 34303, 37101, 20896, 23448,
+    23532, 24931, 26874, 27454, 28748, 29743, 29912, 31649, 32592, 33733,
+    35264, 36011, 38364, 39208, 21038, 24669, 25324, 36866, 20362, 20809,
+    21281, 22745, 24291, 26336, 27960, 28826, 29378, 29654, 31568, 33009,
+    37979, 21350, 25499, 32619, 20054, 20608, 22602, 22750, 24618, 24871,
+    25296, 27088, 39745, 23439, 32024, 32945, 36703, 20132, 20689, 21676,
+    21932, 23308, 23968, 24039, 25898, 25934, 26657, 27211, 29409, 30350,
+    30703, 32094, 32761, 33184, 34126, 34527, 36611, 36686, 37066, 39171,
+    39509, 39851, 19992, 20037, 20061, 20167, 20465, 20855, 21246, 21312,
+    [12061, 21475], [21477, 63750], 21646, 22036, 22389, 22434, 23495, 23943,
+    24272, 25084, 25304, 25937, 26552, 26601, 27083, 27472, 27590, 27628,
+    27714, 28317, 28792, 29399, 29590, 29699, 30655, 30697, 31350, 32127,
+    32777, [12165, 33276], 33285, 33290, 33503, 34914, 35635, 36092, 36544,
+    36881, 37041, 37476, 37558, 39378, 39493, 40169, 40407,
+    [12244, 40860, 63751, 63752], 22283, 23616, 33738, 38816, 38827, 40628,
+    21531, 31384, 32676, 35033, 36557, 37089, 22528, 23624, 25496, 31391,
+    23470, [12088, 24339], 31353, 31406, 33422, 36524, 20518, 21048, 21240,
+    21367, 22280, 25331, 25458, 27402, 28099, 30519, 21413, 29527, 34152,
+    36470, 38357, 26426, 27331, 28528, 35437, 36556, 39243, 26231, 27512,
+    36020, [12225, 39740], 21483, 22317, 22862, 25542, 27131, 29674, 30789,
+    31418, 31429, 31998, 33909, 35215, 36211, 36917, 38312, 21243, 22343,
+    30023, 31584, 33740, 37406, 27224, 20811, 21067, 21127, 25119, 26840,
+    26997, 38553, 20677, 21156, 21220, 25027, [12100, 26020], 26681, 27135,
+    29822, 31563, 33465, 33771, 35250, 35641, 36817, 39241, 20170, 22935,
+    25810, 26129, 27278, 29748, 31105, 31165, 33449, {f: 2, c: 34942}, 35167,
+    37670, 20235, 21450, 24613, 25201, 27762, 32026, 32102, 20120, 20834,
+    30684, 32943, 20225, 20238, 20854, 20864, 21980, 22120, 22331, 22522,
+    22524, 22804, 22855, 22931, 23492, 23696, 23822, [12080, 24049], 24190,
+    24524, 25216, 26071, 26083, {f: 2, c: 26398}, 26462, 26827, 26820, 27231,
+    27450, 27683, 27773, 27778, 28103, 29592, 29734, 29738, 29826, 29859,
+    30072, 30079, 30849, 30959, 31041, {f: 2, c: 31047}, 31098, 31637, 32000,
+    32186, 32648, 32774, 32813, 32908, 35352, 35663, [35912, 63744], 36215,
+    37665, 37668, 39138, 39249, {f: 2, c: 39438}, 39525, 40594, 32202, 20342,
+    21513, 25326, 26708, [12198, 37329, 63754], 21931, 20794, 23068, 25062,
+    [25295, 63835], 25343, 37027, [35582, 63837], 26262, 29014, 38627, 25423,
+    25466, 21335, 26511, 26976, 28275, 30007, 32013, 34930, 22218, 23064,
+    20035, 20839, [22856, 63756], 26608, 32784, [12069, 22899, 63873],
+    [24180, 63886], [25754, 63889], [31178, 63893], [24565, 63907], 24684,
+    25288, [25467, 63908], [23527, 63839, 63914], 23511, 21162, 22900, 24361,
+    [24594, 63840], 29785, 39377, 28611, 33215, 36786, 24817, 33126,
+    [23615, 63933], 23273, 35365, [26491, 63944], [32016, 63951], 33021, 23612,
+    [27877, 63971], [21311, 63979], [28346, 63980], 22810, [33590, 63998],
+    [20025, 63838], 20150, 20294, 21934, 22296, 22727, 24406, 26039, 26086,
+    27264, 27573, 28237, 30701, 31471, 31774, 32222, 34507, 34962, 37170,
+    37723, 25787, 28606, 29562, 30136, 36948, 21846, 22349, 25018, 25812,
+    26311, 28129, 28251, 28525, 28601, 30192, 32835, 33213, 34113, 35203,
+    35527, 35674, 37663, 27795, 30035, 31572, 36367, 36957, 21776, 22530,
+    22616, 24162, 25095, 25758, 26848, 30070, [31958, 64003], 34739, 40680,
+    20195, 22408, 22382, [12068, 22823], 23565, 23729, 24118, 24453, 25140,
+    25825, 29619, 33274, 34955, 36024, 38538, 40667, [23429, 64004], 24503,
+    24755, 20498, [12049, 20992], 21040, 22294, 22581, 22615, 23566, 23648,
+    23798, 23947, [24230, 64001], 24466, 24764, 25361, 25481, 25623, 26691,
+    26873, 27330, 28120, 28193, 28372, 28644, 29182, 30428, 30585, 31153,
+    31291, 33796, 35241, 36077, 36339, 36424, 36867, 36884, 36947, 37117,
+    37709, 38518, 38876, 27602, 28678, 29272, 29346, 29544, 30563, 31167,
+    31716, 32411, [35712, 63834], 22697, 24775, 25958, 26109, 26302, 27788,
+    28958, 29129, 35930, 38931, 20077, 31361, 20189, 20908, 20941, 21205,
+    21516, 24999, 26481, 26704, 26847, [27934, 64005], 28540, 30140, 30643,
+    31461, 33012, 33891, 37509, 20828, [12099, 26007], 26460, 26515, 30168,
+    31431, 33651, [12182, 35910], 36887, 38957, 23663, 33216, 33434, 36929,
+    36975, 37389, 24471, 23965, 27225, 29128, 30331, 31561, 34276, 35588,
+    37159, 39472, [21895, 63755], [25078, 63757], [30313, 63758],
+    [32645, 63759], [34367, 63760], [34746, 63761], [35064, 63762],
+    [37007, 63763], [27931, 63765], [28889, 63766], [29662, 63767], 32097,
+    [33853, 63768], [37226, 63769], [39409, 63770], [20098, 63771],
+    [21365, 63772], [27396, 63773], 27410, 28734, [29211, 63774],
+    [34349, 63775], [40478, 63776], 21068, 36771, [23888, 63777], 25829, 25900,
+    27414, [28651, 63778], 31811, 32412, [34253, 63779], [35172, 63780], 35261,
+    [25289, 63781], [33240, 63782], [34847, 63783], [24266, 63784],
+    [26391, 63785], [28010, 63786], [29436, 63787], 29701, 29807, 34690,
+    [37086, 63788], [20358, 63789], 23821, 24480, 33802, [20919, 63790],
+    [25504, 63861], [30053, 63862], [20142, 63863], 20486, [20841, 63864],
+    [20937, 63865], [26753, 63866], 27153, 31918, 31921, [31975, 63867],
+    [33391, 63868], [35538, 63869], 36635, [37327, 63870], 20406, 20791,
+    [21237, 63871], [21570, 63872], [24300, 63874], 24942, 25150,
+    [26053, 63875], 27354, [28670, 63876], [31018, 63877], 34268, 34851,
+    [38317, 63878], 39522, [39530, 63879], [40599, 63880], [40654, 63881],
+    [12050, 21147, 63882], [26310, 63883], [27511, 63884], 28701, 31019,
+    [36706, 63885], 38722, [24976, 63887], [25088, 63888], 25891,
+    [28451, 63890], [29001, 63891], [29833, 63892], [32244, 63894],
+    [32879, 63895], [34030, 63897], [36646, 63896], [36899, 63898],
+    [37706, 63899], 20925, [21015, 63900], [21155, 63901], 27916,
+    [28872, 63903], [35010, 63904], [24265, 63906], 25986, [27566, 63909],
+    28610, [31806, 63910], [29557, 63911], [20196, 63912], 20278,
+    [22265, 63913], 23738, [23994, 63915], [24604, 63916], [29618, 63917],
+    31533, [32666, 63919], 32718, [32838, 63920], 36894, [37428, 63921],
+    [38646, 63922], [38728, 63923], [38936, 63924], 40801, [20363, 63925],
+    28583, [31150, 63926], [37300, 63927], [38583, 63928], [21214, 63791],
+    25736, [25796, 63792], [27347, 63793], 28510, 28696, [29200, 63794],
+    [30439, 63795], [12156, 32769, 63796], [34310, 63797], [34396, 63798],
+    [36335, 63799], 36613, [38706, 63800], [39791, 63801], [40442, 63802],
+    [12228, 40565], [30860, 63803], [31103, 63804], [32160, 63805],
+    [33737, 63806], [37636, 63807], [12229, 40575, 63808], 40595,
+    [35542, 63809], [22751, 63810], [24324, 63811], 26407, 28711, 29903,
+    [31840, 63812], [32894, 63813], 20769, 28712, [29282, 63814],
+    [30922, 63815], [36034, 63816], 36058, 36084, [38647, 63817],
+    [20102, 63930], [20698, 63931], [23534, 63932], 24278, [26009, 63934],
+    [29134, 63936], [30274, 63937], 30637, 32842, [34044, 63938],
+    [36988, 63939], 39719, [12243, 40845, 63940], [22744, 63818], 23105,
+    [23650, 63819], [27155, 63820], [28122, 63821], [28431, 63822], 30267,
+    [32047, 63823], [32311, 63824], 34078, 35128, 37860, [38475, 63825],
+    [21129, 63943], 26066, [26611, 63945], 27060, [27969, 63946],
+    [28316, 63947], 28687, [29705, 63948], 29792, [30041, 63949], 30244,
+    [30827, 63950], 35628, [39006, 63952], [20845, 63953], [25134, 63954],
+    [38520, 63955], 20374, [20523, 63956], [23833, 63957], [28138, 63958],
+    32184, [36650, 63959], [24459, 63960], [24900, 63961], [26647, 63962],
+    [38534, 63964], [21202, 63826], [32907, 63827], [20956, 63828],
+    [20940, 63829], 26974, [31260, 63830], [32190, 63831], [33777, 63832],
+    [38517, 63833], 20442, [21033, 63965], 21400, [21519, 63966], 21774,
+    [23653, 63967], 24743, [26446, 63969], [26792, 63970], 28012, 29313, 29432,
+    [29702, 63972], 29827, [30178, 63973], 31852, [32633, 63974], 32696, 33673,
+    [35023, 63975], [35041, 63976], [12197, 37324, 63977], 37328,
+    [38626, 63978], 39881, [21533, 63981], 28542, [29136, 63982],
+    [29848, 63983], [34298, 63984], 36522, [38563, 63985], [40023, 63986],
+    [40607, 63987], [26519, 63988], [28107, 63989], 29747, [33256, 63990],
+    38678, 30764, [12148, 31435, 63991], [31520, 63992], [31890, 63993], 25705,
+    29802, 30194, 30908, 30952, [12218, 39340], 39764, [12231, 40635], 23518,
+    24149, 28448, 33180, 33707, 37000, 19975, 21325, 23081, 24018, 24398,
+    24930, 25405, 26217, 26364, 28415, 28459, 28771, 30622, 33836, 34067,
+    34875, 36627, 39237, 39995, 21788, 25273, 26411, 27819, 33545, 35178,
+    38778, 20129, 22916, {f: 2, c: 24536}, 26395, 32178, 32596, 33426, 33579,
+    33725, 36638, 37017, 22475, 22969, 23186, 23504, 26151, 26522, 26757,
+    27599, 29028, 32629, 36023, 36067, 36993, 39749, 33032, 35978, 38476,
+    39488, [12230, 40613], 23391, 27667, 29467, 30450, 30431, 33804, 20906,
+    35219, 20813, 20885, 21193, 26825, 27796, 30468, 30496, 32191, 32236,
+    [12207, 38754], 40629, 28357, 34065, 20901, 21517, 21629, 26126, 26269,
+    26919, 28319, [12139, 30399], 30609, 33559, 33986, 34719, 37225, 37528,
+    40180, 34946, 20398, 20882, 21215, 22982, 24125, 24917, {f: 2, c: 25720},
+    26286, 26576, 27169, 27597, [12113, 27611], 29279, 29281, 29761, 30520,
+    [12141, 30683], 32791, 33468, 33541, 35584, 35624, 35980, [12106, 26408],
+    27792, 29287, [12140, 30446], 30566, 31302, 40361, 27519, 27794, 22818,
+    26406, 33945, 21359, 22675, 22937, 24287, 25551, 26164, 26483, 28218,
+    29483, 31447, 33495, 37672, 21209, 24043, 25006, 25035, 25098, 25287,
+    25771, [12102, 26080], 26969, 27494, [12111, 27595], 28961, 29687, 30045,
+    32326, 33310, 33538, 34154, 35491, 36031, 38695, 40289, 22696, 40664,
+    20497, 21006, 21563, 21839, [12098, 25991], 27766, {f: 2, c: 32010}, 32862,
+    34442, [12200, 38272], 38639, 21247, 27797, 29289, 21619, 23194, 23614,
+    23883, 24396, 24494, 26410, 26806, 26979, 28220, 28228, 30473,
+    [12150, 31859], 32654, 34183, 35598, 36855, 38753, 40692, 23735, 24758,
+    24845, 25003, 25935, {f: 2, c: 26107}, 27665, 27887, 29599, 29641, 32225,
+    38292, 23494, 34588, 35600, 21085, 21338, 25293, 25615, 25778, 26420,
+    27192, 27850, 29632, 29854, 31636, 31893, 32283, 33162, 33334, 34180,
+    36843, 38649, 39361, 20276, 21322, 21453, 21467, 25292, 25644, 25856,
+    26001, 27075, 27886, 28504, 29677, 30036, 30242, 30436, 30460, 30928,
+    [30971, 63844], 31020, 32070, 33324, 34784, 36820, 38930, 39151, 21187,
+    25300, 25765, 28196, 28497, 30332, 36299, 37297, 37474, 39662, 39747,
+    20515, 20621, 22346, 22952, 23592, 24135, 24439, 25151, 25918,
+    [12101, 26041], 26049, 26121, 26507, 27036, 28354, 30917, 32033, 32938,
+    33152, 33323, 33459, 33953, 34444, 35370, 35607, 37030, 38450, 40848,
+    20493, 20467, 22521, 24472, 25308, 25490, 26479, 28227, 28953, 30403,
+    32972, 32986, {f: 2, c: 35060}, 35097, 36064, 36649, 37197, 38506, 20271,
+    20336, 24091, 26575, 26658, [12137, 30333], 30334, 39748, 24161, 27146,
+    29033, 29140, 30058, 32321, 34115, 34281, 39132, 20240, 31567, 32624,
+    38309, 20961, 24070, 26805, 27710, 27726, 27867, 29359, 31684, 33539,
+    27861, 29754, 20731, 21128, 22721, 25816, 27287, 29863, 30294, 30887,
+    34327, 38370, 38713, 21342, 24321, 35722, 36776, 36783, 37002, 21029,
+    30629, 40009, 40712, 19993, 20482, 20853, 23643, 24183, 26142, 26170,
+    26564, 26821, 28851, 29953, 30149, 31177, 31453, 36647, 39200, 39432,
+    20445, 22561, 22577, 23542, 26222, 27493, 27921, 28282, 28541, 29668,
+    29995, 33769, 35036, 35091, 35676, 36628, 20239, 20693, 21264,
+    [12056, 21340], 23443, [24489, 63846], 26381, 31119, 33145, 33583, 34068,
+    35079, 35206, 36665, [36667, 64007], 39333, 39954, 26412, 20086, 20472,
+    22857, 23553, {f: 2, c: 23791}, 25447, 26834, 28925, 29090, 29739, 32299,
+    34028, 34562, 36898, 37586, 40179, [19981, 63847], 20184, 20463, 20613,
+    21078, 21103, 21542, 21648, 22496, 22827, 23142, 23386, 23413, 23500,
+    24220, 25206, 25975, 26023, 28014, 28325, [12119, 29238], 31526, 31807,
+    [12152, 32566], {f: 2, c: 33104}, 33178, 33344, 33433, 33705, 35331, 36000,
+    36070, 36091, 36212, 36282, 37096, 37340, [12201, 38428], 38468, 39385,
+    40167, [21271, 63843], 20998, 21545, 22132, 22707, 22868, 22894, 24575,
+    24996, 25198, 26128, 27774, 28954, 30406, 31881, 31966, 32027, 33452,
+    36033, 38640, 20315, 24343, 24447, 25282, 23849, 26379, 26842, 30844,
+    32323, 40300, 19989, 20633, [12052, 21269], 21290, 21329, 22915, 23138,
+    24199, 24754, 24970, 25161, 25209, 26000, 26503, 27047, [12112, 27604],
+    {f: 3, c: 27606}, 27832, 29749, 30202, 30738, 30865, 31189, 31192, 31875,
+    32203, 32737, 32933, 33086, 33218, 33778, 34586, 35048, 35513, 35692,
+    36027, 37145, [12206, 38750], [12214, 39131], [12240, 40763], 22188, 23338,
+    24428, 25996, 27315, 27567, 27996, 28657, 28693, 29277, 29613, 36007,
+    36051, 38971, 24977, 27703, 32856, 39425, 20045, 20107, 20123, 20181,
+    20282, 20284, 20351, 20447, 20735, 21490, 21496, 21766, 21987, 22235,
+    [12064, 22763], 22882, 23057, 23531, 23546, 23556, 24051, 24107, 24473,
+    24605, 25448, 26012, 26031, 26614, 26619, 26797, 27515, 27801, 27863,
+    28195, 28681, 29509, 30722, 31038, 31040, 31072, 31169, 31721, 32023,
+    32114, 32902, 33293, 33678, 34001, 34503, 35039, 35408, 35422, 35613,
+    36060, 36198, 36781, 37034, 39164, 39391, 40605, 21066, 26388, 20632,
+    21034, [12077, 23665], 25955, 27733, 29642, 29987, 30109, 31639, 33948,
+    37240, 38704, 20087, 25746, [27578, 63856], 29022, 34217, 19977, 26441,
+    26862, 28183, 33439, 34072, 34923, 25591, 28545, 37394, 39087, 19978,
+    20663, 20687, 20767, 21830, 21930, 22039, 23360, 23577, 23776, 24120,
+    24202, 24224, 24258, 24819, 26705, 27233, 28248, 29245, 29248,
+    [29376, 63994], 30456, 31077, 31665, 32724, 35059, 35316, 35443, 35937,
+    36062, 38684, [22622, 63852], 29885, 36093, 21959, 31329, [32034, 63850],
+    [12170, 33394], 29298, [12131, 29983], 29989, 31513, 22661, 22779, 23996,
+    24207, 24246, 24464, 24661, 25234, 25471, 25933, 26257, 26329, 26360,
+    26646, 26866, 29312, 29790, 31598, 32110, 32214, 32626, 32997, 33298,
+    34223, 35199, 35475, 36893, 37604, [12233, 40653], [12239, 40736],
+    [12067, 22805], 22893, 24109, 24796, 26132, 26227, 26512, 27728, 28101,
+    28511, [12143, 30707], 30889, 33990, 37323, 37675, 20185, 20682, 20808,
+    21892, 23307, 23459, 25159, 25982, 26059, 28210, 29053, 29697, 29764,
+    29831, 29887, 30316, 31146, 32218, 32341, 32680, 33146, 33203, 33337,
+    34330, 34796, 35445, 36323, 36984, 37521, 37925, 39245, 39854, 21352,
+    23633, 26964, 27844, 27945, 28203, [12166, 33292], 34203, 35131, 35373,
+    [35498, 63855, 63905], 38634, 40807, 21089, 26297, 27570, 32406, 34814,
+    36109, 38275, 38493, 25885, 28041, 29166, 22478, 22995, 23468, 24615,
+    24826, 25104, 26143, 26207, 29481, 29689, 30427, [30465, 63853], 31596,
+    32854, 32882, 33125, 35488, 37266, 19990, 21218, 27506, 27927, 31237,
+    31545, 32048, 36016, 21484, 22063, 22609, 23477, [12073, 23567], 23569,
+    24034, 25152, 25475, 25620, 26157, 26803, 27836, 28040, 28335, 28703,
+    28836, 29138, 29990, 30095, 30094, 30233, 31505, 31712, 31787, 32032,
+    32057, 34092, 34157, 34311, 35380, 36877, 36961, 37045, 37559, 38902,
+    39479, 20439, 23660, 26463, 28049, 31903, 32396, 35606, 36118, 36895,
+    23403, 24061, 25613, 33984, 36956, 39137, [29575, 63841, 63963], 23435,
+    24730, 26494, 28126, 35359, 35494, 36865, 38924, 21047, 28753, 30862,
+    37782, 34928, 37335, 20462, 21463, 22013, 22234, 22402, 22781, 23234,
+    23432, 23723, 23744, 24101, 24833, 25101, [12095, 25163], 25480, 25628,
+    25910, [25976, 63849], 27193, 27530, [12116, 27700], 27929, 28465, 29159,
+    29417, 29560, 29703, 29874, 30246, 30561, 31168, 31319, 31466, 31929,
+    32143, 32172, 32353, 32670, 33065, 33585, 33936, 34010, 34282, 34966,
+    35504, 35728, 36664, 36930, 36995, 37228, 37526, 37561, 38539,
+    {f: 2, c: 38567}, 38614, 38656, 38920, [12216, 39318], 39635, 39706, 21460,
+    22654, 22809, 23408, 23487, 28113, 28506, 29087, 29729, 29881, 32901,
+    33789, 24033, 24455, 24490, 24642, 26092, 26642, 26991, 27219, 27529,
+    27957, 28147, 29667, 30462, 30636, 31565, 32020, 33059, 33308, 33600,
+    34036, 34147, 35426, 35524, 37255, 37662, 38918, 39348, 25100, 34899,
+    36848, 37477, 23815, 23847, 23913, 29791, 33181, 34664, 28629,
+    [25342, 63859], 32722, 35126, 35186, 19998, 20056, 20711, 21213, 21319,
+    25215, 26119, 32361, 34821, 38494, 20365, 21273, 22070, 22987, 23204,
+    [12075, 23608], 23630, 23629, 24066, 24337, 24643, 26045, 26159, 26178,
+    26558, 26612, 29468, [12142, 30690], [12144, 31034], 32709, 33940, 33997,
+    35222, 35430, 35433, 35553, [12183, 35925], 35962, 22516, 23508, 24335,
+    24687, 25325, 26893, 27542, 28252, 29060, 31698, 34645, [35672, 63996],
+    36606, [12215, 39135], 39166, 20280, 20353, 20449, 21627, 23072, 23480,
+    24892, 26032, 26216, 29180, 30003, 31070, 32051, 33102, [12162, 33251],
+    33688, 34218, 34254, 34563, 35338, [12189, 36523], [12191, 36763], 36805,
+    22833, 23460, 23526, 24713, 23529, 23563, [12092, 24515], 27777, 28145,
+    28683, 29978, 33455, 35574, [20160, 63997], [12055, 21313], 38617,
+    [12114, 27663], 20126, 20420, 20818, 21854, 23077, 23784, 25105,
+    [12123, 29273], 33469, 33706, 34558, 34905, 35357, 38463, 38597, 39187,
+    40201, 40285, 22538, 23731, 23997, 24132, [24801, 63929], 24853, 25569,
+    [27138, 63764, 63836, 63935], 28197, 37122, 37716, 38990, 39952, 40823,
+    23433, 23736, 25353, 26191, 26696, 30524, 38593, 38797, 38996, 39839,
+    26017, 35585, 36555, 38332, 21813, 23721, 24022, 24245, 26263, 30284,
+    33780, 38343, 22739, 25276, 29390, 40232, 20208, 22830, 24591, 26171,
+    27523, 31207, 40230, 21395, 21696, 22467, 23830, 24859, 26326, 28079,
+    30861, 33406, 38552, 38724, 21380, 25212, 25494, 28082, 32266, 33099,
+    38989, 27387, 32588, 40367, 40474, 20063, 20539, 20918, 22812, 24825,
+    25590, 26928, 29242, 32822, 37326, 24369, 32004, [33509, 63860], 33903,
+    33979, 34277, 36493, 20335, 22756, 23363, 24665, 25562, 25880, 25965,
+    26264, 26954, 27171, 27915, 28673, 29036, 30162, 30221, 31155, 31344,
+    [12154, 32650], 35140, 35731, 37312, 38525, 39178, 22276, 24481, 26044,
+    28417, 30208, 31142, 35486, 39341, [12226, 39770], 40812, 20740, 25014,
+    25233, 27277, 33222, 20547, 22576, 24422, 28937, [12180, 35328], 35578,
+    23420, 34326, 20474, 20796, 22196, 22852, 25513, 28153, 23978, 26989,
+    20870, 20104, 20313, 22914, 27487, 27741, 29877, 30998, 33287, 33349,
+    33593, 36671, 36701, 39192, 20134, 22495, 24441, [26131, 63968], 30123,
+    32377, 35695, 36870, 39515, 22181, 22567, 23032, 23071, 23476, 24310,
+    25424, 25403, 26941, 27783, 27839, 28046, 28051, 28149, 28436, 28895,
+    28982, 29017, 29123, 29141, 30799, 30831, 31605, 32227, 32303, 34893,
+    36575, 37467, 40182, 24709, 28037, 29105, 38321, 21421, 26579, 28814,
+    28976, 29744, 33398, 33490, 38331, 39653, 40573, 26308, 29121,
+    [33865, 63854], 22603, 23992, 24433, 26144, 26254, 27001, 27054, 27704,
+    27891, 28214, 28481, 28634, 28699, 28719, 29008, 29151, 29552, 29787,
+    29908, 30408, 31310, 32403, 33521, 35424, 36814, 37704, 38681, 20034,
+    20522, 21000, 21473, 26355, 27757, 28618, 29450, 30591, 31330, 33454,
+    34269, 34306, 35028, 35427, 35709, 35947, 37555, 38675, 38928, 20116,
+    20237, 20425, 20658, 21320, 21566, 21555, 21978, 22626, 22714, 22887,
+    23067, 23524, 24735, 25034, 25942, 26111, 26212, 26791, 27738, 28595,
+    28879, 29100, 29522, 31613, 34568, 35492, 39986, 40711, 23627, 27779,
+    29508, [12127, 29577], 37434, 28331, 29797, 30239, 31337, 32277, 34314,
+    20800, 22725, 25793, 29934, 29973, 30320, 32705, 37013, 38605, 39252,
+    28198, [12129, 29926], {f: 2, c: 31401}, 33253, 34521, 34680, 35355, 23113,
+    23436, 23451, 26785, 26880, 28003, 29609, 29715, 29740, 30871, 32233,
+    32747, 33048, 33109, 33694, 35916, [38446, 63942], 38929, [12104, 26352],
+    24448, 26106, 26505, 27754, 29579, 20525, 23043, 27498, 30702, 22806,
+    23916, 24013, 29477, 30031, 20709, 20985, 22575, 22829, 22934, 23002,
+    23525, 23970, 25303, 25622, 25747, 25854, 26332, 27208, 29183, 29796,
+    31368, 31407, 32327, 32350, 32768, 33136, 34799, 35201, 35616, 36953,
+    36992, 39250, 24958, 27442, 28020, 32287, 35109, 36785, 20433, 20653,
+    20887, 21191, 22471, 22665, 23481, 24248, 24898, 27029, 28044, 28263,
+    28342, 29076, 29794, [12132, 29992], 29996, 32883, 33592, 33993, 36362,
+    37780, 37854, 20110, 20305, 20598, 20778, [12060, 21448], 21451, 21491,
+    23431, 23507, 23588, 24858, 24962, 26100, [12124, 29275], 29591, 29760,
+    30402, 31056, 31121, 31161, 32006, [12155, 32701], 33419, 34261, 34398,
+    36802, 36935, 37109, 37354, 38533, [12204, 38632], 38633, 21206, 24423,
+    26093, 26161, 26671, 29020, 31286, 37057, 38922, 20113, 27218, 27550,
+    28560, 29065, 32792, 33464, 34131, 36939, 38549, 38642, 38907, 34074,
+    39729, 20112, 29066, 38596, 20803, 21407, 21729, 22291, 22290, 22435,
+    23195, 23236, 23491, 24616, 24895, 25588, 27781, 27961, 28274, 28304,
+    29232, 29503, 29783, 33489, 34945, 36677, 36960, 38498, 39000, 40219,
+    [12105, 26376], 36234, 37470, 20301, 20553, 20702, 21361, 22285, 22996,
+    23041, 23561, 24944, 26256, 28205, 29234, 29771, 32239, 32963, 33806,
+    33894, 34111, 34655, 34907, 35096, 35586, 36949, [12209, 38859], 39759,
+    20083, 20369, 20754, 20842, 21807, 21929, 23418, 23461, {f: 2, c: 24188},
+    24254, 24736, 24799, {f: 2, c: 24840}, 25540, 25912, 26377, 26580, 26586,
+    {f: 2, c: 26977}, 27833, 27943, 28216, 28641, {f: 2, c: 29494}, 29788,
+    30001, 30290, 32173, 33278, 33848, 35029, 35480, 35547, 35565, 36400,
+    36418, 36938, 36926, 36986, [12195, 37193], 37321, 37742, 22537, 27603,
+    [12161, 32905], 32946, 20801, 22891, 23609, 28516, 29607, 32996, 36103,
+    37399, 38287, [12160, 32895], 25102, 28700, 32104, 34701, 22432, 24681,
+    24903, 27575, 35518, 37504, 38577, [12036, 20057], 21535, 28139, 34093,
+    38512, [12211, 38899], 39150, 25558, 27875, [12194, 37009], 20957, 25033,
+    33210, 40441, 20381, 20506, 20736, 23452, 24847, 25087, 25836, 26885,
+    27589, 30097, 30691, 32681, 33380, 34191, 34811, [12176, 34915], 35516,
+    35696, 37291, [12038, 20108], 20197, 20234, 22839, 23016, 24050, 24347,
+    24411, 24609, 29246, 29669, [30064, 63842], 30157, 31227, [12157, 32780],
+    [12159, 32819], 32900, 33505, 33617, 36029, 36019, 36999, 39156, 39180,
+    28727, 30410, 32714, 32716, 32764, 35610, [12040, 20154], 20161, 20995,
+    21360, [21693, 63902], 22240, 23035, 23493, 24341, 24525, 28270, 32106,
+    33589, 34451, 35469, 38765, 38775, [12032, 19968], 20314, 20350, 22777,
+    [12103, 26085], 28322, 36920, 37808, 39353, 20219, 22764, 22922, 23001,
+    24641, 31252, 33615, 36035, [12042, 20837], 21316, 20173, 21097, 23381,
+    33471, 20180, [21050, 63999], 21672, 22985, 23039, [12070, 23376], 23383,
+    23388, 24675, 24904, 28363, [28825, 63995], 29038, 29574, 29943, 30133,
+    30913, 32043, 32773, [12163, 33258], 33576, 34071, 34249, 35566, 36039,
+    38604, 20316, 21242, 22204, 26027, 26152, 28796, 28856, 29237, 32189,
+    33421, 37196, 38592, 40306, 23409, 26855, 27544, 28538, 30430, 23697,
+    26283, 28507, 31668, 31786, 34870, 38620, 19976, 20183, 21280, 22580,
+    22715, 22767, 22892, 23559, 24115, 24196, 24373, 25484, 26290, 26454,
+    27167, 27299, 27404, 28479, 29254, 29520, 29835, 31456, 31911, 33144,
+    33247, 33255, 33674, 33900, 34083, 34196, 34255, 35037, 36115, 37292,
+    [12199, 38263], 38556, 20877, 21705, 22312, 23472, 25165, 26448, 26685,
+    26771, 28221, 28371, 28797, 32289, 35009, 36001, 36617, 40779, 40782,
+    29229, 31631, 35533, 37658, 20295, 20302, 20786, 21632, 22992, 24213,
+    25269, 26485, 26990, 27159, 27822, 28186, 29401, 29482, 30141, 31672,
+    32053, 33511, 33785, 33879, 34295, 35419, 36015, 36487, 36889, 37048,
+    38606, 40799, 21219, 21514, 23265, 23490, 25688, 25973, 28404, 29380,
+    30340, 31309, 31515, 31821, 32318, 32735, 33659, 35627, 36042,
+    [12186, 36196], 36321, 36447, 36842, 36857, 36969, 37841, 20291, 20346,
+    20659, 20840, 20856, 21069, 21098, 22625, 22652, 22880, 23560, 23637,
+    24283, 24731, 25136, 26643, 27583, 27656, 28593, 29006, 29728,
+    [12133, 30000], 30008, 30033, 30322, 31564, 31627, 31661, 31686, 32399,
+    35438, 36670, 36681, 37439, 37523, 37666, 37931, 38651, 39002, 39019,
+    39198, [20999, 64000], 25130, 25240, 27993, 30308, 31434, 31680, 32118,
+    21344, 23742, 24215, 28472, 28857, 31896, 38673, 39822, 40670, 25509,
+    25722, 34678, 19969, 20117, 20141, 20572, 20597, 21576, 22979, 23450,
+    24128, 24237, 24311, 24449, 24773, 25402, 25919, 25972, 26060, 26230,
+    26232, 26622, 26984, 27273, 27491, 27712, 28096, 28136, 28191, 28254,
+    28702, 28833, 29582, 29693, 30010, 30555, 30855, 31118, 31243, 31357,
+    31934, 32142, 33351, 35330, 35562, 35998, 37165, 37194, 37336, 37478,
+    37580, 37664, 38662, 38742, 38748, 38914, [12237, 40718], 21046, 21137,
+    21884, 22564, 24093, 24351, 24716, 25552, 26799, 28639, 31085, 31532,
+    33229, 34234, 35069, 35576, 36420, 37261, 38500, 38555, 38717, 38988,
+    [12241, 40778], 20430, 20806, 20939, 21161, 22066, 24340, 24427, 25514,
+    25805, 26089, 26177, 26362, 26361, 26397, 26781, 26839, 27133, 28437,
+    28526, 29031, 29157, [12118, 29226], 29866, 30522, 31062, 31066, 31199,
+    31264, 31381, 31895, 31967, 32068, 32368, 32903, 34299, 34468, 35412,
+    35519, 36249, 36481, 36896, 36973, 37347, 38459, 38613, [12227, 40165],
+    26063, 31751, [12188, 36275], 37827, 23384, 23562, 21330, 25305, 29469,
+    20519, 23447, 24478, 24752, 24939, 26837, 28121, 29742, 31278, 32066,
+    32156, 32305, 33131, 36394, 36405, 37758, 37912, 20304, 22352, 24038,
+    24231, 25387, 32618, 20027, 20303, 20367, 20570, 23005, 32964, 21610,
+    21608, 22014, 22863, 23449, 24030, 24282, 26205, 26417, 26609, 26666,
+    27880, 27954, 28234, 28557, 28855, 29664, 30087, 31820, 32002, 32044,
+    32162, [12168, 33311], 34523, 35387, 35461, [12187, 36208], 36490, 36659,
+    36913, 37198, 37202, 37956, 39376, [12149, 31481], 31909, 20426, 20737,
+    20934, 22472, 23535, 23803, 26201, 27197, 27994, 28310, 28652, 28940,
+    30063, 31459, 34850, 36897, 36981, 38603, 39423, 33537, 20013, 20210,
+    34886, 37325, 21373, 27355, 26987, 27713, 33914, 22686, 24974, 26366,
+    25327, 28893, 29969, 30151, 32338, 33976, 35657, 36104, 20043, 21482,
+    21675, 22320, 22336, 24535, 25345, 25351, 25711, [12096, 25903], 26088,
+    26234, 26525, 26547, [12108, 27490], 27744, 27802, 28460, 30693, 30757,
+    31049, 31063, 32025, 32930, 33026, [12164, 33267], 33437, 33463, 34584,
+    35468, 36100, 36286, 36978, 30452, 31257, 31287, 32340, 32887, 21767,
+    21972, 22645, 25391, 25634, 26185, 26187, 26733, 27035, 27524, 27941,
+    28337, 29645, 29800, 29857, 30043, 30137, 30433, 30494, 30603, 31206,
+    32265, 32285, 33275, 34095, 34967, 35386, 36049, 36587,
+    [12192, 36784, 63857], 36914, 37805, 38499, 38515, 38663, 20356, 21489,
+    23018, 23241, 24089, 26702, 29894, 30142, 31209, 31378, 33187, 34541,
+    36074, 36300, 36845, 26015, 26389, 22519, 28503, 32221, 36655, 37878,
+    38598, 24501, 25074, 28548, 19988, 20376, 20511, 21449, 21983, 23919,
+    24046, 27425, 27492, 30923, 31642, 36425, [12190, 36554, 63746], 36974,
+    25417, 25662, 30528, 31364, 37679, 38015, 40810, 25776, 28591, 29158,
+    29864, 29914, 31428, 31762, 32386, 31922, 32408, 35738, 36106, 38013,
+    39184, 39244, 21049, 23519, 25830, 26413, 32046, 20717, [21443, 63851],
+    22649, {f: 2, c: 24920}, 25082, 26028, 31449, 35730, 35734, 20489, 20513,
+    21109, 21809, 23100, 24288, 24432, 24884, 25950, 26124, 26166, 26274,
+    27085, 28356, 28466, 29462, 30241, 31379, 33081, 33369, 33750, 33980,
+    20661, 22512, 23488, 23528, 24425, 25505, 30758, 32181, 33756, 34081,
+    37319, 37365, 20874, 26613, 31574, 36012, 20932, 22971, 24765, 34389,
+    20508, 21076, 23610, 24957, 25114, [25299, 64002], 25842, 26021, 28364,
+    30240, 33034, 36448, 38495, 38587, 20191, 21315, 21912, 22825, 24029,
+    25797, 27849, 28154, 29588, 31359, [12167, 33307], 34214, 36068, 36368,
+    36983, 37351, 38369, 38433, 38854, 20984, 21746, 21894, 24505, 25764,
+    28552, 32180, 36639, 36685, 37941, 20681, 23574, 27838, 28155, 29979,
+    30651, 31805, 31844, 35449, 35522, 22558, 22974, 24086, 25463, 29266,
+    30090, 30571, 35548, 36028, 36626, 24307, 26228, 28152, 32893, 33729,
+    35531, [12205, 38737], 39894, 21059, 26367, 28053, 28399, 32224, 35558,
+    36910, 36958, 39636, 21021, 21119, 21736, 24980, 25220, 25307, 26786,
+    26898, 26970, 27189, 28818, 28966, 30813, 30977, 30990, 31186, 31245,
+    32918, [12171, 33400], 33493, 33609, 34121, 35970, 36229, 37218, 37259,
+    37294, 20419, 22225, 29165, 30679, 34560, 35320, [12072, 23544], 24534,
+    26449, 37032, 21474, 22618, 23541, 24740, 24961, 25696, 32317, 32880,
+    34085, 37507, 25774, 20652, 23828, 26368, 22684, 25277, 25512, 26894,
+    27000, 27166, 28267, 30394, 31179, 33467, 33833, 35535, 36264, 36861,
+    37138, 37195, 37276, 37648, 37656, 37786, 38619, 39478, 39949, 19985,
+    30044, 31069, 31482, 31569, 31689, 32302, 33988, 36441, 36468, 36600,
+    36880, 26149, 26943, 29763, 20986, 26414, 40668, 20805, 24544, 27798,
+    34802, 34909, 34935, 24756, 33205, 33795, 36101, 21462, 21561, 22068,
+    23094, 23601, 28810, 32736, 32858, 33030, 33261, 36259, 37257, 39519,
+    40434, 20596, 20164, 21408, 24827, 28204, 23652, 20360, 20516, 21988,
+    23769, 24159, 24677, 26772, 27835, 28100, 29118, 30164, 30196, 30305,
+    31258, 31305, 32199, 32251, 32622, 33268, 34473, 36636, 38601, 39347,
+    [12242, 40786], 21063, 21189, 39149, 35242, 19971, 26578, 28422, 20405,
+    23522, 26517, [27784, 63858], 28024, 29723, 30759, 37341, 37756, 34756,
+    31204, 31281, 24555, 20182, 21668, 21822, 22702, 22949, 24816, 25171,
+    25302, 26422, 26965, 33333, 38464, 39345, 39389, 20524, 21331, 21828,
+    22396, 25176, 25826, 26219, 26589, 28609, 28655, 29730, 29752, 35351,
+    37944, 21585, 22022, 22374, 24392, 24986, 27470, 28760, 28845, 32187,
+    35477, 22890, 33067, 25506, 30472, 32829, 36010, 22612, 25645, 27067,
+    23445, 24081, 28271, 34153, 20812, 21488, 22826, 24608, 24907, 27526,
+    27760, 27888, 31518, 32974, 33492, 36294, 37040, 39089, 25799, 28580,
+    25745, 25860, 20814, 21520, [12063, 22303], 35342, 24927, 26742, 30171,
+    31570, 32113, 36890, 22534, 27084, 33151, 35114, 36864, 38969, 20600,
+    22871, 22956, 25237, 36879, 39722, 24925, 29305, 38358, 22369, 23110,
+    24052, 25226, 25773, 25850, 26487, 27874, 27966, 29228, 29750, 30772,
+    32631, 33453, 36315, 38935, 21028, 22338, 26495, 29256, 29923, 36009,
+    36774, 37393, 38442, [12043, 20843], 21485, 25420, 20329, 21764, 24726,
+    25943, 27803, 28031, 29260, 29437, 31255, 35207, [12185, 35997], 24429,
+    28558, 28921, 33192, 24846, [20415, 63845], 20559, 25153, [12122, 29255],
+    31687, 32232, 32745, 36941, 38829, 39449, 36022, 22378, 24179, 26544,
+    33805, 35413, 21536, 23318, 24163, 24290, 24330, 25987, 32954, 34109,
+    38281, 38491, 20296, 21253, 21261, 21263, 21638, 21754, 22275, 24067,
+    24598, 25243, 25265, 25429, 27873, 28006, 30129, 30770, 32990, 33071,
+    33502, 33889, 33970, 34957, 35090, 36875, 37610, 39165, 39825, 24133,
+    [26292, 64006], 26333, 28689, 29190, 20469, 21117, 24426, 24915, 26451,
+    27161, 28418, 29922, 31080, 34920, 35961, 39111, 39108, 39491, 21697,
+    31263, 26963, 35575, 35914, [12213, 39080], 39342, 24444, 25259, 30130,
+    [12138, 30382], 34987, 36991, 38466, 21305, 24380, 24517, [27852, 63848],
+    29644, 30050, [12134, 30091], 31558, 33534, 39325, 20047, 36924, 19979,
+    20309, 21414, 22799, 24264, 26160, 27827, 29781, 33655, 34662, 36032,
+    36944, 38686, 39957, 22737, 23416, 34384, 35604, 40372, 23506, 24680,
+    24717, 26097, 27735, 28450, 28579, 28698, 32597, 32752, {f: 2, c: 38289},
+    38480, 38867, 21106, 36676, 20989, 21547, 21688, 21859, 21898, 27323,
+    28085, 32216, 33382, 37532, 38519, 40569, 21512, 21704, 30418, 34532,
+    38308, 38356, 38492, 20130, 20233, 23022, 23270, 24055, 24658, 25239,
+    26477, 26689, 27782, 28207, 32568, 32923, 33322, 38917, 20133, 20565,
+    21683, 22419, 22874, 23401, 23475, 25032, 26999, 28023, 28707, 34809,
+    35299, 35442, 35559, 36994, 39405, 39608, 21182, 26680, 20502, 24184,
+    26447, 33607, [12175, 34892, 64008], 20139, 21521, 22190, 29670, 37141,
+    38911, 39177, 39255, [12217, 39321], 22099, 22687, 34395, 35377, 25010,
+    27382, 29563, 36562, 27463, 38570, 39511, 22869, 29184, 36203,
+    [12208, 38761], 20436, 23796, 24358, 25080, 26203, 27883, 28843,
+    [12126, 29572], 29625, 29694, 30505, 30541, 32067, 32098, 32291, 33335,
+    34898, 36066, 37449, 39023, 23377, [12147, 31348], [12174, 34880],
+    [12212, 38913], 23244, 20448, 21332, 22846, 23805, 25406, 28025, 29433,
+    33029, 33031, 33698, 37583, 38960, 20136, 20804, 21009, 22411, 24418,
+    27842, 28366, 28677, 28752, 28847, 29074, 29673, [29801, 63918], 33610,
+    34722, 34913, 36872, 37026, 37795, 39336, 20846, 24407, 24800, 24935,
+    26291, 34137, 36426, 37295, 38795, 20046, 20114, 21628, 22741, 22778,
+    22909, 23733, 24359, [12094, 25142], 25160, 26122, 26215, 27627, 28009,
+    28111, 28246, 28408, 28564, 28640, 28649, 28765, 29392, 29733, 29786,
+    29920, 30355, 31068, 31946, 32286, 32993, 33446, 33899, 33983, 34382,
+    34399, 34676, 35703, 35946, 37804, 38912, 39013, 24785, 25110, 37239,
+    23130, 26127, 28151, 28222, 29759, 39746, 24573, 24794, 31503, 21700,
+    24344, 27742, 27859, 27946, 28888, 32005, 34425, 35340, 40251, 21270,
+    21644, 23301, 27194, [12117, 28779], 30069, 31117, [12146, 31166], 33457,
+    33775, 35441, 35649, 36008, 38772, 25844, 25899, {f: 2, c: 30906}, 31339,
+    20024, 21914, 22864, 23462, 24187, 24739, 25563, 27489, 26213, 26707,
+    28185, 29029, 29872, 32008, 36996, 39529, 39973, 27963, [28369, 63748],
+    29502, 35905, 38346, 20976, 24140, 24488, 24653, 24822, 24880, 24908,
+    {f: 2, c: 26179}, 27045, 27841, 28255, 28361, 28514, 29004, 29852, 30343,
+    31681, 31783, 33618, 34647, 36945, 38541, [12232, 40643], 21295, 22238,
+    24315, 24458, 24674, 24724, 25079, 26214, 26371, 27292, 28142, 28590,
+    28784, 29546, 32362, 33214, 33588, 34516, 35496, 36036, 21123, 29554,
+    23446, 27243, 37892, 21742, 22150, 23389, 25928, 25989, 26313, 26783,
+    28045, 28102, [12120, 29243], 32948, 37237, 39501, 20399, 20505, 21402,
+    21518, 21564, 21897, 21957, 24127, 24460, 26429, 29030, 29661, 36869,
+    21211, 21235, 22628, 22734, 28932, 29071, 29179, 34224, 35347,
+    [26248, 63941], 34216, 21927, 26244, 29002, 33841, 21321, 21913, 27585,
+    24409, 24509, 25582, 26249, 28999, 35569, 36637, 40638, 20241, 25658,
+    28875, 30054, 34407, 24676, 35662, 40440, 20807, 20982, 21256, 27958,
+    33016, [12234, 40657], 26133, 27427, 28824, 30165, 21507, 23673, 32007,
+    35350, [12107, 27424], 27453, 27462, 21560, 24688, 27965, 32725, 33288,
+    20694, 20958, 21916, 22123, 22221, 23020, 23305, 24076, 24985, 24984,
+    25137, 26206, 26342, 29081, {f: 2, c: 29113}, 29351, 31143, 31232, 32690,
+    35440, {s: 163}, {f: 4, c: 12310}, {s: 14}, 8223, 8219, {f: 2, c: 8314},
+    {s: 7}, 8316, 0, {f: 2, c: 8317}, {s: 23}, 700, {s: 44}, 8942, 8759,
+    {s: 20}, {f: 10, c: 10122}, {s: 36}, {f: 26, c: 9398}, {s: 61},
+    {f: 2, c: 8826}, {f: 2, c: 8910}, {f: 2, c: 8832}, {f: 4, c: 8816}, 0,
+    8842, 0, 8843, {f: 2, c: 8822}, 8825, {f: 2, c: 8922}, {s: 5}, 8773, 8771,
+    8776, 0, 8868, {s: 78}, 8244, {s: 11}, 9839, {s: 4}, 8258, {s: 4}, 10045,
+    0, 0, 8226, {s: 4}, {f: 2, c: 8249}, {s: 16}, 10010, 10006, 0, 9711,
+    {s: 3}, 10070, 0, 9676, {s: 24}, 9775, {s: 6}, 12320, 0, {f: 10, c: 10102},
+    {s: 17}, 12306, 12342, {s: 13}, 8710, 0, 8735, 0, {f: 2, c: 8741}, 0, 8787,
+    8785, {f: 2, c: 8806}, 8723, {f: 3, c: 8853}, 0, 8980, 0, 0, 8802, 0, 9649,
+    0, 8738, 8784, 0, 0, 8867, 0, 0, {f: 2, c: 8814}, 8837, 8836, 8713, 8716,
+    {f: 2, c: 8891}, 8794, 8966, {s: 6}, 12958, 0, 8252, {s: 11}, 9702, {s: 3},
+    9663, 9653, 9657, 9667, {s: 4}, 9674, 12849, 12857, 13259, {f: 5, c: 9327},
+    {s: 18}, 8656, 8655, 8653, {s: 37}, 8657, 8659, {s: 8}, 8626, 8625, 0,
+    8628, 8624, 8627, {s: 14}, 8636, 8640, {s: 10}, {f: 2, c: 8644}, {s: 144},
+    {f: 5, c: 9347}, {s: 33}, 12948, {s: 15}, 12965, {s: 93}, 8672, 8674, 8673,
+    8675, {s: 4}, 8678, 8680, 8679, 8681, {s: 20}, 9757, 9759, {s: 76}, 12944,
+    {f: 6, c: 12938}, {s: 15}, {f: 2, c: 12318}, 8246, 0, 8245, {s: 3}, 12540,
+    0, 0, {f: 2, c: 44034}, {f: 2, c: 44037}, {f: 5, c: 44043}, 44056,
+    {f: 2, c: 44062}, {f: 3, c: 44065}, {f: 7, c: 44069}, 44078,
+    {f: 6, c: 44082}, {f: 2, c: 44090}, {f: 3, c: 44093}, {f: 10, c: 44097},
+    44108, {f: 6, c: 44110}, {f: 3, c: 44117}, {f: 3, c: 44121},
+    {f: 19, c: 44125}, {f: 2, c: 44146}, {f: 2, c: 44149}, 44153,
+    {f: 5, c: 44155}, 44162, {f: 2, c: 44167}, {f: 3, c: 44173},
+    {f: 3, c: 44177}, {f: 7, c: 44181}, 44190, {f: 6, c: 44194}, 44203,
+    {f: 2, c: 44205}, {f: 7, c: 44209}, 44218, {f: 3, c: 44222},
+    {f: 2, c: 44226}, {f: 3, c: 44229}, {f: 3, c: 44233}, {f: 8, c: 44237},
+    44246, {f: 8, c: 44248}, {f: 2, c: 44258}, {f: 2, c: 44261}, 44265, 44267,
+    {f: 2, c: 44269}, 44274, 44276, {f: 5, c: 44279}, {f: 2, c: 44286},
+    {f: 3, c: 44289}, 44293, {f: 5, c: 44295}, 44302, 44304, {f: 6, c: 44306},
+    {f: 3, c: 44313}, {f: 3, c: 44317}, {f: 8, c: 44321}, {f: 2, c: 44330},
+    {f: 6, c: 44334}, {f: 2, c: 44342}, {f: 3, c: 44345}, {f: 7, c: 44349},
+    44358, 44360, {f: 6, c: 44362}, {f: 3, c: 44369}, {f: 3, c: 44373},
+    {f: 8, c: 44377}, 44386, {f: 8, c: 44388}, {f: 2, c: 44398},
+    {f: 2, c: 44401}, {f: 4, c: 44407}, 44414, 44416, {f: 5, c: 44419},
+    {f: 2, c: 44426}, {f: 3, c: 44429}, {f: 11, c: 44433}, {f: 6, c: 44446},
+    {f: 18, c: 44453}, {f: 8, c: 44472}, {f: 2, c: 44482}, {f: 3, c: 44485},
+    {f: 7, c: 44489}, 44498, {f: 8, c: 44500}, {f: 3, c: 44509},
+    {f: 3, c: 44513}, {f: 19, c: 44517}, {f: 2, c: 44538}, {f: 2, c: 44541},
+    {f: 6, c: 44546}, 44554, 44556, {f: 6, c: 44558}, {f: 27, c: 44565},
+    {f: 2, c: 44594}, {f: 2, c: 44597}, 44601, {f: 5, c: 44603}, 44610, 44612,
+    {f: 3, c: 44615}, 44619, 44623, {f: 3, c: 44625}, 44629, {f: 5, c: 44631},
+    44638, {f: 3, c: 44642}, {f: 2, c: 44646}, {f: 2, c: 44650},
+    {f: 3, c: 44653}, {f: 7, c: 44657}, 44666, {f: 6, c: 44670},
+    {f: 6, c: 44678}, {f: 47, c: 44685}, 44735, {f: 3, c: 44737},
+    {f: 7, c: 44741}, 44750, {f: 6, c: 44754}, {f: 2, c: 44762},
+    {f: 11, c: 44765}, {f: 2, c: 44777}, 44780, {f: 6, c: 44782},
+    {f: 3, c: 44789}, {f: 3, c: 44793}, {f: 10, c: 44797}, {f: 4, c: 44809},
+    {f: 2, c: 44814}, {f: 27, c: 44817}, {f: 2, c: 44846}, 44849, 44851,
+    {f: 7, c: 44853}, 44862, 44864, {f: 4, c: 44868}, {f: 6, c: 44874},
+    {f: 11, c: 44881}, {f: 6, c: 44894}, {f: 19, c: 44902}, {f: 6, c: 44922},
+    {f: 3, c: 44929}, {f: 3, c: 44933}, {f: 7, c: 44937}, {f: 3, c: 44946},
+    {f: 6, c: 44950}, {f: 27, c: 44957}, {f: 2, c: 44986}, {f: 3, c: 44989},
+    {f: 6, c: 44993}, 45002, 45004, {f: 5, c: 45007}, {f: 7, c: 45013},
+    {f: 11, c: 45021}, {f: 6, c: 45034}, {f: 2, c: 45042}, {f: 3, c: 45045},
+    {f: 7, c: 45049}, {f: 2, c: 45058}, {f: 7, c: 45061}, {f: 3, c: 45069},
+    {f: 3, c: 45073}, {f: 7, c: 45077}, {f: 10, c: 45086}, {f: 27, c: 45097},
+    {f: 2, c: 45126}, 45129, 45131, 45133, {f: 4, c: 45135}, 45142, 45144,
+    {f: 3, c: 45146}, {f: 30, c: 45150}, {f: 2, c: 45182}, {f: 3, c: 45185},
+    {f: 7, c: 45189}, 45198, 45200, {f: 6, c: 45202}, 45211, {f: 2, c: 45213},
+    {f: 5, c: 45219}, 45226, 45232, 45234, {f: 2, c: 45238}, {f: 3, c: 45241},
+    {f: 7, c: 45245}, 45254, {f: 6, c: 45258}, {f: 2, c: 45266},
+    {f: 3, c: 45269}, {f: 7, c: 45273}, {f: 4, c: 45281}, {f: 34, c: 45286},
+    45322, {f: 3, c: 45325}, 45329, {f: 4, c: 45332}, 45338, {f: 5, c: 45342},
+    {f: 2, c: 45350}, {f: 3, c: 45353}, {f: 7, c: 45357}, 45366,
+    {f: 6, c: 45370}, {f: 2, c: 45378}, {f: 3, c: 45381}, {f: 7, c: 45385},
+    {f: 2, c: 45394}, {f: 2, c: 45398}, {f: 3, c: 45401}, {f: 3, c: 45405},
+    {f: 23, c: 45409}, {f: 2, c: 45434}, {f: 3, c: 45437}, 45441,
+    {f: 5, c: 45443}, 45450, 45452, {f: 4, c: 45454}, {f: 3, c: 45461},
+    {f: 3, c: 45465}, {f: 11, c: 45469}, {f: 35, c: 45481}, {f: 3, c: 45517},
+    {f: 3, c: 45521}, {f: 7, c: 45525}, 45534, {f: 8, c: 45536},
+    {f: 2, c: 45546}, {f: 3, c: 45549}, {f: 8, c: 45553}, 45562, 45564,
+    {f: 6, c: 45566}, {f: 2, c: 45574}, {f: 2, c: 45577}, {f: 7, c: 45581},
+    45590, 45592, {f: 6, c: 45594}, {f: 19, c: 45601}, {f: 7, c: 45621},
+    {f: 27, c: 45629}, {f: 3, c: 45657}, {f: 3, c: 45661}, {f: 7, c: 45665},
+    {f: 10, c: 45674}, {f: 6, c: 45686}, {f: 7, c: 45693}, {f: 3, c: 45702},
+    {f: 6, c: 45706}, {f: 2, c: 45714}, {f: 3, c: 45717}, {f: 5, c: 45723},
+    45730, 45732, {f: 3, c: 45735}, 45739, {f: 3, c: 45741}, {f: 3, c: 45745},
+    {f: 19, c: 45749}, {f: 2, c: 45770}, {f: 3, c: 45773}, 45777,
+    {f: 5, c: 45779}, 45786, 45788, {f: 4, c: 45790}, 45795, 45799,
+    {f: 2, c: 45801}, {f: 3, c: 45808}, 45814, {f: 3, c: 45820},
+    {f: 2, c: 45826}, {f: 3, c: 45829}, {f: 7, c: 45833}, 45842,
+    {f: 6, c: 45846}, {f: 55, c: 45853}, 45911, {f: 2, c: 45913}, 45917,
+    {f: 4, c: 45920}, 45926, 45928, 45930, {f: 2, c: 45932}, 45935,
+    {f: 2, c: 45938}, {f: 3, c: 45941}, {f: 7, c: 45945}, 45954,
+    {f: 6, c: 45958}, {f: 3, c: 45965}, {f: 3, c: 45969}, {f: 11, c: 45973},
+    {f: 6, c: 45986}, {f: 3, c: 45993}, {f: 23, c: 45997}, {f: 2, c: 46022},
+    {f: 2, c: 46025}, 46029, 46031, {f: 3, c: 46033}, 46038, 46040, 46042,
+    46044, {f: 2, c: 46046}, {f: 3, c: 46049}, {f: 3, c: 46053},
+    {f: 19, c: 46057}, {f: 19, c: 46077}, {f: 7, c: 46097}, {f: 3, c: 46105},
+    {f: 3, c: 46109}, {f: 7, c: 46113}, 46122, {f: 8, c: 46124},
+    {f: 27, c: 46133}, {f: 2, c: 46162}, {f: 3, c: 46165}, {f: 7, c: 46169},
+    46178, 46180, {f: 6, c: 46182}, {f: 19, c: 46189}, {f: 7, c: 46209},
+    {f: 20, c: 46217}, {f: 6, c: 46238}, {f: 3, c: 46245}, {f: 3, c: 46249},
+    {f: 8, c: 46253}, 46262, 46264, {f: 6, c: 46266}, {f: 3, c: 46273},
+    {f: 3, c: 46277}, {f: 7, c: 46281}, {f: 4, c: 46289}, {f: 6, c: 46294},
+    {f: 2, c: 46302}, {f: 2, c: 46305}, 46309, {f: 5, c: 46311}, 46318, 46320,
+    {f: 6, c: 46322}, {f: 27, c: 46329}, {f: 2, c: 46358}, {f: 2, c: 46361},
+    {f: 7, c: 46365}, 46374, {f: 5, c: 46379}, {f: 2, c: 46386},
+    {f: 3, c: 46389}, {f: 7, c: 46393}, 46402, {f: 5, c: 46406},
+    {f: 2, c: 46414}, {f: 3, c: 46417}, {f: 7, c: 46421}, 46430,
+    {f: 62, c: 46434}, {f: 2, c: 46498}, {f: 3, c: 46501}, 46505,
+    {f: 4, c: 46508}, 46514, {f: 5, c: 46518}, {f: 2, c: 46526},
+    {f: 3, c: 46529}, {f: 7, c: 46533}, 46542, {f: 6, c: 46546},
+    {f: 19, c: 46553}, {f: 35, c: 46573}, {f: 2, c: 46610}, {f: 3, c: 46613},
+    {f: 12, c: 46617}, {f: 6, c: 46630}, {f: 7, c: 46637}, {f: 19, c: 46645},
+    {f: 27, c: 46665}, {f: 3, c: 46693}, {f: 51, c: 46697}, {f: 2, c: 46750},
+    {f: 3, c: 46753}, {f: 6, c: 46757}, {f: 4, c: 46765}, {f: 34, c: 46770},
+    {f: 27, c: 46805}, {f: 3, c: 46833}, {f: 3, c: 46837}, {f: 7, c: 46841},
+    {f: 3, c: 46850}, {f: 34, c: 46854}, {f: 2, c: 46890}, {f: 2, c: 46893},
+    {f: 7, c: 46897}, 46906, {f: 8, c: 46908}, {f: 3, c: 46917},
+    {f: 3, c: 46921}, {f: 7, c: 46925}, {f: 10, c: 46934}, {f: 3, c: 46945},
+    {f: 3, c: 46949}, {f: 7, c: 46953}, 46962, 46964, {f: 6, c: 46966},
+    {f: 2, c: 46974}, {f: 3, c: 46977}, {f: 7, c: 46981}, 46990,
+    {f: 3, c: 46995}, {f: 2, c: 47002}, {f: 3, c: 47005}, {f: 7, c: 47009},
+    47018, {f: 6, c: 47022}, {f: 2, c: 47030}, {f: 14, c: 47033}, 47048,
+    {f: 34, c: 47050}, {f: 2, c: 47086}, {f: 3, c: 47089}, {f: 7, c: 47093},
+    47102, {f: 5, c: 47106}, {f: 2, c: 47114}, {f: 3, c: 47117},
+    {f: 7, c: 47121}, 47130, 47132, {f: 6, c: 47134}, {f: 2, c: 47142},
+    {f: 3, c: 47145}, {f: 7, c: 47149}, 47158, {f: 6, c: 47162},
+    {f: 3, c: 47169}, {f: 12, c: 47173}, 47186, {f: 8, c: 47188},
+    {f: 2, c: 47198}, {f: 3, c: 47201}, {f: 7, c: 47205}, 47214, 47216,
+    {f: 6, c: 47218}, {f: 3, c: 47225}, {f: 16, c: 47229}, {f: 26, c: 47246},
+    {f: 7, c: 47273}, {f: 3, c: 47281}, {f: 3, c: 47285}, {f: 7, c: 47289},
+    47298, 47300, {f: 6, c: 47302}, {f: 3, c: 47309}, {f: 3, c: 47313},
+    {f: 8, c: 47317}, 47326, 47328, {f: 6, c: 47330}, {f: 2, c: 47338},
+    {f: 3, c: 47341}, {f: 7, c: 47345}, 47354, 47356, {f: 6, c: 47358},
+    {f: 19, c: 47365}, {f: 7, c: 47385}, {f: 27, c: 47393}, {f: 2, c: 47422},
+    {f: 3, c: 47425}, {f: 7, c: 47429}, {f: 2, c: 47437}, 47440,
+    {f: 6, c: 47442}, {f: 2, c: 47450}, {f: 3, c: 47453}, {f: 7, c: 47457},
+    47466, 47468, {f: 6, c: 47470}, {f: 2, c: 47478}, {f: 3, c: 47481},
+    {f: 7, c: 47485}, 47494, 47496, {f: 2, c: 47499}, {f: 29, c: 47503},
+    {f: 2, c: 47534}, {f: 3, c: 47537}, {f: 7, c: 47541}, 47550, 47552,
+    {f: 6, c: 47554}, {f: 2, c: 47562}, 47565, {f: 5, c: 47571}, 47578, 47580,
+    {f: 2, c: 47583}, 47586, {f: 2, c: 47590}, {f: 3, c: 47593},
+    {f: 7, c: 47597}, 47606, {f: 5, c: 47611}, {f: 6, c: 47618},
+    {f: 12, c: 47625}, {f: 34, c: 47638}, {f: 2, c: 47674}, {f: 3, c: 47677},
+    47681, {f: 5, c: 47683}, 47690, 47692, {f: 4, c: 47695}, {f: 2, c: 47702},
+    {f: 3, c: 47705}, {f: 7, c: 47709}, 47718, {f: 6, c: 47722},
+    {f: 2, c: 47730}, {f: 3, c: 47733}, {f: 10, c: 47737}, 47750,
+    {f: 4, c: 47752}, {f: 27, c: 47757}, 47786, {f: 3, c: 47789}, 47793,
+    {f: 5, c: 47795}, 47802, 47804, {f: 6, c: 47806}, {f: 3, c: 47813},
+    {f: 15, c: 47817}, {f: 34, c: 47834}, {f: 3, c: 47869}, {f: 3, c: 47873},
+    {f: 8, c: 47877}, 47886, 47888, {f: 6, c: 47890}, {f: 3, c: 47897},
+    {f: 3, c: 47901}, {f: 8, c: 47905}, 47914, {f: 8, c: 47916}, 47927,
+    {f: 2, c: 47929}, {f: 5, c: 47935}, 47942, 47944, {f: 3, c: 47946}, 47950,
+    {f: 3, c: 47953}, {f: 3, c: 47957}, {f: 8, c: 47961}, 47970,
+    {f: 8, c: 47972}, {f: 27, c: 47981}, {f: 3, c: 48009}, {f: 3, c: 48013},
+    {f: 19, c: 48017}, {f: 3, c: 48037}, {f: 3, c: 48041}, {f: 7, c: 48045},
+    {f: 2, c: 48053}, {f: 8, c: 48056}, {f: 3, c: 48065}, {f: 3, c: 48069},
+    {f: 7, c: 48073}, {f: 2, c: 48081}, {f: 36, c: 48084}, {f: 2, c: 48122},
+    {f: 2, c: 48125}, 48129, {f: 5, c: 48131}, 48138, 48142, 48144,
+    {f: 2, c: 48146}, {f: 2, c: 48153}, {f: 4, c: 48160}, 48166, 48168,
+    {f: 3, c: 48170}, {f: 2, c: 48174}, {f: 2, c: 48178}, {f: 3, c: 48181},
+    {f: 7, c: 48185}, 48194, {f: 3, c: 48198}, {f: 2, c: 48202},
+    {f: 2, c: 48206}, {f: 12, c: 48209}, {f: 38, c: 48222}, {f: 2, c: 48262},
+    {f: 2, c: 48265}, 48269, {f: 5, c: 48271}, 48278, 48280, {f: 5, c: 48283},
+    {f: 2, c: 48290}, {f: 2, c: 48293}, {f: 7, c: 48297}, 48306,
+    {f: 6, c: 48310}, {f: 2, c: 48318}, {f: 3, c: 48321}, {f: 8, c: 48325},
+    48334, {f: 3, c: 48338}, {f: 2, c: 48342}, {f: 3, c: 48345},
+    {f: 23, c: 48349}, 48375, {f: 3, c: 48377}, {f: 7, c: 48381}, 48390, 48392,
+    {f: 6, c: 48394}, {f: 3, c: 48401}, {f: 15, c: 48405}, {f: 7, c: 48421},
+    {f: 19, c: 48429}, {f: 7, c: 48449}, {f: 2, c: 48458}, {f: 3, c: 48461},
+    {f: 7, c: 48465}, {f: 10, c: 48474}, {f: 3, c: 48485}, {f: 23, c: 48489},
+    {f: 2, c: 48514}, {f: 2, c: 48517}, {f: 5, c: 48523}, 48530, 48532,
+    {f: 3, c: 48534}, 48539, {f: 7, c: 48541}, {f: 11, c: 48549},
+    {f: 7, c: 48561}, {f: 27, c: 48569}, {f: 2, c: 48598}, {f: 3, c: 48601},
+    {f: 12, c: 48605}, {f: 6, c: 48618}, {f: 3, c: 48625}, {f: 3, c: 48629},
+    {f: 7, c: 48633}, {f: 2, c: 48641}, 48644, {f: 6, c: 48646},
+    {f: 2, c: 48654}, {f: 3, c: 48657}, {f: 7, c: 48661}, 48670,
+    {f: 36, c: 48672}, {f: 2, c: 48710}, {f: 3, c: 48713}, 48717,
+    {f: 5, c: 48719}, 48726, 48728, {f: 4, c: 48732}, {f: 2, c: 48738},
+    {f: 3, c: 48741}, 48745, {f: 5, c: 48747}, 48754, {f: 5, c: 48758},
+    {f: 2, c: 48766}, {f: 3, c: 48769}, {f: 7, c: 48773}, 48782,
+    {f: 6, c: 48786}, {f: 14, c: 48794}, {f: 39, c: 48809}, {f: 2, c: 48850},
+    {f: 2, c: 48853}, {f: 7, c: 48857}, {f: 2, c: 48865}, {f: 6, c: 48870},
+    {f: 20, c: 48877}, {f: 6, c: 48898}, {f: 14, c: 48906}, 48922,
+    {f: 34, c: 48926}, {f: 2, c: 48962}, {f: 3, c: 48965}, {f: 7, c: 48969},
+    {f: 3, c: 48978}, {f: 62, c: 48982}, {f: 27, c: 49045}, {f: 20, c: 49073},
+    {f: 6, c: 49094}, {f: 2, c: 49102}, {f: 3, c: 49105}, {f: 7, c: 49109},
+    {f: 2, c: 49117}, 49120, {f: 90, c: 49122}, {f: 20, c: 49213},
+    {f: 6, c: 49234}, {f: 3, c: 49241}, {f: 3, c: 49245}, {f: 7, c: 49249},
+    {f: 38, c: 49258}, {f: 2, c: 49298}, {f: 3, c: 49301}, {f: 7, c: 49305},
+    49314, 49316, {f: 6, c: 49318}, 49326, {f: 2, c: 49329}, {f: 5, c: 49335},
+    49342, {f: 3, c: 49346}, {f: 2, c: 49350}, {f: 2, c: 49354},
+    {f: 3, c: 49357}, {f: 7, c: 49361}, 49370, {f: 6, c: 49374},
+    {f: 2, c: 49382}, {f: 3, c: 49385}, {f: 7, c: 49389}, 49398, 49400,
+    {f: 6, c: 49402}, {f: 3, c: 49409}, {f: 3, c: 49413}, {f: 7, c: 49417},
+    {f: 4, c: 49425}, {f: 6, c: 49430}, {f: 2, c: 49441}, 49445,
+    {f: 4, c: 49448}, 49454, {f: 4, c: 49458}, 49463, {f: 2, c: 49466},
+    {f: 3, c: 49469}, {f: 7, c: 49473}, 49482, {f: 6, c: 49486},
+    {f: 2, c: 49494}, {f: 3, c: 49497}, {f: 7, c: 49501}, 49510,
+    {f: 6, c: 49514}, {f: 3, c: 49521}, {f: 3, c: 49525}, {f: 12, c: 49529},
+    {f: 6, c: 49542}, 49551, {f: 3, c: 49553}, 49557, {f: 5, c: 49559}, 49566,
+    49568, {f: 3, c: 49570}, {f: 2, c: 49574}, {f: 2, c: 49578},
+    {f: 3, c: 49581}, {f: 12, c: 49585}, {f: 6, c: 49598}, {f: 3, c: 49605},
+    {f: 3, c: 49609}, {f: 7, c: 49613}, {f: 2, c: 49621}, {f: 7, c: 49625},
+    {f: 3, c: 49633}, {f: 3, c: 49637}, {f: 7, c: 49641}, 49650,
+    {f: 8, c: 49652}, {f: 2, c: 49662}, {f: 3, c: 49665}, {f: 7, c: 49669},
+    49678, 49680, {f: 6, c: 49682}, {f: 2, c: 49690}, {f: 2, c: 49693},
+    {f: 7, c: 49697}, 49706, 49708, 49710, 49712, 49715, {f: 19, c: 49717},
+    {f: 7, c: 49737}, {f: 2, c: 49746}, {f: 3, c: 49749}, {f: 7, c: 49753},
+    {f: 4, c: 49761}, {f: 6, c: 49766}, {f: 2, c: 49774}, {f: 3, c: 49777},
+    {f: 7, c: 49781}, 49790, 49792, {f: 6, c: 49794}, {f: 6, c: 49802},
+    {f: 7, c: 49809}, {f: 2, c: 49817}, 49820, {f: 6, c: 49822},
+    {f: 2, c: 49830}, {f: 3, c: 49833}, {f: 6, c: 49838}, 49846, 49848,
+    {f: 34, c: 49850}, {f: 2, c: 49886}, {f: 2, c: 49889}, {f: 6, c: 49893},
+    49902, 49904, {f: 4, c: 49906}, 49911, 49914, {f: 3, c: 49917},
+    {f: 7, c: 49921}, {f: 2, c: 49930}, {f: 5, c: 49934}, {f: 2, c: 49942},
+    {f: 3, c: 49945}, {f: 7, c: 49949}, {f: 2, c: 49958}, {f: 27, c: 49962},
+    {f: 34, c: 49990}, {f: 2, c: 50026}, {f: 3, c: 50029}, 50033,
+    {f: 5, c: 50035}, {f: 2, c: 50042}, {f: 6, c: 50046}, {f: 3, c: 50053},
+    {f: 3, c: 50057}, {f: 51, c: 50061}, {f: 23, c: 50113}, {f: 2, c: 50138},
+    {f: 2, c: 50141}, 50145, {f: 5, c: 50147}, {f: 3, c: 50154},
+    {f: 6, c: 50158}, {f: 2, c: 50166}, {f: 15, c: 50169}, {f: 7, c: 50185},
+    {f: 19, c: 50193}, {f: 7, c: 50213}, {f: 3, c: 50221}, {f: 3, c: 50225},
+    {f: 7, c: 50229}, {f: 10, c: 50238}, {f: 27, c: 50249}, {f: 2, c: 50278},
+    {f: 3, c: 50281}, {f: 7, c: 50285}, {f: 3, c: 50294}, {f: 6, c: 50298},
+    {f: 19, c: 50305}, {f: 7, c: 50325}, {f: 27, c: 50333}, {f: 3, c: 50361},
+    {f: 44, c: 50365}, {f: 6, c: 50410}, {f: 2, c: 50418}, {f: 3, c: 50421},
+    50425, {f: 4, c: 50427}, {f: 10, c: 50434}, {f: 3, c: 50445},
+    {f: 3, c: 50449}, {f: 7, c: 50453}, {f: 11, c: 50461}, {f: 2, c: 50474},
+    {f: 3, c: 50477}, {f: 7, c: 50481}, 50490, 50492, {f: 6, c: 50494},
+    {f: 2, c: 50502}, 50507, {f: 4, c: 50511}, 50518, {f: 3, c: 50522}, 50527,
+    {f: 2, c: 50530}, {f: 3, c: 50533}, {f: 7, c: 50537}, 50546,
+    {f: 6, c: 50550}, {f: 2, c: 50558}, {f: 3, c: 50561}, {f: 2, c: 50565},
+    {f: 4, c: 50568}, 50574, 50576, {f: 3, c: 50578}, 50582, {f: 3, c: 50585},
+    {f: 3, c: 50589}, {f: 8, c: 50593}, {f: 10, c: 50602}, {f: 2, c: 50614},
+    50618, {f: 5, c: 50623}, 50635, 50637, 50639, {f: 2, c: 50642},
+    {f: 3, c: 50645}, {f: 7, c: 50649}, 50658, 50660, {f: 6, c: 50662}, 50671,
+    {f: 3, c: 50673}, 50677, {f: 4, c: 50680}, {f: 3, c: 50690},
+    {f: 3, c: 50697}, {f: 3, c: 50701}, {f: 7, c: 50705}, 50714,
+    {f: 7, c: 50717}, {f: 2, c: 50726}, {f: 3, c: 50729}, 50735,
+    {f: 2, c: 50737}, 50742, 50744, 50746, {f: 4, c: 50748}, {f: 2, c: 50754},
+    {f: 3, c: 50757}, {f: 7, c: 50761}, 50770, {f: 6, c: 50774},
+    {f: 2, c: 50782}, {f: 11, c: 50785}, {f: 2, c: 50797}, 50800,
+    {f: 6, c: 50802}, {f: 2, c: 50810}, {f: 3, c: 50813}, {f: 7, c: 50817},
+    50826, 50828, {f: 6, c: 50830}, {f: 2, c: 50838}, {f: 3, c: 50841},
+    {f: 7, c: 50845}, 50854, 50856, {f: 6, c: 50858}, {f: 2, c: 50866},
+    {f: 3, c: 50869}, {f: 5, c: 50875}, 50882, 50884, {f: 6, c: 50886},
+    {f: 2, c: 50894}, {f: 3, c: 50897}, {f: 7, c: 50901}, {f: 2, c: 50910},
+    {f: 6, c: 50914}, {f: 2, c: 50922}, {f: 3, c: 50925}, {f: 7, c: 50929},
+    {f: 3, c: 50938}, {f: 6, c: 50942}, {f: 2, c: 50950}, {f: 3, c: 50953},
+    {f: 7, c: 50957}, 50966, 50968, {f: 6, c: 50970}, {f: 2, c: 50978},
+    {f: 3, c: 50981}, {f: 7, c: 50985}, 50994, 50996, 50998, {f: 4, c: 51000},
+    {f: 2, c: 51006}, {f: 3, c: 51009}, {f: 5, c: 51013}, 51019, 51022, 51024,
+    {f: 3, c: 51033}, {f: 3, c: 51037}, {f: 7, c: 51041}, {f: 2, c: 51049},
+    {f: 8, c: 51052}, {f: 2, c: 51062}, {f: 3, c: 51065}, {f: 4, c: 51071},
+    51078, {f: 3, c: 51083}, 51087, {f: 2, c: 51090}, 51093, 51097,
+    {f: 5, c: 51099}, 51106, {f: 5, c: 51111}, {f: 2, c: 51118},
+    {f: 3, c: 51121}, {f: 7, c: 51125}, 51134, {f: 6, c: 51138},
+    {f: 2, c: 51146}, 51149, 51151, {f: 7, c: 51153}, {f: 4, c: 51161},
+    {f: 6, c: 51166}, {f: 3, c: 51173}, {f: 3, c: 51177}, {f: 19, c: 51181},
+    {f: 2, c: 51202}, {f: 3, c: 51205}, 51209, {f: 5, c: 51211}, 51218, 51220,
+    {f: 5, c: 51223}, {f: 2, c: 51230}, {f: 3, c: 51233}, {f: 7, c: 51237},
+    51246, 51248, {f: 6, c: 51250}, {f: 3, c: 51257}, {f: 3, c: 51261},
+    {f: 7, c: 51265}, {f: 2, c: 51274}, {f: 6, c: 51278}, {f: 27, c: 51285},
+    {f: 2, c: 51314}, {f: 3, c: 51317}, 51321, {f: 5, c: 51323}, 51330, 51332,
+    {f: 3, c: 51336}, {f: 6, c: 51342}, {f: 8, c: 51349}, 51358, 51360,
+    {f: 6, c: 51362}, {f: 19, c: 51369}, {f: 6, c: 51390}, {f: 3, c: 51397},
+    {f: 3, c: 51401}, {f: 7, c: 51405}, 51414, 51416, {f: 6, c: 51418},
+    {f: 2, c: 51426}, {f: 16, c: 51429}, {f: 6, c: 51446}, {f: 2, c: 51454},
+    {f: 3, c: 51457}, {f: 5, c: 51463}, 51470, 51472, {f: 6, c: 51474},
+    {f: 19, c: 51481}, {f: 7, c: 51501}, {f: 27, c: 51509}, {f: 2, c: 51538},
+    {f: 3, c: 51541}, {f: 7, c: 51545}, 51554, {f: 8, c: 51556},
+    {f: 3, c: 51565}, {f: 3, c: 51569}, {f: 7, c: 51573}, {f: 11, c: 51581},
+    {f: 2, c: 51594}, {f: 3, c: 51597}, {f: 7, c: 51601}, 51610, 51612,
+    {f: 34, c: 51614}, {f: 2, c: 51650}, {f: 2, c: 51653}, 51657,
+    {f: 5, c: 51659}, 51666, 51668, {f: 2, c: 51671}, 51675, {f: 2, c: 51678},
+    51681, 51683, {f: 2, c: 51685}, {f: 4, c: 51688}, 51694, {f: 6, c: 51698},
+    {f: 2, c: 51706}, {f: 3, c: 51709}, {f: 7, c: 51713}, 51722,
+    {f: 6, c: 51726}, {f: 3, c: 51733}, {f: 16, c: 51737}, {f: 34, c: 51754},
+    {f: 2, c: 51790}, {f: 3, c: 51793}, {f: 7, c: 51797}, 51806,
+    {f: 6, c: 51810}, {f: 20, c: 51817}, {f: 6, c: 51838}, {f: 19, c: 51845},
+    {f: 35, c: 51865}, {f: 2, c: 51902}, {f: 3, c: 51905}, {f: 7, c: 51909},
+    51918, 51920, 51922, {f: 4, c: 51924}, {f: 6, c: 51930}, {f: 11, c: 51937},
+    {f: 7, c: 51949}, {f: 19, c: 51957}, {f: 7, c: 51977}, {f: 3, c: 51985},
+    {f: 3, c: 51989}, {f: 7, c: 51993}, {f: 31, c: 52002}, {f: 6, c: 52034},
+    {f: 2, c: 52042}, {f: 3, c: 52045}, {f: 7, c: 52049}, {f: 3, c: 52058},
+    {f: 6, c: 52062}, {f: 19, c: 52069}, {f: 34, c: 52090}, {f: 27, c: 52125},
+    {f: 27, c: 52153}, {f: 15, c: 52181}, {f: 2, c: 52197}, 52200,
+    {f: 34, c: 52202}, {f: 2, c: 52238}, {f: 3, c: 52241}, {f: 7, c: 52245},
+    {f: 3, c: 52254}, {f: 4, c: 52259}, {f: 2, c: 52266}, 52269, 52271,
+    {f: 7, c: 52273}, 52282, {f: 5, c: 52287}, {f: 2, c: 52294},
+    {f: 3, c: 52297}, {f: 7, c: 52301}, 52310, {f: 6, c: 52314},
+    {f: 3, c: 52321}, 52325, 52327, {f: 7, c: 52329}, {f: 4, c: 52337},
+    {f: 34, c: 52342}, {f: 2, c: 52378}, {f: 3, c: 52381}, {f: 7, c: 52385},
+    52394, {f: 6, c: 52398}, {f: 2, c: 52406}, {f: 3, c: 52409},
+    {f: 7, c: 52413}, 52422, 52424, {f: 6, c: 52426}, {f: 3, c: 52433},
+    {f: 15, c: 52437}, {f: 7, c: 52453}, {f: 3, c: 52461}, {f: 16, c: 52465},
+    {f: 6, c: 52482}, {f: 2, c: 52490}, {f: 3, c: 52493}, {f: 7, c: 52497},
+    52506, 52508, {f: 6, c: 52510}, {f: 3, c: 52517}, {f: 3, c: 52521},
+    {f: 12, c: 52525}, {f: 34, c: 52538}, {f: 3, c: 52573}, {f: 3, c: 52577},
+    {f: 7, c: 52581}, 52590, 52592, {f: 6, c: 52594}, {f: 15, c: 52601},
+    {f: 11, c: 52617}, {f: 2, c: 52630}, {f: 3, c: 52633}, {f: 7, c: 52637},
+    52646, 52648, {f: 6, c: 52650}, {f: 19, c: 52657}, {f: 7, c: 52677},
+    {f: 3, c: 52685}, {f: 23, c: 52689}, {f: 3, c: 52713}, {f: 3, c: 52717},
+    {f: 7, c: 52721}, 52730, 52732, {f: 6, c: 52734}, {f: 3, c: 52741},
+    {f: 3, c: 52745}, {f: 7, c: 52749}, {f: 4, c: 52757}, {f: 6, c: 52762},
+    {f: 2, c: 52770}, {f: 3, c: 52773}, {f: 7, c: 52777}, 52786, 52788,
+    {f: 34, c: 52790}, {f: 2, c: 52826}, {f: 2, c: 52829}, {f: 6, c: 52834},
+    52842, 52844, {f: 6, c: 52846}, {f: 2, c: 52854}, {f: 3, c: 52857},
+    {f: 7, c: 52861}, 52870, 52872, {f: 6, c: 52874}, {f: 2, c: 52882},
+    {f: 3, c: 52885}, {f: 7, c: 52889}, 52898, {f: 6, c: 52902},
+    {f: 19, c: 52910}, {f: 34, c: 52930}, {f: 2, c: 52966}, {f: 2, c: 52969},
+    {f: 7, c: 52973}, 52982, {f: 6, c: 52986}, {f: 2, c: 52994},
+    {f: 3, c: 52997}, {f: 7, c: 53001}, 53010, 53012, {f: 6, c: 53014},
+    {f: 3, c: 53021}, {f: 3, c: 53025}, {f: 7, c: 53029}, 53038,
+    {f: 6, c: 53042}, {f: 27, c: 53049}, {f: 2, c: 53078}, {f: 3, c: 53081},
+    {f: 7, c: 53085}, 53094, 53096, {f: 6, c: 53098}, {f: 2, c: 53106},
+    {f: 3, c: 53109}, {f: 7, c: 53113}, {f: 4, c: 53121}, {f: 6, c: 53126},
+    {f: 20, c: 53133}, {f: 6, c: 53154}, {f: 7, c: 53161}, {f: 19, c: 53169},
+    {f: 27, c: 53189}, {f: 2, c: 53218}, {f: 3, c: 53221}, {f: 7, c: 53225},
+    53234, 53236, {f: 6, c: 53238}, {f: 3, c: 53245}, {f: 3, c: 53249},
+    {f: 12, c: 53253}, {f: 6, c: 53266}, {f: 20, c: 53273}, {f: 6, c: 53294},
+    {f: 2, c: 53302}, {f: 3, c: 53305}, {f: 7, c: 53309}, 53318, 53320,
+    {f: 6, c: 53322}, {f: 3, c: 53329}, {f: 3, c: 53333}, {f: 7, c: 53337},
+    {f: 11, c: 53345}, {f: 2, c: 53358}, {f: 3, c: 53361}, {f: 7, c: 53365},
+    {f: 3, c: 53374}, {f: 34, c: 53378}, {f: 2, c: 53414}, {f: 3, c: 53417},
+    {f: 7, c: 53421}, 53430, 53432, {f: 6, c: 53434}, {f: 2, c: 53442},
+    {f: 3, c: 53445}, {f: 6, c: 53450}, 53458, {f: 6, c: 53462},
+    {f: 2, c: 53470}, {f: 3, c: 53473}, {f: 7, c: 53477}, 53486,
+    {f: 6, c: 53490}, {f: 20, c: 53497}, {f: 34, c: 53518}, {f: 2, c: 53554},
+    {f: 3, c: 53557}, 53561, {f: 5, c: 53563}, 53570, {f: 6, c: 53574},
+    {f: 2, c: 53582}, {f: 3, c: 53585}, {f: 7, c: 53589}, 53598, 53600,
+    {f: 6, c: 53602}, {f: 3, c: 53609}, {f: 15, c: 53613}, {f: 7, c: 53629},
+    {f: 3, c: 53637}, {f: 23, c: 53641}, {f: 2, c: 53666}, {f: 3, c: 53669},
+    {f: 7, c: 53673}, 53682, 53684, {f: 4, c: 53686}, 53691, {f: 3, c: 53693},
+    {f: 23, c: 53697}, {f: 27, c: 53721}, {f: 3, c: 53749}, {f: 14, c: 53753},
+    53768, {f: 6, c: 53770}, {f: 27, c: 53777}, {f: 2, c: 53806},
+    {f: 3, c: 53809}, {f: 7, c: 53813}, 53822, 53824, {f: 6, c: 53826},
+    {f: 19, c: 53833}, {f: 7, c: 53853}, {f: 27, c: 53861}, {f: 2, c: 53890},
+    {f: 3, c: 53893}, {f: 7, c: 53897}, {f: 3, c: 53906}, {f: 6, c: 53910},
+    {f: 3, c: 53917}, {f: 3, c: 53921}, {f: 7, c: 53925}, {f: 4, c: 53933},
+    {f: 6, c: 53938}, {f: 2, c: 53946}, {f: 2, c: 53949}, 53953,
+    {f: 5, c: 53955}, 53962, {f: 8, c: 53964}, {f: 3, c: 53973},
+    {f: 3, c: 53977}, {f: 7, c: 53981}, {f: 10, c: 53990}, {f: 2, c: 54002},
+    {f: 3, c: 54005}, {f: 7, c: 54009}, 54018, 54020, {f: 6, c: 54022}, 54031,
+    {f: 3, c: 54033}, 54037, {f: 5, c: 54039}, 54046, {f: 3, c: 54050},
+    {f: 2, c: 54054}, {f: 2, c: 54058}, {f: 3, c: 54061}, {f: 7, c: 54065},
+    54074, {f: 6, c: 54078}, {f: 54, c: 54086}, {f: 2, c: 54142},
+    {f: 3, c: 54145}, {f: 7, c: 54149}, 54158, {f: 6, c: 54162},
+    {f: 2, c: 54170}, {f: 3, c: 54173}, {f: 7, c: 54177}, 54186, 54188,
+    {f: 6, c: 54190}, {f: 3, c: 54197}, {f: 3, c: 54201}, {f: 7, c: 54205},
+    {f: 2, c: 54214}, {f: 6, c: 54218}, {f: 7, c: 54225}, {f: 8, c: 54233},
+    54242, {f: 8, c: 54244}, {f: 2, c: 54254}, {f: 3, c: 54257},
+    {f: 7, c: 54261}, 54270, 54272, {f: 6, c: 54274}, {f: 20, c: 54281},
+    {f: 34, c: 54302}, {f: 3, c: 54337}, {f: 23, c: 54341}, {f: 3, c: 54365},
+    {f: 3, c: 54369}, {f: 8, c: 54373}, 54382, {f: 8, c: 54384},
+    {f: 2, c: 54394}, {f: 2, c: 54397}, 54401, {f: 5, c: 54403}, 54410, 54412,
+    {f: 6, c: 54414}, {f: 20, c: 54421}, {f: 34, c: 54442}, {f: 3, c: 54477},
+    {f: 3, c: 54481}, {f: 7, c: 54485}, {f: 2, c: 54493}, {f: 8, c: 54496},
+    {f: 3, c: 54505}, {f: 3, c: 54509}, {f: 7, c: 54513}, {f: 2, c: 54521},
+    54524, {f: 6, c: 54526}, {f: 3, c: 54533}, {f: 3, c: 54537},
+    {f: 7, c: 54541}, 54550, {f: 36, c: 54552}, {f: 2, c: 54590},
+    {f: 3, c: 54593}, {f: 7, c: 54597}, 54606, 54608, {f: 6, c: 54610},
+    {f: 2, c: 54618}, {f: 3, c: 54621}, {f: 4, c: 54625}, {f: 2, c: 54630},
+    54634, 54636, {f: 6, c: 54638}, {f: 2, c: 54646}, {f: 3, c: 54649},
+    {f: 7, c: 54653}, 54662, {f: 6, c: 54666}, {f: 20, c: 54673},
+    {f: 34, c: 54694}, {f: 2, c: 54730}, {f: 3, c: 54733}, 54737,
+    {f: 5, c: 54739}, 54746, 54748, {f: 6, c: 54750}, {f: 2, c: 54758},
+    {f: 3, c: 54761}, {f: 7, c: 54765}, 54774, 54776, {f: 6, c: 54778},
+    {f: 2, c: 54786}, {f: 3, c: 54789}, {f: 7, c: 54793}, 54802,
+    {f: 6, c: 54806}, {f: 3, c: 54813}, {f: 3, c: 54817}, {f: 8, c: 54821},
+    {f: 10, c: 54830}, {f: 2, c: 54842}, {f: 3, c: 54845}, {f: 4, c: 54849},
+    {f: 2, c: 54854}, 54858, 54860, {f: 3, c: 54862}, {f: 2, c: 54866},
+    {f: 2, c: 54870}, {f: 3, c: 54873}, {f: 10, c: 54877}, 54888,
+    {f: 6, c: 54890}, {f: 2, c: 54898}, {f: 14, c: 54901}, 54916,
+    {f: 6, c: 54918}, {f: 2, c: 54926}, {f: 3, c: 54929}, {f: 8, c: 54933},
+    54942, 54944, {f: 6, c: 54946}, {f: 3, c: 54953}, {f: 3, c: 54957},
+    {f: 8, c: 54961}, 54970, {f: 8, c: 54972}, {f: 2, c: 54982},
+    {f: 3, c: 54985}, {f: 4, c: 54989}, {f: 2, c: 54994}, {f: 2, c: 54997},
+    55000, {f: 6, c: 55002}, {f: 3, c: 55009}, {f: 3, c: 55013},
+    {f: 7, c: 55017}, {f: 4, c: 55025}, {f: 6, c: 55030}, {f: 2, c: 55038},
+    {f: 3, c: 55041}, {f: 12, c: 55045}, {f: 6, c: 55058}, {f: 2, c: 55066},
+    {f: 3, c: 55069}, {f: 7, c: 55073}, 55082, 55084, {f: 6, c: 55086},
+    {f: 2, c: 55094}, {f: 3, c: 55097}, {f: 7, c: 55101}, {f: 2, c: 55109},
+    55112, {f: 6, c: 55114}, {f: 2, c: 55122}, 55125, {f: 6, c: 55130}, 55138,
+    55140, {f: 3, c: 55142}, {f: 2, c: 55146}, {f: 3, c: 55149},
+    {f: 3, c: 55153}, {f: 7, c: 55157}, {f: 3, c: 55166}, {f: 6, c: 55170},
+    {f: 2, c: 55178}, {f: 3, c: 55181}, {f: 7, c: 55185}, 55194, 55196,
+    {f: 6, c: 55198}],
+  'Adobe-CNS1': [{f: 95, c: 32}, {s: 3}, 12288, 65292, {f: 2, c: 12289}, 65294,
+    8226, 65307, 65306, 65311, 65281, 65072, 8230, 8229, 65104, 65380, 65106,
+    183, {f: 4, c: 65108}, 65372, 8211, 65073, 8212, {s: 4}, {f: 2, c: 65288},
+    {f: 2, c: 65077}, 65371, 65373, {f: 2, c: 65079}, {f: 2, c: 12308},
+    {f: 2, c: 65081}, {f: 2, c: 12304}, {f: 2, c: 65083}, {f: 2, c: 12298},
+    {f: 2, c: 65085}, {f: 2, c: 12296}, {f: 2, c: 65087}, {f: 2, c: 12300},
+    {f: 2, c: 65089}, {f: 2, c: 12302}, {f: 2, c: 65091}, {f: 6, c: 65113},
+    {f: 2, c: 8216}, {f: 2, c: 8220}, {f: 2, c: 12317}, 8245, 8242, 65283,
+    65286, 65290, 8251, 167, 12291, 9675, 9679, 9651, 9650, 9678, 9734, 9733,
+    9671, 9670, 9633, 9632, 9661, 9660, 12963, 8453, 8254, 0, 65343, 0,
+    {f: 2, c: 65097}, {f: 2, c: 65101}, {f: 2, c: 65099}, {f: 3, c: 65119},
+    65291, 65293, 215, 247, 177, 8730, 65308, 65310, 65309, {f: 2, c: 8806},
+    8800, 8734, 8786, 8801, {f: 5, c: 65122}, 8764, {f: 2, c: 8745}, 8869,
+    8736, 8735, 8895, 13266, 13265, 8747, 8750, 8757, 8756, 9792, 9794, 9793,
+    9737, 8593, 8595, 8594, 8592, {f: 2, c: 8598}, 8601, 8600, 8741, 8739, 0,
+    0, 65295, 65340, 65284, 165, 12306, {f: 2, c: 162}, 65285, 65312, 8451,
+    8457, {f: 3, c: 65129}, 13269, {f: 3, c: 13212}, 13262, 13217,
+    {f: 2, c: 13198}, 13252, 176, [20825, 58834], [20827, 58835],
+    [20830, 58837], [20829, 58836], 20833, 20835, 21991, [29929, 58044],
+    [31950, 58191], {f: 8, c: 9601}, 9615, 9614, 9613, 9612, 9611, 9610, 9609,
+    9532, 9524, 9516, 9508, 9500, 9620, 9472, 9474, 9621, 9484, 9488, 9492,
+    9496, {f: 2, c: 9581}, 9584, 9583, 9552, 9566, 9578, 9569, {f: 2, c: 9698},
+    9701, 9700, {f: 3, c: 9585}, {f: 10, c: 65296}, {f: 10, c: 8544},
+    {f: 9, c: 12321}, 0, [21316, 57443], 0, {f: 26, c: 65313},
+    {f: 26, c: 65345}, {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945},
+    {f: 7, c: 963}, {f: 37, c: 12549}, 729, 714, 711, 715, [9312, 63153],
+    [9313, 63154], [9314, 63155], [9315, 63156], [9316, 63157], [9317, 63158],
+    [9318, 63159], [9319, 63160], [9320, 63161], [9321, 63162], [9332, 63163],
+    [9333, 63164], [9334, 63165], [9335, 63166], [9336, 63167], [9337, 63168],
+    [9338, 63169], [9339, 63170], [9340, 63171], [9341, 63172], [8560, 63173],
+    [8561, 63174], [8562, 63175], [8563, 63176], [8564, 63177], [8565, 63178],
+    [8566, 63179], [8567, 63180], [8568, 63181], [8569, 63182], [12033, 20008],
+    [12034, 20022, 63183], [12035, 20031, 63184], [12037, 20101, 63185],
+    [12039, 20128, 63186], [12044, 20866, 63187], [12045, 20886, 63188],
+    [12046, 20907, 63189], [12051, 21241, 63190], [12054, 21304, 63191],
+    [12057, 21353, 63192], [12059, 21430, 63193],
+    [12065, 12066, 22786, 22794, 63194], [12071, 23424, 63195],
+    [12078, 24027, 63196], [12083, 24186, 63197], [12084, 24191, 63198],
+    [12085, 24308], [12089, 24400, 63200], [12090, 24417, 63201],
+    [12097, 25908, 63202], [12102, 26080], [12135, 30098, 63204],
+    [12136, 30326], [12193, 36789, 63206], [12202, 38582], {f: 32, c: 9216},
+    9249, [12032, 19968], [12036, 20057], 19969, 19971, 20035, 20061, 20102,
+    [12038, 20108], [12040, 20154], [12041, 20799], [12042, 20837],
+    [12043, 20843], [12047, 20960], [12049, 20992], 20993, [12050, 21147],
+    [12052, 21269], [12055, 21313], [12056, 21340], [12060, 21448], 19977,
+    19979, 19976, 19978, 20011, 20024, 20961, 20037, 20040, 20063, 20062,
+    20110, 20129, [20800, 64012], 20995, 21242, 21315, 21449, [12061, 21475],
+    [12063, 22303], [12064, 22763], [12067, 22805], [12068, 22823],
+    [12069, 22899], [12070, 23376], 23377, 23379, [12072, 23544],
+    [12073, 23567], [12074, 23586], [12075, 23608], [12077, 23665], 24029,
+    [12079, 24037], [12080, 24049], {f: 2, c: 24050}, [12081, 24062],
+    [12082, 24178], [12086, 24318], [12087, 24331], [12088, 24339], 25165,
+    19985, 19984, 19981, 20013, 20016, 20025, 20043, 23609, 20104, 20113,
+    20117, 20114, 20116, 20130, 20161, 20160, 20163, {f: 2, c: 20166}, 20173,
+    {f: 2, c: 20170}, 20164, 20803, 20801, 20839, {f: 2, c: 20845}, 20844,
+    20887, 20982, {f: 3, c: 20998}, 21243, {f: 2, c: 21246}, 21270, 21305,
+    21320, 21319, 21317, 21342, 21380, 21451, 21450, 21453, 22764, 22825,
+    22827, 22826, 22829, 23380, 23569, 23588, 23610, 23663, 24052, 24187,
+    24319, {f: 2, c: 24340}, [12092, 24515], [12093, 25096], [12094, 25142],
+    [12095, 25163], 25166, [12096, 25903], [12098, 25991], [12099, 26007],
+    [12100, 26020], [12101, 26041], [12103, 26085], [12104, 26352],
+    [12105, 26376], [12106, 26408], [12107, 27424], [12108, 27490],
+    [12109, 27513], [12111, 27595], [12112, 27604], [12113, 27611],
+    [12114, 27663], [12116, 27700], [12117, 28779], [12118, 29226],
+    [12119, 29238], [12120, 29243], [12122, 29255], [12123, 29273],
+    [12124, 29275], [12125, 29356], 29579, 19993, 19990, 19989, 19988, 19992,
+    20027, 20045, 20047, 20046, 20197, 20184, {f: 4, c: 20180},
+    {f: 2, c: 20195}, 20185, 20190, 20805, 20804, {f: 2, c: 20873}, 20908,
+    {f: 2, c: 20985}, 20984, 21002, 21152, 21151, [21253, 57435], 21254, 21271,
+    21277, 20191, 21322, 21321, 21345, 21344, 21359, 21358, 21435, 21487,
+    21476, 21491, 21484, 21486, 21481, 21480, 21500, 21496, 21493, 21483,
+    21478, 21482, 21490, 21489, 21488, 21477, 21485, 21499, 22235, 22234,
+    22806, 22830, 22833, 22900, 22902, 23381, 23427, 23612, 24040, 24039,
+    24038, {f: 2, c: 24066}, 24179, 24188, 24321, 24344, 24343, 24517, 25098,
+    {f: 2, c: 25171}, 25170, 25169, 26021, 26086, 26414, 26412,
+    {f: 2, c: 26410}, 26413, 27491, 27597, 27665, 27664, 27704, 27713, 27712,
+    27710, 29359, [12126, 29572], [12127, 29577], [12128, 29916],
+    [12129, 29926], [12130, 29976], [12131, 29983], [12132, 29992], 29993,
+    [12133, 30000], {f: 3, c: 30001}, [12134, 30091], [12137, 30333],
+    [12138, 30382], [12139, 30399], [12140, 30446], [12141, 30683],
+    [12142, 30690], [12143, 30707], [12144, 31034], [12146, 31166],
+    [12147, 31348], [12148, 31435], {f: 2, c: 19998}, {f: 2, c: 20050}, 20073,
+    20121, 20132, 20134, 20133, 20223, 20233, 20249, 20234, 20245, 20237,
+    {f: 2, c: 20240}, 20239, 20210, 20214, 20219, 20208, 20211, 20221, 20225,
+    20235, 20809, 20807, 20806, 20808, 20840, 20849, 20877, 20912, 21015,
+    {f: 2, c: 21009}, 21006, 21014, 21155, 21256, 21281, 21280,
+    {f: 2, c: 21360}, 21513, 21519, 21516, 21514, 21520, 21505, 21515, 21508,
+    21521, 21517, 21512, 21507, 21518, 21510, 21522, 22240, 22238, 22237,
+    22323, 22320, 22312, 22317, 22316, 22319, 22313, {f: 2, c: 22809},
+    {f: 2, c: 22839}, 22916, 22904, 22915, 22909, 22905, 22914, 22913,
+    {f: 2, c: 23383}, {f: 2, c: 23431}, 23429, 23433, 23546, 23574, 23673,
+    24030, 24070, 24182, 24180, 24335, 24347, 24537, 24534, 25102,
+    {f: 2, c: 25100}, 25104, 25187, 25179, 25176, 25910, 26089, 26088,
+    {f: 2, c: 26092}, {f: 2, c: 26354}, 26377, 26429, 26420, 26417, 26421,
+    27425, 27492, 27515, 27670, 27741, 27735, 27737, {f: 2, c: 27743}, 27728,
+    27733, 27745, 27739, {f: 2, c: 27725}, 28784, 29279, 29277, 30334,
+    [12149, 31481], [12150, 31859], [12151, 31992], [12152, 32566],
+    [12154, 32650], [12155, 32701], [12156, 32769], 32771, [12157, 32780],
+    [12158, 32786], [12159, 32819], [12160, 32895], [12161, 32905],
+    {f: 2, c: 32907}, [12162, 33251], [12163, 33258], [12164, 33267],
+    [12165, 33276], [12166, 33292], [12167, 33307], [12168, 33311],
+    [12169, 33390], [12170, 33394], 33406, [12173, 34411], [12174, 34880],
+    [12175, 34892], [12176, 34915], 35199, 38433, 20018, 20136, 20301, 20303,
+    20295, 20311, 20318, 20276, 20315, 20309, 20272, {f: 2, c: 20304}, 20285,
+    20282, 20280, 20291, 20308, 20284, 20294, 20323, 20316, 20320, 20271,
+    20302, 20278, 20313, 20317, 20296, 20314, 20812, 20811, 20813, 20853,
+    {f: 2, c: 20918}, 21029, 21028, {f: 2, c: 21033}, 21032, 21163,
+    {f: 2, c: 21161}, 21164, 21283, 21363, 21365, 21533, 21549, 21534, 21566,
+    21542, 21582, 21543, 21574, 21571, 21555, 21576, 21570, 21531, 21545,
+    21578, 21561, 21563, 21560, 21550, {f: 2, c: 21557}, 21536, 21564, 21568,
+    21553, 21547, 21535, 21548, 22250, 22256, 22244, 22251, 22346, 22353,
+    22336, 22349, 22343, 22350, 22334, 22352, 22351, 22331, 22767, 22846,
+    22941, 22930, 22952, 22942, 22947, 22937, 22934, 22925, 22948, 22931,
+    22922, 22949, 23389, 23388, {f: 2, c: 23386}, 23436, 23435, 23439, 23596,
+    {f: 2, c: 23616}, 23615, 23614, {f: 2, c: 23696}, 23700, 23692, 24043,
+    24076, 24207, 24199, 24202, 24311, 24324, 24351, 24420, 24418, 24439,
+    24441, 24536, 24524, 24535, 24525, 24561, 24555, 24568, 24554, 25106,
+    25105, 25220, 25239, 25238, 25216, 25206, 25225, 25197, 25226, 25212,
+    25214, 25209, 25203, 25234, 25199, 25240, 25198, 25237, 25235, 25233,
+    25222, 25913, 25915, 25912, 26097, 26356, 26463, {f: 4, c: 26446}, 26460,
+    26454, [26462, 57801], 26441, 26438, 26464, 26451, 26455, 27493, 27599,
+    27714, 27742, 27801, 27777, {f: 2, c: 27784}, 27781, 27803, 27754, 27770,
+    27792, 27760, 27788, 27752, 27798, 27794, 27773, 27779, 27762, 27774,
+    27764, 27782, 27766, 27789, 27796, 27800, 27778, 28790, {f: 2, c: 28796},
+    28792, 29282, 29281, 29280, 29380, 29378, 29590, 29996, 29995,
+    {f: 2, c: 30007}, 30338, 30447, 30691, 31169, 31168, 31167, 31350, 31995,
+    32597, 32918, 32915, 32925, 32920, 32923, 32922, 32946, 33391, 33426,
+    33419, 33421, [12178, 35211], [12179, 35282], [12180, 35328],
+    [12181, 35895], [12182, 35910], [12183, 35925], [12185, 35997],
+    [12186, 36196], [12187, 36208], [12188, 36275], [12189, 36523],
+    [12190, 36554], [12191, 36763], [12192, 36784], 36802, 36806, 36805, 36804,
+    24033, [12194, 37009], 37026, 37034, 37030, 37027, [12195, 37193],
+    [12196, 37318], [12197, 37324], 38450, 38446, 38449, 38442, 38444, 20006,
+    20054, 20083, 20107, 20123, 20126, {f: 2, c: 20139}, 20335, 20381, 20365,
+    20339, 20351, 20332, 20379, 20363, 20358, 20355, 20336, 20341, 20360,
+    20329, 20347, 20374, 20350, 20367, 20369, 20346, 20820, 20818, 20821,
+    20841, 20855, 20854, 20856, 20925, 20989, 21051, 21048, 21047, 21050,
+    21040, 21038, 21046, 21057, 21182, 21179, 21330, 21332, 21331, 21329,
+    21350, {f: 3, c: 21367}, 21462, 21460, 21463, 21619, 21621, 21654, 21624,
+    21653, 21632, 21627, 21623, 21636, 21650, 21638, 21628, 21648, 21617,
+    21622, 21644, 21658, 21602, 21608, 21643, 21629, 21646, 22266, 22403,
+    22391, 22378, 22377, 22369, 22374, 22372, 22396, 22812, 22857,
+    {f: 2, c: 22855}, 22852, 22868, 22974, 22971, 22996, 22969, 22958, 22993,
+    22982, 22992, 22989, 22987, 22995, 22986, 22959, 22963, 22994, 22981,
+    23391, 23396, 23395, 23447, 23450, 23448, 23452, 23449, 23451, 23578,
+    23624, {f: 2, c: 23621}, 23735, 23713, 23736, 23721, 23723, 23729, 23731,
+    24088, 24090, 24086, 24085, 24091, 24081, 24184, 24218, 24215, 24220,
+    {f: 2, c: 24213}, 24310, {f: 2, c: 24358}, 24361, {f: 2, c: 24448}, 24447,
+    24444, 24541, 24544, 24573, 24565, 24575, 24591, 24596, 24623, 24629,
+    24598, 24618, 24597, 24609, 24615, 24617, 24619, 24603, 25110, 25109,
+    25151, 25150, 25152, 25215, 25289, 25292, 25284, 25279, 25282, 25273,
+    25298, 25307, 25259, {f: 2, c: 25299}, 25291, 25288, 25256, 25277, 25276,
+    [25296, 60582], 25305, 25287, 25293, 25269, 25306, 25265, 25304,
+    {f: 2, c: 25302}, 25286, 25260, [25294, 61010], 25918, 26023, 26044, 26106,
+    26132, 26131, 26124, 26118, 26114, 26126, 26112, 26127, 26133, 26122,
+    26119, 26381, 26379, 26477, 26507, 26517, 26481, 26524, 26483, 26487,
+    26503, 26525, 26519, {f: 2, c: 26479}, 26495, 26505, 26494, 26512, 26485,
+    26522, 26515, 26492, 26474, 26482, 27427, {f: 2, c: 27494}, 27519, 27667,
+    27675, 27875, 27880, 27891, 27825, 27852, 27877, 27827, {f: 2, c: 27837},
+    27836, 27874, 27819, 27861, 27859, 27832, 27844, 27833, 27841, 27822,
+    27863, 27845, 27889, 27839, 27835, 27873, 27867, 27850, 27820, 27887,
+    27868, 27862, 27872, 28821, 28814, 28818, 28810, 28825, {f: 2, c: 29228},
+    29240, 29256, 29287, 29289, 29376, 29390, 29401, 29399, 29392, 29609,
+    29608, 29599, 29611, 29605, 30013, 30109, {f: 2, c: 30105}, 30340, 30402,
+    30450, 30452, 30693, 30717, 31038, {f: 2, c: 31040}, 31177, 31176, 31354,
+    31353, 31482, 31998, 32596, 32652, 32651, [32773, 58236], 32954, 32933,
+    32930, 32945, 32929, 32939, 32937, 32948, 32938, 32943, 33253, 33278,
+    33293, 33459, 33437, 33433, 33453, 33469, 33439, 33465, 33457, 33452,
+    33445, 33455, 33464, 33443, 33456, 33470, 33463, 34382, 34417, 21021,
+    34920, 36555, 36814, 36820, 36817, 37045, 37048, 37041, 37046, 37319,
+    [12198, 37329], [12199, 38263], [12200, 38272], [12201, 38428], 38464,
+    38463, 38459, 38468, 38466, [12203, 38585], [12204, 38632], 38738,
+    [12206, 38750], 20127, {f: 2, c: 20141}, 20449, 20405, 20399, 20415, 20448,
+    20433, 20431, 20445, 20419, 20406, 20440, 20447, 20426, 20439, 20398,
+    20432, 20420, 20418, 20442, 20430, 20446, 20407, 20823, 20882, 20881,
+    20896, 21070, 21059, 21066, 21069, 21068, 21067, 21063, 21191, 21193,
+    21187, 21185, 21261, 21335, 21371, 21402, 21467, 21676, 21696, 21672,
+    21710, 21705, 21688, 21670, 21683, 21703, 21698, 21693, 21674, 21697,
+    21700, 21704, 21679, 21675, 21681, 21691, 21673, 21671, 21695, 22271,
+    22402, 22411, 22432, 22435, 22434, 22478, 22446, 22419, 22869, 22865,
+    22863, 22862, 22864, 23004, 23000, 23039, 23011, 23016, 23043, 23013,
+    23018, 23002, 23014, 23041, 23035, 23401, 23459, 23462, 23460, 23458,
+    23461, 23553, {f: 2, c: 23630}, 23629, 23627, 23769, 23762, 24055, 24093,
+    24101, 24095, 24189, 24224, 24230, 24314, 24328, 24365, 24421, 24456,
+    24453, {f: 2, c: 24458}, 24455, 24460, 24457, 24594, 24605, 24608, 24613,
+    24590, 24616, 24653, 24688, 24680, [24674, 60712], 24646, 24643, 24684,
+    24683, 24682, 24676, 25153, 25308, 25366, 25353, 25340, 25325, 25345,
+    25326, 25341, 25351, 25329, 25335, 25327, 25324, 25342, 25332, 25361,
+    25346, 25919, 25925, 26027, 26045, 26082, 26149, 26157, 26144, 26151,
+    26159, 26143, 26152, 26161, 26148, 26359, 26623, 26579, 26609, 26580,
+    26576, 26604, 26550, 26543, 26613, 26601, 26607, 26564, 26577, 26548,
+    26586, 26597, 26552, 26575, 26590, 26611, 26544, 26585, 26594, 26589,
+    26578, 27498, 27523, 27526, 27573, 27602, 27607, 27679, 27849, 27915,
+    27954, 27946, 27969, 27941, 27916, 27953, 27934, 27927, 27963,
+    {f: 2, c: 27965}, 27958, 27931, 27893, 27961, 27943, 27960, 27945, 27950,
+    27957, 27918, 27947, 28843, 28858, 28851, 28844, 28847, 28845, 28856,
+    28846, 28836, 29232, 29298, 29295, 29300, 29417, {f: 2, c: 29408}, 29623,
+    29642, 29627, 29618, 29645, 29632, 29619, 29978, 29997, 30031, 30028,
+    30030, 30027, 30123, {f: 2, c: 30116}, {f: 2, c: 30114}, 30328,
+    {f: 3, c: 30342}, 30408, 30406, 30403, 30405, 30465, 30457, 30456, 30473,
+    30475, 30462, 30460, 30471, 30684, 30722, 30740, {f: 2, c: 30732}, 31046,
+    31049, 31048, 31047, {f: 2, c: 31161}, {f: 2, c: 31185}, 31179, 31359,
+    31361, 31487, 31485, 31869, 32002, 32005, 32000, 32009, 32007, 32004,
+    32006, 32568, 32654, 32703, 32784, 32781, 32785, 32822, 32982, 32997,
+    32986, {f: 2, c: 32963}, 32972, 32993, 32987, 32974, 32990, 32996, 32989,
+    33268, 33314, 33511, 33539, 33541, 33507, 33499, 33510, 33540, 33509,
+    33538, 33545, 33490, 33495, 33521, 33537, 33500, 33492, 33489, 33502,
+    33491, 33503, 33519, 33542, 34384, 34425, 34427, 34426, 34893, 34923,
+    35201, 35284, 35336, {f: 2, c: 35330}, 35998, 36000, 36212, 36211, 36276,
+    36557, 36556, 36848, 36838, 36834, 36842, 36837, 36845, 36843, 36836,
+    36840, 37066, 37070, 37057, 37059, 37195, 37194, 37325, 38274, 38480,
+    {f: 3, c: 38475}, [12207, 38754], [12208, 38761], [12209, 38859],
+    [12210, 38893], [12211, 38899], [12212, 38913], [12213, 39080],
+    [12214, 39131], [12215, 39135], [12216, 39318], [12217, 39321], 20056,
+    20147, {f: 2, c: 20492}, 20515, 20463, 20518, 20517, 20472, [20521, 57375],
+    20502, 20486, 20540, 20511, 20506, 20498, 20497, 20474, 20480, 20500,
+    20520, 20465, 20513, 20491, 20505, 20504, 20467, 20462, 20525, 20522,
+    20478, 20523, 20489, 20860, {f: 2, c: 20900}, 20898, 20941, 20940, 20934,
+    20939, 21078, 21084, 21076, 21083, 21085, 21290, [21375, 57459], 21407,
+    21405, 21471, 21736, 21776, 21761, 21815, 21756, 21733, 21746, 21766,
+    21754, 21780, 21737, 21741, 21729, 21769, 21742, 21738, 21734, 21799,
+    21767, 21757, 21775, {f: 2, c: 22275}, 22466, 22484, 22475, 22467, 22537,
+    22799, {f: 2, c: 22871}, 22874, 23057, 23064, 23068, 23071, 23067, 23059,
+    23020, 23072, 23075, 23081, 23077, 23052, 23049, 23403, 23640, 23472,
+    23475, 23478, 23476, 23470, 23477, 23481, 23480, 23556, 23633, 23637,
+    23632, 23789, 23805, 23803, 23786, 23784, 23792, 23798, 23809, 23796,
+    24046, 24109, 24107, 24235, 24237, 24231, 24369, 24466, 24465, 24464,
+    24665, 24675, 24677, 24656, 24661, 24685, 24681, 24687, 24708, 24735,
+    24730, 24717, 24724, 24716, 24709, 24726, 25159, 25331, 25352, 25343,
+    25422, 25406, 25391, 25429, 25410, 25414, 25423, 25417, 25402, 25424,
+    25405, {f: 2, c: 25386}, 25384, 25421, 25420, {f: 2, c: 25928}, 26009,
+    26049, 26053, 26178, 26185, 26191, 26179, 26194, 26188, 26181, 26177,
+    26360, {f: 2, c: 26388}, 26391, 26657, 26680, 26696, 26694, 26707, 26681,
+    26690, 26708, 26665, 26803, 26647, 26700, 26705, 26685, 26612, 26704,
+    26688, 26684, 26691, 26666, 26693, 26643, 26648, 26689, 27530, 27529,
+    27575, 27683, {f: 2, c: 27687}, 27686, 27684, 27888, 28010, 28053, 28040,
+    28039, 28006, 28024, 28023, 27993, 28051, 28012, 28041, 28014, 27994,
+    28020, 28009, 28044, 28042, 28025, 28037, 28005, 28052, 28874, 28888,
+    28900, 28889, 28872, 28879, 29241, 29305, 29436, 29433, 29437, 29432,
+    29431, 29574, 29677, 29705, 29678, 29664, 29674, 29662, 30036, 30045,
+    30044, 30042, 30041, 30142, 30149, 30151, {f: 2, c: 30130}, 30141, 30140,
+    30137, 30146, 30136, 30347, 30384, 30410, {f: 2, c: 30413}, 30505,
+    {f: 2, c: 30495}, 30504, 30697, 30768, 30759, 30776, 30749, 30772, 30775,
+    30757, 30765, 30752, 30751, 30770, 31061, 31056, 31072, 31071, 31062,
+    31070, 31069, 31063, 31066, 31204, [31203, 60418], 31207, 31199, 31206,
+    31209, 31192, 31364, 31368, 31449, 31494, 31505, 31881, 32033, 32023,
+    32011, 32010, 32032, 32034, 32020, 32016, 32021, 32026, 32028, 32013,
+    32025, 32027, 32570, 32607, 32660, 32709, 32705, 32774, 32772, 32792,
+    32789, 32793, 32791, 32829, 32831, 33009, 33026, 33008, 33029, 33005,
+    33012, 33030, 33016, 33011, 33032, 33021, 33034, 33020, 33007, 33261,
+    33260, 33280, 33296, {f: 2, c: 33322}, 33320, 33324, 33467, 33579, 33618,
+    33620, 33610, 33592, 33616, 33609, 33589, 33588, 33615, 33586, 33593,
+    33590, 33559, 33600, 33585, 33576, 33603, 34388, 34442, 34474, 34451,
+    34468, 34473, 34444, 34467, 34460, 34928, 34935, {f: 2, c: 34945}, 34941,
+    34937, 35352, 35344, 35342, 35340, 35349, 35338, 35351, 35347, 35350,
+    35343, 35345, 35912, 35962, 35961, {f: 2, c: 36001}, [36215, 58442], 36524,
+    36562, 36564, 36559, 36785, 36865, 36870, 36855, 36864, 36858, 36852,
+    36867, 36861, 36869, 36856, 37013, 37089, 37085, 37090, 37202, 37197,
+    37196, 37336, 37341, 37335, 37340, 37337, 38275, {f: 2, c: 38498}, 38497,
+    38491, 38493, 38500, 38488, 38494, 38587, 39138, [12218, 39340],
+    [12219, 39592], [12220, 39640], [12222, 39717], [12224, 39730],
+    [12225, 39740], 20094, 20602, [20605, 57382], 20572, 20551, 20547, 20556,
+    20570, 20553, 20581, 20598, 20558, 20565, 20597, 20596, 20599, 20559,
+    20495, 20591, 20589, 20828, 20885, 20976, 21098, 21103, 21202, 21209,
+    21208, 21205, 21264, 21263, 21273, {f: 2, c: 21311}, 21310, 21443, 26364,
+    21830, 21866, 21862, 21828, 21854, 21857, 21827, 21834, 21809, 21846,
+    21839, 21845, 21807, 21860, 21816, 21806, 21852, 21804, 21859, 21811,
+    21825, 21847, 22280, 22283, 22281, 22495, 22533, 22538, 22534, 22496,
+    22500, 22522, 22530, 22581, 22519, 22521, 22816, 22882, 23094, 23105,
+    23113, 23142, 23146, 23104, 23100, 23138, 23130, 23110, 23114, 23408,
+    23495, 23493, 23492, 23490, 23487, 23494, 23561, 23560, 23559, 23648,
+    {f: 2, c: 23644}, 23815, 23814, 23822, 23835, 23830, 23842, 23825, 23849,
+    23828, 23833, 23844, 23847, 23831, 24034, 24120, 24118, 24115, 24119,
+    {f: 2, c: 24247}, 24246, 24245, 24254, 24373, 24375, 24407, 24428, 24425,
+    24427, 24471, 24473, 24478, 24472, 24481, 24480, 24476, 24703, 24739,
+    24713, 24736, 24744, 24779, 24756, 24806, 24765, 24773, 24763, 24757,
+    24796, 24764, 24792, 24789, 24774, 24799, 24760, 24794, 24775,
+    {f: 2, c: 25114}, 25160, 25504, 25511, 25458, 25494, 25506, 25509, 25463,
+    25447, 25496, 25514, 25457, 25513, 25481, 25475, 25499, 25451, 25512,
+    25476, 25480, 25497, 25505, 25516, 25490, 25487, 25472, 25467, 25449,
+    25448, 25466, 25949, 25942, 25937, 25945, 25943, 21855, 25935, 25944,
+    25941, 25940, 26012, 26011, 26028, 26063, {f: 2, c: 26059}, 26062, 26205,
+    26202, 26212, 26216, 26214, 26206, 26361, 21207, 26395, 26753, 26799,
+    26786, 26771, 26805, 26751, 26742, 26801, 26791, 26775, 26800, 26755,
+    26820, 26797, 26758, 26757, 26772, 26781, 26792, 26783, 26785, 26754,
+    27442, 27578, {f: 2, c: 27627}, 27691, 28046, 28092, 28147, 28121, 28082,
+    28129, 28108, 28132, 28155, 28154, 28165, 28103, 28107, 28079, 28113,
+    28078, 28126, 28153, 28088, 28151, 28149, 28101, 28114, 28186, 28085,
+    28122, 28139, 28120, 28138, 28145, 28142, 28136, 28102, 28100, 28074,
+    28140, 28095, 28134, 28921, {f: 2, c: 28937}, 28925, 28911, 29245, 29309,
+    29313, 29468, 29467, 29462, 29459, 29465, 29575, 29701, 29706, 29699,
+    29702, 29694, 29709, 29920, {f: 2, c: 29942}, 29980, 29986,
+    {f: 2, c: 30053}, 30050, 30064, 30095, {f: 2, c: 30164}, 30133, 30154,
+    30157, 30350, 30420, 30418, 30427, 30519, 30526, 30524, 30518, 30520,
+    30522, 30827, 30787, 30798, 31077, 31080, 31085, 31227, 31378, 31381,
+    31520, 31528, 31515, 31532, 31526, 31513, 31518, 31534, 31890, 31895,
+    31893, 32070, 32067, 32113, 32046, 32057, 32060, 32064, 32048, 32051,
+    32068, 32047, 32066, 32050, 32049, 32573, 32670, 32666, 32716, 32718,
+    32722, 32796, 32842, 32838, 33071, 33046, 33059, 33067, 33065, 33072,
+    33060, 33282, 33333, 33335, 33334, 33337, 33678, 33694, 33688, 33656,
+    33698, 33686, 33725, 33707, 33682, 33674, 33683, 33673, 33696, 33655,
+    {f: 2, c: 33659}, 33670, 33703, 34389, 24426, 34503, 34496, 34486, 34500,
+    34485, 34502, 34507, 34481, 34479, 34505, 34899, 34974, 34952, 34987,
+    34962, 34966, 34957, 34955, 35219, 35215, 35370, 35357, 35363, 35365,
+    35377, 35373, 35359, 35355, 35362, 35913, 35930, 36009, 36012, 36011,
+    36008, 36010, 36007, 36199, 36198, 36286, 36282, 36571, 36575, 36889,
+    36877, 36890, 36887, 36899, 36895, 36893, 36880, 36885, 36894, 36896,
+    36879, 36898, 36886, 36891, 36884, 37096, 37101, [37117, 58488], 37207,
+    37326, 37365, 37350, 37347, 37351, 37357, 37353, 38281, 38506, 38517,
+    38515, 38520, 38512, 38516, {f: 2, c: 38518}, 38508, 38592, 38634, 38633,
+    31456, 31455, {f: 2, c: 38914}, [12226, 39770], [12227, 40165],
+    [12228, 40565], [12229, 40575], [12230, 40613], [12231, 40635], 20642,
+    20621, 20613, 20633, 20625, 20608, 20630, 20632, 20634, 26368, 20977,
+    21106, {f: 2, c: 21108}, 21097, 21214, 21213, 21211, 21338, 21413, 21883,
+    21888, 21927, 21884, 21898, 21917, 21912, 21890, 21916, 21930, 21908,
+    21895, 21899, 21891, 21939, 21934, 21919, 21822, 21938, 21914, 21947,
+    21932, 21937, 21886, 21897, 21931, 21913, 22285, 22575, 22570, 22580,
+    22564, {f: 2, c: 22576}, 22561, 22557, 22560, {f: 2, c: 22777}, 22880,
+    [23159, 57587], 23194, 23167, 23186, 23195, 23207, 23411, 23409, 23506,
+    23500, 23507, 23504, {f: 2, c: 23562}, 23601, 23884, 23888, 23860, 23879,
+    24061, 24133, 24125, 24128, 24131, 24190, 24266, {f: 2, c: 24257}, 24260,
+    24380, 24429, {f: 2, c: 24489}, 24488, 24785, 24801, 24754, 24758, 24800,
+    24860, 24867, 24826, 24853, 24816, 24827, 24820, 24936, 24817, 24846,
+    24822, 24841, 24832, 24850, 25119, 25161, 25507, 25484, 25551, 25536,
+    25577, 25545, 25542, 25549, 25554, 25571, 25552, 25569, 25558,
+    {f: 2, c: 25581}, 25462, 25588, 25578, 25563, 25682, 25562, 25593, 25950,
+    25958, {f: 2, c: 25954}, 26001, 26000, 26031, 26222, 26224, [26228, 57786],
+    26230, 26223, 26257, 26234, 26238, 26231, {f: 2, c: 26366}, 26399, 26397,
+    26874, 26837, 26848, 26840, 26839, 26885, 26847, 26869, 26862, 26855,
+    26873, 26834, 26866, 26851, 26827, 26829, 26893, 26898, 26894, 26825,
+    26842, 26990, 26875, 27454, 27450, 27453, 27544, 27542, 27580, 27631,
+    {f: 2, c: 27694}, 27692, [28207, 57904], 28216, 28244, 28193, 28210, 28263,
+    28234, 28192, 28197, 28195, 28187, 28251, 28248, 28196, 28246, 28270,
+    28205, 28198, 28271, 28212, 28237, 28218, 28204, 28227, [28189, 57901],
+    28222, 28363, 28297, 28185, 28238, 28259, 28228, 28274, 28265, 28255,
+    {f: 2, c: 28953}, 28966, 28976, 28961, 28982, [29038, 57958], 28956, 29260,
+    29316, 29312, 29494, 29477, 29492, 29481, 29754, 29738, 29747, 29730,
+    29733, {f: 2, c: 29749}, 29748, 29743, 29723, 29734, 29736,
+    {f: 2, c: 29989}, 30059, 30058, 30178, 30171, 30179, 30169, 30168, 30174,
+    30176, {f: 2, c: 30331}, 30358, 30355, 30388, 30428, 30543, 30701, 30813,
+    30828, 30831, 31245, 31240, 31243, 31237, 31232, 31384, 31383, 31382,
+    31461, 31459, 31561, 31574, 31558, 31568, 31570, 31572, 31565, 31563,
+    31567, [31569, 60510], 31903, 31909, 32094, 32080, 32104, 32085, 32043,
+    32110, 32114, 32097, 32102, 32098, 32112, 32115, 21892, {f: 2, c: 32724},
+    32779, 32850, 32901, 33109, 33108, 33099, 33105, 33102, 33081, 33094,
+    33086, 33100, 33107, 33140, 33298, 33308, 33769, 33795, 33784, 33805,
+    33760, 33733, 33803, [33729, 58309], 33775, 33777, 33780, 33879, 33802,
+    33776, 33804, 33740, 33789, 33778, 33738, 33848, 33806, 33796, 33756,
+    33799, 33748, 33759, 34395, 34527, 34521, 34541, 34516, 34523, 34532,
+    34512, 34526, 34903, {f: 2, c: 35009}, 34993, 35203, 35222, 35387, 35424,
+    35413, 35422, 35388, 35393, 35412, 35419, 35408, 35398, 35380, 35386,
+    35382, 35414, 35937, 35970, 36015, 36028, 36019, 36029, 36033, 36027,
+    36032, 36020, 36023, 36022, 36031, 36024, 36234, 36229, 36225, 36302,
+    36317, 36299, 36314, 36305, 36300, 36315, 36294, 36603, 36600, 36604,
+    36764, 36910, 36917, 36913, 36920, 36914, 36918, 37122, 37109, 37129,
+    37118, 37219, 37221, 37327, {f: 2, c: 37396}, 37411, 37385, 37406, 37389,
+    37392, 37383, 37393, 38292, 38287, 38283, 38289, 38291, 38290, 38286,
+    38538, 38542, 38539, 38525, {f: 2, c: 38533}, 38541, 38514, 38532, 38593,
+    38597, 38596, {f: 2, c: 38598}, 38639, 38642, 38860, {f: 2, c: 38917},
+    38920, 39143, 39146, 39151, 39145, 39154, 39149, 39342, 39341,
+    [12232, 40643], [12233, 40653], [12234, 40657], 20098, 20653, 20661,
+    {f: 2, c: 20658}, 20677, 20670, 20652, 20663, 20667, 20655, 20679, 21119,
+    21111, 21117, 21215, 21222, 21220, {f: 2, c: 21218}, 21295, 21983, 21992,
+    21971, 21990, 21966, 21980, 21959, 21969, {f: 2, c: 21987}, 21999, 21978,
+    21985, {f: 2, c: 21957}, 21989, 21961, {f: 2, c: 22290}, 22622, 22609,
+    22616, 22615, 22618, 22612, 22635, 22604, 22637, 22602, 22626, 22610,
+    22603, 22887, 23233, 23241, 23244, 23230, 23229, 23228, 23219, 23234,
+    23218, 23913, 23919, 24140, 24185, 24265, 24264, 24338, 24409, 24492,
+    24494, 24858, 24847, 24904, 24863, 24819, 24859, 24825, 24833, 24840,
+    24910, 24908, 24900, 24909, 24894, 24884, 24871, 24845, 24838, 24887,
+    {f: 2, c: 25121}, 25619, 25662, 25630, 25642, 25645, 25661, 25644, 25615,
+    25628, 25620, 25613, 25654, {f: 2, c: 25622}, 25606, 25964, 26015, 26032,
+    26263, 26249, {f: 2, c: 26247}, 26262, 26244, 26264, 26253, 26371, 27028,
+    26989, 26970, 26999, 26976, 26964, 26997, 26928, 27010, 26954, 26984,
+    26987, 26974, 26963, 27001, 27014, 26973, 26979, 26971, 27463, 27506,
+    27584, 27583, 27603, 27645, 28322, 28335, 28371, 28342, 28354, 28304,
+    28317, 28359, 28357, 28325, 28312, 28348, 28346, 28331, 28369, 28310,
+    28316, 28356, 28372, 28330, 28327, 28340, 29006, 29017, 29033, 29028,
+    29001, 29031, 29020, 29036, 29030, 29004, 29029, 29022, 28998, 29032,
+    29014, 29242, 29266, 29495, 29509, 29503, 29502, 29807, 29786, 29781,
+    29791, 29790, 29761, 29759, 29785, 29787, [29788, 58019], 30070, 30072,
+    30208, 30192, 30209, 30194, 30193, 30202, 30207, 30196, 30195,
+    {f: 2, c: 30430}, 30555, 30571, 30566, 30558, 30563, 30585, 30570, 30572,
+    30556, 30565, 30568, 30562, 30702, 30862, 30896, {f: 2, c: 30871}, 30860,
+    30857, 30844, 30865, 30867, 30847, 31098, 31103, 31105, 33836, 31165,
+    31260, 31258, 31264, 31252, 31263, 31262, {f: 2, c: 31391}, 31607, 31680,
+    31584, 31598, 31591, 31921, 31923, 31925, 32147, 32121, 32145, 32129,
+    32143, 32091, 32622, {f: 2, c: 32617}, 32626, 32681, 32680, 32676, 32854,
+    32856, 32902, 32900, 33137, 33136, 33144, 33125, 33134, 33139, 33131,
+    {f: 2, c: 33145}, 33126, 33285, 33351, 33922, 33911, 33853, 33841, 33909,
+    33894, 33899, 33865, 33900, 33883, 33852, 33845, 33889, 33891, 33897,
+    33901, 33862, 34398, 34396, 34399, 34553, 34579, 34568, 34567, 34560,
+    34558, 34555, {f: 2, c: 34562}, 34566, 34570, 34905, 35039, 35028, 35033,
+    35036, 35032, 35037, 35041, 35018, 35029, 35026, 35228, 35299, 35435,
+    {f: 2, c: 35442}, 35430, 35433, 35440, 35463, 35452, 35427, 35488, 35441,
+    35461, 35437, 35426, 35438, 35436, 35449, 35451, 35390, 35432, 35938,
+    35978, 35977, 36042, {f: 2, c: 36039}, 36036, 36018, 36035, 36034, 36037,
+    36321, 36319, 36328, 36335, 36339, 36346, 36330, 36324, 36326, 36530,
+    36611, 36617, 36606, 36618, 36767, 36786, 36939, 36938, 36947, 36930,
+    36948, 36924, 36949, 36944, 36935, 36943, 36942, 36941, 36945, 36926,
+    36929, 37138, 37143, 37228, 37226, 37225, 37321, 37431, 37463, 37432,
+    37437, 37440, 37438, 37467, 37451, 37476, 37457, 37428, 37449, 37453,
+    37445, 37433, 37439, 37466, 38296, 38552, {f: 2, c: 38548}, 38605, 38603,
+    {f: 2, c: 38601}, 38647, 38651, 38649, 38646, 38742, 38772, 38774,
+    {f: 2, c: 38928}, 38931, 38922, 38930, 38924, 39164, 39156,
+    {f: 2, c: 39165}, 39347, 39345, 39348, 39649, 40169, 40578, [12237, 40718],
+    [12238, 40723], [12239, 40736], 20711, 20718, 20709, 20694, [20717, 60903],
+    20698, 20693, 20687, 20689, 20721, 20686, 20713, 20834, 20979, 21123,
+    21122, 21297, 21421, 22014, 22016, 22043, 22039, 22013, 22036, 22022,
+    22025, {f: 2, c: 22029}, 22007, 22038, 22047, 22024, 22032, 22006, 22296,
+    22294, 22645, 22654, 22659, 22675, 22666, 22649, 22661, 22653, 22781,
+    22821, 22818, 22820, 22890, 22889, 23265, 23270, 23273, 23255, 23254,
+    23256, 23267, 23413, 23518, 23527, 23521, {f: 2, c: 23525}, 23528, 23522,
+    23524, 23519, 23565, 23650, 23940, 23943, 24155, 24163, 24149, 24151,
+    24148, 24275, 24278, 24330, 24390, 24432, 24505, 24903, 24895, 24907,
+    24951, {f: 2, c: 24930}, 24927, 24922, 24920, 24949, 25130, 25735, 25688,
+    25684, 25764, 25720, 25695, 25722, 25681, 25703, 25652, 25709, 25723,
+    25970, 26017, 26071, 26070, 26274, 26280, 26269, 27036, 27048, 27029,
+    27073, 27054, 27091, 27083, 27035, 27063, 27067, 27051, 27060, 27088,
+    27085, 27053, 27084, 27046, 27075, 27043, 27465, 27468, 27699, 28467,
+    28436, 28414, 28435, 28404, 28457, 28478, 28448, 28460, 28431, 28418,
+    28450, 28415, 28399, 28422, 28465, 28472, 28466, 28451, 28437, 28459,
+    28463, 28552, 28458, 28396, 28417, 28402, 28364, 28407, 29076, 29081,
+    29053, 29066, 29060, 29074, 29246, 29330, 29334, 29508, 29520, 29796,
+    29795, 29802, 29808, 29805, 29956, 30097, 30247, 30221, 30219, 30217,
+    30227, 30433, 30435, 30596, 30589, 30591, 30561, 30913, 30879, 30887,
+    30899, 30889, 30883, {f: 2, c: 31118}, 31117, 31278, 31281, 31402, 31401,
+    31469, 31471, 31649, 31637, 31627, 31605, 31639, 31645, 31636, 31631,
+    [31672, 58170], 31623, 31620, 31929, {f: 2, c: 31933}, 32187, 32176, 32156,
+    {f: 2, c: 32189}, 32160, 32202, 32180, 32178, 32177, 32186, 32162, 32191,
+    32181, 32184, 32173, [32210, 58202], 32199, 32172, 32624, {f: 2, c: 32736},
+    32735, 32862, 32858, 32903, 33104, 33152, 33167, 33160, 33162, 33151,
+    33154, 33255, 33274, 33287, 33300, 33310, 33355, 33993, 33983, 33990,
+    33988, 33945, 33950, 33970, 33948, 33995, 33976, 33984, 34003, 33936,
+    33980, 34001, 33994, 34623, 34588, 34619, 34594, 34597, 34612, 34584,
+    34645, 34615, 34601, 35059, 35074, 35060, 35065, 35064, 35069, 35048,
+    35098, 35055, 35494, 35468, 35486, 35491, 35469, 35489, 35475, 35492,
+    35498, 35493, 35496, 35480, 35473, 35482, 35495, 35946, 35981, 35980,
+    36051, {f: 2, c: 36049}, 36203, 36249, 36245, 36348, 36628, 36626, 36629,
+    36627, 36771, 36960, 36952, 36956, 36963, 36953, 36958, 36962, 36957,
+    36955, 37145, 37144, 37150, 37237, 37240, 37239, 37236, 37496, 37548,
+    37504, 37509, 37528, 37526, 37499, 37523, 37532, 37544, 37500, 37521,
+    38305, {f: 2, c: 38312}, 38307, 38309, 38308, 38553, 38556, 38555, 38604,
+    38610, 38656, 38780, 38789, 38902, {f: 2, c: 38935}, 39087, 39089, 39171,
+    39173, 39180, 39177, 39361, {f: 2, c: 39599}, 39654, {f: 2, c: 39745},
+    40180, 40182, 40179, 40636, [12240, 40763], [12241, 40778], 20740, 20736,
+    20731, 20725, 20729, 20738, {f: 2, c: 20744}, 20741, 20956,
+    {f: 3, c: 21127}, 21133, 21130, 21232, 21426, 22062, 22075, 22073, 22066,
+    22079, 22068, 22057, 22099, 22094, 22103, 22132, 22070, {f: 2, c: 22063},
+    22656, 22687, 22686, 22707, 22684, 22702, 22697, 22694, 22893, 23305,
+    23291, 23307, 23285, 23308, 23304, 23534, 23532, 23529, 23531,
+    {f: 2, c: 23652}, 23965, 23956, 24162, 24159, 24161, 24290, 24282, 24287,
+    24285, 24291, 24288, 24392, 24433, 24503, 24501, 24950, 24935, 24942,
+    24925, 24917, 24962, 24956, 24944, 24939, 24958, 24999, 24976, 25003,
+    24974, 25004, 24986, 24996, 24980, 25006, 25134, 25705, 25711, 25721,
+    25758, 25778, 25736, [25744, 57745], 25776, 25765, 25747, 25749, 25769,
+    25746, 25774, 25773, 25771, 25754, 25772, 25753, 25762, 25779, 25973,
+    {f: 2, c: 25975}, 26286, 26283, 26292, 26289, 27171, 27167, 27112, 27137,
+    27166, 27161, 27133, 27169, 27155, 27146, 27123, 27138, 27141, 27117,
+    27153, 27472, 27470, 27556, {f: 2, c: 27589}, 28479, 28540, 28548, 28497,
+    28518, 28500, 28550, 28525, 28507, 28536, 28526, 28558, 28538, 28528,
+    28516, 28567, 28504, 28373, 28527, 28512, 28511, 29087, 29100, 29105,
+    29096, 29270, 29339, 29518, 29527, 29801, 29835, 29827, 29822, 29824,
+    30079, 30240, 30249, 30239, 30244, 30246, {f: 2, c: 30241}, 30362, 30394,
+    30436, 30606, 30599, 30604, 30609, 30603, 30923, 30917, 30906, 30922,
+    30910, 30933, 30908, 30928, 31295, 31292, 31296, 31293, 31287, 31291,
+    31407, 31406, 31661, 31665, 31684, 31668, {f: 2, c: 31686}, 31681, 31648,
+    31692, 31946, 32224, 32244, 32239, 32251, 32216, 32236, 32221, 32232,
+    32227, 32218, 32222, 32233, 32158, 32217, 32242, 32249, 32629, 32631,
+    32687, 32745, 32806, {f: 3, c: 33179}, 33184, 33178, 33176, 34071, 34109,
+    34074, 34030, {f: 2, c: 34092}, 34067, 34065, 34083, 34081, 34068, 34028,
+    34085, 34047, 34054, 34690, 34676, 34678, 34656, 34662, 34680, 34664,
+    34649, 34647, 34636, 34643, 34907, 34909, 35088, 35079, {f: 2, c: 35090},
+    35093, 35082, 35516, 35538, 35527, 35524, 35477, 35531, 35576, 35506,
+    35529, 35522, 35519, 35504, 35542, 35533, 35510, 35513, 35547, 35916,
+    35918, 35948, 36064, 36062, 36070, 36068, {f: 2, c: 36076},
+    {f: 2, c: 36066}, 36060, 36074, 36065, 36205, 36255, 36259, 36395, 36368,
+    36381, 36386, 36367, 36393, 36383, 36385, 36382, 36538, 36637, 36635,
+    36639, 36649, 36646, 36650, 36636, 36638, 36645, 36969, 36974, 36968,
+    36973, 36983, 37168, 37165, 37159, 37169, 37255, 37257, 37259, 37251,
+    37573, 37563, 37559, 37610, 37604, 37569, 37555, 37564, 37586, 37575,
+    37616, 37554, 38317, 38321, 38660, {f: 2, c: 38662}, 38665, 38752, 38797,
+    38795, 38799, 38945, 38955, 38940, 39091, 39178, 39187, 39186, 39192,
+    39389, 39376, 39391, 39387, 39377, 39381, 39378, 39385, 39607,
+    {f: 2, c: 39662}, 39719, 39749, 39748, 39799, 39791, 40198, 40201, 40195,
+    40617, 40638, 40654, 22696, [12242, 40786], 20754, 20760, 20756, 20752,
+    20757, 20864, 20906, 20957, 21137, 21139, 21235, 22105, 22123, 22137,
+    22121, 22116, 22136, 22122, 22120, 22117, 22129, 22127, 22124, 22114,
+    22134, 22721, 22718, 22727, 22725, 22894, 23325, 23348, 23416, 23536,
+    23566, 24394, 25010, 24977, 25001, 24970, 25037, 25014, 25022, 25034,
+    25032, 25136, 25797, 25793, 25803, {f: 2, c: 25787}, 25818, 25796, 25799,
+    25794, 25805, 25791, 25810, 25812, 25790, 25972, 26310, 26313, 26297,
+    26308, 26311, 26296, 27197, 27192, 27194, 27225, 27243, 27224, 27193,
+    27204, 27234, 27233, 27211, 27207, 27189, 27231, 27208, 27481, 27511,
+    27653, 28610, 28593, 28577, 28611, 28580, 28609, 28583, 28595, 28608,
+    28601, [28598, 60318], 28582, 28576, 28596, 29118, 29129, 29136, 29138,
+    29128, 29141, 29113, 29134, 29145, 29148, {f: 2, c: 29123}, 29544, 29852,
+    29859, 29848, 29855, 29854, 29922, {f: 2, c: 29964}, 30260, 30264, 30266,
+    30439, 30437, 30624, {f: 2, c: 30622}, 30629, 30952, 30938, 30956, 30951,
+    31142, {f: 2, c: 31309}, 31302, 31308, 31307, 31418, 31705, 31761, 31689,
+    31716, 31707, 31713, 31721, 31718, {f: 2, c: 31957}, 32266, 32273, 32264,
+    32283, 32291, 32286, [32285, 58211], 32265, 32272, 32633, 32690,
+    {f: 2, c: 32752}, 32750, [32808, 58239], 33203, 33193, 33192, 33275, 33288,
+    {f: 2, c: 33368}, 34122, 34137, 34120, {f: 2, c: 34152}, 34115, 34121,
+    34157, 34154, 34142, 34691, 34719, 34718, 34722, 34701, 34913, 35114,
+    35122, 35109, 35115, 35105, 35242, [35238, 58391], 35558, 35578, 35563,
+    35569, 35584, 35548, 35559, 35566, 35582, {f: 2, c: 35585}, 35575, 35565,
+    35571, 35574, 35580, 35947, 35949, 35987, 36084, 36420, 36401, 36404,
+    36418, 36409, 36405, 36667, 36655, 36664, 36659, 36776, 36774, 36981,
+    36980, 36984, 36978, 36988, 36986, 37172, 37266, 37664, 37686, 37624,
+    37683, 37679, 37666, 37628, 37675, 37636, 37658, 37648, 37670, 37665,
+    37653, 37678, 37657, 38331, {f: 2, c: 38567}, 38570, 38613, 38670, 38673,
+    38678, 38669, 38675, 38671, 38747, [38748, 58565], 38758, 38808, 38960,
+    38968, 38971, 38967, 38957, 38969, 38948, 39184, 39208, 39198, 39195,
+    39201, 39194, 39405, 39394, 39409, 39608, 39612, 39675, 39661, 39720,
+    39825, 40213, 40227, 40230, 40232, 40210, 40219, 40664, 40660,
+    [12243, 40845], [12244, 40860], 20778, 20767, 20769, 20786, 21237, 22158,
+    22144, 22160, 22149, 22151, 22159, 22741, 22739, 22737, 22734, 23344,
+    23338, 23332, 23418, 23607, 23656, 23996, 23994, 23997, 23992, 24171,
+    24396, 24509, 25033, 25026, 25031, 25062, 25035, 25138, 25140, 25806,
+    25802, 25816, 25824, 25840, 25830, 25836, 25841, 25826, 25837,
+    {f: 2, c: 25986}, 26329, 26326, 27264, 27284, 27268, 27298, 27292, 27355,
+    27299, 27262, 27287, 27280, 27296, 27484, 27566, 27610, 27656, 28632,
+    28657, {f: 2, c: 28639}, 28635, 28644, 28651, 28655, 28544, 28652, 28641,
+    28649, 28629, 28654, 28656, 29159, [29151, 60361], 29166, 29158, 29157,
+    29165, 29164, 29172, 29152, 29237, 29254, 29552, 29554, 29865, 29872,
+    29862, 29864, 30278, 30274, 30284, 30442, 30643, 30634, 30640, 30636,
+    30631, 30637, 30703, 30967, 30970, 30964, 30959, 30977, 31143, 31146,
+    31319, 31423, 31751, 31757, 31742, 31735, 31756, 31712, 31968, 31964,
+    31966, 31970, 31967, 31961, 31965, 32302, 32318, 32326, 32311, 32306,
+    32323, 32299, 32317, 32305, 32325, 32321, 32308, 32313, 32328, 32309,
+    32319, 32303, 32580, 32755, 32764, {f: 2, c: 32881}, 32880, 32879, 32883,
+    33222, 33219, 33210, 33218, 33216, 33215, 33213, 33225, 33214, 33256,
+    33289, 33393, 34218, 34180, 34174, 34204, 34193, 34196, 34223, 34203,
+    34183, 34216, 34186, 34214, 34407, 34752, 34769, 34739, 34770, 34758,
+    34731, 34747, 34746, 34760, 34763, 35131, 35126, 35140, 35128, 35133,
+    35244, 35598, 35607, 35609, 35611, 35594, 35616, 35613, 35588, 35600,
+    35905, 35903, 35955, 36090, 36093, 36092, 36088, 36091, 36264, 36425,
+    36427, 36424, 36426, 36676, 36670, 36674, 36677, 36671, 36991, 36989,
+    36996, {f: 2, c: 36993}, 36992, 37177, 37283, 37278, 37276, 37709, 37762,
+    37672, 37749, 37706, 37733, 37707, 37656, 37758, 37740, 37723, 37744,
+    37722, 37716, {f: 3, c: 38346}, 38344, 38342, 38577, 38584, 38614, 38684,
+    38686, 38816, 38867, 38982, 39094, 39221, 39425, 39423, 39854, 39851,
+    39850, 39853, 40251, 40255, 40587, 40655, 40670, {f: 2, c: 40668}, 40667,
+    40766, 40779, 21474, 22165, 22190, 22745, 22744, 23352, 24413, 25059,
+    25139, 25844, 25842, 25854, 25862, {f: 2, c: 25850}, 25847, 26039, 26332,
+    26406, 27315, 27308, 27331, 27323, 27320, 27330, {f: 2, c: 27310}, 27487,
+    27512, 27567, 28681, 28683, 28670, 28678, 28666, 28689, 28687,
+    {f: 2, c: 29179}, 29182, 29176, 29559, 29557, 29863, 29887, 29973, 30294,
+    30296, 30290, 30653, 30655, {f: 2, c: 30651}, 30990, 31150,
+    {f: 2, c: 31329}, 31328, {f: 2, c: 31428}, 31787, 31783, 31786, 31774,
+    31779, 31777, 31975, {f: 2, c: 32340}, 32350, 32346, 32353, 32338, 32345,
+    32584, 32761, 32763, 32887, 32886, 33229, 33231, 33290, 34255, 34217,
+    34253, 34256, 34249, 34224, 34234, 34233, 34799, 34796, 34802, 34784,
+    35206, 35250, 35316, 35624, 35641, 35628, 35627, 35920, 36101, 36441,
+    36451, 36454, 36452, 36447, 36437, 36544, 36681, 36685, 36999, 36995,
+    37000, {f: 2, c: 37291}, 37328, 37780, 37770, 37782, 37794, 37811, 37806,
+    37804, 37808, 37784, 37786, 37783, 38356, 38358, 38352, 38357, 38626,
+    38620, 38617, 38619, 38622, 38692, 38819, 38822, 38829, 38905, 38989,
+    38991, 38988, 38990, 38995, 39098, {f: 2, c: 39230}, 39229, 39214, 39333,
+    39438, 39617, 39683, 39686, 39759, 39758, 39757, 39882, 39881, 39933,
+    39880, 39872, 40273, 40285, 40288, 40672, 40725, 40748, 20787, 22181,
+    22184, {f: 2, c: 22750}, 22754, 23541, 40848, 24300, 25074, 25079, 25078,
+    25077, 25856, 25871, 26336, 26333, 27365, 27357, 27354, 27347, 28699,
+    28703, 28712, 28698, 28701, 28693, 28696, 29190, 29197, 29272, 29346,
+    29560, 29562, 29885, 29898, 29923, 30087, 30086, 30303, 30305, 30663,
+    31001, 31153, 31339, 31337, {f: 2, c: 31806}, 31800, 31805, 31799, 31808,
+    32363, 32365, 32377, {f: 2, c: 32361}, 32371, 32645, 32694, 32697, 32696,
+    33240, 34281, 34269, 34282, 34261, {f: 2, c: 34276}, 34295, 34811, 34821,
+    34829, 34809, 34814, 35168, 35167, 35158, 35166, 35649, 35676, 35672,
+    35657, 35674, {f: 2, c: 35662}, 35654, 35673, 36104, 36106, 36476, 36466,
+    36487, 36470, 36460, 36474, 36468, 36692, 36686, 36781, {f: 2, c: 37002},
+    37297, 37294, 37857, 37841, 37855, 37827, 37832, {f: 2, c: 37852}, 37846,
+    37858, 37837, 37848, 37860, 37847, 37864, 38364, 38580, 38627, 38698,
+    38695, 38753, 38876, 38907, 39006, 39000, 39003, 39100, 39237, 39241,
+    39446, 39449, 39693, 39912, 39911, 39894, 39899, 40329, 40289, 40306,
+    40298, 40300, 40594, 40599, 40595, 40628, 21240, 22199, 22198, 22196,
+    22204, 22756, 23360, 23363, 23421, 23542, 24009, 25080, 25082, 25880,
+    25876, 25881, 26342, 26407, 27372, 28734, 28720, 28722, 29200, 29563,
+    29903, 30306, 30309, 31014, 31018, 31020, 31019, 31431, 31478, 31820,
+    31811, 31821, {f: 2, c: 31983}, 36782, 32381, 32380, 32386, 32588, 32768,
+    33242, 33382, 34299, 34297, 34321, 34298, 34310, 34315, 34311, 34314,
+    {f: 2, c: 34836}, 35172, 35258, 35320, 35696, 35692, 35686, 35695, 35679,
+    35691, 36111, 36109, 36489, 36481, 36485, 36482, 37300, 37323, 37912,
+    37891, 37885, 38369, 38704, 39108, 39250, 39249, 39336, 39467, 39472,
+    39479, 39477, 39955, 39949, 40569, 40629, 40680, 40751, 40799, 40803,
+    40801, {f: 2, c: 20791}, 22209, 22208, 22210, 22804, 23660, 24013, 25084,
+    25086, 25885, 25884, 26005, 26345, 27387, 27396, 27386, 27570, 28748,
+    29211, 29351, 29910, 29908, 30313, 30675, 31824, 32399, 32396, 32700,
+    34327, 34349, 34330, 34851, 34850, 34849, 34847, 35178, 35180, 35261,
+    35700, 35703, 35709, 36115, 36490, 36493, 36491, 36703, 36783, 37306,
+    37934, 37939, 37941, 37946, 37944, 37938, 37931, 38370, {f: 2, c: 38712},
+    38706, [38911, 58586], 39015, 39013, 39255, 39493, 39491, 39488, 39486,
+    39631, 39764, 39761, 39981, 39973, 40367, 40372, 40386, 40376, 40605,
+    40687, 40729, 40796, {f: 2, c: 40806}, 20796, 20795, 22216, 22218, 22217,
+    23423, 24020, 24018, 24398, 25087, 25892, 27402, 27489, 28753, 28760,
+    29568, 29924, 30090, 30318, 30316, 31155, 31840, 31839, 32894, 32893,
+    33247, 35186, 35183, 35324, 35712, {f: 2, c: 36118}, 36497, 36499, 36705,
+    37192, 37956, {f: 2, c: 37969}, {f: 2, c: 38717}, 38851, 38849, 39019,
+    39253, 39509, 39501, 39634, 39706, 40009, 39985, 39998, 39995, 40403,
+    40407, 40756, 40812, 40810, 40852, 22220, 24022, 25088, 25891, 25899,
+    25898, 26348, 27408, 29914, 31434, 31844, 31843, 31845, 32403, 32406,
+    32404, 33250, 34360, 34367, 34865, 35722, 37008, 37007, 37987, 37984,
+    37988, 38760, 39023, 39260, {f: 2, c: 39514}, 39511, {f: 2, c: 39635},
+    39633, 40020, 40023, 40022, 40421, 40607, 40692, 22225, 22761, 25900,
+    28766, {f: 2, c: 30321}, [30679, 60226], 32592, 32648, 34870, 34873, 34914,
+    35731, 35730, 35734, 33399, 36123, 37312, 37994, 38722, 38728, 38724,
+    38854, 39024, 39519, 39714, 39768, 40031, {f: 2, c: 40441},
+    {f: 2, c: 40572}, 40711, 40823, 40818, 24307, 27414, 28771, 31852, 31854,
+    34875, 35264, 36513, 37313, 38002, 38000, 39025, 39262, 39638, 39715,
+    40652, 28772, 30682, 35738, 38007, 38857, 39522, 39525, 32412, 35740,
+    36522, 37317, {f: 2, c: 38013}, 38012, {f: 2, c: 40055}, 40695, 35924,
+    38015, 40474, 29224, 39530, 39729, 40475, 40478, 31858, 20034, 20060,
+    [12048, 20981], [12053, 21274], [12058, 21378], 19975, 19980, 20039, 20109,
+    [12062, 22231], [12076, 23662], [12091, 24435], 19983, 20871, 19982, 20014,
+    20115, 20162, 20169, 20168, 20888, 21244, 21356, 21433, 22304, 22787,
+    22828, [23568, 60417], 24063, 26081, [12110, 27571], 27596, [12115, 27668],
+    [12121, 29247], 20017, 20028, 20200, 20188, 20201, 20193, 20189, 20186,
+    21004, 21001, 21276, 21324, {f: 2, c: 22306}, 22807, 22831, 23425, 23428,
+    23570, 23611, 23668, 23667, 24068, 24192, 24194, 24521, 25097, 25168,
+    27669, 27702, 27715, 27711, 27707, 29358, 29360, 29578, [12145, 31160],
+    32906, 38430, 20238, 20248, 20268, 20213, 20244, 20209, 20224, 20215,
+    20232, 20253, 20226, 20229, 20258, 20243, 20228, 20212, 20242, 20913,
+    21011, 21008, 21158, 21282, 21279, 21325, 21386, 21511, 22241, 22239,
+    22318, 22314, 22324, 22844, 22912, 22908, 22917, 22907, 22910, 22903,
+    22911, 23382, 23573, 23589, 23676, {f: 2, c: 23674}, 23678, 24031,
+    [24181, 57646], 24196, 24322, 24346, 24436, 24533, 24532, 24527, 25180,
+    25182, 25188, 25185, 25190, 25186, 25177, 25184, 25178, 25189, 25911,
+    26095, 26094, 26430, 26425, 26424, 26427, 26426, 26431, 26428, 26419,
+    27672, 27718, 27730, 27740, 27727, [27722, 60796], 27732, {f: 2, c: 27723},
+    28785, 29278, {f: 2, c: 29364}, 29582, 29994, 30335, 31349, [12153, 32593],
+    [12171, 33400], 33404, 33408, 33405, 33407, [12172, 34381], [12177, 35198],
+    37017, [37015, 59347], 37016, 37019, 37012, 38434, 38436, 38432, 38435,
+    20310, 20283, 20322, 20297, 20307, 20324, 20286, 20327, 20306, 20319,
+    20289, 20312, 20269, 20275, 20287, 20321, 20879, 20921, 21020, 21022,
+    21025, {f: 2, c: 21165}, 21257, 21347, 21362, {f: 2, c: 21390}, 21552,
+    21559, 21546, 21588, 21573, 21529, 21532, 21541, 21528, 21565, 21583,
+    21569, 21544, 21540, 21575, 22254, 22247, 22245, 22337, 22341, 22348,
+    22345, 22347, 22354, 22790, 22848, 22950, 22936, 22944, 22935, 22926,
+    22946, 22928, 22927, 22951, 22945, 23438, 23442, 23592, 23594, 23693,
+    23695, 23688, 23691, 23689, 23698, 23690, 23686, 23699, 23701, 24032,
+    24074, 24078, 24203, 24201, 24204, 24200, 24205, 24325, 24349, 24440,
+    24438, 24530, 24529, 24528, 24557, 24552, 24558, 24563, 24545, 24548,
+    24547, 24570, 24559, 24567, 24571, 24576, 24564, 25146, 25219, 25228,
+    {f: 2, c: 25230}, 25236, 25223, 25201, 25211, 25210, 25200, 25217, 25224,
+    25207, 25213, 25202, 25204, 26096, 26100, 26099, 26098, 26101, 26437,
+    26439, 26457, 26453, 26444, 26440, 26461, 26445, 26458, 26443, 27600,
+    {f: 2, c: 27673}, 27768, 27751, 27755, 27780, 27787, 27791, 27761, 27759,
+    27753, 27802, 27757, 27783, 27797, [27804, 57900], 27750, 27763, 27749,
+    27771, 27790, 28788, 28794, 29283, 29375, 29373, 29379, 29382, 29377,
+    29370, 29381, 29589, 29591, {f: 2, c: 29587}, 29586, 30010, 30009,
+    {f: 2, c: 30100}, 30337, 31037, 32820, 32917, 32921, 32912, 32914, 32924,
+    33424, 33423, 33413, 33422, 33425, 33427, 33418, {f: 2, c: 33411},
+    [12184, 35960], 36809, 36799, 37023, 37025, 37029, 37022, 37031, 37024,
+    38448, 38440, 38447, 38445, 20019, 20376, 20348, 20357, 20349, 20352,
+    20359, 20342, 20340, 20361, 20356, 20343, 20300, 20375, 20330, 20378,
+    20345, 20353, 20344, 20368, 20380, 20372, 20382, 20370, 20354, 20373,
+    20331, 20334, 20894, 20924, 20926, 21045, {f: 2, c: 21042}, 21062, 21041,
+    21180, {f: 2, c: 21258}, 21308, 21394, 21396, 21639, 21631, 21633, 21649,
+    21634, 21640, 21611, 21626, 21630, 21605, 21612, 21620, 21606, 21645,
+    21615, 21601, 21600, 21656, 21603, 21607, 21604, 22263, 22265, 22383,
+    22386, 22381, 22379, 22385, 22384, 22390, 22400, 22389, 22395,
+    {f: 2, c: 22387}, 22370, 22376, 22397, 22796, 22853, 22965, 22970, 22991,
+    22990, 22962, 22988, 22977, 22966, 22972, 22979, 22998, 22961, 22973,
+    22976, 22984, 22964, 22983, 23394, 23397, 23443, 23445, 23620, 23623,
+    23726, 23716, 23712, 23733, 23727, 23720, 23724, 23711, 23715, 23725,
+    23714, 23722, 23719, 23709, 23717, 23734, 23728, 23718, 24087, 24084,
+    24089, 24360, {f: 3, c: 24354}, 24404, 24450, 24446, 24445, 24542, 24549,
+    24621, 24614, 24601, 24626, 24587, 24628, 24586, 24599, 24627, 24602,
+    24606, 24620, 24610, 24589, 24592, 24622, 24595, 24593, 24588, 24585,
+    24604, 25108, 25149, 25261, 25268, 25297, 25278, 25258, 25270, 25290,
+    25262, 25267, 25263, 25275, 25257, 25264, 25272, 25917, 26024, 26043,
+    26121, 26108, 26116, 26130, 26120, 26107, 26115, 26123, 26125, 26117,
+    26109, 26129, 26128, 26358, 26378, 26501, 26476, 26510, 26514, 26486,
+    26491, 26520, 26502, 26500, 26484, 26509, 26508, 26490, 26527, 26513,
+    26521, 26499, 26493, 26497, {f: 2, c: 26488}, 26516, 27429, 27520, 27518,
+    27614, 27677, 27795, 27884, 27883, 27886, 27865, 27830, 27860, 27821,
+    27879, 27831, 27856, 27842, 27834, 27843, 27846, 27885, 27890, 27858,
+    27869, 27828, 27786, 27805, 27776, 27870, 27840, 27952, 27853, 27847,
+    27824, 27897, 27855, 27881, 27857, 28820, 28824, 28805, 28819, 28806,
+    28804, 28817, 28822, 28802, 28826, 28803, 29290, 29398, 29387, 29400,
+    29385, 29404, 29394, 29396, 29402, 29388, 29393, 29604, 29601, 29613,
+    29606, 29602, 29600, 29612, 29597, 29917, 29928, {f: 2, c: 30015}, 30014,
+    30092, 30104, 30383, 30451, 30449, 30448, 30453, 30712, 30716, 30713,
+    30715, 30714, 30711, 31042, 31039, 31173, 31352, 31355, 31483, 31861,
+    31997, 32821, 32911, 32942, 32931, 32952, 32949, 32941, 33312, 33440,
+    33472, 33451, 33434, 33432, 33435, 33461, 33447, 33454, 33468, 33438,
+    33466, 33460, 33448, 33441, 33449, 33474, 33444, 33475, 33462, 33442,
+    34416, 34415, {f: 2, c: 34413}, 35926, 36818, 36811, 36819, 36813, 36822,
+    36821, 36823, 37042, 37044, 37039, 37043, 37040, 38457, 38461, 38460,
+    38458, 38467, 20429, 20421, 20435, 20402, 20425, 20427, 20417, 20436,
+    20444, 20441, [20411, 60346], 20403, 20443, 20423, 20438, 20410, 20416,
+    20409, 20460, 21060, 21065, 21184, 21186, 21309, 21372, 21399, 21398,
+    21401, 21400, 21690, 21665, 21677, 21669, 21711, 21699, 33549, 21687,
+    21678, 21718, 21686, {f: 2, c: 21701}, 21664, 21616, 21692, 21666, 21694,
+    21618, 21726, 21680, 22453, {f: 2, c: 22430}, 22436, 22412, 22423, 22429,
+    22427, 22420, 22424, 22415, 22425, 22437, 22426, 22421, 22772, 22797,
+    22867, 23009, 23006, 23022, 23040, 23025, 23005, 23034, 23037, 23036,
+    23030, 23012, 23026, 23031, 23003, 23017, 23027, 23029, 23008, 23038,
+    23028, 23021, 23464, 23628, 23760, 23768, 23756, 23767, 23755, 23771,
+    23774, 23770, 23753, 23751, 23754, 23766, {f: 2, c: 23763}, 23759, 23752,
+    23750, 23758, 23775, 23800, 24057, {f: 3, c: 24097}, 24096, 24100, 24240,
+    24228, 24226, 24219, 24227, 24229, 24327, 24366, 24406, 24454, 24631,
+    24633, 24660, 24690, 24670, 24645, 24659, 24647, 24649, 24667, 24652,
+    24640, 24642, 24671, 24612, 24644, 24664, 24678, 24686, {f: 2, c: 25154},
+    25295, 25357, 25355, 25333, 25358, 25347, 25323, 25337, 25359, 25356,
+    25336, 25334, 25344, {f: 2, c: 25363}, 25338, 25365, 25339, 25328, 25921,
+    25923, 26026, 26047, 26166, 26145, 26162, 26165, 26140, 26150, 26146,
+    26163, 26155, 26170, 26141, 26164, 26169, 26158, {f: 2, c: 26383}, 26561,
+    26610, 26568, 26554, 26588, 26555, 26616, 26584, 26560, 26551, 26565,
+    26603, 26596, 26591, 26549, 26573, 26547, 26615, 26614, 26606, 26595,
+    26562, 26553, 26574, 26599, 26608, 26546, 26620, 26566, 26605, 26572,
+    26542, 26598, 26587, 26618, {f: 2, c: 26569}, 26563, 26602, 26571, 27432,
+    27522, 27524, 27574, 27606, 27608, 27616, {f: 2, c: 27680}, 27944, 27956,
+    27949, 27935, 27964, 27967, 27922, 27914, 27866, 27955, 27908, 27929,
+    27962, 27930, 27921, 27904, 27933, 27970, 27905, 27928, 27959, 27907,
+    27919, 27968, 27911, 27936, 27948, 27912, 27938, 27913, 27920, 28855,
+    28831, 28862, 28849, 28848, 28833, {f: 2, c: 28852}, 28841, 29249,
+    {f: 2, c: 29257}, 29292, 29296, 29299, 29294, 29386, 29412, 29416, 29419,
+    29407, 29418, 29414, 29411, 29573, 29644, 29634, 29640, 29637, 29625,
+    29622, 29621, 29620, 29675, 29631, 29639, 29630, 29635, 29638, 29624,
+    29643, 29932, 29934, 29998, {f: 2, c: 30023}, 30119, 30122, 30329, 30404,
+    30472, {f: 3, c: 30467}, 30474, 30455, 30459, 30458, {f: 2, c: 30695},
+    30726, {f: 2, c: 30737}, 30725, 30736, 30735, 30734, [30729, 58095], 30723,
+    30739, 31050, 31052, 31051, 31045, 31044, 31189, 31181, 31183, 31190,
+    31182, 31360, 31358, 31441, {f: 2, c: 31488}, 31866, {f: 2, c: 31864},
+    {f: 3, c: 31871}, 32003, 32008, 32001, 32600, 32657, 32653, 32702, 32775,
+    {f: 2, c: 32782}, 32788, 32823, 32984, 32967, 32992, 32977, 32968, 32962,
+    32976, 32965, 32995, 32985, 32988, 32970, 32981, 32969, 32975, 32983,
+    32998, 32973, 33279, 33313, 33428, 33497, 33534, 33529, 33543, 33512,
+    33536, 33493, 33594, 33515, 33494, 33524, 33516, 33505, 33522, 33525,
+    33548, 33531, 33526, 33520, 33514, 33508, 33504, 33530, 33523, 33517,
+    34423, 34420, 34428, 34419, 34881, 34894, 34919, 34922, 34921, 35283,
+    35332, 35335, 36210, 36835, 36833, 36846, 36832, 37105, 37053, 37055,
+    37077, 37061, 37054, 37063, 37067, 37064, [37332, 60294], 37331, 38484,
+    38479, 38481, 38483, 38474, 38478, 20510, 20485, 20487, 20499, 20514,
+    20528, 20507, 20469, 20468, 20531, 20535, 20524, {f: 2, c: 20470}, 20503,
+    20508, 20512, 20519, 20533, 20527, 20529, 20494, 20826, 20884, 20883,
+    20938, {f: 2, c: 20932}, 20936, 20942, 21089, 21082, 21074,
+    {f: 2, c: 21086}, 21077, 21090, 21197, 21262, 21406, 21798, 21730, 21783,
+    21778, 21735, 21747, 21732, 21786, 21759, 21764, 21768, 21739, 21777,
+    21765, 21745, 21770, 21755, {f: 2, c: 21751}, 21728, 21774, 21763, 21771,
+    {f: 2, c: 22273}, 22476, 22578, 22485, 22482, 22458, 22470, 22461, 22460,
+    22456, 22454, 22463, 22471, 22480, 22457, 22465, 22798, 22858, 23065,
+    23062, {f: 2, c: 23085}, 23061, 23055, 23063, 23050, 23070, 23091, 23404,
+    23463, 23469, 23468, 23555, 23638, 23636, 23788, 23807, 23790, 23793,
+    23799, 23808, 23801, 24105, 24104, 24232, 24238, 24234, 24236, 24371,
+    24368, 24423, 24669, 24666, 24679, 24641, 24738, 24712, 24704, 24722,
+    24705, 24733, 24707, 24725, 24731, 24727, 24711, 24732, 24718, 25113,
+    25158, 25330, 25360, 25430, 25388, {f: 2, c: 25412}, 25398, 25411, 25572,
+    25401, 25419, 25418, 25404, 25385, 25409, 25396, 25432, 25428, 25433,
+    25389, 25415, 25395, 25434, 25425, 25400, 25431, 25408, 25416, 25930,
+    25926, 26054, {f: 2, c: 26051}, 26050, 26186, 26207, 26183, 26193,
+    {f: 2, c: 26386}, 26655, 26650, 26697, {f: 2, c: 26674}, 26683, 26699,
+    26703, 26646, 26673, 26652, 26677, 26667, 26669, 26671, 26702, 26692,
+    26676, 26653, 26642, 26644, 26662, 26664, 26670, 26701, 26682, 26661,
+    26656, 27436, 27439, 27437, 27441, 27444, 27501, 32898, 27528, 27622,
+    27620, 27624, 27619, 27618, 27623, 27685, 28026, {f: 2, c: 28003}, 28022,
+    27917, 28001, 28050, 27992, 28002, 28013, 28015, 28049, 28045, 28143,
+    28031, 28038, 27998, [28007, 59078], 28000, 28055, 28016, 28028, 27999,
+    28034, 28056, 27951, 28008, 28043, 28030, 28032, 28036, 27926, 28035,
+    28027, 28029, 28021, 28048, 28892, 28883, 28881, 28893, 28875, 32569,
+    28898, 28887, 28882, 28894, 28896, 28884, 28877, {f: 3, c: 28869}, 28890,
+    28878, 28897, 29250, 29304, 29303, 29302, 29440, 29434, 29428, 29438,
+    29430, 29427, 29435, 29441, 29651, 29657, 29669, 29654, 29628, 29671,
+    29667, 29673, 29660, 29650, 29659, 29652, 29661, 29658, {f: 2, c: 29655},
+    29672, {f: 2, c: 29918}, {f: 2, c: 29940}, 29985, 30043, 30047, 30128,
+    30145, 30139, 30148, 30144, 30143, 30134, 30138, 30346, 30409, 30493,
+    30491, 30480, 30483, 30482, 30499, 30481, 30485, {f: 2, c: 30489}, 30498,
+    30503, 30755, 30764, 30754, 30773, 30767, 30760, 30766, 30763, 30753,
+    30761, 30771, 30762, 30769, 31060, 31067, 31055, 31068, 31059, 31058,
+    31057, {f: 2, c: 31211}, 31200, 31214, 31213, 31210, 31196, 31198, 31197,
+    31366, 31369, 31365, {f: 2, c: 31371}, 31370, 31367, 31448, 31504, 31492,
+    31507, 31493, 31503, 31496, 31498, 31502, 31497, 31506, 31876, 31889,
+    31882, 31884, 31880, 31885, 31877, 32030, 32029, 32017, 32014, 32024,
+    32022, 32019, 32031, 32018, 32015, 32012, 32604, 32609, 32606, 32608,
+    32605, 32603, 32662, 32658, 32707, 32706, 32704, 32790, 32830, 32825,
+    33018, 33010, 33017, 33013, 33025, 33019, 33024, 33281, 33327, 33317,
+    33587, 33581, 33604, 33561, 33617, 33573, 33622, 33599, 33601, 33574,
+    33564, 33570, 33602, 33614, 33563, 33578, 33544, 33596, 33613, 33558,
+    33572, 33568, 33591, 33583, 33577, 33607, 33605, 33612, 33619, 33566,
+    33580, 33611, 33575, 33608, 34387, 34386, 34466, 34472, 34454, 34445,
+    34449, 34462, 34439, 34455, 34438, 34443, 34458, 34437, 34469, 34457,
+    34465, 34471, 34453, 34456, 34446, 34461, 34448, 34452, {f: 2, c: 34883},
+    34925, {f: 2, c: 34933}, 34930, 34944, 34929, 34943, 34927, 34947, 34942,
+    34932, 34940, 35346, 35911, 35927, 35963, 36004, 36003, 36214, 36216,
+    36277, 36279, 36278, 36561, 36563, 36862, 36853, 36866, 36863, 36859,
+    36868, 36860, 36854, 37078, 37088, {f: 2, c: 37081}, 37091, 37087, 37093,
+    37080, 37083, 37079, 37084, 37092, 37200, {f: 2, c: 37198}, 37333, 37346,
+    37338, 38492, 38495, 38588, 39139, [12221, 39647], [12223, 39727], 20095,
+    20592, 20586, 20577, 20574, 20576, 20563, 20555, 20573, 20594, 20552,
+    20557, 20545, 20571, 20554, 20578, 20501, 20549, 20575, 20585, 20587,
+    {f: 2, c: 20579}, 20550, 20544, 20590, 20595, 20567, 20561, 20944, 21099,
+    21101, 21100, 21102, 21206, 21203, 21293, 21404, {f: 2, c: 21877}, 21820,
+    21837, 21840, 21812, 21802, 21841, 21858, 21814, 21813, 21808, 21842,
+    21829, 21772, 21810, 21861, 21838, 21817, 21832, 21805, 21819, 21824,
+    21835, 22282, 22279, 22523, 22548, 22498, 22518, 22492, 22516, 22528,
+    22509, 22525, 22536, 22520, 22539, 22515, 22479, 22535, 22510, 22499,
+    22514, 22501, 22508, 22497, 22542, 22524, 22544, 22503, 22529, 22540,
+    22513, 22505, 22512, 22541, 22532, 22876, 23136, 23128, 23125,
+    [23143, 60437], 23134, 23096, 23093, 23149, 23120, 23135, 23141, 23148,
+    23123, 23140, 23127, 23107, 23133, 23122, 23108, 23131, 23112, 23182,
+    23102, 23117, 23097, 23116, 23152, 23145, 23111, 23121, 23126, 23106,
+    23132, 23410, 23406, 23489, 23488, 23641, 23838, 23819, 23837, 23834,
+    23840, 23820, 23848, 23821, 23846, 23845, 23823, 23856, 23826, 23843,
+    23839, 23854, 24126, 24116, 24241, 24244, 24249, {f: 2, c: 24242}, 24374,
+    24376, 24475, 24470, 24479, 24714, 24720, 24710, 24766, 24752, 24762,
+    {f: 2, c: 24787}, 24783, 24804, 24793, 24797, 24776, 24753, 24795, 24759,
+    24778, 24767, 24771, 24781, 24768, 25394, 25445, 25482, 25474, 25469,
+    25533, 25502, 25517, 25501, 25495, 25515, 25486, 25455, 25479, 25488,
+    25454, 25519, 25461, 25500, 25453, 25518, 25468, 25508, 25403, 25503,
+    25464, 25477, 25473, 25489, 25485, 25456, 25939, 26061, 26213, 26209,
+    26203, 26201, 26204, 26210, 26392, 26745, 26759, 26768, 26780,
+    {f: 2, c: 26733}, 26798, 26795, 26966, 26735, 26787, 26796, 26793, 26741,
+    26740, 26802, 26767, 26743, 26770, 26748, 26731, 26738, 26794, 26752,
+    26737, 26750, 26779, 26774, 26763, 26784, 26761, 26788, 26744, 26747,
+    26769, 26764, 26762, 26749, 27446, 27443, {f: 2, c: 27447}, 27537, 27535,
+    {f: 2, c: 27533}, 27532, 27690, 28096, 28075, 28084, 28083, 28276, 28076,
+    28137, 28130, 28087, 28150, 28116, 28160, 28104, 28128, 28127, 28118,
+    28094, 28133, {f: 2, c: 28124}, 28123, 28148, 28106, 28093, 28141, 28144,
+    28090, 28117, 28098, 28111, 28105, 28112, 28146, 28115, 28157, 28119,
+    28109, 28131, 28091, 28922, 28941, 28919, 28951, 28916, 28940, 28912,
+    28932, 28915, 28944, 28924, 28927, 28934, 28947, 28928, 28920, 28918,
+    28939, 28930, 28942, 29310, {f: 2, c: 29307}, 29311, 29469, 29463, 29447,
+    29457, 29464, 29450, 29448, 29439, 29455, 29470, 29576, 29686, 29688,
+    29685, 29700, 29697, 29693, 29703, 29696, 29690, 29692, 29695, 29708,
+    29707, 29684, 29704, 30052, 30051, 30158, 30162, 30159, {f: 2, c: 30155},
+    30161, 30160, 30351, 30345, 30419, 30521, 30511, 30509, {f: 2, c: 30513},
+    30516, 30515, 30525, 30501, 30523, 30517, 30792, 30802, 30793, 30797,
+    30794, 30796, 30758, 30789, 30800, 31076, 31079, {f: 2, c: 31081}, 31075,
+    31083, 31073, 31163, 31226, 31224, {f: 2, c: 31222}, 31375, 31380, 31376,
+    31541, 31547, 31540, 31525, 31536, 31522, 31524, 31539, 31512, 31530,
+    31517, 31537, 31531, 31533, 31535, 31538, 31544, 31514, 31523, 31892,
+    31896, 31894, 31907, 32053, 32061, 32056, 32054, 32058, 32069, 32044,
+    32041, 32065, 32071, {f: 2, c: 32062}, 32074, 32059, 32040, 32611, 32661,
+    {f: 2, c: 32668}, 32667, {f: 2, c: 32714}, 32717, {f: 2, c: 32720}, 32711,
+    32719, 32713, 32799, 32798, 32795, 32839, 32835, 32840, 33048, 33061,
+    33049, 33051, 33069, 33055, 33068, 33054, 33057, 33045, 33063, 33053,
+    33058, 33297, 33336, 33331, 33338, 33332, 33330, 33396, 33680, 33699,
+    33704, 33677, 33658, 33651, 33700, 33652, 33679, 33665, 33685, 33689,
+    33653, 33684, 33705, 33661, 33667, 33676, 33693, 33691, 33706, 33675,
+    33662, 33701, 33711, 33672, 33687, 33712, 33663, 33702, 33671, 33710,
+    33654, 34393, 34390, 34495, 34487, 34498, 34497, 34501, 34490, 34480,
+    34504, 34489, 34483, 34488, 34508, 34484, {f: 2, c: 34491}, 34499,
+    {f: 2, c: 34493}, 34898, 34953, 34965, 34984, 34978, 34986, 34970, 34961,
+    34977, 34975, 34968, 34983, 34969, 34971, 34967, 34980, 34988, 34956,
+    34963, 34958, 35202, 35286, 35289, 35285, 35376, 35367, 35372, 35358,
+    35897, 35899, {f: 2, c: 35932}, 35965, 36005, 36221, 36219, 36217, 36284,
+    36290, 36281, 36287, 36289, 36568, 36574, 36573, 36572, 36567,
+    {f: 2, c: 36576}, 36900, 36875, 36881, 36892, 36876, 36897, 37103, 37098,
+    37104, 37108, {f: 2, c: 37106}, 37076, {f: 2, c: 37099}, 37097, 37206,
+    37208, 37210, 37203, 37205, 37356, 37364, 37361, 37363, 37368, 37348,
+    37369, {f: 2, c: 37354}, 37367, 37352, 37358, 38266, 38278, 38280, 38524,
+    38509, 38507, 38513, 38511, 38591, 38762, 38916, 39141, 39319, 20635,
+    20629, 20628, 20638, 20619, 20643, 20611, 20620, 20622, 20637, 20584,
+    20636, 20626, 20610, 20615, 20831, 20948, 21266, 21265, 21412, 21415,
+    21905, 21928, 21925, 21933, 21879, 22085, 21922, 21907, 21896, 21903,
+    21941, 21889, 21923, 21906, 21924, 21885, 21900, 21926, 21887, 21909,
+    21921, 21902, 22284, 22569, 22583, 22553, 22558, 22567, 22563, 22568,
+    22517, 22600, 22565, 22556, 22555, 22579, 22591, 22582, 22574, 22585,
+    22584, 22573, 22572, 22587, 22881, 23215, 23188, 23199, 23162, 23202,
+    23198, 23160, 23206, 23164, 23205, 23212, 23189, 23214, 23095, 23172,
+    23178, 23191, 23171, 23179, 23209, 23163, 23165, 23180, 23196, 23183,
+    23187, 23197, 23530, 23501, 23499, 23508, 23505, 23498, 23502, 23564,
+    23600, 23863, 23875, 23915, 23873, 23883, 23871, 23861, 23889, 23886,
+    23893, 23859, 23866, 23890, 23869, 23857, 23897, 23874, 23865, 23881,
+    23864, 23868, 23858, 23862, 23872, 23877, 24132, 24129, [24408, 57673],
+    24486, 24485, 24491, 24777, 24761, 24780, 24802, 24782, 24772, 24852,
+    24818, 24842, 24854, 24837, 24821, 24851, 24824, 24828, 24830, 24769,
+    24835, 24856, 24861, 24848, 24831, 24836, 24843, 25162, 25492, 25521,
+    25520, 25550, 25573, 25576, 25583, 25539, 25757, 25587, 25546, 25568,
+    25590, 25557, 25586, 25589, 25697, 25567, 25534, 25565, 25564, 25540,
+    25560, 25555, 25538, 25543, 25548, 25547, 25544, 25584, 25559, 25561,
+    25906, 25959, 25962, 25956, 25948, 25960, 25957, 25996, {f: 2, c: 26013},
+    26030, 26064, 26066, 26236, 26220, 26235, 26240, 26225, 26233, 26218,
+    26226, 26369, 26892, 26835, 26884, 26844, 26922, 26860, 26858, 26865,
+    26895, 26838, 26871, 26859, 26852, 26870, 26899, 26896, 26867, 26849,
+    26887, 26828, 26888, 26992, 26804, 26897, 26863, 26822, 26900, 26872,
+    26832, 26877, 26876, 26856, 26891, 26890, 26903, 26830, 26824,
+    {f: 2, c: 26845}, 26854, 26868, 26833, 26886, 26836, 26857, 26901, 26917,
+    26823, 27449, 27451, 27455, 27452, 27540, 27543, 27545, 27541, 27581,
+    27632, {f: 2, c: 27634}, 27696, 28156, {f: 2, c: 28230}, 28191, 28233,
+    28296, {f: 2, c: 28220}, 28229, 28258, 28203, 28223, 28225, 28253, 28275,
+    28188, 28211, 28235, 28224, 28241, 28219, 28163, 28206, 28254, 28264,
+    28252, 28257, 28209, 28200, 28256, 28273, 28267, 28217, 28194, 28208,
+    28243, 28261, 28199, 28280, 28260, 28279, 28245, 28281, 28242, 28262,
+    {f: 2, c: 28213}, 28250, 28960, 28958, 28975, 28923, 28974, 28977, 28963,
+    28965, 28962, 28978, 28959, 28968, 28986, 28955, 29259, 29274,
+    {f: 2, c: 29320}, 29318, 29317, 29323, 29458, 29451, 29488, 29474, 29489,
+    29491, 29479, 29490, 29485, 29478, 29475, 29493, 29452, 29742, 29740,
+    29744, 29739, 29718, 29722, 29729, 29741, 29745, 29732, 29731, 29725,
+    29737, 29728, 29746, 29947, 29999, 30063, 30060, 30183, 30170, 30177,
+    30182, 30173, 30175, 30180, 30167, 30357, 30354, 30426, {f: 2, c: 30534},
+    30532, 30541, 30533, 30538, 30542, {f: 2, c: 30539}, 30686, 30700, 30816,
+    {f: 2, c: 30820}, 30812, 30829, 30833, 30826, 30830, 30832, 30825, 30824,
+    30814, 30818, 31092, 31091, 31090, 31088, 31234, 31242, 31235, 31244,
+    31236, 31385, 31462, 31460, 31562, 31559, 31556, 31560, 31564, 31566,
+    31552, 31576, 31557, 31906, 31902, 31912, 31905, 32088, 32111, 32099,
+    32083, 32086, 32103, 32106, 32079, 32109, 32092, 32107, 32082, 32084,
+    32105, 32081, 32095, 32078, {f: 2, c: 32574}, {f: 2, c: 32613}, 32674,
+    {f: 2, c: 32672}, 32727, 32849, {f: 2, c: 32847}, 33022, 32980, 33091,
+    33098, 33106, 33103, 33095, 33085, 33101, 33082, 33254, 33262,
+    {f: 3, c: 33271}, 33284, {f: 2, c: 33340}, 33343, 33397, 33595,
+    [33743, 60382], 33785, 33827, 33728, 33768, 33810, 33767, 33764, 33788,
+    33782, 33808, 33734, 33736, 33771, 33763, 33727, 33793, 33757, 33765,
+    33752, 33791, 33761, 33739, 33742, 33750, 33781, 33737, 33801,
+    [33807, 58332], 33758, 33809, 33798, 33730, 33779, 33749, 33786, 33735,
+    33745, 33770, 33811, 33690, 33731, 33772, 33774, 33732, 33787, 33751,
+    33762, 33819, 33755, 33790, 34520, 34530, 34534, 34515, 34531, 34522,
+    34538, 34525, 34539, 34524, 34540, 34537, 34519, 34536, 34513, 34888,
+    34902, 34901, 35002, 35031, 35001, 35000, 35008, 35006, 34998, 35004,
+    34999, 35005, 34994, 35073, 35017, 35221, 35224, 35223, 35293,
+    {f: 2, c: 35290}, 35406, 35405, 35385, 35417, 35392, {f: 2, c: 35415},
+    {f: 2, c: 35396}, 35410, 35400, 35409, 35402, 35404, 35407, 35935, 35969,
+    35968, 36026, 36030, 36016, 36025, 36021, 36228, 36224, 36233, 36312,
+    36307, 36301, 36295, 36310, 36316, 36303, 36309, 36313, 36296, 36311,
+    36293, 36591, 36599, 36602, 36601, 36582, 36590, 36581, 36597,
+    {f: 2, c: 36583}, 36598, 36587, 36593, 36588, 36596, 36585, 36909, 36916,
+    36911, 37126, 37164, [37124, 60367], 37119, 37116, 37128, 37113, 37115,
+    37121, 37120, 37127, 37125, 37123, 37217, 37220, 37215, 37218, 37216,
+    37377, 37386, 37413, 37379, 37402, 37414, 37391, 37388, 37376, 37394,
+    37375, 37373, 37382, 37380, 37415, 37378, 37404, 37412, 37401, 37399,
+    37381, 37398, 38267, 38285, 38284, 38288, 38535, 38526, {f: 2, c: 38536},
+    38531, 38528, 38594, 38600, 38595, 38641, 38640, 38764, 38768, 38766,
+    38919, 39081, 39147, 40166, [12235, 40697], {f: 2, c: 20099}, 20150, 20669,
+    20671, 20678, 20654, 20676, 20682, 20660, 20680, 20674, 20656, 20673,
+    20666, 20657, 20683, 20681, 20662, 20664, 20951, 21114, 21112,
+    {f: 2, c: 21115}, 21955, 21979, 21964, 21968, 21963, 21962, 21981,
+    [21952, 64013], 21972, 21956, 21993, 21951, 21970, 21901, 21967, 21973,
+    21986, 21974, 21960, 22002, 21965, 21977, 21954, 22292, 22611, 22632,
+    22628, 22607, 22605, 22601, 22639, 22613, 22606, 22621, 22617, 22629,
+    22619, 22589, 22627, 22641, 22780, 23239, 23236, 23243, 23226, 23224,
+    23217, 23221, 23216, 23231, 23240, 23227, 23238, 23223, 23232, 23242,
+    23220, 23222, 23245, 23225, 23184, 23510, {f: 2, c: 23512}, 23583, 23603,
+    23921, 23907, 23882, 23909, 23922, 23916, 23902, 23912, 23911, 23906,
+    24048, 24143, 24142, 24138, 24141, 24139, 24261, 24268, 24262, 24267,
+    24263, 24384, 24495, 24493, 24823, {f: 2, c: 24905}, 24875, 24901, 24886,
+    24882, 24878, 24902, 24879, 24911, 24873, 24896, 25120, 37224, 25123,
+    25125, 25124, 25541, 25585, 25579, 25616, 25618, 25609, 25632, 25636,
+    25651, 25667, 25631, 25621, 25624, 25657, 25655, {f: 2, c: 25634}, 25612,
+    25638, 25648, 25640, 25665, 25653, 25647, 25610, 25626, 25664, 25637,
+    25639, 25611, 25575, 25627, 25646, 25633, 25614, 25967, 26002, 26067,
+    26246, 26252, 26261, 26256, 26251, 26250, 26265, 26260, 26232, 26400,
+    26982, 26975, 26936, 26958, 26978, 26993, 26943, 26949, 26986, 26937,
+    26946, 26967, 26969, 27002, {f: 2, c: 26952}, 26933, 26988, 26931, 26941,
+    26981, 26864, 27000, 26932, 26985, 26944, 26991, 26948, 26998, 26968,
+    26945, 26996, 26956, 26939, 26955, 26935, 26972, 26959, 26961, 26930,
+    26962, 26927, 27003, 26940, 27462, 27461, 27459, 27458, 27464, 27457,
+    27547, {f: 2, c: 27643}, 27641, {f: 2, c: 27639}, 28315, 28374, 28360,
+    28303, 28352, 28319, {f: 2, c: 28307}, 28320, 28337, 28345, 28358, 28370,
+    28349, 28353, 28318, 28361, 28343, 28336, 28365, 28326, 28367, 28338,
+    28350, 28355, 28380, 28376, 28313, 28306, 28302, 28301, 28324, 28321,
+    28351, 28339, 28368, 28362, 28311, 28334, 28323, 28999, 29012, 29010,
+    29027, 29024, 28993, 29021, [29026, 61080], 29042, 29048, 29034, 29025,
+    28994, 29016, 28995, 29003, 29040, 29023, 29008, 29011, 28996, 29005,
+    29018, 29263, 29325, 29324, 29329, 29328, 29326, 29500, 29506, 29499,
+    29498, 29504, 29514, 29513, 29764, {f: 2, c: 29770}, 29778, 29777, 29783,
+    29760, {f: 2, c: 29775}, 29774, 29762, 29766, 29773, 29780, 29921, 29951,
+    29950, 29949, 29981, 30073, 30071, 27011, 30191, 30223, 30211, 30199,
+    30206, 30204, [30201, 60782], 30200, 30224, 30203, 30198, 30189, 30197,
+    30205, 30361, 30389, 30429, 30549, {f: 2, c: 30559}, 30546, 30550, 30554,
+    30569, 30567, 30548, 30553, 30573, 30688, 30855, 30874, 30868, 30863,
+    30852, 30869, {f: 2, c: 30853}, 30881, 30851, 30841, 30873, 30848, 30870,
+    30843, 31100, 31106, 31101, 31097, 31249, {f: 2, c: 31256}, 31250, 31255,
+    31253, 31266, 31251, 31259, 31248, 31395, 31394, 31390, 31467, 31590,
+    31588, 31597, 31604, 31593, 31602, 31589, 31603, 31601, 31600, 31585,
+    31608, 31606, 31587, 31922, 31924, 31919, 32136, 32134, 32128, 32141,
+    32127, 32133, 32122, 32142, 32123, 32131, 32124, 32140, 32148, 32132,
+    32125, 32146, 32621, 32619, {f: 2, c: 32615}, 32620, 32678, 32677, 32679,
+    {f: 2, c: 32731}, 32801, 33124, 33120, 33143, 33116, 33129, 33115, 33122,
+    33138, 26401, 33118, 33142, 33127, 33135, 33092, 33121, 33309, 33353,
+    33348, 33344, 33346, 33349, 34033, 33855, 33878, 33910, 33913, 33935,
+    33933, 33893, 33873, 33856, 33926, 33895, 33840, 33869, 33917, 33882,
+    33881, 33908, 33907, 33885, 34055, 33886, 33847, 33850, 33844, 33914,
+    33859, 33912, 33842, 33861, 33833, 33753, 33867, 33839, 33858, 33837,
+    33887, 33904, 33849, 33870, 33868, 33874, 33903, 33989, 33934, 33851,
+    33863, 33846, 33843, 33896, 33918, 33860, 33835, 33888, 33876, 33902,
+    33872, 34571, 34564, 34551, 34572, 34554, 34518, 34549, 34637, 34552,
+    34574, 34569, 34561, 34550, 34573, 34565, 35030, 35019, {f: 2, c: 35021},
+    35038, 35035, 35034, 35020, 35024, 35205, 35227, 35295, 35301, 35300,
+    35297, 35296, 35298, 35292, 35302, 35446, 35462, 35455, 35425, 35391,
+    35447, 35458, 35460, 35445, 35459, 35457, 35444, 35450, 35900, 35915,
+    35914, 35941, 35940, 35942, 35974, {f: 2, c: 35972}, 36044,
+    {f: 2, c: 36200}, 36241, 36236, {f: 2, c: 36238}, 36237, {f: 2, c: 36243},
+    36240, 36242, 36336, 36320, 36332, 36337, 36334, 36304, 36329, 36323,
+    36322, 36327, 36338, 36331, 36340, 36614, 36607, 36609, 36608, 36613,
+    {f: 2, c: 36615}, 36610, [36619, 60507], 36946, 36927, 36932, 36937, 36925,
+    37136, 37133, 37135, 37137, 37142, 37140, 37131, 37134, {f: 2, c: 37230},
+    37448, 37458, 37424, 37434, 37478, 37427, 37477, 37470, 37507, 37422,
+    37450, 37446, 37485, 37484, 37455, 37472, 37479, 37487, 37430, 37473,
+    37488, 37425, 37460, 37475, 37456, 37490, 37454, 37459, 37452, 37462,
+    37426, 38303, 38300, 38302, 38299, {f: 2, c: 38546}, 38545, 38551, 38606,
+    38650, 38653, 38648, 38645, 38771, {f: 2, c: 38775}, 38770, 38927,
+    {f: 2, c: 38925}, 39084, 39158, 39161, 39343, 39346, 39344, 39349, 39597,
+    39595, 39771, 40170, 40173, 40167, 40576, [12236, 40701], 20710, 20692,
+    20695, 20712, 20723, 20699, 20714, 20701, 20708, 20691, 20716, 20720,
+    20719, 20707, 20704, 20952, {f: 2, c: 21120}, 21225, 21227, 21296, 21420,
+    22055, 22037, 22028, 22034, 22012, 22031, 22044, 22017, 22035, 22018,
+    22010, 22045, 22020, 22015, 22009, 22665, 22652, 22672, 22680, 22662,
+    22657, 22655, 22644, 22667, 22650, 22663, 22673, 22670, 22646, 22658,
+    22664, 22651, 22676, 22671, 22782, 22891, 23260, 23278, 23269, 23253,
+    23274, 23258, 23277, 23275, 23283, 23266, 23264, 23259, 23276, 23262,
+    23261, 23257, 23272, 23263, 23415, 23520, 23523, 23651, 23938, 23936,
+    23933, 23942, 23930, 23937, 23927, 23946, 23945, 23944, 23934, 23932,
+    23949, 23929, 23935, {f: 2, c: 24152}, 24147, 24280, 24273, 24279, 24270,
+    24284, 24277, 24281, 24274, 24276, 24388, 24387, 24431, 24502, 24876,
+    24872, 24897, 24926, 24945, 24947, {f: 2, c: 24914}, 24946, 24940, 24960,
+    24948, 24916, 24954, 24923, 24933, 24891, 24938, 24929, 24918, 25129,
+    25127, 25131, 25643, 25677, 25691, 25693, 25716, 25718, {f: 2, c: 25714},
+    25725, 25717, 25702, 25766, 25678, 25730, 25694, 25692, 25675, 25683,
+    25696, 25680, 25727, 25663, 25708, 25707, 25689, 25701, 25719, 25971,
+    26016, 26273, 26272, 26271, 26373, 26372, 26402, 27057, 27062, 27081,
+    27040, 27086, 27030, 27056, 27052, 27068, 27025, 27033, 27022, 27047,
+    27021, 27049, 27070, 27055, 27071, 27076, 27069, 27044, 27092, 27065,
+    27082, 27034, 27087, 27059, 27027, 27050, 27041, 27038, 27097, 27031,
+    27024, 27074, 27061, 27045, 27078, 27466, 27469, 27467, {f: 3, c: 27550},
+    {f: 2, c: 27587}, 27646, 28366, 28405, 28401, 28419, 28453, 28408, 28471,
+    28411, 28462, 28425, 28494, {f: 2, c: 28441}, 28455, 28440, 28475, 28434,
+    28397, 28426, 28470, 28531, 28409, 28398, 28461, 28480, 28464, 28476,
+    28469, 28395, 28423, 28430, 28483, 28421, 28413, 28406, 28473, 28444,
+    28412, 28474, 28447, 28429, 28446, 28424, 28449, 29063, 29072, 29065,
+    29056, 29061, 29058, 29071, 29051, 29062, 29057, 29079, 29252, 29267,
+    29335, 29333, 29331, 29507, 29517, 29521, 29516, 29794, 29811, 29809,
+    29813, 29810, 29799, 29806, 29952, {f: 2, c: 29954}, 30077, 30096, 30230,
+    30216, 30220, 30229, 30225, 30218, 30228, 30392, 30593, 30588, 30597,
+    30594, 30574, 30592, 30575, 30590, 30595, 30898, 30890, 30900, 30893,
+    30888, 30846, 30891, 30878, 30885, 30880, 30892, 30882, 30884, 31128,
+    {f: 2, c: 31114}, 31126, 31125, 31124, 31123, 31127, 31112, 31122, 31120,
+    31275, 31306, 31280, 31279, 31272, 31270, 31400, {f: 2, c: 31403}, 31470,
+    31624, 31644, 31626, 31633, 31632, 31638, 31629, 31628, 31643, 31630,
+    31621, 31640, 21124, 31641, 31652, 31618, 31931, 31935, 31932, 31930,
+    32167, 32183, 32194, 32163, 32170, 32193, 32192, 32197, 32157, 32206,
+    32196, 32198, {f: 2, c: 32203}, 32175, 32185, 32150, 32188, 32159, 32166,
+    32174, 32169, 32161, 32201, 32627, {f: 2, c: 32738}, 32741, 32734, 32804,
+    32861, 32860, 33161, 33158, 33155, 33159, 33165, 33164, 33163, 33301,
+    33943, 33956, 33953, 33951, 33978, 33998, 33986, 33964, 33966, 33963,
+    33977, 33972, 33985, 33997, 33962, 33946, 33969, 34000, 33949, 33959,
+    33979, 33954, 33940, 33991, 33996, 33947, 33961, 33967, [33960, 58327],
+    34006, 33944, 33974, 33999, 33952, 34007, 34004, 34002, 34011, 33968,
+    33937, 34401, 34611, 34595, 34600, 34667, 34624, 34606, 34590, 34593,
+    34585, 34587, 34627, 34604, 34625, 34622, 34630, 34592, 34610, 34602,
+    34605, 34620, 34578, 34618, 34609, 34613, 34626, {f: 2, c: 34598}, 34616,
+    34596, 34586, 34608, 34577, 35063, 35047, {f: 2, c: 35057}, 35066, 35070,
+    35054, 35068, 35062, 35067, 35056, 35052, 35051, 35229, 35233, 35231,
+    35230, 35305, 35307, 35304, 35499, 35481, 35467, 35474, 35471, 35478,
+    35901, {f: 2, c: 35944}, 36053, 36047, 36055, 36246, 36361, 36354, 36351,
+    36365, 36349, 36362, 36355, 36359, 36358, 36357, 36350, 36352, 36356,
+    {f: 2, c: 36624}, 36622, 36621, 37155, 37148, 37152, 37154, 37151, 37149,
+    37146, 37156, 37153, 37147, 37242, 37234, 37241, 37235, 37541, 37540,
+    37494, 37531, 37498, 37536, 37524, 37546, 37517, 37542, 37530, 37547,
+    37497, 37527, 37503, 37539, 37614, 37518, 37506, 37525, 37538, 37501,
+    37512, 37537, 37514, 37510, 37516, 37529, 37543, 37502, 37511, 37545,
+    37533, 37515, 37421, 38558, 38561, 38655, 38744, 38781, 38778, 38782,
+    38787, 38784, 38786, 38779, 38788, 38785, 38783, 38862, 38861, 38934,
+    {f: 2, c: 39085}, 39170, 39168, 39175, 39325, 39324, 39363, 39353, 39355,
+    39354, 39362, 39357, 39367, 39601, 39651, 39655, {f: 2, c: 39742},
+    {f: 2, c: 39776}, 39775, {f: 2, c: 40177}, 40181, 40615, 20735, 20739,
+    20784, 20728, {f: 2, c: 20742}, 20726, 20734, {f: 2, c: 20747}, 20733,
+    20746, {f: 2, c: 21131}, 21233, 21231, 22088, 22082, 22092, 22069, 22081,
+    22090, 22089, 22086, 22104, 22106, 22080, 22067, 22077, 22060, 22078,
+    22072, 22058, 22074, 22298, 22699, 22685, 22705, 22688, 22691, 22703,
+    22700, 22693, 22689, 22783, 23295, 23284, 23293, 23287, 23286, 23299,
+    23288, 23298, 23289, 23297, 23303, 23301, 23311, 23655, 23961, 23959,
+    23967, 23954, 23970, 23955, 23957, 23968, 23964, 23969, 23962, 23966,
+    24169, 24157, 24160, 24156, 32243, 24283, 24286, 24289, 24393, 24498,
+    24971, 24963, 24953, 25009, 25008, 24994, 24969, 24987, 24979, 25007,
+    25005, 24991, 24978, 25002, 24993, 24973, 24934, 25011, 25133, 25710,
+    25712, 25750, 25760, 25733, 25751, 25756, 25743, 25739, 25738, 25740,
+    25763, 25759, 25704, 25777, 25752, 25974, 25978, 25977, 25979,
+    {f: 2, c: 26034}, 26293, 26288, 26281, 26290, 26295, 26282, 26287, 27136,
+    27142, 27159, 27109, 27128, 27157, 27121, 27108, 27168, 27135, 27116,
+    27106, 27163, 27165, 27134, 27175, 27122, 27118, 27156, 27127, 27111,
+    27200, 27144, 27110, 27131, 27149, 27132, 27115, 27145, 27140, 27160,
+    27173, 27151, 27126, 27174, 27143, 27124, 27158, 27473, 27557, 27555,
+    27554, 27558, 27649, 27648, 27647, 27650, 28481, 28454, 28542, 28551,
+    28614, 28562, 28557, 28553, 28556, 28514, 28495, 28549, 28506, 28566,
+    28534, 28524, 28546, 28501, 28530, 28498, 28496, 28503, 28564, 28563,
+    28509, 28416, 28513, 28523, 28541, 28519, 28560, 28499, 28555, 28521,
+    28543, 28565, 28515, 28535, 28522, 28539, 29106, 29103, 29083, 29104,
+    29088, 29082, 29097, 29109, 29085, 29093, 29086, 29092, 29089, 29098,
+    29084, 29095, 29107, 29336, 29338, 29528, 29522, {f: 3, c: 29534}, 29533,
+    29531, 29537, 29530, 29529, 29538, 29831, {f: 2, c: 29833}, 29830, 29825,
+    29821, 29829, 29832, 29820, [29817, 58868], 29960, 29959, 30078, 30245,
+    30238, 30233, 30237, 30236, 30243, 30234, 30248, 30235, {f: 3, c: 30364},
+    30363, 30605, 30607, 30601, 30600, 30925, 30907, 30927, 30924, 30929,
+    30926, 30932, 30920, {f: 2, c: 30915}, 30921, 31130, 31137, 31136, 31132,
+    31138, [31131, 59175], 27510, 31289, 31410, 31412, 31411, 31671, 31691,
+    31678, 31660, 31694, 31663, 31673, 31690, 31669, 31941, 31944, 31948,
+    31947, 32247, 32219, 32234, 32231, 32215, 32225, 32259, 32250, 32230,
+    32246, 32241, 32240, 32238, 32223, 32630, 32684, 32688, 32685, 32749,
+    32747, 32746, 32748, 32742, 32744, 32868, 32871, 33187, 33183, 33182,
+    33173, 33186, 33177, 33175, 33302, 33359, 33363, 33362, 33360, 33358,
+    33361, 34084, 34107, 34063, 34048, 34089, 34062, 34057, 34061, 34079,
+    34058, 34087, 34076, 34043, 34091, 34042, 34056, 34060, 34036, 34090,
+    34034, 34069, 34039, 34027, 34035, 34044, 34066, 34026, 34025, 34070,
+    34046, 34088, 34077, 34094, 34050, 34045, 34078, 34038, 34097, 34086,
+    {f: 2, c: 34023}, 34032, 34031, 34041, 34072, 34080, 34096, 34059, 34073,
+    34095, 34402, 34646, {f: 2, c: 34659}, 34679, 34785, 34675, 34648, 34644,
+    34651, 34642, 34657, 34650, 34641, 34654, 34669, 34666, 34640, 34638,
+    34655, 34653, 34671, 34668, 34682, 34670, 34652, 34661, 34639, 34683,
+    34677, 34658, 34663, 34665, 34906, 35077, 35084, 35092, 35083,
+    {f: 3, c: 35095}, 35078, 35094, 35089, 35086, 35081, 35234, 35236, 35235,
+    35309, 35312, 35308, 35535, 35526, 35512, 35539, 35537, {f: 2, c: 35540},
+    35515, 35543, 35518, 35520, 35525, 35544, 35523, 35514, 35517, 35545,
+    35902, 35917, 35983, 36069, 36063, 36057, 36072, 36058, 36061, 36071,
+    36256, 36252, 36257, 36251, 36384, 36387, 36389, 36388, 36398, 36373,
+    36379, 36374, 36369, 36377, {f: 2, c: 36390}, 36372, 36370, 36376, 36371,
+    36380, 36375, 36378, 36652, 36644, 36632, 36634, 36640, 36643,
+    {f: 2, c: 36630}, 36979, 36976, 36975, 36967, 36971, 37167, 37163,
+    {f: 2, c: 37161}, 37170, 37158, 37166, {f: 2, c: 37253}, 37258,
+    {f: 2, c: 37249}, 37252, 37248, 37584, {f: 2, c: 37571}, 37568, 37593,
+    37558, 37583, 37617, 37599, 37592, 37609, 37591, 37597, 37580, 37615,
+    37570, 37608, 37578, 37576, 37582, 37606, 37581, 37589, 37577, 37600,
+    37598, 37607, 37585, 37587, 37557, 37601, 37669, 37574, 37556, 38268,
+    38316, 38315, 38318, 38320, 38564, 38562, 38611, 38661, 38664, 38658,
+    38746, 38794, 38798, 38792, 38864, 38863, 38942, 38941, 38950, 38953,
+    38952, 38944, 38939, 38951, 39090, 39176, 39162, 39185, 39188,
+    {f: 2, c: 39190}, 39189, 39388, 39373, 39375, {f: 2, c: 39379}, 39374,
+    39369, [39382, 60270], 39384, 39371, 39383, 39372, 39603, 39660, 39659,
+    39667, 39666, 39665, 39750, 39747, 39783, 39796, 39793, 39782, 39798,
+    39797, 39792, 39784, 39780, 39788, 40188, 40186, 40189, 40191, 40183,
+    40199, 40192, 40185, 40187, 40200, 40197, 40196, 40579, 40659,
+    {f: 2, c: 40719}, 20764, 20755, 20759, 20762, 20753, 20958, 21300, 21473,
+    22128, 22112, 22126, 22131, 22118, 22115, 22125, 22130, 22110, 22135,
+    22300, 22299, 22728, 22717, 22729, 22719, 22714, 22722, 22716, 22726,
+    23319, 23321, 23323, 23329, 23316, 23315, 23312, 23318, [23336, 59539],
+    23322, 23328, 23326, 23535, 23980, 23985, 23977, 23975, 23989, 23984,
+    23982, 23978, 23976, 23986, 23981, 23983, 23988, {f: 2, c: 24167}, 24166,
+    24175, 24297, 24295, 24294, 24296, 24293, 24395, 24508, 24507, 24989,
+    25000, 24982, 25029, 25012, 25030, 25025, 25036, 25018, 25023, 25016,
+    24972, 25815, 25814, 25808, 25807, 25801, 25789, 25737, 25795, 25819,
+    25843, 25817, 25907, 25983, 25980, 26018, 26312, 26302, 26304,
+    {f: 2, c: 26314}, 26319, 26301, 26299, 26298, 26316, 26403, 27188, 27238,
+    27209, 27239, 27186, 27240, 27198, 27229, 27245, 27254, 27227, 27217,
+    27176, 27226, 27195, 27199, 27201, 27242, 27236, 27216, 27215, 27220,
+    27247, 27241, 27232, 27196, 27230, 27222, 27221, {f: 2, c: 27213}, 27206,
+    27477, 27476, 27478, 27559, {f: 2, c: 27562}, 27592, 27591, 27652, 27651,
+    27654, 28589, 28619, 28579, 28615, 28604, 28622, 28616, 28510, 28612,
+    28605, 28574, 28618, 28584, 28676, 28581, 28590, 28602, 28588, 28586,
+    28623, 28607, 28600, 28578, 28617, 28587, 28621, 28591, 28594, 28592,
+    29125, 29122, 29119, 29112, 29142, {f: 2, c: 29120}, 29131, 29140, 29130,
+    29127, 29135, 29117, 29144, 29116, 29126, {f: 2, c: 29146},
+    {f: 2, c: 29341}, 29545, {f: 2, c: 29542}, 29548, 29541, 29547, 29546,
+    29823, 29850, 29856, 29844, 29842, 29845, 29857, 29963, 30080, 30255,
+    30253, 30257, 30269, 30259, 30268, 30261, 30258, 30256, 30395, 30438,
+    30618, 30621, 30625, 30620, 30619, {f: 2, c: 30626}, 30613, 30617, 30615,
+    30941, 30953, 30949, 30954, 30942, 30947, 30939, {f: 2, c: 30945}, 30957,
+    {f: 2, c: 30943}, 31140, 31300, 31304, 31303, 31414, 31416, 31413, 31409,
+    31415, 31710, 31715, 31719, 31709, 31701, 31717, 31706, 31720, 31737,
+    31700, 31722, 31714, 31708, 31723, 31704, 31711, 31954, 31956, 31959,
+    {f: 2, c: 31952}, 32274, 32289, 32279, 32268, {f: 2, c: 32287}, 32275,
+    32270, 32284, 32277, 32282, 32290, 32267, 32271, 32278, 32269, 32276,
+    32293, 32292, 32579, {f: 2, c: 32635}, 32634, 32689, 32751, 32810, 32809,
+    32876, 33201, 33190, 33198, 33209, 33205, 33195, 33200, 33196, 33204,
+    33202, 33207, 33191, 33266, {f: 3, c: 33365}, 34134, 34117, 34155, 34125,
+    34131, 34145, 34136, 34112, 34118, 34148, 34113, 34146, 34116, 34129,
+    34119, 34147, 34110, 34139, 34161, 34126, 34158, 34165, 34133, 34151,
+    34144, 34188, 34150, 34141, 34132, 34149, 34156, 34403, 34405, 34404,
+    34724, 34715, 34703, 34711, 34707, 34706, 34696, 34689, 34710, 34712,
+    34681, 34695, 34723, 34693, {f: 2, c: 34704}, 34717, 34692, 34708, 34716,
+    34714, 34697, 35102, 35110, 35120, {f: 2, c: 35117}, 35111, 35121, 35106,
+    35113, 35107, 35119, 35116, 35103, 35313, 35552, 35554, 35570,
+    {f: 2, c: 35572}, 35549, 35604, 35556, 35551, 35568, 35528, 35550, 35553,
+    35560, 35583, 35567, 35579, {f: 2, c: 35985}, 35984, 36085, 36078, 36081,
+    36080, 36083, 36204, 36206, 36261, 36263, 36403, 36414, 36408, 36416,
+    36421, 36406, {f: 2, c: 36412}, 36417, 36400, 36415, 36541, [36662, 60329],
+    36654, 36661, 36658, 36665, 36663, 36660, 36982, 36985, 36987, 36998,
+    37114, 37171, {f: 2, c: 37173}, 37267, {f: 2, c: 37264}, 37261, 37263,
+    37671, 37662, 37640, 37663, 37638, 37647, 37754, 37688, 37692, 37659,
+    37667, 37650, 37633, 37702, 37677, 37646, 37645, 37579, 37661, 37626,
+    37651, 37625, 37623, 37684, 37634, 37668, 37631, 37673, 37689, 37685,
+    37674, 37652, 37644, 37643, 37630, 37641, 37632, 37627, 37654, 38332,
+    38349, 38334, {f: 2, c: 38329}, 38326, 38335, 38325, 38333, 38569, 38612,
+    38667, 38674, 38672, 38809, 38807, 38804, 38896, 38904, 38965, 38959,
+    38962, 39204, 39199, 39207, 39209, 39326, 39406, 39404, 39397, 39396,
+    39408, 39395, 39402, 39401, 39399, 39609, 39615, 39604, 39611, 39670,
+    39674, 39673, 39671, 39731, 39808, 39813, 39815, 39804, 39806, 39803,
+    39810, 39827, 39826, 39824, 39802, 39829, 39805, 39816, 40229, 40215,
+    40224, 40222, 40212, 40233, 40221, 40216, 40226, 40208, 40217, 40223,
+    40584, {f: 2, c: 40582}, 40622, 40621, {f: 2, c: 40661}, 40698, 40722,
+    40765, 20774, 20773, 20770, 20772, 20768, 20777, 21236, 22163,
+    {f: 2, c: 22156}, 22150, 22148, 22147, 22142, 22146, 22143, 22145, 22742,
+    22740, 22735, 22738, 23341, 23333, 23346, 23331, 23340, 23335, 23334,
+    23343, 23342, 23419, {f: 2, c: 23537}, 23991, 24172, 24170, 24510, 25027,
+    25013, 25020, 25063, 25056, 25061, 25060, 25064, 25054, 25839, 25833,
+    25827, 25835, 25828, 25832, 25985, 25984, 26038, 26074, 26322, 27277,
+    27286, 27265, 27301, 27273, 27295, 27291, 27297, 27294, 27271, 27283,
+    27278, 27285, 27267, 27304, 27300, 27281, 27263, 27302, 27290, 27269,
+    27276, 27282, 27483, 27565, 27657, 28620, 28585, 28660, 28628, 28643,
+    28636, 28653, 28647, 28646, 28638, 28658, 28637, 28642, 28648, 29153,
+    29169, 29160, 29170, 29156, 29168, 29154, 29555, {f: 2, c: 29550}, 29847,
+    29874, 29867, 29840, 29866, 29869, 29873, 29861, 29871, {f: 3, c: 29968},
+    29967, 30084, 30275, {f: 2, c: 30280}, 30279, 30372, 30441, 30645, 30635,
+    30642, 30647, 30646, 30644, 30641, 30632, 30704, 30963, 30973, 30978,
+    {f: 2, c: 30971}, 30975, 30962, 30981, 30969, 30974, 30980, 31147, 31144,
+    31324, 31323, 31318, 31320, 31316, 31322, 31422, {f: 2, c: 31424}, 31749,
+    31759, 31730, 31744, 31743, 31739, 31758, 31732, 31755, 31731, 31746,
+    31753, 31747, 31745, 31736, 31741, [31750, 58176], {f: 2, c: 31728}, 31760,
+    31754, 31976, 32301, 32316, 32322, 32307, 38984, 32312, 32298, 32329,
+    32320, 32327, 32297, 32332, 32304, 32315, 32310, 32324, 32314, 32581,
+    32639, 32638, 32637, 32756, 32754, 32812, 33211, 33220, 33228, 33226,
+    33221, 33223, 33212, 33257, 33371, 33370, 33372, 34179, 34176, 34191,
+    34215, 34197, 34208, 34187, 34211, 34171, 34212, 34202, 34206, 34167,
+    34172, 34185, 34209, 34170, 34168, 34135, 34190, 34198, 34182, 34189,
+    34201, 34205, 34177, 34210, 34178, 34184, 34181, 34169, 34166, 34200,
+    34192, 34207, 34408, 34750, 34730, 34733, 34757, 34736, 34732, 34745,
+    34741, 34748, 34734, 34761, 34755, 34754, 34764, 34743, 34735, 34756,
+    34762, 34740, 34742, 34751, 34744, 34749, 34782, 34738, 35125, 35123,
+    35132, 35134, 35137, 35154, 35127, 35138, 35245, 35247, 35246,
+    {f: 2, c: 35314}, 35614, 35608, 35606, 35601, 35589, 35595, 35618, 35599,
+    35602, 35605, 35591, 35597, 35592, 35590, 35612, 35603, 35610, 35919,
+    35952, 35954, 35953, 35951, 35989, 35988, 36089, 36207, 36430, 36429,
+    36435, 36432, 36428, 36423, 36675, 36672, 36997, 36990, 37176, 37274,
+    37282, 37275, 37273, 37279, 37281, 37277, 37280, 37793, 37763, 37807,
+    37732, 37718, 37703, 37756, 37720, 37724, 37750, 37705, {f: 2, c: 37712},
+    37728, 37741, 37775, 37708, 37738, 37753, 37719, 37717, 37714, 37711,
+    37745, 37751, 37755, 37729, 37726, 37731, 37735, 37710, 37721, 38343,
+    38336, 38345, 38339, 38341, 38327, 38574, 38576, 38572, 38688, 38687,
+    38680, 38685, 38681, 38810, 38817, 38812, 38814, 38813, 38869, 38868,
+    38897, 38977, 38980, 38986, 38985, 38981, 38979, 39205, {f: 2, c: 39211},
+    39210, 39219, 39218, 39215, 39213, 39217, 39216, 39320, 39331, 39329,
+    39426, 39418, 39412, 39415, 39417, 39416, 39414, 39419, {f: 2, c: 39421},
+    39420, 39427, 39614, 39678, 39677, 39681, 39676, 39752, 39834, 39848,
+    39838, 39835, 39846, 39841, 39845, 39844, 39814, 39842, 39840, 39855,
+    40243, 40257, 40295, 40246, {f: 2, c: 40238}, 40241, 40248, 40240, 40261,
+    {f: 2, c: 40258}, 40254, 40247, 40256, 40253, 32757, 40237, 40586, 40585,
+    40589, 40624, 40648, 40666, 40699, 40703, 40740, 40739, 40738, 40788,
+    [12245, 40864], 20785, {f: 2, c: 20781}, 22168, 22172, 22167, 22170, 22173,
+    22169, 22896, 23356, {f: 2, c: 23657}, 24000, {f: 2, c: 24173}, 25048,
+    25055, {f: 2, c: 25069}, 25073, 25066, 25072, 25067, 25046, 25065, 25855,
+    25860, 25853, 25848, 25857, 25859, 25852, 26004, 26075, {f: 2, c: 26330},
+    26328, 27333, 27321, 27325, 27361, 27334, 27322, {f: 2, c: 27318}, 27335,
+    27316, 27309, 27486, 27593, 27659, 28679, {f: 2, c: 28684}, 28673, 28677,
+    28692, 28686, {f: 2, c: 28671}, 28667, 28710, 28668, 28663, 28682,
+    [29185, 60224], 29183, 29177, 29187, 29181, 29558, 29880, 29888, 29877,
+    29889, 29886, 29878, 29883, 29890, 29972, 29971, 30300, 30308, 30297,
+    30288, 30291, 30295, 30298, 30374, 30397, 30444, 30658, 30650, 30988,
+    {f: 2, c: 30995}, 30985, 30992, 30994, 30993, 31149, 31148, 31327, 31772,
+    31785, 31769, 31776, 31775, 31789, 31773, 31782, 31784, 31778, 31781,
+    31792, 32348, 32336, 32342, 32355, 32344, 32354, 32351, 32337, 32352,
+    32343, 32339, 32693, 32691, {f: 2, c: 32759}, 32885, {f: 2, c: 33233},
+    33232, 33375, 33374, 34228, 34246, 34240, 34243, 34242, 34227, 34229,
+    34237, 34247, 34244, 34239, 34251, 34254, 34248, 34245, 34225, 34230,
+    34258, 34340, 34232, 34231, 34238, 34409, 34791, 34790, 34786, 34779,
+    34795, 34794, 34789, 34783, 34803, 34788, 34772, 34780, 34771, 34797,
+    34776, 34787, 34775, 34777, 34817, 34804, 34792, 34781, 35155, 35147,
+    35151, 35148, 35142, {f: 2, c: 35152}, 35145, 35626, 35623, 35619, 35635,
+    35632, 35637, 35655, 35631, 35644, 35646, 35633, 35621, 35639, 35622,
+    35638, 35630, 35620, 35643, 35645, 35642, 35906, 35957, 35993, 35992,
+    35991, 36094, 36100, 36098, 36096, 36444, 36450, 36448, 36439, 36438,
+    36446, 36453, 36455, 36443, 36442, 36449, 36445, 36457, 36436,
+    {f: 3, c: 36678}, 36683, 37160, {f: 2, c: 37178}, 37182, 37288, 37285,
+    37287, 37295, 37290, 37813, 37772, 37778, 37815, 37787, 37789, 37769,
+    37799, 37774, 37802, 37790, 37798, 37781, 37768, 37785, 37791, 37760,
+    37773, 37809, 37777, 37810, 37796, 37800, 37812, 37795, {f: 2, c: 38354},
+    38353, 38579, 38615, 38618, 24002, 38623, 38616, 38621, 38691, 38690,
+    38693, 38828, 38830, 38824, 38827, 38820, 38826, 38818, 38821, 38871,
+    38873, 38870, 38872, 38906, {f: 3, c: 38992}, 39096, 39233, 39228, 39226,
+    39439, 39435, 39433, 39437, 39428, 39441, 39434, 39429, 39431, 39430,
+    39616, 39644, 39688, {f: 2, c: 39684}, 39721, 39733, 39754, 39756, 39755,
+    39879, 39878, 39875, 39871, 39873, 39861, 39864, 39891, 39862, 39876,
+    39865, 39869, 40284, 40275, 40271, 40266, 40283, 40267, 40281, 40278,
+    40268, 40279, 40274, 40276, 40287, 40280, 40282, 40590, 40588, 40671,
+    40705, 40704, [40726, 58693], 40741, 40747, 40746, 40745, 40744, 40780,
+    40789, {f: 2, c: 20788}, 21142, 21239, 21428, 22187, 22189,
+    {f: 2, c: 22182}, 22186, 22188, 22746, 22749, 22747, 22802,
+    {f: 3, c: 23357}, 24003, 24176, 24511, 25083, 25863, 25872, 25869, 25865,
+    25868, 25870, 25988, 26078, 26077, 26334, 27367, 27360, 27340, 27345,
+    27353, 27339, 27359, 27356, 27344, 27371, 27343, 27341, 27358, 27488,
+    27568, 27660, 28697, 28711, 28704, 28694, 28715, {f: 3, c: 28705}, 28713,
+    28695, 28708, 28700, 29196, 29194, 29191, 29186, 29189, {f: 2, c: 29349},
+    29348, 29347, 29345, 29899, 29893, 29879, 29891, 29974, 30304,
+    {f: 2, c: 30665}, 30660, 30705, 31005, 31003, 31009, 31004, 30999, 31006,
+    31152, {f: 2, c: 31335}, 31795, 31804, 31801, 31788, 31803, 31980, 31978,
+    32374, 32373, 32376, 32368, 32375, 32367, 32378, 32370, 32372, 32360,
+    32587, 32586, 32643, 32646, 32695, {f: 2, c: 32765}, 32888, 33239, 33237,
+    33291, 33380, 33377, 33379, 34283, 34289, 34285, 34265, 34273, 34280,
+    34266, 34263, 34284, 34290, 34296, 34264, 34271, 34275, 34268, 34257,
+    34288, 34278, 34287, 34270, 34274, 34816, 34810, 34819, {f: 2, c: 34806},
+    34825, 34828, 34827, 34822, 34812, 34824, 34815, 34826, 34818, 35170,
+    {f: 2, c: 35162}, 35159, 35169, 35164, 35160, 35165, 35161, 35208, 35255,
+    35254, 35318, 35664, 35656, 35658, 35648, 35667, 35670, 35668, 35659,
+    35669, 35665, 35650, 35666, 35671, 35907, 35959, 35958, 35994,
+    {f: 2, c: 36102}, 36105, 36268, 36266, 36269, 36267, 36461, 36472, 36467,
+    36458, 36463, 36475, 36546, 36690, 36689, {f: 2, c: 36687}, 36691, 36788,
+    37184, 37183, 37296, 37293, 37854, 37831, 37839, 37826, 37850, 37840,
+    37881, 37868, 37836, 37849, 37801, 37862, 37834, 37844, 37870, 37859,
+    37845, 37828, 37838, 37824, 37842, 37797, 37863, 38269, {f: 2, c: 38362},
+    38625, 38697, {f: 2, c: 38699}, 38696, 38694, 38835, 38839, 38838,
+    {f: 3, c: 38877}, 39004, 39001, 39005, 38999, 39103, 39101, 39099, 39102,
+    39240, 39239, 39235, {f: 2, c: 39334}, 39450, 39445, 39461, 39453, 39460,
+    39451, 39458, 39456, 39463, 39459, 39454, 39452, 39444, 39618, 39691,
+    39690, 39694, 39692, 39735, {f: 2, c: 39914}, 39904, 39902, 39908, 39910,
+    39906, 39920, 39892, 39895, 39916, 39900, 39897, 39909, 39893, 39905,
+    39898, 40311, 40321, 40330, 40324, 40328, 40305, 40320, 40312, 40326,
+    {f: 2, c: 40331}, 40317, 40299, {f: 2, c: 40308}, 40304, 40297, 40325,
+    40307, 40315, 40322, 40303, 40313, 40319, 40327, 40296, 40596, 40593,
+    40640, 40700, 40749, {f: 2, c: 40768}, 40781, {f: 3, c: 40790}, 21303,
+    22194, 22197, 22195, 22755, 23365, {f: 2, c: 24006}, {f: 2, c: 24302},
+    {f: 2, c: 24512}, 25081, 25879, 25878, 25877, 25875, 26079, 26344,
+    {f: 2, c: 26339}, 27379, 27376, 27370, 27368, 27385, 27377,
+    {f: 2, c: 27374}, 28732, 28725, 28719, 28727, 28724, 28721, 28738, 28728,
+    28735, 28730, 28729, 28714, 28736, 28731, 28723, 28737, {f: 2, c: 29203},
+    29352, 29565, 29564, 29882, 30379, 30378, 30398, 30445, 30668,
+    {f: 2, c: 30670}, 30669, 30706, 31013, 31011, {f: 2, c: 31015}, 31012,
+    31017, 31154, 31342, {f: 2, c: 31340}, 31479, 31817, 31816, 31818, 31815,
+    31813, 31982, 32379, 32382, 32385, 32384, 32698, 32767, 32889, 33243,
+    33241, {f: 2, c: 33384}, 34338, 34303, 34305, 34302, 34331, 34304, 34294,
+    34308, 34313, 34309, 34316, 34301, 34841, {f: 2, c: 34832}, 34839, 34835,
+    34838, 35171, 35174, 35257, 35319, 35680, 35690, 35677, 35688, 35683,
+    35685, 35687, 35693, 36270, 36486, 36488, 36484, 36697, {f: 2, c: 36694},
+    36693, 36696, 36698, 37005, 37187, 37185, 37303, 37301, {f: 2, c: 37298},
+    37899, 37907, 37883, 37920, 37903, 37908, 37886, 37909, 37904, 37928,
+    37913, 37901, 37877, 37888, 37879, 37895, 37902, 37910, 37906, 37882,
+    37897, 37880, 37948, 37898, 37887, 37884, 37900, 37878, 37905, 37894,
+    38366, 38368, 38367, {f: 2, c: 38702}, 38841, 38843, {f: 2, c: 38909},
+    39008, {f: 2, c: 39010}, 39007, {f: 2, c: 39105}, 39248, 39246, 39257,
+    39244, 39243, 39251, 39474, 39476, 39473, 39468, 39466, 39478, 39465,
+    39470, 39480, 39469, 39623, 39626, 39622, 39696, 39698, 39697, 39947,
+    39944, 39927, 39941, 39954, 39928, 40000, 39943, 39950, 39942, 39959,
+    39956, 39945, 40351, 40345, 40356, 40349, 40338, 40344, 40336, 40347,
+    40352, 40340, 40348, 40362, 40343, 40353, 40346, 40354, 40360, 40350,
+    40355, 40383, 40361, 40342, {f: 2, c: 40358}, 40601, 40603, 40602, 40677,
+    40676, 40679, 40678, 40752, 40750, 40795, 40800, 40798, 40797, 40793,
+    40849, 20794, 20793, 21144, 21143, 22211, {f: 2, c: 22205}, 23368, 23367,
+    24011, 24015, 24305, 25085, 25883, 27394, 27388, 27395, 27384, 27392,
+    {f: 2, c: 28739}, 28746, {f: 2, c: 28744}, {f: 2, c: 28741}, 29213, 29210,
+    29209, 29566, 29975, 30314, 30672, 31021, 31025, 31023, 31828, 31827,
+    31986, 32394, [32391, 60229], 32392, 32395, 32390, 32397, 32589, 32699,
+    32816, 33245, 34328, 34346, 34342, 34335, 34339, 34332, 34329, 34343,
+    34350, 34337, 34336, 34345, 34334, 34341, 34857, 34845, 34843, 34848,
+    34852, 34844, 34859, 34890, 35181, 35177, 35182, 35179, 35322, 35705,
+    35704, 35653, {f: 2, c: 35706}, 36112, 36116, 36271, 36494, 36492, 36702,
+    36699, 36701, 37190, {f: 2, c: 37188}, 37305, 37951, 37947, 37942, 37929,
+    37949, 37936, 37945, 37930, 37943, 37932, 37952, 37937, 38373, 38372,
+    38371, 38709, 38714, 38847, 38881, 39012, 39113, 39110, 39104, 39256,
+    39254, 39481, 39485, 39494, 39492, 39490, 39489, 39482, 39487, 39629,
+    39701, {f: 2, c: 39703}, 39702, 39738, 39762, 39979, 39965, 39964, 39980,
+    39971, {f: 2, c: 39976}, 39972, 39969, 40375, 40374, 40380, 40385, 40391,
+    40394, 40399, 40382, 40389, 40387, 40379, 40373, 40398, {f: 2, c: 40377},
+    40364, 40392, 40369, 40365, 40396, 40371, 40397, 40370, 40570, 40604,
+    40683, 40686, 40685, 40731, 40728, 40730, 40753, 40782, 40805, 40804,
+    40850, 20153, 22214, 22213, 22219, 22897, {f: 2, c: 23371}, 24021, 24017,
+    24306, 25889, 25888, 25894, 25890, 27403, {f: 2, c: 27400}, 27661,
+    {f: 3, c: 28757}, 28754, {f: 2, c: 29214}, 29353, 29567, 29912, 29909,
+    29913, 29911, 30317, 30381, 31029, 31156, {f: 2, c: 31344}, 31831, 31836,
+    31833, 31835, 31834, 31988, 31985, 32401, 32591, 32647, 33246, 33387,
+    {f: 2, c: 34356}, 34355, 34348, 34354, 34358, 34860, 34856, 34854, 34858,
+    34853, 35185, 35263, 35262, 35323, 35710, 35716, 35714, 35718, 35717,
+    35711, 36117, 36501, 36500, 36506, 36498, 36496, {f: 2, c: 36502}, 36704,
+    36706, 37191, 37964, 37968, {f: 2, c: 37962}, 37967, 37959, 37957,
+    {f: 2, c: 37960}, 37958, 38719, 38883, 39018, 39017, 39115, 39252, 39259,
+    39502, {f: 2, c: 39507}, 39500, 39503, 39496, 39498, 39497, 39506, 39504,
+    39632, 39705, 39723, 39739, 39766, 39765, 40006, 40008, 39999, 40004,
+    39993, 39987, 40001, 39996, 39991, 39988, 39986, 39997, 39990, 40411,
+    40402, 40414, 40410, 40395, 40400, 40412, 40401, 40415, 40425, 40409,
+    40408, 40406, 40437, 40405, 40413, 40630, 40688, 40757, 40755, 40754,
+    40770, 40811, 40853, 40866, 20797, 21145, 22760, 22759, 22898, 23373,
+    24024, 34863, 24399, 25089, {f: 2, c: 25091}, 25897, 25893, 26006, 26347,
+    {f: 2, c: 27409}, 27407, 27594, 28763, 28762, 29218, 29570, 29569, 29571,
+    30320, 30676, 31847, 31846, 32405, 33388, 34362, 34368, 34361, 34364,
+    34353, 34363, 34366, 34864, 34866, 34862, 34867, 35190, 35188, 35187,
+    35326, 35724, 35726, 35723, 35720, 35909, 36121, 36504, 36708, 36707,
+    37308, 37986, 37973, 37981, 37975, 37982, {f: 2, c: 38852}, 38912, 39510,
+    39513, {f: 3, c: 39710}, 40018, 40024, 40016, 40010, 40013, 40011, 40021,
+    40025, 40012, 40014, 40443, 40439, 40431, 40419, 40427, 40440, 40420,
+    40438, 40417, 40430, 40422, 40434, [40432, 60370], 40418, 40428, 40436,
+    40435, 40424, 40429, 40642, 40656, {f: 2, c: 40690}, 40710, 40732, 40760,
+    40759, 40758, 40771, 40783, 40817, 40816, {f: 2, c: 40814}, 22227, 22221,
+    23374, 23661, 25901, {f: 2, c: 26349}, 27411, 28767, 28769, 28765, 28768,
+    29219, 29915, 29925, 30677, 31032, 31159, 31158, 31850, 32407, 32649,
+    33389, 34371, 34872, 34871, 34869, 34891, {f: 2, c: 35732},
+    {f: 3, c: 36510}, 36509, 37310, 37309, 37314, 37995, {f: 2, c: 37992},
+    38629, 38726, 38723, 38727, 38855, 38885, 39518, 39637, 39769, 40035,
+    40039, 40038, 40034, 40030, 40032, 40450, 40446, 40455, 40451, 40454,
+    40453, {f: 2, c: 40448}, 40457, 40447, 40445, 40452, 40608, 40734, 40774,
+    {f: 3, c: 40820}, 22228, 25902, 26040, {f: 2, c: 27416}, 27415, 27418,
+    28770, 29222, 29354, {f: 2, c: 30680}, 31033, 31849, 31851, 31990, 32410,
+    32408, 32411, 32409, {f: 2, c: 33248}, {f: 3, c: 34374}, {f: 2, c: 35193},
+    35196, 35195, 35327, {f: 2, c: 35736}, 36517, 36516, 36515, 37998, 37997,
+    37999, 38001, 38003, 38729, 39026, 39263, 40040, 40046, 40045, 40459,
+    40461, 40464, 40463, 40466, 40465, 40609, 40693, 40713, 40775, 40824,
+    40827, 40826, 40825, 22302, 28774, 31855, 34876, 36274, 36518, 37315,
+    38004, 38008, 38006, 38005, 39520, [39726, 60830], 40052, 40051, 40049,
+    40053, 40468, 40467, 40694, 40714, 40868, 28776, 28773, 31991, 34410,
+    34878, 34877, 34879, 35742, 35996, 36521, 36553, 38731, {f: 2, c: 39027},
+    39116, 39265, 39339, 39524, {f: 2, c: 39526}, 39716, 40469, 40471, 40776,
+    25095, 27422, 29223, 34380, 36520, 38018, {f: 2, c: 38016}, 39529, 39528,
+    40473, 34379, 35743, 38019, 40057, 40631, 30325, 39531, 40058, 40477,
+    {f: 2, c: 28777}, 29225, 40612, 40830, 40777, 40856, {s: 97}, 65075, 0,
+    65076, 65103, [168, 776, 63208], [710, 63209, 65342], [12541, 63210],
+    [12542, 63211], [12445, 63212], [12446, 63213], 0, [12293, 63216],
+    [12294, 63217], [12295, 63218], [12540, 63219], [63220, 65339],
+    [63221, 65341], [10045, 63222], [12353, 63223], [12354, 63224],
+    [12355, 63225], [12356, 63226], [12357, 63227], [12358, 63228],
+    [12359, 63229], [12360, 63230], [12361, 63231], [12362, 63232],
+    [12363, 63233], [12364, 63234], [12365, 63235], [12366, 63236],
+    [12367, 63237], [12368, 63238], [12369, 63239], [12370, 63240],
+    [12371, 63241], [12372, 63242], [12373, 63243], [12374, 63244],
+    [12375, 63245], [12376, 63246], [12377, 63247], [12378, 63248],
+    [12379, 63249], [12380, 63250], [12381, 63251], [12382, 63252],
+    [12383, 63253], [12384, 63254], [12385, 63255], [12386, 63256],
+    [12387, 63257], [12388, 63258], [12389, 63259], [12390, 63260],
+    [12391, 63261], [12392, 63262], [12393, 63263], [12394, 63264],
+    [12395, 63265], [12396, 63266], [12397, 63267], [12398, 63268],
+    [12399, 63269], [12400, 63270], [12401, 63271], [12402, 63272],
+    [12403, 63273], [12404, 63274], [12405, 63275], [12406, 63276],
+    [12407, 63277], [12408, 63278], [12409, 63279], [12410, 63280],
+    [12411, 63281], [12412, 63282], [12413, 63283], [12414, 63284],
+    [12415, 63285], [12416, 63286], [12417, 63287], [12418, 63288],
+    [12419, 63289], [12420, 63290], [12421, 63291], [12422, 63292],
+    [12423, 63293], [12424, 63294], [12425, 63295], [12426, 63296],
+    [12427, 63297], [12428, 63298], [12429, 63299], [12430, 63300],
+    [12431, 63301], [12432, 63302], [12433, 63303], [12434, 63304],
+    [12435, 63305], [12449, 63306], [12450, 63307], [12451, 63308],
+    [12452, 63309], [12453, 63310], [12454, 63311], [12455, 63312],
+    [12456, 63313], [12457, 63314], [12458, 63315], [12459, 63316],
+    [12460, 63317], [12461, 63318], [12462, 63319], [12463, 63320],
+    [12464, 63321], [12465, 63322], [12466, 63323], [12467, 63324],
+    [12468, 63325], [12469, 63326], [12470, 63327], [12471, 63328],
+    [12472, 63329], [12473, 63330], [12474, 63331], [12475, 63332],
+    [12476, 63333], [12477, 63334], [12478, 63335], [12479, 63336],
+    [12480, 63337], [12481, 63338], [12482, 63339], [12483, 63340],
+    [12484, 63341], [12485, 63342], [12486, 63343], [12487, 63344],
+    [12488, 63345], [12489, 63346], [12490, 63347], [12491, 63348],
+    [12492, 63349], [12493, 63350], [12494, 63351], [12495, 63352],
+    [12496, 63353], [12497, 63354], [12498, 63355], [12499, 63356],
+    [12500, 63357], [12501, 63358], [12502, 63359], [12503, 63360],
+    [12504, 63361], [12505, 63362], [12506, 63363], [12507, 63364],
+    [12508, 63365], [12509, 63366], [12510, 63367], [12511, 63368],
+    [12512, 63369], [12513, 63370], [12514, 63371], [12515, 63372],
+    [12516, 63373], [12517, 63374], [12518, 63375], [12519, 63376],
+    [12520, 63377], [12521, 63378], [12522, 63379], [12523, 63380],
+    [12524, 63381], [12525, 63382], [12526, 63383], [12527, 63384],
+    [12528, 63385], [12529, 63386], [12530, 63387], [12531, 63388],
+    [12532, 63389], [12533, 63390], [12534, 63391], [1040, 63392],
+    [1041, 63393], [1042, 63394], [1043, 63395], [1044, 63396], [1045, 63397],
+    [1025, 63398], [1046, 63399], [1047, 63400], [1048, 63401], [1049, 63402],
+    [1050, 63403], [1051, 63404], [1052, 63405], [1053, 63406], [1054, 63407],
+    [1055, 63408], [1056, 63409], [1057, 63410], [1058, 63411], [1059, 63412],
+    [1060, 63413], [1061, 63414], [1062, 63415], [1063, 63416], [1064, 63417],
+    [1065, 63418], [1066, 63419], [1067, 63420], [1068, 63421], [1069, 63422],
+    [1070, 63423], [1071, 63424], [1072, 63425], [1073, 63426], [1074, 63427],
+    [1075, 63428], [1076, 63429], [1077, 63430], [1105, 63431], [1078, 63432],
+    [1079, 63433], [1080, 63434], [1081, 63435], [1082, 63436], [1083, 63437],
+    [1084, 63438], [1085, 63439], [1086, 63440], [1087, 63441], [1088, 63442],
+    [1089, 63443], [1090, 63444], [1091, 63445], [1092, 63446], [1093, 63447],
+    [1094, 63448], [1095, 63449], [1096, 63450], [1097, 63451], [1098, 63452],
+    [1099, 63453], [1100, 63454], [1101, 63455], [1102, 63456], [1103, 63457],
+    [8679, 63458], [8632, 63459], [8633, 63460], [20033, 63461],
+    [63462, 131276], [20058, 63463], [63464, 131210], [20994, 63465],
+    [17553, 63466], 63467, [20872, 63468], [13853, 63469], [63470, 161287],
+    {s: 40}, [172, 63511, 65506], [63512, 65508], [63513, 65287],
+    [63514, 65282], [12849, 63515], [8470, 63516], [8481, 63517], 30849,
+    [37561, 58501], 35023, 22715, 24658, 31911, 23290, 9556, 9574, 9559, 9568,
+    9580, 9571, 9562, 9577, 9565, 9554, 9572, 9557, {s: 3}, 9560, 9575, 9563,
+    9555, 9573, 9558, 9567, 9579, 9570, 9561, 9576, 9564, 9553, {s: 5}, 9619,
+    {s: 26}, [58129, 147159], [22462, 58130], [58131, 159443], [28990, 58132],
+    [58133, 153568], [27042, 58135], [58136, 166889], [23412, 58137],
+    [31305, 58138], [58139, 153825], [58140, 169177], [31333, 58141],
+    [31357, 58142], [58143, 154028], [31419, 58144], [31408, 58145],
+    [31426, 58146], [31427, 58147], [29137, 58148], [58149, 156813],
+    [16842, 58150], [31450, 58151], [31453, 58152], [31466, 58153],
+    [16879, 58154], [21682, 58155], [58156, 154625], [31499, 58157],
+    [31573, 58158], [31529, 58159], [58160, 152334], [58161, 154878],
+    [31650, 58162], [31599, 58163], [33692, 58164], [58165, 154548],
+    [58166, 158847], [31696, 58167], [33825, 58168], [31634, 58169], 0,
+    [58171, 154912], 0, [33938, 58174], [31738, 58175], 0, [31797, 58177],
+    [58178, 154817], [31812, 58179], [31875, 58180], [58181, 149634],
+    [31910, 58182], [58184, 148856], [31945, 58185], [31943, 58186],
+    [31974, 58187], 0, [31987, 58189], [31989, 58190], [32359, 58192],
+    [17693, 58193], [58194, 159300], [32093, 58195], [58196, 159446],
+    [32137, 58198], [32171, 58199], [28981, 58200], [32179, 58201], 32214,
+    [58203, 147543], [58204, 155689], [32228, 58205], [15635, 58206],
+    [32245, 58207], [58208, 137209], [32229, 58209], [58210, 164717], 0,
+    [58212, 155937], [58213, 155994], [32366, 58214], 0, [17195, 58216],
+    [37996, 58217], [32295, 58218], [32576, 58219], [32577, 58220],
+    [32583, 58221], [31030, 58222], [58223, 156368], [39393, 58224],
+    [32663, 58225], [58226, 156497], [32675, 58227], [58228, 136801],
+    [58229, 131176], [17756, 58230], [58231, 145254], [58233, 164666],
+    [32762, 58234], [58235, 156809], 0, [32776, 58237], [32797, 58238], 0,
+    [32815, 58240], [58241, 172167], [58242, 158915], [32827, 58243],
+    [32828, 58244], [32865, 58245], [58246, 141076], [18825, 58247],
+    [58248, 157222], [58249, 146915], [58250, 157416], [26405, 58251],
+    [32935, 58252], [58253, 166472], [33031, 58254], [33050, 58255],
+    [22704, 58256], [58257, 141046], [27775, 58258], [58259, 156824],
+    [25831, 58261], [58262, 136330], [33304, 58263], [58264, 137310],
+    [27219, 58265], [58266, 150117], [58267, 150165], [17530, 58268],
+    [33321, 58269], [58271, 158290], [58272, 146814], [20473, 58273],
+    [58274, 136445], [34018, 58275], [33634, 58276], 0, [58278, 149927],
+    [58279, 144688], [58280, 137075], [58281, 146936], [33450, 58282],
+    [26907, 58283], [58284, 194964], [16859, 58285], [34123, 58286],
+    [33488, 58287], [33562, 58288], [58289, 134678], [58290, 137140],
+    [14017, 58291], [58292, 143741], [58293, 144730], [33403, 58294],
+    [33506, 58295], [33560, 58296], [58297, 147083], [58298, 159139],
+    [58299, 158469], [58300, 158615], [58301, 144846], [15807, 58302],
+    [33565, 58303], [21996, 58304], [33669, 58305], [17675, 58306],
+    [58307, 159141], [33708, 58308], 0, [33747, 58310], [58312, 159444],
+    [27223, 58313], [34138, 58314], [13462, 58315], [58316, 159298],
+    [33880, 58318], [58319, 154596], [33905, 58320], [15827, 58321],
+    [17636, 58322], [27303, 58323], [33866, 58324], [31064, 58326], 0,
+    [58328, 158614], [58329, 159351], [58330, 159299], [34014, 58331], 0,
+    [33681, 58333], [17568, 58334], [33939, 58335], [34020, 58336],
+    [58337, 154769], [16960, 58338], [58339, 154816], [17731, 58340],
+    [34100, 58341], [23282, 58342], 0, [17703, 58344], [34163, 58345],
+    [17686, 58346], [26559, 58347], [34326, 58348], [58349, 165413],
+    [58350, 165435], [34241, 58351], [58352, 159880], [34306, 58353],
+    [58354, 136578], [58355, 159949], [58356, 194994], [17770, 58357],
+    [34344, 58358], [13896, 58359], [58360, 137378], [21495, 58361],
+    [58362, 160666], [34430, 58363], 0, [58365, 172280], [34798, 58366],
+    [58367, 142375], [34737, 58368], [34778, 58369], [34831, 58370, 60990],
+    [22113, 58371], [34412, 58372], [26710, 58373], [17935, 58374],
+    [34885, 58375], [34886, 58376], [58377, 161248], [58378, 146873],
+    [58379, 161252], [34910, 58380], [34972, 58381], [18011, 58382],
+    [34996, 58383], [34997, 58384], [35013, 58386], [58388, 161551],
+    [35207, 58389], {s: 3}, [35239, 58393], [35260, 58394], [58395, 166437],
+    [35303, 58396], [58397, 162084], [58398, 162493], [35484, 58399],
+    [30611, 58400], [37374, 58401], [35472, 58402], [58403, 162393],
+    [31465, 58404], [58405, 162618], [18195, 58407], [58408, 162616],
+    [29052, 58409], [35596, 58410], [35615, 58411], [58412, 152624],
+    [58413, 152933], [35647, 58414], 0, [35661, 58416], [35497, 58417],
+    [58418, 150138], [35728, 58419], [35739, 58420], [35503, 58421],
+    [58422, 136927], [17941, 58423], [34895, 58424], [35995, 58425],
+    [58426, 163156], [58427, 163215], [58428, 195028], [14117, 58429],
+    [58430, 163155], [36054, 58431], [58432, 163224], [58433, 163261],
+    [36114, 58434], [36099, 58435], [58436, 137488], [36059, 58437],
+    [28764, 58438], [36113, 58439], [16080, 58441], 0, [36265, 58443],
+    [58444, 163842], [58445, 135188], [58446, 149898], [15228, 58447],
+    [58448, 164284], [58449, 160012], [31463, 58450], [36525, 58451],
+    [36534, 58452], [36547, 58453], [37588, 58454], [36633, 58455],
+    [36653, 58456], [58457, 164709], [58458, 164882], [36773, 58459],
+    [37635, 58460], [58461, 172703], [58462, 133712], [36787, 58463], 0,
+    [58465, 166366], [58466, 165181], [58467, 146875], [24312, 58468],
+    [58469, 143970], [36857, 58470], 0, [58474, 140069], [14720, 58475],
+    [58476, 159447], [36919, 58477], [58478, 165180], [58479, 162494],
+    [36961, 58480], [58481, 165228], [58482, 165387], [37032, 58483],
+    [58484, 165651], [37060, 58485], [58486, 165606], [37038, 58487], 0,
+    [37223, 58489], [37289, 58491], [37316, 58492], [31916, 58493],
+    [58494, 166195], [58495, 138889], [37390, 58496], [27807, 58497],
+    [37441, 58498], [37474, 58499], [58500, 153017], [58502, 166598],
+    [58503, 146587], [58504, 166668], [58505, 153051], [58506, 134449],
+    [37676, 58507], [37739, 58508], [58509, 166625], [58510, 166891],
+    [23235, 58512], [58513, 166626], [58514, 166629], [18789, 58515],
+    [37444, 58516], [58517, 166892], [58518, 166969], [58519, 166911],
+    [37747, 58520], [37979, 58521], [36540, 58522], [38277, 58523],
+    [38310, 58524], [37926, 58525], [38304, 58526], [28662, 58527],
+    [17081, 58528], [58530, 165592], [58531, 135804], [58532, 146990],
+    [18911, 58533], [27676, 58534], [38523, 58535], [38550, 58536],
+    [16748, 58537], [38563, 58538], [58539, 159445], [25050, 58540], 58541,
+    [30965, 58542], [58543, 166624], [38589, 58544], [21452, 58545],
+    [18849, 58546], [58547, 158904], [58548, 131700], [58549, 156688],
+    [58550, 168111], [58551, 168165], [58552, 150225], [58553, 137493],
+    [58554, 144138], [38705, 58555], [34370, 58556], [38710, 58557],
+    [18959, 58558], [17725, 58559], [17797, 58560], [58561, 150249],
+    [28789, 58562], [23361, 58563], [38683, 58564], 0, [58566, 168405],
+    [38743, 58567], [23370, 58568], [58569, 168427], [38751, 58570],
+    [37925, 58571], [20688, 58572], [58573, 143543], [58574, 143548],
+    [38793, 58575], [38815, 58576], [38833, 58577], [38846, 58578],
+    [38848, 58579], [38866, 58580], [38880, 58581], [58582, 152684],
+    [38894, 58583], [29724, 58584], [58585, 169011], 0, [38901, 58587],
+    [58588, 168989], [58589, 162170], [19153, 58590], [38964, 58591],
+    [38963, 58592], [38987, 58593], [39014, 58594], [15118, 58595],
+    [58596, 160117], [15697, 58597], [58598, 132656], [58599, 147804],
+    [58600, 153350], [39114, 58601], [39095, 58602], [39112, 58603],
+    [39111, 58604], [19199, 58605], [58606, 159015], [58607, 136915],
+    [21936, 58608], [39137, 58609], [39142, 58610], [39148, 58611],
+    [37752, 58612], [39225, 58613], [58614, 150057], [19314, 58615],
+    [58616, 170071], [58617, 170245], [39413, 58618], [39436, 58619],
+    [39483, 58620], [39440, 58621], [39512, 58622], [58623, 153381],
+    [14020, 58624], [58625, 168113], [58626, 170965], [39648, 58627],
+    [39650, 58628], [58629, 170757], [39668, 58630], [19470, 58631],
+    [39700, 58632], [39725, 58633], [58634, 165376], [20532, 58635],
+    [39732, 58636], [14531, 58638], [58639, 143485], [39760, 58640],
+    [39744, 58641], [58642, 171326], [23109, 58643], [58644, 137315],
+    [39822, 58645], [39938, 58647], [39935, 58648], [39948, 58649],
+    [58650, 171624], [40404, 58651], [58652, 171959], [58653, 172434],
+    [58654, 172459], [58655, 172257], [58656, 172323], [58657, 172511],
+    [40318, 58658], [40323, 58659], [58660, 172340], [40462, 58661],
+    [40388, 58663], [58665, 172435], [58666, 172576], [58667, 137531],
+    [58668, 172595], [40249, 58669], [58670, 172217], [58671, 172724],
+    [40592, 58672], [40597, 58673], [40606, 58674], [40610, 58675],
+    [19764, 58676], [40618, 58677], [40623, 58678], [58679, 148324],
+    [40641, 58680], [15200, 58681], [14821, 58682], [15645, 58683],
+    [20274, 58684], [14270, 58685], [58686, 166955], [40706, 58687],
+    [40712, 58688], [19350, 58689], [37924, 58690], [58691, 159138],
+    [40727, 58692, 60836], 0, [40761, 58694], [22175, 58695], [22154, 58696],
+    [40773, 58697], [39352, 58698], [58699, 168075], [38898, 58700],
+    [33919, 58701], 0, [40809, 58703], [31452, 58704], [40846, 58705],
+    [29206, 58706], [19390, 58707], [58708, 149877], [58709, 149947],
+    [29047, 58710], [58711, 150008], [58712, 148296], [58713, 150097],
+    [29598, 58714], [58715, 166874], [58716, 137466], [31135, 58717],
+    [58718, 166270], [58719, 167478], [37737, 58720], [37875, 58721],
+    [58722, 166468], [37612, 58723], [37761, 58724], [37835, 58725],
+    [58726, 166252], [58727, 148665], [29207, 58728], [16107, 58729],
+    [30578, 58730], [31299, 58731], [28880, 58732], [58733, 148595],
+    [58734, 148472], [29054, 58735], [58736, 137199], [28835, 58737],
+    [58738, 137406], [58739, 144793], [16071, 58740], [58741, 137349],
+    [58742, 152623], [58743, 137208], [14114, 58744], [58745, 136955],
+    [58746, 137273], [14049, 58747], [58748, 137076], [58749, 137425],
+    [58750, 155467], [14115, 58751], [58752, 136896], [22363, 58753],
+    [58754, 150053], [58755, 136190], [58756, 135848], [58757, 136134],
+    [58758, 136374], [34051, 58759, 58761], [58760, 145062], 0, [33877, 58762],
+    [58763, 149908], [58764, 160101], [58765, 146993], [58766, 152924],
+    [58767, 147195], [58768, 159826], [17652, 58769], [58770, 145134],
+    [58771, 170397], [58772, 159526], [26617, 58773], [14131, 58774],
+    [15381, 58775], [15847, 58776], [22636, 58777], [58778, 137506],
+    [26640, 58779], [16471, 58780], [58781, 145215], [58782, 147681],
+    [58783, 147595], [58784, 147727], [58785, 158753], [21707, 58786],
+    [22174, 58787], [58788, 157361], [22162, 58789], [58790, 135135],
+    [58791, 134056], [58792, 134669], 0, [58794, 166675], [37788, 58795],
+    [20216, 58796], [20779, 58797], [14361, 58798], [58799, 148534],
+    [20156, 58800], [58801, 132197], 0, [20299, 58803], [20362, 58804],
+    [58805, 153169], [23144, 58806], [58807, 131499], [58808, 132043],
+    [14745, 58809], [58810, 131850], [58811, 132116], [13365, 58812],
+    [20265, 58813], [58814, 131776], [58815, 167603], [58816, 131701],
+    [35546, 58817], [58818, 131596], [20120, 58819], [20685, 58820],
+    [20749, 58821], [20386, 58822], [20227, 58823], [58824, 150030],
+    [58825, 147082], [20290, 58826], [20526, 58827], [20588, 58828],
+    [20609, 58829], [20428, 58830], [20453, 58831], [20568, 58832],
+    [20732, 58833], [28278, 58838], [58839, 144789], [58840, 147001],
+    [58841, 147135], [28018, 58842], [58843, 137348], [58844, 147081],
+    [20904, 58845], [20931, 58846], [58847, 132576], [17629, 58848],
+    [58849, 132259], [58850, 132242], [58851, 132241], [36218, 58852],
+    [58853, 166556], [58854, 132878], [21081, 58855], [21156, 58856],
+    [58857, 133235], [21217, 58858], 0, [18042, 58860], [29068, 58861],
+    [58862, 148364], [58863, 134176], [58864, 149932], [58865, 135396],
+    [27089, 58866], [58867, 134685], 0, [16094, 58869], [29849, 58870],
+    [29716, 58871], [29782, 58872], [29592, 58873], [19342, 58874],
+    [58875, 150204], [58876, 147597], [21456, 58877], [13700, 58878],
+    [29199, 58879], [58880, 147657], [21940, 58881], [58882, 131909],
+    [21709, 58883], [58884, 134086], [22301, 58885], [37469, 58886],
+    [38644, 58887], [22493, 58889], [22413, 58890], [22399, 58891],
+    [13886, 58892], [22731, 58893], [23193, 58894], [58895, 166470],
+    [58896, 136954], [58897, 137071], [58898, 136976], [23084, 58899],
+    [22968, 58900], [23166, 58902], [23247, 58903], [23058, 58904],
+    [58905, 153926], [58906, 137715], [58907, 137313], [58908, 148117],
+    [14069, 58909], [27909, 58910], [29763, 58911], [23073, 58912],
+    [58913, 155267], [23169, 58914], [58915, 166871], [58916, 132115],
+    [37856, 58917], [29836, 58918], [58919, 135939], [28933, 58920],
+    [18802, 58921], [37896, 58922], [58923, 166395], [37821, 58924],
+    [14240, 58925], [23582, 58926], [23710, 58927], [24158, 58928],
+    [24136, 58929], [58930, 137622], [58931, 137596], [58932, 146158],
+    [24269, 58933], [23375, 58934], [58935, 137475], [58936, 137476],
+    [14081, 58937], [58938, 137376], [14045, 58939], [58940, 136958],
+    [14035, 58941], [33066, 58942], [58943, 166471], [58944, 138682],
+    [58945, 144498], [58946, 166312], [24332, 58947, 60916], [24334, 58948],
+    [58949, 137511], [58950, 137131], [23147, 58951], [58952, 137019],
+    [23364, 58953], [58955, 161277], [34912, 58956], [24702, 58957],
+    [58958, 141408], [58959, 140843], [24539, 58960], [16056, 58961],
+    [58962, 140719], [58963, 140734], [58964, 168072], [58965, 159603],
+    [25024, 58966], [58967, 131134], [58968, 131142], [58969, 140827],
+    [24985, 58970], [24984, 58971], [24693, 58972], [58973, 142491],
+    [58974, 142599], [58975, 149204], [58976, 168269], [25713, 58977],
+    [58978, 149093], [58979, 142186], [14889, 58980], [58981, 142114],
+    [58982, 144464], [58983, 170218], [58984, 142968], [25399, 58985],
+    [25782, 58987], [25393, 58988], [25553, 58989], [58990, 149987],
+    [58991, 142695], [25252, 58992], [58993, 142497], [25659, 58994],
+    [25963, 58995], [26994, 58996], [15348, 58997], [58998, 143502],
+    [58999, 144045], [59000, 149897], [59001, 144043], [21773, 59002],
+    [59003, 144096], [59004, 137433], [59005, 169023], [26318, 59006],
+    [59007, 144009], [59008, 143795], [15072, 59009], [59011, 152964],
+    [59012, 166690], [59013, 152975], [59014, 136956], [59015, 152923],
+    [59016, 152613], [30958, 59017], [59018, 143619], [59019, 137258],
+    [59020, 143924], [13412, 59021], [59022, 143887], [59023, 143746],
+    [59024, 148169], [26254, 59025], [59026, 159012], [26219, 59027],
+    [19347, 59028], [26160, 59029], [59030, 161904], [59031, 138731],
+    [26211, 59032], [59033, 144082], [59034, 144097], [26142, 59035],
+    [59036, 153714], [14545, 59037], [59038, 145466], [59039, 145340],
+    [15257, 59040], [59041, 145314], [59042, 144382], [29904, 59043],
+    [15254, 59044], [59046, 149034], [26806, 59047], 0, [15300, 59049],
+    [27326, 59050], [59052, 145365], [59053, 148615], [27187, 59054],
+    [27218, 59055], [27337, 59056], [27397, 59057], [59058, 137490],
+    [25873, 59059], [26776, 59060], [27212, 59061], [15319, 59062],
+    [27258, 59063], [27479, 59064], [59065, 147392], [59066, 146586],
+    [37792, 59067], [37618, 59068], [59069, 166890], [59070, 166603],
+    [37513, 59071], [59072, 163870], [59073, 166364], [37991, 59074],
+    [28069, 59075], [28427, 59076], 0, [59079, 147327], [15759, 59080],
+    [28164, 59081], [59082, 147516], [23101, 59083], [28170, 59084],
+    [22599, 59085], [27940, 59086], [30786, 59087], [28987, 59088],
+    [59089, 148250], [59090, 148086], [28913, 59091], [29264, 59092, 61085],
+    [29319, 59093], [29332, 59094], [59095, 149391], [59096, 149285],
+    [20857, 59097], [59098, 150180], [59099, 132587], [29818, 59100],
+    [59101, 147192], [59102, 144991], [59103, 150090], [59104, 149783],
+    [59105, 155617], [16134, 59106], [16049, 59107], [59108, 150239],
+    [59109, 166947], [59110, 147253], [24743, 59111], [16115, 59112],
+    [29900, 59113], [29756, 59114], [37767, 59115], [29751, 59116],
+    [17567, 59117], [59118, 159210], [17745, 59119], [30083, 59120],
+    [16227, 59121], [59122, 150745], [59123, 150790], [16216, 59124],
+    [30037, 59125], [30323, 59126], [59127, 173510], 0, [29800, 59129, 61070],
+    [59130, 166604], [59131, 149931], [59132, 149902], [15099, 59133],
+    [15821, 59134], [59135, 150094], [16127, 59136], [59137, 149957],
+    [59138, 149747], [37370, 59139], [22322, 59140], [37698, 59141],
+    [59142, 166627], [59143, 137316], [20703, 59144], [59145, 152097],
+    [59146, 152039], [30584, 59147], [59148, 143922], [30478, 59149],
+    [30479, 59150], [30587, 59151], [59152, 149143], [59153, 145281],
+    [14942, 59154], [59155, 149744], [29752, 59156], [29851, 59157],
+    [16063, 59158], [59159, 150202], [59160, 150215], [16584, 59161],
+    [59162, 150166], [59163, 156078], [37639, 59164], [59165, 152961],
+    [30750, 59166], [30861, 59167], [30856, 59168], [30930, 59169],
+    [29648, 59170], [31065, 59171], [59172, 161601], [59173, 153315],
+    [16654, 59174], 0, 0, [31141, 59177], [27181, 59178], [59179, 147194],
+    [31290, 59180], [31220, 59181], [16750, 59182], [59183, 136934],
+    [16690, 59184], [37429, 59185], [31217, 59186], [59187, 134476],
+    [59188, 149900], [59189, 131737], [59190, 146874], [59191, 137070],
+    [13719, 59192], [21867, 59193], [13680, 59194], [13994, 59195],
+    [59196, 131540], [59197, 134157], [31458, 59198], [23129, 59199],
+    [59200, 141045], [59201, 154287], [59202, 154268], [23053, 59203],
+    [59204, 131675], [30960, 59205], [23082, 59206], [59207, 154566],
+    [31486, 59208], [16889, 59209], [31837, 59210], [31853, 59211],
+    [16913, 59212], [59213, 154547], [59214, 155324], [59215, 155302],
+    [31949, 59216], [59217, 150009], [59218, 137136], [31886, 59219],
+    [31868, 59220], [31918, 59221], [27314, 59222], [32220, 59223],
+    [32263, 59224], [32211, 59225], [32590, 59226], [59227, 156257],
+    [59228, 155996], [59229, 162632], [32151, 59230], [59231, 155266],
+    [17002, 59232], [59233, 158581], [59234, 133398], [26582, 59235],
+    [59236, 131150], [59237, 144847], [22468, 59238], [59239, 156690],
+    [59240, 156664], [32733, 59242], [31527, 59243], [59244, 133164],
+    [59245, 154345], [59246, 154947], [31500, 59247], [59248, 155150],
+    [39398, 59249], [34373, 59250], [39523, 59251], [27164, 59252],
+    [59253, 144447], [59255, 150007], [59256, 157101], [39455, 59257],
+    [59258, 157088], 0, [59260, 160039], [59261, 158929], [17642, 59262],
+    [33079, 59263], [17410, 59264], [32966, 59265], [33033, 59266],
+    [33090, 59267], [59268, 157620], [39107, 59269], [59270, 158274],
+    [33378, 59271], [33381, 59272], [59273, 158289], [33875, 59274],
+    [59275, 159143], [34320, 59276], [59277, 160283], [23174, 59278],
+    [16767, 59279], [59280, 137280], [23339, 59281], [59282, 137377],
+    [23268, 59283], [59284, 137432], [34464, 59285], [59286, 195004],
+    [59287, 146831], [34861, 59288], [59289, 160802], [23042, 59290],
+    [34926, 59291], [20293, 59292], [34951, 59293], [35007, 59294],
+    [35046, 59295], [35173, 59296], [35149, 59297], [59298, 153219],
+    [35156, 59299], [59300, 161669], [59301, 161668], [59302, 166901],
+    [59303, 166873], [59304, 166812], [59305, 166393], [16045, 59306],
+    [33955, 59307], [18165, 59308], [18127, 59309], [14322, 59310],
+    [35389, 59311], [35356, 59312], [59313, 169032], [24397, 59314],
+    [37419, 59315], [59316, 148100], [26068, 59317], [28969, 59318],
+    [28868, 59319], [59320, 137285], [40301, 59321], [35999, 59322],
+    [36073, 59323], [59324, 163292], [22938, 59325], [30659, 59326],
+    [23024, 59327], [14036, 59329], [36394, 59330], [36519, 59331],
+    [59332, 150537], [36656, 59333], [36682, 59334], [17140, 59335],
+    [27736, 59336], [28603, 59337], [59338, 140065], [18587, 59339],
+    [28537, 59340], [28299, 59341], [59342, 137178], [39913, 59343],
+    [14005, 59344], [59345, 149807], [37051, 59346], 0, [21873, 59348],
+    [18694, 59349], [37307, 59350], [37892, 59351], [59352, 166475],
+    [16482, 59353], [59354, 166652], [37927, 59355], [59356, 166941],
+    [59357, 166971], [34021, 59358], [35371, 59359], [38297, 59360],
+    [38311, 59361], [38295, 59362], [38294, 59363], [59364, 167220],
+    [29765, 59365], [16066, 59366], [59367, 149759], [59368, 150082],
+    [59369, 148458], [16103, 59370], [59371, 143909], [38543, 59372],
+    [59373, 167655], [59374, 167526], [59375, 167525], [16076, 59376],
+    [59377, 149997], [59378, 150136], [59379, 147438], [29714, 59380],
+    [29803, 59381], [16124, 59382], [38721, 59383], [59384, 168112],
+    [26695, 59385], [18973, 59386], [59387, 168083], [59388, 153567], 0,
+    [37736, 59390], [59391, 166281], [59392, 166950], [59393, 166703],
+    [59394, 156606], [37562, 59395], [23313, 59396], [35689, 59397],
+    [18748, 59398], [29689, 59399], [59400, 147995], [38811, 59401], 0,
+    [39224, 59403], [59404, 134950], [24001, 59405], [59406, 166853],
+    [59407, 150194], [38943, 59408], [59409, 169178], [37622, 59410],
+    [59411, 169431], [37349, 59412], [17600, 59413], [59414, 166736],
+    [59415, 150119], [59416, 166756], [39132, 59417], [59418, 166469],
+    [16128, 59419], [37418, 59420], [18725, 59421], [33812, 59422],
+    [39227, 59423], [39245, 59424], [59425, 162566], [15869, 59426], 0,
+    [19311, 59428], [39338, 59429], [39516, 59430], [59431, 166757],
+    [59432, 153800], [27279, 59433], [39457, 59434], [23294, 59435],
+    [39471, 59436], [59437, 170225], [19344, 59438], [59439, 170312],
+    [39356, 59440], [19389, 59441], [19351, 59442], [37757, 59443],
+    [22642, 59444], [59445, 135938], [22562, 59446], [59447, 149944],
+    [59448, 136424], [30788, 59449], [59450, 141087], [59451, 146872],
+    [26821, 59452], [15741, 59453], [37976, 59454], [14631, 59455],
+    [24912, 59456], [59457, 141185], [59458, 141675], [24839, 59459],
+    [40015, 59460], [40019, 59461], [40059, 59462], [39989, 59463],
+    [39952, 59464], [39807, 59465], [39887, 59466], [59467, 171565],
+    [39839, 59468], [59469, 172533], [59470, 172286], [40225, 59471],
+    [19630, 59472], [59473, 147716], [40472, 59474], [19632, 59475],
+    [40204, 59476], [59477, 172468], [59478, 172269], [59479, 172275],
+    [59480, 170287], [40357, 59481], [33981, 59482], [59483, 159250],
+    [59484, 159711], [59485, 158594], [34300, 59486], [17715, 59487],
+    [59488, 159140], [59489, 159364], [59490, 159216], [33824, 59491],
+    [34286, 59492], [59493, 159232], [59494, 145367], [59495, 155748],
+    [31202, 59496], [59497, 144796], [59498, 144960], [59500, 149982],
+    [15714, 59501], [37851, 59502], [37566, 59503], [37704, 59504],
+    [59505, 131775], [30905, 59506], [37495, 59507], [37965, 59508],
+    [20452, 59509], [13376, 59510], [36964, 59511], [59512, 152925],
+    [30781, 59513], [30804, 59514], [30902, 59515], [30795, 59516],
+    [59517, 137047], [59518, 143817], [59519, 149825], [13978, 59520],
+    [20338, 59521], [28634, 59522], [28633, 59523], 0, [28702, 59524, 59525],
+    [21524, 59526], [59527, 147893], [22459, 59528], [22771, 59529],
+    [22410, 59530], [40214, 59531], [22487, 59532], [28980, 59533],
+    [13487, 59534], [59535, 147884], [29163, 59536], [59537, 158784],
+    [59538, 151447], 0, [59540, 137141], [59541, 166473], [24844, 59542],
+    [23246, 59543], [23051, 59544], [17084, 59545], [59546, 148616],
+    [14124, 59547], [19323, 59548], [59549, 166396], [37819, 59550],
+    [37816, 59551], [59552, 137430], [59553, 134941], [33906, 59554],
+    [59555, 158912], [59556, 136211], [59557, 148218], [59558, 142374],
+    [59559, 148417], [22932, 59560], [59561, 146871], [59562, 157505],
+    [32168, 59563], [59564, 155995], [59565, 155812], [59566, 149945],
+    [59567, 149899], [59568, 166394], [37605, 59569], [29666, 59570],
+    [16105, 59571], [29876, 59572], [59573, 166755], [59574, 137375],
+    [16097, 59575], [59576, 150195], [27352, 59577], [29683, 59578],
+    [29691, 59579], [16086, 59580], [59581, 150078], [59582, 150164],
+    [59583, 137177], [59584, 150118], [59585, 132007], [59586, 136228],
+    [59587, 149989], [29768, 59588], [59589, 149782], [28837, 59590],
+    [59591, 149878], [37508, 59592], [29670, 59593], [37727, 59594],
+    [59595, 132350], [37681, 59596], [59597, 166606], [59598, 166422],
+    [37766, 59599], [59600, 166887], [59601, 153045], [18741, 59602],
+    [59603, 166530], [29035, 59604], [59605, 149827], [59606, 134399],
+    [22180, 59607], [59608, 132634], [59609, 134123], [59610, 134328],
+    [21762, 59611], [31172, 59612], [59613, 137210], [32254, 59614],
+    [59615, 136898], [59616, 150096], [59617, 137298], [17710, 59618],
+    [37889, 59619], [14090, 59620], [59621, 166592], [59622, 149933],
+    [22960, 59623], [59624, 137407], [59625, 137347], [59626, 160900],
+    [23201, 59627], [14050, 59628], [59629, 146779], [14000, 59630],
+    [37471, 59631], [23161, 59632], [59633, 166529], [59634, 137314],
+    [37748, 59635], [15565, 59636], [59637, 133812], [19094, 59638],
+    [14730, 59639], [20724, 59640], [15721, 59641], [15692, 59642],
+    [59643, 136092], [29045, 59644], [17147, 59645], [59646, 164376],
+    [28175, 59647], [59648, 168164], [17643, 59649], [27991, 59650],
+    [59651, 163407], [28775, 59652], [27823, 59653], [15574, 59654],
+    [59655, 147437], [59656, 146989], [28162, 59657], [28428, 59658],
+    [15727, 59659], [59660, 132085], [30033, 59661], [14012, 59662],
+    [13512, 59663], [18048, 59664], [16090, 59665], [18545, 59666],
+    [22980, 59667], [37486, 59668], [18750, 59669], [36673, 59670],
+    [59671, 166940], [59672, 158656], [22546, 59673], [22472, 59674],
+    [14038, 59675], [59676, 136274], [28926, 59677], [59678, 148322],
+    [59679, 150129], [59680, 143331], [59681, 135856], [59682, 140221],
+    [26809, 59683], [26983, 59684], [59685, 136088], [59686, 144613],
+    [59687, 162804], [59688, 145119], [59689, 166531], [59690, 145366],
+    [59691, 144378], [59692, 150687], [27162, 59693], [59694, 145069],
+    [59695, 158903], [33854, 59696], [17631, 59697], [17614, 59698],
+    [59699, 159014], [59700, 159057], [59701, 158850], [59702, 159710], 0, 0,
+    [33597, 59705], [59706, 137018], [33773, 59707], [59708, 158848],
+    [59709, 159827], [59710, 137179], [22921, 59711], [23170, 59712],
+    [59713, 137139], [23137, 59714], [23153, 59715], [59716, 137477],
+    [59717, 147964], [14125, 59718], [23023, 59719], [59720, 137020],
+    [14023, 59721], [29070, 59722], [37776, 59723], [26266, 59724],
+    [59725, 148133], [23150, 59726], [23083, 59727], [59728, 148115],
+    [27179, 59729], [59730, 147193], [59731, 161590], [59732, 148571],
+    [59733, 148170], [28957, 59734], [59735, 148057], [59736, 166369],
+    [20400, 59737], [59738, 159016], [23746, 59739], [59740, 148686],
+    [59741, 163405], [59742, 148413], [27148, 59743], [59744, 148054],
+    [59745, 135940], 0, [28979, 59747], [59748, 148457], [15781, 59749],
+    [27871, 59750], [59751, 194597], [23019, 59754], [24412, 59757],
+    [59764, 144128], [31955, 59776], [59783, 162548], [59786, 153334],
+    [59790, 162584], [36972, 59791], [33270, 59795], [30476, 59797],
+    [27810, 59799], [22269, 59800], [22633, 59828], [26465, 59832],
+    [23646, 59838], [22770, 59841], [28857, 59843], [26627, 59853],
+    [36795, 59859], [36796, 59861], [20001, 59871], [31545, 59898],
+    [15820, 59902], [29482, 57990, 59909], [30048, 59912], [22586, 59920],
+    [33446, 59932], [27018, 59940], [24803, 59944], [20206, 59984],
+    [39364, 60002], [40639, 60023], [21249, 60025], [26528, 60038],
+    [24808, 60046], [20916, 60053], [31363, 60064], [39994, 60075],
+    [31432, 60093], [26906, 60098], [22956, 60100], [22592, 60102],
+    [21610, 60114], [24807, 60123], [22138, 60125], [26965, 60132],
+    [39983, 60133], [34725, 60134], [23584, 60141], [24075, 60143],
+    [26398, 60147], [33965, 60157], [35713, 60161], [20088, 60166],
+    [25283, 60176], [26709, 60180], 0, [33533, 60190], [35237, 60194],
+    [36768, 60196], [38840, 60198], [38983, 60200], [39613, 60201],
+    [24497, 60218], [26184, 60219], [26303, 60220], [60221, 162425], 0,
+    [60225, 149946], 0, 0, [60230, 131910], [26382, 60232], [26904, 60233],
+    [60235, 161367], [60236, 155618], [60239, 161278], [60240, 139418],
+    [18640, 60241], [19128, 60242], [60244, 166554], [60247, 147515],
+    [60250, 150085], [60251, 132554], [20946, 60252], [60253, 132625],
+    [22943, 60254], [60255, 138920], [15294, 60256], [60257, 146687],
+    [14747, 60262], [60264, 165352], [60265, 170441], [14178, 60266],
+    [60267, 139715], [35678, 60268], [60269, 166734], 0, [29193, 60274],
+    [60276, 134264], [60280, 132985], [36570, 60281], [21135, 60283],
+    [29041, 60285], [60288, 147274], [60289, 150183], [21948, 60290],
+    [60293, 158546], [13427, 60295], [60297, 161330], [18200, 60299],
+    [60303, 149823], [20582, 60305], [13563, 60306], [60307, 144332], 0,
+    [18300, 60310], [60311, 166216], [60315, 138640], 0, [60320, 162834],
+    [36950, 60321], [60323, 151450], [35682, 60324], [23899, 60327],
+    [60328, 158711], 0, [60331, 137500], [35562, 60332], [60333, 150006],
+    [60335, 147439], [19392, 60337], [60340, 141083], [37989, 60341],
+    [60342, 153569], [24981, 60343], [23079, 60344], [60345, 194765], 0,
+    [60348, 148769], [20074, 60350], [60351, 149812], [38486, 60352],
+    [28047, 60353], [60354, 158909], [35191, 60356], [60359, 156689], 0,
+    [31554, 60363], [60364, 168128], [60365, 133649], 0, [31301, 60369],
+    [39462, 60372], [13919, 60374], [60375, 156777], [60376, 131105],
+    [31107, 60377], [23852, 60380], [60381, 144665], 0, [18128, 60384],
+    [30011, 60386], [34917, 60387], [22710, 60389], [14108, 60390],
+    [60391, 140685], [15444, 60394], [37505, 60397], [60398, 139642],
+    [37680, 60400], [60402, 149968], [27705, 60403], [60406, 134904],
+    [34855, 60407], [35061, 60408], [60409, 141606], [60410, 164979],
+    [60411, 137137], [28344, 60412], [60413, 150058], [60414, 137248],
+    [14756, 60415], 0, 0, [17727, 60419], [26294, 60420], [60421, 171181],
+    [60422, 170148], [35139, 60423], [16607, 60427], [60428, 136714],
+    [14753, 60429], [60430, 145199], [60431, 164072], [60432, 136133],
+    [29101, 60433], [33638, 60434], [60436, 168360], 0, [19639, 60438],
+    [60439, 159919], [60440, 166315], [60445, 147834], [31555, 60446],
+    [31102, 60447], [28597, 60449], [60450, 172767], [27139, 60451],
+    [60452, 164632], [21410, 60453], [60454, 159239], [37823, 60455],
+    [26678, 60456], [38749, 59389, 60457], [60458, 164207], [60460, 158133],
+    [60461, 136173], [60462, 143919], [23941, 60464], [60465, 166960],
+    [22293, 60467], [38947, 60468], [60469, 166217], [23979, 60470],
+    [60471, 149896], [26046, 60472], [27093, 60473], [21458, 60474],
+    [60475, 150181], [60476, 147329], [15377, 60477], [26422, 60478],
+    [60482, 139169], [13770, 60490], [18682, 60493], 0, [30728, 60496],
+    [37461, 60497], [17394, 60499], [17375, 60501], [23032, 60505], 0,
+    [22155, 60518], [60520, 169449], [36882, 60541], [21953, 60546],
+    [17673, 60551], [32383, 60552], [28502, 60553], [27313, 60554],
+    [13540, 60556], [60558, 161949], [14138, 60559], 0, [60562, 163876],
+    [60565, 162366], [15851, 60567], [60569, 146615], [60574, 156248],
+    [22207, 60575], [36366, 60577], [23405, 60578], [25566, 60581], 0,
+    [25904, 60585], [22061, 60586], [21530, 60588], [60591, 171416],
+    [19581, 60592], [22050, 60593], [22046, 60594], [32585, 60595],
+    [22901, 60597], [60598, 146752], [34672, 60599], [33047, 60604],
+    [40286, 60605], [36120, 60606], [30267, 60607], [40005, 60608],
+    [30286, 60609], [30649, 60610], [37701, 60611], [21554, 60612],
+    [33096, 60613], [33527, 60614], [22053, 60615], [33074, 60616],
+    [33816, 60617], [32957, 60618], [21994, 60619], [31074, 60620],
+    [22083, 60621], [21526, 60622], [60623, 134813], [13774, 60624],
+    [22021, 57509, 60625], [22001, 60626], [26353, 60627], [60628, 164578],
+    [13869, 60629], [30004, 60630], [22000, 60631], [21946, 60632],
+    [21655, 60633], [21874, 60634], [60635, 134209], [60636, 134294],
+    [24272, 57652, 60637], [60639, 134774], [60640, 142434], [60641, 134818],
+    [40619, 60642], [32090, 60643], 0, [60645, 135285], [25245, 60646],
+    [38765, 60647], [21652, 60648], [36045, 60649], [29174, 60650],
+    [37238, 60651], [25596, 60652], [25529, 60653], [25598, 60654],
+    [21865, 60655], [60656, 142147], [40050, 60657], [60658, 143027],
+    [20890, 60659], [13535, 60660], [60661, 134567], [20903, 60662],
+    [21581, 60663], [21790, 60664], [21779, 60665], [30310, 60666],
+    [36397, 60667], [60668, 157834], [30129, 60669], [32950, 60670],
+    [34820, 60671], 0, [35015, 60673], [33206, 60674], [33820, 60675],
+    [17644, 60677], [29444, 60678], [33547, 60681], [22139, 60683],
+    [37232, 60690], [37384, 60692], [60696, 134905], [29286, 60697],
+    [18254, 60699], [60701, 163833], [16634, 60703], [40029, 60704],
+    [25887, 60705], [18675, 60707], [60708, 149472], [60709, 171388], 0,
+    [60713, 161187], 60715, [60716, 155720], [29091, 60718], [32398, 60719],
+    [40272, 60720], [13687, 60723], [27826, 60725], [21351, 60726],
+    [14812, 60728], [60731, 149016], [33325, 60734], [21579, 60735], 60739,
+    [14930, 60740], [29556, 60742], [60743, 171692], [19721, 60744],
+    [39917, 60745], 0, [19547, 60748], [60751, 171998], [33884, 60752],
+    [60754, 160434], [25390, 60757], [32037, 60758], [14890, 60761],
+    [36872, 60762], [21196, 60763], [15988, 60764], [13946, 60765],
+    [17897, 60766], [60767, 132238], [30272, 60768], [23280, 60769],
+    [60770, 134838], [30842, 60771], [18358, 60772], [22695, 60773],
+    [16575, 60774], [22140, 60775], [39819, 60776], [23924, 60777],
+    [30292, 60778], [60779, 173108], [40581, 60780], [19681, 60781], 0,
+    [14331, 60783], [24857, 60784], [60786, 148466], 60787, [22109, 60788],
+    [60792, 171526], [21044, 60793], [13741, 60795], 0, [40316, 60797],
+    [31830, 60798], [39737, 60799], [22494, 60800], [23635, 60802],
+    [25811, 60803], [60804, 169168], [60805, 156469], [34477, 60807],
+    [60808, 134440], [60811, 134513], 60812, [20990, 60813], [60814, 139023],
+    [23950, 60815], [38659, 60816], [60817, 138705], [40577, 60818],
+    [36940, 60819], [31519, 60820], [39682, 60821], [23761, 60822],
+    [31651, 60823], [25192, 60824], [25397, 60825], [39679, 60826],
+    [31695, 60827], [39722, 60828], [31870, 60829], 0, [31810, 60831],
+    [31878, 60832], [39957, 60833], [31740, 60834], [39689, 60835], 0, 39982,
+    [40794, 60839], [21875, 60840], [23491, 60841], [20477, 60842],
+    [40600, 60843], [20466, 60844], [21088, 60845], [21201, 60847],
+    [22375, 60848], [20566, 60849], [22967, 60850], [24082, 60851],
+    [38856, 60852], [40363, 60853], [36700, 60854], [21609, 60855],
+    [38836, 60856], [39232, 60857], [38842, 60858], [21292, 60859],
+    [24880, 60860], [26924, 60861], [21466, 60862], [39946, 60863],
+    [40194, 60864], [19515, 60865], [38465, 60866], [27008, 60867],
+    [20646, 60868], [30022, 60869], [60870, 137069], [39386, 60871],
+    [21107, 60872], 60873, [37209, 60874], [38529, 60875], [37212, 60876],
+    60877, [37201, 60878], [60879, 167575], [25471, 60880], [27338, 60882],
+    [22033, 60883], [37262, 60884], [30074, 60885], [25221, 60886],
+    [29519, 60888], [31856, 60889], [60890, 154657], 60892, [30422, 60894],
+    [39837, 60895], [20010, 60896], [60897, 134356], [33726, 60898],
+    [34882, 60899], 60900, [23626, 60901], [27072, 60902], 0, 0,
+    [21023, 60905], [24053, 60906], [20174, 60907], [27697, 60908],
+    [60909, 131570], [20281, 60910], [21660, 60911], 0, [21146, 60913],
+    [36226, 60914], [13822, 60915], 0, [13811, 60917], 60918, [27474, 60919],
+    [37244, 60920], [40869, 60921], [39831, 60922], [38958, 60923],
+    [39092, 60924], [39610, 60925], [40616, 60926], [40580, 60927],
+    [31508, 60929], 60930, [27642, 60931], [34840, 60932], [32632, 60933],
+    60934, [22048, 60935], [60936, 173642], [36471, 60937], [40787, 60938],
+    60939, [36308, 60940], [36431, 60941], [40476, 60942], [36353, 60943],
+    [25218, 60944], [60945, 164733], [36392, 60946], [36469, 60947],
+    [31443, 60948], [31294, 60950], [30936, 60951], [27882, 60952],
+    [35431, 60953], [30215, 60954], [40742, 60956], [27854, 60957],
+    [34774, 60958], [30147, 60959], [60960, 172722], [30803, 60961],
+    [36108, 60963], [29410, 60964], [29553, 60965], [35629, 60966],
+    [29442, 60967], [29937, 60968], [36075, 60969], [60970, 150203],
+    [34351, 60971], [24506, 60972], [34976, 60973], [17591, 60974], 60975,
+    [60977, 159237], 60978, [35454, 60979], [60980, 140571], 60981,
+    [24829, 60982], [30311, 60983], [39639, 60984], [40260, 60985],
+    [37742, 58859, 60986], [39823, 60987], [34805, 60988], 60989, 0,
+    [36087, 60991], [29484, 60992], [38689, 60993], [39856, 60994],
+    [13782, 60995], [29362, 60996], [19463, 60997], [31825, 60998],
+    [39242, 60999], [24921, 61001], [19460, 61002], [40598, 61003],
+    [24957, 61004], 61005, [22367, 61006], [24943, 61007], [25254, 61008],
+    [25145, 61009], 0, [14940, 61011], [25058, 61012], [21418, 61013],
+    [25444, 61015], [26626, 61016], [13778, 61017], [23895, 61018],
+    [36826, 61020], [61021, 167481], 61022, [20697, 61023], [30982, 61025],
+    [21298, 61026], [38456, 61027], [61028, 134971], [16485, 61029], 61030,
+    [30718, 61031], 61032, [31938, 61033], [61034, 155418], [31962, 61035],
+    [31277, 61036], [32870, 61037], [32867, 61038], [32077, 61039],
+    [29957, 61040], [29938, 61041], [35220, 61042], [33306, 61043],
+    [26380, 61044], [32866, 61045], [61046, 160902], [32859, 61047],
+    [29936, 61048], [33027, 61049], [30500, 61050], [35209, 61051],
+    [61052, 157644], [30035, 61053], [34729, 61055], [34766, 61056],
+    [33224, 61057], [34700, 61058], [35401, 61059], [36013, 61060],
+    [35651, 61061], [30507, 61062], [29944, 61063], [34010, 61064],
+    [27058, 61066], [36262, 61067], 61068, [35241, 58392, 61069], 0,
+    [28089, 61071], [34753, 61072], [61073, 147473], [29927, 61074],
+    [15835, 61075], [29046, 61076], [24740, 57702, 61077], [24988, 61078],
+    [15569, 61079], 0, [24695, 61081], 61082, [32625, 61083], 0,
+    [24809, 61086], [19326, 61087], [57344, 132423], [37595, 57345],
+    [57346, 132575], [57347, 147397], [34124, 57348], [17077, 57349],
+    [29679, 57350], [20917, 57351], [13897, 57352], [57353, 149826],
+    [57354, 166372], [37700, 57355], [57356, 137691], [33518, 57357],
+    [57358, 146632], [30780, 57359], [26436, 57360], [25311, 57361],
+    [57362, 149811], [57363, 166314], [57364, 131744], [57365, 158643],
+    [57366, 135941], [20395, 57367], [57368, 140525], [20488, 57369],
+    [57370, 159017], [57371, 162436], [57372, 144896], [57373, 150193],
+    [57374, 140563], 0, [57376, 131966], [24484, 57377], [57378, 131968],
+    [57379, 131911], [28379, 57380], [57381, 132127], 20702, [20737, 57383],
+    [13434, 57384], [20750, 57385], [39020, 57386], [14147, 57387],
+    [33814, 57388], [57389, 149924], [57390, 132231], [20832, 57391],
+    [57392, 144308], [20842, 57393], [57394, 134143], [57395, 139516],
+    [57396, 131813], [57397, 140592], [57398, 132494], [57399, 143923],
+    [57400, 137603], [23426, 57401], [34685, 57402], [57403, 132531],
+    [57404, 146585], [20914, 57405], [20920, 57406], [40244, 57407],
+    [20937, 57408], [20943, 57409], [20945, 57410], [15580, 57411],
+    [20947, 57412], [57413, 150182], [20915, 57414], 0, 0, [20973, 57417],
+    [33741, 57418], [26942, 57419], [57420, 145197], [24443, 57421],
+    [21003, 57422], [21030, 57423], [21052, 57424], [21173, 57425],
+    [21079, 57426], [21140, 57427], [21177, 57428], [21189, 57429],
+    [31765, 57430], [34114, 57431], [21216, 57432], [34317, 57433],
+    [57434, 158483], 0, [57436, 166622], [21833, 57437], [28377, 57438],
+    [57439, 147328], [57440, 133460], [57441, 147436], [21299, 57442], 0,
+    [57444, 134114], [27851, 57445], [57446, 136998], [26651, 57447],
+    [29653, 57448], [24650, 57449], [16042, 57450], [14540, 57451],
+    [57452, 136936], [29149, 57453], [17570, 57454], [21357, 57455],
+    [21364, 57456], [57457, 165547], [21374, 57458], 0, [57460, 136598],
+    [57461, 136723], [30694, 57462], [21395, 57463], [57464, 166555],
+    [21408, 57465], [21419, 57466], [21422, 57467], [29607, 57468],
+    [57469, 153458], [16217, 57470], [29596, 57471], [21441, 57472],
+    [21445, 57473], [27721, 57474], [20041, 57475], [22526, 57476],
+    [21465, 57477], [15019, 57478], [57479, 134031], [21472, 57480],
+    [57481, 147435], [57482, 142755], [21494, 57483], [57484, 134263],
+    [21523, 57485], [28793, 57486], [21803, 57487], [26199, 57488],
+    [27995, 57489], [21613, 57490], [57491, 158547], [57492, 134516],
+    [21853, 57493], [21647, 57494], [21668, 57495], [18342, 57496],
+    [57497, 136973], [57498, 134877], [15796, 57499], [57500, 134477],
+    [57501, 166332], [57502, 140952], [21831, 57503], [19693, 57504],
+    [21551, 57505], [29719, 57506], [21894, 57507], [21929, 57508], 0,
+    [57510, 137431], [57511, 147514], [17746, 57512], [57513, 148533],
+    [26291, 57514], [57515, 135348], [22071, 57516], [26317, 57517],
+    [57518, 144010], [26276, 57519], 0, [22093, 57521], [22095, 57522],
+    [30961, 57523], [22257, 57524], [38791, 57525], [21502, 57526],
+    [22272, 57527], [22255, 57528], [22253, 57529], [57530, 166758],
+    [13859, 57531], [57532, 135759], [22342, 57533], [57534, 147877],
+    [27758, 57535], [28811, 57536], [22338, 57537], [14001, 57538],
+    [57539, 158846], [22502, 57540], [57541, 136214], [22531, 57542],
+    [57543, 136276], [57544, 148323], [22566, 57545], [57546, 150517], 0,
+    [22698, 57548], [13665, 57549], [22752, 57550], [22748, 57551],
+    [57552, 135740], [22779, 57553], [23551, 57554], [22339, 57555],
+    [57556, 172368], [57557, 148088], [37843, 57558], [13729, 57559],
+    [22815, 57560], [26790, 57561], [14019, 57562], [28249, 57563],
+    [57564, 136766], [23076, 57565], 0, [57567, 136850], [34053, 57568],
+    [22985, 57569], [57570, 134478], [57571, 158849], [57572, 159018],
+    [57573, 137180], [23001, 57574], [57575, 137211], [57576, 137138],
+    [57577, 159142], [28017, 57578], [57579, 137256], [57580, 136917],
+    [23033, 57581], [57582, 159301], [23211, 57583], [23139, 57584],
+    [14054, 57585], [57586, 149929], 0, [14088, 57588], [23190, 57589],
+    [29797, 57590], [23251, 57591], [57592, 159649], [57593, 140628],
+    [57595, 137489], [14130, 57596], [57597, 136888], [24195, 57598],
+    [21200, 57599], [23414, 57600], [25992, 57601], [23420, 57602],
+    [57603, 162318], [16388, 57604], [18525, 57605], [57606, 131588],
+    [23509, 57607], [57609, 137780], [57610, 154060], [57611, 132517],
+    [23539, 57612], [23453, 57613], [19728, 57614], [23557, 57615],
+    [57616, 138052], [23571, 57617], [29646, 57618], [23572, 57619],
+    [57620, 138405], [57621, 158504], [23625, 57622], [18653, 57623],
+    [23685, 57624], [23785, 57625], [23791, 57626], [23947, 57627],
+    [57628, 138745], [57629, 138807], [23824, 57630], [23832, 57631],
+    [23878, 57632], [57633, 138916], [23738, 57634], [24023, 57635],
+    [33532, 57636], [14381, 57637], [57638, 149761], [57639, 139337],
+    [57640, 139635], [33415, 57641], [14390, 57642], [15298, 57643],
+    [24110, 57644], [27274, 57645], 0, 57647, [57648, 148668], [57649, 134355],
+    [21414, 57650], [20151, 57651], 0, [21416, 57653], [57654, 137073],
+    [24073, 57655], 57656, [57657, 164994], [24313, 57658], [24315, 57659],
+    [14496, 57660], [24316, 57661], [26686, 57662], [37915, 57663],
+    [24333, 57664], [57665, 131521], [57666, 194708], [15070, 57667],
+    [57669, 135994], [24378, 57670], [57671, 157832], [57672, 140240],
+    [57674, 140401], [24419, 57675], [57677, 159342], [24434, 57678],
+    [37696, 57679], [57680, 166454], [24487, 57681], [23990, 57682],
+    [15711, 57683], [57684, 152144], [57685, 139114], [57686, 159992],
+    [57687, 140904], [37334, 57688], [57689, 131742], [57690, 166441],
+    [24625, 57691], [26245, 57692], [14691, 57694], [15815, 57695],
+    [13881, 57696], [22416, 57697], [57698, 141236], [31089, 57699],
+    [15936, 57700], [24734, 57701], 0, 0, [57704, 149890], [57705, 149903],
+    [57706, 162387], [29860, 57707], [20705, 57708], [23200, 57709],
+    [24932, 57710], [24898, 57712], [57713, 194726], [57714, 159442],
+    [24961, 57715], [20980, 57716], [57717, 132694], [24967, 57718],
+    [23466, 57719], [57720, 147383], [57721, 141407], [25043, 57722],
+    [57723, 166813], [57724, 170333], [25040, 57725], [14642, 57726],
+    [57727, 141696], [57728, 141505], [24611, 57729], [24924, 57730],
+    [25886, 57731], [25483, 57732], [57733, 131352], [25285, 57734],
+    [57735, 137072], [25301, 57736], [57737, 142861], [25452, 57738],
+    [57739, 149983], [14871, 57740], [25656, 57741], [25592, 57742],
+    [57743, 136078], [57744, 137212], [28554, 57746], [57747, 142902], 0,
+    [57750, 153373], [25825, 57751], [25829, 57752], [38011, 57753],
+    [14950, 57754], [25658, 57755], [14935, 57756], [25933, 57757],
+    [28438, 57758], [57759, 150056], [57760, 150051], [25989, 57761],
+    [25965, 57762], [25951, 57763], 0, [26037, 57765], [57766, 149824],
+    [19255, 57767], [26065, 57768], [16600, 57769], [57770, 137257], 57771,
+    [26083, 57772], [24543, 57773], [57774, 144384], [26136, 57775],
+    [57776, 143863], [57777, 143864], [26180, 57778], [57779, 143780],
+    [57780, 143781], [26187, 57781], [57782, 134773], [26215, 57783],
+    [57784, 152038], [26227, 57785], 0, [57788, 143921], [57789, 165364],
+    [57790, 143816], [57791, 152339], [30661, 57792], [57793, 141559],
+    [39332, 57794], [26370, 57795], [57796, 148380], [57797, 150049],
+    [27130, 57799], [57800, 145346], 0, [26471, 57802], [26466, 57803],
+    [57804, 147917], [57805, 168173], [26583, 57806], [17641, 57807],
+    [26658, 57808], [28240, 57809], [37436, 57810], [26625, 57811],
+    [57812, 144358], [57813, 159136], [26717, 57814], [57815, 144495],
+    [27105, 57816], [27147, 57817], [57818, 166623], [26995, 57819],
+    [26819, 57820], [57821, 144845], [26881, 57822], [26880, 57823],
+    [14849, 57825], [57826, 144956], [15232, 57827], [26540, 57828],
+    [26977, 57829], [57830, 166474], [17148, 57831], [26934, 57832],
+    [27032, 57833], [15265, 57834], [57835, 132041], [33635, 57836],
+    [20624, 57837], [27129, 57838], [57839, 144985], [57840, 139562],
+    [27205, 57841], [57842, 145155], [27293, 57843], [15347, 57844],
+    [26545, 57845], [27336, 57846], [57847, 168348], [15373, 57848],
+    [27421, 57849], [57850, 133411], [24798, 57851, 60308], [27445, 57852],
+    [27508, 57853], [57854, 141261], [28341, 57855], [57856, 146139], 0,
+    [57858, 137560], [14144, 57859], [21537, 57860], [57861, 146266],
+    [27617, 57862], [57863, 147196], [27612, 57864], [27703, 57865],
+    [57866, 140427], [57867, 149745], [57868, 158545], [27738, 57869],
+    [33318, 57870], [27769, 57871], [57872, 146876], [17605, 57873],
+    [57874, 146877], [57875, 147876], [57876, 149772], [57877, 149760],
+    [57878, 146633], [14053, 57879], [15595, 57880], [57881, 134450],
+    [39811, 57882], [57883, 143865], [57884, 140433], [32655, 57885],
+    [26679, 57886], [57887, 159013], [57888, 159137], [57889, 159211],
+    [28054, 57890], [27996, 57891], [28284, 57892], [28420, 57893],
+    [57894, 149887], [57895, 147589], [57896, 159346], [34099, 57897],
+    [57898, 159604], [20935, 57899], 0, 0, [33838, 57902], [57903, 166689], 0,
+    [57905, 146991], [29779, 57906], [57907, 147330], [31180, 57908],
+    [28239, 57909], [23185, 57910], [57911, 143435], [28664, 57912],
+    [14093, 57913], [28573, 57914], [57915, 146992], [28410, 57916],
+    [57917, 136343], [57918, 147517], [17749, 57919], [37872, 57920],
+    [28484, 57921], [28508, 57922], [15694, 57923], [28532, 57924],
+    [57925, 168304], [15675, 57926], [28575, 57927], [57928, 147780],
+    [28627, 57929], [57930, 147601], [57931, 147797], [57932, 147513],
+    [57933, 147440], [57934, 147380], [57935, 147775], [20959, 57936],
+    [57937, 147798], [57938, 147799], [57939, 147776], [57940, 156125],
+    [28747, 57941], [28798, 57942], [28839, 57943], 0, [28876, 57945],
+    [28885, 57946], [28886, 57947], [28895, 57948], [16644, 57949],
+    [15848, 57950], [29108, 57951], [29078, 57952], [57953, 148087],
+    [28971, 57954], [28997, 57955], [23176, 57956], [29002, 57957], 0,
+    [57960, 148325], [29007, 57961], [37730, 57962], [57963, 148161],
+    [28972, 57964], [57965, 148570], [57966, 150055], [57967, 150050],
+    [29114, 57968], [57969, 166888], [28861, 57970], [29198, 57971],
+    [37954, 57972], [29205, 57973], [22801, 57974], [37955, 57975],
+    [29220, 57976], [37697, 57977], [57978, 153093], [29230, 57979],
+    [29248, 57980], [57981, 149876], [26813, 57982], [29269, 57983],
+    [29271, 57984], [15957, 57985], [57986, 143428], [26637, 57987],
+    [28477, 57988], [29314, 57989], 0, [29483, 57991], [57992, 149539],
+    [57993, 165931], [18669, 57994], [57995, 165892], [29480, 57996],
+    [29486, 57997], [29647, 57998], [29610, 57999], [58000, 134202],
+    [58001, 158254], [29641, 58002], [29769, 58003], [58004, 147938],
+    [58005, 136935], [58006, 150052], [26147, 58007], [14021, 58008],
+    [58009, 149943], [58010, 149901], [58011, 150011], [29687, 58012],
+    [29717, 58013], [26883, 58014], [58015, 150054], [29753, 58016],
+    [16087, 58018], 0, [58020, 141485], [29792, 58021], [58022, 167602],
+    [29767, 58023], [29668, 58024], [29814, 58025], [33721, 58026],
+    [29804, 58027], [29812, 58029], [37873, 58030], [27180, 58031],
+    [29826, 58032], [18771, 58033], [58034, 150156], [58035, 147807],
+    [58036, 150137], [58037, 166799], [23366, 58038], [58039, 166915],
+    [58040, 137374], [29896, 58041], [58042, 137608], [29966, 58043],
+    [29982, 58045], [58046, 167641], [58047, 137803], [23511, 58048],
+    [58049, 167596], [37765, 58050], [30029, 58051], [30026, 58052],
+    [30055, 58053], [30062, 58054], [58055, 151426], [16132, 58056],
+    [58057, 150803], [30094, 58058], [29789, 58059], [30110, 58060],
+    [30132, 58061], [30210, 58062], [30252, 58063], [30289, 58064],
+    [30287, 58065], [30319, 58066], 58067, [58068, 156661], [30352, 58069],
+    [33263, 58070], [14328, 58071], [58072, 157969], [58073, 157966],
+    [30369, 58074], [30373, 58075], [30391, 58076], [30412, 58077],
+    [58078, 159647], [33890, 58079], [58080, 151709], [58081, 151933],
+    [58082, 138780], [30494, 58083], [30502, 58084], [30528, 58085],
+    [25775, 58086], [58087, 152096], [30552, 58088], [58089, 144044],
+    [30639, 58090], [58091, 166244], [58092, 166248], [58093, 136897],
+    [30708, 58094], 0, [26826, 58098], [30895, 58099], [30919, 58100],
+    [30931, 58101], [38565, 58102], [31022, 58103], [58104, 153056],
+    [30935, 58105], [31028, 58106], [30897, 58107], [58108, 161292],
+    [36792, 58109], [34948, 58110], [58113, 140828], [31110, 58114],
+    [35072, 58115], [26882, 58116], [31104, 58117], [58118, 153687],
+    [31133, 58119], [58120, 162617], [31036, 58121], [31145, 58122],
+    [28202, 58123], [58124, 160038], [16040, 58125], [31174, 58126],
+    [58127, 168205], [31188, 58128], 0, [21797, 62526], 0, [62528, 134210],
+    [62529, 134421], [62530, 151851], [21904, 62531], [62532, 142534],
+    [14828, 62533], [62534, 131905], [36422, 62535], [62536, 150968],
+    [62537, 169189], 0, [62539, 164030], [30586, 62540], [62541, 142392],
+    [14900, 62542], [18389, 62543], [62544, 164189], [62545, 158194],
+    [62546, 151018], [25821, 62547], [62548, 134524], [62549, 135092],
+    [62550, 134357], 0, [25741, 62552], [36478, 62553], [62554, 134806], 0,
+    [62556, 135012], [62557, 142505], [62558, 164438], [62559, 148691], 0,
+    [62561, 134470], [62562, 170573], [62563, 164073], [18420, 62564],
+    [62565, 151207], [62566, 142530], [39602, 62567], [14951, 62568],
+    [62569, 169460], [16365, 62570], [13574, 62571], [62572, 152263],
+    [62573, 169940], 0, [62575, 142660], [40302, 62576], [38933, 62577], 0,
+    [17369, 62579], 0, [25780, 62581], [21731, 62582], 0, [62584, 142282], 0,
+    [14843, 62586], 0, [62588, 157402], [62589, 157462], [62590, 162208],
+    [25834, 62591], [62592, 151634], [62593, 134211], [36456, 62594], 0,
+    [62596, 166732], [62597, 132913], 0, [18443, 62599], [62600, 131497],
+    [16378, 62601], [22643, 62602], [62603, 142733], 0, [62605, 148936],
+    [62606, 132348], [62607, 155799], [62608, 134988], 0, [21881, 62610], 0,
+    [17338, 62612], 0, [19124, 62614], [62615, 141926], [62616, 135325],
+    [33194, 62617], [39157, 62618], [62619, 134556], [25465, 62620],
+    [14846, 62621], [62622, 141173], [36288, 62623], [22177, 62624],
+    [25724, 62625], [15939, 62626], 0, [62628, 173569], [62629, 134665],
+    [62630, 142031], 0, 0, [62633, 135368], [62634, 145858], [14738, 62635],
+    [14854, 62636], [62637, 164507], [13688, 62638], [62639, 155209],
+    [62640, 139463], 0, 0, [62643, 142514], [62644, 169760], [13500, 62645],
+    [27709, 62646], [62647, 151099], 0, 0, [62650, 161140], [62651, 142987],
+    [62652, 139784], [62653, 173659], [62654, 167117], [62655, 134778],
+    [62656, 134196], [62683, 161337], [62684, 142286], [62687, 142417],
+    [14872, 62689], [62691, 135367], [62693, 173618], [62695, 167122],
+    [62696, 167321], [62697, 167114], [38314, 62698], 0, [62706, 161630],
+    [28992, 62708], 0, [20822, 62385], 0, [20616, 62487], 0, [13459, 62489],
+    [20870, 62491], [24130, 63037], [20997, 62495], [21031, 62436],
+    [21113, 62497], 0, [13651, 62504], [21442, 62505], [21343, 62715], 0,
+    [21823, 62520], 0, [21976, 59986], [13789, 62722], [22049, 63067], 0,
+    [22100, 60044], [60148, 135291], 0, [60153, 135379], 0, [61095, 135934], 0,
+    0, [14265, 60104], [23745, 61099], [23829, 63066], [23894, 63030],
+    [14392, 63036], [20097, 62477], [24253, 63038], [14612, 63042],
+    [25017, 63050], [25232, 63054], [25368, 63056], [25690, 63063],
+    [25745, 62381], [33133, 62709], [33156, 59922], [33171, 59924],
+    [26624, 63080], [15292, 63093], [29327, 60517], [29389, 59781], 0,
+    [29497, 59785], [30018, 59811], [30172, 59817], [16320, 59818],
+    [60278, 151205], [16343, 59820], 0, 30336, [30348, 59824, 151388],
+    [16552, 59845], [30777, 59846], [16643, 59855], [31377, 59863],
+    [31771, 59876], [31981, 59884], [32659, 62658], [32686, 59892], 0,
+    [33535, 59936], [22623, 59981], [34482, 59960], 0, [34699, 59963],
+    [35143, 59969], 0, [35369, 59972], 0, [36465, 59988], [60484, 164233],
+    [36528, 59990], 0, [37214, 62443], [37260, 62441], [39182, 60051],
+    [39196, 60054], 0, 0, [39809, 60066], [40384, 60080], [40339, 60078],
+    [40620, 60085], [19857, 60540], 0, 37818, [40571, 60084], [28809, 63148],
+    [29512, 59788], 0, [31129, 59858], [36791, 59997], 0, [39234, 60056],
+    {s: 193}, 8364, {s: 4}, [12443, 63518], [12444, 63519], [11904, 63520],
+    {f: 5, c: 62211}, [62216, 131340], 62217, [62218, 131281], [62219, 131277],
+    {f: 2, c: 62220}, [62222, 131275], [62223, 139240], 62224, [62225, 131274],
+    {f: 4, c: 62226}, [62230, 131342], {f: 2, c: 62231}, {f: 2, c: 62776},
+    [62778, 138177], [62779, 194680], [12205, 38737, 62780], [62781, 131206],
+    [20059, 62782], [20155, 62783], [13630, 62784], [23587, 62785],
+    [24401, 62786], [24516, 62787], [14586, 62788], [25164, 62789],
+    [25909, 62790], [27514, 62791], [27701, 62792], [27706, 62793],
+    [28780, 62794], [29227, 62795], [20012, 62796], [29357, 62797],
+    [62798, 149737], [32594, 62799], [31035, 62800], [31993, 62801],
+    [32595, 62802], [62803, 156266], [13505, 62804], [62806, 156491],
+    [32770, 62807], [32896, 62808], [62809, 157202], [62810, 158033],
+    [21341, 62811], [34916, 62812], [35265, 62813], [62814, 161970],
+    [35744, 62815], [36125, 62816], [38021, 62817], [38264, 62818],
+    [38271, 62819], [38376, 62820], [62821, 167439], [38886, 62822],
+    [39029, 62823], [39118, 62824], [39134, 62825], [39267, 62826],
+    [62827, 170000], [40060, 62828], [40479, 62829], [40644, 62830],
+    [27503, 62831], [62832, 63751], [20023, 62833], [62834, 131207],
+    [38429, 62835], [25143, 62836], [38050, 62837], [11908, 63521],
+    [11910, 63522], [11911, 63523], [11912, 63524], [11914, 63525],
+    [11916, 63526], [11917, 63527], [11925, 63528], [11932, 63529],
+    [11941, 63531], [11943, 63532], [11946, 63533], [11948, 63534],
+    [11950, 63535], [11958, 63536], [11964, 63537], [11966, 63538],
+    [11978, 63540], [11980, 63541], [11981, 63542], [11983, 63543],
+    [11990, 63544], [11991, 63545], [11998, 63546], [62368, 172969],
+    [62369, 135493], [25866, 62371], [20029, 62374], [28381, 62375],
+    [40270, 62376], [37343, 62377], [62380, 161589], [20250, 62382],
+    [20264, 62383], [20392, 62384], [20852, 62386], [20892, 62387],
+    [20964, 62388], [21153, 62389], [21160, 62390], [21307, 62391],
+    [21326, 62392], [21457, 62393], [21464, 62394], [22242, 62395],
+    [22768, 62396], [22788, 62397], [22791, 62398], [22834, 62399],
+    [22836, 62400], [23398, 62401], [23454, 62402], [23455, 62403],
+    [23706, 62404], [24198, 62405], [24635, 62406], [25993, 62407],
+    [26622, 62408], [26628, 62409], [26725, 62410], [27982, 62411],
+    [28860, 62412], [30005, 62413], [32420, 62414], [32428, 62415],
+    [32442, 62416], [32455, 62417], [32463, 62418], [32479, 62419],
+    [32518, 62420], [32567, 62421], [33402, 62422], [33487, 62423],
+    [33647, 62424], [35270, 62425], [35774, 62426], [35810, 62427],
+    [36710, 62428], [36711, 62429], [36718, 62430], [29713, 62431],
+    [31996, 62432], [32205, 62433], [26950, 62434], [31433, 62435],
+    [30904, 62442], [32956, 62444], [36107, 62446], [33014, 62447],
+    [62448, 133607], [32927, 62451], [40647, 62452], [19661, 62453],
+    [40393, 62454], [40460, 62455], [19518, 62456], [62457, 171510],
+    [62458, 159758], [40458, 62459], [62460, 172339], [13761, 62461],
+    [28314, 62463], [33342, 62464], [29977, 62465], [18705, 62467],
+    [39532, 62468], [39567, 62469], [40857, 62470], [31111, 62471],
+    [62472, 164972], [62473, 138698], [62474, 132560], [62475, 142054],
+    [20004, 62476], [20096, 62478], [20103, 62479], [20159, 62480],
+    [20203, 62481], [20279, 62482], [13388, 62483], [20413, 62484],
+    [15944, 62485], [20483, 62486], [13437, 62488], [13477, 62490],
+    [22789, 62492], [20955, 62493], [20988, 62494], [20105, 62496],
+    [21136, 62498], [21287, 62499], [13767, 62500], [21417, 62501],
+    [13649, 62502], [21424, 62503], [21539, 62506], [13677, 62507],
+    [13682, 62508], [13953, 62509], [21651, 62510], [21667, 62511],
+    [21684, 62512], [21689, 62513], [21712, 62514], [21743, 62515],
+    [21784, 62516], [21795, 62517], [21800, 62518], [13720, 62519],
+    [13733, 62521], [13759, 62522], [21975, 62523], [13765, 62524],
+    [62525, 163204], [16467, 62538], [62551, 135412], [62555, 134155],
+    [62574, 161992], [62580, 155813], [62583, 142668], [62585, 135287],
+    [62587, 135279], [62595, 139681], [62609, 134550], [16571, 62611],
+    [62631, 142537], [22098, 62641], [62642, 134961], [62657, 157724],
+    [62659, 135375], [62660, 141315], [62661, 141625], [13819, 62662],
+    [62663, 152035], [62664, 134796], [62665, 135053], [62666, 134826],
+    [16275, 62667], [62668, 134960], [62669, 134471], [62670, 135503],
+    [62671, 134732], [62673, 134827], [62674, 134057], [62675, 134472],
+    [62676, 135360], [62677, 135485], [16377, 62678], [62679, 140950],
+    [25650, 62680], [62681, 135085], [62682, 144372], [62685, 134526],
+    [62686, 134527], [62688, 142421], [62690, 134808], [62692, 134958],
+    [62694, 158544], [21708, 62699], [33476, 62700], [21945, 62701],
+    [62703, 171715], [39974, 62704], [39606, 62705], [62707, 142830],
+    [33004, 62710], [23580, 62711], [62712, 157042], [33076, 62713],
+    [14231, 62714], [62716, 164029], [37302, 62717], [62718, 134906],
+    [62719, 134671], [62720, 134775], [62721, 134907], [62723, 151019],
+    [13833, 62724], [62725, 134358], [22191, 62726], [62727, 141237],
+    [62728, 135369], [62729, 134672], [62730, 134776], [62731, 135288],
+    [62732, 135496], [62733, 164359], [62734, 136277], [62735, 134777],
+    [62736, 151120], [62737, 142756], [23124, 62738], [62739, 135197],
+    [62740, 135198], [62741, 135413], [62742, 135414], [22428, 62743],
+    [62744, 134673], [62745, 161428], [62746, 164557], [62747, 135093],
+    [62748, 134779], [62749, 151934], [14083, 62750], [62751, 135094],
+    [62752, 135552], [62753, 152280], [62754, 172733], [62755, 149978],
+    [62756, 137274], [62757, 147831], [62758, 164476], [22681, 62759],
+    [21096, 62760], [13850, 62761], [62762, 153405], [31666, 62763],
+    [23400, 62764], [18432, 62765], [19244, 62766], [40743, 62767],
+    [18919, 62768], [39967, 62769], [39821, 62770], [62771, 154484],
+    [62772, 143677], [22011, 62773], [13810, 62774], [22153, 62775],
+    [23870, 63028], [23880, 63029], [15868, 63031], [14351, 63032],
+    [23972, 63033], [23993, 63034], [14368, 63035], [24357, 63039],
+    [24451, 63040], [14600, 63041], [14655, 63043], [14669, 63044],
+    [24791, 63045], [24893, 63046], [23781, 63047], [14729, 63048],
+    [25015, 63049], [25039, 63051], [14776, 63052], [25132, 63053],
+    [25317, 63055], [14840, 63057], [22193, 63058], [14851, 63059],
+    [25570, 63060], [25595, 63061], [25607, 63062], [14923, 63064],
+    [25792, 63065], [40863, 63068], [14999, 63069], [25990, 63070],
+    [15037, 63071], [26111, 63072], [26195, 63073], [15090, 63074],
+    [26258, 63075], [15138, 63076], [26390, 63077], [15170, 63078],
+    [26532, 63079], [15192, 63081], [26698, 63082], [26756, 63083],
+    [15218, 63084], [15217, 63085], [15227, 63086], [26889, 63087],
+    [26947, 63088], [29276, 63089], [26980, 63090], [27039, 63091],
+    [27013, 63092], [27094, 63094], [15325, 63095], [27237, 63096],
+    [27252, 63097], [27249, 63098], [27266, 63099], [15340, 63100],
+    [27289, 63101], [15346, 63102], [27307, 63103], [27317, 63104],
+    [27348, 63105], [27382, 63106], [27521, 63107], [27585, 63108],
+    [27626, 63109], [27765, 63110], [27818, 63111], [15563, 63112],
+    [27906, 63113], [27910, 63114], [27942, 63115], [28033, 63116],
+    [15599, 63117], [28068, 63118], [28081, 63119], [28181, 63120],
+    [28184, 63121], [28201, 63122], [28294, 63123], [63124, 166336],
+    [28347, 63125], [28386, 63126], [28378, 63127], [40831, 63128],
+    [28392, 63129], [28393, 63130], [28452, 63131], [28468, 63132],
+    [15686, 63133], [63134, 147265], [28545, 63135], [28606, 63136],
+    [15722, 63137], [15733, 63138], [29111, 63139], [23705, 63140],
+    [15754, 63141], [28716, 63142], [15761, 63143], [28752, 63144],
+    [28756, 63145], [28783, 63146], [28799, 63147], [63149, 131877],
+    [17345, 63150], [13809, 63151], [63152, 134872], [13902, 58134],
+    [15789, 58172], [58173, 154725], [26237, 58183], [31860, 58188],
+    [29837, 58197], [32402, 58215], [17667, 58232], [58260, 151480],
+    [58270, 133901], [58277, 158474], [13438, 58311], [58317, 143087],
+    [58325, 146613], [58343, 159385], [34673, 58364], [25537, 58385],
+    [30583, 58387], [35210, 58390], [58406, 147343], [35660, 58415],
+    [58440, 150729], [18730, 58464], [58471, 172052], [58472, 165564],
+    [58473, 165121], [15088, 58490], [28815, 58511], [58529, 140922],
+    [58637, 158120], [58646, 148043], [26760, 58662], [58664, 139611],
+    [40802, 58702], [37830, 58793], [58802, 131967], [37734, 58888],
+    [37519, 58901], [34324, 58954], [58986, 173147], [16784, 59010],
+    [26511, 59045], [26654, 59048], [14435, 59051], [59077, 149996],
+    [15129, 59128], [33942, 59176], [59241, 149858], [14818, 59254],
+    [33920, 59259], [17262, 59328], [38769, 59402], [39323, 59427],
+    [18733, 59499], [28439, 59703], [59704, 160009], [28838, 59746],
+    [59752, 150095], [32357, 59753], [23855, 59755], [15859, 59756],
+    [59758, 150109], [59759, 137183], [32164, 59760], [33830, 59761],
+    [21637, 59762], [59763, 146170], [59765, 131604], [22398, 59766],
+    [59767, 133333], [59768, 132633], [16357, 59769], [59770, 139166],
+    [59771, 172726], [28675, 59772], [59773, 168283], [23920, 59774],
+    [29583, 59775], [59777, 166489], [59778, 168992], [20424, 59779],
+    [32743, 59780], [29456, 59782], [29496, 59784], [29505, 59787],
+    [16041, 59789], [29173, 59792], [59793, 149746], [29665, 59794],
+    [16074, 59796], [16081, 59798], [29721, 59801], [29726, 59802],
+    [29727, 59803], [16098, 59804], [16112, 59805], [16116, 59806],
+    [16122, 59807], [29907, 59808], [16142, 59809], [16211, 59810],
+    [30061, 59812], [30066, 59813], [30093, 59814], [16252, 59815],
+    [30152, 59816], [30285, 59819], [30324, 59821], [16348, 59822],
+    [30330, 59823], [29064, 59825], [22051, 59826], [35200, 59827],
+    [16413, 59829], [30531, 59830], [16441, 59831], [16453, 59833],
+    [13787, 59834], [30616, 59835], [16490, 59836], [16495, 59837],
+    [30654, 59839], [30667, 59840], [30744, 59842], [30748, 59844],
+    [30791, 59847], [30801, 59848], [30822, 59849], [33864, 59850],
+    [59851, 152885], [31027, 59852], [31026, 59854], [16649, 59856],
+    [31121, 59857], [31238, 59860], [16743, 59862], [16818, 59864],
+    [31420, 59865], [33401, 59866], [16836, 59867], [31439, 59868],
+    [31451, 59869], [16847, 59870], [31586, 59872], [31596, 59873],
+    [31611, 59874], [31762, 59875], [16992, 59877], [17018, 59878],
+    [31867, 59879], [31900, 59880], [17036, 59881], [31928, 59882],
+    [17044, 59883], [36755, 59885], [28864, 59886], [59887, 134351],
+    [32207, 59888], [32212, 59889], [32208, 59890], [32253, 59891],
+    [32692, 59893], [29343, 59894], [17303, 59895], [32800, 59896],
+    [32805, 59897], [32814, 59899], [32817, 59900], [32852, 59901],
+    [22452, 59903], [28832, 59904], [32951, 59905], [33001, 59906],
+    [17389, 59907], [33036, 59908], [33038, 59910], [33042, 59911],
+    [33044, 59913], [17409, 59914], [15161, 59915], [33110, 59916],
+    [33113, 59917], [33114, 59918], [17427, 59919], [33148, 59921],
+    [17445, 59923], [17453, 59925], [33189, 59926], [22511, 59927],
+    [33217, 59928], [33252, 59929], [33364, 59930], [17551, 59931],
+    [33398, 59933], [33482, 59934], [33496, 59935], [17584, 59937],
+    [33623, 59938], [38505, 59939], [33797, 59941], [28917, 59942],
+    [33892, 59943], [33928, 59945], [17668, 59946], [33982, 59947],
+    [34017, 59948], [34040, 59949], [34064, 59950], [34104, 59951],
+    [34130, 59952], [17723, 59953], [34159, 59954], [34160, 59955],
+    [34272, 59956], [17783, 59957], [34418, 59958], [34450, 59959],
+    [34543, 59961], [38469, 59962], [17926, 59964], [17943, 59965],
+    [34990, 59966], [35071, 59967], [35108, 59968], [35217, 59970],
+    [59971, 162151], [35384, 59973], [35476, 59974], [35508, 59975],
+    [35921, 59976], [36052, 59977], [36082, 59978], [36124, 59979],
+    [18328, 59980], [36291, 59982], [18413, 59983], [36410, 59985],
+    [22356, 59987], [22005, 59989], [18487, 59991], [36558, 59992],
+    [36578, 59993], [36580, 59994], [36589, 59995], [36594, 59996],
+    [36801, 59998], [36810, 59999], [36812, 60000], [36915, 60001],
+    [18605, 60003], [39136, 60004], [37395, 60005], [18718, 60006],
+    [37416, 60007], [37464, 60008], [37483, 60009], [37553, 60010],
+    [37550, 60011], [37567, 60012], [37603, 60013], [37611, 60014],
+    [37619, 60015], [37620, 60016], [37629, 60017], [37699, 60018],
+    [37764, 60019], [37805, 60020], [18757, 60021], [18769, 60022],
+    [37911, 60024], [37917, 60026], [37933, 60027], [37950, 60028],
+    [18794, 60029], [37972, 60030], [38009, 60031], [38189, 60032],
+    [38306, 60033], [18855, 60034], [38388, 60035], [38451, 60036],
+    [18917, 60037], [18980, 60039], [38720, 60040], [18997, 60041],
+    [38834, 60042], [38850, 60043], [19172, 60045], [39097, 60047],
+    [19225, 60048], [39153, 60049], [22596, 60050], [39193, 60052],
+    [39223, 60055], [39261, 60057], [39266, 60058], [19312, 60059],
+    [39365, 60060], [19357, 60061], [39484, 60062], [39695, 60063],
+    [39785, 60065], [39901, 60067], [39921, 60068], [39924, 60069],
+    [19565, 60070], [39968, 60071], [14191, 60072], [60073, 138178],
+    [40265, 60074], [40702, 60076], [22096, 60077], [40381, 60079],
+    [40444, 60081], [38134, 60082], [36790, 60083], [40625, 60086],
+    [40637, 60087], [40646, 60088], [38108, 60089], [40674, 60090],
+    [40689, 60091], [40696, 60092], [40772, 60094], [60095, 131220],
+    [60096, 131767], [60097, 132000], [38083, 60099], [60101, 132311],
+    [38081, 60103], [60105, 132565], [60106, 132629], [60107, 132726],
+    [60108, 136890], [22359, 60109], [29043, 60110], [60111, 133826],
+    [60112, 133837], [60113, 134079], [60115, 194619], [60116, 134091],
+    [21662, 60117], [60118, 134139], [60119, 134203], [60120, 134227],
+    [60121, 134245], [60122, 134268], [60124, 134285], [60126, 134325],
+    [60127, 134365], [60128, 134381], [60129, 134511], [60130, 134578],
+    [60131, 134600], [60135, 134660], [60136, 134670], [60137, 134871],
+    [60138, 135056], [60139, 134957], [60140, 134771], [60142, 135100],
+    [60144, 135260], [60145, 135247], [60146, 135286], [60149, 135304],
+    [60150, 135318], [13895, 60151], [60152, 135359], [60154, 135471],
+    [60155, 135483], [21348, 60156], [60158, 135907], [60159, 136053],
+    [60160, 135990], [60162, 136567], [60163, 136729], [60164, 137155],
+    [60165, 137159], [28859, 60167], [60168, 137261], [60169, 137578],
+    [60170, 137773], [60171, 137797], [60172, 138282], [60173, 138352],
+    [60174, 138412], [60175, 138952], [60177, 138965], [60178, 139029],
+    [29080, 60179], [60181, 139333], [27113, 60182], [14024, 60183],
+    [60184, 139900], [60185, 140247], [60186, 140282], [60187, 141098],
+    [60188, 141425], [60189, 141647], [60191, 141671], [60192, 141715],
+    [60193, 142037], [60195, 142056], [60197, 142094], [60199, 142143],
+    [60202, 142412], [60204, 142472], [60205, 142519], [60206, 154600],
+    [60207, 142600], [60208, 142610], [60209, 142775], [60210, 142741],
+    [60211, 142914], [60212, 143220], [60213, 143308], [60214, 143411],
+    [60215, 143462], [60216, 144159], [60217, 144350], [60222, 144743],
+    [60223, 144883], [60227, 144922], [60228, 145174], [22709, 60231],
+    [60234, 146087], [60237, 146961], [60238, 147129], [60243, 147737],
+    [60245, 148206], [60246, 148237], [60248, 148276], [60249, 148374],
+    [60258, 148484], [60259, 148694], [22408, 60260], [60261, 149108],
+    [60263, 149295], [60271, 149522], [60272, 149755], [60273, 150037],
+    [60275, 150208], [22885, 60277], [60279, 151430], [60282, 151596],
+    [22335, 60284], [60286, 152217], [60287, 152601], [60291, 152646],
+    [60292, 152686], [60296, 152895], [60298, 152926], [60300, 152930],
+    [60301, 152934], [60302, 153543], [60304, 153693], [60309, 153859],
+    [60312, 154286], [60313, 154505], [60314, 154630], [22433, 60316],
+    [29009, 60317], [60319, 155906], [60322, 156082], [60325, 156674],
+    [60326, 156746], [60330, 156804], [60334, 156808], [60336, 156946],
+    [60338, 157119], [60339, 157365], [22201, 60347], [60349, 157436],
+    [13848, 60355], [60357, 157593], [60358, 157806], [60360, 157790],
+    [60362, 157895], [60366, 157990], [60368, 158009], [60371, 158202],
+    [60373, 158253], [60378, 158260], [60379, 158555], [60383, 158621],
+    [60385, 158884], [60388, 159150], [60392, 159819], [60393, 160205],
+    [60395, 160384], [60396, 160389], [60399, 160395], [60401, 160486],
+    [38047, 60404], [60405, 160848], [14009, 60416], [60424, 161740],
+    [60425, 161880], [22230, 60426], [60435, 162269], [60441, 162301],
+    [60442, 162314], [60443, 162571], [60444, 163174], [60448, 163849],
+    [60459, 163875], [60463, 163912], [60466, 163971], [60479, 163984],
+    [60480, 164084], [60481, 164142], [60483, 164175], [60485, 164271],
+    [60486, 164378], [60487, 164614], [60488, 164655], [60489, 164746],
+    [60491, 164968], [60492, 165546], [25574, 60494], [60495, 166230],
+    [60498, 166328], [60500, 166375], [60502, 166376], [60503, 166726],
+    [60504, 166868], [60506, 166921], [60508, 167877], [60509, 168172],
+    [60511, 168208], [60512, 168252], [15863, 60513], [60514, 168286],
+    [60515, 150218], [36816, 60516], [60519, 169191], [60521, 169392],
+    [60522, 169400], [60523, 169778], [60524, 170193], [60525, 170313],
+    [60526, 170346], [60527, 170435], [60528, 170536], [60529, 170766],
+    [60530, 171354], [60531, 171419], [32415, 60532], [60533, 171768],
+    [60534, 171811], [19620, 60535], [38215, 60536], [60537, 172691],
+    [29090, 60538], [60539, 172799], [60542, 173515], [19868, 60543],
+    [60544, 134300], [36798, 60545], [36794, 60547], [60548, 140464],
+    [36793, 60549], [60550, 150163], [20202, 60555], [60557, 166700],
+    [36480, 60560], [60561, 137205], [60563, 166764], [60564, 166809],
+    [60566, 157359], [60568, 161365], [60570, 153141], [60571, 153942],
+    [20122, 60572], [60573, 155265], [60576, 134765], [60579, 147080],
+    [60580, 150686], [60583, 137206], [60584, 137339], [60587, 154698],
+    [60589, 152337], [15814, 60590], [60596, 155352], [19996, 60600],
+    [60601, 135146], [60602, 134473], [60603, 145082], [60638, 151880],
+    [21982, 60644], [34694, 60672], [60676, 135361], [60679, 149254],
+    [23440, 60680], [60682, 157843], [60684, 141044], [60685, 163119],
+    [60686, 147875], [60687, 163187], [60688, 159440], [60689, 160438],
+    [60691, 135641], [60693, 146684], [60694, 173737], [60695, 134828],
+    [60698, 138402], [60700, 151490], [60702, 135147], [60706, 142752],
+    [60710, 135148], [60711, 134666], [60714, 135149], [60717, 135559],
+    [19994, 60721], [19972, 60722], [23309, 60724], [13996, 60727],
+    [21373, 60729], [13989, 60730], [22682, 60732], [60733, 150382],
+    [22442, 60736], [60737, 154261], [60738, 133497], [60741, 140389],
+    [60746, 146686], [60747, 171824], [60749, 151465], [60750, 169374],
+    [60753, 146870], [60755, 157619], [60756, 145184], [60759, 147191],
+    [60760, 146988], [60785, 143578], [60789, 135849], [22439, 60790],
+    [60791, 149859], [60794, 159918], [60801, 137068], [60806, 160100],
+    [60809, 159010], [60810, 150242], [39963, 60837], [60838, 149822],
+    [15878, 60846], [60881, 159011], [60887, 132092], [60891, 146685],
+    [60893, 149785], [22394, 60904], [21722, 60912], [29050, 60928],
+    [60949, 150135], [60955, 166490], [60962, 194624], [60976, 137275],
+    [61000, 155993], [61014, 144373], [61019, 166850], [61024, 138566],
+    [61054, 159441], [13877, 61065], [61084, 166701], [21024, 61088],
+    [15384, 61089], [61090, 146631], [61091, 155351], [61092, 161366],
+    [61093, 152881], [61094, 137540], [61096, 170243], [61097, 159196],
+    [61098, 159917], [61100, 156077], [61101, 166415], [61102, 145015],
+    [61103, 131310], [61104, 157766], [61105, 151310], [17762, 61106],
+    [23327, 61107], [61108, 156492], [40784, 61109], [40614, 61110],
+    [61111, 156267], [20962, 57415], [21314, 57416], [26285, 57520],
+    [22620, 57547], [21843, 57566], [15749, 57594], [24928, 57608],
+    [18606, 57668], [38845, 57676], [57693, 137335], [24755, 57703],
+    [33828, 57711], [38932, 57748], [57749, 147596], [57764, 143486],
+    [57787, 138813], [15147, 57798], [15666, 57824], [57857, 132021],
+    [28801, 57944], [23708, 57959], [58017, 132547], [14128, 58028],
+    [58096, 136054], [58097, 150034], [58111, 166699], [58112, 155779],
+    [256, 62233], [193, 62234], [461, 62235], [192, 62236], [274, 62237],
+    [201, 62238], [282, 62239], [200, 62240], [332, 62241], [211, 62242],
+    [465, 62243], [210, 62244], 62245, [7870, 62246], 62247, [7872, 62248],
+    [202, 62249], [257, 62250], [225, 62251], [462, 62252], [224, 62253],
+    [593, 62254], [275, 62255], [233, 62256], [283, 62257], [232, 62258],
+    [299, 62259], [237, 62260], [464, 62261], [236, 62262], [333, 62263],
+    [243, 62264], [466, 62265], [242, 62266], [363, 62267], [250, 62268],
+    [468, 62269], [249, 62270], [470, 62271], [472, 62272], [474, 62273],
+    [476, 62274], [252, 62275], 62276, [7871, 62277], 62278, [7873, 62279],
+    [234, 62280], [609, 62281], [643, 63551], [592, 63552], [603, 63553],
+    [596, 63554], [629, 63555], [339, 63556], [248, 63557], [331, 63558],
+    [650, 63559], [618, 63560], {f: 2, c: 62282}, [11933, 63530],
+    [11974, 63539], [12003, 63547], 20539, 28158, [62841, 171123], 62842,
+    [15817, 62843], 34959, [62845, 147790], 28791, 23797, [19232, 62848],
+    [62849, 152013], [13657, 62850], [62851, 154928], 24866, [62853, 166450],
+    36775, 37366, 29073, 26393, 29626, [62859, 144001], [62860, 172295],
+    [15499, 62861], [62862, 137600], [19216, 62863], 30948, 29698, 20910,
+    [62867, 165647], [16393, 62868], 27235, [62870, 172730], [16931, 62871],
+    34319, 31274, [62875, 170311], [62876, 166634], 38741, 28749, 21284,
+    [62880, 139390], 37876, 30425, [62883, 166371], 62884, 30685, 20131, 20464,
+    20668, 20015, 20247, 62891, 21556, 32139, 22674, 22736, [62896, 138678],
+    24210, 24217, 24514, [62900, 141074], 25995, [62902, 144377], 26905, 27203,
+    [62905, 146531], 27903, 29184, [62909, 148741], 29580, [16091, 62911],
+    [62912, 150035], 23317, 29881, 35715, [62916, 154788], [62917, 153237],
+    31379, 31724, 31939, 32364, 33528, 34199, 62924, 34960, 62926, 36537,
+    62928, 36815, 34143, 39392, 37409, 62933, [62934, 167353], [62935, 136255],
+    [16497, 62936], [17058, 62937], 23066, 39016, 26475, [17014, 62944], 22333,
+    34262, [62948, 149883], 33471, [62950, 160013], [19585, 62951],
+    [62952, 159092], 23931, [62954, 158485], [62955, 159678], {f: 2, c: 62956},
+    23446, 62959, 32347],
+  'Adobe-GB1': [{f: 95, c: 32}, {f: 3, c: 12288}, [183, 12539], 713, 711, 168,
+    12291, 12293, 8212, 65374, 8214, [8230, 8943], {f: 2, c: 8216},
+    {f: 2, c: 8220}, {f: 2, c: 12308}, {f: 8, c: 12296}, {f: 2, c: 12310},
+    {f: 2, c: 12304}, 177, 215, 247, 8758, {f: 2, c: 8743}, 8721, 8719, 8746,
+    8745, 8712, 8759, 8730, 8869, 8741, 8736, 8978, 8857, 8747, 8750, 8801,
+    8780, 8776, 8765, 8733, 8800, {f: 2, c: 8814}, {f: 2, c: 8804}, 8734, 8757,
+    8756, 9794, 9792, 176, {f: 2, c: 8242}, 8451, 65284, 164, {f: 2, c: 65504},
+    8240, 167, 8470, 9734, 9733, 9675, 9679, 9678, 9671, 9670, 9633, 9632,
+    9651, 9650, 8251, 8594, {f: 2, c: 8592}, 8595, 12307, {f: 20, c: 9352},
+    {f: 20, c: 9332}, {f: 10, c: 9312}, {f: 10, c: 12832}, {f: 12, c: 8544},
+    {f: 3, c: 65281}, 65509, {f: 89, c: 65285}, 65507, {f: 83, c: 12353},
+    {f: 86, c: 12449}, {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945},
+    {f: 7, c: 963}, {f: 7, c: 59277}, {f: 2, c: 65077}, {f: 2, c: 65081},
+    {f: 2, c: 65087}, {f: 2, c: 65085}, {f: 4, c: 65089}, {f: 2, c: 59284},
+    {f: 2, c: 65083}, {f: 2, c: 65079}, 65073, 59286, {f: 2, c: 65075},
+    {f: 6, c: 1040}, 1025, {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, 257, 225,
+    462, 224, 275, 233, 283, 232, 299, 237, 464, 236, 333, 243, 466, 242, 363,
+    250, 468, 249, 470, 472, 474, 476, 252, 234, 593, 7743, 324, 328, 505, 609,
+    {f: 37, c: 12549}, 0, {f: 76, c: 9472}, {s: 126}, 21834, 38463, 22467,
+    25384, 21710, 21769, 21696, 30353, 30284, 34108, 30702, 33406, 30861,
+    29233, 38552, 38797, 27688, 23433, 20474, 25353, 26263, 23736, 33018,
+    26696, 32942, 26114, 30414, 20985, 25942, 29100, 32753, 34948, 20658,
+    22885, 25034, 28595, 33453, 25420, 25170, 21485, 21543, 31494,
+    [12043, 20843], 30116, 24052, 25300, 36299, 38774, 25226, 32793, 22365,
+    38712, 32610, 29240, [12137, 30333], 26575, 30334, 25670, 20336, 36133,
+    25308, 31255, 26001, 29677, 25644, 25203, 33324, 39041, 26495, 29256,
+    25198, 25292, 20276, 29923, 21322, 21150, 32458, 37030, 24110, 26758,
+    27036, 33152, 32465, 26834, 30917, 34444, 38225, 20621, 35876, 33502,
+    32990, 21253, 35090, 21093, 34180, 38649, 20445, 22561, 39281, 23453,
+    25265, 25253, 26292, 35961, 40077, 29190, 26479, 30865, 24754, 21329,
+    21271, 36744, 32972, 36125, 38049, 20493, 29384, 22791, 24811, 28953,
+    34987, 22868, 33519, 26412, 31528, 23849, 32503, 29997, 27893, 36454,
+    36856, 36924, [12240, 40763], [12112, 27604], 37145, 31508, 24444, 30887,
+    34006, 34109, 27605, 27609, 27606, 24065, 24199, 30201, 38381, 25949,
+    24330, 24517, 36767, 22721, 33218, 36991, 38491, 38829, 36793, 32534,
+    36140, 25153, 20415, 21464, 21342, {f: 2, c: 36776}, 36779, 36941, 26631,
+    24426, 33176, 34920, 40150, 24971, 21035, 30250, 24428, 25996, 28626,
+    28392, 23486, 25672, 20853, 20912, 26564, 19993, 31177, 39292, 28851,
+    30149, 24182, 29627, 33760, 25773, 25320, 38069, 27874, 21338, 21187,
+    25615, 38082, 31636, 20271, 24091, 33334, 33046, 33162, 28196, 27850,
+    39539, 25429, [12056, 21340], 21754, 34917, 22496, 19981, 24067, 27493,
+    31807, 37096, 24598, 25830, 29468, 35009, 26448, 25165, 36130, 30572,
+    36393, 37319, 24425, 33756, 34081, 39184, 21442, 34453, 27531, 24813,
+    24808, 28799, 33485, 33329, 20179, 27815, 34255, 25805, 31961, 27133,
+    26361, 33609, 21397, 31574, 20391, 20876, 27979, 23618, 36461, 25554,
+    21449, 33580, 33590, 26597, 30900, 25661, 23519, 23700, 24046, 35815,
+    25286, 26612, 35962, 25600, 25530, 34633, 39307, 35863, 32544, 38130,
+    20135, 38416, 39076, 26124, 29462, 22330, 23581, 24120, 38271, 20607,
+    32928, [12058, 21378], 25950, 30021, 21809, 20513, 36229, 25220, 38046,
+    26397, 22066, 28526, 24034, 21557, 28818, 36710, 25199, 25764, 25507,
+    24443, 28552, 37108, [12162, 33251], [12192, 36784], 23576, 26216, 24561,
+    27785, 38472, 36225, 34924, 25745, 31216, 22478, 27225, 25104, 21576,
+    20056, 31243, 24809, 28548, 35802, 25215, 36894, 39563, 31204, 21507,
+    30196, 25345, 21273, 27744, 36831, 24347, 39536, 32827, 40831, 20360,
+    23610, [12186, 36196], 32709, 26021, 28861, 20805, 20914, [12173, 34411],
+    23815, 23456, 25277, 37228, 30068, 36364, 31264, 24833, 31609, 20167,
+    32504, 30597, 19985, 33261, 21021, 20986, 27249, 21416, 36487, 38148,
+    38607, 28353, 38500, 26970, 30784, 20648, 30679, 25616, 35302, 22788,
+    25571, 24029, 31359, 26941, 20256, 33337, 21912, 20018, 30126, 31383,
+    24162, 24202, 38383, 21019, 21561, 28810, 25462, 38180, 22402, 26149,
+    26943, 37255, 21767, 28147, 32431, 34850, 25139, 32496, 30133, 33576,
+    30913, 38604, 36766, 24904, 29943, 35789, 27492, 21050, 36176, 27425,
+    32874, 33905, 22257, 21254, 20174, 19995, 20945, 31895, 37259, 31751,
+    20419, 36479, 31713, 31388, 25703, 23828, 20652, 33030, 30209, 31929,
+    28140, 32736, 26449, 23384, [12072, 23544], 30923, 25774, 25619, 25514,
+    25387, 38169, 25645, 36798, 31572, 30249, 25171, [12068, 22823], 21574,
+    [12109, 27513], 20643, 25140, 24102, 27526, 20195, 36151, 34955, 24453,
+    36910, 24608, 32829, 25285, 20025, 21333, 37112, 25528, 32966, 26086,
+    27694, 20294, 24814, 28129, 35806, 24377, 34507, 24403, 25377, 20826,
+    33633, 26723, [12049, 20992], 25443, 36424, 20498, 23707, 31095, 23548,
+    21040, 31291, 24764, 36947, 30423, 24503, 24471, 30340, 36460, 28783,
+    30331, 31561, 30634, 20979, 37011, 22564, 20302, 28404, 36842, 25932,
+    31515, 29380, 28068, 32735, 23265, 25269, 24213, 22320, 33922, 31532,
+    24093, 24351, 36882, 32532, 39072, 25474, 28359, 30872, 28857, 20856,
+    38747, 22443, 30005, 20291, 30008, 24215, 24806, 22880, 28096, 27583,
+    30857, 21500, 38613, 20939, 20993, 25481, 21514, 38035, 35843, 36300,
+    29241, 30879, 34678, 36845, 35853, 21472, 19969, 30447, 21486, 38025,
+    39030, [12237, 40718], 38189, 23450, 35746, 20002, 19996, 20908, 33891,
+    25026, 21160, 26635, 20375, 24683, 20923, 27934, 20828, 25238,
+    [12099, 26007], 38497, [12182, 35910], 36887, 30168, 37117, 30563, 27602,
+    29322, 29420, 35835, 22581, 30585, 36172, 26460, 38208, 32922, 24230,
+    28193, 22930, 31471, 30701, 38203, 27573, 26029, 32526, 22534, 20817,
+    38431, 23545, 22697, 21544, 36466, 25958, 39039, 22244, 38045, 30462,
+    36929, 25479, 21702, 22810, 22842, 22427, 36530, 26421, 36346, 33333,
+    21057, 24816, 22549, 34558, 23784, 40517, 20420, 39069, 35769, 23077,
+    24694, 21380, 25212, 36943, 37122, 39295, 24681, [12157, 32780],
+    [12041, 20799], [12159, 32819], 23572, 39285, 27953, [12038, 20108], 36144,
+    21457, 32602, 31567, 20240, 20047, 38400, 27861, 29648, 34281, 24070,
+    30058, 32763, 27146, 30718, 38034, 32321, 20961, 28902, 21453, 36820,
+    33539, 36137, 29359, 39277, 27867, 22346, 33459, [12101, 26041], 32938,
+    25151, 38450, 22952, 20223, 35775, 32442, 25918, 33778, [12206, 38750],
+    21857, 39134, 32933, 21290, 35837, 21536, 32954, 24223, 27832, 36153,
+    33452, 37210, 21545, 27675, 20998, 32439, 22367, 28954, 27774, 31881,
+    22859, 20221, 24575, 24868, 31914, 20016, 23553, 26539, 34562, 23792,
+    38155, 39118, 30127, 28925, 36898, 20911, 32541, 35773, 22857, 20964,
+    20315, 21542, 22827, 25975, 32932, 23413, 25206, 25282, 36752, 24133,
+    27679, 31526, 20239, 20440, 26381, 28014, 28074, 31119, 34993, 24343,
+    29995, 25242, 36741, 20463, 37340, 26023, 33071, 33105, 24220, 33104,
+    36212, 21103, 35206, 36171, 22797, 20613, 20184, [12201, 38428],
+    [12119, 29238], 33145, 36127, 23500, 35747, 38468, 22919, 32538, 21648,
+    22134, 22030, 35813, 25913, 27010, 38041, 30422, 28297, [12082, 24178],
+    [12130, 29976], 26438, 26577, 31487, 32925, 36214, 24863, 31174, 25954,
+    36195, 20872, 21018, 38050, 32568, 32923, 32434, 23703, 28207, 26464,
+    31705, 30347, [12220, 39640], 33167, 32660, 31957, 25630, 38224, 31295,
+    21578, 21733, 27468, 25601, [12093, 25096], 40509, 33011, 30105, 21106,
+    [12208, 38761], 33883, 26684, 34532, 38401, 38548, 38124, 20010, 21508,
+    32473, 26681, 36319, 32789, 26356, 24218, 32697, 22466, 32831, 26775,
+    [12079, 24037], 25915, 21151, 24685, 40858, 20379, 36524, 20844, 23467,
+    [12088, 24339], 24041, 27742, 25329, 36129, 20849, 38057, 21246, 27807,
+    33503, 29399, 22434, 26500, 36141, 22815, 36764, 33735, 21653, 31629,
+    20272, 27837, 23396, 22993, [12238, 40723], 21476, 34506, [12219, 39592],
+    [12181, 35895], 32929, 25925, 39038, 22266, 38599, 21038, [12128, 29916],
+    21072, 23521, 25346, 35074, 20054, 25296, 24618, 26874, 20851, 23448,
+    20896, 35266, 31649, 39302, 32592, 24815, 28748, 36143, 20809,
+    [12084, 24191], 36891, 29808, 35268, 22317, 30789, 24402, 40863, 38394,
+    36712, [12225, 39740], 35809, 30328, 26690, 26588, 36330, 36149, 21053,
+    36746, 28378, 26829, 38149, 37101, 22269, 26524, 35065, 36807, 21704,
+    39608, 23401, 28023, 27686, 20133, 23475, 39559, 37219, 25000, 37039,
+    38889, 21547, 28085, 23506, 20989, 21898, 32597, 32752, 25788, 25421,
+    26097, 25022, 24717, 28938, 27735, 27721, 22831, 26477, 33322, 22741,
+    22158, 35946, 27627, 37085, 22909, 32791, 21495, 28009, 21621, 21917,
+    33655, 33743, 26680, [12146, 31166], 21644, 20309, 21512, 30418, 35977,
+    38402, 27827, 28088, 36203, 35088, 40548, 36154, 22079, [12234, 40657],
+    30165, 24456, 29408, 24680, 21756, 20136, 27178, 34913, 24658, 36720,
+    21700, 28888, 34425, 40511, 27946, 23439, 24344, 32418, 21897, 20399,
+    29492, 21564, 21402, 20505, 21518, 21628, 20046, 24573, 29786, 22774,
+    33899, 32993, 34676, 29392, 31946, 28246, 24359, 34382, 21804, 25252,
+    20114, 27818, 25143, 33457, 21719, 21326, 29502, 28369, 30011, 21010,
+    21270, 35805, 27088, 24458, 24576, 28142, 22351, 27426, 29615, 26707,
+    36824, 32531, 25442, 24739, 21796, 30186, 35938, 28949, 28067, 23462,
+    24187, 33618, 24908, 40644, 30970, 34647, 31783, 30343, 20976, 24822,
+    29004, 26179, 24140, 24653, 35854, 28784, 25381, 36745, 24509, 24674,
+    34516, 22238, 27585, 24724, 24935, 21321, 24800, 26214, 36159, 31229,
+    20250, 28905, 27719, 35763, 35826, 32472, 33636, 26127, 23130, 39746,
+    27985, 28151, 35905, 27963, 20249, [12117, 28779], 33719, 25110, 24785,
+    38669, 36135, 31096, 20987, 22334, 22522, 26426, 30072, 31293, 31215,
+    31637, 32908, 39269, 36857, 28608, 35749, 40481, 23020, 32489, 32521,
+    21513, 26497, 26840, 36753, 31821, 38598, 21450, 24613, 30142, 27762,
+    21363, 23241, 32423, 25380, [12047, 20960], 33034, [12080, 24049], 34015,
+    25216, 20864, 23395, 20238, 31085, 21058, 24760, 27982, 23492, 23490,
+    35745, 35760, 26082, 24524, 38469, 22931, 32487, 32426, 22025, 26551,
+    22841, 20339, 23478, 21152, 33626, 39050, 36158, 30002, 38078, 20551,
+    31292, 20215, 26550, 39550, 23233, 27516, 30417, 22362, 23574, 31546,
+    38388, 29006, 20860, 32937, 33392, 22904, 32516, 33575, 26816, 26604,
+    30897, 30839, 25315, 25441, 31616, 20461, 21098, 20943, 33616, 27099,
+    37492, 36341, 36145, 35265, 38190, 31661, 20214, 20581, 33328, 21073,
+    39279, 28176, 28293, 28071, 24314, 20725, 23004, 23558, 27974, 27743,
+    30086, 33931, 26728, 22870, 35762, 21280, 37233, 38477, 34121, 26898,
+    30977, 28966, 33014, 20132, 37066, 27975, 39556, 23047, 22204, 25605,
+    38128, 30699, 20389, 33050, 29409, [12179, 35282], 39290, 32564, 32478,
+    21119, 25945, 37237, 36735, 36739, 21483, 31382, 25581, 25509, 30342,
+    31224, 34903, 38454, 25130, 21163, 33410, 26708, 26480, 25463, 30571,
+    31469, 27905, 32467, 35299, 22992, 25106, 34249, 33445, 30028, 20511,
+    20171, 30117, 35819, 23626, [12081, 24062], 31563, [12100, 26020],
+    [12198, 37329], 20170, 27941, 35167, 32039, 38182, 20165, 35880, 36827,
+    38771, 26187, 31105, 36817, 28908, 28024, 23613, 21170, 33606, 20834,
+    33550, 30555, 26230, 40120, 20140, 24778, 31934, 31923, 32463, 20117,
+    35686, 26223, 39048, 38745, 22659, 25964, 38236, 24452, 30153, 38742,
+    31455, 31454, 20928, 28847, 31384, 25578, 31350, 32416, 29590,
+    [12210, 38893], 20037, 28792, 20061, 37202, 21417, 25937, 26087,
+    [12165, 33276], 33285, 21646, 23601, 30106, 38816, 25304, 29401, 30141,
+    23621, 39545, 33738, 23616, 21632, 30697, 20030, 27822, 32858, 25298,
+    25454, 24040, 20855, 36317, 36382, 38191, 20465, 21477, 24807, 28844,
+    21095, 25424, 40515, 23071, 20518, 30519, 21367, 32482, 25733, 25899,
+    25225, 25496, 20500, 29237, 35273, 20915, 35776, 32477, 22343, 33740,
+    38055, 20891, 21531, 23803, 20426, 31459, 27994, 37089, 39567, 21888,
+    21654, 21345, 21679, 24320, 25577, 26999, 20975, 24936, 21002, 22570,
+    21208, 22350, 30733, 30475, 24247, 24951, 31968, 25179, 25239, 20130,
+    28821, 32771, 25335, 28900, 38752, 22391, 33499, 26607, 26869, 30933,
+    39063, 31185, 22771, 21683, 21487, 28212, 20811, 21051, 23458, 35838,
+    32943, 21827, 22438, 24691, 22353, 21549, 31354, 24656, 23380, 25511,
+    25248, [12061, 21475], 25187, 23495, 26543, 21741, 31391, 33510, 37239,
+    24211, 35044, 22840, 22446, 25358, 36328, 33007, 22359, 31607, 20393,
+    24555, 23485, 27454, 21281, 31568, 29378, 26694, 30719, 30518, 26103,
+    20917, 20111, 30420, 23743, 31397, 33909, 22862, 39745, 20608, 39304,
+    24871, 28291, 22372, 26118, 25414, 22256, 25324, 25193, 24275, 38420,
+    22403, 25289, 21895, 34593, 33098, 36771, 21862, 33713, 26469, 36182,
+    34013, 23146, 26639, 25318, 31726, 38417, 20848, 28572, 35888, 25597,
+    35272, 25042, 32518, 28866, 28389, 29701, 27028, 29436, 24266, 37070,
+    26391, 28010, 25438, 21171, 29282, [12156, 32769], 20332, 23013, 37226,
+    28889, 28061, 21202, 20048, 38647, 38253, 34174, 30922, 32047, 20769,
+    22418, 25794, 32907, 31867, 27882, 26865, 26974, 20919, 21400, 26792,
+    29313, 40654, 31729, 29432, 31163, 28435, 29702, 26446, [12197, 37324],
+    40100, 31036, 33673, 33620, 21519, 26647, 20029, 21385, 21169, 30782,
+    21382, 21033, 20616, 20363, 20432, 30178, [12148, 31435], 31890, 27813,
+    [12202, 38582], [12050, 21147], 29827, 21737, 20457, 32852, 33714, 36830,
+    38256, 24265, 24604, 28063, 24088, 25947, 33080, 38142, 24651, 28860,
+    32451, 31918, 20937, 26753, 31921, 33391, 20004, 36742, 37327, 26238,
+    20142, 35845, 25769, 32842, 20698, 30103, 29134, 23525, 36797, 28518,
+    20102, 25730, 38243, 24278, 26009, 21015, 35010, 28872, 21155, 29454,
+    29747, 26519, 30967, 38678, 20020, 37051, 40158, 28107, 20955, 36161,
+    21533, 25294, 29618, 33777, 38646, 40836, 38083, 20278, 32666, 20940,
+    28789, 38517, 23725, 39046, 21478, 20196, 28316, 29705, 27060, 30827,
+    39311, 30041, 21016, 30244, 27969, 26611, 20845, 40857, 32843, 21657,
+    31548, 31423, 38534, 22404, 25314, 38471, 27004, 23044, 25602, 31699,
+    28431, 38475, 33446, 21346, 39045, 24208, 28809, 25523, 21348, 34383,
+    40065, 40595, 30860, 38706, 36335, 36162, [12229, 40575], 28510, 31108,
+    24405, 38470, 25134, 39540, 21525, 38109, 20387, 26053, 23653, 23649,
+    32533, 34385, 27695, 24459, 29575, 28388, 32511, 23782, 25371, 23402,
+    28390, 21365, 20081, 25504, 30053, 25249, 36718, 20262, 20177, 27814,
+    32438, 35770, 33821, 34746, 32599, 36923, 38179, 31657, 39585, 35064,
+    33853, 27931, 39558, 32476, 22920, [12231, 40635], 29595, 30721, 34434,
+    39532, 39554, 22043, 21527, 22475, 20080, 40614, 21334, 36808, 33033,
+    30610, 39314, 34542, 28385, 34067, 26364, 24930, 28459, 35881, 33426,
+    33579, 30450, 27667, 24537, 33725, 29483, 33541, 38170, [12113, 27611],
+    [12141, 30683], 38086, 21359, 33538, 20882, 24125, 35980, 36152, 20040,
+    29611, 26522, 26757, 37238, 38665, 29028, 27809, 30473, 23186, 38209,
+    27599, 32654, 26151, 23504, 22969, 23194, 38376, 38391, 20204, 33804,
+    33945, 27308, 30431, 38192, 29467, 26790, 23391, 30511, 37274, 38753,
+    31964, 36855, 35868, 24357, [12150, 31859], 31192, 35269, 27852, 34588,
+    23494, 24130, 26825, 30496, 32501, 20885, 20813, 21193, 23081, 32517,
+    [12207, 38754], 33495, 25551, 30596, 34256, 31186, 28218, 24217, 22937,
+    34065, 28781, 27665, 25279, [12139, 30399], 25935, 24751, 38397, 26126,
+    34719, 40483, 38125, 21517, 21629, 35884, {f: 2, c: 25720}, 34321, 27169,
+    33180, 30952, 25705, 39764, 25273, 26411, 33707, 22696, 40664, 27819,
+    28448, 23518, 38476, 35851, 29279, 26576, 25287, 29281, 20137, 22982,
+    27597, 22675, 26286, 24149, 21215, 24917, [12106, 26408], [12140, 30446],
+    30566, 29287, 31302, 25343, 21738, 21584, 38048, 37027, 23068, 32435,
+    27670, 20035, 22902, 32784, 22856, 21335, 30007, 38590, 22218, 25376,
+    33041, 24700, 38393, 28118, 21602, 39297, 20869, 23273, 33021, 22958,
+    38675, 20522, 27877, 23612, 25311, 20320, 21311, 33147, 36870, 28346,
+    34091, 25288, 24180, 30910, 25781, 25467, 24565, 23064, 37247, 40479,
+    23615, 25423, 32834, 23421, 21870, 38218, 38221, 28037, 24744, 26592,
+    29406, 20957, 23425, 25319, 27870, [12124, 29275], 25197, 38062, 32445,
+    33043, 27987, 20892, 24324, 22900, 21162, 24594, [12069, 22899], 26262,
+    34384, 30111, 25386, 25062, 31983, 35834, 21734, 27431, 40485, 27572,
+    34261, 21589, 20598, 27812, 21866, 36276, 29228, 24085, 24597, 29750,
+    25293, 25490, 29260, 24472, 28227, 27966, 25856, 28504, 30424, 30928,
+    30460, 30036, 21028, 21467, 20051, 24222, 26049, 32810, 32982, 25243,
+    21638, 21032, 28846, 34957, 36305, 27873, 21624, 32986, 22521, 35060,
+    36180, 38506, 37197, 20329, 27803, 21943, 30406, 30768, 25256, 28921,
+    28558, 24429, 34028, 26842, 30844, 31735, 33192, 26379, 40527, 25447,
+    30896, 22383, 30738, 38713, 25209, 25259, 21128, 29749, 27607, 21860,
+    33086, 30130, [12138, 30382], 21305, 30174, 20731, 23617, 35692, 31687,
+    20559, [12122, 29255], 39575, 39128, 28418, 29922, 31080, 25735, 30629,
+    25340, 39057, 36139, 21697, 32856, 20050, 22378, 33529, 33805, 24179,
+    20973, 29942, 35780, 23631, 22369, 27900, 39047, 23110, 30772, 39748,
+    36843, 31893, 21078, 25169, 38138, 20166, 33670, 33889, 33769, 33970,
+    22484, 26420, 22275, 26222, 28006, 35889, 26333, 28689, 26399, 27450,
+    26646, 25114, 22971, 19971, 20932, 28422, 26578, 27791, 20854, 26827,
+    22855, 27495, 30054, 23822, 33040, 40784, 26071, 31048, 31041, 39569,
+    36215, 23682, 20062, 20225, 21551, 22865, 30732, 22120, [12115, 27668],
+    36804, 24323, 27773, 27875, 35755, 25488, 24688, 27965, 29301, 25190,
+    38030, 38085, 21315, 36801, 31614, 20191, 35878, 20094, 40660, 38065,
+    38067, 21069, 28508, 36963, 27973, 35892, 22545, 23884, [12107, 27424],
+    27465, 26538, 21595, 33108, 32652, 22681, 34103, 24378, 25250, 27207,
+    38201, 25970, 24708, 26725, 30631, 20052, 20392, 24039, 38808, 25772,
+    32728, 23789, 20431, 31373, 20999, 33540, 19988, 24623, 31363, 38054,
+    20405, 20146, 31206, 29748, 21220, 33465, 25810, 31165, 23517, 27777,
+    38738, 36731, 27682, 20542, 21375, 28165, 25806, 26228, 27696, 24773,
+    39031, 35831, 24198, 29756, 31351, 31179, 19992, 37041, 29699, 27714,
+    22234, 37195, 27845, 36235, 21306, 34502, 26354, 36527, 23624, 39537,
+    28192, 21462, 23094, 40843, 36259, 21435, 22280, 39079, 26435, 37275,
+    27849, 20840, 30154, 25331, [12125, 29356], 21048, 21149, 32570, 28820,
+    30264, 21364, 40522, 27063, 30830, 38592, 35033, 32676, 28982, 29123,
+    20873, 26579, 29924, 22756, 25880, 22199, 35753, 39286, 25200, 32469,
+    24825, 28909, 22764, 20161, [12040, 20154], 24525, 38887, 20219, 35748,
+    20995, 22922, 32427, 25172, 20173, [12103, 26085], 25102, 33592, 33993,
+    33635, 34701, 29076, 28342, 23481, 32466, 20887, 25545, 26580,
+    [12161, 32905], 33593, 34837, 20754, 23418, 22914, 36785, 20083, 27741,
+    [12042, 20837], 35109, 36719, 38446, 34122, 29790, 38160, 38384, 28070,
+    33509, 24369, 25746, 27922, 33832, 33134, 40131, 22622, 36187, 19977,
+    21441, 20254, 25955, 26705, 21971, 20007, 25620, 39578, 25195, 23234,
+    29791, [12170, 33394], 28073, 26862, 20711, 33678, 30722, 26432, 21049,
+    27801, 32433, 20667, 21861, 29022, 31579, 26194, 29642, 33515, 26441,
+    [12077, 23665], 21024, 29053, 34923, 38378, 38485, 25797, 36193, 33203,
+    21892, 27733, 25159, 32558, 22674, 20260, 21830, 36175, 26188, 19978,
+    23578, 35059, 26786, 25422, 31245, 28903, 33421, 21242, 38902, 23569,
+    21736, 37045, 32461, 22882, 36170, 34503, [12166, 33292], 33293, 36198,
+    25668, 23556, 24913, 28041, 31038, 35774, 30775, 30003, 21627, 20280,
+    [12189, 36523], 28145, 23072, 32453, 31070, 27784, 23457, 23158, 29978,
+    32958, 24910, 28183, 22768, [12131, 29983], 29989, 29298, 21319, 32499,
+    30465, 30427, 21097, 32988, 22307, 24072, 22833, 29422, 26045, 28287,
+    35799, [12075, 23608], 34417, [12055, 21313], [12143, 30707], 25342, 26102,
+    20160, [12215, 39135], 34432, 23454, 35782, 21490, [12142, 30690], 20351,
+    23630, 39542, 22987, 24335, [12144, 31034], [12064, 22763], 19990, 26623,
+    20107, 25325, 35475, 36893, 21183, 26159, 21980, 22124, 36866, 20181,
+    20365, 37322, 39280, [12114, 27663], 24066, 24643, 23460, 35270, 35797,
+    25910, [12095, 25163], [12216, 39318], 23432, 23551, 25480, 21806, 21463,
+    30246, 20861, 34092, 26530, 26803, 27530, 25234, 36755, 21460, 33298,
+    28113, 30095, 20070, 36174, 23408, 29087, 34223, 26257, 26329, 32626,
+    34560, [12233, 40653], [12239, 40736], 23646, 26415, 36848, 26641, 26463,
+    25101, 31446, 22661, 24246, 25968, 28465, 24661, 21047, 32781, 25684,
+    34928, 29993, 24069, 26643, 25332, 38684, 21452, 29245, 35841,
+    [12116, 27700], 30561, 31246, 21550, 30636, 39034, 33308, 35828, 30805,
+    26388, 28865, 26031, 25749, 22070, 24605, 31169, 21496, 19997, 27515,
+    32902, 23546, 21987, 22235, 20282, 20284, 39282, 24051, 26494, 32824,
+    24578, 39042, 36865, 23435, 35772, 35829, 25628, 33368, 25822, 22013,
+    33487, 37221, 20439, 32032, 36895, 31903, 20723, 22609, 28335, 23487,
+    35785, 32899, 37240, 33948, 31639, 34429, 38539, 38543, 32485, 39635,
+    30862, 23681, 31319, 36930, 38567, 31071, 23385, 25439, 31499, 34001,
+    26797, 21766, 32553, 29712, 32034, 38145, 25152, 22604, 20182, 23427,
+    22905, 22612, 29549, 25374, 36427, 36367, 32974, 33492, 25260, 21488,
+    27888, 37214, 22826, 24577, 27760, 22349, 25674, 36138, 30251, 28393,
+    22363, 27264, 30192, 28525, 35885, 35848, 22374, 27631, 34962, 30899,
+    25506, 21497, 28845, 27748, 22616, 25642, 22530, 26848, 33179, 21776,
+    31958, 20504, 36538, 28108, 36255, 28907, 25487, 28059, 28372, 32486,
+    33796, 26691, 36867, 28120, 38518, 35752, 22871, 29305, 34276, 33150,
+    30140, 35466, 26799, 21076, 36386, 38161, 25552, 39064, 36420, 21884,
+    20307, 26367, 22159, 24789, 28053, 21059, 23625, 22825, 28155, 22635,
+    [12133, 30000], 29980, 24684, 33300, 33094, 25361, 26465, 36834, 30522,
+    36339, 36148, 38081, 24086, 21381, 21548, 28867, 27712, 24311, 20572,
+    20141, 24237, 25402, 33351, 36890, 26704, 37230, 30643, 21516, 38108,
+    24420, 31461, 26742, 25413, 31570, 32479, 30171, 20599, 25237, 22836,
+    36879, 20984, 31171, 31361, 22270, 24466, 36884, 28034, 23648,
+    [12063, 22303], 21520, 20820, 28237, 22242, 25512, 39059, 33151, 34581,
+    35114, 36864, 21534, 23663, 33216, 25302, 25176, 33073, 40501, 38464,
+    39534, 39548, 26925, 22949, 25299, 21822, 25366, 21703, 34521, 27964,
+    23043, [12129, 29926], 34972, 27498, 22806, 35916, 24367, 28286, 29609,
+    39037, 20024, 28919, 23436, 30871, 25405, 26202, 30358, 24779, 23451,
+    23113, 19975, 33109, 27754, 29579, 20129, 26505, [12153, 32593], 24448,
+    26106, 26395, 24536, 22916, 23041, 24013, 24494, 21361, 38886, 36829,
+    26693, 22260, 21807, 24799, 20026, 28493, 32500, 33479, 33806, 22996,
+    20255, 20266, 23614, 32428, 26410, 34074, 21619, 30031, 32963, 21890,
+    39759, 20301, 28205, 35859, 23561, 24944, 21355, 30239, 28201, 34442,
+    [12098, 25991], 38395, 32441, 21563, 31283, 32010, 38382, 21985, 32705,
+    29934, 25373, 34583, 28065, 31389, 25105, 26017, 21351, 25569, 27779,
+    24043, 21596, 38056, 20044, 27745, 35820, 23627, [12102, 26080], 33436,
+    26791, 21566, 21556, [12111, 27595], 27494, 20116, 25410, 21320, 33310,
+    20237, 20398, 22366, 25098, 38654, 26212, 29289, 21247, 21153, 24735,
+    35823, 26132, 29081, 26512, 35199, 30802, 30717, 26224, 22075, 21560,
+    38177, 29306, 31232, 24687, 24076, 24713, 33181, [12067, 22805], 24796,
+    29060, 28911, 28330, 27728, 29312, 27268, 34989, 24109, 20064, 23219,
+    21916, 38115, 27927, 31995, 38553, 25103, 32454, 30606, 34430, 21283,
+    38686, 36758, 26247, 23777, 20384, 29421, 19979, 21414, 22799, 21523,
+    25472, 38184, 20808, 20185, 40092, 32420, 21688, 36132, 34900, 33335,
+    38386, 28046, 24358, 23244, 26174, 38505, 29616, 29486, 21439, 33146,
+    39301, 32673, 23466, 38519, 38480, 32447, 30456, 21410, 38262,
+    [12217, 39321], 31665, 35140, 28248, 20065, 32724, 31077, 35814, 24819,
+    21709, 20139, 39033, 24055, 27233, 20687, 21521, 35937, 33831, 30813,
+    38660, 21066, 21742, 22179, 38144, 28040, 23477, 28102, 26195,
+    [12073, 23567], 23389, 26657, 32918, 21880, 31505, 25928, 26964, 20123,
+    27463, 34638, 38795, 21327, 25375, 25658, 37034, 26012, 32961, 35856,
+    20889, 26800, 21368, 34809, 25032, 27844, 27899, 35874, 23633, 34218,
+    33455, 38156, 27427, [12191, 36763], 26032, 24571, [12092, 24515], 20449,
+    34885, 26143, 33125, 29481, 24826, 20852, 21009, 22411, 24418, 37026,
+    [12175, 34892], 37266, 24184, 26447, 24615, 22995, 20804, 20982, 33016,
+    21256, 27769, 38596, 29066, 20241, 20462, 32670, 26429, 21957, 38152,
+    31168, 34966, 32483, 22687, 25100, 38656, 34394, 22040, 39035, 24464,
+    35768, 33988, 37207, 21465, 26093, 24207, 30044, 24676, 32110, 23167,
+    32490, 32493, 36713, 21927, 23459, 24748, 26059, [12126, 29572], 36873,
+    30307, 30505, 32474, 38772, 34203, 23398, [12147, 31348], 38634,
+    [12174, 34880], 21195, 29071, 24490, 26092, 35810, 23547, 39535, 24033,
+    27529, 27739, 35757, 35759, 36874, 36805, 21387, 25276, 40486, 40493,
+    21568, 20011, 33469, [12123, 29273], 34460, 23830, 34905, 28079, 38597,
+    21713, 20122, 35766, 28937, 21693, 38409, 28895, 28153, 30416, 20005,
+    30740, 34578, 23721, 24310, [12180, 35328], 39068, 38414, 28814, 27839,
+    22852, 25513, 30524, 34893, 28436, 33395, 22576, 29141, 21388, 30746,
+    38593, 21761, 24422, 28976, 23476, 35866, 39564, 27523, 22830, 40495,
+    31207, 26472, 25196, 20335, 30113, [12154, 32650], 27915, 38451, 27687,
+    20208, 30162, 20859, 26679, 28478, 36992, 33136, 22934, 29814, 25671,
+    23591, 36965, 31377, 35875, 23002, 21676, 33280, 33647, 35201, 32768,
+    26928, 22094, 32822, 29239, 37326, 20918, 20063, 39029, 25494, 19994,
+    21494, 26355, 33099, 22812, 28082, [12032, 19968], 22777, 21307, 25558,
+    38129, 20381, 20234, [12176, 34915], 39056, 22839, 36951, 31227, 20202,
+    33008, 30097, 27778, 23452, 23016, 24413, 26885, 34433, 20506, 24050,
+    [12036, 20057], 30691, 20197, 33402, 25233, 26131, [12194, 37009], 23673,
+    20159, 24441, 33222, 36920, 32900, 30123, 20134, 35028, 24847, 27589,
+    24518, 20041, 30410, 28322, 35811, 35758, 35850, 35793, 24322, 32764,
+    32716, 32462, 33589, 33643, 22240, 27575, [12211, 38899], 38452, 23035,
+    21535, 38134, 28139, 23493, 39278, 23609, 24341, 38544, 21360, 33521,
+    27185, 23156, 40560, 24212, 32552, 33721, {f: 2, c: 33828}, 33639, 34631,
+    36814, 36194, 30408, 24433, 39062, 30828, 26144, 21727, 25317, 20323,
+    33219, 30152, 24248, 38605, 36362, 34553, 21647, 27891, 28044, 27704,
+    24703, 21191, [12132, 29992], 24189, 20248, 24736, 24551, 23588, 30001,
+    37038, 38080, 29369, 27833, 28216, [12195, 37193], 26377, 21451, 21491,
+    20305, 37321, 35825, [12060, 21448], 24188, 36802, 28132, 20110, 30402,
+    27014, 34398, 24858, 33286, 20313, 20446, 36926, 40060, 24841, 28189,
+    28180, 38533, 20104, 23089, [12204, 38632], 19982, 23679, 31161, 23431,
+    35821, [12155, 32701], [12127, 29577], 22495, 33419, 37057, 21505, 36935,
+    21947, 23786, 24481, 24840, 27442, 29425, 32946, 35465, 28020, 23507,
+    35029, 39044, 35947, 39533, 40499, 28170, 20900, 20803, 22435, 34945,
+    21407, 25588, 36757, 22253, 21592, 22278, 29503, 28304, 32536, 36828,
+    33489, 24895, 24616, 38498, [12104, 26352], 32422, 36234, 36291, 38053,
+    23731, 31908, [12105, 26376], 24742, 38405, 32792, 20113, 37095, 21248,
+    38504, 20801, 36816, 34164, 37213, 26197, 38901, 23381, 21277, 30776,
+    26434, 26685, 21705, 28798, 23472, 36733, 20877, 22312, 21681, 25874,
+    26242, 36190, 36163, 33039, 33900, 36973, 31967, 20991, 34299, 26531,
+    26089, 28577, 34468, 36481, 22122, 36896, 30338, 28790, 29157, 36131,
+    25321, 21017, 27901, 36156, 24590, 22686, 24974, 26366, 36192, 25166,
+    21939, 28195, 26413, 36711, 38113, 38392, 30504, 26629, 27048, 21643,
+    20045, 28856, 35784, 25688, 25995, 23429, 31364, 20538, 23528, 30651,
+    27617, 35449, 31896, 27838, 30415, 26025, 36759, 23853, 23637, 34360,
+    26632, 21344, 25112, 31449, 28251, 32509, 27167, 31456, 24432, 28467,
+    24352, 25484, 28072, 26454, 19976, 24080, 36134, 20183, 32960, 30260,
+    38556, 25307, 26157, 25214, 27836, 36213, 29031, 32617, 20806, 32903,
+    21484, 36974, 25240, 21746, 34544, 36761, 32773, 38167, 34071, 36825,
+    27993, 29645, 26015, 30495, 29956, 30759, 33275, 36126, 38024, 20390,
+    26517, 30137, 35786, 38663, 25391, 38215, 38453, 33976, 25379, 30529,
+    24449, 29424, 20105, 24596, 25972, 25327, 27491, 25919, 24103, 30151,
+    37073, 35777, 33437, 26525, [12096, 25903], 21553, 34584, 30693, 32930,
+    33026, 27713, 20043, 32455, 32844, 30452, 26893, 27542, 25191, 20540,
+    20356, 22336, 25351, [12108, 27490], 36286, 21482, 26088, 32440, 24535,
+    25370, 25527, [12164, 33267], 33268, 32622, 24092, 23769, 21046, 26234,
+    31209, 31258, 36136, 28825, 30164, 28382, 27835, 31378, 20013, 30405,
+    24544, 38047, 34935, 32456, 31181, 32959, 37325, 20210, 20247,
+    [12168, 33311], 21608, 24030, 27954, 35788, 31909, 36724, 32920, 24090,
+    21650, 30385, 23449, 26172, 39588, 29664, 26666, 34523, 26417, 29482,
+    35832, 35803, 36880, [12149, 31481], 28891, 29038, 25284, 30633, 22065,
+    20027, 33879, 26609, 21161, 34496, 36142, 38136, 31569, 20303, 27880,
+    31069, 39547, 25235, [12118, 29226], 25341, 19987, 30742, 36716, 25776,
+    36186, 31686, 26729, 24196, 35013, 22918, 25758, 22766, 29366, 26894,
+    38181, 36861, 36184, 22368, 32512, 35846, 20934, 25417, 25305, 21331,
+    26700, 29730, 33537, 37196, 21828, 30528, 28796, 27978, 20857, 21672,
+    36164, 23039, 28363, 28100, 23388, 32043, 20180, 31869, 28371,
+    [12070, 23376], [12163, 33258], 28173, 23383, 39683, 26837, 36394, 23447,
+    32508, 24635, 32437, 37049, [12187, 36208], 22863, 25549, 31199,
+    [12188, 36275], 21330, 26063, 31062, 35781, 38459, 32452, 38075, 32386,
+    22068, 37257, 26368, 32618, 23562, 36981, 26152, 24038, 20304, 26590,
+    20570, 20316, 22352, 24231, 20109, 19980, 20800, 19984, 24319, 21317,
+    19989, 20120, 19998, [12224, 39730], 23404, 22121, [12033, 20008], 31162,
+    [12035, 20031], [12052, 21269], 20039, 22829, [12120, 29243], 21358, 27664,
+    22239, 32996, 39319, 27603, 30590, 40727, [12034, 20022], 20127, 40720,
+    20060, 20073, 20115, 33416, 23387, 21868, 22031, 20164, 21389, 21405,
+    21411, 21413, 21422, 38757, 36189, [12053, 21274], 21493, 21286, 21294,
+    21310, 36188, 21350, 21347, 20994, 21000, 21006, 21037, 21043,
+    {f: 2, c: 21055}, 21068, 21086, 21089, 21084, 33967, 21117, 21122, 21121,
+    21136, 21139, [12044, 20866], 32596, 20155, 20163, 20169, 20162, 20200,
+    20193, 20203, 20190, 20251, 20211, 20258, 20324, 20213, 20261, 20263,
+    20233, 20267, 20318, 20327, 25912, 20314, 20317, 20319, 20311, 20274,
+    20285, 20342, 20340, 20369, 20361, 20355, 20367, 20350, 20347, 20394,
+    20348, 20396, 20372, 20454, 20456, 20458, 20421, 20442, 20451, 20444,
+    20433, 20447, 20472, 20521, 20556, 20467, 20524, 20495, 20526, 20525,
+    20478, 20508, 20492, 20517, 20520, 20606, 20547, 20565, 20552, 20558,
+    20588, 20603, 20645, 20647, 20649, 20666, 20694, 20742, 20717, 20716,
+    20710, 20718, 20743, 20747, 20189, 27709, 20312, 20325, 20430,
+    [12245, 40864], 27718, 31860, 20846, 24061, 40649, 39320, 20865, 22804,
+    [12051, 21241], 21261, 35335, 21264, 20971, 22809, 20821, [12039, 20128],
+    20822, 20147, 34926, 34980, 20149, 33044, 35026, 31104, 23348, 34819,
+    32696, [12046, 20907], 20913, 20925, 20924, 20935, [12045, 20886], 20898,
+    20901, 35744, {f: 2, c: 35750}, 35754, {f: 2, c: 35764}, 35767,
+    {f: 2, c: 35778}, 35787, 35791, 35790, {f: 3, c: 35794}, 35798,
+    {f: 2, c: 35800}, 35804, {f: 2, c: 35807}, 35812, {f: 2, c: 35816}, 35822,
+    35824, 35827, 35830, 35833, 35836, {f: 2, c: 35839}, 35842, 35844, 35847,
+    35852, 35855, {f: 2, c: 35857}, {f: 3, c: 35860}, 35865, 35867, 35864,
+    35869, {f: 3, c: 35871}, 35877, 35879, {f: 2, c: 35882}, {f: 2, c: 35886},
+    {f: 2, c: 35890}, {f: 2, c: 35893}, [12057, 21353], 21370, 38429, 38434,
+    38433, 38449, 38442, 38461, 38460, 38466, 38473, 38484, 38495, 38503,
+    38508, 38514, 38516, 38536, 38541, 38551, 38576, 37015, 37019, 37021,
+    37017, 37036, 37025, 37044, 37043, 37046, 37050, 37048, 37040, 37071,
+    37061, 37054, 37072, 37060, 37063, 37075, 37094, 37090, 37084, 37079,
+    37083, 37099, 37103, 37118, 37124, 37154, 37150, 37155, 37169, 37167,
+    37177, 37187, 37190, 21005, 22850, 21154, {f: 2, c: 21164}, 21182, 21759,
+    21200, 21206, 21232, 21471, 29166, 30669, [12085, 24308], [12048, 20981],
+    20988, [12223, 39727], [12059, 21430], 24321, 30042, 24047, 22348, 22441,
+    22433, 22654, 22716, 22725, 22737, 22313, 22316, 22314, 22323, 22329,
+    {f: 2, c: 22318}, 22364, 22331, 22338, 22377, 22405, 22379, 22406, 22396,
+    22395, 22376, 22381, 22390, 22387, 22445, 22436, 22412, 22450, 22479,
+    22439, 22452, 22419, 22432, 22485, 22488, 22490, 22489, 22482, 22456,
+    22516, 22511, 22520, 22500, 22493, 22539, 22541, 22525, 22509, 22528,
+    22558, 22553, 22596, 22560, 22629, 22636, 22657, 22665, 22682, 22656,
+    39336, 40729, 25087, 33401, 33405, 33407, 33423, 33418, 33448, 33412,
+    33422, 33425, 33431, 33433, 33451, 33464, 33470, 33456, 33480, 33482,
+    33507, 33432, 33463, 33454, {f: 2, c: 33483}, 33473, 33449, 33460, 33441,
+    33450, 33439, 33476, 33486, 33444, 33505, 33545, 33527, 33508, 33551,
+    33543, 33500, 33524, 33490, 33496, 33548, 33531, 33491, 33553, 33562,
+    33542, {f: 2, c: 33556}, 33504, 33493, 33564, 33617, {f: 2, c: 33627},
+    33544, 33682, 33596, 33588, 33585, 33691, 33630, 33583, 33615, 33607,
+    33603, 33631, 33600, 33559, 33632, 33581, 33594, 33587, 33638, 33637,
+    33640, 33563, 33641, 33644, 33642, {f: 2, c: 33645}, 33712, 33656,
+    {f: 2, c: 33715}, 33696, 33706, 33683, 33692, 33669, 33660, 33718, 33705,
+    33661, 33720, 33659, 33688, 33694, 33704, 33722, 33724, 33729, 33793,
+    33765, 33752, 22535, 33816, 33803, 33757, 33789, 33750, 33820, 33848,
+    33809, 33798, 33748, 33759, 33807, 33795, {f: 2, c: 33784}, 33770, 33733,
+    33728, 33830, 33776, 33761, 33884, 33873, 33882, 33881, 33907,
+    {f: 2, c: 33927}, 33914, 33929, 33912, 33852, 33862, 33897, 33910, 33932,
+    33934, 33841, 33901, 33985, 33997, 34000, 34022, 33981, 34003, 33994,
+    33983, 33978, 34016, 33953, 33977, 33972, 33943, 34021, 34019, 34060,
+    29965, 34104, 34032, 34105, 34079, 34106, 34134, 34107, 34047, 34044,
+    34137, 34120, 34152, 34148, 34142, 34170, 30626, 34115, 34162, 34171,
+    34212, 34216, 34183, 34191, 34169, 34222, 34204, 34181, 34233, 34231,
+    34224, 34259, 34241, 34268, 34303, 34343, 34309, 34345, 34326, 34364,
+    [12086, 24318], 24328, 22844, 22849, 32823, 22869, 22874, 22872, 21263,
+    [12074, 23586], 23589, 23596, 23604, 25164, 25194, 25247, 25275, 25290,
+    25306, 25303, 25326, 25378, 25334, 25401, 25419, 25411, 25517, 25590,
+    25457, 25466, 25486, 25524, 25453, 25516, 25482, 25449, 25518, 25532,
+    25586, 25592, 25568, 25599, 25540, 25566, 25550, 25682, 25542, 25534,
+    25669, 25665, 25611, 25627, 25632, 25612, 25638, 25633, 25694, 25732,
+    25709, 25750, 25722, {f: 2, c: 25783}, 25753, 25786, 25792, 25808, 25815,
+    25828, 25826, 25865, 25893, 25902, [12087, 24331], 24530, 29977, 24337,
+    21343, 21489, 21501, 21481, 21480, 21499, 21522, 21526, 21510, 21579,
+    {f: 3, c: 21586}, 21590, 21571, 21537, 21591, 21593, 21539, 21554, 21634,
+    21652, 21623, 21617, 21604, {f: 2, c: 21658}, 21636, 21622, 21606, 21661,
+    21712, 21677, 21698, 21684, 21714, 21671, 21670, {f: 2, c: 21715}, 21618,
+    21667, 21717, 21691, 21695, 21708, {f: 2, c: 21721}, 21724,
+    {f: 2, c: 21673}, 21668, 21725, 21711, 21726, 21787, 21735, 21792, 21757,
+    21780, 21747, {f: 2, c: 21794}, 21775, 21777, 21799, 21802, 21863, 21903,
+    21941, 21833, 21869, 21825, 21845, 21823, 21840, 21820, 21815, 21846,
+    {f: 3, c: 21877}, 21811, 21808, 21852, 21899, 21970, 21891, 21937, 21945,
+    21896, 21889, 21919, 21886, 21974, 21905, 21883, 21983, {f: 2, c: 21949},
+    21908, 21913, 21994, 22007, 21961, 22047, 21969, {f: 2, c: 21995}, 21972,
+    21990, 21981, 21956, 21999, 21989, {f: 2, c: 22002}, {f: 2, c: 21964},
+    21992, 22005, 21988, 36756, 22046, 22024, 22028, 22017, 22052, 22051,
+    22014, 22016, 22055, 22061, 22104, 22073, 22103, 22060, 22093, 22114,
+    22105, 22108, 22092, 22100, 22150, 22116, 22129, 22123, {f: 2, c: 22139},
+    22149, 22163, 22191, 22228, [12062, 22231], 22237, 22241, 22261, 22251,
+    22265, 22271, 22276, 22282, 22281, 22300, 24079, 24089, 24084, 24081,
+    24113, {f: 2, c: 24123}, 24119, 24132, 24148, 24155, 24158, 24161, 23692,
+    23674, 23693, 23696, 23702, 23688, {f: 2, c: 23704}, 23697, 23706, 23708,
+    23733, 23714, 23741, 23724, 23723, 23729, 23715, 23745, 23735, 23748,
+    23762, 23780, 23755, 23781, {f: 2, c: 23810}, 23847, 23846, 23854, 23844,
+    23838, 23814, 23835, 23896, 23870, 23860, 23869, 23916, 23899, 23919,
+    23901, 23915, 23883, 23882, 23913, 23924, 23938, 23961, 23965, 35955,
+    23991, 24005, [12091, 24435], 24439, 24450, 24455, 24457, 24460, 24469,
+    24473, 24476, 24488, 24493, 24501, 24508, 34914, [12090, 24417], 29357,
+    29360, 29364, {f: 2, c: 29367}, 29379, 29377, 29390, 29389, 29394, 29416,
+    29423, 29417, 29426, 29428, 29431, 29441, 29427, 29443, {f: 2, c: 29434},
+    29463, 29459, 29473, 29450, 29470, 29469, 29461, 29474, 29497, 29477,
+    29484, 29496, 29489, 29520, 29517, 29527, 29536, 29548, 29551, 29566,
+    [12167, 33307], 22821, 39143, 22820, [12065, 22786], 39267,
+    {f: 6, c: 39271}, 39284, 39287, 39293, 39296, 39300, 39303, 39306, 39309,
+    {f: 2, c: 39312}, {f: 3, c: 39315}, 24192, 24209, 24203, 24214, 24229,
+    24224, 24249, 24245, 24254, 24243, 36179, 24274, 24273, 24283, 24296,
+    24298, 33210, 24516, 24521, 24534, 24527, 24579, 24558, 24580, 24545,
+    24548, 24574, {f: 2, c: 24581}, 24554, 24557, 24568, 24601, 24629, 24614,
+    24603, 24591, 24589, 24617, 24619, 24586, 24639, 24609, {f: 2, c: 24696},
+    24699, 24698, 24642, 24682, 24701, 24726, 24730, 24749, 24733, 24707,
+    24722, 24716, 24731, 24812, 24763, 24753, 24797, 24792, 24774, 24794,
+    24756, 24864, 24870, 24853, 24867, 24820, 24832, 24846, 24875, 24906,
+    24949, 25004, 24980, 24999, 25015, 25044, 25077, 24541, 38579, 38377,
+    38379, 38385, 38387, {f: 2, c: 38389}, 38396, 38398, {f: 2, c: 38403},
+    38406, 38408, {f: 4, c: 38410}, 38415, 38418, {f: 3, c: 38421},
+    {f: 2, c: 38425}, 20012, [12121, 29247], 25109, 27701, 27732, 27740, 27722,
+    27811, 27781, 27792, 27796, 27788, {f: 2, c: 27752}, 27764, 27766, 27782,
+    27817, 27856, 27860, 27821, {f: 2, c: 27895}, 27889, 27863, 27826, 27872,
+    27862, 27898, 27883, 27886, 27825, 27859, 27887, 27902, 27961, 27943,
+    27916, 27971, 27976, 27911, 27908, 27929, 27918, 27947, 27981, 27950,
+    27957, 27930, 27983, 27986, 27988, 27955, 28049, 28015, 28062, 28064,
+    27998, {f: 2, c: 28051}, 27996, 28000, 28028, 28003, 28186, 28103, 28101,
+    28126, 28174, 28095, 28128, 28177, 28134, 28125, 28121, 28182, 28075,
+    28172, 28078, 28203, 28270, 28238, 28267, 28338, 28255, 28294,
+    {f: 2, c: 28243}, 28210, 28197, 28228, 28383, 28337, 28312, 28384, 28461,
+    28386, 28325, 28327, 28349, 28347, 28343, 28375, 28340, 28367, 28303,
+    28354, 28319, 28514, {f: 2, c: 28486}, 28452, 28437, 28409, 28463, 28470,
+    28491, 28532, 28458, 28425, 28457, 28553, 28557, 28556, 28536, 28530,
+    28540, 28538, 28625, 28617, 28583, 28601, 28598, 28610, 28641, 28654,
+    28638, 28640, 28655, 28698, 28707, 28699, 28729, 28725, 28751, 28766,
+    [12071, 23424], 23428, 23445, 23443, 23461, 23480, 29999, 39582, 25652,
+    23524, 23534, 35120, 23536, 36423, 35591, 36790, 36819, 36821, 36837,
+    36846, 36836, 36841, 36838, 36851, 36840, 36869, 36868, 36875, 36902,
+    36881, 36877, 36886, 36897, {f: 2, c: 36917}, 36909, 36911, 36932,
+    {f: 2, c: 36945}, 36944, 36968, 36952, 36962, 36955, 26297, 36980, 36989,
+    36994, 37000, 36995, 37003, [12089, 24400], 24407, 24406, 24408, 23611,
+    21675, 23632, 23641, 23409, 23651, 23654, 32700, 24362, 24361, 24365,
+    33396, 24380, 39739, [12076, 23662], 22913, 22915, 22925, {f: 2, c: 22953},
+    22947, 22935, 22986, 22955, 22942, 22948, 22994, 22962, 22959, 22999,
+    22974, {f: 2, c: 23045}, 23005, 23048, 23011, 23000, 23033, 23052, 23049,
+    23090, 23092, 23057, 23075, 23059, 23104, 23143, 23114, 23125, 23100,
+    23138, 23157, 33004, 23210, 23195, 23159, 23162, 23230, 23275, 23218,
+    23250, 23252, 23224, 23264, 23267, 23281, 23254, 23270, 23256, 23260,
+    23305, 23319, 23318, 23346, 23351, 23360, 23573, 23580, 23386, 23397,
+    23411, 23377, 23379, 23394, 39541, {f: 2, c: 39543}, 39546, 39551, 39549,
+    {f: 2, c: 39552}, 39557, 39560, 39562, 39568, {f: 2, c: 39570}, 39574,
+    39576, {f: 3, c: 39579}, {f: 2, c: 39583}, {f: 2, c: 39586}, 39589, 39591,
+    32415, 32417, 32419, 32421, {f: 2, c: 32424}, 32429, 32432, 32446,
+    {f: 3, c: 32448}, 32457, {f: 2, c: 32459}, 32464, 32468, 32471, 32475,
+    {f: 2, c: 32480}, 32488, 32491, {f: 2, c: 32494}, {f: 2, c: 32497}, 32525,
+    32502, {f: 2, c: 32506}, 32510, {f: 3, c: 32513}, {f: 2, c: 32519},
+    {f: 2, c: 32523}, 32527, {f: 2, c: 32529}, 32535, 32537, 32540, 32539,
+    32543, {f: 7, c: 32545}, {f: 4, c: 32554}, {f: 5, c: 32559}, 32565,
+    [12083, 24186], 30079, [12078, 24027], 30014, 37013, 29582, 29585, 29614,
+    29602, 29599, 29647, 29634, 29649, 29623, 29619, 29632, 29641, 29640,
+    29669, 29657, 39036, 29706, 29673, 29671, 29662, 29626, 29682, 29711,
+    29738, 29787, 29734, 29733, 29736, 29744, 29742, 29740, 29723, 29722,
+    29761, 29788, 29783, 29781, 29785, 29815, 29805, 29822, 29852, 29838,
+    {f: 2, c: 29824}, 29831, 29835, 29854, {f: 2, c: 29864}, 29840, 29863,
+    29906, 29882, {f: 3, c: 38890}, 26444, 26451, 26462, 26440, 26473, 26533,
+    26503, 26474, 26483, 26520, 26535, 26485, 26536, 26526, 26541, 26507,
+    26487, 26492, 26608, 26633, 26584, 26634, 26601, 26544, 26636, 26585,
+    26549, 26586, 26547, 26589, 26624, 26563, 26552, 26594, 26638, 26561,
+    26621, {f: 2, c: 26674}, {f: 2, c: 26720}, 26702, 26722, 26692, 26724,
+    26755, 26653, 26709, 26726, 26689, 26727, 26688, 26686, 26698, 26697,
+    26665, 26805, 26767, 26740, 26743, 26771, 26731, 26818, 26990, 26876,
+    {f: 2, c: 26911}, 26873, 26916, 26864, 26891, 26881, 26967, 26851, 26896,
+    26993, 26937, 26976, 26946, 26973, 27012, 26987, 27008, 27032, 27000,
+    26932, 27084, {f: 2, c: 27015}, 27086, 27017, 26982, 26979, 27001, 27035,
+    27047, 27067, 27051, 27053, 27092, 27057, 27073, 27082, 27103, 27029,
+    27104, 27021, 27135, 27183, 27117, {f: 2, c: 27159}, 27237, 27122, 27204,
+    27198, 27296, 27216, 27227, 27189, 27278, 27257, 27197, 27176, 27224,
+    27260, 27281, 27280, 27305, 27287, 27307, 29495, 29522, {f: 2, c: 27521},
+    27527, 27524, {f: 2, c: 27538}, 27533, {f: 2, c: 27546}, 27553, 27562,
+    36715, 36717, {f: 3, c: 36721}, {f: 2, c: 36725}, 36728, 36727,
+    {f: 2, c: 36729}, 36732, 36734, {f: 2, c: 36737}, 36740, 36743, 36747,
+    {f: 3, c: 36749}, 36760, 36762, 36558, 25099, 25111, 25115, 25119, 25122,
+    25121, 25125, 25124, 25132, 33255, 29935, 29940, 29951, 29967, 29969,
+    29971, [12097, 25908], {f: 3, c: 26094}, 26122, 26137, 26482, 26115, 26133,
+    26112, 28805, 26359, 26141, 26164, 26161, 26166, 26165, 32774, 26207,
+    26196, 26177, 26191, 26198, 26209, 26199, 26231, 26244, 26252, 26279,
+    26269, 26302, {f: 2, c: 26331}, 26342, 26345, {f: 2, c: 36146}, 36150,
+    36155, 36157, 36160, {f: 2, c: 36165}, {f: 2, c: 36168}, 36167, 36173,
+    36181, 36185, 35271, {f: 3, c: 35274}, {f: 4, c: 35278}, 29294, 29343,
+    29277, 29286, 29295, {f: 2, c: 29310}, 29316, 29323, 29325, 29327, 29330,
+    25352, 25394, 25520, 25663, 25816, 32772, 27626, 27635, 27645, 27637,
+    27641, 27653, 27655, 27654, 27661, 27669, {f: 3, c: 27672}, 27681, 27689,
+    27684, 27690, 27698, 25909, 25941, 25963, 29261, 29266, 29270, 29232,
+    34402, 21014, 32927, 32924, 32915, 32956, 26378, 32957, 32945, 32939,
+    32941, 32948, 32951, {f: 4, c: 32999}, 32987, 32962, 32964, 32985, 32973,
+    32983, 26384, 32989, 33003, 33009, 33012, 33005, {f: 2, c: 33037}, 33010,
+    33020, 26389, 33042, 35930, 33078, 33054, 33068, 33048, 33074, 33096,
+    33100, 33107, 33140, {f: 2, c: 33113}, 33137, 33120, 33129,
+    {f: 2, c: 33148}, 33133, 33127, 22605, 23221, 33160, 33154, 33169, 28373,
+    33187, 33194, 33228, 26406, 33226, 33211, 33217, 33190, 27428, 27447,
+    27449, 27459, 27462, 27481, {f: 3, c: 39121}, 39125, {f: 2, c: 39129},
+    [12110, 27571], 24384, 27586, 35315, 26000, 40785, 26003, 26044, 26054,
+    26052, 26051, 26060, 26062, 26066, 26070, 28800, 28828, 28822, 28829,
+    28859, 28864, 28855, 28843, 28849, 28904, 28874, 28944, 28947, 28950,
+    28975, 28977, 29043, 29020, 29032, 28997, 29042, 29002, 29048, 29050,
+    29080, 29107, 29109, 29096, 29088, 29152, 29140, 29159, 29177, 29213,
+    29224, 28780, 28952, 29030, 29113, 25150, 25149, 25155, {f: 2, c: 25160},
+    31035, 31040, 31046, 31049, {f: 2, c: 31067}, 31059, 31066, 31074, 31063,
+    31072, 31087, 31079, 31098, 31109, 31114, 31130, 31143, 31155, 24529,
+    24528, 24636, 24669, 24666, 24679, 24641, 24665, 24675, 24747, 24838,
+    24845, 24925, 25001, 24989, 25035, 25041, 25094, 32896, [12160, 32895],
+    27795, 27894, 28156, 30710, 30712, 30720, 30729, {f: 2, c: 30743}, 30737,
+    26027, 30765, {f: 2, c: 30748}, {f: 3, c: 30777}, 30751, 30780, 30757,
+    30764, 30755, 30761, 30798, 30829, {f: 2, c: 30806}, 30758, 30800, 30791,
+    30796, 30826, 30875, 30867, 30874, 30855, 30876, 30881, 30883, 30898,
+    30905, 30885, 30932, 30937, 30921, 30956, 30962, 30981, 30964, 30995,
+    31012, 31006, 31028, 40859, [12235, 40697], {f: 2, c: 40699}, 30449, 30468,
+    30477, 30457, {f: 2, c: 30471}, 30490, 30498, 30489, 30509, 30502, 30517,
+    30520, {f: 2, c: 30544}, 30535, 30531, 30554, 30568, 30562, 30565, 30591,
+    30605, 30589, 30592, 30604, 30609, {f: 2, c: 30623}, 30640, 30645, 30653,
+    30010, 30016, 30030, 30027, 30024, 30043, 30066, 30073, 30083, 32600,
+    32609, 32607, 35400, 32616, 32628, 32625, 32633, 32641, 32638, 30413,
+    30437, 34866, {f: 3, c: 38021}, 38027, 38026, {f: 2, c: 38028},
+    {f: 2, c: 38031}, 38036, 38039, 38037, {f: 3, c: 38042}, {f: 2, c: 38051},
+    38059, 38058, 38061, 38060, {f: 2, c: 38063}, 38066, 38068,
+    {f: 5, c: 38070}, {f: 2, c: 38076}, 38079, 38084, {f: 7, c: 38088},
+    {f: 3, c: 38096}, {f: 3, c: 38101}, 38105, 38104, 38107, {f: 3, c: 38110},
+    38114, {f: 2, c: 38116}, {f: 2, c: 38119}, 38122, 38121, 38123,
+    {f: 2, c: 38126}, {f: 3, c: 38131}, 38135, 38137, {f: 2, c: 38140}, 38143,
+    38147, 38146, {f: 2, c: 38150}, {f: 2, c: 38153}, {f: 3, c: 38157},
+    {f: 5, c: 38162}, 38168, 38171, {f: 3, c: 38173}, 38178, {f: 2, c: 38186},
+    38185, 38188, {f: 2, c: 38193}, 38196, {f: 3, c: 38198}, 38204,
+    {f: 2, c: 38206}, 38210, 38197, {f: 3, c: 38212}, 38217, 38220,
+    {f: 2, c: 38222}, {f: 3, c: 38226}, {f: 4, c: 38230}, 38235,
+    {f: 2, c: 38238}, 38237, {f: 2, c: 38241}, {f: 9, c: 38244}, 38255,
+    {f: 3, c: 38257}, 38202, 30695, 30700, 38601, 31189, 31213, 31203, 31211,
+    31238, 23879, 31235, 31234, 31262, 31252, 31289, 31287, 31313, 40655,
+    39333, 31344, 30344, 30350, 30355, 30361, 30372, 29918, 29920, 29996,
+    40480, 40482, {f: 5, c: 40488}, 40498, 40497, 40502, 40504, 40503,
+    {f: 2, c: 40505}, 40510, {f: 2, c: 40513}, 40516, {f: 4, c: 40518},
+    {f: 2, c: 40523}, 40526, 40529, 40533, 40535, {f: 3, c: 40538}, 40542,
+    40547, {f: 7, c: 40550}, 40561, 40557, 40563, [12135, 30098], 30100, 30102,
+    30112, 30109, 30124, 30115, {f: 2, c: 30131}, 30136, 30148, 30129, 30128,
+    30147, 30146, 30166, 30157, 30179, 30184, 30182, 30180, 30187, 30183,
+    30211, 30193, 30204, 30207, 30224, 30208, 30213, 30220, 30231, 30218,
+    30245, 30232, 30229, 30233, 30235, 30268, 30242, 30240, 30272, 30253,
+    30256, 30271, 30261, 30275, 30270, 30259, 30285, 30302, 30292, 30300,
+    30294, 30315, 30319, 32714, 31462, {f: 2, c: 31352}, 31360, 31366, 31368,
+    31381, 31398, 31392, 31404, 31400, 31405, 31411, 34916, 34921, 34930,
+    34941, 34943, 34946, 34978, 35014, 34999, 35004, 35017, 35042, 35022,
+    35043, 35045, 35057, 35098, 35068, 35048, 35070, 35056, 35105, 35097,
+    35091, 35099, 35082, 35124, 35115, 35126, 35137, 35174, 35195,
+    [12134, 30091], 32997, 30386, 30388, 30684, [12158, 32786], 32788, 32790,
+    32796, 32800, 32802, {f: 3, c: 32805}, 32809, 32808, 32817, 32779, 32821,
+    32835, 32838, 32845, 32850, 32873, 32881, 35203, 39032, 39040, 39043,
+    39049, {f: 2, c: 39052}, 39055, 39060, {f: 2, c: 39066}, {f: 2, c: 39070},
+    {f: 2, c: 39073}, {f: 2, c: 39077}, [12172, 34381], 34388, 34412, 34414,
+    34431, 34426, 34428, 34427, 34472, 34445, 34443, 34476, 34461, 34471,
+    34467, 34474, 34451, 34473, 34486, 34500, 34485, 34510, 34480, 34490,
+    34481, 34479, 34505, 34511, 34484, 34537, {f: 2, c: 34545}, 34541, 34547,
+    34512, 34579, 34526, 34548, 34527, 34520, 34513, 34563, 34567, 34552,
+    34568, 34570, 34573, 34569, 34595, 34619, 34590, 34597, 34606, 34586,
+    34622, 34632, 34612, 34609, 34601, 34615, 34623, 34690, 34594,
+    {f: 2, c: 34685}, 34683, 34656, 34672, 34636, 34670, 34699, 34643, 34659,
+    34684, 34660, 34649, 34661, 34707, 34735, 34728, 34770, 34758, 34696,
+    34693, 34733, 34711, 34691, 34731, 34789, 34732, 34741, 34739, 34763,
+    34771, 34749, 34769, 34752, 34762, 34779, 34794, 34784, 34798, 34838,
+    34835, 34814, 34826, 34843, 34849, 34873, 34876, [12152, 32566], 32578,
+    {f: 2, c: 32580}, 33296, 31482, 31485, 31496, {f: 2, c: 31491}, 31509,
+    31498, 31531, 31503, 31559, 31544, 31530, 31513, 31534, 31537, 31520,
+    31525, 31524, 31539, 31550, 31518, 31576, 31578, 31557, 31605, 31564,
+    31581, 31584, 31598, 31611, 31586, 31602, 31601, 31632, {f: 2, c: 31654},
+    31672, 31660, 31645, 31656, 31621, 31658, 31644, 31650, 31659, 31668,
+    31697, 31681, 31692, 31709, 31706, {f: 2, c: 31717}, 31722, 31756, 31742,
+    31740, 31759, 31766, 31755, 31775, 31786, 31782, 31800, 31809, 31808,
+    33278, {f: 2, c: 33281}, 33284, 33260, 34884, {f: 3, c: 33313}, 33325,
+    33327, 33320, 33323, 33336, 33339, {f: 2, c: 33331}, 33342, 33348, 33353,
+    33355, 33359, 33370, 33375, 33384, 34942, 34949, 34952, 35032, 35039,
+    35166, 32669, 32671, 32679, {f: 2, c: 32687}, 32690, 31868, 25929, 31889,
+    31901, 31900, 31902, 31906, 31922, {f: 2, c: 31932}, 31937, 31943,
+    {f: 2, c: 31948}, 31944, 31941, 31959, 31976, [12169, 33390], 26280, 32703,
+    32718, 32725, 32741, 32737, 32742, 32745, 32750, 32755, [12151, 31992],
+    32119, 32166, 32174, 32327, 32411, 40632, 40628, 36211, 36228, 36244,
+    36241, 36273, 36199, 36205, 35911, 35913, 37194, 37200, {f: 2, c: 37198},
+    37220, 37218, 37217, 37232, 37225, 37231, {f: 2, c: 37245}, 37234, 37236,
+    37241, 37260, 37253, 37264, 37261, 37265, {f: 2, c: 37282}, 37290,
+    {f: 3, c: 37293}, 37301, 37300, 37306, [12183, 35925], 40574, 36280, 36331,
+    36357, 36441, 36457, 36277, 36287, 36284, 36282, 36292, {f: 2, c: 36310},
+    36314, 36318, {f: 2, c: 36302}, 36315, 36294, 36332, {f: 2, c: 36343},
+    36323, 36345, 36347, 36324, 36361, 36349, 36372, 36381, 36383, 36396,
+    36398, 36387, 36399, 36410, 36416, 36409, 36405, 36413, 36401, 36425,
+    {f: 2, c: 36417}, {f: 2, c: 36433}, 36426, 36464, 36470, 36476, 36463,
+    36468, 36485, 36495, 36500, 36496, 36508, 36510, [12184, 35960], 35970,
+    35978, 35973, 35992, 35988, 26011, 35286, 35294, 35290, 35292, 35301,
+    35307, 35311, 35390, 35622, 38739, 38633, 38643, 38639, 38662, 38657,
+    38664, 38671, 38670, 38698, 38701, 38704, 38718, 40832, 40835,
+    {f: 6, c: 40837}, 40844, 40702, 40715, 40717, [12203, 38585],
+    {f: 2, c: 38588}, 38606, 38610, 30655, 38624, 37518, 37550, 37576, 37694,
+    37738, 37834, 37775, 37950, 37995, 40063, 40066, {f: 4, c: 40069}, 31267,
+    40075, 40078, {f: 3, c: 40080}, {f: 2, c: 40084}, {f: 2, c: 40090},
+    {f: 6, c: 40094}, {f: 5, c: 40101}, 40107, {f: 2, c: 40109},
+    {f: 8, c: 40112}, {f: 4, c: 40122}, {f: 4, c: 40132}, {f: 7, c: 40138},
+    {f: 3, c: 40147}, {f: 3, c: 40151}, {f: 2, c: 40156}, 40159, 40162, 38780,
+    38789, {f: 2, c: 38801}, 38804, 38831, 38827, 38819, 38834, 38836, 39601,
+    39600, 39607, 40536, 39606, 39610, 39612, 39617, 39616, 39621, 39618,
+    {f: 2, c: 39627}, 39633, 39749, 39747, 39751, 39753, 39752, 39757, 39761,
+    39144, 39181, 39214, 39253, 39252, [12221, 39647], 39649, 39654, 39663,
+    39659, 39675, 39661, 39673, 39688, 39695, 39699, 39711, 39715,
+    {f: 2, c: 40637}, 32315, 40578, {f: 2, c: 40583}, 40587, 40594, 37846,
+    40605, 40607, {f: 3, c: 40667}, 40672, 40671, 40674, 40681, 40679, 40677,
+    40682, 40687, 40738, 40748, 40751, 40761, 40759, {f: 2, c: 40765}, 40772,
+    12295, {s: 13}, 30362, 34297, 31001, 24859, 39599, 35158, 22761, 32631,
+    25850, 25943, 38930, 36774, 32070, 24171, 32129, 37770, 35607, 39165,
+    23542, 22577, 39825, 36649, [12185, 35997], 37575, 29437, 20633, 24970,
+    32179, 31558, 30050, 25987, 24163, 38281, 37002, 32232, 36022, 35722,
+    36783, 36782, 27161, 40009, 30303, 28693, 28657, 36051, 25839, 39173,
+    25765, 37474, 37457, 39361, 35036, 36001, 21443, 34870, 27544, 24922,
+    24920, 29158, 33980, 33369, 20489, 28356, 21408, 20596, 28204, 23652,
+    35435, 25881, 25723, 34796, 39262, 35730, 32399, 37855, 29987, 38369,
+    39019, 22580, 22039, [12199, 38263], 20767, 33144, 24288, 26274, 37396,
+    [12190, 36554], 24505, 22645, 38515, 35183, 31281, 25074, 35488, 39425,
+    36978, 39347, [12242, 40786], 29118, 34909, 34802, 23541, 30087, 36490,
+    31820, 32162, 37276, 37604, 38619, 30990, 20786, 35320, 34389, 20659,
+    30241, 38358, 21109, 37656, 32020, 32189, 36781, 35422, 36060, 32880,
+    24478, 21474, 36517, 31428, 37679, 36948, 24118, 36024, 25812, 21934,
+    37170, 25763, 33213, 24986, 35477, 24392, 30070, 25803, 40680, 34153,
+    27284, 25623, 23798, 31153, 23566, 29128, 37159, 25973, 28364, 36958,
+    32224, 39003, 40670, 22666, 38651, 28593, 37347, 35519, 35548, 37336,
+    38914, 37664, 35330, 26481, 21205, 26847, 20941, [12222, 39717], 29346,
+    29544, 35712, 36077, 37709, 37723, 26039, 32222, 38538, 23565, 22136,
+    38931, 37389, 22890, 22702, 40285, 38989, 35355, 24801, 39187, 20818,
+    29246, 39180, 36019, 30332, 32624, 38309, 31020, 37353, 29033, 31684,
+    36009, 39151, 35370, 32033, [12214, 39131], 35513, 24290, 36027, 32027,
+    22707, 22894, 24996, 31966, 35920, 26963, 37586, [12213, 39080], 30219,
+    39342, 32299, 35575, 40179, 33178, 36667, 25771, 36628, 36070, 24489,
+    36000, 35331, 23142, 32283, 35442, 37411, 33995, 24185, 36245, 36123,
+    23713, 21083, 37628, 32177, 23831, 37804, 25841, 40255, 38307, 37499,
+    20491, 32102, 40852, 38799, 36002, 37390, 28317, 27083, 36092, 34865,
+    39015, 21102, 38364, 35264, 39208, 24931, 36011, 24291, 35215, 27512,
+    [12244, 40860], 38312, 36556, 35437, 27331, 36020, 21130, 36645, 37707,
+    22283, 36942, 39405, 38867, 28450, 34399, 38305, 40372, 36032, 36703,
+    40251, 32005, 22778, 35703, 28396, 22057, 33775, 30059, 21123, 35441,
+    25079, 22750, 27489, 29872, 36996, 32233, 35594, 25582, 36637, 36036,
+    31330, 26371, 29172, 21295, 35569, 35496, 32362, 33911, 28222, 29554,
+    36008, 31117, 25802, 27231, 31309, 39249, 35663, 40388, 32318, 32221,
+    26997, 36655, 32026, 25824, 24190, 34186, 21137, 28639, 35336, 35352,
+    38555, 32380, 32000, 22846, 33698, 38960, 36040, 37440, 20729, 39381,
+    27570, 30435, 22533, 31627, 38291, 33393, 32216, 32365, 27298, 40572,
+    25536, 25791, 31777, 20745, 34214, 27323, 37970, 36368, 36068,
+    [12178, 35211], 37749, 33382, 21133, 39198, 28472, 28666, 28567, 23559,
+    28479, 34083, 27123, 22892, 35611, 37292, 33184, 28550, 39509, 23308,
+    25898, 37496, 30703, 20709, 39171, 32371, 32094, 36686, 36611, 38542,
+    31680, 28500, 32080, 35489, 32202, 37670, 20677, 35641, 36914, 29180,
+    30433, 21185, 33686, 39912, 39514, 32147, 38968, 37857, 24465, 30169,
+    31478, 31998, 33290, 39378, 33289, 25818, 37624, 25084, 21127, 40273,
+    32121, 35258, 35363, 32118, 37406, 36557, 39423, 38283, 20977, 38982,
+    27579, 35506, 22718, 25031, 25715, 24235, 35122, 35463, 22602, 20744,
+    23532, 31014, 26336, 34407, 24011, 31418, 39243, 28528, 25844, 38346,
+    34847, 33240, 33802, 20358, 36084, 34253, 27396, 25876, 31811, 38348,
+    34349, 28734, 35733, 25900, 35261, 25078, 32412, 29211, 28651, 25736,
+    21214, 28551, 27138, 37939, 22744, 39006, 31852, 38626, 28757, 35023,
+    39881, 31150, 40599, 21426, 21237, 31019, 27511, 28701, 38584, 20486,
+    32879, 34030, 36899, 37934, 24976, 28451, 31806, 25986, 33225, 37832,
+    25088, 29001, 32244, 31975, 20841, 36635, 35538, 30274, 36988, 37904,
+    29557, 33256, 37168, 40023, 36035, 40801, 37428, 38728, 23994, 38936,
+    39230, 21129, [12243, 40845], 32894, 22184, 31840, 22751, 25871, 38580,
+    27155, 23105, 25695, 31757, 34310, 30439, 39025, 24300, 29200, 25796,
+    28407, 34396, 39791, 36034, 37682, 38520, 39522, 37569, 23650, 32311,
+    24942, 28670, 32209, 24018, 25891, 23423, 28772, 20098, 25476, 36650,
+    20523, 20374, 28138, 32184, 35542, 34367, 32645, 37007, 38012, 31854,
+    39486, 39409, 32097, 23229, 29802, 30908, 34718, [12218, 39340], 39393,
+    21966, 36023, [12230, 40613], 36067, 36993, 30622, 39237, 34875, 28415,
+    35646, 37672, 37466, 36031, 37762, [12200, 38272], 24758, 20497, 37683,
+    22818, 35598, 24396, 35219, 32191, 32236, 24287, 28357, 25003, 38313,
+    40180, 37528, 35628, 35584, 30045, 37385, 32013, 38627, 25747, 33126,
+    24817, 39719, 39186, 25836, 33193, 25862, 37312, [12227, 40165], 32886,
+    22169, 38007, 37811, 27320, 29552, 23527, 25840, 28632, 37397, 32016,
+    33215, 28611, 36786, 30247, 35582, 27472, 40407, 27590, 22036, 28442,
+    30436, 40848, 36064, 22132, 40300, 39449, 39108, 38971, 36007, 34315,
+    24977, 35413, 28497, 38935, 25778, 37610, 20693, 27192, 35676, 33229,
+    [12241, 40778], 39438, 35912, 21843, 27683, 35350, 29309, 37370, 37467,
+    36983, 31805, 35609, 37666, 37463, 28154, 35700, 22649, 27085, 21958,
+    22715, 34196, 25654, 37740, 27211, 21932, 20689, 32761, 31429, 31434,
+    27453, 35242, 23522, 36629, 27691, 20670, 38915, 35531, 24950, 29898,
+    31406, 36264, 21312, 36544, 39493, 40818, 39028, 27402, 21240, 40306,
+    30906, 35731, 39250, 25854, 32350, 29105, 38860, 35469, 32009, 27054,
+    32104, 36575, 37613, 38287, 28516, 28753, 34217, 39955, 36093, 20632,
+    21930, 39479, 25475, 28544, 27578, 32023, 31721, 26348, 38275, 38493,
+    36109, 32341, 20663, 36062, 29138, 32057, 36050, 25448, 25885, 25086,
+    35373, 32051, 23529, 23352, 33102, 28402, 32882, 32361, 21213, 32854,
+    24107, 29509, 28629, 35433, 26178, 34645, 23526, 35672, 39387, 21218,
+    36969, 37323, 39166, 35222, 35430, 22781, 29560, 27166, 36664, 26360,
+    36118, 23660, 34899, 27193, 31466, 25976, 24101, 38617, 35504, 38918,
+    35500, 30889, 29197, 32114, 39164, 39686, 32883, 24939, 38924, 35359,
+    35494, 25851, 34311, 35380, 32901, 38614, 38568, 32143, 27506, 23403,
+    25613, 32302, 29795, 37782, 29562, 25787, 33274, 24907, 25892, 36010,
+    30321, 28760, 22727, 35674, 35527, 22022, 28271, 29145, 28644, 32295,
+    35342, 39472, 35588, 37563, 38988, 39636, 26781, 36028, 37941, 24307,
+    32893, 28916, 37509, 32113, 38957, 22294, 22615, 22296, 38973, 40213,
+    39345, 39389, 27234, 31402, 35178, 24398, 28771, 38929, 33836, 32178,
+    [12209, 38859], 36949, 22285, 29234, 28656, 32173, 33894, 20553, 20702,
+    32239, 35586, 34907, 32862, 32011, 31337, 21839, 25790, 34680, 28198,
+    31401, 21978, 37794, 28879, 35491, 28961, 34154, 22626, 38695, 21209,
+    35492, 37675, 29351, 35186, 32722, 37521, 25138, 32048, 34662, 36676,
+    23805, 20448, 29433, 22151, 37697, 39854, 32406, 36066, 37532, 38289,
+    39023, 38570, 29694, 29563, 32291, 39201, 25010, 32171, 38002, 37129,
+    35443, 38911, 38917, 34157, 22210, 37559, 26313, 22063, 21332, 25406,
+    33029, 35559, 23531, 28681, 35613, 37573, 37313, 33288, 37561, 32137,
+    38920, 35377, 32210, 32396, 36562, 25080, 36984, 30316, 32098, 23416,
+    21211, 35426, 23563, 39348, 35347, 35338, 36956, 22739, 40201, 40232,
+    21854, 20126, 35357, 38329, 40573, 22196, 38996, 38331, 33399, 21421,
+    30831, 35578, 39511, 40230, 26954, 25562, 30221, 38525, 30306, 39178,
+    27171, 22575, 35617, 34277, 29242, [12212, 38913], 26989, 33865, 37291,
+    37541, 38948, 36986, 20736, 34811, 34269, 20740, 25014, 32681, 35427,
+    35696, 35516, 35695, 32377, 34093, 38512, 37504, 39154, 38577, 27387,
+    23344, 40441, 25033, 32403, 29801, 34722, 29151, 29074, 34821, 36111,
+    31310, 21938, 25793, 20653, 30320, 36404, 20778, 24962, 37109, 37438,
+    29494, 35480, 36671, 39192, [12226, 39770], 28417, 33287, 23996, 35486,
+    39729, 29508, 35709, 38928, 39341, 40219, 28149, 36677, 22290, 21729,
+    22291, 32227, 36960, 39000, 32004, 36493, 38000, 38322, 38642, 37142,
+    38549, 36939, 34292, 37270, 26248, 38620, 36617, 25890, 26283, 36106,
+    36124, 33247, 38015, 26839, 31432, 36012, 25799, 21063, 28580, 36042,
+    36104, 36555, 37720, 38296, 35408, 40779, 20661, 27656, 30430, 26028,
+    36670, 23940, 26855, 25136, 32187, 24373, 28466, 24115, 36076, 33081,
+    36249, 34756, 36685, 37754, 36889, 35998, 37341, 20597, 35386, 37806,
+    38499, 24128, 30309, 37165, 35657, 32340, 32887, 22519, 34937, 32025,
+    25711, 25842, 24159, 36074, 28399, 37912, 32066, 31278, 33131, 34886,
+    35589, 36600, 30394, 26205, 39519, 35576, 35461, 29165, 30682, 22225,
+    36015, 37956, 31689, 39376, 23560, 30938, 36681, 36090, 27137, 33674,
+    35037, 22941, 22767, 29376, 37648, 36101, 22684, 32180, 35524, 28310,
+    28609, 36039, 28460, 32156, 32317, 32305, 37138, 35419, 32068, 38013,
+    21959, 21401, 21428, 38760, 36107, 21293, 21297, 36094, 21060, 21132,
+    21108, 20660, 20480, 20630, 20757, 20738, 20756, 20796, 20791, 20712,
+    20674, 20795, 20752, 20794, 20681, 31988, 40652, 22213, 40172, 35131,
+    33248, 35329, 35344, 35340, 35349, 35635, 35406, 35365, 35393, 35382,
+    35398, 35412, 35416, 35410, 35462, 35460, 35455, 35440, 35452, 35445,
+    35436, 35438, 35533, 35554, 35425, 35482, 35493, {f: 2, c: 35473}, 35535,
+    35537, 35529, 35547, 35543, 35522, 35510, 35574, 35563, 35604, 35585,
+    35556, 35565, 35580, 35571, 35558, 35566, 35550, 35624, 35740, 35606,
+    35610, 35600, 35627, 35629, 35670, 35673, 35662, 35742, 35691, 35734,
+    38488, 37178, 37140, 37172, 37087, 37174, 37126, 37192, 33467, 21233,
+    24048, 22538, 22745, 22754, 22752, 22746, 22497, 22607, 22550, 22610,
+    22557, 22628, 34188, 34131, 34294, 33703, 33799, 34031, 33511, 34338,
+    34086, 22603, 29026, 34136, 34045, 34126, 34184, 34234, 29334, 28366,
+    34113, 34254, 34130, 33984, 33874, 33892, 33940, 33845, 34207, 34133,
+    40367, 33939, 32264, 34118, 34146, 34078, 39488, 34362, 37795, 34167,
+    34334, 34298, 34308, 34282, 34330, 22889, 23607, 25451, 25718, 25759,
+    25681, 25692, 25779, 25860, 25878, 25847, 25852, 25883, 22064, 22072,
+    22216, 22182, 21764, 21692, 22144, 22109, 22112, 22069, 22006, 22118,
+    22130, 22156, 22117, 22044, 22062, 21993, 22038, 22208, 22029, 22195,
+    22209, 22127, 36705, 22198, 22165, 22279, 24131, 24172, 24152, 24151,
+    23943, 23796, 23888, 23852, 23975, 23968, 23959, 23821, 23992, 23937,
+    24020, 24480, 29559, 29505, 29546, 29499, 29547, 29568, 29564, 39136,
+    39219, 39145, 39228, {f: 2, c: 39146}, 39149, 39156, 39177, 39185, 39195,
+    39223, 39231, 39235, {f: 3, c: 39240}, 39244, 39266, 24289, 36065, 25082,
+    25006, 24938, 24894, 24757, 24884, 25036, 24927, 25064, 24827, 24887,
+    24818, 24947, 24860, 24978, 38274, 38278, 38344, 38286, 38292, 38284,
+    38373, 38317, 38315, 39726, 38316, 38334, 38326, 39721, 38335, 38333,
+    38332, 38339, 38347, 38356, 38352, 38357, 38366, 28739, 28505, 28711,
+    28696, 28668, 28039, 28025, 28254, 28590, 28687, 28408, 28527, 28150,
+    28543, 28678, 28576, 28683, 28775, 28740, 28677, 28535, 28704, 28703,
+    28722, 28712, 28765, 39467, 36999, 36885, 37008, 23656, 24371, 23285,
+    23255, 23296, 23149, 23304, 23372, 23207, 23291, 23307, 23329, 23338,
+    23321, 39380, 39391, 39385, 39478, 39515, 39377, 39384, 39501, 39498,
+    39394, 39530, 39439, 39437, 39429, 39490, 39469, 39446, 39489, 39470,
+    39480, {f: 2, c: 39491}, 39503, 39525, 39524, 31993, 32006, 32002,
+    {f: 2, c: 32007}, 32394, 32028, 32021, 32019, 32058, 32050, 32049, 32272,
+    32060, 32064, 32063, 32093, 32078, 32115, 32134, 32131, 32136, 32190,
+    32186, 32203, 32212, 32196, 32158, 32172, 32185, 32163, 32176, 32199,
+    32217, 32215, 32249, 32242, 32354, 32230, 32246, 32241, 32267, 32225,
+    32265, 32285, 32287, 32286, 32301, 32266, 32273, 32381, 32313, 32309,
+    32306, 32326, 32325, 32392, 32346, 32338, 32366, 32382, 32368, 32367,
+    32408, 29859, 29771, 29903, 38922, 29885, 29759, 29833, 29862, 29908,
+    29914, 38873, 38878, 38876, 27050, 27370, 26776, 26838, 27141, 26783,
+    27355, 27379, 27368, 27359, 27273, 26895, 27208, 26984, 27071, 27194,
+    27292, 27410, 27422, 27357, 27111, 27407, 27414, 27372, 27354, 27384,
+    27315, 27367, 27299, 27347, 27358, 27556, 27550, 27566, 27563, 27567,
+    36564, 36571, 36594, 36603, 36708, 36601, 36604, 36587, 36580, 36706,
+    36602, 36606, 36618, 36615, 36613, 36626, 36646, {f: 2, c: 36638}, 36636,
+    36659, 36678, 36692, 25108, 25127, 29964, 26311, 26308, 26249, 26326,
+    36033, 36016, 36026, 36029, 36100, 36018, 36037, 36112, 36049, 36058,
+    36053, 36075, 36071, 36091, 35224, 35244, 35233, 35263, 35238, 35247,
+    35250, 35255, 27647, 27660, 27692, 29272, 26407, 33110, 33242, 33051,
+    33214, 33121, 33231, 27487, {f: 2, c: 39086}, 39094, 39100, 39110, 39112,
+    36674, 40783, 26005, 29036, 29010, 29079, 29121, 29148, 29182, 31152,
+    31118, 31146, 25055, 24932, 25059, 25095, 28585, 30959, 30893, 30824,
+    30904, 31018, 31025, 30820, 30973, 30951, 30947, 40853, 30616, 30558,
+    30652, 32646, 32648, {f: 3, c: 37330}, 37337, 37335, 37333, 37367, 37351,
+    37348, 37702, 37365, 37369, 37384, 37414, 37445, 37393, 37392, 37377,
+    37415, 37380, 37413, 37376, 37434, 37478, 37431, 37427, 37461, 37437,
+    37432, 37470, {f: 2, c: 37484}, 37439, 37984, 37424, 37449, 37448, 37453,
+    37422, 37433, 37944, 37548, 37536, 37498, 37546, 37614, 37583, 37891,
+    37603, 37946, 37553, 37542, 37799, 37526, 37580, 37545, 37877, 37523,
+    37503, 37801, 37530, 37658, 37547, 37507, 37899, 37544, 37539, 37906,
+    37688, 37617, 37847, 37605, 37616, 37615, 37608, 37564, 37597, 37622,
+    {f: 2, c: 37926}, 37571, 37599, 37606, 37650, 37638, 37737, 37659, 37696,
+    37633, 37653, 37678, 37699, {f: 2, c: 37639}, 37663, 37657, 37733, 37703,
+    37750, 37716, 37732, 37802, 37744, 37764, 37860, 37848, 37928, 37767,
+    37836, 37784, 37816, 37823, 37798, 37808, 37813, 37964, 37858,
+    {f: 2, c: 37852}, 37837, 37854, 37827, 37831, 37841, 37908, 37917, 37879,
+    37989, 37907, 37997, 37920, 38009, 37881, 37913, 37962, 37938, 37951,
+    37972, 37987, 37758, 31329, 40169, 40182, 40199, 40198, 40227, 40327,
+    40469, 40221, 40223, 40421, 40239, 40409, 40240, 40258, 40478, 40275,
+    40477, 40288, 40274, 40435, 40284, 40289, 40339, 40298, 40303, 40329,
+    40344, 40346, 40384, 40357, 40361, 40386, 40380, 40474, 40403, 40410,
+    40431, 40422, 40434, 40440, 40460, 40442, 40475, 30308, 30296, 30311,
+    30210, {f: 2, c: 30278}, 30281, 30238, 30267, {f: 2, c: 30317}, 30313,
+    30322, 31431, 31414, 35168, 35123, 35165, 35143, 35128, 35172, 30392,
+    32814, 32812, 32889, 32885, 38919, {f: 2, c: 38926}, 38945, 38940, 28481,
+    38950, 38967, 38990, 38995, 39027, 39010, 39001, 39013, 39020, 39024,
+    34787, 34822, 34566, 34851, 34806, 34554, 34799, 34692, 34832, 34760,
+    34833, 34747, 34766, 32588, 31716, 31591, 31849, 31731, 31744, 31691,
+    31836, 31774, 31787, 31779, 31850, 31839, 33380, 33387, 35018, 32677,
+    31986, 31990, 31965, 32310, 40617, 36274, 37317, 37315, 40570, 36489,
+    36428, 36498, 36474, 36437, 36506, 36491, 36499, 36497, 36513, 36451,
+    36522, 36518, 35316, 35318, 38746, 38722, 38717, 38724, 40788, 40799,
+    40793, 40800, 40796, 40806, 40812, 40810, 40823, [12236, 40701], 40703,
+    40713, 35726, 38014, 37864, 39799, 39796, 39809, 39811, 39822, 40056,
+    31308, 39826, 40031, 39824, 39853, 39834, 39850, 39838, 40045, 39851,
+    39837, 40024, 39873, 40058, 39985, 39993, 39971, 39991, 39872, 39882,
+    39879, 39933, 39894, {f: 2, c: 39914}, 39905, 39908, 39911, 39901, 39906,
+    39920, 39899, 39924, 39892, 40029, 39944, 39952, 39949, 39954, 39945,
+    39935, 39968, 39986, 39981, 39976, 39973, 39977, 39987, 39998, 40008,
+    39995, 39989, 40005, 40022, 40020, 40018, 40039, 38851, 38845, 38857,
+    40379, 39631, 39638, 39637, 39768, 39758, 39255, 39260, 39714, 40695,
+    40690, 35180, 38342, 37686, 24390, 34068, 32404, 40803, 22137, 40725,
+    22081, 39662, 35079, 31296, 39091, 38308, 39693, 36852, 24409, 31339,
+    39138, 20642, 34193, 20760, 25458, 21067, 30543, 32397, 26310, 30637,
+    [12228, 40565], 22217, 40692, 28635, 25054, 30663, 28720, 40629, 34890,
+    38370, 38854, 31844, 32308, 38822, 40623, 22220, 39089, 27311, 32590,
+    31984, 20418, 32363, 40569, 22190, 39706, 33903, 31142, 31858, 39634,
+    38587, 32251, 35069, 30787, {f: 10, c: 8560}, {f: 2, c: 714}, 729, 8211,
+    8213, 8229, 8245, 8453, 8457, {f: 4, c: 8598}, 8725, 8735, 8739, 8786,
+    {f: 2, c: 8806}, 8895, {f: 36, c: 9552}, {f: 15, c: 9601}, {f: 3, c: 9619},
+    {f: 2, c: 9660}, {f: 4, c: 9698}, 9737, 8853, 12306, {f: 2, c: 12317},
+    {f: 9, c: 12321}, 12963, {f: 2, c: 13198}, {f: 3, c: 13212}, 13217, 13252,
+    13262, {f: 2, c: 13265}, 13269, 65072, 65506, 65508, 8481, 12849, 8208,
+    12540, {f: 2, c: 12443}, {f: 2, c: 12541}, 12294, {f: 2, c: 12445},
+    {f: 10, c: 65097}, {f: 4, c: 65108}, {f: 14, c: 65113}, {f: 4, c: 65128},
+    12350, {f: 12, c: 12272}, 19970, {f: 3, c: 19972}, 19983, 19986, 19991,
+    {f: 3, c: 19999}, 20003, 20006, 20009, {f: 2, c: 20014}, 20017, 20019,
+    20021, 20023, 20028, {f: 3, c: 20032}, 20036, 20038, 20042, 20049, 20053,
+    20055, {f: 2, c: 20058}, {f: 4, c: 20066}, {f: 2, c: 20071},
+    {f: 6, c: 20074}, 20082, {f: 10, c: 20084}, {f: 3, c: 20095},
+    {f: 2, c: 20099}, [12037, 20101], 20103, 20106, 20112, {f: 2, c: 20118},
+    20121, {f: 2, c: 20124}, 20131, 20138, {f: 3, c: 20143}, 20148,
+    {f: 4, c: 20150}, {f: 3, c: 20156}, 20168, 20172, {f: 2, c: 20175}, 20178,
+    {f: 3, c: 20186}, 20192, 20194, {f: 2, c: 20198}, 20201, {f: 3, c: 20205},
+    20209, 20212, {f: 3, c: 20216}, 20220, 20222, 20224, {f: 7, c: 20226},
+    {f: 2, c: 20235}, {f: 5, c: 20242}, {f: 2, c: 20252}, 20257, 20259,
+    {f: 2, c: 20264}, {f: 3, c: 20268}, 20273, 20275, 20277, 20279, 20281,
+    20283, {f: 5, c: 20286}, {f: 2, c: 20292}, {f: 6, c: 20295}, 20306, 20308,
+    20310, {f: 2, c: 20321}, 20326, 20328, {f: 2, c: 20330}, {f: 2, c: 20333},
+    {f: 2, c: 20337}, 20341, {f: 4, c: 20343}, 20349, {f: 3, c: 20352}, 20357,
+    20359, 20362, 20364, 20366, 20368, {f: 2, c: 20370}, 20373,
+    {f: 3, c: 20376}, 20380, {f: 2, c: 20382}, {f: 2, c: 20385}, 20388, 20395,
+    20397, {f: 5, c: 20400}, {f: 9, c: 20406}, {f: 2, c: 20416},
+    {f: 4, c: 20422}, {f: 3, c: 20427}, {f: 5, c: 20434}, 20441, 20443, 20450,
+    {f: 2, c: 20452}, 20455, {f: 2, c: 20459}, 20464, 20466, {f: 4, c: 20468},
+    20473, {f: 3, c: 20475}, 20479, {f: 5, c: 20481}, {f: 2, c: 20487}, 20490,
+    20494, 20496, 20499, {f: 3, c: 20501}, 20507, {f: 2, c: 20509}, 20512,
+    {f: 3, c: 20514}, 20519, {f: 11, c: 20527}, 20539, 20541, {f: 4, c: 20543},
+    {f: 3, c: 20548}, {f: 2, c: 20554}, 20557, {f: 5, c: 20560},
+    {f: 4, c: 20566}, 20571, {f: 8, c: 20573}, {f: 6, c: 20582},
+    {f: 7, c: 20589}, {f: 3, c: 20600}, {f: 2, c: 20604}, {f: 4, c: 20609},
+    {f: 2, c: 20614}, {f: 4, c: 20617}, {f: 8, c: 20622}, 20631,
+    {f: 8, c: 20634}, 20644, 20646, {f: 2, c: 20650}, {f: 4, c: 20654}, 20662,
+    {f: 2, c: 20664}, {f: 2, c: 20668}, {f: 3, c: 20671}, {f: 2, c: 20675},
+    {f: 3, c: 20678}, {f: 5, c: 20682}, 20688, {f: 3, c: 20690},
+    {f: 3, c: 20695}, {f: 3, c: 20699}, {f: 6, c: 20703}, {f: 3, c: 20713},
+    {f: 4, c: 20719}, 20724, {f: 3, c: 20726}, 20730, {f: 4, c: 20732}, 20737,
+    20739, 20741, 20746, {f: 4, c: 20748}, 20753, 20755, {f: 2, c: 20758},
+    {f: 6, c: 20761}, 20768, {f: 8, c: 20770}, {f: 7, c: 20779},
+    {f: 4, c: 20787}, {f: 2, c: 20792}, {f: 2, c: 20797}, 20802, 20807, 20810,
+    20812, {f: 3, c: 20814}, 20819, {f: 3, c: 20823}, 20827, {f: 5, c: 20829},
+    {f: 2, c: 20835}, {f: 2, c: 20838}, 20842, 20847, 20850, 20858,
+    {f: 2, c: 20862}, {f: 2, c: 20867}, {f: 2, c: 20870}, {f: 2, c: 20874},
+    {f: 4, c: 20878}, {f: 2, c: 20883}, 20888, 20890, {f: 3, c: 20893}, 20897,
+    20899, {f: 5, c: 20902}, {f: 2, c: 20909}, 20916, {f: 3, c: 20920},
+    {f: 2, c: 20926}, {f: 3, c: 20929}, 20933, 20936, 20938, 20942, 20944,
+    {f: 9, c: 20946}, 20956, {f: 2, c: 20958}, {f: 2, c: 20962},
+    {f: 6, c: 20965}, 20972, 20974, 20978, 20980, 20983, 20990,
+    {f: 2, c: 20996}, 21001, {f: 2, c: 21003}, {f: 2, c: 21007},
+    {f: 3, c: 21011}, 21020, {f: 2, c: 21022}, {f: 3, c: 21025},
+    {f: 3, c: 21029}, 21034, 21036, 21039, {f: 2, c: 21041}, {f: 2, c: 21044},
+    21052, 21054, {f: 2, c: 21061}, {f: 2, c: 21064}, {f: 2, c: 21070},
+    {f: 2, c: 21074}, 21077, {f: 4, c: 21079}, 21085, {f: 2, c: 21087},
+    {f: 3, c: 21090}, 21094, 21096, {f: 3, c: 21099}, {f: 2, c: 21104}, 21107,
+    {f: 7, c: 21110}, 21118, 21120, {f: 3, c: 21124}, 21131, {f: 2, c: 21134},
+    21138, {f: 7, c: 21140}, 21148, {f: 4, c: 21156}, {f: 3, c: 21166},
+    {f: 10, c: 21172}, 21184, 21186, {f: 3, c: 21188}, 21192, 21194,
+    {f: 4, c: 21196}, 21201, {f: 2, c: 21203}, 21207, 21210, 21212,
+    {f: 2, c: 21216}, 21219, {f: 11, c: 21221}, {f: 3, c: 21234},
+    {f: 2, c: 21238}, {f: 3, c: 21243}, {f: 4, c: 21249}, 21255,
+    {f: 4, c: 21257}, 21262, {f: 4, c: 21265}, 21272, {f: 2, c: 21275},
+    {f: 2, c: 21278}, 21282, {f: 2, c: 21284}, {f: 3, c: 21287},
+    {f: 2, c: 21291}, 21296, {f: 6, c: 21298}, [12054, 21304],
+    {f: 2, c: 21308}, 21314, 21316, 21318, {f: 3, c: 21323}, 21328,
+    {f: 2, c: 21336}, 21339, 21341, 21349, 21352, 21354, {f: 2, c: 21356},
+    21362, 21366, 21369, {f: 4, c: 21371}, {f: 2, c: 21376}, 21379,
+    {f: 2, c: 21383}, 21386, {f: 7, c: 21390}, {f: 2, c: 21398},
+    {f: 2, c: 21403}, 21406, 21409, 21412, 21415, {f: 3, c: 21418},
+    {f: 3, c: 21423}, 21427, 21429, {f: 4, c: 21431}, {f: 3, c: 21436}, 21440,
+    {f: 4, c: 21444}, {f: 3, c: 21454}, {f: 2, c: 21458}, 21461, 21466,
+    {f: 3, c: 21468}, 21473, 21479, 21492, 21498, {f: 3, c: 21502}, 21506,
+    21509, 21511, 21515, 21524, {f: 3, c: 21528}, 21532, 21538,
+    {f: 2, c: 21540}, 21546, 21552, 21555, {f: 2, c: 21558}, 21562, 21565,
+    21567, {f: 2, c: 21569}, {f: 2, c: 21572}, 21575, 21577, {f: 4, c: 21580},
+    21585, 21594, {f: 5, c: 21597}, 21603, 21605, 21607, {f: 8, c: 21609},
+    21620, {f: 2, c: 21625}, {f: 2, c: 21630}, 21633, 21635, 21637,
+    {f: 4, c: 21639}, 21645, 21649, 21651, {f: 2, c: 21655}, 21660,
+    {f: 5, c: 21662}, 21669, 21678, 21680, 21682, {f: 3, c: 21685},
+    {f: 2, c: 21689}, 21694, 21699, 21701, {f: 2, c: 21706}, 21718, 21720,
+    21723, 21728, {f: 3, c: 21730}, {f: 2, c: 21739}, {f: 3, c: 21743},
+    {f: 6, c: 21748}, 21755, 21758, 21760, {f: 2, c: 21762}, 21765, 21768,
+    {f: 5, c: 21770}, {f: 2, c: 21778}, {f: 6, c: 21781}, {f: 4, c: 21788},
+    21793, {f: 2, c: 21797}, {f: 2, c: 21800}, 21803, 21805, 21810,
+    {f: 3, c: 21812}, {f: 4, c: 21816}, 21821, 21824, 21826, 21829,
+    {f: 2, c: 21831}, {f: 4, c: 21835}, {f: 2, c: 21841}, 21844,
+    {f: 5, c: 21847}, 21853, {f: 2, c: 21855}, {f: 2, c: 21858},
+    {f: 2, c: 21864}, 21867, {f: 6, c: 21871}, {f: 2, c: 21881}, 21885, 21887,
+    {f: 2, c: 21893}, {f: 3, c: 21900}, 21904, {f: 2, c: 21906},
+    {f: 3, c: 21909}, {f: 2, c: 21914}, 21918, {f: 7, c: 21920},
+    {f: 2, c: 21928}, 21931, 21933, {f: 2, c: 21935}, 21940, 21942, 21944,
+    21946, 21948, {f: 5, c: 21951}, 21960, {f: 2, c: 21962}, {f: 2, c: 21967},
+    21973, {f: 3, c: 21975}, 21979, 21982, 21984, 21986, 21991,
+    {f: 2, c: 21997}, {f: 2, c: 22000}, 22004, {f: 5, c: 22008}, 22015,
+    {f: 4, c: 22018}, 22023, {f: 2, c: 22026}, {f: 4, c: 22032}, 22037,
+    {f: 2, c: 22041}, 22045, {f: 3, c: 22048}, {f: 2, c: 22053}, 22056,
+    {f: 2, c: 22058}, 22067, 22071, 22074, {f: 3, c: 22076}, 22080,
+    {f: 10, c: 22082}, {f: 5, c: 22095}, {f: 2, c: 22101}, {f: 2, c: 22106},
+    {f: 2, c: 22110}, 22113, 22115, 22119, {f: 2, c: 22125}, 22128, 22131,
+    22133, 22135, 22138, {f: 3, c: 22141}, {f: 4, c: 22145}, {f: 4, c: 22152},
+    22157, {f: 3, c: 22160}, 22164, {f: 3, c: 22166}, {f: 9, c: 22170},
+    {f: 2, c: 22180}, 22183, {f: 5, c: 22185}, {f: 3, c: 22192}, 22197,
+    {f: 4, c: 22200}, {f: 3, c: 22205}, {f: 2, c: 22211}, {f: 2, c: 22214},
+    22219, {f: 4, c: 22221}, {f: 2, c: 22226}, {f: 2, c: 22229},
+    {f: 2, c: 22232}, 22236, 22243, {f: 6, c: 22245}, 22252, {f: 2, c: 22254},
+    {f: 2, c: 22258}, {f: 3, c: 22262}, {f: 2, c: 22267}, {f: 3, c: 22272},
+    22277, 22284, {f: 4, c: 22286}, {f: 2, c: 22292}, 22295, {f: 3, c: 22297},
+    {f: 2, c: 22301}, {f: 3, c: 22304}, {f: 4, c: 22308}, 22315,
+    {f: 2, c: 22321}, {f: 5, c: 22324}, {f: 2, c: 22332}, 22335, 22337,
+    {f: 4, c: 22339}, {f: 2, c: 22344}, 22347, {f: 5, c: 22354},
+    {f: 2, c: 22360}, {f: 2, c: 22370}, 22373, 22375, 22380, 22382,
+    {f: 3, c: 22384}, {f: 2, c: 22388}, {f: 3, c: 22392}, {f: 5, c: 22397},
+    {f: 4, c: 22407}, {f: 5, c: 22413}, {f: 7, c: 22420}, {f: 4, c: 22428},
+    22437, 22440, 22442, 22444, {f: 3, c: 22447}, 22451, {f: 3, c: 22453},
+    {f: 9, c: 22457}, {f: 7, c: 22468}, {f: 2, c: 22476}, {f: 2, c: 22480},
+    22483, {f: 2, c: 22486}, {f: 2, c: 22491}, 22494, {f: 2, c: 22498},
+    {f: 8, c: 22501}, 22510, {f: 4, c: 22512}, {f: 2, c: 22517},
+    {f: 2, c: 22523}, {f: 2, c: 22526}, 22529, {f: 2, c: 22531},
+    {f: 2, c: 22536}, 22540, {f: 3, c: 22542}, {f: 3, c: 22546},
+    {f: 2, c: 22551}, {f: 3, c: 22554}, 22559, {f: 2, c: 22562},
+    {f: 5, c: 22565}, {f: 4, c: 22571}, {f: 2, c: 22578}, {f: 14, c: 22582},
+    {f: 5, c: 22597}, 22606, 22608, 22611, {f: 2, c: 22613}, {f: 5, c: 22617},
+    {f: 3, c: 22623}, 22627, {f: 5, c: 22630}, {f: 8, c: 22637},
+    {f: 3, c: 22646}, {f: 4, c: 22650}, 22655, 22658, 22660, {f: 3, c: 22662},
+    {f: 7, c: 22667}, {f: 5, c: 22676}, 22683, 22685, {f: 8, c: 22688},
+    {f: 4, c: 22698}, {f: 4, c: 22703}, {f: 7, c: 22708}, 22717,
+    {f: 2, c: 22719}, {f: 3, c: 22722}, 22726, {f: 9, c: 22728}, 22738, 22740,
+    {f: 2, c: 22742}, {f: 3, c: 22747}, 22753, 22755, {f: 4, c: 22757}, 22762,
+    22765, {f: 2, c: 22769}, {f: 2, c: 22772}, {f: 2, c: 22775},
+    {f: 2, c: 22779}, {f: 4, c: 22782}, 22787, {f: 2, c: 22789},
+    {f: 2, c: 22792}, [12066, 22794], {f: 2, c: 22795}, 22798,
+    {f: 4, c: 22800}, {f: 2, c: 22807}, 22811, {f: 2, c: 22813},
+    {f: 2, c: 22816}, 22819, 22822, 22824, 22828, 22832, {f: 2, c: 22834},
+    {f: 2, c: 22837}, 22843, 22845, {f: 2, c: 22847}, 22851, {f: 2, c: 22853},
+    22858, {f: 2, c: 22860}, 22864, {f: 2, c: 22866}, 22873, {f: 5, c: 22875},
+    22881, {f: 2, c: 22883}, {f: 3, c: 22886}, 22891, 22893, {f: 4, c: 22895},
+    22901, 22903, {f: 3, c: 22906}, {f: 3, c: 22910}, 22917, 22921,
+    {f: 2, c: 22923}, {f: 4, c: 22926}, {f: 2, c: 22932}, 22936,
+    {f: 3, c: 22938}, {f: 4, c: 22943}, {f: 2, c: 22950}, {f: 2, c: 22956},
+    {f: 2, c: 22960}, {f: 6, c: 22963}, 22970, {f: 2, c: 22972},
+    {f: 7, c: 22975}, {f: 3, c: 22983}, {f: 4, c: 22988}, {f: 2, c: 22997},
+    23001, 23003, {f: 5, c: 23006}, 23012, {f: 2, c: 23014}, {f: 3, c: 23017},
+    {f: 12, c: 23021}, 23034, {f: 3, c: 23036}, 23040, 23042, {f: 2, c: 23050},
+    {f: 4, c: 23053}, 23058, {f: 4, c: 23060}, {f: 3, c: 23065},
+    {f: 2, c: 23069}, {f: 2, c: 23073}, 23076, {f: 3, c: 23078},
+    {f: 7, c: 23082}, 23091, 23093, {f: 5, c: 23095}, {f: 3, c: 23101},
+    {f: 4, c: 23106}, {f: 2, c: 23111}, {f: 10, c: 23115}, {f: 4, c: 23126},
+    {f: 7, c: 23131}, {f: 3, c: 23139}, {f: 2, c: 23144}, {f: 2, c: 23147},
+    {f: 6, c: 23150}, {f: 2, c: 23160}, {f: 4, c: 23163}, {f: 18, c: 23168},
+    {f: 7, c: 23187}, {f: 11, c: 23196}, {f: 2, c: 23208}, {f: 7, c: 23211},
+    23220, {f: 2, c: 23222}, {f: 4, c: 23225}, {f: 2, c: 23231},
+    {f: 6, c: 23235}, {f: 2, c: 23242}, {f: 5, c: 23245}, 23251, 23253,
+    {f: 3, c: 23257}, {f: 3, c: 23261}, 23266, {f: 2, c: 23268},
+    {f: 2, c: 23271}, 23274, {f: 5, c: 23276}, {f: 3, c: 23282},
+    {f: 5, c: 23286}, {f: 4, c: 23292}, {f: 7, c: 23297}, 23306,
+    {f: 9, c: 23309}, 23320, {f: 7, c: 23322}, {f: 8, c: 23330},
+    {f: 5, c: 23339}, 23345, 23347, {f: 2, c: 23349}, {f: 7, c: 23353},
+    {f: 11, c: 23361}, {f: 3, c: 23373}, 23378, 23382, 23390, {f: 2, c: 23392},
+    {f: 2, c: 23399}, {f: 3, c: 23405}, 23410, 23412, {f: 2, c: 23414}, 23417,
+    {f: 2, c: 23419}, 23422, 23426, 23430, 23434, {f: 2, c: 23437},
+    {f: 3, c: 23440}, 23444, 23446, 23455, {f: 3, c: 23463}, {f: 4, c: 23468},
+    {f: 2, c: 23473}, 23479, {f: 3, c: 23482}, {f: 2, c: 23488}, 23491,
+    {f: 4, c: 23496}, {f: 3, c: 23501}, 23505, {f: 9, c: 23508}, 23520, 23523,
+    23530, 23533, 23535, {f: 4, c: 23537}, 23543, {f: 2, c: 23549}, 23552,
+    {f: 2, c: 23554}, 23557, 23564, 23568, {f: 2, c: 23570}, 23575, 23577,
+    23579, {f: 4, c: 23582}, 23587, 23590, {f: 4, c: 23592}, {f: 4, c: 23597},
+    {f: 2, c: 23602}, {f: 2, c: 23605}, {f: 2, c: 23619}, {f: 2, c: 23622},
+    {f: 2, c: 23628}, {f: 3, c: 23634}, {f: 3, c: 23638}, {f: 4, c: 23642},
+    23647, 23655, {f: 3, c: 23657}, 23661, 23664, {f: 7, c: 23666},
+    {f: 4, c: 23675}, 23680, {f: 5, c: 23683}, {f: 3, c: 23689},
+    {f: 2, c: 23694}, {f: 2, c: 23698}, 23701, {f: 4, c: 23709},
+    {f: 5, c: 23716}, 23722, {f: 3, c: 23726}, 23730, 23732, 23734,
+    {f: 4, c: 23737}, 23742, 23744, {f: 2, c: 23746}, {f: 6, c: 23749},
+    {f: 6, c: 23756}, {f: 6, c: 23763}, {f: 7, c: 23770}, {f: 2, c: 23778},
+    23783, 23785, {f: 2, c: 23787}, {f: 2, c: 23790}, {f: 3, c: 23793}, 23797,
+    {f: 4, c: 23799}, 23804, {f: 4, c: 23806}, {f: 2, c: 23812},
+    {f: 5, c: 23816}, {f: 5, c: 23823}, 23829, {f: 3, c: 23832},
+    {f: 2, c: 23836}, {f: 5, c: 23839}, 23845, 23848, {f: 2, c: 23850},
+    {f: 5, c: 23855}, {f: 8, c: 23861}, {f: 8, c: 23871}, {f: 2, c: 23880},
+    {f: 3, c: 23885}, {f: 7, c: 23889}, {f: 2, c: 23897}, 23900,
+    {f: 11, c: 23902}, 23914, {f: 2, c: 23917}, {f: 4, c: 23920},
+    {f: 12, c: 23925}, 23939, {f: 2, c: 23941}, {f: 15, c: 23944}, 23960,
+    {f: 3, c: 23962}, {f: 2, c: 23966}, {f: 6, c: 23969}, {f: 15, c: 23976},
+    23993, 23995, {f: 8, c: 23997}, {f: 5, c: 24006}, 24012, {f: 4, c: 24014},
+    24019, {f: 6, c: 24021}, 24028, {f: 2, c: 24031}, {f: 2, c: 24035}, 24042,
+    {f: 2, c: 24044}, {f: 2, c: 24053}, {f: 5, c: 24056}, {f: 2, c: 24063},
+    24068, 24071, {f: 3, c: 24073}, {f: 2, c: 24077}, {f: 2, c: 24082}, 24087,
+    {f: 7, c: 24094}, {f: 3, c: 24104}, 24108, {f: 2, c: 24111}, 24114,
+    {f: 2, c: 24116}, {f: 2, c: 24121}, {f: 2, c: 24126}, 24129,
+    {f: 6, c: 24134}, {f: 7, c: 24141}, 24150, {f: 2, c: 24153},
+    {f: 2, c: 24156}, 24160, {f: 7, c: 24164}, {f: 5, c: 24173}, 24181, 24183,
+    {f: 3, c: 24193}, 24197, {f: 2, c: 24200}, {f: 3, c: 24204}, 24210, 24216,
+    24219, 24221, {f: 4, c: 24225}, {f: 3, c: 24232}, 24236, {f: 5, c: 24238},
+    24244, {f: 4, c: 24250}, {f: 10, c: 24255}, {f: 6, c: 24267},
+    {f: 2, c: 24276}, {f: 4, c: 24279}, {f: 3, c: 24284}, {f: 4, c: 24292},
+    24297, 24299, {f: 6, c: 24301}, 24309, {f: 2, c: 24312}, {f: 3, c: 24315},
+    {f: 3, c: 24325}, 24329, {f: 3, c: 24332}, 24336, 24338, 24340, 24342,
+    {f: 2, c: 24345}, {f: 3, c: 24348}, {f: 4, c: 24353}, 24360,
+    {f: 2, c: 24363}, 24366, 24368, 24370, 24372, {f: 3, c: 24374}, 24379,
+    {f: 3, c: 24381}, {f: 5, c: 24385}, 24391, {f: 3, c: 24393}, 24397, 24399,
+    24401, 24404, {f: 3, c: 24410}, {f: 3, c: 24414}, 24419, 24421,
+    {f: 2, c: 24423}, 24427, {f: 2, c: 24430}, 24434, {f: 3, c: 24436}, 24440,
+    24442, {f: 3, c: 24445}, 24451, 24454, {f: 3, c: 24461}, {f: 2, c: 24467},
+    24470, {f: 2, c: 24474}, 24477, 24479, {f: 6, c: 24482}, {f: 2, c: 24491},
+    {f: 6, c: 24495}, 24502, 24504, {f: 2, c: 24506}, {f: 5, c: 24510},
+    {f: 2, c: 24519}, {f: 2, c: 24522}, 24526, {f: 3, c: 24531},
+    {f: 3, c: 24538}, {f: 2, c: 24542}, {f: 2, c: 24546}, {f: 2, c: 24549},
+    {f: 2, c: 24552}, 24556, {f: 2, c: 24559}, {f: 3, c: 24562},
+    {f: 2, c: 24566}, {f: 2, c: 24569}, 24572, {f: 3, c: 24583},
+    {f: 2, c: 24587}, {f: 2, c: 24592}, 24595, {f: 2, c: 24599}, 24602,
+    {f: 2, c: 24606}, {f: 3, c: 24610}, {f: 3, c: 24620}, {f: 5, c: 24624},
+    {f: 5, c: 24630}, {f: 2, c: 24637}, 24640, {f: 7, c: 24644}, 24652,
+    {f: 2, c: 24654}, 24657, {f: 2, c: 24659}, {f: 3, c: 24662},
+    {f: 2, c: 24667}, {f: 4, c: 24670}, {f: 2, c: 24677}, 24686,
+    {f: 2, c: 24689}, {f: 2, c: 24692}, 24695, 24702, {f: 3, c: 24704},
+    {f: 4, c: 24709}, {f: 2, c: 24714}, {f: 4, c: 24718}, 24723, 24725,
+    {f: 3, c: 24727}, 24732, 24734, {f: 2, c: 24737}, {f: 2, c: 24740}, 24743,
+    {f: 2, c: 24745}, 24750, 24752, 24755, 24759, {f: 2, c: 24761},
+    {f: 8, c: 24765}, {f: 3, c: 24775}, {f: 5, c: 24780}, {f: 3, c: 24786},
+    {f: 2, c: 24790}, 24793, 24795, 24798, {f: 4, c: 24802}, 24810, 24821,
+    {f: 2, c: 24823}, {f: 4, c: 24828}, {f: 4, c: 24834}, 24839,
+    {f: 3, c: 24842}, {f: 5, c: 24848}, {f: 4, c: 24854}, {f: 2, c: 24861},
+    {f: 2, c: 24865}, 24869, {f: 3, c: 24872}, {f: 8, c: 24876},
+    {f: 2, c: 24885}, {f: 6, c: 24888}, {f: 8, c: 24896}, 24905, 24909,
+    {f: 2, c: 24911}, {f: 3, c: 24914}, {f: 2, c: 24918}, 24921,
+    {f: 2, c: 24923}, 24926, {f: 2, c: 24928}, {f: 2, c: 24933}, 24937,
+    {f: 2, c: 24940}, 24943, {f: 2, c: 24945}, 24948, {f: 10, c: 24952},
+    {f: 7, c: 24963}, {f: 2, c: 24972}, 24975, 24979, {f: 5, c: 24981},
+    {f: 2, c: 24987}, {f: 6, c: 24990}, {f: 2, c: 24997}, 25002, 25005,
+    {f: 3, c: 25007}, {f: 3, c: 25011}, {f: 6, c: 25016}, {f: 3, c: 25023},
+    {f: 4, c: 25027}, {f: 4, c: 25037}, 25043, {f: 9, c: 25045},
+    {f: 3, c: 25056}, {f: 2, c: 25060}, 25063, {f: 9, c: 25065},
+    {f: 2, c: 25075}, 25081, 25083, 25085, {f: 5, c: 25089}, 25097, 25107,
+    25113, {f: 3, c: 25116}, 25120, 25123, 25126, {f: 2, c: 25128}, 25131,
+    25133, 25135, 25137, 25141, [12094, 25142], {f: 5, c: 25144}, 25154,
+    {f: 3, c: 25156}, 25162, {f: 2, c: 25167}, {f: 3, c: 25173},
+    {f: 2, c: 25177}, {f: 7, c: 25180}, {f: 2, c: 25188}, 25192,
+    {f: 2, c: 25201}, {f: 2, c: 25204}, {f: 2, c: 25207}, {f: 2, c: 25210},
+    25213, {f: 3, c: 25217}, {f: 4, c: 25221}, {f: 6, c: 25227}, 25236, 25241,
+    {f: 3, c: 25244}, 25251, {f: 2, c: 25254}, {f: 2, c: 25257},
+    {f: 4, c: 25261}, {f: 3, c: 25266}, {f: 3, c: 25270}, 25274, 25278,
+    {f: 2, c: 25280}, 25283, 25291, 25295, 25297, 25301, {f: 2, c: 25309},
+    {f: 2, c: 25312}, 25316, {f: 2, c: 25322}, 25328, 25330, 25333,
+    {f: 4, c: 25336}, 25344, {f: 4, c: 25347}, {f: 4, c: 25354},
+    {f: 2, c: 25359}, {f: 4, c: 25362}, {f: 3, c: 25367}, 25372,
+    {f: 2, c: 25382}, 25385, {f: 3, c: 25388}, {f: 2, c: 25392},
+    {f: 6, c: 25395}, {f: 2, c: 25403}, {f: 3, c: 25407}, 25412,
+    {f: 2, c: 25415}, 25418, {f: 4, c: 25425}, {f: 8, c: 25430}, 25440,
+    {f: 3, c: 25444}, 25450, 25452, {f: 2, c: 25455}, {f: 3, c: 25459},
+    {f: 2, c: 25464}, {f: 4, c: 25468}, 25473, {f: 2, c: 25477}, 25483, 25485,
+    25489, {f: 3, c: 25491}, 25495, {f: 7, c: 25497}, 25505, 25508, 25510,
+    25515, 25519, {f: 2, c: 25521}, {f: 2, c: 25525}, 25529, 25531, 25533,
+    25535, {f: 3, c: 25537}, 25541, {f: 2, c: 25543}, {f: 3, c: 25546}, 25553,
+    {f: 3, c: 25555}, {f: 3, c: 25559}, {f: 3, c: 25563}, 25567, 25570,
+    {f: 5, c: 25572}, {f: 2, c: 25579}, {f: 3, c: 25583}, 25587, 25589, 25591,
+    {f: 4, c: 25593}, 25598, {f: 2, c: 25603}, {f: 5, c: 25606}, 25614,
+    {f: 2, c: 25617}, {f: 2, c: 25621}, {f: 3, c: 25624}, 25629, 25631,
+    {f: 4, c: 25634}, {f: 3, c: 25639}, 25643, {f: 6, c: 25646}, 25653,
+    {f: 3, c: 25655}, {f: 2, c: 25659}, 25662, 25664, {f: 2, c: 25666}, 25673,
+    {f: 6, c: 25675}, 25683, {f: 3, c: 25685}, {f: 3, c: 25689}, 25693,
+    {f: 7, c: 25696}, 25704, {f: 3, c: 25706}, 25710, {f: 3, c: 25712},
+    {f: 2, c: 25716}, 25719, {f: 6, c: 25724}, 25731, 25734, {f: 8, c: 25737},
+    25748, {f: 2, c: 25751}, {f: 4, c: 25754}, {f: 3, c: 25760},
+    {f: 3, c: 25766}, 25770, 25775, 25777, 25780, 25782, 25785, 25789, 25795,
+    25798, {f: 2, c: 25800}, 25804, 25807, 25809, 25811, {f: 2, c: 25813},
+    25817, {f: 3, c: 25819}, 25823, 25825, 25827, 25829, {f: 5, c: 25831},
+    {f: 2, c: 25837}, 25843, {f: 2, c: 25845}, {f: 2, c: 25848}, 25853, 25855,
+    {f: 3, c: 25857}, 25861, {f: 2, c: 25863}, {f: 5, c: 25866},
+    {f: 2, c: 25872}, 25875, 25877, 25879, 25882, 25884, {f: 4, c: 25886},
+    {f: 4, c: 25894}, 25901, {f: 4, c: 25904}, 25911, 25914, {f: 2, c: 25916},
+    {f: 5, c: 25920}, {f: 2, c: 25926}, {f: 2, c: 25930}, {f: 2, c: 25933},
+    25936, {f: 3, c: 25938}, 25944, 25946, 25948, {f: 3, c: 25951},
+    {f: 2, c: 25956}, {f: 4, c: 25959}, {f: 3, c: 25965}, 25969, 25971, 25974,
+    {f: 9, c: 25977}, {f: 3, c: 25988}, {f: 3, c: 25992}, {f: 3, c: 25997},
+    26002, 26004, 26006, 26008, 26010, {f: 2, c: 26013}, 26016,
+    {f: 2, c: 26018}, 26022, 26024, 26026, 26030, {f: 6, c: 26033}, 26040,
+    {f: 2, c: 26042}, {f: 3, c: 26046}, 26050, {f: 4, c: 26055}, 26061,
+    {f: 2, c: 26064}, {f: 3, c: 26067}, {f: 8, c: 26072}, 26081,
+    {f: 2, c: 26083}, {f: 2, c: 26090}, {f: 4, c: 26098}, {f: 2, c: 26104},
+    {f: 5, c: 26107}, 26113, {f: 2, c: 26116}, {f: 3, c: 26119}, 26123, 26125,
+    {f: 3, c: 26128}, {f: 3, c: 26134}, {f: 3, c: 26138}, 26142,
+    {f: 4, c: 26145}, 26150, {f: 4, c: 26153}, 26158, 26160, {f: 2, c: 26162},
+    {f: 5, c: 26167}, 26173, {f: 2, c: 26175}, {f: 7, c: 26180},
+    {f: 2, c: 26189}, {f: 2, c: 26192}, {f: 2, c: 26200}, {f: 2, c: 26203},
+    26206, 26208, {f: 2, c: 26210}, 26213, 26215, {f: 5, c: 26217},
+    {f: 3, c: 26225}, 26229, {f: 2, c: 26232}, {f: 3, c: 26235},
+    {f: 3, c: 26239}, 26243, {f: 2, c: 26245}, {f: 2, c: 26250},
+    {f: 4, c: 26253}, {f: 4, c: 26258}, {f: 5, c: 26264}, {f: 4, c: 26270},
+    {f: 4, c: 26275}, {f: 2, c: 26281}, {f: 2, c: 26284}, {f: 5, c: 26287},
+    {f: 4, c: 26293}, {f: 4, c: 26298}, {f: 5, c: 26303}, 26309, 26312,
+    {f: 12, c: 26314}, {f: 2, c: 26327}, 26330, {f: 2, c: 26334},
+    {f: 5, c: 26337}, {f: 2, c: 26343}, {f: 2, c: 26346}, {f: 3, c: 26349},
+    26353, {f: 2, c: 26357}, {f: 2, c: 26362}, 26365, {f: 2, c: 26369},
+    {f: 4, c: 26372}, 26380, {f: 2, c: 26382}, {f: 3, c: 26385}, 26390,
+    {f: 3, c: 26392}, 26396, 26398, {f: 6, c: 26400}, 26409, 26414, 26416,
+    {f: 2, c: 26418}, {f: 4, c: 26422}, {f: 2, c: 26427}, {f: 2, c: 26430},
+    26433, {f: 2, c: 26436}, 26439, {f: 2, c: 26442}, 26445, 26450,
+    {f: 2, c: 26452}, {f: 5, c: 26455}, 26461, {f: 3, c: 26466},
+    {f: 2, c: 26470}, {f: 2, c: 26475}, 26478, 26484, 26486, {f: 4, c: 26488},
+    26493, 26496, {f: 2, c: 26498}, {f: 2, c: 26501}, 26504, 26506,
+    {f: 4, c: 26508}, {f: 4, c: 26513}, 26518, 26521, 26523, {f: 3, c: 26527},
+    26532, 26534, 26537, 26540, 26542, {f: 2, c: 26545}, 26548,
+    {f: 8, c: 26553}, 26562, {f: 10, c: 26565}, {f: 3, c: 26581}, 26587, 26591,
+    26593, {f: 2, c: 26595}, {f: 3, c: 26598}, {f: 2, c: 26602},
+    {f: 2, c: 26605}, 26610, {f: 8, c: 26613}, 26622, {f: 4, c: 26625}, 26630,
+    26637, 26640, 26642, {f: 2, c: 26644}, {f: 5, c: 26648}, {f: 3, c: 26654},
+    {f: 7, c: 26658}, {f: 7, c: 26667}, {f: 3, c: 26676}, {f: 2, c: 26682},
+    26687, 26695, 26699, 26701, 26703, 26706, {f: 10, c: 26710}, 26730,
+    {f: 8, c: 26732}, 26741, {f: 9, c: 26744}, 26754, 26756, {f: 8, c: 26759},
+    {f: 3, c: 26768}, {f: 3, c: 26772}, {f: 4, c: 26777}, 26782,
+    {f: 2, c: 26784}, {f: 3, c: 26787}, {f: 4, c: 26793}, 26798,
+    {f: 2, c: 26801}, 26804, {f: 10, c: 26806}, 26817, {f: 6, c: 26819}, 26826,
+    26828, {f: 4, c: 26830}, {f: 2, c: 26835}, 26841, {f: 4, c: 26843},
+    {f: 2, c: 26849}, {f: 3, c: 26852}, {f: 6, c: 26856}, 26863,
+    {f: 3, c: 26866}, {f: 3, c: 26870}, 26875, {f: 4, c: 26877},
+    {f: 3, c: 26882}, {f: 5, c: 26886}, 26892, 26897, {f: 12, c: 26899},
+    {f: 3, c: 26913}, {f: 8, c: 26917}, {f: 2, c: 26926}, {f: 3, c: 26929},
+    {f: 4, c: 26933}, {f: 3, c: 26938}, 26942, {f: 2, c: 26944},
+    {f: 7, c: 26947}, {f: 8, c: 26955}, {f: 2, c: 26965}, {f: 2, c: 26968},
+    {f: 2, c: 26971}, 26975, {f: 2, c: 26977}, {f: 2, c: 26980}, 26983,
+    {f: 2, c: 26985}, 26988, {f: 2, c: 26991}, {f: 3, c: 26994}, 26998,
+    {f: 2, c: 27002}, {f: 3, c: 27005}, 27009, 27011, 27013, {f: 3, c: 27018},
+    {f: 6, c: 27022}, {f: 2, c: 27030}, {f: 2, c: 27033}, {f: 10, c: 27037},
+    27049, 27052, {f: 2, c: 27055}, {f: 2, c: 27058}, {f: 2, c: 27061},
+    {f: 3, c: 27064}, {f: 3, c: 27068}, 27072, {f: 8, c: 27074}, 27087,
+    {f: 3, c: 27089}, {f: 6, c: 27093}, {f: 3, c: 27100}, {f: 6, c: 27105},
+    {f: 5, c: 27112}, {f: 4, c: 27118}, {f: 9, c: 27124}, 27134, 27136,
+    {f: 2, c: 27139}, {f: 4, c: 27142}, {f: 8, c: 27147}, {f: 3, c: 27156},
+    {f: 4, c: 27162}, 27168, 27170, {f: 4, c: 27172}, 27177, {f: 4, c: 27179},
+    27184, {f: 3, c: 27186}, {f: 2, c: 27190}, {f: 2, c: 27195},
+    {f: 5, c: 27199}, {f: 2, c: 27205}, {f: 2, c: 27209}, {f: 4, c: 27212},
+    {f: 7, c: 27217}, 27226, {f: 3, c: 27228}, 27232, {f: 2, c: 27235},
+    {f: 11, c: 27238}, {f: 7, c: 27250}, {f: 2, c: 27258}, {f: 3, c: 27261},
+    {f: 3, c: 27265}, {f: 4, c: 27269}, {f: 4, c: 27274}, 27279,
+    {f: 2, c: 27282}, {f: 2, c: 27285}, {f: 4, c: 27288}, {f: 3, c: 27293},
+    27297, {f: 5, c: 27300}, 27306, {f: 2, c: 27309}, {f: 3, c: 27312},
+    {f: 4, c: 27316}, {f: 2, c: 27321}, {f: 7, c: 27324}, {f: 15, c: 27332},
+    {f: 6, c: 27348}, 27356, {f: 7, c: 27360}, 27369, 27371, {f: 6, c: 27373},
+    {f: 4, c: 27380}, {f: 2, c: 27385}, {f: 8, c: 27388}, {f: 5, c: 27397},
+    {f: 4, c: 27403}, {f: 2, c: 27408}, {f: 3, c: 27411}, {f: 7, c: 27415},
+    27423, {f: 2, c: 27429}, {f: 10, c: 27432}, {f: 4, c: 27443}, 27448,
+    {f: 2, c: 27451}, {f: 4, c: 27455}, {f: 2, c: 27460}, 27464,
+    {f: 2, c: 27466}, {f: 3, c: 27469}, {f: 8, c: 27473}, {f: 5, c: 27482},
+    27488, {f: 2, c: 27496}, {f: 7, c: 27499}, {f: 4, c: 27507}, 27514,
+    {f: 4, c: 27517}, 27525, 27528, 27532, {f: 4, c: 27534}, {f: 2, c: 27540},
+    27543, 27545, {f: 2, c: 27548}, {f: 2, c: 27551}, {f: 2, c: 27554},
+    {f: 5, c: 27557}, {f: 2, c: 27564}, {f: 2, c: 27568}, 27574,
+    {f: 2, c: 27576}, {f: 3, c: 27580}, 27584, {f: 2, c: 27587},
+    {f: 4, c: 27591}, 27596, 27598, {f: 2, c: 27600}, 27608, 27610,
+    {f: 5, c: 27612}, {f: 8, c: 27618}, {f: 3, c: 27628}, {f: 3, c: 27632},
+    27636, {f: 3, c: 27638}, {f: 3, c: 27642}, 27646, {f: 5, c: 27648},
+    {f: 3, c: 27657}, 27662, 27666, 27671, {f: 3, c: 27676}, 27680, 27685,
+    27693, 27697, 27699, {f: 2, c: 27702}, {f: 4, c: 27705}, {f: 2, c: 27710},
+    {f: 3, c: 27715}, 27720, {f: 5, c: 27723}, {f: 3, c: 27729}, 27734,
+    {f: 3, c: 27736}, {f: 2, c: 27746}, {f: 3, c: 27749}, {f: 5, c: 27755},
+    27761, 27763, 27765, {f: 2, c: 27767}, {f: 3, c: 27770}, {f: 2, c: 27775},
+    27780, 27783, {f: 2, c: 27786}, {f: 2, c: 27789}, {f: 2, c: 27793},
+    {f: 4, c: 27797}, 27802, {f: 3, c: 27804}, 27808, 27810, 27816, 27820,
+    {f: 2, c: 27823}, {f: 4, c: 27828}, 27834, {f: 4, c: 27840},
+    {f: 3, c: 27846}, 27851, {f: 3, c: 27853}, {f: 2, c: 27857},
+    {f: 3, c: 27864}, {f: 2, c: 27868}, 27871, 27876, {f: 2, c: 27878}, 27881,
+    {f: 2, c: 27884}, 27890, 27892, 27897, {f: 2, c: 27903}, {f: 2, c: 27906},
+    {f: 2, c: 27909}, {f: 3, c: 27912}, 27917, {f: 3, c: 27919},
+    {f: 4, c: 27923}, 27928, {f: 2, c: 27932}, {f: 6, c: 27935}, 27942,
+    {f: 2, c: 27944}, {f: 2, c: 27948}, {f: 2, c: 27951}, 27956,
+    {f: 3, c: 27958}, 27962, {f: 2, c: 27967}, 27970, 27972, 27977, 27980,
+    27984, {f: 4, c: 27989}, 27995, 27997, 27999, {f: 2, c: 28001},
+    {f: 2, c: 28004}, {f: 2, c: 28007}, {f: 3, c: 28011}, {f: 4, c: 28016},
+    {f: 2, c: 28021}, {f: 2, c: 28026}, {f: 5, c: 28029}, {f: 2, c: 28035},
+    28038, {f: 2, c: 28042}, 28045, {f: 2, c: 28047}, 28050, {f: 5, c: 28054},
+    28060, 28066, 28069, {f: 2, c: 28076}, {f: 2, c: 28080}, {f: 2, c: 28083},
+    {f: 2, c: 28086}, {f: 6, c: 28089}, {f: 3, c: 28097}, {f: 3, c: 28104},
+    {f: 4, c: 28109}, {f: 4, c: 28114}, 28119, {f: 3, c: 28122}, 28127,
+    {f: 2, c: 28130}, 28133, {f: 3, c: 28135}, 28141, {f: 2, c: 28143}, 28146,
+    28148, 28152, {f: 8, c: 28157}, {f: 4, c: 28166}, 28171, 28175,
+    {f: 2, c: 28178}, 28181, {f: 2, c: 28184}, {f: 2, c: 28187},
+    {f: 2, c: 28190}, 28194, {f: 2, c: 28199}, 28202, 28206, {f: 2, c: 28208},
+    28211, {f: 3, c: 28213}, 28217, {f: 3, c: 28219}, {f: 4, c: 28223},
+    {f: 8, c: 28229}, {f: 4, c: 28239}, 28245, 28247, {f: 2, c: 28249},
+    {f: 2, c: 28252}, {f: 11, c: 28256}, {f: 2, c: 28268}, {f: 14, c: 28272},
+    {f: 3, c: 28288}, 28292, {f: 2, c: 28295}, {f: 5, c: 28298},
+    {f: 5, c: 28305}, 28311, {f: 3, c: 28313}, 28318, {f: 2, c: 28320},
+    {f: 2, c: 28323}, 28326, {f: 2, c: 28328}, {f: 4, c: 28331}, 28336, 28339,
+    28341, {f: 2, c: 28344}, 28348, {f: 3, c: 28350}, 28355, 28358,
+    {f: 3, c: 28360}, 28365, 28368, 28370, 28374, {f: 2, c: 28376},
+    {f: 3, c: 28379}, 28387, 28391, {f: 2, c: 28394}, {f: 2, c: 28397},
+    {f: 2, c: 28400}, 28403, {f: 2, c: 28405}, {f: 5, c: 28410}, 28416,
+    {f: 3, c: 28419}, {f: 2, c: 28423}, {f: 5, c: 28426}, {f: 3, c: 28432},
+    {f: 4, c: 28438}, {f: 5, c: 28443}, 28449, {f: 4, c: 28453}, 28462, 28464,
+    {f: 2, c: 28468}, 28471, {f: 5, c: 28473}, 28480, {f: 4, c: 28482},
+    {f: 3, c: 28488}, 28492, {f: 3, c: 28494}, {f: 2, c: 28498},
+    {f: 3, c: 28501}, {f: 2, c: 28506}, 28509, {f: 3, c: 28511}, 28515, 28517,
+    {f: 6, c: 28519}, 28529, 28531, {f: 2, c: 28533}, 28537, 28539,
+    {f: 2, c: 28541}, {f: 3, c: 28545}, 28549, {f: 2, c: 28554},
+    {f: 8, c: 28559}, {f: 4, c: 28568}, {f: 3, c: 28573}, {f: 2, c: 28578},
+    {f: 2, c: 28581}, 28584, {f: 4, c: 28586}, {f: 2, c: 28591}, 28594,
+    {f: 2, c: 28596}, {f: 2, c: 28599}, {f: 6, c: 28602}, {f: 5, c: 28612},
+    {f: 7, c: 28618}, {f: 2, c: 28627}, {f: 2, c: 28630}, {f: 2, c: 28633},
+    {f: 2, c: 28636}, {f: 2, c: 28642}, {f: 6, c: 28645}, {f: 2, c: 28652},
+    {f: 8, c: 28658}, 28667, 28669, {f: 6, c: 28671}, {f: 2, c: 28679}, 28682,
+    {f: 3, c: 28684}, 28688, {f: 3, c: 28690}, {f: 2, c: 28694}, 28697, 28700,
+    28702, {f: 2, c: 28705}, {f: 3, c: 28708}, {f: 7, c: 28713}, 28721,
+    {f: 2, c: 28723}, {f: 3, c: 28726}, {f: 4, c: 28730}, {f: 4, c: 28735},
+    {f: 7, c: 28741}, {f: 2, c: 28749}, 28752, {f: 3, c: 28754},
+    {f: 2, c: 28758}, {f: 4, c: 28761}, {f: 4, c: 28767}, {f: 2, c: 28773},
+    {f: 3, c: 28776}, 28782, {f: 4, c: 28785}, 28791, {f: 3, c: 28793}, 28797,
+    {f: 4, c: 28801}, {f: 3, c: 28806}, {f: 3, c: 28811}, {f: 3, c: 28815},
+    28819, {f: 2, c: 28823}, {f: 2, c: 28826}, {f: 13, c: 28830}, 28848, 28850,
+    {f: 3, c: 28852}, 28858, {f: 2, c: 28862}, {f: 4, c: 28868}, 28873,
+    {f: 4, c: 28875}, {f: 8, c: 28880}, 28890, {f: 3, c: 28892},
+    {f: 4, c: 28896}, 28901, 28906, 28910, {f: 4, c: 28912}, {f: 2, c: 28917},
+    28920, {f: 3, c: 28922}, {f: 11, c: 28926}, {f: 5, c: 28939},
+    {f: 2, c: 28945}, 28948, 28951, {f: 6, c: 28955}, {f: 4, c: 28962},
+    {f: 8, c: 28967}, {f: 4, c: 28978}, {f: 14, c: 28983}, {f: 3, c: 28998},
+    29003, 29005, {f: 3, c: 29007}, {f: 9, c: 29011}, 29021, {f: 3, c: 29023},
+    29027, 29029, {f: 2, c: 29034}, 29037, {f: 3, c: 29039}, {f: 4, c: 29044},
+    29049, {f: 2, c: 29051}, {f: 6, c: 29054}, {f: 5, c: 29061},
+    {f: 4, c: 29067}, {f: 2, c: 29072}, 29075, {f: 2, c: 29077},
+    {f: 5, c: 29082}, {f: 7, c: 29089}, {f: 3, c: 29097}, {f: 4, c: 29101},
+    29106, 29108, {f: 3, c: 29110}, {f: 4, c: 29114}, {f: 2, c: 29119}, 29122,
+    {f: 4, c: 29124}, {f: 5, c: 29129}, {f: 3, c: 29135}, 29139,
+    {f: 3, c: 29142}, {f: 2, c: 29146}, {f: 2, c: 29149}, {f: 4, c: 29153},
+    {f: 5, c: 29160}, {f: 5, c: 29167}, {f: 4, c: 29173}, {f: 2, c: 29178},
+    29181, {f: 7, c: 29183}, {f: 6, c: 29191}, {f: 2, c: 29198},
+    {f: 10, c: 29201}, 29212, {f: 10, c: 29214}, 29225, 29227,
+    {f: 3, c: 29229}, {f: 2, c: 29235}, 29244, {f: 7, c: 29248},
+    {f: 3, c: 29257}, {f: 4, c: 29262}, {f: 3, c: 29267}, 29271, 29274, 29276,
+    29278, 29280, {f: 3, c: 29283}, 29288, {f: 4, c: 29290}, {f: 2, c: 29296},
+    {f: 2, c: 29299}, {f: 3, c: 29302}, {f: 2, c: 29307}, {f: 2, c: 29314},
+    {f: 5, c: 29317}, 29324, 29326, {f: 2, c: 29328}, {f: 3, c: 29331},
+    {f: 8, c: 29335}, {f: 2, c: 29344}, {f: 4, c: 29347}, {f: 4, c: 29352},
+    29358, {f: 3, c: 29361}, 29365, {f: 6, c: 29370}, {f: 3, c: 29381},
+    {f: 4, c: 29385}, 29391, 29393, {f: 4, c: 29395}, 29400, {f: 4, c: 29402},
+    29407, {f: 6, c: 29410}, {f: 2, c: 29418}, {f: 2, c: 29429},
+    {f: 3, c: 29438}, 29442, {f: 6, c: 29444}, {f: 3, c: 29451},
+    {f: 4, c: 29455}, 29460, {f: 3, c: 29464}, {f: 2, c: 29471},
+    {f: 2, c: 29475}, {f: 3, c: 29478}, 29485, {f: 2, c: 29487},
+    {f: 2, c: 29490}, 29493, 29498, {f: 2, c: 29500}, 29504, {f: 2, c: 29506},
+    {f: 7, c: 29510}, {f: 2, c: 29518}, 29521, {f: 4, c: 29523},
+    {f: 8, c: 29528}, {f: 7, c: 29537}, 29545, 29550, 29553, {f: 2, c: 29555},
+    29558, 29561, 29565, 29567, {f: 3, c: 29569}, {f: 2, c: 29573}, 29576,
+    29578, {f: 2, c: 29580}, {f: 2, c: 29583}, {f: 4, c: 29586},
+    {f: 4, c: 29591}, {f: 3, c: 29596}, {f: 2, c: 29600}, {f: 6, c: 29603},
+    29610, {f: 2, c: 29612}, 29617, {f: 3, c: 29620}, {f: 2, c: 29624},
+    {f: 4, c: 29628}, 29633, {f: 5, c: 29635}, {f: 2, c: 29643}, 29646,
+    {f: 7, c: 29650}, {f: 4, c: 29658}, 29663, {f: 4, c: 29665}, 29670, 29672,
+    {f: 3, c: 29674}, {f: 4, c: 29678}, {f: 11, c: 29683}, {f: 4, c: 29695},
+    29700, {f: 2, c: 29703}, {f: 4, c: 29707}, {f: 9, c: 29713},
+    {f: 6, c: 29724}, {f: 2, c: 29731}, 29735, 29737, 29739, 29741, 29743,
+    {f: 2, c: 29745}, {f: 5, c: 29751}, {f: 2, c: 29757}, 29760,
+    {f: 9, c: 29762}, {f: 9, c: 29772}, 29782, 29784, 29789, {f: 3, c: 29792},
+    {f: 5, c: 29796}, {f: 2, c: 29803}, {f: 2, c: 29806}, {f: 5, c: 29809},
+    {f: 6, c: 29816}, 29823, 29826, {f: 3, c: 29828}, 29832, 29834,
+    {f: 2, c: 29836}, 29839, {f: 11, c: 29841}, 29853, {f: 4, c: 29855},
+    {f: 2, c: 29860}, {f: 6, c: 29866}, {f: 9, c: 29873}, {f: 2, c: 29883},
+    {f: 12, c: 29886}, {f: 4, c: 29899}, {f: 2, c: 29904}, 29907,
+    {f: 5, c: 29909}, 29915, 29917, 29919, 29921, 29925, {f: 7, c: 29927},
+    {f: 4, c: 29936}, 29941, {f: 7, c: 29944}, {f: 4, c: 29952},
+    {f: 7, c: 29957}, 29966, 29968, 29970, {f: 4, c: 29972}, 29979,
+    {f: 2, c: 29981}, {f: 3, c: 29984}, 29988, {f: 2, c: 29990}, 29994, 29998,
+    30004, 30006, 30009, {f: 2, c: 30012}, 30015, {f: 4, c: 30017},
+    {f: 2, c: 30022}, {f: 2, c: 30025}, 30029, {f: 4, c: 30032},
+    {f: 4, c: 30037}, {f: 4, c: 30046}, {f: 2, c: 30051}, {f: 3, c: 30055},
+    {f: 6, c: 30060}, 30067, 30069, 30071, {f: 5, c: 30074}, {f: 3, c: 30080},
+    {f: 2, c: 30084}, {f: 3, c: 30088}, {f: 3, c: 30092}, 30096, 30099, 30101,
+    30104, {f: 2, c: 30107}, 30110, 30114, {f: 5, c: 30118}, 30125,
+    {f: 2, c: 30134}, {f: 2, c: 30138}, {f: 3, c: 30143}, 30150,
+    {f: 2, c: 30155}, {f: 4, c: 30158}, 30163, 30167, 30170, {f: 2, c: 30172},
+    {f: 3, c: 30175}, 30181, 30185, {f: 4, c: 30188}, {f: 2, c: 30194},
+    {f: 4, c: 30197}, {f: 2, c: 30202}, {f: 2, c: 30205}, 30212,
+    {f: 4, c: 30214}, {f: 2, c: 30222}, {f: 4, c: 30225}, 30230, 30234,
+    {f: 2, c: 30236}, 30243, 30248, 30252, {f: 2, c: 30254}, {f: 2, c: 30257},
+    {f: 2, c: 30262}, {f: 2, c: 30265}, 30269, 30273, {f: 2, c: 30276}, 30280,
+    {f: 2, c: 30282}, {f: 6, c: 30286}, 30293, 30295, {f: 3, c: 30297}, 30301,
+    {f: 2, c: 30304}, 30310, 30312, 30314, {f: 3, c: 30323}, [12136, 30326],
+    30327, {f: 2, c: 30329}, {f: 3, c: 30335}, 30339, 30341, {f: 2, c: 30345},
+    {f: 2, c: 30348}, {f: 2, c: 30351}, 30354, {f: 2, c: 30356},
+    {f: 2, c: 30359}, {f: 9, c: 30363}, {f: 9, c: 30373}, {f: 2, c: 30383},
+    30387, {f: 3, c: 30389}, 30393, {f: 4, c: 30395}, {f: 2, c: 30400},
+    {f: 2, c: 30403}, 30407, 30409, {f: 2, c: 30411}, 30419, 30421,
+    {f: 2, c: 30425}, {f: 2, c: 30428}, 30432, 30434, 30438, {f: 6, c: 30440},
+    30448, 30451, {f: 3, c: 30453}, {f: 2, c: 30458}, 30461, {f: 2, c: 30463},
+    {f: 2, c: 30466}, {f: 2, c: 30469}, 30474, 30476, {f: 11, c: 30478},
+    {f: 4, c: 30491}, 30497, {f: 3, c: 30499}, 30503, {f: 3, c: 30506}, 30510,
+    {f: 5, c: 30512}, 30521, 30523, {f: 3, c: 30525}, 30530, {f: 3, c: 30532},
+    {f: 7, c: 30536}, {f: 8, c: 30546}, {f: 2, c: 30556}, {f: 2, c: 30559},
+    30564, 30567, {f: 2, c: 30569}, {f: 12, c: 30573}, {f: 3, c: 30586},
+    {f: 3, c: 30593}, {f: 6, c: 30598}, {f: 2, c: 30607}, {f: 5, c: 30611},
+    {f: 5, c: 30617}, 30625, {f: 2, c: 30627}, 30630, 30632, 30635,
+    {f: 2, c: 30638}, {f: 2, c: 30641}, 30644, {f: 5, c: 30646}, 30654,
+    {f: 7, c: 30656}, {f: 5, c: 30664}, {f: 9, c: 30670}, {f: 2, c: 30680},
+    {f: 5, c: 30685}, 30692, 30694, 30696, 30698, {f: 3, c: 30704},
+    {f: 2, c: 30708}, 30711, {f: 4, c: 30713}, {f: 6, c: 30723},
+    {f: 2, c: 30730}, {f: 3, c: 30734}, 30739, 30741, 30745, 30747, 30750,
+    {f: 3, c: 30752}, 30756, 30760, {f: 2, c: 30762}, {f: 2, c: 30766},
+    {f: 3, c: 30769}, {f: 2, c: 30773}, 30781, 30783, {f: 2, c: 30785}, 30788,
+    30790, {f: 4, c: 30792}, 30797, 30799, 30801, {f: 2, c: 30803},
+    {f: 5, c: 30808}, {f: 6, c: 30814}, {f: 3, c: 30821}, 30825,
+    {f: 7, c: 30832}, {f: 4, c: 30840}, {f: 10, c: 30845}, 30856,
+    {f: 2, c: 30858}, {f: 2, c: 30863}, 30866, {f: 3, c: 30868}, 30873,
+    {f: 2, c: 30877}, 30880, 30882, 30884, 30886, 30888, {f: 3, c: 30890},
+    {f: 2, c: 30894}, {f: 3, c: 30901}, 30907, 30909, {f: 2, c: 30911},
+    {f: 3, c: 30914}, {f: 3, c: 30918}, {f: 4, c: 30924}, {f: 3, c: 30929},
+    {f: 3, c: 30934}, {f: 8, c: 30939}, {f: 3, c: 30948}, {f: 3, c: 30953},
+    {f: 2, c: 30957}, {f: 2, c: 30960}, 30963, {f: 2, c: 30965},
+    {f: 2, c: 30968}, {f: 2, c: 30971}, {f: 3, c: 30974}, {f: 3, c: 30978},
+    {f: 8, c: 30982}, {f: 4, c: 30991}, {f: 5, c: 30996}, {f: 4, c: 31002},
+    {f: 5, c: 31007}, 31013, {f: 3, c: 31015}, {f: 4, c: 31021},
+    {f: 2, c: 31026}, {f: 5, c: 31029}, 31037, 31039, {f: 4, c: 31042}, 31047,
+    {f: 9, c: 31050}, {f: 2, c: 31060}, {f: 2, c: 31064}, 31073,
+    {f: 2, c: 31075}, 31078, {f: 4, c: 31081}, 31086, {f: 7, c: 31088}, 31097,
+    {f: 5, c: 31099}, {f: 2, c: 31106}, {f: 4, c: 31110}, {f: 2, c: 31115},
+    {f: 10, c: 31120}, {f: 11, c: 31131}, {f: 2, c: 31144}, {f: 3, c: 31147},
+    31151, 31154, {f: 4, c: 31156}, [12145, 31160], 31164, 31167, 31170,
+    {f: 2, c: 31172}, {f: 2, c: 31175}, 31178, 31180, {f: 3, c: 31182},
+    {f: 2, c: 31187}, {f: 2, c: 31190}, {f: 6, c: 31193}, {f: 3, c: 31200},
+    31205, 31208, 31210, 31212, 31214, {f: 7, c: 31217}, {f: 2, c: 31225},
+    31228, {f: 2, c: 31230}, 31233, {f: 2, c: 31236}, {f: 4, c: 31239}, 31244,
+    {f: 5, c: 31247}, {f: 2, c: 31253}, {f: 2, c: 31256}, {f: 3, c: 31259},
+    31263, {f: 2, c: 31265}, {f: 10, c: 31268}, {f: 2, c: 31279}, 31282,
+    {f: 3, c: 31284}, 31288, 31290, 31294, {f: 5, c: 31297}, {f: 5, c: 31303},
+    {f: 2, c: 31311}, {f: 5, c: 31314}, {f: 9, c: 31320}, {f: 6, c: 31331},
+    31338, {f: 4, c: 31340}, {f: 3, c: 31345}, 31349, {f: 4, c: 31355}, 31362,
+    31365, 31367, {f: 4, c: 31369}, {f: 3, c: 31374}, {f: 2, c: 31379},
+    {f: 3, c: 31385}, 31390, {f: 4, c: 31393}, 31399, 31403, {f: 4, c: 31407},
+    {f: 2, c: 31412}, {f: 3, c: 31415}, {f: 4, c: 31419}, {f: 4, c: 31424},
+    31430, 31433, {f: 10, c: 31436}, {f: 2, c: 31447}, {f: 4, c: 31450},
+    {f: 2, c: 31457}, 31460, {f: 3, c: 31463}, {f: 2, c: 31467}, 31470,
+    {f: 6, c: 31472}, {f: 2, c: 31479}, {f: 2, c: 31483}, 31486,
+    {f: 3, c: 31488}, 31493, 31495, 31497, {f: 3, c: 31500}, 31504,
+    {f: 2, c: 31506}, {f: 3, c: 31510}, 31514, {f: 2, c: 31516}, 31519,
+    {f: 3, c: 31521}, 31527, 31529, 31533, {f: 2, c: 31535}, 31538,
+    {f: 4, c: 31540}, 31545, 31547, 31549, {f: 6, c: 31551}, 31560, 31562,
+    {f: 2, c: 31565}, 31571, 31573, 31575, 31577, 31580, {f: 2, c: 31582},
+    31585, {f: 4, c: 31587}, {f: 6, c: 31592}, {f: 2, c: 31599},
+    {f: 2, c: 31603}, 31606, 31608, 31610, {f: 2, c: 31612}, 31615,
+    {f: 4, c: 31617}, {f: 5, c: 31622}, 31628, {f: 2, c: 31630},
+    {f: 3, c: 31633}, 31638, {f: 4, c: 31640}, {f: 3, c: 31646},
+    {f: 3, c: 31651}, {f: 3, c: 31662}, {f: 2, c: 31666}, {f: 3, c: 31669},
+    {f: 7, c: 31673}, {f: 2, c: 31682}, 31685, 31688, 31690, {f: 4, c: 31693},
+    31698, {f: 5, c: 31700}, {f: 2, c: 31707}, {f: 3, c: 31710},
+    {f: 2, c: 31714}, {f: 2, c: 31719}, {f: 3, c: 31723}, {f: 2, c: 31727},
+    31730, {f: 3, c: 31732}, {f: 4, c: 31736}, 31741, 31743, {f: 6, c: 31745},
+    {f: 3, c: 31752}, 31758, {f: 6, c: 31760}, {f: 7, c: 31767}, 31776, 31778,
+    {f: 2, c: 31780}, {f: 2, c: 31784}, {f: 12, c: 31788}, {f: 4, c: 31801},
+    31810, {f: 8, c: 31812}, {f: 14, c: 31822}, {f: 2, c: 31837},
+    {f: 3, c: 31841}, {f: 4, c: 31845}, 31851, 31853, {f: 3, c: 31855},
+    {f: 6, c: 31861}, {f: 11, c: 31870}, {f: 7, c: 31882}, {f: 2, c: 31891},
+    31894, {f: 3, c: 31897}, {f: 2, c: 31904}, 31907, {f: 4, c: 31910},
+    {f: 3, c: 31915}, {f: 2, c: 31919}, {f: 5, c: 31924}, {f: 2, c: 31930},
+    {f: 2, c: 31935}, {f: 3, c: 31938}, 31942, 31945, 31947, {f: 7, c: 31950},
+    31960, {f: 2, c: 31962}, {f: 6, c: 31969}, {f: 6, c: 31977}, 31985, 31987,
+    31989, 31991, 31994, {f: 2, c: 31996}, 31999, 32001, 32003, 32012,
+    {f: 2, c: 32014}, {f: 2, c: 32017}, 32022, 32024, {f: 3, c: 32029},
+    {f: 4, c: 32035}, {f: 3, c: 32040}, {f: 3, c: 32044}, {f: 5, c: 32052},
+    32059, {f: 2, c: 32061}, 32065, 32067, 32069, {f: 7, c: 32071}, 32079,
+    {f: 12, c: 32081}, {f: 2, c: 32095}, {f: 3, c: 32099}, 32103,
+    {f: 5, c: 32105}, {f: 2, c: 32111}, {f: 2, c: 32116}, 32120,
+    {f: 7, c: 32122}, 32130, {f: 2, c: 32132}, 32135, {f: 5, c: 32138},
+    {f: 3, c: 32144}, {f: 8, c: 32148}, 32157, {f: 3, c: 32159},
+    {f: 2, c: 32164}, {f: 4, c: 32167}, 32175, {f: 3, c: 32181}, 32188,
+    {f: 4, c: 32192}, {f: 2, c: 32197}, {f: 2, c: 32200}, {f: 5, c: 32204},
+    32211, {f: 2, c: 32213}, {f: 3, c: 32218}, 32223, 32226, {f: 2, c: 32228},
+    32231, {f: 2, c: 32234}, {f: 2, c: 32237}, 32240, 32243, 32245,
+    {f: 2, c: 32247}, 32250, {f: 12, c: 32252}, {f: 4, c: 32268},
+    {f: 9, c: 32274}, 32284, {f: 3, c: 32288}, {f: 3, c: 32292},
+    {f: 3, c: 32296}, 32300, {f: 2, c: 32303}, 32307, 32312, 32314, 32316,
+    {f: 2, c: 32319}, {f: 3, c: 32322}, {f: 10, c: 32328}, 32339,
+    {f: 4, c: 32342}, {f: 3, c: 32347}, {f: 3, c: 32351}, {f: 6, c: 32355},
+    32364, {f: 2, c: 32369}, {f: 5, c: 32372}, {f: 2, c: 32378},
+    {f: 3, c: 32383}, {f: 5, c: 32387}, 32393, 32395, 32398, {f: 3, c: 32400},
+    32405, 32407, {f: 2, c: 32409}, {f: 2, c: 32413}, 32430, 32436,
+    {f: 2, c: 32443}, 32470, 32484, 32492, 32505, 32522, 32528, 32542, 32567,
+    32569, {f: 7, c: 32571}, 32579, {f: 6, c: 32582}, 32589, 32591,
+    {f: 2, c: 32594}, 32598, 32601, {f: 4, c: 32603}, 32608, {f: 5, c: 32611},
+    {f: 3, c: 32619}, 32623, 32627, {f: 2, c: 32629}, 32632, {f: 4, c: 32634},
+    {f: 2, c: 32639}, {f: 3, c: 32642}, 32647, 32649, 32651, 32653,
+    {f: 5, c: 32655}, {f: 5, c: 32661}, {f: 2, c: 32667}, 32672,
+    {f: 2, c: 32674}, 32678, 32680, {f: 5, c: 32682}, 32689, {f: 5, c: 32691},
+    {f: 2, c: 32698}, 32702, 32704, {f: 3, c: 32706}, {f: 4, c: 32710}, 32715,
+    32717, {f: 3, c: 32719}, 32723, {f: 2, c: 32726}, {f: 6, c: 32729},
+    {f: 3, c: 32738}, {f: 2, c: 32743}, {f: 4, c: 32746}, 32751, 32754,
+    {f: 5, c: 32756}, 32762, {f: 3, c: 32765}, 32770, {f: 4, c: 32775},
+    {f: 2, c: 32782}, 32785, 32787, {f: 2, c: 32794}, {f: 3, c: 32797}, 32801,
+    {f: 2, c: 32803}, 32811, 32813, {f: 2, c: 32815}, 32818, 32820,
+    {f: 2, c: 32825}, 32828, 32830, {f: 2, c: 32832}, {f: 2, c: 32836},
+    {f: 3, c: 32839}, {f: 4, c: 32846}, 32851, 32853, 32855, 32857,
+    {f: 3, c: 32859}, {f: 10, c: 32863}, {f: 4, c: 32875}, 32884, 32888,
+    {f: 3, c: 32890}, {f: 2, c: 32897}, 32904, 32906, {f: 6, c: 32909},
+    {f: 2, c: 32916}, 32919, 32921, 32926, 32931, {f: 3, c: 32934}, 32940,
+    32944, 32947, {f: 2, c: 32949}, {f: 2, c: 32952}, 32955, 32965,
+    {f: 5, c: 32967}, {f: 7, c: 32975}, 32984, {f: 2, c: 32991},
+    {f: 2, c: 32994}, 32998, 33006, 33013, 33015, 33017, 33019,
+    {f: 4, c: 33022}, {f: 2, c: 33027}, {f: 2, c: 33031}, {f: 2, c: 33035},
+    33045, 33047, 33049, {f: 2, c: 33052}, {f: 13, c: 33055}, {f: 2, c: 33069},
+    33072, {f: 3, c: 33075}, 33079, {f: 4, c: 33082}, {f: 7, c: 33087}, 33095,
+    33097, 33101, 33103, 33106, {f: 2, c: 33111}, {f: 5, c: 33115},
+    {f: 3, c: 33122}, 33128, 33130, 33132, 33135, {f: 2, c: 33138},
+    {f: 3, c: 33141}, 33153, {f: 5, c: 33155}, 33161, {f: 4, c: 33163}, 33168,
+    {f: 6, c: 33170}, 33177, {f: 2, c: 33182}, {f: 2, c: 33185},
+    {f: 2, c: 33188}, 33191, {f: 8, c: 33195}, {f: 6, c: 33204}, 33212,
+    {f: 2, c: 33220}, {f: 2, c: 33223}, 33227, 33230, {f: 8, c: 33232}, 33241,
+    {f: 4, c: 33243}, {f: 2, c: 33249}, {f: 3, c: 33252}, 33257, 33259,
+    {f: 5, c: 33262}, {f: 5, c: 33269}, 33277, 33279, 33283, 33291,
+    {f: 2, c: 33294}, 33297, 33299, {f: 6, c: 33301}, 33309, 33312,
+    {f: 4, c: 33316}, 33321, 33326, 33330, 33338, {f: 2, c: 33340},
+    {f: 5, c: 33343}, {f: 2, c: 33349}, 33352, 33354, {f: 3, c: 33356},
+    {f: 8, c: 33360}, {f: 4, c: 33371}, {f: 4, c: 33376}, 33381, 33383,
+    {f: 2, c: 33385}, {f: 2, c: 33388}, {f: 2, c: 33397}, [12171, 33400],
+    {f: 2, c: 33403}, {f: 2, c: 33408}, 33411, {f: 3, c: 33413}, 33417, 33420,
+    33424, {f: 4, c: 33427}, {f: 2, c: 33434}, 33438, 33440, {f: 2, c: 33442},
+    33447, 33458, {f: 2, c: 33461}, 33466, 33468, {f: 2, c: 33471},
+    {f: 2, c: 33474}, {f: 2, c: 33477}, 33481, 33488, 33494, {f: 2, c: 33497},
+    33501, 33506, {f: 3, c: 33512}, {f: 3, c: 33516}, 33520, {f: 2, c: 33522},
+    {f: 2, c: 33525}, 33528, 33530, {f: 5, c: 33532}, {f: 2, c: 33546}, 33549,
+    33552, {f: 2, c: 33554}, 33558, {f: 2, c: 33560}, {f: 10, c: 33565},
+    {f: 2, c: 33577}, 33582, 33584, 33586, 33591, 33595, {f: 3, c: 33597},
+    {f: 2, c: 33601}, {f: 2, c: 33604}, 33608, {f: 5, c: 33610}, 33619,
+    {f: 5, c: 33621}, 33629, 33634, {f: 7, c: 33648}, {f: 2, c: 33657},
+    {f: 7, c: 33662}, {f: 2, c: 33671}, {f: 3, c: 33675}, {f: 3, c: 33679},
+    {f: 2, c: 33684}, 33687, {f: 2, c: 33689}, 33693, 33695, 33697,
+    {f: 4, c: 33699}, {f: 4, c: 33708}, 33717, 33723, {f: 2, c: 33726},
+    {f: 3, c: 33730}, 33734, {f: 2, c: 33736}, 33739, {f: 2, c: 33741},
+    {f: 4, c: 33744}, 33749, 33751, {f: 3, c: 33753}, 33758, {f: 3, c: 33762},
+    {f: 3, c: 33766}, {f: 4, c: 33771}, {f: 5, c: 33779}, {f: 3, c: 33786},
+    {f: 3, c: 33790}, 33794, 33797, {f: 2, c: 33800}, 33808, {f: 6, c: 33810},
+    {f: 3, c: 33817}, {f: 6, c: 33822}, {f: 3, c: 33833}, {f: 4, c: 33837},
+    {f: 3, c: 33842}, {f: 2, c: 33846}, {f: 3, c: 33849}, {f: 8, c: 33854},
+    {f: 2, c: 33863}, {f: 7, c: 33866}, {f: 4, c: 33875}, 33880,
+    {f: 4, c: 33885}, 33890, 33893, {f: 2, c: 33895}, 33898, 33902, 33904,
+    33906, 33908, 33913, {f: 7, c: 33915}, {f: 4, c: 33923}, 33930, 33933,
+    {f: 4, c: 33935}, {f: 2, c: 33941}, 33944, {f: 2, c: 33946},
+    {f: 4, c: 33949}, {f: 13, c: 33954}, {f: 2, c: 33968}, 33971,
+    {f: 3, c: 33973}, 33979, 33982, {f: 2, c: 33986}, {f: 4, c: 33989}, 33996,
+    {f: 2, c: 33998}, 34002, {f: 2, c: 34004}, {f: 6, c: 34007}, 34014,
+    {f: 2, c: 34017}, 34020, {f: 5, c: 34023}, 34029, {f: 11, c: 34033}, 34046,
+    {f: 12, c: 34048}, {f: 4, c: 34061}, 34066, {f: 2, c: 34069},
+    {f: 2, c: 34072}, {f: 3, c: 34075}, 34080, 34082, {f: 2, c: 34084},
+    {f: 4, c: 34087}, {f: 9, c: 34094}, {f: 3, c: 34110}, 34114,
+    {f: 2, c: 34116}, 34119, {f: 3, c: 34123}, {f: 3, c: 34127}, 34132, 34135,
+    {f: 4, c: 34138}, {f: 3, c: 34143}, 34147, {f: 3, c: 34149},
+    {f: 2, c: 34155}, {f: 4, c: 34158}, 34163, {f: 2, c: 34165}, 34168,
+    {f: 2, c: 34172}, {f: 5, c: 34175}, 34182, 34185, 34187, {f: 2, c: 34189},
+    34192, {f: 2, c: 34194}, {f: 6, c: 34197}, {f: 2, c: 34205},
+    {f: 4, c: 34208}, 34213, 34215, {f: 3, c: 34219}, {f: 6, c: 34225}, 34232,
+    {f: 6, c: 34235}, {f: 7, c: 34242}, {f: 3, c: 34250}, {f: 2, c: 34257},
+    34260, {f: 6, c: 34262}, {f: 6, c: 34270}, {f: 3, c: 34278},
+    {f: 9, c: 34283}, 34293, {f: 2, c: 34295}, {f: 3, c: 34300},
+    {f: 4, c: 34304}, {f: 3, c: 34312}, {f: 5, c: 34316}, {f: 4, c: 34322},
+    {f: 3, c: 34327}, {f: 3, c: 34331}, {f: 3, c: 34335}, {f: 4, c: 34339},
+    34344, {f: 3, c: 34346}, {f: 10, c: 34350}, 34361, 34363, {f: 2, c: 34365},
+    {f: 13, c: 34368}, {f: 2, c: 34386}, {f: 4, c: 34390}, 34395, 34397,
+    {f: 2, c: 34400}, {f: 4, c: 34403}, {f: 3, c: 34408}, 34413,
+    {f: 2, c: 34415}, {f: 7, c: 34418}, {f: 7, c: 34435}, {f: 5, c: 34446},
+    34452, {f: 6, c: 34454}, {f: 5, c: 34462}, {f: 2, c: 34469}, 34475,
+    {f: 2, c: 34477}, {f: 2, c: 34482}, {f: 3, c: 34487}, {f: 5, c: 34491},
+    {f: 3, c: 34497}, 34501, 34504, {f: 2, c: 34508}, {f: 2, c: 34514},
+    {f: 3, c: 34517}, 34522, {f: 2, c: 34524}, {f: 4, c: 34528},
+    {f: 4, c: 34533}, {f: 3, c: 34538}, 34543, {f: 3, c: 34549},
+    {f: 3, c: 34555}, 34559, 34561, {f: 2, c: 34564}, {f: 2, c: 34571},
+    {f: 4, c: 34574}, 34580, 34582, 34585, 34587, 34589, {f: 2, c: 34591},
+    34596, {f: 3, c: 34598}, {f: 4, c: 34602}, {f: 2, c: 34607},
+    {f: 2, c: 34610}, {f: 2, c: 34613}, {f: 3, c: 34616}, {f: 2, c: 34620},
+    {f: 7, c: 34624}, {f: 2, c: 34634}, 34637, {f: 4, c: 34639}, 34644, 34646,
+    34648, {f: 6, c: 34650}, {f: 2, c: 34657}, {f: 7, c: 34663}, 34671,
+    {f: 3, c: 34673}, 34677, 34679, {f: 2, c: 34681}, {f: 3, c: 34687},
+    {f: 2, c: 34694}, {f: 2, c: 34697}, 34700, {f: 5, c: 34702},
+    {f: 3, c: 34708}, {f: 6, c: 34712}, {f: 2, c: 34720}, {f: 5, c: 34723},
+    {f: 2, c: 34729}, 34734, {f: 3, c: 34736}, 34740, {f: 4, c: 34742}, 34748,
+    {f: 2, c: 34750}, {f: 3, c: 34753}, 34757, 34759, 34761, {f: 2, c: 34764},
+    {f: 2, c: 34767}, {f: 7, c: 34772}, {f: 4, c: 34780}, {f: 2, c: 34785},
+    34788, {f: 4, c: 34790}, 34795, 34797, {f: 2, c: 34800}, {f: 3, c: 34803},
+    {f: 2, c: 34807}, 34810, {f: 2, c: 34812}, {f: 4, c: 34815}, 34820,
+    {f: 3, c: 34823}, {f: 5, c: 34827}, 34834, 34836, {f: 4, c: 34839},
+    {f: 3, c: 34844}, 34848, {f: 13, c: 34852}, {f: 3, c: 34867},
+    {f: 2, c: 34871}, 34874, {f: 3, c: 34877}, {f: 3, c: 34881},
+    {f: 3, c: 34887}, 34891, {f: 5, c: 34894}, {f: 2, c: 34901}, 34904, 34906,
+    34908, {f: 3, c: 34910}, {f: 2, c: 34918}, 34922, 34925, 34927, 34929,
+    {f: 4, c: 34931}, 34936, {f: 3, c: 34938}, 34944, 34947, {f: 2, c: 34950},
+    {f: 2, c: 34953}, 34956, {f: 4, c: 34958}, {f: 3, c: 34963},
+    {f: 5, c: 34967}, {f: 5, c: 34973}, 34979, {f: 6, c: 34981}, 34988,
+    {f: 3, c: 34990}, {f: 5, c: 34994}, {f: 4, c: 35000}, {f: 4, c: 35005},
+    {f: 2, c: 35011}, {f: 2, c: 35015}, {f: 3, c: 35019}, {f: 2, c: 35024},
+    35027, {f: 2, c: 35030}, {f: 2, c: 35034}, 35038, {f: 2, c: 35040},
+    {f: 2, c: 35046}, {f: 7, c: 35049}, 35058, {f: 3, c: 35061},
+    {f: 2, c: 35066}, {f: 3, c: 35071}, {f: 4, c: 35075}, {f: 2, c: 35080},
+    {f: 5, c: 35083}, 35089, {f: 5, c: 35092}, {f: 5, c: 35100},
+    {f: 3, c: 35106}, {f: 4, c: 35110}, {f: 4, c: 35116}, 35121, 35125, 35127,
+    {f: 2, c: 35129}, {f: 5, c: 35132}, {f: 2, c: 35138}, {f: 2, c: 35141},
+    {f: 14, c: 35144}, {f: 6, c: 35159}, {f: 3, c: 35169}, 35173,
+    {f: 3, c: 35175}, 35179, {f: 2, c: 35181}, {f: 2, c: 35184},
+    {f: 8, c: 35187}, {f: 2, c: 35196}, [12177, 35198], 35200, 35202,
+    {f: 2, c: 35204}, {f: 4, c: 35207}, {f: 3, c: 35212}, {f: 3, c: 35216},
+    {f: 2, c: 35220}, 35223, {f: 8, c: 35225}, {f: 4, c: 35234},
+    {f: 3, c: 35239}, 35243, {f: 2, c: 35245}, {f: 2, c: 35248},
+    {f: 4, c: 35251}, {f: 2, c: 35256}, {f: 2, c: 35259}, 35262, 35267, 35277,
+    {f: 3, c: 35283}, {f: 3, c: 35287}, 35291, 35293, {f: 4, c: 35295}, 35300,
+    {f: 4, c: 35303}, {f: 3, c: 35308}, {f: 3, c: 35312}, 35317, 35319,
+    {f: 7, c: 35321}, {f: 3, c: 35332}, 35337, 35339, 35341, 35343,
+    {f: 2, c: 35345}, 35348, 35351, {f: 2, c: 35353}, 35356, 35358,
+    {f: 3, c: 35360}, 35364, {f: 4, c: 35366}, {f: 2, c: 35371},
+    {f: 3, c: 35374}, {f: 2, c: 35378}, 35381, {f: 3, c: 35383},
+    {f: 3, c: 35387}, {f: 2, c: 35391}, {f: 4, c: 35394}, 35399,
+    {f: 5, c: 35401}, 35407, 35409, 35411, {f: 2, c: 35414}, {f: 2, c: 35417},
+    {f: 2, c: 35420}, {f: 2, c: 35423}, {f: 2, c: 35428}, {f: 2, c: 35431},
+    35434, 35439, 35444, {f: 3, c: 35446}, {f: 2, c: 35450}, {f: 2, c: 35453},
+    {f: 4, c: 35456}, 35464, {f: 2, c: 35467}, {f: 3, c: 35470}, 35476,
+    {f: 2, c: 35478}, 35481, {f: 3, c: 35483}, 35487, 35490, 35495,
+    {f: 3, c: 35497}, {f: 3, c: 35501}, 35505, {f: 3, c: 35507},
+    {f: 2, c: 35511}, {f: 2, c: 35514}, {f: 2, c: 35517}, {f: 2, c: 35520},
+    35523, {f: 2, c: 35525}, 35528, 35530, 35532, 35534, 35536,
+    {f: 3, c: 35539}, {f: 3, c: 35544}, 35549, {f: 3, c: 35551}, 35555, 35557,
+    {f: 3, c: 35560}, 35564, {f: 2, c: 35567}, 35570, {f: 2, c: 35572}, 35577,
+    35579, 35581, 35583, 35587, 35590, {f: 2, c: 35592}, {f: 3, c: 35595},
+    35599, {f: 3, c: 35601}, 35605, 35608, 35612, {f: 3, c: 35614},
+    {f: 4, c: 35618}, 35623, {f: 2, c: 35625}, {f: 5, c: 35630},
+    {f: 5, c: 35636}, {f: 4, c: 35642}, {f: 10, c: 35647}, {f: 4, c: 35658},
+    {f: 6, c: 35664}, 35671, 35675, {f: 9, c: 35677}, {f: 4, c: 35687},
+    {f: 2, c: 35693}, {f: 3, c: 35697}, {f: 2, c: 35701}, {f: 5, c: 35704},
+    {f: 2, c: 35710}, {f: 9, c: 35713}, {f: 3, c: 35723}, {f: 3, c: 35727},
+    35732, {f: 5, c: 35735}, 35741, 35743, 35756, 35761, 35771, 35783, 35792,
+    35818, 35849, 35870, {f: 9, c: 35896}, {f: 4, c: 35906}, {f: 2, c: 35914},
+    {f: 3, c: 35917}, {f: 4, c: 35921}, {f: 4, c: 35926}, {f: 6, c: 35931},
+    {f: 7, c: 35939}, {f: 7, c: 35948}, {f: 4, c: 35956}, {f: 7, c: 35963},
+    {f: 2, c: 35971}, {f: 3, c: 35974}, 35979, {f: 7, c: 35981},
+    {f: 3, c: 35989}, {f: 4, c: 35993}, 35999, {f: 4, c: 36003},
+    {f: 2, c: 36013}, 36017, 36021, 36025, 36030, 36038, 36041,
+    {f: 6, c: 36043}, 36052, {f: 4, c: 36054}, 36059, 36061, 36063, 36069,
+    {f: 2, c: 36072}, {f: 6, c: 36078}, {f: 5, c: 36085}, {f: 5, c: 36095},
+    {f: 2, c: 36102}, 36105, 36108, 36110, {f: 5, c: 36113}, {f: 4, c: 36119},
+    36128, {f: 2, c: 36177}, 36183, 36191, 36197, {f: 3, c: 36200}, 36204,
+    {f: 2, c: 36206}, {f: 2, c: 36209}, {f: 9, c: 36216}, {f: 2, c: 36226},
+    {f: 4, c: 36230}, {f: 5, c: 36236}, {f: 2, c: 36242}, {f: 3, c: 36246},
+    {f: 5, c: 36250}, {f: 3, c: 36256}, {f: 4, c: 36260}, {f: 8, c: 36265},
+    {f: 2, c: 36278}, 36281, 36283, 36285, {f: 3, c: 36288}, 36293,
+    {f: 4, c: 36295}, 36301, 36304, {f: 4, c: 36306}, {f: 2, c: 36312}, 36316,
+    {f: 3, c: 36320}, {f: 3, c: 36325}, 36329, {f: 2, c: 36333},
+    {f: 3, c: 36336}, 36340, 36342, 36348, {f: 7, c: 36350}, {f: 3, c: 36358},
+    36363, {f: 2, c: 36365}, {f: 3, c: 36369}, {f: 8, c: 36373},
+    {f: 2, c: 36384}, {f: 5, c: 36388}, 36395, 36397, 36400, {f: 2, c: 36402},
+    {f: 3, c: 36406}, {f: 2, c: 36411}, {f: 2, c: 36414}, 36419,
+    {f: 2, c: 36421}, {f: 4, c: 36429}, {f: 2, c: 36435}, {f: 3, c: 36438},
+    {f: 9, c: 36442}, {f: 2, c: 36452}, {f: 2, c: 36455}, {f: 2, c: 36458},
+    36462, 36465, 36467, 36469, {f: 3, c: 36471}, 36475, {f: 2, c: 36477},
+    36480, {f: 3, c: 36482}, 36486, 36488, 36492, 36494, {f: 5, c: 36501},
+    36507, 36509, {f: 2, c: 36511}, {f: 3, c: 36514}, {f: 3, c: 36519},
+    {f: 2, c: 36525}, {f: 2, c: 36528}, {f: 7, c: 36531}, {f: 5, c: 36539},
+    {f: 9, c: 36545}, {f: 3, c: 36559}, 36563, {f: 6, c: 36565},
+    {f: 3, c: 36572}, {f: 4, c: 36576}, {f: 6, c: 36581}, {f: 6, c: 36588},
+    {f: 5, c: 36595}, 36605, {f: 4, c: 36607}, 36612, 36614, 36616,
+    {f: 7, c: 36619}, 36627, {f: 5, c: 36630}, {f: 5, c: 36640},
+    {f: 2, c: 36647}, {f: 4, c: 36651}, {f: 3, c: 36656}, {f: 4, c: 36660},
+    {f: 2, c: 36665}, {f: 2, c: 36668}, {f: 2, c: 36672}, 36675,
+    {f: 2, c: 36679}, {f: 3, c: 36682}, {f: 5, c: 36687}, {f: 10, c: 36693},
+    36704, 36707, 36709, 36714, 36736, 36748, 36754, 36765, {f: 3, c: 36768},
+    {f: 2, c: 36772}, 36775, 36778, 36780, {f: 2, c: 36787}, [12193, 36789],
+    {f: 2, c: 36791}, {f: 3, c: 36794}, {f: 2, c: 36799}, 36803, 36806,
+    {f: 5, c: 36809}, 36815, 36818, {f: 2, c: 36822}, 36826, {f: 2, c: 36832},
+    36835, 36839, 36844, 36847, {f: 2, c: 36849}, {f: 2, c: 36853},
+    {f: 3, c: 36858}, {f: 2, c: 36862}, {f: 2, c: 36871}, 36876, 36878, 36883,
+    36888, 36892, {f: 2, c: 36900}, {f: 6, c: 36903}, {f: 2, c: 36912},
+    {f: 2, c: 36915}, 36919, {f: 2, c: 36921}, 36925, {f: 2, c: 36927}, 36931,
+    {f: 2, c: 36933}, {f: 3, c: 36936}, 36940, 36950, {f: 2, c: 36953}, 36957,
+    36959, 36961, 36964, {f: 2, c: 36966}, {f: 3, c: 36970}, {f: 3, c: 36975},
+    36979, 36982, 36985, 36987, 36990, {f: 2, c: 36997}, 37001,
+    {f: 3, c: 37004}, 37010, 37012, 37014, 37016, 37018, 37020,
+    {f: 3, c: 37022}, {f: 2, c: 37028}, {f: 3, c: 37031}, 37035, 37037, 37042,
+    37047, {f: 2, c: 37052}, {f: 2, c: 37055}, {f: 2, c: 37058}, 37062,
+    {f: 2, c: 37064}, {f: 3, c: 37067}, 37074, {f: 3, c: 37076},
+    {f: 3, c: 37080}, 37086, 37088, {f: 3, c: 37091}, {f: 2, c: 37097}, 37100,
+    37102, {f: 4, c: 37104}, {f: 2, c: 37110}, {f: 4, c: 37113},
+    {f: 3, c: 37119}, 37123, 37125, {f: 2, c: 37127}, {f: 8, c: 37130}, 37139,
+    37141, {f: 2, c: 37143}, {f: 4, c: 37146}, {f: 3, c: 37151},
+    {f: 3, c: 37156}, {f: 5, c: 37160}, 37166, 37171, 37173, {f: 2, c: 37175},
+    {f: 8, c: 37179}, {f: 2, c: 37188}, 37191, 37201, {f: 4, c: 37203},
+    {f: 2, c: 37208}, {f: 2, c: 37211}, {f: 2, c: 37215}, {f: 3, c: 37222},
+    37227, 37229, 37235, {f: 3, c: 37242}, {f: 5, c: 37248}, 37254, 37256,
+    37258, {f: 2, c: 37262}, {f: 3, c: 37267}, {f: 3, c: 37271},
+    {f: 5, c: 37277}, {f: 6, c: 37284}, {f: 4, c: 37296}, {f: 4, c: 37302},
+    {f: 5, c: 37307}, 37314, 37316, [12196, 37318], 37320, 37328, 37334,
+    {f: 2, c: 37338}, {f: 5, c: 37342}, {f: 2, c: 37349}, 37352,
+    {f: 11, c: 37354}, 37366, 37368, {f: 5, c: 37371}, {f: 2, c: 37378},
+    {f: 3, c: 37381}, {f: 3, c: 37386}, 37391, {f: 2, c: 37394},
+    {f: 8, c: 37398}, {f: 4, c: 37407}, 37412, {f: 6, c: 37416}, 37423,
+    {f: 2, c: 37425}, {f: 2, c: 37429}, {f: 2, c: 37435}, {f: 4, c: 37441},
+    {f: 2, c: 37446}, {f: 3, c: 37450}, {f: 3, c: 37454}, {f: 3, c: 37458},
+    37462, {f: 2, c: 37464}, {f: 2, c: 37468}, {f: 3, c: 37471},
+    {f: 3, c: 37475}, {f: 5, c: 37479}, {f: 6, c: 37486}, {f: 3, c: 37493},
+    37497, {f: 3, c: 37500}, {f: 2, c: 37505}, 37508, {f: 8, c: 37510},
+    {f: 2, c: 37519}, 37522, {f: 2, c: 37524}, 37527, 37529, 37531,
+    {f: 3, c: 37533}, {f: 2, c: 37537}, 37540, 37543, 37549, {f: 2, c: 37551},
+    {f: 5, c: 37554}, 37560, 37562, {f: 4, c: 37565}, 37570, 37572, 37574,
+    {f: 3, c: 37577}, {f: 2, c: 37581}, {f: 2, c: 37584}, {f: 10, c: 37587},
+    37598, {f: 3, c: 37600}, 37607, 37609, {f: 2, c: 37611}, {f: 4, c: 37618},
+    37623, {f: 3, c: 37625}, {f: 4, c: 37629}, {f: 4, c: 37634},
+    {f: 7, c: 37641}, 37649, {f: 2, c: 37651}, {f: 2, c: 37654},
+    {f: 3, c: 37660}, 37665, {f: 3, c: 37667}, 37671, {f: 2, c: 37673},
+    {f: 2, c: 37676}, {f: 2, c: 37680}, {f: 2, c: 37684}, 37687,
+    {f: 5, c: 37689}, 37695, 37698, {f: 2, c: 37700}, {f: 3, c: 37704}, 37708,
+    {f: 6, c: 37710}, {f: 3, c: 37717}, {f: 2, c: 37721}, {f: 8, c: 37724},
+    {f: 3, c: 37734}, 37739, {f: 3, c: 37741}, {f: 4, c: 37745},
+    {f: 3, c: 37751}, {f: 3, c: 37755}, {f: 3, c: 37759}, 37763,
+    {f: 2, c: 37765}, {f: 2, c: 37768}, {f: 4, c: 37771}, {f: 6, c: 37776},
+    37783, {f: 9, c: 37785}, {f: 2, c: 37796}, 37800, 37803, 37805, 37807,
+    {f: 2, c: 37809}, 37812, {f: 2, c: 37814}, {f: 6, c: 37817},
+    {f: 3, c: 37824}, {f: 3, c: 37828}, 37833, 37835, {f: 3, c: 37838},
+    {f: 4, c: 37842}, {f: 3, c: 37849}, 37856, 37859, {f: 3, c: 37861},
+    {f: 12, c: 37865}, 37878, 37880, {f: 9, c: 37882}, {f: 7, c: 37892},
+    {f: 4, c: 37900}, 37905, {f: 3, c: 37909}, {f: 3, c: 37914},
+    {f: 2, c: 37918}, {f: 5, c: 37921}, {f: 5, c: 37929}, {f: 3, c: 37935},
+    37940, {f: 2, c: 37942}, 37945, {f: 3, c: 37947}, {f: 4, c: 37952},
+    {f: 5, c: 37957}, 37963, {f: 5, c: 37965}, 37971, {f: 11, c: 37973},
+    {f: 2, c: 37985}, 37988, {f: 5, c: 37990}, 37996, {f: 2, c: 37998}, 38001,
+    {f: 4, c: 38003}, 38008, {f: 2, c: 38010}, {f: 5, c: 38016}, 38033, 38038,
+    38040, 38087, 38095, {f: 2, c: 38099}, 38106, 38118, 38139, 38172, 38176,
+    38183, 38195, 38205, 38211, 38216, 38219, 38229, 38234, 38240, 38254,
+    {f: 2, c: 38260}, {f: 7, c: 38264}, 38273, {f: 2, c: 38276},
+    {f: 2, c: 38279}, 38282, 38285, 38288, 38290, {f: 3, c: 38293},
+    {f: 8, c: 38297}, 38306, {f: 2, c: 38310}, 38314, {f: 4, c: 38318},
+    {f: 3, c: 38323}, {f: 2, c: 38327}, 38330, {f: 3, c: 38336},
+    {f: 2, c: 38340}, 38343, 38345, {f: 3, c: 38349}, {f: 3, c: 38353},
+    {f: 5, c: 38359}, 38365, {f: 2, c: 38367}, {f: 2, c: 38371},
+    {f: 2, c: 38374}, 38380, 38399, 38407, 38419, 38424, 38427, 38430, 38432,
+    {f: 7, c: 38435}, {f: 3, c: 38443}, {f: 2, c: 38447}, {f: 4, c: 38455},
+    38462, 38465, 38467, 38474, {f: 2, c: 38478}, {f: 3, c: 38481},
+    {f: 2, c: 38486}, {f: 2, c: 38489}, 38492, 38494, 38496, {f: 2, c: 38501},
+    38507, {f: 3, c: 38509}, 38513, {f: 4, c: 38521}, {f: 7, c: 38526}, 38535,
+    38537, 38540, {f: 3, c: 38545}, 38550, 38554, {f: 10, c: 38557}, 38569,
+    {f: 5, c: 38571}, 38578, 38581, 38583, 38586, 38591, {f: 2, c: 38594},
+    38600, {f: 2, c: 38602}, {f: 2, c: 38608}, {f: 2, c: 38611},
+    {f: 2, c: 38615}, 38618, {f: 3, c: 38621}, 38625, {f: 4, c: 38628},
+    {f: 4, c: 38635}, {f: 2, c: 38640}, {f: 2, c: 38644}, 38648, 38650,
+    {f: 2, c: 38652}, 38655, {f: 2, c: 38658}, 38661, {f: 3, c: 38666},
+    {f: 3, c: 38672}, {f: 2, c: 38676}, {f: 5, c: 38679}, 38685,
+    {f: 8, c: 38687}, {f: 2, c: 38696}, {f: 2, c: 38699}, {f: 2, c: 38702},
+    38705, {f: 5, c: 38707}, {f: 3, c: 38714}, {f: 3, c: 38719}, 38723,
+    {f: 3, c: 38725}, {f: 8, c: 38729}, [12205, 38737], {f: 2, c: 38740},
+    {f: 2, c: 38743}, {f: 2, c: 38748}, 38751, {f: 2, c: 38755},
+    {f: 2, c: 38758}, {f: 9, c: 38762}, 38773, {f: 5, c: 38775},
+    {f: 8, c: 38781}, {f: 5, c: 38790}, 38796, 38798, 38800, 38803,
+    {f: 3, c: 38805}, {f: 7, c: 38809}, {f: 2, c: 38817}, {f: 2, c: 38820},
+    {f: 4, c: 38823}, 38828, 38830, {f: 2, c: 38832}, 38835, {f: 8, c: 38837},
+    {f: 5, c: 38846}, {f: 2, c: 38852}, {f: 2, c: 38855}, 38858,
+    {f: 6, c: 38861}, {f: 5, c: 38868}, {f: 2, c: 38874}, 38877,
+    {f: 7, c: 38879}, 38888, {f: 5, c: 38894}, 38900, {f: 8, c: 38903}, 38912,
+    38916, 38921, 38923, 38925, {f: 3, c: 38932}, {f: 3, c: 38937},
+    {f: 4, c: 38941}, {f: 2, c: 38946}, 38949, {f: 6, c: 38951},
+    {f: 2, c: 38958}, {f: 6, c: 38961}, {f: 2, c: 38969}, 38972,
+    {f: 8, c: 38974}, {f: 5, c: 38983}, {f: 4, c: 38991}, {f: 3, c: 38997},
+    39002, {f: 2, c: 39004}, {f: 3, c: 39007}, {f: 2, c: 39011}, 39014,
+    {f: 3, c: 39016}, {f: 2, c: 39021}, 39026, 39051, 39054, 39058, 39061,
+    39065, 39075, {f: 5, c: 39081}, 39088, 39090, {f: 2, c: 39092},
+    {f: 5, c: 39095}, {f: 7, c: 39101}, 39109, 39111, {f: 5, c: 39113},
+    {f: 2, c: 39119}, 39124, {f: 2, c: 39126}, {f: 2, c: 39132}, 39137,
+    {f: 4, c: 39139}, 39148, 39150, {f: 2, c: 39152}, 39155, {f: 7, c: 39157},
+    {f: 4, c: 39167}, 39172, {f: 3, c: 39174}, 39179, {f: 2, c: 39182},
+    {f: 4, c: 39188}, {f: 2, c: 39193}, {f: 2, c: 39196}, {f: 2, c: 39199},
+    {f: 6, c: 39202}, {f: 5, c: 39209}, {f: 4, c: 39215}, {f: 3, c: 39220},
+    {f: 4, c: 39224}, 39229, {f: 3, c: 39232}, 39236, {f: 2, c: 39238},
+    {f: 4, c: 39245}, 39251, 39254, {f: 4, c: 39256}, 39261, {f: 3, c: 39263},
+    39268, 39270, 39283, {f: 2, c: 39288}, 39291, 39294, {f: 2, c: 39298},
+    39305, 39308, 39310, {f: 11, c: 39322}, {f: 2, c: 39334}, {f: 3, c: 39337},
+    {f: 2, c: 39343}, 39346, {f: 12, c: 39349}, {f: 14, c: 39362}, 39379,
+    {f: 2, c: 39382}, 39386, 39388, 39390, 39392, {f: 10, c: 39395},
+    {f: 3, c: 39406}, {f: 13, c: 39410}, 39424, {f: 3, c: 39426},
+    {f: 7, c: 39430}, {f: 6, c: 39440}, {f: 2, c: 39447}, {f: 17, c: 39450},
+    39468, 39471, {f: 5, c: 39473}, {f: 5, c: 39481}, 39487, {f: 4, c: 39494},
+    {f: 2, c: 39499}, 39502, {f: 5, c: 39504}, 39510, {f: 2, c: 39512},
+    {f: 3, c: 39516}, {f: 2, c: 39520}, 39523, {f: 4, c: 39526}, 39531, 39538,
+    39555, 39561, {f: 2, c: 39565}, {f: 2, c: 39572}, 39577, 39590,
+    {f: 6, c: 39593}, {f: 4, c: 39602}, 39609, 39611, {f: 3, c: 39613},
+    {f: 2, c: 39619}, {f: 5, c: 39622}, {f: 2, c: 39629}, 39632, 39639,
+    {f: 6, c: 39641}, 39648, {f: 4, c: 39650}, {f: 4, c: 39655}, 39660,
+    {f: 9, c: 39664}, 39674, {f: 7, c: 39676}, {f: 2, c: 39684}, 39687,
+    {f: 4, c: 39689}, 39694, {f: 3, c: 39696}, {f: 6, c: 39700},
+    {f: 4, c: 39707}, {f: 2, c: 39712}, 39716, 39718, 39720, {f: 4, c: 39722},
+    39728, {f: 8, c: 39731}, {f: 4, c: 39741}, 39750, {f: 3, c: 39754}, 39760,
+    {f: 2, c: 39762}, {f: 3, c: 39765}, 39769, {f: 20, c: 39771},
+    {f: 4, c: 39792}, {f: 2, c: 39797}, {f: 9, c: 39800}, 39810,
+    {f: 10, c: 39812}, 39823, {f: 7, c: 39827}, {f: 2, c: 39835},
+    {f: 11, c: 39839}, 39852, {f: 17, c: 39855}, {f: 5, c: 39874}, 39880,
+    {f: 9, c: 39883}, 39893, {f: 4, c: 39895}, 39900, {f: 3, c: 39902}, 39907,
+    {f: 2, c: 39909}, 39913, {f: 4, c: 39916}, {f: 3, c: 39921},
+    {f: 8, c: 39925}, 39934, {f: 8, c: 39936}, {f: 3, c: 39946},
+    {f: 2, c: 39950}, 39953, {f: 12, c: 39956}, {f: 2, c: 39969}, 39972,
+    {f: 2, c: 39974}, {f: 3, c: 39978}, {f: 3, c: 39982}, 39988, 39990, 39992,
+    39994, {f: 2, c: 39996}, {f: 6, c: 39999}, {f: 2, c: 40006},
+    {f: 8, c: 40010}, 40019, 40021, {f: 4, c: 40025}, 40030, {f: 7, c: 40032},
+    {f: 5, c: 40040}, {f: 10, c: 40046}, 40057, 40059, {f: 2, c: 40061}, 40064,
+    {f: 2, c: 40067}, {f: 2, c: 40073}, 40076, 40079, 40083, {f: 4, c: 40086},
+    40093, 40106, 40108, 40111, 40121, {f: 5, c: 40126}, {f: 2, c: 40136},
+    {f: 2, c: 40145}, {f: 2, c: 40154}, {f: 2, c: 40160}, {f: 2, c: 40163},
+    {f: 3, c: 40166}, {f: 2, c: 40170}, {f: 6, c: 40173}, 40181,
+    {f: 15, c: 40183}, 40200, {f: 11, c: 40202}, {f: 5, c: 40214}, 40220,
+    40222, {f: 3, c: 40224}, {f: 2, c: 40228}, 40231, {f: 6, c: 40233},
+    {f: 10, c: 40241}, {f: 3, c: 40252}, {f: 2, c: 40256}, {f: 14, c: 40259},
+    {f: 8, c: 40276}, {f: 2, c: 40286}, {f: 8, c: 40290}, 40299,
+    {f: 2, c: 40301}, {f: 2, c: 40304}, {f: 20, c: 40307}, 40328,
+    {f: 9, c: 40330}, {f: 4, c: 40340}, 40345, {f: 10, c: 40347},
+    {f: 3, c: 40358}, {f: 5, c: 40362}, {f: 4, c: 40368}, {f: 6, c: 40373},
+    {f: 3, c: 40381}, 40385, 40387, {f: 14, c: 40389}, {f: 3, c: 40404}, 40408,
+    {f: 10, c: 40411}, {f: 8, c: 40423}, {f: 2, c: 40432}, {f: 4, c: 40436},
+    {f: 17, c: 40443}, {f: 8, c: 40461}, {f: 4, c: 40470}, 40476, 40484, 40487,
+    40494, 40496, 40500, {f: 2, c: 40507}, 40512, 40525, 40528,
+    {f: 3, c: 40530}, 40534, 40537, 40541, {f: 4, c: 40543}, 40549,
+    {f: 2, c: 40558}, 40562, 40564, {f: 3, c: 40566}, 40571, {f: 2, c: 40576},
+    {f: 4, c: 40579}, {f: 2, c: 40585}, {f: 6, c: 40588}, {f: 3, c: 40596},
+    {f: 5, c: 40600}, 40606, {f: 5, c: 40608}, {f: 2, c: 40615},
+    {f: 5, c: 40618}, {f: 4, c: 40624}, {f: 2, c: 40630}, {f: 2, c: 40633},
+    40636, {f: 4, c: 40639}, [12232, 40643], {f: 4, c: 40645},
+    {f: 2, c: 40650}, 40656, {f: 2, c: 40658}, {f: 3, c: 40661},
+    {f: 2, c: 40665}, 40673, {f: 2, c: 40675}, 40678, {f: 4, c: 40683},
+    {f: 2, c: 40688}, 40691, {f: 2, c: 40693}, 40696, 40698, {f: 9, c: 40704},
+    40714, 40716, 40719, {f: 2, c: 40721}, 40724, 40726, 40728,
+    {f: 6, c: 40730}, 40737, {f: 9, c: 40739}, {f: 2, c: 40749},
+    {f: 7, c: 40752}, 40760, 40762, 40764, {f: 5, c: 40767}, {f: 5, c: 40773},
+    {f: 3, c: 40780}, 40787, {f: 4, c: 40789}, {f: 2, c: 40794},
+    {f: 2, c: 40797}, 40802, {f: 2, c: 40804}, {f: 3, c: 40807}, 40811,
+    {f: 5, c: 40813}, {f: 4, c: 40819}, {f: 7, c: 40824}, {f: 2, c: 40833},
+    {f: 2, c: 40846}, {f: 3, c: 40849}, {f: 3, c: 40854}, {f: 2, c: 40861},
+    {f: 5, c: 40865}, 63788, {f: 3, c: 64013}, 64017, {f: 2, c: 64019}, 64024,
+    {f: 3, c: 64031}, {f: 2, c: 64035}, {f: 3, c: 64039}, 11905,
+    [59414, 131207], [59415, 131209], [59416, 131276], 11908, 13427, 13383,
+    11912, 11915, 59422, 13726, 13850, 13838, 11916, 11927, 14702, 14616,
+    59430, 14799, 14815, 14963, 14800, {f: 2, c: 59435}, 15182, 15470, 15584,
+    11943, [59441, 136663], 59442, 11946, 16470, 16735, 11950, 17207, 11955,
+    {f: 2, c: 11958}, [59451, 141711], 17329, 17324, 11963, 17373, 17622,
+    18017, 17996, [59459, 132361], 18211, 18217, 18300, 18317, 11978, 18759,
+    18810, 18813, {f: 2, c: 18818}, {f: 2, c: 18821}, 18847, 18843, 18871,
+    18870, [59476, 133533], [59477, 147966], 19619, {f: 3, c: 19615}, 19575,
+    19618, {f: 7, c: 19731}, 19886, 59492, {s: 226}, 8364, 165, 0, 0, 12351,
+    {s: 17}, 12436, {s: 14}, 12535, 12537, 12536, 12538, 0, {f: 3, c: 12339},
+    {f: 3, c: 12344}, {f: 3, c: 12586}, {f: 24, c: 12704}, 11904,
+    {f: 2, c: 11906}, {f: 3, c: 11909}, {f: 2, c: 11913}, {f: 10, c: 11917},
+    {f: 2, c: 11928}, {f: 12, c: 11931}, {f: 2, c: 11944}, {f: 3, c: 11947},
+    {f: 4, c: 11951}, {f: 2, c: 11956}, {f: 3, c: 11960}, {f: 14, c: 11964},
+    {f: 41, c: 11979}, {f: 71, c: 13312}, {f: 43, c: 13384},
+    {f: 298, c: 13428}, {f: 111, c: 13727}, {f: 11, c: 13839},
+    {f: 765, c: 13851}, {f: 85, c: 14617}, {f: 96, c: 14703},
+    {f: 14, c: 14801}, {f: 147, c: 14816}, {f: 218, c: 14964},
+    {f: 287, c: 15183}, {f: 113, c: 15471}, {f: 885, c: 15585},
+    {f: 264, c: 16471}, {f: 471, c: 16736}, {f: 116, c: 17208},
+    {f: 4, c: 17325}, {f: 43, c: 17330}, {f: 248, c: 17374},
+    {f: 373, c: 17623}, {f: 20, c: 17997}, {f: 193, c: 18018},
+    {f: 5, c: 18212}, {f: 82, c: 18218}, {f: 16, c: 18301}, {f: 441, c: 18318},
+    {f: 50, c: 18760}, {f: 2, c: 18811}, {f: 4, c: 18814}, 18820,
+    {f: 20, c: 18823}, {f: 3, c: 18844}, {f: 22, c: 18848}, {f: 703, c: 18872},
+    {f: 39, c: 19576}, {f: 111, c: 19620}, {f: 148, c: 19738},
+    {f: 7, c: 19887}]
+};
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var ColorSpace = (function ColorSpaceClosure() {
+  // Constructor should define this.numComps, this.defaultColor, this.name
+  function ColorSpace() {
+    error('should not call ColorSpace constructor');
+  }
+
+  ColorSpace.prototype = {
+    // Input: array of size numComps representing color component values
+    // Output: array of rgb values, each value ranging from [0.1]
+    getRgb: function ColorSpace_getRgb(color) {
+      error('Should not call ColorSpace.getRgb: ' + color);
+    },
+    // Input: Uint8Array of component values, each value scaled to [0,255]
+    // Output: Uint8Array of rgb values, each value scaled to [0,255]
+    getRgbBuffer: function ColorSpace_getRgbBuffer(input) {
+      error('Should not call ColorSpace.getRgbBuffer: ' + input);
+    }
+  };
+
+  ColorSpace.parse = function ColorSpace_parse(cs, xref, res) {
+    var IR = ColorSpace.parseToIR(cs, xref, res);
+    if (IR instanceof AlternateCS)
+      return IR;
+
+    return ColorSpace.fromIR(IR);
+  };
+
+  ColorSpace.fromIR = function ColorSpace_fromIR(IR) {
+    var name = isArray(IR) ? IR[0] : IR;
+
+    switch (name) {
+      case 'DeviceGrayCS':
+        return new DeviceGrayCS();
+      case 'DeviceRgbCS':
+        return new DeviceRgbCS();
+      case 'DeviceCmykCS':
+        return new DeviceCmykCS();
+      case 'PatternCS':
+        var basePatternCS = IR[1];
+        if (basePatternCS)
+          basePatternCS = ColorSpace.fromIR(basePatternCS);
+        return new PatternCS(basePatternCS);
+      case 'IndexedCS':
+        var baseIndexedCS = IR[1];
+        var hiVal = IR[2];
+        var lookup = IR[3];
+        return new IndexedCS(ColorSpace.fromIR(baseIndexedCS), hiVal, lookup);
+      case 'AlternateCS':
+        var numComps = IR[1];
+        var alt = IR[2];
+        var tintFnIR = IR[3];
+
+        return new AlternateCS(numComps, ColorSpace.fromIR(alt),
+                                PDFFunction.fromIR(tintFnIR));
+      case 'LabCS':
+        var whitePoint = IR[1].WhitePoint;
+        var blackPoint = IR[1].BlackPoint;
+        var range = IR[1].Range;
+        return new LabCS(whitePoint, blackPoint, range);
+      default:
+        error('Unkown name ' + name);
+    }
+    return null;
+  };
+
+  ColorSpace.parseToIR = function ColorSpace_parseToIR(cs, xref, res) {
+    if (isName(cs)) {
+      var colorSpaces = res.get('ColorSpace');
+      if (isDict(colorSpaces)) {
+        var refcs = colorSpaces.get(cs.name);
+        if (refcs)
+          cs = refcs;
+      }
+    }
+
+    cs = xref.fetchIfRef(cs);
+    var mode;
+
+    if (isName(cs)) {
+      mode = cs.name;
+      this.mode = mode;
+
+      switch (mode) {
+        case 'DeviceGray':
+        case 'G':
+          return 'DeviceGrayCS';
+        case 'DeviceRGB':
+        case 'RGB':
+          return 'DeviceRgbCS';
+        case 'DeviceCMYK':
+        case 'CMYK':
+          return 'DeviceCmykCS';
+        case 'Pattern':
+          return ['PatternCS', null];
+        default:
+          error('unrecognized colorspace ' + mode);
+      }
+    } else if (isArray(cs)) {
+      mode = cs[0].name;
+      this.mode = mode;
+
+      switch (mode) {
+        case 'DeviceGray':
+        case 'G':
+          return 'DeviceGrayCS';
+        case 'DeviceRGB':
+        case 'RGB':
+          return 'DeviceRgbCS';
+        case 'DeviceCMYK':
+        case 'CMYK':
+          return 'DeviceCmykCS';
+        case 'CalGray':
+          return 'DeviceGrayCS';
+        case 'CalRGB':
+          return 'DeviceRgbCS';
+        case 'ICCBased':
+          var stream = xref.fetchIfRef(cs[1]);
+          var dict = stream.dict;
+          var numComps = dict.get('N');
+          if (numComps == 1)
+            return 'DeviceGrayCS';
+          if (numComps == 3)
+            return 'DeviceRgbCS';
+          if (numComps == 4)
+            return 'DeviceCmykCS';
+          break;
+        case 'Pattern':
+          var basePatternCS = cs[1];
+          if (basePatternCS)
+            basePatternCS = ColorSpace.parseToIR(basePatternCS, xref, res);
+          return ['PatternCS', basePatternCS];
+        case 'Indexed':
+        case 'I':
+          var baseIndexedCS = ColorSpace.parseToIR(cs[1], xref, res);
+          var hiVal = cs[2] + 1;
+          var lookup = xref.fetchIfRef(cs[3]);
+          return ['IndexedCS', baseIndexedCS, hiVal, lookup];
+        case 'Separation':
+        case 'DeviceN':
+          var name = cs[1];
+          var numComps = 1;
+          if (isName(name))
+            numComps = 1;
+          else if (isArray(name))
+            numComps = name.length;
+          var alt = ColorSpace.parseToIR(cs[2], xref, res);
+          var tintFnIR = PDFFunction.getIR(xref, xref.fetchIfRef(cs[3]));
+          return ['AlternateCS', numComps, alt, tintFnIR];
+        case 'Lab':
+          var params = cs[1].getAll();
+          return ['LabCS', params];
+        default:
+          error('unimplemented color space object "' + mode + '"');
+      }
+    } else {
+      error('unrecognized color space object: "' + cs + '"');
+    }
+    return null;
+  };
+  /**
+   * Checks if a decode map matches the default decode map for a color space.
+   * This handles the general decode maps where there are two values per
+   * component. e.g. [0, 1, 0, 1, 0, 1] for a RGB color.
+   * This does not handle Lab, Indexed, or Pattern decode maps since they are
+   * slightly different.
+   * @param {Array} decode Decode map (usually from an image).
+   * @param {Number} n Number of components the color space has.
+   */
+  ColorSpace.isDefaultDecode = function ColorSpace_isDefaultDecode(decode, n) {
+    if (!decode)
+      return true;
+
+    if (n * 2 !== decode.length) {
+      warning('The decode map is not the correct length');
+      return true;
+    }
+    for (var i = 0, ii = decode.length; i < ii; i += 2) {
+      if (decode[i] != 0 || decode[i + 1] != 1)
+        return false;
+    }
+    return true;
+  };
+
+  return ColorSpace;
+})();
+
+/**
+ * Alternate color space handles both Separation and DeviceN color spaces.  A
+ * Separation color space is actually just a DeviceN with one color component.
+ * Both color spaces use a tinting function to convert colors to a base color
+ * space.
+ */
+var AlternateCS = (function AlternateCSClosure() {
+  function AlternateCS(numComps, base, tintFn) {
+    this.name = 'Alternate';
+    this.numComps = numComps;
+    this.defaultColor = [];
+    for (var i = 0; i < numComps; ++i)
+      this.defaultColor.push(1);
+    this.base = base;
+    this.tintFn = tintFn;
+  }
+
+  AlternateCS.prototype = {
+    getRgb: function AlternateCS_getRgb(color) {
+      var tinted = this.tintFn(color);
+      return this.base.getRgb(tinted);
+    },
+    getRgbBuffer: function AlternateCS_getRgbBuffer(input, bits) {
+      var tintFn = this.tintFn;
+      var base = this.base;
+      var scale = 1 / ((1 << bits) - 1);
+      var length = input.length;
+      var pos = 0;
+      var baseNumComps = base.numComps;
+      var baseBuf = new Uint8Array(baseNumComps * length);
+      var numComps = this.numComps;
+      var scaled = [];
+
+      for (var i = 0; i < length; i += numComps) {
+        for (var z = 0; z < numComps; ++z)
+          scaled[z] = input[i + z] * scale;
+
+        var tinted = tintFn(scaled);
+        for (var j = 0; j < baseNumComps; ++j)
+          baseBuf[pos++] = 255 * tinted[j];
+      }
+      return base.getRgbBuffer(baseBuf, 8);
+    },
+    isDefaultDecode: function AlternateCS_isDefaultDecode(decodeMap) {
+      return ColorSpace.isDefaultDecode(decodeMap, this.numComps);
+    }
+  };
+
+  return AlternateCS;
+})();
+
+var PatternCS = (function PatternCSClosure() {
+  function PatternCS(baseCS) {
+    this.name = 'Pattern';
+    this.base = baseCS;
+  }
+  PatternCS.prototype = {};
+
+  return PatternCS;
+})();
+
+var IndexedCS = (function IndexedCSClosure() {
+  function IndexedCS(base, highVal, lookup) {
+    this.name = 'Indexed';
+    this.numComps = 1;
+    this.defaultColor = [0];
+    this.base = base;
+    this.highVal = highVal;
+
+    var baseNumComps = base.numComps;
+    var length = baseNumComps * highVal;
+    var lookupArray = new Uint8Array(length);
+
+    if (isStream(lookup)) {
+      var bytes = lookup.getBytes(length);
+      lookupArray.set(bytes);
+    } else if (isString(lookup)) {
+      for (var i = 0; i < length; ++i)
+        lookupArray[i] = lookup.charCodeAt(i);
+    } else {
+      error('Unrecognized lookup table: ' + lookup);
+    }
+    this.lookup = lookupArray;
+  }
+
+  IndexedCS.prototype = {
+    getRgb: function IndexedCS_getRgb(color) {
+      var numComps = this.base.numComps;
+      var start = color[0] * numComps;
+      var c = [];
+
+      for (var i = start, ii = start + numComps; i < ii; ++i)
+        c.push(this.lookup[i]);
+
+      return this.base.getRgb(c);
+    },
+    getRgbBuffer: function IndexedCS_getRgbBuffer(input) {
+      var base = this.base;
+      var numComps = base.numComps;
+      var lookup = this.lookup;
+      var length = input.length;
+      var baseBuf = new Uint8Array(length * numComps);
+      var baseBufPos = 0;
+
+      for (var i = 0; i < length; ++i) {
+        var lookupPos = input[i] * numComps;
+        for (var j = 0; j < numComps; ++j) {
+          baseBuf[baseBufPos++] = lookup[lookupPos + j];
+        }
+      }
+
+      return base.getRgbBuffer(baseBuf, 8);
+    },
+    isDefaultDecode: function IndexedCS_isDefaultDecode(decodeMap) {
+      // indexed color maps shouldn't be changed
+      return true;
+    }
+  };
+  return IndexedCS;
+})();
+
+var DeviceGrayCS = (function DeviceGrayCSClosure() {
+  function DeviceGrayCS() {
+    this.name = 'DeviceGray';
+    this.numComps = 1;
+    this.defaultColor = [0];
+  }
+
+  DeviceGrayCS.prototype = {
+    getRgb: function DeviceGrayCS_getRgb(color) {
+      var c = color[0];
+      return [c, c, c];
+    },
+    getRgbBuffer: function DeviceGrayCS_getRgbBuffer(input, bits) {
+      var scale = 255 / ((1 << bits) - 1);
+      var length = input.length;
+      var rgbBuf = new Uint8Array(length * 3);
+      for (var i = 0, j = 0; i < length; ++i) {
+        var c = (scale * input[i]) | 0;
+        rgbBuf[j++] = c;
+        rgbBuf[j++] = c;
+        rgbBuf[j++] = c;
+      }
+      return rgbBuf;
+    },
+    isDefaultDecode: function DeviceGrayCS_isDefaultDecode(decodeMap) {
+      return ColorSpace.isDefaultDecode(decodeMap, this.numComps);
+    }
+  };
+  return DeviceGrayCS;
+})();
+
+var DeviceRgbCS = (function DeviceRgbCSClosure() {
+  function DeviceRgbCS() {
+    this.name = 'DeviceRGB';
+    this.numComps = 3;
+    this.defaultColor = [0, 0, 0];
+  }
+  DeviceRgbCS.prototype = {
+    getRgb: function DeviceRgbCS_getRgb(color) {
+      return color;
+    },
+    getRgbBuffer: function DeviceRgbCS_getRgbBuffer(input, bits) {
+      if (bits == 8)
+        return input;
+      var scale = 255 / ((1 << bits) - 1);
+      var i, length = input.length;
+      var rgbBuf = new Uint8Array(length);
+      for (i = 0; i < length; ++i)
+        rgbBuf[i] = (scale * input[i]) | 0;
+      return rgbBuf;
+    },
+    isDefaultDecode: function DeviceRgbCS_isDefaultDecode(decodeMap) {
+      return ColorSpace.isDefaultDecode(decodeMap, this.numComps);
+    }
+  };
+  return DeviceRgbCS;
+})();
+
+var DeviceCmykCS = (function DeviceCmykCSClosure() {
+  function DeviceCmykCS() {
+    this.name = 'DeviceCMYK';
+    this.numComps = 4;
+    this.defaultColor = [0, 0, 0, 1];
+  }
+  DeviceCmykCS.prototype = {
+    getRgb: function DeviceCmykCS_getRgb(color) {
+      var c = color[0], m = color[1], y = color[2], k = color[3];
+
+      // CMYK -> CMY: http://www.easyrgb.com/index.php?X=MATH&H=14#text14
+      c = (c * (1 - k) + k);
+      m = (m * (1 - k) + k);
+      y = (y * (1 - k) + k);
+
+      // CMY -> RGB: http://www.easyrgb.com/index.php?X=MATH&H=12#text12
+      var r = (1 - c);
+      var g = (1 - m);
+      var b = (1 - y);
+
+      return [r, g, b];
+    },
+    getRgbBuffer: function DeviceCmykCS_getRgbBuffer(colorBuf, bits) {
+      var scale = 1 / ((1 << bits) - 1);
+      var length = colorBuf.length / 4;
+      var rgbBuf = new Uint8Array(length * 3);
+      var rgbBufPos = 0;
+      var colorBufPos = 0;
+
+      for (var i = 0; i < length; i++) {
+        var cmyk = [];
+        for (var j = 0; j < 4; ++j)
+          cmyk.push(scale * colorBuf[colorBufPos++]);
+
+        var rgb = this.getRgb(cmyk);
+        for (var j = 0; j < 3; ++j)
+          rgbBuf[rgbBufPos++] = Math.round(rgb[j] * 255);
+      }
+
+      return rgbBuf;
+    },
+    isDefaultDecode: function DeviceCmykCS_isDefaultDecode(decodeMap) {
+      return ColorSpace.isDefaultDecode(decodeMap, this.numComps);
+    }
+  };
+
+  return DeviceCmykCS;
+})();
+
+//
+// LabCS: Based on "PDF Reference, Sixth Ed", p.250
+//
+var LabCS = (function LabCSClosure() {
+  function LabCS(whitePoint, blackPoint, range) {
+    this.name = 'Lab';
+    this.numComps = 3;
+    this.defaultColor = [0, 0, 0];
+
+    if (!whitePoint)
+      error('WhitePoint missing - required for color space Lab');
+    blackPoint = blackPoint || [0, 0, 0];
+    range = range || [-100, 100, -100, 100];
+
+    // Translate args to spec variables
+    this.XW = whitePoint[0];
+    this.YW = whitePoint[1];
+    this.ZW = whitePoint[2];
+    this.amin = range[0];
+    this.amax = range[1];
+    this.bmin = range[2];
+    this.bmax = range[3];
+
+    // These are here just for completeness - the spec doesn't offer any
+    // formulas that use BlackPoint in Lab
+    this.XB = blackPoint[0];
+    this.YB = blackPoint[1];
+    this.ZB = blackPoint[2];
+
+    // Validate vars as per spec
+    if (this.XW < 0 || this.ZW < 0 || this.YW !== 1)
+      error('Invalid WhitePoint components, no fallback available');
+
+    if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {
+      warn('Invalid BlackPoint, falling back to default');
+      this.XB = this.YB = this.ZB = 0;
+    }
+
+    if (this.amin > this.amax || this.bmin > this.bmax) {
+      warn('Invalid Range, falling back to defaults');
+      this.amin = -100;
+      this.amax = 100;
+      this.bmin = -100;
+      this.bmax = 100;
+    }
+  };
+
+  // Function g(x) from spec
+  function g(x) {
+    if (x >= 6 / 29)
+      return x * x * x;
+    else
+      return (108 / 841) * (x - 4 / 29);
+  }
+
+  LabCS.prototype = {
+    getRgb: function LabCS_getRgb(color) {
+      // Ls,as,bs <---> L*,a*,b* in the spec
+      var Ls = color[0], as = color[1], bs = color[2];
+
+      // Adjust limits of 'as' and 'bs'
+      as = as > this.amax ? this.amax : as;
+      as = as < this.amin ? this.amin : as;
+      bs = bs > this.bmax ? this.bmax : bs;
+      bs = bs < this.bmin ? this.bmin : bs;
+
+      // Computes intermediate variables X,Y,Z as per spec
+      var M = (Ls + 16) / 116;
+      var L = M + (as / 500);
+      var N = M - (bs / 200);
+      var X = this.XW * g(L);
+      var Y = this.YW * g(M);
+      var Z = this.ZW * g(N);
+
+      // XYZ to RGB 3x3 matrix, from:
+      // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC18
+      var XYZtoRGB = [3.240479, -1.537150, -0.498535,
+                      -0.969256, 1.875992, 0.041556,
+                      0.055648, -0.204043, 1.057311];
+
+      return Util.apply3dTransform(XYZtoRGB, [X, Y, Z]);
+    },
+    getRgbBuffer: function LabCS_getRgbBuffer(input, bits) {
+      if (bits == 8)
+        return input;
+      var scale = 255 / ((1 << bits) - 1);
+      var i, length = input.length / 3;
+      var rgbBuf = new Uint8Array(length);
+
+      var j = 0;
+      for (i = 0; i < length; ++i) {
+        // Convert L*, a*, s* into RGB
+        var rgb = this.getRgb([input[i], input[i + 1], input[i + 2]]);
+        rgbBuf[j++] = rgb[0];
+        rgbBuf[j++] = rgb[1];
+        rgbBuf[j++] = rgb[2];
+      }
+
+      return rgbBuf;
+    },
+    isDefaultDecode: function LabCS_isDefaultDecode(decodeMap) {
+      // From Table 90 in Adobe's:
+      // "Document management - Portable document format", 1st ed, 2008
+      if (decodeMap[0] === 0 && decodeMap[1] === 100 &&
+          decodeMap[2] === this.amin && decodeMap[3] === this.amax &&
+          decodeMap[4] === this.bmin && decodeMap[5] === this.bmax)
+        return true;
+      else
+        return false;
+    }
+  };
+  return LabCS;
+})();
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var ARCFourCipher = (function ARCFourCipherClosure() {
+  function ARCFourCipher(key) {
+    this.a = 0;
+    this.b = 0;
+    var s = new Uint8Array(256);
+    var i, j = 0, tmp, keyLength = key.length;
+    for (i = 0; i < 256; ++i)
+      s[i] = i;
+    for (i = 0; i < 256; ++i) {
+      tmp = s[i];
+      j = (j + tmp + key[i % keyLength]) & 0xFF;
+      s[i] = s[j];
+      s[j] = tmp;
+    }
+    this.s = s;
+  }
+
+  ARCFourCipher.prototype = {
+    encryptBlock: function ARCFourCipher_encryptBlock(data) {
+      var i, n = data.length, tmp, tmp2;
+      var a = this.a, b = this.b, s = this.s;
+      var output = new Uint8Array(n);
+      for (i = 0; i < n; ++i) {
+        a = (a + 1) & 0xFF;
+        tmp = s[a];
+        b = (b + tmp) & 0xFF;
+        tmp2 = s[b];
+        s[a] = tmp2;
+        s[b] = tmp;
+        output[i] = data[i] ^ s[(tmp + tmp2) & 0xFF];
+      }
+      this.a = a;
+      this.b = b;
+      return output;
+    }
+  };
+  ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock;
+
+  return ARCFourCipher;
+})();
+
+var calculateMD5 = (function calculateMD5Closure() {
+  var r = new Uint8Array([
+    7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,
+    5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,
+    4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,
+    6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);
+
+  var k = new Int32Array([
+    -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426,
+    -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162,
+    1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632,
+    643717713, -373897302, -701558691, 38016083, -660478335, -405537848,
+    568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784,
+    1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556,
+    -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222,
+    -722521979, 76029189, -640364487, -421815835, 530742520, -995338651,
+    -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606,
+    -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649,
+    -145523070, -1120210379, 718787259, -343485551]);
+
+  function hash(data, offset, length) {
+    var h0 = 1732584193, h1 = -271733879, h2 = -1732584194, h3 = 271733878;
+    // pre-processing
+    var paddedLength = (length + 72) & ~63; // data + 9 extra bytes
+    var padded = new Uint8Array(paddedLength);
+    var i, j, n;
+    for (i = 0; i < length; ++i)
+      padded[i] = data[offset++];
+    padded[i++] = 0x80;
+    n = paddedLength - 8;
+    while (i < n)
+      padded[i++] = 0;
+    padded[i++] = (length << 3) & 0xFF;
+    padded[i++] = (length >> 5) & 0xFF;
+    padded[i++] = (length >> 13) & 0xFF;
+    padded[i++] = (length >> 21) & 0xFF;
+    padded[i++] = (length >>> 29) & 0xFF;
+    padded[i++] = 0;
+    padded[i++] = 0;
+    padded[i++] = 0;
+    // chunking
+    // TODO ArrayBuffer ?
+    var w = new Int32Array(16);
+    for (i = 0; i < paddedLength;) {
+      for (j = 0; j < 16; ++j, i += 4) {
+        w[j] = (padded[i] | (padded[i + 1] << 8) |
+                (padded[i + 2] << 16) | (padded[i + 3] << 24));
+      }
+      var a = h0, b = h1, c = h2, d = h3, f, g;
+      for (j = 0; j < 64; ++j) {
+        if (j < 16) {
+          f = (b & c) | ((~b) & d);
+          g = j;
+        } else if (j < 32) {
+          f = (d & b) | ((~d) & c);
+          g = (5 * j + 1) & 15;
+        } else if (j < 48) {
+          f = b ^ c ^ d;
+          g = (3 * j + 5) & 15;
+        } else {
+          f = c ^ (b | (~d));
+          g = (7 * j) & 15;
+        }
+        var tmp = d, rotateArg = (a + f + k[j] + w[g]) | 0, rotate = r[j];
+        d = c;
+        c = b;
+        b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0;
+        a = tmp;
+      }
+      h0 = (h0 + a) | 0;
+      h1 = (h1 + b) | 0;
+      h2 = (h2 + c) | 0;
+      h3 = (h3 + d) | 0;
+    }
+    return new Uint8Array([
+        h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF,
+        h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF,
+        h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF,
+        h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF
+    ]);
+  }
+  return hash;
+})();
+
+var NullCipher = (function NullCipherClosure() {
+  function NullCipher() {
+  }
+
+  NullCipher.prototype = {
+    decryptBlock: function NullCipher_decryptBlock(data) {
+      return data;
+    }
+  };
+
+  return NullCipher;
+})();
+
+var AES128Cipher = (function AES128CipherClosure() {
+  var rcon = new Uint8Array([
+    0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,
+    0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,
+    0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,
+    0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,
+    0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
+    0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6,
+    0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72,
+    0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc,
+    0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10,
+    0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e,
+    0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5,
+    0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94,
+    0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02,
+    0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d,
+    0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d,
+    0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f,
+    0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb,
+    0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,
+    0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,
+    0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,
+    0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,
+    0x74, 0xe8, 0xcb, 0x8d]);
+
+  var s = new Uint8Array([
+    0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,
+    0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,
+    0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26,
+    0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
+    0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,
+    0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,
+    0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed,
+    0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
+    0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f,
+    0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,
+    0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec,
+    0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
+    0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14,
+    0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,
+    0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,
+    0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
+    0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f,
+    0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,
+    0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,
+    0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
+    0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,
+    0xb0, 0x54, 0xbb, 0x16]);
+
+  var inv_s = new Uint8Array([
+    0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e,
+    0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,
+    0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32,
+    0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,
+    0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49,
+    0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,
+    0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50,
+    0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,
+    0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05,
+    0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,
+    0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41,
+    0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,
+    0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8,
+    0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,
+    0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b,
+    0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,
+    0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59,
+    0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,
+    0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d,
+    0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,
+    0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63,
+    0x55, 0x21, 0x0c, 0x7d]);
+
+  var mix = new Uint32Array([
+    0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927,
+    0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45,
+    0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb,
+    0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381,
+    0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf,
+    0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66,
+    0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28,
+    0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012,
+    0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec,
+    0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e,
+    0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd,
+    0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7,
+    0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89,
+    0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b,
+    0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815,
+    0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f,
+    0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa,
+    0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8,
+    0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36,
+    0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c,
+    0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742,
+    0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea,
+    0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4,
+    0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e,
+    0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360,
+    0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502,
+    0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87,
+    0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd,
+    0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3,
+    0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621,
+    0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f,
+    0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55,
+    0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26,
+    0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844,
+    0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba,
+    0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480,
+    0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce,
+    0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67,
+    0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929,
+    0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713,
+    0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed,
+    0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f,
+    0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);
+
+  function expandKey128(cipherKey) {
+    var b = 176, result = new Uint8Array(b);
+    result.set(cipherKey);
+    for (var j = 16, i = 1; j < b; ++i) {
+      // RotWord
+      var t1 = result[j - 3], t2 = result[j - 2],
+          t3 = result[j - 1], t4 = result[j - 4];
+      // SubWord
+      t1 = s[t1]; t2 = s[t2]; t3 = s[t3]; t4 = s[t4];
+      // Rcon
+      t1 = t1 ^ rcon[i];
+      for (var n = 0; n < 4; ++n) {
+        result[j] = (t1 ^= result[j - 16]); j++;
+        result[j] = (t2 ^= result[j - 16]); j++;
+        result[j] = (t3 ^= result[j - 16]); j++;
+        result[j] = (t4 ^= result[j - 16]); j++;
+      }
+    }
+    return result;
+  }
+
+  function decrypt128(input, key) {
+    var state = new Uint8Array(16);
+    state.set(input);
+    var i, j, k;
+    var t, u, v;
+    // AddRoundKey
+    for (j = 0, k = 160; j < 16; ++j, ++k)
+      state[j] ^= key[k];
+    for (i = 9; i >= 1; --i) {
+      // InvShiftRows
+      t = state[13]; state[13] = state[9]; state[9] = state[5];
+      state[5] = state[1]; state[1] = t;
+      t = state[14]; u = state[10]; state[14] = state[6];
+      state[10] = state[2]; state[6] = t; state[2] = u;
+      t = state[15]; u = state[11]; v = state[7]; state[15] = state[3];
+      state[11] = t; state[7] = u; state[3] = v;
+      // InvSubBytes
+      for (j = 0; j < 16; ++j)
+        state[j] = inv_s[state[j]];
+      // AddRoundKey
+      for (j = 0, k = i * 16; j < 16; ++j, ++k)
+        state[j] ^= key[k];
+      // InvMixColumns
+      for (j = 0; j < 16; j += 4) {
+        var s0 = mix[state[j]], s1 = mix[state[j + 1]],
+            s2 = mix[state[j + 2]], s3 = mix[state[j + 3]];
+        t = (s0 ^ (s1 >>> 8) ^ (s1 << 24) ^ (s2 >>> 16) ^ (s2 << 16) ^
+            (s3 >>> 24) ^ (s3 << 8));
+        state[j] = (t >>> 24) & 0xFF;
+        state[j + 1] = (t >> 16) & 0xFF;
+        state[j + 2] = (t >> 8) & 0xFF;
+        state[j + 3] = t & 0xFF;
+      }
+    }
+    // InvShiftRows
+    t = state[13]; state[13] = state[9]; state[9] = state[5];
+    state[5] = state[1]; state[1] = t;
+    t = state[14]; u = state[10]; state[14] = state[6];
+    state[10] = state[2]; state[6] = t; state[2] = u;
+    t = state[15]; u = state[11]; v = state[7]; state[15] = state[3];
+    state[11] = t; state[7] = u; state[3] = v;
+    for (j = 0; j < 16; ++j) {
+      // InvSubBytes
+      state[j] = inv_s[state[j]];
+      // AddRoundKey
+      state[j] ^= key[j];
+    }
+    return state;
+  }
+
+  function AES128Cipher(key) {
+    this.key = expandKey128(key);
+    this.buffer = new Uint8Array(16);
+    this.bufferPosition = 0;
+  }
+
+  function decryptBlock2(data) {
+    var i, j, ii, sourceLength = data.length,
+        buffer = this.buffer, bufferLength = this.bufferPosition,
+        result = [], iv = this.iv;
+    for (i = 0; i < sourceLength; ++i) {
+      buffer[bufferLength] = data[i];
+      ++bufferLength;
+      if (bufferLength < 16)
+        continue;
+      // buffer is full, decrypting
+      var plain = decrypt128(buffer, this.key);
+      // xor-ing the IV vector to get plain text
+      for (j = 0; j < 16; ++j)
+        plain[j] ^= iv[j];
+      iv = buffer;
+      result.push(plain);
+      buffer = new Uint8Array(16);
+      bufferLength = 0;
+    }
+    // saving incomplete buffer
+    this.buffer = buffer;
+    this.bufferLength = bufferLength;
+    this.iv = iv;
+    if (result.length == 0)
+      return new Uint8Array([]);
+    if (result.length == 1)
+      return result[0];
+    // combining plain text blocks into one
+    var output = new Uint8Array(16 * result.length);
+    for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16)
+      output.set(result[i], j);
+    return output;
+  }
+
+  AES128Cipher.prototype = {
+    decryptBlock: function AES128Cipher_decryptBlock(data) {
+      var i, sourceLength = data.length;
+      var buffer = this.buffer, bufferLength = this.bufferPosition;
+      // waiting for IV values -- they are at the start of the stream
+      for (i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength)
+        buffer[bufferLength] = data[i];
+      if (bufferLength < 16) {
+        // need more data
+        this.bufferLength = bufferLength;
+        return new Uint8Array([]);
+      }
+      this.iv = buffer;
+      this.buffer = new Uint8Array(16);
+      this.bufferLength = 0;
+      // starting decryption
+      this.decryptBlock = decryptBlock2;
+      return this.decryptBlock(data.subarray(16));
+    }
+  };
+
+  return AES128Cipher;
+})();
+
+var CipherTransform = (function CipherTransformClosure() {
+  function CipherTransform(stringCipherConstructor, streamCipherConstructor) {
+    this.stringCipherConstructor = stringCipherConstructor;
+    this.streamCipherConstructor = streamCipherConstructor;
+  }
+  CipherTransform.prototype = {
+    createStream: function CipherTransform_createStream(stream) {
+      var cipher = new this.streamCipherConstructor();
+      return new DecryptStream(stream,
+        function cipherTransformDecryptStream(data) {
+          return cipher.decryptBlock(data);
+        }
+      );
+    },
+    decryptString: function CipherTransform_decryptString(s) {
+      var cipher = new this.stringCipherConstructor();
+      var data = stringToBytes(s);
+      data = cipher.decryptBlock(data);
+      return bytesToString(data);
+    }
+  };
+  return CipherTransform;
+})();
+
+var CipherTransformFactory = (function CipherTransformFactoryClosure() {
+  function prepareKeyData(fileId, password, ownerPassword, userPassword,
+                          flags, revision, keyLength, encryptMetadata) {
+    var defaultPasswordBytes = new Uint8Array([
+      0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41,
+      0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08,
+      0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80,
+      0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]);
+    var hashData = new Uint8Array(100), i = 0, j, n;
+    if (password) {
+      n = Math.min(32, password.length);
+      for (; i < n; ++i)
+        hashData[i] = password[i];
+    }
+    j = 0;
+    while (i < 32) {
+      hashData[i++] = defaultPasswordBytes[j++];
+    }
+    // as now the padded password in the hashData[0..i]
+    for (j = 0, n = ownerPassword.length; j < n; ++j)
+      hashData[i++] = ownerPassword[j];
+    hashData[i++] = flags & 0xFF;
+    hashData[i++] = (flags >> 8) & 0xFF;
+    hashData[i++] = (flags >> 16) & 0xFF;
+    hashData[i++] = (flags >>> 24) & 0xFF;
+    for (j = 0, n = fileId.length; j < n; ++j)
+      hashData[i++] = fileId[j];
+    if (revision >= 4 && !encryptMetadata) {
+      hashData[i++] = 0xFF;
+      hashData[i++] = 0xFF;
+      hashData[i++] = 0xFF;
+      hashData[i++] = 0xFF;
+    }
+    var hash = calculateMD5(hashData, 0, i);
+    var keyLengthInBytes = keyLength >> 3;
+    if (revision >= 3) {
+      for (j = 0; j < 50; ++j) {
+         hash = calculateMD5(hash, 0, keyLengthInBytes);
+      }
+    }
+    var encryptionKey = hash.subarray(0, keyLengthInBytes);
+    var cipher, checkData;
+
+    if (revision >= 3) {
+      // padded password in hashData, we can use this array for user
+      // password check
+      i = 32;
+      for (j = 0, n = fileId.length; j < n; ++j)
+        hashData[i++] = fileId[j];
+      cipher = new ARCFourCipher(encryptionKey);
+      var checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));
+      n = encryptionKey.length;
+      var derivedKey = new Uint8Array(n), k;
+      for (j = 1; j <= 19; ++j) {
+        for (k = 0; k < n; ++k)
+          derivedKey[k] = encryptionKey[k] ^ j;
+        cipher = new ARCFourCipher(derivedKey);
+        checkData = cipher.encryptBlock(checkData);
+      }
+    } else {
+      cipher = new ARCFourCipher(encryptionKey);
+      checkData = cipher.encryptBlock(hashData.subarray(0, 32));
+    }
+    for (j = 0, n = checkData.length; j < n; ++j) {
+      if (userPassword[j] != checkData[j])
+        error('incorrect password');
+    }
+    return encryptionKey;
+  }
+
+  var identityName = new Name('Identity');
+
+  function CipherTransformFactory(dict, fileId, password) {
+    var filter = dict.get('Filter');
+    if (!isName(filter) || filter.name != 'Standard')
+      error('unknown encryption method');
+    this.dict = dict;
+    var algorithm = dict.get('V');
+    if (!isInt(algorithm) ||
+      (algorithm != 1 && algorithm != 2 && algorithm != 4))
+      error('unsupported encryption algorithm');
+    this.algorithm = algorithm;
+    var keyLength = dict.get('Length') || 40;
+    if (!isInt(keyLength) ||
+      keyLength < 40 || (keyLength % 8) != 0)
+      error('invalid key length');
+    // prepare keys
+    var ownerPassword = stringToBytes(dict.get('O'));
+    var userPassword = stringToBytes(dict.get('U'));
+    var flags = dict.get('P');
+    var revision = dict.get('R');
+    var encryptMetadata =
+      dict.get('EncryptMetadata') !== false; // makes true as default value
+    var fileIdBytes = stringToBytes(fileId);
+    var passwordBytes;
+    if (password)
+      passwordBytes = stringToBytes(password);
+
+    this.encryptionKey = prepareKeyData(fileIdBytes, passwordBytes,
+                                        ownerPassword, userPassword,
+                                        flags, revision,
+                                        keyLength, encryptMetadata);
+    if (algorithm == 4) {
+      this.cf = dict.get('CF');
+      this.stmf = dict.get('StmF') || identityName;
+      this.strf = dict.get('StrF') || identityName;
+      this.eff = dict.get('EFF') || this.strf;
+    }
+  }
+
+  function buildObjectKey(num, gen, encryptionKey, isAes) {
+    var key = new Uint8Array(encryptionKey.length + 9), i, n;
+    for (i = 0, n = encryptionKey.length; i < n; ++i)
+      key[i] = encryptionKey[i];
+    key[i++] = num & 0xFF;
+    key[i++] = (num >> 8) & 0xFF;
+    key[i++] = (num >> 16) & 0xFF;
+    key[i++] = gen & 0xFF;
+    key[i++] = (gen >> 8) & 0xFF;
+    if (isAes) {
+      key[i++] = 0x73;
+      key[i++] = 0x41;
+      key[i++] = 0x6C;
+      key[i++] = 0x54;
+    }
+    var hash = calculateMD5(key, 0, i);
+    return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));
+  }
+
+  function buildCipherConstructor(cf, name, num, gen, key) {
+    var cryptFilter = cf.get(name.name);
+    var cfm;
+    if (cryptFilter != null)
+      cfm = cryptFilter.get('CFM');
+    if (!cfm || cfm.name == 'None') {
+      return function cipherTransformFactoryBuildCipherConstructorNone() {
+        return new NullCipher();
+      };
+    }
+    if ('V2' == cfm.name) {
+      return function cipherTransformFactoryBuildCipherConstructorV2() {
+        return new ARCFourCipher(
+          buildObjectKey(num, gen, key, false));
+      };
+    }
+    if ('AESV2' == cfm.name) {
+      return function cipherTransformFactoryBuildCipherConstructorAESV2() {
+        return new AES128Cipher(
+          buildObjectKey(num, gen, key, true));
+      };
+    }
+    error('Unknown crypto method');
+  }
+
+  CipherTransformFactory.prototype = {
+    createCipherTransform:
+      function CipherTransformFactory_createCipherTransform(num, gen) {
+      if (this.algorithm == 4) {
+        return new CipherTransform(
+          buildCipherConstructor(this.cf, this.stmf,
+            num, gen, this.encryptionKey),
+          buildCipherConstructor(this.cf, this.strf,
+            num, gen, this.encryptionKey));
+      }
+      // algorithms 1 and 2
+      var key = buildObjectKey(num, gen, this.encryptionKey, false);
+      var cipherConstructor = function buildCipherCipherConstructor() {
+        return new ARCFourCipher(key);
+      };
+      return new CipherTransform(cipherConstructor, cipherConstructor);
+    }
+  };
+
+  return CipherTransformFactory;
+})();
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var PartialEvaluator = (function PartialEvaluatorClosure() {
+  function PartialEvaluator(xref, handler, uniquePrefix) {
+    this.state = new EvalState();
+    this.stateStack = [];
+
+    this.xref = xref;
+    this.handler = handler;
+    this.uniquePrefix = uniquePrefix;
+    this.objIdCounter = 0;
+  }
+
+  var OP_MAP = {
+    // Graphics state
+    w: 'setLineWidth',
+    J: 'setLineCap',
+    j: 'setLineJoin',
+    M: 'setMiterLimit',
+    d: 'setDash',
+    ri: 'setRenderingIntent',
+    i: 'setFlatness',
+    gs: 'setGState',
+    q: 'save',
+    Q: 'restore',
+    cm: 'transform',
+
+    // Path
+    m: 'moveTo',
+    l: 'lineTo',
+    c: 'curveTo',
+    v: 'curveTo2',
+    y: 'curveTo3',
+    h: 'closePath',
+    re: 'rectangle',
+    S: 'stroke',
+    s: 'closeStroke',
+    f: 'fill',
+    F: 'fill',
+    'f*': 'eoFill',
+    B: 'fillStroke',
+    'B*': 'eoFillStroke',
+    b: 'closeFillStroke',
+    'b*': 'closeEOFillStroke',
+    n: 'endPath',
+
+    // Clipping
+    W: 'clip',
+    'W*': 'eoClip',
+
+    // Text
+    BT: 'beginText',
+    ET: 'endText',
+    Tc: 'setCharSpacing',
+    Tw: 'setWordSpacing',
+    Tz: 'setHScale',
+    TL: 'setLeading',
+    Tf: 'setFont',
+    Tr: 'setTextRenderingMode',
+    Ts: 'setTextRise',
+    Td: 'moveText',
+    TD: 'setLeadingMoveText',
+    Tm: 'setTextMatrix',
+    'T*': 'nextLine',
+    Tj: 'showText',
+    TJ: 'showSpacedText',
+    "'": 'nextLineShowText',
+    '"': 'nextLineSetSpacingShowText',
+
+    // Type3 fonts
+    d0: 'setCharWidth',
+    d1: 'setCharWidthAndBounds',
+
+    // Color
+    CS: 'setStrokeColorSpace',
+    cs: 'setFillColorSpace',
+    SC: 'setStrokeColor',
+    SCN: 'setStrokeColorN',
+    sc: 'setFillColor',
+    scn: 'setFillColorN',
+    G: 'setStrokeGray',
+    g: 'setFillGray',
+    RG: 'setStrokeRGBColor',
+    rg: 'setFillRGBColor',
+    K: 'setStrokeCMYKColor',
+    k: 'setFillCMYKColor',
+
+    // Shading
+    sh: 'shadingFill',
+
+    // Images
+    BI: 'beginInlineImage',
+    ID: 'beginImageData',
+    EI: 'endInlineImage',
+
+    // XObjects
+    Do: 'paintXObject',
+
+    // Marked content
+    MP: 'markPoint',
+    DP: 'markPointProps',
+    BMC: 'beginMarkedContent',
+    BDC: 'beginMarkedContentProps',
+    EMC: 'endMarkedContent',
+
+    // Compatibility
+    BX: 'beginCompat',
+    EX: 'endCompat'
+  };
+
+  function splitCombinedOperations(operations) {
+    // Two operations can be combined together, trying to find which two
+    // operations were concatenated.
+    for (var i = operations.length - 1; i > 0; i--) {
+      var op1 = operations.substring(0, i), op2 = operations.substring(i);
+      if (op1 in OP_MAP && op2 in OP_MAP)
+        return [op1, op2]; // operations found
+    }
+    return null;
+  }
+
+  PartialEvaluator.prototype = {
+    getOperatorList: function PartialEvaluator_getOperatorList(stream,
+                                                               resources,
+                                                               dependency,
+                                                               queue) {
+
+      var self = this;
+      var xref = this.xref;
+      var handler = this.handler;
+      var uniquePrefix = this.uniquePrefix || '';
+
+      function insertDependency(depList) {
+        fnArray.push('dependency');
+        argsArray.push(depList);
+        for (var i = 0, ii = depList.length; i < ii; i++) {
+          var dep = depList[i];
+          if (dependency.indexOf(dep) == -1) {
+            dependency.push(depList[i]);
+          }
+        }
+      }
+
+      function handleSetFont(fontName, font) {
+        var loadedName = null;
+
+        var fontRes = resources.get('Font');
+
+        assert(fontRes, 'fontRes not available');
+
+        font = xref.fetchIfRef(font) || fontRes.get(fontName);
+        assertWellFormed(isDict(font));
+        ++self.objIdCounter;
+        if (!font.translated) {
+          font.translated = self.translateFont(font, xref, resources,
+                                               dependency);
+          if (font.translated) {
+            // keep track of each font we translated so the caller can
+            // load them asynchronously before calling display on a page
+            loadedName = 'font_' + uniquePrefix + self.objIdCounter;
+            font.translated.properties.loadedName = loadedName;
+            font.loadedName = loadedName;
+
+            var translated = font.translated;
+            // Convert the file to an ArrayBuffer which will be turned back into
+            // a Stream in the main thread.
+            if (translated.file)
+              translated.file = translated.file.getBytes();
+            if (translated.properties.file) {
+              translated.properties.file =
+                  translated.properties.file.getBytes();
+            }
+
+            handler.send('obj', [
+                loadedName,
+                'Font',
+                translated.name,
+                translated.file,
+                translated.properties
+            ]);
+          }
+        }
+        loadedName = loadedName || font.loadedName;
+
+        // Ensure the font is ready before the font is set
+        // and later on used for drawing.
+        // OPTIMIZE: This should get insert to the operatorList only once per
+        // page.
+        insertDependency([loadedName]);
+        return loadedName;
+      }
+
+      function buildPaintImageXObject(image, inline) {
+        var dict = image.dict;
+        var w = dict.get('Width', 'W');
+        var h = dict.get('Height', 'H');
+
+        var imageMask = dict.get('ImageMask', 'IM') || false;
+        if (imageMask) {
+          // This depends on a tmpCanvas beeing filled with the
+          // current fillStyle, such that processing the pixel
+          // data can't be done here. Instead of creating a
+          // complete PDFImage, only read the information needed
+          // for later.
+
+          var width = dict.get('Width', 'W');
+          var height = dict.get('Height', 'H');
+          var bitStrideLength = (width + 7) >> 3;
+          var imgArray = image.getBytes(bitStrideLength * height);
+          var decode = dict.get('Decode', 'D');
+          var inverseDecode = !!decode && decode[0] > 0;
+
+          fn = 'paintImageMaskXObject';
+          args = [imgArray, inverseDecode, width, height];
+          return;
+        }
+
+        // If there is no imageMask, create the PDFImage and a lot
+        // of image processing can be done here.
+        var objId = 'img_' + uniquePrefix + (++self.objIdCounter);
+        insertDependency([objId]);
+        args = [objId, w, h];
+
+        var softMask = dict.get('SMask', 'IM') || false;
+        if (!softMask && image instanceof JpegStream &&
+            image.isNativelySupported(xref, resources)) {
+          // These JPEGs don't need any more processing so we can just send it.
+          fn = 'paintJpegXObject';
+          handler.send('obj', [objId, 'JpegStream', image.getIR()]);
+          return;
+        }
+
+        fn = 'paintImageXObject';
+
+        PDFImage.buildImage(function(imageObj) {
+            var drawWidth = imageObj.drawWidth;
+            var drawHeight = imageObj.drawHeight;
+            var imgData = {
+              width: drawWidth,
+              height: drawHeight,
+              data: new Uint8Array(drawWidth * drawHeight * 4)
+            };
+            var pixels = imgData.data;
+            imageObj.fillRgbaBuffer(pixels, drawWidth, drawHeight);
+            handler.send('obj', [objId, 'Image', imgData]);
+          }, handler, xref, resources, image, inline);
+      }
+
+      if (!queue)
+        queue = {};
+
+      if (!queue.argsArray) {
+        queue.argsArray = [];
+      }
+      if (!queue.fnArray) {
+        queue.fnArray = [];
+      }
+
+      var fnArray = queue.fnArray, argsArray = queue.argsArray;
+      var dependencyArray = dependency || [];
+
+      resources = resources || new Dict();
+      var xobjs = resources.get('XObject') || new Dict();
+      var patterns = resources.get('Pattern') || new Dict();
+      var parser = new Parser(new Lexer(stream), false, xref);
+      var res = resources;
+      var hasNextObj = false, nextObj;
+      var args = [], obj;
+      var TILING_PATTERN = 1, SHADING_PATTERN = 2;
+
+      while (true) {
+        if (hasNextObj) {
+          obj = nextObj;
+          hasNextObj = false;
+        } else {
+          obj = parser.getObj();
+          if (isEOF(obj))
+            break;
+        }
+
+        if (isCmd(obj)) {
+          var cmd = obj.cmd;
+          var fn = OP_MAP[cmd];
+          if (!fn) {
+            // invalid content command, trying to recover
+            var cmds = splitCombinedOperations(cmd);
+            if (cmds) {
+              cmd = cmds[0];
+              fn = OP_MAP[cmd];
+              // feeding other command on the next interation
+              hasNextObj = true;
+              nextObj = Cmd.get(cmds[1]);
+            }
+          }
+          assertWellFormed(fn, 'Unknown command "' + cmd + '"');
+          // TODO figure out how to type-check vararg functions
+
+          if ((cmd == 'SCN' || cmd == 'scn') && !args[args.length - 1].code) {
+            // compile tiling patterns
+            var patternName = args[args.length - 1];
+            // SCN/scn applies patterns along with normal colors
+            if (isName(patternName)) {
+              var pattern = patterns.get(patternName.name);
+              if (pattern) {
+                var dict = isStream(pattern) ? pattern.dict : pattern;
+                var typeNum = dict.get('PatternType');
+
+                if (typeNum == TILING_PATTERN) {
+                  // Create an IR of the pattern code.
+                  var depIdx = dependencyArray.length;
+                  var operatorList = this.getOperatorList(pattern,
+                      dict.get('Resources') || resources, dependencyArray);
+
+                  // Add the dependencies that are required to execute the
+                  // operatorList.
+                  insertDependency(dependencyArray.slice(depIdx));
+
+                  args = TilingPattern.getIR(operatorList, dict, args);
+                }
+                else if (typeNum == SHADING_PATTERN) {
+                  var shading = dict.get('Shading');
+                  var matrix = dict.get('Matrix');
+                  var pattern = Pattern.parseShading(shading, matrix, xref,
+                                                     res);
+                  args = pattern.getIR();
+                } else {
+                  error('Unkown PatternType ' + typeNum);
+                }
+              }
+            }
+          } else if (cmd == 'Do' && !args[0].code) {
+            // eagerly compile XForm objects
+            var name = args[0].name;
+            var xobj = xobjs.get(name);
+            if (xobj) {
+              assertWellFormed(isStream(xobj), 'XObject should be a stream');
+
+              var type = xobj.dict.get('Subtype');
+              assertWellFormed(
+                isName(type),
+                'XObject should have a Name subtype'
+              );
+
+              if ('Form' == type.name) {
+                var matrix = xobj.dict.get('Matrix');
+                var bbox = xobj.dict.get('BBox');
+
+                fnArray.push('paintFormXObjectBegin');
+                argsArray.push([matrix, bbox]);
+
+                // This adds the operatorList of the xObj to the current queue.
+                var depIdx = dependencyArray.length;
+
+                // Pass in the current `queue` object. That means the `fnArray`
+                // and the `argsArray` in this scope is reused and new commands
+                // are added to them.
+                this.getOperatorList(xobj,
+                    xobj.dict.get('Resources') || resources,
+                    dependencyArray, queue);
+
+               // Add the dependencies that are required to execute the
+               // operatorList.
+               insertDependency(dependencyArray.slice(depIdx));
+
+                fn = 'paintFormXObjectEnd';
+                args = [];
+              } else if ('Image' == type.name) {
+                buildPaintImageXObject(xobj, false);
+              } else {
+                error('Unhandled XObject subtype ' + type.name);
+              }
+            }
+          } else if (cmd == 'Tf') { // eagerly collect all fonts
+            args[0] = handleSetFont(args[0].name);
+          } else if (cmd == 'EI') {
+            buildPaintImageXObject(args[0], true);
+          }
+
+          switch (fn) {
+            // Parse the ColorSpace data to a raw format.
+            case 'setFillColorSpace':
+            case 'setStrokeColorSpace':
+              args = [ColorSpace.parseToIR(args[0], xref, resources)];
+              break;
+            case 'shadingFill':
+              var shadingRes = res.get('Shading');
+              if (!shadingRes)
+                error('No shading resource found');
+
+              var shading = shadingRes.get(args[0].name);
+              if (!shading)
+                error('No shading object found');
+
+              var shadingFill = Pattern.parseShading(shading, null, xref, res);
+              var patternIR = shadingFill.getIR();
+              args = [patternIR];
+              fn = 'shadingFill';
+              break;
+            case 'setGState':
+              var dictName = args[0];
+              var extGState = resources.get('ExtGState');
+
+              if (!isDict(extGState) || !extGState.has(dictName.name))
+                break;
+
+              var gsState = extGState.get(dictName.name);
+
+              // This array holds the converted/processed state data.
+              var gsStateObj = [];
+
+              gsState.forEach(
+                function canvasGraphicsSetGStateForEach(key, value) {
+                  switch (key) {
+                    case 'Type':
+                      break;
+                    case 'LW':
+                    case 'LC':
+                    case 'LJ':
+                    case 'ML':
+                    case 'D':
+                    case 'RI':
+                    case 'FL':
+                    case 'CA':
+                    case 'ca':
+                      gsStateObj.push([key, value]);
+                      break;
+                    case 'Font':
+                      gsStateObj.push([
+                        'Font',
+                        handleSetFont(null, value[0]),
+                        value[1]
+                      ]);
+                      break;
+                    case 'OP':
+                    case 'op':
+                    case 'OPM':
+                    case 'BG':
+                    case 'BG2':
+                    case 'UCR':
+                    case 'UCR2':
+                    case 'TR':
+                    case 'TR2':
+                    case 'HT':
+                    case 'SM':
+                    case 'SA':
+                    case 'BM':
+                    case 'SMask':
+                    case 'AIS':
+                    case 'TK':
+                      TODO('graphic state operator ' + key);
+                      break;
+                    default:
+                      warn('Unknown graphic state operator ' + key);
+                      break;
+                  }
+                }
+              );
+              args = [gsStateObj];
+              break;
+          } // switch
+
+          fnArray.push(fn);
+          argsArray.push(args);
+          args = [];
+        } else if (obj != null) {
+          assertWellFormed(args.length <= 33, 'Too many arguments');
+          args.push(obj instanceof Dict ? obj.getAll() : obj);
+        }
+      }
+
+      return queue;
+    },
+
+    extractDataStructures: function
+      partialEvaluatorExtractDataStructures(dict, baseDict,
+                                            xref, properties) {
+      // 9.10.2
+      var toUnicode = dict.get('ToUnicode') ||
+        baseDict.get('ToUnicode');
+      if (toUnicode)
+        properties.toUnicode = this.readToUnicode(toUnicode, xref, properties);
+
+      if (properties.composite) {
+        // CIDSystemInfo helps to match CID to glyphs
+        var cidSystemInfo = dict.get('CIDSystemInfo');
+        if (isDict(cidSystemInfo)) {
+          properties.cidSystemInfo = {
+            registry: cidSystemInfo.get('Registry'),
+            ordering: cidSystemInfo.get('Ordering'),
+            supplement: cidSystemInfo.get('Supplement')
+          };
+        }
+
+        var cidToGidMap = dict.get('CIDToGIDMap');
+        if (isStream(cidToGidMap))
+          properties.cidToGidMap = this.readCidToGidMap(cidToGidMap);
+      }
+
+      var flags = properties.flags;
+      var differences = [];
+      var baseEncoding = !!(flags & FontFlags.Symbolic) ?
+                         Encodings.symbolsEncoding : Encodings.StandardEncoding;
+      var hasEncoding = dict.has('Encoding');
+      if (hasEncoding) {
+        var encoding = dict.get('Encoding');
+        if (isDict(encoding)) {
+          var baseName = encoding.get('BaseEncoding');
+          if (baseName)
+            baseEncoding = Encodings[baseName.name];
+          else
+            hasEncoding = false; // base encoding was not provided
+
+          // Load the differences between the base and original
+          if (encoding.has('Differences')) {
+            var diffEncoding = encoding.get('Differences');
+            var index = 0;
+            for (var j = 0, jj = diffEncoding.length; j < jj; j++) {
+              var data = diffEncoding[j];
+              if (isNum(data))
+                index = data;
+              else
+                differences[index++] = data.name;
+            }
+          }
+        } else if (isName(encoding)) {
+          baseEncoding = Encodings[encoding.name];
+        } else {
+          error('Encoding is not a Name nor a Dict');
+        }
+      }
+
+      properties.differences = differences;
+      properties.baseEncoding = baseEncoding;
+      properties.hasEncoding = hasEncoding;
+    },
+
+    readToUnicode: function PartialEvaluator_readToUnicode(toUnicode, xref,
+                                                           properties) {
+      var cmapObj = toUnicode;
+      var charToUnicode = [];
+      if (isName(cmapObj)) {
+        var isIdentityMap = cmapObj.name.substr(0, 9) == 'Identity-';
+        if (!isIdentityMap)
+          error('ToUnicode file cmap translation not implemented');
+      } else if (isStream(cmapObj)) {
+        var tokens = [];
+        var token = '';
+        var beginArrayToken = {};
+
+        var cmap = cmapObj.getBytes(cmapObj.length);
+        for (var i = 0, ii = cmap.length; i < ii; i++) {
+          var octet = cmap[i];
+          if (octet == 0x20 || octet == 0x0D || octet == 0x0A ||
+              octet == 0x3C || octet == 0x5B || octet == 0x5D) {
+            switch (token) {
+              case 'usecmap':
+                error('usecmap is not implemented');
+                break;
+
+              case 'beginbfchar':
+              case 'beginbfrange':
+              case 'begincidchar':
+              case 'begincidrange':
+                token = '';
+                tokens = [];
+                break;
+
+              case 'endcidrange':
+              case 'endbfrange':
+                for (var j = 0, jj = tokens.length; j < jj; j += 3) {
+                  var startRange = tokens[j];
+                  var endRange = tokens[j + 1];
+                  var code = tokens[j + 2];
+                  if (code == 0xFFFF) {
+                    // CMap is broken, assuming code == startRange
+                    code = startRange;
+                  }
+                  if (isArray(code)) {
+                    var codeindex = 0;
+                    while (startRange <= endRange) {
+                      charToUnicode[startRange] = code[codeindex++];
+                      ++startRange;
+                    }
+                  } else {
+                    while (startRange <= endRange) {
+                      charToUnicode[startRange] = code++;
+                      ++startRange;
+                    }
+                  }
+                }
+                break;
+
+              case 'endcidchar':
+              case 'endbfchar':
+                for (var j = 0, jj = tokens.length; j < jj; j += 2) {
+                  var index = tokens[j];
+                  var code = tokens[j + 1];
+                  charToUnicode[index] = code;
+                }
+                break;
+
+              case '':
+                break;
+
+              default:
+                if (token[0] >= '0' && token[0] <= '9')
+                  token = parseInt(token, 10); // a number
+                tokens.push(token);
+                token = '';
+            }
+            switch (octet) {
+              case 0x5B:
+                // begin list parsing
+                tokens.push(beginArrayToken);
+                break;
+              case 0x5D:
+                // collect array items
+                var items = [], item;
+                while (tokens.length &&
+                       (item = tokens.pop()) != beginArrayToken)
+                  items.unshift(item);
+                tokens.push(items);
+                break;
+            }
+          } else if (octet == 0x3E) {
+            if (token.length) {
+              // XXX guessing chars size by checking number size in the CMap
+              if (token.length <= 2 && properties.composite)
+                properties.wideChars = false;
+
+              if (token.length <= 4) {
+                // parsing hex number
+                tokens.push(parseInt(token, 16));
+                token = '';
+              } else {
+                // parsing hex UTF-16BE numbers
+                var str = [];
+                for (var k = 0, kk = token.length; k < kk; k += 4) {
+                  var b = parseInt(token.substr(k, 4), 16);
+                  if (b <= 0x10) {
+                    k += 4;
+                    b = (b << 16) | parseInt(token.substr(k, 4), 16);
+                    b -= 0x10000;
+                    str.push(0xD800 | (b >> 10));
+                    str.push(0xDC00 | (b & 0x3FF));
+                    break;
+                  }
+                  str.push(b);
+                }
+                tokens.push(String.fromCharCode.apply(String, str));
+                token = '';
+              }
+            }
+          } else {
+            token += String.fromCharCode(octet);
+          }
+        }
+      }
+      return charToUnicode;
+    },
+    readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) {
+      // Extract the encoding from the CIDToGIDMap
+      var glyphsData = cidToGidStream.getBytes();
+
+      // Set encoding 0 to later verify the font has an encoding
+      var result = [];
+      for (var j = 0, jj = glyphsData.length; j < jj; j++) {
+        var glyphID = (glyphsData[j++] << 8) | glyphsData[j];
+        if (glyphID == 0)
+          continue;
+
+        var code = j >> 1;
+        result[code] = glyphID;
+      }
+      return result;
+    },
+
+    extractWidths: function PartialEvaluator_extractWidths(dict,
+                                                   xref,
+                                                   descriptor,
+                                                   properties) {
+      var glyphsWidths = [];
+      var defaultWidth = 0;
+      if (properties.composite) {
+        defaultWidth = dict.get('DW') || 1000;
+
+        var widths = dict.get('W');
+        if (widths) {
+          var start = 0, end = 0;
+          for (var i = 0, ii = widths.length; i < ii; i++) {
+            var code = widths[i];
+            if (isArray(code)) {
+              for (var j = 0, jj = code.length; j < jj; j++)
+                glyphsWidths[start++] = code[j];
+              start = 0;
+            } else if (start) {
+              var width = widths[++i];
+              for (var j = start; j <= code; j++)
+                glyphsWidths[j] = width;
+              start = 0;
+            } else {
+              start = code;
+            }
+          }
+        }
+      } else {
+        var firstChar = properties.firstChar;
+        var widths = dict.get('Widths');
+        if (widths) {
+          var j = firstChar;
+          for (var i = 0, ii = widths.length; i < ii; i++)
+            glyphsWidths[j++] = widths[i];
+          defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0;
+        } else {
+          // Trying get the BaseFont metrics (see comment above).
+          var baseFontName = dict.get('BaseFont');
+          if (isName(baseFontName)) {
+            var metrics = this.getBaseFontMetrics(baseFontName.name);
+
+            glyphsWidths = metrics.widths;
+            defaultWidth = metrics.defaultWidth;
+          }
+        }
+      }
+
+      properties.defaultWidth = defaultWidth;
+      properties.widths = glyphsWidths;
+    },
+
+    getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) {
+      var defaultWidth = 0, widths = [];
+      var glyphWidths = Metrics[stdFontMap[name] || name];
+      if (isNum(glyphWidths)) {
+        defaultWidth = glyphWidths;
+      } else {
+        widths = glyphWidths;
+      }
+
+      return {
+        defaultWidth: defaultWidth,
+        widths: widths
+      };
+    },
+
+    translateFont: function PartialEvaluator_translateFont(dict,
+                                                           xref,
+                                                           resources,
+                                                           dependency) {
+      var baseDict = dict;
+      var type = dict.get('Subtype');
+      assertWellFormed(isName(type), 'invalid font Subtype');
+
+      var composite = false;
+      if (type.name == 'Type0') {
+        // If font is a composite
+        //  - get the descendant font
+        //  - set the type according to the descendant font
+        //  - get the FontDescriptor from the descendant font
+        var df = dict.get('DescendantFonts');
+        if (!df)
+          return null;
+
+        dict = isArray(df) ? xref.fetchIfRef(df[0]) : df;
+
+        type = dict.get('Subtype');
+        assertWellFormed(isName(type), 'invalid font Subtype');
+        composite = true;
+      }
+      var maxCharIndex = composite ? 0xFFFF : 0xFF;
+
+      var descriptor = dict.get('FontDescriptor');
+      if (!descriptor) {
+        if (type.name == 'Type3') {
+          // FontDescriptor is only required for Type3 fonts when the document
+          // is a tagged pdf. Create a barbebones one to get by.
+          descriptor = new Dict();
+          descriptor.set('FontName', new Name(type.name));
+        } else {
+          // Before PDF 1.5 if the font was one of the base 14 fonts, having a
+          // FontDescriptor was not required.
+          // This case is here for compatibility.
+          var baseFontName = dict.get('BaseFont');
+          if (!isName(baseFontName))
+            return null;
+
+          // Using base font name as a font name.
+          baseFontName = baseFontName.name.replace(/[,_]/g, '-');
+          var metrics = this.getBaseFontMetrics(baseFontName);
+
+          // Simulating descriptor flags attribute
+          var fontNameWoStyle = baseFontName.split('-')[0];
+          var flags = (serifFonts[fontNameWoStyle] ||
+            (fontNameWoStyle.search(/serif/gi) != -1) ? FontFlags.Serif : 0) |
+            (symbolsFonts[fontNameWoStyle] ? FontFlags.Symbolic :
+            FontFlags.Nonsymbolic);
+
+          var properties = {
+            type: type.name,
+            widths: metrics.widths,
+            defaultWidth: metrics.defaultWidth,
+            flags: flags,
+            firstChar: 0,
+            lastChar: maxCharIndex
+          };
+          this.extractDataStructures(dict, dict, xref, properties);
+
+          return {
+            name: baseFontName,
+            dict: baseDict,
+            properties: properties
+          };
+        }
+      }
+
+      // According to the spec if 'FontDescriptor' is declared, 'FirstChar',
+      // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem
+      // to ignore this rule when a variant of a standart font is used.
+      // TODO Fill the width array depending on which of the base font this is
+      // a variant.
+      var firstChar = dict.get('FirstChar') || 0;
+      var lastChar = dict.get('LastChar') || maxCharIndex;
+      var fontName = descriptor.get('FontName');
+      // Some bad pdf's have a string as the font name.
+      if (isString(fontName))
+        fontName = new Name(fontName);
+      assertWellFormed(isName(fontName), 'invalid font name');
+
+      var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3');
+      if (fontFile) {
+        if (fontFile.dict) {
+          var subtype = fontFile.dict.get('Subtype');
+          if (subtype)
+            subtype = subtype.name;
+
+          var length1 = fontFile.dict.get('Length1');
+
+          var length2 = fontFile.dict.get('Length2');
+        }
+      }
+
+      var properties = {
+        type: type.name,
+        subtype: subtype,
+        file: fontFile,
+        length1: length1,
+        length2: length2,
+        composite: composite,
+        wideChars: composite,
+        fixedPitch: false,
+        fontMatrix: dict.get('FontMatrix') || IDENTITY_MATRIX,
+        firstChar: firstChar || 0,
+        lastChar: lastChar || maxCharIndex,
+        bbox: descriptor.get('FontBBox'),
+        ascent: descriptor.get('Ascent'),
+        descent: descriptor.get('Descent'),
+        xHeight: descriptor.get('XHeight'),
+        capHeight: descriptor.get('CapHeight'),
+        flags: descriptor.get('Flags'),
+        italicAngle: descriptor.get('ItalicAngle'),
+        coded: false
+      };
+      this.extractWidths(dict, xref, descriptor, properties);
+      this.extractDataStructures(dict, baseDict, xref, properties);
+
+      if (type.name === 'Type3') {
+        properties.coded = true;
+        var charProcs = dict.get('CharProcs').getAll();
+        var fontResources = dict.get('Resources') || resources;
+        properties.charProcOperatorList = {};
+        for (var key in charProcs) {
+          var glyphStream = charProcs[key];
+          properties.charProcOperatorList[key] =
+            this.getOperatorList(glyphStream, fontResources, dependency);
+        }
+      }
+
+      return {
+        name: fontName.name,
+        dict: baseDict,
+        file: fontFile,
+        properties: properties
+      };
+    }
+  };
+
+  return PartialEvaluator;
+})();
+
+var EvalState = (function EvalStateClosure() {
+  function EvalState() {
+    // Are soft masks and alpha values shapes or opacities?
+    this.alphaIsShape = false;
+    this.fontSize = 0;
+    this.textMatrix = IDENTITY_MATRIX;
+    this.leading = 0;
+    // Start of text line (in text coordinates)
+    this.lineX = 0;
+    this.lineY = 0;
+    // Character and word spacing
+    this.charSpacing = 0;
+    this.wordSpacing = 0;
+    this.textHScale = 1;
+    // Color spaces
+    this.fillColorSpace = null;
+    this.strokeColorSpace = null;
+  }
+  EvalState.prototype = {
+  };
+  return EvalState;
+})();
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+/**
+ * Maximum time to wait for a font to be loaded by font-face rules.
+ */
+var kMaxWaitForFontFace = 1000;
+
+// Unicode Private Use Area
+var kCmapGlyphOffset = 0xE000;
+var kSizeOfGlyphArea = 0x1900;
+var kSymbolicFontGlyphOffset = 0xF000;
+
+// PDF Glyph Space Units are one Thousandth of a TextSpace Unit
+// except for Type 3 fonts
+var kPDFGlyphSpaceUnits = 1000;
+
+// Until hinting is fully supported this constant can be used
+var kHintingEnabled = false;
+
+var FontFlags = {
+  FixedPitch: 1,
+  Serif: 2,
+  Symbolic: 4,
+  Script: 8,
+  Nonsymbolic: 32,
+  Italic: 64,
+  AllCap: 65536,
+  SmallCap: 131072,
+  ForceBold: 262144
+};
+
+var Encodings = {
+  ExpertEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle',
+    'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior',
+    'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma',
+    'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle',
+    'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle',
+    'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon',
+    'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior',
+    'questionsmall', '', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior',
+    'esuperior', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior',
+    'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior',
+    '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '',
+    'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall',
+    'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall',
+    'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall',
+    'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall',
+    'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary',
+    'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall',
+    '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall',
+    'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '',
+    'figuredash', 'hypheninferior', '', '', 'Ogoneksmall', 'Ringsmall',
+    'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters',
+    'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths',
+    'seveneighths', 'onethird', 'twothirds', '', '', 'zerosuperior',
+    'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior',
+    'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior',
+    'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior',
+    'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior',
+    'seveninferior', 'eightinferior', 'nineinferior', 'centinferior',
+    'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall',
+    'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall',
+    'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall',
+    'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall',
+    'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall',
+    'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall',
+    'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall',
+    'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall',
+    'Ydieresissmall'],
+  MacExpertEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    'space', 'exclamsmall', 'Hungarumlautsmall', 'centoldstyle',
+    'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall',
+    'parenleftsuperior', 'parenrightsuperior', 'twodotenleader',
+    'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle',
+    'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle',
+    'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle',
+    'nineoldstyle', 'colon', 'semicolon', '', 'threequartersemdash', '',
+    'questionsmall', '', '', '', '', 'Ethsmall', '', '', 'onequarter',
+    'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths',
+    'seveneighths', 'onethird', 'twothirds', '', '', '', '', '', '', 'ff',
+    'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior',
+    'Circumflexsmall', 'hypheninferior', 'Gravesmall', 'Asmall', 'Bsmall',
+    'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall',
+    'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall',
+    'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall',
+    'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah',
+    'Tildesmall', '', '', 'asuperior', 'centsuperior', '', '', '', '',
+    'Aacutesmall', 'Agravesmall', 'Acircumflexsmall', 'Adieresissmall',
+    'Atildesmall', 'Aringsmall', 'Ccedillasmall', 'Eacutesmall', 'Egravesmall',
+    'Ecircumflexsmall', 'Edieresissmall', 'Iacutesmall', 'Igravesmall',
+    'Icircumflexsmall', 'Idieresissmall', 'Ntildesmall', 'Oacutesmall',
+    'Ogravesmall', 'Ocircumflexsmall', 'Odieresissmall', 'Otildesmall',
+    'Uacutesmall', 'Ugravesmall', 'Ucircumflexsmall', 'Udieresissmall', '',
+    'eightsuperior', 'fourinferior', 'threeinferior', 'sixinferior',
+    'eightinferior', 'seveninferior', 'Scaronsmall', '', 'centinferior',
+    'twoinferior', '', 'Dieresissmall', '', 'Caronsmall', 'osuperior',
+    'fiveinferior', '', 'commainferior', 'periodinferior', 'Yacutesmall', '',
+    'dollarinferior', '', 'Thornsmall', '', 'nineinferior', 'zeroinferior',
+    'Zcaronsmall', 'AEsmall', 'Oslashsmall', 'questiondownsmall',
+    'oneinferior', 'Lslashsmall', '', '', '', '', '', '', 'Cedillasmall', '',
+    '', '', '', '', 'OEsmall', 'figuredash', 'hyphensuperior', '', '', '', '',
+    'exclamdownsmall', '', 'Ydieresissmall', '', 'onesuperior', 'twosuperior',
+    'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior',
+    'sevensuperior', 'ninesuperior', 'zerosuperior', '', 'esuperior',
+    'rsuperior', 'tsuperior', '', '', 'isuperior', 'ssuperior', 'dsuperior',
+    '', '', '', '', '', 'lsuperior', 'Ogoneksmall', 'Brevesmall',
+    'Macronsmall', 'bsuperior', 'nsuperior', 'msuperior', 'commasuperior',
+    'periodsuperior', 'Dotaccentsmall', 'Ringsmall'],
+  MacRomanEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',
+    'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus',
+    'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three',
+    'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon',
+    'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F',
+    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
+    'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright',
+    'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+    'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
+    'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '',
+    'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis',
+    'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde',
+    'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis',
+    'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute',
+    'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave',
+    'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling',
+    'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright',
+    'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity',
+    'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff',
+    'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine',
+    'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot',
+    'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft',
+    'guillemotright', 'ellipsis', '', 'Agrave', 'Atilde', 'Otilde', 'OE',
+    'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft',
+    'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction',
+    'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl',
+    'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand',
+    'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute',
+    'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple',
+    'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex',
+    'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut',
+    'ogonek', 'caron'],
+  StandardEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',
+    'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus',
+    'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three',
+    'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon',
+    'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F',
+    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
+    'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright',
+    'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f',
+    'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
+    'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdown',
+    'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency',
+    'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft',
+    'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger', 'daggerdbl',
+    'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase',
+    'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis',
+    'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex',
+    'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla',
+    '', 'hungarumlaut', 'ogonek', 'caron', 'emdash', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '',
+    '', '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae',
+    '', '', '', 'dotlessi', '', '', 'lslash', 'oslash', 'oe', 'germandbls'],
+  WinAnsiEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',
+    'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus',
+    'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three',
+    'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon',
+    'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F',
+    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
+    'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright',
+    'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+    'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
+    'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde',
+    'bullet', 'Euro', 'bullet', 'quotesinglbase', 'florin', 'quotedblbase',
+    'ellipsis', 'dagger', 'daggerdbl', 'circumflex', 'perthousand', 'Scaron',
+    'guilsinglleft', 'OE', 'bullet', 'Zcaron', 'bullet', 'bullet', 'quoteleft',
+    'quoteright', 'quotedblleft', 'quotedblright', 'bullet', 'endash',
+    'emdash', 'tilde', 'trademark', 'scaron', 'guilsinglright', 'oe', 'bullet',
+    'zcaron', 'Ydieresis', '', 'exclamdown', 'cent', 'sterling',
+    'currency', 'yen', 'brokenbar', 'section', 'dieresis', 'copyright',
+    'ordfeminine', 'guillemotleft', 'logicalnot', 'hyphen', 'registered',
+    'macron', 'degree', 'plusminus', 'twosuperior', 'threesuperior', 'acute',
+    'mu', 'paragraph', 'periodcentered', 'cedilla', 'onesuperior',
+    'ordmasculine', 'guillemotright', 'onequarter', 'onehalf', 'threequarters',
+    'questiondown', 'Agrave', 'Aacute', 'Acircumflex', 'Atilde', 'Adieresis',
+    'Aring', 'AE', 'Ccedilla', 'Egrave', 'Eacute', 'Ecircumflex', 'Edieresis',
+    'Igrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Eth', 'Ntilde', 'Ograve',
+    'Oacute', 'Ocircumflex', 'Otilde', 'Odieresis', 'multiply', 'Oslash',
+    'Ugrave', 'Uacute', 'Ucircumflex', 'Udieresis', 'Yacute', 'Thorn',
+    'germandbls', 'agrave', 'aacute', 'acircumflex', 'atilde', 'adieresis',
+    'aring', 'ae', 'ccedilla', 'egrave', 'eacute', 'ecircumflex', 'edieresis',
+    'igrave', 'iacute', 'icircumflex', 'idieresis', 'eth', 'ntilde', 'ograve',
+    'oacute', 'ocircumflex', 'otilde', 'odieresis', 'divide', 'oslash',
+    'ugrave', 'uacute', 'ucircumflex', 'udieresis', 'yacute', 'thorn',
+    'ydieresis'],
+  symbolsEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    'space', 'exclam', 'universal', 'numbersign', 'existential', 'percent',
+    'ampersand', 'suchthat', 'parenleft', 'parenright', 'asteriskmath', 'plus',
+    'comma', 'minus', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four',
+    'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less',
+    'equal', 'greater', 'question', 'congruent', 'Alpha', 'Beta', 'Chi',
+    'Delta', 'Epsilon', 'Phi', 'Gamma', 'Eta', 'Iota', 'theta1', 'Kappa',
+    'Lambda', 'Mu', 'Nu', 'Omicron', 'Pi', 'Theta', 'Rho', 'Sigma', 'Tau',
+    'Upsilon', 'sigma1', 'Omega', 'Xi', 'Psi', 'Zeta', 'bracketleft',
+    'therefore', 'bracketright', 'perpendicular', 'underscore', 'radicalex',
+    'alpha', 'beta', 'chi', 'delta', 'epsilon', 'phi', 'gamma', 'eta', 'iota',
+    'phi1', 'kappa', 'lambda', 'mu', 'nu', 'omicron', 'pi', 'theta', 'rho',
+    'sigma', 'tau', 'upsilon', 'omega1', 'omega', 'xi', 'psi', 'zeta',
+    'braceleft', 'bar', 'braceright', 'similar', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', 'Euro', 'Upsilon1', 'minute', 'lessequal',
+    'fraction', 'infinity', 'florin', 'club', 'diamond', 'heart', 'spade',
+    'arrowboth', 'arrowleft', 'arrowup', 'arrowright', 'arrowdown', 'degree',
+    'plusminus', 'second', 'greaterequal', 'multiply', 'proportional',
+    'partialdiff', 'bullet', 'divide', 'notequal', 'equivalence',
+    'approxequal', 'ellipsis', 'arrowvertex', 'arrowhorizex', 'carriagereturn',
+    'aleph', 'Ifraktur', 'Rfraktur', 'weierstrass', 'circlemultiply',
+    'circleplus', 'emptyset', 'intersection', 'union', 'propersuperset',
+    'reflexsuperset', 'notsubset', 'propersubset', 'reflexsubset', 'element',
+    'notelement', 'angle', 'gradient', 'registerserif', 'copyrightserif',
+    'trademarkserif', 'product', 'radical', 'dotmath', 'logicalnot',
+    'logicaland', 'logicalor', 'arrowdblboth', 'arrowdblleft', 'arrowdblup',
+    'arrowdblright', 'arrowdbldown', 'lozenge', 'angleleft', 'registersans',
+    'copyrightsans', 'trademarksans', 'summation', 'parenlefttp',
+    'parenleftex', 'parenleftbt', 'bracketlefttp', 'bracketleftex',
+    'bracketleftbt', 'bracelefttp', 'braceleftmid', 'braceleftbt', 'braceex',
+    '', 'angleright', 'integral', 'integraltp', 'integralex', 'integralbt',
+    'parenrighttp', 'parenrightex', 'parenrightbt', 'bracketrighttp',
+    'bracketrightex', 'bracketrightbt', 'bracerighttp', 'bracerightmid',
+    'bracerightbt'],
+  zapfDingbatsEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    'space', 'a1', 'a2', 'a202', 'a3', 'a4', 'a5', 'a119', 'a118', 'a117',
+    'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a105', 'a17', 'a18', 'a19',
+    'a20', 'a21', 'a22', 'a23', 'a24', 'a25', 'a26', 'a27', 'a28', 'a6', 'a7',
+    'a8', 'a9', 'a10', 'a29', 'a30', 'a31', 'a32', 'a33', 'a34', 'a35', 'a36',
+    'a37', 'a38', 'a39', 'a40', 'a41', 'a42', 'a43', 'a44', 'a45', 'a46',
+    'a47', 'a48', 'a49', 'a50', 'a51', 'a52', 'a53', 'a54', 'a55', 'a56',
+    'a57', 'a58', 'a59', 'a60', 'a61', 'a62', 'a63', 'a64', 'a65', 'a66',
+    'a67', 'a68', 'a69', 'a70', 'a71', 'a72', 'a73', 'a74', 'a203', 'a75',
+    'a204', 'a76', 'a77', 'a78', 'a79', 'a81', 'a82', 'a83', 'a84', 'a97',
+    'a98', 'a99', 'a100', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+    '', '', 'a101', 'a102', 'a103', 'a104', 'a106', 'a107', 'a108', 'a112',
+    'a111', 'a110', 'a109', 'a120', 'a121', 'a122', 'a123', 'a124', 'a125',
+    'a126', 'a127', 'a128', 'a129', 'a130', 'a131', 'a132', 'a133', 'a134',
+    'a135', 'a136', 'a137', 'a138', 'a139', 'a140', 'a141', 'a142', 'a143',
+    'a144', 'a145', 'a146', 'a147', 'a148', 'a149', 'a150', 'a151', 'a152',
+    'a153', 'a154', 'a155', 'a156', 'a157', 'a158', 'a159', 'a160', 'a161',
+    'a163', 'a164', 'a196', 'a165', 'a192', 'a166', 'a167', 'a168', 'a169',
+    'a170', 'a171', 'a172', 'a173', 'a162', 'a174', 'a175', 'a176', 'a177',
+    'a178', 'a179', 'a193', 'a180', 'a199', 'a181', 'a200', 'a182', '', 'a201',
+    'a183', 'a184', 'a197', 'a185', 'a194', 'a198', 'a186', 'a195', 'a187',
+    'a188', 'a189', 'a190', 'a191']
+};
+
+/**
+ * Hold a map of decoded fonts and of the standard fourteen Type1
+ * fonts and their acronyms.
+ */
+var stdFontMap = {
+  'ArialNarrow': 'Helvetica',
+  'ArialNarrow-Bold': 'Helvetica-Bold',
+  'ArialNarrow-BoldItalic': 'Helvetica-BoldOblique',
+  'ArialNarrow-Italic': 'Helvetica-Oblique',
+  'ArialBlack': 'Helvetica',
+  'ArialBlack-Bold': 'Helvetica-Bold',
+  'ArialBlack-BoldItalic': 'Helvetica-BoldOblique',
+  'ArialBlack-Italic': 'Helvetica-Oblique',
+  'Arial': 'Helvetica',
+  'Arial-Bold': 'Helvetica-Bold',
+  'Arial-BoldItalic': 'Helvetica-BoldOblique',
+  'Arial-Italic': 'Helvetica-Oblique',
+  'Arial-BoldItalicMT': 'Helvetica-BoldOblique',
+  'Arial-BoldMT': 'Helvetica-Bold',
+  'Arial-ItalicMT': 'Helvetica-Oblique',
+  'ArialMT': 'Helvetica',
+  'Courier-Bold': 'Courier-Bold',
+  'Courier-BoldItalic': 'Courier-BoldOblique',
+  'Courier-Italic': 'Courier-Oblique',
+  'CourierNew': 'Courier',
+  'CourierNew-Bold': 'Courier-Bold',
+  'CourierNew-BoldItalic': 'Courier-BoldOblique',
+  'CourierNew-Italic': 'Courier-Oblique',
+  'CourierNewPS-BoldItalicMT': 'Courier-BoldOblique',
+  'CourierNewPS-BoldMT': 'Courier-Bold',
+  'CourierNewPS-ItalicMT': 'Courier-Oblique',
+  'CourierNewPSMT': 'Courier',
+  'Helvetica-Bold': 'Helvetica-Bold',
+  'Helvetica-BoldItalic': 'Helvetica-BoldOblique',
+  'Helvetica-Italic': 'Helvetica-Oblique',
+  'Symbol-Bold': 'Symbol',
+  'Symbol-BoldItalic': 'Symbol',
+  'Symbol-Italic': 'Symbol',
+  'TimesNewRoman': 'Times-Roman',
+  'TimesNewRoman-Bold': 'Times-Bold',
+  'TimesNewRoman-BoldItalic': 'Times-BoldItalic',
+  'TimesNewRoman-Italic': 'Times-Italic',
+  'TimesNewRomanPS': 'Times-Roman',
+  'TimesNewRomanPS-Bold': 'Times-Bold',
+  'TimesNewRomanPS-BoldItalic': 'Times-BoldItalic',
+  'TimesNewRomanPS-BoldItalicMT': 'Times-BoldItalic',
+  'TimesNewRomanPS-BoldMT': 'Times-Bold',
+  'TimesNewRomanPS-Italic': 'Times-Italic',
+  'TimesNewRomanPS-ItalicMT': 'Times-Italic',
+  'TimesNewRomanPSMT': 'Times-Roman',
+  'TimesNewRomanPSMT-Bold': 'Times-Bold',
+  'TimesNewRomanPSMT-BoldItalic': 'Times-BoldItalic',
+  'TimesNewRomanPSMT-Italic': 'Times-Italic'
+};
+
+/**
+ * Holds the map of the non-standard fonts that might be included as a standard
+ * fonts without glyph data.
+ */
+var nonStdFontMap = {
+  'ComicSansMS': 'Comic Sans MS',
+  'ComicSansMS-Bold': 'Comic Sans MS-Bold',
+  'ComicSansMS-BoldItalic': 'Comic Sans MS-BoldItalic',
+  'ComicSansMS-Italic': 'Comic Sans MS-Italic',
+  'LucidaConsole': 'Courier',
+  'LucidaConsole-Bold': 'Courier-Bold',
+  'LucidaConsole-BoldItalic': 'Courier-BoldOblique',
+  'LucidaConsole-Italic': 'Courier-Oblique'
+};
+
+var serifFonts = {
+  'Adobe Jenson': true, 'Adobe Text': true, 'Albertus': true,
+  'Aldus': true, 'Alexandria': true, 'Algerian': true,
+  'American Typewriter': true, 'Antiqua': true, 'Apex': true,
+  'Arno': true, 'Aster': true, 'Aurora': true,
+  'Baskerville': true, 'Bell': true, 'Bembo': true,
+  'Bembo Schoolbook': true, 'Benguiat': true, 'Berkeley Old Style': true,
+  'Bernhard Modern': true, 'Berthold City': true, 'Bodoni': true,
+  'Bauer Bodoni': true, 'Book Antiqua': true, 'Bookman': true,
+  'Bordeaux Roman': true, 'Californian FB': true, 'Calisto': true,
+  'Calvert': true, 'Capitals': true, 'Cambria': true,
+  'Cartier': true, 'Caslon': true, 'Catull': true,
+  'Centaur': true, 'Century Old Style': true, 'Century Schoolbook': true,
+  'Chaparral': true, 'Charis SIL': true, 'Cheltenham': true,
+  'Cholla Slab': true, 'Clarendon': true, 'Clearface': true,
+  'Cochin': true, 'Colonna': true, 'Computer Modern': true,
+  'Concrete Roman': true, 'Constantia': true, 'Cooper Black': true,
+  'Corona': true, 'Ecotype': true, 'Egyptienne': true,
+  'Elephant': true, 'Excelsior': true, 'Fairfield': true,
+  'FF Scala': true, 'Folkard': true, 'Footlight': true,
+  'FreeSerif': true, 'Friz Quadrata': true, 'Garamond': true,
+  'Gentium': true, 'Georgia': true, 'Gloucester': true,
+  'Goudy Old Style': true, 'Goudy Schoolbook': true, 'Goudy Pro Font': true,
+  'Granjon': true, 'Guardian Egyptian': true, 'Heather': true,
+  'Hercules': true, 'High Tower Text': true, 'Hiroshige': true,
+  'Hoefler Text': true, 'Humana Serif': true, 'Imprint': true,
+  'Ionic No. 5': true, 'Janson': true, 'Joanna': true,
+  'Korinna': true, 'Lexicon': true, 'Liberation Serif': true,
+  'Linux Libertine': true, 'Literaturnaya': true, 'Lucida': true,
+  'Lucida Bright': true, 'Melior': true, 'Memphis': true,
+  'Miller': true, 'Minion': true, 'Modern': true,
+  'Mona Lisa': true, 'Mrs Eaves': true, 'MS Serif': true,
+  'Museo Slab': true, 'New York': true, 'Nimbus Roman': true,
+  'NPS Rawlinson Roadway': true, 'Palatino': true, 'Perpetua': true,
+  'Plantin': true, 'Plantin Schoolbook': true, 'Playbill': true,
+  'Poor Richard': true, 'Rawlinson Roadway': true, 'Renault': true,
+  'Requiem': true, 'Rockwell': true, 'Roman': true,
+  'Rotis Serif': true, 'Sabon': true, 'Scala': true,
+  'Seagull': true, 'Sistina': true, 'Souvenir': true,
+  'STIX': true, 'Stone Informal': true, 'Stone Serif': true,
+  'Sylfaen': true, 'Times': true, 'Trajan': true,
+  'Trinité': true, 'Trump Mediaeval': true, 'Utopia': true,
+  'Vale Type': true, 'Bitstream Vera': true, 'Vera Serif': true,
+  'Versailles': true, 'Wanted': true, 'Weiss': true,
+  'Wide Latin': true, 'Windsor': true, 'XITS': true
+};
+
+var symbolsFonts = {
+  'Dingbats': true, 'Symbol': true, 'ZapfDingbats': true
+};
+
+// Some characters, e.g. copyrightserif, mapped to the private use area and
+// might not be displayed using standard fonts. Mapping/hacking well-known chars
+// to the similar equivalents in the normal characters range.
+function mapPrivateUseChars(code) {
+  switch (code) {
+    case 0xF8E9: // copyrightsans
+    case 0xF6D9: // copyrightserif
+      return 0x00A9; // copyright
+    default:
+      return code;
+  }
+}
+
+var FontLoader = {
+  listeningForFontLoad: false,
+
+  bind: function fontLoaderBind(fonts, callback) {
+    function checkFontsLoaded() {
+      for (var i = 0, ii = fonts.length; i < ii; i++) {
+        var fontObj = fonts[i];
+        if (fontObj.loading) {
+          return false;
+        }
+      }
+
+      PdfJS_window.document.documentElement.removeEventListener(
+        'pdfjsFontLoad', checkFontsLoaded, false);
+
+      callback();
+      return true;
+    }
+
+    var rules = [], names = [], fontsToLoad = [];
+    var fontCreateTimer = 0;
+
+    for (var i = 0, ii = fonts.length; i < ii; i++) {
+      var font = fonts[i];
+
+      // Add the font to the DOM only once or skip if the font
+      // is already loaded.
+      if (font.attached || font.loading == false) {
+        continue;
+      }
+      font.attached = true;
+
+      fontsToLoad.push(font);
+
+      var str = '';
+      var data = font.data;
+      if (data) {
+        var length = data.length;
+        for (var j = 0; j < length; j++)
+          str += String.fromCharCode(data[j]);
+
+        var rule = font.bindDOM(str);
+        if (rule) {
+          rules.push(rule);
+          names.push(font.loadedName);
+        }
+      }
+    }
+
+    this.listeningForFontLoad = false;
+    if (!isWorker && rules.length) {
+      FontLoader.prepareFontLoadEvent(rules, names, fontsToLoad);
+    }
+
+    if (!checkFontsLoaded()) {
+      PdfJS_window.document.documentElement.addEventListener(
+        'pdfjsFontLoad', checkFontsLoaded, false);
+    }
+  },
+  // Set things up so that at least one pdfjsFontLoad event is
+  // dispatched when all the @font-face |rules| for |names| have been
+  // loaded in a subdocument.  It's expected that the load of |rules|
+  // has already started in this (outer) document, so that they should
+  // be ordered before the load in the subdocument.
+  prepareFontLoadEvent: function fontLoaderPrepareFontLoadEvent(rules, names,
+                                                                fonts) {
+      /** Hack begin */
+      // There's no event when a font has finished downloading so the
+      // following code is a dirty hack to 'guess' when a font is
+      // ready.  This code will be obsoleted by Mozilla bug 471915.
+      //
+      // The only reliable way to know if a font is loaded in Gecko
+      // (at the moment) is document.onload in a document with
+      // a @font-face rule defined in a "static" stylesheet.  We use a
+      // subdocument in an <iframe>, set up properly, to know when
+      // our @font-face rule was loaded.  However, the subdocument and
+      // outer document can't share CSS rules, so the inner document
+      // is only part of the puzzle.  The second piece is an invisible
+      // div created in order to force loading of the @font-face in
+      // the *outer* document.  (The font still needs to be loaded for
+      // its metrics, for reflow).  We create the div first for the
+      // outer document, then create the iframe.  Unless something
+      // goes really wonkily, we expect the @font-face for the outer
+      // document to be processed before the inner.  That's still
+      // fragile, but seems to work in practice.
+      //
+      // The postMessage() hackery was added to work around chrome bug
+      // 82402.
+
+      // Validate the names parameter -- the values can used to construct HTML.
+      if (!/^\w+$/.test(names.join(''))) {
+        error('Invalid font name(s): ' + names.join());
+
+        // Normally the error-function throws. But if a malicious code
+        // intercepts the function call then the return is needed.
+        return;
+      }
+
+      var div = PdfJS_window.document.createElement('div');
+      div.setAttribute('style',
+                       'visibility: hidden;' +
+                       'width: 10px; height: 10px;' +
+                       'position: absolute; top: 0px; left: 0px;');
+      var html = '';
+      for (var i = 0, ii = names.length; i < ii; ++i) {
+        html += '<span style="font-family:' + names[i] + '">Hi</span>';
+      }
+      div.innerHTML = html;
+      PdfJS_window.document.body.appendChild(div);
+
+      if (!this.listeningForFontLoad) {
+        PdfJS_window.window.addEventListener(
+          'message',
+          function fontLoaderMessage(e) {
+            var fontNames = JSON.parse(e.data);
+            for (var i = 0, ii = fonts.length; i < ii; ++i) {
+              var font = fonts[i];
+              font.loading = false;
+            }
+            var evt = PdfJS_window.document.createEvent('Events');
+            evt.initEvent('pdfjsFontLoad', true, false);
+            PdfJS_window.document.documentElement.dispatchEvent(evt);
+          },
+          false);
+        this.listeningForFontLoad = true;
+      }
+
+      // XXX we should have a time-out here too, and maybe fire
+      // pdfjsFontLoadFailed?
+      var src = '<!DOCTYPE HTML><html><head>';
+      src += '<style type="text/css">';
+      for (var i = 0, ii = rules.length; i < ii; ++i) {
+        src += rules[i];
+      }
+      src += '</style>';
+      src += '<script type="application/javascript">';
+      var fontNamesArray = '';
+      for (var i = 0, ii = names.length; i < ii; ++i) {
+        fontNamesArray += '"' + names[i] + '", ';
+      }
+      src += '  var fontNames=[' + fontNamesArray + '];\n';
+      src += '  PdfJS_window.window.onload = function fontLoaderOnload() {\n';
+      src += '    parent.postMessage(JSON.stringify(fontNames), "*");\n';
+      src += '  }';
+      // Hack so the end script tag isn't counted if this is inline JS.
+      src += '</scr' + 'ipt></head><body>';
+      for (var i = 0, ii = names.length; i < ii; ++i) {
+        src += '<p style="font-family:\'' + names[i] + '\'">Hi</p>';
+      }
+      src += '</body></html>';
+      var frame = PdfJS_window.document.createElement('iframe');
+      frame.src = 'data:text/html,' + src;
+      frame.setAttribute('style',
+                         'visibility: hidden;' +
+                         'width: 10px; height: 10px;' +
+                         'position: absolute; top: 0px; left: 0px;');
+      PdfJS_window.document.body.appendChild(frame);
+      /** Hack end */
+  }
+};
+
+var UnicodeRanges = [
+  { 'begin': 0x0000, 'end': 0x007F }, // Basic Latin
+  { 'begin': 0x0080, 'end': 0x00FF }, // Latin-1 Supplement
+  { 'begin': 0x0100, 'end': 0x017F }, // Latin Extended-A
+  { 'begin': 0x0180, 'end': 0x024F }, // Latin Extended-B
+  { 'begin': 0x0250, 'end': 0x02AF }, // IPA Extensions
+  { 'begin': 0x02B0, 'end': 0x02FF }, // Spacing Modifier Letters
+  { 'begin': 0x0300, 'end': 0x036F }, // Combining Diacritical Marks
+  { 'begin': 0x0370, 'end': 0x03FF }, // Greek and Coptic
+  { 'begin': 0x2C80, 'end': 0x2CFF }, // Coptic
+  { 'begin': 0x0400, 'end': 0x04FF }, // Cyrillic
+  { 'begin': 0x0530, 'end': 0x058F }, // Armenian
+  { 'begin': 0x0590, 'end': 0x05FF }, // Hebrew
+  { 'begin': 0xA500, 'end': 0xA63F }, // Vai
+  { 'begin': 0x0600, 'end': 0x06FF }, // Arabic
+  { 'begin': 0x07C0, 'end': 0x07FF }, // NKo
+  { 'begin': 0x0900, 'end': 0x097F }, // Devanagari
+  { 'begin': 0x0980, 'end': 0x09FF }, // Bengali
+  { 'begin': 0x0A00, 'end': 0x0A7F }, // Gurmukhi
+  { 'begin': 0x0A80, 'end': 0x0AFF }, // Gujarati
+  { 'begin': 0x0B00, 'end': 0x0B7F }, // Oriya
+  { 'begin': 0x0B80, 'end': 0x0BFF }, // Tamil
+  { 'begin': 0x0C00, 'end': 0x0C7F }, // Telugu
+  { 'begin': 0x0C80, 'end': 0x0CFF }, // Kannada
+  { 'begin': 0x0D00, 'end': 0x0D7F }, // Malayalam
+  { 'begin': 0x0E00, 'end': 0x0E7F }, // Thai
+  { 'begin': 0x0E80, 'end': 0x0EFF }, // Lao
+  { 'begin': 0x10A0, 'end': 0x10FF }, // Georgian
+  { 'begin': 0x1B00, 'end': 0x1B7F }, // Balinese
+  { 'begin': 0x1100, 'end': 0x11FF }, // Hangul Jamo
+  { 'begin': 0x1E00, 'end': 0x1EFF }, // Latin Extended Additional
+  { 'begin': 0x1F00, 'end': 0x1FFF }, // Greek Extended
+  { 'begin': 0x2000, 'end': 0x206F }, // General Punctuation
+  { 'begin': 0x2070, 'end': 0x209F }, // Superscripts And Subscripts
+  { 'begin': 0x20A0, 'end': 0x20CF }, // Currency Symbol
+  { 'begin': 0x20D0, 'end': 0x20FF }, // Combining Diacritical Marks For Symbols
+  { 'begin': 0x2100, 'end': 0x214F }, // Letterlike Symbols
+  { 'begin': 0x2150, 'end': 0x218F }, // Number Forms
+  { 'begin': 0x2190, 'end': 0x21FF }, // Arrows
+  { 'begin': 0x2200, 'end': 0x22FF }, // Mathematical Operators
+  { 'begin': 0x2300, 'end': 0x23FF }, // Miscellaneous Technical
+  { 'begin': 0x2400, 'end': 0x243F }, // Control Pictures
+  { 'begin': 0x2440, 'end': 0x245F }, // Optical Character Recognition
+  { 'begin': 0x2460, 'end': 0x24FF }, // Enclosed Alphanumerics
+  { 'begin': 0x2500, 'end': 0x257F }, // Box Drawing
+  { 'begin': 0x2580, 'end': 0x259F }, // Block Elements
+  { 'begin': 0x25A0, 'end': 0x25FF }, // Geometric Shapes
+  { 'begin': 0x2600, 'end': 0x26FF }, // Miscellaneous Symbols
+  { 'begin': 0x2700, 'end': 0x27BF }, // Dingbats
+  { 'begin': 0x3000, 'end': 0x303F }, // CJK Symbols And Punctuation
+  { 'begin': 0x3040, 'end': 0x309F }, // Hiragana
+  { 'begin': 0x30A0, 'end': 0x30FF }, // Katakana
+  { 'begin': 0x3100, 'end': 0x312F }, // Bopomofo
+  { 'begin': 0x3130, 'end': 0x318F }, // Hangul Compatibility Jamo
+  { 'begin': 0xA840, 'end': 0xA87F }, // Phags-pa
+  { 'begin': 0x3200, 'end': 0x32FF }, // Enclosed CJK Letters And Months
+  { 'begin': 0x3300, 'end': 0x33FF }, // CJK Compatibility
+  { 'begin': 0xAC00, 'end': 0xD7AF }, // Hangul Syllables
+  { 'begin': 0xD800, 'end': 0xDFFF }, // Non-Plane 0 *
+  { 'begin': 0x10900, 'end': 0x1091F }, // Phoenicia
+  { 'begin': 0x4E00, 'end': 0x9FFF }, // CJK Unified Ideographs
+  { 'begin': 0xE000, 'end': 0xF8FF }, // Private Use Area (plane 0)
+  { 'begin': 0x31C0, 'end': 0x31EF }, // CJK Strokes
+  { 'begin': 0xFB00, 'end': 0xFB4F }, // Alphabetic Presentation Forms
+  { 'begin': 0xFB50, 'end': 0xFDFF }, // Arabic Presentation Forms-A
+  { 'begin': 0xFE20, 'end': 0xFE2F }, // Combining Half Marks
+  { 'begin': 0xFE10, 'end': 0xFE1F }, // Vertical Forms
+  { 'begin': 0xFE50, 'end': 0xFE6F }, // Small Form Variants
+  { 'begin': 0xFE70, 'end': 0xFEFF }, // Arabic Presentation Forms-B
+  { 'begin': 0xFF00, 'end': 0xFFEF }, // Halfwidth And Fullwidth Forms
+  { 'begin': 0xFFF0, 'end': 0xFFFF }, // Specials
+  { 'begin': 0x0F00, 'end': 0x0FFF }, // Tibetan
+  { 'begin': 0x0700, 'end': 0x074F }, // Syriac
+  { 'begin': 0x0780, 'end': 0x07BF }, // Thaana
+  { 'begin': 0x0D80, 'end': 0x0DFF }, // Sinhala
+  { 'begin': 0x1000, 'end': 0x109F }, // Myanmar
+  { 'begin': 0x1200, 'end': 0x137F }, // Ethiopic
+  { 'begin': 0x13A0, 'end': 0x13FF }, // Cherokee
+  { 'begin': 0x1400, 'end': 0x167F }, // Unified Canadian Aboriginal Syllabics
+  { 'begin': 0x1680, 'end': 0x169F }, // Ogham
+  { 'begin': 0x16A0, 'end': 0x16FF }, // Runic
+  { 'begin': 0x1780, 'end': 0x17FF }, // Khmer
+  { 'begin': 0x1800, 'end': 0x18AF }, // Mongolian
+  { 'begin': 0x2800, 'end': 0x28FF }, // Braille Patterns
+  { 'begin': 0xA000, 'end': 0xA48F }, // Yi Syllables
+  { 'begin': 0x1700, 'end': 0x171F }, // Tagalog
+  { 'begin': 0x10300, 'end': 0x1032F }, // Old Italic
+  { 'begin': 0x10330, 'end': 0x1034F }, // Gothic
+  { 'begin': 0x10400, 'end': 0x1044F }, // Deseret
+  { 'begin': 0x1D000, 'end': 0x1D0FF }, // Byzantine Musical Symbols
+  { 'begin': 0x1D400, 'end': 0x1D7FF }, // Mathematical Alphanumeric Symbols
+  { 'begin': 0xFF000, 'end': 0xFFFFD }, // Private Use (plane 15)
+  { 'begin': 0xFE00, 'end': 0xFE0F }, // Variation Selectors
+  { 'begin': 0xE0000, 'end': 0xE007F }, // Tags
+  { 'begin': 0x1900, 'end': 0x194F }, // Limbu
+  { 'begin': 0x1950, 'end': 0x197F }, // Tai Le
+  { 'begin': 0x1980, 'end': 0x19DF }, // New Tai Lue
+  { 'begin': 0x1A00, 'end': 0x1A1F }, // Buginese
+  { 'begin': 0x2C00, 'end': 0x2C5F }, // Glagolitic
+  { 'begin': 0x2D30, 'end': 0x2D7F }, // Tifinagh
+  { 'begin': 0x4DC0, 'end': 0x4DFF }, // Yijing Hexagram Symbols
+  { 'begin': 0xA800, 'end': 0xA82F }, // Syloti Nagri
+  { 'begin': 0x10000, 'end': 0x1007F }, // Linear B Syllabary
+  { 'begin': 0x10140, 'end': 0x1018F }, // Ancient Greek Numbers
+  { 'begin': 0x10380, 'end': 0x1039F }, // Ugaritic
+  { 'begin': 0x103A0, 'end': 0x103DF }, // Old Persian
+  { 'begin': 0x10450, 'end': 0x1047F }, // Shavian
+  { 'begin': 0x10480, 'end': 0x104AF }, // Osmanya
+  { 'begin': 0x10800, 'end': 0x1083F }, // Cypriot Syllabary
+  { 'begin': 0x10A00, 'end': 0x10A5F }, // Kharoshthi
+  { 'begin': 0x1D300, 'end': 0x1D35F }, // Tai Xuan Jing Symbols
+  { 'begin': 0x12000, 'end': 0x123FF }, // Cuneiform
+  { 'begin': 0x1D360, 'end': 0x1D37F }, // Counting Rod Numerals
+  { 'begin': 0x1B80, 'end': 0x1BBF }, // Sundanese
+  { 'begin': 0x1C00, 'end': 0x1C4F }, // Lepcha
+  { 'begin': 0x1C50, 'end': 0x1C7F }, // Ol Chiki
+  { 'begin': 0xA880, 'end': 0xA8DF }, // Saurashtra
+  { 'begin': 0xA900, 'end': 0xA92F }, // Kayah Li
+  { 'begin': 0xA930, 'end': 0xA95F }, // Rejang
+  { 'begin': 0xAA00, 'end': 0xAA5F }, // Cham
+  { 'begin': 0x10190, 'end': 0x101CF }, // Ancient Symbols
+  { 'begin': 0x101D0, 'end': 0x101FF }, // Phaistos Disc
+  { 'begin': 0x102A0, 'end': 0x102DF }, // Carian
+  { 'begin': 0x1F030, 'end': 0x1F09F }  // Domino Tiles
+];
+
+var MacStandardGlyphOrdering = [
+  '.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl',
+  'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft',
+  'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash',
+  'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight',
+  'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at',
+  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+  'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft',
+  'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b',
+  'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
+  'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright',
+  'asciitilde', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde',
+  'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis',
+  'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis',
+  'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve',
+  'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex',
+  'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet',
+  'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute',
+  'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal',
+  'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi',
+  'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash',
+  'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin',
+  'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis',
+  'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash',
+  'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright',
+  'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency',
+  'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered',
+  'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex',
+  'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex',
+  'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute',
+  'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron',
+  'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron',
+  'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar',
+  'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply',
+  'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter',
+  'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla',
+  'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat'];
+
+function getUnicodeRangeFor(value) {
+  for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {
+    var range = UnicodeRanges[i];
+    if (value >= range.begin && value < range.end)
+      return i;
+  }
+  return -1;
+}
+
+function isRTLRangeFor(value) {
+  var range = UnicodeRanges[13];
+  if (value >= range.begin && value < range.end)
+    return true;
+  range = UnicodeRanges[11];
+  if (value >= range.begin && value < range.end)
+    return true;
+  return false;
+}
+
+function isSpecialUnicode(unicode) {
+  return (unicode <= 0x1F || (unicode >= 127 && unicode < kSizeOfGlyphArea)) ||
+    (unicode >= kCmapGlyphOffset &&
+    unicode < kCmapGlyphOffset + kSizeOfGlyphArea);
+}
+
+/**
+ * 'Font' is the class the outside world should use, it encapsulate all the font
+ * decoding logics whatever type it is (assuming the font type is supported).
+ *
+ * For example to read a Type1 font and to attach it to the document:
+ *   var type1Font = new Font("MyFontName", binaryFile, propertiesObject);
+ *   type1Font.bind();
+ */
+var Font = (function FontClosure() {
+  function Font(name, file, properties) {
+    this.name = name;
+    this.coded = properties.coded;
+    this.charProcOperatorList = properties.charProcOperatorList;
+    this.sizes = [];
+
+    var names = name.split('+');
+    names = names.length > 1 ? names[1] : names[0];
+    names = names.split(/[-,_]/g)[0];
+    this.isSerifFont = !!(properties.flags & FontFlags.Serif);
+    this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);
+
+    var type = properties.type;
+    this.type = type;
+
+    // If the font is to be ignored, register it like an already loaded font
+    // to avoid the cost of waiting for it be be loaded by the platform.
+    if (properties.ignore) {
+      this.loadedName = this.isSerifFont ? 'serif' : 'sans-serif';
+      this.loading = false;
+      return;
+    }
+
+    this.differences = properties.differences;
+    this.widths = properties.widths;
+    this.defaultWidth = properties.defaultWidth;
+    this.composite = properties.composite;
+    this.wideChars = properties.wideChars;
+    this.hasEncoding = properties.hasEncoding;
+
+    this.fontMatrix = properties.fontMatrix;
+    this.widthMultiplier = 1.0;
+    if (properties.type == 'Type3') {
+      this.encoding = properties.baseEncoding;
+      return;
+    }
+
+    // Trying to fix encoding using glyph CIDSystemInfo.
+    this.loadCidToUnicode(properties);
+
+    if (properties.toUnicode)
+      this.toUnicode = properties.toUnicode;
+    else
+      this.rebuildToUnicode(properties);
+
+    this.toFontChar = this.buildToFontChar(this.toUnicode);
+
+    if (!file) {
+      // The file data is not specified. Trying to fix the font name
+      // to be used with the canvas.font.
+      var fontName = name.replace(/[,_]/g, '-');
+      fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;
+
+      this.bold = (fontName.search(/bold/gi) != -1);
+      this.italic = (fontName.search(/oblique/gi) != -1) ||
+                    (fontName.search(/italic/gi) != -1);
+
+      // Use 'name' instead of 'fontName' here because the original
+      // name ArialBlack for example will be replaced by Helvetica.
+      this.black = (name.search(/Black/g) != -1);
+
+      this.encoding = properties.baseEncoding;
+      this.noUnicodeAdaptation = true;
+      this.loadedName = fontName.split('-')[0];
+      this.loading = false;
+      return;
+    }
+
+    var data;
+    switch (type) {
+      case 'Type1':
+      case 'CIDFontType0':
+        this.mimetype = 'font/opentype';
+
+        var subtype = properties.subtype;
+        var cff = (subtype == 'Type1C' || subtype == 'CIDFontType0C') ?
+          new CFFFont(file, properties) : new Type1Font(name, file, properties);
+
+        // Wrap the CFF data inside an OTF font file
+        data = this.convert(name, cff, properties);
+        break;
+
+      case 'TrueType':
+      case 'CIDFontType2':
+        this.mimetype = 'font/opentype';
+
+        // Repair the TrueType file. It is can be damaged in the point of
+        // view of the sanitizer
+        data = this.checkAndRepair(name, file, properties);
+        break;
+
+      default:
+        warn('Font ' + properties.type + ' is not supported');
+        break;
+    }
+
+    this.data = data;
+    this.fontMatrix = properties.fontMatrix;
+    this.widthMultiplier = !properties.fontMatrix ? 1.0 :
+      1.0 / properties.fontMatrix[0];
+    this.encoding = properties.baseEncoding;
+    this.loadedName = properties.loadedName;
+    this.loading = true;
+  };
+
+  var numFonts = 0;
+  function getUniqueName() {
+    return 'pdfFont' + numFonts++;
+  }
+
+  function stringToArray(str) {
+    var array = [];
+    for (var i = 0, ii = str.length; i < ii; ++i)
+      array[i] = str.charCodeAt(i);
+
+    return array;
+  };
+
+  function arrayToString(arr) {
+    var str = '';
+    for (var i = 0, ii = arr.length; i < ii; ++i)
+      str += String.fromCharCode(arr[i]);
+
+    return str;
+  };
+
+  function int16(bytes) {
+    return (bytes[0] << 8) + (bytes[1] & 0xff);
+  };
+
+  function int32(bytes) {
+    return (bytes[0] << 24) + (bytes[1] << 16) +
+           (bytes[2] << 8) + (bytes[3] & 0xff);
+  };
+
+  function getMaxPower2(number) {
+    var maxPower = 0;
+    var value = number;
+    while (value >= 2) {
+      value /= 2;
+      maxPower++;
+    }
+
+    value = 2;
+    for (var i = 1; i < maxPower; i++)
+      value *= 2;
+    return value;
+  };
+
+  function string16(value) {
+    return String.fromCharCode((value >> 8) & 0xff) +
+           String.fromCharCode(value & 0xff);
+  };
+
+  function safeString16(value) {
+    // clamp value to the 16-bit int range
+    value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value;
+    return String.fromCharCode((value >> 8) & 0xff) +
+           String.fromCharCode(value & 0xff);
+  };
+
+  function string32(value) {
+    return String.fromCharCode((value >> 24) & 0xff) +
+           String.fromCharCode((value >> 16) & 0xff) +
+           String.fromCharCode((value >> 8) & 0xff) +
+           String.fromCharCode(value & 0xff);
+  };
+
+  function createOpenTypeHeader(sfnt, file, numTables) {
+    // Windows hates the Mac TrueType sfnt version number
+    if (sfnt == 'true')
+      sfnt = string32(0x00010000);
+
+    // sfnt version (4 bytes)
+    var header = sfnt;
+
+    // numTables (2 bytes)
+    header += string16(numTables);
+
+    // searchRange (2 bytes)
+    var tablesMaxPower2 = getMaxPower2(numTables);
+    var searchRange = tablesMaxPower2 * 16;
+    header += string16(searchRange);
+
+    // entrySelector (2 bytes)
+    header += string16(Math.log(tablesMaxPower2) / Math.log(2));
+
+    // rangeShift (2 bytes)
+    header += string16(numTables * 16 - searchRange);
+
+    file.file += header;
+    file.virtualOffset += header.length;
+  };
+
+  function createTableEntry(file, tag, data) {
+    // offset
+    var offset = file.virtualOffset;
+
+    // length
+    var length = data.length;
+
+    // Per spec tables must be 4-bytes align so add padding as needed
+    while (data.length & 3)
+      data.push(0x00);
+
+    while (file.virtualOffset & 3)
+      file.virtualOffset++;
+
+    // checksum
+    var checksum = 0, n = data.length;
+    for (var i = 0; i < n; i += 4)
+      checksum = (checksum + int32([data[i], data[i + 1], data[i + 2],
+                                    data[i + 3]])) | 0;
+
+    var tableEntry = (tag + string32(checksum) +
+                      string32(offset) + string32(length));
+    file.file += tableEntry;
+    file.virtualOffset += data.length;
+  };
+
+  function getRanges(glyphs) {
+    // Array.sort() sorts by characters, not numerically, so convert to an
+    // array of characters.
+    var codes = [];
+    var length = glyphs.length;
+    for (var n = 0; n < length; ++n)
+      codes.push({ unicode: glyphs[n].unicode, code: n });
+    codes.sort(function fontGetRangesSort(a, b) {
+      return a.unicode - b.unicode;
+    });
+
+    // Split the sorted codes into ranges.
+    var ranges = [];
+    for (var n = 0; n < length; ) {
+      var start = codes[n].unicode;
+      var codeIndices = [codes[n].code];
+      ++n;
+      var end = start;
+      while (n < length && end + 1 == codes[n].unicode) {
+        codeIndices.push(codes[n].code);
+        ++end;
+        ++n;
+      }
+      ranges.push([start, end, codeIndices]);
+    }
+
+    return ranges;
+  };
+
+  function createCMapTable(glyphs, deltas) {
+    var ranges = getRanges(glyphs);
+
+    var numTables = 1;
+    var cmap = '\x00\x00' + // version
+               string16(numTables) +  // numTables
+               '\x00\x03' + // platformID
+               '\x00\x01' + // encodingID
+               string32(4 + numTables * 8); // start of the table record
+
+    var segCount = ranges.length + 1;
+    var segCount2 = segCount * 2;
+    var searchRange = getMaxPower2(segCount) * 2;
+    var searchEntry = Math.log(segCount) / Math.log(2);
+    var rangeShift = 2 * segCount - searchRange;
+
+    // Fill up the 4 parallel arrays describing the segments.
+    var startCount = '';
+    var endCount = '';
+    var idDeltas = '';
+    var idRangeOffsets = '';
+    var glyphsIds = '';
+    var bias = 0;
+
+    if (deltas) {
+      for (var i = 0; i < segCount - 1; i++) {
+        var range = ranges[i];
+        var start = range[0];
+        var end = range[1];
+        var offset = (segCount - i) * 2 + bias * 2;
+        bias += (end - start + 1);
+
+        startCount += string16(start);
+        endCount += string16(end);
+        idDeltas += string16(0);
+        idRangeOffsets += string16(offset);
+
+        var codes = range[2];
+        for (var j = 0, jj = codes.length; j < jj; ++j)
+          glyphsIds += string16(deltas[codes[j]]);
+      }
+    } else {
+      for (var i = 0; i < segCount - 1; i++) {
+        var range = ranges[i];
+        var start = range[0];
+        var end = range[1];
+        var startCode = range[2][0];
+
+        startCount += string16(start);
+        endCount += string16(end);
+        idDeltas += string16((startCode - start + 1) & 0xFFFF);
+        idRangeOffsets += string16(0);
+      }
+    }
+
+    endCount += '\xFF\xFF';
+    startCount += '\xFF\xFF';
+    idDeltas += '\x00\x01';
+    idRangeOffsets += '\x00\x00';
+
+    var format314 = '\x00\x00' + // language
+                    string16(segCount2) +
+                    string16(searchRange) +
+                    string16(searchEntry) +
+                    string16(rangeShift) +
+                    endCount + '\x00\x00' + startCount +
+                    idDeltas + idRangeOffsets + glyphsIds;
+
+    return stringToArray(cmap +
+                         '\x00\x04' + // format
+                         string16(format314.length + 4) + // length
+                         format314);
+  };
+
+  function createOS2Table(properties, charstrings, override) {
+    override = override || {
+      unitsPerEm: 0,
+      yMax: 0,
+      yMin: 0,
+      ascent: 0,
+      descent: 0
+    };
+
+    var ulUnicodeRange1 = 0;
+    var ulUnicodeRange2 = 0;
+    var ulUnicodeRange3 = 0;
+    var ulUnicodeRange4 = 0;
+
+    var firstCharIndex = null;
+    var lastCharIndex = 0;
+
+    if (charstrings) {
+      for (var i = 0; i < charstrings.length; ++i) {
+        var code = charstrings[i].unicode;
+        if (firstCharIndex > code || !firstCharIndex)
+          firstCharIndex = code;
+        if (lastCharIndex < code)
+          lastCharIndex = code;
+
+        var position = getUnicodeRangeFor(code);
+        if (position < 32) {
+          ulUnicodeRange1 |= 1 << position;
+        } else if (position < 64) {
+          ulUnicodeRange2 |= 1 << position - 32;
+        } else if (position < 96) {
+          ulUnicodeRange3 |= 1 << position - 64;
+        } else if (position < 123) {
+          ulUnicodeRange4 |= 1 << position - 96;
+        } else {
+          error('Unicode ranges Bits > 123 are reserved for internal usage');
+        }
+      }
+    } else {
+      // TODO
+      firstCharIndex = 0;
+      lastCharIndex = 255;
+    }
+
+    var unitsPerEm = override.unitsPerEm || kPDFGlyphSpaceUnits;
+    var typoAscent = override.ascent || properties.ascent;
+    var typoDescent = override.descent || properties.descent;
+    var winAscent = override.yMax || typoAscent;
+    var winDescent = -override.yMin || -typoDescent;
+
+    // if there is a units per em value but no other override
+    // then scale the calculated ascent
+    if (unitsPerEm != kPDFGlyphSpaceUnits &&
+        'undefined' == typeof(override.ascent)) {
+      // if the font units differ to the PDF glyph space units
+      // then scale up the values
+      typoAscent = Math.round(typoAscent * unitsPerEm / kPDFGlyphSpaceUnits);
+      typoDescent = Math.round(typoDescent * unitsPerEm / kPDFGlyphSpaceUnits);
+      winAscent = typoAscent;
+      winDescent = -typoDescent;
+    }
+
+    return '\x00\x03' + // version
+           '\x02\x24' + // xAvgCharWidth
+           '\x01\xF4' + // usWeightClass
+           '\x00\x05' + // usWidthClass
+           '\x00\x00' + // fstype (0 to let the font loads via font-face on IE)
+           '\x02\x8A' + // ySubscriptXSize
+           '\x02\xBB' + // ySubscriptYSize
+           '\x00\x00' + // ySubscriptXOffset
+           '\x00\x8C' + // ySubscriptYOffset
+           '\x02\x8A' + // ySuperScriptXSize
+           '\x02\xBB' + // ySuperScriptYSize
+           '\x00\x00' + // ySuperScriptXOffset
+           '\x01\xDF' + // ySuperScriptYOffset
+           '\x00\x31' + // yStrikeOutSize
+           '\x01\x02' + // yStrikeOutPosition
+           '\x00\x00' + // sFamilyClass
+           '\x00\x00\x06' +
+           String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) +
+           '\x00\x00\x00\x00\x00\x00' + // Panose
+           string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31)
+           string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63)
+           string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95)
+           string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127)
+           '\x2A\x32\x31\x2A' + // achVendID
+           string16(properties.italicAngle ? 1 : 0) + // fsSelection
+           string16(firstCharIndex ||
+                    properties.firstChar) + // usFirstCharIndex
+           string16(lastCharIndex || properties.lastChar) +  // usLastCharIndex
+           string16(typoAscent) + // sTypoAscender
+           string16(typoDescent) + // sTypoDescender
+           '\x00\x64' + // sTypoLineGap (7%-10% of the unitsPerEM value)
+           string16(winAscent) + // usWinAscent
+           string16(winDescent) + // usWinDescent
+           '\x00\x00\x00\x00' + // ulCodePageRange1 (Bits 0-31)
+           '\x00\x00\x00\x00' + // ulCodePageRange2 (Bits 32-63)
+           string16(properties.xHeight) + // sxHeight
+           string16(properties.capHeight) + // sCapHeight
+           string16(0) + // usDefaultChar
+           string16(firstCharIndex || properties.firstChar) + // usBreakChar
+           '\x00\x03';  // usMaxContext
+  };
+
+  function createPostTable(properties) {
+    var angle = Math.floor(properties.italicAngle * (Math.pow(2, 16)));
+    return '\x00\x03\x00\x00' + // Version number
+           string32(angle) + // italicAngle
+           '\x00\x00' + // underlinePosition
+           '\x00\x00' + // underlineThickness
+           string32(properties.fixedPitch) + // isFixedPitch
+           '\x00\x00\x00\x00' + // minMemType42
+           '\x00\x00\x00\x00' + // maxMemType42
+           '\x00\x00\x00\x00' + // minMemType1
+           '\x00\x00\x00\x00';  // maxMemType1
+  };
+
+  function createNameTable(name) {
+    var strings = [
+      'Original licence',  // 0.Copyright
+      name,                // 1.Font family
+      'Unknown',           // 2.Font subfamily (font weight)
+      'uniqueID',          // 3.Unique ID
+      name,                // 4.Full font name
+      'Version 0.11',      // 5.Version
+      '',                  // 6.Postscript name
+      'Unknown',           // 7.Trademark
+      'Unknown',           // 8.Manufacturer
+      'Unknown'            // 9.Designer
+    ];
+
+    // Mac want 1-byte per character strings while Windows want
+    // 2-bytes per character, so duplicate the names table
+    var stringsUnicode = [];
+    for (var i = 0, ii = strings.length; i < ii; i++) {
+      var str = strings[i];
+
+      var strUnicode = '';
+      for (var j = 0, jj = str.length; j < jj; j++)
+        strUnicode += string16(str.charCodeAt(j));
+      stringsUnicode.push(strUnicode);
+    }
+
+    var names = [strings, stringsUnicode];
+    var platforms = ['\x00\x01', '\x00\x03'];
+    var encodings = ['\x00\x00', '\x00\x01'];
+    var languages = ['\x00\x00', '\x04\x09'];
+
+    var namesRecordCount = strings.length * platforms.length;
+    var nameTable =
+      '\x00\x00' +                           // format
+      string16(namesRecordCount) +           // Number of names Record
+      string16(namesRecordCount * 12 + 6);   // Storage
+
+    // Build the name records field
+    var strOffset = 0;
+    for (var i = 0, ii = platforms.length; i < ii; i++) {
+      var strs = names[i];
+      for (var j = 0, jj = strs.length; j < jj; j++) {
+        var str = strs[j];
+        var nameRecord =
+          platforms[i] + // platform ID
+          encodings[i] + // encoding ID
+          languages[i] + // language ID
+          string16(j) + // name ID
+          string16(str.length) +
+          string16(strOffset);
+        nameTable += nameRecord;
+        strOffset += str.length;
+      }
+    }
+
+    nameTable += strings.join('') + stringsUnicode.join('');
+    return nameTable;
+  }
+
+  Font.prototype = {
+    name: null,
+    font: null,
+    mimetype: null,
+    encoding: null,
+
+    checkAndRepair: function Font_checkAndRepair(name, font, properties) {
+      function readTableEntry(file) {
+        var tag = file.getBytes(4);
+        tag = String.fromCharCode(tag[0]) +
+              String.fromCharCode(tag[1]) +
+              String.fromCharCode(tag[2]) +
+              String.fromCharCode(tag[3]);
+
+        var checksum = int32(file.getBytes(4));
+        var offset = int32(file.getBytes(4));
+        var length = int32(file.getBytes(4));
+
+        // Read the table associated data
+        var previousPosition = file.pos;
+        file.pos = file.start ? file.start : 0;
+        file.skip(offset);
+        var data = file.getBytes(length);
+        file.pos = previousPosition;
+
+        if (tag == 'head') {
+          // clearing checksum adjustment
+          data[8] = data[9] = data[10] = data[11] = 0;
+          data[17] |= 0x20; //Set font optimized for cleartype flag
+        }
+
+        return {
+          tag: tag,
+          checksum: checksum,
+          length: length,
+          offset: offset,
+          data: data
+        };
+      };
+
+      function readOpenTypeHeader(ttf) {
+        return {
+          version: arrayToString(ttf.getBytes(4)),
+          numTables: int16(ttf.getBytes(2)),
+          searchRange: int16(ttf.getBytes(2)),
+          entrySelector: int16(ttf.getBytes(2)),
+          rangeShift: int16(ttf.getBytes(2))
+        };
+      };
+
+      function createGlyphNameMap(glyphs, ids, properties) {
+        var glyphNames = properties.glyphNames;
+        if (!glyphNames) {
+          properties.glyphNameMap = {};
+          return;
+        }
+        var glyphsLength = glyphs.length;
+        var glyphNameMap = {};
+        var encoding = [];
+        for (var i = 0; i < glyphsLength; ++i) {
+          var glyphName = glyphNames[ids[i]];
+          if (!glyphName)
+            continue;
+          var unicode = glyphs[i].unicode;
+          glyphNameMap[glyphName] = unicode;
+          var code = glyphs[i].code;
+          encoding[code] = glyphName;
+        }
+        properties.glyphNameMap = glyphNameMap;
+        if (!properties.hasEncoding)
+          properties.baseEncoding = encoding;
+      }
+
+      function readCMapTable(cmap, font) {
+        var start = (font.start ? font.start : 0) + cmap.offset;
+        font.pos = start;
+
+        var version = int16(font.getBytes(2));
+        var numRecords = int16(font.getBytes(2));
+
+        var records = [];
+        for (var i = 0; i < numRecords; i++) {
+          records.push({
+            platformID: int16(font.getBytes(2)),
+            encodingID: int16(font.getBytes(2)),
+            offset: int32(font.getBytes(4))
+          });
+        }
+
+        // Check that table are sorted by platformID then encodingID,
+        records.sort(function fontReadCMapTableSort(a, b) {
+          return ((a.platformID << 16) + a.encodingID) -
+                 ((b.platformID << 16) + b.encodingID);
+        });
+
+        var tables = [records[0]];
+        for (var i = 1; i < numRecords; i++) {
+          // The sanitizer will drop the font if 2 tables have the same
+          // platformID and the same encodingID, this will be correct for
+          // most cases but if the font has been made for Mac it could
+          // exist a few platformID: 1, encodingID: 0 but with a different
+          // language field and that's correct. But the sanitizer does not
+          // seem to support this case.
+          var current = records[i];
+          var previous = records[i - 1];
+          if (((current.platformID << 16) + current.encodingID) <=
+             ((previous.platformID << 16) + previous.encodingID))
+                continue;
+          tables.push(current);
+        }
+
+        var missing = numRecords - tables.length;
+        if (missing) {
+          numRecords = tables.length;
+          var data = string16(version) + string16(numRecords);
+
+          for (var i = 0; i < numRecords; i++) {
+            var table = tables[i];
+            data += string16(table.platformID) +
+                    string16(table.encodingID) +
+                    string32(table.offset);
+          }
+
+          for (var i = 0, ii = data.length; i < ii; i++)
+            cmap.data[i] = data.charCodeAt(i);
+        }
+
+        for (var i = 0; i < numRecords; i++) {
+          var table = tables[i];
+          font.pos = start + table.offset;
+
+          var format = int16(font.getBytes(2));
+          var length = int16(font.getBytes(2));
+          var language = int16(font.getBytes(2));
+
+          if (format == 0) {
+            // Characters below 0x20 are controls characters that are hardcoded
+            // into the platform so if some characters in the font are assigned
+            // under this limit they will not be displayed so let's rewrite the
+            // CMap.
+            var glyphs = [];
+            var ids = [];
+            for (var j = 0; j < 256; j++) {
+              var index = font.getByte();
+              if (index) {
+                glyphs.push({ unicode: j, code: j });
+                ids.push(index);
+              }
+            }
+            return {
+              glyphs: glyphs,
+              ids: ids,
+              hasShortCmap: true
+            };
+          } else if (format == 4) {
+            // re-creating the table in format 4 since the encoding
+            // might be changed
+            var segCount = (int16(font.getBytes(2)) >> 1);
+            font.getBytes(6); // skipping range fields
+            var segIndex, segments = [];
+            for (segIndex = 0; segIndex < segCount; segIndex++) {
+              segments.push({ end: int16(font.getBytes(2)) });
+            }
+            font.getBytes(2);
+            for (segIndex = 0; segIndex < segCount; segIndex++) {
+              segments[segIndex].start = int16(font.getBytes(2));
+            }
+
+            for (segIndex = 0; segIndex < segCount; segIndex++) {
+              segments[segIndex].delta = int16(font.getBytes(2));
+            }
+
+            var offsetsCount = 0;
+            for (segIndex = 0; segIndex < segCount; segIndex++) {
+              var segment = segments[segIndex];
+              var rangeOffset = int16(font.getBytes(2));
+              if (!rangeOffset) {
+                segment.offsetIndex = -1;
+                continue;
+              }
+
+              var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);
+              segment.offsetIndex = offsetIndex;
+              offsetsCount = Math.max(offsetsCount, offsetIndex +
+                segment.end - segment.start + 1);
+            }
+
+            var offsets = [];
+            for (var j = 0; j < offsetsCount; j++)
+              offsets.push(int16(font.getBytes(2)));
+
+            var glyphs = [], ids = [];
+
+            for (segIndex = 0; segIndex < segCount; segIndex++) {
+              var segment = segments[segIndex];
+              var start = segment.start, end = segment.end;
+              var delta = segment.delta, offsetIndex = segment.offsetIndex;
+
+              for (var j = start; j <= end; j++) {
+                if (j == 0xFFFF)
+                  continue;
+
+                var glyphCode = offsetIndex < 0 ? j :
+                  offsets[offsetIndex + j - start];
+                glyphCode = (glyphCode + delta) & 0xFFFF;
+                if (glyphCode == 0)
+                  continue;
+
+                glyphs.push({ unicode: j, code: j });
+                ids.push(glyphCode);
+              }
+            }
+
+            return {
+              glyphs: glyphs,
+              ids: ids
+            };
+          } else if (format == 6) {
+            // Format 6 is a 2-bytes dense mapping, which means the font data
+            // lives glue together even if they are pretty far in the unicode
+            // table. (This looks weird, so I can have missed something), this
+            // works on Linux but seems to fails on Mac so let's rewrite the
+            // cmap table to a 3-1-4 style
+            var firstCode = int16(font.getBytes(2));
+            var entryCount = int16(font.getBytes(2));
+
+            var glyphs = [];
+            var ids = [];
+            for (var j = 0; j < entryCount; j++) {
+              var glyphCode = int16(font.getBytes(2));
+              var code = firstCode + j;
+
+              glyphs.push({ unicode: code, code: code });
+              ids.push(glyphCode);
+            }
+
+            return {
+              glyphs: glyphs,
+              ids: ids
+            };
+          }
+        }
+        error('Unsupported cmap table format');
+      };
+
+      function sanitizeMetrics(font, header, metrics, numGlyphs) {
+        if (!header && !metrics)
+          return;
+
+        // The vhea/vmtx tables are not required, so it happens that
+        // some fonts embed a vmtx table without a vhea table. In this
+        // situation the sanitizer assume numOfLongVerMetrics = 1. As
+        // a result it tries to read numGlyphs - 1 SHORT from the vmtx
+        // table, and if it is not possible, the font is rejected.
+        // So remove the vmtx table if there is no vhea table.
+        if (!header && metrics) {
+          metrics.data = null;
+          return;
+        }
+
+        font.pos = (font.start ? font.start : 0) + header.offset;
+        font.pos += header.length - 2;
+        var numOfMetrics = int16(font.getBytes(2));
+
+        var numOfSidebearings = numGlyphs - numOfMetrics;
+        var numMissing = numOfSidebearings -
+          ((hmtx.length - numOfMetrics * 4) >> 1);
+        if (numMissing > 0) {
+          font.pos = (font.start ? font.start : 0) + metrics.offset;
+          var entries = '';
+          for (var i = 0, ii = hmtx.length; i < ii; i++)
+            entries += String.fromCharCode(font.getByte());
+          for (var i = 0; i < numMissing; i++)
+            entries += '\x00\x00';
+          metrics.data = stringToArray(entries);
+        }
+      };
+
+      function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart) {
+        if (sourceEnd - sourceStart <= 12) {
+          // glyph with data less than 12 is invalid one
+          return 0;
+        }
+        var glyf = source.subarray(sourceStart, sourceEnd);
+        var contoursCount = (glyf[0] << 8) | glyf[1];
+        if (contoursCount & 0x8000) {
+          // complex glyph, writing as is
+          dest.set(glyf, destStart);
+          return glyf.length;
+        }
+
+        var j = 10, flagsCount = 0;
+        for (var i = 0; i < contoursCount; i++) {
+          var endPoint = (glyf[j] << 8) | glyf[j + 1];
+          flagsCount = endPoint + 1;
+          j += 2;
+        }
+        // skipping instructions
+        var instructionsLength = (glyf[j] << 8) | glyf[j + 1];
+        j += 2 + instructionsLength;
+        // validating flags
+        var coordinatesLength = 0;
+        for (var i = 0; i < flagsCount; i++) {
+          var flag = glyf[j++];
+          if (flag & 0xC0) {
+            // reserved flags must be zero, rejecting
+            return 0;
+          }
+          var xyLength = ((flag & 2) ? 1 : (flag & 16) ? 0 : 2) +
+                         ((flag & 4) ? 1 : (flag & 32) ? 0 : 2);
+          coordinatesLength += xyLength;
+          if (flag & 8) {
+            var repeat = glyf[j++];
+            i += repeat;
+            coordinatesLength += repeat * xyLength;
+          }
+        }
+        var glyphDataLength = j + coordinatesLength;
+        if (glyphDataLength > glyf.length) {
+          // not enough data for coordinates
+          return 0;
+        }
+        if (glyf.length - glyphDataLength > 3) {
+          // truncating and aligning to 4 bytes the long glyph data
+          glyphDataLength = (glyphDataLength + 3) & ~3;
+          dest.set(glyf.subarray(0, glyphDataLength), destStart);
+          return glyphDataLength;
+        }
+        // glyph data is fine
+        dest.set(glyf, destStart);
+        return glyf.length;
+      }
+
+      function sanitizeGlyphLocations(loca, glyf, numGlyphs,
+                                      isGlyphLocationsLong) {
+        var itemSize, itemDecode, itemEncode;
+        if (isGlyphLocationsLong) {
+          itemSize = 4;
+          itemDecode = function fontItemDecodeLong(data, offset) {
+            return (data[offset] << 24) | (data[offset + 1] << 16) |
+                   (data[offset + 2] << 8) | data[offset + 3];
+          };
+          itemEncode = function fontItemEncodeLong(data, offset, value) {
+            data[offset] = (value >>> 24) & 0xFF;
+            data[offset + 1] = (value >> 16) & 0xFF;
+            data[offset + 2] = (value >> 8) & 0xFF;
+            data[offset + 3] = value & 0xFF;
+          };
+        } else {
+          itemSize = 2;
+          itemDecode = function fontItemDecode(data, offset) {
+            return (data[offset] << 9) | (data[offset + 1] << 1);
+          };
+          itemEncode = function fontItemEncode(data, offset, value) {
+            data[offset] = (value >> 9) & 0xFF;
+            data[offset + 1] = (value >> 1) & 0xFF;
+          };
+        }
+        var locaData = loca.data;
+        // removing the invalid glyphs
+        var oldGlyfData = glyf.data;
+        var oldGlyfDataLength = oldGlyfData.length;
+        var newGlyfData = new Uint8Array(oldGlyfDataLength);
+        var startOffset = itemDecode(locaData, 0);
+        var writeOffset = 0;
+        itemEncode(locaData, 0, writeOffset);
+        for (var i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {
+          var endOffset = itemDecode(locaData, j);
+          if (endOffset > oldGlyfDataLength) {
+            // glyph end offset points outside glyf data, rejecting the glyph
+            itemEncode(locaData, j, writeOffset);
+            startOffset = endOffset;
+            continue;
+          }
+
+          var newLength = sanitizeGlyph(oldGlyfData, startOffset, endOffset,
+                                        newGlyfData, writeOffset);
+          writeOffset += newLength;
+          itemEncode(locaData, j, writeOffset);
+          startOffset = endOffset;
+        }
+
+        if (writeOffset == 0) {
+          // glyf table cannot be empty -- redoing the glyf and loca tables
+          // to have single glyph with one point
+          var simpleGlyph = new Uint8Array(
+            [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);
+          for (var i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize)
+            itemEncode(locaData, j, simpleGlyph.length);
+          glyf.data = simpleGlyph;
+          return;
+        }
+
+        glyf.data = newGlyfData.subarray(0, writeOffset);
+      }
+
+      function findEmptyGlyphs(locaTable, isGlyphLocationsLong, emptyGlyphIds) {
+        var itemSize, itemDecode;
+        if (isGlyphLocationsLong) {
+          itemSize = 4;
+          itemDecode = function fontItemDecodeLong(data, offset) {
+            return (data[offset] << 24) | (data[offset + 1] << 16) |
+                   (data[offset + 2] << 8) | data[offset + 3];
+          };
+        } else {
+          itemSize = 2;
+          itemDecode = function fontItemDecode(data, offset) {
+            return (data[offset] << 9) | (data[offset + 1] << 1);
+          };
+        }
+        var data = locaTable.data, length = data.length;
+        var lastOffset = itemDecode(data, 0);
+        for (var i = itemSize, j = 0; i < length; i += itemSize, j++) {
+          var offset = itemDecode(data, i);
+          if (offset == lastOffset)
+            emptyGlyphIds[j] = true;
+          lastOffset = offset;
+        }
+      }
+
+      function readGlyphNameMap(post, properties) {
+        var start = (font.start ? font.start : 0) + post.offset;
+        font.pos = start;
+
+        var length = post.length, end = start + length;
+        var version = int32(font.getBytes(4));
+        // skip rest to the tables
+        font.getBytes(28);
+
+        var glyphNames;
+        switch (version) {
+          case 0x00010000:
+            glyphNames = MacStandardGlyphOrdering;
+            break;
+          case 0x00020000:
+            var numGlyphs = int16(font.getBytes(2));
+            var glyphNameIndexes = [];
+            for (var i = 0; i < numGlyphs; ++i)
+              glyphNameIndexes.push(int16(font.getBytes(2)));
+            var customNames = [];
+            while (font.pos < end) {
+              var stringLength = font.getByte();
+              var string = '';
+              for (var i = 0; i < stringLength; ++i)
+                string += font.getChar();
+              customNames.push(string);
+            }
+            glyphNames = [];
+            for (var i = 0; i < numGlyphs; ++i) {
+              var j = glyphNameIndexes[i];
+              if (j < 258) {
+                glyphNames.push(MacStandardGlyphOrdering[j]);
+                continue;
+              }
+              glyphNames.push(customNames[j - 258]);
+            }
+            break;
+          case 0x00030000:
+            break;
+          default:
+            warn('Unknown/unsupported post table version ' + version);
+            break;
+        }
+        properties.glyphNames = glyphNames;
+      }
+
+      function isOS2Valid(os2Table) {
+        var data = os2Table.data;
+        // usWinAscent == 0 makes font unreadable by windows
+        var usWinAscent = (data[74] << 8) | data[75];
+        if (usWinAscent == 0)
+          return false;
+
+        return true;
+      }
+
+      // Check that required tables are present
+      var requiredTables = ['OS/2', 'cmap', 'head', 'hhea',
+                             'hmtx', 'maxp', 'name', 'post'];
+
+      var header = readOpenTypeHeader(font);
+      var numTables = header.numTables;
+
+      var cmap, post, maxp, hhea, hmtx, vhea, vmtx, head, loca, glyf, os2;
+      var tables = [];
+      for (var i = 0; i < numTables; i++) {
+        var table = readTableEntry(font);
+        var index = requiredTables.indexOf(table.tag);
+        if (index != -1) {
+          if (table.tag == 'cmap')
+            cmap = table;
+          else if (table.tag == 'post')
+            post = table;
+          else if (table.tag == 'maxp')
+            maxp = table;
+          else if (table.tag == 'hhea')
+            hhea = table;
+          else if (table.tag == 'hmtx')
+            hmtx = table;
+          else if (table.tag == 'head')
+            head = table;
+          else if (table.tag == 'OS/2')
+            os2 = table;
+
+          requiredTables.splice(index, 1);
+        } else {
+          if (table.tag == 'vmtx')
+            vmtx = table;
+          else if (table.tag == 'vhea')
+            vhea = table;
+          else if (table.tag == 'loca')
+            loca = table;
+          else if (table.tag == 'glyf')
+            glyf = table;
+        }
+        tables.push(table);
+      }
+
+      var numTables = tables.length + requiredTables.length;
+
+      // header and new offsets. Table entry information is appended to the
+      // end of file. The virtualOffset represents where to put the actual
+      // data of a particular table;
+      var ttf = {
+        file: '',
+        virtualOffset: numTables * (4 * 4)
+      };
+
+      // The new numbers of tables will be the last one plus the num
+      // of missing tables
+      createOpenTypeHeader(header.version, ttf, numTables);
+
+      // Invalid OS/2 can break the font for the Windows
+      if (os2 && !isOS2Valid(os2)) {
+        tables.splice(tables.indexOf(os2), 1);
+        os2 = null;
+      }
+
+      // Ensure the [h/v]mtx tables contains the advance width and
+      // sidebearings information for numGlyphs in the maxp table
+      font.pos = (font.start || 0) + maxp.offset;
+      var version = int16(font.getBytes(4));
+      var numGlyphs = int16(font.getBytes(2));
+
+      sanitizeMetrics(font, hhea, hmtx, numGlyphs);
+      sanitizeMetrics(font, vhea, vmtx, numGlyphs);
+
+      var isGlyphLocationsLong = int16([head.data[50], head.data[51]]);
+      if (head && loca && glyf) {
+        sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong);
+      }
+
+      var emptyGlyphIds = [];
+      if (glyf)
+        findEmptyGlyphs(loca, isGlyphLocationsLong, emptyGlyphIds);
+
+      // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth
+      // Sometimes it's 0. That needs to be fixed
+      if (hhea.data[10] == 0 && hhea.data[11] == 0) {
+        hhea.data[10] = 0xFF;
+        hhea.data[11] = 0xFF;
+      }
+
+      // The 'post' table has glyphs names.
+      if (post) {
+        readGlyphNameMap(post, properties);
+      }
+
+      var glyphs, ids;
+      if (properties.type == 'CIDFontType2') {
+        // Replace the old CMAP table with a shiny new one
+        // Type2 composite fonts map characters directly to glyphs so the cmap
+        // table must be replaced.
+        // canvas fillText will reencode some characters even if the font has a
+        // glyph at that position - e.g. newline is converted to a space and
+        // U+00AD (soft hyphen) is not drawn.
+        // So, offset all the glyphs by 0xFF to avoid these cases and use
+        // the encoding to map incoming characters to the new glyph positions
+        if (!cmap) {
+          cmap = {
+            tag: 'cmap',
+            data: null
+          };
+          tables.push(cmap);
+        }
+
+        var cidToGidMap = properties.cidToGidMap || [];
+        var gidToCidMap = [0];
+        if (cidToGidMap.length > 0) {
+          for (var j = cidToGidMap.length - 1; j >= 0; j--) {
+            var gid = cidToGidMap[j];
+            if (gid)
+              gidToCidMap[gid] = j;
+          }
+          // filling the gaps using CID above the CIDs currently used in font
+          var nextCid = cidToGidMap.length;
+          for (var i = 1; i < numGlyphs; i++) {
+            if (!gidToCidMap[i])
+              gidToCidMap[i] = nextCid++;
+          }
+        }
+
+        glyphs = [];
+        ids = [];
+
+        var usedUnicodes = [];
+        var unassignedUnicodeItems = [];
+        for (var i = 1; i < numGlyphs; i++) {
+          var cid = gidToCidMap[i] || i;
+          var unicode = this.toFontChar[cid];
+          if (!unicode || typeof unicode !== 'number' ||
+              isSpecialUnicode(unicode) || unicode in usedUnicodes) {
+            unassignedUnicodeItems.push(i);
+            continue;
+          }
+          usedUnicodes[unicode] = true;
+          glyphs.push({ unicode: unicode, code: cid });
+          ids.push(i);
+        }
+        // trying to fit as many unassigned symbols as we can
+        // in the range allocated for the user defined symbols
+        var unusedUnicode = kCmapGlyphOffset;
+        for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j++) {
+          var i = unassignedUnicodeItems[j];
+          var cid = gidToCidMap[i] || i;
+          while (unusedUnicode in usedUnicodes)
+            unusedUnicode++;
+          if (unusedUnicode >= kCmapGlyphOffset + kSizeOfGlyphArea)
+            break;
+          var unicode = unusedUnicode++;
+          this.toFontChar[cid] = unicode;
+          usedUnicodes[unicode] = true;
+          glyphs.push({ unicode: unicode, code: cid });
+          ids.push(i);
+        }
+      } else {
+        var cmapTable = readCMapTable(cmap, font);
+
+        glyphs = cmapTable.glyphs;
+        ids = cmapTable.ids;
+
+        var hasShortCmap = !!cmapTable.hasShortCmap;
+        var toFontChar = this.toFontChar;
+
+        if (hasShortCmap && ids.length == numGlyphs) {
+          // Fixes the short cmap tables -- some generators use incorrect
+          // glyph id.
+          for (var i = 0, ii = ids.length; i < ii; i++)
+            ids[i] = i;
+        }
+
+        var unusedUnicode = kCmapGlyphOffset;
+        var glyphNames = properties.glyphNames || [];
+        var encoding = properties.baseEncoding;
+        var differences = properties.differences;
+        if (toFontChar && toFontChar.length > 0) {
+          // checking if cmap is just identity map
+          var isIdentity = true;
+          for (var i = 0, ii = glyphs.length; i < ii; i++) {
+            if (glyphs[i].unicode != i + 1) {
+              isIdentity = false;
+              break;
+            }
+          }
+          // if it is, replacing with meaningful toUnicode values
+          if (isIdentity && !this.isSymbolicFont) {
+            var usedUnicodes = [], unassignedUnicodeItems = [];
+            for (var i = 0, ii = glyphs.length; i < ii; i++) {
+              var unicode = toFontChar[i + 1];
+              if (!unicode || typeof unicode !== 'number' ||
+                  unicode in usedUnicodes) {
+                unassignedUnicodeItems.push(i);
+                continue;
+              }
+              glyphs[i].unicode = unicode;
+              usedUnicodes[unicode] = true;
+            }
+            for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j++) {
+              var i = unassignedUnicodeItems[j];
+              while (unusedUnicode in usedUnicodes)
+                unusedUnicode++;
+              var cid = i + 1;
+              // override only if unicode mapping is not specified
+              if (!(cid in toFontChar))
+                toFontChar[cid] = unusedUnicode;
+              glyphs[i].unicode = unusedUnicode++;
+            }
+            this.useToFontChar = true;
+          }
+        }
+
+        // remove glyph references outside range of avaialable glyphs or empty
+        var glyphsRemoved = 0;
+        for (var i = ids.length - 1; i >= 0; i--) {
+          if (ids[i] < numGlyphs &&
+              (!emptyGlyphIds[ids[i]] || this.isSymbolicFont))
+            continue;
+          ids.splice(i, 1);
+          glyphs.splice(i, 1);
+          glyphsRemoved++;
+        }
+
+        // checking if it's a "true" symbolic font
+        if (this.isSymbolicFont) {
+          var minUnicode = 0xFFFF, maxUnicode = 0;
+          for (var i = 0, ii = glyphs.length; i < ii; i++) {
+            var unicode = glyphs[i].unicode;
+            minUnicode = Math.min(minUnicode, unicode);
+            maxUnicode = Math.max(maxUnicode, unicode);
+          }
+          // high byte must be the same for min and max unicodes
+          if ((maxUnicode & 0xFF00) != (minUnicode & 0xFF00))
+            this.isSymbolicFont = false;
+        }
+
+        // heuristics: if removed more than 2 glyphs encoding WinAnsiEncoding
+        // does not set properly
+        if (glyphsRemoved > 2) {
+          warn('Switching TrueType encoding to MacRomanEncoding for ' +
+               this.name + ' font');
+          encoding = Encodings.MacRomanEncoding;
+        }
+
+        if (hasShortCmap && this.hasEncoding && !this.isSymbolicFont) {
+          // Re-encode short map encoding to unicode -- that simplifies the
+          // resolution of MacRoman encoded glyphs logic for TrueType fonts:
+          // copying all characters to private use area, all mapping all known
+          // glyphs to the unicodes. The glyphs and ids arrays will grow.
+          var usedUnicodes = [];
+          for (var i = 0, ii = glyphs.length; i < ii; i++) {
+            var code = glyphs[i].unicode;
+            var gid = ids[i];
+            glyphs[i].unicode += kCmapGlyphOffset;
+            toFontChar[code] = glyphs[i].unicode;
+
+            var glyphName = glyphNames[gid] || encoding[code];
+            if (glyphName in GlyphsUnicode) {
+              var unicode = GlyphsUnicode[glyphName];
+              if (unicode in usedUnicodes)
+                continue;
+
+              usedUnicodes[unicode] = true;
+              glyphs.push({
+                unicode: unicode,
+                code: glyphs[i].code
+              });
+              ids.push(gid);
+              toFontChar[code] = unicode;
+            }
+          }
+          this.useToFontChar = true;
+        } else if (!this.isSymbolicFont && (this.hasEncoding ||
+                    properties.glyphNames || differences.length > 0)) {
+          // Re-encode cmap encoding to unicode, based on the 'post' table data
+          // diffrence array or base encoding
+          var reverseMap = [];
+          for (var i = 0, ii = glyphs.length; i < ii; i++)
+            reverseMap[glyphs[i].unicode] = i;
+
+          var newGlyphUnicodes = [];
+          for (var i = 0, ii = glyphs.length; i < ii; i++) {
+            var code = glyphs[i].unicode;
+            var changeCode = false;
+            var gid = ids[i];
+
+            var glyphName = glyphNames[gid];
+            if (!glyphName) {
+              glyphName = differences[code] || encoding[code];
+              changeCode = true;
+            }
+            if (glyphName in GlyphsUnicode) {
+              var unicode = GlyphsUnicode[glyphName];
+              if (!unicode || reverseMap[unicode] === i)
+                continue; // unknown glyph name or in its own place
+
+              newGlyphUnicodes[i] = unicode;
+              if (changeCode)
+                toFontChar[code] = unicode;
+              delete reverseMap[code];
+            }
+          }
+          for (var index in newGlyphUnicodes) {
+            var unicode = newGlyphUnicodes[index];
+            if (reverseMap[unicode]) {
+              // avoiding assigning to the same unicode
+              glyphs[index].unicode = unusedUnicode++;
+              continue;
+            }
+            glyphs[index].unicode = unicode;
+            reverseMap[unicode] = index;
+          }
+          this.useToFontChar = true;
+        }
+
+        // Moving all symbolic font glyphs into 0xF000 - 0xF0FF range.
+        if (this.isSymbolicFont) {
+          for (var i = 0, ii = glyphs.length; i < ii; i++) {
+            var code = glyphs[i].unicode & 0xFF;
+            var fontCharCode = kSymbolicFontGlyphOffset | code;
+            glyphs[i].unicode = toFontChar[code] = fontCharCode;
+          }
+          this.useToFontChar = true;
+        }
+
+        createGlyphNameMap(glyphs, ids, properties);
+        this.glyphNameMap = properties.glyphNameMap;
+      }
+
+      // Converting glyphs and ids into font's cmap table
+      cmap.data = createCMapTable(glyphs, ids);
+      var unicodeIsEnabled = [];
+      for (var i = 0, ii = glyphs.length; i < ii; i++) {
+        unicodeIsEnabled[glyphs[i].unicode] = true;
+      }
+      this.unicodeIsEnabled = unicodeIsEnabled;
+
+      if (!os2) {
+        // extract some more font properties from the OpenType head and
+        // hhea tables; yMin and descent value are always negative
+        var override = {
+          unitsPerEm: int16([head.data[18], head.data[19]]),
+          yMax: int16([head.data[42], head.data[43]]),
+          yMin: int16([head.data[38], head.data[39]]) - 0x10000,
+          ascent: int16([hhea.data[4], hhea.data[5]]),
+          descent: int16([hhea.data[6], hhea.data[7]]) - 0x10000
+        };
+
+        tables.push({
+          tag: 'OS/2',
+          data: stringToArray(createOS2Table(properties, glyphs, override))
+        });
+      }
+
+      // Rewrite the 'post' table if needed
+      if (requiredTables.indexOf('post') != -1) {
+        tables.push({
+          tag: 'post',
+          data: stringToArray(createPostTable(properties))
+        });
+      }
+
+      // Rewrite the 'name' table if needed
+      if (requiredTables.indexOf('name') != -1) {
+        tables.push({
+          tag: 'name',
+          data: stringToArray(createNameTable(this.name))
+        });
+      }
+
+      // Tables needs to be written by ascendant alphabetic order
+      tables.sort(function tables_sort(a, b) {
+        return (a.tag > b.tag) - (a.tag < b.tag);
+      });
+
+      // rewrite the tables but tweak offsets
+      for (var i = 0, ii = tables.length; i < ii; i++) {
+        var table = tables[i];
+        var data = [];
+
+        var tableData = table.data;
+        for (var j = 0, jj = tableData.length; j < jj; j++)
+          data.push(tableData[j]);
+        createTableEntry(ttf, table.tag, data);
+      }
+
+      // Add the table datas
+      for (var i = 0, ii = tables.length; i < ii; i++) {
+        var table = tables[i];
+        var tableData = table.data;
+        ttf.file += arrayToString(tableData);
+
+        // 4-byte aligned data
+        while (ttf.file.length & 3)
+          ttf.file += String.fromCharCode(0);
+      }
+
+      return stringToArray(ttf.file);
+    },
+
+    convert: function Font_convert(fontName, font, properties) {
+      function isFixedPitch(glyphs) {
+        for (var i = 0, ii = glyphs.length - 1; i < ii; i++) {
+          if (glyphs[i] != glyphs[i + 1])
+            return false;
+        }
+        return true;
+      }
+
+      // The offsets object holds at the same time a representation of where
+      // to write the table entry information about a table and another offset
+      // representing the offset where to draw the actual data of a particular
+      // table
+      var kRequiredTablesCount = 9;
+
+      var otf = {
+        file: '',
+        virtualOffset: 9 * (4 * 4)
+      };
+
+      createOpenTypeHeader('\x4F\x54\x54\x4F', otf, 9);
+
+      var charstrings = font.charstrings;
+      properties.fixedPitch = isFixedPitch(charstrings);
+
+      var glyphNameMap = {};
+      for (var i = 0; i < charstrings.length; ++i) {
+        var charstring = charstrings[i];
+        glyphNameMap[charstring.glyph] = charstring.unicode;
+      }
+      this.glyphNameMap = glyphNameMap;
+
+      if (!properties.hasEncoding && (properties.subtype == 'Type1C' ||
+          properties.subtype == 'CIDFontType0C')) {
+        var encoding = [];
+        for (var i = 0; i < charstrings.length; ++i) {
+          var charstring = charstrings[i];
+          encoding[charstring.code] = charstring.glyph;
+        }
+        properties.baseEncoding = encoding;
+      }
+      if (properties.subtype == 'CIDFontType0C') {
+        var toFontChar = [];
+        for (var i = 0; i < charstrings.length; ++i) {
+          var charstring = charstrings[i];
+          toFontChar[charstring.code] = charstring.unicode;
+        }
+        this.toFontChar = toFontChar;
+      }
+
+      var fields = {
+        // PostScript Font Program
+        'CFF ': font.data,
+
+        // OS/2 and Windows Specific metrics
+        'OS/2': stringToArray(createOS2Table(properties, charstrings)),
+
+        // Character to glyphs mapping
+        'cmap': createCMapTable(charstrings.slice(),
+                                ('glyphIds' in font) ? font.glyphIds : null),
+
+        // Font header
+        'head': (function fontFieldsHead() {
+          return stringToArray(
+              '\x00\x01\x00\x00' + // Version number
+              '\x00\x00\x10\x00' + // fontRevision
+              '\x00\x00\x00\x00' + // checksumAdjustement
+              '\x5F\x0F\x3C\xF5' + // magicNumber
+              '\x00\x00' + // Flags
+              '\x03\xE8' + // unitsPerEM (defaulting to 1000)
+              '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + // creation date
+              '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + // modifification date
+              '\x00\x00' + // xMin
+              safeString16(properties.descent) + // yMin
+              '\x0F\xFF' + // xMax
+              safeString16(properties.ascent) + // yMax
+              string16(properties.italicAngle ? 2 : 0) + // macStyle
+              '\x00\x11' + // lowestRecPPEM
+              '\x00\x00' + // fontDirectionHint
+              '\x00\x00' + // indexToLocFormat
+              '\x00\x00');  // glyphDataFormat
+        })(),
+
+        // Horizontal header
+        'hhea': (function fontFieldsHhea() {
+          return stringToArray(
+              '\x00\x01\x00\x00' + // Version number
+              safeString16(properties.ascent) + // Typographic Ascent
+              safeString16(properties.descent) + // Typographic Descent
+              '\x00\x00' + // Line Gap
+              '\xFF\xFF' + // advanceWidthMax
+              '\x00\x00' + // minLeftSidebearing
+              '\x00\x00' + // minRightSidebearing
+              '\x00\x00' + // xMaxExtent
+              safeString16(properties.capHeight) + // caretSlopeRise
+              safeString16(Math.tan(properties.italicAngle) *
+                       properties.xHeight) + // caretSlopeRun
+              '\x00\x00' + // caretOffset
+              '\x00\x00' + // -reserved-
+              '\x00\x00' + // -reserved-
+              '\x00\x00' + // -reserved-
+              '\x00\x00' + // -reserved-
+              '\x00\x00' + // metricDataFormat
+              string16(charstrings.length + 1)); // Number of HMetrics
+        })(),
+
+        // Horizontal metrics
+        'hmtx': (function fontFieldsHmtx() {
+          var hmtx = '\x00\x00\x00\x00'; // Fake .notdef
+          for (var i = 0, ii = charstrings.length; i < ii; i++) {
+            var charstring = charstrings[i];
+            var width = 'width' in charstring ? charstring.width : 0;
+            hmtx += string16(width) + string16(0);
+          }
+          return stringToArray(hmtx);
+        })(),
+
+        // Maximum profile
+        'maxp': (function fontFieldsMaxp() {
+          return stringToArray(
+              '\x00\x00\x50\x00' + // Version number
+             string16(charstrings.length + 1)); // Num of glyphs
+        })(),
+
+        // Naming tables
+        'name': stringToArray(createNameTable(fontName)),
+
+        // PostScript informations
+        'post': stringToArray(createPostTable(properties))
+      };
+
+      for (var field in fields)
+        createTableEntry(otf, field, fields[field]);
+
+      for (var field in fields) {
+        var table = fields[field];
+        otf.file += arrayToString(table);
+      }
+
+      return stringToArray(otf.file);
+    },
+
+    buildToFontChar: function Font_buildToFontChar(toUnicode) {
+      var result = [];
+      var unusedUnicode = kCmapGlyphOffset;
+      for (var i = 0, ii = toUnicode.length; i < ii; i++) {
+        var unicode = toUnicode[i];
+        var fontCharCode = typeof unicode === 'object' ? unusedUnicode++ :
+          unicode;
+        if (typeof unicode !== 'undefined')
+          result[i] = fontCharCode;
+      }
+      return result;
+    },
+
+    rebuildToUnicode: function Font_rebuildToUnicode(properties) {
+      var firstChar = properties.firstChar, lastChar = properties.lastChar;
+      var map = [];
+      if (properties.composite) {
+        var isIdentityMap = this.cidToUnicode.length == 0;
+        for (var i = firstChar, ii = lastChar; i <= ii; i++) {
+          // TODO missing map the character according font's CMap
+          var cid = i;
+          map[i] = isIdentityMap ? cid : this.cidToUnicode[cid];
+        }
+      } else {
+        for (var i = firstChar, ii = lastChar; i <= ii; i++) {
+          var glyph = properties.differences[i];
+          if (!glyph)
+            glyph = properties.baseEncoding[i];
+          if (!!glyph && (glyph in GlyphsUnicode))
+            map[i] = GlyphsUnicode[glyph];
+        }
+      }
+      this.toUnicode = map;
+    },
+
+    loadCidToUnicode: function Font_loadCidToUnicode(properties) {
+      if (!properties.cidSystemInfo)
+        return;
+
+      var cidToUnicodeMap = [], unicodeToCIDMap = [];
+      this.cidToUnicode = cidToUnicodeMap;
+      this.unicodeToCID = unicodeToCIDMap;
+
+      var cidSystemInfo = properties.cidSystemInfo;
+      var cidToUnicode;
+      if (cidSystemInfo) {
+        cidToUnicode = CIDToUnicodeMaps[
+          cidSystemInfo.registry + '-' + cidSystemInfo.ordering];
+      }
+
+      if (!cidToUnicode)
+        return; // identity encoding
+
+      var cid = 1, i, j, k, ii;
+      for (i = 0, ii = cidToUnicode.length; i < ii; ++i) {
+        var unicode = cidToUnicode[i];
+        if (isArray(unicode)) {
+          var length = unicode.length;
+          for (j = 0; j < length; j++) {
+            cidToUnicodeMap[cid] = unicode[j];
+            unicodeToCIDMap[unicode[j]] = cid;
+          }
+          cid++;
+        } else if (typeof unicode === 'object') {
+          var fillLength = unicode.f;
+          if (fillLength) {
+            k = unicode.c;
+            for (j = 0; j < fillLength; ++j) {
+              cidToUnicodeMap[cid] = k;
+              unicodeToCIDMap[k] = cid;
+              cid++;
+              k++;
+            }
+          } else
+            cid += unicode.s;
+        } else if (unicode) {
+          cidToUnicodeMap[cid] = unicode;
+          unicodeToCIDMap[unicode] = cid;
+          cid++;
+        } else
+          cid++;
+      }
+    },
+
+    bindDOM: function Font_bindDOM(data) {
+      var fontName = this.loadedName;
+
+      // Add the font-face rule to the document
+      var url = ('url(data:' + this.mimetype + ';base64,' +
+                 PdfJS_window.window.btoa(data) + ');');
+      var rule = "@font-face { font-family:'" + fontName + "';src:" + url + '}';
+
+      var styleElement = PdfJS_window.document.createElement('style');
+      PdfJS_window.document.documentElement.getElementsByTagName('head')[0].appendChild(
+        styleElement);
+
+      var styleSheet = styleElement.sheet;
+      styleSheet.insertRule(rule, styleSheet.cssRules.length);
+
+      if (PDFJS.pdfBug && FontInspector.enabled)
+        FontInspector.fontAdded(this, url);
+
+      return rule;
+    },
+
+    get spaceWidth() {
+      // trying to estimate space character width
+      var possibleSpaceReplacements = ['space', 'minus', 'one', 'i'];
+      var width;
+      for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {
+        var glyphName = possibleSpaceReplacements[i];
+        // if possible, getting width by glyph name
+        if (glyphName in this.widths) {
+          width = this.widths[glyphName];
+          break;
+        }
+        var glyphUnicode = GlyphsUnicode[glyphName];
+        // finding the charcode via unicodeToCID map
+        var charcode = 0;
+        if (this.composite)
+          charcode = this.unicodeToCID[glyphUnicode];
+        // ... via toUnicode map
+        if (!charcode && 'toUnicode' in this)
+          charcode = this.toUnicode.indexOf(glyphUnicode);
+        // setting it to unicode if negative or undefined
+        if (!(charcode > 0))
+          charcode = glyphUnicode;
+        // trying to get width via charcode
+        width = this.widths[charcode];
+        if (width)
+          break; // the non-zero width found
+      }
+      width = (width || this.defaultWidth) * this.widthMultiplier;
+      return shadow(this, 'spaceWidth', width);
+    },
+
+    charToGlyph: function Font_charToGlyph(charcode) {
+      var fontCharCode, width, operatorList, disabled;
+
+      var width = this.widths[charcode];
+
+      switch (this.type) {
+        case 'CIDFontType0':
+          if (this.noUnicodeAdaptation) {
+            width = this.widths[this.unicodeToCID[charcode] || charcode];
+            fontCharCode = mapPrivateUseChars(charcode);
+            break;
+          }
+          fontCharCode = this.toFontChar[charcode] || charcode;
+          break;
+        case 'CIDFontType2':
+          if (this.noUnicodeAdaptation) {
+            width = this.widths[this.unicodeToCID[charcode] || charcode];
+            fontCharCode = mapPrivateUseChars(charcode);
+            break;
+          }
+          fontCharCode = this.toFontChar[charcode] || charcode;
+          break;
+        case 'Type1':
+          var glyphName = this.differences[charcode] || this.encoding[charcode];
+          if (!isNum(width))
+            width = this.widths[glyphName];
+          if (this.noUnicodeAdaptation) {
+            fontCharCode = mapPrivateUseChars(GlyphsUnicode[glyphName] ||
+              charcode);
+            break;
+          }
+          fontCharCode = this.glyphNameMap[glyphName] ||
+            GlyphsUnicode[glyphName] || charcode;
+          break;
+        case 'Type3':
+          var glyphName = this.differences[charcode] || this.encoding[charcode];
+          operatorList = this.charProcOperatorList[glyphName];
+          fontCharCode = charcode;
+          break;
+        case 'TrueType':
+          if (this.useToFontChar) {
+            fontCharCode = this.toFontChar[charcode] || charcode;
+            break;
+          }
+          var glyphName = this.differences[charcode] || this.encoding[charcode];
+          if (!glyphName)
+            glyphName = Encodings.StandardEncoding[charcode];
+          if (!isNum(width))
+            width = this.widths[glyphName];
+          if (this.noUnicodeAdaptation) {
+            fontCharCode = GlyphsUnicode[glyphName] || charcode;
+            break;
+          }
+          if (!this.hasEncoding || this.isSymbolicFont) {
+            fontCharCode = this.useToFontChar ? this.toFontChar[charcode] :
+              charcode;
+            break;
+          }
+
+          // MacRoman encoding address by re-encoding the cmap table
+          fontCharCode = glyphName in this.glyphNameMap ?
+            this.glyphNameMap[glyphName] : GlyphsUnicode[glyphName];
+          break;
+        default:
+          warn('Unsupported font type: ' + this.type);
+          break;
+      }
+
+      var unicodeChars = !('toUnicode' in this) ? charcode :
+        this.toUnicode[charcode] || charcode;
+      if (typeof unicodeChars === 'number')
+        unicodeChars = String.fromCharCode(unicodeChars);
+
+      width = (isNum(width) ? width : this.defaultWidth) * this.widthMultiplier;
+      disabled = this.unicodeIsEnabled ?
+        !this.unicodeIsEnabled[fontCharCode] : false;
+
+      return {
+        fontChar: String.fromCharCode(fontCharCode),
+        unicode: unicodeChars,
+        width: width,
+        disabled: disabled,
+        operatorList: operatorList
+      };
+    },
+
+    charsToGlyphs: function Font_charsToGlyphs(chars) {
+      var charsCache = this.charsCache;
+      var glyphs;
+
+      // if we translated this string before, just grab it from the cache
+      if (charsCache) {
+        glyphs = charsCache[chars];
+        if (glyphs)
+          return glyphs;
+      }
+
+      // lazily create the translation cache
+      if (!charsCache)
+        charsCache = this.charsCache = Object.create(null);
+
+      glyphs = [];
+
+      if (this.wideChars) {
+        // composite fonts have multi-byte strings convert the string from
+        // single-byte to multi-byte
+        // XXX assuming CIDFonts are two-byte - later need to extract the
+        // correct byte encoding according to the PDF spec
+        var length = chars.length - 1; // looping over two bytes at a time so
+                                       // loop should never end on the last byte
+        for (var i = 0; i < length; i++) {
+          var charcode = int16([chars.charCodeAt(i++), chars.charCodeAt(i)]);
+          var glyph = this.charToGlyph(charcode);
+          glyphs.push(glyph);
+          // placing null after each word break charcode (ASCII SPACE)
+          if (charcode == 0x20)
+            glyphs.push(null);
+        }
+      }
+      else {
+        for (var i = 0, ii = chars.length; i < ii; ++i) {
+          var charcode = chars.charCodeAt(i);
+          var glyph = this.charToGlyph(charcode);
+          glyphs.push(glyph);
+          if (charcode == 0x20)
+            glyphs.push(null);
+        }
+      }
+
+      // Enter the translated string into the cache
+      return (charsCache[chars] = glyphs);
+    }
+  };
+
+  return Font;
+})();
+
+/*
+ * Type1Parser encapsulate the needed code for parsing a Type1 font
+ * program. Some of its logic depends on the Type2 charstrings
+ * structure.
+ */
+var Type1Parser = function type1Parser() {
+  /*
+   * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence
+   * of Plaintext Bytes. The function took a key as a parameter which can be
+   * for decrypting the eexec block of for decoding charStrings.
+   */
+  var kEexecEncryptionKey = 55665;
+  var kCharStringsEncryptionKey = 4330;
+
+  function decrypt(stream, key, discardNumber) {
+    var r = key, c1 = 52845, c2 = 22719;
+    var decryptedString = [];
+
+    var value = '';
+    var count = stream.length;
+    for (var i = 0; i < count; i++) {
+      value = stream[i];
+      decryptedString[i] = value ^ (r >> 8);
+      r = ((value + r) * c1 + c2) & ((1 << 16) - 1);
+    }
+    return decryptedString.slice(discardNumber);
+  }
+
+  /*
+   * CharStrings are encoded following the the CharString Encoding sequence
+   * describe in Chapter 6 of the "Adobe Type1 Font Format" specification.
+   * The value in a byte indicates a command, a number, or subsequent bytes
+   * that are to be interpreted in a special way.
+   *
+   * CharString Number Encoding:
+   *  A CharString byte containing the values from 32 through 255 inclusive
+   *  indicate an integer. These values are decoded in four ranges.
+   *
+   * 1. A CharString byte containing a value, v, between 32 and 246 inclusive,
+   * indicate the integer v - 139. Thus, the integer values from -107 through
+   * 107 inclusive may be encoded in single byte.
+   *
+   * 2. A CharString byte containing a value, v, between 247 and 250 inclusive,
+   * indicates an integer involving the next byte, w, according to the formula:
+   * [(v - 247) x 256] + w + 108
+   *
+   * 3. A CharString byte containing a value, v, between 251 and 254 inclusive,
+   * indicates an integer involving the next byte, w, according to the formula:
+   * -[(v - 251) * 256] - w - 108
+   *
+   * 4. A CharString containing the value 255 indicates that the next 4 bytes
+   * are a two complement signed integer. The first of these bytes contains the
+   * highest order bits, the second byte contains the next higher order bits
+   * and the fourth byte contain the lowest order bits.
+   *
+   *
+   * CharString Command Encoding:
+   *  CharStrings commands are encoded in 1 or 2 bytes.
+   *
+   *  Single byte commands are encoded in 1 byte that contains a value between
+   *  0 and 31 inclusive.
+   *  If a command byte contains the value 12, then the value in the next byte
+   *  indicates a command. This "escape" mechanism allows many extra commands
+   * to be encoded and this encoding technique helps to minimize the length of
+   * the charStrings.
+   */
+  var charStringDictionary = {
+    '1': 'hstem',
+    '3': 'vstem',
+    '4': 'vmoveto',
+    '5': 'rlineto',
+    '6': 'hlineto',
+    '7': 'vlineto',
+    '8': 'rrcurveto',
+
+    // closepath is a Type1 command that do not take argument and is useless
+    // in Type2 and it can simply be ignored.
+    '9': null, // closepath
+
+    '10': 'callsubr',
+
+    // return is normally used inside sub-routines to tells to the execution
+    // flow that it can be back to normal.
+    // During the translation process Type1 charstrings will be flattened and
+    // sub-routines will be embedded directly into the charstring directly, so
+    // this can be ignored safely.
+    '11': 'return',
+
+    '12': {
+      // dotsection is a Type1 command to specify some hinting feature for dots
+      // that do not take a parameter and it can safely be ignored for Type2.
+      '0': null, // dotsection
+
+      // [vh]stem3 are Type1 only and Type2 supports [vh]stem with multiple
+      // parameters, so instead of returning [vh]stem3 take a shortcut and
+      // return [vhstem] instead.
+      '1': 'vstem',
+      '2': 'hstem',
+
+      // Type1 only command with command not (yet) built-in ,throw an error
+      '6': -1, // seac
+      '7': -1, // sbw
+
+      '11': 'sub',
+      '12': 'div',
+
+      // callothersubr is a mechanism to make calls on the postscript
+      // interpreter, this is not supported by Type2 charstring but hopefully
+      // most of the default commands can be ignored safely.
+      '16': 'callothersubr',
+
+      '17': 'pop',
+
+      // setcurrentpoint sets the current point to x, y without performing a
+      // moveto (this is a one shot positionning command). This is used only
+      // with the return of an OtherSubrs call.
+      // TODO Implement the OtherSubrs charstring embedding and replace this
+      // call by a no-op, like 2 'pop' commands for example.
+      '33': null // setcurrentpoint
+    },
+    '13': 'hsbw',
+    '14': 'endchar',
+    '21': 'rmoveto',
+    '22': 'hmoveto',
+    '30': 'vhcurveto',
+    '31': 'hvcurveto'
+  };
+
+  var kEscapeCommand = 12;
+
+  function decodeCharString(array) {
+    var charstring = [];
+    var lsb = 0;
+    var width = 0;
+    var flexState = 0;
+
+    var value = '';
+    var count = array.length;
+    for (var i = 0; i < count; i++) {
+      value = array[i];
+
+      if (value < 32) {
+        var command = null;
+        if (value == kEscapeCommand) {
+          var escape = array[++i];
+
+          // TODO Clean this code
+          if (escape == 16) {
+            var index = charstring.pop();
+            var argc = charstring.pop();
+            for (var j = 0; j < argc; j++)
+              charstring.push('drop');
+
+            // If the flex mechanism is not used in a font program, Adobe
+            // states that entries 0, 1 and 2 can simply be replaced by
+            // {}, which means that we can simply ignore them.
+            if (index < 3) {
+              continue;
+            }
+
+            // This is the same things about hint replacement, if it is not used
+            // entry 3 can be replaced by {3}
+            // TODO support hint replacment
+            if (index == 3) {
+              charstring.push(3);
+              i++;
+              continue;
+            }
+          } else if (escape == 17 || escape == 33) {
+            // pop or setcurrentpoint commands can be ignored
+            // since we are not doing callothersubr
+            continue;
+          } else if (!kHintingEnabled && (escape == 1 || escape == 2)) {
+            charstring.push('drop', 'drop', 'drop', 'drop', 'drop', 'drop');
+            continue;
+          }
+
+          command = charStringDictionary['12'][escape];
+        } else {
+          // TODO Clean this code
+          if (value == 13) { // hsbw
+            if (charstring.length == 2) {
+              lsb = charstring[0];
+              width = charstring[1];
+              charstring.splice(0, 1);
+            } else if (charstring.length == 4 && charstring[3] == 'div') {
+              lsb = charstring[0];
+              width = charstring[1] / charstring[2];
+              charstring.splice(0, 1);
+            } else if (charstring.length == 4 && charstring[2] == 'div') {
+              lsb = charstring[0] / charstring[1];
+              width = charstring[3];
+              charstring.splice(0, 3);
+            } else {
+              error('Unsupported hsbw format: ' + charstring);
+            }
+
+            charstring.push(lsb, 'hmoveto');
+            continue;
+          } else if (value == 10) { // callsubr
+            if (charstring[charstring.length - 1] < 3) { // subr #0..2
+              var subrNumber = charstring.pop();
+              switch (subrNumber) {
+                case 1:
+                  flexState = 1; // prepare for flex coordinates
+                  break;
+                case 2:
+                  flexState = 2; // flex in progress
+                  break;
+                case 0:
+                  // type2 flex command does not need final coords
+                  charstring.push('exch', 'drop', 'exch', 'drop');
+                  charstring.push('flex');
+                  flexState = 0;
+                  break;
+              }
+              continue;
+            }
+          } else if (value == 21 && flexState > 0) {
+            if (flexState > 1)
+              continue; // ignoring rmoveto
+            value = 5; // first segment replacing with rlineto
+          } else if (!kHintingEnabled && (value == 1 || value == 3)) {
+            charstring.push('drop', 'drop');
+            continue;
+          }
+          command = charStringDictionary[value];
+        }
+
+        // Some charstring commands are meaningless in Type2 and will return
+        // a null, let's just ignored them
+        if (!command && i < count) {
+          continue;
+        } else if (!command) {
+          break;
+        } else if (command == -1) {
+          warn('Support for Type1 command ' + value +
+                ' (' + escape + ') is not implemented in charstring: ' +
+                charstring);
+          if (value == 12) {
+            // we know how to ignore only some the Type1 commands
+            switch (escape) {
+              case 7:
+                charstring.push('drop', 'drop', 'drop', 'drop');
+                continue;
+              case 8:
+                charstring.push('drop');
+                continue;
+            }
+          }
+        }
+
+        value = command;
+      } else if (value <= 246) {
+        value = value - 139;
+      } else if (value <= 250) {
+        value = ((value - 247) * 256) + array[++i] + 108;
+      } else if (value <= 254) {
+        value = -((value - 251) * 256) - array[++i] - 108;
+      } else {
+        value = (array[++i] & 0xff) << 24 | (array[++i] & 0xff) << 16 |
+                (array[++i] & 0xff) << 8 | (array[++i] & 0xff) << 0;
+      }
+
+      charstring.push(value);
+    }
+
+    return { charstring: charstring, width: width, lsb: lsb };
+  }
+
+  /*
+   * Returns an object containing a Subrs array and a CharStrings
+   * array extracted from and eexec encrypted block of data
+   */
+  function readNumberArray(str, index) {
+    var start = index;
+    while (str[index++] != '[')
+      start++;
+    start++;
+
+    var count = 0;
+    while (str[index++] != ']')
+      count++;
+
+    str = str.substr(start, count);
+
+    str = str.trim();
+    // Remove adjacent spaces
+    str = str.replace(/\s+/g, ' ');
+
+    var array = str.split(' ');
+    for (var i = 0, ii = array.length; i < ii; i++)
+      array[i] = parseFloat(array[i] || 0);
+    return array;
+  }
+
+  function readNumber(str, index) {
+    while (str[index] == ' ')
+      index++;
+
+    var start = index;
+
+    var count = 0;
+    while (str[index++] != ' ')
+      count++;
+
+    return parseFloat(str.substr(start, count) || 0);
+  }
+
+  function isSeparator(c) {
+    return c == ' ' || c == '\n' || c == '\x0d';
+  }
+
+  this.extractFontProgram = function Type1Parser_extractFontProgram(stream) {
+    var eexec = decrypt(stream, kEexecEncryptionKey, 4);
+    var eexecStr = '';
+    for (var i = 0, ii = eexec.length; i < ii; i++)
+      eexecStr += String.fromCharCode(eexec[i]);
+
+    var glyphsSection = false, subrsSection = false;
+    var program = {
+      subrs: [],
+      charstrings: [],
+      properties: {
+        'privateData': {
+          'lenIV': 4
+        }
+      }
+    };
+
+    var glyph = '';
+    var token = '';
+    var length = 0;
+
+    var c = '';
+    var count = eexecStr.length;
+    for (var i = 0; i < count; i++) {
+      var getToken = function getToken() {
+        while (i < count && isSeparator(eexecStr[i]))
+          ++i;
+
+        var token = '';
+        while (i < count && !isSeparator(eexecStr[i]))
+          token += eexecStr[i++];
+
+        return token;
+      };
+      var c = eexecStr[i];
+
+      if ((glyphsSection || subrsSection) &&
+          (token == 'RD' || token == '-|')) {
+        i++;
+        var data = eexec.slice(i, i + length);
+        var lenIV = program.properties.privateData['lenIV'];
+        var encoded = decrypt(data, kCharStringsEncryptionKey, lenIV);
+        var str = decodeCharString(encoded);
+
+        if (glyphsSection) {
+          program.charstrings.push({
+            glyph: glyph,
+            data: str.charstring,
+            lsb: str.lsb,
+            width: str.width
+          });
+        } else {
+          program.subrs.push(str.charstring);
+        }
+        i += length;
+        token = '';
+      } else if (isSeparator(c)) {
+        length = parseInt(token, 10);
+        token = '';
+      } else {
+        token += c;
+        if (!glyphsSection) {
+          switch (token) {
+            case '/CharString':
+              glyphsSection = true;
+              break;
+            case '/Subrs':
+              ++i;
+              var num = parseInt(getToken(), 10);
+              getToken(); // read in 'array'
+              for (var j = 0; j < num; ++j) {
+                var t = getToken(); // read in 'dup'
+                if (t == 'ND' || t == '|-' || t == 'noaccess')
+                  break;
+                var index = parseInt(getToken(), 10);
+                if (index > j)
+                  j = index;
+                var length = parseInt(getToken(), 10);
+                getToken(); // read in 'RD'
+                var data = eexec.slice(i + 1, i + 1 + length);
+                var lenIV = program.properties.privateData['lenIV'];
+                var encoded = decrypt(data, kCharStringsEncryptionKey, lenIV);
+                var str = decodeCharString(encoded);
+                i = i + 1 + length;
+                t = getToken(); // read in 'NP'
+                if (t == 'noaccess')
+                  getToken(); // read in 'put'
+                program.subrs[index] = str.charstring;
+              }
+              break;
+            case '/BlueValues':
+            case '/OtherBlues':
+            case '/FamilyBlues':
+            case '/FamilyOtherBlues':
+            case '/StemSnapH':
+            case '/StemSnapV':
+              program.properties.privateData[token.substring(1)] =
+                readNumberArray(eexecStr, i + 1);
+              break;
+            case '/StdHW':
+            case '/StdVW':
+              program.properties.privateData[token.substring(1)] =
+                readNumberArray(eexecStr, i + 2)[0];
+              break;
+            case '/BlueShift':
+            case '/lenIV':
+            case '/BlueFuzz':
+            case '/BlueScale':
+            case '/LanguageGroup':
+            case '/ExpansionFactor':
+              program.properties.privateData[token.substring(1)] =
+                readNumber(eexecStr, i + 1);
+              break;
+          }
+        } else if (c == '/') {
+          token = glyph = '';
+          while ((c = eexecStr[++i]) != ' ')
+            glyph += c;
+        }
+      }
+    }
+
+    return program;
+  };
+
+  this.extractFontHeader = function Type1Parser_extractFontHeader(stream,
+                                                                  properties) {
+    var headerString = '';
+    for (var i = 0, ii = stream.length; i < ii; i++)
+      headerString += String.fromCharCode(stream[i]);
+
+    var token = '';
+    var count = headerString.length;
+    for (var i = 0; i < count; i++) {
+      var getToken = function getToken() {
+        var character = headerString[i];
+        while (i < count && (isSeparator(character) || character == '/'))
+          character = headerString[++i];
+
+        var token = '';
+        while (i < count && !(isSeparator(character) || character == '/')) {
+          token += character;
+          character = headerString[++i];
+        }
+
+        return token;
+      };
+
+      var c = headerString[i];
+      if (isSeparator(c)) {
+        switch (token) {
+          case '/FontMatrix':
+            var matrix = readNumberArray(headerString, i + 1);
+
+            // The FontMatrix is in unitPerEm, so make it pixels
+            for (var j = 0, jj = matrix.length; j < jj; j++)
+              matrix[j] *= 1000;
+
+            // Make the angle into the right direction
+            matrix[2] *= -1;
+
+            properties.fontMatrix = matrix;
+            break;
+          case '/Encoding':
+            var encodingArg = getToken();
+            var encoding;
+            if (!/^\d+$/.test(encodingArg)) {
+              // encoding name is specified
+              encoding = Encodings[encodingArg];
+            } else {
+              encoding = [];
+              var size = parseInt(encodingArg, 10);
+              getToken(); // read in 'array'
+
+              for (var j = 0; j < size; j++) {
+                var token = getToken();
+                if (token == 'dup') {
+                  var index = parseInt(getToken(), 10);
+                  var glyph = getToken();
+                  encoding[index] = glyph;
+                  getToken(); // read the in 'put'
+                }
+              }
+            }
+            if (!properties.hasEncoding && encoding) {
+              properties.baseEncoding = encoding;
+              break;
+            }
+            break;
+        }
+        token = '';
+      } else {
+        token += c;
+      }
+    }
+  };
+};
+
+/**
+ * The CFF class takes a Type1 file and wrap it into a
+ * 'Compact Font Format' which itself embed Type2 charstrings.
+ */
+var CFFStandardStrings = [
+  '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',
+  'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus',
+  'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four',
+  'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less',
+  'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
+  'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+  'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum',
+  'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
+  'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
+  'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent',
+  'sterling', 'fraction', 'yen', 'florin', 'section', 'currency',
+  'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft',
+  'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl',
+  'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase',
+  'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown',
+  'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent',
+  'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash',
+  'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae',
+  'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior',
+  'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn',
+  'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters',
+  'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior',
+  'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring',
+  'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave',
+  'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute',
+  'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute',
+  'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron',
+  'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde',
+  'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute',
+  'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex',
+  'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex',
+  'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron', 'exclamsmall',
+  'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall',
+  'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', '266 ff',
+  'onedotenleader', 'zerooldstyle', 'oneoldstyle', 'twooldstyle',
+  'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle',
+  'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior',
+  'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior',
+  'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior',
+  'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior',
+  'tsuperior', 'ff', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior',
+  'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall',
+  'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall',
+  'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall',
+  'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall',
+  'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah',
+  'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall',
+  'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall',
+  'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior',
+  'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'questiondownsmall', 'oneeighth',
+  'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds',
+  'zerosuperior', 'foursuperior', 'fivesuperior', 'sixsuperior',
+  'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior',
+  'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior',
+  'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior',
+  'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior',
+  'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall',
+  'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall',
+  'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall',
+  'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall',
+  'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall',
+  'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall',
+  'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall',
+  'Thornsmall', 'Ydieresissmall', '001.000', '001.001', '001.002', '001.003',
+  'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold'
+];
+
+var type1Parser = new Type1Parser();
+
+// Type1Font is also a CIDFontType0.
+var Type1Font = function Type1Font(name, file, properties) {
+  // Get the data block containing glyphs and subrs informations
+  var headerBlock = file.getBytes(properties.length1);
+  type1Parser.extractFontHeader(headerBlock, properties);
+
+  // Decrypt the data blocks and retrieve it's content
+  var eexecBlock = file.getBytes(properties.length2);
+  var data = type1Parser.extractFontProgram(eexecBlock);
+  for (var info in data.properties)
+    properties[info] = data.properties[info];
+
+  var charstrings = this.getOrderedCharStrings(data.charstrings, properties);
+  var type2Charstrings = this.getType2Charstrings(charstrings);
+  var subrs = this.getType2Subrs(data.subrs);
+
+  this.charstrings = charstrings;
+  this.data = this.wrap(name, type2Charstrings, this.charstrings,
+                        subrs, properties);
+};
+
+Type1Font.prototype = {
+  createCFFIndexHeader: function Type1Font_createCFFIndexHeader(objects,
+                                                                isByte) {
+    // First 2 bytes contains the number of objects contained into this index
+    var count = objects.length;
+
+    // If there is no object, just create an array saying that with another
+    // offset byte.
+    if (count == 0)
+      return '\x00\x00\x00';
+
+    var data = String.fromCharCode((count >> 8) & 0xFF, count & 0xff);
+
+    // Next byte contains the offset size use to reference object in the file
+    // Actually we're using 0x04 to be sure to be able to store everything
+    // without thinking of it while coding.
+    data += '\x04';
+
+    // Add another offset after this one because we need a new offset
+    var relativeOffset = 1;
+    for (var i = 0; i < count + 1; i++) {
+      data += String.fromCharCode((relativeOffset >>> 24) & 0xFF,
+                                  (relativeOffset >> 16) & 0xFF,
+                                  (relativeOffset >> 8) & 0xFF,
+                                  relativeOffset & 0xFF);
+
+      if (objects[i])
+        relativeOffset += objects[i].length;
+    }
+
+    for (var i = 0; i < count; i++) {
+      for (var j = 0, jj = objects[i].length; j < jj; j++)
+        data += isByte ? String.fromCharCode(objects[i][j] & 0xFF) :
+                objects[i][j];
+    }
+    return data;
+  },
+
+  encodeNumber: function Type1Font_encodeNumber(value) {
+    // some of the fonts has ouf-of-range values
+    // they are just arithmetic overflows
+    // make sanitizer happy
+    value |= 0;
+    if (value >= -32768 && value <= 32767) {
+      return '\x1c' +
+             String.fromCharCode((value >> 8) & 0xFF) +
+             String.fromCharCode(value & 0xFF);
+    } else {
+      return '\x1d' +
+             String.fromCharCode((value >> 24) & 0xFF) +
+             String.fromCharCode((value >> 16) & 0xFF) +
+             String.fromCharCode((value >> 8) & 0xFF) +
+             String.fromCharCode(value & 0xFF);
+    }
+  },
+
+  getOrderedCharStrings: function Type1Font_getOrderedCharStrings(glyphs,
+                                                            properties) {
+    var charstrings = [];
+    var i, length, glyphName;
+    var unusedUnicode = kCmapGlyphOffset;
+    for (i = 0, length = glyphs.length; i < length; i++) {
+      var item = glyphs[i];
+      var glyphName = item.glyph;
+      var unicode = glyphName in GlyphsUnicode ?
+        GlyphsUnicode[glyphName] : unusedUnicode++;
+      charstrings.push({
+        glyph: glyphName,
+        unicode: unicode,
+        gid: i,
+        charstring: item.data,
+        width: item.width,
+        lsb: item.lsb
+      });
+    }
+
+    charstrings.sort(function charstrings_sort(a, b) {
+      return a.unicode - b.unicode;
+    });
+    return charstrings;
+  },
+
+  getType2Charstrings: function Type1Font_getType2Charstrings(
+                                  type1Charstrings) {
+    var type2Charstrings = [];
+    var count = type1Charstrings.length;
+    for (var i = 0; i < count; i++) {
+      var charstring = type1Charstrings[i].charstring;
+      type2Charstrings.push(this.flattenCharstring(charstring.slice(),
+                                                   this.commandsMap));
+    }
+    return type2Charstrings;
+  },
+
+  getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {
+    var bias = 0;
+    var count = type1Subrs.length;
+    if (count < 1240)
+      bias = 107;
+    else if (count < 33900)
+      bias = 1131;
+    else
+      bias = 32768;
+
+    // Add a bunch of empty subrs to deal with the Type2 bias
+    var type2Subrs = [];
+    for (var i = 0; i < bias; i++)
+      type2Subrs.push([0x0B]);
+
+    for (var i = 0; i < count; i++) {
+      var subr = type1Subrs[i];
+      if (!subr)
+        subr = [0x0B];
+
+      type2Subrs.push(this.flattenCharstring(subr, this.commandsMap));
+    }
+
+    return type2Subrs;
+  },
+
+  /*
+   * Flatten the commands by interpreting the postscript code and replacing
+   * every 'callsubr', 'callothersubr' by the real commands.
+   */
+  commandsMap: {
+    'hstem': 1,
+    'vstem': 3,
+    'vmoveto': 4,
+    'rlineto': 5,
+    'hlineto': 6,
+    'vlineto': 7,
+    'rrcurveto': 8,
+    'callsubr': 10,
+    'return': 11,
+    'sub': [12, 11],
+    'div': [12, 12],
+    'exch': [12, 28],
+    'flex': [12, 35],
+    'drop' : [12, 18],
+    'endchar': 14,
+    'rmoveto': 21,
+    'hmoveto': 22,
+    'vhcurveto': 30,
+    'hvcurveto': 31
+  },
+
+  flattenCharstring: function Type1Font_flattenCharstring(charstring, map) {
+    // charstring changes size - can't cache .length in loop
+    for (var i = 0; i < charstring.length; i++) {
+      var command = charstring[i];
+      if (command.charAt) {
+        var cmd = map[command];
+        assert(cmd, 'Unknow command: ' + command);
+
+        if (isArray(cmd))
+          charstring.splice(i++, 1, cmd[0], cmd[1]);
+        else
+          charstring[i] = cmd;
+      } else {
+        // Type1 charstring use a division for number above 32000
+        if (command > 32000) {
+          var divisor = charstring[i + 1];
+          command /= divisor;
+          charstring.splice(i, 3, 28, command >> 8, command & 0xff);
+        } else {
+          charstring.splice(i, 1, 28, command >> 8, command & 0xff);
+        }
+        i += 2;
+      }
+    }
+    return charstring;
+  },
+
+  wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) {
+    var fields = {
+      // major version, minor version, header size, offset size
+      'header': '\x01\x00\x04\x04',
+
+      'names': this.createCFFIndexHeader([name]),
+
+      'topDict': (function topDict(self) {
+        return function cffWrapTopDict() {
+          var header = '\x00\x01\x01\x01';
+          var dict =
+              '\xf8\x1b\x00' + // version
+              '\xf8\x1c\x01' + // Notice
+              '\xf8\x1d\x02' + // FullName
+              '\xf8\x1e\x03' + // FamilyName
+              '\xf8\x1f\x04' +  // Weight
+              '\x1c\x00\x00\x10'; // Encoding
+
+          var boundingBox = properties.bbox;
+          for (var i = 0, ii = boundingBox.length; i < ii; i++)
+            dict += self.encodeNumber(boundingBox[i]);
+          dict += '\x05'; // FontBBox;
+
+          var offset = fields.header.length +
+                       fields.names.length +
+                       (header.length + 1) +
+                       (dict.length + (4 + 4)) +
+                       fields.strings.length +
+                       fields.globalSubrs.length;
+
+          // If the offset if over 32767, encodeNumber is going to return
+          // 5 bytes to encode the position instead of 3.
+          if ((offset + fields.charstrings.length) > 32767) {
+            offset += 9;
+          } else {
+            offset += 7;
+          }
+
+          dict += self.encodeNumber(offset) + '\x0f'; // Charset
+
+          offset = offset + (glyphs.length * 2) + 1;
+          dict += self.encodeNumber(offset) + '\x11'; // Charstrings
+
+          offset = offset + fields.charstrings.length;
+          dict += self.encodeNumber(fields.privateData.length);
+          dict += self.encodeNumber(offset) + '\x12'; // Private
+
+          return header + String.fromCharCode(dict.length + 1) + dict;
+        };
+      })(this),
+
+      'strings': (function strings(self) {
+        var strings = [
+          'Version 0.11',         // Version
+          'See original notice',  // Notice
+          name,                   // FullName
+          name,                   // FamilyName
+          'Medium'                // Weight
+        ];
+        return self.createCFFIndexHeader(strings);
+      })(this),
+
+      'globalSubrs': this.createCFFIndexHeader([]),
+
+      'charset': (function charset(self) {
+        var charsetString = '\x00'; // Encoding
+
+        var count = glyphs.length;
+        for (var i = 0; i < count; i++) {
+          var index = CFFStandardStrings.indexOf(charstrings[i].glyph);
+          // Some characters like asterikmath && circlecopyrt are
+          // missing from the original strings, for the moment let's
+          // map them to .notdef and see later if it cause any
+          // problems
+          if (index == -1)
+            index = 0;
+
+          charsetString += String.fromCharCode(index >> 8, index & 0xff);
+        }
+        return charsetString;
+      })(this),
+
+      'charstrings': this.createCFFIndexHeader([[0x8B, 0x0E]].concat(glyphs),
+                                               true),
+
+      'privateData': (function cffWrapPrivate(self) {
+        var data =
+            '\x8b\x14' + // defaultWidth
+            '\x8b\x15';  // nominalWidth
+        var fieldMap = {
+          BlueValues: '\x06',
+          OtherBlues: '\x07',
+          FamilyBlues: '\x08',
+          FamilyOtherBlues: '\x09',
+          StemSnapH: '\x0c\x0c',
+          StemSnapV: '\x0c\x0d',
+          BlueShift: '\x0c\x0a',
+          BlueFuzz: '\x0c\x0b',
+          BlueScale: '\x0c\x09',
+          LanguageGroup: '\x0c\x11',
+          ExpansionFactor: '\x0c\x18'
+        };
+        for (var field in fieldMap) {
+          if (!properties.privateData.hasOwnProperty(field))
+            continue;
+          var value = properties.privateData[field];
+
+          if (isArray(value)) {
+            data += self.encodeNumber(value[0]);
+            for (var i = 1, ii = value.length; i < ii; i++)
+              data += self.encodeNumber(value[i] - value[i - 1]);
+          } else {
+            data += self.encodeNumber(value);
+          }
+          data += fieldMap[field];
+        }
+
+        data += self.encodeNumber(data.length + 4) + '\x13'; // Subrs offset
+
+        return data;
+      })(this),
+
+      'localSubrs': this.createCFFIndexHeader(subrs, true)
+    };
+    fields.topDict = fields.topDict();
+
+
+    var cff = [];
+    for (var index in fields) {
+      var field = fields[index];
+      for (var i = 0, ii = field.length; i < ii; i++)
+        cff.push(field.charCodeAt(i));
+    }
+
+    return cff;
+  }
+};
+
+var CFFFont = (function CFFFontClosure() {
+  function CFFFont(file, properties) {
+    this.properties = properties;
+
+    var parser = new CFFParser(file, properties);
+    var cff = parser.parse();
+    var compiler = new CFFCompiler(cff);
+    this.readExtra(cff);
+    try {
+      this.data = compiler.compile();
+    } catch (e) {
+      warn('Failed to compile font ' + properties.loadedName);
+      // There may have just been an issue with the compiler, set the data
+      // anyway and hope the font loaded.
+      this.data = file;
+    }
+  }
+
+  CFFFont.prototype = {
+    readExtra: function CFFFont_readExtra(cff) {
+      // charstrings contains info about glyphs (one element per glyph
+      // containing mappings for {unicode, width})
+      var charset = cff.charset.charset;
+      var encoding = cff.encoding ? cff.encoding.encoding : null;
+      var charstrings = this.getCharStrings(charset, encoding);
+
+      // create the mapping between charstring and glyph id
+      var glyphIds = [];
+      for (var i = 0, ii = charstrings.length; i < ii; i++)
+        glyphIds.push(charstrings[i].gid);
+
+      this.charstrings = charstrings;
+      this.glyphIds = glyphIds;
+    },
+    getCharStrings: function CFFFont_getCharStrings(charsets, encoding) {
+      var charstrings = [];
+      var unicodeUsed = [];
+      var unassignedUnicodeItems = [];
+      var inverseEncoding = [];
+      // CID fonts don't have an encoding.
+      if (encoding !== null)
+        for (var charcode in encoding)
+          inverseEncoding[encoding[charcode]] = charcode | 0;
+      else
+        inverseEncoding = charsets;
+      for (var i = 0, ii = charsets.length; i < ii; i++) {
+        var glyph = charsets[i];
+        if (glyph == '.notdef')
+          continue;
+
+        var code = inverseEncoding[i];
+        if (!code || isSpecialUnicode(code)) {
+          unassignedUnicodeItems.push(i);
+          continue;
+        }
+        charstrings.push({
+          unicode: code,
+          code: code,
+          gid: i,
+          glyph: glyph
+        });
+        unicodeUsed[code] = true;
+      }
+
+      var nextUnusedUnicode = kCmapGlyphOffset;
+      for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; ++j) {
+        var i = unassignedUnicodeItems[j];
+        // giving unicode value anyway
+        while (nextUnusedUnicode in unicodeUsed)
+          nextUnusedUnicode++;
+        var unicode = nextUnusedUnicode++;
+        charstrings.push({
+          unicode: unicode,
+          code: inverseEncoding[i] || 0,
+          gid: i,
+          glyph: charsets[i]
+        });
+      }
+
+      // sort the array by the unicode value (again)
+      charstrings.sort(function getCharStringsSort(a, b) {
+        return a.unicode - b.unicode;
+      });
+      return charstrings;
+    }
+  };
+
+  return CFFFont;
+})();
+
+var CFFParser = (function CFFParserClosure() {
+  function CFFParser(file, properties) {
+    this.bytes = file.getBytes();
+    this.properties = properties;
+  }
+  CFFParser.prototype = {
+    parse: function CFFParser_parse() {
+      var properties = this.properties;
+      var cff = new CFF();
+      this.cff = cff;
+
+      // The first five sections must be in order, all the others are reached
+      // via offsets contained in one of the below.
+      var header = this.parseHeader();
+      var nameIndex = this.parseIndex(header.endPos);
+      var topDictIndex = this.parseIndex(nameIndex.endPos);
+      var stringIndex = this.parseIndex(topDictIndex.endPos);
+      var globalSubrIndex = this.parseIndex(stringIndex.endPos);
+
+      var topDictParsed = this.parseDict(topDictIndex.obj.get(0));
+      var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);
+
+      cff.header = header.obj;
+      cff.names = this.parseNameIndex(nameIndex.obj);
+      cff.strings = this.parseStringIndex(stringIndex.obj);
+      cff.topDict = topDict;
+      cff.globalSubrIndex = globalSubrIndex.obj;
+
+      this.parsePrivateDict(cff.topDict);
+
+      cff.isCIDFont = topDict.hasName('ROS');
+
+      var charStringOffset = topDict.getByName('CharStrings');
+      cff.charStrings = this.parseCharStrings(charStringOffset);
+
+      var charset, encoding;
+      if (cff.isCIDFont) {
+        var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj;
+        for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {
+          var dictRaw = fdArrayIndex.get(i);
+          var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw),
+                                         cff.strings);
+          this.parsePrivateDict(fontDict);
+          cff.fdArray.push(fontDict);
+        }
+        // cid fonts don't have an encoding
+        encoding = null;
+        charset = this.parseCharsets(topDict.getByName('charset'),
+                                     cff.charStrings.count, cff.strings, true);
+        cff.fdSelect = this.parseFDSelect(topDict.getByName('FDSelect'),
+                                             cff.charStrings.count);
+      } else {
+        charset = this.parseCharsets(topDict.getByName('charset'),
+                                     cff.charStrings.count, cff.strings, false);
+        encoding = this.parseEncoding(topDict.getByName('Encoding'),
+                                      properties,
+                                      cff.strings, charset.charset);
+      }
+      cff.charset = charset;
+      cff.encoding = encoding;
+
+      return cff;
+    },
+    parseHeader: function CFFParser_parseHeader() {
+      var bytes = this.bytes;
+      var offset = 0;
+
+      while (bytes[offset] != 1)
+        ++offset;
+
+      if (offset != 0) {
+        warn('cff data is shifted');
+        bytes = bytes.subarray(offset);
+        this.bytes = bytes;
+      }
+      var major = bytes[0];
+      var minor = bytes[1];
+      var hdrSize = bytes[2];
+      var offSize = bytes[3];
+      var header = new CFFHeader(major, minor, hdrSize, offSize);
+      return {obj: header, endPos: hdrSize};
+    },
+    parseDict: function CFFParser_parseDict(dict) {
+      var pos = 0;
+
+      function parseOperand() {
+        var value = dict[pos++];
+        if (value === 30) {
+          return parseFloatOperand(pos);
+        } else if (value === 28) {
+          value = dict[pos++];
+          value = (value << 8) | dict[pos++];
+          return value;
+        } else if (value === 29) {
+          value = dict[pos++];
+          value = (value << 8) | dict[pos++];
+          value = (value << 8) | dict[pos++];
+          value = (value << 8) | dict[pos++];
+          return value;
+        } else if (value >= 32 && value <= 246) {
+          return value - 139;
+        } else if (value >= 247 && value <= 250) {
+          return ((value - 247) * 256) + dict[pos++] + 108;
+        } else if (value >= 251 && value <= 254) {
+          return -((value - 251) * 256) - dict[pos++] - 108;
+        } else {
+          error('255 is not a valid DICT command');
+        }
+        return -1;
+      }
+
+      function parseFloatOperand() {
+        var str = '';
+        var eof = 15;
+        var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8',
+            '9', '.', 'E', 'E-', null, '-'];
+        var length = dict.length;
+        while (pos < length) {
+          var b = dict[pos++];
+          var b1 = b >> 4;
+          var b2 = b & 15;
+
+          if (b1 == eof)
+            break;
+          str += lookup[b1];
+
+          if (b2 == eof)
+            break;
+          str += lookup[b2];
+        }
+        return parseFloat(str);
+      }
+
+      var operands = [];
+      var entries = [];
+
+      var pos = 0;
+      var end = dict.length;
+      while (pos < end) {
+        var b = dict[pos];
+        if (b <= 21) {
+          if (b === 12)
+            b = (b << 8) | dict[++pos];
+          entries.push([b, operands]);
+          operands = [];
+          ++pos;
+        } else {
+          operands.push(parseOperand());
+        }
+      }
+      return entries;
+    },
+    parseIndex: function CFFParser_parseIndex(pos) {
+      var cffIndex = new CFFIndex();
+      var bytes = this.bytes;
+      var count = (bytes[pos++] << 8) | bytes[pos++];
+      var offsets = [];
+      var start = pos;
+      var end = pos;
+
+      if (count != 0) {
+        var offsetSize = bytes[pos++];
+        // add 1 for offset to determine size of last object
+        var startPos = pos + ((count + 1) * offsetSize) - 1;
+
+        for (var i = 0, ii = count + 1; i < ii; ++i) {
+          var offset = 0;
+          for (var j = 0; j < offsetSize; ++j) {
+            offset <<= 8;
+            offset += bytes[pos++];
+          }
+          offsets.push(startPos + offset);
+        }
+        end = offsets[count];
+      }
+      for (var i = 0, ii = offsets.length - 1; i < ii; ++i) {
+        var offsetStart = offsets[i];
+        var offsetEnd = offsets[i + 1];
+        cffIndex.add(bytes.subarray(offsetStart, offsetEnd));
+      }
+      return {obj: cffIndex, endPos: end};
+    },
+    parseNameIndex: function CFFParser_parseNameIndex(index) {
+      var names = [];
+      for (var i = 0, ii = index.count; i < ii; ++i) {
+        var name = index.get(i);
+        // OTS doesn't allow names to be over 127 characters.
+        var length = Math.min(name.length, 127);
+        var data = [];
+        // OTS also only permits certain characters in the name.
+        for (var j = 0; j < length; ++j) {
+          var c = name[j];
+          if (j === 0 && c === 0) {
+            data[j] = c;
+            continue;
+          }
+          if ((c < 33 || c > 126) || c === 91 /* [ */ || c === 93 /* ] */ ||
+              c === 40 /* ( */ || c === 41 /* ) */ || c === 123 /* { */ ||
+              c === 125 /* } */ || c === 60 /* < */ || c === 62 /* > */ ||
+              c === 47 /* / */ || c === 37 /* % */) {
+            data[j] = 95;
+            continue;
+          }
+          data[j] = c;
+        }
+        names.push(String.fromCharCode.apply(null, data));
+      }
+      return names;
+    },
+    parseStringIndex: function CFFParser_parseStringIndex(index) {
+      var strings = new CFFStrings();
+      for (var i = 0, ii = index.count; i < ii; ++i) {
+        var data = index.get(i);
+        strings.add(String.fromCharCode.apply(null, data));
+      }
+      return strings;
+    },
+    createDict: function CFFParser_createDict(type, dict, strings) {
+      var cffDict = new type(strings);
+      var types = cffDict.types;
+
+      for (var i = 0, ii = dict.length; i < ii; ++i) {
+        var pair = dict[i];
+        var key = pair[0];
+        var value = pair[1];
+        cffDict.setByKey(key, value);
+      }
+      return cffDict;
+    },
+    parseCharStrings: function CFFParser_parseCharStrings(charStringOffset) {
+      var charStrings = this.parseIndex(charStringOffset).obj;
+      // The CFF specification state that the 'dotsection' command
+      // (12, 0) is deprecated and treated as a no-op, but all Type2
+      // charstrings processors should support them. Unfortunately
+      // the font sanitizer don't. As a workaround the sequence (12, 0)
+      // is replaced by a useless (0, hmoveto).
+      var count = charStrings.count;
+      for (var i = 0; i < count; i++) {
+        var charstring = charStrings.get(i);
+
+        var data = charstring;
+        var length = data.length;
+        for (var j = 0; j <= length; j) {
+          var value = data[j++];
+          if (value == 12 && data[j++] == 0) {
+              data[j - 2] = 139;
+              data[j - 1] = 22;
+          } else if (value === 28) {
+            j += 2;
+          } else if (value >= 247 && value <= 254) {
+            j++;
+          } else if (value == 255) {
+            j += 4;
+          }
+        }
+      }
+      return charStrings;
+    },
+    parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) {
+      // no private dict, do nothing
+      if (!parentDict.hasName('Private'))
+        return;
+      var privateOffset = parentDict.getByName('Private');
+      // make sure the params are formatted correctly
+      if (!isArray(privateOffset) || privateOffset.length !== 2) {
+        parentDict.removeByName('Private');
+        return;
+      }
+      var size = privateOffset[0];
+      var offset = privateOffset[1];
+      // remove empty dicts or ones that refer to invalid location
+      if (size === 0 || offset >= this.bytes.length) {
+        parentDict.removeByName('Private');
+        return;
+      }
+
+      var privateDictEnd = offset + size;
+      var dictData = this.bytes.subarray(offset, privateDictEnd);
+      var dict = this.parseDict(dictData);
+      var privateDict = this.createDict(CFFPrivateDict, dict,
+                                        parentDict.strings);
+      parentDict.privateDict = privateDict;
+
+      // Parse the Subrs index also since it's relative to the private dict.
+      if (!privateDict.getByName('Subrs'))
+        return;
+      var subrsOffset = privateDict.getByName('Subrs');
+      var relativeOffset = offset + subrsOffset;
+      // Validate the offset.
+      if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {
+        privateDict.removeByName('Subrs');
+        return;
+      }
+      var subrsIndex = this.parseIndex(relativeOffset);
+      privateDict.subrsIndex = subrsIndex.obj;
+    },
+    parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) {
+      if (pos == 0) {
+        return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE,
+                              ISOAdobeCharset);
+      } else if (pos == 1) {
+        return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT,
+                              ExpertCharset);
+      } else if (pos == 2) {
+        return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET,
+                              ExpertSubsetCharset);
+      }
+
+      var bytes = this.bytes;
+      var start = pos;
+      var format = bytes[pos++];
+      var charset = ['.notdef'];
+
+      // subtract 1 for the .notdef glyph
+      length -= 1;
+
+      switch (format) {
+        case 0:
+          for (var i = 0; i < length; i++) {
+            var id = (bytes[pos++] << 8) | bytes[pos++];
+            charset.push(cid ? id : strings.get(id));
+          }
+          break;
+        case 1:
+          while (charset.length <= length) {
+            var id = (bytes[pos++] << 8) | bytes[pos++];
+            var count = bytes[pos++];
+            for (var i = 0; i <= count; i++)
+              charset.push(cid ? id++ : strings.get(id++));
+          }
+          break;
+        case 2:
+          while (charset.length <= length) {
+            var id = (bytes[pos++] << 8) | bytes[pos++];
+            var count = (bytes[pos++] << 8) | bytes[pos++];
+            for (var i = 0; i <= count; i++)
+              charset.push(cid ? id++ : strings.get(id++));
+          }
+          break;
+        default:
+          error('Unknown charset format');
+      }
+      // Raw won't be needed if we actually compile the charset.
+      var end = pos;
+      var raw = bytes.subarray(start, end);
+
+      return new CFFCharset(false, format, charset, raw);
+    },
+    parseEncoding: function CFFParser_parseEncoding(pos,
+                                                    properties,
+                                                    strings,
+                                                    charset) {
+      var encoding = {};
+      var bytes = this.bytes;
+      var predefined = false;
+      var hasSupplement = false;
+      var format;
+      var raw = null;
+
+      function readSupplement() {
+        var supplementsCount = bytes[pos++];
+        for (var i = 0; i < supplementsCount; i++) {
+          var code = bytes[pos++];
+          var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);
+          encoding[code] = properties.differences.indexOf(strings.get(sid));
+        }
+      }
+
+      if (pos == 0 || pos == 1) {
+        predefined = true;
+        format = pos;
+        var gid = 1;
+        var baseEncoding = pos ? Encodings.ExpertEncoding :
+                                 Encodings.StandardEncoding;
+        for (var i = 0, ii = charset.length; i < ii; i++) {
+          var index = baseEncoding.indexOf(charset[i]);
+          if (index != -1)
+            encoding[index] = gid++;
+        }
+      } else {
+        var dataStart = pos;
+        var format = bytes[pos++];
+        switch (format & 0x7f) {
+          case 0:
+            var glyphsCount = bytes[pos++];
+            for (var i = 1; i <= glyphsCount; i++)
+              encoding[bytes[pos++]] = i;
+            break;
+
+          case 1:
+            var rangesCount = bytes[pos++];
+            var gid = 1;
+            for (var i = 0; i < rangesCount; i++) {
+              var start = bytes[pos++];
+              var left = bytes[pos++];
+              for (var j = start; j <= start + left; j++)
+                encoding[j] = gid++;
+            }
+            break;
+
+          default:
+            error('Unknow encoding format: ' + format + ' in CFF');
+            break;
+        }
+        var dataEnd = pos;
+        if (format & 0x80) {
+          // The font sanitizer does not support CFF encoding with a
+          // supplement, since the encoding is not really used to map
+          // between gid to glyph, let's overwrite what is declared in
+          // the top dictionary to let the sanitizer think the font use
+          // StandardEncoding, that's a lie but that's ok.
+          bytes[dataStart] &= 0x7f;
+          readSupplement();
+          hasSupplement = true;
+        }
+        raw = bytes.subarray(dataStart, dataEnd);
+      }
+      format = format & 0x7f;
+      return new CFFEncoding(predefined, format, encoding, raw);
+    },
+    parseFDSelect: function CFFParser_parseFDSelect(pos, length) {
+      var start = pos;
+      var bytes = this.bytes;
+      var format = bytes[pos++];
+      var fdSelect = [];
+      switch (format) {
+        case 0:
+          for (var i = 0; i < length; ++i) {
+            var id = bytes[pos++];
+            fdSelect.push(id);
+          }
+          break;
+        case 3:
+          var rangesCount = (bytes[pos++] << 8) | bytes[pos++];
+          for (var i = 0; i < rangesCount; ++i) {
+            var first = (bytes[pos++] << 8) | bytes[pos++];
+            var fdIndex = bytes[pos++];
+            var next = (bytes[pos] << 8) | bytes[pos + 1];
+            for (var j = first; j < next; ++j)
+              fdSelect.push(fdIndex);
+          }
+          // Advance past the sentinel(next).
+          pos += 2;
+          break;
+        default:
+          error('Unknown fdselect format ' + format);
+          break;
+      }
+      var end = pos;
+      return new CFFFDSelect(fdSelect, bytes.subarray(start, end));
+    }
+  };
+  return CFFParser;
+})();
+
+// Compact Font Format
+var CFF = (function CFFClosure() {
+  function CFF() {
+    this.header = null;
+    this.names = [];
+    this.topDict = null;
+    this.strings = new CFFStrings();
+    this.globalSubrIndex = null;
+
+    // The following could really be per font, but since we only have one font
+    // store them here.
+    this.encoding = null;
+    this.charset = null;
+    this.charStrings = null;
+    this.fdArray = [];
+    this.fdSelect = null;
+
+    this.isCIDFont = false;
+  }
+  return CFF;
+})();
+
+var CFFHeader = (function CFFHeaderClosure() {
+  function CFFHeader(major, minor, hdrSize, offSize) {
+    this.major = major;
+    this.minor = minor;
+    this.hdrSize = hdrSize;
+    this.offSize = offSize;
+  }
+  return CFFHeader;
+})();
+
+var CFFStrings = (function CFFStringsClosure() {
+  function CFFStrings() {
+    this.strings = [];
+  }
+  CFFStrings.prototype = {
+    get: function CFFStrings_get(index) {
+      if (index >= 0 && index <= 390)
+        return CFFStandardStrings[index];
+      if (index - 391 <= this.strings.length)
+        return this.strings[index - 391];
+      return CFFStandardStrings[0];
+    },
+    add: function CFFStrings_add(value) {
+      this.strings.push(value);
+    },
+    get count() {
+      return this.strings.length;
+    }
+  };
+  return CFFStrings;
+})();
+
+var CFFIndex = (function CFFIndexClosure() {
+  function CFFIndex() {
+    this.objects = [];
+    this.length = 0;
+  }
+  CFFIndex.prototype = {
+    add: function CFFIndex_add(data) {
+      this.length += data.length;
+      this.objects.push(data);
+    },
+    get: function CFFIndex_get(index) {
+      return this.objects[index];
+    },
+    get count() {
+      return this.objects.length;
+    }
+  };
+  return CFFIndex;
+})();
+
+var CFFDict = (function CFFDictClosure() {
+  function CFFDict(tables, strings) {
+    this.keyToNameMap = tables.keyToNameMap;
+    this.nameToKeyMap = tables.nameToKeyMap;
+    this.defaults = tables.defaults;
+    this.types = tables.types;
+    this.opcodes = tables.opcodes;
+    this.order = tables.order;
+    this.strings = strings;
+    this.values = {};
+  }
+  CFFDict.prototype = {
+    // value should always be an array
+    setByKey: function CFFDict_setByKey(key, value) {
+      if (!(key in this.keyToNameMap))
+        return false;
+      // ignore empty values
+      if (value.length === 0)
+        return true;
+      var type = this.types[key];
+      // remove the array wrapping these types of values
+      if (type === 'num' || type === 'sid' || type === 'offset')
+        value = value[0];
+      this.values[key] = value;
+      return true;
+    },
+    hasName: function CFFDict_hasName(name) {
+      return this.nameToKeyMap[name] in this.values;
+    },
+    getByName: function CFFDict_getByName(name) {
+      if (!(name in this.nameToKeyMap))
+        error('Invalid dictionary name "' + name + '"');
+      var key = this.nameToKeyMap[name];
+      if (!(key in this.values))
+        return this.defaults[key];
+      return this.values[key];
+    },
+    removeByName: function CFFDict_removeByName(name) {
+      delete this.values[this.nameToKeyMap[name]];
+    }
+  };
+  CFFDict.createTables = function CFFDict_createTables(layout) {
+    var tables = {
+      keyToNameMap: {},
+      nameToKeyMap: {},
+      defaults: {},
+      types: {},
+      opcodes: {},
+      order: []
+    };
+    for (var i = 0, ii = layout.length; i < ii; ++i) {
+      var entry = layout[i];
+      var key = isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];
+      tables.keyToNameMap[key] = entry[1];
+      tables.nameToKeyMap[entry[1]] = key;
+      tables.types[key] = entry[2];
+      tables.defaults[key] = entry[3];
+      tables.opcodes[key] = isArray(entry[0]) ? entry[0] : [entry[0]];
+      tables.order.push(key);
+    }
+    return tables;
+  };
+  return CFFDict;
+})();
+
+var CFFTopDict = (function CFFTopDictClosure() {
+  var layout = [
+    [[12, 30], 'ROS', ['sid', 'sid', 'num'], null],
+    [[12, 20], 'SyntheticBase', 'num', null],
+    [0, 'version', 'sid', null],
+    [1, 'Notice', 'sid', null],
+    [[12, 0], 'Copyright', 'sid', null],
+    [2, 'FullName', 'sid', null],
+    [3, 'FamilyName', 'sid', null],
+    [4, 'Weight', 'sid', null],
+    [[12, 1], 'isFixedPitch', 'num', 0],
+    [[12, 2], 'ItalicAngle', 'num', 0],
+    [[12, 3], 'UnderlinePosition', 'num', -100],
+    [[12, 4], 'UnderlineThickness', 'num', 50],
+    [[12, 5], 'PaintType', 'num', 0],
+    [[12, 6], 'CharstringType', 'num', 2],
+    [[12, 7], 'FontMatrix', ['num', 'num', 'num', 'num', 'num', 'num'],
+                            [.001, 0, 0, .001, 0, 0]],
+    [13, 'UniqueID', 'num', null],
+    [5, 'FontBBox', ['num', 'num', 'num', 'num'], [0, 0, 0, 0]],
+    [[12, 8], 'StrokeWidth', 'num', 0],
+    [14, 'XUID', 'array', null],
+    [15, 'charset', 'offset', 0],
+    [16, 'Encoding', 'offset', 0],
+    [17, 'CharStrings', 'offset', 0],
+    [18, 'Private', ['offset', 'offset'], null],
+    [[12, 21], 'PostScript', 'sid', null],
+    [[12, 22], 'BaseFontName', 'sid', null],
+    [[12, 23], 'BaseFontBlend', 'delta', null],
+    [[12, 31], 'CIDFontVersion', 'num', 0],
+    [[12, 32], 'CIDFontRevision', 'num', 0],
+    [[12, 33], 'CIDFontType', 'num', 0],
+    [[12, 34], 'CIDCount', 'num', 8720],
+    [[12, 35], 'UIDBase', 'num', null],
+    [[12, 36], 'FDArray', 'offset', null],
+    [[12, 37], 'FDSelect', 'offset', null],
+    [[12, 38], 'FontName', 'sid', null]];
+  var tables = null;
+  function CFFTopDict(strings) {
+    if (tables === null)
+      tables = CFFDict.createTables(layout);
+    CFFDict.call(this, tables, strings);
+    this.privateDict = null;
+  }
+  CFFTopDict.prototype = Object.create(CFFDict.prototype);
+  return CFFTopDict;
+})();
+
+var CFFPrivateDict = (function CFFPrivateDictClosure() {
+  var layout = [
+    [6, 'BlueValues', 'delta', null],
+    [7, 'OtherBlues', 'delta', null],
+    [8, 'FamilyBlues', 'delta', null],
+    [9, 'FamilyOtherBlues', 'delta', null],
+    [[12, 9], 'BlueScale', 'num', 0.039625],
+    [[12, 10], 'BlueShift', 'num', 7],
+    [[12, 11], 'BlueFuzz', 'num', 1],
+    [10, 'StdHW', 'num', null],
+    [11, 'StdVW', 'num', null],
+    [[12, 12], 'StemSnapH', 'delta', null],
+    [[12, 13], 'StemSnapV', 'delta', null],
+    [[12, 14], 'ForceBold', 'num', 0],
+    [[12, 17], 'LanguageGroup', 'num', 0],
+    [[12, 18], 'ExpansionFactor', 'num', 0.06],
+    [[12, 19], 'initialRandomSeed', 'num', 0],
+    [19, 'Subrs', 'offset', null],
+    [20, 'defaultWidthX', 'num', 0],
+    [21, 'nominalWidthX', 'num', 0]
+  ];
+  var tables = null;
+  function CFFPrivateDict(strings) {
+    if (tables === null)
+      tables = CFFDict.createTables(layout);
+    CFFDict.call(this, tables, strings);
+    this.subrsIndex = null;
+  }
+  CFFPrivateDict.prototype = Object.create(CFFDict.prototype);
+  return CFFPrivateDict;
+})();
+
+var CFFCharsetPredefinedTypes = {
+  ISO_ADOBE: 0,
+  EXPERT: 1,
+  EXPERT_SUBSET: 2
+};
+var CFFCharsetEmbeddedTypes = {
+  FORMAT0: 0,
+  FORMAT1: 1,
+  FORMAT2: 2
+};
+var CFFCharset = (function CFFCharsetClosure() {
+  function CFFCharset(predefined, format, charset, raw) {
+    this.predefined = predefined;
+    this.format = format;
+    this.charset = charset;
+    this.raw = raw;
+  }
+  return CFFCharset;
+})();
+
+var CFFEncodingPredefinedTypes = {
+  STANDARD: 0,
+  EXPERT: 1
+};
+var CFFCharsetEmbeddedTypes = {
+  FORMAT0: 0,
+  FORMAT1: 1
+};
+var CFFEncoding = (function CFFEncodingClosure() {
+  function CFFEncoding(predefined, format, encoding, raw) {
+    this.predefined = predefined;
+    this.format = format;
+    this.encoding = encoding;
+    this.raw = raw;
+  }
+  return CFFEncoding;
+})();
+
+var CFFFDSelect = (function CFFFDSelectClosure() {
+  function CFFFDSelect(fdSelect, raw) {
+    this.fdSelect = fdSelect;
+    this.raw = raw;
+  }
+  return CFFFDSelect;
+})();
+
+// Helper class to keep track of where an offset is within the data and helps
+// filling in that offset once it's known.
+var CFFOffsetTracker = (function CFFOffsetTrackerClosure() {
+  function CFFOffsetTracker() {
+    this.offsets = {};
+  }
+  CFFOffsetTracker.prototype = {
+    isTracking: function CFFOffsetTracker_isTracking(key) {
+      return key in this.offsets;
+    },
+    track: function CFFOffsetTracker_track(key, location) {
+      if (key in this.offsets)
+        error('Already tracking location of ' + key);
+      this.offsets[key] = location;
+    },
+    offset: function CFFOffsetTracker_offset(value) {
+      for (var key in this.offsets) {
+        this.offsets[key] += value;
+      }
+    },
+    setEntryLocation: function CFFOffsetTracker_setEntryLocation(key,
+                                                                 values,
+                                                                 output) {
+      if (!(key in this.offsets))
+        error('Not tracking location of ' + key);
+      var data = output.data;
+      var dataOffset = this.offsets[key];
+      var size = 5;
+      for (var i = 0, ii = values.length; i < ii; ++i) {
+        var offset0 = i * size + dataOffset;
+        var offset1 = offset0 + 1;
+        var offset2 = offset0 + 2;
+        var offset3 = offset0 + 3;
+        var offset4 = offset0 + 4;
+        // It's easy to screw up offsets so perform this sanity check.
+        if (data[offset0] !== 0x1d || data[offset1] !== 0 ||
+            data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0)
+          error('writing to an offset that is not empty');
+        var value = values[i];
+        data[offset0] = 0x1d;
+        data[offset1] = (value >> 24) & 0xFF;
+        data[offset2] = (value >> 16) & 0xFF;
+        data[offset3] = (value >> 8) & 0xFF;
+        data[offset4] = value & 0xFF;
+      }
+    }
+  };
+  return CFFOffsetTracker;
+})();
+
+// Takes a CFF and converts it to the binary representation.
+var CFFCompiler = (function CFFCompilerClosure() {
+  function stringToArray(str) {
+    var array = [];
+    for (var i = 0, ii = str.length; i < ii; ++i)
+      array[i] = str.charCodeAt(i);
+
+    return array;
+  };
+  function CFFCompiler(cff) {
+    this.cff = cff;
+  }
+  CFFCompiler.prototype = {
+    compile: function CFFCompiler_compile() {
+      var cff = this.cff;
+      var output = {
+        data: [],
+        length: 0,
+        add: function CFFCompiler_add(data) {
+          this.data = this.data.concat(data);
+          this.length = this.data.length;
+        }
+      };
+
+      // Compile the five entries that must be in order.
+      var header = this.compileHeader(cff.header);
+      output.add(header);
+
+      var nameIndex = this.compileNameIndex(cff.names);
+      output.add(nameIndex);
+
+      var compiled = this.compileTopDicts([cff.topDict], output.length);
+      output.add(compiled.output);
+      var topDictTracker = compiled.trackers[0];
+
+      var stringIndex = this.compileStringIndex(cff.strings.strings);
+      output.add(stringIndex);
+
+      var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);
+      output.add(globalSubrIndex);
+
+      // Now start on the other entries that have no specfic order.
+      if (cff.encoding && cff.topDict.hasName('Encoding')) {
+        if (cff.encoding.predefined) {
+          topDictTracker.setEntryLocation('Encoding', [cff.encoding.format],
+                                          output);
+        } else {
+          var encoding = this.compileEncoding(cff.encoding);
+          topDictTracker.setEntryLocation('Encoding', [output.length], output);
+          output.add(encoding);
+        }
+      }
+
+      if (cff.charset && cff.topDict.hasName('charset')) {
+        if (cff.charset.predefined) {
+          topDictTracker.setEntryLocation('charset', [cff.charset.format],
+                                          output);
+        } else {
+          var charset = this.compileCharset(cff.charset);
+          topDictTracker.setEntryLocation('charset', [output.length], output);
+          output.add(charset);
+        }
+      }
+
+      var charStrings = this.compileCharStrings(cff.charStrings);
+      topDictTracker.setEntryLocation('CharStrings', [output.length], output);
+      output.add(charStrings);
+
+      if (cff.isCIDFont) {
+        // For some reason FDSelect must be in front of FDArray on windows. OSX
+        // and linux don't seem to care.
+        topDictTracker.setEntryLocation('FDSelect', [output.length], output);
+        var fdSelect = this.compileFDSelect(cff.fdSelect.raw);
+        output.add(fdSelect);
+
+        var compiled = this.compileTopDicts(cff.fdArray, output.length);
+        topDictTracker.setEntryLocation('FDArray', [output.length], output);
+        output.add(compiled.output);
+        var fontDictTrackers = compiled.trackers;
+
+        this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);
+      }
+
+      this.compilePrivateDicts([cff.topDict], [topDictTracker], output);
+
+      return output.data;
+    },
+    encodeNumber: function CFFCompiler_encodeNumber(value) {
+      if (parseFloat(value) == parseInt(value) && !isNaN(value)) // isInt
+        return this.encodeInteger(value);
+      else
+        return this.encodeFloat(value);
+    },
+    encodeFloat: function CFFCompiler_encodeFloat(value) {
+      value = value.toString();
+      // Strip off the any leading zeros.
+      if (value.substr(0, 2) === '0.')
+        value = value.substr(1);
+      else if (value.substr(0, 3) === '-0.')
+        value = '-' + value.substr(2);
+      var nibbles = [];
+      for (var i = 0, ii = value.length; i < ii; ++i) {
+        var a = value.charAt(i), b = value.charAt(i + 1);
+        var nibble;
+        if (a === 'e' && b === '-') {
+          nibble = 0xc;
+          ++i;
+        } else if (a === '.') {
+          nibble = 0xa;
+        } else if (a === 'E') {
+          nibble = 0xb;
+        } else if (a === '-') {
+          nibble = 0xe;
+        } else {
+          nibble = a;
+        }
+        nibbles.push(nibble);
+      }
+      nibbles.push(0xf);
+      if (nibbles.length % 2)
+        nibbles.push(0xf);
+      var out = [30];
+      for (var i = 0, ii = nibbles.length; i < ii; i += 2)
+        out.push(nibbles[i] << 4 | nibbles[i + 1]);
+      return out;
+    },
+    encodeInteger: function CFFCompiler_encodeInteger(value) {
+      var code;
+      if (value >= -107 && value <= 107) {
+        code = [value + 139];
+      } else if (value >= 108 && value <= 1131) {
+        value = [value - 108];
+        code = [(value >> 8) + 247, value & 0xFF];
+      } else if (value >= -1131 && value <= -108) {
+        value = -value - 108;
+        code = [(value >> 8) + 251, value & 0xFF];
+      } else if (value >= -32768 && value <= 32767) {
+        code = [0x1c, (value >> 8) & 0xFF, value & 0xFF];
+      } else {
+        code = [0x1d,
+                (value >> 24) & 0xFF,
+                (value >> 16) & 0xFF,
+                (value >> 8) & 0xFF,
+                 value & 0xFF];
+      }
+      return code;
+    },
+    compileHeader: function CFFCompiler_compileHeader(header) {
+      return [
+        header.major,
+        header.minor,
+        header.hdrSize,
+        header.offSize
+      ];
+    },
+    compileNameIndex: function CFFCompiler_compileNameIndex(names) {
+      var nameIndex = new CFFIndex();
+      for (var i = 0, ii = names.length; i < ii; ++i)
+        nameIndex.add(stringToArray(names[i]));
+      return this.compileIndex(nameIndex);
+    },
+    compileTopDicts: function CFFCompiler_compileTopDicts(dicts, length) {
+      var fontDictTrackers = [];
+      var fdArrayIndex = new CFFIndex();
+      for (var i = 0, ii = dicts.length; i < ii; ++i) {
+        var fontDict = dicts[i];
+        var fontDictTracker = new CFFOffsetTracker();
+        var fontDictData = this.compileDict(fontDict, fontDictTracker);
+        fontDictTrackers.push(fontDictTracker);
+        fdArrayIndex.add(fontDictData);
+        fontDictTracker.offset(length);
+      }
+      fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);
+      return {
+        trackers: fontDictTrackers,
+        output: fdArrayIndex
+      };
+    },
+    compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts,
+                                                                  trackers,
+                                                                  output) {
+      for (var i = 0, ii = dicts.length; i < ii; ++i) {
+        var fontDict = dicts[i];
+        if (!fontDict.privateDict || !fontDict.hasName('Private'))
+          continue;
+        var privateDict = fontDict.privateDict;
+        var privateDictTracker = new CFFOffsetTracker();
+        var privateDictData = this.compileDict(privateDict, privateDictTracker);
+
+        privateDictTracker.offset(output.length);
+        trackers[i].setEntryLocation('Private',
+                                     [privateDictData.length, output.length],
+                                     output);
+        output.add(privateDictData);
+
+        if (privateDict.subrsIndex && privateDict.hasName('Subrs')) {
+          var subrs = this.compileIndex(privateDict.subrsIndex);
+          privateDictTracker.setEntryLocation('Subrs', [privateDictData.length],
+                                              output);
+          output.add(subrs);
+        }
+      }
+    },
+    compileDict: function CFFCompiler_compileDict(dict, offsetTracker) {
+      var out = [];
+      // The dictionary keys must be in a certain order.
+      var order = dict.order;
+      for (var i = 0; i < order.length; ++i) {
+        var key = order[i];
+        if (!(key in dict.values))
+          continue;
+        var values = dict.values[key];
+        var types = dict.types[key];
+        if (!isArray(types)) types = [types];
+        if (!isArray(values)) values = [values];
+
+        // Remove any empty dict values.
+        if (values.length === 0)
+          continue;
+
+        for (var j = 0, jj = types.length; j < jj; ++j) {
+          var type = types[j];
+          var value = values[j];
+          switch (type) {
+            case 'num':
+            case 'sid':
+              out = out.concat(this.encodeNumber(value));
+              break;
+            case 'offset':
+              // For offsets we just insert a 32bit integer so we don't have to
+              // deal with figuring out the length of the offset when it gets
+              // replaced later on by the compiler.
+              var name = dict.keyToNameMap[key];
+              // Some offsets have the offset and the length, so just record the
+              // position of the first one.
+              if (!offsetTracker.isTracking(name))
+                offsetTracker.track(name, out.length);
+              out = out.concat([0x1d, 0, 0, 0, 0]);
+              break;
+            case 'array':
+            case 'delta':
+              out = out.concat(this.encodeNumber(value));
+              for (var k = 1, kk = values.length; k < kk; ++k)
+                out = out.concat(this.encodeNumber(values[k]));
+              break;
+            default:
+              error('Unknown data type of ' + type);
+              break;
+          }
+        }
+        out = out.concat(dict.opcodes[key]);
+      }
+      return out;
+    },
+    compileStringIndex: function CFFCompiler_compileStringIndex(strings) {
+      var stringIndex = new CFFIndex();
+      for (var i = 0, ii = strings.length; i < ii; ++i)
+        stringIndex.add(stringToArray(strings[i]));
+      return this.compileIndex(stringIndex);
+    },
+    compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() {
+      var globalSubrIndex = this.cff.globalSubrIndex;
+      this.out.writeByteArray(this.compileIndex(globalSubrIndex));
+    },
+    compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) {
+      return this.compileIndex(charStrings);
+    },
+    compileCharset: function CFFCompiler_compileCharset(charset) {
+      return this.compileTypedArray(charset.raw);
+    },
+    compileEncoding: function CFFCompiler_compileEncoding(encoding) {
+      return this.compileTypedArray(encoding.raw);
+    },
+    compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) {
+      return this.compileTypedArray(fdSelect);
+    },
+    compileTypedArray: function CFFCompiler_compileTypedArray(data) {
+      var out = [];
+      for (var i = 0, ii = data.length; i < ii; ++i)
+        out[i] = data[i];
+      return out;
+    },
+    compileIndex: function CFFCompiler_compileIndex(index, trackers) {
+      trackers = trackers || [];
+      var objects = index.objects;
+      // First 2 bytes contains the number of objects contained into this index
+      var count = objects.length;
+
+      // If there is no object, just create an index. This technically
+      // should just be [0, 0] but OTS has an issue with that.
+      if (count == 0)
+        return [0, 0, 0];
+
+      var data = [(count >> 8) & 0xFF, count & 0xff];
+
+      var lastOffset = 1;
+      for (var i = 0; i < count; ++i)
+        lastOffset += objects[i].length;
+
+      var offsetSize;
+      if (lastOffset < 0x100)
+        offsetSize = 1;
+      else if (lastOffset < 0x10000)
+        offsetSize = 2;
+      else if (lastOffset < 0x1000000)
+        offsetSize = 3;
+      else
+        offsetSize = 4;
+
+      // Next byte contains the offset size use to reference object in the file
+      data.push(offsetSize);
+
+      // Add another offset after this one because we need a new offset
+      var relativeOffset = 1;
+      for (var i = 0; i < count + 1; i++) {
+        if (offsetSize === 1) {
+          data.push(relativeOffset & 0xFF);
+        } else if (offsetSize === 2) {
+          data.push((relativeOffset >> 8) & 0xFF,
+                     relativeOffset & 0xFF);
+        } else if (offsetSize === 3) {
+          data.push((relativeOffset >> 16) & 0xFF,
+                    (relativeOffset >> 8) & 0xFF,
+                     relativeOffset & 0xFF);
+        } else {
+          data.push((relativeOffset >>> 24) & 0xFF,
+                    (relativeOffset >> 16) & 0xFF,
+                    (relativeOffset >> 8) & 0xFF,
+                     relativeOffset & 0xFF);
+        }
+
+        if (objects[i])
+          relativeOffset += objects[i].length;
+      }
+      var offset = data.length;
+
+      for (var i = 0; i < count; i++) {
+        // Notify the tracker where the object will be offset in the data.
+        if (trackers[i])
+          trackers[i].offset(data.length);
+        for (var j = 0, jj = objects[i].length; j < jj; j++)
+          data.push(objects[i][j]);
+      }
+      return data;
+    }
+  };
+  return CFFCompiler;
+})();
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var GlyphsUnicode = {
+  A: 0x0041,
+  AE: 0x00C6,
+  AEacute: 0x01FC,
+  AEmacron: 0x01E2,
+  AEsmall: 0xF7E6,
+  Aacute: 0x00C1,
+  Aacutesmall: 0xF7E1,
+  Abreve: 0x0102,
+  Abreveacute: 0x1EAE,
+  Abrevecyrillic: 0x04D0,
+  Abrevedotbelow: 0x1EB6,
+  Abrevegrave: 0x1EB0,
+  Abrevehookabove: 0x1EB2,
+  Abrevetilde: 0x1EB4,
+  Acaron: 0x01CD,
+  Acircle: 0x24B6,
+  Acircumflex: 0x00C2,
+  Acircumflexacute: 0x1EA4,
+  Acircumflexdotbelow: 0x1EAC,
+  Acircumflexgrave: 0x1EA6,
+  Acircumflexhookabove: 0x1EA8,
+  Acircumflexsmall: 0xF7E2,
+  Acircumflextilde: 0x1EAA,
+  Acute: 0xF6C9,
+  Acutesmall: 0xF7B4,
+  Acyrillic: 0x0410,
+  Adblgrave: 0x0200,
+  Adieresis: 0x00C4,
+  Adieresiscyrillic: 0x04D2,
+  Adieresismacron: 0x01DE,
+  Adieresissmall: 0xF7E4,
+  Adotbelow: 0x1EA0,
+  Adotmacron: 0x01E0,
+  Agrave: 0x00C0,
+  Agravesmall: 0xF7E0,
+  Ahookabove: 0x1EA2,
+  Aiecyrillic: 0x04D4,
+  Ainvertedbreve: 0x0202,
+  Alpha: 0x0391,
+  Alphatonos: 0x0386,
+  Amacron: 0x0100,
+  Amonospace: 0xFF21,
+  Aogonek: 0x0104,
+  Aring: 0x00C5,
+  Aringacute: 0x01FA,
+  Aringbelow: 0x1E00,
+  Aringsmall: 0xF7E5,
+  Asmall: 0xF761,
+  Atilde: 0x00C3,
+  Atildesmall: 0xF7E3,
+  Aybarmenian: 0x0531,
+  B: 0x0042,
+  Bcircle: 0x24B7,
+  Bdotaccent: 0x1E02,
+  Bdotbelow: 0x1E04,
+  Becyrillic: 0x0411,
+  Benarmenian: 0x0532,
+  Beta: 0x0392,
+  Bhook: 0x0181,
+  Blinebelow: 0x1E06,
+  Bmonospace: 0xFF22,
+  Brevesmall: 0xF6F4,
+  Bsmall: 0xF762,
+  Btopbar: 0x0182,
+  C: 0x0043,
+  Caarmenian: 0x053E,
+  Cacute: 0x0106,
+  Caron: 0xF6CA,
+  Caronsmall: 0xF6F5,
+  Ccaron: 0x010C,
+  Ccedilla: 0x00C7,
+  Ccedillaacute: 0x1E08,
+  Ccedillasmall: 0xF7E7,
+  Ccircle: 0x24B8,
+  Ccircumflex: 0x0108,
+  Cdot: 0x010A,
+  Cdotaccent: 0x010A,
+  Cedillasmall: 0xF7B8,
+  Chaarmenian: 0x0549,
+  Cheabkhasiancyrillic: 0x04BC,
+  Checyrillic: 0x0427,
+  Chedescenderabkhasiancyrillic: 0x04BE,
+  Chedescendercyrillic: 0x04B6,
+  Chedieresiscyrillic: 0x04F4,
+  Cheharmenian: 0x0543,
+  Chekhakassiancyrillic: 0x04CB,
+  Cheverticalstrokecyrillic: 0x04B8,
+  Chi: 0x03A7,
+  Chook: 0x0187,
+  Circumflexsmall: 0xF6F6,
+  Cmonospace: 0xFF23,
+  Coarmenian: 0x0551,
+  Csmall: 0xF763,
+  D: 0x0044,
+  DZ: 0x01F1,
+  DZcaron: 0x01C4,
+  Daarmenian: 0x0534,
+  Dafrican: 0x0189,
+  Dcaron: 0x010E,
+  Dcedilla: 0x1E10,
+  Dcircle: 0x24B9,
+  Dcircumflexbelow: 0x1E12,
+  Dcroat: 0x0110,
+  Ddotaccent: 0x1E0A,
+  Ddotbelow: 0x1E0C,
+  Decyrillic: 0x0414,
+  Deicoptic: 0x03EE,
+  Delta: 0x2206,
+  Deltagreek: 0x0394,
+  Dhook: 0x018A,
+  Dieresis: 0xF6CB,
+  DieresisAcute: 0xF6CC,
+  DieresisGrave: 0xF6CD,
+  Dieresissmall: 0xF7A8,
+  Digammagreek: 0x03DC,
+  Djecyrillic: 0x0402,
+  Dlinebelow: 0x1E0E,
+  Dmonospace: 0xFF24,
+  Dotaccentsmall: 0xF6F7,
+  Dslash: 0x0110,
+  Dsmall: 0xF764,
+  Dtopbar: 0x018B,
+  Dz: 0x01F2,
+  Dzcaron: 0x01C5,
+  Dzeabkhasiancyrillic: 0x04E0,
+  Dzecyrillic: 0x0405,
+  Dzhecyrillic: 0x040F,
+  E: 0x0045,
+  Eacute: 0x00C9,
+  Eacutesmall: 0xF7E9,
+  Ebreve: 0x0114,
+  Ecaron: 0x011A,
+  Ecedillabreve: 0x1E1C,
+  Echarmenian: 0x0535,
+  Ecircle: 0x24BA,
+  Ecircumflex: 0x00CA,
+  Ecircumflexacute: 0x1EBE,
+  Ecircumflexbelow: 0x1E18,
+  Ecircumflexdotbelow: 0x1EC6,
+  Ecircumflexgrave: 0x1EC0,
+  Ecircumflexhookabove: 0x1EC2,
+  Ecircumflexsmall: 0xF7EA,
+  Ecircumflextilde: 0x1EC4,
+  Ecyrillic: 0x0404,
+  Edblgrave: 0x0204,
+  Edieresis: 0x00CB,
+  Edieresissmall: 0xF7EB,
+  Edot: 0x0116,
+  Edotaccent: 0x0116,
+  Edotbelow: 0x1EB8,
+  Efcyrillic: 0x0424,
+  Egrave: 0x00C8,
+  Egravesmall: 0xF7E8,
+  Eharmenian: 0x0537,
+  Ehookabove: 0x1EBA,
+  Eightroman: 0x2167,
+  Einvertedbreve: 0x0206,
+  Eiotifiedcyrillic: 0x0464,
+  Elcyrillic: 0x041B,
+  Elevenroman: 0x216A,
+  Emacron: 0x0112,
+  Emacronacute: 0x1E16,
+  Emacrongrave: 0x1E14,
+  Emcyrillic: 0x041C,
+  Emonospace: 0xFF25,
+  Encyrillic: 0x041D,
+  Endescendercyrillic: 0x04A2,
+  Eng: 0x014A,
+  Enghecyrillic: 0x04A4,
+  Enhookcyrillic: 0x04C7,
+  Eogonek: 0x0118,
+  Eopen: 0x0190,
+  Epsilon: 0x0395,
+  Epsilontonos: 0x0388,
+  Ercyrillic: 0x0420,
+  Ereversed: 0x018E,
+  Ereversedcyrillic: 0x042D,
+  Escyrillic: 0x0421,
+  Esdescendercyrillic: 0x04AA,
+  Esh: 0x01A9,
+  Esmall: 0xF765,
+  Eta: 0x0397,
+  Etarmenian: 0x0538,
+  Etatonos: 0x0389,
+  Eth: 0x00D0,
+  Ethsmall: 0xF7F0,
+  Etilde: 0x1EBC,
+  Etildebelow: 0x1E1A,
+  Euro: 0x20AC,
+  Ezh: 0x01B7,
+  Ezhcaron: 0x01EE,
+  Ezhreversed: 0x01B8,
+  F: 0x0046,
+  Fcircle: 0x24BB,
+  Fdotaccent: 0x1E1E,
+  Feharmenian: 0x0556,
+  Feicoptic: 0x03E4,
+  Fhook: 0x0191,
+  Fitacyrillic: 0x0472,
+  Fiveroman: 0x2164,
+  Fmonospace: 0xFF26,
+  Fourroman: 0x2163,
+  Fsmall: 0xF766,
+  G: 0x0047,
+  GBsquare: 0x3387,
+  Gacute: 0x01F4,
+  Gamma: 0x0393,
+  Gammaafrican: 0x0194,
+  Gangiacoptic: 0x03EA,
+  Gbreve: 0x011E,
+  Gcaron: 0x01E6,
+  Gcedilla: 0x0122,
+  Gcircle: 0x24BC,
+  Gcircumflex: 0x011C,
+  Gcommaaccent: 0x0122,
+  Gdot: 0x0120,
+  Gdotaccent: 0x0120,
+  Gecyrillic: 0x0413,
+  Ghadarmenian: 0x0542,
+  Ghemiddlehookcyrillic: 0x0494,
+  Ghestrokecyrillic: 0x0492,
+  Gheupturncyrillic: 0x0490,
+  Ghook: 0x0193,
+  Gimarmenian: 0x0533,
+  Gjecyrillic: 0x0403,
+  Gmacron: 0x1E20,
+  Gmonospace: 0xFF27,
+  Grave: 0xF6CE,
+  Gravesmall: 0xF760,
+  Gsmall: 0xF767,
+  Gsmallhook: 0x029B,
+  Gstroke: 0x01E4,
+  H: 0x0048,
+  H18533: 0x25CF,
+  H18543: 0x25AA,
+  H18551: 0x25AB,
+  H22073: 0x25A1,
+  HPsquare: 0x33CB,
+  Haabkhasiancyrillic: 0x04A8,
+  Hadescendercyrillic: 0x04B2,
+  Hardsigncyrillic: 0x042A,
+  Hbar: 0x0126,
+  Hbrevebelow: 0x1E2A,
+  Hcedilla: 0x1E28,
+  Hcircle: 0x24BD,
+  Hcircumflex: 0x0124,
+  Hdieresis: 0x1E26,
+  Hdotaccent: 0x1E22,
+  Hdotbelow: 0x1E24,
+  Hmonospace: 0xFF28,
+  Hoarmenian: 0x0540,
+  Horicoptic: 0x03E8,
+  Hsmall: 0xF768,
+  Hungarumlaut: 0xF6CF,
+  Hungarumlautsmall: 0xF6F8,
+  Hzsquare: 0x3390,
+  I: 0x0049,
+  IAcyrillic: 0x042F,
+  IJ: 0x0132,
+  IUcyrillic: 0x042E,
+  Iacute: 0x00CD,
+  Iacutesmall: 0xF7ED,
+  Ibreve: 0x012C,
+  Icaron: 0x01CF,
+  Icircle: 0x24BE,
+  Icircumflex: 0x00CE,
+  Icircumflexsmall: 0xF7EE,
+  Icyrillic: 0x0406,
+  Idblgrave: 0x0208,
+  Idieresis: 0x00CF,
+  Idieresisacute: 0x1E2E,
+  Idieresiscyrillic: 0x04E4,
+  Idieresissmall: 0xF7EF,
+  Idot: 0x0130,
+  Idotaccent: 0x0130,
+  Idotbelow: 0x1ECA,
+  Iebrevecyrillic: 0x04D6,
+  Iecyrillic: 0x0415,
+  Ifraktur: 0x2111,
+  Igrave: 0x00CC,
+  Igravesmall: 0xF7EC,
+  Ihookabove: 0x1EC8,
+  Iicyrillic: 0x0418,
+  Iinvertedbreve: 0x020A,
+  Iishortcyrillic: 0x0419,
+  Imacron: 0x012A,
+  Imacroncyrillic: 0x04E2,
+  Imonospace: 0xFF29,
+  Iniarmenian: 0x053B,
+  Iocyrillic: 0x0401,
+  Iogonek: 0x012E,
+  Iota: 0x0399,
+  Iotaafrican: 0x0196,
+  Iotadieresis: 0x03AA,
+  Iotatonos: 0x038A,
+  Ismall: 0xF769,
+  Istroke: 0x0197,
+  Itilde: 0x0128,
+  Itildebelow: 0x1E2C,
+  Izhitsacyrillic: 0x0474,
+  Izhitsadblgravecyrillic: 0x0476,
+  J: 0x004A,
+  Jaarmenian: 0x0541,
+  Jcircle: 0x24BF,
+  Jcircumflex: 0x0134,
+  Jecyrillic: 0x0408,
+  Jheharmenian: 0x054B,
+  Jmonospace: 0xFF2A,
+  Jsmall: 0xF76A,
+  K: 0x004B,
+  KBsquare: 0x3385,
+  KKsquare: 0x33CD,
+  Kabashkircyrillic: 0x04A0,
+  Kacute: 0x1E30,
+  Kacyrillic: 0x041A,
+  Kadescendercyrillic: 0x049A,
+  Kahookcyrillic: 0x04C3,
+  Kappa: 0x039A,
+  Kastrokecyrillic: 0x049E,
+  Kaverticalstrokecyrillic: 0x049C,
+  Kcaron: 0x01E8,
+  Kcedilla: 0x0136,
+  Kcircle: 0x24C0,
+  Kcommaaccent: 0x0136,
+  Kdotbelow: 0x1E32,
+  Keharmenian: 0x0554,
+  Kenarmenian: 0x053F,
+  Khacyrillic: 0x0425,
+  Kheicoptic: 0x03E6,
+  Khook: 0x0198,
+  Kjecyrillic: 0x040C,
+  Klinebelow: 0x1E34,
+  Kmonospace: 0xFF2B,
+  Koppacyrillic: 0x0480,
+  Koppagreek: 0x03DE,
+  Ksicyrillic: 0x046E,
+  Ksmall: 0xF76B,
+  L: 0x004C,
+  LJ: 0x01C7,
+  LL: 0xF6BF,
+  Lacute: 0x0139,
+  Lambda: 0x039B,
+  Lcaron: 0x013D,
+  Lcedilla: 0x013B,
+  Lcircle: 0x24C1,
+  Lcircumflexbelow: 0x1E3C,
+  Lcommaaccent: 0x013B,
+  Ldot: 0x013F,
+  Ldotaccent: 0x013F,
+  Ldotbelow: 0x1E36,
+  Ldotbelowmacron: 0x1E38,
+  Liwnarmenian: 0x053C,
+  Lj: 0x01C8,
+  Ljecyrillic: 0x0409,
+  Llinebelow: 0x1E3A,
+  Lmonospace: 0xFF2C,
+  Lslash: 0x0141,
+  Lslashsmall: 0xF6F9,
+  Lsmall: 0xF76C,
+  M: 0x004D,
+  MBsquare: 0x3386,
+  Macron: 0xF6D0,
+  Macronsmall: 0xF7AF,
+  Macute: 0x1E3E,
+  Mcircle: 0x24C2,
+  Mdotaccent: 0x1E40,
+  Mdotbelow: 0x1E42,
+  Menarmenian: 0x0544,
+  Mmonospace: 0xFF2D,
+  Msmall: 0xF76D,
+  Mturned: 0x019C,
+  Mu: 0x039C,
+  N: 0x004E,
+  NJ: 0x01CA,
+  Nacute: 0x0143,
+  Ncaron: 0x0147,
+  Ncedilla: 0x0145,
+  Ncircle: 0x24C3,
+  Ncircumflexbelow: 0x1E4A,
+  Ncommaaccent: 0x0145,
+  Ndotaccent: 0x1E44,
+  Ndotbelow: 0x1E46,
+  Nhookleft: 0x019D,
+  Nineroman: 0x2168,
+  Nj: 0x01CB,
+  Njecyrillic: 0x040A,
+  Nlinebelow: 0x1E48,
+  Nmonospace: 0xFF2E,
+  Nowarmenian: 0x0546,
+  Nsmall: 0xF76E,
+  Ntilde: 0x00D1,
+  Ntildesmall: 0xF7F1,
+  Nu: 0x039D,
+  O: 0x004F,
+  OE: 0x0152,
+  OEsmall: 0xF6FA,
+  Oacute: 0x00D3,
+  Oacutesmall: 0xF7F3,
+  Obarredcyrillic: 0x04E8,
+  Obarreddieresiscyrillic: 0x04EA,
+  Obreve: 0x014E,
+  Ocaron: 0x01D1,
+  Ocenteredtilde: 0x019F,
+  Ocircle: 0x24C4,
+  Ocircumflex: 0x00D4,
+  Ocircumflexacute: 0x1ED0,
+  Ocircumflexdotbelow: 0x1ED8,
+  Ocircumflexgrave: 0x1ED2,
+  Ocircumflexhookabove: 0x1ED4,
+  Ocircumflexsmall: 0xF7F4,
+  Ocircumflextilde: 0x1ED6,
+  Ocyrillic: 0x041E,
+  Odblacute: 0x0150,
+  Odblgrave: 0x020C,
+  Odieresis: 0x00D6,
+  Odieresiscyrillic: 0x04E6,
+  Odieresissmall: 0xF7F6,
+  Odotbelow: 0x1ECC,
+  Ogoneksmall: 0xF6FB,
+  Ograve: 0x00D2,
+  Ogravesmall: 0xF7F2,
+  Oharmenian: 0x0555,
+  Ohm: 0x2126,
+  Ohookabove: 0x1ECE,
+  Ohorn: 0x01A0,
+  Ohornacute: 0x1EDA,
+  Ohorndotbelow: 0x1EE2,
+  Ohorngrave: 0x1EDC,
+  Ohornhookabove: 0x1EDE,
+  Ohorntilde: 0x1EE0,
+  Ohungarumlaut: 0x0150,
+  Oi: 0x01A2,
+  Oinvertedbreve: 0x020E,
+  Omacron: 0x014C,
+  Omacronacute: 0x1E52,
+  Omacrongrave: 0x1E50,
+  Omega: 0x2126,
+  Omegacyrillic: 0x0460,
+  Omegagreek: 0x03A9,
+  Omegaroundcyrillic: 0x047A,
+  Omegatitlocyrillic: 0x047C,
+  Omegatonos: 0x038F,
+  Omicron: 0x039F,
+  Omicrontonos: 0x038C,
+  Omonospace: 0xFF2F,
+  Oneroman: 0x2160,
+  Oogonek: 0x01EA,
+  Oogonekmacron: 0x01EC,
+  Oopen: 0x0186,
+  Oslash: 0x00D8,
+  Oslashacute: 0x01FE,
+  Oslashsmall: 0xF7F8,
+  Osmall: 0xF76F,
+  Ostrokeacute: 0x01FE,
+  Otcyrillic: 0x047E,
+  Otilde: 0x00D5,
+  Otildeacute: 0x1E4C,
+  Otildedieresis: 0x1E4E,
+  Otildesmall: 0xF7F5,
+  P: 0x0050,
+  Pacute: 0x1E54,
+  Pcircle: 0x24C5,
+  Pdotaccent: 0x1E56,
+  Pecyrillic: 0x041F,
+  Peharmenian: 0x054A,
+  Pemiddlehookcyrillic: 0x04A6,
+  Phi: 0x03A6,
+  Phook: 0x01A4,
+  Pi: 0x03A0,
+  Piwrarmenian: 0x0553,
+  Pmonospace: 0xFF30,
+  Psi: 0x03A8,
+  Psicyrillic: 0x0470,
+  Psmall: 0xF770,
+  Q: 0x0051,
+  Qcircle: 0x24C6,
+  Qmonospace: 0xFF31,
+  Qsmall: 0xF771,
+  R: 0x0052,
+  Raarmenian: 0x054C,
+  Racute: 0x0154,
+  Rcaron: 0x0158,
+  Rcedilla: 0x0156,
+  Rcircle: 0x24C7,
+  Rcommaaccent: 0x0156,
+  Rdblgrave: 0x0210,
+  Rdotaccent: 0x1E58,
+  Rdotbelow: 0x1E5A,
+  Rdotbelowmacron: 0x1E5C,
+  Reharmenian: 0x0550,
+  Rfraktur: 0x211C,
+  Rho: 0x03A1,
+  Ringsmall: 0xF6FC,
+  Rinvertedbreve: 0x0212,
+  Rlinebelow: 0x1E5E,
+  Rmonospace: 0xFF32,
+  Rsmall: 0xF772,
+  Rsmallinverted: 0x0281,
+  Rsmallinvertedsuperior: 0x02B6,
+  S: 0x0053,
+  SF010000: 0x250C,
+  SF020000: 0x2514,
+  SF030000: 0x2510,
+  SF040000: 0x2518,
+  SF050000: 0x253C,
+  SF060000: 0x252C,
+  SF070000: 0x2534,
+  SF080000: 0x251C,
+  SF090000: 0x2524,
+  SF100000: 0x2500,
+  SF110000: 0x2502,
+  SF190000: 0x2561,
+  SF200000: 0x2562,
+  SF210000: 0x2556,
+  SF220000: 0x2555,
+  SF230000: 0x2563,
+  SF240000: 0x2551,
+  SF250000: 0x2557,
+  SF260000: 0x255D,
+  SF270000: 0x255C,
+  SF280000: 0x255B,
+  SF360000: 0x255E,
+  SF370000: 0x255F,
+  SF380000: 0x255A,
+  SF390000: 0x2554,
+  SF400000: 0x2569,
+  SF410000: 0x2566,
+  SF420000: 0x2560,
+  SF430000: 0x2550,
+  SF440000: 0x256C,
+  SF450000: 0x2567,
+  SF460000: 0x2568,
+  SF470000: 0x2564,
+  SF480000: 0x2565,
+  SF490000: 0x2559,
+  SF500000: 0x2558,
+  SF510000: 0x2552,
+  SF520000: 0x2553,
+  SF530000: 0x256B,
+  SF540000: 0x256A,
+  Sacute: 0x015A,
+  Sacutedotaccent: 0x1E64,
+  Sampigreek: 0x03E0,
+  Scaron: 0x0160,
+  Scarondotaccent: 0x1E66,
+  Scaronsmall: 0xF6FD,
+  Scedilla: 0x015E,
+  Schwa: 0x018F,
+  Schwacyrillic: 0x04D8,
+  Schwadieresiscyrillic: 0x04DA,
+  Scircle: 0x24C8,
+  Scircumflex: 0x015C,
+  Scommaaccent: 0x0218,
+  Sdotaccent: 0x1E60,
+  Sdotbelow: 0x1E62,
+  Sdotbelowdotaccent: 0x1E68,
+  Seharmenian: 0x054D,
+  Sevenroman: 0x2166,
+  Shaarmenian: 0x0547,
+  Shacyrillic: 0x0428,
+  Shchacyrillic: 0x0429,
+  Sheicoptic: 0x03E2,
+  Shhacyrillic: 0x04BA,
+  Shimacoptic: 0x03EC,
+  Sigma: 0x03A3,
+  Sixroman: 0x2165,
+  Smonospace: 0xFF33,
+  Softsigncyrillic: 0x042C,
+  Ssmall: 0xF773,
+  Stigmagreek: 0x03DA,
+  T: 0x0054,
+  Tau: 0x03A4,
+  Tbar: 0x0166,
+  Tcaron: 0x0164,
+  Tcedilla: 0x0162,
+  Tcircle: 0x24C9,
+  Tcircumflexbelow: 0x1E70,
+  Tcommaaccent: 0x0162,
+  Tdotaccent: 0x1E6A,
+  Tdotbelow: 0x1E6C,
+  Tecyrillic: 0x0422,
+  Tedescendercyrillic: 0x04AC,
+  Tenroman: 0x2169,
+  Tetsecyrillic: 0x04B4,
+  Theta: 0x0398,
+  Thook: 0x01AC,
+  Thorn: 0x00DE,
+  Thornsmall: 0xF7FE,
+  Threeroman: 0x2162,
+  Tildesmall: 0xF6FE,
+  Tiwnarmenian: 0x054F,
+  Tlinebelow: 0x1E6E,
+  Tmonospace: 0xFF34,
+  Toarmenian: 0x0539,
+  Tonefive: 0x01BC,
+  Tonesix: 0x0184,
+  Tonetwo: 0x01A7,
+  Tretroflexhook: 0x01AE,
+  Tsecyrillic: 0x0426,
+  Tshecyrillic: 0x040B,
+  Tsmall: 0xF774,
+  Twelveroman: 0x216B,
+  Tworoman: 0x2161,
+  U: 0x0055,
+  Uacute: 0x00DA,
+  Uacutesmall: 0xF7FA,
+  Ubreve: 0x016C,
+  Ucaron: 0x01D3,
+  Ucircle: 0x24CA,
+  Ucircumflex: 0x00DB,
+  Ucircumflexbelow: 0x1E76,
+  Ucircumflexsmall: 0xF7FB,
+  Ucyrillic: 0x0423,
+  Udblacute: 0x0170,
+  Udblgrave: 0x0214,
+  Udieresis: 0x00DC,
+  Udieresisacute: 0x01D7,
+  Udieresisbelow: 0x1E72,
+  Udieresiscaron: 0x01D9,
+  Udieresiscyrillic: 0x04F0,
+  Udieresisgrave: 0x01DB,
+  Udieresismacron: 0x01D5,
+  Udieresissmall: 0xF7FC,
+  Udotbelow: 0x1EE4,
+  Ugrave: 0x00D9,
+  Ugravesmall: 0xF7F9,
+  Uhookabove: 0x1EE6,
+  Uhorn: 0x01AF,
+  Uhornacute: 0x1EE8,
+  Uhorndotbelow: 0x1EF0,
+  Uhorngrave: 0x1EEA,
+  Uhornhookabove: 0x1EEC,
+  Uhorntilde: 0x1EEE,
+  Uhungarumlaut: 0x0170,
+  Uhungarumlautcyrillic: 0x04F2,
+  Uinvertedbreve: 0x0216,
+  Ukcyrillic: 0x0478,
+  Umacron: 0x016A,
+  Umacroncyrillic: 0x04EE,
+  Umacrondieresis: 0x1E7A,
+  Umonospace: 0xFF35,
+  Uogonek: 0x0172,
+  Upsilon: 0x03A5,
+  Upsilon1: 0x03D2,
+  Upsilonacutehooksymbolgreek: 0x03D3,
+  Upsilonafrican: 0x01B1,
+  Upsilondieresis: 0x03AB,
+  Upsilondieresishooksymbolgreek: 0x03D4,
+  Upsilonhooksymbol: 0x03D2,
+  Upsilontonos: 0x038E,
+  Uring: 0x016E,
+  Ushortcyrillic: 0x040E,
+  Usmall: 0xF775,
+  Ustraightcyrillic: 0x04AE,
+  Ustraightstrokecyrillic: 0x04B0,
+  Utilde: 0x0168,
+  Utildeacute: 0x1E78,
+  Utildebelow: 0x1E74,
+  V: 0x0056,
+  Vcircle: 0x24CB,
+  Vdotbelow: 0x1E7E,
+  Vecyrillic: 0x0412,
+  Vewarmenian: 0x054E,
+  Vhook: 0x01B2,
+  Vmonospace: 0xFF36,
+  Voarmenian: 0x0548,
+  Vsmall: 0xF776,
+  Vtilde: 0x1E7C,
+  W: 0x0057,
+  Wacute: 0x1E82,
+  Wcircle: 0x24CC,
+  Wcircumflex: 0x0174,
+  Wdieresis: 0x1E84,
+  Wdotaccent: 0x1E86,
+  Wdotbelow: 0x1E88,
+  Wgrave: 0x1E80,
+  Wmonospace: 0xFF37,
+  Wsmall: 0xF777,
+  X: 0x0058,
+  Xcircle: 0x24CD,
+  Xdieresis: 0x1E8C,
+  Xdotaccent: 0x1E8A,
+  Xeharmenian: 0x053D,
+  Xi: 0x039E,
+  Xmonospace: 0xFF38,
+  Xsmall: 0xF778,
+  Y: 0x0059,
+  Yacute: 0x00DD,
+  Yacutesmall: 0xF7FD,
+  Yatcyrillic: 0x0462,
+  Ycircle: 0x24CE,
+  Ycircumflex: 0x0176,
+  Ydieresis: 0x0178,
+  Ydieresissmall: 0xF7FF,
+  Ydotaccent: 0x1E8E,
+  Ydotbelow: 0x1EF4,
+  Yericyrillic: 0x042B,
+  Yerudieresiscyrillic: 0x04F8,
+  Ygrave: 0x1EF2,
+  Yhook: 0x01B3,
+  Yhookabove: 0x1EF6,
+  Yiarmenian: 0x0545,
+  Yicyrillic: 0x0407,
+  Yiwnarmenian: 0x0552,
+  Ymonospace: 0xFF39,
+  Ysmall: 0xF779,
+  Ytilde: 0x1EF8,
+  Yusbigcyrillic: 0x046A,
+  Yusbigiotifiedcyrillic: 0x046C,
+  Yuslittlecyrillic: 0x0466,
+  Yuslittleiotifiedcyrillic: 0x0468,
+  Z: 0x005A,
+  Zaarmenian: 0x0536,
+  Zacute: 0x0179,
+  Zcaron: 0x017D,
+  Zcaronsmall: 0xF6FF,
+  Zcircle: 0x24CF,
+  Zcircumflex: 0x1E90,
+  Zdot: 0x017B,
+  Zdotaccent: 0x017B,
+  Zdotbelow: 0x1E92,
+  Zecyrillic: 0x0417,
+  Zedescendercyrillic: 0x0498,
+  Zedieresiscyrillic: 0x04DE,
+  Zeta: 0x0396,
+  Zhearmenian: 0x053A,
+  Zhebrevecyrillic: 0x04C1,
+  Zhecyrillic: 0x0416,
+  Zhedescendercyrillic: 0x0496,
+  Zhedieresiscyrillic: 0x04DC,
+  Zlinebelow: 0x1E94,
+  Zmonospace: 0xFF3A,
+  Zsmall: 0xF77A,
+  Zstroke: 0x01B5,
+  a: 0x0061,
+  aabengali: 0x0986,
+  aacute: 0x00E1,
+  aadeva: 0x0906,
+  aagujarati: 0x0A86,
+  aagurmukhi: 0x0A06,
+  aamatragurmukhi: 0x0A3E,
+  aarusquare: 0x3303,
+  aavowelsignbengali: 0x09BE,
+  aavowelsigndeva: 0x093E,
+  aavowelsigngujarati: 0x0ABE,
+  abbreviationmarkarmenian: 0x055F,
+  abbreviationsigndeva: 0x0970,
+  abengali: 0x0985,
+  abopomofo: 0x311A,
+  abreve: 0x0103,
+  abreveacute: 0x1EAF,
+  abrevecyrillic: 0x04D1,
+  abrevedotbelow: 0x1EB7,
+  abrevegrave: 0x1EB1,
+  abrevehookabove: 0x1EB3,
+  abrevetilde: 0x1EB5,
+  acaron: 0x01CE,
+  acircle: 0x24D0,
+  acircumflex: 0x00E2,
+  acircumflexacute: 0x1EA5,
+  acircumflexdotbelow: 0x1EAD,
+  acircumflexgrave: 0x1EA7,
+  acircumflexhookabove: 0x1EA9,
+  acircumflextilde: 0x1EAB,
+  acute: 0x00B4,
+  acutebelowcmb: 0x0317,
+  acutecmb: 0x0301,
+  acutecomb: 0x0301,
+  acutedeva: 0x0954,
+  acutelowmod: 0x02CF,
+  acutetonecmb: 0x0341,
+  acyrillic: 0x0430,
+  adblgrave: 0x0201,
+  addakgurmukhi: 0x0A71,
+  adeva: 0x0905,
+  adieresis: 0x00E4,
+  adieresiscyrillic: 0x04D3,
+  adieresismacron: 0x01DF,
+  adotbelow: 0x1EA1,
+  adotmacron: 0x01E1,
+  ae: 0x00E6,
+  aeacute: 0x01FD,
+  aekorean: 0x3150,
+  aemacron: 0x01E3,
+  afii00208: 0x2015,
+  afii08941: 0x20A4,
+  afii10017: 0x0410,
+  afii10018: 0x0411,
+  afii10019: 0x0412,
+  afii10020: 0x0413,
+  afii10021: 0x0414,
+  afii10022: 0x0415,
+  afii10023: 0x0401,
+  afii10024: 0x0416,
+  afii10025: 0x0417,
+  afii10026: 0x0418,
+  afii10027: 0x0419,
+  afii10028: 0x041A,
+  afii10029: 0x041B,
+  afii10030: 0x041C,
+  afii10031: 0x041D,
+  afii10032: 0x041E,
+  afii10033: 0x041F,
+  afii10034: 0x0420,
+  afii10035: 0x0421,
+  afii10036: 0x0422,
+  afii10037: 0x0423,
+  afii10038: 0x0424,
+  afii10039: 0x0425,
+  afii10040: 0x0426,
+  afii10041: 0x0427,
+  afii10042: 0x0428,
+  afii10043: 0x0429,
+  afii10044: 0x042A,
+  afii10045: 0x042B,
+  afii10046: 0x042C,
+  afii10047: 0x042D,
+  afii10048: 0x042E,
+  afii10049: 0x042F,
+  afii10050: 0x0490,
+  afii10051: 0x0402,
+  afii10052: 0x0403,
+  afii10053: 0x0404,
+  afii10054: 0x0405,
+  afii10055: 0x0406,
+  afii10056: 0x0407,
+  afii10057: 0x0408,
+  afii10058: 0x0409,
+  afii10059: 0x040A,
+  afii10060: 0x040B,
+  afii10061: 0x040C,
+  afii10062: 0x040E,
+  afii10063: 0xF6C4,
+  afii10064: 0xF6C5,
+  afii10065: 0x0430,
+  afii10066: 0x0431,
+  afii10067: 0x0432,
+  afii10068: 0x0433,
+  afii10069: 0x0434,
+  afii10070: 0x0435,
+  afii10071: 0x0451,
+  afii10072: 0x0436,
+  afii10073: 0x0437,
+  afii10074: 0x0438,
+  afii10075: 0x0439,
+  afii10076: 0x043A,
+  afii10077: 0x043B,
+  afii10078: 0x043C,
+  afii10079: 0x043D,
+  afii10080: 0x043E,
+  afii10081: 0x043F,
+  afii10082: 0x0440,
+  afii10083: 0x0441,
+  afii10084: 0x0442,
+  afii10085: 0x0443,
+  afii10086: 0x0444,
+  afii10087: 0x0445,
+  afii10088: 0x0446,
+  afii10089: 0x0447,
+  afii10090: 0x0448,
+  afii10091: 0x0449,
+  afii10092: 0x044A,
+  afii10093: 0x044B,
+  afii10094: 0x044C,
+  afii10095: 0x044D,
+  afii10096: 0x044E,
+  afii10097: 0x044F,
+  afii10098: 0x0491,
+  afii10099: 0x0452,
+  afii10100: 0x0453,
+  afii10101: 0x0454,
+  afii10102: 0x0455,
+  afii10103: 0x0456,
+  afii10104: 0x0457,
+  afii10105: 0x0458,
+  afii10106: 0x0459,
+  afii10107: 0x045A,
+  afii10108: 0x045B,
+  afii10109: 0x045C,
+  afii10110: 0x045E,
+  afii10145: 0x040F,
+  afii10146: 0x0462,
+  afii10147: 0x0472,
+  afii10148: 0x0474,
+  afii10192: 0xF6C6,
+  afii10193: 0x045F,
+  afii10194: 0x0463,
+  afii10195: 0x0473,
+  afii10196: 0x0475,
+  afii10831: 0xF6C7,
+  afii10832: 0xF6C8,
+  afii10846: 0x04D9,
+  afii299: 0x200E,
+  afii300: 0x200F,
+  afii301: 0x200D,
+  afii57381: 0x066A,
+  afii57388: 0x060C,
+  afii57392: 0x0660,
+  afii57393: 0x0661,
+  afii57394: 0x0662,
+  afii57395: 0x0663,
+  afii57396: 0x0664,
+  afii57397: 0x0665,
+  afii57398: 0x0666,
+  afii57399: 0x0667,
+  afii57400: 0x0668,
+  afii57401: 0x0669,
+  afii57403: 0x061B,
+  afii57407: 0x061F,
+  afii57409: 0x0621,
+  afii57410: 0x0622,
+  afii57411: 0x0623,
+  afii57412: 0x0624,
+  afii57413: 0x0625,
+  afii57414: 0x0626,
+  afii57415: 0x0627,
+  afii57416: 0x0628,
+  afii57417: 0x0629,
+  afii57418: 0x062A,
+  afii57419: 0x062B,
+  afii57420: 0x062C,
+  afii57421: 0x062D,
+  afii57422: 0x062E,
+  afii57423: 0x062F,
+  afii57424: 0x0630,
+  afii57425: 0x0631,
+  afii57426: 0x0632,
+  afii57427: 0x0633,
+  afii57428: 0x0634,
+  afii57429: 0x0635,
+  afii57430: 0x0636,
+  afii57431: 0x0637,
+  afii57432: 0x0638,
+  afii57433: 0x0639,
+  afii57434: 0x063A,
+  afii57440: 0x0640,
+  afii57441: 0x0641,
+  afii57442: 0x0642,
+  afii57443: 0x0643,
+  afii57444: 0x0644,
+  afii57445: 0x0645,
+  afii57446: 0x0646,
+  afii57448: 0x0648,
+  afii57449: 0x0649,
+  afii57450: 0x064A,
+  afii57451: 0x064B,
+  afii57452: 0x064C,
+  afii57453: 0x064D,
+  afii57454: 0x064E,
+  afii57455: 0x064F,
+  afii57456: 0x0650,
+  afii57457: 0x0651,
+  afii57458: 0x0652,
+  afii57470: 0x0647,
+  afii57505: 0x06A4,
+  afii57506: 0x067E,
+  afii57507: 0x0686,
+  afii57508: 0x0698,
+  afii57509: 0x06AF,
+  afii57511: 0x0679,
+  afii57512: 0x0688,
+  afii57513: 0x0691,
+  afii57514: 0x06BA,
+  afii57519: 0x06D2,
+  afii57534: 0x06D5,
+  afii57636: 0x20AA,
+  afii57645: 0x05BE,
+  afii57658: 0x05C3,
+  afii57664: 0x05D0,
+  afii57665: 0x05D1,
+  afii57666: 0x05D2,
+  afii57667: 0x05D3,
+  afii57668: 0x05D4,
+  afii57669: 0x05D5,
+  afii57670: 0x05D6,
+  afii57671: 0x05D7,
+  afii57672: 0x05D8,
+  afii57673: 0x05D9,
+  afii57674: 0x05DA,
+  afii57675: 0x05DB,
+  afii57676: 0x05DC,
+  afii57677: 0x05DD,
+  afii57678: 0x05DE,
+  afii57679: 0x05DF,
+  afii57680: 0x05E0,
+  afii57681: 0x05E1,
+  afii57682: 0x05E2,
+  afii57683: 0x05E3,
+  afii57684: 0x05E4,
+  afii57685: 0x05E5,
+  afii57686: 0x05E6,
+  afii57687: 0x05E7,
+  afii57688: 0x05E8,
+  afii57689: 0x05E9,
+  afii57690: 0x05EA,
+  afii57694: 0xFB2A,
+  afii57695: 0xFB2B,
+  afii57700: 0xFB4B,
+  afii57705: 0xFB1F,
+  afii57716: 0x05F0,
+  afii57717: 0x05F1,
+  afii57718: 0x05F2,
+  afii57723: 0xFB35,
+  afii57793: 0x05B4,
+  afii57794: 0x05B5,
+  afii57795: 0x05B6,
+  afii57796: 0x05BB,
+  afii57797: 0x05B8,
+  afii57798: 0x05B7,
+  afii57799: 0x05B0,
+  afii57800: 0x05B2,
+  afii57801: 0x05B1,
+  afii57802: 0x05B3,
+  afii57803: 0x05C2,
+  afii57804: 0x05C1,
+  afii57806: 0x05B9,
+  afii57807: 0x05BC,
+  afii57839: 0x05BD,
+  afii57841: 0x05BF,
+  afii57842: 0x05C0,
+  afii57929: 0x02BC,
+  afii61248: 0x2105,
+  afii61289: 0x2113,
+  afii61352: 0x2116,
+  afii61573: 0x202C,
+  afii61574: 0x202D,
+  afii61575: 0x202E,
+  afii61664: 0x200C,
+  afii63167: 0x066D,
+  afii64937: 0x02BD,
+  agrave: 0x00E0,
+  agujarati: 0x0A85,
+  agurmukhi: 0x0A05,
+  ahiragana: 0x3042,
+  ahookabove: 0x1EA3,
+  aibengali: 0x0990,
+  aibopomofo: 0x311E,
+  aideva: 0x0910,
+  aiecyrillic: 0x04D5,
+  aigujarati: 0x0A90,
+  aigurmukhi: 0x0A10,
+  aimatragurmukhi: 0x0A48,
+  ainarabic: 0x0639,
+  ainfinalarabic: 0xFECA,
+  aininitialarabic: 0xFECB,
+  ainmedialarabic: 0xFECC,
+  ainvertedbreve: 0x0203,
+  aivowelsignbengali: 0x09C8,
+  aivowelsigndeva: 0x0948,
+  aivowelsigngujarati: 0x0AC8,
+  akatakana: 0x30A2,
+  akatakanahalfwidth: 0xFF71,
+  akorean: 0x314F,
+  alef: 0x05D0,
+  alefarabic: 0x0627,
+  alefdageshhebrew: 0xFB30,
+  aleffinalarabic: 0xFE8E,
+  alefhamzaabovearabic: 0x0623,
+  alefhamzaabovefinalarabic: 0xFE84,
+  alefhamzabelowarabic: 0x0625,
+  alefhamzabelowfinalarabic: 0xFE88,
+  alefhebrew: 0x05D0,
+  aleflamedhebrew: 0xFB4F,
+  alefmaddaabovearabic: 0x0622,
+  alefmaddaabovefinalarabic: 0xFE82,
+  alefmaksuraarabic: 0x0649,
+  alefmaksurafinalarabic: 0xFEF0,
+  alefmaksurainitialarabic: 0xFEF3,
+  alefmaksuramedialarabic: 0xFEF4,
+  alefpatahhebrew: 0xFB2E,
+  alefqamatshebrew: 0xFB2F,
+  aleph: 0x2135,
+  allequal: 0x224C,
+  alpha: 0x03B1,
+  alphatonos: 0x03AC,
+  amacron: 0x0101,
+  amonospace: 0xFF41,
+  ampersand: 0x0026,
+  ampersandmonospace: 0xFF06,
+  ampersandsmall: 0xF726,
+  amsquare: 0x33C2,
+  anbopomofo: 0x3122,
+  angbopomofo: 0x3124,
+  angbracketleft: 0x3008, // This glyph is missing from Adobe's original list.
+  angbracketright: 0x3009, // This glyph is missing from Adobe's original list.
+  angkhankhuthai: 0x0E5A,
+  angle: 0x2220,
+  anglebracketleft: 0x3008,
+  anglebracketleftvertical: 0xFE3F,
+  anglebracketright: 0x3009,
+  anglebracketrightvertical: 0xFE40,
+  angleleft: 0x2329,
+  angleright: 0x232A,
+  angstrom: 0x212B,
+  anoteleia: 0x0387,
+  anudattadeva: 0x0952,
+  anusvarabengali: 0x0982,
+  anusvaradeva: 0x0902,
+  anusvaragujarati: 0x0A82,
+  aogonek: 0x0105,
+  apaatosquare: 0x3300,
+  aparen: 0x249C,
+  apostrophearmenian: 0x055A,
+  apostrophemod: 0x02BC,
+  apple: 0xF8FF,
+  approaches: 0x2250,
+  approxequal: 0x2248,
+  approxequalorimage: 0x2252,
+  approximatelyequal: 0x2245,
+  araeaekorean: 0x318E,
+  araeakorean: 0x318D,
+  arc: 0x2312,
+  arighthalfring: 0x1E9A,
+  aring: 0x00E5,
+  aringacute: 0x01FB,
+  aringbelow: 0x1E01,
+  arrowboth: 0x2194,
+  arrowdashdown: 0x21E3,
+  arrowdashleft: 0x21E0,
+  arrowdashright: 0x21E2,
+  arrowdashup: 0x21E1,
+  arrowdblboth: 0x21D4,
+  arrowdbldown: 0x21D3,
+  arrowdblleft: 0x21D0,
+  arrowdblright: 0x21D2,
+  arrowdblup: 0x21D1,
+  arrowdown: 0x2193,
+  arrowdownleft: 0x2199,
+  arrowdownright: 0x2198,
+  arrowdownwhite: 0x21E9,
+  arrowheaddownmod: 0x02C5,
+  arrowheadleftmod: 0x02C2,
+  arrowheadrightmod: 0x02C3,
+  arrowheadupmod: 0x02C4,
+  arrowhorizex: 0xF8E7,
+  arrowleft: 0x2190,
+  arrowleftdbl: 0x21D0,
+  arrowleftdblstroke: 0x21CD,
+  arrowleftoverright: 0x21C6,
+  arrowleftwhite: 0x21E6,
+  arrowright: 0x2192,
+  arrowrightdblstroke: 0x21CF,
+  arrowrightheavy: 0x279E,
+  arrowrightoverleft: 0x21C4,
+  arrowrightwhite: 0x21E8,
+  arrowtableft: 0x21E4,
+  arrowtabright: 0x21E5,
+  arrowup: 0x2191,
+  arrowupdn: 0x2195,
+  arrowupdnbse: 0x21A8,
+  arrowupdownbase: 0x21A8,
+  arrowupleft: 0x2196,
+  arrowupleftofdown: 0x21C5,
+  arrowupright: 0x2197,
+  arrowupwhite: 0x21E7,
+  arrowvertex: 0xF8E6,
+  asciicircum: 0x005E,
+  asciicircummonospace: 0xFF3E,
+  asciitilde: 0x007E,
+  asciitildemonospace: 0xFF5E,
+  ascript: 0x0251,
+  ascriptturned: 0x0252,
+  asmallhiragana: 0x3041,
+  asmallkatakana: 0x30A1,
+  asmallkatakanahalfwidth: 0xFF67,
+  asterisk: 0x002A,
+  asteriskaltonearabic: 0x066D,
+  asteriskarabic: 0x066D,
+  asteriskmath: 0x2217,
+  asteriskmonospace: 0xFF0A,
+  asterisksmall: 0xFE61,
+  asterism: 0x2042,
+  asuperior: 0xF6E9,
+  asymptoticallyequal: 0x2243,
+  at: 0x0040,
+  atilde: 0x00E3,
+  atmonospace: 0xFF20,
+  atsmall: 0xFE6B,
+  aturned: 0x0250,
+  aubengali: 0x0994,
+  aubopomofo: 0x3120,
+  audeva: 0x0914,
+  augujarati: 0x0A94,
+  augurmukhi: 0x0A14,
+  aulengthmarkbengali: 0x09D7,
+  aumatragurmukhi: 0x0A4C,
+  auvowelsignbengali: 0x09CC,
+  auvowelsigndeva: 0x094C,
+  auvowelsigngujarati: 0x0ACC,
+  avagrahadeva: 0x093D,
+  aybarmenian: 0x0561,
+  ayin: 0x05E2,
+  ayinaltonehebrew: 0xFB20,
+  ayinhebrew: 0x05E2,
+  b: 0x0062,
+  babengali: 0x09AC,
+  backslash: 0x005C,
+  backslashmonospace: 0xFF3C,
+  badeva: 0x092C,
+  bagujarati: 0x0AAC,
+  bagurmukhi: 0x0A2C,
+  bahiragana: 0x3070,
+  bahtthai: 0x0E3F,
+  bakatakana: 0x30D0,
+  bar: 0x007C,
+  barmonospace: 0xFF5C,
+  bbopomofo: 0x3105,
+  bcircle: 0x24D1,
+  bdotaccent: 0x1E03,
+  bdotbelow: 0x1E05,
+  beamedsixteenthnotes: 0x266C,
+  because: 0x2235,
+  becyrillic: 0x0431,
+  beharabic: 0x0628,
+  behfinalarabic: 0xFE90,
+  behinitialarabic: 0xFE91,
+  behiragana: 0x3079,
+  behmedialarabic: 0xFE92,
+  behmeeminitialarabic: 0xFC9F,
+  behmeemisolatedarabic: 0xFC08,
+  behnoonfinalarabic: 0xFC6D,
+  bekatakana: 0x30D9,
+  benarmenian: 0x0562,
+  bet: 0x05D1,
+  beta: 0x03B2,
+  betasymbolgreek: 0x03D0,
+  betdagesh: 0xFB31,
+  betdageshhebrew: 0xFB31,
+  bethebrew: 0x05D1,
+  betrafehebrew: 0xFB4C,
+  bhabengali: 0x09AD,
+  bhadeva: 0x092D,
+  bhagujarati: 0x0AAD,
+  bhagurmukhi: 0x0A2D,
+  bhook: 0x0253,
+  bihiragana: 0x3073,
+  bikatakana: 0x30D3,
+  bilabialclick: 0x0298,
+  bindigurmukhi: 0x0A02,
+  birusquare: 0x3331,
+  blackcircle: 0x25CF,
+  blackdiamond: 0x25C6,
+  blackdownpointingtriangle: 0x25BC,
+  blackleftpointingpointer: 0x25C4,
+  blackleftpointingtriangle: 0x25C0,
+  blacklenticularbracketleft: 0x3010,
+  blacklenticularbracketleftvertical: 0xFE3B,
+  blacklenticularbracketright: 0x3011,
+  blacklenticularbracketrightvertical: 0xFE3C,
+  blacklowerlefttriangle: 0x25E3,
+  blacklowerrighttriangle: 0x25E2,
+  blackrectangle: 0x25AC,
+  blackrightpointingpointer: 0x25BA,
+  blackrightpointingtriangle: 0x25B6,
+  blacksmallsquare: 0x25AA,
+  blacksmilingface: 0x263B,
+  blacksquare: 0x25A0,
+  blackstar: 0x2605,
+  blackupperlefttriangle: 0x25E4,
+  blackupperrighttriangle: 0x25E5,
+  blackuppointingsmalltriangle: 0x25B4,
+  blackuppointingtriangle: 0x25B2,
+  blank: 0x2423,
+  blinebelow: 0x1E07,
+  block: 0x2588,
+  bmonospace: 0xFF42,
+  bobaimaithai: 0x0E1A,
+  bohiragana: 0x307C,
+  bokatakana: 0x30DC,
+  bparen: 0x249D,
+  bqsquare: 0x33C3,
+  braceex: 0xF8F4,
+  braceleft: 0x007B,
+  braceleftbt: 0xF8F3,
+  braceleftmid: 0xF8F2,
+  braceleftmonospace: 0xFF5B,
+  braceleftsmall: 0xFE5B,
+  bracelefttp: 0xF8F1,
+  braceleftvertical: 0xFE37,
+  braceright: 0x007D,
+  bracerightbt: 0xF8FE,
+  bracerightmid: 0xF8FD,
+  bracerightmonospace: 0xFF5D,
+  bracerightsmall: 0xFE5C,
+  bracerighttp: 0xF8FC,
+  bracerightvertical: 0xFE38,
+  bracketleft: 0x005B,
+  bracketleftbt: 0xF8F0,
+  bracketleftex: 0xF8EF,
+  bracketleftmonospace: 0xFF3B,
+  bracketlefttp: 0xF8EE,
+  bracketright: 0x005D,
+  bracketrightbt: 0xF8FB,
+  bracketrightex: 0xF8FA,
+  bracketrightmonospace: 0xFF3D,
+  bracketrighttp: 0xF8F9,
+  breve: 0x02D8,
+  brevebelowcmb: 0x032E,
+  brevecmb: 0x0306,
+  breveinvertedbelowcmb: 0x032F,
+  breveinvertedcmb: 0x0311,
+  breveinverteddoublecmb: 0x0361,
+  bridgebelowcmb: 0x032A,
+  bridgeinvertedbelowcmb: 0x033A,
+  brokenbar: 0x00A6,
+  bstroke: 0x0180,
+  bsuperior: 0xF6EA,
+  btopbar: 0x0183,
+  buhiragana: 0x3076,
+  bukatakana: 0x30D6,
+  bullet: 0x2022,
+  bulletinverse: 0x25D8,
+  bulletoperator: 0x2219,
+  bullseye: 0x25CE,
+  c: 0x0063,
+  caarmenian: 0x056E,
+  cabengali: 0x099A,
+  cacute: 0x0107,
+  cadeva: 0x091A,
+  cagujarati: 0x0A9A,
+  cagurmukhi: 0x0A1A,
+  calsquare: 0x3388,
+  candrabindubengali: 0x0981,
+  candrabinducmb: 0x0310,
+  candrabindudeva: 0x0901,
+  candrabindugujarati: 0x0A81,
+  capslock: 0x21EA,
+  careof: 0x2105,
+  caron: 0x02C7,
+  caronbelowcmb: 0x032C,
+  caroncmb: 0x030C,
+  carriagereturn: 0x21B5,
+  cbopomofo: 0x3118,
+  ccaron: 0x010D,
+  ccedilla: 0x00E7,
+  ccedillaacute: 0x1E09,
+  ccircle: 0x24D2,
+  ccircumflex: 0x0109,
+  ccurl: 0x0255,
+  cdot: 0x010B,
+  cdotaccent: 0x010B,
+  cdsquare: 0x33C5,
+  cedilla: 0x00B8,
+  cedillacmb: 0x0327,
+  cent: 0x00A2,
+  centigrade: 0x2103,
+  centinferior: 0xF6DF,
+  centmonospace: 0xFFE0,
+  centoldstyle: 0xF7A2,
+  centsuperior: 0xF6E0,
+  chaarmenian: 0x0579,
+  chabengali: 0x099B,
+  chadeva: 0x091B,
+  chagujarati: 0x0A9B,
+  chagurmukhi: 0x0A1B,
+  chbopomofo: 0x3114,
+  cheabkhasiancyrillic: 0x04BD,
+  checkmark: 0x2713,
+  checyrillic: 0x0447,
+  chedescenderabkhasiancyrillic: 0x04BF,
+  chedescendercyrillic: 0x04B7,
+  chedieresiscyrillic: 0x04F5,
+  cheharmenian: 0x0573,
+  chekhakassiancyrillic: 0x04CC,
+  cheverticalstrokecyrillic: 0x04B9,
+  chi: 0x03C7,
+  chieuchacirclekorean: 0x3277,
+  chieuchaparenkorean: 0x3217,
+  chieuchcirclekorean: 0x3269,
+  chieuchkorean: 0x314A,
+  chieuchparenkorean: 0x3209,
+  chochangthai: 0x0E0A,
+  chochanthai: 0x0E08,
+  chochingthai: 0x0E09,
+  chochoethai: 0x0E0C,
+  chook: 0x0188,
+  cieucacirclekorean: 0x3276,
+  cieucaparenkorean: 0x3216,
+  cieuccirclekorean: 0x3268,
+  cieuckorean: 0x3148,
+  cieucparenkorean: 0x3208,
+  cieucuparenkorean: 0x321C,
+  circle: 0x25CB,
+  circlecopyrt: 0x00A9, // This glyph is missing from Adobe's original list.
+  circlemultiply: 0x2297,
+  circleot: 0x2299,
+  circleplus: 0x2295,
+  circlepostalmark: 0x3036,
+  circlewithlefthalfblack: 0x25D0,
+  circlewithrighthalfblack: 0x25D1,
+  circumflex: 0x02C6,
+  circumflexbelowcmb: 0x032D,
+  circumflexcmb: 0x0302,
+  clear: 0x2327,
+  clickalveolar: 0x01C2,
+  clickdental: 0x01C0,
+  clicklateral: 0x01C1,
+  clickretroflex: 0x01C3,
+  club: 0x2663,
+  clubsuitblack: 0x2663,
+  clubsuitwhite: 0x2667,
+  cmcubedsquare: 0x33A4,
+  cmonospace: 0xFF43,
+  cmsquaredsquare: 0x33A0,
+  coarmenian: 0x0581,
+  colon: 0x003A,
+  colonmonetary: 0x20A1,
+  colonmonospace: 0xFF1A,
+  colonsign: 0x20A1,
+  colonsmall: 0xFE55,
+  colontriangularhalfmod: 0x02D1,
+  colontriangularmod: 0x02D0,
+  comma: 0x002C,
+  commaabovecmb: 0x0313,
+  commaaboverightcmb: 0x0315,
+  commaaccent: 0xF6C3,
+  commaarabic: 0x060C,
+  commaarmenian: 0x055D,
+  commainferior: 0xF6E1,
+  commamonospace: 0xFF0C,
+  commareversedabovecmb: 0x0314,
+  commareversedmod: 0x02BD,
+  commasmall: 0xFE50,
+  commasuperior: 0xF6E2,
+  commaturnedabovecmb: 0x0312,
+  commaturnedmod: 0x02BB,
+  compass: 0x263C,
+  congruent: 0x2245,
+  contourintegral: 0x222E,
+  control: 0x2303,
+  controlACK: 0x0006,
+  controlBEL: 0x0007,
+  controlBS: 0x0008,
+  controlCAN: 0x0018,
+  controlCR: 0x000D,
+  controlDC1: 0x0011,
+  controlDC2: 0x0012,
+  controlDC3: 0x0013,
+  controlDC4: 0x0014,
+  controlDEL: 0x007F,
+  controlDLE: 0x0010,
+  controlEM: 0x0019,
+  controlENQ: 0x0005,
+  controlEOT: 0x0004,
+  controlESC: 0x001B,
+  controlETB: 0x0017,
+  controlETX: 0x0003,
+  controlFF: 0x000C,
+  controlFS: 0x001C,
+  controlGS: 0x001D,
+  controlHT: 0x0009,
+  controlLF: 0x000A,
+  controlNAK: 0x0015,
+  controlRS: 0x001E,
+  controlSI: 0x000F,
+  controlSO: 0x000E,
+  controlSOT: 0x0002,
+  controlSTX: 0x0001,
+  controlSUB: 0x001A,
+  controlSYN: 0x0016,
+  controlUS: 0x001F,
+  controlVT: 0x000B,
+  copyright: 0x00A9,
+  copyrightsans: 0xF8E9,
+  copyrightserif: 0xF6D9,
+  cornerbracketleft: 0x300C,
+  cornerbracketlefthalfwidth: 0xFF62,
+  cornerbracketleftvertical: 0xFE41,
+  cornerbracketright: 0x300D,
+  cornerbracketrighthalfwidth: 0xFF63,
+  cornerbracketrightvertical: 0xFE42,
+  corporationsquare: 0x337F,
+  cosquare: 0x33C7,
+  coverkgsquare: 0x33C6,
+  cparen: 0x249E,
+  cruzeiro: 0x20A2,
+  cstretched: 0x0297,
+  curlyand: 0x22CF,
+  curlyor: 0x22CE,
+  currency: 0x00A4,
+  cyrBreve: 0xF6D1,
+  cyrFlex: 0xF6D2,
+  cyrbreve: 0xF6D4,
+  cyrflex: 0xF6D5,
+  d: 0x0064,
+  daarmenian: 0x0564,
+  dabengali: 0x09A6,
+  dadarabic: 0x0636,
+  dadeva: 0x0926,
+  dadfinalarabic: 0xFEBE,
+  dadinitialarabic: 0xFEBF,
+  dadmedialarabic: 0xFEC0,
+  dagesh: 0x05BC,
+  dageshhebrew: 0x05BC,
+  dagger: 0x2020,
+  daggerdbl: 0x2021,
+  dagujarati: 0x0AA6,
+  dagurmukhi: 0x0A26,
+  dahiragana: 0x3060,
+  dakatakana: 0x30C0,
+  dalarabic: 0x062F,
+  dalet: 0x05D3,
+  daletdagesh: 0xFB33,
+  daletdageshhebrew: 0xFB33,
+  dalethebrew: 0x05D3,
+  dalfinalarabic: 0xFEAA,
+  dammaarabic: 0x064F,
+  dammalowarabic: 0x064F,
+  dammatanaltonearabic: 0x064C,
+  dammatanarabic: 0x064C,
+  danda: 0x0964,
+  dargahebrew: 0x05A7,
+  dargalefthebrew: 0x05A7,
+  dasiapneumatacyrilliccmb: 0x0485,
+  dblGrave: 0xF6D3,
+  dblanglebracketleft: 0x300A,
+  dblanglebracketleftvertical: 0xFE3D,
+  dblanglebracketright: 0x300B,
+  dblanglebracketrightvertical: 0xFE3E,
+  dblarchinvertedbelowcmb: 0x032B,
+  dblarrowleft: 0x21D4,
+  dblarrowright: 0x21D2,
+  dbldanda: 0x0965,
+  dblgrave: 0xF6D6,
+  dblgravecmb: 0x030F,
+  dblintegral: 0x222C,
+  dbllowline: 0x2017,
+  dbllowlinecmb: 0x0333,
+  dbloverlinecmb: 0x033F,
+  dblprimemod: 0x02BA,
+  dblverticalbar: 0x2016,
+  dblverticallineabovecmb: 0x030E,
+  dbopomofo: 0x3109,
+  dbsquare: 0x33C8,
+  dcaron: 0x010F,
+  dcedilla: 0x1E11,
+  dcircle: 0x24D3,
+  dcircumflexbelow: 0x1E13,
+  dcroat: 0x0111,
+  ddabengali: 0x09A1,
+  ddadeva: 0x0921,
+  ddagujarati: 0x0AA1,
+  ddagurmukhi: 0x0A21,
+  ddalarabic: 0x0688,
+  ddalfinalarabic: 0xFB89,
+  dddhadeva: 0x095C,
+  ddhabengali: 0x09A2,
+  ddhadeva: 0x0922,
+  ddhagujarati: 0x0AA2,
+  ddhagurmukhi: 0x0A22,
+  ddotaccent: 0x1E0B,
+  ddotbelow: 0x1E0D,
+  decimalseparatorarabic: 0x066B,
+  decimalseparatorpersian: 0x066B,
+  decyrillic: 0x0434,
+  degree: 0x00B0,
+  dehihebrew: 0x05AD,
+  dehiragana: 0x3067,
+  deicoptic: 0x03EF,
+  dekatakana: 0x30C7,
+  deleteleft: 0x232B,
+  deleteright: 0x2326,
+  delta: 0x03B4,
+  deltaturned: 0x018D,
+  denominatorminusonenumeratorbengali: 0x09F8,
+  dezh: 0x02A4,
+  dhabengali: 0x09A7,
+  dhadeva: 0x0927,
+  dhagujarati: 0x0AA7,
+  dhagurmukhi: 0x0A27,
+  dhook: 0x0257,
+  dialytikatonos: 0x0385,
+  dialytikatonoscmb: 0x0344,
+  diamond: 0x2666,
+  diamondsuitwhite: 0x2662,
+  dieresis: 0x00A8,
+  dieresisacute: 0xF6D7,
+  dieresisbelowcmb: 0x0324,
+  dieresiscmb: 0x0308,
+  dieresisgrave: 0xF6D8,
+  dieresistonos: 0x0385,
+  dihiragana: 0x3062,
+  dikatakana: 0x30C2,
+  dittomark: 0x3003,
+  divide: 0x00F7,
+  divides: 0x2223,
+  divisionslash: 0x2215,
+  djecyrillic: 0x0452,
+  dkshade: 0x2593,
+  dlinebelow: 0x1E0F,
+  dlsquare: 0x3397,
+  dmacron: 0x0111,
+  dmonospace: 0xFF44,
+  dnblock: 0x2584,
+  dochadathai: 0x0E0E,
+  dodekthai: 0x0E14,
+  dohiragana: 0x3069,
+  dokatakana: 0x30C9,
+  dollar: 0x0024,
+  dollarinferior: 0xF6E3,
+  dollarmonospace: 0xFF04,
+  dollaroldstyle: 0xF724,
+  dollarsmall: 0xFE69,
+  dollarsuperior: 0xF6E4,
+  dong: 0x20AB,
+  dorusquare: 0x3326,
+  dotaccent: 0x02D9,
+  dotaccentcmb: 0x0307,
+  dotbelowcmb: 0x0323,
+  dotbelowcomb: 0x0323,
+  dotkatakana: 0x30FB,
+  dotlessi: 0x0131,
+  dotlessj: 0xF6BE,
+  dotlessjstrokehook: 0x0284,
+  dotmath: 0x22C5,
+  dottedcircle: 0x25CC,
+  doubleyodpatah: 0xFB1F,
+  doubleyodpatahhebrew: 0xFB1F,
+  downtackbelowcmb: 0x031E,
+  downtackmod: 0x02D5,
+  dparen: 0x249F,
+  dsuperior: 0xF6EB,
+  dtail: 0x0256,
+  dtopbar: 0x018C,
+  duhiragana: 0x3065,
+  dukatakana: 0x30C5,
+  dz: 0x01F3,
+  dzaltone: 0x02A3,
+  dzcaron: 0x01C6,
+  dzcurl: 0x02A5,
+  dzeabkhasiancyrillic: 0x04E1,
+  dzecyrillic: 0x0455,
+  dzhecyrillic: 0x045F,
+  e: 0x0065,
+  eacute: 0x00E9,
+  earth: 0x2641,
+  ebengali: 0x098F,
+  ebopomofo: 0x311C,
+  ebreve: 0x0115,
+  ecandradeva: 0x090D,
+  ecandragujarati: 0x0A8D,
+  ecandravowelsigndeva: 0x0945,
+  ecandravowelsigngujarati: 0x0AC5,
+  ecaron: 0x011B,
+  ecedillabreve: 0x1E1D,
+  echarmenian: 0x0565,
+  echyiwnarmenian: 0x0587,
+  ecircle: 0x24D4,
+  ecircumflex: 0x00EA,
+  ecircumflexacute: 0x1EBF,
+  ecircumflexbelow: 0x1E19,
+  ecircumflexdotbelow: 0x1EC7,
+  ecircumflexgrave: 0x1EC1,
+  ecircumflexhookabove: 0x1EC3,
+  ecircumflextilde: 0x1EC5,
+  ecyrillic: 0x0454,
+  edblgrave: 0x0205,
+  edeva: 0x090F,
+  edieresis: 0x00EB,
+  edot: 0x0117,
+  edotaccent: 0x0117,
+  edotbelow: 0x1EB9,
+  eegurmukhi: 0x0A0F,
+  eematragurmukhi: 0x0A47,
+  efcyrillic: 0x0444,
+  egrave: 0x00E8,
+  egujarati: 0x0A8F,
+  eharmenian: 0x0567,
+  ehbopomofo: 0x311D,
+  ehiragana: 0x3048,
+  ehookabove: 0x1EBB,
+  eibopomofo: 0x311F,
+  eight: 0x0038,
+  eightarabic: 0x0668,
+  eightbengali: 0x09EE,
+  eightcircle: 0x2467,
+  eightcircleinversesansserif: 0x2791,
+  eightdeva: 0x096E,
+  eighteencircle: 0x2471,
+  eighteenparen: 0x2485,
+  eighteenperiod: 0x2499,
+  eightgujarati: 0x0AEE,
+  eightgurmukhi: 0x0A6E,
+  eighthackarabic: 0x0668,
+  eighthangzhou: 0x3028,
+  eighthnotebeamed: 0x266B,
+  eightideographicparen: 0x3227,
+  eightinferior: 0x2088,
+  eightmonospace: 0xFF18,
+  eightoldstyle: 0xF738,
+  eightparen: 0x247B,
+  eightperiod: 0x248F,
+  eightpersian: 0x06F8,
+  eightroman: 0x2177,
+  eightsuperior: 0x2078,
+  eightthai: 0x0E58,
+  einvertedbreve: 0x0207,
+  eiotifiedcyrillic: 0x0465,
+  ekatakana: 0x30A8,
+  ekatakanahalfwidth: 0xFF74,
+  ekonkargurmukhi: 0x0A74,
+  ekorean: 0x3154,
+  elcyrillic: 0x043B,
+  element: 0x2208,
+  elevencircle: 0x246A,
+  elevenparen: 0x247E,
+  elevenperiod: 0x2492,
+  elevenroman: 0x217A,
+  ellipsis: 0x2026,
+  ellipsisvertical: 0x22EE,
+  emacron: 0x0113,
+  emacronacute: 0x1E17,
+  emacrongrave: 0x1E15,
+  emcyrillic: 0x043C,
+  emdash: 0x2014,
+  emdashvertical: 0xFE31,
+  emonospace: 0xFF45,
+  emphasismarkarmenian: 0x055B,
+  emptyset: 0x2205,
+  enbopomofo: 0x3123,
+  encyrillic: 0x043D,
+  endash: 0x2013,
+  endashvertical: 0xFE32,
+  endescendercyrillic: 0x04A3,
+  eng: 0x014B,
+  engbopomofo: 0x3125,
+  enghecyrillic: 0x04A5,
+  enhookcyrillic: 0x04C8,
+  enspace: 0x2002,
+  eogonek: 0x0119,
+  eokorean: 0x3153,
+  eopen: 0x025B,
+  eopenclosed: 0x029A,
+  eopenreversed: 0x025C,
+  eopenreversedclosed: 0x025E,
+  eopenreversedhook: 0x025D,
+  eparen: 0x24A0,
+  epsilon: 0x03B5,
+  epsilontonos: 0x03AD,
+  equal: 0x003D,
+  equalmonospace: 0xFF1D,
+  equalsmall: 0xFE66,
+  equalsuperior: 0x207C,
+  equivalence: 0x2261,
+  erbopomofo: 0x3126,
+  ercyrillic: 0x0440,
+  ereversed: 0x0258,
+  ereversedcyrillic: 0x044D,
+  escyrillic: 0x0441,
+  esdescendercyrillic: 0x04AB,
+  esh: 0x0283,
+  eshcurl: 0x0286,
+  eshortdeva: 0x090E,
+  eshortvowelsigndeva: 0x0946,
+  eshreversedloop: 0x01AA,
+  eshsquatreversed: 0x0285,
+  esmallhiragana: 0x3047,
+  esmallkatakana: 0x30A7,
+  esmallkatakanahalfwidth: 0xFF6A,
+  estimated: 0x212E,
+  esuperior: 0xF6EC,
+  eta: 0x03B7,
+  etarmenian: 0x0568,
+  etatonos: 0x03AE,
+  eth: 0x00F0,
+  etilde: 0x1EBD,
+  etildebelow: 0x1E1B,
+  etnahtafoukhhebrew: 0x0591,
+  etnahtafoukhlefthebrew: 0x0591,
+  etnahtahebrew: 0x0591,
+  etnahtalefthebrew: 0x0591,
+  eturned: 0x01DD,
+  eukorean: 0x3161,
+  euro: 0x20AC,
+  evowelsignbengali: 0x09C7,
+  evowelsigndeva: 0x0947,
+  evowelsigngujarati: 0x0AC7,
+  exclam: 0x0021,
+  exclamarmenian: 0x055C,
+  exclamdbl: 0x203C,
+  exclamdown: 0x00A1,
+  exclamdownsmall: 0xF7A1,
+  exclammonospace: 0xFF01,
+  exclamsmall: 0xF721,
+  existential: 0x2203,
+  ezh: 0x0292,
+  ezhcaron: 0x01EF,
+  ezhcurl: 0x0293,
+  ezhreversed: 0x01B9,
+  ezhtail: 0x01BA,
+  f: 0x0066,
+  fadeva: 0x095E,
+  fagurmukhi: 0x0A5E,
+  fahrenheit: 0x2109,
+  fathaarabic: 0x064E,
+  fathalowarabic: 0x064E,
+  fathatanarabic: 0x064B,
+  fbopomofo: 0x3108,
+  fcircle: 0x24D5,
+  fdotaccent: 0x1E1F,
+  feharabic: 0x0641,
+  feharmenian: 0x0586,
+  fehfinalarabic: 0xFED2,
+  fehinitialarabic: 0xFED3,
+  fehmedialarabic: 0xFED4,
+  feicoptic: 0x03E5,
+  female: 0x2640,
+  ff: 0xFB00,
+  ffi: 0xFB03,
+  ffl: 0xFB04,
+  fi: 0xFB01,
+  fifteencircle: 0x246E,
+  fifteenparen: 0x2482,
+  fifteenperiod: 0x2496,
+  figuredash: 0x2012,
+  filledbox: 0x25A0,
+  filledrect: 0x25AC,
+  finalkaf: 0x05DA,
+  finalkafdagesh: 0xFB3A,
+  finalkafdageshhebrew: 0xFB3A,
+  finalkafhebrew: 0x05DA,
+  finalmem: 0x05DD,
+  finalmemhebrew: 0x05DD,
+  finalnun: 0x05DF,
+  finalnunhebrew: 0x05DF,
+  finalpe: 0x05E3,
+  finalpehebrew: 0x05E3,
+  finaltsadi: 0x05E5,
+  finaltsadihebrew: 0x05E5,
+  firsttonechinese: 0x02C9,
+  fisheye: 0x25C9,
+  fitacyrillic: 0x0473,
+  five: 0x0035,
+  fivearabic: 0x0665,
+  fivebengali: 0x09EB,
+  fivecircle: 0x2464,
+  fivecircleinversesansserif: 0x278E,
+  fivedeva: 0x096B,
+  fiveeighths: 0x215D,
+  fivegujarati: 0x0AEB,
+  fivegurmukhi: 0x0A6B,
+  fivehackarabic: 0x0665,
+  fivehangzhou: 0x3025,
+  fiveideographicparen: 0x3224,
+  fiveinferior: 0x2085,
+  fivemonospace: 0xFF15,
+  fiveoldstyle: 0xF735,
+  fiveparen: 0x2478,
+  fiveperiod: 0x248C,
+  fivepersian: 0x06F5,
+  fiveroman: 0x2174,
+  fivesuperior: 0x2075,
+  fivethai: 0x0E55,
+  fl: 0xFB02,
+  florin: 0x0192,
+  fmonospace: 0xFF46,
+  fmsquare: 0x3399,
+  fofanthai: 0x0E1F,
+  fofathai: 0x0E1D,
+  fongmanthai: 0x0E4F,
+  forall: 0x2200,
+  four: 0x0034,
+  fourarabic: 0x0664,
+  fourbengali: 0x09EA,
+  fourcircle: 0x2463,
+  fourcircleinversesansserif: 0x278D,
+  fourdeva: 0x096A,
+  fourgujarati: 0x0AEA,
+  fourgurmukhi: 0x0A6A,
+  fourhackarabic: 0x0664,
+  fourhangzhou: 0x3024,
+  fourideographicparen: 0x3223,
+  fourinferior: 0x2084,
+  fourmonospace: 0xFF14,
+  fournumeratorbengali: 0x09F7,
+  fouroldstyle: 0xF734,
+  fourparen: 0x2477,
+  fourperiod: 0x248B,
+  fourpersian: 0x06F4,
+  fourroman: 0x2173,
+  foursuperior: 0x2074,
+  fourteencircle: 0x246D,
+  fourteenparen: 0x2481,
+  fourteenperiod: 0x2495,
+  fourthai: 0x0E54,
+  fourthtonechinese: 0x02CB,
+  fparen: 0x24A1,
+  fraction: 0x2044,
+  franc: 0x20A3,
+  g: 0x0067,
+  gabengali: 0x0997,
+  gacute: 0x01F5,
+  gadeva: 0x0917,
+  gafarabic: 0x06AF,
+  gaffinalarabic: 0xFB93,
+  gafinitialarabic: 0xFB94,
+  gafmedialarabic: 0xFB95,
+  gagujarati: 0x0A97,
+  gagurmukhi: 0x0A17,
+  gahiragana: 0x304C,
+  gakatakana: 0x30AC,
+  gamma: 0x03B3,
+  gammalatinsmall: 0x0263,
+  gammasuperior: 0x02E0,
+  gangiacoptic: 0x03EB,
+  gbopomofo: 0x310D,
+  gbreve: 0x011F,
+  gcaron: 0x01E7,
+  gcedilla: 0x0123,
+  gcircle: 0x24D6,
+  gcircumflex: 0x011D,
+  gcommaaccent: 0x0123,
+  gdot: 0x0121,
+  gdotaccent: 0x0121,
+  gecyrillic: 0x0433,
+  gehiragana: 0x3052,
+  gekatakana: 0x30B2,
+  geometricallyequal: 0x2251,
+  gereshaccenthebrew: 0x059C,
+  gereshhebrew: 0x05F3,
+  gereshmuqdamhebrew: 0x059D,
+  germandbls: 0x00DF,
+  gershayimaccenthebrew: 0x059E,
+  gershayimhebrew: 0x05F4,
+  getamark: 0x3013,
+  ghabengali: 0x0998,
+  ghadarmenian: 0x0572,
+  ghadeva: 0x0918,
+  ghagujarati: 0x0A98,
+  ghagurmukhi: 0x0A18,
+  ghainarabic: 0x063A,
+  ghainfinalarabic: 0xFECE,
+  ghaininitialarabic: 0xFECF,
+  ghainmedialarabic: 0xFED0,
+  ghemiddlehookcyrillic: 0x0495,
+  ghestrokecyrillic: 0x0493,
+  gheupturncyrillic: 0x0491,
+  ghhadeva: 0x095A,
+  ghhagurmukhi: 0x0A5A,
+  ghook: 0x0260,
+  ghzsquare: 0x3393,
+  gihiragana: 0x304E,
+  gikatakana: 0x30AE,
+  gimarmenian: 0x0563,
+  gimel: 0x05D2,
+  gimeldagesh: 0xFB32,
+  gimeldageshhebrew: 0xFB32,
+  gimelhebrew: 0x05D2,
+  gjecyrillic: 0x0453,
+  glottalinvertedstroke: 0x01BE,
+  glottalstop: 0x0294,
+  glottalstopinverted: 0x0296,
+  glottalstopmod: 0x02C0,
+  glottalstopreversed: 0x0295,
+  glottalstopreversedmod: 0x02C1,
+  glottalstopreversedsuperior: 0x02E4,
+  glottalstopstroke: 0x02A1,
+  glottalstopstrokereversed: 0x02A2,
+  gmacron: 0x1E21,
+  gmonospace: 0xFF47,
+  gohiragana: 0x3054,
+  gokatakana: 0x30B4,
+  gparen: 0x24A2,
+  gpasquare: 0x33AC,
+  gradient: 0x2207,
+  grave: 0x0060,
+  gravebelowcmb: 0x0316,
+  gravecmb: 0x0300,
+  gravecomb: 0x0300,
+  gravedeva: 0x0953,
+  gravelowmod: 0x02CE,
+  gravemonospace: 0xFF40,
+  gravetonecmb: 0x0340,
+  greater: 0x003E,
+  greaterequal: 0x2265,
+  greaterequalorless: 0x22DB,
+  greatermonospace: 0xFF1E,
+  greaterorequivalent: 0x2273,
+  greaterorless: 0x2277,
+  greateroverequal: 0x2267,
+  greatersmall: 0xFE65,
+  gscript: 0x0261,
+  gstroke: 0x01E5,
+  guhiragana: 0x3050,
+  guillemotleft: 0x00AB,
+  guillemotright: 0x00BB,
+  guilsinglleft: 0x2039,
+  guilsinglright: 0x203A,
+  gukatakana: 0x30B0,
+  guramusquare: 0x3318,
+  gysquare: 0x33C9,
+  h: 0x0068,
+  haabkhasiancyrillic: 0x04A9,
+  haaltonearabic: 0x06C1,
+  habengali: 0x09B9,
+  hadescendercyrillic: 0x04B3,
+  hadeva: 0x0939,
+  hagujarati: 0x0AB9,
+  hagurmukhi: 0x0A39,
+  haharabic: 0x062D,
+  hahfinalarabic: 0xFEA2,
+  hahinitialarabic: 0xFEA3,
+  hahiragana: 0x306F,
+  hahmedialarabic: 0xFEA4,
+  haitusquare: 0x332A,
+  hakatakana: 0x30CF,
+  hakatakanahalfwidth: 0xFF8A,
+  halantgurmukhi: 0x0A4D,
+  hamzaarabic: 0x0621,
+  hamzalowarabic: 0x0621,
+  hangulfiller: 0x3164,
+  hardsigncyrillic: 0x044A,
+  harpoonleftbarbup: 0x21BC,
+  harpoonrightbarbup: 0x21C0,
+  hasquare: 0x33CA,
+  hatafpatah: 0x05B2,
+  hatafpatah16: 0x05B2,
+  hatafpatah23: 0x05B2,
+  hatafpatah2f: 0x05B2,
+  hatafpatahhebrew: 0x05B2,
+  hatafpatahnarrowhebrew: 0x05B2,
+  hatafpatahquarterhebrew: 0x05B2,
+  hatafpatahwidehebrew: 0x05B2,
+  hatafqamats: 0x05B3,
+  hatafqamats1b: 0x05B3,
+  hatafqamats28: 0x05B3,
+  hatafqamats34: 0x05B3,
+  hatafqamatshebrew: 0x05B3,
+  hatafqamatsnarrowhebrew: 0x05B3,
+  hatafqamatsquarterhebrew: 0x05B3,
+  hatafqamatswidehebrew: 0x05B3,
+  hatafsegol: 0x05B1,
+  hatafsegol17: 0x05B1,
+  hatafsegol24: 0x05B1,
+  hatafsegol30: 0x05B1,
+  hatafsegolhebrew: 0x05B1,
+  hatafsegolnarrowhebrew: 0x05B1,
+  hatafsegolquarterhebrew: 0x05B1,
+  hatafsegolwidehebrew: 0x05B1,
+  hbar: 0x0127,
+  hbopomofo: 0x310F,
+  hbrevebelow: 0x1E2B,
+  hcedilla: 0x1E29,
+  hcircle: 0x24D7,
+  hcircumflex: 0x0125,
+  hdieresis: 0x1E27,
+  hdotaccent: 0x1E23,
+  hdotbelow: 0x1E25,
+  he: 0x05D4,
+  heart: 0x2665,
+  heartsuitblack: 0x2665,
+  heartsuitwhite: 0x2661,
+  hedagesh: 0xFB34,
+  hedageshhebrew: 0xFB34,
+  hehaltonearabic: 0x06C1,
+  heharabic: 0x0647,
+  hehebrew: 0x05D4,
+  hehfinalaltonearabic: 0xFBA7,
+  hehfinalalttwoarabic: 0xFEEA,
+  hehfinalarabic: 0xFEEA,
+  hehhamzaabovefinalarabic: 0xFBA5,
+  hehhamzaaboveisolatedarabic: 0xFBA4,
+  hehinitialaltonearabic: 0xFBA8,
+  hehinitialarabic: 0xFEEB,
+  hehiragana: 0x3078,
+  hehmedialaltonearabic: 0xFBA9,
+  hehmedialarabic: 0xFEEC,
+  heiseierasquare: 0x337B,
+  hekatakana: 0x30D8,
+  hekatakanahalfwidth: 0xFF8D,
+  hekutaarusquare: 0x3336,
+  henghook: 0x0267,
+  herutusquare: 0x3339,
+  het: 0x05D7,
+  hethebrew: 0x05D7,
+  hhook: 0x0266,
+  hhooksuperior: 0x02B1,
+  hieuhacirclekorean: 0x327B,
+  hieuhaparenkorean: 0x321B,
+  hieuhcirclekorean: 0x326D,
+  hieuhkorean: 0x314E,
+  hieuhparenkorean: 0x320D,
+  hihiragana: 0x3072,
+  hikatakana: 0x30D2,
+  hikatakanahalfwidth: 0xFF8B,
+  hiriq: 0x05B4,
+  hiriq14: 0x05B4,
+  hiriq21: 0x05B4,
+  hiriq2d: 0x05B4,
+  hiriqhebrew: 0x05B4,
+  hiriqnarrowhebrew: 0x05B4,
+  hiriqquarterhebrew: 0x05B4,
+  hiriqwidehebrew: 0x05B4,
+  hlinebelow: 0x1E96,
+  hmonospace: 0xFF48,
+  hoarmenian: 0x0570,
+  hohipthai: 0x0E2B,
+  hohiragana: 0x307B,
+  hokatakana: 0x30DB,
+  hokatakanahalfwidth: 0xFF8E,
+  holam: 0x05B9,
+  holam19: 0x05B9,
+  holam26: 0x05B9,
+  holam32: 0x05B9,
+  holamhebrew: 0x05B9,
+  holamnarrowhebrew: 0x05B9,
+  holamquarterhebrew: 0x05B9,
+  holamwidehebrew: 0x05B9,
+  honokhukthai: 0x0E2E,
+  hookabovecomb: 0x0309,
+  hookcmb: 0x0309,
+  hookpalatalizedbelowcmb: 0x0321,
+  hookretroflexbelowcmb: 0x0322,
+  hoonsquare: 0x3342,
+  horicoptic: 0x03E9,
+  horizontalbar: 0x2015,
+  horncmb: 0x031B,
+  hotsprings: 0x2668,
+  house: 0x2302,
+  hparen: 0x24A3,
+  hsuperior: 0x02B0,
+  hturned: 0x0265,
+  huhiragana: 0x3075,
+  huiitosquare: 0x3333,
+  hukatakana: 0x30D5,
+  hukatakanahalfwidth: 0xFF8C,
+  hungarumlaut: 0x02DD,
+  hungarumlautcmb: 0x030B,
+  hv: 0x0195,
+  hyphen: 0x002D,
+  hypheninferior: 0xF6E5,
+  hyphenmonospace: 0xFF0D,
+  hyphensmall: 0xFE63,
+  hyphensuperior: 0xF6E6,
+  hyphentwo: 0x2010,
+  i: 0x0069,
+  iacute: 0x00ED,
+  iacyrillic: 0x044F,
+  ibengali: 0x0987,
+  ibopomofo: 0x3127,
+  ibreve: 0x012D,
+  icaron: 0x01D0,
+  icircle: 0x24D8,
+  icircumflex: 0x00EE,
+  icyrillic: 0x0456,
+  idblgrave: 0x0209,
+  ideographearthcircle: 0x328F,
+  ideographfirecircle: 0x328B,
+  ideographicallianceparen: 0x323F,
+  ideographiccallparen: 0x323A,
+  ideographiccentrecircle: 0x32A5,
+  ideographicclose: 0x3006,
+  ideographiccomma: 0x3001,
+  ideographiccommaleft: 0xFF64,
+  ideographiccongratulationparen: 0x3237,
+  ideographiccorrectcircle: 0x32A3,
+  ideographicearthparen: 0x322F,
+  ideographicenterpriseparen: 0x323D,
+  ideographicexcellentcircle: 0x329D,
+  ideographicfestivalparen: 0x3240,
+  ideographicfinancialcircle: 0x3296,
+  ideographicfinancialparen: 0x3236,
+  ideographicfireparen: 0x322B,
+  ideographichaveparen: 0x3232,
+  ideographichighcircle: 0x32A4,
+  ideographiciterationmark: 0x3005,
+  ideographiclaborcircle: 0x3298,
+  ideographiclaborparen: 0x3238,
+  ideographicleftcircle: 0x32A7,
+  ideographiclowcircle: 0x32A6,
+  ideographicmedicinecircle: 0x32A9,
+  ideographicmetalparen: 0x322E,
+  ideographicmoonparen: 0x322A,
+  ideographicnameparen: 0x3234,
+  ideographicperiod: 0x3002,
+  ideographicprintcircle: 0x329E,
+  ideographicreachparen: 0x3243,
+  ideographicrepresentparen: 0x3239,
+  ideographicresourceparen: 0x323E,
+  ideographicrightcircle: 0x32A8,
+  ideographicsecretcircle: 0x3299,
+  ideographicselfparen: 0x3242,
+  ideographicsocietyparen: 0x3233,
+  ideographicspace: 0x3000,
+  ideographicspecialparen: 0x3235,
+  ideographicstockparen: 0x3231,
+  ideographicstudyparen: 0x323B,
+  ideographicsunparen: 0x3230,
+  ideographicsuperviseparen: 0x323C,
+  ideographicwaterparen: 0x322C,
+  ideographicwoodparen: 0x322D,
+  ideographiczero: 0x3007,
+  ideographmetalcircle: 0x328E,
+  ideographmooncircle: 0x328A,
+  ideographnamecircle: 0x3294,
+  ideographsuncircle: 0x3290,
+  ideographwatercircle: 0x328C,
+  ideographwoodcircle: 0x328D,
+  ideva: 0x0907,
+  idieresis: 0x00EF,
+  idieresisacute: 0x1E2F,
+  idieresiscyrillic: 0x04E5,
+  idotbelow: 0x1ECB,
+  iebrevecyrillic: 0x04D7,
+  iecyrillic: 0x0435,
+  ieungacirclekorean: 0x3275,
+  ieungaparenkorean: 0x3215,
+  ieungcirclekorean: 0x3267,
+  ieungkorean: 0x3147,
+  ieungparenkorean: 0x3207,
+  igrave: 0x00EC,
+  igujarati: 0x0A87,
+  igurmukhi: 0x0A07,
+  ihiragana: 0x3044,
+  ihookabove: 0x1EC9,
+  iibengali: 0x0988,
+  iicyrillic: 0x0438,
+  iideva: 0x0908,
+  iigujarati: 0x0A88,
+  iigurmukhi: 0x0A08,
+  iimatragurmukhi: 0x0A40,
+  iinvertedbreve: 0x020B,
+  iishortcyrillic: 0x0439,
+  iivowelsignbengali: 0x09C0,
+  iivowelsigndeva: 0x0940,
+  iivowelsigngujarati: 0x0AC0,
+  ij: 0x0133,
+  ikatakana: 0x30A4,
+  ikatakanahalfwidth: 0xFF72,
+  ikorean: 0x3163,
+  ilde: 0x02DC,
+  iluyhebrew: 0x05AC,
+  imacron: 0x012B,
+  imacroncyrillic: 0x04E3,
+  imageorapproximatelyequal: 0x2253,
+  imatragurmukhi: 0x0A3F,
+  imonospace: 0xFF49,
+  increment: 0x2206,
+  infinity: 0x221E,
+  iniarmenian: 0x056B,
+  integral: 0x222B,
+  integralbottom: 0x2321,
+  integralbt: 0x2321,
+  integralex: 0xF8F5,
+  integraltop: 0x2320,
+  integraltp: 0x2320,
+  intersection: 0x2229,
+  intisquare: 0x3305,
+  invbullet: 0x25D8,
+  invcircle: 0x25D9,
+  invsmileface: 0x263B,
+  iocyrillic: 0x0451,
+  iogonek: 0x012F,
+  iota: 0x03B9,
+  iotadieresis: 0x03CA,
+  iotadieresistonos: 0x0390,
+  iotalatin: 0x0269,
+  iotatonos: 0x03AF,
+  iparen: 0x24A4,
+  irigurmukhi: 0x0A72,
+  ismallhiragana: 0x3043,
+  ismallkatakana: 0x30A3,
+  ismallkatakanahalfwidth: 0xFF68,
+  issharbengali: 0x09FA,
+  istroke: 0x0268,
+  isuperior: 0xF6ED,
+  iterationhiragana: 0x309D,
+  iterationkatakana: 0x30FD,
+  itilde: 0x0129,
+  itildebelow: 0x1E2D,
+  iubopomofo: 0x3129,
+  iucyrillic: 0x044E,
+  ivowelsignbengali: 0x09BF,
+  ivowelsigndeva: 0x093F,
+  ivowelsigngujarati: 0x0ABF,
+  izhitsacyrillic: 0x0475,
+  izhitsadblgravecyrillic: 0x0477,
+  j: 0x006A,
+  jaarmenian: 0x0571,
+  jabengali: 0x099C,
+  jadeva: 0x091C,
+  jagujarati: 0x0A9C,
+  jagurmukhi: 0x0A1C,
+  jbopomofo: 0x3110,
+  jcaron: 0x01F0,
+  jcircle: 0x24D9,
+  jcircumflex: 0x0135,
+  jcrossedtail: 0x029D,
+  jdotlessstroke: 0x025F,
+  jecyrillic: 0x0458,
+  jeemarabic: 0x062C,
+  jeemfinalarabic: 0xFE9E,
+  jeeminitialarabic: 0xFE9F,
+  jeemmedialarabic: 0xFEA0,
+  jeharabic: 0x0698,
+  jehfinalarabic: 0xFB8B,
+  jhabengali: 0x099D,
+  jhadeva: 0x091D,
+  jhagujarati: 0x0A9D,
+  jhagurmukhi: 0x0A1D,
+  jheharmenian: 0x057B,
+  jis: 0x3004,
+  jmonospace: 0xFF4A,
+  jparen: 0x24A5,
+  jsuperior: 0x02B2,
+  k: 0x006B,
+  kabashkircyrillic: 0x04A1,
+  kabengali: 0x0995,
+  kacute: 0x1E31,
+  kacyrillic: 0x043A,
+  kadescendercyrillic: 0x049B,
+  kadeva: 0x0915,
+  kaf: 0x05DB,
+  kafarabic: 0x0643,
+  kafdagesh: 0xFB3B,
+  kafdageshhebrew: 0xFB3B,
+  kaffinalarabic: 0xFEDA,
+  kafhebrew: 0x05DB,
+  kafinitialarabic: 0xFEDB,
+  kafmedialarabic: 0xFEDC,
+  kafrafehebrew: 0xFB4D,
+  kagujarati: 0x0A95,
+  kagurmukhi: 0x0A15,
+  kahiragana: 0x304B,
+  kahookcyrillic: 0x04C4,
+  kakatakana: 0x30AB,
+  kakatakanahalfwidth: 0xFF76,
+  kappa: 0x03BA,
+  kappasymbolgreek: 0x03F0,
+  kapyeounmieumkorean: 0x3171,
+  kapyeounphieuphkorean: 0x3184,
+  kapyeounpieupkorean: 0x3178,
+  kapyeounssangpieupkorean: 0x3179,
+  karoriisquare: 0x330D,
+  kashidaautoarabic: 0x0640,
+  kashidaautonosidebearingarabic: 0x0640,
+  kasmallkatakana: 0x30F5,
+  kasquare: 0x3384,
+  kasraarabic: 0x0650,
+  kasratanarabic: 0x064D,
+  kastrokecyrillic: 0x049F,
+  katahiraprolongmarkhalfwidth: 0xFF70,
+  kaverticalstrokecyrillic: 0x049D,
+  kbopomofo: 0x310E,
+  kcalsquare: 0x3389,
+  kcaron: 0x01E9,
+  kcedilla: 0x0137,
+  kcircle: 0x24DA,
+  kcommaaccent: 0x0137,
+  kdotbelow: 0x1E33,
+  keharmenian: 0x0584,
+  kehiragana: 0x3051,
+  kekatakana: 0x30B1,
+  kekatakanahalfwidth: 0xFF79,
+  kenarmenian: 0x056F,
+  kesmallkatakana: 0x30F6,
+  kgreenlandic: 0x0138,
+  khabengali: 0x0996,
+  khacyrillic: 0x0445,
+  khadeva: 0x0916,
+  khagujarati: 0x0A96,
+  khagurmukhi: 0x0A16,
+  khaharabic: 0x062E,
+  khahfinalarabic: 0xFEA6,
+  khahinitialarabic: 0xFEA7,
+  khahmedialarabic: 0xFEA8,
+  kheicoptic: 0x03E7,
+  khhadeva: 0x0959,
+  khhagurmukhi: 0x0A59,
+  khieukhacirclekorean: 0x3278,
+  khieukhaparenkorean: 0x3218,
+  khieukhcirclekorean: 0x326A,
+  khieukhkorean: 0x314B,
+  khieukhparenkorean: 0x320A,
+  khokhaithai: 0x0E02,
+  khokhonthai: 0x0E05,
+  khokhuatthai: 0x0E03,
+  khokhwaithai: 0x0E04,
+  khomutthai: 0x0E5B,
+  khook: 0x0199,
+  khorakhangthai: 0x0E06,
+  khzsquare: 0x3391,
+  kihiragana: 0x304D,
+  kikatakana: 0x30AD,
+  kikatakanahalfwidth: 0xFF77,
+  kiroguramusquare: 0x3315,
+  kiromeetorusquare: 0x3316,
+  kirosquare: 0x3314,
+  kiyeokacirclekorean: 0x326E,
+  kiyeokaparenkorean: 0x320E,
+  kiyeokcirclekorean: 0x3260,
+  kiyeokkorean: 0x3131,
+  kiyeokparenkorean: 0x3200,
+  kiyeoksioskorean: 0x3133,
+  kjecyrillic: 0x045C,
+  klinebelow: 0x1E35,
+  klsquare: 0x3398,
+  kmcubedsquare: 0x33A6,
+  kmonospace: 0xFF4B,
+  kmsquaredsquare: 0x33A2,
+  kohiragana: 0x3053,
+  kohmsquare: 0x33C0,
+  kokaithai: 0x0E01,
+  kokatakana: 0x30B3,
+  kokatakanahalfwidth: 0xFF7A,
+  kooposquare: 0x331E,
+  koppacyrillic: 0x0481,
+  koreanstandardsymbol: 0x327F,
+  koroniscmb: 0x0343,
+  kparen: 0x24A6,
+  kpasquare: 0x33AA,
+  ksicyrillic: 0x046F,
+  ktsquare: 0x33CF,
+  kturned: 0x029E,
+  kuhiragana: 0x304F,
+  kukatakana: 0x30AF,
+  kukatakanahalfwidth: 0xFF78,
+  kvsquare: 0x33B8,
+  kwsquare: 0x33BE,
+  l: 0x006C,
+  labengali: 0x09B2,
+  lacute: 0x013A,
+  ladeva: 0x0932,
+  lagujarati: 0x0AB2,
+  lagurmukhi: 0x0A32,
+  lakkhangyaothai: 0x0E45,
+  lamaleffinalarabic: 0xFEFC,
+  lamalefhamzaabovefinalarabic: 0xFEF8,
+  lamalefhamzaaboveisolatedarabic: 0xFEF7,
+  lamalefhamzabelowfinalarabic: 0xFEFA,
+  lamalefhamzabelowisolatedarabic: 0xFEF9,
+  lamalefisolatedarabic: 0xFEFB,
+  lamalefmaddaabovefinalarabic: 0xFEF6,
+  lamalefmaddaaboveisolatedarabic: 0xFEF5,
+  lamarabic: 0x0644,
+  lambda: 0x03BB,
+  lambdastroke: 0x019B,
+  lamed: 0x05DC,
+  lameddagesh: 0xFB3C,
+  lameddageshhebrew: 0xFB3C,
+  lamedhebrew: 0x05DC,
+  lamfinalarabic: 0xFEDE,
+  lamhahinitialarabic: 0xFCCA,
+  laminitialarabic: 0xFEDF,
+  lamjeeminitialarabic: 0xFCC9,
+  lamkhahinitialarabic: 0xFCCB,
+  lamlamhehisolatedarabic: 0xFDF2,
+  lammedialarabic: 0xFEE0,
+  lammeemhahinitialarabic: 0xFD88,
+  lammeeminitialarabic: 0xFCCC,
+  largecircle: 0x25EF,
+  lbar: 0x019A,
+  lbelt: 0x026C,
+  lbopomofo: 0x310C,
+  lcaron: 0x013E,
+  lcedilla: 0x013C,
+  lcircle: 0x24DB,
+  lcircumflexbelow: 0x1E3D,
+  lcommaaccent: 0x013C,
+  ldot: 0x0140,
+  ldotaccent: 0x0140,
+  ldotbelow: 0x1E37,
+  ldotbelowmacron: 0x1E39,
+  leftangleabovecmb: 0x031A,
+  lefttackbelowcmb: 0x0318,
+  less: 0x003C,
+  lessequal: 0x2264,
+  lessequalorgreater: 0x22DA,
+  lessmonospace: 0xFF1C,
+  lessorequivalent: 0x2272,
+  lessorgreater: 0x2276,
+  lessoverequal: 0x2266,
+  lesssmall: 0xFE64,
+  lezh: 0x026E,
+  lfblock: 0x258C,
+  lhookretroflex: 0x026D,
+  lira: 0x20A4,
+  liwnarmenian: 0x056C,
+  lj: 0x01C9,
+  ljecyrillic: 0x0459,
+  ll: 0xF6C0,
+  lladeva: 0x0933,
+  llagujarati: 0x0AB3,
+  llinebelow: 0x1E3B,
+  llladeva: 0x0934,
+  llvocalicbengali: 0x09E1,
+  llvocalicdeva: 0x0961,
+  llvocalicvowelsignbengali: 0x09E3,
+  llvocalicvowelsigndeva: 0x0963,
+  lmiddletilde: 0x026B,
+  lmonospace: 0xFF4C,
+  lmsquare: 0x33D0,
+  lochulathai: 0x0E2C,
+  logicaland: 0x2227,
+  logicalnot: 0x00AC,
+  logicalnotreversed: 0x2310,
+  logicalor: 0x2228,
+  lolingthai: 0x0E25,
+  longs: 0x017F,
+  lowlinecenterline: 0xFE4E,
+  lowlinecmb: 0x0332,
+  lowlinedashed: 0xFE4D,
+  lozenge: 0x25CA,
+  lparen: 0x24A7,
+  lslash: 0x0142,
+  lsquare: 0x2113,
+  lsuperior: 0xF6EE,
+  ltshade: 0x2591,
+  luthai: 0x0E26,
+  lvocalicbengali: 0x098C,
+  lvocalicdeva: 0x090C,
+  lvocalicvowelsignbengali: 0x09E2,
+  lvocalicvowelsigndeva: 0x0962,
+  lxsquare: 0x33D3,
+  m: 0x006D,
+  mabengali: 0x09AE,
+  macron: 0x00AF,
+  macronbelowcmb: 0x0331,
+  macroncmb: 0x0304,
+  macronlowmod: 0x02CD,
+  macronmonospace: 0xFFE3,
+  macute: 0x1E3F,
+  madeva: 0x092E,
+  magujarati: 0x0AAE,
+  magurmukhi: 0x0A2E,
+  mahapakhhebrew: 0x05A4,
+  mahapakhlefthebrew: 0x05A4,
+  mahiragana: 0x307E,
+  maichattawalowleftthai: 0xF895,
+  maichattawalowrightthai: 0xF894,
+  maichattawathai: 0x0E4B,
+  maichattawaupperleftthai: 0xF893,
+  maieklowleftthai: 0xF88C,
+  maieklowrightthai: 0xF88B,
+  maiekthai: 0x0E48,
+  maiekupperleftthai: 0xF88A,
+  maihanakatleftthai: 0xF884,
+  maihanakatthai: 0x0E31,
+  maitaikhuleftthai: 0xF889,
+  maitaikhuthai: 0x0E47,
+  maitholowleftthai: 0xF88F,
+  maitholowrightthai: 0xF88E,
+  maithothai: 0x0E49,
+  maithoupperleftthai: 0xF88D,
+  maitrilowleftthai: 0xF892,
+  maitrilowrightthai: 0xF891,
+  maitrithai: 0x0E4A,
+  maitriupperleftthai: 0xF890,
+  maiyamokthai: 0x0E46,
+  makatakana: 0x30DE,
+  makatakanahalfwidth: 0xFF8F,
+  male: 0x2642,
+  mansyonsquare: 0x3347,
+  maqafhebrew: 0x05BE,
+  mars: 0x2642,
+  masoracirclehebrew: 0x05AF,
+  masquare: 0x3383,
+  mbopomofo: 0x3107,
+  mbsquare: 0x33D4,
+  mcircle: 0x24DC,
+  mcubedsquare: 0x33A5,
+  mdotaccent: 0x1E41,
+  mdotbelow: 0x1E43,
+  meemarabic: 0x0645,
+  meemfinalarabic: 0xFEE2,
+  meeminitialarabic: 0xFEE3,
+  meemmedialarabic: 0xFEE4,
+  meemmeeminitialarabic: 0xFCD1,
+  meemmeemisolatedarabic: 0xFC48,
+  meetorusquare: 0x334D,
+  mehiragana: 0x3081,
+  meizierasquare: 0x337E,
+  mekatakana: 0x30E1,
+  mekatakanahalfwidth: 0xFF92,
+  mem: 0x05DE,
+  memdagesh: 0xFB3E,
+  memdageshhebrew: 0xFB3E,
+  memhebrew: 0x05DE,
+  menarmenian: 0x0574,
+  merkhahebrew: 0x05A5,
+  merkhakefulahebrew: 0x05A6,
+  merkhakefulalefthebrew: 0x05A6,
+  merkhalefthebrew: 0x05A5,
+  mhook: 0x0271,
+  mhzsquare: 0x3392,
+  middledotkatakanahalfwidth: 0xFF65,
+  middot: 0x00B7,
+  mieumacirclekorean: 0x3272,
+  mieumaparenkorean: 0x3212,
+  mieumcirclekorean: 0x3264,
+  mieumkorean: 0x3141,
+  mieumpansioskorean: 0x3170,
+  mieumparenkorean: 0x3204,
+  mieumpieupkorean: 0x316E,
+  mieumsioskorean: 0x316F,
+  mihiragana: 0x307F,
+  mikatakana: 0x30DF,
+  mikatakanahalfwidth: 0xFF90,
+  minus: 0x2212,
+  minusbelowcmb: 0x0320,
+  minuscircle: 0x2296,
+  minusmod: 0x02D7,
+  minusplus: 0x2213,
+  minute: 0x2032,
+  miribaarusquare: 0x334A,
+  mirisquare: 0x3349,
+  mlonglegturned: 0x0270,
+  mlsquare: 0x3396,
+  mmcubedsquare: 0x33A3,
+  mmonospace: 0xFF4D,
+  mmsquaredsquare: 0x339F,
+  mohiragana: 0x3082,
+  mohmsquare: 0x33C1,
+  mokatakana: 0x30E2,
+  mokatakanahalfwidth: 0xFF93,
+  molsquare: 0x33D6,
+  momathai: 0x0E21,
+  moverssquare: 0x33A7,
+  moverssquaredsquare: 0x33A8,
+  mparen: 0x24A8,
+  mpasquare: 0x33AB,
+  mssquare: 0x33B3,
+  msuperior: 0xF6EF,
+  mturned: 0x026F,
+  mu: 0x00B5,
+  mu1: 0x00B5,
+  muasquare: 0x3382,
+  muchgreater: 0x226B,
+  muchless: 0x226A,
+  mufsquare: 0x338C,
+  mugreek: 0x03BC,
+  mugsquare: 0x338D,
+  muhiragana: 0x3080,
+  mukatakana: 0x30E0,
+  mukatakanahalfwidth: 0xFF91,
+  mulsquare: 0x3395,
+  multiply: 0x00D7,
+  mumsquare: 0x339B,
+  munahhebrew: 0x05A3,
+  munahlefthebrew: 0x05A3,
+  musicalnote: 0x266A,
+  musicalnotedbl: 0x266B,
+  musicflatsign: 0x266D,
+  musicsharpsign: 0x266F,
+  mussquare: 0x33B2,
+  muvsquare: 0x33B6,
+  muwsquare: 0x33BC,
+  mvmegasquare: 0x33B9,
+  mvsquare: 0x33B7,
+  mwmegasquare: 0x33BF,
+  mwsquare: 0x33BD,
+  n: 0x006E,
+  nabengali: 0x09A8,
+  nabla: 0x2207,
+  nacute: 0x0144,
+  nadeva: 0x0928,
+  nagujarati: 0x0AA8,
+  nagurmukhi: 0x0A28,
+  nahiragana: 0x306A,
+  nakatakana: 0x30CA,
+  nakatakanahalfwidth: 0xFF85,
+  napostrophe: 0x0149,
+  nasquare: 0x3381,
+  nbopomofo: 0x310B,
+  nbspace: 0x00A0,
+  ncaron: 0x0148,
+  ncedilla: 0x0146,
+  ncircle: 0x24DD,
+  ncircumflexbelow: 0x1E4B,
+  ncommaaccent: 0x0146,
+  ndotaccent: 0x1E45,
+  ndotbelow: 0x1E47,
+  nehiragana: 0x306D,
+  nekatakana: 0x30CD,
+  nekatakanahalfwidth: 0xFF88,
+  newsheqelsign: 0x20AA,
+  nfsquare: 0x338B,
+  ngabengali: 0x0999,
+  ngadeva: 0x0919,
+  ngagujarati: 0x0A99,
+  ngagurmukhi: 0x0A19,
+  ngonguthai: 0x0E07,
+  nhiragana: 0x3093,
+  nhookleft: 0x0272,
+  nhookretroflex: 0x0273,
+  nieunacirclekorean: 0x326F,
+  nieunaparenkorean: 0x320F,
+  nieuncieuckorean: 0x3135,
+  nieuncirclekorean: 0x3261,
+  nieunhieuhkorean: 0x3136,
+  nieunkorean: 0x3134,
+  nieunpansioskorean: 0x3168,
+  nieunparenkorean: 0x3201,
+  nieunsioskorean: 0x3167,
+  nieuntikeutkorean: 0x3166,
+  nihiragana: 0x306B,
+  nikatakana: 0x30CB,
+  nikatakanahalfwidth: 0xFF86,
+  nikhahitleftthai: 0xF899,
+  nikhahitthai: 0x0E4D,
+  nine: 0x0039,
+  ninearabic: 0x0669,
+  ninebengali: 0x09EF,
+  ninecircle: 0x2468,
+  ninecircleinversesansserif: 0x2792,
+  ninedeva: 0x096F,
+  ninegujarati: 0x0AEF,
+  ninegurmukhi: 0x0A6F,
+  ninehackarabic: 0x0669,
+  ninehangzhou: 0x3029,
+  nineideographicparen: 0x3228,
+  nineinferior: 0x2089,
+  ninemonospace: 0xFF19,
+  nineoldstyle: 0xF739,
+  nineparen: 0x247C,
+  nineperiod: 0x2490,
+  ninepersian: 0x06F9,
+  nineroman: 0x2178,
+  ninesuperior: 0x2079,
+  nineteencircle: 0x2472,
+  nineteenparen: 0x2486,
+  nineteenperiod: 0x249A,
+  ninethai: 0x0E59,
+  nj: 0x01CC,
+  njecyrillic: 0x045A,
+  nkatakana: 0x30F3,
+  nkatakanahalfwidth: 0xFF9D,
+  nlegrightlong: 0x019E,
+  nlinebelow: 0x1E49,
+  nmonospace: 0xFF4E,
+  nmsquare: 0x339A,
+  nnabengali: 0x09A3,
+  nnadeva: 0x0923,
+  nnagujarati: 0x0AA3,
+  nnagurmukhi: 0x0A23,
+  nnnadeva: 0x0929,
+  nohiragana: 0x306E,
+  nokatakana: 0x30CE,
+  nokatakanahalfwidth: 0xFF89,
+  nonbreakingspace: 0x00A0,
+  nonenthai: 0x0E13,
+  nonuthai: 0x0E19,
+  noonarabic: 0x0646,
+  noonfinalarabic: 0xFEE6,
+  noonghunnaarabic: 0x06BA,
+  noonghunnafinalarabic: 0xFB9F,
+  nooninitialarabic: 0xFEE7,
+  noonjeeminitialarabic: 0xFCD2,
+  noonjeemisolatedarabic: 0xFC4B,
+  noonmedialarabic: 0xFEE8,
+  noonmeeminitialarabic: 0xFCD5,
+  noonmeemisolatedarabic: 0xFC4E,
+  noonnoonfinalarabic: 0xFC8D,
+  notcontains: 0x220C,
+  notelement: 0x2209,
+  notelementof: 0x2209,
+  notequal: 0x2260,
+  notgreater: 0x226F,
+  notgreaternorequal: 0x2271,
+  notgreaternorless: 0x2279,
+  notidentical: 0x2262,
+  notless: 0x226E,
+  notlessnorequal: 0x2270,
+  notparallel: 0x2226,
+  notprecedes: 0x2280,
+  notsubset: 0x2284,
+  notsucceeds: 0x2281,
+  notsuperset: 0x2285,
+  nowarmenian: 0x0576,
+  nparen: 0x24A9,
+  nssquare: 0x33B1,
+  nsuperior: 0x207F,
+  ntilde: 0x00F1,
+  nu: 0x03BD,
+  nuhiragana: 0x306C,
+  nukatakana: 0x30CC,
+  nukatakanahalfwidth: 0xFF87,
+  nuktabengali: 0x09BC,
+  nuktadeva: 0x093C,
+  nuktagujarati: 0x0ABC,
+  nuktagurmukhi: 0x0A3C,
+  numbersign: 0x0023,
+  numbersignmonospace: 0xFF03,
+  numbersignsmall: 0xFE5F,
+  numeralsigngreek: 0x0374,
+  numeralsignlowergreek: 0x0375,
+  numero: 0x2116,
+  nun: 0x05E0,
+  nundagesh: 0xFB40,
+  nundageshhebrew: 0xFB40,
+  nunhebrew: 0x05E0,
+  nvsquare: 0x33B5,
+  nwsquare: 0x33BB,
+  nyabengali: 0x099E,
+  nyadeva: 0x091E,
+  nyagujarati: 0x0A9E,
+  nyagurmukhi: 0x0A1E,
+  o: 0x006F,
+  oacute: 0x00F3,
+  oangthai: 0x0E2D,
+  obarred: 0x0275,
+  obarredcyrillic: 0x04E9,
+  obarreddieresiscyrillic: 0x04EB,
+  obengali: 0x0993,
+  obopomofo: 0x311B,
+  obreve: 0x014F,
+  ocandradeva: 0x0911,
+  ocandragujarati: 0x0A91,
+  ocandravowelsigndeva: 0x0949,
+  ocandravowelsigngujarati: 0x0AC9,
+  ocaron: 0x01D2,
+  ocircle: 0x24DE,
+  ocircumflex: 0x00F4,
+  ocircumflexacute: 0x1ED1,
+  ocircumflexdotbelow: 0x1ED9,
+  ocircumflexgrave: 0x1ED3,
+  ocircumflexhookabove: 0x1ED5,
+  ocircumflextilde: 0x1ED7,
+  ocyrillic: 0x043E,
+  odblacute: 0x0151,
+  odblgrave: 0x020D,
+  odeva: 0x0913,
+  odieresis: 0x00F6,
+  odieresiscyrillic: 0x04E7,
+  odotbelow: 0x1ECD,
+  oe: 0x0153,
+  oekorean: 0x315A,
+  ogonek: 0x02DB,
+  ogonekcmb: 0x0328,
+  ograve: 0x00F2,
+  ogujarati: 0x0A93,
+  oharmenian: 0x0585,
+  ohiragana: 0x304A,
+  ohookabove: 0x1ECF,
+  ohorn: 0x01A1,
+  ohornacute: 0x1EDB,
+  ohorndotbelow: 0x1EE3,
+  ohorngrave: 0x1EDD,
+  ohornhookabove: 0x1EDF,
+  ohorntilde: 0x1EE1,
+  ohungarumlaut: 0x0151,
+  oi: 0x01A3,
+  oinvertedbreve: 0x020F,
+  okatakana: 0x30AA,
+  okatakanahalfwidth: 0xFF75,
+  okorean: 0x3157,
+  olehebrew: 0x05AB,
+  omacron: 0x014D,
+  omacronacute: 0x1E53,
+  omacrongrave: 0x1E51,
+  omdeva: 0x0950,
+  omega: 0x03C9,
+  omega1: 0x03D6,
+  omegacyrillic: 0x0461,
+  omegalatinclosed: 0x0277,
+  omegaroundcyrillic: 0x047B,
+  omegatitlocyrillic: 0x047D,
+  omegatonos: 0x03CE,
+  omgujarati: 0x0AD0,
+  omicron: 0x03BF,
+  omicrontonos: 0x03CC,
+  omonospace: 0xFF4F,
+  one: 0x0031,
+  onearabic: 0x0661,
+  onebengali: 0x09E7,
+  onecircle: 0x2460,
+  onecircleinversesansserif: 0x278A,
+  onedeva: 0x0967,
+  onedotenleader: 0x2024,
+  oneeighth: 0x215B,
+  onefitted: 0xF6DC,
+  onegujarati: 0x0AE7,
+  onegurmukhi: 0x0A67,
+  onehackarabic: 0x0661,
+  onehalf: 0x00BD,
+  onehangzhou: 0x3021,
+  oneideographicparen: 0x3220,
+  oneinferior: 0x2081,
+  onemonospace: 0xFF11,
+  onenumeratorbengali: 0x09F4,
+  oneoldstyle: 0xF731,
+  oneparen: 0x2474,
+  oneperiod: 0x2488,
+  onepersian: 0x06F1,
+  onequarter: 0x00BC,
+  oneroman: 0x2170,
+  onesuperior: 0x00B9,
+  onethai: 0x0E51,
+  onethird: 0x2153,
+  oogonek: 0x01EB,
+  oogonekmacron: 0x01ED,
+  oogurmukhi: 0x0A13,
+  oomatragurmukhi: 0x0A4B,
+  oopen: 0x0254,
+  oparen: 0x24AA,
+  openbullet: 0x25E6,
+  option: 0x2325,
+  ordfeminine: 0x00AA,
+  ordmasculine: 0x00BA,
+  orthogonal: 0x221F,
+  oshortdeva: 0x0912,
+  oshortvowelsigndeva: 0x094A,
+  oslash: 0x00F8,
+  oslashacute: 0x01FF,
+  osmallhiragana: 0x3049,
+  osmallkatakana: 0x30A9,
+  osmallkatakanahalfwidth: 0xFF6B,
+  ostrokeacute: 0x01FF,
+  osuperior: 0xF6F0,
+  otcyrillic: 0x047F,
+  otilde: 0x00F5,
+  otildeacute: 0x1E4D,
+  otildedieresis: 0x1E4F,
+  oubopomofo: 0x3121,
+  overline: 0x203E,
+  overlinecenterline: 0xFE4A,
+  overlinecmb: 0x0305,
+  overlinedashed: 0xFE49,
+  overlinedblwavy: 0xFE4C,
+  overlinewavy: 0xFE4B,
+  overscore: 0x00AF,
+  ovowelsignbengali: 0x09CB,
+  ovowelsigndeva: 0x094B,
+  ovowelsigngujarati: 0x0ACB,
+  p: 0x0070,
+  paampssquare: 0x3380,
+  paasentosquare: 0x332B,
+  pabengali: 0x09AA,
+  pacute: 0x1E55,
+  padeva: 0x092A,
+  pagedown: 0x21DF,
+  pageup: 0x21DE,
+  pagujarati: 0x0AAA,
+  pagurmukhi: 0x0A2A,
+  pahiragana: 0x3071,
+  paiyannoithai: 0x0E2F,
+  pakatakana: 0x30D1,
+  palatalizationcyrilliccmb: 0x0484,
+  palochkacyrillic: 0x04C0,
+  pansioskorean: 0x317F,
+  paragraph: 0x00B6,
+  parallel: 0x2225,
+  parenleft: 0x0028,
+  parenleftaltonearabic: 0xFD3E,
+  parenleftbt: 0xF8ED,
+  parenleftex: 0xF8EC,
+  parenleftinferior: 0x208D,
+  parenleftmonospace: 0xFF08,
+  parenleftsmall: 0xFE59,
+  parenleftsuperior: 0x207D,
+  parenlefttp: 0xF8EB,
+  parenleftvertical: 0xFE35,
+  parenright: 0x0029,
+  parenrightaltonearabic: 0xFD3F,
+  parenrightbt: 0xF8F8,
+  parenrightex: 0xF8F7,
+  parenrightinferior: 0x208E,
+  parenrightmonospace: 0xFF09,
+  parenrightsmall: 0xFE5A,
+  parenrightsuperior: 0x207E,
+  parenrighttp: 0xF8F6,
+  parenrightvertical: 0xFE36,
+  partialdiff: 0x2202,
+  paseqhebrew: 0x05C0,
+  pashtahebrew: 0x0599,
+  pasquare: 0x33A9,
+  patah: 0x05B7,
+  patah11: 0x05B7,
+  patah1d: 0x05B7,
+  patah2a: 0x05B7,
+  patahhebrew: 0x05B7,
+  patahnarrowhebrew: 0x05B7,
+  patahquarterhebrew: 0x05B7,
+  patahwidehebrew: 0x05B7,
+  pazerhebrew: 0x05A1,
+  pbopomofo: 0x3106,
+  pcircle: 0x24DF,
+  pdotaccent: 0x1E57,
+  pe: 0x05E4,
+  pecyrillic: 0x043F,
+  pedagesh: 0xFB44,
+  pedageshhebrew: 0xFB44,
+  peezisquare: 0x333B,
+  pefinaldageshhebrew: 0xFB43,
+  peharabic: 0x067E,
+  peharmenian: 0x057A,
+  pehebrew: 0x05E4,
+  pehfinalarabic: 0xFB57,
+  pehinitialarabic: 0xFB58,
+  pehiragana: 0x307A,
+  pehmedialarabic: 0xFB59,
+  pekatakana: 0x30DA,
+  pemiddlehookcyrillic: 0x04A7,
+  perafehebrew: 0xFB4E,
+  percent: 0x0025,
+  percentarabic: 0x066A,
+  percentmonospace: 0xFF05,
+  percentsmall: 0xFE6A,
+  period: 0x002E,
+  periodarmenian: 0x0589,
+  periodcentered: 0x00B7,
+  periodhalfwidth: 0xFF61,
+  periodinferior: 0xF6E7,
+  periodmonospace: 0xFF0E,
+  periodsmall: 0xFE52,
+  periodsuperior: 0xF6E8,
+  perispomenigreekcmb: 0x0342,
+  perpendicular: 0x22A5,
+  perthousand: 0x2030,
+  peseta: 0x20A7,
+  pfsquare: 0x338A,
+  phabengali: 0x09AB,
+  phadeva: 0x092B,
+  phagujarati: 0x0AAB,
+  phagurmukhi: 0x0A2B,
+  phi: 0x03C6,
+  phi1: 0x03D5,
+  phieuphacirclekorean: 0x327A,
+  phieuphaparenkorean: 0x321A,
+  phieuphcirclekorean: 0x326C,
+  phieuphkorean: 0x314D,
+  phieuphparenkorean: 0x320C,
+  philatin: 0x0278,
+  phinthuthai: 0x0E3A,
+  phisymbolgreek: 0x03D5,
+  phook: 0x01A5,
+  phophanthai: 0x0E1E,
+  phophungthai: 0x0E1C,
+  phosamphaothai: 0x0E20,
+  pi: 0x03C0,
+  pieupacirclekorean: 0x3273,
+  pieupaparenkorean: 0x3213,
+  pieupcieuckorean: 0x3176,
+  pieupcirclekorean: 0x3265,
+  pieupkiyeokkorean: 0x3172,
+  pieupkorean: 0x3142,
+  pieupparenkorean: 0x3205,
+  pieupsioskiyeokkorean: 0x3174,
+  pieupsioskorean: 0x3144,
+  pieupsiostikeutkorean: 0x3175,
+  pieupthieuthkorean: 0x3177,
+  pieuptikeutkorean: 0x3173,
+  pihiragana: 0x3074,
+  pikatakana: 0x30D4,
+  pisymbolgreek: 0x03D6,
+  piwrarmenian: 0x0583,
+  plus: 0x002B,
+  plusbelowcmb: 0x031F,
+  pluscircle: 0x2295,
+  plusminus: 0x00B1,
+  plusmod: 0x02D6,
+  plusmonospace: 0xFF0B,
+  plussmall: 0xFE62,
+  plussuperior: 0x207A,
+  pmonospace: 0xFF50,
+  pmsquare: 0x33D8,
+  pohiragana: 0x307D,
+  pointingindexdownwhite: 0x261F,
+  pointingindexleftwhite: 0x261C,
+  pointingindexrightwhite: 0x261E,
+  pointingindexupwhite: 0x261D,
+  pokatakana: 0x30DD,
+  poplathai: 0x0E1B,
+  postalmark: 0x3012,
+  postalmarkface: 0x3020,
+  pparen: 0x24AB,
+  precedes: 0x227A,
+  prescription: 0x211E,
+  primemod: 0x02B9,
+  primereversed: 0x2035,
+  product: 0x220F,
+  projective: 0x2305,
+  prolongedkana: 0x30FC,
+  propellor: 0x2318,
+  propersubset: 0x2282,
+  propersuperset: 0x2283,
+  proportion: 0x2237,
+  proportional: 0x221D,
+  psi: 0x03C8,
+  psicyrillic: 0x0471,
+  psilipneumatacyrilliccmb: 0x0486,
+  pssquare: 0x33B0,
+  puhiragana: 0x3077,
+  pukatakana: 0x30D7,
+  pvsquare: 0x33B4,
+  pwsquare: 0x33BA,
+  q: 0x0071,
+  qadeva: 0x0958,
+  qadmahebrew: 0x05A8,
+  qafarabic: 0x0642,
+  qaffinalarabic: 0xFED6,
+  qafinitialarabic: 0xFED7,
+  qafmedialarabic: 0xFED8,
+  qamats: 0x05B8,
+  qamats10: 0x05B8,
+  qamats1a: 0x05B8,
+  qamats1c: 0x05B8,
+  qamats27: 0x05B8,
+  qamats29: 0x05B8,
+  qamats33: 0x05B8,
+  qamatsde: 0x05B8,
+  qamatshebrew: 0x05B8,
+  qamatsnarrowhebrew: 0x05B8,
+  qamatsqatanhebrew: 0x05B8,
+  qamatsqatannarrowhebrew: 0x05B8,
+  qamatsqatanquarterhebrew: 0x05B8,
+  qamatsqatanwidehebrew: 0x05B8,
+  qamatsquarterhebrew: 0x05B8,
+  qamatswidehebrew: 0x05B8,
+  qarneyparahebrew: 0x059F,
+  qbopomofo: 0x3111,
+  qcircle: 0x24E0,
+  qhook: 0x02A0,
+  qmonospace: 0xFF51,
+  qof: 0x05E7,
+  qofdagesh: 0xFB47,
+  qofdageshhebrew: 0xFB47,
+  qofhebrew: 0x05E7,
+  qparen: 0x24AC,
+  quarternote: 0x2669,
+  qubuts: 0x05BB,
+  qubuts18: 0x05BB,
+  qubuts25: 0x05BB,
+  qubuts31: 0x05BB,
+  qubutshebrew: 0x05BB,
+  qubutsnarrowhebrew: 0x05BB,
+  qubutsquarterhebrew: 0x05BB,
+  qubutswidehebrew: 0x05BB,
+  question: 0x003F,
+  questionarabic: 0x061F,
+  questionarmenian: 0x055E,
+  questiondown: 0x00BF,
+  questiondownsmall: 0xF7BF,
+  questiongreek: 0x037E,
+  questionmonospace: 0xFF1F,
+  questionsmall: 0xF73F,
+  quotedbl: 0x0022,
+  quotedblbase: 0x201E,
+  quotedblleft: 0x201C,
+  quotedblmonospace: 0xFF02,
+  quotedblprime: 0x301E,
+  quotedblprimereversed: 0x301D,
+  quotedblright: 0x201D,
+  quoteleft: 0x2018,
+  quoteleftreversed: 0x201B,
+  quotereversed: 0x201B,
+  quoteright: 0x2019,
+  quoterightn: 0x0149,
+  quotesinglbase: 0x201A,
+  quotesingle: 0x0027,
+  quotesinglemonospace: 0xFF07,
+  r: 0x0072,
+  raarmenian: 0x057C,
+  rabengali: 0x09B0,
+  racute: 0x0155,
+  radeva: 0x0930,
+  radical: 0x221A,
+  radicalex: 0xF8E5,
+  radoverssquare: 0x33AE,
+  radoverssquaredsquare: 0x33AF,
+  radsquare: 0x33AD,
+  rafe: 0x05BF,
+  rafehebrew: 0x05BF,
+  ragujarati: 0x0AB0,
+  ragurmukhi: 0x0A30,
+  rahiragana: 0x3089,
+  rakatakana: 0x30E9,
+  rakatakanahalfwidth: 0xFF97,
+  ralowerdiagonalbengali: 0x09F1,
+  ramiddlediagonalbengali: 0x09F0,
+  ramshorn: 0x0264,
+  ratio: 0x2236,
+  rbopomofo: 0x3116,
+  rcaron: 0x0159,
+  rcedilla: 0x0157,
+  rcircle: 0x24E1,
+  rcommaaccent: 0x0157,
+  rdblgrave: 0x0211,
+  rdotaccent: 0x1E59,
+  rdotbelow: 0x1E5B,
+  rdotbelowmacron: 0x1E5D,
+  referencemark: 0x203B,
+  reflexsubset: 0x2286,
+  reflexsuperset: 0x2287,
+  registered: 0x00AE,
+  registersans: 0xF8E8,
+  registerserif: 0xF6DA,
+  reharabic: 0x0631,
+  reharmenian: 0x0580,
+  rehfinalarabic: 0xFEAE,
+  rehiragana: 0x308C,
+  rekatakana: 0x30EC,
+  rekatakanahalfwidth: 0xFF9A,
+  resh: 0x05E8,
+  reshdageshhebrew: 0xFB48,
+  reshhebrew: 0x05E8,
+  reversedtilde: 0x223D,
+  reviahebrew: 0x0597,
+  reviamugrashhebrew: 0x0597,
+  revlogicalnot: 0x2310,
+  rfishhook: 0x027E,
+  rfishhookreversed: 0x027F,
+  rhabengali: 0x09DD,
+  rhadeva: 0x095D,
+  rho: 0x03C1,
+  rhook: 0x027D,
+  rhookturned: 0x027B,
+  rhookturnedsuperior: 0x02B5,
+  rhosymbolgreek: 0x03F1,
+  rhotichookmod: 0x02DE,
+  rieulacirclekorean: 0x3271,
+  rieulaparenkorean: 0x3211,
+  rieulcirclekorean: 0x3263,
+  rieulhieuhkorean: 0x3140,
+  rieulkiyeokkorean: 0x313A,
+  rieulkiyeoksioskorean: 0x3169,
+  rieulkorean: 0x3139,
+  rieulmieumkorean: 0x313B,
+  rieulpansioskorean: 0x316C,
+  rieulparenkorean: 0x3203,
+  rieulphieuphkorean: 0x313F,
+  rieulpieupkorean: 0x313C,
+  rieulpieupsioskorean: 0x316B,
+  rieulsioskorean: 0x313D,
+  rieulthieuthkorean: 0x313E,
+  rieultikeutkorean: 0x316A,
+  rieulyeorinhieuhkorean: 0x316D,
+  rightangle: 0x221F,
+  righttackbelowcmb: 0x0319,
+  righttriangle: 0x22BF,
+  rihiragana: 0x308A,
+  rikatakana: 0x30EA,
+  rikatakanahalfwidth: 0xFF98,
+  ring: 0x02DA,
+  ringbelowcmb: 0x0325,
+  ringcmb: 0x030A,
+  ringhalfleft: 0x02BF,
+  ringhalfleftarmenian: 0x0559,
+  ringhalfleftbelowcmb: 0x031C,
+  ringhalfleftcentered: 0x02D3,
+  ringhalfright: 0x02BE,
+  ringhalfrightbelowcmb: 0x0339,
+  ringhalfrightcentered: 0x02D2,
+  rinvertedbreve: 0x0213,
+  rittorusquare: 0x3351,
+  rlinebelow: 0x1E5F,
+  rlongleg: 0x027C,
+  rlonglegturned: 0x027A,
+  rmonospace: 0xFF52,
+  rohiragana: 0x308D,
+  rokatakana: 0x30ED,
+  rokatakanahalfwidth: 0xFF9B,
+  roruathai: 0x0E23,
+  rparen: 0x24AD,
+  rrabengali: 0x09DC,
+  rradeva: 0x0931,
+  rragurmukhi: 0x0A5C,
+  rreharabic: 0x0691,
+  rrehfinalarabic: 0xFB8D,
+  rrvocalicbengali: 0x09E0,
+  rrvocalicdeva: 0x0960,
+  rrvocalicgujarati: 0x0AE0,
+  rrvocalicvowelsignbengali: 0x09C4,
+  rrvocalicvowelsigndeva: 0x0944,
+  rrvocalicvowelsigngujarati: 0x0AC4,
+  rsuperior: 0xF6F1,
+  rtblock: 0x2590,
+  rturned: 0x0279,
+  rturnedsuperior: 0x02B4,
+  ruhiragana: 0x308B,
+  rukatakana: 0x30EB,
+  rukatakanahalfwidth: 0xFF99,
+  rupeemarkbengali: 0x09F2,
+  rupeesignbengali: 0x09F3,
+  rupiah: 0xF6DD,
+  ruthai: 0x0E24,
+  rvocalicbengali: 0x098B,
+  rvocalicdeva: 0x090B,
+  rvocalicgujarati: 0x0A8B,
+  rvocalicvowelsignbengali: 0x09C3,
+  rvocalicvowelsigndeva: 0x0943,
+  rvocalicvowelsigngujarati: 0x0AC3,
+  s: 0x0073,
+  sabengali: 0x09B8,
+  sacute: 0x015B,
+  sacutedotaccent: 0x1E65,
+  sadarabic: 0x0635,
+  sadeva: 0x0938,
+  sadfinalarabic: 0xFEBA,
+  sadinitialarabic: 0xFEBB,
+  sadmedialarabic: 0xFEBC,
+  sagujarati: 0x0AB8,
+  sagurmukhi: 0x0A38,
+  sahiragana: 0x3055,
+  sakatakana: 0x30B5,
+  sakatakanahalfwidth: 0xFF7B,
+  sallallahoualayhewasallamarabic: 0xFDFA,
+  samekh: 0x05E1,
+  samekhdagesh: 0xFB41,
+  samekhdageshhebrew: 0xFB41,
+  samekhhebrew: 0x05E1,
+  saraaathai: 0x0E32,
+  saraaethai: 0x0E41,
+  saraaimaimalaithai: 0x0E44,
+  saraaimaimuanthai: 0x0E43,
+  saraamthai: 0x0E33,
+  saraathai: 0x0E30,
+  saraethai: 0x0E40,
+  saraiileftthai: 0xF886,
+  saraiithai: 0x0E35,
+  saraileftthai: 0xF885,
+  saraithai: 0x0E34,
+  saraothai: 0x0E42,
+  saraueeleftthai: 0xF888,
+  saraueethai: 0x0E37,
+  saraueleftthai: 0xF887,
+  sarauethai: 0x0E36,
+  sarauthai: 0x0E38,
+  sarauuthai: 0x0E39,
+  sbopomofo: 0x3119,
+  scaron: 0x0161,
+  scarondotaccent: 0x1E67,
+  scedilla: 0x015F,
+  schwa: 0x0259,
+  schwacyrillic: 0x04D9,
+  schwadieresiscyrillic: 0x04DB,
+  schwahook: 0x025A,
+  scircle: 0x24E2,
+  scircumflex: 0x015D,
+  scommaaccent: 0x0219,
+  sdotaccent: 0x1E61,
+  sdotbelow: 0x1E63,
+  sdotbelowdotaccent: 0x1E69,
+  seagullbelowcmb: 0x033C,
+  second: 0x2033,
+  secondtonechinese: 0x02CA,
+  section: 0x00A7,
+  seenarabic: 0x0633,
+  seenfinalarabic: 0xFEB2,
+  seeninitialarabic: 0xFEB3,
+  seenmedialarabic: 0xFEB4,
+  segol: 0x05B6,
+  segol13: 0x05B6,
+  segol1f: 0x05B6,
+  segol2c: 0x05B6,
+  segolhebrew: 0x05B6,
+  segolnarrowhebrew: 0x05B6,
+  segolquarterhebrew: 0x05B6,
+  segoltahebrew: 0x0592,
+  segolwidehebrew: 0x05B6,
+  seharmenian: 0x057D,
+  sehiragana: 0x305B,
+  sekatakana: 0x30BB,
+  sekatakanahalfwidth: 0xFF7E,
+  semicolon: 0x003B,
+  semicolonarabic: 0x061B,
+  semicolonmonospace: 0xFF1B,
+  semicolonsmall: 0xFE54,
+  semivoicedmarkkana: 0x309C,
+  semivoicedmarkkanahalfwidth: 0xFF9F,
+  sentisquare: 0x3322,
+  sentosquare: 0x3323,
+  seven: 0x0037,
+  sevenarabic: 0x0667,
+  sevenbengali: 0x09ED,
+  sevencircle: 0x2466,
+  sevencircleinversesansserif: 0x2790,
+  sevendeva: 0x096D,
+  seveneighths: 0x215E,
+  sevengujarati: 0x0AED,
+  sevengurmukhi: 0x0A6D,
+  sevenhackarabic: 0x0667,
+  sevenhangzhou: 0x3027,
+  sevenideographicparen: 0x3226,
+  seveninferior: 0x2087,
+  sevenmonospace: 0xFF17,
+  sevenoldstyle: 0xF737,
+  sevenparen: 0x247A,
+  sevenperiod: 0x248E,
+  sevenpersian: 0x06F7,
+  sevenroman: 0x2176,
+  sevensuperior: 0x2077,
+  seventeencircle: 0x2470,
+  seventeenparen: 0x2484,
+  seventeenperiod: 0x2498,
+  seventhai: 0x0E57,
+  sfthyphen: 0x00AD,
+  shaarmenian: 0x0577,
+  shabengali: 0x09B6,
+  shacyrillic: 0x0448,
+  shaddaarabic: 0x0651,
+  shaddadammaarabic: 0xFC61,
+  shaddadammatanarabic: 0xFC5E,
+  shaddafathaarabic: 0xFC60,
+  shaddakasraarabic: 0xFC62,
+  shaddakasratanarabic: 0xFC5F,
+  shade: 0x2592,
+  shadedark: 0x2593,
+  shadelight: 0x2591,
+  shademedium: 0x2592,
+  shadeva: 0x0936,
+  shagujarati: 0x0AB6,
+  shagurmukhi: 0x0A36,
+  shalshelethebrew: 0x0593,
+  shbopomofo: 0x3115,
+  shchacyrillic: 0x0449,
+  sheenarabic: 0x0634,
+  sheenfinalarabic: 0xFEB6,
+  sheeninitialarabic: 0xFEB7,
+  sheenmedialarabic: 0xFEB8,
+  sheicoptic: 0x03E3,
+  sheqel: 0x20AA,
+  sheqelhebrew: 0x20AA,
+  sheva: 0x05B0,
+  sheva115: 0x05B0,
+  sheva15: 0x05B0,
+  sheva22: 0x05B0,
+  sheva2e: 0x05B0,
+  shevahebrew: 0x05B0,
+  shevanarrowhebrew: 0x05B0,
+  shevaquarterhebrew: 0x05B0,
+  shevawidehebrew: 0x05B0,
+  shhacyrillic: 0x04BB,
+  shimacoptic: 0x03ED,
+  shin: 0x05E9,
+  shindagesh: 0xFB49,
+  shindageshhebrew: 0xFB49,
+  shindageshshindot: 0xFB2C,
+  shindageshshindothebrew: 0xFB2C,
+  shindageshsindot: 0xFB2D,
+  shindageshsindothebrew: 0xFB2D,
+  shindothebrew: 0x05C1,
+  shinhebrew: 0x05E9,
+  shinshindot: 0xFB2A,
+  shinshindothebrew: 0xFB2A,
+  shinsindot: 0xFB2B,
+  shinsindothebrew: 0xFB2B,
+  shook: 0x0282,
+  sigma: 0x03C3,
+  sigma1: 0x03C2,
+  sigmafinal: 0x03C2,
+  sigmalunatesymbolgreek: 0x03F2,
+  sihiragana: 0x3057,
+  sikatakana: 0x30B7,
+  sikatakanahalfwidth: 0xFF7C,
+  siluqhebrew: 0x05BD,
+  siluqlefthebrew: 0x05BD,
+  similar: 0x223C,
+  sindothebrew: 0x05C2,
+  siosacirclekorean: 0x3274,
+  siosaparenkorean: 0x3214,
+  sioscieuckorean: 0x317E,
+  sioscirclekorean: 0x3266,
+  sioskiyeokkorean: 0x317A,
+  sioskorean: 0x3145,
+  siosnieunkorean: 0x317B,
+  siosparenkorean: 0x3206,
+  siospieupkorean: 0x317D,
+  siostikeutkorean: 0x317C,
+  six: 0x0036,
+  sixarabic: 0x0666,
+  sixbengali: 0x09EC,
+  sixcircle: 0x2465,
+  sixcircleinversesansserif: 0x278F,
+  sixdeva: 0x096C,
+  sixgujarati: 0x0AEC,
+  sixgurmukhi: 0x0A6C,
+  sixhackarabic: 0x0666,
+  sixhangzhou: 0x3026,
+  sixideographicparen: 0x3225,
+  sixinferior: 0x2086,
+  sixmonospace: 0xFF16,
+  sixoldstyle: 0xF736,
+  sixparen: 0x2479,
+  sixperiod: 0x248D,
+  sixpersian: 0x06F6,
+  sixroman: 0x2175,
+  sixsuperior: 0x2076,
+  sixteencircle: 0x246F,
+  sixteencurrencydenominatorbengali: 0x09F9,
+  sixteenparen: 0x2483,
+  sixteenperiod: 0x2497,
+  sixthai: 0x0E56,
+  slash: 0x002F,
+  slashmonospace: 0xFF0F,
+  slong: 0x017F,
+  slongdotaccent: 0x1E9B,
+  smileface: 0x263A,
+  smonospace: 0xFF53,
+  sofpasuqhebrew: 0x05C3,
+  softhyphen: 0x00AD,
+  softsigncyrillic: 0x044C,
+  sohiragana: 0x305D,
+  sokatakana: 0x30BD,
+  sokatakanahalfwidth: 0xFF7F,
+  soliduslongoverlaycmb: 0x0338,
+  solidusshortoverlaycmb: 0x0337,
+  sorusithai: 0x0E29,
+  sosalathai: 0x0E28,
+  sosothai: 0x0E0B,
+  sosuathai: 0x0E2A,
+  space: 0x0020,
+  spacehackarabic: 0x0020,
+  spade: 0x2660,
+  spadesuitblack: 0x2660,
+  spadesuitwhite: 0x2664,
+  sparen: 0x24AE,
+  squarebelowcmb: 0x033B,
+  squarecc: 0x33C4,
+  squarecm: 0x339D,
+  squarediagonalcrosshatchfill: 0x25A9,
+  squarehorizontalfill: 0x25A4,
+  squarekg: 0x338F,
+  squarekm: 0x339E,
+  squarekmcapital: 0x33CE,
+  squareln: 0x33D1,
+  squarelog: 0x33D2,
+  squaremg: 0x338E,
+  squaremil: 0x33D5,
+  squaremm: 0x339C,
+  squaremsquared: 0x33A1,
+  squareorthogonalcrosshatchfill: 0x25A6,
+  squareupperlefttolowerrightfill: 0x25A7,
+  squareupperrighttolowerleftfill: 0x25A8,
+  squareverticalfill: 0x25A5,
+  squarewhitewithsmallblack: 0x25A3,
+  srsquare: 0x33DB,
+  ssabengali: 0x09B7,
+  ssadeva: 0x0937,
+  ssagujarati: 0x0AB7,
+  ssangcieuckorean: 0x3149,
+  ssanghieuhkorean: 0x3185,
+  ssangieungkorean: 0x3180,
+  ssangkiyeokkorean: 0x3132,
+  ssangnieunkorean: 0x3165,
+  ssangpieupkorean: 0x3143,
+  ssangsioskorean: 0x3146,
+  ssangtikeutkorean: 0x3138,
+  ssuperior: 0xF6F2,
+  sterling: 0x00A3,
+  sterlingmonospace: 0xFFE1,
+  strokelongoverlaycmb: 0x0336,
+  strokeshortoverlaycmb: 0x0335,
+  subset: 0x2282,
+  subsetnotequal: 0x228A,
+  subsetorequal: 0x2286,
+  succeeds: 0x227B,
+  suchthat: 0x220B,
+  suhiragana: 0x3059,
+  sukatakana: 0x30B9,
+  sukatakanahalfwidth: 0xFF7D,
+  sukunarabic: 0x0652,
+  summation: 0x2211,
+  sun: 0x263C,
+  superset: 0x2283,
+  supersetnotequal: 0x228B,
+  supersetorequal: 0x2287,
+  svsquare: 0x33DC,
+  syouwaerasquare: 0x337C,
+  t: 0x0074,
+  tabengali: 0x09A4,
+  tackdown: 0x22A4,
+  tackleft: 0x22A3,
+  tadeva: 0x0924,
+  tagujarati: 0x0AA4,
+  tagurmukhi: 0x0A24,
+  taharabic: 0x0637,
+  tahfinalarabic: 0xFEC2,
+  tahinitialarabic: 0xFEC3,
+  tahiragana: 0x305F,
+  tahmedialarabic: 0xFEC4,
+  taisyouerasquare: 0x337D,
+  takatakana: 0x30BF,
+  takatakanahalfwidth: 0xFF80,
+  tatweelarabic: 0x0640,
+  tau: 0x03C4,
+  tav: 0x05EA,
+  tavdages: 0xFB4A,
+  tavdagesh: 0xFB4A,
+  tavdageshhebrew: 0xFB4A,
+  tavhebrew: 0x05EA,
+  tbar: 0x0167,
+  tbopomofo: 0x310A,
+  tcaron: 0x0165,
+  tccurl: 0x02A8,
+  tcedilla: 0x0163,
+  tcheharabic: 0x0686,
+  tchehfinalarabic: 0xFB7B,
+  tchehinitialarabic: 0xFB7C,
+  tchehmedialarabic: 0xFB7D,
+  tcircle: 0x24E3,
+  tcircumflexbelow: 0x1E71,
+  tcommaaccent: 0x0163,
+  tdieresis: 0x1E97,
+  tdotaccent: 0x1E6B,
+  tdotbelow: 0x1E6D,
+  tecyrillic: 0x0442,
+  tedescendercyrillic: 0x04AD,
+  teharabic: 0x062A,
+  tehfinalarabic: 0xFE96,
+  tehhahinitialarabic: 0xFCA2,
+  tehhahisolatedarabic: 0xFC0C,
+  tehinitialarabic: 0xFE97,
+  tehiragana: 0x3066,
+  tehjeeminitialarabic: 0xFCA1,
+  tehjeemisolatedarabic: 0xFC0B,
+  tehmarbutaarabic: 0x0629,
+  tehmarbutafinalarabic: 0xFE94,
+  tehmedialarabic: 0xFE98,
+  tehmeeminitialarabic: 0xFCA4,
+  tehmeemisolatedarabic: 0xFC0E,
+  tehnoonfinalarabic: 0xFC73,
+  tekatakana: 0x30C6,
+  tekatakanahalfwidth: 0xFF83,
+  telephone: 0x2121,
+  telephoneblack: 0x260E,
+  telishagedolahebrew: 0x05A0,
+  telishaqetanahebrew: 0x05A9,
+  tencircle: 0x2469,
+  tenideographicparen: 0x3229,
+  tenparen: 0x247D,
+  tenperiod: 0x2491,
+  tenroman: 0x2179,
+  tesh: 0x02A7,
+  tet: 0x05D8,
+  tetdagesh: 0xFB38,
+  tetdageshhebrew: 0xFB38,
+  tethebrew: 0x05D8,
+  tetsecyrillic: 0x04B5,
+  tevirhebrew: 0x059B,
+  tevirlefthebrew: 0x059B,
+  thabengali: 0x09A5,
+  thadeva: 0x0925,
+  thagujarati: 0x0AA5,
+  thagurmukhi: 0x0A25,
+  thalarabic: 0x0630,
+  thalfinalarabic: 0xFEAC,
+  thanthakhatlowleftthai: 0xF898,
+  thanthakhatlowrightthai: 0xF897,
+  thanthakhatthai: 0x0E4C,
+  thanthakhatupperleftthai: 0xF896,
+  theharabic: 0x062B,
+  thehfinalarabic: 0xFE9A,
+  thehinitialarabic: 0xFE9B,
+  thehmedialarabic: 0xFE9C,
+  thereexists: 0x2203,
+  therefore: 0x2234,
+  theta: 0x03B8,
+  theta1: 0x03D1,
+  thetasymbolgreek: 0x03D1,
+  thieuthacirclekorean: 0x3279,
+  thieuthaparenkorean: 0x3219,
+  thieuthcirclekorean: 0x326B,
+  thieuthkorean: 0x314C,
+  thieuthparenkorean: 0x320B,
+  thirteencircle: 0x246C,
+  thirteenparen: 0x2480,
+  thirteenperiod: 0x2494,
+  thonangmonthothai: 0x0E11,
+  thook: 0x01AD,
+  thophuthaothai: 0x0E12,
+  thorn: 0x00FE,
+  thothahanthai: 0x0E17,
+  thothanthai: 0x0E10,
+  thothongthai: 0x0E18,
+  thothungthai: 0x0E16,
+  thousandcyrillic: 0x0482,
+  thousandsseparatorarabic: 0x066C,
+  thousandsseparatorpersian: 0x066C,
+  three: 0x0033,
+  threearabic: 0x0663,
+  threebengali: 0x09E9,
+  threecircle: 0x2462,
+  threecircleinversesansserif: 0x278C,
+  threedeva: 0x0969,
+  threeeighths: 0x215C,
+  threegujarati: 0x0AE9,
+  threegurmukhi: 0x0A69,
+  threehackarabic: 0x0663,
+  threehangzhou: 0x3023,
+  threeideographicparen: 0x3222,
+  threeinferior: 0x2083,
+  threemonospace: 0xFF13,
+  threenumeratorbengali: 0x09F6,
+  threeoldstyle: 0xF733,
+  threeparen: 0x2476,
+  threeperiod: 0x248A,
+  threepersian: 0x06F3,
+  threequarters: 0x00BE,
+  threequartersemdash: 0xF6DE,
+  threeroman: 0x2172,
+  threesuperior: 0x00B3,
+  threethai: 0x0E53,
+  thzsquare: 0x3394,
+  tihiragana: 0x3061,
+  tikatakana: 0x30C1,
+  tikatakanahalfwidth: 0xFF81,
+  tikeutacirclekorean: 0x3270,
+  tikeutaparenkorean: 0x3210,
+  tikeutcirclekorean: 0x3262,
+  tikeutkorean: 0x3137,
+  tikeutparenkorean: 0x3202,
+  tilde: 0x02DC,
+  tildebelowcmb: 0x0330,
+  tildecmb: 0x0303,
+  tildecomb: 0x0303,
+  tildedoublecmb: 0x0360,
+  tildeoperator: 0x223C,
+  tildeoverlaycmb: 0x0334,
+  tildeverticalcmb: 0x033E,
+  timescircle: 0x2297,
+  tipehahebrew: 0x0596,
+  tipehalefthebrew: 0x0596,
+  tippigurmukhi: 0x0A70,
+  titlocyrilliccmb: 0x0483,
+  tiwnarmenian: 0x057F,
+  tlinebelow: 0x1E6F,
+  tmonospace: 0xFF54,
+  toarmenian: 0x0569,
+  tohiragana: 0x3068,
+  tokatakana: 0x30C8,
+  tokatakanahalfwidth: 0xFF84,
+  tonebarextrahighmod: 0x02E5,
+  tonebarextralowmod: 0x02E9,
+  tonebarhighmod: 0x02E6,
+  tonebarlowmod: 0x02E8,
+  tonebarmidmod: 0x02E7,
+  tonefive: 0x01BD,
+  tonesix: 0x0185,
+  tonetwo: 0x01A8,
+  tonos: 0x0384,
+  tonsquare: 0x3327,
+  topatakthai: 0x0E0F,
+  tortoiseshellbracketleft: 0x3014,
+  tortoiseshellbracketleftsmall: 0xFE5D,
+  tortoiseshellbracketleftvertical: 0xFE39,
+  tortoiseshellbracketright: 0x3015,
+  tortoiseshellbracketrightsmall: 0xFE5E,
+  tortoiseshellbracketrightvertical: 0xFE3A,
+  totaothai: 0x0E15,
+  tpalatalhook: 0x01AB,
+  tparen: 0x24AF,
+  trademark: 0x2122,
+  trademarksans: 0xF8EA,
+  trademarkserif: 0xF6DB,
+  tretroflexhook: 0x0288,
+  triagdn: 0x25BC,
+  triaglf: 0x25C4,
+  triagrt: 0x25BA,
+  triagup: 0x25B2,
+  ts: 0x02A6,
+  tsadi: 0x05E6,
+  tsadidagesh: 0xFB46,
+  tsadidageshhebrew: 0xFB46,
+  tsadihebrew: 0x05E6,
+  tsecyrillic: 0x0446,
+  tsere: 0x05B5,
+  tsere12: 0x05B5,
+  tsere1e: 0x05B5,
+  tsere2b: 0x05B5,
+  tserehebrew: 0x05B5,
+  tserenarrowhebrew: 0x05B5,
+  tserequarterhebrew: 0x05B5,
+  tserewidehebrew: 0x05B5,
+  tshecyrillic: 0x045B,
+  tsuperior: 0xF6F3,
+  ttabengali: 0x099F,
+  ttadeva: 0x091F,
+  ttagujarati: 0x0A9F,
+  ttagurmukhi: 0x0A1F,
+  tteharabic: 0x0679,
+  ttehfinalarabic: 0xFB67,
+  ttehinitialarabic: 0xFB68,
+  ttehmedialarabic: 0xFB69,
+  tthabengali: 0x09A0,
+  tthadeva: 0x0920,
+  tthagujarati: 0x0AA0,
+  tthagurmukhi: 0x0A20,
+  tturned: 0x0287,
+  tuhiragana: 0x3064,
+  tukatakana: 0x30C4,
+  tukatakanahalfwidth: 0xFF82,
+  tusmallhiragana: 0x3063,
+  tusmallkatakana: 0x30C3,
+  tusmallkatakanahalfwidth: 0xFF6F,
+  twelvecircle: 0x246B,
+  twelveparen: 0x247F,
+  twelveperiod: 0x2493,
+  twelveroman: 0x217B,
+  twentycircle: 0x2473,
+  twentyhangzhou: 0x5344,
+  twentyparen: 0x2487,
+  twentyperiod: 0x249B,
+  two: 0x0032,
+  twoarabic: 0x0662,
+  twobengali: 0x09E8,
+  twocircle: 0x2461,
+  twocircleinversesansserif: 0x278B,
+  twodeva: 0x0968,
+  twodotenleader: 0x2025,
+  twodotleader: 0x2025,
+  twodotleadervertical: 0xFE30,
+  twogujarati: 0x0AE8,
+  twogurmukhi: 0x0A68,
+  twohackarabic: 0x0662,
+  twohangzhou: 0x3022,
+  twoideographicparen: 0x3221,
+  twoinferior: 0x2082,
+  twomonospace: 0xFF12,
+  twonumeratorbengali: 0x09F5,
+  twooldstyle: 0xF732,
+  twoparen: 0x2475,
+  twoperiod: 0x2489,
+  twopersian: 0x06F2,
+  tworoman: 0x2171,
+  twostroke: 0x01BB,
+  twosuperior: 0x00B2,
+  twothai: 0x0E52,
+  twothirds: 0x2154,
+  u: 0x0075,
+  uacute: 0x00FA,
+  ubar: 0x0289,
+  ubengali: 0x0989,
+  ubopomofo: 0x3128,
+  ubreve: 0x016D,
+  ucaron: 0x01D4,
+  ucircle: 0x24E4,
+  ucircumflex: 0x00FB,
+  ucircumflexbelow: 0x1E77,
+  ucyrillic: 0x0443,
+  udattadeva: 0x0951,
+  udblacute: 0x0171,
+  udblgrave: 0x0215,
+  udeva: 0x0909,
+  udieresis: 0x00FC,
+  udieresisacute: 0x01D8,
+  udieresisbelow: 0x1E73,
+  udieresiscaron: 0x01DA,
+  udieresiscyrillic: 0x04F1,
+  udieresisgrave: 0x01DC,
+  udieresismacron: 0x01D6,
+  udotbelow: 0x1EE5,
+  ugrave: 0x00F9,
+  ugujarati: 0x0A89,
+  ugurmukhi: 0x0A09,
+  uhiragana: 0x3046,
+  uhookabove: 0x1EE7,
+  uhorn: 0x01B0,
+  uhornacute: 0x1EE9,
+  uhorndotbelow: 0x1EF1,
+  uhorngrave: 0x1EEB,
+  uhornhookabove: 0x1EED,
+  uhorntilde: 0x1EEF,
+  uhungarumlaut: 0x0171,
+  uhungarumlautcyrillic: 0x04F3,
+  uinvertedbreve: 0x0217,
+  ukatakana: 0x30A6,
+  ukatakanahalfwidth: 0xFF73,
+  ukcyrillic: 0x0479,
+  ukorean: 0x315C,
+  umacron: 0x016B,
+  umacroncyrillic: 0x04EF,
+  umacrondieresis: 0x1E7B,
+  umatragurmukhi: 0x0A41,
+  umonospace: 0xFF55,
+  underscore: 0x005F,
+  underscoredbl: 0x2017,
+  underscoremonospace: 0xFF3F,
+  underscorevertical: 0xFE33,
+  underscorewavy: 0xFE4F,
+  union: 0x222A,
+  universal: 0x2200,
+  uogonek: 0x0173,
+  uparen: 0x24B0,
+  upblock: 0x2580,
+  upperdothebrew: 0x05C4,
+  upsilon: 0x03C5,
+  upsilondieresis: 0x03CB,
+  upsilondieresistonos: 0x03B0,
+  upsilonlatin: 0x028A,
+  upsilontonos: 0x03CD,
+  uptackbelowcmb: 0x031D,
+  uptackmod: 0x02D4,
+  uragurmukhi: 0x0A73,
+  uring: 0x016F,
+  ushortcyrillic: 0x045E,
+  usmallhiragana: 0x3045,
+  usmallkatakana: 0x30A5,
+  usmallkatakanahalfwidth: 0xFF69,
+  ustraightcyrillic: 0x04AF,
+  ustraightstrokecyrillic: 0x04B1,
+  utilde: 0x0169,
+  utildeacute: 0x1E79,
+  utildebelow: 0x1E75,
+  uubengali: 0x098A,
+  uudeva: 0x090A,
+  uugujarati: 0x0A8A,
+  uugurmukhi: 0x0A0A,
+  uumatragurmukhi: 0x0A42,
+  uuvowelsignbengali: 0x09C2,
+  uuvowelsigndeva: 0x0942,
+  uuvowelsigngujarati: 0x0AC2,
+  uvowelsignbengali: 0x09C1,
+  uvowelsigndeva: 0x0941,
+  uvowelsigngujarati: 0x0AC1,
+  v: 0x0076,
+  vadeva: 0x0935,
+  vagujarati: 0x0AB5,
+  vagurmukhi: 0x0A35,
+  vakatakana: 0x30F7,
+  vav: 0x05D5,
+  vavdagesh: 0xFB35,
+  vavdagesh65: 0xFB35,
+  vavdageshhebrew: 0xFB35,
+  vavhebrew: 0x05D5,
+  vavholam: 0xFB4B,
+  vavholamhebrew: 0xFB4B,
+  vavvavhebrew: 0x05F0,
+  vavyodhebrew: 0x05F1,
+  vcircle: 0x24E5,
+  vdotbelow: 0x1E7F,
+  vecyrillic: 0x0432,
+  veharabic: 0x06A4,
+  vehfinalarabic: 0xFB6B,
+  vehinitialarabic: 0xFB6C,
+  vehmedialarabic: 0xFB6D,
+  vekatakana: 0x30F9,
+  venus: 0x2640,
+  verticalbar: 0x007C,
+  verticallineabovecmb: 0x030D,
+  verticallinebelowcmb: 0x0329,
+  verticallinelowmod: 0x02CC,
+  verticallinemod: 0x02C8,
+  vewarmenian: 0x057E,
+  vhook: 0x028B,
+  vikatakana: 0x30F8,
+  viramabengali: 0x09CD,
+  viramadeva: 0x094D,
+  viramagujarati: 0x0ACD,
+  visargabengali: 0x0983,
+  visargadeva: 0x0903,
+  visargagujarati: 0x0A83,
+  vmonospace: 0xFF56,
+  voarmenian: 0x0578,
+  voicediterationhiragana: 0x309E,
+  voicediterationkatakana: 0x30FE,
+  voicedmarkkana: 0x309B,
+  voicedmarkkanahalfwidth: 0xFF9E,
+  vokatakana: 0x30FA,
+  vparen: 0x24B1,
+  vtilde: 0x1E7D,
+  vturned: 0x028C,
+  vuhiragana: 0x3094,
+  vukatakana: 0x30F4,
+  w: 0x0077,
+  wacute: 0x1E83,
+  waekorean: 0x3159,
+  wahiragana: 0x308F,
+  wakatakana: 0x30EF,
+  wakatakanahalfwidth: 0xFF9C,
+  wakorean: 0x3158,
+  wasmallhiragana: 0x308E,
+  wasmallkatakana: 0x30EE,
+  wattosquare: 0x3357,
+  wavedash: 0x301C,
+  wavyunderscorevertical: 0xFE34,
+  wawarabic: 0x0648,
+  wawfinalarabic: 0xFEEE,
+  wawhamzaabovearabic: 0x0624,
+  wawhamzaabovefinalarabic: 0xFE86,
+  wbsquare: 0x33DD,
+  wcircle: 0x24E6,
+  wcircumflex: 0x0175,
+  wdieresis: 0x1E85,
+  wdotaccent: 0x1E87,
+  wdotbelow: 0x1E89,
+  wehiragana: 0x3091,
+  weierstrass: 0x2118,
+  wekatakana: 0x30F1,
+  wekorean: 0x315E,
+  weokorean: 0x315D,
+  wgrave: 0x1E81,
+  whitebullet: 0x25E6,
+  whitecircle: 0x25CB,
+  whitecircleinverse: 0x25D9,
+  whitecornerbracketleft: 0x300E,
+  whitecornerbracketleftvertical: 0xFE43,
+  whitecornerbracketright: 0x300F,
+  whitecornerbracketrightvertical: 0xFE44,
+  whitediamond: 0x25C7,
+  whitediamondcontainingblacksmalldiamond: 0x25C8,
+  whitedownpointingsmalltriangle: 0x25BF,
+  whitedownpointingtriangle: 0x25BD,
+  whiteleftpointingsmalltriangle: 0x25C3,
+  whiteleftpointingtriangle: 0x25C1,
+  whitelenticularbracketleft: 0x3016,
+  whitelenticularbracketright: 0x3017,
+  whiterightpointingsmalltriangle: 0x25B9,
+  whiterightpointingtriangle: 0x25B7,
+  whitesmallsquare: 0x25AB,
+  whitesmilingface: 0x263A,
+  whitesquare: 0x25A1,
+  whitestar: 0x2606,
+  whitetelephone: 0x260F,
+  whitetortoiseshellbracketleft: 0x3018,
+  whitetortoiseshellbracketright: 0x3019,
+  whiteuppointingsmalltriangle: 0x25B5,
+  whiteuppointingtriangle: 0x25B3,
+  wihiragana: 0x3090,
+  wikatakana: 0x30F0,
+  wikorean: 0x315F,
+  wmonospace: 0xFF57,
+  wohiragana: 0x3092,
+  wokatakana: 0x30F2,
+  wokatakanahalfwidth: 0xFF66,
+  won: 0x20A9,
+  wonmonospace: 0xFFE6,
+  wowaenthai: 0x0E27,
+  wparen: 0x24B2,
+  wring: 0x1E98,
+  wsuperior: 0x02B7,
+  wturned: 0x028D,
+  wynn: 0x01BF,
+  x: 0x0078,
+  xabovecmb: 0x033D,
+  xbopomofo: 0x3112,
+  xcircle: 0x24E7,
+  xdieresis: 0x1E8D,
+  xdotaccent: 0x1E8B,
+  xeharmenian: 0x056D,
+  xi: 0x03BE,
+  xmonospace: 0xFF58,
+  xparen: 0x24B3,
+  xsuperior: 0x02E3,
+  y: 0x0079,
+  yaadosquare: 0x334E,
+  yabengali: 0x09AF,
+  yacute: 0x00FD,
+  yadeva: 0x092F,
+  yaekorean: 0x3152,
+  yagujarati: 0x0AAF,
+  yagurmukhi: 0x0A2F,
+  yahiragana: 0x3084,
+  yakatakana: 0x30E4,
+  yakatakanahalfwidth: 0xFF94,
+  yakorean: 0x3151,
+  yamakkanthai: 0x0E4E,
+  yasmallhiragana: 0x3083,
+  yasmallkatakana: 0x30E3,
+  yasmallkatakanahalfwidth: 0xFF6C,
+  yatcyrillic: 0x0463,
+  ycircle: 0x24E8,
+  ycircumflex: 0x0177,
+  ydieresis: 0x00FF,
+  ydotaccent: 0x1E8F,
+  ydotbelow: 0x1EF5,
+  yeharabic: 0x064A,
+  yehbarreearabic: 0x06D2,
+  yehbarreefinalarabic: 0xFBAF,
+  yehfinalarabic: 0xFEF2,
+  yehhamzaabovearabic: 0x0626,
+  yehhamzaabovefinalarabic: 0xFE8A,
+  yehhamzaaboveinitialarabic: 0xFE8B,
+  yehhamzaabovemedialarabic: 0xFE8C,
+  yehinitialarabic: 0xFEF3,
+  yehmedialarabic: 0xFEF4,
+  yehmeeminitialarabic: 0xFCDD,
+  yehmeemisolatedarabic: 0xFC58,
+  yehnoonfinalarabic: 0xFC94,
+  yehthreedotsbelowarabic: 0x06D1,
+  yekorean: 0x3156,
+  yen: 0x00A5,
+  yenmonospace: 0xFFE5,
+  yeokorean: 0x3155,
+  yeorinhieuhkorean: 0x3186,
+  yerahbenyomohebrew: 0x05AA,
+  yerahbenyomolefthebrew: 0x05AA,
+  yericyrillic: 0x044B,
+  yerudieresiscyrillic: 0x04F9,
+  yesieungkorean: 0x3181,
+  yesieungpansioskorean: 0x3183,
+  yesieungsioskorean: 0x3182,
+  yetivhebrew: 0x059A,
+  ygrave: 0x1EF3,
+  yhook: 0x01B4,
+  yhookabove: 0x1EF7,
+  yiarmenian: 0x0575,
+  yicyrillic: 0x0457,
+  yikorean: 0x3162,
+  yinyang: 0x262F,
+  yiwnarmenian: 0x0582,
+  ymonospace: 0xFF59,
+  yod: 0x05D9,
+  yoddagesh: 0xFB39,
+  yoddageshhebrew: 0xFB39,
+  yodhebrew: 0x05D9,
+  yodyodhebrew: 0x05F2,
+  yodyodpatahhebrew: 0xFB1F,
+  yohiragana: 0x3088,
+  yoikorean: 0x3189,
+  yokatakana: 0x30E8,
+  yokatakanahalfwidth: 0xFF96,
+  yokorean: 0x315B,
+  yosmallhiragana: 0x3087,
+  yosmallkatakana: 0x30E7,
+  yosmallkatakanahalfwidth: 0xFF6E,
+  yotgreek: 0x03F3,
+  yoyaekorean: 0x3188,
+  yoyakorean: 0x3187,
+  yoyakthai: 0x0E22,
+  yoyingthai: 0x0E0D,
+  yparen: 0x24B4,
+  ypogegrammeni: 0x037A,
+  ypogegrammenigreekcmb: 0x0345,
+  yr: 0x01A6,
+  yring: 0x1E99,
+  ysuperior: 0x02B8,
+  ytilde: 0x1EF9,
+  yturned: 0x028E,
+  yuhiragana: 0x3086,
+  yuikorean: 0x318C,
+  yukatakana: 0x30E6,
+  yukatakanahalfwidth: 0xFF95,
+  yukorean: 0x3160,
+  yusbigcyrillic: 0x046B,
+  yusbigiotifiedcyrillic: 0x046D,
+  yuslittlecyrillic: 0x0467,
+  yuslittleiotifiedcyrillic: 0x0469,
+  yusmallhiragana: 0x3085,
+  yusmallkatakana: 0x30E5,
+  yusmallkatakanahalfwidth: 0xFF6D,
+  yuyekorean: 0x318B,
+  yuyeokorean: 0x318A,
+  yyabengali: 0x09DF,
+  yyadeva: 0x095F,
+  z: 0x007A,
+  zaarmenian: 0x0566,
+  zacute: 0x017A,
+  zadeva: 0x095B,
+  zagurmukhi: 0x0A5B,
+  zaharabic: 0x0638,
+  zahfinalarabic: 0xFEC6,
+  zahinitialarabic: 0xFEC7,
+  zahiragana: 0x3056,
+  zahmedialarabic: 0xFEC8,
+  zainarabic: 0x0632,
+  zainfinalarabic: 0xFEB0,
+  zakatakana: 0x30B6,
+  zaqefgadolhebrew: 0x0595,
+  zaqefqatanhebrew: 0x0594,
+  zarqahebrew: 0x0598,
+  zayin: 0x05D6,
+  zayindagesh: 0xFB36,
+  zayindageshhebrew: 0xFB36,
+  zayinhebrew: 0x05D6,
+  zbopomofo: 0x3117,
+  zcaron: 0x017E,
+  zcircle: 0x24E9,
+  zcircumflex: 0x1E91,
+  zcurl: 0x0291,
+  zdot: 0x017C,
+  zdotaccent: 0x017C,
+  zdotbelow: 0x1E93,
+  zecyrillic: 0x0437,
+  zedescendercyrillic: 0x0499,
+  zedieresiscyrillic: 0x04DF,
+  zehiragana: 0x305C,
+  zekatakana: 0x30BC,
+  zero: 0x0030,
+  zeroarabic: 0x0660,
+  zerobengali: 0x09E6,
+  zerodeva: 0x0966,
+  zerogujarati: 0x0AE6,
+  zerogurmukhi: 0x0A66,
+  zerohackarabic: 0x0660,
+  zeroinferior: 0x2080,
+  zeromonospace: 0xFF10,
+  zerooldstyle: 0xF730,
+  zeropersian: 0x06F0,
+  zerosuperior: 0x2070,
+  zerothai: 0x0E50,
+  zerowidthjoiner: 0xFEFF,
+  zerowidthnonjoiner: 0x200C,
+  zerowidthspace: 0x200B,
+  zeta: 0x03B6,
+  zhbopomofo: 0x3113,
+  zhearmenian: 0x056A,
+  zhebrevecyrillic: 0x04C2,
+  zhecyrillic: 0x0436,
+  zhedescendercyrillic: 0x0497,
+  zhedieresiscyrillic: 0x04DD,
+  zihiragana: 0x3058,
+  zikatakana: 0x30B8,
+  zinorhebrew: 0x05AE,
+  zlinebelow: 0x1E95,
+  zmonospace: 0xFF5A,
+  zohiragana: 0x305E,
+  zokatakana: 0x30BE,
+  zparen: 0x24B5,
+  zretroflexhook: 0x0290,
+  zstroke: 0x01B6,
+  zuhiragana: 0x305A,
+  zukatakana: 0x30BA,
+  '.notdef': 0x0000
+};
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var PDFImage = (function PDFImageClosure() {
+  /**
+   * Decode the image in the main thread if it supported. Resovles the promise
+   * when the image data is ready.
+   */
+  function handleImageData(handler, xref, res, image, promise) {
+    if (image instanceof JpegStream && image.isNativelyDecodable(xref, res)) {
+      // For natively supported jpegs send them to the main thread for decoding.
+      var dict = image.dict;
+      var colorSpace = dict.get('ColorSpace', 'CS');
+      colorSpace = ColorSpace.parse(colorSpace, xref, res);
+      var numComps = colorSpace.numComps;
+      handler.send('JpegDecode', [image.getIR(), numComps], function(message) {
+        var data = message.data;
+        var stream = new Stream(data, 0, data.length, image.dict);
+        promise.resolve(stream);
+      });
+    } else {
+      promise.resolve(image);
+    }
+  }
+  /**
+   * Decode and clamp a value. The formula is different from the spec because we
+   * don't decode to float range [0,1], we decode it in the [0,max] range.
+   */
+  function decodeAndClamp(value, addend, coefficient, max) {
+    value = addend + value * coefficient;
+    // Clamp the value to the range
+    return value < 0 ? 0 : value > max ? max : value;
+  }
+  function PDFImage(xref, res, image, inline, smask) {
+    this.image = image;
+    if (image.getParams) {
+      // JPX/JPEG2000 streams directly contain bits per component
+      // and color space mode information.
+      TODO('get params from actual stream');
+      // var bits = ...
+      // var colorspace = ...
+    }
+    // TODO cache rendered images?
+
+    var dict = image.dict;
+    this.width = dict.get('Width', 'W');
+    this.height = dict.get('Height', 'H');
+
+    if (this.width < 1 || this.height < 1)
+      error('Invalid image width: ' + this.width + ' or height: ' +
+            this.height);
+
+    this.interpolate = dict.get('Interpolate', 'I') || false;
+    this.imageMask = dict.get('ImageMask', 'IM') || false;
+
+    var bitsPerComponent = image.bitsPerComponent;
+    if (!bitsPerComponent) {
+      bitsPerComponent = dict.get('BitsPerComponent', 'BPC');
+      if (!bitsPerComponent) {
+        if (this.imageMask)
+          bitsPerComponent = 1;
+        else
+          error('Bits per component missing in image: ' + this.imageMask);
+      }
+    }
+    this.bpc = bitsPerComponent;
+
+    if (!this.imageMask) {
+      var colorSpace = dict.get('ColorSpace', 'CS');
+      if (!colorSpace) {
+        TODO('JPX images (which don"t require color spaces');
+        colorSpace = new Name('DeviceRGB');
+      }
+      this.colorSpace = ColorSpace.parse(colorSpace, xref, res);
+      this.numComps = this.colorSpace.numComps;
+    }
+
+    this.decode = dict.get('Decode', 'D');
+    this.needsDecode = false;
+    if (this.decode && this.colorSpace &&
+        !this.colorSpace.isDefaultDecode(this.decode)) {
+      this.needsDecode = true;
+      // Do some preprocessing to avoid more math.
+      var max = (1 << bitsPerComponent) - 1;
+      this.decodeCoefficients = [];
+      this.decodeAddends = [];
+      for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) {
+        var dmin = this.decode[i];
+        var dmax = this.decode[i + 1];
+        this.decodeCoefficients[j] = dmax - dmin;
+        this.decodeAddends[j] = max * dmin;
+      }
+    }
+
+    var mask = dict.get('Mask');
+
+    if (mask) {
+      TODO('masked images');
+    } else if (smask) {
+      this.smask = new PDFImage(xref, res, smask, false);
+    }
+  }
+  /**
+   * Handles processing of image data and calls the callback with an argument
+   * of a PDFImage when the image is ready to be used.
+   */
+  PDFImage.buildImage = function PDFImage_buildImage(callback, handler, xref,
+                                                     res, image, inline) {
+    var imageDataPromise = new Promise();
+    var smaskPromise = new Promise();
+    // The image data and smask data may not be ready yet, wait till both are
+    // resolved.
+    Promise.all([imageDataPromise, smaskPromise]).then(function(results) {
+      var imageData = results[0], smaskData = results[1];
+      var image = new PDFImage(xref, res, imageData, inline, smaskData);
+      callback(image);
+    });
+
+    handleImageData(handler, xref, res, image, imageDataPromise);
+
+    var smask = image.dict.get('SMask');
+    if (smask)
+      handleImageData(handler, xref, res, smask, smaskPromise);
+    else
+      smaskPromise.resolve(null);
+  };
+
+  /**
+   * Resize an image using the nearest neighbor algorithm.  Currently only
+   * supports one and three component images.
+   * @param {TypedArray} pixels The original image with one component.
+   * @param {Number} bpc Number of bits per component.
+   * @param {Number} components Number of color components, 1 or 3 is supported.
+   * @param {Number} w1 Original width.
+   * @param {Number} h1 Original height.
+   * @param {Number} w2 New width.
+   * @param {Number} h2 New height.
+   * @return {TypedArray} Resized image data.
+   */
+  PDFImage.resize = function PDFImage_resize(pixels, bpc, components,
+                                             w1, h1, w2, h2) {
+    var length = w2 * h2 * components;
+    var temp = bpc <= 8 ? new Uint8Array(length) :
+        bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);
+    var xRatio = w1 / w2;
+    var yRatio = h1 / h2;
+    var px, py, newIndex, oldIndex;
+    for (var i = 0; i < h2; i++) {
+      for (var j = 0; j < w2; j++) {
+        px = Math.floor(j * xRatio);
+        py = Math.floor(i * yRatio);
+        newIndex = (i * w2) + j;
+        oldIndex = ((py * w1) + px);
+        if (components === 1) {
+          temp[newIndex] = pixels[oldIndex];
+        } else if (components === 3) {
+          newIndex *= 3;
+          oldIndex *= 3;
+          temp[newIndex] = pixels[oldIndex];
+          temp[newIndex + 1] = pixels[oldIndex + 1];
+          temp[newIndex + 2] = pixels[oldIndex + 2];
+        }
+      }
+    }
+    return temp;
+  };
+
+  PDFImage.prototype = {
+    get drawWidth() {
+      if (!this.smask)
+        return this.width;
+      return Math.max(this.width, this.smask.width);
+    },
+    get drawHeight() {
+      if (!this.smask)
+        return this.height;
+      return Math.max(this.height, this.smask.height);
+    },
+    getComponents: function PDFImage_getComponents(buffer) {
+      var bpc = this.bpc;
+      var needsDecode = this.needsDecode;
+      var decodeMap = this.decode;
+
+      // This image doesn't require any extra work.
+      if (bpc == 8 && !needsDecode)
+        return buffer;
+
+      var bufferLength = buffer.length;
+      var width = this.width;
+      var height = this.height;
+      var numComps = this.numComps;
+
+      var length = width * height * numComps;
+      var bufferPos = 0;
+      var output = bpc <= 8 ? new Uint8Array(length) :
+        bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);
+      var rowComps = width * numComps;
+      var decodeAddends, decodeCoefficients;
+      if (needsDecode) {
+        decodeAddends = this.decodeAddends;
+        decodeCoefficients = this.decodeCoefficients;
+      }
+      var max = (1 << bpc) - 1;
+
+      if (bpc == 8) {
+        // Optimization for reading 8 bpc images that have a decode.
+        for (var i = 0, ii = length; i < ii; ++i) {
+          var compIndex = i % numComps;
+          var value = buffer[i];
+          value = decodeAndClamp(value, decodeAddends[compIndex],
+                          decodeCoefficients[compIndex], max);
+          output[i] = value;
+        }
+      } else if (bpc == 1) {
+        // Optimization for reading 1 bpc images.
+        var valueZero = 0, valueOne = 1;
+        if (decodeMap) {
+          valueZero = decodeMap[0] ? 1 : 0;
+          valueOne = decodeMap[1] ? 1 : 0;
+        }
+        var mask = 0;
+        var buf = 0;
+
+        for (var i = 0, ii = length; i < ii; ++i) {
+          if (i % rowComps == 0) {
+            mask = 0;
+            buf = 0;
+          } else {
+            mask >>= 1;
+          }
+
+          if (mask <= 0) {
+            buf = buffer[bufferPos++];
+            mask = 128;
+          }
+
+          output[i] = !(buf & mask) ? valueZero : valueOne;
+        }
+      } else {
+        // The general case that handles all other bpc values.
+        var bits = 0, buf = 0;
+        for (var i = 0, ii = length; i < ii; ++i) {
+          if (i % rowComps == 0) {
+            buf = 0;
+            bits = 0;
+          }
+
+          while (bits < bpc) {
+            buf = (buf << 8) | buffer[bufferPos++];
+            bits += 8;
+          }
+
+          var remainingBits = bits - bpc;
+          var value = buf >> remainingBits;
+          if (needsDecode) {
+            var compIndex = i % numComps;
+            value = decodeAndClamp(value, decodeAddends[compIndex],
+                            decodeCoefficients[compIndex], max);
+          }
+          output[i] = value;
+          buf = buf & ((1 << remainingBits) - 1);
+          bits = remainingBits;
+        }
+      }
+      return output;
+    },
+    getOpacity: function PDFImage_getOpacity(width, height) {
+      var smask = this.smask;
+      var originalWidth = this.width;
+      var originalHeight = this.height;
+      var buf;
+
+      if (smask) {
+        var sw = smask.width;
+        var sh = smask.height;
+        buf = new Uint8Array(sw * sh);
+        smask.fillGrayBuffer(buf);
+        if (sw != width || sh != height)
+          buf = PDFImage.resize(buf, smask.bps, 1, sw, sh, width, height);
+      } else {
+        buf = new Uint8Array(width * height);
+        for (var i = 0, ii = width * height; i < ii; ++i)
+          buf[i] = 255;
+      }
+      return buf;
+    },
+    applyStencilMask: function PDFImage_applyStencilMask(buffer,
+                                                         inverseDecode) {
+      var width = this.width, height = this.height;
+      var bitStrideLength = (width + 7) >> 3;
+      var imgArray = this.getImageBytes(bitStrideLength * height);
+      var imgArrayPos = 0;
+      var i, j, mask, buf;
+      // removing making non-masked pixels transparent
+      var bufferPos = 3; // alpha component offset
+      for (i = 0; i < height; i++) {
+        mask = 0;
+        for (j = 0; j < width; j++) {
+          if (!mask) {
+            buf = imgArray[imgArrayPos++];
+            mask = 128;
+          }
+          if (!(buf & mask) == inverseDecode) {
+            buffer[bufferPos] = 0;
+          }
+          bufferPos += 4;
+          mask >>= 1;
+        }
+      }
+    },
+    fillRgbaBuffer: function PDFImage_fillRgbaBuffer(buffer, width, height) {
+      var numComps = this.numComps;
+      var originalWidth = this.width;
+      var originalHeight = this.height;
+      var bpc = this.bpc;
+
+      // rows start at byte boundary;
+      var rowBytes = (originalWidth * numComps * bpc + 7) >> 3;
+      var imgArray = this.getImageBytes(originalHeight * rowBytes);
+
+      var comps = this.colorSpace.getRgbBuffer(
+        this.getComponents(imgArray), bpc);
+      if (originalWidth != width || originalHeight != height)
+        comps = PDFImage.resize(comps, this.bpc, 3, originalWidth,
+                                originalHeight, width, height);
+      var compsPos = 0;
+      var opacity = this.getOpacity(width, height);
+      var opacityPos = 0;
+      var length = width * height * 4;
+
+      for (var i = 0; i < length; i += 4) {
+        buffer[i] = comps[compsPos++];
+        buffer[i + 1] = comps[compsPos++];
+        buffer[i + 2] = comps[compsPos++];
+        buffer[i + 3] = opacity[opacityPos++];
+      }
+    },
+    fillGrayBuffer: function PDFImage_fillGrayBuffer(buffer) {
+      var numComps = this.numComps;
+      if (numComps != 1)
+        error('Reading gray scale from a color image: ' + numComps);
+
+      var width = this.width;
+      var height = this.height;
+      var bpc = this.bpc;
+
+      // rows start at byte boundary;
+      var rowBytes = (width * numComps * bpc + 7) >> 3;
+      var imgArray = this.getImageBytes(height * rowBytes);
+
+      var comps = this.getComponents(imgArray);
+      var length = width * height;
+      // we aren't using a colorspace so we need to scale the value
+      var scale = 255 / ((1 << bpc) - 1);
+      for (var i = 0; i < length; ++i)
+        buffer[i] = (scale * comps[i]) | 0;
+    },
+    getImageBytes: function PDFImage_getImageBytes(length) {
+      this.image.reset();
+      return this.image.getBytes(length);
+    }
+  };
+  return PDFImage;
+})();
+
+function loadJpegStream(id, imageData, objs) {
+  var img = new Image();
+  img.onload = (function loadJpegStream_onloadClosure() {
+    objs.resolve(id, img);
+  });
+  img.src = 'data:image/jpeg;base64,' + PdfJS_window.window.btoa(imageData);
+}
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+// The Metrics object contains glyph widths (in glyph space units).
+// As per PDF spec, for most fonts (Type 3 being an exception) a glyph
+// space unit corresponds to 1/1000th of text space unit.
+var Metrics = {
+  'Courier': 600,
+  'Courier-Bold': 600,
+  'Courier-BoldOblique': 600,
+  'Courier-Oblique': 600,
+  'Helvetica' : {
+    'space': 278,
+    'exclam': 278,
+    'quotedbl': 355,
+    'numbersign': 556,
+    'dollar': 556,
+    'percent': 889,
+    'ampersand': 667,
+    'quoteright': 222,
+    'parenleft': 333,
+    'parenright': 333,
+    'asterisk': 389,
+    'plus': 584,
+    'comma': 278,
+    'hyphen': 333,
+    'period': 278,
+    'slash': 278,
+    'zero': 556,
+    'one': 556,
+    'two': 556,
+    'three': 556,
+    'four': 556,
+    'five': 556,
+    'six': 556,
+    'seven': 556,
+    'eight': 556,
+    'nine': 556,
+    'colon': 278,
+    'semicolon': 278,
+    'less': 584,
+    'equal': 584,
+    'greater': 584,
+    'question': 556,
+    'at': 1015,
+    'A': 667,
+    'B': 667,
+    'C': 722,
+    'D': 722,
+    'E': 667,
+    'F': 611,
+    'G': 778,
+    'H': 722,
+    'I': 278,
+    'J': 500,
+    'K': 667,
+    'L': 556,
+    'M': 833,
+    'N': 722,
+    'O': 778,
+    'P': 667,
+    'Q': 778,
+    'R': 722,
+    'S': 667,
+    'T': 611,
+    'U': 722,
+    'V': 667,
+    'W': 944,
+    'X': 667,
+    'Y': 667,
+    'Z': 611,
+    'bracketleft': 278,
+    'backslash': 278,
+    'bracketright': 278,
+    'asciicircum': 469,
+    'underscore': 556,
+    'quoteleft': 222,
+    'a': 556,
+    'b': 556,
+    'c': 500,
+    'd': 556,
+    'e': 556,
+    'f': 278,
+    'g': 556,
+    'h': 556,
+    'i': 222,
+    'j': 222,
+    'k': 500,
+    'l': 222,
+    'm': 833,
+    'n': 556,
+    'o': 556,
+    'p': 556,
+    'q': 556,
+    'r': 333,
+    's': 500,
+    't': 278,
+    'u': 556,
+    'v': 500,
+    'w': 722,
+    'x': 500,
+    'y': 500,
+    'z': 500,
+    'braceleft': 334,
+    'bar': 260,
+    'braceright': 334,
+    'asciitilde': 584,
+    'exclamdown': 333,
+    'cent': 556,
+    'sterling': 556,
+    'fraction': 167,
+    'yen': 556,
+    'florin': 556,
+    'section': 556,
+    'currency': 556,
+    'quotesingle': 191,
+    'quotedblleft': 333,
+    'guillemotleft': 556,
+    'guilsinglleft': 333,
+    'guilsinglright': 333,
+    'fi': 500,
+    'fl': 500,
+    'endash': 556,
+    'dagger': 556,
+    'daggerdbl': 556,
+    'periodcentered': 278,
+    'paragraph': 537,
+    'bullet': 350,
+    'quotesinglbase': 222,
+    'quotedblbase': 333,
+    'quotedblright': 333,
+    'guillemotright': 556,
+    'ellipsis': 1000,
+    'perthousand': 1000,
+    'questiondown': 611,
+    'grave': 333,
+    'acute': 333,
+    'circumflex': 333,
+    'tilde': 333,
+    'macron': 333,
+    'breve': 333,
+    'dotaccent': 333,
+    'dieresis': 333,
+    'ring': 333,
+    'cedilla': 333,
+    'hungarumlaut': 333,
+    'ogonek': 333,
+    'caron': 333,
+    'emdash': 1000,
+    'AE': 1000,
+    'ordfeminine': 370,
+    'Lslash': 556,
+    'Oslash': 778,
+    'OE': 1000,
+    'ordmasculine': 365,
+    'ae': 889,
+    'dotlessi': 278,
+    'lslash': 222,
+    'oslash': 611,
+    'oe': 944,
+    'germandbls': 611,
+    'Idieresis': 278,
+    'eacute': 556,
+    'abreve': 556,
+    'uhungarumlaut': 556,
+    'ecaron': 556,
+    'Ydieresis': 667,
+    'divide': 584,
+    'Yacute': 667,
+    'Acircumflex': 667,
+    'aacute': 556,
+    'Ucircumflex': 722,
+    'yacute': 500,
+    'scommaaccent': 500,
+    'ecircumflex': 556,
+    'Uring': 722,
+    'Udieresis': 722,
+    'aogonek': 556,
+    'Uacute': 722,
+    'uogonek': 556,
+    'Edieresis': 667,
+    'Dcroat': 722,
+    'commaaccent': 250,
+    'copyright': 737,
+    'Emacron': 667,
+    'ccaron': 500,
+    'aring': 556,
+    'Ncommaaccent': 722,
+    'lacute': 222,
+    'agrave': 556,
+    'Tcommaaccent': 611,
+    'Cacute': 722,
+    'atilde': 556,
+    'Edotaccent': 667,
+    'scaron': 500,
+    'scedilla': 500,
+    'iacute': 278,
+    'lozenge': 471,
+    'Rcaron': 722,
+    'Gcommaaccent': 778,
+    'ucircumflex': 556,
+    'acircumflex': 556,
+    'Amacron': 667,
+    'rcaron': 333,
+    'ccedilla': 500,
+    'Zdotaccent': 611,
+    'Thorn': 667,
+    'Omacron': 778,
+    'Racute': 722,
+    'Sacute': 667,
+    'dcaron': 643,
+    'Umacron': 722,
+    'uring': 556,
+    'threesuperior': 333,
+    'Ograve': 778,
+    'Agrave': 667,
+    'Abreve': 667,
+    'multiply': 584,
+    'uacute': 556,
+    'Tcaron': 611,
+    'partialdiff': 476,
+    'ydieresis': 500,
+    'Nacute': 722,
+    'icircumflex': 278,
+    'Ecircumflex': 667,
+    'adieresis': 556,
+    'edieresis': 556,
+    'cacute': 500,
+    'nacute': 556,
+    'umacron': 556,
+    'Ncaron': 722,
+    'Iacute': 278,
+    'plusminus': 584,
+    'brokenbar': 260,
+    'registered': 737,
+    'Gbreve': 778,
+    'Idotaccent': 278,
+    'summation': 600,
+    'Egrave': 667,
+    'racute': 333,
+    'omacron': 556,
+    'Zacute': 611,
+    'Zcaron': 611,
+    'greaterequal': 549,
+    'Eth': 722,
+    'Ccedilla': 722,
+    'lcommaaccent': 222,
+    'tcaron': 317,
+    'eogonek': 556,
+    'Uogonek': 722,
+    'Aacute': 667,
+    'Adieresis': 667,
+    'egrave': 556,
+    'zacute': 500,
+    'iogonek': 222,
+    'Oacute': 778,
+    'oacute': 556,
+    'amacron': 556,
+    'sacute': 500,
+    'idieresis': 278,
+    'Ocircumflex': 778,
+    'Ugrave': 722,
+    'Delta': 612,
+    'thorn': 556,
+    'twosuperior': 333,
+    'Odieresis': 778,
+    'mu': 556,
+    'igrave': 278,
+    'ohungarumlaut': 556,
+    'Eogonek': 667,
+    'dcroat': 556,
+    'threequarters': 834,
+    'Scedilla': 667,
+    'lcaron': 299,
+    'Kcommaaccent': 667,
+    'Lacute': 556,
+    'trademark': 1000,
+    'edotaccent': 556,
+    'Igrave': 278,
+    'Imacron': 278,
+    'Lcaron': 556,
+    'onehalf': 834,
+    'lessequal': 549,
+    'ocircumflex': 556,
+    'ntilde': 556,
+    'Uhungarumlaut': 722,
+    'Eacute': 667,
+    'emacron': 556,
+    'gbreve': 556,
+    'onequarter': 834,
+    'Scaron': 667,
+    'Scommaaccent': 667,
+    'Ohungarumlaut': 778,
+    'degree': 400,
+    'ograve': 556,
+    'Ccaron': 722,
+    'ugrave': 556,
+    'radical': 453,
+    'Dcaron': 722,
+    'rcommaaccent': 333,
+    'Ntilde': 722,
+    'otilde': 556,
+    'Rcommaaccent': 722,
+    'Lcommaaccent': 556,
+    'Atilde': 667,
+    'Aogonek': 667,
+    'Aring': 667,
+    'Otilde': 778,
+    'zdotaccent': 500,
+    'Ecaron': 667,
+    'Iogonek': 278,
+    'kcommaaccent': 500,
+    'minus': 584,
+    'Icircumflex': 278,
+    'ncaron': 556,
+    'tcommaaccent': 278,
+    'logicalnot': 584,
+    'odieresis': 556,
+    'udieresis': 556,
+    'notequal': 549,
+    'gcommaaccent': 556,
+    'eth': 556,
+    'zcaron': 500,
+    'ncommaaccent': 556,
+    'onesuperior': 333,
+    'imacron': 278,
+    'Euro': 556
+  },
+  'Helvetica-Bold': {
+    'space': 278,
+    'exclam': 333,
+    'quotedbl': 474,
+    'numbersign': 556,
+    'dollar': 556,
+    'percent': 889,
+    'ampersand': 722,
+    'quoteright': 278,
+    'parenleft': 333,
+    'parenright': 333,
+    'asterisk': 389,
+    'plus': 584,
+    'comma': 278,
+    'hyphen': 333,
+    'period': 278,
+    'slash': 278,
+    'zero': 556,
+    'one': 556,
+    'two': 556,
+    'three': 556,
+    'four': 556,
+    'five': 556,
+    'six': 556,
+    'seven': 556,
+    'eight': 556,
+    'nine': 556,
+    'colon': 333,
+    'semicolon': 333,
+    'less': 584,
+    'equal': 584,
+    'greater': 584,
+    'question': 611,
+    'at': 975,
+    'A': 722,
+    'B': 722,
+    'C': 722,
+    'D': 722,
+    'E': 667,
+    'F': 611,
+    'G': 778,
+    'H': 722,
+    'I': 278,
+    'J': 556,
+    'K': 722,
+    'L': 611,
+    'M': 833,
+    'N': 722,
+    'O': 778,
+    'P': 667,
+    'Q': 778,
+    'R': 722,
+    'S': 667,
+    'T': 611,
+    'U': 722,
+    'V': 667,
+    'W': 944,
+    'X': 667,
+    'Y': 667,
+    'Z': 611,
+    'bracketleft': 333,
+    'backslash': 278,
+    'bracketright': 333,
+    'asciicircum': 584,
+    'underscore': 556,
+    'quoteleft': 278,
+    'a': 556,
+    'b': 611,
+    'c': 556,
+    'd': 611,
+    'e': 556,
+    'f': 333,
+    'g': 611,
+    'h': 611,
+    'i': 278,
+    'j': 278,
+    'k': 556,
+    'l': 278,
+    'm': 889,
+    'n': 611,
+    'o': 611,
+    'p': 611,
+    'q': 611,
+    'r': 389,
+    's': 556,
+    't': 333,
+    'u': 611,
+    'v': 556,
+    'w': 778,
+    'x': 556,
+    'y': 556,
+    'z': 500,
+    'braceleft': 389,
+    'bar': 280,
+    'braceright': 389,
+    'asciitilde': 584,
+    'exclamdown': 333,
+    'cent': 556,
+    'sterling': 556,
+    'fraction': 167,
+    'yen': 556,
+    'florin': 556,
+    'section': 556,
+    'currency': 556,
+    'quotesingle': 238,
+    'quotedblleft': 500,
+    'guillemotleft': 556,
+    'guilsinglleft': 333,
+    'guilsinglright': 333,
+    'fi': 611,
+    'fl': 611,
+    'endash': 556,
+    'dagger': 556,
+    'daggerdbl': 556,
+    'periodcentered': 278,
+    'paragraph': 556,
+    'bullet': 350,
+    'quotesinglbase': 278,
+    'quotedblbase': 500,
+    'quotedblright': 500,
+    'guillemotright': 556,
+    'ellipsis': 1000,
+    'perthousand': 1000,
+    'questiondown': 611,
+    'grave': 333,
+    'acute': 333,
+    'circumflex': 333,
+    'tilde': 333,
+    'macron': 333,
+    'breve': 333,
+    'dotaccent': 333,
+    'dieresis': 333,
+    'ring': 333,
+    'cedilla': 333,
+    'hungarumlaut': 333,
+    'ogonek': 333,
+    'caron': 333,
+    'emdash': 1000,
+    'AE': 1000,
+    'ordfeminine': 370,
+    'Lslash': 611,
+    'Oslash': 778,
+    'OE': 1000,
+    'ordmasculine': 365,
+    'ae': 889,
+    'dotlessi': 278,
+    'lslash': 278,
+    'oslash': 611,
+    'oe': 944,
+    'germandbls': 611,
+    'Idieresis': 278,
+    'eacute': 556,
+    'abreve': 556,
+    'uhungarumlaut': 611,
+    'ecaron': 556,
+    'Ydieresis': 667,
+    'divide': 584,
+    'Yacute': 667,
+    'Acircumflex': 722,
+    'aacute': 556,
+    'Ucircumflex': 722,
+    'yacute': 556,
+    'scommaaccent': 556,
+    'ecircumflex': 556,
+    'Uring': 722,
+    'Udieresis': 722,
+    'aogonek': 556,
+    'Uacute': 722,
+    'uogonek': 611,
+    'Edieresis': 667,
+    'Dcroat': 722,
+    'commaaccent': 250,
+    'copyright': 737,
+    'Emacron': 667,
+    'ccaron': 556,
+    'aring': 556,
+    'Ncommaaccent': 722,
+    'lacute': 278,
+    'agrave': 556,
+    'Tcommaaccent': 611,
+    'Cacute': 722,
+    'atilde': 556,
+    'Edotaccent': 667,
+    'scaron': 556,
+    'scedilla': 556,
+    'iacute': 278,
+    'lozenge': 494,
+    'Rcaron': 722,
+    'Gcommaaccent': 778,
+    'ucircumflex': 611,
+    'acircumflex': 556,
+    'Amacron': 722,
+    'rcaron': 389,
+    'ccedilla': 556,
+    'Zdotaccent': 611,
+    'Thorn': 667,
+    'Omacron': 778,
+    'Racute': 722,
+    'Sacute': 667,
+    'dcaron': 743,
+    'Umacron': 722,
+    'uring': 611,
+    'threesuperior': 333,
+    'Ograve': 778,
+    'Agrave': 722,
+    'Abreve': 722,
+    'multiply': 584,
+    'uacute': 611,
+    'Tcaron': 611,
+    'partialdiff': 494,
+    'ydieresis': 556,
+    'Nacute': 722,
+    'icircumflex': 278,
+    'Ecircumflex': 667,
+    'adieresis': 556,
+    'edieresis': 556,
+    'cacute': 556,
+    'nacute': 611,
+    'umacron': 611,
+    'Ncaron': 722,
+    'Iacute': 278,
+    'plusminus': 584,
+    'brokenbar': 280,
+    'registered': 737,
+    'Gbreve': 778,
+    'Idotaccent': 278,
+    'summation': 600,
+    'Egrave': 667,
+    'racute': 389,
+    'omacron': 611,
+    'Zacute': 611,
+    'Zcaron': 611,
+    'greaterequal': 549,
+    'Eth': 722,
+    'Ccedilla': 722,
+    'lcommaaccent': 278,
+    'tcaron': 389,
+    'eogonek': 556,
+    'Uogonek': 722,
+    'Aacute': 722,
+    'Adieresis': 722,
+    'egrave': 556,
+    'zacute': 500,
+    'iogonek': 278,
+    'Oacute': 778,
+    'oacute': 611,
+    'amacron': 556,
+    'sacute': 556,
+    'idieresis': 278,
+    'Ocircumflex': 778,
+    'Ugrave': 722,
+    'Delta': 612,
+    'thorn': 611,
+    'twosuperior': 333,
+    'Odieresis': 778,
+    'mu': 611,
+    'igrave': 278,
+    'ohungarumlaut': 611,
+    'Eogonek': 667,
+    'dcroat': 611,
+    'threequarters': 834,
+    'Scedilla': 667,
+    'lcaron': 400,
+    'Kcommaaccent': 722,
+    'Lacute': 611,
+    'trademark': 1000,
+    'edotaccent': 556,
+    'Igrave': 278,
+    'Imacron': 278,
+    'Lcaron': 611,
+    'onehalf': 834,
+    'lessequal': 549,
+    'ocircumflex': 611,
+    'ntilde': 611,
+    'Uhungarumlaut': 722,
+    'Eacute': 667,
+    'emacron': 556,
+    'gbreve': 611,
+    'onequarter': 834,
+    'Scaron': 667,
+    'Scommaaccent': 667,
+    'Ohungarumlaut': 778,
+    'degree': 400,
+    'ograve': 611,
+    'Ccaron': 722,
+    'ugrave': 611,
+    'radical': 549,
+    'Dcaron': 722,
+    'rcommaaccent': 389,
+    'Ntilde': 722,
+    'otilde': 611,
+    'Rcommaaccent': 722,
+    'Lcommaaccent': 611,
+    'Atilde': 722,
+    'Aogonek': 722,
+    'Aring': 722,
+    'Otilde': 778,
+    'zdotaccent': 500,
+    'Ecaron': 667,
+    'Iogonek': 278,
+    'kcommaaccent': 556,
+    'minus': 584,
+    'Icircumflex': 278,
+    'ncaron': 611,
+    'tcommaaccent': 333,
+    'logicalnot': 584,
+    'odieresis': 611,
+    'udieresis': 611,
+    'notequal': 549,
+    'gcommaaccent': 611,
+    'eth': 611,
+    'zcaron': 500,
+    'ncommaaccent': 611,
+    'onesuperior': 333,
+    'imacron': 278,
+    'Euro': 556
+  },
+  'Helvetica-BoldOblique': {
+    'space': 278,
+    'exclam': 333,
+    'quotedbl': 474,
+    'numbersign': 556,
+    'dollar': 556,
+    'percent': 889,
+    'ampersand': 722,
+    'quoteright': 278,
+    'parenleft': 333,
+    'parenright': 333,
+    'asterisk': 389,
+    'plus': 584,
+    'comma': 278,
+    'hyphen': 333,
+    'period': 278,
+    'slash': 278,
+    'zero': 556,
+    'one': 556,
+    'two': 556,
+    'three': 556,
+    'four': 556,
+    'five': 556,
+    'six': 556,
+    'seven': 556,
+    'eight': 556,
+    'nine': 556,
+    'colon': 333,
+    'semicolon': 333,
+    'less': 584,
+    'equal': 584,
+    'greater': 584,
+    'question': 611,
+    'at': 975,
+    'A': 722,
+    'B': 722,
+    'C': 722,
+    'D': 722,
+    'E': 667,
+    'F': 611,
+    'G': 778,
+    'H': 722,
+    'I': 278,
+    'J': 556,
+    'K': 722,
+    'L': 611,
+    'M': 833,
+    'N': 722,
+    'O': 778,
+    'P': 667,
+    'Q': 778,
+    'R': 722,
+    'S': 667,
+    'T': 611,
+    'U': 722,
+    'V': 667,
+    'W': 944,
+    'X': 667,
+    'Y': 667,
+    'Z': 611,
+    'bracketleft': 333,
+    'backslash': 278,
+    'bracketright': 333,
+    'asciicircum': 584,
+    'underscore': 556,
+    'quoteleft': 278,
+    'a': 556,
+    'b': 611,
+    'c': 556,
+    'd': 611,
+    'e': 556,
+    'f': 333,
+    'g': 611,
+    'h': 611,
+    'i': 278,
+    'j': 278,
+    'k': 556,
+    'l': 278,
+    'm': 889,
+    'n': 611,
+    'o': 611,
+    'p': 611,
+    'q': 611,
+    'r': 389,
+    's': 556,
+    't': 333,
+    'u': 611,
+    'v': 556,
+    'w': 778,
+    'x': 556,
+    'y': 556,
+    'z': 500,
+    'braceleft': 389,
+    'bar': 280,
+    'braceright': 389,
+    'asciitilde': 584,
+    'exclamdown': 333,
+    'cent': 556,
+    'sterling': 556,
+    'fraction': 167,
+    'yen': 556,
+    'florin': 556,
+    'section': 556,
+    'currency': 556,
+    'quotesingle': 238,
+    'quotedblleft': 500,
+    'guillemotleft': 556,
+    'guilsinglleft': 333,
+    'guilsinglright': 333,
+    'fi': 611,
+    'fl': 611,
+    'endash': 556,
+    'dagger': 556,
+    'daggerdbl': 556,
+    'periodcentered': 278,
+    'paragraph': 556,
+    'bullet': 350,
+    'quotesinglbase': 278,
+    'quotedblbase': 500,
+    'quotedblright': 500,
+    'guillemotright': 556,
+    'ellipsis': 1000,
+    'perthousand': 1000,
+    'questiondown': 611,
+    'grave': 333,
+    'acute': 333,
+    'circumflex': 333,
+    'tilde': 333,
+    'macron': 333,
+    'breve': 333,
+    'dotaccent': 333,
+    'dieresis': 333,
+    'ring': 333,
+    'cedilla': 333,
+    'hungarumlaut': 333,
+    'ogonek': 333,
+    'caron': 333,
+    'emdash': 1000,
+    'AE': 1000,
+    'ordfeminine': 370,
+    'Lslash': 611,
+    'Oslash': 778,
+    'OE': 1000,
+    'ordmasculine': 365,
+    'ae': 889,
+    'dotlessi': 278,
+    'lslash': 278,
+    'oslash': 611,
+    'oe': 944,
+    'germandbls': 611,
+    'Idieresis': 278,
+    'eacute': 556,
+    'abreve': 556,
+    'uhungarumlaut': 611,
+    'ecaron': 556,
+    'Ydieresis': 667,
+    'divide': 584,
+    'Yacute': 667,
+    'Acircumflex': 722,
+    'aacute': 556,
+    'Ucircumflex': 722,
+    'yacute': 556,
+    'scommaaccent': 556,
+    'ecircumflex': 556,
+    'Uring': 722,
+    'Udieresis': 722,
+    'aogonek': 556,
+    'Uacute': 722,
+    'uogonek': 611,
+    'Edieresis': 667,
+    'Dcroat': 722,
+    'commaaccent': 250,
+    'copyright': 737,
+    'Emacron': 667,
+    'ccaron': 556,
+    'aring': 556,
+    'Ncommaaccent': 722,
+    'lacute': 278,
+    'agrave': 556,
+    'Tcommaaccent': 611,
+    'Cacute': 722,
+    'atilde': 556,
+    'Edotaccent': 667,
+    'scaron': 556,
+    'scedilla': 556,
+    'iacute': 278,
+    'lozenge': 494,
+    'Rcaron': 722,
+    'Gcommaaccent': 778,
+    'ucircumflex': 611,
+    'acircumflex': 556,
+    'Amacron': 722,
+    'rcaron': 389,
+    'ccedilla': 556,
+    'Zdotaccent': 611,
+    'Thorn': 667,
+    'Omacron': 778,
+    'Racute': 722,
+    'Sacute': 667,
+    'dcaron': 743,
+    'Umacron': 722,
+    'uring': 611,
+    'threesuperior': 333,
+    'Ograve': 778,
+    'Agrave': 722,
+    'Abreve': 722,
+    'multiply': 584,
+    'uacute': 611,
+    'Tcaron': 611,
+    'partialdiff': 494,
+    'ydieresis': 556,
+    'Nacute': 722,
+    'icircumflex': 278,
+    'Ecircumflex': 667,
+    'adieresis': 556,
+    'edieresis': 556,
+    'cacute': 556,
+    'nacute': 611,
+    'umacron': 611,
+    'Ncaron': 722,
+    'Iacute': 278,
+    'plusminus': 584,
+    'brokenbar': 280,
+    'registered': 737,
+    'Gbreve': 778,
+    'Idotaccent': 278,
+    'summation': 600,
+    'Egrave': 667,
+    'racute': 389,
+    'omacron': 611,
+    'Zacute': 611,
+    'Zcaron': 611,
+    'greaterequal': 549,
+    'Eth': 722,
+    'Ccedilla': 722,
+    'lcommaaccent': 278,
+    'tcaron': 389,
+    'eogonek': 556,
+    'Uogonek': 722,
+    'Aacute': 722,
+    'Adieresis': 722,
+    'egrave': 556,
+    'zacute': 500,
+    'iogonek': 278,
+    'Oacute': 778,
+    'oacute': 611,
+    'amacron': 556,
+    'sacute': 556,
+    'idieresis': 278,
+    'Ocircumflex': 778,
+    'Ugrave': 722,
+    'Delta': 612,
+    'thorn': 611,
+    'twosuperior': 333,
+    'Odieresis': 778,
+    'mu': 611,
+    'igrave': 278,
+    'ohungarumlaut': 611,
+    'Eogonek': 667,
+    'dcroat': 611,
+    'threequarters': 834,
+    'Scedilla': 667,
+    'lcaron': 400,
+    'Kcommaaccent': 722,
+    'Lacute': 611,
+    'trademark': 1000,
+    'edotaccent': 556,
+    'Igrave': 278,
+    'Imacron': 278,
+    'Lcaron': 611,
+    'onehalf': 834,
+    'lessequal': 549,
+    'ocircumflex': 611,
+    'ntilde': 611,
+    'Uhungarumlaut': 722,
+    'Eacute': 667,
+    'emacron': 556,
+    'gbreve': 611,
+    'onequarter': 834,
+    'Scaron': 667,
+    'Scommaaccent': 667,
+    'Ohungarumlaut': 778,
+    'degree': 400,
+    'ograve': 611,
+    'Ccaron': 722,
+    'ugrave': 611,
+    'radical': 549,
+    'Dcaron': 722,
+    'rcommaaccent': 389,
+    'Ntilde': 722,
+    'otilde': 611,
+    'Rcommaaccent': 722,
+    'Lcommaaccent': 611,
+    'Atilde': 722,
+    'Aogonek': 722,
+    'Aring': 722,
+    'Otilde': 778,
+    'zdotaccent': 500,
+    'Ecaron': 667,
+    'Iogonek': 278,
+    'kcommaaccent': 556,
+    'minus': 584,
+    'Icircumflex': 278,
+    'ncaron': 611,
+    'tcommaaccent': 333,
+    'logicalnot': 584,
+    'odieresis': 611,
+    'udieresis': 611,
+    'notequal': 549,
+    'gcommaaccent': 611,
+    'eth': 611,
+    'zcaron': 500,
+    'ncommaaccent': 611,
+    'onesuperior': 333,
+    'imacron': 278,
+    'Euro': 556
+  },
+  'Helvetica-Oblique' : {
+    'space': 278,
+    'exclam': 278,
+    'quotedbl': 355,
+    'numbersign': 556,
+    'dollar': 556,
+    'percent': 889,
+    'ampersand': 667,
+    'quoteright': 222,
+    'parenleft': 333,
+    'parenright': 333,
+    'asterisk': 389,
+    'plus': 584,
+    'comma': 278,
+    'hyphen': 333,
+    'period': 278,
+    'slash': 278,
+    'zero': 556,
+    'one': 556,
+    'two': 556,
+    'three': 556,
+    'four': 556,
+    'five': 556,
+    'six': 556,
+    'seven': 556,
+    'eight': 556,
+    'nine': 556,
+    'colon': 278,
+    'semicolon': 278,
+    'less': 584,
+    'equal': 584,
+    'greater': 584,
+    'question': 556,
+    'at': 1015,
+    'A': 667,
+    'B': 667,
+    'C': 722,
+    'D': 722,
+    'E': 667,
+    'F': 611,
+    'G': 778,
+    'H': 722,
+    'I': 278,
+    'J': 500,
+    'K': 667,
+    'L': 556,
+    'M': 833,
+    'N': 722,
+    'O': 778,
+    'P': 667,
+    'Q': 778,
+    'R': 722,
+    'S': 667,
+    'T': 611,
+    'U': 722,
+    'V': 667,
+    'W': 944,
+    'X': 667,
+    'Y': 667,
+    'Z': 611,
+    'bracketleft': 278,
+    'backslash': 278,
+    'bracketright': 278,
+    'asciicircum': 469,
+    'underscore': 556,
+    'quoteleft': 222,
+    'a': 556,
+    'b': 556,
+    'c': 500,
+    'd': 556,
+    'e': 556,
+    'f': 278,
+    'g': 556,
+    'h': 556,
+    'i': 222,
+    'j': 222,
+    'k': 500,
+    'l': 222,
+    'm': 833,
+    'n': 556,
+    'o': 556,
+    'p': 556,
+    'q': 556,
+    'r': 333,
+    's': 500,
+    't': 278,
+    'u': 556,
+    'v': 500,
+    'w': 722,
+    'x': 500,
+    'y': 500,
+    'z': 500,
+    'braceleft': 334,
+    'bar': 260,
+    'braceright': 334,
+    'asciitilde': 584,
+    'exclamdown': 333,
+    'cent': 556,
+    'sterling': 556,
+    'fraction': 167,
+    'yen': 556,
+    'florin': 556,
+    'section': 556,
+    'currency': 556,
+    'quotesingle': 191,
+    'quotedblleft': 333,
+    'guillemotleft': 556,
+    'guilsinglleft': 333,
+    'guilsinglright': 333,
+    'fi': 500,
+    'fl': 500,
+    'endash': 556,
+    'dagger': 556,
+    'daggerdbl': 556,
+    'periodcentered': 278,
+    'paragraph': 537,
+    'bullet': 350,
+    'quotesinglbase': 222,
+    'quotedblbase': 333,
+    'quotedblright': 333,
+    'guillemotright': 556,
+    'ellipsis': 1000,
+    'perthousand': 1000,
+    'questiondown': 611,
+    'grave': 333,
+    'acute': 333,
+    'circumflex': 333,
+    'tilde': 333,
+    'macron': 333,
+    'breve': 333,
+    'dotaccent': 333,
+    'dieresis': 333,
+    'ring': 333,
+    'cedilla': 333,
+    'hungarumlaut': 333,
+    'ogonek': 333,
+    'caron': 333,
+    'emdash': 1000,
+    'AE': 1000,
+    'ordfeminine': 370,
+    'Lslash': 556,
+    'Oslash': 778,
+    'OE': 1000,
+    'ordmasculine': 365,
+    'ae': 889,
+    'dotlessi': 278,
+    'lslash': 222,
+    'oslash': 611,
+    'oe': 944,
+    'germandbls': 611,
+    'Idieresis': 278,
+    'eacute': 556,
+    'abreve': 556,
+    'uhungarumlaut': 556,
+    'ecaron': 556,
+    'Ydieresis': 667,
+    'divide': 584,
+    'Yacute': 667,
+    'Acircumflex': 667,
+    'aacute': 556,
+    'Ucircumflex': 722,
+    'yacute': 500,
+    'scommaaccent': 500,
+    'ecircumflex': 556,
+    'Uring': 722,
+    'Udieresis': 722,
+    'aogonek': 556,
+    'Uacute': 722,
+    'uogonek': 556,
+    'Edieresis': 667,
+    'Dcroat': 722,
+    'commaaccent': 250,
+    'copyright': 737,
+    'Emacron': 667,
+    'ccaron': 500,
+    'aring': 556,
+    'Ncommaaccent': 722,
+    'lacute': 222,
+    'agrave': 556,
+    'Tcommaaccent': 611,
+    'Cacute': 722,
+    'atilde': 556,
+    'Edotaccent': 667,
+    'scaron': 500,
+    'scedilla': 500,
+    'iacute': 278,
+    'lozenge': 471,
+    'Rcaron': 722,
+    'Gcommaaccent': 778,
+    'ucircumflex': 556,
+    'acircumflex': 556,
+    'Amacron': 667,
+    'rcaron': 333,
+    'ccedilla': 500,
+    'Zdotaccent': 611,
+    'Thorn': 667,
+    'Omacron': 778,
+    'Racute': 722,
+    'Sacute': 667,
+    'dcaron': 643,
+    'Umacron': 722,
+    'uring': 556,
+    'threesuperior': 333,
+    'Ograve': 778,
+    'Agrave': 667,
+    'Abreve': 667,
+    'multiply': 584,
+    'uacute': 556,
+    'Tcaron': 611,
+    'partialdiff': 476,
+    'ydieresis': 500,
+    'Nacute': 722,
+    'icircumflex': 278,
+    'Ecircumflex': 667,
+    'adieresis': 556,
+    'edieresis': 556,
+    'cacute': 500,
+    'nacute': 556,
+    'umacron': 556,
+    'Ncaron': 722,
+    'Iacute': 278,
+    'plusminus': 584,
+    'brokenbar': 260,
+    'registered': 737,
+    'Gbreve': 778,
+    'Idotaccent': 278,
+    'summation': 600,
+    'Egrave': 667,
+    'racute': 333,
+    'omacron': 556,
+    'Zacute': 611,
+    'Zcaron': 611,
+    'greaterequal': 549,
+    'Eth': 722,
+    'Ccedilla': 722,
+    'lcommaaccent': 222,
+    'tcaron': 317,
+    'eogonek': 556,
+    'Uogonek': 722,
+    'Aacute': 667,
+    'Adieresis': 667,
+    'egrave': 556,
+    'zacute': 500,
+    'iogonek': 222,
+    'Oacute': 778,
+    'oacute': 556,
+    'amacron': 556,
+    'sacute': 500,
+    'idieresis': 278,
+    'Ocircumflex': 778,
+    'Ugrave': 722,
+    'Delta': 612,
+    'thorn': 556,
+    'twosuperior': 333,
+    'Odieresis': 778,
+    'mu': 556,
+    'igrave': 278,
+    'ohungarumlaut': 556,
+    'Eogonek': 667,
+    'dcroat': 556,
+    'threequarters': 834,
+    'Scedilla': 667,
+    'lcaron': 299,
+    'Kcommaaccent': 667,
+    'Lacute': 556,
+    'trademark': 1000,
+    'edotaccent': 556,
+    'Igrave': 278,
+    'Imacron': 278,
+    'Lcaron': 556,
+    'onehalf': 834,
+    'lessequal': 549,
+    'ocircumflex': 556,
+    'ntilde': 556,
+    'Uhungarumlaut': 722,
+    'Eacute': 667,
+    'emacron': 556,
+    'gbreve': 556,
+    'onequarter': 834,
+    'Scaron': 667,
+    'Scommaaccent': 667,
+    'Ohungarumlaut': 778,
+    'degree': 400,
+    'ograve': 556,
+    'Ccaron': 722,
+    'ugrave': 556,
+    'radical': 453,
+    'Dcaron': 722,
+    'rcommaaccent': 333,
+    'Ntilde': 722,
+    'otilde': 556,
+    'Rcommaaccent': 722,
+    'Lcommaaccent': 556,
+    'Atilde': 667,
+    'Aogonek': 667,
+    'Aring': 667,
+    'Otilde': 778,
+    'zdotaccent': 500,
+    'Ecaron': 667,
+    'Iogonek': 278,
+    'kcommaaccent': 500,
+    'minus': 584,
+    'Icircumflex': 278,
+    'ncaron': 556,
+    'tcommaaccent': 278,
+    'logicalnot': 584,
+    'odieresis': 556,
+    'udieresis': 556,
+    'notequal': 549,
+    'gcommaaccent': 556,
+    'eth': 556,
+    'zcaron': 500,
+    'ncommaaccent': 556,
+    'onesuperior': 333,
+    'imacron': 278,
+    'Euro': 556
+  },
+  'Symbol': {
+    'space': 250,
+    'exclam': 333,
+    'universal': 713,
+    'numbersign': 500,
+    'existential': 549,
+    'percent': 833,
+    'ampersand': 778,
+    'suchthat': 439,
+    'parenleft': 333,
+    'parenright': 333,
+    'asteriskmath': 500,
+    'plus': 549,
+    'comma': 250,
+    'minus': 549,
+    'period': 250,
+    'slash': 278,
+    'zero': 500,
+    'one': 500,
+    'two': 500,
+    'three': 500,
+    'four': 500,
+    'five': 500,
+    'six': 500,
+    'seven': 500,
+    'eight': 500,
+    'nine': 500,
+    'colon': 278,
+    'semicolon': 278,
+    'less': 549,
+    'equal': 549,
+    'greater': 549,
+    'question': 444,
+    'congruent': 549,
+    'Alpha': 722,
+    'Beta': 667,
+    'Chi': 722,
+    'Delta': 612,
+    'Epsilon': 611,
+    'Phi': 763,
+    'Gamma': 603,
+    'Eta': 722,
+    'Iota': 333,
+    'theta1': 631,
+    'Kappa': 722,
+    'Lambda': 686,
+    'Mu': 889,
+    'Nu': 722,
+    'Omicron': 722,
+    'Pi': 768,
+    'Theta': 741,
+    'Rho': 556,
+    'Sigma': 592,
+    'Tau': 611,
+    'Upsilon': 690,
+    'sigma1': 439,
+    'Omega': 768,
+    'Xi': 645,
+    'Psi': 795,
+    'Zeta': 611,
+    'bracketleft': 333,
+    'therefore': 863,
+    'bracketright': 333,
+    'perpendicular': 658,
+    'underscore': 500,
+    'radicalex': 500,
+    'alpha': 631,
+    'beta': 549,
+    'chi': 549,
+    'delta': 494,
+    'epsilon': 439,
+    'phi': 521,
+    'gamma': 411,
+    'eta': 603,
+    'iota': 329,
+    'phi1': 603,
+    'kappa': 549,
+    'lambda': 549,
+    'mu': 576,
+    'nu': 521,
+    'omicron': 549,
+    'pi': 549,
+    'theta': 521,
+    'rho': 549,
+    'sigma': 603,
+    'tau': 439,
+    'upsilon': 576,
+    'omega1': 713,
+    'omega': 686,
+    'xi': 493,
+    'psi': 686,
+    'zeta': 494,
+    'braceleft': 480,
+    'bar': 200,
+    'braceright': 480,
+    'similar': 549,
+    'Euro': 750,
+    'Upsilon1': 620,
+    'minute': 247,
+    'lessequal': 549,
+    'fraction': 167,
+    'infinity': 713,
+    'florin': 500,
+    'club': 753,
+    'diamond': 753,
+    'heart': 753,
+    'spade': 753,
+    'arrowboth': 1042,
+    'arrowleft': 987,
+    'arrowup': 603,
+    'arrowright': 987,
+    'arrowdown': 603,
+    'degree': 400,
+    'plusminus': 549,
+    'second': 411,
+    'greaterequal': 549,
+    'multiply': 549,
+    'proportional': 713,
+    'partialdiff': 494,
+    'bullet': 460,
+    'divide': 549,
+    'notequal': 549,
+    'equivalence': 549,
+    'approxequal': 549,
+    'ellipsis': 1000,
+    'arrowvertex': 603,
+    'arrowhorizex': 1000,
+    'carriagereturn': 658,
+    'aleph': 823,
+    'Ifraktur': 686,
+    'Rfraktur': 795,
+    'weierstrass': 987,
+    'circlemultiply': 768,
+    'circleplus': 768,
+    'emptyset': 823,
+    'intersection': 768,
+    'union': 768,
+    'propersuperset': 713,
+    'reflexsuperset': 713,
+    'notsubset': 713,
+    'propersubset': 713,
+    'reflexsubset': 713,
+    'element': 713,
+    'notelement': 713,
+    'angle': 768,
+    'gradient': 713,
+    'registerserif': 790,
+    'copyrightserif': 790,
+    'trademarkserif': 890,
+    'product': 823,
+    'radical': 549,
+    'dotmath': 250,
+    'logicalnot': 713,
+    'logicaland': 603,
+    'logicalor': 603,
+    'arrowdblboth': 1042,
+    'arrowdblleft': 987,
+    'arrowdblup': 603,
+    'arrowdblright': 987,
+    'arrowdbldown': 603,
+    'lozenge': 494,
+    'angleleft': 329,
+    'registersans': 790,
+    'copyrightsans': 790,
+    'trademarksans': 786,
+    'summation': 713,
+    'parenlefttp': 384,
+    'parenleftex': 384,
+    'parenleftbt': 384,
+    'bracketlefttp': 384,
+    'bracketleftex': 384,
+    'bracketleftbt': 384,
+    'bracelefttp': 494,
+    'braceleftmid': 494,
+    'braceleftbt': 494,
+    'braceex': 494,
+    'angleright': 329,
+    'integral': 274,
+    'integraltp': 686,
+    'integralex': 686,
+    'integralbt': 686,
+    'parenrighttp': 384,
+    'parenrightex': 384,
+    'parenrightbt': 384,
+    'bracketrighttp': 384,
+    'bracketrightex': 384,
+    'bracketrightbt': 384,
+    'bracerighttp': 494,
+    'bracerightmid': 494,
+    'bracerightbt': 494,
+    'apple': 790
+  },
+  'Times-Roman': {
+    'space': 250,
+    'exclam': 333,
+    'quotedbl': 408,
+    'numbersign': 500,
+    'dollar': 500,
+    'percent': 833,
+    'ampersand': 778,
+    'quoteright': 333,
+    'parenleft': 333,
+    'parenright': 333,
+    'asterisk': 500,
+    'plus': 564,
+    'comma': 250,
+    'hyphen': 333,
+    'period': 250,
+    'slash': 278,
+    'zero': 500,
+    'one': 500,
+    'two': 500,
+    'three': 500,
+    'four': 500,
+    'five': 500,
+    'six': 500,
+    'seven': 500,
+    'eight': 500,
+    'nine': 500,
+    'colon': 278,
+    'semicolon': 278,
+    'less': 564,
+    'equal': 564,
+    'greater': 564,
+    'question': 444,
+    'at': 921,
+    'A': 722,
+    'B': 667,
+    'C': 667,
+    'D': 722,
+    'E': 611,
+    'F': 556,
+    'G': 722,
+    'H': 722,
+    'I': 333,
+    'J': 389,
+    'K': 722,
+    'L': 611,
+    'M': 889,
+    'N': 722,
+    'O': 722,
+    'P': 556,
+    'Q': 722,
+    'R': 667,
+    'S': 556,
+    'T': 611,
+    'U': 722,
+    'V': 722,
+    'W': 944,
+    'X': 722,
+    'Y': 722,
+    'Z': 611,
+    'bracketleft': 333,
+    'backslash': 278,
+    'bracketright': 333,
+    'asciicircum': 469,
+    'underscore': 500,
+    'quoteleft': 333,
+    'a': 444,
+    'b': 500,
+    'c': 444,
+    'd': 500,
+    'e': 444,
+    'f': 333,
+    'g': 500,
+    'h': 500,
+    'i': 278,
+    'j': 278,
+    'k': 500,
+    'l': 278,
+    'm': 778,
+    'n': 500,
+    'o': 500,
+    'p': 500,
+    'q': 500,
+    'r': 333,
+    's': 389,
+    't': 278,
+    'u': 500,
+    'v': 500,
+    'w': 722,
+    'x': 500,
+    'y': 500,
+    'z': 444,
+    'braceleft': 480,
+    'bar': 200,
+    'braceright': 480,
+    'asciitilde': 541,
+    'exclamdown': 333,
+    'cent': 500,
+    'sterling': 500,
+    'fraction': 167,
+    'yen': 500,
+    'florin': 500,
+    'section': 500,
+    'currency': 500,
+    'quotesingle': 180,
+    'quotedblleft': 444,
+    'guillemotleft': 500,
+    'guilsinglleft': 333,
+    'guilsinglright': 333,
+    'fi': 556,
+    'fl': 556,
+    'endash': 500,
+    'dagger': 500,
+    'daggerdbl': 500,
+    'periodcentered': 250,
+    'paragraph': 453,
+    'bullet': 350,
+    'quotesinglbase': 333,
+    'quotedblbase': 444,
+    'quotedblright': 444,
+    'guillemotright': 500,
+    'ellipsis': 1000,
+    'perthousand': 1000,
+    'questiondown': 444,
+    'grave': 333,
+    'acute': 333,
+    'circumflex': 333,
+    'tilde': 333,
+    'macron': 333,
+    'breve': 333,
+    'dotaccent': 333,
+    'dieresis': 333,
+    'ring': 333,
+    'cedilla': 333,
+    'hungarumlaut': 333,
+    'ogonek': 333,
+    'caron': 333,
+    'emdash': 1000,
+    'AE': 889,
+    'ordfeminine': 276,
+    'Lslash': 611,
+    'Oslash': 722,
+    'OE': 889,
+    'ordmasculine': 310,
+    'ae': 667,
+    'dotlessi': 278,
+    'lslash': 278,
+    'oslash': 500,
+    'oe': 722,
+    'germandbls': 500,
+    'Idieresis': 333,
+    'eacute': 444,
+    'abreve': 444,
+    'uhungarumlaut': 500,
+    'ecaron': 444,
+    'Ydieresis': 722,
+    'divide': 564,
+    'Yacute': 722,
+    'Acircumflex': 722,
+    'aacute': 444,
+    'Ucircumflex': 722,
+    'yacute': 500,
+    'scommaaccent': 389,
+    'ecircumflex': 444,
+    'Uring': 722,
+    'Udieresis': 722,
+    'aogonek': 444,
+    'Uacute': 722,
+    'uogonek': 500,
+    'Edieresis': 611,
+    'Dcroat': 722,
+    'commaaccent': 250,
+    'copyright': 760,
+    'Emacron': 611,
+    'ccaron': 444,
+    'aring': 444,
+    'Ncommaaccent': 722,
+    'lacute': 278,
+    'agrave': 444,
+    'Tcommaaccent': 611,
+    'Cacute': 667,
+    'atilde': 444,
+    'Edotaccent': 611,
+    'scaron': 389,
+    'scedilla': 389,
+    'iacute': 278,
+    'lozenge': 471,
+    'Rcaron': 667,
+    'Gcommaaccent': 722,
+    'ucircumflex': 500,
+    'acircumflex': 444,
+    'Amacron': 722,
+    'rcaron': 333,
+    'ccedilla': 444,
+    'Zdotaccent': 611,
+    'Thorn': 556,
+    'Omacron': 722,
+    'Racute': 667,
+    'Sacute': 556,
+    'dcaron': 588,
+    'Umacron': 722,
+    'uring': 500,
+    'threesuperior': 300,
+    'Ograve': 722,
+    'Agrave': 722,
+    'Abreve': 722,
+    'multiply': 564,
+    'uacute': 500,
+    'Tcaron': 611,
+    'partialdiff': 476,
+    'ydieresis': 500,
+    'Nacute': 722,
+    'icircumflex': 278,
+    'Ecircumflex': 611,
+    'adieresis': 444,
+    'edieresis': 444,
+    'cacute': 444,
+    'nacute': 500,
+    'umacron': 500,
+    'Ncaron': 722,
+    'Iacute': 333,
+    'plusminus': 564,
+    'brokenbar': 200,
+    'registered': 760,
+    'Gbreve': 722,
+    'Idotaccent': 333,
+    'summation': 600,
+    'Egrave': 611,
+    'racute': 333,
+    'omacron': 500,
+    'Zacute': 611,
+    'Zcaron': 611,
+    'greaterequal': 549,
+    'Eth': 722,
+    'Ccedilla': 667,
+    'lcommaaccent': 278,
+    'tcaron': 326,
+    'eogonek': 444,
+    'Uogonek': 722,
+    'Aacute': 722,
+    'Adieresis': 722,
+    'egrave': 444,
+    'zacute': 444,
+    'iogonek': 278,
+    'Oacute': 722,
+    'oacute': 500,
+    'amacron': 444,
+    'sacute': 389,
+    'idieresis': 278,
+    'Ocircumflex': 722,
+    'Ugrave': 722,
+    'Delta': 612,
+    'thorn': 500,
+    'twosuperior': 300,
+    'Odieresis': 722,
+    'mu': 500,
+    'igrave': 278,
+    'ohungarumlaut': 500,
+    'Eogonek': 611,
+    'dcroat': 500,
+    'threequarters': 750,
+    'Scedilla': 556,
+    'lcaron': 344,
+    'Kcommaaccent': 722,
+    'Lacute': 611,
+    'trademark': 980,
+    'edotaccent': 444,
+    'Igrave': 333,
+    'Imacron': 333,
+    'Lcaron': 611,
+    'onehalf': 750,
+    'lessequal': 549,
+    'ocircumflex': 500,
+    'ntilde': 500,
+    'Uhungarumlaut': 722,
+    'Eacute': 611,
+    'emacron': 444,
+    'gbreve': 500,
+    'onequarter': 750,
+    'Scaron': 556,
+    'Scommaaccent': 556,
+    'Ohungarumlaut': 722,
+    'degree': 400,
+    'ograve': 500,
+    'Ccaron': 667,
+    'ugrave': 500,
+    'radical': 453,
+    'Dcaron': 722,
+    'rcommaaccent': 333,
+    'Ntilde': 722,
+    'otilde': 500,
+    'Rcommaaccent': 667,
+    'Lcommaaccent': 611,
+    'Atilde': 722,
+    'Aogonek': 722,
+    'Aring': 722,
+    'Otilde': 722,
+    'zdotaccent': 444,
+    'Ecaron': 611,
+    'Iogonek': 333,
+    'kcommaaccent': 500,
+    'minus': 564,
+    'Icircumflex': 333,
+    'ncaron': 500,
+    'tcommaaccent': 278,
+    'logicalnot': 564,
+    'odieresis': 500,
+    'udieresis': 500,
+    'notequal': 549,
+    'gcommaaccent': 500,
+    'eth': 500,
+    'zcaron': 444,
+    'ncommaaccent': 500,
+    'onesuperior': 300,
+    'imacron': 278,
+    'Euro': 500
+  },
+  'Times-Bold': {
+    'space': 250,
+    'exclam': 333,
+    'quotedbl': 555,
+    'numbersign': 500,
+    'dollar': 500,
+    'percent': 1000,
+    'ampersand': 833,
+    'quoteright': 333,
+    'parenleft': 333,
+    'parenright': 333,
+    'asterisk': 500,
+    'plus': 570,
+    'comma': 250,
+    'hyphen': 333,
+    'period': 250,
+    'slash': 278,
+    'zero': 500,
+    'one': 500,
+    'two': 500,
+    'three': 500,
+    'four': 500,
+    'five': 500,
+    'six': 500,
+    'seven': 500,
+    'eight': 500,
+    'nine': 500,
+    'colon': 333,
+    'semicolon': 333,
+    'less': 570,
+    'equal': 570,
+    'greater': 570,
+    'question': 500,
+    'at': 930,
+    'A': 722,
+    'B': 667,
+    'C': 722,
+    'D': 722,
+    'E': 667,
+    'F': 611,
+    'G': 778,
+    'H': 778,
+    'I': 389,
+    'J': 500,
+    'K': 778,
+    'L': 667,
+    'M': 944,
+    'N': 722,
+    'O': 778,
+    'P': 611,
+    'Q': 778,
+    'R': 722,
+    'S': 556,
+    'T': 667,
+    'U': 722,
+    'V': 722,
+    'W': 1000,
+    'X': 722,
+    'Y': 722,
+    'Z': 667,
+    'bracketleft': 333,
+    'backslash': 278,
+    'bracketright': 333,
+    'asciicircum': 581,
+    'underscore': 500,
+    'quoteleft': 333,
+    'a': 500,
+    'b': 556,
+    'c': 444,
+    'd': 556,
+    'e': 444,
+    'f': 333,
+    'g': 500,
+    'h': 556,
+    'i': 278,
+    'j': 333,
+    'k': 556,
+    'l': 278,
+    'm': 833,
+    'n': 556,
+    'o': 500,
+    'p': 556,
+    'q': 556,
+    'r': 444,
+    's': 389,
+    't': 333,
+    'u': 556,
+    'v': 500,
+    'w': 722,
+    'x': 500,
+    'y': 500,
+    'z': 444,
+    'braceleft': 394,
+    'bar': 220,
+    'braceright': 394,
+    'asciitilde': 520,
+    'exclamdown': 333,
+    'cent': 500,
+    'sterling': 500,
+    'fraction': 167,
+    'yen': 500,
+    'florin': 500,
+    'section': 500,
+    'currency': 500,
+    'quotesingle': 278,
+    'quotedblleft': 500,
+    'guillemotleft': 500,
+    'guilsinglleft': 333,
+    'guilsinglright': 333,
+    'fi': 556,
+    'fl': 556,
+    'endash': 500,
+    'dagger': 500,
+    'daggerdbl': 500,
+    'periodcentered': 250,
+    'paragraph': 540,
+    'bullet': 350,
+    'quotesinglbase': 333,
+    'quotedblbase': 500,
+    'quotedblright': 500,
+    'guillemotright': 500,
+    'ellipsis': 1000,
+    'perthousand': 1000,
+    'questiondown': 500,
+    'grave': 333,
+    'acute': 333,
+    'circumflex': 333,
+    'tilde': 333,
+    'macron': 333,
+    'breve': 333,
+    'dotaccent': 333,
+    'dieresis': 333,
+    'ring': 333,
+    'cedilla': 333,
+    'hungarumlaut': 333,
+    'ogonek': 333,
+    'caron': 333,
+    'emdash': 1000,
+    'AE': 1000,
+    'ordfeminine': 300,
+    'Lslash': 667,
+    'Oslash': 778,
+    'OE': 1000,
+    'ordmasculine': 330,
+    'ae': 722,
+    'dotlessi': 278,
+    'lslash': 278,
+    'oslash': 500,
+    'oe': 722,
+    'germandbls': 556,
+    'Idieresis': 389,
+    'eacute': 444,
+    'abreve': 500,
+    'uhungarumlaut': 556,
+    'ecaron': 444,
+    'Ydieresis': 722,
+    'divide': 570,
+    'Yacute': 722,
+    'Acircumflex': 722,
+    'aacute': 500,
+    'Ucircumflex': 722,
+    'yacute': 500,
+    'scommaaccent': 389,
+    'ecircumflex': 444,
+    'Uring': 722,
+    'Udieresis': 722,
+    'aogonek': 500,
+    'Uacute': 722,
+    'uogonek': 556,
+    'Edieresis': 667,
+    'Dcroat': 722,
+    'commaaccent': 250,
+    'copyright': 747,
+    'Emacron': 667,
+    'ccaron': 444,
+    'aring': 500,
+    'Ncommaaccent': 722,
+    'lacute': 278,
+    'agrave': 500,
+    'Tcommaaccent': 667,
+    'Cacute': 722,
+    'atilde': 500,
+    'Edotaccent': 667,
+    'scaron': 389,
+    'scedilla': 389,
+    'iacute': 278,
+    'lozenge': 494,
+    'Rcaron': 722,
+    'Gcommaaccent': 778,
+    'ucircumflex': 556,
+    'acircumflex': 500,
+    'Amacron': 722,
+    'rcaron': 444,
+    'ccedilla': 444,
+    'Zdotaccent': 667,
+    'Thorn': 611,
+    'Omacron': 778,
+    'Racute': 722,
+    'Sacute': 556,
+    'dcaron': 672,
+    'Umacron': 722,
+    'uring': 556,
+    'threesuperior': 300,
+    'Ograve': 778,
+    'Agrave': 722,
+    'Abreve': 722,
+    'multiply': 570,
+    'uacute': 556,
+    'Tcaron': 667,
+    'partialdiff': 494,
+    'ydieresis': 500,
+    'Nacute': 722,
+    'icircumflex': 278,
+    'Ecircumflex': 667,
+    'adieresis': 500,
+    'edieresis': 444,
+    'cacute': 444,
+    'nacute': 556,
+    'umacron': 556,
+    'Ncaron': 722,
+    'Iacute': 389,
+    'plusminus': 570,
+    'brokenbar': 220,
+    'registered': 747,
+    'Gbreve': 778,
+    'Idotaccent': 389,
+    'summation': 600,
+    'Egrave': 667,
+    'racute': 444,
+    'omacron': 500,
+    'Zacute': 667,
+    'Zcaron': 667,
+    'greaterequal': 549,
+    'Eth': 722,
+    'Ccedilla': 722,
+    'lcommaaccent': 278,
+    'tcaron': 416,
+    'eogonek': 444,
+    'Uogonek': 722,
+    'Aacute': 722,
+    'Adieresis': 722,
+    'egrave': 444,
+    'zacute': 444,
+    'iogonek': 278,
+    'Oacute': 778,
+    'oacute': 500,
+    'amacron': 500,
+    'sacute': 389,
+    'idieresis': 278,
+    'Ocircumflex': 778,
+    'Ugrave': 722,
+    'Delta': 612,
+    'thorn': 556,
+    'twosuperior': 300,
+    'Odieresis': 778,
+    'mu': 556,
+    'igrave': 278,
+    'ohungarumlaut': 500,
+    'Eogonek': 667,
+    'dcroat': 556,
+    'threequarters': 750,
+    'Scedilla': 556,
+    'lcaron': 394,
+    'Kcommaaccent': 778,
+    'Lacute': 667,
+    'trademark': 1000,
+    'edotaccent': 444,
+    'Igrave': 389,
+    'Imacron': 389,
+    'Lcaron': 667,
+    'onehalf': 750,
+    'lessequal': 549,
+    'ocircumflex': 500,
+    'ntilde': 556,
+    'Uhungarumlaut': 722,
+    'Eacute': 667,
+    'emacron': 444,
+    'gbreve': 500,
+    'onequarter': 750,
+    'Scaron': 556,
+    'Scommaaccent': 556,
+    'Ohungarumlaut': 778,
+    'degree': 400,
+    'ograve': 500,
+    'Ccaron': 722,
+    'ugrave': 556,
+    'radical': 549,
+    'Dcaron': 722,
+    'rcommaaccent': 444,
+    'Ntilde': 722,
+    'otilde': 500,
+    'Rcommaaccent': 722,
+    'Lcommaaccent': 667,
+    'Atilde': 722,
+    'Aogonek': 722,
+    'Aring': 722,
+    'Otilde': 778,
+    'zdotaccent': 444,
+    'Ecaron': 667,
+    'Iogonek': 389,
+    'kcommaaccent': 556,
+    'minus': 570,
+    'Icircumflex': 389,
+    'ncaron': 556,
+    'tcommaaccent': 333,
+    'logicalnot': 570,
+    'odieresis': 500,
+    'udieresis': 556,
+    'notequal': 549,
+    'gcommaaccent': 500,
+    'eth': 500,
+    'zcaron': 444,
+    'ncommaaccent': 556,
+    'onesuperior': 300,
+    'imacron': 278,
+    'Euro': 500
+  },
+  'Times-BoldItalic': {
+    'space': 250,
+    'exclam': 389,
+    'quotedbl': 555,
+    'numbersign': 500,
+    'dollar': 500,
+    'percent': 833,
+    'ampersand': 778,
+    'quoteright': 333,
+    'parenleft': 333,
+    'parenright': 333,
+    'asterisk': 500,
+    'plus': 570,
+    'comma': 250,
+    'hyphen': 333,
+    'period': 250,
+    'slash': 278,
+    'zero': 500,
+    'one': 500,
+    'two': 500,
+    'three': 500,
+    'four': 500,
+    'five': 500,
+    'six': 500,
+    'seven': 500,
+    'eight': 500,
+    'nine': 500,
+    'colon': 333,
+    'semicolon': 333,
+    'less': 570,
+    'equal': 570,
+    'greater': 570,
+    'question': 500,
+    'at': 832,
+    'A': 667,
+    'B': 667,
+    'C': 667,
+    'D': 722,
+    'E': 667,
+    'F': 667,
+    'G': 722,
+    'H': 778,
+    'I': 389,
+    'J': 500,
+    'K': 667,
+    'L': 611,
+    'M': 889,
+    'N': 722,
+    'O': 722,
+    'P': 611,
+    'Q': 722,
+    'R': 667,
+    'S': 556,
+    'T': 611,
+    'U': 722,
+    'V': 667,
+    'W': 889,
+    'X': 667,
+    'Y': 611,
+    'Z': 611,
+    'bracketleft': 333,
+    'backslash': 278,
+    'bracketright': 333,
+    'asciicircum': 570,
+    'underscore': 500,
+    'quoteleft': 333,
+    'a': 500,
+    'b': 500,
+    'c': 444,
+    'd': 500,
+    'e': 444,
+    'f': 333,
+    'g': 500,
+    'h': 556,
+    'i': 278,
+    'j': 278,
+    'k': 500,
+    'l': 278,
+    'm': 778,
+    'n': 556,
+    'o': 500,
+    'p': 500,
+    'q': 500,
+    'r': 389,
+    's': 389,
+    't': 278,
+    'u': 556,
+    'v': 444,
+    'w': 667,
+    'x': 500,
+    'y': 444,
+    'z': 389,
+    'braceleft': 348,
+    'bar': 220,
+    'braceright': 348,
+    'asciitilde': 570,
+    'exclamdown': 389,
+    'cent': 500,
+    'sterling': 500,
+    'fraction': 167,
+    'yen': 500,
+    'florin': 500,
+    'section': 500,
+    'currency': 500,
+    'quotesingle': 278,
+    'quotedblleft': 500,
+    'guillemotleft': 500,
+    'guilsinglleft': 333,
+    'guilsinglright': 333,
+    'fi': 556,
+    'fl': 556,
+    'endash': 500,
+    'dagger': 500,
+    'daggerdbl': 500,
+    'periodcentered': 250,
+    'paragraph': 500,
+    'bullet': 350,
+    'quotesinglbase': 333,
+    'quotedblbase': 500,
+    'quotedblright': 500,
+    'guillemotright': 500,
+    'ellipsis': 1000,
+    'perthousand': 1000,
+    'questiondown': 500,
+    'grave': 333,
+    'acute': 333,
+    'circumflex': 333,
+    'tilde': 333,
+    'macron': 333,
+    'breve': 333,
+    'dotaccent': 333,
+    'dieresis': 333,
+    'ring': 333,
+    'cedilla': 333,
+    'hungarumlaut': 333,
+    'ogonek': 333,
+    'caron': 333,
+    'emdash': 1000,
+    'AE': 944,
+    'ordfeminine': 266,
+    'Lslash': 611,
+    'Oslash': 722,
+    'OE': 944,
+    'ordmasculine': 300,
+    'ae': 722,
+    'dotlessi': 278,
+    'lslash': 278,
+    'oslash': 500,
+    'oe': 722,
+    'germandbls': 500,
+    'Idieresis': 389,
+    'eacute': 444,
+    'abreve': 500,
+    'uhungarumlaut': 556,
+    'ecaron': 444,
+    'Ydieresis': 611,
+    'divide': 570,
+    'Yacute': 611,
+    'Acircumflex': 667,
+    'aacute': 500,
+    'Ucircumflex': 722,
+    'yacute': 444,
+    'scommaaccent': 389,
+    'ecircumflex': 444,
+    'Uring': 722,
+    'Udieresis': 722,
+    'aogonek': 500,
+    'Uacute': 722,
+    'uogonek': 556,
+    'Edieresis': 667,
+    'Dcroat': 722,
+    'commaaccent': 250,
+    'copyright': 747,
+    'Emacron': 667,
+    'ccaron': 444,
+    'aring': 500,
+    'Ncommaaccent': 722,
+    'lacute': 278,
+    'agrave': 500,
+    'Tcommaaccent': 611,
+    'Cacute': 667,
+    'atilde': 500,
+    'Edotaccent': 667,
+    'scaron': 389,
+    'scedilla': 389,
+    'iacute': 278,
+    'lozenge': 494,
+    'Rcaron': 667,
+    'Gcommaaccent': 722,
+    'ucircumflex': 556,
+    'acircumflex': 500,
+    'Amacron': 667,
+    'rcaron': 389,
+    'ccedilla': 444,
+    'Zdotaccent': 611,
+    'Thorn': 611,
+    'Omacron': 722,
+    'Racute': 667,
+    'Sacute': 556,
+    'dcaron': 608,
+    'Umacron': 722,
+    'uring': 556,
+    'threesuperior': 300,
+    'Ograve': 722,
+    'Agrave': 667,
+    'Abreve': 667,
+    'multiply': 570,
+    'uacute': 556,
+    'Tcaron': 611,
+    'partialdiff': 494,
+    'ydieresis': 444,
+    'Nacute': 722,
+    'icircumflex': 278,
+    'Ecircumflex': 667,
+    'adieresis': 500,
+    'edieresis': 444,
+    'cacute': 444,
+    'nacute': 556,
+    'umacron': 556,
+    'Ncaron': 722,
+    'Iacute': 389,
+    'plusminus': 570,
+    'brokenbar': 220,
+    'registered': 747,
+    'Gbreve': 722,
+    'Idotaccent': 389,
+    'summation': 600,
+    'Egrave': 667,
+    'racute': 389,
+    'omacron': 500,
+    'Zacute': 611,
+    'Zcaron': 611,
+    'greaterequal': 549,
+    'Eth': 722,
+    'Ccedilla': 667,
+    'lcommaaccent': 278,
+    'tcaron': 366,
+    'eogonek': 444,
+    'Uogonek': 722,
+    'Aacute': 667,
+    'Adieresis': 667,
+    'egrave': 444,
+    'zacute': 389,
+    'iogonek': 278,
+    'Oacute': 722,
+    'oacute': 500,
+    'amacron': 500,
+    'sacute': 389,
+    'idieresis': 278,
+    'Ocircumflex': 722,
+    'Ugrave': 722,
+    'Delta': 612,
+    'thorn': 500,
+    'twosuperior': 300,
+    'Odieresis': 722,
+    'mu': 576,
+    'igrave': 278,
+    'ohungarumlaut': 500,
+    'Eogonek': 667,
+    'dcroat': 500,
+    'threequarters': 750,
+    'Scedilla': 556,
+    'lcaron': 382,
+    'Kcommaaccent': 667,
+    'Lacute': 611,
+    'trademark': 1000,
+    'edotaccent': 444,
+    'Igrave': 389,
+    'Imacron': 389,
+    'Lcaron': 611,
+    'onehalf': 750,
+    'lessequal': 549,
+    'ocircumflex': 500,
+    'ntilde': 556,
+    'Uhungarumlaut': 722,
+    'Eacute': 667,
+    'emacron': 444,
+    'gbreve': 500,
+    'onequarter': 750,
+    'Scaron': 556,
+    'Scommaaccent': 556,
+    'Ohungarumlaut': 722,
+    'degree': 400,
+    'ograve': 500,
+    'Ccaron': 667,
+    'ugrave': 556,
+    'radical': 549,
+    'Dcaron': 722,
+    'rcommaaccent': 389,
+    'Ntilde': 722,
+    'otilde': 500,
+    'Rcommaaccent': 667,
+    'Lcommaaccent': 611,
+    'Atilde': 667,
+    'Aogonek': 667,
+    'Aring': 667,
+    'Otilde': 722,
+    'zdotaccent': 389,
+    'Ecaron': 667,
+    'Iogonek': 389,
+    'kcommaaccent': 500,
+    'minus': 606,
+    'Icircumflex': 389,
+    'ncaron': 556,
+    'tcommaaccent': 278,
+    'logicalnot': 606,
+    'odieresis': 500,
+    'udieresis': 556,
+    'notequal': 549,
+    'gcommaaccent': 500,
+    'eth': 500,
+    'zcaron': 389,
+    'ncommaaccent': 556,
+    'onesuperior': 300,
+    'imacron': 278,
+    'Euro': 500
+  },
+  'Times-Italic': {
+    'space': 250,
+    'exclam': 333,
+    'quotedbl': 420,
+    'numbersign': 500,
+    'dollar': 500,
+    'percent': 833,
+    'ampersand': 778,
+    'quoteright': 333,
+    'parenleft': 333,
+    'parenright': 333,
+    'asterisk': 500,
+    'plus': 675,
+    'comma': 250,
+    'hyphen': 333,
+    'period': 250,
+    'slash': 278,
+    'zero': 500,
+    'one': 500,
+    'two': 500,
+    'three': 500,
+    'four': 500,
+    'five': 500,
+    'six': 500,
+    'seven': 500,
+    'eight': 500,
+    'nine': 500,
+    'colon': 333,
+    'semicolon': 333,
+    'less': 675,
+    'equal': 675,
+    'greater': 675,
+    'question': 500,
+    'at': 920,
+    'A': 611,
+    'B': 611,
+    'C': 667,
+    'D': 722,
+    'E': 611,
+    'F': 611,
+    'G': 722,
+    'H': 722,
+    'I': 333,
+    'J': 444,
+    'K': 667,
+    'L': 556,
+    'M': 833,
+    'N': 667,
+    'O': 722,
+    'P': 611,
+    'Q': 722,
+    'R': 611,
+    'S': 500,
+    'T': 556,
+    'U': 722,
+    'V': 611,
+    'W': 833,
+    'X': 611,
+    'Y': 556,
+    'Z': 556,
+    'bracketleft': 389,
+    'backslash': 278,
+    'bracketright': 389,
+    'asciicircum': 422,
+    'underscore': 500,
+    'quoteleft': 333,
+    'a': 500,
+    'b': 500,
+    'c': 444,
+    'd': 500,
+    'e': 444,
+    'f': 278,
+    'g': 500,
+    'h': 500,
+    'i': 278,
+    'j': 278,
+    'k': 444,
+    'l': 278,
+    'm': 722,
+    'n': 500,
+    'o': 500,
+    'p': 500,
+    'q': 500,
+    'r': 389,
+    's': 389,
+    't': 278,
+    'u': 500,
+    'v': 444,
+    'w': 667,
+    'x': 444,
+    'y': 444,
+    'z': 389,
+    'braceleft': 400,
+    'bar': 275,
+    'braceright': 400,
+    'asciitilde': 541,
+    'exclamdown': 389,
+    'cent': 500,
+    'sterling': 500,
+    'fraction': 167,
+    'yen': 500,
+    'florin': 500,
+    'section': 500,
+    'currency': 500,
+    'quotesingle': 214,
+    'quotedblleft': 556,
+    'guillemotleft': 500,
+    'guilsinglleft': 333,
+    'guilsinglright': 333,
+    'fi': 500,
+    'fl': 500,
+    'endash': 500,
+    'dagger': 500,
+    'daggerdbl': 500,
+    'periodcentered': 250,
+    'paragraph': 523,
+    'bullet': 350,
+    'quotesinglbase': 333,
+    'quotedblbase': 556,
+    'quotedblright': 556,
+    'guillemotright': 500,
+    'ellipsis': 889,
+    'perthousand': 1000,
+    'questiondown': 500,
+    'grave': 333,
+    'acute': 333,
+    'circumflex': 333,
+    'tilde': 333,
+    'macron': 333,
+    'breve': 333,
+    'dotaccent': 333,
+    'dieresis': 333,
+    'ring': 333,
+    'cedilla': 333,
+    'hungarumlaut': 333,
+    'ogonek': 333,
+    'caron': 333,
+    'emdash': 889,
+    'AE': 889,
+    'ordfeminine': 276,
+    'Lslash': 556,
+    'Oslash': 722,
+    'OE': 944,
+    'ordmasculine': 310,
+    'ae': 667,
+    'dotlessi': 278,
+    'lslash': 278,
+    'oslash': 500,
+    'oe': 667,
+    'germandbls': 500,
+    'Idieresis': 333,
+    'eacute': 444,
+    'abreve': 500,
+    'uhungarumlaut': 500,
+    'ecaron': 444,
+    'Ydieresis': 556,
+    'divide': 675,
+    'Yacute': 556,
+    'Acircumflex': 611,
+    'aacute': 500,
+    'Ucircumflex': 722,
+    'yacute': 444,
+    'scommaaccent': 389,
+    'ecircumflex': 444,
+    'Uring': 722,
+    'Udieresis': 722,
+    'aogonek': 500,
+    'Uacute': 722,
+    'uogonek': 500,
+    'Edieresis': 611,
+    'Dcroat': 722,
+    'commaaccent': 250,
+    'copyright': 760,
+    'Emacron': 611,
+    'ccaron': 444,
+    'aring': 500,
+    'Ncommaaccent': 667,
+    'lacute': 278,
+    'agrave': 500,
+    'Tcommaaccent': 556,
+    'Cacute': 667,
+    'atilde': 500,
+    'Edotaccent': 611,
+    'scaron': 389,
+    'scedilla': 389,
+    'iacute': 278,
+    'lozenge': 471,
+    'Rcaron': 611,
+    'Gcommaaccent': 722,
+    'ucircumflex': 500,
+    'acircumflex': 500,
+    'Amacron': 611,
+    'rcaron': 389,
+    'ccedilla': 444,
+    'Zdotaccent': 556,
+    'Thorn': 611,
+    'Omacron': 722,
+    'Racute': 611,
+    'Sacute': 500,
+    'dcaron': 544,
+    'Umacron': 722,
+    'uring': 500,
+    'threesuperior': 300,
+    'Ograve': 722,
+    'Agrave': 611,
+    'Abreve': 611,
+    'multiply': 675,
+    'uacute': 500,
+    'Tcaron': 556,
+    'partialdiff': 476,
+    'ydieresis': 444,
+    'Nacute': 667,
+    'icircumflex': 278,
+    'Ecircumflex': 611,
+    'adieresis': 500,
+    'edieresis': 444,
+    'cacute': 444,
+    'nacute': 500,
+    'umacron': 500,
+    'Ncaron': 667,
+    'Iacute': 333,
+    'plusminus': 675,
+    'brokenbar': 275,
+    'registered': 760,
+    'Gbreve': 722,
+    'Idotaccent': 333,
+    'summation': 600,
+    'Egrave': 611,
+    'racute': 389,
+    'omacron': 500,
+    'Zacute': 556,
+    'Zcaron': 556,
+    'greaterequal': 549,
+    'Eth': 722,
+    'Ccedilla': 667,
+    'lcommaaccent': 278,
+    'tcaron': 300,
+    'eogonek': 444,
+    'Uogonek': 722,
+    'Aacute': 611,
+    'Adieresis': 611,
+    'egrave': 444,
+    'zacute': 389,
+    'iogonek': 278,
+    'Oacute': 722,
+    'oacute': 500,
+    'amacron': 500,
+    'sacute': 389,
+    'idieresis': 278,
+    'Ocircumflex': 722,
+    'Ugrave': 722,
+    'Delta': 612,
+    'thorn': 500,
+    'twosuperior': 300,
+    'Odieresis': 722,
+    'mu': 500,
+    'igrave': 278,
+    'ohungarumlaut': 500,
+    'Eogonek': 611,
+    'dcroat': 500,
+    'threequarters': 750,
+    'Scedilla': 500,
+    'lcaron': 300,
+    'Kcommaaccent': 667,
+    'Lacute': 556,
+    'trademark': 980,
+    'edotaccent': 444,
+    'Igrave': 333,
+    'Imacron': 333,
+    'Lcaron': 611,
+    'onehalf': 750,
+    'lessequal': 549,
+    'ocircumflex': 500,
+    'ntilde': 500,
+    'Uhungarumlaut': 722,
+    'Eacute': 611,
+    'emacron': 444,
+    'gbreve': 500,
+    'onequarter': 750,
+    'Scaron': 500,
+    'Scommaaccent': 500,
+    'Ohungarumlaut': 722,
+    'degree': 400,
+    'ograve': 500,
+    'Ccaron': 667,
+    'ugrave': 500,
+    'radical': 453,
+    'Dcaron': 722,
+    'rcommaaccent': 389,
+    'Ntilde': 667,
+    'otilde': 500,
+    'Rcommaaccent': 611,
+    'Lcommaaccent': 556,
+    'Atilde': 611,
+    'Aogonek': 611,
+    'Aring': 611,
+    'Otilde': 722,
+    'zdotaccent': 389,
+    'Ecaron': 611,
+    'Iogonek': 333,
+    'kcommaaccent': 444,
+    'minus': 675,
+    'Icircumflex': 333,
+    'ncaron': 500,
+    'tcommaaccent': 278,
+    'logicalnot': 675,
+    'odieresis': 500,
+    'udieresis': 500,
+    'notequal': 549,
+    'gcommaaccent': 500,
+    'eth': 500,
+    'zcaron': 389,
+    'ncommaaccent': 500,
+    'onesuperior': 300,
+    'imacron': 278,
+    'Euro': 500
+  },
+  'ZapfDingbats': {
+    'space': 278,
+    'a1': 974,
+    'a2': 961,
+    'a202': 974,
+    'a3': 980,
+    'a4': 719,
+    'a5': 789,
+    'a119': 790,
+    'a118': 791,
+    'a117': 690,
+    'a11': 960,
+    'a12': 939,
+    'a13': 549,
+    'a14': 855,
+    'a15': 911,
+    'a16': 933,
+    'a105': 911,
+    'a17': 945,
+    'a18': 974,
+    'a19': 755,
+    'a20': 846,
+    'a21': 762,
+    'a22': 761,
+    'a23': 571,
+    'a24': 677,
+    'a25': 763,
+    'a26': 760,
+    'a27': 759,
+    'a28': 754,
+    'a6': 494,
+    'a7': 552,
+    'a8': 537,
+    'a9': 577,
+    'a10': 692,
+    'a29': 786,
+    'a30': 788,
+    'a31': 788,
+    'a32': 790,
+    'a33': 793,
+    'a34': 794,
+    'a35': 816,
+    'a36': 823,
+    'a37': 789,
+    'a38': 841,
+    'a39': 823,
+    'a40': 833,
+    'a41': 816,
+    'a42': 831,
+    'a43': 923,
+    'a44': 744,
+    'a45': 723,
+    'a46': 749,
+    'a47': 790,
+    'a48': 792,
+    'a49': 695,
+    'a50': 776,
+    'a51': 768,
+    'a52': 792,
+    'a53': 759,
+    'a54': 707,
+    'a55': 708,
+    'a56': 682,
+    'a57': 701,
+    'a58': 826,
+    'a59': 815,
+    'a60': 789,
+    'a61': 789,
+    'a62': 707,
+    'a63': 687,
+    'a64': 696,
+    'a65': 689,
+    'a66': 786,
+    'a67': 787,
+    'a68': 713,
+    'a69': 791,
+    'a70': 785,
+    'a71': 791,
+    'a72': 873,
+    'a73': 761,
+    'a74': 762,
+    'a203': 762,
+    'a75': 759,
+    'a204': 759,
+    'a76': 892,
+    'a77': 892,
+    'a78': 788,
+    'a79': 784,
+    'a81': 438,
+    'a82': 138,
+    'a83': 277,
+    'a84': 415,
+    'a97': 392,
+    'a98': 392,
+    'a99': 668,
+    'a100': 668,
+    'a89': 390,
+    'a90': 390,
+    'a93': 317,
+    'a94': 317,
+    'a91': 276,
+    'a92': 276,
+    'a205': 509,
+    'a85': 509,
+    'a206': 410,
+    'a86': 410,
+    'a87': 234,
+    'a88': 234,
+    'a95': 334,
+    'a96': 334,
+    'a101': 732,
+    'a102': 544,
+    'a103': 544,
+    'a104': 910,
+    'a106': 667,
+    'a107': 760,
+    'a108': 760,
+    'a112': 776,
+    'a111': 595,
+    'a110': 694,
+    'a109': 626,
+    'a120': 788,
+    'a121': 788,
+    'a122': 788,
+    'a123': 788,
+    'a124': 788,
+    'a125': 788,
+    'a126': 788,
+    'a127': 788,
+    'a128': 788,
+    'a129': 788,
+    'a130': 788,
+    'a131': 788,
+    'a132': 788,
+    'a133': 788,
+    'a134': 788,
+    'a135': 788,
+    'a136': 788,
+    'a137': 788,
+    'a138': 788,
+    'a139': 788,
+    'a140': 788,
+    'a141': 788,
+    'a142': 788,
+    'a143': 788,
+    'a144': 788,
+    'a145': 788,
+    'a146': 788,
+    'a147': 788,
+    'a148': 788,
+    'a149': 788,
+    'a150': 788,
+    'a151': 788,
+    'a152': 788,
+    'a153': 788,
+    'a154': 788,
+    'a155': 788,
+    'a156': 788,
+    'a157': 788,
+    'a158': 788,
+    'a159': 788,
+    'a160': 894,
+    'a161': 838,
+    'a163': 1016,
+    'a164': 458,
+    'a196': 748,
+    'a165': 924,
+    'a192': 748,
+    'a166': 918,
+    'a167': 927,
+    'a168': 928,
+    'a169': 928,
+    'a170': 834,
+    'a171': 873,
+    'a172': 828,
+    'a173': 924,
+    'a162': 924,
+    'a174': 917,
+    'a175': 930,
+    'a176': 931,
+    'a177': 463,
+    'a178': 883,
+    'a179': 836,
+    'a193': 836,
+    'a180': 867,
+    'a199': 867,
+    'a181': 696,
+    'a200': 696,
+    'a182': 874,
+    'a201': 874,
+    'a183': 760,
+    'a184': 946,
+    'a197': 771,
+    'a185': 865,
+    'a194': 771,
+    'a198': 888,
+    'a186': 967,
+    'a195': 888,
+    'a187': 831,
+    'a188': 873,
+    'a189': 927,
+    'a190': 970,
+    'a191': 918
+  }
+};
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var EOF = {};
+
+function isEOF(v) {
+  return v == EOF;
+}
+
+var Parser = (function ParserClosure() {
+  function Parser(lexer, allowStreams, xref) {
+    this.lexer = lexer;
+    this.allowStreams = allowStreams;
+    this.xref = xref;
+    this.inlineImg = 0;
+    this.refill();
+  }
+
+  Parser.prototype = {
+    refill: function Parser_refill() {
+      this.buf1 = this.lexer.getObj();
+      this.buf2 = this.lexer.getObj();
+    },
+    shift: function Parser_shift() {
+      if (isCmd(this.buf2, 'ID')) {
+        this.buf1 = this.buf2;
+        this.buf2 = null;
+        // skip byte after ID
+        this.lexer.skip();
+      } else {
+        this.buf1 = this.buf2;
+        this.buf2 = this.lexer.getObj();
+      }
+    },
+    getObj: function Parser_getObj(cipherTransform) {
+      if (isCmd(this.buf1, 'BI')) { // inline image
+        this.shift();
+        return this.makeInlineImage(cipherTransform);
+      }
+      if (isCmd(this.buf1, '[')) { // array
+        this.shift();
+        var array = [];
+        while (!isCmd(this.buf1, ']') && !isEOF(this.buf1))
+          array.push(this.getObj());
+        if (isEOF(this.buf1))
+          error('End of file inside array');
+        this.shift();
+        return array;
+      }
+      if (isCmd(this.buf1, '<<')) { // dictionary or stream
+        this.shift();
+        var dict = new Dict(this.xref);
+        while (!isCmd(this.buf1, '>>') && !isEOF(this.buf1)) {
+          if (!isName(this.buf1))
+            error('Dictionary key must be a name object');
+
+          var key = this.buf1.name;
+          this.shift();
+          if (isEOF(this.buf1))
+            break;
+          dict.set(key, this.getObj(cipherTransform));
+        }
+        if (isEOF(this.buf1))
+          error('End of file inside dictionary');
+
+        // stream objects are not allowed inside content streams or
+        // object streams
+        if (isCmd(this.buf2, 'stream')) {
+          return this.allowStreams ?
+            this.makeStream(dict, cipherTransform) : dict;
+        }
+        this.shift();
+        return dict;
+      }
+      if (isInt(this.buf1)) { // indirect reference or integer
+        var num = this.buf1;
+        this.shift();
+        if (isInt(this.buf1) && isCmd(this.buf2, 'R')) {
+          var ref = new Ref(num, this.buf1);
+          this.shift();
+          this.shift();
+          return ref;
+        }
+        return num;
+      }
+      if (isString(this.buf1)) { // string
+        var str = this.buf1;
+        this.shift();
+        if (cipherTransform)
+          str = cipherTransform.decryptString(str);
+        return str;
+      }
+
+      // simple object
+      var obj = this.buf1;
+      this.shift();
+      return obj;
+    },
+    makeInlineImage: function Parser_makeInlineImage(cipherTransform) {
+      var lexer = this.lexer;
+      var stream = lexer.stream;
+
+      // parse dictionary
+      var dict = new Dict();
+      while (!isCmd(this.buf1, 'ID') && !isEOF(this.buf1)) {
+        if (!isName(this.buf1))
+          error('Dictionary key must be a name object');
+
+        var key = this.buf1.name;
+        this.shift();
+        if (isEOF(this.buf1))
+          break;
+        dict.set(key, this.getObj(cipherTransform));
+      }
+
+      // parse image stream
+      var startPos = stream.pos;
+
+      // searching for the /EI\s/
+      var state = 0, ch;
+      while (state != 4 && (ch = stream.getByte()) != null) {
+        switch (ch) {
+          case 0x20:
+          case 0x0D:
+          case 0x0A:
+            state = state === 3 ? 4 : 0;
+            break;
+          case 0x45:
+            state = 2;
+            break;
+          case 0x49:
+            state = state === 2 ? 3 : 0;
+            break;
+          default:
+            state = 0;
+            break;
+        }
+      }
+
+      // TODO improve the small images performance to remove the limit
+      var inlineImgLimit = 500;
+      if (++this.inlineImg >= inlineImgLimit) {
+        if (this.inlineImg === inlineImgLimit)
+          warn('Too many inline images');
+        this.shift();
+        return null;
+      }
+
+      var length = (stream.pos - 4) - startPos;
+      var imageStream = stream.makeSubStream(startPos, length, dict);
+      if (cipherTransform)
+        imageStream = cipherTransform.createStream(imageStream);
+      imageStream = this.filter(imageStream, dict, length);
+      imageStream.parameters = dict;
+
+      this.buf2 = Cmd.get('EI');
+      this.shift();
+
+      return imageStream;
+    },
+    fetchIfRef: function Parser_fetchIfRef(obj) {
+      // not relying on the xref.fetchIfRef -- xref might not be set
+      return isRef(obj) ? this.xref.fetch(obj) : obj;
+    },
+    makeStream: function Parser_makeStream(dict, cipherTransform) {
+      var lexer = this.lexer;
+      var stream = lexer.stream;
+
+      // get stream start position
+      lexer.skipToNextLine();
+      var pos = stream.pos;
+
+      // get length
+      var length = this.fetchIfRef(dict.get('Length'));
+      if (!isInt(length))
+        error('Bad ' + length + ' attribute in stream');
+
+      // skip over the stream data
+      stream.pos = pos + length;
+      this.shift(); // '>>'
+      this.shift(); // 'stream'
+      if (!isCmd(this.buf1, 'endstream'))
+        error('Missing endstream');
+      this.shift();
+
+      stream = stream.makeSubStream(pos, length, dict);
+      if (cipherTransform)
+        stream = cipherTransform.createStream(stream);
+      stream = this.filter(stream, dict, length);
+      stream.parameters = dict;
+      return stream;
+    },
+    filter: function Parser_filter(stream, dict, length) {
+      var filter = this.fetchIfRef(dict.get('Filter', 'F'));
+      var params = this.fetchIfRef(dict.get('DecodeParms', 'DP'));
+      if (isName(filter))
+        return this.makeFilter(stream, filter.name, length, params);
+      if (isArray(filter)) {
+        var filterArray = filter;
+        var paramsArray = params;
+        for (var i = 0, ii = filterArray.length; i < ii; ++i) {
+          filter = filterArray[i];
+          if (!isName(filter))
+            error('Bad filter name: ' + filter);
+
+          params = null;
+          if (isArray(paramsArray) && (i in paramsArray))
+            params = paramsArray[i];
+          stream = this.makeFilter(stream, filter.name, length, params);
+          // after the first stream the length variable is invalid
+          length = null;
+        }
+      }
+      return stream;
+    },
+    makeFilter: function Parser_makeFilter(stream, name, length, params) {
+      if (name == 'FlateDecode' || name == 'Fl') {
+        if (params) {
+          return new PredictorStream(new FlateStream(stream), params);
+        }
+        return new FlateStream(stream);
+      }
+      if (name == 'LZWDecode' || name == 'LZW') {
+        var earlyChange = 1;
+        if (params) {
+          if (params.has('EarlyChange'))
+            earlyChange = params.get('EarlyChange');
+          return new PredictorStream(
+            new LZWStream(stream, earlyChange), params);
+        }
+        return new LZWStream(stream, earlyChange);
+      }
+      if (name == 'DCTDecode' || name == 'DCT') {
+        var bytes = stream.getBytes(length);
+        return new JpegStream(bytes, stream.dict, this.xref);
+      }
+      if (name == 'JPXDecode' || name == 'JPX') {
+        var bytes = stream.getBytes(length);
+        return new JpxStream(bytes, stream.dict);
+      }
+      if (name == 'ASCII85Decode' || name == 'A85') {
+        return new Ascii85Stream(stream);
+      }
+      if (name == 'ASCIIHexDecode' || name == 'AHx') {
+        return new AsciiHexStream(stream);
+      }
+      if (name == 'CCITTFaxDecode' || name == 'CCF') {
+        return new CCITTFaxStream(stream, params);
+      }
+      if (name == 'RunLengthDecode' || name == 'RL') {
+        return new RunLengthStream(stream);
+      }
+      if (name == 'JBIG2Decode') {
+        error('JBIG2 image format is not currently supprted.');
+      }
+      warn('filter "' + name + '" not supported yet');
+      return stream;
+    }
+  };
+
+  return Parser;
+})();
+
+var Lexer = (function LexerClosure() {
+  function Lexer(stream) {
+    this.stream = stream;
+  }
+
+  Lexer.isSpace = function Lexer_isSpace(ch) {
+    return ch == ' ' || ch == '\t' || ch == '\x0d' || ch == '\x0a';
+  };
+
+  // A '1' in this array means the character is white space.  A '1' or
+  // '2' means the character ends a name or command.
+  var specialChars = [
+    1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0,   // 0x
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 1x
+    1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2,   // 2x
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0,   // 3x
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 4x
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0,   // 5x
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 6x
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0,   // 7x
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 8x
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 9x
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // ax
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // bx
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // cx
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // dx
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // ex
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0    // fx
+  ];
+
+  function toHexDigit(ch) {
+    if (ch >= '0' && ch <= '9')
+      return ch.charCodeAt(0) - 48;
+    ch = ch.toUpperCase();
+    if (ch >= 'A' && ch <= 'F')
+      return ch.charCodeAt(0) - 55;
+    return -1;
+  }
+
+  Lexer.prototype = {
+    getNumber: function Lexer_getNumber(ch) {
+      var floating = false;
+      var str = ch;
+      var stream = this.stream;
+      for (;;) {
+        ch = stream.lookChar();
+        if (ch == '.' && !floating) {
+          str += ch;
+          floating = true;
+        } else if (ch == '-') {
+          // ignore minus signs in the middle of numbers to match
+          // Adobe's behavior
+          warn('Badly formated number');
+        } else if (ch >= '0' && ch <= '9') {
+          str += ch;
+        } else if (ch == 'e' || ch == 'E') {
+          floating = true;
+        } else {
+          // the last character doesn't belong to us
+          break;
+        }
+        stream.skip();
+      }
+      var value = parseFloat(str);
+      if (isNaN(value))
+        error('Invalid floating point number: ' + value);
+      return value;
+    },
+    getString: function Lexer_getString() {
+      var numParen = 1;
+      var done = false;
+      var str = '';
+      var stream = this.stream;
+      var ch;
+      do {
+        ch = stream.getChar();
+        switch (ch) {
+          case undefined:
+            warn('Unterminated string');
+            done = true;
+            break;
+          case '(':
+            ++numParen;
+            str += ch;
+            break;
+          case ')':
+            if (--numParen == 0) {
+              done = true;
+            } else {
+              str += ch;
+            }
+            break;
+          case '\\':
+            ch = stream.getChar();
+            switch (ch) {
+              case undefined:
+                warn('Unterminated string');
+                done = true;
+                break;
+              case 'n':
+                str += '\n';
+                break;
+              case 'r':
+                str += '\r';
+                break;
+              case 't':
+                str += '\t';
+                break;
+              case 'b':
+                str += '\b';
+                break;
+              case 'f':
+                str += '\f';
+                break;
+              case '\\':
+              case '(':
+              case ')':
+                str += ch;
+                break;
+              case '0': case '1': case '2': case '3':
+              case '4': case '5': case '6': case '7':
+                var x = ch - '0';
+                ch = stream.lookChar();
+                if (ch >= '0' && ch <= '7') {
+                  stream.skip();
+                  x = (x << 3) + (ch - '0');
+                  ch = stream.lookChar();
+                  if (ch >= '0' && ch <= '7') {
+                    stream.skip();
+                    x = (x << 3) + (ch - '0');
+                  }
+                }
+
+                str += String.fromCharCode(x);
+                break;
+              case '\r':
+                ch = stream.lookChar();
+                if (ch == '\n')
+                  stream.skip();
+                break;
+              case '\n':
+                break;
+              default:
+                str += ch;
+            }
+            break;
+          default:
+            str += ch;
+        }
+      } while (!done);
+      return str;
+    },
+    getName: function Lexer_getName(ch) {
+      var str = '';
+      var stream = this.stream;
+      while (!!(ch = stream.lookChar()) && !specialChars[ch.charCodeAt(0)]) {
+        stream.skip();
+        if (ch == '#') {
+          ch = stream.lookChar();
+          var x = toHexDigit(ch);
+          if (x != -1) {
+            stream.skip();
+            var x2 = toHexDigit(stream.getChar());
+            if (x2 == -1)
+              error('Illegal digit in hex char in name: ' + x2);
+            str += String.fromCharCode((x << 4) | x2);
+          } else {
+            str += '#';
+            str += ch;
+          }
+        } else {
+          str += ch;
+        }
+      }
+      if (str.length > 128)
+        error('Warning: name token is longer than allowed by the spec: ' +
+              str.length);
+      return new Name(str);
+    },
+    getHexString: function Lexer_getHexString(ch) {
+      var str = '';
+      var stream = this.stream;
+      for (;;) {
+        ch = stream.getChar();
+        if (ch == '>') {
+          break;
+        }
+        if (!ch) {
+          warn('Unterminated hex string');
+          break;
+        }
+        if (specialChars[ch.charCodeAt(0)] != 1) {
+          var x, x2;
+          if ((x = toHexDigit(ch)) == -1)
+            error('Illegal character in hex string: ' + ch);
+
+          ch = stream.getChar();
+          while (specialChars[ch.charCodeAt(0)] == 1)
+            ch = stream.getChar();
+
+          if ((x2 = toHexDigit(ch)) == -1)
+            error('Illegal character in hex string: ' + ch);
+
+          str += String.fromCharCode((x << 4) | x2);
+        }
+      }
+      return str;
+    },
+    getObj: function Lexer_getObj() {
+      // skip whitespace and comments
+      var comment = false;
+      var stream = this.stream;
+      var ch;
+      while (true) {
+        if (!(ch = stream.getChar()))
+          return EOF;
+        if (comment) {
+          if (ch == '\r' || ch == '\n')
+            comment = false;
+        } else if (ch == '%') {
+          comment = true;
+        } else if (specialChars[ch.charCodeAt(0)] != 1) {
+          break;
+        }
+      }
+
+      // start reading token
+      switch (ch) {
+        case '0': case '1': case '2': case '3': case '4':
+        case '5': case '6': case '7': case '8': case '9':
+        case '+': case '-': case '.':
+          return this.getNumber(ch);
+        case '(':
+          return this.getString();
+        case '/':
+          return this.getName(ch);
+        // array punctuation
+        case '[':
+        case ']':
+          return Cmd.get(ch);
+        // hex string or dict punctuation
+        case '<':
+          ch = stream.lookChar();
+          if (ch == '<') {
+            // dict punctuation
+            stream.skip();
+            return Cmd.get('<<');
+          }
+          return this.getHexString(ch);
+        // dict punctuation
+        case '>':
+          ch = stream.lookChar();
+          if (ch == '>') {
+            stream.skip();
+            return Cmd.get('>>');
+          }
+        case '{':
+        case '}':
+          return Cmd.get(ch);
+        // fall through
+        case ')':
+          error('Illegal character: ' + ch);
+      }
+
+      // command
+      var str = ch;
+      while (!!(ch = stream.lookChar()) && !specialChars[ch.charCodeAt(0)]) {
+        stream.skip();
+        if (str.length == 128)
+          error('Command token too long: ' + str.length);
+
+        str += ch;
+      }
+      if (str == 'true')
+        return true;
+      if (str == 'false')
+        return false;
+      if (str == 'null')
+        return null;
+      return Cmd.get(str);
+    },
+    skipToNextLine: function Lexer_skipToNextLine() {
+      var stream = this.stream;
+      while (true) {
+        var ch = stream.getChar();
+        if (!ch || ch == '\n')
+          return;
+        if (ch == '\r') {
+          if ((ch = stream.lookChar()) == '\n')
+            stream.skip();
+          return;
+        }
+      }
+    },
+    skip: function Lexer_skip() {
+      this.stream.skip();
+    }
+  };
+
+  return Lexer;
+})();
+
+var Linearization = (function LinearizationClosure() {
+  function Linearization(stream) {
+    this.parser = new Parser(new Lexer(stream), false, null);
+    var obj1 = this.parser.getObj();
+    var obj2 = this.parser.getObj();
+    var obj3 = this.parser.getObj();
+    this.linDict = this.parser.getObj();
+    if (isInt(obj1) && isInt(obj2) && isCmd(obj3, 'obj') &&
+        isDict(this.linDict)) {
+      var obj = this.linDict.get('Linearized');
+      if (!(isNum(obj) && obj > 0))
+        this.linDict = null;
+    }
+  }
+
+  Linearization.prototype = {
+    getInt: function Linearization_getInt(name) {
+      var linDict = this.linDict;
+      var obj;
+      if (isDict(linDict) &&
+          isInt(obj = linDict.get(name)) &&
+          obj > 0) {
+        return obj;
+      }
+      error('"' + name + '" field in linearization table is invalid');
+    },
+    getHint: function Linearization_getHint(index) {
+      var linDict = this.linDict;
+      var obj1, obj2;
+      if (isDict(linDict) &&
+          isArray(obj1 = linDict.get('H')) &&
+          obj1.length >= 2 &&
+          isInt(obj2 = obj1[index]) &&
+          obj2 > 0) {
+        return obj2;
+      }
+      error('Hints table in linearization table is invalid: ' + index);
+    },
+    get length() {
+      if (!isDict(this.linDict))
+        return 0;
+      return this.getInt('L');
+    },
+    get hintsOffset() {
+      return this.getHint(0);
+    },
+    get hintsLength() {
+      return this.getHint(1);
+    },
+    get hintsOffset2() {
+      return this.getHint(2);
+    },
+    get hintsLenth2() {
+      return this.getHint(3);
+    },
+    get objectNumberFirst() {
+      return this.getInt('O');
+    },
+    get endFirst() {
+      return this.getInt('E');
+    },
+    get numPages() {
+      return this.getInt('N');
+    },
+    get mainXRefEntriesOffset() {
+      return this.getInt('T');
+    },
+    get pageFirst() {
+      return this.getInt('P');
+    }
+  };
+
+  return Linearization;
+})();
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var PatternType = {
+  AXIAL: 2,
+  RADIAL: 3
+};
+
+var Pattern = (function PatternClosure() {
+  // Constructor should define this.getPattern
+  function Pattern() {
+    error('should not call Pattern constructor');
+  }
+
+  Pattern.prototype = {
+    // Input: current Canvas context
+    // Output: the appropriate fillStyle or strokeStyle
+    getPattern: function Pattern_getPattern(ctx) {
+      error('Should not call Pattern.getStyle: ' + ctx);
+    }
+  };
+
+  Pattern.shadingFromIR = function Pattern_shadingFromIR(raw) {
+    return Shadings[raw[0]].fromIR(raw);
+  };
+
+  Pattern.parseShading = function Pattern_parseShading(shading, matrix, xref,
+                                                       res) {
+
+    var dict = isStream(shading) ? shading.dict : shading;
+    var type = dict.get('ShadingType');
+
+    switch (type) {
+      case PatternType.AXIAL:
+      case PatternType.RADIAL:
+        // Both radial and axial shadings are handled by RadialAxial shading.
+        return new Shadings.RadialAxial(dict, matrix, xref, res);
+      default:
+        return new Shadings.Dummy();
+    }
+  };
+  return Pattern;
+})();
+
+var Shadings = {};
+
+// Radial and axial shading have very similar implementations
+// If needed, the implementations can be broken into two classes
+Shadings.RadialAxial = (function RadialAxialClosure() {
+  function RadialAxial(dict, matrix, xref, res, ctx) {
+    this.matrix = matrix;
+    this.coordsArr = dict.get('Coords');
+    this.shadingType = dict.get('ShadingType');
+    this.type = 'Pattern';
+
+    this.ctx = ctx;
+    var cs = dict.get('ColorSpace', 'CS');
+    cs = ColorSpace.parse(cs, xref, res);
+    this.cs = cs;
+
+    var t0 = 0.0, t1 = 1.0;
+    if (dict.has('Domain')) {
+      var domainArr = dict.get('Domain');
+      t0 = domainArr[0];
+      t1 = domainArr[1];
+    }
+
+    var extendStart = false, extendEnd = false;
+    if (dict.has('Extend')) {
+      var extendArr = dict.get('Extend');
+      extendStart = extendArr[0];
+      extendEnd = extendArr[1];
+      TODO('Support extend');
+    }
+
+    this.extendStart = extendStart;
+    this.extendEnd = extendEnd;
+
+    var fnObj = dict.get('Function');
+    if (isArray(fnObj))
+      error('No support for array of functions');
+    if (!isPDFFunction(fnObj))
+      error('Invalid function');
+    var fn = PDFFunction.parse(xref, fnObj);
+
+    // 10 samples seems good enough for now, but probably won't work
+    // if there are sharp color changes. Ideally, we would implement
+    // the spec faithfully and add lossless optimizations.
+    var step = (t1 - t0) / 10;
+    var diff = t1 - t0;
+
+    var colorStops = [];
+    for (var i = t0; i <= t1; i += step) {
+      var rgbColor = cs.getRgb(fn([i]));
+      var cssColor = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);
+      colorStops.push([(i - t0) / diff, cssColor]);
+    }
+
+    this.colorStops = colorStops;
+  }
+
+  RadialAxial.fromIR = function RadialAxial_fromIR(raw) {
+    var type = raw[1];
+    var colorStops = raw[2];
+    var p0 = raw[3];
+    var p1 = raw[4];
+    var r0 = raw[5];
+    var r1 = raw[6];
+    return {
+      type: 'Pattern',
+      getPattern: function RadialAxial_getPattern(ctx) {
+        var curMatrix = ctx.mozCurrentTransform;
+        if (curMatrix) {
+          var userMatrix = ctx.mozCurrentTransformInverse;
+
+          p0 = Util.applyTransform(p0, curMatrix);
+          p0 = Util.applyTransform(p0, userMatrix);
+
+          p1 = Util.applyTransform(p1, curMatrix);
+          p1 = Util.applyTransform(p1, userMatrix);
+        }
+
+        var grad;
+        if (type == PatternType.AXIAL)
+          grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);
+        else if (type == PatternType.RADIAL)
+          grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);
+
+        for (var i = 0, ii = colorStops.length; i < ii; ++i) {
+          var c = colorStops[i];
+          grad.addColorStop(c[0], c[1]);
+        }
+        return grad;
+      }
+    };
+  };
+
+  RadialAxial.prototype = {
+    getIR: function RadialAxial_getIR() {
+      var coordsArr = this.coordsArr;
+      var type = this.shadingType;
+      if (type == PatternType.AXIAL) {
+        var p0 = [coordsArr[0], coordsArr[1]];
+        var p1 = [coordsArr[2], coordsArr[3]];
+        var r0 = null;
+        var r1 = null;
+      } else if (type == PatternType.RADIAL) {
+        var p0 = [coordsArr[0], coordsArr[1]];
+        var p1 = [coordsArr[3], coordsArr[4]];
+        var r0 = coordsArr[2];
+        var r1 = coordsArr[5];
+      } else {
+        error('getPattern type unknown: ' + type);
+      }
+
+      var matrix = this.matrix;
+      if (matrix) {
+        p0 = Util.applyTransform(p0, matrix);
+        p1 = Util.applyTransform(p1, matrix);
+      }
+
+      return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1];
+    }
+  };
+
+  return RadialAxial;
+})();
+
+Shadings.Dummy = (function DummyClosure() {
+  function Dummy() {
+    this.type = 'Pattern';
+  }
+
+  Dummy.fromIR = function Dummy_fromIR() {
+    return 'hotpink';
+  };
+
+  Dummy.prototype = {
+    getIR: function Dummy_getIR() {
+      return ['Dummy'];
+    }
+  };
+  return Dummy;
+})();
+
+var TilingPattern = (function TilingPatternClosure() {
+  var PaintType = {
+    COLORED: 1,
+    UNCOLORED: 2
+  };
+  var MAX_PATTERN_SIZE = 512;
+
+  function TilingPattern(IR, color, ctx, objs) {
+    var operatorList = IR[2];
+    this.matrix = IR[3];
+    var bbox = IR[4];
+    var xstep = IR[5];
+    var ystep = IR[6];
+    var paintType = IR[7];
+
+    TODO('TilingType');
+
+    this.curMatrix = ctx.mozCurrentTransform;
+    this.invMatrix = ctx.mozCurrentTransformInverse;
+    this.ctx = ctx;
+    this.type = 'Pattern';
+
+    var x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3];
+
+    var topLeft = [x0, y0];
+    // we want the canvas to be as large as the step size
+    var botRight = [x0 + xstep, y0 + ystep];
+
+    var width = botRight[0] - topLeft[0];
+    var height = botRight[1] - topLeft[1];
+
+    // TODO: hack to avoid OOM, we would ideally compute the tiling
+    // pattern to be only as large as the acual size in device space
+    // This could be computed with .mozCurrentTransform, but still
+    // needs to be implemented
+    while (Math.abs(width) > MAX_PATTERN_SIZE ||
+           Math.abs(height) > MAX_PATTERN_SIZE) {
+      width = height = MAX_PATTERN_SIZE;
+    }
+
+    var tmpCanvas = createScratchCanvas(width, height);
+
+    // set the new canvas element context as the graphics context
+    var tmpCtx = tmpCanvas.getContext('2d');
+    var graphics = new CanvasGraphics(tmpCtx, objs);
+
+    switch (paintType) {
+      case PaintType.COLORED:
+        tmpCtx.fillStyle = ctx.fillStyle;
+        tmpCtx.strokeStyle = ctx.strokeStyle;
+        break;
+      case PaintType.UNCOLORED:
+        var cssColor = Util.makeCssRgb(this, color[0], color[1], color[2]);
+        tmpCtx.fillStyle = cssColor;
+        tmpCtx.strokeStyle = cssColor;
+        break;
+      default:
+        error('Unsupported paint type: ' + paintType);
+    }
+
+    var scale = [width / xstep, height / ystep];
+    this.scale = scale;
+
+    // transform coordinates to pattern space
+    var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];
+    var tmpScale = [scale[0], 0, 0, scale[1], 0, 0];
+    graphics.transform.apply(graphics, tmpScale);
+    graphics.transform.apply(graphics, tmpTranslate);
+
+    if (bbox && isArray(bbox) && 4 == bbox.length) {
+      var bboxWidth = x1 - x0;
+      var bboxHeight = y1 - y0;
+      graphics.rectangle(x0, y0, bboxWidth, bboxHeight);
+      graphics.clip();
+      graphics.endPath();
+    }
+
+    graphics.executeOperatorList(operatorList);
+
+    this.canvas = tmpCanvas;
+  }
+
+  TilingPattern.getIR = function TilingPattern_getIR(operatorList, dict, args) {
+    var matrix = dict.get('Matrix');
+    var bbox = dict.get('BBox');
+    var xstep = dict.get('XStep');
+    var ystep = dict.get('YStep');
+    var paintType = dict.get('PaintType');
+
+    return [
+      'TilingPattern', args, operatorList, matrix, bbox, xstep, ystep, paintType
+    ];
+  };
+
+  TilingPattern.prototype = {
+    getPattern: function TilingPattern_getPattern() {
+      var matrix = this.matrix;
+      var curMatrix = this.curMatrix;
+      var ctx = this.ctx;
+
+      if (curMatrix)
+        ctx.setTransform.apply(ctx, curMatrix);
+
+      if (matrix)
+        ctx.transform.apply(ctx, matrix);
+
+      var scale = this.scale;
+      ctx.scale(1 / scale[0], 1 / scale[1]);
+
+      return ctx.createPattern(this.canvas, 'repeat');
+    }
+  };
+
+  return TilingPattern;
+})();
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var Stream = (function StreamClosure() {
+  function Stream(arrayBuffer, start, length, dict) {
+    this.bytes = new Uint8Array(arrayBuffer);
+    this.start = start || 0;
+    this.pos = this.start;
+    this.end = (start + length) || this.bytes.length;
+    this.dict = dict;
+  }
+
+  // required methods for a stream. if a particular stream does not
+  // implement these, an error should be thrown
+  Stream.prototype = {
+    get length() {
+      return this.end - this.start;
+    },
+    getByte: function Stream_getByte() {
+      if (this.pos >= this.end)
+        return null;
+      return this.bytes[this.pos++];
+    },
+    // returns subarray of original buffer
+    // should only be read
+    getBytes: function Stream_getBytes(length) {
+      var bytes = this.bytes;
+      var pos = this.pos;
+      var strEnd = this.end;
+
+      if (!length)
+        return bytes.subarray(pos, strEnd);
+
+      var end = pos + length;
+      if (end > strEnd)
+        end = strEnd;
+
+      this.pos = end;
+      return bytes.subarray(pos, end);
+    },
+    lookChar: function Stream_lookChar() {
+      if (this.pos >= this.end)
+        return null;
+      return String.fromCharCode(this.bytes[this.pos]);
+    },
+    getChar: function Stream_getChar() {
+      if (this.pos >= this.end)
+        return null;
+      return String.fromCharCode(this.bytes[this.pos++]);
+    },
+    skip: function Stream_skip(n) {
+      if (!n)
+        n = 1;
+      this.pos += n;
+    },
+    reset: function Stream_reset() {
+      this.pos = this.start;
+    },
+    moveStart: function Stream_moveStart() {
+      this.start = this.pos;
+    },
+    makeSubStream: function Stream_makeSubStream(start, length, dict) {
+      return new Stream(this.bytes.buffer, start, length, dict);
+    },
+    isStream: true
+  };
+
+  return Stream;
+})();
+
+var StringStream = (function StringStreamClosure() {
+  function StringStream(str) {
+    var length = str.length;
+    var bytes = new Uint8Array(length);
+    for (var n = 0; n < length; ++n)
+      bytes[n] = str.charCodeAt(n);
+    Stream.call(this, bytes);
+  }
+
+  StringStream.prototype = Stream.prototype;
+
+  return StringStream;
+})();
+
+// super class for the decoding streams
+var DecodeStream = (function DecodeStreamClosure() {
+  function DecodeStream() {
+    this.pos = 0;
+    this.bufferLength = 0;
+    this.eof = false;
+    this.buffer = null;
+  }
+
+  DecodeStream.prototype = {
+    ensureBuffer: function DecodeStream_ensureBuffer(requested) {
+      var buffer = this.buffer;
+      var current = buffer ? buffer.byteLength : 0;
+      if (requested < current)
+        return buffer;
+      var size = 512;
+      while (size < requested)
+        size <<= 1;
+      var buffer2 = new Uint8Array(size);
+      for (var i = 0; i < current; ++i)
+        buffer2[i] = buffer[i];
+      return (this.buffer = buffer2);
+    },
+    getByte: function DecodeStream_getByte() {
+      var pos = this.pos;
+      while (this.bufferLength <= pos) {
+        if (this.eof)
+          return null;
+        this.readBlock();
+      }
+      return this.buffer[this.pos++];
+    },
+    getBytes: function DecodeStream_getBytes(length) {
+      var end, pos = this.pos;
+
+      if (length) {
+        this.ensureBuffer(pos + length);
+        end = pos + length;
+
+        while (!this.eof && this.bufferLength < end)
+          this.readBlock();
+
+        var bufEnd = this.bufferLength;
+        if (end > bufEnd)
+          end = bufEnd;
+      } else {
+        while (!this.eof)
+          this.readBlock();
+
+        end = this.bufferLength;
+
+        // checking if bufferLength is still 0 then
+        // the buffer has to be initialized
+        if (!end)
+          this.buffer = new Uint8Array(0);
+      }
+
+      this.pos = end;
+      return this.buffer.subarray(pos, end);
+    },
+    lookChar: function DecodeStream_lookChar() {
+      var pos = this.pos;
+      while (this.bufferLength <= pos) {
+        if (this.eof)
+          return null;
+        this.readBlock();
+      }
+      return String.fromCharCode(this.buffer[this.pos]);
+    },
+    getChar: function DecodeStream_getChar() {
+      var pos = this.pos;
+      while (this.bufferLength <= pos) {
+        if (this.eof)
+          return null;
+        this.readBlock();
+      }
+      return String.fromCharCode(this.buffer[this.pos++]);
+    },
+    makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {
+      var end = start + length;
+      while (this.bufferLength <= end && !this.eof)
+        this.readBlock();
+      return new Stream(this.buffer, start, length, dict);
+    },
+    skip: function DecodeStream_skip(n) {
+      if (!n)
+        n = 1;
+      this.pos += n;
+    },
+    reset: function DecodeStream_reset() {
+      this.pos = 0;
+    }
+  };
+
+  return DecodeStream;
+})();
+
+var FakeStream = (function FakeStreamClosure() {
+  function FakeStream(stream) {
+    this.dict = stream.dict;
+    DecodeStream.call(this);
+  }
+
+  FakeStream.prototype = Object.create(DecodeStream.prototype);
+  FakeStream.prototype.readBlock = function FakeStream_readBlock() {
+    var bufferLength = this.bufferLength;
+    bufferLength += 1024;
+    var buffer = this.ensureBuffer(bufferLength);
+    this.bufferLength = bufferLength;
+  };
+
+  FakeStream.prototype.getBytes = function FakeStream_getBytes(length) {
+    var end, pos = this.pos;
+
+    if (length) {
+      this.ensureBuffer(pos + length);
+      end = pos + length;
+
+      while (!this.eof && this.bufferLength < end)
+        this.readBlock();
+
+      var bufEnd = this.bufferLength;
+      if (end > bufEnd)
+        end = bufEnd;
+    } else {
+      this.eof = true;
+      end = this.bufferLength;
+    }
+
+    this.pos = end;
+    return this.buffer.subarray(pos, end);
+  };
+
+  return FakeStream;
+})();
+
+var StreamsSequenceStream = (function StreamsSequenceStreamClosure() {
+  function StreamsSequenceStream(streams) {
+    this.streams = streams;
+    DecodeStream.call(this);
+  }
+
+  StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype);
+
+  StreamsSequenceStream.prototype.readBlock =
+    function streamSequenceStreamReadBlock() {
+
+    var streams = this.streams;
+    if (streams.length == 0) {
+      this.eof = true;
+      return;
+    }
+    var stream = streams.shift();
+    var chunk = stream.getBytes();
+    var bufferLength = this.bufferLength;
+    var newLength = bufferLength + chunk.length;
+    var buffer = this.ensureBuffer(newLength);
+    buffer.set(chunk, bufferLength);
+    this.bufferLength = newLength;
+  };
+
+  return StreamsSequenceStream;
+})();
+
+var FlateStream = (function FlateStreamClosure() {
+  var codeLenCodeMap = new Uint32Array([
+    16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15
+  ]);
+
+  var lengthDecode = new Uint32Array([
+    0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,
+    0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,
+    0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,
+    0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102
+  ]);
+
+  var distDecode = new Uint32Array([
+    0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,
+    0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,
+    0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,
+    0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001
+  ]);
+
+  var fixedLitCodeTab = [new Uint32Array([
+    0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,
+    0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,
+    0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,
+    0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,
+    0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,
+    0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,
+    0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,
+    0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,
+    0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,
+    0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,
+    0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,
+    0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,
+    0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,
+    0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,
+    0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,
+    0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,
+    0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,
+    0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,
+    0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,
+    0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,
+    0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,
+    0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,
+    0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,
+    0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,
+    0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,
+    0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,
+    0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,
+    0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,
+    0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,
+    0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,
+    0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,
+    0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,
+    0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,
+    0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,
+    0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,
+    0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,
+    0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,
+    0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,
+    0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,
+    0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,
+    0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,
+    0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,
+    0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,
+    0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,
+    0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,
+    0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,
+    0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,
+    0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,
+    0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,
+    0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,
+    0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,
+    0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,
+    0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,
+    0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,
+    0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,
+    0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,
+    0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,
+    0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,
+    0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,
+    0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,
+    0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,
+    0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,
+    0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,
+    0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff
+  ]), 9];
+
+  var fixedDistCodeTab = [new Uint32Array([
+    0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,
+    0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,
+    0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,
+    0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000
+  ]), 5];
+
+  function FlateStream(stream) {
+    var bytes = stream.getBytes();
+    var bytesPos = 0;
+
+    this.dict = stream.dict;
+    var cmf = bytes[bytesPos++];
+    var flg = bytes[bytesPos++];
+    if (cmf == -1 || flg == -1)
+      error('Invalid header in flate stream: ' + cmf + ', ' + flg);
+    if ((cmf & 0x0f) != 0x08)
+      error('Unknown compression method in flate stream: ' + cmf + ', ' + flg);
+    if ((((cmf << 8) + flg) % 31) != 0)
+      error('Bad FCHECK in flate stream: ' + cmf + ', ' + flg);
+    if (flg & 0x20)
+      error('FDICT bit set in flate stream: ' + cmf + ', ' + flg);
+
+    this.bytes = bytes;
+    this.bytesPos = bytesPos;
+
+    this.codeSize = 0;
+    this.codeBuf = 0;
+
+    DecodeStream.call(this);
+  }
+
+  FlateStream.prototype = Object.create(DecodeStream.prototype);
+
+  FlateStream.prototype.getBits = function FlateStream_getBits(bits) {
+    var codeSize = this.codeSize;
+    var codeBuf = this.codeBuf;
+    var bytes = this.bytes;
+    var bytesPos = this.bytesPos;
+
+    var b;
+    while (codeSize < bits) {
+      if (typeof (b = bytes[bytesPos++]) == 'undefined')
+        error('Bad encoding in flate stream');
+      codeBuf |= b << codeSize;
+      codeSize += 8;
+    }
+    b = codeBuf & ((1 << bits) - 1);
+    this.codeBuf = codeBuf >> bits;
+    this.codeSize = codeSize -= bits;
+    this.bytesPos = bytesPos;
+    return b;
+  };
+
+  FlateStream.prototype.getCode = function FlateStream_getCode(table) {
+    var codes = table[0];
+    var maxLen = table[1];
+    var codeSize = this.codeSize;
+    var codeBuf = this.codeBuf;
+    var bytes = this.bytes;
+    var bytesPos = this.bytesPos;
+
+    while (codeSize < maxLen) {
+      var b;
+      if (typeof (b = bytes[bytesPos++]) == 'undefined')
+        error('Bad encoding in flate stream');
+      codeBuf |= (b << codeSize);
+      codeSize += 8;
+    }
+    var code = codes[codeBuf & ((1 << maxLen) - 1)];
+    var codeLen = code >> 16;
+    var codeVal = code & 0xffff;
+    if (codeSize == 0 || codeSize < codeLen || codeLen == 0)
+      error('Bad encoding in flate stream');
+    this.codeBuf = (codeBuf >> codeLen);
+    this.codeSize = (codeSize - codeLen);
+    this.bytesPos = bytesPos;
+    return codeVal;
+  };
+
+  FlateStream.prototype.generateHuffmanTable =
+    function flateStreamGenerateHuffmanTable(lengths) {
+    var n = lengths.length;
+
+    // find max code length
+    var maxLen = 0;
+    for (var i = 0; i < n; ++i) {
+      if (lengths[i] > maxLen)
+        maxLen = lengths[i];
+    }
+
+    // build the table
+    var size = 1 << maxLen;
+    var codes = new Uint32Array(size);
+    for (var len = 1, code = 0, skip = 2;
+         len <= maxLen;
+         ++len, code <<= 1, skip <<= 1) {
+      for (var val = 0; val < n; ++val) {
+        if (lengths[val] == len) {
+          // bit-reverse the code
+          var code2 = 0;
+          var t = code;
+          for (var i = 0; i < len; ++i) {
+            code2 = (code2 << 1) | (t & 1);
+            t >>= 1;
+          }
+
+          // fill the table entries
+          for (var i = code2; i < size; i += skip)
+            codes[i] = (len << 16) | val;
+
+          ++code;
+        }
+      }
+    }
+
+    return [codes, maxLen];
+  };
+
+  FlateStream.prototype.readBlock = function FlateStream_readBlock() {
+    // read block header
+    var hdr = this.getBits(3);
+    if (hdr & 1)
+      this.eof = true;
+    hdr >>= 1;
+
+    if (hdr == 0) { // uncompressed block
+      var bytes = this.bytes;
+      var bytesPos = this.bytesPos;
+      var b;
+
+      if (typeof (b = bytes[bytesPos++]) == 'undefined')
+        error('Bad block header in flate stream');
+      var blockLen = b;
+      if (typeof (b = bytes[bytesPos++]) == 'undefined')
+        error('Bad block header in flate stream');
+      blockLen |= (b << 8);
+      if (typeof (b = bytes[bytesPos++]) == 'undefined')
+        error('Bad block header in flate stream');
+      var check = b;
+      if (typeof (b = bytes[bytesPos++]) == 'undefined')
+        error('Bad block header in flate stream');
+      check |= (b << 8);
+      if (check != (~blockLen & 0xffff))
+        error('Bad uncompressed block length in flate stream');
+
+      this.codeBuf = 0;
+      this.codeSize = 0;
+
+      var bufferLength = this.bufferLength;
+      var buffer = this.ensureBuffer(bufferLength + blockLen);
+      var end = bufferLength + blockLen;
+      this.bufferLength = end;
+      for (var n = bufferLength; n < end; ++n) {
+        if (typeof (b = bytes[bytesPos++]) == 'undefined') {
+          this.eof = true;
+          break;
+        }
+        buffer[n] = b;
+      }
+      this.bytesPos = bytesPos;
+      return;
+    }
+
+    var litCodeTable;
+    var distCodeTable;
+    if (hdr == 1) { // compressed block, fixed codes
+      litCodeTable = fixedLitCodeTab;
+      distCodeTable = fixedDistCodeTab;
+    } else if (hdr == 2) { // compressed block, dynamic codes
+      var numLitCodes = this.getBits(5) + 257;
+      var numDistCodes = this.getBits(5) + 1;
+      var numCodeLenCodes = this.getBits(4) + 4;
+
+      // build the code lengths code table
+      var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);
+
+      for (var i = 0; i < numCodeLenCodes; ++i)
+        codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);
+      var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);
+
+      // build the literal and distance code tables
+      var len = 0;
+      var i = 0;
+      var codes = numLitCodes + numDistCodes;
+      var codeLengths = new Uint8Array(codes);
+      while (i < codes) {
+        var code = this.getCode(codeLenCodeTab);
+        if (code == 16) {
+          var bitsLength = 2, bitsOffset = 3, what = len;
+        } else if (code == 17) {
+          var bitsLength = 3, bitsOffset = 3, what = (len = 0);
+        } else if (code == 18) {
+          var bitsLength = 7, bitsOffset = 11, what = (len = 0);
+        } else {
+          codeLengths[i++] = len = code;
+          continue;
+        }
+
+        var repeatLength = this.getBits(bitsLength) + bitsOffset;
+        while (repeatLength-- > 0)
+          codeLengths[i++] = what;
+      }
+
+      litCodeTable =
+        this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));
+      distCodeTable =
+        this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));
+    } else {
+      error('Unknown block type in flate stream');
+    }
+
+    var buffer = this.buffer;
+    var limit = buffer ? buffer.length : 0;
+    var pos = this.bufferLength;
+    while (true) {
+      var code1 = this.getCode(litCodeTable);
+      if (code1 < 256) {
+        if (pos + 1 >= limit) {
+          buffer = this.ensureBuffer(pos + 1);
+          limit = buffer.length;
+        }
+        buffer[pos++] = code1;
+        continue;
+      }
+      if (code1 == 256) {
+        this.bufferLength = pos;
+        return;
+      }
+      code1 -= 257;
+      code1 = lengthDecode[code1];
+      var code2 = code1 >> 16;
+      if (code2 > 0)
+        code2 = this.getBits(code2);
+      var len = (code1 & 0xffff) + code2;
+      code1 = this.getCode(distCodeTable);
+      code1 = distDecode[code1];
+      code2 = code1 >> 16;
+      if (code2 > 0)
+        code2 = this.getBits(code2);
+      var dist = (code1 & 0xffff) + code2;
+      if (pos + len >= limit) {
+        buffer = this.ensureBuffer(pos + len);
+        limit = buffer.length;
+      }
+      for (var k = 0; k < len; ++k, ++pos)
+        buffer[pos] = buffer[pos - dist];
+    }
+  };
+
+  return FlateStream;
+})();
+
+var PredictorStream = (function PredictorStreamClosure() {
+  function PredictorStream(stream, params) {
+    var predictor = this.predictor = params.get('Predictor') || 1;
+
+    if (predictor <= 1)
+      return stream; // no prediction
+    if (predictor !== 2 && (predictor < 10 || predictor > 15))
+      error('Unsupported predictor: ' + predictor);
+
+    if (predictor === 2)
+      this.readBlock = this.readBlockTiff;
+    else
+      this.readBlock = this.readBlockPng;
+
+    this.stream = stream;
+    this.dict = stream.dict;
+
+    var colors = this.colors = params.get('Colors') || 1;
+    var bits = this.bits = params.get('BitsPerComponent') || 8;
+    var columns = this.columns = params.get('Columns') || 1;
+
+    this.pixBytes = (colors * bits + 7) >> 3;
+    this.rowBytes = (columns * colors * bits + 7) >> 3;
+
+    DecodeStream.call(this);
+    return this;
+  }
+
+  PredictorStream.prototype = Object.create(DecodeStream.prototype);
+
+  PredictorStream.prototype.readBlockTiff =
+    function predictorStreamReadBlockTiff() {
+    var rowBytes = this.rowBytes;
+
+    var bufferLength = this.bufferLength;
+    var buffer = this.ensureBuffer(bufferLength + rowBytes);
+
+    var bits = this.bits;
+    var colors = this.colors;
+
+    var rawBytes = this.stream.getBytes(rowBytes);
+
+    var inbuf = 0, outbuf = 0;
+    var inbits = 0, outbits = 0;
+    var pos = bufferLength;
+
+    if (bits === 1) {
+      for (var i = 0; i < rowBytes; ++i) {
+        var c = rawBytes[i];
+        inbuf = (inbuf << 8) | c;
+        // bitwise addition is exclusive or
+        // first shift inbuf and then add
+        buffer[pos++] = (c ^ (inbuf >> colors)) & 0xFF;
+        // truncate inbuf (assumes colors < 16)
+        inbuf &= 0xFFFF;
+      }
+    } else if (bits === 8) {
+      for (var i = 0; i < colors; ++i)
+        buffer[pos++] = rawBytes[i];
+      for (; i < rowBytes; ++i) {
+        buffer[pos] = buffer[pos - colors] + rawBytes[i];
+        pos++;
+      }
+    } else {
+      var compArray = new Uint8Array(colors + 1);
+      var bitMask = (1 << bits) - 1;
+      var j = 0, k = bufferLength;
+      var columns = this.columns;
+      for (var i = 0; i < columns; ++i) {
+        for (var kk = 0; kk < colors; ++kk) {
+          if (inbits < bits) {
+            inbuf = (inbuf << 8) | (rawBytes[j++] & 0xFF);
+            inbits += 8;
+          }
+          compArray[kk] = (compArray[kk] +
+                           (inbuf >> (inbits - bits))) & bitMask;
+          inbits -= bits;
+          outbuf = (outbuf << bits) | compArray[kk];
+          outbits += bits;
+          if (outbits >= 8) {
+            buffer[k++] = (outbuf >> (outbits - 8)) & 0xFF;
+            outbits -= 8;
+          }
+        }
+      }
+      if (outbits > 0) {
+        buffer[k++] = (outbuf << (8 - outbits)) +
+        (inbuf & ((1 << (8 - outbits)) - 1));
+      }
+    }
+    this.bufferLength += rowBytes;
+  };
+
+  PredictorStream.prototype.readBlockPng =
+    function predictorStreamReadBlockPng() {
+
+    var rowBytes = this.rowBytes;
+    var pixBytes = this.pixBytes;
+
+    var predictor = this.stream.getByte();
+    var rawBytes = this.stream.getBytes(rowBytes);
+
+    var bufferLength = this.bufferLength;
+    var buffer = this.ensureBuffer(bufferLength + rowBytes);
+
+    var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);
+    if (prevRow.length == 0)
+      prevRow = new Uint8Array(rowBytes);
+
+    var j = bufferLength;
+    switch (predictor) {
+      case 0:
+        for (var i = 0; i < rowBytes; ++i)
+          buffer[j++] = rawBytes[i];
+        break;
+      case 1:
+        for (var i = 0; i < pixBytes; ++i)
+          buffer[j++] = rawBytes[i];
+        for (; i < rowBytes; ++i) {
+          buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xFF;
+          j++;
+        }
+        break;
+      case 2:
+        for (var i = 0; i < rowBytes; ++i)
+          buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xFF;
+        break;
+      case 3:
+        for (var i = 0; i < pixBytes; ++i)
+          buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];
+        for (; i < rowBytes; ++i) {
+          buffer[j] = (((prevRow[i] + buffer[j - pixBytes]) >> 1) +
+                           rawBytes[i]) & 0xFF;
+          j++;
+        }
+        break;
+      case 4:
+        // we need to save the up left pixels values. the simplest way
+        // is to create a new buffer
+        for (var i = 0; i < pixBytes; ++i) {
+          var up = prevRow[i];
+          var c = rawBytes[i];
+          buffer[j++] = up + c;
+        }
+        for (; i < rowBytes; ++i) {
+          var up = prevRow[i];
+          var upLeft = prevRow[i - pixBytes];
+          var left = buffer[j - pixBytes];
+          var p = left + up - upLeft;
+
+          var pa = p - left;
+          if (pa < 0)
+            pa = -pa;
+          var pb = p - up;
+          if (pb < 0)
+            pb = -pb;
+          var pc = p - upLeft;
+          if (pc < 0)
+            pc = -pc;
+
+          var c = rawBytes[i];
+          if (pa <= pb && pa <= pc)
+            buffer[j++] = left + c;
+          else if (pb <= pc)
+            buffer[j++] = up + c;
+          else
+            buffer[j++] = upLeft + c;
+        }
+        break;
+      default:
+        error('Unsupported predictor: ' + predictor);
+    }
+    this.bufferLength += rowBytes;
+  };
+
+  return PredictorStream;
+})();
+
+/**
+ * Depending on the type of JPEG a JpegStream is handled in different ways. For
+ * JPEG's that are supported natively such as DeviceGray and DeviceRGB the image
+ * data is stored and then loaded by the browser.  For unsupported JPEG's we use
+ * a library to decode these images and the stream behaves like all the other
+ * DecodeStreams.
+ */
+var JpegStream = (function JpegStreamClosure() {
+  function isAdobeImage(bytes) {
+    var maxBytesScanned = Math.max(bytes.length - 16, 1024);
+    // Looking for APP14, 'Adobe'
+    for (var i = 0; i < maxBytesScanned; ++i) {
+      if (bytes[i] == 0xFF && bytes[i + 1] == 0xEE &&
+          bytes[i + 2] == 0x00 && bytes[i + 3] == 0x0E &&
+          bytes[i + 4] == 0x41 && bytes[i + 5] == 0x64 &&
+          bytes[i + 6] == 0x6F && bytes[i + 7] == 0x62 &&
+          bytes[i + 8] == 0x65 && bytes[i + 9] == 0x00)
+          return true;
+      // scanning until frame tag
+      if (bytes[i] == 0xFF && bytes[i + 1] == 0xC0)
+        break;
+    }
+    return false;
+  }
+
+  function fixAdobeImage(bytes) {
+    // Inserting 'EMBED' marker after JPEG signature
+    var embedMarker = new Uint8Array([0xFF, 0xEC, 0, 8, 0x45, 0x4D, 0x42, 0x45,
+                                      0x44, 0]);
+    var newBytes = new Uint8Array(bytes.length + embedMarker.length);
+    newBytes.set(bytes, embedMarker.length);
+    // copy JPEG header
+    newBytes[0] = bytes[0];
+    newBytes[1] = bytes[1];
+    newBytes.set(embedMarker, 2);
+    return newBytes;
+  }
+
+  function JpegStream(bytes, dict, xref) {
+    // TODO: per poppler, some images may have 'junk' before that
+    // need to be removed
+    this.dict = dict;
+
+    this.isAdobeImage = false;
+    this.colorTransform = dict.get('ColorTransform') || -1;
+
+    if (isAdobeImage(bytes)) {
+      this.isAdobeImage = true;
+      bytes = fixAdobeImage(bytes);
+    }
+
+    this.bytes = bytes;
+
+    DecodeStream.call(this);
+  }
+
+  JpegStream.prototype = Object.create(DecodeStream.prototype);
+
+  JpegStream.prototype.ensureBuffer = function JpegStream_ensureBuffer(req) {
+    if (this.bufferLength)
+      return;
+    try {
+      var jpegImage = new JpegImage();
+      if (this.colorTransform != -1)
+        jpegImage.colorTransform = this.colorTransform;
+      jpegImage.parse(this.bytes);
+      var width = jpegImage.width;
+      var height = jpegImage.height;
+      var data = jpegImage.getData(width, height);
+      this.buffer = data;
+      this.bufferLength = data.length;
+    } catch (e) {
+      error('JPEG error: ' + e);
+    }
+  };
+  JpegStream.prototype.getIR = function JpegStream_getIR() {
+    return bytesToString(this.bytes);
+  };
+  JpegStream.prototype.getChar = function JpegStream_getChar() {
+    error('internal error: getChar is not valid on JpegStream');
+  };
+  /**
+   * Checks if the image can be decoded and displayed by the browser without any
+   * further processing such as color space conversions.
+   */
+  JpegStream.prototype.isNativelySupported =
+    function JpegStream_isNativelySupported(xref, res) {
+    var cs = ColorSpace.parse(this.dict.get('ColorSpace'), xref, res);
+    // when bug 674619 lands, let's check if browser can do
+    // normal cmyk and then we won't need to decode in JS
+    if (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB')
+      return true;
+    if (cs.name === 'DeviceCMYK' && !this.isAdobeImage &&
+        this.colorTransform < 1)
+      return true;
+    return false;
+  };
+  /**
+   * Checks if the image can be decoded by the browser.
+   */
+  JpegStream.prototype.isNativelyDecodable =
+    function JpegStream_isNativelyDecodable(xref, res) {
+    var cs = ColorSpace.parse(this.dict.get('ColorSpace'), xref, res);
+    var numComps = cs.numComps;
+    if (numComps == 1 || numComps == 3)
+      return true;
+
+    return false;
+  };
+
+  return JpegStream;
+})();
+
+/**
+ * For JPEG 2000's we use a library to decode these images and
+ * the stream behaves like all the other DecodeStreams.
+ */
+var JpxStream = (function JpxStreamClosure() {
+  function JpxStream(bytes, dict) {
+    this.dict = dict;
+    this.bytes = bytes;
+
+    DecodeStream.call(this);
+  }
+
+  JpxStream.prototype = Object.create(DecodeStream.prototype);
+
+  JpxStream.prototype.ensureBuffer = function JpxStream_ensureBuffer(req) {
+    if (this.bufferLength)
+      return;
+
+    var jpxImage = new JpxImage();
+    jpxImage.parse(this.bytes);
+
+    var width = jpxImage.width;
+    var height = jpxImage.height;
+    var componentsCount = jpxImage.componentsCount;
+    if (componentsCount != 1 && componentsCount != 3 && componentsCount != 4)
+      error('JPX with ' + componentsCount + ' components is not supported');
+
+    var data = new Uint8Array(width * height * componentsCount);
+
+    for (var k = 0, kk = jpxImage.tiles.length; k < kk; k++) {
+      var tileCompoments = jpxImage.tiles[k];
+      var tileWidth = tileCompoments[0].width;
+      var tileHeight = tileCompoments[0].height;
+      var tileLeft = tileCompoments[0].left;
+      var tileTop = tileCompoments[0].top;
+
+      var dataPosition, sourcePosition, data0, data1, data2, data3, rowFeed;
+      switch (componentsCount) {
+        case 1:
+          data0 = tileCompoments[0].items;
+
+          dataPosition = width * tileTop + tileLeft;
+          rowFeed = width - tileWidth;
+          sourcePosition = 0;
+          for (var j = 0; j < tileHeight; j++) {
+            for (var i = 0; i < tileWidth; i++)
+              data[dataPosition++] = data0[sourcePosition++];
+            dataPosition += rowFeed;
+          }
+          break;
+        case 3:
+          data0 = tileCompoments[0].items;
+          data1 = tileCompoments[1].items;
+          data2 = tileCompoments[2].items;
+
+          dataPosition = (width * tileTop + tileLeft) * 3;
+          rowFeed = (width - tileWidth) * 3;
+          sourcePosition = 0;
+          for (var j = 0; j < tileHeight; j++) {
+            for (var i = 0; i < tileWidth; i++) {
+              data[dataPosition++] = data0[sourcePosition];
+              data[dataPosition++] = data1[sourcePosition];
+              data[dataPosition++] = data2[sourcePosition];
+              sourcePosition++;
+            }
+            dataPosition += rowFeed;
+          }
+          break;
+        case 4:
+          data0 = tileCompoments[0].items;
+          data1 = tileCompoments[1].items;
+          data2 = tileCompoments[2].items;
+          data3 = tileCompoments[3].items;
+
+          dataPosition = (width * tileTop + tileLeft) * 4;
+          rowFeed = (width - tileWidth) * 4;
+          sourcePosition = 0;
+          for (var j = 0; j < tileHeight; j++) {
+            for (var i = 0; i < tileWidth; i++) {
+              data[dataPosition++] = data0[sourcePosition];
+              data[dataPosition++] = data1[sourcePosition];
+              data[dataPosition++] = data2[sourcePosition];
+              data[dataPosition++] = data3[sourcePosition];
+              sourcePosition++;
+            }
+            dataPosition += rowFeed;
+          }
+          break;
+      }
+    }
+
+    this.buffer = data;
+    this.bufferLength = data.length;
+  };
+  JpxStream.prototype.getChar = function JpxStream_getChar() {
+    error('internal error: getChar is not valid on JpxStream');
+  };
+
+  return JpxStream;
+})();
+
+var DecryptStream = (function DecryptStreamClosure() {
+  function DecryptStream(str, decrypt) {
+    this.str = str;
+    this.dict = str.dict;
+    this.decrypt = decrypt;
+
+    DecodeStream.call(this);
+  }
+
+  var chunkSize = 512;
+
+  DecryptStream.prototype = Object.create(DecodeStream.prototype);
+
+  DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {
+    var chunk = this.str.getBytes(chunkSize);
+    if (!chunk || chunk.length == 0) {
+      this.eof = true;
+      return;
+    }
+    var decrypt = this.decrypt;
+    chunk = decrypt(chunk);
+
+    var bufferLength = this.bufferLength;
+    var i, n = chunk.length;
+    var buffer = this.ensureBuffer(bufferLength + n);
+    for (i = 0; i < n; i++)
+      buffer[bufferLength++] = chunk[i];
+    this.bufferLength = bufferLength;
+  };
+
+  return DecryptStream;
+})();
+
+var Ascii85Stream = (function Ascii85StreamClosure() {
+  function Ascii85Stream(str) {
+    this.str = str;
+    this.dict = str.dict;
+    this.input = new Uint8Array(5);
+
+    DecodeStream.call(this);
+  }
+
+  Ascii85Stream.prototype = Object.create(DecodeStream.prototype);
+
+  Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() {
+    var tildaCode = '~'.charCodeAt(0);
+    var zCode = 'z'.charCodeAt(0);
+    var str = this.str;
+
+    var c = str.getByte();
+    while (Lexer.isSpace(String.fromCharCode(c)))
+      c = str.getByte();
+
+    if (!c || c === tildaCode) {
+      this.eof = true;
+      return;
+    }
+
+    var bufferLength = this.bufferLength, buffer;
+
+    // special code for z
+    if (c == zCode) {
+      buffer = this.ensureBuffer(bufferLength + 4);
+      for (var i = 0; i < 4; ++i)
+        buffer[bufferLength + i] = 0;
+      this.bufferLength += 4;
+    } else {
+      var input = this.input;
+      input[0] = c;
+      for (var i = 1; i < 5; ++i) {
+        c = str.getByte();
+        while (Lexer.isSpace(String.fromCharCode(c)))
+          c = str.getByte();
+
+        input[i] = c;
+
+        if (!c || c == tildaCode)
+          break;
+      }
+      buffer = this.ensureBuffer(bufferLength + i - 1);
+      this.bufferLength += i - 1;
+
+      // partial ending;
+      if (i < 5) {
+        for (; i < 5; ++i)
+          input[i] = 0x21 + 84;
+        this.eof = true;
+      }
+      var t = 0;
+      for (var i = 0; i < 5; ++i)
+        t = t * 85 + (input[i] - 0x21);
+
+      for (var i = 3; i >= 0; --i) {
+        buffer[bufferLength + i] = t & 0xFF;
+        t >>= 8;
+      }
+    }
+  };
+
+  return Ascii85Stream;
+})();
+
+var AsciiHexStream = (function AsciiHexStreamClosure() {
+  function AsciiHexStream(str) {
+    this.str = str;
+    this.dict = str.dict;
+
+    DecodeStream.call(this);
+  }
+
+  var hexvalueMap = {
+      9: -1, // \t
+      32: -1, // space
+      48: 0,
+      49: 1,
+      50: 2,
+      51: 3,
+      52: 4,
+      53: 5,
+      54: 6,
+      55: 7,
+      56: 8,
+      57: 9,
+      65: 10,
+      66: 11,
+      67: 12,
+      68: 13,
+      69: 14,
+      70: 15,
+      97: 10,
+      98: 11,
+      99: 12,
+      100: 13,
+      101: 14,
+      102: 15
+  };
+
+  AsciiHexStream.prototype = Object.create(DecodeStream.prototype);
+
+  AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() {
+    var gtCode = '>'.charCodeAt(0), bytes = this.str.getBytes(), c, n,
+        decodeLength, buffer, bufferLength, i, length;
+
+    decodeLength = (bytes.length + 1) >> 1;
+    buffer = this.ensureBuffer(this.bufferLength + decodeLength);
+    bufferLength = this.bufferLength;
+
+    for (i = 0, length = bytes.length; i < length; i++) {
+      c = hexvalueMap[bytes[i]];
+      while (c == -1 && (i + 1) < length) {
+        c = hexvalueMap[bytes[++i]];
+      }
+
+      if ((i + 1) < length && (bytes[i + 1] !== gtCode)) {
+        n = hexvalueMap[bytes[++i]];
+        buffer[bufferLength++] = c * 16 + n;
+      } else {
+        // EOD marker at an odd number, behave as if a 0 followed the last
+        // digit.
+        if (bytes[i] !== gtCode) {
+          buffer[bufferLength++] = c * 16;
+        }
+      }
+    }
+
+    this.bufferLength = bufferLength;
+    this.eof = true;
+  };
+
+  return AsciiHexStream;
+})();
+
+var RunLengthStream = (function RunLengthStreamClosure() {
+  function RunLengthStream(str) {
+    this.str = str;
+    this.dict = str.dict;
+
+    DecodeStream.call(this);
+  }
+
+  RunLengthStream.prototype = Object.create(DecodeStream.prototype);
+
+  RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {
+    // The repeatHeader has following format. The first byte defines type of run
+    // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes
+    // (in addition to the second byte from the header), n = 129 through 255 -
+    // duplicate the second byte from the header (257 - n) times, n = 128 - end.
+    var repeatHeader = this.str.getBytes(2);
+    if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] == 128) {
+      this.eof = true;
+      return;
+    }
+
+    var bufferLength = this.bufferLength;
+    var n = repeatHeader[0];
+    if (n < 128) {
+      // copy n bytes
+      var buffer = this.ensureBuffer(bufferLength + n + 1);
+      buffer[bufferLength++] = repeatHeader[1];
+      if (n > 0) {
+        var source = this.str.getBytes(n);
+        buffer.set(source, bufferLength);
+        bufferLength += n;
+      }
+    } else {
+      n = 257 - n;
+      var b = repeatHeader[1];
+      var buffer = this.ensureBuffer(bufferLength + n + 1);
+      for (var i = 0; i < n; i++)
+        buffer[bufferLength++] = b;
+    }
+    this.bufferLength = bufferLength;
+  };
+
+  return RunLengthStream;
+})();
+
+var CCITTFaxStream = (function CCITTFaxStreamClosure() {
+
+  var ccittEOL = -2;
+  var twoDimPass = 0;
+  var twoDimHoriz = 1;
+  var twoDimVert0 = 2;
+  var twoDimVertR1 = 3;
+  var twoDimVertL1 = 4;
+  var twoDimVertR2 = 5;
+  var twoDimVertL2 = 6;
+  var twoDimVertR3 = 7;
+  var twoDimVertL3 = 8;
+
+  var twoDimTable = [
+    [-1, -1], [-1, -1],                   // 000000x
+    [7, twoDimVertL3],                    // 0000010
+    [7, twoDimVertR3],                    // 0000011
+    [6, twoDimVertL2], [6, twoDimVertL2], // 000010x
+    [6, twoDimVertR2], [6, twoDimVertR2], // 000011x
+    [4, twoDimPass], [4, twoDimPass],     // 0001xxx
+    [4, twoDimPass], [4, twoDimPass],
+    [4, twoDimPass], [4, twoDimPass],
+    [4, twoDimPass], [4, twoDimPass],
+    [3, twoDimHoriz], [3, twoDimHoriz],   // 001xxxx
+    [3, twoDimHoriz], [3, twoDimHoriz],
+    [3, twoDimHoriz], [3, twoDimHoriz],
+    [3, twoDimHoriz], [3, twoDimHoriz],
+    [3, twoDimHoriz], [3, twoDimHoriz],
+    [3, twoDimHoriz], [3, twoDimHoriz],
+    [3, twoDimHoriz], [3, twoDimHoriz],
+    [3, twoDimHoriz], [3, twoDimHoriz],
+    [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx
+    [3, twoDimVertL1], [3, twoDimVertL1],
+    [3, twoDimVertL1], [3, twoDimVertL1],
+    [3, twoDimVertL1], [3, twoDimVertL1],
+    [3, twoDimVertL1], [3, twoDimVertL1],
+    [3, twoDimVertL1], [3, twoDimVertL1],
+    [3, twoDimVertL1], [3, twoDimVertL1],
+    [3, twoDimVertL1], [3, twoDimVertL1],
+    [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx
+    [3, twoDimVertR1], [3, twoDimVertR1],
+    [3, twoDimVertR1], [3, twoDimVertR1],
+    [3, twoDimVertR1], [3, twoDimVertR1],
+    [3, twoDimVertR1], [3, twoDimVertR1],
+    [3, twoDimVertR1], [3, twoDimVertR1],
+    [3, twoDimVertR1], [3, twoDimVertR1],
+    [3, twoDimVertR1], [3, twoDimVertR1],
+    [1, twoDimVert0], [1, twoDimVert0],   // 1xxxxxx
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0],
+    [1, twoDimVert0], [1, twoDimVert0]
+  ];
+
+  var whiteTable1 = [
+    [-1, -1],                               // 00000
+    [12, ccittEOL],                         // 00001
+    [-1, -1], [-1, -1],                     // 0001x
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx
+    [11, 1792], [11, 1792],                 // 1000x
+    [12, 1984],                             // 10010
+    [12, 2048],                             // 10011
+    [12, 2112],                             // 10100
+    [12, 2176],                             // 10101
+    [12, 2240],                             // 10110
+    [12, 2304],                             // 10111
+    [11, 1856], [11, 1856],                 // 1100x
+    [11, 1920], [11, 1920],                 // 1101x
+    [12, 2368],                             // 11100
+    [12, 2432],                             // 11101
+    [12, 2496],                             // 11110
+    [12, 2560]                              // 11111
+  ];
+
+  var whiteTable2 = [
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1],     // 0000000xx
+    [8, 29], [8, 29],                           // 00000010x
+    [8, 30], [8, 30],                           // 00000011x
+    [8, 45], [8, 45],                           // 00000100x
+    [8, 46], [8, 46],                           // 00000101x
+    [7, 22], [7, 22], [7, 22], [7, 22],         // 0000011xx
+    [7, 23], [7, 23], [7, 23], [7, 23],         // 0000100xx
+    [8, 47], [8, 47],                           // 00001010x
+    [8, 48], [8, 48],                           // 00001011x
+    [6, 13], [6, 13], [6, 13], [6, 13],         // 000011xxx
+    [6, 13], [6, 13], [6, 13], [6, 13],
+    [7, 20], [7, 20], [7, 20], [7, 20],         // 0001000xx
+    [8, 33], [8, 33],                           // 00010010x
+    [8, 34], [8, 34],                           // 00010011x
+    [8, 35], [8, 35],                           // 00010100x
+    [8, 36], [8, 36],                           // 00010101x
+    [8, 37], [8, 37],                           // 00010110x
+    [8, 38], [8, 38],                           // 00010111x
+    [7, 19], [7, 19], [7, 19], [7, 19],         // 0001100xx
+    [8, 31], [8, 31],                           // 00011010x
+    [8, 32], [8, 32],                           // 00011011x
+    [6, 1], [6, 1], [6, 1], [6, 1],             // 000111xxx
+    [6, 1], [6, 1], [6, 1], [6, 1],
+    [6, 12], [6, 12], [6, 12], [6, 12],         // 001000xxx
+    [6, 12], [6, 12], [6, 12], [6, 12],
+    [8, 53], [8, 53],                           // 00100100x
+    [8, 54], [8, 54],                           // 00100101x
+    [7, 26], [7, 26], [7, 26], [7, 26],         // 0010011xx
+    [8, 39], [8, 39],                           // 00101000x
+    [8, 40], [8, 40],                           // 00101001x
+    [8, 41], [8, 41],                           // 00101010x
+    [8, 42], [8, 42],                           // 00101011x
+    [8, 43], [8, 43],                           // 00101100x
+    [8, 44], [8, 44],                           // 00101101x
+    [7, 21], [7, 21], [7, 21], [7, 21],         // 0010111xx
+    [7, 28], [7, 28], [7, 28], [7, 28],         // 0011000xx
+    [8, 61], [8, 61],                           // 00110010x
+    [8, 62], [8, 62],                           // 00110011x
+    [8, 63], [8, 63],                           // 00110100x
+    [8, 0], [8, 0],                             // 00110101x
+    [8, 320], [8, 320],                         // 00110110x
+    [8, 384], [8, 384],                         // 00110111x
+    [5, 10], [5, 10], [5, 10], [5, 10],         // 00111xxxx
+    [5, 10], [5, 10], [5, 10], [5, 10],
+    [5, 10], [5, 10], [5, 10], [5, 10],
+    [5, 10], [5, 10], [5, 10], [5, 10],
+    [5, 11], [5, 11], [5, 11], [5, 11],         // 01000xxxx
+    [5, 11], [5, 11], [5, 11], [5, 11],
+    [5, 11], [5, 11], [5, 11], [5, 11],
+    [5, 11], [5, 11], [5, 11], [5, 11],
+    [7, 27], [7, 27], [7, 27], [7, 27],         // 0100100xx
+    [8, 59], [8, 59],                           // 01001010x
+    [8, 60], [8, 60],                           // 01001011x
+    [9, 1472],                                  // 010011000
+    [9, 1536],                                  // 010011001
+    [9, 1600],                                  // 010011010
+    [9, 1728],                                  // 010011011
+    [7, 18], [7, 18], [7, 18], [7, 18],         // 0100111xx
+    [7, 24], [7, 24], [7, 24], [7, 24],         // 0101000xx
+    [8, 49], [8, 49],                           // 01010010x
+    [8, 50], [8, 50],                           // 01010011x
+    [8, 51], [8, 51],                           // 01010100x
+    [8, 52], [8, 52],                           // 01010101x
+    [7, 25], [7, 25], [7, 25], [7, 25],         // 0101011xx
+    [8, 55], [8, 55],                           // 01011000x
+    [8, 56], [8, 56],                           // 01011001x
+    [8, 57], [8, 57],                           // 01011010x
+    [8, 58], [8, 58],                           // 01011011x
+    [6, 192], [6, 192], [6, 192], [6, 192],     // 010111xxx
+    [6, 192], [6, 192], [6, 192], [6, 192],
+    [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx
+    [6, 1664], [6, 1664], [6, 1664], [6, 1664],
+    [8, 448], [8, 448],                         // 01100100x
+    [8, 512], [8, 512],                         // 01100101x
+    [9, 704],                                   // 011001100
+    [9, 768],                                   // 011001101
+    [8, 640], [8, 640],                         // 01100111x
+    [8, 576], [8, 576],                         // 01101000x
+    [9, 832],                                   // 011010010
+    [9, 896],                                   // 011010011
+    [9, 960],                                   // 011010100
+    [9, 1024],                                  // 011010101
+    [9, 1088],                                  // 011010110
+    [9, 1152],                                  // 011010111
+    [9, 1216],                                  // 011011000
+    [9, 1280],                                  // 011011001
+    [9, 1344],                                  // 011011010
+    [9, 1408],                                  // 011011011
+    [7, 256], [7, 256], [7, 256], [7, 256],     // 0110111xx
+    [4, 2], [4, 2], [4, 2], [4, 2],             // 0111xxxxx
+    [4, 2], [4, 2], [4, 2], [4, 2],
+    [4, 2], [4, 2], [4, 2], [4, 2],
+    [4, 2], [4, 2], [4, 2], [4, 2],
+    [4, 2], [4, 2], [4, 2], [4, 2],
+    [4, 2], [4, 2], [4, 2], [4, 2],
+    [4, 2], [4, 2], [4, 2], [4, 2],
+    [4, 2], [4, 2], [4, 2], [4, 2],
+    [4, 3], [4, 3], [4, 3], [4, 3],             // 1000xxxxx
+    [4, 3], [4, 3], [4, 3], [4, 3],
+    [4, 3], [4, 3], [4, 3], [4, 3],
+    [4, 3], [4, 3], [4, 3], [4, 3],
+    [4, 3], [4, 3], [4, 3], [4, 3],
+    [4, 3], [4, 3], [4, 3], [4, 3],
+    [4, 3], [4, 3], [4, 3], [4, 3],
+    [4, 3], [4, 3], [4, 3], [4, 3],
+    [5, 128], [5, 128], [5, 128], [5, 128],     // 10010xxxx
+    [5, 128], [5, 128], [5, 128], [5, 128],
+    [5, 128], [5, 128], [5, 128], [5, 128],
+    [5, 128], [5, 128], [5, 128], [5, 128],
+    [5, 8], [5, 8], [5, 8], [5, 8],             // 10011xxxx
+    [5, 8], [5, 8], [5, 8], [5, 8],
+    [5, 8], [5, 8], [5, 8], [5, 8],
+    [5, 8], [5, 8], [5, 8], [5, 8],
+    [5, 9], [5, 9], [5, 9], [5, 9],             // 10100xxxx
+    [5, 9], [5, 9], [5, 9], [5, 9],
+    [5, 9], [5, 9], [5, 9], [5, 9],
+    [5, 9], [5, 9], [5, 9], [5, 9],
+    [6, 16], [6, 16], [6, 16], [6, 16],         // 101010xxx
+    [6, 16], [6, 16], [6, 16], [6, 16],
+    [6, 17], [6, 17], [6, 17], [6, 17],         // 101011xxx
+    [6, 17], [6, 17], [6, 17], [6, 17],
+    [4, 4], [4, 4], [4, 4], [4, 4],             // 1011xxxxx
+    [4, 4], [4, 4], [4, 4], [4, 4],
+    [4, 4], [4, 4], [4, 4], [4, 4],
+    [4, 4], [4, 4], [4, 4], [4, 4],
+    [4, 4], [4, 4], [4, 4], [4, 4],
+    [4, 4], [4, 4], [4, 4], [4, 4],
+    [4, 4], [4, 4], [4, 4], [4, 4],
+    [4, 4], [4, 4], [4, 4], [4, 4],
+    [4, 5], [4, 5], [4, 5], [4, 5],             // 1100xxxxx
+    [4, 5], [4, 5], [4, 5], [4, 5],
+    [4, 5], [4, 5], [4, 5], [4, 5],
+    [4, 5], [4, 5], [4, 5], [4, 5],
+    [4, 5], [4, 5], [4, 5], [4, 5],
+    [4, 5], [4, 5], [4, 5], [4, 5],
+    [4, 5], [4, 5], [4, 5], [4, 5],
+    [4, 5], [4, 5], [4, 5], [4, 5],
+    [6, 14], [6, 14], [6, 14], [6, 14],         // 110100xxx
+    [6, 14], [6, 14], [6, 14], [6, 14],
+    [6, 15], [6, 15], [6, 15], [6, 15],         // 110101xxx
+    [6, 15], [6, 15], [6, 15], [6, 15],
+    [5, 64], [5, 64], [5, 64], [5, 64],         // 11011xxxx
+    [5, 64], [5, 64], [5, 64], [5, 64],
+    [5, 64], [5, 64], [5, 64], [5, 64],
+    [5, 64], [5, 64], [5, 64], [5, 64],
+    [4, 6], [4, 6], [4, 6], [4, 6],             // 1110xxxxx
+    [4, 6], [4, 6], [4, 6], [4, 6],
+    [4, 6], [4, 6], [4, 6], [4, 6],
+    [4, 6], [4, 6], [4, 6], [4, 6],
+    [4, 6], [4, 6], [4, 6], [4, 6],
+    [4, 6], [4, 6], [4, 6], [4, 6],
+    [4, 6], [4, 6], [4, 6], [4, 6],
+    [4, 6], [4, 6], [4, 6], [4, 6],
+    [4, 7], [4, 7], [4, 7], [4, 7],             // 1111xxxxx
+    [4, 7], [4, 7], [4, 7], [4, 7],
+    [4, 7], [4, 7], [4, 7], [4, 7],
+    [4, 7], [4, 7], [4, 7], [4, 7],
+    [4, 7], [4, 7], [4, 7], [4, 7],
+    [4, 7], [4, 7], [4, 7], [4, 7],
+    [4, 7], [4, 7], [4, 7], [4, 7],
+    [4, 7], [4, 7], [4, 7], [4, 7]
+  ];
+
+  var blackTable1 = [
+    [-1, -1], [-1, -1],                             // 000000000000x
+    [12, ccittEOL], [12, ccittEOL],                 // 000000000001x
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000001xx
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000010xx
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000011xx
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000100xx
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000101xx
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000110xx
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000111xx
+    [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx
+    [12, 1984], [12, 1984],                         // 000000010010x
+    [12, 2048], [12, 2048],                         // 000000010011x
+    [12, 2112], [12, 2112],                         // 000000010100x
+    [12, 2176], [12, 2176],                         // 000000010101x
+    [12, 2240], [12, 2240],                         // 000000010110x
+    [12, 2304], [12, 2304],                         // 000000010111x
+    [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx
+    [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx
+    [12, 2368], [12, 2368],                         // 000000011100x
+    [12, 2432], [12, 2432],                         // 000000011101x
+    [12, 2496], [12, 2496],                         // 000000011110x
+    [12, 2560], [12, 2560],                         // 000000011111x
+    [10, 18], [10, 18], [10, 18], [10, 18],         // 0000001000xxx
+    [10, 18], [10, 18], [10, 18], [10, 18],
+    [12, 52], [12, 52],                             // 000000100100x
+    [13, 640],                                      // 0000001001010
+    [13, 704],                                      // 0000001001011
+    [13, 768],                                      // 0000001001100
+    [13, 832],                                      // 0000001001101
+    [12, 55], [12, 55],                             // 000000100111x
+    [12, 56], [12, 56],                             // 000000101000x
+    [13, 1280],                                     // 0000001010010
+    [13, 1344],                                     // 0000001010011
+    [13, 1408],                                     // 0000001010100
+    [13, 1472],                                     // 0000001010101
+    [12, 59], [12, 59],                             // 000000101011x
+    [12, 60], [12, 60],                             // 000000101100x
+    [13, 1536],                                     // 0000001011010
+    [13, 1600],                                     // 0000001011011
+    [11, 24], [11, 24], [11, 24], [11, 24],         // 00000010111xx
+    [11, 25], [11, 25], [11, 25], [11, 25],         // 00000011000xx
+    [13, 1664],                                     // 0000001100100
+    [13, 1728],                                     // 0000001100101
+    [12, 320], [12, 320],                           // 000000110011x
+    [12, 384], [12, 384],                           // 000000110100x
+    [12, 448], [12, 448],                           // 000000110101x
+    [13, 512],                                      // 0000001101100
+    [13, 576],                                      // 0000001101101
+    [12, 53], [12, 53],                             // 000000110111x
+    [12, 54], [12, 54],                             // 000000111000x
+    [13, 896],                                      // 0000001110010
+    [13, 960],                                      // 0000001110011
+    [13, 1024],                                     // 0000001110100
+    [13, 1088],                                     // 0000001110101
+    [13, 1152],                                     // 0000001110110
+    [13, 1216],                                     // 0000001110111
+    [10, 64], [10, 64], [10, 64], [10, 64],         // 0000001111xxx
+    [10, 64], [10, 64], [10, 64], [10, 64]
+  ];
+
+  var blackTable2 = [
+    [8, 13], [8, 13], [8, 13], [8, 13],     // 00000100xxxx
+    [8, 13], [8, 13], [8, 13], [8, 13],
+    [8, 13], [8, 13], [8, 13], [8, 13],
+    [8, 13], [8, 13], [8, 13], [8, 13],
+    [11, 23], [11, 23],                     // 00000101000x
+    [12, 50],                               // 000001010010
+    [12, 51],                               // 000001010011
+    [12, 44],                               // 000001010100
+    [12, 45],                               // 000001010101
+    [12, 46],                               // 000001010110
+    [12, 47],                               // 000001010111
+    [12, 57],                               // 000001011000
+    [12, 58],                               // 000001011001
+    [12, 61],                               // 000001011010
+    [12, 256],                              // 000001011011
+    [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx
+    [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx
+    [12, 48],                               // 000001100100
+    [12, 49],                               // 000001100101
+    [12, 62],                               // 000001100110
+    [12, 63],                               // 000001100111
+    [12, 30],                               // 000001101000
+    [12, 31],                               // 000001101001
+    [12, 32],                               // 000001101010
+    [12, 33],                               // 000001101011
+    [12, 40],                               // 000001101100
+    [12, 41],                               // 000001101101
+    [11, 22], [11, 22],                     // 00000110111x
+    [8, 14], [8, 14], [8, 14], [8, 14],     // 00000111xxxx
+    [8, 14], [8, 14], [8, 14], [8, 14],
+    [8, 14], [8, 14], [8, 14], [8, 14],
+    [8, 14], [8, 14], [8, 14], [8, 14],
+    [7, 10], [7, 10], [7, 10], [7, 10],     // 0000100xxxxx
+    [7, 10], [7, 10], [7, 10], [7, 10],
+    [7, 10], [7, 10], [7, 10], [7, 10],
+    [7, 10], [7, 10], [7, 10], [7, 10],
+    [7, 10], [7, 10], [7, 10], [7, 10],
+    [7, 10], [7, 10], [7, 10], [7, 10],
+    [7, 10], [7, 10], [7, 10], [7, 10],
+    [7, 10], [7, 10], [7, 10], [7, 10],
+    [7, 11], [7, 11], [7, 11], [7, 11],     // 0000101xxxxx
+    [7, 11], [7, 11], [7, 11], [7, 11],
+    [7, 11], [7, 11], [7, 11], [7, 11],
+    [7, 11], [7, 11], [7, 11], [7, 11],
+    [7, 11], [7, 11], [7, 11], [7, 11],
+    [7, 11], [7, 11], [7, 11], [7, 11],
+    [7, 11], [7, 11], [7, 11], [7, 11],
+    [7, 11], [7, 11], [7, 11], [7, 11],
+    [9, 15], [9, 15], [9, 15], [9, 15],     // 000011000xxx
+    [9, 15], [9, 15], [9, 15], [9, 15],
+    [12, 128],                              // 000011001000
+    [12, 192],                              // 000011001001
+    [12, 26],                               // 000011001010
+    [12, 27],                               // 000011001011
+    [12, 28],                               // 000011001100
+    [12, 29],                               // 000011001101
+    [11, 19], [11, 19],                     // 00001100111x
+    [11, 20], [11, 20],                     // 00001101000x
+    [12, 34],                               // 000011010010
+    [12, 35],                               // 000011010011
+    [12, 36],                               // 000011010100
+    [12, 37],                               // 000011010101
+    [12, 38],                               // 000011010110
+    [12, 39],                               // 000011010111
+    [11, 21], [11, 21],                     // 00001101100x
+    [12, 42],                               // 000011011010
+    [12, 43],                               // 000011011011
+    [10, 0], [10, 0], [10, 0], [10, 0],     // 0000110111xx
+    [7, 12], [7, 12], [7, 12], [7, 12],     // 0000111xxxxx
+    [7, 12], [7, 12], [7, 12], [7, 12],
+    [7, 12], [7, 12], [7, 12], [7, 12],
+    [7, 12], [7, 12], [7, 12], [7, 12],
+    [7, 12], [7, 12], [7, 12], [7, 12],
+    [7, 12], [7, 12], [7, 12], [7, 12],
+    [7, 12], [7, 12], [7, 12], [7, 12],
+    [7, 12], [7, 12], [7, 12], [7, 12]
+  ];
+
+  var blackTable3 = [
+    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx
+    [6, 9],                                 // 000100
+    [6, 8],                                 // 000101
+    [5, 7], [5, 7],                         // 00011x
+    [4, 6], [4, 6], [4, 6], [4, 6],         // 0010xx
+    [4, 5], [4, 5], [4, 5], [4, 5],         // 0011xx
+    [3, 1], [3, 1], [3, 1], [3, 1],         // 010xxx
+    [3, 1], [3, 1], [3, 1], [3, 1],
+    [3, 4], [3, 4], [3, 4], [3, 4],         // 011xxx
+    [3, 4], [3, 4], [3, 4], [3, 4],
+    [2, 3], [2, 3], [2, 3], [2, 3],         // 10xxxx
+    [2, 3], [2, 3], [2, 3], [2, 3],
+    [2, 3], [2, 3], [2, 3], [2, 3],
+    [2, 3], [2, 3], [2, 3], [2, 3],
+    [2, 2], [2, 2], [2, 2], [2, 2],         // 11xxxx
+    [2, 2], [2, 2], [2, 2], [2, 2],
+    [2, 2], [2, 2], [2, 2], [2, 2],
+    [2, 2], [2, 2], [2, 2], [2, 2]
+  ];
+
+  function CCITTFaxStream(str, params) {
+    this.str = str;
+    this.dict = str.dict;
+
+    params = params || new Dict();
+
+    this.encoding = params.get('K') || 0;
+    this.eoline = params.get('EndOfLine') || false;
+    this.byteAlign = params.get('EncodedByteAlign') || false;
+    this.columns = params.get('Columns') || 1728;
+    this.rows = params.get('Rows') || 0;
+    var eoblock = params.get('EndOfBlock');
+    if (eoblock == null)
+      eoblock = true;
+    this.eoblock = eoblock;
+    this.black = params.get('BlackIs1') || false;
+
+    this.codingLine = new Uint32Array(this.columns + 1);
+    this.refLine = new Uint32Array(this.columns + 2);
+
+    this.codingLine[0] = this.columns;
+    this.codingPos = 0;
+
+    this.row = 0;
+    this.nextLine2D = this.encoding < 0;
+    this.inputBits = 0;
+    this.inputBuf = 0;
+    this.outputBits = 0;
+    this.buf = EOF;
+
+    var code1;
+    while ((code1 = this.lookBits(12)) == 0) {
+      this.eatBits(1);
+    }
+    if (code1 == 1) {
+      this.eatBits(12);
+    }
+    if (this.encoding > 0) {
+      this.nextLine2D = !this.lookBits(1);
+      this.eatBits(1);
+    }
+
+    DecodeStream.call(this);
+  }
+
+  CCITTFaxStream.prototype = Object.create(DecodeStream.prototype);
+
+  CCITTFaxStream.prototype.readBlock = function CCITTFaxStream_readBlock() {
+    while (!this.eof) {
+      var c = this.lookChar();
+      this.buf = EOF;
+      this.ensureBuffer(this.bufferLength + 1);
+      this.buffer[this.bufferLength++] = c;
+    }
+  };
+
+  CCITTFaxStream.prototype.addPixels =
+    function ccittFaxStreamAddPixels(a1, blackPixels) {
+    var codingLine = this.codingLine;
+    var codingPos = this.codingPos;
+
+    if (a1 > codingLine[codingPos]) {
+      if (a1 > this.columns) {
+        warn('row is wrong length');
+        this.err = true;
+        a1 = this.columns;
+      }
+      if ((codingPos & 1) ^ blackPixels) {
+        ++codingPos;
+      }
+
+      codingLine[codingPos] = a1;
+    }
+    this.codingPos = codingPos;
+  };
+
+  CCITTFaxStream.prototype.addPixelsNeg =
+    function ccittFaxStreamAddPixelsNeg(a1, blackPixels) {
+    var codingLine = this.codingLine;
+    var codingPos = this.codingPos;
+
+    if (a1 > codingLine[codingPos]) {
+      if (a1 > this.columns) {
+        warn('row is wrong length');
+        this.err = true;
+        a1 = this.columns;
+      }
+      if ((codingPos & 1) ^ blackPixels)
+        ++codingPos;
+
+      codingLine[codingPos] = a1;
+    } else if (a1 < codingLine[codingPos]) {
+      if (a1 < 0) {
+        warn('invalid code');
+        this.err = true;
+        a1 = 0;
+      }
+      while (codingPos > 0 && a1 < codingLine[codingPos - 1])
+        --codingPos;
+      codingLine[codingPos] = a1;
+    }
+
+    this.codingPos = codingPos;
+  };
+
+  CCITTFaxStream.prototype.lookChar = function CCITTFaxStream_lookChar() {
+    if (this.buf != EOF)
+      return this.buf;
+
+    var refLine = this.refLine;
+    var codingLine = this.codingLine;
+    var columns = this.columns;
+
+    var refPos, blackPixels, bits;
+
+    if (this.outputBits == 0) {
+      if (this.eof)
+        return null;
+
+      this.err = false;
+
+      var code1, code2, code3;
+      if (this.nextLine2D) {
+        for (var i = 0; codingLine[i] < columns; ++i)
+          refLine[i] = codingLine[i];
+
+        refLine[i++] = columns;
+        refLine[i] = columns;
+        codingLine[0] = 0;
+        this.codingPos = 0;
+        refPos = 0;
+        blackPixels = 0;
+
+        while (codingLine[this.codingPos] < columns) {
+          code1 = this.getTwoDimCode();
+          switch (code1) {
+            case twoDimPass:
+              this.addPixels(refLine[refPos + 1], blackPixels);
+              if (refLine[refPos + 1] < columns)
+                refPos += 2;
+              break;
+            case twoDimHoriz:
+              code1 = code2 = 0;
+              if (blackPixels) {
+                do {
+                  code1 += (code3 = this.getBlackCode());
+                } while (code3 >= 64);
+                do {
+                  code2 += (code3 = this.getWhiteCode());
+                } while (code3 >= 64);
+              } else {
+                do {
+                  code1 += (code3 = this.getWhiteCode());
+                } while (code3 >= 64);
+                do {
+                  code2 += (code3 = this.getBlackCode());
+                } while (code3 >= 64);
+              }
+              this.addPixels(codingLine[this.codingPos] +
+                             code1, blackPixels);
+              if (codingLine[this.codingPos] < columns) {
+                this.addPixels(codingLine[this.codingPos] + code2,
+                               blackPixels ^ 1);
+              }
+              while (refLine[refPos] <= codingLine[this.codingPos] &&
+                     refLine[refPos] < columns) {
+                refPos += 2;
+              }
+              break;
+            case twoDimVertR3:
+              this.addPixels(refLine[refPos] + 3, blackPixels);
+              blackPixels ^= 1;
+              if (codingLine[this.codingPos] < columns) {
+                ++refPos;
+                while (refLine[refPos] <= codingLine[this.codingPos] &&
+                       refLine[refPos] < columns)
+                  refPos += 2;
+              }
+              break;
+            case twoDimVertR2:
+              this.addPixels(refLine[refPos] + 2, blackPixels);
+              blackPixels ^= 1;
+              if (codingLine[this.codingPos] < columns) {
+                ++refPos;
+                while (refLine[refPos] <= codingLine[this.codingPos] &&
+                       refLine[refPos] < columns) {
+                  refPos += 2;
+                }
+              }
+              break;
+            case twoDimVertR1:
+              this.addPixels(refLine[refPos] + 1, blackPixels);
+              blackPixels ^= 1;
+              if (codingLine[this.codingPos] < columns) {
+                ++refPos;
+                while (refLine[refPos] <= codingLine[this.codingPos] &&
+                       refLine[refPos] < columns)
+                  refPos += 2;
+              }
+              break;
+            case twoDimVert0:
+              this.addPixels(refLine[refPos], blackPixels);
+              blackPixels ^= 1;
+              if (codingLine[this.codingPos] < columns) {
+                ++refPos;
+                while (refLine[refPos] <= codingLine[this.codingPos] &&
+                       refLine[refPos] < columns)
+                  refPos += 2;
+              }
+              break;
+            case twoDimVertL3:
+              this.addPixelsNeg(refLine[refPos] - 3, blackPixels);
+              blackPixels ^= 1;
+              if (codingLine[this.codingPos] < columns) {
+                if (refPos > 0)
+                  --refPos;
+                else
+                  ++refPos;
+                while (refLine[refPos] <= codingLine[this.codingPos] &&
+                       refLine[refPos] < columns)
+                  refPos += 2;
+              }
+              break;
+            case twoDimVertL2:
+              this.addPixelsNeg(refLine[refPos] - 2, blackPixels);
+              blackPixels ^= 1;
+              if (codingLine[this.codingPos] < columns) {
+                if (refPos > 0)
+                  --refPos;
+                else
+                  ++refPos;
+                while (refLine[refPos] <= codingLine[this.codingPos] &&
+                       refLine[refPos] < columns)
+                  refPos += 2;
+              }
+              break;
+            case twoDimVertL1:
+              this.addPixelsNeg(refLine[refPos] - 1, blackPixels);
+              blackPixels ^= 1;
+              if (codingLine[this.codingPos] < columns) {
+                if (refPos > 0)
+                  --refPos;
+                else
+                  ++refPos;
+
+                while (refLine[refPos] <= codingLine[this.codingPos] &&
+                       refLine[refPos] < columns)
+                  refPos += 2;
+              }
+              break;
+            case EOF:
+              this.addPixels(columns, 0);
+              this.eof = true;
+              break;
+            default:
+              warn('bad 2d code');
+              this.addPixels(columns, 0);
+              this.err = true;
+          }
+        }
+      } else {
+        codingLine[0] = 0;
+        this.codingPos = 0;
+        blackPixels = 0;
+        while (codingLine[this.codingPos] < columns) {
+          code1 = 0;
+          if (blackPixels) {
+            do {
+              code1 += (code3 = this.getBlackCode());
+            } while (code3 >= 64);
+          } else {
+            do {
+              code1 += (code3 = this.getWhiteCode());
+            } while (code3 >= 64);
+          }
+          this.addPixels(codingLine[this.codingPos] + code1, blackPixels);
+          blackPixels ^= 1;
+        }
+      }
+
+      if (this.byteAlign)
+        this.inputBits &= ~7;
+
+      var gotEOL = false;
+
+      if (!this.eoblock && this.row == this.rows - 1) {
+        this.eof = true;
+      } else {
+        code1 = this.lookBits(12);
+        while (code1 == 0) {
+          this.eatBits(1);
+          code1 = this.lookBits(12);
+        }
+        if (code1 == 1) {
+          this.eatBits(12);
+          gotEOL = true;
+        } else if (code1 == EOF) {
+          this.eof = true;
+        }
+      }
+
+      if (!this.eof && this.encoding > 0) {
+        this.nextLine2D = !this.lookBits(1);
+        this.eatBits(1);
+      }
+
+      if (this.eoblock && gotEOL) {
+        code1 = this.lookBits(12);
+        if (code1 == 1) {
+          this.eatBits(12);
+          if (this.encoding > 0) {
+            this.lookBits(1);
+            this.eatBits(1);
+          }
+          if (this.encoding >= 0) {
+            for (var i = 0; i < 4; ++i) {
+              code1 = this.lookBits(12);
+              if (code1 != 1)
+                warn('bad rtc code: ' + code1);
+              this.eatBits(12);
+              if (this.encoding > 0) {
+                this.lookBits(1);
+                this.eatBits(1);
+              }
+            }
+          }
+          this.eof = true;
+        }
+      } else if (this.err && this.eoline) {
+        while (true) {
+          code1 = this.lookBits(13);
+          if (code1 == EOF) {
+            this.eof = true;
+            return null;
+          }
+          if ((code1 >> 1) == 1) {
+            break;
+          }
+          this.eatBits(1);
+        }
+        this.eatBits(12);
+        if (this.encoding > 0) {
+          this.eatBits(1);
+          this.nextLine2D = !(code1 & 1);
+        }
+      }
+
+      if (codingLine[0] > 0)
+        this.outputBits = codingLine[this.codingPos = 0];
+      else
+        this.outputBits = codingLine[this.codingPos = 1];
+      this.row++;
+    }
+
+    if (this.outputBits >= 8) {
+      this.buf = (this.codingPos & 1) ? 0 : 0xFF;
+      this.outputBits -= 8;
+      if (this.outputBits == 0 && codingLine[this.codingPos] < columns) {
+        this.codingPos++;
+        this.outputBits = (codingLine[this.codingPos] -
+                           codingLine[this.codingPos - 1]);
+      }
+    } else {
+      var bits = 8;
+      this.buf = 0;
+      do {
+        if (this.outputBits > bits) {
+          this.buf <<= bits;
+          if (!(this.codingPos & 1)) {
+            this.buf |= 0xFF >> (8 - bits);
+          }
+          this.outputBits -= bits;
+          bits = 0;
+        } else {
+          this.buf <<= this.outputBits;
+          if (!(this.codingPos & 1)) {
+            this.buf |= 0xFF >> (8 - this.outputBits);
+          }
+          bits -= this.outputBits;
+          this.outputBits = 0;
+          if (codingLine[this.codingPos] < columns) {
+            this.codingPos++;
+            this.outputBits = (codingLine[this.codingPos] -
+                               codingLine[this.codingPos - 1]);
+          } else if (bits > 0) {
+            this.buf <<= bits;
+            bits = 0;
+          }
+        }
+      } while (bits);
+    }
+    if (this.black) {
+      this.buf ^= 0xFF;
+    }
+    return this.buf;
+  };
+
+  // This functions returns the code found from the table.
+  // The start and end parameters set the boundaries for searching the table.
+  // The limit parameter is optional. Function returns an array with three
+  // values. The first array element indicates whether a valid code is being
+  // returned. The second array element is the actual code. The third array
+  // element indicates whether EOF was reached.
+  CCITTFaxStream.prototype.findTableCode =
+    function ccittFaxStreamFindTableCode(start, end, table, limit) {
+
+    var limitValue = limit || 0;
+    for (var i = start; i <= end; ++i) {
+      var code = this.lookBits(i);
+      if (code == EOF)
+        return [true, 1, false];
+      if (i < end)
+        code <<= end - i;
+      if (!limitValue || code >= limitValue) {
+        var p = table[code - limitValue];
+        if (p[0] == i) {
+          this.eatBits(i);
+          return [true, p[1], true];
+        }
+      }
+    }
+    return [false, 0, false];
+  };
+
+  CCITTFaxStream.prototype.getTwoDimCode =
+    function ccittFaxStreamGetTwoDimCode() {
+
+    var code = 0;
+    var p;
+    if (this.eoblock) {
+      code = this.lookBits(7);
+      p = twoDimTable[code];
+      if (p && p[0] > 0) {
+        this.eatBits(p[0]);
+        return p[1];
+      }
+    } else {
+      var result = this.findTableCode(1, 7, twoDimTable);
+      if (result[0] && result[2])
+        return result[1];
+    }
+    warn('Bad two dim code');
+    return EOF;
+  };
+
+  CCITTFaxStream.prototype.getWhiteCode =
+    function ccittFaxStreamGetWhiteCode() {
+
+    var code = 0;
+    var p;
+    var n;
+    if (this.eoblock) {
+      code = this.lookBits(12);
+      if (code == EOF)
+        return 1;
+
+      if ((code >> 5) == 0)
+        p = whiteTable1[code];
+      else
+        p = whiteTable2[code >> 3];
+
+      if (p[0] > 0) {
+        this.eatBits(p[0]);
+        return p[1];
+      }
+    } else {
+      var result = this.findTableCode(1, 9, whiteTable2);
+      if (result[0])
+        return result[1];
+
+      result = this.findTableCode(11, 12, whiteTable1);
+      if (result[0])
+        return result[1];
+    }
+    warn('bad white code');
+    this.eatBits(1);
+    return 1;
+  };
+
+  CCITTFaxStream.prototype.getBlackCode =
+    function ccittFaxStreamGetBlackCode() {
+
+    var code, p;
+    if (this.eoblock) {
+      code = this.lookBits(13);
+      if (code == EOF)
+        return 1;
+      if ((code >> 7) == 0)
+        p = blackTable1[code];
+      else if ((code >> 9) == 0 && (code >> 7) != 0)
+        p = blackTable2[(code >> 1) - 64];
+      else
+        p = blackTable3[code >> 7];
+
+      if (p[0] > 0) {
+        this.eatBits(p[0]);
+        return p[1];
+      }
+    } else {
+      var result = this.findTableCode(2, 6, blackTable3);
+      if (result[0])
+        return result[1];
+
+      result = this.findTableCode(7, 12, blackTable2, 64);
+      if (result[0])
+        return result[1];
+
+      result = this.findTableCode(10, 13, blackTable1);
+      if (result[0])
+        return result[1];
+    }
+    warn('bad black code');
+    this.eatBits(1);
+    return 1;
+  };
+
+  CCITTFaxStream.prototype.lookBits = function CCITTFaxStream_lookBits(n) {
+    var c;
+    while (this.inputBits < n) {
+      if ((c = this.str.getByte()) == null) {
+        if (this.inputBits == 0)
+          return EOF;
+        return ((this.inputBuf << (n - this.inputBits)) &
+                (0xFFFF >> (16 - n)));
+      }
+      this.inputBuf = (this.inputBuf << 8) + c;
+      this.inputBits += 8;
+    }
+    return (this.inputBuf >> (this.inputBits - n)) & (0xFFFF >> (16 - n));
+  };
+
+  CCITTFaxStream.prototype.eatBits = function CCITTFaxStream_eatBits(n) {
+    if ((this.inputBits -= n) < 0)
+      this.inputBits = 0;
+  };
+
+  return CCITTFaxStream;
+})();
+
+var LZWStream = (function LZWStreamClosure() {
+  function LZWStream(str, earlyChange) {
+    this.str = str;
+    this.dict = str.dict;
+    this.cachedData = 0;
+    this.bitsCached = 0;
+
+    var maxLzwDictionarySize = 4096;
+    var lzwState = {
+      earlyChange: earlyChange,
+      codeLength: 9,
+      nextCode: 258,
+      dictionaryValues: new Uint8Array(maxLzwDictionarySize),
+      dictionaryLengths: new Uint16Array(maxLzwDictionarySize),
+      dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),
+      currentSequence: new Uint8Array(maxLzwDictionarySize),
+      currentSequenceLength: 0
+    };
+    for (var i = 0; i < 256; ++i) {
+      lzwState.dictionaryValues[i] = i;
+      lzwState.dictionaryLengths[i] = 1;
+    }
+    this.lzwState = lzwState;
+
+    DecodeStream.call(this);
+  }
+
+  LZWStream.prototype = Object.create(DecodeStream.prototype);
+
+  LZWStream.prototype.readBits = function LZWStream_readBits(n) {
+    var bitsCached = this.bitsCached;
+    var cachedData = this.cachedData;
+    while (bitsCached < n) {
+      var c = this.str.getByte();
+      if (c == null) {
+        this.eof = true;
+        return null;
+      }
+      cachedData = (cachedData << 8) | c;
+      bitsCached += 8;
+    }
+    this.bitsCached = (bitsCached -= n);
+    this.cachedData = cachedData;
+    this.lastCode = null;
+    return (cachedData >>> bitsCached) & ((1 << n) - 1);
+  };
+
+  LZWStream.prototype.readBlock = function LZWStream_readBlock() {
+    var blockSize = 512;
+    var estimatedDecodedSize = blockSize * 2, decodedSizeDelta = blockSize;
+    var i, j, q;
+
+    var lzwState = this.lzwState;
+    if (!lzwState)
+      return; // eof was found
+
+    var earlyChange = lzwState.earlyChange;
+    var nextCode = lzwState.nextCode;
+    var dictionaryValues = lzwState.dictionaryValues;
+    var dictionaryLengths = lzwState.dictionaryLengths;
+    var dictionaryPrevCodes = lzwState.dictionaryPrevCodes;
+    var codeLength = lzwState.codeLength;
+    var prevCode = lzwState.prevCode;
+    var currentSequence = lzwState.currentSequence;
+    var currentSequenceLength = lzwState.currentSequenceLength;
+
+    var decodedLength = 0;
+    var currentBufferLength = this.bufferLength;
+    var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);
+
+    for (i = 0; i < blockSize; i++) {
+      var code = this.readBits(codeLength);
+      var hasPrev = currentSequenceLength > 0;
+      if (code < 256) {
+        currentSequence[0] = code;
+        currentSequenceLength = 1;
+      } else if (code >= 258) {
+        if (code < nextCode) {
+          currentSequenceLength = dictionaryLengths[code];
+          for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {
+            currentSequence[j] = dictionaryValues[q];
+            q = dictionaryPrevCodes[q];
+          }
+        } else {
+          currentSequence[currentSequenceLength++] = currentSequence[0];
+        }
+      } else if (code == 256) {
+        codeLength = 9;
+        nextCode = 258;
+        currentSequenceLength = 0;
+        continue;
+      } else {
+        this.eof = true;
+        delete this.lzwState;
+        break;
+      }
+
+      if (hasPrev) {
+        dictionaryPrevCodes[nextCode] = prevCode;
+        dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;
+        dictionaryValues[nextCode] = currentSequence[0];
+        nextCode++;
+        codeLength = (nextCode + earlyChange) & (nextCode + earlyChange - 1) ?
+          codeLength : Math.min(Math.log(nextCode + earlyChange) /
+          0.6931471805599453 + 1, 12) | 0;
+      }
+      prevCode = code;
+
+      decodedLength += currentSequenceLength;
+      if (estimatedDecodedSize < decodedLength) {
+        do {
+          estimatedDecodedSize += decodedSizeDelta;
+        } while (estimatedDecodedSize < decodedLength);
+        buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);
+      }
+      for (j = 0; j < currentSequenceLength; j++)
+        buffer[currentBufferLength++] = currentSequence[j];
+    }
+    lzwState.nextCode = nextCode;
+    lzwState.codeLength = codeLength;
+    lzwState.prevCode = prevCode;
+    lzwState.currentSequenceLength = currentSequenceLength;
+
+    this.bufferLength = currentBufferLength;
+  };
+
+  return LZWStream;
+})();
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+function MessageHandler(name, comObj) {
+  this.name = name;
+  this.comObj = comObj;
+  this.callbackIndex = 1;
+  var callbacks = this.callbacks = {};
+  var ah = this.actionHandler = {};
+
+  ah['console_log'] = [function ahConsoleLog(data) {
+      PdfJS_window.console.log.apply(PdfJS_window.console, data);
+  }];
+  ah['console_error'] = [function ahConsoleError(data) {
+      PdfJS_window.console.error.apply(PdfJS_window.console, data);
+  }];
+
+  comObj.onmessage = function messageHandlerComObjOnMessage(event) {
+    var data = event.data;
+    if (data.isReply) {
+      var callbackId = data.callbackId;
+      if (data.callbackId in callbacks) {
+        var callback = callbacks[callbackId];
+        delete callbacks[callbackId];
+        callback(data.data);
+      } else {
+        error('Cannot resolve callback ' + callbackId);
+      }
+    } else if (data.action in ah) {
+      var action = ah[data.action];
+      if (data.callbackId) {
+        var promise = new Promise();
+        promise.then(function(resolvedData) {
+          comObj.postMessage({
+            isReply: true,
+            callbackId: data.callbackId,
+            data: resolvedData
+          });
+        });
+        action[0].call(action[1], data.data, promise);
+      } else {
+        action[0].call(action[1], data.data);
+      }
+    } else {
+      error('Unkown action from worker: ' + data.action);
+    }
+  };
+}
+
+MessageHandler.prototype = {
+  on: function messageHandlerOn(actionName, handler, scope) {
+    var ah = this.actionHandler;
+    if (ah[actionName]) {
+      error('There is already an actionName called "' + actionName + '"');
+    }
+    ah[actionName] = [handler, scope];
+  },
+  /**
+   * Sends a message to the comObj to invoke the action with the supplied data.
+   * @param {String} actionName Action to call.
+   * @param {JSON} data JSON data to send.
+   * @param {function} [callback] Optional callback that will handle a reply.
+   */
+  send: function messageHandlerSend(actionName, data, callback) {
+    var message = {
+      action: actionName,
+      data: data
+    };
+    if (callback) {
+      var callbackId = this.callbackIndex++;
+      this.callbacks[callbackId] = callback;
+      message.callbackId = callbackId;
+    }
+    this.comObj.postMessage(message);
+  }
+};
+
+var WorkerMessageHandler = {
+  setup: function wphSetup(handler) {
+    var pdfModel = null;
+
+    handler.on('test', function wphSetupTest(data) {
+      handler.send('test', data instanceof Uint8Array);
+    });
+
+    handler.on('GetDocRequest', function wphSetupDoc(data) {
+      // Create only the model of the PDFDoc, which is enough for
+      // processing the content of the pdf.
+      pdfModel = new PDFDocument(new Stream(data));
+      var doc = {
+        numPages: pdfModel.numPages,
+        fingerprint: pdfModel.getFingerprint(),
+        destinations: pdfModel.catalog.destinations,
+        outline: pdfModel.catalog.documentOutline,
+        info: pdfModel.getDocumentInfo(),
+        metadata: pdfModel.catalog.metadata
+      };
+      handler.send('GetDoc', {pdfInfo: doc});
+    });
+
+    handler.on('GetPageRequest', function wphSetupGetPage(data) {
+      var pageNumber = data.pageIndex + 1;
+      var pdfPage = pdfModel.getPage(pageNumber);
+      var page = {
+        pageIndex: data.pageIndex,
+        rotate: pdfPage.rotate,
+        ref: pdfPage.ref,
+        view: pdfPage.view
+      };
+      handler.send('GetPage', {pageInfo: page});
+    });
+
+    handler.on('GetAnnotationsRequest', function wphSetupGetAnnotations(data) {
+      var pdfPage = pdfModel.getPage(data.pageIndex + 1);
+      handler.send('GetAnnotations', {
+        pageIndex: data.pageIndex,
+        annotations: pdfPage.getAnnotations()
+      });
+    });
+
+    handler.on('RenderPageRequest', function wphSetupRenderPage(data) {
+      var pageNum = data.pageIndex + 1;
+
+
+      // The following code does quite the same as
+      // Page.prototype.startRendering, but stops at one point and sends the
+      // result back to the main thread.
+      var gfx = new CanvasGraphics(null);
+
+      var start = Date.now();
+
+      var dependency = [];
+      var operatorList = null;
+      try {
+        var page = pdfModel.getPage(pageNum);
+        // Pre compile the pdf page and fetch the fonts/images.
+        operatorList = page.getOperatorList(handler, dependency);
+      } catch (e) {
+        var minimumStackMessage =
+            'worker.js: while trying to getPage() and getOperatorList()';
+
+        // Turn the error into an obj that can be serialized
+        if (typeof e === 'string') {
+          e = {
+            message: e,
+            stack: minimumStackMessage
+          };
+        } else if (typeof e === 'object') {
+          e = {
+            message: e.message || e.toString(),
+            stack: e.stack || minimumStackMessage
+          };
+        } else {
+          e = {
+            message: 'Unknown exception type: ' + (typeof e),
+            stack: minimumStackMessage
+          };
+        }
+
+        handler.send('PageError', {
+          pageNum: pageNum,
+          error: e
+        });
+        return;
+      }
+
+      //comment out as it floods the logcat
+      //PdfJS_window.console.log('page=%d - getOperatorList: time=%dms, len=%d', pageNum,
+      //                        Date.now() - start, operatorList.fnArray.length);
+
+      // Filter the dependecies for fonts.
+      var fonts = {};
+      for (var i = 0, ii = dependency.length; i < ii; i++) {
+        var dep = dependency[i];
+        if (dep.indexOf('font_') == 0) {
+          fonts[dep] = true;
+        }
+      }
+      handler.send('RenderPage', {
+        pageIndex: data.pageIndex,
+        operatorList: operatorList,
+        depFonts: Object.keys(fonts)
+      });
+    }, this);
+  }
+};
+
+var consoleTimer = {};
+
+var workerConsole = {
+  log: function log() {
+    var args = Array.prototype.slice.call(arguments);
+    postMessage({
+      action: 'console_log',
+      data: args
+    });
+  },
+
+  error: function error() {
+    var args = Array.prototype.slice.call(arguments);
+    postMessage({
+      action: 'console_error',
+      data: args
+    });
+    throw 'pdf.js execution error';
+  },
+
+  time: function time(name) {
+    consoleTimer[name] = Date.now();
+  },
+
+  timeEnd: function timeEnd(name) {
+    var time = consoleTimer[name];
+    if (time == null) {
+      error('Unkown timer name ' + name);
+    }
+    this.log('Timer:', name, Date.now() - time);
+  }
+};
+
+// Worker thread?
+if (typeof PdfJS_window.window === 'undefined') {
+  globalScope.console = workerConsole;
+
+  var handler = new MessageHandler('worker_processor', this);
+  WorkerMessageHandler.setup(handler);
+}
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+// - The JPEG specification can be found in the ITU CCITT Recommendation T.81
+//   (www.w3.org/Graphics/JPEG/itu-t81.pdf)
+// - The JFIF specification can be found in the JPEG File Interchange Format
+//   (www.w3.org/Graphics/JPEG/jfif3.pdf)
+// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters
+//   in PostScript Level 2, Technical Note #5116
+//   (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)
+
+var JpegImage = (function jpegImage() {
+  "use strict";
+  var dctZigZag = new Int32Array([
+     0,
+     1,  8,
+    16,  9,  2,
+     3, 10, 17, 24,
+    32, 25, 18, 11, 4,
+     5, 12, 19, 26, 33, 40,
+    48, 41, 34, 27, 20, 13,  6,
+     7, 14, 21, 28, 35, 42, 49, 56,
+    57, 50, 43, 36, 29, 22, 15,
+    23, 30, 37, 44, 51, 58,
+    59, 52, 45, 38, 31,
+    39, 46, 53, 60,
+    61, 54, 47,
+    55, 62,
+    63
+  ]);
+
+  var dctCos1  =  4017   // cos(pi/16)
+  var dctSin1  =   799   // sin(pi/16)
+  var dctCos3  =  3406   // cos(3*pi/16)
+  var dctSin3  =  2276   // sin(3*pi/16)
+  var dctCos6  =  1567   // cos(6*pi/16)
+  var dctSin6  =  3784   // sin(6*pi/16)
+  var dctSqrt2 =  5793   // sqrt(2)
+  var dctSqrt1d2 = 2896  // sqrt(2) / 2
+
+  function constructor() {
+  }
+
+  function buildHuffmanTable(codeLengths, values) {
+    var k = 0, code = [], i, j, length = 16;
+    while (length > 0 && !codeLengths[length - 1])
+      length--;
+    code.push({children: [], index: 0});
+    var p = code[0], q;
+    for (i = 0; i < length; i++) {
+      for (j = 0; j < codeLengths[i]; j++) {
+        p = code.pop();
+        p.children[p.index] = values[k];
+        while (p.index > 0) {
+          p = code.pop();
+        }
+        p.index++;
+        code.push(p);
+        while (code.length <= i) {
+          code.push(q = {children: [], index: 0});
+          p.children[p.index] = q.children;
+          p = q;
+        }
+        k++;
+      }
+      if (i + 1 < length) {
+        // p here points to last code
+        code.push(q = {children: [], index: 0});
+        p.children[p.index] = q.children;
+        p = q;
+      }
+    }
+    return code[0].children;
+  }
+
+  function decodeScan(data, offset,
+                      frame, components, resetInterval,
+                      spectralStart, spectralEnd,
+                      successivePrev, successive) {
+    var precision = frame.precision;
+    var samplesPerLine = frame.samplesPerLine;
+    var scanLines = frame.scanLines;
+    var mcusPerLine = frame.mcusPerLine;
+    var progressive = frame.progressive;
+    var maxH = frame.maxH, maxV = frame.maxV;
+
+    var startOffset = offset, bitsData = 0, bitsCount = 0;
+    function readBit() {
+      if (bitsCount > 0) {
+        bitsCount--;
+        return (bitsData >> bitsCount) & 1;
+      }
+      bitsData = data[offset++];
+      if (bitsData == 0xFF) {
+        var nextByte = data[offset++];
+        if (nextByte) {
+          throw "unexpected marker: " + ((bitsData << 8) | nextByte).toString(16);
+        }
+        // unstuff 0
+      }
+      bitsCount = 7;
+      return bitsData >>> 7;
+    }
+    function decodeHuffman(tree) {
+      var node = tree, bit;
+      while ((bit = readBit()) !== null) {
+        node = node[bit];
+        if (typeof node === 'number')
+          return node;
+        if (typeof node !== 'object')
+          throw "invalid huffman sequence";
+      }
+      return null;
+    }
+    function receive(length) {
+      var n = 0;
+      while (length > 0) {
+        var bit = readBit();
+        if (bit === null) return;
+        n = (n << 1) | bit;
+        length--;
+      }
+      return n;
+    }
+    function receiveAndExtend(length) {
+      var n = receive(length);
+      if (n >= 1 << (length - 1))
+        return n;
+      return n + (-1 << length) + 1;
+    }
+    function decodeBaseline(component, zz) {
+      var t = decodeHuffman(component.huffmanTableDC);
+      var diff = t === 0 ? 0 : receiveAndExtend(t);
+      zz[0]= (component.pred += diff);
+      var k = 1;
+      while (k < 64) {
+        var rs = decodeHuffman(component.huffmanTableAC);
+        var s = rs & 15, r = rs >> 4;
+        if (s === 0) {
+          if (r < 15)
+            break;
+          k += 16;
+          continue;
+        }
+        k += r;
+        var z = dctZigZag[k];
+        zz[z] = receiveAndExtend(s);
+        k++;
+      }
+    }
+    function decodeDCFirst(component, zz) {
+      var t = decodeHuffman(component.huffmanTableDC);
+      var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive);
+      zz[0] = (component.pred += diff);
+    }
+    function decodeDCSuccessive(component, zz) {
+      zz[0] |= readBit() << successive;
+    }
+    var eobrun = 0;
+    function decodeACFirst(component, zz) {
+      if (eobrun > 0) {
+        eobrun--;
+        return;
+      }
+      var k = spectralStart, e = spectralEnd;
+      while (k <= e) {
+        var rs = decodeHuffman(component.huffmanTableAC);
+        var s = rs & 15, r = rs >> 4;
+        if (s === 0) {
+          if (r < 15) {
+            eobrun = receive(r) + (1 << r) - 1;
+            break;
+          }
+          k += 16;
+          continue;
+        }
+        k += r;
+        var z = dctZigZag[k];
+        zz[z] = receiveAndExtend(s) * (1 << successive);
+        k++;
+      }
+    }
+    var successiveACState = 0, successiveACNextValue;
+    function decodeACSuccessive(component, zz) {
+      var k = spectralStart, e = spectralEnd, r = 0;
+      while (k <= e) {
+        var z = dctZigZag[k];
+        switch (successiveACState) {
+        case 0: // initial state
+          var rs = decodeHuffman(component.huffmanTableAC);
+          var s = rs & 15, r = rs >> 4;
+          if (s === 0) {
+            if (r < 15) {
+              eobrun = receive(r) + (1 << r);
+              successiveACState = 4;
+            } else {
+              r = 16;
+              successiveACState = 1;
+            }
+          } else {
+            if (s !== 1)
+              throw "invalid ACn encoding";
+            successiveACNextValue = receiveAndExtend(s);
+            successiveACState = r ? 2 : 3;
+          }
+          continue;
+        case 1: // skipping r zero items
+        case 2:
+          if (zz[z])
+            zz[z] += (readBit() << successive);
+          else {
+            r--;
+            if (r === 0)
+              successiveACState = successiveACState == 2 ? 3 : 0;
+          }
+          break;
+        case 3: // set value for a zero item
+          if (zz[z])
+            zz[z] += (readBit() << successive);
+          else {
+            zz[z] = successiveACNextValue << successive;
+            successiveACState = 0;
+          }
+          break;
+        case 4: // eob
+          if (zz[z])
+            zz[z] += (readBit() << successive);
+          break;
+        }
+        k++;
+      }
+      if (successiveACState === 4) {
+        eobrun--;
+        if (eobrun === 0)
+          successiveACState = 0;
+      }
+    }
+    function decodeMcu(component, decode, mcu, row, col) {
+      var mcuRow = (mcu / mcusPerLine) | 0;
+      var mcuCol = mcu % mcusPerLine;
+      var blockRow = mcuRow * component.v + row;
+      var blockCol = mcuCol * component.h + col;
+      decode(component, component.blocks[blockRow][blockCol]);
+    }
+    function decodeBlock(component, decode, mcu) {
+      var blockRow = (mcu / component.blocksPerLine) | 0;
+      var blockCol = mcu % component.blocksPerLine;
+      decode(component, component.blocks[blockRow][blockCol]);
+    }
+
+    var componentsLength = components.length;
+    var component, i, j, k, n;
+    var decodeFn;
+    if (progressive) {
+      if (spectralStart === 0)
+        decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;
+      else
+        decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;
+    } else {
+      decodeFn = decodeBaseline;
+    }
+
+    var mcu = 0, marker;
+    var mcuExpected;
+    if (componentsLength == 1) {
+      mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;
+    } else {
+      mcuExpected = mcusPerLine * frame.mcusPerColumn;
+    }
+    if (!resetInterval) resetInterval = mcuExpected;
+
+    var h, v;
+    while (mcu < mcuExpected) {
+      // reset interval stuff
+      for (i = 0; i < componentsLength; i++)
+        components[i].pred = 0;
+      eobrun = 0;
+
+      if (componentsLength == 1) {
+        component = components[0];
+        for (n = 0; n < resetInterval; n++) {
+          decodeBlock(component, decodeFn, mcu);
+          mcu++;
+        }
+      } else {
+        for (n = 0; n < resetInterval; n++) {
+          for (i = 0; i < componentsLength; i++) {
+            component = components[i];
+            h = component.h;
+            v = component.v;
+            for (j = 0; j < v; j++) {
+              for (k = 0; k < h; k++) {
+                decodeMcu(component, decodeFn, mcu, j, k);
+              }
+            }
+          }
+          mcu++;
+        }
+      }
+
+      // find marker
+      bitsCount = 0;
+      marker = (data[offset] << 8) | data[offset + 1];
+      if (marker <= 0xFF00) {
+        throw "marker was not found";
+      }
+
+      if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx
+        offset += 2;
+      }
+      else
+        break;
+    }
+
+    return offset - startOffset;
+  }
+
+  function buildComponentData(frame, component) {
+    var lines = [];
+    var blocksPerLine = component.blocksPerLine;
+    var blocksPerColumn = component.blocksPerColumn;
+    var samplesPerLine = blocksPerLine << 3;
+    var R = new Int32Array(64), r = new Uint8Array(64);
+
+    // A port of poppler's IDCT method which in turn is taken from:
+    //   Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,
+    //   "Practical Fast 1-D DCT Algorithms with 11 Multiplications",
+    //   IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,
+    //   988-991.
+    function quantizeAndInverse(zz, dataOut, dataIn) {
+      var qt = component.quantizationTable;
+      var v0, v1, v2, v3, v4, v5, v6, v7, t;
+      var p = dataIn;
+      var i;
+
+      // dequant
+      for (i = 0; i < 64; i++)
+        p[i] = zz[i] * qt[i];
+
+      // inverse DCT on rows
+      for (i = 0; i < 8; ++i) {
+        var row = 8 * i;
+
+        // check for all-zero AC coefficients
+        if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 &&
+            p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 &&
+            p[7 + row] == 0) {
+          t = (dctSqrt2 * p[0 + row] + 512) >> 10;
+          p[0 + row] = t;
+          p[1 + row] = t;
+          p[2 + row] = t;
+          p[3 + row] = t;
+          p[4 + row] = t;
+          p[5 + row] = t;
+          p[6 + row] = t;
+          p[7 + row] = t;
+          continue;
+        }
+
+        // stage 4
+        v0 = (dctSqrt2 * p[0 + row] + 128) >> 8;
+        v1 = (dctSqrt2 * p[4 + row] + 128) >> 8;
+        v2 = p[2 + row];
+        v3 = p[6 + row];
+        v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8;
+        v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8;
+        v5 = p[3 + row] << 4;
+        v6 = p[5 + row] << 4;
+
+        // stage 3
+        t = (v0 - v1+ 1) >> 1;
+        v0 = (v0 + v1 + 1) >> 1;
+        v1 = t;
+        t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;
+        v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;
+        v3 = t;
+        t = (v4 - v6 + 1) >> 1;
+        v4 = (v4 + v6 + 1) >> 1;
+        v6 = t;
+        t = (v7 + v5 + 1) >> 1;
+        v5 = (v7 - v5 + 1) >> 1;
+        v7 = t;
+
+        // stage 2
+        t = (v0 - v3 + 1) >> 1;
+        v0 = (v0 + v3 + 1) >> 1;
+        v3 = t;
+        t = (v1 - v2 + 1) >> 1;
+        v1 = (v1 + v2 + 1) >> 1;
+        v2 = t;
+        t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;
+        v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;
+        v7 = t;
+        t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;
+        v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;
+        v6 = t;
+
+        // stage 1
+        p[0 + row] = v0 + v7;
+        p[7 + row] = v0 - v7;
+        p[1 + row] = v1 + v6;
+        p[6 + row] = v1 - v6;
+        p[2 + row] = v2 + v5;
+        p[5 + row] = v2 - v5;
+        p[3 + row] = v3 + v4;
+        p[4 + row] = v3 - v4;
+      }
+
+      // inverse DCT on columns
+      for (i = 0; i < 8; ++i) {
+        var col = i;
+
+        // check for all-zero AC coefficients
+        if (p[1*8 + col] == 0 && p[2*8 + col] == 0 && p[3*8 + col] == 0 &&
+            p[4*8 + col] == 0 && p[5*8 + col] == 0 && p[6*8 + col] == 0 &&
+            p[7*8 + col] == 0) {
+          t = (dctSqrt2 * dataIn[i+0] + 8192) >> 14;
+          p[0*8 + col] = t;
+          p[1*8 + col] = t;
+          p[2*8 + col] = t;
+          p[3*8 + col] = t;
+          p[4*8 + col] = t;
+          p[5*8 + col] = t;
+          p[6*8 + col] = t;
+          p[7*8 + col] = t;
+          continue;
+        }
+
+        // stage 4
+        v0 = (dctSqrt2 * p[0*8 + col] + 2048) >> 12;
+        v1 = (dctSqrt2 * p[4*8 + col] + 2048) >> 12;
+        v2 = p[2*8 + col];
+        v3 = p[6*8 + col];
+        v4 = (dctSqrt1d2 * (p[1*8 + col] - p[7*8 + col]) + 2048) >> 12;
+        v7 = (dctSqrt1d2 * (p[1*8 + col] + p[7*8 + col]) + 2048) >> 12;
+        v5 = p[3*8 + col];
+        v6 = p[5*8 + col];
+
+        // stage 3
+        t = (v0 - v1 + 1) >> 1;
+        v0 = (v0 + v1 + 1) >> 1;
+        v1 = t;
+        t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;
+        v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;
+        v3 = t;
+        t = (v4 - v6 + 1) >> 1;
+        v4 = (v4 + v6 + 1) >> 1;
+        v6 = t;
+        t = (v7 + v5 + 1) >> 1;
+        v5 = (v7 - v5 + 1) >> 1;
+        v7 = t;
+
+        // stage 2
+        t = (v0 - v3 + 1) >> 1;
+        v0 = (v0 + v3 + 1) >> 1;
+        v3 = t;
+        t = (v1 - v2 + 1) >> 1;
+        v1 = (v1 + v2 + 1) >> 1;
+        v2 = t;
+        t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;
+        v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;
+        v7 = t;
+        t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;
+        v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;
+        v6 = t;
+
+        // stage 1
+        p[0*8 + col] = v0 + v7;
+        p[7*8 + col] = v0 - v7;
+        p[1*8 + col] = v1 + v6;
+        p[6*8 + col] = v1 - v6;
+        p[2*8 + col] = v2 + v5;
+        p[5*8 + col] = v2 - v5;
+        p[3*8 + col] = v3 + v4;
+        p[4*8 + col] = v3 - v4;
+      }
+
+      // convert to 8-bit integers
+      for (i = 0; i < 64; ++i) {
+        var sample = 128 + ((p[i] + 8) >> 4);
+        dataOut[i] = sample < 0 ? 0 : sample > 0xFF ? 0xFF : sample;
+      }
+    }
+
+    var i, j;
+    for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {
+      var scanLine = blockRow << 3;
+      for (i = 0; i < 8; i++)
+        lines.push(new Uint8Array(samplesPerLine));
+      for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {
+        quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);
+
+        var offset = 0, sample = blockCol << 3;
+        for (j = 0; j < 8; j++) {
+          var line = lines[scanLine + j];
+          for (i = 0; i < 8; i++)
+            line[sample + i] = r[offset++];
+        }
+      }
+    }
+    return lines;
+  }
+
+  constructor.prototype = {
+    load: function load(path) {
+      var xhr = new PdfJS_window.XMLHttpRequest();
+      xhr.open("GET", path, true);
+      xhr.responseType = "arraybuffer";
+      xhr.onload = (function() {
+        // TODO catch parse error
+        var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);
+        this.parse(data);
+        if (this.onload)
+          this.onload();
+      }).bind(this);
+      xhr.send(null);
+    },
+    parse: function parse(data) {
+      var offset = 0, length = data.length;
+      function readUint16() {
+        var value = (data[offset] << 8) | data[offset + 1];
+        offset += 2;
+        return value;
+      }
+      function readDataBlock() {
+        var length = readUint16();
+        var array = data.subarray(offset, offset + length - 2);
+        offset += array.length;
+        return array;
+      }
+      function prepareComponents(frame) {
+        var maxH = 0, maxV = 0;
+        var component, componentId;
+        for (componentId in frame.components) {
+          if (frame.components.hasOwnProperty(componentId)) {
+            component = frame.components[componentId];
+            if (maxH < component.h) maxH = component.h;
+            if (maxV < component.v) maxV = component.v;
+          }
+        }
+        var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / maxH);
+        var mcusPerColumn = Math.ceil(frame.scanLines / 8 / maxV);
+        for (componentId in frame.components) {
+          if (frame.components.hasOwnProperty(componentId)) {
+            component = frame.components[componentId];
+            var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / maxH);
+            var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines  / 8) * component.v / maxV);
+            var blocksPerLineForMcu = mcusPerLine * component.h;
+            var blocksPerColumnForMcu = mcusPerColumn * component.v;
+            var blocks = [];
+            for (var i = 0; i < blocksPerColumnForMcu; i++) {
+              var row = [];
+              for (var j = 0; j < blocksPerLineForMcu; j++)
+                row.push(new Int32Array(64));
+              blocks.push(row);
+            }
+            component.blocksPerLine = blocksPerLine;
+            component.blocksPerColumn = blocksPerColumn;
+            component.blocks = blocks;
+          }
+        }
+        frame.maxH = maxH;
+        frame.maxV = maxV;
+        frame.mcusPerLine = mcusPerLine;
+        frame.mcusPerColumn = mcusPerColumn;
+      }
+      var jfif = null;
+      var adobe = null;
+      var pixels = null;
+      var frame, resetInterval;
+      var quantizationTables = [], frames = [];
+      var huffmanTablesAC = [], huffmanTablesDC = [];
+      var fileMarker = readUint16();
+      if (fileMarker != 0xFFD8) { // SOI (Start of Image)
+        throw "SOI not found";
+      }
+
+      fileMarker = readUint16();
+      while (fileMarker != 0xFFD9) { // EOI (End of image)
+        var i, j, l;
+        switch(fileMarker) {
+          case 0xFFE0: // APP0 (Application Specific)
+          case 0xFFE1: // APP1
+          case 0xFFE2: // APP2
+          case 0xFFE3: // APP3
+          case 0xFFE4: // APP4
+          case 0xFFE5: // APP5
+          case 0xFFE6: // APP6
+          case 0xFFE7: // APP7
+          case 0xFFE8: // APP8
+          case 0xFFE9: // APP9
+          case 0xFFEA: // APP10
+          case 0xFFEB: // APP11
+          case 0xFFEC: // APP12
+          case 0xFFED: // APP13
+          case 0xFFEE: // APP14
+          case 0xFFEF: // APP15
+          case 0xFFFE: // COM (Comment)
+            var appData = readDataBlock();
+
+            if (fileMarker === 0xFFE0) {
+              if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 &&
+                appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\x00'
+                jfif = {
+                  version: { major: appData[5], minor: appData[6] },
+                  densityUnits: appData[7],
+                  xDensity: (appData[8] << 8) | appData[9],
+                  yDensity: (appData[10] << 8) | appData[11],
+                  thumbWidth: appData[12],
+                  thumbHeight: appData[13],
+                  thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])
+                };
+              }
+            }
+            // TODO APP1 - Exif
+            if (fileMarker === 0xFFEE) {
+              if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F &&
+                appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\x00'
+                adobe = {
+                  version: appData[6],
+                  flags0: (appData[7] << 8) | appData[8],
+                  flags1: (appData[9] << 8) | appData[10],
+                  transformCode: appData[11]
+                };
+              }
+            }
+            break;
+
+          case 0xFFDB: // DQT (Define Quantization Tables)
+            var quantizationTableCount = Math.floor((readUint16() - 2) / 65);
+            for (i = 0; i < quantizationTableCount; i++) {
+              var quantizationTableSpec = data[offset++];
+              var tableData = new Int32Array(64);
+              if ((quantizationTableSpec >> 4) === 0) { // 8 bit values
+                for (j = 0; j < 64; j++) {
+                  var z = dctZigZag[j];
+                  tableData[z] = data[offset++];
+                }
+              } else if ((quantizationTableSpec >> 4) === 1) { //16 bit
+                for (j = 0; j < 64; j++) {
+                  var z = dctZigZag[j];
+                  tableData[z] = readUint16();
+                }
+              } else
+                throw "DQT: invalid table spec";
+              quantizationTables[quantizationTableSpec & 15] = tableData;
+            }
+            break;
+
+          case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)
+          case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT)
+            readUint16(); // skip data length
+            frame = {};
+            frame.progressive = (fileMarker === 0xFFC2);
+            frame.precision = data[offset++];
+            frame.scanLines = readUint16();
+            frame.samplesPerLine = readUint16();
+            frame.components = {};
+            frame.componentsOrder = [];
+            var componentsCount = data[offset++], componentId;
+            var maxH = 0, maxV = 0;
+            for (i = 0; i < componentsCount; i++) {
+              componentId = data[offset];
+              var h = data[offset + 1] >> 4;
+              var v = data[offset + 1] & 15;
+              var qId = data[offset + 2];
+              frame.componentsOrder.push(componentId);
+              frame.components[componentId] = {
+                h: h,
+                v: v,
+                quantizationTable: quantizationTables[qId]
+              };
+              offset += 3;
+            }
+            prepareComponents(frame);
+            frames.push(frame);
+            break;
+
+          case 0xFFC4: // DHT (Define Huffman Tables)
+            var huffmanLength = readUint16();
+            for (i = 2; i < huffmanLength;) {
+              var huffmanTableSpec = data[offset++];
+              var codeLengths = new Uint8Array(16);
+              var codeLengthSum = 0;
+              for (j = 0; j < 16; j++, offset++)
+                codeLengthSum += (codeLengths[j] = data[offset]);
+              var huffmanValues = new Uint8Array(codeLengthSum);
+              for (j = 0; j < codeLengthSum; j++, offset++)
+                huffmanValues[j] = data[offset];
+              i += 17 + codeLengthSum;
+
+              ((huffmanTableSpec >> 4) === 0 ? 
+                huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] =
+                buildHuffmanTable(codeLengths, huffmanValues);
+            }
+            break;
+
+          case 0xFFDD: // DRI (Define Restart Interval)
+            readUint16(); // skip data length
+            resetInterval = readUint16();
+            break;
+
+          case 0xFFDA: // SOS (Start of Scan)
+            var scanLength = readUint16();
+            var selectorsCount = data[offset++];
+            var components = [], component;
+            for (i = 0; i < selectorsCount; i++) {
+              component = frame.components[data[offset++]];
+              var tableSpec = data[offset++];
+              component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];
+              component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];
+              components.push(component);
+            }
+            var spectralStart = data[offset++];
+            var spectralEnd = data[offset++];
+            var successiveApproximation = data[offset++];
+            var processed = decodeScan(data, offset,
+              frame, components, resetInterval,
+              spectralStart, spectralEnd,
+              successiveApproximation >> 4, successiveApproximation & 15);
+            offset += processed;
+            break;
+          default:
+            throw "unknown JPEG marker " + fileMarker.toString(16);
+        }
+        fileMarker = readUint16();
+      }
+      if (frames.length != 1)
+        throw "only single frame JPEGs supported";
+
+      this.width = frame.samplesPerLine;
+      this.height = frame.scanLines;
+      this.jfif = jfif;
+      this.adobe = adobe;
+      this.components = [];
+      for (var i = 0; i < frame.componentsOrder.length; i++) {
+        var component = frame.components[frame.componentsOrder[i]];
+        this.components.push({
+          lines: buildComponentData(frame, component),
+          scaleX: component.h / frame.maxH,
+          scaleY: component.v / frame.maxV
+        });
+      }
+    },
+    getData: function getData(width, height) {
+      function clampTo8bit(a) {
+        return a < 0 ? 0 : a > 255 ? 255 : a;
+      }
+      var scaleX = this.width / width, scaleY = this.height / height;
+
+      var component1, component2, component3, component4;
+      var component1Line, component2Line, component3Line, component4Line;
+      var x, y;
+      var offset = 0;
+      var Y, Cb, Cr, K, C, M, Ye, R, G, B;
+      var colorTransform;
+      var dataLength = width * height * this.components.length;
+      var data = new Uint8Array(dataLength);
+      switch (this.components.length) {
+        case 1:
+          component1 = this.components[0];
+          for (y = 0; y < height; y++) {
+            component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];
+            for (x = 0; x < width; x++) {
+              Y = component1Line[0 | (x * component1.scaleX * scaleX)];
+
+              data[offset++] = Y;
+            }
+          }
+          break;
+        case 3:
+          // The default transform for three components is true
+          colorTransform = true;
+          // The adobe transform marker overrides any previous setting
+          if (this.adobe && this.adobe.transformCode)
+            colorTransform = true;
+          else if (typeof this.colorTransform !== 'undefined')
+            colorTransform = !!this.colorTransform;
+
+          component1 = this.components[0];
+          component2 = this.components[1];
+          component3 = this.components[2];
+          for (y = 0; y < height; y++) {
+            component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];
+            component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];
+            component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)];
+            for (x = 0; x < width; x++) {
+              if (!colorTransform) {
+                R = component1Line[0 | (x * component1.scaleX * scaleX)];
+                G = component2Line[0 | (x * component2.scaleX * scaleX)];
+                B = component3Line[0 | (x * component3.scaleX * scaleX)];
+              } else {
+                Y = component1Line[0 | (x * component1.scaleX * scaleX)];
+                Cb = component2Line[0 | (x * component2.scaleX * scaleX)];
+                Cr = component3Line[0 | (x * component3.scaleX * scaleX)];
+
+                R = clampTo8bit(Y + 1.402 * (Cr - 128));
+                G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));
+                B = clampTo8bit(Y + 1.772 * (Cb - 128));
+              }
+
+              data[offset++] = R;
+              data[offset++] = G;
+              data[offset++] = B;
+            }
+          }
+          break;
+        case 4:
+          if (!this.adobe)
+            throw 'Unsupported color mode (4 components)';
+          // The default transform for four components is false
+          colorTransform = false;
+          // The adobe transform marker overrides any previous setting
+          if (this.adobe && this.adobe.transformCode)
+            colorTransform = true;
+          else if (typeof this.colorTransform !== 'undefined')
+            colorTransform = !!this.colorTransform;
+
+          component1 = this.components[0];
+          component2 = this.components[1];
+          component3 = this.components[2];
+          component4 = this.components[3];
+          for (y = 0; y < height; y++) {
+            component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];
+            component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];
+            component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)];
+            component4Line = component4.lines[0 | (y * component4.scaleY * scaleY)];
+            for (x = 0; x < width; x++) {
+              if (!colorTransform) {
+                C = component1Line[0 | (x * component1.scaleX * scaleX)];
+                M = component2Line[0 | (x * component2.scaleX * scaleX)];
+                Ye = component3Line[0 | (x * component3.scaleX * scaleX)];
+                K = component4Line[0 | (x * component4.scaleX * scaleX)];
+              } else {
+                Y = component1Line[0 | (x * component1.scaleX * scaleX)];
+                Cb = component2Line[0 | (x * component2.scaleX * scaleX)];
+                Cr = component3Line[0 | (x * component3.scaleX * scaleX)];
+                K = component4Line[0 | (x * component4.scaleX * scaleX)];
+
+                C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));
+                M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));
+                Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));
+              }
+              data[offset++] = C;
+              data[offset++] = M;
+              data[offset++] = Ye;
+              data[offset++] = K;
+            }
+          }
+          break;
+        default:
+          throw 'Unsupported color mode';
+      }
+      return data;
+    },
+    copyToImageData: function copyToImageData(imageData) {
+      var width = imageData.width, height = imageData.height;
+      var imageDataArray = imageData.data;
+      var data = this.getData(width, height);
+      var i = 0, j = 0, x, y;
+      var Y, K, C, M, R, G, B;
+      switch (this.components.length) {
+        case 1:
+          for (y = 0; y < height; y++) {
+            for (x = 0; x < width; x++) {
+              Y = data[i++];
+
+              imageDataArray[j++] = Y;
+              imageDataArray[j++] = Y;
+              imageDataArray[j++] = Y;
+              imageDataArray[j++] = 255;
+            }
+          }
+          break;
+        case 3:
+          for (y = 0; y < height; y++) {
+            for (x = 0; x < width; x++) {
+              R = data[i++];
+              G = data[i++];
+              B = data[i++];
+
+              imageDataArray[j++] = R;
+              imageDataArray[j++] = G;
+              imageDataArray[j++] = B;
+              imageDataArray[j++] = 255;
+            }
+          }
+          break;
+        case 4:
+          for (y = 0; y < height; y++) {
+            for (x = 0; x < width; x++) {
+              C = data[i++];
+              M = data[i++];
+              Y = data[i++];
+              K = data[i++];
+
+              R = 255 - clampTo8bit(C * (1 - K / 255) + K);
+              G = 255 - clampTo8bit(M * (1 - K / 255) + K);
+              B = 255 - clampTo8bit(Y * (1 - K / 255) + K);
+
+              imageDataArray[j++] = R;
+              imageDataArray[j++] = G;
+              imageDataArray[j++] = B;
+              imageDataArray[j++] = 255;
+            }
+          }
+          break;
+        default:
+          throw 'Unsupported color mode';
+      }
+    }
+  };
+
+  return constructor;
+})();
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var JpxImage = (function JpxImageClosure() {
+  // Table E.1
+  var SubbandsGainLog2 = {
+    'LL': 0,
+    'LH': 1,
+    'HL': 1,
+    'HH': 2
+  };
+  function JpxImage() {
+    this.failOnCorruptedImage = false;
+  }
+  JpxImage.prototype = {
+    load: function JpxImage_load(url) {
+      var xhr = new PdfJS_window.XMLHttpRequest();
+      xhr.open('GET', url, true);
+      xhr.responseType = 'arraybuffer';
+      xhr.onload = (function() {
+        // TODO catch parse error
+        var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);
+        this.parse(data);
+        if (this.onload)
+          this.onload();
+      }).bind(this);
+      xhr.send(null);
+    },
+    parse: function JpxImage_parse(data) {
+      function ReadUint(data, offset, bytes) {
+        var n = 0;
+        for (var i = 0; i < bytes; i++)
+          n = n * 256 + (data[offset + i] & 0xFF);
+        return n;
+      }
+      var position = 0, length = data.length;
+      while (position < length) {
+        var headerSize = 8;
+        var lbox = ReadUint(data, position, 4);
+        var tbox = ReadUint(data, position + 4, 4);
+        position += headerSize;
+        if (lbox == 1) {
+          lbox = ReadUint(data, position, 8);
+          position += 8;
+          headerSize += 8;
+        }
+        if (lbox == 0)
+          lbox = length - position + headerSize;
+        if (lbox < headerSize)
+          error('JPX error: Invalid box field size');
+        var dataLength = lbox - headerSize;
+        var jumpDataLength = true;
+        switch (tbox) {
+          case 0x6A501A1A: // 'jP\032\032'
+            // TODO
+            break;
+          case 0x6A703268: // 'jp2h'
+            jumpDataLength = false; // parsing child boxes
+            break;
+          case 0x636F6C72: // 'colr'
+            // TODO
+            break;
+          case 0x6A703263: // 'jp2c'
+            this.parseCodestream(data, position, position + dataLength);
+            break;
+        }
+        if (jumpDataLength)
+          position += dataLength;
+      }
+    },
+    parseCodestream: function JpxImage_parseCodestream(data, start, end) {
+      var context = {};
+      try {
+        var position = start;
+        while (position < end) {
+          var code = readUint16(data, position);
+          position += 2;
+
+          var length = 0, j;
+          switch (code) {
+            case 0xFF4F: // Start of codestream (SOC)
+              context.mainHeader = true;
+              break;
+            case 0xFFD9: // End of codestream (EOC)
+              break;
+            case 0xFF51: // Image and tile size (SIZ)
+              length = readUint16(data, position);
+              var siz = {};
+              siz.Xsiz = readUint32(data, position + 4);
+              siz.Ysiz = readUint32(data, position + 8);
+              siz.XOsiz = readUint32(data, position + 12);
+              siz.YOsiz = readUint32(data, position + 16);
+              siz.XTsiz = readUint32(data, position + 20);
+              siz.YTsiz = readUint32(data, position + 24);
+              siz.XTOsiz = readUint32(data, position + 28);
+              siz.YTOsiz = readUint32(data, position + 32);
+              var componentsCount = readUint16(data, position + 36);
+              siz.Csiz = componentsCount;
+              var components = [];
+              j = position + 38;
+              for (var i = 0; i < componentsCount; i++) {
+                var component = {
+                  precision: (data[j] & 0x7F) + 1,
+                  isSigned: !!(data[j] & 0x80),
+                  XRsiz: data[j + 1],
+                  YRsiz: data[j + 1]
+                };
+                calculateComponentDimensions(component, siz);
+                components.push(component);
+              }
+              context.SIZ = siz;
+              context.components = components;
+              calculateTileGrids(context, components);
+              context.QCC = [];
+              context.COC = [];
+              break;
+            case 0xFF5C: // Quantization default (QCD)
+              length = readUint16(data, position);
+              var qcd = {};
+              j = position + 2;
+              var sqcd = data[j++];
+              var spqcdSize, scalarExpounded;
+              switch (sqcd & 0x1F) {
+                case 0:
+                  spqcdSize = 8;
+                  scalarExpounded = true;
+                  break;
+                case 1:
+                  spqcdSize = 16;
+                  scalarExpounded = false;
+                  break;
+                case 2:
+                  spqcdSize = 16;
+                  scalarExpounded = true;
+                  break;
+                default:
+                  throw 'Invalid SQcd value ' + sqcd;
+              }
+              qcd.noQuantization = spqcdSize == 8;
+              qcd.scalarExpounded = scalarExpounded;
+              qcd.guardBits = sqcd >> 5;
+              var spqcds = [];
+              while (j < length + position) {
+                var spqcd = {};
+                if (spqcdSize == 8) {
+                  spqcd.epsilon = data[j++] >> 3;
+                  spqcd.mu = 0;
+                } else {
+                  spqcd.epsilon = data[j] >> 3;
+                  spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];
+                  j += 2;
+                }
+                spqcds.push(spqcd);
+              }
+              qcd.SPqcds = spqcds;
+              if (context.mainHeader)
+                context.QCD = qcd;
+              else {
+                context.currentTile.QCD = qcd;
+                context.currentTile.QCC = [];
+              }
+              break;
+            case 0xFF5D: // Quantization component (QCC)
+              length = readUint16(data, position);
+              var qcc = {};
+              j = position + 2;
+              var cqcc;
+              if (context.SIZ.Csiz < 257)
+                cqcc = data[j++];
+              else {
+                cqcc = readUint16(data, j);
+                j += 2;
+              }
+              var sqcd = data[j++];
+              var spqcdSize, scalarExpounded;
+              switch (sqcd & 0x1F) {
+                case 0:
+                  spqcdSize = 8;
+                  scalarExpounded = true;
+                  break;
+                case 1:
+                  spqcdSize = 16;
+                  scalarExpounded = false;
+                  break;
+                case 2:
+                  spqcdSize = 16;
+                  scalarExpounded = true;
+                  break;
+                default:
+                  throw 'Invalid SQcd value ' + sqcd;
+              }
+              qcc.noQuantization = spqcdSize == 8;
+              qcc.scalarExpounded = scalarExpounded;
+              qcc.guardBits = sqcd >> 5;
+              var spqcds = [];
+              while (j < length + position) {
+                var spqcd = {};
+                if (spqcdSize == 8) {
+                  spqcd.epsilon = data[j++] >> 3;
+                  spqcd.mu = 0;
+                } else {
+                  spqcd.epsilon = data[j] >> 3;
+                  spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];
+                  j += 2;
+                }
+                spqcds.push(spqcd);
+              }
+              qcc.SPqcds = spqcds;
+              if (context.mainHeader)
+                context.QCC[cqcc] = qcc;
+              else
+                context.currentTile.QCC[cqcc] = qcc;
+              break;
+            case 0xFF52: // Coding style default (COD)
+              length = readUint16(data, position);
+              var cod = {};
+              j = position + 2;
+              var scod = data[j++];
+              cod.entropyCoderWithCustomPrecincts = !!(scod & 1);
+              cod.sopMarkerUsed = !!(scod & 2);
+              cod.ephMarkerUsed = !!(scod & 4);
+              var codingStyle = {};
+              cod.progressionOrder = data[j++];
+              cod.layersCount = readUint16(data, j);
+              j += 2;
+              cod.multipleComponentTransform = data[j++];
+
+              cod.decompositionLevelsCount = data[j++];
+              cod.xcb = (data[j++] & 0xF) + 2;
+              cod.ycb = (data[j++] & 0xF) + 2;
+              var blockStyle = data[j++];
+              cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);
+              cod.resetContextProbabilities = !!(blockStyle & 2);
+              cod.terminationOnEachCodingPass = !!(blockStyle & 4);
+              cod.verticalyStripe = !!(blockStyle & 8);
+              cod.predictableTermination = !!(blockStyle & 16);
+              cod.segmentationSymbolUsed = !!(blockStyle & 32);
+              cod.transformation = data[j++];
+              if (cod.entropyCoderWithCustomPrecincts) {
+                var precinctsSizes = {};
+                while (j < length + position) {
+                  var precinctsSize = data[j];
+                  precinctsSizes.push({
+                    PPx: precinctsSize & 0xF,
+                    PPy: precinctsSize >> 4
+                  });
+                }
+                cod.precinctsSizes = precinctsSizes;
+              }
+
+              if (cod.sopMarkerUsed || cod.ephMarkerUsed ||
+                  cod.selectiveArithmeticCodingBypass ||
+                  cod.resetContextProbabilities ||
+                  cod.terminationOnEachCodingPass ||
+                  cod.verticalyStripe || cod.predictableTermination ||
+                  cod.segmentationSymbolUsed)
+                throw 'Unsupported COD options: ' + uneval(cod);
+
+              if (context.mainHeader)
+                context.COD = cod;
+              else {
+                context.currentTile.COD = cod;
+                context.currentTile.COC = [];
+              }
+              break;
+            case 0xFF90: // Start of tile-part (SOT)
+              length = readUint16(data, position);
+              var tile = {};
+              tile.index = readUint16(data, position + 2);
+              tile.length = readUint32(data, position + 4);
+              tile.dataEnd = tile.length + position - 2;
+              tile.partIndex = data[position + 8];
+              tile.partsCount = data[position + 9];
+
+              context.mainHeader = false;
+              if (tile.partIndex == 0) {
+                // reset component specific settings
+                tile.COD = context.COD;
+                tile.COC = context.COC.slice(0); // clone of the global COC
+                tile.QCD = context.QCD;
+                tile.QCC = context.QCC.slice(0); // clone of the global COC
+              }
+              context.currentTile = tile;
+              break;
+            case 0xFF93: // Start of data (SOD)
+              var tile = context.currentTile;
+              if (tile.partIndex == 0) {
+                initializeTile(context, tile.index);
+                buildPackets(context);
+              }
+
+              // moving to the end of the data
+              length = tile.dataEnd - position;
+
+              parseTilePackets(context, data, position, length);
+              break;
+            case 0xFF64: // Comment (COM)
+              length = readUint16(data, position);
+              // skipping content
+              break;
+            default:
+              throw 'Unknown codestream code: ' + code.toString(16);
+          }
+          position += length;
+        }
+      } catch (e) {
+        if (this.failOnCorruptedImage)
+          error('JPX error: ' + e);
+        else
+          warn('JPX error: ' + e + '. Trying to recover');
+      }
+      this.tiles = transformComponents(context);
+      this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;
+      this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;
+      this.componentsCount = context.SIZ.Csiz;
+    }
+  };
+  function readUint32(data, offset) {
+    return (data[offset] << 24) | (data[offset + 1] << 16) |
+      (data[offset + 2] << 8) | data[offset + 3];
+  }
+  function readUint16(data, offset) {
+    return (data[offset] << 8) | data[offset + 1];
+  }
+  function log2(x) {
+    var n = 1, i = 0;
+    while (x > n) {
+      n <<= 1;
+      i++;
+    }
+    return i;
+  }
+  function calculateComponentDimensions(component, siz) {
+    // Section B.2 Component mapping
+    component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);
+    component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);
+    component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);
+    component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);
+    component.width = component.x1 - component.x0;
+    component.height = component.y1 - component.y0;
+  }
+  function calculateTileGrids(context, components) {
+    var siz = context.SIZ;
+    // Section B.3 Division into tile and tile-components
+    var tiles = [];
+    var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);
+    var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);
+    for (var q = 0; q < numYtiles; q++) {
+      for (var p = 0; p < numXtiles; p++) {
+        var tile = {};
+        tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);
+        tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);
+        tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);
+        tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);
+        tile.width = tile.tx1 - tile.tx0;
+        tile.height = tile.ty1 - tile.ty0;
+        tile.components = [];
+        tiles.push(tile);
+      }
+    }
+    context.tiles = tiles;
+
+    var componentsCount = siz.Csiz;
+    for (var i = 0, ii = componentsCount; i < ii; i++) {
+      var component = components[i];
+      var tileComponents = [];
+      for (var j = 0, jj = tiles.length; j < jj; j++) {
+        var tileComponent = {}, tile = tiles[j];
+        tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);
+        tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);
+        tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);
+        tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);
+        tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;
+        tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;
+        tile.components[i] = tileComponent;
+      }
+    }
+  }
+  function getBlocksDimensions(context, component, r) {
+    var codOrCoc = component.codingStyleParameters;
+    var result = {};
+    if (!codOrCoc.entropyCoderWithCustomPrecincts) {
+      result.PPx = 15;
+      result.PPy = 15;
+    } else {
+      result.PPx = codOrCoc.precinctsSizes[r].PPx;
+      result.PPy = codOrCoc.precinctsSizes[r].PPy;
+    }
+    // calculate codeblock size as described in section B.7
+    result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) :
+      Math.min(codOrCoc.xcb, result.PPx);
+    result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) :
+      Math.min(codOrCoc.ycb, result.PPy);
+    return result;
+  }
+  function buildPrecincts(context, resolution, dimensions) {
+    // Section B.6 Division resolution to precincts
+    var precinctWidth = 1 << dimensions.PPx;
+    var precinctHeight = 1 << dimensions.PPy;
+    var numprecinctswide = resolution.trx1 > resolution.trx0 ?
+      Math.ceil(resolution.trx1 / precinctWidth) -
+      Math.floor(resolution.trx0 / precinctWidth) : 0;
+    var numprecinctshigh = resolution.try1 > resolution.try0 ?
+      Math.ceil(resolution.try1 / precinctHeight) -
+      Math.floor(resolution.try0 / precinctHeight) : 0;
+    var numprecincts = numprecinctswide * numprecinctshigh;
+    var precinctXOffset = Math.floor(resolution.trx0 / precinctWidth) *
+      precinctWidth;
+    var precinctYOffset = Math.floor(resolution.try0 / precinctHeight) *
+      precinctHeight;
+    resolution.precinctParameters = {
+      precinctXOffset: precinctXOffset,
+      precinctYOffset: precinctYOffset,
+      precinctWidth: precinctWidth,
+      precinctHeight: precinctHeight,
+      numprecinctswide: numprecinctswide,
+      numprecinctshigh: numprecinctshigh,
+      numprecincts: numprecincts
+    };
+  }
+  function buildCodeblocks(context, subband, dimensions) {
+    // Section B.7 Division sub-band into code-blocks
+    var xcb_ = dimensions.xcb_;
+    var ycb_ = dimensions.ycb_;
+    var codeblockWidth = 1 << xcb_;
+    var codeblockHeight = 1 << ycb_;
+    var cbx0 = Math.floor(subband.tbx0 / codeblockWidth);
+    var cby0 = Math.floor(subband.tby0 / codeblockHeight);
+    var cbx1 = Math.ceil(subband.tbx1 / codeblockWidth);
+    var cby1 = Math.ceil(subband.tby1 / codeblockHeight);
+    var precinctParameters = subband.resolution.precinctParameters;
+    var codeblocks = [];
+    var precincts = [];
+    for (var j = cby0; j < cby1; j++) {
+      for (var i = cbx0; i < cbx1; i++) {
+        var codeblock = {
+          cbx: i,
+          cby: j,
+          tbx0: codeblockWidth * i,
+          tby0: codeblockHeight * j,
+          tbx1: codeblockWidth * (i + 1),
+          tby1: codeblockHeight * (j + 1)
+        };
+        // calculate precinct number
+        var pi = Math.floor((codeblock.tbx0 -
+          precinctParameters.precinctXOffset) /
+          precinctParameters.precinctWidth);
+        var pj = Math.floor((codeblock.tby0 -
+          precinctParameters.precinctYOffset) /
+          precinctParameters.precinctHeight);
+        var precinctNumber = pj +
+          pi * precinctParameters.numprecinctswide;
+        codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);
+        codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);
+        codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);
+        codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);
+        codeblock.precinctNumber = precinctNumber;
+        codeblock.subbandType = subband.type;
+        var coefficientsLength = (codeblock.tbx1_ - codeblock.tbx0_) *
+          (codeblock.tby1_ - codeblock.tby0_);
+        codeblock.Lblock = 3;
+        codeblocks.push(codeblock);
+        // building precinct for the sub-band
+        var precinct;
+        if (precinctNumber in precincts) {
+          precinct = precincts[precinctNumber];
+          precinct.cbxMin = Math.min(precinct.cbxMin, i);
+          precinct.cbyMin = Math.min(precinct.cbyMin, j);
+          precinct.cbxMax = Math.max(precinct.cbxMax, i);
+          precinct.cbyMax = Math.max(precinct.cbyMax, j);
+        } else {
+          precincts[precinctNumber] = precinct = {
+            cbxMin: i,
+            cbyMin: j,
+            cbxMax: i,
+            cbyMax: j
+          };
+        }
+        codeblock.precinct = precinct;
+      }
+    }
+    subband.codeblockParameters = {
+      codeblockWidth: xcb_,
+      codeblockHeight: ycb_,
+      numcodeblockwide: cbx1 - cbx0 + 1,
+      numcodeblockhigh: cby1 - cby1 + 1
+    };
+    subband.codeblocks = codeblocks;
+    for (var i = 0, ii = codeblocks.length; i < ii; i++) {
+      var codeblock = codeblocks[i];
+      var precinctNumber = codeblock.precinctNumber;
+    }
+    subband.precincts = precincts;
+  }
+  function createPacket(resolution, precinctNumber, layerNumber) {
+    var precinctCodeblocks = [];
+    // Section B.10.8 Order of info in packet
+    var subbands = resolution.subbands;
+    // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence
+    for (var i = 0, ii = subbands.length; i < ii; i++) {
+      var subband = subbands[i];
+      var codeblocks = subband.codeblocks;
+      for (var j = 0, jj = codeblocks.length; j < jj; j++) {
+        var codeblock = codeblocks[j];
+        if (codeblock.precinctNumber != precinctNumber)
+          continue;
+        precinctCodeblocks.push(codeblock);
+      }
+    }
+    return {
+      layerNumber: layerNumber,
+      codeblocks: precinctCodeblocks
+    };
+  }
+  function LayerResolutionComponentPositionIterator(context) {
+    var siz = context.SIZ;
+    var tileIndex = context.currentTile.index;
+    var tile = context.tiles[tileIndex];
+    var layersCount = tile.codingStyleDefaultParameters.layersCount;
+    var componentsCount = siz.Csiz;
+    var maxDecompositionLevelsCount = 0;
+    for (var q = 0; q < componentsCount; q++) {
+      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount,
+        tile.components[q].codingStyleParameters.decompositionLevelsCount);
+    }
+
+    var l = 0, r = 0, i = 0, k = 0;
+
+    this.nextPacket = function JpxImage_nextPacket() {
+      // Section B.12.1.1 Layer-resolution-component-position
+      for (; l < layersCount; l++) {
+        for (; r <= maxDecompositionLevelsCount; r++) {
+          for (; i < componentsCount; i++) {
+            var component = tile.components[i];
+            if (r > component.codingStyleParameters.decompositionLevelsCount)
+              continue;
+
+            var resolution = component.resolutions[r];
+            var numprecincts = resolution.precinctParameters.numprecincts;
+            for (; k < numprecincts;) {
+              var packet = createPacket(resolution, k, l);
+              k++;
+              return packet;
+            }
+            k = 0;
+          }
+          i = 0;
+        }
+        r = 0;
+      }
+      throw 'Out of packets';
+    };
+  }
+  function ResolutionLayerComponentPositionIterator(context) {
+    var siz = context.SIZ;
+    var tileIndex = context.currentTile.index;
+    var tile = context.tiles[tileIndex];
+    var layersCount = tile.codingStyleDefaultParameters.layersCount;
+    var componentsCount = siz.Csiz;
+    var maxDecompositionLevelsCount = 0;
+    for (var q = 0; q < componentsCount; q++) {
+      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount,
+        tile.components[q].codingStyleParameters.decompositionLevelsCount);
+    }
+
+    var r = 0, l = 0, i = 0, k = 0;
+
+    this.nextPacket = function JpxImage_nextPacket() {
+      // Section B.12.1.2 Resolution-layer-component-position
+      for (; r <= maxDecompositionLevelsCount; r++) {
+        for (; l < layersCount; l++) {
+          for (; i < componentsCount; i++) {
+            var component = tile.components[i];
+            if (r > component.codingStyleParameters.decompositionLevelsCount)
+              continue;
+
+            var resolution = component.resolutions[r];
+            var numprecincts = resolution.precinctParameters.numprecincts;
+            for (; k < numprecincts;) {
+              var packet = createPacket(resolution, k, l);
+              k++;
+              return packet;
+            }
+            k = 0;
+          }
+          i = 0;
+        }
+        l = 0;
+      }
+      throw 'Out of packets';
+    };
+  }
+  function buildPackets(context) {
+    var siz = context.SIZ;
+    var tileIndex = context.currentTile.index;
+    var tile = context.tiles[tileIndex];
+    var componentsCount = siz.Csiz;
+    // Creating resolutions and sub-bands for each component
+    for (var c = 0; c < componentsCount; c++) {
+      var component = tile.components[c];
+      var decompositionLevelsCount =
+        component.codingStyleParameters.decompositionLevelsCount;
+      // Section B.5 Resolution levels and sub-bands
+      var resolutions = [];
+      var subbands = [];
+      for (var r = 0; r <= decompositionLevelsCount; r++) {
+        var blocksDimensions = getBlocksDimensions(context, component, r);
+        var resolution = {};
+        var scale = 1 << (decompositionLevelsCount - r);
+        resolution.trx0 = Math.ceil(component.tcx0 / scale);
+        resolution.try0 = Math.ceil(component.tcy0 / scale);
+        resolution.trx1 = Math.ceil(component.tcx1 / scale);
+        resolution.try1 = Math.ceil(component.tcy1 / scale);
+        buildPrecincts(context, resolution, blocksDimensions);
+        resolutions.push(resolution);
+
+        var subband;
+        if (r == 0) {
+          // one sub-band (LL) with last decomposition
+          subband = {};
+          subband.type = 'LL';
+          subband.tbx0 = Math.ceil(component.tcx0 / scale);
+          subband.tby0 = Math.ceil(component.tcy0 / scale);
+          subband.tbx1 = Math.ceil(component.tcx1 / scale);
+          subband.tby1 = Math.ceil(component.tcy1 / scale);
+          subband.resolution = resolution;
+          buildCodeblocks(context, subband, blocksDimensions);
+          subbands.push(subband);
+          resolution.subbands = [subband];
+        } else {
+          var bscale = 1 << (decompositionLevelsCount - r + 1);
+          var resolutionSubbands = [];
+          // three sub-bands (HL, LH and HH) with rest of decompositions
+          subband = {};
+          subband.type = 'HL';
+          subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);
+          subband.tby0 = Math.ceil(component.tcy0 / bscale);
+          subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);
+          subband.tby1 = Math.ceil(component.tcy1 / bscale);
+          subband.resolution = resolution;
+          buildCodeblocks(context, subband, blocksDimensions);
+          subbands.push(subband);
+          resolutionSubbands.push(subband);
+
+          subband = {};
+          subband.type = 'LH';
+          subband.tbx0 = Math.ceil(component.tcx0 / bscale);
+          subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);
+          subband.tbx1 = Math.ceil(component.tcx1 / bscale);
+          subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);
+          subband.resolution = resolution;
+          buildCodeblocks(context, subband, blocksDimensions);
+          subbands.push(subband);
+          resolutionSubbands.push(subband);
+
+          subband = {};
+          subband.type = 'HH';
+          subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);
+          subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);
+          subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);
+          subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);
+          subband.resolution = resolution;
+          buildCodeblocks(context, subband, blocksDimensions);
+          subbands.push(subband);
+          resolutionSubbands.push(subband);
+
+          resolution.subbands = resolutionSubbands;
+        }
+      }
+      component.resolutions = resolutions;
+      component.subbands = subbands;
+    }
+    // Generate the packets sequence
+    var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;
+    var packetsIterator;
+    switch (progressionOrder) {
+      case 0:
+        tile.packetsIterator =
+          new LayerResolutionComponentPositionIterator(context);
+        break;
+      case 1:
+        tile.packetsIterator =
+          new ResolutionLayerComponentPositionIterator(context);
+        break;
+      default:
+        throw 'Unsupported progression order ' + progressionOrder;
+    }
+  }
+  function parseTilePackets(context, data, offset, dataLength) {
+    var position = 0;
+    var buffer, bufferSize = 0, skipNextBit = false;
+    function readBits(count) {
+      while (bufferSize < count) {
+        var b = data[offset + position];
+        position++;
+        if (skipNextBit) {
+          buffer = (buffer << 7) | b;
+          bufferSize += 7;
+          skipNextBit = false;
+        } else {
+          buffer = (buffer << 8) | b;
+          bufferSize += 8;
+        }
+        if (b == 0xFF) {
+          skipNextBit = true;
+        }
+      }
+      bufferSize -= count;
+      return (buffer >>> bufferSize) & ((1 << count) - 1);
+    }
+    function alignToByte() {
+      bufferSize = 0;
+      if (skipNextBit) {
+        position++;
+        skipNextBit = false;
+      }
+    }
+    function readCodingpasses() {
+      var value = readBits(1);
+      if (value == 0)
+        return 1;
+      value = (value << 1) | readBits(1);
+      if (value == 0x02)
+        return 2;
+      value = (value << 2) | readBits(2);
+      if (value <= 0x0E)
+        return (value & 0x03) + 3;
+      value = (value << 5) | readBits(5);
+      if (value <= 0x1FE)
+        return (value & 0x1F) + 6;
+      value = (value << 7) | readBits(7);
+      return (value & 0x7F) + 37;
+    }
+    var tileIndex = context.currentTile.index;
+    var tile = context.tiles[tileIndex];
+    var packetsIterator = tile.packetsIterator;
+    while (position < dataLength) {
+      var packet = packetsIterator.nextPacket();
+      if (!readBits(1)) {
+        alignToByte();
+        continue;
+      }
+      var layerNumber = packet.layerNumber;
+      var queue = [];
+      for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {
+        var codeblock = packet.codeblocks[i];
+        var precinct = codeblock.precinct;
+        var codeblockColumn = codeblock.cbx - precinct.cbxMin;
+        var codeblockRow = codeblock.cby - precinct.cbyMin;
+        var codeblockIncluded = false;
+        var firstTimeInclusion = false;
+        if ('included' in codeblock) {
+          codeblockIncluded = !!readBits(1);
+        } else {
+          // reading inclusion tree
+          var precinct = codeblock.precinct;
+          var inclusionTree, zeroBitPlanesTree;
+          if ('inclusionTree' in precinct) {
+            inclusionTree = precinct.inclusionTree;
+          } else {
+            // building inclusion and zero bit-planes trees
+            var width = precinct.cbxMax - precinct.cbxMin + 1;
+            var height = precinct.cbyMax - precinct.cbyMin + 1;
+            inclusionTree = new InclusionTree(width, height, layerNumber);
+            zeroBitPlanesTree = new TagTree(width, height);
+            precinct.inclusionTree = inclusionTree;
+            precinct.zeroBitPlanesTree = zeroBitPlanesTree;
+          }
+
+          if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {
+            while (true) {
+              if (readBits(1)) {
+                var valueReady = !inclusionTree.nextLevel();
+                if (valueReady) {
+                  codeblock.included = true;
+                  codeblockIncluded = firstTimeInclusion = true;
+                  break;
+                }
+              } else {
+                inclusionTree.incrementValue(layerNumber);
+                break;
+              }
+            }
+          }
+        }
+        if (!codeblockIncluded)
+          continue;
+        if (firstTimeInclusion) {
+          zeroBitPlanesTree = precinct.zeroBitPlanesTree;
+          zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);
+          while (true) {
+            if (readBits(1)) {
+              var valueReady = !zeroBitPlanesTree.nextLevel();
+              if (valueReady)
+                break;
+            } else
+              zeroBitPlanesTree.incrementValue();
+          }
+          codeblock.zeroBitPlanes = zeroBitPlanesTree.value;
+        }
+        var codingpasses = readCodingpasses();
+        while (readBits(1))
+          codeblock.Lblock++;
+        var codingpassesLog2 = log2(codingpasses);
+        // rounding down log2
+        var bits = ((codingpasses < (1 << codingpassesLog2)) ?
+          codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;
+        var codedDataLength = readBits(bits);
+        queue.push({
+          codeblock: codeblock,
+          codingpasses: codingpasses,
+          dataLength: codedDataLength
+        });
+      }
+      alignToByte();
+      while (queue.length > 0) {
+        var packetItem = queue.shift();
+        var codeblock = packetItem.codeblock;
+        if (!('data' in codeblock))
+          codeblock.data = [];
+        codeblock.data.push({
+          data: data,
+          start: offset + position,
+          end: offset + position + packetItem.dataLength,
+          codingpasses: packetItem.codingpasses
+        });
+        position += packetItem.dataLength;
+      }
+    }
+    return position;
+  }
+  function copyCoefficients(coefficients, x0, y0, width, height,
+                            delta, mb, codeblocks, transformation) {
+    var r = 0.5; // formula (E-6)
+    for (var i = 0, ii = codeblocks.length; i < ii; ++i) {
+      var codeblock = codeblocks[i];
+      var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;
+      var blockHeight = codeblock.tby1_ - codeblock.tby0_;
+      if (blockWidth == 0 || blockHeight == 0)
+        continue;
+      if (!('data' in codeblock))
+        continue;
+
+      var bitModel, currentCodingpassType;
+      bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType,
+        codeblock.zeroBitPlanes);
+      currentCodingpassType = 2; // first bit plane starts from cleanup
+
+      // collect data
+      var data = codeblock.data, totalLength = 0, codingpasses = 0;
+      for (var q = 0, qq = data.length; q < qq; q++) {
+        var dataItem = data[q];
+        totalLength += dataItem.end - dataItem.start;
+        codingpasses += dataItem.codingpasses;
+      }
+      var encodedData = new Uint8Array(totalLength), k = 0;
+      for (var q = 0, qq = data.length; q < qq; q++) {
+        var dataItem = data[q];
+        var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);
+        encodedData.set(chunk, k);
+        k += chunk.length;
+      }
+      // decoding the item
+      var decoder = new ArithmeticDecoder(encodedData, 0, totalLength);
+      bitModel.setDecoder(decoder);
+
+      for (var q = 0; q < codingpasses; q++) {
+        switch (currentCodingpassType) {
+          case 0:
+            bitModel.runSignificancePropogationPass();
+            break;
+          case 1:
+            bitModel.runMagnitudeRefinementPass();
+            break;
+          case 2:
+            bitModel.runCleanupPass();
+            break;
+        }
+        currentCodingpassType = (currentCodingpassType + 1) % 3;
+      }
+
+      var offset = (codeblock.tbx0_ - x0) + (codeblock.tby0_ - y0) * width;
+      var position = 0;
+      for (var j = 0; j < blockHeight; j++) {
+        for (var k = 0; k < blockWidth; k++) {
+          var n = (bitModel.coefficentsSign[position] ? -1 : 1) *
+            bitModel.coefficentsMagnitude[position];
+          var nb = bitModel.bitsDecoded[position], correction;
+          if (transformation == 0 || mb > nb) {
+            // use r only if transformation is irreversible or
+            // not all bitplanes were decoded for reversible transformation
+            n += n < 0 ? n - r : n > 0 ? n + r : 0;
+            correction = 1 << (mb - nb);
+          } else
+            correction = 1;
+          coefficients[offset++] = n * correction * delta;
+          position++;
+        }
+        offset += width - blockWidth;
+      }
+    }
+  }
+  function transformTile(context, tile, c) {
+    var component = tile.components[c];
+    var codingStyleParameters = component.codingStyleParameters;
+    var quantizationParameters = component.quantizationParameters;
+    var decompositionLevelsCount =
+      codingStyleParameters.decompositionLevelsCount;
+    var spqcds = quantizationParameters.SPqcds;
+    var scalarExpounded = quantizationParameters.scalarExpounded;
+    var guardBits = quantizationParameters.guardBits;
+    var transformation = codingStyleParameters.transformation;
+    var precision = context.components[c].precision;
+
+    var subbandCoefficients = [];
+    var k = 0, b = 0;
+    for (var i = 0; i <= decompositionLevelsCount; i++) {
+      var resolution = component.resolutions[i];
+
+      for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {
+        var mu, epsilon;
+        if (!scalarExpounded) {
+          // formula E-5
+          mu = spqcds[0].mu;
+          epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);
+        } else {
+          mu = spqcds[b].mu;
+          epsilon = spqcds[b].epsilon;
+        }
+
+        var subband = resolution.subbands[j];
+        var width = subband.tbx1 - subband.tbx0;
+        var height = subband.tby1 - subband.tby0;
+        var gainLog2 = SubbandsGainLog2[subband.type];
+
+        // calulate quantization coefficient (Section E.1.1.1)
+        var delta = Math.pow(2, (precision + gainLog2) - epsilon) *
+          (1 + mu / 2048);
+        var mb = (guardBits + epsilon - 1);
+
+        var coefficients = new Float32Array(width * height);
+        copyCoefficients(coefficients, subband.tbx0, subband.tby0,
+          width, height, delta, mb, subband.codeblocks, transformation);
+
+        subbandCoefficients.push({
+          width: width,
+          height: height,
+          items: coefficients
+        });
+
+        b++;
+      }
+    }
+
+    var transformation = codingStyleParameters.transformation;
+    var transform = transformation == 0 ? new IrreversibleTransform() :
+      new ReversibleTransform();
+    var result = transform.calculate(subbandCoefficients,
+      component.tcx0, component.tcy0);
+    return {
+      left: component.tcx0,
+      top: component.tcy0,
+      width: result.width,
+      height: result.height,
+      items: result.items
+    };
+  }
+  function transformComponents(context) {
+    var siz = context.SIZ;
+    var components = context.components;
+    var componentsCount = siz.Csiz;
+    var resultImages = [];
+    for (var i = 0, ii = context.tiles.length; i < ii; i++) {
+      var tile = context.tiles[i];
+      var result = [];
+      for (var c = 0; c < componentsCount; c++) {
+        var image = transformTile(context, tile, c);
+        result.push(image);
+      }
+
+      // Section G.2.2 Inverse multi component transform
+      if (tile.codingStyleDefaultParameters.multipleComponentTransform) {
+        var y0items = result[0].items;
+        var y1items = result[1].items;
+        var y2items = result[2].items;
+        for (var j = 0, jj = y0items.length; j < jj; j++) {
+          var y0 = y0items[j], y1 = y1items[j], y2 = y2items[j];
+          var i1 = y0 - ((y2 + y1) >> 2);
+          y1items[j] = i1;
+          y0items[j] = y2 + i1;
+          y2items[j] = y1 + i1;
+        }
+      }
+
+      // Section G.1 DC level shifting to unsigned component values
+      for (var c = 0; c < componentsCount; c++) {
+        var component = components[c];
+        if (component.isSigned)
+          continue;
+
+        var offset = 1 << (component.precision - 1);
+        var tileImage = result[c];
+        var items = tileImage.items;
+        for (var j = 0, jj = items.length; j < jj; j++)
+          items[j] += offset;
+      }
+
+      // To simplify things: shift and clamp output to 8 bit unsigned
+      for (var c = 0; c < componentsCount; c++) {
+        var component = components[c];
+        var offset = component.isSigned ? 128 : 0;
+        var shift = component.precision - 8;
+        var tileImage = result[c];
+        var items = tileImage.items;
+        var data = new Uint8Array(items.length);
+        for (var j = 0, jj = items.length; j < jj; j++) {
+          var value = (items[j] >> shift) + offset;
+          data[j] = value < 0 ? 0 : value > 255 ? 255 : value;
+        }
+        result[c].items = data;
+      }
+
+      resultImages.push(result);
+    }
+    return resultImages;
+  }
+  function initializeTile(context, tileIndex) {
+    var siz = context.SIZ;
+    var componentsCount = siz.Csiz;
+    var tile = context.tiles[tileIndex];
+    var resultTiles = [];
+    for (var c = 0; c < componentsCount; c++) {
+      var component = tile.components[c];
+      var qcdOrQcc = c in context.currentTile.QCC ?
+        context.currentTile.QCC[c] : context.currentTile.QCD;
+      component.quantizationParameters = qcdOrQcc;
+      var codOrCoc = c in context.currentTile.COC ?
+        context.currentTile.COC[c] : context.currentTile.COD;
+      component.codingStyleParameters = codOrCoc;
+    }
+    tile.codingStyleDefaultParameters = context.currentTile.COD;
+  }
+
+  // Section B.10.2 Tag trees
+  var TagTree = (function TagTreeClosure() {
+    function TagTree(width, height) {
+      var levelsLength = log2(Math.max(width, height)) + 1;
+      this.levels = [];
+      for (var i = 0; i < levelsLength; i++) {
+        var level = {
+          width: width,
+          height: height,
+          items: []
+        };
+        this.levels.push(level);
+        width = Math.ceil(width / 2);
+        height = Math.ceil(height / 2);
+      }
+    }
+    TagTree.prototype = {
+      reset: function TagTree_reset(i, j) {
+        var currentLevel = 0, value = 0;
+        while (currentLevel < this.levels.length) {
+          var level = this.levels[currentLevel];
+          var index = i + j * level.width;
+          if (index in level.items) {
+            value = level.items[index];
+            break;
+          }
+          level.index = index;
+          i >>= 1;
+          j >>= 1;
+          currentLevel++;
+        }
+        currentLevel--;
+        var level = this.levels[currentLevel];
+        level.items[level.index] = value;
+        this.currentLevel = currentLevel;
+        delete this.value;
+      },
+      incrementValue: function TagTree_incrementValue() {
+        var level = this.levels[this.currentLevel];
+        level.items[level.index]++;
+      },
+      nextLevel: function TagTree_nextLevel() {
+        var currentLevel = this.currentLevel;
+        var level = this.levels[currentLevel];
+        var value = level.items[level.index];
+        currentLevel--;
+        if (currentLevel < 0) {
+          this.value = value;
+          return false;
+        }
+
+        this.currentLevel = currentLevel;
+        var level = this.levels[currentLevel];
+        level.items[level.index] = value;
+        return true;
+      }
+    };
+    return TagTree;
+  })();
+
+  var InclusionTree = (function InclusionTreeClosure() {
+    function InclusionTree(width, height,  defaultValue) {
+      var levelsLength = log2(Math.max(width, height)) + 1;
+      this.levels = [];
+      for (var i = 0; i < levelsLength; i++) {
+        var items = new Uint8Array(width * height);
+        for (var j = 0, jj = items.length; j < jj; j++)
+          items[j] = defaultValue;
+
+        var level = {
+          width: width,
+          height: height,
+          items: items
+        };
+        this.levels.push(level);
+
+        width = Math.ceil(width / 2);
+        height = Math.ceil(height / 2);
+      }
+    }
+    InclusionTree.prototype = {
+      reset: function InclusionTree_reset(i, j, stopValue) {
+        var currentLevel = 0;
+        while (currentLevel < this.levels.length) {
+          var level = this.levels[currentLevel];
+          var index = i + j * level.width;
+          level.index = index;
+          var value = level.items[index];
+
+          if (value == 0xFF)
+            break;
+
+          if (value > stopValue) {
+            this.currentLevel = currentLevel;
+            // already know about this one, propagating the value to top levels
+            this.propagateValues();
+            return false;
+          }
+
+          i >>= 1;
+          j >>= 1;
+          currentLevel++;
+        }
+        this.currentLevel = currentLevel - 1;
+        return true;
+      },
+      incrementValue: function InclusionTree_incrementValue(stopValue) {
+        var level = this.levels[this.currentLevel];
+        level.items[level.index] = stopValue + 1;
+        this.propagateValues();
+      },
+      propagateValues: function InclusionTree_propagateValues() {
+        var levelIndex = this.currentLevel;
+        var level = this.levels[levelIndex];
+        var currentValue = level.items[level.index];
+        while (--levelIndex >= 0) {
+          var level = this.levels[levelIndex];
+          level.items[level.index] = currentValue;
+        }
+      },
+      nextLevel: function InclusionTree_nextLevel() {
+        var currentLevel = this.currentLevel;
+        var level = this.levels[currentLevel];
+        var value = level.items[level.index];
+        level.items[level.index] = 0xFF;
+        currentLevel--;
+        if (currentLevel < 0)
+          return false;
+
+        this.currentLevel = currentLevel;
+        var level = this.levels[currentLevel];
+        level.items[level.index] = value;
+        return true;
+      }
+    };
+    return InclusionTree;
+  })();
+
+  // Implements C.3. Arithmetic decoding procedures
+  var ArithmeticDecoder = (function ArithmeticDecoderClosure() {
+    var QeTable = [
+      {qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1},
+      {qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0},
+      {qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0},
+      {qe: 0x0AC1, nmps: 4, nlps: 12, switchFlag: 0},
+      {qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0},
+      {qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0},
+      {qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1},
+      {qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0},
+      {qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0},
+      {qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0},
+      {qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0},
+      {qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0},
+      {qe: 0x1C01, nmps: 13, nlps: 20, switchFlag: 0},
+      {qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0},
+      {qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1},
+      {qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0},
+      {qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0},
+      {qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0},
+      {qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0},
+      {qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0},
+      {qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0},
+      {qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0},
+      {qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0},
+      {qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0},
+      {qe: 0x1C01, nmps: 25, nlps: 22, switchFlag: 0},
+      {qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0},
+      {qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0},
+      {qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0},
+      {qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0},
+      {qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0},
+      {qe: 0x0AC1, nmps: 31, nlps: 28, switchFlag: 0},
+      {qe: 0x09C1, nmps: 32, nlps: 29, switchFlag: 0},
+      {qe: 0x08A1, nmps: 33, nlps: 30, switchFlag: 0},
+      {qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0},
+      {qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0},
+      {qe: 0x02A1, nmps: 36, nlps: 33, switchFlag: 0},
+      {qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0},
+      {qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0},
+      {qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0},
+      {qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0},
+      {qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0},
+      {qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0},
+      {qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0},
+      {qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0},
+      {qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0},
+      {qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0},
+      {qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0}
+    ];
+
+    function ArithmeticDecoder(data, start, end) {
+      this.data = data;
+      this.bp = start;
+      this.dataEnd = end;
+
+      this.chigh = data[start];
+      this.clow = 0;
+
+      this.byteIn();
+
+      this.chigh = ((this.chigh << 7) & 0xFFFF) | ((this.clow >> 9) & 0x7F);
+      this.clow = (this.clow << 7) & 0xFFFF;
+      this.ct -= 7;
+      this.a = 0x8000;
+    }
+
+    ArithmeticDecoder.prototype = {
+      byteIn: function ArithmeticDecoder_byteIn() {
+        var data = this.data;
+        var bp = this.bp;
+        if (data[bp] == 0xFF) {
+          var b1 = data[bp + 1];
+          if (b1 > 0x8F) {
+            this.clow += 0xFF00;
+            this.ct = 8;
+          } else {
+            bp++;
+            this.clow += (data[bp] << 9);
+            this.ct = 7;
+            this.bp = bp;
+          }
+        } else {
+          bp++;
+          this.clow += bp < this.dataEnd ? (data[bp] << 8) : 0xFF00;
+          this.ct = 8;
+          this.bp = bp;
+        }
+        if (this.clow > 0xFFFF) {
+          this.chigh += (this.clow >> 16);
+          this.clow &= 0xFFFF;
+        }
+      },
+      readBit: function ArithmeticDecoder_readBit(cx) {
+        var qeIcx = QeTable[cx.index].qe;
+        this.a -= qeIcx;
+
+        if (this.chigh < qeIcx) {
+          var d = this.exchangeLps(cx);
+          this.renormD();
+          return d;
+        } else {
+          this.chigh -= qeIcx;
+          if ((this.a & 0x8000) == 0) {
+            var d = this.exchangeMps(cx);
+            this.renormD();
+            return d;
+          } else {
+            return cx.mps;
+          }
+        }
+      },
+      renormD: function ArithmeticDecoder_renormD() {
+        do {
+          if (this.ct == 0)
+            this.byteIn();
+
+          this.a <<= 1;
+          this.chigh = ((this.chigh << 1) & 0xFFFF) | ((this.clow >> 15) & 1);
+          this.clow = (this.clow << 1) & 0xFFFF;
+          this.ct--;
+        } while ((this.a & 0x8000) == 0);
+      },
+      exchangeMps: function ArithmeticDecoder_exchangeMps(cx) {
+        var d;
+        var qeTableIcx = QeTable[cx.index];
+        if (this.a < qeTableIcx.qe) {
+          d = 1 - cx.mps;
+
+          if (qeTableIcx.switchFlag == 1) {
+            cx.mps = 1 - cx.mps;
+          }
+          cx.index = qeTableIcx.nlps;
+        } else {
+          d = cx.mps;
+          cx.index = qeTableIcx.nmps;
+        }
+        return d;
+      },
+      exchangeLps: function ArithmeticDecoder_exchangeLps(cx) {
+        var d;
+        var qeTableIcx = QeTable[cx.index];
+        if (this.a < qeTableIcx.qe) {
+          this.a = qeTableIcx.qe;
+          d = cx.mps;
+          cx.index = qeTableIcx.nmps;
+        } else {
+          this.a = qeTableIcx.qe;
+          d = 1 - cx.mps;
+
+          if (qeTableIcx.switchFlag == 1) {
+            cx.mps = 1 - cx.mps;
+          }
+          cx.index = qeTableIcx.nlps;
+        }
+        return d;
+      }
+    };
+
+    return ArithmeticDecoder;
+  })();
+
+  // Section D. Coefficient bit modeling
+  var BitModel = (function BitModelClosure() {
+    // Table D-1
+    // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),
+    // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)
+    var LLAndLHContextsLabel = new Uint8Array([
+      0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4,
+      7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,
+      8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8
+    ]);
+    var HLContextLabel = new Uint8Array([
+      0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8,
+      8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,
+      4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8
+    ]);
+    var HHContextLabel = new Uint8Array([
+      0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5,
+      5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8,
+      8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8
+    ]);
+
+    // Table D-2
+    function calcSignContribution(significance0, sign0, significance1, sign1) {
+      if (significance1) {
+        if (!sign1)
+          return significance0 ? (!sign0 ? 1 : 0) : 1;
+        else
+          return significance0 ? (!sign0 ? 0 : -1) : -1;
+      } else
+        return significance0 ? (!sign0 ? 1 : -1) : 0;
+    }
+    // Table D-3
+    var SignContextLabels = [
+      {contextLabel: 13, xorBit: 0},
+      {contextLabel: 12, xorBit: 0},
+      {contextLabel: 11, xorBit: 0},
+      {contextLabel: 10, xorBit: 0},
+      {contextLabel: 9, xorBit: 0},
+      {contextLabel: 10, xorBit: 1},
+      {contextLabel: 11, xorBit: 1},
+      {contextLabel: 12, xorBit: 1},
+      {contextLabel: 13, xorBit: 1}
+    ];
+
+    function BitModel(width, height, subband, zeroBitPlanes) {
+      this.width = width;
+      this.height = height;
+
+      this.contextLabelTable = subband == 'HH' ? HHContextLabel :
+        subband == 'HL' ? HLContextLabel : LLAndLHContextsLabel;
+
+      var coefficientCount = width * height;
+
+      // coefficients outside the encoding region treated as insignificant
+      // add border state cells for significanceState
+      this.neighborsSignificance = new Uint8Array(coefficientCount);
+      this.coefficentsSign = new Uint8Array(coefficientCount);
+      this.coefficentsMagnitude = new Uint32Array(coefficientCount);
+      this.processingFlags = new Uint8Array(coefficientCount);
+
+      var bitsDecoded = new Uint8Array(this.width * this.height);
+      for (var i = 0, ii = bitsDecoded.length; i < ii; i++)
+        bitsDecoded[i] = zeroBitPlanes;
+      this.bitsDecoded = bitsDecoded;
+
+      this.reset();
+    }
+
+    BitModel.prototype = {
+      setDecoder: function BitModel_setDecoder(decoder) {
+        this.decoder = decoder;
+      },
+      reset: function BitModel_reset() {
+        this.uniformContext = {index: 46, mps: 0};
+        this.runLengthContext = {index: 3, mps: 0};
+        this.contexts = [];
+        this.contexts.push({index: 4, mps: 0});
+        for (var i = 1; i <= 16; i++)
+          this.contexts.push({index: 0, mps: 0});
+      },
+      setNeighborsSignificance:
+        function BitModel_setNeighborsSignificance(row, column) {
+        var neighborsSignificance = this.neighborsSignificance;
+        var width = this.width, height = this.height;
+        var index = row * width + column;
+        if (row > 0) {
+          if (column > 0)
+            neighborsSignificance[index - width - 1] += 0x10;
+          if (column + 1 < width)
+            neighborsSignificance[index - width + 1] += 0x10;
+          neighborsSignificance[index - width] += 0x04;
+        }
+        if (row + 1 < height) {
+          if (column > 0)
+            neighborsSignificance[index + width - 1] += 0x10;
+          if (column + 1 < width)
+            neighborsSignificance[index + width + 1] += 0x10;
+          neighborsSignificance[index + width] += 0x04;
+        }
+        if (column > 0)
+          neighborsSignificance[index - 1] += 0x01;
+        if (column + 1 < width)
+          neighborsSignificance[index + 1] += 0x01;
+        neighborsSignificance[index] |= 0x80;
+      },
+      runSignificancePropogationPass:
+        function BitModel_runSignificancePropogationPass() {
+        var decoder = this.decoder;
+        var width = this.width, height = this.height;
+        var coefficentsMagnitude = this.coefficentsMagnitude;
+        var coefficentsSign = this.coefficentsSign;
+        var contextLabels = this.contextLabels;
+        var neighborsSignificance = this.neighborsSignificance;
+        var processingFlags = this.processingFlags;
+        var contexts = this.contexts;
+        var labels = this.contextLabelTable;
+        var bitsDecoded = this.bitsDecoded;
+        // clear processed flag
+        var processedInverseMask = ~1;
+        var processedMask = 1;
+        var firstMagnitudeBitMask = 2;
+        for (var q = 0, qq = width * height; q < qq; q++)
+          processingFlags[q] &= processedInverseMask;
+
+        for (var i0 = 0; i0 < height; i0 += 4) {
+          for (var j = 0; j < width; j++) {
+            var index = i0 * width + j;
+            for (var i1 = 0; i1 < 4; i1++, index += width) {
+              var i = i0 + i1;
+              if (i >= height)
+                break;
+
+              if (coefficentsMagnitude[index] || !neighborsSignificance[index])
+                continue;
+
+              var contextLabel = labels[neighborsSignificance[index]];
+              var cx = contexts[contextLabel];
+              var decision = decoder.readBit(cx);
+              if (decision) {
+                var sign = this.decodeSignBit(i, j);
+                coefficentsSign[index] = sign;
+                coefficentsMagnitude[index] = 1;
+                this.setNeighborsSignificance(i, j);
+                processingFlags[index] |= firstMagnitudeBitMask;
+              }
+              bitsDecoded[index]++;
+              processingFlags[index] |= processedMask;
+            }
+          }
+        }
+      },
+      decodeSignBit: function BitModel_decodeSignBit(row, column) {
+        var width = this.width, height = this.height;
+        var index = row * width + column;
+        var coefficentsMagnitude = this.coefficentsMagnitude;
+        var coefficentsSign = this.coefficentsSign;
+        var horizontalContribution = calcSignContribution(
+          column > 0 && coefficentsMagnitude[index - 1],
+          coefficentsSign[index - 1],
+          column + 1 < width && coefficentsMagnitude[index + 1],
+          coefficentsSign[index + 1]);
+        var verticalContribution = calcSignContribution(
+          row > 0 && coefficentsMagnitude[index - width],
+          coefficentsSign[index - width],
+          row + 1 < height && coefficentsMagnitude[index + width],
+          coefficentsSign[index + width]);
+
+        var contextLabelAndXor = SignContextLabels[
+          3 * (1 - horizontalContribution) + (1 - verticalContribution)];
+        var contextLabel = contextLabelAndXor.contextLabel;
+        var cx = this.contexts[contextLabel];
+        var decoded = this.decoder.readBit(cx);
+        return decoded ^ contextLabelAndXor.xorBit;
+      },
+      runMagnitudeRefinementPass:
+        function BitModel_runMagnitudeRefinementPass() {
+        var decoder = this.decoder;
+        var width = this.width, height = this.height;
+        var coefficentsMagnitude = this.coefficentsMagnitude;
+        var neighborsSignificance = this.neighborsSignificance;
+        var contexts = this.contexts;
+        var bitsDecoded = this.bitsDecoded;
+        var processingFlags = this.processingFlags;
+        var processedMask = 1;
+        var firstMagnitudeBitMask = 2;
+        for (var i0 = 0; i0 < height; i0 += 4) {
+          for (var j = 0; j < width; j++) {
+            for (var i1 = 0; i1 < 4; i1++) {
+              var i = i0 + i1;
+              if (i >= height)
+                break;
+              var index = i * width + j;
+
+              // significant but not those that have just become
+              if (!coefficentsMagnitude[index] ||
+                (processingFlags[index] & processedMask) != 0)
+                continue;
+
+              var contextLabel = 16;
+              if ((processingFlags[index] &
+                firstMagnitudeBitMask) != 0) {
+                processingFlags[i * width + j] ^= firstMagnitudeBitMask;
+                // first refinement
+                var significance = neighborsSignificance[index];
+                var sumOfSignificance = (significance & 3) +
+                  ((significance >> 2) & 3) + ((significance >> 4) & 7);
+                contextLabel = sumOfSignificance >= 1 ? 15 : 14;
+              }
+
+              var cx = contexts[contextLabel];
+              var bit = decoder.readBit(cx);
+              coefficentsMagnitude[index] =
+                (coefficentsMagnitude[index] << 1) | bit;
+              bitsDecoded[index]++;
+              processingFlags[index] |= processedMask;
+            }
+          }
+        }
+      },
+      runCleanupPass: function BitModel_runCleanupPass() {
+        var decoder = this.decoder;
+        var width = this.width, height = this.height;
+        var neighborsSignificance = this.neighborsSignificance;
+        var significanceState = this.significanceState;
+        var coefficentsMagnitude = this.coefficentsMagnitude;
+        var coefficentsSign = this.coefficentsSign;
+        var contexts = this.contexts;
+        var labels = this.contextLabelTable;
+        var bitsDecoded = this.bitsDecoded;
+        var processingFlags = this.processingFlags;
+        var processedMask = 1;
+        var firstMagnitudeBitMask = 2;
+        var oneRowDown = width;
+        var twoRowsDown = width * 2;
+        var threeRowsDown = width * 3;
+        for (var i0 = 0; i0 < height; i0 += 4) {
+          for (var j = 0; j < width; j++) {
+            var index0 = i0 * width + j;
+            // using the property: labels[neighborsSignificance[index]] == 0
+            // when neighborsSignificance[index] == 0
+            var allEmpty = i0 + 3 < height &&
+              processingFlags[index0] == 0 &&
+              processingFlags[index0 + oneRowDown] == 0 &&
+              processingFlags[index0 + twoRowsDown] == 0 &&
+              processingFlags[index0 + threeRowsDown] == 0 &&
+              neighborsSignificance[index0] == 0 &&
+              neighborsSignificance[index0 + oneRowDown] == 0 &&
+              neighborsSignificance[index0 + twoRowsDown] == 0 &&
+              neighborsSignificance[index0 + threeRowsDown] == 0;
+            var i1 = 0, index = index0;
+            var cx, i;
+            if (allEmpty) {
+              cx = this.runLengthContext;
+              var hasSignificantCoefficent = decoder.readBit(cx);
+              if (!hasSignificantCoefficent) {
+                bitsDecoded[index0]++;
+                bitsDecoded[index0 + oneRowDown]++;
+                bitsDecoded[index0 + twoRowsDown]++;
+                bitsDecoded[index0 + threeRowsDown]++;
+                continue; // next column
+              }
+              cx = this.uniformContext;
+              i1 = (decoder.readBit(cx) << 1) | decoder.readBit(cx);
+              i = i0 + i1;
+              index += i1 * width;
+
+              var sign = this.decodeSignBit(i, j);
+              coefficentsSign[index] = sign;
+              coefficentsMagnitude[index] = 1;
+              this.setNeighborsSignificance(i, j);
+              processingFlags[index] |= firstMagnitudeBitMask;
+
+              index = index0;
+              for (var i2 = i0; i2 <= i; i2++, index += width)
+                bitsDecoded[index]++;
+
+              i1++;
+            }
+            for (; i1 < 4; i1++, index += width) {
+              i = i0 + i1;
+              if (i >= height)
+                break;
+
+              if (coefficentsMagnitude[index] ||
+                (processingFlags[index] & processedMask) != 0)
+                continue;
+
+              var contextLabel = labels[neighborsSignificance[index]];
+              cx = contexts[contextLabel];
+              var decision = decoder.readBit(cx);
+              if (decision == 1) {
+                var sign = this.decodeSignBit(i, j);
+                coefficentsSign[index] = sign;
+                coefficentsMagnitude[index] = 1;
+                this.setNeighborsSignificance(i, j);
+                processingFlags[index] |= firstMagnitudeBitMask;
+              }
+              bitsDecoded[index]++;
+            }
+          }
+        }
+      }
+    };
+
+    return BitModel;
+  })();
+
+  // Section F, Discrete wavelet transofrmation
+  var Transform = (function TransformClosure() {
+    function Transform() {
+    }
+    Transform.prototype.calculate =
+      function transformCalculate(subbands, u0, v0) {
+      var ll = subbands[0];
+      for (var i = 1, ii = subbands.length, j = 1; i < ii; i += 3, j++) {
+        ll = this.iterate(ll, subbands[i], subbands[i + 1],
+                          subbands[i + 2], u0, v0);
+      }
+      return ll;
+    };
+    Transform.prototype.iterate = function Transform_iterate(ll, hl, lh, hh,
+                                                            u0, v0) {
+      var llWidth = ll.width, llHeight = ll.height, llItems = ll.items;
+      var hlWidth = hl.width, hlHeight = hl.height, hlItems = hl.items;
+      var lhWidth = lh.width, lhHeight = lh.height, lhItems = lh.items;
+      var hhWidth = hh.width, hhHeight = hh.height, hhItems = hh.items;
+
+      // Section F.3.3 interleave
+      var width = llWidth + hlWidth;
+      var height = llHeight + lhHeight;
+      var items = new Float32Array(width * height);
+      for (var i = 0, ii = llHeight; i < ii; i++) {
+        var k = i * llWidth, l = i * 2 * width;
+        for (var j = 0, jj = llWidth; j < jj; j++, k++, l += 2)
+          items[l] = llItems[k];
+      }
+      for (var i = 0, ii = hlHeight; i < ii; i++) {
+        var k = i * hlWidth, l = i * 2 * width + 1;
+        for (var j = 0, jj = hlWidth; j < jj; j++, k++, l += 2)
+          items[l] = hlItems[k];
+      }
+      for (var i = 0, ii = lhHeight; i < ii; i++) {
+        var k = i * lhWidth, l = (i * 2 + 1) * width;
+        for (var j = 0, jj = lhWidth; j < jj; j++, k++, l += 2)
+          items[l] = lhItems[k];
+      }
+      for (var i = 0, ii = hhHeight; i < ii; i++) {
+        var k = i * hhWidth, l = (i * 2 + 1) * width + 1;
+        for (var j = 0, jj = hhWidth; j < jj; j++, k++, l += 2)
+          items[l] = hhItems[k];
+      }
+
+      var bufferPadding = 4;
+      var bufferLength = new Float32Array(Math.max(width, height) +
+        2 * bufferPadding);
+      var buffer = new Float32Array(bufferLength);
+      var bufferOut = new Float32Array(bufferLength);
+
+      // Section F.3.4 HOR_SR
+      for (var v = 0; v < height; v++) {
+        if (width == 1) {
+          // if width = 1, when u0 even keep items as is, when odd divide by 2
+          if ((u0 % 1) != 0) {
+            items[v * width] /= 2;
+          }
+          continue;
+        }
+
+        var k = v * width;
+        var l = bufferPadding;
+        for (var u = 0; u < width; u++, k++, l++)
+          buffer[l] = items[k];
+
+        // Section F.3.7 extending... using max extension of 4
+        var i1 = bufferPadding - 1, j1 = bufferPadding + 1;
+        var i2 = bufferPadding + width - 2, j2 = bufferPadding + width;
+        buffer[i1--] = buffer[j1++];
+        buffer[j2++] = buffer[i2--];
+        buffer[i1--] = buffer[j1++];
+        buffer[j2++] = buffer[i2--];
+        buffer[i1--] = buffer[j1++];
+        buffer[j2++] = buffer[i2--];
+        buffer[i1--] = buffer[j1++];
+        buffer[j2++] = buffer[i2--];
+
+        this.filter(buffer, bufferPadding, width, u0, bufferOut);
+
+        k = v * width;
+        l = bufferPadding;
+        for (var u = 0; u < width; u++, k++, l++)
+          items[k] = bufferOut[l];
+      }
+
+      // Section F.3.5 VER_SR
+      for (var u = 0; u < width; u++) {
+        if (height == 1) {
+          // if height = 1, when v0 even keep items as is, when odd divide by 2
+          if ((v0 % 1) != 0) {
+            items[u] /= 2;
+          }
+          continue;
+        }
+
+        var k = u;
+        var l = bufferPadding;
+        for (var v = 0; v < height; v++, k += width, l++)
+          buffer[l] = items[k];
+
+        // Section F.3.7 extending... using max extension of 4
+        var i1 = bufferPadding - 1, j1 = bufferPadding + 1;
+        var i2 = bufferPadding + height - 2, j2 = bufferPadding + height;
+        buffer[i1--] = buffer[j1++];
+        buffer[j2++] = buffer[i2--];
+        buffer[i1--] = buffer[j1++];
+        buffer[j2++] = buffer[i2--];
+        buffer[i1--] = buffer[j1++];
+        buffer[j2++] = buffer[i2--];
+        buffer[i1--] = buffer[j1++];
+        buffer[j2++] = buffer[i2--];
+
+        this.filter(buffer, bufferPadding, height, v0, bufferOut);
+
+        k = u;
+        l = bufferPadding;
+        for (var v = 0; v < height; v++, k += width, l++)
+          items[k] = bufferOut[l];
+      }
+      return {
+        width: width,
+        height: height,
+        items: items
+      };
+    };
+    return Transform;
+  })();
+
+  // Section 3.8.2 Irreversible 9-7 filter
+  var IrreversibleTransform = (function IrreversibleTransformClosure() {
+    function IrreversibleTransform() {
+      Transform.call(this);
+    }
+
+    IrreversibleTransform.prototype = Object.create(Transform.prototype);
+    IrreversibleTransform.prototype.filter =
+      function irreversibleTransformFilter(y, offset, length, i0, x) {
+      var i0_ = Math.floor(i0 / 2);
+      var i1_ = Math.floor((i0 + length) / 2);
+      var offset_ = offset - (i0 % 1);
+
+      var alpha = -1.586134342059924;
+      var beta = -0.052980118572961;
+      var gamma = 0.882911075530934;
+      var delta = 0.443506852043971;
+      var K = 1.230174104914001;
+      var K_ = 1 / K;
+
+      // step 1
+      var j = offset_ - 2;
+      for (var n = i0_ - 1, nn = i1_ + 2; n < nn; n++, j += 2)
+        x[j] = K * y[j];
+
+      // step 2
+      var j = offset_ - 3;
+      for (var n = i0_ - 2, nn = i1_ + 2; n < nn; n++, j += 2)
+        x[j] = K_ * y[j];
+
+      // step 3
+      var j = offset_ - 2;
+      for (var n = i0_ - 1, nn = i1_ + 2; n < nn; n++, j += 2)
+        x[j] -= delta * (x[j - 1] + x[j + 1]);
+
+      // step 4
+      var j = offset_ - 1;
+      for (var n = i0_ - 1, nn = i1_ + 1; n < nn; n++, j += 2)
+        x[j] -= gamma * (x[j - 1] + x[j + 1]);
+
+      // step 5
+      var j = offset_;
+      for (var n = i0_, nn = i1_ + 1; n < nn; n++, j += 2)
+        x[j] -= beta * (x[j - 1] + x[j + 1]);
+
+      // step 6
+      var j = offset_ + 1;
+      for (var n = i0_, nn = i1_; n < nn; n++, j += 2)
+        x[j] -= alpha * (x[j - 1] + x[j + 1]);
+    };
+
+    return IrreversibleTransform;
+  })();
+
+  // Section 3.8.1 Reversible 5-3 filter
+  var ReversibleTransform = (function ReversibleTransformClosure() {
+    function ReversibleTransform() {
+      Transform.call(this);
+    }
+
+    ReversibleTransform.prototype = Object.create(Transform.prototype);
+    ReversibleTransform.prototype.filter =
+      function reversibleTransformFilter(y, offset, length, i0, x) {
+      var i0_ = Math.floor(i0 / 2);
+      var i1_ = Math.floor((i0 + length) / 2);
+      var offset_ = offset - (i0 % 1);
+
+      for (var n = i0_, nn = i1_ + 1, j = offset_; n < nn; n++, j += 2)
+        x[j] = y[j] - Math.floor((y[j - 1] + y[j + 1] + 2) / 4);
+
+      for (var n = i0_, nn = i1_, j = offset_ + 1; n < nn; n++, j += 2)
+        x[j] = y[j] + Math.floor((x[j - 1] + x[j + 1]) / 2);
+    };
+
+    return ReversibleTransform;
+  })();
+
+  return JpxImage;
+})();
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var bidi = PDFJS.bidi = (function bidiClosure() {
+  // Character types for symbols from 0000 to 00FF.
+  var baseTypes = [
+    'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'S', 'B', 'S', 'WS',
+    'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',
+    'BN', 'BN', 'B', 'B', 'B', 'S', 'WS', 'ON', 'ON', 'ET', 'ET', 'ET', 'ON',
+    'ON', 'ON', 'ON', 'ON', 'ON', 'CS', 'ON', 'CS', 'ON', 'EN', 'EN', 'EN',
+    'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'ON', 'ON', 'ON', 'ON', 'ON',
+    'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
+    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON',
+    'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
+    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
+    'L', 'ON', 'ON', 'ON', 'ON', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'BN',
+    'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',
+    'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',
+    'BN', 'CS', 'ON', 'ET', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'L', 'ON',
+    'ON', 'ON', 'ON', 'ON', 'ET', 'ET', 'EN', 'EN', 'ON', 'L', 'ON', 'ON', 'ON',
+    'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
+    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
+    'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
+    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
+    'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'
+  ];
+
+  // Character types for symbols from 0600 to 06FF
+  var arabicTypes = [
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM',
+    'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN',
+    'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM',
+    'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'ON', 'NSM',
+    'NSM', 'NSM', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
+    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL'
+  ];
+
+  function isOdd(i) {
+    return (i & 1) != 0;
+  }
+
+  function isEven(i) {
+    return (i & 1) == 0;
+  }
+
+  function findUnequal(arr, start, value) {
+    var j;
+    for (var j = start, jj = arr.length; j < jj; ++j) {
+      if (arr[j] != value)
+        return j;
+    }
+    return j;
+  }
+
+  function setValues(arr, start, end, value) {
+    for (var j = start; j < end; ++j) {
+      arr[j] = value;
+    }
+  }
+
+  function reverseValues(arr, start, end) {
+    for (var i = start, j = end - 1; i < j; ++i, --j) {
+      var temp = arr[i];
+      arr[i] = arr[j];
+      arr[j] = temp;
+    }
+  }
+
+  function mirrorGlyphs(c) {
+    /*
+     # BidiMirroring-1.txt
+     0028; 0029 # LEFT PARENTHESIS
+     0029; 0028 # RIGHT PARENTHESIS
+     003C; 003E # LESS-THAN SIGN
+     003E; 003C # GREATER-THAN SIGN
+     005B; 005D # LEFT SQUARE BRACKET
+     005D; 005B # RIGHT SQUARE BRACKET
+     007B; 007D # LEFT CURLY BRACKET
+     007D; 007B # RIGHT CURLY BRACKET
+     00AB; 00BB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+     00BB; 00AB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+     */
+    switch (c) {
+      case '(':
+        return ')';
+      case ')':
+        return '(';
+      case '<':
+        return '>';
+      case '>':
+        return '<';
+      case ']':
+        return '[';
+      case '[':
+        return ']';
+      case '}':
+        return '{';
+      case '{':
+        return '}';
+      case '\u00AB':
+        return '\u00BB';
+      case '\u00BB':
+        return '\u00AB';
+      default:
+        return c;
+    }
+  }
+
+  function bidi(text, startLevel) {
+    var str = text.str;
+    var strLength = str.length;
+    if (strLength == 0)
+      return str;
+
+    // get types, fill arrays
+
+    var chars = [];
+    var types = [];
+    var oldtypes = [];
+    var numBidi = 0;
+
+    for (var i = 0; i < strLength; ++i) {
+      chars[i] = str.charAt(i);
+
+      var charCode = str.charCodeAt(i);
+      var charType = 'L';
+      if (charCode <= 0x00ff)
+        charType = baseTypes[charCode];
+      else if (0x0590 <= charCode && charCode <= 0x05f4)
+        charType = 'R';
+      else if (0x0600 <= charCode && charCode <= 0x06ff)
+        charType = arabicTypes[charCode & 0xff];
+      else if (0x0700 <= charCode && charCode <= 0x08AC)
+        charType = 'AL';
+
+      if (charType == 'R' || charType == 'AL' || charType == 'AN')
+        numBidi++;
+
+      oldtypes[i] = types[i] = charType;
+    }
+
+    // detect the bidi method
+    //  if there are no rtl characters then no bidi needed
+    //  if less than 30% chars are rtl then string is primarily ltr
+    //  if more than 30% chars are rtl then string is primarily rtl
+    if (numBidi == 0) {
+      text.direction = 'ltr';
+      return str;
+    }
+
+    if (startLevel == -1) {
+      if ((strLength / numBidi) < 0.3) {
+        text.direction = 'ltr';
+        startLevel = 0;
+      } else {
+        text.direction = 'rtl';
+        startLevel = 1;
+      }
+    }
+
+    var levels = [];
+
+    for (var i = 0; i < strLength; ++i) {
+      levels[i] = startLevel;
+    }
+
+    /*
+     X1-X10: skip most of this, since we are NOT doing the embeddings.
+     */
+
+    var e = isOdd(startLevel) ? 'R' : 'L';
+    var sor = e;
+    var eor = sor;
+
+    /*
+     W1. Examine each non-spacing mark (NSM) in the level run, and change the
+     type of the NSM to the type of the previous character. If the NSM is at the
+     start of the level run, it will get the type of sor.
+     */
+
+    var lastType = sor;
+    for (var i = 0; i < strLength; ++i) {
+      if (types[i] == 'NSM')
+        types[i] = lastType;
+      else
+        lastType = types[i];
+    }
+
+    /*
+     W2. Search backwards from each instance of a European number until the
+     first strong type (R, L, AL, or sor) is found.  If an AL is found, change
+     the type of the European number to Arabic number.
+     */
+
+    var lastType = sor;
+    for (var i = 0; i < strLength; ++i) {
+      var t = types[i];
+      if (t == 'EN')
+        types[i] = (lastType == 'AL') ? 'AN' : 'EN';
+      else if (t == 'R' || t == 'L' || t == 'AL')
+        lastType = t;
+    }
+
+    /*
+     W3. Change all ALs to R.
+     */
+
+    for (var i = 0; i < strLength; ++i) {
+      var t = types[i];
+      if (t == 'AL')
+        types[i] = 'R';
+    }
+
+    /*
+     W4. A single European separator between two European numbers changes to a
+     European number. A single common separator between two numbers of the same
+     type changes to that type:
+     */
+
+    for (var i = 1; i < strLength - 1; ++i) {
+      if (types[i] == 'ES' && types[i - 1] == 'EN' && types[i + 1] == 'EN')
+        types[i] = 'EN';
+      if (types[i] == 'CS' && (types[i - 1] == 'EN' || types[i - 1] == 'AN') &&
+          types[i + 1] == types[i - 1])
+        types[i] = types[i - 1];
+    }
+
+    /*
+     W5. A sequence of European terminators adjacent to European numbers changes
+     to all European numbers:
+     */
+
+    for (var i = 0; i < strLength; ++i) {
+      if (types[i] == 'EN') {
+        // do before
+        for (var j = i - 1; j >= 0; --j) {
+          if (types[j] != 'ET')
+            break;
+          types[j] = 'EN';
+        }
+        // do after
+        for (var j = i + 1; j < strLength; --j) {
+          if (types[j] != 'ET')
+            break;
+          types[j] = 'EN';
+        }
+      }
+    }
+
+    /*
+     W6. Otherwise, separators and terminators change to Other Neutral:
+     */
+
+    for (var i = 0; i < strLength; ++i) {
+      var t = types[i];
+      if (t == 'WS' || t == 'ES' || t == 'ET' || t == 'CS')
+        types[i] = 'ON';
+    }
+
+    /*
+     W7. Search backwards from each instance of a European number until the
+     first strong type (R, L, or sor) is found. If an L is found,  then change
+     the type of the European number to L.
+     */
+
+    var lastType = sor;
+    for (var i = 0; i < strLength; ++i) {
+      var t = types[i];
+      if (t == 'EN')
+        types[i] = (lastType == 'L') ? 'L' : 'EN';
+      else if (t == 'R' || t == 'L')
+        lastType = t;
+    }
+
+    /*
+     N1. A sequence of neutrals takes the direction of the surrounding strong
+     text if the text on both sides has the same direction. European and Arabic
+     numbers are treated as though they were R. Start-of-level-run (sor) and
+     end-of-level-run (eor) are used at level run boundaries.
+     */
+
+    for (var i = 0; i < strLength; ++i) {
+      if (types[i] == 'ON') {
+        var end = findUnequal(types, i + 1, 'ON');
+        var before = sor;
+        if (i > 0)
+          before = types[i - 1];
+        var after = eor;
+        if (end + 1 < strLength)
+          after = types[end + 1];
+        if (before != 'L')
+          before = 'R';
+        if (after != 'L')
+          after = 'R';
+        if (before == after)
+          setValues(types, i, end, before);
+        i = end - 1; // reset to end (-1 so next iteration is ok)
+      }
+    }
+
+    /*
+     N2. Any remaining neutrals take the embedding direction.
+     */
+
+    for (var i = 0; i < strLength; ++i) {
+      if (types[i] == 'ON')
+        types[i] = e;
+    }
+
+    /*
+     I1. For all characters with an even (left-to-right) embedding direction,
+     those of type R go up one level and those of type AN or EN go up two
+     levels.
+     I2. For all characters with an odd (right-to-left) embedding direction,
+     those of type L, EN or AN go up one level.
+     */
+
+    for (var i = 0; i < strLength; ++i) {
+      var t = types[i];
+      if (isEven(levels[i])) {
+        if (t == 'R') {
+          levels[i] += 1;
+        } else if (t == 'AN' || t == 'EN') {
+          levels[i] += 2;
+        }
+      } else { // isOdd, so
+        if (t == 'L' || t == 'AN' || t == 'EN') {
+          levels[i] += 1;
+        }
+      }
+    }
+
+    /*
+     L1. On each line, reset the embedding level of the following characters to
+     the paragraph embedding level:
+
+     segment separators,
+     paragraph separators,
+     any sequence of whitespace characters preceding a segment separator or
+     paragraph separator, and any sequence of white space characters at the end
+     of the line.
+     */
+
+    // don't bother as text is only single line
+
+    /*
+     L2. From the highest level found in the text to the lowest odd level on
+     each line, reverse any contiguous sequence of characters that are at that
+     level or higher.
+     */
+
+    // find highest level & lowest odd level
+
+    var highestLevel = -1;
+    var lowestOddLevel = 99;
+    for (var i = 0, ii = levels.length; i < ii; ++i) {
+      var level = levels[i];
+      if (highestLevel < level)
+        highestLevel = level;
+      if (lowestOddLevel > level && isOdd(level))
+        lowestOddLevel = level;
+    }
+
+    // now reverse between those limits
+
+    for (var level = highestLevel; level >= lowestOddLevel; --level) {
+      // find segments to reverse
+      var start = -1;
+      for (var i = 0, ii = levels.length; i < ii; ++i) {
+        if (levels[i] < level) {
+          if (start >= 0) {
+            reverseValues(chars, start, i);
+            start = -1;
+          }
+        } else if (start < 0) {
+          start = i;
+        }
+      }
+      if (start >= 0) {
+        reverseValues(chars, start, levels.length);
+      }
+    }
+
+    /*
+     L3. Combining marks applied to a right-to-left base character will at this
+     point precede their base character. If the rendering engine expects them to
+     follow the base characters in the final display process, then the ordering
+     of the marks and the base character must be reversed.
+     */
+
+    // don't bother for now
+
+    /*
+     L4. A character that possesses the mirrored property as specified by
+     Section 4.7, Mirrored, must be depicted by a mirrored glyph if the resolved
+     directionality of that character is R.
+     */
+
+    // don't mirror as characters are already mirrored in the pdf
+
+    // Finally, return string
+
+    var result = '';
+    for (var i = 0, ii = chars.length; i < ii; ++i) {
+      var ch = chars[i];
+      if (ch != '<' && ch != '>')
+        result += ch;
+    }
+    return result;
+  }
+
+  return bidi;
+})();
+
+
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+var Metadata = PDFJS.Metadata = (function MetadataClosure() {
+  function fixMetadata(meta) {
+    return meta.replace(/>\\376\\377([^<]+)/g, function(all, codes) {
+      var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g,
+                                function(code, d1, d2, d3) {
+        return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);
+      });
+      var chars = '';
+      for (var i = 0; i < bytes.length; i += 2) {
+        var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);
+        chars += code >= 32 && code < 127 && code != 60 && code != 62 &&
+          code != 38 && false ? String.fromCharCode(code) :
+          '&#x' + (0x10000 + code).toString(16).substring(1) + ';';
+      }
+      return '>' + chars;
+    });
+  }
+
+  function Metadata(meta) {
+    if (typeof meta === 'string') {
+      // Ghostscript produces invalid metadata
+      meta = fixMetadata(meta);
+
+      var parser = new DOMParser();
+      meta = parser.parseFromString(meta, 'application/xml');
+    } else if (!(meta instanceof Document)) {
+      error('Metadata: Invalid metadata object');
+    }
+
+    this.metaDocument = meta;
+    this.metadata = {};
+    this.parse();
+  }
+
+  Metadata.prototype = {
+    parse: function Metadata_parse() {
+      var doc = this.metaDocument;
+      var rdf = doc.documentElement;
+
+      if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { // Wrapped in <xmpmeta>
+        rdf = rdf.firstChild;
+        while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf')
+          rdf = rdf.nextSibling;
+      }
+
+      var nodeName = (rdf) ? rdf.nodeName.toLowerCase() : null;
+      if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes())
+        return;
+
+      var childNodes = rdf.childNodes, desc, namespace, entries, entry;
+
+      for (var i = 0, length = childNodes.length; i < length; i++) {
+        desc = childNodes[i];
+        if (desc.nodeName.toLowerCase() !== 'rdf:description')
+          continue;
+
+        entries = [];
+        for (var ii = 0, iLength = desc.childNodes.length; ii < iLength; ii++) {
+          if (desc.childNodes[ii].nodeName.toLowerCase() !== '#text')
+            entries.push(desc.childNodes[ii]);
+        }
+
+        for (ii = 0, iLength = entries.length; ii < iLength; ii++) {
+          var entry = entries[ii];
+          var name = entry.nodeName.toLowerCase();
+          this.metadata[name] = entry.textContent.trim();
+        }
+      }
+    },
+
+    get: function Metadata_get(name) {
+      return this.metadata[name] || null;
+    },
+
+    has: function Metadata_has(name) {
+      return typeof this.metadata[name] !== 'undefined';
+    }
+  };
+
+  return Metadata;
+})();
+
+}).call((typeof PdfJS_window.window === 'undefined') ? this : PdfJS_window.window);
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/pts_report.html b/suite/pts/deviceTests/browserbench/assets/octane/pts_report.html
new file mode 100644
index 0000000..40e2de6
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/pts_report.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<html>
+  <head>
+    <title>pts_report</title>
+  </head>
+  <body>
+  </body>
+</html>
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/pts_report.js b/suite/pts/deviceTests/browserbench/assets/octane/pts_report.js
new file mode 100644
index 0000000..fb320ae
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/pts_report.js
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 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.
+ */
+
+/**
+ *  Utility to report benchmarking result via HTTP POST
+ *  to PTS.
+ * @param msg message to add to the report
+ * @param score resulting score
+ * @param isFinal true if this is the last / final score
+ */
+function PtsReport(msg, score, isFinal)
+{
+    req = new XMLHttpRequest();
+    req.open("POST", "pts_report.html?final=" + (isFinal ? "1" : "0") +
+             "&score=" + score + "&message=" + msg, false);
+    req.send(null)
+}
+
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/raytrace.js b/suite/pts/deviceTests/browserbench/assets/octane/raytrace.js
new file mode 100644
index 0000000..971ef72
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/raytrace.js
@@ -0,0 +1,904 @@
+// The ray tracer code in this file is written by Adam Burmister. It
+// is available in its original form from:
+//
+//   http://labs.flog.nz.co/raytracer/
+//
+// It has been modified slightly by Google to work as a standalone
+// benchmark, but the all the computational code remains
+// untouched. This file also contains a copy of parts of the Prototype
+// JavaScript framework which is used by the ray tracer.
+
+var RayTrace = new BenchmarkSuite('RayTrace', 739989, [
+  new Benchmark('RayTrace', renderScene)
+]);
+
+
+// Variable used to hold a number that can be used to verify that
+// the scene was ray traced correctly.
+var checkNumber;
+
+
+// ------------------------------------------------------------------------
+// ------------------------------------------------------------------------
+
+// The following is a copy of parts of the Prototype JavaScript library:
+
+// Prototype JavaScript framework, version 1.5.0
+// (c) 2005-2007 Sam Stephenson
+//
+// Prototype is freely distributable under the terms of an MIT-style license.
+// For details, see the Prototype web site: http://prototype.conio.net/
+
+
+var Class = {
+  create: function() {
+    return function() {
+      this.initialize.apply(this, arguments);
+    }
+  }
+};
+
+
+Object.extend = function(destination, source) {
+  for (var property in source) {
+    destination[property] = source[property];
+  }
+  return destination;
+};
+
+
+// ------------------------------------------------------------------------
+// ------------------------------------------------------------------------
+
+// The rest of this file is the actual ray tracer written by Adam
+// Burmister. It's a concatenation of the following files:
+//
+//   flog/color.js
+//   flog/light.js
+//   flog/vector.js
+//   flog/ray.js
+//   flog/scene.js
+//   flog/material/basematerial.js
+//   flog/material/solid.js
+//   flog/material/chessboard.js
+//   flog/shape/baseshape.js
+//   flog/shape/sphere.js
+//   flog/shape/plane.js
+//   flog/intersectioninfo.js
+//   flog/camera.js
+//   flog/background.js
+//   flog/engine.js
+
+
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Color = Class.create();
+
+Flog.RayTracer.Color.prototype = {
+    red : 0.0,
+    green : 0.0,
+    blue : 0.0,
+
+    initialize : function(r, g, b) {
+        if(!r) r = 0.0;
+        if(!g) g = 0.0;
+        if(!b) b = 0.0;
+
+        this.red = r;
+        this.green = g;
+        this.blue = b;
+    },
+
+    add : function(c1, c2){
+        var result = new Flog.RayTracer.Color(0,0,0);
+
+        result.red = c1.red + c2.red;
+        result.green = c1.green + c2.green;
+        result.blue = c1.blue + c2.blue;
+
+        return result;
+    },
+
+    addScalar: function(c1, s){
+        var result = new Flog.RayTracer.Color(0,0,0);
+
+        result.red = c1.red + s;
+        result.green = c1.green + s;
+        result.blue = c1.blue + s;
+
+        result.limit();
+
+        return result;
+    },
+
+    subtract: function(c1, c2){
+        var result = new Flog.RayTracer.Color(0,0,0);
+
+        result.red = c1.red - c2.red;
+        result.green = c1.green - c2.green;
+        result.blue = c1.blue - c2.blue;
+
+        return result;
+    },
+
+    multiply : function(c1, c2) {
+        var result = new Flog.RayTracer.Color(0,0,0);
+
+        result.red = c1.red * c2.red;
+        result.green = c1.green * c2.green;
+        result.blue = c1.blue * c2.blue;
+
+        return result;
+    },
+
+    multiplyScalar : function(c1, f) {
+        var result = new Flog.RayTracer.Color(0,0,0);
+
+        result.red = c1.red * f;
+        result.green = c1.green * f;
+        result.blue = c1.blue * f;
+
+        return result;
+    },
+
+    divideFactor : function(c1, f) {
+        var result = new Flog.RayTracer.Color(0,0,0);
+
+        result.red = c1.red / f;
+        result.green = c1.green / f;
+        result.blue = c1.blue / f;
+
+        return result;
+    },
+
+    limit: function(){
+        this.red = (this.red > 0.0) ? ( (this.red > 1.0) ? 1.0 : this.red ) : 0.0;
+        this.green = (this.green > 0.0) ? ( (this.green > 1.0) ? 1.0 : this.green ) : 0.0;
+        this.blue = (this.blue > 0.0) ? ( (this.blue > 1.0) ? 1.0 : this.blue ) : 0.0;
+    },
+
+    distance : function(color) {
+        var d = Math.abs(this.red - color.red) + Math.abs(this.green - color.green) + Math.abs(this.blue - color.blue);
+        return d;
+    },
+
+    blend: function(c1, c2, w){
+        var result = new Flog.RayTracer.Color(0,0,0);
+        result = Flog.RayTracer.Color.prototype.add(
+                    Flog.RayTracer.Color.prototype.multiplyScalar(c1, 1 - w),
+                    Flog.RayTracer.Color.prototype.multiplyScalar(c2, w)
+                  );
+        return result;
+    },
+
+    brightness : function() {
+        var r = Math.floor(this.red*255);
+        var g = Math.floor(this.green*255);
+        var b = Math.floor(this.blue*255);
+        return (r * 77 + g * 150 + b * 29) >> 8;
+    },
+
+    toString : function () {
+        var r = Math.floor(this.red*255);
+        var g = Math.floor(this.green*255);
+        var b = Math.floor(this.blue*255);
+
+        return "rgb("+ r +","+ g +","+ b +")";
+    }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Light = Class.create();
+
+Flog.RayTracer.Light.prototype = {
+    position: null,
+    color: null,
+    intensity: 10.0,
+
+    initialize : function(pos, color, intensity) {
+        this.position = pos;
+        this.color = color;
+        this.intensity = (intensity ? intensity : 10.0);
+    },
+
+    toString : function () {
+        return 'Light [' + this.position.x + ',' + this.position.y + ',' + this.position.z + ']';
+    }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Vector = Class.create();
+
+Flog.RayTracer.Vector.prototype = {
+    x : 0.0,
+    y : 0.0,
+    z : 0.0,
+
+    initialize : function(x, y, z) {
+        this.x = (x ? x : 0);
+        this.y = (y ? y : 0);
+        this.z = (z ? z : 0);
+    },
+
+    copy: function(vector){
+        this.x = vector.x;
+        this.y = vector.y;
+        this.z = vector.z;
+    },
+
+    normalize : function() {
+        var m = this.magnitude();
+        return new Flog.RayTracer.Vector(this.x / m, this.y / m, this.z / m);
+    },
+
+    magnitude : function() {
+        return Math.sqrt((this.x * this.x) + (this.y * this.y) + (this.z * this.z));
+    },
+
+    cross : function(w) {
+        return new Flog.RayTracer.Vector(
+                                            -this.z * w.y + this.y * w.z,
+                                           this.z * w.x - this.x * w.z,
+                                          -this.y * w.x + this.x * w.y);
+    },
+
+    dot : function(w) {
+        return this.x * w.x + this.y * w.y + this.z * w.z;
+    },
+
+    add : function(v, w) {
+        return new Flog.RayTracer.Vector(w.x + v.x, w.y + v.y, w.z + v.z);
+    },
+
+    subtract : function(v, w) {
+        if(!w || !v) throw 'Vectors must be defined [' + v + ',' + w + ']';
+        return new Flog.RayTracer.Vector(v.x - w.x, v.y - w.y, v.z - w.z);
+    },
+
+    multiplyVector : function(v, w) {
+        return new Flog.RayTracer.Vector(v.x * w.x, v.y * w.y, v.z * w.z);
+    },
+
+    multiplyScalar : function(v, w) {
+        return new Flog.RayTracer.Vector(v.x * w, v.y * w, v.z * w);
+    },
+
+    toString : function () {
+        return 'Vector [' + this.x + ',' + this.y + ',' + this.z + ']';
+    }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Ray = Class.create();
+
+Flog.RayTracer.Ray.prototype = {
+    position : null,
+    direction : null,
+    initialize : function(pos, dir) {
+        this.position = pos;
+        this.direction = dir;
+    },
+
+    toString : function () {
+        return 'Ray [' + this.position + ',' + this.direction + ']';
+    }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Scene = Class.create();
+
+Flog.RayTracer.Scene.prototype = {
+    camera : null,
+    shapes : [],
+    lights : [],
+    background : null,
+
+    initialize : function() {
+        this.camera = new Flog.RayTracer.Camera(
+            new Flog.RayTracer.Vector(0,0,-5),
+            new Flog.RayTracer.Vector(0,0,1),
+            new Flog.RayTracer.Vector(0,1,0)
+        );
+        this.shapes = new Array();
+        this.lights = new Array();
+        this.background = new Flog.RayTracer.Background(new Flog.RayTracer.Color(0,0,0.5), 0.2);
+    }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Material) == 'undefined') Flog.RayTracer.Material = {};
+
+Flog.RayTracer.Material.BaseMaterial = Class.create();
+
+Flog.RayTracer.Material.BaseMaterial.prototype = {
+
+    gloss: 2.0,             // [0...infinity] 0 = matt
+    transparency: 0.0,      // 0=opaque
+    reflection: 0.0,        // [0...infinity] 0 = no reflection
+    refraction: 0.50,
+    hasTexture: false,
+
+    initialize : function() {
+
+    },
+
+    getColor: function(u, v){
+
+    },
+
+    wrapUp: function(t){
+        t = t % 2.0;
+        if(t < -1) t += 2.0;
+        if(t >= 1) t -= 2.0;
+        return t;
+    },
+
+    toString : function () {
+        return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+    }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Material.Solid = Class.create();
+
+Flog.RayTracer.Material.Solid.prototype = Object.extend(
+    new Flog.RayTracer.Material.BaseMaterial(), {
+        initialize : function(color, reflection, refraction, transparency, gloss) {
+            this.color = color;
+            this.reflection = reflection;
+            this.transparency = transparency;
+            this.gloss = gloss;
+            this.hasTexture = false;
+        },
+
+        getColor: function(u, v){
+            return this.color;
+        },
+
+        toString : function () {
+            return 'SolidMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+        }
+    }
+);
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Material.Chessboard = Class.create();
+
+Flog.RayTracer.Material.Chessboard.prototype = Object.extend(
+    new Flog.RayTracer.Material.BaseMaterial(), {
+        colorEven: null,
+        colorOdd: null,
+        density: 0.5,
+
+        initialize : function(colorEven, colorOdd, reflection, transparency, gloss, density) {
+            this.colorEven = colorEven;
+            this.colorOdd = colorOdd;
+            this.reflection = reflection;
+            this.transparency = transparency;
+            this.gloss = gloss;
+            this.density = density;
+            this.hasTexture = true;
+        },
+
+        getColor: function(u, v){
+            var t = this.wrapUp(u * this.density) * this.wrapUp(v * this.density);
+
+            if(t < 0.0)
+                return this.colorEven;
+            else
+                return this.colorOdd;
+        },
+
+        toString : function () {
+            return 'ChessMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+        }
+    }
+);
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.Sphere = Class.create();
+
+Flog.RayTracer.Shape.Sphere.prototype = {
+    initialize : function(pos, radius, material) {
+        this.radius = radius;
+        this.position = pos;
+        this.material = material;
+    },
+
+    intersect: function(ray){
+        var info = new Flog.RayTracer.IntersectionInfo();
+        info.shape = this;
+
+        var dst = Flog.RayTracer.Vector.prototype.subtract(ray.position, this.position);
+
+        var B = dst.dot(ray.direction);
+        var C = dst.dot(dst) - (this.radius * this.radius);
+        var D = (B * B) - C;
+
+        if(D > 0){ // intersection!
+            info.isHit = true;
+            info.distance = (-B) - Math.sqrt(D);
+            info.position = Flog.RayTracer.Vector.prototype.add(
+                                                ray.position,
+                                                Flog.RayTracer.Vector.prototype.multiplyScalar(
+                                                    ray.direction,
+                                                    info.distance
+                                                )
+                                            );
+            info.normal = Flog.RayTracer.Vector.prototype.subtract(
+                                            info.position,
+                                            this.position
+                                        ).normalize();
+
+            info.color = this.material.getColor(0,0);
+        } else {
+            info.isHit = false;
+        }
+        return info;
+    },
+
+    toString : function () {
+        return 'Sphere [position=' + this.position + ', radius=' + this.radius + ']';
+    }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.Plane = Class.create();
+
+Flog.RayTracer.Shape.Plane.prototype = {
+    d: 0.0,
+
+    initialize : function(pos, d, material) {
+        this.position = pos;
+        this.d = d;
+        this.material = material;
+    },
+
+    intersect: function(ray){
+        var info = new Flog.RayTracer.IntersectionInfo();
+
+        var Vd = this.position.dot(ray.direction);
+        if(Vd == 0) return info; // no intersection
+
+        var t = -(this.position.dot(ray.position) + this.d) / Vd;
+        if(t <= 0) return info;
+
+        info.shape = this;
+        info.isHit = true;
+        info.position = Flog.RayTracer.Vector.prototype.add(
+                                            ray.position,
+                                            Flog.RayTracer.Vector.prototype.multiplyScalar(
+                                                ray.direction,
+                                                t
+                                            )
+                                        );
+        info.normal = this.position;
+        info.distance = t;
+
+        if(this.material.hasTexture){
+            var vU = new Flog.RayTracer.Vector(this.position.y, this.position.z, -this.position.x);
+            var vV = vU.cross(this.position);
+            var u = info.position.dot(vU);
+            var v = info.position.dot(vV);
+            info.color = this.material.getColor(u,v);
+        } else {
+            info.color = this.material.getColor(0,0);
+        }
+
+        return info;
+    },
+
+    toString : function () {
+        return 'Plane [' + this.position + ', d=' + this.d + ']';
+    }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.IntersectionInfo = Class.create();
+
+Flog.RayTracer.IntersectionInfo.prototype = {
+    isHit: false,
+    hitCount: 0,
+    shape: null,
+    position: null,
+    normal: null,
+    color: null,
+    distance: null,
+
+    initialize : function() {
+        this.color = new Flog.RayTracer.Color(0,0,0);
+    },
+
+    toString : function () {
+        return 'Intersection [' + this.position + ']';
+    }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Camera = Class.create();
+
+Flog.RayTracer.Camera.prototype = {
+    position: null,
+    lookAt: null,
+    equator: null,
+    up: null,
+    screen: null,
+
+    initialize : function(pos, lookAt, up) {
+        this.position = pos;
+        this.lookAt = lookAt;
+        this.up = up;
+        this.equator = lookAt.normalize().cross(this.up);
+        this.screen = Flog.RayTracer.Vector.prototype.add(this.position, this.lookAt);
+    },
+
+    getRay: function(vx, vy){
+        var pos = Flog.RayTracer.Vector.prototype.subtract(
+            this.screen,
+            Flog.RayTracer.Vector.prototype.subtract(
+                Flog.RayTracer.Vector.prototype.multiplyScalar(this.equator, vx),
+                Flog.RayTracer.Vector.prototype.multiplyScalar(this.up, vy)
+            )
+        );
+        pos.y = pos.y * -1;
+        var dir = Flog.RayTracer.Vector.prototype.subtract(
+            pos,
+            this.position
+        );
+
+        var ray = new Flog.RayTracer.Ray(pos, dir.normalize());
+
+        return ray;
+    },
+
+    toString : function () {
+        return 'Ray []';
+    }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Background = Class.create();
+
+Flog.RayTracer.Background.prototype = {
+    color : null,
+    ambience : 0.0,
+
+    initialize : function(color, ambience) {
+        this.color = color;
+        this.ambience = ambience;
+    }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Engine = Class.create();
+
+Flog.RayTracer.Engine.prototype = {
+    canvas: null, /* 2d context we can render to */
+
+    initialize: function(options){
+        this.options = Object.extend({
+                canvasHeight: 100,
+                canvasWidth: 100,
+                pixelWidth: 2,
+                pixelHeight: 2,
+                renderDiffuse: false,
+                renderShadows: false,
+                renderHighlights: false,
+                renderReflections: false,
+                rayDepth: 2
+            }, options || {});
+
+        this.options.canvasHeight /= this.options.pixelHeight;
+        this.options.canvasWidth /= this.options.pixelWidth;
+
+        /* TODO: dynamically include other scripts */
+    },
+
+    setPixel: function(x, y, color){
+        var pxW, pxH;
+        pxW = this.options.pixelWidth;
+        pxH = this.options.pixelHeight;
+
+        if (this.canvas) {
+          this.canvas.fillStyle = color.toString();
+          this.canvas.fillRect (x * pxW, y * pxH, pxW, pxH);
+        } else {
+          if (x ===  y) {
+            checkNumber += color.brightness();
+          }
+          // print(x * pxW, y * pxH, pxW, pxH);
+        }
+    },
+
+    renderScene: function(scene, canvas){
+        checkNumber = 0;
+        /* Get canvas */
+        if (canvas) {
+          this.canvas = canvas.getContext("2d");
+        } else {
+          this.canvas = null;
+        }
+
+        var canvasHeight = this.options.canvasHeight;
+        var canvasWidth = this.options.canvasWidth;
+
+        for(var y=0; y < canvasHeight; y++){
+            for(var x=0; x < canvasWidth; x++){
+                var yp = y * 1.0 / canvasHeight * 2 - 1;
+          		var xp = x * 1.0 / canvasWidth * 2 - 1;
+
+          		var ray = scene.camera.getRay(xp, yp);
+
+          		var color = this.getPixelColor(ray, scene);
+
+            	this.setPixel(x, y, color);
+            }
+        }
+        if (checkNumber !== 2321) {
+          throw new Error("Scene rendered incorrectly");
+        }
+    },
+
+    getPixelColor: function(ray, scene){
+        var info = this.testIntersection(ray, scene, null);
+        if(info.isHit){
+            var color = this.rayTrace(info, ray, scene, 0);
+            return color;
+        }
+        return scene.background.color;
+    },
+
+    testIntersection: function(ray, scene, exclude){
+        var hits = 0;
+        var best = new Flog.RayTracer.IntersectionInfo();
+        best.distance = 2000;
+
+        for(var i=0; i<scene.shapes.length; i++){
+            var shape = scene.shapes[i];
+
+            if(shape != exclude){
+                var info = shape.intersect(ray);
+                if(info.isHit && info.distance >= 0 && info.distance < best.distance){
+                    best = info;
+                    hits++;
+                }
+            }
+        }
+        best.hitCount = hits;
+        return best;
+    },
+
+    getReflectionRay: function(P,N,V){
+        var c1 = -N.dot(V);
+        var R1 = Flog.RayTracer.Vector.prototype.add(
+            Flog.RayTracer.Vector.prototype.multiplyScalar(N, 2*c1),
+            V
+        );
+        return new Flog.RayTracer.Ray(P, R1);
+    },
+
+    rayTrace: function(info, ray, scene, depth){
+        // Calc ambient
+        var color = Flog.RayTracer.Color.prototype.multiplyScalar(info.color, scene.background.ambience);
+        var oldColor = color;
+        var shininess = Math.pow(10, info.shape.material.gloss + 1);
+
+        for(var i=0; i<scene.lights.length; i++){
+            var light = scene.lights[i];
+
+            // Calc diffuse lighting
+            var v = Flog.RayTracer.Vector.prototype.subtract(
+                                light.position,
+                                info.position
+                            ).normalize();
+
+            if(this.options.renderDiffuse){
+                var L = v.dot(info.normal);
+                if(L > 0.0){
+                    color = Flog.RayTracer.Color.prototype.add(
+                                        color,
+                                        Flog.RayTracer.Color.prototype.multiply(
+                                            info.color,
+                                            Flog.RayTracer.Color.prototype.multiplyScalar(
+                                                light.color,
+                                                L
+                                            )
+                                        )
+                                    );
+                }
+            }
+
+            // The greater the depth the more accurate the colours, but
+            // this is exponentially (!) expensive
+            if(depth <= this.options.rayDepth){
+          // calculate reflection ray
+          if(this.options.renderReflections && info.shape.material.reflection > 0)
+          {
+              var reflectionRay = this.getReflectionRay(info.position, info.normal, ray.direction);
+              var refl = this.testIntersection(reflectionRay, scene, info.shape);
+
+              if (refl.isHit && refl.distance > 0){
+                  refl.color = this.rayTrace(refl, reflectionRay, scene, depth + 1);
+              } else {
+                  refl.color = scene.background.color;
+                        }
+
+                  color = Flog.RayTracer.Color.prototype.blend(
+                    color,
+                    refl.color,
+                    info.shape.material.reflection
+                  );
+          }
+
+                // Refraction
+                /* TODO */
+            }
+
+            /* Render shadows and highlights */
+
+            var shadowInfo = new Flog.RayTracer.IntersectionInfo();
+
+            if(this.options.renderShadows){
+                var shadowRay = new Flog.RayTracer.Ray(info.position, v);
+
+                shadowInfo = this.testIntersection(shadowRay, scene, info.shape);
+                if(shadowInfo.isHit && shadowInfo.shape != info.shape /*&& shadowInfo.shape.type != 'PLANE'*/){
+                    var vA = Flog.RayTracer.Color.prototype.multiplyScalar(color, 0.5);
+                    var dB = (0.5 * Math.pow(shadowInfo.shape.material.transparency, 0.5));
+                    color = Flog.RayTracer.Color.prototype.addScalar(vA,dB);
+                }
+            }
+
+      // Phong specular highlights
+      if(this.options.renderHighlights && !shadowInfo.isHit && info.shape.material.gloss > 0){
+        var Lv = Flog.RayTracer.Vector.prototype.subtract(
+                            info.shape.position,
+                            light.position
+                        ).normalize();
+
+        var E = Flog.RayTracer.Vector.prototype.subtract(
+                            scene.camera.position,
+                            info.shape.position
+                        ).normalize();
+
+        var H = Flog.RayTracer.Vector.prototype.subtract(
+                            E,
+                            Lv
+                        ).normalize();
+
+        var glossWeight = Math.pow(Math.max(info.normal.dot(H), 0), shininess);
+        color = Flog.RayTracer.Color.prototype.add(
+                            Flog.RayTracer.Color.prototype.multiplyScalar(light.color, glossWeight),
+                            color
+                        );
+      }
+        }
+        color.limit();
+        return color;
+    }
+};
+
+
+function renderScene(){
+    var scene = new Flog.RayTracer.Scene();
+
+    scene.camera = new Flog.RayTracer.Camera(
+                        new Flog.RayTracer.Vector(0, 0, -15),
+                        new Flog.RayTracer.Vector(-0.2, 0, 5),
+                        new Flog.RayTracer.Vector(0, 1, 0)
+                    );
+
+    scene.background = new Flog.RayTracer.Background(
+                                new Flog.RayTracer.Color(0.5, 0.5, 0.5),
+                                0.4
+                            );
+
+    var sphere = new Flog.RayTracer.Shape.Sphere(
+        new Flog.RayTracer.Vector(-1.5, 1.5, 2),
+        1.5,
+        new Flog.RayTracer.Material.Solid(
+            new Flog.RayTracer.Color(0,0.5,0.5),
+            0.3,
+            0.0,
+            0.0,
+            2.0
+        )
+    );
+
+    var sphere1 = new Flog.RayTracer.Shape.Sphere(
+        new Flog.RayTracer.Vector(1, 0.25, 1),
+        0.5,
+        new Flog.RayTracer.Material.Solid(
+            new Flog.RayTracer.Color(0.9,0.9,0.9),
+            0.1,
+            0.0,
+            0.0,
+            1.5
+        )
+    );
+
+    var plane = new Flog.RayTracer.Shape.Plane(
+                                new Flog.RayTracer.Vector(0.1, 0.9, -0.5).normalize(),
+                                1.2,
+                                new Flog.RayTracer.Material.Chessboard(
+                                    new Flog.RayTracer.Color(1,1,1),
+                                    new Flog.RayTracer.Color(0,0,0),
+                                    0.2,
+                                    0.0,
+                                    1.0,
+                                    0.7
+                                )
+                            );
+
+    scene.shapes.push(plane);
+    scene.shapes.push(sphere);
+    scene.shapes.push(sphere1);
+
+    var light = new Flog.RayTracer.Light(
+        new Flog.RayTracer.Vector(5, 10, -1),
+        new Flog.RayTracer.Color(0.8, 0.8, 0.8)
+    );
+
+    var light1 = new Flog.RayTracer.Light(
+        new Flog.RayTracer.Vector(-3, 5, -15),
+        new Flog.RayTracer.Color(0.8, 0.8, 0.8),
+        100
+    );
+
+    scene.lights.push(light);
+    scene.lights.push(light1);
+
+    var imageWidth = 100; // $F('imageWidth');
+    var imageHeight = 100; // $F('imageHeight');
+    var pixelSize = "5,5".split(','); //  $F('pixelSize').split(',');
+    var renderDiffuse = true; // $F('renderDiffuse');
+    var renderShadows = true; // $F('renderShadows');
+    var renderHighlights = true; // $F('renderHighlights');
+    var renderReflections = true; // $F('renderReflections');
+    var rayDepth = 2;//$F('rayDepth');
+
+    var raytracer = new Flog.RayTracer.Engine(
+        {
+            canvasWidth: imageWidth,
+            canvasHeight: imageHeight,
+            pixelWidth: pixelSize[0],
+            pixelHeight: pixelSize[1],
+            "renderDiffuse": renderDiffuse,
+            "renderHighlights": renderHighlights,
+            "renderShadows": renderShadows,
+            "renderReflections": renderReflections,
+            "rayDepth": rayDepth
+        }
+    );
+
+    raytracer.renderScene(scene, null, 0);
+}
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/regexp.js b/suite/pts/deviceTests/browserbench/assets/octane/regexp.js
new file mode 100644
index 0000000..f1474bf
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/regexp.js
@@ -0,0 +1,1764 @@
+// Copyright 2010 the V8 project authors. 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.
+//     * Neither the name of Google Inc. 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 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.
+
+// Automatically generated on 2009-01-30. Manually updated on 2010-09-17.
+
+// This benchmark is generated by loading 50 of the most popular pages
+// on the web and logging all regexp operations performed.  Each
+// operation is given a weight that is calculated from an estimate of
+// the popularity of the pages where it occurs and the number of times
+// it is executed while loading each page.  Furthermore the literal
+// letters in the data are encoded using ROT13 in a way that does not
+// affect how the regexps match their input.  Finally the strings are
+// scrambled to exercise the regexp engine on different input strings.
+
+
+var RegExpSuite = new BenchmarkSuite('RegExp', 910985, [
+  new Benchmark("RegExp", RegExpRun, RegExpSetup, RegExpTearDown, 16)
+]);
+
+var regExpBenchmark = null;
+
+function RegExpSetup() {
+  regExpBenchmark = new RegExpBenchmark();
+  RegExpRun(); // run once to get system initialized
+}
+
+function RegExpRun() {
+  regExpBenchmark.run();
+}
+
+function RegExpTearDown() {
+  regExpBenchmark = null;
+}
+
+// Returns an array of n different variants of the input string str.
+// The variants are computed by randomly rotating one random
+// character.
+function computeInputVariants(str, n) {
+  var variants = [ str ];
+  for (var i = 1; i < n; i++) {
+    var pos = Math.floor(Math.random() * str.length);
+    var chr = String.fromCharCode((str.charCodeAt(pos) + Math.floor(Math.random() * 128)) % 128);
+    variants[i] = str.substring(0, pos) + chr + str.substring(pos + 1, str.length);
+  }
+  return variants;
+}
+
+function RegExpBenchmark() {
+  var re0 = /^ba/;
+  var re1 = /(((\w+):\/\/)([^\/:]*)(:(\d+))?)?([^#?]*)(\?([^#]*))?(#(.*))?/;
+  var re2 = /^\s*|\s*$/g;
+  var re3 = /\bQBZPbageby_cynprubyqre\b/;
+  var re4 = /,/;
+  var re5 = /\bQBZPbageby_cynprubyqre\b/g;
+  var re6 = /^[\s\xa0]+|[\s\xa0]+$/g;
+  var re7 = /(\d*)(\D*)/g;
+  var re8 = /=/;
+  var re9 = /(^|\s)lhv\-h(\s|$)/;
+  var str0 = 'Zbmvyyn/5.0 (Jvaqbjf; H; Jvaqbjf AG 5.1; ra-HF) NccyrJroXvg/528.9 (XUGZY, yvxr Trpxb) Puebzr/2.0.157.0 Fnsnev/528.9';
+  var re10 = /\#/g;
+  var re11 = /\./g;
+  var re12 = /'/g;
+  var re13 = /\?[\w\W]*(sevraqvq|punaaryvq|tebhcvq)=([^\&\?#]*)/i;
+  var str1 = 'Fubpxjnir Synfu 9.0  e115';
+  var re14 = /\s+/g;
+  var re15 = /^\s*(\S*(\s+\S+)*)\s*$/;
+  var re16 = /(-[a-z])/i;
+
+  var s0 = computeInputVariants('pyvpx', 6511);
+  var s1 = computeInputVariants('uggc://jjj.snprobbx.pbz/ybtva.cuc', 1844);
+  var s2 = computeInputVariants('QBZPbageby_cynprubyqre', 739);
+  var s3 = computeInputVariants('uggc://jjj.snprobbx.pbz/', 598);
+  var s4 = computeInputVariants('uggc://jjj.snprobbx.pbz/fepu.cuc', 454);
+  var s5 = computeInputVariants('qqqq, ZZZ q, llll', 352);
+  var s6 = computeInputVariants('vachggrkg QBZPbageby_cynprubyqre', 312);
+  var s7 = computeInputVariants('/ZlFcnprUbzrcntr/Vaqrk-FvgrUbzr,10000000', 282);
+  var s8 = computeInputVariants('vachggrkg', 177);
+  var s9 = computeInputVariants('528.9', 170);
+  var s10 = computeInputVariants('528', 170);
+  var s11 = computeInputVariants('VCPhygher=ra-HF', 156);
+  var s12 = computeInputVariants('CersreerqPhygher=ra-HF', 156);
+  var s13 = computeInputVariants('xrlcerff', 144);
+  var s14 = computeInputVariants('521', 139);
+  var s15 = computeInputVariants(str0, 139);
+  var s16 = computeInputVariants('qvi .so_zrah', 137);
+  var s17 = computeInputVariants('qvi.so_zrah', 137);
+  var s18 = computeInputVariants('uvqqra_ryrz', 117);
+  var s19 = computeInputVariants('sevraqfgre_naba=nvq%3Qn6ss9p85n868ro9s059pn854735956o3%26ers%3Q%26df%3Q%26vpgl%3QHF', 95);
+  var s20 = computeInputVariants('uggc://ubzr.zlfcnpr.pbz/vaqrk.psz', 93);
+  var s21 = computeInputVariants(str1, 92);
+  var s22 = computeInputVariants('svefg', 85);
+  var s23 = computeInputVariants('uggc://cebsvyr.zlfcnpr.pbz/vaqrk.psz', 85);
+  var s24 = computeInputVariants('ynfg', 85);
+  var s25 = computeInputVariants('qvfcynl', 85);
+
+  function runBlock0() {
+    for (var i = 0; i < 6511; i++) {
+      re0.exec(s0[i]);
+    }
+    for (var i = 0; i < 1844; i++) {
+      re1.exec(s1[i]);
+    }
+    for (var i = 0; i < 739; i++) {
+      s2[i].replace(re2, '');
+    }
+    for (var i = 0; i < 598; i++) {
+      re1.exec(s3[i]);
+    }
+    for (var i = 0; i < 454; i++) {
+      re1.exec(s4[i]);
+    }
+    for (var i = 0; i < 352; i++) {
+      /qqqq|qqq|qq|q|ZZZZ|ZZZ|ZZ|Z|llll|ll|l|uu|u|UU|U|zz|z|ff|f|gg|g|sss|ss|s|mmm|mm|m/g.exec(s5[i]);
+    }
+    for (var i = 0; i < 312; i++) {
+      re3.exec(s6[i]);
+    }
+    for (var i = 0; i < 282; i++) {
+      re4.exec(s7[i]);
+    }
+    for (var i = 0; i < 177; i++) {
+      s8[i].replace(re5, '');
+    }
+    for (var i = 0; i < 170; i++) {
+      s9[i].replace(re6, '');
+      re7.exec(s10[i]);
+    }
+    for (var i = 0; i < 156; i++) {
+      re8.exec(s11[i]);
+      re8.exec(s12[i]);
+    }
+    for (var i = 0; i < 144; i++) {
+      re0.exec(s13[i]);
+    }
+    for (var i = 0; i < 139; i++) {
+      s14[i].replace(re6, '');
+      re7.exec(s14[i]);
+      re9.exec('');
+      /JroXvg\/(\S+)/.exec(s15[i]);
+    }
+    for (var i = 0; i < 137; i++) {
+      s16[i].replace(re10, '');
+      s16[i].replace(/\[/g, '');
+      s17[i].replace(re11, '');
+    }
+    for (var i = 0; i < 117; i++) {
+      s18[i].replace(re2, '');
+    }
+    for (var i = 0; i < 95; i++) {
+      /(?:^|;)\s*sevraqfgre_ynat=([^;]*)/.exec(s19[i]);
+    }
+    for (var i = 0; i < 93; i++) {
+      s20[i].replace(re12, '');
+      re13.exec(s20[i]);
+    }
+    for (var i = 0; i < 92; i++) {
+      s21[i].replace(/([a-zA-Z]|\s)+/, '');
+    }
+    for (var i = 0; i < 85; i++) {
+      s22[i].replace(re14, '');
+      s22[i].replace(re15, '');
+      s23[i].replace(re12, '');
+      s24[i].replace(re14, '');
+      s24[i].replace(re15, '');
+      re16.exec(s25[i]);
+      re13.exec(s23[i]);
+    }
+  }
+  var re17 = /(^|[^\\])\"\\\/Qngr\((-?[0-9]+)\)\\\/\"/g;
+  var str2 = '{"anzr":"","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":gehr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"\xa4","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":gehr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, qq ZZZZ llll UU:zz:ff","YbatQngrCnggrea":"qqqq, qq ZZZZ llll","YbatGvzrCnggrea":"UU:zz:ff","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU\':\'zz\':\'ff \'TZG\'","FubegQngrCnggrea":"ZZ/qq/llll","FubegGvzrCnggrea":"UU:zz","FbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq\'G\'UU\':\'zz\':\'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq UU\':\'zz\':\'ff\'M\'","LrneZbaguCnggrea":"llll ZZZZ","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":gehr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}';
+  var str3 = '{"anzr":"ra-HF","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":snyfr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"$","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":snyfr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, ZZZZ qq, llll u:zz:ff gg","YbatQngrCnggrea":"qqqq, ZZZZ qq, llll","YbatGvzrCnggrea":"u:zz:ff gg","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU\':\'zz\':\'ff \'TZG\'","FubegQngrCnggrea":"Z/q/llll","FubegGvzrCnggrea":"u:zz gg","FbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq\'G\'UU\':\'zz\':\'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq UU\':\'zz\':\'ff\'M\'","LrneZbaguCnggrea":"ZZZZ, llll","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":snyfr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}';
+  var str4 = 'HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str5 = 'HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var re18 = /^\s+|\s+$/g;
+  var str6 = 'uggc://jjj.snprobbx.pbz/vaqrk.cuc';
+  var re19 = /(?:^|\s+)ba(?:\s+|$)/;
+  var re20 = /[+, ]/;
+  var re21 = /ybnqrq|pbzcyrgr/;
+  var str7 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(d1)c=d1.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+d1.Cnaryf[c].Jvqgu,o=g+d1.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(d1&&d1.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(d1)d1.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(d1)d1.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;d1.IjTc=d2(n,c){ine nq=d1;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;d1.IjTpy=d2(n,c,p){ine cn=d1.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;d1.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;d1.IjYvzvg1=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;d1.IjYvzvg0=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;d1.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",d1.rvsg);};;d1.IjNavzSHC=d2(n,c){ine nq=d1;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;d1.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;d1.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;d1.IjPnapryNyyGvzrbhgf=d2(n){vs(d1.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<d1.bac;c++)IjPnapryGvzrbhg(n,c);};;d1.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;d1.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;d1.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<d1.bac;c++)IjErfrgGvzrbhg(n,c);};;d1.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare(\'"+rig+"\',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;d1.IjPyrnaHc=d2(n){IjCvat(n,"G");ine nq=d1;sbe(ine v=0;v<nq.Cnaryf.yratgu;v++){IjUvqrCnary(n,v,gehr);}gel{IjTrgBow(nq.gya).vaareUGZY="";}pngpu(r){}vs(nq.gya!=nq.gya2)gel{IjTrgBow(nq.gya2).vaareUGZY="";}pngpu(r){}gel{d1=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"haybnq","IjHayNQ_VQ");}pngpu(r){}gel{jvaqbj.IjHayNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"fpebyy","IjFeNQ_VQ");}pngpu(r){}gel{jvaqbj.IjFeNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"erfvmr","IjEmNQ_VQ");}pngpu(r){}gel{jvaqbj.IjEmNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n';
+  var str8 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=shapgvba(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=shapgvba(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=shapgvba(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=shapgvba(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=shapgvba(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=shapgvba(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=shapgvba(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=shapgvba(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbir';
+  var str9 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=d2(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=d2(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare(\'"+rig+"\',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjPyrna';
+
+  var s26 = computeInputVariants('VC=74.125.75.1', 81);
+  var s27 = computeInputVariants('9.0  e115', 78);
+  var s28 = computeInputVariants('k',78);
+  var s29 = computeInputVariants(str2, 81);
+  var s30 = computeInputVariants(str3, 81);
+  var s31 = computeInputVariants('144631658', 78);
+  var s32 = computeInputVariants('Pbhagel=IIZ%3Q', 78);
+  var s33 = computeInputVariants('Pbhagel=IIZ=', 78);
+  var s34 = computeInputVariants('CersreerqPhygherCraqvat=', 78);
+  var s35 = computeInputVariants(str4, 78);
+  var s36 = computeInputVariants(str5, 78);
+  var s37 = computeInputVariants('__hgzp=144631658', 78);
+  var s38 = computeInputVariants('gvzrMbar=-8', 78);
+  var s39 = computeInputVariants('gvzrMbar=0', 78);
+  // var s40 = computeInputVariants(s15[i], 78);
+  var s41 = computeInputVariants('vachggrkg  QBZPbageby_cynprubyqre', 78);
+  var s42 = computeInputVariants('xrlqbja', 78);
+  var s43 = computeInputVariants('xrlhc', 78);
+  var s44 = computeInputVariants('uggc://zrffntvat.zlfcnpr.pbz/vaqrk.psz', 77);
+  var s45 = computeInputVariants('FrffvbaFgbentr=%7O%22GnoThvq%22%3N%7O%22thvq%22%3N1231367125017%7Q%7Q', 73);
+  var s46 = computeInputVariants(str6, 72);
+  var s47 = computeInputVariants('3.5.0.0', 70);
+  var s48 = computeInputVariants(str7, 70);
+  var s49 = computeInputVariants(str8, 70);
+  var s50 = computeInputVariants(str9, 70);
+  var s51 = computeInputVariants('NI%3Q1_CI%3Q1_PI%3Q1_EI%3Q1_HI%3Q1_HP%3Q1_IC%3Q0.0.0.0_IH%3Q0', 70);
+  var s52 = computeInputVariants('svz_zlfcnpr_ubzrcntr_abgybttrqva,svz_zlfcnpr_aba_HTP,svz_zlfcnpr_havgrq-fgngrf', 70);
+  var s53 = computeInputVariants('ybnqvat', 70);
+  var s54 = computeInputVariants('#', 68);
+  var s55 = computeInputVariants('ybnqrq', 68);
+  var s56 = computeInputVariants('pbybe', 49);
+  var s57 = computeInputVariants('uggc://sevraqf.zlfcnpr.pbz/vaqrk.psz', 44);
+
+  function runBlock1() {
+    for (var i = 0; i < 81; i++) {
+      re8.exec(s26[i]);
+    }
+    for (var i = 0; i < 78; i++) {
+      s27[i].replace(/(\s)+e/, '');
+      s28[i].replace(/./, '');
+      s29[i].replace(re17, '');
+      s30[i].replace(re17, '');
+      re8.exec(s31[i]);
+      re8.exec(s32[i]);
+      re8.exec(s33[i]);
+      re8.exec(s34[i]);
+      re8.exec(s35[i]);
+      re8.exec(s36[i]);
+      re8.exec(s37[i]);
+      re8.exec(s38[i]);
+      re8.exec(s39[i]);
+      /Fnsnev\/(\d+\.\d+)/.exec(s15[i]);
+      re3.exec(s41[i]);
+      re0.exec(s42[i]);
+      re0.exec(s43[i]);
+    }
+    for (var i = 0; i < 77; i++) {
+      s44[i].replace(re12, '');
+      re13.exec(s44[i]);
+    }
+    for (var i = 0; i < 73; i++) {
+      s45[i].replace(re18, '');
+    }
+    for (var i = 0; i < 72; i++) {
+      re1.exec(s46[i]);
+    }
+    for (var i = 0; i < 71; i++) {
+      re19.exec('');
+    }
+    for (var i = 0; i < 70; i++) {
+      s47[i].replace(re11, '');
+      s48[i].replace(/d1/g, '');
+      s49[i].replace(/NQ_VQ/g, '');
+      s50[i].replace(/d2/g, '');
+      s51[i].replace(/_/g, '');
+      s52[i].split(re20);
+      re21.exec(s53[i]);
+    }
+    for (var i = 0; i < 68; i++) {
+      re1.exec(s54[i]);
+      /(?:ZFVR.(\d+\.\d+))|(?:(?:Sversbk|TenaCnenqvfb|Vprjrnfry).(\d+\.\d+))|(?:Bcren.(\d+\.\d+))|(?:NccyrJroXvg.(\d+(?:\.\d+)?))/.exec(s15[i]);
+      /(Znp BF K)|(Jvaqbjf;)/.exec(s15[i]);
+      /Trpxb\/([0-9]+)/.exec(s15[i]);
+      re21.exec(s55[i]);
+    }
+    for (var i = 0; i < 49; i++) {
+      re16.exec(s56[i]);
+    }
+    for (var i = 0; i < 44; i++) {
+      s57[i].replace(re12, '');
+      re13.exec(s57[i]);
+    }
+  }
+  var re22 = /\bso_zrah\b/;
+  var re23 = /^(?:(?:[^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/;
+  var re24 = /uggcf?:\/\/([^\/]+\.)?snprobbx\.pbz\//;
+  var re25 = /"/g;
+  var re26 = /^([^?#]+)(?:\?([^#]*))?(#.*)?/;
+  var s57a = computeInputVariants('fryrpgrq', 40);
+  var s58 = computeInputVariants('vachggrkg uvqqra_ryrz', 40);
+  var s59 = computeInputVariants('vachggrkg ', 40);
+  var s60 = computeInputVariants('vachggrkg', 40);
+  var s61 = computeInputVariants('uggc://jjj.snprobbx.pbz/', 40);
+  var s62 = computeInputVariants('uggc://jjj.snprobbx.pbz/ybtva.cuc', 40);
+  var s63 = computeInputVariants('Funer guvf tnqtrg', 40);
+  var s64 = computeInputVariants('uggc://jjj.tbbtyr.pbz/vt/qverpgbel', 40);
+  var s65 = computeInputVariants('419', 40);
+  var s66 = computeInputVariants('gvzrfgnzc', 40);
+
+  function runBlock2() {
+    for (var i = 0; i < 40; i++) {
+      s57a[i].replace(re14, '');
+      s57a[i].replace(re15, '');
+    }
+    for (var i = 0; i < 39; i++) {
+      s58[i].replace(/\buvqqra_ryrz\b/g, '');
+      re3.exec(s59[i]);
+      re3.exec(s60[i]);
+      re22.exec('HVYvaxOhggba');
+      re22.exec('HVYvaxOhggba_E');
+      re22.exec('HVYvaxOhggba_EJ');
+      re22.exec('zrah_ybtva_pbagnvare');
+      /\buvqqra_ryrz\b/.exec('vachgcnffjbeq');
+    }
+    for (var i = 0; i < 37; i++) {
+      re8.exec('111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904');
+      re8.exec('SbeprqRkcvengvba=633669315660164980');
+      re8.exec('FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904');
+    }
+    for (var i = 0; i < 35; i++) {
+      'puvyq p1 svefg'.replace(re14, '');
+      'puvyq p1 svefg'.replace(re15, '');
+      'sylbhg pybfrq'.replace(re14, '');
+      'sylbhg pybfrq'.replace(re15, '');
+    }
+    for (var i = 0; i < 34; i++) {
+      re19.exec('gno2');
+      re19.exec('gno3');
+      re8.exec('44132r503660');
+      re8.exec('SbeprqRkcvengvba=633669316860113296');
+      re8.exec('AFP_zp_dfctwzs-aowb_80=44132r503660');
+      re8.exec('FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696');
+      re8.exec('s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696');
+    }
+    for (var i = 0; i < 32; i++) {
+      /puebzr/i.exec(s15[i]);
+    }
+    for (var i = 0; i < 31; i++) {
+      s61[i].replace(re23, '');
+      re8.exec('SbeprqRkcvengvba=633669358527244818');
+      re8.exec('VC=66.249.85.130');
+      re8.exec('FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58');
+      re8.exec('s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58');
+      re24.exec(s61[i]);
+    }
+    for (var i = 0; i < 30; i++) {
+      s65[i].replace(re6, '');
+      /(?:^|\s+)gvzrfgnzc(?:\s+|$)/.exec(s66[i]);
+      re7.exec(s65[i]);
+    }
+    for (var i = 0; i < 29; i++) {
+      s62[i].replace(re23, '');
+    }
+    for (var i = 0; i < 28; i++) {
+      s63[i].replace(re25, '');
+      s63[i].replace(re12, '');
+      re26.exec(s64[i]);
+    }
+  }
+  var re27 = /-\D/g;
+  var re28 = /\bnpgvingr\b/;
+  var re29 = /%2R/gi;
+  var re30 = /%2S/gi;
+  var re31 = /^(mu-(PA|GJ)|wn|xb)$/;
+  var re32 = /\s?;\s?/;
+  var re33 = /%\w?$/;
+  var re34 = /TNQP=([^;]*)/i;
+  var str10 = 'FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var str11 = 'FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; __hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1; __hgzo=144631658.0.10.1231363570; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str12 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363514065&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363514065&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Subzr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1326469221.1231363557&tn_fvq=1231363557&tn_uvq=1114636509&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+  var str13 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str14 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var re35 = /[<>]/g;
+  var str15 = 'FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=44132r503660';
+  var str16 = 'FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; AFP_zp_dfctwzs-aowb_80=44132r503660; __hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1; __hgzo=144631658.0.10.1231363638; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str17 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363621014&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363621014&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=348699119.1231363624&tn_fvq=1231363624&tn_uvq=895511034&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+  var str18 = 'uggc://jjj.yrobapbva.se/yv';
+  var str19 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str20 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+
+  var s67 = computeInputVariants('e115', 27);
+  var s68 = computeInputVariants('qvfcynl', 27);
+  var s69 = computeInputVariants('cbfvgvba', 27);
+  var s70 = computeInputVariants('uggc://jjj.zlfcnpr.pbz/', 27);
+  var s71 = computeInputVariants('cntrivrj', 27);
+  var s72 = computeInputVariants('VC=74.125.75.3', 27);
+  var s73 = computeInputVariants('ra', 27);
+  var s74 = computeInputVariants(str10, 27);
+  var s75 = computeInputVariants(str11, 27);
+  var s76 = computeInputVariants(str12, 27);
+  var s77 = computeInputVariants(str17, 27);
+  var s78 = computeInputVariants(str18, 27);
+
+  function runBlock3() {
+    for (var i = 0; i < 27; i++) {
+      s67[i].replace(/[A-Za-z]/g, '');
+    }
+    for (var i = 0; i < 23; i++) {
+      s68[i].replace(re27, '');
+      s69[i].replace(re27, '');
+    }
+    for (var i = 0; i < 22; i++) {
+      'unaqyr'.replace(re14, '');
+      'unaqyr'.replace(re15, '');
+      'yvar'.replace(re14, '');
+      'yvar'.replace(re15, '');
+      'cnerag puebzr6 fvatyr1 gno'.replace(re14, '');
+      'cnerag puebzr6 fvatyr1 gno'.replace(re15, '');
+      'fyvqre'.replace(re14, '');
+      'fyvqre'.replace(re15, '');
+      re28.exec('');
+    }
+    for (var i = 0; i < 21; i++) {
+      s70[i].replace(re12, '');
+      re13.exec(s70[i]);
+    }
+    for (var i = 0; i < 20; i++) {
+      s71[i].replace(re29, '');
+      s71[i].replace(re30, '');
+      re19.exec('ynfg');
+      re19.exec('ba svefg');
+      re8.exec(s72[i]);
+    }
+    for (var i = 0; i < 19; i++) {
+      re31.exec(s73[i]);
+    }
+    for (var i = 0; i < 18; i++) {
+      s74[i].split(re32);
+      s75[i].split(re32);
+      s76[i].replace(re33, '');
+      re8.exec('144631658.0.10.1231363570');
+      re8.exec('144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re8.exec('144631658.3426875219718084000.1231363570.1231363570.1231363570.1');
+      re8.exec(str13);
+      re8.exec(str14);
+      re8.exec('__hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1');
+      re8.exec('__hgzo=144631658.0.10.1231363570');
+      re8.exec('__hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re34.exec(s74[i]);
+      re34.exec(s75[i]);
+    }
+    for (var i = 0; i < 17; i++) {
+      s15[i].match(/zfvr/gi);
+      s15[i].match(/bcren/gi);
+      str15.split(re32);
+      str16.split(re32);
+      'ohggba'.replace(re14, '');
+      'ohggba'.replace(re15, '');
+      'puvyq p1 svefg sylbhg pybfrq'.replace(re14, '');
+      'puvyq p1 svefg sylbhg pybfrq'.replace(re15, '');
+      'pvgvrf'.replace(re14, '');
+      'pvgvrf'.replace(re15, '');
+      'pybfrq'.replace(re14, '');
+      'pybfrq'.replace(re15, '');
+      'qry'.replace(re14, '');
+      'qry'.replace(re15, '');
+      'uqy_zba'.replace(re14, '');
+      'uqy_zba'.replace(re15, '');
+      s77[i].replace(re33, '');
+      s78[i].replace(/%3P/g, '');
+      s78[i].replace(/%3R/g, '');
+      s78[i].replace(/%3q/g, '');
+      s78[i].replace(re35, '');
+      'yvaxyvfg16'.replace(re14, '');
+      'yvaxyvfg16'.replace(re15, '');
+      'zvahf'.replace(re14, '');
+      'zvahf'.replace(re15, '');
+      'bcra'.replace(re14, '');
+      'bcra'.replace(re15, '');
+      'cnerag puebzr5 fvatyr1 ps NU'.replace(re14, '');
+      'cnerag puebzr5 fvatyr1 ps NU'.replace(re15, '');
+      'cynlre'.replace(re14, '');
+      'cynlre'.replace(re15, '');
+      'cyhf'.replace(re14, '');
+      'cyhf'.replace(re15, '');
+      'cb_uqy'.replace(re14, '');
+      'cb_uqy'.replace(re15, '');
+      'hyJVzt'.replace(re14, '');
+      'hyJVzt'.replace(re15, '');
+      re8.exec('144631658.0.10.1231363638');
+      re8.exec('144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re8.exec('144631658.965867047679498800.1231363638.1231363638.1231363638.1');
+      re8.exec('4413268q3660');
+      re8.exec('4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n');
+      re8.exec('SbeprqRkcvengvba=633669321699093060');
+      re8.exec('VC=74.125.75.20');
+      re8.exec(str19);
+      re8.exec(str20);
+      re8.exec('AFP_zp_tfwsbrg-aowb_80=4413268q3660');
+      re8.exec('FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n');
+      re8.exec('__hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1');
+      re8.exec('__hgzo=144631658.0.10.1231363638');
+      re8.exec('__hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re34.exec(str15);
+      re34.exec(str16);
+    }
+  }
+  var re36 = /uers|fep|fryrpgrq/;
+  var re37 = /\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g;
+  var re38 = /^(\w+|\*)$/;
+  var str21 = 'FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var str22 = 'FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; __hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1; __hgzo=144631658.0.10.1231367822; __hgzp=144631658; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str23 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367803797&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367803797&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Szrffntvat.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1192552091.1231367807&tn_fvq=1231367807&tn_uvq=1155446857&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+  var str24 = 'ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str25 = 'ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var str26 = 'hy.ynat-fryrpgbe';
+  var re39 = /\\/g;
+  var re40 = / /g;
+  var re41 = /\/\xc4\/t/;
+  var re42 = /\/\xd6\/t/;
+  var re43 = /\/\xdc\/t/;
+  var re44 = /\/\xdf\/t/;
+  var re45 = /\/\xe4\/t/;
+  var re46 = /\/\xf6\/t/;
+  var re47 = /\/\xfc\/t/;
+  var re48 = /\W/g;
+  var re49 = /uers|fep|fglyr/;
+  var s79 = computeInputVariants(str21, 16);
+  var s80 = computeInputVariants(str22, 16);
+  var s81 = computeInputVariants(str23, 16);
+  var s82 = computeInputVariants(str26, 16);
+
+  function runBlock4() {
+    for (var i = 0; i < 16; i++) {
+      ''.replace(/\*/g, '');
+      /\bnpgvir\b/.exec('npgvir');
+      /sversbk/i.exec(s15[i]);
+      re36.exec('glcr');
+      /zfvr/i.exec(s15[i]);
+      /bcren/i.exec(s15[i]);
+    }
+    for (var i = 0; i < 15; i++) {
+      s79[i].split(re32);
+      s80[i].split(re32);
+      'uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+      s81[i].replace(re33, '');
+      'yv'.replace(re37, '');
+      'yv'.replace(re18, '');
+      re8.exec('144631658.0.10.1231367822');
+      re8.exec('144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re8.exec('144631658.4127520630321984500.1231367822.1231367822.1231367822.1');
+      re8.exec(str24);
+      re8.exec(str25);
+      re8.exec('__hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1');
+      re8.exec('__hgzo=144631658.0.10.1231367822');
+      re8.exec('__hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re34.exec(s79[i]);
+      re34.exec(s80[i]);
+      /\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g.exec(s82[i]);
+      re13.exec('uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz');
+      re38.exec('yv');
+    }
+    for (var i = 0; i < 14; i++) {
+      ''.replace(re18, '');
+      '9.0  e115'.replace(/(\s+e|\s+o[0-9]+)/, '');
+      'Funer guvf tnqtrg'.replace(/</g, '');
+      'Funer guvf tnqtrg'.replace(/>/g, '');
+      'Funer guvf tnqtrg'.replace(re39, '');
+      'uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+      'grnfre'.replace(re40, '');
+      'grnfre'.replace(re41, '');
+      'grnfre'.replace(re42, '');
+      'grnfre'.replace(re43, '');
+      'grnfre'.replace(re44, '');
+      'grnfre'.replace(re45, '');
+      'grnfre'.replace(re46, '');
+      'grnfre'.replace(re47, '');
+      'grnfre'.replace(re48, '');
+      re16.exec('znetva-gbc');
+      re16.exec('cbfvgvba');
+      re19.exec('gno1');
+      re9.exec('qz');
+      re9.exec('qg');
+      re9.exec('zbqobk');
+      re9.exec('zbqobkva');
+      re9.exec('zbqgvgyr');
+      re13.exec('uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz');
+      re26.exec('/vt/znvytnqtrg');
+      re49.exec('glcr');
+    }
+  }
+  var re50 = /(?:^|\s+)fryrpgrq(?:\s+|$)/;
+  var re51 = /\&/g;
+  var re52 = /\+/g;
+  var re53 = /\?/g;
+  var re54 = /\t/g;
+  var re55 = /(\$\{nqiHey\})|(\$nqiHey\b)/g;
+  var re56 = /(\$\{cngu\})|(\$cngu\b)/g;
+  function runBlock5() {
+    for (var i = 0; i < 13; i++) {
+      'purpx'.replace(re14, '');
+      'purpx'.replace(re15, '');
+      'pvgl'.replace(re14, '');
+      'pvgl'.replace(re15, '');
+      'qrpe fyvqrgrkg'.replace(re14, '');
+      'qrpe fyvqrgrkg'.replace(re15, '');
+      'svefg fryrpgrq'.replace(re14, '');
+      'svefg fryrpgrq'.replace(re15, '');
+      'uqy_rag'.replace(re14, '');
+      'uqy_rag'.replace(re15, '');
+      'vape fyvqrgrkg'.replace(re14, '');
+      'vape fyvqrgrkg'.replace(re15, '');
+      'vachggrkg QBZPbageby_cynprubyqre'.replace(re5, '');
+      'cnerag puebzr6 fvatyr1 gno fryrpgrq'.replace(re14, '');
+      'cnerag puebzr6 fvatyr1 gno fryrpgrq'.replace(re15, '');
+      'cb_guz'.replace(re14, '');
+      'cb_guz'.replace(re15, '');
+      'fhozvg'.replace(re14, '');
+      'fhozvg'.replace(re15, '');
+      re50.exec('');
+      /NccyrJroXvg\/([^\s]*)/.exec(s15[i]);
+      /XUGZY/.exec(s15[i]);
+    }
+    for (var i = 0; i < 12; i++) {
+      '${cebg}://${ubfg}${cngu}/${dz}'.replace(/(\$\{cebg\})|(\$cebg\b)/g, '');
+      '1'.replace(re40, '');
+      '1'.replace(re10, '');
+      '1'.replace(re51, '');
+      '1'.replace(re52, '');
+      '1'.replace(re53, '');
+      '1'.replace(re39, '');
+      '1'.replace(re54, '');
+      '9.0  e115'.replace(/^(.*)\..*$/, '');
+      '9.0  e115'.replace(/^.*e(.*)$/, '');
+      '<!-- ${nqiHey} -->'.replace(re55, '');
+      '<fpevcg glcr="grkg/wninfpevcg" fep="${nqiHey}"></fpevcg>'.replace(re55, '');
+      s21[i].replace(/^.*\s+(\S+\s+\S+$)/, '');
+      'tzk%2Subzrcntr%2Sfgneg%2Sqr%2S'.replace(re30, '');
+      'tzk'.replace(re30, '');
+      'uggc://${ubfg}${cngu}/${dz}'.replace(/(\$\{ubfg\})|(\$ubfg\b)/g, '');
+      'uggc://nqpyvrag.hvzfrei.arg${cngu}/${dz}'.replace(re56, '');
+      'uggc://nqpyvrag.hvzfrei.arg/wf.at/${dz}'.replace(/(\$\{dz\})|(\$dz\b)/g, '');
+      'frpgvba'.replace(re29, '');
+      'frpgvba'.replace(re30, '');
+      'fvgr'.replace(re29, '');
+      'fvgr'.replace(re30, '');
+      'fcrpvny'.replace(re29, '');
+      'fcrpvny'.replace(re30, '');
+      re36.exec('anzr');
+      /e/.exec('9.0  e115');
+    }
+  }
+  var re57 = /##yv4##/gi;
+  var re58 = /##yv16##/gi;
+  var re59 = /##yv19##/gi;
+  var str27 = '<hy pynff="nqi">##yv4##Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+  var str28 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+  var str29 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+  var str30 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+  var str31 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.<oe> <oe> ##N##Yrnea zber##/N##</hy>';
+  var str32 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.<oe> <oe> <n uers="uggc://znvy.yvir.pbz/znvy/nobhg.nfck" gnetrg="_oynax">Yrnea zber##/N##</hy>';
+  var str33 = 'Bar Jvaqbjf Yvir VQ trgf lbh vagb <o>Ubgznvy</o>, <o>Zrffratre</o>, <o>Kobk YVIR</o> \u2014 naq bgure cynprf lbh frr #~#argjbexybtb#~#';
+  var re60 = /(?:^|\s+)bss(?:\s+|$)/;
+  var re61 = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/;
+  var re62 = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
+  var str34 = '${1}://${2}${3}${4}${5}';
+  var str35 = ' O=6gnyg0g4znrrn&o=3&f=gc; Q=_lyu=K3bQZGSxnT4lZzD3OS9GNmV3ZGLkAQxRpTyxNmRlZmRmAmNkAQLRqTImqNZjOUEgpTjQnJ5xMKtgoN--; SCF=qy';
+  var s83 = computeInputVariants(str27, 11);
+  var s84 = computeInputVariants(str28, 11);
+  var s85 = computeInputVariants(str29, 11);
+  var s86 = computeInputVariants(str30, 11);
+  var s87 = computeInputVariants(str31, 11);
+  var s88 = computeInputVariants(str32, 11);
+  var s89 = computeInputVariants(str33, 11);
+  var s90 = computeInputVariants(str34, 11);
+
+  function runBlock6() {
+    for (var i = 0; i < 11; i++) {
+      s83[i].replace(/##yv0##/gi, '');
+      s83[i].replace(re57, '');
+      s84[i].replace(re58, '');
+      s85[i].replace(re59, '');
+      s86[i].replace(/##\/o##/gi, '');
+      s86[i].replace(/##\/v##/gi, '');
+      s86[i].replace(/##\/h##/gi, '');
+      s86[i].replace(/##o##/gi, '');
+      s86[i].replace(/##oe##/gi, '');
+      s86[i].replace(/##v##/gi, '');
+      s86[i].replace(/##h##/gi, '');
+      s87[i].replace(/##n##/gi, '');
+      s88[i].replace(/##\/n##/gi, '');
+      s89[i].replace(/#~#argjbexybtb#~#/g, '');
+      / Zbovyr\//.exec(s15[i]);
+      /##yv1##/gi.exec(s83[i]);
+      /##yv10##/gi.exec(s84[i]);
+      /##yv11##/gi.exec(s84[i]);
+      /##yv12##/gi.exec(s84[i]);
+      /##yv13##/gi.exec(s84[i]);
+      /##yv14##/gi.exec(s84[i]);
+      /##yv15##/gi.exec(s84[i]);
+      re58.exec(s84[i]);
+      /##yv17##/gi.exec(s85[i]);
+      /##yv18##/gi.exec(s85[i]);
+      re59.exec(s85[i]);
+      /##yv2##/gi.exec(s83[i]);
+      /##yv20##/gi.exec(s86[i]);
+      /##yv21##/gi.exec(s86[i]);
+      /##yv22##/gi.exec(s86[i]);
+      /##yv23##/gi.exec(s86[i]);
+      /##yv3##/gi.exec(s83[i]);
+      re57.exec(s83[i]);
+      /##yv5##/gi.exec(s84[i]);
+      /##yv6##/gi.exec(s84[i]);
+      /##yv7##/gi.exec(s84[i]);
+      /##yv8##/gi.exec(s84[i]);
+      /##yv9##/gi.exec(s84[i]);
+      re8.exec('473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29');
+      re8.exec('SbeprqRkcvengvba=633669325184628362');
+      re8.exec('FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29');
+      /AbxvnA[^\/]*/.exec(s15[i]);
+    }
+    for (var i = 0; i < 10; i++) {
+      ' bss'.replace(/(?:^|\s+)bss(?:\s+|$)/g, '');
+      s90[i].replace(/(\$\{0\})|(\$0\b)/g, '');
+      s90[i].replace(/(\$\{1\})|(\$1\b)/g, '');
+      s90[i].replace(/(\$\{pbzcyrgr\})|(\$pbzcyrgr\b)/g, '');
+      s90[i].replace(/(\$\{sentzrag\})|(\$sentzrag\b)/g, '');
+      s90[i].replace(/(\$\{ubfgcbeg\})|(\$ubfgcbeg\b)/g, '');
+      s90[i].replace(re56, '');
+      s90[i].replace(/(\$\{cebgbpby\})|(\$cebgbpby\b)/g, '');
+      s90[i].replace(/(\$\{dhrel\})|(\$dhrel\b)/g, '');
+      'nqfvmr'.replace(re29, '');
+      'nqfvmr'.replace(re30, '');
+      'uggc://${2}${3}${4}${5}'.replace(/(\$\{2\})|(\$2\b)/g, '');
+      'uggc://wf.hv-cbegny.qr${3}${4}${5}'.replace(/(\$\{3\})|(\$3\b)/g, '');
+      'arjf'.replace(re40, '');
+      'arjf'.replace(re41, '');
+      'arjf'.replace(re42, '');
+      'arjf'.replace(re43, '');
+      'arjf'.replace(re44, '');
+      'arjf'.replace(re45, '');
+      'arjf'.replace(re46, '');
+      'arjf'.replace(re47, '');
+      'arjf'.replace(re48, '');
+      / PC=i=(\d+)&oe=(.)/.exec(str35);
+      re60.exec(' ');
+      re60.exec(' bss');
+      re60.exec('');
+      re19.exec(' ');
+      re19.exec('svefg ba');
+      re19.exec('ynfg vtaber');
+      re19.exec('ba');
+      re9.exec('scnq so ');
+      re9.exec('zrqvgobk');
+      re9.exec('hsgy');
+      re9.exec('lhv-h');
+      /Fnsnev|Xbadhrebe|XUGZY/gi.exec(s15[i]);
+      re61.exec('uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf');
+      re62.exec('#Ybtva_rznvy');
+    }
+  }
+  var re63 = /\{0\}/g;
+  var str36 = 'FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_tfwsbrg-aowb_80=4413268q3660';
+  var str37 = 'FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; AFP_zp_tfwsbrg-aowb_80=4413268q3660; __hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1; __hgzo=144631658.0.10.1231364074; __hgzp=144631658; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str38 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231364057761&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364057761&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Ssevraqf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1667363813.1231364061&tn_fvq=1231364061&tn_uvq=1917563877&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+  var str39 = 'ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str40 = 'ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var s91 = computeInputVariants(str36, 9);
+  var s92 = computeInputVariants(str37, 9);
+  var s93 = computeInputVariants(str38, 9);
+  function runBlock7() {
+    for (var i = 0; i < 9; i++) {
+      '0'.replace(re40, '');
+      '0'.replace(re10, '');
+      '0'.replace(re51, '');
+      '0'.replace(re52, '');
+      '0'.replace(re53, '');
+      '0'.replace(re39, '');
+      '0'.replace(re54, '');
+      'Lrf'.replace(re40, '');
+      'Lrf'.replace(re10, '');
+      'Lrf'.replace(re51, '');
+      'Lrf'.replace(re52, '');
+      'Lrf'.replace(re53, '');
+      'Lrf'.replace(re39, '');
+      'Lrf'.replace(re54, '');
+    }
+    for (var i = 0; i < 8; i++) {
+      'Pybfr {0}'.replace(re63, '');
+      'Bcra {0}'.replace(re63, '');
+      s91[i].split(re32);
+      s92[i].split(re32);
+      'puvyq p1 svefg gnournqref'.replace(re14, '');
+      'puvyq p1 svefg gnournqref'.replace(re15, '');
+      'uqy_fcb'.replace(re14, '');
+      'uqy_fcb'.replace(re15, '');
+      'uvag'.replace(re14, '');
+      'uvag'.replace(re15, '');
+      s93[i].replace(re33, '');
+      'yvfg'.replace(re14, '');
+      'yvfg'.replace(re15, '');
+      'at_bhgre'.replace(re30, '');
+      'cnerag puebzr5 qbhoyr2 NU'.replace(re14, '');
+      'cnerag puebzr5 qbhoyr2 NU'.replace(re15, '');
+      'cnerag puebzr5 dhnq5 ps NU osyvax zbarl'.replace(re14, '');
+      'cnerag puebzr5 dhnq5 ps NU osyvax zbarl'.replace(re15, '');
+      'cnerag puebzr6 fvatyr1'.replace(re14, '');
+      'cnerag puebzr6 fvatyr1'.replace(re15, '');
+      'cb_qrs'.replace(re14, '');
+      'cb_qrs'.replace(re15, '');
+      'gnopbagrag'.replace(re14, '');
+      'gnopbagrag'.replace(re15, '');
+      'iv_svefg_gvzr'.replace(re30, '');
+      /(^|.)(ronl|qri-ehf3.wbg)(|fgberf|zbgbef|yvirnhpgvbaf|jvxv|rkcerff|punggre).(pbz(|.nh|.pa|.ux|.zl|.ft|.oe|.zk)|pb(.hx|.xe|.am)|pn|qr|se|vg|ay|or|ng|pu|vr|va|rf|cy|cu|fr)$/i.exec('cntrf.ronl.pbz');
+      re8.exec('144631658.0.10.1231364074');
+      re8.exec('144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re8.exec('144631658.2294274870215848400.1231364074.1231364074.1231364074.1');
+      re8.exec('4413241q3660');
+      re8.exec('SbeprqRkcvengvba=633669357391353591');
+      re8.exec(str39);
+      re8.exec(str40);
+      re8.exec('AFP_zp_kkk-gdzogv_80=4413241q3660');
+      re8.exec('FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7');
+      re8.exec('__hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1');
+      re8.exec('__hgzo=144631658.0.10.1231364074');
+      re8.exec('__hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re8.exec('p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7');
+      re34.exec(s91[i]);
+      re34.exec(s92[i]);
+    }
+  }
+  var re64 = /\b[a-z]/g;
+  var re65 = /^uggc:\/\//;
+  var re66 = /(?:^|\s+)qvfnoyrq(?:\s+|$)/;
+  var str41 = 'uggc://cebsvyr.zlfcnpr.pbz/Zbqhyrf/Nccyvpngvbaf/Cntrf/Pnainf.nfck';
+  function runBlock8() {
+    for (var i = 0; i < 7; i++) {
+      s21[i].match(/\d+/g);
+      'nsgre'.replace(re64, '');
+      'orsber'.replace(re64, '');
+      'obggbz'.replace(re64, '');
+      'ohvygva_jrngure.kzy'.replace(re65, '');
+      'ohggba'.replace(re37, '');
+      'ohggba'.replace(re18, '');
+      'qngrgvzr.kzy'.replace(re65, '');
+      'uggc://eff.paa.pbz/eff/paa_gbcfgbevrf.eff'.replace(re65, '');
+      'vachg'.replace(re37, '');
+      'vachg'.replace(re18, '');
+      'vafvqr'.replace(re64, '');
+      'cbvagre'.replace(re27, '');
+      'cbfvgvba'.replace(/[A-Z]/g, '');
+      'gbc'.replace(re27, '');
+      'gbc'.replace(re64, '');
+      'hy'.replace(re37, '');
+      'hy'.replace(re18, '');
+      str26.replace(re37, '');
+      str26.replace(re18, '');
+      'lbhghor_vtbbtyr/i2/lbhghor.kzy'.replace(re65, '');
+      'm-vaqrk'.replace(re27, '');
+      /#([\w-]+)/.exec(str26);
+      re16.exec('urvtug');
+      re16.exec('znetvaGbc');
+      re16.exec('jvqgu');
+      re19.exec('gno0 svefg ba');
+      re19.exec('gno0 ba');
+      re19.exec('gno4 ynfg');
+      re19.exec('gno4');
+      re19.exec('gno5');
+      re19.exec('gno6');
+      re19.exec('gno7');
+      re19.exec('gno8');
+      /NqborNVE\/([^\s]*)/.exec(s15[i]);
+      /NccyrJroXvg\/([^ ]*)/.exec(s15[i]);
+      /XUGZY/gi.exec(s15[i]);
+      /^(?:obql|ugzy)$/i.exec('YV');
+      re38.exec('ohggba');
+      re38.exec('vachg');
+      re38.exec('hy');
+      re38.exec(str26);
+      /^(\w+|\*)/.exec(str26);
+      /znp|jva|yvahk/i.exec('Jva32');
+      /eton?\([\d\s,]+\)/.exec('fgngvp');
+    }
+    for (var i = 0; i < 6; i++) {
+      ''.replace(/\r/g, '');
+      '/'.replace(re40, '');
+      '/'.replace(re10, '');
+      '/'.replace(re51, '');
+      '/'.replace(re52, '');
+      '/'.replace(re53, '');
+      '/'.replace(re39, '');
+      '/'.replace(re54, '');
+      'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/{0}?[NDO]&{1}&{2}&[NDR]'.replace(re63, '');
+      str41.replace(re12, '');
+      'uggc://jjj.snprobbx.pbz/fepu.cuc'.replace(re23, '');
+      'freivpr'.replace(re40, '');
+      'freivpr'.replace(re41, '');
+      'freivpr'.replace(re42, '');
+      'freivpr'.replace(re43, '');
+      'freivpr'.replace(re44, '');
+      'freivpr'.replace(re45, '');
+      'freivpr'.replace(re46, '');
+      'freivpr'.replace(re47, '');
+      'freivpr'.replace(re48, '');
+      /((ZFVR\s+([6-9]|\d\d)\.))/.exec(s15[i]);
+      re66.exec('');
+      re50.exec('fryrpgrq');
+      re8.exec('8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn');
+      re8.exec('SbeprqRkcvengvba=633669340386893867');
+      re8.exec('VC=74.125.75.17');
+      re8.exec('FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn');
+      /Xbadhrebe|Fnsnev|XUGZY/.exec(s15[i]);
+      re13.exec(str41);
+      re49.exec('unfsbphf');
+    }
+  }
+  var re67 = /zrah_byq/g;
+  var str42 = 'FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var str43 = 'FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; __hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1; __hgzo=144631658.0.10.1231364380; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str44 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_vzntrf_wf&qg=1231364373088&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364373088&punaary=svz_zlfcnpr_hfre-ivrj-pbzzragf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Spbzzrag.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1158737789.1231364375&tn_fvq=1231364375&tn_uvq=415520832&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+  var str45 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str46 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var re68 = /^([#.]?)((?:[\w\u0128-\uffff*_-]|\\.)*)/;
+  var re69 = /\{1\}/g;
+  var re70 = /\s+/;
+  var re71 = /(\$\{4\})|(\$4\b)/g;
+  var re72 = /(\$\{5\})|(\$5\b)/g;
+  var re73 = /\{2\}/g;
+  var re74 = /[^+>] [^+>]/;
+  var re75 = /\bucpyv\s*=\s*([^;]*)/i;
+  var re76 = /\bucuvqr\s*=\s*([^;]*)/i;
+  var re77 = /\bucfie\s*=\s*([^;]*)/i;
+  var re78 = /\bhfucjrn\s*=\s*([^;]*)/i;
+  var re79 = /\bmvc\s*=\s*([^;]*)/i;
+  var re80 = /^((?:[\w\u0128-\uffff*_-]|\\.)+)(#)((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+  var re81 = /^([>+~])\s*(\w*)/i;
+  var re82 = /^>\s*((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+  var re83 = /^[\s[]?shapgvba/;
+  var re84 = /v\/g.tvs#(.*)/i;
+  var str47 = '#Zbq-Vasb-Vasb-WninFpevcgUvag';
+  var str48 = ',n.svryqOgaPnapry';
+  var str49 = 'FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_kkk-gdzogv_80=4413241q3660';
+  var str50 = 'FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; AFP_zp_kkk-gdzogv_80=4413241q3660; AFP_zp_kkk-aowb_80=4413235p3660; __hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1; __hgzo=144631658.0.10.1231367708; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str51 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367691141&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367691141&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sjjj.zlfcnpr.pbz%2S&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=320757904.1231367694&tn_fvq=1231367694&tn_uvq=1758792003&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+  var str52 = 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N38%3N42%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=1024k768&p=24&x=L&oj=994&ou=634&uc=A&{2}&[NDR]';
+  var str53 = 'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq qbhoyr2 ps';
+  var str54 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str55 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var str56 = 'ne;ng;nh;or;oe;pn;pu;py;pa;qr;qx;rf;sv;se;to;ux;vq;vr;va;vg;wc;xe;zk;zl;ay;ab;am;cu;cy;cg;eh;fr;ft;gu;ge;gj;mn;';
+  var str57 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886&GHVQ=1';
+  var str58 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886';
+  var str59 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1';
+  var str60 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF';
+  var str61 = 'uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/29/4RQP4969777N048NPS4RRR3PO2S7S.wct';
+  var str62 = 'uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/OQ/63NP9O94NS5OQP1249Q9S1ROP7NS3.wct';
+  var str63 = 'zbmvyyn/5.0 (jvaqbjf; h; jvaqbjf ag 5.1; ra-hf) nccyrjroxvg/528.9 (xugzy, yvxr trpxb) puebzr/2.0.157.0 fnsnev/528.9';
+  var s94 = computeInputVariants(str42, 5);
+  var s95 = computeInputVariants(str43, 5);
+  var s96 = computeInputVariants(str44, 5);
+  var s97 = computeInputVariants(str47, 5);
+  var s98 = computeInputVariants(str48, 5);
+  var s99 = computeInputVariants(str49, 5);
+  var s100 = computeInputVariants(str50, 5);
+  var s101 = computeInputVariants(str51, 5);
+  var s102 = computeInputVariants(str52, 5);
+  var s103 = computeInputVariants(str53, 5);
+
+  function runBlock9() {
+    for (var i = 0; i < 5; i++) {
+      s94[i].split(re32);
+      s95[i].split(re32);
+      'svz_zlfcnpr_hfre-ivrj-pbzzragf,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
+      s96[i].replace(re33, '');
+      'zrah_arj zrah_arj_gbttyr zrah_gbttyr'.replace(re67, '');
+      'zrah_byq zrah_byq_gbttyr zrah_gbttyr'.replace(re67, '');
+      re8.exec('102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98');
+      re8.exec('144631658.0.10.1231364380');
+      re8.exec('144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re8.exec('144631658.3931862196947939300.1231364380.1231364380.1231364380.1');
+      re8.exec('441326q33660');
+      re8.exec('SbeprqRkcvengvba=633669341278771470');
+      re8.exec(str45);
+      re8.exec(str46);
+      re8.exec('AFP_zp_dfctwzssrwh-aowb_80=441326q33660');
+      re8.exec('FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98');
+      re8.exec('__hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1');
+      re8.exec('__hgzo=144631658.0.10.1231364380');
+      re8.exec('__hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+    }
+    for (var i = 0; i < 4; i++) {
+      ' yvfg1'.replace(re14, '');
+      ' yvfg1'.replace(re15, '');
+      ' yvfg2'.replace(re14, '');
+      ' yvfg2'.replace(re15, '');
+      ' frneputebhc1'.replace(re14, '');
+      ' frneputebhc1'.replace(re15, '');
+      s97[i].replace(re68, '');
+      s97[i].replace(re18, '');
+      ''.replace(/&/g, '');
+      ''.replace(re35, '');
+      '(..-{0})(\|(\d+)|)'.replace(re63, '');
+      s98[i].replace(re18, '');
+      '//vzt.jro.qr/vij/FC/${cngu}/${anzr}/${inyhr}?gf=${abj}'.replace(re56, '');
+      '//vzt.jro.qr/vij/FC/tzk_uc/${anzr}/${inyhr}?gf=${abj}'.replace(/(\$\{anzr\})|(\$anzr\b)/g, '');
+      '<fcna pynff="urnq"><o>Jvaqbjf Yvir Ubgznvy</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re69, '');
+      '<fcna pynff="urnq"><o>{0}</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re63, '');
+      '<fcna pynff="fvtahc"><n uers=uggc://jjj.ubgznvy.pbz><o>{1}</o></n></fcna>'.replace(re69, '');
+      '<fcna pynff="fvtahc"><n uers={0}><o>{1}</o></n></fcna>'.replace(re63, '');
+      'Vzntrf'.replace(re15, '');
+      'ZFA'.replace(re15, '');
+      'Zncf'.replace(re15, '');
+      'Zbq-Vasb-Vasb-WninFpevcgUvag'.replace(re39, '');
+      'Arjf'.replace(re15, '');
+      s99[i].split(re32);
+      s100[i].split(re32);
+      'Ivqrb'.replace(re15, '');
+      'Jro'.replace(re15, '');
+      'n'.replace(re39, '');
+      'nwnkFgneg'.split(re70);
+      'nwnkFgbc'.split(re70);
+      'ovaq'.replace(re14, '');
+      'ovaq'.replace(re15, '');
+      'oevatf lbh zber. Zber fcnpr (5TO), zber frphevgl, fgvyy serr.'.replace(re63, '');
+      'puvyq p1 svefg qrpx'.replace(re14, '');
+      'puvyq p1 svefg qrpx'.replace(re15, '');
+      'puvyq p1 svefg qbhoyr2'.replace(re14, '');
+      'puvyq p1 svefg qbhoyr2'.replace(re15, '');
+      'puvyq p2 ynfg'.replace(re14, '');
+      'puvyq p2 ynfg'.replace(re15, '');
+      'puvyq p2'.replace(re14, '');
+      'puvyq p2'.replace(re15, '');
+      'puvyq p3'.replace(re14, '');
+      'puvyq p3'.replace(re15, '');
+      'puvyq p4 ynfg'.replace(re14, '');
+      'puvyq p4 ynfg'.replace(re15, '');
+      'pbclevtug'.replace(re14, '');
+      'pbclevtug'.replace(re15, '');
+      'qZFAZR_1'.replace(re14, '');
+      'qZFAZR_1'.replace(re15, '');
+      'qbhoyr2 ps'.replace(re14, '');
+      'qbhoyr2 ps'.replace(re15, '');
+      'qbhoyr2'.replace(re14, '');
+      'qbhoyr2'.replace(re15, '');
+      'uqy_arj'.replace(re14, '');
+      'uqy_arj'.replace(re15, '');
+      'uc_fubccvatobk'.replace(re30, '');
+      'ugzy%2Rvq'.replace(re29, '');
+      'ugzy%2Rvq'.replace(re30, '');
+      s101[i].replace(re33, '');
+      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${4}${5}'.replace(re71, '');
+      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${5}'.replace(re72, '');
+      s102[i].replace(re73, '');
+      'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&{1}&{2}&[NDR]'.replace(re69, '');
+      'vztZFSG'.replace(re14, '');
+      'vztZFSG'.replace(re15, '');
+      'zfasbbg1 ps'.replace(re14, '');
+      'zfasbbg1 ps'.replace(re15, '');
+      s103[i].replace(re14, '');
+      s103[i].replace(re15, '');
+      'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq'.replace(re14, '');
+      'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq'.replace(re15, '');
+      'cevznel'.replace(re14, '');
+      'cevznel'.replace(re15, '');
+      'erpgnatyr'.replace(re30, '');
+      'frpbaqnel'.replace(re14, '');
+      'frpbaqnel'.replace(re15, '');
+      'haybnq'.split(re70);
+      '{0}{1}1'.replace(re63, '');
+      '|{1}1'.replace(re69, '');
+      /(..-HF)(\|(\d+)|)/i.exec('xb-xe,ra-va,gu-gu');
+      re4.exec('/ZlFcnprNccf/NccPnainf,45000012');
+      re8.exec('144631658.0.10.1231367708');
+      re8.exec('144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re8.exec('144631658.2770915348920628700.1231367708.1231367708.1231367708.1');
+      re8.exec('4413235p3660');
+      re8.exec('441327q73660');
+      re8.exec('9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473');
+      re8.exec('SbeprqRkcvengvba=633669350559478880');
+      re8.exec(str54);
+      re8.exec(str55);
+      re8.exec('AFP_zp_dfctwzs-aowb_80=441327q73660');
+      re8.exec('AFP_zp_kkk-aowb_80=4413235p3660');
+      re8.exec('FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473');
+      re8.exec('__hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1');
+      re8.exec('__hgzo=144631658.0.10.1231367708');
+      re8.exec('__hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re34.exec(s99[i]);
+      re34.exec(s100[i]);
+      /ZFVR\s+5[.]01/.exec(s15[i]);
+      /HF(?=;)/i.exec(str56);
+      re74.exec(s97[i]);
+      re28.exec('svefg npgvir svefgNpgvir');
+      re28.exec('ynfg');
+      /\bp:(..)/i.exec('m:94043|yn:37.4154|yb:-122.0585|p:HF');
+      re75.exec(str57);
+      re75.exec(str58);
+      re76.exec(str57);
+      re76.exec(str58);
+      re77.exec(str57);
+      re77.exec(str58);
+      /\bhfucce\s*=\s*([^;]*)/i.exec(str59);
+      re78.exec(str57);
+      re78.exec(str58);
+      /\bjci\s*=\s*([^;]*)/i.exec(str59);
+      re79.exec(str58);
+      re79.exec(str60);
+      re79.exec(str59);
+      /\|p:([a-z]{2})/i.exec('m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1');
+      re80.exec(s97[i]);
+      re61.exec('cebgbglcr.wf');
+      re68.exec(s97[i]);
+      re81.exec(s97[i]);
+      re82.exec(s97[i]);
+      /^Fubpxjnir Synfu (\d)/.exec(s21[i]);
+      /^Fubpxjnir Synfu (\d+)/.exec(s21[i]);
+      re83.exec('[bowrpg tybony]');
+      re62.exec(s97[i]);
+      re84.exec(str61);
+      re84.exec(str62);
+      /jroxvg/.exec(str63);
+    }
+  }
+  var re85 = /eaq_zbqobkva/;
+  var str64 = '1231365729213';
+  var str65 = '74.125.75.3-1057165600.29978900';
+  var str66 = '74.125.75.3-1057165600.29978900.1231365730214';
+  var str67 = 'Frnepu%20Zvpebfbsg.pbz';
+  var str68 = 'FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var str69 = 'FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; __hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1; __hgzo=144631658.0.10.1231365779; __hgzp=144631658; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str70 = 'I=3%26THVQ=757q3ss871q44o7o805n8113n5p72q52';
+  var str71 = 'I=3&THVQ=757q3ss871q44o7o805n8113n5p72q52';
+  var str72 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365765292&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365765292&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sohyyrgvaf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1579793869.1231365768&tn_fvq=1231365768&tn_uvq=2056210897&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+  var str73 = 'frnepu.zvpebfbsg.pbz';
+  var str74 = 'frnepu.zvpebfbsg.pbz/';
+  var str75 = 'ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str76 = 'ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  function runBlock10() {
+    for (var i = 0; i < 3; i++) {
+      '%3Szxg=ra-HF'.replace(re39, '');
+      '-8'.replace(re40, '');
+      '-8'.replace(re10, '');
+      '-8'.replace(re51, '');
+      '-8'.replace(re52, '');
+      '-8'.replace(re53, '');
+      '-8'.replace(re39, '');
+      '-8'.replace(re54, '');
+      '1.5'.replace(re40, '');
+      '1.5'.replace(re10, '');
+      '1.5'.replace(re51, '');
+      '1.5'.replace(re52, '');
+      '1.5'.replace(re53, '');
+      '1.5'.replace(re39, '');
+      '1.5'.replace(re54, '');
+      '1024k768'.replace(re40, '');
+      '1024k768'.replace(re10, '');
+      '1024k768'.replace(re51, '');
+      '1024k768'.replace(re52, '');
+      '1024k768'.replace(re53, '');
+      '1024k768'.replace(re39, '');
+      '1024k768'.replace(re54, '');
+      str64.replace(re40, '');
+      str64.replace(re10, '');
+      str64.replace(re51, '');
+      str64.replace(re52, '');
+      str64.replace(re53, '');
+      str64.replace(re39, '');
+      str64.replace(re54, '');
+      '14'.replace(re40, '');
+      '14'.replace(re10, '');
+      '14'.replace(re51, '');
+      '14'.replace(re52, '');
+      '14'.replace(re53, '');
+      '14'.replace(re39, '');
+      '14'.replace(re54, '');
+      '24'.replace(re40, '');
+      '24'.replace(re10, '');
+      '24'.replace(re51, '');
+      '24'.replace(re52, '');
+      '24'.replace(re53, '');
+      '24'.replace(re39, '');
+      '24'.replace(re54, '');
+      str65.replace(re40, '');
+      str65.replace(re10, '');
+      str65.replace(re51, '');
+      str65.replace(re52, '');
+      str65.replace(re53, '');
+      str65.replace(re39, '');
+      str65.replace(re54, '');
+      str66.replace(re40, '');
+      str66.replace(re10, '');
+      str66.replace(re51, '');
+      str66.replace(re52, '');
+      str66.replace(re53, '');
+      str66.replace(re39, '');
+      str66.replace(re54, '');
+      '9.0'.replace(re40, '');
+      '9.0'.replace(re10, '');
+      '9.0'.replace(re51, '');
+      '9.0'.replace(re52, '');
+      '9.0'.replace(re53, '');
+      '9.0'.replace(re39, '');
+      '9.0'.replace(re54, '');
+      '994k634'.replace(re40, '');
+      '994k634'.replace(re10, '');
+      '994k634'.replace(re51, '');
+      '994k634'.replace(re52, '');
+      '994k634'.replace(re53, '');
+      '994k634'.replace(re39, '');
+      '994k634'.replace(re54, '');
+      '?zxg=ra-HF'.replace(re40, '');
+      '?zxg=ra-HF'.replace(re10, '');
+      '?zxg=ra-HF'.replace(re51, '');
+      '?zxg=ra-HF'.replace(re52, '');
+      '?zxg=ra-HF'.replace(re53, '');
+      '?zxg=ra-HF'.replace(re54, '');
+      'PAA.pbz'.replace(re25, '');
+      'PAA.pbz'.replace(re12, '');
+      'PAA.pbz'.replace(re39, '');
+      'Qngr & Gvzr'.replace(re25, '');
+      'Qngr & Gvzr'.replace(re12, '');
+      'Qngr & Gvzr'.replace(re39, '');
+      'Frnepu Zvpebfbsg.pbz'.replace(re40, '');
+      'Frnepu Zvpebfbsg.pbz'.replace(re54, '');
+      str67.replace(re10, '');
+      str67.replace(re51, '');
+      str67.replace(re52, '');
+      str67.replace(re53, '');
+      str67.replace(re39, '');
+      str68.split(re32);
+      str69.split(re32);
+      str70.replace(re52, '');
+      str70.replace(re53, '');
+      str70.replace(re39, '');
+      str71.replace(re40, '');
+      str71.replace(re10, '');
+      str71.replace(re51, '');
+      str71.replace(re54, '');
+      'Jrngure'.replace(re25, '');
+      'Jrngure'.replace(re12, '');
+      'Jrngure'.replace(re39, '');
+      'LbhGhor'.replace(re25, '');
+      'LbhGhor'.replace(re12, '');
+      'LbhGhor'.replace(re39, '');
+      str72.replace(re33, '');
+      'erzbgr_vsenzr_1'.replace(/^erzbgr_vsenzr_/, '');
+      str73.replace(re40, '');
+      str73.replace(re10, '');
+      str73.replace(re51, '');
+      str73.replace(re52, '');
+      str73.replace(re53, '');
+      str73.replace(re39, '');
+      str73.replace(re54, '');
+      str74.replace(re40, '');
+      str74.replace(re10, '');
+      str74.replace(re51, '');
+      str74.replace(re52, '');
+      str74.replace(re53, '');
+      str74.replace(re39, '');
+      str74.replace(re54, '');
+      'lhv-h'.replace(/\-/g, '');
+      re9.exec('p');
+      re9.exec('qz p');
+      re9.exec('zbqynory');
+      re9.exec('lhv-h svefg');
+      re8.exec('144631658.0.10.1231365779');
+      re8.exec('144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re8.exec('144631658.1877536177953918500.1231365779.1231365779.1231365779.1');
+      re8.exec(str75);
+      re8.exec(str76);
+      re8.exec('__hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1');
+      re8.exec('__hgzo=144631658.0.10.1231365779');
+      re8.exec('__hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re34.exec(str68);
+      re34.exec(str69);
+      /^$/.exec('');
+      re31.exec('qr');
+      /^znk\d+$/.exec('');
+      /^zva\d+$/.exec('');
+      /^erfgber$/.exec('');
+      re85.exec('zbqobkva zbqobk_abcnqqvat ');
+      re85.exec('zbqgvgyr');
+      re85.exec('eaq_zbqobkva ');
+      re85.exec('eaq_zbqgvgyr ');
+      /frpgvba\d+_pbagragf/.exec('obggbz_ani');
+    }
+  }
+  var re86 = /;\s*/;
+  var re87 = /(\$\{inyhr\})|(\$inyhr\b)/g;
+  var re88 = /(\$\{abj\})|(\$abj\b)/g;
+  var re89 = /\s+$/;
+  var re90 = /^\s+/;
+  var re91 = /(\\\"|\x00-|\x1f|\x7f-|\x9f|\u00ad|\u0600-|\u0604|\u070f|\u17b4|\u17b5|\u200c-|\u200f|\u2028-|\u202f|\u2060-|\u206f|\ufeff|\ufff0-|\uffff)/g;
+  var re92 = /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/;
+  var re93 = /^([:.#]*)((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+  var re94 = /^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/;
+  var str77 = '#fubhgobk .pybfr';
+  var str78 = 'FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzssrwh-aowb_80=441326q33660';
+  var str79 = 'FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; AFP_zp_dfctwzssrwh-aowb_80=441326q33660; __hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1; __hgzo=144631658.0.10.1231365869; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str80 = 'FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=441327q73660';
+  var str81 = 'FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; AFP_zp_dfctwzs-aowb_80=441327q73660; __hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1; __hgzo=144631658.0.10.1231367054; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str82 = '[glcr=fhozvg]';
+  var str83 = 'n.svryqOga,n.svryqOgaPnapry';
+  var str84 = 'n.svryqOgaPnapry';
+  var str85 = 'oyvpxchaxg';
+  var str86 = 'qvi.bow-nppbeqvba qg';
+  var str87 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_nccf_wf&qg=1231367052227&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367052227&punaary=svz_zlfcnpr_nccf-pnainf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2SZbqhyrf%2SNccyvpngvbaf%2SCntrf%2SPnainf.nfck&nq_glcr=grkg&rvq=6083027&rn=0&sez=1&tn_ivq=716357910.1231367056&tn_fvq=1231367056&tn_uvq=1387206491&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+  var str88 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365851658&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365851658&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyrrqvg.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1979828129.1231365855&tn_fvq=1231365855&tn_uvq=2085229649&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+  var str89 = 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N12%3N47%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=0k0&p=43835816&x=A&oj=994&ou=634&uc=A&{2}&[NDR]';
+  var str90 = 'zrgn[anzr=nwnkHey]';
+  var str91 = 'anpuevpugra';
+  var str92 = 'b oS={\'oT\':1.1};x $8n(B){z(B!=o9)};x $S(B){O(!$8n(B))z A;O(B.4L)z\'T\';b S=7t B;O(S==\'2P\'&&B.p4){23(B.7f){12 1:z\'T\';12 3:z/\S/.2g(B.8M)?\'ox\':\'oh\'}}O(S==\'2P\'||S==\'x\'){23(B.nE){12 2V:z\'1O\';12 7I:z\'5a\';12 18:z\'4B\'}O(7t B.I==\'4F\'){O(B.3u)z\'pG\';O(B.8e)z\'1p\'}}z S};x $2p(){b 4E={};Z(b v=0;v<1p.I;v++){Z(b X 1o 1p[v]){b nc=1p[v][X];b 6E=4E[X];O(6E&&$S(nc)==\'2P\'&&$S(6E)==\'2P\')4E[X]=$2p(6E,nc);17 4E[X]=nc}}z 4E};b $E=7p.E=x(){b 1d=1p;O(!1d[1])1d=[p,1d[0]];Z(b X 1o 1d[1])1d[0][X]=1d[1][X];z 1d[0]};b $4D=7p.pJ=x(){Z(b v=0,y=1p.I;v<y;v++){1p[v].E=x(1J){Z(b 1I 1o 1J){O(!p.1Y[1I])p.1Y[1I]=1J[1I];O(!p[1I])p[1I]=$4D.6C(1I)}}}};$4D.6C=x(1I){z x(L){z p.1Y[1I].3H(L,2V.1Y.nV.1F(1p,1))}};$4D(7F,2V,6J,nb);b 3l=x(B){B=B||{};B.E=$E;z B};b pK=Y 3l(H);b pZ=Y 3l(C);C.6f=C.35(\'6f\')[0];x $2O(B){z!!(B||B===0)};x $5S(B,n8){z $8n(B)?B:n8};x $7K(3c,1m){z 1q.na(1q.7K()*(1m-3c+1)+3c)};x $3N(){z Y 97().os()};x $4M(1U){pv(1U);pa(1U);z 1S};H.43=!!(C.5Z);O(H.nB)H.31=H[H.7q?\'py\':\'nL\']=1r;17 O(C.9N&&!C.om&&!oy.oZ)H.pF=H.4Z=H[H.43?\'pt\':\'65\']=1r;17 O(C.po!=1S)H.7J=1r;O(7t 5B==\'o9\'){b 5B=x(){};O(H.4Z)C.nd("pW");5B.1Y=(H.4Z)?H["[[oN.1Y]]"]:{}}5B.1Y.4L=1r;O(H.nL)5s{C.oX("pp",A,1r)}4K(r){};b 18=x(1X){b 63=x(){z(1p[0]!==1S&&p.1w&&$S(p.1w)==\'x\')?p.1w.3H(p,1p):p};$E(63,p);63.1Y=1X;63.nE=18;z 63};18.1z=x(){};18.1Y={E:x(1X){b 7x=Y p(1S);Z(b X 1o 1X){b nC=7x[X];7x[X]=18.nY(nC,1X[X])}z Y 18(7x)},3d:x(){Z(b v=0,y=1p.I;v<y;v++)$E(p.1Y,1p[v])}};18.nY=x(2b,2n){O(2b&&2b!=2n){b S=$S(2n);O(S!=$S(2b))z 2n;23(S){12\'x\':b 7R=x(){p.1e=1p.8e.1e;z 2n.3H(p,1p)};7R.1e=2b;z 7R;12\'2P\':z $2p(2b,2n)}}z 2n};b 8o=Y 18({oQ:x(J){p.4w=p.4w||[];p.4w.1x(J);z p},7g:x(){O(p.4w&&p.4w.I)p.4w.9J().2x(10,p)},oP:x(){p.4w=[]}});b 2d=Y 18({1V:x(S,J){O(J!=18.1z){p.$19=p.$19||{};p.$19[S]=p.$19[S]||[];p.$19[S].5j(J)}z p},1v:x(S,1d,2x){O(p.$19&&p.$19[S]){p.$19[S].1b(x(J){J.3n({\'L\':p,\'2x\':2x,\'1p\':1d})()},p)}z p},3M:x(S,J){O(p.$19&&p.$19[S])p.$19[S].2U(J);z p}});b 4v=Y 18({2H:x(){p.P=$2p.3H(1S,[p.P].E(1p));O(!p.1V)z p;Z(b 3O 1o p.P){O($S(p.P[3O]==\'x\')&&3O.2g(/^5P[N-M]/))p.1V(3O,p.P[3O])}z p}});2V.E({7y:x(J,L){Z(b v=0,w=p.I;v<w;v++)J.1F(L,p[v],v,p)},3s:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))54.1x(p[v])}z 54},2X:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++)54[v]=J.1F(L,p[v],v,p);z 54},4i:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(!J.1F(L,p[v],v,p))z A}z 1r},ob:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))z 1r}z A},3F:x(3u,15){b 3A=p.I;Z(b v=(15<0)?1q.1m(0,3A+15):15||0;v<3A;v++){O(p[v]===3u)z v}z-1},8z:x(1u,I){1u=1u||0;O(1u<0)1u=p.I+1u;I=I||(p.I-1u);b 89=[];Z(b v=0;v<I;v++)89[v]=p[1u++];z 89},2U:x(3u){b v=0;b 3A=p.I;6L(v<3A){O(p[v]===3u){p.6l(v,1);3A--}17{v++}}z p},1y:x(3u,15){z p.3F(3u,15)!=-1},oz:x(1C){b B={},I=1q.3c(p.I,1C.I);Z(b v=0;v<I;v++)B[1C[v]]=p[v];z B},E:x(1O){Z(b v=0,w=1O.I;v<w;v++)p.1x(1O[v]);z p},2p:x(1O){Z(b v=0,y=1O.I;v<y;v++)p.5j(1O[v]);z p},5j:x(3u){O(!p.1y(3u))p.1x(3u);z p},oc:x(){z p[$7K(0,p.I-1)]||A},7L:x(){z p[p.I-1]||A}});2V.1Y.1b=2V.1Y.7y;2V.1Y.2g=2V.1Y.1y;x $N(1O){z 2V.8z(1O)};x $1b(3J,J,L){O(3J&&7t 3J.I==\'4F\'&&$S(3J)!=\'2P\')2V.7y(3J,J,L);17 Z(b 1j 1o 3J)J.1F(L||3J,3J[1j],1j)};6J.E({2g:x(6b,2F){z(($S(6b)==\'2R\')?Y 7I(6b,2F):6b).2g(p)},3p:x(){z 5K(p,10)},o4:x(){z 69(p)},7A:x(){z p.3y(/-\D/t,x(2G){z 2G.7G(1).nW()})},9b:x(){z p.3y(/\w[N-M]/t,x(2G){z(2G.7G(0)+\'-\'+2G.7G(1).5O())})},8V:x(){z p.3y(/\b[n-m]/t,x(2G){z 2G.nW()})},5L:x(){z p.3y(/^\s+|\s+$/t,\'\')},7j:x(){z p.3y(/\s{2,}/t,\' \').5L()},5V:x(1O){b 1i=p.2G(/\d{1,3}/t);z(1i)?1i.5V(1O):A},5U:x(1O){b 3P=p.2G(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);z(3P)?3P.nV(1).5U(1O):A},1y:x(2R,f){z(f)?(f+p+f).3F(f+2R+f)>-1:p.3F(2R)>-1},nX:x(){z p.3y(/([.*+?^${}()|[\]\/\\])/t,\'\\$1\')}});2V.E({5V:x(1O){O(p.I<3)z A;O(p.I==4&&p[3]==0&&!1O)z\'p5\';b 3P=[];Z(b v=0;v<3;v++){b 52=(p[v]-0).4h(16);3P.1x((52.I==1)?\'0\'+52:52)}z 1O?3P:\'#\'+3P.2u(\'\')},5U:x(1O){O(p.I!=3)z A;b 1i=[];Z(b v=0;v<3;v++){1i.1x(5K((p[v].I==1)?p[v]+p[v]:p[v],16))}z 1O?1i:\'1i(\'+1i.2u(\',\')+\')\'}});7F.E({3n:x(P){b J=p;P=$2p({\'L\':J,\'V\':A,\'1p\':1S,\'2x\':A,\'4s\':A,\'6W\':A},P);O($2O(P.1p)&&$S(P.1p)!=\'1O\')P.1p=[P.1p];z x(V){b 1d;O(P.V){V=V||H.V;1d=[(P.V===1r)?V:Y P.V(V)];O(P.1p)1d.E(P.1p)}17 1d=P.1p||1p;b 3C=x(){z J.3H($5S(P';
+  var str93 = 'hagreunyghat';
+  var str94 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str95 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+  var str96 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var str97 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+  var str98 = 'shapgvba (){Cuk.Nccyvpngvba.Frghc.Pber();Cuk.Nccyvpngvba.Frghc.Nwnk();Cuk.Nccyvpngvba.Frghc.Synfu();Cuk.Nccyvpngvba.Frghc.Zbqhyrf()}';
+  function runBlock11() {
+    for (var i = 0; i < 2; i++) {
+      ' .pybfr'.replace(re18, '');
+      ' n.svryqOgaPnapry'.replace(re18, '');
+      ' qg'.replace(re18, '');
+      str77.replace(re68, '');
+      str77.replace(re18, '');
+      ''.replace(re39, '');
+      ''.replace(/^/, '');
+      ''.split(re86);
+      '*'.replace(re39, '');
+      '*'.replace(re68, '');
+      '*'.replace(re18, '');
+      '.pybfr'.replace(re68, '');
+      '.pybfr'.replace(re18, '');
+      '//vzt.jro.qr/vij/FC/tzk_uc/fperra/${inyhr}?gf=${abj}'.replace(re87, '');
+      '//vzt.jro.qr/vij/FC/tzk_uc/fperra/1024?gf=${abj}'.replace(re88, '');
+      '//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/${inyhr}?gf=${abj}'.replace(re87, '');
+      '//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/992/608?gf=${abj}'.replace(re88, '');
+      '300k120'.replace(re30, '');
+      '300k250'.replace(re30, '');
+      '310k120'.replace(re30, '');
+      '310k170'.replace(re30, '');
+      '310k250'.replace(re30, '');
+      '9.0  e115'.replace(/^.*\.(.*)\s.*$/, '');
+      'Nppbeqvba'.replace(re2, '');
+      'Nxghryy\x0a'.replace(re89, '');
+      'Nxghryy\x0a'.replace(re90, '');
+      'Nccyvpngvba'.replace(re2, '');
+      'Oyvpxchaxg\x0a'.replace(re89, '');
+      'Oyvpxchaxg\x0a'.replace(re90, '');
+      'Svanamra\x0a'.replace(re89, '');
+      'Svanamra\x0a'.replace(re90, '');
+      'Tnzrf\x0a'.replace(re89, '');
+      'Tnzrf\x0a'.replace(re90, '');
+      'Ubebfxbc\x0a'.replace(re89, '');
+      'Ubebfxbc\x0a'.replace(re90, '');
+      'Xvab\x0a'.replace(re89, '');
+      'Xvab\x0a'.replace(re90, '');
+      'Zbqhyrf'.replace(re2, '');
+      'Zhfvx\x0a'.replace(re89, '');
+      'Zhfvx\x0a'.replace(re90, '');
+      'Anpuevpugra\x0a'.replace(re89, '');
+      'Anpuevpugra\x0a'.replace(re90, '');
+      'Cuk'.replace(re2, '');
+      'ErdhrfgSvavfu'.split(re70);
+      'ErdhrfgSvavfu.NWNK.Cuk'.split(re70);
+      'Ebhgr\x0a'.replace(re89, '');
+      'Ebhgr\x0a'.replace(re90, '');
+      str78.split(re32);
+      str79.split(re32);
+      str80.split(re32);
+      str81.split(re32);
+      'Fcbeg\x0a'.replace(re89, '');
+      'Fcbeg\x0a'.replace(re90, '');
+      'GI-Fcbg\x0a'.replace(re89, '');
+      'GI-Fcbg\x0a'.replace(re90, '');
+      'Gbhe\x0a'.replace(re89, '');
+      'Gbhe\x0a'.replace(re90, '');
+      'Hagreunyghat\x0a'.replace(re89, '');
+      'Hagreunyghat\x0a'.replace(re90, '');
+      'Ivqrb\x0a'.replace(re89, '');
+      'Ivqrb\x0a'.replace(re90, '');
+      'Jrggre\x0a'.replace(re89, '');
+      'Jrggre\x0a'.replace(re90, '');
+      str82.replace(re68, '');
+      str82.replace(re18, '');
+      str83.replace(re68, '');
+      str83.replace(re18, '');
+      str84.replace(re68, '');
+      str84.replace(re18, '');
+      'nqiFreivprObk'.replace(re30, '');
+      'nqiFubccvatObk'.replace(re30, '');
+      'nwnk'.replace(re39, '');
+      'nxghryy'.replace(re40, '');
+      'nxghryy'.replace(re41, '');
+      'nxghryy'.replace(re42, '');
+      'nxghryy'.replace(re43, '');
+      'nxghryy'.replace(re44, '');
+      'nxghryy'.replace(re45, '');
+      'nxghryy'.replace(re46, '');
+      'nxghryy'.replace(re47, '');
+      'nxghryy'.replace(re48, '');
+      str85.replace(re40, '');
+      str85.replace(re41, '');
+      str85.replace(re42, '');
+      str85.replace(re43, '');
+      str85.replace(re44, '');
+      str85.replace(re45, '');
+      str85.replace(re46, '');
+      str85.replace(re47, '');
+      str85.replace(re48, '');
+      'pngrtbel'.replace(re29, '');
+      'pngrtbel'.replace(re30, '');
+      'pybfr'.replace(re39, '');
+      'qvi'.replace(re39, '');
+      str86.replace(re68, '');
+      str86.replace(re18, '');
+      'qg'.replace(re39, '');
+      'qg'.replace(re68, '');
+      'qg'.replace(re18, '');
+      'rzorq'.replace(re39, '');
+      'rzorq'.replace(re68, '');
+      'rzorq'.replace(re18, '');
+      'svryqOga'.replace(re39, '');
+      'svryqOgaPnapry'.replace(re39, '');
+      'svz_zlfcnpr_nccf-pnainf,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
+      'svanamra'.replace(re40, '');
+      'svanamra'.replace(re41, '');
+      'svanamra'.replace(re42, '');
+      'svanamra'.replace(re43, '');
+      'svanamra'.replace(re44, '');
+      'svanamra'.replace(re45, '');
+      'svanamra'.replace(re46, '');
+      'svanamra'.replace(re47, '');
+      'svanamra'.replace(re48, '');
+      'sbphf'.split(re70);
+      'sbphf.gno sbphfva.gno'.split(re70);
+      'sbphfva'.split(re70);
+      'sbez'.replace(re39, '');
+      'sbez.nwnk'.replace(re68, '');
+      'sbez.nwnk'.replace(re18, '');
+      'tnzrf'.replace(re40, '');
+      'tnzrf'.replace(re41, '');
+      'tnzrf'.replace(re42, '');
+      'tnzrf'.replace(re43, '');
+      'tnzrf'.replace(re44, '');
+      'tnzrf'.replace(re45, '');
+      'tnzrf'.replace(re46, '');
+      'tnzrf'.replace(re47, '');
+      'tnzrf'.replace(re48, '');
+      'ubzrcntr'.replace(re30, '');
+      'ubebfxbc'.replace(re40, '');
+      'ubebfxbc'.replace(re41, '');
+      'ubebfxbc'.replace(re42, '');
+      'ubebfxbc'.replace(re43, '');
+      'ubebfxbc'.replace(re44, '');
+      'ubebfxbc'.replace(re45, '');
+      'ubebfxbc'.replace(re46, '');
+      'ubebfxbc'.replace(re47, '');
+      'ubebfxbc'.replace(re48, '');
+      'uc_cebzbobk_ugzy%2Puc_cebzbobk_vzt'.replace(re30, '');
+      'uc_erpgnatyr'.replace(re30, '');
+      str87.replace(re33, '');
+      str88.replace(re33, '');
+      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${4}${5}'.replace(re71, '');
+      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${5}'.replace(re72, '');
+      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${4}${5}'.replace(re71, '');
+      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${5}'.replace(re72, '');
+      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${4}${5}'.replace(re71, '');
+      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${5}'.replace(re72, '');
+      str89.replace(re73, '');
+      'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&{1}&{2}&[NDR]'.replace(re69, '');
+      str6.replace(re23, '');
+      'xvab'.replace(re40, '');
+      'xvab'.replace(re41, '');
+      'xvab'.replace(re42, '');
+      'xvab'.replace(re43, '');
+      'xvab'.replace(re44, '');
+      'xvab'.replace(re45, '');
+      'xvab'.replace(re46, '');
+      'xvab'.replace(re47, '');
+      'xvab'.replace(re48, '');
+      'ybnq'.split(re70);
+      'zrqvnzbqgno lhv-anifrg lhv-anifrg-gbc'.replace(re18, '');
+      'zrgn'.replace(re39, '');
+      str90.replace(re68, '');
+      str90.replace(re18, '');
+      'zbhfrzbir'.split(re70);
+      'zbhfrzbir.gno'.split(re70);
+      str63.replace(/^.*jroxvg\/(\d+(\.\d+)?).*$/, '');
+      'zhfvx'.replace(re40, '');
+      'zhfvx'.replace(re41, '');
+      'zhfvx'.replace(re42, '');
+      'zhfvx'.replace(re43, '');
+      'zhfvx'.replace(re44, '');
+      'zhfvx'.replace(re45, '');
+      'zhfvx'.replace(re46, '');
+      'zhfvx'.replace(re47, '');
+      'zhfvx'.replace(re48, '');
+      'zlfcnpr_nccf_pnainf'.replace(re52, '');
+      str91.replace(re40, '');
+      str91.replace(re41, '');
+      str91.replace(re42, '');
+      str91.replace(re43, '');
+      str91.replace(re44, '');
+      str91.replace(re45, '');
+      str91.replace(re46, '');
+      str91.replace(re47, '');
+      str91.replace(re48, '');
+      'anzr'.replace(re39, '');
+      str92.replace(/\b\w+\b/g, '');
+      'bow-nppbeqvba'.replace(re39, '');
+      'bowrpg'.replace(re39, '');
+      'bowrpg'.replace(re68, '');
+      'bowrpg'.replace(re18, '');
+      'cnenzf%2Rfglyrf'.replace(re29, '');
+      'cnenzf%2Rfglyrf'.replace(re30, '');
+      'cbchc'.replace(re30, '');
+      'ebhgr'.replace(re40, '');
+      'ebhgr'.replace(re41, '');
+      'ebhgr'.replace(re42, '');
+      'ebhgr'.replace(re43, '');
+      'ebhgr'.replace(re44, '');
+      'ebhgr'.replace(re45, '');
+      'ebhgr'.replace(re46, '');
+      'ebhgr'.replace(re47, '');
+      'ebhgr'.replace(re48, '');
+      'freivprobk_uc'.replace(re30, '');
+      'fubccvatobk_uc'.replace(re30, '');
+      'fubhgobk'.replace(re39, '');
+      'fcbeg'.replace(re40, '');
+      'fcbeg'.replace(re41, '');
+      'fcbeg'.replace(re42, '');
+      'fcbeg'.replace(re43, '');
+      'fcbeg'.replace(re44, '');
+      'fcbeg'.replace(re45, '');
+      'fcbeg'.replace(re46, '');
+      'fcbeg'.replace(re47, '');
+      'fcbeg'.replace(re48, '');
+      'gbhe'.replace(re40, '');
+      'gbhe'.replace(re41, '');
+      'gbhe'.replace(re42, '');
+      'gbhe'.replace(re43, '');
+      'gbhe'.replace(re44, '');
+      'gbhe'.replace(re45, '');
+      'gbhe'.replace(re46, '');
+      'gbhe'.replace(re47, '');
+      'gbhe'.replace(re48, '');
+      'gi-fcbg'.replace(re40, '');
+      'gi-fcbg'.replace(re41, '');
+      'gi-fcbg'.replace(re42, '');
+      'gi-fcbg'.replace(re43, '');
+      'gi-fcbg'.replace(re44, '');
+      'gi-fcbg'.replace(re45, '');
+      'gi-fcbg'.replace(re46, '');
+      'gi-fcbg'.replace(re47, '');
+      'gi-fcbg'.replace(re48, '');
+      'glcr'.replace(re39, '');
+      'haqrsvarq'.replace(/\//g, '');
+      str93.replace(re40, '');
+      str93.replace(re41, '');
+      str93.replace(re42, '');
+      str93.replace(re43, '');
+      str93.replace(re44, '');
+      str93.replace(re45, '');
+      str93.replace(re46, '');
+      str93.replace(re47, '');
+      str93.replace(re48, '');
+      'ivqrb'.replace(re40, '');
+      'ivqrb'.replace(re41, '');
+      'ivqrb'.replace(re42, '');
+      'ivqrb'.replace(re43, '');
+      'ivqrb'.replace(re44, '');
+      'ivqrb'.replace(re45, '');
+      'ivqrb'.replace(re46, '');
+      'ivqrb'.replace(re47, '');
+      'ivqrb'.replace(re48, '');
+      'ivfvgf=1'.split(re86);
+      'jrggre'.replace(re40, '');
+      'jrggre'.replace(re41, '');
+      'jrggre'.replace(re42, '');
+      'jrggre'.replace(re43, '');
+      'jrggre'.replace(re44, '');
+      'jrggre'.replace(re45, '');
+      'jrggre'.replace(re46, '');
+      'jrggre'.replace(re47, '');
+      'jrggre'.replace(re48, '');
+      /#[a-z0-9]+$/i.exec('uggc://jjj.fpuhryreim.arg/Qrsnhyg');
+      re66.exec('fryrpgrq');
+      /(?:^|\s+)lhv-ani(?:\s+|$)/.exec('sff lhv-ani');
+      /(?:^|\s+)lhv-anifrg(?:\s+|$)/.exec('zrqvnzbqgno lhv-anifrg');
+      /(?:^|\s+)lhv-anifrg-gbc(?:\s+|$)/.exec('zrqvnzbqgno lhv-anifrg');
+      re91.exec('GnoThvq');
+      re91.exec('thvq');
+      /(pbzcngvoyr|jroxvg)/.exec(str63);
+      /.+(?:ei|vg|en|vr)[\/: ]([\d.]+)/.exec(str63);
+      re8.exec('144631658.0.10.1231365869');
+      re8.exec('144631658.0.10.1231367054');
+      re8.exec('144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re8.exec('144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re8.exec('144631658.1670816052019209000.1231365869.1231365869.1231365869.1');
+      re8.exec('144631658.1796080716621419500.1231367054.1231367054.1231367054.1');
+      re8.exec(str94);
+      re8.exec(str95);
+      re8.exec(str96);
+      re8.exec(str97);
+      re8.exec('__hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1');
+      re8.exec('__hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1');
+      re8.exec('__hgzo=144631658.0.10.1231365869');
+      re8.exec('__hgzo=144631658.0.10.1231367054');
+      re8.exec('__hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re8.exec('__hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+      re34.exec(str78);
+      re34.exec(str79);
+      re34.exec(str81);
+      re74.exec(str77);
+      re74.exec('*');
+      re74.exec(str82);
+      re74.exec(str83);
+      re74.exec(str86);
+      re74.exec('rzorq');
+      re74.exec('sbez.nwnk');
+      re74.exec(str90);
+      re74.exec('bowrpg');
+      /\/onfr.wf(\?.+)?$/.exec('/uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf');
+      re28.exec('uvag ynfgUvag ynfg');
+      re75.exec('');
+      re76.exec('');
+      re77.exec('');
+      re78.exec('');
+      re80.exec(str77);
+      re80.exec('*');
+      re80.exec('.pybfr');
+      re80.exec(str82);
+      re80.exec(str83);
+      re80.exec(str84);
+      re80.exec(str86);
+      re80.exec('qg');
+      re80.exec('rzorq');
+      re80.exec('sbez.nwnk');
+      re80.exec(str90);
+      re80.exec('bowrpg');
+      re61.exec('qlaYvo.wf');
+      re61.exec('rssrpgYvo.wf');
+      re61.exec('uggc://jjj.tzk.arg/qr/?fgnghf=uvajrvf');
+      re92.exec(' .pybfr');
+      re92.exec(' n.svryqOgaPnapry');
+      re92.exec(' qg');
+      re92.exec(str48);
+      re92.exec('.nwnk');
+      re92.exec('.svryqOga,n.svryqOgaPnapry');
+      re92.exec('.svryqOgaPnapry');
+      re92.exec('.bow-nppbeqvba qg');
+      re68.exec(str77);
+      re68.exec('*');
+      re68.exec('.pybfr');
+      re68.exec(str82);
+      re68.exec(str83);
+      re68.exec(str84);
+      re68.exec(str86);
+      re68.exec('qg');
+      re68.exec('rzorq');
+      re68.exec('sbez.nwnk');
+      re68.exec(str90);
+      re68.exec('bowrpg');
+      re93.exec(' .pybfr');
+      re93.exec(' n.svryqOgaPnapry');
+      re93.exec(' qg');
+      re93.exec(str48);
+      re93.exec('.nwnk');
+      re93.exec('.svryqOga,n.svryqOgaPnapry');
+      re93.exec('.svryqOgaPnapry');
+      re93.exec('.bow-nppbeqvba qg');
+      re81.exec(str77);
+      re81.exec('*');
+      re81.exec(str48);
+      re81.exec('.pybfr');
+      re81.exec(str82);
+      re81.exec(str83);
+      re81.exec(str84);
+      re81.exec(str86);
+      re81.exec('qg');
+      re81.exec('rzorq');
+      re81.exec('sbez.nwnk');
+      re81.exec(str90);
+      re81.exec('bowrpg');
+      re94.exec(' .pybfr');
+      re94.exec(' n.svryqOgaPnapry');
+      re94.exec(' qg');
+      re94.exec(str48);
+      re94.exec('.nwnk');
+      re94.exec('.svryqOga,n.svryqOgaPnapry');
+      re94.exec('.svryqOgaPnapry');
+      re94.exec('.bow-nppbeqvba qg');
+      re94.exec('[anzr=nwnkHey]');
+      re94.exec(str82);
+      re31.exec('rf');
+      re31.exec('wn');
+      re82.exec(str77);
+      re82.exec('*');
+      re82.exec(str48);
+      re82.exec('.pybfr');
+      re82.exec(str82);
+      re82.exec(str83);
+      re82.exec(str84);
+      re82.exec(str86);
+      re82.exec('qg');
+      re82.exec('rzorq');
+      re82.exec('sbez.nwnk');
+      re82.exec(str90);
+      re82.exec('bowrpg');
+      re83.exec(str98);
+      re83.exec('shapgvba sbphf() { [angvir pbqr] }');
+      re62.exec('#Ybtva');
+      re62.exec('#Ybtva_cnffjbeq');
+      re62.exec(str77);
+      re62.exec('#fubhgobkWf');
+      re62.exec('#fubhgobkWfReebe');
+      re62.exec('#fubhgobkWfFhpprff');
+      re62.exec('*');
+      re62.exec(str82);
+      re62.exec(str83);
+      re62.exec(str86);
+      re62.exec('rzorq');
+      re62.exec('sbez.nwnk');
+      re62.exec(str90);
+      re62.exec('bowrpg');
+      re49.exec('pbagrag');
+      re24.exec(str6);
+      /xbadhrebe/.exec(str63);
+      /znp/.exec('jva32');
+      /zbmvyyn/.exec(str63);
+      /zfvr/.exec(str63);
+      /ag\s5\.1/.exec(str63);
+      /bcren/.exec(str63);
+      /fnsnev/.exec(str63);
+      /jva/.exec('jva32');
+      /jvaqbjf/.exec(str63);
+    }
+  }
+
+  function run() {
+    for (var i = 0; i < 5; i++) {
+      runBlock0();
+      runBlock1();
+      runBlock2();
+      runBlock3();
+      runBlock4();
+      runBlock5();
+      runBlock6();
+      runBlock7();
+      runBlock8();
+      runBlock9();
+      runBlock10();
+      runBlock11();
+    }
+  }
+
+  this.run = run;
+}
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/richards.js b/suite/pts/deviceTests/browserbench/assets/octane/richards.js
new file mode 100644
index 0000000..054928d
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/richards.js
@@ -0,0 +1,539 @@
+// Copyright 2006-2008 the V8 project authors. 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.
+//     * Neither the name of Google Inc. 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 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.
+
+
+// This is a JavaScript implementation of the Richards
+// benchmark from:
+//
+//    http://www.cl.cam.ac.uk/~mr10/Bench.html
+//
+// The benchmark was originally implemented in BCPL by
+// Martin Richards.
+
+
+var Richards = new BenchmarkSuite('Richards', 35302, [
+  new Benchmark("Richards", runRichards)
+]);
+
+
+/**
+ * The Richards benchmark simulates the task dispatcher of an
+ * operating system.
+ **/
+function runRichards() {
+  var scheduler = new Scheduler();
+  scheduler.addIdleTask(ID_IDLE, 0, null, COUNT);
+
+  var queue = new Packet(null, ID_WORKER, KIND_WORK);
+  queue = new Packet(queue,  ID_WORKER, KIND_WORK);
+  scheduler.addWorkerTask(ID_WORKER, 1000, queue);
+
+  queue = new Packet(null, ID_DEVICE_A, KIND_DEVICE);
+  queue = new Packet(queue,  ID_DEVICE_A, KIND_DEVICE);
+  queue = new Packet(queue,  ID_DEVICE_A, KIND_DEVICE);
+  scheduler.addHandlerTask(ID_HANDLER_A, 2000, queue);
+
+  queue = new Packet(null, ID_DEVICE_B, KIND_DEVICE);
+  queue = new Packet(queue,  ID_DEVICE_B, KIND_DEVICE);
+  queue = new Packet(queue,  ID_DEVICE_B, KIND_DEVICE);
+  scheduler.addHandlerTask(ID_HANDLER_B, 3000, queue);
+
+  scheduler.addDeviceTask(ID_DEVICE_A, 4000, null);
+
+  scheduler.addDeviceTask(ID_DEVICE_B, 5000, null);
+
+  scheduler.schedule();
+
+  if (scheduler.queueCount != EXPECTED_QUEUE_COUNT ||
+      scheduler.holdCount != EXPECTED_HOLD_COUNT) {
+    var msg =
+        "Error during execution: queueCount = " + scheduler.queueCount +
+        ", holdCount = " + scheduler.holdCount + ".";
+    throw new Error(msg);
+  }
+}
+
+var COUNT = 1000;
+
+/**
+ * These two constants specify how many times a packet is queued and
+ * how many times a task is put on hold in a correct run of richards.
+ * They don't have any meaning a such but are characteristic of a
+ * correct run so if the actual queue or hold count is different from
+ * the expected there must be a bug in the implementation.
+ **/
+var EXPECTED_QUEUE_COUNT = 2322;
+var EXPECTED_HOLD_COUNT = 928;
+
+
+/**
+ * A scheduler can be used to schedule a set of tasks based on their relative
+ * priorities.  Scheduling is done by maintaining a list of task control blocks
+ * which holds tasks and the data queue they are processing.
+ * @constructor
+ */
+function Scheduler() {
+  this.queueCount = 0;
+  this.holdCount = 0;
+  this.blocks = new Array(NUMBER_OF_IDS);
+  this.list = null;
+  this.currentTcb = null;
+  this.currentId = null;
+}
+
+var ID_IDLE       = 0;
+var ID_WORKER     = 1;
+var ID_HANDLER_A  = 2;
+var ID_HANDLER_B  = 3;
+var ID_DEVICE_A   = 4;
+var ID_DEVICE_B   = 5;
+var NUMBER_OF_IDS = 6;
+
+var KIND_DEVICE   = 0;
+var KIND_WORK     = 1;
+
+/**
+ * Add an idle task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {int} count the number of times to schedule the task
+ */
+Scheduler.prototype.addIdleTask = function (id, priority, queue, count) {
+  this.addRunningTask(id, priority, queue, new IdleTask(this, 1, count));
+};
+
+/**
+ * Add a work task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addWorkerTask = function (id, priority, queue) {
+  this.addTask(id, priority, queue, new WorkerTask(this, ID_HANDLER_A, 0));
+};
+
+/**
+ * Add a handler task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addHandlerTask = function (id, priority, queue) {
+  this.addTask(id, priority, queue, new HandlerTask(this));
+};
+
+/**
+ * Add a handler task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addDeviceTask = function (id, priority, queue) {
+  this.addTask(id, priority, queue, new DeviceTask(this))
+};
+
+/**
+ * Add the specified task and mark it as running.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {Task} task the task to add
+ */
+Scheduler.prototype.addRunningTask = function (id, priority, queue, task) {
+  this.addTask(id, priority, queue, task);
+  this.currentTcb.setRunning();
+};
+
+/**
+ * Add the specified task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {Task} task the task to add
+ */
+Scheduler.prototype.addTask = function (id, priority, queue, task) {
+  this.currentTcb = new TaskControlBlock(this.list, id, priority, queue, task);
+  this.list = this.currentTcb;
+  this.blocks[id] = this.currentTcb;
+};
+
+/**
+ * Execute the tasks managed by this scheduler.
+ */
+Scheduler.prototype.schedule = function () {
+  this.currentTcb = this.list;
+  while (this.currentTcb != null) {
+    if (this.currentTcb.isHeldOrSuspended()) {
+      this.currentTcb = this.currentTcb.link;
+    } else {
+      this.currentId = this.currentTcb.id;
+      this.currentTcb = this.currentTcb.run();
+    }
+  }
+};
+
+/**
+ * Release a task that is currently blocked and return the next block to run.
+ * @param {int} id the id of the task to suspend
+ */
+Scheduler.prototype.release = function (id) {
+  var tcb = this.blocks[id];
+  if (tcb == null) return tcb;
+  tcb.markAsNotHeld();
+  if (tcb.priority > this.currentTcb.priority) {
+    return tcb;
+  } else {
+    return this.currentTcb;
+  }
+};
+
+/**
+ * Block the currently executing task and return the next task control block
+ * to run.  The blocked task will not be made runnable until it is explicitly
+ * released, even if new work is added to it.
+ */
+Scheduler.prototype.holdCurrent = function () {
+  this.holdCount++;
+  this.currentTcb.markAsHeld();
+  return this.currentTcb.link;
+};
+
+/**
+ * Suspend the currently executing task and return the next task control block
+ * to run.  If new work is added to the suspended task it will be made runnable.
+ */
+Scheduler.prototype.suspendCurrent = function () {
+  this.currentTcb.markAsSuspended();
+  return this.currentTcb;
+};
+
+/**
+ * Add the specified packet to the end of the worklist used by the task
+ * associated with the packet and make the task runnable if it is currently
+ * suspended.
+ * @param {Packet} packet the packet to add
+ */
+Scheduler.prototype.queue = function (packet) {
+  var t = this.blocks[packet.id];
+  if (t == null) return t;
+  this.queueCount++;
+  packet.link = null;
+  packet.id = this.currentId;
+  return t.checkPriorityAdd(this.currentTcb, packet);
+};
+
+/**
+ * A task control block manages a task and the queue of work packages associated
+ * with it.
+ * @param {TaskControlBlock} link the preceding block in the linked block list
+ * @param {int} id the id of this block
+ * @param {int} priority the priority of this block
+ * @param {Packet} queue the queue of packages to be processed by the task
+ * @param {Task} task the task
+ * @constructor
+ */
+function TaskControlBlock(link, id, priority, queue, task) {
+  this.link = link;
+  this.id = id;
+  this.priority = priority;
+  this.queue = queue;
+  this.task = task;
+  if (queue == null) {
+    this.state = STATE_SUSPENDED;
+  } else {
+    this.state = STATE_SUSPENDED_RUNNABLE;
+  }
+}
+
+/**
+ * The task is running and is currently scheduled.
+ */
+var STATE_RUNNING = 0;
+
+/**
+ * The task has packets left to process.
+ */
+var STATE_RUNNABLE = 1;
+
+/**
+ * The task is not currently running.  The task is not blocked as such and may
+* be started by the scheduler.
+ */
+var STATE_SUSPENDED = 2;
+
+/**
+ * The task is blocked and cannot be run until it is explicitly released.
+ */
+var STATE_HELD = 4;
+
+var STATE_SUSPENDED_RUNNABLE = STATE_SUSPENDED | STATE_RUNNABLE;
+var STATE_NOT_HELD = ~STATE_HELD;
+
+TaskControlBlock.prototype.setRunning = function () {
+  this.state = STATE_RUNNING;
+};
+
+TaskControlBlock.prototype.markAsNotHeld = function () {
+  this.state = this.state & STATE_NOT_HELD;
+};
+
+TaskControlBlock.prototype.markAsHeld = function () {
+  this.state = this.state | STATE_HELD;
+};
+
+TaskControlBlock.prototype.isHeldOrSuspended = function () {
+  return (this.state & STATE_HELD) != 0 || (this.state == STATE_SUSPENDED);
+};
+
+TaskControlBlock.prototype.markAsSuspended = function () {
+  this.state = this.state | STATE_SUSPENDED;
+};
+
+TaskControlBlock.prototype.markAsRunnable = function () {
+  this.state = this.state | STATE_RUNNABLE;
+};
+
+/**
+ * Runs this task, if it is ready to be run, and returns the next task to run.
+ */
+TaskControlBlock.prototype.run = function () {
+  var packet;
+  if (this.state == STATE_SUSPENDED_RUNNABLE) {
+    packet = this.queue;
+    this.queue = packet.link;
+    if (this.queue == null) {
+      this.state = STATE_RUNNING;
+    } else {
+      this.state = STATE_RUNNABLE;
+    }
+  } else {
+    packet = null;
+  }
+  return this.task.run(packet);
+};
+
+/**
+ * Adds a packet to the worklist of this block's task, marks this as runnable if
+ * necessary, and returns the next runnable object to run (the one
+ * with the highest priority).
+ */
+TaskControlBlock.prototype.checkPriorityAdd = function (task, packet) {
+  if (this.queue == null) {
+    this.queue = packet;
+    this.markAsRunnable();
+    if (this.priority > task.priority) return this;
+  } else {
+    this.queue = packet.addTo(this.queue);
+  }
+  return task;
+};
+
+TaskControlBlock.prototype.toString = function () {
+  return "tcb { " + this.task + "@" + this.state + " }";
+};
+
+/**
+ * An idle task doesn't do any work itself but cycles control between the two
+ * device tasks.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @param {int} v1 a seed value that controls how the device tasks are scheduled
+ * @param {int} count the number of times this task should be scheduled
+ * @constructor
+ */
+function IdleTask(scheduler, v1, count) {
+  this.scheduler = scheduler;
+  this.v1 = v1;
+  this.count = count;
+}
+
+IdleTask.prototype.run = function (packet) {
+  this.count--;
+  if (this.count == 0) return this.scheduler.holdCurrent();
+  if ((this.v1 & 1) == 0) {
+    this.v1 = this.v1 >> 1;
+    return this.scheduler.release(ID_DEVICE_A);
+  } else {
+    this.v1 = (this.v1 >> 1) ^ 0xD008;
+    return this.scheduler.release(ID_DEVICE_B);
+  }
+};
+
+IdleTask.prototype.toString = function () {
+  return "IdleTask"
+};
+
+/**
+ * A task that suspends itself after each time it has been run to simulate
+ * waiting for data from an external device.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @constructor
+ */
+function DeviceTask(scheduler) {
+  this.scheduler = scheduler;
+  this.v1 = null;
+}
+
+DeviceTask.prototype.run = function (packet) {
+  if (packet == null) {
+    if (this.v1 == null) return this.scheduler.suspendCurrent();
+    var v = this.v1;
+    this.v1 = null;
+    return this.scheduler.queue(v);
+  } else {
+    this.v1 = packet;
+    return this.scheduler.holdCurrent();
+  }
+};
+
+DeviceTask.prototype.toString = function () {
+  return "DeviceTask";
+};
+
+/**
+ * A task that manipulates work packets.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @param {int} v1 a seed used to specify how work packets are manipulated
+ * @param {int} v2 another seed used to specify how work packets are manipulated
+ * @constructor
+ */
+function WorkerTask(scheduler, v1, v2) {
+  this.scheduler = scheduler;
+  this.v1 = v1;
+  this.v2 = v2;
+}
+
+WorkerTask.prototype.run = function (packet) {
+  if (packet == null) {
+    return this.scheduler.suspendCurrent();
+  } else {
+    if (this.v1 == ID_HANDLER_A) {
+      this.v1 = ID_HANDLER_B;
+    } else {
+      this.v1 = ID_HANDLER_A;
+    }
+    packet.id = this.v1;
+    packet.a1 = 0;
+    for (var i = 0; i < DATA_SIZE; i++) {
+      this.v2++;
+      if (this.v2 > 26) this.v2 = 1;
+      packet.a2[i] = this.v2;
+    }
+    return this.scheduler.queue(packet);
+  }
+};
+
+WorkerTask.prototype.toString = function () {
+  return "WorkerTask";
+};
+
+/**
+ * A task that manipulates work packets and then suspends itself.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @constructor
+ */
+function HandlerTask(scheduler) {
+  this.scheduler = scheduler;
+  this.v1 = null;
+  this.v2 = null;
+}
+
+HandlerTask.prototype.run = function (packet) {
+  if (packet != null) {
+    if (packet.kind == KIND_WORK) {
+      this.v1 = packet.addTo(this.v1);
+    } else {
+      this.v2 = packet.addTo(this.v2);
+    }
+  }
+  if (this.v1 != null) {
+    var count = this.v1.a1;
+    var v;
+    if (count < DATA_SIZE) {
+      if (this.v2 != null) {
+        v = this.v2;
+        this.v2 = this.v2.link;
+        v.a1 = this.v1.a2[count];
+        this.v1.a1 = count + 1;
+        return this.scheduler.queue(v);
+      }
+    } else {
+      v = this.v1;
+      this.v1 = this.v1.link;
+      return this.scheduler.queue(v);
+    }
+  }
+  return this.scheduler.suspendCurrent();
+};
+
+HandlerTask.prototype.toString = function () {
+  return "HandlerTask";
+};
+
+/* --- *
+ * P a c k e t
+ * --- */
+
+var DATA_SIZE = 4;
+
+/**
+ * A simple package of data that is manipulated by the tasks.  The exact layout
+ * of the payload data carried by a packet is not importaint, and neither is the
+ * nature of the work performed on packets by the tasks.
+ *
+ * Besides carrying data, packets form linked lists and are hence used both as
+ * data and worklists.
+ * @param {Packet} link the tail of the linked list of packets
+ * @param {int} id an ID for this packet
+ * @param {int} kind the type of this packet
+ * @constructor
+ */
+function Packet(link, id, kind) {
+  this.link = link;
+  this.id = id;
+  this.kind = kind;
+  this.a1 = 0;
+  this.a2 = new Array(DATA_SIZE);
+}
+
+/**
+ * Add this packet to the end of a worklist, and return the worklist.
+ * @param {Packet} queue the worklist to add this packet to
+ */
+Packet.prototype.addTo = function (queue) {
+  this.link = null;
+  if (queue == null) return this;
+  var peek, next = queue;
+  while ((peek = next.link) != null)
+    next = peek;
+  next.link = this;
+  return queue;
+};
+
+Packet.prototype.toString = function () {
+  return "Packet";
+};
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/run.js b/suite/pts/deviceTests/browserbench/assets/octane/run.js
new file mode 100644
index 0000000..e778130
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/run.js
@@ -0,0 +1,67 @@
+// Copyright 2008 the V8 project authors. 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.
+//     * Neither the name of Google Inc. 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 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.
+
+
+load('base.js');
+load('richards.js');
+load('deltablue.js');
+load('crypto.js');
+load('raytrace.js');
+load('earley-boyer.js');
+load('regexp.js');
+load('splay.js');
+load('navier-stokes.js');
+load('pdfjs.js');
+load('mandreel.js');
+load('gbemu.js');
+load('code-load.js');
+load('box2d.js');
+
+var success = true;
+
+function PrintResult(name, result) {
+  print(name + ': ' + result);
+}
+
+
+function PrintError(name, error) {
+  PrintResult(name, error);
+  success = false;
+}
+
+
+function PrintScore(score) {
+  if (success) {
+    print('----');
+    print('Score (version ' + BenchmarkSuite.version + '): ' + score);
+  }
+}
+
+
+BenchmarkSuite.RunSuites({ NotifyResult: PrintResult,
+                           NotifyError: PrintError,
+                           NotifyScore: PrintScore });
diff --git a/suite/pts/deviceTests/browserbench/assets/octane/splay.js b/suite/pts/deviceTests/browserbench/assets/octane/splay.js
new file mode 100644
index 0000000..6b4f56d
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/assets/octane/splay.js
@@ -0,0 +1,394 @@
+// Copyright 2009 the V8 project authors. 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.
+//     * Neither the name of Google Inc. 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 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.
+
+// This benchmark is based on a JavaScript log processing module used
+// by the V8 profiler to generate execution time profiles for runs of
+// JavaScript applications, and it effectively measures how fast the
+// JavaScript engine is at allocating nodes and reclaiming the memory
+// used for old nodes. Because of the way splay trees work, the engine
+// also has to deal with a lot of changes to the large tree object
+// graph.
+
+var Splay = new BenchmarkSuite('Splay', 81491, [
+  new Benchmark("Splay", SplayRun, SplaySetup, SplayTearDown)
+]);
+
+
+// Configuration.
+var kSplayTreeSize = 8000;
+var kSplayTreeModifications = 80;
+var kSplayTreePayloadDepth = 5;
+
+var splayTree = null;
+
+
+function GeneratePayloadTree(depth, tag) {
+  if (depth == 0) {
+    return {
+      array  : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ],
+      string : 'String for key ' + tag + ' in leaf node'
+    };
+  } else {
+    return {
+      left:  GeneratePayloadTree(depth - 1, tag),
+      right: GeneratePayloadTree(depth - 1, tag)
+    };
+  }
+}
+
+
+function GenerateKey() {
+  // The benchmark framework guarantees that Math.random is
+  // deterministic; see base.js.
+  return Math.random();
+}
+
+
+function InsertNewNode() {
+  // Insert new node with a unique key.
+  var key;
+  do {
+    key = GenerateKey();
+  } while (splayTree.find(key) != null);
+  var payload = GeneratePayloadTree(kSplayTreePayloadDepth, String(key));
+  splayTree.insert(key, payload);
+  return key;
+}
+
+
+
+function SplaySetup() {
+  splayTree = new SplayTree();
+  for (var i = 0; i < kSplayTreeSize; i++) InsertNewNode();
+}
+
+
+function SplayTearDown() {
+  // Allow the garbage collector to reclaim the memory
+  // used by the splay tree no matter how we exit the
+  // tear down function.
+  var keys = splayTree.exportKeys();
+  splayTree = null;
+
+  // Verify that the splay tree has the right size.
+  var length = keys.length;
+  if (length != kSplayTreeSize) {
+    throw new Error("Splay tree has wrong size");
+  }
+
+  // Verify that the splay tree has sorted, unique keys.
+  for (var i = 0; i < length - 1; i++) {
+    if (keys[i] >= keys[i + 1]) {
+      throw new Error("Splay tree not sorted");
+    }
+  }
+}
+
+
+function SplayRun() {
+  // Replace a few nodes in the splay tree.
+  for (var i = 0; i < kSplayTreeModifications; i++) {
+    var key = InsertNewNode();
+    var greatest = splayTree.findGreatestLessThan(key);
+    if (greatest == null) splayTree.remove(key);
+    else splayTree.remove(greatest.key);
+  }
+}
+
+
+/**
+ * Constructs a Splay tree.  A splay tree is a self-balancing binary
+ * search tree with the additional property that recently accessed
+ * elements are quick to access again. It performs basic operations
+ * such as insertion, look-up and removal in O(log(n)) amortized time.
+ *
+ * @constructor
+ */
+function SplayTree() {
+};
+
+
+/**
+ * Pointer to the root node of the tree.
+ *
+ * @type {SplayTree.Node}
+ * @private
+ */
+SplayTree.prototype.root_ = null;
+
+
+/**
+ * @return {boolean} Whether the tree is empty.
+ */
+SplayTree.prototype.isEmpty = function() {
+  return !this.root_;
+};
+
+
+/**
+ * Inserts a node into the tree with the specified key and value if
+ * the tree does not already contain a node with the specified key. If
+ * the value is inserted, it becomes the root of the tree.
+ *
+ * @param {number} key Key to insert into the tree.
+ * @param {*} value Value to insert into the tree.
+ */
+SplayTree.prototype.insert = function(key, value) {
+  if (this.isEmpty()) {
+    this.root_ = new SplayTree.Node(key, value);
+    return;
+  }
+  // Splay on the key to move the last node on the search path for
+  // the key to the root of the tree.
+  this.splay_(key);
+  if (this.root_.key == key) {
+    return;
+  }
+  var node = new SplayTree.Node(key, value);
+  if (key > this.root_.key) {
+    node.left = this.root_;
+    node.right = this.root_.right;
+    this.root_.right = null;
+  } else {
+    node.right = this.root_;
+    node.left = this.root_.left;
+    this.root_.left = null;
+  }
+  this.root_ = node;
+};
+
+
+/**
+ * Removes a node with the specified key from the tree if the tree
+ * contains a node with this key. The removed node is returned. If the
+ * key is not found, an exception is thrown.
+ *
+ * @param {number} key Key to find and remove from the tree.
+ * @return {SplayTree.Node} The removed node.
+ */
+SplayTree.prototype.remove = function(key) {
+  if (this.isEmpty()) {
+    throw Error('Key not found: ' + key);
+  }
+  this.splay_(key);
+  if (this.root_.key != key) {
+    throw Error('Key not found: ' + key);
+  }
+  var removed = this.root_;
+  if (!this.root_.left) {
+    this.root_ = this.root_.right;
+  } else {
+    var right = this.root_.right;
+    this.root_ = this.root_.left;
+    // Splay to make sure that the new root has an empty right child.
+    this.splay_(key);
+    // Insert the original right child as the right child of the new
+    // root.
+    this.root_.right = right;
+  }
+  return removed;
+};
+
+
+/**
+ * Returns the node having the specified key or null if the tree doesn't contain
+ * a node with the specified key.
+ *
+ * @param {number} key Key to find in the tree.
+ * @return {SplayTree.Node} Node having the specified key.
+ */
+SplayTree.prototype.find = function(key) {
+  if (this.isEmpty()) {
+    return null;
+  }
+  this.splay_(key);
+  return this.root_.key == key ? this.root_ : null;
+};
+
+
+/**
+ * @return {SplayTree.Node} Node having the maximum key value.
+ */
+SplayTree.prototype.findMax = function(opt_startNode) {
+  if (this.isEmpty()) {
+    return null;
+  }
+  var current = opt_startNode || this.root_;
+  while (current.right) {
+    current = current.right;
+  }
+  return current;
+};
+
+
+/**
+ * @return {SplayTree.Node} Node having the maximum key value that
+ *     is less than the specified key value.
+ */
+SplayTree.prototype.findGreatestLessThan = function(key) {
+  if (this.isEmpty()) {
+    return null;
+  }
+  // Splay on the key to move the node with the given key or the last
+  // node on the search path to the top of the tree.
+  this.splay_(key);
+  // Now the result is either the root node or the greatest node in
+  // the left subtree.
+  if (this.root_.key < key) {
+    return this.root_;
+  } else if (this.root_.left) {
+    return this.findMax(this.root_.left);
+  } else {
+    return null;
+  }
+};
+
+
+/**
+ * @return {Array<*>} An array containing all the keys of tree's nodes.
+ */
+SplayTree.prototype.exportKeys = function() {
+  var result = [];
+  if (!this.isEmpty()) {
+    this.root_.traverse_(function(node) { result.push(node.key); });
+  }
+  return result;
+};
+
+
+/**
+ * Perform the splay operation for the given key. Moves the node with
+ * the given key to the top of the tree.  If no node has the given
+ * key, the last node on the search path is moved to the top of the
+ * tree. This is the simplified top-down splaying algorithm from:
+ * "Self-adjusting Binary Search Trees" by Sleator and Tarjan
+ *
+ * @param {number} key Key to splay the tree on.
+ * @private
+ */
+SplayTree.prototype.splay_ = function(key) {
+  if (this.isEmpty()) {
+    return;
+  }
+  // Create a dummy node.  The use of the dummy node is a bit
+  // counter-intuitive: The right child of the dummy node will hold
+  // the L tree of the algorithm.  The left child of the dummy node
+  // will hold the R tree of the algorithm.  Using a dummy node, left
+  // and right will always be nodes and we avoid special cases.
+  var dummy, left, right;
+  dummy = left = right = new SplayTree.Node(null, null);
+  var current = this.root_;
+  while (true) {
+    if (key < current.key) {
+      if (!current.left) {
+        break;
+      }
+      if (key < current.left.key) {
+        // Rotate right.
+        var tmp = current.left;
+        current.left = tmp.right;
+        tmp.right = current;
+        current = tmp;
+        if (!current.left) {
+          break;
+        }
+      }
+      // Link right.
+      right.left = current;
+      right = current;
+      current = current.left;
+    } else if (key > current.key) {
+      if (!current.right) {
+        break;
+      }
+      if (key > current.right.key) {
+        // Rotate left.
+        var tmp = current.right;
+        current.right = tmp.left;
+        tmp.left = current;
+        current = tmp;
+        if (!current.right) {
+          break;
+        }
+      }
+      // Link left.
+      left.right = current;
+      left = current;
+      current = current.right;
+    } else {
+      break;
+    }
+  }
+  // Assemble.
+  left.right = current.left;
+  right.left = current.right;
+  current.left = dummy.right;
+  current.right = dummy.left;
+  this.root_ = current;
+};
+
+
+/**
+ * Constructs a Splay tree node.
+ *
+ * @param {number} key Key.
+ * @param {*} value Value.
+ */
+SplayTree.Node = function(key, value) {
+  this.key = key;
+  this.value = value;
+};
+
+
+/**
+ * @type {SplayTree.Node}
+ */
+SplayTree.Node.prototype.left = null;
+
+
+/**
+ * @type {SplayTree.Node}
+ */
+SplayTree.Node.prototype.right = null;
+
+
+/**
+ * Performs an ordered traversal of the subtree starting at
+ * this SplayTree.Node.
+ *
+ * @param {function(SplayTree.Node)} f Visitor function.
+ * @private
+ */
+SplayTree.Node.prototype.traverse_ = function(f) {
+  var current = this;
+  while (current) {
+    var left = current.left;
+    if (left) left.traverse_(f);
+    f(current);
+    current = current.right;
+  }
+};
diff --git a/suite/pts/deviceTests/browserbench/src/com/android/pts/browser/BrowserBenchTest.java b/suite/pts/deviceTests/browserbench/src/com/android/pts/browser/BrowserBenchTest.java
new file mode 100644
index 0000000..07f7763
--- /dev/null
+++ b/suite/pts/deviceTests/browserbench/src/com/android/pts/browser/BrowserBenchTest.java
@@ -0,0 +1,173 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.browser;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.cts.util.TimeoutReq;
+import android.cts.util.WatchDog;
+import android.net.Uri;
+import android.provider.Browser;
+import android.util.Log;
+import android.webkit.cts.CtsTestServer;
+
+import com.android.pts.util.PtsAndroidTestCase;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.pts.util.Stat;
+
+import java.net.URLDecoder;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Semaphore;
+import java.util.concurrent.TimeUnit;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpResponse;
+import org.apache.http.RequestLine;
+/**
+ * Browser benchmarking.
+ * It launches an activity with URL and wait for POST from the client.
+ */
+public class BrowserBenchTest extends PtsAndroidTestCase {
+    private static final String TAG = "BrowserBench";
+    private static final boolean DEBUG = false;
+    private static final String OCTANE_START_FILE = "octane/index.html";
+    private static final String ROBOHORNET_START_FILE = "robohornet/robohornet.html";
+    private static final String HOST_COMPLETION_BROADCAST = "com.android.pts.browser.completion";
+    // time-out for watch-dog. POST should happen within this time.
+    private static long BROWSER_POST_TIMEOUT_IN_MS = 10 * 60 * 1000L;
+    // watch-dog will time-out first. So make it long enough.
+    private static long BROWSER_COMPLETION_TIMEOUT_IN_MS = 60 * 60 * 1000L;
+    private static final String HTTP_USER_AGENT = "User-Agent";
+    private CtsTestServer mWebServer;
+    // used for final score
+    private ResultType mTypeNonFinal = ResultType.NEUTRAL;
+    private ResultUnit mUnitNonFinal = ResultUnit.NONE;
+    // used for all other scores
+    private ResultType mTypeFinal = ResultType.NEUTRAL;
+    private ResultUnit mUnitFinal = ResultUnit.SCORE;
+    private WatchDog mWatchDog;
+    private CountDownLatch mLatch;
+    // can be changed by each test before starting
+    private volatile int mNumberRepeat;
+    /** tells how many tests have run up to now */
+    private volatile int mRunIndex;
+    /** stores results for each runs. last entry will be the final score. */
+    private LinkedHashMap<String, double[]> mResultsMap;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mWebServer = new CtsTestServer(getContext()) {
+            @Override
+            protected HttpResponse onPost(HttpRequest request) throws Exception {
+                // post uri will look like "pts_report.html?final=1&score=10.1&message=hello"
+                RequestLine requestLine = request.getRequestLine();
+                String uriString = URLDecoder.decode(requestLine.getUri(), "UTF-8");
+                if (DEBUG) {
+                    Log.i(TAG, "uri:" + uriString);
+                }
+                String resultRe =
+                        ".*pts_report.html\\?final=([\\d])&score=([\\d]+\\.?[\\d]*)&message=([\\w][\\w ]*)";
+                Pattern resultPattern = Pattern.compile(resultRe);
+                Matcher matchResult = resultPattern.matcher(uriString);
+                if (matchResult.find()) {
+                    int isFinal = Integer.parseInt(matchResult.group(1));
+                    double score = Double.parseDouble(matchResult.group(2));
+                    String message = matchResult.group(3);
+                    Log.i(TAG, message + ":" + score);
+                    if (!mResultsMap.containsKey(message)) {
+                        mResultsMap.put(message, new double[mNumberRepeat]);
+                    }
+                    double[] scores = mResultsMap.get(message);
+                    scores[mRunIndex] = score;
+                    if (isFinal == 1) {
+                        String userAgent = request.getFirstHeader(HTTP_USER_AGENT).getValue();
+                        getReportLog().printValue(HTTP_USER_AGENT + "=" + userAgent, 0,
+                                ResultType.NEUTRAL, ResultUnit.NONE);
+                        mLatch.countDown();
+                    }
+                    mWatchDog.reset();
+                }
+                return null; // default response is OK as it will be ignored by client anyway.
+            }
+        };
+        mResultsMap = new LinkedHashMap<String, double[]>();
+        mWatchDog = new WatchDog(BROWSER_POST_TIMEOUT_IN_MS);
+        mWatchDog.start();
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        mWatchDog.stop();
+        mWebServer.shutdown();
+        mWebServer = null;
+        mResultsMap = null;
+        super.tearDown();
+    }
+
+    @TimeoutReq(minutes = 60)
+    public void testOctane() throws InterruptedException {
+        String url = mWebServer.getAssetUrl(OCTANE_START_FILE) + "?auto=1";
+        final int kRepeat = 5;
+        doTest(url, ResultType.LOWER_BETTER, ResultUnit.MS,
+                ResultType.HIGHER_BETTER, ResultUnit.SCORE, kRepeat);
+    }
+
+    private void doTest(String url, ResultType typeNonFinal, ResultUnit unitNonFinal,
+            ResultType typeFinal, ResultUnit unitFinal, int numberRepeat)
+                    throws InterruptedException {
+        mTypeNonFinal = typeNonFinal;
+        mUnitNonFinal = unitNonFinal;
+        mTypeFinal = typeFinal;
+        mUnitFinal = unitFinal;
+        mNumberRepeat = numberRepeat;
+        Uri uri = Uri.parse(url);
+        for (mRunIndex = 0; mRunIndex < numberRepeat; mRunIndex++) {
+            Log.i(TAG, mRunIndex + "-th round");
+            mLatch = new CountDownLatch(1);
+            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            // force using only one window or tab
+            intent.putExtra(Browser.EXTRA_APPLICATION_ID, getContext().getPackageName());
+            getContext().startActivity(intent);
+            boolean ok = mLatch.await(BROWSER_COMPLETION_TIMEOUT_IN_MS, TimeUnit.MILLISECONDS);
+            assertTrue("timed-out", ok);
+        }
+        // it is somewhat awkward to handle the last one specially with Map
+        int numberEntries = mResultsMap.size();
+        int numberToProcess = 1;
+        for (Map.Entry<String, double[]> entry : mResultsMap.entrySet()) {
+            String message = entry.getKey();
+            double[] scores = entry.getValue();
+            if (numberToProcess == numberEntries) { // final score
+                // store the whole results first
+                getReportLog().printArray(message, scores, mTypeFinal, mUnitFinal);
+                getReportLog().printSummary(message, Stat.getAverage(scores), mTypeFinal,
+                        mUnitFinal);
+            } else { // interim results
+                getReportLog().printArray(message, scores, mTypeNonFinal, mUnitNonFinal);
+            }
+            numberToProcess++;
+        }
+    }
+}
diff --git a/suite/pts/deviceTests/dram/Android.mk b/suite/pts/deviceTests/dram/Android.mk
new file mode 100644
index 0000000..47e5b52
--- /dev/null
+++ b/suite/pts/deviceTests/dram/Android.mk
@@ -0,0 +1,35 @@
+# 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)
+include $(CLEAR_VARS)
+
+# don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+
+LOCAL_JNI_SHARED_LIBRARIES := libptsdram_jni
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := PtsDeviceDram
+
+LOCAL_SDK_VERSION := 16
+
+include $(BUILD_CTS_PACKAGE)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/suite/pts/deviceTests/dram/AndroidManifest.xml b/suite/pts/deviceTests/dram/AndroidManifest.xml
new file mode 100644
index 0000000..b3ee2f0
--- /dev/null
+++ b/suite/pts/deviceTests/dram/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.pts.dram">
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+    </application>
+    <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
+            android:targetPackage="com.android.pts.dram"
+            android:label="DRAM bandwidth measurement" />
+</manifest>
diff --git a/suite/pts/deviceTests/dram/jni/Android.mk b/suite/pts/deviceTests/dram/jni/Android.mk
new file mode 100644
index 0000000..a3dc698
--- /dev/null
+++ b/suite/pts/deviceTests/dram/jni/Android.mk
@@ -0,0 +1,31 @@
+# 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)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE    := libptsdram_jni
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_SRC_FILES := MemoryNativeJni.cpp
+
+LOCAL_C_INCLUDES := $(JNI_H_INCLUDE)
+
+LOCAL_SHARED_LIBRARIES := libnativehelper
+
+LOCAL_SDK_VERSION := 14
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/suite/pts/deviceTests/dram/jni/MemoryNativeJni.cpp b/suite/pts/deviceTests/dram/jni/MemoryNativeJni.cpp
new file mode 100644
index 0000000..a54ab71
--- /dev/null
+++ b/suite/pts/deviceTests/dram/jni/MemoryNativeJni.cpp
@@ -0,0 +1,71 @@
+/*
+ * 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.
+ */
+
+#include <jni.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+
+double currentTimeMillis()
+{
+    struct timeval tv;
+    gettimeofday(&tv, (struct timezone *) NULL);
+    return tv.tv_sec * 1000.0 + tv.tv_usec / 1000.0;
+}
+
+extern "C" JNIEXPORT jdouble JNICALL Java_com_android_pts_dram_MemoryNative_runMemcpy(JNIEnv* env,
+        jclass clazz, jint bufferSize, jint repetition)
+{
+    char* src = new char[bufferSize];
+    char* dst = new char[bufferSize];
+    if ((src == NULL) || (dst == NULL)) {
+        delete[] src;
+        delete[] dst;
+        env->ThrowNew(env->FindClass("java/lang/OutOfMemoryError"), "No memory");
+        return -1;
+    }
+    memset(src, 0, bufferSize);
+    memset(dst, 0, bufferSize);
+    double start = currentTimeMillis();
+    for (int i = 0; i < repetition; i++) {
+        memcpy(dst, src, bufferSize);
+        src[bufferSize - 1] = i & 0xff;
+    }
+    double end = currentTimeMillis();
+    delete[] src;
+    delete[] dst;
+    return end - start;
+}
+
+extern "C" JNIEXPORT jdouble JNICALL Java_com_android_pts_dram_MemoryNative_runMemset(JNIEnv* env,
+        jclass clazz, jint bufferSize, jint repetition, jint c)
+{
+    char* dst = new char[bufferSize];
+    if (dst == NULL) {
+        delete[] dst;
+        env->ThrowNew(env->FindClass("java/lang/OutOfMemoryError"), "No memory");
+        return -1;
+    }
+    memset(dst, 0, bufferSize);
+    double start = currentTimeMillis();
+    for (int i = 0; i < repetition; i++) {
+        memset(dst, (c + i) & 0xff, bufferSize);
+    }
+    double end = currentTimeMillis();
+    delete[] dst;
+    return end - start;
+}
+
diff --git a/suite/pts/deviceTests/dram/src/com/android/pts/dram/BandwidthTest.java b/suite/pts/deviceTests/dram/src/com/android/pts/dram/BandwidthTest.java
new file mode 100644
index 0000000..62b0163
--- /dev/null
+++ b/suite/pts/deviceTests/dram/src/com/android/pts/dram/BandwidthTest.java
@@ -0,0 +1,223 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.dram;
+
+import android.content.Context;
+import android.graphics.Point;
+import android.util.Log;
+import android.view.WindowManager;
+
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.pts.util.PtsAndroidTestCase;
+import com.android.pts.util.ReportLog;
+import com.android.pts.util.Stat;
+
+/**
+ * check how many screens the memcpy function can copy in a sec.
+ * Note that this does not represent the total memory bandwidth available in the system
+ * as typically CPU cannot use the whole bandwidth.
+ * Smaller buffers can fit into L1 or L2 cache, which can show big boost.
+ */
+public class BandwidthTest extends PtsAndroidTestCase {
+    private static final String TAG = "BandwidthTest";
+    private static final int MEMCPY_REPETITION = 10;
+    private static final int MEMSET_REPETITION = 30;
+    private static final int REPEAT_IN_EACH_CALL = 100;
+    private static final int KB = 1024;
+    private static final int MB = 1024 * 1024;
+    private static final int MEMSET_CHAR = 0xa5;
+    // reject data outside +/- this value * median
+    private static final double OUTLIER_THRESHOLD = 0.1;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        // warm-up
+        MemoryNative.runMemcpy(2 * MB, 100);
+    }
+
+    public void testMemcpyK004() {
+        doRunMemcpy(4 * KB);
+    }
+
+    public void testMemcpyK008() {
+        doRunMemcpy(8 * KB);
+    }
+
+    public void testMemcpyK016() {
+        doRunMemcpy(16 * KB);
+    }
+
+    public void testMemcpyK032() {
+        doRunMemcpy(32 * KB);
+    }
+
+    public void testMemcpyK064() {
+        doRunMemcpy(64 * KB);
+    }
+
+    public void testMemcpyK128() {
+        doRunMemcpy(128 * KB);
+    }
+
+    public void testMemcpyK256() {
+        doRunMemcpy(256 * KB);
+    }
+
+    public void testMemcpyK512() {
+        doRunMemcpy(512 * KB);
+    }
+
+    public void testMemcpyM001() {
+        doRunMemcpy(1 * MB);
+    }
+
+    public void testMemcpyM002() {
+        doRunMemcpy(2 * MB);
+    }
+
+    public void testMemcpyM004() {
+        doRunMemcpy(4 * MB);
+    }
+
+    public void testMemcpyM008() {
+        doRunMemcpy(8 * MB);
+    }
+
+    public void testMemcpyM016() {
+        doRunMemcpy(16 * MB);
+    }
+
+    public void testMemsetK004() {
+        doRunMemset(4 * KB);
+    }
+
+    public void testMemsetK008() {
+        doRunMemset(8 * KB);
+    }
+
+    public void testMemsetK016() {
+        doRunMemset(16 * KB);
+    }
+
+    public void testMemsetK032() {
+        doRunMemset(32 * KB);
+    }
+
+    public void testMemsetK064() {
+        doRunMemset(64 * KB);
+    }
+
+    public void testMemsetK128() {
+        doRunMemset(128 * KB);
+    }
+
+    public void testMemsetK256() {
+        doRunMemset(256 * KB);
+    }
+
+    public void testMemsetK512() {
+        doRunMemset(512 * KB);
+    }
+
+    public void testMemsetM001() {
+        doRunMemset(1 * MB);
+    }
+
+    public void testMemsetM002() {
+        doRunMemset(2 * MB);
+    }
+
+    public void testMemsetM004() {
+        doRunMemset(4 * MB);
+    }
+
+    public void testMemsetM008() {
+        doRunMemset(8 * MB);
+    }
+
+    public void testMemsetM016() {
+        doRunMemset(16 * MB);
+    }
+
+    private void doRunMemcpy(int bufferSize) {
+        double[] result = new double[MEMCPY_REPETITION];
+        int repeatInEachCall = REPEAT_IN_EACH_CALL;
+        if (bufferSize < (1 * MB)) {
+            // too small buffer size finishes too early to give accurate result.
+            repeatInEachCall *= (1 * MB / bufferSize);
+        }
+        for (int i = 0; i < MEMCPY_REPETITION; i++) {
+            result[i] = MemoryNative.runMemcpy(bufferSize, repeatInEachCall);
+        }
+        getReportLog().printArray("memcpy time", result, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+        double[] mbps = ReportLog.calcRatePerSecArray(
+                (double)bufferSize * repeatInEachCall / 1024.0 / 1024.0, result);
+        getReportLog().printArray("memcpy throughput", mbps, ResultType.HIGHER_BETTER,
+                ResultUnit.MBPS);
+        Stat.StatResult stat = Stat.getStatWithOutlierRejection(mbps, OUTLIER_THRESHOLD);
+        if (stat.mDataCount != result.length) {
+            Log.w(TAG, "rejecting " + (result.length - stat.mDataCount) + " outliers");
+        }
+        WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
+        Point size = new Point();
+        wm.getDefaultDisplay().getSize(size);
+        Log.i(TAG, " x " + size.x + " y " + size.y);
+        double pixels = size.x * size.y;
+        // now this represents how many times the whole screen can be copied in a sec.
+        double screensPerSecAverage = stat.mAverage / pixels * 1024.0 * 1024.0 / 4.0;
+        getReportLog().printValue("memcpy in fps", screensPerSecAverage,
+                ResultType.HIGHER_BETTER, ResultUnit.FPS);
+        getReportLog().printSummary("memcpy throughput", stat.mAverage, ResultType.HIGHER_BETTER,
+                ResultUnit.MBPS);
+    }
+
+    private void doRunMemset(int bufferSize) {
+        double[] result = new double[MEMSET_REPETITION];
+        int repeatInEachCall = REPEAT_IN_EACH_CALL;
+        if (bufferSize < (1 * MB)) {
+            // too small buffer size finishes too early to give accurate result.
+            repeatInEachCall *= (1 * MB / bufferSize);
+        }
+        for (int i = 0; i < MEMSET_REPETITION; i++) {
+            result[i] = MemoryNative.runMemset(bufferSize, repeatInEachCall, MEMSET_CHAR);
+        }
+        getReportLog().printArray("memset time", result, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+        double[] mbps = ReportLog.calcRatePerSecArray(
+                (double)bufferSize * repeatInEachCall / 1024.0 / 1024.0, result);
+        getReportLog().printArray("memset throughput", mbps, ResultType.HIGHER_BETTER,
+                ResultUnit.MBPS);
+        Stat.StatResult stat = Stat.getStatWithOutlierRejection(mbps, OUTLIER_THRESHOLD);
+        if (stat.mDataCount != result.length) {
+            Log.w(TAG, "rejecting " + (result.length - stat.mDataCount) + " outliers");
+        }
+        WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
+        Point size = new Point();
+        wm.getDefaultDisplay().getSize(size);
+        Log.i(TAG, " x " + size.x + " y " + size.y);
+        double pixels = size.x * size.y;
+        // now this represents how many times the whole screen can be copied in a sec.
+        double screensPerSecAverage = stat.mAverage / pixels * 1024.0 * 1024.0 / 4.0;
+        getReportLog().printValue("memset in fps", screensPerSecAverage,
+                ResultType.HIGHER_BETTER, ResultUnit.FPS);
+        getReportLog().printSummary("memset throughput", stat.mAverage, ResultType.HIGHER_BETTER,
+                ResultUnit.MBPS);
+    }
+}
diff --git a/suite/pts/deviceTests/dram/src/com/android/pts/dram/MemoryNative.java b/suite/pts/deviceTests/dram/src/com/android/pts/dram/MemoryNative.java
new file mode 100644
index 0000000..71b60a0
--- /dev/null
+++ b/suite/pts/deviceTests/dram/src/com/android/pts/dram/MemoryNative.java
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.dram;
+
+public class MemoryNative {
+    static {
+        System.loadLibrary("ptsdram_jni");
+    }
+    /**
+     * run memcpy for given number of repetition from a source to a destination buffers
+     * with each having the size of bufferSize.
+     * @param bufferSize
+     * @param repeatition
+     * @return time spent in copying in ms.
+     */
+    public static native double runMemcpy(int bufferSize, int repetition);
+
+    /**
+     * run memset for given number of repetition from a source to a destination buffers
+     * with each having the size of bufferSize.
+     * @param bufferSize
+     * @param repetition
+     * @param c char to set. Only LSBs will be used to get char value.
+     * @return time spent in memset in ms.
+     */
+    public static native double runMemset(int bufferSize, int repetition, int c);
+}
diff --git a/suite/pts/deviceTests/filesystemperf/Android.mk b/suite/pts/deviceTests/filesystemperf/Android.mk
new file mode 100644
index 0000000..ca7996c
--- /dev/null
+++ b/suite/pts/deviceTests/filesystemperf/Android.mk
@@ -0,0 +1,32 @@
+# 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)
+include $(CLEAR_VARS)
+
+# don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := PtsDeviceFilePerf
+
+LOCAL_SDK_VERSION := 16
+
+include $(BUILD_CTS_PACKAGE)
+
diff --git a/suite/pts/deviceTests/filesystemperf/AndroidManifest.xml b/suite/pts/deviceTests/filesystemperf/AndroidManifest.xml
new file mode 100644
index 0000000..8cdeb45
--- /dev/null
+++ b/suite/pts/deviceTests/filesystemperf/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.pts.filesystemperf">
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+    </application>
+    <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
+            android:targetPackage="com.android.pts.filesystemperf"
+            android:label="UI Latency measurement" />
+</manifest>
diff --git a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/AlmostFullTest.java b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/AlmostFullTest.java
new file mode 100644
index 0000000..1f65e7d
--- /dev/null
+++ b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/AlmostFullTest.java
@@ -0,0 +1,139 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.filesystemperf;
+
+import android.cts.util.TimeoutReq;
+import android.util.Log;
+
+import com.android.pts.util.PtsAndroidTestCase;
+import com.android.pts.util.SystemUtil;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+
+public class AlmostFullTest extends PtsAndroidTestCase {
+
+    private static final String DIR_INITIAL_FILL = "INITIAL_FILL";
+    private static final String DIR_SEQ_UPDATE = "SEQ_UPDATE";
+    private static final String DIR_RANDOM_WR = "RANDOM_WR";
+    private static final String DIR_RANDOM_RD = "RANDOM_RD";
+    private static final String TAG = "AlmostFullTest";
+
+    private static final long FREE_SPACE_FINAL = 1000L * 1024 * 1024L;
+
+    // test runner creates multiple instances at the begging.
+    // use that to fill disk only once.
+    // set as final to initialize it only once
+    private static final AtomicInteger mRefCounter = new AtomicInteger(0);
+    private static final AtomicBoolean mDiskFilled = new AtomicBoolean(false);
+
+    public AlmostFullTest() {
+        int currentCounter = mRefCounter.incrementAndGet();
+        Log.i(TAG, "++currentCounter: " + currentCounter);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        if (mDiskFilled.compareAndSet(false, true)) {
+            Log.i(TAG, "Filling disk");
+            // initial fill done in two stage as disk can be filled by other
+            // components
+            long freeDisk = SystemUtil.getFreeDiskSize(getContext());
+            long diskToFill = freeDisk - FREE_SPACE_FINAL;
+            if (diskToFill >= 0) {
+                Log.i(TAG, "free disk " + freeDisk + ", to fill " + diskToFill);
+            } else {
+                Log.i(TAG, "free disk " + freeDisk + " too small, needs " + FREE_SPACE_FINAL);
+                return;
+            }
+            final long MAX_FILE_SIZE_TO_FILL = 1024L * 1024L * 1024L;
+            long filled = 0;
+            while (filled < diskToFill) {
+                long toFill = diskToFill - filled;
+                if (toFill > MAX_FILE_SIZE_TO_FILL) {
+                    toFill = MAX_FILE_SIZE_TO_FILL;
+                }
+                Log.i(TAG, "Generating file " + toFill);
+                FileUtil.createNewFilledFile(getContext(),
+                        DIR_INITIAL_FILL, toFill);
+                filled += toFill;
+            }
+        }
+        Log.i(TAG, "free disk " + SystemUtil.getFreeDiskSize(getContext()));
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        Log.i(TAG, "tearDown free disk " + SystemUtil.getFreeDiskSize(getContext()));
+        int currentCounter = mRefCounter.decrementAndGet();
+        Log.i(TAG, "--currentCounter: " + currentCounter);
+        if (currentCounter == 0) {
+            FileUtil.removeFileOrDir(getContext(), DIR_INITIAL_FILL);
+        }
+        FileUtil.removeFileOrDir(getContext(), DIR_SEQ_UPDATE);
+        FileUtil.removeFileOrDir(getContext(), DIR_RANDOM_WR);
+        FileUtil.removeFileOrDir(getContext(), DIR_RANDOM_RD);
+        Log.i(TAG, "tearDown free disk " + SystemUtil.getFreeDiskSize(getContext()));
+        super.tearDown();
+    }
+
+    @TimeoutReq(minutes = 30)
+    public void testSequentialUpdate() throws Exception {
+        // now about freeSpaceToLeave should be left
+        // and try updating exceeding the free space size
+        final long FILE_SIZE = 400L * 1024L * 1024L;
+        long freeDisk = SystemUtil.getFreeDiskSize(getContext());
+        Log.i(TAG, "Now free space is " + freeDisk);
+        if (freeDisk < FILE_SIZE) {
+            Log.w(TAG, "too little space: " + freeDisk);
+            return;
+        }
+        final int BUFFER_SIZE = 10 * 1024 * 1024;
+        final int NUMBER_REPETITION = 10;
+        FileUtil.doSequentialUpdateTest(getContext(), DIR_SEQ_UPDATE, getReportLog(), FILE_SIZE,
+                BUFFER_SIZE, NUMBER_REPETITION);
+    }
+
+    // TODO: file size too small and caching will give wrong better result.
+    // needs to flush cache by reading big files per each read.
+    @TimeoutReq(minutes = 60)
+    public void testRandomRead() throws Exception {
+        final int BUFFER_SIZE = 4 * 1024;
+        final long fileSize = 400L * 1024L * 1024L;
+        long freeDisk = SystemUtil.getFreeDiskSize(getContext());
+        if (freeDisk < fileSize) {
+            Log.w(TAG, "too little space: " + freeDisk);
+            return;
+        }
+        FileUtil.doRandomReadTest(getContext(), DIR_RANDOM_RD, getReportLog(), fileSize,
+                BUFFER_SIZE);
+    }
+
+    @TimeoutReq(minutes = 60)
+    public void testRandomUpdate() throws Exception {
+        final int BUFFER_SIZE = 4 * 1024;
+        final long fileSize = 256L * 1024L * 1024L;
+        long freeDisk = SystemUtil.getFreeDiskSize(getContext());
+        if (freeDisk < fileSize) {
+            Log.w(TAG, "too little space: " + freeDisk);
+            return;
+        }
+        FileUtil.doRandomWriteTest(getContext(), DIR_RANDOM_WR, getReportLog(), fileSize,
+                BUFFER_SIZE);
+    }
+}
diff --git a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/FileUtil.java b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/FileUtil.java
new file mode 100644
index 0000000..2119ee5
--- /dev/null
+++ b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/FileUtil.java
@@ -0,0 +1,404 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.filesystemperf;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.RandomAccessFile;
+import java.util.Random;
+
+import com.android.pts.util.MeasureRun;
+import com.android.pts.util.MeasureTime;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.pts.util.ReportLog;
+import com.android.pts.util.Stat;
+import com.android.pts.util.SystemUtil;
+
+import android.content.Context;
+import android.util.Log;
+
+public class FileUtil {
+    private static final String TAG = "FileUtil";
+    private static final Random mRandom = new Random(0);
+    private static long mFileId = 0;
+    /**
+     * create array with different data per each call
+     *
+     * @param length
+     * @param randomSeed
+     * @return
+     */
+    public static byte[] generateRandomData(int length) {
+        byte[] buffer = new byte[length];
+        int val = mRandom.nextInt();
+        for (int i = 0; i < length / 4; i++) {
+            // in little-endian
+            buffer[i * 4] = (byte)(val & 0x000000ff);
+            buffer[i * 4 + 1] = (byte)((val & 0x0000ff00) >> 8);
+            buffer[i * 4 + 2] = (byte)((val & 0x00ff0000) >> 16);
+            buffer[i * 4 + 3] = (byte)((val & 0xff000000) >> 24);
+            val++;
+        }
+        for (int i = (length / 4) * 4; i < length; i++) {
+            buffer[i] = 0;
+        }
+        return buffer;
+    }
+
+    /**
+     * create a new file under the given dirName.
+     * Existing files will not be affected.
+     * @param context
+     * @param dirName
+     * @return
+     */
+    public static File createNewFile(Context context, String dirName) {
+        File topDir = new File(context.getFilesDir(), dirName);
+        topDir.mkdir();
+        String[] list = topDir.list();
+
+        String newFileName;
+        while (true) {
+            newFileName = Long.toString(mFileId);
+            boolean fileExist = false;
+            for (String child : list) {
+                if (child.equals(newFileName)) {
+                    fileExist = true;
+                    break;
+                }
+            }
+            if (!fileExist) {
+                break;
+            }
+            mFileId++;
+        }
+        mFileId++;
+        //Log.i(TAG, "filename" + Long.toString(mFileId));
+        return new File(topDir, newFileName);
+    }
+
+    /**
+     * create multiple new files
+     * @param context
+     * @param dirName
+     * @param count number of files to create
+     * @return
+     */
+    public static File[] createNewFiles(Context context, String dirName, int count) {
+        File[] files = new File[count];
+        for (int i = 0; i < count; i++) {
+            files[i] = createNewFile(context, dirName);
+        }
+        return files;
+    }
+
+    /**
+     * write file with given byte array
+     * @param file
+     * @param data
+     * @param append will append if set true. Otherwise, write from beginning
+     * @throws IOException
+     */
+    public static void writeFile(File file, byte[] data, boolean append) throws IOException {
+        final RandomAccessFile randomFile = new RandomAccessFile(file, "rwd"); // force O_SYNC
+        if (append) {
+            randomFile.seek(randomFile.length());
+        } else {
+            randomFile.seek(0L);
+        }
+        randomFile.write(data);
+        randomFile.close();
+    }
+
+    /**
+     * create a new file with given length.
+     * @param context
+     * @param dirName
+     * @param length
+     * @return
+     * @throws IOException
+     */
+    public static File createNewFilledFile(Context context, String dirName, long length)
+            throws IOException {
+        final int BUFFER_SIZE = 10 * 1024 * 1024;
+        File file = createNewFile(context, dirName);
+        FileOutputStream out = new FileOutputStream(file);
+        byte[] data = generateRandomData(BUFFER_SIZE);
+        long written = 0;
+        while (written < length) {
+            out.write(data);
+            written += BUFFER_SIZE;
+        }
+        out.flush();
+        out.close();
+        return file;
+    }
+
+    /**
+     * remove given file or directory under the current app's files dir.
+     * @param context
+     * @param name
+     */
+    public static void removeFileOrDir(Context context, String name) {
+        File entry = new File(context.getFilesDir(), name);
+        if (entry.exists()) {
+            removeEntry(entry);
+        }
+    }
+
+    private static void removeEntry(File entry) {
+        if (entry.isDirectory()) {
+            String[] children = entry.list();
+            for (String child : children) {
+                removeEntry(new File(entry, child));
+            }
+        }
+        Log.i(TAG, "delete file " + entry.getAbsolutePath());
+        entry.delete();
+    }
+
+    /**
+     * measure time taken for each IO run with amount R/W
+     * @param count
+     * @param run
+     * @param readAmount returns amount of read in bytes for each interval.
+     *        Value will not be written if /proc/self/io does not exist.
+     * @param writeAmount returns amount of write in bytes for each interval.
+     * @return time per each interval
+     * @throws IOException
+     */
+    public static double[] measureIO(int count, double[] readAmount, double[] writeAmount,
+            MeasureRun run)  throws Exception {
+        double[] result = new double[count];
+        File procIo = new File("/proc/self/io");
+        boolean measureIo = procIo.exists() && procIo.canRead();
+        long prev = System.currentTimeMillis();
+        RWAmount prevAmount = new RWAmount();
+        if (measureIo) {
+            prevAmount = getRWAmount(procIo);
+        }
+        for (int i = 0; i < count; i++) {
+            run.run(i);
+            long current =  System.currentTimeMillis();
+            result[i] = current - prev;
+            prev = current;
+            if (measureIo) {
+                RWAmount currentAmount = getRWAmount(procIo);
+                readAmount[i] = currentAmount.mRd - prevAmount.mRd;
+                writeAmount[i] = currentAmount.mWr - prevAmount.mWr;
+                prevAmount = currentAmount;
+            }
+        }
+        return result;
+    }
+
+    private static class RWAmount {
+        public double mRd = 0.0;
+        public double mWr = 0.0;
+    };
+
+    private static RWAmount getRWAmount(File file) throws IOException {
+        RWAmount amount = new RWAmount();
+
+        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
+        String line;
+        while((line = br.readLine())!= null) {
+            if (line.startsWith("read_bytes")) {
+                amount.mRd = Double.parseDouble(line.split(" ")[1]);
+            } else if (line.startsWith("write_bytes")) {
+                amount.mWr = Double.parseDouble(line.split(" ")[1]);
+            }
+        }
+        br.close();
+        return amount;
+    }
+
+    /**
+     * get file size exceeding total memory size ( 2x total memory).
+     * The size is rounded in bufferSize. And the size will be bigger than 400MB.
+     * @param context
+     * @param bufferSize
+     * @return file size or 0 if there is not enough space.
+     */
+    public static long getFileSizeExceedingMemory(Context context, int bufferSize) {
+        long freeDisk = SystemUtil.getFreeDiskSize(context);
+        long memSize = SystemUtil.getTotalMemory(context);
+        long diskSizeTarget = (2 * memSize / bufferSize) * bufferSize;
+        final long minimumDiskSize = (512L * 1024L * 1024L / bufferSize) * bufferSize;
+        if ( diskSizeTarget < minimumDiskSize ) {
+            diskSizeTarget = minimumDiskSize;
+        }
+        if (diskSizeTarget > freeDisk) {
+            Log.i(TAG, "Free disk size " + freeDisk + " too small");
+            return 0;
+        }
+        return diskSizeTarget;
+    }
+
+    /**
+     *
+     * @param context
+     * @param dirName
+     * @param report
+     * @param fileSize
+     * @param bufferSize should be power of two
+     * @throws IOException
+     */
+    public static void doRandomReadTest(Context context, String dirName, ReportLog report,
+            long fileSize, int bufferSize) throws Exception {
+        File file = FileUtil.createNewFilledFile(context,
+                dirName, fileSize);
+
+        final byte[] data = FileUtil.generateRandomData(bufferSize);
+        Random random = new Random(0);
+        final int totalReadCount = (int)(fileSize / bufferSize);
+        final int[] readOffsets = new int[totalReadCount];
+        for (int i = 0; i < totalReadCount; i++) {
+            // align in buffer size
+            readOffsets[i] = (int)(random.nextFloat() * (fileSize - bufferSize)) &
+                    ~(bufferSize - 1);
+        }
+        final int runsInOneGo = 16;
+        final int readsInOneMeasure = totalReadCount / runsInOneGo;
+
+        final RandomAccessFile randomFile = new RandomAccessFile(file, "rw"); // do not need O_SYNC
+        double[] rdAmount = new double[runsInOneGo];
+        double[] wrAmount = new double[runsInOneGo];
+        double[] times = FileUtil.measureIO(runsInOneGo, rdAmount, wrAmount, new MeasureRun() {
+
+            @Override
+            public void run(int i) throws IOException {
+                Log.i(TAG, "starting " + i + " -th round");
+                int start = i * readsInOneMeasure;
+                int end = (i + 1) * readsInOneMeasure;
+                for (int j = start; j < end; j++) {
+                    randomFile.seek(readOffsets[j]);
+                    randomFile.read(data);
+                }
+            }
+        });
+        randomFile.close();
+        double[] mbps = ReportLog.calcRatePerSecArray((double)fileSize / runsInOneGo / 1024 / 1024,
+                times);
+        report.printArray("read throughput",
+                mbps, ResultType.HIGHER_BETTER, ResultUnit.MBPS);
+        // This is just the amount of IO returned from kernel. So this is performance neutral.
+        report.printArray("read amount", rdAmount, ResultType.NEUTRAL, ResultUnit.BYTE);
+        Stat.StatResult stat = Stat.getStat(mbps);
+
+        report.printSummary("read throughput", stat.mAverage, ResultType.HIGHER_BETTER,
+                ResultUnit.MBPS);
+    }
+
+    /**
+     *
+     * @param context
+     * @param dirName
+     * @param report
+     * @param fileSize
+     * @param bufferSize should be power of two
+     * @throws IOException
+     */
+    public static void doRandomWriteTest(Context context, String dirName, ReportLog report,
+            long fileSize, int bufferSize) throws Exception {
+        File file = FileUtil.createNewFilledFile(context,
+                dirName, fileSize);
+        final byte[] data = FileUtil.generateRandomData(bufferSize);
+        Random random = new Random(0);
+        final int totalWriteCount = (int)(fileSize / bufferSize);
+        final int[] writeOffsets = new int[totalWriteCount];
+        for (int i = 0; i < totalWriteCount; i++) {
+            writeOffsets[i] = (int)(random.nextFloat() * (fileSize - bufferSize)) &
+                    ~(bufferSize - 1);
+        }
+        final int runsInOneGo = 16;
+        final int writesInOneMeasure = totalWriteCount / runsInOneGo;
+
+        final RandomAccessFile randomFile = new RandomAccessFile(file, "rwd"); // force O_SYNC
+        double[] rdAmount = new double[runsInOneGo];
+        double[] wrAmount = new double[runsInOneGo];
+        double[] times = FileUtil.measureIO(runsInOneGo, rdAmount, wrAmount, new MeasureRun() {
+
+            @Override
+            public void run(int i) throws IOException {
+                Log.i(TAG, "starting " + i + " -th round");
+                int start = i * writesInOneMeasure;
+                int end = (i + 1) * writesInOneMeasure;
+                for (int j = start; j < end; j++) {
+                    randomFile.seek(writeOffsets[j]);
+                    randomFile.write(data);
+                }
+            }
+        });
+        randomFile.close();
+        double[] mbps = ReportLog.calcRatePerSecArray((double)fileSize / runsInOneGo / 1024 / 1024,
+                times);
+        report.printArray("write throughput",
+                mbps, ResultType.HIGHER_BETTER, ResultUnit.MBPS);
+        report.printArray("write amount", wrAmount, ResultType.NEUTRAL,
+                ResultUnit.BYTE);
+        Stat.StatResult stat = Stat.getStat(mbps);
+
+        report.printSummary("write throughput", stat.mAverage, ResultType.HIGHER_BETTER,
+                ResultUnit.MBPS);
+    }
+
+    /**
+     *
+     * @param context
+     * @param dirName
+     * @param report
+     * @param fileSize fileSize should be multiple of bufferSize.
+     * @param bufferSize
+     * @param numberRepetition
+     * @throws IOException
+     */
+    public static void doSequentialUpdateTest(Context context, String dirName, ReportLog report,
+            long fileSize, int bufferSize, int numberRepetition) throws Exception {
+        File file = FileUtil.createNewFilledFile(context,
+                dirName, fileSize);
+        final byte[] data = FileUtil.generateRandomData(bufferSize);
+        int numberRepeatInOneRun = (int)(fileSize / bufferSize);
+        double[] mbpsAll = new double[numberRepetition * numberRepeatInOneRun];
+        for (int i = 0; i < numberRepetition; i++) {
+            Log.i(TAG, "starting " + i + " -th round");
+            final RandomAccessFile randomFile = new RandomAccessFile(file, "rwd");  // force O_SYNC
+            randomFile.seek(0L);
+            double[] times = MeasureTime.measure(numberRepeatInOneRun, new MeasureRun() {
+
+                @Override
+                public void run(int i) throws IOException {
+                    randomFile.write(data);
+                }
+            });
+            randomFile.close();
+            double[] mbps = ReportLog.calcRatePerSecArray((double)bufferSize / 1024 / 1024,
+                    times);
+            report.printArray(i + "-th round throughput",
+                    mbps, ResultType.HIGHER_BETTER, ResultUnit.MBPS);
+            ReportLog.copyArray(mbps, mbpsAll, i * numberRepeatInOneRun);
+        }
+        Stat.StatResult stat = Stat.getStat(mbpsAll);
+        report.printSummary("update throughput", stat.mAverage, ResultType.HIGHER_BETTER,
+                ResultUnit.MBPS);
+    }
+}
diff --git a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/RandomRWTest.java b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/RandomRWTest.java
new file mode 100644
index 0000000..6b6086b
--- /dev/null
+++ b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/RandomRWTest.java
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.filesystemperf;
+
+import android.cts.util.TimeoutReq;
+
+import com.android.pts.util.PtsAndroidTestCase;
+
+
+public class RandomRWTest extends PtsAndroidTestCase {
+    private static final String DIR_RANDOM_WR = "RANDOM_WR";
+    private static final String DIR_RANDOM_RD = "RANDOM_RD";
+
+    @Override
+    protected void tearDown() throws Exception {
+        FileUtil.removeFileOrDir(getContext(), DIR_RANDOM_WR);
+        FileUtil.removeFileOrDir(getContext(), DIR_RANDOM_RD);
+        super.tearDown();
+    }
+
+    @TimeoutReq(minutes = 60)
+    public void testRandomRead() throws Exception {
+        final int READ_BUFFER_SIZE = 4 * 1024;
+        final long fileSize = FileUtil.getFileSizeExceedingMemory(getContext(), READ_BUFFER_SIZE);
+        if (fileSize == 0) { // not enough space, give up
+            return;
+        }
+        FileUtil.doRandomReadTest(getContext(), DIR_RANDOM_RD, getReportLog(), fileSize,
+                READ_BUFFER_SIZE);
+    }
+
+    // It is taking too long in some device, and thus cannot run multiple times
+    @TimeoutReq(minutes = 60)
+    public void testRandomUpdate() throws Exception {
+        final int WRITE_BUFFER_SIZE = 4 * 1024;
+        final long fileSize = 256 * 1024 * 1024;
+        FileUtil.doRandomWriteTest(getContext(), DIR_RANDOM_WR, getReportLog(), fileSize,
+                WRITE_BUFFER_SIZE);
+    }
+}
diff --git a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/SequentialRWTest.java b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/SequentialRWTest.java
new file mode 100644
index 0000000..d36b45c
--- /dev/null
+++ b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/SequentialRWTest.java
@@ -0,0 +1,127 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.filesystemperf;
+
+import android.cts.util.TimeoutReq;
+import com.android.pts.util.MeasureRun;
+import com.android.pts.util.MeasureTime;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.pts.util.PtsAndroidTestCase;
+import com.android.pts.util.ReportLog;
+import com.android.pts.util.Stat;
+import com.android.pts.util.SystemUtil;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class SequentialRWTest extends PtsAndroidTestCase {
+    private static final String DIR_SEQ_WR = "SEQ_WR";
+    private static final String DIR_SEQ_UPDATE = "SEQ_UPDATE";
+    private static final String DIR_SEQ_RD = "SEQ_RD";
+    private static final int BUFFER_SIZE = 10 * 1024 * 1024;
+
+    @Override
+    protected void tearDown() throws Exception {
+        FileUtil.removeFileOrDir(getContext(), DIR_SEQ_WR);
+        FileUtil.removeFileOrDir(getContext(), DIR_SEQ_UPDATE);
+        FileUtil.removeFileOrDir(getContext(), DIR_SEQ_RD);
+        super.tearDown();
+    }
+
+    @TimeoutReq(minutes = 30)
+    public void testSingleSequentialWrite() throws Exception {
+        final long fileSize = FileUtil.getFileSizeExceedingMemory(getContext(), BUFFER_SIZE);
+        if (fileSize == 0) { // not enough space, give up
+            return;
+        }
+        final int numberOfFiles =(int)(fileSize / BUFFER_SIZE);
+        getReportLog().printValue("files", numberOfFiles, ResultType.NEUTRAL,
+                ResultUnit.COUNT);
+        final byte[] data = FileUtil.generateRandomData(BUFFER_SIZE);
+        final File[] files = FileUtil.createNewFiles(getContext(), DIR_SEQ_WR,
+                numberOfFiles);
+        double[] rdAmount = new double[numberOfFiles];
+        double[] wrAmount = new double[numberOfFiles];
+        double[] times = FileUtil.measureIO(numberOfFiles, rdAmount, wrAmount, new MeasureRun() {
+
+            @Override
+            public void run(int i) throws IOException {
+                FileUtil.writeFile(files[i], data, false);
+            }
+        });
+        double[] mbps = ReportLog.calcRatePerSecArray((double)BUFFER_SIZE / 1024 / 1024, times);
+        getReportLog().printArray("write throughput",
+                mbps, ResultType.HIGHER_BETTER, ResultUnit.MBPS);
+        getReportLog().printArray("write amount", wrAmount, ResultType.NEUTRAL,
+                ResultUnit.BYTE);
+        Stat.StatResult stat = Stat.getStat(mbps);
+        getReportLog().printSummary("write throughput", stat.mAverage, ResultType.HIGHER_BETTER,
+                ResultUnit.MBPS);
+    }
+
+    @TimeoutReq(minutes = 60)
+    public void testSingleSequentialUpdate() throws Exception {
+        final long fileSize = FileUtil.getFileSizeExceedingMemory(getContext(), BUFFER_SIZE);
+        if (fileSize == 0) { // not enough space, give up
+            return;
+        }
+        final int NUMBER_REPETITION = 6;
+        FileUtil.doSequentialUpdateTest(getContext(), DIR_SEQ_UPDATE, getReportLog(), fileSize,
+                BUFFER_SIZE, NUMBER_REPETITION);
+    }
+
+    @TimeoutReq(minutes = 30)
+    public void testSingleSequentialRead() throws Exception {
+        final long fileSize = FileUtil.getFileSizeExceedingMemory(getContext(), BUFFER_SIZE);
+        if (fileSize == 0) { // not enough space, give up
+            return;
+        }
+        long start = System.currentTimeMillis();
+        final File file = FileUtil.createNewFilledFile(getContext(),
+                DIR_SEQ_RD, fileSize);
+        long finish = System.currentTimeMillis();
+        getReportLog().printValue("write throughput for test file of length " + fileSize,
+                ReportLog.calcRatePerSec((double)fileSize / 1024 / 1024, finish - start),
+                ResultType.HIGHER_BETTER, ResultUnit.MBPS);
+
+        final int NUMBER_READ = 10;
+
+        final byte[] data = new byte[BUFFER_SIZE];
+        double[] times = MeasureTime.measure(NUMBER_READ, new MeasureRun() {
+
+            @Override
+            public void run(int i) throws IOException {
+                final FileInputStream in = new FileInputStream(file);
+                long read = 0;
+                while (read < fileSize) {
+                    in.read(data);
+                    read += BUFFER_SIZE;
+                }
+                in.close();
+            }
+        });
+        double[] mbps = ReportLog.calcRatePerSecArray((double)fileSize / 1024 / 1024, times);
+        getReportLog().printArray("read throughput",
+                mbps, ResultType.HIGHER_BETTER, ResultUnit.MBPS);
+        Stat.StatResult stat = Stat.getStat(mbps);
+        getReportLog().printSummary("read throughput", stat.mAverage, ResultType.HIGHER_BETTER,
+                ResultUnit.MBPS);
+    }
+}
diff --git a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/TestTest.java b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/TestTest.java
new file mode 100644
index 0000000..e333200
--- /dev/null
+++ b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/TestTest.java
@@ -0,0 +1,53 @@
+/*
+ * 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.
+ */
+
+
+// code for testing, will be removed / moved before release
+
+package com.android.pts.filesystemperf;
+
+import android.cts.util.TimeoutReq;
+import com.android.pts.util.PtsAndroidTestCase;
+
+/**
+ * This class is for testing PTS itself. Will be disabled in release.
+ *
+ */
+public class TestTest extends PtsAndroidTestCase {
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+/* code for testing PTS logging. Disabled.
+    @TimeoutReq(minutes = 15)
+    public void testPass() {
+        double[] array = new double[] {1.0, 2.0, 3.0};
+        getReportLog().printArray(" ", array, true);
+        getReportLog().printArray(" ", array, false);
+        getReportLog().printValue(" ", 1.0);
+        getReportLog().printValue(" ", 2.0);
+        getReportLog().printSummary("This should be shown", 0, 0);
+    }
+
+    @TimeoutReq(minutes = 10)
+    public void testFail() throws Exception {
+        getReportLog().printValue(" ", 1.0);
+        getReportLog().printValue(" ", 2.0);
+        getReportLog().printSummary("This should not be shown", 0, 0);
+        throw new Exception("failed");
+    }
+*/
+}
diff --git a/suite/pts/deviceTests/opengl/Android.mk b/suite/pts/deviceTests/opengl/Android.mk
new file mode 100644
index 0000000..9346724
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/Android.mk
@@ -0,0 +1,35 @@
+# Copyright (C) 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.
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+# don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+
+LOCAL_JNI_SHARED_LIBRARIES := libptsopengl_jni
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := PtsDeviceOpenGl
+
+LOCAL_SDK_VERSION := 16
+
+include $(BUILD_CTS_PACKAGE)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
\ No newline at end of file
diff --git a/suite/pts/deviceTests/opengl/AndroidManifest.xml b/suite/pts/deviceTests/opengl/AndroidManifest.xml
new file mode 100644
index 0000000..6aa50cf
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/AndroidManifest.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.pts.opengl"
+    android:versionCode="1"
+    android:versionName="1.0" >
+
+    <uses-sdk
+        android:minSdkVersion="16"
+        android:targetSdkVersion="17" />
+
+    <uses-feature
+        android:glEsVersion="0x00020000"
+        android:required="true" />
+
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+
+    <application android:allowBackup="false" >
+        <uses-library android:name="android.test.runner" />
+
+        <activity
+            android:name="com.android.pts.opengl.primitive.GLPrimitiveActivity"
+            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
+            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name="com.android.pts.opengl.reference.GLReferenceActivity"
+            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
+            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name="com.android.pts.opengl.reference.GLGameActivity"
+            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
+            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
+        </activity>
+    </application>
+
+    <instrumentation
+        android:name="android.test.InstrumentationCtsTestRunner"
+        android:label="OpenGL ES 2.0 Benchmark"
+        android:targetPackage="com.android.pts.opengl" />
+
+</manifest>
\ No newline at end of file
diff --git a/suite/pts/deviceTests/opengl/README b/suite/pts/deviceTests/opengl/README
new file mode 100644
index 0000000..ce5e8e8
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/README
@@ -0,0 +1,13 @@
+Copyright (C) 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.
+
+All the assets in this project are under the above license and were made using Gimp and/or Blender.
\ No newline at end of file
diff --git a/suite/pts/deviceTests/opengl/assets/fragment/basic b/suite/pts/deviceTests/opengl/assets/fragment/basic
new file mode 100644
index 0000000..69d98b0
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/fragment/basic
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 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.
+ */
+precision mediump float;
+uniform sampler2D u_Texture;
+varying vec2 v_TexCoordinate;
+void main() {
+  gl_FragColor = texture2D(u_Texture, v_TexCoordinate);
+}
\ No newline at end of file
diff --git a/suite/pts/deviceTests/opengl/assets/fragment/blur b/suite/pts/deviceTests/opengl/assets/fragment/blur
new file mode 100644
index 0000000..1290798
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/fragment/blur
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 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.
+ */
+precision mediump float;
+uniform sampler2D u_Texture;
+uniform vec2 u_Scale;
+varying vec2 v_TexCoordinate;
+void main() {
+  float weights[11];
+  weights[0] = 0.047748641153356156;
+  weights[1] = 0.05979670798364139;
+  weights[2] = 0.07123260215138659;
+  weights[3] = 0.08071711293576822;
+  weights[4] = 0.08700369673862933;
+  weights[5] = 0.08920620580763855;
+  weights[6] = 0.08700369673862933;
+  weights[7] = 0.08071711293576822;
+  weights[8] = 0.07123260215138659;
+  weights[9] = 0.05979670798364139;
+  weights[10] = 0.047748641153356156;
+  vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
+  for (int i = 0; i < 11; i++) {
+    vec2 coords = v_TexCoordinate.xy + ((float(i) - 5.0) * u_Scale);
+    color += texture2D(u_Texture, coords) * weights[i];
+  }
+  gl_FragColor = color;
+}
\ No newline at end of file
diff --git a/suite/pts/deviceTests/opengl/assets/fragment/perspective b/suite/pts/deviceTests/opengl/assets/fragment/perspective
new file mode 100644
index 0000000..8546938
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/fragment/perspective
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 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.
+ */
+precision mediump float;
+uniform vec3 u_LightPos;
+uniform sampler2D u_Texture;
+varying vec3 v_Position;
+varying vec3 v_Normal;
+varying vec2 v_TexCoordinate;
+void main() {
+  // Get a lighting direction vector from the light to the vertex.
+  vec3 lightVector = normalize(u_LightPos - v_Position);
+  // Calculate the dot product of the light vector and vertex normal.
+  float diffuse = max(dot(lightVector, v_Normal), 0.0);
+  // Add ambient lighting
+  diffuse = diffuse + 0.25;
+  // Multiply the diffuse illumination and texture to get final output color.
+  gl_FragColor = (diffuse * texture2D(u_Texture, v_TexCoordinate));
+}
\ No newline at end of file
diff --git a/suite/pts/deviceTests/opengl/assets/fragment/water b/suite/pts/deviceTests/opengl/assets/fragment/water
new file mode 100644
index 0000000..26d0954
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/fragment/water
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 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.
+ */
+precision mediump float;
+uniform vec3 u_LightPos;
+uniform sampler2D u_Texture1;
+uniform sampler2D u_Texture2;
+uniform int u_Time;
+varying vec3 v_Position;
+varying vec2 v_TexCoordinate;
+void main() {
+  float weight = abs(mod(float(u_Time), 101.0) - 50.0) / 50.0;// loop between 0.0 and 1.0
+  float offset = abs(float(u_Time) / 1000.0);
+  // Get normal from bump map.
+  vec3 map1 = texture2D(u_Texture1, v_TexCoordinate + offset).xyz * 2.0 - 1.0;
+  vec3 map2 = texture2D(u_Texture2, v_TexCoordinate + offset).xyz * 2.0 - 1.0;
+  vec3 normal = normalize((map1 * weight) + (map2 * (1.0 - weight)));
+  // Get a lighting direction vector from the light to the vertex.
+  vec3 lightVector = normalize(u_LightPos - v_Position);
+  // Calculate the dot product of the light vector and vertex normal.
+  float diffuse = max(dot(lightVector, normal), 0.0);
+  // Add ambient lighting
+  diffuse = diffuse + 0.025;
+  // Use the diffuse illumination to get final output color.
+  gl_FragColor = vec4(1.0 - diffuse, 1.0 - diffuse, 1.0, 1.0 - (diffuse * 0.9));// Semi transparent blue.
+}
\ No newline at end of file
diff --git a/suite/pts/deviceTests/opengl/assets/mesh/arc.cob b/suite/pts/deviceTests/opengl/assets/mesh/arc.cob
new file mode 100644
index 0000000..1defaf2
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/mesh/arc.cob
Binary files differ
diff --git a/suite/pts/deviceTests/opengl/assets/mesh/fish.cob b/suite/pts/deviceTests/opengl/assets/mesh/fish.cob
new file mode 100644
index 0000000..16de76c
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/mesh/fish.cob
Binary files differ
diff --git a/suite/pts/deviceTests/opengl/assets/mesh/plane.cob b/suite/pts/deviceTests/opengl/assets/mesh/plane.cob
new file mode 100644
index 0000000..b6c62d9
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/mesh/plane.cob
Binary files differ
diff --git a/suite/pts/deviceTests/opengl/assets/texture/arc.png b/suite/pts/deviceTests/opengl/assets/texture/arc.png
new file mode 100644
index 0000000..f95e7a0
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/texture/arc.png
Binary files differ
diff --git a/suite/pts/deviceTests/opengl/assets/texture/background.png b/suite/pts/deviceTests/opengl/assets/texture/background.png
new file mode 100644
index 0000000..db0d472
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/texture/background.png
Binary files differ
diff --git a/suite/pts/deviceTests/opengl/assets/texture/fish.png b/suite/pts/deviceTests/opengl/assets/texture/fish.png
new file mode 100644
index 0000000..fdf1e2c
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/texture/fish.png
Binary files differ
diff --git a/suite/pts/deviceTests/opengl/assets/texture/fish_dark.png b/suite/pts/deviceTests/opengl/assets/texture/fish_dark.png
new file mode 100644
index 0000000..54453a2
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/texture/fish_dark.png
Binary files differ
diff --git a/suite/pts/deviceTests/opengl/assets/texture/water1.png b/suite/pts/deviceTests/opengl/assets/texture/water1.png
new file mode 100644
index 0000000..96f4e62
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/texture/water1.png
Binary files differ
diff --git a/suite/pts/deviceTests/opengl/assets/texture/water2.png b/suite/pts/deviceTests/opengl/assets/texture/water2.png
new file mode 100644
index 0000000..92eebf9
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/texture/water2.png
Binary files differ
diff --git a/suite/pts/deviceTests/opengl/assets/vertex/basic b/suite/pts/deviceTests/opengl/assets/vertex/basic
new file mode 100644
index 0000000..88ba2ba
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/vertex/basic
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 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.
+ */
+precision mediump float;
+attribute vec4 a_Position;
+attribute vec2 a_TexCoordinate;
+varying vec2 v_TexCoordinate;
+void main() {
+  // Pass through the texture coordinate.
+  v_TexCoordinate = a_TexCoordinate;
+  // Set the position on screen.
+  gl_Position = a_Position;
+}
\ No newline at end of file
diff --git a/suite/pts/deviceTests/opengl/assets/vertex/blur b/suite/pts/deviceTests/opengl/assets/vertex/blur
new file mode 100644
index 0000000..ffd6a86
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/vertex/blur
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 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.
+ */
+precision mediump float;
+attribute vec4 a_Position;
+attribute vec2 a_TexCoordinate;
+varying vec2 v_TexCoordinate;
+void main() {
+  // Set the position.
+  gl_Position = a_Position;
+  // Pass through the texture coordinate.
+  v_TexCoordinate = a_TexCoordinate;
+}
\ No newline at end of file
diff --git a/suite/pts/deviceTests/opengl/assets/vertex/perspective b/suite/pts/deviceTests/opengl/assets/vertex/perspective
new file mode 100644
index 0000000..14c8c30
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/vertex/perspective
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 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.
+ */
+precision mediump float;
+uniform mat4 u_MVPMatrix;
+uniform mat4 u_MVMatrix;
+attribute vec4 a_Position;
+attribute vec3 a_Normal;
+attribute vec2 a_TexCoordinate;
+varying vec3 v_Position;
+varying vec3 v_Normal;
+varying vec2 v_TexCoordinate;
+void main() {
+  // Transform the vertex into eye space.
+  v_Position = vec3(u_MVMatrix * a_Position);
+  // Pass through the texture coordinate.
+  v_TexCoordinate = a_TexCoordinate;
+  // Transform the normal\'s orientation into eye space.
+  v_Normal = vec3(u_MVMatrix * vec4(a_Normal, 0.0));
+  // Multiply to get the final point in normalized screen coordinates.
+  gl_Position = u_MVPMatrix * a_Position;
+}
\ No newline at end of file
diff --git a/suite/pts/deviceTests/opengl/assets/vertex/water b/suite/pts/deviceTests/opengl/assets/vertex/water
new file mode 100644
index 0000000..dc09a99
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/assets/vertex/water
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 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.
+ */
+precision mediump float;
+uniform mat4 u_MVPMatrix;
+uniform mat4 u_MVMatrix;
+attribute vec4 a_Position;
+attribute vec2 a_TexCoordinate;
+varying vec3 v_Position;
+varying vec2 v_TexCoordinate;
+void main() {
+  // Transform the vertex into eye space.
+  v_Position = vec3(u_MVMatrix * a_Position);
+  // Pass through the texture coordinate.
+  v_TexCoordinate = a_TexCoordinate;
+  // Multiply to get the final point in normalized screen coordinates.
+  gl_Position = u_MVPMatrix * a_Position;
+}
\ No newline at end of file
diff --git a/suite/pts/deviceTests/opengl/cob_exporter.py b/suite/pts/deviceTests/opengl/cob_exporter.py
new file mode 100644
index 0000000..0a210c9
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/cob_exporter.py
@@ -0,0 +1,75 @@
+import os, bpy, struct
+from bpy_extras.io_utils import ExportHelper
+from bpy.props import StringProperty, BoolProperty, EnumProperty
+
+# This is a custom Blender export script to output an object to a format that's easy to use in
+# android. While open gl allows the use of an index buffer for vertices, the same cannot be done
+# for texture coordinates, which is why this script duplicates the vertices and normals. This
+# gives a larger but faster loading file, hence the tongue-in-cheek name "Compressed" object file.
+# The format is number of vertices + list of vertices (3 coord, 3 normal, 2 texcoord)
+bl_info = {
+        "name": "COB Exporter",
+        "description": "Exports the active scene into a Compressed Object file.",
+        "author": "Stuart Scott",
+        "version": (1, 0, 0),
+        "blender": (2, 6, 2),
+        "api": 36339,
+        "location": "File > Export > COB Exporter (.cob)",
+        "warning": "", # used for warning icon and text in addons panel
+        "wiki_url": "",
+        "tracker_url": "",
+        "category": "Import-Export"
+        }
+
+class COBExporter(bpy.types.Operator, ExportHelper):
+    '''Exports the current scene into a Compressed Object format.'''
+    bl_idname = "export.cob_exporter"  # this is important since its how bpy.ops.export.cob_exporter is constructed
+    bl_label = "COB Exporter"
+
+    filename_ext = ".cob"
+
+    filter_glob = StringProperty(default="*.cob", options={'HIDDEN'})
+
+    def execute(self, context):
+        mesh = context.active_object
+        if mesh.type != 'MESH':
+            print("Active object is not a mesh")
+            return {'FINISHED'}
+        if mesh.mode != 'OBJECT':
+            bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
+        print("Writing "+mesh.name+" to "+self.filepath)
+        uvtex = mesh.data.uv_textures.active # points to active texture
+        f = open(self.filepath, 'wb')
+        f.write(struct.pack(">i", len(uvtex.data) * 3))# write length
+        for uv_index, uv_itself in enumerate(uvtex.data):
+            # get uv for this face
+            uvs = uv_itself.uv1, uv_itself.uv2, uv_itself.uv3
+            for vertex_index, vertex_itself in enumerate(mesh.data.faces[uv_index].vertices):
+                # for each vertex in the face
+                vertex = mesh.data.vertices[vertex_itself]
+                v = vertex.co.xyz
+                n = vertex.normal.xyz
+                t = uvs[vertex_index]
+                f.write(struct.pack(">ffffffff", v[0], v[1], v[2], n[0], n[1], n[2], t[0], 1 - t[1]))
+        f.close()
+        return {'FINISHED'}
+
+    @classmethod
+    def poll(cls, context):
+        return context.active_object != None
+
+# Only needed if you want to add into a dynamic menu
+def menu_func(self, context):
+    default_path = os.path.splitext(bpy.data.filepath)[0] + ".cob"
+    self.layout.operator(COBExporter.bl_idname, text="Compressed Object (.cob)").filepath = default_path
+
+def register():
+    bpy.utils.register_module(__name__)
+    bpy.types.INFO_MT_file_export.append(menu_func)
+
+def unregister():
+    bpy.utils.unregister_module(__name__)
+    bpy.types.INFO_MT_file_export.remove(menu_func)
+
+if __name__ == "__main__":
+    register()
diff --git a/suite/pts/deviceTests/opengl/jni/Android.mk b/suite/pts/deviceTests/opengl/jni/Android.mk
new file mode 100644
index 0000000..edefdca
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/Android.mk
@@ -0,0 +1,34 @@
+# Copyright (C) 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.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libptsopengl_jni
+
+LOCAL_MODULE_TAGS := optional
+
+# Needed in order to use fences for synchronization
+LOCAL_CFLAGS += -DEGL_EGLEXT_PROTOTYPES
+
+# Get all cpp files but not hidden files
+LOCAL_SRC_FILES := $(patsubst ./%,%, $(shell cd $(LOCAL_PATH); \
+		  find . -name "*.cpp" -and -not -name ".*"))
+
+LOCAL_C_INCLUDES := $(JNI_H_INCLUDE)
+
+LOCAL_SHARED_LIBRARIES := libEGL libGLESv2 libandroid libutils libcutils liblog
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/suite/pts/deviceTests/opengl/jni/Trace.h b/suite/pts/deviceTests/opengl/jni/Trace.h
new file mode 100644
index 0000000..713d3a0
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/Trace.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef TRACE_H
+#define TRACE_H
+
+// #define TRACE
+
+#ifdef TRACE
+#define ATRACE_TAG ATRACE_TAG_GRAPHICS
+#include <utils/Trace.h>
+#define SCOPED_TRACE() android::ScopedTrace st(ATRACE_TAG, __func__)
+#else
+#define SCOPED_TRACE()
+#endif
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/GLUtils.cpp b/suite/pts/deviceTests/opengl/jni/graphics/GLUtils.cpp
new file mode 100644
index 0000000..43aa47d
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/GLUtils.cpp
@@ -0,0 +1,236 @@
+/*
+ * Copyright (C) 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 "GLUtils.h"
+#include <stdlib.h>
+#include <sys/time.h>
+
+#include <android/asset_manager_jni.h>
+
+#define LOG_TAG "PTS_OPENGL"
+#define LOG_NDEBUG 0
+#include <utils/Log.h>
+
+static JNIEnv* sEnv = NULL;
+static jobject sAssetManager = NULL;
+
+void GLUtils::setEnvAndAssetManager(JNIEnv* env, jobject assetManager) {
+    sEnv = env;
+    sAssetManager = assetManager;
+}
+
+static AAsset* loadAsset(const char* path) {
+    AAssetManager* nativeManager = AAssetManager_fromJava(sEnv, sAssetManager);
+    if (nativeManager == NULL) {
+        return NULL;
+    }
+    return AAssetManager_open(nativeManager, path, AASSET_MODE_UNKNOWN);;
+}
+
+char* GLUtils::openTextFile(const char* path) {
+    AAsset* asset = loadAsset(path);
+    if (asset == NULL) {
+        ALOGE("Couldn't load %s", path);
+        return NULL;
+    }
+    off_t length = AAsset_getLength(asset);
+    char* buffer = new char[length + 1];
+    int num = AAsset_read(asset, buffer, length);
+    AAsset_close(asset);
+    if (num != length) {
+        ALOGE("Couldn't read %s", path);
+        delete[] buffer;
+        return NULL;
+    }
+    buffer[length] = '\0';
+    return buffer;
+}
+
+GLuint GLUtils::loadTexture(const char* path) {
+    GLuint textureId = 0;
+    jclass activityClass = sEnv->FindClass("com/android/pts/opengl/reference/GLGameActivity");
+    if (activityClass == NULL) {
+        ALOGE("Couldn't find activity class");
+        return -1;
+    }
+    jmethodID loadTexture = sEnv->GetStaticMethodID(activityClass, "loadTexture",
+            "(Landroid/content/res/AssetManager;Ljava/lang/String;)I");
+    if (loadTexture == NULL) {
+        ALOGE("Couldn't find loadTexture method");
+        return -1;
+    }
+    jstring pathStr = sEnv->NewStringUTF(path);
+    textureId = sEnv->CallStaticIntMethod(activityClass, loadTexture, sAssetManager, pathStr);
+    sEnv->DeleteLocalRef(pathStr);
+    return textureId;
+}
+
+static int readInt(char* b) {
+    return (((int) b[0]) << 24) | (((int) b[1]) << 16) | (((int) b[2]) << 8) | ((int) b[3]);
+}
+
+static float readFloat(char* b) {
+    union {
+        int input;
+        float output;
+    } data;
+    data.input = readInt(b);
+    return data.output;
+}
+
+Mesh* GLUtils::loadMesh(const char* path) {
+    char* buffer = openTextFile(path);
+    if (buffer == NULL) {
+        return NULL;
+    }
+    int index = 0;
+    int numVertices = readInt(buffer + index);
+    index += 4;
+    float* vertices = new float[numVertices * 3];
+    float* normals = new float[numVertices * 3];
+    float* texCoords = new float[numVertices * 2];
+    for (int i = 0; i < numVertices; i++) {
+        // Vertices
+        int vIndex = i * 3;
+        vertices[vIndex + 0] = readFloat(buffer + index);
+        index += 4;
+        vertices[vIndex + 1] = readFloat(buffer + index);
+        index += 4;
+        vertices[vIndex + 2] = readFloat(buffer + index);
+        index += 4;
+        // Normals
+        normals[vIndex + 0] = readFloat(buffer + index);
+        index += 4;
+        normals[vIndex + 1] = readFloat(buffer + index);
+        index += 4;
+        normals[vIndex + 2] = readFloat(buffer + index);
+        index += 4;
+        // Texture Coordinates
+        int tIndex = i * 2;
+        texCoords[tIndex + 0] = readFloat(buffer + index);
+        index += 4;
+        texCoords[tIndex + 1] = readFloat(buffer + index);
+        index += 4;
+    }
+    return new Mesh(vertices, normals, texCoords, numVertices);
+}
+
+// Loads the given source code as a shader of the given type.
+static GLuint loadShader(GLenum shaderType, const char** source) {
+    GLuint shader = glCreateShader(shaderType);
+    if (shader) {
+        glShaderSource(shader, 1, source, NULL);
+        glCompileShader(shader);
+        GLint compiled = 0;
+        glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
+        if (!compiled) {
+            GLint infoLen = 0;
+            glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
+            if (infoLen > 0) {
+                char* infoLog = (char*) malloc(sizeof(char) * infoLen);
+                glGetShaderInfoLog(shader, infoLen, NULL, infoLog);
+                ALOGE("Error compiling shader:\n%s\n", infoLog);
+                free(infoLog);
+            }
+            glDeleteShader(shader);
+            shader = 0;
+        }
+    }
+    return shader;
+}
+
+GLuint GLUtils::createProgram(const char** vertexSource, const char** fragmentSource) {
+    GLuint vertexShader = loadShader(GL_VERTEX_SHADER, vertexSource);
+    if (!vertexShader) {
+        return 0;
+    }
+
+    GLuint fragmentShader = loadShader(GL_FRAGMENT_SHADER, fragmentSource);
+    if (!fragmentShader) {
+        return 0;
+    }
+
+    GLuint program = glCreateProgram();
+    if (program) {
+        glAttachShader(program, vertexShader);
+        glAttachShader(program, fragmentShader);
+
+        GLint linkStatus;
+        glLinkProgram(program);
+        glGetProgramiv(program, GL_LINK_STATUS, &linkStatus);
+
+        if (!linkStatus) {
+            GLint infoLen = 0;
+            glGetProgramiv(program, GL_INFO_LOG_LENGTH, &infoLen);
+            if (infoLen > 0) {
+                char* infoLog = (char*) malloc(sizeof(char) * infoLen);
+                glGetProgramInfoLog(program, infoLen, NULL, infoLog);
+                ALOGE("Error linking program:\n%s\n", infoLog);
+                free(infoLog);
+            }
+            glDeleteProgram(program);
+            program = 0;
+        }
+    }
+    return program;
+}
+
+double GLUtils::currentTimeMillis() {
+    struct timeval tv;
+    gettimeofday(&tv, (struct timezone *) NULL);
+    return tv.tv_sec * 1000.0 + tv.tv_usec / 1000.0;
+}
+
+// Rounds a number up to the smallest power of 2 that is greater than or equal to x.
+int GLUtils::roundUpToSmallestPowerOf2(int x) {
+    if (x < 0) {
+        return 0;
+    }
+    --x;
+    x |= x >> 1;
+    x |= x >> 2;
+    x |= x >> 4;
+    x |= x >> 8;
+    x |= x >> 16;
+    return x + 1;
+}
+
+GLuint GLUtils::genTexture(int texWidth, int texHeight, int fill) {
+    GLuint textureId = 0;
+    int w = roundUpToSmallestPowerOf2(texWidth);
+    int h = roundUpToSmallestPowerOf2(texHeight);
+    uint32_t* m = new uint32_t[w * h];
+    if (m != NULL) {
+        uint32_t* d = m;
+        for (int y = 0; y < h; y++) {
+            for (int x = 0; x < w; x++) {
+                if (fill == RANDOM_FILL) {
+                    *d = 0xff000000 | ((y & 0xff) << 16) | ((x & 0xff) << 8) | ((x + y) & 0xff);
+                } else {
+                    *d = 0xff000000 | fill;
+                }
+                d++;
+            }
+        }
+        glGenTextures(1, &textureId);
+        glBindTexture(GL_TEXTURE_2D, textureId);
+        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, m);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+    }
+    delete[] m;
+    return textureId;
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/GLUtils.h b/suite/pts/deviceTests/opengl/jni/graphics/GLUtils.h
new file mode 100644
index 0000000..6aef87c
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/GLUtils.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef GLUTILS_H
+#define GLUTILS_H
+
+#include <jni.h>
+
+#include <EGL/egl.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+
+#include "Mesh.h"
+
+class GLUtils {
+public:
+    static void setEnvAndAssetManager(JNIEnv* env, jobject assetManager);
+    // Loads a file from assets/path into a char array.
+    static char* openTextFile(const char* path);
+    // Loads a texture from assets/texture/<name>
+    static GLuint loadTexture(const char* name);
+    // Loads a mesh from assets/mesh/<name>
+    static Mesh* loadMesh(const char* name);
+    // Creates a program with the given vertex and fragment shader source code.
+    static GLuint createProgram(const char** vertexSource, const char** fragmentSource);
+    static double currentTimeMillis();
+    // Rounds a number up to the smallest power of 2 that is greater than the original number.
+    static int roundUpToSmallestPowerOf2(int x);
+    static const int RANDOM_FILL = -1;
+    // Generates a texture of the given dimensions. The texture can either be filled with the
+    // specified fill color, else if RANDOM_FILL is passed in the texture will be filled with
+    // random values.
+    static GLuint genTexture(int texWidth, int texHeight, int fill);
+    static bool createFBO(GLuint& fboId, GLuint& rboId, GLuint& cboId, int width, int height);
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/Matrix.cpp b/suite/pts/deviceTests/opengl/jni/graphics/Matrix.cpp
new file mode 100644
index 0000000..422c93c
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/Matrix.cpp
@@ -0,0 +1,328 @@
+/*
+ * Copyright (C) 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 "Matrix.h"
+#include <string.h>
+#include <cmath>
+
+#define LOG_TAG "PTS_OPENGL"
+#define LOG_NDEBUG 0
+#include "utils/Log.h"
+
+Matrix::Matrix() {
+    identity();
+}
+
+Matrix::Matrix(const Matrix& src) {
+    loadWith(src);
+}
+
+void Matrix::print(const char* label) {
+    ALOGI("%c", *label);
+    for (int i = 0; i < 4; i++) {
+        const float* d = &(mData[i * 4]);
+        ALOGI("%f %f %f %f\n", d[0], d[1], d[2], d[3]);
+    }
+}
+
+bool Matrix::equals(const Matrix& src) {
+    bool equals = true;
+    const float* d = src.mData;
+    for (int i = 0; i < MATRIX_SIZE && equals; i++) {
+        if (mData[i] != d[i]) {
+            equals = false;
+        }
+    }
+    return equals;
+}
+
+void Matrix::loadWith(const Matrix& src) {
+    memcpy(mData, src.mData, MATRIX_SIZE * sizeof(float));
+}
+
+void Matrix::identity() {
+    mData[0] = 1.0f;
+    mData[1] = 0.0f;
+    mData[2] = 0.0f;
+    mData[3] = 0.0f;
+
+    mData[4] = 0.0f;
+    mData[5] = 1.0f;
+    mData[6] = 0.0f;
+    mData[7] = 0.0f;
+
+    mData[8] = 0.0f;
+    mData[9] = 0.0f;
+    mData[10] = 1.0f;
+    mData[11] = 0.0f;
+
+    mData[12] = 0.0f;
+    mData[13] = 0.0f;
+    mData[14] = 0.0f;
+    mData[15] = 1.0f;
+}
+
+void Matrix::translate(float x, float y, float z) {
+    Matrix* m = newTranslate(x, y, z);
+    Matrix* temp = new Matrix(*this);
+    if (m != NULL && temp != NULL) {
+        multiply(*temp, *m);
+    }
+    delete m;
+    delete temp;
+}
+
+void Matrix::scale(float x, float y, float z) {
+    Matrix* m = newScale(x, y, z);
+    Matrix* temp = new Matrix(*this);
+    if (m != NULL && temp != NULL) {
+        multiply(*temp, *m);
+    }
+    delete m;
+    delete temp;
+}
+
+void Matrix::rotate(float radians, float x, float y, float z) {
+    Matrix* m = newRotate(radians, x, y, z);
+    Matrix* temp = new Matrix(*this);
+    if (m != NULL && temp != NULL) {
+        multiply(*temp, *m);
+    }
+    delete m;
+    delete temp;
+}
+
+void Matrix::multiply(const Matrix& l, const Matrix& r) {
+    float const* const lhs = l.mData;
+    float const* const rhs = r.mData;
+    for (int i = 0; i < 4; i++) {
+        const int i4 = i * 4;
+        float x = 0;
+        float y = 0;
+        float z = 0;
+        float w = 0;
+
+        for (int j = 0; j < 4; j++) {
+            const int j4 = j * 4;
+            const float e = rhs[i4 + j];
+            x += lhs[j4 + 0] * e;
+            y += lhs[j4 + 1] * e;
+            z += lhs[j4 + 2] * e;
+            w += lhs[j4 + 3] * e;
+        }
+
+        mData[i4 + 0] = x;
+        mData[i4 + 1] = y;
+        mData[i4 + 2] = z;
+        mData[i4 + 3] = w;
+    }
+}
+
+Matrix* Matrix::newLookAt(float eyeX, float eyeY, float eyeZ, float centerX,
+        float centerY, float centerZ, float upX, float upY, float upZ) {
+    Matrix* m = new Matrix();
+    if (m != NULL) {
+        // See the OpenGL GLUT documentation for gluLookAt for a description
+        // of the algorithm. We implement it in a straightforward way:
+
+        float fx = centerX - eyeX;
+        float fy = centerY - eyeY;
+        float fz = centerZ - eyeZ;
+
+        // Normalize f
+        float rlf = 1.0f / (float) sqrt(fx * fx + fy * fy + fz * fz);
+        fx *= rlf;
+        fy *= rlf;
+        fz *= rlf;
+
+        // compute s = f x up (x means "cross product")
+        float sx = fy * upZ - fz * upY;
+        float sy = fz * upX - fx * upZ;
+        float sz = fx * upY - fy * upX;
+
+        // and normalize s
+        float rls = 1.0f / (float) sqrt(sx * sx + sy * sy + sz * sz);
+        sx *= rls;
+        sy *= rls;
+        sz *= rls;
+
+        // compute u = s x f
+        float ux = sy * fz - sz * fy;
+        float uy = sz * fx - sx * fz;
+        float uz = sx * fy - sy * fx;
+
+        float* d = m->mData;
+        d[0] = sx;
+        d[1] = ux;
+        d[2] = -fx;
+        d[3] = 0.0f;
+
+        d[4] = sy;
+        d[5] = uy;
+        d[6] = -fy;
+        d[7] = 0.0f;
+
+        d[8] = sz;
+        d[9] = uz;
+        d[10] = -fz;
+        d[11] = 0.0f;
+
+        d[12] = 0.0f;
+        d[13] = 0.0f;
+        d[14] = 0.0f;
+        d[15] = 1.0f;
+
+        m->translate(-eyeX, -eyeY, -eyeZ);
+    }
+    return m;
+}
+
+Matrix* Matrix::newFrustum(float left, float right, float bottom, float top,
+        float near, float far) {
+    const float r_width = 1.0f / (right - left);
+    const float r_height = 1.0f / (top - bottom);
+    const float r_depth = 1.0f / (near - far);
+    const float x = 2.0f * (near * r_width);
+    const float y = 2.0f * (near * r_height);
+    const float A = (right + left) * r_width;
+    const float B = (top + bottom) * r_height;
+    const float C = (far + near) * r_depth;
+    const float D = 2.0f * (far * near * r_depth);
+    Matrix* m = new Matrix();
+    if (m != NULL) {
+        float* d = m->mData;
+        d[0] = x;
+        d[5] = y;
+        d[8] = A;
+        d[9] = B;
+        d[10] = C;
+        d[14] = D;
+        d[11] = -1.0f;
+        d[1] = 0.0f;
+        d[2] = 0.0f;
+        d[3] = 0.0f;
+        d[4] = 0.0f;
+        d[6] = 0.0f;
+        d[7] = 0.0f;
+        d[12] = 0.0f;
+        d[13] = 0.0f;
+        d[15] = 0.0f;
+    }
+    return m;
+}
+
+Matrix* Matrix::newTranslate(float x, float y, float z) {
+    Matrix* m = new Matrix();
+    if (m != NULL) {
+        float* d = m->mData;
+        d[12] = x;
+        d[13] = y;
+        d[14] = z;
+    }
+    return m;
+}
+Matrix* Matrix::newScale(float x, float y, float z) {
+    Matrix* m = new Matrix();
+    if (m != NULL) {
+        float* d = m->mData;
+        d[0] = x;
+        d[5] = y;
+        d[10] = z;
+    }
+    return m;
+}
+Matrix* Matrix::newRotate(float radians, float x, float y, float z) {
+    Matrix* m = new Matrix();
+    if (m != NULL) {
+        float* d = m->mData;
+        d[3] = 0;
+        d[7] = 0;
+        d[11] = 0;
+        d[12] = 0;
+        d[13] = 0;
+        d[14] = 0;
+        d[15] = 1;
+        float s = (float) sinf(radians);
+        float c = (float) cosf(radians);
+        if (1.0f == x && 0.0f == y && 0.0f == z) {
+            d[5] = c;
+            d[10] = c;
+            d[6] = s;
+            d[9] = -s;
+            d[1] = 0;
+            d[2] = 0;
+            d[4] = 0;
+            d[8] = 0;
+            d[0] = 1;
+        } else if (0.0f == x && 1.0f == y && 0.0f == z) {
+            d[0] = c;
+            d[10] = c;
+            d[8] = s;
+            d[2] = -s;
+            d[1] = 0;
+            d[4] = 0;
+            d[6] = 0;
+            d[9] = 0;
+            d[5] = 1;
+        } else if (0.0f == x && 0.0f == y && 1.0f == z) {
+            d[0] = c;
+            d[5] = c;
+            d[1] = s;
+            d[4] = -s;
+            d[2] = 0;
+            d[6] = 0;
+            d[8] = 0;
+            d[9] = 0;
+            d[10] = 1;
+        } else {
+            float len = sqrt((x * x) + (y * y) + (z * z));
+            if (1.0f != len) {
+                float recipLen = 1.0f / len;
+                x *= recipLen;
+                y *= recipLen;
+                z *= recipLen;
+            }
+            float nc = 1.0f - c;
+            float xy = x * y;
+            float yz = y * z;
+            float zx = z * x;
+            float xs = x * s;
+            float ys = y * s;
+            float zs = z * s;
+            d[0] = x * x * nc + c;
+            d[4] = xy * nc - zs;
+            d[8] = zx * nc + ys;
+            d[1] = xy * nc + zs;
+            d[5] = y * y * nc + c;
+            d[9] = yz * nc - xs;
+            d[2] = zx * nc - ys;
+            d[6] = yz * nc + xs;
+            d[10] = z * z * nc + c;
+        }
+    }
+    return m;
+}
+
+void Matrix::multiplyVector(float* result, const Matrix& lhs,
+        const float* rhs) {
+    const float* d = lhs.mData;
+    const float x = rhs[0];
+    const float y = rhs[1];
+    const float z = rhs[2];
+    const float w = rhs[3];
+    for (int i = 0; i < 4; i++) {
+        const int j = i * 4;
+        result[i] = d[j + 0] * x + d[j + 1] * y + d[j + 2] * z + d[j + 3] * w;
+    }
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/Matrix.h b/suite/pts/deviceTests/opengl/jni/graphics/Matrix.h
new file mode 100644
index 0000000..11fc23c
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/Matrix.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef MATRIX_H
+#define MATRIX_H
+
+class Matrix {
+public:
+    static const int MATRIX_SIZE = 16;
+    float mData[MATRIX_SIZE];
+    Matrix();
+    Matrix(const Matrix& src);
+    // Returns true if the two matrices have the same values.
+    bool equals(const Matrix& src);
+    // Loads this matrix with the identity matrix.
+    void identity();
+    // Loads this matrix with the data from src.
+    void loadWith(const Matrix& src);
+    // Translates this matrix by the given amounts.
+    void translate(float x, float y, float z);
+    // Scales this matrix by the given amounts.
+    void scale(float x, float y, float z);
+    // Rotates this matrix the given angle.
+    void rotate(float radians, float x, float y, float z);
+    // Sets this matrix to be the result of multiplying the given matrices.
+    void multiply(const Matrix& l, const Matrix& r);
+
+    void print(const char* label);
+
+    // Returns a new matrix representing the camera.
+    static Matrix* newLookAt(float eyeX, float eyeY, float eyeZ, float centerX,
+            float centerY, float centerZ, float upX, float upY, float upZ);
+    // Returns a new matrix representing the perspective matrix.
+    static Matrix* newFrustum(float left, float right, float bottom, float top,
+            float near, float far);
+    // Returns a new matrix representing the translation.
+    static Matrix* newTranslate(float x, float y, float z);
+    // Returns a new matrix representing the scaling.
+    static Matrix* newScale(float x, float y, float z);
+    // Returns a new matrix representing the rotation.
+    static Matrix* newRotate(float radians, float x, float y, float z);
+
+    // Sets the given matrix to be the result of multiplying the given matrix by the given vector.
+    static void multiplyVector(float* result, const Matrix& lhs,
+            const float* rhs);
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/Mesh.cpp b/suite/pts/deviceTests/opengl/jni/graphics/Mesh.cpp
new file mode 100644
index 0000000..858ec6b
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/Mesh.cpp
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 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 "Mesh.h"
+
+Mesh::Mesh(const float* vertices, const float* normals, const float* texCoords,
+           const int numVertices)
+    : mVertices(vertices),
+      mNormals(normals),
+      mTexCoords(texCoords),
+      mNumVertices(numVertices) {
+
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/Mesh.h b/suite/pts/deviceTests/opengl/jni/graphics/Mesh.h
new file mode 100644
index 0000000..9ff4103
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/Mesh.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef MESH_H
+#define MESH_H
+
+#include <GLES2/gl2.h>
+
+// Meshes act as holders for geometry data etc. This is accessed by the MeshNodes to render them.
+// This allows a mesh to appear multiple times in a SceneGraph without duplication.
+class Mesh {
+public:
+    Mesh(const float* vertices, const float* normals, const float* texCoords,
+            const int numVertices);
+    virtual ~Mesh() {};
+    const float* mVertices;
+    const float* mNormals;
+    const float* mTexCoords;
+    const int mNumVertices;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/MeshNode.cpp b/suite/pts/deviceTests/opengl/jni/graphics/MeshNode.cpp
new file mode 100644
index 0000000..8ea5f76
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/MeshNode.cpp
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 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 "MeshNode.h"
+
+MeshNode::MeshNode(const Mesh* mesh) :
+        mMesh(mesh) {
+
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/MeshNode.h b/suite/pts/deviceTests/opengl/jni/graphics/MeshNode.h
new file mode 100644
index 0000000..a02b6bd
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/MeshNode.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef MESHNODE_H
+#define MESHNODE_H
+
+#include "Matrix.h"
+#include "Mesh.h"
+#include "Program.h"
+#include "SceneGraphNode.h"
+
+class MeshNode: public SceneGraphNode {
+public:
+    MeshNode(const Mesh* mesh);
+    virtual ~MeshNode() {};
+protected:
+    virtual void before(Program& program, Matrix& model, Matrix& view, Matrix& projection) = 0;
+    virtual void after(Program& program, Matrix& model, Matrix& view, Matrix& projection) = 0;
+    const Mesh* mMesh;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveMeshNode.cpp b/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveMeshNode.cpp
new file mode 100644
index 0000000..db6b05d
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveMeshNode.cpp
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 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 "PerspectiveMeshNode.h"
+
+#include "PerspectiveProgram.h"
+
+PerspectiveMeshNode::PerspectiveMeshNode(const Mesh* mesh, const GLuint textureId) :
+        TexturedMeshNode(mesh, textureId) {
+}
+
+void PerspectiveMeshNode::before(Program& program, Matrix& model, Matrix& view, Matrix& projection) {
+    PerspectiveProgram& prog = (PerspectiveProgram&) program;
+
+    int textureUniformHandle = glGetUniformLocation(prog.mProgramId, "u_Texture");
+    int positionHandle = glGetAttribLocation(prog.mProgramId, "a_Position");
+    int normalHandle = glGetAttribLocation(prog.mProgramId, "a_Normal");
+    int texCoordHandle = glGetAttribLocation(prog.mProgramId, "a_TexCoordinate");
+
+    // Set the texture.
+    glActiveTexture (GL_TEXTURE0);
+    glBindTexture(GL_TEXTURE_2D, mTextureId);
+    glUniform1i(textureUniformHandle, 0);
+
+    glEnableVertexAttribArray(positionHandle);
+    glVertexAttribPointer(positionHandle, 3, GL_FLOAT, false, 0, mMesh->mVertices);
+    glEnableVertexAttribArray(normalHandle);
+    glVertexAttribPointer(normalHandle, 3, GL_FLOAT, false, 0, mMesh->mNormals);
+    glEnableVertexAttribArray(texCoordHandle);
+    glVertexAttribPointer(texCoordHandle, 2, GL_FLOAT, false, 0, mMesh->mTexCoords);
+
+    // This multiplies the view matrix by the model matrix, and stores the result in the MVP
+    // matrix (which currently contains model * view).
+    prog.mMVMatrix.multiply(view, model);
+
+    // Pass in the modelview matrix.
+    glUniformMatrix4fv(prog.mMVMatrixHandle, 1, false, prog.mMVMatrix.mData);
+
+    // This multiplies the modelview matrix by the projection matrix, and stores the result in
+    // the MVP matrix (which now contains model * view * projection).
+    prog.mMVPMatrix.multiply(projection, prog.mMVMatrix);
+
+    // Pass in the combined matrix.
+    glUniformMatrix4fv(prog.mMVPMatrixHandle, 1, false, prog.mMVPMatrix.mData);
+
+    // Pass in the light position in eye space.
+    glUniform3f(prog.mLightPosHandle, prog.mLightPosInEyeSpace[0], prog.mLightPosInEyeSpace[1],
+            prog.mLightPosInEyeSpace[2]);
+
+    glDrawArrays(GL_TRIANGLES, 0, mMesh->mNumVertices);
+}
+
+void PerspectiveMeshNode::after(Program& program, Matrix& model, Matrix& view, Matrix& projection) {
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveMeshNode.h b/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveMeshNode.h
new file mode 100644
index 0000000..bc89248
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveMeshNode.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 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.
+ */
+
+#ifndef PERSPECTIVEMESHNODE_H
+#define PERSPECTIVEMESHNODE_H
+
+#include "Matrix.h"
+#include "Mesh.h"
+#include "Program.h"
+#include "TexturedMeshNode.h"
+
+class PerspectiveMeshNode: public TexturedMeshNode {
+public:
+    PerspectiveMeshNode(const Mesh* mesh, const GLuint textureId);
+    virtual ~PerspectiveMeshNode() {};
+protected:
+    virtual void before(Program& program, Matrix& model, Matrix& view, Matrix& projection);
+    virtual void after(Program& program, Matrix& model, Matrix& view, Matrix& projection);
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveProgram.cpp b/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveProgram.cpp
new file mode 100644
index 0000000..7665e5a
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveProgram.cpp
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 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 "PerspectiveProgram.h"
+
+#include <EGL/egl.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+
+PerspectiveProgram::PerspectiveProgram(GLuint programId) :
+        Program(programId) {
+    mLightPosInModelSpace[0] = 0.0f;
+    mLightPosInModelSpace[1] = 0.0f;
+    mLightPosInModelSpace[2] = 1.0f;
+    mLightPosInModelSpace[3] = 2.0f;
+    mMVMatrixHandle = glGetUniformLocation(programId, "u_MVMatrix");
+    mMVPMatrixHandle = glGetUniformLocation(programId, "u_MVPMatrix");
+    mLightPosHandle = glGetUniformLocation(programId, "u_LightPos");
+}
+
+void PerspectiveProgram::before(Matrix& model, Matrix& view, Matrix& projection) {
+    Program::before(model, view, projection);
+    mLightModelMatrix.identity();
+
+    Matrix::multiplyVector(mLightPosInWorldSpace, mLightModelMatrix, mLightPosInModelSpace);
+    Matrix::multiplyVector(mLightPosInEyeSpace, view, mLightPosInWorldSpace);
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveProgram.h b/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveProgram.h
new file mode 100644
index 0000000..7792a3d
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/PerspectiveProgram.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef PERSPECTIVEPROGRAM_H
+#define PERSPECTIVEPROGRAM_H
+
+#include "Matrix.h"
+#include "Program.h"
+
+#include <EGL/egl.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+
+class PerspectiveProgram: public Program {
+public:
+    PerspectiveProgram(GLuint programId);
+    virtual ~PerspectiveProgram() {};
+    virtual void before(Matrix& model, Matrix& view, Matrix& projection);
+
+    Matrix mMVMatrix;
+    Matrix mMVPMatrix;
+    Matrix mLightModelMatrix;
+    float mLightPosInModelSpace[4];
+    float mLightPosInWorldSpace[4];
+    float mLightPosInEyeSpace[4];
+
+    int mMVMatrixHandle;
+    int mMVPMatrixHandle;
+    int mLightPosHandle;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/Program.cpp b/suite/pts/deviceTests/opengl/jni/graphics/Program.cpp
new file mode 100644
index 0000000..b951a4b
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/Program.cpp
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 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 "ProgramNode.h"
+
+Program::Program(GLuint programId) :
+        mProgramId(programId) {
+}
+
+void Program::before(Matrix& model, Matrix& view, Matrix& projection) {
+    glUseProgram(mProgramId);
+}
+
+void Program::after(Matrix& model, Matrix& view, Matrix& projection) {
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/Program.h b/suite/pts/deviceTests/opengl/jni/graphics/Program.h
new file mode 100644
index 0000000..6161baf
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/Program.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef PROGRAM_H
+#define PROGRAM_H
+
+#include "Matrix.h"
+
+#include <GLES2/gl2.h>
+
+class Program {
+public:
+    Program(GLuint programId);
+    virtual ~Program() {};
+    virtual void before(Matrix& model, Matrix& view, Matrix& projection);
+    virtual void after(Matrix& model, Matrix& view, Matrix& projection);
+    GLuint mProgramId;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/ProgramNode.cpp b/suite/pts/deviceTests/opengl/jni/graphics/ProgramNode.cpp
new file mode 100644
index 0000000..f367268
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/ProgramNode.cpp
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 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 "ProgramNode.h"
+
+ProgramNode::ProgramNode(Program& program) :
+        mProgram(program) {
+}
+
+void ProgramNode::before(Program& program, Matrix& model, Matrix& view, Matrix& projection) {
+    program.before(model, view, projection);
+}
+
+void ProgramNode::after(Program& program, Matrix& model, Matrix& view, Matrix& projection) {
+    program.after(model, view, projection);
+}
+
+void ProgramNode::drawProgram(Matrix& model, Matrix& view, Matrix& projection) {
+    SceneGraphNode::draw(mProgram, model, view, projection);
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/ProgramNode.h b/suite/pts/deviceTests/opengl/jni/graphics/ProgramNode.h
new file mode 100644
index 0000000..fe69958
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/ProgramNode.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef PROGRAMNODE_H
+#define PROGRAMNODE_H
+
+#include "Matrix.h"
+#include "Program.h"
+#include "SceneGraphNode.h"
+
+class ProgramNode: public SceneGraphNode {
+public:
+    ProgramNode(Program& program);
+    virtual ~ProgramNode() {};
+    void drawProgram(Matrix& model, Matrix& view, Matrix& projection);
+protected:
+    virtual void before(Program& program, Matrix& model, Matrix& view, Matrix& projection);
+    virtual void after(Program& program, Matrix& model, Matrix& view, Matrix& projection);
+    Program& mProgram;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/Renderer.cpp b/suite/pts/deviceTests/opengl/jni/graphics/Renderer.cpp
new file mode 100644
index 0000000..bdb6b5d
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/Renderer.cpp
@@ -0,0 +1,291 @@
+/*
+ * Copyright (C) 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 "Renderer.h"
+#include <graphics/GLUtils.h>
+
+#define LOG_TAG "PTS_OPENGL"
+#define LOG_NDEBUG 0
+#include <utils/Log.h>
+
+#include <Trace.h>
+
+// Used to center the grid on the screen.
+#define CENTER_GRID(x) ((((x) * 2.0 + 1) - OFFSCREEN_GRID_SIZE) / OFFSCREEN_GRID_SIZE)
+
+static const int FBO_NUM_VERTICES = 6;
+
+static const float FBO_VERTICES[FBO_NUM_VERTICES * 3] = {
+        0.1f, 0.1f, -0.1f,
+        -0.1f, 0.1f, -0.1f,
+        -0.1f, -0.1f, -0.1f,
+        -0.1f, -0.1f, -0.1f,
+        0.1f, -0.1f, -0.1f,
+        0.1f, 0.1f, -0.1f };
+static const float FBO_TEX_COORDS[FBO_NUM_VERTICES * 2] = {
+        1.0f, 1.0f,
+        0.0f, 1.0f,
+        0.0f, 0.0f,
+        0.0f, 0.0f,
+        1.0f, 0.0f,
+        1.0f, 1.0f };
+
+static const char* FBO_VERTEX =
+        "attribute vec4 a_Position;"
+        "attribute vec2 a_TexCoord;"
+        "uniform float u_XOffset;"
+        "uniform float u_YOffset;"
+        "varying vec2 v_TexCoord;"
+        "void main() {"
+        "  v_TexCoord = a_TexCoord;"
+        "  gl_Position.x = a_Position.x + u_XOffset;"
+        "  gl_Position.y = a_Position.y + u_YOffset;"
+        "  gl_Position.zw = a_Position.zw;"
+        "}";
+
+static const char* FBO_FRAGMENT =
+        "precision mediump float;"
+        "uniform sampler2D u_Texture;"
+        "varying vec2 v_TexCoord;"
+        "void main() {"
+        "  gl_FragColor = texture2D(u_Texture, v_TexCoord);"
+        "}";
+
+static const EGLint contextAttribs[] = {
+        EGL_CONTEXT_CLIENT_VERSION, 2,
+        EGL_NONE };
+
+static const EGLint configAttribs[] = {
+        EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
+        EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+        EGL_RED_SIZE, 8,
+        EGL_GREEN_SIZE, 8,
+        EGL_BLUE_SIZE, 8,
+        EGL_ALPHA_SIZE, 8,
+        EGL_DEPTH_SIZE, 16,
+        EGL_STENCIL_SIZE, 8,
+        EGL_NONE };
+
+static const int FBO_SIZE = 128;
+
+Renderer::Renderer(ANativeWindow* window, bool offscreen, int workload) :
+        mOffscreen(offscreen), mWindow(window), mEglDisplay(EGL_NO_DISPLAY),
+        mEglSurface(EGL_NO_SURFACE), mEglContext(EGL_NO_CONTEXT), mWorkload(workload) {
+}
+
+bool Renderer::setUp() {
+    SCOPED_TRACE();
+    mEglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+    if (EGL_NO_DISPLAY == mEglDisplay || EGL_SUCCESS != eglGetError()) {
+        return false;
+    }
+
+    EGLint major;
+    EGLint minor;
+    if (!eglInitialize(mEglDisplay, &major, &minor) || EGL_SUCCESS != eglGetError()) {
+        return false;
+    }
+
+    EGLint numConfigs = 0;
+    if (!eglChooseConfig(mEglDisplay, configAttribs, &mGlConfig, 1, &numConfigs)
+            || EGL_SUCCESS != eglGetError()) {
+        return false;
+    }
+
+    mEglSurface = eglCreateWindowSurface(mEglDisplay, mGlConfig, mWindow, NULL);
+    if (EGL_NO_SURFACE == mEglSurface || EGL_SUCCESS != eglGetError()) {
+        return false;
+    }
+
+    mEglContext = eglCreateContext(mEglDisplay, mGlConfig, EGL_NO_CONTEXT, contextAttribs);
+    if (EGL_NO_CONTEXT == mEglContext || EGL_SUCCESS != eglGetError()) {
+        return false;
+    }
+
+    if (!eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext)
+            || EGL_SUCCESS != eglGetError()) {
+        return false;
+    }
+
+    if (!eglQuerySurface(mEglDisplay, mEglSurface, EGL_WIDTH, &mWidth)
+            || EGL_SUCCESS != eglGetError()) {
+        return false;
+    }
+    if (!eglQuerySurface(mEglDisplay, mEglSurface, EGL_HEIGHT, &mHeight)
+            || EGL_SUCCESS != eglGetError()) {
+        return false;
+    }
+
+    if (mOffscreen) {
+        mFboWidth = FBO_SIZE;
+        mFboHeight = FBO_SIZE;
+
+        glGenFramebuffers(1, &mFboId);
+        glBindFramebuffer(GL_FRAMEBUFFER, mFboId);
+
+        glGenRenderbuffers(1, &mFboDepthId);
+        glBindRenderbuffer(GL_RENDERBUFFER, mFboDepthId);
+        glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, mFboWidth, mFboHeight);
+        glBindRenderbuffer(GL_RENDERBUFFER, 0);
+        glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
+                                  GL_RENDERBUFFER, mFboDepthId);
+
+        mFboTexId = GLUtils::genTexture(mFboWidth, mFboHeight, 0);
+        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mFboTexId, 0);
+
+        GLuint err = glGetError();
+        if (err != GL_NO_ERROR) {
+            ALOGE("GLError %d", err);
+            return false;
+        }
+
+        GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
+        if (status != GL_FRAMEBUFFER_COMPLETE) {
+            ALOGE("Framebuffer not complete: %d", status);
+            return false;
+        }
+        // Create fbo program.
+        mFboProgId = GLUtils::createProgram(&FBO_VERTEX, &FBO_FRAGMENT);
+        if (mFboProgId == 0) {
+            return false;
+        }
+        // Bind attributes.
+        mFboTexUniformHandle = glGetUniformLocation(mFboProgId, "u_Texture");
+        mFboXOffsetUniformHandle = glGetUniformLocation(mFboProgId, "u_XOffset");
+        mFboYOffsetUniformHandle = glGetUniformLocation(mFboProgId, "u_YOffset");
+        mFboPositionHandle = glGetAttribLocation(mFboProgId, "a_Position");
+        mFboTexCoordHandle = glGetAttribLocation(mFboProgId, "a_TexCoord");
+    } else {
+        mFboWidth = 0;
+        mFboHeight = 0;
+        mFboId = 0;
+        mFboDepthId = 0;
+        mFboTexId = 0;
+    }
+
+    GLuint err = glGetError();
+    if (err != GL_NO_ERROR) {
+        ALOGE("GLError %d in setUp", err);
+        return false;
+    }
+    return true;
+}
+
+bool Renderer::tearDown() {
+    SCOPED_TRACE();
+    if (mOffscreen) {
+        if (mFboId != 0) {
+            glDeleteFramebuffers(1, &mFboId);
+            mFboId = 0;
+        }
+        if (mFboDepthId != 0) {
+            glDeleteRenderbuffers(1, &mFboDepthId);
+            mFboDepthId = 0;
+        }
+        if (mFboTexId != 0) {
+            glDeleteTextures(1, &mFboTexId);
+            mFboTexId = 0;
+        }
+    }
+    GLuint err = glGetError();
+    if (err != GL_NO_ERROR) {
+        ALOGE("GLError %d in tearDown", err);
+        return false;
+    }
+    if (mEglContext != EGL_NO_CONTEXT) {
+        eglDestroyContext(mEglDisplay, mEglContext);
+        mEglContext = EGL_NO_CONTEXT;
+    }
+    if (mEglSurface != EGL_NO_SURFACE) {
+        eglDestroySurface(mEglDisplay, mEglSurface);
+        mEglSurface = EGL_NO_SURFACE;
+    }
+    if (mEglDisplay != EGL_NO_DISPLAY) {
+        eglMakeCurrent(mEglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+        eglTerminate(mEglDisplay);
+        mEglDisplay = EGL_NO_DISPLAY;
+    }
+
+    return EGL_SUCCESS == eglGetError();
+}
+
+bool Renderer::draw() {
+    SCOPED_TRACE();
+    if (!eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext)
+            || EGL_SUCCESS != eglGetError()) {
+        return false;
+    }
+
+    glBindFramebuffer(GL_FRAMEBUFFER, 0);
+    glViewport(0, 0, mWidth, mHeight);
+
+    if (mOffscreen) {
+        // Set the background clear color to black.
+        glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+        glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
+        for (int i = 0; i < OFFSCREEN_INNER_FRAMES; i++) {
+            // Switch to FBO and re-attach.
+            glBindFramebuffer(GL_FRAMEBUFFER, mFboId);
+            glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
+                                    GL_RENDERBUFFER, mFboDepthId);
+            glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                 GL_TEXTURE_2D, mFboTexId, 0);
+            glViewport(0, 0, mFboWidth, mFboHeight);
+
+            // Render workload.
+            drawWorkload();
+            glFlush();
+
+            // Switch back to display.
+            glBindFramebuffer(GL_FRAMEBUFFER, 0);
+            glViewport(0, 0, mWidth, mHeight);
+
+            // No culling of back faces
+            glDisable (GL_CULL_FACE);
+            // No depth testing
+            glDisable (GL_DEPTH_TEST);
+            // No blending
+            glDisable (GL_BLEND);
+
+            glUseProgram(mFboProgId);
+
+            // Set the texture.
+            glActiveTexture (GL_TEXTURE0);
+            glBindTexture(GL_TEXTURE_2D, mFboTexId);
+            glUniform1i(mFboTexUniformHandle, 0);
+
+            // Set the offsets
+            glUniform1f(mFboXOffsetUniformHandle, CENTER_GRID(i / OFFSCREEN_GRID_SIZE));
+            glUniform1f(mFboYOffsetUniformHandle, CENTER_GRID(i % OFFSCREEN_GRID_SIZE));
+
+            glEnableVertexAttribArray(mFboPositionHandle);
+            glEnableVertexAttribArray(mFboTexCoordHandle);
+            glVertexAttribPointer(mFboPositionHandle, 3, GL_FLOAT, false, 0, FBO_VERTICES);
+            glVertexAttribPointer(mFboTexCoordHandle, 2, GL_FLOAT, false, 0, FBO_TEX_COORDS);
+
+            // Render FBO to display.
+            glDrawArrays(GL_TRIANGLES, 0, FBO_NUM_VERTICES);
+        }
+    } else {
+        // Render workload.
+        drawWorkload();
+    }
+
+    GLuint err = glGetError();
+    if (err != GL_NO_ERROR) {
+        ALOGE("GLError %d in draw", err);
+        return false;
+    }
+
+    return eglSwapBuffers(mEglDisplay, mEglSurface);
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/Renderer.h b/suite/pts/deviceTests/opengl/jni/graphics/Renderer.h
new file mode 100644
index 0000000..caa1634
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/Renderer.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef RENDERER_H
+#define RENDERER_H
+
+#include <android/native_window.h>
+
+#include <EGL/egl.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+
+class Renderer {
+public:
+    Renderer(ANativeWindow* window, bool offscreen, int workload);
+    virtual bool setUp();
+    virtual bool tearDown();
+    bool draw();
+    virtual void drawWorkload() = 0;
+    virtual ~Renderer() {};
+    static const int OFFSCREEN_INNER_FRAMES = 100;
+    static const int OFFSCREEN_GRID_SIZE = 10;
+    bool mOffscreen;
+protected:
+    ANativeWindow* mWindow;
+    EGLDisplay mEglDisplay;
+    EGLSurface mEglSurface;
+    EGLContext mEglContext;
+    EGLConfig mGlConfig;
+    GLuint mProgramId;
+    EGLint mWidth;
+    EGLint mHeight;
+    int mWorkload;
+    int mFboWidth;// Frame buffer width
+    int mFboHeight;// Frame buffer height
+    GLuint mFboId;// Frame buffer id
+    GLuint mFboDepthId;// Depth buffer id
+    GLuint mFboTexId;// Frame buffer texture id
+    GLuint mFboProgId;// Frame buffer program id
+    GLuint mFboTexUniformHandle;// Frame buffer texture uniform handle
+    GLuint mFboXOffsetUniformHandle;// Frame buffer x offset uniform handle
+    GLuint mFboYOffsetUniformHandle;// Frame buffer y offset uniform handle
+    GLuint mFboPositionHandle;// Frame buffer position handle
+    GLuint mFboTexCoordHandle;// Frame buffer texture coordinate handle
+};
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/SceneGraphNode.cpp b/suite/pts/deviceTests/opengl/jni/graphics/SceneGraphNode.cpp
new file mode 100644
index 0000000..455ccd6
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/SceneGraphNode.cpp
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 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 "SceneGraphNode.h"
+
+SceneGraphNode::~SceneGraphNode() {
+    for (size_t i = 0; i < mChildren.size(); i++) {
+        delete mChildren[i];
+    }
+}
+
+void SceneGraphNode::addChild(SceneGraphNode* child) {
+    mChildren.add(child);
+}
+
+void SceneGraphNode::draw(Program& program, Matrix& model, Matrix& view, Matrix& projection) {
+    before(program, model, view, projection);
+    for (size_t i = 0; i < mChildren.size(); i++) {
+        mChildren[i]->draw(program, model, view, projection);
+    }
+    after(program, model, view, projection);
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/SceneGraphNode.h b/suite/pts/deviceTests/opengl/jni/graphics/SceneGraphNode.h
new file mode 100644
index 0000000..dce8fde
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/SceneGraphNode.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef SCENEGRAPHNODE_H
+#define SCENEGRAPHNODE_H
+
+#include <utils/Vector.h>
+#include "Matrix.h"
+#include "Program.h"
+
+class SceneGraphNode {
+public:
+    SceneGraphNode() {};
+    virtual ~SceneGraphNode();
+    void addChild(SceneGraphNode* child);
+protected:
+    virtual void before(Program& program, Matrix& model, Matrix& view, Matrix& projection) = 0;
+    virtual void after(Program& program, Matrix& model, Matrix& view, Matrix& projection) = 0;
+    void draw(Program& program, Matrix& model, Matrix& view, Matrix& projection);
+private:
+    android::Vector<SceneGraphNode*> mChildren;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/TexturedMeshNode.cpp b/suite/pts/deviceTests/opengl/jni/graphics/TexturedMeshNode.cpp
new file mode 100644
index 0000000..7da18af
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/TexturedMeshNode.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 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 "TexturedMeshNode.h"
+
+TexturedMeshNode::TexturedMeshNode(const Mesh* mesh, const GLuint textureId) :
+        MeshNode(mesh), mTextureId(textureId) {
+}
+
+void TexturedMeshNode::before(Program& program, Matrix& model, Matrix& view, Matrix& projection) {
+    int textureUniformHandle = glGetUniformLocation(program.mProgramId, "u_Texture");
+    int positionHandle = glGetAttribLocation(program.mProgramId, "a_Position");
+    int texCoordHandle = glGetAttribLocation(program.mProgramId, "a_TexCoordinate");
+
+    // Set the texture.
+    glActiveTexture(GL_TEXTURE0);
+    glBindTexture(GL_TEXTURE_2D, mTextureId);
+    glUniform1i(textureUniformHandle, 0);
+
+    glEnableVertexAttribArray(positionHandle);
+    glVertexAttribPointer(positionHandle, 3, GL_FLOAT, false, 0, mMesh->mVertices);
+    glEnableVertexAttribArray(texCoordHandle);
+    glVertexAttribPointer(texCoordHandle, 2, GL_FLOAT, false, 0, mMesh->mTexCoords);
+
+    glDrawArrays(GL_TRIANGLES, 0, mMesh->mNumVertices);
+}
+
+void TexturedMeshNode::after(Program& program, Matrix& model, Matrix& view, Matrix& projection) {
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/TexturedMeshNode.h b/suite/pts/deviceTests/opengl/jni/graphics/TexturedMeshNode.h
new file mode 100644
index 0000000..fff95aa
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/TexturedMeshNode.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 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.
+ */
+
+#ifndef TEXTUREDMESHNODE_H
+#define TEXTUREDMESHNODE_H
+
+#include "Matrix.h"
+#include "Mesh.h"
+#include "MeshNode.h"
+#include "Program.h"
+
+class TexturedMeshNode: public MeshNode {
+public:
+    TexturedMeshNode(const Mesh* mesh, const GLuint textureId);
+    virtual ~TexturedMeshNode() {};
+protected:
+    virtual void before(Program& program, Matrix& model, Matrix& view, Matrix& projection);
+    virtual void after(Program& program, Matrix& model, Matrix& view, Matrix& projection);
+    const GLuint mTextureId;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/TransformationNode.cpp b/suite/pts/deviceTests/opengl/jni/graphics/TransformationNode.cpp
new file mode 100644
index 0000000..3cfa55b
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/TransformationNode.cpp
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 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 "TransformationNode.h"
+
+TransformationNode::TransformationNode(Matrix* matrix) :
+        mMatrix(matrix) {
+}
+
+TransformationNode::~TransformationNode() {
+    delete mMatrix;
+}
+
+void TransformationNode::before(Program& program, Matrix& model, Matrix& view,
+        Matrix& projection) {
+    // Save the current Matrix.
+    mSavedModelMatrix.loadWith(model);
+    // Apply transformation.
+    model.multiply(*mMatrix, mSavedModelMatrix);
+}
+
+void TransformationNode::after(Program& program, Matrix& model, Matrix& view,
+        Matrix& projection) {
+    // Restore original Matrix.
+    model.loadWith(mSavedModelMatrix);
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/TransformationNode.h b/suite/pts/deviceTests/opengl/jni/graphics/TransformationNode.h
new file mode 100644
index 0000000..04ba5c2
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/TransformationNode.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef TRANSFORMATIONNODE_H
+#define TRANSFORMATIONNODE_H
+
+#include "Matrix.h"
+#include "Program.h"
+#include "SceneGraphNode.h"
+
+class TransformationNode: public SceneGraphNode {
+public:
+    TransformationNode(Matrix* matrix);
+    virtual ~TransformationNode();
+protected:
+    virtual void before(Program& program, Matrix& model, Matrix& view,
+            Matrix& projection);
+    virtual void after(Program& program, Matrix& model, Matrix& view,
+            Matrix& projection);
+private:
+    Matrix mSavedModelMatrix;
+    Matrix* mMatrix;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/Vector2D.cpp b/suite/pts/deviceTests/opengl/jni/graphics/Vector2D.cpp
new file mode 100644
index 0000000..d4a8c18
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/Vector2D.cpp
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 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 "Vector2D.h"
+
+#include <math.h>
+
+Vector2D::Vector2D() :
+        mX(0), mY(0) {
+}
+
+Vector2D::Vector2D(float x, float y) :
+        mX(x), mY(y) {
+}
+
+Vector2D Vector2D::copy() {
+    Vector2D v(mX, mY);
+    return v;
+}
+
+void Vector2D::add(const Vector2D& v) {
+    mX += v.mX;
+    mY += v.mY;
+}
+
+void Vector2D::sub(const Vector2D& v) {
+    mX -= v.mX;
+    mY -= v.mY;
+}
+
+void Vector2D::scale(float s) {
+    mX *= s;
+    mY *= s;
+}
+
+float Vector2D::distance(const Vector2D& v) {
+    float dx = mX - v.mX;
+    float dy = mY - v.mY;
+    return (float) sqrt(dx * dx + dy * dy);
+}
+
+void Vector2D::normalize() {
+    float m = magnitude();
+    if (m > 0) {
+        scale(1 / m);
+    }
+}
+
+void Vector2D::limit(float max) {
+    if (magnitude() > max) {
+        normalize();
+        scale(max);
+    }
+}
+
+float Vector2D::magnitude() {
+    return (float) sqrt(mX * mX + mY * mY);
+}
diff --git a/suite/pts/deviceTests/opengl/jni/graphics/Vector2D.h b/suite/pts/deviceTests/opengl/jni/graphics/Vector2D.h
new file mode 100644
index 0000000..5110975
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/graphics/Vector2D.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef VECTOR2D_H
+#define VECTOR2D_H
+
+class Vector2D {
+public:
+    Vector2D();
+    Vector2D(float x, float y);
+    Vector2D copy();
+    void normalize();
+    void add(const Vector2D& v);
+    void sub(const Vector2D& v);
+    void scale(float s);
+    void limit(float max);
+    void limit(float maxX, float maxY);
+    float magnitude();
+    float distance(const Vector2D& v);
+    float mX;
+    float mY;
+};
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/primitive/GLPrimitive.cpp b/suite/pts/deviceTests/opengl/jni/primitive/GLPrimitive.cpp
new file mode 100644
index 0000000..0891830
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/primitive/GLPrimitive.cpp
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 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 <jni.h>
+
+#include <stdlib.h>
+
+#include <android/native_window.h>
+#include <android/native_window_jni.h>
+
+#include <graphics/GLUtils.h>
+#include <graphics/Renderer.h>
+
+#include "fullpipeline/FullPipelineRenderer.h"
+#include "pixeloutput/PixelOutputRenderer.h"
+#include "shaderperf/ShaderPerfRenderer.h"
+#include "contextswitch/ContextSwitchRenderer.h"
+
+// Holds the current benchmark's renderer.
+Renderer* gRenderer = NULL;
+
+extern "C" JNIEXPORT jboolean JNICALL
+Java_com_android_pts_opengl_primitive_GLPrimitiveActivity_startBenchmark(
+        JNIEnv* env, jclass clazz, jint numFrames, jdoubleArray frameTimes) {
+    if (gRenderer == NULL) {
+        return false;
+    }
+
+    // Sets up the renderer.
+    bool success = gRenderer->setUp();
+
+    // Records the start time.
+    double start = GLUtils::currentTimeMillis();
+
+    // Offscreen renders 100 tiles per frame so reduce the number of frames to render.
+    if (gRenderer->mOffscreen) {
+        numFrames /= Renderer::OFFSCREEN_INNER_FRAMES;
+    }
+
+    // Draw off the screen.
+    for (int i = 0; i < numFrames && success; i++) {
+        // Draw a frame.
+        success = gRenderer->draw();
+    }
+
+    // Records the end time.
+    double end = GLUtils::currentTimeMillis();
+
+    // Sets the times in the Java array.
+    double times[] = {start, end};
+    env->SetDoubleArrayRegion(frameTimes, 0, 2, times);
+
+    // Tears down and deletes the renderer.
+    success = gRenderer->tearDown() && success;
+    delete gRenderer;
+    gRenderer = NULL;
+    return success;
+}
+
+// The following functions create the renderers for the various benchmarks.
+extern "C" JNIEXPORT void JNICALL
+Java_com_android_pts_opengl_primitive_GLPrimitiveActivity_setupFullPipelineBenchmark(
+        JNIEnv* env, jclass clazz, jobject surface, jboolean offscreen, jint workload) {
+    gRenderer = new FullPipelineRenderer(
+            ANativeWindow_fromSurface(env, surface), offscreen, workload);
+}
+
+extern "C" JNIEXPORT void JNICALL
+Java_com_android_pts_opengl_primitive_GLPrimitiveActivity_setupPixelOutputBenchmark(
+        JNIEnv* env, jclass clazz, jobject surface, jboolean offscreen, jint workload) {
+    gRenderer = new PixelOutputRenderer(
+            ANativeWindow_fromSurface(env, surface), offscreen, workload);
+}
+
+extern "C" JNIEXPORT void JNICALL
+Java_com_android_pts_opengl_primitive_GLPrimitiveActivity_setupShaderPerfBenchmark(
+        JNIEnv* env, jclass clazz, jobject surface, jboolean offscreen, jint workload) {
+    gRenderer = new ShaderPerfRenderer(
+            ANativeWindow_fromSurface(env, surface), offscreen, workload);
+}
+
+extern "C" JNIEXPORT void JNICALL
+Java_com_android_pts_opengl_primitive_GLPrimitiveActivity_setupContextSwitchBenchmark(
+        JNIEnv* env, jclass clazz, jobject surface, jboolean offscreen, jint workload) {
+    if (workload <= 8) {
+        // This test uses 8 iterations, so workload can't be more than 8.
+        gRenderer = new ContextSwitchRenderer(
+                ANativeWindow_fromSurface(env, surface), offscreen, workload);
+    }
+}
diff --git a/suite/pts/deviceTests/opengl/jni/primitive/contextswitch/ContextSwitchRenderer.cpp b/suite/pts/deviceTests/opengl/jni/primitive/contextswitch/ContextSwitchRenderer.cpp
new file mode 100644
index 0000000..232cd9d
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/primitive/contextswitch/ContextSwitchRenderer.cpp
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) 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 <android/native_window.h>
+
+#include <stdlib.h>
+
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+
+#include "ContextSwitchRenderer.h"
+#include <graphics/GLUtils.h>
+
+#define LOG_TAG "PTS_OPENGL"
+#define LOG_NDEBUG 0
+#include <utils/Log.h>
+#include <Trace.h>
+
+static const EGLint contextAttribs[] = {
+        EGL_CONTEXT_CLIENT_VERSION, 2,
+        EGL_NONE };
+
+static const int NUM_WORKER_CONTEXTS = 7;
+
+static const int CS_TEXTURE_SIZE = 64;
+
+static const int CS_NUM_VERTICES = 6;
+
+static const float CS_VERTICES[CS_NUM_VERTICES * 3] = {
+        0.1f, 0.1f, -0.1f,
+        -0.1f, 0.1f, -0.1f,
+        -0.1f, -0.1f, -0.1f,
+        -0.1f, -0.1f, -0.1f,
+        0.1f, -0.1f, -0.1f,
+        0.1f, 0.1f, -0.1f };
+
+static const float CS_TEX_COORDS[CS_NUM_VERTICES * 2] = {
+        1.0f, 1.0f,
+        0.0f, 1.0f,
+        0.0f, 0.0f,
+        0.0f, 0.0f,
+        1.0f, 0.0f,
+        1.0f, 1.0f };
+
+static const char* CS_VERTEX =
+        "attribute vec4 a_Position;"
+        "attribute vec2 a_TexCoord;"
+        "uniform float u_Translate;"
+        "varying vec2 v_TexCoord;"
+        "void main() {"
+        "  v_TexCoord = a_TexCoord;"
+        "  gl_Position.x = a_Position.x + u_Translate;"
+        "  gl_Position.yzw = a_Position.yzw;"
+        "}";
+
+static const char* CS_FRAGMENT =
+        "precision mediump float;"
+        "uniform sampler2D u_Texture;"
+        "varying vec2 v_TexCoord;"
+        "void main() {"
+        "  gl_FragColor = texture2D(u_Texture, v_TexCoord);"
+        "}";
+
+ContextSwitchRenderer::ContextSwitchRenderer(ANativeWindow* window, bool offscreen, int workload) :
+        Renderer(window, offscreen, workload), mContexts(NULL) {
+}
+
+bool ContextSwitchRenderer::setUp() {
+    SCOPED_TRACE();
+    if (!Renderer::setUp()) {
+        return false;
+    }
+
+    // Setup texture.
+    mTextureId = GLUtils::genTexture(CS_TEXTURE_SIZE, CS_TEXTURE_SIZE, GLUtils::RANDOM_FILL);
+    if (mTextureId == 0) {
+        return false;
+    }
+
+    // Create program.
+    mProgramId = GLUtils::createProgram(&CS_VERTEX, &CS_FRAGMENT);
+    if (mProgramId == 0) {
+        return false;
+    }
+    // Bind attributes.
+    mTextureUniformHandle = glGetUniformLocation(mProgramId, "u_Texture");
+    mTranslateUniformHandle = glGetUniformLocation(mProgramId, "u_Translate");
+    mPositionHandle = glGetAttribLocation(mProgramId, "a_Position");
+    mTexCoordHandle = glGetAttribLocation(mProgramId, "a_TexCoord");
+
+    mContexts = new EGLContext[NUM_WORKER_CONTEXTS];
+    mFboIds = new GLuint[NUM_WORKER_CONTEXTS];
+    for (int i = 0; i < NUM_WORKER_CONTEXTS; i++) {
+        // Create the contexts, they share data with the main one.
+        mContexts[i] = eglCreateContext(mEglDisplay, mGlConfig, mEglContext, contextAttribs);
+        if (EGL_NO_CONTEXT == mContexts[i] || EGL_SUCCESS != eglGetError()) {
+            return false;
+        }
+
+        if (!eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mContexts[i])
+                || EGL_SUCCESS != eglGetError()) {
+            return false;
+        }
+        if (mOffscreen) {
+            // FBOs are not shared across contexts, textures and renderbuffers are though.
+            glGenFramebuffers(1, &mFboIds[i]);
+            glBindFramebuffer(GL_FRAMEBUFFER, mFboIds[i]);
+
+            glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
+                                      GL_RENDERBUFFER, mFboDepthId);
+
+            glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                   GL_TEXTURE_2D, mFboTexId, 0);
+            GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
+            if (status != GL_FRAMEBUFFER_COMPLETE) {
+                ALOGE("Framebuffer not complete: %d", status);
+                return false;
+            }
+        }
+    }
+    return true;
+}
+
+bool ContextSwitchRenderer::tearDown() {
+    SCOPED_TRACE();
+    if (mContexts) {
+        // Destroy the contexts, the main one will be handled by Renderer::tearDown().
+        for (int i = 0; i < NUM_WORKER_CONTEXTS; i++) {
+            if (mOffscreen) {
+                if (mFboIds[i] != 0) {
+                    eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mContexts[i]);
+                    glDeleteFramebuffers(1, &mFboIds[i]);
+                    mFboIds[i] = 0;
+                }
+            }
+            eglDestroyContext(mEglDisplay, mContexts[i]);
+        }
+        delete[] mContexts;
+    }
+    eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext);
+    if (mTextureId != 0) {
+        glDeleteTextures(1, &mTextureId);
+        mTextureId = 0;
+    }
+    if (!Renderer::tearDown()) {
+        return false;
+    }
+    return true;
+}
+
+void ContextSwitchRenderer::drawWorkload() {
+    SCOPED_TRACE();
+    // Set the background clear color to black.
+    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
+    // No culling of back faces
+    glDisable(GL_CULL_FACE);
+    // No depth testing
+    glDisable(GL_DEPTH_TEST);
+
+    EGLSyncKHR fence = eglCreateSyncKHR(mEglDisplay, EGL_SYNC_FENCE_KHR, NULL);
+
+    const int TOTAL_NUM_CONTEXTS = NUM_WORKER_CONTEXTS + 1;
+    const float TRANSLATION = 0.9f - (TOTAL_NUM_CONTEXTS * 0.2f);
+    for (int i = 0; i < TOTAL_NUM_CONTEXTS; i++) {
+        eglWaitSyncKHR(mEglDisplay, fence, 0);
+        eglDestroySyncKHR(mEglDisplay, fence);
+        glUseProgram(mProgramId);
+
+        // Set the texture.
+        glActiveTexture (GL_TEXTURE0);
+        glBindTexture(GL_TEXTURE_2D, mTextureId);
+        glUniform1i(mTextureUniformHandle, 0);
+
+        // Set the x translate.
+        glUniform1f(mTranslateUniformHandle, (i * 0.2f) + TRANSLATION);
+
+        glEnableVertexAttribArray(mPositionHandle);
+        glEnableVertexAttribArray(mTexCoordHandle);
+        glVertexAttribPointer(mPositionHandle, 3, GL_FLOAT, false, 0, CS_VERTICES);
+        glVertexAttribPointer(mTexCoordHandle, 2, GL_FLOAT, false, 0, CS_TEX_COORDS);
+
+        glDrawArrays(GL_TRIANGLES, 0, CS_NUM_VERTICES);
+        fence = eglCreateSyncKHR(mEglDisplay, EGL_SYNC_FENCE_KHR, NULL);
+
+        // Switch to next context.
+        if (i < (mWorkload - 1)) {
+            eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mContexts[i]);
+            // Switch to FBO and re-attach.
+            if (mOffscreen) {
+                glBindFramebuffer(GL_FRAMEBUFFER, mFboIds[i]);
+                glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
+                                        GL_RENDERBUFFER, mFboDepthId);
+                glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                                     GL_TEXTURE_2D, mFboTexId, 0);
+                glViewport(0, 0, mFboWidth, mFboHeight);
+            }
+        }
+        GLuint err = glGetError();
+        if (err != GL_NO_ERROR) {
+            ALOGE("GLError %d in drawWorkload", err);
+            break;
+        }
+    }
+
+    // Switch back to the main context.
+    eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext);
+    if (mOffscreen) {
+        glBindFramebuffer(GL_FRAMEBUFFER, mFboId);
+        glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
+                                GL_RENDERBUFFER, mFboDepthId);
+        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                             GL_TEXTURE_2D, mFboTexId, 0);
+        glViewport(0, 0, mFboWidth, mFboHeight);
+    }
+}
diff --git a/suite/pts/deviceTests/opengl/jni/primitive/contextswitch/ContextSwitchRenderer.h b/suite/pts/deviceTests/opengl/jni/primitive/contextswitch/ContextSwitchRenderer.h
new file mode 100644
index 0000000..51a4376
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/primitive/contextswitch/ContextSwitchRenderer.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef CONTEXTSWITCHRENDERER_H
+#define CONTEXTSWITCHRENDERER_H
+
+#include <graphics/Renderer.h>
+
+class ContextSwitchRenderer: public Renderer {
+public:
+    ContextSwitchRenderer(ANativeWindow* window, bool offscreen, int workload);
+    virtual ~ContextSwitchRenderer() {};
+    bool setUp();
+    bool tearDown();
+    void drawWorkload();
+private:
+    EGLContext* mContexts;
+    GLuint* mFboIds;
+    GLuint mTextureId;
+    GLuint mTextureUniformHandle;
+    GLuint mTranslateUniformHandle;
+    GLuint mPositionHandle;
+    GLuint mTexCoordHandle;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/primitive/fullpipeline/FullPipelineRenderer.cpp b/suite/pts/deviceTests/opengl/jni/primitive/fullpipeline/FullPipelineRenderer.cpp
new file mode 100644
index 0000000..97462b5
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/primitive/fullpipeline/FullPipelineRenderer.cpp
@@ -0,0 +1,205 @@
+/*
+ * Copyright (C) 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 <EGL/egl.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+
+#include "FullPipelineRenderer.h"
+
+#include <graphics/PerspectiveMeshNode.h>
+#include <graphics/GLUtils.h>
+#include <graphics/TransformationNode.h>
+
+#include <Trace.h>
+
+static const int FP_NUM_VERTICES = 6;
+
+static const float FP_VERTICES[FP_NUM_VERTICES * 3] = {
+        1.0f, 1.0f, 0.0f,
+        0.0f, 1.0f, 0.0f,
+        0.0f, 0.0f, 0.0f,
+        0.0f, 0.0f, 0.0f,
+        1.0f, 0.0f, 0.0f,
+        1.0f, 1.0f, 0.0f };
+
+static const float FP_NORMALS[FP_NUM_VERTICES * 3] = {
+        0.0f, 0.0f, 1.0f,
+        0.0f, 0.0f, 1.0f,
+        0.0f, 0.0f, 1.0f,
+        0.0f, 0.0f, 1.0f,
+        0.0f, 0.0f, 1.0f,
+        0.0f, 0.0f, 1.0f };
+
+static const float FP_TEX_COORDS[FP_NUM_VERTICES * 2] = {
+        1.0f, 1.0f,
+        0.0f, 1.0f,
+        0.0f, 0.0f,
+        0.0f, 0.0f,
+        1.0f, 0.0f,
+        1.0f, 1.0f };
+
+static const char* FP_VERTEX =
+        "uniform mat4 u_MVPMatrix;"
+        "uniform mat4 u_MVMatrix;"
+        "attribute vec4 a_Position;"
+        "attribute vec3 a_Normal;"
+        "attribute vec2 a_TexCoordinate;"
+        "varying vec3 v_Position;"
+        "varying vec3 v_Normal;"
+        "varying vec2 v_TexCoordinate;"
+        "void main() {\n"
+        "  // Transform the vertex into eye space.\n"
+        "  v_Position = vec3(u_MVMatrix * a_Position);\n"
+        "  // Pass through the texture coordinate.\n"
+        "  v_TexCoordinate = a_TexCoordinate;\n"
+        "  // Transform the normal\'s orientation into eye space.\n"
+        "  v_Normal = vec3(u_MVMatrix * vec4(a_Normal, 0.0));\n"
+        "  // Multiply to get the final point in normalized screen coordinates.\n"
+        "  gl_Position = u_MVPMatrix * a_Position;\n"
+        "}";
+
+static const char* FP_FRAGMENT =
+        "precision mediump float;"
+        "uniform vec3 u_LightPos;"
+        "uniform sampler2D u_Texture;"
+        "varying vec3 v_Position;"
+        "varying vec3 v_Normal;"
+        "varying vec2 v_TexCoordinate;"
+        "void main() {\n"
+        "  // Will be used for attenuation.\n"
+        "  float distance = length(u_LightPos - v_Position);\n"
+        "  // Get a lighting direction vector from the light to the vertex.\n"
+        "  vec3 lightVector = normalize(u_LightPos - v_Position);\n"
+        "  // Calculate the dot product of the light vector and vertex normal.\n"
+        "  float diffuse = max(dot(v_Normal, lightVector), 0.0);\n"
+        "  // Add attenuation.\n"
+        "  diffuse = diffuse * (1.0 / (1.0 + (0.01 * distance)));\n"
+        "  // Add ambient lighting\n"
+        "  diffuse = diffuse + 0.25;\n"
+        "  // Multiply the diffuse illumination and texture to get final output color.\n"
+        "  gl_FragColor = (diffuse * texture2D(u_Texture, v_TexCoordinate));\n"
+        "}";
+
+FullPipelineRenderer::FullPipelineRenderer(ANativeWindow* window, bool offscreen, int workload) :
+        Renderer(window, offscreen, workload), mProgram(NULL), mSceneGraph(NULL),
+        mModelMatrix(NULL), mViewMatrix(NULL), mProjectionMatrix(NULL), mMesh(NULL),
+        mTextureId(0) {
+}
+
+bool FullPipelineRenderer::setUp() {
+    SCOPED_TRACE();
+    if (!Renderer::setUp()) {
+        return false;
+    }
+
+    mProgramId = GLUtils::createProgram(&FP_VERTEX, &FP_FRAGMENT);
+    if (mProgramId == 0) {
+        return false;
+    }
+    mProgram = new PerspectiveProgram(mProgramId);
+
+    mModelMatrix = new Matrix();
+
+    // Position the eye in front of the origin.
+    float eyeX = 0.0f;
+    float eyeY = 0.0f;
+    float eyeZ = 1.5f;
+
+    // We are looking at the origin
+    float centerX = 0.0f;
+    float centerY = 0.0f;
+    float centerZ = 0.0f;
+
+    // Set our up vector.
+    float upX = 0.0f;
+    float upY = 1.0f;
+    float upZ = 0.0f;
+
+    // Set the view matrix.
+    mViewMatrix = Matrix::newLookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);
+
+    // Create a new perspective projection matrix. The height will stay the same
+    // while the width will vary as per aspect ratio.
+    float ratio = (float) mWidth / mHeight;
+    float left = -ratio;
+    float right = ratio;
+    float bottom = -1.0f;
+    float top = 1.0f;
+    float near = 1.0f;
+    float far = 2.0f;
+
+    mProjectionMatrix = Matrix::newFrustum(left, right, bottom, top, near, far);
+
+    // Setup texture.
+    mTextureId = GLUtils::genTexture(mWidth, mHeight, GLUtils::RANDOM_FILL);
+    if (mTextureId == 0) {
+        return false;
+    }
+
+    float count = mWorkload * mWorkload;
+    float middle = count / 2.0f;
+    float scale = 2.0f / count;
+
+    mMesh = new Mesh(FP_VERTICES, FP_NORMALS, FP_TEX_COORDS, FP_NUM_VERTICES);
+    mSceneGraph = new ProgramNode(*mProgram);
+
+    for (int i = 0; i < count; i++) {
+        for (int j = 0; j < count; j++) {
+            Matrix* transformMatrix = Matrix::newScale(scale, scale, scale);
+            transformMatrix->translate(i - middle, j - middle, 0.0f);
+            TransformationNode* transformNode = new TransformationNode(transformMatrix);
+            mSceneGraph->addChild(transformNode);
+            PerspectiveMeshNode* meshNode = new PerspectiveMeshNode(mMesh, mTextureId);
+            transformNode->addChild(meshNode);
+        }
+    }
+    return true;
+}
+
+bool FullPipelineRenderer::tearDown() {
+    SCOPED_TRACE();
+    if (mTextureId != 0) {
+        glDeleteTextures(1, &mTextureId);
+        mTextureId = 0;
+    }
+    if (!Renderer::tearDown()) {
+        return false;
+    }
+    delete mModelMatrix;
+    mModelMatrix = NULL;
+    delete mViewMatrix;
+    mViewMatrix = NULL;
+    delete mProjectionMatrix;
+    mProjectionMatrix = NULL;
+    delete mProgram;
+    mProgram = NULL;
+    delete mSceneGraph;
+    mSceneGraph = NULL;
+    delete mMesh;
+    mMesh = NULL;
+    return true;
+}
+
+void FullPipelineRenderer::drawWorkload() {
+    SCOPED_TRACE();
+    // Set the background clear color to black.
+    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+    // Use culling to remove back faces.
+    glEnable(GL_CULL_FACE);
+    // Use depth testing.
+    glEnable(GL_DEPTH_TEST);
+    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
+    mModelMatrix->identity();
+    mSceneGraph->drawProgram(*mModelMatrix, *mViewMatrix, *mProjectionMatrix);
+}
diff --git a/suite/pts/deviceTests/opengl/jni/primitive/fullpipeline/FullPipelineRenderer.h b/suite/pts/deviceTests/opengl/jni/primitive/fullpipeline/FullPipelineRenderer.h
new file mode 100644
index 0000000..84616b4
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/primitive/fullpipeline/FullPipelineRenderer.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef FULLPIPELINERENDERER_H
+#define FULLPIPELINERENDERER_H
+
+#include <graphics/PerspectiveProgram.h>
+#include <graphics/Matrix.h>
+#include <graphics/Mesh.h>
+#include <graphics/Renderer.h>
+#include <graphics/ProgramNode.h>
+
+class FullPipelineRenderer: public Renderer {
+public:
+    FullPipelineRenderer(ANativeWindow* window, bool offscreen, int workload);
+    virtual ~FullPipelineRenderer() {};
+    bool setUp();
+    bool tearDown();
+    void drawWorkload();
+private:
+    Program* mProgram;
+    ProgramNode* mSceneGraph;
+    Matrix* mModelMatrix;
+    Matrix* mViewMatrix;
+    Matrix* mProjectionMatrix;
+    Mesh* mMesh;
+    GLuint mTextureId;
+};
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/primitive/pixeloutput/PixelOutputRenderer.cpp b/suite/pts/deviceTests/opengl/jni/primitive/pixeloutput/PixelOutputRenderer.cpp
new file mode 100644
index 0000000..287ebfb
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/primitive/pixeloutput/PixelOutputRenderer.cpp
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 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 "PixelOutputRenderer.h"
+#include <graphics/GLUtils.h>
+
+#include <Trace.h>
+
+static const int PO_NUM_VERTICES = 6;
+
+static const float PO_VERTICES[PO_NUM_VERTICES * 3] = {
+        1.0f, 1.0f, -1.0f,
+        -1.0f, 1.0f, -1.0f,
+        -1.0f, -1.0f, -1.0f,
+        -1.0f, -1.0f, -1.0f,
+        1.0f, -1.0f, -1.0f,
+        1.0f, 1.0f, -1.0f };
+static const float PO_TEX_COORDS[PO_NUM_VERTICES * 2] = {
+        1.0f, 1.0f,
+        0.0f, 1.0f,
+        0.0f, 0.0f,
+        0.0f, 0.0f,
+        1.0f, 0.0f,
+        1.0f, 1.0f };
+
+static const char* PO_VERTEX =
+        "attribute vec4 a_Position;"
+        "attribute vec2 a_TexCoord;"
+        "varying vec2 v_TexCoord;"
+        "void main() {"
+        "  v_TexCoord = a_TexCoord;"
+        "  gl_Position = a_Position;"
+        "}";
+
+static const char* PO_FRAGMENT =
+        "precision mediump float;"
+        "uniform sampler2D u_Texture;"
+        "varying vec2 v_TexCoord;"
+        "void main() {"
+        "  gl_FragColor = texture2D(u_Texture, v_TexCoord);"
+        "}";
+
+PixelOutputRenderer::PixelOutputRenderer(ANativeWindow* window, bool offscreen, int workload) :
+        Renderer(window, offscreen, workload) {
+}
+
+bool PixelOutputRenderer::setUp() {
+    SCOPED_TRACE();
+    if (!Renderer::setUp()) {
+        return false;
+    }
+
+    // Create program.
+    mProgramId = GLUtils::createProgram(&PO_VERTEX, &PO_FRAGMENT);
+    if (mProgramId == 0) {
+        return false;
+    }
+    // Bind attributes.
+    mTextureUniformHandle = glGetUniformLocation(mProgramId, "u_Texture");
+    mPositionHandle = glGetAttribLocation(mProgramId, "a_Position");
+    mTexCoordHandle = glGetAttribLocation(mProgramId, "a_TexCoord");
+
+    // Setup texture.
+    mTextureId = GLUtils::genTexture(mWidth, mHeight, GLUtils::RANDOM_FILL);
+    if (mTextureId == 0) {
+        return false;
+    }
+    return true;
+}
+
+bool PixelOutputRenderer::tearDown() {
+    SCOPED_TRACE();
+    if (mTextureId != 0) {
+        glDeleteTextures(1, &mTextureId);
+        mTextureId = 0;
+    }
+    if (!Renderer::tearDown()) {
+        return false;
+    }
+    return true;
+}
+
+void PixelOutputRenderer::drawWorkload() {
+    SCOPED_TRACE();
+    glUseProgram(mProgramId);
+    // Set the background clear color to black.
+    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
+
+    // No culling of back faces
+    glDisable(GL_CULL_FACE);
+
+    // No depth testing
+    glDisable(GL_DEPTH_TEST);
+
+    // Enable blending
+    glEnable(GL_BLEND);
+    glBlendFunc(GL_ONE, GL_ONE);
+
+    glActiveTexture(GL_TEXTURE0);
+    // Bind the texture to this unit.
+    glBindTexture(GL_TEXTURE_2D, mTextureId);
+    // Tell the texture uniform sampler to use this texture in the shader by binding to texture
+    // unit 0.
+    glUniform1i(mTextureUniformHandle, 0);
+
+    glEnableVertexAttribArray(mPositionHandle);
+    glEnableVertexAttribArray(mTexCoordHandle);
+    glVertexAttribPointer(mPositionHandle, 3, GL_FLOAT, false, 0, PO_VERTICES);
+    glVertexAttribPointer(mTexCoordHandle, 2, GL_FLOAT, false, 0, PO_TEX_COORDS);
+
+    for (int i = 0; i < mWorkload; i++) {
+        glDrawArrays(GL_TRIANGLES, 0, PO_NUM_VERTICES);
+    }
+}
diff --git a/suite/pts/deviceTests/opengl/jni/primitive/pixeloutput/PixelOutputRenderer.h b/suite/pts/deviceTests/opengl/jni/primitive/pixeloutput/PixelOutputRenderer.h
new file mode 100644
index 0000000..e6b5692
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/primitive/pixeloutput/PixelOutputRenderer.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef PIXELOUTPUTRENDERER_H
+#define PIXELOUTPUTRENDERER_H
+
+#include <graphics/Renderer.h>
+
+class PixelOutputRenderer: public Renderer {
+public:
+    PixelOutputRenderer(ANativeWindow* window, bool offscreen, int workload);
+    virtual ~PixelOutputRenderer() {};
+    bool setUp();
+    bool tearDown();
+    void drawWorkload();
+private:
+    GLuint mTextureId;
+    GLuint mTextureUniformHandle;
+    GLuint mPositionHandle;
+    GLuint mTexCoordHandle;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/primitive/shaderperf/ShaderPerfRenderer.cpp b/suite/pts/deviceTests/opengl/jni/primitive/shaderperf/ShaderPerfRenderer.cpp
new file mode 100644
index 0000000..1cbc839
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/primitive/shaderperf/ShaderPerfRenderer.cpp
@@ -0,0 +1,169 @@
+/*
+ * Copyright (C) 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 "ShaderPerfRenderer.h"
+#include <graphics/GLUtils.h>
+
+#include <math.h>
+
+#include <Trace.h>
+
+static const float GOLDEN_RATIO = (1.0f + sqrt(5.0f)) / 2.0f;
+
+static const int SP_NUM_VERTICES = 6;
+
+static const float SP_VERTICES[SP_NUM_VERTICES * 3] = {
+        1.0f, 1.0f, -1.0f,
+        -1.0f, 1.0f, -1.0f,
+        -1.0f, -1.0f, -1.0f,
+        -1.0f, -1.0f, -1.0f,
+        1.0f, -1.0f, -1.0f,
+        1.0f, 1.0f, -1.0f };
+
+static const float SP_TEX_COORDS[SP_NUM_VERTICES * 2] = {
+        1.0f, 1.0f,
+        0.0f, 1.0f,
+        0.0f, 0.0f,
+        0.0f, 0.0f,
+        1.0f, 0.0f,
+        1.0f, 1.0f };
+
+static const char* SP_VERTEX =
+        "attribute vec4 a_Position;"
+        "attribute vec2 a_TexCoord;"
+        "varying vec2 v_TexCoord;"
+        "void main() {"
+        "  v_TexCoord = a_TexCoord;"
+        "  gl_Position = a_Position;"
+        "}";
+
+static const char* SP_FRAGMENT_1 =
+        "precision mediump float;"
+        "uniform vec2 u_Seed;"
+        "uniform sampler2D u_Texture;"
+        "varying vec2 v_TexCoord;"
+        "void main() {"
+        "  int count = ";
+
+//Add workload here
+
+static const char* SP_FRAGMENT_2 =
+        " * 4;"//workload * 4 (4 is a tweaking number, bigger = more work)
+        "  vec2 z;"
+        "  z.x = 3.0 * (v_TexCoord.x - 0.5);"
+        "  z.y = 2.0 * (v_TexCoord.y - 0.5);"
+        "  float u = 0.0;"
+        "  for (int i = 0; i < count; i++) {"
+        "    float x = (z.x * z.x - z.y * z.y) + u_Seed.x;"
+        "    float y = (z.y * z.x + z.x * z.y) + u_Seed.y;"
+        "    if (((x * x + y * y) > 4.0) && (u == 0.0)) {"
+        "      u = float(i) / float(count);"
+        "    }"
+        "    z.x = x;"
+        "    z.y = y;"
+        "  }"
+        "  gl_FragColor = texture2D(u_Texture, vec2(u, 0.0));"
+        "}";
+
+// Copies the source array from 0 up to and including the '\0' character to the
+// destination array starting from the given start position. Unlike strcpy, this
+// returns the number of characters which were copied.
+static int charCopy(const char* source, char* dest, int destStart) {
+    int srcAddr = 0;
+    int destAddr = destStart;
+    char current;
+    do {
+        current = source[srcAddr];
+        dest[destAddr] = current;
+        srcAddr++;
+        destAddr++;
+    } while (current != '\0');
+    return destAddr - destStart;
+}
+
+ShaderPerfRenderer::ShaderPerfRenderer(ANativeWindow* window, bool offscreen, int workload) :
+        Renderer(window, offscreen, workload) {
+}
+
+bool ShaderPerfRenderer::setUp() {
+    SCOPED_TRACE();
+    if (!Renderer::setUp()) {
+        return false;
+    }
+
+    const int MAX_FRAGMENT_SHADER_SIZE = 1000;
+    char* spFragment = new char[MAX_FRAGMENT_SHADER_SIZE];
+    // Add the first part.
+    int index = charCopy(SP_FRAGMENT_1, spFragment, 0);
+    // Add the count, overwriting the '\0' added by charCopy.
+    spFragment[index - 1] = (char) (((int) '0') + mWorkload);
+    // Add the second part.
+    index += charCopy(SP_FRAGMENT_2, spFragment, index);
+    // Create program.
+    mProgramId = GLUtils::createProgram(&SP_VERTEX, const_cast<const char**>(&spFragment));
+    delete[] spFragment;
+    if (mProgramId == 0) {
+        return false;
+    }
+    // Bind attributes.
+    mTextureUniformHandle = glGetUniformLocation(mProgramId, "u_Texture");
+    mSeedUniformHandle = glGetUniformLocation(mProgramId, "u_Seed");
+    mPositionHandle = glGetAttribLocation(mProgramId, "a_Position");
+    mTexCoordHandle = glGetAttribLocation(mProgramId, "a_TexCoord");
+
+    const int SIZE = 256;
+    uint32_t* m = new uint32_t[SIZE];
+    if (m != NULL) {
+        uint32_t* d = m;
+        for (int i = 0; i < SIZE; i++) {
+            *d = 0xff000000 | ((i & 0xff) << 16);
+            d++;
+        }
+        glGenTextures(1, &mTextureId);
+        glBindTexture(GL_TEXTURE_2D, mTextureId);
+        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SIZE, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, m);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+    }
+    delete[] m;
+
+    return true;
+}
+
+void ShaderPerfRenderer::drawWorkload() {
+    SCOPED_TRACE();
+    glUseProgram(mProgramId);
+    // Set the background clear color.
+    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
+
+    // No culling of back faces
+    glDisable(GL_CULL_FACE);
+
+    // Bind the texture.
+    glActiveTexture(GL_TEXTURE0);
+    glBindTexture(GL_TEXTURE_2D, mTextureId);
+    glUniform1i(mTextureUniformHandle, 0);
+
+    // Bind the seed.
+    glUniform2f(mSeedUniformHandle, GOLDEN_RATIO - 2.0f, GOLDEN_RATIO - 1.0f);
+
+    // Bind the vertices.
+    glEnableVertexAttribArray(mPositionHandle);
+    glEnableVertexAttribArray(mTexCoordHandle);
+    glVertexAttribPointer(mPositionHandle, 3, GL_FLOAT, false, 0, SP_VERTICES);
+    glVertexAttribPointer(mTexCoordHandle, 2, GL_FLOAT, false, 0, SP_TEX_COORDS);
+
+    glDrawArrays(GL_TRIANGLES, 0, SP_NUM_VERTICES);
+}
diff --git a/suite/pts/deviceTests/opengl/jni/primitive/shaderperf/ShaderPerfRenderer.h b/suite/pts/deviceTests/opengl/jni/primitive/shaderperf/ShaderPerfRenderer.h
new file mode 100644
index 0000000..52fac43
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/primitive/shaderperf/ShaderPerfRenderer.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef SHADERPERFRENDERER_H
+#define SHADERPERFRENDERER_H
+
+#include <graphics/Renderer.h>
+
+class ShaderPerfRenderer: public Renderer {
+public:
+    ShaderPerfRenderer(ANativeWindow* window, bool offscreen, int workload);
+    virtual ~ShaderPerfRenderer() {};
+    bool setUp();
+    void drawWorkload();
+private:
+    GLuint mTextureId;
+    GLuint mTextureUniformHandle;
+    GLuint mPositionHandle;
+    GLuint mTexCoordHandle;
+    GLuint mSeedUniformHandle;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/reference/GLReference.cpp b/suite/pts/deviceTests/opengl/jni/reference/GLReference.cpp
new file mode 100644
index 0000000..7bcca20
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/GLReference.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 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 <jni.h>
+
+#include <android/native_window.h>
+#include <android/native_window_jni.h>
+
+#include <graphics/GLUtils.h>
+#include <graphics/Renderer.h>
+
+#include "ReferenceRenderer.h"
+
+extern "C" JNIEXPORT jboolean JNICALL
+Java_com_android_pts_opengl_reference_GLGameActivity_startBenchmark(
+        JNIEnv* env, jclass clazz, jobject assetManager, jobject surface, jint numFrames,
+        jdoubleArray setUpTimes, jdoubleArray updateTimes, jdoubleArray renderTimes) {
+
+    GLUtils::setEnvAndAssetManager(env, assetManager);
+
+    if (numFrames > (ReferenceRenderer::FRAMES_PER_SCENE * ReferenceRenderer::NUM_SCENES)) {
+        return false;
+    }
+
+    ReferenceRenderer* renderer = new ReferenceRenderer(ANativeWindow_fromSurface(env, surface));
+
+    bool success = renderer->setUp();
+    env->SetDoubleArrayRegion(
+            setUpTimes, 0, ReferenceRenderer::NUM_SETUP_TIMES, renderer->mSetUpTimes);
+
+    double updates[numFrames];
+    double renders[numFrames];
+    for (int i = 0; i < numFrames && success; i++) {
+        double t0 = GLUtils::currentTimeMillis();
+        success = renderer->update(i);
+        double t1 = GLUtils::currentTimeMillis();
+        success = success && renderer->draw();
+        double t2 = GLUtils::currentTimeMillis();
+        updates[i] = t1 - t0;
+        renders[i] = t2 - t1;
+    }
+
+    env->SetDoubleArrayRegion(updateTimes, 0, numFrames, updates);
+    env->SetDoubleArrayRegion(renderTimes, 0, numFrames, renders);
+
+    success = renderer->tearDown() && success;
+    delete renderer;
+    renderer = NULL;
+    return success;
+}
diff --git a/suite/pts/deviceTests/opengl/jni/reference/ReferenceRenderer.cpp b/suite/pts/deviceTests/opengl/jni/reference/ReferenceRenderer.cpp
new file mode 100644
index 0000000..8f7703e
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/ReferenceRenderer.cpp
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 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 "ReferenceRenderer.h"
+
+#include "scene/flocking/FlockingScene.h"
+#include "scene/glowing/GlowingScene.h"
+
+#include <graphics/GLUtils.h>
+#include <graphics/ProgramNode.h>
+
+#include <Trace.h>
+
+ReferenceRenderer::ReferenceRenderer(ANativeWindow* window) :
+        Renderer(window, false, 0) {
+}
+
+bool ReferenceRenderer::setUp() {
+    SCOPED_TRACE();
+    // Reset the times.
+    for (int i = 0; i < NUM_SETUP_TIMES; i++) {
+        mSetUpTimes[i] = 0;
+    }
+    // Set up OpenGLES.
+    double start = GLUtils::currentTimeMillis();
+    if (!Renderer::setUp()) {
+        return false;
+    }
+    mSetUpTimes[0] = GLUtils::currentTimeMillis() - start;
+
+    // Create the scenes.
+    mScenes[0] = new FlockingScene(mWidth, mHeight);
+    mScenes[1] = new GlowingScene(mWidth, mHeight);
+    // TODO add more scenes to do a comprehensive test.
+
+    // Set up the scenes.
+    double times[NUM_SETUP_TIMES];
+    for (int i = 0; i < NUM_SCENES; i++) {
+        times[0] = GLUtils::currentTimeMillis();
+        mScenes[i]->setUpContext();
+        times[1] = GLUtils::currentTimeMillis();
+        mScenes[i]->setUpTextures();
+        times[2] = GLUtils::currentTimeMillis();
+        mScenes[i]->setUpMeshes();
+        times[3] = GLUtils::currentTimeMillis();
+
+        for (int i = 1; i < NUM_SETUP_TIMES; i++) {
+            // Add on the set up times.
+            mSetUpTimes[i] += times[i] - times[i - 1];
+        }
+    }
+    return true;
+}
+
+bool ReferenceRenderer::tearDown() {
+    SCOPED_TRACE();
+    for (int i = 0; i < NUM_SCENES; i++) {
+        mScenes[i]->tearDown();
+        delete mScenes[i];
+    }
+    mCurrentScene = NULL;
+    if (!Renderer::tearDown()) {
+        return false;
+    }
+    return true;
+}
+
+bool ReferenceRenderer::update(int frame) {
+    SCOPED_TRACE();
+    int sceneId = frame / ReferenceRenderer::FRAMES_PER_SCENE;
+    int localFrame = frame % ReferenceRenderer::FRAMES_PER_SCENE;
+    mCurrentScene = mScenes[sceneId];
+    mCurrentScene->update(localFrame);
+    return true;
+}
+
+void ReferenceRenderer::drawWorkload() {
+    SCOPED_TRACE();
+    // Set the background clear color to black.
+    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+    // Use culling to remove back faces.
+    glEnable (GL_CULL_FACE);
+    // Use depth testing.
+    glEnable (GL_DEPTH_TEST);
+
+    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
+    if (!mCurrentScene->draw()) {
+        ALOGE("Error when rendering scene");
+    }
+}
diff --git a/suite/pts/deviceTests/opengl/jni/reference/ReferenceRenderer.h b/suite/pts/deviceTests/opengl/jni/reference/ReferenceRenderer.h
new file mode 100644
index 0000000..d10297a
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/ReferenceRenderer.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef REFERENCERENDERER_H
+#define REFERENCERENDERER_H
+
+#include "scene/Scene.h"
+
+#include <graphics/Mesh.h>
+#include <graphics/Renderer.h>
+
+class ReferenceRenderer: public Renderer {
+public:
+    ReferenceRenderer(ANativeWindow* window);
+    virtual ~ReferenceRenderer() {};
+    bool setUp();
+    bool tearDown();
+    bool update(int frame);
+    void drawWorkload();
+    double mSetUpTimes[4];
+    static const int FRAMES_PER_SCENE = 500;
+    static const int NUM_SCENES = 2;
+    static const int NUM_SETUP_TIMES = 4;
+private:
+    Scene* mScenes[NUM_SCENES];
+    Scene* mCurrentScene;
+
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/Scene.cpp b/suite/pts/deviceTests/opengl/jni/reference/scene/Scene.cpp
new file mode 100644
index 0000000..abf3a4e
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/Scene.cpp
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 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 "Scene.h"
+
+#include <graphics/GLUtils.h>
+#include <graphics/ProgramNode.h>
+
+#include <Trace.h>
+
+Scene::Scene(int width, int height) :
+        mWidth(width), mHeight(height) {
+}
+
+bool Scene::setUpContext() {
+    SCOPED_TRACE();
+    if (!setUpPrograms()) {
+        return false;
+    }
+    mModelMatrix = setUpModelMatrix();
+    if (mModelMatrix == NULL) {
+        return false;
+    }
+    mViewMatrix = setUpViewMatrix();
+    if (mViewMatrix == NULL) {
+        return false;
+    }
+    mProjectionMatrix = setUpProjectionMatrix(mWidth, mHeight);
+    if (mProjectionMatrix == NULL) {
+        return false;
+    }
+    return true;
+}
+
+bool Scene::tearDown() {
+    SCOPED_TRACE();
+    for (size_t i = 0; i < mTextureIds.size(); i++) {
+        glDeleteTextures(1, &(mTextureIds[i]));
+    }
+    for (size_t i = 0; i < mMeshes.size(); i++) {
+        delete mMeshes[i];
+    }
+    for (size_t i = 0; i < mSceneGraphs.size(); i++) {
+        delete mSceneGraphs[i];
+    }
+    delete mModelMatrix;
+    mModelMatrix = NULL;
+    delete mViewMatrix;
+    mViewMatrix = NULL;
+    delete mProjectionMatrix;
+    mProjectionMatrix = NULL;
+    return true;
+}
+
+bool Scene::update(int frame) {
+    SCOPED_TRACE();
+    // Delete the old scene graphs.
+    for (size_t i = 0; i < mSceneGraphs.size(); i++) {
+        delete mSceneGraphs[i];
+    }
+    mSceneGraphs.clear();
+    return updateSceneGraphs(frame);
+}
+
+void Scene::drawSceneGraph(int index) {
+    mModelMatrix->identity();
+    mSceneGraphs[index]->drawProgram(*mModelMatrix, *mViewMatrix, *mProjectionMatrix);
+}
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/Scene.h b/suite/pts/deviceTests/opengl/jni/reference/scene/Scene.h
new file mode 100644
index 0000000..06178b9
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/Scene.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef SCENE_H
+#define SCENE_H
+
+#include <graphics/Matrix.h>
+#include <graphics/Mesh.h>
+#include <graphics/Program.h>
+#include <graphics/ProgramNode.h>
+
+#include <utils/Vector.h>
+
+class Scene {
+public:
+    Scene(int width, int height);
+    virtual ~Scene() {};
+    virtual bool setUpContext();
+    virtual bool setUpTextures() = 0;
+    virtual bool setUpMeshes() = 0;
+    virtual bool tearDown();
+    virtual bool update(int frame);
+    virtual bool draw() = 0;
+    void drawSceneGraph(int index);
+protected:
+    virtual bool setUpPrograms() = 0;
+    virtual Matrix* setUpModelMatrix() = 0;
+    virtual Matrix* setUpViewMatrix() = 0;
+    virtual Matrix* setUpProjectionMatrix(float width, float height) = 0;
+    virtual bool updateSceneGraphs(int frame) = 0;
+    int mWidth;
+    int mHeight;
+    android::Vector<Mesh*> mMeshes;
+    android::Vector<GLuint> mTextureIds;
+    android::Vector<ProgramNode*> mSceneGraphs;
+private:
+    Matrix* mModelMatrix;
+    Matrix* mViewMatrix;
+    Matrix* mProjectionMatrix;
+};
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/Boid.cpp b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/Boid.cpp
new file mode 100644
index 0000000..74eef81
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/Boid.cpp
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 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 "Boid.h"
+
+Boid::Boid(float x, float y) :
+        mPosition(x, y) {
+}
+
+void Boid::flock(const Boid* boids[], int numBoids, int index, float limitX, float limitY) {
+    // Reset the acceleration.
+    mAcceleration.mX = 0;
+    mAcceleration.mY = 0;
+    Vector2D separation;
+    int separationCount = 0;
+    Vector2D alignment;
+    int alignmentCount = 0;
+    Vector2D cohesion;
+    int cohesionCount = 0;
+    for (int i = 0; i < numBoids; i++) {
+        if (i != index) {
+            const Boid* b = boids[i];
+            float dist = mPosition.distance(b->mPosition);
+            if (dist != 0) {
+                // Separation.
+                if (dist < DESIRED_BOID_DIST) {
+                    Vector2D tmp = mPosition.copy();
+                    tmp.sub(b->mPosition);
+                    tmp.normalize();
+                    tmp.scale(1.0f / dist);
+                    separation.add(tmp);
+                    separationCount++;
+                }
+                if (dist < NEIGHBOUR_RADIUS) {
+                    // Alignment.
+                    alignment.add(b->mVelocity);
+                    alignmentCount++;
+                    // Cohesion.
+                    cohesion.add(b->mPosition);
+                    cohesionCount++;
+                }
+            }
+        }
+    }
+
+    if (separationCount > 0) {
+        separation.scale(1.0f / separationCount);
+        separation.scale(SEPARATION_WEIGHT);
+        mAcceleration.add(separation);
+    }
+    if (alignmentCount > 0) {
+        alignment.scale(1.0f / alignmentCount);
+        alignment.limit(MAX_FORCE);
+        alignment.scale(ALIGNMENT_WEIGHT);
+        mAcceleration.add(alignment);
+    }
+    if (cohesionCount > 0) {
+        cohesion.scale(1.0f / cohesionCount);
+        cohesion.scale(COHESION_WEIGHT);
+        Vector2D desired = cohesion.copy();
+        desired.sub(mPosition);
+        float d = desired.magnitude();
+        if (d > 0) {
+            desired.normalize();
+            desired.scale(MAX_SPEED * ((d < 100.0f) ? d / 100.0f : 1));
+            desired.sub(mVelocity);
+            desired.limit(MAX_FORCE);
+            mAcceleration.add(desired);
+        }
+    }
+
+    mVelocity.add(mAcceleration);
+    mVelocity.limit(MAX_SPEED);
+    mPosition.add(mVelocity);
+    // Wrap around.
+    if (mPosition.mX < -limitX) {
+        mPosition.mX = limitX;
+    } else if (mPosition.mX > limitX) {
+        mPosition.mX = -limitX;
+    }
+    if (mPosition.mY < -limitY) {
+        mPosition.mY = limitY;
+    } else if (mPosition.mY > limitY) {
+        mPosition.mY = -limitY;
+    }
+}
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/Boid.h b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/Boid.h
new file mode 100644
index 0000000..e50acd0
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/Boid.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 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.
+ */
+// An implementation of Craig Reynold's Boid Simulation.
+#ifndef BOID_H
+#define BOID_H
+
+#include <graphics/Vector2D.h>
+
+class Boid {
+public:
+    Boid(float x, float y);
+    void resetAcceleration();
+    void flock(const Boid* boids[], int numBoids, int index, float limitX, float limitY);
+    // The following floats are the parameters for the flocking algorithm, changing these
+    // modifies the boid's behaviour.
+    static const float MAX_SPEED = 2.0f;// Upper limit of boid velocity.
+    static const float MAX_FORCE = 0.05f;// Upper limit of the force used to push a boid.
+    static const float NEIGHBOUR_RADIUS = 70.0f;// Radius used to find neighbours, was 50.
+    static const float DESIRED_BOID_DIST = 35.0f;// Distance boids want to be from others, was 25.
+    // The weightings of the components.
+    static const float SEPARATION_WEIGHT = 2.0f;
+    static const float ALIGNMENT_WEIGHT = 1.0f;
+    static const float COHESION_WEIGHT = 1.0f;
+    Vector2D mPosition;
+    Vector2D mVelocity;
+    Vector2D mAcceleration;
+};
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/FlockingScene.cpp b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/FlockingScene.cpp
new file mode 100644
index 0000000..71e5dac
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/FlockingScene.cpp
@@ -0,0 +1,193 @@
+/*
+ * Copyright (C) 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 "FlockingScene.h"
+
+#include "WaterMeshNode.h"
+
+#include <cstdlib>
+#include <cmath>
+
+#include <Trace.h>
+
+#include <graphics/PerspectiveMeshNode.h>
+#include <graphics/PerspectiveProgram.h>
+#include <graphics/GLUtils.h>
+#include <graphics/Matrix.h>
+#include <graphics/Mesh.h>
+#include <graphics/ProgramNode.h>
+#include <graphics/TransformationNode.h>
+
+FlockingScene::FlockingScene(int width, int height) :
+        Scene(width, height), mMainProgram(NULL), mWaterProgram(NULL) {
+    for (int i = 0; i < NUM_BOIDS; i++) {
+        // Generate a boid with a random position. (-50, 50)
+        float x = (rand() % 101) - 50.0f;
+        float y = (rand() % 101) - 50.0f;
+        mBoids[i] = new Boid(x, y);
+    }
+}
+
+bool FlockingScene::setUpPrograms() {
+    // Main Program
+    const char* vertex = GLUtils::openTextFile("vertex/perspective");
+    const char* fragment = GLUtils::openTextFile("fragment/perspective");
+    if (vertex == NULL || fragment == NULL) {
+        return false;
+    }
+    GLuint programId = GLUtils::createProgram(&vertex, &fragment);
+    delete[] vertex;
+    delete[] fragment;
+    if (programId == 0) {
+        return false;
+    }
+    mMainProgram = new PerspectiveProgram(programId);
+    // Water Program
+    vertex = GLUtils::openTextFile("vertex/water");
+    fragment = GLUtils::openTextFile("fragment/water");
+    if (vertex == NULL || fragment == NULL) {
+        return false;
+    }
+    programId = GLUtils::createProgram(&vertex, &fragment);
+    delete[] vertex;
+    delete[] fragment;
+    if (programId == 0) {
+        return false;
+    }
+    mWaterProgram = new PerspectiveProgram(programId);
+    return true;
+}
+
+Matrix* FlockingScene::setUpModelMatrix() {
+    return new Matrix();
+}
+
+Matrix* FlockingScene::setUpViewMatrix() {
+    // Position the eye in front of the origin.
+    float eyeX = 0.0f;
+    float eyeY = 0.0f;
+    float eyeZ = 10.0f;
+
+    // We are looking at the origin
+    float centerX = 0.0f;
+    float centerY = 0.0f;
+    float centerZ = 0.0f;
+
+    // Set our up vector.
+    float upX = 0.0f;
+    float upY = 1.0f;
+    float upZ = 0.0f;
+
+    // Set the view matrix.
+    return Matrix::newLookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);
+}
+
+Matrix* FlockingScene::setUpProjectionMatrix(float width, float height) {
+    // Create a new perspective projection matrix. The height will stay the same
+    // while the width will vary as per aspect ratio.
+    mDisplayRatio = width / height;
+    // Set board dimensions
+    mBoardHeight = 1000.0f;
+    mBoardWidth = mDisplayRatio * mBoardHeight;
+    float left = -mDisplayRatio;
+    float right = mDisplayRatio;
+    float bottom = -1.0f;
+    float top = 1.0f;
+    float near = 8.0f;
+    float far = 12.0f;
+
+    return Matrix::newFrustum(left, right, bottom, top, near, far);
+}
+
+bool FlockingScene::setUpTextures() {
+    SCOPED_TRACE();
+    mTextureIds.add(GLUtils::loadTexture("texture/fish_dark.png"));
+    mTextureIds.add(GLUtils::loadTexture("texture/background.png"));
+    mTextureIds.add(GLUtils::loadTexture("texture/water1.png"));
+    mTextureIds.add(GLUtils::loadTexture("texture/water2.png"));
+    return true;
+}
+
+bool FlockingScene::setUpMeshes() {
+    SCOPED_TRACE();
+    mMeshes.add(GLUtils::loadMesh("mesh/fish.cob"));
+    mMeshes.add(GLUtils::loadMesh("mesh/plane.cob"));
+    return true;
+}
+
+bool FlockingScene::tearDown() {
+    SCOPED_TRACE();
+    for (int i = 0; i < NUM_BOIDS; i++) {
+        delete mBoids[i];
+    }
+    delete mMainProgram;
+    delete mWaterProgram;
+    return Scene::tearDown();
+}
+
+bool FlockingScene::updateSceneGraphs(int frame) {
+    const float MAIN_SCALE = 1.25f; // Scale up as the camera is far away.
+    const float LIMIT_X = mBoardWidth / 2.0f;
+    const float LIMIT_Y = mBoardHeight / 2.0f;
+
+    ProgramNode* mainSceneGraph = new ProgramNode(*mMainProgram);
+    mSceneGraphs.add(mainSceneGraph);
+    // Bottom
+    Matrix* transformMatrix = Matrix::newScale(MAIN_SCALE * mDisplayRatio, MAIN_SCALE, 0.0f);
+    TransformationNode* transformNode = new TransformationNode(transformMatrix);
+    mainSceneGraph->addChild(transformNode);
+    MeshNode* meshNode = new PerspectiveMeshNode(mMeshes[1], mTextureIds[1]);
+    transformNode->addChild(meshNode);
+    // Boids
+    const float MARGIN = 30.0f; // So the fish dont disappear and appear at the edges.
+    for (int i = 0; i < NUM_BOIDS; i++) {
+        Boid* b = mBoids[i];
+        b->flock((const Boid**) &mBoids, NUM_BOIDS, i, LIMIT_X + MARGIN, LIMIT_Y + MARGIN);
+        Vector2D* pos = &(b->mPosition);
+        Vector2D* vel = &(b->mVelocity);
+
+        // Normalize to (-1,1)
+        float x = pos->mX / (LIMIT_X * BOID_SCALE) * mDisplayRatio;
+        float y = pos->mY / (LIMIT_Y * BOID_SCALE);
+
+        const float SCALE = BOID_SCALE * MAIN_SCALE;
+        transformMatrix = Matrix::newScale(SCALE, SCALE, SCALE);
+        transformMatrix->translate(x, y, 1.0f);
+        transformMatrix->rotate(atan2(vel->mY, vel->mX) + M_PI, 0, 0, 1);
+        transformNode = new TransformationNode(transformMatrix);
+        mainSceneGraph->addChild(transformNode);
+        meshNode = new PerspectiveMeshNode(mMeshes[0], mTextureIds[0]);
+        transformNode->addChild(meshNode);
+    }
+    ProgramNode* waterSceneGraph = new ProgramNode(*mWaterProgram);
+    mSceneGraphs.add(waterSceneGraph);
+    // Top
+    transformMatrix = Matrix::newScale(MAIN_SCALE * mDisplayRatio, MAIN_SCALE, 1.0f);
+    transformMatrix->translate(0, 0, 0.1f);
+    transformNode = new TransformationNode(transformMatrix);
+    waterSceneGraph->addChild(transformNode);
+    meshNode = new WaterMeshNode(mMeshes[1], frame, mTextureIds[2], mTextureIds[3]);
+    transformNode->addChild(meshNode);
+    return true;
+}
+
+bool FlockingScene::draw() {
+    SCOPED_TRACE();
+    drawSceneGraph(0); // Draw fish and pond bottom
+    // Use blending.
+    glEnable (GL_BLEND);
+    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+    drawSceneGraph(1); // Draw water
+    glDisable(GL_BLEND);
+    return true;
+}
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/FlockingScene.h b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/FlockingScene.h
new file mode 100644
index 0000000..97bd4cc
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/FlockingScene.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef FLOCKINGSCENE_H
+#define FLOCKINGSCENE_H
+
+#include <graphics/Program.h>
+
+#include "../Scene.h"
+#include "Boid.h"
+
+class FlockingScene : public Scene {
+public:
+    FlockingScene(int width, int height);
+    virtual ~FlockingScene() {};
+    bool setUpTextures();
+    bool setUpMeshes();
+    bool tearDown();
+    bool draw();
+    static const int NUM_BOIDS = 100;
+protected:
+    bool setUpPrograms();
+    Matrix* setUpModelMatrix();
+    Matrix* setUpViewMatrix();
+    Matrix* setUpProjectionMatrix(float width, float height);
+    bool updateSceneGraphs(int frame);
+private:
+    Boid* mBoids[NUM_BOIDS];
+    float mDisplayRatio;
+    float mBoardWidth;
+    float mBoardHeight;
+    Program* mMainProgram;
+    Program* mWaterProgram;
+    static const float BOID_SCALE = 1.0f / 50.0f;
+};
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/WaterMeshNode.cpp b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/WaterMeshNode.cpp
new file mode 100644
index 0000000..f000d58
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/WaterMeshNode.cpp
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 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 "WaterMeshNode.h"
+
+#include <graphics/PerspectiveProgram.h>
+
+WaterMeshNode::WaterMeshNode(const Mesh* mesh, int time, GLuint textureId1, GLuint textureId2) :
+        MeshNode(mesh), mTime(time), mTextureId1(textureId1), mTextureId2(textureId2) {
+}
+
+void WaterMeshNode::before(Program& program, Matrix& model, Matrix& view, Matrix& projection) {
+    PerspectiveProgram& prog = (PerspectiveProgram&) program;
+
+    int textureUniformHandle1 = glGetUniformLocation(prog.mProgramId, "u_Texture1");
+    int textureUniformHandle2 = glGetUniformLocation(prog.mProgramId, "u_Texture2");
+    int timeUniformHandle = glGetUniformLocation(prog.mProgramId, "u_Time");
+    int positionHandle = glGetAttribLocation(prog.mProgramId, "a_Position");
+    int texCoordHandle = glGetAttribLocation(prog.mProgramId, "a_TexCoordinate");
+
+    glActiveTexture (GL_TEXTURE0);
+    glBindTexture(GL_TEXTURE_2D, mTextureId1);
+    glUniform1i(textureUniformHandle1, 0);
+
+    glActiveTexture (GL_TEXTURE1);
+    glBindTexture(GL_TEXTURE_2D, mTextureId2);
+    glUniform1i(textureUniformHandle2, 1);
+
+    glUniform1i(timeUniformHandle, mTime);
+
+    glEnableVertexAttribArray(positionHandle);
+    glVertexAttribPointer(positionHandle, 3, GL_FLOAT, false, 0, mMesh->mVertices);
+    glEnableVertexAttribArray(texCoordHandle);
+    glVertexAttribPointer(texCoordHandle, 2, GL_FLOAT, false, 0, mMesh->mTexCoords);
+
+    // This multiplies the view matrix by the model matrix, and stores the result in the MVP
+    // matrix (which currently contains model * view).
+    prog.mMVMatrix.multiply(view, model);
+
+    // Pass in the modelview matrix.
+    glUniformMatrix4fv(prog.mMVMatrixHandle, 1, false, prog.mMVMatrix.mData);
+
+    // This multiplies the modelview matrix by the projection matrix, and stores the result in
+    // the MVP matrix (which now contains model * view * projection).
+    prog.mMVPMatrix.multiply(projection, prog.mMVMatrix);
+
+    // Pass in the combined matrix.
+    glUniformMatrix4fv(prog.mMVPMatrixHandle, 1, false, prog.mMVPMatrix.mData);
+
+    // Pass in the light position in eye space.
+    glUniform3f(prog.mLightPosHandle, prog.mLightPosInEyeSpace[0], prog.mLightPosInEyeSpace[1],
+            prog.mLightPosInEyeSpace[2]);
+
+    glDrawArrays(GL_TRIANGLES, 0, mMesh->mNumVertices);
+}
+
+void WaterMeshNode::after(Program& program, Matrix& model, Matrix& view, Matrix& projection) {
+}
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/WaterMeshNode.h b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/WaterMeshNode.h
new file mode 100644
index 0000000..81bfe8f
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/flocking/WaterMeshNode.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 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.
+ */
+
+#ifndef WATERMESHNODE_H
+#define WATERMESHNODE_H
+
+#include <graphics/Matrix.h>
+#include <graphics/Mesh.h>
+#include <graphics/MeshNode.h>
+#include <graphics/Program.h>
+
+class WaterMeshNode: public MeshNode {
+public:
+    WaterMeshNode(const Mesh* mesh, int time, GLuint textureId1, GLuint textureId2);
+    virtual ~WaterMeshNode() {};
+protected:
+    virtual void before(Program& program, Matrix& model, Matrix& view, Matrix& projection);
+    virtual void after(Program& program, Matrix& model, Matrix& view, Matrix& projection);
+    const int mTime;
+    const GLuint mTextureId1;
+    const GLuint mTextureId2;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/BlurMeshNode.cpp b/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/BlurMeshNode.cpp
new file mode 100644
index 0000000..6c2ad64
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/BlurMeshNode.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 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 "BlurMeshNode.h"
+
+BlurMeshNode::BlurMeshNode(const Mesh* mesh, GLuint fboTexId, GLuint tmpTexId1, GLuint tmpTexId2,
+        float width, float height) :
+        MeshNode(mesh), mFboTexId(fboTexId), mTmpTexId1(tmpTexId1), mTmpTexId2(tmpTexId2),
+        mWidth(width), mHeight(height) {
+}
+
+void BlurMeshNode::before(Program& program, Matrix& model, Matrix& view, Matrix& projection) {
+    int textureUniformHandle = glGetUniformLocation(program.mProgramId, "u_Texture");
+    int scaleUniformHandle = glGetUniformLocation(program.mProgramId, "u_Scale");
+    int positionHandle = glGetAttribLocation(program.mProgramId, "a_Position");
+    int texCoordHandle = glGetAttribLocation(program.mProgramId, "a_TexCoordinate");
+
+    glEnableVertexAttribArray(positionHandle);
+    glVertexAttribPointer(positionHandle, 3, GL_FLOAT, false, 0, mMesh->mVertices);
+    glEnableVertexAttribArray(texCoordHandle);
+    glVertexAttribPointer(texCoordHandle, 2, GL_FLOAT, false, 0, mMesh->mTexCoords);
+
+    // Blur X
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mTmpTexId1, 0);
+    glActiveTexture (GL_TEXTURE0);
+    glBindTexture(GL_TEXTURE_2D, mFboTexId);
+    glUniform1i(textureUniformHandle, 0);
+
+    glUniform2f(scaleUniformHandle, 1.0f / mWidth, 0);
+
+    glDrawArrays(GL_TRIANGLES, 0, mMesh->mNumVertices);
+
+    // Blur Y
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mTmpTexId2, 0);
+    glActiveTexture(GL_TEXTURE0);
+    glBindTexture(GL_TEXTURE_2D, mTmpTexId1);
+    glUniform1i(textureUniformHandle, 0);
+
+    glUniform2f(scaleUniformHandle, 0, 1.0f / mHeight);
+
+    glDrawArrays(GL_TRIANGLES, 0, mMesh->mNumVertices);
+}
+
+void BlurMeshNode::after(Program& program, Matrix& model, Matrix& view, Matrix& projection) {
+}
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/BlurMeshNode.h b/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/BlurMeshNode.h
new file mode 100644
index 0000000..8cb9617
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/BlurMeshNode.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 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.
+ */
+
+#ifndef BLURMESHNODE_H
+#define BLURMESHNODE_H
+
+#include <graphics/Matrix.h>
+#include <graphics/Mesh.h>
+#include <graphics/MeshNode.h>
+#include <graphics/Program.h>
+
+class BlurMeshNode: public MeshNode {
+public:
+    BlurMeshNode(const Mesh* mesh, GLuint fboTexId, GLuint tmpTexId1, GLuint tmpTexId2, float width, float height);
+    virtual ~BlurMeshNode() {};
+protected:
+    virtual void before(Program& program, Matrix& model, Matrix& view, Matrix& projection);
+    virtual void after(Program& program, Matrix& model, Matrix& view, Matrix& projection);
+    const GLuint mFboTexId;
+    const GLuint mTmpTexId1;
+    const GLuint mTmpTexId2;
+    const float mWidth;
+    const float mHeight;
+};
+
+#endif
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/GlowingScene.cpp b/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/GlowingScene.cpp
new file mode 100644
index 0000000..0d22b96
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/GlowingScene.cpp
@@ -0,0 +1,197 @@
+/*
+ * Copyright (C) 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 "GlowingScene.h"
+#include "BlurMeshNode.h"
+
+#include <Trace.h>
+
+#include <graphics/PerspectiveMeshNode.h>
+#include <graphics/PerspectiveProgram.h>
+#include <graphics/Program.h>
+#include <graphics/GLUtils.h>
+#include <graphics/Mesh.h>
+#include <graphics/ProgramNode.h>
+#include <graphics/TransformationNode.h>
+
+GlowingScene::GlowingScene(int width, int height) :
+        Scene(width, height), mFboId(0), mMainProgram(NULL), mBlurProgram(NULL) {
+    mFboWidth = GLUtils::roundUpToSmallestPowerOf2(width);
+    mFboHeight = GLUtils::roundUpToSmallestPowerOf2(height);
+    mFboRatio = mFboWidth / mFboHeight;
+    mFboModelMatrix = setUpModelMatrix();
+    mFboViewMatrix = setUpViewMatrix();
+    mFboProjectionMatrix = setUpProjectionMatrix(mFboWidth, mFboHeight);
+}
+
+bool GlowingScene::setUpContext() {
+    if (!Scene::setUpContext()) {
+        return false;
+    }
+    // Create a fbo
+    glGenFramebuffers(1, &mFboId);
+    return true;
+}
+
+bool GlowingScene::setUpPrograms() {
+    // Main Program
+    const char* vertex = GLUtils::openTextFile("vertex/perspective");
+    const char* fragment = GLUtils::openTextFile("fragment/perspective");
+    if (vertex == NULL || fragment == NULL) {
+        return false;
+    }
+    GLuint programId = GLUtils::createProgram(&vertex, &fragment);
+    delete[] vertex;
+    delete[] fragment;
+    if (programId == 0) {
+        return false;
+    }
+    mMainProgram = new PerspectiveProgram(programId);
+    // Blur Program
+    vertex = GLUtils::openTextFile("vertex/blur");
+    fragment = GLUtils::openTextFile("fragment/blur");
+    if (vertex == NULL || fragment == NULL) {
+        return false;
+    }
+    programId = GLUtils::createProgram(&vertex, &fragment);
+    delete[] vertex;
+    delete[] fragment;
+    if (programId == 0) {
+        return false;
+    }
+    mBlurProgram = new Program(programId);
+    return true;
+}
+
+Matrix* GlowingScene::setUpModelMatrix() {
+    return new Matrix();
+}
+
+Matrix* GlowingScene::setUpViewMatrix() {
+    // Position the eye in front of the origin.
+    float eyeX = 0.0f;
+    float eyeY = 0.0f;
+    float eyeZ = 10.0f;
+
+    // Look at the origin
+    float centerX = 0.0f;
+    float centerY = 0.0f;
+    float centerZ = 0.0f;
+
+    // Set up vector.
+    float upX = 0.0f;
+    float upY = 1.0f;
+    float upZ = 0.0f;
+
+    // Set the view matrix.
+    return Matrix::newLookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);
+}
+
+Matrix* GlowingScene::setUpProjectionMatrix(float width, float height) {
+    // Create a new perspective projection matrix. The height will stay the same
+    // while the width will vary as per aspect ratio.
+    float ratio = width / height;
+    float left = -ratio;
+    float right = ratio;
+    float bottom = -1.0f;
+    float top = 1.0f;
+    float near = 8.0f;
+    float far = 12.0f;
+
+    return Matrix::newFrustum(left, right, bottom, top, near, far);
+}
+
+bool GlowingScene::setUpTextures() {
+    SCOPED_TRACE();
+    mTextureIds.add(GLUtils::genTexture(mWidth, mHeight, 0)); // fbo
+    mTextureIds.add(GLUtils::genTexture(mWidth, mHeight, 0)); // tmp1
+    mTextureIds.add(GLUtils::genTexture(mWidth, mHeight, 0)); // tmp2
+    mTextureIds.add(GLUtils::loadTexture("texture/arc.png"));
+    return true;
+}
+
+bool GlowingScene::setUpMeshes() {
+    SCOPED_TRACE();
+    mMeshes.add(GLUtils::loadMesh("mesh/plane.cob"));
+    mMeshes.add(GLUtils::loadMesh("mesh/arc.cob"));
+    return true;
+}
+
+bool GlowingScene::tearDown() {
+    SCOPED_TRACE();
+    if (mMainProgram != NULL) {
+        delete mMainProgram;
+        mMainProgram = NULL;
+    }
+    if (mBlurProgram != NULL) {
+        delete mBlurProgram;
+        mBlurProgram = NULL;
+    }
+    if (mFboId != 0) {
+        glDeleteFramebuffers(1, &mFboId);
+        mFboId = 0;
+    }
+    delete mFboModelMatrix;
+    mFboModelMatrix = NULL;
+    delete mFboViewMatrix;
+    mFboViewMatrix = NULL;
+    delete mFboProjectionMatrix;
+    mFboProjectionMatrix = NULL;
+    return Scene::tearDown();
+}
+
+bool GlowingScene::updateSceneGraphs(int frame) {
+    // To render the mesh to the FBO
+    ProgramNode* lightSceneGraph = new ProgramNode(*mMainProgram);
+    mSceneGraphs.add(lightSceneGraph);
+    MeshNode* meshNode = new PerspectiveMeshNode(mMeshes[1], mTextureIds[3]);
+    lightSceneGraph->addChild(meshNode);
+
+    // To blur the image
+    ProgramNode* blurSceneGraph = new ProgramNode(*mBlurProgram);
+    mSceneGraphs.add(blurSceneGraph);
+    meshNode = new BlurMeshNode(mMeshes[0], mTextureIds[0], mTextureIds[1], mTextureIds[2],
+            mFboWidth, mFboHeight);
+    blurSceneGraph->addChild(meshNode);
+
+    // Blur To screen
+    ProgramNode* glowSceneGraph = new ProgramNode(*mMainProgram);
+    mSceneGraphs.add(glowSceneGraph);
+    Matrix* transformMatrix = Matrix::newScale(mFboRatio, 1.0f, 1.0f);
+    TransformationNode* transformNode = new TransformationNode(transformMatrix);
+    glowSceneGraph->addChild(transformNode);
+    meshNode = new PerspectiveMeshNode(mMeshes[0], mTextureIds[2]);
+    transformNode->addChild(meshNode);
+    return true;
+}
+
+bool GlowingScene::draw() {
+    SCOPED_TRACE();
+    glBindFramebuffer(GL_FRAMEBUFFER, mFboId); // Use FBO
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mTextureIds[0], 0);
+    if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) {
+        return false;
+    }
+    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+    glClear (GL_COLOR_BUFFER_BIT);
+    glViewport(0, 0, mFboWidth, mFboHeight);
+    mFboModelMatrix->identity();
+    mSceneGraphs[0]->drawProgram(*mFboModelMatrix, *mFboViewMatrix, *mFboProjectionMatrix); // Mesh
+    mFboModelMatrix->identity();
+    mSceneGraphs[1]->drawProgram(*mFboModelMatrix, *mFboViewMatrix, *mFboProjectionMatrix); // Blur
+
+    glBindFramebuffer(GL_FRAMEBUFFER, 0); // Use Screen
+    glViewport(0, 0, mWidth, mHeight);
+    Scene::drawSceneGraph(2); // Blur to Screen
+    return true;
+}
diff --git a/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/GlowingScene.h b/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/GlowingScene.h
new file mode 100644
index 0000000..3bc734c
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/jni/reference/scene/glowing/GlowingScene.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 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.
+ */
+#ifndef GLOWINGSCENE_H
+#define GLOWINGSCENE_H
+
+#include <graphics/Program.h>
+
+#include "../Scene.h"
+
+class GlowingScene: public Scene {
+public:
+    GlowingScene(int width, int height);
+    virtual ~GlowingScene() {};
+    bool setUpContext();
+    bool setUpTextures();
+    bool setUpMeshes();
+    bool tearDown();
+    bool draw();
+protected:
+    bool setUpPrograms();
+    Matrix* setUpModelMatrix();
+    Matrix* setUpViewMatrix();
+    Matrix* setUpProjectionMatrix(float width, float height);
+    bool updateSceneGraphs(int frame);
+private:
+    GLuint mFboId;
+    Program* mMainProgram;
+    Program* mBlurProgram;
+    float mFboWidth;
+    float mFboHeight;
+    float mFboRatio;
+    Matrix* mFboModelMatrix;
+    Matrix* mFboViewMatrix;
+    Matrix* mFboProjectionMatrix;
+};
+#endif
diff --git a/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/GLActivityIntentKeys.java b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/GLActivityIntentKeys.java
new file mode 100644
index 0000000..da5de80
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/GLActivityIntentKeys.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 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.
+ */
+package com.android.pts.opengl;
+
+public class GLActivityIntentKeys {
+    /**
+     * Holds the name of the benchmark to run.
+     */
+    public final static String INTENT_EXTRA_BENCHMARK_NAME = "benchmark_name";
+    /**
+     * Holds whether or not the benchmark is to be run offscreen.
+     */
+    public final static String INTENT_EXTRA_OFFSCREEN = "offscreen";
+    /**
+     * The number of frames to render for each workload.
+     */
+    public final static String INTENT_EXTRA_NUM_FRAMES = "num_frames";
+    /**
+     * The number of iterations to run, the workload increases with each iteration.
+     */
+    public final static String INTENT_EXTRA_NUM_ITERATIONS = "num_iterations";
+    /**
+     * The number of milliseconds to wait before timing out.
+     */
+    public final static String INTENT_EXTRA_TIMEOUT = "timeout";
+}
diff --git a/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/primitive/BenchmarkName.java b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/primitive/BenchmarkName.java
new file mode 100644
index 0000000..e9f219b
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/primitive/BenchmarkName.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 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.
+ */
+package com.android.pts.opengl.primitive;
+
+/**
+ * Represents the different primitive benchmarks.
+ */
+public enum BenchmarkName {
+    FullPipeline,
+    PixelOutput,
+    ShaderPerf,
+    ContextSwitch;
+}
diff --git a/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/primitive/GLPrimitiveActivity.java b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/primitive/GLPrimitiveActivity.java
new file mode 100644
index 0000000..ac5222c
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/primitive/GLPrimitiveActivity.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 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.
+ */
+package com.android.pts.opengl.primitive;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.cts.util.WatchDog;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+import android.view.Surface;
+
+import com.android.pts.opengl.GLActivityIntentKeys;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+
+import java.util.ArrayList;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Semaphore;
+
+public class GLPrimitiveActivity extends Activity {
+
+    public final static String TAG = "GLPrimitiveActivity";
+
+    private volatile Exception mException;
+    private volatile Surface mSurface = null;
+    private CountDownLatch mStartSignal = new CountDownLatch(1);
+    private Semaphore mSemaphore = new Semaphore(0);
+
+    private BenchmarkName mBenchmark;
+    private boolean mOffscreen;
+    private int mNumFrames;
+    private int mNumIterations;
+    private int mTimeout;
+    public double[] mFpsValues;
+
+    @Override
+    public void onCreate(Bundle data) {
+        super.onCreate(data);
+        System.loadLibrary("ptsopengl_jni");
+        Intent intent = getIntent();
+        mBenchmark = BenchmarkName.valueOf(
+                intent.getStringExtra(GLActivityIntentKeys.INTENT_EXTRA_BENCHMARK_NAME));
+        mOffscreen = intent.getBooleanExtra(GLActivityIntentKeys.INTENT_EXTRA_OFFSCREEN, false);
+        mNumFrames = intent.getIntExtra(GLActivityIntentKeys.INTENT_EXTRA_NUM_FRAMES, 0);
+        mNumIterations = intent.getIntExtra(GLActivityIntentKeys.INTENT_EXTRA_NUM_ITERATIONS, 0);
+        mTimeout = intent.getIntExtra(GLActivityIntentKeys.INTENT_EXTRA_TIMEOUT, 0);
+        mFpsValues = new double[mNumIterations];
+
+        Log.i(TAG, "Benchmark: " + mBenchmark);
+        Log.i(TAG, "Offscreen: " + mOffscreen);
+        Log.i(TAG, "Num Frames: " + mNumFrames);
+        Log.i(TAG, "Num Iterations: " + mNumIterations);
+        Log.i(TAG, "Time Out: " + mTimeout);
+
+        SurfaceView surfaceView = new SurfaceView(this);
+        surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
+            @Override
+            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+                mSurface = holder.getSurface();
+                mStartSignal.countDown();
+            }
+
+            @Override
+            public void surfaceCreated(SurfaceHolder holder) {}
+
+            @Override
+            public void surfaceDestroyed(SurfaceHolder holder) {}
+        });
+        setContentView(surfaceView);
+        // Spawns a worker to run the benchmark.
+        Worker worker = new Worker();
+        worker.start();
+    }
+
+    public void waitForCompletion() throws Exception {
+        // Wait for semiphore.
+        mSemaphore.acquire();
+        if (mException != null) {
+            throw mException;
+        }
+    }
+
+    private void complete() {
+        // Release semiphore.
+        mSemaphore.release();
+        finish();
+    }
+
+    private synchronized void setException(Exception e) {
+        if (mException == null) {
+            mException = e;
+        }
+    }
+
+    private static native void setupFullPipelineBenchmark(
+            Surface surface, boolean offscreen, int workload);
+
+    private static native void setupPixelOutputBenchmark(
+            Surface surface, boolean offscreen, int workload);
+
+    private static native void setupShaderPerfBenchmark(
+            Surface surface, boolean offscreen, int workload);
+
+    private static native void setupContextSwitchBenchmark(
+            Surface surface, boolean offscreen, int workload);
+
+    private static native boolean startBenchmark(int numFrames, double[] frameTimes);
+
+    /**
+     * This thread runs the benchmarks, freeing the UI thread.
+     */
+    private class Worker extends Thread implements WatchDog.TimeoutCallback {
+
+        private WatchDog watchDog;
+        private volatile boolean success = true;
+
+        @Override
+        public void run() {
+            try {
+                mStartSignal.await();
+            } catch (InterruptedException e) {
+                setException(e);
+                complete();
+                return;
+            }
+            Log.i(TAG, mBenchmark + " Benchmark Started");
+            // Creates a watchdog to ensure a iteration doesn't exceed the timeout.
+            watchDog = new WatchDog(mTimeout, this);
+            // Used to record the start and end time of the iteration.
+            double[] times = new double[2];
+            for (int i = 0; i < mNumIterations && success; i++) {
+                // The workload to use for this iteration.
+                int workload = i + 1;
+                // Setup the benchmark.
+                switch (mBenchmark) {
+                    case FullPipeline:
+                        setupFullPipelineBenchmark(mSurface, mOffscreen, workload);
+                        break;
+                    case PixelOutput:
+                        setupPixelOutputBenchmark(mSurface, mOffscreen, workload);
+                        break;
+                    case ShaderPerf:
+                        setupShaderPerfBenchmark(mSurface, mOffscreen, workload);
+                        break;
+                    case ContextSwitch:
+                        setupContextSwitchBenchmark(mSurface, mOffscreen, workload);
+                        break;
+                }
+                watchDog.start();
+                // Start benchmark.
+                success = startBenchmark(mNumFrames, times);
+                watchDog.stop();
+
+                if (!success) {
+                    setException(new Exception("Benchmark failed to run"));
+                } else {
+                    // Calculate FPS.
+                    mFpsValues[i] = mNumFrames * 1000.0f / (times[1] - times[0]);
+                }
+            }
+            complete();
+            Log.i(TAG, mBenchmark + " Benchmark Completed");
+        }
+
+        public void onTimeout() {
+            setException(new Exception("Benchmark timed out"));
+            complete();
+        }
+
+    }
+}
diff --git a/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/primitive/GLPrimitiveBenchmark.java b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/primitive/GLPrimitiveBenchmark.java
new file mode 100644
index 0000000..4477f3b
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/primitive/GLPrimitiveBenchmark.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 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.
+ */
+package com.android.pts.opengl.primitive;
+
+import com.android.pts.opengl.GLActivityIntentKeys;
+import com.android.pts.util.PtsActivityInstrumentationTestCase2;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+
+import android.content.Intent;
+import android.cts.util.TimeoutReq;
+
+import java.util.Arrays;
+
+/**
+ * Runs the Primitive OpenGL ES 2.0 Benchmarks.
+ */
+public class GLPrimitiveBenchmark extends PtsActivityInstrumentationTestCase2<GLPrimitiveActivity> {
+
+    private static final int NUM_FRAMES = 100;
+    private static final int NUM_ITERATIONS = 8;
+    private static final int TIMEOUT = 1000000;
+
+    public GLPrimitiveBenchmark() {
+        super(GLPrimitiveActivity.class);
+    }
+
+    /**
+     * Runs the full OpenGL ES 2.0 pipeline test offscreen.
+     */
+    @TimeoutReq(minutes = 100)
+    public void testFullPipelineOffscreen() throws Exception {
+        runBenchmark(BenchmarkName.FullPipeline, true, NUM_FRAMES, NUM_ITERATIONS, TIMEOUT);
+    }
+
+    /**
+     * Runs the full OpenGL ES 2.0 pipeline test onscreen.
+     */
+    @TimeoutReq(minutes = 100)
+    public void testFullPipelineOnscreen() throws Exception {
+        runBenchmark(BenchmarkName.FullPipeline, false, NUM_FRAMES, NUM_ITERATIONS, TIMEOUT);
+    }
+
+    /**
+     * Runs the pixel output test offscreen.
+     */
+    @TimeoutReq(minutes = 100)
+    public void testPixelOutputOffscreen() throws Exception {
+        runBenchmark(BenchmarkName.PixelOutput, true, NUM_FRAMES, NUM_ITERATIONS, TIMEOUT);
+    }
+
+    /**
+     * Runs the pixel output test onscreen.
+     */
+    @TimeoutReq(minutes = 100)
+    public void testPixelOutputOnscreen() throws Exception {
+        runBenchmark(BenchmarkName.PixelOutput, false, NUM_FRAMES, NUM_ITERATIONS, TIMEOUT);
+    }
+
+    /**
+     * Runs the shader performance test offscreen.
+     */
+    @TimeoutReq(minutes = 100)
+    public void testShaderPerfOffscreen() throws Exception {
+        runBenchmark(BenchmarkName.ShaderPerf, true, NUM_FRAMES, NUM_ITERATIONS, TIMEOUT);
+    }
+
+    /**
+     * Runs the shader performance test onscreen.
+     */
+    @TimeoutReq(minutes = 100)
+    public void testShaderPerfOnscreen() throws Exception {
+        runBenchmark(BenchmarkName.ShaderPerf, false, NUM_FRAMES, NUM_ITERATIONS, TIMEOUT);
+    }
+
+    /**
+     * Runs the context switch overhead test offscreen.
+     */
+    @TimeoutReq(minutes = 100)
+    public void testContextSwitchOffscreen() throws Exception {
+        runBenchmark(BenchmarkName.ContextSwitch, true, NUM_FRAMES, NUM_ITERATIONS, TIMEOUT);
+    }
+
+    /**
+     * Runs the context switch overhead test onscreen.
+     */
+    @TimeoutReq(minutes = 100)
+    public void testContextSwitchOnscreen() throws Exception {
+        runBenchmark(BenchmarkName.ContextSwitch, false, NUM_FRAMES, NUM_ITERATIONS, TIMEOUT);
+    }
+
+    /**
+     * Runs the specified test.
+     *
+     * @param benchmark An enum representing the benchmark to run.
+     * @param offscreen Whether to render to an offscreen framebuffer rather than the screen.
+     * @param numFrames The number of frames to render.
+     * @param numIterations The number of iterations to run, each iteration has a bigger workload.
+     * @param timeout The milliseconds to wait for an iteration of the benchmark before timing out.
+     * @throws Exception If the benchmark could not be run.
+     */
+    private void runBenchmark(BenchmarkName benchmark, boolean offscreen, int numFrames,
+            int numIterations, int timeout) throws Exception {
+        String benchmarkName = benchmark.toString();
+        Intent intent = new Intent();
+        intent.putExtra(GLActivityIntentKeys.INTENT_EXTRA_BENCHMARK_NAME, benchmarkName);
+        intent.putExtra(GLActivityIntentKeys.INTENT_EXTRA_OFFSCREEN, offscreen);
+        intent.putExtra(GLActivityIntentKeys.INTENT_EXTRA_NUM_FRAMES, numFrames);
+        intent.putExtra(GLActivityIntentKeys.INTENT_EXTRA_NUM_ITERATIONS, numIterations);
+        intent.putExtra(GLActivityIntentKeys.INTENT_EXTRA_TIMEOUT, timeout);
+
+        GLPrimitiveActivity activity = null;
+        setActivityIntent(intent);
+        activity = getActivity();
+        if (activity != null) {
+            activity.waitForCompletion();
+            double[] fpsValues = activity.mFpsValues;
+            double score = 0;
+            for (double d : fpsValues) {
+                score += d;
+            }
+            score /= numIterations;// Average.
+
+            // TODO: maybe standard deviation / RMSE will be useful?
+
+            getReportLog().printArray(
+                    "Fps Values", fpsValues, ResultType.HIGHER_BETTER, ResultUnit.FPS);
+            getReportLog().printSummary(
+                    "Average Frames Per Second", score, ResultType.HIGHER_BETTER,
+                    ResultUnit.SCORE);
+        }
+    }
+}
diff --git a/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/reference/GLGameActivity.java b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/reference/GLGameActivity.java
new file mode 100644
index 0000000..29b79f4
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/reference/GLGameActivity.java
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 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.
+ */
+package com.android.pts.opengl.reference;
+
+import com.android.pts.opengl.GLActivityIntentKeys;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.res.AssetManager;
+import android.cts.util.WatchDog;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.opengl.GLES20;
+import android.opengl.GLUtils;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.view.Surface;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Semaphore;
+
+public class GLGameActivity extends Activity {
+
+    public final static String SET_UP_TIME = "set_up_time";
+    public final static String UPDATE_TIMES = "update_times";
+    public final static String RENDER_TIMES = "render_times";
+
+    private int mNumFrames;
+    private int mTimeout;
+    private double[] mSetUpTimes;
+    private double[] mUpdateTimes;
+    private double[] mRenderTimes;
+    private volatile Surface mSurface = null;
+    private CountDownLatch mStartSignal = new CountDownLatch(1);
+
+    @Override
+    public void onCreate(Bundle data) {
+        super.onCreate(data);
+        System.loadLibrary("ptsopengl_jni");
+
+        Intent intent = getIntent();
+        mNumFrames = intent.getIntExtra(GLActivityIntentKeys.INTENT_EXTRA_NUM_FRAMES, 1000);
+        mTimeout = intent.getIntExtra(GLActivityIntentKeys.INTENT_EXTRA_TIMEOUT, 1000000);
+
+        SurfaceView surfaceView = new SurfaceView(this);
+        surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
+            @Override
+            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+                mSurface = holder.getSurface();
+                mStartSignal.countDown();
+            }
+
+            @Override
+            public void surfaceCreated(SurfaceHolder holder) {}
+
+            @Override
+            public void surfaceDestroyed(SurfaceHolder holder) {}
+        });
+        setContentView(surfaceView);
+
+        // Spawns a worker.
+        Worker worker = new Worker(new Handler() {
+            public void handleMessage(Message msg) {
+                Intent intent = new Intent();
+                intent.putExtra(SET_UP_TIME, mSetUpTimes);
+                intent.putExtra(UPDATE_TIMES, mUpdateTimes);
+                intent.putExtra(RENDER_TIMES, mRenderTimes);
+                setResult((msg.what == 1) ? RESULT_OK : RESULT_CANCELED, intent);
+                finish();
+            }
+        });
+        worker.start();
+    }
+
+    private static native boolean startBenchmark(AssetManager manager,
+            Surface surface,
+            int numFrames,
+            double[] setUpTimes,
+            double[] updateTimes,
+            double[] renderTimes);
+
+    /**
+     * This thread renderers the benchmarks, freeing the UI thread.
+     */
+    private class Worker extends Thread implements WatchDog.TimeoutCallback {
+
+        private WatchDog watchDog;
+        private Handler mHandler;
+
+        public Worker(Handler handler) {
+            mHandler = handler;
+        }
+
+        @Override
+        public void run() {
+            try {
+                mStartSignal.await();
+            } catch (InterruptedException e) {
+                mHandler.sendEmptyMessage(0);
+                return;
+            }
+            // Creates a watchdog to ensure a iteration doesn't exceed the timeout.
+            watchDog = new WatchDog(mTimeout, this);
+            watchDog.start();
+
+            // Used to record the time taken to setup (GL, context, textures, meshes).
+            mSetUpTimes = new double[4];
+            // Used to record the times taken to update.
+            mUpdateTimes = new double[mNumFrames];
+            // Used to record the times taken to render.
+            mRenderTimes = new double[mNumFrames];
+            boolean success = startBenchmark(getAssets(),
+                    mSurface,
+                    mNumFrames,
+                    mSetUpTimes,
+                    mUpdateTimes,
+                    mRenderTimes);
+
+            watchDog.stop();
+            mHandler.sendEmptyMessage((success) ? 1 : 0);
+        }
+
+        public void onTimeout() {
+            mHandler.sendEmptyMessage(0);
+        }
+
+    }
+
+    public static int loadTexture(AssetManager manager, String path) {
+        InputStream in = null;
+        try {
+            in = manager.open(path);
+        } catch (IOException e) {
+            e.printStackTrace();
+            return -1;
+        }
+        BitmapFactory.Options op = new BitmapFactory.Options();
+        op.inPreferredConfig = Bitmap.Config.ARGB_8888;
+        Bitmap bmp = BitmapFactory.decodeStream(in, null, op);
+        // generate textureID
+        int[] textures = new int[1];
+        GLES20.glGenTextures(1, textures, 0);
+        int textureID = textures[0];
+
+        // create texture
+        GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureID);
+        GLES20.glTexParameteri(
+                GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
+        GLES20.glTexParameteri(
+                GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
+        GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_REPEAT);
+        GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_REPEAT);
+        GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bmp, 0);
+
+        // clean up
+        try {
+            in.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            bmp.recycle();
+        }
+        return textureID;
+    }
+}
diff --git a/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/reference/GLReferenceActivity.java b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/reference/GLReferenceActivity.java
new file mode 100644
index 0000000..09f97c5
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/reference/GLReferenceActivity.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 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.
+ */
+package com.android.pts.opengl.reference;
+
+import com.android.pts.opengl.GLActivityIntentKeys;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+
+import java.util.HashMap;
+import java.util.concurrent.Semaphore;
+
+public class GLReferenceActivity extends Activity {
+
+    private final static int GAME_ACTIVITY_CODE = 1;
+
+    private int mNumFrames;
+    private int mTimeout;
+
+    public boolean mSuccess = false;
+    public double[] mSetUpTimes;
+    public double[] mUpdateTimes;
+    public double[] mRenderTimes;
+
+    private Semaphore mSemaphore = new Semaphore(0);
+
+    @Override
+    public void onCreate(Bundle data) {
+        super.onCreate(data);
+        Intent intent = getIntent();
+        mNumFrames = intent.getIntExtra(GLActivityIntentKeys.INTENT_EXTRA_NUM_FRAMES, 0);
+        mTimeout = intent.getIntExtra(GLActivityIntentKeys.INTENT_EXTRA_TIMEOUT, 0);
+
+        // Start benchmark
+        intent = new Intent(this, GLGameActivity.class);
+        intent.putExtra(GLActivityIntentKeys.INTENT_EXTRA_NUM_FRAMES, mNumFrames);
+        intent.putExtra(GLActivityIntentKeys.INTENT_EXTRA_TIMEOUT, mTimeout);
+        startActivityForResult(intent, GAME_ACTIVITY_CODE);
+    }
+
+    public void waitForCompletion() throws Exception {
+        // Wait for semiphore.
+        mSemaphore.acquire();
+    }
+
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == GAME_ACTIVITY_CODE) {
+            if (resultCode == RESULT_OK) {
+                // Benchmark passed
+                mSuccess = true;
+                mSetUpTimes = data.getDoubleArrayExtra(GLGameActivity.SET_UP_TIME);
+                mUpdateTimes = data.getDoubleArrayExtra(GLGameActivity.UPDATE_TIMES);
+                mRenderTimes = data.getDoubleArrayExtra(GLGameActivity.RENDER_TIMES);
+            }
+            // Release semiphore.
+            mSemaphore.release();
+            finish();
+        }
+    }
+
+}
diff --git a/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/reference/GLReferenceBenchmark.java b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/reference/GLReferenceBenchmark.java
new file mode 100644
index 0000000..0f01759
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/src/com/android/pts/opengl/reference/GLReferenceBenchmark.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 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.
+ */
+package com.android.pts.opengl.reference;
+
+import com.android.pts.opengl.GLActivityIntentKeys;
+import com.android.pts.util.PtsActivityInstrumentationTestCase2;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+
+import android.content.Context;
+import android.content.Intent;
+import android.cts.util.TimeoutReq;
+import android.view.Display;
+import android.view.WindowManager;
+
+import java.util.Arrays;
+
+/**
+ * Runs the Reference OpenGL ES 2.0 Benchmark.
+ */
+public class GLReferenceBenchmark extends PtsActivityInstrumentationTestCase2<GLReferenceActivity> {
+
+    private static final int NUM_FRAMES_PER_SCENE = 500;
+    private static final int NUM_SCENES = 2;
+    private static final int NUM_FRAMES = NUM_FRAMES_PER_SCENE * NUM_SCENES;
+    private static final int TIMEOUT = 1000000;
+
+    public GLReferenceBenchmark() {
+        super(GLReferenceActivity.class);
+    }
+
+    /**
+     * Runs the reference benchmark.
+     */
+    @TimeoutReq(minutes = 30)
+    public void testReferenceBenchmark() throws Exception {
+        Intent intent = new Intent();
+        intent.putExtra(GLActivityIntentKeys.INTENT_EXTRA_NUM_FRAMES, NUM_FRAMES);
+        intent.putExtra(GLActivityIntentKeys.INTENT_EXTRA_TIMEOUT, TIMEOUT);
+
+        GLReferenceActivity activity = null;
+        setActivityIntent(intent);
+        activity = getActivity();
+        if (activity != null) {
+            activity.waitForCompletion();
+            double totalTime = 0;
+            if (activity.mSuccess) {
+                double[] setUpTimes = activity.mSetUpTimes;
+                double[] updateTimes = activity.mUpdateTimes;
+                double[] renderTimes = activity.mRenderTimes;
+
+                // Calculate update and render average.
+                double updateSum = updateTimes[0];
+                double renderSum = renderTimes[0];
+                for (int i = 0; i < NUM_FRAMES - 1; i++) {
+                    updateSum += updateTimes[i + 1];
+                    renderSum += renderTimes[i + 1];
+                }
+                double updateAverage = updateSum / NUM_FRAMES;
+                double renderAverage = renderSum / NUM_FRAMES;
+
+                /* Held back for now
+                getReportLog().printArray(
+                        "Set Up Times", setUpTimes, ResultType.LOWER_BETTER, ResultUnit.MS);
+                getReportLog().printArray(
+                        "Update Times", updateTimes, ResultType.LOWER_BETTER, ResultUnit.MS);
+                getReportLog().printValue(
+                        "Update Time Average", updateAverage, ResultType.LOWER_BETTER,
+                        ResultUnit.MS);
+                getReportLog().printArray(
+                        "Render Times", renderTimes, ResultType.LOWER_BETTER, ResultUnit.MS);
+                getReportLog().printValue(
+                        "Render Time Average", renderAverage, ResultType.LOWER_BETTER,
+                        ResultUnit.MS);
+                totalTime = setUpTimes[0] + setUpTimes[1] + setUpTimes[2] +
+                        setUpTimes[3] + updateAverage + renderAverage;
+                 */
+            } else {
+                // TODO benchmark failed to run
+            }
+            /*
+            getReportLog().printSummary(
+                    "Total Time", totalTime, ResultType.LOWER_BETTER, ResultUnit.MS);
+             */
+        }
+    }
+}
diff --git a/suite/pts/deviceTests/opengl/test/Android.mk b/suite/pts/deviceTests/opengl/test/Android.mk
new file mode 100644
index 0000000..faf5f16
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/test/Android.mk
@@ -0,0 +1,34 @@
+#
+# Copyright (C) 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.
+
+# build only for linux
+ifeq ($(HOST_OS),linux)
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(patsubst ./%,%, $(shell cd $(LOCAL_PATH); \
+  find . -name "*.cpp" -and -not -name ".*"))
+LOCAL_SRC_FILES += ../jni/graphics/Matrix.cpp
+
+#$(info $(LOCAL_SRC_FILES))
+LOCAL_C_INCLUDES += external/gtest/include $(LOCAL_PATH)/../jni/graphics/
+LOCAL_STATIC_LIBRARIES := libutils libcutils libgtest_host libgtest_main_host liblog
+LOCAL_LDFLAGS:= -g -lrt -ldl -lstdc++ -lm -fno-exceptions
+LOCAL_MODULE:= pts_device_opengl_test
+include $(BUILD_HOST_EXECUTABLE)
+
+endif # linux
diff --git a/suite/pts/deviceTests/opengl/test/MatrixTest.cpp b/suite/pts/deviceTests/opengl/test/MatrixTest.cpp
new file mode 100644
index 0000000..d78dfc4
--- /dev/null
+++ b/suite/pts/deviceTests/opengl/test/MatrixTest.cpp
@@ -0,0 +1,242 @@
+/*
+ * Copyright (C) 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 <gtest/gtest.h>
+#include <math.h>
+
+#include "Matrix.h"
+
+class MatrixTest: public testing::Test {
+public:
+
+};
+
+void checkValues(const float* arr1, const float* arr2, const int size) {
+    for (int i = 0; i < size; i++) {
+        ASSERT_FLOAT_EQ(arr1[i], arr2[i]);
+    }
+}
+
+TEST(MatrixTest, matrixEqualityTest) {
+    // Create two identity matrixes.
+    Matrix m1;
+    Matrix m2;
+    // Change some random values.
+    m1.mData[4] = 9;
+    m2.mData[4] = 9;
+    // Check they are the same.
+    ASSERT_TRUE(m1.equals(m2));
+    Matrix* clone = new Matrix(m1);
+    ASSERT_TRUE(clone != NULL);
+    ASSERT_TRUE(m1.equals(*clone));
+    delete clone;
+}
+
+TEST(MatrixTest, matrixIdentityTest) {
+    // Create an identity matrix.
+    Matrix m;
+    float expected[] = {
+        1.0f, 0.0f, 0.0f, 0.0f,
+        0.0f, 1.0f, 0.0f, 0.0f,
+        0.0f, 0.0f, 1.0f, 0.0f,
+        0.0f, 0.0f, 0.0f, 1.0f};
+    // Check values
+    checkValues(m.mData, expected, Matrix::MATRIX_SIZE);
+}
+
+TEST(MatrixTest, matrixLoadWithTest) {
+    // Create a matrix.
+    Matrix m1;
+    float* d1 = m1.mData;
+    float data[Matrix::MATRIX_SIZE];
+
+    // Fill with rubbish
+    for (int i = 0; i < Matrix::MATRIX_SIZE; i++) {
+        d1[i] = i;
+        data[i] = i;
+    }
+
+    // Create another matrix
+    Matrix m2;
+
+    // Load second matrix with first
+    m2.loadWith(m1);
+
+    // Check values
+    checkValues(m2.mData, data, Matrix::MATRIX_SIZE);
+}
+
+TEST(MatrixTest, matrixTranslateTest) {
+    Matrix m1;
+    m1.translate(10, 5, 6);
+    Matrix* m2 = Matrix::newTranslate(10, 5, 6);
+    ASSERT_TRUE(m2 != NULL);
+    ASSERT_TRUE(m1.equals(*m2));
+    delete m2;
+}
+
+TEST(MatrixTest, matrixScaleTest) {
+    Matrix m1;
+    m1.scale(10, 5, 6);
+    Matrix* m2 = Matrix::newScale(10, 5, 6);
+    ASSERT_TRUE(m2 != NULL);
+    ASSERT_TRUE(m1.equals(*m2));
+    delete m2;
+}
+
+TEST(MatrixTest, matrixRotateTest) {
+    Matrix m1;
+    m1.rotate(180, 1, 0, 1);
+    Matrix* m2 = Matrix::newRotate(180, 1, 0, 1);
+    ASSERT_TRUE(m2 != NULL);
+    ASSERT_TRUE(m1.equals(*m2));
+    delete m2;
+}
+
+TEST(MatrixTest, matrixMultiplyTest) {
+    // Create three identity matrixes.
+    Matrix m1;
+    Matrix m2;
+    Matrix m3;
+    float* d1 = m1.mData;
+    float* d2 = m2.mData;
+
+    m3.multiply(m1, m2);
+    // Multiplication of identity matrixes should give identity
+    ASSERT_TRUE(m3.equals(m1));
+
+    // Fill with ascending numbers
+    for (int i = 0; i < Matrix::MATRIX_SIZE; i++) {
+        d1[i] = i;
+        d2[i] = i;
+    }
+    m3.multiply(m1, m2);
+
+    // Check against expected
+    float expected[] = {
+        56, 62, 68, 74,
+        152, 174, 196, 218,
+        248, 286, 324, 362,
+        344, 398, 452, 506};
+    checkValues(m3.mData, expected, Matrix::MATRIX_SIZE);
+}
+
+TEST(MatrixTest, matrixNewLookAtTest) {
+    // Position the eye in front of the origin.
+    float eyeX = 0.0f;
+    float eyeY = 0.0f;
+    float eyeZ = 6.0f;
+
+    // We are looking at the origin
+    float centerX = 0.0f;
+    float centerY = 0.0f;
+    float centerZ = 0.0f;
+
+    // Set our up vector. This is where our head would be pointing were we holding the camera.
+    float upX = 0.0f;
+    float upY = 1.0f;
+    float upZ = 0.0f;
+
+    // Set the view matrix. This matrix can be said to represent the camera position.
+    Matrix* m = Matrix::newLookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ,
+            upX, upY, upZ);
+    ASSERT_TRUE(m != NULL);
+    float expected[] = {
+        1.0f, 0.0f, 0.0f, 0.0f,
+        0.0f, 1.0f, 0.0f, 0.0f,
+        0.0f, 0.0f, 1.0f, 0.0f,
+        0.0f, 0.0f, -6.0f, 1.0f};
+    // Check values
+    checkValues(m->mData, expected, Matrix::MATRIX_SIZE);
+    delete m;
+}
+
+TEST(MatrixTest, matrixNewFrustumTest) {
+    float ratio = (float) 800 / 600;
+    float left = -ratio;
+    float right = ratio;
+    float bottom = -1.0f;
+    float top = 1.0f;
+    float near = 1.0f;
+    float far = 8.0f;
+
+    Matrix* m = Matrix::newFrustum(left, right, bottom, top, near, far);
+    ASSERT_TRUE(m != NULL);
+    float expected[] = {
+        0.75f, 0.0f, 0.0f, 0.0f,
+        0.0f, 1.0f, 0.0f, 0.0f,
+        0.0f, 0.0f, 9.0f / -7.0f, -1.0f,
+        0.0f, 0.0f, 16.0f / -7.0f, 0.0f};
+    // Check values
+    checkValues(m->mData, expected, Matrix::MATRIX_SIZE);
+    delete m;
+}
+
+TEST(MatrixTest, matrixNewTranslateTest) {
+    Matrix* m = Matrix::newTranslate(5, 6, 8);
+    ASSERT_TRUE(m != NULL);
+    float expected[] = {
+        1.0f, 0.0f, 0.0f, 0.0f,
+        0.0f, 1.0f, 0.0f, 0.0f,
+        0.0f, 0.0f, 1.0f, 0.0f,
+        5.0f, 6.0f, 8.0f, 1.0f};
+    // Check values
+    checkValues(m->mData, expected, Matrix::MATRIX_SIZE);
+    delete m;
+}
+
+TEST(MatrixTest, matrixNewScaleTest) {
+    Matrix* m = Matrix::newScale(3, 7, 2);
+    ASSERT_TRUE(m != NULL);
+    float expected[] = {
+        3.0f, 0.0f, 0.0f, 0.0f,
+        0.0f, 7.0f, 0.0f, 0.0f,
+        0.0f, 0.0f, 2.0f, 0.0f,
+        0.0f, 0.0f, 0.0f, 1.0f};
+    // Check values
+    checkValues(m->mData, expected, Matrix::MATRIX_SIZE);
+    delete m;
+}
+
+TEST(MatrixTest, matrixNewRotateTest) {
+    Matrix* m = Matrix::newRotate(45.0f, 0.0f, 1.0f, 0.0f);
+    ASSERT_TRUE(m != NULL);
+    float radians = 45.0f * (M_PI / 180.0f);
+    float sin = sinf(radians);
+    float cos = cosf(radians);
+    float expected[] = {
+        cos, 0.0f, -sin, 0.0f,
+        0.0f, 1.0f, 0.0f, 0.0f,
+        sin, 0.0f, cos, 0.0f,
+        0.0f, 0.0f, 0.0f, 1.0f};
+    // Check values
+    checkValues(m->mData, expected, Matrix::MATRIX_SIZE);
+    delete m;
+}
+
+TEST(MatrixTest, matrixMultiplyVectorTest) {
+    float in[] = {2, 4, 6, 8};
+    float out[4];
+    Matrix m;
+    float* d = m.mData;
+    // Fill with rubbish
+    for (int i = 0; i < Matrix::MATRIX_SIZE; i++) {
+        d[i] = i;
+    }
+    float expected[] = {40, 120, 200, 280};
+    Matrix::multiplyVector(out, m, in);
+    checkValues(out, expected, 4);
+}
diff --git a/suite/pts/deviceTests/ptsutil/Android.mk b/suite/pts/deviceTests/ptsutil/Android.mk
new file mode 100644
index 0000000..d488442
--- /dev/null
+++ b/suite/pts/deviceTests/ptsutil/Android.mk
@@ -0,0 +1,31 @@
+# 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)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
+
+LOCAL_MODULE := ptsutil
+
+LOCAL_STATIC_JAVA_LIBRARIES := ptscommonutil
+
+LOCAL_SDK_VERSION := 16
+
+include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java
new file mode 100644
index 0000000..80f3850
--- /dev/null
+++ b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.util;
+
+import android.app.Instrumentation;
+import android.os.Bundle;
+import android.util.Log;
+
+import java.lang.Exception;
+
+public class DeviceReportLog extends ReportLog {
+    private static final String TAG = "DevicePtsReport";
+    private static final String PTS_RESULT = "PTS_RESULT";
+    private static final int INST_STATUS_IN_PROGRESS = 2;
+
+    DeviceReportLog() {
+        mDepth = 4;
+    }
+
+    @Override
+    protected void printLog(String msg) {
+        Log.i(TAG, msg);
+    }
+
+    public void deliverReportToHost(Instrumentation instrumentation) {
+        Log.i(TAG, "deliverReportToHost");
+        String report = generateReport();
+        if (!report.equals("")) {
+            Bundle output = new Bundle();
+            output.putString(PTS_RESULT, report);
+            instrumentation.sendStatus(INST_STATUS_IN_PROGRESS, output);
+        }
+    }
+}
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DummyActivity.java b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DummyActivity.java
new file mode 100644
index 0000000..c3ceb9f
--- /dev/null
+++ b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DummyActivity.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 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.
+ */
+
+
+package com.android.pts.util;
+
+import android.app.Activity;
+
+public class DummyActivity extends Activity {
+
+}
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsActivityInstrumentationTestCase2.java b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsActivityInstrumentationTestCase2.java
new file mode 100644
index 0000000..a14be01
--- /dev/null
+++ b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsActivityInstrumentationTestCase2.java
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+
+package com.android.pts.util;
+
+import android.app.Activity;
+import android.test.ActivityInstrumentationTestCase2;
+
+
+public class PtsActivityInstrumentationTestCase2<T extends Activity> extends
+        ActivityInstrumentationTestCase2<T> {
+
+    private DeviceReportLog mReportLog = new DeviceReportLog();
+
+    public PtsActivityInstrumentationTestCase2(Class<T> activityClass) {
+        super(activityClass);
+    }
+
+    public ReportLog getReportLog() {
+        return mReportLog;
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        mReportLog.deliverReportToHost(getInstrumentation());
+        super.tearDown();
+    }
+
+}
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsAndroidTestCase.java b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsAndroidTestCase.java
new file mode 100644
index 0000000..6da7bdc
--- /dev/null
+++ b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsAndroidTestCase.java
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+
+package com.android.pts.util;
+
+import android.content.Context;
+import android.test.AndroidTestCase;
+
+/**
+ *  This class emulates AndroidTestCase, but internally it is ActivityInstrumentationTestCase2
+ *  to access Instrumentation.
+ *  DummyActivity is not supposed to be accessed.
+ */
+public class PtsAndroidTestCase extends PtsActivityInstrumentationTestCase2<DummyActivity> {
+    public PtsAndroidTestCase() {
+        super(DummyActivity.class);
+    }
+
+    public Context getContext() {
+        return getInstrumentation().getContext();
+    }
+}
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/SystemUtil.java b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/SystemUtil.java
new file mode 100644
index 0000000..7975463
--- /dev/null
+++ b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/SystemUtil.java
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.util;
+
+import android.app.ActivityManager;
+import android.app.ActivityManager.MemoryInfo;
+import android.content.Context;
+import android.os.StatFs;
+
+public class SystemUtil {
+    public static long getFreeDiskSize(Context context) {
+        StatFs statFs = new StatFs(context.getFilesDir().getAbsolutePath());
+        return (long)statFs.getAvailableBlocks() * statFs.getBlockSize();
+    }
+
+    public static long getFreeMemory(Context context) {
+        MemoryInfo info = new MemoryInfo();
+        ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
+        activityManager.getMemoryInfo(info);
+        return info.availMem;
+    }
+
+    public static long getTotalMemory(Context context) {
+        MemoryInfo info = new MemoryInfo();
+        ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
+        activityManager.getMemoryInfo(info);
+        return info.totalMem; // TODO totalMem N/A in ICS.
+    }
+}
diff --git a/suite/pts/deviceTests/simplecpu/Android.mk b/suite/pts/deviceTests/simplecpu/Android.mk
new file mode 100644
index 0000000..69db471
--- /dev/null
+++ b/suite/pts/deviceTests/simplecpu/Android.mk
@@ -0,0 +1,35 @@
+# 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)
+include $(CLEAR_VARS)
+
+# don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+
+LOCAL_JNI_SHARED_LIBRARIES := libptscpu_jni
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := PtsDeviceSimpleCpu
+
+LOCAL_SDK_VERSION := 16
+
+include $(BUILD_CTS_PACKAGE)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/suite/pts/deviceTests/simplecpu/AndroidManifest.xml b/suite/pts/deviceTests/simplecpu/AndroidManifest.xml
new file mode 100644
index 0000000..930bcbd
--- /dev/null
+++ b/suite/pts/deviceTests/simplecpu/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.pts.simplecpu">
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+    </application>
+    <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
+            android:targetPackage="com.android.pts.simplecpu"
+            android:label="Vesy simple CPU benchmarking" />
+</manifest>
diff --git a/suite/pts/deviceTests/simplecpu/jni/Android.mk b/suite/pts/deviceTests/simplecpu/jni/Android.mk
new file mode 100644
index 0000000..9c34e0e
--- /dev/null
+++ b/suite/pts/deviceTests/simplecpu/jni/Android.mk
@@ -0,0 +1,31 @@
+# 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)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE    := libptscpu_jni
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_SRC_FILES := CpuNativeJni.cpp
+
+LOCAL_C_INCLUDES := $(JNI_H_INCLUDE)
+
+LOCAL_SHARED_LIBRARIES := libnativehelper
+
+LOCAL_SDK_VERSION := 14
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/suite/pts/deviceTests/simplecpu/jni/CpuNativeJni.cpp b/suite/pts/deviceTests/simplecpu/jni/CpuNativeJni.cpp
new file mode 100644
index 0000000..851f35e
--- /dev/null
+++ b/suite/pts/deviceTests/simplecpu/jni/CpuNativeJni.cpp
@@ -0,0 +1,270 @@
+/*
+ * 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.
+ */
+
+#include <jni.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+
+/* Code from now to qsort_local all copied from bionic source.
+ * The code is duplicated here to remove dependency on optimized bionic
+ */
+static __inline char    *med3(char *, char *, char *, int (*)(const void *, const void *));
+static __inline void     swapfunc(char *, char *, int, int);
+
+#define min(a, b)   (a) < (b) ? a : b
+
+/*
+ * Qsort routine from Bentley & McIlroy's "Engineering a Sort Function".
+ */
+#define swapcode(TYPE, parmi, parmj, n) {       \
+    long i = (n) / sizeof (TYPE);           \
+    TYPE *pi = (TYPE *) (parmi);            \
+    TYPE *pj = (TYPE *) (parmj);            \
+    do {                        \
+        TYPE    t = *pi;            \
+        *pi++ = *pj;                \
+        *pj++ = t;              \
+        } while (--i > 0);              \
+}
+
+#define SWAPINIT(a, es) swaptype = ((char *)a - (char *)0) % sizeof(long) || \
+    es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1;
+
+static __inline void
+swapfunc(char *a, char *b, int n, int swaptype)
+{
+    if (swaptype <= 1)
+        swapcode(long, a, b, n)
+    else
+        swapcode(char, a, b, n)
+}
+
+#define swap(a, b)                  \
+    if (swaptype == 0) {                \
+        long t = *(long *)(a);          \
+        *(long *)(a) = *(long *)(b);        \
+        *(long *)(b) = t;           \
+    } else                      \
+        swapfunc(a, b, es, swaptype)
+
+#define vecswap(a, b, n)    if ((n) > 0) swapfunc(a, b, n, swaptype)
+
+static __inline char *
+med3(char *a, char *b, char *c, int (*cmp)(const void *, const void *))
+{
+    return cmp(a, b) < 0 ?
+           (cmp(b, c) < 0 ? b : (cmp(a, c) < 0 ? c : a ))
+              :(cmp(b, c) > 0 ? b : (cmp(a, c) < 0 ? a : c ));
+}
+
+void
+qsort_local(void *aa, size_t n, size_t es, int (*cmp)(const void *, const void *))
+{
+    char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
+    int d, r, swaptype, swap_cnt;
+    char *a = (char*)aa;
+
+loop:   SWAPINIT(a, es);
+    swap_cnt = 0;
+    if (n < 7) {
+        for (pm = (char *)a + es; pm < (char *) a + n * es; pm += es)
+            for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0;
+                 pl -= es)
+                swap(pl, pl - es);
+        return;
+    }
+    pm = (char *)a + (n / 2) * es;
+    if (n > 7) {
+        pl = (char *)a;
+        pn = (char *)a + (n - 1) * es;
+        if (n > 40) {
+            d = (n / 8) * es;
+            pl = med3(pl, pl + d, pl + 2 * d, cmp);
+            pm = med3(pm - d, pm, pm + d, cmp);
+            pn = med3(pn - 2 * d, pn - d, pn, cmp);
+        }
+        pm = med3(pl, pm, pn, cmp);
+    }
+    swap(a, pm);
+    pa = pb = (char *)a + es;
+
+    pc = pd = (char *)a + (n - 1) * es;
+    for (;;) {
+        while (pb <= pc && (r = cmp(pb, a)) <= 0) {
+            if (r == 0) {
+                swap_cnt = 1;
+                swap(pa, pb);
+                pa += es;
+            }
+            pb += es;
+        }
+        while (pb <= pc && (r = cmp(pc, a)) >= 0) {
+            if (r == 0) {
+                swap_cnt = 1;
+                swap(pc, pd);
+                pd -= es;
+            }
+            pc -= es;
+        }
+        if (pb > pc)
+            break;
+        swap(pb, pc);
+        swap_cnt = 1;
+        pb += es;
+        pc -= es;
+    }
+    if (swap_cnt == 0) {  /* Switch to insertion sort */
+        for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es)
+            for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0;
+                 pl -= es)
+                swap(pl, pl - es);
+        return;
+    }
+
+    pn = (char *)a + n * es;
+    r = min(pa - (char *)a, pb - pa);
+    vecswap(a, pb - r, r);
+    r = min(pd - pc, pn - pd - (int)es);
+    vecswap(pb, pn - r, r);
+    if ((r = pb - pa) > (int)es)
+        qsort_local(a, r / es, es, cmp);
+    if ((r = pd - pc) > (int)es) {
+        /* Iterate rather than recurse to save stack space */
+        a = pn - r;
+        n = r / es;
+        goto loop;
+    }
+    /* qsort(pn - r, r / es, es, cmp); */
+}
+
+/* code duplication ends here */
+
+/**
+ * Util for getting time stamp
+ */
+double currentTimeMillis()
+{
+    struct timeval tv;
+    gettimeofday(&tv, (struct timezone *) NULL);
+    return tv.tv_sec * 1000.0 + tv.tv_usec / 1000.0;
+}
+
+/**
+ * Initialize given array randomly for the given seed
+ */
+template <typename T> void randomInitArray(T* array, int len, unsigned int seed)
+{
+    srand(seed);
+    for (int i = 0; i < len; i++) {
+        array[i] = (T) rand();
+    }
+}
+
+/**
+ * comparison function for int, for qsort
+ */
+int cmpint(const void* p1, const void* p2)
+{
+    return *(int*)p1 - *(int*)p2;
+}
+
+extern "C" JNIEXPORT jdouble JNICALL Java_com_android_pts_simplecpu_CpuNative_runSort(JNIEnv* env,
+        jclass clazz, jint numberElements, jint repetition)
+{
+    int* data = new int[numberElements];
+    if (data == NULL) {
+        env->ThrowNew(env->FindClass("java/lang/OutOfMemoryError"), "No memory");
+        return -1;
+    }
+    double totalTime = 0;
+    for (int i = 0; i < repetition; i++) {
+        randomInitArray<int>(data, numberElements, 0);
+        double start = currentTimeMillis();
+        qsort_local(data, numberElements, sizeof(int), cmpint);
+        double end = currentTimeMillis();
+        totalTime += (end - start);
+    }
+    delete[] data;
+    return totalTime;
+}
+
+
+/**
+ * Do matrix multiplication, C = A x B with all matrices having dimension of n x n
+ * The implementation is not in the most efficient, but it is good enough for benchmarking purpose.
+ * @param n should be multiple of 8
+ */
+void doMatrixMultiplication(float* A, float* B, float* C, int n)
+{
+    // batch size
+    const int M = 8;
+    for (int i = 0; i < n; i++) {
+        for (int j = 0; j < n; j += M) {
+            float sum[M];
+            for (int k = 0; k < M; k++) {
+                sum[k] = 0;
+            }
+            // re-use the whole cache line for accessing B.
+            // otherwise, the whole line will be read and only one value will be used.
+
+            for (int k = 0; k < n; k++) {
+                float a = A[i * n + k];
+                sum[0] += a * B[k * n + j];
+                sum[1] += a * B[k * n + j + 1];
+                sum[2] += a * B[k * n + j + 2];
+                sum[3] += a * B[k * n + j + 3];
+                sum[4] += a * B[k * n + j + 4];
+                sum[5] += a * B[k * n + j + 5];
+                sum[6] += a * B[k * n + j + 6];
+                sum[7] += a * B[k * n + j + 7];
+            }
+            for (int k = 0; k < M; k++) {
+                C[i * n + j + k] = sum[k];
+            }
+        }
+    }
+}
+
+extern "C" JNIEXPORT jdouble JNICALL Java_com_android_pts_simplecpu_CpuNative_runMatrixMultiplication(
+        JNIEnv* env, jclass clazz, jint n, jint repetition)
+{
+    // C = A x B
+    float* A = new float[n * n];
+    float* B = new float[n * n];
+    float* C = new float[n * n];
+    if ((A == NULL) || (B == NULL) || (C == NULL)) {
+        delete[] A;
+        delete[] B;
+        delete[] C;
+        env->ThrowNew(env->FindClass("java/lang/OutOfMemoryError"), "No memory");
+        return -1;
+    }
+    double totalTime = 0;
+    for (int i = 0; i < repetition; i++) {
+        randomInitArray<float>(A, n * n, 0);
+        randomInitArray<float>(B, n * n, 1);
+        double start = currentTimeMillis();
+        doMatrixMultiplication(A, B, C, n);
+        double end = currentTimeMillis();
+        totalTime += (end - start);
+    }
+    delete[] A;
+    delete[] B;
+    delete[] C;
+    return totalTime;
+}
+
diff --git a/suite/pts/deviceTests/simplecpu/src/com/android/pts/simplecpu/CpuNative.java b/suite/pts/deviceTests/simplecpu/src/com/android/pts/simplecpu/CpuNative.java
new file mode 100644
index 0000000..43c4b50
--- /dev/null
+++ b/suite/pts/deviceTests/simplecpu/src/com/android/pts/simplecpu/CpuNative.java
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.simplecpu;
+
+public class CpuNative {
+    static {
+        System.loadLibrary("ptscpu_jni");
+    }
+    /**
+     * run qsort for given number of repetition
+     * with each having the size of bufferSize.
+     * @param numberElements
+     * @param repeatition
+     * @return time taken for computation, added for all repetition in ms
+     */
+    public static native double runSort(int numberElements, int repetition);
+
+    /**
+     * run matrix multiplication of (n x n) x (n x n)
+     *
+     * @param n dimension, should be multiple of 8
+     * @param repetition
+     * @return time taken for computation, added for all repetition in ms
+     */
+    public static native double runMatrixMultiplication(int n, int repetition);
+}
diff --git a/suite/pts/deviceTests/simplecpu/src/com/android/pts/simplecpu/SimpleCpuTest.java b/suite/pts/deviceTests/simplecpu/src/com/android/pts/simplecpu/SimpleCpuTest.java
new file mode 100644
index 0000000..8278618
--- /dev/null
+++ b/suite/pts/deviceTests/simplecpu/src/com/android/pts/simplecpu/SimpleCpuTest.java
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.simplecpu;
+
+import android.cts.util.TimeoutReq;
+import android.util.Log;
+
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.pts.util.PtsAndroidTestCase;
+import com.android.pts.util.ReportLog;
+import com.android.pts.util.Stat;
+
+/**
+ * Very simple CPU benchmarking to check the basic capability of CPU.
+ * Cases include
+ *   qsort
+ *   matrix multiplication (for floating point performance)
+ */
+public class SimpleCpuTest extends PtsAndroidTestCase {
+    private static final String TAG = "BandwidthTest";
+    private static final int KB = 1024;
+    private static final int MB = 1024 * 1024;
+    private static final int NUMBER_REPEAT = 20;
+    // reject data outside +/- this value * median
+    private static final double OUTLIER_THRESHOLD = 0.1;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        warmUpCpu();
+    }
+
+    public void testSort004KB() {
+        doTestSort(NUMBER_REPEAT, 4 * KB);
+    }
+
+    public void testSort128KB() {
+        doTestSort(NUMBER_REPEAT, 128 * KB);
+    }
+
+    public void testSort001MB() {
+        doTestSort(NUMBER_REPEAT, 1 * MB);
+    }
+
+    // will fit into L1
+    public void testMatrixMultiplication032() {
+        doMatrixMultiplication(NUMBER_REPEAT, 32);
+    }
+
+    // mostly fit into L2
+    public void testMatrixMultiplication128() {
+        doMatrixMultiplication(NUMBER_REPEAT, 128);
+    }
+
+    // may fit into L2
+    public void testMatrixMultiplication200() {
+        doMatrixMultiplication(NUMBER_REPEAT, 200);
+    }
+
+    public void testMatrixMultiplication400() {
+        doMatrixMultiplication(NUMBER_REPEAT, 400);
+    }
+
+    // will exceed L2
+    @TimeoutReq(minutes = 20)
+    public void testMatrixMultiplication600() {
+        doMatrixMultiplication(NUMBER_REPEAT, 600);
+    }
+
+    /**
+     * run some code to force full CPU freq.
+     */
+    private void warmUpCpu() {
+        CpuNative.runSort(1 * MB, 10);
+    }
+
+    /**
+     * qsort test
+     * @param numberRepeat
+     * @param arrayLength
+     */
+    private void doTestSort(int numberRepeat, int arrayLength) {
+        final int numberRepeatInEachCall = 10;
+        double[] result = new double[numberRepeat];
+        for (int i = 0; i < numberRepeat; i++) {
+            result[i] = CpuNative.runSort(arrayLength, numberRepeatInEachCall);
+        }
+        getReportLog().printArray("sorting time", result, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+        Stat.StatResult stat = Stat.getStatWithOutlierRejection(result, OUTLIER_THRESHOLD);
+        if (stat.mDataCount != result.length) {
+            Log.w(TAG, "rejecting " + (result.length - stat.mDataCount) + " outliers");
+        }
+        getReportLog().printSummary("sorting time", stat.mAverage, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+    }
+
+    /**
+     * Matrix multiplication test, nxn matrix multiplication
+     * @param numberRepeat
+     * @param n should be multiple of 8
+     */
+    private void doMatrixMultiplication(int numberRepeat, int n) {
+        assertTrue(n % 8 == 0);
+        final int numberRepeatInEachCall = 10;
+        double[] result = new double[numberRepeat];
+        for (int i = 0; i < numberRepeat; i++) {
+            result[i] = CpuNative.runMatrixMultiplication(n, numberRepeatInEachCall);
+        }
+        getReportLog().printArray("matrix mutiplication time", result, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+        Stat.StatResult stat = Stat.getStatWithOutlierRejection(result, OUTLIER_THRESHOLD);
+        if (stat.mDataCount != result.length) {
+            Log.w(TAG, "rejecting " + (result.length - stat.mDataCount) + " outliers");
+        }
+        getReportLog().printSummary("matrix mutiplication time", stat.mAverage,
+                ResultType.LOWER_BETTER, ResultUnit.MS);
+    }
+
+}
diff --git a/suite/pts/deviceTests/ui/Android.mk b/suite/pts/deviceTests/ui/Android.mk
new file mode 100644
index 0000000..3790342
--- /dev/null
+++ b/suite/pts/deviceTests/ui/Android.mk
@@ -0,0 +1,41 @@
+# 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)
+include $(CLEAR_VARS)
+
+# don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+
+LOCAL_JNI_SHARED_LIBRARIES := libctsopenglperf_jni
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+# re-use existing openglperf code for CTS. Do not include any test from that dir.
+LOCAL_SRC_FILES += $(filter-out %Test.java,$(call all-java-files-under, ../../../../tests/tests/openglperf/src))
+# do not use its own assets for this package.
+LOCAL_ASSET_DIR := $(LOCAL_PATH)/../../../../tests/tests/openglperf/assets
+
+LOCAL_PACKAGE_NAME := PtsDeviceUi
+
+LOCAL_SDK_VERSION := 16
+
+include $(BUILD_CTS_PACKAGE)
+
+
diff --git a/suite/pts/deviceTests/ui/AndroidManifest.xml b/suite/pts/deviceTests/ui/AndroidManifest.xml
new file mode 100644
index 0000000..839e8aa
--- /dev/null
+++ b/suite/pts/deviceTests/ui/AndroidManifest.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.pts.ui" >
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+
+        <activity
+            android:name=".ScrollingActivity"
+            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
+            android:screenOrientation="portrait" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name="android.openglperf.cts.GlPlanetsActivity"
+            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
+    </application>
+
+    <instrumentation
+        android:name="android.test.InstrumentationCtsTestRunner"
+        android:label="UI Latency measurement"
+        android:targetPackage="com.android.pts.ui" />
+
+</manifest>
\ No newline at end of file
diff --git a/suite/pts/deviceTests/ui/src/com/android/pts/ui/FpsTest.java b/suite/pts/deviceTests/ui/src/com/android/pts/ui/FpsTest.java
new file mode 100644
index 0000000..08a6ad8
--- /dev/null
+++ b/suite/pts/deviceTests/ui/src/com/android/pts/ui/FpsTest.java
@@ -0,0 +1,104 @@
+/*
+ * 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.
+ */
+package com.android.pts.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.openglperf.cts.GlPlanetsActivity;
+import android.util.Log;
+import android.view.Display;
+import android.view.WindowManager;
+
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.pts.util.PtsActivityInstrumentationTestCase2;
+import com.android.pts.util.ReportLog;
+import com.android.pts.util.Stat;
+
+/**
+ * measure time taken to render n frames with OpenGL.
+ * This will measure the jankiness of the Gl rendering.
+ * If some frames are delayed, total time will take longer than n x refresh_rate
+ */
+public class FpsTest extends PtsActivityInstrumentationTestCase2<GlPlanetsActivity> {
+    private static final String TAG = "FpsTest";
+    private static final int NUM_FRAMES_TO_RENDER = 60 * 60;
+    private static final long RENDERING_TIMEOUT = NUM_FRAMES_TO_RENDER / 10;
+    private GlPlanetsActivity mActivity;
+
+    public FpsTest() {
+        super(GlPlanetsActivity.class);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        mActivity = null;
+        super.tearDown();
+    }
+
+    public void testFrameJankiness() throws Exception {
+        Intent intent = new Intent();
+        intent.putExtra(GlPlanetsActivity.INTENT_EXTRA_NUM_FRAMES,
+                NUM_FRAMES_TO_RENDER);
+        intent.putExtra(GlPlanetsActivity.INTENT_EXTRA_NUM_PLANETS, 0);
+        intent.putExtra(GlPlanetsActivity.INTENT_EXTRA_USE_VBO_VERTICES, true);
+        intent.putExtra(GlPlanetsActivity.INTENT_EXTRA_USE_VBO_INDICES, true);
+        intent.putExtra(GlPlanetsActivity.INTENT_EXTRA_NUM_INDEX_BUFFERS, 10);
+
+        setActivityIntent(intent);
+        mActivity = getActivity();
+        boolean waitResult = mActivity.waitForGlPlanetsCompletionWithTimeout(RENDERING_TIMEOUT);
+        assertTrue("timeout while waiting for rendering completion", waitResult);
+
+        int[] frameInterval = mActivity.getFrameInterval();
+        assertTrue(frameInterval.length == NUM_FRAMES_TO_RENDER);
+        double fpsMeasured = mActivity.getAverageFps();
+        WindowManager wm = (WindowManager)mActivity.getSystemService(Context.WINDOW_SERVICE);
+        Display dpy = wm.getDefaultDisplay();
+        double fpsNominal = dpy.getRefreshRate();
+        double frameIntervalNominalInMs = 1000.0 / fpsNominal;
+
+        // first one not valid, and should be thrown away
+        double[] intervals = new double[NUM_FRAMES_TO_RENDER - 1];
+        double[] jankiness = new double[NUM_FRAMES_TO_RENDER - 2];
+        for (int i = 0; i < NUM_FRAMES_TO_RENDER - 1; i++) {
+            intervals[i] = frameInterval[i + 1];
+        }
+        int jankNumber = 0;
+        double totalJanks = 0.0;
+        for (int i = 0; i < NUM_FRAMES_TO_RENDER - 2; i++) {
+            double delta = intervals[i + 1] - intervals[i];
+            double normalizedDelta = delta / frameIntervalNominalInMs;
+            // This makes delay over 1.5 * frameIntervalNomial a jank.
+            // Note that too big delay is not excluded here as there should be no pause.
+            jankiness[i] = (int)Math.round(Math.max(normalizedDelta, 0.0));
+            if (jankiness[i] > 0) {
+                jankNumber++;
+            }
+            totalJanks += jankiness[i];
+        }
+
+        Log.i(TAG, " fps nominal " + fpsNominal + " fps measured " + fpsMeasured);
+        getReportLog().printArray("intervals", intervals, ResultType.NEUTRAL,
+                ResultUnit.MS);
+        getReportLog().printArray("jankiness", jankiness, ResultType.LOWER_BETTER,
+                ResultUnit.COUNT);
+        getReportLog().printValue("number of jank", jankNumber, ResultType.LOWER_BETTER,
+                ResultUnit.COUNT);
+        getReportLog().printSummary("total janks", totalJanks, ResultType.LOWER_BETTER,
+                ResultUnit.COUNT);
+    }
+}
diff --git a/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingActivity.java b/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingActivity.java
new file mode 100644
index 0000000..fbec65d
--- /dev/null
+++ b/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingActivity.java
@@ -0,0 +1,95 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.ui;
+
+import android.app.ListActivity;
+import android.os.Bundle;
+import android.widget.AbsListView;
+import android.widget.AbsListView.OnScrollListener;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Activity for measuring scrolling time of long list.
+ */
+public class ScrollingActivity extends ListActivity implements OnScrollListener {
+    static final String TAG = "ScrollingActivity";
+    private static final int NUMBER_ELEMENTS = 10000;
+    private static final int SCROLL_TIME_IN_MS = 1;
+    private static final int WAIT_TIMEOUT_IN_SECS = 5 * 60;
+    private String[] mItems = new String[NUMBER_ELEMENTS];
+    private CountDownLatch mLatchStop = null;
+    private int mTargetLoc;
+
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        for (int i = 0; i < NUMBER_ELEMENTS; i++) {
+            mItems[i] = Integer.toString(i);
+        }
+        setListAdapter(new ArrayAdapter<String>(this,
+                android.R.layout.simple_list_item_1, mItems));
+        ListView view = getListView();
+        view.setOnScrollListener(this);
+    }
+
+    public boolean scrollToTop() {
+        return doScroll(0);
+    }
+    public boolean scrollToBottom() {
+        return doScroll(NUMBER_ELEMENTS - 1);
+    }
+
+    private boolean doScroll(final int loc) {
+        mLatchStop = new CountDownLatch(1);
+        mTargetLoc = loc;
+        final ListView view = getListView();
+        runOnUiThread( new Runnable() {
+            @Override
+            public void run() {
+                view.smoothScrollToPositionFromTop(loc, 0, SCROLL_TIME_IN_MS);
+            }
+        });
+        boolean result = false;
+        try {
+            result = mLatchStop.await(WAIT_TIMEOUT_IN_SECS, TimeUnit.SECONDS);
+        } catch (InterruptedException e) {
+            // ignore
+        }
+        mLatchStop = null;
+        return result;
+    }
+
+    @Override
+    public void onScrollStateChanged(AbsListView view, int scrollState) {
+
+    }
+
+    @Override
+    public void onScroll(AbsListView view, int firstVisibleItem,
+            int visibleItemCount, int totalItemCount) {
+        //Log.i(TAG, "onScroll " + firstVisibleItem + " " + visibleItemCount);
+        if ((mTargetLoc >= firstVisibleItem) &&
+                (mTargetLoc <= (firstVisibleItem + visibleItemCount))) {
+            if (mLatchStop != null) {
+                mLatchStop.countDown();
+            }
+        }
+    }
+}
diff --git a/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingTest.java b/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingTest.java
new file mode 100644
index 0000000..9fd43de
--- /dev/null
+++ b/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingTest.java
@@ -0,0 +1,76 @@
+/*
+ * 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.
+ */
+package com.android.pts.ui;
+
+import android.cts.util.TimeoutReq;
+import com.android.pts.util.MeasureRun;
+import com.android.pts.util.MeasureTime;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.pts.util.PtsActivityInstrumentationTestCase2;
+import com.android.pts.util.ReportLog;
+import com.android.pts.util.Stat;
+
+import java.io.IOException;
+
+public class ScrollingTest extends PtsActivityInstrumentationTestCase2<ScrollingActivity> {
+    private ScrollingActivity mActivity;
+
+    public ScrollingTest() {
+        super(ScrollingActivity.class);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mActivity = getActivity();
+        getInstrumentation().waitForIdleSync();
+        try {
+            runTestOnUiThread(new Runnable() {
+                public void run() {
+                }
+            });
+        } catch (Throwable e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        mActivity = null;
+        super.tearDown();
+    }
+
+    @TimeoutReq(minutes = 30)
+    public void testFullScrolling() throws Exception {
+        final int NUMBER_REPEAT = 10;
+        final ScrollingActivity activity = mActivity;
+        double[] results = MeasureTime.measure(NUMBER_REPEAT, new MeasureRun() {
+
+            @Override
+            public void run(int i) throws IOException {
+                assertTrue(activity.scrollToBottom());
+                assertTrue(activity.scrollToTop());
+            }
+        });
+        getReportLog().printArray("scrolling time", results, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+        Stat.StatResult stat = Stat.getStat(results);
+        getReportLog().printSummary("scrolling time", stat.mAverage, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+    }
+}
diff --git a/suite/pts/deviceTests/videoperf/Android.mk b/suite/pts/deviceTests/videoperf/Android.mk
new file mode 100644
index 0000000..055c9f7
--- /dev/null
+++ b/suite/pts/deviceTests/videoperf/Android.mk
@@ -0,0 +1,32 @@
+# Copyright (C) 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.
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+# don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := PtsDeviceVideoPerf
+
+LOCAL_SDK_VERSION := 16
+
+include $(BUILD_CTS_PACKAGE)
+
diff --git a/suite/pts/deviceTests/videoperf/AndroidManifest.xml b/suite/pts/deviceTests/videoperf/AndroidManifest.xml
new file mode 100644
index 0000000..fdef1ef
--- /dev/null
+++ b/suite/pts/deviceTests/videoperf/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.pts.videoperf">
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+    </application>
+    <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
+            android:targetPackage="com.android.pts.videoperf"
+            android:label="UI Latency measurement" />
+</manifest>
diff --git a/suite/pts/deviceTests/videoperf/src/com/android/pts/videoperf/CodecInfo.java b/suite/pts/deviceTests/videoperf/src/com/android/pts/videoperf/CodecInfo.java
new file mode 100644
index 0000000..a94395a
--- /dev/null
+++ b/suite/pts/deviceTests/videoperf/src/com/android/pts/videoperf/CodecInfo.java
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.pts.videoperf;
+
+import android.media.MediaCodecInfo;
+import android.media.MediaCodecInfo.CodecCapabilities;
+import android.media.MediaCodecInfo.CodecProfileLevel;
+import android.media.MediaCodecList;
+import android.util.Log;
+
+
+/**
+ * Utility class for getting codec information like bit rate, fps, and etc.
+ * Uses public member variables instead of methods as this code is only for video benchmarking.
+ */
+public class CodecInfo {
+    /** bit rate in bps */
+    public int mBitRate = 0;
+    /** Frame rate */
+    public int mFps = 0;
+    /** if codec is supporting YUV semiplanar format */
+    public boolean mSupportSemiPlanar = false;
+    /** if codec is supporting YUV planar format */
+    public boolean mSupportPlanar = false;
+
+    private static final String TAG = "CodecInfo";
+    private static final String VIDEO_AVC = "video/avc";
+    /**
+     * Check if given codec with given (w,h) is supported.
+     * @param mimeType codec type in mime format like "video/avc"
+     * @param w video width
+     * @param h video height
+     * @param isEncoder whether the codec is encoder or decoder
+     * @return null if the configuration is not supported.
+     */
+    public static CodecInfo getSupportedFormatInfo(String mimeType, int w, int h,
+            boolean isEncoder) {
+        CodecCapabilities cap = getCodecCapability(mimeType, isEncoder);
+        if (cap == null) { // not supported
+            return null;
+        }
+        CodecInfo info = new CodecInfo();
+        for (int color : cap.colorFormats) {
+            if (color == CodecCapabilities.COLOR_FormatYUV420SemiPlanar) {
+                info.mSupportSemiPlanar = true;
+            }
+            if (color == CodecCapabilities.COLOR_FormatYUV420Planar) {
+                info.mSupportPlanar = true;
+            }
+        }
+        printIntArray("supported colors", cap.colorFormats);
+        //  either YUV420 planar or semiplanar should be supported
+        if (!info.mSupportPlanar && !info.mSupportSemiPlanar) {
+            Log.i(TAG, "no supported color format");
+            return null;
+        }
+
+        if (mimeType.equals(VIDEO_AVC)) {
+            int highestLevel = 0;
+            for (CodecProfileLevel lvl : cap.profileLevels) {
+                if (lvl.level > highestLevel) {
+                    highestLevel = lvl.level;
+                }
+            }
+            Log.i(TAG, "Avc highest level " + Integer.toHexString(highestLevel));
+            int maxW = 0;
+            int maxH = 0;
+            int bitRate = 0;
+            double fps = 0; // frame rate for the max resolution
+            switch(highestLevel) {
+            // Do not support Level 1 to 2.
+            case CodecProfileLevel.AVCLevel1:
+            case CodecProfileLevel.AVCLevel11:
+            case CodecProfileLevel.AVCLevel12:
+            case CodecProfileLevel.AVCLevel13:
+            case CodecProfileLevel.AVCLevel1b:
+            case CodecProfileLevel.AVCLevel2:
+                return null;
+            case CodecProfileLevel.AVCLevel21:
+                maxW = 352;
+                maxH = 576;
+                bitRate = 4000000;
+                fps = 25;
+                break;
+            case CodecProfileLevel.AVCLevel22:
+                maxW = 720;
+                maxH = 480;
+                bitRate = 4000000;
+                fps = 15;
+                break;
+            case CodecProfileLevel.AVCLevel3:
+                maxW = 720;
+                maxH = 480;
+                bitRate = 10000000;
+                fps = 30;
+                break;
+            case CodecProfileLevel.AVCLevel31:
+                maxW = 1280;
+                maxH = 720;
+                bitRate = 14000000;
+                fps = 30;
+                break;
+            case CodecProfileLevel.AVCLevel32:
+                maxW = 1280;
+                maxH = 720;
+                bitRate = 20000000;
+                fps = 60;
+                break;
+            case CodecProfileLevel.AVCLevel4:
+                maxW = 1920;
+                maxH = 1080;
+                bitRate = 20000000;
+                fps = 30.1;
+                break;
+            case CodecProfileLevel.AVCLevel41:
+                maxW = 1920;
+                maxH = 1080;
+                bitRate = 50000000;
+                fps = 30.1;
+                break;
+            case CodecProfileLevel.AVCLevel42:
+                maxW = 2048;
+                maxH = 1080;
+                bitRate = 50000000;
+                fps = 60;
+                break;
+            case CodecProfileLevel.AVCLevel5:
+                maxW = 3672;
+                maxH = 1536;
+                bitRate = 135000000;
+                fps = 26.7;
+                break;
+            case CodecProfileLevel.AVCLevel51:
+                maxW = 4096;
+                maxH = 2304;
+                bitRate = 240000000;
+                fps = 26.7;
+                break;
+            default:
+                maxW = 4096;
+                maxH = 2304;
+                bitRate = 240000000;
+                fps = 26.7;
+                break;
+            }
+            if ((w > maxW) || (h > maxH)) {
+                Log.i(TAG, "Requested resolution (" + w + "," + h + ") exceeds (" +
+                        maxW + "," + maxH + ")");
+                return null;
+            }
+            info.mFps = (int)(fps * maxW * maxH / (w * h));
+            info.mBitRate = bitRate;
+            Log.i(TAG, "AVC Level " + Integer.toHexString(highestLevel) + " bit rate " + bitRate +
+                    " fps " + info.mFps);
+        }
+        return info;
+    }
+
+    /**
+     * Search for given codecName and returns CodecCapabilities if found
+     * @param codecName
+     * @param isEncoder true for encoder, false for decoder
+     * @return null if the codec is not supported
+     */
+    private static CodecCapabilities getCodecCapability(
+            String codecName, boolean isEncoder) {
+        int codecCount = MediaCodecList.getCodecCount();
+        for (int i = 0; i < codecCount; ++i) {
+            MediaCodecInfo info = MediaCodecList.getCodecInfoAt(i);
+            String[] types = info.getSupportedTypes();
+            if (isEncoder != info.isEncoder()) {
+                continue;
+            }
+            for (int j = 0; j < types.length; ++j) {
+                if (types[j].compareTo(codecName) == 0) {
+                    CodecCapabilities cap = info.getCapabilitiesForType(types[j]);
+                    Log.i(TAG, "Use codec " + info.getName());
+                    return cap;
+                }
+            }
+        }
+        return null;
+    }
+
+    // for debugging
+    private static void printIntArray(String msg, int[] data) {
+        StringBuilder builder = new StringBuilder();
+        builder.append(msg);
+        builder.append(":");
+        for (int e : data) {
+            builder.append(Integer.toHexString(e));
+            builder.append(",");
+        }
+        builder.deleteCharAt(builder.length() - 1);
+        Log.i(TAG, builder.toString());
+    }
+}
diff --git a/suite/pts/deviceTests/videoperf/src/com/android/pts/videoperf/VideoEncoderDecoderTest.java b/suite/pts/deviceTests/videoperf/src/com/android/pts/videoperf/VideoEncoderDecoderTest.java
new file mode 100644
index 0000000..0a03ff3
--- /dev/null
+++ b/suite/pts/deviceTests/videoperf/src/com/android/pts/videoperf/VideoEncoderDecoderTest.java
@@ -0,0 +1,607 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.pts.videoperf;
+
+import android.graphics.Point;
+import android.media.MediaCodec;
+import android.media.MediaCodecInfo;
+import android.media.MediaCodecInfo.CodecCapabilities;
+import android.media.MediaCodecInfo.CodecProfileLevel;
+import android.media.MediaCodecList;
+import android.media.MediaFormat;
+import android.util.Log;
+
+import com.android.pts.util.PtsAndroidTestCase;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.pts.util.Stat;
+
+import java.nio.ByteBuffer;
+import java.lang.System;
+import java.util.Random;
+import java.util.Vector;
+
+/**
+ * This tries to test video encoder / decoder performance by running encoding / decoding
+ * without displaying the raw data. To make things simpler, encoder is used to encode synthetic
+ * data and decoder is used to decode the encoded video. This approach does not work where
+ * there is only decoder. Performance index is total time taken for encoding and decoding
+ * the whole frames.
+ * To prevent sacrificing quality for faster encoding / decoding, randomly selected pixels are
+ * compared with the original image. As the pixel comparison can slow down the decoding process,
+ * only some randomly selected pixels are compared. As there can be only one performance index,
+ * error above certain threshold in pixel value will be treated as an error.
+ */
+public class VideoEncoderDecoderTest extends PtsAndroidTestCase {
+    private static final String TAG = "VideoEncoderDecoderTest";
+    // this wait time affects fps as too big value will work as a blocker if device fps
+    // is not very high.
+    private static final long VIDEO_CODEC_WAIT_TIME_US = 5000;
+    private static final boolean VERBOSE = false;
+    private static final String VIDEO_AVC = "video/avc";
+    private static final int TOTAL_FRAMES = 300;
+    private static final int NUMBER_OF_REPEAT = 10;
+    // i frame interval for encoder
+    private static final int KEY_I_FRAME_INTERVAL = 5;
+
+    private static final int Y_CLAMP_MIN = 16;
+    private static final int Y_CLAMP_MAX = 235;
+    private static final int YUV_PLANE_ADDITIONAL_LENGTH = 200;
+    private ByteBuffer mYBuffer;
+    private ByteBuffer mUVBuffer;
+    // if input raw data is semi-planar
+    private boolean mSrcSemiPlanar;
+    // if output raw data is semi-planar
+    private boolean mDstSemiPlanar;
+    private int mBufferWidth;
+    private int mBufferHeight;
+    private int mVideoWidth;
+    private int mVideoHeight;
+
+    private Vector<ByteBuffer> mEncodedOutputBuffer;
+    // check this many pixels per each decoded frame
+    // checking too many points decreases decoder frame rates a lot.
+    private static final int PIXEL_CHECK_PER_FRAME = 1000;
+    // RMS error in pixel values above this will be treated as error.
+    private static final double PIXEL_RMS_ERROR_MARGAIN = 20.0;
+    private Random mRandom;
+
+    @Override
+    protected void setUp() throws Exception {
+        mEncodedOutputBuffer = new Vector<ByteBuffer>(TOTAL_FRAMES * 2);
+        // Use time as a seed, hoping to prevent checking pixels in the same pattern
+        long now = System.currentTimeMillis();
+        mRandom = new Random(now);
+        super.setUp();
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        mEncodedOutputBuffer.clear();
+        mEncodedOutputBuffer = null;
+        mYBuffer = null;
+        mUVBuffer = null;
+        mRandom = null;
+        super.tearDown();
+    }
+
+    public void testAvc0176x0144() throws Exception {
+        doTest(VIDEO_AVC, 176, 144, NUMBER_OF_REPEAT);
+    }
+
+    public void testAvc0352x0288() throws Exception {
+        doTest(VIDEO_AVC, 352, 288, NUMBER_OF_REPEAT);
+    }
+
+    public void testAvc0720x0480() throws Exception {
+        doTest(VIDEO_AVC, 720, 480, NUMBER_OF_REPEAT);
+    }
+
+    public void testAvc1280x0720() throws Exception {
+        doTest(VIDEO_AVC, 1280, 720, NUMBER_OF_REPEAT);
+    }
+
+    /**
+     * resolution intentionally set to 1072 not 1080
+     * as 1080 is not multiple of 16, and it requires additional setting like stride
+     * which is not specified in API documentation.
+     */
+    public void testAvc1920x1072() throws Exception {
+        doTest(VIDEO_AVC, 1920, 1072, NUMBER_OF_REPEAT);
+    }
+
+    /**
+     * Run encoding / decoding test for given mimeType of codec
+     * @param mimeType like video/avc
+     * @param w video width
+     * @param h video height
+     * @param numberRepeat how many times to repeat the encoding / decoding process
+     */
+    private void doTest(String mimeType, int w, int h, int numberRepeat) throws Exception {
+        CodecInfo infoEnc = CodecInfo.getSupportedFormatInfo(mimeType, w, h, true);
+        if (infoEnc == null) {
+            Log.i(TAG, "Codec " + mimeType + "with " + w + "," + h + " not supported");
+            return;
+        }
+        CodecInfo infoDec = CodecInfo.getSupportedFormatInfo(mimeType, w, h, false);
+        assertNotNull(infoDec);
+        mVideoWidth = w;
+        mVideoHeight = h;
+        initYUVPlane(w + YUV_PLANE_ADDITIONAL_LENGTH, h + YUV_PLANE_ADDITIONAL_LENGTH,
+                infoEnc.mSupportSemiPlanar, infoDec.mSupportSemiPlanar);
+        double[] encoderFpsResults = new double[numberRepeat];
+        double[] decoderFpsResults = new double[numberRepeat];
+        double[] totalFpsResults = new double[numberRepeat];
+        double[] decoderRmsErrorResults = new double[numberRepeat];
+        for (int i = 0; i < numberRepeat; i++) {
+            MediaFormat format = new MediaFormat();
+            format.setString(MediaFormat.KEY_MIME, mimeType);
+            format.setInteger(MediaFormat.KEY_BIT_RATE, infoEnc.mBitRate);
+            format.setInteger(MediaFormat.KEY_WIDTH, w);
+            format.setInteger(MediaFormat.KEY_HEIGHT, h);
+            format.setInteger(MediaFormat.KEY_COLOR_FORMAT,
+                    infoEnc.mSupportSemiPlanar ? CodecCapabilities.COLOR_FormatYUV420SemiPlanar :
+                        CodecCapabilities.COLOR_FormatYUV420Planar);
+            format.setInteger(MediaFormat.KEY_FRAME_RATE, infoEnc.mFps);
+            format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, KEY_I_FRAME_INTERVAL);
+            double encodingTime = runEncoder(VIDEO_AVC, format, TOTAL_FRAMES);
+            // re-initialize format for decoder
+            format = new MediaFormat();
+            format.setString(MediaFormat.KEY_MIME, mimeType);
+            format.setInteger(MediaFormat.KEY_WIDTH, w);
+            format.setInteger(MediaFormat.KEY_HEIGHT, h);
+            format.setInteger(MediaFormat.KEY_COLOR_FORMAT,
+                    infoDec.mSupportSemiPlanar ? CodecCapabilities.COLOR_FormatYUV420SemiPlanar :
+                        CodecCapabilities.COLOR_FormatYUV420Planar);
+            double[] decoderResult = runDecoder(VIDEO_AVC, format);
+            if (decoderResult == null) {
+                // color change in the middle. give up
+                return;
+            }
+            double decodingTime = decoderResult[0];
+            decoderRmsErrorResults[i] = decoderResult[1];
+            encoderFpsResults[i] = (double)TOTAL_FRAMES / encodingTime * 1000.0;
+            decoderFpsResults[i] = (double)TOTAL_FRAMES / decodingTime * 1000.0;
+            totalFpsResults[i] = (double)TOTAL_FRAMES / (encodingTime + decodingTime) * 1000.0;
+
+            // clear things for re-start
+            mEncodedOutputBuffer.clear();
+            // it will be good to clean everything to make every run the same.
+            System.gc();
+        }
+        getReportLog().printArray("encoder", encoderFpsResults, ResultType.HIGHER_BETTER,
+                ResultUnit.FPS);
+        getReportLog().printArray("rms error", decoderRmsErrorResults, ResultType.LOWER_BETTER,
+                ResultUnit.NONE);
+        getReportLog().printArray("decoder", decoderFpsResults, ResultType.HIGHER_BETTER,
+                ResultUnit.FPS);
+        getReportLog().printArray("encoder decoder", totalFpsResults, ResultType.HIGHER_BETTER,
+                ResultUnit.FPS);
+        getReportLog().printSummary("encoder decoder", Stat.getAverage(totalFpsResults),
+                ResultType.HIGHER_BETTER, ResultUnit.FPS);
+        // make sure that rms error is not too big.
+        for (int i = 0; i < numberRepeat; i++) {
+            assertTrue(decoderRmsErrorResults[i] < PIXEL_RMS_ERROR_MARGAIN);
+        }
+    }
+
+    /**
+     * run encoder benchmarking
+     * @param mimeType encoder type like video/avc
+     * @param format format of media to encode
+     * @param totalFrames total number of frames to encode
+     * @return time taken in ms to encode the frames. This does not include initialization time.
+     */
+    private double runEncoder(String mimeType, MediaFormat format, int totalFrames) {
+        MediaCodec codec = MediaCodec.createEncoderByType(mimeType);
+        try {
+            codec.configure(
+                    format,
+                    null /* surface */,
+                    null /* crypto */,
+                    MediaCodec.CONFIGURE_FLAG_ENCODE);
+        } catch (IllegalStateException e) {
+            Log.e(TAG, "codec '" + mimeType + "' failed configuration.");
+            assertTrue("codec '" + mimeType + "' failed configuration.", false);
+        }
+        codec.start();
+        ByteBuffer[] codecInputBuffers = codec.getInputBuffers();
+        ByteBuffer[] codecOutputBuffers = codec.getOutputBuffers();
+
+        int numBytesSubmitted = 0;
+        int numBytesDequeued = 0;
+        int inFramesCount = 0;
+        long start = System.currentTimeMillis();
+        while (true) {
+            int index;
+
+            if (inFramesCount < totalFrames) {
+                index = codec.dequeueInputBuffer(VIDEO_CODEC_WAIT_TIME_US /* timeoutUs */);
+                if (index != MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    int size = queueInputBufferEncoder(
+                            codec, codecInputBuffers, index, inFramesCount,
+                            (inFramesCount == (totalFrames - 1)) ?
+                                    MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0);
+                    inFramesCount++;
+                    numBytesSubmitted += size;
+                    if (VERBOSE) {
+                        Log.d(TAG, "queued " + size + " bytes of input data, frame " +
+                                (inFramesCount - 1));
+                    }
+
+                }
+            }
+            MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
+            index = codec.dequeueOutputBuffer(info, VIDEO_CODEC_WAIT_TIME_US /* timeoutUs */);
+            if (index == MediaCodec.INFO_TRY_AGAIN_LATER) {
+            } else if (index == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+            } else if (index == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                codecOutputBuffers = codec.getOutputBuffers();
+            } else if (index >= 0) {
+                dequeueOutputBufferEncoder(codec, codecOutputBuffers, index, info);
+                numBytesDequeued += info.size;
+                if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                    if (VERBOSE) {
+                        Log.d(TAG, "dequeued output EOS.");
+                    }
+                    break;
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "dequeued " + info.size + " bytes of output data.");
+                }
+            }
+        }
+        long finish = System.currentTimeMillis();
+        if (VERBOSE) {
+            Log.d(TAG, "queued a total of " + numBytesSubmitted + "bytes, "
+                    + "dequeued " + numBytesDequeued + " bytes.");
+        }
+        codec.stop();
+        codec.release();
+        codec = null;
+        return (double)(finish - start);
+    }
+
+    /**
+     * Fills input buffer for encoder from YUV buffers.
+     * @return size of enqueued data.
+     */
+    private int queueInputBufferEncoder(
+            MediaCodec codec, ByteBuffer[] inputBuffers, int index, int frameCount, int flags) {
+        ByteBuffer buffer = inputBuffers[index];
+        buffer.clear();
+
+        Point origin = getOrigin(frameCount);
+        // Y color first
+        int srcOffsetY = origin.x + origin.y * mBufferWidth;
+        final byte[] yBuffer = mYBuffer.array();
+        for (int i = 0; i < mVideoHeight; i++) {
+            buffer.put(yBuffer, srcOffsetY, mVideoWidth);
+            srcOffsetY += mBufferWidth;
+        }
+        if (mSrcSemiPlanar) {
+            int srcOffsetU = origin.y / 2 * mBufferWidth + origin.x / 2 * 2;
+            final byte[] uvBuffer = mUVBuffer.array();
+            for (int i = 0; i < mVideoHeight / 2; i++) {
+                buffer.put(uvBuffer, srcOffsetU, mVideoWidth);
+                srcOffsetU += mBufferWidth;
+            }
+        } else {
+            int srcOffsetU = origin.y / 2 * mBufferWidth / 2 + origin.x / 2;
+            int srcOffsetV = srcOffsetU + mBufferWidth / 2 * mBufferHeight / 2;
+            final byte[] uvBuffer = mUVBuffer.array();
+            for (int i = 0; i < mVideoHeight /2; i++) { //U only
+                buffer.put(uvBuffer, srcOffsetU, mVideoWidth / 2);
+                srcOffsetU += mBufferWidth / 2;
+            }
+            for (int i = 0; i < mVideoHeight /2; i++) { //V only
+                buffer.put(uvBuffer, srcOffsetV, mVideoWidth / 2);
+                srcOffsetV += mBufferWidth / 2;
+            }
+        }
+        int size = mVideoHeight * mVideoWidth * 3 /2;
+
+        codec.queueInputBuffer(index, 0 /* offset */, size, 0 /* timeUs */, flags);
+        if (VERBOSE && (frameCount == 0)) {
+            printByteArray("Y ", mYBuffer.array(), 0, 20);
+            printByteArray("UV ", mUVBuffer.array(), 0, 20);
+            printByteArray("UV ", mUVBuffer.array(), mBufferWidth * 60, 20);
+        }
+        return size;
+    }
+
+    /**
+     * Dequeue encoded data from output buffer and store for later usage.
+     */
+    private void dequeueOutputBufferEncoder(
+            MediaCodec codec, ByteBuffer[] outputBuffers,
+            int index, MediaCodec.BufferInfo info) {
+        ByteBuffer output = outputBuffers[index];
+        output.clear();
+        int l = info.size;
+        ByteBuffer copied = ByteBuffer.allocate(l);
+        output.get(copied.array(), 0, l);
+        mEncodedOutputBuffer.add(copied);
+        codec.releaseOutputBuffer(index, false /* render */);
+    }
+
+    /**
+     * run encoder benchmarking with encoded stream stored from encoding phase
+     * @param mimeType encoder type like video/avc
+     * @param format format of media to decode
+     * @return returns length-2 array with 0: time for decoding, 1 : rms error of pixels
+     */
+    private double[] runDecoder(String mimeType, MediaFormat format) {
+        MediaCodec codec = MediaCodec.createDecoderByType(mimeType);
+        codec.configure(format, null /* surface */, null /* crypto */, 0 /* flags */);
+        codec.start();
+        ByteBuffer[] codecInputBuffers = codec.getInputBuffers();
+        ByteBuffer[] codecOutputBuffers = codec.getOutputBuffers();
+
+        double totalErrorSquared = 0;
+
+        MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
+        boolean sawOutputEOS = false;
+        int inputLeft = mEncodedOutputBuffer.size();
+        int inputBufferCount = 0;
+        int outFrameCount = 0;
+        YUVValue expected = new YUVValue();
+        YUVValue decoded = new YUVValue();
+        long start = System.currentTimeMillis();
+        while (!sawOutputEOS) {
+            if (inputLeft > 0) {
+                int inputBufIndex = codec.dequeueInputBuffer(VIDEO_CODEC_WAIT_TIME_US);
+
+                if (inputBufIndex >= 0) {
+                    ByteBuffer dstBuf = codecInputBuffers[inputBufIndex];
+                    dstBuf.clear();
+                    ByteBuffer src = mEncodedOutputBuffer.get(inputBufferCount);
+                    int writeSize = src.capacity();
+                    dstBuf.put(src.array(), 0, writeSize);
+                    codec.queueInputBuffer(
+                            inputBufIndex,
+                            0 /* offset */,
+                            writeSize,
+                            0,
+                            (inputLeft == 1) ? MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0);
+                    inputLeft --;
+                    inputBufferCount ++;
+                }
+            }
+
+            int res = codec.dequeueOutputBuffer(info, VIDEO_CODEC_WAIT_TIME_US);
+            if (res >= 0) {
+                int outputBufIndex = res;
+                ByteBuffer buf = codecOutputBuffers[outputBufIndex];
+                if (VERBOSE && (outFrameCount == 0)) {
+                    printByteBuffer("Y ", buf, 0, 20);
+                    printByteBuffer("UV ", buf, mVideoWidth * mVideoHeight, 20);
+                    printByteBuffer("UV ", buf, mVideoWidth * mVideoHeight + mVideoWidth * 60, 20);
+                }
+                Point origin = getOrigin(outFrameCount);
+                for (int i = 0; i < PIXEL_CHECK_PER_FRAME; i++) {
+                    int w = mRandom.nextInt(mVideoWidth);
+                    int h = mRandom.nextInt(mVideoHeight);
+                    getPixelValuesFromYUVBuffers(origin.x, origin.y, w, h, expected);
+                    getPixelValuesFromOutputBuffer(buf, w, h, decoded);
+                    if (VERBOSE) {
+                        Log.i(TAG, outFrameCount + "-" + i + "- th round expcted " + expected.mY +
+                                "," + expected.mU + "," + expected.mV + "  decoded " + decoded.mY +
+                                "," + decoded.mU + "," + decoded.mV);
+                    }
+                    totalErrorSquared += expected.calcErrorSquared(decoded);
+                }
+                codec.releaseOutputBuffer(outputBufIndex, false /* render */);
+                if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                    Log.d(TAG, "saw output EOS.");
+                    sawOutputEOS = true;
+                }
+                outFrameCount++;
+            } else if (res == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                codecOutputBuffers = codec.getOutputBuffers();
+                Log.d(TAG, "output buffers have changed.");
+            } else if (res == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                MediaFormat oformat = codec.getOutputFormat();
+                Log.d(TAG, "output format has changed to " + oformat);
+                int colorFormat = oformat.getInteger(MediaFormat.KEY_COLOR_FORMAT);
+                if (colorFormat == CodecCapabilities.COLOR_FormatYUV420SemiPlanar ) {
+                    mDstSemiPlanar = true;
+                } else if (colorFormat == CodecCapabilities.COLOR_FormatYUV420Planar ) {
+                    mDstSemiPlanar = false;
+                } else {
+                    Log.w(TAG, "output format changed to unsupported one " +
+                            Integer.toHexString(colorFormat));
+                    // give up and return as nothing can be done
+                    codec.release();
+                    return null;
+                }
+            }
+        }
+        long finish = System.currentTimeMillis();
+        codec.stop();
+        codec.release();
+        codec = null;
+        assertTrue(outFrameCount >= TOTAL_FRAMES);
+        // divide by 3 as sum is done for Y, U, V.
+        double errorRms = Math.sqrt(totalErrorSquared / PIXEL_CHECK_PER_FRAME / outFrameCount / 3);
+        double[] result = { (double) finish - start, errorRms };
+        return result;
+    }
+
+    /**
+     *  returns origin in the absolute frame for given frame count.
+     *  The video scene is moving by moving origin per each frame.
+     */
+    private Point getOrigin(int frameCount) {
+        if (frameCount < 100) {
+            return new Point(2 * frameCount, 0);
+        } else if (frameCount < 200) {
+            return new Point(200, (frameCount - 100) * 2);
+        } else {
+            if (frameCount > 300) { // for safety
+                frameCount = 300;
+            }
+            return new Point(600 - frameCount * 2, 600 - frameCount * 2);
+        }
+    }
+
+    /**
+     * initialize reference YUV plane
+     * @param w This should be YUV_PLANE_ADDITIONAL_LENGTH pixels bigger than video resolution
+     *          to allow movements
+     * @param h This should be YUV_PLANE_ADDITIONAL_LENGTH pixels bigger than video resolution
+     *          to allow movements
+     * @param semiPlanarEnc
+     * @param semiPlanarDec
+     */
+    private void initYUVPlane(int w, int h, boolean semiPlanarEnc, boolean semiPlanarDec) {
+        int bufferSizeY = w * h;
+        mYBuffer = ByteBuffer.allocate(bufferSizeY);
+        mUVBuffer = ByteBuffer.allocate(bufferSizeY / 2);
+        mSrcSemiPlanar = semiPlanarEnc;
+        mDstSemiPlanar = semiPlanarDec;
+        mBufferWidth = w;
+        mBufferHeight = h;
+        final byte[] yArray = mYBuffer.array();
+        final byte[] uvArray = mUVBuffer.array();
+        for (int i = 0; i < h; i++) {
+            for (int j = 0; j < w; j++) {
+                yArray[i * w + j]  = clampY((i + j) & 0xff);
+            }
+        }
+        if (semiPlanarEnc) {
+            for (int i = 0; i < h/2; i++) {
+                for (int j = 0; j < w/2; j++) {
+                    uvArray[i * w + 2 * j]  = (byte) (i & 0xff);
+                    uvArray[i * w + 2 * j + 1]  = (byte) (j & 0xff);
+                }
+            }
+        } else { // planar, U first, then V
+            int vOffset = bufferSizeY / 4;
+            for (int i = 0; i < h/2; i++) {
+                for (int j = 0; j < w/2; j++) {
+                    uvArray[i * w/2 + j]  = (byte) (i & 0xff);
+                    uvArray[i * w/2 + vOffset + j]  = (byte) (j & 0xff);
+                }
+            }
+        }
+    }
+
+    /**
+     * class to store pixel values in YUV
+     *
+     */
+    public class YUVValue {
+        public byte mY;
+        public byte mU;
+        public byte mV;
+        public YUVValue() {
+        }
+
+        public boolean equalTo(YUVValue other) {
+            return (mY == other.mY) && (mU == other.mU) && (mV == other.mV);
+        }
+
+        public double calcErrorSquared(YUVValue other) {
+            double yDelta = mY - other.mY;
+            double uDelta = mU - other.mU;
+            double vDelta = mV - other.mV;
+            return yDelta * yDelta + uDelta * uDelta + vDelta * vDelta;
+        }
+    }
+
+    /**
+     * Read YUV values from given position (x,y) for given origin (originX, originY)
+     * The whole data is already available from YBuffer and UVBuffer.
+     * @param result pass the result via this. This is for avoiding creating / destroying too many
+     *               instances
+     */
+    private void getPixelValuesFromYUVBuffers(int originX, int originY, int x, int y,
+            YUVValue result) {
+        result.mY = mYBuffer.get((originY + y) * mBufferWidth + (originX + x));
+        if (mSrcSemiPlanar) {
+            int index = (originY + y) / 2 * mBufferWidth + (originX + x) / 2 * 2;
+            //Log.d(TAG, "YUV " + originX + "," + originY + "," + x + "," + y + "," + index);
+            result.mU = mUVBuffer.get(index);
+            result.mV = mUVBuffer.get(index + 1);
+        } else {
+            int vOffset = mBufferWidth * mBufferHeight / 4;
+            int index = (originY + y) / 2 * mBufferWidth / 2 + (originX + x) / 2;
+            result.mU = mUVBuffer.get(index);
+            result.mV = mUVBuffer.get(vOffset + index);
+        }
+    }
+
+    /**
+     * Read YUV pixels from decoded output buffer for give (x, y) position
+     * Output buffer is composed of Y parts followed by U/V
+     * @param result pass the result via this. This is for avoiding creating / destroying too many
+     *               instances
+     */
+    private void getPixelValuesFromOutputBuffer(ByteBuffer buffer, int x, int y, YUVValue result) {
+        result.mY = buffer.get(y * mVideoWidth + x);
+        if (mDstSemiPlanar) {
+            int index = mVideoWidth * mVideoHeight + y / 2 * mVideoWidth + x / 2 * 2;
+            //Log.d(TAG, "Decoded " + x + "," + y + "," + index);
+            result.mU = buffer.get(index);
+            result.mV = buffer.get(index + 1);
+        } else {
+            int vOffset = mVideoWidth * mVideoHeight / 4;
+            int index = mVideoWidth * mVideoHeight + y / 2 * mVideoWidth / 2 + x / 2;
+            result.mU = buffer.get(index);
+            result.mV = buffer.get(index + vOffset);
+        }
+    }
+
+    /**
+     * Y cannot have full range. clamp it to prevent invalid value.
+     */
+    private byte clampY(int y) {
+        if (y < Y_CLAMP_MIN) {
+            y = Y_CLAMP_MIN;
+        } else if (y > Y_CLAMP_MAX) {
+            y = Y_CLAMP_MAX;
+        }
+        return (byte) (y & 0xff);
+    }
+
+    // for debugging
+    private void printByteArray(String msg, byte[] data, int offset, int len) {
+        StringBuilder builder = new StringBuilder();
+        builder.append(msg);
+        builder.append(":");
+        for (int i = offset; i < offset + len; i++) {
+            builder.append(Integer.toHexString(data[i]));
+            builder.append(",");
+        }
+        builder.deleteCharAt(builder.length() - 1);
+        Log.i(TAG, builder.toString());
+    }
+
+    // for debugging
+    private void printByteBuffer(String msg, ByteBuffer data, int offset, int len) {
+        StringBuilder builder = new StringBuilder();
+        builder.append(msg);
+        builder.append(":");
+        for (int i = offset; i < offset + len; i++) {
+            builder.append(Integer.toHexString(data.get(i)));
+            builder.append(",");
+        }
+        builder.deleteCharAt(builder.length() - 1);
+        Log.i(TAG, builder.toString());
+    }
+}
diff --git a/suite/pts/hostTests/Android.mk b/suite/pts/hostTests/Android.mk
new file mode 100644
index 0000000..c141484
--- /dev/null
+++ b/suite/pts/hostTests/Android.mk
@@ -0,0 +1,17 @@
+#
+# 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.
+#
+
+include $(call all-subdir-makefiles)
diff --git a/suite/pts/hostTests/bootup/Android.mk b/suite/pts/hostTests/bootup/Android.mk
new file mode 100644
index 0000000..1872284
--- /dev/null
+++ b/suite/pts/hostTests/bootup/Android.mk
@@ -0,0 +1,30 @@
+# 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)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE := PtsHostBootup
+
+LOCAL_JAVA_LIBRARIES := cts-tradefed tradefed-prebuilt ddmlib-prebuilt junit ptscommonutilhost
+
+LOCAL_CTS_TEST_PACKAGE := com.android.pts.bootup
+
+include $(BUILD_CTS_HOST_JAVA_LIBRARY)
+
diff --git a/suite/pts/hostTests/bootup/src/com/android/pts/bootup/BootupTimeTest.java b/suite/pts/hostTests/bootup/src/com/android/pts/bootup/BootupTimeTest.java
new file mode 100644
index 0000000..d02b260
--- /dev/null
+++ b/suite/pts/hostTests/bootup/src/com/android/pts/bootup/BootupTimeTest.java
@@ -0,0 +1,84 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.bootup;
+
+import android.cts.util.TimeoutReq;
+import com.android.pts.util.HostReportLog;
+import com.android.pts.util.MeasureRun;
+import com.android.pts.util.MeasureTime;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.pts.util.ReportLog;
+import com.android.pts.util.Stat;
+import com.android.pts.util.Stat.StatResult;
+import com.android.tradefed.device.DeviceNotAvailableException;
+import com.android.tradefed.device.TestDeviceOptions;
+import com.android.tradefed.testtype.DeviceTestCase;
+
+/**
+ *  Measure reboot-time using adb shell reboot
+ */
+public class BootupTimeTest extends DeviceTestCase {
+    // add some delay before each reboot
+    final static long SLEEP_BEFORE_REBOOT_TIME = 2 * 60 * 1000L;
+    final static int REBOOT_TIMEOUT_MS = 10 * 60 * 1000;
+
+    @TimeoutReq(minutes = 30)
+    public void testBootupTime() throws Exception {
+        // cannot run in emulator
+        if (getDevice().getSerialNumber().startsWith("emulator-")) {
+            return;
+        }
+        HostReportLog report =
+                new HostReportLog(getDevice().getSerialNumber(), ReportLog.getClassMethodNames());
+        final int NUMBER_REPEAT = 5;
+        double[] result = MeasureTime.measure(NUMBER_REPEAT, new MeasureRun() {
+            @Override
+            public void prepare(int i) throws Exception {
+                if (i == 0) {
+                    return;
+                }
+                Thread.sleep(SLEEP_BEFORE_REBOOT_TIME);
+            }
+            @Override
+            public void run(int i) throws Exception {
+                rebootDevice();
+            }
+        });
+        report.printArray("bootup time", result, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+        StatResult stat = Stat.getStat(result);
+        report.printSummary("bootup time", stat.mAverage, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+        report.deliverReportToHost();
+    }
+
+    private void rebootDevice() throws DeviceNotAvailableException {
+        TestDeviceOptions options = getDevice().getOptions();
+        // store default value and increase time-out for reboot
+        int rebootTimeout = options.getRebootTimeout();
+        long onlineTimeout = options.getOnlineTimeout();
+        options.setRebootTimeout(REBOOT_TIMEOUT_MS);
+        options.setOnlineTimeout(REBOOT_TIMEOUT_MS);
+        getDevice().setOptions(options);
+        getDevice().reboot();
+        // restore default values
+        options.setRebootTimeout(rebootTimeout);
+        options.setOnlineTimeout(onlineTimeout);
+        getDevice().setOptions(options);
+    }
+}
diff --git a/suite/pts/hostTests/jank/Android.mk b/suite/pts/hostTests/jank/Android.mk
new file mode 100644
index 0000000..1d5346c
--- /dev/null
+++ b/suite/pts/hostTests/jank/Android.mk
@@ -0,0 +1,41 @@
+# Copyright (C) 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.
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_MODULE := PtsHostJankOpenGl
+
+LOCAL_JAVA_LIBRARIES := cts-tradefed tradefed-prebuilt ddmlib-prebuilt ptscommonutilhost
+
+LOCAL_CTS_TEST_PACKAGE := com.android.pts.jank.opengl
+
+LOCAL_DEVICE_JAR_ := PtsDeviceJankOpenGl
+cts_library_jar_ := $(CTS_TESTCASES_OUT)/$(LOCAL_DEVICE_JAR_).jar
+
+$(cts_library_jar_): $(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_DEVICE_JAR_))/javalib.jar | $(ACP)
+	$(hide) mkdir -p $(CTS_TESTCASES_OUT)
+	$(hide) $(ACP) -fp $(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_DEVICE_JAR_))/javalib.jar $@
+
+$(CTS_TESTCASES_OUT)/PtsHostJankOpenGl.xml: $(cts_library_jar_)
+
+include $(BUILD_CTS_HOST_JAVA_LIBRARY)
+
+# Build the library using its own makefile
+include $(call all-makefiles-under,$(LOCAL_PATH))
\ No newline at end of file
diff --git a/suite/pts/hostTests/jank/app/Android.mk b/suite/pts/hostTests/jank/app/Android.mk
new file mode 100644
index 0000000..81f5f73
--- /dev/null
+++ b/suite/pts/hostTests/jank/app/Android.mk
@@ -0,0 +1,28 @@
+# Copyright (C) 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.
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := PtsDeviceJankOpenGl
+LOCAL_DEX_PREOPT := false
+
+LOCAL_JAVA_LIBRARIES := uiautomator.core
+
+LOCAL_STATIC_JAVA_LIBRARIES := com.android.uiautomator.platform.common
+
+include $(BUILD_JAVA_LIBRARY)
\ No newline at end of file
diff --git a/suite/pts/hostTests/jank/app/src/com/android/pts/jank/opengl/PtsDeviceJankOpenGl.java b/suite/pts/hostTests/jank/app/src/com/android/pts/jank/opengl/PtsDeviceJankOpenGl.java
new file mode 100644
index 0000000..259649c
--- /dev/null
+++ b/suite/pts/hostTests/jank/app/src/com/android/pts/jank/opengl/PtsDeviceJankOpenGl.java
@@ -0,0 +1,185 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.pts.jank.opengl;
+
+import android.os.Bundle;
+import android.util.Log;
+
+import com.android.uiautomator.platform.JankTestBase;
+import com.android.uiautomator.platform.SurfaceFlingerHelper;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Scanner;
+import java.util.concurrent.Semaphore;
+
+public class PtsDeviceJankOpenGl extends JankTestBase {
+    private final static String TAG = "JankTest";
+    private final static String PACKAGE = "com.android.pts.opengl";
+    private final static String COMPONENT =
+            PACKAGE + "/" + PACKAGE + ".primitive.GLPrimitiveActivity";
+    private final static String START_CMD = "am start -W -a android.intent.action.MAIN -n %s";
+    private final static String STOP_CMD = "am force-stop %s";
+    private final static String INTENT_STRING_EXTRA = " --es %s %s";
+    private final static String INTENT_BOOLEAN_EXTRA = " --ez %s %b";
+    private final static String INTENT_INTEGER_EXTRA = " --ei %s %d";
+    private static String APP_WINDOW_NAME = "SurfaceView";
+    private static long SLEEP_TIME = 2000; // 2 seconds
+    private static int NUM_ITERATIONS = 5;
+    private static int TRACE_TIME = 5;
+
+    @Override
+    protected String getPropertyString(Bundle params, String key)
+            throws FileNotFoundException, IOException {
+        if (key.equals("iteration")) {
+            return NUM_ITERATIONS + "";
+        }
+        if (key.equals("tracetime")) {
+            return TRACE_TIME + "";
+        }
+        return super.getPropertyString(params, key);
+    }
+
+    /**
+     * Runs the full OpenGL ES 2.0 pipeline test.
+     */
+    public void testFullPipeline() throws Exception {
+        runBenchmark("FullPipeline");
+    }
+
+    /**
+     * Runs the pixel output test.
+     */
+    public void testPixelOutput() throws Exception {
+        runBenchmark("PixelOutput");
+    }
+
+    /**
+     * Runs the shader performance test.
+     */
+    public void testShaderPerf() throws Exception {
+        runBenchmark("ShaderPerf");
+    }
+
+    /**
+     * Runs the context switch overhead test.
+     */
+    public void testContextSwitch() throws Exception {
+        runBenchmark("ContextSwitch");
+    }
+
+    /**
+     * Runs the benchhmark for jank test.
+     */
+    public void runBenchmark(String benchmark) throws Exception {
+        // Start activity command
+        final StringBuilder sb = new StringBuilder();
+        sb.append(String.format(START_CMD, COMPONENT));
+        sb.append(String.format(INTENT_STRING_EXTRA, "benchmark_name", benchmark));
+        sb.append(String.format(INTENT_BOOLEAN_EXTRA, "offscreen", false));
+        sb.append(String.format(INTENT_INTEGER_EXTRA, "num_frames", 200));
+        sb.append(String.format(INTENT_INTEGER_EXTRA, "num_iterations", 1));
+        sb.append(String.format(INTENT_INTEGER_EXTRA, "timeout", 10000));
+        final String startCommand = sb.toString();
+        final String stopCommand = String.format(STOP_CMD, PACKAGE);
+
+        Log.i(TAG, "Start command: " + startCommand);
+        Log.i(TAG, "Stop command: " + stopCommand);
+
+        setIteration(NUM_ITERATIONS);
+        for (int i = 0; i < NUM_ITERATIONS; i++) {
+            // Stop any existing instances
+            runShellCommand(stopCommand);
+            // Start activity
+            runShellCommand(startCommand);
+
+            // Start systrace
+            // TODO(jgennis): Systrace has been commented out because of read-tgid permission error
+            // startTrace(mTestCaseName, i);
+
+            // Clear SurfaceFlinger buffer
+            Log.i(TAG, "Clearing SurfaceFlinger buffer");
+            SurfaceFlingerHelper.clearBuffer(APP_WINDOW_NAME);
+
+            // This is where user interactions would go, in this case just sleep
+            sleep(SLEEP_TIME);
+
+            // Dump SurfaceFlinger buffer
+            Log.i(TAG, "Dumping SurfaceFlinger buffer");
+            boolean result = SurfaceFlingerHelper.dumpFrameLatency(APP_WINDOW_NAME, true);
+            assertTrue("SurfaceFlingerHelper could not get timestamps", result);
+
+            // Stop systrace
+            // endTrace();
+
+            // Record results
+            recordResults(mTestCaseName, i);
+        }
+        // Save aggregated results
+        saveResults(mTestCaseName);
+        // Stop any remaining instances
+        runShellCommand(stopCommand);
+    }
+
+    private void runShellCommand(String command) throws Exception {
+        Process p = null;
+        Scanner out = null;
+        Scanner err = null;
+        try {
+            p = Runtime.getRuntime().exec(command);
+
+            StringBuilder outStr = new StringBuilder();
+            StringBuilder errStr = new StringBuilder();
+            out = new Scanner(p.getInputStream());
+            err = new Scanner(p.getErrorStream());
+            boolean read = true;
+            while (read) {
+                if (out.hasNextLine()) {
+                    outStr.append(out.nextLine());
+                    outStr.append("\n");
+                } else if (err.hasNextLine()) {
+                    errStr.append(err.nextLine());
+                    errStr.append("\n");
+                } else {
+                    read = false;
+                }
+            }
+            Log.i(TAG, command);
+            if (outStr.length() > 0) {
+                Log.i(TAG, outStr.toString());
+            }
+            if (errStr.length() > 0) {
+                Log.e(TAG, errStr.toString());
+            }
+        } finally {
+            if (p != null) {
+                int status = p.waitFor();
+                if (status != 0) {
+                    throw new RuntimeException(
+                            String.format("Run shell command: %s, status: %s", command, status));
+                }
+                p.destroy();
+                p = null;
+            }
+            if (out != null) {
+                out.close();
+            }
+            if (err != null) {
+                err.close();
+            }
+        }
+    }
+
+}
diff --git a/suite/pts/hostTests/jank/src/com/android/pts/jank/PtsHostJankTest.java b/suite/pts/hostTests/jank/src/com/android/pts/jank/PtsHostJankTest.java
new file mode 100644
index 0000000..1264786
--- /dev/null
+++ b/suite/pts/hostTests/jank/src/com/android/pts/jank/PtsHostJankTest.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 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.
+ */
+package com.android.pts.jank;
+
+import com.android.cts.tradefed.build.CtsBuildHelper;
+import com.android.ddmlib.testrunner.RemoteAndroidTestRunner;
+import com.android.ddmlib.IShellOutputReceiver;
+import com.android.ddmlib.Log;
+import com.android.ddmlib.Log.LogLevel;
+import com.android.pts.util.HostReportLog;
+import com.android.pts.util.ReportLog;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.tradefed.build.IBuildInfo;
+import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.result.CollectingTestListener;
+import com.android.tradefed.result.TestRunResult;
+import com.android.tradefed.testtype.DeviceTestCase;
+import com.android.tradefed.testtype.IBuildReceiver;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.InputStreamReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Scanner;
+
+public class PtsHostJankTest extends DeviceTestCase implements IBuildReceiver {
+
+    private static final String TAG = "PtsHostJankTest";
+    private static final String DEVICE_LOCATION = "/data/local/tmp/";
+    private static final String RUN_UI_AUTOMATOR_CMD = "uiautomator runtest %s -c %s";
+    private final String mHostTestClass;
+    private final String mDeviceTestClass;
+    private final String mJarName;
+    private final String mJarPath;
+    protected ITestDevice mDevice;
+    protected CtsBuildHelper mBuild;
+
+    public PtsHostJankTest(String jarName, String deviceTestClass, String hostTestClass) {
+        this.mHostTestClass = hostTestClass;
+        this.mDeviceTestClass = deviceTestClass;
+        this.mJarName = jarName;
+        this.mJarPath = DEVICE_LOCATION + jarName;
+    }
+
+    @Override
+    public void setBuild(IBuildInfo buildInfo) {
+        mBuild = CtsBuildHelper.createBuildHelper(buildInfo);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mDevice = getDevice();
+        // Push jar to device.
+        File jarFile = mBuild.getTestApp(mJarName);
+        boolean result = mDevice.pushFile(jarFile, mJarPath);
+        assertTrue("Failed to push file to " + mJarPath, result);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        // Delete jar from device.
+        mDevice.executeShellCommand("rm " + mJarPath);
+        super.tearDown();
+    }
+
+    public void runUiAutomatorTest(String testName) throws Exception {
+        // Delete any existing result files
+        mDevice.executeShellCommand("rm -r " + DEVICE_LOCATION + "*.txt");
+
+        // Run ui automator test.
+        mDevice.executeShellCommand(
+                String.format(RUN_UI_AUTOMATOR_CMD, mJarName, mDeviceTestClass + "#" + testName),
+                new IShellOutputReceiver() {
+                    private StringBuilder sb = new StringBuilder();
+
+                    public void addOutput(byte[] data, int offset, int length) {
+                        byte[] raw = new byte[length];
+                        for (int i = 0; i < length; i++) {
+                            raw[i] = data[i + offset];
+                        }
+                        sb.append(new String(raw));
+                    }
+
+                    public void flush() {
+                        Log.logAndDisplay(LogLevel.INFO, TAG, sb.toString());
+                    }
+
+                    public boolean isCancelled() {
+                        return false;
+                    }
+                });
+
+        // Pull result file across
+        File result = mDevice.pullFile(DEVICE_LOCATION + "UiJankinessTestsOutput.txt");
+        assertNotNull("Couldn't get result file", result);
+        // Parse result file
+        Scanner in = new Scanner(result);
+        HashMap<String, Double> results = new HashMap<String, Double>(4);
+        while (in.hasNextLine()) {
+            String[] parts = in.nextLine().split(":");
+            if (parts.length == 2) {
+                results.put(parts[0], Double.parseDouble(parts[1]));
+            }
+        }
+        Log.logAndDisplay(LogLevel.INFO, TAG, "Results: " + results);
+        assertEquals("Could not parse the results file: ", 4, results.size());
+
+        double avgNumJanks = results.get("average number of jankiness");
+        double maxNumJanks = results.get("max number of jankiness");
+        double avgFrameRate = results.get("average frame rate");
+        double avgMaxAccFrames = results.get("average of max accumulated frames");
+
+        // Create and deliver the report.
+        HostReportLog report =
+                new HostReportLog(mDevice.getSerialNumber(), mHostTestClass + "#" + testName);
+        report.printValue(
+                "Average Frame Rate", avgFrameRate, ResultType.HIGHER_BETTER, ResultUnit.COUNT);
+        report.printValue("Average of Maximum Accumulated Frames", avgMaxAccFrames,
+                ResultType.LOWER_BETTER, ResultUnit.COUNT);
+        report.printValue(
+                "Maximum Number of Janks", maxNumJanks, ResultType.LOWER_BETTER, ResultUnit.COUNT);
+        report.printSummary(
+                "Average Number of Janks", avgNumJanks, ResultType.LOWER_BETTER, ResultUnit.SCORE);
+        report.deliverReportToHost();
+    }
+
+}
diff --git a/suite/pts/hostTests/jank/src/com/android/pts/jank/opengl/PtsHostJankOpenGl.java b/suite/pts/hostTests/jank/src/com/android/pts/jank/opengl/PtsHostJankOpenGl.java
new file mode 100644
index 0000000..aea0b11
--- /dev/null
+++ b/suite/pts/hostTests/jank/src/com/android/pts/jank/opengl/PtsHostJankOpenGl.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 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.
+ */
+package com.android.pts.jank.opengl;
+
+import com.android.ddmlib.Log;
+import com.android.ddmlib.Log.LogLevel;
+import com.android.pts.jank.PtsHostJankTest;
+
+import java.io.File;
+
+public class PtsHostJankOpenGl extends PtsHostJankTest {
+
+    private static final String APK_PACKAGE = "com.android.pts.opengl";
+    private static final String APK = "PtsDeviceOpenGl.apk";
+    private static final String PACKAGE = "com.android.pts.jank.opengl";
+    private static final String HOST_CLASS = PtsHostJankOpenGl.class.getName();
+    private static final String DEVICE_CLASS = PACKAGE + ".PtsDeviceJankOpenGl";
+    private static final String JAR_NAME = "PtsDeviceJankOpenGl.jar";
+
+    public PtsHostJankOpenGl() {
+        super(JAR_NAME, DEVICE_CLASS, HOST_CLASS);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        // Install the app.
+        mDevice.uninstallPackage(APK_PACKAGE);
+        File app = mBuild.getTestApp(APK);
+        mDevice.installPackage(app, false);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        // Uninstall the app.
+        mDevice.uninstallPackage(APK_PACKAGE);
+        super.tearDown();
+    }
+
+    public void testFullPipeline() throws Exception {
+        runUiAutomatorTest("testFullPipeline");
+    }
+
+    public void testPixelOutput() throws Exception {
+        runUiAutomatorTest("testPixelOutput");
+    }
+
+    public void testShaderPerf() throws Exception {
+        runUiAutomatorTest("testShaderPerf");
+    }
+
+    public void testContextSwitch() throws Exception {
+        runUiAutomatorTest("testContextSwitch");
+    }
+}
diff --git a/suite/pts/hostTests/ptshostutil/src/com/android/pts/util/HostReportLog.java b/suite/pts/hostTests/ptshostutil/src/com/android/pts/util/HostReportLog.java
new file mode 100644
index 0000000..49f24fe
--- /dev/null
+++ b/suite/pts/hostTests/ptshostutil/src/com/android/pts/util/HostReportLog.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.pts.util;
+
+import com.android.cts.tradefed.result.PtsHostStore;
+
+
+/**
+ * ReportLog for host tests
+ * Note that setTestInfo should be set before throwing report
+ */
+public class HostReportLog extends ReportLog {
+    private String mDeviceSerial;
+    private String mClassMethodName;
+
+    /**
+     * @param deviceSerial serial number of the device
+     * @param classMethodName class name and method name of the test in class#method format.
+     *        Note that ReportLog.getClassMethodNames() provide this.
+     */
+    public HostReportLog(String deviceSerial, String classMethodName) {
+        mDeviceSerial = deviceSerial;
+        mClassMethodName = classMethodName;
+    }
+
+    public void deliverReportToHost() {
+        PtsHostStore.storePtsResult(mDeviceSerial, mClassMethodName, generateReport());
+    }
+}
diff --git a/suite/pts/hostTests/uihost/Android.mk b/suite/pts/hostTests/uihost/Android.mk
new file mode 100644
index 0000000..65742e2
--- /dev/null
+++ b/suite/pts/hostTests/uihost/Android.mk
@@ -0,0 +1,31 @@
+# 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)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE := PtsHostUi
+
+LOCAL_JAVA_LIBRARIES := cts-tradefed tradefed-prebuilt ddmlib-prebuilt junit ptscommonutilhost
+
+LOCAL_CTS_TEST_PACKAGE := com.android.pts.uihost
+
+include $(BUILD_CTS_HOST_JAVA_LIBRARY)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/suite/pts/hostTests/uihost/appA/Android.mk b/suite/pts/hostTests/uihost/appA/Android.mk
new file mode 100644
index 0000000..4d31cb4
--- /dev/null
+++ b/suite/pts/hostTests/uihost/appA/Android.mk
@@ -0,0 +1,35 @@
+# 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)
+include $(CLEAR_VARS)
+
+# don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := PtsDeviceTaskswitchingAppA
+
+LOCAL_SDK_VERSION := 16
+
+include $(BUILD_CTS_PACKAGE)
+
+
diff --git a/suite/pts/hostTests/uihost/appA/AndroidManifest.xml b/suite/pts/hostTests/uihost/appA/AndroidManifest.xml
new file mode 100644
index 0000000..847487d
--- /dev/null
+++ b/suite/pts/hostTests/uihost/appA/AndroidManifest.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.pts.taskswitching.appa" >
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+
+    <application>
+        <activity
+            android:name=".AppAActivity"
+            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
+            android:screenOrientation="portrait" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/suite/pts/hostTests/uihost/appA/src/com/android/pts/taskswitching/appa/AppAActivity.java b/suite/pts/hostTests/uihost/appA/src/com/android/pts/taskswitching/appa/AppAActivity.java
new file mode 100644
index 0000000..bb0c158
--- /dev/null
+++ b/suite/pts/hostTests/uihost/appA/src/com/android/pts/taskswitching/appa/AppAActivity.java
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.taskswitching.appa;
+
+
+import android.app.ListActivity;
+import android.content.Intent;
+
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.WindowManager;
+import android.widget.AbsListView;
+import android.widget.AbsListView.OnScrollListener;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+/**
+ * Simple activity to notify completion via broadcast after onResume.
+ * This is for measuring taskswitching time between two apps.
+ */
+public class AppAActivity extends ListActivity {
+    static final String TAG = "AppAActivity";
+    private static final int NUMBER_ELEMENTS = 1000;
+    private static final String TASKSWITCHING_INTENT = "com.android.pts.taskswitching.appa";
+    private Handler mHandler;
+
+    private String[] mItems = new String[NUMBER_ELEMENTS];
+
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+        for (int i = 0; i < NUMBER_ELEMENTS; i++) {
+            mItems[i] = "A" + Integer.toString(i);
+        }
+        setListAdapter(new ArrayAdapter<String>(this,
+                android.R.layout.simple_list_item_1, mItems));
+        ListView view = getListView();
+        mHandler = new Handler();
+    }
+
+    public void onResume() {
+        super.onResume();
+        mHandler.post(new Runnable() {
+
+            @Override
+            public void run() {
+                Intent intent = new Intent(TASKSWITCHING_INTENT);
+                sendBroadcast(intent);
+            }
+        });
+    }
+}
diff --git a/suite/pts/hostTests/uihost/appB/Android.mk b/suite/pts/hostTests/uihost/appB/Android.mk
new file mode 100644
index 0000000..bb1b5d7
--- /dev/null
+++ b/suite/pts/hostTests/uihost/appB/Android.mk
@@ -0,0 +1,35 @@
+# 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)
+include $(CLEAR_VARS)
+
+# don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := PtsDeviceTaskswitchingAppB
+
+LOCAL_SDK_VERSION := 16
+
+include $(BUILD_CTS_PACKAGE)
+
+
diff --git a/suite/pts/hostTests/uihost/appB/AndroidManifest.xml b/suite/pts/hostTests/uihost/appB/AndroidManifest.xml
new file mode 100644
index 0000000..d0c0bb7
--- /dev/null
+++ b/suite/pts/hostTests/uihost/appB/AndroidManifest.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.pts.taskswitching.appb">
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+
+    <application>
+        <activity
+            android:name=".AppBActivity"
+            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
+            android:screenOrientation="portrait" >
+
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/suite/pts/hostTests/uihost/appB/src/com/android/pts/taskswitching/appb/AppBActivity.java b/suite/pts/hostTests/uihost/appB/src/com/android/pts/taskswitching/appb/AppBActivity.java
new file mode 100644
index 0000000..22ebdac
--- /dev/null
+++ b/suite/pts/hostTests/uihost/appB/src/com/android/pts/taskswitching/appb/AppBActivity.java
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.taskswitching.appb;
+
+import android.app.ListActivity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.WindowManager;
+import android.widget.AbsListView;
+import android.widget.AbsListView.OnScrollListener;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+/**
+ * Simple activity to notify completion via broadcast after onResume.
+ * This is for measuring taskswitching time between two apps.
+ */
+public class AppBActivity extends ListActivity {
+    static final String TAG = "AppBActivity";
+    private static final int NUMBER_ELEMENTS = 1000;
+    private static final String TASKSWITCHING_INTENT = "com.android.pts.taskswitching.appb";
+    private Handler mHandler;
+
+    private String[] mItems = new String[NUMBER_ELEMENTS];
+
+    public void onCreate(Bundle icicle)
+    {
+        super.onCreate(icicle);
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+        for (int i = 0; i < NUMBER_ELEMENTS; i++) {
+            mItems[i] = "B" + Integer.toString(i);
+        }
+        setListAdapter(new ArrayAdapter<String>(this,
+                android.R.layout.simple_list_item_1, mItems));
+        ListView view = getListView();
+        mHandler = new Handler();
+    }
+
+    public void onResume()
+    {
+        super.onResume();
+        mHandler.post(new Runnable() {
+
+            @Override
+            public void run() {
+                Intent intent = new Intent(TASKSWITCHING_INTENT);
+                sendBroadcast(intent);
+            }
+        });
+    }
+}
diff --git a/suite/pts/hostTests/uihost/control/Android.mk b/suite/pts/hostTests/uihost/control/Android.mk
new file mode 100644
index 0000000..dec5ad1
--- /dev/null
+++ b/suite/pts/hostTests/uihost/control/Android.mk
@@ -0,0 +1,33 @@
+# 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)
+include $(CLEAR_VARS)
+
+# don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := PtsDeviceTaskswitchingControl
+
+LOCAL_SDK_VERSION := 16
+
+include $(BUILD_CTS_PACKAGE)
diff --git a/suite/pts/hostTests/uihost/control/AndroidManifest.xml b/suite/pts/hostTests/uihost/control/AndroidManifest.xml
new file mode 100644
index 0000000..a7ab928
--- /dev/null
+++ b/suite/pts/hostTests/uihost/control/AndroidManifest.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.pts.taskswitching.control">
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+    </application>
+    <instrumentation
+        android:targetPackage="com.android.pts.taskswitching.control"
+        android:name="android.test.InstrumentationCtsTestRunner" />
+</manifest>
diff --git a/suite/pts/hostTests/uihost/control/src/com/android/pts/taskswitching/control/TaskswitchingDeviceTest.java b/suite/pts/hostTests/uihost/control/src/com/android/pts/taskswitching/control/TaskswitchingDeviceTest.java
new file mode 100644
index 0000000..5147eaf
--- /dev/null
+++ b/suite/pts/hostTests/uihost/control/src/com/android/pts/taskswitching/control/TaskswitchingDeviceTest.java
@@ -0,0 +1,113 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.taskswitching.control;
+
+import java.util.concurrent.Semaphore;
+import java.util.concurrent.TimeUnit;
+
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import com.android.pts.util.MeasureRun;
+import com.android.pts.util.MeasureTime;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.pts.util.PtsAndroidTestCase;
+import com.android.pts.util.Stat;
+
+
+/**
+ * Device test which actually launches two apps sequentially and
+ * measure time for switching.
+ * Completion of launch is notified via broadcast.
+ */
+public class TaskswitchingDeviceTest extends PtsAndroidTestCase {
+    private static final String PKG_A = "com.android.pts.taskswitching.appa";
+    private static final String PKG_B = "com.android.pts.taskswitching.appb";
+    private static final String ACTIVITY_A = "AppAActivity";
+    private static final String ACTIVITY_B = "AppBActivity";
+    private static final long TASK_SWITCHING_WAIT_TIME = 5;
+    private final AppBroadcastReceiver mReceiverA = new AppBroadcastReceiver();
+    private final AppBroadcastReceiver mReceiverB = new AppBroadcastReceiver();
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        startActivity(PKG_A, ACTIVITY_A);
+        startActivity(PKG_B, ACTIVITY_B);
+        IntentFilter filterA = new IntentFilter();
+        filterA.addAction(PKG_A);
+        IntentFilter filterB = new IntentFilter();
+        filterB.addAction(PKG_B);
+        getContext().registerReceiver(mReceiverA, filterA);
+        getContext().registerReceiver(mReceiverB, filterB);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        getContext().unregisterReceiver(mReceiverA);
+        getContext().unregisterReceiver(mReceiverB);
+        super.tearDown();
+    }
+
+    public void testMeasureTaskSwitching() throws Exception {
+        final int NUMBER_REPEAT = 10;
+        final int SWITCHING_PER_ONE_TRY = 10;
+
+        double[] results = MeasureTime.measure(NUMBER_REPEAT, new MeasureRun() {
+
+            @Override
+            public void run(int i) throws Exception {
+                for (int j = 0; j < SWITCHING_PER_ONE_TRY; j++) {
+                    startActivity(PKG_A, ACTIVITY_A);
+                    assertTrue(mReceiverA.waitForBroadcast(TASK_SWITCHING_WAIT_TIME));
+                    startActivity(PKG_B, ACTIVITY_B);
+                    assertTrue(mReceiverB.waitForBroadcast(TASK_SWITCHING_WAIT_TIME));
+                }
+            }
+        });
+        getReportLog().printArray("taskswitching time", results, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+        Stat.StatResult stat = Stat.getStat(results);
+        getReportLog().printSummary("taskswitching time", stat.mAverage,
+                ResultType.LOWER_BETTER, ResultUnit.MS);
+    }
+
+    private void startActivity(String packageName, String activityName) {
+        Context context = getContext();
+        Intent intent = new Intent();
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        intent.addCategory(Intent.CATEGORY_LAUNCHER);
+        intent.setComponent(new ComponentName(packageName, packageName + "." + activityName));
+        context.startActivity(intent);
+    }
+
+    class AppBroadcastReceiver extends BroadcastReceiver {
+        private final Semaphore mSemaphore = new Semaphore(0);
+
+        public boolean waitForBroadcast(long timeoutInSec) throws InterruptedException {
+            return mSemaphore.tryAcquire(timeoutInSec, TimeUnit.SECONDS);
+        }
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            mSemaphore.release();
+        }
+    }
+}
diff --git a/suite/pts/hostTests/uihost/src/com/android/pts/uihost/InstallTimeTest.java b/suite/pts/hostTests/uihost/src/com/android/pts/uihost/InstallTimeTest.java
new file mode 100644
index 0000000..b6f8f40
--- /dev/null
+++ b/suite/pts/hostTests/uihost/src/com/android/pts/uihost/InstallTimeTest.java
@@ -0,0 +1,95 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.uihost;
+
+import com.android.cts.tradefed.build.CtsBuildHelper;
+import com.android.ddmlib.Log;
+import com.android.pts.util.HostReportLog;
+import com.android.pts.util.MeasureRun;
+import com.android.pts.util.MeasureTime;
+import com.android.pts.util.ResultType;
+import com.android.pts.util.ResultUnit;
+import com.android.pts.util.ReportLog;
+import com.android.pts.util.Stat;
+import com.android.pts.util.Stat.StatResult;
+import com.android.tradefed.build.IBuildInfo;
+import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.testtype.DeviceTestCase;
+import com.android.tradefed.testtype.IBuildReceiver;
+
+import java.io.File;
+
+
+/**
+ * Test to measure installation time of a APK.
+ */
+public class InstallTimeTest extends DeviceTestCase implements IBuildReceiver {
+    private CtsBuildHelper mBuild;
+    private ITestDevice mDevice;
+
+    private static final String TAG = "InstallTimeTest";
+    static final String PACKAGE = "com.replica.replicaisland";
+    static final String APK = "com.replica.replicaisland.apk";
+    private static final double OUTLIER_THRESHOLD = 0.1;
+
+    @Override
+    public void setBuild(IBuildInfo buildInfo) {
+        mBuild = CtsBuildHelper.createBuildHelper(buildInfo);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mDevice = getDevice();
+    }
+
+
+    @Override
+    protected void tearDown() throws Exception {
+        mDevice.uninstallPackage(PACKAGE);
+        super.tearDown();
+    }
+
+    public void testInstallTime() throws Exception {
+        HostReportLog report =
+                new HostReportLog(mDevice.getSerialNumber(), ReportLog.getClassMethodNames());
+        final int NUMBER_REPEAT = 10;
+        final CtsBuildHelper build = mBuild;
+        final ITestDevice device = mDevice;
+        double[] result = MeasureTime.measure(NUMBER_REPEAT, new MeasureRun() {
+            @Override
+            public void prepare(int i) throws Exception {
+                device.uninstallPackage(PACKAGE);
+            }
+            @Override
+            public void run(int i) throws Exception {
+                File app = build.getTestApp(APK);
+                device.installPackage(app, false);
+            }
+        });
+        report.printArray("install time", result, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+        Stat.StatResult stat = Stat.getStatWithOutlierRejection(result, OUTLIER_THRESHOLD);
+        if (stat.mDataCount != result.length) {
+            Log.w(TAG, "rejecting " + (result.length - stat.mDataCount) + " outliers");
+        }
+        report.printSummary("install time", stat.mAverage, ResultType.LOWER_BETTER,
+                ResultUnit.MS);
+        report.deliverReportToHost();
+    }
+
+}
diff --git a/suite/pts/hostTests/uihost/src/com/android/pts/uihost/TaskSwitchingTest.java b/suite/pts/hostTests/uihost/src/com/android/pts/uihost/TaskSwitchingTest.java
new file mode 100644
index 0000000..f1eb80a
--- /dev/null
+++ b/suite/pts/hostTests/uihost/src/com/android/pts/uihost/TaskSwitchingTest.java
@@ -0,0 +1,118 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.uihost;
+
+import android.cts.util.TimeoutReq;
+
+import com.android.cts.tradefed.build.CtsBuildHelper;
+import com.android.cts.tradefed.result.PtsReportUtil;
+import com.android.cts.tradefed.result.PtsHostStore;
+import com.android.ddmlib.Log;
+import com.android.ddmlib.Log.LogLevel;
+import com.android.ddmlib.testrunner.RemoteAndroidTestRunner;
+import com.android.ddmlib.testrunner.TestIdentifier;
+import com.android.pts.util.HostReportLog;
+import com.android.pts.util.ReportLog;
+import com.android.tradefed.build.IBuildInfo;
+import com.android.tradefed.device.DeviceNotAvailableException;
+import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.device.TestDeviceOptions;
+import com.android.tradefed.result.CollectingTestListener;
+import com.android.tradefed.result.TestResult;
+import com.android.tradefed.result.TestRunResult;
+import com.android.tradefed.testtype.DeviceTestCase;
+import com.android.tradefed.testtype.IBuildReceiver;
+
+import java.io.File;
+import java.util.Map;
+
+
+/**
+ * Measure time to taskswitching between two Apps: A & B
+ * Actual test is done in device, but this host side code installs all necessary APKs
+ * and starts device test which is in PtsDeviceTaskswitchingControl.
+ */
+public class TaskSwitchingTest extends DeviceTestCase implements IBuildReceiver {
+    private static final String TAG = "TaskSwitchingTest";
+    private final static String CTS_RUNNER = "android.test.InstrumentationCtsTestRunner";
+    private CtsBuildHelper mBuild;
+    private ITestDevice mDevice;
+    private String mPtsReport = null;
+
+    static final String[] PACKAGES = {
+        "com.android.pts.taskswitching.control",
+        "com.android.pts.taskswitching.appa",
+        "com.android.pts.taskswitching.appb"
+    };
+    static final String[] APKS = {
+        "PtsDeviceTaskswitchingControl.apk",
+        "PtsDeviceTaskswitchingAppA.apk",
+        "PtsDeviceTaskswitchingAppB.apk"
+    };
+
+    @Override
+    public void setBuild(IBuildInfo buildInfo) {
+        mBuild = CtsBuildHelper.createBuildHelper(buildInfo);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mDevice = getDevice();
+        for (int i = 0; i < PACKAGES.length; i++) {
+            mDevice.uninstallPackage(PACKAGES[i]);
+            File app = mBuild.getTestApp(APKS[i]);
+            mDevice.installPackage(app, false);
+        }
+    }
+
+
+    @Override
+    protected void tearDown() throws Exception {
+        for (int i = 0; i < PACKAGES.length; i++) {
+            mDevice.uninstallPackage(PACKAGES[i]);
+        }
+        super.tearDown();
+    }
+
+    @TimeoutReq(minutes = 30)
+    public void testTaskswitching() throws Exception {
+        HostReportLog report =
+                new HostReportLog(mDevice.getSerialNumber(), ReportLog.getClassMethodNames());
+        RemoteAndroidTestRunner testRunner = new RemoteAndroidTestRunner(PACKAGES[0], CTS_RUNNER,
+                mDevice.getIDevice());
+        LocalListener listener = new LocalListener();
+        mDevice.runInstrumentationTests(testRunner, listener);
+        TestRunResult result = listener.getCurrentRunResults();
+        if (result.isRunFailure()) {
+            fail(result.getRunFailureMessage());
+        }
+        assertNotNull("no performance data", mPtsReport);
+        PtsHostStore.storePtsResult(mDevice.getSerialNumber(),
+                ReportLog.getClassMethodNames(), mPtsReport);
+
+    }
+
+    public class LocalListener extends CollectingTestListener {
+        @Override
+        public void testEnded(TestIdentifier test, Map<String, String> testMetrics) {
+            // necessary as testMetrics passed from CollectingTestListerner is empty
+            mPtsReport = PtsReportUtil.getPtsResultFromMetrics(testMetrics);
+            super.testEnded(test, testMetrics);
+        }
+    }
+}
diff --git a/suite/pts/lib/Android.mk b/suite/pts/lib/Android.mk
new file mode 100644
index 0000000..c141484
--- /dev/null
+++ b/suite/pts/lib/Android.mk
@@ -0,0 +1,17 @@
+#
+# 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.
+#
+
+include $(call all-subdir-makefiles)
diff --git a/suite/pts/lib/commonutil/Android.mk b/suite/pts/lib/commonutil/Android.mk
new file mode 100644
index 0000000..73df09b
--- /dev/null
+++ b/suite/pts/lib/commonutil/Android.mk
@@ -0,0 +1,42 @@
+# 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)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE := ptscommonutil
+
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+################################################################
+
+include $(CLEAR_VARS)
+
+# only TimeoutReq annotation used from the libs/util, so add it here
+LOCAL_SRC_FILES := \
+    $(call all-java-files-under, src) \
+    ../../../../libs/util/src/android/cts/util/TimeoutReq.java
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_JAVA_LIBRARIES := junit
+
+LOCAL_MODULE := ptscommonutilhost
+
+include $(BUILD_HOST_JAVA_LIBRARY)
\ No newline at end of file
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureRun.java b/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureRun.java
new file mode 100644
index 0000000..3add474
--- /dev/null
+++ b/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureRun.java
@@ -0,0 +1,31 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.util;
+
+/**
+ * interface for measuring time for each run.
+ */
+public abstract class MeasureRun {
+    /**
+     *  called before each run. not included to time measurement.
+     */
+    public void prepare(int i) throws Exception {
+        // default empty implementation
+    };
+
+    abstract public void run(int i) throws Exception;
+}
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureTime.java b/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureTime.java
new file mode 100644
index 0000000..595e6a5
--- /dev/null
+++ b/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureTime.java
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.util;
+
+
+public class MeasureTime {
+    /**
+     * measure time taken for each run for given count
+     * @param count
+     * @param run
+     * @return array of time taken in each run in msec.
+     * @throws IOException
+     */
+    public static double[] measure(int count, MeasureRun run)  throws Exception {
+        double[] result = new double[count];
+
+        for (int i = 0; i < count; i++) {
+            run.prepare(i);
+            long start = System.currentTimeMillis();
+            run.run(i);
+            long end =  System.currentTimeMillis();
+            result[i] = end - start;
+        }
+        return result;
+    }
+}
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/PtsException.java b/suite/pts/lib/commonutil/src/com/android/pts/util/PtsException.java
new file mode 100644
index 0000000..e8ec5be
--- /dev/null
+++ b/suite/pts/lib/commonutil/src/com/android/pts/util/PtsException.java
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.util;
+
+/**
+ * Exception throw by PTS test to pass the result to host
+ * This should not be thrown by test app unless the result is complete.
+ */
+@SuppressWarnings("serial")
+public class PtsException extends Exception {
+    public PtsException(String message) {
+        super(message);
+    }
+}
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/ReportLog.java b/suite/pts/lib/commonutil/src/com/android/pts/util/ReportLog.java
new file mode 100644
index 0000000..63f5589
--- /dev/null
+++ b/suite/pts/lib/commonutil/src/com/android/pts/util/ReportLog.java
@@ -0,0 +1,200 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.util;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import junit.framework.Assert;
+
+
+/**
+ * Utility class to print performance measurement result back to host.
+ * For now, throws know exception with message.
+ *
+ * Format:
+ * Message = summary log SUMMARY_SEPARATOR [LOG_SEPARATOR log]*
+ * summary = message|target|unit|type|value, target can be " " if there is no target set.
+ * log for array = classMethodName:line_number|message|unit|type|space seSummaryparated values
+ */
+public class ReportLog {
+    private static final String LOG_SEPARATOR = "+++";
+    private static final String SUMMARY_SEPARATOR = "++++";
+    private static final String LOG_ELEM_SEPARATOR = "|";
+
+    private List<String> mMessages = new LinkedList<String> ();
+    private String mSummary = null;
+    protected static int mDepth = 3;
+
+    /**
+     * print array of values to output log
+     */
+    public void printArray(String message, double[] values, ResultType type,
+            ResultUnit unit) {
+        doPrintArray(message, values, type, unit);
+    }
+
+    /**
+     * Print a value to output log
+     */
+    public void printValue(String message, double value, ResultType type,
+            ResultUnit unit) {
+        double[] vals = { value };
+        doPrintArray(message, vals, type, unit);
+    }
+
+    private void doPrintArray(String message, double[] values, ResultType type,
+    ResultUnit unit) {
+        StringBuilder builder = new StringBuilder();
+        // note mDepth + 1 as this function will be called by printVaue or printArray
+        // and we need caller of printValue / printArray
+        builder.append(getClassMethodNames(mDepth + 1, true) + LOG_ELEM_SEPARATOR + message +
+                LOG_ELEM_SEPARATOR + type.getXmlString() + LOG_ELEM_SEPARATOR +
+                unit.getXmlString() + LOG_ELEM_SEPARATOR);
+        for (double v : values) {
+            builder.append(v);
+            builder.append(" ");
+        }
+        mMessages.add(builder.toString());
+        printLog(builder.toString());
+    }
+
+    /**
+     * record the result of benchmarking with performance target.
+     * Depending on the ResultType, the function can fail if the result
+     * does not meet the target. For example, for the type of HIGHER_BETTER,
+     * value of 1.0 with target of 2.0 will fail.
+     *
+     * @param message message to be printed in the final report
+     * @param target target performance for the benchmarking
+     * @param value measured value
+     * @param type
+     * @param unit
+     */
+    public void printSummaryWithTarget(String message, double target, double value,
+            ResultType type, ResultUnit unit) {
+        mSummary = message + LOG_ELEM_SEPARATOR + target + LOG_ELEM_SEPARATOR + type.getXmlString()
+                + LOG_ELEM_SEPARATOR + unit.getXmlString() + LOG_ELEM_SEPARATOR + value;
+        boolean resultOk = true;
+        if (type == ResultType.HIGHER_BETTER) {
+            resultOk = value >= target;
+        } else if (type == ResultType.LOWER_BETTER) {
+            resultOk = value <= target;
+        }
+        if (!resultOk) {
+            Assert.fail("Measured result " + value + " does not meet perf target " + target +
+                    " with type " + type.getXmlString());
+        }
+    }
+
+    /**
+     * For standard report summary without target value.
+     * Note that this function will not fail as there is no target.
+     * @param messsage
+     * @param value
+     * @param type type of the value
+     * @param unit unit of the data
+     */
+    public void printSummary(String message, double value, ResultType type,
+            ResultUnit unit) {
+        mSummary = message + LOG_ELEM_SEPARATOR + " " + LOG_ELEM_SEPARATOR + type.getXmlString() +
+                LOG_ELEM_SEPARATOR + unit.getXmlString() + LOG_ELEM_SEPARATOR + value;
+    }
+
+    protected String generateReport() {
+        if ((mSummary == null) && mMessages.isEmpty()) {
+            // just return empty string
+            return "";
+        }
+        StringBuilder builder = new StringBuilder();
+        builder.append(mSummary);
+        builder.append(SUMMARY_SEPARATOR);
+        for (String entry : mMessages) {
+            builder.append(entry);
+            builder.append(LOG_SEPARATOR);
+        }
+        // delete the last separator
+        if (builder.length() >= LOG_SEPARATOR.length()) {
+            builder.delete(builder.length() - LOG_SEPARATOR.length(), builder.length());
+        }
+        mSummary = null;
+        mMessages.clear();
+        return builder.toString();
+    }
+
+    /**
+     * calculate rate per sec for given change happened during given timeInMSec.
+     * timeInSec with 0 value will be changed to small value to prevent divide by zero.
+     * @param change total change of quality for the given duration timeInMSec.
+     * @param timeInMSec
+     * @return
+     */
+    public static double calcRatePerSec(double change, double timeInMSec) {
+        if (timeInMSec == 0) {
+            return change * 1000.0 / 0.001; // do not allow zero
+        } else {
+            return change * 1000.0 / timeInMSec;
+        }
+    }
+
+    /**
+     * array version of calcRatePerSecArray
+     */
+    public static double[] calcRatePerSecArray(double change, double[] timeInMSec) {
+        double[] result = new double[timeInMSec.length];
+        change *= 1000.0;
+        for (int i = 0; i < timeInMSec.length; i++) {
+            if (timeInMSec[i] == 0) {
+                result[i] = change / 0.001;
+            } else {
+                result[i] = change / timeInMSec[i];
+            }
+        }
+        return result;
+    }
+
+    /**
+     * copy array from src to dst with given offset in dst.
+     * dst should be big enough to hold src
+     */
+    public static void copyArray(double[] src, double[] dst, int dstOffset) {
+        for (int i = 0; i < src.length; i++) {
+            dst[dstOffset + i] = src[i];
+        }
+    }
+
+    /**
+     * get classname#methodname from call stack of the current thread
+     */
+    public static String getClassMethodNames() {
+        return getClassMethodNames(mDepth, false);
+    }
+
+    private static String getClassMethodNames(int depth, boolean addLineNumber) {
+        StackTraceElement[] elements = Thread.currentThread().getStackTrace();
+        String names = elements[depth].getClassName() + "#" + elements[depth].getMethodName() +
+                (addLineNumber ? ":" + elements[depth].getLineNumber() : "");
+        return names;
+    }
+
+    /**
+     * to be overridden by child to print message to be passed
+     */
+    protected void printLog(String msg) {
+
+    }
+}
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/ResultType.java b/suite/pts/lib/commonutil/src/com/android/pts/util/ResultType.java
new file mode 100644
index 0000000..cdf448b
--- /dev/null
+++ b/suite/pts/lib/commonutil/src/com/android/pts/util/ResultType.java
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.util;
+
+/**
+ * Enum for distinguishing performance results.
+ */
+public enum ResultType {
+    /** lower score shows better performance */
+    LOWER_BETTER,
+    /** higher score shows better performance */
+    HIGHER_BETTER,
+    /** This value is not directly correlated with performance. */
+    NEUTRAL,
+    /** presence of this type requires some attention although it may not be an error. */
+    WARNING;
+
+    /**
+     * Return string used in CTS XML report
+     */
+    public String getXmlString() {
+        return name().toLowerCase();
+    }
+}
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/ResultUnit.java b/suite/pts/lib/commonutil/src/com/android/pts/util/ResultUnit.java
new file mode 100644
index 0000000..b234cb5
--- /dev/null
+++ b/suite/pts/lib/commonutil/src/com/android/pts/util/ResultUnit.java
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.util;
+
+/**
+ * Enum for representing the unit of performance results.
+ *
+ */
+public enum ResultUnit {
+    /** for value with no unit */
+    NONE,
+    /** milli-seconds */
+    MS,
+    /** frames per second */
+    FPS,
+    /** operations per second */
+    OPS,
+    /** kilo-bytes-per-second, not bits-per-second */
+    KBPS,
+    /** mega-bytes-per-second */
+    MBPS,
+    /** amount of data, bytes */
+    BYTE,
+    /** tell how many times it did happen. */
+    COUNT,
+    /** unit for benchmarking with generic score. */
+    SCORE;
+
+    /**
+     * Return string used in CTS XML report
+     */
+    public String getXmlString() {
+        return name().toLowerCase();
+    }
+}
+
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/Stat.java b/suite/pts/lib/commonutil/src/com/android/pts/util/Stat.java
new file mode 100644
index 0000000..5560292
--- /dev/null
+++ b/suite/pts/lib/commonutil/src/com/android/pts/util/Stat.java
@@ -0,0 +1,157 @@
+/*
+ * 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.
+ */
+
+package com.android.pts.util;
+
+import java.util.Arrays;
+
+/**
+ * Utilities for doing statistics
+ *
+ */
+public class Stat {
+
+    /**
+     * Collection of statistical propertirs like average, max, min, and stddev
+     */
+    public static class StatResult {
+        public double mAverage;
+        public double mMin;
+        public double mMax;
+        public double mStddev;
+        public int mDataCount;
+        public StatResult(double average, double min, double max, double stddev, int dataCount) {
+            mAverage = average;
+            mMin = min;
+            mMax = max;
+            mStddev = stddev;
+            mDataCount = dataCount;
+        }
+    }
+
+    /**
+     * Calculate statistics properties likes average, min, max, and stddev for the given array
+     */
+    public static StatResult getStat(double[] data) {
+        double average = data[0];
+        double min = data[0];
+        double max = data[0];
+        double eX2 = data[0] * data[0]; // will become E[X^2]
+        for (int i = 1; i < data.length; i++) {
+            average += data[i];
+            eX2 += data[i] * data[i];
+            if (data[i] > max) {
+                max = data[i];
+            }
+            if (data[i] < min) {
+                min = data[i];
+            }
+        }
+        average /= data.length;
+        eX2 /= data.length;
+        // stddev = sqrt(E[X^2] - (E[X])^2)
+        double stddev = Math.sqrt(eX2 - average * average);
+        return new StatResult(average, min, max, stddev, data.length);
+    }
+
+    /**
+     * Calculate statistics properties likes average, min, max, and stddev for the given array
+     * while rejecting outlier +/- median * rejectionThreshold.
+     * rejectionThreshold should be bigger than 0.0 and be lowerthan 1.0
+     */
+    public static StatResult getStatWithOutlierRejection(double[] data, double rejectionThreshold) {
+        double[] dataCopied = Arrays.copyOf(data, data.length);
+        Arrays.sort(dataCopied);
+        int medianIndex = dataCopied.length / 2;
+        double median;
+        if (dataCopied.length % 2 == 1) {
+            median = dataCopied[medianIndex];
+        } else {
+            median = (dataCopied[medianIndex - 1] + dataCopied[medianIndex]) / 2.0;
+        }
+        double thresholdMin = median * (1.0 - rejectionThreshold);
+        double thresholdMax = median * (1.0 + rejectionThreshold);
+
+        double average = 0.0;
+        double min = median;
+        double max = median;
+        double eX2 = 0.0; // will become E[X^2]
+        int validDataCounter = 0;
+        for (int i = 0; i < data.length; i++) {
+            if ((data[i] > thresholdMin) && (data[i] < thresholdMax)) {
+                validDataCounter++;
+                average += data[i];
+                eX2 += data[i] * data[i];
+                if (data[i] > max) {
+                    max = data[i];
+                }
+                if (data[i] < min) {
+                    min = data[i];
+                }
+            }
+            //TODO report rejected data
+        }
+        double stddev;
+        if (validDataCounter > 0) {
+            average /= validDataCounter;
+            eX2 /= validDataCounter;
+            // stddev = sqrt(E[X^2] - (E[X])^2)
+            stddev = Math.sqrt(eX2 - average * average);
+        } else { // both median is showing too much diff
+            average = median;
+            stddev = 0; // don't care
+        }
+
+        return new StatResult(average, min, max, stddev, validDataCounter);
+    }
+
+    /**
+     * return the average value of the passed array
+     */
+    public static double getAverage(double[] data) {
+        double sum = data[0];
+        for (int i = 1; i < data.length; i++) {
+            sum += data[i];
+        }
+        return sum / data.length;
+    }
+
+    /**
+     * return the minimum value of the passed array
+     */
+    public static double getMin(double[] data) {
+        double min = data[0];
+        for (int i = 1; i < data.length; i++) {
+            if (data[i] < min) {
+                min = data[i];
+            }
+        }
+        return min;
+    }
+
+    /**
+     * return the maximum value of the passed array
+     */
+    public static double getMax(double[] data) {
+        double max = data[0];
+        for (int i = 1; i < data.length; i++) {
+            if (data[i] > max) {
+                max = data[i];
+            }
+        }
+        return max;
+    }
+}
diff --git a/suite/pts/utils/get_csv_report.py b/suite/pts/utils/get_csv_report.py
new file mode 100755
index 0000000..b22665d
--- /dev/null
+++ b/suite/pts/utils/get_csv_report.py
@@ -0,0 +1,219 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 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.
+
+import os
+import re
+import subprocess
+import sys
+from xml.dom import Node
+from xml.dom import minidom
+
+def getChildrenWithTag(parent, tagName):
+  children = []
+  for child in  parent.childNodes:
+    if (child.nodeType == Node.ELEMENT_NODE) and (child.tagName == tagName):
+      #print "parent " + parent.getAttribute("name") + " " + tagName +\
+      #  " " + child.getAttribute("name")
+      children.append(child)
+  return children
+
+def getText(tag):
+  return str(tag.firstChild.nodeValue)
+
+class TestCase(object):
+  def __init__(self, name, summary, details, result):
+    self.name = name
+    self.summary = summary
+    self.details = details
+    self.result = result
+
+  def getName(self):
+    return self.name
+
+  def getSummary(self):
+    return self.summary
+
+  def getDetails(self):
+    return self.details
+
+  def getResult(self):
+    return self.result
+
+def parseSuite(suite, parentName):
+  if parentName != "":
+    parentName += '.'
+  cases = {}
+  childSuites = getChildrenWithTag(suite, "TestSuite")
+  for child in childSuites:
+    cases.update(parseSuite(child, parentName + child.getAttribute("name")))
+  childTestCases = getChildrenWithTag(suite, "TestCase")
+  for child in childTestCases:
+    className = parentName + child.getAttribute("name")
+    for test in getChildrenWithTag(child, "Test"):
+      methodName = test.getAttribute("name")
+      # do not include this
+      if methodName == "testAndroidTestCaseSetupProperly":
+        continue
+      caseName = str(className + "#" + methodName)
+      result = str(test.getAttribute("result"))
+      summary = {}
+      details = {}
+      if result == "pass":
+        sts = getChildrenWithTag(test, "Summary")
+        dts = getChildrenWithTag(test, "Details")
+        if len(sts) == len(dts) == 1:
+          summary[sts[0].getAttribute("message")] = getText(sts[0])
+          for d in getChildrenWithTag(dts[0], "ValueArray"):
+            values = []
+            for c in getChildrenWithTag(d, "Value"):
+              values.append(getText(c))
+            details[d.getAttribute("message")] = values
+        else:
+          result = "no results"
+      testCase = TestCase(caseName, summary, details, result)
+      cases[caseName] = testCase
+  return cases
+
+
+class Result(object):
+  def __init__(self, reportXml):
+    self.results = {}
+    self.infoKeys = []
+    self.infoValues = []
+    doc = minidom.parse(reportXml)
+    testResult = doc.getElementsByTagName("TestResult")[0]
+    buildInfos = testResult.getElementsByTagName("BuildInfo")
+    if buildInfos != None and len(buildInfos) > 0:
+      buildInfo = buildInfos[0]
+      buildId = buildInfo.getAttribute("buildID")
+      deviceId = buildInfo.getAttribute("deviceID")
+      deviceName = buildInfo.getAttribute("build_device")
+      boardName = buildInfo.getAttribute("build_board")
+      partitions = buildInfo.getAttribute("partitions")
+      m = re.search(r'.*;/data\s+([\w\.]+)\s+([\w\.]+)\s+([\w\.]+)\s+([\w\.]+);', partitions)
+      dataPartitionSize = m.group(1)
+      self.addKV("device", deviceName)
+      self.addKV("board", boardName)
+      self.addKV("serial", deviceId)
+      self.addKV("build", buildId)
+      self.addKV("data size", dataPartitionSize)
+    packages = getChildrenWithTag(testResult, "TestPackage")
+    for package in packages:
+      casesFromChild = parseSuite(package, "")
+      self.results.update(casesFromChild)
+    #print self.results.keys()
+
+  def addKV(self, key, value):
+    self.infoKeys.append(key)
+    self.infoValues.append(value)
+
+  def getResults(self):
+    return self.results
+
+  def getKeys(self):
+    return self.infoKeys
+
+  def getValues(self):
+    return self.infoValues
+
+  def getDeviceName(self):
+    return self.getInfoV("device")
+
+  def getInfoV(self, key):
+    if key in self.infoKeys:
+      return self.infoValues[self.infoKeys.index(key)]
+    else:
+      return "unknown"
+
+def executeWithResult(command):
+  p = subprocess.Popen(command.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+  out, err = p.communicate()
+  return out
+
+def parseReports(path):
+  deviceResults = []
+  xmls = executeWithResult("find " + path + " -name testResult.xml -print")
+  print "xml files found :"
+  print xmls
+  for xml in xmls.splitlines():
+    result = Result(xml)
+    deviceResults.append(result)
+  reportInfo = {}
+  keys = ["device", "board", "serial", "build", "data size"]
+  numDevices = len(deviceResults)
+  for i in xrange(len(keys)):
+    values = []
+    for j in xrange(numDevices):
+      values.append(str(deviceResults[j].getInfoV(keys[i])))
+    reportInfo[keys[i]] = values
+  #print reportInfo
+
+  tests = []
+  for deviceResult in deviceResults:
+    for key in deviceResult.getResults().keys():
+      if not key in tests:
+        tests.append(key)
+  #print tests
+
+  reportTests = {}
+  for i in xrange(len(tests)):
+    test = tests[i]
+    reportTests[test] = []
+    for j in xrange(numDevices):
+      values = {}
+      if deviceResults[j].getResults().has_key(test):
+        result = deviceResults[j].getResults()[test]
+        values["result"] = result.getResult()
+        values["summary"] = result.getSummary()
+        values["details"] = result.getDetails()
+        values["device"] = deviceResults[j].getDeviceName()
+      # even if report does not have test, put empty dict
+      # otherwise, there is no way to distinguish results from the same device
+      reportTests[test].append(values)
+  #print reportTests
+  return (reportInfo, reportTests)
+
+def main(argv):
+  if len(argv) < 3:
+    print "get_csv_report.py pts_report_dir output_file"
+    sys.exit(1)
+  reportPath = os.path.abspath(argv[1])
+  outputCsv = os.path.abspath(argv[2])
+
+  (reportInfo, reportTests) = parseReports(reportPath)
+
+  with open(outputCsv, 'w') as f:
+    for key in reportInfo:
+      f.write(key)
+      for value in reportInfo[key]:
+        f.write(',')
+        f.write(value)
+      f.write('\n')
+    sortedTest = sorted(reportTests)
+    for test in sortedTest:
+      f.write(test)
+      for report in reportTests[test]:
+        f.write(',')
+        if 'summary' in report:
+          summaryValues = report['summary'].values()
+          if len(summaryValues) > 0:
+            f.write(summaryValues[0])
+        # else: no data printed but just empty cell
+      # close a test with line
+      f.write('\n')
+
+if __name__ == '__main__':
+  main(sys.argv)
diff --git a/suite/pts/utils/grapher.py b/suite/pts/utils/grapher.py
new file mode 100755
index 0000000..12976ec
--- /dev/null
+++ b/suite/pts/utils/grapher.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 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.
+
+import os, sys
+import get_csv_report as psr
+import matplotlib.pyplot as plt
+import matplotlib.mlab as mlab
+import matplotlib.cbook as cbook
+import matplotlib.ticker as ticker
+"""
+A simple script to render the data from the benchmark as a graph.
+This uses MatPlotLib (http://matplotlib.org/) to plot which can be installed on linux with;
+  sudo apt-get install python-matplotlib
+"""
+
+colors = {
+  'maguro':'#FF0000',
+  'mako':'#00FF00',
+  'manta':'#0000FF',
+  'tilapia':'#00FFFF'
+}
+
+def main(argv):
+  if len(argv) != 2:
+    print "grapher.py pts_report_dir"
+    sys.exit(1)
+
+  (_, tests) = psr.parseReports(os.path.abspath(argv[1]))
+
+  # For each of the benchmarks
+  for benchmark in tests:
+    if benchmark.startswith('com.android.pts.opengl.primitive'):
+      results = tests[benchmark]
+      legend = []
+      # Create a new figure
+      fig = plt.figure()
+      # Set the title of the graph
+      plt.title(benchmark[benchmark.index('#') + 1:])
+      # For each result in the data set
+      for r in results:
+        score = r.get('result', 'no results')
+        x = []
+        y = []
+        if score == 'pass':
+          y = r['details']['Fps Values']
+          x = range(1, len(y) + 1)
+          # Get the score, then trim it to 2 decimal places
+          score = r['summary']['Average Frames Per Second']
+          score = score[0:score.index('.') + 3]
+        if score != 'no results':
+          # Create a plot
+          ax = fig.add_subplot(111)
+          name = r['device']
+          lbl = name + ' (%s)'%score
+          clr = colors.get(name, "#%06X" % (hash(name) % 0xFFFFFF))
+          # Plot the workload vs the values
+          ax.plot(x, y, 'o-', label=lbl, color=clr)
+          # Add a legend
+          ax.legend(loc='upper right').get_frame().set_fill(False)
+      (ymin, ymax) = plt.ylim()
+      if ymax < 90:# So that on screen tests are easier to compare
+        plt.ylim(0, 90)
+      plt.xlabel('Iteration')
+      plt.ylabel('FPS')
+      fig.autofmt_xdate()
+  # Show the plots
+  plt.show()
+
+if __name__ == '__main__':
+  main(sys.argv)
diff --git a/tests/expectations/knownfailures.txt b/tests/expectations/knownfailures.txt
index 1992b11..d7ef39f 100644
--- a/tests/expectations/knownfailures.txt
+++ b/tests/expectations/knownfailures.txt
@@ -2,5 +2,9 @@
 {
   name: "android.openglperf.cts.GlVboPerfTest#testVboWithVaryingIndexBufferNumbers",
   bug: 6950385
+},
+{
+  name: "android.holo.cts.HoloTest",
+  bug: 8148617
 }
 ]
diff --git a/tests/res/raw/leak.bc b/tests/res/raw/leak.bc
new file mode 100644
index 0000000..327f25c
--- /dev/null
+++ b/tests/res/raw/leak.bc
Binary files differ
diff --git a/tests/src/android/app/cts/ActivityManagerRecentOneActivity.java b/tests/src/android/app/cts/ActivityManagerRecentOneActivity.java
old mode 100755
new mode 100644
diff --git a/tests/src/android/app/cts/ActivityManagerRecentTwoActivity.java b/tests/src/android/app/cts/ActivityManagerRecentTwoActivity.java
old mode 100755
new mode 100644
diff --git a/tests/src/android/renderscript/cts/acos_f32_relaxed.rs b/tests/src/android/renderscript/cts/acos_f32_relaxed.rs
new file mode 100644
index 0000000..b553719
--- /dev/null
+++ b/tests/src/android/renderscript/cts/acos_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "acos_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/acosh_f32_relaxed.rs b/tests/src/android/renderscript/cts/acosh_f32_relaxed.rs
new file mode 100644
index 0000000..b7995c1
--- /dev/null
+++ b/tests/src/android/renderscript/cts/acosh_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "acosh_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/acospi_f32_relaxed.rs b/tests/src/android/renderscript/cts/acospi_f32_relaxed.rs
new file mode 100644
index 0000000..0d76365
--- /dev/null
+++ b/tests/src/android/renderscript/cts/acospi_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "acospi_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/asin_f32_relaxed.rs b/tests/src/android/renderscript/cts/asin_f32_relaxed.rs
new file mode 100644
index 0000000..b5b3926
--- /dev/null
+++ b/tests/src/android/renderscript/cts/asin_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "asin_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/asinh_f32_relaxed.rs b/tests/src/android/renderscript/cts/asinh_f32_relaxed.rs
new file mode 100644
index 0000000..02a7082
--- /dev/null
+++ b/tests/src/android/renderscript/cts/asinh_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "asinh_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/asinpi_f32_relaxed.rs b/tests/src/android/renderscript/cts/asinpi_f32_relaxed.rs
new file mode 100644
index 0000000..924a534
--- /dev/null
+++ b/tests/src/android/renderscript/cts/asinpi_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "asinpi_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/atan2_f32_relaxed.rs b/tests/src/android/renderscript/cts/atan2_f32_relaxed.rs
new file mode 100644
index 0000000..dd749fa
--- /dev/null
+++ b/tests/src/android/renderscript/cts/atan2_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "atan2_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/atan2pi_f32_relaxed.rs b/tests/src/android/renderscript/cts/atan2pi_f32_relaxed.rs
new file mode 100644
index 0000000..0d4e8fb
--- /dev/null
+++ b/tests/src/android/renderscript/cts/atan2pi_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "atan2pi_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/atan_f32_relaxed.rs b/tests/src/android/renderscript/cts/atan_f32_relaxed.rs
new file mode 100644
index 0000000..e015aa8
--- /dev/null
+++ b/tests/src/android/renderscript/cts/atan_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "atan_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/atanh_f32_relaxed.rs b/tests/src/android/renderscript/cts/atanh_f32_relaxed.rs
new file mode 100644
index 0000000..2083e4d
--- /dev/null
+++ b/tests/src/android/renderscript/cts/atanh_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "atanh_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/atanpi_f32_relaxed.rs b/tests/src/android/renderscript/cts/atanpi_f32_relaxed.rs
new file mode 100644
index 0000000..fefe784
--- /dev/null
+++ b/tests/src/android/renderscript/cts/atanpi_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "atanpi_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/cbrt_f32_relaxed.rs b/tests/src/android/renderscript/cts/cbrt_f32_relaxed.rs
new file mode 100644
index 0000000..9b9e5a5
--- /dev/null
+++ b/tests/src/android/renderscript/cts/cbrt_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "cbrt_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/ceil_f32_relaxed.rs b/tests/src/android/renderscript/cts/ceil_f32_relaxed.rs
new file mode 100644
index 0000000..332ca6c
--- /dev/null
+++ b/tests/src/android/renderscript/cts/ceil_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "ceil_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/copysign_f32_relaxed.rs b/tests/src/android/renderscript/cts/copysign_f32_relaxed.rs
new file mode 100644
index 0000000..e7fe701
--- /dev/null
+++ b/tests/src/android/renderscript/cts/copysign_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "copysign_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/cos_f32_relaxed.rs b/tests/src/android/renderscript/cts/cos_f32_relaxed.rs
new file mode 100644
index 0000000..ceb51d2
--- /dev/null
+++ b/tests/src/android/renderscript/cts/cos_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "cos_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/cosh_f32_relaxed.rs b/tests/src/android/renderscript/cts/cosh_f32_relaxed.rs
new file mode 100644
index 0000000..7f6a79b
--- /dev/null
+++ b/tests/src/android/renderscript/cts/cosh_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "cosh_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/cross_f32_relaxed.rs b/tests/src/android/renderscript/cts/cross_f32_relaxed.rs
new file mode 100644
index 0000000..d9fbfed
--- /dev/null
+++ b/tests/src/android/renderscript/cts/cross_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "cross_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/degrees_f32_relaxed.rs b/tests/src/android/renderscript/cts/degrees_f32_relaxed.rs
new file mode 100644
index 0000000..bc603a5
--- /dev/null
+++ b/tests/src/android/renderscript/cts/degrees_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "degrees_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/exp10_f32_relaxed.rs b/tests/src/android/renderscript/cts/exp10_f32_relaxed.rs
new file mode 100644
index 0000000..6e4e007
--- /dev/null
+++ b/tests/src/android/renderscript/cts/exp10_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "exp10_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/exp2_f32_relaxed.rs b/tests/src/android/renderscript/cts/exp2_f32_relaxed.rs
new file mode 100644
index 0000000..676b30a
--- /dev/null
+++ b/tests/src/android/renderscript/cts/exp2_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "exp2_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/exp_f32_relaxed.rs b/tests/src/android/renderscript/cts/exp_f32_relaxed.rs
new file mode 100644
index 0000000..dc4b3d0
--- /dev/null
+++ b/tests/src/android/renderscript/cts/exp_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "exp_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/expm1_f32_relaxed.rs b/tests/src/android/renderscript/cts/expm1_f32_relaxed.rs
new file mode 100644
index 0000000..5a3c40e
--- /dev/null
+++ b/tests/src/android/renderscript/cts/expm1_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "expm1_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/fabs_f32_relaxed.rs b/tests/src/android/renderscript/cts/fabs_f32_relaxed.rs
new file mode 100644
index 0000000..e0add35
--- /dev/null
+++ b/tests/src/android/renderscript/cts/fabs_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "fabs_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/fdim_f32_relaxed.rs b/tests/src/android/renderscript/cts/fdim_f32_relaxed.rs
new file mode 100644
index 0000000..18c8cf0
--- /dev/null
+++ b/tests/src/android/renderscript/cts/fdim_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "fdim_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/floor_f32_relaxed.rs b/tests/src/android/renderscript/cts/floor_f32_relaxed.rs
new file mode 100644
index 0000000..d6bef83
--- /dev/null
+++ b/tests/src/android/renderscript/cts/floor_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "floor_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/fma_f32_relaxed.rs b/tests/src/android/renderscript/cts/fma_f32_relaxed.rs
new file mode 100644
index 0000000..77f92df
--- /dev/null
+++ b/tests/src/android/renderscript/cts/fma_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "fma_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/fmax_f32_relaxed.rs b/tests/src/android/renderscript/cts/fmax_f32_relaxed.rs
new file mode 100644
index 0000000..23beccf
--- /dev/null
+++ b/tests/src/android/renderscript/cts/fmax_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "fmax_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/fmin_f32_relaxed.rs b/tests/src/android/renderscript/cts/fmin_f32_relaxed.rs
new file mode 100644
index 0000000..8be4f13
--- /dev/null
+++ b/tests/src/android/renderscript/cts/fmin_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "fmin_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/fmod_f32_relaxed.rs b/tests/src/android/renderscript/cts/fmod_f32_relaxed.rs
new file mode 100644
index 0000000..7a02136
--- /dev/null
+++ b/tests/src/android/renderscript/cts/fmod_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "fmod_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/hypot_f32_relaxed.rs b/tests/src/android/renderscript/cts/hypot_f32_relaxed.rs
new file mode 100644
index 0000000..7414788
--- /dev/null
+++ b/tests/src/android/renderscript/cts/hypot_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "hypot_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/intrinsic_colormatrix.rs b/tests/src/android/renderscript/cts/intrinsic_colormatrix.rs
new file mode 100644
index 0000000..1cab00b
--- /dev/null
+++ b/tests/src/android/renderscript/cts/intrinsic_colormatrix.rs
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 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 "shared.rsh"
+
+static rs_matrix4x4 Mat;
+
+int gFormatIn;
+int gFormatOut;
+float4 gAdd;
+
+
+void init() {
+    rsMatrixLoadIdentity(&Mat);
+    gAdd = 0.f;
+}
+
+void setMatrix(rs_matrix4x4 m) {
+    Mat = m;
+}
+
+void test(rs_matrix4x4 m, float4 add, int formatIn, int formatOut) {
+
+}
+
+static float4 __attribute__((overloadable)) cvt_in(uchar4 in) {
+    float4 f = convert_float4(in);
+    f *= (1.f / 255.f);
+    return rsMatrixMultiply(&Mat, f);
+}
+static float4 __attribute__((overloadable)) cvt_in(uchar3 in) {
+    float4 f = {in.x, in.y, in.z, 0.f};
+    f *= (1.f / 255.f);
+    return rsMatrixMultiply(&Mat, f);
+}
+static float4 __attribute__((overloadable)) cvt_in(uchar2 in) {
+    float4 f = {in.x, in.y, 0.f, 0.f};
+    f *= (1.f / 255.f);
+    return rsMatrixMultiply(&Mat, f);
+}
+static float4 __attribute__((overloadable)) cvt_in(uchar in) {
+    float4 f = {in, 0.f, 0.f, 0.f};
+    f *= (1.f / 255.f);
+    return rsMatrixMultiply(&Mat, f);
+}
+static float4 __attribute__((overloadable)) cvt_in(float4 in) {
+    float4 f = in;
+    return rsMatrixMultiply(&Mat, f);
+}
+static float4 __attribute__((overloadable)) cvt_in(float3 in) {
+    float4 f = {in.x, in.y, in.z, 0.f};
+    return rsMatrixMultiply(&Mat, f);
+}
+static float4 __attribute__((overloadable)) cvt_in(float2 in) {
+    float4 f = {in.x, in.y, 0.f, 0.f};
+    return rsMatrixMultiply(&Mat, f);
+}
+static float4 __attribute__((overloadable)) cvt_in(float in) {
+    float4 f = {in, 0.f, 0.f, 0.f};
+    return rsMatrixMultiply(&Mat, f);
+}
+
+
+static uchar4 cvt_out_uchar4(float4 f) {
+    f = clamp(f, 0.f, 255.5f);
+    return convert_uchar4(f.xyzw);
+}
+static uchar3 cvt_out_uchar3(float4 f) {
+    f = clamp(f, 0.f, 255.5f);
+    return convert_uchar3(f.xyz);
+}
+static uchar2 cvt_out_uchar2(float4 f) {
+    f = clamp(f, 0.f, 255.5f);
+    return convert_uchar2(f.xy);
+}
+static uchar cvt_out_uchar(float4 f) {
+    f = clamp(f, 0.f, 255.5f);
+    return f.x;
+}
+static float4 cvt_out_float4(float4 f) {
+    return f;
+}
+static float3 cvt_out_float3(float4 f) {
+    return f.xyz;
+}
+static float2 cvt_out_float2(float4 f) {
+    return f.xy;
+}
+static float cvt_out_float(float4 f) {
+    return f.x;
+}
+
+#define KERN(tin, tout) \
+tout __attribute__((kernel)) k_##tin##_##tout(tin in) {         \
+    float4 f = cvt_in(in);                                      \
+    return cvt_out_##tout(f);                                   \
+}
+
+#define KERN2(tin)  \
+KERN(tin, uchar4)   \
+KERN(tin, uchar3)   \
+KERN(tin, uchar2)   \
+KERN(tin, uchar)    \
+KERN(tin, float4)   \
+KERN(tin, float3)   \
+KERN(tin, float2)   \
+KERN(tin, float)
+
+KERN2(uchar4)
+KERN2(uchar3)
+KERN2(uchar2)
+KERN2(uchar)
+KERN2(float4)
+KERN2(float3)
+KERN2(float2)
+KERN2(float)
+
diff --git a/tests/src/android/renderscript/cts/intrinsic_convolve3x3.rs b/tests/src/android/renderscript/cts/intrinsic_convolve3x3.rs
new file mode 100644
index 0000000..77da230
--- /dev/null
+++ b/tests/src/android/renderscript/cts/intrinsic_convolve3x3.rs
@@ -0,0 +1,305 @@
+/*
+ * Copyright (C) 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 "shared.rsh"
+
+int32_t gWidth;
+int32_t gHeight;
+rs_allocation gIn;
+
+float gCoeffs[9];
+
+uchar4 __attribute__((kernel)) convolve_U4(uint32_t x, uint32_t y) {
+    uint32_t x1 = min((int32_t)x+1, gWidth-1);
+    uint32_t x2 = max((int32_t)x-1, 0);
+    uint32_t y1 = min((int32_t)y+1, gHeight-1);
+    uint32_t y2 = max((int32_t)y-1, 0);
+
+    float4 p00 = convert_float4(rsGetElementAt_uchar4(gIn, x1, y1));
+    float4 p01 = convert_float4(rsGetElementAt_uchar4(gIn, x, y1));
+    float4 p02 = convert_float4(rsGetElementAt_uchar4(gIn, x2, y1));
+    float4 p10 = convert_float4(rsGetElementAt_uchar4(gIn, x1, y));
+    float4 p11 = convert_float4(rsGetElementAt_uchar4(gIn, x, y));
+    float4 p12 = convert_float4(rsGetElementAt_uchar4(gIn, x2, y));
+    float4 p20 = convert_float4(rsGetElementAt_uchar4(gIn, x1, y2));
+    float4 p21 = convert_float4(rsGetElementAt_uchar4(gIn, x, y2));
+    float4 p22 = convert_float4(rsGetElementAt_uchar4(gIn, x2, y2));
+    p00 *= gCoeffs[0];
+    p01 *= gCoeffs[1];
+    p02 *= gCoeffs[2];
+    p10 *= gCoeffs[3];
+    p11 *= gCoeffs[4];
+    p12 *= gCoeffs[5];
+    p20 *= gCoeffs[6];
+    p21 *= gCoeffs[7];
+    p22 *= gCoeffs[8];
+
+    p00 += p01;
+    p02 += p10;
+    p11 += p12;
+    p20 += p21;
+
+    p22 += p00;
+    p02 += p11;
+
+    p20 += p22;
+    p20 += p02;
+    p20 += 0.5f;
+
+    p20 = clamp(p20, 0.f, 255.f);
+    return convert_uchar4(p20);
+}
+
+uchar3 __attribute__((kernel)) convolve_U3(uint32_t x, uint32_t y) {
+    uint32_t x1 = min((int32_t)x+1, gWidth-1);
+    uint32_t x2 = max((int32_t)x-1, 0);
+    uint32_t y1 = min((int32_t)y+1, gHeight-1);
+    uint32_t y2 = max((int32_t)y-1, 0);
+
+    float3 p00 = convert_float3(rsGetElementAt_uchar3(gIn, x1, y1));
+    float3 p01 = convert_float3(rsGetElementAt_uchar3(gIn, x, y1));
+    float3 p02 = convert_float3(rsGetElementAt_uchar3(gIn, x2, y1));
+    float3 p10 = convert_float3(rsGetElementAt_uchar3(gIn, x1, y));
+    float3 p11 = convert_float3(rsGetElementAt_uchar3(gIn, x, y));
+    float3 p12 = convert_float3(rsGetElementAt_uchar3(gIn, x2, y));
+    float3 p20 = convert_float3(rsGetElementAt_uchar3(gIn, x1, y2));
+    float3 p21 = convert_float3(rsGetElementAt_uchar3(gIn, x, y2));
+    float3 p22 = convert_float3(rsGetElementAt_uchar3(gIn, x2, y2));
+    p00 *= gCoeffs[0];
+    p01 *= gCoeffs[1];
+    p02 *= gCoeffs[2];
+    p10 *= gCoeffs[3];
+    p11 *= gCoeffs[4];
+    p12 *= gCoeffs[5];
+    p20 *= gCoeffs[6];
+    p21 *= gCoeffs[7];
+    p22 *= gCoeffs[8];
+
+    p00 += p01;
+    p02 += p10;
+    p11 += p12;
+    p20 += p21;
+
+    p22 += p00;
+    p02 += p11;
+
+    p20 += p22;
+    p20 += p02;
+    p20 += 0.5f;
+
+    p20 = clamp(p20, 0.f, 255.f);
+    return convert_uchar3(p20);
+}
+
+uchar2 __attribute__((kernel)) convolve_U2(uint32_t x, uint32_t y) {
+    uint32_t x1 = min((int32_t)x+1, gWidth-1);
+    uint32_t x2 = max((int32_t)x-1, 0);
+    uint32_t y1 = min((int32_t)y+1, gHeight-1);
+    uint32_t y2 = max((int32_t)y-1, 0);
+
+    float2 p00 = convert_float2(rsGetElementAt_uchar2(gIn, x1, y1));
+    float2 p01 = convert_float2(rsGetElementAt_uchar2(gIn, x, y1));
+    float2 p02 = convert_float2(rsGetElementAt_uchar2(gIn, x2, y1));
+    float2 p10 = convert_float2(rsGetElementAt_uchar2(gIn, x1, y));
+    float2 p11 = convert_float2(rsGetElementAt_uchar2(gIn, x, y));
+    float2 p12 = convert_float2(rsGetElementAt_uchar2(gIn, x2, y));
+    float2 p20 = convert_float2(rsGetElementAt_uchar2(gIn, x1, y2));
+    float2 p21 = convert_float2(rsGetElementAt_uchar2(gIn, x, y2));
+    float2 p22 = convert_float2(rsGetElementAt_uchar2(gIn, x2, y2));
+    p00 *= gCoeffs[0];
+    p01 *= gCoeffs[1];
+    p02 *= gCoeffs[2];
+    p10 *= gCoeffs[3];
+    p11 *= gCoeffs[4];
+    p12 *= gCoeffs[5];
+    p20 *= gCoeffs[6];
+    p21 *= gCoeffs[7];
+    p22 *= gCoeffs[8];
+
+    p00 += p01;
+    p02 += p10;
+    p11 += p12;
+    p20 += p21;
+
+    p22 += p00;
+    p02 += p11;
+
+    p20 += p22;
+    p20 += p02;
+    p20 += 0.5f;
+
+    p20 = clamp(p20, 0.f, 255.f);
+    return convert_uchar2(p20);
+}
+
+uchar __attribute__((kernel)) convolve_U1(uint32_t x, uint32_t y) {
+    uint32_t x1 = min((int32_t)x+1, gWidth-1);
+    uint32_t x2 = max((int32_t)x-1, 0);
+    uint32_t y1 = min((int32_t)y+1, gHeight-1);
+    uint32_t y2 = max((int32_t)y-1, 0);
+
+    float p00 = rsGetElementAt_uchar(gIn, x1, y1);
+    float p01 = rsGetElementAt_uchar(gIn, x, y1);
+    float p02 = rsGetElementAt_uchar(gIn, x2, y1);
+    float p10 = rsGetElementAt_uchar(gIn, x1, y);
+    float p11 = rsGetElementAt_uchar(gIn, x, y);
+    float p12 = rsGetElementAt_uchar(gIn, x2, y);
+    float p20 = rsGetElementAt_uchar(gIn, x1, y2);
+    float p21 = rsGetElementAt_uchar(gIn, x, y2);
+    float p22 = rsGetElementAt_uchar(gIn, x2, y2);
+    p00 *= gCoeffs[0];
+    p01 *= gCoeffs[1];
+    p02 *= gCoeffs[2];
+    p10 *= gCoeffs[3];
+    p11 *= gCoeffs[4];
+    p12 *= gCoeffs[5];
+    p20 *= gCoeffs[6];
+    p21 *= gCoeffs[7];
+    p22 *= gCoeffs[8];
+
+    p00 += p01;
+    p02 += p10;
+    p11 += p12;
+    p20 += p21;
+
+    p22 += p00;
+    p02 += p11;
+
+    p20 += p22;
+    p20 += p02;
+    p20 += 0.5f;
+
+    p20 = clamp(p20, 0.f, 255.f);
+    return (uchar)p20;
+}
+
+float4 __attribute__((kernel)) convolve_F4(uint32_t x, uint32_t y) {
+    uint32_t x1 = min((int32_t)x+1, gWidth-1);
+    uint32_t x2 = max((int32_t)x-1, 0);
+    uint32_t y1 = min((int32_t)y+1, gHeight-1);
+    uint32_t y2 = max((int32_t)y-1, 0);
+
+    float4 p00 = rsGetElementAt_float4(gIn, x1, y1) * gCoeffs[0];
+    float4 p01 = rsGetElementAt_float4(gIn, x, y1) * gCoeffs[1];
+    float4 p02 = rsGetElementAt_float4(gIn, x2, y1) * gCoeffs[2];
+    float4 p10 = rsGetElementAt_float4(gIn, x1, y) * gCoeffs[3];
+    float4 p11 = rsGetElementAt_float4(gIn, x, y) * gCoeffs[4];
+    float4 p12 = rsGetElementAt_float4(gIn, x2, y) * gCoeffs[5];
+    float4 p20 = rsGetElementAt_float4(gIn, x1, y2) * gCoeffs[6];
+    float4 p21 = rsGetElementAt_float4(gIn, x, y2) * gCoeffs[7];
+    float4 p22 = rsGetElementAt_float4(gIn, x2, y2) * gCoeffs[8];
+
+    p00 += p01;
+    p02 += p10;
+    p11 += p12;
+    p20 += p21;
+
+    p22 += p00;
+    p02 += p11;
+
+    p20 += p22;
+    p20 += p02;
+    return p20;
+}
+
+float3 __attribute__((kernel)) convolve_F3(uint32_t x, uint32_t y) {
+    uint32_t x1 = min((int32_t)x+1, gWidth-1);
+    uint32_t x2 = max((int32_t)x-1, 0);
+    uint32_t y1 = min((int32_t)y+1, gHeight-1);
+    uint32_t y2 = max((int32_t)y-1, 0);
+
+    float3 p00 = rsGetElementAt_float3(gIn, x1, y1) * gCoeffs[0];
+    float3 p01 = rsGetElementAt_float3(gIn, x, y1) * gCoeffs[1];
+    float3 p02 = rsGetElementAt_float3(gIn, x2, y1) * gCoeffs[2];
+    float3 p10 = rsGetElementAt_float3(gIn, x1, y) * gCoeffs[3];
+    float3 p11 = rsGetElementAt_float3(gIn, x, y) * gCoeffs[4];
+    float3 p12 = rsGetElementAt_float3(gIn, x2, y) * gCoeffs[5];
+    float3 p20 = rsGetElementAt_float3(gIn, x1, y2) * gCoeffs[6];
+    float3 p21 = rsGetElementAt_float3(gIn, x, y2) * gCoeffs[7];
+    float3 p22 = rsGetElementAt_float3(gIn, x2, y2) * gCoeffs[8];
+
+    p00 += p01;
+    p02 += p10;
+    p11 += p12;
+    p20 += p21;
+
+    p22 += p00;
+    p02 += p11;
+
+    p20 += p22;
+    p20 += p02;
+    return p20;
+}
+
+float2 __attribute__((kernel)) convolve_F2(uint32_t x, uint32_t y) {
+    uint32_t x1 = min((int32_t)x+1, gWidth-1);
+    uint32_t x2 = max((int32_t)x-1, 0);
+    uint32_t y1 = min((int32_t)y+1, gHeight-1);
+    uint32_t y2 = max((int32_t)y-1, 0);
+
+    float2 p00 = rsGetElementAt_float2(gIn, x1, y1) * gCoeffs[0];
+    float2 p01 = rsGetElementAt_float2(gIn, x, y1) * gCoeffs[1];
+    float2 p02 = rsGetElementAt_float2(gIn, x2, y1) * gCoeffs[2];
+    float2 p10 = rsGetElementAt_float2(gIn, x1, y) * gCoeffs[3];
+    float2 p11 = rsGetElementAt_float2(gIn, x, y) * gCoeffs[4];
+    float2 p12 = rsGetElementAt_float2(gIn, x2, y) * gCoeffs[5];
+    float2 p20 = rsGetElementAt_float2(gIn, x1, y2) * gCoeffs[6];
+    float2 p21 = rsGetElementAt_float2(gIn, x, y2) * gCoeffs[7];
+    float2 p22 = rsGetElementAt_float2(gIn, x2, y2) * gCoeffs[8];
+
+    p00 += p01;
+    p02 += p10;
+    p11 += p12;
+    p20 += p21;
+
+    p22 += p00;
+    p02 += p11;
+
+    p20 += p22;
+    p20 += p02;
+    return p20;
+}
+
+float __attribute__((kernel)) convolve_F1(uint32_t x, uint32_t y) {
+    uint32_t x1 = min((int32_t)x+1, gWidth-1);
+    uint32_t x2 = max((int32_t)x-1, 0);
+    uint32_t y1 = min((int32_t)y+1, gHeight-1);
+    uint32_t y2 = max((int32_t)y-1, 0);
+
+    float p00 = rsGetElementAt_float(gIn, x1, y1) * gCoeffs[0];
+    float p01 = rsGetElementAt_float(gIn, x, y1) * gCoeffs[1];
+    float p02 = rsGetElementAt_float(gIn, x2, y1) * gCoeffs[2];
+    float p10 = rsGetElementAt_float(gIn, x1, y) * gCoeffs[3];
+    float p11 = rsGetElementAt_float(gIn, x, y) * gCoeffs[4];
+    float p12 = rsGetElementAt_float(gIn, x2, y) * gCoeffs[5];
+    float p20 = rsGetElementAt_float(gIn, x1, y2) * gCoeffs[6];
+    float p21 = rsGetElementAt_float(gIn, x, y2) * gCoeffs[7];
+    float p22 = rsGetElementAt_float(gIn, x2, y2) * gCoeffs[8];
+
+    p00 += p01;
+    p02 += p10;
+    p11 += p12;
+    p20 += p21;
+
+    p22 += p00;
+    p02 += p11;
+
+    p20 += p22;
+    p20 += p02;
+    return p20;
+}
+
+
diff --git a/tests/src/android/renderscript/cts/intrinsic_convolve5x5.rs b/tests/src/android/renderscript/cts/intrinsic_convolve5x5.rs
new file mode 100644
index 0000000..9f9aa2b
--- /dev/null
+++ b/tests/src/android/renderscript/cts/intrinsic_convolve5x5.rs
@@ -0,0 +1,398 @@
+/*
+ * Copyright (C) 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 "shared.rsh"
+
+
+int32_t gWidth;
+int32_t gHeight;
+rs_allocation gIn;
+
+float gCoeffs[25];
+
+uchar4 __attribute__((kernel)) convolve_U4(uint32_t x, uint32_t y) {
+    uint32_t x0 = max((int32_t)x-2, 0);
+    uint32_t x1 = max((int32_t)x-1, 0);
+    uint32_t x2 = x;
+    uint32_t x3 = min((int32_t)x+1, gWidth-1);
+    uint32_t x4 = min((int32_t)x+2, gWidth-1);
+
+    uint32_t y0 = max((int32_t)y-2, 0);
+    uint32_t y1 = max((int32_t)y-1, 0);
+    uint32_t y2 = y;
+    uint32_t y3 = min((int32_t)y+1, gHeight-1);
+    uint32_t y4 = min((int32_t)y+2, gHeight-1);
+
+    float4 p0 = convert_float4(rsGetElementAt_uchar4(gIn, x0, y0)) * gCoeffs[0]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x1, y0)) * gCoeffs[1]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x2, y0)) * gCoeffs[2]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x3, y0)) * gCoeffs[3]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x4, y0)) * gCoeffs[4];
+
+    float4 p1 = convert_float4(rsGetElementAt_uchar4(gIn, x0, y1)) * gCoeffs[5]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x1, y1)) * gCoeffs[6]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x2, y1)) * gCoeffs[7]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x3, y1)) * gCoeffs[8]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x4, y1)) * gCoeffs[9];
+
+    float4 p2 = convert_float4(rsGetElementAt_uchar4(gIn, x0, y2)) * gCoeffs[10]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x1, y2)) * gCoeffs[11]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x2, y2)) * gCoeffs[12]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x3, y2)) * gCoeffs[13]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x4, y2)) * gCoeffs[14];
+
+    float4 p3 = convert_float4(rsGetElementAt_uchar4(gIn, x0, y3)) * gCoeffs[15]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x1, y3)) * gCoeffs[16]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x2, y3)) * gCoeffs[17]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x3, y3)) * gCoeffs[18]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x4, y3)) * gCoeffs[19];
+
+    float4 p4 = convert_float4(rsGetElementAt_uchar4(gIn, x0, y4)) * gCoeffs[20]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x1, y4)) * gCoeffs[21]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x2, y4)) * gCoeffs[22]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x3, y4)) * gCoeffs[23]
+              + convert_float4(rsGetElementAt_uchar4(gIn, x4, y4)) * gCoeffs[24];
+
+    p0 = clamp(p0 + p1 + p2 + p3 + p4, 0.f, 255.f);
+    return convert_uchar4(p0);
+}
+
+uchar3 __attribute__((kernel)) convolve_U3(uint32_t x, uint32_t y) {
+    uint32_t x0 = max((int32_t)x-2, 0);
+    uint32_t x1 = max((int32_t)x-1, 0);
+    uint32_t x2 = x;
+    uint32_t x3 = min((int32_t)x+1, gWidth-1);
+    uint32_t x4 = min((int32_t)x+2, gWidth-1);
+
+    uint32_t y0 = max((int32_t)y-2, 0);
+    uint32_t y1 = max((int32_t)y-1, 0);
+    uint32_t y2 = y;
+    uint32_t y3 = min((int32_t)y+1, gHeight-1);
+    uint32_t y4 = min((int32_t)y+2, gHeight-1);
+
+    float3 p0 = convert_float3(rsGetElementAt_uchar3(gIn, x0, y0)) * gCoeffs[0]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x1, y0)) * gCoeffs[1]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x2, y0)) * gCoeffs[2]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x3, y0)) * gCoeffs[3]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x4, y0)) * gCoeffs[4];
+
+    float3 p1 = convert_float3(rsGetElementAt_uchar3(gIn, x0, y1)) * gCoeffs[5]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x1, y1)) * gCoeffs[6]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x2, y1)) * gCoeffs[7]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x3, y1)) * gCoeffs[8]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x4, y1)) * gCoeffs[9];
+
+    float3 p2 = convert_float3(rsGetElementAt_uchar3(gIn, x0, y2)) * gCoeffs[10]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x1, y2)) * gCoeffs[11]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x2, y2)) * gCoeffs[12]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x3, y2)) * gCoeffs[13]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x4, y2)) * gCoeffs[14];
+
+    float3 p3 = convert_float3(rsGetElementAt_uchar3(gIn, x0, y3)) * gCoeffs[15]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x1, y3)) * gCoeffs[16]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x2, y3)) * gCoeffs[17]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x3, y3)) * gCoeffs[18]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x4, y3)) * gCoeffs[19];
+
+    float3 p4 = convert_float3(rsGetElementAt_uchar3(gIn, x0, y4)) * gCoeffs[20]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x1, y4)) * gCoeffs[21]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x2, y4)) * gCoeffs[22]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x3, y4)) * gCoeffs[23]
+              + convert_float3(rsGetElementAt_uchar3(gIn, x4, y4)) * gCoeffs[24];
+
+    p0 = clamp(p0 + p1 + p2 + p3 + p4, 0.f, 255.f);
+    return convert_uchar3(p0);
+}
+
+uchar2 __attribute__((kernel)) convolve_U2(uint32_t x, uint32_t y) {
+    uint32_t x0 = max((int32_t)x-2, 0);
+    uint32_t x1 = max((int32_t)x-1, 0);
+    uint32_t x2 = x;
+    uint32_t x3 = min((int32_t)x+1, gWidth-1);
+    uint32_t x4 = min((int32_t)x+2, gWidth-1);
+
+    uint32_t y0 = max((int32_t)y-2, 0);
+    uint32_t y1 = max((int32_t)y-1, 0);
+    uint32_t y2 = y;
+    uint32_t y3 = min((int32_t)y+1, gHeight-1);
+    uint32_t y4 = min((int32_t)y+2, gHeight-1);
+
+    float2 p0 = convert_float2(rsGetElementAt_uchar2(gIn, x0, y0)) * gCoeffs[0]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x1, y0)) * gCoeffs[1]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x2, y0)) * gCoeffs[2]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x3, y0)) * gCoeffs[3]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x4, y0)) * gCoeffs[4];
+
+    float2 p1 = convert_float2(rsGetElementAt_uchar2(gIn, x0, y1)) * gCoeffs[5]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x1, y1)) * gCoeffs[6]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x2, y1)) * gCoeffs[7]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x3, y1)) * gCoeffs[8]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x4, y1)) * gCoeffs[9];
+
+    float2 p2 = convert_float2(rsGetElementAt_uchar2(gIn, x0, y2)) * gCoeffs[10]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x1, y2)) * gCoeffs[11]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x2, y2)) * gCoeffs[12]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x3, y2)) * gCoeffs[13]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x4, y2)) * gCoeffs[14];
+
+    float2 p3 = convert_float2(rsGetElementAt_uchar2(gIn, x0, y3)) * gCoeffs[15]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x1, y3)) * gCoeffs[16]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x2, y3)) * gCoeffs[17]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x3, y3)) * gCoeffs[18]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x4, y3)) * gCoeffs[19];
+
+    float2 p4 = convert_float2(rsGetElementAt_uchar2(gIn, x0, y4)) * gCoeffs[20]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x1, y4)) * gCoeffs[21]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x2, y4)) * gCoeffs[22]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x3, y4)) * gCoeffs[23]
+              + convert_float2(rsGetElementAt_uchar2(gIn, x4, y4)) * gCoeffs[24];
+
+    p0 = clamp(p0 + p1 + p2 + p3 + p4, 0.f, 255.f);
+    return convert_uchar2(p0);
+}
+
+uchar __attribute__((kernel)) convolve_U1(uint32_t x, uint32_t y) {
+    uint32_t x0 = max((int32_t)x-2, 0);
+    uint32_t x1 = max((int32_t)x-1, 0);
+    uint32_t x2 = x;
+    uint32_t x3 = min((int32_t)x+1, gWidth-1);
+    uint32_t x4 = min((int32_t)x+2, gWidth-1);
+
+    uint32_t y0 = max((int32_t)y-2, 0);
+    uint32_t y1 = max((int32_t)y-1, 0);
+    uint32_t y2 = y;
+    uint32_t y3 = min((int32_t)y+1, gHeight-1);
+    uint32_t y4 = min((int32_t)y+2, gHeight-1);
+
+    float p0 = (float)(rsGetElementAt_uchar(gIn, x0, y0)) * gCoeffs[0]
+             + (float)(rsGetElementAt_uchar(gIn, x1, y0)) * gCoeffs[1]
+             + (float)(rsGetElementAt_uchar(gIn, x2, y0)) * gCoeffs[2]
+             + (float)(rsGetElementAt_uchar(gIn, x3, y0)) * gCoeffs[3]
+             + (float)(rsGetElementAt_uchar(gIn, x4, y0)) * gCoeffs[4];
+
+    float p1 = (float)(rsGetElementAt_uchar(gIn, x0, y1)) * gCoeffs[5]
+             + (float)(rsGetElementAt_uchar(gIn, x1, y1)) * gCoeffs[6]
+             + (float)(rsGetElementAt_uchar(gIn, x2, y1)) * gCoeffs[7]
+             + (float)(rsGetElementAt_uchar(gIn, x3, y1)) * gCoeffs[8]
+             + (float)(rsGetElementAt_uchar(gIn, x4, y1)) * gCoeffs[9];
+
+    float p2 = (float)(rsGetElementAt_uchar(gIn, x0, y2)) * gCoeffs[10]
+             + (float)(rsGetElementAt_uchar(gIn, x1, y2)) * gCoeffs[11]
+             + (float)(rsGetElementAt_uchar(gIn, x2, y2)) * gCoeffs[12]
+             + (float)(rsGetElementAt_uchar(gIn, x3, y2)) * gCoeffs[13]
+             + (float)(rsGetElementAt_uchar(gIn, x4, y2)) * gCoeffs[14];
+
+    float p3 = (float)(rsGetElementAt_uchar(gIn, x0, y3)) * gCoeffs[15]
+             + (float)(rsGetElementAt_uchar(gIn, x1, y3)) * gCoeffs[16]
+             + (float)(rsGetElementAt_uchar(gIn, x2, y3)) * gCoeffs[17]
+             + (float)(rsGetElementAt_uchar(gIn, x3, y3)) * gCoeffs[18]
+             + (float)(rsGetElementAt_uchar(gIn, x4, y3)) * gCoeffs[19];
+
+    float p4 = (float)(rsGetElementAt_uchar(gIn, x0, y4)) * gCoeffs[20]
+             + (float)(rsGetElementAt_uchar(gIn, x1, y4)) * gCoeffs[21]
+             + (float)(rsGetElementAt_uchar(gIn, x2, y4)) * gCoeffs[22]
+             + (float)(rsGetElementAt_uchar(gIn, x3, y4)) * gCoeffs[23]
+             + (float)(rsGetElementAt_uchar(gIn, x4, y4)) * gCoeffs[24];
+
+    return clamp(p0 + p1 + p2 + p3 + p4, 0.f, 255.f);
+}
+
+float4 __attribute__((kernel)) convolve_F4(uint32_t x, uint32_t y) {
+    uint32_t x0 = max((int32_t)x-2, 0);
+    uint32_t x1 = max((int32_t)x-1, 0);
+    uint32_t x2 = x;
+    uint32_t x3 = min((int32_t)x+1, gWidth-1);
+    uint32_t x4 = min((int32_t)x+2, gWidth-1);
+
+    uint32_t y0 = max((int32_t)y-2, 0);
+    uint32_t y1 = max((int32_t)y-1, 0);
+    uint32_t y2 = y;
+    uint32_t y3 = min((int32_t)y+1, gHeight-1);
+    uint32_t y4 = min((int32_t)y+2, gHeight-1);
+
+    float4 p0 = rsGetElementAt_float4(gIn, x0, y0) * gCoeffs[0]
+              + rsGetElementAt_float4(gIn, x1, y0) * gCoeffs[1]
+              + rsGetElementAt_float4(gIn, x2, y0) * gCoeffs[2]
+              + rsGetElementAt_float4(gIn, x3, y0) * gCoeffs[3]
+              + rsGetElementAt_float4(gIn, x4, y0) * gCoeffs[4];
+
+    float4 p1 = rsGetElementAt_float4(gIn, x0, y1) * gCoeffs[5]
+              + rsGetElementAt_float4(gIn, x1, y1) * gCoeffs[6]
+              + rsGetElementAt_float4(gIn, x2, y1) * gCoeffs[7]
+              + rsGetElementAt_float4(gIn, x3, y1) * gCoeffs[8]
+              + rsGetElementAt_float4(gIn, x4, y1) * gCoeffs[9];
+
+    float4 p2 = rsGetElementAt_float4(gIn, x0, y2) * gCoeffs[10]
+              + rsGetElementAt_float4(gIn, x1, y2) * gCoeffs[11]
+              + rsGetElementAt_float4(gIn, x2, y2) * gCoeffs[12]
+              + rsGetElementAt_float4(gIn, x3, y2) * gCoeffs[13]
+              + rsGetElementAt_float4(gIn, x4, y2) * gCoeffs[14];
+
+    float4 p3 = rsGetElementAt_float4(gIn, x0, y3) * gCoeffs[15]
+              + rsGetElementAt_float4(gIn, x1, y3) * gCoeffs[16]
+              + rsGetElementAt_float4(gIn, x2, y3) * gCoeffs[17]
+              + rsGetElementAt_float4(gIn, x3, y3) * gCoeffs[18]
+              + rsGetElementAt_float4(gIn, x4, y3) * gCoeffs[19];
+
+    float4 p4 = rsGetElementAt_float4(gIn, x0, y4) * gCoeffs[20]
+              + rsGetElementAt_float4(gIn, x1, y4) * gCoeffs[21]
+              + rsGetElementAt_float4(gIn, x2, y4) * gCoeffs[22]
+              + rsGetElementAt_float4(gIn, x3, y4) * gCoeffs[23]
+              + rsGetElementAt_float4(gIn, x4, y4) * gCoeffs[24];
+
+    return p0 + p1 + p2 + p3 + p4;
+}
+
+float3 __attribute__((kernel)) convolve_F3(uint32_t x, uint32_t y) {
+    uint32_t x0 = max((int32_t)x-2, 0);
+    uint32_t x1 = max((int32_t)x-1, 0);
+    uint32_t x2 = x;
+    uint32_t x3 = min((int32_t)x+1, gWidth-1);
+    uint32_t x4 = min((int32_t)x+2, gWidth-1);
+
+    uint32_t y0 = max((int32_t)y-2, 0);
+    uint32_t y1 = max((int32_t)y-1, 0);
+    uint32_t y2 = y;
+    uint32_t y3 = min((int32_t)y+1, gHeight-1);
+    uint32_t y4 = min((int32_t)y+2, gHeight-1);
+
+    float3 p0 = rsGetElementAt_float3(gIn, x0, y0) * gCoeffs[0]
+              + rsGetElementAt_float3(gIn, x1, y0) * gCoeffs[1]
+              + rsGetElementAt_float3(gIn, x2, y0) * gCoeffs[2]
+              + rsGetElementAt_float3(gIn, x3, y0) * gCoeffs[3]
+              + rsGetElementAt_float3(gIn, x4, y0) * gCoeffs[4];
+
+    float3 p1 = rsGetElementAt_float3(gIn, x0, y1) * gCoeffs[5]
+              + rsGetElementAt_float3(gIn, x1, y1) * gCoeffs[6]
+              + rsGetElementAt_float3(gIn, x2, y1) * gCoeffs[7]
+              + rsGetElementAt_float3(gIn, x3, y1) * gCoeffs[8]
+              + rsGetElementAt_float3(gIn, x4, y1) * gCoeffs[9];
+
+    float3 p2 = rsGetElementAt_float3(gIn, x0, y2) * gCoeffs[10]
+              + rsGetElementAt_float3(gIn, x1, y2) * gCoeffs[11]
+              + rsGetElementAt_float3(gIn, x2, y2) * gCoeffs[12]
+              + rsGetElementAt_float3(gIn, x3, y2) * gCoeffs[13]
+              + rsGetElementAt_float3(gIn, x4, y2) * gCoeffs[14];
+
+    float3 p3 = rsGetElementAt_float3(gIn, x0, y3) * gCoeffs[15]
+              + rsGetElementAt_float3(gIn, x1, y3) * gCoeffs[16]
+              + rsGetElementAt_float3(gIn, x2, y3) * gCoeffs[17]
+              + rsGetElementAt_float3(gIn, x3, y3) * gCoeffs[18]
+              + rsGetElementAt_float3(gIn, x4, y3) * gCoeffs[19];
+
+    float3 p4 = rsGetElementAt_float3(gIn, x0, y4) * gCoeffs[20]
+              + rsGetElementAt_float3(gIn, x1, y4) * gCoeffs[21]
+              + rsGetElementAt_float3(gIn, x2, y4) * gCoeffs[22]
+              + rsGetElementAt_float3(gIn, x3, y4) * gCoeffs[23]
+              + rsGetElementAt_float3(gIn, x4, y4) * gCoeffs[24];
+
+    return p0 + p1 + p2 + p3 + p4;
+}
+
+float2 __attribute__((kernel)) convolve_F2(uint32_t x, uint32_t y) {
+    uint32_t x0 = max((int32_t)x-2, 0);
+    uint32_t x1 = max((int32_t)x-1, 0);
+    uint32_t x2 = x;
+    uint32_t x3 = min((int32_t)x+1, gWidth-1);
+    uint32_t x4 = min((int32_t)x+2, gWidth-1);
+
+    uint32_t y0 = max((int32_t)y-2, 0);
+    uint32_t y1 = max((int32_t)y-1, 0);
+    uint32_t y2 = y;
+    uint32_t y3 = min((int32_t)y+1, gHeight-1);
+    uint32_t y4 = min((int32_t)y+2, gHeight-1);
+
+    float2 p0 = rsGetElementAt_float2(gIn, x0, y0) * gCoeffs[0]
+              + rsGetElementAt_float2(gIn, x1, y0) * gCoeffs[1]
+              + rsGetElementAt_float2(gIn, x2, y0) * gCoeffs[2]
+              + rsGetElementAt_float2(gIn, x3, y0) * gCoeffs[3]
+              + rsGetElementAt_float2(gIn, x4, y0) * gCoeffs[4];
+
+    float2 p1 = rsGetElementAt_float2(gIn, x0, y1) * gCoeffs[5]
+              + rsGetElementAt_float2(gIn, x1, y1) * gCoeffs[6]
+              + rsGetElementAt_float2(gIn, x2, y1) * gCoeffs[7]
+              + rsGetElementAt_float2(gIn, x3, y1) * gCoeffs[8]
+              + rsGetElementAt_float2(gIn, x4, y1) * gCoeffs[9];
+
+    float2 p2 = rsGetElementAt_float2(gIn, x0, y2) * gCoeffs[10]
+              + rsGetElementAt_float2(gIn, x1, y2) * gCoeffs[11]
+              + rsGetElementAt_float2(gIn, x2, y2) * gCoeffs[12]
+              + rsGetElementAt_float2(gIn, x3, y2) * gCoeffs[13]
+              + rsGetElementAt_float2(gIn, x4, y2) * gCoeffs[14];
+
+    float2 p3 = rsGetElementAt_float2(gIn, x0, y3) * gCoeffs[15]
+              + rsGetElementAt_float2(gIn, x1, y3) * gCoeffs[16]
+              + rsGetElementAt_float2(gIn, x2, y3) * gCoeffs[17]
+              + rsGetElementAt_float2(gIn, x3, y3) * gCoeffs[18]
+              + rsGetElementAt_float2(gIn, x4, y3) * gCoeffs[19];
+
+    float2 p4 = rsGetElementAt_float2(gIn, x0, y4) * gCoeffs[20]
+              + rsGetElementAt_float2(gIn, x1, y4) * gCoeffs[21]
+              + rsGetElementAt_float2(gIn, x2, y4) * gCoeffs[22]
+              + rsGetElementAt_float2(gIn, x3, y4) * gCoeffs[23]
+              + rsGetElementAt_float2(gIn, x4, y4) * gCoeffs[24];
+
+    return p0 + p1 + p2 + p3 + p4;
+}
+
+float __attribute__((kernel)) convolve_F1(uint32_t x, uint32_t y) {
+    uint32_t x0 = max((int32_t)x-2, 0);
+    uint32_t x1 = max((int32_t)x-1, 0);
+    uint32_t x2 = x;
+    uint32_t x3 = min((int32_t)x+1, gWidth-1);
+    uint32_t x4 = min((int32_t)x+2, gWidth-1);
+
+    uint32_t y0 = max((int32_t)y-2, 0);
+    uint32_t y1 = max((int32_t)y-1, 0);
+    uint32_t y2 = y;
+    uint32_t y3 = min((int32_t)y+1, gHeight-1);
+    uint32_t y4 = min((int32_t)y+2, gHeight-1);
+
+    float p0 = rsGetElementAt_float(gIn, x0, y0) * gCoeffs[0]
+             + rsGetElementAt_float(gIn, x1, y0) * gCoeffs[1]
+             + rsGetElementAt_float(gIn, x2, y0) * gCoeffs[2]
+             + rsGetElementAt_float(gIn, x3, y0) * gCoeffs[3]
+             + rsGetElementAt_float(gIn, x4, y0) * gCoeffs[4];
+
+    float p1 = rsGetElementAt_float(gIn, x0, y1) * gCoeffs[5]
+             + rsGetElementAt_float(gIn, x1, y1) * gCoeffs[6]
+             + rsGetElementAt_float(gIn, x2, y1) * gCoeffs[7]
+             + rsGetElementAt_float(gIn, x3, y1) * gCoeffs[8]
+             + rsGetElementAt_float(gIn, x4, y1) * gCoeffs[9];
+
+    float p2 = rsGetElementAt_float(gIn, x0, y2) * gCoeffs[10]
+             + rsGetElementAt_float(gIn, x1, y2) * gCoeffs[11]
+             + rsGetElementAt_float(gIn, x2, y2) * gCoeffs[12]
+             + rsGetElementAt_float(gIn, x3, y2) * gCoeffs[13]
+             + rsGetElementAt_float(gIn, x4, y2) * gCoeffs[14];
+
+    float p3 = rsGetElementAt_float(gIn, x0, y3) * gCoeffs[15]
+             + rsGetElementAt_float(gIn, x1, y3) * gCoeffs[16]
+             + rsGetElementAt_float(gIn, x2, y3) * gCoeffs[17]
+             + rsGetElementAt_float(gIn, x3, y3) * gCoeffs[18]
+             + rsGetElementAt_float(gIn, x4, y3) * gCoeffs[19];
+
+    float p4 = rsGetElementAt_float(gIn, x0, y4) * gCoeffs[20]
+             + rsGetElementAt_float(gIn, x1, y4) * gCoeffs[21]
+             + rsGetElementAt_float(gIn, x2, y4) * gCoeffs[22]
+             + rsGetElementAt_float(gIn, x3, y4) * gCoeffs[23]
+             + rsGetElementAt_float(gIn, x4, y4) * gCoeffs[24];
+
+    return p0 + p1 + p2 + p3 + p4;
+}
+
+
+
diff --git a/tests/src/android/renderscript/cts/log10_f32_relaxed.rs b/tests/src/android/renderscript/cts/log10_f32_relaxed.rs
new file mode 100644
index 0000000..bedfa6d
--- /dev/null
+++ b/tests/src/android/renderscript/cts/log10_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "log10_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/log1p_f32_relaxed.rs b/tests/src/android/renderscript/cts/log1p_f32_relaxed.rs
new file mode 100644
index 0000000..c3aed11
--- /dev/null
+++ b/tests/src/android/renderscript/cts/log1p_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "log1p_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/log2_f32_relaxed.rs b/tests/src/android/renderscript/cts/log2_f32_relaxed.rs
new file mode 100644
index 0000000..7e0883a
--- /dev/null
+++ b/tests/src/android/renderscript/cts/log2_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "log2_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/log_f32_relaxed.rs b/tests/src/android/renderscript/cts/log_f32_relaxed.rs
new file mode 100644
index 0000000..d66d3c9
--- /dev/null
+++ b/tests/src/android/renderscript/cts/log_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "log_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/logb_f32_relaxed.rs b/tests/src/android/renderscript/cts/logb_f32_relaxed.rs
new file mode 100644
index 0000000..9b906dc
--- /dev/null
+++ b/tests/src/android/renderscript/cts/logb_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "logb_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/mad_f32_relaxed.rs b/tests/src/android/renderscript/cts/mad_f32_relaxed.rs
new file mode 100644
index 0000000..36d8306
--- /dev/null
+++ b/tests/src/android/renderscript/cts/mad_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "mad_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/nextafter_f32_relaxed.rs b/tests/src/android/renderscript/cts/nextafter_f32_relaxed.rs
new file mode 100644
index 0000000..5c6edd5
--- /dev/null
+++ b/tests/src/android/renderscript/cts/nextafter_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "nextafter_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/pow_f32_relaxed.rs b/tests/src/android/renderscript/cts/pow_f32_relaxed.rs
new file mode 100644
index 0000000..5da7048
--- /dev/null
+++ b/tests/src/android/renderscript/cts/pow_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "pow_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/pown_f32_relaxed.rs b/tests/src/android/renderscript/cts/pown_f32_relaxed.rs
new file mode 100644
index 0000000..bdc4b47
--- /dev/null
+++ b/tests/src/android/renderscript/cts/pown_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "pown_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/powr_f32_relaxed.rs b/tests/src/android/renderscript/cts/powr_f32_relaxed.rs
new file mode 100644
index 0000000..b8690af
--- /dev/null
+++ b/tests/src/android/renderscript/cts/powr_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "powr_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/radians_f32_relaxed.rs b/tests/src/android/renderscript/cts/radians_f32_relaxed.rs
new file mode 100644
index 0000000..4ab3070
--- /dev/null
+++ b/tests/src/android/renderscript/cts/radians_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "radians_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/remainder_f32_relaxed.rs b/tests/src/android/renderscript/cts/remainder_f32_relaxed.rs
new file mode 100644
index 0000000..d546e50
--- /dev/null
+++ b/tests/src/android/renderscript/cts/remainder_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "remainder_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/rint_f32_relaxed.rs b/tests/src/android/renderscript/cts/rint_f32_relaxed.rs
new file mode 100644
index 0000000..e9b4950
--- /dev/null
+++ b/tests/src/android/renderscript/cts/rint_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "rint_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/rootn_f32_relaxed.rs b/tests/src/android/renderscript/cts/rootn_f32_relaxed.rs
new file mode 100644
index 0000000..f6509ae
--- /dev/null
+++ b/tests/src/android/renderscript/cts/rootn_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "rootn_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/round_f32_relaxed.rs b/tests/src/android/renderscript/cts/round_f32_relaxed.rs
new file mode 100644
index 0000000..026515e
--- /dev/null
+++ b/tests/src/android/renderscript/cts/round_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "round_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/rs_frac_f32_relaxed.rs b/tests/src/android/renderscript/cts/rs_frac_f32_relaxed.rs
new file mode 100644
index 0000000..d93b8e2
--- /dev/null
+++ b/tests/src/android/renderscript/cts/rs_frac_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "rs_frac_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/rsqrt_f32_relaxed.rs b/tests/src/android/renderscript/cts/rsqrt_f32_relaxed.rs
new file mode 100644
index 0000000..1d7c08b
--- /dev/null
+++ b/tests/src/android/renderscript/cts/rsqrt_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "rsqrt_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/sign_f32_relaxed.rs b/tests/src/android/renderscript/cts/sign_f32_relaxed.rs
new file mode 100644
index 0000000..2ea41e2
--- /dev/null
+++ b/tests/src/android/renderscript/cts/sign_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "sign_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/sin_f32_relaxed.rs b/tests/src/android/renderscript/cts/sin_f32_relaxed.rs
new file mode 100644
index 0000000..1ebf69e
--- /dev/null
+++ b/tests/src/android/renderscript/cts/sin_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "sin_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/sinh_f32_relaxed.rs b/tests/src/android/renderscript/cts/sinh_f32_relaxed.rs
new file mode 100644
index 0000000..ba1d5c7
--- /dev/null
+++ b/tests/src/android/renderscript/cts/sinh_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "sinh_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/sqrt_f32_relaxed.rs b/tests/src/android/renderscript/cts/sqrt_f32_relaxed.rs
new file mode 100644
index 0000000..460ea63
--- /dev/null
+++ b/tests/src/android/renderscript/cts/sqrt_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "sqrt_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/step_f32_relaxed.rs b/tests/src/android/renderscript/cts/step_f32_relaxed.rs
new file mode 100644
index 0000000..c59b548
--- /dev/null
+++ b/tests/src/android/renderscript/cts/step_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "step_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/tan_f32_relaxed.rs b/tests/src/android/renderscript/cts/tan_f32_relaxed.rs
new file mode 100644
index 0000000..adf98f0
--- /dev/null
+++ b/tests/src/android/renderscript/cts/tan_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "tan_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/tanh_f32_relaxed.rs b/tests/src/android/renderscript/cts/tanh_f32_relaxed.rs
new file mode 100644
index 0000000..2d7463b
--- /dev/null
+++ b/tests/src/android/renderscript/cts/tanh_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "tanh_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/trunc_f32_relaxed.rs b/tests/src/android/renderscript/cts/trunc_f32_relaxed.rs
new file mode 100644
index 0000000..f55c8b3
--- /dev/null
+++ b/tests/src/android/renderscript/cts/trunc_f32_relaxed.rs
@@ -0,0 +1,2 @@
+#include "trunc_f32.rs"
+#pragma rs_fp_relaxed
diff --git a/tests/src/android/renderscript/cts/verify.rs b/tests/src/android/renderscript/cts/verify.rs
new file mode 100644
index 0000000..d100eb4
--- /dev/null
+++ b/tests/src/android/renderscript/cts/verify.rs
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) 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 "shared.rsh"
+
+rs_allocation gIn1;
+rs_allocation gIn2;
+float gAllowedError;
+
+static bool hadError = false;
+
+static bool compare_float(float f1, float f2) {
+    if (fabs(f1-f2) > 0.0001f) {
+        hadError = true;
+        return false;
+    }
+    return true;
+}
+
+static void verify_float4(rs_allocation in1, rs_allocation in2)
+{
+    uint32_t w = rsAllocationGetDimX(in1);
+    uint32_t h = rsAllocationGetDimY(in1);
+    for (uint32_t y=0; y < h; y++) {
+        for (uint32_t x=0; x < w; x++) {
+            float4 p1 = rsGetElementAt_float4(in1, x, y);
+            float4 p2 = rsGetElementAt_float4(in2, x, y);
+            bool e = !compare_float(p1.x, p2.x);
+            e |= !compare_float(p1.y, p2.y);
+            e |= !compare_float(p1.z, p2.z);
+            e |= !compare_float(p1.w, p2.w);
+            if (e) {
+                rsDebug("verify_float4 x", x);
+                rsDebug("verify_float4 y", y);
+                rsDebug("verify_float4 p1", p1);
+                rsDebug("verify_float4 p2", p2);
+                return;
+            }
+        }
+    }
+}
+
+static void verify_float3(rs_allocation in1, rs_allocation in2)
+{
+    uint32_t w = rsAllocationGetDimX(in1);
+    uint32_t h = rsAllocationGetDimY(in1);
+    for (uint32_t y=0; y < h; y++) {
+        for (uint32_t x=0; x < w; x++) {
+            float3 p1 = rsGetElementAt_float3(in1, x, y);
+            float3 p2 = rsGetElementAt_float3(in2, x, y);
+            bool e = !compare_float(p1.x, p2.x);
+            e |= !compare_float(p1.y, p2.y);
+            e |= !compare_float(p1.z, p2.z);
+            if (e) {
+                rsDebug("verify_float4 x", x);
+                rsDebug("verify_float4 y", y);
+                rsDebug("verify_float4 p1", p1);
+                rsDebug("verify_float4 p2", p2);
+                return;
+            }
+        }
+    }
+}
+
+static void verify_float2(rs_allocation in1, rs_allocation in2)
+{
+    uint32_t w = rsAllocationGetDimX(in1);
+    uint32_t h = rsAllocationGetDimY(in1);
+    for (uint32_t y=0; y < h; y++) {
+        for (uint32_t x=0; x < w; x++) {
+            float2 p1 = rsGetElementAt_float2(in1, x, y);
+            float2 p2 = rsGetElementAt_float2(in2, x, y);
+            bool e = !compare_float(p1.x, p2.x);
+            e |= !compare_float(p1.y, p2.y);
+            if (e) {
+                rsDebug("verify_float4 x", x);
+                rsDebug("verify_float4 y", y);
+                rsDebug("verify_float4 p1", p1);
+                rsDebug("verify_float4 p2", p2);
+                return;
+            }
+        }
+    }
+}
+
+static void verify_float(rs_allocation in1, rs_allocation in2)
+{
+    uint32_t w = rsAllocationGetDimX(in1);
+    uint32_t h = rsAllocationGetDimY(in1);
+    for (uint32_t y=0; y < h; y++) {
+        for (uint32_t x=0; x < w; x++) {
+            float p1 = rsGetElementAt_float(in1, x, y);
+            float p2 = rsGetElementAt_float(in2, x, y);
+            bool e = !compare_float(p1, p2);
+            if (e) {
+                rsDebug("verify_float4 x", x);
+                rsDebug("verify_float4 y", y);
+                rsDebug("verify_float4 p1", p1);
+                rsDebug("verify_float4 p2", p2);
+                return;
+            }
+        }
+    }
+}
+
+static void verify_uchar4(rs_allocation in1, rs_allocation in2)
+{
+    int merr = 0;
+    uint32_t w = rsAllocationGetDimX(in1);
+    uint32_t h = rsAllocationGetDimY(in1);
+    for (uint32_t y=0; y < h; y++) {
+        for (uint32_t x=0; x < w; x++) {
+            int4 p1 = convert_int4(rsGetElementAt_uchar4(in1, x, y));
+            int4 p2 = convert_int4(rsGetElementAt_uchar4(in2, x, y));
+            int4 d = convert_int4(abs(p1 - p2));
+            int e = 0;
+            e = max(e, d.x);
+            e = max(e, d.y);
+            e = max(e, d.z);
+            e = max(e, d.w);
+            if (e != 0) {
+                rsDebug("verify_uchar4 x", x);
+                rsDebug("verify_uchar4 y", y);
+                rsDebug("verify_uchar4 p1", p1);
+                rsDebug("verify_uchar4 p2", p2);
+                return;
+            }
+            merr = max(e, merr);
+        }
+    }
+}
+
+static void verify_uchar3(rs_allocation in1, rs_allocation in2)
+{
+    int merr = 0;
+    uint32_t w = rsAllocationGetDimX(in1);
+    uint32_t h = rsAllocationGetDimY(in1);
+    for (uint32_t y=0; y < h; y++) {
+        for (uint32_t x=0; x < w; x++) {
+            int3 p1 = convert_int3(rsGetElementAt_uchar3(in1, x, y));
+            int3 p2 = convert_int3(rsGetElementAt_uchar3(in2, x, y));
+            int3 d = convert_int3(abs(p1 - p2));
+            int e = 0;
+            e = max(e, d.x);
+            e = max(e, d.y);
+            e = max(e, d.z);
+            if (e != 0) {
+                rsDebug("verify_uchar3 x", x);
+                rsDebug("verify_uchar3 y", y);
+                rsDebug("verify_uchar3 p1", p1);
+                rsDebug("verify_uchar3 p2", p2);
+                return;
+            }
+            merr = max(e, merr);
+        }
+    }
+}
+
+static void verify_uchar2(rs_allocation in1, rs_allocation in2)
+{
+    int merr = 0;
+    uint32_t w = rsAllocationGetDimX(in1);
+    uint32_t h = rsAllocationGetDimY(in1);
+    for (uint32_t y=0; y < h; y++) {
+        for (uint32_t x=0; x < w; x++) {
+            int2 p1 = convert_int2(rsGetElementAt_uchar2(in1, x, y));
+            int2 p2 = convert_int2(rsGetElementAt_uchar2(in2, x, y));
+            int2 d = convert_int2(abs(p1 - p2));
+            int e = 0;
+            e = max(e, d.x);
+            e = max(e, d.y);
+            if (e != 0) {
+                rsDebug("verify_uchar2 x", x);
+                rsDebug("verify_uchar2 y", y);
+                rsDebug("verify_uchar2 p1", p1);
+                rsDebug("verify_uchar2 p2", p2);
+                return;
+            }
+            merr = max(e, merr);
+        }
+    }
+}
+
+static void verify_uchar(rs_allocation in1, rs_allocation in2)
+{
+    int merr = 0;
+    uint32_t w = rsAllocationGetDimX(in1);
+    uint32_t h = rsAllocationGetDimY(in1);
+    for (uint32_t y=0; y < h; y++) {
+        for (uint32_t x=0; x < w; x++) {
+            int p1 = rsGetElementAt_uchar(in1, x, y);
+            int p2 = rsGetElementAt_uchar(in2, x, y);
+            int e = abs(p1 - p2);
+            if (e != 0) {
+                rsDebug("verify_uchar4 x", x);
+                rsDebug("verify_uchar4 y", y);
+                rsDebug("verify_uchar4 p1", p1);
+                rsDebug("verify_uchar4 p2", p2);
+                return;
+            }
+            merr = max(e, merr);
+        }
+    }
+}
+
+void verify(rs_allocation in1, rs_allocation in2, int etype)
+{
+    switch(etype) {
+    case 0:
+        verify_uchar4(in1, in2);
+        break;
+    case 1:
+        verify_uchar3(in1, in2);
+        break;
+    case 2:
+        verify_uchar2(in1, in2);
+        break;
+    case 3:
+        verify_uchar(in1, in2);
+        break;
+    case 4:
+        verify_float4(in1, in2);
+        break;
+    case 5:
+        verify_float3(in1, in2);
+        break;
+    case 6:
+        verify_float2(in1, in2);
+        break;
+    case 7:
+        verify_float(in1, in2);
+        break;
+    }
+
+}
+
+void checkError()
+{
+    if (hadError) {
+        rsSendToClientBlocking(RS_MSG_TEST_FAILED);
+    } else {
+        rsSendToClientBlocking(RS_MSG_TEST_PASSED);
+    }
+}
diff --git a/tests/src/android/renderscript/cts/void_ptr.rs b/tests/src/android/renderscript/cts/void_ptr.rs
new file mode 100644
index 0000000..895f0c7
--- /dev/null
+++ b/tests/src/android/renderscript/cts/void_ptr.rs
@@ -0,0 +1,49 @@
+#pragma version(1)
+#pragma rs java_package_name(android.renderscript.cts)
+
+rs_allocation aFailed;
+rs_allocation aOutput;
+
+void set_output_void_int(void *out, uint32_t x, uint32_t y) {
+    int *out_int = (int *)out;
+    *out_int = x + y;
+}
+
+void __attribute__((kernel))check_output_int(const int in, uint32_t x, uint32_t y)
+{
+    if (in != x + y) {
+        rsSetElementAt_int(aFailed, 1, 0);
+    }
+}
+
+void set_output_void_char(void *out, uint32_t x, uint32_t y) {
+    uchar *out_int = (uchar *)out;
+    *out_int = x + y;
+}
+
+void __attribute__((kernel))check_output_char(const uchar in, uint32_t x, uint32_t y)
+{
+    if (in != x + y) {
+        rsSetElementAt_int(aFailed, 1, 0);
+    }
+}
+
+int __attribute__((kernel)) set_output_int(uint32_t x, uint32_t y) {
+    return x + y;
+}
+
+void copy_void_int(const void *in, uint32_t x, uint32_t y)
+{
+    int *in_int = (int*) in;
+    rsSetElementAt_int(aOutput, *in_int, x, y);
+}
+
+uchar __attribute__((kernel)) set_output_char(uint32_t x, uint32_t y) {
+    return x + y;
+}
+
+void copy_void_char(const void *in, uint32_t x, uint32_t y)
+{
+    uchar *in_uchar = (uchar*) in;
+    rsSetElementAt_uchar(aOutput, *in_uchar, x, y);
+}
diff --git a/tests/src/android/text/EmojiStubActivity.java b/tests/src/android/text/EmojiStubActivity.java
old mode 100755
new mode 100644
diff --git a/tests/src/android/text/method/cts/KeyListenerStubActivity.java b/tests/src/android/text/method/cts/KeyListenerStubActivity.java
index f831af9..149ad87 100644
--- a/tests/src/android/text/method/cts/KeyListenerStubActivity.java
+++ b/tests/src/android/text/method/cts/KeyListenerStubActivity.java
@@ -20,6 +20,7 @@
 
 import android.app.Activity;
 import android.os.Bundle;
+import android.os.SystemClock;
 import android.text.method.BaseKeyListener;
 import android.text.method.DateKeyListener;
 import android.text.method.DateTimeKeyListener;
@@ -29,6 +30,7 @@
 import android.text.method.QwertyKeyListener;
 import android.text.method.TextKeyListener;
 import android.text.method.TimeKeyListener;
+import android.util.Log;
 
 /**
  * This Activity is used for testing:
@@ -54,9 +56,47 @@
  */
 
 public class KeyListenerStubActivity extends Activity {
+    private boolean mHasWindowFocus = false;
+    private Object mHasWindowFocusLock = new Object();
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.keylistener_layout);
     }
+
+    @Override
+    public void onWindowFocusChanged(boolean hasFocus) {
+        super.onWindowFocusChanged(hasFocus);
+        if (!hasFocus) {
+            Log.w("KeyListenerStubActivity", "KeyListenerStubActivity lost window focus");
+        }
+        synchronized(mHasWindowFocusLock) {
+            mHasWindowFocus = hasFocus;
+            mHasWindowFocusLock.notify();
+        }
+    }
+
+    /**
+     * Blocks the calling thread until the {@link KeyListenerStubActivity} has window focus or the
+     * specified duration (in milliseconds) has passed.
+     */
+    public boolean waitForWindowFocus(long durationMillis) {
+        long elapsedMillis = SystemClock.elapsedRealtime();
+        synchronized(mHasWindowFocusLock) {
+            mHasWindowFocus = hasWindowFocus();
+            while (!mHasWindowFocus && durationMillis > 0) {
+                long newElapsedMillis = SystemClock.elapsedRealtime();
+                durationMillis -= (newElapsedMillis - elapsedMillis);
+                elapsedMillis = newElapsedMillis;
+                if (durationMillis > 0) {
+                    try {
+                        mHasWindowFocusLock.wait(durationMillis);
+                    } catch (InterruptedException e) {
+                    }
+                }
+            }
+            return mHasWindowFocus;
+        }
+    }
 }
diff --git a/tests/src/android/view/cts/ViewTestStubActivity.java b/tests/src/android/view/cts/ViewTestStubActivity.java
index 9809962..69676cb 100644
--- a/tests/src/android/view/cts/ViewTestStubActivity.java
+++ b/tests/src/android/view/cts/ViewTestStubActivity.java
@@ -18,12 +18,52 @@
 
 import android.app.Activity;
 import android.os.Bundle;
+import android.os.SystemClock;
+import android.util.Log;
 import com.android.cts.stub.R;
 
 public class ViewTestStubActivity extends Activity {
+    private boolean mHasWindowFocus = false;
+    private Object mHasWindowFocusLock = new Object();
+
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         setContentView(R.layout.view_layout);
     }
+
+    @Override
+    public void onWindowFocusChanged(boolean hasFocus) {
+        super.onWindowFocusChanged(hasFocus);
+        if (!hasFocus) {
+            Log.w("ViewTestStubActivity", "ViewTestStubActivity lost window focus");
+        }
+        synchronized(mHasWindowFocusLock) {
+            mHasWindowFocus = hasFocus;
+            mHasWindowFocusLock.notify();
+        }
+    }
+
+    /**
+     * Blocks the calling thread until the {@link ViewTestStubActivity} has window focus or the
+     * specified duration (in milliseconds) has passed.
+     */
+    public boolean waitForWindowFocus(long durationMillis) {
+        long elapsedMillis = SystemClock.elapsedRealtime();
+        synchronized(mHasWindowFocusLock) {
+            mHasWindowFocus = hasWindowFocus();
+            while (!mHasWindowFocus && durationMillis > 0) {
+                long newElapsedMillis = SystemClock.elapsedRealtime();
+                durationMillis -= (newElapsedMillis - elapsedMillis);
+                elapsedMillis = newElapsedMillis;
+                if (durationMillis > 0) {
+                    try {
+                        mHasWindowFocusLock.wait(durationMillis);
+                    } catch (InterruptedException e) {
+                    }
+                }
+            }
+            return mHasWindowFocus;
+        }
+    }
 }
diff --git a/tests/src/android/view/cts/WindowStubActivity.java b/tests/src/android/view/cts/WindowStubActivity.java
old mode 100755
new mode 100644
diff --git a/tests/src/android/webkit/cts/WebViewOnUiThread.java b/tests/src/android/webkit/cts/WebViewOnUiThread.java
index 5133653..f1eeeab 100644
--- a/tests/src/android/webkit/cts/WebViewOnUiThread.java
+++ b/tests/src/android/webkit/cts/WebViewOnUiThread.java
@@ -39,6 +39,7 @@
 import junit.framework.Assert;
 
 import java.io.File;
+import java.util.concurrent.Callable;
 
 
 /**
@@ -245,6 +246,15 @@
         });
     }
 
+    public void setFindListener(final WebView.FindListener listener) {
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                mWebView.setFindListener(listener);
+            }
+        });
+    }
+
     public void removeJavascriptInterface(final String interfaceName) {
         runOnUiThread(new Runnable() {
             @Override
@@ -424,14 +434,24 @@
      * similar functions.
      */
     public void waitForLoadCompletion() {
-        if (isUiThread()) {
-            waitOnUiThread();
-        } else {
-            waitOnTestThread();
-        }
+        waitForCriteria(LOAD_TIMEOUT,
+                new Callable<Boolean>() {
+                    @Override
+                    public Boolean call() {
+                        return isLoaded();
+                    }
+                });
         clearLoad();
     }
 
+    private void waitForCriteria(long timeout, Callable<Boolean> doneCriteria) {
+        if (isUiThread()) {
+            waitOnUiThread(timeout, doneCriteria);
+        } else {
+            waitOnTestThread(timeout, doneCriteria);
+        }
+    }
+
     public String getTitle() {
         return getValue(new ValueGetter<String>() {
             @Override
@@ -718,33 +738,42 @@
 
     /**
      * Uses a polling mechanism, while pumping messages to check when the
-     * load completes.
+     * criteria is met.
      */
-    private void waitOnUiThread() {
-        new PollingCheck(LOAD_TIMEOUT) {
+    private void waitOnUiThread(long timeout, final Callable<Boolean> doneCriteria) {
+        new PollingCheck(timeout) {
             @Override
             protected boolean check() {
                 pumpMessages();
-                return isLoaded();
+                try {
+                    return doneCriteria.call();
+                } catch (Exception e) {
+                    Assert.fail("Unexpected error while checking the criteria: "
+                            + e.getMessage());
+                    return true;
+                }
             }
         }.run();
     }
 
     /**
-     * Uses a wait/notify to check when the load completes.
+     * Uses a wait/notify to check when the criteria is met.
      */
-    private synchronized void waitOnTestThread() {
+    private synchronized void waitOnTestThread(long timeout, Callable<Boolean> doneCriteria) {
         try {
-            long waitEnd = SystemClock.uptimeMillis() + LOAD_TIMEOUT;
-            long timeRemaining = LOAD_TIMEOUT;
-            while (!isLoaded() && timeRemaining > 0) {
+            long waitEnd = SystemClock.uptimeMillis() + timeout;
+            long timeRemaining = timeout;
+            while (!doneCriteria.call() && timeRemaining > 0) {
                 this.wait(timeRemaining);
                 timeRemaining = waitEnd - SystemClock.uptimeMillis();
             }
+            Assert.assertTrue("Action failed to complete before timeout", doneCriteria.call());
         } catch (InterruptedException e) {
             // We'll just drop out of the loop and fail
+        } catch (Exception e) {
+            Assert.fail("Unexpected error while checking the criteria: "
+                    + e.getMessage());
         }
-        Assert.assertTrue("Load failed to complete before timeout", isLoaded());
     }
 
     /**
diff --git a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityEventTest.java b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityEventTest.java
index 58b32d6..8be2b99 100644
--- a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityEventTest.java
+++ b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityEventTest.java
@@ -31,7 +31,7 @@
 public class AccessibilityEventTest extends TestCase {
 
     /** The number of properties of the {@link AccessibilityEvent} class. */
-    private static final int NON_STATIC_FIELD_COUNT = 28;
+    private static final int NON_STATIC_FIELD_COUNT = 29;
 
     /**
      * Test that no new fields have been added without updating the
diff --git a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
index 70a25b2..ae7cc9b 100644
--- a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
+++ b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
@@ -30,7 +30,7 @@
 public class AccessibilityNodeInfoTest extends AndroidTestCase {
 
     /** The number of properties of the {@link AccessibilityNodeInfo} class. */
-    private static final int NON_STATIC_FIELD_COUNT = 20;
+    private static final int NON_STATIC_FIELD_COUNT = 26;
 
     @SmallTest
     public void testMarshaling() throws Exception {
diff --git a/tests/tests/admin/Android.mk b/tests/tests/admin/Android.mk
index 1affed6..c3645cc 100644
--- a/tests/tests/admin/Android.mk
+++ b/tests/tests/admin/Android.mk
@@ -22,7 +22,7 @@
 
 LOCAL_JAVA_LIBRARIES := android.test.runner
 
-LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner
+LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner mockito-target
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
diff --git a/tests/tests/admin/src/android/admin/cts/DeviceAdminActivationTest.java b/tests/tests/admin/src/android/admin/cts/DeviceAdminActivationTest.java
index 7e09989..2c7d7e9 100644
--- a/tests/tests/admin/src/android/admin/cts/DeviceAdminActivationTest.java
+++ b/tests/tests/admin/src/android/admin/cts/DeviceAdminActivationTest.java
@@ -31,6 +31,11 @@
 import android.os.SystemClock;
 import android.test.ActivityInstrumentationTestCase2;
 
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
 /**
  * Tests for the standard way of activating a Device Admin: by starting system UI via an
  * {@link Intent} with {@link DevicePolicyManager#ACTION_ADD_DEVICE_ADMIN}. The test requires that
@@ -51,21 +56,7 @@
      */
     private static final int UI_EFFECT_TIMEOUT_MILLIS = 5000;
 
-    /**
-     * Monitor guarding access to {@link #mLastOnActivityResultResultCode} and which is notified
-     * every time {@code onActivityResult} of the {@code CtsDeviceAdminActivationTestActivity} is
-     * invoked.
-     */
-    private final Object mOnActivityResultListenerLock = new Object();
-
-    /**
-     * Result code of the most recent invocation of
-     * {@code CtsDeviceAdminActivationTestActivity.onActivityResult} or {@code null} if no
-     * invocations have occured yet.
-     *
-     * @GuardedBy {@link #mOnActivityResultListenerLock}
-     */
-    private Integer mLastOnActivityResultResultCode;
+    @Mock private OnActivityResultListener mMockOnActivityResultListener;
 
     public DeviceAdminActivationTest() {
         super(CtsDeviceAdminActivationTestActivity.class);
@@ -74,18 +65,8 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        getActivity().setOnActivityResultListener(new OnActivityResultListener() {
-            @Override
-            public void onActivityResult(int requestCode, int resultCode, Intent data) {
-                if (requestCode != REQUEST_CODE_ACTIVATE_ADMIN) {
-                    return;
-                }
-                synchronized (mOnActivityResultListenerLock) {
-                    mLastOnActivityResultResultCode = resultCode;
-                    mOnActivityResultListenerLock.notifyAll();
-                }
-            }
-        });
+        MockitoAnnotations.initMocks(this);
+        getActivity().setOnActivityResultListener(mMockOnActivityResultListener);
     }
 
     @Override
@@ -148,32 +129,21 @@
 
     private void assertWithTimeoutOnActivityResultNotInvoked() {
         SystemClock.sleep(UI_EFFECT_TIMEOUT_MILLIS);
-        synchronized (mOnActivityResultListenerLock) {
-            assertNull(mLastOnActivityResultResultCode);
-        }
+        Mockito.verify(mMockOnActivityResultListener, Mockito.never())
+                .onActivityResult(
+                        Mockito.eq(REQUEST_CODE_ACTIVATE_ADMIN),
+                        Mockito.anyInt(),
+                        Mockito.any(Intent.class));
     }
 
-    private void assertWithTimeoutOnActivityResultInvokedWithResultCode(int expectedResultCode)
-            throws Exception {
-        long deadlineMillis = SystemClock.elapsedRealtime() + UI_EFFECT_TIMEOUT_MILLIS;
-        synchronized (mOnActivityResultListenerLock) {
-            while (true) {
-                if (mLastOnActivityResultResultCode != null) {
-                    // onActivityResult has been invoked -- check the arguments
-                    assertEquals(expectedResultCode, (int) mLastOnActivityResultResultCode);
-                    break;
-                }
-
-                // onActivityResult has not yet been invoked -- wait until it is
-                long millisTillDeadline = deadlineMillis - SystemClock.elapsedRealtime();
-                if (millisTillDeadline <= 0) {
-                    fail("onActivityResult not invoked within " + UI_EFFECT_TIMEOUT_MILLIS + " ms");
-                    break;
-                }
-
-                mOnActivityResultListenerLock.wait(millisTillDeadline);
-            }
-        }
+    private void assertWithTimeoutOnActivityResultInvokedWithResultCode(int expectedResultCode) {
+        ArgumentCaptor<Integer> resultCodeCaptor = ArgumentCaptor.forClass(int.class);
+        Mockito.verify(mMockOnActivityResultListener, Mockito.timeout(UI_EFFECT_TIMEOUT_MILLIS))
+                .onActivityResult(
+                        Mockito.eq(REQUEST_CODE_ACTIVATE_ADMIN),
+                        resultCodeCaptor.capture(),
+                        Mockito.any(Intent.class));
+        assertEquals(expectedResultCode, (int) resultCodeCaptor.getValue());
     }
 
     private void finishActivateDeviceAdminActivity() {
diff --git a/tests/tests/content/src/android/content/cts/AvailableIntentsTest.java b/tests/tests/content/src/android/content/cts/AvailableIntentsTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/content/src/android/content/cts/IntentFilterTest.java b/tests/tests/content/src/android/content/cts/IntentFilterTest.java
index 87a1834..d067b9e 100644
--- a/tests/tests/content/src/android/content/cts/IntentFilterTest.java
+++ b/tests/tests/content/src/android/content/cts/IntentFilterTest.java
@@ -61,6 +61,7 @@
     private static final String CATEGORY = "testCategory";
     private static final String DATA_TYPE = "vnd.android.cursor.dir/person";
     private static final String DATA_SCHEME = "testDataSchemes.";
+    private static final String SSP = "testSsp";
     private static final String HOST = "testHost";
     private static final int PORT = 80;
     private static final String DATA_PATH = "testDataPath";
@@ -260,6 +261,173 @@
         verifyContent(filter, ACTION, DATA_TYPE);
     }
 
+
+    public void testSchemeSpecificParts() throws Exception {
+        IntentFilter filter = new Match(null, null, null, new String[]{"scheme"},
+                null, null, null, null, new String[]{"ssp1", "2ssp"},
+                new int[]{PATTERN_LITERAL, PATTERN_LITERAL});
+        checkMatches(filter, new MatchCondition[] {
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null, null),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:ssp1"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:2ssp"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:ssp"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:ssp12"), });
+        filter = new Match(null, null, null, new String[]{"scheme"},
+                null, null, null, null, new String[]{"ssp1", "2ssp"},
+                new int[]{PATTERN_PREFIX, PATTERN_PREFIX});
+        checkMatches(filter, new MatchCondition[] {
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null, null),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:ssp1"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:2ssp"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:ssp"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:ssp12"), });
+        filter = new Match(null, null, null, new String[]{"scheme"},
+                null, null, null, null, new String[]{"ssp.*"},
+                new int[]{PATTERN_SIMPLE_GLOB});
+        checkMatches(filter, new MatchCondition[] {
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null, null),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:ssp1"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:ssp"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:ss"), });
+        filter = new Match(null, null, null, new String[]{"scheme"},
+                null, null, null, null, new String[]{".*"},
+                new int[]{PATTERN_SIMPLE_GLOB});
+        checkMatches(filter, new MatchCondition[] {
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null, null),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:ssp1"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:ssp"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:"), });
+        filter = new Match(null, null, null, new String[]{"scheme"},
+                null, null, null, null, new String[]{"a1*b"},
+                new int[]{PATTERN_SIMPLE_GLOB});
+        checkMatches(filter, new MatchCondition[] {
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null, null),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:ab"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a1b"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a11b"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:a2b"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:a1bc"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:a"), });
+        filter = new Match(null, null, null, new String[]{"scheme"},
+                null, null, null, null, new String[]{"a1*"},
+                new int[]{PATTERN_SIMPLE_GLOB});
+        checkMatches(filter, new MatchCondition[] {
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null, null),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a1"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:ab"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a11"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:a1b"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a11"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:a2"), });
+        filter = new Match(null, null, null, new String[]{"scheme"},
+                null, null, null, null, new String[]{"a\\.*b"},
+                new int[]{PATTERN_SIMPLE_GLOB});
+        checkMatches(filter, new MatchCondition[] {
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null, null),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:ab"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a.b"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a..b"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:a2b"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:a.bc"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:"), });
+        filter = new Match(null, null, null, new String[]{"scheme"},
+                null, null, null, null, new String[]{"a.*b"},
+                new int[]{PATTERN_SIMPLE_GLOB});
+        checkMatches(filter, new MatchCondition[] {
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null, null),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:ab"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a.b"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a.1b"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a2b"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:a.bc"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:"), });
+        filter = new Match(null, null, null, new String[]{"scheme"},
+                null, null, null, null, new String[]{"a.*"},
+                new int[]{PATTERN_SIMPLE_GLOB});
+        checkMatches(filter, new MatchCondition[] {
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null, null),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:ab"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a.b"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a.1b"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a2b"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a.bc"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:"), });
+        filter = new Match(null, null, null, new String[]{"scheme"},
+                null, null, null, null, new String[]{"a.\\*b"},
+                new int[]{PATTERN_SIMPLE_GLOB});
+        checkMatches(filter, new MatchCondition[] {
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null, null),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:ab"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a.*b"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a1*b"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:a2b"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:a.bc"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:"), });
+        filter = new Match(null, null, null, new String[]{"scheme"},
+                null, null, null, null, new String[]{"a.\\*"},
+                new int[]{PATTERN_SIMPLE_GLOB});
+        checkMatches(filter, new MatchCondition[] {
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null, null),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:ab"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a.*"),
+                new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART, null, null, null,
+                        "scheme:a1*"),
+                new MatchCondition(IntentFilter.NO_MATCH_DATA, null, null, null,
+                        "scheme:a1b"), });
+    }
+
     public void testAuthorities() {
         for (int i = 0; i < 10; i++) {
             mIntentFilter.addDataAuthority(HOST + i, String.valueOf(PORT + i));
@@ -770,6 +938,17 @@
                 }
             }
         }
+
+        Match(String[] actions, String[] categories, String[] mimeTypes, String[] schemes,
+                String[] authorities, String[] ports, String[] paths, int[] pathTypes,
+                String[] ssps, int[] sspTypes) {
+            this(actions, categories, mimeTypes, schemes, authorities, ports, paths, pathTypes);
+            if (ssps != null) {
+                for (int i = 0; i < ssps.length; i++) {
+                    addDataSchemeSpecificPart(ssps[i], sspTypes[i]);
+                }
+            }
+        }
     }
 
     private static class MatchCondition {
diff --git a/tests/tests/content/src/android/content/res/cts/ArrayTest.java b/tests/tests/content/src/android/content/res/cts/ArrayTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/content/src/android/content/res/cts/ConfigTest.java b/tests/tests/content/src/android/content/res/cts/ConfigTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/content/src/android/content/res/cts/FractionTest.java b/tests/tests/content/src/android/content/res/cts/FractionTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/content/src/android/content/res/cts/PluralResourcesTest.java b/tests/tests/content/src/android/content/res/cts/PluralResourcesTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/content/src/android/content/res/cts/PrimitiveTest.java b/tests/tests/content/src/android/content/res/cts/PrimitiveTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/content/src/android/content/res/cts/RawResourceTest.java b/tests/tests/content/src/android/content/res/cts/RawResourceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/content/src/android/content/res/cts/ResourceNameTest.java b/tests/tests/content/src/android/content/res/cts/ResourceNameTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/gesture/src/android/gesture/cts/GesturePointTest.java b/tests/tests/gesture/src/android/gesture/cts/GesturePointTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/gesture/src/android/gesture/cts/GestureStrokeTest.java b/tests/tests/gesture/src/android/gesture/cts/GestureStrokeTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/gesture/src/android/gesture/cts/GestureTest.java b/tests/tests/gesture/src/android/gesture/cts/GestureTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/gesture/src/android/gesture/cts/LineGestureStrokeHelper.java b/tests/tests/gesture/src/android/gesture/cts/LineGestureStrokeHelper.java
old mode 100755
new mode 100644
diff --git a/tests/tests/graphics/src/android/graphics/cts/BitmapFactoryTest.java b/tests/tests/graphics/src/android/graphics/cts/BitmapFactoryTest.java
old mode 100755
new mode 100644
index d6b4fde..914a0bc
--- a/tests/tests/graphics/src/android/graphics/cts/BitmapFactoryTest.java
+++ b/tests/tests/graphics/src/android/graphics/cts/BitmapFactoryTest.java
@@ -242,6 +242,114 @@
         assertEquals(START_WIDTH, b.getWidth());
     }
 
+    public void testDecodeReuseBasic() throws IOException {
+        BitmapFactory.Options options = new BitmapFactory.Options();
+        options.inMutable = true;
+        options.inSampleSize = 0; // treated as 1
+        options.inScaled = false;
+        Bitmap start = BitmapFactory.decodeResource(mRes, R.drawable.start, options);
+        int originalSize = start.getByteCount();
+        assertEquals(originalSize, start.getAllocationByteCount());
+
+        options.inBitmap = start;
+        options.inMutable = false; // will be overridden by non-null inBitmap
+        options.inSampleSize = -42; // treated as 1
+        Bitmap pass = BitmapFactory.decodeResource(mRes, R.drawable.pass, options);
+
+        assertEquals(originalSize, pass.getByteCount());
+        assertEquals(originalSize, pass.getAllocationByteCount());
+        assertSame(start, pass);
+        assertTrue(pass.isMutable());
+    }
+
+    public void testDecodeReuseFormats() throws IOException {
+        // reuse should support all image formats
+        for (int i = 0; i < RES_IDS.length; ++i) {
+            Bitmap reuseBuffer = Bitmap.createBitmap(1000000, 1, Bitmap.Config.ALPHA_8);
+
+            BitmapFactory.Options options = new BitmapFactory.Options();
+            options.inBitmap = reuseBuffer;
+            options.inSampleSize = 5;
+            Bitmap decoded = BitmapFactory.decodeResource(mRes, RES_IDS[i], options);
+            assertSame(reuseBuffer, decoded);
+        }
+    }
+
+    public void testDecodeReuseFailure() throws IOException {
+        BitmapFactory.Options options = new BitmapFactory.Options();
+        options.inMutable = true;
+        options.inScaled = false;
+        options.inSampleSize = 4;
+        Bitmap reduced = BitmapFactory.decodeResource(mRes, R.drawable.robot, options);
+
+        options.inBitmap = reduced;
+        options.inSampleSize = 1;
+        boolean failedCorrectly = false;
+        try {
+            Bitmap original = BitmapFactory.decodeResource(mRes, R.drawable.robot, options);
+        } catch (IllegalArgumentException e) {
+            failedCorrectly = true; // fails due to lack of space
+        }
+        assertTrue(failedCorrectly);
+    }
+
+    public void testDecodeReuseScaling() throws IOException {
+        BitmapFactory.Options options = new BitmapFactory.Options();
+        options.inMutable = true;
+        options.inScaled = false;
+        Bitmap original = BitmapFactory.decodeResource(mRes, R.drawable.robot, options);
+        int originalSize = original.getByteCount();
+        assertEquals(originalSize, original.getAllocationByteCount());
+
+        options.inBitmap = original;
+        options.inSampleSize = 4;
+        Bitmap reduced = BitmapFactory.decodeResource(mRes, R.drawable.robot, options);
+
+        assertSame(original, reduced);
+        assertEquals(originalSize, reduced.getAllocationByteCount());
+        assertEquals(originalSize, reduced.getByteCount() * 16);
+    }
+
+    public void testDecodeReuseDoubleScaling() throws IOException {
+        BitmapFactory.Options options = new BitmapFactory.Options();
+        options.inMutable = true;
+        options.inScaled = false;
+        options.inSampleSize = 1;
+        Bitmap original = BitmapFactory.decodeResource(mRes, R.drawable.robot, options);
+        int originalSize = original.getByteCount();
+
+        // Verify that inSampleSize and density scaling both work with reuse concurrently
+        options.inBitmap = original;
+        options.inScaled = true;
+        options.inSampleSize = 2;
+        options.inDensity = 2;
+        options.inTargetDensity = 4;
+        Bitmap doubleScaled = BitmapFactory.decodeResource(mRes, R.drawable.robot, options);
+
+        assertSame(original, doubleScaled);
+        assertEquals(4, doubleScaled.getDensity());
+        assertEquals(originalSize, doubleScaled.getByteCount());
+    }
+
+    public void testDecodeReuseEquivalentScaling() throws IOException {
+        BitmapFactory.Options options = new BitmapFactory.Options();
+        options.inMutable = true;
+        options.inScaled = true;
+        options.inDensity = 4;
+        options.inTargetDensity = 2;
+        Bitmap densityReduced = BitmapFactory.decodeResource(mRes, R.drawable.robot, options);
+        assertEquals(2, densityReduced.getDensity());
+        options.inBitmap = densityReduced;
+        options.inDensity = 0;
+        options.inScaled = false;
+        options.inSampleSize = 2;
+        Bitmap scaleReduced = BitmapFactory.decodeResource(mRes, R.drawable.robot, options);
+        // verify that density isn't incorrectly carried over during bitmap reuse
+        assertFalse(densityReduced.getDensity() == 2);
+        assertFalse(densityReduced.getDensity() == 0);
+        assertSame(densityReduced, scaleReduced);
+    }
+
     private byte[] obtainArray() {
         ByteArrayOutputStream stm = new ByteArrayOutputStream();
         Options opt = new BitmapFactory.Options();
diff --git a/tests/tests/graphics/src/android/graphics/cts/BitmapRegionDecoderTest.java b/tests/tests/graphics/src/android/graphics/cts/BitmapRegionDecoderTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/graphics/src/android/graphics/cts/BitmapTest.java b/tests/tests/graphics/src/android/graphics/cts/BitmapTest.java
index cf211b6..b6621e8 100644
--- a/tests/tests/graphics/src/android/graphics/cts/BitmapTest.java
+++ b/tests/tests/graphics/src/android/graphics/cts/BitmapTest.java
@@ -376,6 +376,22 @@
         assertEquals(0x00, Color.alpha(color));
     }
 
+    public void testGetAllocationByteCount() {
+        mBitmap = Bitmap.createBitmap(100, 200, Bitmap.Config.ALPHA_8);
+        int alloc = mBitmap.getAllocationByteCount();
+        assertEquals(mBitmap.getByteCount(), alloc);
+
+        // reconfigure same size
+        mBitmap.reconfigure(50, 100, Bitmap.Config.ARGB_8888);
+        assertEquals(mBitmap.getByteCount(), alloc);
+        assertEquals(mBitmap.getAllocationByteCount(), alloc);
+
+        // reconfigure different size
+        mBitmap.reconfigure(10, 10, Bitmap.Config.ALPHA_8);
+        assertEquals(mBitmap.getByteCount(), 100);
+        assertEquals(mBitmap.getAllocationByteCount(), alloc);
+    }
+
     public void testGetConfig(){
         Bitmap bm0 = Bitmap.createBitmap(100, 200, Bitmap.Config.ALPHA_8);
         Bitmap bm1 = Bitmap.createBitmap(100, 200, Bitmap.Config.ARGB_8888);
@@ -465,6 +481,81 @@
         assertTrue(mBitmap.isRecycled());
     }
 
+    public void testReconfigure() {
+        mBitmap = Bitmap.createBitmap(100, 200, Bitmap.Config.RGB_565);
+        int alloc = mBitmap.getAllocationByteCount();
+
+        // test shrinking
+        mBitmap.reconfigure(50, 100, Bitmap.Config.ALPHA_8);
+        assertEquals(mBitmap.getAllocationByteCount(), alloc);
+        assertEquals(mBitmap.getByteCount() * 8, alloc);
+
+        // test expanding
+        try {
+            mBitmap.reconfigure(101, 201, Bitmap.Config.ARGB_8888);
+            fail("shouldn't come to here");
+        } catch (IllegalArgumentException e) {
+        }
+
+        // test mutable
+        mBitmap = BitmapFactory.decodeResource(mRes, R.drawable.start, mOptions);
+        try {
+            mBitmap.reconfigure(1, 1, Bitmap.Config.ALPHA_8);
+            fail("shouldn't come to here");
+        } catch (IllegalStateException e) {
+        }
+    }
+
+    public void testSetConfig() {
+        mBitmap = Bitmap.createBitmap(100, 200, Bitmap.Config.RGB_565);
+        int alloc = mBitmap.getAllocationByteCount();
+
+        // test shrinking
+        mBitmap.setConfig(Bitmap.Config.ALPHA_8);
+        assertEquals(mBitmap.getAllocationByteCount(), alloc);
+        assertEquals(mBitmap.getByteCount() * 2, alloc);
+
+        // test expanding
+        try {
+            mBitmap.setConfig(Bitmap.Config.ARGB_8888);
+            fail("shouldn't come to here");
+        } catch (IllegalArgumentException e) {
+        }
+
+        // test mutable
+        mBitmap = BitmapFactory.decodeResource(mRes, R.drawable.start, mOptions);
+        try {
+            mBitmap.setConfig(Bitmap.Config.ALPHA_8);
+            fail("shouldn't come to here");
+        } catch (IllegalStateException e) {
+        }
+    }
+
+    public void testSetHeight() {
+        mBitmap = Bitmap.createBitmap(100, 200, Bitmap.Config.ARGB_8888);
+        int alloc = mBitmap.getAllocationByteCount();
+
+        // test shrinking
+        mBitmap.setHeight(100);
+        assertEquals(mBitmap.getAllocationByteCount(), alloc);
+        assertEquals(mBitmap.getByteCount() * 2, alloc);
+
+        // test expanding
+        try {
+            mBitmap.setHeight(201);
+            fail("shouldn't come to here");
+        } catch (IllegalArgumentException e) {
+        }
+
+        // test mutable
+        mBitmap = BitmapFactory.decodeResource(mRes, R.drawable.start, mOptions);
+        try {
+            mBitmap.setHeight(1);
+            fail("shouldn't come to here");
+        } catch (IllegalStateException e) {
+        }
+    }
+
     public void testSetPixel(){
         int color = 0xff << 24;
 
@@ -604,6 +695,31 @@
         }
     }
 
+    public void testSetWidth() {
+        mBitmap = Bitmap.createBitmap(100, 200, Bitmap.Config.ARGB_8888);
+        int alloc = mBitmap.getAllocationByteCount();
+
+        // test shrinking
+        mBitmap.setWidth(50);
+        assertEquals(mBitmap.getAllocationByteCount(), alloc);
+        assertEquals(mBitmap.getByteCount() * 2, alloc);
+
+        // test expanding
+        try {
+            mBitmap.setWidth(101);
+            fail("shouldn't come to here");
+        } catch (IllegalArgumentException e) {
+        }
+
+        // test mutable
+        mBitmap = BitmapFactory.decodeResource(mRes, R.drawable.start, mOptions);
+        try {
+            mBitmap.setWidth(1);
+            fail("shouldn't come to here");
+        } catch (IllegalStateException e) {
+        }
+    }
+
     public void testWriteToParcel(){
         mBitmap.recycle();
 
diff --git a/tests/tests/graphics/src/android/graphics/cts/CameraTest.java b/tests/tests/graphics/src/android/graphics/cts/CameraTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/graphics/src/android/graphics/cts/PaintFlagsDrawFilterTest.java b/tests/tests/graphics/src/android/graphics/cts/PaintFlagsDrawFilterTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/graphics/src/android/graphics/cts/TypefaceTest.java b/tests/tests/graphics/src/android/graphics/cts/TypefaceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/graphics/src/android/graphics/cts/YuvImageTest.java b/tests/tests/graphics/src/android/graphics/cts/YuvImageTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/hardware/src/android/hardware/cts/CameraTest.java b/tests/tests/hardware/src/android/hardware/cts/CameraTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_button.png b/tests/tests/holo/res/drawable-hdpi/holo_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_calendar_view.png
index fd66f50..aea9b8d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_calendar_view_feb.png
index 124fe44..5093067 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_calendar_view.png
index 8cbdbbe..c199329 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_calendar_view_feb.png
index 4b076dd..dea6b40 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_calendar_view.png
index 8cbdbbe..c199329 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_calendar_view_feb.png
index 4b076dd..dea6b40 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_calendar_view.png
index fd66f50..aea9b8d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_calendar_view_feb.png
index 124fe44..5093067 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
index fd66f50..aea9b8d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
index 124fe44..5093067 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialog_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_calendar_view.png
index fd66f50..aea9b8d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_calendar_view_feb.png
index 124fe44..5093067 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
index fd66f50..52959f1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 124fe44..6a0feb3 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_button.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_calendar_view.png
index 5b26c82..0874ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_calendar_view_feb.png
index 56a9b64..617dd44 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_inputmethod_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_light_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_light_calendar_view.png
index 5b26c82..df79dc4 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_light_calendar_view_feb.png
index 56a9b64..c4365ae 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_light_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_light_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_light_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_calendar_view.png
index 5b26c82..df79dc4 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_calendar_view_feb.png
index 56a9b64..c4365ae 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_darkactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_calendar_view.png
index dbef875..3935ca1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_calendar_view_feb.png
index 6da07c4..5a11a6c 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_calendar_view.png
index dbef875..3935ca1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_calendar_view_feb.png
index 6da07c4..5a11a6c 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_calendar_view.png
index 5b26c82..df79dc4 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
index 56a9b64..c4365ae 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
index 5b26c82..df79dc4 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
index 56a9b64..c4365ae 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_calendar_view.png
index 5b26c82..df79dc4 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
index 56a9b64..c4365ae 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
index 5b26c82..0874ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 56a9b64..617dd44 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_calendar_view.png
index 5b26c82..0874ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_calendar_view_feb.png
index 56a9b64..617dd44 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_calendar_view.png
index 19b368e..0874ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
index deef2a4..617dd44 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_calendar_view.png
index 5b26c82..0874ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_calendar_view_feb.png
index 56a9b64..617dd44 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_light_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_light_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_light_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_light_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_light_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_light_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_light_tabhost.png
index 91b92f7..4b75bbb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_light_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_light_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_light_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_light_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_light_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_light_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_light_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_button.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_calendar_view.png
index fd66f50..52959f1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_calendar_view_feb.png
index 124fe44..6a0feb3 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_calendar_view.png
index 55277e8..52959f1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
index 98700de..6a0feb3 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_button.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_calendar_view.png
index 55277e8..52959f1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_calendar_view_feb.png
index 98700de..6a0feb3 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_panel_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_button.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_calendar_view.png
index fd66f50..aea9b8d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_calendar_view_feb.png
index 124fe44..5093067 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_button.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_button_pressed.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_calendar_view.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_calendar_view.png
index fd66f50..52959f1 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_calendar_view_feb.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
index 124fe44..6a0feb3 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_checkbox.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_checkbox.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_chronometer.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_chronometer.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_bright.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_light.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_green_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_green_light.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_orange_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_orange_light.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_purple.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_purple.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_red_dark.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_red_light.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radio_button.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radio_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radio_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radiogroup_vertical.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_searchview_query.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_searchview_query.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_searchview_query_hint.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_spinner.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_spinner.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_switch.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_switch.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_switch_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_switch_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_tabhost.png
index f2055e0..57a4cdb 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_textview.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_textview.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_timepicker.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_timepicker.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_toggle_button.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_toggle_button.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_toggle_button_checked.png b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-hdpi/holo_wallpaper_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_minwidth_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_noactionbar_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_dialogwhenlarge_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_inputmethod_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_light_darkactionbar_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_minwidth_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_noactionbar_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialogwhenlarge_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_light_noactionbar_fullscreen_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_light_noactionbar_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_light_panel_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_light_tabhost.png
index df6101c..0b58f46 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_noactionbar_fullscreen_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_noactionbar_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_panel_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_wallpaper_notitlebar_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-hdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-land-hdpi/holo_wallpaper_tabhost.png
index f4a97c7..292923b 100644
--- a/tests/tests/holo/res/drawable-land-hdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-hdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_minwidth_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_noactionbar_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_dialogwhenlarge_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_inputmethod_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_light_darkactionbar_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_minwidth_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_noactionbar_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialogwhenlarge_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_light_noactionbar_fullscreen_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_light_noactionbar_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_light_panel_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_light_tabhost.png
index 6f088a9..57c777a 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_noactionbar_fullscreen_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_noactionbar_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_panel_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_wallpaper_notitlebar_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-ldpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-land-ldpi/holo_wallpaper_tabhost.png
index f8684dc..25edc53 100644
--- a/tests/tests/holo/res/drawable-land-ldpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-ldpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_minwidth_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_noactionbar_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_dialogwhenlarge_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_inputmethod_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_light_darkactionbar_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_minwidth_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_noactionbar_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialogwhenlarge_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_light_noactionbar_fullscreen_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_light_noactionbar_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_light_panel_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_light_tabhost.png
index 924c38c..ef16b1b 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_noactionbar_fullscreen_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_noactionbar_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_panel_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_wallpaper_notitlebar_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-mdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-land-mdpi/holo_wallpaper_tabhost.png
index 7b9af81..1a08f0a 100644
--- a/tests/tests/holo/res/drawable-land-mdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-mdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_minwidth_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_noactionbar_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialogwhenlarge_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_inputmethod_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_darkactionbar_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_minwidth_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_noactionbar_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialogwhenlarge_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_noactionbar_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_panel_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_tabhost.png
index 68be9b4..d34a793 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_noactionbar_fullscreen_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_noactionbar_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_panel_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_wallpaper_notitlebar_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-tvdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-land-tvdpi/holo_wallpaper_tabhost.png
index 30480bc..7170d12 100644
--- a/tests/tests/holo/res/drawable-land-tvdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-tvdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_minwidth_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_noactionbar_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialogwhenlarge_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_inputmethod_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_darkactionbar_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_minwidth_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_noactionbar_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialogwhenlarge_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_noactionbar_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_panel_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_tabhost.png
index baaf527..d751ac0 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_noactionbar_fullscreen_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_noactionbar_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_panel_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_wallpaper_notitlebar_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-land-xhdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-land-xhdpi/holo_wallpaper_tabhost.png
index e03bb58..1a32ad2 100644
--- a/tests/tests/holo/res/drawable-land-xhdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-land-xhdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_button.png b/tests/tests/holo/res/drawable-ldpi/holo_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_calendar_view.png
index f40f693..7149aeb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_calendar_view_feb.png
index 13be467..e77a2fb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_calendar_view.png
index bf81b92..867a1c7 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_calendar_view_feb.png
index 1413081..9ea8c1d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_calendar_view.png
index bf81b92..867a1c7 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_calendar_view_feb.png
index 1413081..9ea8c1d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_calendar_view.png
index f40f693..7149aeb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_calendar_view_feb.png
index 13be467..e77a2fb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_calendar_view.png
index f40f693..7149aeb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
index 13be467..e77a2fb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialog_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_calendar_view.png
index f40f693..7149aeb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_calendar_view_feb.png
index 13be467..e77a2fb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
index f40f693..6d5b173 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 13be467..e9d5de9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_button.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_calendar_view.png
index f8fda58..c8b76c8 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_calendar_view_feb.png
index 3fa5618..ef2b2d6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_inputmethod_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_light_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_light_calendar_view.png
index f8fda58..20f587c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_light_calendar_view_feb.png
index 3fa5618..c85dad2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_light_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_light_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_light_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_calendar_view.png
index f8fda58..20f587c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_calendar_view_feb.png
index 3fa5618..c85dad2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_darkactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_calendar_view.png
index 17fccd0..3d30ded 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_calendar_view_feb.png
index 34f7575..6de8708 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_calendar_view.png
index 17fccd0..3d30ded 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_calendar_view_feb.png
index 34f7575..6de8708 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_calendar_view.png
index f8fda58..20f587c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_calendar_view_feb.png
index 3fa5618..c85dad2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
index f8fda58..20f587c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
index 3fa5618..c85dad2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_calendar_view.png
index f8fda58..20f587c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_calendar_view_feb.png
index 3fa5618..c85dad2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
index f8fda58..c8b76c8 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 3fa5618..ef2b2d6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_calendar_view.png
index f8fda58..c8b76c8 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_calendar_view_feb.png
index 3fa5618..ef2b2d6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_calendar_view.png
index 361f2b3..c8b76c8 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
index 4c8f688..ef2b2d6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_calendar_view.png
index 361f2b3..c8b76c8 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_calendar_view_feb.png
index 4c8f688..ef2b2d6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-ldpi/holo_light_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-ldpi/holo_light_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_light_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_light_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_light_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_light_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_light_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_light_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_light_tabhost.png
index a744207..958ce0f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_light_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_light_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_light_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_light_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_light_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_light_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_light_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_button.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_calendar_view.png
index f40f693..6d5b173 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_calendar_view_feb.png
index 13be467..e9d5de9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_calendar_view.png
index db37373..6d5b173 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_calendar_view_feb.png
index 01dca5d..e9d5de9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_button.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_calendar_view.png
index f40f693..6d5b173 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_calendar_view_feb.png
index 13be467..e9d5de9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_panel_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_button.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_calendar_view.png
index f40f693..7149aeb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_calendar_view_feb.png
index 13be467..e77a2fb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_button.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_button_pressed.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_calendar_view.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_calendar_view.png
index f40f693..6d5b173 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_calendar_view_feb.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_calendar_view_feb.png
index 13be467..e9d5de9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_checkbox.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_checkbox.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_chronometer.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_chronometer.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_bright.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_light.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_green_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_green_light.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_orange_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_orange_light.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_purple.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_purple.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_red_dark.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_red_light.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_notitlebar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radio_button.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radio_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radio_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radiogroup_vertical.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_searchview_query.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_searchview_query.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_searchview_query_hint.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_spinner.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_spinner.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_switch.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_switch.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_switch_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_switch_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_tabhost.png
index d638766..d341ccb 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_textview.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_textview.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_timepicker.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_timepicker.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_toggle_button.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_toggle_button.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_toggle_button_checked.png b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-ldpi/holo_wallpaper_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_button.png b/tests/tests/holo/res/drawable-mdpi/holo_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_calendar_view.png
index 99a3e8b..ce2791f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_calendar_view_feb.png
index ace3c3e..460fbef 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_calendar_view.png
index 99a3e8b..ce2791f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_calendar_view_feb.png
index ace3c3e..460fbef 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_calendar_view.png
index 99a3e8b..ce2791f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_calendar_view_feb.png
index ace3c3e..460fbef 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_calendar_view.png
index 80524d0..191128d 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
index 80524d0..191128d 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialog_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_calendar_view.png
index 99a3e8b..ce2791f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_calendar_view_feb.png
index ace3c3e..460fbef 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
index 80524d0..191128d 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_button.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_calendar_view.png
index 474761d..79d7391 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_inputmethod_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_light_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_light_calendar_view.png
index 589f990..8892d98 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_light_calendar_view_feb.png
index d740f62..89f972b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_light_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_light_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_light_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_calendar_view.png
index 589f990..8892d98 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_calendar_view_feb.png
index d740f62..89f972b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_darkactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_calendar_view.png
index 589f990..8892d98 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_calendar_view_feb.png
index d740f62..89f972b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_calendar_view.png
index 589f990..8892d98 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_calendar_view_feb.png
index d740f62..89f972b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_calendar_view.png
index 474761d..79d7391 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
index 474761d..79d7391 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_calendar_view.png
index 589f990..8892d98 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
index d740f62..89f972b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
index 474761d..79d7391 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_light_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_calendar_view.png
index 474761d..79d7391 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_calendar_view.png
index 474761d..79d7391 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_calendar_view.png
index 474761d..79d7391 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_light_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_light_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_light_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_light_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_light_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_light_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_light_tabhost.png
index 4114896..81b4cd4 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_light_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_light_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_light_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_light_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_light_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_light_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_light_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_button.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_calendar_view.png
index 80524d0..191128d 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_calendar_view.png
index 80524d0..191128d 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_button.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_calendar_view.png
index 80524d0..191128d 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_panel_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_button.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_calendar_view.png
index 99a3e8b..191128d 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_calendar_view_feb.png
index ace3c3e..460fbef 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_button.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_button_pressed.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_calendar_view.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_calendar_view.png
index 80524d0..191128d 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_calendar_view_feb.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_checkbox.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_checkbox.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_chronometer.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_chronometer.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_bright.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_light.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_green_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_green_light.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_orange_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_orange_light.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_purple.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_purple.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_red_dark.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_red_light.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_edittext.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_edittext.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radio_button.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radio_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radio_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radiogroup_vertical.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_searchview_query.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_searchview_query.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_searchview_query_hint.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_spinner.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_spinner.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_switch.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_switch.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_switch_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_switch_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_tabhost.png
index d3572e9..bd93d7f 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_textview.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_textview.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_timepicker.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_timepicker.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_toggle_button.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_toggle_button.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_toggle_button_checked.png b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-mdpi/holo_wallpaper_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_inputmethod_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_darkactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_button.png
index 87052f5..8b707dd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_button_pressed.png
index 73d77e2..0a71e88 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_calendar_view_feb.png
index deef2a4..026c73c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_checkbox.png
index 8048ddf..44458e9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_chronometer.png
index 17f93d9..799ca43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radio_button.png
index 0da3810..bb36633 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radio_button_checked.png
index 9b317b2..31a3d64 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radiogroup_horizontal.png
index 5c73a94..a1e92d1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radiogroup_vertical.png
index ab21d84..28629d7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_searchview_query.png
index 02a62c2..4646c79 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_searchview_query_hint.png
index a2aad7d..5674ee5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_spinner.png
index c8efdf7..f25be08 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_switch.png
index 05ccd02..2b945e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_switch_checked.png
index 7b6dc11..7dc944d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_tabhost.png
index e5c80c0..35f265e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_textview.png
index b1dc198..78c9c3d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_timepicker.png
index 8c0679d..e07810a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_toggle_button.png
index 1e9ba8a..c8a72b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_toggle_button_checked.png
index f4262fb..3ce3612 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_light_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_button.png
index 571f255..dfb178d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_button_pressed.png
index 1e9ff23..0cff976 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
index 98700de..8899deb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_checkbox.png
index 8196fea..b9f61f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_chronometer.png
index 1251360..ebfd536 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_bright.png
index f8225d9..55538d9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_dark.png
index 8f2abde..2e1adb0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_light.png
index da356b5..7d6931d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_green_dark.png
index c3920f0..29176c8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_green_light.png
index 23932af..74ae241 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_orange_dark.png
index a39ebf9..9898e72 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_orange_light.png
index 73e5320..02e146d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_purple.png
index 9dd6f3d..c692922 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_red_dark.png
index 437d6c8..b474624 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_red_light.png
index 4cd45ad..2ef932e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radio_button.png
index 0dcc0b9..ce8f320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radio_button_checked.png
index 8589177..7490622 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radiogroup_horizontal.png
index 9add86d..15d3401 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radiogroup_vertical.png
index befe64b..c404638 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_searchview_query.png
index 3869d18..2c046e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_searchview_query_hint.png
index 4a13daa..1e7615a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_spinner.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_spinner.png
index 1ce56c7..9768ef9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_switch.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_switch.png
index caededd..ae05198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_switch_checked.png
index 0af24d6..1de6a9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_tabhost.png
index 829d0e9..9210a83 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_textview.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_textview.png
index b91cf11..353b5d2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_timepicker.png
index 38b07a9..7a986aa 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_toggle_button.png
index 879d42d..4baaf15 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_toggle_button_checked.png
index 4c585a4..9627984 100644
--- a/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-hdpi/holo_wallpaper_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_inputmethod_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_darkactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_button.png
index 275174d..7534511 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_button_pressed.png
index eee5a8c..6dc5b0b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_calendar_view_feb.png
index 4c8f688..26756a2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_checkbox.png
index df985a0..1089910 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_chronometer.png
index a175b59..6bb85d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_progressbar_horizontal_100.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_progressbar_horizontal_100.png
index 240efaa..f4235b3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_progressbar_horizontal_100.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_progressbar_horizontal_100.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_progressbar_horizontal_50.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_progressbar_horizontal_50.png
index 58623c1..a01890f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_progressbar_horizontal_50.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_progressbar_horizontal_50.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radio_button.png
index a597e52..03c3e01 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radio_button_checked.png
index d840aa5..0afe7b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radiogroup_horizontal.png
index 7528a0d..924047a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radiogroup_vertical.png
index 4832e82..9444719 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_searchview_query.png
index 955df0d..d56c96b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_searchview_query_hint.png
index c821a13..8314ad3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_spinner.png
index 912cce8..38a8c16 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_switch.png
index 16c3139..7b68f87 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_switch_checked.png
index c558018..72f4665 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_tabhost.png
index e207101..adad11b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_textview.png
index 3d4b1d3..bae6b0e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_timepicker.png
index 5ad4054..73daef6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_toggle_button.png
index 83e3e2c..eda073d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_toggle_button_checked.png
index 9badc06..c3202d4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_light_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_button.png
index ccc3fae..d7b7a8b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_button_pressed.png
index 378a1f5..aa3dfdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_calendar_view_feb.png
index 01dca5d..3231fd6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_checkbox.png
index 9c1900b..b6c52ff 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_chronometer.png
index e807324..b4831bc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_bright.png
index 8ab9484..104f347 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_dark.png
index be9cda3..ce75e74 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_light.png
index e15a987..bd4e1d5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_green_dark.png
index 27aeb20..0248d03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_green_light.png
index 25db486..39c38ae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_orange_dark.png
index b0dc96f..f3e134f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_orange_light.png
index 138efa1..30d934f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_purple.png
index 18ac3ac..0c0bc1c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_red_dark.png
index b2cab28..0bc968d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_red_light.png
index d843209..063ab8d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_notitlebar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radio_button.png
index e95d3f3..e496198 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radio_button_checked.png
index 90595d0..10d03ea 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radiogroup_horizontal.png
index 487636d..5009f1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radiogroup_vertical.png
index 235d16a..b47b6f6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_searchview_query.png
index 3c1aabc..df23c85 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_searchview_query_hint.png
index a8716b8..77a55af 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_spinner.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_spinner.png
index 96223de..2bda0c9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_switch.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_switch.png
index 6f254db..415c08c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_switch_checked.png
index 0afe372..24ed111 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_tabhost.png
index 84e59a7..ff0b781 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_textview.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_textview.png
index 2c84498..b1672b1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_timepicker.png
index f5c0bbc..3044660 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_toggle_button.png
index 8b50ed1..0bce537 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_toggle_button_checked.png
index e1d6753..5520da1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-ldpi/holo_wallpaper_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_calendar_view_feb.png
index ace3c3e..460fbef 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_inputmethod_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_darkactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
index d740f62..89f972b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_button.png
index d5745e6..7cc6092 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_button_pressed.png
index 5c22601..4ad2510 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_calendar_view_feb.png
index 5e36c66..b1b16a8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_checkbox.png
index 4a8b11b..a1220f3 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_chronometer.png
index 6ad3ee8..2da7d25 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_edittext.png
index 2a0ec7d..3e9e9ca 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radio_button.png
index 1ce162b..e65fcc7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radio_button_checked.png
index 8854e56..5d8a03a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radiogroup_horizontal.png
index 5fcca37..816073a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radiogroup_vertical.png
index 05929d0..3ad2f99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_searchview_query.png
index 52e7b9e..8b3aa26 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_searchview_query_hint.png
index 1153f3a..6f1064e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_spinner.png
index 2d15530..5e2d7ba 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_switch.png
index 4b094b1..60c9037 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_switch_checked.png
index 56707fe..5b9265b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_tabhost.png
index 8ccf6d4..65f8e5a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_textview.png
index f381112..374faab 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_timepicker.png
index 8a310b9..eccc648 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_toggle_button.png
index 48592c7..0c66c37 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_toggle_button_checked.png
index a902709..0aaf137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_light_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_button.png
index 6574fae..7562119 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_button_pressed.png
index 6c1eeb1..62e13e2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
index 851f180..6aade9f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_checkbox.png
index f181943..4a7ea9a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_chronometer.png
index c7c30b6..a4b49c1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_bright.png
index e4b7c67..e498e7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_dark.png
index e6193f2..f6dd1a7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_light.png
index 92fe5e4..347b49a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_green_dark.png
index 0adfd5c..4ab5dda 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_green_light.png
index f941e7e..fbcecc9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_orange_dark.png
index a780621..3557dbf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_orange_light.png
index cc606e9..b512a9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_purple.png
index 7a9bf77..a785d43 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_red_dark.png
index 28f3a9c..b3be4db 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_red_light.png
index ca21e8d..86a905c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_edittext.png
index b42cb54..6fabb7e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radio_button.png
index f750d97..2693b19 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radio_button_checked.png
index e891cda..d0b6f03 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radiogroup_horizontal.png
index 779dd5e..da05890 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radiogroup_vertical.png
index aca9093..d0c4d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_searchview_query.png
index b3220a8..ae610ac 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_searchview_query_hint.png
index c8c90cd..c98afae 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_spinner.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_spinner.png
index babb158..e2cafb8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_switch.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_switch.png
index 4dfe087..1d4117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_switch_checked.png
index ffb5d39..d3df320 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_tabhost.png
index 9e783bc..9441097 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_textview.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_textview.png
index de1c951..be0ea9e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_timepicker.png
index 969da39..9131bdd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_toggle_button.png
index 21822b6..6ed70be 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_toggle_button_checked.png
index fc24190..e824213 100644
--- a/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-mdpi/holo_wallpaper_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_inputmethod_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_darkactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_tabhost.png
index d8b2f08..10d8137 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_light_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_spinner.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_switch.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_tabhost.png
index a66b4e3..b090853 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_textview.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-tvdpi/holo_wallpaper_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_inputmethod_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_darkactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_tabhost.png
index 5c0d712..8660a44 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_light_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_button_pressed.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_calendar_view_feb.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_checkbox.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_checkbox.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_chronometer.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_chronometer.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_bright.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_green_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_green_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_orange_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_orange_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_purple.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_purple.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_red_dark.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_red_light.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_edittext.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_edittext.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radio_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radio_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radio_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radiogroup_vertical.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_searchview_query.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_searchview_query.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_searchview_query_hint.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_spinner.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_spinner.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_switch.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_switch.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_switch_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_switch_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_tabhost.png
index 0823449..90cd494 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_textview.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_textview.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_timepicker.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_timepicker.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_toggle_button.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_toggle_button.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_toggle_button_checked.png b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-sw600dp-xhdpi/holo_wallpaper_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_calendar_view.png
index d44f181..643b5e0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_calendar_view_feb.png
index 6298732..9c505f8 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_calendar_view.png
index d44f181..0beff09 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_calendar_view_feb.png
index 6298732..568bb25 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_calendar_view.png
index d44f181..0beff09 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_calendar_view_feb.png
index 6298732..568bb25 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_calendar_view.png
index 5a08474..643b5e0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_calendar_view_feb.png
index 302fe12..9c505f8 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
index 5a08474..643b5e0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
index 302fe12..9c505f8 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_calendar_view.png
index d44f181..643b5e0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_calendar_view_feb.png
index 6298732..9c505f8 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
index 5a08474..643b5e0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 302fe12..9c505f8 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_calendar_view.png
index 501f761..8990fed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_calendar_view_feb.png
index 00db975..8fd6b84 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_inputmethod_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_calendar_view.png
index b3b904d..8990fed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_calendar_view_feb.png
index 69aaa7e..8fd6b84 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_calendar_view.png
index b3b904d..8990fed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_calendar_view_feb.png
index 69aaa7e..8fd6b84 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_darkactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_calendar_view.png
index b3b904d..9b0c1cd 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_calendar_view_feb.png
index 69aaa7e..f95740f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_calendar_view.png
index b3b904d..9b0c1cd 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_calendar_view_feb.png
index 69aaa7e..f95740f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_calendar_view.png
index 501f761..8990fed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
index 00db975..8fd6b84 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
index 501f761..8990fed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
index 00db975..8fd6b84 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_calendar_view.png
index b3b904d..8990fed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
index 69aaa7e..8fd6b84 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
index 501f761..8990fed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 00db975..8fd6b84 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_calendar_view.png
index 501f761..8990fed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_calendar_view_feb.png
index 00db975..8fd6b84 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_calendar_view.png
index 501f761..dde6d9e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
index 00db975..c57376b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_button.png
index 006a2d0..ab45a80 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_button_pressed.png
index bd4f529..3beef9d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_calendar_view.png
index 501f761..dde6d9e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_calendar_view_feb.png
index 00db975..8fd6b84 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_checkbox.png
index ec9d1a0..b8efd58 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_chronometer.png
index a406d4b..442de28 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_radio_button.png
index a649baf..b561600 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_radio_button_checked.png
index 5e15add..6c99988 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_radiogroup_horizontal.png
index 4890694..5940c12 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_radiogroup_vertical.png
index d0e55fa..5929e0d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_searchview_query.png
index 0faa2ee..26a4321 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_searchview_query_hint.png
index c2c20cd..52c0f30 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_spinner.png
index 6b8bd33..e8a9e99 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_switch.png
index adcf3d1..8020877 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_switch_checked.png
index 78762c8..df3c898 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_tabhost.png
index 6e17fe1..207b560 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_textview.png
index 8cd9db7..97414e6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_timepicker.png
index cf86239..b292054 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_toggle_button.png
index f0ecad9..215e231 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_light_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_light_toggle_button_checked.png
index b927adf..7b37dd0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_light_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_light_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_calendar_view.png
index 5a08474..5c257cb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_calendar_view_feb.png
index 302fe12..9c505f8 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_calendar_view.png
index 5a08474..5c257cb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_calendar_view.png
index 5a08474..5c257cb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_calendar_view_feb.png
index 302fe12..f61d7b7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_panel_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_calendar_view.png
index d44f181..643b5e0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_calendar_view_feb.png
index 6298732..9c505f8 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_button.png
index 76fcef6..fe1fabc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_button_pressed.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_button_pressed.png
index a40e581..8cd13e4 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_calendar_view.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_calendar_view.png
index 5a08474..643b5e0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_calendar_view_feb.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
index 302fe12..9c505f8 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_checkbox.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_checkbox.png
index bc37971..285be86 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_checkbox.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_chronometer.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_chronometer.png
index cfd9a86..ae3ac7d 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_chronometer.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_bright.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_bright.png
index 22f3bee..1474b24 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_dark.png
index 35e0135..8daa0fe 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_light.png
index f9c5583..875b67c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_green_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_green_dark.png
index b58afe6..bb7f3ed 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_green_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_green_light.png
index 95fffde..ab3ae4c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_orange_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_orange_dark.png
index d77c9cd..56739b6 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_orange_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_orange_light.png
index 39ed3ea..34e2fcc 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_purple.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_purple.png
index 23b197d..a71ad9c 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_purple.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_red_dark.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_red_dark.png
index 246d460..7ef4c5b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_red_light.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_red_light.png
index 2655e45..f6e6cfb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radio_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radio_button.png
index 882854e..8aebbb5 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radio_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radio_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radio_button_checked.png
index e6f11d7..5d8bab9 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radiogroup_horizontal.png
index 421370b..95a1657 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radiogroup_vertical.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radiogroup_vertical.png
index 9edb273..6a2eebb 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_searchview_query.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_searchview_query.png
index be27095..53d4887 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_searchview_query.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_searchview_query_hint.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_searchview_query_hint.png
index 7ff07da..383617b 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_spinner.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_spinner.png
index bd8709d..e2e3b73 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_spinner.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_switch.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_switch.png
index 9ec8c15..ecdb2f0 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_switch.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_switch_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_switch_checked.png
index 0e55ca3..8b0701f 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_switch_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_tabhost.png
index dd624d4..dcd67d7 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_textview.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_textview.png
index 84d8f38..0c6037a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_textview.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_timepicker.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_timepicker.png
index 0216c9c..9c8d036 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_timepicker.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_toggle_button.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_toggle_button.png
index edc9869..3a9930e 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_toggle_button.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_toggle_button_checked.png b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_toggle_button_checked.png
index 5ca93e0..db6528a 100644
--- a/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-tvdpi/holo_wallpaper_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_calendar_view.png
index 2eab0d0..617f66d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_calendar_view_feb.png
index 0eb0507..5a41e89 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_calendar_view.png
index 2eab0d0..f2918d8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_calendar_view_feb.png
index 0eb0507..dfe29b1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_calendar_view.png
index 2eab0d0..f2918d8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_calendar_view_feb.png
index 0eb0507..dfe29b1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_calendar_view.png
index 3814c37..617f66d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_calendar_view_feb.png
index e4c0c29..5a41e89 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
index 3814c37..617f66d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
index e4c0c29..5a41e89 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_calendar_view.png
index 2eab0d0..617f66d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_calendar_view_feb.png
index 0eb0507..5a41e89 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
index 3814c37..617f66d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
index e4c0c29..5a41e89 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_calendar_view.png
index c43240e..6bb8c7b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_calendar_view_feb.png
index 62b5d2a..6a32add 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_inputmethod_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_calendar_view.png
index 514f885..6bb8c7b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_calendar_view_feb.png
index d5372a0..6a32add 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_calendar_view.png
index 514f885..6bb8c7b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_calendar_view_feb.png
index d5372a0..6a32add 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_darkactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_calendar_view.png
index 514f885..78d05e2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_calendar_view_feb.png
index d5372a0..d11f86f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_calendar_view.png
index 514f885..78d05e2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_calendar_view_feb.png
index d5372a0..d11f86f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_calendar_view.png
index c43240e..6bb8c7b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
index 62b5d2a..6a32add 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
index c43240e..6bb8c7b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
index 62b5d2a..6a32add 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_minwidth_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialog_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_calendar_view.png
index 514f885..6bb8c7b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
index d5372a0..6a32add 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
index c43240e..6bb8c7b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
index 62b5d2a..6a32add 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_dialogwhenlarge_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_calendar_view.png
index c43240e..6bb8c7b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_calendar_view_feb.png
index 62b5d2a..6a32add 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_calendar_view.png
index c43240e..4a7d2ae 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_button.png
index 1c4a1ae..d630b9d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_button_pressed.png
index ab54d90..74e8fe0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_calendar_view.png
index c43240e..4a7d2ae 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_calendar_view_feb.png
index 62b5d2a..02a117c 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_checkbox.png
index a6816e6..45862a0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_chronometer.png
index a53424d..af02fde 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_edittext.png
index 3f8486f..e24fc71 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_radio_button.png
index 50021f5..cdaf449 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_radio_button_checked.png
index 7202428..69a9a7d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_radiogroup_horizontal.png
index 6662b58..ffb560e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_radiogroup_vertical.png
index 6b24089..fd215cf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_searchview_query.png
index 3a6b8e8..a11d860 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_searchview_query_hint.png
index e5dbe9e..93dbee6 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_spinner.png
index d285ae4..39617cd 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_switch.png
index 694df83..c87a53a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_switch_checked.png
index dc00b81..571f357 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_tabhost.png
index f7da804..5dcd37b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_textview.png
index ea245da..8eb8556 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_timepicker.png
index 7e86a57..8a1c51e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_toggle_button.png
index 6f8b0e9..8e2dac0 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_light_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_light_toggle_button_checked.png
index 1a86f43..516fe20 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_light_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_light_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_calendar_view.png
index 3814c37..f1a3471 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_calendar_view_feb.png
index e4c0c29..5a41e89 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_calendar_view.png
index 3814c37..f1a3471 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_fullscreen_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_noactionbar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_calendar_view.png
index 3814c37..f1a3471 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_calendar_view_feb.png
index e4c0c29..8048081 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_panel_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_panel_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_panel_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_panel_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_calendar_view.png
index 2eab0d0..617f66d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_calendar_view_feb.png
index 0eb0507..5a41e89 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_button.png
index 46bd297..f3db6e8 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_button_pressed.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_button_pressed.png
index 48b0251..4f52d2a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_button_pressed.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_button_pressed.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_calendar_view.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_calendar_view.png
index 3814c37..617f66d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_calendar_view.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_calendar_view.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_calendar_view_feb.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
index e4c0c29..5a41e89 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_calendar_view_feb.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_checkbox.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_checkbox.png
index 2845963..a71885d 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_checkbox.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_checkbox.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_chronometer.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_chronometer.png
index 175e289..507bf4f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_chronometer.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_chronometer.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_bright.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_bright.png
index 6b3ea27..59e93b7 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_bright.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_bright.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_dark.png
index f117857..2e72798 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_light.png
index 40229e0..96517b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_blue_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_green_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_green_dark.png
index 2a1e9ce..e63c4e5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_green_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_green_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_green_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_green_light.png
index 1679c62..2d322a4 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_green_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_green_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_orange_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_orange_dark.png
index 917cec6..1e8f3b2 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_orange_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_orange_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_orange_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_orange_light.png
index abf92ca..13ed8ed 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_orange_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_orange_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_purple.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_purple.png
index 59d7604..f9c36b5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_purple.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_purple.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_red_dark.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_red_dark.png
index abce238..36fb1f1 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_red_dark.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_red_dark.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_red_light.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_red_light.png
index d9d6e62..32b8aa9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_red_light.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_color_red_light.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_edittext.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_edittext.png
index a938a51..4b41717 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_edittext.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_edittext.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_notitlebar_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radio_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radio_button.png
index a369e97..bdb0ba5 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radio_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radio_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radio_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radio_button_checked.png
index f690dee..fbdc6bf 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radio_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radio_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radiogroup_horizontal.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radiogroup_horizontal.png
index 0fd06c3..d8e074f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radiogroup_horizontal.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radiogroup_horizontal.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radiogroup_vertical.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radiogroup_vertical.png
index d206ee3..3a7fd63 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radiogroup_vertical.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_radiogroup_vertical.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_searchview_query.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_searchview_query.png
index 2a7e127..908966b 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_searchview_query.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_searchview_query.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_searchview_query_hint.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_searchview_query_hint.png
index ceaca44..7c1ec1a 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_searchview_query_hint.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_searchview_query_hint.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_spinner.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_spinner.png
index e5433a9..fc9e20f 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_spinner.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_spinner.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_switch.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_switch.png
index 2cf252f..bcba3ad 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_switch.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_switch.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_switch_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_switch_checked.png
index 5fe9113..399fac9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_switch_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_switch_checked.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_tabhost.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_tabhost.png
index 174ec22..3ed8d75 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_tabhost.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_tabhost.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_textview.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_textview.png
index a08121c..177c26e 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_textview.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_textview.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_timepicker.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_timepicker.png
index afac649..1b5b0eb 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_timepicker.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_timepicker.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_toggle_button.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_toggle_button.png
index 143b31f..7bacc13 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_toggle_button.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_toggle_button.png
Binary files differ
diff --git a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_toggle_button_checked.png b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_toggle_button_checked.png
index e811280..f8329b9 100644
--- a/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_toggle_button_checked.png
+++ b/tests/tests/holo/res/drawable-xhdpi/holo_wallpaper_toggle_button_checked.png
Binary files differ
diff --git a/tests/tests/holo/src/android/holo/cts/LayoutTestActivity.java b/tests/tests/holo/src/android/holo/cts/LayoutTestActivity.java
index 2b6c371..89bf9eb 100644
--- a/tests/tests/holo/src/android/holo/cts/LayoutTestActivity.java
+++ b/tests/tests/holo/src/android/holo/cts/LayoutTestActivity.java
@@ -42,6 +42,7 @@
 public class LayoutTestActivity extends Activity {
 
     private static final String TAG = LayoutTestActivity.class.getSimpleName();
+    private static final boolean DEBUG = false;
 
     // Input extras
     static final String EXTRA_THEME_INDEX = "themeIndex";
@@ -68,6 +69,10 @@
         int layoutMode = getIntent().getIntExtra(EXTRA_LAYOUT_ADAPTER_MODE, -1);
         int task = getIntent().getIntExtra(EXTRA_TASK, -1);
 
+        if (DEBUG) {
+            Log.i(TAG, "onCreate theme:" + themeIndex + " layout:" + layoutIndex +
+                    " mode:" + layoutMode + " task:" + task);
+        }
         ThemeAdapter themeAdapter = new ThemeAdapter(getLayoutInflater());
         LayoutAdapter layoutAdapter = new LayoutAdapter(getLayoutInflater(), layoutMode);
 
@@ -292,6 +297,9 @@
     }
 
     private void finishWithResult(boolean success, String message) {
+        if (DEBUG) {
+            Log.i(TAG, "finishWithResult finishing:" + message);
+        }
         Intent data = new Intent();
         data.putExtra(EXTRA_SUCCESS, success);
         data.putExtra(EXTRA_MESSAGE, message);
diff --git a/tests/tests/holo/src/android/holo/cts/ThemeTestActivity.java b/tests/tests/holo/src/android/holo/cts/ThemeTestActivity.java
index b7fdd1d..b21b834 100644
--- a/tests/tests/holo/src/android/holo/cts/ThemeTestActivity.java
+++ b/tests/tests/holo/src/android/holo/cts/ThemeTestActivity.java
@@ -36,6 +36,7 @@
 public class ThemeTestActivity extends Activity {
 
     private static final String TAG = ThemeTestActivity.class.getSimpleName();
+    private static final boolean DEBUG = false;
 
     static final String EXTRA_TASK = "task";
     static final String EXTRA_THEME_INDEX = "themeIndex";
@@ -112,7 +113,10 @@
             mResultFuture.set(mPendingResult);
             if (mRequestCode == GENERATE_BITMAP_REQUEST_CODE) {
                 // finish with result so that generated bitmaps can be captured automatically
-                setResult(0);
+                if (DEBUG) {
+                    Log.i(TAG, "generateNextBitmap finishing");
+                }
+                setResult(RESULT_OK);
                 finish();
             }
         }
@@ -120,6 +124,9 @@
 
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (DEBUG) {
+            Log.i(TAG,  "onActivityResult req:" + requestCode + " res:" + resultCode);
+        }
         switch (requestCode) {
             case VIEW_TESTS_REQUEST_CODE:
                 return;
diff --git a/tests/tests/location/src/android/location/cts/LocationManagerTest.java b/tests/tests/location/src/android/location/cts/LocationManagerTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/location2/src/android/location2/cts/LocationManagerTest.java b/tests/tests/location2/src/android/location2/cts/LocationManagerTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/media/res/raw/video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz.mp4 b/tests/tests/media/res/raw/video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz.mp4
new file mode 100644
index 0000000..5dbb6db
--- /dev/null
+++ b/tests/tests/media/res/raw/video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz.mp4
Binary files differ
diff --git a/tests/tests/media/res/raw/video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz.webm b/tests/tests/media/res/raw/video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz.webm
new file mode 100644
index 0000000..f64aec3
--- /dev/null
+++ b/tests/tests/media/res/raw/video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz.webm
Binary files differ
diff --git a/tests/tests/media/res/raw/video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz.webm b/tests/tests/media/res/raw/video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz.webm
new file mode 100644
index 0000000..c07e979
--- /dev/null
+++ b/tests/tests/media/res/raw/video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz.webm
Binary files differ
diff --git a/tests/tests/media/src/android/media/cts/AudioRecordTest.java b/tests/tests/media/src/android/media/cts/AudioRecordTest.java
index 877cb80..7ff631f 100644
--- a/tests/tests/media/src/android/media/cts/AudioRecordTest.java
+++ b/tests/tests/media/src/android/media/cts/AudioRecordTest.java
@@ -99,7 +99,7 @@
         assertEquals(AudioFormat.ENCODING_PCM_16BIT, mAudioRecord.getAudioFormat());
         assertEquals(MediaRecorder.AudioSource.DEFAULT, mAudioRecord.getAudioSource());
         assertEquals(1, mAudioRecord.getChannelCount());
-        assertEquals(AudioFormat.CHANNEL_CONFIGURATION_MONO,
+        assertEquals(AudioFormat.CHANNEL_IN_MONO,
                 mAudioRecord.getChannelConfiguration());
         assertEquals(AudioRecord.STATE_INITIALIZED, mAudioRecord.getState());
         assertEquals(mHz, mAudioRecord.getSampleRate());
diff --git a/tests/tests/media/src/android/media/cts/DecodeEditEncodeTest.java b/tests/tests/media/src/android/media/cts/DecodeEditEncodeTest.java
index be2dc54..c4a171e 100644
--- a/tests/tests/media/src/android/media/cts/DecodeEditEncodeTest.java
+++ b/tests/tests/media/src/android/media/cts/DecodeEditEncodeTest.java
@@ -31,8 +31,6 @@
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 
-import javax.microedition.khronos.opengles.GL10;
-
 
 /**
  * This test has three steps:
@@ -53,7 +51,6 @@
     private static final boolean WORK_AROUND_BUGS = false;  // avoid fatal codec bugs
     private static final boolean VERBOSE = false;           // lots of logging
     private static final boolean DEBUG_SAVE_FILE = false;   // save copy of encoded movie
-    private static final String DEBUG_FILE_NAME_BASE = "/sdcard/test.";
 
     // parameters for the encoder
     private static final String MIME_TYPE = "video/avc";    // H.264 Advanced Video Coding
@@ -766,7 +763,7 @@
                 y = mHeight / 4;
             }
 
-            GLES20.glReadPixels(x, y, 1, 1, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, pixelBuf);
+            GLES20.glReadPixels(x, y, 1, 1, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, pixelBuf);
             int r = pixelBuf.get(0) & 0xff;
             int g = pixelBuf.get(1) & 0xff;
             int b = pixelBuf.get(2) & 0xff;
diff --git a/tests/tests/media/src/android/media/cts/DecoderTest.java b/tests/tests/media/src/android/media/cts/DecoderTest.java
index 077c9f3..1761842 100644
--- a/tests/tests/media/src/android/media/cts/DecoderTest.java
+++ b/tests/tests/media/src/android/media/cts/DecoderTest.java
@@ -69,31 +69,30 @@
     // This should allow for some variation in decoders, while still detecting
     // phase and delay errors, channel swap, etc.
     public void testDecodeMp3Lame() throws Exception {
-        decode(R.raw.sinesweepmp3lame, 804.f, true);
+        decode(R.raw.sinesweepmp3lame, 804.f);
     }
     public void testDecodeMp3Smpb() throws Exception {
-        decode(R.raw.sinesweepmp3smpb, 413.f, true);
+        decode(R.raw.sinesweepmp3smpb, 413.f);
     }
     public void testDecodeM4a() throws Exception {
-        decode(R.raw.sinesweepm4a, 124.f, true);
+        decode(R.raw.sinesweepm4a, 124.f);
     }
     public void testDecodeOgg() throws Exception {
-        decode(R.raw.sinesweepogg, 168.f, false);
+        decode(R.raw.sinesweepogg, 168.f);
     }
     public void testDecodeWav() throws Exception {
-        decode(R.raw.sinesweepwav, 0.0f, true);
+        decode(R.raw.sinesweepwav, 0.0f);
     }
     public void testDecodeFlac() throws Exception {
-        decode(R.raw.sinesweepflac, 0.0f, true);
+        decode(R.raw.sinesweepflac, 0.0f);
     }
 
     /**
      * @param testinput the file to decode
      * @param maxerror the maximum allowed root mean squared error
-     * @param testReconfigure whether to also test reconfiguring the codec
      * @throws IOException
      */
-    private void decode(int testinput, float maxerror, boolean reconfigure) throws IOException {
+    private void decode(int testinput, float maxerror) throws IOException {
 
         short [] decoded = decodeToMemory(testinput, false);
 
@@ -112,12 +111,10 @@
         double rmse = Math.sqrt(avgErrorSquared);
         assertTrue("decoding error too big: " + rmse, rmse <= maxerror);
 
-        if (reconfigure) {
-            short [] decoded2 = decodeToMemory(testinput, true);
-            assertEquals("count different with reconfigure", decoded.length, decoded2.length);
-            for (int i = 0; i < decoded.length; i++) {
-                assertEquals("samples don't match", decoded[i], decoded2[i]);
-            }
+        short [] decoded2 = decodeToMemory(testinput, true);
+        assertEquals("count different with reconfigure", decoded.length, decoded2.length);
+        for (int i = 0; i < decoded.length; i++) {
+            assertEquals("samples don't match", decoded[i], decoded2[i]);
         }
     }
 
@@ -281,6 +278,45 @@
         assertEquals("different number of frames when using Surface", frames1, frames2);
     }
 
+    public void testCodecBasicMpeg4() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        int frames1 = countFrames(
+                R.raw.video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz,
+                false, -1, s);
+        assertEquals("wrong number of frames decoded", 249, frames1);
+
+        int frames2 = countFrames(
+                R.raw.video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz,
+                false, -1, null);
+        assertEquals("different number of frames when using Surface", frames1, frames2);
+    }
+
+    public void testCodecBasicVP8() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        int frames1 = countFrames(
+                R.raw.video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz,
+                false, -1, s);
+        assertEquals("wrong number of frames decoded", 240, frames1);
+
+        int frames2 = countFrames(
+                R.raw.video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz,
+                false, -1, null);
+        assertEquals("different number of frames when using Surface", frames1, frames2);
+    }
+
+    public void testCodecBasicVP9() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        int frames1 = countFrames(
+                R.raw.video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz,
+                false, -1, s);
+        assertEquals("wrong number of frames decoded", 240, frames1);
+
+        int frames2 = countFrames(
+                R.raw.video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz,
+                false, -1, null);
+        assertEquals("different number of frames when using Surface", frames1, frames2);
+    }
+
     public void testCodecEarlyEOSH263() throws Exception {
         Surface s = getActivity().getSurfaceHolder().getSurface();
         int frames1 = countFrames(
@@ -297,6 +333,30 @@
         assertEquals("wrong number of frames decoded", 120, frames1);
     }
 
+    public void testCodecEarlyEOSMpeg4() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        int frames1 = countFrames(
+                R.raw.video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz,
+                false, 120, s);
+        assertEquals("wrong number of frames decoded", 120, frames1);
+    }
+
+    public void testCodecEarlyEOSVP8() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        int frames1 = countFrames(
+                R.raw.video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz,
+                false, 120, s);
+        assertEquals("wrong number of frames decoded", 120, frames1);
+    }
+
+    public void testCodecEarlyEOSVP9() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        int frames1 = countFrames(
+                R.raw.video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz,
+                false, 120, s);
+        assertEquals("wrong number of frames decoded", 120, frames1);
+    }
+
     public void testCodecReconfigH264WithoutSurface() throws Exception {
         testCodecReconfig(
                 R.raw.video_480x360_mp4_h264_1000kbps_25fps_aac_stereo_128kbps_44100hz, null);
@@ -319,6 +379,38 @@
                 R.raw.video_176x144_3gp_h263_300kbps_12fps_aac_stereo_128kbps_22050hz, s);
     }
 
+    public void testCodecReconfigMpeg4WithoutSurface() throws Exception {
+        testCodecReconfig(
+                R.raw.video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz, null);
+    }
+
+    public void testCodecReconfigMpeg4WithSurface() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        testCodecReconfig(
+                R.raw.video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz, s);
+    }
+
+    public void testCodecReconfigVP8WithoutSurface() throws Exception {
+        testCodecReconfig(
+                R.raw.video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz, null);
+    }
+
+    public void testCodecReconfigVP8WithSurface() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        testCodecReconfig(
+                R.raw.video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz, s);
+    }
+
+    public void testCodecReconfigVP9WithoutSurface() throws Exception {
+        testCodecReconfig(
+                R.raw.video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz, null);
+    }
+
+    public void testCodecReconfigVP9WithSurface() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        testCodecReconfig(
+                R.raw.video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz, s);
+    }
 //    public void testCodecReconfigOgg() throws Exception {
 //        testCodecReconfig(R.raw.sinesweepogg, null);
 //    }
@@ -337,6 +429,24 @@
         assertEquals("different number of frames when reusing codec", frames1, frames2);
     }
 
+    private MediaCodec createDecoder(String mime) {
+        if (false) {
+            // change to force testing software codecs
+            if (mime.contains("avc")) {
+                return MediaCodec.createByCodecName("OMX.google.h264.decoder");
+            } else if (mime.contains("3gpp")) {
+                return MediaCodec.createByCodecName("OMX.google.h263.decoder");
+            } else if (mime.contains("mp4v")) {
+                return MediaCodec.createByCodecName("OMX.google.mpeg4.decoder");
+            } else if (mime.contains("vp8")) {
+                return MediaCodec.createByCodecName("OMX.google.vp8.decoder");
+            } else if (mime.contains("vp9")) {
+                return MediaCodec.createByCodecName("OMX.google.vp9.decoder");
+            }
+        }
+        return MediaCodec.createDecoderByType(mime);
+    }
+
     private int countFrames(int video, boolean reconfigure, int eosframe, Surface s) throws Exception {
         int numframes = 0;
 
@@ -355,12 +465,8 @@
         String mime = format.getString(MediaFormat.KEY_MIME);
         boolean isAudio = mime.startsWith("audio/");
 
-        codec = MediaCodec.createDecoderByType(mime);
-//        if (mime.contains("avc")) {
-//            codec = MediaCodec.createByCodecName("OMX.google.h264.decoder");
-//        } else if (mime.contains("3gpp")) {
-//            codec = MediaCodec.createByCodecName("OMX.google.h263.decoder");
-//        }
+        codec = createDecoder(mime);
+
         assertNotNull("couldn't find codec", codec);
         Log.i("@@@@", "using codec: " + codec.getName());
         codec.configure(format, s /* surface */, null /* crypto */, 0 /* flags */);
@@ -503,6 +609,31 @@
         testEOSBehavior(R.raw.video_176x144_3gp_h263_300kbps_12fps_aac_stereo_128kbps_22050hz, 50);
     }
 
+    public void testEOSBehaviorMpeg4() throws Exception {
+        // this video has an I frame every 12 frames
+        testEOSBehavior(R.raw.video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz, 24);
+        testEOSBehavior(R.raw.video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz, 25);
+        testEOSBehavior(R.raw.video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz, 48);
+        testEOSBehavior(R.raw.video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz, 50);
+        testEOSBehavior(R.raw.video_480x360_mp4_mpeg4_860kbps_25fps_aac_stereo_128kbps_44100hz, 2);
+    }
+
+    public void testEOSBehaviorVP8() throws Exception {
+        // this video has an I frame at 46
+        testEOSBehavior(R.raw.video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz, 46);
+        testEOSBehavior(R.raw.video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz, 47);
+        testEOSBehavior(R.raw.video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz, 57);
+        testEOSBehavior(R.raw.video_480x360_webm_vp8_333kbps_25fps_vorbis_stereo_128kbps_44100hz, 45);
+    }
+
+    public void testEOSBehaviorVP9() throws Exception {
+        // this video has an I frame at 44
+        testEOSBehavior(R.raw.video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz, 44);
+        testEOSBehavior(R.raw.video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz, 45);
+        testEOSBehavior(R.raw.video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz, 55);
+        testEOSBehavior(R.raw.video_480x360_webm_vp9_333kbps_25fps_vorbis_stereo_128kbps_44100hz, 43);
+    }
+
     private void testEOSBehavior(int movie, int stopatsample) throws Exception {
 
         int numframes = 0;
@@ -524,12 +655,8 @@
         String mime = format.getString(MediaFormat.KEY_MIME);
         boolean isAudio = mime.startsWith("audio/");
 
-        codec = MediaCodec.createDecoderByType(mime);
-//        if (mime.contains("avc")) {
-//            codec = MediaCodec.createByCodecName("OMX.google.h264.decoder");
-//        } else if (mime.contains("3gpp")) {
-//            codec = MediaCodec.createByCodecName("OMX.google.h263.decoder");
-//        }
+        codec = createDecoder(mime);
+
         assertNotNull("couldn't find codec", codec);
         Log.i("@@@@", "using codec: " + codec.getName());
         codec.configure(format, null /* surface */, null /* crypto */, 0 /* flags */);
@@ -642,12 +769,7 @@
         extractor.setDataSource(testFd.getFileDescriptor(), testFd.getStartOffset(),
                 testFd.getLength());
 
-        codec = MediaCodec.createDecoderByType(mime);
-//        if (mime.contains("avc")) {
-//            codec = MediaCodec.createByCodecName("OMX.google.h264.decoder");
-//        } else if (mime.contains("3gpp")) {
-//            codec = MediaCodec.createByCodecName("OMX.google.h263.decoder");
-//        }
+        codec = createDecoder(mime);
         codec.configure(format, null /* surface */, null /* crypto */, 0 /* flags */);
         codec.start();
         codecInputBuffers = codec.getInputBuffers();
diff --git a/tests/tests/media/src/android/media/cts/InputSurface.java b/tests/tests/media/src/android/media/cts/InputSurface.java
index 8d5c133..5d72979 100644
--- a/tests/tests/media/src/android/media/cts/InputSurface.java
+++ b/tests/tests/media/src/android/media/cts/InputSurface.java
@@ -38,11 +38,10 @@
     private static final boolean VERBOSE = false;
 
     private static final int EGL_RECORDABLE_ANDROID = 0x3142;
-    private static final int EGL_OPENGL_ES2_BIT = 4;
 
-    private EGLDisplay mEGLDisplay;
-    private EGLContext mEGLContext;
-    private EGLSurface mEGLSurface;
+    private EGLDisplay mEGLDisplay = EGL14.EGL_NO_DISPLAY;
+    private EGLContext mEGLContext = EGL14.EGL_NO_CONTEXT;
+    private EGLSurface mEGLSurface = EGL14.EGL_NO_SURFACE;
 
     private Surface mSurface;
 
@@ -72,13 +71,13 @@
             throw new RuntimeException("unable to initialize EGL14");
         }
 
-        // Configure EGL for pbuffer and OpenGL ES 2.0.  We want enough RGB bits
-        // to be able to tell if the frame is reasonable.
+        // Configure EGL for recordable and OpenGL ES 2.0.  We want enough RGB bits
+        // to minimize artifacts from possible YUV conversion.
         int[] attribList = {
                 EGL14.EGL_RED_SIZE, 8,
                 EGL14.EGL_GREEN_SIZE, 8,
                 EGL14.EGL_BLUE_SIZE, 8,
-                EGL14.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+                EGL14.EGL_RENDERABLE_TYPE, EGL14.EGL_OPENGL_ES2_BIT,
                 EGL_RECORDABLE_ANDROID, 1,
                 EGL14.EGL_NONE
         };
@@ -118,21 +117,18 @@
      * Surface that was passed to our constructor.
      */
     public void release() {
-        if (EGL14.eglGetCurrentContext().equals(mEGLContext)) {
-            // Clear the current context and surface to ensure they are discarded immediately.
-            EGL14.eglMakeCurrent(mEGLDisplay, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE,
-                    EGL14.EGL_NO_CONTEXT);
+        if (mEGLDisplay != EGL14.EGL_NO_DISPLAY) {
+            EGL14.eglDestroySurface(mEGLDisplay, mEGLSurface);
+            EGL14.eglDestroyContext(mEGLDisplay, mEGLContext);
+            EGL14.eglReleaseThread();
+            EGL14.eglTerminate(mEGLDisplay);
         }
-        EGL14.eglDestroySurface(mEGLDisplay, mEGLSurface);
-        EGL14.eglDestroyContext(mEGLDisplay, mEGLContext);
-        //EGL14.eglTerminate(mEGLDisplay);
 
         mSurface.release();
 
-        // null everything out so future attempts to use this object will cause an NPE
-        mEGLDisplay = null;
-        mEGLContext = null;
-        mEGLSurface = null;
+        mEGLDisplay = EGL14.EGL_NO_DISPLAY;
+        mEGLContext = EGL14.EGL_NO_CONTEXT;
+        mEGLSurface = EGL14.EGL_NO_SURFACE;
 
         mSurface = null;
     }
@@ -146,6 +142,13 @@
         }
     }
 
+    public void makeUnCurrent() {
+        if (!EGL14.eglMakeCurrent(mEGLDisplay, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE,
+                EGL14.EGL_NO_CONTEXT)) {
+            throw new RuntimeException("eglMakeCurrent failed");
+        }
+    }
+
     /**
      * Calls eglSwapBuffers.  Use this to "publish" the current frame.
      */
@@ -161,6 +164,24 @@
     }
 
     /**
+     * Queries the surface's width.
+     */
+    public int getWidth() {
+        int[] value = new int[1];
+        EGL14.eglQuerySurface(mEGLDisplay, mEGLSurface, EGL14.EGL_WIDTH, value, 0);
+        return value[0];
+    }
+
+    /**
+     * Queries the surface's height.
+     */
+    public int getHeight() {
+        int[] value = new int[1];
+        EGL14.eglQuerySurface(mEGLDisplay, mEGLSurface, EGL14.EGL_HEIGHT, value, 0);
+        return value[0];
+    }
+
+    /**
      * Sends the presentation time stamp to EGL.  Time is expressed in nanoseconds.
      */
     public void setPresentationTime(long nsecs) {
@@ -171,14 +192,9 @@
      * Checks for EGL errors.
      */
     private void checkEglError(String msg) {
-        boolean failed = false;
         int error;
-        while ((error = EGL14.eglGetError()) != EGL14.EGL_SUCCESS) {
-            Log.e(TAG, msg + ": EGL error: 0x" + Integer.toHexString(error));
-            failed = true;
-        }
-        if (failed) {
-            throw new RuntimeException("EGL error encountered (see log)");
+        if ((error = EGL14.eglGetError()) != EGL14.EGL_SUCCESS) {
+            throw new RuntimeException(msg + ": EGL error: 0x" + Integer.toHexString(error));
         }
     }
 }
diff --git a/tests/tests/media/src/android/media/cts/MediaCodecListTest.java b/tests/tests/media/src/android/media/cts/MediaCodecListTest.java
index 0973c1a..3428e86 100644
--- a/tests/tests/media/src/android/media/cts/MediaCodecListTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaCodecListTest.java
@@ -241,6 +241,7 @@
         list.add(new CodecType("video/3gpp", true));            // h263 encoder
         list.add(new CodecType("video/mp4v-es", false));        // m4v decoder
         list.add(new CodecType("video/x-vnd.on2.vp8", false));  // vp8 decoder
+        list.add(new CodecType("video/x-vnd.on2.vp9", false));  // vp9 decoder
 
         return list;
     }
diff --git a/tests/tests/media/src/android/media/cts/MediaPlayerFlakyNetworkTest.java b/tests/tests/media/src/android/media/cts/MediaPlayerFlakyNetworkTest.java
index 10a563c..8063cbb 100644
--- a/tests/tests/media/src/android/media/cts/MediaPlayerFlakyNetworkTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaPlayerFlakyNetworkTest.java
@@ -63,7 +63,7 @@
         releaseHttpServer();
         super.tearDown();
     }
-/* disable the whole tests until someone could fix it.
+
     public void test_S0P0() throws Throwable {
         doPlayStreams(0, 0);
     }
@@ -91,7 +91,7 @@
     public void test_S6P00002() throws Throwable {
         doPlayStreams(6, 0.00002f);
     }
-*/
+
    private void doPlayStreams(int seed, float probability) throws Throwable {
         Random random = new Random(seed);
         createHttpServer(seed, probability);
@@ -309,8 +309,7 @@
                     try {
                         float random = mRandom.nextFloat();
                         if (random < probability) {
-                            // TODO restore 1000 to 6000 after fixing 6770717
-                            int sleepTimeMs = 1000 + mRandom.nextInt(500);
+                            int sleepTimeMs = 1000 + mRandom.nextInt(5000);
                             Thread.sleep(sleepTimeMs);
                             flush();
                         } else if (random < probability * 100) {
diff --git a/tests/tests/media/src/android/media/cts/OutputSurface.java b/tests/tests/media/src/android/media/cts/OutputSurface.java
index 5274627..fd36d80 100644
--- a/tests/tests/media/src/android/media/cts/OutputSurface.java
+++ b/tests/tests/media/src/android/media/cts/OutputSurface.java
@@ -18,24 +18,13 @@
 
 import android.graphics.SurfaceTexture;
 import android.opengl.EGL14;
-import android.opengl.GLES20;
-import android.opengl.GLES11Ext;
-import android.opengl.GLSurfaceView;
-import android.opengl.Matrix;
+import android.opengl.EGLConfig;
+import android.opengl.EGLContext;
+import android.opengl.EGLDisplay;
+import android.opengl.EGLSurface;
 import android.util.Log;
 import android.view.Surface;
 
-import java.nio.ByteBuffer;
-
-import javax.microedition.khronos.egl.EGL10;
-import javax.microedition.khronos.egl.EGLConfig;
-import javax.microedition.khronos.egl.EGLContext;
-import javax.microedition.khronos.egl.EGLDisplay;
-import javax.microedition.khronos.egl.EGLSurface;
-import javax.microedition.khronos.opengles.GL;
-import javax.microedition.khronos.opengles.GL10;
-
-
 
 /**
  * Holds state associated with a Surface used for MediaCodec decoder output.
@@ -56,12 +45,9 @@
     private static final String TAG = "OutputSurface";
     private static final boolean VERBOSE = false;
 
-    private static final int EGL_OPENGL_ES2_BIT = 4;
-
-    private EGL10 mEGL;
-    private EGLDisplay mEGLDisplay;
-    private EGLContext mEGLContext;
-    private EGLSurface mEGLSurface;
+    private EGLDisplay mEGLDisplay = EGL14.EGL_NO_DISPLAY;
+    private EGLContext mEGLContext = EGL14.EGL_NO_CONTEXT;
+    private EGLSurface mEGLSurface = EGL14.EGL_NO_SURFACE;
 
     private SurfaceTexture mSurfaceTexture;
     private Surface mSurface;
@@ -88,8 +74,8 @@
     }
 
     /**
-     * Creates an OutputSurface using the current EGL context.  Creates a Surface that can be
-     * passed to MediaCodec.configure().
+     * Creates an OutputSurface using the current EGL context (rather than establishing a
+     * new one).  Creates a Surface that can be passed to MediaCodec.configure().
      */
     public OutputSurface() {
         setup();
@@ -130,35 +116,40 @@
      * Prepares EGL.  We want a GLES 2.0 context and a surface that supports pbuffer.
      */
     private void eglSetup(int width, int height) {
-        mEGL = (EGL10)EGLContext.getEGL();
-        mEGLDisplay = mEGL.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
-        if (!mEGL.eglInitialize(mEGLDisplay, null)) {
-            throw new RuntimeException("unable to initialize EGL10");
+        mEGLDisplay = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY);
+        if (mEGLDisplay == EGL14.EGL_NO_DISPLAY) {
+            throw new RuntimeException("unable to get EGL14 display");
+        }
+        int[] version = new int[2];
+        if (!EGL14.eglInitialize(mEGLDisplay, version, 0, version, 1)) {
+            mEGLDisplay = null;
+            throw new RuntimeException("unable to initialize EGL14");
         }
 
         // Configure EGL for pbuffer and OpenGL ES 2.0.  We want enough RGB bits
         // to be able to tell if the frame is reasonable.
         int[] attribList = {
-                EGL10.EGL_RED_SIZE, 8,
-                EGL10.EGL_GREEN_SIZE, 8,
-                EGL10.EGL_BLUE_SIZE, 8,
-                EGL10.EGL_SURFACE_TYPE, EGL10.EGL_PBUFFER_BIT,
-                EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
-                EGL10.EGL_NONE
+                EGL14.EGL_RED_SIZE, 8,
+                EGL14.EGL_GREEN_SIZE, 8,
+                EGL14.EGL_BLUE_SIZE, 8,
+                EGL14.EGL_RENDERABLE_TYPE, EGL14.EGL_OPENGL_ES2_BIT,
+                EGL14.EGL_SURFACE_TYPE, EGL14.EGL_PBUFFER_BIT,
+                EGL14.EGL_NONE
         };
         EGLConfig[] configs = new EGLConfig[1];
         int[] numConfigs = new int[1];
-        if (!mEGL.eglChooseConfig(mEGLDisplay, attribList, configs, 1, numConfigs)) {
-            throw new RuntimeException("unable to find RGB888+pbuffer EGL config");
+        if (!EGL14.eglChooseConfig(mEGLDisplay, attribList, 0, configs, 0, configs.length,
+                numConfigs, 0)) {
+            throw new RuntimeException("unable to find RGB888+recordable ES2 EGL config");
         }
 
         // Configure context for OpenGL ES 2.0.
         int[] attrib_list = {
                 EGL14.EGL_CONTEXT_CLIENT_VERSION, 2,
-                EGL10.EGL_NONE
+                EGL14.EGL_NONE
         };
-        mEGLContext = mEGL.eglCreateContext(mEGLDisplay, configs[0], EGL10.EGL_NO_CONTEXT,
-                attrib_list);
+        mEGLContext = EGL14.eglCreateContext(mEGLDisplay, configs[0], EGL14.EGL_NO_CONTEXT,
+                attrib_list, 0);
         checkEglError("eglCreateContext");
         if (mEGLContext == null) {
             throw new RuntimeException("null context");
@@ -167,11 +158,11 @@
         // Create a pbuffer surface.  By using this for output, we can use glReadPixels
         // to test values in the output.
         int[] surfaceAttribs = {
-                EGL10.EGL_WIDTH, width,
-                EGL10.EGL_HEIGHT, height,
-                EGL10.EGL_NONE
+                EGL14.EGL_WIDTH, width,
+                EGL14.EGL_HEIGHT, height,
+                EGL14.EGL_NONE
         };
-        mEGLSurface = mEGL.eglCreatePbufferSurface(mEGLDisplay, configs[0], surfaceAttribs);
+        mEGLSurface = EGL14.eglCreatePbufferSurface(mEGLDisplay, configs[0], surfaceAttribs, 0);
         checkEglError("eglCreatePbufferSurface");
         if (mEGLSurface == null) {
             throw new RuntimeException("surface was null");
@@ -182,15 +173,11 @@
      * Discard all resources held by this class, notably the EGL context.
      */
     public void release() {
-        if (mEGL != null) {
-            if (mEGL.eglGetCurrentContext().equals(mEGLContext)) {
-                // Clear the current context and surface to ensure they are discarded immediately.
-                mEGL.eglMakeCurrent(mEGLDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE,
-                        EGL10.EGL_NO_CONTEXT);
-            }
-            mEGL.eglDestroySurface(mEGLDisplay, mEGLSurface);
-            mEGL.eglDestroyContext(mEGLDisplay, mEGLContext);
-            //mEGL.eglTerminate(mEGLDisplay);
+        if (mEGLDisplay != EGL14.EGL_NO_DISPLAY) {
+            EGL14.eglDestroySurface(mEGLDisplay, mEGLSurface);
+            EGL14.eglDestroyContext(mEGLDisplay, mEGLContext);
+            EGL14.eglReleaseThread();
+            EGL14.eglTerminate(mEGLDisplay);
         }
 
         mSurface.release();
@@ -199,11 +186,9 @@
         //  W BufferQueue: [unnamed-3997-2] cancelBuffer: BufferQueue has been abandoned!
         //mSurfaceTexture.release();
 
-        // null everything out so future attempts to use this object will cause an NPE
-        mEGLDisplay = null;
-        mEGLContext = null;
-        mEGLSurface = null;
-        mEGL = null;
+        mEGLDisplay = EGL14.EGL_NO_DISPLAY;
+        mEGLContext = EGL14.EGL_NO_CONTEXT;
+        mEGLSurface = EGL14.EGL_NO_SURFACE;
 
         mTextureRender = null;
         mSurface = null;
@@ -214,11 +199,7 @@
      * Makes our EGL context and surface current.
      */
     public void makeCurrent() {
-        if (mEGL == null) {
-            throw new RuntimeException("not configured for makeCurrent");
-        }
-        checkEglError("before makeCurrent");
-        if (!mEGL.eglMakeCurrent(mEGLDisplay, mEGLSurface, mEGLSurface, mEGLContext)) {
+        if (!EGL14.eglMakeCurrent(mEGLDisplay, mEGLSurface, mEGLSurface, mEGLContext)) {
             throw new RuntimeException("eglMakeCurrent failed");
         }
     }
@@ -291,14 +272,9 @@
      * Checks for EGL errors.
      */
     private void checkEglError(String msg) {
-        boolean failed = false;
         int error;
-        while ((error = mEGL.eglGetError()) != EGL10.EGL_SUCCESS) {
-            Log.e(TAG, msg + ": EGL error: 0x" + Integer.toHexString(error));
-            failed = true;
-        }
-        if (failed) {
-            throw new RuntimeException("EGL error encountered (see log)");
+        if ((error = EGL14.eglGetError()) != EGL14.EGL_SUCCESS) {
+            throw new RuntimeException(msg + ": EGL error: 0x" + Integer.toHexString(error));
         }
     }
 }
diff --git a/tests/tests/media/src/android/media/cts/PresentationSyncTest.java b/tests/tests/media/src/android/media/cts/PresentationSyncTest.java
new file mode 100644
index 0000000..2846602
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/PresentationSyncTest.java
@@ -0,0 +1,405 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package android.media.cts;
+
+import android.opengl.GLES20;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.Trace;
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.suitebuilder.annotation.Suppress;
+import android.util.Log;
+import android.view.Choreographer;
+import android.view.SurfaceHolder;
+
+
+/**
+ * Tests synchronized frame presentation.
+ *
+ * SurfaceFlinger allows a "desired presentation time" value to be passed along with buffers of
+ * data.  This exercises that feature.
+ */
+public class PresentationSyncTest extends ActivityInstrumentationTestCase2<MediaStubActivity>
+        implements SurfaceHolder.Callback {
+    private static final String TAG = "RenderSyncTest";
+    private static final boolean VERBOSE = false;           // lots of logging
+    private static final int FRAME_COUNT = 128;             // ~2 sec @ 60fps
+
+    // message values
+    private static final int START_TEST = 0;
+    private static final int END_TEST = 1;
+
+    // width and height of the Surface we're given to draw on
+    private int mWidth;
+    private int mHeight;
+
+    public PresentationSyncTest() {
+        super(MediaStubActivity.class);
+    }
+
+    /**
+     * Tests whether the output frame rate can be limited by the presentation time.
+     * <p>
+     * Generates and displays the same series of images three times.  The first run uses "now"
+     * as the desired presentation time to establish an estimate of the refresh time.  Later
+     * runs set the presentation time to (start_time + frame_number * refresh_time * multiplier),
+     * with the expectation that a multiplier of 2 will cause the animation to render at
+     * half speed.
+     * <p>
+     * This test does not use Choreographer.  The longer the test runs, the farther out of
+     * phase the test will become with respect to the actual vsync timing.
+     * <p>
+     * Setting the presentation time for a frame is most easily done through an EGL extension,
+     * so we render each frame through GL.
+     *
+     * @throws Exception
+     */
+    //@Suppress
+    public void testThroughput() throws Exception {
+        // Get the Surface from the SurfaceView.
+        // TODO: is it safe to assume that it's ready?
+        SurfaceHolder holder = getActivity().getSurfaceHolder();
+        holder.addCallback(this);
+
+        // We use the width/height to render a simple series of patterns.  If we get this
+        // wrong it shouldn't really matter -- some driver optimizations might make things
+        // faster, but it shouldn't affect how long it takes the frame to be displayed.
+        //
+        // We can get this from the View or from the EGLSurface.  We don't have easy direct
+        // access to any of those things, so just ask our InputSurface to get it from EGL,
+        // since that's where we're drawing.
+        //
+        // Note: InputSurface was intended for a different purpose, but it's 99% right for our
+        // needs.  Maybe rename it to "RecordableSurface"?  Or trivially wrap it with a
+        // subclass that suppresses the EGL_RECORDABLE_ANDROID flag?
+        InputSurface output = new InputSurface(holder.getSurface());
+        mWidth = output.getWidth();
+        mHeight = output.getHeight();
+        Log.d(TAG, "Surface w=" + mWidth + " h=" + mHeight);
+        output.makeCurrent();
+
+        // Run a test with no presentation times specified.  Assuming nothing else is
+        // fighting us for resources, all frames should display as quickly as possible,
+        // and we can estimate the refresh rate of the device.
+        long baseTimeNsec = runThroughputTest(output, 0L, -1);
+        long refreshNsec = baseTimeNsec / FRAME_COUNT;
+        Log.i(TAG, "Using " + refreshNsec + "ns as refresh rate");
+
+        // Run tests with times specified, at 1x, 1/2x, and 1/4x speed.
+        runThroughputTest(output, refreshNsec, 1);
+        runThroughputTest(output, refreshNsec, 2);
+        runThroughputTest(output, refreshNsec, 4);
+
+        output.release();
+    }
+
+    /**
+     * Runs the throughput test on the provided surface with the specified time values.
+     * <p>
+     * If mult is -1, the test runs in "training" mode, rendering frames as quickly as
+     * possible.  This can be used to establish a baseline.
+     * <p>
+     * @return the test duration, in nanoseconds
+     */
+    private long runThroughputTest(InputSurface output, long frameTimeNsec, int mult) {
+        Log.d(TAG, "runThroughputTest: " + mult);
+        long startNsec = System.nanoTime();
+        long showNsec = 0;
+
+        if (true) {
+            // Output a frame that creates a "marker" in the --latency output
+            drawFrame(0, mult);
+            output.setPresentationTime(startNsec - 16700000L * 100);
+            Trace.beginSection("TEST BEGIN");
+            output.swapBuffers();
+            Trace.endSection();
+            startNsec = System.nanoTime();
+        }
+
+        for (int frameNum = 0; frameNum < FRAME_COUNT; frameNum++) {
+            if (mult != -1) {
+                showNsec = startNsec + frameNum * frameTimeNsec * mult;
+                //Log.d(TAG, "showNsec=" + showNsec);
+            }
+            drawFrame(frameNum, mult);
+            output.setPresentationTime(showNsec);
+            //Log.d(TAG, "ZZZ des=" + showNsec + " now=" + System.nanoTime());
+            Trace.beginSection("swapbuf " + frameNum);
+            output.swapBuffers();
+            Trace.endSection();
+        }
+
+        long endNsec = System.nanoTime();
+        long actualNsec = endNsec - startNsec;
+
+        if (mult != -1) {
+            // Some variation is inevitable, but we should be within a few percent of expected.
+            long expectedNsec = frameTimeNsec * FRAME_COUNT * mult;
+            long deltaNsec = Math.abs(expectedNsec - actualNsec);
+            double delta = (double) deltaNsec / expectedNsec;
+            if (delta > 0.1) {
+                Log.e(TAG, "mult=" + mult + ": expected=" + expectedNsec +
+                        " actual=" + actualNsec + " p=" + delta);
+                // TODO: fail() instead of Log()
+            } else {
+                Log.d(TAG, "mult=" + mult + ": expected=" + expectedNsec +
+                        " actual=" + actualNsec + " p=" + delta);
+            }
+        }
+        return endNsec - startNsec;
+    }
+
+
+    /**
+     * Exercises the test code, driving it off of Choreographer.  The animation is driven at
+     * full speed, but with rendering requested at a future time.  With each run the distance
+     * into the future is increased.
+     * <p>
+     * Loopers can't be reused once they quit, so it's easiest to create a new thread for
+     * each run.
+     * <p>
+     * (This isn't exactly a test -- it's primarily a way to exercise the code.  Evaluate the
+     * results with "dumpsys SurfaceFlinger --latency SurfaceView" for each multiplier.
+     * The idea is to see frames where the desired-present is as close as possible to the
+     * actual-present, while still minimizing frame-ready.  If we go too far into the future
+     * the BufferQueue will start to back up.)
+     * <p>
+     * @throws Exception
+     */
+    @Suppress
+    public void testChoreographed() throws Throwable {
+        // Get the Surface from the SurfaceView.
+        // TODO: is it safe to assume that it's ready?
+        SurfaceHolder holder = getActivity().getSurfaceHolder();
+        holder.addCallback(this);
+
+        InputSurface output = new InputSurface(holder.getSurface());
+        mWidth = output.getWidth();
+        mHeight = output.getHeight();
+        Log.d(TAG, "Surface w=" + mWidth + " h=" + mHeight);
+
+        for (int i = 1; i < 5; i++) {
+            ChoreographedWrapper.runTest(this, output, i);
+        }
+
+        output.release();
+    }
+
+    /**
+     * Shifts the test to a new thread, so we can manage our own Looper.  Any exception
+     * thrown on the new thread is propagated to the caller.
+     */
+    private static class ChoreographedWrapper implements Runnable {
+        private final PresentationSyncTest mTest;
+        private final InputSurface mOutput;
+        private final int mFrameDelay;
+        private Throwable mThrowable;
+
+        private ChoreographedWrapper(PresentationSyncTest test, InputSurface output,
+                int frameDelay) {
+            mTest = test;
+            mOutput = output;
+            mFrameDelay = frameDelay;
+        }
+
+        @Override
+        public void run() {
+            try {
+                mTest.runChoreographedTest(mOutput, mFrameDelay);
+            } catch (Throwable th) {
+                mThrowable = th;
+            }
+        }
+
+        /** Entry point. */
+        public static void runTest(PresentationSyncTest obj, InputSurface output,
+                int frameDelay) throws Throwable {
+            ChoreographedWrapper wrapper = new ChoreographedWrapper(obj, output, frameDelay);
+            Thread th = new Thread(wrapper, "sync test");
+            th.start();
+            th.join();
+            if (wrapper.mThrowable != null) {
+                throw wrapper.mThrowable;
+            }
+        }
+    }
+
+    /**
+     * Runs the test, driven by callbacks from the Looper we define here.
+     */
+    private void runChoreographedTest(InputSurface output, int frameDelay) {
+        Log.d(TAG, "runChoreographedTest");
+
+        output.makeCurrent();
+        final ChoRunner chore = new ChoRunner(output);
+
+        Looper.prepare();
+        Handler handler = new Handler() {
+            @Override
+            public void handleMessage(Message msg) {
+                switch (msg.what) {
+                    case START_TEST:
+                        Log.d(TAG, "Starting test");
+                        chore.start(this, msg.arg1 /*frameDelay*/);
+                        break;
+                    case END_TEST:
+                        Log.d(TAG, "Ending test");
+                        Looper.myLooper().quitSafely();
+                        break;
+                    default:
+                        Log.d(TAG, "unknown message " + msg.what);
+                        break;
+                }
+            }
+        };
+
+        handler.sendMessage(Message.obtain(handler, START_TEST, frameDelay, 0));
+
+        Log.d(TAG, "looping (frameDelay=" + frameDelay + ")");
+        long startNanos = System.nanoTime();
+        Trace.beginSection("TEST BEGIN fd=" + frameDelay);
+        Looper.loop();
+        Trace.endSection();
+        long durationNanos = System.nanoTime() - startNanos;
+        Log.d(TAG, "loop exiting after " + durationNanos +
+                " (" + durationNanos / FRAME_COUNT + "ns)");
+
+        output.makeUnCurrent();
+    }
+
+
+    private class ChoRunner implements Choreographer.FrameCallback {
+        private final InputSurface mOutput;
+        private int mFrameDelay;
+        private Handler mHandler;
+        private int mCurFrame;
+        private Choreographer mChocho;
+        private long mPrevFrameTimeNanos;
+        private long mFrameDiff;
+
+        public ChoRunner(InputSurface output) {
+            mOutput = output;
+        }
+
+        public void start(Handler handler, int frameDelay) {
+            mHandler = handler;
+            mFrameDelay = frameDelay;
+
+            mCurFrame = 0;
+            mChocho = Choreographer.getInstance();
+            mChocho.postFrameCallback(this);
+        }
+
+        @Override
+        public void doFrame(long frameTimeNanos) {
+            if (mPrevFrameTimeNanos != 0) {
+                // Update our vsync rate guess every frame so that, if we start with a
+                // stutter, we don't carry it for the whole test.
+                assertTrue(frameTimeNanos > mPrevFrameTimeNanos);
+                long prevDiff = frameTimeNanos - mPrevFrameTimeNanos;
+                if (mFrameDiff == 0 || mFrameDiff > prevDiff) {
+                    mFrameDiff = prevDiff;
+                    Log.d(TAG, "refresh rate approx " + mFrameDiff + "ns");
+                }
+
+                // If the current diff is >= 2x the expected frame time diff, we stuttered
+                // and need to drop a frame.  (We might even need to drop more than one
+                // frame; ignoring that for now.)
+                if (prevDiff > mFrameDiff * 1.9) {
+                    Log.d(TAG, "skip " + mCurFrame + " diff=" + prevDiff);
+                    mCurFrame++;
+                }
+            }
+            mPrevFrameTimeNanos = frameTimeNanos;
+
+            if (mFrameDiff != 0) {
+                // set desired display time to N frames in the future, rather than ASAP.
+                //
+                // Note this is a "don't open until Xmas" feature.  If vsyncs are happening
+                // at times T1, T2, T3, and we want the frame to appear onscreen when the
+                // buffers flip at T2, then we can theoretically request any time value
+                // in [T1, T2).
+                mOutput.setPresentationTime(frameTimeNanos + (mFrameDiff * mFrameDelay));
+            }
+
+            drawFrame(mCurFrame, mFrameDelay);
+            Trace.beginSection("swapbuf " + mCurFrame);
+            mOutput.swapBuffers();
+            Trace.endSection();
+
+            if (++mCurFrame < FRAME_COUNT) {
+                mChocho.postFrameCallback(this);
+            } else {
+                mHandler.sendMessage(Message.obtain(mHandler, END_TEST));
+            }
+        }
+    }
+
+    /**
+     * Draws a frame with GLES in the current context.
+     */
+    private void drawFrame(int num, int mult) {
+        num %= 64;
+        float colorVal;
+
+        if (mult > 0) {
+            colorVal = 1.0f / mult;
+        } else {
+            colorVal = 0.1f;
+        }
+
+        int startX, startY;
+        startX = (num % 16) * (mWidth / 16);
+        startY = (num / 16) * (mHeight / 4);
+        if ((num >= 16 && num < 32) || (num >= 48)) {
+            // reverse direction
+            startX = (mWidth - mWidth/16) - startX;
+        }
+
+        // clear screen
+        GLES20.glClearColor(0.2f, 0.2f, 0.2f, 1.0f);
+        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
+
+        // draw rect
+        GLES20.glEnable(GLES20.GL_SCISSOR_TEST);
+        GLES20.glScissor(startX, startY, mWidth / 16, mHeight / 4);
+        GLES20.glClearColor(colorVal, 1 - colorVal, 0.0f, 1.0f);
+        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
+        GLES20.glDisable(GLES20.GL_SCISSOR_TEST);
+    }
+
+    @Override
+    public void surfaceCreated(SurfaceHolder holder) {
+        Log.d(TAG, "surfaceCreated");
+    }
+
+    @Override
+    public void surfaceChanged(SurfaceHolder holder, int format, int width,
+            int height) {
+        // This doesn't seem to happen in practice with current test framework -- Surface is
+        // already created before we start, and the orientation is locked.
+        Log.d(TAG, "surfaceChanged f=" + format + " w=" + width + " h=" + height);
+        mWidth = width;
+        mHeight = height;
+    }
+
+    @Override
+    public void surfaceDestroyed(SurfaceHolder holder) {
+        Log.d(TAG, "surfaceDestroyed");
+    }
+}
diff --git a/tests/tests/media/src/android/media/cts/TextureRender.java b/tests/tests/media/src/android/media/cts/TextureRender.java
index eb4236c..4125dcf 100644
--- a/tests/tests/media/src/android/media/cts/TextureRender.java
+++ b/tests/tests/media/src/android/media/cts/TextureRender.java
@@ -16,17 +16,17 @@
 
 package android.media.cts;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import java.nio.FloatBuffer;
 
-import javax.microedition.khronos.egl.EGLConfig;
-import javax.microedition.khronos.opengles.GL10;
-
+import android.graphics.Bitmap;
 import android.graphics.SurfaceTexture;
 import android.opengl.GLES11Ext;
 import android.opengl.GLES20;
-import android.opengl.GLSurfaceView;
 import android.opengl.Matrix;
 import android.util.Log;
 
@@ -44,9 +44,9 @@
     private final float[] mTriangleVerticesData = {
         // X, Y, Z, U, V
         -1.0f, -1.0f, 0, 0.f, 0.f,
-        1.0f, -1.0f, 0, 1.f, 0.f,
+         1.0f, -1.0f, 0, 1.f, 0.f,
         -1.0f,  1.0f, 0, 0.f, 1.f,
-        1.0f,  1.0f, 0, 1.f, 1.f,
+         1.0f,  1.0f, 0, 1.f, 1.f,
     };
 
     private FloatBuffer mTriangleVertices;
@@ -245,4 +245,58 @@
             throw new RuntimeException(op + ": glError " + error);
         }
     }
+
+    /**
+     * Saves the current frame to disk as a PNG image.  Frame starts from (0,0).
+     * <p>
+     * Useful for debugging.
+     */
+    public static void saveFrame(String filename, int width, int height) {
+        // glReadPixels gives us a ByteBuffer filled with what is essentially big-endian RGBA
+        // data (i.e. a byte of red, followed by a byte of green...).  We need an int[] filled
+        // with native-order ARGB data to feed to Bitmap.
+        //
+        // If we implement this as a series of buf.get() calls, we can spend 2.5 seconds just
+        // copying data around for a 720p frame.  It's better to do a bulk get() and then
+        // rearrange the data in memory.  (For comparison, the PNG compress takes about 500ms
+        // for a trivial frame.)
+        //
+        // So... we set the ByteBuffer to little-endian, which should turn the bulk IntBuffer
+        // get() into a straight memcpy on most Android devices.  Our ints will hold ABGR data.
+        // Swapping B and R gives us ARGB.  We need about 30ms for the bulk get(), and another
+        // 270ms for the color swap.
+        //
+        // Making this even more interesting is the upside-down nature of GL, which means we
+        // may want to flip the image vertically here.
+
+        ByteBuffer buf = ByteBuffer.allocateDirect(width * height * 4);
+        buf.order(ByteOrder.LITTLE_ENDIAN);
+        GLES20.glReadPixels(0, 0, width, height, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buf);
+        buf.rewind();
+
+        int pixelCount = width * height;
+        int[] colors = new int[pixelCount];
+        buf.asIntBuffer().get(colors);
+        for (int i = 0; i < pixelCount; i++) {
+            int c = colors[i];
+            colors[i] = (c & 0xff00ff00) | ((c & 0x00ff0000) >> 16) | ((c & 0x000000ff) << 16);
+        }
+
+        FileOutputStream fos = null;
+        try {
+            fos = new FileOutputStream(filename);
+            Bitmap bmp = Bitmap.createBitmap(colors, width, height, Bitmap.Config.ARGB_8888);
+            bmp.compress(Bitmap.CompressFormat.PNG, 90, fos);
+            bmp.recycle();
+        } catch (IOException ioe) {
+            throw new RuntimeException("Failed to write file " + filename, ioe);
+        } finally {
+            try {
+                if (fos != null) fos.close();
+            } catch (IOException ioe2) {
+                throw new RuntimeException("Failed to close file " + filename, ioe2);
+            }
+        }
+        Log.d(TAG, "Saved " + width + "x" + height + " frame as '" + filename + "'");
+    }
 }
diff --git a/tests/tests/media/src/android/media/cts/Vp8EncoderTest.java b/tests/tests/media/src/android/media/cts/Vp8EncoderTest.java
index 308fb98..c2f0c32 100644
--- a/tests/tests/media/src/android/media/cts/Vp8EncoderTest.java
+++ b/tests/tests/media/src/android/media/cts/Vp8EncoderTest.java
@@ -40,8 +40,8 @@
 
     private static final String TAG = "VP8EncoderTest";
     private static final String VP8_MIME = "video/x-vnd.on2.vp8";
-    private static final String VPX_DECODER_NAME = "OMX.google.vpx.decoder";
-    private static final String VPX_ENCODER_NAME = "OMX.google.vpx.encoder";
+    private static final String VPX_DECODER_NAME = "OMX.google.vp8.decoder";
+    private static final String VPX_ENCODER_NAME = "OMX.google.vp8.encoder";
     private static final String BASIC_IVF = "video_176x144_vp8_basic.ivf";
     private static final long DEFAULT_TIMEOUT_US = 5000;
 
diff --git a/tests/tests/nativeopengl/libnativeopengltests/Android.mk b/tests/tests/nativeopengl/libnativeopengltests/Android.mk
index c9e10c4..e2bb08a 100644
--- a/tests/tests/nativeopengl/libnativeopengltests/Android.mk
+++ b/tests/tests/nativeopengl/libnativeopengltests/Android.mk
@@ -34,7 +34,8 @@
 LOCAL_SRC_FILES := \
         register.cpp \
         GLTestHelper.cpp \
-        tests/GLTest_test.cpp
+        tests/GLTest_test.cpp \
+        tests/EGLCleanup_test.cpp
 
 LOCAL_SHARED_LIBRARIES := libEGL \
                           libGLESv2 \
diff --git a/tests/tests/nativeopengl/standalone/jni/Android.mk b/tests/tests/nativeopengl/standalone/jni/Android.mk
index c23a1df..06a1436 100644
--- a/tests/tests/nativeopengl/standalone/jni/Android.mk
+++ b/tests/tests/nativeopengl/standalone/jni/Android.mk
@@ -41,7 +41,8 @@
 LOCAL_MODULE    := nativeopengltests
 LOCAL_SRC_FILES := GLTestHelper.cpp \
                    register.cpp \
-                   tests/GLTest_test.cpp
+                   tests/GLTest_test.cpp \
+                   tests/EGLCleanup_test.cpp
 
 LOCAL_SHARE_LIBRARIES := libgtest
 
diff --git a/tests/tests/nativeopengl/standalone/jni/tests/EGLCleanup_test.cpp b/tests/tests/nativeopengl/standalone/jni/tests/EGLCleanup_test.cpp
new file mode 100644
index 0000000..b5bd830
--- /dev/null
+++ b/tests/tests/nativeopengl/standalone/jni/tests/EGLCleanup_test.cpp
@@ -0,0 +1,344 @@
+/*
+ * 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.
+ */
+
+#define LOG_TAG "EGLCleanup"
+#include <utils/Log.h>
+#include <utils/Thread.h>
+#include <jni.h>
+
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+
+#include <gtest/gtest.h>
+
+#include <GLTestHelper.h>
+
+#include <pthread.h>
+
+
+namespace android {
+
+/**
+ * Tests EGL cleanup edge cases.
+ */
+class EGLCleanupTest : public ::testing::Test {
+protected:
+    EGLCleanupTest() {}
+
+    virtual void SetUp() {
+        // Termination of a terminated display is defined to be a no-op.
+        // Android uses a refcounted implementation, so terminate it a few
+        // times to make sure it's really dead.  Without this, we might not
+        // get all the way into the driver eglTerminate implementation
+        // when we call eglTerminate.
+        EGLDisplay disp = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+        if (disp != EGL_NO_DISPLAY) {
+            ALOGD("speculative terminate");
+            eglTerminate(disp);
+            eglTerminate(disp);
+            eglTerminate(disp);
+        }
+    }
+    virtual void TearDown() {}
+};
+
+/**
+ * Perform an operation and then start a new thread.
+ *
+ * The trick here is that some code may be helpfully releasing storage in
+ * pthread_key destructors.  Those run after the thread returns out of the
+ * initial function, but before the thread fully exits.  We want them to
+ * run concurrently with the next thread's initialization so we can confirm
+ * that the specified behavior of eglTerminate vs. eglInitialize holds.
+ */
+class ChainedThread {
+public:
+    enum TestType {
+        TEST_CORRECT,
+        TEST_NO_RELEASE_CURRENT
+    };
+
+    ChainedThread(TestType testType) : mEglDisplay(EGL_NO_DISPLAY),
+            mEglSurface(EGL_NO_SURFACE), mEglContext(EGL_NO_CONTEXT),
+            mTestType(testType), mIteration(0), mResult(true) {
+        pthread_mutex_init(&mLock, NULL);
+        pthread_cond_init(&mCond, NULL);
+    }
+    ~ChainedThread() {
+        // could get fancy and clean up the mutex
+    }
+
+    /* start here */
+    bool start() {
+        lock();
+        bool result = startThread_l();
+        unlock();
+        return result;
+    }
+
+    /* waits until test is done; when finished, call getResult() */
+    bool waitForEnd() {
+        lock();
+        int err = pthread_cond_wait(&mCond, &mLock);
+        if (err != 0) {
+            ALOGW("pthread_cond_wait failed: %d", err);
+        }
+        unlock();
+        return err == 0;
+    }
+
+    /* returns the result; true means success */
+    bool getResult() {
+        return mResult;
+    }
+
+private:
+    enum { MAX_ITERATIONS = 1000 };
+
+    EGLDisplay mEglDisplay;
+    EGLSurface mEglSurface;
+    EGLContext mEglContext;
+
+    TestType mTestType;
+    int mIteration;
+    bool mResult;
+    pthread_mutex_t mLock;
+    pthread_cond_t mCond;
+
+    // Assertions set a flag in Java and return from the current method (which
+    // must be declared to return void).  They do not throw a C++ exception.
+    //
+    // Because we're running in a separate thread, which is not attached to
+    // the VM, the assert macros don't help us much.  We could attach to the
+    // VM (by linking to libdvm.so and calling a global function), but the
+    // assertions won't cause the test to stop, which makes them less valuable.
+    //
+    // So instead we just return a boolean out of functions that can fail.
+
+    /* call this to start the test */
+    bool startThread_l() {
+        pthread_attr_t attr;
+        pthread_attr_init(&attr);
+        pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
+        pthread_t newThread;
+        int err = pthread_create(&newThread, &attr, ChainedThread::func,
+                (void*) this);
+        return (err == 0);
+    }
+
+    /* thread entry point */
+    static void* func(void* arg) {
+        ChainedThread* obj = static_cast<ChainedThread*>(arg);
+        obj->doWork();
+        return NULL;
+    }
+
+    bool lock() {
+        int err = pthread_mutex_lock(&mLock);
+        if (err != 0) {
+            ALOGW("pthread_mutex_lock failed: %d", err);
+        }
+        return err == 0;
+    }
+
+    bool unlock() {
+        int err = pthread_mutex_unlock(&mLock);
+        if (err != 0) {
+            ALOGW("pthread_mutex_unlock failed: %d", err);
+        }
+        return err == 0;
+    }
+
+    /* main worker */
+    void doWork() {
+        lock();
+
+        if ((mIteration % 25) == 0) {
+            ALOGD("iteration %d\n", mIteration);
+        }
+
+        mIteration++;
+        bool result = runTest_l();
+        if (!result) {
+            ALOGW("failed at iteration %d, stopping test", mIteration);
+            mResult = false;
+            mIteration = MAX_ITERATIONS;
+        }
+
+        if (mIteration < MAX_ITERATIONS) {
+            // still going, try to start the next one
+            if (!startThread_l()) {
+                ALOGW("Unable to start thread at iter=%d", mIteration);
+                mResult = false;
+                mIteration = MAX_ITERATIONS;
+            }
+        }
+
+        if (mIteration >= MAX_ITERATIONS) {
+            ALOGD("Test ending, signaling main thread");
+            pthread_cond_signal(&mCond);
+        }
+
+        unlock();
+    }
+
+    /* setup, use, release EGL */
+    bool runTest_l() {
+        if (!eglSetup()) {
+            return false;
+        }
+        if (!eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface,
+                mEglContext))
+        {
+            ALOGW("eglMakeCurrent failed: 0x%x", eglGetError());
+            return false;
+        }
+        if (!eglRelease_l()) {
+            return false;
+        }
+
+        return true;
+    }
+
+    /*
+     * Sets up EGL.  Creates a 1280x720 pbuffer, which is large enough to
+     * cause a rapid and highly visible memory leak if we fail to discard it.
+     */
+    bool eglSetup() {
+        static const EGLint kConfigAttribs[] = {
+                EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
+                EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+                EGL_RED_SIZE, 8,
+                EGL_GREEN_SIZE, 8,
+                EGL_BLUE_SIZE, 8,
+                EGL_NONE
+        };
+        static const EGLint kContextAttribs[] = {
+                EGL_CONTEXT_CLIENT_VERSION, 2,
+                EGL_NONE
+        };
+        static const EGLint kPbufferAttribs[] = {
+                EGL_WIDTH, 1280,
+                EGL_HEIGHT, 720,
+                EGL_NONE
+        };
+
+        //usleep(25000);
+
+        mEglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+        if (mEglDisplay == EGL_NO_DISPLAY) {
+            ALOGW("eglGetDisplay failed: 0x%x", eglGetError());
+            return false;
+        }
+
+        EGLint majorVersion, minorVersion;
+        if (!eglInitialize(mEglDisplay, &majorVersion, &minorVersion)) {
+            ALOGW("eglInitialize failed: 0x%x", eglGetError());
+            return false;
+        }
+
+        EGLConfig eglConfig;
+        EGLint numConfigs = 0;
+        if (!eglChooseConfig(mEglDisplay, kConfigAttribs, &eglConfig,
+                1, &numConfigs)) {
+            ALOGW("eglChooseConfig failed: 0x%x", eglGetError());
+            return false;
+        }
+
+        mEglSurface = eglCreatePbufferSurface(mEglDisplay, eglConfig,
+                kPbufferAttribs);
+        if (mEglSurface == EGL_NO_SURFACE) {
+            ALOGW("eglCreatePbufferSurface failed: 0x%x", eglGetError());
+            return false;
+        }
+
+        mEglContext = eglCreateContext(mEglDisplay, eglConfig, EGL_NO_CONTEXT,
+                kContextAttribs);
+        if (mEglContext == EGL_NO_CONTEXT) {
+            ALOGW("eglCreateContext failed: 0x%x", eglGetError());
+            return false;
+        }
+
+        return true;
+    }
+
+    /*
+     * Releases EGL.  How we do that depends on the type of test we're
+     * running.
+     */
+    bool eglRelease_l() {
+        if (mEglDisplay == EGL_NO_DISPLAY) {
+            ALOGW("No display to release");
+            return false;
+        }
+
+        switch (mTestType) {
+        case TEST_CORRECT:
+            eglTerminate(mEglDisplay);
+            eglReleaseThread();
+            break;
+        case TEST_NO_RELEASE_CURRENT:
+            eglDestroyContext(mEglDisplay, mEglContext);
+            eglDestroySurface(mEglDisplay, mEglSurface);
+            eglTerminate(mEglDisplay);
+            break;
+        default:
+            ALOGE("Unknown test type %d", mTestType);
+            break;
+        }
+
+        int err = eglGetError();
+        if (err != EGL_SUCCESS) {
+            ALOGW("eglRelease failed: 0x%x", err);
+            return false;
+        }
+        return true;
+    }
+};
+
+
+/* do things correctly */
+TEST_F(EGLCleanupTest, TestCorrect) {
+    ALOGI("Starting TEST_CORRECT");
+    ChainedThread cht(ChainedThread::TEST_CORRECT);
+
+    // start initial thread
+    ASSERT_TRUE(cht.start());
+
+    // wait for the end
+    cht.waitForEnd();
+    bool result = cht.getResult();
+    ASSERT_TRUE(result);
+}
+
+#if 0
+/* try it without un-currenting the surfaces and context */
+TEST_F(EGLCleanupTest, TestNoReleaseCurrent) {
+    ALOGI("Starting TEST_NO_RELEASE_CURRENT");
+    ChainedThread cht(ChainedThread::TEST_NO_RELEASE_CURRENT);
+
+    // start initial thread
+    ASSERT_TRUE(cht.start());
+
+    // wait for the end
+    cht.waitForEnd();
+    bool result = cht.getResult();
+    ASSERT_TRUE(result);
+}
+#endif
+
+} // namespace android
diff --git a/tests/tests/net/src/android/net/cts/DnsTest.java b/tests/tests/net/src/android/net/cts/DnsTest.java
new file mode 100644
index 0000000..cdd95aa
--- /dev/null
+++ b/tests/tests/net/src/android/net/cts/DnsTest.java
@@ -0,0 +1,237 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package android.net.cts;
+
+import android.os.SystemClock;
+import android.test.AndroidTestCase;
+import android.util.Log;
+
+import java.net.Inet4Address;
+import java.net.Inet6Address;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+
+public class DnsTest extends AndroidTestCase {
+
+    static {
+        System.loadLibrary("nativedns_jni");
+    }
+
+    private static final boolean DBG = false;
+    private static final String TAG = "DnsTest";
+
+    /**
+     * @return true on success
+     */
+    private static native boolean testNativeDns();
+
+    /**
+     * Verify:
+     * DNS works - forwards and backwards, giving ipv4 and ipv6
+     * Test that DNS work on v4 and v6 networks
+     * Test Native dns calls (4)
+     * Todo:
+     * Cache is flushed when we change networks
+     * have per-network caches
+     * No cache when there's no network
+     * Perf - measure size of first and second tier caches and their effect
+     * Assert requires network permission
+     */
+    public void testDnsWorks() {
+        InetAddress addrs[] = {};
+        try {
+            addrs = InetAddress.getAllByName("www.google.com");
+        } catch (UnknownHostException e) {}
+        assertTrue(addrs.length != 0);
+        boolean foundV4 = false, foundV6 = false;
+        for (InetAddress addr : addrs) {
+            if (addr instanceof Inet4Address) foundV4 = true;
+            else if (addr instanceof Inet6Address) foundV6 = true;
+            if (DBG) Log.e(TAG, "www.google.com gave " + addr.toString());
+        }
+        assertTrue(foundV4);
+        assertTrue(foundV6);
+        try {
+            addrs = InetAddress.getAllByName("ipv6.google.com");
+        } catch (UnknownHostException e) {}
+        assertTrue(addrs.length != 0);
+        foundV4 = false;
+        foundV6 = false;
+        for (InetAddress addr : addrs) {
+            if (addr instanceof Inet4Address) foundV4 = true;
+            else if (addr instanceof Inet6Address) foundV6 = true;
+            if (DBG) Log.e(TAG, "ipv6.google.com gave " + addr.toString());
+        }
+        assertTrue(foundV4 == false);
+        assertTrue(foundV6 == true);
+        assertTrue(testNativeDns());
+    }
+
+    private static final String[] URLS = { "www.google.com", "ipv6.google.com", "www.yahoo.com",
+            "facebook.com", "youtube.com", "blogspot.com", "baidu.com", "wikipedia.org",
+// live.com fails rev lookup.
+            "twitter.com", "qq.com", "msn.com", "yahoo.co.jp", "linkedin.com",
+            "taobao.com", "google.co.in", "sina.com.cn", "amazon.com", "wordpress.com",
+            "google.co.uk", "ebay.com", "yandex.ru", "163.com", "google.co.jp", "google.fr",
+            "microsoft.com", "paypal.com", "google.com.br", "flickr.com",
+            "mail.ru", "craigslist.org", "fc2.com", "google.it",
+// "apple.com", fails rev lookup
+            "google.es",
+            "imdb.com", "google.ru", "soho.com", "bbc.co.uk", "vkontakte.ru", "ask.com",
+            "tumblr.com", "weibo.com", "go.com", "xvideos.com", "livejasmin.com", "cnn.com",
+            "youku.com", "blogspot.com", "soso.com", "google.ca", "aol.com", "tudou.com",
+            "xhamster.com", "megaupload.com", "ifeng.com", "zedo.com", "mediafire.com", "ameblo.jp",
+            "pornhub.com", "google.co.id", "godaddy.com", "adobe.com", "rakuten.co.jp", "about.com",
+            "espn.go.com", "4shared.com", "alibaba.com","ebay.de", "yieldmanager.com",
+            "wordpress.org", "livejournal.com", "google.com.tr", "google.com.mx", "renren.com",
+           "livedoor.com", "google.com.au", "youporn.com", "uol.com.br", "cnet.com", "conduit.com",
+            "google.pl", "myspace.com", "nytimes.com", "ebay.co.uk", "chinaz.com", "hao123.com",
+            "thepiratebay.org", "doubleclick.com", "alipay.com", "netflix.com", "cnzz.com",
+            "huffingtonpost.com", "twitpic.com", "weather.com", "babylon.com", "amazon.de",
+            "dailymotion.com", "orkut.com", "orkut.com.br", "google.com.sa", "odnoklassniki.ru",
+            "amazon.co.jp", "google.nl", "goo.ne.jp", "stumbleupon.com", "tube8.com", "tmall.com",
+            "imgur.com", "globo.com", "secureserver.net", "fileserve.com", "tianya.cn", "badoo.com",
+            "ehow.com", "photobucket.com", "imageshack.us", "xnxx.com", "deviantart.com",
+            "filestube.com", "addthis.com", "douban.com", "vimeo.com", "sogou.com",
+            "stackoverflow.com", "reddit.com", "dailymail.co.uk", "redtube.com", "megavideo.com",
+            "taringa.net", "pengyou.com", "amazon.co.uk", "fbcdn.net", "aweber.com", "spiegel.de",
+            "rapidshare.com", "mixi.jp", "360buy.com", "google.cn", "digg.com", "answers.com",
+            "bit.ly", "indiatimes.com", "skype.com", "yfrog.com", "optmd.com", "google.com.eg",
+            "google.com.pk", "58.com", "hotfile.com", "google.co.th",
+            "bankofamerica.com", "sourceforge.net", "maktoob.com", "warriorforum.com", "rediff.com",
+            "google.co.za", "56.com", "torrentz.eu", "clicksor.com", "avg.com",
+            "download.com", "ku6.com", "statcounter.com", "foxnews.com", "google.com.ar",
+            "nicovideo.jp", "reference.com", "liveinternet.ru", "ucoz.ru", "xinhuanet.com",
+            "xtendmedia.com", "naver.com", "youjizz.com", "domaintools.com", "sparkstudios.com",
+            "rambler.ru", "scribd.com", "kaixin001.com", "mashable.com", "adultfirendfinder.com",
+            "files.wordpress.com", "guardian.co.uk", "bild.de", "yelp.com", "wikimedia.org",
+            "chase.com", "onet.pl", "ameba.jp", "pconline.com.cn", "free.fr", "etsy.com",
+            "typepad.com", "youdao.com", "megaclick.com", "digitalpoint.com", "blogfa.com",
+            "salesforce.com", "adf.ly", "ganji.com", "wikia.com", "archive.org", "terra.com.br",
+            "w3schools.com", "ezinearticles.com", "wjs.com", "google.com.my", "clickbank.com",
+            "squidoo.com", "hulu.com", "repubblica.it", "google.be", "allegro.pl", "comcast.net",
+            "narod.ru", "zol.com.cn", "orange.fr", "soufun.com", "hatena.ne.jp", "google.gr",
+            "in.com", "techcrunch.com", "orkut.co.in", "xunlei.com",
+            "reuters.com", "google.com.vn", "hostgator.com", "kaskus.us", "espncricinfo.com",
+            "hootsuite.com", "qiyi.com", "gmx.net", "xing.com", "php.net", "soku.com", "web.de",
+            "libero.it", "groupon.com", "51.la", "slideshare.net", "booking.com", "seesaa.net",
+            "126.com", "telegraph.co.uk", "wretch.cc", "twimg.com", "rutracker.org", "angege.com",
+            "nba.com", "dell.com", "leboncoin.fr", "people.com", "google.com.tw", "walmart.com",
+            "daum.net", "2ch.net", "constantcontact.com", "nifty.com", "mywebsearch.com",
+            "tripadvisor.com", "google.se", "paipai.com", "google.com.ua", "ning.com", "hp.com",
+            "google.at", "joomla.org", "icio.us", "hudong.com", "csdn.net", "getfirebug.com",
+            "ups.com", "cj.com", "google.ch", "camzap.com", "wordreference.com", "tagged.com",
+            "wp.pl", "mozilla.com", "google.ru", "usps.com", "china.com", "themeforest.net",
+            "search-results.com", "tribalfusion.com", "thefreedictionary.com", "isohunt.com",
+            "linkwithin.com", "cam4.com", "plentyoffish.com", "wellsfargo.com", "metacafe.com",
+            "depositfiles.com", "freelancer.com", "opendns.com", "homeway.com", "engadget.com",
+            "10086.cn", "360.cn", "marca.com", "dropbox.com", "ign.com", "match.com", "google.pt",
+            "facemoods.com", "hardsextube.com", "google.com.ph", "lockerz.com", "istockphoto.com",
+            "partypoker.com", "netlog.com", "outbrain.com", "elpais.com", "fiverr.com",
+            "biglobe.ne.jp", "corriere.it", "love21cn.com", "yesky.com", "spankwire.com",
+            "ig.com.br", "imagevenue.com", "hubpages.com", "google.co.ve"};
+
+// TODO - this works, but is slow and cts doesn't do anything with the result.
+// Maybe require a min performance, a min cache size (detectable) and/or move
+// to perf testing
+    private static final int LOOKUP_COUNT_GOAL = URLS.length;
+    public void skiptestDnsPerf() {
+        ArrayList<String> results = new ArrayList<String>();
+        int failures = 0;
+        try {
+            for (int numberOfUrls = URLS.length; numberOfUrls > 0; numberOfUrls--) {
+                failures = 0;
+                int iterationLimit = LOOKUP_COUNT_GOAL / numberOfUrls;
+                long startTime = SystemClock.elapsedRealtimeNanos();
+                for (int iteration = 0; iteration < iterationLimit; iteration++) {
+                    for (int urlIndex = 0; urlIndex < numberOfUrls; urlIndex++) {
+                        try {
+                            InetAddress addr = InetAddress.getByName(URLS[urlIndex]);
+                        } catch (UnknownHostException e) {
+                            Log.e(TAG, "failed first lookup of " + URLS[urlIndex]);
+                            failures++;
+                            try {
+                                InetAddress addr = InetAddress.getByName(URLS[urlIndex]);
+                            } catch (UnknownHostException ee) {
+                                failures++;
+                                Log.e(TAG, "failed SECOND lookup of " + URLS[urlIndex]);
+                            }
+                        }
+                    }
+                }
+                long endTime = SystemClock.elapsedRealtimeNanos();
+                float nsPer = ((float)(endTime-startTime) / iterationLimit) / numberOfUrls/ 1000;
+                String thisResult = new String("getByName for " + numberOfUrls + " took " +
+                        (endTime - startTime)/1000 + "(" + nsPer + ") with " +
+                        failures + " failures\n");
+                Log.d(TAG, thisResult);
+                results.add(thisResult);
+            }
+            // build up a list of addresses
+            ArrayList<byte[]> addressList = new ArrayList<byte[]>();
+            for (String url : URLS) {
+                try {
+                    InetAddress addr = InetAddress.getByName(url);
+                    addressList.add(addr.getAddress());
+                } catch (UnknownHostException e) {
+                    Log.e(TAG, "Exception making reverseDNS list: " + e.toString());
+                }
+            }
+            for (int numberOfAddrs = addressList.size(); numberOfAddrs > 0; numberOfAddrs--) {
+                int iterationLimit = LOOKUP_COUNT_GOAL / numberOfAddrs;
+                failures = 0;
+                long startTime = SystemClock.elapsedRealtimeNanos();
+                for (int iteration = 0; iteration < iterationLimit; iteration++) {
+                    for (int addrIndex = 0; addrIndex < numberOfAddrs; addrIndex++) {
+                        try {
+                            InetAddress addr = InetAddress.getByAddress(addressList.get(addrIndex));
+                            String hostname = addr.getHostName();
+                        } catch (UnknownHostException e) {
+                            failures++;
+                            Log.e(TAG, "Failure doing reverse DNS lookup: " + e.toString());
+                            try {
+                                InetAddress addr =
+                                        InetAddress.getByAddress(addressList.get(addrIndex));
+                                String hostname = addr.getHostName();
+
+                            } catch (UnknownHostException ee) {
+                                failures++;
+                                Log.e(TAG, "Failure doing SECOND reverse DNS lookup: " +
+                                        ee.toString());
+                            }
+                        }
+                    }
+                }
+                long endTime = SystemClock.elapsedRealtimeNanos();
+                float nsPer = ((endTime-startTime) / iterationLimit) / numberOfAddrs / 1000;
+                String thisResult = new String("getHostName for " + numberOfAddrs + " took " +
+                        (endTime - startTime)/1000 + "(" + nsPer + ") with " +
+                        failures + " failures\n");
+                Log.d(TAG, thisResult);
+                results.add(thisResult);
+            }
+            for (String result : results) Log.d(TAG, result);
+
+            InetAddress exit = InetAddress.getByName("exitrightnow.com");
+            Log.e(TAG, " exit address= "+exit.toString());
+
+        } catch (Exception e) {
+            Log.e(TAG, "bad URL in testDnsPerf: " + e.toString());
+        }
+    }
+}
diff --git a/tests/tests/net/src/android/net/http/cts/SslErrorTest.java b/tests/tests/net/src/android/net/http/cts/SslErrorTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/net/src/android/net/wifi/cts/NsdManagerTest.java b/tests/tests/net/src/android/net/wifi/cts/NsdManagerTest.java
new file mode 100644
index 0000000..482a4e3
--- /dev/null
+++ b/tests/tests/net/src/android/net/wifi/cts/NsdManagerTest.java
@@ -0,0 +1,424 @@
+/*
+ * 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.
+ */
+
+package android.net.wifi.cts;
+
+import android.content.Context;
+import android.net.nsd.NsdManager;
+import android.net.nsd.NsdServiceInfo;
+import android.test.AndroidTestCase;
+import android.util.Log;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.util.Random;
+import java.util.List;
+import java.util.ArrayList;
+
+public class NsdManagerTest extends AndroidTestCase {
+
+    private static final String TAG = "NsdManagerTest";
+    private static final String SERVICE_TYPE = "_nmt._tcp";
+    private static final int TIMEOUT = 2000;
+
+    private static final boolean DBG = false;
+
+    NsdManager mNsdManager;
+
+    NsdManager.RegistrationListener mRegistrationListener;
+    NsdManager.DiscoveryListener mDiscoveryListener;
+    NsdManager.ResolveListener mResolveListener;
+
+    public NsdManagerTest() {
+        mRegistrationListener = new NsdManager.RegistrationListener() {
+            @Override
+            public void onRegistrationFailed(NsdServiceInfo serviceInfo, int errorCode) {
+                setEvent("onRegistrationFailed", errorCode);
+            }
+
+            @Override
+            public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) {
+                setEvent("onUnregistrationFailed", errorCode);
+            }
+
+            @Override
+            public void onServiceRegistered(NsdServiceInfo serviceInfo) {
+                setEvent("onServiceRegistered", serviceInfo);
+            }
+
+            @Override
+            public void onServiceUnregistered(NsdServiceInfo serviceInfo) {
+                setEvent("onServiceUnregistered", serviceInfo);
+            }
+        };
+        mDiscoveryListener = new NsdManager.DiscoveryListener() {
+            @Override
+            public void onStartDiscoveryFailed(String serviceType, int errorCode) {
+                setEvent("onStartDiscoveryFailed", errorCode);
+            }
+
+            @Override
+            public void onStopDiscoveryFailed(String serviceType, int errorCode) {
+                setEvent("onStopDiscoveryFailed", errorCode);
+            }
+
+            @Override
+            public void onDiscoveryStarted(String serviceType) {
+                NsdServiceInfo info = new NsdServiceInfo();
+                info.setServiceType(serviceType);
+                setEvent("onDiscoveryStarted", info);
+            }
+
+            @Override
+            public void onDiscoveryStopped(String serviceType) {
+                NsdServiceInfo info = new NsdServiceInfo();
+                info.setServiceType(serviceType);
+                setEvent("onDiscoveryStopped", info);
+            }
+
+            @Override
+            public void onServiceFound(NsdServiceInfo serviceInfo) {
+                setEvent("onServiceFound", serviceInfo);
+            }
+
+            @Override
+            public void onServiceLost(NsdServiceInfo serviceInfo) {
+                setEvent("onServiceLost", serviceInfo);
+            }
+        };
+        mResolveListener = new NsdManager.ResolveListener() {
+            @Override
+            public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) {
+                setEvent("onResolveFailed", errorCode);
+            }
+
+            @Override
+            public void onServiceResolved(NsdServiceInfo serviceInfo) {
+                setEvent("onServiceResolved", serviceInfo);
+            }
+        };
+    }
+
+    private final class EventData {
+        EventData(String callbackName, NsdServiceInfo info) {
+            mCallbackName = callbackName;
+            mSucceeded = true;
+            mErrorCode = 0;
+            mInfo = info;
+        }
+        EventData(String callbackName, int errorCode) {
+            mCallbackName = callbackName;
+            mSucceeded = false;
+            mErrorCode = errorCode;
+            mInfo = null;
+        }
+        private final String mCallbackName;
+        private final boolean mSucceeded;
+        private final int mErrorCode;
+        private final NsdServiceInfo mInfo;
+    }
+
+    private final List<EventData> mEventCache = new ArrayList<EventData>();
+
+    private void setEvent(String callbackName, int errorCode) {
+        if (DBG) Log.d(TAG, callbackName + " failed with " + String.valueOf(errorCode));
+        EventData eventData = new EventData(callbackName, errorCode);
+        synchronized (mEventCache) {
+            mEventCache.add(eventData);
+            mEventCache.notify();
+        }
+    }
+
+    private void setEvent(String callbackName, NsdServiceInfo info) {
+        if (DBG) Log.d(TAG, "Received event " + callbackName + " for " + info.getServiceName());
+        EventData eventData = new EventData(callbackName, info);
+        synchronized (mEventCache) {
+            mEventCache.add(eventData);
+            mEventCache.notify();
+        }
+    }
+
+    void clearEventCache() {
+        synchronized(mEventCache) {
+            mEventCache.clear();
+        }
+    }
+
+    int eventCacheSize() {
+        synchronized(mEventCache) {
+            return mEventCache.size();
+        }
+    }
+
+    private int mWaitId = 0;
+    private EventData waitForCallback(String callbackName) {
+
+        synchronized(mEventCache) {
+
+            mWaitId ++;
+            if (DBG) Log.d(TAG, "Waiting for " + callbackName + ", id=" + String.valueOf(mWaitId));
+
+            try {
+                long startTime = android.os.SystemClock.uptimeMillis();
+                long elapsedTime = 0;
+                int index = 0;
+                while (elapsedTime < TIMEOUT ) {
+                    // first check if we've received that event
+                    for (; index < mEventCache.size(); index++) {
+                        EventData e = mEventCache.get(index);
+                        if (e.mCallbackName.equals(callbackName)) {
+                            if (DBG) Log.d(TAG, "exiting wait id=" + String.valueOf(mWaitId));
+                            return e;
+                        }
+                    }
+
+                    // Not yet received, just wait
+                    mEventCache.wait(TIMEOUT - elapsedTime);
+                    elapsedTime = android.os.SystemClock.uptimeMillis() - startTime;
+                }
+                // we exited the loop because of TIMEOUT; fail the call
+                if (DBG) Log.d(TAG, "timed out waiting id=" + String.valueOf(mWaitId));
+                return null;
+            } catch (InterruptedException e) {
+                return null;                       // wait timed out!
+            }
+        }
+    }
+
+    private String mServiceName;
+
+    @Override
+    public void setUp() {
+        if (DBG) Log.d(TAG, "Setup test ...");
+        mNsdManager = (NsdManager) getContext().getSystemService(Context.NSD_SERVICE);
+
+        Random rand = new Random();
+        mServiceName = new String("NsdTest");
+        for (int i = 0; i < 4; i++) {
+            mServiceName = mServiceName + String.valueOf(rand.nextInt(10));
+        }
+    }
+
+    @Override
+    public void tearDown() {
+        if (DBG) Log.d(TAG, "Tear down test ...");
+    }
+
+    public void runTest() throws Exception {
+        NsdServiceInfo si = new NsdServiceInfo();
+        si.setServiceType(SERVICE_TYPE);
+        si.setServiceName(mServiceName);
+
+        EventData lastEvent = null;
+
+        if (DBG) Log.d(TAG, "Starting test ...");
+
+        ServerSocket socket;
+        int localPort;
+
+        try {
+            socket = new ServerSocket(0);
+            localPort = socket.getLocalPort();
+            si.setPort(localPort);
+        } catch (IOException e) {
+            if (DBG) Log.d(TAG, "Could not open a local socket");
+            assertTrue(false);
+            return;
+        }
+
+        if (DBG) Log.d(TAG, "Port = " + String.valueOf(localPort));
+
+        clearEventCache();
+
+        mNsdManager.registerService(si, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener);
+        lastEvent = waitForCallback("onServiceRegistered");                 // id = 1
+        assertTrue(lastEvent != null);
+        assertTrue(lastEvent.mSucceeded);
+        assertTrue(eventCacheSize() == 1);
+
+        // We may not always get the name that we tried to register;
+        // This events tells us the name that was registered.
+        String registeredName = lastEvent.mInfo.getServiceName();
+        si.setServiceName(registeredName);
+
+        clearEventCache();
+
+        mNsdManager.discoverServices(SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD,
+                mDiscoveryListener);
+
+        // Expect discovery started
+        lastEvent = waitForCallback("onDiscoveryStarted");                  // id = 2
+
+        assertTrue(lastEvent != null);
+        assertTrue(lastEvent.mSucceeded);
+
+        // Remove this event, so accounting becomes easier later
+        mEventCache.remove(lastEvent);
+
+        // Expect a service record to be discovered (and filter the ones
+        // that are unrelated to this test)
+        boolean found = false;
+        for (int i = 0; i < 32; i++) {
+
+            lastEvent = waitForCallback("onServiceFound");                  // id = 3
+            if (lastEvent == null) {
+                // no more onServiceFound events are being reported!
+                break;
+            }
+
+            assertTrue(lastEvent.mSucceeded);
+
+            if (DBG) Log.d(TAG, "id = " + String.valueOf(mWaitId) + ": ServiceName = " +
+                    lastEvent.mInfo.getServiceName());
+
+            if (lastEvent.mInfo.getServiceName().equals(registeredName)) {
+                // Save it, as it will get overwritten with new serviceFound events
+                si = lastEvent.mInfo;
+                found = true;
+            }
+
+            // Remove this event from the event cache, so it won't be found by subsequent
+            // calls to waitForCallback
+            mEventCache.remove(lastEvent);
+        }
+
+        assertTrue(found);
+
+        // We've removed all serviceFound events, and we've removed the discoveryStarted
+        // event as well, so now the event cache should be empty!
+        assertTrue(eventCacheSize() == 0);
+
+        // Resolve the service
+        clearEventCache();
+        mNsdManager.resolveService(si, mResolveListener);
+        lastEvent = waitForCallback("onServiceResolved");                   // id = 4
+
+        assertTrue(lastEvent != null);
+        assertTrue(lastEvent.mSucceeded);
+
+        if (DBG) Log.d(TAG, "id = " + String.valueOf(mWaitId) + ": Port = " +
+                String.valueOf(lastEvent.mInfo.getPort()));
+
+        assertTrue(lastEvent.mInfo.getPort() == localPort);
+        assertTrue(eventCacheSize() == 1);
+
+        clearEventCache();
+
+        // Unregister the service
+        mNsdManager.unregisterService(mRegistrationListener);
+        lastEvent = waitForCallback("onServiceUnregistered");               // id = 5
+
+        assertTrue(lastEvent != null);
+        assertTrue(lastEvent.mSucceeded);
+
+        // Expect a callback for service lost
+        lastEvent = waitForCallback("onServiceLost");                       // id = 6
+
+        assertTrue(lastEvent != null);
+        assertTrue(lastEvent.mInfo.getServiceName().equals(registeredName));
+
+        assertTrue(eventCacheSize() == 2);
+
+        // Register service again to see if we discover it
+        clearEventCache();
+
+        si = new NsdServiceInfo();
+        si.setServiceType(SERVICE_TYPE);
+        si.setServiceName(mServiceName);
+        si.setPort(localPort);
+        mNsdManager.registerService(si, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener);
+
+        lastEvent = waitForCallback("onServiceRegistered");                 // id = 7
+
+        assertTrue(lastEvent != null);
+        assertTrue(lastEvent.mSucceeded);
+
+        registeredName = lastEvent.mInfo.getServiceName();
+
+        // Expect a record to be discovered
+        lastEvent = waitForCallback("onServiceFound");                      // id = 8
+
+        assertTrue(lastEvent != null);
+        assertTrue(lastEvent.mSucceeded);
+
+        if (DBG) Log.d(TAG, "id = " + String.valueOf(mWaitId) + ": ServiceName = " +
+                lastEvent.mInfo.getServiceName());
+
+        assertTrue(lastEvent.mInfo.getServiceName().equals(registeredName));
+
+        assertTrue(eventCacheSize() == 2);
+        clearEventCache();
+
+        mNsdManager.stopServiceDiscovery(mDiscoveryListener);
+        lastEvent = waitForCallback("onDiscoveryStopped");                  // id = 9
+        assertTrue(lastEvent != null);
+        assertTrue(lastEvent.mSucceeded);
+        assertTrue(eventCacheSize() == 1);
+
+        clearEventCache();
+        mNsdManager.unregisterService(mRegistrationListener);
+
+        lastEvent =  waitForCallback("onServiceUnregistered");              // id = 10
+        assertTrue(lastEvent != null);
+        assertTrue(lastEvent.mSucceeded);
+        assertTrue(eventCacheSize() == 1);
+    }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/tests/opengl/src/android/opengl/cts/ColorBufferTest.java b/tests/tests/opengl/src/android/opengl/cts/ColorBufferTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/opengl/src/android/opengl/cts/GL2JniLibOne.java b/tests/tests/opengl/src/android/opengl/cts/GL2JniLibOne.java
old mode 100755
new mode 100644
diff --git a/tests/tests/opengl/src/android/opengl/cts/NativeAttachShaderTest.java b/tests/tests/opengl/src/android/opengl/cts/NativeAttachShaderTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/opengl/src/android/opengl/cts/NativeColorBufferTest.java b/tests/tests/opengl/src/android/opengl/cts/NativeColorBufferTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/opengl/src/android/opengl/cts/NativeRendererOneColorBufferTest.java b/tests/tests/opengl/src/android/opengl/cts/NativeRendererOneColorBufferTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/opengl/src/android/opengl/cts/OpenGLES20ActivityTwo.java b/tests/tests/opengl/src/android/opengl/cts/OpenGLES20ActivityTwo.java
old mode 100755
new mode 100644
diff --git a/tests/tests/opengl/src/android/opengl/cts/OpenGLES20NativeActivityOne.java b/tests/tests/opengl/src/android/opengl/cts/OpenGLES20NativeActivityOne.java
old mode 100755
new mode 100644
index ac4fce5..4602d4f
--- a/tests/tests/opengl/src/android/opengl/cts/OpenGLES20NativeActivityOne.java
+++ b/tests/tests/opengl/src/android/opengl/cts/OpenGLES20NativeActivityOne.java
@@ -1,3 +1,18 @@
+/*
+ * 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.
+ */
 package android.opengl.cts;
 
 import android.app.Activity;
diff --git a/tests/tests/opengl/src/android/opengl/cts/OpenGLES20NativeActivityTwo.java b/tests/tests/opengl/src/android/opengl/cts/OpenGLES20NativeActivityTwo.java
old mode 100755
new mode 100644
diff --git a/tests/tests/opengl/src/android/opengl/cts/ProgramTest.java b/tests/tests/opengl/src/android/opengl/cts/ProgramTest.java
index a69c8e5..85009d2 100644
--- a/tests/tests/opengl/src/android/opengl/cts/ProgramTest.java
+++ b/tests/tests/opengl/src/android/opengl/cts/ProgramTest.java
@@ -11,7 +11,7 @@
  * 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 android.opengl.cts;
 
diff --git a/tests/tests/opengl/src/android/opengl/cts/RendererElevenShaderTest.java b/tests/tests/opengl/src/android/opengl/cts/RendererElevenShaderTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/opengl/src/android/opengl/cts/RendererOneColorBufferTest.java b/tests/tests/opengl/src/android/opengl/cts/RendererOneColorBufferTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/opengl/src/android/opengl/cts/RendererTwelveShaderTest.java b/tests/tests/opengl/src/android/opengl/cts/RendererTwelveShaderTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/opengl/src/android/opengl/cts/Vertex.java b/tests/tests/opengl/src/android/opengl/cts/Vertex.java
old mode 100755
new mode 100644
diff --git a/tests/tests/opengl/src/android/opengl/cts/WrapperTest.java b/tests/tests/opengl/src/android/opengl/cts/WrapperTest.java
new file mode 100644
index 0000000..03677d2
--- /dev/null
+++ b/tests/tests/opengl/src/android/opengl/cts/WrapperTest.java
@@ -0,0 +1,315 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package android.opengl.cts;
+
+import android.opengl.EGL14;
+import android.opengl.EGLConfig;
+import android.opengl.EGLContext;
+import android.opengl.EGLDisplay;
+import android.opengl.EGLSurface;
+import android.opengl.GLES10;
+import android.opengl.GLES20;
+import android.test.AndroidTestCase;
+import android.util.Log;
+
+import java.nio.ByteBuffer;
+import java.nio.IntBuffer;
+
+/**
+ * Test some aspects of the Java-language wrappers generated for OpenGL.
+ */
+public class WrapperTest extends AndroidTestCase {
+    private static final String TAG = "WrapperTest";
+
+    private EGLDisplay mEGLDisplay;
+    private EGLContext mEGLContext;
+    private EGLSurface mEGLSurface;
+
+
+    /**
+     * Tests range-checking on glGetIntegerv in GLES 1.x.
+     */
+    public void testGetIntegerv1() {
+        eglSetup(1, 1, 1);  // GLES 1.x with 1x1 pbuffer
+
+        checkGlError("start");
+
+        int[] countBuf = new int[1];
+        GLES10.glGetIntegerv(GLES10.GL_NUM_COMPRESSED_TEXTURE_FORMATS, countBuf, 0);
+        checkGlError("glGetIntegerv(count)");
+
+        int formatCount = countBuf[0];
+        Log.d(TAG, "got count=" + formatCount);
+
+        // try with a buffer large enough to hold all results
+        GLES10.glGetIntegerv(GLES10.GL_COMPRESSED_TEXTURE_FORMATS, new int[formatCount], 0);
+        checkGlError("glGetIntegerv(full1)");
+
+        // try with an exact-fit IntBuffer
+        ByteBuffer fullByteBuf = ByteBuffer.allocateDirect(4 * formatCount);
+        IntBuffer fullIntBuf = fullByteBuf.asIntBuffer();
+        GLES10.glGetIntegerv(GLES10.GL_COMPRESSED_TEXTURE_FORMATS, fullIntBuf);
+        checkGlError("glGetIntegerv(full2)");
+
+        // try with an oversized IntBuffer with an offset
+        final int OFFSET = 5;
+        ByteBuffer oversizeByteBuf = ByteBuffer.allocateDirect(4 * (formatCount+OFFSET));
+        IntBuffer oversizeIntBuf = oversizeByteBuf.asIntBuffer();
+        oversizeIntBuf.position(OFFSET);
+        GLES10.glGetIntegerv(GLES10.GL_COMPRESSED_TEXTURE_FORMATS, oversizeIntBuf);
+        checkGlError("glGetIntegerv(full3)");
+        assertEquals(oversizeIntBuf.get(OFFSET), fullIntBuf.get(0));
+
+        // retry with a buffer that's too small -- should throw
+        ByteBuffer partialByteBuf = ByteBuffer.allocateDirect(4 * (formatCount - 1));
+        IntBuffer partialIntBuf = partialByteBuf.asIntBuffer();
+        try {
+            GLES10.glGetIntegerv(GLES10.GL_COMPRESSED_TEXTURE_FORMATS, partialIntBuf);
+            checkGlError("glGetIntegerv(partial1)");
+            throw new RuntimeException("buffer has overrun (intbuf)");
+        } catch (IllegalArgumentException iae) {
+            // good
+        }
+
+        try {
+            GLES10.glGetIntegerv(GLES10.GL_COMPRESSED_TEXTURE_FORMATS, new int[formatCount-1], 0);
+            checkGlError("glGetIntegerv(partial2)");
+            throw new RuntimeException("buffer has overrun (int[])");
+        } catch (IllegalArgumentException iae) {
+            // good
+        }
+
+        eglRelease();
+    }
+
+    /**
+     * Tests range-checking on glGetIntegerv in GLES 2.x.
+     */
+    public void testGetIntegerv2() {
+        eglSetup(2, 1, 1);  // GLES 2.x with 1x1 pbuffer
+
+        checkGlError("start");
+
+        int[] countBuf = new int[1];
+        GLES20.glGetIntegerv(GLES20.GL_NUM_COMPRESSED_TEXTURE_FORMATS, countBuf, 0);
+        checkGlError("glGetIntegerv(count)");
+
+        int formatCount = countBuf[0];
+        Log.d(TAG, "got count=" + formatCount);
+
+        // try with a buffer large enough to hold all results
+        GLES20.glGetIntegerv(GLES20.GL_COMPRESSED_TEXTURE_FORMATS, new int[formatCount], 0);
+        checkGlError("glGetIntegerv(full1)");
+
+        // try with an exact-fit IntBuffer
+        ByteBuffer fullByteBuf = ByteBuffer.allocateDirect(4 * formatCount);
+        IntBuffer fullIntBuf = fullByteBuf.asIntBuffer();
+        GLES20.glGetIntegerv(GLES20.GL_COMPRESSED_TEXTURE_FORMATS, fullIntBuf);
+        checkGlError("glGetIntegerv(full2)");
+
+        // try with an oversized IntBuffer with an offset
+        final int OFFSET = 5;
+        ByteBuffer oversizeByteBuf = ByteBuffer.allocateDirect(4 * (formatCount+OFFSET));
+        IntBuffer oversizeIntBuf = oversizeByteBuf.asIntBuffer();
+        oversizeIntBuf.position(OFFSET);
+        GLES20.glGetIntegerv(GLES20.GL_COMPRESSED_TEXTURE_FORMATS, oversizeIntBuf);
+        checkGlError("glGetIntegerv(full3)");
+        assertEquals(oversizeIntBuf.get(OFFSET), fullIntBuf.get(0));
+
+        // retry with a buffer that's too small -- should throw
+        ByteBuffer partialByteBuf = ByteBuffer.allocateDirect(4 * (formatCount - 1));
+        IntBuffer partialIntBuf = partialByteBuf.asIntBuffer();
+        try {
+            GLES20.glGetIntegerv(GLES20.GL_COMPRESSED_TEXTURE_FORMATS, partialIntBuf);
+            checkGlError("glGetIntegerv(partial1)");
+            throw new RuntimeException("buffer has overrun (intbuf)");
+        } catch (IllegalArgumentException iae) {
+            // good
+        }
+
+        try {
+            GLES20.glGetIntegerv(GLES20.GL_COMPRESSED_TEXTURE_FORMATS, new int[formatCount-1], 0);
+            checkGlError("glGetIntegerv(partial2)");
+            throw new RuntimeException("buffer has overrun (int[])");
+        } catch (IllegalArgumentException iae) {
+            // good
+        }
+
+        eglRelease();
+    }
+
+    /**
+     * Tests whether EGL is releasing resources when the thread exits.  If
+     * it doesn't, we'll consume memory rapidly, and will fail or be
+     * killed within a couple hundred iterations.
+     * <p>
+     * It may be worthwhile to watch the memory growth with procrank or showmap
+     * while the test runs to detect smaller leaks.
+     */
+    public void testThreadCleanup() throws Throwable {
+        class WrappedTest implements Runnable {
+            public Throwable mThrowable;
+
+            private static final int WIDTH = 1280;
+            private static final int HEIGHT = 720;
+
+            @Override
+            public void run() {
+                try {
+                    eglSetup(2, WIDTH, HEIGHT);
+                    if (!EGL14.eglMakeCurrent(mEGLDisplay, mEGLSurface, mEGLSurface, mEGLContext)) {
+                        throw new RuntimeException("eglMakeCurrent failed");
+                    }
+                    eglRelease();
+                } catch (Throwable th) {
+                    mThrowable = th;
+                }
+            }
+        }
+
+        WrappedTest wrappedTest = new WrappedTest();
+
+        for (int i = 0; i < 1000; i++) {
+            if ((i % 25) == 0) {
+                Log.d(TAG, "iteration " + i);
+            }
+
+            Thread th = new Thread(wrappedTest, "EGL thrash");
+            th.start();
+            th.join();
+            if (wrappedTest.mThrowable != null) {
+                throw wrappedTest.mThrowable;
+            }
+        }
+    }
+
+    /**
+     * Checks for GL errors.
+     */
+    public void checkGlError(String op) {
+        int error;
+        while ((error = GLES20.glGetError()) != GLES20.GL_NO_ERROR) {
+            Log.e(TAG, op + ": glError " + error);
+            throw new RuntimeException(op + ": glError " + error);
+        }
+    }
+
+    /**
+     * Prepares EGL.  Pass in the desired GLES API version.
+     */
+    private void eglSetup(int api, int width, int height) {
+        mEGLDisplay = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY);
+        if (mEGLDisplay == EGL14.EGL_NO_DISPLAY) {
+            throw new RuntimeException("unable to get EGL14 display");
+        }
+        int[] version = new int[2];
+        if (!EGL14.eglInitialize(mEGLDisplay, version, 0, version, 1)) {
+            mEGLDisplay = null;
+            throw new RuntimeException("unable to initialize EGL14");
+        }
+
+        int renderableType;
+        switch (api) {
+            case 1:
+                renderableType = EGL14.EGL_OPENGL_ES_BIT;
+                break;
+            case 2:
+                renderableType = EGL14.EGL_OPENGL_ES2_BIT;
+                break;
+            default:
+                throw new RuntimeException("unsupported API level " + api);
+        }
+
+        // Configure EGL for OpenGL ES 1.0 or 2.0, with a pbuffer
+        int[] attribList = {
+                EGL14.EGL_RED_SIZE, 8,
+                EGL14.EGL_GREEN_SIZE, 8,
+                EGL14.EGL_BLUE_SIZE, 8,
+                EGL14.EGL_SURFACE_TYPE, EGL14.EGL_PBUFFER_BIT,
+                EGL14.EGL_RENDERABLE_TYPE, renderableType,
+                EGL14.EGL_NONE
+        };
+        EGLConfig[] configs = new EGLConfig[1];
+        int[] numConfigs = new int[1];
+        if (!EGL14.eglChooseConfig(mEGLDisplay, attribList, 0, configs, 0, configs.length,
+                numConfigs, 0)) {
+            throw new RuntimeException("unable to find RGB888+pbuffer ES" + api + " EGL config");
+        }
+
+        // Create context
+        int[] attrib_list = {
+                EGL14.EGL_CONTEXT_CLIENT_VERSION, api,
+                EGL14.EGL_NONE
+        };
+        mEGLContext = EGL14.eglCreateContext(mEGLDisplay, configs[0], EGL14.EGL_NO_CONTEXT,
+                attrib_list, 0);
+        checkEglError("eglCreateContext");
+        if (mEGLContext == null) {
+            throw new RuntimeException("null context");
+        }
+
+        // Create a 1x1 pbuffer surface
+        int[] surfaceAttribs = {
+                EGL14.EGL_WIDTH, width,
+                EGL14.EGL_HEIGHT, height,
+                EGL14.EGL_NONE
+        };
+        mEGLSurface = EGL14.eglCreatePbufferSurface(mEGLDisplay, configs[0], surfaceAttribs, 0);
+        checkEglError("eglCreatePbufferSurface");
+        if (mEGLSurface == null) {
+            throw new RuntimeException("surface was null");
+        }
+
+        // Make it current
+        if (!EGL14.eglMakeCurrent(mEGLDisplay, mEGLSurface, mEGLSurface, mEGLContext)) {
+            throw new RuntimeException("eglMakeCurrent failed");
+        }
+    }
+
+    /**
+     * Releases EGL goodies.
+     */
+    private void eglRelease() {
+        // Terminating the display will release most objects, but won't discard the current
+        // surfaces and context until we release the thread.  It shouldn't matter what order
+        // we do these in.
+        if (mEGLDisplay != null) {
+            EGL14.eglTerminate(mEGLDisplay);
+            EGL14.eglReleaseThread();
+        }
+
+        // null everything out so future attempts to use this object will cause an NPE
+        mEGLDisplay = null;
+        mEGLContext = null;
+        mEGLSurface = null;
+    }
+
+    /**
+     * Checks for EGL errors.
+     */
+    private void checkEglError(String msg) {
+        boolean failed = false;
+        int error;
+        while ((error = EGL14.eglGetError()) != EGL14.EGL_SUCCESS) {
+            Log.e(TAG, msg + ": EGL error: 0x" + Integer.toHexString(error));
+            failed = true;
+        }
+        if (failed) {
+            throw new RuntimeException("EGL error encountered (see log)");
+        }
+    }
+}
diff --git a/tests/tests/os/src/android/os/cts/BuildVersionTest.java b/tests/tests/os/src/android/os/cts/BuildVersionTest.java
index d1b88a1..dfa8301 100644
--- a/tests/tests/os/src/android/os/cts/BuildVersionTest.java
+++ b/tests/tests/os/src/android/os/cts/BuildVersionTest.java
@@ -29,8 +29,8 @@
 
     private static final String LOG_TAG = "BuildVersionTest";
     private static final Set<String> EXPECTED_RELEASES =
-            new HashSet<String>(Arrays.asList("4.3"));
-    private static final int EXPECTED_SDK = 18;
+            new HashSet<String>(Arrays.asList("4.2", "4.2.1", "4.2.2"));
+    private static final int EXPECTED_SDK = 17;
 
     @SuppressWarnings("deprecation")
     public void testReleaseVersion() {
diff --git a/tests/tests/os/src/android/os/cts/FileAccessPermissionTest.java b/tests/tests/os/src/android/os/cts/FileAccessPermissionTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/permission/src/android/permission/cts/AppWidgetManagerPermissionTest.java b/tests/tests/permission/src/android/permission/cts/AppWidgetManagerPermissionTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
index 48c03b9..633d5d7 100644
--- a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
@@ -27,9 +27,17 @@
 import java.io.File;
 import java.io.FileFilter;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.FileReader;
 import java.io.IOException;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeoutException;
+import java.util.concurrent.TimeUnit;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -526,11 +534,12 @@
 
     @LargeTest
     public void testReadingSysFilesDoesntFail() throws Exception {
-        // TODO: fix b/8148087
-        // tryToReadFromAllIn(new File("/sys"));
+        ExecutorService executor = Executors.newCachedThreadPool();
+        tryToReadFromAllIn(new File("/sys"), executor);
+        executor.shutdownNow();
     }
 
-    private static void tryToReadFromAllIn(File dir) throws IOException {
+    private static void tryToReadFromAllIn(File dir, ExecutorService executor) throws IOException {
         assertTrue(dir.isDirectory());
 
         if (isSymbolicLink(dir)) {
@@ -543,26 +552,63 @@
         if (files != null) {
             for (File f : files) {
                 if (f.isDirectory()) {
-                    tryToReadFromAllIn(f);
+                    tryToReadFromAllIn(f, executor);
                 } else {
-                    tryFileRead(f);
+                    tryFileOpenRead(f, executor);
                 }
             }
         }
     }
 
-    private static void tryFileRead(File f) {
+    private static void tryFileOpenRead(final File f, ExecutorService executor) throws IOException {
+        // Callable requires stack variables to be final.
+        Callable<Boolean> readFile = new Callable<Boolean>() {
+            @Override
+            public Boolean call() throws Exception {
+                return tryFileRead(f);
+            }
+        };
+
+        Boolean completed = false;
+        String fileName = null;
+        Future<Boolean> future = null;
+        try {
+            fileName = f.getCanonicalPath();
+
+            future = executor.submit(readFile);
+
+            // Block, waiting no more than set seconds.
+            completed = future.get(3, TimeUnit.SECONDS);
+        } catch (TimeoutException e) {
+            System.out.println("TIMEOUT: " + fileName);
+        } catch (InterruptedException e) {
+            System.out.println("INTERRUPTED: " + fileName);
+        } catch (ExecutionException e) {
+            System.out.println("TASK WAS ABORTED BY EXCEPTION: " + fileName);
+        } catch (IOException e) {
+            // File.getCanonicalPath() will throw this.
+        } finally {
+            if (future != null) {
+                future.cancel(true);
+            }
+        }
+    }
+
+    private static Boolean tryFileRead(File f) {
         byte[] b = new byte[1024];
         try {
             System.out.println("looking at " + f.getCanonicalPath());
+
             FileInputStream fis = new FileInputStream(f);
-            while(fis.read(b) != -1) {
+            while((fis.available() != 0) && (fis.read(b) != -1)) {
                 // throw away data
             }
+
             fis.close();
         } catch (IOException e) {
             // ignore
         }
+        return true;
     }
 
     private static final Set<File> SYS_EXCEPTIONS = new HashSet<File>(
diff --git a/tests/tests/permission2/src/android/permission2/cts/NoProcessOutgoingCallPermissionTest.java b/tests/tests/permission2/src/android/permission2/cts/NoProcessOutgoingCallPermissionTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/permission2/src/android/permission2/cts/NoReceiveSmsPermissionTest.java b/tests/tests/permission2/src/android/permission2/cts/NoReceiveSmsPermissionTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/permission2/src/android/permission2/cts/NoWriteSecureSettingsPermissionTest.java b/tests/tests/permission2/src/android/permission2/cts/NoWriteSecureSettingsPermissionTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/permission2/src/android/permission2/cts/ProtectedBroadcastsTest.java b/tests/tests/permission2/src/android/permission2/cts/ProtectedBroadcastsTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/CheckBoxPreferenceTest.java b/tests/tests/preference2/src/android/preference2/cts/CheckBoxPreferenceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/CustomCheckBoxPreference.java b/tests/tests/preference2/src/android/preference2/cts/CustomCheckBoxPreference.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/CustomCheckBoxPreferenceTest.java b/tests/tests/preference2/src/android/preference2/cts/CustomCheckBoxPreferenceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/CustomDialogPreference.java b/tests/tests/preference2/src/android/preference2/cts/CustomDialogPreference.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/CustomDialogPreferenceTest.java b/tests/tests/preference2/src/android/preference2/cts/CustomDialogPreferenceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/CustomEditTextPreference.java b/tests/tests/preference2/src/android/preference2/cts/CustomEditTextPreference.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/CustomEditTextPreferenceTest.java b/tests/tests/preference2/src/android/preference2/cts/CustomEditTextPreferenceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/CustomSwitchPreference.java b/tests/tests/preference2/src/android/preference2/cts/CustomSwitchPreference.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/CustomSwitchPreferenceTest.java b/tests/tests/preference2/src/android/preference2/cts/CustomSwitchPreferenceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/DialogPreferenceTest.java b/tests/tests/preference2/src/android/preference2/cts/DialogPreferenceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/EditTextPreferenceTest.java b/tests/tests/preference2/src/android/preference2/cts/EditTextPreferenceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/ListPreferenceTest.java b/tests/tests/preference2/src/android/preference2/cts/ListPreferenceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/PreferenceCategoryTest.java b/tests/tests/preference2/src/android/preference2/cts/PreferenceCategoryTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/PreferenceFragmentActivity.java b/tests/tests/preference2/src/android/preference2/cts/PreferenceFragmentActivity.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/PreferenceFragmentTest.java b/tests/tests/preference2/src/android/preference2/cts/PreferenceFragmentTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/PreferenceFromCodeActivity.java b/tests/tests/preference2/src/android/preference2/cts/PreferenceFromCodeActivity.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/PreferenceTest.java b/tests/tests/preference2/src/android/preference2/cts/PreferenceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/PreferenceWithHeaders.java b/tests/tests/preference2/src/android/preference2/cts/PreferenceWithHeaders.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/PreferenceWithHeadersTest.java b/tests/tests/preference2/src/android/preference2/cts/PreferenceWithHeadersTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/PreferencesFromXml.java b/tests/tests/preference2/src/android/preference2/cts/PreferencesFromXml.java
old mode 100755
new mode 100644
diff --git a/tests/tests/preference2/src/android/preference2/cts/SwitchPreferenceTest.java b/tests/tests/preference2/src/android/preference2/cts/SwitchPreferenceTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_FilesTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_FilesTest.java
index 79b2e57..0510ca0 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_FilesTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_FilesTest.java
@@ -21,6 +21,7 @@
 import android.content.ContentResolver;
 import android.content.ContentUris;
 import android.content.ContentValues;
+import android.content.Context;
 import android.database.Cursor;
 import android.net.Uri;
 import android.os.Environment;
@@ -30,6 +31,8 @@
 import android.test.AndroidTestCase;
 
 import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
 import java.io.IOException;
 
 public class MediaStore_FilesTest extends AndroidTestCase {
@@ -150,6 +153,133 @@
         }
     }
 
+    public void testAccess() throws IOException {
+        // clean up from previous run
+        mResolver.delete(MediaStore.Images.Media.INTERNAL_CONTENT_URI,
+                "_data NOT LIKE ?", new String[] { "/system/%" } );
+
+        // insert some dummy starter data into the provider
+        ContentValues values = new ContentValues();
+        values.put(MediaStore.Images.Media.DISPLAY_NAME, "My Bitmap");
+        values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
+        values.put(MediaStore.Images.Media.DATA, "/foo/bar/dummy.jpg");
+        Uri uri = mResolver.insert(MediaStore.Images.Media.INTERNAL_CONTENT_URI, values);
+
+        // point _data at directory and try to get an fd for it
+        values = new ContentValues();
+        values.put("_data", "/data/media");
+        mResolver.update(uri, values, null, null);
+        ParcelFileDescriptor pfd = null;
+        try {
+            pfd = mResolver.openFileDescriptor(uri, "r");
+            pfd.close();
+            fail("shouldn't be here");
+        } catch (FileNotFoundException e) {
+            // expected
+        }
+
+        // try to create a file in a place we don't have access to
+        values = new ContentValues();
+        values.put("_data", "/data/media/test.dat");
+        mResolver.update(uri, values, null, null);
+        try {
+            pfd = mResolver.openFileDescriptor(uri, "w");
+            pfd.close();
+            fail("shouldn't be here");
+        } catch (FileNotFoundException e) {
+            // expected
+        }
+        // read file back
+        try {
+            pfd = mResolver.openFileDescriptor(uri, "r");
+            pfd.close();
+            fail("shouldn't be here");
+        } catch (FileNotFoundException e) {
+            // expected
+        }
+
+        // point _data at media database and read it
+        values = new ContentValues();
+        values.put("_data", "/data/data/com.android.providers.media/databases/internal.db");
+        mResolver.update(uri, values, null, null);
+        try {
+            pfd = mResolver.openFileDescriptor(uri, "r");
+            pfd.close();
+            fail("shouldn't be here");
+        } catch (FileNotFoundException e) {
+            // expected
+        }
+
+        // Insert a private file into the database. Since it's private, the media provider won't
+        // be able to open it
+        FileOutputStream fos = mContext.openFileOutput("dummy.dat", Context.MODE_PRIVATE);
+        fos.write(0);
+        fos.close();
+        File path = mContext.getFileStreamPath("dummy.dat");
+        values = new ContentValues();
+        values.put("_data", path.getAbsolutePath());
+
+        mResolver.update(uri, values, null, null);
+        try {
+            pfd = mResolver.openFileDescriptor(uri, "r");
+            pfd.close();
+            fail("shouldn't be here");
+        } catch (FileNotFoundException e) {
+            // expected
+        }
+        // now make the file world-readable
+        fos = mContext.openFileOutput("dummy.dat", Context.MODE_WORLD_READABLE);
+        fos.write(0);
+        fos.close();
+        try {
+            pfd = mResolver.openFileDescriptor(uri, "r");
+            pfd.close();
+        } catch (FileNotFoundException e) {
+            fail("failed to open file");
+        }
+        path.delete();
+
+        File sdfile = null;
+        if (Environment.isExternalStorageEmulated()) {
+            // create file on sdcard and check access via real path
+            String fileDir = Environment.getExternalStorageDirectory() +
+                    "/" + getClass().getCanonicalName() + "/test.mp3";
+            sdfile = new File(fileDir);
+            writeFile(R.raw.testmp3, sdfile.getCanonicalPath());
+            assertTrue(sdfile.exists());
+            values = new ContentValues();
+            values.put("_data", sdfile.getCanonicalPath());
+            mResolver.update(uri, values, null, null);
+            try {
+                pfd = mResolver.openFileDescriptor(uri, "r");
+
+                // get the real path from the file descriptor
+                File real = new File("/proc/self/fd/" + pfd.getFd());
+                values = new ContentValues();
+                values.put("_data", real.getCanonicalPath());
+                mResolver.update(uri, values, null, null);
+                pfd.close();
+
+                // we shouldn't be able to access this
+                try {
+                    pfd = mResolver.openFileDescriptor(uri, "r");
+                    pfd.close();
+                    fail("shouldn't be here");
+                } catch (FileNotFoundException e) {
+                    // expected
+                }
+            } catch (FileNotFoundException e) {
+                fail("couldn't open file");
+            }
+        }
+
+        // clean up
+        assertEquals(1, mResolver.delete(uri, null, null));
+        if (sdfile != null) {
+            sdfile.delete();
+        }
+    }
+
     private void writeFile(int resid, String path) throws IOException {
         File out = new File(path);
         File dir = out.getParentFile();
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AcosPiTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AcosPiTest.java
index 859f235..cc82f0c 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AcosPiTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AcosPiTest.java
@@ -22,11 +22,13 @@
 
 public class AcosPiTest extends RSBaseCompute {
     private ScriptC_acospi_f32 script_f32;
+    private ScriptC_acospi_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_acospi_f32(mRS);
+        script_f32_relaxed = new ScriptC_acospi_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_acospi_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_acospi_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_acospi_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_acospi_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_acospi_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xe1, 5);
     }
 
+    public void testAcosPiF32_relaxed() {
+        doF32_relaxed(0xe1, 5);
+    }
+
     public void testAcosPiF32_2() {
         doF32_2(0xa123, 5);
     }
 
+    public void testAcosPiF32_2_relaxed() {
+        doF32_2_relaxed(0xa123, 5);
+    }
+
     public void testAcosPiF32_3() {
         doF32_3(0x123, 5);
     }
 
+    public void testAcosPiF32_3_relaxed() {
+        doF32_3_relaxed(0x123, 5);
+    }
+
     public void testAcosPiF32_4() {
         doF32_4(0x123ef, 5);
+
     }
+    public void testAcosPiF32_4_relaxed() {
+        doF32_4_relaxed(0x123ef, 5);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AcosTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AcosTest.java
index 0553aa5..57490b2 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AcosTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AcosTest.java
@@ -22,11 +22,13 @@
 
 public class AcosTest extends RSBaseCompute {
     private ScriptC_acos_f32 script_f32;
+    private ScriptC_acos_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_acos_f32(mRS);
+        script_f32_relaxed = new ScriptC_acos_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_acos_f32_4(mIn, mOut);
             break;
+        case TEST_RELAXED_F32:
+            script_f32.forEach_acos_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32.forEach_acos_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32.forEach_acos_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32.forEach_acos_f32_4(mIn, mOut);
+            break;
+
         }
     }
 
@@ -75,4 +90,22 @@
     public void testAcosF32_4() {
         doF32_4(0x123, 4);
     }
+
+    public void testAcosF32_relaxed() {
+        doF32_relaxed(0x123e, 4);
+    }
+
+    public void testAcosF32_2_relaxed() {
+        doF32_2_relaxed(0x1e, 4);
+    }
+
+    public void testAcosF32_3_relaxed() {
+        doF32_3_relaxed(0xeaf, 4);
+    }
+
+    public void testAcosF32_4_relaxed() {
+        doF32_4_relaxed(0x123, 4);
+    }
+
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AcoshTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AcoshTest.java
index 86755b0..5947066 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AcoshTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AcoshTest.java
@@ -22,11 +22,13 @@
 
 public class AcoshTest extends RSBaseCompute {
     private ScriptC_acosh_f32 script_f32;
+    private ScriptC_acosh_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_acosh_f32(mRS);
+        script_f32_relaxed = new ScriptC_acosh_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_acosh_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_acosh_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_acosh_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_acosh_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_acosh_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -65,15 +80,32 @@
         doF32(0x12345678, 4);
     }
 
+    public void testAcoshF32_relaxed() {
+        doF32_relaxed(0x12345678, 4);
+    }
+
     public void testAcoshF32_2() {
         doF32_2(0x1234ac, 4);
     }
 
+    public void testAcoshF32_2_relaxed() {
+        doF32_2_relaxed(0x1234ac, 4);
+    }
+
     public void testAcoshF32_3() {
         doF32_3(0x123fc78, 4);
     }
 
+    public void testAcoshF32_3_relaxed() {
+        doF32_3_relaxed(0x123fc78, 4);
+    }
+
     public void testAcoshF32_4() {
         doF32_4(0x12def8, 4);
+
     }
+    public void testAcoshF32_4_relaxed() {
+        doF32_4_relaxed(0x12def8, 4);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AsinPiTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AsinPiTest.java
index d0ce9ea..64a001e 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AsinPiTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AsinPiTest.java
@@ -22,11 +22,13 @@
 
 public class AsinPiTest extends RSBaseCompute {
     private ScriptC_asinpi_f32 script_f32;
+    private ScriptC_asinpi_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_asinpi_f32(mRS);
+        script_f32_relaxed = new ScriptC_asinpi_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_asinpi_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_asinpi_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_asinpi_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_asinpi_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_asinpi_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xa, 5);
     }
 
+    public void testAsinPiF32_relaxed() {
+        doF32_relaxed(0xa, 5);
+    }
+
     public void testAsinPiF32_2() {
         doF32_2(0xe, 5);
     }
 
+    public void testAsinPiF32_2_relaxed() {
+        doF32_2_relaxed(0xe, 5);
+    }
+
     public void testAsinPiF32_3() {
         doF32_3(0x1234, 5);
     }
 
+    public void testAsinPiF32_3_relaxed() {
+        doF32_3_relaxed(0x1234, 5);
+    }
+
     public void testAsinPiF32_4() {
         doF32_4(0xaf, 5);
+
     }
+    public void testAsinPiF32_4_relaxed() {
+        doF32_4_relaxed(0xaf, 5);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AsinTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AsinTest.java
index a47e034..d7a1575 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AsinTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AsinTest.java
@@ -22,11 +22,13 @@
 
 public class AsinTest extends RSBaseCompute {
     private ScriptC_asin_f32 script_f32;
+    private ScriptC_asin_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_asin_f32(mRS);
+        script_f32_relaxed = new ScriptC_asin_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_asin_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_asin_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_asin_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_asin_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_asin_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0x12efa, 4);
     }
 
+    public void testAsinF32_relaxed() {
+        doF32_relaxed(0x12efa, 4);
+    }
+
     public void testAsinF32_2() {
         doF32_2(0x34ef, 4);
     }
 
+    public void testAsinF32_2_relaxed() {
+        doF32_2_relaxed(0x34ef, 4);
+    }
+
     public void testAsinF32_3() {
         doF32_3(0xae31, 4);
     }
 
+    public void testAsinF32_3_relaxed() {
+        doF32_3_relaxed(0xae31, 4);
+    }
+
     public void testAsinF32_4() {
         doF32_4(0x341, 4);
+
     }
+    public void testAsinF32_4_relaxed() {
+        doF32_4_relaxed(0x341, 4);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AsinhTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AsinhTest.java
index 7292626..f5b8a9b 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AsinhTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AsinhTest.java
@@ -22,11 +22,13 @@
 
 public class AsinhTest extends RSBaseCompute {
     private ScriptC_asinh_f32 script_f32;
+    private ScriptC_asinh_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_asinh_f32(mRS);
+        script_f32_relaxed = new ScriptC_asinh_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_asinh_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_asinh_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_asinh_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_asinh_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_asinh_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -65,15 +80,32 @@
         doF32(0x12, 4);
     }
 
+    public void testAsinhF32_relaxed() {
+        doF32_relaxed(0x12, 4);
+    }
+
     public void testAsinhF32_2() {
         doF32_2(0xead, 4);
     }
 
+    public void testAsinhF32_2_relaxed() {
+        doF32_2_relaxed(0xead, 4);
+    }
+
     public void testAsinhF32_3() {
         doF32_3(0xabc, 4);
     }
 
+    public void testAsinhF32_3_relaxed() {
+        doF32_3_relaxed(0xabc, 4);
+    }
+
     public void testAsinhF32_4() {
         doF32_4(0xfea, 4);
+
     }
+    public void testAsinhF32_4_relaxed() {
+        doF32_4_relaxed(0xfea, 4);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/Atan2PiTest.java b/tests/tests/renderscript/src/android/renderscript/cts/Atan2PiTest.java
index ef821c7..5cbd868 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/Atan2PiTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/Atan2PiTest.java
@@ -23,12 +23,14 @@
 
 public class Atan2PiTest extends RSBaseCompute {
     private ScriptC_atan2pi_f32 script_f32;
+    private ScriptC_atan2pi_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_atan2pi_f32(mRS);
+        script_f32_relaxed = new ScriptC_atan2pi_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,19 @@
         case TEST_F32_4:
             script_f32.forEach_atan2pi_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_atan2pi_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_atan2pi_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_atan2pi_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_atan2pi_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -77,21 +92,45 @@
         doF32(0x12678, 6);
     }
 
+    public void testAtan2PiF32_relaxed() {
+        ScriptField_atan2pi_float_input in = new ScriptField_atan2pi_float_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_relaxed(0x12678, 6);
+    }
+
     public void testAtan2PiF32_2() {
         ScriptField_atan2pi_float2_input in = new ScriptField_atan2pi_float2_input(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_2(0x1af45, 6);
     }
 
+    public void testAtan2PiF32_2_relaxed() {
+        ScriptField_atan2pi_float2_input in = new ScriptField_atan2pi_float2_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_2_relaxed(0x1af45, 6);
+    }
+
     public void testAtan2PiF32_3() {
         ScriptField_atan2pi_float3_input in = new ScriptField_atan2pi_float3_input(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_3(0x1cd345, 6);
     }
 
+    public void testAtan2PiF32_3_relaxed() {
+        ScriptField_atan2pi_float3_input in = new ScriptField_atan2pi_float3_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0x1cd345, 6);
+    }
+
     public void testAtan2PiF32_4() {
         ScriptField_atan2pi_float4_input in = new ScriptField_atan2pi_float4_input(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_4(0x1ca45, 6);
     }
+
+    public void testAtan2PiF32_4_relaxed() {
+        ScriptField_atan2pi_float4_input in = new ScriptField_atan2pi_float4_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0x1ca45, 6);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/Atan2Test.java b/tests/tests/renderscript/src/android/renderscript/cts/Atan2Test.java
index 93f2527..9eead6d 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/Atan2Test.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/Atan2Test.java
@@ -23,12 +23,14 @@
 
 public class Atan2Test extends RSBaseCompute {
     private ScriptC_atan2_f32 script_f32;
+    private ScriptC_atan2_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_atan2_f32(mRS);
+        script_f32_relaxed = new ScriptC_atan2_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,19 @@
         case TEST_F32_4:
             script_f32.forEach_atan2_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_atan2_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_atan2_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_atan2_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_atan2_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -77,21 +92,45 @@
         doF32(0x12678, 6);
     }
 
+    public void testAtan2F32_relaxed() {
+        ScriptField_atan2_f32_in in = new ScriptField_atan2_f32_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_relaxed(0x12678, 6);
+    }
+
     public void testAtan2F32_2() {
         ScriptField_atan2_f32_2_in in = new ScriptField_atan2_f32_2_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_2(0x1af45, 6);
     }
 
+    public void testAtan2F32_2_relaxed() {
+        ScriptField_atan2_f32_2_in in = new ScriptField_atan2_f32_2_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_2_relaxed(0x1af45, 6);
+    }
+
     public void testAtan2F32_3() {
         ScriptField_atan2_f32_3_in in = new ScriptField_atan2_f32_3_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_3(0x1cd345, 6);
     }
 
+    public void testAtan2F32_3_relaxed() {
+        ScriptField_atan2_f32_3_in in = new ScriptField_atan2_f32_3_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0x1cd345, 6);
+    }
+
     public void testAtan2F32_4() {
         ScriptField_atan2_f32_4_in in = new ScriptField_atan2_f32_4_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_4(0x1ca45, 6);
     }
+
+    public void testAtan2F32_4_relaxed() {
+        ScriptField_atan2_f32_4_in in = new ScriptField_atan2_f32_4_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0x1ca45, 6);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AtanPiTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AtanPiTest.java
index de22780..1fbd6dd 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AtanPiTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AtanPiTest.java
@@ -22,11 +22,13 @@
 
 public class AtanPiTest extends RSBaseCompute {
     private ScriptC_atanpi_f32 script_f32;
+    private ScriptC_atanpi_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_atanpi_f32(mRS);
+        script_f32_relaxed = new ScriptC_atanpi_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_atanpi_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_atanpi_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_atanpi_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_atanpi_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_atanpi_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0x123, 5);
     }
 
+    public void testAtanPiF32_relaxed() {
+        doF32_relaxed(0x123, 5);
+    }
+
     public void testAtanPiF32_2() {
         doF32_2(0x12, 5);
     }
 
+    public void testAtanPiF32_2_relaxed() {
+        doF32_2_relaxed(0x12, 5);
+    }
+
     public void testAtanPiF32_3() {
         doF32_3(0x847, 5);
     }
 
+    public void testAtanPiF32_3_relaxed() {
+        doF32_3_relaxed(0x847, 5);
+    }
+
     public void testAtanPiF32_4() {
         doF32_4(0xfa2, 5);
+
     }
+    public void testAtanPiF32_4_relaxed() {
+        doF32_4_relaxed(0xfa2, 5);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AtanTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AtanTest.java
index d91b6e5..a02cd23 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AtanTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AtanTest.java
@@ -22,11 +22,13 @@
 
 public class AtanTest extends RSBaseCompute {
     private ScriptC_atan_f32 script_f32;
+    private ScriptC_atan_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_atan_f32(mRS);
+        script_f32_relaxed = new ScriptC_atan_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_atan_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_atan_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_atan_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_atan_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_atan_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0x12a, 5);
     }
 
+    public void testAtanF32_relaxed() {
+        doF32_relaxed(0x12a, 5);
+    }
+
     public void testAtanF32_2() {
         doF32_2(0xad, 5);
     }
 
+    public void testAtanF32_2_relaxed() {
+        doF32_2_relaxed(0xad, 5);
+    }
+
     public void testAtanF32_3() {
         doF32_3(0xafe, 5);
     }
 
+    public void testAtanF32_3_relaxed() {
+        doF32_3_relaxed(0xafe, 5);
+    }
+
     public void testAtanF32_4() {
         doF32_4(0x1238, 5);
+
     }
+    public void testAtanF32_4_relaxed() {
+        doF32_4_relaxed(0x1238, 5);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AtanhTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AtanhTest.java
index 25fa859..d9753b3 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AtanhTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AtanhTest.java
@@ -22,11 +22,13 @@
 
 public class AtanhTest extends RSBaseCompute {
     private ScriptC_atanh_f32 script_f32;
+    private ScriptC_atanh_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_atanh_f32(mRS);
+        script_f32_relaxed = new ScriptC_atanh_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_atanh_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_atanh_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_atanh_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_atanh_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_atanh_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -65,15 +80,32 @@
         doF32(0xace, 5);
     }
 
+    public void testAtanhF32_relaxed() {
+        doF32_relaxed(0xace, 5);
+    }
+
     public void testAtanhF32_2() {
         doF32_2(0xdae, 5);
     }
 
+    public void testAtanhF32_2_relaxed() {
+        doF32_2_relaxed(0xdae, 5);
+    }
+
     public void testAtanhF32_3() {
         doF32_3(0x123, 5);
     }
 
+    public void testAtanhF32_3_relaxed() {
+        doF32_3_relaxed(0x123, 5);
+    }
+
     public void testAtanhF32_4() {
         doF32_4(0x6480, 5);
+
     }
+    public void testAtanhF32_4_relaxed() {
+        doF32_4_relaxed(0x6480, 5);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/CbrtTest.java b/tests/tests/renderscript/src/android/renderscript/cts/CbrtTest.java
index 15a509d..374daba 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/CbrtTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/CbrtTest.java
@@ -22,11 +22,13 @@
 
 public class CbrtTest extends RSBaseCompute {
     private ScriptC_cbrt_f32 script_f32;
+    private ScriptC_cbrt_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_cbrt_f32(mRS);
+        script_f32_relaxed = new ScriptC_cbrt_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_cbrt_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_cbrt_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_cbrt_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_cbrt_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_cbrt_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xabe, 2);
     }
 
+    public void testCbrtF32_relaxed() {
+        doF32_relaxed(0xabe, 2);
+    }
+
     public void testCbrtF32_2() {
         doF32_2(0x78, 2);
     }
 
+    public void testCbrtF32_2_relaxed() {
+        doF32_2_relaxed(0x78, 2);
+    }
+
     public void testCbrtF32_3() {
         doF32_3(0x1e, 2);
     }
 
+    public void testCbrtF32_3_relaxed() {
+        doF32_3_relaxed(0x1e, 2);
+    }
+
     public void testCbrtF32_4() {
         doF32_4(0xfe2, 2);
+
     }
+    public void testCbrtF32_4_relaxed() {
+        doF32_4_relaxed(0xfe2, 2);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/CeilTest.java b/tests/tests/renderscript/src/android/renderscript/cts/CeilTest.java
index 4ee2ade..4f2750f 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/CeilTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/CeilTest.java
@@ -22,11 +22,13 @@
 
 public class CeilTest extends RSBaseCompute {
     private ScriptC_ceil_f32 script_f32;
+    private ScriptC_ceil_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_ceil_f32(mRS);
+        script_f32_relaxed = new ScriptC_ceil_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_ceil_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_ceil_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_ceil_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_ceil_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_ceil_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0x12345ace, 0);
     }
 
+    public void testCeilF32_relaxed() {
+        doF32_relaxed(0x12345ace, 0);
+    }
+
     public void testCeilF32_2() {
         doF32_2(0x1ac478, 0);
     }
 
+    public void testCeilF32_2_relaxed() {
+        doF32_2_relaxed(0x1ac478, 0);
+    }
+
     public void testCeilF32_3() {
         doF32_3(0xacef, 0);
     }
 
+    public void testCeilF32_3_relaxed() {
+        doF32_3_relaxed(0xacef, 0);
+    }
+
     public void testCeilF32_4() {
         doF32_4(0xef12, 0);
+
     }
+    public void testCeilF32_4_relaxed() {
+        doF32_4_relaxed(0xef12, 0);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/CopysignTest.java b/tests/tests/renderscript/src/android/renderscript/cts/CopysignTest.java
index 5601e46..a28caef 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/CopysignTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/CopysignTest.java
@@ -23,12 +23,14 @@
 
 public class CopysignTest extends RSBaseCompute {
     private ScriptC_copysign_f32 script_f32;
+    private ScriptC_copysign_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_copysign_f32(mRS);
+        script_f32_relaxed = new ScriptC_copysign_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,19 @@
         case TEST_F32_4:
             script_f32.forEach_copysign_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_copysign_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_copysign_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_copysign_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_copysign_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -81,33 +96,54 @@
         doF32(0x12ac5678, 0);
     }
 
+    public void testCopysignF32_relaxed() {
+        ScriptField_copysign_f32_input in = new ScriptField_copysign_f32_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_relaxed(0x12ac5678, 0);
+    }
+
     /**
      * Tests copysign(float2, float2).
      */
     public void testCopysignF32_2() {
-        ScriptField_copysign_f32_2_input in =
-                new ScriptField_copysign_f32_2_input(mRS, INPUTSIZE);
+        ScriptField_copysign_f32_2_input in = new ScriptField_copysign_f32_2_input(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_2(0x12fe5678, 0);
     }
 
+    public void testCopysignF32_2_relaxed() {
+        ScriptField_copysign_f32_2_input in = new ScriptField_copysign_f32_2_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_2_relaxed(0x12fe5678, 0);
+    }
+
     /**
      * Tests copysign(float3, float3).
      */
     public void testCopysignF32_3() {
-        ScriptField_copysign_f32_3_input in =
-                new ScriptField_copysign_f32_3_input(mRS, INPUTSIZE);
+        ScriptField_copysign_f32_3_input in = new ScriptField_copysign_f32_3_input(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_3(0x1c345678, 0);
     }
 
+    public void testCopysignF32_3_relaxed() {
+        ScriptField_copysign_f32_3_input in = new ScriptField_copysign_f32_3_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0x1c345678, 0);
+    }
+
     /**
      * Tests copysign(float4, float4).
      */
     public void testCopysignF32_4() {
-        ScriptField_copysign_f32_4_input in =
-                new ScriptField_copysign_f32_4_input(mRS, INPUTSIZE);
+        ScriptField_copysign_f32_4_input in = new ScriptField_copysign_f32_4_input(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_4(0x123a5f7d, 0);
     }
+
+    public void testCopysignF32_4_relaxed() {
+        ScriptField_copysign_f32_4_input in = new ScriptField_copysign_f32_4_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0x123a5f7d, 0);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/CosTest.java b/tests/tests/renderscript/src/android/renderscript/cts/CosTest.java
index ebf4940..dd5db8a 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/CosTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/CosTest.java
@@ -22,11 +22,13 @@
 
 public class CosTest extends RSBaseCompute {
     private ScriptC_cos_f32 script_f32;
+    private ScriptC_cos_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_cos_f32(mRS);
+        script_f32_relaxed = new ScriptC_cos_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_cos_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_cos_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_cos_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_cos_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_cos_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xe, 4);
     }
 
+    public void testCosF32_relaxed() {
+        doF32_relaxed(0xe, 4);
+    }
+
     public void testCosF32_2() {
         doF32_2(0xb, 4);
     }
 
+    public void testCosF32_2_relaxed() {
+        doF32_2_relaxed(0xb, 4);
+    }
+
     public void testCosF32_3() {
         doF32_3(0x12a, 4);
     }
 
+    public void testCosF32_3_relaxed() {
+        doF32_3_relaxed(0x12a, 4);
+    }
+
     public void testCosF32_4() {
         doF32_4(0x98a, 4);
+
     }
+    public void testCosF32_4_relaxed() {
+        doF32_4_relaxed(0x98a, 4);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/CoshTest.java b/tests/tests/renderscript/src/android/renderscript/cts/CoshTest.java
index 7e46b4c..6762921 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/CoshTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/CoshTest.java
@@ -23,11 +23,13 @@
 public class CoshTest extends RSBaseCompute {
 
     private ScriptC_cosh_f32 script_f32;
+    private ScriptC_cosh_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_cosh_f32(mRS);
+        script_f32_relaxed = new ScriptC_cosh_f32_relaxed(mRS);
     }
 
     @Override
@@ -45,6 +47,19 @@
         case TEST_F32_4:
             script_f32.forEach_cosh_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_cosh_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_cosh_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_cosh_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_cosh_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -65,15 +80,32 @@
         doF32(0xfe, 4);
     }
 
+    public void testCoshF32_relaxed() {
+        doF32_relaxed(0xfe, 4);
+    }
+
     public void testCoshF32_2() {
         doF32_2(0x71, 4);
     }
 
+    public void testCoshF32_2_relaxed() {
+        doF32_2_relaxed(0x71, 4);
+    }
+
     public void testCoshF32_3() {
         doF32_3(0xa, 4);
     }
 
+    public void testCoshF32_3_relaxed() {
+        doF32_3_relaxed(0xa, 4);
+    }
+
     public void testCoshF32_4() {
         doF32_4(0xabe, 4);
+
     }
+    public void testCoshF32_4_relaxed() {
+        doF32_4_relaxed(0xabe, 4);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/CrossTest.java b/tests/tests/renderscript/src/android/renderscript/cts/CrossTest.java
index a32eafd..a5bc267 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/CrossTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/CrossTest.java
@@ -23,12 +23,14 @@
 
 public class CrossTest extends RSBaseCompute {
     private ScriptC_cross_f32 script_f32;
+    private ScriptC_cross_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_cross_f32(mRS);
+        script_f32_relaxed = new ScriptC_cross_f32_relaxed(mRS);
     }
 
     @Override
@@ -40,7 +42,14 @@
         case TEST_F32_4:
             script_f32.forEach_cross_f32_4(mIn, mOut);
             break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_cross_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_cross_f32_4(mIn, mOut);
+            break;
         }
+
     }
 
     @Override
@@ -77,6 +86,13 @@
         doF32_3(0x12345678, 0);
     }
 
+    public void testCrossF32_3_relaxed() {
+        ScriptField__cross_f32_3_struct in = new ScriptField__cross_f32_3_struct(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0x12345678, 0);
+    }
+
+
     /**
      * cross test for float4
      */
@@ -85,4 +101,11 @@
         mIn = in.getAllocation();
         doF32_4(0x12ac5678, 0);
     }
+
+    public void testCrossF32_4_relaxed() {
+        ScriptField__cross_f32_4_struct in = new ScriptField__cross_f32_4_struct(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0x12ac5678, 0);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/DegreesTest.java b/tests/tests/renderscript/src/android/renderscript/cts/DegreesTest.java
index bb6e18d..38c4824 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/DegreesTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/DegreesTest.java
@@ -22,11 +22,13 @@
 
 public class DegreesTest extends RSBaseCompute {
     private ScriptC_degrees_f32 script_f32;
+    private ScriptC_degrees_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_degrees_f32(mRS);
+        script_f32_relaxed = new ScriptC_degrees_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_degrees_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_degrees_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_degrees_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_degrees_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_degrees_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -68,6 +83,10 @@
         doF32(0x12345678, 3);
     }
 
+    public void testDegreesF32_relaxed() {
+        doF32_relaxed(0x12345678, 3);
+    }
+
     /**
      * degrees test for float2
      */
@@ -75,6 +94,10 @@
         doF32_2(0x12353678, 3);
     }
 
+    public void testDegreesF32_2_relaxed() {
+        doF32_2_relaxed(0x12353678, 3);
+    }
+
     /**
      * degrees test for float3
      */
@@ -82,10 +105,19 @@
         doF32_3(0x12312678, 3);
     }
 
+    public void testDegreesF32_3_relaxed() {
+        doF32_3_relaxed(0x12312678, 3);
+    }
+
     /**
      * degrees test for float4
      */
     public void testDegreesF32_4() {
         doF32_4(0x12675678, 3);
+
     }
+    public void testDegreesF32_4_relaxed() {
+        doF32_4_relaxed(0x12675678, 3);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/Exp10Test.java b/tests/tests/renderscript/src/android/renderscript/cts/Exp10Test.java
index 6359765..d8ab93a 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/Exp10Test.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/Exp10Test.java
@@ -22,11 +22,13 @@
 
 public class Exp10Test extends RSBaseCompute {
     private ScriptC_exp10_f32 script_f32;
+    private ScriptC_exp10_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_exp10_f32(mRS);
+        script_f32_relaxed = new ScriptC_exp10_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_exp10_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_exp10_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_exp10_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_exp10_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_exp10_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0x81, 3);
     }
 
+    public void testExp10F32_relaxed() {
+        doF32_relaxed(0x81, 3);
+    }
+
     public void testExp10F32_2() {
         doF32_2(0xa42, 3);
     }
 
+    public void testExp10F32_2_relaxed() {
+        doF32_2_relaxed(0xa42, 3);
+    }
+
     public void testExp10F32_3() {
         doF32_3(0xace2, 3);
     }
 
+    public void testExp10F32_3_relaxed() {
+        doF32_3_relaxed(0xace2, 3);
+    }
+
     public void testExp10F32_4() {
         doF32_4(0x918, 3);
+
     }
+    public void testExp10F32_4_relaxed() {
+        doF32_4_relaxed(0x918, 3);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/Exp2Test.java b/tests/tests/renderscript/src/android/renderscript/cts/Exp2Test.java
index 4f9335e..108c273 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/Exp2Test.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/Exp2Test.java
@@ -22,11 +22,13 @@
 
 public class Exp2Test extends RSBaseCompute {
     private ScriptC_exp2_f32 script_f32;
+    private ScriptC_exp2_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_exp2_f32(mRS);
+        script_f32_relaxed = new ScriptC_exp2_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_exp2_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_exp2_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_exp2_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_exp2_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_exp2_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xa6, 3);
     }
 
+    public void testExp2F32_relaxed() {
+        doF32_relaxed(0xa6, 3);
+    }
+
     public void testExp2F32_2() {
         doF32_2(0xab2, 3);
     }
 
+    public void testExp2F32_2_relaxed() {
+        doF32_2_relaxed(0xab2, 3);
+    }
+
     public void testExp2F32_3() {
         doF32_3(0x617a, 3);
     }
 
+    public void testExp2F32_3_relaxed() {
+        doF32_3_relaxed(0x617a, 3);
+    }
+
     public void testExp2F32_4() {
         doF32_4(0xabc3, 3);
+
     }
+    public void testExp2F32_4_relaxed() {
+        doF32_4_relaxed(0xabc3, 3);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ExpTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ExpTest.java
index 3542f6f..6f85873 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ExpTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ExpTest.java
@@ -22,11 +22,13 @@
 
 public class ExpTest extends RSBaseCompute {
     private ScriptC_exp_f32 script_f32;
+    private ScriptC_exp_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_exp_f32(mRS);
+        script_f32_relaxed = new ScriptC_exp_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_exp_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_exp_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_exp_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_exp_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_exp_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xa28, 3);
     }
 
+    public void testExpF32_relaxed() {
+        doF32_relaxed(0xa28, 3);
+    }
+
     public void testExpF32_2() {
         doF32_2(0xfeb4, 3);
     }
 
+    public void testExpF32_2_relaxed() {
+        doF32_2_relaxed(0xfeb4, 3);
+    }
+
     public void testExpF32_3() {
         doF32_3(0xab2, 3);
     }
 
+    public void testExpF32_3_relaxed() {
+        doF32_3_relaxed(0xab2, 3);
+    }
+
     public void testExpF32_4() {
         doF32_4(0x7a6, 3);
+
     }
+    public void testExpF32_4_relaxed() {
+        doF32_4_relaxed(0x7a6, 3);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/Expm1Test.java b/tests/tests/renderscript/src/android/renderscript/cts/Expm1Test.java
index f501c39..1160b54 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/Expm1Test.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/Expm1Test.java
@@ -22,11 +22,13 @@
 
 public class Expm1Test extends RSBaseCompute {
     private ScriptC_expm1_f32 script_f32;
+    private ScriptC_expm1_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_expm1_f32(mRS);
+        script_f32_relaxed = new ScriptC_expm1_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_expm1_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_expm1_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_expm1_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_expm1_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_expm1_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xa29, 3);
     }
 
+    public void testExpm1F32_relaxed() {
+        doF32_relaxed(0xa29, 3);
+    }
+
     public void testExpm1F32_2() {
         doF32_2(0x8a2, 3);
     }
 
+    public void testExpm1F32_2_relaxed() {
+        doF32_2_relaxed(0x8a2, 3);
+    }
+
     public void testExpm1F32_3() {
         doF32_3(0xa7c, 3);
     }
 
+    public void testExpm1F32_3_relaxed() {
+        doF32_3_relaxed(0xa7c, 3);
+    }
+
     public void testExpm1F32_4() {
         doF32_4(0x81a, 3);
+
     }
+    public void testExpm1F32_4_relaxed() {
+        doF32_4_relaxed(0x81a, 3);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/FabsTest.java b/tests/tests/renderscript/src/android/renderscript/cts/FabsTest.java
index a50162c..e8739d4 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/FabsTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/FabsTest.java
@@ -21,11 +21,13 @@
 
 public class FabsTest extends RSBaseCompute {
     private ScriptC_fabs_f32 script_f32;
+    private ScriptC_fabs_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_fabs_f32(mRS);
+        script_f32_relaxed = new ScriptC_fabs_f32_relaxed(mRS);
     }
 
     @Override
@@ -43,6 +45,19 @@
         case TEST_F32_4:
             script_f32.forEach_fabs_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_fabs_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_fabs_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_fabs_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_fabs_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -63,15 +78,32 @@
         doF32(0xa, 0);
     }
 
+    public void testfabsF32_relaxed() {
+        doF32_relaxed(0xa, 0);
+    }
+
     public void testfabsF32_2() {
         doF32_2(0xb, 0);
     }
 
+    public void testfabsF32_2_relaxed() {
+        doF32_2_relaxed(0xb, 0);
+    }
+
     public void testfabsF32_3() {
         doF32_3(0xc, 0);
     }
 
+    public void testfabsF32_3_relaxed() {
+        doF32_3_relaxed(0xc, 0);
+    }
+
     public void testfabsF32_4() {
         doF32_4(0xd, 0);
+
     }
+    public void testfabsF32_4_relaxed() {
+        doF32_4_relaxed(0xd, 0);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/FdimTest.java b/tests/tests/renderscript/src/android/renderscript/cts/FdimTest.java
index 099ca3d..144c258 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/FdimTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/FdimTest.java
@@ -22,12 +22,14 @@
 
 public class FdimTest extends RSBaseCompute {
     private ScriptC_fdim_f32 script_f32;
+    private ScriptC_fdim_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_fdim_f32(mRS);
+        script_f32_relaxed = new ScriptC_fdim_f32_relaxed(mRS);
     }
 
     @Override
@@ -45,6 +47,19 @@
         case TEST_F32_4:
             script_f32.forEach_fdim_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_fdim_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_fdim_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_fdim_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_fdim_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -76,21 +91,45 @@
         doF32(0x12678, 0);
     }
 
+    public void testfdimF32_relaxed() {
+        ScriptField_fdim_f32_input floatArray = new ScriptField_fdim_f32_input(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_relaxed(0x12678, 0);
+    }
+
     public void testfdimF32_2() {
         ScriptField_fdim_f32_2_input floatArray = new ScriptField_fdim_f32_2_input(mRS, INPUTSIZE);
         mIn = floatArray.getAllocation();
         doF32_2(0x1af45, 0);
     }
 
+    public void testfdimF32_2_relaxed() {
+        ScriptField_fdim_f32_2_input floatArray = new ScriptField_fdim_f32_2_input(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_2_relaxed(0x1af45, 0);
+    }
+
     public void testfdimF32_3() {
         ScriptField_fdim_f32_3_input floatArray = new ScriptField_fdim_f32_3_input(mRS, INPUTSIZE);
         mIn = floatArray.getAllocation();
         doF32_3(0x1cd345, 0);
     }
 
+    public void testfdimF32_3_relaxed() {
+        ScriptField_fdim_f32_3_input floatArray = new ScriptField_fdim_f32_3_input(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_3_relaxed(0x1cd345, 0);
+    }
+
     public void testfdimF32_4() {
         ScriptField_fdim_f32_4_input floatArray = new ScriptField_fdim_f32_4_input(mRS, INPUTSIZE);
         mIn = floatArray.getAllocation();
         doF32_4(0x1ca45, 0);
     }
+
+    public void testfdimF32_4_relaxed() {
+        ScriptField_fdim_f32_4_input floatArray = new ScriptField_fdim_f32_4_input(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_4_relaxed(0x1ca45, 0);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/FloorTest.java b/tests/tests/renderscript/src/android/renderscript/cts/FloorTest.java
index 78b819b..60251ad 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/FloorTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/FloorTest.java
@@ -21,11 +21,13 @@
 
 public class FloorTest extends RSBaseCompute {
     private ScriptC_floor_f32 script_f32;
+    private ScriptC_floor_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_floor_f32(mRS);
+        script_f32_relaxed = new ScriptC_floor_f32_relaxed(mRS);
     }
 
     @Override
@@ -43,6 +45,19 @@
         case TEST_F32_4:
             script_f32.forEach_floor_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_floor_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_floor_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_floor_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_floor_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -63,15 +78,32 @@
         doF32(0xa, 0);
     }
 
+    public void testfloorF32_relaxed() {
+        doF32_relaxed(0xa, 0);
+    }
+
     public void testfloorF32_2() {
         doF32_2(0xb, 0);
     }
 
+    public void testfloorF32_2_relaxed() {
+        doF32_2_relaxed(0xb, 0);
+    }
+
     public void testfloorF32_3() {
         doF32_3(0xef1, 0);
     }
 
+    public void testfloorF32_3_relaxed() {
+        doF32_3_relaxed(0xef1, 0);
+    }
+
     public void testfloorF32_4() {
         doF32_4(0xefa12, 0);
+
     }
+    public void testfloorF32_4_relaxed() {
+        doF32_4_relaxed(0xefa12, 0);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/FmaTest.java b/tests/tests/renderscript/src/android/renderscript/cts/FmaTest.java
index 2fb29b7..40fac7e 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/FmaTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/FmaTest.java
@@ -23,12 +23,14 @@
 
 public class FmaTest extends RSBaseCompute {
     private ScriptC_fma_f32 script_f32;
+    private ScriptC_fma_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_fma_f32(mRS);
+        script_f32_relaxed = new ScriptC_fma_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,19 @@
         case TEST_F32_4:
             script_f32.forEach_fma_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_fma_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_fma_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_fma_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_fma_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -77,21 +92,45 @@
         doF32(0xea1, 0);
     }
 
+    public void testFmaF32_relaxed() {
+        ScriptField_Floats floatArray = new ScriptField_Floats(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_relaxed(0xea1, 0);
+    }
+
     public void testFmaF32_2() {
         ScriptField_Floats2 floatArray = new ScriptField_Floats2(mRS, INPUTSIZE);
         mIn = floatArray.getAllocation();
         doF32_2(0x12a, 0);
     }
 
+    public void testFmaF32_2_relaxed() {
+        ScriptField_Floats2 floatArray = new ScriptField_Floats2(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_2_relaxed(0x12a, 0);
+    }
+
     public void testFmaF32_3() {
         ScriptField_Floats3 floatArray = new ScriptField_Floats3(mRS, INPUTSIZE);
         mIn = floatArray.getAllocation();
         doF32_3(0xfae, 0);
     }
 
+    public void testFmaF32_3_relaxed() {
+        ScriptField_Floats3 floatArray = new ScriptField_Floats3(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_3_relaxed(0xfae, 0);
+    }
+
     public void testFmaF32_4() {
         ScriptField_Floats4 floatArray = new ScriptField_Floats4(mRS, INPUTSIZE);
         mIn = floatArray.getAllocation();
         doF32_4(0x87a, 0);
     }
+
+    public void testFmaF32_4_relaxed() {
+        ScriptField_Floats4 floatArray = new ScriptField_Floats4(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_4_relaxed(0x87a, 0);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/FmaxTest.java b/tests/tests/renderscript/src/android/renderscript/cts/FmaxTest.java
index eca16a0..99f2b42 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/FmaxTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/FmaxTest.java
@@ -22,12 +22,14 @@
 
 public class FmaxTest extends RSBaseCompute {
     private ScriptC_fmax_f32 script_f32;
+    private ScriptC_fmax_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_fmax_f32(mRS);
+        script_f32_relaxed = new ScriptC_fmax_f32_relaxed(mRS);
     }
 
     @Override
@@ -45,6 +47,19 @@
         case TEST_F32_4:
             script_f32.forEach_fmax_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_fmax_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_fmax_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_fmax_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_fmax_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -76,21 +91,45 @@
         doF32(0x12678, 0);
     }
 
+    public void testfmaxF32_relaxed() {
+        ScriptField_fmax_f32_in in = new ScriptField_fmax_f32_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_relaxed(0x12678, 0);
+    }
+
     public void testfmaxF32_2() {
         ScriptField_fmax_f32_2_in in = new ScriptField_fmax_f32_2_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_2(0x12ace, 0);
     }
 
+    public void testfmaxF32_2_relaxed() {
+        ScriptField_fmax_f32_2_in in = new ScriptField_fmax_f32_2_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_2_relaxed(0x12ace, 0);
+    }
+
     public void testfmaxF32_3() {
         ScriptField_fmax_f32_3_in in = new ScriptField_fmax_f32_3_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_3(0x12e8, 0);
     }
 
+    public void testfmaxF32_3_relaxed() {
+        ScriptField_fmax_f32_3_in in = new ScriptField_fmax_f32_3_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0x12e8, 0);
+    }
+
     public void testfmaxF32_4() {
         ScriptField_fmax_f32_4_in in = new ScriptField_fmax_f32_4_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_4(0xeac, 0);
     }
+
+    public void testfmaxF32_4_relaxed() {
+        ScriptField_fmax_f32_4_in in = new ScriptField_fmax_f32_4_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0xeac, 0);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/FminTest.java b/tests/tests/renderscript/src/android/renderscript/cts/FminTest.java
index da90e14..b43b828 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/FminTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/FminTest.java
@@ -22,12 +22,14 @@
 
 public class FminTest extends RSBaseCompute {
     private ScriptC_fmin_f32 script_f32;
+    private ScriptC_fmin_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_fmin_f32(mRS);
+        script_f32_relaxed = new ScriptC_fmin_f32_relaxed(mRS);
     }
 
     @Override
@@ -45,6 +47,19 @@
         case TEST_F32_4:
             script_f32.forEach_fmin_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_fmin_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_fmin_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_fmin_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_fmin_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -76,21 +91,45 @@
         doF32(0x12678, 0);
     }
 
+    public void testfminF32_relaxed() {
+        ScriptField_fmin_f32_in in = new ScriptField_fmin_f32_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_relaxed(0x12678, 0);
+    }
+
     public void testfminF32_2() {
         ScriptField_fmin_f32_2_in in = new ScriptField_fmin_f32_2_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_2(0x12ace, 0);
     }
 
+    public void testfminF32_2_relaxed() {
+        ScriptField_fmin_f32_2_in in = new ScriptField_fmin_f32_2_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_2_relaxed(0x12ace, 0);
+    }
+
     public void testfminF32_3() {
         ScriptField_fmin_f32_3_in in = new ScriptField_fmin_f32_3_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_3(0x12e8, 0);
     }
 
+    public void testfminF32_3_relaxed() {
+        ScriptField_fmin_f32_3_in in = new ScriptField_fmin_f32_3_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0x12e8, 0);
+    }
+
     public void testfminF32_4() {
         ScriptField_fmin_f32_4_in in = new ScriptField_fmin_f32_4_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_4(0xeac, 0);
     }
+
+    public void testfminF32_4_relaxed() {
+        ScriptField_fmin_f32_4_in in = new ScriptField_fmin_f32_4_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0xeac, 0);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/FmodTest.java b/tests/tests/renderscript/src/android/renderscript/cts/FmodTest.java
index 47fe202..d0d911d 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/FmodTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/FmodTest.java
@@ -23,12 +23,14 @@
 
 public class FmodTest extends RSBaseCompute {
     private ScriptC_fmod_f32 script_f32;
+    private ScriptC_fmod_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_fmod_f32(mRS);
+        script_f32_relaxed = new ScriptC_fmod_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,19 @@
         case TEST_F32_4:
             script_f32.forEach_fmod_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_fmod_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_fmod_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_fmod_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_fmod_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -80,6 +95,12 @@
         doF32(0x12345678, 0);
     }
 
+    public void testfmodF32_relaxed() {
+        ScriptField_fmod_input_f32 floatArray = new ScriptField_fmod_input_f32(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_relaxed(0x12345678, 0);
+    }
+
     /**
      * This method is used for testing the fmod() function with F32_2
      */
@@ -89,6 +110,12 @@
         doF32_2(0x12345, 0);
     }
 
+    public void testfmodF32_2_relaxed() {
+        ScriptField_fmod_input_f32_2 floatArray = new ScriptField_fmod_input_f32_2(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_2_relaxed(0x12345, 0);
+    }
+
     /**
      * This method is used for testing the fmod() function with F32_3
      */
@@ -98,6 +125,12 @@
         doF32_3(0x12345, 0);
     }
 
+    public void testfmodF32_3_relaxed() {
+        ScriptField_fmod_input_f32_3 floatArray = new ScriptField_fmod_input_f32_3(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_3_relaxed(0x12345, 0);
+    }
+
     /**
      * This method is used for testing the fmod() function with F32_4
      */
@@ -106,4 +139,10 @@
         mIn = floatArray.getAllocation();
         doF32_4(0x12345, 0);
     }
+
+    public void testfmodF32_4_relaxed() {
+        ScriptField_fmod_input_f32_4 floatArray = new ScriptField_fmod_input_f32_4(mRS, INPUTSIZE);
+        mIn = floatArray.getAllocation();
+        doF32_4_relaxed(0x12345, 0);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/HypotTest.java b/tests/tests/renderscript/src/android/renderscript/cts/HypotTest.java
index f6a280f..c5ce887 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/HypotTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/HypotTest.java
@@ -23,12 +23,14 @@
 
 public class HypotTest extends RSBaseCompute {
     private ScriptC_hypot_f32 script_f32;
+    private ScriptC_hypot_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_hypot_f32(mRS);
+        script_f32_relaxed = new ScriptC_hypot_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,19 @@
         case TEST_F32_4:
             script_f32.forEach_hypot_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_hypot_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_hypot_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_hypot_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_hypot_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -77,21 +92,45 @@
         doF32(0x123678, 4);
     }
 
+    public void testHypotF32_relaxed() {
+        ScriptField_hypot_f32_in in = new ScriptField_hypot_f32_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_relaxed(0x123678, 4);
+    }
+
     public void testHypotF32_2() {
         ScriptField_hypot_f32_2_in in = new ScriptField_hypot_f32_2_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_2(0x1234a5, 4);
     }
 
+    public void testHypotF32_2_relaxed() {
+        ScriptField_hypot_f32_2_in in = new ScriptField_hypot_f32_2_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_2_relaxed(0x1234a5, 4);
+    }
+
     public void testHypotF32_3() {
         ScriptField_hypot_f32_3_in in = new ScriptField_hypot_f32_3_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_3(0x1af345, 4);
     }
 
+    public void testHypotF32_3_relaxed() {
+        ScriptField_hypot_f32_3_in in = new ScriptField_hypot_f32_3_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0x1af345, 4);
+    }
+
     public void testHypotF32_4() {
         ScriptField_hypot_f32_4_in in = new ScriptField_hypot_f32_4_in(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_4(0x12ce45, 4);
     }
+
+    public void testHypotF32_4_relaxed() {
+        ScriptField_hypot_f32_4_in in = new ScriptField_hypot_f32_4_in(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0x12ce45, 4);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicBase.java b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicBase.java
new file mode 100644
index 0000000..f5a6eee
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicBase.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package android.renderscript.cts;
+
+import android.util.Log;
+import android.renderscript.RenderScript;
+import android.renderscript.Allocation;
+import android.renderscript.Element;
+import android.renderscript.Type;
+
+public class IntrinsicBase extends RSBaseCompute {
+    protected final String TAG = "Img";
+
+    protected Allocation mAllocSrc;
+    protected Allocation mAllocRef;
+    protected Allocation mAllocDst;
+    protected ScriptC_verify mVerify;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mVerify = new ScriptC_verify(mRS);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        if (mVerify != null) {
+            mVerify.destroy();
+            mVerify = null;
+        }
+        super.tearDown();
+    }
+
+    protected void makeSource(int w, int h, Element e) {
+        System.gc();
+
+        if (mAllocSrc != null) {
+            mAllocSrc.destroy();
+        }
+        if (mAllocRef != null) {
+            mAllocRef.destroy();
+        }
+        if (mAllocDst != null) {
+            mAllocDst.destroy();
+        }
+
+        Type.Builder tb = new Type.Builder(mRS, e);
+        tb.setX(w);
+        tb.setY(h);
+        Type t = tb.create();
+        mAllocSrc = Allocation.createTyped(mRS, t);
+        mAllocRef = Allocation.createTyped(mRS, t);
+        mAllocDst = Allocation.createTyped(mRS, t);
+
+        java.util.Random r = new java.util.Random(100);
+
+        int vs = e.getVectorSize();
+        if (e.getDataType() == Element.DataType.FLOAT_32) {
+            float f[] = new float[w * h * vs];
+            for (int y=0; y < h; y++) {
+                for (int x = 0; x < w; x++) {
+                    for (int v = 0; v < vs; v++) {
+                        f[(y * w + x) * vs + v] = r.nextFloat();
+                    }
+                }
+            }
+            mAllocSrc.copyFromUnchecked(f);
+        }
+
+        if (e.getDataType() == Element.DataType.UNSIGNED_8) {
+            byte f[] = new byte[w * h * vs];
+            for (int y=0; y < h; y++) {
+                for (int x = 0; x < w; x++) {
+                    for (int v = 0; v < vs; v++) {
+                        f[(y * w + x) * vs + v] = (byte)r.nextInt(256);
+                    }
+                }
+            }
+            mAllocSrc.copyFromUnchecked(f);
+        }
+
+    }
+
+
+    protected void checkError() {
+        mRS.finish();
+        mVerify.invoke_checkError();
+        waitForMessage();
+        checkForErrors();
+    }
+
+}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve3x3.java b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve3x3.java
new file mode 100644
index 0000000..e74536b
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve3x3.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package android.renderscript.cts;
+
+import android.renderscript.*;
+import android.util.Log;
+
+public class IntrinsicConvolve3x3 extends IntrinsicBase {
+    private void testConvolve3(int w, int h, Element.DataType dt, int vecSize, int en) {
+        float cf1[] = {0.f, 0.f, 0.f,  0.f, 1.f, 0.f,  0.f, 0.f, 0.f};
+        float cf2[] = {0.f, -1.f, 0.f,  -1.f, 5.f, -1.f,  0.f, -1.f, 0.f};
+
+
+        Element e;
+        if (vecSize > 1) {
+            e = Element.createVector(mRS, dt, vecSize);
+        } else {
+            if (dt == Element.DataType.UNSIGNED_8) {
+                e = Element.U8(mRS);
+            } else {
+                e = Element.F32(mRS);
+            }
+        }
+
+        System.gc();
+        makeSource(w, h, e);
+
+
+        ScriptIntrinsicConvolve3x3 si = ScriptIntrinsicConvolve3x3.create(mRS, e);
+        si.setCoefficients(cf1);
+        si.setInput(mAllocSrc);
+        si.forEach(mAllocRef);
+
+        ScriptC_intrinsic_convolve3x3 sr = new ScriptC_intrinsic_convolve3x3(mRS);
+        sr.set_gCoeffs(cf1);
+        sr.set_gIn(mAllocSrc);
+        sr.set_gWidth(w);
+        sr.set_gHeight(h);
+        if (dt == Element.DataType.UNSIGNED_8) {
+            switch(vecSize) {
+            case 4:
+                sr.forEach_convolve_U4(mAllocDst);
+                break;
+            case 3:
+                sr.forEach_convolve_U3(mAllocDst);
+                break;
+            case 2:
+                sr.forEach_convolve_U2(mAllocDst);
+                break;
+            case 1:
+                sr.forEach_convolve_U1(mAllocDst);
+                break;
+            }
+        } else {
+            switch(vecSize) {
+            case 4:
+                sr.forEach_convolve_F4(mAllocDst);
+                break;
+            case 3:
+                sr.forEach_convolve_F3(mAllocDst);
+                break;
+            case 2:
+                sr.forEach_convolve_F2(mAllocDst);
+                break;
+            case 1:
+                sr.forEach_convolve_F1(mAllocDst);
+                break;
+            }
+        }
+
+        android.util.Log.e("RSI test", "test convolve U8_" + vecSize + " 1 " + w + ", " + h);
+        mVerify.invoke_verify(mAllocRef, mAllocDst, en);
+
+        si.setCoefficients(cf2);
+        sr.set_gCoeffs(cf2);
+        si.forEach(mAllocRef);
+        if (dt == Element.DataType.UNSIGNED_8) {
+            switch(vecSize) {
+            case 4:
+                sr.forEach_convolve_U4(mAllocDst);
+                break;
+            case 3:
+                sr.forEach_convolve_U3(mAllocDst);
+                break;
+            case 2:
+                sr.forEach_convolve_U2(mAllocDst);
+                break;
+            case 1:
+                sr.forEach_convolve_U1(mAllocDst);
+                break;
+            }
+        } else {
+            switch(vecSize) {
+            case 4:
+                sr.forEach_convolve_F4(mAllocDst);
+                break;
+            case 3:
+                sr.forEach_convolve_F3(mAllocDst);
+                break;
+            case 2:
+                sr.forEach_convolve_F2(mAllocDst);
+                break;
+            case 1:
+                sr.forEach_convolve_F1(mAllocDst);
+                break;
+            }
+        }
+        android.util.Log.e("RSI test", "test convolve U8_" + vecSize + " 2 " + w + ", " + h);
+        mVerify.invoke_verify(mAllocRef, mAllocDst, en);
+        mRS.finish();
+    }
+
+
+    public void test() {
+        testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 4, 0);
+        testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 3, 1);
+        testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 2, 2);
+        testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 1, 3);
+
+        testConvolve3(100, 100, Element.DataType.FLOAT_32, 4, 4);
+        testConvolve3(100, 100, Element.DataType.FLOAT_32, 3, 5);
+        testConvolve3(100, 100, Element.DataType.FLOAT_32, 2, 6);
+        testConvolve3(100, 100, Element.DataType.FLOAT_32, 1, 7);
+        checkError();
+    }
+
+
+}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve5x5.java b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve5x5.java
new file mode 100644
index 0000000..500b5aa
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve5x5.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package android.renderscript.cts;
+
+import android.renderscript.*;
+import android.util.Log;
+
+public class IntrinsicConvolve5x5 extends IntrinsicBase {
+    private void test5(ScriptC_intrinsic_convolve5x5 sr, ScriptIntrinsicConvolve5x5 si,
+                        Element e, float cf[], String name, int num, int w, int h, int en) {
+        si.setCoefficients(cf);
+        si.setInput(mAllocSrc);
+        si.forEach(mAllocRef);
+
+        sr.set_gWidth(w);
+        sr.set_gHeight(h);
+        sr.set_gCoeffs(cf);
+        sr.set_gIn(mAllocSrc);
+        if (e.getDataType() == Element.DataType.UNSIGNED_8) {
+            switch(e.getVectorSize()) {
+            case 4:
+                sr.forEach_convolve_U4(mAllocDst);
+                break;
+            case 3:
+                sr.forEach_convolve_U3(mAllocDst);
+                break;
+            case 2:
+                sr.forEach_convolve_U2(mAllocDst);
+                break;
+            case 1:
+                sr.forEach_convolve_U1(mAllocDst);
+                break;
+            }
+        } else {
+            switch(e.getVectorSize()) {
+            case 4:
+                sr.forEach_convolve_F4(mAllocDst);
+                break;
+            case 3:
+                sr.forEach_convolve_F3(mAllocDst);
+                break;
+            case 2:
+                sr.forEach_convolve_F2(mAllocDst);
+                break;
+            case 1:
+                sr.forEach_convolve_F1(mAllocDst);
+                break;
+            }
+        }
+
+        android.util.Log.e("RSI test", name + "  " + e.getVectorSize() + " " + num + " " + w + ", " + h);
+        mVerify.invoke_verify(mAllocRef, mAllocDst, en);
+        mRS.finish();
+    }
+
+    private void testConvolve5(int w, int h, Element.DataType dt, int vecSize, int en) {
+        float cf1[] = { 0.f,  0.f,  0.f,  0.f,  0.f,
+                        0.f,  0.f,  0.f,  0.f,  0.f,
+                        0.f,  0.f,  1.f,  0.f,  0.f,
+                        0.f,  0.f,  0.f,  0.f,  0.f,
+                        0.f,  0.f,  0.f,  0.f,  0.f};
+        float cf2[] = {-1.f, -1.f, -1.f, -1.f, -1.f,
+                       -1.f,  0.f,  0.f,  0.f, -1.f,
+                       -1.f,  0.f, 16.f,  0.f, -1.f,
+                       -1.f,  0.f,  0.f,  0.f, -1.f,
+                       -1.f, -1.f, -1.f, -1.f, -1.f};
+
+        Element e;
+        if (vecSize > 1) {
+            e = Element.createVector(mRS, dt, vecSize);
+        } else {
+            if (dt == Element.DataType.UNSIGNED_8) {
+                e = Element.U8(mRS);
+            } else {
+                e = Element.F32(mRS);
+            }
+        }
+
+        makeSource(w, h, e);
+
+
+        ScriptIntrinsicConvolve5x5 si = ScriptIntrinsicConvolve5x5.create(mRS, e);
+        ScriptC_intrinsic_convolve5x5 sr = new ScriptC_intrinsic_convolve5x5(mRS);
+        test5(sr, si, e, cf1, "test convolve", 1, w, h, en);
+        test5(sr, si, e, cf2, "test convolve", 2, w, h, en);
+    }
+
+
+    public void test() {
+        testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 4, 0);
+        testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 3, 1);
+        testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 2, 2);
+        testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 1, 3);
+
+        testConvolve5(100, 100, Element.DataType.FLOAT_32, 4, 4);
+        testConvolve5(100, 100, Element.DataType.FLOAT_32, 3, 5);
+        testConvolve5(100, 100, Element.DataType.FLOAT_32, 2, 6);
+        testConvolve5(100, 100, Element.DataType.FLOAT_32, 1, 7);
+        checkError();
+    }
+
+
+}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/LeakTest.java b/tests/tests/renderscript/src/android/renderscript/cts/LeakTest.java
new file mode 100644
index 0000000..7662ffd
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/LeakTest.java
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ */
+
+package android.renderscript.cts;
+
+import android.renderscript.Allocation;
+import android.renderscript.Element;
+import android.renderscript.Type;
+import android.util.Log;
+
+/*
+// -target-api 11
+
+#pragma version(1)
+#pragma rs java_package_name(android.renderscript.cts)
+
+rs_allocation a;
+
+void print() {
+    rsDebug("unused", rsGetElementAt_int(a, 0, 0));
+}
+*/
+
+/**
+ * Test for memory leaks due to missing object slot information.
+ *
+ * The code to generate leak.bc is in the previous comment block.
+ * Note that you need to modify llvm-rs-cc to skip emitting the
+ * .rs.dtor() function, since it will also do the proper cleanup
+ * (but not trigger the original bug). Old HC code can trigger this
+ * bug, since it may have been compiled without .rs.dtor() support.
+ */
+public class LeakTest extends RSBaseCompute {
+    private final static int x = 16 * 1024 * 1024;
+    private static final String TAG = "LeakTest";
+
+    public void testForLeaks() {
+        for (int i = 0; i < 100; i++) {
+            Log.w(TAG, "Leak test iteration " + i);
+            ScriptC_leak leak = new ScriptC_leak(mRS);
+            Type t = new Type.Builder(mRS, Element.I32(mRS)).setX(x).create();
+            Allocation A = Allocation.createTyped(mRS, t);
+            leak.set_a(A);
+            A = null;
+            System.gc();
+            leak.destroy();
+            mRS.finish();
+        }
+        mRS.finish();
+        checkForErrors();
+    }
+}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/Log10Test.java b/tests/tests/renderscript/src/android/renderscript/cts/Log10Test.java
index 823366b..664de50 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/Log10Test.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/Log10Test.java
@@ -22,11 +22,13 @@
 
 public class Log10Test extends RSBaseCompute {
     private ScriptC_log10_f32 script_f32;
+    private ScriptC_log10_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_log10_f32(mRS);
+        script_f32_relaxed = new ScriptC_log10_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_log10_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_log10_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_log10_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_log10_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_log10_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0x13, 3);
     }
 
+    public void testLog10F32_relaxed() {
+        doF32_relaxed(0x13, 3);
+    }
+
     public void testLog10F32_2() {
         doF32_2(0xf, 3);
     }
 
+    public void testLog10F32_2_relaxed() {
+        doF32_2_relaxed(0xf, 3);
+    }
+
     public void testLog10F32_3() {
         doF32_3(0xa, 3);
     }
 
+    public void testLog10F32_3_relaxed() {
+        doF32_3_relaxed(0xa, 3);
+    }
+
     public void testLog10F32_4() {
         doF32_4(0xf3, 3);
+
     }
+    public void testLog10F32_4_relaxed() {
+        doF32_4_relaxed(0xf3, 3);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/Log1PTest.java b/tests/tests/renderscript/src/android/renderscript/cts/Log1PTest.java
index 55e98de..dd30b29 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/Log1PTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/Log1PTest.java
@@ -22,11 +22,13 @@
 
 public class Log1PTest extends RSBaseCompute {
     private ScriptC_log1p_f32 script_f32;
+    private ScriptC_log1p_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_log1p_f32(mRS);
+        script_f32_relaxed = new ScriptC_log1p_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_log1p_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_log1p_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_log1p_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_log1p_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_log1p_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xab, 2);
     }
 
+    public void testLog1PF32_relaxed() {
+        doF32_relaxed(0xab, 2);
+    }
+
     public void testLog1PF32_2() {
         doF32_2(0x12, 2);
     }
 
+    public void testLog1PF32_2_relaxed() {
+        doF32_2_relaxed(0x12, 2);
+    }
+
     public void testLog1PF32_3() {
         doF32_3(0xa1, 2);
     }
 
+    public void testLog1PF32_3_relaxed() {
+        doF32_3_relaxed(0xa1, 2);
+    }
+
     public void testLog1PF32_4() {
         doF32_4(0xbae, 2);
+
     }
+    public void testLog1PF32_4_relaxed() {
+        doF32_4_relaxed(0xbae, 2);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/Log2Test.java b/tests/tests/renderscript/src/android/renderscript/cts/Log2Test.java
index 9bbd3fb..f41e515 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/Log2Test.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/Log2Test.java
@@ -22,11 +22,13 @@
 
 public class Log2Test extends RSBaseCompute {
     private ScriptC_log2_f32 script_f32;
+    private ScriptC_log2_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_log2_f32(mRS);
+        script_f32_relaxed = new ScriptC_log2_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_log2_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_log2_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_log2_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_log2_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_log2_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0x18a, 3);
     }
 
+    public void testLog2F32_relaxed() {
+        doF32_relaxed(0x18a, 3);
+    }
+
     public void testLog2F32_2() {
         doF32_2(0xfa, 3);
     }
 
+    public void testLog2F32_2_relaxed() {
+        doF32_2_relaxed(0xfa, 3);
+    }
+
     public void testLog2F32_3() {
         doF32_3(0xaef, 3);
     }
 
+    public void testLog2F32_3_relaxed() {
+        doF32_3_relaxed(0xaef, 3);
+    }
+
     public void testLog2F32_4() {
         doF32_4(0xae62, 3);
+
     }
+    public void testLog2F32_4_relaxed() {
+        doF32_4_relaxed(0xae62, 3);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/LogTest.java b/tests/tests/renderscript/src/android/renderscript/cts/LogTest.java
index 462f682..202d44a 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/LogTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/LogTest.java
@@ -22,11 +22,13 @@
 
 public class LogTest extends RSBaseCompute {
     private ScriptC_log_f32 script_f32;
+    private ScriptC_log_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_log_f32(mRS);
+        script_f32_relaxed = new ScriptC_log_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_log_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_log_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_log_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_log_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_log_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xfae, 3);
     }
 
+    public void testLogF32_relaxed() {
+        doF32_relaxed(0xfae, 3);
+    }
+
     public void testLogF32_2() {
         doF32_2(0x123, 3);
     }
 
+    public void testLogF32_2_relaxed() {
+        doF32_2_relaxed(0x123, 3);
+    }
+
     public void testLogF32_3() {
         doF32_3(0xab4, 3);
     }
 
+    public void testLogF32_3_relaxed() {
+        doF32_3_relaxed(0xab4, 3);
+    }
+
     public void testLogF32_4() {
         doF32_4(0xfa3, 3);
+
     }
+    public void testLogF32_4_relaxed() {
+        doF32_4_relaxed(0xfa3, 3);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/LogbTest.java b/tests/tests/renderscript/src/android/renderscript/cts/LogbTest.java
index 1be03fb..b42d680 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/LogbTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/LogbTest.java
@@ -22,11 +22,13 @@
 
 public class LogbTest extends RSBaseCompute {
     private ScriptC_logb_f32 script_f32;
+    private ScriptC_logb_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_logb_f32(mRS);
+        script_f32_relaxed = new ScriptC_logb_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_logb_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_logb_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_logb_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_logb_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_logb_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xe, 0);
     }
 
+    public void testLogbF32_relaxed() {
+        doF32_relaxed(0xe, 0);
+    }
+
     public void testLogbF32_2() {
         doF32_2(0xa1, 0);
     }
 
+    public void testLogbF32_2_relaxed() {
+        doF32_2_relaxed(0xa1, 0);
+    }
+
     public void testLogbF32_3() {
         doF32_3(0xab2, 0);
     }
 
+    public void testLogbF32_3_relaxed() {
+        doF32_3_relaxed(0xab2, 0);
+    }
+
     public void testLogbF32_4() {
         doF32_4(0xaa2, 0);
+
     }
+    public void testLogbF32_4_relaxed() {
+        doF32_4_relaxed(0xaa2, 0);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/MadTest.java b/tests/tests/renderscript/src/android/renderscript/cts/MadTest.java
index 8ab3db2..3662035 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/MadTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/MadTest.java
@@ -23,12 +23,14 @@
 
 public class MadTest extends RSBaseCompute {
     private ScriptC_mad_f32 script_f32;
+    private ScriptC_mad_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_mad_f32(mRS);
+        script_f32_relaxed = new ScriptC_mad_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,19 @@
         case TEST_F32_4:
             script_f32.forEach_mad_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_mad_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_mad_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_mad_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_mad_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -77,21 +92,45 @@
         doF32(0x123678, 4);
     }
 
+    public void testMadF32_relaxed() {
+        ScriptField_mad_input_f32 in = new ScriptField_mad_input_f32(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_relaxed(0x123678, 4);
+    }
+
     public void testMadF32_2() {
         ScriptField_mad_input_f32_2 in = new ScriptField_mad_input_f32_2(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_2(0x1234a5, 4);
     }
 
+    public void testMadF32_2_relaxed() {
+        ScriptField_mad_input_f32_2 in = new ScriptField_mad_input_f32_2(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_2_relaxed(0x1234a5, 4);
+    }
+
     public void testMadF32_3() {
         ScriptField_mad_input_f32_3 in = new ScriptField_mad_input_f32_3(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_3(0x1af345, 4);
     }
 
+    public void testMadF32_3_relaxed() {
+        ScriptField_mad_input_f32_3 in = new ScriptField_mad_input_f32_3(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0x1af345, 4);
+    }
+
     public void testMadF32_4() {
         ScriptField_mad_input_f32_4 in = new ScriptField_mad_input_f32_4(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_4(0x12ce45, 4);
     }
+
+    public void testMadF32_4_relaxed() {
+        ScriptField_mad_input_f32_4 in = new ScriptField_mad_input_f32_4(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0x12ce45, 4);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/Matrix2fTest.java b/tests/tests/renderscript/src/android/renderscript/cts/Matrix2fTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/Matrix3fTest.java b/tests/tests/renderscript/src/android/renderscript/cts/Matrix3fTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/Matrix4fTest.java b/tests/tests/renderscript/src/android/renderscript/cts/Matrix4fTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/NextafterTest.java b/tests/tests/renderscript/src/android/renderscript/cts/NextafterTest.java
index a36aa0e..468b341 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/NextafterTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/NextafterTest.java
@@ -23,12 +23,14 @@
 
 public class NextafterTest extends RSBaseCompute {
     private ScriptC_nextafter_f32 script_f32;
+    private ScriptC_nextafter_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_nextafter_f32(mRS);
+        script_f32_relaxed = new ScriptC_nextafter_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,19 @@
         case TEST_F32_4:
             script_f32.forEach_nextafter_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_nextafter_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_nextafter_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_nextafter_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_nextafter_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -77,21 +92,45 @@
         doF32(0x12678, 0);
     }
 
+    public void testNextafterF32_relaxed() {
+        ScriptField_InputData inputDataArray = new ScriptField_InputData(mRS, INPUTSIZE);
+        mIn = inputDataArray.getAllocation();
+        doF32_relaxed(0x12678, 0);
+    }
+
     public void testNextafterF32_2() {
         ScriptField_InputData_2 inputDataArray = new ScriptField_InputData_2(mRS, INPUTSIZE);
         mIn = inputDataArray.getAllocation();
         doF32_2(0x1af45, 0);
     }
 
+    public void testNextafterF32_2_relaxed() {
+        ScriptField_InputData_2 inputDataArray = new ScriptField_InputData_2(mRS, INPUTSIZE);
+        mIn = inputDataArray.getAllocation();
+        doF32_2_relaxed(0x1af45, 0);
+    }
+
     public void testNextafterF32_3() {
         ScriptField_InputData_3 inputDataArray = new ScriptField_InputData_3(mRS, INPUTSIZE);
         mIn = inputDataArray.getAllocation();
         doF32_3(0x1cd345, 0);
     }
 
+    public void testNextafterF32_3_relaxed() {
+        ScriptField_InputData_3 inputDataArray = new ScriptField_InputData_3(mRS, INPUTSIZE);
+        mIn = inputDataArray.getAllocation();
+        doF32_3_relaxed(0x1cd345, 0);
+    }
+
     public void testNextafterF32_4() {
         ScriptField_InputData_4 inputDataArray = new ScriptField_InputData_4(mRS, INPUTSIZE);
         mIn = inputDataArray.getAllocation();
         doF32_4(0x1ca45, 0);
     }
+
+    public void testNextafterF32_4_relaxed() {
+        ScriptField_InputData_4 inputDataArray = new ScriptField_InputData_4(mRS, INPUTSIZE);
+        mIn = inputDataArray.getAllocation();
+        doF32_4_relaxed(0x1ca45, 0);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/PowTest.java b/tests/tests/renderscript/src/android/renderscript/cts/PowTest.java
index b5ea9fa..4f5eefd 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/PowTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/PowTest.java
@@ -23,12 +23,14 @@
 
 public class PowTest extends RSBaseCompute {
     private ScriptC_pow_f32 script_f32;
+    private ScriptC_pow_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_pow_f32(mRS);
+        script_f32_relaxed = new ScriptC_pow_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,19 @@
         case TEST_F32_4:
             script_f32.forEach_pow_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_pow_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_pow_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_pow_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_pow_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -83,21 +98,45 @@
         doF32(0x12345678, 16);
     }
 
+    public void testPowF32_relaxed() {
+        ScriptField_PowInputData in = new ScriptField_PowInputData(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_relaxed(0x12345678, 16);
+    }
+
     public void testPowF32_2() {
         ScriptField_PowInputData_2 in = new ScriptField_PowInputData_2(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_2(0x12ab78, 16);
     }
 
+    public void testPowF32_2_relaxed() {
+        ScriptField_PowInputData_2 in = new ScriptField_PowInputData_2(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_2_relaxed(0x12ab78, 16);
+    }
+
     public void testPowF32_3() {
         ScriptField_PowInputData_3 in = new ScriptField_PowInputData_3(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_3(0x1f5678, 16);
     }
 
+    public void testPowF32_3_relaxed() {
+        ScriptField_PowInputData_3 in = new ScriptField_PowInputData_3(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0x1f5678, 16);
+    }
+
     public void testPowF32_4() {
         ScriptField_PowInputData_4 in = new ScriptField_PowInputData_4(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_4(0xc678, 16);
     }
+
+    public void testPowF32_4_relaxed() {
+        ScriptField_PowInputData_4 in = new ScriptField_PowInputData_4(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0xc678, 16);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/PownTest.java b/tests/tests/renderscript/src/android/renderscript/cts/PownTest.java
index b149347..510175d 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/PownTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/PownTest.java
@@ -23,12 +23,14 @@
 
 public class PownTest extends RSBaseCompute {
     private ScriptC_pown_f32 script_f32;
+    private ScriptC_pown_f32_relaxed script_f32_relaxed;
     private int[] n;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_pown_f32(mRS);
+        script_f32_relaxed = new ScriptC_pown_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,20 @@
         case TEST_F32_4:
             script_f32.forEach_pown_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_pown_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_pown_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_pown_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_pown_f32_4(mIn, mOut);
+            break;
+
         }
     }
 
@@ -73,6 +89,17 @@
         doF32(0x716acd, 16);
     }
 
+    public void testPownF32_relaxed() {
+        Allocation nAlloc = Allocation.createSized(mRS, Element.I32(mRS), INPUTSIZE);
+
+        n = new int[INPUTSIZE];
+        RSUtils.genRandom(0x12345678, 32, 1, -16, n);
+        nAlloc.copyFrom(n);
+        script_f32_relaxed.set_n1(nAlloc);
+
+        doF32_relaxed(0x716acd, 16);
+    }
+
     public void testPownF32_2() {
         Allocation nAlloc = Allocation.createSized(mRS, Element.I32_2(mRS), INPUTSIZE);
 
@@ -84,6 +111,17 @@
         doF32_2(0xacdef1, 16);
     }
 
+    public void testPownF32_2_relaxed() {
+        Allocation nAlloc = Allocation.createSized(mRS, Element.I32_2(mRS), INPUTSIZE);
+
+        n = new int[INPUTSIZE*2];
+        RSUtils.genRandom(0xacdef1, 32, 1, -16, n);
+        nAlloc.copyFrom(n);
+        script_f32_relaxed.set_n2(nAlloc);
+
+        doF32_2_relaxed(0xacdef1, 16);
+    }
+
     public void testPownF32_3() {
         Allocation nAlloc = Allocation.createSized(mRS, Element.I32_3(mRS), INPUTSIZE);
 
@@ -95,6 +133,17 @@
         doF32_3(0xaac3f1, 16);
     }
 
+    public void testPownF32_3_relaxed() {
+        Allocation nAlloc = Allocation.createSized(mRS, Element.I32_3(mRS), INPUTSIZE);
+
+        n = new int[INPUTSIZE*4];
+        RSUtils.genRandom(0xa123f1, 32, 1, -16, n, 4, 1);
+        nAlloc.copyFrom(n);
+        script_f32_relaxed.set_n3(nAlloc);
+
+        doF32_3_relaxed(0xaac3f1, 16);
+    }
+
     public void testPownF32_4() {
         Allocation nAlloc = Allocation.createSized(mRS, Element.I32_4(mRS), INPUTSIZE);
 
@@ -105,4 +154,15 @@
 
         doF32_4(0xaa12f1, 16);
     }
+
+    public void testPownF32_4_relaxed() {
+        Allocation nAlloc = Allocation.createSized(mRS, Element.I32_4(mRS), INPUTSIZE);
+
+        n = new int[INPUTSIZE*4];
+        RSUtils.genRandom(0x4323ca, 32, 1, -16, n);
+        nAlloc.copyFrom(n);
+        script_f32_relaxed.set_n4(nAlloc);
+
+        doF32_4_relaxed(0xaa12f1, 16);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/PowrTest.java b/tests/tests/renderscript/src/android/renderscript/cts/PowrTest.java
index 5c75a04..8432973 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/PowrTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/PowrTest.java
@@ -23,12 +23,14 @@
 
 public class PowrTest extends RSBaseCompute {
     private ScriptC_powr_f32 script_f32;
+    private ScriptC_powr_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_powr_f32(mRS);
+        script_f32_relaxed = new ScriptC_powr_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,19 @@
         case TEST_F32_4:
             script_f32.forEach_powr_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_powr_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_powr_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_powr_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_powr_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -83,21 +98,45 @@
         doF32(0x12345678, 16);
     }
 
+    public void testPowrF32_relaxed() {
+        ScriptField_PowInputData in = new ScriptField_PowInputData(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_relaxed(0x12345678, 16);
+    }
+
     public void testPowrF32_2() {
         ScriptField_PowInputData_2 in = new ScriptField_PowInputData_2(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_2(0x12ab78, 16);
     }
 
+    public void testPowrF32_2_relaxed() {
+        ScriptField_PowInputData_2 in = new ScriptField_PowInputData_2(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_2(0x12ab78, 16);
+    }
+
     public void testPowrF32_3() {
         ScriptField_PowInputData_3 in = new ScriptField_PowInputData_3(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_3(0x1f5678, 16);
     }
 
+    public void testPowrF32_3_relaxed() {
+        ScriptField_PowInputData_3 in = new ScriptField_PowInputData_3(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0x1f5678, 16);
+    }
+
     public void testPowrF32_4() {
         ScriptField_PowInputData_4 in = new ScriptField_PowInputData_4(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_4(0xc678, 16);
     }
+
+    public void testPowrF32_4_relaxed() {
+        ScriptField_PowInputData_4 in = new ScriptField_PowInputData_4(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0xc678, 16);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RSBaseCompute.java b/tests/tests/renderscript/src/android/renderscript/cts/RSBaseCompute.java
index d02e28b..6eba266 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RSBaseCompute.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RSBaseCompute.java
@@ -32,6 +32,10 @@
     static final int TEST_F32_2 = 1;
     static final int TEST_F32_3 = 2;
     static final int TEST_F32_4 = 3;
+    static final int TEST_RELAXED_F32 = 4;
+    static final int TEST_RELAXED_F32_2 = 5;
+    static final int TEST_RELAXED_F32_3 = 6;
+    static final int TEST_RELAXED_F32_4 = 7;
     protected int INPUTSIZE = 512;
 
     @Override
@@ -120,6 +124,23 @@
         baseTestHelper(TEST_F32_4, Element.F32_4(mRS), Element.F32_4(mRS), seed, 1, 0, 1, 0, 4, 4, 4, 0, ulp);
     }
 
+    public void doF32_relaxed(long seed, int ulp) {
+        baseTestHelper(TEST_RELAXED_F32, Element.F32(mRS), Element.F32(mRS), seed, 1, 0, 1, 0, 1, 1, 1, 0, ulp);
+    }
+
+    public void doF32_2_relaxed(long seed, int ulp) {
+        baseTestHelper(TEST_RELAXED_F32_2, Element.F32_2(mRS), Element.F32_2(mRS), seed, 1, 0, 1, 0, 2, 2, 2, 0, ulp);
+    }
+
+    public void doF32_3_relaxed(long seed, int ulp) {
+        baseTestHelper(TEST_RELAXED_F32_3, Element.F32_3(mRS), Element.F32_3(mRS), seed, 1, 0, 4, 1, 3, 4, 4, 1, ulp);
+    }
+
+    public void doF32_4_relaxed(long seed, int ulp) {
+        baseTestHelper(TEST_RELAXED_F32_4, Element.F32_4(mRS), Element.F32_4(mRS), seed, 1, 0, 1, 0, 4, 4, 4, 0, ulp);
+    }
+
+
     public void forEach(int testId, Allocation mIn, Allocation mOut) throws RSRuntimeException {
         // Intentionally empty... subclass will likely define only one, but not both
     }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RadiansTest.java b/tests/tests/renderscript/src/android/renderscript/cts/RadiansTest.java
index f8a6936..a0c7834 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RadiansTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RadiansTest.java
@@ -22,11 +22,13 @@
 
 public class RadiansTest extends RSBaseCompute {
     private ScriptC_radians_f32 script_f32;
+    private ScriptC_radians_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_radians_f32(mRS);
+        script_f32_relaxed = new ScriptC_radians_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_radians_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_radians_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_radians_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_radians_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_radians_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -68,6 +83,10 @@
         doF32(0x1234f678, 3);
     }
 
+    public void testRadiansF32_relaxed() {
+        doF32_relaxed(0x1234f678, 3);
+    }
+
     /**
      * radians test for float2
      */
@@ -75,6 +94,10 @@
         doF32_2(0x12345678, 3);
     }
 
+    public void testRadiansF32_2_relaxed() {
+        doF32_2_relaxed(0x12345678, 3);
+    }
+
     /**
      * radians test for float3
      */
@@ -82,10 +105,19 @@
         doF32_3(0x123d5678, 3);
     }
 
+    public void testRadiansF32_3_relaxed() {
+        doF32_3_relaxed(0x123d5678, 3);
+    }
+
     /**
      * radians test for float4
      */
     public void testRadiansF32_4() {
         doF32_4(0x123a5678, 3);
+
     }
+    public void testRadiansF32_4_relaxed() {
+        doF32_4_relaxed(0x123a5678, 3);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RemainderTest.java b/tests/tests/renderscript/src/android/renderscript/cts/RemainderTest.java
index 8abdafe..edd3320 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RemainderTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RemainderTest.java
@@ -23,12 +23,14 @@
 
 public class RemainderTest extends RSBaseCompute {
     private ScriptC_remainder_f32 script_f32;
+    private ScriptC_remainder_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_remainder_f32(mRS);
+        script_f32_relaxed = new ScriptC_remainder_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,19 @@
         case TEST_F32_4:
             script_f32.forEach_remainder_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_remainder_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_remainder_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_remainder_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_remainder_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -79,21 +94,45 @@
         doF32(0x123678, 0);
     }
 
+    public void testRemainderF32_relaxed() {
+        ScriptField_remainder_f32 in = new ScriptField_remainder_f32(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_relaxed(0x123678, 0);
+    }
+
     public void testRemainderF32_2() {
         ScriptField_remainder_f32_2 in = new ScriptField_remainder_f32_2(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_2(0x1234a5, 0);
     }
 
+    public void testRemainderF32_2_relaxed() {
+        ScriptField_remainder_f32_2 in = new ScriptField_remainder_f32_2(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_2_relaxed(0x1234a5, 0);
+    }
+
     public void testRemainderF32_3() {
         ScriptField_remainder_f32_3 in = new ScriptField_remainder_f32_3(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_3(0x1af345, 0);
     }
 
+    public void testRemainderF32_3_relaxed() {
+        ScriptField_remainder_f32_3 in = new ScriptField_remainder_f32_3(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0x1af345, 0);
+    }
+
     public void testRemainderF32_4() {
         ScriptField_remainder_f32_4 in = new ScriptField_remainder_f32_4(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_4(0x12ce45, 0);
     }
+
+    public void testRemainderF32_4_relaxed() {
+        ScriptField_remainder_f32_4 in = new ScriptField_remainder_f32_4(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0x12ce45, 0);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RintTest.java b/tests/tests/renderscript/src/android/renderscript/cts/RintTest.java
index 2efef44..56c0acf 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RintTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RintTest.java
@@ -22,11 +22,13 @@
 
 public class RintTest extends RSBaseCompute {
     private ScriptC_rint_f32 script_f32;
+    private ScriptC_rint_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_rint_f32(mRS);
+        script_f32_relaxed = new ScriptC_rint_f32_relaxed(mRS);
     }
 
     @Override
@@ -45,6 +47,19 @@
         case TEST_F32_4:
             script_f32.forEach_rint_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_rint_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_rint_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_rint_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_rint_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -68,6 +83,10 @@
         doF32(0x12345678, 0);
     }
 
+    public void testRintF32_relaxed() {
+        doF32_relaxed(0x12345678, 0);
+    }
+
     /**
      * rint test for float2
      */
@@ -75,6 +94,10 @@
         doF32_2(0x12ab5678, 0);
     }
 
+    public void testRintF32_2_relaxed() {
+        doF32_2_relaxed(0x12ab5678, 0);
+    }
+
     /**
      * rint test for float3
      */
@@ -82,10 +105,19 @@
         doF32_3(0x123ac678, 0);
     }
 
+    public void testRintF32_3_relaxed() {
+        doF32_3_relaxed(0x123ac678, 0);
+    }
+
     /**
      * rint test for float4
      */
     public void testRintF32_4() {
         doF32_4(0x1f345678, 0);
+
     }
+    public void testRintF32_4_relaxed() {
+        doF32_4_relaxed(0x1f345678, 0);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RootnTest.java b/tests/tests/renderscript/src/android/renderscript/cts/RootnTest.java
index 1b2c46b..8301ad5 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RootnTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RootnTest.java
@@ -23,12 +23,14 @@
 
 public class RootnTest extends RSBaseCompute {
     private ScriptC_rootn_f32 script_f32;
+    private ScriptC_rootn_f32_relaxed script_f32_relaxed;
     private int[] n;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_rootn_f32(mRS);
+        script_f32_relaxed = new ScriptC_rootn_f32_relaxed(mRS);
     }
 
     @Override
@@ -46,6 +48,18 @@
         case TEST_F32_4:
             script_f32.forEach_rootn_f32_4(mIn, mOut);
             break;
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_rootn_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_rootn_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_rootn_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_rootn_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -73,6 +87,18 @@
         doF32(0x716acd, 16);
     }
 
+    public void testRootnF32_relaxed() {
+        Allocation nAlloc = Allocation.createSized(mRS, Element.I32(mRS), INPUTSIZE);
+
+        n = new int[INPUTSIZE];
+        RSUtils.genRandom(0x12345678, 32, 1, 1, n);
+        nAlloc.copyFrom(n);
+        script_f32_relaxed.set_n1(nAlloc);
+
+        doF32_relaxed(0x716acd, 16);
+    }
+
+
     public void testRootnF32_2() {
         Allocation nAlloc = Allocation.createSized(mRS, Element.I32_2(mRS), INPUTSIZE);
 
@@ -84,6 +110,18 @@
         doF32_2(0xacdef1, 16);
     }
 
+    public void testRootnF32_2_relaxed() {
+        Allocation nAlloc = Allocation.createSized(mRS, Element.I32_2(mRS), INPUTSIZE);
+
+        n = new int[INPUTSIZE*2];
+        RSUtils.genRandom(0xacdef1, 32, 1, 1, n);
+        nAlloc.copyFrom(n);
+        script_f32_relaxed.set_n2(nAlloc);
+
+        doF32_2_relaxed(0xacdef1, 16);
+    }
+
+
     public void testRootnF32_3() {
         Allocation nAlloc = Allocation.createSized(mRS, Element.I32_3(mRS), INPUTSIZE);
 
@@ -95,6 +133,17 @@
         doF32_3(0xaac3f1, 16);
     }
 
+    public void testRootnF32_3_relaxed() {
+        Allocation nAlloc = Allocation.createSized(mRS, Element.I32_3(mRS), INPUTSIZE);
+
+        n = new int[INPUTSIZE*4];
+        RSUtils.genRandom(0xa123f1, 32, 1, 1, n, 4, 1);
+        nAlloc.copyFrom(n);
+        script_f32_relaxed.set_n3(nAlloc);
+
+        doF32_3_relaxed(0xaac3f1, 16);
+    }
+
     public void testRootnF32_4() {
         Allocation nAlloc = Allocation.createSized(mRS, Element.I32_4(mRS), INPUTSIZE);
 
@@ -105,4 +154,16 @@
 
         doF32_4(0xaa12f1, 16);
     }
+
+    public void testRootnF32_4_relaxed() {
+        Allocation nAlloc = Allocation.createSized(mRS, Element.I32_4(mRS), INPUTSIZE);
+
+        n = new int[INPUTSIZE*4];
+        RSUtils.genRandom(0x4323ca, 32, 1, 1, n);
+        nAlloc.copyFrom(n);
+        script_f32_relaxed.set_n4(nAlloc);
+
+        doF32_4_relaxed(0xaa12f1, 16);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RoundTest.java b/tests/tests/renderscript/src/android/renderscript/cts/RoundTest.java
index 90f155b..ab85bc1 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RoundTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RoundTest.java
@@ -22,11 +22,13 @@
 
 public class RoundTest extends RSBaseCompute {
     private ScriptC_round_f32 script_f32;
+    private ScriptC_round_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_round_f32(mRS);
+        script_f32_relaxed = new ScriptC_round_f32_relaxed(mRS);
     }
 
     @Override
@@ -45,6 +47,19 @@
         case TEST_F32_4:
             script_f32.forEach_round_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_round_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_round_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_round_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_round_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -76,6 +91,10 @@
         doF32(0x12345678, 0);
     }
 
+    public void testRoundF32_relaxed() {
+        doF32_relaxed(0x12345678, 0);
+    }
+
     /**
      * round test for float2
      */
@@ -83,6 +102,10 @@
         doF32_2(0x123a5678, 0);
     }
 
+    public void testRoundF32_2_relaxed() {
+        doF32_2_relaxed(0x123a5678, 0);
+    }
+
     /**
      * round test for float3
      */
@@ -90,10 +113,19 @@
         doF32_3(0x1af45678, 0);
     }
 
+    public void testRoundF32_3_relaxed() {
+        doF32_3_relaxed(0x1af45678, 0);
+    }
+
     /**
      * round test for float4
      */
     public void testRoundF32_4() {
         doF32_4(0x1f345678, 0);
+
     }
+    public void testRoundF32_4_relaxed() {
+        doF32_4_relaxed(0x1f345678, 0);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RsFracTest.java b/tests/tests/renderscript/src/android/renderscript/cts/RsFracTest.java
index 74c9425..ab59e08 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RsFracTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RsFracTest.java
@@ -21,11 +21,16 @@
 
 public class RsFracTest extends RSBaseCompute {
     private ScriptC_rs_frac_f32 mScript;
+    private ScriptC_rs_frac_f32_relaxed mScript_relaxed;
 
     @Override
     public void forEach(int testId, Allocation mIn, Allocation mOut)
             throws RSRuntimeException {
-        mScript.forEach_root(mIn, mOut);
+        if (testId == TEST_F32) {
+            mScript.forEach_root(mIn, mOut);
+        } else if (testId == TEST_RELAXED_F32) {
+            mScript_relaxed.forEach_root(mIn, mOut);
+        }
     }
 
     @Override
@@ -45,4 +50,9 @@
         mScript = new ScriptC_rs_frac_f32(mRS, mRes, R.raw.rs_frac_f32);
         doF32(0x12, 0);
     }
+    public void testRsFrac_relaxed() {
+        mScript_relaxed = new ScriptC_rs_frac_f32_relaxed(mRS, mRes, R.raw.rs_frac_f32);
+        doF32_relaxed(0x12, 0);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RsqrtTest.java b/tests/tests/renderscript/src/android/renderscript/cts/RsqrtTest.java
index 13f4817..1183886 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RsqrtTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RsqrtTest.java
@@ -22,11 +22,13 @@
 
 public class RsqrtTest extends RSBaseCompute {
     private ScriptC_rsqrt_f32 script_f32;
+    private ScriptC_rsqrt_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_rsqrt_f32(mRS);
+        script_f32_relaxed = new ScriptC_rsqrt_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_Rsqrt_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_Rsqrt_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_Rsqrt_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_Rsqrt_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_Rsqrt_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0x12345678, 2);
     }
 
+    public void testRsqrtF32_relaxed() {
+        doF32_relaxed(0x12345678, 2);
+    }
+
     public void testRsqrtF32_2() {
         doF32_2(0x12ae4567, 2);
     }
 
+    public void testRsqrtF32_2_relaxed() {
+        doF32_2_relaxed(0x12ae4567, 2);
+    }
+
     public void testRsqrtF32_3() {
         doF32_3(0x12cf8, 2);
     }
 
+    public void testRsqrtF32_3_relaxed() {
+        doF32_3_relaxed(0x12cf8, 2);
+    }
+
     public void testRsqrtF32_4() {
         doF32_4(0x12abc8, 2);
+
     }
+    public void testRsqrtF32_4_relaxed() {
+        doF32_4_relaxed(0x12abc8, 2);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_leak.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_leak.java
new file mode 100644
index 0000000..c026755
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_leak.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2011-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.
+ */
+
+/*
+ * This file is auto-generated. DO NOT MODIFY!
+ * The source Renderscript file: leak.rs
+ */
+package android.renderscript.cts;
+
+import android.renderscript.*;
+import android.content.res.Resources;
+
+/**
+ * @hide
+ */
+public class ScriptC_leak extends ScriptC {
+    private static final String __rs_resource_name = "leak";
+    // Constructor
+    public  ScriptC_leak(RenderScript rs) {
+        this(rs,
+             rs.getApplicationContext().getResources(),
+             rs.getApplicationContext().getResources().getIdentifier(
+                 __rs_resource_name, "raw",
+                 rs.getApplicationContext().getPackageName()));
+    }
+
+    public  ScriptC_leak(RenderScript rs, Resources resources, int id) {
+        super(rs, resources, id);
+    }
+
+    private FieldPacker __rs_fp_ALLOCATION;
+    private final static int mExportVarIdx_a = 0;
+    private Allocation mExportVar_a;
+    public synchronized void set_a(Allocation v) {
+        setVar(mExportVarIdx_a, v);
+        mExportVar_a = v;
+    }
+
+    public Allocation get_a() {
+        return mExportVar_a;
+    }
+
+    private final static int mExportFuncIdx_print = 0;
+    public void invoke_print() {
+        invoke(mExportFuncIdx_print);
+    }
+
+}
+
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/SignTest.java b/tests/tests/renderscript/src/android/renderscript/cts/SignTest.java
index 9329d01..69e2636 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/SignTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/SignTest.java
@@ -22,11 +22,13 @@
 
 public class SignTest extends RSBaseCompute {
     private ScriptC_sign_f32 script_f32;
+    private ScriptC_sign_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_sign_f32(mRS);
+        script_f32_relaxed = new ScriptC_sign_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_sign_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_sign_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_sign_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_sign_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_sign_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -67,10 +82,18 @@
         doF32(0x12345678, 0);
     }
 
+    public void testSignF32_relaxed() {
+        doF32_relaxed(0x12345678, 0);
+    }
+
     public void testSignF32_2() {
         doF32_2(0x12a45678, 0);
     }
 
+    public void testSignF32_2_relaxed() {
+        doF32_2_relaxed(0x12a45678, 0);
+    }
+
     /**
      * This method is used for sign() function with f32_3
      */
@@ -78,10 +101,19 @@
         doF32_3(0x123c5678, 0);
     }
 
+    public void testSignF32_3_relaxed() {
+        doF32_3_relaxed(0x123c5678, 0);
+    }
+
     /**
      * This method is used for sign() function with f32_4
      */
     public void testSignF32_4() {
         doF32_4(0x123d678, 0);
+
     }
+    public void testSignF32_4_relaxed() {
+        doF32_4_relaxed(0x123d678, 0);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/SinTest.java b/tests/tests/renderscript/src/android/renderscript/cts/SinTest.java
index 2d57219..cb43ca9 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/SinTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/SinTest.java
@@ -22,11 +22,13 @@
 
 public class SinTest extends RSBaseCompute {
     private ScriptC_sin_f32 script_f32;
+    private ScriptC_sin_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_sin_f32(mRS);
+        script_f32_relaxed = new ScriptC_sin_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_sin_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_sin_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_sin_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_sin_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_sin_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xba, 4);
     }
 
+    public void testSinF32_relaxed() {
+        doF32_relaxed(0xba, 4);
+    }
+
     public void testSinF32_2() {
         doF32_2(0xbaa, 4);
     }
 
+    public void testSinF32_2_relaxed() {
+        doF32_2_relaxed(0xbaa, 4);
+    }
+
     public void testSinF32_3() {
         doF32_3(0xca, 4);
     }
 
+    public void testSinF32_3_relaxed() {
+        doF32_3_relaxed(0xca, 4);
+    }
+
     public void testSinF32_4() {
         doF32_4(0xda, 4);
+
     }
+    public void testSinF32_4_relaxed() {
+        doF32_4_relaxed(0xda, 4);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/SinhTest.java b/tests/tests/renderscript/src/android/renderscript/cts/SinhTest.java
index c88bd42..11c3b53 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/SinhTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/SinhTest.java
@@ -22,11 +22,13 @@
 
 public class SinhTest extends RSBaseCompute {
     private ScriptC_sinh_f32 script_f32;
+    private ScriptC_sinh_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_sinh_f32(mRS);
+        script_f32_relaxed = new ScriptC_sinh_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_sinh_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_sinh_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_sinh_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_sinh_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_sinh_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0x32a, 4);
     }
 
+    public void testSinhF32_relaxed() {
+        doF32_relaxed(0x32a, 4);
+    }
+
     public void testSinhF32_2() {
         doF32_2(0xba35, 4);
     }
 
+    public void testSinhF32_2_relaxed() {
+        doF32_2_relaxed(0xba35, 4);
+    }
+
     public void testSinhF32_3() {
         doF32_3(0xacc3, 4);
     }
 
+    public void testSinhF32_3_relaxed() {
+        doF32_3_relaxed(0xacc3, 4);
+    }
+
     public void testSinhF32_4() {
         doF32_4(0xaa, 4);
+
     }
+    public void testSinhF32_4_relaxed() {
+        doF32_4_relaxed(0xaa, 4);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/SqrtTest.java b/tests/tests/renderscript/src/android/renderscript/cts/SqrtTest.java
index 300a519..02290ca 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/SqrtTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/SqrtTest.java
@@ -22,11 +22,13 @@
 
 public class SqrtTest extends RSBaseCompute {
     private ScriptC_sqrt_f32 script_f32;
+    private ScriptC_sqrt_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_sqrt_f32(mRS);
+        script_f32_relaxed = new ScriptC_sqrt_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_sqrt_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_sqrt_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_sqrt_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_sqrt_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_sqrt_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xab3, 3);
     }
 
+    public void testSqrtF32_relaxed() {
+        doF32_relaxed(0xab3, 3);
+    }
+
     public void testSqrtF32_2() {
         doF32_2(0xa1, 3);
     }
 
+    public void testSqrtF32_2_relaxed() {
+        doF32_2_relaxed(0xa1, 3);
+    }
+
     public void testSqrtF32_3() {
         doF32_3(0xbae7, 3);
     }
 
+    public void testSqrtF32_3_relaxed() {
+        doF32_3_relaxed(0xbae7, 3);
+    }
+
     public void testSqrtF32_4() {
         doF32_4(0xbac361, 3);
+
     }
+    public void testSqrtF32_4_relaxed() {
+        doF32_4_relaxed(0xbac361, 3);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/StepTest.java b/tests/tests/renderscript/src/android/renderscript/cts/StepTest.java
index a1ffda3..39fb443 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/StepTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/StepTest.java
@@ -22,12 +22,14 @@
 
 public class StepTest extends RSBaseCompute {
     private ScriptC_step_f32 script_f32;
+    private ScriptC_step_f32_relaxed script_f32_relaxed;
     private Allocation mIn;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_step_f32(mRS);
+        script_f32_relaxed = new ScriptC_step_f32_relaxed(mRS);
     }
 
     @Override
@@ -45,6 +47,19 @@
         case TEST_F32_4:
             script_f32.forEach_step_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_step_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_step_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_step_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_step_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -76,21 +91,45 @@
         doF32(0x12678, 0);
     }
 
+    public void testStepF32_relaxed() {
+        ScriptField_step_input in = new ScriptField_step_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_relaxed(0x12678, 0);
+    }
+
     public void testStepF32_2() {
         ScriptField_step_2_input in = new ScriptField_step_2_input(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_2(0x1ace8, 0);
     }
 
+    public void testStepF32_2_relaxed() {
+        ScriptField_step_2_input in = new ScriptField_step_2_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_2_relaxed(0x1ace8, 0);
+    }
+
     public void testStepF32_3() {
         ScriptField_step_3_input in = new ScriptField_step_3_input(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_3(0xa2ce8, 0);
     }
 
+    public void testStepF32_3_relaxed() {
+        ScriptField_step_3_input in = new ScriptField_step_3_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_3_relaxed(0xa2ce8, 0);
+    }
+
     public void testStepF32_4() {
         ScriptField_step_4_input in = new ScriptField_step_4_input(mRS, INPUTSIZE);
         mIn = in.getAllocation();
         doF32_4(0x1ee8, 0);
     }
+
+    public void testStepF32_4_relaxed() {
+        ScriptField_step_4_input in = new ScriptField_step_4_input(mRS, INPUTSIZE);
+        mIn = in.getAllocation();
+        doF32_4_relaxed(0x1ee8, 0);
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/TanTest.java b/tests/tests/renderscript/src/android/renderscript/cts/TanTest.java
index f237c40..5122cd0 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/TanTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/TanTest.java
@@ -22,11 +22,13 @@
 
 public class TanTest extends RSBaseCompute {
     private ScriptC_tan_f32 script_f32;
+    private ScriptC_tan_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_tan_f32(mRS);
+        script_f32_relaxed = new ScriptC_tan_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_tan_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_tan_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_tan_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_tan_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_tan_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xabe, 5);
     }
 
+    public void testTanF32_relaxed() {
+        doF32_relaxed(0xabe, 5);
+    }
+
     public void testTanF32_2() {
         doF32_2(0x29, 5);
     }
 
+    public void testTanF32_2_relaxed() {
+        doF32_2_relaxed(0x29, 5);
+    }
+
     public void testTanF32_3() {
         doF32_3(0x9a, 5);
     }
 
+    public void testTanF32_3_relaxed() {
+        doF32_3_relaxed(0x9a, 5);
+    }
+
     public void testTanF32_4() {
         doF32_4(0xac3, 5);
+
     }
+    public void testTanF32_4_relaxed() {
+        doF32_4_relaxed(0xac3, 5);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/TanhTest.java b/tests/tests/renderscript/src/android/renderscript/cts/TanhTest.java
index 070fa20..84a01dd 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/TanhTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/TanhTest.java
@@ -22,11 +22,13 @@
 
 public class TanhTest extends RSBaseCompute {
     private ScriptC_tanh_f32 script_f32;
+    private ScriptC_tanh_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_tanh_f32(mRS);
+        script_f32_relaxed = new ScriptC_tanh_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_tanh_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_tanh_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_tanh_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_tanh_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_tanh_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -64,15 +79,32 @@
         doF32(0xab61, 5);
     }
 
+    public void testTanhF32_relaxed() {
+        doF32_relaxed(0xab61, 5);
+    }
+
     public void testTanhF32_2() {
         doF32_2(0xa301, 5);
     }
 
+    public void testTanhF32_2_relaxed() {
+        doF32_2_relaxed(0xa301, 5);
+    }
+
     public void testTanhF32_3() {
         doF32_3(0x918, 5);
     }
 
+    public void testTanhF32_3_relaxed() {
+        doF32_3_relaxed(0x918, 5);
+    }
+
     public void testTanhF32_4() {
         doF32_4(0x81, 5);
+
     }
+    public void testTanhF32_4_relaxed() {
+        doF32_4_relaxed(0x81, 5);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/TruncTest.java b/tests/tests/renderscript/src/android/renderscript/cts/TruncTest.java
index 15878ba..f2a3e11 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/TruncTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/TruncTest.java
@@ -22,11 +22,13 @@
 
 public class TruncTest extends RSBaseCompute {
     private ScriptC_trunc_f32 script_f32;
+    private ScriptC_trunc_f32_relaxed script_f32_relaxed;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         script_f32 = new ScriptC_trunc_f32(mRS);
+        script_f32_relaxed = new ScriptC_trunc_f32_relaxed(mRS);
     }
 
     @Override
@@ -44,6 +46,19 @@
         case TEST_F32_4:
             script_f32.forEach_trunc_f32_4(mIn, mOut);
             break;
+
+        case TEST_RELAXED_F32:
+            script_f32_relaxed.forEach_trunc_f32_1(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_2:
+            script_f32_relaxed.forEach_trunc_f32_2(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_3:
+            script_f32_relaxed.forEach_trunc_f32_3(mIn, mOut);
+            break;
+        case TEST_RELAXED_F32_4:
+            script_f32_relaxed.forEach_trunc_f32_4(mIn, mOut);
+            break;
         }
     }
 
@@ -72,6 +87,10 @@
         doF32(0x12345678, 0);
     }
 
+    public void testTruncF32_relaxed() {
+        doF32_relaxed(0x12345678, 0);
+    }
+
     /**
      * trunc test for float2
      */
@@ -79,6 +98,10 @@
         doF32_2(0x12345a78, 0);
     }
 
+    public void testTruncF32_2_relaxed() {
+        doF32_2_relaxed(0x12345a78, 0);
+    }
+
     /**
      * trunc test for float3
      */
@@ -86,10 +109,19 @@
         doF32_3(0x12f45678, 0);
     }
 
+    public void testTruncF32_3_relaxed() {
+        doF32_3_relaxed(0x12f45678, 0);
+    }
+
     /**
      * trunc test for float4
      */
     public void testTruncF32_4() {
         doF32_4(0x123c5678, 0);
     }
+
+    public void testTruncF32_4_relaxed() {
+        doF32_4_relaxed(0x123c5678, 0);
+    }
+
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/VoidPtr.java b/tests/tests/renderscript/src/android/renderscript/cts/VoidPtr.java
new file mode 100644
index 0000000..9c18d2d
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/VoidPtr.java
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package android.renderscript.cts;
+
+import android.renderscript.Allocation;
+import android.renderscript.Element;
+import android.renderscript.RenderScript;
+import android.renderscript.Type;
+
+public class VoidPtr extends RSBaseCompute {
+    Allocation AOutput;
+    Allocation AInput;
+    Allocation AFailed;
+    int [] Failed;
+
+
+    protected void setupVoidPtr(RenderScript mRS, ScriptC_void_ptr gs) {
+        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32(mRS));
+        Type t = typeBuilder.setX(1).create();
+
+        AFailed = Allocation.createTyped(mRS, t);
+        Failed = new int [1];
+        Failed[0] = 0;
+        AFailed.copyFrom(Failed);
+        gs.set_aFailed(AFailed);
+    }
+
+    /**
+     * Test whether we properly iterate over the elements of an output
+     * allocation, even if the pointer passed to the kernel of the script
+     * is only of type 'void*'
+     *
+     * This test runs for an allocation of type int
+     */
+    public void testVoidOutInt() {
+        ScriptC_void_ptr gs = new ScriptC_void_ptr(mRS);
+        setupVoidPtr(mRS, gs);
+
+        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32(mRS));
+        Type t = typeBuilder.setX(10).setY(15).create();
+
+        AOutput = Allocation.createTyped(mRS, t);
+
+        gs.forEach_set_output_void_int(AOutput);
+        gs.forEach_check_output_int(AOutput);
+
+        AFailed.copyTo(Failed);
+        if (Failed[0] != 0) {
+            FoundError = true;
+        }
+
+        gs.destroy();
+        checkForErrors();
+    }
+
+    /**
+     * Test whether we properly iterate over the elements of an output
+     * allocation, even if the pointer passed to the kernel of the script
+     * is only of type 'void*'
+     *
+     * This test runs for an allocation of type uchar.
+     */
+    public void testVoidOutChar() {
+        ScriptC_void_ptr gs = new ScriptC_void_ptr(mRS);
+        setupVoidPtr(mRS, gs);
+
+        Type.Builder typeBuilder = new Type.Builder(mRS, Element.U8(mRS));
+        Type t = typeBuilder.setX(10).setY(15).create();
+
+        AOutput = Allocation.createTyped(mRS, t);
+
+        gs.forEach_set_output_void_char(AOutput);
+        gs.forEach_check_output_char(AOutput);
+
+        AFailed.copyTo(Failed);
+        if (Failed[0] != 0) {
+            FoundError = true;
+        }
+
+        gs.destroy();
+        checkForErrors();
+    }
+
+
+    /**
+     * Test whether we properly iterate over the elements of an input
+     * allocation, even if the pointer passed to the kernel of the script
+     * is only of type 'void*'
+     *
+     * This test runs for an allocation of type uchar.
+     */
+    public void testVoidInInt() {
+        ScriptC_void_ptr gs = new ScriptC_void_ptr(mRS);
+        setupVoidPtr(mRS, gs);
+
+        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32(mRS));
+        Type t = typeBuilder.setX(10).setY(15).create();
+
+        AOutput = Allocation.createTyped(mRS, t);
+        AInput = Allocation.createTyped(mRS, t);
+
+        gs.forEach_set_output_int(AInput);
+        gs.set_aOutput(AOutput);
+        gs.forEach_copy_void_int(AInput);
+        gs.forEach_check_output_int(AOutput);
+
+        AFailed.copyTo(Failed);
+        if (Failed[0] != 0) {
+            FoundError = true;
+        }
+
+        gs.destroy();
+        checkForErrors();
+    }
+
+    /**
+     * Test whether we properly iterate over the elements of an input
+     * allocation, even if the pointer passed to the kernel of the script
+     * is only of type 'void*'
+     *
+     * This test runs for an allocation of type uchar
+     */
+    public void testVoidInChar() {
+        ScriptC_void_ptr gs = new ScriptC_void_ptr(mRS);
+        setupVoidPtr(mRS, gs);
+
+        Type.Builder typeBuilder = new Type.Builder(mRS, Element.U8(mRS));
+        Type t = typeBuilder.setX(10).setY(15).create();
+
+        AOutput = Allocation.createTyped(mRS, t);
+        AInput = Allocation.createTyped(mRS, t);
+
+        gs.forEach_set_output_char(AInput);
+        gs.set_aOutput(AOutput);
+        gs.forEach_copy_void_char(AInput);
+        gs.forEach_check_output_char(AOutput);
+
+        AFailed.copyTo(Failed);
+        if (Failed[0] != 0) {
+            FoundError = true;
+        }
+
+        gs.destroy();
+        checkForErrors();
+    }
+
+}
diff --git a/tests/tests/sax/src/android/sax/cts/RootElementTest.java b/tests/tests/sax/src/android/sax/cts/RootElementTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/security/src/android/security/cts/KernelSettingsTest.java b/tests/tests/security/src/android/security/cts/KernelSettingsTest.java
index f8ee283..2a1f414 100644
--- a/tests/tests/security/src/android/security/cts/KernelSettingsTest.java
+++ b/tests/tests/security/src/android/security/cts/KernelSettingsTest.java
@@ -31,6 +31,17 @@
 public class KernelSettingsTest extends TestCase {
 
     /**
+     * Ensure that SELinux is in enforcing mode.
+     */
+    public void testSELinuxEnforcing() throws IOException {
+        try {
+            assertEquals("1", getFile("/sys/fs/selinux/enforce"));
+        } catch (FileNotFoundException e) {
+            fail("SELinux is not compiled into this kernel, or is disabled.");
+        }
+    }
+
+    /**
      * Protect against kernel based NULL pointer attacks by enforcing a
      * minimum (and maximum!) value of mmap_min_addr.
      *
diff --git a/tests/tests/telephony/src/android/telephony/cts/SmsUsageMonitorShortCodeTest.java b/tests/tests/telephony/src/android/telephony/cts/SmsUsageMonitorShortCodeTest.java
new file mode 100644
index 0000000..de3755c
--- /dev/null
+++ b/tests/tests/telephony/src/android/telephony/cts/SmsUsageMonitorShortCodeTest.java
@@ -0,0 +1,486 @@
+/*
+ * 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.
+ */
+
+package android.telephony.cts;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.internal.telephony.SmsUsageMonitor;
+
+/**
+ * Test cases for SMS short code pattern matching in SmsUsageMonitor.
+ */
+public class SmsUsageMonitorShortCodeTest extends AndroidTestCase {
+
+    /** Return value from {@link SmsUsageMonitor#checkDestination} for regular phone numbers. */
+    static final int CATEGORY_NOT_SHORT_CODE = 0;
+
+    /**
+     * Return value from {@link SmsUsageMonitor#checkDestination} for free (no cost)
+     * short codes.
+     */
+    static final int CATEGORY_FREE_SHORT_CODE = 1;
+
+    /**
+     * Return value from {@link SmsUsageMonitor#checkDestination} for standard rate (non-premium)
+     * short codes.
+     */
+    static final int CATEGORY_STANDARD_SHORT_CODE = 2;
+
+    /**
+     * Return value from {@link SmsUsageMonitor#checkDestination} for possible premium
+     * short codes.
+     */
+    static final int CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE = 3;
+
+    /** Return value from {@link SmsUsageMonitor#checkDestination} for premium short codes. */
+    static final int CATEGORY_PREMIUM_SHORT_CODE = 4;
+
+    private static final class ShortCodeTest {
+        final String countryIso;
+        final String address;
+        final int category;
+
+        ShortCodeTest(String countryIso, String destAddress, int category) {
+            this.countryIso = countryIso;
+            this.address = destAddress;
+            this.category = category;
+        }
+    }
+
+    /**
+     * List of short code test cases.
+     */
+    private static final ShortCodeTest[] sShortCodeTests = new ShortCodeTest[] {
+            new ShortCodeTest("al", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("al", "4321", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("al", "54321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("al", "15191", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("al", "55500", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("al", "55600", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("al", "654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("am", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("am", "101", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("am", "102", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("am", "103", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("am", "222", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("am", "1111", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("am", "9999", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("am", "1121", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("am", "1141", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("am", "1161", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("am", "3024", CATEGORY_PREMIUM_SHORT_CODE),
+
+            new ShortCodeTest("at", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("at", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("at", "0901234", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("at", "0900666266", CATEGORY_PREMIUM_SHORT_CODE),
+
+            new ShortCodeTest("au", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("au", "180000", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("au", "190000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("au", "1900000", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("au", "19000000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("au", "19998882", CATEGORY_PREMIUM_SHORT_CODE),
+
+            new ShortCodeTest("az", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("az", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("az", "12345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("az", "87744", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("az", "3301", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("az", "3302", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("az", "9012", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("az", "9014", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("az", "9394", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("az", "87744", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("az", "93101", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("az", "123456", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("be", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("be", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("be", "567890", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("be", "8000", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("be", "6566", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("be", "7777", CATEGORY_PREMIUM_SHORT_CODE),
+
+            new ShortCodeTest("bg", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("bg", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("bg", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("bg", "12345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("bg", "1816", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("bg", "1915", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("bg", "1916", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("bg", "1935", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("bg", "18423", CATEGORY_PREMIUM_SHORT_CODE),
+
+            new ShortCodeTest("by", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("by", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("by", "3336", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("by", "5013", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("by", "5014", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("by", "7781", CATEGORY_PREMIUM_SHORT_CODE),
+
+            new ShortCodeTest("ca", "911", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ca", "+18005551234", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ca", "8005551234", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ca", "20000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ca", "200000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ca", "2000000", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ca", "60999", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ca", "88188", CATEGORY_PREMIUM_SHORT_CODE),
+
+            new ShortCodeTest("ch", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ch", "123", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ch", "234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ch", "3456", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ch", "98765", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ch", "543", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ch", "83111", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ch", "234567", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ch", "87654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("cn", "120", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("cn", "1062503000", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("cn", "1065123456", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("cn", "1066335588", CATEGORY_PREMIUM_SHORT_CODE),
+
+            new ShortCodeTest("cy", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("cy", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("cy", "4321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("cy", "54321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("cy", "654321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("cy", "7510", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("cy", "987654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("cz", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("cz", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("cz", "9090150", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("cz", "90901599", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("cz", "987654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("de", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("de", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("de", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "12345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "8888", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "11111", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "11886", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "22022", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "23300", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "3434", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "34567", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "41414", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "55655", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "66766", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "66777", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "77677", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "80888", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "1232286", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("de", "987654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("dk", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("dk", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("dk", "1259", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("dk", "16123", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("dk", "987654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("ee", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ee", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("ee", "123", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ee", "1259", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ee", "15330", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ee", "17999", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ee", "17010", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ee", "17013", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ee", "9034567", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ee", "34567890", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("es", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("es", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("es", "25165", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("es", "27333", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("es", "995399", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("es", "87654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("fi", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("fi", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("fi", "12345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("fi", "123456", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("fi", "17159", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("fi", "17163", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("fi", "0600123", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("fi", "070012345", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("fi", "987654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("fr", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("fr", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("fr", "34567", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("fr", "45678", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("fr", "81185", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("fr", "87654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("gb", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("gb", "999", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("gb", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("gb", "4567", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("gb", "45678", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("gb", "56789", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("gb", "79067", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("gb", "80079", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("gb", "654321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("gb", "7654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("ge", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ge", "8765", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ge", "2345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ge", "8012", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ge", "8013", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ge", "8014", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ge", "8889", CATEGORY_PREMIUM_SHORT_CODE),
+
+            new ShortCodeTest("gr", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("gr", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("gr", "54321", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("gr", "19567", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("gr", "19678", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("gr", "87654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("hu", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("hu", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("hu", "012", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("hu", "0123", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("hu", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("hu", "1784", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("hu", "2345", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("hu", "01234", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("hu", "012345678", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("hu", "0123456789", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("hu", "1234567890", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("hu", "0691227910", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("hu", "2345678901", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("hu", "01234567890", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("ie", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ie", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("ie", "50123", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("ie", "51234", CATEGORY_STANDARD_SHORT_CODE),
+            new ShortCodeTest("ie", "52345", CATEGORY_STANDARD_SHORT_CODE),
+            new ShortCodeTest("ie", "57890", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ie", "67890", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ie", "87654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("il", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("il", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("il", "4422", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("il", "4545", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("il", "98765", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("it", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("it", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("it", "4567", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("it", "48000", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("it", "45678", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("it", "56789", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("it", "456789", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("kg", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("kg", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("kg", "4152", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("kg", "4157", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("kg", "4449", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("kg", "98765", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("kz", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("kz", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("kz", "9194", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("kz", "7790", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("kz", "98765", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("lt", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("lt", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("lt", "123", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("lt", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("lt", "1381", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("lt", "1394", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("lt", "1645", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("lt", "12345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("lt", "123456", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("lu", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("lu", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("lu", "1234", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("lu", "12345", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("lu", "64747", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("lu", "678901", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("lv", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("lv", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("lv", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("lv", "1819", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("lv", "1863", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("lv", "1874", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("lv", "98765", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("mx", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("mx", "2345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("mx", "7766", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("mx", "23456", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("mx", "53035", CATEGORY_PREMIUM_SHORT_CODE),
+
+            new ShortCodeTest("my", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("my", "1234", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("my", "23456", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("my", "32298", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("my", "33776", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("my", "345678", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("nl", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("nl", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("nl", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("nl", "4466", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("nl", "5040", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("nl", "23456", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("no", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("no", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("no", "2201", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("no", "2226", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("no", "2227", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("no", "23456", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("no", "234567", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("nz", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("nz", "123", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("nz", "2345", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("nz", "3903", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("nz", "8995", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("nz", "23456", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("pl", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("pl", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("pl", "7890", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("pl", "34567", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("pl", "7910", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("pl", "74240", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("pl", "79866", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("pl", "92525", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("pl", "87654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("pt", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("pt", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("pt", "61000", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("pt", "62345", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("pt", "68304", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("pt", "69876", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("pt", "87654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("ro", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ro", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("ro", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ro", "1263", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ro", "1288", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ro", "1314", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ro", "1380", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ro", "7890", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ro", "12345", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("ru", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ru", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ru", "1161", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ru", "2097", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ru", "3933", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ru", "7781", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ru", "98765", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("se", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("se", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("se", "1234", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("se", "72345", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("se", "72999", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("se", "123456", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("se", "87654321", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("sg", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("sg", "1234", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("sg", "70000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("sg", "79999", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("sg", "73800", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("sg", "74688", CATEGORY_STANDARD_SHORT_CODE),
+            new ShortCodeTest("sg", "987654", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("si", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("si", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("si", "1234", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("si", "3838", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("si", "72999", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("sk", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("sk", "116117", CATEGORY_FREE_SHORT_CODE),
+            new ShortCodeTest("sk", "1234", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("sk", "6674", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("sk", "7604", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("sk", "72999", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("tj", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("tj", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("tj", "1161", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("tj", "1171", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("tj", "4161", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("tj", "4449", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("tj", "98765", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("ua", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("ua", "5432", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ua", "4448", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ua", "7094", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ua", "7540", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("ua", "98765", CATEGORY_NOT_SHORT_CODE),
+
+            new ShortCodeTest("us", "911", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("us", "+18005551234", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("us", "8005551234", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("us", "20000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("us", "200000", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("us", "2000000", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("us", "20433", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("us", "21472", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("us", "23333", CATEGORY_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("us", "99807", CATEGORY_PREMIUM_SHORT_CODE),
+
+            // generic rules for other countries: 5 digits or less considered potential short code
+            new ShortCodeTest("zz", "2000000", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest("zz", "54321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("zz", "4321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("zz", "321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest("zz", "112", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest(null, "2000000", CATEGORY_NOT_SHORT_CODE),
+            new ShortCodeTest(null, "54321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest(null, "4321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest(null, "321", CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE),
+            new ShortCodeTest(null, "112", CATEGORY_NOT_SHORT_CODE),
+    };
+
+    @SmallTest
+    public void testSmsUsageMonitor() {
+        SmsUsageMonitor monitor = new SmsUsageMonitor(getContext());
+        for (ShortCodeTest test : sShortCodeTests) {
+            assertEquals("country: " + test.countryIso + " number: " + test.address,
+                    test.category, monitor.checkDestination(test.address, test.countryIso));
+        }
+    }
+}
diff --git a/tests/tests/text/src/android/text/cts/EmojiConstants.java b/tests/tests/text/src/android/text/cts/EmojiConstants.java
old mode 100755
new mode 100644
diff --git a/tests/tests/text/src/android/text/cts/EmojiTest.java b/tests/tests/text/src/android/text/cts/EmojiTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/text/src/android/text/cts/TextUtilsTest.java b/tests/tests/text/src/android/text/cts/TextUtilsTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/text/src/android/text/method/cts/BaseKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/BaseKeyListenerTest.java
index a0e03f5..91c0bf6 100644
--- a/tests/tests/text/src/android/text/method/cts/BaseKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/BaseKeyListenerTest.java
@@ -16,132 +16,127 @@
 
 package android.text.method.cts;
 
-import com.android.cts.stub.R;
-
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.cts.util.PollingCheck;
 import android.os.SystemClock;
-import android.test.ActivityInstrumentationTestCase2;
 import android.text.Editable;
 import android.text.InputType;
 import android.text.Selection;
+import android.text.Spannable;
 import android.text.method.BaseKeyListener;
+import android.text.method.cts.KeyListenerTestCase;
 import android.view.KeyCharacterMap;
 import android.view.KeyEvent;
-import android.view.View;
 import android.widget.TextView;
 import android.widget.TextView.BufferType;
 
 /**
- * Test the main functionalities of the BaseKeyListener.
+ * Test {@link android.text.method.BaseKeyListener}.
  */
-public class BaseKeyListenerTest extends
-        ActivityInstrumentationTestCase2<KeyListenerStubActivity> {
+public class BaseKeyListenerTest extends KeyListenerTestCase {
     private static final CharSequence TEST_STRING = "123456";
-    private Activity mActivity;
-    private Instrumentation mInstrumentation;
-    private TextView mTextView;
-
-    public BaseKeyListenerTest(){
-        super("com.android.cts.stub", KeyListenerStubActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        mActivity = getActivity();
-        mInstrumentation = getInstrumentation();
-        mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
-        new PollingCheck(1000) {
-            @Override
-            protected boolean check() {
-                return mTextView.hasWindowFocus();
-            }
-        }.run();
-    }
 
     public void testBackspace() {
         final Editable content = Editable.Factory.getInstance().newEditable(TEST_STRING);
-        setTextViewText(content);
+        final MockBaseKeyListener mockBaseKeyListener = new MockBaseKeyListener();
 
         // Nothing to delete when the cursor is at the beginning.
-        final MockBaseKeyListener baseKeyListener = new MockBaseKeyListener();
-        KeyEvent delKeyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL);
-        Selection.setSelection(content, 0, 0);
-        baseKeyListener.backspace(mTextView, content, KeyEvent.KEYCODE_DEL, delKeyEvent);
+        final KeyEvent delKeyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL);
+        prepTextViewSync(content, mockBaseKeyListener, false, 0, 0);
+        mockBaseKeyListener.backspace(mTextView, content, KeyEvent.KEYCODE_DEL, delKeyEvent);
         assertEquals("123456", content.toString());
 
         // Delete the first three letters using a selection.
-        setTextViewText(content);
-        Selection.setSelection(content, 0, 3);
-        baseKeyListener.backspace(mTextView, content, KeyEvent.KEYCODE_DEL, delKeyEvent);
+        prepTextViewSync(content, mockBaseKeyListener, false, 0, 3);
+        mockBaseKeyListener.backspace(mTextView, content, KeyEvent.KEYCODE_DEL, delKeyEvent);
         assertEquals("456", content.toString());
 
-        // Delete the entire line wit ALT + DEL
-        setTextViewText(content);
-        KeyEvent altDelKeyEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL,
-                0, KeyEvent.META_ALT_ON);
-        Selection.setSelection(content, 0, 0);
-        baseKeyListener.backspace(mTextView, content, KeyEvent.KEYCODE_DEL, altDelKeyEvent);
+        // Delete the entire line with ALT + DEL
+        final KeyEvent altDelKeyEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
+                KeyEvent.KEYCODE_DEL, 0, KeyEvent.META_ALT_ON);
+        prepTextViewSync(content, mockBaseKeyListener, false, 0, 0);
+        mockBaseKeyListener.backspace(mTextView, content, KeyEvent.KEYCODE_DEL, altDelKeyEvent);
         assertEquals("", content.toString());
     }
 
-    private void setTextViewText(final CharSequence content) {
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setText(content, BufferType.EDITABLE);
-            }
-        });
-        mInstrumentation.waitForIdleSync();
-    }
-
     public void testBackspace_withSendKeys() {
-        final MockBaseKeyListener baseKeyListener = new MockBaseKeyListener();
-        final String str = "123456";
+        final MockBaseKeyListener mockBaseKeyListener = new MockBaseKeyListener();
 
         // Delete the first character '1'
-        prepareTextView(str, baseKeyListener, 1, 1);
+        prepTextViewSync(TEST_STRING, mockBaseKeyListener, true, 1, 1);
         sendKeys(KeyEvent.KEYCODE_DEL);
         assertEquals("23456", mTextView.getText().toString());
 
         // Delete character '2' and '3'
-        prepareTextView(str, baseKeyListener, 1, 3);
+        prepTextViewSync(TEST_STRING, mockBaseKeyListener, true, 1, 3);
         sendKeys(KeyEvent.KEYCODE_DEL);
         assertEquals("1456", mTextView.getText().toString());
 
         // Delete everything on the line the cursor is on.
-        prepareTextView(str, baseKeyListener, 0, 0);
+        prepTextViewSync(TEST_STRING, mockBaseKeyListener, true, 0, 0);
         sendAltDelete();
         assertEquals("", mTextView.getText().toString());
 
         // ALT+DEL deletes the selection only.
-        prepareTextView(str, baseKeyListener, 2, 4);
+        prepTextViewSync(TEST_STRING, mockBaseKeyListener, true, 2, 4);
         sendAltDelete();
         assertEquals("1256", mTextView.getText().toString());
 
         // DEL key does not take effect when TextView does not have BaseKeyListener.
-        prepareTextView(str, null, 1, 1);
+        prepTextViewSync(TEST_STRING, null, true, 1, 1);
         sendKeys(KeyEvent.KEYCODE_DEL);
-        assertEquals(str, mTextView.getText().toString());
+        assertEquals(TEST_STRING, mTextView.getText().toString());
     }
 
-    private void prepareTextView(final CharSequence content, final BaseKeyListener keyListener,
-            final int selectionStart, final int selectionEnd) {
+    /*
+     * Check point:
+     * 1. Press 0 key, the content of TextView does not changed.
+     * 2. Set a selection and press DEL key, the selection is deleted.
+     * 3. ACTION_MULTIPLE KEYCODE_UNKNOWN by inserting the event's text into the content.
+     */
+    public void testPressKey() {
+        final MockBaseKeyListener mockBaseKeyListener = new MockBaseKeyListener();
+
+        // press '0' key.
+        prepTextViewSync(TEST_STRING, mockBaseKeyListener, true, 0, 0);
+        sendKeys(KeyEvent.KEYCODE_0);
+        assertEquals("123456", mTextView.getText().toString());
+
+        // delete character '2'
+        prepTextViewSync(mTextView.getText(), mockBaseKeyListener, true, 1, 2);
+        sendKeys(KeyEvent.KEYCODE_DEL);
+        assertEquals("13456", mTextView.getText().toString());
+
+        // test ACTION_MULTIPLE KEYCODE_UNKNOWN key event.
+        KeyEvent event = new KeyEvent(SystemClock.uptimeMillis(), "abcd",
+                KeyCharacterMap.BUILT_IN_KEYBOARD, 0);
+        prepTextViewSync(mTextView.getText(), mockBaseKeyListener, true, 2, 2);
+        mInstrumentation.sendKeySync(event);
+        mInstrumentation.waitForIdleSync();
+        // the text of TextView is never changed, onKeyOther never works.
+//        assertEquals("13abcd456", mTextView.getText().toString());
+    }
+
+    /**
+     * Prepares mTextView state for tests by synchronously setting the content and key listener, on
+     * the UI thread.
+     */
+    private void prepTextViewSync(final CharSequence content, final BaseKeyListener keyListener,
+            final boolean selectInTextView, final int selectionStart, final int selectionEnd) {
         mActivity.runOnUiThread(new Runnable() {
             public void run() {
                 mTextView.setText(content, BufferType.EDITABLE);
                 mTextView.setKeyListener(keyListener);
-                mTextView.requestFocus();
-                Selection.setSelection((Editable) mTextView.getText(), selectionStart,
-                        selectionEnd);
+                Selection.setSelection(
+                        (Spannable) (selectInTextView ? mTextView.getText() : content),
+                        selectionStart, selectionEnd);
             }
         });
         mInstrumentation.waitForIdleSync();
+        assertTrue(mTextView.hasWindowFocus());
     }
 
+    /**
+     * Sends alt-delete key combo via {@link #sendKeys(int... keys)}.
+     */
     private void sendAltDelete() {
         mInstrumentation.sendKeySync(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ALT_LEFT));
         sendKeys(KeyEvent.KEYCODE_DEL);
@@ -149,54 +144,8 @@
     }
 
     /**
-     * Check point:
-     * 1. Press 0 key, the content of TextView does not changed.
-     * 2. Set a selection and press DEL key, the selection is deleted.
-     * 3. ACTION_MULTIPLE KEYCODE_UNKNOWN by inserting the event's text into the content.
+     * A mocked {@link android.text.method.BaseKeyListener} for testing purposes.
      */
-    public void testPressKey() {
-        final CharSequence str = "123456";
-        final MockBaseKeyListener baseKeyListener = new MockBaseKeyListener();
-
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setText(str, BufferType.EDITABLE);
-                mTextView.setKeyListener(baseKeyListener);
-                mTextView.requestFocus();
-                Selection.setSelection((Editable) mTextView.getText(), 0, 0);
-            }
-        });
-        mInstrumentation.waitForIdleSync();
-        assertEquals("123456", mTextView.getText().toString());
-        // press '0' key.
-        sendKeys(KeyEvent.KEYCODE_0);
-        assertEquals("123456", mTextView.getText().toString());
-
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                Selection.setSelection((Editable) mTextView.getText(), 1, 2);
-            }
-        });
-        mInstrumentation.waitForIdleSync();
-        // delete character '2'
-        sendKeys(KeyEvent.KEYCODE_DEL);
-        assertEquals("13456", mTextView.getText().toString());
-
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                Selection.setSelection((Editable) mTextView.getText(), 2, 2);
-            }
-        });
-        mInstrumentation.waitForIdleSync();
-        // test ACTION_MULTIPLE KEYCODE_UNKNOWN key event.
-        KeyEvent event = new KeyEvent(SystemClock.uptimeMillis(), "abcd",
-                KeyCharacterMap.BUILT_IN_KEYBOARD, 0);
-        mInstrumentation.sendKeySync(event);
-        mInstrumentation.waitForIdleSync();
-        // the text of TextView is never changed, onKeyOther never works.
-//        assertEquals("13abcd456", mTextView.getText().toString());
-    }
-
     private class MockBaseKeyListener extends BaseKeyListener {
         public int getInputType() {
             return InputType.TYPE_CLASS_DATETIME
diff --git a/tests/tests/text/src/android/text/method/cts/DateKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/DateKeyListenerTest.java
index 6551b52..067a62e 100644
--- a/tests/tests/text/src/android/text/method/cts/DateKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/DateKeyListenerTest.java
@@ -16,46 +16,16 @@
 
 package android.text.method.cts;
 
-import com.android.cts.stub.R;
-
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.cts.util.PollingCheck;
-import android.test.ActivityInstrumentationTestCase2;
 import android.text.InputType;
+import android.text.method.cts.KeyListenerTestCase;
 import android.text.method.DateKeyListener;
 import android.view.KeyEvent;
 import android.widget.TextView;
 
 /**
- * Test {@link DateKeyListener}.
+ * Test {@link android.text.method.DateKeyListener}.
  */
-public class DateKeyListenerTest extends
-        ActivityInstrumentationTestCase2<KeyListenerStubActivity> {
-    private Activity mActivity;
-    private Instrumentation mInstrumentation;
-    private TextView mTextView;
-
-    public DateKeyListenerTest(){
-        super("com.android.cts.stub", KeyListenerStubActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        mActivity = getActivity();
-        mInstrumentation = getInstrumentation();
-        mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
-        new PollingCheck(1000) {
-            @Override
-            protected boolean check() {
-                return mTextView.hasWindowFocus();
-            }
-        }.run();
-    }
-
+public class DateKeyListenerTest extends KeyListenerTestCase {
     public void testConstructor() {
         new DateKeyListener();
     }
@@ -70,21 +40,20 @@
     }
 
     public void testGetAcceptedChars() {
-        MyDataKeyListener dataKeyListener = new MyDataKeyListener();
+        MockDateKeyListener mockDateKeyListener = new MockDateKeyListener();
 
         TextMethodUtils.assertEquals(DateKeyListener.CHARACTERS,
-                dataKeyListener.getAcceptedChars());
+                mockDateKeyListener.getAcceptedChars());
     }
 
     public void testGetInputType() {
-        MyDataKeyListener dataKeyListener = new MyDataKeyListener();
+        DateKeyListener dateKeyListener = new DateKeyListener();
 
-        int expected = InputType.TYPE_CLASS_DATETIME
-                | InputType.TYPE_DATETIME_VARIATION_DATE;
-        assertEquals(expected, dataKeyListener.getInputType());
+        int expected = InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_DATE;
+        assertEquals(expected, dateKeyListener.getInputType());
     }
 
-    /**
+    /*
      * Scenario description:
      * 1. Press '1' key and check if the content of TextView becomes "1"
      * 2. Press '2' key and check if the content of TextView becomes "12"
@@ -96,13 +65,7 @@
     public void testDateTimeKeyListener() {
         final DateKeyListener dateKeyListener = DateKeyListener.getInstance();
 
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setKeyListener(dateKeyListener);
-                mTextView.requestFocus();
-            }
-        });
-        mInstrumentation.waitForIdleSync();
+        setKeyListenerSync(dateKeyListener);
         assertEquals("", mTextView.getText().toString());
 
         // press '1' key.
@@ -129,13 +92,7 @@
         assertEquals("12-/", mTextView.getText().toString());
 
         // remove DateKeyListener
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setKeyListener(null);
-                mTextView.requestFocus();
-            }
-        });
-        mInstrumentation.waitForIdleSync();
+        setKeyListenerSync(null);
         assertEquals("12-/", mTextView.getText().toString());
 
         // press '/' key, it will not be accepted.
@@ -143,7 +100,13 @@
         assertEquals("12-/", mTextView.getText().toString());
     }
 
-    private class MyDataKeyListener extends DateKeyListener {
+    /**
+     * A mocked {@link android.text.method.DateKeyListener} for testing purposes.
+     *
+     * Allows {@link DateKeyListenerTest} to call
+     * {@link android.text.method.DateKeyListener#getAcceptedChars()}.
+     */
+    private class MockDateKeyListener extends DateKeyListener {
         @Override
         protected char[] getAcceptedChars() {
             return super.getAcceptedChars();
diff --git a/tests/tests/text/src/android/text/method/cts/DateTimeKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/DateTimeKeyListenerTest.java
index 9aac08b..03683dc 100644
--- a/tests/tests/text/src/android/text/method/cts/DateTimeKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/DateTimeKeyListenerTest.java
@@ -16,47 +16,16 @@
 
 package android.text.method.cts;
 
-import com.android.cts.stub.R;
-
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.cts.util.PollingCheck;
-import android.test.ActivityInstrumentationTestCase2;
 import android.text.InputType;
+import android.text.method.cts.KeyListenerTestCase;
 import android.text.method.DateTimeKeyListener;
 import android.view.KeyCharacterMap;
 import android.view.KeyEvent;
-import android.widget.TextView;
 
 /**
- * Test {@link DateTimeKeyListener}.
+ * Test {@link android.DateTimeKeyListener}.
  */
-public class DateTimeKeyListenerTest extends
-        ActivityInstrumentationTestCase2<KeyListenerStubActivity> {
-    private Activity mActivity;
-    private Instrumentation mInstrumentation;
-    private TextView mTextView;
-
-    public DateTimeKeyListenerTest(){
-        super("com.android.cts.stub", KeyListenerStubActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        mActivity = getActivity();
-        new PollingCheck() {
-            @Override
-            protected boolean check() {
-                return mActivity.hasWindowFocus();
-            }
-        }.run();
-        mInstrumentation = getInstrumentation();
-        mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
-    }
-
+public class DateTimeKeyListenerTest extends KeyListenerTestCase {
     public void testConstructor() {
         new DateTimeKeyListener();
     }
@@ -71,10 +40,10 @@
     }
 
     public void testGetAcceptedChars() {
-        MyDateTimeKeyListener dataTimeKeyListener = new MyDateTimeKeyListener();
+        MockDateTimeKeyListener mockDateTimeKeyListener = new MockDateTimeKeyListener();
 
         TextMethodUtils.assertEquals(DateTimeKeyListener.CHARACTERS,
-                dataTimeKeyListener.getAcceptedChars());
+                mockDateTimeKeyListener.getAcceptedChars());
     }
 
     public void testGetInputType() {
@@ -85,7 +54,7 @@
         assertEquals(expected, listener.getInputType());
     }
 
-    /**
+    /*
      * Scenario description:
      * 1. Press '1' key and check if the content of TextView becomes "1"
      * 2. Press '2' key and check if the content of TextView becomes "12"
@@ -97,15 +66,8 @@
      */
     public void testDateTimeKeyListener() {
         final DateTimeKeyListener dateTimeKeyListener = DateTimeKeyListener.getInstance();
+        setKeyListenerSync(dateTimeKeyListener);
         String expectedText = "";
-
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setKeyListener(dateTimeKeyListener);
-                mTextView.requestFocus();
-            }
-        });
-        mInstrumentation.waitForIdleSync();
         assertEquals(expectedText, mTextView.getText().toString());
 
         // press '1' key.
@@ -148,20 +110,21 @@
         }
 
         // remove DateTimeKeyListener
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setKeyListener(null);
-                mTextView.requestFocus();
-            }
-        });
-        mInstrumentation.waitForIdleSync();
+        setKeyListenerSync(null);
         assertEquals(expectedText, mTextView.getText().toString());
 
         mInstrumentation.sendStringSync("1");
         assertEquals(expectedText, mTextView.getText().toString());
     }
 
-    private class MyDateTimeKeyListener extends DateTimeKeyListener {
+
+    /**
+     * A mocked {@link android.text.method.DateTimeKeyListener} for testing purposes.
+     *
+     * Allows {@link DateTimeKeyListenerTest} to call
+     * {@link android.text.method.DateTimeKeyListener#getAcceptedChars()}.
+     */
+    private class MockDateTimeKeyListener extends DateTimeKeyListener {
         @Override
         protected char[] getAcceptedChars() {
             return super.getAcceptedChars();
diff --git a/tests/tests/text/src/android/text/method/cts/DialerKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/DialerKeyListenerTest.java
index a02bdfe..9456c7e 100644
--- a/tests/tests/text/src/android/text/method/cts/DialerKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/DialerKeyListenerTest.java
@@ -16,17 +16,17 @@
 
 package android.text.method.cts;
 
-import junit.framework.TestCase;
 import android.text.InputType;
 import android.text.Spannable;
 import android.text.SpannableString;
+import android.text.method.cts.KeyListenerTestCase;
 import android.text.method.DialerKeyListener;
 import android.view.KeyEvent;
 
 /**
- * Test {@link DialerKeyListener}.
+ * Test {@link android.text.method.DialerKeyListener}.
  */
-public class DialerKeyListenerTest extends TestCase {
+public class DialerKeyListenerTest extends KeyListenerTestCase {
     public void testConstructor() {
         new DialerKeyListener();
     }
@@ -76,11 +76,20 @@
         assertEquals(InputType.TYPE_CLASS_PHONE, listener.getInputType());
     }
 
+    /**
+     * A mocked {@link android.text.method.DialerKeyListener} for testing purposes.
+     *
+     * Allows {@link DialerKeyListenerTest} to call
+     * {@link android.text.method.DialerKeyListener#getAcceptedChars()} and
+     * {@link android.text.method.DialerKeyListener#lookup(KeyEvent, Spannable)}.
+     */
     private class MockDialerKeyListener extends DialerKeyListener {
+        @Override
         protected char[] getAcceptedChars() {
             return super.getAcceptedChars();
         }
 
+        @Override
         protected int lookup(KeyEvent event, Spannable content) {
             return super.lookup(event, content);
         }
diff --git a/tests/tests/text/src/android/text/method/cts/DigitsKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/DigitsKeyListenerTest.java
index 16d9364..33a23e3 100644
--- a/tests/tests/text/src/android/text/method/cts/DigitsKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/DigitsKeyListenerTest.java
@@ -16,56 +16,25 @@
 
 package android.text.method.cts;
 
-import com.android.cts.stub.R;
-
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.cts.util.PollingCheck;
-import android.test.ActivityInstrumentationTestCase2;
 import android.text.InputType;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.Spanned;
+import android.text.method.cts.KeyListenerTestCase;
 import android.text.method.DigitsKeyListener;
 import android.view.KeyEvent;
-import android.widget.TextView;
 
 /**
  * Test {@link DigitsKeyListener}.
  */
-public class DigitsKeyListenerTest extends
-        ActivityInstrumentationTestCase2<KeyListenerStubActivity> {
-    private Activity mActivity;
-    private Instrumentation mInstrumentation;
-    private TextView mTextView;
-
-    public DigitsKeyListenerTest(){
-        super("com.android.cts.stub", KeyListenerStubActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        mActivity = getActivity();
-        mInstrumentation = getInstrumentation();
-        mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
-        new PollingCheck(1000) {
-            @Override
-            protected boolean check() {
-                return mTextView.hasWindowFocus();
-            }
-        }.run();
-    }
-
+public class DigitsKeyListenerTest extends KeyListenerTestCase {
     public void testConstructor() {
         new DigitsKeyListener();
 
         new DigitsKeyListener(true, true);
     }
 
-    /**
+    /*
      * Check point:
      * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'.
      * 1. filter "123456", return null.
@@ -114,7 +83,7 @@
         assertEquals(destString, dest.toString());
     }
 
-    /**
+    /*
      * Check point:
      * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+'.
      * 1. filter "-123456", return null
@@ -217,7 +186,7 @@
         assertEquals(startSign, dest.toString());
     }
 
-    /**
+    /*
      * Check point:
      * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.'.
      * 1. filter "123.456", return null
@@ -287,7 +256,7 @@
         assertEquals(startDecimal, dest.toString());
     }
 
-    /**
+    /*
      * Check point:
      * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '-',
      * '+'.
@@ -410,7 +379,7 @@
         assertEquals(startSign, dest.toString());
     }
 
-    /**
+    /*
      * Scenario description:
      * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'.
      *  1. Press '-' key and this key could not be accepted.
@@ -421,13 +390,7 @@
     public void testDigitsKeyListener1() {
         final DigitsKeyListener digitsKeyListener = DigitsKeyListener.getInstance();
 
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setKeyListener(digitsKeyListener);
-                mTextView.requestFocus();
-            }
-        });
-        mInstrumentation.waitForIdleSync();
+        setKeyListenerSync(digitsKeyListener);
         assertEquals("", mTextView.getText().toString());
 
         // press '-' key.
@@ -447,7 +410,7 @@
         assertEquals("12", mTextView.getText().toString());
     }
 
-    /**
+    /*
      * Scenario description:
      * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+'.
      *  1. Press '-' key and check if the content of TextView becomes "-"
@@ -461,13 +424,7 @@
     public void testDigitsKeyListener2() {
         final DigitsKeyListener digitsKeyListener = DigitsKeyListener.getInstance(true, false);
 
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setKeyListener(digitsKeyListener);
-                mTextView.requestFocus();
-            }
-        });
-        mInstrumentation.waitForIdleSync();
+        setKeyListenerSync(digitsKeyListener);
         assertEquals("", mTextView.getText().toString());
 
         // press '-' key.
@@ -495,7 +452,7 @@
         assertEquals("-12", mTextView.getText().toString());
     }
 
-    /**
+    /*
      * Scenario description:
      * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.'.
      *  1. Press '-' key and check if the content of TextView becomes ""
@@ -509,13 +466,7 @@
     public void testDigitsKeyListener3() {
         final DigitsKeyListener digitsKeyListener = DigitsKeyListener.getInstance(false, true);
 
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setKeyListener(digitsKeyListener);
-                mTextView.requestFocus();
-            }
-        });
-        mInstrumentation.waitForIdleSync();
+        setKeyListenerSync(digitsKeyListener);
         assertEquals("", mTextView.getText().toString());
 
         // press '-' key.
@@ -543,7 +494,7 @@
         assertEquals("1.2", mTextView.getText().toString());
     }
 
-    /**
+    /*
      * Scenario description:
      * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+',
      * '.'.
@@ -559,13 +510,7 @@
     public void testDigitsKeyListener4() {
         final DigitsKeyListener digitsKeyListener = DigitsKeyListener.getInstance(true, true);
 
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setKeyListener(digitsKeyListener);
-                mTextView.requestFocus();
-            }
-        });
-        mInstrumentation.waitForIdleSync();
+        setKeyListenerSync(digitsKeyListener);
         assertEquals("", mTextView.getText().toString());
 
         // press '+' key.
@@ -593,7 +538,7 @@
         assertEquals("+1.2", mTextView.getText().toString());
     }
 
-    /**
+    /*
      * Scenario description:
      * Current accepted characters are '5', '6', '7', '8', '9'.
      *  1. Press '1' key and this key could not be accepted.
@@ -606,13 +551,7 @@
         final String accepted = "56789";
         final DigitsKeyListener digitsKeyListener = DigitsKeyListener.getInstance(accepted);
 
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setKeyListener(digitsKeyListener);
-                mTextView.requestFocus();
-            }
-        });
-        mInstrumentation.waitForIdleSync();
+        setKeyListenerSync(digitsKeyListener);
         assertEquals("", mTextView.getText().toString());
 
         // press '1' key.
@@ -680,7 +619,7 @@
     }
 
     public void testGetAcceptedChars() {
-        MyDigitsKeyListener digitsKeyListener = new MyDigitsKeyListener();
+        MockDigitsKeyListener mockDigitsKeyListener = new MockDigitsKeyListener();
 
         final char[][] expected = new char[][] {
             new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' },
@@ -689,20 +628,16 @@
             new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+', '.' },
         };
 
-        TextMethodUtils.assertEquals(expected[0],
-                digitsKeyListener.getAcceptedChars());
+        TextMethodUtils.assertEquals(expected[0], mockDigitsKeyListener.getAcceptedChars());
 
-        digitsKeyListener = new MyDigitsKeyListener(true, false);
-        TextMethodUtils.assertEquals(expected[1],
-                digitsKeyListener.getAcceptedChars());
+        mockDigitsKeyListener = new MockDigitsKeyListener(true, false);
+        TextMethodUtils.assertEquals(expected[1], mockDigitsKeyListener.getAcceptedChars());
 
-        digitsKeyListener = new MyDigitsKeyListener(false, true);
-        TextMethodUtils.assertEquals(expected[2],
-                digitsKeyListener.getAcceptedChars());
+        mockDigitsKeyListener = new MockDigitsKeyListener(false, true);
+        TextMethodUtils.assertEquals(expected[2], mockDigitsKeyListener.getAcceptedChars());
 
-        digitsKeyListener = new MyDigitsKeyListener(true, true);
-        TextMethodUtils.assertEquals(expected[3],
-                digitsKeyListener.getAcceptedChars());
+        mockDigitsKeyListener = new MockDigitsKeyListener(true, true);
+        TextMethodUtils.assertEquals(expected[3], mockDigitsKeyListener.getAcceptedChars());
     }
 
     public void testGetInputType() {
@@ -727,12 +662,18 @@
         assertEquals(expected, digitsKeyListener.getInputType());
     }
 
-    private class MyDigitsKeyListener extends DigitsKeyListener {
-        public MyDigitsKeyListener() {
+    /**
+     * A mocked {@link android.text.method.DigitsKeyListener} for testing purposes.
+     *
+     * Allows {@link DigitsKeyListenerTest} to call
+     * {@link android.text.method.DigitsKeyListener#getAcceptedChars()}.
+     */
+    private class MockDigitsKeyListener extends DigitsKeyListener {
+        public MockDigitsKeyListener() {
             super();
         }
 
-        public MyDigitsKeyListener(boolean sign, boolean decimal) {
+        public MockDigitsKeyListener(boolean sign, boolean decimal) {
             super(sign, decimal);
         }
 
diff --git a/tests/tests/text/src/android/text/method/cts/KeyListenerTestCase.java b/tests/tests/text/src/android/text/method/cts/KeyListenerTestCase.java
new file mode 100644
index 0000000..4007f33
--- /dev/null
+++ b/tests/tests/text/src/android/text/method/cts/KeyListenerTestCase.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package android.text.method.cts;
+
+import com.android.cts.stub.R;
+
+import android.app.Instrumentation;
+import android.test.ActivityInstrumentationTestCase2;
+import android.text.format.DateUtils;
+import android.text.method.cts.KeyListenerStubActivity;
+import android.text.method.KeyListener;
+import android.widget.TextView;
+
+/**
+ * Base class for various KeyListener tests.
+ * {@link BaseKeyListenerTest}
+ * {@link DateKeyListenerTest}
+ * {@link DateTimeKeyListenerTest}
+ * {@link DigitsKeyListenerTest}
+ * {@link MultiTapKeyListenerTest}
+ * {@link NumberKeyListenerTest}
+ * {@link QwertyKeyListenerTest}
+ * {@link TextKeyKeyListenerTest}
+ *
+ * @see BaseKeyListenerTest
+ * @see DateKeyListenerTest
+ * @see DateTimeKeyListenerTest
+ * @see DigitsKeyListenerTest
+ * @see MultiTapKeyListenerTest
+ * @see NumberKeyListenerTest
+ * @see QwertyKeyListenerTest
+ * @see TextKeyKeyListenerTest
+ */
+public abstract class KeyListenerTestCase extends
+        ActivityInstrumentationTestCase2<KeyListenerStubActivity> {
+    protected KeyListenerStubActivity mActivity;
+    protected Instrumentation mInstrumentation;
+    protected TextView mTextView;
+
+    public KeyListenerTestCase() {
+        super("com.android.cts.stub", KeyListenerStubActivity.class);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        mActivity = getActivity();
+        mInstrumentation = getInstrumentation();
+        mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
+
+        assertTrue(mActivity.waitForWindowFocus(5 * DateUtils.SECOND_IN_MILLIS));
+    }
+
+    /**
+     * Synchronously sets mTextView's key listener on the UI thread.
+     */
+    protected void setKeyListenerSync(final KeyListener keyListener) {
+        mActivity.runOnUiThread(new Runnable() {
+            public void run() {
+                mTextView.setKeyListener(keyListener);
+            }
+        });
+        mInstrumentation.waitForIdleSync();
+    }
+}
diff --git a/tests/tests/text/src/android/text/method/cts/MetaKeyKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/MetaKeyKeyListenerTest.java
index b4a18b2..c6eb78c 100644
--- a/tests/tests/text/src/android/text/method/cts/MetaKeyKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/MetaKeyKeyListenerTest.java
@@ -16,12 +16,11 @@
 
 package android.text.method.cts;
 
-
-import android.test.AndroidTestCase;
 import android.text.Editable;
 import android.text.Selection;
 import android.text.Spannable;
 import android.text.Spanned;
+import android.text.method.cts.KeyListenerTestCase;
 import android.text.method.DateKeyListener;
 import android.text.method.MetaKeyKeyListener;
 import android.view.KeyCharacterMap;
@@ -32,11 +31,11 @@
 /**
  * Test {@link MetaKeyKeyListener}.
  */
-public class MetaKeyKeyListenerTest extends AndroidTestCase {
+public class MetaKeyKeyListenerTest extends KeyListenerTestCase {
     public void testPressKey() {
         final CharSequence str = "123456";
         final MetaKeyKeyListener numberKeyListener = new DateKeyListener();
-        final View view = new ImageView(getContext());
+        final View view = new ImageView(mInstrumentation.getTargetContext());
         final Editable content = Editable.Factory.getInstance().newEditable(str);
 
         content.setSpan(Selection.SELECTION_START, 0, 0, Spanned.SPAN_POINT_POINT);
@@ -61,7 +60,7 @@
     public void testReleaseKey() {
         final CharSequence str = "123456";
         final MetaKeyKeyListener numberKeyListener = new DateKeyListener();
-        final View view = new ImageView(getContext());
+        final View view = new ImageView(mInstrumentation.getTargetContext());
         final Editable content = Editable.Factory.getInstance().newEditable(str);
 
         content.setSpan(Selection.SELECTION_START, 0, 0, Spanned.SPAN_POINT_POINT);
@@ -343,12 +342,21 @@
         assertEquals(0, state);
     }
 
+    /**
+     * A mocked {@link android.text.method.MetaKeyKeyListener} for testing purposes.
+     *
+     * Allows {@link MetaKeyKeyListenerTest} to call
+     * {@link android.text.method.MetaKeyKeyListener.resetLockedMeta(Spannable)}.
+     */
     private class MockMetaKeyKeyListener extends MetaKeyKeyListener {
         public void callResetLockedMeta(Spannable content) {
             MetaKeyKeyListener.resetLockedMeta(content);
         }
     }
 
+    /**
+     * A mocked {@link android.text.Spannable} for testing purposes.
+     */
     private class MockSpannable implements Spannable {
         private int mFlags;
         private boolean mCalledRemoveSpan = false;
diff --git a/tests/tests/text/src/android/text/method/cts/MultiTapKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/MultiTapKeyListenerTest.java
old mode 100755
new mode 100644
index 3b4b259..e537b24
--- a/tests/tests/text/src/android/text/method/cts/MultiTapKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/MultiTapKeyListenerTest.java
@@ -16,16 +16,11 @@
 
 package android.text.method.cts;
 
-import com.android.cts.stub.R;
-
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.test.ActivityInstrumentationTestCase2;
 import android.text.InputType;
 import android.text.Selection;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
+import android.text.method.cts.KeyListenerTestCase;
 import android.text.method.MultiTapKeyListener;
 import android.text.method.TextKeyListener.Capitalize;
 import android.view.KeyEvent;
@@ -34,27 +29,11 @@
 
 import java.util.concurrent.TimeUnit;
 
-public class MultiTapKeyListenerTest extends
-        ActivityInstrumentationTestCase2<KeyListenerStubActivity> {
+public class MultiTapKeyListenerTest extends KeyListenerTestCase {
     /**
      * time out of MultiTapKeyListener. longer than 2000ms in case the system is sluggish.
      */
     private static final long TIME_OUT = 3000;
-    private Activity mActivity;
-    private Instrumentation mInstrumentation;
-    private TextView mTextView;
-
-    public MultiTapKeyListenerTest() {
-        super("com.android.cts.stub", KeyListenerStubActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mActivity = getActivity();
-        mInstrumentation = getInstrumentation();
-        mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
-    }
 
     public void testConstructor() {
         new MultiTapKeyListener(Capitalize.NONE, true);
@@ -65,20 +44,20 @@
     }
 
     public void testOnSpanAdded() {
-        final MockMultiTapKeyListener multiTapKeyListener
+        final MockMultiTapKeyListener mockMultiTapKeyListener
                 = new MockMultiTapKeyListener(Capitalize.CHARACTERS, true);
         final Spannable text = new SpannableStringBuilder("123456");
 
-        assertFalse(multiTapKeyListener.hadAddedSpan());
+        assertFalse(mockMultiTapKeyListener.hadAddedSpan());
         mActivity.runOnUiThread(new Runnable() {
             public void run() {
-                mTextView.setKeyListener(multiTapKeyListener);
+                mTextView.setKeyListener(mockMultiTapKeyListener);
                 mTextView.setText(text, BufferType.EDITABLE);
             }
         });
         mInstrumentation.waitForIdleSync();
 
-        assertTrue(multiTapKeyListener.hadAddedSpan());
+        assertTrue(mockMultiTapKeyListener.hadAddedSpan());
     }
 
     public void testOnSpanChanged() {
@@ -263,6 +242,11 @@
         assertEquals(expected, listener.getInputType());
     }
 
+    /**
+     * A mocked {@link android.text.method.MultiTapKeyListener} for testing purposes.
+     *
+     * Tracks whether {@link MockMultiTapKeyListener#onSpanAdded()} has been called.
+     */
     private class MockMultiTapKeyListener extends MultiTapKeyListener {
         private boolean mHadAddedSpan;
 
diff --git a/tests/tests/text/src/android/text/method/cts/NumberKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/NumberKeyListenerTest.java
index 795382c..fa0db0d 100644
--- a/tests/tests/text/src/android/text/method/cts/NumberKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/NumberKeyListenerTest.java
@@ -16,18 +16,12 @@
 
 package android.text.method.cts;
 
-import com.android.cts.stub.R;
-
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.cts.util.PollingCheck;
-import android.test.ActivityInstrumentationTestCase2;
 import android.text.Editable;
 import android.text.Selection;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.Spanned;
+import android.text.method.cts.KeyListenerTestCase;
 import android.text.method.NumberKeyListener;
 import android.view.KeyEvent;
 import android.view.View;
@@ -35,31 +29,8 @@
 import android.widget.TextView.BufferType;
 
 
-public class NumberKeyListenerTest extends
-        ActivityInstrumentationTestCase2<KeyListenerStubActivity> {
-
-    private MockNumberKeyListener mNumberKeyListener;
-    private Activity mActivity;
-    private Instrumentation mInstrumentation;
-    private TextView mTextView;
-
-    public NumberKeyListenerTest(){
-        super("com.android.cts.stub", KeyListenerStubActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mActivity = getActivity();
-        mInstrumentation = getInstrumentation();
-        mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
-        new PollingCheck(1000) {
-            @Override
-            protected boolean check() {
-                return mTextView.hasWindowFocus();
-            }
-        }.run();
-    }
+public class NumberKeyListenerTest extends KeyListenerTestCase {
+    private MockNumberKeyListener mMockNumberKeyListener;
 
     /**
      * Check point:
@@ -70,29 +41,31 @@
      * 5. Filter Spanned("12345 Android"), return Spanned("12345") and copy spans.
      */
     public void testFilter() {
-        mNumberKeyListener = new MockNumberKeyListener(MockNumberKeyListener.DIGITS);
+        mMockNumberKeyListener = new MockNumberKeyListener(MockNumberKeyListener.DIGITS);
         String source = "Android test";
         SpannableString dest = new SpannableString("012345");
-        assertEquals("", mNumberKeyListener.filter(source, 0, source.length(),
+        assertEquals("", mMockNumberKeyListener.filter(source, 0, source.length(),
                 dest, 0, dest.length()).toString());
 
         source = "12345";
         dest = new SpannableString("012345");
-        assertNull(mNumberKeyListener.filter(source, 0, source.length(), dest, 0, dest.length()));
+        assertNull(mMockNumberKeyListener.filter(source, 0, source.length(), dest, 0,
+                dest.length()));
 
         source = "";
         dest = new SpannableString("012345");
-        assertNull(mNumberKeyListener.filter(source, 0, source.length(), dest, 0, dest.length()));
+        assertNull(mMockNumberKeyListener.filter(source, 0, source.length(), dest, 0,
+                dest.length()));
 
         source = "12345 Android";
         dest = new SpannableString("012345 Android-test");
-        assertEquals("12345", mNumberKeyListener.filter(source, 0, source.length(),
+        assertEquals("12345", mMockNumberKeyListener.filter(source, 0, source.length(),
                 dest, 0, dest.length()).toString());
 
         Object what = new Object();
         Spannable spannableSource = new SpannableString("12345 Android");
         spannableSource.setSpan(what, 0, spannableSource.length(), Spanned.SPAN_POINT_POINT);
-        Spanned filtered = (Spanned) mNumberKeyListener.filter(spannableSource,
+        Spanned filtered = (Spanned) mMockNumberKeyListener.filter(spannableSource,
                 0, spannableSource.length(), dest, 0, dest.length());
         assertEquals("12345", filtered.toString());
         assertEquals(Spanned.SPAN_POINT_POINT, filtered.getSpanFlags(what));
@@ -100,7 +73,7 @@
         assertEquals("12345".length(), filtered.getSpanEnd(what));
 
         try {
-            mNumberKeyListener.filter(null, 0, 1, dest, 0, dest.length());
+            mMockNumberKeyListener.filter(null, 0, 1, dest, 0, dest.length());
             fail("should throw NullPointerException.");
         } catch (NullPointerException e) {
         }
@@ -112,18 +85,18 @@
      * key event, return the char; otherwise return '\0'.
      */
     public void testLookup() {
-        mNumberKeyListener = new MockNumberKeyListener(MockNumberKeyListener.DIGITS);
+        mMockNumberKeyListener = new MockNumberKeyListener(MockNumberKeyListener.DIGITS);
         KeyEvent event1 = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_0);
         SpannableString str = new SpannableString("012345");
-        assertEquals('0', mNumberKeyListener.lookup(event1, str));
+        assertEquals('0', mMockNumberKeyListener.lookup(event1, str));
 
-        mNumberKeyListener = new MockNumberKeyListener(MockNumberKeyListener.NOTHING);
+        mMockNumberKeyListener = new MockNumberKeyListener(MockNumberKeyListener.NOTHING);
         KeyEvent event2 = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_A);
         str = new SpannableString("ABCD");
-        assertEquals('\0', mNumberKeyListener.lookup(event2, str));
+        assertEquals('\0', mMockNumberKeyListener.lookup(event2, str));
 
         try {
-            mNumberKeyListener.lookup(null, str);
+            mMockNumberKeyListener.lookup(null, str);
             fail("should throw NullPointerException.");
         } catch (NullPointerException e) {
             // expected.
@@ -131,13 +104,13 @@
     }
 
     public void testOk() {
-        mNumberKeyListener = new MockNumberKeyListener(MockNumberKeyListener.DIGITS);
+        mMockNumberKeyListener = new MockNumberKeyListener(MockNumberKeyListener.DIGITS);
 
-        assertTrue(mNumberKeyListener.callOk(mNumberKeyListener.getAcceptedChars(), '3'));
-        assertFalse(mNumberKeyListener.callOk(mNumberKeyListener.getAcceptedChars(), 'e'));
+        assertTrue(mMockNumberKeyListener.callOk(mMockNumberKeyListener.getAcceptedChars(), '3'));
+        assertFalse(mMockNumberKeyListener.callOk(mMockNumberKeyListener.getAcceptedChars(), 'e'));
 
         try {
-            mNumberKeyListener.callOk(null, 'm');
+            mMockNumberKeyListener.callOk(null, 'm');
             fail("should throw NullPointerException.");
         } catch (NullPointerException e) {
         }
@@ -151,13 +124,13 @@
      */
     public void testPressKey() {
         final CharSequence text = "123456";
-        final MockNumberKeyListener numberKeyListener =
+        final MockNumberKeyListener mockNumberKeyListener =
             new MockNumberKeyListener(MockNumberKeyListener.DIGITS);
 
         mActivity.runOnUiThread(new Runnable() {
             public void run() {
                 mTextView.setText(text, BufferType.EDITABLE);
-                mTextView.setKeyListener(numberKeyListener);
+                mTextView.setKeyListener(mockNumberKeyListener);
                 mTextView.requestFocus();
                 Selection.setSelection((Editable) mTextView.getText(), 0, 0);
             }
@@ -188,8 +161,15 @@
         assertEquals("0123456", mTextView.getText().toString());
     }
 
+    /**
+     * A mocked {@link android.text.method.NumberKeyListener} for testing purposes.
+     *
+     * Allows {@link NumberKeyListenerTest} to call
+     * {@link android.text.method.NumberKeyListener#getAcceptedChars()},
+     * {@link android.text.method.NumberKeyListener#lookup(KeyEvent, Spannable)}, and
+     * {@link android.text.method.NumberKeyListener@ok(char[], char)}.
+     */
     private static class MockNumberKeyListener extends NumberKeyListener {
-
         static final char[] DIGITS =
                 new char[] {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
 
diff --git a/tests/tests/text/src/android/text/method/cts/PasswordTransformationMethodTest.java b/tests/tests/text/src/android/text/method/cts/PasswordTransformationMethodTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/text/src/android/text/method/cts/QwertyKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/QwertyKeyListenerTest.java
index c97edd9..b66e19a 100644
--- a/tests/tests/text/src/android/text/method/cts/QwertyKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/QwertyKeyListenerTest.java
@@ -16,16 +16,11 @@
 
 package android.text.method.cts;
 
-import com.android.cts.stub.R;
-
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.test.ActivityInstrumentationTestCase2;
 import android.text.InputType;
 import android.text.Selection;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
+import android.text.method.cts.KeyListenerTestCase;
 import android.text.method.QwertyKeyListener;
 import android.text.method.TextKeyListener;
 import android.text.method.TextKeyListener.Capitalize;
@@ -33,24 +28,7 @@
 import android.widget.TextView;
 import android.widget.TextView.BufferType;
 
-public class QwertyKeyListenerTest extends
-        ActivityInstrumentationTestCase2<KeyListenerStubActivity> {
-    private Activity mActivity;
-    private Instrumentation mInstrumentation;
-    private TextView mTextView;
-
-    public QwertyKeyListenerTest() {
-        super("com.android.cts.stub", KeyListenerStubActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mActivity = getActivity();
-        mInstrumentation = getInstrumentation();
-        mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
-    }
-
+public class QwertyKeyListenerTest extends KeyListenerTestCase {
     public void testConstructor() {
         new QwertyKeyListener(Capitalize.NONE, false);
 
diff --git a/tests/tests/text/src/android/text/method/cts/ScrollingMovementMethodTest.java b/tests/tests/text/src/android/text/method/cts/ScrollingMovementMethodTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/text/src/android/text/method/cts/TextKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/TextKeyListenerTest.java
index 9984efe..3e09a60 100644
--- a/tests/tests/text/src/android/text/method/cts/TextKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/TextKeyListenerTest.java
@@ -16,19 +16,14 @@
 
 package android.text.method.cts;
 
-import com.android.cts.stub.R;
-
-
-import android.app.Instrumentation;
-import android.cts.util.PollingCheck;
 import android.os.SystemClock;
-import android.test.ActivityInstrumentationTestCase2;
 import android.test.UiThreadTest;
 import android.text.Editable;
 import android.text.InputType;
 import android.text.Selection;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
+import android.text.method.cts.KeyListenerTestCase;
 import android.text.method.TextKeyListener;
 import android.text.method.TextKeyListener.Capitalize;
 import android.view.KeyCharacterMap;
@@ -37,33 +32,11 @@
 import android.widget.TextView;
 import android.widget.TextView.BufferType;
 
-public class TextKeyListenerTest extends
-        ActivityInstrumentationTestCase2<KeyListenerStubActivity> {
+public class TextKeyListenerTest extends KeyListenerTestCase {
     /**
      * time out of MultiTapKeyListener. longer than 2000ms in case the system is sluggish.
      */
     private static final long TIME_OUT = 3000;
-    private KeyListenerStubActivity mActivity;
-    private Instrumentation mInstrumentation;
-    private TextView mTextView;
-
-    public TextKeyListenerTest() {
-        super("com.android.cts.stub", KeyListenerStubActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mActivity = getActivity();
-        mInstrumentation = getInstrumentation();
-        mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
-        new PollingCheck(1000) {
-            @Override
-            protected boolean check() {
-                return mTextView.hasWindowFocus();
-            }
-        }.run();
-    }
 
     public void testConstructor() {
         new TextKeyListener(Capitalize.NONE, true);
@@ -104,22 +77,22 @@
     }
 
     public void testOnSpanAdded() {
-        final MockTextKeyListener textKeyListener
+        final MockTextKeyListener mockTextKeyListener
                 = new MockTextKeyListener(Capitalize.CHARACTERS, true);
         final Spannable text = new SpannableStringBuilder("123456");
 
-        assertFalse(textKeyListener.hadAddedSpan());
+        assertFalse(mockTextKeyListener.hadAddedSpan());
         mActivity.runOnUiThread(new Runnable() {
             public void run() {
-                mTextView.setKeyListener(textKeyListener);
+                mTextView.setKeyListener(mockTextKeyListener);
                 mTextView.setText(text, BufferType.EDITABLE);
             }
         });
         mInstrumentation.waitForIdleSync();
 
-        assertTrue(textKeyListener.hadAddedSpan());
+        assertTrue(mockTextKeyListener.hadAddedSpan());
 
-        textKeyListener.release();
+        mockTextKeyListener.release();
     }
 
     public void testGetInstance1() {
@@ -243,7 +216,6 @@
         mActivity.runOnUiThread(new Runnable() {
             public void run() {
                 mTextView.setText("", BufferType.EDITABLE);
-                mTextView.requestFocus();
                 Selection.setSelection((Editable) mTextView.getText(), 0, 0);
                 mTextView.setKeyListener(textKeyListener);
             }
@@ -275,6 +247,12 @@
         listener.release();
     }
 
+    /**
+     * A mocked {@link android.text.method.TextKeyListener} for testing purposes.
+     *
+     * Tracks whether {@link MockTextKeyListener#onSpanAdded(Spannable, Object, int, int)} has been
+     * called.
+     */
     private class MockTextKeyListener extends TextKeyListener {
         private boolean mHadAddedSpan;
 
diff --git a/tests/tests/text/src/android/text/method/cts/TimeKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/TimeKeyListenerTest.java
index f9c172b..7d8631b 100644
--- a/tests/tests/text/src/android/text/method/cts/TimeKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/TimeKeyListenerTest.java
@@ -16,44 +16,13 @@
 
 package android.text.method.cts;
 
-import com.android.cts.stub.R;
-
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.cts.util.PollingCheck;
-import android.test.ActivityInstrumentationTestCase2;
 import android.text.InputType;
+import android.text.method.cts.KeyListenerTestCase;
 import android.text.method.TimeKeyListener;
 import android.view.KeyCharacterMap;
 import android.view.KeyEvent;
-import android.widget.TextView;
 
-public class TimeKeyListenerTest extends
-        ActivityInstrumentationTestCase2<KeyListenerStubActivity> {
-    private Activity mActivity;
-    private Instrumentation mInstrumentation;
-    private TextView mTextView;
-
-    public TimeKeyListenerTest(){
-        super("com.android.cts.stub", KeyListenerStubActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        mActivity = getActivity();
-        mInstrumentation = getInstrumentation();
-        mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
-        new PollingCheck(1000) {
-            @Override
-            protected boolean check() {
-                return mTextView.hasWindowFocus();
-            }
-        }.run();
-    }
-
+public class TimeKeyListenerTest extends KeyListenerTestCase {
     public void testConstructor() {
         new TimeKeyListener();
     }
@@ -68,9 +37,9 @@
     }
 
     public void testGetAcceptedChars() {
-        MyTimeKeyListener timeKeyListener = new MyTimeKeyListener();
+        MockTimeKeyListener mockTimeKeyListener = new MockTimeKeyListener();
         TextMethodUtils.assertEquals(TimeKeyListener.CHARACTERS,
-                timeKeyListener.getAcceptedChars());
+                mockTimeKeyListener.getAcceptedChars());
     }
 
     public void testGetInputType() {
@@ -80,7 +49,7 @@
         assertEquals(expected, listener.getInputType());
     }
 
-    /**
+    /*
      * Scenario description:
      * 1. Press '1' key and check if the content of TextView becomes "1"
      * 2. Press '2' key and check if the content of TextView becomes "12"
@@ -94,13 +63,7 @@
         final TimeKeyListener timeKeyListener = TimeKeyListener.getInstance();
         String expectedText = "";
 
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setKeyListener(timeKeyListener);
-                mTextView.requestFocus();
-            }
-        });
-        mInstrumentation.waitForIdleSync();
+        setKeyListenerSync(timeKeyListener);
         assertEquals(expectedText, mTextView.getText().toString());
 
         // press '1' key.
@@ -142,20 +105,20 @@
             assertEquals(expectedText, mTextView.getText().toString());
         }
 
-        mActivity.runOnUiThread(new Runnable() {
-            public void run() {
-                mTextView.setKeyListener(null);
-                mTextView.requestFocus();
-            }
-        });
-        mInstrumentation.waitForIdleSync();
+        setKeyListenerSync(null);
 
         // press '1' key.
         mInstrumentation.sendStringSync("1");
         assertEquals(expectedText, mTextView.getText().toString());
     }
 
-    private class MyTimeKeyListener extends TimeKeyListener {
+    /**
+     * A mocked {@link android.text.method.TimeKeyListener} for testing purposes.
+     *
+     * Allows {@link TimeKeyListenerTest} to call
+     * {@link android.text.method.TimeKeyListener#getAcceptedChars()}.
+     */
+    private class MockTimeKeyListener extends TimeKeyListener {
         @Override
         protected char[] getAcceptedChars() {
             return super.getAcceptedChars();
diff --git a/tests/tests/text/src/android/text/method/cts/TouchTest.java b/tests/tests/text/src/android/text/method/cts/TouchTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/util/src/android/util/cts/PrintStreamPrinterTest.java b/tests/tests/util/src/android/util/cts/PrintStreamPrinterTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/view/src/android/view/cts/KeyEventTest.java b/tests/tests/view/src/android/view/cts/KeyEventTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/view/src/android/view/cts/ViewTest.java b/tests/tests/view/src/android/view/cts/ViewTest.java
index 27c98cc..e833943 100644
--- a/tests/tests/view/src/android/view/cts/ViewTest.java
+++ b/tests/tests/view/src/android/view/cts/ViewTest.java
@@ -38,6 +38,7 @@
 import android.test.ActivityInstrumentationTestCase2;
 import android.test.TouchUtils;
 import android.test.UiThreadTest;
+import android.text.format.DateUtils;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.util.SparseArray;
@@ -90,7 +91,7 @@
 
     private Resources mResources;
     private MockViewParent mMockParent;
-    private Activity mActivity;
+    private ViewTestStubActivity mActivity;
 
     /** timeout delta when wait in case the system is sluggish */
     private static final long TIMEOUT_DELTA = 10000;
@@ -109,6 +110,7 @@
         }.run();
         mResources = mActivity.getResources();
         mMockParent = new MockViewParent(mActivity);
+        assertTrue(mActivity.waitForWindowFocus(5 * DateUtils.SECOND_IN_MILLIS));
     }
 
     public void testConstructor() {
@@ -1860,25 +1862,17 @@
         });
         getInstrumentation().waitForIdleSync();
 
-        int[] xy = new int[2];
-        view.getLocationOnScreen(xy);
-
-        final int viewWidth = view.getWidth();
-        final int viewHeight = view.getHeight();
-        final float x = xy[0] + viewWidth / 2.0f;
-        final float y = xy[1] + viewHeight / 2.0f;
-
         long downTime = SystemClock.uptimeMillis();
-        long eventTime = SystemClock.uptimeMillis();
-        MotionEvent event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN,
-                x, y, 0);
+        long eventTime = downTime;
+        MotionEvent event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE,
+                1, 2, 0);
         getInstrumentation().sendTrackballEventSync(event);
         getInstrumentation().waitForIdleSync();
         assertTrue(view.hasCalledOnTrackballEvent());
     }
 
     @UiThreadTest
-    public void testDispatchTrackballEvent() {
+    public void testDispatchTrackballMoveEvent() {
         ViewGroup viewGroup = (ViewGroup) mActivity.findViewById(R.id.viewlayout_root);
         MockView mockView1 = new MockView(mActivity);
         MockView mockView2 = new MockView(mActivity);
@@ -1889,8 +1883,8 @@
         mockView2.requestFocus();
 
         long downTime = SystemClock.uptimeMillis();
-        long eventTime = SystemClock.uptimeMillis();
-        MotionEvent event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN,
+        long eventTime = downTime;
+        MotionEvent event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE,
                 1, 2, 0);
         mockView1.dispatchTrackballEvent(event);
         // issue 1695243
@@ -1901,8 +1895,8 @@
         mockView1.reset();
         mockView2.reset();
         downTime = SystemClock.uptimeMillis();
-        eventTime = SystemClock.uptimeMillis();
-        event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, 1, 2, 0);
+        eventTime = downTime;
+        event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, 1, 2, 0);
         mockView2.dispatchTrackballEvent(event);
         assertFalse(mockView1.hasCalledOnTrackballEvent());
         assertTrue(mockView2.hasCalledOnTrackballEvent());
@@ -3393,7 +3387,7 @@
         }
 
         @Override
-        public void childAccessibilityStateChanged(View child) {
+        public void childAccessibilityStateChanged(View root) {
 
         }
     }
diff --git a/tests/tests/view/src/android/view/cts/WindowTest.java b/tests/tests/view/src/android/view/cts/WindowTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/view/src/android/view/inputmethod/cts/BaseInputConnectionTest.java b/tests/tests/view/src/android/view/inputmethod/cts/BaseInputConnectionTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/view/src/android/view/inputmethod/cts/InputMethodInfoTest.java b/tests/tests/view/src/android/view/inputmethod/cts/InputMethodInfoTest.java
index 722c1b3..9f92d23 100644
--- a/tests/tests/view/src/android/view/inputmethod/cts/InputMethodInfoTest.java
+++ b/tests/tests/view/src/android/view/inputmethod/cts/InputMethodInfoTest.java
@@ -17,20 +17,27 @@
 package android.view.inputmethod.cts;
 
 import android.content.ComponentName;
+import android.content.Context;
 import android.content.Intent;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
+import android.content.res.Resources;
 import android.os.Parcel;
 import android.test.AndroidTestCase;
 import android.util.Printer;
 import android.view.inputmethod.InputMethod;
 import android.view.inputmethod.InputMethodInfo;
+import android.view.inputmethod.InputMethodManager;
 import android.view.inputmethod.InputMethodSubtype;
 
 import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 
 public class InputMethodInfoTest extends AndroidTestCase {
@@ -187,7 +194,46 @@
                 subtype.overridesImplicitlyEnabledSubtype());
     }
 
+    public void testInputMethodSubtypesOfSystemImes() {
+        final InputMethodManager imm = (InputMethodManager) mContext
+                .getSystemService(Context.INPUT_METHOD_SERVICE);
+        final List<InputMethodInfo> imis = imm.getInputMethodList();
+        final ArrayList<String> localeList = new ArrayList<String>(Arrays.asList(
+                Resources.getSystem().getAssets().getLocales()));
+        boolean foundEnabledSystemImeSubtypeWithValidLanguage = false;
+        for (InputMethodInfo imi : imis) {
+            if ((imi.getServiceInfo().applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
+                continue;
+            }
+            final int subtypeCount = imi.getSubtypeCount();
+            // System IME must have one subtype at least.
+            assertTrue(subtypeCount > 0);
+            if (foundEnabledSystemImeSubtypeWithValidLanguage) {
+                continue;
+            }
+            final List<InputMethodSubtype> enabledSubtypes =
+                    imm.getEnabledInputMethodSubtypeList(imi, true);
+            SUBTYPE_LOOP:
+            for (InputMethodSubtype subtype : enabledSubtypes) {
+                final String subtypeLocale = subtype.getLocale();
+                if (subtypeLocale.length() < 2) {
+                    continue;
+                }
+                // TODO: Detect language more strictly.
+                final String subtypeLanguage = subtypeLocale.substring(0, 2);
+                for (final String locale : localeList) {
+                    if (locale.startsWith(subtypeLanguage)) {
+                        foundEnabledSystemImeSubtypeWithValidLanguage = true;
+                        break SUBTYPE_LOOP;
+                    }
+                }
+            }
+        }
+        assertTrue(foundEnabledSystemImeSubtypeWithValidLanguage);
+    }
+
     class MockPrinter implements Printer {
+        @Override
         public void println(String x) {
         }
     }
diff --git a/tests/tests/view/src/android/view/inputmethod/cts/InputMethodManagerTest.java b/tests/tests/view/src/android/view/inputmethod/cts/InputMethodManagerTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/webkit/src/android/webkit/cts/CookieManagerTest.java b/tests/tests/webkit/src/android/webkit/cts/CookieManagerTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/webkit/src/android/webkit/cts/GeolocationTest.java b/tests/tests/webkit/src/android/webkit/cts/GeolocationTest.java
index 820bc79..85a616f 100644
--- a/tests/tests/webkit/src/android/webkit/cts/GeolocationTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/GeolocationTest.java
@@ -64,6 +64,7 @@
 
     private static final String JS_INTERFACE_NAME = "Android";
     private static final int POLLING_TIMEOUT = 60 * 1000;
+    private static final int LOCATION_THREAD_UPDATE_WAIT_MS = 250;
     private static final String PROVIDER_NAME = LocationManager.NETWORK_PROVIDER;
 
     // static HTML page always injected instead of the url loaded
@@ -102,6 +103,8 @@
     private JavascriptStatusReceiver mJavascriptStatusReceiver;
     private LocationManager mLocationManager;
     private WebViewOnUiThread mOnUiThread;
+    private Thread mLocationUpdateThread;
+    private volatile boolean mLocationUpdateThreadExitRequested;
 
     public GeolocationTest() throws Exception {
         super("com.android.cts.stub", WebViewStubActivity.class);
@@ -156,15 +159,50 @@
 
     @Override
     protected void tearDown() throws Exception {
+        stopUpdateLocationThread();
         // Remove the test provider after each test
         try {
-          mLocationManager.removeTestProvider(PROVIDER_NAME);
+            mLocationManager.removeTestProvider(PROVIDER_NAME);
         } catch (IllegalArgumentException e) {} // Not much to do about this
         mOnUiThread.cleanUp();
         // This will null all member and static variables
         super.tearDown();
     }
 
+    private void startUpdateLocationThread() {
+        // Only start the thread once
+        if (mLocationUpdateThread == null) {
+            mLocationUpdateThreadExitRequested = false;
+            mLocationUpdateThread = new Thread() {
+                @Override
+                public void run() {
+                    while (!mLocationUpdateThreadExitRequested) {
+                        try {
+                            Thread.sleep(LOCATION_THREAD_UPDATE_WAIT_MS);
+                        } catch(Exception e) {
+                            // Do nothing, an extra update is no problem
+                        }
+                        updateLocation(PROVIDER_NAME);
+                    }
+                }
+            };
+            mLocationUpdateThread.start();
+        }
+    }
+
+    private void stopUpdateLocationThread() {
+        // Only stop the thread if it was started
+        if (mLocationUpdateThread != null) {
+            mLocationUpdateThreadExitRequested = true;
+            try {
+                mLocationUpdateThread.join();
+            } catch (InterruptedException e) {
+                // Do nothing
+            }
+            mLocationUpdateThread = null;
+        }
+    }
+
     // Update location with a fixed latitude and longtitude, sets the time to the current time.
     private void updateLocation(final String providerName) {
         Location location = new Location(providerName);
@@ -180,7 +218,7 @@
     // using a maximum age.
     private void loadUrlAndUpdateLocation(String url) {
         mOnUiThread.loadUrlAndWaitForCompletion(url);
-        updateLocation(PROVIDER_NAME);
+        startUpdateLocationThread();
     }
 
     // WebChromeClient that accepts each location for one load. WebChromeClient is used in
@@ -430,7 +468,7 @@
         final TestSimpleGeolocationRequestWebChromeClient chromeClientRejectOnce =
                 new TestSimpleGeolocationRequestWebChromeClient(mOnUiThread, false, false);
         mOnUiThread.setWebChromeClient(chromeClientRejectOnce);
-        // Load url once, and the callback should accept the domain for all future loads
+        // Load url once, and the callback should reject it once
         mOnUiThread.loadUrlAndWaitForCompletion(URL_1);
         Callable<Boolean> receivedRequest = new Callable<Boolean>() {
             @Override
@@ -445,11 +483,12 @@
                 return mJavascriptStatusReceiver.mDenied;
             }
         };
-        PollingCheck.check("JS didn't get position", POLLING_TIMEOUT, locationDenied);
+        PollingCheck.check("JS got position", POLLING_TIMEOUT, locationDenied);
         // Same result should happen on next run
+        chromeClientRejectOnce.mReceivedRequest = false;
         mOnUiThread.loadUrlAndWaitForCompletion(URL_1);
         PollingCheck.check("Geolocation prompt not called", POLLING_TIMEOUT, receivedRequest);
-        PollingCheck.check("JS didn't get position", POLLING_TIMEOUT, locationDenied);
+        PollingCheck.check("JS got position", POLLING_TIMEOUT, locationDenied);
 
         // Try to reject forever
         final TestSimpleGeolocationRequestWebChromeClient chromeClientRejectAlways =
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java b/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
index 2a5044e..5c9c958 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
@@ -34,6 +34,8 @@
     private CtsTestServer mWebServer;
     private WebIconDatabase mIconDb;
     private WebViewOnUiThread mOnUiThread;
+    private boolean mBlockWindowCreationSync;
+    private boolean mBlockWindowCreationAsync;
 
     public WebChromeClientTest() {
         super(WebViewStubActivity.class);
@@ -122,7 +124,7 @@
         }.run();
     }
 
-    public void testWindows() throws Exception {
+    public void runWindowTest(boolean expectWindowClose) throws Exception {
         final MockWebChromeClient webChromeClient = new MockWebChromeClient();
         mOnUiThread.setWebChromeClient(webChromeClient);
 
@@ -144,12 +146,30 @@
                 return webChromeClient.hadOnCreateWindow();
             }
         }.run();
-        new PollingCheck(TEST_TIMEOUT) {
-            @Override
-            protected boolean check() {
-                return webChromeClient.hadOnCloseWindow();
-            }
-        }.run();
+
+        if (expectWindowClose) {
+            new PollingCheck(TEST_TIMEOUT) {
+                @Override
+                protected boolean check() {
+                    return webChromeClient.hadOnCloseWindow();
+                }
+            }.run();
+        } else {
+            assertFalse(webChromeClient.hadOnCloseWindow());
+        }
+    }
+    public void testWindows() throws Exception {
+        runWindowTest(true);
+    }
+
+    public void testBlockWindowsSync() throws Exception {
+        mBlockWindowCreationSync = true;
+        runWindowTest(false);
+    }
+
+    public void testBlockWindowsAsync() throws Exception {
+        mBlockWindowCreationAsync = true;
+        runWindowTest(false);
     }
 
     public void testOnJsBeforeUnload() throws Exception {
@@ -380,16 +400,23 @@
         @Override
         public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture,
                 Message resultMsg) {
-            WebView childView = new WebView(getActivity());
-            final WebSettings settings = childView.getSettings();
-            settings.setJavaScriptEnabled(true);
-            childView.setWebChromeClient(this);
-            WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
-            transport.setWebView(childView);
-            resultMsg.sendToTarget();
             mHadOnCreateWindow = true;
-            getActivity().addContentView(childView, new ViewGroup.LayoutParams(
-                    ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+            if (mBlockWindowCreationSync) {
+                return false;
+            }
+            WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
+            if (mBlockWindowCreationAsync) {
+                transport.setWebView(null);
+            } else {
+                WebView childView = new WebView(getActivity());
+                final WebSettings settings = childView.getSettings();
+                settings.setJavaScriptEnabled(true);
+                childView.setWebChromeClient(this);
+                transport.setWebView(childView);
+                getActivity().addContentView(childView, new ViewGroup.LayoutParams(
+                        ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+            }
+            resultMsg.sendToTarget();
             return true;
         }
 
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebHistoryItemTest.java b/tests/tests/webkit/src/android/webkit/cts/WebHistoryItemTest.java
index 2eb81fc..468430f 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebHistoryItemTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebHistoryItemTest.java
@@ -16,16 +16,35 @@
 
 package android.webkit.cts;
 
+import android.cts.util.PollingCheck;
 import android.graphics.Bitmap;
 import android.test.ActivityInstrumentationTestCase2;
 import android.webkit.WebBackForwardList;
+import android.webkit.cts.WebViewOnUiThread.WaitForProgressClient;
 import android.webkit.WebHistoryItem;
-
+import android.webkit.WebIconDatabase;
+import android.webkit.WebView;
 
 public class WebHistoryItemTest extends ActivityInstrumentationTestCase2<WebViewStubActivity> {
     private final static long TEST_TIMEOUT = 10000;
     private CtsTestServer mWebServer;
     private WebViewOnUiThread mOnUiThread;
+    private WebIconDatabase mIconDb;
+
+    class WaitForIconClient extends WaitForProgressClient {
+        private boolean mReceivedIcon;
+
+        public WaitForIconClient(WebViewOnUiThread onUiThread) {
+            super(onUiThread);
+        }
+
+        @Override
+        public synchronized void onReceivedIcon(WebView webview, Bitmap icon) {
+            mReceivedIcon = true;
+        }
+
+        public synchronized boolean receivedIcon() { return mReceivedIcon; }
+    };
 
     public WebHistoryItemTest() {
         super("com.android.cts.stub", WebViewStubActivity.class);
@@ -43,14 +62,37 @@
         mOnUiThread.cleanUp();
         mWebServer.shutdown();
         super.tearDown();
+        if (mIconDb != null) {
+            mIconDb.removeAllIcons();
+            mIconDb.close();
+        }
     }
 
-    public void testWebHistoryItem() {
+    public void testWebHistoryItem() throws Throwable {
+        final WaitForIconClient waitForIconClient = new WaitForIconClient(mOnUiThread);
+        mOnUiThread.setWebChromeClient(waitForIconClient);
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                // getInstance must run on the UI thread
+                mIconDb = WebIconDatabase.getInstance();
+                String dbPath = getActivity().getFilesDir().toString() + "/icons";
+                mIconDb.open(dbPath);
+            }
+        });
+
         WebBackForwardList list = mOnUiThread.copyBackForwardList();
         assertEquals(0, list.getSize());
 
         String url = mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
         mOnUiThread.loadUrlAndWaitForCompletion(url);
+        new PollingCheck() {
+            @Override
+            protected boolean check() {
+                return waitForIconClient.receivedIcon();
+            }
+        }.run();
+
         list = mOnUiThread.copyBackForwardList();
         assertEquals(1, list.getSize());
         WebHistoryItem item = list.getCurrentItem();
@@ -59,7 +101,7 @@
         assertEquals(url, item.getOriginalUrl());
         assertEquals(TestHtmlConstants.HELLO_WORLD_TITLE, item.getTitle());
         Bitmap icon = mOnUiThread.getFavicon();
-        assertEquals(icon, item.getFavicon());
+        assertTrue(icon.sameAs(item.getFavicon()));
 
         url = mWebServer.getAssetUrl(TestHtmlConstants.BR_TAG_URL);
         mOnUiThread.loadUrlAndWaitForCompletion(url);
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
old mode 100755
new mode 100644
index 0426f23..ce2ec51
--- a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
@@ -66,6 +66,7 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.util.Date;
+import java.util.concurrent.FutureTask;
 
 public class WebViewTest extends ActivityInstrumentationTestCase2<WebViewStubActivity> {
     private static final String LOGTAG = "WebViewTest";
@@ -779,16 +780,51 @@
                 historyUrl);
         assertTrue("URL: " + mWebView.getUrl(), mWebView.getUrl().indexOf("data:text/html") == 0);
         assertTrue("URL: " + mWebView.getUrl(), mWebView.getUrl().indexOf("bar") > 0);
+
+        // Check that when a non-data: base URL is used, we treat the String to load as
+        // a raw string and just dump it into the WebView, i.e. not decoding any URL entities.
+        mOnUiThread.loadDataWithBaseURLAndWaitForCompletion("http://www.foo.com",
+                HTML_HEADER + "<title>Hello World%21</title><body>bar</body></html>",
+                "text/html", "UTF-8", null);
+        assertEquals("Hello World%21", mOnUiThread.getTitle());
+
+        // Check that when a data: base URL is used, we treat the String to load as a data: URL
+        // and run load steps such as decoding URL entities (i.e., contrary to the test case
+        // above.)
+        mOnUiThread.loadDataWithBaseURLAndWaitForCompletion("data:foo",
+                HTML_HEADER + "<title>Hello World%21</title></html>", "text/html", "UTF-8", null);
+        assertEquals("Hello World!", mOnUiThread.getTitle());
     }
 
-    @UiThreadTest
-    public void testFindAll() {
+    private static class WaitForFindResultsListener extends FutureTask<Integer>
+            implements WebView.FindListener {
+        public WaitForFindResultsListener() {
+            super(new Runnable() {
+                @Override
+                public void run() { }
+            }, null);
+        }
+
+        @Override
+        public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches,
+                boolean isDoneCounting) {
+            if (isDoneCounting) {
+                set(numberOfMatches);
+            }
+        }
+    }
+
+    public void testFindAll()  throws Throwable {
         String p = "<p>Find all instances of find on the page and highlight them.</p>";
 
         mOnUiThread.loadDataAndWaitForCompletion("<html><body>" + p
                 + "</body></html>", "text/html", null);
 
-        assertEquals(2, mWebView.findAll("find"));
+        WaitForFindResultsListener l = new WaitForFindResultsListener();
+        mOnUiThread.setFindListener(l);
+        mOnUiThread.findAll("find");
+
+        assertEquals(2, l.get().intValue());
     }
 
     public void testFindNext() throws Throwable {
@@ -937,25 +973,37 @@
     public void testGetContentHeight() throws Throwable {
         mOnUiThread.loadDataAndWaitForCompletion(
                 "<html><body></body></html>", "text/html", null);
-        getInstrumentation().waitForIdleSync();
+        new PollingCheck() {
+            @Override
+            protected boolean check() {
+                return mOnUiThread.getScale() != 0 && mOnUiThread.getContentHeight() != 0;
+            }
+        }.run();
+        assertEquals(mOnUiThread.getHeight(),
+                mOnUiThread.getContentHeight() * mOnUiThread.getScale(), 2f);
 
         final int pageHeight = 600;
         // set the margin to 0
         final String p = "<p style=\"height:" + pageHeight
                 + "px;margin:0px auto;\">Get the height of HTML content.</p>";
-        assertEquals(mOnUiThread.getHeight(), mOnUiThread.getContentHeight() * mOnUiThread.getScale(), 2f);
         mOnUiThread.loadDataAndWaitForCompletion("<html><body>" + p
                 + "</body></html>", "text/html", null);
-        getInstrumentation().waitForIdleSync();
+        new PollingCheck() {
+            @Override
+            protected boolean check() {
+                return mOnUiThread.getContentHeight() > pageHeight;
+            }
+        }.run();
 
-        assertTrue(mOnUiThread.getContentHeight() > pageHeight);
-        int extraSpace = mOnUiThread.getContentHeight() - pageHeight;
-
+        final int extraSpace = mOnUiThread.getContentHeight() - pageHeight;
         mOnUiThread.loadDataAndWaitForCompletion("<html><body>" + p
                 + p + "</body></html>", "text/html", null);
-        getInstrumentation().waitForIdleSync();
-        assertEquals(pageHeight + pageHeight + extraSpace,
-                mOnUiThread.getContentHeight());
+        new PollingCheck() {
+            @Override
+            protected boolean check() {
+                return pageHeight + pageHeight + extraSpace == mOnUiThread.getContentHeight();
+            }
+        }.run();
     }
 
     @UiThreadTest
diff --git a/tests/tests/widget/src/android/widget/cts/AdapterViewTest.java b/tests/tests/widget/src/android/widget/cts/AdapterViewTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/widget/src/android/widget/cts/AutoCompleteTextViewTest.java b/tests/tests/widget/src/android/widget/cts/AutoCompleteTextViewTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/widget/src/android/widget/cts/DialerFilterTest.java b/tests/tests/widget/src/android/widget/cts/DialerFilterTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/widget/src/android/widget/cts/FrameLayoutTest.java b/tests/tests/widget/src/android/widget/cts/FrameLayoutTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/widget/src/android/widget/cts/GridViewTest.java b/tests/tests/widget/src/android/widget/cts/GridViewTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/widget/src/android/widget/cts/TextViewTest.java b/tests/tests/widget/src/android/widget/cts/TextViewTest.java
old mode 100755
new mode 100644
diff --git a/tools/cts-api-coverage/src/com/android/cts/apicoverage/CtsApiCoverage.java b/tools/cts-api-coverage/src/com/android/cts/apicoverage/CtsApiCoverage.java
index d6abf9a..2109bbf 100644
--- a/tools/cts-api-coverage/src/com/android/cts/apicoverage/CtsApiCoverage.java
+++ b/tools/cts-api-coverage/src/com/android/cts/apicoverage/CtsApiCoverage.java
@@ -55,10 +55,12 @@
         System.out.println("directory and dexdeps must be built via \"make dexdeps\".");
         System.out.println();
         System.out.println("Options:");
-        System.out.println("  -o FILE              output file or standard out if not given");
-        System.out.println("  -f [txt|xml|html]    format of output");
-        System.out.println("  -d PATH              path to dexdeps or expected to be in $PATH");
-        System.out.println("  -a PATH              path to the API XML file");
+        System.out.println("  -o FILE                output file or standard out if not given");
+        System.out.println("  -f [txt|xml|html]      format of output");
+        System.out.println("  -d PATH                path to dexdeps or expected to be in $PATH");
+        System.out.println("  -a PATH                path to the API XML file");
+        System.out.println("  -p PACKAGENAMEPREFIX   report coverage only for package that start with");
+        System.out.println("  -t TITLE               report title");
         System.out.println();
         System.exit(1);
     }
@@ -69,6 +71,9 @@
         int format = FORMAT_TXT;
         String dexDeps = "dexDeps";
         String apiXmlPath = "";
+        // By default only care about packages starting with "android"
+        String packageFilter = "android";
+        String reportTitle = "CTS API Coverage";
 
         for (int i = 0; i < args.length; i++) {
             if (args[i].startsWith("-")) {
@@ -89,6 +94,10 @@
                     dexDeps = getExpectedArg(args, ++i);
                 } else if ("-a".equals(args[i])) {
                     apiXmlPath = getExpectedArg(args, ++i);
+                } else if ("-p".equals(args[i])) {
+                    packageFilter = getExpectedArg(args, ++i);
+                } else if ("-t".equals(args[i])) {
+                    reportTitle = getExpectedArg(args, ++i);
                 } else {
                     printUsage();
                 }
@@ -113,7 +122,7 @@
         for (File testApk : testApks) {
             addApiCoverage(apiCoverage, testApk, dexDeps);
         }
-        outputCoverageReport(apiCoverage, testApks, outputFile, format);
+        outputCoverageReport(apiCoverage, testApks, outputFile, format, packageFilter, reportTitle);
     }
 
     /** Get the argument or print out the usage and exit. */
@@ -172,8 +181,8 @@
     }
 
     private static void outputCoverageReport(ApiCoverage apiCoverage, List<File> testApks,
-            File outputFile, int format) throws IOException, TransformerException,
-                    InterruptedException {
+            File outputFile, int format, String packageFilter, String reportTitle)
+                throws IOException, TransformerException, InterruptedException {
 
         OutputStream out = outputFile != null
                 ? new FileOutputStream(outputFile)
@@ -182,15 +191,15 @@
         try {
             switch (format) {
                 case FORMAT_TXT:
-                    TextReport.printTextReport(apiCoverage, out);
+                    TextReport.printTextReport(apiCoverage, packageFilter, out);
                     break;
 
                 case FORMAT_XML:
-                    XmlReport.printXmlReport(testApks, apiCoverage, out);
+                    XmlReport.printXmlReport(testApks, apiCoverage, packageFilter, reportTitle, out);
                     break;
 
                 case FORMAT_HTML:
-                    HtmlReport.printHtmlReport(testApks, apiCoverage, out);
+                    HtmlReport.printHtmlReport(testApks, apiCoverage, packageFilter, reportTitle, out);
                     break;
             }
         } finally {
diff --git a/tools/cts-api-coverage/src/com/android/cts/apicoverage/HtmlReport.java b/tools/cts-api-coverage/src/com/android/cts/apicoverage/HtmlReport.java
index 9243fe0..dfe609d 100644
--- a/tools/cts-api-coverage/src/com/android/cts/apicoverage/HtmlReport.java
+++ b/tools/cts-api-coverage/src/com/android/cts/apicoverage/HtmlReport.java
@@ -37,14 +37,15 @@
 class HtmlReport {
 
     public static void printHtmlReport(final List<File> testApks, final ApiCoverage apiCoverage,
-            final OutputStream out) throws IOException, TransformerException {
+            final String packageFilter, final String reportTitle, final OutputStream out)
+                throws IOException, TransformerException {
         final PipedOutputStream xmlOut = new PipedOutputStream();
         final PipedInputStream xmlIn = new PipedInputStream(xmlOut);
 
         Thread t = new Thread(new Runnable() {
             @Override
             public void run() {
-                XmlReport.printXmlReport(testApks, apiCoverage, xmlOut);
+                XmlReport.printXmlReport(testApks, apiCoverage, packageFilter, reportTitle, xmlOut);
 
                 // Close the output stream to avoid "Write dead end" errors.
                 try {
diff --git a/tools/cts-api-coverage/src/com/android/cts/apicoverage/TextReport.java b/tools/cts-api-coverage/src/com/android/cts/apicoverage/TextReport.java
index ebcefe5..23b44c3 100644
--- a/tools/cts-api-coverage/src/com/android/cts/apicoverage/TextReport.java
+++ b/tools/cts-api-coverage/src/com/android/cts/apicoverage/TextReport.java
@@ -27,7 +27,7 @@
  */
 class TextReport {
 
-    public static void printTextReport(ApiCoverage api, OutputStream outputStream) {
+    public static void printTextReport(ApiCoverage api, String packageFilter, OutputStream outputStream) {
         PrintStream out = new PrintStream(outputStream);
 
         CoverageComparator comparator = new CoverageComparator();
@@ -35,7 +35,7 @@
         Collections.sort(packages, comparator);
 
         for (ApiPackage apiPackage : packages) {
-            if (apiPackage.getName().startsWith("android")
+            if (apiPackage.getName().startsWith(packageFilter)
                     && apiPackage.getTotalMethods() > 0) {
                 printPackage(apiPackage, out);
             }
@@ -45,7 +45,7 @@
         out.println();
 
         for (ApiPackage apiPackage : packages) {
-            if (apiPackage.getName().startsWith("android")) {
+            if (apiPackage.getName().startsWith(packageFilter)) {
                 printPackage(apiPackage, out);
 
                 List<ApiClass> classes = new ArrayList<ApiClass>(apiPackage.getClasses());
diff --git a/tools/cts-api-coverage/src/com/android/cts/apicoverage/XmlReport.java b/tools/cts-api-coverage/src/com/android/cts/apicoverage/XmlReport.java
index e76343e..df10fa4 100644
--- a/tools/cts-api-coverage/src/com/android/cts/apicoverage/XmlReport.java
+++ b/tools/cts-api-coverage/src/com/android/cts/apicoverage/XmlReport.java
@@ -32,14 +32,14 @@
 class XmlReport {
 
     public static void printXmlReport(List<File> testApks, ApiCoverage apiCoverage,
-            OutputStream outputStream) {
+            String packageFilter, String reportTitle, OutputStream outputStream) {
         PrintStream out = new PrintStream(outputStream);
         out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
         out.println("<?xml-stylesheet type=\"text/xsl\"  href=\"api-coverage.xsl\"?>");
 
         SimpleDateFormat format = new SimpleDateFormat("EEE, MMM d, yyyy h:mm a z");
         String date = format.format(new Date(System.currentTimeMillis()));
-        out.println("<api-coverage generatedTime=\"" + date + "\">");
+        out.println("<api-coverage generatedTime=\"" + date + "\" title=\"" + reportTitle +"\">");
 
         out.println("<debug>");
         out.println("<sources>");
@@ -57,8 +57,8 @@
         int totalMethods = 0;
         int totalCoveredMethods = 0;
         for (ApiPackage pkg : packages) {
-            if (pkg.getName().startsWith("android")
-                    && pkg.getTotalMethods() > 0) {
+            if (pkg.getName().startsWith(packageFilter)
+                   && pkg.getTotalMethods() > 0) {
                 int pkgTotal = pkg.getTotalMethods();
                 totalMethods += pkgTotal;
                 int pkgTotalCovered = pkg.getNumCoveredMethods();
diff --git a/tools/cts-api-coverage/src/res/api-coverage.xsl b/tools/cts-api-coverage/src/res/api-coverage.xsl
index 9cd4aeb..1ac3402 100644
--- a/tools/cts-api-coverage/src/res/api-coverage.xsl
+++ b/tools/cts-api-coverage/src/res/api-coverage.xsl
@@ -78,7 +78,7 @@
                 </style>
             </head>
             <body>
-                <h1>CTS API Coverage</h1>
+                <h1><xsl:value-of select="api-coverage/@title" /></h1>
                 <div class="info">
                     Generated: <xsl:value-of select="api-coverage/@generatedTime" />
                 </div>
diff --git a/tools/cts-java-scanner/src/com/android/cts/javascanner/DocletRunner.java b/tools/cts-java-scanner/src/com/android/cts/javascanner/DocletRunner.java
index 2afc4fa..621c8cd 100644
--- a/tools/cts-java-scanner/src/com/android/cts/javascanner/DocletRunner.java
+++ b/tools/cts-java-scanner/src/com/android/cts/javascanner/DocletRunner.java
@@ -73,6 +73,7 @@
         sourcePath.add("./cts/suite/pts/deviceTests/ptsutil/src");
         sourcePath.add("./cts/libs/util/src");
         sourcePath.add("./frameworks/testing/uiautomator/library/testrunner-src");
+        sourcePath.add("./frameworks/testing/uiautomator_test_libraries/src");
         sourcePath.add(sourceDir.toString());
         return join(sourcePath, ":");
     }
diff --git a/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/RootProcessScanner.java b/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/RootProcessScanner.java
index 4763287..fefff99 100644
--- a/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/RootProcessScanner.java
+++ b/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/RootProcessScanner.java
@@ -31,7 +31,9 @@
             "debuggerd",
             "init",
             "installd",
+            "netd",
             "servicemanager",
+            "ueventd",
             "vold",
             "zygote"
     );
diff --git a/tools/tradefed-host/Android.mk b/tools/tradefed-host/Android.mk
index 8281b20..4a9e2fc 100644
--- a/tools/tradefed-host/Android.mk
+++ b/tools/tradefed-host/Android.mk
@@ -16,15 +16,18 @@
 
 include $(CLEAR_VARS)
 
+# suite/pts/hostTests/ptshostutil is treated specially
+# as it cannot be put into ptscommonutilhost due to dependency on cts-tradefed
 LOCAL_SRC_FILES := \
-	$(call all-java-files-under, src)
+	$(call all-java-files-under, src) \
+	$(call all-java-files-under, ../../suite/pts/hostTests/ptshostutil/src)
 
 LOCAL_JAVA_RESOURCE_DIRS := res
 
 LOCAL_MODULE := cts-tradefed
 LOCAL_MODULE_TAGS := optional
 LOCAL_JAVA_LIBRARIES := ddmlib-prebuilt tradefed-prebuilt hosttestlib
-LOCAL_STATIC_JAVA_LIBRARIES := ctsdeviceinfolib
+LOCAL_STATIC_JAVA_LIBRARIES := ctsdeviceinfolib ptscommonutilhost
 
 include $(BUILD_HOST_JAVA_LIBRARY)
 
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildProvider.java b/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildProvider.java
index 08fca45..6674bdf 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildProvider.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildProvider.java
@@ -31,7 +31,7 @@
     @Option(name="cts-install-path", description="the path to the cts installation to use")
     private String mCtsRootDirPath = System.getProperty("CTS_ROOT");
 
-    public static final String CTS_BUILD_VERSION = "4.3_r1";
+    public static final String CTS_BUILD_VERSION = "4.2_r1";
 
     /**
      * {@inheritDoc}
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/AccessibilityServiceTestRunner.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/AccessibilityServiceTestRunner.java
new file mode 100644
index 0000000..4cfd263
--- /dev/null
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/AccessibilityServiceTestRunner.java
@@ -0,0 +1,95 @@
+/*
+ * 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.
+ */
+
+package com.android.cts.tradefed.testtype;
+
+import com.android.cts.tradefed.build.CtsBuildHelper;
+import com.android.tradefed.build.IBuildInfo;
+import com.android.tradefed.device.DeviceNotAvailableException;
+import com.android.tradefed.result.ITestInvocationListener;
+import com.android.tradefed.util.FileUtil;
+
+import junit.framework.TestCase;
+
+import java.io.File;
+
+/**
+ * Running the accessibility tests requires modification of secure
+ * settings. Secure settings cannot be changed from device CTS tests
+ * since system signature permission is required. Such settings can
+ * be modified by the shell user, so a host side test is used for
+ * installing a package with a delegating accessibility service, enabling
+ * this service, running these tests, disabling the service, and removing
+ * the delegating accessibility service package.
+ *
+ * @deprecated This class is not required in current CTS builds. Still
+ * maintained so cts-tradefed can run against older CTS builds that still
+ * require this class.
+ */
+public class AccessibilityServiceTestRunner extends InstrumentationApkTest {
+
+    private static final String DELEGATING_ACCESSIBLITY_SERVICE_PACKAGE_NAME =
+        "android.accessibilityservice.delegate";
+
+    private static final String DELEGATING_ACCESSIBLITY_SERVICE_NAME =
+        "android.accessibilityservice.delegate.DelegatingAccessibilityService";
+
+    private static final String DELEGATING_ACCESSIBLITY_SERVICE_APK =
+        "CtsDelegatingAccessibilityService.apk";
+
+    private CtsBuildHelper mCtsBuild;
+
+    @Override
+    public void setBuild(IBuildInfo build) {
+        super.setBuild(build);
+        mCtsBuild  = CtsBuildHelper.createBuildHelper(build);
+    }
+
+    @Override
+    public void run(ITestInvocationListener listener) throws DeviceNotAvailableException {
+        beforeTest();
+        super.run(listener);
+        afterTest();
+    }
+
+    private void beforeTest() throws DeviceNotAvailableException {
+        installApkAndAssert(DELEGATING_ACCESSIBLITY_SERVICE_APK);
+        enableAccessibilityAndDelegatingService();
+    }
+
+    private void afterTest() throws DeviceNotAvailableException {
+        AccessibilityTestRunner.disableAccessibilityAndServices(getDevice());
+        uninstallAndAssert(DELEGATING_ACCESSIBLITY_SERVICE_PACKAGE_NAME);
+    }
+
+    private void installApkAndAssert(String apkName) throws DeviceNotAvailableException {
+        File file = FileUtil.getFileForPath(mCtsBuild.getTestCasesDir(), apkName);
+        String errorMessage = getDevice().installPackage(file, true);
+        TestCase.assertNull("Error installing: " + apkName, errorMessage);
+    }
+
+    private void uninstallAndAssert(String packageName) throws DeviceNotAvailableException {
+        String errorMessage = getDevice().uninstallPackage(packageName);
+        TestCase.assertNull("Error uninstalling: " + packageName, errorMessage);
+    }
+
+    private void enableAccessibilityAndDelegatingService() throws DeviceNotAvailableException {
+        String componentName = DELEGATING_ACCESSIBLITY_SERVICE_PACKAGE_NAME + "/"
+            + DELEGATING_ACCESSIBLITY_SERVICE_NAME;
+        AccessibilityTestRunner.enableAccessibilityAndServices(getDevice(),
+                componentName);
+    }
+}
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java
index 59babec..03e043b 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java
@@ -48,6 +48,8 @@
     public static final String VM_HOST_TEST = "vmHostTest";
     public static final String ACCESSIBILITY_TEST =
         "com.android.cts.tradefed.testtype.AccessibilityTestRunner";
+    public static final String ACCESSIBILITY_SERVICE_TEST =
+        "com.android.cts.tradefed.testtype.AccessibilityServiceTestRunner";
     public static final String DISPLAY_TEST =
             "com.android.cts.tradefed.testtype.DisplayTestRunner";
     public static final String UIAUTOMATOR_TEST = "uiAutomator";
@@ -228,6 +230,9 @@
         } else if (ACCESSIBILITY_TEST.equals(mTestType)) {
             AccessibilityTestRunner test = new AccessibilityTestRunner();
             return setInstrumentationTest(test, testCaseDir);
+        } else if (ACCESSIBILITY_SERVICE_TEST.equals(mTestType)) {
+            AccessibilityServiceTestRunner test = new AccessibilityServiceTestRunner();
+            return setInstrumentationTest(test, testCaseDir);
         } else if (DISPLAY_TEST.equals(mTestType)) {
             DisplayTestRunner test = new DisplayTestRunner();
             return setInstrumentationTest(test, testCaseDir);
diff --git a/tools/utils/buildCts.py b/tools/utils/buildCts.py
index e77f50c..5d846df 100755
--- a/tools/utils/buildCts.py
+++ b/tools/utils/buildCts.py
@@ -101,12 +101,19 @@
     # sort the list to give the same sequence based on name
     packages.sort()
 
+    ptsPattern = r'com\.android\.pts\..*'
+    plan = tools.TestPlan(packages)
+    plan.Exclude('.*')
+    plan.Include(ptsPattern)
+    self.__WritePlan(plan, 'PTS')
+
     plan = tools.TestPlan(packages)
     plan.Exclude('android\.performance.*')
     self.__WritePlan(plan, 'CTS')
     self.__WritePlan(plan, 'CTS-TF')
 
     plan = tools.TestPlan(packages)
+    plan.Exclude(ptsPattern)
     plan.Exclude('android\.performance.*')
     plan.Exclude('android\.media\.cts\.StreamingMediaPlayerTest.*')
     # Test plan to not include media streaming tests
@@ -149,6 +156,8 @@
     plan.Include('android\.renderscript')
     plan.Include('android\.telephony')
     plan.Include('android\.nativemedia.*')
+    plan.Include('com\.android\.pts\..*')
+    plan.Exclude('com\.android\.pts\.bootup')
     self.__WritePlan(plan, 'PDK')
 
 def LogGenerateDescription(name):